# PaCkAgE DaTaStReAm
WSwebmin 1 28526
# end of header
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          07070100005eed000081a40000000000000001000000013ac03b85000000d5000000200000000000000000000000000000001100000003WSwebmin/pkginfo  PKG=WSwebmin
NAME=Webmin - Web-based system administration
ARCH=Solaris 2.5
VERSION=0.85
CATEGORY=application
VENDOR=Webmin Software
EMAIL=jcameron@webmin.com
PSTAMP=Jamie Cameron
BASEDIR=/opt/webmin
CLASSES=none
   07070100005edf000081a40000000000000001000000013ac03b860005e6db000000200000000000000000000000000000001000000003WSwebmin/pkgmap   : 1 28526
1 f none /etc/rc3.d/S99webmin 0755 root bin 545 42397 985675910
1 f none LICENCE 0600 root bin 1592 56884 985675910
1 f none README 0600 root bin 1161 39607 985675910
1 d none acl 0700 root bin
1 f none acl/acl-lib.pl 0600 root bin 8964 13869 985675926
1 f none acl/acl_security.pl 0600 root bin 5342 42087 985675926
1 f none acl/cert_form.cgi 0700 root bin 1380 49580 985675927
1 f none acl/cert_issue.cgi 0700 root bin 1577 64734 985675927
1 f none acl/cert_output.cgi 0700 root bin 218 18089 985675927
1 f none acl/config 0600 root bin 43 4014 985675927
1 f none acl/config-debian-linux 0600 root bin 33 3059 985675927
1 f none acl/config-freebsd 0600 root bin 33 3059 985675927
1 f none acl/config-open-linux-3.1e 0600 root bin 33 3059 985675927
1 f none acl/config-redhat-linux 0600 root bin 33 3059 985675927
1 f none acl/config.info 0600 root bin 100 9152 985675927
1 f none acl/config.info.de 0600 root bin 99 8749 985675927
1 f none acl/config.info.es 0600 root bin 117 11036 985675927
1 f none acl/config.info.hu 0600 root bin 142 13995 985675927
1 f none acl/config.info.ja_JP.euc 0600 root bin 117 18030 985675927
1 f none acl/config.info.nl 0700 root bin 110 10046 985675927
1 f none acl/config.info.pl 0600 root bin 115 11126 985675927
1 f none acl/config.info.ru_RU 0600 root bin 117 19765 985675927
1 f none acl/config.info.ru_SU 0600 root bin 117 17850 985675927
1 f none acl/config.info.sv 0600 root bin 102 9688 985675927
1 f none acl/config.info.tr 0600 root bin 108 11053 985675927
1 f none acl/config.info.zh_CN 0600 root bin 88 11060 985675927
1 f none acl/config.info.zh_TW.Big5 0600 root bin 41 4869 985675927
1 f none acl/convert.cgi 0700 root bin 2365 55848 985675927
1 f none acl/convert_form.cgi 0700 root bin 1265 43055 985675927
1 f none acl/defaultacl 0600 root bin 100 8171 985675927
1 f none acl/delete_group.cgi 0600 root bin 1143 29857 985675927
1 f none acl/delete_user.cgi 0700 root bin 655 54028 985675926
1 f none acl/edit_acl.cgi 0700 root bin 2245 52769 985675926
1 f none acl/edit_group.cgi 0600 root bin 1756 13389 985675927
1 f none acl/edit_user.cgi 0700 root bin 7346 62801 985675926
1 d none acl/images 0700 root bin
1 f none acl/images/empty.gif 0600 root bin 64 5363 985675926
1 f none acl/images/icon.gif 0600 root bin 1932 44305 985675926
1 f none acl/images/tick.gif 0600 root bin 75 7211 985675926
1 f none acl/index.cgi 0700 root bin 5701 40874 985675926
1 d none acl/lang 0700 root bin
1 f none acl/lang/de 0600 root bin 4433 23192 985675926
1 f none acl/lang/en 0600 root bin 6502 18499 985675926
1 f none acl/lang/es 0600 root bin 6126 56627 985675926
1 f none acl/lang/fr 0600 root bin 6653 60627 985675926
1 f none acl/lang/hu 0600 root bin 4476 11421 985675926
1 f none acl/lang/it 0600 root bin 1795 36911 985675926
1 f none acl/lang/ja_JP.euc 0600 root bin 5771 36127 985675927
1 f none acl/lang/nl 0700 root bin 6264 64538 985675926
1 f none acl/lang/pl 0600 root bin 7372 22088 985675926
1 f none acl/lang/pt 0600 root bin 901 20988 985675926
1 f none acl/lang/ru_RU 0600 root bin 6061 61575 985675926
1 f none acl/lang/ru_SU 0600 root bin 6073 26652 985675926
1 f none acl/lang/sv 0600 root bin 5907 56461 985675926
1 f none acl/lang/tr 0600 root bin 4335 4591 985675926
1 f none acl/lang/zh_CN 0600 root bin 3111 57866 985675926
1 f none acl/lang/zh_TW.Big5 0600 root bin 2317 44127 985675926
1 f none acl/log_parser.pl 0600 root bin 1076 19604 985675927
1 f none acl/module.info 0600 root bin 453 48584 985675926
1 f none acl/openssl.cnf 0600 root bin 6183 2941 985675927
1 f none acl/save_acl.cgi 0700 root bin 1899 21933 985675926
1 f none acl/save_group.cgi 0700 root bin 1406 46905 985675927
1 f none acl/save_user.cgi 0700 root bin 6872 5269 985675926
1 f none acl/useradmin_update.pl 0600 root bin 1230 34070 985675926
1 f none acl_security.pl 0600 root bin 3562 31389 985675910
1 d none apache 0700 root bin
1 f none apache/acl_security.pl 0600 root bin 3998 63881 985675928
1 f none apache/apache-lib.pl 0600 root bin 23052 21145 985675927
1 f none apache/auth-lib.pl 0600 root bin 2866 19742 985675928
1 f none apache/autoindex.pl 0600 root bin 9726 40897 985675928
1 f none apache/browsermatch.pl 0600 root bin 2204 37722 985675928
1 f none apache/change_dir.cgi 0700 root bin 1252 32425 985675928
1 f none apache/change_files.cgi 0700 root bin 1252 33260 985675928
1 f none apache/config-aix 0600 root bin 165 15629 985675928
1 f none apache/config-cobalt-linux 0600 root bin 176 16529 985675928
1 f none apache/config-corel-linux 0600 root bin 277 26015 985675927
1 f none apache/config-debian-linux 0600 root bin 277 26015 985675928
1 f none apache/config-freebsd 0600 root bin 305 28950 985675928
1 f none apache/config-hpux 0600 root bin 186 17600 985675928
1 f none apache/config-irix 0600 root bin 186 17600 985675927
1 f none apache/config-lfs-linux 0600 root bin 368 34956 985675928
1 f none apache/config-macos 0600 root bin 398 38044 985675928
1 f none apache/config-macos-1.3 0600 root bin 247 23482 985675927
1 f none apache/config-open-linux-2.3 0600 root bin 242 21658 985675928
1 f none apache/config-open-linux-2.3e 0600 root bin 228 20345 985675928
1 f none apache/config-open-linux-2.4 0600 root bin 228 20345 985675927
1 f none apache/config-open-linux-2.5 0600 root bin 325 29552 985675928
1 f none apache/config-open-linux-3.1e 0600 root bin 325 29552 985675928
1 f none apache/config-openbsd 0600 root bin 248 23671 985675927
1 f none apache/config-openserver 0600 root bin 326 30789 985675928
1 f none apache/config-osf1 0600 root bin 186 17600 985675927
1 f none apache/config-redhat-linux 0600 root bin 176 16529 985675927
1 f none apache/config-redhat-linux-7.0 0600 root bin 258 22601 985675928
1 f none apache/config-redhat-linux-7.1 0600 root bin 258 22601 985675928
1 f none apache/config-slackware-linux 0600 root bin 77 7278 985675927
1 f none apache/config-slackware-linux-7.0 0600 root bin 214 20138 985675927
1 f none apache/config-slackware-linux-7.1 0600 root bin 214 20138 985675928
1 f none apache/config-solaris 0600 root bin 186 17600 985675928
1 f none apache/config-suse-linux 0600 root bin 279 26467 985675928
1 f none apache/config-suse-linux-7.1 0600 root bin 277 26243 985675928
1 f none apache/config-turbo-linux 0600 root bin 176 16529 985675927
1 f none apache/config-unixware 0600 root bin 326 30789 985675928
1 f none apache/config.info 0600 root bin 584 54051 985675927
1 f none apache/config.info.de 0600 root bin 682 63591 985675927
1 f none apache/config.info.es 0600 root bin 689 664 985675927
1 f none apache/config.info.fr 0600 root bin 711 742 985675927
1 f none apache/config.info.hu 0600 root bin 732 9955 985675928
1 f none apache/config.info.nl 0700 root bin 647 60293 985675927
1 f none apache/config.info.pl 0600 root bin 698 2829 985675928
1 f none apache/config.info.ru_RU 0600 root bin 659 41593 985675927
1 f none apache/config.info.ru_SU 0600 root bin 659 32481 985675927
1 f none apache/config.info.sv 0600 root bin 635 62153 985675928
1 f none apache/config.info.tr 0600 root bin 644 63990 985675928
1 f none apache/config.info.zh_CN 0600 root bin 469 64171 985675928
1 f none apache/config.info.zh_TW.Big5 0600 root bin 548 611 985675928
1 f none apache/config_solaris.txt.1.25 0600 root bin 81 7515 985675928
1 f none apache/core.pl 0600 root bin 32580 19929 985675927
1 f none apache/create_dir.cgi 0700 root bin 927 8139 985675928
1 f none apache/create_files.cgi 0700 root bin 823 1714 985675928
1 f none apache/create_htaccess.cgi 0700 root bin 1349 42719 985675928
1 f none apache/create_virt.cgi 0700 root bin 2430 61705 985675928
1 f none apache/defaultacl 0600 root bin 81 6717 985675928
1 f none apache/delete_htaccess.cgi 0700 root bin 558 47804 985675928
1 f none apache/dir_index.cgi 0700 root bin 2460 3793 985675927
1 f none apache/edit_authgroup.cgi 0700 root bin 1606 3577 985675928
1 f none apache/edit_authuser.cgi 0700 root bin 1845 23552 985675928
1 f none apache/edit_defines.cgi 0700 root bin 803 2650 985675928
1 f none apache/edit_dir.cgi 0700 root bin 1291 44549 985675928
1 f none apache/edit_files.cgi 0700 root bin 1297 46398 985675928
1 f none apache/edit_global.cgi 0700 root bin 1993 30355 985675928
1 f none apache/edit_gmime_type.cgi 0700 root bin 1259 37766 985675927
1 f none apache/edit_htaccess.cgi 0700 root bin 1194 36985 985675928
1 f none apache/edit_virt.cgi 0700 root bin 1378 51497 985675927
1 f none apache/edit_vserv.cgi 0700 root bin 2213 49275 985675928
1 f none apache/files_index.cgi 0700 root bin 2146 46928 985675928
1 f none apache/find_htaccess.cgi 0700 root bin 1758 12185 985675928
1 f none apache/htaccess.cgi 0700 root bin 1504 59983 985675928
1 f none apache/htaccess_index.cgi 0700 root bin 2798 28983 985675928
1 d none apache/images 0700 root bin
1 f none apache/images/def.gif 0600 root bin 524 52842 985675927
1 f none apache/images/defines.gif 0600 root bin 706 16967 985675927
1 f none apache/images/dir.gif 0600 root bin 266 29430 985675927
1 f none apache/images/doc.gif 0600 root bin 245 29407 985675927
1 f none apache/images/edit.gif 0600 root bin 478 48537 985675927
1 f none apache/images/icon.gif 0600 root bin 524 52842 985675927
1 f none apache/images/recon.gif 0600 root bin 592 64167 985675927
1 f none apache/images/show.gif 0600 root bin 323 37244 985675927
1 f none apache/images/type_icon_0.gif 0600 root bin 259 29070 985675927
1 f none apache/images/type_icon_1.gif 0600 root bin 478 58145 985675927
1 f none apache/images/type_icon_10.gif 0600 root bin 208 23229 985675927
1 f none apache/images/type_icon_11.gif 0600 root bin 388 40285 985675927
1 f none apache/images/type_icon_12.gif 0600 root bin 286 31680 985675927
1 f none apache/images/type_icon_13.gif 0600 root bin 214 23452 985675927
1 f none apache/images/type_icon_14.gif 0600 root bin 364 43760 985675927
1 f none apache/images/type_icon_2.gif 0600 root bin 281 32091 985675927
1 f none apache/images/type_icon_3.gif 0600 root bin 470 52260 985675927
1 f none apache/images/type_icon_4.gif 0600 root bin 275 34570 985675927
1 f none apache/images/type_icon_5.gif 0600 root bin 373 41729 985675927
1 f none apache/images/type_icon_6.gif 0600 root bin 395 44484 985675927
1 f none apache/images/type_icon_7.gif 0600 root bin 394 41034 985675927
1 f none apache/images/type_icon_8.gif 0600 root bin 390 43396 985675927
1 f none apache/images/type_icon_9.gif 0600 root bin 460 53918 985675927
1 f none apache/images/virt.gif 0600 root bin 524 52842 985675927
1 f none apache/images/virt_index.gif 0600 root bin 2654 62271 985675927
1 f none apache/index.cgi 0700 root bin 8783 42058 985675927
1 d none apache/lang 0700 root bin
1 f none apache/lang/de 0600 root bin 11155 61411 985675927
1 f none apache/lang/en 0600 root bin 29620 46609 985675927
1 f none apache/lang/es 0600 root bin 35325 48310 985675927
1 f none apache/lang/fr 0600 root bin 10651 37780 985675927
1 f none apache/lang/hu 0600 root bin 28072 9268 985675927
1 f none apache/lang/it 0600 root bin 10216 38487 985675927
1 f none apache/lang/nl 0700 root bin 32787 40972 985675927
1 f none apache/lang/pl 0600 root bin 33945 39922 985675928
1 f none apache/lang/pt 0600 root bin 10017 54712 985675927
1 f none apache/lang/ru_RU 0600 root bin 9822 27879 985675928
1 f none apache/lang/ru_SU 0600 root bin 9909 13750 985675927
1 f none apache/lang/sv 0600 root bin 31911 6096 985675927
1 f none apache/lang/tr 0600 root bin 30724 44450 985675927
1 f none apache/lang/zh_CN 0600 root bin 22578 49154 985675928
1 f none apache/lang/zh_TW.Big5 0600 root bin 7358 24068 985675927
1 f none apache/list_authgroups.cgi 0700 root bin 1487 51697 985675928
1 f none apache/list_authusers.cgi 0700 root bin 1978 29335 985675928
1 f none apache/log_parser.pl 0600 root bin 3320 58265 985675928
1 f none apache/manual_form.cgi 0700 root bin 2510 2609 985675928
1 f none apache/manual_save.cgi 0700 root bin 1721 4042 985675928
1 f none apache/mod_access.pl 0600 root bin 3152 44817 985675928
1 f none apache/mod_actions.pl 0600 root bin 2618 4267 985675927
1 f none apache/mod_alias.pl 0600 root bin 5297 33923 985675927
1 f none apache/mod_asis.pl 0600 root bin 125 10531 985675928
1 f none apache/mod_auth.pl 0600 root bin 1883 22312 985675928
1 f none apache/mod_auth_dbm.pl 0600 root bin 1485 54181 985675928
1 f none apache/mod_autoindex.pl 0600 root bin 2063 32312 985675928
1 f none apache/mod_browser.pl 0600 root bin 276 23802 985675928
1 f none apache/mod_cern_meta.pl 0600 root bin 1152 26386 985675928
1 f none apache/mod_cgi.pl 0600 root bin 1288 40877 985675928
1 f none apache/mod_dir.pl 0600 root bin 1087 15671 985675927
1 f none apache/mod_env.pl 0600 root bin 2077 28496 985675928
1 f none apache/mod_expires.pl.broken 0600 root bin 3295 51150 985675928
1 f none apache/mod_imap.pl 0600 root bin 2403 64653 985675928
1 f none apache/mod_include.pl 0600 root bin 551 45864 985675928
1 f none apache/mod_info.pl 0600 root bin 145 12617 985675928
1 f none apache/mod_log_agent.pl 0600 root bin 1101 24147 985675928
1 f none apache/mod_log_common.pl 0600 root bin 1168 29749 985675928
1 f none apache/mod_log_config.pl 0600 root bin 4450 13631 985675927
1 f none apache/mod_log_referer.pl 0600 root bin 1625 1986 985675928
1 f none apache/mod_mime.pl 0600 root bin 4616 46651 985675927
1 f none apache/mod_mime_magic.pl 0600 root bin 521 43594 985675928
1 f none apache/mod_negotiation.pl 0600 root bin 924 11634 985675928
1 f none apache/mod_perl.pl 0600 root bin 147 12898 985675928
1 f none apache/mod_php.pl 0600 root bin 93 8070 985675928
1 f none apache/mod_php3.pl 0600 root bin 147 12618 985675928
1 f none apache/mod_php4.pl 0600 root bin 147 12623 985675928
1 f none apache/mod_proxy.pl 0600 root bin 10592 47377 985675928
1 f none apache/mod_setenvif.pl 0600 root bin 3115 41238 985675928
1 f none apache/mod_speling.pl 0600 root bin 565 46556 985675928
1 f none apache/mod_ssl.pl 0600 root bin 3262 4270 985675928
1 f none apache/mod_status.pl 0600 root bin 542 45268 985675928
1 f none apache/mod_userdir.pl 0600 root bin 2504 59616 985675927
1 f none apache/module.info 0600 root bin 621 62387 985675927
1 f none apache/notes 0600 root bin 1147 38271 985675927
1 f none apache/reconfig.cgi 0700 root bin 567 48627 985675927
1 f none apache/reconfig_form.cgi 0700 root bin 1863 19780 985675928
1 f none apache/restart.cgi 0700 root bin 1389 47947 985675928
1 f none apache/save_authgroup.cgi 0700 root bin 1124 27262 985675928
1 f none apache/save_authuser.cgi 0700 root bin 1200 31716 985675928
1 f none apache/save_defines.cgi 0700 root bin 447 38964 985675928
1 f none apache/save_dir.cgi 0700 root bin 744 63459 985675928
1 f none apache/save_files.cgi 0700 root bin 738 63975 985675928
1 f none apache/save_global.cgi 0700 root bin 514 44173 985675928
1 f none apache/save_gmime_type.cgi 0700 root bin 732 58451 985675927
1 f none apache/save_htaccess.cgi 0700 root bin 667 58477 985675928
1 f none apache/save_sync.cgi 0700 root bin 494 42571 985675928
1 f none apache/save_virt.cgi 0700 root bin 734 63058 985675928
1 f none apache/save_vserv.cgi 0700 root bin 2781 23149 985675928
1 f none apache/show.cgi 0700 root bin 3768 33472 985675928
1 f none apache/show_dir.cgi 0700 root bin 2076 34605 985675928
1 f none apache/show_files.cgi 0700 root bin 2076 34763 985675927
1 f none apache/show_htaccess.cgi 0700 root bin 2100 32978 985675927
1 f none apache/show_virt.cgi 0700 root bin 2154 37985 985675928
1 f none apache/start.cgi 0700 root bin 2018 33980 985675928
1 f none apache/stop.cgi 0700 root bin 1046 19705 985675927
1 f none apache/useradmin_update.pl 0600 root bin 961 7735 985675928
1 f none apache/virt_index.cgi 0700 root bin 3115 55302 985675927
1 d none bind8 0700 root bin
1 f none bind8/acl_security.pl 0600 root bin 5369 47399 985675931
1 f none bind8/bind8-lib.pl 0600 root bin 23550 48094 985675930
1 f none bind8/conf_acls.cgi 0700 root bin 910 8822 985675931
1 f none bind8/conf_files.cgi 0700 root bin 1302 44440 985675931
1 f none bind8/conf_forwarding.cgi 0700 root bin 1499 61871 985675931
1 f none bind8/conf_logging.cgi 0700 root bin 6663 9269 985675931
1 f none bind8/conf_misc.cgi 0700 root bin 2194 52174 985675931
1 f none bind8/conf_net.cgi 0700 root bin 2656 21194 985675931
1 f none bind8/conf_servers.cgi 0700 root bin 1763 13583 985675931
1 f none bind8/conf_zonedef.cgi 0700 root bin 3795 53497 985675931
1 f none bind8/config-aix 0600 root bin 183 16870 985675931
1 f none bind8/config-cobalt-linux 0600 root bin 188 17370 985675931
1 f none bind8/config-corel-linux 0600 root bin 188 17370 985675931
1 f none bind8/config-debian-linux 0600 root bin 188 17370 985675930
1 f none bind8/config-debian-linux-2.2 0600 root bin 193 17830 985675931
1 f none bind8/config-freebsd-2.1 0600 root bin 194 17940 985675931
1 f none bind8/config-freebsd-2.2 0600 root bin 194 17940 985675930
1 f none bind8/config-freebsd-3.0 0600 root bin 195 18032 985675931
1 f none bind8/config-freebsd-3.1 0600 root bin 188 17370 985675931
1 f none bind8/config-freebsd-3.2 0600 root bin 188 17370 985675931
1 f none bind8/config-freebsd-3.3 0600 root bin 188 17370 985675931
1 f none bind8/config-freebsd-3.4 0600 root bin 188 17370 985675931
1 f none bind8/config-freebsd-4.0 0600 root bin 195 18032 985675931
1 f none bind8/config-freebsd-5.0 0600 root bin 195 18032 985675931
1 f none bind8/config-hpux 0600 root bin 188 17370 985675930
1 f none bind8/config-irix 0600 root bin 188 17370 985675931
1 f none bind8/config-macos 0600 root bin 194 17934 985675931
1 f none bind8/config-macos-1.3 0600 root bin 188 17370 985675931
1 f none bind8/config-open-linux 0600 root bin 227 20954 985675931
1 f none bind8/config-openbsd-2.5 0600 root bin 188 17370 985675931
1 f none bind8/config-openbsd-2.6 0600 root bin 188 17370 985675931
1 f none bind8/config-openbsd-2.7 0600 root bin 188 17370 985675931
1 f none bind8/config-openserver 0600 root bin 188 17370 985675931
1 f none bind8/config-osf1 0600 root bin 188 17370 985675931
1 f none bind8/config-redhat-linux 0600 root bin 227 20954 985675930
1 f none bind8/config-redhat-linux-7.1 0600 root bin 261 24108 985675931
1 f none bind8/config-slackware-linux 0600 root bin 188 17370 985675930
1 f none bind8/config-solaris 0600 root bin 203 18661 985675930
1 f none bind8/config-solaris-7 0600 root bin 191 17631 985675931
1 f none bind8/config-solaris-8 0600 root bin 191 17631 985675931
1 f none bind8/config-suse-linux 0600 root bin 188 17371 985675930
1 f none bind8/config-turbo-linux 0600 root bin 188 17372 985675931
1 f none bind8/config-unixware 0600 root bin 229 21178 985675931
1 f none bind8/config.info 0600 root bin 1140 36814 985675930
1 f none bind8/config.info.de 0600 root bin 422 37942 985675930
1 f none bind8/config.info.es 0600 root bin 1173 43144 985675931
1 f none bind8/config.info.fr 0600 root bin 325 29458 985675931
1 f none bind8/config.info.pl 0600 root bin 1314 61311 985675931
1 f none bind8/config.info.ru_RU 0600 root bin 326 53131 985675931
1 f none bind8/config.info.ru_SU 0600 root bin 326 48740 985675931
1 f none bind8/config.info.sv 0600 root bin 1080 37166 985675931
1 f none bind8/config.info.tr 0600 root bin 582 62912 985675931
1 f none bind8/config.info.zh_CN 0600 root bin 667 20999 985675931
1 f none bind8/config.info.zh_TW.Big5 0600 root bin 302 38644 985675931
1 f none bind8/create_forward.cgi 0700 root bin 1870 21307 985675931
1 f none bind8/create_master.cgi 0700 root bin 4434 26341 985675930
1 f none bind8/create_slave.cgi 0700 root bin 3128 53192 985675930
1 f none bind8/db.cache 0600 root bin 2769 34340 985675930
1 f none bind8/defaultacl 0600 root bin 118 9908 985675931
1 f none bind8/delete_zone.cgi 0700 root bin 4269 19890 985675930
1 f none bind8/dns_boot.cgi 0700 root bin 1802 20967 985675930
1 f none bind8/edit_forward.cgi 0700 root bin 1675 8854 985675931
1 f none bind8/edit_master.cgi 0700 root bin 3466 15852 985675930
1 f none bind8/edit_options.cgi 0700 root bin 1733 17480 985675931
1 f none bind8/edit_record.cgi 0700 root bin 813 1964 985675930
1 f none bind8/edit_recs.cgi 0700 root bin 3480 4542 985675930
1 f none bind8/edit_slave.cgi 0700 root bin 4198 10933 985675930
1 f none bind8/edit_soa.cgi 0700 root bin 2410 5936 985675931
1 f none bind8/edit_stub.cgi 0700 root bin 2408 7062 985675930
1 f none bind8/edit_text.cgi 0700 root bin 1134 30539 985675930
1 f none bind8/find_free.cgi 0700 root bin 6427 28140 985675931
1 f none bind8/find_zones.cgi 0700 root bin 1616 61451 985675931
1 f none bind8/forward_form.cgi 0700 root bin 1135 31376 985675931
1 d none bind8/images 0700 root bin
1 f none bind8/images/A.gif 0600 root bin 307 33387 985675930
1 f none bind8/images/AAAA.gif 0600 root bin 393 37317 985675930
1 f none bind8/images/CNAME.gif 0600 root bin 423 47985 985675930
1 f none bind8/images/HINFO.gif 0600 root bin 376 45931 985675930
1 f none bind8/images/LOC.gif 0600 root bin 401 46723 985675930
1 f none bind8/images/MX.gif 0600 root bin 453 51436 985675930
1 f none bind8/images/NS.gif 0600 root bin 439 48965 985675930
1 f none bind8/images/PTR.gif 0600 root bin 373 41933 985675930
1 f none bind8/images/RP.gif 0600 root bin 425 46682 985675930
1 f none bind8/images/TXT.gif 0600 root bin 406 46790 985675930
1 f none bind8/images/WKS.gif 0600 root bin 450 49749 985675930
1 f none bind8/images/acls.gif 0600 root bin 275 34570 985675930
1 f none bind8/images/files.gif 0600 root bin 266 29430 985675930
1 f none bind8/images/findfree.gif 0600 root bin 1582 26323 985675930
1 f none bind8/images/forward.gif 0600 root bin 2022 61873 985675930
1 f none bind8/images/forwarding.gif 0600 root bin 315 42734 985675930
1 f none bind8/images/icon.gif 0600 root bin 2015 43699 985675930
1 f none bind8/images/logging.gif 0600 root bin 470 52260 985675930
1 f none bind8/images/master.gif 0600 root bin 1942 49324 985675930
1 f none bind8/images/misc.gif 0600 root bin 460 53918 985675930
1 f none bind8/images/net.gif 0600 root bin 478 58145 985675930
1 f none bind8/images/no-home.gif 0600 root bin 3768 28252 985675930
1 f none bind8/images/options.gif 0600 root bin 333 39703 985675930
1 f none bind8/images/servers.gif 0600 root bin 372 46326 985675930
1 f none bind8/images/slave.gif 0600 root bin 1920 13163 985675930
1 f none bind8/images/soa.gif 0600 root bin 434 46821 985675930
1 f none bind8/images/stub.gif 0600 root bin 1902 9175 985675930
1 f none bind8/images/text.gif 0600 root bin 305 37957 985675930
1 f none bind8/images/zonedef.gif 0600 root bin 1692 33173 985675930
1 f none bind8/index.cgi 0700 root bin 6224 38639 985675930
1 d none bind8/lang 0700 root bin
1 f none bind8/lang/de 0600 root bin 16040 62578 985675931
1 f none bind8/lang/en 0600 root bin 15763 31617 985675931
1 f none bind8/lang/es 0600 root bin 18139 32759 985675931
1 f none bind8/lang/fr 0600 root bin 15100 15742 985675931
1 f none bind8/lang/it 0600 root bin 13958 58819 985675931
1 f none bind8/lang/pl 0600 root bin 18944 33436 985675931
1 f none bind8/lang/pt 0600 root bin 14067 64378 985675931
1 f none bind8/lang/ru_RU 0600 root bin 13953 32442 985675931
1 f none bind8/lang/ru_SU 0600 root bin 14040 28293 985675931
1 f none bind8/lang/sv 0600 root bin 16561 54937 985675931
1 f none bind8/lang/tr 0600 root bin 16470 53288 985675931
1 f none bind8/lang/zh_CN 0600 root bin 11660 65179 985675931
1 f none bind8/lang/zh_TW.Big5 0600 root bin 10792 26505 985675931
1 f none bind8/log_parser.pl 0600 root bin 1200 32060 985675931
1 f none bind8/master_form.cgi 0700 root bin 2682 34854 985675930
1 f none bind8/module.info 0600 root bin 565 52963 985675930
1 f none bind8/records-lib.pl 0600 root bin 11992 20313 985675931
1 f none bind8/restart.cgi 0700 root bin 360 30429 985675930
1 f none bind8/save_acls.cgi 0700 root bin 809 64956 985675931
1 f none bind8/save_files.cgi 0700 root bin 753 64226 985675931
1 f none bind8/save_forward.cgi 0700 root bin 665 56996 985675931
1 f none bind8/save_forwarding.cgi 0700 root bin 906 12970 985675931
1 f none bind8/save_logging.cgi 0700 root bin 2558 63954 985675931
1 f none bind8/save_master.cgi 0700 root bin 895 12050 985675930
1 f none bind8/save_misc.cgi 0700 root bin 1255 41318 985675931
1 f none bind8/save_net.cgi 0700 root bin 1542 59049 985675931
1 f none bind8/save_record.cgi 0700 root bin 12724 10949 985675930
1 f none bind8/save_servers.cgi 0700 root bin 1352 40782 985675931
1 f none bind8/save_slave.cgi 0700 root bin 1265 40401 985675930
1 f none bind8/save_soa.cgi 0700 root bin 1800 17461 985675930
1 f none bind8/save_text.cgi 0700 root bin 774 65480 985675931
1 f none bind8/save_zonedef.cgi 0700 root bin 2017 36014 985675931
1 f none bind8/slave_form.cgi 0700 root bin 1693 13823 985675930
1 f none bind8/start.cgi 0700 root bin 1211 33523 985675930
1 f none bind8/stub_form.cgi 0700 root bin 1693 13823 985675930
1 d none bsdexports 0700 root bin
1 f none bsdexports/bsdexports-lib.pl 0600 root bin 2270 48842 985675935
1 f none bsdexports/config-freebsd 0600 root bin 86 8059 985675935
1 f none bsdexports/config-macos 0600 root bin 165 14488 985675935
1 f none bsdexports/config-openbsd 0600 root bin 86 8059 985675935
1 f none bsdexports/config.info 0600 root bin 81 7694 985675935
1 f none bsdexports/config.info.de 0600 root bin 89 8415 985675935
1 f none bsdexports/config.info.es 0600 root bin 96 9175 985675935
1 f none bsdexports/config.info.fr 0600 root bin 95 8995 985675935
1 f none bsdexports/config.info.pl 0600 root bin 90 8640 985675935
1 f none bsdexports/config.info.sv 0600 root bin 91 8760 985675935
1 f none bsdexports/config.info.tr 0600 root bin 90 8928 985675935
1 f none bsdexports/config.info.zh_CN 0600 root bin 77 9357 985675936
1 f none bsdexports/config.info.zh_TW.Big5 0600 root bin 73 8564 985675935
1 f none bsdexports/delete_export.cgi 0700 root bin 270 23772 985675935
1 f none bsdexports/edit_export.cgi 0700 root bin 4132 12639 985675935
1 d none bsdexports/images 0700 root bin
1 f none bsdexports/images/icon.gif 0600 root bin 245 29407 985675935
1 f none bsdexports/index.cgi 0700 root bin 1318 41190 985675935
1 f none bsdexports/module.info 0600 root bin 322 31182 985675935
1 f none bsdexports/notes 0600 root bin 373 33536 985675935
1 f none bsdexports/restart_mountd.cgi 0700 root bin 337 28778 985675935
1 f none bsdexports/save_export.cgi 0700 root bin 4343 17134 985675935
1 d none caldera 0700 root bin
1 f none caldera/Alphabet.gif 0600 root bin 8492 3248 985675961
1 d none caldera/acl 0700 root bin
1 d none caldera/acl/images 0700 root bin
1 f none caldera/acl/images/icon.gif 0600 root bin 519 54805 985675962
1 d none caldera/apache 0700 root bin
1 d none caldera/apache/images 0700 root bin
1 f none caldera/apache/images/icon.gif 0600 root bin 578 3342 985675963
1 d none caldera/bind8 0700 root bin
1 d none caldera/bind8/images 0700 root bin
1 f none caldera/bind8/images/icon.gif 0600 root bin 540 65158 985675963
1 d none caldera/bsdexports 0700 root bin
1 d none caldera/bsdexports/images 0700 root bin
1 f none caldera/bsdexports/images/icon.gif 0600 root bin 568 64197 985675963
1 d none caldera/certmgr 0700 root bin
1 d none caldera/certmgr/images 0700 root bin
1 f none caldera/certmgr/images/icon.gif 0600 root bin 300 34616 985675965
1 f none caldera/config 0600 root bin 25 2180 985675965
1 d none caldera/cpan 0700 root bin
1 d none caldera/cpan/images 0700 root bin
1 f none caldera/cpan/images/icon.gif 0600 root bin 1248 64931 985675964
1 d none caldera/cron 0700 root bin
1 d none caldera/cron/images 0700 root bin
1 f none caldera/cron/images/icon.gif 0600 root bin 507 49655 985675964
1 d none caldera/custom 0700 root bin
1 d none caldera/custom/images 0700 root bin
1 f none caldera/custom/images/icon.gif 0600 root bin 590 1709 985675964
1 d none caldera/dfsadmin 0700 root bin
1 d none caldera/dfsadmin/images 0700 root bin
1 f none caldera/dfsadmin/images/icon.gif 0600 root bin 568 64197 985675964
1 d none caldera/dhcpd 0700 root bin
1 d none caldera/dhcpd/images 0700 root bin
1 f none caldera/dhcpd/images/icon.gif 0600 root bin 546 1598 985675964
1 d none caldera/dnsadmin 0700 root bin
1 d none caldera/dnsadmin/images 0700 root bin
1 f none caldera/dnsadmin/images/icon.gif 0600 root bin 540 65158 985675964
1 d none caldera/exports 0700 root bin
1 d none caldera/exports/images 0700 root bin
1 f none caldera/exports/images/icon.gif 0600 root bin 568 64197 985675964
1 d none caldera/fdisk 0700 root bin
1 d none caldera/fdisk/images 0700 root bin
1 f none caldera/fdisk/images/icon.gif 0600 root bin 553 1748 985675964
1 d none caldera/file 0700 root bin
1 d none caldera/file/images 0700 root bin
1 f none caldera/file/images/icon.gif 0600 root bin 522 65367 985675964
1 d none caldera/firewall 0700 root bin
1 d none caldera/firewall/images 0700 root bin
1 d none caldera/format 0700 root bin
1 d none caldera/format/images 0700 root bin
1 f none caldera/format/images/icon.gif 0600 root bin 553 1748 985675964
1 d none caldera/help 0700 root bin
1 d none caldera/help/images 0700 root bin
1 f none caldera/help/images/icon.gif 0600 root bin 609 4737 985675964
1 d none caldera/hpuxexports 0700 root bin
1 d none caldera/hpuxexports/images 0700 root bin
1 f none caldera/hpuxexports/images/icon.gif 0600 root bin 568 64197 985675964
1 d none caldera/images 0700 root bin
1 f none caldera/images/blue-bg.gif 0600 root bin 799 17967 985675962
1 f none caldera/images/folder-off.gif 0600 root bin 38 2324 985675962
1 f none caldera/images/folder-on.gif 0600 root bin 1011 36755 985675962
1 f none caldera/images/gradient-bg.gif 0600 root bin 230 33700 985675962
1 d none caldera/images/letters 0700 root bin
1 f none caldera/images/letters/100.gif 0600 root bin 164 17949 985675962
1 f none caldera/images/letters/101.gif 0600 root bin 155 16396 985675962
1 f none caldera/images/letters/102.gif 0600 root bin 134 11272 985675962
1 f none caldera/images/letters/103.gif 0600 root bin 171 18578 985675962
1 f none caldera/images/letters/104.gif 0600 root bin 147 14679 985675962
1 f none caldera/images/letters/105.gif 0600 root bin 88 9163 985675962
1 f none caldera/images/letters/106.gif 0600 root bin 133 11738 985675962
1 f none caldera/images/letters/107.gif 0600 root bin 152 16988 985675962
1 f none caldera/images/letters/108.gif 0600 root bin 86 6834 985675962
1 f none caldera/images/letters/109.gif 0600 root bin 229 20369 985675962
1 f none caldera/images/letters/110.gif 0600 root bin 143 15657 985675962
1 f none caldera/images/letters/111.gif 0600 root bin 162 17456 985675962
1 f none caldera/images/letters/112.gif 0600 root bin 159 17329 985675962
1 f none caldera/images/letters/113.gif 0600 root bin 159 17214 985675962
1 f none caldera/images/letters/114.gif 0600 root bin 124 10972 985675962
1 f none caldera/images/letters/115.gif 0600 root bin 154 17189 985675962
1 f none caldera/images/letters/116.gif 0600 root bin 142 13087 985675962
1 f none caldera/images/letters/117.gif 0600 root bin 145 15269 985675962
1 f none caldera/images/letters/118.gif 0600 root bin 151 17611 985675962
1 f none caldera/images/letters/119.gif 0600 root bin 187 20982 985675962
1 f none caldera/images/letters/120.gif 0600 root bin 155 17761 985675962
1 f none caldera/images/letters/121.gif 0600 root bin 160 17928 985675962
1 f none caldera/images/letters/122.gif 0600 root bin 138 13922 985675962
1 f none caldera/images/letters/123.gif 0600 root bin 86 7577 985675962
1 f none caldera/images/letters/124.gif 0600 root bin 132 13794 985675962
1 f none caldera/images/letters/125.gif 0600 root bin 123 12585 985675962
1 f none caldera/images/letters/126.gif 0600 root bin 178 19324 985675962
1 f none caldera/images/letters/192.gif 0600 root bin 178 19459 985675962
1 f none caldera/images/letters/193.gif 0600 root bin 184 18919 985675962
1 f none caldera/images/letters/194.gif 0600 root bin 183 20694 985675962
1 f none caldera/images/letters/195.gif 0600 root bin 182 21236 985675962
1 f none caldera/images/letters/196.gif 0600 root bin 182 20704 985675962
1 f none caldera/images/letters/197.gif 0600 root bin 184 19794 985675962
1 f none caldera/images/letters/198.gif 0600 root bin 182 17624 985675962
1 f none caldera/images/letters/199.gif 0600 root bin 153 15459 985675962
1 f none caldera/images/letters/200.gif 0600 root bin 152 15471 985675962
1 f none caldera/images/letters/201.gif 0600 root bin 159 15431 985675962
1 f none caldera/images/letters/202.gif 0600 root bin 155 14927 985675962
1 f none caldera/images/letters/203.gif 0600 root bin 129 12675 985675962
1 f none caldera/images/letters/204.gif 0600 root bin 128 11578 985675962
1 f none caldera/images/letters/205.gif 0600 root bin 136 12072 985675962
1 f none caldera/images/letters/206.gif 0600 root bin 133 11882 985675962
1 f none caldera/images/letters/207.gif 0600 root bin 122 11752 985675962
1 f none caldera/images/letters/208.gif 0600 root bin 178 20342 985675962
1 f none caldera/images/letters/209.gif 0600 root bin 198 21299 985675962
1 f none caldera/images/letters/210.gif 0600 root bin 199 20780 985675962
1 f none caldera/images/letters/211.gif 0600 root bin 202 21844 985675962
1 f none caldera/images/letters/212.gif 0600 root bin 198 19064 985675962
1 f none caldera/images/letters/213.gif 0600 root bin 198 19245 985675962
1 f none caldera/images/letters/214.gif 0600 root bin 204 21942 985675962
1 f none caldera/images/letters/215.gif 0600 root bin 177 18626 985675962
1 f none caldera/images/letters/216.gif 0600 root bin 179 17906 985675962
1 f none caldera/images/letters/217.gif 0600 root bin 184 19073 985675962
1 f none caldera/images/letters/218.gif 0600 root bin 182 20310 985675962
1 f none caldera/images/letters/219.gif 0600 root bin 134 12675 985675962
1 f none caldera/images/letters/220.gif 0600 root bin 154 16287 985675962
1 f none caldera/images/letters/221.gif 0600 root bin 174 21434 985675962
1 f none caldera/images/letters/222.gif 0600 root bin 162 17996 985675962
1 f none caldera/images/letters/223.gif 0600 root bin 165 17854 985675962
1 f none caldera/images/letters/224.gif 0600 root bin 168 19258 985675962
1 f none caldera/images/letters/225.gif 0600 root bin 170 18129 985675962
1 f none caldera/images/letters/226.gif 0600 root bin 168 17201 985675962
1 f none caldera/images/letters/227.gif 0600 root bin 171 18608 985675962
1 f none caldera/images/letters/228.gif 0600 root bin 186 19781 985675962
1 f none caldera/images/letters/229.gif 0600 root bin 158 17395 985675962
1 f none caldera/images/letters/230.gif 0600 root bin 166 16975 985675962
1 f none caldera/images/letters/231.gif 0600 root bin 162 17510 985675962
1 f none caldera/images/letters/232.gif 0600 root bin 173 18480 985675962
1 f none caldera/images/letters/233.gif 0600 root bin 168 19290 985675962
1 f none caldera/images/letters/234.gif 0600 root bin 125 11989 985675962
1 f none caldera/images/letters/235.gif 0600 root bin 123 11319 985675962
1 f none caldera/images/letters/236.gif 0600 root bin 132 11923 985675962
1 f none caldera/images/letters/237.gif 0600 root bin 131 12561 985675962
1 f none caldera/images/letters/238.gif 0600 root bin 120 11981 985675962
1 f none caldera/images/letters/239.gif 0600 root bin 160 17666 985675962
1 f none caldera/images/letters/240.gif 0600 root bin 169 17990 985675962
1 f none caldera/images/letters/241.gif 0600 root bin 170 17725 985675962
1 f none caldera/images/letters/242.gif 0600 root bin 174 19411 985675962
1 f none caldera/images/letters/243.gif 0600 root bin 173 18551 985675962
1 f none caldera/images/letters/244.gif 0600 root bin 173 17784 985675962
1 f none caldera/images/letters/245.gif 0600 root bin 128 12424 985675962
1 f none caldera/images/letters/246.gif 0600 root bin 166 17517 985675962
1 f none caldera/images/letters/247.gif 0600 root bin 148 14627 985675962
1 f none caldera/images/letters/248.gif 0600 root bin 146 15060 985675962
1 f none caldera/images/letters/249.gif 0600 root bin 159 15310 985675962
1 f none caldera/images/letters/250.gif 0600 root bin 158 16128 985675962
1 f none caldera/images/letters/251.gif 0600 root bin 133 11282 985675962
1 f none caldera/images/letters/252.gif 0600 root bin 153 14828 985675962
1 f none caldera/images/letters/253.gif 0600 root bin 174 19504 985675962
1 f none caldera/images/letters/254.gif 0600 root bin 0 0 985675962
1 f none caldera/images/letters/255.gif 0600 root bin 0 0 985675962
1 f none caldera/images/letters/32.gif 0600 root bin 123 14068 985675962
1 f none caldera/images/letters/33.gif 0600 root bin 94 9882 985675962
1 f none caldera/images/letters/34.gif 0600 root bin 126 10164 985675962
1 f none caldera/images/letters/35.gif 0600 root bin 168 18937 985675962
1 f none caldera/images/letters/36.gif 0600 root bin 172 19405 985675962
1 f none caldera/images/letters/37.gif 0600 root bin 202 19915 985675962
1 f none caldera/images/letters/38.gif 0600 root bin 194 20945 985675962
1 f none caldera/images/letters/39.gif 0600 root bin 82 7765 985675962
1 f none caldera/images/letters/40.gif 0600 root bin 138 14958 985675962
1 f none caldera/images/letters/41.gif 0600 root bin 136 13658 985675962
1 f none caldera/images/letters/42.gif 0600 root bin 148 16556 985675962
1 f none caldera/images/letters/43.gif 0600 root bin 128 11344 985675962
1 f none caldera/images/letters/44.gif 0600 root bin 111 9028 985675962
1 f none caldera/images/letters/45.gif 0600 root bin 63 4757 985675962
1 f none caldera/images/letters/46.gif 0600 root bin 76 6659 985675962
1 f none caldera/images/letters/47.gif 0600 root bin 142 15800 985675962
1 f none caldera/images/letters/48.gif 0600 root bin 166 18775 985675962
1 f none caldera/images/letters/49.gif 0600 root bin 125 11191 985675962
1 f none caldera/images/letters/50.gif 0600 root bin 153 16292 985675962
1 f none caldera/images/letters/51.gif 0600 root bin 164 17431 985675962
1 f none caldera/images/letters/52.gif 0600 root bin 148 15925 985675962
1 f none caldera/images/letters/53.gif 0600 root bin 160 17003 985675962
1 f none caldera/images/letters/54.gif 0600 root bin 168 18886 985675962
1 f none caldera/images/letters/55.gif 0600 root bin 141 14209 985675962
1 f none caldera/images/letters/56.gif 0600 root bin 173 18253 985675962
1 f none caldera/images/letters/57.gif 0600 root bin 169 18324 985675962
1 f none caldera/images/letters/58.gif 0600 root bin 83 7658 985675962
1 f none caldera/images/letters/59.gif 0600 root bin 120 10686 985675962
1 f none caldera/images/letters/60.gif 0600 root bin 138 14839 985675962
1 f none caldera/images/letters/61.gif 0600 root bin 91 8129 985675962
1 f none caldera/images/letters/62.gif 0600 root bin 138 16067 985675962
1 f none caldera/images/letters/63.gif 0600 root bin 145 16103 985675962
1 f none caldera/images/letters/64.gif 0600 root bin 251 23489 985675962
1 f none caldera/images/letters/65.gif 0600 root bin 167 19518 985675961
1 f none caldera/images/letters/66.gif 0600 root bin 168 18711 985675961
1 f none caldera/images/letters/67.gif 0600 root bin 173 19285 985675961
1 f none caldera/images/letters/68.gif 0600 root bin 164 18069 985675961
1 f none caldera/images/letters/69.gif 0600 root bin 146 14806 985675961
1 f none caldera/images/letters/70.gif 0600 root bin 138 12253 985675961
1 f none caldera/images/letters/71.gif 0600 root bin 181 19629 985675961
1 f none caldera/images/letters/72.gif 0600 root bin 119 10435 985675961
1 f none caldera/images/letters/73.gif 0600 root bin 91 9025 985675961
1 f none caldera/images/letters/74.gif 0600 root bin 138 13463 985675961
1 f none caldera/images/letters/75.gif 0600 root bin 170 20045 985675961
1 f none caldera/images/letters/76.gif 0600 root bin 104 11184 985675961
1 f none caldera/images/letters/77.gif 0600 root bin 203 23221 985675961
1 f none caldera/images/letters/78.gif 0600 root bin 166 17696 985675961
1 f none caldera/images/letters/79.gif 0600 root bin 186 19415 985675961
1 f none caldera/images/letters/80.gif 0600 root bin 149 16434 985675961
1 f none caldera/images/letters/81.gif 0600 root bin 183 19515 985675961
1 f none caldera/images/letters/82.gif 0600 root bin 162 18394 985675961
1 f none caldera/images/letters/83.gif 0600 root bin 183 19698 985675961
1 f none caldera/images/letters/84.gif 0600 root bin 87 8745 985675961
1 f none caldera/images/letters/85.gif 0600 root bin 166 18124 985675961
1 f none caldera/images/letters/86.gif 0600 root bin 168 17676 985675961
1 f none caldera/images/letters/87.gif 0600 root bin 225 23256 985675961
1 f none caldera/images/letters/88.gif 0600 root bin 169 18685 985675962
1 f none caldera/images/letters/89.gif 0600 root bin 156 16276 985675962
1 f none caldera/images/letters/90.gif 0600 root bin 154 17474 985675962
1 f none caldera/images/letters/91.gif 0600 root bin 207 22771 985675962
1 f none caldera/images/letters/93.gif 0600 root bin 143 15787 985675962
1 f none caldera/images/letters/94.gif 0600 root bin 85 8941 985675962
1 f none caldera/images/letters/95.gif 0600 root bin 106 9247 985675962
1 f none caldera/images/letters/96.gif 0600 root bin 130 13073 985675962
1 f none caldera/images/letters/97.gif 0600 root bin 156 17417 985675962
1 f none caldera/images/letters/98.gif 0600 root bin 159 18635 985675962
1 f none caldera/images/letters/99.gif 0600 root bin 150 16089 985675962
1 f none caldera/images/main-bg-pixel.gif 0600 root bin 35 1293 985675962
1 f none caldera/images/nav2bg.gif 0600 root bin 97 10212 985675962
1 f none caldera/images/navbg.gif 0600 root bin 110 11543 985675962
1 f none caldera/images/pixel-white.gif 0600 root bin 799 17884 985675962
1 f none caldera/images/spacer.gif 0600 root bin 43 1850 985675962
1 f none caldera/images/top-grad-stretch.gif 0600 root bin 62 3276 985675962
1 f none caldera/images/webmin-header.gif 0600 root bin 7992 20869 985675962
1 f none caldera/index.cgi 0700 root bin 1617 65507 985675963
1 f none caldera/index_body.cgi 0600 root bin 116 9603 985675965
1 f none caldera/index_top.cgi 0600 root bin 5528 14947 985675963
1 d none caldera/inetd 0700 root bin
1 d none caldera/inetd/images 0700 root bin
1 f none caldera/inetd/images/icon.gif 0600 root bin 565 1415 985675964
1 d none caldera/init 0700 root bin
1 d none caldera/init/images 0700 root bin
1 f none caldera/init/images/icon.gif 0600 root bin 621 2820 985675964
1 d none caldera/inittab 0700 root bin
1 d none caldera/inittab/images 0700 root bin
1 f none caldera/inittab/images/icon.gif 0600 root bin 569 474 985675964
1 d none caldera/ipcache 0700 root bin
1 d none caldera/ipcache/images 0700 root bin
1 d none caldera/ipchains 0700 root bin
1 d none caldera/ipchains/images 0700 root bin
1 f none caldera/ipchains/images/icon.gif 0600 root bin 344 38790 985675965
1 d none caldera/ipweb 0700 root bin
1 d none caldera/ipweb/images 0700 root bin
1 d none caldera/lilo 0700 root bin
1 d none caldera/lilo/images 0700 root bin
1 f none caldera/lilo/images/icon.gif 0600 root bin 623 5629 985675964
1 d none caldera/link 0700 root bin
1 d none caldera/link/images 0700 root bin
1 f none caldera/link/images/icon.gif 0600 root bin 676 48992 985675964
1 d none caldera/lkmload 0700 root bin
1 d none caldera/lkmload/images 0700 root bin
1 f none caldera/lkmload/images/icon.gif 0600 root bin 284 33796 985675965
1 d none caldera/lpadmin 0700 root bin
1 d none caldera/lpadmin/images 0700 root bin
1 f none caldera/lpadmin/images/icon.gif 0600 root bin 524 59033 985675964
1 d none caldera/majordomo 0700 root bin
1 d none caldera/majordomo/images 0700 root bin
1 f none caldera/majordomo/images/icon.gif 0600 root bin 518 56989 985675964
1 d none caldera/man 0700 root bin
1 d none caldera/man/images 0700 root bin
1 f none caldera/man/images/icon.gif 0600 root bin 519 53301 985675964
1 d none caldera/mount 0700 root bin
1 d none caldera/mount/images 0700 root bin
1 f none caldera/mount/images/icon.gif 0600 root bin 536 64712 985675964
1 d none caldera/mysql 0700 root bin
1 d none caldera/mysql/images 0700 root bin
1 f none caldera/mysql/images/icon.gif 0600 root bin 560 1203 985675964
1 d none caldera/net 0700 root bin
1 d none caldera/net/images 0700 root bin
1 f none caldera/net/images/icon.gif 0600 root bin 549 63360 985675964
1 d none caldera/nis 0700 root bin
1 d none caldera/nis/images 0700 root bin
1 f none caldera/nis/images/icon.gif 0600 root bin 679 48679 985675965
1 d none caldera/openldap 0700 root bin
1 d none caldera/openldap/images 0700 root bin
1 f none caldera/openldap/images/icon.gif 0600 root bin 347 39224 985675961
1 d none caldera/openslp 0700 root bin
1 d none caldera/openslp/images 0700 root bin
1 f none caldera/openslp/images/icon.gif 0600 root bin 298 35857 985675962
1 d none caldera/pam 0700 root bin
1 d none caldera/pam/images 0700 root bin
1 f none caldera/pam/images/icon.gif 0600 root bin 763 42612 985675964
1 d none caldera/pap 0700 root bin
1 d none caldera/pap/images 0700 root bin
1 f none caldera/pap/images/icon.gif 0600 root bin 544 59315 985675964
1 d none caldera/postfix 0700 root bin
1 d none caldera/postfix/images 0700 root bin
1 f none caldera/postfix/images/icon.gif 0600 root bin 603 2547 985675964
1 d none caldera/postgresql 0700 root bin
1 d none caldera/postgresql/images 0700 root bin
1 f none caldera/postgresql/images/icon.gif 0600 root bin 560 1203 985675964
1 d none caldera/proc 0700 root bin
1 d none caldera/proc/images 0700 root bin
1 f none caldera/proc/images/icon.gif 0600 root bin 570 1927 985675964
1 d none caldera/quota 0700 root bin
1 d none caldera/quota/images 0700 root bin
1 f none caldera/quota/images/icon.gif 0600 root bin 547 575 985675964
1 d none caldera/raid 0700 root bin
1 d none caldera/raid/images 0700 root bin
1 f none caldera/raid/images/icon.gif 0600 root bin 559 500 985675964
1 d none caldera/samba 0700 root bin
1 d none caldera/samba/images 0700 root bin
1 f none caldera/samba/images/icon.gif 0600 root bin 484 49319 985675964
1 d none caldera/sendmail 0700 root bin
1 d none caldera/sendmail/images 0700 root bin
1 f none caldera/sendmail/images/icon.gif 0600 root bin 568 1480 985675964
1 d none caldera/servers 0700 root bin
1 d none caldera/servers/images 0700 root bin
1 f none caldera/servers/images/icon.gif 0600 root bin 549 114 985675964
1 d none caldera/shell 0700 root bin
1 d none caldera/shell/images 0700 root bin
1 f none caldera/shell/images/icon.gif 0600 root bin 968 53572 985675965
1 d none caldera/software 0700 root bin
1 d none caldera/software/images 0700 root bin
1 f none caldera/software/images/icon.gif 0600 root bin 589 3315 985675964
1 d none caldera/squid 0700 root bin
1 d none caldera/squid/images 0700 root bin
1 f none caldera/squid/images/icon.gif 0600 root bin 561 2069 985675964
1 d none caldera/ssh 0700 root bin
1 d none caldera/ssh/images 0700 root bin
1 f none caldera/ssh/images/icon.gif 0600 root bin 513 3 985675964
1 d none caldera/status 0700 root bin
1 d none caldera/status/images 0700 root bin
1 f none caldera/status/images/icon.gif 0600 root bin 1284 51185 985675964
1 d none caldera/steed 0700 root bin
1 f none caldera/steed/apache_nav.html 0600 root bin 3753 4698 985675962
1 d none caldera/steed/css 0700 root bin
1 f none caldera/steed/css/style.css 0600 root bin 1697 59925 985675962
1 d none caldera/steed/hardware 0700 root bin
1 f none caldera/steed/hardware.html 0600 root bin 398 28516 985675962
1 f none caldera/steed/hardware/fdisk.html 0600 root bin 667 39824 985675962
1 f none caldera/steed/hardware/lilo.html 0600 root bin 668 40030 985675962
1 f none caldera/steed/hardware/lpadmin.html 0600 root bin 664 39687 985675962
1 f none caldera/steed/hardware/net.html 0600 root bin 663 39583 985675962
1 f none caldera/steed/hardware/raid.html 0600 root bin 652 38285 985675962
1 f none caldera/steed/hardware/time.html 0600 root bin 653 38513 985675962
1 f none caldera/steed/hardware_body.html 0600 root bin 611 37698 985675962
1 f none caldera/steed/hardware_nav.html 0600 root bin 6369 43590 985675962
1 d none caldera/steed/home 0700 root bin
1 f none caldera/steed/home/authentication.html 0600 root bin 656 38909 985675962
1 f none caldera/steed/home/editcats.html 0600 root bin 657 38889 985675962
1 f none caldera/steed/home/indexpageopts.html 0600 root bin 660 39134 985675962
1 f none caldera/steed/home/ipaccesscontrol.html 0600 root bin 621 38548 985675962
1 f none caldera/steed/home/lang.html 0600 root bin 650 38241 985675962
1 f none caldera/steed/home/logging.html 0600 root bin 649 38148 985675962
1 f none caldera/steed/home/os.html 0600 root bin 658 39051 985675962
1 f none caldera/steed/home/portaddress.html 0600 root bin 658 38939 985675962
1 f none caldera/steed/home/proxys.html 0600 root bin 655 38761 985675962
1 f none caldera/steed/home/reassignmods.html 0600 root bin 658 39026 985675962
1 f none caldera/steed/home/upgradewebmin.html 0600 root bin 656 38791 985675962
1 f none caldera/steed/home/useri.html 0600 root bin 656 38797 985675962
1 f none caldera/steed/home/webminmods.html 0600 root bin 656 38808 985675962
1 d none caldera/steed/images 0700 root bin
1 f none caldera/steed/images/blue-bg.gif 0600 root bin 799 17967 985675962
1 f none caldera/steed/images/folder-off.gif 0600 root bin 38 2324 985675962
1 f none caldera/steed/images/folder-on.gif 0600 root bin 1011 36755 985675962
1 f none caldera/steed/images/gradient-bg.gif 0600 root bin 230 33700 985675962
1 f none caldera/steed/images/icon01.gif 0600 root bin 621 2820 985675962
1 f none caldera/steed/images/icon02.gif 0600 root bin 519 53301 985675962
1 f none caldera/steed/images/icon03.gif 0600 root bin 507 49655 985675962
1 f none caldera/steed/images/icon04.gif 0600 root bin 541 61760 985675962
1 f none caldera/steed/images/icon05.gif 0600 root bin 547 575 985675962
1 f none caldera/steed/images/icon06.gif 0600 root bin 568 64197 985675962
1 f none caldera/steed/images/icon07.gif 0600 root bin 589 3315 985675962
1 f none caldera/steed/images/icon08.gif 0600 root bin 551 62511 985675962
1 f none caldera/steed/images/icon09.gif 0600 root bin 536 64712 985675962
1 f none caldera/steed/images/icon10.gif 0600 root bin 570 1927 985675962
1 f none caldera/steed/images/icon11.gif 0600 root bin 569 474 985675962
1 f none caldera/steed/images/iconT0-01.gif 0600 root bin 400 45435 985675962
1 f none caldera/steed/images/iconT0-02.gif 0600 root bin 415 44964 985675962
1 f none caldera/steed/images/iconT0-03.gif 0600 root bin 390 45247 985675962
1 f none caldera/steed/images/iconT0-04.gif 0600 root bin 392 45432 985675962
1 f none caldera/steed/images/iconT0-05.gif 0600 root bin 402 41888 985675962
1 f none caldera/steed/images/iconT0-06.gif 0600 root bin 386 43736 985675962
1 f none caldera/steed/images/iconT0-07.gif 0600 root bin 426 47103 985675962
1 f none caldera/steed/images/iconT0-08.gif 0600 root bin 455 51120 985675962
1 f none caldera/steed/images/iconT0-09.gif 0600 root bin 451 47246 985675962
1 f none caldera/steed/images/iconT0-10.gif 0600 root bin 418 45582 985675962
1 f none caldera/steed/images/iconT0-11.gif 0600 root bin 411 44597 985675962
1 f none caldera/steed/images/iconT0-12.gif 0600 root bin 468 45942 985675962
1 f none caldera/steed/images/iconT0-13.gif 0600 root bin 384 42926 985675962
1 f none caldera/steed/images/iconT1-02.gif 0600 root bin 589 5882 985675962
1 f none caldera/steed/images/iconT1-03.gif 0600 root bin 609 4737 985675962
1 f none caldera/steed/images/iconT1-04.gif 0600 root bin 549 114 985675962
1 f none caldera/steed/images/iconT1-05.gif 0600 root bin 519 54805 985675962
1 f none caldera/steed/images/iconT3-01.gif 0600 root bin 578 3342 985675963
1 f none caldera/steed/images/iconT3-02.gif 0600 root bin 540 65158 985675963
1 f none caldera/steed/images/iconT3-04.gif 0600 root bin 546 1598 985675963
1 f none caldera/steed/images/iconT3-05.gif 0600 root bin 552 932 985675963
1 f none caldera/steed/images/iconT3-06.gif 0600 root bin 565 1415 985675963
1 f none caldera/steed/images/iconT3-07.gif 0600 root bin 518 56989 985675963
1 f none caldera/steed/images/iconT3-08.gif 0600 root bin 560 1203 985675963
1 f none caldera/steed/images/iconT3-09.gif 0600 root bin 544 59315 985675963
1 f none caldera/steed/images/iconT3-10.gif 0600 root bin 603 2547 985675963
1 f none caldera/steed/images/iconT3-12.gif 0600 root bin 484 49319 985675963
1 f none caldera/steed/images/iconT3-13.gif 0600 root bin 568 1480 985675963
1 f none caldera/steed/images/iconT3-14.gif 0600 root bin 561 2069 985675963
1 f none caldera/steed/images/iconT4-01.gif 0600 root bin 623 5629 985675963
1 f none caldera/steed/images/iconT4-02.gif 0600 root bin 559 500 985675963
1 f none caldera/steed/images/iconT4-03.gif 0600 root bin 549 63360 985675963
1 f none caldera/steed/images/iconT4-04.gif 0600 root bin 553 1748 985675963
1 f none caldera/steed/images/iconT4-05.gif 0600 root bin 524 59033 985675963
1 f none caldera/steed/images/iconT4-06.gif 0600 root bin 556 773 985675963
1 f none caldera/steed/images/iconT5-01.gif 0600 root bin 590 1709 985675963
1 f none caldera/steed/images/iconT5-02.gif 0600 root bin 522 65367 985675963
1 f none caldera/steed/images/iconT5-03.gif 0600 root bin 513 3 985675963
1 f none caldera/steed/images/iconblank.gif 0600 root bin 35 1293 985675963
1 f none caldera/steed/images/iconserverT3-01.gif 0600 root bin 601 6461 985675962
1 f none caldera/steed/images/iconserverT3-02.gif 0600 root bin 576 829 985675962
1 f none caldera/steed/images/iconserverT3-03.gif 0600 root bin 588 3377 985675962
1 f none caldera/steed/images/iconserverT3-04.gif 0600 root bin 544 56096 985675962
1 f none caldera/steed/images/iconserverT3-05.gif 0600 root bin 534 56552 985675962
1 f none caldera/steed/images/iconserverT3-06.gif 0600 root bin 493 50064 985675962
1 f none caldera/steed/images/iconserverT3-07.gif 0600 root bin 592 3036 985675962
1 f none caldera/steed/images/iconserverT3-08.gif 0600 root bin 589 3253 985675962
1 f none caldera/steed/images/iconserverT3-09.gif 0600 root bin 534 55045 985675962
1 f none caldera/steed/images/main-bg-pixel.gif 0600 root bin 35 1293 985675963
1 f none caldera/steed/images/nav2bg.gif 0600 root bin 97 10212 985675963
1 f none caldera/steed/images/navbg.gif 0600 root bin 110 11543 985675963
1 f none caldera/steed/images/pixel-white.gif 0600 root bin 799 17884 985675963
1 f none caldera/steed/images/spacer.gif 0600 root bin 43 1850 985675963
1 f none caldera/steed/images/top-grad-stretch.gif 0600 root bin 62 3276 985675963
1 f none caldera/steed/images/webmin-header.gif 0600 root bin 6112 2851 985675963
1 f none caldera/steed/index.html 0600 root bin 393 27995 985675963
1 f none caldera/steed/index_body.html 0600 root bin 607 37277 985675963
1 f none caldera/steed/index_nav.html 0600 root bin 8275 51593 985675963
1 d none caldera/steed/others 0700 root bin
1 f none caldera/steed/others.html 0600 root bin 392 27964 985675963
1 f none caldera/steed/others/custom.html 0600 root bin 657 38922 985675963
1 f none caldera/steed/others/file.html 0600 root bin 654 38552 985675963
1 f none caldera/steed/others/telnet.html 0600 root bin 654 38594 985675963
1 f none caldera/steed/others_body.html 0600 root bin 609 37513 985675963
1 f none caldera/steed/others_nav.html 0600 root bin 5635 55023 985675963
1 d none caldera/steed/servers 0700 root bin
1 f none caldera/steed/servers.html 0600 root bin 459 33387 985675963
1 f none caldera/steed/servers/ap_apmods.html 0600 root bin 660 38863 985675963
1 f none caldera/steed/servers/ap_cgi.html 0600 root bin 658 38610 985675963
1 f none caldera/steed/servers/ap_editdefparam.html 0600 root bin 669 39709 985675963
1 f none caldera/steed/servers/ap_mime.html 0600 root bin 656 38385 985675963
1 f none caldera/steed/servers/ap_misc.html 0600 root bin 659 38888 985675963
1 f none caldera/steed/servers/ap_net_add.html 0600 root bin 670 39885 985675963
1 f none caldera/steed/servers/ap_pdoptfiles.html 0600 root bin 673 40124 985675963
1 f none caldera/steed/servers/ap_procs_limits.html 0600 root bin 666 39472 985675963
1 f none caldera/steed/servers/ap_reconknowmods.html 0600 root bin 672 40000 985675963
1 f none caldera/steed/servers/apache.html 0600 root bin 466 33336 985675963
1 f none caldera/steed/servers/apache_body.html 0600 root bin 623 38665 985675963
1 f none caldera/steed/servers/bind8.html 0600 root bin 659 38710 985675963
1 f none caldera/steed/servers/dhcpd.html 0600 root bin 655 38451 985675963
1 f none caldera/steed/servers/dnsadmin.html 0600 root bin 659 38730 985675963
1 f none caldera/steed/servers/inetd.html 0600 root bin 673 40482 985675963
1 f none caldera/steed/servers/majordomo.html 0600 root bin 664 39548 985675963
1 f none caldera/steed/servers/mysql.html 0600 root bin 663 39359 985675963
1 f none caldera/steed/servers/pap.html 0600 root bin 654 38541 985675963
1 f none caldera/steed/servers/postfix.html 0600 root bin 663 39586 985675963
1 f none caldera/steed/servers/postgresql.html 0600 root bin 668 39901 985675963
1 f none caldera/steed/servers/samba.html 0600 root bin 668 39864 985675963
1 f none caldera/steed/servers/sendmail.html 0600 root bin 664 39650 985675963
1 f none caldera/steed/servers/squid.html 0600 root bin 660 39196 985675963
1 f none caldera/steed/servers/wuftpd.html 0600 root bin 652 38334 985675963
1 f none caldera/steed/servers_body.html 0600 root bin 610 37630 985675963
1 f none caldera/steed/servers_nav.html 0600 root bin 8474 65470 985675963
1 d none caldera/steed/system 0700 root bin
1 f none caldera/steed/system.html 0600 root bin 392 28011 985675963
1 f none caldera/steed/system/cron.html 0600 root bin 661 39214 985675963
1 f none caldera/steed/system/exports.html 0600 root bin 653 38457 985675963
1 f none caldera/steed/system/init.html 0600 root bin 661 39301 985675963
1 f none caldera/steed/system/inittab.html 0600 root bin 665 39678 985675963
1 f none caldera/steed/system/man.html 0600 root bin 654 38571 985675963
1 f none caldera/steed/system/mount.html 0600 root bin 670 40157 985675963
1 f none caldera/steed/system/proc.html 0600 root bin 659 39157 985675963
1 f none caldera/steed/system/quota.html 0600 root bin 653 38501 985675963
1 f none caldera/steed/system/software.html 0600 root bin 659 39111 985675963
1 f none caldera/steed/system/syslog.html 0600 root bin 653 38519 985675963
1 f none caldera/steed/system/useradmin.html 0600 root bin 658 38978 985675963
1 f none caldera/steed/system_body.html 0600 root bin 609 37529 985675963
1 f none caldera/steed/system_nav.html 0600 root bin 7642 4572 985675963
1 d none caldera/steed/webmin 0700 root bin
1 f none caldera/steed/webmin.html 0600 root bin 392 27901 985675963
1 f none caldera/steed/webmin/webminacl.html 0600 root bin 654 38609 985675963
1 f none caldera/steed/webmin/webminhelp.html 0600 root bin 654 38504 985675963
1 f none caldera/steed/webmin/webminservers.html 0600 root bin 662 39361 985675963
1 f none caldera/steed/webmin/webminwebmin.html 0600 root bin 662 39447 985675963
1 f none caldera/steed/webmin/webminwebminlog.html 0600 root bin 660 39122 985675963
1 f none caldera/steed/webmin_body.html 0600 root bin 609 37494 985675963
1 f none caldera/steed/webmin_nav.html 0600 root bin 6300 39219 985675963
1 f none caldera/style.css 0600 root bin 1697 59925 985675963
1 d none caldera/syslog 0700 root bin
1 d none caldera/syslog/images 0700 root bin
1 f none caldera/syslog/images/icon.gif 0600 root bin 541 61760 985675964
1 d none caldera/tcpd 0700 root bin
1 d none caldera/tcpd/images 0700 root bin
1 d none caldera/telnet 0700 root bin
1 d none caldera/telnet/images 0700 root bin
1 f none caldera/telnet/images/icon.gif 0600 root bin 513 3 985675964
1 f none caldera/template.gif 0600 root bin 634 43333 985675965
1 f none caldera/theme.info 0600 root bin 19 1832 985675961
1 d none caldera/time 0700 root bin
1 d none caldera/time/images 0700 root bin
1 f none caldera/time/images/icon.gif 0600 root bin 556 773 985675965
1 d none caldera/useradmin 0700 root bin
1 d none caldera/useradmin/images 0700 root bin
1 f none caldera/useradmin/images/icon.gif 0600 root bin 551 62511 985675965
1 d none caldera/vnc 0700 root bin
1 d none caldera/vnc/images 0700 root bin
1 f none caldera/vnc/images/icon.gif 0600 root bin 826 17137 985675965
1 d none caldera/volution 0700 root bin
1 d none caldera/volution/images 0700 root bin
1 f none caldera/volution/images/icon.gif 0600 root bin 549 63360 985675963
1 d none caldera/webmin 0700 root bin
1 d none caldera/webmin/images 0700 root bin
1 f none caldera/webmin/images/icon.gif 0600 root bin 589 5882 985675965
1 d none caldera/webminlog 0700 root bin
1 d none caldera/webminlog/images 0700 root bin
1 f none caldera/webminlog/images/icon.gif 0600 root bin 541 61760 985675965
1 d none caldera/wuftpd 0700 root bin
1 d none caldera/wuftpd/images 0700 root bin
1 f none caldera/wuftpd/images/icon.gif 0600 root bin 552 932 985675965
1 d none caldera/xinetd 0700 root bin
1 d none caldera/xinetd/images 0700 root bin
1 f none caldera/xinetd/images/icon.gif 0600 root bin 565 1415 985675965
1 f none changepass.pl 0700 root bin 1776 13952 985675910
1 f none chooser.cgi 0700 root bin 3978 46518 985675910
1 f none config-aix 0600 root bin 142 12238 985675910
1 f none config-cobalt-linux 0600 root bin 148 12884 985675910
1 f none config-corel-linux 0600 root bin 148 12884 985675910
1 f none config-debian-linux 0600 root bin 148 12884 985675910
1 f none config-freebsd 0600 root bin 149 13003 985675910
1 f none config-hpux 0600 root bin 142 12274 985675910
1 f none config-irix 0600 root bin 185 16036 985675910
1 f none config-macos 0600 root bin 163 14243 985675910
1 f none config-open-linux 0600 root bin 148 12884 985675910
1 f none config-openbsd 0600 root bin 150 13013 985675910
1 f none config-openserver 0600 root bin 143 12248 985675910
1 f none config-osf1 0600 root bin 167 14411 985675910
1 f none config-redhat-linux 0600 root bin 148 12884 985675909
1 f none config-slackware-linux 0600 root bin 148 12884 985675909
1 f none config-solaris 0600 root bin 196 17107 985675909
1 f none config-suse-linux 0600 root bin 148 12884 985675910
1 f none config-turbo-linux 0600 root bin 148 12884 985675910
1 f none config-unixware 0600 root bin 202 17615 985675910
1 f none config.cgi 0700 root bin 4729 33801 985675909
1 f none config_save.cgi 0700 root bin 1677 64355 985675910
1 f none copyconfig.pl 0600 root bin 2175 36782 985675910
1 d none cpan 0700 root bin
1 f none cpan/config 0600 root bin 99 9295 985675961
1 f none cpan/config.info 0600 root bin 63 5402 985675961
1 f none cpan/config.info.es 0600 root bin 75 6669 985675961
1 f none cpan/config.info.nl 0700 root bin 65 5627 985675961
1 f none cpan/config.info.pl 0600 root bin 71 6644 985675961
1 f none cpan/config.info.ru_RU 0600 root bin 69 10003 985675961
1 f none cpan/config.info.ru_SU 0600 root bin 69 9189 985675961
1 f none cpan/config.info.sv 0600 root bin 74 6691 985675961
1 f none cpan/config.info.zh_CN 0600 root bin 55 6145 985675961
1 f none cpan/cpan-lib.pl 0600 root bin 1685 59794 985675961
1 f none cpan/cpan.cgi 0700 root bin 2470 59015 985675961
1 f none cpan/download.cgi 0700 root bin 4553 33753 985675961
1 f none cpan/edit_mod.cgi 0700 root bin 1491 56134 985675961
1 d none cpan/images 0700 root bin
1 f none cpan/images/cat.gif 0600 root bin 112 11697 985675961
1 f none cpan/images/icon.gif 0600 root bin 969 27469 985675961
1 f none cpan/images/mod.gif 0600 root bin 123 11211 985675961
1 f none cpan/index.cgi 0700 root bin 2039 39878 985675961
1 f none cpan/install.cgi 0600 root bin 1837 16898 985675961
1 d none cpan/lang 0700 root bin
1 f none cpan/lang/en 0600 root bin 2070 64188 985675961
1 f none cpan/lang/es 0600 root bin 2282 24986 985675961
1 f none cpan/lang/nl 0700 root bin 2290 20955 985675961
1 f none cpan/lang/pl 0600 root bin 2385 37850 985675961
1 f none cpan/lang/ru_RU 0600 root bin 890 9921 985675961
1 f none cpan/lang/ru_SU 0600 root bin 891 62971 985675961
1 f none cpan/lang/sv 0600 root bin 2224 18246 985675961
1 f none cpan/lang/zh_CN 0600 root bin 1632 26215 985675961
1 f none cpan/module.info 0600 root bin 192 19637 985675961
1 d none cron 0700 root bin
1 f none cron/acl_security.pl 0600 root bin 1427 51749 985675911
1 f none cron/config-aix 0600 root bin 225 21202 985675911
1 f none cron/config-cobalt-linux 0600 root bin 315 29496 985675911
1 f none cron/config-corel-linux 0600 root bin 333 31193 985675911
1 f none cron/config-debian-linux 0600 root bin 262 24454 985675910
1 f none cron/config-debian-linux-2.1 0600 root bin 336 31639 985675911
1 f none cron/config-debian-linux-2.2 0600 root bin 336 31639 985675911
1 f none cron/config-freebsd 0600 root bin 269 24962 985675911
1 f none cron/config-hpux 0600 root bin 280 25696 985675910
1 f none cron/config-irix 0600 root bin 282 26821 985675911
1 f none cron/config-macos 0600 root bin 268 24952 985675911
1 f none cron/config-open-linux 0600 root bin 357 33431 985675911
1 f none cron/config-openbsd 0600 root bin 269 24962 985675911
1 f none cron/config-openserver 0600 root bin 255 23888 985675911
1 f none cron/config-osf1 0600 root bin 294 27834 985675911
1 f none cron/config-redhat-linux 0600 root bin 315 29496 985675910
1 f none cron/config-slackware-linux 0600 root bin 212 19866 985675910
1 f none cron/config-solaris 0600 root bin 255 23888 985675910
1 f none cron/config-suse-linux 0600 root bin 295 27402 985675911
1 f none cron/config-suse-linux-7.0 0600 root bin 301 28006 985675911
1 f none cron/config-suse-linux-7.1 0600 root bin 301 28006 985675911
1 f none cron/config-turbo-linux 0600 root bin 315 29496 985675911
1 f none cron/config-unixware 0600 root bin 255 23888 985675911
1 f none cron/config.info 0600 root bin 704 65142 985675910
1 f none cron/config.info.de 0600 root bin 871 15657 985675911
1 f none cron/config.info.es 0600 root bin 878 16712 985675911
1 f none cron/config.info.fr 0600 root bin 830 14401 985675911
1 f none cron/config.info.nl 0700 root bin 845 13803 985675911
1 f none cron/config.info.pl 0600 root bin 845 18254 985675911
1 f none cron/config.info.ru_RU 0600 root bin 843 10210 985675911
1 f none cron/config.info.ru_SU 0600 root bin 843 62511 985675911
1 f none cron/config.info.sv 0600 root bin 767 9231 985675911
1 f none cron/config.info.tr 0600 root bin 841 21223 985675911
1 f none cron/config.info.zh_CN 0600 root bin 555 14398 985675911
1 f none cron/config.info.zh_TW.Big5 0600 root bin 664 24842 985675911
1 f none cron/cron-lib.pl 0600 root bin 7594 54817 985675910
1 f none cron/cron_editor.pl 0700 root bin 477 37288 985675911
1 f none cron/defaultacl 0600 root bin 33 2806 985675911
1 f none cron/delete_cron.cgi 0700 root bin 457 38372 985675910
1 f none cron/edit_allow.cgi 0700 root bin 1297 43230 985675911
1 f none cron/edit_cron.cgi 0700 root bin 5260 15737 985675910
1 f none cron/edit_env.cgi 0700 root bin 1093 24103 985675911
1 f none cron/exec_cron.cgi 0700 root bin 1355 42467 985675911
1 d none cron/help 0700 root bin
1 f none cron/help/help.es.html 0600 root bin 3237 17898 985675911
1 f none cron/help/help.fr.html 0600 root bin 3375 46252 985675911
1 f none cron/help/help.html 0600 root bin 3237 17898 985675911
1 f none cron/help/help.nl.html 0700 root bin 3716 2422 985675911
1 f none cron/help/help.sv.html 0600 root bin 3052 19517 985675911
1 f none cron/help/help.zh_TW.Big5.html 0600 root bin 2163 16451 985675911
1 f none cron/help/intro.es.html 0600 root bin 198 18146 985675911
1 f none cron/help/intro.fr.html 0600 root bin 180 17267 985675911
1 f none cron/help/intro.html 0600 root bin 169 14811 985675911
1 f none cron/help/intro.hu.html 0600 root bin 176 17230 985675911
1 f none cron/help/intro.nl.html 0700 root bin 193 17377 985675911
1 f none cron/help/intro.sv.html 0600 root bin 159 14846 985675911
1 f none cron/help/intro.zh_TW.Big5.html 0600 root bin 130 17950 985675911
1 d none cron/images 0700 root bin
1 f none cron/images/icon.gif 0600 root bin 1970 19235 985675910
1 f none cron/index.cgi 0700 root bin 2559 61854 985675910
1 d none cron/lang 0700 root bin
1 f none cron/lang/de 0600 root bin 2594 45845 985675911
1 f none cron/lang/en 0600 root bin 2457 30309 985675911
1 f none cron/lang/es 0600 root bin 2837 2147 985675911
1 f none cron/lang/fr 0600 root bin 2560 54291 985675911
1 f none cron/lang/hu 0600 root bin 2598 7121 985675911
1 f none cron/lang/it 0600 root bin 2351 23567 985675911
1 f none cron/lang/nl 0700 root bin 2871 7069 985675911
1 f none cron/lang/pl 0600 root bin 2761 8916 985675911
1 f none cron/lang/pt 0600 root bin 2678 60329 985675911
1 f none cron/lang/ru_RU 0600 root bin 2348 58730 985675911
1 f none cron/lang/ru_SU 0600 root bin 2382 29588 985675911
1 f none cron/lang/sv 0600 root bin 2300 29827 985675911
1 f none cron/lang/tr 0600 root bin 2975 829 985675911
1 f none cron/lang/zh_CN 0600 root bin 1963 3125 985675911
1 f none cron/lang/zh_TW.Big5 0600 root bin 1911 54464 985675911
1 f none cron/log_parser.pl 0600 root bin 957 12242 985675911
1 f none cron/module.info 0600 root bin 666 4096 985675910
1 f none cron/save_allow.cgi 0700 root bin 510 45014 985675910
1 f none cron/save_cron.cgi 0700 root bin 3193 52338 985675910
1 f none cron/save_env.cgi 0700 root bin 491 38557 985675911
1 f none cron/useradmin_update.pl 0600 root bin 772 63364 985675911
1 d none custom 0700 root bin
1 f none custom/acl_security.pl 0700 root bin 1311 41437 985675939
1 f none custom/custom-lib.pl 0600 root bin 1805 7984 985675939
1 f none custom/defaultacl 0600 root bin 25 2048 985675939
1 f none custom/edit_cmd.cgi 0700 root bin 3156 57436 985675939
1 d none custom/help 0700 root bin
1 f none custom/help/cmd.es.html 0600 root bin 1853 33823 985675939
1 f none custom/help/cmd.fr.html 0600 root bin 1820 33063 985675939
1 f none custom/help/cmd.html 0600 root bin 1659 10847 985675939
1 f none custom/help/cmd.sv.html 0600 root bin 1686 22556 985675939
1 f none custom/help/cmd.zh_TW.Big5.html 0600 root bin 1229 25556 985675939
1 f none custom/help/command.es.html 0600 root bin 196 17126 985675939
1 f none custom/help/command.fr.html 0600 root bin 221 20575 985675939
1 f none custom/help/command.html 0600 root bin 187 16118 985675939
1 f none custom/help/command.sv.html 0600 root bin 164 14806 985675939
1 f none custom/help/command.zh_TW.Big5.html 0600 root bin 151 17620 985675939
1 f none custom/help/create.es.html 0600 root bin 190 17709 985675939
1 f none custom/help/create.fr.html 0600 root bin 217 20668 985675939
1 f none custom/help/create.html 0600 root bin 172 15241 985675939
1 f none custom/help/create.sv.html 0600 root bin 184 17157 985675939
1 f none custom/help/create.zh_TW.Big5.html 0600 root bin 131 17470 985675939
1 f none custom/help/desc.es.html 0600 root bin 175 16290 985675939
1 f none custom/help/desc.fr.html 0600 root bin 172 15583 985675939
1 f none custom/help/desc.html 0600 root bin 153 13661 985675939
1 f none custom/help/desc.sv.html 0600 root bin 139 13013 985675939
1 f none custom/help/desc.zh_TW.Big5.html 0600 root bin 111 14526 985675939
1 f none custom/help/edit.es.html 0600 root bin 116 10493 985675939
1 f none custom/help/edit.fr.html 0600 root bin 122 11650 985675939
1 f none custom/help/edit.html 0600 root bin 110 9811 985675939
1 f none custom/help/edit.sv.html 0600 root bin 111 10251 985675939
1 f none custom/help/edit.zh_TW.Big5.html 0600 root bin 82 9853 985675939
1 f none custom/help/intro.es.html 0600 root bin 931 22865 985675939
1 f none custom/help/intro.fr.html 0600 root bin 837 14944 985675939
1 f none custom/help/intro.html 0600 root bin 827 10628 985675939
1 f none custom/help/intro.sv.html 0600 root bin 826 15929 985675939
1 f none custom/help/intro.zh_TW.Big5.html 0600 root bin 534 13073 985675939
1 f none custom/help/raw.es.html 0600 root bin 321 29387 985675939
1 f none custom/help/raw.fr.html 0600 root bin 329 30750 985675939
1 f none custom/help/raw.html 0600 root bin 296 26713 985675939
1 f none custom/help/raw.sv.html 0600 root bin 259 24142 985675939
1 f none custom/help/raw.zh_TW.Big5.html 0600 root bin 232 28963 985675939
1 f none custom/help/run.es.html 0600 root bin 135 11595 985675939
1 f none custom/help/run.fr.html 0600 root bin 163 15021 985675939
1 f none custom/help/run.html 0600 root bin 131 11296 985675939
1 f none custom/help/run.sv.html 0600 root bin 125 11216 985675939
1 f none custom/help/run.zh_TW.Big5.html 0600 root bin 100 11733 985675939
1 f none custom/help/user.es.html 0600 root bin 328 30217 985675939
1 f none custom/help/user.fr.html 0600 root bin 332 31929 985675939
1 f none custom/help/user.html 0600 root bin 265 23853 985675939
1 f none custom/help/user.sv.html 0600 root bin 267 26592 985675939
1 f none custom/help/user.zh_TW.Big5.html 0600 root bin 207 28179 985675939
1 d none custom/images 0700 root bin
1 f none custom/images/icon.gif 0600 root bin 379 44892 985675939
1 f none custom/index.cgi 0700 root bin 2030 26241 985675939
1 d none custom/lang 0700 root bin
1 f none custom/lang/de 0600 root bin 1336 61185 985675939
1 f none custom/lang/en 0600 root bin 1312 57937 985675939
1 f none custom/lang/es 0600 root bin 1483 10072 985675939
1 f none custom/lang/fr 0600 root bin 1210 53808 985675939
1 f none custom/lang/hu 0600 root bin 1190 57681 985675939
1 f none custom/lang/pl 0600 root bin 1523 19022 985675939
1 f none custom/lang/pt 0600 root bin 1200 52024 985675939
1 f none custom/lang/ru_RU 0600 root bin 1159 60672 985675939
1 f none custom/lang/ru_SU 0600 root bin 1162 44391 985675939
1 f none custom/lang/sv 0600 root bin 1597 24261 985675939
1 f none custom/lang/tr 0600 root bin 1328 11531 985675939
1 f none custom/lang/zh_CN 0600 root bin 1009 8282 985675939
1 f none custom/lang/zh_TW.Big5 0600 root bin 893 45111 985675939
1 f none custom/log_parser.pl 0600 root bin 674 56393 985675939
1 f none custom/module.info 0600 root bin 393 44224 985675939
1 f none custom/run.cgi 0700 root bin 2126 32365 985675939
1 f none custom/save_cmd.cgi 0700 root bin 1336 36736 985675939
1 f none date_chooser.cgi 0700 root bin 2182 38360 985675910
1 f none defaultacl 0600 root bin 39 3349 985675910
1 d none dfsadmin 0700 root bin
1 f none dfsadmin/config-openserver 0600 root bin 123 11745 985675911
1 f none dfsadmin/config-solaris 0600 root bin 153 14665 985675911
1 f none dfsadmin/config-unixware 0600 root bin 123 11745 985675911
1 f none dfsadmin/config.info 0600 root bin 181 17129 985675911
1 f none dfsadmin/config.info.de 0600 root bin 140 13045 985675911
1 f none dfsadmin/config.info.es 0600 root bin 169 16484 985675911
1 f none dfsadmin/config.info.fr 0600 root bin 159 14849 985675911
1 f none dfsadmin/config.info.pl 0600 root bin 221 22527 985675911
1 f none dfsadmin/config.info.sv 0600 root bin 160 15816 985675911
1 f none dfsadmin/config.info.tr 0600 root bin 133 13932 985675911
1 f none dfsadmin/config.info.zh_CN 0600 root bin 107 13555 985675912
1 f none dfsadmin/config.info.zh_TW.Big5 0600 root bin 103 12874 985675911
1 f none dfsadmin/delete_share.cgi 0700 root bin 315 26635 985675911
1 f none dfsadmin/dfs-lib.pl 0600 root bin 2873 26094 985675911
1 f none dfsadmin/edit_share.cgi 0700 root bin 6063 36060 985675911
1 d none dfsadmin/help 0700 root bin
1 f none dfsadmin/help/aclok.es.html 0600 root bin 216 19779 985675911
1 f none dfsadmin/help/aclok.fr.html 0600 root bin 222 20644 985675911
1 f none dfsadmin/help/aclok.html 0600 root bin 179 15766 985675911
1 f none dfsadmin/help/aclok.pl.html 0600 root bin 193 18310 985675911
1 f none dfsadmin/help/aclok.sv.html 0600 root bin 169 15825 985675911
1 f none dfsadmin/help/aclok.zh_TW.Big5.html 0600 root bin 132 18062 985675911
1 f none dfsadmin/help/anon.es.html 0600 root bin 248 23089 985675911
1 f none dfsadmin/help/anon.fr.html 0600 root bin 228 20659 985675911
1 f none dfsadmin/help/anon.html 0600 root bin 229 20309 985675911
1 f none dfsadmin/help/anon.pl.html 0600 root bin 252 24576 985675911
1 f none dfsadmin/help/anon.sv.html 0600 root bin 245 23821 985675911
1 f none dfsadmin/help/anon.zh_TW.Big5.html 0600 root bin 134 17324 985675911
1 f none dfsadmin/help/create_share.es.html 0600 root bin 128 11810 985675911
1 f none dfsadmin/help/create_share.fr.html 0600 root bin 117 10149 985675911
1 f none dfsadmin/help/create_share.html 0600 root bin 105 9075 985675911
1 f none dfsadmin/help/create_share.pl.html 0600 root bin 114 10818 985675911
1 f none dfsadmin/help/create_share.sv.html 0600 root bin 103 9084 985675911
1 f none dfsadmin/help/create_share.zh_TW.Big5.html 0600 root bin 96 12212 985675911
1 f none dfsadmin/help/des.es.html 0600 root bin 173 16079 985675911
1 f none dfsadmin/help/des.fr.html 0600 root bin 176 15818 985675911
1 f none dfsadmin/help/des.html 0600 root bin 138 12319 985675911
1 f none dfsadmin/help/des.pl.html 0600 root bin 166 15678 985675911
1 f none dfsadmin/help/des.sv.html 0600 root bin 148 14134 985675911
1 f none dfsadmin/help/des.zh_TW.Big5.html 0600 root bin 112 14722 985675911
1 f none dfsadmin/help/desc.es.html 0600 root bin 96 9145 985675911
1 f none dfsadmin/help/desc.fr.html 0600 root bin 76 6549 985675911
1 f none dfsadmin/help/desc.html 0600 root bin 86 7772 985675911
1 f none dfsadmin/help/desc.pl.html 0600 root bin 93 8628 985675911
1 f none dfsadmin/help/desc.sv.html 0600 root bin 69 6208 985675911
1 f none dfsadmin/help/desc.zh_TW.Big5.html 0600 root bin 62 8066 985675911
1 f none dfsadmin/help/dir.es.html 0600 root bin 200 18668 985675911
1 f none dfsadmin/help/dir.fr.html 0600 root bin 201 19256 985675911
1 f none dfsadmin/help/dir.html 0600 root bin 167 15332 985675911
1 f none dfsadmin/help/dir.pl.html 0600 root bin 178 16811 985675911
1 f none dfsadmin/help/dir.sv.html 0600 root bin 155 14182 985675911
1 f none dfsadmin/help/dir.zh_TW.Big5.html 0600 root bin 105 14879 985675911
1 f none dfsadmin/help/edit_share.es.html 0600 root bin 151 13965 985675911
1 f none dfsadmin/help/edit_share.fr.html 0600 root bin 132 11735 985675911
1 f none dfsadmin/help/edit_share.html 0600 root bin 124 10801 985675911
1 f none dfsadmin/help/edit_share.pl.html 0600 root bin 126 11724 985675911
1 f none dfsadmin/help/edit_share.sv.html 0600 root bin 115 10581 985675911
1 f none dfsadmin/help/edit_share.zh_TW.Big5.html 0600 root bin 103 13033 985675911
1 f none dfsadmin/help/index.es.html 0600 root bin 290 27303 985675911
1 f none dfsadmin/help/index.fr.html 0600 root bin 263 24468 985675911
1 f none dfsadmin/help/index.html 0600 root bin 256 22883 985675911
1 f none dfsadmin/help/index.pl.html 0600 root bin 270 26104 985675911
1 f none dfsadmin/help/index.sv.html 0600 root bin 247 23442 985675911
1 f none dfsadmin/help/index.zh_TW.Big5.html 0600 root bin 164 21290 985675911
1 f none dfsadmin/help/intro.es.html 0600 root bin 1216 48514 985675911
1 f none dfsadmin/help/intro.fr.html 0600 root bin 967 26328 985675911
1 f none dfsadmin/help/intro.html 0600 root bin 1004 26535 985675911
1 f none dfsadmin/help/intro.pl.html 0600 root bin 1137 47860 985675911
1 f none dfsadmin/help/intro.sv.html 0600 root bin 948 25650 985675911
1 f none dfsadmin/help/intro.zh_TW.Big5.html 0600 root bin 656 29202 985675911
1 f none dfsadmin/help/kerberos.es.html 0600 root bin 179 16767 985675911
1 f none dfsadmin/help/kerberos.fr.html 0600 root bin 185 16939 985675911
1 f none dfsadmin/help/kerberos.html 0600 root bin 148 13537 985675911
1 f none dfsadmin/help/kerberos.pl.html 0600 root bin 174 16600 985675911
1 f none dfsadmin/help/kerberos.sv.html 0600 root bin 160 15559 985675911
1 f none dfsadmin/help/kerberos.zh_TW.Big5.html 0600 root bin 122 16121 985675911
1 f none dfsadmin/help/nfs.es.html 0600 root bin 1309 58426 985675911
1 f none dfsadmin/help/nfs.fr.html 0600 root bin 1198 50169 985675911
1 f none dfsadmin/help/nfs.html 0600 root bin 1093 35121 985675911
1 f none dfsadmin/help/nfs.pl.html 0600 root bin 1289 64869 985675911
1 f none dfsadmin/help/nfs.sv.html 0600 root bin 1143 45843 985675911
1 f none dfsadmin/help/nfs.zh_TW.Big5.html 0600 root bin 673 36722 985675911
1 f none dfsadmin/help/public.es.html 0600 root bin 225 21586 985675911
1 f none dfsadmin/help/public.fr.html 0600 root bin 174 15685 985675911
1 f none dfsadmin/help/public.html 0600 root bin 176 15399 985675911
1 f none dfsadmin/help/public.pl.html 0600 root bin 198 19426 985675911
1 f none dfsadmin/help/public.sv.html 0600 root bin 173 15883 985675911
1 f none dfsadmin/help/public.zh_TW.Big5.html 0600 root bin 132 16389 985675911
1 f none dfsadmin/help/ro.es.html 0600 root bin 1756 25868 985675911
1 f none dfsadmin/help/ro.fr.html 0600 root bin 1489 2105 985675911
1 f none dfsadmin/help/ro.html 0600 root bin 1442 56768 985675911
1 f none dfsadmin/help/ro.pl.html 0600 root bin 1723 25019 985675911
1 f none dfsadmin/help/ro.sv.html 0600 root bin 1637 16639 985675911
1 f none dfsadmin/help/ro.zh_TW.Big5.html 0600 root bin 1116 13563 985675911
1 f none dfsadmin/help/root.es.html 0600 root bin 1348 53748 985675911
1 f none dfsadmin/help/root.fr.html 0600 root bin 1154 36543 985675911
1 f none dfsadmin/help/root.html 0600 root bin 1141 31167 985675911
1 f none dfsadmin/help/root.pl.html 0600 root bin 1334 54375 985675911
1 f none dfsadmin/help/root.sv.html 0600 root bin 1172 39343 985675911
1 f none dfsadmin/help/root.zh_TW.Big5.html 0600 root bin 884 45753 985675911
1 f none dfsadmin/help/rw.es.html 0600 root bin 1766 26526 985675911
1 f none dfsadmin/help/rw.fr.html 0600 root bin 1688 21701 985675911
1 f none dfsadmin/help/rw.html 0600 root bin 1496 61838 985675911
1 f none dfsadmin/help/rw.pl.html 0600 root bin 1848 36793 985675911
1 f none dfsadmin/help/rw.sv.html 0600 root bin 1676 19145 985675911
1 f none dfsadmin/help/rw.zh_TW.Big5.html 0600 root bin 1068 4826 985675911
1 f none dfsadmin/help/share.es.html 0600 root bin 497 46400 985675911
1 f none dfsadmin/help/share.fr.html 0600 root bin 447 41505 985675911
1 f none dfsadmin/help/share.html 0600 root bin 403 36209 985675911
1 f none dfsadmin/help/share.pl.html 0600 root bin 487 48059 985675911
1 f none dfsadmin/help/share.sv.html 0600 root bin 441 43443 985675911
1 f none dfsadmin/help/share.zh_TW.Big5.html 0600 root bin 275 40234 985675911
1 f none dfsadmin/help/sub.es.html 0600 root bin 149 13849 985675911
1 f none dfsadmin/help/sub.fr.html 0600 root bin 146 13743 985675911
1 f none dfsadmin/help/sub.html 0600 root bin 130 11757 985675911
1 f none dfsadmin/help/sub.pl.html 0600 root bin 139 13508 985675911
1 f none dfsadmin/help/sub.sv.html 0600 root bin 153 14720 985675911
1 f none dfsadmin/help/sub.zh_TW.Big5.html 0600 root bin 91 12052 985675911
1 f none dfsadmin/help/suid.es.html 0600 root bin 283 26861 985675911
1 f none dfsadmin/help/suid.fr.html 0600 root bin 288 26919 985675911
1 f none dfsadmin/help/suid.html 0600 root bin 228 20882 985675911
1 f none dfsadmin/help/suid.pl.html 0600 root bin 288 27770 985675911
1 f none dfsadmin/help/suid.sv.html 0600 root bin 252 24513 985675911
1 f none dfsadmin/help/suid.zh_TW.Big5.html 0600 root bin 178 25090 985675911
1 d none dfsadmin/images 0700 root bin
1 f none dfsadmin/images/icon.gif 0600 root bin 245 29407 985675911
1 f none dfsadmin/images/share.gif 0600 root bin 1565 51055 985675911
1 f none dfsadmin/index.cgi 0700 root bin 2163 40395 985675911
1 d none dfsadmin/lang 0700 root bin
1 f none dfsadmin/lang/en 0600 root bin 161 14012 985675911
1 f none dfsadmin/lang/es 0600 root bin 198 18422 985675911
1 f none dfsadmin/lang/pl 0600 root bin 171 15971 985675911
1 f none dfsadmin/lang/sv 0600 root bin 179 16237 985675911
1 f none dfsadmin/lang/tr 0600 root bin 199 21226 985675911
1 f none dfsadmin/log_parser.pl 0600 root bin 783 64598 985675911
1 f none dfsadmin/low.risk 0600 root bin 11 971 985675911
1 f none dfsadmin/low.skill 0600 root bin 17 1430 985675911
1 f none dfsadmin/medium.risk 0600 root bin 11 971 985675911
1 f none dfsadmin/medium.skill 0600 root bin 17 1429 985675911
1 f none dfsadmin/module.info 0600 root bin 305 29606 985675911
1 f none dfsadmin/restart_sharing.cgi 0700 root bin 491 41523 985675911
1 f none dfsadmin/save_share.cgi 0700 root bin 3846 55095 985675911
1 d none dhcpd 0700 root bin
1 f none dhcpd/acl_security.pl 0600 root bin 8979 15111 985675938
1 f none dhcpd/config-cobalt-linux 0600 root bin 150 13983 985675938
1 f none dhcpd/config-corel-linux 0600 root bin 142 13174 985675938
1 f none dhcpd/config-debian-linux 0600 root bin 142 13174 985675937
1 f none dhcpd/config-freebsd 0600 root bin 148 13744 985675937
1 f none dhcpd/config-irix 0600 root bin 135 12515 985675938
1 f none dhcpd/config-open-linux 0600 root bin 139 12916 985675938
1 f none dhcpd/config-open-linux-3.1e 0600 root bin 144 13378 985675938
1 f none dhcpd/config-openbsd 0600 root bin 142 13174 985675938
1 f none dhcpd/config-openserver 0600 root bin 135 12515 985675938
1 f none dhcpd/config-osf1 0600 root bin 135 12515 985675937
1 f none dhcpd/config-redhat-linux 0600 root bin 139 12916 985675937
1 f none dhcpd/config-redhat-linux-6.0 0600 root bin 150 13983 985675938
1 f none dhcpd/config-redhat-linux-6.1 0600 root bin 150 13983 985675938
1 f none dhcpd/config-redhat-linux-6.2 0600 root bin 150 13983 985675938
1 f none dhcpd/config-redhat-linux-7.0 0600 root bin 148 13749 985675937
1 f none dhcpd/config-redhat-linux-7.1 0600 root bin 148 13749 985675938
1 f none dhcpd/config-slackware-linux 0600 root bin 145 13521 985675937
1 f none dhcpd/config-slackware-linux-4.0 0600 root bin 151 14083 985675938
1 f none dhcpd/config-solaris 0600 root bin 135 12515 985675937
1 f none dhcpd/config-suse-linux 0600 root bin 150 13983 985675937
1 f none dhcpd/config-suse-linux-7.1 0600 root bin 148 13749 985675938
1 f none dhcpd/config-turbo-linux 0600 root bin 139 12916 985675938
1 f none dhcpd/config-unixware 0600 root bin 171 15974 985675938
1 f none dhcpd/config.info 0600 root bin 353 31431 985675937
1 f none dhcpd/config.info.de 0600 root bin 251 22486 985675938
1 f none dhcpd/config.info.es 0600 root bin 448 41263 985675938
1 f none dhcpd/config.info.fr 0600 root bin 269 24548 985675938
1 f none dhcpd/config.info.pl 0600 root bin 452 42706 985675937
1 f none dhcpd/config.info.ru_RU 0600 root bin 237 38087 985675938
1 f none dhcpd/config.info.ru_SU 0600 root bin 237 34547 985675938
1 f none dhcpd/config.info.sv 0600 root bin 383 36049 985675938
1 f none dhcpd/config.info.tr 0600 root bin 241 25129 985675938
1 f none dhcpd/config.info.zh_CN 0600 root bin 162 22384 985675938
1 f none dhcpd/config.info.zh_TW.Big5 0600 root bin 175 21215 985675938
1 f none dhcpd/confirm_delete.cgi 0600 root bin 3129 50994 985675937
1 f none dhcpd/defaultacl 0600 root bin 213 18108 985675938
1 f none dhcpd/delete_all.cgi 0600 root bin 2157 40848 985675938
1 f none dhcpd/delete_lease.cgi 0700 root bin 1123 25040 985675938
1 f none dhcpd/dhcpd-lib.pl 0700 root bin 17311 35631 985675937
1 f none dhcpd/edit_group.cgi 0700 root bin 7387 62322 985675937
1 f none dhcpd/edit_host.cgi 0700 root bin 10312 17689 985675937
1 f none dhcpd/edit_options.cgi 0700 root bin 6975 43679 985675937
1 f none dhcpd/edit_pool.cgi 0700 root bin 2807 35461 985675937
1 f none dhcpd/edit_shared.cgi 0700 root bin 5179 20534 985675937
1 f none dhcpd/edit_subnet.cgi 0700 root bin 6473 59307 985675937
1 d none dhcpd/help 0700 root bin
1 f none dhcpd/help/acl.html 0600 root bin 2268 1754 985675937
1 f none dhcpd/help/acl_info.html 0600 root bin 1879 35282 985675937
1 f none dhcpd/help/acl_info.pl.html 0600 root bin 2253 18388 985675937
1 d none dhcpd/images 0700 root bin
1 f none dhcpd/images/ctree0.gif 0600 root bin 2591 34363 985675937
1 f none dhcpd/images/ctree1.gif 0600 root bin 2756 52491 985675937
1 f none dhcpd/images/ctree2.gif 0600 root bin 2651 39628 985675937
1 f none dhcpd/images/ctree3.gif 0600 root bin 2808 59676 985675937
1 f none dhcpd/images/group.gif 0600 root bin 251 29940 985675937
1 f none dhcpd/images/host.gif 0600 root bin 256 29904 985675937
1 f none dhcpd/images/icon.gif 0600 root bin 311 35196 985675937
1 f none dhcpd/images/pool.gif 0600 root bin 387 47873 985675937
1 f none dhcpd/images/shared.gif 0600 root bin 272 30116 985675937
1 f none dhcpd/images/subnet.gif 0600 root bin 273 32767 985675937
1 f none dhcpd/index.cgi 0700 root bin 13072 26356 985675937
1 d none dhcpd/lang 0700 root bin
1 f none dhcpd/lang/de 0600 root bin 6033 46619 985675938
1 f none dhcpd/lang/en 0600 root bin 10293 58491 985675938
1 f none dhcpd/lang/es 0600 root bin 11767 21712 985675938
1 f none dhcpd/lang/fr 0600 root bin 6110 4063 985675938
1 f none dhcpd/lang/pl 0600 root bin 11682 55325 985675938
1 f none dhcpd/lang/pt 0600 root bin 6005 59265 985675938
1 f none dhcpd/lang/ru_RU 0600 root bin 5664 51112 985675938
1 f none dhcpd/lang/ru_SU 0600 root bin 5680 39277 985675938
1 f none dhcpd/lang/sv 0600 root bin 10943 34119 985675938
1 f none dhcpd/lang/tr 0600 root bin 6439 11377 985675938
1 f none dhcpd/lang/zh_CN 0600 root bin 4162 48132 985675938
1 f none dhcpd/lang/zh_TW.Big5 0600 root bin 4476 45055 985675938
1 f none dhcpd/list_leases.cgi 0700 root bin 3581 10530 985675938
1 f none dhcpd/log_parser.pl 0600 root bin 801 2290 985675938
1 f none dhcpd/module.info 0600 root bin 481 46730 985675937
1 f none dhcpd/params-lib.pl 0600 root bin 6260 52684 985675937
1 f none dhcpd/restart.cgi 0700 root bin 555 47070 985675937
1 f none dhcpd/save_group.cgi 0700 root bin 4065 56533 985675937
1 f none dhcpd/save_host.cgi 0700 root bin 3797 39006 985675937
1 f none dhcpd/save_options.cgi 0700 root bin 5130 15622 985675937
1 f none dhcpd/save_pool.cgi 0600 root bin 2082 31453 985675937
1 f none dhcpd/save_shared.cgi 0700 root bin 6337 28399 985675937
1 f none dhcpd/save_subnet.cgi 0700 root bin 6305 26084 985675937
1 f none dhcpd/start.cgi 0700 root bin 704 58419 985675937
1 d none dnsadmin 0700 root bin
1 f none dnsadmin/acl_security.pl 0600 root bin 2964 47121 985675914
1 f none dnsadmin/change_soa.cgi 0700 root bin 1125 27939 985675912
1 f none dnsadmin/config-aix 0600 root bin 179 17180 985675914
1 f none dnsadmin/config-cobalt-linux 0600 root bin 188 17838 985675914
1 f none dnsadmin/config-debian-linux 0600 root bin 188 17838 985675913
1 f none dnsadmin/config-debian-linux-2.2 0600 root bin 193 18298 985675914
1 f none dnsadmin/config-freebsd 0600 root bin 191 18253 985675914
1 f none dnsadmin/config-hpux 0600 root bin 183 17581 985675913
1 f none dnsadmin/config-irix 0600 root bin 183 17577 985675914
1 f none dnsadmin/config-open-linux 0600 root bin 188 17838 985675914
1 f none dnsadmin/config-openbsd 0600 root bin 190 18168 985675914
1 f none dnsadmin/config-openserver 0600 root bin 182 17441 985675914
1 f none dnsadmin/config-osf1 0600 root bin 190 18243 985675914
1 f none dnsadmin/config-redhat-linux 0600 root bin 188 17838 985675913
1 f none dnsadmin/config-slackware-linux 0600 root bin 188 17838 985675913
1 f none dnsadmin/config-solaris 0600 root bin 182 17441 985675913
1 f none dnsadmin/config-suse-linux 0600 root bin 188 17839 985675913
1 f none dnsadmin/config-turbo-linux 0600 root bin 188 17838 985675914
1 f none dnsadmin/config-unixware 0600 root bin 182 17441 985675914
1 f none dnsadmin/config.info 0600 root bin 312 28151 985675912
1 f none dnsadmin/config.info.de 0600 root bin 361 32902 985675914
1 f none dnsadmin/config.info.es 0600 root bin 377 35265 985675912
1 f none dnsadmin/config.info.fr 0600 root bin 375 34607 985675914
1 f none dnsadmin/config.info.pl 0600 root bin 372 35537 985675914
1 f none dnsadmin/config.info.ru_RU 0600 root bin 338 55171 985675914
1 f none dnsadmin/config.info.ru_SU 0600 root bin 338 50601 985675914
1 f none dnsadmin/config.info.sv 0600 root bin 314 30315 985675914
1 f none dnsadmin/config.info.tr 0600 root bin 340 34829 985675914
1 f none dnsadmin/config.info.zh_CN 0600 root bin 237 31153 985675914
1 f none dnsadmin/config.info.zh_TW.Big5 0600 root bin 265 33554 985675914
1 f none dnsadmin/create_master.cgi 0700 root bin 2939 36843 985675914
1 f none dnsadmin/create_slave.cgi 0700 root bin 2065 24774 985675914
1 f none dnsadmin/db.cache 0600 root bin 2769 34340 985675913
1 f none dnsadmin/defaultacl 0600 root bin 63 5396 985675914
1 f none dnsadmin/delete_zone.cgi 0700 root bin 3531 19511 985675914
1 f none dnsadmin/dns-lib.pl 0600 root bin 5217 62539 985675912
1 f none dnsadmin/dns_boot.cgi 0700 root bin 1259 42361 985675912
1 f none dnsadmin/edit_master.cgi 0700 root bin 3869 37841 985675913
1 f none dnsadmin/edit_record.cgi 0700 root bin 798 461 985675913
1 f none dnsadmin/edit_recs.cgi 0700 root bin 2617 52438 985675912
1 f none dnsadmin/edit_slave.cgi 0700 root bin 1672 8255 985675914
1 f none dnsadmin/edit_text.cgi 0700 root bin 1089 28094 985675913
1 d none dnsadmin/help 0700 root bin
1 f none dnsadmin/help/intro.html 0600 root bin 3978 17279 985675912
1 f none dnsadmin/help/intro.sv.html 0600 root bin 3710 14993 985675912
1 f none dnsadmin/help/intro.zh_TW.Big5.html 0600 root bin 2733 26159 985675912
1 d none dnsadmin/images 0700 root bin
1 f none dnsadmin/images/dnsadmin.gif 0600 root bin 2256 3033 985675912
1 f none dnsadmin/images/icon.gif 0600 root bin 2031 38844 985675912
1 f none dnsadmin/index.cgi 0700 root bin 6186 40873 985675912
1 d none dnsadmin/lang 0700 root bin
1 f none dnsadmin/lang/en 0600 root bin 975 24948 985675914
1 f none dnsadmin/lang/es 0600 root bin 1075 35740 985675914
1 f none dnsadmin/lang/pl 0600 root bin 1066 39713 985675914
1 f none dnsadmin/lang/sv 0600 root bin 987 30698 985675914
1 f none dnsadmin/lang/zh_CN 0600 root bin 708 30312 985675914
1 f none dnsadmin/log_parser.pl 0600 root bin 1198 31916 985675914
1 f none dnsadmin/master_form.cgi 0700 root bin 2042 42794 985675914
1 f none dnsadmin/module.info 0600 root bin 582 53443 985675912
1 f none dnsadmin/restart.cgi 0700 root bin 270 22286 985675912
1 f none dnsadmin/save_master.cgi 0700 root bin 1685 1881 985675914
1 f none dnsadmin/save_record.cgi 0700 root bin 9085 60231 985675914
1 f none dnsadmin/save_slave.cgi 0700 root bin 1201 34345 985675914
1 f none dnsadmin/save_text.cgi 0700 root bin 580 48314 985675913
1 f none dnsadmin/save_zonedef.cgi 0700 root bin 821 3907 985675913
1 f none dnsadmin/slave_form.cgi 0700 root bin 1494 61951 985675914
1 f none dnsadmin/start.cgi 0700 root bin 179 15114 985675913
1 d none exports 0700 root bin
1 f none exports/config-aix 0600 root bin 155 13713 985675915
1 f none exports/config-cobalt-linux 0600 root bin 246 22204 985675915
1 f none exports/config-corel-linux 0600 root bin 202 18378 985675915
1 f none exports/config-debian-linux 0600 root bin 202 18378 985675914
1 f none exports/config-debian-linux-2.2 0600 root bin 202 18288 985675914
1 f none exports/config-open-linux 0600 root bin 198 17684 985675915
1 f none exports/config-redhat-linux 0600 root bin 198 17684 985675914
1 f none exports/config-slackware-linux 0600 root bin 165 14896 985675914
1 f none exports/config-suse-linux 0600 root bin 204 18506 985675914
1 f none exports/config-suse-linux-7.1 0600 root bin 202 18282 985675915
1 f none exports/config-turbo-linux 0600 root bin 190 16942 985675915
1 f none exports/config.info 0600 root bin 92 8928 985675914
1 f none exports/config.info.de 0600 root bin 111 10726 985675915
1 f none exports/config.info.es 0600 root bin 123 11831 985675915
1 f none exports/config.info.fr 0600 root bin 111 10863 985675915
1 f none exports/config.info.pl 0600 root bin 79 7422 985675915
1 f none exports/config.info.ru_RU 0600 root bin 115 19744 985675915
1 f none exports/config.info.ru_SU 0600 root bin 115 17755 985675915
1 f none exports/config.info.sv 0600 root bin 103 10082 985675915
1 f none exports/config.info.tr 0600 root bin 103 10279 985675915
1 f none exports/config.info.zh_CN 0600 root bin 77 11978 985675915
1 f none exports/config.info.zh_TW.Big5 0600 root bin 79 10997 985675915
1 f none exports/edit_export.cgi 0700 root bin 7217 3150 985675914
1 f none exports/exports-lib.pl 0600 root bin 4089 52328 985675914
1 d none exports/help 0700 root bin
1 f none exports/help/active.es.html 0600 root bin 173 15944 985675914
1 f none exports/help/active.html 0600 root bin 142 12427 985675914
1 f none exports/help/active.pl.html 0600 root bin 165 15513 985675914
1 f none exports/help/active.sv.html 0600 root bin 173 15729 985675914
1 f none exports/help/active.zh_TW.Big5.html 0600 root bin 115 14282 985675914
1 f none exports/help/anongid.es.html 0600 root bin 261 24181 985675914
1 f none exports/help/anongid.fr.html 0600 root bin 256 24603 985675914
1 f none exports/help/anongid.html 0600 root bin 238 21710 985675914
1 f none exports/help/anongid.pl.html 0600 root bin 257 24917 985675914
1 f none exports/help/anongid.sv.html 0600 root bin 237 22568 985675914
1 f none exports/help/anongid.zh_TW.Big5.html 0600 root bin 176 24485 985675914
1 f none exports/help/anonuid.es.html 0600 root bin 269 25071 985675914
1 f none exports/help/anonuid.fr.html 0600 root bin 254 24371 985675914
1 f none exports/help/anonuid.html 0600 root bin 233 21174 985675914
1 f none exports/help/anonuid.pl.html 0600 root bin 289 29017 985675914
1 f none exports/help/anonuid.sv.html 0600 root bin 245 23776 985675914
1 f none exports/help/anonuid.zh_TW.Big5.html 0600 root bin 188 27079 985675914
1 f none exports/help/client.es.html 0600 root bin 1304 51158 985675914
1 f none exports/help/client.fr.html 0600 root bin 917 21052 985675914
1 f none exports/help/client.html 0600 root bin 1121 31240 985675914
1 f none exports/help/client.pl.html 0600 root bin 1330 59406 985675914
1 f none exports/help/client.sv.html 0600 root bin 1170 40873 985675914
1 f none exports/help/client.zh_TW.Big5.html 0600 root bin 795 38110 985675914
1 f none exports/help/create_export.es.html 0600 root bin 144 13491 985675914
1 f none exports/help/create_export.fr.html 0600 root bin 130 12081 985675914
1 f none exports/help/create_export.html 0600 root bin 137 12345 985675914
1 f none exports/help/create_export.pl.html 0600 root bin 162 16066 985675914
1 f none exports/help/create_export.sv.html 0600 root bin 145 13455 985675914
1 f none exports/help/create_export.zh_TW.Big5.html 0600 root bin 91 12673 985675914
1 f none exports/help/dir.es.html 0600 root bin 394 36792 985675914
1 f none exports/help/dir.fr.html 0600 root bin 345 33392 985675914
1 f none exports/help/dir.html 0600 root bin 351 32338 985675914
1 f none exports/help/dir.pl.html 0600 root bin 348 34093 985675914
1 f none exports/help/dir.sv.html 0600 root bin 342 31991 985675914
1 f none exports/help/dir.zh_TW.Big5.html 0600 root bin 241 33928 985675914
1 f none exports/help/edit_export.es.html 0600 root bin 163 15514 985675914
1 f none exports/help/edit_export.fr.html 0600 root bin 163 15038 985675914
1 f none exports/help/edit_export.html 0600 root bin 156 14213 985675914
1 f none exports/help/edit_export.pl.html 0600 root bin 186 18906 985675914
1 f none exports/help/edit_export.sv.html 0600 root bin 138 13285 985675914
1 f none exports/help/edit_export.zh_TW.Big5.html 0600 root bin 105 14927 985675914
1 f none exports/help/insecure.es.html 0600 root bin 311 28380 985675914
1 f none exports/help/insecure.fr.html 0600 root bin 281 26027 985675914
1 f none exports/help/insecure.html 0600 root bin 240 21591 985675914
1 f none exports/help/insecure.pl.html 0600 root bin 293 29139 985675914
1 f none exports/help/insecure.sv.html 0600 root bin 257 24691 985675914
1 f none exports/help/insecure.zh_TW.Big5.html 0600 root bin 182 24321 985675914
1 f none exports/help/intro.es.html 0600 root bin 1008 28046 985675914
1 f none exports/help/intro.fr.html 0600 root bin 949 22959 985675914
1 f none exports/help/intro.html 0600 root bin 877 13882 985675914
1 f none exports/help/intro.pl.html 0600 root bin 955 28214 985675914
1 f none exports/help/intro.sv.html 0600 root bin 869 17246 985675914
1 f none exports/help/intro.zh_TW.Big5.html 0600 root bin 607 17268 985675914
1 f none exports/help/link_relative.es.html 0600 root bin 433 39765 985675914
1 f none exports/help/link_relative.fr.html 0600 root bin 139 12522 985675914
1 f none exports/help/link_relative.html 0600 root bin 394 35169 985675914
1 f none exports/help/link_relative.pl.html 0600 root bin 441 42067 985675914
1 f none exports/help/link_relative.sv.html 0600 root bin 368 34100 985675914
1 f none exports/help/link_relative.zh_TW.Big5.html 0600 root bin 313 40510 985675914
1 f none exports/help/nfs.es.html 0600 root bin 1295 56913 985675914
1 f none exports/help/nfs.fr.html 0600 root bin 1198 50376 985675914
1 f none exports/help/nfs.html 0600 root bin 1093 35121 985675914
1 f none exports/help/nfs.pl.html 0600 root bin 1292 440 985675914
1 f none exports/help/nfs.sv.html 0600 root bin 1142 45833 985675914
1 f none exports/help/nfs.zh_TW.Big5.html 0600 root bin 668 36100 985675914
1 f none exports/help/noaccess.es.html 0600 root bin 280 26776 985675914
1 f none exports/help/noaccess.fr.html 0600 root bin 286 27612 985675914
1 f none exports/help/noaccess.html 0600 root bin 277 25556 985675914
1 f none exports/help/noaccess.pl.html 0600 root bin 307 30500 985675914
1 f none exports/help/noaccess.sv.html 0600 root bin 255 24902 985675914
1 f none exports/help/noaccess.zh_TW.Big5.html 0600 root bin 184 27467 985675914
1 f none exports/help/ro.es.html 0600 root bin 203 18692 985675914
1 f none exports/help/ro.fr.html 0600 root bin 215 19644 985675914
1 f none exports/help/ro.html 0600 root bin 175 15505 985675914
1 f none exports/help/ro.pl.html 0600 root bin 201 19628 985675914
1 f none exports/help/ro.sv.html 0600 root bin 179 16909 985675914
1 f none exports/help/ro.zh_TW.Big5.html 0600 root bin 130 18228 985675914
1 f none exports/help/squash.es.html 0600 root bin 727 65393 985675914
1 f none exports/help/squash.fr.html 0600 root bin 752 3735 985675914
1 f none exports/help/squash.html 0600 root bin 659 58359 985675914
1 f none exports/help/squash.pl.html 0600 root bin 795 10570 985675914
1 f none exports/help/squash.sv.html 0600 root bin 702 65167 985675914
1 f none exports/help/squash.zh_TW.Big5.html 0600 root bin 511 6096 985675914
1 f none exports/help/squash_gids.es.html 0600 root bin 329 28245 985675914
1 f none exports/help/squash_gids.fr.html 0600 root bin 410 37598 985675914
1 f none exports/help/squash_gids.html 0600 root bin 296 25283 985675914
1 f none exports/help/squash_gids.pl.html 0600 root bin 321 29539 985675914
1 f none exports/help/squash_gids.sv.html 0600 root bin 299 25953 985675914
1 f none exports/help/squash_gids.zh_TW.Big5.html 0600 root bin 239 28329 985675914
1 f none exports/help/squash_uids.es.html 0600 root bin 339 29659 985675914
1 f none exports/help/squash_uids.fr.html 0600 root bin 407 37312 985675914
1 f none exports/help/squash_uids.html 0600 root bin 314 27179 985675914
1 f none exports/help/squash_uids.pl.html 0600 root bin 342 32534 985675914
1 f none exports/help/squash_uids.sv.html 0600 root bin 295 26192 985675914
1 f none exports/help/squash_uids.zh_TW.Big5.html 0600 root bin 239 30231 985675914
1 d none exports/images 0700 root bin
1 f none exports/images/export.gif 0600 root bin 1565 51055 985675914
1 f none exports/images/icon.gif 0600 root bin 245 29407 985675914
1 f none exports/index.cgi 0700 root bin 2099 30962 985675914
1 d none exports/lang 0700 root bin
1 f none exports/lang/de 0600 root bin 1953 54526 985675914
1 f none exports/lang/en 0600 root bin 2106 1442 985675914
1 f none exports/lang/es 0600 root bin 2376 30380 985675914
1 f none exports/lang/fr 0600 root bin 1852 51917 985675914
1 f none exports/lang/pl 0600 root bin 2330 33704 985675915
1 f none exports/lang/pt 0600 root bin 1767 44298 985675914
1 f none exports/lang/ru_RU 0600 root bin 1742 38036 985675915
1 f none exports/lang/ru_SU 0600 root bin 1745 9565 985675914
1 f none exports/lang/sv 0600 root bin 2309 27723 985675914
1 f none exports/lang/tr 0600 root bin 1919 1394 985675914
1 f none exports/lang/zh_CN 0600 root bin 1494 14184 985675914
1 f none exports/lang/zh_TW.Big5 0600 root bin 1388 49416 985675914
1 f none exports/log_parser.pl 0600 root bin 862 4904 985675915
1 f none exports/low.risk 0600 root bin 11 971 985675915
1 f none exports/low.skill 0600 root bin 17 1430 985675915
1 f none exports/medium.risk 0600 root bin 11 971 985675915
1 f none exports/medium.skill 0600 root bin 9 770 985675915
1 f none exports/module.info 0600 root bin 452 44972 985675914
1 f none exports/restart_mountd.cgi 0700 root bin 522 44498 985675914
1 f none exports/save_export.cgi 0700 root bin 3204 64103 985675914
1 d none fdisk 0700 root bin
1 f none fdisk/acl_security.pl 0600 root bin 1122 26174 985675920
1 f none fdisk/apply_hdparm.cgi 0700 root bin 1287 30840 985675921
1 f none fdisk/config 0600 root bin 0 0 985675920
1 f none fdisk/defaultacl 0600 root bin 19 1625 985675920
1 f none fdisk/edit_hdparm.cgi 0700 root bin 4261 45195 985675920
1 f none fdisk/edit_part.cgi 0700 root bin 7422 58962 985675920
1 f none fdisk/fdisk-lib.pl 0600 root bin 20375 23086 985675920
1 f none fdisk/fsck.cgi 0700 root bin 551 44753 985675920
1 f none fdisk/fsck_form.cgi 0700 root bin 860 7774 985675920
1 d none fdisk/help 0700 root bin
1 f none fdisk/help/A.es.html 0600 root bin 152 14245 985675920
1 f none fdisk/help/A.fr.html 0600 root bin 91 8730 985675920
1 f none fdisk/help/A.html 0600 root bin 115 10279 985675920
1 f none fdisk/help/A.hu.html 0600 root bin 128 13346 985675920
1 f none fdisk/help/A.sv.html 0600 root bin 118 10901 985675920
1 f none fdisk/help/A.zh_TW.Big5.html 0600 root bin 84 10876 985675920
1 f none fdisk/help/K.es.html 0600 root bin 496 46003 985675920
1 f none fdisk/help/K.fr.html 0600 root bin 536 49703 985675920
1 f none fdisk/help/K.html 0600 root bin 397 35668 985675920
1 f none fdisk/help/K.hu.html 0600 root bin 446 47244 985675920
1 f none fdisk/help/K.sv.html 0600 root bin 405 38597 985675920
1 f none fdisk/help/K.zh_TW.Big5.html 0600 root bin 258 33920 985675920
1 f none fdisk/help/P.es.html 0600 root bin 980 25888 985675920
1 f none fdisk/help/P.fr.html 0600 root bin 775 6553 985675920
1 f none fdisk/help/P.html 0600 root bin 818 8665 985675920
1 f none fdisk/help/P.hu.html 0600 root bin 863 24343 985675920
1 f none fdisk/help/P.sv.html 0600 root bin 736 5537 985675920
1 f none fdisk/help/P.zh_TW.Big5.html 0600 root bin 511 8947 985675920
1 f none fdisk/help/S.es.html 0600 root bin 974 22562 985675920
1 f none fdisk/help/S.fr.html 0600 root bin 1043 30875 985675920
1 f none fdisk/help/S.html 0600 root bin 816 6905 985675920
1 f none fdisk/help/S.sv.html 0600 root bin 789 8799 985675920
1 f none fdisk/help/S.zh_TW.Big5.html 0600 root bin 490 64078 985675920
1 f none fdisk/help/W.es.html 0600 root bin 151 14073 985675920
1 f none fdisk/help/W.fr.html 0600 root bin 128 12603 985675920
1 f none fdisk/help/W.html 0600 root bin 114 10176 985675920
1 f none fdisk/help/W.pl.html 0600 root bin 131 12578 985675920
1 f none fdisk/help/W.sv.html 0600 root bin 103 9306 985675920
1 f none fdisk/help/W.zh_TW.Big5.html 0600 root bin 83 10651 985675920
1 f none fdisk/help/X.es.html 0600 root bin 570 52469 985675920
1 f none fdisk/help/X.fr.html 0600 root bin 661 62263 985675920
1 f none fdisk/help/X.html 0600 root bin 467 41466 985675920
1 f none fdisk/help/X.sv.html 0600 root bin 497 48312 985675920
1 f none fdisk/help/X.zh_TW.Big5.html 0600 root bin 331 46072 985675920
1 f none fdisk/help/a.fr.html 0600 root bin 651 62289 985675920
1 f none fdisk/help/a.html 0600 root bin 634 57966 985675920
1 f none fdisk/help/a.sv.html 0600 root bin 620 62122 985675920
1 f none fdisk/help/a.zh_TW.Big5.html 0600 root bin 395 58976 985675920
1 f none fdisk/help/c.fr.html 0600 root bin 387 35846 985675920
1 f none fdisk/help/c.html 0600 root bin 366 31836 985675920
1 f none fdisk/help/c.sv.html 0600 root bin 357 33253 985675920
1 f none fdisk/help/c.zh_TW.Big5.html 0600 root bin 274 35462 985675920
1 f none fdisk/help/d.fr.html 0600 root bin 587 55308 985675920
1 f none fdisk/help/d.html 0600 root bin 685 62374 985675920
1 f none fdisk/help/d.sv.html 0600 root bin 672 685 985675920
1 f none fdisk/help/d.zh_TW.Big5.html 0600 root bin 411 56092 985675920
1 f none fdisk/help/edit.fr.html 0600 root bin 380 34872 985675920
1 f none fdisk/help/edit.html 0600 root bin 296 26019 985675920
1 f none fdisk/help/edit.sv.html 0600 root bin 282 27114 985675920
1 f none fdisk/help/edit.zh_TW.Big5.html 0600 root bin 235 32187 985675920
1 f none fdisk/help/index.fr.html 0600 root bin 1362 61466 985675920
1 f none fdisk/help/index.html 0600 root bin 1004 24495 985675920
1 f none fdisk/help/index.sv.html 0600 root bin 1010 31453 985675920
1 f none fdisk/help/index.zh_TW.Big5.html 0600 root bin 665 28520 985675920
1 f none fdisk/help/k.fr.html 0600 root bin 464 43783 985675920
1 f none fdisk/help/k.html 0600 root bin 366 33008 985675920
1 f none fdisk/help/k.sv.html 0600 root bin 380 36197 985675920
1 f none fdisk/help/k.zh_TW.Big5.html 0600 root bin 273 34534 985675920
1 f none fdisk/help/m.fr.html 0600 root bin 1253 52364 985675920
1 f none fdisk/help/m.html 0600 root bin 1151 38410 985675920
1 f none fdisk/help/m.sv.html 0600 root bin 1257 56042 985675920
1 f none fdisk/help/m.zh_TW.Big5.html 0600 root bin 782 45607 985675920
1 f none fdisk/help/r.fr.html 0600 root bin 162 15378 985675920
1 f none fdisk/help/r.html 0600 root bin 123 11101 985675920
1 f none fdisk/help/r.sv.html 0600 root bin 133 12960 985675920
1 f none fdisk/help/r.zh_TW.Big5.html 0600 root bin 86 12143 985675920
1 f none fdisk/help/u.fr.html 0600 root bin 660 62615 985675920
1 f none fdisk/help/u.html 0600 root bin 640 58768 985675920
1 f none fdisk/help/u.sv.html 0600 root bin 670 64521 985675920
1 f none fdisk/help/u.zh_TW.Big5.html 0600 root bin 403 53718 985675920
1 d none fdisk/images 0700 root bin
1 f none fdisk/images/ext.gif 0600 root bin 36 1456 985675920
1 f none fdisk/images/gap.gif 0600 root bin 44 2023 985675920
1 f none fdisk/images/icon.gif 0600 root bin 308 36936 985675920
1 f none fdisk/images/use.gif 0600 root bin 36 1215 985675920
1 f none fdisk/index.cgi 0700 root bin 4314 57135 985675920
1 d none fdisk/lang 0700 root bin
1 f none fdisk/lang/de 0600 root bin 7077 9868 985675921
1 f none fdisk/lang/en 0600 root bin 6539 21216 985675921
1 f none fdisk/lang/es 0600 root bin 7674 7322 985675921
1 f none fdisk/lang/fr 0600 root bin 6897 18878 985675921
1 f none fdisk/lang/hu 0600 root bin 6383 11535 985675921
1 f none fdisk/lang/pl 0600 root bin 7282 3254 985675921
1 f none fdisk/lang/pt 0600 root bin 5669 24358 985675921
1 f none fdisk/lang/ru_RU 0600 root bin 5396 22157 985675921
1 f none fdisk/lang/ru_SU 0600 root bin 5407 61895 985675920
1 f none fdisk/lang/sv 0600 root bin 6879 11972 985675921
1 f none fdisk/lang/tr 0600 root bin 6416 12953 985675921
1 f none fdisk/lang/zh_CN 0600 root bin 5069 53749 985675921
1 f none fdisk/lang/zh_TW.Big5 0600 root bin 4701 14151 985675921
1 f none fdisk/log_parser.pl 0600 root bin 1333 35937 985675921
1 f none fdisk/make_tags.pl 0700 root bin 210 14222 985675920
1 f none fdisk/mkfs.cgi 0700 root bin 934 11358 985675920
1 f none fdisk/mkfs_form.cgi 0700 root bin 1054 23065 985675920
1 f none fdisk/module.info 0600 root bin 571 61519 985675920
1 f none fdisk/reboot.cgi 0700 root bin 271 23148 985675920
1 f none fdisk/save_part.cgi 0700 root bin 2695 20943 985675920
1 f none fdisk/tunefs.cgi 0700 root bin 684 57191 985675920
1 f none fdisk/tunefs_form.cgi 0700 root bin 938 15214 985675920
1 d none file 0700 root bin
1 f none file/BorderPanel.class 0600 root bin 1446 4753 985675936
1 f none file/BorderPanel.java 0700 root bin 765 58285 985675936
1 f none file/CbButton.class 0600 root bin 4861 19409 985675936
1 f none file/CbButton.java 0600 root bin 5443 26769 985675936
1 f none file/CbButtonCallback.class 0600 root bin 241 16019 985675936
1 f none file/CbButtonGroup.class 0600 root bin 747 39501 985675936
1 f none file/CbColorButton.class 0600 root bin 1788 40052 985675936
1 f none file/CbColorButton.java 0600 root bin 947 7942 985675936
1 f none file/CbColorWindow.class 0600 root bin 3954 55038 985675936
1 f none file/CbColorWindow.java 0600 root bin 5257 37084 985675936
1 f none file/CbColorWindowCallback.class 0600 root bin 363 26150 985675936
1 f none file/CbColorWindowCube.class 0600 root bin 1831 47508 985675936
1 f none file/CbColorWindowSwatch.class 0600 root bin 1790 39012 985675936
1 f none file/CbImageChooser.class 0600 root bin 1285 5767 985675936
1 f none file/CbImageChooser.java 0600 root bin 4700 46122 985675936
1 f none file/CbImageFileWindow.class 0600 root bin 3699 54358 985675936
1 f none file/CbScrollbar.class 0600 root bin 4330 39507 985675936
1 f none file/CbScrollbar.java 0600 root bin 7820 13914 985675936
1 f none file/CbScrollbarArrow.class 0600 root bin 2028 37155 985675936
1 f none file/CbScrollbarCallback.class 0600 root bin 274 18301 985675936
1 f none file/CbSlider.class 0600 root bin 3732 55388 985675936
1 f none file/CbSlider.java 0600 root bin 4622 28249 985675936
1 f none file/CbSliderCallback.class 0600 root bin 240 15352 985675936
1 f none file/DFSAdminExport.class 0600 root bin 1755 43480 985675937
1 f none file/DeleteWindow.class 0600 root bin 3194 35669 985675936
1 f none file/EditorWindow.class 0600 root bin 5507 56778 985675936
1 f none file/ErrorWindow.class 0600 root bin 1323 15257 985675936
1 f none file/ErrorWindow.java 0600 root bin 557 46152 985675936
1 f none file/FileManager.class 0600 root bin 15550 59463 985675936
1 f none file/FileManager.java 0600 root bin 60791 53965 985675936
1 f none file/FileNode.class 0600 root bin 1895 55195 985675936
1 f none file/FixedFrame.class 0600 root bin 855 39991 985675936
1 f none file/FixedFrame.java 0600 root bin 696 55546 985675936
1 f none file/GrayPanel.class 0600 root bin 632 35006 985675936
1 f none file/GrayPanel.java 0600 root bin 177 14890 985675936
1 f none file/Hierarchy.class 0600 root bin 5744 19311 985675936
1 f none file/Hierarchy.java 0600 root bin 7595 17329 985675936
1 f none file/HierarchyCallback.class 0600 root bin 324 21287 985675936
1 f none file/HierarchyNode.class 0600 root bin 612 30959 985675936
1 f none file/LineInputStream.class 0600 root bin 1838 12147 985675936
1 f none file/LineInputStream.java 0700 root bin 2127 45435 985675936
1 f none file/LinedPanel.class 0600 root bin 1352 8767 985675936
1 f none file/LinedPanel.java 0600 root bin 712 53631 985675936
1 f none file/LinkWindow.class 0600 root bin 3548 57093 985675936
1 f none file/LinuxExport.class 0600 root bin 1908 58070 985675937
1 f none file/Makefile 0600 root bin 122 10701 985675936
1 f none file/MkdirWindow.class 0600 root bin 3582 58520 985675936
1 f none file/MultiColumn.class 0600 root bin 7967 21218 985675936
1 f none file/MultiColumn.java 0600 root bin 9630 37505 985675936
1 f none file/MultiColumnCallback.class 0600 root bin 263 17903 985675936
1 f none file/MultiLabel.class 0600 root bin 1677 45285 985675936
1 f none file/MyFlowLayout.java 0400 root bin 6627 60000 985675936
1 f none file/OverwriteWindow.class 0600 root bin 3111 20341 985675937
1 f none file/PermissionsPanel.class 0600 root bin 1489 27834 985675936
1 f none file/PropertiesWindow.class 0600 root bin 6767 62668 985675936
1 f none file/RemoteFile.class 0600 root bin 3648 31372 985675936
1 f none file/RenameWindow.class 0600 root bin 4040 26839 985675936
1 f none file/ResizePanel.class 0600 root bin 2375 63409 985675936
1 f none file/ResizePanel.java 0600 root bin 2036 36261 985675936
1 f none file/SambaShare.class 0600 root bin 1646 35968 985675937
1 f none file/ScrollImage.class 0600 root bin 2865 40852 985675936
1 f none file/SearchWindow.class 0600 root bin 7661 14053 985675937
1 f none file/SharingWindow.class 0600 root bin 10702 52928 985675937
1 f none file/StaticTextField.class 0600 root bin 508 24333 985675936
1 f none file/StaticTextField.java 0600 root bin 338 28277 985675936
1 f none file/StringJoiner.class 0600 root bin 840 43468 985675937
1 f none file/StringSplitter.class 0600 root bin 1194 62800 985675937
1 f none file/StringSplitter.java 0600 root bin 1970 31966 985675937
1 f none file/TabSelector.class 0600 root bin 2818 29199 985675936
1 f none file/TabbedDisplayPanel.class 0600 root bin 1580 28851 985675936
1 f none file/TabbedPanel.class 0600 root bin 1344 9732 985675936
1 f none file/TabbedPanel.java 0600 root bin 4111 58688 985675936
1 f none file/ThirdsLayout.class 0600 root bin 1607 30560 985675937
1 f none file/Util.class 0600 root bin 3762 30510 985675936
1 f none file/Util.java 0600 root bin 2598 6953 985675936
1 f none file/acl_security.pl 0600 root bin 1333 45229 985675936
1 f none file/chmod.cgi 0700 root bin 2024 27452 985675936
1 f none file/copy.cgi 0700 root bin 1061 17898 985675936
1 f none file/defaultacl 0600 root bin 44 3648 985675936
1 f none file/delete.cgi 0700 root bin 412 33561 985675936
1 f none file/file-lib.pl 0600 root bin 1744 63683 985675936
1 d none file/images 0700 root bin
1 f none file/images/binary.gif 0600 root bin 97 8992 985675936
1 f none file/images/cancel.gif 0600 root bin 107 9763 985675936
1 f none file/images/copy.gif 0600 root bin 113 11556 985675936
1 f none file/images/cut.gif 0600 root bin 119 11873 985675936
1 f none file/images/device.gif 0600 root bin 90 7520 985675936
1 f none file/images/dir.gif 0600 root bin 88 8637 985675936
1 f none file/images/edit.gif 0600 root bin 138 13129 985675936
1 f none file/images/file.gif 0600 root bin 1754 7118 985675936
1 f none file/images/icon.gif 0600 root bin 266 29430 985675936
1 f none file/images/image.gif 0600 root bin 124 11467 985675936
1 f none file/images/makelink.gif 0600 root bin 127 14672 985675936
1 f none file/images/mkdir.gif 0600 root bin 106 11958 985675936
1 f none file/images/new.gif 0600 root bin 85 9773 985675936
1 f none file/images/open.gif 0600 root bin 114 13145 985675936
1 f none file/images/paste.gif 0600 root bin 152 15179 985675936
1 f none file/images/pipe.gif 0600 root bin 107 8758 985675936
1 f none file/images/props.gif 0600 root bin 117 13273 985675936
1 f none file/images/refresh.gif 0600 root bin 92 9815 985675936
1 f none file/images/rename.gif 0600 root bin 144 15370 985675936
1 f none file/images/run.gif 0600 root bin 130 13008 985675936
1 f none file/images/save.gif 0600 root bin 92 7921 985675936
1 f none file/images/sdir.gif 0600 root bin 180 18300 985675936
1 f none file/images/search.gif 0600 root bin 131 12536 985675936
1 f none file/images/share.gif 0600 root bin 132 13595 985675936
1 f none file/images/symlink.gif 0600 root bin 87 7991 985675936
1 f none file/images/text.gif 0600 root bin 91 8129 985675936
1 f none file/images/unknown.gif 0600 root bin 79 7261 985675936
1 f none file/images/upload.gif 0600 root bin 154 16502 985675936
1 f none file/images/view.gif 0600 root bin 138 14182 985675936
1 f none file/index.cgi 0700 root bin 1104 26701 985675936
1 d none file/lang 0700 root bin
1 f none file/lang.cgi 0700 root bin 194 16320 985675937
1 f none file/lang/de 0600 root bin 4834 56507 985675936
1 f none file/lang/en 0600 root bin 6068 37485 985675936
1 f none file/lang/es 0600 root bin 6879 61427 985675936
1 f none file/lang/fr 0600 root bin 4679 56823 985675936
1 f none file/lang/it 0600 root bin 4354 10319 985675936
1 f none file/lang/pl 0600 root bin 11281 30243 985675936
1 f none file/lang/pt 0600 root bin 4524 40204 985675936
1 f none file/lang/ru_RU 0600 root bin 4305 30265 985675936
1 f none file/lang/ru_SU 0600 root bin 4326 37526 985675936
1 f none file/lang/sv 0600 root bin 4261 9029 985675936
1 f none file/lang/tr 0600 root bin 5759 52709 985675936
1 f none file/lang/zh_CN 0600 root bin 4823 45240 985675936
1 f none file/lang/zh_TW.Big5 0600 root bin 3197 58318 985675936
1 f none file/list.cgi 0700 root bin 598 46233 985675936
1 f none file/list_exports.cgi 0700 root bin 2361 50118 985675937
1 f none file/list_shares.cgi 0700 root bin 1204 31422 985675937
1 f none file/log_parser.pl 0600 root bin 994 16431 985675937
1 f none file/makelink.cgi 0700 root bin 535 44275 985675936
1 f none file/mkdir.cgi 0700 root bin 453 36698 985675936
1 f none file/module.info 0600 root bin 339 37311 985675936
1 f none file/move.cgi 0700 root bin 597 48448 985675936
1 f none file/rename.cgi 0700 root bin 458 37091 985675936
1 f none file/root.cgi 0700 root bin 176 15352 985675936
1 f none file/save.cgi 0700 root bin 476 36889 985675936
1 f none file/save_export.cgi 0700 root bin 3933 46658 985675937
1 f none file/save_share.cgi 0700 root bin 2537 621 985675937
1 f none file/search.cgi 0700 root bin 749 57642 985675937
1 f none file/show.cgi 0700 root bin 1165 20627 985675936
1 f none file/upform.cgi 0700 root bin 883 9987 985675936
1 f none file/upload.cgi 0700 root bin 921 5032 985675936
1 d none format 0700 root bin
1 f none format/acl_security.pl 0600 root bin 1070 22103 985675921
1 f none format/config 0600 root bin 84 7946 985675921
1 f none format/config.info 0600 root bin 90 8170 985675921
1 f none format/config.info.de 0600 root bin 100 9178 985675921
1 f none format/config.info.es 0600 root bin 110 10270 985675921
1 f none format/config.info.fr 0600 root bin 104 9664 985675921
1 f none format/config.info.pl 0600 root bin 98 9372 985675921
1 f none format/config.info.sv 0600 root bin 112 11320 985675921
1 f none format/config.info.tr 0600 root bin 89 8312 985675921
1 f none format/config.info.zh_CN 0600 root bin 82 8918 985675921
1 f none format/config.info.zh_TW.Big5 0600 root bin 92 10498 985675921
1 f none format/copy_part_form.cgi 0700 root bin 2727 21182 985675921
1 f none format/defaultacl 0600 root bin 19 1625 985675921
1 f none format/edit_disk.cgi 0700 root bin 2663 24288 985675921
1 f none format/edit_part.cgi 0700 root bin 4835 3193 985675921
1 f none format/format-lib.pl 0600 root bin 9040 38885 985675921
1 f none format/fsck.cgi 0700 root bin 553 44859 985675921
1 f none format/fsck_form.cgi 0700 root bin 886 10314 985675921
1 d none format/help 0700 root bin
1 f none format/help/help.es.html 0600 root bin 205 17433 985675921
1 f none format/help/help.html 0600 root bin 199 16460 985675921
1 f none format/help/help.sv.html 0600 root bin 204 17228 985675921
1 f none format/help/help.zh_TW.Big5.html 0600 root bin 177 16907 985675921
1 d none format/images 0700 root bin
1 f none format/images/gap.gif 0600 root bin 44 2023 985675921
1 f none format/images/icon.gif 0600 root bin 308 36936 985675921
1 f none format/images/use.gif 0600 root bin 36 1215 985675921
1 f none format/index.cgi 0700 root bin 2954 24312 985675921
1 d none format/lang 0700 root bin
1 f none format/lang/de 0600 root bin 121 10081 985675921
1 f none format/lang/en 0600 root bin 6030 42080 985675921
1 f none format/lang/es 0600 root bin 6097 49161 985675921
1 f none format/lang/sv 0600 root bin 6317 24346 985675921
1 f none format/lang/tr 0600 root bin 125 11583 985675921
1 f none format/lang/zh_CN 0600 root bin 4485 24109 985675921
1 f none format/module.info 0600 root bin 413 42525 985675921
1 f none format/newfs.cgi 0700 root bin 1172 24250 985675921
1 f none format/newfs_form.cgi 0700 root bin 1579 64572 985675921
1 f none format/save_part.cgi 0700 root bin 1034 20581 985675921
1 f none format/tunefs.cgi 0700 root bin 892 6358 985675921
1 f none format/tunefs_form.cgi 0700 root bin 1261 42436 985675921
1 f none group_chooser.cgi 0700 root bin 4690 42826 985675910
1 f none help.cgi 0700 root bin 2128 37997 985675910
1 d none hpuxexports 0700 root bin
1 f none hpuxexports/config-hpux 0600 root bin 91 9010 985675936
1 f none hpuxexports/config.info 0600 root bin 155 14908 985675936
1 f none hpuxexports/config.info.de 0600 root bin 174 16759 985675936
1 f none hpuxexports/config.info.es 0600 root bin 201 19444 985675936
1 f none hpuxexports/config.info.fr 0600 root bin 183 17595 985675936
1 f none hpuxexports/config.info.pl 0600 root bin 196 19820 985675936
1 f none hpuxexports/config.info.ru_RU 0600 root bin 164 26971 985675936
1 f none hpuxexports/config.info.ru_SU 0600 root bin 164 24484 985675936
1 f none hpuxexports/config.info.sv 0600 root bin 173 16978 985675936
1 f none hpuxexports/config.info.tr 0600 root bin 155 15829 985675936
1 f none hpuxexports/config.info.zh_CN 0600 root bin 128 16397 985675936
1 f none hpuxexports/config.info.zh_TW.Big5 0600 root bin 118 15514 985675936
1 f none hpuxexports/delete_export.cgi 0700 root bin 153 13096 985675936
1 f none hpuxexports/edit_export.cgi 0700 root bin 3756 47032 985675936
1 d none hpuxexports/help 0700 root bin
1 f none hpuxexports/help/help.es.html 0600 root bin 209 17914 985675936
1 f none hpuxexports/help/help.html 0600 root bin 200 16597 985675936
1 f none hpuxexports/help/help.sv.html 0600 root bin 201 16858 985675936
1 f none hpuxexports/help/help.zh_TW.Big5.html 0600 root bin 175 16447 985675936
1 f none hpuxexports/hpuxexports-lib.pl 0600 root bin 2620 11441 985675936
1 d none hpuxexports/images 0700 root bin
1 f none hpuxexports/images/icon.gif 0600 root bin 245 29407 985675936
1 f none hpuxexports/index.cgi 0700 root bin 1567 61313 985675936
1 f none hpuxexports/module.info 0600 root bin 350 34980 985675936
1 f none hpuxexports/restart_exporting.cgi 0700 root bin 591 49707 985675936
1 f none hpuxexports/save_export.cgi 0700 root bin 2585 19803 985675936
1 d none images 0700 root bin
1 f none images/back.gif 0600 root bin 41 2407 985675909
1 f none images/binary.gif 0600 root bin 134 13697 985675909
1 f none images/dir.gif 0600 root bin 115 10983 985675909
1 f none images/image.gif 0600 root bin 231 19727 985675909
1 f none images/lc1.gif 0600 root bin 42 2929 985675909
1 f none images/lc2.gif 0600 root bin 42 2981 985675909
1 f none images/left.gif 0600 root bin 118 12154 985675909
1 d none images/letters 0700 root bin
1 f none images/letters/100.gif 0600 root bin 279 27562 985675909
1 f none images/letters/101.gif 0600 root bin 263 23439 985675909
1 f none images/letters/102.gif 0600 root bin 201 20319 985675909
1 f none images/letters/103.gif 0600 root bin 321 29587 985675909
1 f none images/letters/104.gif 0600 root bin 244 26065 985675909
1 f none images/letters/105.gif 0600 root bin 111 10886 985675909
1 f none images/letters/106.gif 0600 root bin 188 18256 985675909
1 f none images/letters/107.gif 0600 root bin 264 24686 985675909
1 f none images/letters/108.gif 0600 root bin 104 10349 985675909
1 f none images/letters/109.gif 0600 root bin 325 34654 985675909
1 f none images/letters/110.gif 0600 root bin 234 23843 985675909
1 f none images/letters/111.gif 0600 root bin 279 26183 985675909
1 f none images/letters/112.gif 0600 root bin 295 26799 985675909
1 f none images/letters/113.gif 0600 root bin 293 27114 985675909
1 f none images/letters/114.gif 0600 root bin 193 18528 985675909
1 f none images/letters/115.gif 0600 root bin 270 25366 985675909
1 f none images/letters/116.gif 0600 root bin 207 19561 985675909
1 f none images/letters/117.gif 0600 root bin 240 22575 985675909
1 f none images/letters/118.gif 0600 root bin 266 25314 985675909
1 f none images/letters/119.gif 0600 root bin 365 36606 985675909
1 f none images/letters/120.gif 0600 root bin 265 25455 985675909
1 f none images/letters/121.gif 0600 root bin 295 28187 985675909
1 f none images/letters/122.gif 0600 root bin 211 20556 985675909
1 f none images/letters/123.gif 0600 root bin 230 20800 985675910
1 f none images/letters/124.gif 0600 root bin 93 9416 985675910
1 f none images/letters/125.gif 0600 root bin 214 20574 985675910
1 f none images/letters/126.gif 0600 root bin 179 16492 985675910
1 f none images/letters/177.iso-8859-2.gif 0600 root bin 297 26677 985675910
1 f none images/letters/179.iso-8859-2.gif 0600 root bin 132 14569 985675910
1 f none images/letters/182.iso-8859-2.gif 0600 root bin 292 26962 985675910
1 f none images/letters/188.iso-8859-2.gif 0600 root bin 243 23472 985675910
1 f none images/letters/191.iso-8859-2.gif 0600 root bin 223 23721 985675910
1 f none images/letters/192.gif 0600 root bin 344 34350 985675909
1 f none images/letters/193.gif 0600 root bin 350 35704 985675909
1 f none images/letters/194.gif 0600 root bin 357 35931 985675909
1 f none images/letters/195.gif 0600 root bin 357 35372 985675909
1 f none images/letters/196.gif 0600 root bin 347 33811 985675909
1 f none images/letters/197.gif 0600 root bin 371 38306 985675909
1 f none images/letters/198.gif 0600 root bin 343 36851 985675909
1 f none images/letters/199.gif 0600 root bin 345 32508 985675909
1 f none images/letters/200.gif 0600 root bin 243 26765 985675909
1 f none images/letters/201.gif 0600 root bin 210 22783 985675909
1 f none images/letters/202.gif 0600 root bin 266 29527 985675909
1 f none images/letters/203.gif 0600 root bin 217 26120 985675909
1 f none images/letters/204.gif 0600 root bin 167 18673 985675909
1 f none images/letters/205.gif 0600 root bin 162 18114 985675909
1 f none images/letters/206.gif 0600 root bin 213 22371 985675909
1 f none images/letters/207.gif 0600 root bin 178 20451 985675909
1 f none images/letters/208.gif 0600 root bin 295 31590 985675909
1 f none images/letters/208.iso-8859-9.gif 0600 root bin 353 32557 985675910
1 f none images/letters/209.gif 0600 root bin 338 34720 985675909
1 f none images/letters/210.gif 0600 root bin 382 37778 985675909
1 f none images/letters/211.gif 0600 root bin 382 38537 985675909
1 f none images/letters/211.iso-8859-2.gif 0600 root bin 382 38537 985675910
1 f none images/letters/212.gif 0600 root bin 389 40849 985675909
1 f none images/letters/213.gif 0600 root bin 389 40492 985675909
1 f none images/letters/214.gif 0600 root bin 377 37118 985675909
1 f none images/letters/214.iso-8859-9.gif 0600 root bin 377 37118 985675910
1 f none images/letters/215.gif 0600 root bin 242 24334 985675909
1 f none images/letters/216.gif 0600 root bin 413 41522 985675909
1 f none images/letters/217.gif 0600 root bin 307 30901 985675909
1 f none images/letters/218.gif 0600 root bin 301 30176 985675909
1 f none images/letters/219.gif 0600 root bin 323 33907 985675909
1 f none images/letters/220.gif 0600 root bin 314 32975 985675909
1 f none images/letters/220.iso-8859-9.gif 0600 root bin 314 32975 985675910
1 f none images/letters/221.gif 0600 root bin 296 32517 985675909
1 f none images/letters/221.iso-8859-9.gif 0600 root bin 943 19870 985675910
1 f none images/letters/222.gif 0600 root bin 239 24937 985675909
1 f none images/letters/222.iso-8859-9.gif 0600 root bin 1129 39223 985675910
1 f none images/letters/223.gif 0600 root bin 317 32136 985675909
1 f none images/letters/224.gif 0600 root bin 287 27847 985675909
1 f none images/letters/225.gif 0600 root bin 300 29200 985675909
1 f none images/letters/226.gif 0600 root bin 316 31226 985675909
1 f none images/letters/227.gif 0600 root bin 306 27799 985675909
1 f none images/letters/228.gif 0600 root bin 308 30740 985675909
1 f none images/letters/229.gif 0600 root bin 323 31030 985675909
1 f none images/letters/230.gif 0600 root bin 378 37522 985675909
1 f none images/letters/230.iso-8859-2.gif 0600 root bin 288 26948 985675910
1 f none images/letters/231.gif 0600 root bin 293 27749 985675909
1 f none images/letters/231.iso-8859-9.gif 0600 root bin 293 27749 985675910
1 f none images/letters/232.gif 0600 root bin 282 27297 985675909
1 f none images/letters/233.gif 0600 root bin 285 28670 985675909
1 f none images/letters/234.gif 0600 root bin 300 28841 985675910
1 f none images/letters/234.iso-8859-2.gif 0600 root bin 285 26819 985675910
1 f none images/letters/235.gif 0600 root bin 293 28337 985675910
1 f none images/letters/236.gif 0600 root bin 169 16788 985675910
1 f none images/letters/237.gif 0600 root bin 145 15802 985675910
1 f none images/letters/238.gif 0600 root bin 193 19445 985675910
1 f none images/letters/239.gif 0600 root bin 162 18182 985675910
1 f none images/letters/240.gif 0600 root bin 328 31206 985675910
1 f none images/letters/240.iso-8859-9.gif 0600 root bin 1101 36086 985675910
1 f none images/letters/241.gif 0600 root bin 279 30015 985675910
1 f none images/letters/241.iso-8859-2.gif 0600 root bin 259 27391 985675910
1 f none images/letters/242.gif 0600 root bin 301 28194 985675910
1 f none images/letters/243.gif 0600 root bin 305 28510 985675910
1 f none images/letters/243.iso-8859-2.gif 0600 root bin 305 28510 985675910
1 f none images/letters/244.gif 0600 root bin 323 31508 985675910
1 f none images/letters/245.gif 0600 root bin 318 30010 985675910
1 f none images/letters/246.gif 0600 root bin 314 31221 985675910
1 f none images/letters/246.iso-8859-9.gif 0600 root bin 314 31221 985675910
1 f none images/letters/247.gif 0600 root bin 217 20068 985675910
1 f none images/letters/248.gif 0600 root bin 320 32994 985675910
1 f none images/letters/249.gif 0600 root bin 261 27640 985675910
1 f none images/letters/250.gif 0600 root bin 266 27019 985675910
1 f none images/letters/251.gif 0600 root bin 272 27944 985675910
1 f none images/letters/252.gif 0600 root bin 270 28826 985675910
1 f none images/letters/252.iso-8859-9.gif 0600 root bin 270 28826 985675910
1 f none images/letters/253.gif 0600 root bin 317 29574 985675910
1 f none images/letters/253.iso-8859-9.gif 0600 root bin 911 16826 985675910
1 f none images/letters/254.gif 0600 root bin 309 30760 985675910
1 f none images/letters/255.gif 0600 root bin 339 32895 985675910
1 f none images/letters/32.gif 0600 root bin 108 9700 985675910
1 f none images/letters/33.gif 0600 root bin 165 15817 985675909
1 f none images/letters/34.gif 0600 root bin 145 14648 985675910
1 f none images/letters/35.gif 0600 root bin 290 28557 985675910
1 f none images/letters/36.gif 0600 root bin 336 31998 985675910
1 f none images/letters/37.gif 0600 root bin 418 44292 985675910
1 f none images/letters/38.gif 0600 root bin 341 33541 985675910
1 f none images/letters/39.gif 0600 root bin 93 8353 985675910
1 f none images/letters/40.gif 0600 root bin 226 19687 985675910
1 f none images/letters/41.gif 0600 root bin 226 20077 985675910
1 f none images/letters/42.gif 0600 root bin 185 18044 985675910
1 f none images/letters/43.gif 0600 root bin 154 17591 985675910
1 f none images/letters/44.gif 0600 root bin 143 13259 985675910
1 f none images/letters/45.gif 0600 root bin 103 10757 985675910
1 f none images/letters/46.gif 0600 root bin 79 8499 985675910
1 f none images/letters/47.gif 0600 root bin 197 17377 985675910
1 f none images/letters/48.gif 0600 root bin 300 29187 985675909
1 f none images/letters/49.gif 0600 root bin 197 18188 985675909
1 f none images/letters/50.gif 0600 root bin 270 26110 985675909
1 f none images/letters/51.gif 0600 root bin 289 26741 985675909
1 f none images/letters/52.gif 0600 root bin 261 26144 985675909
1 f none images/letters/53.gif 0600 root bin 279 25679 985675909
1 f none images/letters/54.gif 0600 root bin 313 29226 985675909
1 f none images/letters/55.gif 0600 root bin 235 22518 985675909
1 f none images/letters/56.gif 0600 root bin 310 29997 985675909
1 f none images/letters/57.gif 0600 root bin 312 28140 985675909
1 f none images/letters/58.gif 0600 root bin 108 10765 985675910
1 f none images/letters/59.gif 0600 root bin 157 13920 985675910
1 f none images/letters/60.gif 0600 root bin 215 20238 985675910
1 f none images/letters/61.gif 0600 root bin 111 11761 985675910
1 f none images/letters/62.gif 0600 root bin 218 19622 985675910
1 f none images/letters/63.gif 0600 root bin 246 24681 985675910
1 f none images/letters/64.gif 0600 root bin 456 47828 985675910
1 f none images/letters/65.gif 0600 root bin 314 29902 985675909
1 f none images/letters/66.gif 0600 root bin 279 28462 985675909
1 f none images/letters/67.gif 0600 root bin 316 28609 985675909
1 f none images/letters/68.gif 0600 root bin 286 29933 985675909
1 f none images/letters/69.gif 0600 root bin 192 21014 985675909
1 f none images/letters/70.gif 0600 root bin 185 20369 985675909
1 f none images/letters/71.gif 0600 root bin 353 32557 985675909
1 f none images/letters/72.gif 0600 root bin 192 21724 985675909
1 f none images/letters/73.gif 0600 root bin 104 9813 985675909
1 f none images/letters/74.gif 0600 root bin 234 22179 985675909
1 f none images/letters/75.gif 0600 root bin 290 30104 985675909
1 f none images/letters/76.gif 0600 root bin 168 17611 985675909
1 f none images/letters/77.gif 0600 root bin 365 39576 985675909
1 f none images/letters/78.gif 0600 root bin 309 33259 985675909
1 f none images/letters/79.gif 0600 root bin 340 31918 985675909
1 f none images/letters/80.gif 0600 root bin 244 25229 985675909
1 f none images/letters/81.gif 0600 root bin 373 34966 985675909
1 f none images/letters/82.gif 0600 root bin 278 27814 985675909
1 f none images/letters/83.gif 0600 root bin 330 31206 985675909
1 f none images/letters/84.gif 0600 root bin 179 18720 985675909
1 f none images/letters/85.gif 0600 root bin 293 29284 985675909
1 f none images/letters/86.gif 0600 root bin 297 32396 985675909
1 f none images/letters/87.gif 0600 root bin 437 44621 985675909
1 f none images/letters/88.gif 0600 root bin 321 31944 985675909
1 f none images/letters/89.gif 0600 root bin 276 28941 985675909
1 f none images/letters/90.gif 0600 root bin 246 24715 985675909
1 f none images/letters/91.gif 0600 root bin 160 17505 985675910
1 f none images/letters/93.gif 0600 root bin 160 17941 985675910
1 f none images/letters/94.gif 0600 root bin 210 20895 985675910
1 f none images/letters/95.gif 0600 root bin 112 11268 985675910
1 f none images/letters/96.gif 0600 root bin 105 11369 985675910
1 f none images/letters/97.gif 0600 root bin 280 25111 985675909
1 f none images/letters/98.gif 0600 root bin 285 27842 985675909
1 f none images/letters/99.gif 0600 root bin 264 23531 985675909
1 f none images/newlogo.gif 0600 root bin 6835 33785 985675910
1 f none images/rc1.gif 0600 root bin 43 3192 985675909
1 f none images/rc2.gif 0600 root bin 43 3244 985675909
1 f none images/right.gif 0600 root bin 135 13410 985675909
1 f none images/smalllogo.gif 0600 root bin 4795 22264 985675910
1 f none images/text.gif 0600 root bin 130 13008 985675909
1 f none images/unknown.gif 0600 root bin 132 12527 985675909
1 f none images/webmin-mini.xpm 0600 root bin 528 22656 985675909
1 f none images/webmin.gif 0600 root bin 1890 31149 985675909
1 f none images/webmin.xpm 0600 root bin 1355 52866 985675909
1 f none index.cgi 0700 root bin 7005 16934 985675910
1 d none inetd 0700 root bin
1 f none inetd/config-aix 0600 root bin 276 25261 985675915
1 f none inetd/config-cobalt-linux 0600 root bin 305 28868 985675915
1 f none inetd/config-corel-linux 0600 root bin 305 28868 985675915
1 f none inetd/config-debian-linux 0600 root bin 305 28868 985675915
1 f none inetd/config-freebsd 0600 root bin 226 21355 985675915
1 f none inetd/config-freebsd-2.1 0600 root bin 226 21353 985675915
1 f none inetd/config-freebsd-2.2 0600 root bin 226 21353 985675915
1 f none inetd/config-hpux 0600 root bin 216 20445 985675915
1 f none inetd/config-lfs-linux 0600 root bin 305 28868 985675915
1 f none inetd/config-macos 0600 root bin 443 41192 985675915
1 f none inetd/config-open-linux 0600 root bin 305 28868 985675915
1 f none inetd/config-open-linux-3.1e 0600 root bin 327 30873 985675915
1 f none inetd/config-openbsd 0600 root bin 209 19758 985675915
1 f none inetd/config-openserver 0600 root bin 297 27338 985675915
1 f none inetd/config-osf1 0600 root bin 276 25260 985675915
1 f none inetd/config-redhat-linux 0600 root bin 336 31647 985675915
1 f none inetd/config-slackware-linux 0600 root bin 256 24127 985675915
1 f none inetd/config-solaris 0600 root bin 327 30321 985675915
1 f none inetd/config-solaris-8 0600 root bin 327 30322 985675915
1 f none inetd/config-suse-linux 0600 root bin 305 28868 985675915
1 f none inetd/config-suse-linux-6.3 0600 root bin 305 28867 985675915
1 f none inetd/config-suse-linux-6.4 0600 root bin 305 28867 985675915
1 f none inetd/config-suse-linux-7.0 0600 root bin 305 28867 985675915
1 f none inetd/config-suse-linux-7.1 0600 root bin 305 28867 985675915
1 f none inetd/config-turbo-linux 0600 root bin 305 28868 985675915
1 f none inetd/config-unixware 0600 root bin 297 27338 985675915
1 f none inetd/config.info 0600 root bin 679 62297 985675915
1 f none inetd/config.info.de 0600 root bin 684 63577 985675915
1 f none inetd/config.info.es 0600 root bin 817 10545 985675915
1 f none inetd/config.info.fr 0600 root bin 601 55500 985675915
1 f none inetd/config.info.hu 0600 root bin 709 3564 985675915
1 f none inetd/config.info.pl 0600 root bin 757 6277 985675915
1 f none inetd/config.info.ru_RU 0600 root bin 572 23906 985675915
1 f none inetd/config.info.ru_SU 0600 root bin 572 16398 985675915
1 f none inetd/config.info.sv 0600 root bin 729 5827 985675915
1 f none inetd/config.info.tr 0600 root bin 653 64928 985675915
1 f none inetd/config.info.zh_CN 0600 root bin 500 539 985675915
1 f none inetd/config.info.zh_TW.Big5 0600 root bin 489 57125 985675915
1 f none inetd/delete_rpc.cgi 0700 root bin 563 43496 985675915
1 f none inetd/delete_serv.cgi 0700 root bin 605 47519 985675915
1 f none inetd/edit_rpc.cgi 0700 root bin 5671 2076 985675915
1 f none inetd/edit_serv.cgi 0700 root bin 6771 31664 985675915
1 d none inetd/help 0700 root bin
1 f none inetd/help/help.es.html 0600 root bin 6032 12891 985675915
1 f none inetd/help/help.html 0600 root bin 5578 29438 985675915
1 f none inetd/help/help.sv.html 0600 root bin 5363 43365 985675915
1 f none inetd/help/help.zh_TW.Big5.html 0600 root bin 3865 37445 985675915
1 d none inetd/images 0700 root bin
1 f none inetd/images/icon.gif 0600 root bin 274 34263 985675915
1 f none inetd/index.cgi 0700 root bin 3084 39507 985675915
1 f none inetd/inetd-lib.pl 0600 root bin 5825 4855 985675915
1 d none inetd/lang 0700 root bin
1 f none inetd/lang/en 0600 root bin 3942 38109 985675915
1 f none inetd/lang/es 0600 root bin 4230 4576 985675915
1 f none inetd/lang/fr 0600 root bin 4599 45045 985675915
1 f none inetd/lang/hu 0600 root bin 4861 32840 985675915
1 f none inetd/lang/pl 0600 root bin 4267 25115 985675915
1 f none inetd/lang/sv 0600 root bin 4203 12767 985675915
1 f none inetd/lang/tr 0600 root bin 4238 35455 985675915
1 f none inetd/lang/zh_CN 0600 root bin 3244 29093 985675915
1 f none inetd/log_parser.pl 0600 root bin 863 4070 985675915
1 f none inetd/module.info 0600 root bin 976 33520 985675915
1 f none inetd/restart_inetd.cgi 0700 root bin 302 25221 985675915
1 f none inetd/save_rpc.cgi 0700 root bin 3539 16895 985675915
1 f none inetd/save_serv.cgi 0700 root bin 4908 60285 985675915
1 d none init 0700 root bin
1 f none init/acl_security.pl 0600 root bin 1300 44284 985675915
1 f none init/atboot.pl 0700 root bin 2236 49000 985675915
1 f none init/config-aix 0600 root bin 211 19914 985675916
1 f none init/config-cobalt-linux-2.2 0600 root bin 229 21360 985675915
1 f none init/config-cobalt-linux-5.0 0600 root bin 244 22577 985675915
1 f none init/config-corel-linux 0600 root bin 166 15519 985675916
1 f none init/config-debian-linux 0600 root bin 166 15519 985675915
1 f none init/config-freebsd 0600 root bin 86 8363 985675915
1 f none init/config-hpux 0600 root bin 191 17983 985675915
1 f none init/config-irix 0600 root bin 183 16720 985675916
1 f none init/config-macos 0600 root bin 80 7794 985675916
1 f none init/config-open-linux 0600 root bin 230 21517 985675916
1 f none init/config-openbsd 0600 root bin 86 8363 985675916
1 f none init/config-openserver 0600 root bin 183 16725 985675915
1 f none init/config-osf1 0600 root bin 213 20028 985675916
1 f none init/config-redhat-linux 0600 root bin 264 24402 985675915
1 f none init/config-slackware-linux 0600 root bin 91 8769 985675915
1 f none init/config-solaris 0600 root bin 200 18151 985675915
1 f none init/config-suse-linux 0600 root bin 174 16324 985675915
1 f none init/config-suse-linux-7.1 0600 root bin 184 17180 985675916
1 f none init/config-turbo-linux 0600 root bin 244 22577 985675916
1 f none init/config-unixware 0600 root bin 183 16725 985675915
1 f none init/config.info 0600 root bin 739 3384 985675915
1 f none init/config.info.de 0600 root bin 701 64931 985675916
1 f none init/config.info.es 0600 root bin 762 6479 985675916
1 f none init/config.info.fr 0600 root bin 583 56613 985675916
1 f none init/config.info.pl 0600 root bin 836 16738 985675916
1 f none init/config.info.ru_RU 0600 root bin 576 36899 985675916
1 f none init/config.info.ru_SU 0600 root bin 576 26293 985675916
1 f none init/config.info.sv 0600 root bin 713 4556 985675916
1 f none init/config.info.tr 0600 root bin 684 7003 985675916
1 f none init/config.info.zh_CN 0600 root bin 448 62581 985675916
1 f none init/config.info.zh_TW.Big5 0600 root bin 496 63516 985675916
1 f none init/defaultacl 0600 root bin 40 3538 985675915
1 f none init/delboot.pl 0700 root bin 841 2370 985675915
1 f none init/delete_action.cgi 0700 root bin 832 2702 985675915
1 f none init/edit_action.cgi 0700 root bin 7775 35203 985675915
1 f none init/fix_action.cgi 0700 root bin 630 49956 985675915
1 d none init/help 0700 root bin
1 f none init/help/help.es.html 0600 root bin 212 18186 985675916
1 f none init/help/help.html 0600 root bin 199 16460 985675916
1 f none init/help/help.sv.html 0600 root bin 204 17228 985675916
1 f none init/help/proc.es.html 0600 root bin 78 7093 985675916
1 f none init/help/proc.html 0600 root bin 70 6010 985675916
1 f none init/help/proc.sv.html 0600 root bin 76 6749 985675916
1 d none init/images 0700 root bin
1 f none init/images/icon.gif 0600 root bin 389 44270 985675915
1 f none init/index.cgi 0700 root bin 4811 35025 985675915
1 f none init/init-lib.pl 0700 root bin 7802 16245 985675915
1 d none init/lang 0700 root bin
1 f none init/lang/de 0600 root bin 2843 6512 985675915
1 f none init/lang/en 0600 root bin 3047 26064 985675915
1 f none init/lang/es 0600 root bin 3075 32570 985675915
1 f none init/lang/fr 0600 root bin 2733 12429 985675915
1 f none init/lang/it 0600 root bin 2370 27399 985675915
1 f none init/lang/pl 0600 root bin 2940 30519 985675915
1 f none init/lang/pt 0600 root bin 2598 56748 985675915
1 f none init/lang/ru_RU 0600 root bin 2668 18571 985675915
1 f none init/lang/ru_SU 0600 root bin 2674 36713 985675915
1 f none init/lang/sv 0600 root bin 3252 58530 985675915
1 f none init/lang/tr 0600 root bin 3028 64299 985675915
1 f none init/lang/zh_CN 0600 root bin 1952 25197 985675915
1 f none init/lang/zh_TW.Big5 0600 root bin 1882 54194 985675915
1 f none init/log_parser.pl 0600 root bin 1167 30212 985675916
1 f none init/low.risk 0600 root bin 20 1755 985675916
1 f none init/medium.risk 0600 root bin 20 1757 985675916
1 f none init/module.info 0600 root bin 624 1638 985675915
1 f none init/reboot.cgi 0700 root bin 760 64690 985675915
1 f none init/save_action.cgi 0700 root bin 7064 8489 985675915
1 f none init/save_bootup.cgi 0600 root bin 1463 42453 985675916
1 f none init/save_local.cgi 0700 root bin 459 39155 985675915
1 f none init/shutdown.cgi 0700 root bin 795 2371 985675915
1 f none init/start_stop.cgi 0700 root bin 1133 26910 985675915
1 d none inittab 0700 root bin
1 f none inittab/config 0600 root bin 26 2486 985675952
1 f none inittab/config.info 0600 root bin 36 3304 985675952
1 f none inittab/config.info.de 0600 root bin 35 3381 985675953
1 f none inittab/config.info.es 0600 root bin 45 4268 985675952
1 f none inittab/config.info.fr 0600 root bin 41 3807 985675952
1 f none inittab/config.info.pl 0600 root bin 40 3890 985675953
1 f none inittab/config.info.ru_RU 0600 root bin 36 4621 985675953
1 f none inittab/config.info.ru_SU 0600 root bin 36 4358 985675952
1 f none inittab/config.info.sv 0600 root bin 39 3914 985675952
1 f none inittab/config.info.tr 0600 root bin 36 3601 985675953
1 f none inittab/config.info.zh_CN 0600 root bin 34 4170 985675953
1 f none inittab/config.info.zh_TW.Big5 0600 root bin 41 5269 985675952
1 f none inittab/defaultacl 0600 root bin 10 867 985675952
1 f none inittab/edit_inittab.cgi 0700 root bin 2676 7666 985675952
1 d none inittab/help 0700 root bin
1 f none inittab/help/action.es.html 0600 root bin 3232 33188 985675952
1 f none inittab/help/action.fr.html 0600 root bin 2850 4415 985675952
1 f none inittab/help/action.html 0600 root bin 2810 54908 985675952
1 f none inittab/help/action.pl.html 0600 root bin 3108 31934 985675952
1 f none inittab/help/action.ru_RU.html 0600 root bin 3045 21798 985675952
1 f none inittab/help/action.ru_SU.html 0600 root bin 3045 27213 985675952
1 f none inittab/help/action.sv.html 0600 root bin 2627 56712 985675952
1 f none inittab/help/id.es.html 0600 root bin 493 44972 985675952
1 f none inittab/help/id.fr.html 0600 root bin 532 49756 985675952
1 f none inittab/help/id.html 0600 root bin 432 38739 985675952
1 f none inittab/help/id.pl.html 0600 root bin 524 50334 985675952
1 f none inittab/help/id.ru_RU.html 0600 root bin 455 15311 985675952
1 f none inittab/help/id.ru_SU.html 0600 root bin 455 6185 985675952
1 f none inittab/help/id.sv.html 0600 root bin 410 39268 985675952
1 f none inittab/help/index.es.html 0600 root bin 274 24817 985675952
1 f none inittab/help/index.fr.html 0600 root bin 267 25074 985675952
1 f none inittab/help/index.html 0600 root bin 238 21270 985675952
1 f none inittab/help/index.pl.html 0600 root bin 270 24728 985675952
1 f none inittab/help/index.ru_RU.html 0600 root bin 249 38280 985675952
1 f none inittab/help/index.ru_SU.html 0600 root bin 249 34593 985675952
1 f none inittab/help/index.sv.html 0600 root bin 245 22326 985675952
1 f none inittab/help/process.es.html 0600 root bin 451 41131 985675952
1 f none inittab/help/process.fr.html 0600 root bin 289 26878 985675952
1 f none inittab/help/process.html 0600 root bin 409 36656 985675952
1 f none inittab/help/process.pl.html 0600 root bin 399 37486 985675952
1 f none inittab/help/process.ru_RU.html 0600 root bin 182 29647 985675952
1 f none inittab/help/process.ru_SU.html 0600 root bin 182 26542 985675952
1 f none inittab/help/process.sv.html 0600 root bin 356 33638 985675952
1 f none inittab/help/runlevels.es.html 0600 root bin 458 41834 985675952
1 f none inittab/help/runlevels.fr.html 0600 root bin 441 41184 985675952
1 f none inittab/help/runlevels.html 0600 root bin 378 33672 985675952
1 f none inittab/help/runlevels.pl.html 0600 root bin 469 44626 985675952
1 f none inittab/help/runlevels.ru_RU.html 0600 root bin 400 5252 985675952
1 f none inittab/help/runlevels.ru_SU.html 0600 root bin 400 62915 985675952
1 f none inittab/help/runlevels.sv.html 0600 root bin 373 36442 985675952
1 d none inittab/images 0700 root bin
1 f none inittab/images/icon.gif 0600 root bin 296 35073 985675952
1 f none inittab/index.cgi 0700 root bin 1534 50607 985675952
1 f none inittab/inittab-lib.pl 0700 root bin 1426 37263 985675952
1 d none inittab/lang 0700 root bin
1 f none inittab/lang/de 0600 root bin 1337 63970 985675952
1 f none inittab/lang/en 0600 root bin 1299 59143 985675952
1 f none inittab/lang/es 0600 root bin 1463 9698 985675952
1 f none inittab/lang/fr 0600 root bin 1419 10664 985675952
1 f none inittab/lang/pl 0600 root bin 1376 4972 985675952
1 f none inittab/lang/ru_RU 0600 root bin 1268 3681 985675952
1 f none inittab/lang/ru_SU 0600 root bin 1271 53076 985675952
1 f none inittab/lang/sv 0600 root bin 1347 2279 985675952
1 f none inittab/lang/tr 0600 root bin 1464 26878 985675952
1 f none inittab/lang/zh_CN 0600 root bin 1055 8701 985675952
1 f none inittab/lang/zh_TW.Big5 0600 root bin 969 51850 985675952
1 f none inittab/log_parser.pl 0600 root bin 720 59912 985675952
1 f none inittab/module.info 0600 root bin 569 64329 985675952
1 f none inittab/new_inittab.cgi 0700 root bin 2056 28924 985675952
1 f none inittab/save_inittab.cgi 0700 root bin 1473 42573 985675952
1 f none install-module.pl 0700 root bin 2800 20833 985675910
1 f none install-type 0600 root bin 12 1142 985676532
1 d none lang 0700 root bin
1 f none lang/de 0600 root bin 3208 35217 985675910
1 f none lang/en 0600 root bin 3778 22753 985675910
1 f none lang/es 0600 root bin 4127 59665 985675910
1 f none lang/fr 0600 root bin 2262 16261 985675910
1 f none lang/he 0600 root bin 2119 64373 985675910
1 f none lang/hu 0600 root bin 3384 4697 985675910
1 f none lang/it 0600 root bin 1925 47244 985675910
1 f none lang/ja_JP.euc 0600 root bin 3800 1315 985675910
1 f none lang/nl 0700 root bin 4117 57502 985675910
1 f none lang/no 0600 root bin 2006 51173 985675910
1 f none lang/pl 0600 root bin 4084 7117 985675910
1 f none lang/pt 0600 root bin 1760 35123 985675910
1 f none lang/ru_RU 0600 root bin 3923 26231 985675910
1 f none lang/ru_SU 0600 root bin 3941 44330 985675910
1 f none lang/sv 0600 root bin 2422 34359 985675910
1 f none lang/tr 0600 root bin 2798 18961 985675910
1 f none lang/zh_CN 0600 root bin 2869 45445 985675910
1 f none lang/zh_TW.Big5 0600 root bin 1812 9845 985675910
1 f none lang_list.txt 0600 root bin 620 54797 985675910
1 d none lilo 0700 root bin
1 f none lilo/apply.cgi 0700 root bin 467 38374 985675939
1 f none lilo/config 0600 root bin 45 4190 985675939
1 f none lilo/config-lfs-linux 0600 root bin 45 4190 985675939
1 f none lilo/config.info 0600 root bin 84 7524 985675939
1 f none lilo/config.info.de 0600 root bin 97 9057 985675939
1 f none lilo/config.info.es 0600 root bin 110 10331 985675939
1 f none lilo/config.info.fr 0600 root bin 114 10283 985675939
1 f none lilo/config.info.hu 0600 root bin 114 12602 985675939
1 f none lilo/config.info.pl 0600 root bin 100 9444 985675939
1 f none lilo/config.info.ru_RU 0600 root bin 89 15052 985675939
1 f none lilo/config.info.ru_SU 0600 root bin 89 13444 985675939
1 f none lilo/config.info.sv 0600 root bin 105 10221 985675939
1 f none lilo/config.info.tr 0600 root bin 92 9698 985675939
1 f none lilo/config.info.zh_CN 0600 root bin 68 9291 985675939
1 f none lilo/config.info.zh_TW.Big5 0600 root bin 65 7654 985675939
1 f none lilo/edit_global.cgi 0700 root bin 4603 52625 985675939
1 f none lilo/edit_image.cgi 0700 root bin 5379 53253 985675939
1 f none lilo/edit_other.cgi 0700 root bin 2142 47929 985675939
1 d none lilo/images 0700 root bin
1 f none lilo/images/icon.gif 0600 root bin 1855 57767 985675939
1 f none lilo/images/image.gif 0600 root bin 1614 26487 985675939
1 f none lilo/images/other.gif 0600 root bin 2083 47306 985675939
1 f none lilo/index.cgi 0700 root bin 2393 60750 985675939
1 d none lilo/lang 0700 root bin
1 f none lilo/lang/de 0600 root bin 2876 11626 985675939
1 f none lilo/lang/en 0600 root bin 3259 46064 985675939
1 f none lilo/lang/es 0600 root bin 3802 34905 985675939
1 f none lilo/lang/fr 0600 root bin 3012 33187 985675939
1 f none lilo/lang/hu 0600 root bin 2839 38926 985675939
1 f none lilo/lang/pl 0600 root bin 3591 27174 985675939
1 f none lilo/lang/pt 0600 root bin 2764 9093 985675939
1 f none lilo/lang/ru_RU 0600 root bin 2743 7720 985675939
1 f none lilo/lang/ru_SU 0600 root bin 2747 31838 985675939
1 f none lilo/lang/sv 0600 root bin 3314 2989 985675939
1 f none lilo/lang/tr 0600 root bin 3625 8257 985675939
1 f none lilo/lang/zh_CN 0600 root bin 2591 24021 985675939
1 f none lilo/lang/zh_TW.Big5 0600 root bin 2118 16237 985675939
1 f none lilo/lilo-lib.pl 0600 root bin 4869 46996 985675939
1 f none lilo/log_parser.pl 0600 root bin 841 4773 985675939
1 f none lilo/module.info 0600 root bin 603 63516 985675939
1 f none lilo/save_global.cgi 0700 root bin 1465 51785 985675939
1 f none lilo/save_image.cgi 0700 root bin 2680 23489 985675939
1 f none lilo/save_other.cgi 0700 root bin 1334 44924 985675939
1 d none lpadmin 0700 root bin
1 f none lpadmin/acl_security.pl 0600 root bin 3179 62431 985675930
1 f none lpadmin/ascii.txt 0600 root bin 4291 41053 985675930
1 f none lpadmin/base_coas_driver 0700 root bin 560 39252 985675930
1 f none lpadmin/bw.fig 0600 root bin 2811 5685 985675930
1 f none lpadmin/bw.ps 0600 root bin 6615 11601 985675929
1 f none lpadmin/caldera-driver.pl 0600 root bin 12471 56211 985675930
1 f none lpadmin/cancel_all.cgi 0700 root bin 406 34408 985675929
1 f none lpadmin/cancel_job.cgi 0700 root bin 550 45283 985675929
1 f none lpadmin/catalog.devices 0400 root bin 12641 50532 985675930
1 f none lpadmin/colour.fig 0600 root bin 2984 13358 985675930
1 f none lpadmin/colour.ps 0600 root bin 6792 22515 985675930
1 f none lpadmin/config-corel-linux 0600 root bin 189 18176 985675930
1 f none lpadmin/config-debian-linux 0600 root bin 189 18176 985675930
1 f none lpadmin/config-freebsd 0600 root bin 191 18347 985675930
1 f none lpadmin/config-hpux 0600 root bin 284 27324 985675930
1 f none lpadmin/config-irix 0600 root bin 172 16576 985675930
1 f none lpadmin/config-macos 0600 root bin 191 18347 985675930
1 f none lpadmin/config-open-linux 0600 root bin 270 26033 985675930
1 f none lpadmin/config-open-linux-3.1e 0600 root bin 200 19302 985675930
1 f none lpadmin/config-openbsd 0600 root bin 191 18347 985675929
1 f none lpadmin/config-redhat-linux 0600 root bin 189 18166 985675930
1 f none lpadmin/config-redhat-linux-7.0 0600 root bin 207 19876 985675929
1 f none lpadmin/config-redhat-linux-7.1 0600 root bin 210 20223 985675930
1 f none lpadmin/config-slackware-linux 0600 root bin 189 18176 985675929
1 f none lpadmin/config-solaris 0600 root bin 310 29208 985675929
1 f none lpadmin/config-suse-linux 0600 root bin 187 17982 985675930
1 f none lpadmin/config-turbo-linux 0600 root bin 189 18166 985675930
1 f none lpadmin/config-unixware 0600 root bin 263 24314 985675930
1 f none lpadmin/config.info 0600 root bin 753 5341 985675928
1 f none lpadmin/config.info.de 0600 root bin 593 56493 985675930
1 f none lpadmin/config.info.es 0600 root bin 736 4219 985675930
1 f none lpadmin/config.info.fr 0600 root bin 557 52725 985675930
1 f none lpadmin/config.info.hu 0600 root bin 685 1165 985675929
1 f none lpadmin/config.info.pl 0600 root bin 781 10377 985675929
1 f none lpadmin/config.info.ru_RU 0600 root bin 494 1498 985675930
1 f none lpadmin/config.info.ru_SU 0600 root bin 494 62916 985675930
1 f none lpadmin/config.info.sv 0600 root bin 640 62231 985675930
1 f none lpadmin/config.info.tr 0600 root bin 541 55908 985675928
1 f none lpadmin/config.info.zh_CN 0600 root bin 496 62518 985675930
1 f none lpadmin/config.info.zh_TW.Big5 0600 root bin 490 55428 985675930
1 f none lpadmin/cups-driver.pl 0600 root bin 4636 32032 985675930
1 f none lpadmin/cups-lib.pl 0600 root bin 6464 49754 985675930
1 f none lpadmin/defaultacl 0600 root bin 47 3856 985675930
1 f none lpadmin/delete_printer.cgi 0700 root bin 705 58752 985675929
1 f none lpadmin/drivers 0600 root bin 5265 19390 985675928
1 f none lpadmin/edit_printer.cgi 0700 root bin 10356 55065 985675928
1 f none lpadmin/freebsd-lib.pl 0600 root bin 6611 1347 985675928
1 f none lpadmin/hpux-driver.pl 0600 root bin 3149 57507 985675930
1 f none lpadmin/hpux-lib.pl 0600 root bin 9300 21705 985675929
1 d none lpadmin/images 0700 root bin
1 f none lpadmin/images/icon.gif 0600 root bin 330 38844 985675928
1 f none lpadmin/index.cgi 0700 root bin 3875 38409 985675928
1 f none lpadmin/irix-driver.pl 0600 root bin 3149 57498 985675930
1 f none lpadmin/irix-lib.pl 0600 root bin 10176 30553 985675930
1 d none lpadmin/lang 0700 root bin
1 f none lpadmin/lang/de 0600 root bin 5878 32531 985675930
1 f none lpadmin/lang/en 0600 root bin 7439 43977 985675930
1 f none lpadmin/lang/es 0600 root bin 8562 33202 985675930
1 f none lpadmin/lang/fr 0600 root bin 5398 4388 985675930
1 f none lpadmin/lang/hu 0600 root bin 7230 55793 985675930
1 f none lpadmin/lang/it 0600 root bin 5354 50360 985675930
1 f none lpadmin/lang/pl 0600 root bin 8428 46645 985675930
1 f none lpadmin/lang/pt 0600 root bin 5386 4151 985675930
1 f none lpadmin/lang/ru_RU 0600 root bin 4784 16068 985675930
1 f none lpadmin/lang/ru_SU 0600 root bin 4796 9248 985675930
1 f none lpadmin/lang/sv 0600 root bin 7847 46249 985675930
1 f none lpadmin/lang/tr 0600 root bin 5943 44008 985675930
1 f none lpadmin/lang/zh_CN 0600 root bin 5117 62819 985675930
1 f none lpadmin/lang/zh_TW.Big5 0600 root bin 4058 54679 985675930
1 f none lpadmin/linux-lib.pl 0600 root bin 8023 36580 985675930
1 f none lpadmin/list_jobs.cgi 0700 root bin 2133 35077 985675929
1 f none lpadmin/log_parser.pl 0600 root bin 821 2415 985675928
1 f none lpadmin/lpadmin-lib.pl 0600 root bin 13821 34363 985675928
1 f none lpadmin/lprng-lib.pl 0600 root bin 9361 9595 985675930
1 f none lpadmin/module.info 0600 root bin 601 211 985675928
1 f none lpadmin/old-caldera-driver.pl 0600 root bin 9888 61839 985675928
1 f none lpadmin/openbsd-lib.pl 0600 root bin 6611 1347 985675928
1 f none lpadmin/printconf-driver.pl 0600 root bin 7809 32423 985675930
1 f none lpadmin/redhat-driver.pl 0600 root bin 12651 19074 985675929
1 f none lpadmin/restart.cgi 0700 root bin 301 25952 985675930
1 f none lpadmin/save_printer.cgi 0700 root bin 5006 3044 985675929
1 f none lpadmin/solaris-lib.pl 0600 root bin 7045 32956 985675928
1 f none lpadmin/sortdrivers.pl 0700 root bin 236 17273 985675929
1 f none lpadmin/start.cgi 0700 root bin 249 21379 985675930
1 f none lpadmin/stop.cgi 0700 root bin 253 21649 985675929
1 f none lpadmin/stp 0600 root bin 2512 59283 985675929
1 f none lpadmin/suse-driver.pl 0600 root bin 10646 31358 985675930
1 f none lpadmin/test_form.cgi 0700 root bin 862 9932 985675930
1 f none lpadmin/test_print.cgi 0600 root bin 883 4286 985675930
1 f none lpadmin/unixware-lib.pl 0600 root bin 7431 61072 985675930
1 f none lpadmin/view_job.cgi 0700 root bin 837 1164 985675930
1 f none lpadmin/webmin-driver.pl 0600 root bin 1065 31373 985675930
1 d none majordomo 0700 root bin
1 f none majordomo/acl_security.pl 0600 root bin 1973 31774 985675938
1 f none majordomo/alias_setup.cgi 0700 root bin 678 55780 985675938
1 f none majordomo/config 0600 root bin 102 9749 985675938
1 f none majordomo/config-aix 0600 root bin 80 7479 985675938
1 f none majordomo/config-debian-linux-2.2 0600 root bin 98 9242 985675938
1 f none majordomo/config-open-linux 0600 root bin 98 9242 985675938
1 f none majordomo/config-suse-linux-6.1 0600 root bin 85 7932 985675938
1 f none majordomo/config-suse-linux-6.2 0600 root bin 85 7932 985675938
1 f none majordomo/config-suse-linux-6.3 0600 root bin 85 7932 985675938
1 f none majordomo/config-suse-linux-6.4 0600 root bin 85 7932 985675938
1 f none majordomo/config-suse-linux-7.0 0600 root bin 85 7932 985675938
1 f none majordomo/config-suse-linux-7.1 0600 root bin 85 7932 985675938
1 f none majordomo/config.info 0600 root bin 352 32893 985675938
1 f none majordomo/config.info.de 0600 root bin 202 19016 985675938
1 f none majordomo/config.info.es 0600 root bin 440 41624 985675938
1 f none majordomo/config.info.fr 0600 root bin 188 17562 985675938
1 f none majordomo/config.info.pl 0600 root bin 386 37886 985675938
1 f none majordomo/config.info.ru_RU 0600 root bin 171 26714 985675938
1 f none majordomo/config.info.ru_SU 0600 root bin 171 24484 985675938
1 f none majordomo/config.info.sv 0600 root bin 375 36838 985675938
1 f none majordomo/config.info.tr 0600 root bin 406 41447 985675938
1 f none majordomo/config.info.zh_CN 0600 root bin 273 37172 985675938
1 f none majordomo/config.info.zh_TW.Big5 0600 root bin 143 17188 985675938
1 f none majordomo/create_digest.cgi 0700 root bin 5314 52570 985675938
1 f none majordomo/create_form.cgi 0700 root bin 1608 4668 985675938
1 f none majordomo/create_list.cgi 0700 root bin 4064 12920 985675938
1 f none majordomo/defaultacl 0600 root bin 44 3677 985675938
1 f none majordomo/delete_list.cgi 0700 root bin 3220 60149 985675938
1 f none majordomo/digest_form.cgi 0700 root bin 1670 9678 985675938
1 f none majordomo/edit_access.cgi 0700 root bin 3669 45106 985675938
1 f none majordomo/edit_digest.cgi 0700 root bin 1488 61163 985675938
1 f none majordomo/edit_global.cgi 0700 root bin 1363 50764 985675938
1 f none majordomo/edit_head.cgi 0700 root bin 1178 34617 985675938
1 f none majordomo/edit_info.cgi 0700 root bin 1836 23009 985675938
1 f none majordomo/edit_list.cgi 0700 root bin 1294 42210 985675938
1 f none majordomo/edit_members.cgi 0700 root bin 2167 49225 985675938
1 f none majordomo/edit_mesg.cgi 0700 root bin 1822 21510 985675938
1 f none majordomo/edit_misc.cgi 0700 root bin 1364 48688 985675938
1 f none majordomo/edit_subs.cgi 0700 root bin 3951 4244 985675938
1 d none majordomo/images 0700 root bin
1 f none majordomo/images/access.gif 0600 root bin 275 34570 985675938
1 f none majordomo/images/dig.gif 0600 root bin 377 41028 985675938
1 f none majordomo/images/digest.gif 0600 root bin 2466 26349 985675938
1 f none majordomo/images/head.gif 0600 root bin 215 25149 985675938
1 f none majordomo/images/icon.gif 0600 root bin 335 37082 985675938
1 f none majordomo/images/info.gif 0600 root bin 318 36739 985675938
1 f none majordomo/images/list.gif 0600 root bin 335 37082 985675938
1 f none majordomo/images/members.gif 0600 root bin 390 43396 985675938
1 f none majordomo/images/mesg.gif 0600 root bin 258 31067 985675938
1 f none majordomo/images/misc.gif 0600 root bin 460 53918 985675938
1 f none majordomo/images/mod.gif 0600 root bin 330 39587 985675938
1 f none majordomo/images/subs.gif 0600 root bin 330 36057 985675938
1 f none majordomo/index.cgi 0700 root bin 4231 21343 985675938
1 d none majordomo/lang 0700 root bin
1 f none majordomo/lang/en 0600 root bin 9789 11687 985675938
1 f none majordomo/lang/es 0600 root bin 11213 31764 985675938
1 f none majordomo/lang/sv 0600 root bin 10790 18913 985675938
1 f none majordomo/lang/tr 0600 root bin 10082 61236 985675938
1 f none majordomo/lang/zh_CN 0600 root bin 7214 61459 985675938
1 f none majordomo/log_parser.pl 0600 root bin 915 10574 985675938
1 f none majordomo/majordomo-lib.pl 0600 root bin 7990 19046 985675938
1 f none majordomo/module.info 0600 root bin 641 1509 985675938
1 f none majordomo/save_access.cgi 0700 root bin 1424 52044 985675938
1 f none majordomo/save_auto.cgi 0700 root bin 606 52904 985675938
1 f none majordomo/save_digest.cgi 0700 root bin 1128 30986 985675938
1 f none majordomo/save_global.cgi 0700 root bin 984 20011 985675938
1 f none majordomo/save_head.cgi 0700 root bin 654 56341 985675938
1 f none majordomo/save_info.cgi 0700 root bin 1261 38536 985675938
1 f none majordomo/save_members.cgi 0700 root bin 2138 46311 985675938
1 f none majordomo/save_mesg.cgi 0700 root bin 1280 43006 985675938
1 f none majordomo/save_misc.cgi 0700 root bin 694 59504 985675938
1 f none majordomo/save_subs.cgi 0700 root bin 2411 6039 985675938
1 f none majordomo/useradmin_update.pl 0600 root bin 1486 55287 985675938
1 d none man 0700 root bin
1 f none man/config-aix 0600 root bin 90 7607 985675951
1 f none man/config-cobalt-linux 0600 root bin 222 19664 985675951
1 f none man/config-corel-linux 0600 root bin 270 23876 985675951
1 f none man/config-debian-linux 0600 root bin 228 20242 985675951
1 f none man/config-freebsd 0600 root bin 93 7993 985675951
1 f none man/config-hpux 0600 root bin 129 11252 985675952
1 f none man/config-irix 0600 root bin 166 14909 985675951
1 f none man/config-lfs-linux 0600 root bin 205 18119 985675951
1 f none man/config-macos 0600 root bin 116 10194 985675951
1 f none man/config-open-linux 0600 root bin 307 27227 985675951
1 f none man/config-open-linux-3.1e 0600 root bin 444 40141 985675952
1 f none man/config-openbsd 0600 root bin 93 7993 985675951
1 f none man/config-redhat-linux 0600 root bin 301 26656 985675951
1 f none man/config-redhat-linux-7.0 0600 root bin 330 29395 985675952
1 f none man/config-redhat-linux-7.1 0600 root bin 330 29395 985675952
1 f none man/config-slackware-linux 0600 root bin 294 26209 985675951
1 f none man/config-solaris 0600 root bin 90 7607 985675951
1 f none man/config-suse-linux 0600 root bin 299 26817 985675951
1 f none man/config-suse-linux-7.1 0600 root bin 341 30725 985675952
1 f none man/config-turbo-linux 0600 root bin 354 31875 985675951
1 f none man/config.info 0600 root bin 550 50869 985675951
1 f none man/config.info.de 0600 root bin 213 19557 985675951
1 f none man/config.info.es 0600 root bin 636 60205 985675951
1 f none man/config.info.fr 0600 root bin 211 19478 985675951
1 f none man/config.info.hu 0600 root bin 248 25715 985675951
1 f none man/config.info.pl 0600 root bin 660 64899 985675952
1 f none man/config.info.ru_RU 0600 root bin 211 38368 985675952
1 f none man/config.info.ru_SU 0600 root bin 212 34234 985675951
1 f none man/config.info.sv 0600 root bin 602 58289 985675951
1 f none man/config.info.tr 0600 root bin 196 21161 985675952
1 f none man/config.info.zh_CN 0600 root bin 279 34641 985675951
1 f none man/config.info.zh_TW.Big5 0600 root bin 121 15874 985675951
1 d none man/help 0700 root bin
1 f none man/help/intro.es.html 0600 root bin 678 63931 985675951
1 f none man/help/intro.fr.html 0600 root bin 722 2084 985675951
1 f none man/help/intro.html 0600 root bin 622 56403 985675951
1 f none man/help/intro.hu.html 0600 root bin 780 12842 985675951
1 f none man/help/intro.pl.html 0600 root bin 662 693 985675951
1 f none man/help/intro.ru_RU.html 0600 root bin 624 54265 985675951
1 f none man/help/intro.ru_SU.html 0600 root bin 624 40190 985675951
1 f none man/help/intro.sv.html 0600 root bin 631 60934 985675951
1 d none man/images 0700 root bin
1 f none man/images/icon.gif 0600 root bin 1128 40241 985675951
1 f none man/index.cgi 0700 root bin 2084 42341 985675951
1 d none man/lang 0700 root bin
1 f none man/lang/de 0600 root bin 538 51129 985675951
1 f none man/lang/en 0600 root bin 1549 14850 985675951
1 f none man/lang/es 0600 root bin 1905 49953 985675951
1 f none man/lang/fr 0600 root bin 889 19966 985675951
1 f none man/lang/hu 0600 root bin 646 62878 985675951
1 f none man/lang/it 0600 root bin 555 52856 985675951
1 f none man/lang/pl 0600 root bin 1738 39260 985675951
1 f none man/lang/ru_RU 0600 root bin 499 15198 985675951
1 f none man/lang/ru_SU 0600 root bin 500 8622 985675951
1 f none man/lang/sv 0600 root bin 1570 23197 985675951
1 f none man/lang/tr 0600 root bin 535 57266 985675951
1 f none man/lang/zh_CN 0600 root bin 412 56268 985675951
1 f none man/lang/zh_TW.Big5 0600 root bin 376 45036 985675951
1 f none man/man-lib.pl 0600 root bin 396 29842 985675951
1 f none man/module.info 0600 root bin 536 57918 985675951
1 f none man/search.cgi 0700 root bin 8254 8218 985675951
1 f none man/view_doc.cgi 0700 root bin 1486 48851 985675952
1 f none man/view_howto.cgi 0700 root bin 1087 19683 985675952
1 f none man/view_kde.cgi 0700 root bin 1533 53458 985675952
1 f none man/view_kernel.cgi 0700 root bin 1493 50222 985675952
1 f none man/view_man.cgi 0700 root bin 1990 16010 985675952
1 f none man/view_perl.cgi 0700 root bin 708 56176 985675952
1 f none mime.types 0700 root bin 3567 47661 985675910
1 f none miniserv.pem 0600 root bin 974 11791 985675910
1 f none miniserv.pl 0700 root bin 45551 25051 985675910
1 d none mount 0700 root bin
1 f none mount/^1 0600 root bin 0 0 985675917
1 f none mount/cobalt-linux-lib.pl 0700 root bin 56388 2308 985675916
1 f none mount/config-cobalt-linux 0600 root bin 87 8555 985675917
1 f none mount/config-corel-linux 0600 root bin 114 11127 985675917
1 f none mount/config-debian-linux 0600 root bin 98 9578 985675916
1 f none mount/config-freebsd 0600 root bin 126 12305 985675916
1 f none mount/config-hpux 0600 root bin 126 12305 985675916
1 f none mount/config-irix 0600 root bin 129 12421 985675916
1 f none mount/config-lfs-linux 0600 root bin 108 10361 985675917
1 f none mount/config-open-linux 0600 root bin 112 10809 985675917
1 f none mount/config-openbsd 0600 root bin 126 12305 985675916
1 f none mount/config-osf1 0600 root bin 184 17769 985675916
1 f none mount/config-redhat-linux 0600 root bin 116 11322 985675916
1 f none mount/config-redhat-linux-5.0 0600 root bin 145 14111 985675916
1 f none mount/config-redhat-linux-5.1 0600 root bin 145 14111 985675916
1 f none mount/config-redhat-linux-5.2 0600 root bin 145 14111 985675916
1 f none mount/config-redhat-linux-6.0 0600 root bin 145 14111 985675916
1 f none mount/config-redhat-linux-6.1 0600 root bin 140 13551 985675917
1 f none mount/config-redhat-linux-6.2 0600 root bin 140 13551 985675917
1 f none mount/config-redhat-linux-7.0 0600 root bin 140 13551 985675917
1 f none mount/config-redhat-linux-7.1 0600 root bin 140 13551 985675917
1 f none mount/config-slackware-linux 0600 root bin 87 8555 985675916
1 f none mount/config-solaris 0600 root bin 159 15377 985675916
1 f none mount/config-suse-linux 0600 root bin 116 11344 985675916
1 f none mount/config-turbo-linux 0600 root bin 145 14111 985675917
1 f none mount/config-turbo-linux-4.0 0600 root bin 145 14111 985675917
1 f none mount/config-unixware 0600 root bin 159 15377 985675916
1 f none mount/config.info 0600 root bin 339 31828 985675916
1 f none mount/config.info.de 0600 root bin 367 34415 985675916
1 f none mount/config.info.es 0600 root bin 429 40239 985675916
1 f none mount/config.info.fr 0600 root bin 392 37181 985675917
1 f none mount/config.info.pl 0600 root bin 453 45018 985675917
1 f none mount/config.info.ru_RU 0600 root bin 381 59990 985675917
1 f none mount/config.info.ru_SU 0600 root bin 381 54867 985675917
1 f none mount/config.info.sv 0600 root bin 358 35344 985675917
1 f none mount/config.info.tr 0600 root bin 390 39377 985675917
1 f none mount/config.info.zh_CN 0600 root bin 295 38884 985675917
1 f none mount/config.info.zh_TW.Big5 0600 root bin 337 42208 985675917
1 f none mount/corel-linux-lib.pl 0700 root bin 56388 2308 985675916
1 f none mount/create_swap.cgi 0700 root bin 434 38055 985675916
1 f none mount/debian-linux-lib.pl 0700 root bin 56388 2308 985675916
1 f none mount/edit_mount.cgi 0700 root bin 6402 57854 985675916
1 f none mount/freebsd-lib.pl 0700 root bin 26851 13178 985675916
1 f none mount/freebsd-mounts-2 0700 root bin 8917 52409 985675916
1 f none mount/freebsd-mounts-2.c 0600 root bin 1319 37901 985675917
1 f none mount/freebsd-mounts-3 0700 root bin 4713 741 985675916
1 f none mount/freebsd-mounts-3.c 0400 root bin 1262 35294 985675917
1 f none mount/freebsd-mounts-4 0700 root bin 4878 11027 985675917
1 f none mount/freebsd-mounts-4.c 0400 root bin 1262 35294 985675917
1 d none mount/help 0700 root bin
1 f none mount/help/help.html 0600 root bin 20595 60265 985675916
1 f none mount/help/help.sv.html 0600 root bin 20704 35176 985675916
1 f none mount/help/help.zh_TW.Big5.html 0600 root bin 14675 50356 985675916
1 f none mount/hpux-lib.pl 0600 root bin 36759 49266 985675916
1 d none mount/images 0700 root bin
1 f none mount/images/auto.gif 0600 root bin 2248 19392 985675916
1 f none mount/images/autofs.gif 0600 root bin 2248 19392 985675916
1 f none mount/images/cachefs.gif 0600 root bin 2336 3570 985675916
1 f none mount/images/ext.gif 0600 root bin 2016 34725 985675916
1 f none mount/images/ext2.gif 0600 root bin 2016 34725 985675916
1 f none mount/images/fat.gif 0600 root bin 2291 51542 985675916
1 f none mount/images/hpfs.gif 0600 root bin 2016 34725 985675916
1 f none mount/images/hsfs.gif 0600 root bin 1591 15553 985675916
1 f none mount/images/icon.gif 0600 root bin 345 37063 985675916
1 f none mount/images/iso9660.gif 0600 root bin 1591 15553 985675916
1 f none mount/images/lofs.gif 0600 root bin 1219 43674 985675916
1 f none mount/images/minix.gif 0600 root bin 2016 34725 985675916
1 f none mount/images/msdos.gif 0600 root bin 2291 51542 985675916
1 f none mount/images/nfs.gif 0600 root bin 1565 51055 985675916
1 f none mount/images/pcfs.gif 0600 root bin 2291 51542 985675916
1 f none mount/images/reiserfs.gif 0600 root bin 2016 34725 985675916
1 f none mount/images/rumba.gif 0600 root bin 1898 34077 985675916
1 f none mount/images/smbfs.gif 0600 root bin 1898 34077 985675916
1 f none mount/images/star.gif 0600 root bin 2100 58961 985675916
1 f none mount/images/swap.gif 0600 root bin 2427 23882 985675916
1 f none mount/images/sysv.gif 0600 root bin 2016 34725 985675916
1 f none mount/images/tmpfs.gif 0600 root bin 2462 26131 985675916
1 f none mount/images/udfs.gif 0600 root bin 1685 3476 985675916
1 f none mount/images/ufs.gif 0600 root bin 2016 34725 985675916
1 f none mount/images/umsdos.gif 0600 root bin 2291 51542 985675916
1 f none mount/images/vfat.gif 0600 root bin 2291 51542 985675916
1 f none mount/images/xmemfs.gif 0600 root bin 2462 26131 985675916
1 f none mount/index.cgi 0700 root bin 3445 6030 985675916
1 f none mount/irix-lib.pl 0600 root bin 49762 40174 985675916
1 d none mount/lang 0700 root bin
1 f none mount/lang/de 0600 root bin 12044 18428 985675916
1 f none mount/lang/en 0600 root bin 11034 48054 985675916
1 f none mount/lang/es 0600 root bin 12600 21232 985675916
1 f none mount/lang/fr 0600 root bin 12074 58190 985675916
1 f none mount/lang/hu 0600 root bin 11437 5717 985675916
1 f none mount/lang/pl 0600 root bin 12268 27363 985675916
1 f none mount/lang/ru_RU 0600 root bin 11526 17763 985675916
1 f none mount/lang/ru_SU 0600 root bin 11534 57108 985675916
1 f none mount/lang/sv 0600 root bin 11681 18981 985675916
1 f none mount/lang/tr 0600 root bin 11730 20033 985675916
1 f none mount/lang/zh_CN 0600 root bin 9072 23460 985675916
1 f none mount/lang/zh_TW.Big5 0600 root bin 8737 30772 985675916
1 f none mount/lfs-linux-lib.pl 0700 root bin 56388 2308 985675917
1 f none mount/linux-lib.pl 0700 root bin 56388 2308 985675916
1 f none mount/log_parser.pl 0600 root bin 484 41180 985675917
1 f none mount/low.risk 0600 root bin 24 2036 985675917
1 f none mount/low.skill 0600 root bin 65 6038 985675917
1 f none mount/medium.risk 0600 root bin 11 971 985675917
1 f none mount/medium.skill 0600 root bin 41 3795 985675917
1 f none mount/module.info 0600 root bin 736 15168 985675916
1 f none mount/mount-lib.pl 0600 root bin 4370 39384 985675916
1 f none mount/nfs_export.cgi 0700 root bin 1001 14500 985675916
1 f none mount/nfs_server.cgi 0700 root bin 1784 8245 985675916
1 f none mount/open-linux-lib.pl 0700 root bin 56388 2308 985675916
1 f none mount/openbsd-lib.pl 0700 root bin 23818 27750 985675917
1 f none mount/openbsd-mounts-2 0700 root bin 25634 27408 985675917
1 f none mount/openbsd-mounts-2.c 0600 root bin 1058 19310 985675917
1 f none mount/osf1-lib.pl 0600 root bin 49514 21113 985675916
1 f none mount/redhat-linux-lib.pl 0700 root bin 56388 2308 985675917
1 f none mount/save_mount.cgi 0700 root bin 12732 921 985675916
1 f none mount/slackware-linux-lib.pl 0700 root bin 56388 2308 985675917
1 f none mount/smb_server.cgi 0700 root bin 1484 52891 985675916
1 f none mount/smb_share.cgi 0700 root bin 1411 43874 985675916
1 f none mount/solaris-lib.pl 0600 root bin 57451 21951 985675916
1 f none mount/suse-linux-lib.pl 0700 root bin 56388 2308 985675917
1 f none mount/turbo-linux-lib.pl 0700 root bin 56388 2308 985675917
1 f none mount/unixware-lib.pl 0700 root bin 57528 55609 985675916
1 d none mysql 0700 root bin
1 f none mysql/acl_security.pl 0600 root bin 3367 12995 985675950
1 f none mysql/backup_db.cgi 0700 root bin 1363 46972 985675945
1 f none mysql/backup_form.cgi 0700 root bin 1632 6848 985675945
1 f none mysql/config 0600 root bin 292 27733 985675950
1 f none mysql/config-aix 0600 root bin 246 23434 985675950
1 f none mysql/config-cobalt-linux 0600 root bin 228 21570 985675950
1 f none mysql/config-debian-linux 0600 root bin 201 18771 985675950
1 f none mysql/config-debian-linux-2.2 0600 root bin 272 25124 985675950
1 f none mysql/config-freebsd 0600 root bin 246 23434 985675950
1 f none mysql/config-open-linux 0600 root bin 228 21570 985675950
1 f none mysql/config-redhat-linux 0600 root bin 228 21570 985675950
1 f none mysql/config-redhat-linux-7.0 0600 root bin 230 21770 985675951
1 f none mysql/config-redhat-linux-7.1 0600 root bin 230 21770 985675950
1 f none mysql/config-suse-linux 0600 root bin 220 20982 985675950
1 f none mysql/config-suse-linux-7.1 0600 root bin 218 20758 985675950
1 f none mysql/config-turbo-linux 0600 root bin 228 21570 985675950
1 f none mysql/config.info 0600 root bin 585 53839 985675944
1 f none mysql/config.info.de 0600 root bin 370 34444 985675950
1 f none mysql/config.info.es 0600 root bin 434 41525 985675950
1 f none mysql/config.info.hu 0600 root bin 406 41801 985675951
1 f none mysql/config.info.pl 0600 root bin 727 4677 985675950
1 f none mysql/config.info.sv 0600 root bin 657 64427 985675950
1 f none mysql/config.info.tr 0600 root bin 374 38254 985675950
1 f none mysql/config.info.zh_CN 0600 root bin 262 36389 985675950
1 f none mysql/config.info.zh_TW.Big5 0600 root bin 306 39265 985675950
1 f none mysql/create_table.cgi 0700 root bin 1237 32382 985675945
1 f none mysql/defaultacl 0600 root bin 58 4879 985675950
1 f none mysql/drop_dbase.cgi 0700 root bin 1103 24742 985675950
1 f none mysql/drop_table.cgi 0700 root bin 1123 27463 985675946
1 f none mysql/edit_cpriv.cgi 0700 root bin 2886 39790 985675950
1 f none mysql/edit_db.cgi 0700 root bin 2584 11387 985675945
1 f none mysql/edit_dbase.cgi 0700 root bin 2182 49005 985675945
1 f none mysql/edit_field.cgi 0700 root bin 5239 32084 985675945
1 f none mysql/edit_host.cgi 0700 root bin 2124 40222 985675946
1 f none mysql/edit_table.cgi 0700 root bin 2377 64523 985675945
1 f none mysql/edit_tpriv.cgi 0700 root bin 3010 49194 985675950
1 f none mysql/edit_user.cgi 0700 root bin 2499 7461 985675946
1 f none mysql/exec.cgi 0700 root bin 884 4423 985675950
1 f none mysql/exec_file.cgi 0600 root bin 1154 28046 985675950
1 f none mysql/exec_form.cgi 0700 root bin 1258 41103 985675950
1 d none mysql/help 0700 root bin
1 f none mysql/help/backup_form.html 0600 root bin 504 45475 985675950
1 f none mysql/help/cpriv.es.html 0600 root bin 489 43613 985675947
1 f none mysql/help/cpriv.html 0600 root bin 448 39427 985675947
1 f none mysql/help/cpriv.sv.html 0600 root bin 397 38237 985675949
1 f none mysql/help/cpriv.zh_TW.Big5.html 0600 root bin 291 38621 985675948
1 f none mysql/help/cprivs.es.html 0600 root bin 614 56877 985675947
1 f none mysql/help/cprivs.html 0600 root bin 547 49639 985675947
1 f none mysql/help/cprivs.sv.html 0600 root bin 516 51616 985675949
1 f none mysql/help/cprivs.zh_TW.Big5.html 0600 root bin 321 49054 985675948
1 f none mysql/help/create_cpriv.es.html 0600 root bin 277 25477 985675947
1 f none mysql/help/create_cpriv.html 0600 root bin 248 22493 985675947
1 f none mysql/help/create_cpriv.sv.html 0600 root bin 235 23183 985675949
1 f none mysql/help/create_cpriv.zh_TW.Big5.html 0600 root bin 159 21475 985675948
1 f none mysql/help/create_db.es.html 0600 root bin 305 27752 985675947
1 f none mysql/help/create_db.html 0600 root bin 254 23041 985675947
1 f none mysql/help/create_db.sv.html 0600 root bin 240 23359 985675949
1 f none mysql/help/create_db.zh_TW.Big5.html 0600 root bin 160 21495 985675948
1 f none mysql/help/create_field.es.html 0600 root bin 277 25440 985675948
1 f none mysql/help/create_field.html 0600 root bin 244 21435 985675947
1 f none mysql/help/create_field.sv.html 0600 root bin 245 23461 985675949
1 f none mysql/help/create_field.zh_TW.Big5.html 0600 root bin 170 23472 985675948
1 f none mysql/help/create_tpriv.es.html 0600 root bin 285 26057 985675948
1 f none mysql/help/create_tpriv.html 0600 root bin 248 22505 985675947
1 f none mysql/help/create_tpriv.sv.html 0600 root bin 238 23269 985675949
1 f none mysql/help/create_tpriv.zh_TW.Big5.html 0600 root bin 159 21706 985675948
1 f none mysql/help/create_user.es.html 0600 root bin 251 22665 985675948
1 f none mysql/help/create_user.html 0600 root bin 210 18467 985675947
1 f none mysql/help/create_user.sv.html 0600 root bin 221 21084 985675949
1 f none mysql/help/create_user.zh_TW.Big5.html 0600 root bin 162 21963 985675948
1 f none mysql/help/db.es.html 0600 root bin 749 622 985675948
1 f none mysql/help/db.html 0600 root bin 628 54715 985675947
1 f none mysql/help/db.sv.html 0600 root bin 620 58726 985675949
1 f none mysql/help/db.zh_TW.Big5.html 0600 root bin 435 57249 985675948
1 f none mysql/help/dbs.es.html 0600 root bin 551 51695 985675948
1 f none mysql/help/dbs.html 0600 root bin 486 44736 985675947
1 f none mysql/help/dbs.sv.html 0600 root bin 469 46295 985675949
1 f none mysql/help/dbs.zh_TW.Big5.html 0600 root bin 357 52733 985675948
1 f none mysql/help/edit_cpriv.es.html 0600 root bin 343 31359 985675948
1 f none mysql/help/edit_cpriv.html 0600 root bin 309 27736 985675947
1 f none mysql/help/edit_cpriv.sv.html 0600 root bin 296 29033 985675949
1 f none mysql/help/edit_cpriv.zh_TW.Big5.html 0600 root bin 216 28715 985675948
1 f none mysql/help/edit_db.es.html 0600 root bin 359 32777 985675948
1 f none mysql/help/edit_db.html 0600 root bin 310 27848 985675947
1 f none mysql/help/edit_db.sv.html 0600 root bin 296 28897 985675950
1 f none mysql/help/edit_db.zh_TW.Big5.html 0600 root bin 216 28865 985675948
1 f none mysql/help/edit_dbase.es.html 0600 root bin 506 45361 985675948
1 f none mysql/help/edit_dbase.html 0600 root bin 423 37518 985675947
1 f none mysql/help/edit_dbase.sv.html 0600 root bin 446 42636 985675950
1 f none mysql/help/edit_dbase.zh_TW.Big5.html 0600 root bin 304 45974 985675949
1 f none mysql/help/edit_field.es.html 0600 root bin 398 36390 985675948
1 f none mysql/help/edit_field.html 0600 root bin 358 31732 985675947
1 f none mysql/help/edit_field.sv.html 0600 root bin 316 30510 985675950
1 f none mysql/help/edit_field.zh_TW.Big5.html 0600 root bin 258 36839 985675949
1 f none mysql/help/edit_table.es.html 0600 root bin 623 57042 985675948
1 f none mysql/help/edit_table.html 0600 root bin 549 49176 985675947
1 f none mysql/help/edit_table.sv.html 0600 root bin 532 51846 985675950
1 f none mysql/help/edit_table.zh_TW.Big5.html 0600 root bin 372 57953 985675949
1 f none mysql/help/edit_tpriv.es.html 0600 root bin 356 32666 985675948
1 f none mysql/help/edit_tpriv.html 0600 root bin 308 27623 985675947
1 f none mysql/help/edit_tpriv.sv.html 0600 root bin 298 29090 985675950
1 f none mysql/help/edit_tpriv.zh_TW.Big5.html 0600 root bin 220 29470 985675949
1 f none mysql/help/edit_user.es.html 0600 root bin 303 27196 985675948
1 f none mysql/help/edit_user.html 0600 root bin 268 23530 985675947
1 f none mysql/help/edit_user.sv.html 0600 root bin 271 26174 985675950
1 f none mysql/help/edit_user.zh_TW.Big5.html 0600 root bin 213 27268 985675949
1 f none mysql/help/exec_form.es.html 0600 root bin 260 24162 985675948
1 f none mysql/help/exec_form.html 0600 root bin 203 18090 985675947
1 f none mysql/help/exec_form.sv.html 0600 root bin 215 20241 985675950
1 f none mysql/help/exec_form.zh_TW.Big5.html 0600 root bin 180 22733 985675949
1 f none mysql/help/field.es.html 0600 root bin 983 22252 985675948
1 f none mysql/help/field.html 0600 root bin 904 14001 985675947
1 f none mysql/help/field.sv.html 0600 root bin 883 18208 985675950
1 f none mysql/help/field.zh_TW.Big5.html 0600 root bin 632 18126 985675949
1 f none mysql/help/intro.es.html 0600 root bin 837 11714 985675948
1 f none mysql/help/intro.html 0600 root bin 699 63800 985675947
1 f none mysql/help/intro.sv.html 0600 root bin 715 4207 985675950
1 f none mysql/help/intro.zh_TW.Big5.html 0600 root bin 484 5331 985675949
1 f none mysql/help/newdb_form.es.html 0600 root bin 393 35129 985675948
1 f none mysql/help/newdb_form.html 0600 root bin 344 30615 985675947
1 f none mysql/help/newdb_form.sv.html 0600 root bin 292 27182 985675950
1 f none mysql/help/newdb_form.zh_TW.Big5.html 0600 root bin 249 37472 985675949
1 f none mysql/help/table_form.es.html 0600 root bin 393 35354 985675948
1 f none mysql/help/table_form.html 0600 root bin 345 30464 985675947
1 f none mysql/help/table_form.sv.html 0600 root bin 306 28850 985675950
1 f none mysql/help/table_form.zh_TW.Big5.html 0600 root bin 256 38915 985675949
1 f none mysql/help/tpriv.es.html 0600 root bin 664 59256 985675948
1 f none mysql/help/tpriv.html 0600 root bin 614 54166 985675947
1 f none mysql/help/tpriv.sv.html 0600 root bin 526 51452 985675950
1 f none mysql/help/tpriv.zh_TW.Big5.html 0600 root bin 410 56879 985675949
1 f none mysql/help/tprivs.es.html 0600 root bin 687 63607 985675948
1 f none mysql/help/tprivs.html 0600 root bin 595 54084 985675947
1 f none mysql/help/tprivs.sv.html 0600 root bin 550 54119 985675950
1 f none mysql/help/tprivs.zh_TW.Big5.html 0600 root bin 351 52647 985675949
1 f none mysql/help/user.es.html 0600 root bin 923 16990 985675948
1 f none mysql/help/user.html 0600 root bin 787 2723 985675947
1 f none mysql/help/user.sv.html 0600 root bin 792 8332 985675950
1 f none mysql/help/user.zh_TW.Big5.html 0600 root bin 532 3731 985675949
1 f none mysql/help/users.es.html 0600 root bin 637 58558 985675948
1 f none mysql/help/users.html 0600 root bin 549 49754 985675946
1 f none mysql/help/users.sv.html 0600 root bin 503 50304 985675950
1 f none mysql/help/users.zh_TW.Big5.html 0600 root bin 363 53693 985675949
1 d none mysql/images 0700 root bin
1 f none mysql/images/cprivs.gif 0600 root bin 399 49837 985675944
1 f none mysql/images/db.gif 0600 root bin 462 58683 985675944
1 f none mysql/images/dbs.gif 0600 root bin 507 62354 985675944
1 f none mysql/images/delete.gif 0600 root bin 66 4724 985675944
1 f none mysql/images/edit.gif 0600 root bin 60 4152 985675944
1 f none mysql/images/hosts.gif 0600 root bin 412 49712 985675944
1 f none mysql/images/icon.gif 0600 root bin 775 18305 985675944
1 f none mysql/images/mysql.gif 0600 root bin 2371 12001 985675944
1 f none mysql/images/table.gif 0600 root bin 366 49508 985675944
1 f none mysql/images/tprivs.gif 0600 root bin 447 56041 985675944
1 f none mysql/images/users.gif 0600 root bin 293 35470 985675944
1 f none mysql/index.cgi 0700 root bin 3731 37730 985675944
1 d none mysql/lang 0700 root bin
1 f none mysql/lang/de 0600 root bin 11006 57984 985675944
1 f none mysql/lang/en 0600 root bin 13898 49557 985675944
1 f none mysql/lang/es 0600 root bin 14150 17089 985675944
1 f none mysql/lang/he 0600 root bin 11465 41092 985675945
1 f none mysql/lang/hu 0600 root bin 14558 4358 985675945
1 f none mysql/lang/it 0600 root bin 8843 51862 985675945
1 f none mysql/lang/pl 0600 root bin 14336 3752 985675945
1 f none mysql/lang/sv 0600 root bin 15345 54199 985675945
1 f none mysql/lang/tr 0600 root bin 12492 46721 985675945
1 f none mysql/lang/zh_CN 0600 root bin 8824 54943 985675945
1 f none mysql/lang/zh_TW.Big5 0600 root bin 7355 35187 985675944
1 f none mysql/list_cprivs.cgi 0700 root bin 1650 63935 985675950
1 f none mysql/list_dbs.cgi 0700 root bin 1390 41550 985675946
1 f none mysql/list_hosts.cgi 0700 root bin 1277 34254 985675946
1 f none mysql/list_tprivs.cgi 0700 root bin 1680 563 985675950
1 f none mysql/list_users.cgi 0700 root bin 1220 30123 985675946
1 f none mysql/log_parser.pl 0600 root bin 2028 28297 985675950
1 f none mysql/login.cgi 0700 root bin 476 41106 985675945
1 f none mysql/module.info 0600 root bin 346 34065 985675944
1 f none mysql/mysql-lib.pl 0600 root bin 4695 33342 985675944
1 f none mysql/newdb.cgi 0700 root bin 1229 31941 985675950
1 f none mysql/newdb_form.cgi 0700 root bin 1536 61776 985675950
1 f none mysql/save_cpriv.cgi 0700 root bin 2713 12317 985675950
1 f none mysql/save_db.cgi 0700 root bin 2659 1782 985675946
1 f none mysql/save_field.cgi 0700 root bin 3014 42401 985675945
1 f none mysql/save_host.cgi 0700 root bin 2226 38196 985675946
1 f none mysql/save_tpriv.cgi 0700 root bin 2614 5245 985675950
1 f none mysql/save_user.cgi 0700 root bin 2371 49096 985675946
1 f none mysql/start.cgi 0700 root bin 335 27452 985675944
1 f none mysql/stop.cgi 0700 root bin 378 31294 985675944
1 f none mysql/table_form.cgi 0700 root bin 1726 11157 985675945
1 f none mysql/view_table.cgi 0700 root bin 8718 15571 985675945
1 d none net 0700 root bin
1 f none net/cobalt-linux-lib.pl 0600 root bin 13217 5171 985675937
1 f none net/config-cobalt-linux 0600 root bin 22 2114 985675937
1 f none net/config-debian-linux 0600 root bin 22 2114 985675937
1 f none net/config-freebsd 0600 root bin 22 2114 985675937
1 f none net/config-lfs-linux 0600 root bin 22 2114 985675937
1 f none net/config-open-linux 0600 root bin 22 2114 985675937
1 f none net/config-openbsd 0600 root bin 22 2114 985675937
1 f none net/config-redhat-linux 0600 root bin 22 2114 985675937
1 f none net/config-solaris 0600 root bin 22 2114 985675937
1 f none net/config-suse-linux 0600 root bin 22 2114 985675937
1 f none net/config-turbo-linux 0600 root bin 22 2114 985675937
1 f none net/config-unixware 0600 root bin 22 2114 985675937
1 f none net/config.info 0600 root bin 46 4335 985675937
1 f none net/config.info.de 0600 root bin 64 5979 985675937
1 f none net/config.info.es 0600 root bin 61 5919 985675937
1 f none net/config.info.fr 0600 root bin 52 4872 985675937
1 f none net/config.info.pl 0600 root bin 71 6775 985675937
1 f none net/config.info.ru_RU 0600 root bin 46 7727 985675937
1 f none net/config.info.ru_SU 0600 root bin 46 6970 985675937
1 f none net/config.info.sv 0600 root bin 42 3880 985675937
1 f none net/config.info.tr 0600 root bin 62 6401 985675937
1 f none net/config.info.zh_CN 0600 root bin 34 5205 985675937
1 f none net/config.info.zh_TW.Big5 0600 root bin 34 4644 985675937
1 f none net/debian-linux-lib.pl 0600 root bin 15035 12592 985675937
1 f none net/edit_aifc.cgi 0700 root bin 3862 46927 985675937
1 f none net/edit_bifc.cgi 0700 root bin 4039 57238 985675937
1 f none net/edit_dns.cgi 0700 root bin 1383 50228 985675937
1 f none net/edit_host.cgi 0700 root bin 1251 40146 985675937
1 f none net/freebsd-lib.pl 0600 root bin 10692 49092 985675937
1 d none net/images 0700 root bin
1 f none net/images/dns.gif 0600 root bin 374 42949 985675937
1 f none net/images/hosts.gif 0600 root bin 307 35512 985675937
1 f none net/images/icon.gif 0600 root bin 364 43854 985675937
1 f none net/images/ifcs.gif 0600 root bin 362 38137 985675937
1 f none net/images/routes.gif 0600 root bin 315 37774 985675937
1 f none net/index.cgi 0700 root bin 548 45381 985675937
1 d none net/lang 0700 root bin
1 f none net/lang/de 0600 root bin 3586 9914 985675937
1 f none net/lang/en 0600 root bin 3657 14104 985675937
1 f none net/lang/es 0600 root bin 4062 61676 985675937
1 f none net/lang/fr 0600 root bin 3415 2281 985675937
1 f none net/lang/pl 0600 root bin 3917 53919 985675937
1 f none net/lang/pt 0600 root bin 3304 58301 985675937
1 f none net/lang/ru_RU 0600 root bin 3446 57843 985675937
1 f none net/lang/ru_SU 0600 root bin 3452 4421 985675937
1 f none net/lang/sv 0600 root bin 3932 52301 985675937
1 f none net/lang/tr 0600 root bin 3874 4207 985675937
1 f none net/lang/zh_CN 0600 root bin 2830 62336 985675937
1 f none net/lang/zh_TW.Big5 0600 root bin 2605 8615 985675937
1 f none net/list_hosts.cgi 0700 root bin 643 52230 985675937
1 f none net/list_ifcs.cgi 0700 root bin 2641 6742 985675937
1 f none net/list_routes.cgi 0700 root bin 505 43101 985675937
1 f none net/log_parser.pl 0600 root bin 732 61293 985675937
1 f none net/module.info 0600 root bin 784 12466 985675937
1 f none net/net-lib.pl 0600 root bin 1271 33644 985675937
1 f none net/open-linux-lib.pl 0600 root bin 10773 5857 985675937
1 f none net/openbsd-lib.pl 0600 root bin 12820 19815 985675937
1 f none net/redhat-linux-lib.pl 0600 root bin 13217 5171 985675937
1 f none net/save_aifc.cgi 0700 root bin 2634 5838 985675937
1 f none net/save_bifc.cgi 0700 root bin 2753 14743 985675937
1 f none net/save_dns.cgi 0700 root bin 861 3486 985675937
1 f none net/save_host.cgi 0700 root bin 1087 21481 985675937
1 f none net/save_routes.cgi 0700 root bin 230 19890 985675937
1 f none net/slackware-linux-lib.pl 0600 root bin 2441 60195 985675937
1 f none net/solaris-lib.pl 0600 root bin 10135 1542 985675937
1 f none net/suse-linux-lib.pl 0600 root bin 15271 5916 985675937
1 f none net/turbo-linux-lib.pl 0600 root bin 13217 5171 985675937
1 f none net/unixware-lib.pl 0600 root bin 10166 4074 985675937
1 f none newmods.pl 0700 root bin 582 42068 985675910
1 d none nis 0700 root bin
1 f none nis/config-debian-linux 0600 root bin 139 13437 985675966
1 f none nis/config-open-linux 0600 root bin 136 13100 985675966
1 f none nis/config-redhat-linux 0600 root bin 135 13003 985675966
1 f none nis/config-solaris 0600 root bin 139 13629 985675966
1 f none nis/config-solaris-8 0600 root bin 171 16817 985675966
1 f none nis/config-suse-linux 0600 root bin 135 13003 985675967
1 f none nis/config.info 0600 root bin 154 14377 985675966
1 f none nis/config.info.pl 0600 root bin 181 17381 985675966
1 f none nis/config.info.sv 0600 root bin 163 16195 985675967
1 f none nis/debian-linux-lib.pl 0600 root bin 13364 22652 985675966
1 f none nis/edit_aliases.cgi 0600 root bin 1193 35204 985675966
1 f none nis/edit_client.cgi 0700 root bin 1302 44469 985675966
1 f none nis/edit_ethers.cgi 0600 root bin 1128 29952 985675966
1 f none nis/edit_group.cgi 0600 root bin 1812 22404 985675966
1 f none nis/edit_group_shadow.cgi 0600 root bin 1838 24911 985675966
1 f none nis/edit_hosts.cgi 0600 root bin 1302 44266 985675966
1 f none nis/edit_netgroup.cgi 0600 root bin 2020 31896 985675966
1 f none nis/edit_netmasks.cgi 0600 root bin 1152 32604 985675966
1 f none nis/edit_networks.cgi 0600 root bin 1341 48582 985675966
1 f none nis/edit_passwd.cgi 0600 root bin 4861 3812 985675966
1 f none nis/edit_passwd_shadow.cgi 0600 root bin 4861 3812 985675966
1 f none nis/edit_passwd_shadow_full.cgi 0600 root bin 4861 3812 985675966
1 f none nis/edit_protocols.cgi 0600 root bin 1341 48878 985675966
1 f none nis/edit_rpc.cgi 0600 root bin 1289 42635 985675966
1 f none nis/edit_security.cgi 0700 root bin 1809 8328 985675967
1 f none nis/edit_server.cgi 0600 root bin 604 50433 985675966
1 f none nis/edit_services.cgi 0600 root bin 1516 61978 985675966
1 f none nis/edit_services2.cgi 0600 root bin 1518 62006 985675966
1 f none nis/edit_switch.cgi 0600 root bin 1672 60660 985675966
1 f none nis/edit_tables.cgi 0600 root bin 4866 49224 985675966
1 d none nis/images 0700 root bin
1 f none nis/images/client.gif 0600 root bin 272 33549 985675966
1 f none nis/images/icon.gif 0600 root bin 413 46276 985675966
1 f none nis/images/security.gif 0600 root bin 275 34570 985675966
1 f none nis/images/server.gif 0600 root bin 415 48303 985675966
1 f none nis/images/switch.gif 0600 root bin 282 35935 985675966
1 f none nis/images/tables.gif 0600 root bin 366 49508 985675966
1 f none nis/index.cgi 0700 root bin 732 59520 985675966
1 d none nis/lang 0700 root bin
1 f none nis/lang/en 0600 root bin 8702 47130 985675966
1 f none nis/lang/pl 0600 root bin 9669 35625 985675966
1 f none nis/lang/sv 0600 root bin 9608 38854 985675966
1 f none nis/module.info 0600 root bin 207 19503 985675966
1 f none nis/nis-lib.pl 0600 root bin 7104 19413 985675966
1 f none nis/nisupdate.conf 0600 root bin 1982 36044 985675966
1 f none nis/old_edit_passwd_shadow.cgi 0600 root bin 4715 61163 985675966
1 f none nis/open-linux-lib.pl 0600 root bin 10943 12637 985675966
1 f none nis/redhat-linux-lib.pl 0600 root bin 13539 44306 985675966
1 f none nis/save_aliases.cgi 0600 root bin 725 58400 985675966
1 f none nis/save_client.cgi 0700 root bin 669 54815 985675966
1 f none nis/save_ethers.cgi 0600 root bin 738 60250 985675966
1 f none nis/save_file.cgi 0700 root bin 528 41922 985675966
1 f none nis/save_group.cgi 0600 root bin 915 6059 985675966
1 f none nis/save_group_shadow.cgi 0600 root bin 1034 15047 985675966
1 f none nis/save_hosts.cgi 0600 root bin 734 59763 985675966
1 f none nis/save_netgroup.cgi 0600 root bin 1046 16084 985675966
1 f none nis/save_netmasks.cgi 0600 root bin 729 60641 985675966
1 f none nis/save_networks.cgi 0600 root bin 767 63415 985675966
1 f none nis/save_passwd_shadow.cgi 0600 root bin 2436 58707 985675966
1 f none nis/save_protocols.cgi 0600 root bin 782 64802 985675966
1 f none nis/save_rpc.cgi 0600 root bin 722 58541 985675966
1 f none nis/save_security.cgi 0700 root bin 822 64446 985675967
1 f none nis/save_server.cgi 0700 root bin 190 16372 985675966
1 f none nis/save_services.cgi 0600 root bin 751 61732 985675966
1 f none nis/save_services2.cgi 0600 root bin 752 61782 985675966
1 f none nis/save_switch.cgi 0700 root bin 539 42772 985675966
1 f none nis/solaris-lib.pl 0600 root bin 9949 15296 985675966
1 f none nis/suse-linux-lib.pl 0600 root bin 15147 29370 985675967
1 f none os_list.txt 0600 root bin 6811 61286 985675910
1 f none oschooser.pl 0600 root bin 2673 9920 985675910
1 d none pam 0700 root bin
1 f none pam/config-cobalt-linux 0600 root bin 251 24204 985675966
1 f none pam/config-corel-linux 0600 root bin 240 23294 985675966
1 f none pam/config-debian-linux 0600 root bin 240 23294 985675966
1 f none pam/config-open-linux 0600 root bin 240 23294 985675966
1 f none pam/config-redhat-linux 0600 root bin 240 23294 985675966
1 f none pam/config-suse-linux 0600 root bin 240 23432 985675966
1 f none pam/config-turbo-linux 0600 root bin 240 23294 985675966
1 f none pam/config.info 0600 root bin 163 15043 985675965
1 f none pam/config.info.es 0600 root bin 181 16914 985675966
1 f none pam/config.info.pl 0600 root bin 157 14745 985675966
1 f none pam/config.info.sv 0600 root bin 173 16230 985675966
1 f none pam/create_form.cgi 0700 root bin 1014 20589 985675966
1 f none pam/create_pam.cgi 0700 root bin 1780 1412 985675966
1 f none pam/delete_pam.cgi 0700 root bin 286 23041 985675966
1 f none pam/edit_mod.cgi 0700 root bin 2570 8123 985675966
1 f none pam/edit_pam.cgi 0700 root bin 2919 29884 985675966
1 d none pam/images 0700 root bin
1 f none pam/images/down.gif 0600 root bin 108 8892 985675965
1 f none pam/images/gap.gif 0600 root bin 73 6048 985675965
1 f none pam/images/icon.gif 0600 root bin 275 34570 985675965
1 f none pam/images/up.gif 0600 root bin 103 9086 985675965
1 f none pam/index.cgi 0700 root bin 1195 28713 985675965
1 d none pam/lang 0700 root bin
1 f none pam/lang/en 0600 root bin 7995 38826 985675965
1 f none pam/lang/es 0600 root bin 8206 4497 985675965
1 f none pam/lang/fr 0600 root bin 8900 13379 985675965
1 f none pam/lang/pl 0600 root bin 8488 55581 985675965
1 f none pam/lang/sv 0600 root bin 8316 40678 985675965
1 f none pam/log_parser.pl 0600 root bin 759 61157 985675966
1 f none pam/module.info 0600 root bin 241 22960 985675965
1 f none pam/move.cgi 0700 root bin 592 46501 985675966
1 f none pam/pam-lib.pl 0600 root bin 2773 19689 985675965
1 f none pam/pam_cracklib.so.pl 0600 root bin 1156 31546 985675966
1 f none pam/pam_deny.so.pl 0600 root bin 51 4181 985675966
1 f none pam/pam_env.so.pl 0600 root bin 1600 55957 985675966
1 f none pam/pam_filter.so.pl 0600 root bin 53 4395 985675966
1 f none pam/pam_group.so.pl 0600 root bin 1585 60372 985675966
1 f none pam/pam_listfile.so.pl 0600 root bin 2286 56346 985675966
1 f none pam/pam_mail.so.pl 0600 root bin 2177 46694 985675966
1 f none pam/pam_motd.so.pl 0600 root bin 770 63947 985675966
1 f none pam/pam_nologin.so.pl 0600 root bin 54 4507 985675966
1 f none pam/pam_permit.so.pl 0600 root bin 53 4406 985675966
1 f none pam/pam_pwdb.so.pl 0600 root bin 1678 6370 985675966
1 f none pam/pam_rhosts_auth.so.pl 0600 root bin 1773 19801 985675966
1 f none pam/pam_rootok.so.pl 0600 root bin 53 4419 985675966
1 f none pam/pam_securetty.so.pl 0600 root bin 603 51028 985675966
1 f none pam/pam_shells.so.pl 0600 root bin 601 50548 985675966
1 f none pam/pam_stack.so.pl 0600 root bin 714 58222 985675966
1 f none pam/pam_tally.so.pl 0600 root bin 2121 44967 985675966
1 f none pam/pam_time.so.pl 0600 root bin 1425 47128 985675966
1 f none pam/pam_wheel.so.pl 0600 root bin 1477 57315 985675966
1 f none pam/save_mod.cgi 0700 root bin 1601 53797 985675966
1 f none pam/template.pl 0600 root bin 162 14372 985675966
1 d none pap 0700 root bin
1 f none pap/config-corel-linux 0600 root bin 45 4249 985675926
1 f none pap/config-debian-linux 0600 root bin 45 4249 985675926
1 f none pap/config-freebsd 0600 root bin 45 4249 985675926
1 f none pap/config-open-linux 0600 root bin 45 4249 985675926
1 f none pap/config-redhat-linux 0600 root bin 45 4249 985675926
1 f none pap/config-slackware-linux 0600 root bin 45 4249 985675926
1 f none pap/config-suse-linux 0600 root bin 45 4249 985675926
1 f none pap/config-turbo-linux 0600 root bin 45 4249 985675926
1 f none pap/config.info 0600 root bin 89 7970 985675926
1 f none pap/config.info.de 0600 root bin 110 9867 985675926
1 f none pap/config.info.es 0600 root bin 113 10146 985675926
1 f none pap/config.info.fr 0600 root bin 104 9181 985675926
1 f none pap/config.info.pl 0600 root bin 84 7595 985675926
1 f none pap/config.info.sv 0600 root bin 104 9726 985675926
1 f none pap/config.info.tr 0600 root bin 105 10166 985675926
1 f none pap/config.info.zh_CN 0600 root bin 75 10385 985675926
1 f none pap/config.info.zh_TW.Big5 0600 root bin 75 8418 985675926
1 f none pap/edit_secret.cgi 0700 root bin 3259 5979 985675926
1 d none pap/images 0700 root bin
1 f none pap/images/icon.gif 0600 root bin 279 33204 985675926
1 f none pap/index.cgi 0700 root bin 1925 23907 985675926
1 d none pap/lang 0700 root bin
1 f none pap/lang/de 0600 root bin 1783 37506 985675926
1 f none pap/lang/en 0600 root bin 1520 11228 985675926
1 f none pap/lang/es 0600 root bin 1701 29819 985675926
1 f none pap/lang/pl 0600 root bin 1728 40186 985675926
1 f none pap/lang/sv 0600 root bin 1588 24404 985675926
1 f none pap/lang/zh_CN 0600 root bin 1272 35505 985675926
1 f none pap/log_parser.pl 0600 root bin 631 53378 985675926
1 f none pap/module.info 0600 root bin 610 62800 985675926
1 f none pap/pap-lib.pl 0600 root bin 1627 61425 985675926
1 f none pap/save_secret.cgi 0700 root bin 1386 46506 985675926
1 f none pap/save_sync.cgi 0700 root bin 493 42266 985675926
1 f none pap/useradmin_update.pl 0600 root bin 1476 55173 985675926
1 f none perlpath.pl 0600 root bin 551 41203 985675910
1 i pkginfo 213 18040 985676677
1 d none postfix 0700 root bin
1 f none postfix/aliases.cgi 0700 root bin 2525 14950 985675953
1 f none postfix/canonical.cgi 0700 root bin 1981 41673 985675953
1 f none postfix/canonical_edit.cgi 0700 root bin 1283 44985 985675953
1 f none postfix/config 0600 root bin 269 26913 985675959
1 f none postfix/config.info 0600 root bin 453 43470 985675953
1 f none postfix/config.info.de 0600 root bin 507 49225 985675953
1 f none postfix/config.info.es 0600 root bin 454 43571 985675959
1 f none postfix/config.info.fr 0600 root bin 590 57721 985675953
1 f none postfix/config.info.pl 0600 root bin 541 54283 985675959
1 f none postfix/config.info.sv 0600 root bin 532 55163 985675959
1 f none postfix/config.info.tr 0600 root bin 442 43988 985675959
1 f none postfix/config.info.zh_CN 0600 root bin 350 45538 985675959
1 f none postfix/debug.cgi 0700 root bin 1472 60762 985675953
1 f none postfix/defaultacl 0600 root bin 176 15669 985675953
1 f none postfix/edit_alias.cgi 0700 root bin 1728 14362 985675953
1 f none postfix/edit_canonical_mappings.cgi 0700 root bin 1716 14934 985675953
1 f none postfix/edit_mapping.cgi 0700 root bin 1794 20417 985675953
1 f none postfix/general.cgi 0700 root bin 4405 53118 985675953
1 d none postfix/help 0700 root bin
1 f none postfix/help/aliases.html 0600 root bin 1058 28451 985675954
1 f none postfix/help/aliases.sv.html 0600 root bin 1140 40407 985675957
1 f none postfix/help/canonical.html 0600 root bin 2512 28062 985675954
1 f none postfix/help/canonical.sv.html 0600 root bin 2692 910 985675957
1 f none postfix/help/general_opts.html 0600 root bin 368 33798 985675954
1 f none postfix/help/general_opts.sv.html 0600 root bin 358 34920 985675957
1 f none postfix/help/intro.html 0600 root bin 508 45962 985675954
1 f none postfix/help/intro.sv.html 0600 root bin 569 54859 985675957
1 f none postfix/help/opt_2bounce_notice_recipient.html 0600 root bin 244 22023 985675954
1 f none postfix/help/opt_2bounce_notice_recipient.sv.html 0600 root bin 235 21753 985675957
1 f none postfix/help/opt_access_map_reject_code.html 0600 root bin 307 27476 985675954
1 f none postfix/help/opt_access_map_reject_code.sv.html 0600 root bin 278 26934 985675957
1 f none postfix/help/opt_alias_database.html 0600 root bin 576 51553 985675954
1 f none postfix/help/opt_alias_database.sv.html 0600 root bin 567 51819 985675957
1 f none postfix/help/opt_alias_maps.html 0600 root bin 546 48364 985675954
1 f none postfix/help/opt_alias_maps.sv.html 0600 root bin 574 52908 985675957
1 f none postfix/help/opt_allow_mail_to_commands.html 0600 root bin 269 24539 985675954
1 f none postfix/help/opt_allow_mail_to_commands.sv.html 0600 root bin 290 27503 985675957
1 f none postfix/help/opt_allow_mail_to_files.html 0600 root bin 259 23467 985675954
1 f none postfix/help/opt_allow_mail_to_files.sv.html 0600 root bin 280 26439 985675957
1 f none postfix/help/opt_allow_untrusted_routing.html 0600 root bin 547 50434 985675954
1 f none postfix/help/opt_allow_untrusted_routing.sv.html 0600 root bin 564 54483 985675957
1 f none postfix/help/opt_always_bcc.html 0600 root bin 273 24962 985675954
1 f none postfix/help/opt_always_bcc.sv.html 0600 root bin 278 25937 985675957
1 f none postfix/help/opt_best_mx_transport.html 0600 root bin 474 42836 985675954
1 f none postfix/help/opt_best_mx_transport.sv.html 0600 root bin 500 47464 985675957
1 f none postfix/help/opt_bounce_notice_recipient.html 0600 root bin 242 21923 985675954
1 f none postfix/help/opt_bounce_notice_recipient.sv.html 0600 root bin 245 22661 985675957
1 f none postfix/help/opt_bounce_size_limit.html 0600 root bin 217 19840 985675954
1 f none postfix/help/opt_bounce_size_limit.sv.html 0600 root bin 245 23103 985675957
1 f none postfix/help/opt_canonical_maps.html 0600 root bin 733 453 985675954
1 f none postfix/help/opt_canonical_maps.sv.html 0600 root bin 775 9415 985675957
1 f none postfix/help/opt_command_time_limit.html 0600 root bin 482 43822 985675954
1 f none postfix/help/opt_command_time_limit.sv.html 0600 root bin 535 52305 985675957
1 f none postfix/help/opt_daemon_timeout.html 0600 root bin 230 20845 985675954
1 f none postfix/help/opt_daemon_timeout.sv.html 0600 root bin 258 24965 985675957
1 f none postfix/help/opt_debug_peer_level.html 0600 root bin 301 27515 985675954
1 f none postfix/help/opt_debug_peer_level.sv.html 0600 root bin 300 29236 985675957
1 f none postfix/help/opt_debug_peer_list.html 0600 root bin 516 46330 985675954
1 f none postfix/help/opt_debug_peer_list.sv.html 0600 root bin 516 49746 985675957
1 f none postfix/help/opt_default_database_type.html 0600 root bin 361 32267 985675954
1 f none postfix/help/opt_default_database_type.sv.html 0600 root bin 368 34255 985675957
1 f none postfix/help/opt_default_destination_concurrency_limit.html 0600 root bin 358 32936 985675954
1 f none postfix/help/opt_default_destination_concurrency_limit.sv.html 0600 root bin 355 34386 985675957
1 f none postfix/help/opt_default_destination_recipient_limit.html 0600 root bin 332 30466 985675954
1 f none postfix/help/opt_default_destination_recipient_limit.sv.html 0600 root bin 329 31840 985675957
1 f none postfix/help/opt_default_privs.html 0600 root bin 358 31273 985675954
1 f none postfix/help/opt_default_privs.sv.html 0600 root bin 375 35166 985675957
1 f none postfix/help/opt_default_process_limit.html 0600 root bin 230 21148 985675954
1 f none postfix/help/opt_default_process_limit.sv.html 0600 root bin 210 20165 985675957
1 f none postfix/help/opt_default_transport.html 0600 root bin 304 28107 985675954
1 f none postfix/help/opt_default_transport.sv.html 0600 root bin 300 28374 985675957
1 f none postfix/help/opt_defer_transports.html 0600 root bin 372 34302 985675954
1 f none postfix/help/opt_defer_transports.sv.html 0600 root bin 345 33184 985675957
1 f none postfix/help/opt_delay_notice_recipient.html 0600 root bin 240 21705 985675954
1 f none postfix/help/opt_delay_notice_recipient.sv.html 0600 root bin 250 23467 985675957
1 f none postfix/help/opt_delay_warning_time.html 0600 root bin 254 22845 985675954
1 f none postfix/help/opt_delay_warning_time.sv.html 0600 root bin 309 29427 985675957
1 f none postfix/help/opt_deliver_lock_attempts.html 0600 root bin 214 19509 985675954
1 f none postfix/help/opt_deliver_lock_attempts.sv.html 0600 root bin 210 20312 985675957
1 f none postfix/help/opt_deliver_lock_delay.html 0600 root bin 205 18719 985675954
1 f none postfix/help/opt_deliver_lock_delay.sv.html 0600 root bin 200 18976 985675957
1 f none postfix/help/opt_disable_vrfy_command.html 0600 root bin 236 21133 985675954
1 f none postfix/help/opt_disable_vrfy_command.sv.html 0600 root bin 248 23202 985675957
1 f none postfix/help/opt_double_bounce_sender.html 0600 root bin 328 29770 985675954
1 f none postfix/help/opt_double_bounce_sender.sv.html 0600 root bin 324 30719 985675957
1 f none postfix/help/opt_duplicate_filter_limit.html 0600 root bin 255 23454 985675954
1 f none postfix/help/opt_duplicate_filter_limit.sv.html 0600 root bin 244 23069 985675957
1 f none postfix/help/opt_empty_address_recipient.html 0600 root bin 319 28447 985675954
1 f none postfix/help/opt_empty_address_recipient.sv.html 0600 root bin 332 30564 985675957
1 f none postfix/help/opt_error_notice_recipient.html 0600 root bin 240 21759 985675954
1 f none postfix/help/opt_error_notice_recipient.sv.html 0600 root bin 239 22175 985675957
1 f none postfix/help/opt_fallback_relay.html 0600 root bin 405 36503 985675954
1 f none postfix/help/opt_fallback_relay.sv.html 0600 root bin 419 40102 985675957
1 f none postfix/help/opt_fallback_transport.html 0600 root bin 344 31372 985675954
1 f none postfix/help/opt_fallback_transport.sv.html 0600 root bin 328 30942 985675957
1 f none postfix/help/opt_fork_attempts.html 0600 root bin 167 14949 985675954
1 f none postfix/help/opt_fork_attempts.sv.html 0600 root bin 188 18055 985675957
1 f none postfix/help/opt_fork_delay.html 0600 root bin 170 15267 985675954
1 f none postfix/help/opt_fork_delay.sv.html 0600 root bin 181 16819 985675957
1 f none postfix/help/opt_forward_path.html 0600 root bin 709 62396 985675954
1 f none postfix/help/opt_forward_path.sv.html 0600 root bin 684 63458 985675957
1 f none postfix/help/opt_hash_queue_depth.html 0600 root bin 367 33911 985675954
1 f none postfix/help/opt_hash_queue_depth.sv.html 0600 root bin 360 34702 985675957
1 f none postfix/help/opt_hash_queue_names.html 0600 root bin 592 54376 985675955
1 f none postfix/help/opt_hash_queue_names.sv.html 0600 root bin 625 61615 985675957
1 f none postfix/help/opt_header_size_limit.html 0600 root bin 290 26394 985675955
1 f none postfix/help/opt_header_size_limit.sv.html 0600 root bin 322 31261 985675957
1 f none postfix/help/opt_home_mailbox.html 0600 root bin 438 38475 985675955
1 f none postfix/help/opt_home_mailbox.sv.html 0600 root bin 444 42056 985675957
1 f none postfix/help/opt_hopcount_limit.html 0600 root bin 220 19693 985675955
1 f none postfix/help/opt_hopcount_limit.sv.html 0600 root bin 226 20815 985675957
1 f none postfix/help/opt_ignore_mx_lookup_error.html 0600 root bin 328 29915 985675955
1 f none postfix/help/opt_ignore_mx_lookup_error.sv.html 0600 root bin 355 34540 985675957
1 f none postfix/help/opt_inet_interfaces.html 0600 root bin 486 43577 985675955
1 f none postfix/help/opt_inet_interfaces.sv.html 0600 root bin 474 44484 985675957
1 f none postfix/help/opt_initial_destination_concurrency.html 0600 root bin 495 45255 985675955
1 f none postfix/help/opt_initial_destination_concurrency.sv.html 0600 root bin 515 49249 985675957
1 f none postfix/help/opt_invalid_hostname_reject_code.html 0600 root bin 327 29636 985675955
1 f none postfix/help/opt_invalid_hostname_reject_code.sv.html 0600 root bin 324 31135 985675957
1 f none postfix/help/opt_ipc_idle.html 0600 root bin 337 31013 985675955
1 f none postfix/help/opt_ipc_idle.sv.html 0600 root bin 343 32651 985675957
1 f none postfix/help/opt_ipc_timeout.html 0600 root bin 318 28955 985675955
1 f none postfix/help/opt_ipc_timeout.sv.html 0600 root bin 317 30701 985675957
1 f none postfix/help/opt_line_length_limit.html 0600 root bin 271 24992 985675955
1 f none postfix/help/opt_line_length_limit.sv.html 0600 root bin 284 27435 985675957
1 f none postfix/help/opt_local_command_shell.html 0600 root bin 823 8670 985675955
1 f none postfix/help/opt_local_command_shell.sv.html 0600 root bin 785 8631 985675957
1 f none postfix/help/opt_local_destination_concurrency_limit.html 0600 root bin 554 50707 985675955
1 f none postfix/help/opt_local_destination_concurrency_limit.sv.html 0600 root bin 582 56522 985675957
1 f none postfix/help/opt_local_destination_recipient_limit.html 0600 root bin 458 42475 985675955
1 f none postfix/help/opt_local_destination_recipient_limit.sv.html 0600 root bin 479 46929 985675957
1 f none postfix/help/opt_local_recipient_maps.html 0600 root bin 721 210 985675955
1 f none postfix/help/opt_local_recipient_maps.sv.html 0600 root bin 728 3449 985675957
1 f none postfix/help/opt_local_transport.html 0600 root bin 431 38966 985675955
1 f none postfix/help/opt_local_transport.sv.html 0600 root bin 452 43134 985675957
1 f none postfix/help/opt_luser_relay.html 0600 root bin 904 14514 985675956
1 f none postfix/help/opt_luser_relay.sv.html 0600 root bin 876 15154 985675957
1 f none postfix/help/opt_mail_name.html 0600 root bin 223 19704 985675956
1 f none postfix/help/opt_mail_name.sv.html 0600 root bin 211 18758 985675957
1 f none postfix/help/opt_mail_owner.html 0600 root bin 428 35427 985675956
1 f none postfix/help/opt_mail_owner.sv.html 0600 root bin 429 40821 985675957
1 f none postfix/help/opt_mail_spool_directory.html 0600 root bin 224 20197 985675956
1 f none postfix/help/opt_mail_spool_directory.sv.html 0600 root bin 196 18372 985675957
1 f none postfix/help/opt_mail_version.html 0600 root bin 239 21496 985675956
1 f none postfix/help/opt_mail_version.sv.html 0600 root bin 232 21967 985675957
1 f none postfix/help/opt_mailbox_command.html 0600 root bin 1180 36863 985675956
1 f none postfix/help/opt_mailbox_command.sv.html 0600 root bin 1234 50287 985675958
1 f none postfix/help/opt_mailbox_transport.html 0600 root bin 376 34392 985675956
1 f none postfix/help/opt_mailbox_transport.sv.html 0600 root bin 364 33961 985675958
1 f none postfix/help/opt_maps_rbl_domains.html 0600 root bin 489 44586 985675956
1 f none postfix/help/opt_maps_rbl_domains.sv.html 0600 root bin 463 45035 985675958
1 f none postfix/help/opt_maps_rbl_reject_code.html 0600 root bin 318 28553 985675956
1 f none postfix/help/opt_maps_rbl_reject_code.sv.html 0600 root bin 308 29716 985675958
1 f none postfix/help/opt_masquerade_domains.html 0600 root bin 573 52036 985675956
1 f none postfix/help/opt_masquerade_domains.sv.html 0600 root bin 559 53317 985675958
1 f none postfix/help/opt_masquerade_exceptions.html 0600 root bin 358 32824 985675956
1 f none postfix/help/opt_masquerade_exceptions.sv.html 0600 root bin 390 38168 985675958
1 f none postfix/help/opt_max_idle.html 0600 root bin 282 25836 985675956
1 f none postfix/help/opt_max_idle.sv.html 0600 root bin 276 27475 985675958
1 f none postfix/help/opt_max_use.html 0600 root bin 270 24723 985675956
1 f none postfix/help/opt_max_use.sv.html 0600 root bin 283 27947 985675958
1 f none postfix/help/opt_maximal_backoff_time.html 0600 root bin 235 21491 985675956
1 f none postfix/help/opt_maximal_backoff_time.sv.html 0600 root bin 235 23010 985675958
1 f none postfix/help/opt_maximal_queue_lifetime.html 0600 root bin 241 21910 985675956
1 f none postfix/help/opt_maximal_queue_lifetime.sv.html 0600 root bin 281 26337 985675958
1 f none postfix/help/opt_message_size_limit.html 0600 root bin 190 17105 985675956
1 f none postfix/help/opt_message_size_limit.sv.html 0600 root bin 198 18479 985675958
1 f none postfix/help/opt_minimal_backoff_time.html 0600 root bin 361 33402 985675956
1 f none postfix/help/opt_minimal_backoff_time.sv.html 0600 root bin 357 35362 985675958
1 f none postfix/help/opt_mydestination.html 0600 root bin 852 8809 985675956
1 f none postfix/help/opt_mydestination.sv.html 0600 root bin 823 11749 985675958
1 f none postfix/help/opt_mydomain.html 0600 root bin 314 28656 985675956
1 f none postfix/help/opt_mydomain.sv.html 0600 root bin 295 28742 985675958
1 f none postfix/help/opt_myhostname.html 0600 root bin 352 31917 985675956
1 f none postfix/help/opt_myhostname.sv.html 0600 root bin 350 34153 985675958
1 f none postfix/help/opt_mynetworks.html 0600 root bin 761 3252 985675956
1 f none postfix/help/opt_mynetworks.sv.html 0600 root bin 731 4969 985675958
1 f none postfix/help/opt_myorigin.html 0600 root bin 432 39028 985675956
1 f none postfix/help/opt_myorigin.sv.html 0600 root bin 404 38448 985675958
1 f none postfix/help/opt_notify_classes.html 0600 root bin 1518 8056 985675956
1 f none postfix/help/opt_notify_classes.sv.html 0600 root bin 1497 11814 985675958
1 f none postfix/help/opt_prepend_delivered_header.html 0600 root bin 432 38764 985675956
1 f none postfix/help/opt_prepend_delivered_header.sv.html 0600 root bin 451 42246 985675958
1 f none postfix/help/opt_process_id_directory.html 0600 root bin 271 24776 985675956
1 f none postfix/help/opt_process_id_directory.sv.html 0600 root bin 232 22472 985675958
1 f none postfix/help/opt_program_directory.html 0600 root bin 242 22221 985675956
1 f none postfix/help/opt_program_directory.sv.html 0600 root bin 221 20757 985675958
1 f none postfix/help/opt_qmgr_message_active_limit.html 0600 root bin 191 17367 985675956
1 f none postfix/help/opt_qmgr_message_active_limit.sv.html 0600 root bin 190 17692 985675958
1 f none postfix/help/opt_qmgr_message_recipient_limit.html 0600 root bin 270 24936 985675956
1 f none postfix/help/opt_qmgr_message_recipient_limit.sv.html 0600 root bin 257 24801 985675958
1 f none postfix/help/opt_queue_directory.html 0600 root bin 232 21334 985675956
1 f none postfix/help/opt_queue_directory.sv.html 0600 root bin 202 19582 985675958
1 f none postfix/help/opt_queue_minfree.html 0600 root bin 290 26072 985675956
1 f none postfix/help/opt_queue_minfree.sv.html 0600 root bin 285 27360 985675958
1 f none postfix/help/opt_queue_run_delay.html 0600 root bin 217 19628 985675956
1 f none postfix/help/opt_queue_run_delay.sv.html 0600 root bin 232 22504 985675958
1 f none postfix/help/opt_recipient_canonical_maps.html 0600 root bin 373 33389 985675956
1 f none postfix/help/opt_recipient_canonical_maps.sv.html 0600 root bin 394 38426 985675958
1 f none postfix/help/opt_recipient_delimiter.html 0600 root bin 506 45676 985675956
1 f none postfix/help/opt_recipient_delimiter.sv.html 0600 root bin 520 48615 985675958
1 f none postfix/help/opt_reject_code.html 0600 root bin 290 25649 985675956
1 f none postfix/help/opt_reject_code.sv.html 0600 root bin 271 25605 985675958
1 f none postfix/help/opt_relay_domains.html 0600 root bin 1552 10487 985675956
1 f none postfix/help/opt_relay_domains.sv.html 0600 root bin 1570 19197 985675958
1 f none postfix/help/opt_relay_domains_reject_code.html 0600 root bin 311 27959 985675956
1 f none postfix/help/opt_relay_domains_reject_code.sv.html 0600 root bin 321 31045 985675958
1 f none postfix/help/opt_relayhost.html 0600 root bin 587 53262 985675956
1 f none postfix/help/opt_relayhost.sv.html 0600 root bin 574 53971 985675958
1 f none postfix/help/opt_relocated_maps.html 0600 root bin 388 34831 985675956
1 f none postfix/help/opt_relocated_maps.sv.html 0600 root bin 377 35576 985675958
1 f none postfix/help/opt_sample.html 0600 root bin 58 4603 985675956
1 f none postfix/help/opt_sample.sv.html 0600 root bin 58 4603 985675958
1 f none postfix/help/opt_sender_canonical_maps.html 0600 root bin 358 31971 985675956
1 f none postfix/help/opt_sender_canonical_maps.sv.html 0600 root bin 388 38130 985675958
1 f none postfix/help/opt_smtp_connect_timeout.html 0600 root bin 369 33212 985675956
1 f none postfix/help/opt_smtp_connect_timeout.sv.html 0600 root bin 386 36565 985675958
1 f none postfix/help/opt_smtp_data_done_timeout.html 0600 root bin 487 43663 985675956
1 f none postfix/help/opt_smtp_data_done_timeout.sv.html 0600 root bin 485 45324 985675958
1 f none postfix/help/opt_smtp_data_init_timeout.html 0600 root bin 347 30956 985675956
1 f none postfix/help/opt_smtp_data_init_timeout.sv.html 0600 root bin 344 32183 985675958
1 f none postfix/help/opt_smtp_data_xfer_timeout.html 0600 root bin 448 40981 985675956
1 f none postfix/help/opt_smtp_data_xfer_timeout.sv.html 0600 root bin 440 42526 985675958
1 f none postfix/help/opt_smtp_destination_concurrency_limit.html 0600 root bin 401 37133 985675956
1 f none postfix/help/opt_smtp_destination_concurrency_limit.sv.html 0600 root bin 429 42095 985675958
1 f none postfix/help/opt_smtp_destination_recipient_limit.html 0600 root bin 309 28546 985675956
1 f none postfix/help/opt_smtp_destination_recipient_limit.sv.html 0600 root bin 303 29267 985675958
1 f none postfix/help/opt_smtp_helo_timeout.html 0600 root bin 420 38195 985675956
1 f none postfix/help/opt_smtp_helo_timeout.sv.html 0600 root bin 396 38096 985675958
1 f none postfix/help/opt_smtp_mail_timeout.html 0600 root bin 352 31132 985675957
1 f none postfix/help/opt_smtp_mail_timeout.sv.html 0600 root bin 344 31429 985675958
1 f none postfix/help/opt_smtp_quit_timeout.html 0600 root bin 246 22100 985675957
1 f none postfix/help/opt_smtp_quit_timeout.sv.html 0600 root bin 238 21824 985675958
1 f none postfix/help/opt_smtp_rcpt_timeout.html 0600 root bin 348 30908 985675957
1 f none postfix/help/opt_smtp_rcpt_timeout.sv.html 0600 root bin 336 30866 985675958
1 f none postfix/help/opt_smtp_skip_4xx_greeting.html 0600 root bin 290 25886 985675957
1 f none postfix/help/opt_smtp_skip_4xx_greeting.sv.html 0600 root bin 319 30356 985675958
1 f none postfix/help/opt_smtp_skip_quit_response.html 0600 root bin 231 20771 985675957
1 f none postfix/help/opt_smtp_skip_quit_response.sv.html 0600 root bin 216 20319 985675958
1 f none postfix/help/opt_smtpd_banner.html 0600 root bin 510 45634 985675957
1 f none postfix/help/opt_smtpd_banner.sv.html 0600 root bin 519 49236 985675958
1 f none postfix/help/opt_smtpd_client_restrictions.html 0600 root bin 1362 59414 985675957
1 f none postfix/help/opt_smtpd_client_restrictions.sv.html 0600 root bin 1382 2422 985675958
1 f none postfix/help/opt_smtpd_error_sleep_time.html 0600 root bin 357 32303 985675957
1 f none postfix/help/opt_smtpd_error_sleep_time.sv.html 0600 root bin 332 30824 985675958
1 f none postfix/help/opt_smtpd_etrn_restrictions.html 0600 root bin 1137 37637 985675957
1 f none postfix/help/opt_smtpd_etrn_restrictions.sv.html 0600 root bin 1147 43230 985675958
1 f none postfix/help/opt_smtpd_hard_error_limit.html 0600 root bin 262 24043 985675957
1 f none postfix/help/opt_smtpd_hard_error_limit.sv.html 0600 root bin 261 24351 985675958
1 f none postfix/help/opt_smtpd_helo_required.html 0600 root bin 225 20528 985675957
1 f none postfix/help/opt_smtpd_helo_required.sv.html 0600 root bin 185 17187 985675958
1 f none postfix/help/opt_smtpd_helo_restrictions.html 0600 root bin 1494 4216 985675957
1 f none postfix/help/opt_smtpd_helo_restrictions.sv.html 0600 root bin 1485 11358 985675958
1 f none postfix/help/opt_smtpd_recipient_limit.html 0600 root bin 227 20830 985675957
1 f none postfix/help/opt_smtpd_recipient_limit.sv.html 0600 root bin 213 20096 985675958
1 f none postfix/help/opt_smtpd_recipient_restrictions.html 0600 root bin 4294 60668 985675957
1 f none postfix/help/opt_smtpd_recipient_restrictions.sv.html 0600 root bin 4290 15676 985675958
1 f none postfix/help/opt_smtpd_sender_restrictions.html 0600 root bin 1775 31641 985675957
1 f none postfix/help/opt_smtpd_sender_restrictions.sv.html 0600 root bin 1789 41704 985675958
1 f none postfix/help/opt_smtpd_soft_error_limit.html 0600 root bin 333 30718 985675957
1 f none postfix/help/opt_smtpd_soft_error_limit.sv.html 0600 root bin 377 36476 985675958
1 f none postfix/help/opt_smtpd_timeout.html 0600 root bin 392 35332 985675957
1 f none postfix/help/opt_smtpd_timeout.sv.html 0600 root bin 402 38361 985675958
1 f none postfix/help/opt_stale_lock_time.html 0600 root bin 230 20680 985675957
1 f none postfix/help/opt_stale_lock_time.sv.html 0600 root bin 268 25874 985675958
1 f none postfix/help/opt_sun_mailtool_compatibility.html 0600 root bin 453 41388 985675957
1 f none postfix/help/opt_sun_mailtool_compatibility.sv.html 0600 root bin 478 47227 985675958
1 f none postfix/help/opt_swap_bangpath.html 0600 root bin 196 17284 985675957
1 f none postfix/help/opt_swap_bangpath.sv.html 0600 root bin 212 20079 985675958
1 f none postfix/help/opt_transport_maps.html 0600 root bin 558 50374 985675957
1 f none postfix/help/opt_transport_maps.sv.html 0600 root bin 550 51308 985675958
1 f none postfix/help/opt_transport_retry_time.html 0600 root bin 266 24487 985675957
1 f none postfix/help/opt_transport_retry_time.sv.html 0600 root bin 268 25333 985675958
1 f none postfix/help/opt_trigger_timeout.html 0600 root bin 270 24599 985675957
1 f none postfix/help/opt_trigger_timeout.sv.html 0600 root bin 298 28147 985675958
1 f none postfix/help/opt_unknown_address_reject_code.html 0600 root bin 374 34338 985675957
1 f none postfix/help/opt_unknown_address_reject_code.sv.html 0600 root bin 374 36089 985675958
1 f none postfix/help/opt_unknown_client_reject_code.html 0600 root bin 362 33088 985675957
1 f none postfix/help/opt_unknown_client_reject_code.sv.html 0600 root bin 380 36402 985675958
1 f none postfix/help/opt_unknown_hostname_reject_code.html 0600 root bin 335 30563 985675957
1 f none postfix/help/opt_unknown_hostname_reject_code.sv.html 0600 root bin 338 32461 985675958
1 f none postfix/help/opt_virtual_maps.html 0600 root bin 546 49730 985675957
1 f none postfix/help/opt_virtual_maps.sv.html 0600 root bin 556 52697 985675958
1 f none postfix/help/relocated.html 0600 root bin 993 23401 985675957
1 f none postfix/help/relocated.sv.html 0600 root bin 1034 32339 985675958
1 f none postfix/help/transport.html 0600 root bin 1259 48454 985675957
1 f none postfix/help/transport.sv.html 0600 root bin 1246 52865 985675958
1 f none postfix/help/virtual.html 0600 root bin 2502 25760 985675957
1 f none postfix/help/virtual.sv.html 0600 root bin 2546 42440 985675958
1 d none postfix/images 0700 root bin
1 f none postfix/images/aliases.gif 0600 root bin 1924 54355 985675958
1 f none postfix/images/canonical.gif 0600 root bin 2900 56537 985675958
1 f none postfix/images/debug.gif 0600 root bin 2135 2464 985675958
1 f none postfix/images/general.gif 0600 root bin 1522 34231 985675958
1 f none postfix/images/icon.gif 0600 root bin 1840 18870 985675958
1 f none postfix/images/ldap.gif 0600 root bin 1755 23281 985675958
1 f none postfix/images/local_delivery.gif 0600 root bin 2367 22078 985675958
1 f none postfix/images/rate.gif 0600 root bin 1821 20669 985675958
1 f none postfix/images/relocated.gif 0600 root bin 1785 37348 985675958
1 f none postfix/images/resource.gif 0600 root bin 1507 54943 985675958
1 f none postfix/images/rewrite.gif 0600 root bin 2408 23089 985675958
1 f none postfix/images/smtp.gif 0600 root bin 1709 12844 985675958
1 f none postfix/images/smtpd.gif 0600 root bin 1828 38020 985675958
1 f none postfix/images/transport.gif 0600 root bin 1291 18231 985675958
1 f none postfix/images/virtual.gif 0600 root bin 1632 9195 985675958
1 f none postfix/index.cgi 0700 root bin 3669 46749 985675958
1 d none postfix/lang 0700 root bin
1 f none postfix/lang/de 0600 root bin 16262 63259 985675958
1 f none postfix/lang/en 0600 root bin 14759 49906 985675958
1 f none postfix/lang/es 0600 root bin 14858 7093 985675958
1 f none postfix/lang/fr 0600 root bin 15519 31742 985675958
1 f none postfix/lang/pl 0600 root bin 16969 19187 985675958
1 f none postfix/lang/sv 0600 root bin 14457 33119 985675958
1 f none postfix/lang/zh_CN 0600 root bin 10695 22412 985675958
1 f none postfix/ldap.cgi 0700 root bin 1560 3117 985675958
1 f none postfix/local_delivery.cgi 0700 root bin 2856 54467 985675958
1 f none postfix/maps_edit.cgi 0700 root bin 2173 51162 985675958
1 f none postfix/module.info 0600 root bin 353 38234 985675958
1 f none postfix/postfix-lib.pl 0600 root bin 13652 34420 985675958
1 f none postfix/rate.cgi 0700 root bin 1738 19752 985675958
1 f none postfix/relocated.cgi 0700 root bin 1592 4979 985675958
1 f none postfix/resource.cgi 0700 root bin 2214 60624 985675958
1 f none postfix/rewrite.cgi 0700 root bin 1793 25682 985675959
1 f none postfix/save_alias.cgi 0700 root bin 1924 29599 985675959
1 f none postfix/save_map.cgi 0700 root bin 1977 33318 985675959
1 f none postfix/save_opts.cgi 0700 root bin 787 2325 985675959
1 f none postfix/save_opts_aliases.cgi 0700 root bin 787 2269 985675959
1 f none postfix/save_opts_canonical.cgi 0700 root bin 865 9525 985675959
1 f none postfix/save_opts_misc.cgi 0700 root bin 832 6397 985675959
1 f none postfix/save_opts_relocated.cgi 0700 root bin 865 9569 985675959
1 f none postfix/save_opts_transport.cgi 0700 root bin 865 9801 985675959
1 f none postfix/save_opts_virtual.cgi 0700 root bin 857 8881 985675959
1 f none postfix/smtp.cgi 0700 root bin 2355 8178 985675959
1 f none postfix/smtpd.cgi 0700 root bin 3120 8491 985675959
1 f none postfix/start.cgi 0700 root bin 808 5049 985675959
1 f none postfix/stop.cgi 0700 root bin 786 3276 985675959
1 f none postfix/transport.cgi 0700 root bin 1585 5008 985675959
1 f none postfix/virtual.cgi 0700 root bin 1562 2363 985675959
1 d none postgresql 0700 root bin
1 f none postgresql/acl_security.pl 0600 root bin 2218 50772 985675960
1 f none postgresql/config 0600 root bin 291 27041 985675960
1 f none postgresql/config-cobalt-linux 0600 root bin 239 21919 985675960
1 f none postgresql/config-debian-linux 0600 root bin 220 20807 985675960
1 f none postgresql/config-redhat-linux 0600 root bin 217 20429 985675959
1 f none postgresql/config-redhat-linux-7.0 0600 root bin 222 20886 985675960
1 f none postgresql/config-redhat-linux-7.1 0600 root bin 222 20886 985675960
1 f none postgresql/config-suse-linux 0600 root bin 232 21816 985675960
1 f none postgresql/config-suse-linux-7.0 0600 root bin 222 20860 985675960
1 f none postgresql/config-suse-linux-7.1 0600 root bin 224 21078 985675960
1 f none postgresql/config.info 0600 root bin 444 40743 985675959
1 f none postgresql/config.info.es 0600 root bin 515 48164 985675960
1 f none postgresql/config.info.pl 0600 root bin 561 54750 985675960
1 f none postgresql/config.info.sv 0600 root bin 504 49508 985675960
1 f none postgresql/config.info.zh_CN 0600 root bin 301 41551 985675960
1 f none postgresql/create_table.cgi 0700 root bin 1083 20094 985675959
1 f none postgresql/defaultacl 0600 root bin 39 3177 985675959
1 f none postgresql/drop_dbase.cgi 0700 root bin 1115 25904 985675959
1 f none postgresql/drop_table.cgi 0700 root bin 1128 28005 985675959
1 f none postgresql/edit_dbase.cgi 0700 root bin 1553 64733 985675959
1 f none postgresql/edit_field.cgi 0700 root bin 2618 17884 985675959
1 f none postgresql/edit_grant.cgi 0700 root bin 2641 12666 985675960
1 f none postgresql/edit_group.cgi 0700 root bin 2005 34373 985675960
1 f none postgresql/edit_host.cgi 0700 root bin 3500 20691 985675960
1 f none postgresql/edit_table.cgi 0700 root bin 2435 3346 985675959
1 f none postgresql/edit_user.cgi 0700 root bin 2519 11911 985675960
1 f none postgresql/exec.cgi 0700 root bin 889 4965 985675959
1 f none postgresql/exec_form.cgi 0700 root bin 635 54416 985675959
1 d none postgresql/help 0700 root bin
1 f none postgresql/help/create_field.es.html 0600 root bin 596 53505 985675959
1 f none postgresql/help/create_field.html 0600 root bin 561 48629 985675959
1 f none postgresql/help/create_field.pl.html 0600 root bin 605 55276 985675959
1 f none postgresql/help/edit_dbase.es.html 0600 root bin 481 42936 985675959
1 f none postgresql/help/edit_dbase.html 0600 root bin 423 37518 985675959
1 f none postgresql/help/edit_dbase.pl.html 0600 root bin 539 51921 985675959
1 f none postgresql/help/edit_field.es.html 0600 root bin 355 32142 985675959
1 f none postgresql/help/edit_field.html 0600 root bin 324 28665 985675959
1 f none postgresql/help/edit_field.pl.html 0600 root bin 334 32023 985675959
1 f none postgresql/help/edit_table.es.html 0600 root bin 619 56570 985675959
1 f none postgresql/help/edit_table.html 0600 root bin 554 49718 985675959
1 f none postgresql/help/edit_table.pl.html 0600 root bin 622 59682 985675959
1 f none postgresql/help/exec_form.es.html 0600 root bin 268 24069 985675959
1 f none postgresql/help/exec_form.html 0600 root bin 203 18090 985675959
1 f none postgresql/help/exec_form.pl.html 0600 root bin 282 25887 985675959
1 f none postgresql/help/intro.es.html 0600 root bin 846 13181 985675959
1 f none postgresql/help/intro.html 0600 root bin 705 64541 985675959
1 f none postgresql/help/intro.pl.html 0600 root bin 863 18597 985675959
1 f none postgresql/help/list_grants.es.html 0600 root bin 451 41853 985675959
1 f none postgresql/help/list_grants.html 0600 root bin 461 41961 985675959
1 f none postgresql/help/list_grants.pl.html 0600 root bin 492 47924 985675959
1 f none postgresql/help/list_groups.es.html 0600 root bin 244 22287 985675959
1 f none postgresql/help/list_groups.html 0600 root bin 221 19655 985675959
1 f none postgresql/help/list_groups.pl.html 0600 root bin 274 26587 985675959
1 f none postgresql/help/list_hosts.es.html 0600 root bin 1268 50833 985675959
1 f none postgresql/help/list_hosts.html 0600 root bin 1103 33612 985675959
1 f none postgresql/help/list_hosts.pl.html 0600 root bin 1237 52688 985675959
1 f none postgresql/help/list_users.es.html 0600 root bin 341 31468 985675959
1 f none postgresql/help/list_users.html 0600 root bin 312 28351 985675959
1 f none postgresql/help/list_users.pl.html 0600 root bin 367 37053 985675959
1 f none postgresql/help/newdb_form.es.html 0600 root bin 362 32677 985675959
1 f none postgresql/help/newdb_form.html 0600 root bin 301 26790 985675959
1 f none postgresql/help/newdb_form.pl.html 0600 root bin 315 31160 985675959
1 f none postgresql/help/table_form.es.html 0600 root bin 558 50827 985675959
1 f none postgresql/help/table_form.html 0600 root bin 501 44498 985675959
1 f none postgresql/help/table_form.pl.html 0600 root bin 550 53931 985675959
1 f none postgresql/help/view_table.es.html 0600 root bin 804 6571 985675959
1 f none postgresql/help/view_table.html 0600 root bin 708 61084 985675959
1 f none postgresql/help/view_table.pl.html 0600 root bin 799 7952 985675959
1 d none postgresql/images 0700 root bin
1 f none postgresql/images/db.gif 0600 root bin 462 58683 985675959
1 f none postgresql/images/grants.gif 0600 root bin 1869 17073 985675959
1 f none postgresql/images/groups.gif 0600 root bin 401 45436 985675959
1 f none postgresql/images/hosts.gif 0600 root bin 412 49712 985675959
1 f none postgresql/images/icon.gif 0600 root bin 1752 25416 985675959
1 f none postgresql/images/table.gif 0600 root bin 366 49508 985675959
1 f none postgresql/images/users.gif 0600 root bin 293 35470 985675959
1 f none postgresql/index.cgi 0700 root bin 3148 57381 985675959
1 d none postgresql/lang 0700 root bin
1 f none postgresql/lang/en 0600 root bin 8630 19909 985675959
1 f none postgresql/lang/es 0600 root bin 10075 32761 985675959
1 f none postgresql/lang/pl 0600 root bin 9865 52269 985675959
1 f none postgresql/lang/sv 0600 root bin 9428 2014 985675959
1 f none postgresql/lang/zh_CN 0600 root bin 6831 40077 985675959
1 f none postgresql/list_grants.cgi 0700 root bin 1752 2006 985675960
1 f none postgresql/list_groups.cgi 0700 root bin 1131 24251 985675960
1 f none postgresql/list_hosts.cgi 0700 root bin 1136 23606 985675960
1 f none postgresql/list_locals.cgi 0700 root bin 808 65017 985675960
1 f none postgresql/list_users.cgi 0700 root bin 1116 24190 985675960
1 f none postgresql/log_parser.pl 0600 root bin 1572 61476 985675960
1 f none postgresql/login.cgi 0700 root bin 463 40316 985675960
1 f none postgresql/module.info 0600 root bin 236 23521 985675959
1 f none postgresql/newdb.cgi 0700 root bin 696 57516 985675959
1 f none postgresql/newdb_form.cgi 0700 root bin 935 13771 985675959
1 f none postgresql/postgresql-lib.pl 0600 root bin 6688 56409 985675959
1 f none postgresql/save_field.cgi 0700 root bin 757 60323 985675960
1 f none postgresql/save_grant.cgi 0700 root bin 1045 14083 985675960
1 f none postgresql/save_group.cgi 0700 root bin 1287 41066 985675960
1 f none postgresql/save_host.cgi 0700 root bin 1988 26204 985675960
1 f none postgresql/save_user.cgi 0700 root bin 1240 33131 985675960
1 f none postgresql/start.cgi 0700 root bin 345 28536 985675959
1 f none postgresql/stop.cgi 0700 root bin 560 44882 985675959
1 f none postgresql/table_form.cgi 0700 root bin 1811 20324 985675959
1 f none postgresql/view_table.cgi 0700 root bin 5701 53493 985675959
1 i postinstall 406 37191 985676576
1 i preremove 285 23797 985676576
1 d none proc 0700 root bin
1 f none proc/acl_security.pl 0600 root bin 488 42218 985675922
1 f none proc/config-aix 0600 root bin 44 4242 985675922
1 f none proc/config-cobalt-linux 0600 root bin 45 4333 985675922
1 f none proc/config-corel-linux 0600 root bin 45 4333 985675922
1 f none proc/config-debian-linux 0600 root bin 45 4333 985675921
1 f none proc/config-freebsd 0600 root bin 47 4503 985675921
1 f none proc/config-hpux 0600 root bin 44 4225 985675921
1 f none proc/config-irix 0600 root bin 44 4242 985675922
1 f none proc/config-macos 0600 root bin 45 4300 985675921
1 f none proc/config-open-linux 0600 root bin 45 4333 985675922
1 f none proc/config-openserver 0600 root bin 44 4242 985675921
1 f none proc/config-osf1 0600 root bin 43 4101 985675922
1 f none proc/config-redhat-linux 0600 root bin 45 4333 985675921
1 f none proc/config-slackware-linux 0600 root bin 45 4333 985675921
1 f none proc/config-solaris 0600 root bin 44 4242 985675921
1 f none proc/config-suse-linux 0600 root bin 45 4333 985675921
1 f none proc/config-turbo-linux 0600 root bin 45 4333 985675922
1 f none proc/config-unixware 0600 root bin 44 4242 985675921
1 f none proc/config.info 0600 root bin 259 24006 985675921
1 f none proc/config.info.de 0600 root bin 313 29196 985675922
1 f none proc/config.info.es 0600 root bin 336 32015 985675922
1 f none proc/config.info.fr 0600 root bin 315 29481 985675922
1 f none proc/config.info.hu 0600 root bin 293 29930 985675922
1 f none proc/config.info.pl 0600 root bin 321 31751 985675922
1 f none proc/config.info.ru_RU 0600 root bin 333 54501 985675922
1 f none proc/config.info.ru_SU 0600 root bin 333 49596 985675922
1 f none proc/config.info.sv 0600 root bin 311 30774 985675922
1 f none proc/config.info.tr 0600 root bin 298 33075 985675922
1 f none proc/config.info.zh_CN 0600 root bin 214 28029 985675922
1 f none proc/config.info.zh_TW.Big5 0600 root bin 248 31411 985675922
1 f none proc/defaultacl 0600 root bin 17 1411 985675922
1 f none proc/edit_proc.cgi 0700 root bin 3686 32806 985675921
1 f none proc/freebsd-lib.pl 0600 root bin 1288 32558 985675921
1 d none proc/help 0700 root bin
1 f none proc/help/cmd.es.html 0600 root bin 268 23498 985675921
1 f none proc/help/cmd.fr.html 0600 root bin 315 29069 985675921
1 f none proc/help/cmd.html 0600 root bin 252 21766 985675921
1 f none proc/help/cmd.hu.html 0600 root bin 305 29028 985675922
1 f none proc/help/cmd.pl.html 0600 root bin 310 28863 985675922
1 f none proc/help/cmd.sv.html 0600 root bin 274 24966 985675921
1 f none proc/help/cmd.zh_TW.Big5.html 0600 root bin 224 26337 985675921
1 f none proc/help/cpu.es.html 0600 root bin 699 64377 985675921
1 f none proc/help/cpu.fr.html 0600 root bin 799 9819 985675921
1 f none proc/help/cpu.html 0600 root bin 648 58183 985675921
1 f none proc/help/cpu.hu.html 0600 root bin 698 3883 985675922
1 f none proc/help/cpu.pl.html 0600 root bin 792 12411 985675922
1 f none proc/help/cpu.sv.html 0600 root bin 613 58086 985675921
1 f none proc/help/cpu.zh_TW.Big5.html 0600 root bin 512 7083 985675921
1 f none proc/help/edit_proc.es.html 0600 root bin 1709 23936 985675921
1 f none proc/help/edit_proc.fr.html 0600 root bin 1789 36384 985675921
1 f none proc/help/edit_proc.html 0600 root bin 1576 8931 985675921
1 f none proc/help/edit_proc.hu.html 0600 root bin 1622 30657 985675922
1 f none proc/help/edit_proc.pl.html 0600 root bin 1772 39251 985675922
1 f none proc/help/edit_proc.sv.html 0600 root bin 1579 16966 985675921
1 f none proc/help/edit_proc.zh_TW.Big5.html 0600 root bin 1097 23020 985675921
1 f none proc/help/input.es.html 0600 root bin 242 22324 985675921
1 f none proc/help/input.fr.html 0600 root bin 139 12752 985675921
1 f none proc/help/input.html 0600 root bin 221 19885 985675921
1 f none proc/help/input.hu.html 0600 root bin 216 21120 985675922
1 f none proc/help/input.pl.html 0600 root bin 246 23634 985675922
1 f none proc/help/input.sv.html 0600 root bin 237 22461 985675921
1 f none proc/help/input.zh_TW.Big5.html 0600 root bin 161 22271 985675921
1 f none proc/help/intro.es.html 0600 root bin 1283 52771 985675921
1 f none proc/help/intro.fr.html 0600 root bin 1442 8027 985675921
1 f none proc/help/intro.html 0600 root bin 1138 37941 985675921
1 f none proc/help/intro.hu.html 0600 root bin 1316 3428 985675922
1 f none proc/help/intro.pl.html 0600 root bin 1301 61902 985675922
1 f none proc/help/intro.sv.html 0600 root bin 1113 42899 985675921
1 f none proc/help/intro.zh_TW.Big5.html 0600 root bin 825 53257 985675921
1 f none proc/help/mode.es.html 0600 root bin 417 37315 985675921
1 f none proc/help/mode.fr.html 0600 root bin 414 38829 985675921
1 f none proc/help/mode.html 0600 root bin 372 32806 985675921
1 f none proc/help/mode.hu.html 0600 root bin 376 38048 985675922
1 f none proc/help/mode.pl.html 0600 root bin 430 40256 985675922
1 f none proc/help/mode.sv.html 0600 root bin 337 32111 985675921
1 f none proc/help/mode.zh_TW.Big5.html 0600 root bin 278 38063 985675921
1 f none proc/help/nice.es.html 0600 root bin 499 45984 985675921
1 f none proc/help/nice.fr.html 0600 root bin 523 50397 985675921
1 f none proc/help/nice.html 0600 root bin 445 41008 985675921
1 f none proc/help/nice.hu.html 0600 root bin 436 44626 985675922
1 f none proc/help/nice.pl.html 0600 root bin 539 53989 985675922
1 f none proc/help/nice.sv.html 0600 root bin 457 45294 985675922
1 f none proc/help/nice.zh_TW.Big5.html 0600 root bin 358 54257 985675921
1 f none proc/help/overview.es.html 0600 root bin 87 8224 985675921
1 f none proc/help/overview.fr.html 0600 root bin 78 7267 985675921
1 f none proc/help/overview.html 0600 root bin 73 6679 985675921
1 f none proc/help/overview.hu.html 0600 root bin 90 9019 985675922
1 f none proc/help/overview.pl.html 0600 root bin 86 8157 985675922
1 f none proc/help/overview.sv.html 0600 root bin 68 6483 985675922
1 f none proc/help/overview.zh_TW.Big5.html 0600 root bin 66 8897 985675921
1 f none proc/help/run.es.html 0600 root bin 245 22755 985675921
1 f none proc/help/run.fr.html 0600 root bin 246 23254 985675921
1 f none proc/help/run.html 0600 root bin 231 20976 985675921
1 f none proc/help/run.hu.html 0600 root bin 247 24890 985675922
1 f none proc/help/run.pl.html 0600 root bin 302 30034 985675922
1 f none proc/help/run.sv.html 0600 root bin 235 22476 985675922
1 f none proc/help/run.zh_TW.Big5.html 0600 root bin 154 21978 985675921
1 f none proc/help/scpu.es.html 0600 root bin 141 12917 985675921
1 f none proc/help/scpu.fr.html 0600 root bin 192 18002 985675921
1 f none proc/help/scpu.html 0600 root bin 137 12406 985675921
1 f none proc/help/scpu.hu.html 0600 root bin 153 14998 985675922
1 f none proc/help/scpu.pl.html 0600 root bin 166 16639 985675922
1 f none proc/help/scpu.sv.html 0600 root bin 136 12733 985675922
1 f none proc/help/scpu.zh_TW.Big5.html 0600 root bin 106 13593 985675921
1 f none proc/help/search.es.html 0600 root bin 734 2343 985675921
1 f none proc/help/search.fr.html 0600 root bin 784 8279 985675921
1 f none proc/help/search.html 0600 root bin 665 59582 985675921
1 f none proc/help/search.hu.html 0600 root bin 701 4885 985675922
1 f none proc/help/search.pl.html 0600 root bin 786 12643 985675922
1 f none proc/help/search.sv.html 0600 root bin 669 64653 985675922
1 f none proc/help/search.zh_TW.Big5.html 0600 root bin 504 5798 985675921
1 f none proc/help/sfiles.es.html 0600 root bin 227 21110 985675921
1 f none proc/help/sfiles.fr.html 0600 root bin 270 25805 985675921
1 f none proc/help/sfiles.html 0600 root bin 208 18956 985675921
1 f none proc/help/sfiles.hu.html 0600 root bin 266 27099 985675922
1 f none proc/help/sfiles.pl.html 0600 root bin 239 23586 985675922
1 f none proc/help/sfiles.sv.html 0600 root bin 215 20537 985675922
1 f none proc/help/sfiles.zh_TW.Big5.html 0600 root bin 135 20006 985675921
1 f none proc/help/sfs.es.html 0600 root bin 451 42949 985675921
1 f none proc/help/sfs.fr.html 0600 root bin 428 41268 985675921
1 f none proc/help/sfs.html 0600 root bin 375 34611 985675921
1 f none proc/help/sfs.hu.html 0600 root bin 442 46091 985675922
1 f none proc/help/sfs.pl.html 0600 root bin 503 51106 985675922
1 f none proc/help/sfs.sv.html 0600 root bin 397 38359 985675922
1 f none proc/help/sfs.zh_TW.Big5.html 0600 root bin 219 33879 985675921
1 f none proc/help/signore.html 0600 root bin 240 21763 985675922
1 f none proc/help/signore.pl.html 0600 root bin 256 25885 985675922
1 f none proc/help/size.es.html 0600 root bin 808 10294 985675921
1 f none proc/help/size.fr.html 0600 root bin 805 11771 985675921
1 f none proc/help/size.html 0600 root bin 711 65079 985675921
1 f none proc/help/size.hu.html 0600 root bin 863 22590 985675922
1 f none proc/help/size.pl.html 0600 root bin 861 20805 985675922
1 f none proc/help/size.sv.html 0600 root bin 688 398 985675922
1 f none proc/help/size.zh_TW.Big5.html 0600 root bin 565 19558 985675921
1 f none proc/help/smatch.es.html 0600 root bin 259 24299 985675921
1 f none proc/help/smatch.fr.html 0600 root bin 293 27640 985675921
1 f none proc/help/smatch.html 0600 root bin 227 20836 985675921
1 f none proc/help/smatch.hu.html 0600 root bin 282 28162 985675922
1 f none proc/help/smatch.pl.html 0600 root bin 247 24406 985675922
1 f none proc/help/smatch.sv.html 0600 root bin 242 23088 985675922
1 f none proc/help/smatch.zh_TW.Big5.html 0600 root bin 160 20553 985675921
1 f none proc/help/suser.es.html 0600 root bin 132 12218 985675921
1 f none proc/help/suser.fr.html 0600 root bin 126 11708 985675921
1 f none proc/help/suser.html 0600 root bin 102 9127 985675921
1 f none proc/help/suser.hu.html 0600 root bin 144 14221 985675922
1 f none proc/help/suser.pl.html 0600 root bin 127 12626 985675922
1 f none proc/help/suser.sv.html 0600 root bin 103 9659 985675922
1 f none proc/help/suser.zh_TW.Big5.html 0600 root bin 77 10731 985675921
1 f none proc/help/tree.es.html 0600 root bin 335 30745 985675921
1 f none proc/help/tree.fr.html 0600 root bin 357 34136 985675921
1 f none proc/help/tree.html 0600 root bin 320 29040 985675921
1 f none proc/help/tree.hu.html 0600 root bin 339 33075 985675922
1 f none proc/help/tree.pl.html 0600 root bin 384 37356 985675922
1 f none proc/help/tree.sv.html 0600 root bin 305 29367 985675922
1 f none proc/help/tree.zh_TW.Big5.html 0600 root bin 256 35954 985675921
1 f none proc/help/user.es.html 0600 root bin 443 40824 985675921
1 f none proc/help/user.fr.html 0600 root bin 460 44455 985675921
1 f none proc/help/user.html 0600 root bin 381 34198 985675921
1 f none proc/help/user.hu.html 0600 root bin 395 39558 985675922
1 f none proc/help/user.pl.html 0600 root bin 454 44865 985675922
1 f none proc/help/user.sv.html 0600 root bin 328 31359 985675922
1 f none proc/help/user.zh_TW.Big5.html 0600 root bin 296 42704 985675921
1 f none proc/hpux-lib.pl 0600 root bin 1971 15417 985675921
1 d none proc/images 0700 root bin
1 f none proc/images/icon.gif 0600 root bin 359 41333 985675921
1 f none proc/index.cgi 0700 root bin 383 31342 985675921
1 f none proc/index_cpu.cgi 0700 root bin 972 9790 985675921
1 f none proc/index_run.cgi 0700 root bin 938 12868 985675922
1 f none proc/index_search.cgi 0700 root bin 5022 3277 985675921
1 f none proc/index_size.cgi 0700 root bin 1058 16395 985675921
1 f none proc/index_tree.cgi 0700 root bin 1113 22199 985675921
1 f none proc/index_user.cgi 0700 root bin 1047 16252 985675921
1 f none proc/kill_proc.cgi 0700 root bin 674 54071 985675921
1 f none proc/kill_proc_list.cgi 0700 root bin 745 60295 985675921
1 d none proc/lang 0700 root bin
1 f none proc/lang/de 0600 root bin 2055 65087 985675922
1 f none proc/lang/en 0600 root bin 2571 43133 985675922
1 f none proc/lang/es 0600 root bin 2850 4841 985675922
1 f none proc/lang/fr 0600 root bin 2155 17766 985675922
1 f none proc/lang/hu 0600 root bin 2012 9721 985675922
1 f none proc/lang/pl 0600 root bin 2874 19147 985675922
1 f none proc/lang/pt 0600 root bin 2171 13786 985675922
1 f none proc/lang/ru_RU 0600 root bin 1983 48100 985675922
1 f none proc/lang/ru_SU 0600 root bin 2011 26152 985675922
1 f none proc/lang/sv 0600 root bin 2706 64192 985675922
1 f none proc/lang/tr 0600 root bin 2253 42843 985675922
1 f none proc/lang/zh_CN 0600 root bin 2035 58854 985675922
1 f none proc/lang/zh_TW.Big5 0600 root bin 1697 16282 985675922
1 f none proc/linux-lib.pl 0600 root bin 4333 3361 985675921
1 f none proc/log_parser.pl 0600 root bin 977 9199 985675922
1 f none proc/low.skill 0600 root bin 9 770 985675922
1 f none proc/macos-lib.pl 0600 root bin 1645 55250 985675922
1 f none proc/medium.risk 0600 root bin 21 1904 985675922
1 f none proc/medium.skill 0600 root bin 9 770 985675922
1 f none proc/module.info 0600 root bin 589 63749 985675921
1 f none proc/osf-lib.pl 0600 root bin 1920 18204 985675922
1 f none proc/proc-lib.pl 0600 root bin 4378 11425 985675921
1 f none proc/renice_proc.cgi 0700 root bin 289 24582 985675921
1 f none proc/run.cgi 0700 root bin 810 62789 985675921
1 f none proc/sysv-lib.pl 0600 root bin 2276 47447 985675921
1 f none prototype 0644 root other 265370 42913 985676576
1 d none quota 0700 root bin
1 f none quota/acl_security.pl 0600 root bin 4989 9213 985675925
1 f none quota/activate.cgi 0700 root bin 632 51940 985675925
1 f none quota/check_quotas.cgi 0700 root bin 672 58153 985675925
1 f none quota/cobalt-linux-lib.pl 0600 root bin 9461 31073 985675925
1 f none quota/config-cobalt-linux 0600 root bin 521 50202 985675925
1 f none quota/config-corel-linux 0600 root bin 521 50202 985675925
1 f none quota/config-debian-linux 0600 root bin 521 50202 985675925
1 f none quota/config-freebsd 0600 root bin 515 49828 985675925
1 f none quota/config-hpux 0600 root bin 256 25432 985675925
1 f none quota/config-open-linux 0600 root bin 521 50202 985675925
1 f none quota/config-openbsd 0600 root bin 515 49828 985675925
1 f none quota/config-redhat-linux 0600 root bin 521 50202 985675925
1 f none quota/config-slackware-linux 0600 root bin 521 50202 985675925
1 f none quota/config-solaris 0600 root bin 256 25432 985675925
1 f none quota/config-suse-linux 0600 root bin 521 50202 985675925
1 f none quota/config-turbo-linux 0600 root bin 521 50202 985675925
1 f none quota/config-unixware 0600 root bin 256 25432 985675925
1 f none quota/config.info 0600 root bin 882 18329 985675925
1 f none quota/config.info.de 0600 root bin 1123 42607 985675925
1 f none quota/config.info.es 0600 root bin 1017 31761 985675925
1 f none quota/config.info.fr 0600 root bin 1107 40559 985675925
1 f none quota/config.info.pl 0600 root bin 1023 37220 985675925
1 f none quota/config.info.ru_RU 0600 root bin 1081 56174 985675925
1 f none quota/config.info.ru_SU 0600 root bin 1081 37794 985675925
1 f none quota/config.info.sv 0600 root bin 1102 45610 985675925
1 f none quota/config.info.tr 0600 root bin 1016 42203 985675925
1 f none quota/config.info.zh_CN 0600 root bin 750 46673 985675925
1 f none quota/config.info.zh_TW.Big5 0600 root bin 695 25140 985675925
1 f none quota/copy_group.cgi 0700 root bin 1286 39779 985675925
1 f none quota/copy_group_form.cgi 0700 root bin 1119 31767 985675925
1 f none quota/copy_user.cgi 0700 root bin 1205 34157 985675925
1 f none quota/copy_user_form.cgi 0700 root bin 1107 30665 985675925
1 f none quota/corel-linux-lib.pl 0600 root bin 9461 31073 985675925
1 f none quota/debian-linux-lib.pl 0600 root bin 9461 31073 985675925
1 f none quota/defaultacl 0600 root bin 86 7305 985675925
1 f none quota/edgrace.pl 0700 root bin 454 34487 985675925
1 f none quota/edit_group_quota.cgi 0700 root bin 2301 64668 985675925
1 f none quota/edit_user_quota.cgi 0700 root bin 2274 61727 985675925
1 f none quota/edquota.pl 0700 root bin 482 36195 985675925
1 f none quota/freebsd-lib.pl 0600 root bin 9057 62429 985675925
1 f none quota/group_filesys.cgi 0700 root bin 2532 14849 985675925
1 f none quota/group_grace_form.cgi 0700 root bin 1795 18415 985675925
1 f none quota/group_grace_save.cgi 0700 root bin 780 65444 985675925
1 d none quota/help 0700 root bin
1 f none quota/help/copy_group.es.html 0600 root bin 577 53059 985675925
1 f none quota/help/copy_group.fr.html 0600 root bin 540 49430 985675925
1 f none quota/help/copy_group.html 0600 root bin 508 45349 985675925
1 f none quota/help/copy_group.pl.html 0600 root bin 569 54091 985675925
1 f none quota/help/copy_group.sv.html 0600 root bin 547 50592 985675925
1 f none quota/help/copy_group.zh_TW.Big5.html 0600 root bin 355 49939 985675925
1 f none quota/help/copy_user.es.html 0600 root bin 614 56810 985675925
1 f none quota/help/copy_user.fr.html 0600 root bin 574 53147 985675925
1 f none quota/help/copy_user.html 0600 root bin 528 47118 985675925
1 f none quota/help/copy_user.pl.html 0600 root bin 682 2124 985675925
1 f none quota/help/copy_user.sv.html 0600 root bin 592 55783 985675925
1 f none quota/help/copy_user.zh_TW.Big5.html 0600 root bin 374 54457 985675925
1 f none quota/help/edit_group_quota.es.html 0600 root bin 223 20494 985675925
1 f none quota/help/edit_group_quota.fr.html 0600 root bin 207 19511 985675925
1 f none quota/help/edit_group_quota.html 0600 root bin 189 16785 985675925
1 f none quota/help/edit_group_quota.pl.html 0600 root bin 240 23810 985675925
1 f none quota/help/edit_group_quota.sv.html 0600 root bin 225 22089 985675925
1 f none quota/help/edit_group_quota.zh_TW.Big5.html 0600 root bin 141 21101 985675925
1 f none quota/help/edit_user_quota.es.html 0600 root bin 227 20932 985675925
1 f none quota/help/edit_user_quota.fr.html 0600 root bin 185 17415 985675925
1 f none quota/help/edit_user_quota.html 0600 root bin 187 16565 985675925
1 f none quota/help/edit_user_quota.pl.html 0600 root bin 253 25386 985675925
1 f none quota/help/edit_user_quota.sv.html 0600 root bin 232 23113 985675925
1 f none quota/help/edit_user_quota.zh_TW.Big5.html 0600 root bin 145 21961 985675925
1 f none quota/help/group_filesys.es.html 0600 root bin 687 63536 985675925
1 f none quota/help/group_filesys.fr.html 0600 root bin 708 483 985675925
1 f none quota/help/group_filesys.html 0600 root bin 600 54307 985675925
1 f none quota/help/group_filesys.pl.html 0600 root bin 700 3819 985675925
1 f none quota/help/group_filesys.sv.html 0600 root bin 572 55884 985675925
1 f none quota/help/group_filesys.zh_TW.Big5.html 0600 root bin 421 62783 985675925
1 f none quota/help/group_grace.es.html 0600 root bin 500 46515 985675925
1 f none quota/help/group_grace.fr.html 0600 root bin 354 32867 985675925
1 f none quota/help/group_grace.html 0600 root bin 405 36925 985675925
1 f none quota/help/group_grace.pl.html 0600 root bin 528 52581 985675925
1 f none quota/help/group_grace.sv.html 0600 root bin 422 41634 985675925
1 f none quota/help/group_grace.zh_TW.Big5.html 0600 root bin 219 33145 985675925
1 f none quota/help/intro.es.html 0600 root bin 2901 7513 985675925
1 f none quota/help/intro.fr.html 0600 root bin 2472 31164 985675925
1 f none quota/help/intro.html 0600 root bin 2358 16768 985675925
1 f none quota/help/intro.pl.html 0600 root bin 2893 26861 985675925
1 f none quota/help/intro.sv.html 0600 root bin 2258 23094 985675925
1 f none quota/help/intro.zh_TW.Big5.html 0600 root bin 1727 58000 985675925
1 f none quota/help/list_groups.es.html 0600 root bin 1454 4279 985675925
1 f none quota/help/list_groups.fr.html 0600 root bin 1442 4451 985675925
1 f none quota/help/list_groups.html 0600 root bin 1208 43466 985675925
1 f none quota/help/list_groups.pl.html 0600 root bin 1383 7862 985675925
1 f none quota/help/list_groups.sv.html 0600 root bin 1286 61222 985675925
1 f none quota/help/list_users.es.html 0600 root bin 1268 52893 985675925
1 f none quota/help/list_users.fr.html 0600 root bin 1232 49835 985675925
1 f none quota/help/list_users.html 0600 root bin 1024 26533 985675925
1 f none quota/help/list_users.pl.html 0600 root bin 1262 63634 985675925
1 f none quota/help/list_users.sv.html 0600 root bin 1143 48400 985675925
1 f none quota/help/list_users.zh_TW.Big5.html 0600 root bin 674 36211 985675925
1 f none quota/help/user_filesys.es.html 0600 root bin 683 63380 985675925
1 f none quota/help/user_filesys.fr.html 0600 root bin 705 121 985675925
1 f none quota/help/user_filesys.html 0600 root bin 594 53647 985675925
1 f none quota/help/user_filesys.pl.html 0600 root bin 745 9311 985675925
1 f none quota/help/user_filesys.sv.html 0600 root bin 591 58455 985675925
1 f none quota/help/user_filesys.zh_TW.Big5.html 0600 root bin 431 64933 985675925
1 f none quota/help/user_grace.es.html 0600 root bin 493 45940 985675925
1 f none quota/help/user_grace.fr.html 0600 root bin 356 32994 985675925
1 f none quota/help/user_grace.html 0600 root bin 402 36527 985675925
1 f none quota/help/user_grace.pl.html 0600 root bin 545 54678 985675925
1 f none quota/help/user_grace.sv.html 0600 root bin 432 42970 985675925
1 f none quota/help/user_grace.zh_TW.Big5.html 0600 root bin 221 33901 985675925
1 f none quota/hpux-lib.pl 0600 root bin 6232 32672 985675925
1 d none quota/images 0700 root bin
1 f none quota/images/icon.gif 0600 root bin 334 40887 985675923
1 f none quota/index.cgi 0700 root bin 2901 35198 985675925
1 d none quota/lang 0700 root bin
1 f none quota/lang/en 0600 root bin 8246 57845 985675925
1 f none quota/lang/es 0600 root bin 9627 929 985675925
1 f none quota/lang/pl 0600 root bin 9555 42333 985675925
1 f none quota/lang/pt 0600 root bin 26 2615 985675925
1 f none quota/lang/sv 0600 root bin 8487 58586 985675925
1 f none quota/lang/tr 0600 root bin 9263 43782 985675925
1 f none quota/lang/zh_CN 0600 root bin 6308 43714 985675925
1 f none quota/linux-lib.pl 0600 root bin 9461 31073 985675925
1 f none quota/list_groups.cgi 0700 root bin 3106 64691 985675925
1 f none quota/list_users.cgi 0700 root bin 4108 15567 985675924
1 f none quota/log_parser.pl 0600 root bin 1211 31705 985675925
1 f none quota/module.info 0600 root bin 493 51625 985675923
1 f none quota/notes 0700 root bin 1737 27368 985675925
1 f none quota/open-linux-lib.pl 0600 root bin 9461 31073 985675925
1 f none quota/openbsd-lib.pl 0600 root bin 9057 62429 985675925
1 f none quota/quota-lib.pl 0700 root bin 5090 16066 985675925
1 f none quota/redhat-linux-lib.pl 0600 root bin 9461 31073 985675925
1 f none quota/save_group_quota.cgi 0700 root bin 658 55975 985675925
1 f none quota/save_sync.cgi 0700 root bin 730 61349 985675925
1 f none quota/save_user_quota.cgi 0700 root bin 639 54197 985675925
1 f none quota/slackware-linux-lib.pl 0600 root bin 9461 31073 985675925
1 f none quota/solaris-lib.pl 0700 root bin 6511 53995 985675925
1 f none quota/suse-linux-lib.pl 0600 root bin 9461 31073 985675925
1 f none quota/turbo-linux-lib.pl 0600 root bin 9461 31073 985675925
1 f none quota/unixware-lib.pl 0700 root bin 6338 43042 985675925
1 f none quota/user_filesys.cgi 0700 root bin 2519 13351 985675925
1 f none quota/user_grace_form.cgi 0700 root bin 1789 17881 985675925
1 f none quota/user_grace_save.cgi 0700 root bin 775 64964 985675925
1 f none quota/useradmin_update.pl 0600 root bin 968 13729 985675925
1 d none raid 0700 root bin
1 f none raid/config 0600 root bin 41 3842 985675953
1 f none raid/config.info 0600 root bin 67 5959 985675953
1 f none raid/config.info.de 0600 root bin 68 6160 985675953
1 f none raid/config.info.es 0600 root bin 86 7678 985675953
1 f none raid/config.info.pl 0600 root bin 76 6748 985675953
1 f none raid/config.info.ru_RU 0600 root bin 70 10931 985675953
1 f none raid/config.info.ru_SU 0600 root bin 70 9837 985675953
1 f none raid/config.info.sv 0600 root bin 72 6944 985675953
1 f none raid/config.info.tr 0600 root bin 73 7328 985675953
1 f none raid/config.info.zh_CN 0600 root bin 52 6474 985675953
1 f none raid/config.info.zh_TW.Big5 0600 root bin 55 7500 985675953
1 f none raid/create_raid.cgi 0700 root bin 1995 22040 985675953
1 d none raid/images 0700 root bin
1 f none raid/images/0.gif 0600 root bin 556 65328 985675953
1 f none raid/images/0.ia.gif 0600 root bin 556 64702 985675953
1 f none raid/images/1.gif 0600 root bin 573 4807 985675953
1 f none raid/images/1.ia.gif 0600 root bin 573 4297 985675953
1 f none raid/images/4.gif 0600 root bin 1283 33606 985675953
1 f none raid/images/4.ia.gif 0600 root bin 1284 35876 985675953
1 f none raid/images/5.gif 0600 root bin 1211 18091 985675953
1 f none raid/images/5.ia.gif 0600 root bin 1209 15450 985675953
1 f none raid/images/disk.gif 0600 root bin 219 24798 985675953
1 f none raid/images/icon.gif 0600 root bin 1547 64202 985675953
1 f none raid/images/linear.gif 0600 root bin 571 65116 985675953
1 f none raid/images/linear.ia.gif 0600 root bin 571 64481 985675953
1 f none raid/index.cgi 0700 root bin 1369 46481 985675953
1 d none raid/lang 0700 root bin
1 f none raid/lang/de 0600 root bin 2691 54339 985675953
1 f none raid/lang/en 0600 root bin 2407 24323 985675953
1 f none raid/lang/es 0600 root bin 2802 63944 985675953
1 f none raid/lang/pl 0600 root bin 2665 61800 985675953
1 f none raid/lang/ru_RU 0600 root bin 2549 5030 985675953
1 f none raid/lang/ru_SU 0600 root bin 2555 36483 985675953
1 f none raid/lang/sv 0600 root bin 2534 44517 985675953
1 f none raid/lang/zh_CN 0600 root bin 1883 40552 985675953
1 f none raid/lang/zh_TW.Big5 0600 root bin 2013 62973 985675953
1 f none raid/log_parser.pl 0600 root bin 767 64096 985675953
1 f none raid/mkfs.cgi 0700 root bin 1043 19958 985675953
1 f none raid/module.info 0600 root bin 378 35991 985675953
1 f none raid/raid-lib.pl 0600 root bin 4079 50924 985675953
1 f none raid/raid_form.cgi 0700 root bin 4548 37021 985675953
1 f none raid/save_raid.cgi 0700 root bin 1388 48281 985675953
1 f none raid/view_raid.cgi 0700 root bin 3782 36978 985675953
1 f none referer_save.cgi 0700 root bin 315 27093 985675910
1 f none rpc.cgi 0700 root bin 2959 30773 985675910
1 d none samba 0700 root bin
1 f none samba/acl_security.pl 0600 root bin 10804 31485 985675918
1 f none samba/ask_epass.cgi 0700 root bin 1524 1960 985675917
1 f none samba/conf_misc.cgi 0700 root bin 5061 32532 985675917
1 f none samba/conf_net.cgi 0700 root bin 4693 56241 985675917
1 f none samba/conf_pass.cgi 0700 root bin 3788 51616 985675917
1 f none samba/conf_print.cgi 0700 root bin 2353 1234 985675917
1 f none samba/conf_smb.cgi 0700 root bin 6343 3950 985675917
1 f none samba/config-aix 0600 root bin 429 41359 985675917
1 f none samba/config-cobalt-linux 0600 root bin 435 41149 985675917
1 f none samba/config-corel-linux 0600 root bin 413 38952 985675917
1 f none samba/config-debian-linux 0600 root bin 401 37827 985675917
1 f none samba/config-debian-linux-2.1 0600 root bin 413 38952 985675917
1 f none samba/config-debian-linux-2.2 0600 root bin 413 38952 985675917
1 f none samba/config-freebsd 0600 root bin 547 51784 985675917
1 f none samba/config-hpux 0600 root bin 456 43935 985675917
1 f none samba/config-irix 0600 root bin 475 45750 985675917
1 f none samba/config-lfs-linux 0600 root bin 435 41149 985675917
1 f none samba/config-macos 0600 root bin 503 47509 985675918
1 f none samba/config-open-linux 0600 root bin 499 47543 985675917
1 f none samba/config-openbsd 0600 root bin 547 51784 985675917
1 f none samba/config-openserver 0600 root bin 475 45750 985675917
1 f none samba/config-osf1 0600 root bin 475 45750 985675917
1 f none samba/config-redhat-linux 0600 root bin 507 47719 985675917
1 f none samba/config-redhat-linux-7.0 0600 root bin 563 53042 985675917
1 f none samba/config-redhat-linux-7.1 0600 root bin 563 53042 985675918
1 f none samba/config-slackware-linux 0600 root bin 474 44837 985675917
1 f none samba/config-slackware-linux-7.0 0600 root bin 492 46598 985675917
1 f none samba/config-slackware-linux-7.1 0600 root bin 492 46598 985675918
1 f none samba/config-solaris 0600 root bin 475 45750 985675917
1 f none samba/config-suse-linux 0600 root bin 521 49329 985675917
1 f none samba/config-turbo-linux 0600 root bin 435 41149 985675917
1 f none samba/config-unixware 0600 root bin 475 45750 985675917
1 f none samba/config.info 0600 root bin 514 47607 985675917
1 f none samba/config.info.es 0600 root bin 655 62037 985675917
1 f none samba/config.info.fr 0600 root bin 504 46405 985675917
1 f none samba/config.info.pl 0600 root bin 609 59134 985675917
1 f none samba/config.info.ru_RU 0600 root bin 436 1079 985675918
1 f none samba/config.info.ru_SU 0600 root bin 436 61267 985675917
1 f none samba/config.info.sv 0600 root bin 610 61564 985675917
1 f none samba/config.info.tr 0600 root bin 424 42760 985675917
1 f none samba/config.info.zh_CN 0600 root bin 436 56579 985675917
1 f none samba/config.info.zh_TW.Big5 0600 root bin 383 47132 985675917
1 f none samba/create_copy.cgi 0700 root bin 903 11212 985675917
1 f none samba/defaultacl 0600 root bin 289 25584 985675917
1 f none samba/delete_euser.cgi 0700 root bin 523 45083 985675917
1 f none samba/delete_share.cgi 0700 root bin 691 58895 985675917
1 f none samba/edit_epass.cgi 0700 root bin 1025 17402 985675917
1 f none samba/edit_euser.cgi 0700 root bin 3091 62485 985675917
1 f none samba/edit_fmisc.cgi 0700 root bin 3350 20568 985675917
1 f none samba/edit_fname.cgi 0700 root bin 2395 5456 985675917
1 f none samba/edit_fperm.cgi 0700 root bin 2381 5251 985675917
1 f none samba/edit_fshare.cgi 0700 root bin 3903 55750 985675917
1 f none samba/edit_popts.cgi 0700 root bin 3932 4762 985675917
1 f none samba/edit_pshare.cgi 0700 root bin 4405 29662 985675917
1 f none samba/edit_sec.cgi 0700 root bin 5776 26664 985675917
1 f none samba/edit_sync.cgi 0700 root bin 999 20191 985675917
1 d none samba/help 0700 root bin
1 f none samba/help/help.es.html 0600 root bin 9123 31020 985675917
1 f none samba/help/help.html 0600 root bin 8975 13575 985675917
1 f none samba/help/help.sv.html 0600 root bin 9205 34553 985675917
1 d none samba/images 0700 root bin
1 f none samba/images/icon.gif 0600 root bin 1089 52489 985675917
1 f none samba/images/icon_0.gif 0600 root bin 313 36739 985675917
1 f none samba/images/icon_1.gif 0600 root bin 333 38555 985675917
1 f none samba/images/icon_2.gif 0600 root bin 275 34570 985675917
1 f none samba/images/icon_3.gif 0600 root bin 330 38844 985675917
1 f none samba/images/icon_4.gif 0600 root bin 460 53918 985675917
1 f none samba/images/icon_5.gif 0600 root bin 327 38178 985675917
1 f none samba/images/icon_6.gif 0600 root bin 380 41077 985675917
1 f none samba/images/icon_7.gif 0600 root bin 332 37563 985675917
1 f none samba/images/icon_8.gif 0600 root bin 493 57210 985675917
1 f none samba/images/icon_9.gif 0600 root bin 1163 25692 985675917
1 f none samba/index.cgi 0700 root bin 6681 17449 985675917
1 f none samba/kill_user.cgi 0700 root bin 776 429 985675917
1 d none samba/lang 0700 root bin
1 f none samba/lang/en 0600 root bin 17602 32197 985675917
1 f none samba/lang/es 0600 root bin 18231 49622 985675917
1 f none samba/lang/pl 0600 root bin 20602 48683 985675917
1 f none samba/lang/ru_RU 0600 root bin 14705 21523 985675917
1 f none samba/lang/ru_SU 0600 root bin 14742 62712 985675917
1 f none samba/lang/sv 0600 root bin 20088 49601 985675917
1 f none samba/lang/tr 0600 root bin 16008 20078 985675917
1 f none samba/lang/zh_CN 0600 root bin 11342 30723 985675917
1 f none samba/log_parser.pl 0600 root bin 1310 41491 985675918
1 f none samba/make_epass.cgi 0700 root bin 3356 53833 985675917
1 f none samba/module.info 0600 root bin 709 6554 985675917
1 f none samba/opts.pl.dev 0600 root bin 6524 9621 985675917
1 f none samba/restart.cgi 0700 root bin 981 17750 985675917
1 f none samba/samba-lib.pl 0600 root bin 14012 46639 985675917
1 f none samba/save_copy.cgi 0700 root bin 722 61764 985675917
1 f none samba/save_euser.cgi 0700 root bin 1594 64664 985675917
1 f none samba/save_fmisc.cgi 0700 root bin 1378 55368 985675917
1 f none samba/save_fname.cgi 0700 root bin 1071 28506 985675917
1 f none samba/save_fperm.cgi 0700 root bin 1169 37486 985675917
1 f none samba/save_fshare.cgi 0700 root bin 1909 26313 985675917
1 f none samba/save_misc.cgi 0700 root bin 2160 53541 985675917
1 f none samba/save_net.cgi 0700 root bin 2008 27882 985675917
1 f none samba/save_pass.cgi 0700 root bin 2372 61036 985675917
1 f none samba/save_popts.cgi 0700 root bin 1288 48373 985675917
1 f none samba/save_print.cgi 0700 root bin 977 18657 985675917
1 f none samba/save_pshare.cgi 0700 root bin 2046 35086 985675917
1 f none samba/save_sec.cgi 0700 root bin 2069 40657 985675917
1 f none samba/save_smb.cgi 0700 root bin 2232 54548 985675917
1 f none samba/save_sync.cgi 0700 root bin 646 55528 985675917
1 f none samba/start.cgi 0700 root bin 788 2266 985675917
1 f none samba/swat.cgi 0700 root bin 3099 53606 985675917
1 f none samba/swat_save.cgi 0700 root bin 574 49015 985675917
1 f none samba/useradmin_update.pl 0600 root bin 2519 634 985675917
1 f none samba/view_users.cgi 0700 root bin 1822 18017 985675917
1 d none sendmail 0700 root bin
1 f none sendmail/access-lib.pl 0600 root bin 4391 20000 985675932
1 f none sendmail/acl_security.pl 0600 root bin 10693 15535 985675932
1 f none sendmail/aliases-lib.pl 0600 root bin 5713 45883 985675932
1 f none sendmail/autoreply.pl 0700 root bin 1730 1061 985675933
1 f none sendmail/boxes-lib.pl 0600 root bin 17770 6798 985675932
1 f none sendmail/config-aix 0600 root bin 305 27757 985675932
1 f none sendmail/config-cobalt-linux 0600 root bin 315 29688 985675933
1 f none sendmail/config-corel-linux 0600 root bin 262 24464 985675932
1 f none sendmail/config-debian-linux 0600 root bin 257 23998 985675932
1 f none sendmail/config-debian-linux-2.1 0600 root bin 262 24464 985675932
1 f none sendmail/config-debian-linux-2.2 0600 root bin 262 24464 985675932
1 f none sendmail/config-freebsd 0600 root bin 296 27715 985675932
1 f none sendmail/config-freebsd-4.0 0600 root bin 301 28181 985675933
1 f none sendmail/config-freebsd-5.0 0600 root bin 301 28181 985675933
1 f none sendmail/config-hpux 0600 root bin 259 24367 985675932
1 f none sendmail/config-irix 0600 root bin 331 30992 985675932
1 f none sendmail/config-macos 0600 root bin 290 27317 985675932
1 f none sendmail/config-macos-1.3 0600 root bin 295 27783 985675933
1 f none sendmail/config-open-linux 0600 root bin 305 28642 985675932
1 f none sendmail/config-open-linux-2.5 0600 root bin 310 29108 985675932
1 f none sendmail/config-open-linux-3.1e 0600 root bin 310 29108 985675933
1 f none sendmail/config-openbsd 0600 root bin 273 25715 985675932
1 f none sendmail/config-openserver 0600 root bin 300 28337 985675932
1 f none sendmail/config-redhat-linux 0600 root bin 315 29688 985675932
1 f none sendmail/config-slackware-linux 0600 root bin 257 23998 985675932
1 f none sendmail/config-solaris 0600 root bin 300 28337 985675932
1 f none sendmail/config-solaris-7 0600 root bin 389 36802 985675932
1 f none sendmail/config-solaris-8 0600 root bin 389 36802 985675933
1 f none sendmail/config-suse-linux 0600 root bin 257 23998 985675932
1 f none sendmail/config-turbo-linux 0600 root bin 315 29688 985675933
1 f none sendmail/config-unixware 0600 root bin 300 28337 985675932
1 f none sendmail/config.info 0600 root bin 1146 39607 985675931
1 f none sendmail/config.info.de 0600 root bin 1179 43099 985675932
1 f none sendmail/config.info.es 0600 root bin 1307 55664 985675932
1 f none sendmail/config.info.fr 0600 root bin 1025 31251 985675932
1 f none sendmail/config.info.pl 0600 root bin 1186 48767 985675932
1 f none sendmail/config.info.ru_RU 0600 root bin 905 10762 985675933
1 f none sendmail/config.info.ru_SU 0600 root bin 905 63796 985675932
1 f none sendmail/config.info.sv 0600 root bin 1138 44875 985675931
1 f none sendmail/config.info.tr 0600 root bin 1121 50806 985675932
1 f none sendmail/config.info.zh_CN 0600 root bin 842 51957 985675932
1 f none sendmail/config.info.zh_TW.Big5 0600 root bin 901 56650 985675934
1 f none sendmail/defaultacl 0600 root bin 237 19197 985675932
1 f none sendmail/del_mailq.cgi 0700 root bin 693 55120 985675932
1 f none sendmail/del_mailqs.cgi 0700 root bin 922 8272 985675933
1 f none sendmail/delete_mail.cgi 0700 root bin 654 55834 985675932
1 f none sendmail/detach.cgi 0700 root bin 366 30830 985675933
1 f none sendmail/domain-lib.pl 0600 root bin 3096 50265 985675932
1 f none sendmail/edit_access.cgi 0700 root bin 418 35797 985675932
1 f none sendmail/edit_afile.cgi 0700 root bin 902 10220 985675932
1 f none sendmail/edit_alias.cgi 0700 root bin 631 53183 985675932
1 f none sendmail/edit_domain.cgi 0700 root bin 418 36010 985675932
1 f none sendmail/edit_file.cgi 0700 root bin 2437 6606 985675934
1 f none sendmail/edit_generic.cgi 0700 root bin 509 43511 985675932
1 f none sendmail/edit_mailer.cgi 0700 root bin 420 36417 985675932
1 f none sendmail/edit_rfile.cgi 0700 root bin 904 10577 985675932
1 f none sendmail/edit_virtuser.cgi 0700 root bin 521 45325 985675932
1 f none sendmail/flushq.cgi 0700 root bin 512 42406 985675932
1 f none sendmail/generics-lib.pl 0600 root bin 3142 55912 985675932
1 d none sendmail/help 0700 root bin
1 f none sendmail/help/alias_enabled.es.html 0600 root bin 158 14528 985675932
1 f none sendmail/help/alias_enabled.fr.html 0600 root bin 152 14392 985675932
1 f none sendmail/help/alias_enabled.html 0600 root bin 146 13259 985675932
1 f none sendmail/help/alias_enabled.pl.html 0600 root bin 168 15991 985675932
1 f none sendmail/help/alias_enabled.ru_RU.html 0600 root bin 160 29950 985675932
1 f none sendmail/help/alias_enabled.ru_SU.html 0600 root bin 160 26642 985675932
1 f none sendmail/help/alias_enabled.sv.html 0600 root bin 162 15168 985675932
1 f none sendmail/help/alias_enabled.zh_TW.Big5.html 0600 root bin 101 12885 985675932
1 f none sendmail/help/alias_name.es.html 0600 root bin 229 20851 985675932
1 f none sendmail/help/alias_name.fr.html 0600 root bin 206 18230 985675932
1 f none sendmail/help/alias_name.html 0600 root bin 184 16205 985675932
1 f none sendmail/help/alias_name.pl.html 0600 root bin 194 18214 985675932
1 f none sendmail/help/alias_name.ru_RU.html 0600 root bin 213 34525 985675932
1 f none sendmail/help/alias_name.ru_SU.html 0600 root bin 213 31107 985675932
1 f none sendmail/help/alias_name.sv.html 0600 root bin 204 19545 985675932
1 f none sendmail/help/alias_name.zh_TW.Big5.html 0600 root bin 150 18129 985675932
1 f none sendmail/help/alias_to.es.html 0600 root bin 1054 28458 985675932
1 f none sendmail/help/alias_to.fr.html 0600 root bin 923 19327 985675932
1 f none sendmail/help/alias_to.html 0600 root bin 938 16585 985675932
1 f none sendmail/help/alias_to.pl.html 0600 root bin 1071 36829 985675932
1 f none sendmail/help/alias_to.ru_RU.html 0600 root bin 1013 53201 985675932
1 f none sendmail/help/alias_to.ru_SU.html 0600 root bin 1013 32931 985675932
1 f none sendmail/help/alias_to.sv.html 0600 root bin 941 20203 985675932
1 f none sendmail/help/alias_to.zh_TW.Big5.html 0600 root bin 655 23935 985675932
1 f none sendmail/help/aliases.es.html 0600 root bin 1087 34379 985675932
1 f none sendmail/help/aliases.fr.html 0600 root bin 1073 33899 985675932
1 f none sendmail/help/aliases.html 0600 root bin 981 22987 985675932
1 f none sendmail/help/aliases.pl.html 0600 root bin 1096 41048 985675932
1 f none sendmail/help/aliases.ru_RU.html 0600 root bin 1113 2776 985675932
1 f none sendmail/help/aliases.ru_SU.html 0600 root bin 1113 46479 985675932
1 f none sendmail/help/aliases.sv.html 0600 root bin 950 24703 985675932
1 f none sendmail/help/aliases.zh_TW.Big5.html 0600 root bin 731 30339 985675932
1 f none sendmail/help/edit_alias.es.html 0600 root bin 240 22050 985675932
1 f none sendmail/help/edit_alias.fr.html 0600 root bin 120 11011 985675932
1 f none sendmail/help/edit_alias.html 0600 root bin 203 18026 985675932
1 f none sendmail/help/edit_alias.pl.html 0600 root bin 210 20437 985675932
1 f none sendmail/help/edit_alias.ru_RU.html 0600 root bin 248 46163 985675932
1 f none sendmail/help/edit_alias.ru_SU.html 0600 root bin 248 41095 985675932
1 f none sendmail/help/edit_alias.sv.html 0600 root bin 196 18239 985675932
1 f none sendmail/help/edit_alias.zh_TW.Big5.html 0600 root bin 153 19795 985675932
1 f none sendmail/help/intro.es.html 0600 root bin 2176 5704 985675932
1 f none sendmail/help/intro.fr.html 0600 root bin 2114 518 985675932
1 f none sendmail/help/intro.html 0600 root bin 1914 42152 985675932
1 f none sendmail/help/intro.pl.html 0600 root bin 2253 25078 985675932
1 f none sendmail/help/intro.ru_RU.html 0600 root bin 2294 23137 985675932
1 f none sendmail/help/intro.ru_SU.html 0600 root bin 2294 42000 985675932
1 f none sendmail/help/intro.sv.html 0600 root bin 1874 46282 985675932
1 f none sendmail/help/intro.zh_TW.Big5.html 0600 root bin 1335 50205 985675932
1 f none sendmail/help/opt_ConnectionRateThrottle.es.html 0600 root bin 230 21702 985675932
1 f none sendmail/help/opt_ConnectionRateThrottle.fr.html 0600 root bin 221 20943 985675932
1 f none sendmail/help/opt_ConnectionRateThrottle.html 0600 root bin 207 18846 985675932
1 f none sendmail/help/opt_ConnectionRateThrottle.pl.html 0600 root bin 296 30036 985675932
1 f none sendmail/help/opt_ConnectionRateThrottle.ru_RU.html 0600 root bin 231 44231 985675932
1 f none sendmail/help/opt_ConnectionRateThrottle.ru_SU.html 0600 root bin 231 38999 985675932
1 f none sendmail/help/opt_ConnectionRateThrottle.sv.html 0600 root bin 250 23625 985675932
1 f none sendmail/help/opt_ConnectionRateThrottle.zh_TW.Big5.html 0600 root bin 150 21482 985675932
1 f none sendmail/help/opt_DH.es.html 0600 root bin 356 33710 985675932
1 f none sendmail/help/opt_DH.fr.html 0600 root bin 367 35430 985675932
1 f none sendmail/help/opt_DH.html 0600 root bin 301 27492 985675932
1 f none sendmail/help/opt_DH.pl.html 0600 root bin 370 37509 985675932
1 f none sendmail/help/opt_DH.ru_RU.html 0600 root bin 366 5034 985675932
1 f none sendmail/help/opt_DH.ru_SU.html 0600 root bin 366 62232 985675932
1 f none sendmail/help/opt_DH.sv.html 0600 root bin 325 30404 985675932
1 f none sendmail/help/opt_DH.zh_TW.Big5.html 0600 root bin 228 34651 985675932
1 f none sendmail/help/opt_DR.es.html 0600 root bin 417 39039 985675932
1 f none sendmail/help/opt_DR.fr.html 0600 root bin 387 37018 985675932
1 f none sendmail/help/opt_DR.html 0600 root bin 326 29828 985675932
1 f none sendmail/help/opt_DR.pl.html 0600 root bin 403 40139 985675932
1 f none sendmail/help/opt_DR.ru_RU.html 0600 root bin 412 13018 985675932
1 f none sendmail/help/opt_DR.ru_SU.html 0600 root bin 412 3951 985675932
1 f none sendmail/help/opt_DR.sv.html 0600 root bin 345 32809 985675932
1 f none sendmail/help/opt_DR.zh_TW.Big5.html 0600 root bin 261 39126 985675932
1 f none sendmail/help/opt_DS.es.html 0600 root bin 344 32675 985675932
1 f none sendmail/help/opt_DS.fr.html 0600 root bin 340 32047 985675932
1 f none sendmail/help/opt_DS.html 0600 root bin 296 27277 985675932
1 f none sendmail/help/opt_DS.pl.html 0600 root bin 380 38837 985675932
1 f none sendmail/help/opt_DS.ru_RU.html 0600 root bin 364 4048 985675932
1 f none sendmail/help/opt_DS.ru_SU.html 0600 root bin 364 61425 985675932
1 f none sendmail/help/opt_DS.sv.html 0600 root bin 319 30173 985675932
1 f none sendmail/help/opt_DS.zh_TW.Big5.html 0600 root bin 217 32303 985675932
1 f none sendmail/help/opt_ForwardPath.es.html 0600 root bin 424 39512 985675932
1 f none sendmail/help/opt_ForwardPath.fr.html 0600 root bin 384 36017 985675932
1 f none sendmail/help/opt_ForwardPath.html 0600 root bin 337 30794 985675932
1 f none sendmail/help/opt_ForwardPath.pl.html 0600 root bin 392 39521 985675932
1 f none sendmail/help/opt_ForwardPath.ru_RU.html 0600 root bin 395 9252 985675932
1 f none sendmail/help/opt_ForwardPath.ru_SU.html 0600 root bin 395 461 985675932
1 f none sendmail/help/opt_ForwardPath.sv.html 0600 root bin 298 29170 985675932
1 f none sendmail/help/opt_ForwardPath.zh_TW.Big5.html 0600 root bin 245 34755 985675932
1 f none sendmail/help/opt_LogLevel.es.html 0600 root bin 169 15693 985675932
1 f none sendmail/help/opt_LogLevel.fr.html 0600 root bin 160 14839 985675932
1 f none sendmail/help/opt_LogLevel.html 0600 root bin 136 12338 985675932
1 f none sendmail/help/opt_LogLevel.pl.html 0600 root bin 158 15027 985675932
1 f none sendmail/help/opt_LogLevel.ru_RU.html 0600 root bin 168 28945 985675932
1 f none sendmail/help/opt_LogLevel.ru_SU.html 0600 root bin 168 25977 985675932
1 f none sendmail/help/opt_LogLevel.sv.html 0600 root bin 135 12560 985675932
1 f none sendmail/help/opt_LogLevel.zh_TW.Big5.html 0600 root bin 112 14453 985675932
1 f none sendmail/help/opt_MaxDaemonChildren.es.html 0600 root bin 248 24042 985675932
1 f none sendmail/help/opt_MaxDaemonChildren.fr.html 0600 root bin 235 22417 985675932
1 f none sendmail/help/opt_MaxDaemonChildren.html 0600 root bin 219 20349 985675932
1 f none sendmail/help/opt_MaxDaemonChildren.pl.html 0600 root bin 257 26099 985675932
1 f none sendmail/help/opt_MaxDaemonChildren.ru_RU.html 0600 root bin 289 56670 985675932
1 f none sendmail/help/opt_MaxDaemonChildren.ru_SU.html 0600 root bin 289 49887 985675932
1 f none sendmail/help/opt_MaxDaemonChildren.sv.html 0600 root bin 264 25679 985675932
1 f none sendmail/help/opt_MaxDaemonChildren.zh_TW.Big5.html 0600 root bin 156 21833 985675932
1 f none sendmail/help/opt_MaxMessageSize.es.html 0600 root bin 233 22224 985675932
1 f none sendmail/help/opt_MaxMessageSize.fr.html 0600 root bin 239 21859 985675932
1 f none sendmail/help/opt_MaxMessageSize.html 0600 root bin 205 18819 985675932
1 f none sendmail/help/opt_MaxMessageSize.pl.html 0600 root bin 249 24751 985675932
1 f none sendmail/help/opt_MaxMessageSize.ru_RU.html 0600 root bin 267 52244 985675932
1 f none sendmail/help/opt_MaxMessageSize.ru_SU.html 0600 root bin 267 46018 985675932
1 f none sendmail/help/opt_MaxMessageSize.sv.html 0600 root bin 182 17442 985675932
1 f none sendmail/help/opt_MaxMessageSize.zh_TW.Big5.html 0600 root bin 163 23697 985675932
1 f none sendmail/help/opt_MaxQueueRunSize.es.html 0600 root bin 172 16377 985675932
1 f none sendmail/help/opt_MaxQueueRunSize.fr.html 0600 root bin 176 16119 985675932
1 f none sendmail/help/opt_MaxQueueRunSize.html 0600 root bin 155 14304 985675932
1 f none sendmail/help/opt_MaxQueueRunSize.pl.html 0600 root bin 190 19003 985675932
1 f none sendmail/help/opt_MaxQueueRunSize.ru_RU.html 0600 root bin 177 32508 985675932
1 f none sendmail/help/opt_MaxQueueRunSize.ru_SU.html 0600 root bin 177 28880 985675932
1 f none sendmail/help/opt_MaxQueueRunSize.sv.html 0600 root bin 145 13793 985675932
1 f none sendmail/help/opt_MaxQueueRunSize.zh_TW.Big5.html 0600 root bin 101 13195 985675932
1 f none sendmail/help/opt_MinFreeBlocks.es.html 0600 root bin 309 28689 985675932
1 f none sendmail/help/opt_MinFreeBlocks.fr.html 0600 root bin 361 33872 985675932
1 f none sendmail/help/opt_MinFreeBlocks.html 0600 root bin 289 26554 985675932
1 f none sendmail/help/opt_MinFreeBlocks.pl.html 0600 root bin 353 35284 985675932
1 f none sendmail/help/opt_MinFreeBlocks.ru_RU.html 0600 root bin 402 12604 985675932
1 f none sendmail/help/opt_MinFreeBlocks.ru_SU.html 0600 root bin 402 3452 985675932
1 f none sendmail/help/opt_MinFreeBlocks.sv.html 0600 root bin 321 31615 985675932
1 f none sendmail/help/opt_MinFreeBlocks.zh_TW.Big5.html 0600 root bin 194 28486 985675932
1 f none sendmail/help/opt_MinQueueAge.es.html 0600 root bin 178 16621 985675932
1 f none sendmail/help/opt_MinQueueAge.fr.html 0600 root bin 194 17299 985675932
1 f none sendmail/help/opt_MinQueueAge.html 0600 root bin 160 14446 985675932
1 f none sendmail/help/opt_MinQueueAge.pl.html 0600 root bin 178 17830 985675932
1 f none sendmail/help/opt_MinQueueAge.ru_RU.html 0600 root bin 213 37258 985675932
1 f none sendmail/help/opt_MinQueueAge.ru_SU.html 0600 root bin 213 33212 985675932
1 f none sendmail/help/opt_MinQueueAge.sv.html 0600 root bin 186 18786 985675932
1 f none sendmail/help/opt_MinQueueAge.zh_TW.Big5.html 0600 root bin 112 14611 985675932
1 f none sendmail/help/opt_PostMasterCopy.es.html 0600 root bin 300 28012 985675932
1 f none sendmail/help/opt_PostMasterCopy.fr.html 0600 root bin 304 27972 985675932
1 f none sendmail/help/opt_PostMasterCopy.html 0600 root bin 291 26661 985675932
1 f none sendmail/help/opt_PostMasterCopy.pl.html 0600 root bin 356 34890 985675932
1 f none sendmail/help/opt_PostMasterCopy.ru_RU.html 0600 root bin 354 63880 985675932
1 f none sendmail/help/opt_PostMasterCopy.ru_SU.html 0600 root bin 354 56683 985675932
1 f none sendmail/help/opt_PostMasterCopy.sv.html 0600 root bin 288 27649 985675932
1 f none sendmail/help/opt_PostMasterCopy.zh_TW.Big5.html 0600 root bin 199 24999 985675932
1 f none sendmail/help/opt_QueueDirectory.es.html 0600 root bin 217 20158 985675932
1 f none sendmail/help/opt_QueueDirectory.fr.html 0600 root bin 252 22910 985675932
1 f none sendmail/help/opt_QueueDirectory.html 0600 root bin 199 18383 985675932
1 f none sendmail/help/opt_QueueDirectory.pl.html 0600 root bin 203 19451 985675932
1 f none sendmail/help/opt_QueueDirectory.ru_RU.html 0600 root bin 222 41160 985675932
1 f none sendmail/help/opt_QueueDirectory.ru_SU.html 0600 root bin 222 36515 985675932
1 f none sendmail/help/opt_QueueDirectory.sv.html 0600 root bin 216 20438 985675932
1 f none sendmail/help/opt_QueueDirectory.zh_TW.Big5.html 0600 root bin 137 18535 985675932
1 f none sendmail/help/opt_QueueLA.es.html 0600 root bin 292 27511 985675932
1 f none sendmail/help/opt_QueueLA.fr.html 0600 root bin 302 27812 985675932
1 f none sendmail/help/opt_QueueLA.html 0600 root bin 258 24057 985675932
1 f none sendmail/help/opt_QueueLA.pl.html 0600 root bin 350 35996 985675932
1 f none sendmail/help/opt_QueueLA.ru_RU.html 0600 root bin 315 62978 985675932
1 f none sendmail/help/opt_QueueLA.ru_SU.html 0600 root bin 315 55260 985675932
1 f none sendmail/help/opt_QueueLA.sv.html 0600 root bin 317 31194 985675932
1 f none sendmail/help/opt_QueueLA.zh_TW.Big5.html 0600 root bin 159 23614 985675932
1 f none sendmail/help/opt_RefuseLA.es.html 0600 root bin 336 31765 985675932
1 f none sendmail/help/opt_RefuseLA.fr.html 0600 root bin 358 33436 985675932
1 f none sendmail/help/opt_RefuseLA.html 0600 root bin 299 27748 985675932
1 f none sendmail/help/opt_RefuseLA.pl.html 0600 root bin 388 39190 985675932
1 f none sendmail/help/opt_RefuseLA.ru_RU.html 0600 root bin 339 207 985675932
1 f none sendmail/help/opt_RefuseLA.ru_SU.html 0600 root bin 339 57992 985675932
1 f none sendmail/help/opt_RefuseLA.sv.html 0600 root bin 362 35132 985675932
1 f none sendmail/help/opt_RefuseLA.zh_TW.Big5.html 0600 root bin 193 28943 985675932
1 f none sendmail/help/opt_SendMimeErrors.es.html 0600 root bin 302 27802 985675932
1 f none sendmail/help/opt_SendMimeErrors.fr.html 0600 root bin 281 25941 985675932
1 f none sendmail/help/opt_SendMimeErrors.html 0600 root bin 254 22980 985675932
1 f none sendmail/help/opt_SendMimeErrors.pl.html 0600 root bin 357 35380 985675932
1 f none sendmail/help/opt_SendMimeErrors.ru_RU.html 0600 root bin 298 55612 985675932
1 f none sendmail/help/opt_SendMimeErrors.ru_SU.html 0600 root bin 298 49092 985675932
1 f none sendmail/help/opt_SendMimeErrors.sv.html 0600 root bin 265 24728 985675932
1 f none sendmail/help/opt_SendMimeErrors.zh_TW.Big5.html 0600 root bin 182 23731 985675932
1 f none sendmail/help/opt_Timeout.queuereturn.es.html 0600 root bin 463 43525 985675932
1 f none sendmail/help/opt_Timeout.queuereturn.fr.html 0600 root bin 453 41602 985675932
1 f none sendmail/help/opt_Timeout.queuereturn.html 0600 root bin 401 36641 985675932
1 f none sendmail/help/opt_Timeout.queuereturn.pl.html 0600 root bin 465 46481 985675932
1 f none sendmail/help/opt_Timeout.queuereturn.ru_RU.html 0600 root bin 431 15652 985675932
1 f none sendmail/help/opt_Timeout.queuereturn.ru_SU.html 0600 root bin 431 6110 985675932
1 f none sendmail/help/opt_Timeout.queuereturn.sv.html 0600 root bin 412 40505 985675932
1 f none sendmail/help/opt_Timeout.queuereturn.zh_TW.Big5.html 0600 root bin 283 41773 985675932
1 f none sendmail/help/opt_Timeout.queuewarn.es.html 0600 root bin 464 43722 985675932
1 f none sendmail/help/opt_Timeout.queuewarn.fr.html 0600 root bin 434 40240 985675932
1 f none sendmail/help/opt_Timeout.queuewarn.html 0600 root bin 395 36105 985675932
1 f none sendmail/help/opt_Timeout.queuewarn.pl.html 0600 root bin 444 44817 985675932
1 f none sendmail/help/opt_Timeout.queuewarn.ru_RU.html 0600 root bin 405 9549 985675932
1 f none sendmail/help/opt_Timeout.queuewarn.ru_SU.html 0600 root bin 405 1003 985675932
1 f none sendmail/help/opt_Timeout.queuewarn.sv.html 0600 root bin 370 36314 985675932
1 f none sendmail/help/opt_Timeout.queuewarn.zh_TW.Big5.html 0600 root bin 248 35337 985675932
1 f none sendmail/help/opt_dmode.es.html 0600 root bin 635 56399 985675932
1 f none sendmail/help/opt_dmode.html 0600 root bin 562 48658 985675932
1 f none sendmail/help/opt_dmode.pl.html 0600 root bin 672 62133 985675932
1 f none sendmail/help/units.es.html 0600 root bin 256 22582 985675932
1 f none sendmail/help/units.fr.html 0600 root bin 283 25353 985675932
1 f none sendmail/help/units.html 0600 root bin 235 19861 985675932
1 f none sendmail/help/units.pl.html 0600 root bin 258 23120 985675932
1 f none sendmail/help/units.ru_RU.html 0600 root bin 274 43485 985675932
1 f none sendmail/help/units.ru_SU.html 0600 root bin 274 38909 985675932
1 f none sendmail/help/units.sv.html 0600 root bin 251 22007 985675932
1 f none sendmail/help/units.zh_TW.Big5.html 0600 root bin 176 19394 985675932
1 d none sendmail/images 0700 root bin
1 f none sendmail/images/access.gif 0600 root bin 290 34434 985675931
1 f none sendmail/images/aliases.gif 0600 root bin 397 47679 985675931
1 f none sendmail/images/attach.gif 0600 root bin 77 4645 985675931
1 f none sendmail/images/boxes.gif 0600 root bin 367 47932 985675931
1 f none sendmail/images/cgs.gif 0600 root bin 376 48320 985675931
1 f none sendmail/images/cws.gif 0600 root bin 266 31279 985675931
1 f none sendmail/images/domains.gif 0600 root bin 256 30700 985675931
1 f none sendmail/images/generics.gif 0600 root bin 389 49281 985675931
1 f none sendmail/images/icon.gif 0600 root bin 314 42505 985675931
1 f none sendmail/images/mailers.gif 0600 root bin 248 28427 985675931
1 f none sendmail/images/mailq.gif 0600 root bin 374 42022 985675931
1 f none sendmail/images/masq.gif 0600 root bin 335 37345 985675931
1 f none sendmail/images/opts.gif 0600 root bin 460 53918 985675931
1 f none sendmail/images/p1.gif 0600 root bin 55 3891 985675931
1 f none sendmail/images/p2.gif 0600 root bin 55 3822 985675931
1 f none sendmail/images/relay.gif 0600 root bin 392 50435 985675931
1 f none sendmail/images/trusts.gif 0600 root bin 390 43396 985675931
1 f none sendmail/images/virtusers.gif 0600 root bin 451 55525 985675931
1 f none sendmail/index.cgi 0700 root bin 4266 28891 985675931
1 d none sendmail/lang 0700 root bin
1 f none sendmail/lang/de 0600 root bin 24212 23783 985675932
1 f none sendmail/lang/en 0600 root bin 23272 8283 985675932
1 f none sendmail/lang/es 0600 root bin 26673 42022 985675932
1 f none sendmail/lang/fr 0600 root bin 21203 16626 985675932
1 f none sendmail/lang/pl 0600 root bin 26870 59991 985675933
1 f none sendmail/lang/pt 0600 root bin 20946 6741 985675932
1 f none sendmail/lang/ru_RU 0600 root bin 20023 4940 985675933
1 f none sendmail/lang/ru_SU 0600 root bin 20056 35293 985675932
1 f none sendmail/lang/sv 0600 root bin 23891 59768 985675933
1 f none sendmail/lang/tr 0600 root bin 23442 22168 985675933
1 f none sendmail/lang/zh_CN 0600 root bin 14720 43636 985675933
1 f none sendmail/lang/zh_TW.Big5 0600 root bin 14756 5634 985675932
1 f none sendmail/list_access.cgi 0700 root bin 1762 10213 985675932
1 f none sendmail/list_aliases.cgi 0700 root bin 2385 54522 985675932
1 f none sendmail/list_boxes.cgi 0700 root bin 1980 25691 985675932
1 f none sendmail/list_cgs.cgi 0700 root bin 1227 34136 985675932
1 f none sendmail/list_cws.cgi 0700 root bin 1261 36876 985675932
1 f none sendmail/list_domains.cgi 0700 root bin 1747 9466 985675932
1 f none sendmail/list_generics.cgi 0700 root bin 2679 25592 985675932
1 f none sendmail/list_mail.cgi 0700 root bin 4638 47981 985675932
1 f none sendmail/list_mailers.cgi 0700 root bin 2005 31359 985675932
1 f none sendmail/list_mailq.cgi 0700 root bin 2924 27968 985675932
1 f none sendmail/list_masq.cgi 0700 root bin 1469 53780 985675932
1 f none sendmail/list_opts.cgi 0700 root bin 6420 4200 985675932
1 f none sendmail/list_relay.cgi 0700 root bin 1568 62075 985675932
1 f none sendmail/list_trusts.cgi 0700 root bin 1269 38054 985675932
1 f none sendmail/list_us 0600 root bin 1 10 985675933
1 f none sendmail/list_virtusers.cgi 0700 root bin 2407 64712 985675932
1 f none sendmail/log_parser.pl 0600 root bin 1188 31298 985675932
1 f none sendmail/mail_search.cgi 0700 root bin 2469 4317 985675934
1 f none sendmail/mailers-lib.pl 0600 root bin 4420 24466 985675932
1 f none sendmail/module.info 0600 root bin 603 62520 985675931
1 f none sendmail/qdetach.cgi 0700 root bin 489 41134 985675933
1 f none sendmail/reply_mail.cgi 0700 root bin 5573 51634 985675933
1 f none sendmail/save_access.cgi 0700 root bin 1611 61521 985675932
1 f none sendmail/save_afile.cgi 0700 root bin 393 32238 985675932
1 f none sendmail/save_alias.cgi 0700 root bin 3309 61709 985675932
1 f none sendmail/save_cgs.cgi 0700 root bin 1088 21892 985675932
1 f none sendmail/save_cws.cgi 0700 root bin 1132 25415 985675932
1 f none sendmail/save_domain.cgi 0700 root bin 1185 31328 985675932
1 f none sendmail/save_file.cgi 0700 root bin 2497 7846 985675934
1 f none sendmail/save_generic.cgi 0700 root bin 1349 45434 985675932
1 f none sendmail/save_mailer.cgi 0700 root bin 1440 52099 985675932
1 f none sendmail/save_masq.cgi 0700 root bin 1406 46972 985675932
1 f none sendmail/save_opts.cgi 0700 root bin 2577 17784 985675932
1 f none sendmail/save_relay.cgi 0700 root bin 1070 21682 985675932
1 f none sendmail/save_rfile.cgi 0700 root bin 366 30223 985675932
1 f none sendmail/save_trusts.cgi 0700 root bin 1118 25501 985675932
1 f none sendmail/save_virtuser.cgi 0700 root bin 2660 19121 985675932
1 f none sendmail/send_mail.cgi 0700 root bin 4196 59552 985675933
1 f none sendmail/sendmail-lib.pl 0600 root bin 5200 18397 985675931
1 f none sendmail/start.cgi 0700 root bin 339 28599 985675932
1 f none sendmail/stop.cgi 0700 root bin 497 42012 985675931
1 f none sendmail/useradmin_update.pl 0600 root bin 1122 25128 985675932
1 f none sendmail/view_mail.cgi 0700 root bin 3793 45580 985675933
1 f none sendmail/view_mailq.cgi 0700 root bin 2551 9287 985675933
1 f none sendmail/virtusers-lib.pl 0600 root bin 4976 6636 985675932
1 d none servers 0700 root bin
1 f none servers/acl_security.pl 0600 root bin 1889 18878 985675942
1 f none servers/config 0600 root bin 22 1959 985675941
1 f none servers/config.info 0600 root bin 96 8769 985675941
1 f none servers/config.info.de 0600 root bin 121 10831 985675941
1 f none servers/config.info.es 0600 root bin 121 11477 985675941
1 f none servers/config.info.hu 0600 root bin 139 13964 985675941
1 f none servers/config.info.pl 0600 root bin 110 10690 985675942
1 f none servers/config.info.sv 0600 root bin 96 9127 985675941
1 f none servers/config.info.tr 0600 root bin 110 11393 985675941
1 f none servers/config.info.zh_CN 0600 root bin 64 9280 985675942
1 f none servers/config.info.zh_TW.Big5 0600 root bin 46 5814 985675941
1 f none servers/defaultacl 0600 root bin 24 1970 985675942
1 f none servers/edit_serv.cgi 0700 root bin 2208 52847 985675941
1 f none servers/find.cgi 0700 root bin 2768 9918 985675941
1 d none servers/images 0700 root bin
1 f none servers/images/cal_spin.gif 0600 root bin 37393 15581 985675941
1 f none servers/images/caldera.gif 0600 root bin 2740 55513 985675941
1 f none servers/images/debian.gif 0600 root bin 2155 8335 985675941
1 f none servers/images/freebsd.gif 0600 root bin 1664 481 985675941
1 f none servers/images/hpux.gif 0600 root bin 435 50957 985675941
1 f none servers/images/icon.gif 0600 root bin 1526 31216 985675941
1 f none servers/images/irix.gif 0600 root bin 718 31023 985675941
1 f none servers/images/linux.gif 0600 root bin 2028 31581 985675941
1 f none servers/images/mac.gif 0600 root bin 2203 2868 985675941
1 f none servers/images/mandrake.gif 0600 root bin 997 9791 985675941
1 f none servers/images/openbsd.gif 0600 root bin 1664 481 985675941
1 f none servers/images/redhat.gif 0600 root bin 1385 16437 985675941
1 f none servers/images/sco.gif 0600 root bin 502 60123 985675941
1 f none servers/images/solaris.gif 0600 root bin 858 61299 985675941
1 f none servers/images/suse.gif 0600 root bin 496 3496 985675941
1 f none servers/images/unknown.gif 0600 root bin 2256 52530 985675941
1 f none servers/index.cgi 0700 root bin 1472 51676 985675941
1 d none servers/lang 0700 root bin
1 f none servers/lang/de 0600 root bin 1258 52446 985675941
1 f none servers/lang/en 0600 root bin 1632 21726 985675941
1 f none servers/lang/es 0600 root bin 1897 49366 985675941
1 f none servers/lang/fr 0600 root bin 1044 36179 985675941
1 f none servers/lang/hu 0600 root bin 1516 18409 985675941
1 f none servers/lang/pl 0600 root bin 1905 57028 985675941
1 f none servers/lang/pt 0600 root bin 972 28504 985675941
1 f none servers/lang/ru_RU 0600 root bin 948 26957 985675941
1 f none servers/lang/ru_SU 0600 root bin 952 13232 985675941
1 f none servers/lang/sv 0600 root bin 1737 38190 985675941
1 f none servers/lang/tr 0600 root bin 1209 57314 985675941
1 f none servers/lang/zh_CN 0600 root bin 1276 54894 985675941
1 f none servers/lang/zh_TW.Big5 0600 root bin 756 32931 985675941
1 f none servers/link.cgi 0700 root bin 4341 9274 985675941
1 f none servers/log_parser.pl 0600 root bin 655 55180 985675941
1 f none servers/module.info 0600 root bin 419 43943 985675941
1 f none servers/save_serv.cgi 0700 root bin 1103 23239 985675941
1 f none servers/servers-lib.pl 0600 root bin 1514 56355 985675941
1 f none session_login.cgi 0700 root bin 1503 62257 985675910
1 f none setup.sh 0700 root bin 15590 49995 985675910
1 d none shell 0700 root bin
1 f none shell/acl_security.pl 0600 root bin 456 39521 985675967
1 f none shell/defaultacl 0600 root bin 10 970 985675967
1 d none shell/images 0700 root bin
1 f none shell/images/icon.gif 0600 root bin 2678 14014 985675967
1 f none shell/images/shell.jpg 0600 root bin 46154 22692 985675967
1 f none shell/index.cgi 0700 root bin 1690 1477 985675967
1 d none shell/lang 0700 root bin
1 f none shell/lang/en 0600 root bin 298 28051 985675967
1 f none shell/lang/pl 0600 root bin 333 33745 985675967
1 f none shell/module.info 0600 root bin 62 5844 985675967
1 f none shell/shell-lib.pl 0600 root bin 57 4201 985675967
1 d none software 0700 root bin
1 f none software/apt-lib.pl 0600 root bin 2039 41498 985675926
1 f none software/apt_upgrade.cgi 0700 root bin 1743 6874 985675926
1 f none software/close.cgi 0700 root bin 377 31666 985675926
1 f none software/closeall.cgi 0700 root bin 150 12982 985675926
1 f none software/config-cobalt-linux 0600 root bin 19 1894 985675926
1 f none software/config-corel-linux 0600 root bin 22 2170 985675926
1 f none software/config-debian-linux 0600 root bin 22 2170 985675926
1 f none software/config-freebsd 0600 root bin 23 2290 985675926
1 f none software/config-hpux 0600 root bin 20 2012 985675926
1 f none software/config-open-linux 0600 root bin 19 1894 985675926
1 f none software/config-openbsd 0600 root bin 23 2306 985675926
1 f none software/config-openserver 0600 root bin 22 2178 985675926
1 f none software/config-redhat-linux 0600 root bin 19 1894 985675925
1 f none software/config-slackware-linux 0600 root bin 25 2516 985675926
1 f none software/config-solaris 0600 root bin 22 2178 985675925
1 f none software/config-suse-linux 0600 root bin 19 1894 985675925
1 f none software/config-turbo-linux 0600 root bin 19 1894 985675926
1 f none software/config-unixware 0600 root bin 22 2178 985675925
1 f none software/config.info 0600 root bin 126 11774 985675925
1 f none software/config.info.de 0600 root bin 124 11527 985675926
1 f none software/config.info.es 0600 root bin 131 12285 985675926
1 f none software/config.info.fr 0600 root bin 133 12664 985675926
1 f none software/config.info.pl 0600 root bin 129 12217 985675926
1 f none software/config.info.ru_RU 0600 root bin 128 15193 985675926
1 f none software/config.info.ru_SU 0600 root bin 128 14490 985675926
1 f none software/config.info.sv 0600 root bin 224 21124 985675926
1 f none software/config.info.tr 0600 root bin 122 11535 985675926
1 f none software/config.info.zh_CN 0600 root bin 115 12209 985675926
1 f none software/config.info.zh_TW.Big5 0600 root bin 117 12026 985675926
1 f none software/debian-lib.pl 0600 root bin 4958 7881 985675926
1 f none software/delete_file.cgi 0700 root bin 176 14918 985675926
1 f none software/delete_pack.cgi 0700 root bin 1327 41727 985675925
1 f none software/do_install.cgi 0700 root bin 1405 44535 985675925
1 f none software/edit_pack.cgi 0700 root bin 1940 32924 985675925
1 f none software/file_info.cgi 0700 root bin 2245 44376 985675925
1 f none software/freebsd-lib.pl 0600 root bin 4526 33774 985675926
1 d none software/help 0700 root bin
1 f none software/help/delete.es.html 0600 root bin 287 26584 985675925
1 f none software/help/delete.fr.html 0600 root bin 267 25841 985675925
1 f none software/help/delete.html 0600 root bin 248 22423 985675925
1 f none software/help/delete.hu.html 0600 root bin 251 25772 985675925
1 f none software/help/delete.pl.html 0600 root bin 273 27240 985675926
1 f none software/help/delete.sv.html 0600 root bin 227 21177 985675925
1 f none software/help/delete.zh_TW.Big5.html 0600 root bin 173 25631 985675925
1 f none software/help/edit_pack.es.html 0600 root bin 286 26838 985675925
1 f none software/help/edit_pack.fr.html 0600 root bin 292 27660 985675925
1 f none software/help/edit_pack.html 0600 root bin 251 22693 985675925
1 f none software/help/edit_pack.hu.html 0600 root bin 261 26555 985675925
1 f none software/help/edit_pack.pl.html 0600 root bin 262 25413 985675926
1 f none software/help/edit_pack.sv.html 0600 root bin 230 21600 985675925
1 f none software/help/edit_pack.zh_TW.Big5.html 0600 root bin 163 22607 985675925
1 f none software/help/excludedocs.es.html 0600 root bin 174 16729 985675925
1 f none software/help/excludedocs.fr.html 0600 root bin 172 16064 985675925
1 f none software/help/excludedocs.html 0600 root bin 168 15421 985675925
1 f none software/help/excludedocs.hu.html 0600 root bin 141 14047 985675925
1 f none software/help/excludedocs.pl.html 0600 root bin 184 17998 985675926
1 f none software/help/excludedocs.sv.html 0600 root bin 160 15284 985675925
1 f none software/help/excludedocs.zh_TW.Big5.html 0600 root bin 94 13036 985675925
1 f none software/help/file_info.es.html 0600 root bin 291 27403 985675925
1 f none software/help/file_info.fr.html 0600 root bin 268 25042 985675925
1 f none software/help/file_info.html 0600 root bin 250 22424 985675925
1 f none software/help/file_info.pl.html 0600 root bin 277 27313 985675926
1 f none software/help/file_info.sv.html 0600 root bin 226 21528 985675925
1 f none software/help/file_info.zh_TW.Big5.html 0600 root bin 142 21176 985675925
1 f none software/help/install.es.html 0600 root bin 183 17494 985675925
1 f none software/help/install.fr.html 0600 root bin 193 18291 985675925
1 f none software/help/install.html 0600 root bin 173 15690 985675925
1 f none software/help/install.pl.html 0600 root bin 157 14834 985675926
1 f none software/help/install.sv.html 0600 root bin 154 14748 985675925
1 f none software/help/install.zh_TW.Big5.html 0600 root bin 90 12293 985675925
1 f none software/help/intro.es.html 0600 root bin 2322 21475 985675925
1 f none software/help/intro.fr.html 0600 root bin 2384 30703 985675925
1 f none software/help/intro.html 0600 root bin 2022 51766 985675925
1 f none software/help/intro.pl.html 0600 root bin 2305 30438 985675926
1 f none software/help/intro.sv.html 0600 root bin 2020 63013 985675925
1 f none software/help/intro.zh_TW.Big5.html 0600 root bin 1348 61875 985675925
1 f none software/help/list_pack.es.html 0600 root bin 974 22774 985675925
1 f none software/help/list_pack.fr.html 0600 root bin 928 17843 985675925
1 f none software/help/list_pack.html 0600 root bin 828 6916 985675925
1 f none software/help/list_pack.pl.html 0600 root bin 966 26099 985675926
1 f none software/help/list_pack.sv.html 0600 root bin 750 3988 985675925
1 f none software/help/list_pack.zh_TW.Big5.html 0600 root bin 607 17689 985675925
1 f none software/help/nodeps.es.html 0600 root bin 182 17147 985675925
1 f none software/help/nodeps.fr.html 0600 root bin 201 18905 985675925
1 f none software/help/nodeps.html 0600 root bin 190 17352 985675925
1 f none software/help/nodeps.pl.html 0600 root bin 209 20807 985675926
1 f none software/help/nodeps.sv.html 0600 root bin 175 16421 985675925
1 f none software/help/nodeps.zh_TW.Big5.html 0600 root bin 118 16916 985675925
1 f none software/help/noscripts.es.html 0600 root bin 221 21381 985675925
1 f none software/help/noscripts.fr.html 0600 root bin 200 19036 985675925
1 f none software/help/noscripts.html 0600 root bin 193 17780 985675925
1 f none software/help/noscripts.pl.html 0600 root bin 192 18960 985675926
1 f none software/help/noscripts.sv.html 0600 root bin 202 19687 985675925
1 f none software/help/noscripts.zh_TW.Big5.html 0600 root bin 120 17330 985675925
1 f none software/help/oldpackage.es.html 0600 root bin 285 27403 985675925
1 f none software/help/oldpackage.fr.html 0600 root bin 320 30046 985675925
1 f none software/help/oldpackage.html 0600 root bin 245 22183 985675925
1 f none software/help/oldpackage.pl.html 0600 root bin 282 27891 985675926
1 f none software/help/oldpackage.sv.html 0600 root bin 254 23708 985675925
1 f none software/help/oldpackage.zh_TW.Big5.html 0600 root bin 188 27441 985675925
1 f none software/help/replacefiles.es.html 0600 root bin 271 26124 985675925
1 f none software/help/replacefiles.fr.html 0600 root bin 271 26204 985675925
1 f none software/help/replacefiles.html 0600 root bin 245 22577 985675925
1 f none software/help/replacefiles.pl.html 0600 root bin 243 23837 985675926
1 f none software/help/replacefiles.sv.html 0600 root bin 242 23116 985675925
1 f none software/help/replacefiles.zh_TW.Big5.html 0600 root bin 156 22497 985675925
1 f none software/help/replacepkgs.es.html 0600 root bin 142 13281 985675925
1 f none software/help/replacepkgs.fr.html 0600 root bin 144 13898 985675925
1 f none software/help/replacepkgs.html 0600 root bin 144 12970 985675925
1 f none software/help/replacepkgs.pl.html 0600 root bin 151 14651 985675926
1 f none software/help/replacepkgs.sv.html 0600 root bin 136 12819 985675925
1 f none software/help/replacepkgs.zh_TW.Big5.html 0600 root bin 118 15922 985675925
1 f none software/help/root.es.html 0600 root bin 162 15458 985675925
1 f none software/help/root.fr.html 0600 root bin 163 15263 985675925
1 f none software/help/root.html 0600 root bin 147 13472 985675925
1 f none software/help/root.pl.html 0600 root bin 146 13884 985675926
1 f none software/help/root.sv.html 0600 root bin 155 14758 985675925
1 f none software/help/root.zh_TW.Big5.html 0600 root bin 108 14534 985675925
1 f none software/help/search.es.html 0600 root bin 219 20429 985675925
1 f none software/help/search.fr.html 0600 root bin 211 19627 985675925
1 f none software/help/search.html 0600 root bin 163 14371 985675925
1 f none software/help/search.pl.html 0600 root bin 198 19683 985675926
1 f none software/help/search.sv.html 0600 root bin 169 16671 985675925
1 f none software/help/search.zh_TW.Big5.html 0600 root bin 101 14181 985675925
1 f none software/help/upgrade.es.html 0600 root bin 222 21162 985675925
1 f none software/help/upgrade.fr.html 0600 root bin 235 22844 985675925
1 f none software/help/upgrade.html 0600 root bin 203 18411 985675925
1 f none software/help/upgrade.pl.html 0600 root bin 213 21309 985675926
1 f none software/help/upgrade.sv.html 0600 root bin 189 18003 985675925
1 f none software/help/upgrade.zh_TW.Big5.html 0600 root bin 140 19733 985675925
1 f none software/hpux-lib.pl 0600 root bin 10069 65524 985675926
1 d none software/images 0700 root bin
1 f none software/images/close.gif 0600 root bin 112 11697 985675925
1 f none software/images/icon.gif 0600 root bin 297 35022 985675925
1 f none software/images/open.gif 0600 root bin 107 10761 985675925
1 f none software/images/pack.gif 0600 root bin 123 11211 985675925
1 f none software/index.cgi 0700 root bin 3453 20157 985675925
1 f none software/install_pack.cgi 0700 root bin 3279 65295 985675925
1 d none software/lang 0700 root bin
1 f none software/lang/de 0600 root bin 4072 57395 985675926
1 f none software/lang/en 0600 root bin 6326 3087 985675926
1 f none software/lang/es 0600 root bin 4089 13 985675926
1 f none software/lang/fr 0600 root bin 4115 8647 985675926
1 f none software/lang/hu 0600 root bin 3884 14078 985675926
1 f none software/lang/pl 0600 root bin 4975 32450 985675926
1 f none software/lang/pt 0600 root bin 3874 49620 985675926
1 f none software/lang/ru_RU 0600 root bin 3649 60098 985675926
1 f none software/lang/ru_SU 0600 root bin 3662 12744 985675926
1 f none software/lang/sv 0600 root bin 5789 35194 985675926
1 f none software/lang/tr 0600 root bin 3672 47457 985675926
1 f none software/lang/zh_CN 0600 root bin 2773 43475 985675926
1 f none software/lang/zh_TW.Big5 0600 root bin 2889 26975 985675926
1 f none software/list_pack.cgi 0700 root bin 1775 6271 985675925
1 f none software/log_parser.pl 0600 root bin 893 7449 985675926
1 f none software/module.info 0600 root bin 677 1286 985675926
1 f none software/open.cgi 0700 root bin 253 21084 985675926
1 f none software/openall.cgi 0700 root bin 419 32530 985675926
1 f none software/openbsd-lib.pl 0600 root bin 4519 33441 985675926
1 f none software/pkgadd-lib.pl 0600 root bin 6391 38736 985675926
1 f none software/rhn-lib.pl 0600 root bin 3143 64043 985675926
1 f none software/rhn.cgi 0700 root bin 1097 23059 985675926
1 f none software/rhn_check.cgi 0600 root bin 1768 12546 985675926
1 f none software/rpm-lib.pl 0600 root bin 6479 51370 985675926
1 f none software/search.cgi 0700 root bin 1276 33716 985675926
1 f none software/slackware-lib.pl 0600 root bin 5706 49324 985675926
1 f none software/software-lib.pl 0600 root bin 4837 65173 985675926
1 d none squid 0700 root bin
1 f none squid/acl.cgi 0700 root bin 8944 49443 985675934
1 f none squid/acl_save.cgi 0700 root bin 6633 47309 985675934
1 f none squid/acl_security.pl 0700 root bin 474 41368 985675935
1 f none squid/always.cgi 0700 root bin 1964 30859 985675935
1 f none squid/always_save.cgi 0700 root bin 983 15593 985675935
1 f none squid/cachemgr.cgi 0700 root bin 434 34177 985675934
1 f none squid/calamaris.cgi 0700 root bin 2253 42649 985675935
1 f none squid/chown.cgi 0700 root bin 1409 48525 985675934
1 f none squid/clear.cgi 0700 root bin 2533 6500 985675935
1 f none squid/config-aix 0600 root bin 240 22437 985675934
1 f none squid/config-cobalt-linux 0600 root bin 239 22344 985675935
1 f none squid/config-corel-linux 0600 root bin 213 19859 985675935
1 f none squid/config-debian-linux 0600 root bin 213 19859 985675935
1 f none squid/config-freebsd 0600 root bin 270 25391 985675935
1 f none squid/config-hpux 0600 root bin 280 26355 985675934
1 f none squid/config-irix 0600 root bin 280 26355 985675935
1 f none squid/config-lfs-linux 0600 root bin 249 23347 985675935
1 f none squid/config-macos 0600 root bin 280 26355 985675935
1 f none squid/config-open-linux 0600 root bin 304 28428 985675935
1 f none squid/config-open-linux-3.1e 0600 root bin 306 28574 985675935
1 f none squid/config-openbsd 0600 root bin 270 25391 985675935
1 f none squid/config-openserver 0600 root bin 280 26355 985675934
1 f none squid/config-osf1 0600 root bin 280 26355 985675935
1 f none squid/config-redhat-linux 0600 root bin 216 20175 985675935
1 f none squid/config-redhat-linux-6.0 0600 root bin 302 28282 985675935
1 f none squid/config-redhat-linux-6.1 0600 root bin 302 28282 985675935
1 f none squid/config-redhat-linux-6.2 0600 root bin 302 28282 985675935
1 f none squid/config-redhat-linux-7.0 0600 root bin 302 28282 985675934
1 f none squid/config-redhat-linux-7.1 0600 root bin 302 28282 985675935
1 f none squid/config-slackware-linux 0600 root bin 280 26355 985675935
1 f none squid/config-solaris 0600 root bin 280 26355 985675934
1 f none squid/config-suse-linux 0600 root bin 207 19322 985675935
1 f none squid/config-turbo-linux 0600 root bin 216 20175 985675935
1 f none squid/config-unixware 0600 root bin 280 26355 985675934
1 f none squid/config.info 0600 root bin 501 46649 985675934
1 f none squid/config.info.de 0600 root bin 424 39533 985675935
1 f none squid/config.info.es 0600 root bin 635 60537 985675935
1 f none squid/config.info.fr 0600 root bin 573 54349 985675935
1 f none squid/config.info.pl 0600 root bin 644 62027 985675934
1 f none squid/config.info.ru_RU 0600 root bin 282 43222 985675935
1 f none squid/config.info.ru_SU 0600 root bin 282 39479 985675935
1 f none squid/config.info.sv 0600 root bin 592 59284 985675935
1 f none squid/config.info.tr 0600 root bin 351 35830 985675934
1 f none squid/config.info.zh_CN 0600 root bin 373 49812 985675935
1 f none squid/config.info.zh_TW.Big5 0600 root bin 296 37235 985675935
1 f none squid/defaultacl 0600 root bin 7 570 985675935
1 f none squid/edit_acl.cgi 0700 root bin 3710 27241 985675934
1 f none squid/edit_admin.cgi 0700 root bin 3119 56801 985675934
1 f none squid/edit_auth.cgi 0700 root bin 2183 47195 985675934
1 f none squid/edit_cache.cgi 0700 root bin 8476 27539 985675934
1 f none squid/edit_cache_host.cgi 0700 root bin 6423 4790 985675934
1 f none squid/edit_icp.cgi 0700 root bin 5517 39193 985675934
1 f none squid/edit_logs.cgi 0700 root bin 2880 39382 985675934
1 f none squid/edit_mem.cgi 0700 root bin 2629 18812 985675934
1 f none squid/edit_misc.cgi 0700 root bin 3702 39499 985675934
1 f none squid/edit_nauth.cgi 0700 root bin 1071 19866 985675935
1 f none squid/edit_nuser.cgi 0700 root bin 1516 62379 985675935
1 f none squid/edit_ports.cgi 0700 root bin 2373 61907 985675934
1 f none squid/edit_progs.cgi 0700 root bin 2611 24383 985675934
1 f none squid/edit_smem.cgi 0700 root bin 4046 64077 985675934
1 f none squid/edit_sports.cgi 0700 root bin 2369 57739 985675934
1 f none squid/edit_user.cgi 0700 root bin 1465 59353 985675934
1 d none squid/help 0700 root bin
1 f none squid/help/edit_acl.es.html 0600 root bin 1755 28763 985675935
1 f none squid/help/edit_acl.html 0600 root bin 1604 11481 985675935
1 f none squid/help/edit_acl.pl.html 0600 root bin 1670 29190 985675935
1 f none squid/help/edit_acl.sv.html 0600 root bin 1601 25651 985675935
1 f none squid/help/edit_acl.zh_TW.Big5.html 0600 root bin 1050 7963 985675935
1 f none squid/help/edit_admin.es.html 0600 root bin 2145 2002 985675935
1 f none squid/help/edit_admin.html 0600 root bin 1912 40607 985675935
1 f none squid/help/edit_admin.pl.html 0600 root bin 2197 17847 985675935
1 f none squid/help/edit_admin.sv.html 0600 root bin 2055 63967 985675935
1 f none squid/help/edit_admin.zh_TW.Big5.html 0600 root bin 1319 45222 985675935
1 f none squid/help/edit_cache.es.html 0600 root bin 5679 63390 985675935
1 f none squid/help/edit_cache.html 0600 root bin 4913 44493 985675935
1 f none squid/help/edit_cache.pl.html 0600 root bin 5657 26499 985675935
1 f none squid/help/edit_cache.sv.html 0600 root bin 5142 38183 985675935
1 f none squid/help/edit_cache.zh_TW.Big5.html 0600 root bin 3273 60717 985675935
1 f none squid/help/edit_icp.es.html 0600 root bin 1982 53906 985675935
1 f none squid/help/edit_icp.html 0600 root bin 1767 27711 985675935
1 f none squid/help/edit_icp.pl.html 0600 root bin 2147 13562 985675935
1 f none squid/help/edit_icp.sv.html 0600 root bin 1942 58290 985675935
1 f none squid/help/edit_icp.zh_TW.Big5.html 0600 root bin 1215 36493 985675935
1 f none squid/help/edit_logs.es.html 0600 root bin 5359 37455 985675935
1 f none squid/help/edit_logs.html 0600 root bin 4331 57704 985675935
1 f none squid/help/edit_logs.pl.html 0600 root bin 4915 21185 985675935
1 f none squid/help/edit_logs.sv.html 0600 root bin 4700 61488 985675935
1 f none squid/help/edit_logs.zh_TW.Big5.html 0600 root bin 2925 23016 985675935
1 f none squid/help/edit_mem.es.html 0600 root bin 3011 10689 985675935
1 f none squid/help/edit_mem.html 0600 root bin 2666 39745 985675935
1 f none squid/help/edit_mem.pl.html 0600 root bin 2941 24522 985675935
1 f none squid/help/edit_mem.sv.html 0600 root bin 2979 31371 985675935
1 f none squid/help/edit_mem.zh_TW.Big5.html 0600 root bin 1702 42552 985675935
1 f none squid/help/edit_misc.es.html 0600 root bin 5511 51303 985675935
1 f none squid/help/edit_misc.html 0600 root bin 4875 42352 985675935
1 f none squid/help/edit_misc.pl.html 0600 root bin 5615 29372 985675935
1 f none squid/help/edit_misc.sv.html 0600 root bin 5218 43626 985675935
1 f none squid/help/edit_misc.zh_TW.Big5.html 0600 root bin 3485 11729 985675935
1 f none squid/help/edit_ports.es.html 0600 root bin 1192 42145 985675935
1 f none squid/help/edit_ports.html 0600 root bin 1082 29084 985675935
1 f none squid/help/edit_ports.pl.html 0600 root bin 1141 43212 985675935
1 f none squid/help/edit_ports.sv.html 0600 root bin 1153 43373 985675935
1 f none squid/help/edit_ports.zh_TW.Big5.html 0600 root bin 727 27715 985675935
1 f none squid/help/edit_progs.es.html 0600 root bin 3661 12756 985675935
1 f none squid/help/edit_progs.html 0600 root bin 3248 31437 985675935
1 f none squid/help/edit_progs.pl.html 0600 root bin 3604 26151 985675935
1 f none squid/help/edit_progs.sv.html 0600 root bin 3462 8384 985675935
1 f none squid/help/edit_progs.zh_TW.Big5.html 0600 root bin 2103 18323 985675935
1 f none squid/help/intro.es.html 0600 root bin 1569 16644 985675935
1 f none squid/help/intro.html 0600 root bin 1431 156 985675935
1 f none squid/help/intro.pl.html 0600 root bin 1603 27219 985675935
1 f none squid/help/intro.sv.html 0600 root bin 1590 24644 985675935
1 f none squid/help/intro.zh_TW.Big5.html 0600 root bin 1017 6104 985675935
1 f none squid/http_access.cgi 0700 root bin 1960 30254 985675934
1 f none squid/http_access_save.cgi 0700 root bin 978 15439 985675934
1 f none squid/icp_access.cgi 0700 root bin 1880 22319 985675934
1 f none squid/icp_access_save.cgi 0700 root bin 957 12660 985675934
1 d none squid/images 0700 root bin
1 f none squid/images/acl.gif 0600 root bin 275 34570 985675934
1 f none squid/images/admin.gif 0600 root bin 200 23141 985675934
1 f none squid/images/auth.gif 0600 root bin 390 43396 985675934
1 f none squid/images/cache.gif 0600 root bin 266 29430 985675934
1 f none squid/images/cachemgr.gif 0600 root bin 256 29660 985675934
1 f none squid/images/calamaris.gif 0600 root bin 1069 49684 985675934
1 f none squid/images/clear.gif 0600 root bin 239 27917 985675934
1 f none squid/images/down.gif 0600 root bin 108 8892 985675934
1 f none squid/images/gap.gif 0600 root bin 73 6048 985675934
1 f none squid/images/icon.gif 0600 root bin 340 38435 985675934
1 f none squid/images/icp.gif 0600 root bin 259 29070 985675934
1 f none squid/images/logs.gif 0600 root bin 470 52260 985675934
1 f none squid/images/mem.gif 0600 root bin 251 28945 985675934
1 f none squid/images/misc.gif 0600 root bin 460 53918 985675934
1 f none squid/images/nauth.gif 0600 root bin 390 43396 985675934
1 f none squid/images/ports.gif 0600 root bin 478 58145 985675934
1 f none squid/images/progs.gif 0600 root bin 295 36758 985675934
1 f none squid/images/smem.gif 0600 root bin 251 28945 985675934
1 f none squid/images/sports.gif 0600 root bin 478 58145 985675934
1 f none squid/images/up.gif 0600 root bin 103 9086 985675934
1 f none squid/index.cgi 0700 root bin 5157 9564 985675934
1 f none squid/init_cache.cgi 0700 root bin 1510 56762 985675934
1 d none squid/lang 0700 root bin
1 f none squid/lang/de 0600 root bin 18484 14037 985675935
1 f none squid/lang/en 0600 root bin 19238 16291 985675935
1 f none squid/lang/es 0600 root bin 22330 24914 985675935
1 f none squid/lang/fr 0600 root bin 23153 37252 985675935
1 f none squid/lang/pl 0600 root bin 21937 50598 985675935
1 f none squid/lang/ru_RU 0600 root bin 17125 26082 985675935
1 f none squid/lang/ru_SU 0600 root bin 17163 43828 985675935
1 f none squid/lang/sv 0600 root bin 21138 31178 985675935
1 f none squid/lang/tr 0600 root bin 18959 47369 985675935
1 f none squid/lang/zh_CN 0600 root bin 14753 57658 985675935
1 f none squid/lang/zh_TW.Big5 0600 root bin 13700 8527 985675935
1 f none squid/log_parser.pl 0600 root bin 778 192 985675935
1 f none squid/low.risk 0600 root bin 11 971 985675934
1 f none squid/low.skill 0600 root bin 9 771 985675934
1 f none squid/medium.risk 0600 root bin 11 971 985675935
1 f none squid/medium.skill 0600 root bin 9 770 985675935
1 f none squid/module.info 0600 root bin 582 60381 985675934
1 f none squid/move_always.cgi 0700 root bin 564 48677 985675935
1 f none squid/move_http.cgi 0700 root bin 547 46919 985675934
1 f none squid/move_icp.cgi 0700 root bin 536 45467 985675934
1 f none squid/move_never.cgi 0700 root bin 553 47434 985675935
1 f none squid/never.cgi 0700 root bin 1952 29503 985675935
1 f none squid/never_save.cgi 0700 root bin 962 13220 985675935
1 f none squid/parser-lib.pl 0600 root bin 3232 57964 985675935
1 f none squid/restart.cgi 0700 root bin 335 28746 985675934
1 f none squid/save_admin.cgi 0700 root bin 2213 53499 985675934
1 f none squid/save_auth.cgi 0700 root bin 1233 35160 985675934
1 f none squid/save_cache.cgi 0700 root bin 5756 1276 985675934
1 f none squid/save_cache_host.cgi 0700 root bin 2977 33805 985675934
1 f none squid/save_icp.cgi 0700 root bin 999 19537 985675934
1 f none squid/save_logs.cgi 0700 root bin 1673 8241 985675934
1 f none squid/save_mem.cgi 0700 root bin 1552 62438 985675934
1 f none squid/save_misc.cgi 0700 root bin 1929 28694 985675934
1 f none squid/save_nuser.cgi 0700 root bin 1014 15162 985675935
1 f none squid/save_ports.cgi 0700 root bin 1827 20146 985675934
1 f none squid/save_progs.cgi 0700 root bin 1832 24080 985675934
1 f none squid/save_smem.cgi 0700 root bin 2742 18666 985675935
1 f none squid/save_sports.cgi 0700 root bin 1552 61158 985675934
1 f none squid/save_user.cgi 0700 root bin 961 11326 985675934
1 f none squid/squid-lib.pl 0600 root bin 11986 24555 985675934
1 f none squid/start.cgi 0700 root bin 872 5325 985675934
1 f none squid/stop.cgi 0700 root bin 630 50850 985675934
1 d none status 0700 root bin
1 f none status/apache-monitor.pl 0600 root bin 858 3259 985675961
1 f none status/bind8-monitor.pl 0600 root bin 892 5363 985675961
1 f none status/config 0600 root bin 15 1427 985675961
1 f none status/config-corel-linux 0600 root bin 34 3018 985675961
1 f none status/config-debian-linux 0600 root bin 34 3018 985675961
1 f none status/config-freebsd 0600 root bin 34 3018 985675961
1 f none status/config-hpux 0600 root bin 29 2761 985675961
1 f none status/config-open-linux 0600 root bin 34 3018 985675961
1 f none status/config-redhat-linux 0600 root bin 34 3018 985675961
1 f none status/config-slackware-linux 0600 root bin 34 3018 985675961
1 f none status/config-solaris 0600 root bin 29 2761 985675961
1 f none status/config-suse-linux 0600 root bin 34 3018 985675961
1 f none status/config-turbo-linux 0600 root bin 34 3018 985675961
1 f none status/config.info 0600 root bin 125 11474 985675961
1 f none status/config.info.es 0600 root bin 146 13666 985675961
1 f none status/config.info.nl 0600 root bin 125 11474 985675961
1 f none status/config.info.pl 0600 root bin 146 14019 985675961
1 f none status/config.info.sv 0600 root bin 147 13924 985675961
1 f none status/config.info.zh_CN 0600 root bin 125 11474 985675961
1 f none status/dhcpd-monitor.pl 0600 root bin 580 46241 985675961
1 f none status/dnsadmin-monitor.pl 0600 root bin 612 49367 985675961
1 f none status/edit_mon.cgi 0700 root bin 3653 33700 985675961
1 f none status/edit_sched.cgi 0700 root bin 3311 12209 985675961
1 f none status/exec-monitor.pl 0600 root bin 436 36194 985675961
1 f none status/file-monitor.pl 0600 root bin 1624 64120 985675961
1 f none status/http-monitor.pl 0600 root bin 1852 14416 985675961
1 d none status/images 0700 root bin
1 f none status/images/down.gif 0600 root bin 91 7953 985675961
1 f none status/images/icon.gif 0600 root bin 2075 21934 985675961
1 f none status/images/not.gif 0600 root bin 87 6388 985675961
1 f none status/images/quest.gif 0600 root bin 79 6114 985675961
1 f none status/images/up.gif 0600 root bin 86 7526 985675961
1 f none status/index.cgi 0600 root bin 1959 25670 985675961
1 f none status/inetd-monitor.pl 0600 root bin 347 28938 985675961
1 d none status/lang 0700 root bin
1 f none status/lang/en 0600 root bin 3309 51050 985675961
1 f none status/lang/es 0600 root bin 3090 34964 985675961
1 f none status/lang/nl 0700 root bin 2958 18865 985675961
1 f none status/lang/pl 0600 root bin 3689 36177 985675961
1 f none status/lang/sv 0600 root bin 3185 51207 985675961
1 f none status/lang/zh_CN 0600 root bin 2085 21070 985675961
1 f none status/module.info 0600 root bin 236 24335 985675961
1 f none status/monitor.pl 0700 root bin 2621 15470 985675961
1 f none status/mysql-monitor.pl 0600 root bin 394 33304 985675961
1 f none status/nfs-monitor.pl 0600 root bin 273 22604 985675961
1 f none status/ping-monitor.pl 0600 root bin 1009 16645 985675961
1 f none status/postfix-monitor.pl 0600 root bin 453 38810 985675961
1 f none status/postgresql-monitor.pl 0600 root bin 429 37017 985675961
1 f none status/proc-monitor.pl 0600 root bin 589 48034 985675961
1 f none status/samba-monitor.pl 0600 root bin 398 33356 985675961
1 f none status/save_mon.cgi 0700 root bin 1319 40569 985675961
1 f none status/save_sched.cgi 0700 root bin 2934 40790 985675961
1 f none status/sendmail-monitor.pl 0600 root bin 611 49934 985675961
1 d none status/services 0700 root bin
1 f none status/services/apache.serv 0600 root bin 69 6341 985675961
1 f none status/services/bind8.serv 0600 root bin 55 4709 985675961
1 f none status/services/dhcpd.serv 0600 root bin 51 4588 985675961
1 f none status/services/dnsadmin.serv 0600 root bin 66 5924 985675961
1 f none status/services/inetd.serv 0600 root bin 68 6261 985675961
1 f none status/services/mysql.serv 0600 root bin 61 5713 985675961
1 f none status/services/nfs.serv 0600 root bin 45 4077 985675961
1 f none status/services/postfix.serv 0600 root bin 60 5848 985675961
1 f none status/services/postgresql.serv 0600 root bin 91 8740 985675961
1 f none status/services/samba.serv 0600 root bin 53 4903 985675961
1 f none status/services/sendmail.serv 0600 root bin 64 6104 985675961
1 f none status/services/squid.serv 0600 root bin 58 5502 985675961
1 f none status/services/xinetd.serv 0600 root bin 67 6402 985675961
1 f none status/squid-monitor.pl 0600 root bin 826 409 985675961
1 f none status/status-lib.pl 0600 root bin 3329 8864 985675961
1 f none status/tcp-monitor.pl 0600 root bin 1535 60353 985675961
1 f none status/xinetd-monitor.pl 0600 root bin 476 38213 985675961
1 f none switch_skill.cgi 0700 root bin 295 24944 985675910
1 f none switch_user.cgi 0700 root bin 355 29048 985675910
1 d none syslog 0700 root bin
1 f none syslog/config-aix 0600 root bin 282 25366 985675944
1 f none syslog/config-cobalt-linux 0600 root bin 284 25776 985675944
1 f none syslog/config-corel-linux 0600 root bin 284 25776 985675944
1 f none syslog/config-debian-linux 0600 root bin 284 25776 985675944
1 f none syslog/config-freebsd 0600 root bin 295 26803 985675944
1 f none syslog/config-hpux 0600 root bin 262 23689 985675944
1 f none syslog/config-irix 0600 root bin 251 22488 985675944
1 f none syslog/config-macos 0600 root bin 312 28527 985675944
1 f none syslog/config-open-linux 0600 root bin 509 47283 985675944
1 f none syslog/config-openbsd 0600 root bin 295 26803 985675944
1 f none syslog/config-redhat-linux 0600 root bin 551 51394 985675944
1 f none syslog/config-slackware-linux 0600 root bin 288 26169 985675944
1 f none syslog/config-solaris 0600 root bin 381 34919 985675944
1 f none syslog/config-suse-linux 0600 root bin 288 26169 985675944
1 f none syslog/config-turbo-linux 0600 root bin 284 25776 985675944
1 f none syslog/config-unixware 0600 root bin 282 25366 985675944
1 f none syslog/config.info 0600 root bin 568 50673 985675943
1 f none syslog/config.info.de 0600 root bin 604 54556 985675944
1 f none syslog/config.info.es 0600 root bin 690 63692 985675944
1 f none syslog/config.info.fr 0600 root bin 645 58468 985675944
1 f none syslog/config.info.hu 0600 root bin 814 16712 985675944
1 f none syslog/config.info.pl 0600 root bin 663 62524 985675944
1 f none syslog/config.info.ru_RU 0600 root bin 646 40824 985675944
1 f none syslog/config.info.ru_SU 0600 root bin 646 30957 985675944
1 f none syslog/config.info.sv 0600 root bin 591 55564 985675944
1 f none syslog/config.info.tr 0600 root bin 675 3133 985675944
1 f none syslog/config.info.zh_CN 0600 root bin 440 61912 985675944
1 f none syslog/config.info.zh_TW.Big5 0600 root bin 483 61382 985675944
1 f none syslog/edit_log.cgi 0700 root bin 6523 52164 985675944
1 d none syslog/images 0700 root bin
1 f none syslog/images/icon.gif 0600 root bin 470 52260 985675943
1 f none syslog/index.cgi 0700 root bin 4732 33796 985675944
1 d none syslog/lang 0700 root bin
1 f none syslog/lang/de 0600 root bin 2360 23297 985675944
1 f none syslog/lang/en 0600 root bin 2334 19299 985675944
1 f none syslog/lang/es 0600 root bin 2917 13561 985675944
1 f none syslog/lang/fr 0600 root bin 2381 24262 985675944
1 f none syslog/lang/hu 0600 root bin 2647 9762 985675944
1 f none syslog/lang/pl 0600 root bin 2714 2088 985675944
1 f none syslog/lang/ru_RU 0600 root bin 2362 65032 985675944
1 f none syslog/lang/ru_SU 0600 root bin 2367 29686 985675944
1 f none syslog/lang/sv 0600 root bin 2625 55470 985675944
1 f none syslog/lang/tr 0600 root bin 2360 47368 985675944
1 f none syslog/lang/zh_CN 0600 root bin 1923 7263 985675944
1 f none syslog/lang/zh_TW.Big5 0600 root bin 1722 23633 985675944
1 f none syslog/log_parser.pl 0600 root bin 636 53940 985675944
1 f none syslog/low.risk 0600 root bin 20 1734 985675944
1 f none syslog/low.skill 0600 root bin 8 660 985675944
1 f none syslog/m4.cgi 0700 root bin 768 60051 985675944
1 f none syslog/medium.risk 0600 root bin 11 971 985675944
1 f none syslog/module.info 0600 root bin 532 56837 985675943
1 f none syslog/restart.cgi 0700 root bin 320 26577 985675944
1 f none syslog/save_log.cgi 0700 root bin 3200 50492 985675944
1 f none syslog/start.cgi 0700 root bin 178 14818 985675944
1 f none syslog/syslog-lib.pl 0600 root bin 3273 39525 985675943
1 d none telnet 0700 root bin
1 f none telnet/config 0600 root bin 7 540 985675939
1 f none telnet/config-open-linux-3.1e 0600 root bin 7 541 985675941
1 f none telnet/config.info 0600 root bin 162 14697 985675939
1 f none telnet/config.info.de 0600 root bin 75 6914 985675940
1 f none telnet/config.info.es 0600 root bin 144 13403 985675940
1 f none telnet/config.info.fr 0600 root bin 73 7167 985675940
1 f none telnet/config.info.pl 0600 root bin 183 17437 985675941
1 f none telnet/config.info.ru_RU 0600 root bin 83 14703 985675941
1 f none telnet/config.info.ru_SU 0600 root bin 83 13139 985675940
1 f none telnet/config.info.sv 0600 root bin 180 16767 985675940
1 f none telnet/config.info.tr 0600 root bin 62 6423 985675941
1 f none telnet/config.info.zh_CN 0600 root bin 104 14152 985675940
1 f none telnet/config.info.zh_TW.Big5 0600 root bin 56 7534 985675940
1 d none telnet/images 0700 root bin
1 f none telnet/images/icon.gif 0600 root bin 235 29270 985675939
1 f none telnet/index.cgi 0700 root bin 1631 271 985675939
1 f none telnet/jta20.jar 0600 root bin 212305 45345 985675941
1 d none telnet/lang 0700 root bin
1 f none telnet/lang/de 0600 root bin 371 33498 985675940
1 f none telnet/lang/en 0600 root bin 471 43130 985675940
1 f none telnet/lang/es 0600 root bin 459 42503 985675940
1 f none telnet/lang/fr 0600 root bin 307 28615 985675940
1 f none telnet/lang/it 0600 root bin 288 26411 985675940
1 f none telnet/lang/pl 0600 root bin 499 46740 985675940
1 f none telnet/lang/pt 0600 root bin 299 27900 985675940
1 f none telnet/lang/ru_RU 0600 root bin 328 49869 985675940
1 f none telnet/lang/ru_SU 0600 root bin 328 45569 985675940
1 f none telnet/lang/sv 0600 root bin 470 43568 985675940
1 f none telnet/lang/tr 0600 root bin 492 49391 985675940
1 f none telnet/lang/zh_CN 0600 root bin 418 47016 985675940
1 f none telnet/lang/zh_TW.Big5 0600 root bin 254 27349 985675940
1 f none telnet/module.info 0600 root bin 378 36332 985675939
1 f none telnet/ssh.conf 0600 root bin 1331 46966 985675941
1 f none telnet/telnet.conf 0600 root bin 2876 26700 985675941
1 f none thirdparty.pl 0600 root bin 1770 7116 985675910
1 d none time 0700 root bin
1 f none time/acl_security.pl 0600 root bin 784 58315 985675942
1 f none time/apply.cgi 0700 root bin 3489 8100 985675942
1 f none time/config 0600 root bin 116 10888 985675942
1 f none time/config-hpux 0600 root bin 27 2289 985675942
1 f none time/config-macos 0600 root bin 116 10888 985675942
1 f none time/config-solaris 0600 root bin 116 10887 985675942
1 f none time/config.info 0600 root bin 360 32594 985675942
1 f none time/config.info.de 0600 root bin 117 11091 985675942
1 f none time/config.info.es 0600 root bin 423 38747 985675942
1 f none time/config.info.fr 0600 root bin 82 7904 985675942
1 f none time/config.info.pl 0600 root bin 396 37853 985675942
1 f none time/config.info.ru_RU 0600 root bin 87 17358 985675942
1 f none time/config.info.ru_SU 0600 root bin 87 15327 985675942
1 f none time/config.info.sv 0600 root bin 303 29399 985675942
1 f none time/config.info.tr 0600 root bin 122 12427 985675942
1 f none time/config.info.zh_CN 0600 root bin 144 22508 985675942
1 f none time/config.info.zh_TW.Big5 0600 root bin 45 7274 985675942
1 f none time/defaultacl 0600 root bin 30 2610 985675942
1 d none time/help 0700 root bin
1 f none time/help/hardware_time.es.html 0600 root bin 60 5183 985675942
1 f none time/help/hardware_time.fr.html 0600 root bin 74 7200 985675942
1 f none time/help/hardware_time.html 0600 root bin 51 4473 985675942
1 f none time/help/hardware_time.hu.html 0600 root bin 51 5021 985675942
1 f none time/help/hardware_time.pl.html 0600 root bin 64 6070 985675942
1 f none time/help/hardware_time.ru_RU.html 0600 root bin 80 13854 985675942
1 f none time/help/hardware_time.ru_SU.html 0600 root bin 80 12544 985675942
1 f none time/help/hardware_time.sv.html 0600 root bin 54 5023 985675942
1 f none time/help/hardware_time.zh_TW.Big5.html 0600 root bin 46 4676 985675942
1 f none time/help/index.es.html 0600 root bin 246 22261 985675942
1 f none time/help/index.fr.html 0600 root bin 202 19197 985675942
1 f none time/help/index.html 0600 root bin 213 19097 985675942
1 f none time/help/index.hu.html 0600 root bin 240 25296 985675942
1 f none time/help/index.pl.html 0600 root bin 265 25886 985675942
1 f none time/help/index.ru_RU.html 0600 root bin 308 58097 985675942
1 f none time/help/index.ru_SU.html 0600 root bin 308 51404 985675942
1 f none time/help/index.sv.html 0600 root bin 227 22254 985675942
1 f none time/help/index.zh_TW.Big5.html 0600 root bin 117 14961 985675942
1 f none time/help/system_time.es.html 0600 root bin 59 5165 985675942
1 f none time/help/system_time.fr.html 0600 root bin 84 8275 985675942
1 f none time/help/system_time.html 0600 root bin 62 5649 985675942
1 f none time/help/system_time.hu.html 0600 root bin 60 5883 985675942
1 f none time/help/system_time.pl.html 0600 root bin 83 7805 985675942
1 f none time/help/system_time.ru_RU.html 0600 root bin 64 10448 985675942
1 f none time/help/system_time.ru_SU.html 0600 root bin 64 9539 985675942
1 f none time/help/system_time.sv.html 0600 root bin 60 5460 985675942
1 f none time/help/system_time.zh_TW.Big5.html 0600 root bin 41 5176 985675942
1 f none time/help/timeserver.es.html 0600 root bin 280 25253 985675942
1 f none time/help/timeserver.fr.html 0600 root bin 251 23871 985675942
1 f none time/help/timeserver.html 0600 root bin 236 21254 985675942
1 f none time/help/timeserver.hu.html 0600 root bin 259 26652 985675942
1 f none time/help/timeserver.pl.html 0600 root bin 286 28117 985675942
1 f none time/help/timeserver.ru_RU.html 0600 root bin 290 53031 985675942
1 f none time/help/timeserver.ru_SU.html 0600 root bin 290 47238 985675942
1 f none time/help/timeserver.sv.html 0600 root bin 211 20223 985675942
1 f none time/help/timeserver.zh_TW.Big5.html 0600 root bin 178 23279 985675942
1 d none time/images 0700 root bin
1 f none time/images/icon.gif 0600 root bin 529 63918 985675942
1 f none time/index.cgi 0700 root bin 5354 10781 985675942
1 d none time/lang 0700 root bin
1 f none time/lang/de 0600 root bin 735 2770 985675942
1 f none time/lang/en 0600 root bin 1279 54567 985675942
1 f none time/lang/es 0600 root bin 1482 7906 985675942
1 f none time/lang/fr 0600 root bin 989 32820 985675942
1 f none time/lang/hu 0600 root bin 982 39904 985675942
1 f none time/lang/pl 0600 root bin 1505 19611 985675942
1 f none time/lang/ru_RU 0600 root bin 913 24465 985675942
1 f none time/lang/ru_SU 0600 root bin 918 10490 985675942
1 f none time/lang/sv 0600 root bin 1308 65505 985675942
1 f none time/lang/tr 0600 root bin 1430 14858 985675942
1 f none time/lang/zh_CN 0600 root bin 984 7677 985675942
1 f none time/lang/zh_TW.Big5 0600 root bin 644 17770 985675942
1 f none time/log_parser.pl 0600 root bin 754 63479 985675942
1 f none time/module.info 0600 root bin 459 48862 985675942
1 f none time/time-lib.pl 0700 root bin 1218 23671 985675942
1 f none time/try.cgi 0700 root bin 185 13029 985675942
1 f none user_chooser.cgi 0700 root bin 4328 15474 985675910
1 d none useradmin 0700 root bin
1 f none useradmin/acl_security.pl 0600 root bin 7950 64352 985675920
1 f none useradmin/aix-lib.pl 0600 root bin 1343 42668 985675920
1 f none useradmin/batch_exec.cgi 0600 root bin 8856 7014 985675920
1 f none useradmin/batch_form.cgi 0600 root bin 2438 13757 985675920
1 f none useradmin/cobalt-linux-lib.pl 0600 root bin 4597 16550 985675919
1 f none useradmin/config-aix 0600 root bin 360 33471 985675919
1 f none useradmin/config-cobalt-linux 0600 root bin 363 33430 985675920
1 f none useradmin/config-corel-linux 0600 root bin 318 29091 985675920
1 f none useradmin/config-debian-linux 0600 root bin 318 29091 985675919
1 f none useradmin/config-freebsd 0600 root bin 365 33666 985675919
1 f none useradmin/config-hpux 0600 root bin 312 28679 985675919
1 f none useradmin/config-irix 0600 root bin 471 43987 985675920
1 f none useradmin/config-open-linux 0600 root bin 340 31452 985675920
1 f none useradmin/config-openbsd 0600 root bin 355 32751 985675919
1 f none useradmin/config-osf1 0600 root bin 312 28678 985675920
1 f none useradmin/config-redhat-linux 0600 root bin 330 30359 985675919
1 f none useradmin/config-slackware-linux 0600 root bin 316 29003 985675920
1 f none useradmin/config-solaris 0600 root bin 328 30024 985675919
1 f none useradmin/config-suse-linux 0600 root bin 330 30358 985675919
1 f none useradmin/config-turbo-linux 0600 root bin 330 30358 985675919
1 f none useradmin/config-unixware 0600 root bin 328 30024 985675920
1 f none useradmin/config.info 0600 root bin 1259 49273 985675919
1 f none useradmin/config.info.de 0600 root bin 1135 38863 985675919
1 f none useradmin/config.info.es 0600 root bin 1509 8770 985675920
1 f none useradmin/config.info.fr 0600 root bin 1157 43634 985675920
1 f none useradmin/config.info.pl 0600 root bin 1462 10602 985675920
1 f none useradmin/config.info.ru_RU 0600 root bin 1026 42201 985675920
1 f none useradmin/config.info.ru_SU 0600 root bin 1027 25670 985675920
1 f none useradmin/config.info.sv 0600 root bin 1263 56136 985675920
1 f none useradmin/config.info.tr 0600 root bin 1080 46790 985675920
1 f none useradmin/config.info.zh_CN 0600 root bin 820 53304 985675920
1 f none useradmin/config.info.zh_TW.Big5 0600 root bin 730 26796 985675920
1 f none useradmin/corel-linux-lib.pl 0600 root bin 4597 16550 985675919
1 f none useradmin/debian-linux-lib.pl 0600 root bin 4597 16550 985675920
1 f none useradmin/defaultacl 0600 root bin 142 12422 985675920
1 f none useradmin/delete_group.cgi 0700 root bin 1745 12118 985675919
1 f none useradmin/delete_user.cgi 0700 root bin 3616 25965 985675919
1 f none useradmin/edit_group.cgi 0700 root bin 3692 42982 985675919
1 f none useradmin/edit_user.cgi 0700 root bin 14219 36359 985675918
1 f none useradmin/freebsd-lib.pl 0600 root bin 1261 35095 985675920
1 d none useradmin/help 0700 root bin
1 f none useradmin/help.html 0600 root bin 6949 14638 985675919
1 f none useradmin/help/2nd.es.html 0600 root bin 285 26532 985675920
1 f none useradmin/help/2nd.fr.html 0600 root bin 306 28813 985675919
1 f none useradmin/help/2nd.html 0600 root bin 255 23348 985675919
1 f none useradmin/help/2nd.pl.html 0600 root bin 297 29708 985675920
1 f none useradmin/help/2nd.ru_RU.html 0600 root bin 310 60392 985675920
1 f none useradmin/help/2nd.ru_SU.html 0600 root bin 310 53224 985675919
1 f none useradmin/help/2nd.sv.html 0600 root bin 250 24942 985675920
1 f none useradmin/help/2nd.zh_TW.Big5.html 0600 root bin 136 20415 985675920
1 f none useradmin/help/change.es.html 0600 root bin 179 15883 985675919
1 f none useradmin/help/change.fr.html 0600 root bin 172 15841 985675919
1 f none useradmin/help/change.html 0600 root bin 152 13713 985675919
1 f none useradmin/help/change.pl.html 0600 root bin 130 12198 985675920
1 f none useradmin/help/change.ru_RU.html 0600 root bin 143 23651 985675920
1 f none useradmin/help/change.ru_SU.html 0600 root bin 143 21215 985675919
1 f none useradmin/help/change.sv.html 0600 root bin 133 13001 985675920
1 f none useradmin/help/change.zh_TW.Big5.html 0600 root bin 108 13545 985675920
1 f none useradmin/help/change2.es.html 0600 root bin 241 21507 985675919
1 f none useradmin/help/change2.fr.html 0600 root bin 274 25258 985675919
1 f none useradmin/help/change2.html 0600 root bin 210 18765 985675919
1 f none useradmin/help/change2.pl.html 0600 root bin 221 21677 985675920
1 f none useradmin/help/change2.ru_RU.html 0600 root bin 206 38447 985675920
1 f none useradmin/help/change2.ru_SU.html 0600 root bin 206 33948 985675919
1 f none useradmin/help/change2.sv.html 0600 root bin 201 20120 985675920
1 f none useradmin/help/change2.zh_TW.Big5.html 0600 root bin 135 19420 985675920
1 f none useradmin/help/chgid.es.html 0600 root bin 596 55259 985675919
1 f none useradmin/help/chgid.fr.html 0600 root bin 566 54315 985675919
1 f none useradmin/help/chgid.html 0600 root bin 476 42541 985675919
1 f none useradmin/help/chgid.pl.html 0600 root bin 571 56463 985675920
1 f none useradmin/help/chgid.ru_RU.html 0600 root bin 536 35778 985675920
1 f none useradmin/help/chgid.ru_SU.html 0600 root bin 536 24067 985675919
1 f none useradmin/help/chgid.sv.html 0600 root bin 426 40374 985675920
1 f none useradmin/help/chgid.zh_TW.Big5.html 0600 root bin 323 49175 985675920
1 f none useradmin/help/chuid.es.html 0600 root bin 596 55141 985675920
1 f none useradmin/help/chuid.fr.html 0600 root bin 602 57388 985675919
1 f none useradmin/help/chuid.html 0600 root bin 465 41366 985675919
1 f none useradmin/help/chuid.pl.html 0600 root bin 568 56199 985675920
1 f none useradmin/help/chuid.ru_RU.html 0600 root bin 511 30604 985675920
1 f none useradmin/help/chuid.ru_SU.html 0600 root bin 511 19383 985675919
1 f none useradmin/help/chuid.sv.html 0600 root bin 427 40753 985675920
1 f none useradmin/help/chuid.zh_TW.Big5.html 0600 root bin 325 49985 985675920
1 f none useradmin/help/class.es.html 0600 root bin 250 22416 985675920
1 f none useradmin/help/class.fr.html 0600 root bin 290 26365 985675919
1 f none useradmin/help/class.html 0600 root bin 218 19318 985675919
1 f none useradmin/help/class.pl.html 0600 root bin 257 24598 985675920
1 f none useradmin/help/class.ru_RU.html 0600 root bin 250 41896 985675920
1 f none useradmin/help/class.ru_SU.html 0600 root bin 250 37392 985675919
1 f none useradmin/help/class.sv.html 0600 root bin 234 22409 985675920
1 f none useradmin/help/class.zh_TW.Big5.html 0600 root bin 166 20584 985675920
1 f none useradmin/help/copy_files.es.html 0600 root bin 472 43718 985675919
1 f none useradmin/help/copy_files.fr.html 0600 root bin 444 41504 985675919
1 f none useradmin/help/copy_files.html 0600 root bin 423 37809 985675919
1 f none useradmin/help/copy_files.pl.html 0600 root bin 502 47955 985675920
1 f none useradmin/help/copy_files.ru_RU.html 0600 root bin 451 12531 985675920
1 f none useradmin/help/copy_files.ru_SU.html 0600 root bin 451 3910 985675919
1 f none useradmin/help/copy_files.sv.html 0600 root bin 398 37847 985675920
1 f none useradmin/help/copy_files.zh_TW.Big5.html 0600 root bin 311 40791 985675920
1 f none useradmin/help/create_group.es.html 0600 root bin 215 19669 985675919
1 f none useradmin/help/create_group.fr.html 0600 root bin 200 18785 985675919
1 f none useradmin/help/create_group.html 0600 root bin 184 16453 985675919
1 f none useradmin/help/create_group.pl.html 0600 root bin 165 16496 985675920
1 f none useradmin/help/create_group.ru_RU.html 0600 root bin 190 35357 985675920
1 f none useradmin/help/create_group.ru_SU.html 0600 root bin 190 31494 985675919
1 f none useradmin/help/create_group.sv.html 0600 root bin 190 18218 985675920
1 f none useradmin/help/create_group.zh_TW.Big5.html 0600 root bin 131 18958 985675920
1 f none useradmin/help/create_user.es.html 0600 root bin 112 10147 985675919
1 f none useradmin/help/create_user.fr.html 0600 root bin 124 11504 985675919
1 f none useradmin/help/create_user.html 0600 root bin 98 8578 985675919
1 f none useradmin/help/create_user.pl.html 0600 root bin 110 10810 985675920
1 f none useradmin/help/create_user.ru_RU.html 0600 root bin 106 18610 985675920
1 f none useradmin/help/create_user.ru_SU.html 0600 root bin 106 16783 985675919
1 f none useradmin/help/create_user.sv.html 0600 root bin 115 10932 985675920
1 f none useradmin/help/create_user.zh_TW.Big5.html 0600 root bin 141 21034 985675920
1 f none useradmin/help/edit_group.es.html 0600 root bin 197 18075 985675920
1 f none useradmin/help/edit_group.fr.html 0600 root bin 201 18548 985675919
1 f none useradmin/help/edit_group.html 0600 root bin 175 15573 985675919
1 f none useradmin/help/edit_group.pl.html 0600 root bin 168 16461 985675920
1 f none useradmin/help/edit_group.ru_RU.html 0600 root bin 173 32122 985675920
1 f none useradmin/help/edit_group.ru_SU.html 0600 root bin 173 28633 985675919
1 f none useradmin/help/edit_group.sv.html 0600 root bin 144 13507 985675920
1 f none useradmin/help/edit_group.zh_TW.Big5.html 0600 root bin 123 17219 985675920
1 f none useradmin/help/edit_user.es.html 0600 root bin 203 18732 985675920
1 f none useradmin/help/edit_user.fr.html 0600 root bin 209 20022 985675919
1 f none useradmin/help/edit_user.html 0600 root bin 177 15805 985675919
1 f none useradmin/help/edit_user.pl.html 0600 root bin 189 18842 985675920
1 f none useradmin/help/edit_user.ru_RU.html 0600 root bin 220 42787 985675920
1 f none useradmin/help/edit_user.ru_SU.html 0600 root bin 220 37880 985675919
1 f none useradmin/help/edit_user.sv.html 0600 root bin 160 15515 985675920
1 f none useradmin/help/edit_user.zh_TW.Big5.html 0600 root bin 129 18509 985675920
1 f none useradmin/help/expire.es.html 0600 root bin 146 13097 985675920
1 f none useradmin/help/expire.fr.html 0600 root bin 148 13633 985675919
1 f none useradmin/help/expire.html 0600 root bin 152 13555 985675919
1 f none useradmin/help/expire.pl.html 0600 root bin 142 13931 985675920
1 f none useradmin/help/expire.ru_RU.html 0600 root bin 181 34573 985675920
1 f none useradmin/help/expire.ru_SU.html 0600 root bin 181 30581 985675919
1 f none useradmin/help/expire.sv.html 0600 root bin 143 14034 985675920
1 f none useradmin/help/expire.zh_TW.Big5.html 0600 root bin 101 13819 985675920
1 f none useradmin/help/expire2.es.html 0600 root bin 180 16155 985675920
1 f none useradmin/help/expire2.fr.html 0600 root bin 196 17919 985675919
1 f none useradmin/help/expire2.html 0600 root bin 188 16688 985675919
1 f none useradmin/help/expire2.pl.html 0600 root bin 142 13931 985675920
1 f none useradmin/help/expire2.ru_RU.html 0600 root bin 168 30032 985675920
1 f none useradmin/help/expire2.ru_SU.html 0600 root bin 168 26768 985675919
1 f none useradmin/help/expire2.sv.html 0600 root bin 187 18189 985675920
1 f none useradmin/help/expire2.zh_TW.Big5.html 0600 root bin 131 17807 985675920
1 f none useradmin/help/findform.es.html 0600 root bin 297 27576 985675920
1 f none useradmin/help/findform.fr.html 0600 root bin 356 33278 985675919
1 f none useradmin/help/findform.html 0600 root bin 265 23578 985675919
1 f none useradmin/help/findform.pl.html 0600 root bin 372 37326 985675920
1 f none useradmin/help/findform.ru_RU.html 0600 root bin 352 2188 985675920
1 f none useradmin/help/findform.ru_SU.html 0600 root bin 352 59859 985675919
1 f none useradmin/help/findform.sv.html 0600 root bin 337 32994 985675920
1 f none useradmin/help/findform.zh_TW.Big5.html 0600 root bin 209 30913 985675920
1 f none useradmin/help/gchgid.es.html 0600 root bin 579 53479 985675920
1 f none useradmin/help/gchgid.fr.html 0600 root bin 542 51532 985675919
1 f none useradmin/help/gchgid.html 0600 root bin 494 44112 985675919
1 f none useradmin/help/gchgid.pl.html 0600 root bin 587 58372 985675920
1 f none useradmin/help/gchgid.ru_RU.html 0600 root bin 597 45717 985675920
1 f none useradmin/help/gchgid.ru_SU.html 0600 root bin 597 32865 985675919
1 f none useradmin/help/gchgid.sv.html 0600 root bin 470 44229 985675920
1 f none useradmin/help/gchgid.zh_TW.Big5.html 0600 root bin 324 49559 985675920
1 f none useradmin/help/ggid.es.html 0600 root bin 401 35721 985675920
1 f none useradmin/help/ggid.fr.html 0600 root bin 460 43613 985675919
1 f none useradmin/help/ggid.html 0600 root bin 377 33496 985675919
1 f none useradmin/help/ggid.pl.html 0600 root bin 397 38166 985675920
1 f none useradmin/help/ggid.ru_RU.html 0600 root bin 369 680 985675920
1 f none useradmin/help/ggid.ru_SU.html 0600 root bin 369 58693 985675919
1 f none useradmin/help/ggid.sv.html 0600 root bin 401 38051 985675920
1 f none useradmin/help/ggid.zh_TW.Big5.html 0600 root bin 270 37136 985675920
1 f none useradmin/help/ggroup.es.html 0600 root bin 165 14788 985675920
1 f none useradmin/help/ggroup.fr.html 0600 root bin 148 13138 985675919
1 f none useradmin/help/ggroup.html 0600 root bin 146 13043 985675919
1 f none useradmin/help/ggroup.pl.html 0600 root bin 145 14199 985675920
1 f none useradmin/help/ggroup.ru_RU.html 0600 root bin 140 25516 985675920
1 f none useradmin/help/ggroup.ru_SU.html 0600 root bin 140 22574 985675919
1 f none useradmin/help/ggroup.sv.html 0600 root bin 145 13649 985675920
1 f none useradmin/help/ggroup.zh_TW.Big5.html 0600 root bin 109 15296 985675920
1 f none useradmin/help/gmembers.es.html 0600 root bin 473 43384 985675920
1 f none useradmin/help/gmembers.fr.html 0600 root bin 475 42721 985675919
1 f none useradmin/help/gmembers.html 0600 root bin 432 38911 985675919
1 f none useradmin/help/gmembers.pl.html 0600 root bin 484 48004 985675920
1 f none useradmin/help/gmembers.ru_RU.html 0600 root bin 503 30245 985675920
1 f none useradmin/help/gmembers.ru_SU.html 0600 root bin 503 18943 985675919
1 f none useradmin/help/gmembers.sv.html 0600 root bin 448 43318 985675920
1 f none useradmin/help/gmembers.zh_TW.Big5.html 0600 root bin 277 38710 985675920
1 f none useradmin/help/gpasswd.es.html 0600 root bin 142 12654 985675920
1 f none useradmin/help/gpasswd.fr.html 0600 root bin 174 16324 985675919
1 f none useradmin/help/gpasswd.html 0600 root bin 124 11202 985675919
1 f none useradmin/help/gpasswd.pl.html 0600 root bin 127 12596 985675920
1 f none useradmin/help/gpasswd.ru_RU.html 0600 root bin 145 26479 985675920
1 f none useradmin/help/gpasswd.ru_SU.html 0600 root bin 145 23568 985675919
1 f none useradmin/help/gpasswd.sv.html 0600 root bin 106 10476 985675920
1 f none useradmin/help/gpasswd.zh_TW.Big5.html 0600 root bin 91 11983 985675920
1 f none useradmin/help/group.es.html 0600 root bin 601 55452 985675920
1 f none useradmin/help/group.fr.html 0600 root bin 546 51470 985675919
1 f none useradmin/help/group.html 0600 root bin 506 45779 985675919
1 f none useradmin/help/group.pl.html 0600 root bin 601 59933 985675920
1 f none useradmin/help/group.ru_RU.html 0600 root bin 638 57358 985675920
1 f none useradmin/help/group.ru_SU.html 0600 root bin 638 42467 985675919
1 f none useradmin/help/group.sv.html 0600 root bin 449 44728 985675920
1 f none useradmin/help/group.zh_TW.Big5.html 0600 root bin 293 42619 985675920
1 f none useradmin/help/home.es.html 0600 root bin 590 55047 985675920
1 f none useradmin/help/home.fr.html 0600 root bin 617 58774 985675919
1 f none useradmin/help/home.html 0600 root bin 530 48028 985675919
1 f none useradmin/help/home.pl.html 0600 root bin 601 59404 985675920
1 f none useradmin/help/home.ru_RU.html 0600 root bin 730 8263 985675920
1 f none useradmin/help/home.ru_SU.html 0600 root bin 730 57711 985675919
1 f none useradmin/help/home.sv.html 0600 root bin 534 51421 985675920
1 f none useradmin/help/home.zh_TW.Big5.html 0600 root bin 401 56946 985675920
1 f none useradmin/help/inactive.es.html 0600 root bin 102 9429 985675920
1 f none useradmin/help/inactive.fr.html 0600 root bin 110 10196 985675919
1 f none useradmin/help/inactive.html 0600 root bin 146 12988 985675919
1 f none useradmin/help/inactive.pl.html 0600 root bin 188 18325 985675920
1 f none useradmin/help/inactive.ru_RU.html 0600 root bin 186 35559 985675920
1 f none useradmin/help/inactive.ru_SU.html 0600 root bin 186 31408 985675919
1 f none useradmin/help/inactive.sv.html 0600 root bin 134 12202 985675920
1 f none useradmin/help/inactive.zh_TW.Big5.html 0600 root bin 71 9774 985675920
1 f none useradmin/help/intro.es.html 0600 root bin 2559 36652 985675920
1 f none useradmin/help/intro.fr.html 0600 root bin 2593 44645 985675919
1 f none useradmin/help/intro.html 0600 root bin 2220 628 985675919
1 f none useradmin/help/intro.pl.html 0600 root bin 2551 52863 985675920
1 f none useradmin/help/intro.ru_RU.html 0600 root bin 2552 18470 985675920
1 f none useradmin/help/intro.ru_SU.html 0600 root bin 2552 27997 985675919
1 f none useradmin/help/intro.sv.html 0600 root bin 2244 19144 985675920
1 f none useradmin/help/intro.zh_TW.Big5.html 0600 root bin 1504 19535 985675920
1 f none useradmin/help/list_logins.es.html 0600 root bin 291 26648 985675920
1 f none useradmin/help/list_logins.fr.html 0600 root bin 285 25832 985675919
1 f none useradmin/help/list_logins.html 0600 root bin 249 22601 985675919
1 f none useradmin/help/list_logins.pl.html 0600 root bin 295 29100 985675920
1 f none useradmin/help/list_logins.ru_RU.html 0600 root bin 286 53885 985675920
1 f none useradmin/help/list_logins.ru_SU.html 0600 root bin 286 47686 985675919
1 f none useradmin/help/list_logins.sv.html 0600 root bin 261 25612 985675920
1 f none useradmin/help/list_logins.zh_TW.Big5.html 0600 root bin 161 23338 985675920
1 f none useradmin/help/makehome.es.html 0600 root bin 192 17517 985675920
1 f none useradmin/help/makehome.fr.html 0600 root bin 180 17319 985675919
1 f none useradmin/help/makehome.html 0600 root bin 184 16607 985675919
1 f none useradmin/help/makehome.pl.html 0600 root bin 226 22148 985675920
1 f none useradmin/help/makehome.ru_RU.html 0600 root bin 180 31369 985675920
1 f none useradmin/help/makehome.ru_SU.html 0600 root bin 180 27995 985675919
1 f none useradmin/help/makehome.sv.html 0600 root bin 180 16750 985675920
1 f none useradmin/help/makehome.zh_TW.Big5.html 0600 root bin 139 19190 985675920
1 f none useradmin/help/max.es.html 0600 root bin 256 23764 985675920
1 f none useradmin/help/max.fr.html 0600 root bin 225 21031 985675919
1 f none useradmin/help/max.html 0600 root bin 196 17843 985675919
1 f none useradmin/help/max.pl.html 0600 root bin 235 23218 985675920
1 f none useradmin/help/max.ru_RU.html 0600 root bin 222 41418 985675920
1 f none useradmin/help/max.ru_SU.html 0600 root bin 222 36711 985675919
1 f none useradmin/help/max.sv.html 0600 root bin 228 22761 985675920
1 f none useradmin/help/max.zh_TW.Big5.html 0600 root bin 124 17350 985675920
1 f none useradmin/help/min.es.html 0600 root bin 117 11111 985675920
1 f none useradmin/help/min.fr.html 0600 root bin 120 10885 985675919
1 f none useradmin/help/min.html 0600 root bin 106 9699 985675919
1 f none useradmin/help/min.pl.html 0600 root bin 128 12524 985675920
1 f none useradmin/help/min.ru_RU.html 0600 root bin 99 17617 985675920
1 f none useradmin/help/min.ru_SU.html 0600 root bin 99 15711 985675919
1 f none useradmin/help/min.sv.html 0600 root bin 117 11370 985675920
1 f none useradmin/help/min.zh_TW.Big5.html 0600 root bin 60 7710 985675920
1 f none useradmin/help/movehome.es.html 0600 root bin 376 34941 985675920
1 f none useradmin/help/movehome.fr.html 0600 root bin 362 35175 985675919
1 f none useradmin/help/movehome.html 0600 root bin 327 29793 985675919
1 f none useradmin/help/movehome.pl.html 0600 root bin 360 35558 985675920
1 f none useradmin/help/movehome.ru_RU.html 0600 root bin 363 4447 985675920
1 f none useradmin/help/movehome.ru_SU.html 0600 root bin 363 61788 985675919
1 f none useradmin/help/movehome.sv.html 0600 root bin 295 28554 985675920
1 f none useradmin/help/movehome.zh_TW.Big5.html 0600 root bin 227 31870 985675920
1 f none useradmin/help/pass.es.html 0600 root bin 1449 61800 985675920
1 f none useradmin/help/pass.fr.html 0600 root bin 1437 63707 985675919
1 f none useradmin/help/pass.html 0600 root bin 1214 40482 985675919
1 f none useradmin/help/pass.pl.html 0600 root bin 1293 57013 985675920
1 f none useradmin/help/pass.ru_RU.html 0600 root bin 1440 53150 985675920
1 f none useradmin/help/pass.ru_SU.html 0600 root bin 1440 25793 985675919
1 f none useradmin/help/pass.sv.html 0600 root bin 1190 47025 985675920
1 f none useradmin/help/pass.zh_TW.Big5.html 0600 root bin 825 40962 985675920
1 f none useradmin/help/real.es.html 0600 root bin 183 16802 985675920
1 f none useradmin/help/real.fr.html 0600 root bin 193 17749 985675919
1 f none useradmin/help/real.html 0600 root bin 158 14050 985675919
1 f none useradmin/help/real.pl.html 0600 root bin 201 19353 985675920
1 f none useradmin/help/real.ru_RU.html 0600 root bin 208 37343 985675920
1 f none useradmin/help/real.ru_SU.html 0600 root bin 208 33142 985675919
1 f none useradmin/help/real.sv.html 0600 root bin 136 12637 985675920
1 f none useradmin/help/real.zh_TW.Big5.html 0600 root bin 133 18214 985675920
1 f none useradmin/help/shell.es.html 0600 root bin 881 14571 985675920
1 f none useradmin/help/shell.fr.html 0600 root bin 895 16399 985675919
1 f none useradmin/help/shell.html 0600 root bin 786 3970 985675919
1 f none useradmin/help/shell.pl.html 0600 root bin 944 27804 985675920
1 f none useradmin/help/shell.ru_RU.html 0600 root bin 936 31203 985675920
1 f none useradmin/help/shell.ru_SU.html 0600 root bin 936 14071 985675919
1 f none useradmin/help/shell.sv.html 0600 root bin 847 14369 985675920
1 f none useradmin/help/shell.zh_TW.Big5.html 0600 root bin 641 19052 985675920
1 f none useradmin/help/uid.es.html 0600 root bin 756 2791 985675920
1 f none useradmin/help/uid.fr.html 0600 root bin 788 10405 985675919
1 f none useradmin/help/uid.html 0600 root bin 676 59366 985675919
1 f none useradmin/help/uid.pl.html 0600 root bin 846 17277 985675920
1 f none useradmin/help/uid.ru_RU.html 0600 root bin 814 17175 985675920
1 f none useradmin/help/uid.ru_SU.html 0600 root bin 814 109 985675919
1 f none useradmin/help/uid.sv.html 0600 root bin 710 2694 985675920
1 f none useradmin/help/uid.zh_TW.Big5.html 0600 root bin 514 6054 985675920
1 f none useradmin/help/user.es.html 0600 root bin 97 8521 985675920
1 f none useradmin/help/user.fr.html 0600 root bin 120 10793 985675919
1 f none useradmin/help/user.html 0600 root bin 82 7187 985675919
1 f none useradmin/help/user.pl.html 0600 root bin 94 8955 985675920
1 f none useradmin/help/user.ru_RU.html 0600 root bin 97 17264 985675920
1 f none useradmin/help/user.ru_SU.html 0600 root bin 97 15468 985675919
1 f none useradmin/help/user.sv.html 0600 root bin 90 8664 985675920
1 f none useradmin/help/user.zh_TW.Big5.html 0600 root bin 72 9069 985675920
1 f none useradmin/help/warn.es.html 0600 root bin 172 15730 985675920
1 f none useradmin/help/warn.fr.html 0600 root bin 208 19845 985675919
1 f none useradmin/help/warn.html 0600 root bin 142 12897 985675919
1 f none useradmin/help/warn.pl.html 0600 root bin 153 14992 985675920
1 f none useradmin/help/warn.ru_RU.html 0600 root bin 237 44715 985675920
1 f none useradmin/help/warn.ru_SU.html 0600 root bin 237 39546 985675919
1 f none useradmin/help/warn.sv.html 0600 root bin 149 14590 985675920
1 f none useradmin/help/warn.zh_TW.Big5.html 0600 root bin 88 12075 985675920
1 f none useradmin/hpux-lib.pl 0600 root bin 1192 30005 985675919
1 d none useradmin/images 0700 root bin
1 f none useradmin/images/group.gif 0600 root bin 498 56003 985675918
1 f none useradmin/images/icon.gif 0600 root bin 390 43396 985675918
1 f none useradmin/images/user.gif 0600 root bin 223 25871 985675918
1 f none useradmin/index.cgi 0700 root bin 9330 11918 985675918
1 f none useradmin/irix-lib.pl 0600 root bin 1263 36263 985675920
1 d none useradmin/lang 0700 root bin
1 f none useradmin/lang/de 0600 root bin 9708 58320 985675919
1 f none useradmin/lang/en 0600 root bin 11922 55388 985675919
1 f none useradmin/lang/es 0600 root bin 10568 17061 985675919
1 f none useradmin/lang/fr 0600 root bin 9706 35385 985675919
1 f none useradmin/lang/he 0600 root bin 8326 56722 985675919
1 f none useradmin/lang/pl 0600 root bin 13597 43313 985675919
1 f none useradmin/lang/pt 0600 root bin 7147 35348 985675919
1 f none useradmin/lang/ru_RU 0600 root bin 8662 19900 985675919
1 f none useradmin/lang/ru_SU 0600 root bin 8672 13942 985675919
1 f none useradmin/lang/sv 0600 root bin 12536 42574 985675919
1 f none useradmin/lang/tr 0600 root bin 9292 54596 985675919
1 f none useradmin/lang/zh_CN 0600 root bin 6300 33483 985675919
1 f none useradmin/lang/zh_TW.Big5 0600 root bin 6359 42296 985675919
1 f none useradmin/linux-lib.pl 0600 root bin 4597 16550 985675919
1 f none useradmin/list_logins.cgi 0700 root bin 1678 2231 985675919
1 f none useradmin/log_parser.pl 0600 root bin 1172 28597 985675920
1 f none useradmin/low.risk 0600 root bin 302 27343 985675920
1 f none useradmin/low.skill 0600 root bin 50 4436 985675920
1 f none useradmin/many_create.cgi 0700 root bin 3933 42648 985675920
1 f none useradmin/many_form.cgi 0700 root bin 1419 56112 985675920
1 f none useradmin/medium.risk 0600 root bin 142 12415 985675920
1 f none useradmin/medium.skill 0600 root bin 8 672 985675920
1 f none useradmin/module.info 0600 root bin 565 60994 985675918
1 f none useradmin/my_group_chooser.cgi 0700 root bin 4725 46670 985675920
1 f none useradmin/my_user_chooser.cgi 0700 root bin 4359 18886 985675920
1 f none useradmin/open-linux-lib.pl 0600 root bin 4597 16550 985675920
1 f none useradmin/openbsd-lib.pl 0600 root bin 1261 35095 985675920
1 f none useradmin/osf1-lib.pl 0600 root bin 1181 28866 985675920
1 f none useradmin/redhat-linux-lib.pl 0600 root bin 4597 16550 985675920
1 f none useradmin/save_group.cgi 0700 root bin 2817 27614 985675919
1 f none useradmin/save_user.cgi 0700 root bin 12635 8608 985675918
1 f none useradmin/search_group.cgi 0700 root bin 1197 24875 985675920
1 f none useradmin/search_user.cgi 0700 root bin 1248 28113 985675919
1 f none useradmin/slackware-linux-lib.pl 0600 root bin 4597 16550 985675920
1 f none useradmin/solaris-lib.pl 0600 root bin 1203 31201 985675920
1 f none useradmin/suse-linux-lib.pl 0600 root bin 4597 16550 985675920
1 f none useradmin/turbo-linux-lib.pl 0600 root bin 4597 16550 985675920
1 f none useradmin/unixware-lib.pl 0600 root bin 1297 39350 985675918
1 f none useradmin/user-lib.pl 0600 root bin 16740 46741 985675918
1 f none version 0600 root bin 5 213 985675910
1 f none web-lib.pl 0700 root bin 54524 61558 985675910
1 d none webmin 0700 root bin
1 f none webmin-caldera-init 0700 root bin 990 11661 985675910
1 f none webmin-daemon 0600 root bin 80 6541 985675910
1 f none webmin-init 0700 root bin 545 42397 985675910
1 f none webmin/change_access.cgi 0700 root bin 2386 45333 985675922
1 f none webmin/change_bind.cgi 0700 root bin 1587 63224 985675922
1 f none webmin/change_ca.cgi 0700 root bin 555 46296 985675923
1 f none webmin/change_lang.cgi 0700 root bin 331 28462 985675922
1 f none webmin/change_log.cgi 0700 root bin 1147 31979 985675922
1 f none webmin/change_os.cgi 0700 root bin 525 44909 985675922
1 f none webmin/change_proxy.cgi 0700 root bin 819 5109 985675922
1 f none webmin/change_referers.cgi 0700 root bin 472 40937 985675923
1 f none webmin/change_session.cgi 0700 root bin 1548 4244 985675923
1 f none webmin/change_ssl.cgi 0700 root bin 560 46772 985675922
1 f none webmin/change_startpage.cgi 0700 root bin 655 56669 985675922
1 f none webmin/change_syslet.cgi 0700 root bin 916 12365 985675923
1 f none webmin/change_theme.cgi 0700 root bin 834 5889 985675923
1 f none webmin/change_ui.cgi 0700 root bin 906 8280 985675922
1 f none webmin/clone_mod.cgi 0700 root bin 1178 27489 985675922
1 f none webmin/delete_mod.cgi 0700 root bin 2675 8201 985675922
1 f none webmin/edit_access.cgi 0700 root bin 1211 37760 985675922
1 f none webmin/edit_assignment.cgi 0700 root bin 1356 43155 985675923
1 f none webmin/edit_bind.cgi 0700 root bin 1030 22056 985675922
1 f none webmin/edit_ca.cgi 0700 root bin 2700 28342 985675923
1 f none webmin/edit_categories.cgi 0700 root bin 1340 43910 985675923
1 f none webmin/edit_lang.cgi 0700 root bin 798 94 985675922
1 f none webmin/edit_log.cgi 0700 root bin 2744 35041 985675922
1 f none webmin/edit_mods.cgi 0700 root bin 2846 39102 985675922
1 f none webmin/edit_os.cgi 0700 root bin 1758 10175 985675922
1 f none webmin/edit_proxy.cgi 0700 root bin 1724 16801 985675922
1 f none webmin/edit_referers.cgi 0700 root bin 1035 22799 985675923
1 f none webmin/edit_session.cgi 0700 root bin 2466 17096 985675922
1 f none webmin/edit_ssl.cgi 0700 root bin 793 1760 985675922
1 f none webmin/edit_startpage.cgi 0700 root bin 2131 47876 985675923
1 f none webmin/edit_syslet.cgi 0600 root bin 998 19657 985675923
1 f none webmin/edit_themes.cgi 0600 root bin 1310 47313 985675923
1 f none webmin/edit_ui.cgi 0700 root bin 1998 31513 985675923
1 f none webmin/edit_upgrade.cgi 0700 root bin 1641 7317 985675923
1 d none webmin/images 0700 root bin
1 f none webmin/images/access.gif 0600 root bin 275 34570 985675922
1 f none webmin/images/assignment.gif 0600 root bin 2295 39355 985675922
1 f none webmin/images/bind.gif 0600 root bin 478 58145 985675922
1 f none webmin/images/ca.gif 0600 root bin 1420 41188 985675922
1 f none webmin/images/categories.gif 0600 root bin 1820 56835 985675922
1 f none webmin/images/icon.gif 0600 root bin 2303 63158 985675922
1 f none webmin/images/lang.gif 0600 root bin 405 48317 985675922
1 f none webmin/images/log.gif 0600 root bin 470 52260 985675922
1 f none webmin/images/mods.gif 0600 root bin 281 32091 985675922
1 f none webmin/images/os.gif 0600 root bin 393 45957 985675922
1 f none webmin/images/proxy.gif 0600 root bin 214 23452 985675922
1 f none webmin/images/referers.gif 0600 root bin 827 31730 985675922
1 f none webmin/images/session.gif 0600 root bin 1705 53289 985675922
1 f none webmin/images/ssl.gif 0600 root bin 364 43760 985675922
1 f none webmin/images/startpage.gif 0600 root bin 1511 40217 985675922
1 f none webmin/images/syslet.gif 0600 root bin 922 41762 985675922
1 f none webmin/images/themes.gif 0600 root bin 1946 832 985675922
1 f none webmin/images/ui.gif 0600 root bin 1558 33481 985675922
1 f none webmin/images/upgrade.gif 0600 root bin 184 20358 985675922
1 f none webmin/index.cgi 0700 root bin 2015 34045 985675922
1 f none webmin/install_mod.cgi 0700 root bin 6499 37079 985675922
1 f none webmin/install_theme.cgi 0700 root bin 4712 35024 985675923
1 d none webmin/lang 0700 root bin
1 f none webmin/lang/de 0600 root bin 12736 7287 985675922
1 f none webmin/lang/en 0600 root bin 19011 6961 985675922
1 f none webmin/lang/es 0600 root bin 20651 6126 985675922
1 f none webmin/lang/fr 0600 root bin 18005 24288 985675922
1 f none webmin/lang/he 0600 root bin 14302 10182 985675923
1 f none webmin/lang/hu 0600 root bin 8100 56769 985675922
1 f none webmin/lang/it 0600 root bin 12226 31877 985675922
1 f none webmin/lang/nl 0700 root bin 20318 13325 985675923
1 f none webmin/lang/pl 0600 root bin 20780 46496 985675923
1 f none webmin/lang/pt 0600 root bin 7804 27720 985675922
1 f none webmin/lang/ru_RU 0600 root bin 19498 41188 985675923
1 f none webmin/lang/ru_SU 0600 root bin 20044 28882 985675922
1 f none webmin/lang/sv 0600 root bin 19126 29994 985675922
1 f none webmin/lang/tr 0600 root bin 13534 44676 985675923
1 f none webmin/lang/zh_CN 0600 root bin 11791 21094 985675922
1 f none webmin/lang/zh_TW.Big5 0600 root bin 7572 27034 985675922
1 f none webmin/log_parser.pl 0600 root bin 986 15669 985675923
1 f none webmin/low.risk 0600 root bin 10 879 985675923
1 f none webmin/low.skill 0600 root bin 41 3913 985675923
1 f none webmin/medium.risk 0600 root bin 10 879 985675923
1 f none webmin/medium.skill 0600 root bin 71 6773 985675923
1 f none webmin/module.info 0600 root bin 455 48115 985675922
1 f none webmin/save_assignment.cgi 0700 root bin 451 38521 985675923
1 f none webmin/save_categories.cgi 0700 root bin 817 1994 985675923
1 f none webmin/setup_ca.cgi 0700 root bin 1284 43103 985675923
1 f none webmin/stop_ca.cgi 0700 root bin 1062 23723 985675923
1 f none webmin/upgrade.cgi 0700 root bin 5150 12296 985675923
1 f none webmin/webmin-lib.pl 0600 root bin 1270 37992 985675922
1 d none webminlog 0700 root bin
1 d none webminlog/images 0700 root bin
1 f none webminlog/images/icon.gif 0600 root bin 470 52260 985675959
1 f none webminlog/index.cgi 0700 root bin 2089 43944 985675959
1 d none webminlog/lang 0700 root bin
1 f none webminlog/lang/en 0600 root bin 1907 45394 985675959
1 f none webminlog/lang/es 0600 root bin 1809 41303 985675959
1 f none webminlog/lang/fr 0600 root bin 1821 46194 985675959
1 f none webminlog/lang/hu 0600 root bin 1801 51220 985675959
1 f none webminlog/lang/nl 0700 root bin 1708 30066 985675959
1 f none webminlog/lang/pl 0600 root bin 2207 17693 985675959
1 f none webminlog/lang/sv 0600 root bin 2035 64617 985675959
1 f none webminlog/lang/tr 0600 root bin 1685 43069 985675959
1 f none webminlog/lang/zh_CN 0600 root bin 1352 41217 985675959
1 f none webminlog/module.info 0600 root bin 290 28572 985675959
1 f none webminlog/search.cgi 0700 root bin 3663 10778 985675959
1 f none webminlog/view.cgi 0700 root bin 3059 41952 985675959
1 f none webminlog/webminlog-lib.pl 0600 root bin 725 47811 985675959
1 d none wuftpd 0700 root bin
1 f none wuftpd/config-aix 0600 root bin 188 18293 985675943
1 f none wuftpd/config-corel-linux 0600 root bin 186 18099 985675943
1 f none wuftpd/config-debian-linux 0600 root bin 186 18099 985675943
1 f none wuftpd/config-freebsd 0600 root bin 186 18099 985675943
1 f none wuftpd/config-hpux 0600 root bin 186 18099 985675943
1 f none wuftpd/config-lfs-linux 0600 root bin 186 18099 985675943
1 f none wuftpd/config-macos 0600 root bin 186 18099 985675943
1 f none wuftpd/config-open-linux 0600 root bin 186 18099 985675943
1 f none wuftpd/config-openbsd 0600 root bin 186 18099 985675943
1 f none wuftpd/config-osf1 0600 root bin 186 18099 985675943
1 f none wuftpd/config-redhat-linux 0600 root bin 186 18099 985675943
1 f none wuftpd/config-slackware-linux 0600 root bin 186 18120 985675943
1 f none wuftpd/config-solaris 0600 root bin 186 18099 985675943
1 f none wuftpd/config-suse-linux 0600 root bin 186 18120 985675943
1 f none wuftpd/config-turbo-linux 0600 root bin 211 20484 985675943
1 f none wuftpd/config.info 0600 root bin 269 24949 985675943
1 f none wuftpd/config.info.de 0600 root bin 307 28835 985675943
1 f none wuftpd/config.info.es 0600 root bin 354 34039 985675943
1 f none wuftpd/config.info.fr 0600 root bin 292 27649 985675943
1 f none wuftpd/config.info.pl 0600 root bin 368 35279 985675943
1 f none wuftpd/config.info.ru_RU 0600 root bin 281 39562 985675943
1 f none wuftpd/config.info.ru_SU 0600 root bin 281 36684 985675943
1 f none wuftpd/config.info.sv 0600 root bin 329 33897 985675943
1 f none wuftpd/config.info.tr 0600 root bin 284 29026 985675943
1 f none wuftpd/config.info.zh_CN 0600 root bin 224 30551 985675943
1 f none wuftpd/config.info.zh_TW.Big5 0600 root bin 250 30404 985675943
1 f none wuftpd/edit_acl.cgi 0700 root bin 8452 13370 985675943
1 f none wuftpd/edit_alias.cgi 0700 root bin 1277 39128 985675943
1 f none wuftpd/edit_anon.cgi 0700 root bin 3748 37239 985675943
1 f none wuftpd/edit_class.cgi 0700 root bin 2845 31265 985675943
1 f none wuftpd/edit_log.cgi 0700 root bin 2363 484 985675943
1 f none wuftpd/edit_message.cgi 0700 root bin 4455 31162 985675943
1 f none wuftpd/edit_misc.cgi 0700 root bin 2909 36064 985675943
1 f none wuftpd/edit_net.cgi 0700 root bin 2641 14746 985675943
1 f none wuftpd/edit_perm.cgi 0700 root bin 3262 60691 985675943
1 d none wuftpd/help 0700 root bin
1 f none wuftpd/help/acl.es.html 0600 root bin 2010 55943 985675943
1 f none wuftpd/help/acl.fr.html 0600 root bin 1867 45631 985675943
1 f none wuftpd/help/acl.html 0600 root bin 1681 21673 985675943
1 f none wuftpd/help/acl.pl.html 0600 root bin 1913 59633 985675943
1 f none wuftpd/help/acl.ru_RU.html 0600 root bin 1743 5959 985675943
1 f none wuftpd/help/acl.ru_SU.html 0600 root bin 1743 31859 985675943
1 f none wuftpd/help/acl.sv.html 0600 root bin 1808 45452 985675943
1 f none wuftpd/help/acl.zh_TW.Big5.html 0600 root bin 1118 37616 985675943
1 f none wuftpd/help/alias.es.html 0600 root bin 891 14903 985675943
1 f none wuftpd/help/alias.fr.html 0600 root bin 871 15074 985675943
1 f none wuftpd/help/alias.html 0600 root bin 794 5231 985675943
1 f none wuftpd/help/alias.pl.html 0600 root bin 858 16961 985675943
1 f none wuftpd/help/alias.ru_RU.html 0600 root bin 841 11352 985675943
1 f none wuftpd/help/alias.ru_SU.html 0600 root bin 841 62182 985675943
1 f none wuftpd/help/alias.sv.html 0600 root bin 812 11085 985675943
1 f none wuftpd/help/alias.zh_TW.Big5.html 0600 root bin 577 6548 985675943
1 f none wuftpd/help/anon.es.html 0600 root bin 1965 52353 985675943
1 f none wuftpd/help/anon.fr.html 0600 root bin 1954 56721 985675943
1 f none wuftpd/help/anon.html 0600 root bin 1747 28115 985675943
1 f none wuftpd/help/anon.pl.html 0600 root bin 1687 34820 985675943
1 f none wuftpd/help/anon.ru_RU.html 0600 root bin 1907 19601 985675943
1 f none wuftpd/help/anon.ru_SU.html 0600 root bin 1907 46248 985675943
1 f none wuftpd/help/anon.sv.html 0600 root bin 1718 33016 985675943
1 f none wuftpd/help/anon.zh_TW.Big5.html 0600 root bin 1171 33896 985675943
1 f none wuftpd/help/class.es.html 0600 root bin 1636 17058 985675943
1 f none wuftpd/help/class.fr.html 0600 root bin 1573 16940 985675943
1 f none wuftpd/help/class.html 0600 root bin 1353 54491 985675943
1 f none wuftpd/help/class.pl.html 0600 root bin 1541 17102 985675943
1 f none wuftpd/help/class.ru_RU.html 0600 root bin 1552 19877 985675943
1 f none wuftpd/help/class.ru_SU.html 0600 root bin 1552 53373 985675943
1 f none wuftpd/help/class.sv.html 0600 root bin 1450 6442 985675943
1 f none wuftpd/help/class.zh_TW.Big5.html 0600 root bin 960 63184 985675943
1 f none wuftpd/help/intro.es.html 0600 root bin 1048 32491 985675943
1 f none wuftpd/help/intro.fr.html 0600 root bin 949 24397 985675943
1 f none wuftpd/help/intro.html 0600 root bin 897 15896 985675943
1 f none wuftpd/help/intro.pl.html 0600 root bin 933 27202 985675943
1 f none wuftpd/help/intro.ru_RU.html 0600 root bin 986 53387 985675943
1 f none wuftpd/help/intro.ru_SU.html 0600 root bin 986 32498 985675943
1 f none wuftpd/help/intro.sv.html 0600 root bin 862 17907 985675943
1 f none wuftpd/help/intro.zh_TW.Big5.html 0600 root bin 594 17946 985675943
1 f none wuftpd/help/log.es.html 0600 root bin 900 16382 985675943
1 f none wuftpd/help/log.fr.html 0600 root bin 784 8639 985675943
1 f none wuftpd/help/log.html 0600 root bin 674 59865 985675943
1 f none wuftpd/help/log.pl.html 0600 root bin 755 6640 985675943
1 f none wuftpd/help/log.ru_RU.html 0600 root bin 710 58211 985675943
1 f none wuftpd/help/log.ru_SU.html 0600 root bin 710 45403 985675943
1 f none wuftpd/help/log.sv.html 0600 root bin 699 1506 985675943
1 f none wuftpd/help/log.zh_TW.Big5.html 0600 root bin 562 9783 985675943
1 f none wuftpd/help/message.es.html 0600 root bin 1139 39945 985675943
1 f none wuftpd/help/message.fr.html 0600 root bin 1140 42545 985675943
1 f none wuftpd/help/message.html 0600 root bin 997 24543 985675943
1 f none wuftpd/help/message.pl.html 0600 root bin 1046 40631 985675943
1 f none wuftpd/help/message.ru_RU.html 0600 root bin 1057 9525 985675943
1 f none wuftpd/help/message.ru_SU.html 0600 root bin 1057 50301 985675943
1 f none wuftpd/help/message.sv.html 0600 root bin 933 25761 985675943
1 f none wuftpd/help/message.zh_TW.Big5.html 0600 root bin 585 24191 985675943
1 f none wuftpd/help/misc.es.html 0600 root bin 732 634 985675943
1 f none wuftpd/help/misc.fr.html 0600 root bin 784 8025 985675943
1 f none wuftpd/help/misc.html 0600 root bin 649 58257 985675943
1 f none wuftpd/help/misc.pl.html 0600 root bin 663 64020 985675943
1 f none wuftpd/help/misc.ru_RU.html 0600 root bin 659 57025 985675943
1 f none wuftpd/help/misc.ru_SU.html 0600 root bin 659 42779 985675943
1 f none wuftpd/help/misc.sv.html 0600 root bin 626 59938 985675943
1 f none wuftpd/help/misc.zh_TW.Big5.html 0600 root bin 421 59017 985675943
1 f none wuftpd/help/net.es.html 0600 root bin 482 43909 985675943
1 f none wuftpd/help/net.fr.html 0600 root bin 458 43350 985675943
1 f none wuftpd/help/net.html 0600 root bin 409 37080 985675943
1 f none wuftpd/help/net.pl.html 0600 root bin 438 42821 985675943
1 f none wuftpd/help/net.ru_RU.html 0600 root bin 431 16091 985675943
1 f none wuftpd/help/net.ru_SU.html 0600 root bin 431 6444 985675943
1 f none wuftpd/help/net.sv.html 0600 root bin 387 37504 985675943
1 f none wuftpd/help/net.zh_TW.Big5.html 0600 root bin 249 35417 985675943
1 f none wuftpd/help/perm.es.html 0600 root bin 1153 42329 985675943
1 f none wuftpd/help/perm.fr.html 0600 root bin 1195 49315 985675943
1 f none wuftpd/help/perm.html 0600 root bin 1008 26425 985675943
1 f none wuftpd/help/perm.pl.html 0600 root bin 1077 42472 985675943
1 f none wuftpd/help/perm.ru_RU.html 0600 root bin 1142 26522 985675943
1 f none wuftpd/help/perm.ru_SU.html 0600 root bin 1142 65427 985675943
1 f none wuftpd/help/perm.sv.html 0600 root bin 988 29850 985675943
1 f none wuftpd/help/perm.zh_TW.Big5.html 0600 root bin 610 25449 985675943
1 d none wuftpd/images 0700 root bin
1 f none wuftpd/images/acl.gif 0600 root bin 275 34570 985675943
1 f none wuftpd/images/alias.gif 0600 root bin 208 23229 985675943
1 f none wuftpd/images/aliases.gif 0600 root bin 208 23229 985675943
1 f none wuftpd/images/anon.gif 0600 root bin 237 27060 985675943
1 f none wuftpd/images/class.gif 0600 root bin 390 43396 985675943
1 f none wuftpd/images/icon.gif 0600 root bin 407 48215 985675943
1 f none wuftpd/images/log.gif 0600 root bin 470 52260 985675943
1 f none wuftpd/images/message.gif 0600 root bin 377 47845 985675943
1 f none wuftpd/images/misc.gif 0600 root bin 460 53918 985675943
1 f none wuftpd/images/net.gif 0600 root bin 478 58145 985675943
1 f none wuftpd/images/perm.gif 0600 root bin 332 37563 985675943
1 f none wuftpd/index.cgi 0700 root bin 3579 17385 985675943
1 d none wuftpd/lang 0700 root bin
1 f none wuftpd/lang/de 0600 root bin 9389 28480 985675943
1 f none wuftpd/lang/en 0600 root bin 8433 4407 985675943
1 f none wuftpd/lang/es 0600 root bin 9827 17176 985675943
1 f none wuftpd/lang/fr 0600 root bin 9550 3090 985675943
1 f none wuftpd/lang/pl 0600 root bin 9005 34966 985675943
1 f none wuftpd/lang/ru_RU 0600 root bin 9018 5577 985675943
1 f none wuftpd/lang/ru_SU 0600 root bin 9028 58457 985675943
1 f none wuftpd/lang/sv 0600 root bin 9336 6732 985675943
1 f none wuftpd/lang/tr 0600 root bin 9199 40344 985675943
1 f none wuftpd/lang/zh_CN 0600 root bin 6047 52414 985675943
1 f none wuftpd/lang/zh_TW.Big5 0600 root bin 6443 43738 985675943
1 f none wuftpd/log_parser.pl 0600 root bin 394 34363 985675943
1 f none wuftpd/module.info 0600 root bin 441 43301 985675943
1 f none wuftpd/restart.cgi 0700 root bin 302 24994 985675943
1 f none wuftpd/save_acl.cgi 0700 root bin 3971 48227 985675943
1 f none wuftpd/save_alias.cgi 0700 root bin 876 4741 985675943
1 f none wuftpd/save_anon.cgi 0700 root bin 1611 63592 985675943
1 f none wuftpd/save_class.cgi 0700 root bin 1714 3320 985675943
1 f none wuftpd/save_log.cgi 0700 root bin 897 5003 985675943
1 f none wuftpd/save_message.cgi 0700 root bin 2566 3860 985675943
1 f none wuftpd/save_misc.cgi 0700 root bin 1505 53047 985675943
1 f none wuftpd/save_net.cgi 0700 root bin 1619 62960 985675943
1 f none wuftpd/save_perm.cgi 0700 root bin 1390 44913 985675943
1 f none wuftpd/start.cgi 0700 root bin 227 18711 985675943
1 f none wuftpd/wuftpd-lib.pl 0600 root bin 2186 35097 985675943
1 d none xinetd 0700 root bin
1 f none xinetd/config-debian-linux 0600 root bin 122 11674 985675960
1 f none xinetd/config-freebsd 0600 root bin 121 11650 985675960
1 f none xinetd/config-redhat-linux 0600 root bin 128 12200 985675960
1 f none xinetd/config-suse-linux 0600 root bin 124 11906 985675960
1 f none xinetd/config-suse-linux-7.1 0600 root bin 123 11794 985675961
1 f none xinetd/config.info 0600 root bin 151 14086 985675960
1 f none xinetd/config.info.es 0600 root bin 183 17025 985675960
1 f none xinetd/config.info.pl 0600 root bin 175 16940 985675960
1 f none xinetd/config.info.sv 0600 root bin 165 16546 985675960
1 f none xinetd/config.info.zh_CN 0600 root bin 125 15737 985675960
1 f none xinetd/edit_defaults.cgi 0600 root bin 3769 45363 985675960
1 f none xinetd/edit_serv.cgi 0700 root bin 7177 1450 985675960
1 d none xinetd/images 0700 root bin
1 f none xinetd/images/icon.gif 0600 root bin 291 36589 985675960
1 f none xinetd/index.cgi 0700 root bin 2900 33421 985675960
1 d none xinetd/lang 0700 root bin
1 f none xinetd/lang/en 0600 root bin 4154 3053 985675960
1 f none xinetd/lang/es 0600 root bin 4818 7803 985675960
1 f none xinetd/lang/pl 0600 root bin 4719 16785 985675960
1 f none xinetd/lang/sv 0600 root bin 4583 63930 985675960
1 f none xinetd/lang/zh_CN 0600 root bin 3337 7050 985675960
1 f none xinetd/log_parser.pl 0600 root bin 638 54390 985675960
1 f none xinetd/module.info 0600 root bin 370 36415 985675960
1 f none xinetd/restart.cgi 0700 root bin 266 22348 985675960
1 f none xinetd/save_defaults.cgi 0700 root bin 1341 43484 985675960
1 f none xinetd/save_serv.cgi 0700 root bin 4390 22883 985675960
1 f none xinetd/start.cgi 0700 root bin 296 25051 985675960
1 f none xinetd/xinetd-lib.pl 0600 root bin 3747 27208 985675960
 07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000b00000000TRAILER!!!                                                                                                                                                                                                                    07070100005eed000081a40000000000000001000000013ac03b85000000d5000000200000000000000000000000000000000800000003pkginfo   PKG=WSwebmin
NAME=Webmin - Web-based system administration
ARCH=Solaris 2.5
VERSION=0.85
CATEGORY=application
VENDOR=Webmin Software
EMAIL=jcameron@webmin.com
PSTAMP=Jamie Cameron
BASEDIR=/opt/webmin
CLASSES=none
   07070100005edf000081a40000000000000001000000013ac03b860005e6db000000200000000000000000000000000000000700000003pkgmap    : 1 28526
1 f none /etc/rc3.d/S99webmin 0755 root bin 545 42397 985675910
1 f none LICENCE 0600 root bin 1592 56884 985675910
1 f none README 0600 root bin 1161 39607 985675910
1 d none acl 0700 root bin
1 f none acl/acl-lib.pl 0600 root bin 8964 13869 985675926
1 f none acl/acl_security.pl 0600 root bin 5342 42087 985675926
1 f none acl/cert_form.cgi 0700 root bin 1380 49580 985675927
1 f none acl/cert_issue.cgi 0700 root bin 1577 64734 985675927
1 f none acl/cert_output.cgi 0700 root bin 218 18089 985675927
1 f none acl/config 0600 root bin 43 4014 985675927
1 f none acl/config-debian-linux 0600 root bin 33 3059 985675927
1 f none acl/config-freebsd 0600 root bin 33 3059 985675927
1 f none acl/config-open-linux-3.1e 0600 root bin 33 3059 985675927
1 f none acl/config-redhat-linux 0600 root bin 33 3059 985675927
1 f none acl/config.info 0600 root bin 100 9152 985675927
1 f none acl/config.info.de 0600 root bin 99 8749 985675927
1 f none acl/config.info.es 0600 root bin 117 11036 985675927
1 f none acl/config.info.hu 0600 root bin 142 13995 985675927
1 f none acl/config.info.ja_JP.euc 0600 root bin 117 18030 985675927
1 f none acl/config.info.nl 0700 root bin 110 10046 985675927
1 f none acl/config.info.pl 0600 root bin 115 11126 985675927
1 f none acl/config.info.ru_RU 0600 root bin 117 19765 985675927
1 f none acl/config.info.ru_SU 0600 root bin 117 17850 985675927
1 f none acl/config.info.sv 0600 root bin 102 9688 985675927
1 f none acl/config.info.tr 0600 root bin 108 11053 985675927
1 f none acl/config.info.zh_CN 0600 root bin 88 11060 985675927
1 f none acl/config.info.zh_TW.Big5 0600 root bin 41 4869 985675927
1 f none acl/convert.cgi 0700 root bin 2365 55848 985675927
1 f none acl/convert_form.cgi 0700 root bin 1265 43055 985675927
1 f none acl/defaultacl 0600 root bin 100 8171 985675927
1 f none acl/delete_group.cgi 0600 root bin 1143 29857 985675927
1 f none acl/delete_user.cgi 0700 root bin 655 54028 985675926
1 f none acl/edit_acl.cgi 0700 root bin 2245 52769 985675926
1 f none acl/edit_group.cgi 0600 root bin 1756 13389 985675927
1 f none acl/edit_user.cgi 0700 root bin 7346 62801 985675926
1 d none acl/images 0700 root bin
1 f none acl/images/empty.gif 0600 root bin 64 5363 985675926
1 f none acl/images/icon.gif 0600 root bin 1932 44305 985675926
1 f none acl/images/tick.gif 0600 root bin 75 7211 985675926
1 f none acl/index.cgi 0700 root bin 5701 40874 985675926
1 d none acl/lang 0700 root bin
1 f none acl/lang/de 0600 root bin 4433 23192 985675926
1 f none acl/lang/en 0600 root bin 6502 18499 985675926
1 f none acl/lang/es 0600 root bin 6126 56627 985675926
1 f none acl/lang/fr 0600 root bin 6653 60627 985675926
1 f none acl/lang/hu 0600 root bin 4476 11421 985675926
1 f none acl/lang/it 0600 root bin 1795 36911 985675926
1 f none acl/lang/ja_JP.euc 0600 root bin 5771 36127 985675927
1 f none acl/lang/nl 0700 root bin 6264 64538 985675926
1 f none acl/lang/pl 0600 root bin 7372 22088 985675926
1 f none acl/lang/pt 0600 root bin 901 20988 985675926
1 f none acl/lang/ru_RU 0600 root bin 6061 61575 985675926
1 f none acl/lang/ru_SU 0600 root bin 6073 26652 985675926
1 f none acl/lang/sv 0600 root bin 5907 56461 985675926
1 f none acl/lang/tr 0600 root bin 4335 4591 985675926
1 f none acl/lang/zh_CN 0600 root bin 3111 57866 985675926
1 f none acl/lang/zh_TW.Big5 0600 root bin 2317 44127 985675926
1 f none acl/log_parser.pl 0600 root bin 1076 19604 985675927
1 f none acl/module.info 0600 root bin 453 48584 985675926
1 f none acl/openssl.cnf 0600 root bin 6183 2941 985675927
1 f none acl/save_acl.cgi 0700 root bin 1899 21933 985675926
1 f none acl/save_group.cgi 0700 root bin 1406 46905 985675927
1 f none acl/save_user.cgi 0700 root bin 6872 5269 985675926
1 f none acl/useradmin_update.pl 0600 root bin 1230 34070 985675926
1 f none acl_security.pl 0600 root bin 3562 31389 985675910
1 d none apache 0700 root bin
1 f none apache/acl_security.pl 0600 root bin 3998 63881 985675928
1 f none apache/apache-lib.pl 0600 root bin 23052 21145 985675927
1 f none apache/auth-lib.pl 0600 root bin 2866 19742 985675928
1 f none apache/autoindex.pl 0600 root bin 9726 40897 985675928
1 f none apache/browsermatch.pl 0600 root bin 2204 37722 985675928
1 f none apache/change_dir.cgi 0700 root bin 1252 32425 985675928
1 f none apache/change_files.cgi 0700 root bin 1252 33260 985675928
1 f none apache/config-aix 0600 root bin 165 15629 985675928
1 f none apache/config-cobalt-linux 0600 root bin 176 16529 985675928
1 f none apache/config-corel-linux 0600 root bin 277 26015 985675927
1 f none apache/config-debian-linux 0600 root bin 277 26015 985675928
1 f none apache/config-freebsd 0600 root bin 305 28950 985675928
1 f none apache/config-hpux 0600 root bin 186 17600 985675928
1 f none apache/config-irix 0600 root bin 186 17600 985675927
1 f none apache/config-lfs-linux 0600 root bin 368 34956 985675928
1 f none apache/config-macos 0600 root bin 398 38044 985675928
1 f none apache/config-macos-1.3 0600 root bin 247 23482 985675927
1 f none apache/config-open-linux-2.3 0600 root bin 242 21658 985675928
1 f none apache/config-open-linux-2.3e 0600 root bin 228 20345 985675928
1 f none apache/config-open-linux-2.4 0600 root bin 228 20345 985675927
1 f none apache/config-open-linux-2.5 0600 root bin 325 29552 985675928
1 f none apache/config-open-linux-3.1e 0600 root bin 325 29552 985675928
1 f none apache/config-openbsd 0600 root bin 248 23671 985675927
1 f none apache/config-openserver 0600 root bin 326 30789 985675928
1 f none apache/config-osf1 0600 root bin 186 17600 985675927
1 f none apache/config-redhat-linux 0600 root bin 176 16529 985675927
1 f none apache/config-redhat-linux-7.0 0600 root bin 258 22601 985675928
1 f none apache/config-redhat-linux-7.1 0600 root bin 258 22601 985675928
1 f none apache/config-slackware-linux 0600 root bin 77 7278 985675927
1 f none apache/config-slackware-linux-7.0 0600 root bin 214 20138 985675927
1 f none apache/config-slackware-linux-7.1 0600 root bin 214 20138 985675928
1 f none apache/config-solaris 0600 root bin 186 17600 985675928
1 f none apache/config-suse-linux 0600 root bin 279 26467 985675928
1 f none apache/config-suse-linux-7.1 0600 root bin 277 26243 985675928
1 f none apache/config-turbo-linux 0600 root bin 176 16529 985675927
1 f none apache/config-unixware 0600 root bin 326 30789 985675928
1 f none apache/config.info 0600 root bin 584 54051 985675927
1 f none apache/config.info.de 0600 root bin 682 63591 985675927
1 f none apache/config.info.es 0600 root bin 689 664 985675927
1 f none apache/config.info.fr 0600 root bin 711 742 985675927
1 f none apache/config.info.hu 0600 root bin 732 9955 985675928
1 f none apache/config.info.nl 0700 root bin 647 60293 985675927
1 f none apache/config.info.pl 0600 root bin 698 2829 985675928
1 f none apache/config.info.ru_RU 0600 root bin 659 41593 985675927
1 f none apache/config.info.ru_SU 0600 root bin 659 32481 985675927
1 f none apache/config.info.sv 0600 root bin 635 62153 985675928
1 f none apache/config.info.tr 0600 root bin 644 63990 985675928
1 f none apache/config.info.zh_CN 0600 root bin 469 64171 985675928
1 f none apache/config.info.zh_TW.Big5 0600 root bin 548 611 985675928
1 f none apache/config_solaris.txt.1.25 0600 root bin 81 7515 985675928
1 f none apache/core.pl 0600 root bin 32580 19929 985675927
1 f none apache/create_dir.cgi 0700 root bin 927 8139 985675928
1 f none apache/create_files.cgi 0700 root bin 823 1714 985675928
1 f none apache/create_htaccess.cgi 0700 root bin 1349 42719 985675928
1 f none apache/create_virt.cgi 0700 root bin 2430 61705 985675928
1 f none apache/defaultacl 0600 root bin 81 6717 985675928
1 f none apache/delete_htaccess.cgi 0700 root bin 558 47804 985675928
1 f none apache/dir_index.cgi 0700 root bin 2460 3793 985675927
1 f none apache/edit_authgroup.cgi 0700 root bin 1606 3577 985675928
1 f none apache/edit_authuser.cgi 0700 root bin 1845 23552 985675928
1 f none apache/edit_defines.cgi 0700 root bin 803 2650 985675928
1 f none apache/edit_dir.cgi 0700 root bin 1291 44549 985675928
1 f none apache/edit_files.cgi 0700 root bin 1297 46398 985675928
1 f none apache/edit_global.cgi 0700 root bin 1993 30355 985675928
1 f none apache/edit_gmime_type.cgi 0700 root bin 1259 37766 985675927
1 f none apache/edit_htaccess.cgi 0700 root bin 1194 36985 985675928
1 f none apache/edit_virt.cgi 0700 root bin 1378 51497 985675927
1 f none apache/edit_vserv.cgi 0700 root bin 2213 49275 985675928
1 f none apache/files_index.cgi 0700 root bin 2146 46928 985675928
1 f none apache/find_htaccess.cgi 0700 root bin 1758 12185 985675928
1 f none apache/htaccess.cgi 0700 root bin 1504 59983 985675928
1 f none apache/htaccess_index.cgi 0700 root bin 2798 28983 985675928
1 d none apache/images 0700 root bin
1 f none apache/images/def.gif 0600 root bin 524 52842 985675927
1 f none apache/images/defines.gif 0600 root bin 706 16967 985675927
1 f none apache/images/dir.gif 0600 root bin 266 29430 985675927
1 f none apache/images/doc.gif 0600 root bin 245 29407 985675927
1 f none apache/images/edit.gif 0600 root bin 478 48537 985675927
1 f none apache/images/icon.gif 0600 root bin 524 52842 985675927
1 f none apache/images/recon.gif 0600 root bin 592 64167 985675927
1 f none apache/images/show.gif 0600 root bin 323 37244 985675927
1 f none apache/images/type_icon_0.gif 0600 root bin 259 29070 985675927
1 f none apache/images/type_icon_1.gif 0600 root bin 478 58145 985675927
1 f none apache/images/type_icon_10.gif 0600 root bin 208 23229 985675927
1 f none apache/images/type_icon_11.gif 0600 root bin 388 40285 985675927
1 f none apache/images/type_icon_12.gif 0600 root bin 286 31680 985675927
1 f none apache/images/type_icon_13.gif 0600 root bin 214 23452 985675927
1 f none apache/images/type_icon_14.gif 0600 root bin 364 43760 985675927
1 f none apache/images/type_icon_2.gif 0600 root bin 281 32091 985675927
1 f none apache/images/type_icon_3.gif 0600 root bin 470 52260 985675927
1 f none apache/images/type_icon_4.gif 0600 root bin 275 34570 985675927
1 f none apache/images/type_icon_5.gif 0600 root bin 373 41729 985675927
1 f none apache/images/type_icon_6.gif 0600 root bin 395 44484 985675927
1 f none apache/images/type_icon_7.gif 0600 root bin 394 41034 985675927
1 f none apache/images/type_icon_8.gif 0600 root bin 390 43396 985675927
1 f none apache/images/type_icon_9.gif 0600 root bin 460 53918 985675927
1 f none apache/images/virt.gif 0600 root bin 524 52842 985675927
1 f none apache/images/virt_index.gif 0600 root bin 2654 62271 985675927
1 f none apache/index.cgi 0700 root bin 8783 42058 985675927
1 d none apache/lang 0700 root bin
1 f none apache/lang/de 0600 root bin 11155 61411 985675927
1 f none apache/lang/en 0600 root bin 29620 46609 985675927
1 f none apache/lang/es 0600 root bin 35325 48310 985675927
1 f none apache/lang/fr 0600 root bin 10651 37780 985675927
1 f none apache/lang/hu 0600 root bin 28072 9268 985675927
1 f none apache/lang/it 0600 root bin 10216 38487 985675927
1 f none apache/lang/nl 0700 root bin 32787 40972 985675927
1 f none apache/lang/pl 0600 root bin 33945 39922 985675928
1 f none apache/lang/pt 0600 root bin 10017 54712 985675927
1 f none apache/lang/ru_RU 0600 root bin 9822 27879 985675928
1 f none apache/lang/ru_SU 0600 root bin 9909 13750 985675927
1 f none apache/lang/sv 0600 root bin 31911 6096 985675927
1 f none apache/lang/tr 0600 root bin 30724 44450 985675927
1 f none apache/lang/zh_CN 0600 root bin 22578 49154 985675928
1 f none apache/lang/zh_TW.Big5 0600 root bin 7358 24068 985675927
1 f none apache/list_authgroups.cgi 0700 root bin 1487 51697 985675928
1 f none apache/list_authusers.cgi 0700 root bin 1978 29335 985675928
1 f none apache/log_parser.pl 0600 root bin 3320 58265 985675928
1 f none apache/manual_form.cgi 0700 root bin 2510 2609 985675928
1 f none apache/manual_save.cgi 0700 root bin 1721 4042 985675928
1 f none apache/mod_access.pl 0600 root bin 3152 44817 985675928
1 f none apache/mod_actions.pl 0600 root bin 2618 4267 985675927
1 f none apache/mod_alias.pl 0600 root bin 5297 33923 985675927
1 f none apache/mod_asis.pl 0600 root bin 125 10531 985675928
1 f none apache/mod_auth.pl 0600 root bin 1883 22312 985675928
1 f none apache/mod_auth_dbm.pl 0600 root bin 1485 54181 985675928
1 f none apache/mod_autoindex.pl 0600 root bin 2063 32312 985675928
1 f none apache/mod_browser.pl 0600 root bin 276 23802 985675928
1 f none apache/mod_cern_meta.pl 0600 root bin 1152 26386 985675928
1 f none apache/mod_cgi.pl 0600 root bin 1288 40877 985675928
1 f none apache/mod_dir.pl 0600 root bin 1087 15671 985675927
1 f none apache/mod_env.pl 0600 root bin 2077 28496 985675928
1 f none apache/mod_expires.pl.broken 0600 root bin 3295 51150 985675928
1 f none apache/mod_imap.pl 0600 root bin 2403 64653 985675928
1 f none apache/mod_include.pl 0600 root bin 551 45864 985675928
1 f none apache/mod_info.pl 0600 root bin 145 12617 985675928
1 f none apache/mod_log_agent.pl 0600 root bin 1101 24147 985675928
1 f none apache/mod_log_common.pl 0600 root bin 1168 29749 985675928
1 f none apache/mod_log_config.pl 0600 root bin 4450 13631 985675927
1 f none apache/mod_log_referer.pl 0600 root bin 1625 1986 985675928
1 f none apache/mod_mime.pl 0600 root bin 4616 46651 985675927
1 f none apache/mod_mime_magic.pl 0600 root bin 521 43594 985675928
1 f none apache/mod_negotiation.pl 0600 root bin 924 11634 985675928
1 f none apache/mod_perl.pl 0600 root bin 147 12898 985675928
1 f none apache/mod_php.pl 0600 root bin 93 8070 985675928
1 f none apache/mod_php3.pl 0600 root bin 147 12618 985675928
1 f none apache/mod_php4.pl 0600 root bin 147 12623 985675928
1 f none apache/mod_proxy.pl 0600 root bin 10592 47377 985675928
1 f none apache/mod_setenvif.pl 0600 root bin 3115 41238 985675928
1 f none apache/mod_speling.pl 0600 root bin 565 46556 985675928
1 f none apache/mod_ssl.pl 0600 root bin 3262 4270 985675928
1 f none apache/mod_status.pl 0600 root bin 542 45268 985675928
1 f none apache/mod_userdir.pl 0600 root bin 2504 59616 985675927
1 f none apache/module.info 0600 root bin 621 62387 985675927
1 f none apache/notes 0600 root bin 1147 38271 985675927
1 f none apache/reconfig.cgi 0700 root bin 567 48627 985675927
1 f none apache/reconfig_form.cgi 0700 root bin 1863 19780 985675928
1 f none apache/restart.cgi 0700 root bin 1389 47947 985675928
1 f none apache/save_authgroup.cgi 0700 root bin 1124 27262 985675928
1 f none apache/save_authuser.cgi 0700 root bin 1200 31716 985675928
1 f none apache/save_defines.cgi 0700 root bin 447 38964 985675928
1 f none apache/save_dir.cgi 0700 root bin 744 63459 985675928
1 f none apache/save_files.cgi 0700 root bin 738 63975 985675928
1 f none apache/save_global.cgi 0700 root bin 514 44173 985675928
1 f none apache/save_gmime_type.cgi 0700 root bin 732 58451 985675927
1 f none apache/save_htaccess.cgi 0700 root bin 667 58477 985675928
1 f none apache/save_sync.cgi 0700 root bin 494 42571 985675928
1 f none apache/save_virt.cgi 0700 root bin 734 63058 985675928
1 f none apache/save_vserv.cgi 0700 root bin 2781 23149 985675928
1 f none apache/show.cgi 0700 root bin 3768 33472 985675928
1 f none apache/show_dir.cgi 0700 root bin 2076 34605 985675928
1 f none apache/show_files.cgi 0700 root bin 2076 34763 985675927
1 f none apache/show_htaccess.cgi 0700 root bin 2100 32978 985675927
1 f none apache/show_virt.cgi 0700 root bin 2154 37985 985675928
1 f none apache/start.cgi 0700 root bin 2018 33980 985675928
1 f none apache/stop.cgi 0700 root bin 1046 19705 985675927
1 f none apache/useradmin_update.pl 0600 root bin 961 7735 985675928
1 f none apache/virt_index.cgi 0700 root bin 3115 55302 985675927
1 d none bind8 0700 root bin
1 f none bind8/acl_security.pl 0600 root bin 5369 47399 985675931
1 f none bind8/bind8-lib.pl 0600 root bin 23550 48094 985675930
1 f none bind8/conf_acls.cgi 0700 root bin 910 8822 985675931
1 f none bind8/conf_files.cgi 0700 root bin 1302 44440 985675931
1 f none bind8/conf_forwarding.cgi 0700 root bin 1499 61871 985675931
1 f none bind8/conf_logging.cgi 0700 root bin 6663 9269 985675931
1 f none bind8/conf_misc.cgi 0700 root bin 2194 52174 985675931
1 f none bind8/conf_net.cgi 0700 root bin 2656 21194 985675931
1 f none bind8/conf_servers.cgi 0700 root bin 1763 13583 985675931
1 f none bind8/conf_zonedef.cgi 0700 root bin 3795 53497 985675931
1 f none bind8/config-aix 0600 root bin 183 16870 985675931
1 f none bind8/config-cobalt-linux 0600 root bin 188 17370 985675931
1 f none bind8/config-corel-linux 0600 root bin 188 17370 985675931
1 f none bind8/config-debian-linux 0600 root bin 188 17370 985675930
1 f none bind8/config-debian-linux-2.2 0600 root bin 193 17830 985675931
1 f none bind8/config-freebsd-2.1 0600 root bin 194 17940 985675931
1 f none bind8/config-freebsd-2.2 0600 root bin 194 17940 985675930
1 f none bind8/config-freebsd-3.0 0600 root bin 195 18032 985675931
1 f none bind8/config-freebsd-3.1 0600 root bin 188 17370 985675931
1 f none bind8/config-freebsd-3.2 0600 root bin 188 17370 985675931
1 f none bind8/config-freebsd-3.3 0600 root bin 188 17370 985675931
1 f none bind8/config-freebsd-3.4 0600 root bin 188 17370 985675931
1 f none bind8/config-freebsd-4.0 0600 root bin 195 18032 985675931
1 f none bind8/config-freebsd-5.0 0600 root bin 195 18032 985675931
1 f none bind8/config-hpux 0600 root bin 188 17370 985675930
1 f none bind8/config-irix 0600 root bin 188 17370 985675931
1 f none bind8/config-macos 0600 root bin 194 17934 985675931
1 f none bind8/config-macos-1.3 0600 root bin 188 17370 985675931
1 f none bind8/config-open-linux 0600 root bin 227 20954 985675931
1 f none bind8/config-openbsd-2.5 0600 root bin 188 17370 985675931
1 f none bind8/config-openbsd-2.6 0600 root bin 188 17370 985675931
1 f none bind8/config-openbsd-2.7 0600 root bin 188 17370 985675931
1 f none bind8/config-openserver 0600 root bin 188 17370 985675931
1 f none bind8/config-osf1 0600 root bin 188 17370 985675931
1 f none bind8/config-redhat-linux 0600 root bin 227 20954 985675930
1 f none bind8/config-redhat-linux-7.1 0600 root bin 261 24108 985675931
1 f none bind8/config-slackware-linux 0600 root bin 188 17370 985675930
1 f none bind8/config-solaris 0600 root bin 203 18661 985675930
1 f none bind8/config-solaris-7 0600 root bin 191 17631 985675931
1 f none bind8/config-solaris-8 0600 root bin 191 17631 985675931
1 f none bind8/config-suse-linux 0600 root bin 188 17371 985675930
1 f none bind8/config-turbo-linux 0600 root bin 188 17372 985675931
1 f none bind8/config-unixware 0600 root bin 229 21178 985675931
1 f none bind8/config.info 0600 root bin 1140 36814 985675930
1 f none bind8/config.info.de 0600 root bin 422 37942 985675930
1 f none bind8/config.info.es 0600 root bin 1173 43144 985675931
1 f none bind8/config.info.fr 0600 root bin 325 29458 985675931
1 f none bind8/config.info.pl 0600 root bin 1314 61311 985675931
1 f none bind8/config.info.ru_RU 0600 root bin 326 53131 985675931
1 f none bind8/config.info.ru_SU 0600 root bin 326 48740 985675931
1 f none bind8/config.info.sv 0600 root bin 1080 37166 985675931
1 f none bind8/config.info.tr 0600 root bin 582 62912 985675931
1 f none bind8/config.info.zh_CN 0600 root bin 667 20999 985675931
1 f none bind8/config.info.zh_TW.Big5 0600 root bin 302 38644 985675931
1 f none bind8/create_forward.cgi 0700 root bin 1870 21307 985675931
1 f none bind8/create_master.cgi 0700 root bin 4434 26341 985675930
1 f none bind8/create_slave.cgi 0700 root bin 3128 53192 985675930
1 f none bind8/db.cache 0600 root bin 2769 34340 985675930
1 f none bind8/defaultacl 0600 root bin 118 9908 985675931
1 f none bind8/delete_zone.cgi 0700 root bin 4269 19890 985675930
1 f none bind8/dns_boot.cgi 0700 root bin 1802 20967 985675930
1 f none bind8/edit_forward.cgi 0700 root bin 1675 8854 985675931
1 f none bind8/edit_master.cgi 0700 root bin 3466 15852 985675930
1 f none bind8/edit_options.cgi 0700 root bin 1733 17480 985675931
1 f none bind8/edit_record.cgi 0700 root bin 813 1964 985675930
1 f none bind8/edit_recs.cgi 0700 root bin 3480 4542 985675930
1 f none bind8/edit_slave.cgi 0700 root bin 4198 10933 985675930
1 f none bind8/edit_soa.cgi 0700 root bin 2410 5936 985675931
1 f none bind8/edit_stub.cgi 0700 root bin 2408 7062 985675930
1 f none bind8/edit_text.cgi 0700 root bin 1134 30539 985675930
1 f none bind8/find_free.cgi 0700 root bin 6427 28140 985675931
1 f none bind8/find_zones.cgi 0700 root bin 1616 61451 985675931
1 f none bind8/forward_form.cgi 0700 root bin 1135 31376 985675931
1 d none bind8/images 0700 root bin
1 f none bind8/images/A.gif 0600 root bin 307 33387 985675930
1 f none bind8/images/AAAA.gif 0600 root bin 393 37317 985675930
1 f none bind8/images/CNAME.gif 0600 root bin 423 47985 985675930
1 f none bind8/images/HINFO.gif 0600 root bin 376 45931 985675930
1 f none bind8/images/LOC.gif 0600 root bin 401 46723 985675930
1 f none bind8/images/MX.gif 0600 root bin 453 51436 985675930
1 f none bind8/images/NS.gif 0600 root bin 439 48965 985675930
1 f none bind8/images/PTR.gif 0600 root bin 373 41933 985675930
1 f none bind8/images/RP.gif 0600 root bin 425 46682 985675930
1 f none bind8/images/TXT.gif 0600 root bin 406 46790 985675930
1 f none bind8/images/WKS.gif 0600 root bin 450 49749 985675930
1 f none bind8/images/acls.gif 0600 root bin 275 34570 985675930
1 f none bind8/images/files.gif 0600 root bin 266 29430 985675930
1 f none bind8/images/findfree.gif 0600 root bin 1582 26323 985675930
1 f none bind8/images/forward.gif 0600 root bin 2022 61873 985675930
1 f none bind8/images/forwarding.gif 0600 root bin 315 42734 985675930
1 f none bind8/images/icon.gif 0600 root bin 2015 43699 985675930
1 f none bind8/images/logging.gif 0600 root bin 470 52260 985675930
1 f none bind8/images/master.gif 0600 root bin 1942 49324 985675930
1 f none bind8/images/misc.gif 0600 root bin 460 53918 985675930
1 f none bind8/images/net.gif 0600 root bin 478 58145 985675930
1 f none bind8/images/no-home.gif 0600 root bin 3768 28252 985675930
1 f none bind8/images/options.gif 0600 root bin 333 39703 985675930
1 f none bind8/images/servers.gif 0600 root bin 372 46326 985675930
1 f none bind8/images/slave.gif 0600 root bin 1920 13163 985675930
1 f none bind8/images/soa.gif 0600 root bin 434 46821 985675930
1 f none bind8/images/stub.gif 0600 root bin 1902 9175 985675930
1 f none bind8/images/text.gif 0600 root bin 305 37957 985675930
1 f none bind8/images/zonedef.gif 0600 root bin 1692 33173 985675930
1 f none bind8/index.cgi 0700 root bin 6224 38639 985675930
1 d none bind8/lang 0700 root bin
1 f none bind8/lang/de 0600 root bin 16040 62578 985675931
1 f none bind8/lang/en 0600 root bin 15763 31617 985675931
1 f none bind8/lang/es 0600 root bin 18139 32759 985675931
1 f none bind8/lang/fr 0600 root bin 15100 15742 985675931
1 f none bind8/lang/it 0600 root bin 13958 58819 985675931
1 f none bind8/lang/pl 0600 root bin 18944 33436 985675931
1 f none bind8/lang/pt 0600 root bin 14067 64378 985675931
1 f none bind8/lang/ru_RU 0600 root bin 13953 32442 985675931
1 f none bind8/lang/ru_SU 0600 root bin 14040 28293 985675931
1 f none bind8/lang/sv 0600 root bin 16561 54937 985675931
1 f none bind8/lang/tr 0600 root bin 16470 53288 985675931
1 f none bind8/lang/zh_CN 0600 root bin 11660 65179 985675931
1 f none bind8/lang/zh_TW.Big5 0600 root bin 10792 26505 985675931
1 f none bind8/log_parser.pl 0600 root bin 1200 32060 985675931
1 f none bind8/master_form.cgi 0700 root bin 2682 34854 985675930
1 f none bind8/module.info 0600 root bin 565 52963 985675930
1 f none bind8/records-lib.pl 0600 root bin 11992 20313 985675931
1 f none bind8/restart.cgi 0700 root bin 360 30429 985675930
1 f none bind8/save_acls.cgi 0700 root bin 809 64956 985675931
1 f none bind8/save_files.cgi 0700 root bin 753 64226 985675931
1 f none bind8/save_forward.cgi 0700 root bin 665 56996 985675931
1 f none bind8/save_forwarding.cgi 0700 root bin 906 12970 985675931
1 f none bind8/save_logging.cgi 0700 root bin 2558 63954 985675931
1 f none bind8/save_master.cgi 0700 root bin 895 12050 985675930
1 f none bind8/save_misc.cgi 0700 root bin 1255 41318 985675931
1 f none bind8/save_net.cgi 0700 root bin 1542 59049 985675931
1 f none bind8/save_record.cgi 0700 root bin 12724 10949 985675930
1 f none bind8/save_servers.cgi 0700 root bin 1352 40782 985675931
1 f none bind8/save_slave.cgi 0700 root bin 1265 40401 985675930
1 f none bind8/save_soa.cgi 0700 root bin 1800 17461 985675930
1 f none bind8/save_text.cgi 0700 root bin 774 65480 985675931
1 f none bind8/save_zonedef.cgi 0700 root bin 2017 36014 985675931
1 f none bind8/slave_form.cgi 0700 root bin 1693 13823 985675930
1 f none bind8/start.cgi 0700 root bin 1211 33523 985675930
1 f none bind8/stub_form.cgi 0700 root bin 1693 13823 985675930
1 d none bsdexports 0700 root bin
1 f none bsdexports/bsdexports-lib.pl 0600 root bin 2270 48842 985675935
1 f none bsdexports/config-freebsd 0600 root bin 86 8059 985675935
1 f none bsdexports/config-macos 0600 root bin 165 14488 985675935
1 f none bsdexports/config-openbsd 0600 root bin 86 8059 985675935
1 f none bsdexports/config.info 0600 root bin 81 7694 985675935
1 f none bsdexports/config.info.de 0600 root bin 89 8415 985675935
1 f none bsdexports/config.info.es 0600 root bin 96 9175 985675935
1 f none bsdexports/config.info.fr 0600 root bin 95 8995 985675935
1 f none bsdexports/config.info.pl 0600 root bin 90 8640 985675935
1 f none bsdexports/config.info.sv 0600 root bin 91 8760 985675935
1 f none bsdexports/config.info.tr 0600 root bin 90 8928 985675935
1 f none bsdexports/config.info.zh_CN 0600 root bin 77 9357 985675936
1 f none bsdexports/config.info.zh_TW.Big5 0600 root bin 73 8564 985675935
1 f none bsdexports/delete_export.cgi 0700 root bin 270 23772 985675935
1 f none bsdexports/edit_export.cgi 0700 root bin 4132 12639 985675935
1 d none bsdexports/images 0700 root bin
1 f none bsdexports/images/icon.gif 0600 root bin 245 29407 985675935
1 f none bsdexports/index.cgi 0700 root bin 1318 41190 985675935
1 f none bsdexports/module.info 0600 root bin 322 31182 985675935
1 f none bsdexports/notes 0600 root bin 373 33536 985675935
1 f none bsdexports/restart_mountd.cgi 0700 root bin 337 28778 985675935
1 f none bsdexports/save_export.cgi 0700 root bin 4343 17134 985675935
1 d none caldera 0700 root bin
1 f none caldera/Alphabet.gif 0600 root bin 8492 3248 985675961
1 d none caldera/acl 0700 root bin
1 d none caldera/acl/images 0700 root bin
1 f none caldera/acl/images/icon.gif 0600 root bin 519 54805 985675962
1 d none caldera/apache 0700 root bin
1 d none caldera/apache/images 0700 root bin
1 f none caldera/apache/images/icon.gif 0600 root bin 578 3342 985675963
1 d none caldera/bind8 0700 root bin
1 d none caldera/bind8/images 0700 root bin
1 f none caldera/bind8/images/icon.gif 0600 root bin 540 65158 985675963
1 d none caldera/bsdexports 0700 root bin
1 d none caldera/bsdexports/images 0700 root bin
1 f none caldera/bsdexports/images/icon.gif 0600 root bin 568 64197 985675963
1 d none caldera/certmgr 0700 root bin
1 d none caldera/certmgr/images 0700 root bin
1 f none caldera/certmgr/images/icon.gif 0600 root bin 300 34616 985675965
1 f none caldera/config 0600 root bin 25 2180 985675965
1 d none caldera/cpan 0700 root bin
1 d none caldera/cpan/images 0700 root bin
1 f none caldera/cpan/images/icon.gif 0600 root bin 1248 64931 985675964
1 d none caldera/cron 0700 root bin
1 d none caldera/cron/images 0700 root bin
1 f none caldera/cron/images/icon.gif 0600 root bin 507 49655 985675964
1 d none caldera/custom 0700 root bin
1 d none caldera/custom/images 0700 root bin
1 f none caldera/custom/images/icon.gif 0600 root bin 590 1709 985675964
1 d none caldera/dfsadmin 0700 root bin
1 d none caldera/dfsadmin/images 0700 root bin
1 f none caldera/dfsadmin/images/icon.gif 0600 root bin 568 64197 985675964
1 d none caldera/dhcpd 0700 root bin
1 d none caldera/dhcpd/images 0700 root bin
1 f none caldera/dhcpd/images/icon.gif 0600 root bin 546 1598 985675964
1 d none caldera/dnsadmin 0700 root bin
1 d none caldera/dnsadmin/images 0700 root bin
1 f none caldera/dnsadmin/images/icon.gif 0600 root bin 540 65158 985675964
1 d none caldera/exports 0700 root bin
1 d none caldera/exports/images 0700 root bin
1 f none caldera/exports/images/icon.gif 0600 root bin 568 64197 985675964
1 d none caldera/fdisk 0700 root bin
1 d none caldera/fdisk/images 0700 root bin
1 f none caldera/fdisk/images/icon.gif 0600 root bin 553 1748 985675964
1 d none caldera/file 0700 root bin
1 d none caldera/file/images 0700 root bin
1 f none caldera/file/images/icon.gif 0600 root bin 522 65367 985675964
1 d none caldera/firewall 0700 root bin
1 d none caldera/firewall/images 0700 root bin
1 d none caldera/format 0700 root bin
1 d none caldera/format/images 0700 root bin
1 f none caldera/format/images/icon.gif 0600 root bin 553 1748 985675964
1 d none caldera/help 0700 root bin
1 d none caldera/help/images 0700 root bin
1 f none caldera/help/images/icon.gif 0600 root bin 609 4737 985675964
1 d none caldera/hpuxexports 0700 root bin
1 d none caldera/hpuxexports/images 0700 root bin
1 f none caldera/hpuxexports/images/icon.gif 0600 root bin 568 64197 985675964
1 d none caldera/images 0700 root bin
1 f none caldera/images/blue-bg.gif 0600 root bin 799 17967 985675962
1 f none caldera/images/folder-off.gif 0600 root bin 38 2324 985675962
1 f none caldera/images/folder-on.gif 0600 root bin 1011 36755 985675962
1 f none caldera/images/gradient-bg.gif 0600 root bin 230 33700 985675962
1 d none caldera/images/letters 0700 root bin
1 f none caldera/images/letters/100.gif 0600 root bin 164 17949 985675962
1 f none caldera/images/letters/101.gif 0600 root bin 155 16396 985675962
1 f none caldera/images/letters/102.gif 0600 root bin 134 11272 985675962
1 f none caldera/images/letters/103.gif 0600 root bin 171 18578 985675962
1 f none caldera/images/letters/104.gif 0600 root bin 147 14679 985675962
1 f none caldera/images/letters/105.gif 0600 root bin 88 9163 985675962
1 f none caldera/images/letters/106.gif 0600 root bin 133 11738 985675962
1 f none caldera/images/letters/107.gif 0600 root bin 152 16988 985675962
1 f none caldera/images/letters/108.gif 0600 root bin 86 6834 985675962
1 f none caldera/images/letters/109.gif 0600 root bin 229 20369 985675962
1 f none caldera/images/letters/110.gif 0600 root bin 143 15657 985675962
1 f none caldera/images/letters/111.gif 0600 root bin 162 17456 985675962
1 f none caldera/images/letters/112.gif 0600 root bin 159 17329 985675962
1 f none caldera/images/letters/113.gif 0600 root bin 159 17214 985675962
1 f none caldera/images/letters/114.gif 0600 root bin 124 10972 985675962
1 f none caldera/images/letters/115.gif 0600 root bin 154 17189 985675962
1 f none caldera/images/letters/116.gif 0600 root bin 142 13087 985675962
1 f none caldera/images/letters/117.gif 0600 root bin 145 15269 985675962
1 f none caldera/images/letters/118.gif 0600 root bin 151 17611 985675962
1 f none caldera/images/letters/119.gif 0600 root bin 187 20982 985675962
1 f none caldera/images/letters/120.gif 0600 root bin 155 17761 985675962
1 f none caldera/images/letters/121.gif 0600 root bin 160 17928 985675962
1 f none caldera/images/letters/122.gif 0600 root bin 138 13922 985675962
1 f none caldera/images/letters/123.gif 0600 root bin 86 7577 985675962
1 f none caldera/images/letters/124.gif 0600 root bin 132 13794 985675962
1 f none caldera/images/letters/125.gif 0600 root bin 123 12585 985675962
1 f none caldera/images/letters/126.gif 0600 root bin 178 19324 985675962
1 f none caldera/images/letters/192.gif 0600 root bin 178 19459 985675962
1 f none caldera/images/letters/193.gif 0600 root bin 184 18919 985675962
1 f none caldera/images/letters/194.gif 0600 root bin 183 20694 985675962
1 f none caldera/images/letters/195.gif 0600 root bin 182 21236 985675962
1 f none caldera/images/letters/196.gif 0600 root bin 182 20704 985675962
1 f none caldera/images/letters/197.gif 0600 root bin 184 19794 985675962
1 f none caldera/images/letters/198.gif 0600 root bin 182 17624 985675962
1 f none caldera/images/letters/199.gif 0600 root bin 153 15459 985675962
1 f none caldera/images/letters/200.gif 0600 root bin 152 15471 985675962
1 f none caldera/images/letters/201.gif 0600 root bin 159 15431 985675962
1 f none caldera/images/letters/202.gif 0600 root bin 155 14927 985675962
1 f none caldera/images/letters/203.gif 0600 root bin 129 12675 985675962
1 f none caldera/images/letters/204.gif 0600 root bin 128 11578 985675962
1 f none caldera/images/letters/205.gif 0600 root bin 136 12072 985675962
1 f none caldera/images/letters/206.gif 0600 root bin 133 11882 985675962
1 f none caldera/images/letters/207.gif 0600 root bin 122 11752 985675962
1 f none caldera/images/letters/208.gif 0600 root bin 178 20342 985675962
1 f none caldera/images/letters/209.gif 0600 root bin 198 21299 985675962
1 f none caldera/images/letters/210.gif 0600 root bin 199 20780 985675962
1 f none caldera/images/letters/211.gif 0600 root bin 202 21844 985675962
1 f none caldera/images/letters/212.gif 0600 root bin 198 19064 985675962
1 f none caldera/images/letters/213.gif 0600 root bin 198 19245 985675962
1 f none caldera/images/letters/214.gif 0600 root bin 204 21942 985675962
1 f none caldera/images/letters/215.gif 0600 root bin 177 18626 985675962
1 f none caldera/images/letters/216.gif 0600 root bin 179 17906 985675962
1 f none caldera/images/letters/217.gif 0600 root bin 184 19073 985675962
1 f none caldera/images/letters/218.gif 0600 root bin 182 20310 985675962
1 f none caldera/images/letters/219.gif 0600 root bin 134 12675 985675962
1 f none caldera/images/letters/220.gif 0600 root bin 154 16287 985675962
1 f none caldera/images/letters/221.gif 0600 root bin 174 21434 985675962
1 f none caldera/images/letters/222.gif 0600 root bin 162 17996 985675962
1 f none caldera/images/letters/223.gif 0600 root bin 165 17854 985675962
1 f none caldera/images/letters/224.gif 0600 root bin 168 19258 985675962
1 f none caldera/images/letters/225.gif 0600 root bin 170 18129 985675962
1 f none caldera/images/letters/226.gif 0600 root bin 168 17201 985675962
1 f none caldera/images/letters/227.gif 0600 root bin 171 18608 985675962
1 f none caldera/images/letters/228.gif 0600 root bin 186 19781 985675962
1 f none caldera/images/letters/229.gif 0600 root bin 158 17395 985675962
1 f none caldera/images/letters/230.gif 0600 root bin 166 16975 985675962
1 f none caldera/images/letters/231.gif 0600 root bin 162 17510 985675962
1 f none caldera/images/letters/232.gif 0600 root bin 173 18480 985675962
1 f none caldera/images/letters/233.gif 0600 root bin 168 19290 985675962
1 f none caldera/images/letters/234.gif 0600 root bin 125 11989 985675962
1 f none caldera/images/letters/235.gif 0600 root bin 123 11319 985675962
1 f none caldera/images/letters/236.gif 0600 root bin 132 11923 985675962
1 f none caldera/images/letters/237.gif 0600 root bin 131 12561 985675962
1 f none caldera/images/letters/238.gif 0600 root bin 120 11981 985675962
1 f none caldera/images/letters/239.gif 0600 root bin 160 17666 985675962
1 f none caldera/images/letters/240.gif 0600 root bin 169 17990 985675962
1 f none caldera/images/letters/241.gif 0600 root bin 170 17725 985675962
1 f none caldera/images/letters/242.gif 0600 root bin 174 19411 985675962
1 f none caldera/images/letters/243.gif 0600 root bin 173 18551 985675962
1 f none caldera/images/letters/244.gif 0600 root bin 173 17784 985675962
1 f none caldera/images/letters/245.gif 0600 root bin 128 12424 985675962
1 f none caldera/images/letters/246.gif 0600 root bin 166 17517 985675962
1 f none caldera/images/letters/247.gif 0600 root bin 148 14627 985675962
1 f none caldera/images/letters/248.gif 0600 root bin 146 15060 985675962
1 f none caldera/images/letters/249.gif 0600 root bin 159 15310 985675962
1 f none caldera/images/letters/250.gif 0600 root bin 158 16128 985675962
1 f none caldera/images/letters/251.gif 0600 root bin 133 11282 985675962
1 f none caldera/images/letters/252.gif 0600 root bin 153 14828 985675962
1 f none caldera/images/letters/253.gif 0600 root bin 174 19504 985675962
1 f none caldera/images/letters/254.gif 0600 root bin 0 0 985675962
1 f none caldera/images/letters/255.gif 0600 root bin 0 0 985675962
1 f none caldera/images/letters/32.gif 0600 root bin 123 14068 985675962
1 f none caldera/images/letters/33.gif 0600 root bin 94 9882 985675962
1 f none caldera/images/letters/34.gif 0600 root bin 126 10164 985675962
1 f none caldera/images/letters/35.gif 0600 root bin 168 18937 985675962
1 f none caldera/images/letters/36.gif 0600 root bin 172 19405 985675962
1 f none caldera/images/letters/37.gif 0600 root bin 202 19915 985675962
1 f none caldera/images/letters/38.gif 0600 root bin 194 20945 985675962
1 f none caldera/images/letters/39.gif 0600 root bin 82 7765 985675962
1 f none caldera/images/letters/40.gif 0600 root bin 138 14958 985675962
1 f none caldera/images/letters/41.gif 0600 root bin 136 13658 985675962
1 f none caldera/images/letters/42.gif 0600 root bin 148 16556 985675962
1 f none caldera/images/letters/43.gif 0600 root bin 128 11344 985675962
1 f none caldera/images/letters/44.gif 0600 root bin 111 9028 985675962
1 f none caldera/images/letters/45.gif 0600 root bin 63 4757 985675962
1 f none caldera/images/letters/46.gif 0600 root bin 76 6659 985675962
1 f none caldera/images/letters/47.gif 0600 root bin 142 15800 985675962
1 f none caldera/images/letters/48.gif 0600 root bin 166 18775 985675962
1 f none caldera/images/letters/49.gif 0600 root bin 125 11191 985675962
1 f none caldera/images/letters/50.gif 0600 root bin 153 16292 985675962
1 f none caldera/images/letters/51.gif 0600 root bin 164 17431 985675962
1 f none caldera/images/letters/52.gif 0600 root bin 148 15925 985675962
1 f none caldera/images/letters/53.gif 0600 root bin 160 17003 985675962
1 f none caldera/images/letters/54.gif 0600 root bin 168 18886 985675962
1 f none caldera/images/letters/55.gif 0600 root bin 141 14209 985675962
1 f none caldera/images/letters/56.gif 0600 root bin 173 18253 985675962
1 f none caldera/images/letters/57.gif 0600 root bin 169 18324 985675962
1 f none caldera/images/letters/58.gif 0600 root bin 83 7658 985675962
1 f none caldera/images/letters/59.gif 0600 root bin 120 10686 985675962
1 f none caldera/images/letters/60.gif 0600 root bin 138 14839 985675962
1 f none caldera/images/letters/61.gif 0600 root bin 91 8129 985675962
1 f none caldera/images/letters/62.gif 0600 root bin 138 16067 985675962
1 f none caldera/images/letters/63.gif 0600 root bin 145 16103 985675962
1 f none caldera/images/letters/64.gif 0600 root bin 251 23489 985675962
1 f none caldera/images/letters/65.gif 0600 root bin 167 19518 985675961
1 f none caldera/images/letters/66.gif 0600 root bin 168 18711 985675961
1 f none caldera/images/letters/67.gif 0600 root bin 173 19285 985675961
1 f none caldera/images/letters/68.gif 0600 root bin 164 18069 985675961
1 f none caldera/images/letters/69.gif 0600 root bin 146 14806 985675961
1 f none caldera/images/letters/70.gif 0600 root bin 138 12253 985675961
1 f none caldera/images/letters/71.gif 0600 root bin 181 19629 985675961
1 f none caldera/images/letters/72.gif 0600 root bin 119 10435 985675961
1 f none caldera/images/letters/73.gif 0600 root bin 91 9025 985675961
1 f none caldera/images/letters/74.gif 0600 root bin 138 13463 985675961
1 f none caldera/images/letters/75.gif 0600 root bin 170 20045 985675961
1 f none caldera/images/letters/76.gif 0600 root bin 104 11184 985675961
1 f none caldera/images/letters/77.gif 0600 root bin 203 23221 985675961
1 f none caldera/images/letters/78.gif 0600 root bin 166 17696 985675961
1 f none caldera/images/letters/79.gif 0600 root bin 186 19415 985675961
1 f none caldera/images/letters/80.gif 0600 root bin 149 16434 985675961
1 f none caldera/images/letters/81.gif 0600 root bin 183 19515 985675961
1 f none caldera/images/letters/82.gif 0600 root bin 162 18394 985675961
1 f none caldera/images/letters/83.gif 0600 root bin 183 19698 985675961
1 f none caldera/images/letters/84.gif 0600 root bin 87 8745 985675961
1 f none caldera/images/letters/85.gif 0600 root bin 166 18124 985675961
1 f none caldera/images/letters/86.gif 0600 root bin 168 17676 985675961
1 f none caldera/images/letters/87.gif 0600 root bin 225 23256 985675961
1 f none caldera/images/letters/88.gif 0600 root bin 169 18685 985675962
1 f none caldera/images/letters/89.gif 0600 root bin 156 16276 985675962
1 f none caldera/images/letters/90.gif 0600 root bin 154 17474 985675962
1 f none caldera/images/letters/91.gif 0600 root bin 207 22771 985675962
1 f none caldera/images/letters/93.gif 0600 root bin 143 15787 985675962
1 f none caldera/images/letters/94.gif 0600 root bin 85 8941 985675962
1 f none caldera/images/letters/95.gif 0600 root bin 106 9247 985675962
1 f none caldera/images/letters/96.gif 0600 root bin 130 13073 985675962
1 f none caldera/images/letters/97.gif 0600 root bin 156 17417 985675962
1 f none caldera/images/letters/98.gif 0600 root bin 159 18635 985675962
1 f none caldera/images/letters/99.gif 0600 root bin 150 16089 985675962
1 f none caldera/images/main-bg-pixel.gif 0600 root bin 35 1293 985675962
1 f none caldera/images/nav2bg.gif 0600 root bin 97 10212 985675962
1 f none caldera/images/navbg.gif 0600 root bin 110 11543 985675962
1 f none caldera/images/pixel-white.gif 0600 root bin 799 17884 985675962
1 f none caldera/images/spacer.gif 0600 root bin 43 1850 985675962
1 f none caldera/images/top-grad-stretch.gif 0600 root bin 62 3276 985675962
1 f none caldera/images/webmin-header.gif 0600 root bin 7992 20869 985675962
1 f none caldera/index.cgi 0700 root bin 1617 65507 985675963
1 f none caldera/index_body.cgi 0600 root bin 116 9603 985675965
1 f none caldera/index_top.cgi 0600 root bin 5528 14947 985675963
1 d none caldera/inetd 0700 root bin
1 d none caldera/inetd/images 0700 root bin
1 f none caldera/inetd/images/icon.gif 0600 root bin 565 1415 985675964
1 d none caldera/init 0700 root bin
1 d none caldera/init/images 0700 root bin
1 f none caldera/init/images/icon.gif 0600 root bin 621 2820 985675964
1 d none caldera/inittab 0700 root bin
1 d none caldera/inittab/images 0700 root bin
1 f none caldera/inittab/images/icon.gif 0600 root bin 569 474 985675964
1 d none caldera/ipcache 0700 root bin
1 d none caldera/ipcache/images 0700 root bin
1 d none caldera/ipchains 0700 root bin
1 d none caldera/ipchains/images 0700 root bin
1 f none caldera/ipchains/images/icon.gif 0600 root bin 344 38790 985675965
1 d none caldera/ipweb 0700 root bin
1 d none caldera/ipweb/images 0700 root bin
1 d none caldera/lilo 0700 root bin
1 d none caldera/lilo/images 0700 root bin
1 f none caldera/lilo/images/icon.gif 0600 root bin 623 5629 985675964
1 d none caldera/link 0700 root bin
1 d none caldera/link/images 0700 root bin
1 f none caldera/link/images/icon.gif 0600 root bin 676 48992 985675964
1 d none caldera/lkmload 0700 root bin
1 d none caldera/lkmload/images 0700 root bin
1 f none caldera/lkmload/images/icon.gif 0600 root bin 284 33796 985675965
1 d none caldera/lpadmin 0700 root bin
1 d none caldera/lpadmin/images 0700 root bin
1 f none caldera/lpadmin/images/icon.gif 0600 root bin 524 59033 985675964
1 d none caldera/majordomo 0700 root bin
1 d none caldera/majordomo/images 0700 root bin
1 f none caldera/majordomo/images/icon.gif 0600 root bin 518 56989 985675964
1 d none caldera/man 0700 root bin
1 d none caldera/man/images 0700 root bin
1 f none caldera/man/images/icon.gif 0600 root bin 519 53301 985675964
1 d none caldera/mount 0700 root bin
1 d none caldera/mount/images 0700 root bin
1 f none caldera/mount/images/icon.gif 0600 root bin 536 64712 985675964
1 d none caldera/mysql 0700 root bin
1 d none caldera/mysql/images 0700 root bin
1 f none caldera/mysql/images/icon.gif 0600 root bin 560 1203 985675964
1 d none caldera/net 0700 root bin
1 d none caldera/net/images 0700 root bin
1 f none caldera/net/images/icon.gif 0600 root bin 549 63360 985675964
1 d none caldera/nis 0700 root bin
1 d none caldera/nis/images 0700 root bin
1 f none caldera/nis/images/icon.gif 0600 root bin 679 48679 985675965
1 d none caldera/openldap 0700 root bin
1 d none caldera/openldap/images 0700 root bin
1 f none caldera/openldap/images/icon.gif 0600 root bin 347 39224 985675961
1 d none caldera/openslp 0700 root bin
1 d none caldera/openslp/images 0700 root bin
1 f none caldera/openslp/images/icon.gif 0600 root bin 298 35857 985675962
1 d none caldera/pam 0700 root bin
1 d none caldera/pam/images 0700 root bin
1 f none caldera/pam/images/icon.gif 0600 root bin 763 42612 985675964
1 d none caldera/pap 0700 root bin
1 d none caldera/pap/images 0700 root bin
1 f none caldera/pap/images/icon.gif 0600 root bin 544 59315 985675964
1 d none caldera/postfix 0700 root bin
1 d none caldera/postfix/images 0700 root bin
1 f none caldera/postfix/images/icon.gif 0600 root bin 603 2547 985675964
1 d none caldera/postgresql 0700 root bin
1 d none caldera/postgresql/images 0700 root bin
1 f none caldera/postgresql/images/icon.gif 0600 root bin 560 1203 985675964
1 d none caldera/proc 0700 root bin
1 d none caldera/proc/images 0700 root bin
1 f none caldera/proc/images/icon.gif 0600 root bin 570 1927 985675964
1 d none caldera/quota 0700 root bin
1 d none caldera/quota/images 0700 root bin
1 f none caldera/quota/images/icon.gif 0600 root bin 547 575 985675964
1 d none caldera/raid 0700 root bin
1 d none caldera/raid/images 0700 root bin
1 f none caldera/raid/images/icon.gif 0600 root bin 559 500 985675964
1 d none caldera/samba 0700 root bin
1 d none caldera/samba/images 0700 root bin
1 f none caldera/samba/images/icon.gif 0600 root bin 484 49319 985675964
1 d none caldera/sendmail 0700 root bin
1 d none caldera/sendmail/images 0700 root bin
1 f none caldera/sendmail/images/icon.gif 0600 root bin 568 1480 985675964
1 d none caldera/servers 0700 root bin
1 d none caldera/servers/images 0700 root bin
1 f none caldera/servers/images/icon.gif 0600 root bin 549 114 985675964
1 d none caldera/shell 0700 root bin
1 d none caldera/shell/images 0700 root bin
1 f none caldera/shell/images/icon.gif 0600 root bin 968 53572 985675965
1 d none caldera/software 0700 root bin
1 d none caldera/software/images 0700 root bin
1 f none caldera/software/images/icon.gif 0600 root bin 589 3315 985675964
1 d none caldera/squid 0700 root bin
1 d none caldera/squid/images 0700 root bin
1 f none caldera/squid/images/icon.gif 0600 root bin 561 2069 985675964
1 d none caldera/ssh 0700 root bin
1 d none caldera/ssh/images 0700 root bin
1 f none caldera/ssh/images/icon.gif 0600 root bin 513 3 985675964
1 d none caldera/status 0700 root bin
1 d none caldera/status/images 0700 root bin
1 f none caldera/status/images/icon.gif 0600 root bin 1284 51185 985675964
1 d none caldera/steed 0700 root bin
1 f none caldera/steed/apache_nav.html 0600 root bin 3753 4698 985675962
1 d none caldera/steed/css 0700 root bin
1 f none caldera/steed/css/style.css 0600 root bin 1697 59925 985675962
1 d none caldera/steed/hardware 0700 root bin
1 f none caldera/steed/hardware.html 0600 root bin 398 28516 985675962
1 f none caldera/steed/hardware/fdisk.html 0600 root bin 667 39824 985675962
1 f none caldera/steed/hardware/lilo.html 0600 root bin 668 40030 985675962
1 f none caldera/steed/hardware/lpadmin.html 0600 root bin 664 39687 985675962
1 f none caldera/steed/hardware/net.html 0600 root bin 663 39583 985675962
1 f none caldera/steed/hardware/raid.html 0600 root bin 652 38285 985675962
1 f none caldera/steed/hardware/time.html 0600 root bin 653 38513 985675962
1 f none caldera/steed/hardware_body.html 0600 root bin 611 37698 985675962
1 f none caldera/steed/hardware_nav.html 0600 root bin 6369 43590 985675962
1 d none caldera/steed/home 0700 root bin
1 f none caldera/steed/home/authentication.html 0600 root bin 656 38909 985675962
1 f none caldera/steed/home/editcats.html 0600 root bin 657 38889 985675962
1 f none caldera/steed/home/indexpageopts.html 0600 root bin 660 39134 985675962
1 f none caldera/steed/home/ipaccesscontrol.html 0600 root bin 621 38548 985675962
1 f none caldera/steed/home/lang.html 0600 root bin 650 38241 985675962
1 f none caldera/steed/home/logging.html 0600 root bin 649 38148 985675962
1 f none caldera/steed/home/os.html 0600 root bin 658 39051 985675962
1 f none caldera/steed/home/portaddress.html 0600 root bin 658 38939 985675962
1 f none caldera/steed/home/proxys.html 0600 root bin 655 38761 985675962
1 f none caldera/steed/home/reassignmods.html 0600 root bin 658 39026 985675962
1 f none caldera/steed/home/upgradewebmin.html 0600 root bin 656 38791 985675962
1 f none caldera/steed/home/useri.html 0600 root bin 656 38797 985675962
1 f none caldera/steed/home/webminmods.html 0600 root bin 656 38808 985675962
1 d none caldera/steed/images 0700 root bin
1 f none caldera/steed/images/blue-bg.gif 0600 root bin 799 17967 985675962
1 f none caldera/steed/images/folder-off.gif 0600 root bin 38 2324 985675962
1 f none caldera/steed/images/folder-on.gif 0600 root bin 1011 36755 985675962
1 f none caldera/steed/images/gradient-bg.gif 0600 root bin 230 33700 985675962
1 f none caldera/steed/images/icon01.gif 0600 root bin 621 2820 985675962
1 f none caldera/steed/images/icon02.gif 0600 root bin 519 53301 985675962
1 f none caldera/steed/images/icon03.gif 0600 root bin 507 49655 985675962
1 f none caldera/steed/images/icon04.gif 0600 root bin 541 61760 985675962
1 f none caldera/steed/images/icon05.gif 0600 root bin 547 575 985675962
1 f none caldera/steed/images/icon06.gif 0600 root bin 568 64197 985675962
1 f none caldera/steed/images/icon07.gif 0600 root bin 589 3315 985675962
1 f none caldera/steed/images/icon08.gif 0600 root bin 551 62511 985675962
1 f none caldera/steed/images/icon09.gif 0600 root bin 536 64712 985675962
1 f none caldera/steed/images/icon10.gif 0600 root bin 570 1927 985675962
1 f none caldera/steed/images/icon11.gif 0600 root bin 569 474 985675962
1 f none caldera/steed/images/iconT0-01.gif 0600 root bin 400 45435 985675962
1 f none caldera/steed/images/iconT0-02.gif 0600 root bin 415 44964 985675962
1 f none caldera/steed/images/iconT0-03.gif 0600 root bin 390 45247 985675962
1 f none caldera/steed/images/iconT0-04.gif 0600 root bin 392 45432 985675962
1 f none caldera/steed/images/iconT0-05.gif 0600 root bin 402 41888 985675962
1 f none caldera/steed/images/iconT0-06.gif 0600 root bin 386 43736 985675962
1 f none caldera/steed/images/iconT0-07.gif 0600 root bin 426 47103 985675962
1 f none caldera/steed/images/iconT0-08.gif 0600 root bin 455 51120 985675962
1 f none caldera/steed/images/iconT0-09.gif 0600 root bin 451 47246 985675962
1 f none caldera/steed/images/iconT0-10.gif 0600 root bin 418 45582 985675962
1 f none caldera/steed/images/iconT0-11.gif 0600 root bin 411 44597 985675962
1 f none caldera/steed/images/iconT0-12.gif 0600 root bin 468 45942 985675962
1 f none caldera/steed/images/iconT0-13.gif 0600 root bin 384 42926 985675962
1 f none caldera/steed/images/iconT1-02.gif 0600 root bin 589 5882 985675962
1 f none caldera/steed/images/iconT1-03.gif 0600 root bin 609 4737 985675962
1 f none caldera/steed/images/iconT1-04.gif 0600 root bin 549 114 985675962
1 f none caldera/steed/images/iconT1-05.gif 0600 root bin 519 54805 985675962
1 f none caldera/steed/images/iconT3-01.gif 0600 root bin 578 3342 985675963
1 f none caldera/steed/images/iconT3-02.gif 0600 root bin 540 65158 985675963
1 f none caldera/steed/images/iconT3-04.gif 0600 root bin 546 1598 985675963
1 f none caldera/steed/images/iconT3-05.gif 0600 root bin 552 932 985675963
1 f none caldera/steed/images/iconT3-06.gif 0600 root bin 565 1415 985675963
1 f none caldera/steed/images/iconT3-07.gif 0600 root bin 518 56989 985675963
1 f none caldera/steed/images/iconT3-08.gif 0600 root bin 560 1203 985675963
1 f none caldera/steed/images/iconT3-09.gif 0600 root bin 544 59315 985675963
1 f none caldera/steed/images/iconT3-10.gif 0600 root bin 603 2547 985675963
1 f none caldera/steed/images/iconT3-12.gif 0600 root bin 484 49319 985675963
1 f none caldera/steed/images/iconT3-13.gif 0600 root bin 568 1480 985675963
1 f none caldera/steed/images/iconT3-14.gif 0600 root bin 561 2069 985675963
1 f none caldera/steed/images/iconT4-01.gif 0600 root bin 623 5629 985675963
1 f none caldera/steed/images/iconT4-02.gif 0600 root bin 559 500 985675963
1 f none caldera/steed/images/iconT4-03.gif 0600 root bin 549 63360 985675963
1 f none caldera/steed/images/iconT4-04.gif 0600 root bin 553 1748 985675963
1 f none caldera/steed/images/iconT4-05.gif 0600 root bin 524 59033 985675963
1 f none caldera/steed/images/iconT4-06.gif 0600 root bin 556 773 985675963
1 f none caldera/steed/images/iconT5-01.gif 0600 root bin 590 1709 985675963
1 f none caldera/steed/images/iconT5-02.gif 0600 root bin 522 65367 985675963
1 f none caldera/steed/images/iconT5-03.gif 0600 root bin 513 3 985675963
1 f none caldera/steed/images/iconblank.gif 0600 root bin 35 1293 985675963
1 f none caldera/steed/images/iconserverT3-01.gif 0600 root bin 601 6461 985675962
1 f none caldera/steed/images/iconserverT3-02.gif 0600 root bin 576 829 985675962
1 f none caldera/steed/images/iconserverT3-03.gif 0600 root bin 588 3377 985675962
1 f none caldera/steed/images/iconserverT3-04.gif 0600 root bin 544 56096 985675962
1 f none caldera/steed/images/iconserverT3-05.gif 0600 root bin 534 56552 985675962
1 f none caldera/steed/images/iconserverT3-06.gif 0600 root bin 493 50064 985675962
1 f none caldera/steed/images/iconserverT3-07.gif 0600 root bin 592 3036 985675962
1 f none caldera/steed/images/iconserverT3-08.gif 0600 root bin 589 3253 985675962
1 f none caldera/steed/images/iconserverT3-09.gif 0600 root bin 534 55045 985675962
1 f none caldera/steed/images/main-bg-pixel.gif 0600 root bin 35 1293 985675963
1 f none caldera/steed/images/nav2bg.gif 0600 root bin 97 10212 985675963
1 f none caldera/steed/images/navbg.gif 0600 root bin 110 11543 985675963
1 f none caldera/steed/images/pixel-white.gif 0600 root bin 799 17884 985675963
1 f none caldera/steed/images/spacer.gif 0600 root bin 43 1850 985675963
1 f none caldera/steed/images/top-grad-stretch.gif 0600 root bin 62 3276 985675963
1 f none caldera/steed/images/webmin-header.gif 0600 root bin 6112 2851 985675963
1 f none caldera/steed/index.html 0600 root bin 393 27995 985675963
1 f none caldera/steed/index_body.html 0600 root bin 607 37277 985675963
1 f none caldera/steed/index_nav.html 0600 root bin 8275 51593 985675963
1 d none caldera/steed/others 0700 root bin
1 f none caldera/steed/others.html 0600 root bin 392 27964 985675963
1 f none caldera/steed/others/custom.html 0600 root bin 657 38922 985675963
1 f none caldera/steed/others/file.html 0600 root bin 654 38552 985675963
1 f none caldera/steed/others/telnet.html 0600 root bin 654 38594 985675963
1 f none caldera/steed/others_body.html 0600 root bin 609 37513 985675963
1 f none caldera/steed/others_nav.html 0600 root bin 5635 55023 985675963
1 d none caldera/steed/servers 0700 root bin
1 f none caldera/steed/servers.html 0600 root bin 459 33387 985675963
1 f none caldera/steed/servers/ap_apmods.html 0600 root bin 660 38863 985675963
1 f none caldera/steed/servers/ap_cgi.html 0600 root bin 658 38610 985675963
1 f none caldera/steed/servers/ap_editdefparam.html 0600 root bin 669 39709 985675963
1 f none caldera/steed/servers/ap_mime.html 0600 root bin 656 38385 985675963
1 f none caldera/steed/servers/ap_misc.html 0600 root bin 659 38888 985675963
1 f none caldera/steed/servers/ap_net_add.html 0600 root bin 670 39885 985675963
1 f none caldera/steed/servers/ap_pdoptfiles.html 0600 root bin 673 40124 985675963
1 f none caldera/steed/servers/ap_procs_limits.html 0600 root bin 666 39472 985675963
1 f none caldera/steed/servers/ap_reconknowmods.html 0600 root bin 672 40000 985675963
1 f none caldera/steed/servers/apache.html 0600 root bin 466 33336 985675963
1 f none caldera/steed/servers/apache_body.html 0600 root bin 623 38665 985675963
1 f none caldera/steed/servers/bind8.html 0600 root bin 659 38710 985675963
1 f none caldera/steed/servers/dhcpd.html 0600 root bin 655 38451 985675963
1 f none caldera/steed/servers/dnsadmin.html 0600 root bin 659 38730 985675963
1 f none caldera/steed/servers/inetd.html 0600 root bin 673 40482 985675963
1 f none caldera/steed/servers/majordomo.html 0600 root bin 664 39548 985675963
1 f none caldera/steed/servers/mysql.html 0600 root bin 663 39359 985675963
1 f none caldera/steed/servers/pap.html 0600 root bin 654 38541 985675963
1 f none caldera/steed/servers/postfix.html 0600 root bin 663 39586 985675963
1 f none caldera/steed/servers/postgresql.html 0600 root bin 668 39901 985675963
1 f none caldera/steed/servers/samba.html 0600 root bin 668 39864 985675963
1 f none caldera/steed/servers/sendmail.html 0600 root bin 664 39650 985675963
1 f none caldera/steed/servers/squid.html 0600 root bin 660 39196 985675963
1 f none caldera/steed/servers/wuftpd.html 0600 root bin 652 38334 985675963
1 f none caldera/steed/servers_body.html 0600 root bin 610 37630 985675963
1 f none caldera/steed/servers_nav.html 0600 root bin 8474 65470 985675963
1 d none caldera/steed/system 0700 root bin
1 f none caldera/steed/system.html 0600 root bin 392 28011 985675963
1 f none caldera/steed/system/cron.html 0600 root bin 661 39214 985675963
1 f none caldera/steed/system/exports.html 0600 root bin 653 38457 985675963
1 f none caldera/steed/system/init.html 0600 root bin 661 39301 985675963
1 f none caldera/steed/system/inittab.html 0600 root bin 665 39678 985675963
1 f none caldera/steed/system/man.html 0600 root bin 654 38571 985675963
1 f none caldera/steed/system/mount.html 0600 root bin 670 40157 985675963
1 f none caldera/steed/system/proc.html 0600 root bin 659 39157 985675963
1 f none caldera/steed/system/quota.html 0600 root bin 653 38501 985675963
1 f none caldera/steed/system/software.html 0600 root bin 659 39111 985675963
1 f none caldera/steed/system/syslog.html 0600 root bin 653 38519 985675963
1 f none caldera/steed/system/useradmin.html 0600 root bin 658 38978 985675963
1 f none caldera/steed/system_body.html 0600 root bin 609 37529 985675963
1 f none caldera/steed/system_nav.html 0600 root bin 7642 4572 985675963
1 d none caldera/steed/webmin 0700 root bin
1 f none caldera/steed/webmin.html 0600 root bin 392 27901 985675963
1 f none caldera/steed/webmin/webminacl.html 0600 root bin 654 38609 985675963
1 f none caldera/steed/webmin/webminhelp.html 0600 root bin 654 38504 985675963
1 f none caldera/steed/webmin/webminservers.html 0600 root bin 662 39361 985675963
1 f none caldera/steed/webmin/webminwebmin.html 0600 root bin 662 39447 985675963
1 f none caldera/steed/webmin/webminwebminlog.html 0600 root bin 660 39122 985675963
1 f none caldera/steed/webmin_body.html 0600 root bin 609 37494 985675963
1 f none caldera/steed/webmin_nav.html 0600 root bin 6300 39219 985675963
1 f none caldera/style.css 0600 root bin 1697 59925 985675963
1 d none caldera/syslog 0700 root bin
1 d none caldera/syslog/images 0700 root bin
1 f none caldera/syslog/images/icon.gif 0600 root bin 541 61760 985675964
1 d none caldera/tcpd 0700 root bin
1 d none caldera/tcpd/images 0700 root bin
1 d none caldera/telnet 0700 root bin
1 d none caldera/telnet/images 0700 root bin
1 f none caldera/telnet/images/icon.gif 0600 root bin 513 3 985675964
1 f none caldera/template.gif 0600 root bin 634 43333 985675965
1 f none caldera/theme.info 0600 root bin 19 1832 985675961
1 d none caldera/time 0700 root bin
1 d none caldera/time/images 0700 root bin
1 f none caldera/time/images/icon.gif 0600 root bin 556 773 985675965
1 d none caldera/useradmin 0700 root bin
1 d none caldera/useradmin/images 0700 root bin
1 f none caldera/useradmin/images/icon.gif 0600 root bin 551 62511 985675965
1 d none caldera/vnc 0700 root bin
1 d none caldera/vnc/images 0700 root bin
1 f none caldera/vnc/images/icon.gif 0600 root bin 826 17137 985675965
1 d none caldera/volution 0700 root bin
1 d none caldera/volution/images 0700 root bin
1 f none caldera/volution/images/icon.gif 0600 root bin 549 63360 985675963
1 d none caldera/webmin 0700 root bin
1 d none caldera/webmin/images 0700 root bin
1 f none caldera/webmin/images/icon.gif 0600 root bin 589 5882 985675965
1 d none caldera/webminlog 0700 root bin
1 d none caldera/webminlog/images 0700 root bin
1 f none caldera/webminlog/images/icon.gif 0600 root bin 541 61760 985675965
1 d none caldera/wuftpd 0700 root bin
1 d none caldera/wuftpd/images 0700 root bin
1 f none caldera/wuftpd/images/icon.gif 0600 root bin 552 932 985675965
1 d none caldera/xinetd 0700 root bin
1 d none caldera/xinetd/images 0700 root bin
1 f none caldera/xinetd/images/icon.gif 0600 root bin 565 1415 985675965
1 f none changepass.pl 0700 root bin 1776 13952 985675910
1 f none chooser.cgi 0700 root bin 3978 46518 985675910
1 f none config-aix 0600 root bin 142 12238 985675910
1 f none config-cobalt-linux 0600 root bin 148 12884 985675910
1 f none config-corel-linux 0600 root bin 148 12884 985675910
1 f none config-debian-linux 0600 root bin 148 12884 985675910
1 f none config-freebsd 0600 root bin 149 13003 985675910
1 f none config-hpux 0600 root bin 142 12274 985675910
1 f none config-irix 0600 root bin 185 16036 985675910
1 f none config-macos 0600 root bin 163 14243 985675910
1 f none config-open-linux 0600 root bin 148 12884 985675910
1 f none config-openbsd 0600 root bin 150 13013 985675910
1 f none config-openserver 0600 root bin 143 12248 985675910
1 f none config-osf1 0600 root bin 167 14411 985675910
1 f none config-redhat-linux 0600 root bin 148 12884 985675909
1 f none config-slackware-linux 0600 root bin 148 12884 985675909
1 f none config-solaris 0600 root bin 196 17107 985675909
1 f none config-suse-linux 0600 root bin 148 12884 985675910
1 f none config-turbo-linux 0600 root bin 148 12884 985675910
1 f none config-unixware 0600 root bin 202 17615 985675910
1 f none config.cgi 0700 root bin 4729 33801 985675909
1 f none config_save.cgi 0700 root bin 1677 64355 985675910
1 f none copyconfig.pl 0600 root bin 2175 36782 985675910
1 d none cpan 0700 root bin
1 f none cpan/config 0600 root bin 99 9295 985675961
1 f none cpan/config.info 0600 root bin 63 5402 985675961
1 f none cpan/config.info.es 0600 root bin 75 6669 985675961
1 f none cpan/config.info.nl 0700 root bin 65 5627 985675961
1 f none cpan/config.info.pl 0600 root bin 71 6644 985675961
1 f none cpan/config.info.ru_RU 0600 root bin 69 10003 985675961
1 f none cpan/config.info.ru_SU 0600 root bin 69 9189 985675961
1 f none cpan/config.info.sv 0600 root bin 74 6691 985675961
1 f none cpan/config.info.zh_CN 0600 root bin 55 6145 985675961
1 f none cpan/cpan-lib.pl 0600 root bin 1685 59794 985675961
1 f none cpan/cpan.cgi 0700 root bin 2470 59015 985675961
1 f none cpan/download.cgi 0700 root bin 4553 33753 985675961
1 f none cpan/edit_mod.cgi 0700 root bin 1491 56134 985675961
1 d none cpan/images 0700 root bin
1 f none cpan/images/cat.gif 0600 root bin 112 11697 985675961
1 f none cpan/images/icon.gif 0600 root bin 969 27469 985675961
1 f none cpan/images/mod.gif 0600 root bin 123 11211 985675961
1 f none cpan/index.cgi 0700 root bin 2039 39878 985675961
1 f none cpan/install.cgi 0600 root bin 1837 16898 985675961
1 d none cpan/lang 0700 root bin
1 f none cpan/lang/en 0600 root bin 2070 64188 985675961
1 f none cpan/lang/es 0600 root bin 2282 24986 985675961
1 f none cpan/lang/nl 0700 root bin 2290 20955 985675961
1 f none cpan/lang/pl 0600 root bin 2385 37850 985675961
1 f none cpan/lang/ru_RU 0600 root bin 890 9921 985675961
1 f none cpan/lang/ru_SU 0600 root bin 891 62971 985675961
1 f none cpan/lang/sv 0600 root bin 2224 18246 985675961
1 f none cpan/lang/zh_CN 0600 root bin 1632 26215 985675961
1 f none cpan/module.info 0600 root bin 192 19637 985675961
1 d none cron 0700 root bin
1 f none cron/acl_security.pl 0600 root bin 1427 51749 985675911
1 f none cron/config-aix 0600 root bin 225 21202 985675911
1 f none cron/config-cobalt-linux 0600 root bin 315 29496 985675911
1 f none cron/config-corel-linux 0600 root bin 333 31193 985675911
1 f none cron/config-debian-linux 0600 root bin 262 24454 985675910
1 f none cron/config-debian-linux-2.1 0600 root bin 336 31639 985675911
1 f none cron/config-debian-linux-2.2 0600 root bin 336 31639 985675911
1 f none cron/config-freebsd 0600 root bin 269 24962 985675911
1 f none cron/config-hpux 0600 root bin 280 25696 985675910
1 f none cron/config-irix 0600 root bin 282 26821 985675911
1 f none cron/config-macos 0600 root bin 268 24952 985675911
1 f none cron/config-open-linux 0600 root bin 357 33431 985675911
1 f none cron/config-openbsd 0600 root bin 269 24962 985675911
1 f none cron/config-openserver 0600 root bin 255 23888 985675911
1 f none cron/config-osf1 0600 root bin 294 27834 985675911
1 f none cron/config-redhat-linux 0600 root bin 315 29496 985675910
1 f none cron/config-slackware-linux 0600 root bin 212 19866 985675910
1 f none cron/config-solaris 0600 root bin 255 23888 985675910
1 f none cron/config-suse-linux 0600 root bin 295 27402 985675911
1 f none cron/config-suse-linux-7.0 0600 root bin 301 28006 985675911
1 f none cron/config-suse-linux-7.1 0600 root bin 301 28006 985675911
1 f none cron/config-turbo-linux 0600 root bin 315 29496 985675911
1 f none cron/config-unixware 0600 root bin 255 23888 985675911
1 f none cron/config.info 0600 root bin 704 65142 985675910
1 f none cron/config.info.de 0600 root bin 871 15657 985675911
1 f none cron/config.info.es 0600 root bin 878 16712 985675911
1 f none cron/config.info.fr 0600 root bin 830 14401 985675911
1 f none cron/config.info.nl 0700 root bin 845 13803 985675911
1 f none cron/config.info.pl 0600 root bin 845 18254 985675911
1 f none cron/config.info.ru_RU 0600 root bin 843 10210 985675911
1 f none cron/config.info.ru_SU 0600 root bin 843 62511 985675911
1 f none cron/config.info.sv 0600 root bin 767 9231 985675911
1 f none cron/config.info.tr 0600 root bin 841 21223 985675911
1 f none cron/config.info.zh_CN 0600 root bin 555 14398 985675911
1 f none cron/config.info.zh_TW.Big5 0600 root bin 664 24842 985675911
1 f none cron/cron-lib.pl 0600 root bin 7594 54817 985675910
1 f none cron/cron_editor.pl 0700 root bin 477 37288 985675911
1 f none cron/defaultacl 0600 root bin 33 2806 985675911
1 f none cron/delete_cron.cgi 0700 root bin 457 38372 985675910
1 f none cron/edit_allow.cgi 0700 root bin 1297 43230 985675911
1 f none cron/edit_cron.cgi 0700 root bin 5260 15737 985675910
1 f none cron/edit_env.cgi 0700 root bin 1093 24103 985675911
1 f none cron/exec_cron.cgi 0700 root bin 1355 42467 985675911
1 d none cron/help 0700 root bin
1 f none cron/help/help.es.html 0600 root bin 3237 17898 985675911
1 f none cron/help/help.fr.html 0600 root bin 3375 46252 985675911
1 f none cron/help/help.html 0600 root bin 3237 17898 985675911
1 f none cron/help/help.nl.html 0700 root bin 3716 2422 985675911
1 f none cron/help/help.sv.html 0600 root bin 3052 19517 985675911
1 f none cron/help/help.zh_TW.Big5.html 0600 root bin 2163 16451 985675911
1 f none cron/help/intro.es.html 0600 root bin 198 18146 985675911
1 f none cron/help/intro.fr.html 0600 root bin 180 17267 985675911
1 f none cron/help/intro.html 0600 root bin 169 14811 985675911
1 f none cron/help/intro.hu.html 0600 root bin 176 17230 985675911
1 f none cron/help/intro.nl.html 0700 root bin 193 17377 985675911
1 f none cron/help/intro.sv.html 0600 root bin 159 14846 985675911
1 f none cron/help/intro.zh_TW.Big5.html 0600 root bin 130 17950 985675911
1 d none cron/images 0700 root bin
1 f none cron/images/icon.gif 0600 root bin 1970 19235 985675910
1 f none cron/index.cgi 0700 root bin 2559 61854 985675910
1 d none cron/lang 0700 root bin
1 f none cron/lang/de 0600 root bin 2594 45845 985675911
1 f none cron/lang/en 0600 root bin 2457 30309 985675911
1 f none cron/lang/es 0600 root bin 2837 2147 985675911
1 f none cron/lang/fr 0600 root bin 2560 54291 985675911
1 f none cron/lang/hu 0600 root bin 2598 7121 985675911
1 f none cron/lang/it 0600 root bin 2351 23567 985675911
1 f none cron/lang/nl 0700 root bin 2871 7069 985675911
1 f none cron/lang/pl 0600 root bin 2761 8916 985675911
1 f none cron/lang/pt 0600 root bin 2678 60329 985675911
1 f none cron/lang/ru_RU 0600 root bin 2348 58730 985675911
1 f none cron/lang/ru_SU 0600 root bin 2382 29588 985675911
1 f none cron/lang/sv 0600 root bin 2300 29827 985675911
1 f none cron/lang/tr 0600 root bin 2975 829 985675911
1 f none cron/lang/zh_CN 0600 root bin 1963 3125 985675911
1 f none cron/lang/zh_TW.Big5 0600 root bin 1911 54464 985675911
1 f none cron/log_parser.pl 0600 root bin 957 12242 985675911
1 f none cron/module.info 0600 root bin 666 4096 985675910
1 f none cron/save_allow.cgi 0700 root bin 510 45014 985675910
1 f none cron/save_cron.cgi 0700 root bin 3193 52338 985675910
1 f none cron/save_env.cgi 0700 root bin 491 38557 985675911
1 f none cron/useradmin_update.pl 0600 root bin 772 63364 985675911
1 d none custom 0700 root bin
1 f none custom/acl_security.pl 0700 root bin 1311 41437 985675939
1 f none custom/custom-lib.pl 0600 root bin 1805 7984 985675939
1 f none custom/defaultacl 0600 root bin 25 2048 985675939
1 f none custom/edit_cmd.cgi 0700 root bin 3156 57436 985675939
1 d none custom/help 0700 root bin
1 f none custom/help/cmd.es.html 0600 root bin 1853 33823 985675939
1 f none custom/help/cmd.fr.html 0600 root bin 1820 33063 985675939
1 f none custom/help/cmd.html 0600 root bin 1659 10847 985675939
1 f none custom/help/cmd.sv.html 0600 root bin 1686 22556 985675939
1 f none custom/help/cmd.zh_TW.Big5.html 0600 root bin 1229 25556 985675939
1 f none custom/help/command.es.html 0600 root bin 196 17126 985675939
1 f none custom/help/command.fr.html 0600 root bin 221 20575 985675939
1 f none custom/help/command.html 0600 root bin 187 16118 985675939
1 f none custom/help/command.sv.html 0600 root bin 164 14806 985675939
1 f none custom/help/command.zh_TW.Big5.html 0600 root bin 151 17620 985675939
1 f none custom/help/create.es.html 0600 root bin 190 17709 985675939
1 f none custom/help/create.fr.html 0600 root bin 217 20668 985675939
1 f none custom/help/create.html 0600 root bin 172 15241 985675939
1 f none custom/help/create.sv.html 0600 root bin 184 17157 985675939
1 f none custom/help/create.zh_TW.Big5.html 0600 root bin 131 17470 985675939
1 f none custom/help/desc.es.html 0600 root bin 175 16290 985675939
1 f none custom/help/desc.fr.html 0600 root bin 172 15583 985675939
1 f none custom/help/desc.html 0600 root bin 153 13661 985675939
1 f none custom/help/desc.sv.html 0600 root bin 139 13013 985675939
1 f none custom/help/desc.zh_TW.Big5.html 0600 root bin 111 14526 985675939
1 f none custom/help/edit.es.html 0600 root bin 116 10493 985675939
1 f none custom/help/edit.fr.html 0600 root bin 122 11650 985675939
1 f none custom/help/edit.html 0600 root bin 110 9811 985675939
1 f none custom/help/edit.sv.html 0600 root bin 111 10251 985675939
1 f none custom/help/edit.zh_TW.Big5.html 0600 root bin 82 9853 985675939
1 f none custom/help/intro.es.html 0600 root bin 931 22865 985675939
1 f none custom/help/intro.fr.html 0600 root bin 837 14944 985675939
1 f none custom/help/intro.html 0600 root bin 827 10628 985675939
1 f none custom/help/intro.sv.html 0600 root bin 826 15929 985675939
1 f none custom/help/intro.zh_TW.Big5.html 0600 root bin 534 13073 985675939
1 f none custom/help/raw.es.html 0600 root bin 321 29387 985675939
1 f none custom/help/raw.fr.html 0600 root bin 329 30750 985675939
1 f none custom/help/raw.html 0600 root bin 296 26713 985675939
1 f none custom/help/raw.sv.html 0600 root bin 259 24142 985675939
1 f none custom/help/raw.zh_TW.Big5.html 0600 root bin 232 28963 985675939
1 f none custom/help/run.es.html 0600 root bin 135 11595 985675939
1 f none custom/help/run.fr.html 0600 root bin 163 15021 985675939
1 f none custom/help/run.html 0600 root bin 131 11296 985675939
1 f none custom/help/run.sv.html 0600 root bin 125 11216 985675939
1 f none custom/help/run.zh_TW.Big5.html 0600 root bin 100 11733 985675939
1 f none custom/help/user.es.html 0600 root bin 328 30217 985675939
1 f none custom/help/user.fr.html 0600 root bin 332 31929 985675939
1 f none custom/help/user.html 0600 root bin 265 23853 985675939
1 f none custom/help/user.sv.html 0600 root bin 267 26592 985675939
1 f none custom/help/user.zh_TW.Big5.html 0600 root bin 207 28179 985675939
1 d none custom/images 0700 root bin
1 f none custom/images/icon.gif 0600 root bin 379 44892 985675939
1 f none custom/index.cgi 0700 root bin 2030 26241 985675939
1 d none custom/lang 0700 root bin
1 f none custom/lang/de 0600 root bin 1336 61185 985675939
1 f none custom/lang/en 0600 root bin 1312 57937 985675939
1 f none custom/lang/es 0600 root bin 1483 10072 985675939
1 f none custom/lang/fr 0600 root bin 1210 53808 985675939
1 f none custom/lang/hu 0600 root bin 1190 57681 985675939
1 f none custom/lang/pl 0600 root bin 1523 19022 985675939
1 f none custom/lang/pt 0600 root bin 1200 52024 985675939
1 f none custom/lang/ru_RU 0600 root bin 1159 60672 985675939
1 f none custom/lang/ru_SU 0600 root bin 1162 44391 985675939
1 f none custom/lang/sv 0600 root bin 1597 24261 985675939
1 f none custom/lang/tr 0600 root bin 1328 11531 985675939
1 f none custom/lang/zh_CN 0600 root bin 1009 8282 985675939
1 f none custom/lang/zh_TW.Big5 0600 root bin 893 45111 985675939
1 f none custom/log_parser.pl 0600 root bin 674 56393 985675939
1 f none custom/module.info 0600 root bin 393 44224 985675939
1 f none custom/run.cgi 0700 root bin 2126 32365 985675939
1 f none custom/save_cmd.cgi 0700 root bin 1336 36736 985675939
1 f none date_chooser.cgi 0700 root bin 2182 38360 985675910
1 f none defaultacl 0600 root bin 39 3349 985675910
1 d none dfsadmin 0700 root bin
1 f none dfsadmin/config-openserver 0600 root bin 123 11745 985675911
1 f none dfsadmin/config-solaris 0600 root bin 153 14665 985675911
1 f none dfsadmin/config-unixware 0600 root bin 123 11745 985675911
1 f none dfsadmin/config.info 0600 root bin 181 17129 985675911
1 f none dfsadmin/config.info.de 0600 root bin 140 13045 985675911
1 f none dfsadmin/config.info.es 0600 root bin 169 16484 985675911
1 f none dfsadmin/config.info.fr 0600 root bin 159 14849 985675911
1 f none dfsadmin/config.info.pl 0600 root bin 221 22527 985675911
1 f none dfsadmin/config.info.sv 0600 root bin 160 15816 985675911
1 f none dfsadmin/config.info.tr 0600 root bin 133 13932 985675911
1 f none dfsadmin/config.info.zh_CN 0600 root bin 107 13555 985675912
1 f none dfsadmin/config.info.zh_TW.Big5 0600 root bin 103 12874 985675911
1 f none dfsadmin/delete_share.cgi 0700 root bin 315 26635 985675911
1 f none dfsadmin/dfs-lib.pl 0600 root bin 2873 26094 985675911
1 f none dfsadmin/edit_share.cgi 0700 root bin 6063 36060 985675911
1 d none dfsadmin/help 0700 root bin
1 f none dfsadmin/help/aclok.es.html 0600 root bin 216 19779 985675911
1 f none dfsadmin/help/aclok.fr.html 0600 root bin 222 20644 985675911
1 f none dfsadmin/help/aclok.html 0600 root bin 179 15766 985675911
1 f none dfsadmin/help/aclok.pl.html 0600 root bin 193 18310 985675911
1 f none dfsadmin/help/aclok.sv.html 0600 root bin 169 15825 985675911
1 f none dfsadmin/help/aclok.zh_TW.Big5.html 0600 root bin 132 18062 985675911
1 f none dfsadmin/help/anon.es.html 0600 root bin 248 23089 985675911
1 f none dfsadmin/help/anon.fr.html 0600 root bin 228 20659 985675911
1 f none dfsadmin/help/anon.html 0600 root bin 229 20309 985675911
1 f none dfsadmin/help/anon.pl.html 0600 root bin 252 24576 985675911
1 f none dfsadmin/help/anon.sv.html 0600 root bin 245 23821 985675911
1 f none dfsadmin/help/anon.zh_TW.Big5.html 0600 root bin 134 17324 985675911
1 f none dfsadmin/help/create_share.es.html 0600 root bin 128 11810 985675911
1 f none dfsadmin/help/create_share.fr.html 0600 root bin 117 10149 985675911
1 f none dfsadmin/help/create_share.html 0600 root bin 105 9075 985675911
1 f none dfsadmin/help/create_share.pl.html 0600 root bin 114 10818 985675911
1 f none dfsadmin/help/create_share.sv.html 0600 root bin 103 9084 985675911
1 f none dfsadmin/help/create_share.zh_TW.Big5.html 0600 root bin 96 12212 985675911
1 f none dfsadmin/help/des.es.html 0600 root bin 173 16079 985675911
1 f none dfsadmin/help/des.fr.html 0600 root bin 176 15818 985675911
1 f none dfsadmin/help/des.html 0600 root bin 138 12319 985675911
1 f none dfsadmin/help/des.pl.html 0600 root bin 166 15678 985675911
1 f none dfsadmin/help/des.sv.html 0600 root bin 148 14134 985675911
1 f none dfsadmin/help/des.zh_TW.Big5.html 0600 root bin 112 14722 985675911
1 f none dfsadmin/help/desc.es.html 0600 root bin 96 9145 985675911
1 f none dfsadmin/help/desc.fr.html 0600 root bin 76 6549 985675911
1 f none dfsadmin/help/desc.html 0600 root bin 86 7772 985675911
1 f none dfsadmin/help/desc.pl.html 0600 root bin 93 8628 985675911
1 f none dfsadmin/help/desc.sv.html 0600 root bin 69 6208 985675911
1 f none dfsadmin/help/desc.zh_TW.Big5.html 0600 root bin 62 8066 985675911
1 f none dfsadmin/help/dir.es.html 0600 root bin 200 18668 985675911
1 f none dfsadmin/help/dir.fr.html 0600 root bin 201 19256 985675911
1 f none dfsadmin/help/dir.html 0600 root bin 167 15332 985675911
1 f none dfsadmin/help/dir.pl.html 0600 root bin 178 16811 985675911
1 f none dfsadmin/help/dir.sv.html 0600 root bin 155 14182 985675911
1 f none dfsadmin/help/dir.zh_TW.Big5.html 0600 root bin 105 14879 985675911
1 f none dfsadmin/help/edit_share.es.html 0600 root bin 151 13965 985675911
1 f none dfsadmin/help/edit_share.fr.html 0600 root bin 132 11735 985675911
1 f none dfsadmin/help/edit_share.html 0600 root bin 124 10801 985675911
1 f none dfsadmin/help/edit_share.pl.html 0600 root bin 126 11724 985675911
1 f none dfsadmin/help/edit_share.sv.html 0600 root bin 115 10581 985675911
1 f none dfsadmin/help/edit_share.zh_TW.Big5.html 0600 root bin 103 13033 985675911
1 f none dfsadmin/help/index.es.html 0600 root bin 290 27303 985675911
1 f none dfsadmin/help/index.fr.html 0600 root bin 263 24468 985675911
1 f none dfsadmin/help/index.html 0600 root bin 256 22883 985675911
1 f none dfsadmin/help/index.pl.html 0600 root bin 270 26104 985675911
1 f none dfsadmin/help/index.sv.html 0600 root bin 247 23442 985675911
1 f none dfsadmin/help/index.zh_TW.Big5.html 0600 root bin 164 21290 985675911
1 f none dfsadmin/help/intro.es.html 0600 root bin 1216 48514 985675911
1 f none dfsadmin/help/intro.fr.html 0600 root bin 967 26328 985675911
1 f none dfsadmin/help/intro.html 0600 root bin 1004 26535 985675911
1 f none dfsadmin/help/intro.pl.html 0600 root bin 1137 47860 985675911
1 f none dfsadmin/help/intro.sv.html 0600 root bin 948 25650 985675911
1 f none dfsadmin/help/intro.zh_TW.Big5.html 0600 root bin 656 29202 985675911
1 f none dfsadmin/help/kerberos.es.html 0600 root bin 179 16767 985675911
1 f none dfsadmin/help/kerberos.fr.html 0600 root bin 185 16939 985675911
1 f none dfsadmin/help/kerberos.html 0600 root bin 148 13537 985675911
1 f none dfsadmin/help/kerberos.pl.html 0600 root bin 174 16600 985675911
1 f none dfsadmin/help/kerberos.sv.html 0600 root bin 160 15559 985675911
1 f none dfsadmin/help/kerberos.zh_TW.Big5.html 0600 root bin 122 16121 985675911
1 f none dfsadmin/help/nfs.es.html 0600 root bin 1309 58426 985675911
1 f none dfsadmin/help/nfs.fr.html 0600 root bin 1198 50169 985675911
1 f none dfsadmin/help/nfs.html 0600 root bin 1093 35121 985675911
1 f none dfsadmin/help/nfs.pl.html 0600 root bin 1289 64869 985675911
1 f none dfsadmin/help/nfs.sv.html 0600 root bin 1143 45843 985675911
1 f none dfsadmin/help/nfs.zh_TW.Big5.html 0600 root bin 673 36722 985675911
1 f none dfsadmin/help/public.es.html 0600 root bin 225 21586 985675911
1 f none dfsadmin/help/public.fr.html 0600 root bin 174 15685 985675911
1 f none dfsadmin/help/public.html 0600 root bin 176 15399 985675911
1 f none dfsadmin/help/public.pl.html 0600 root bin 198 19426 985675911
1 f none dfsadmin/help/public.sv.html 0600 root bin 173 15883 985675911
1 f none dfsadmin/help/public.zh_TW.Big5.html 0600 root bin 132 16389 985675911
1 f none dfsadmin/help/ro.es.html 0600 root bin 1756 25868 985675911
1 f none dfsadmin/help/ro.fr.html 0600 root bin 1489 2105 985675911
1 f none dfsadmin/help/ro.html 0600 root bin 1442 56768 985675911
1 f none dfsadmin/help/ro.pl.html 0600 root bin 1723 25019 985675911
1 f none dfsadmin/help/ro.sv.html 0600 root bin 1637 16639 985675911
1 f none dfsadmin/help/ro.zh_TW.Big5.html 0600 root bin 1116 13563 985675911
1 f none dfsadmin/help/root.es.html 0600 root bin 1348 53748 985675911
1 f none dfsadmin/help/root.fr.html 0600 root bin 1154 36543 985675911
1 f none dfsadmin/help/root.html 0600 root bin 1141 31167 985675911
1 f none dfsadmin/help/root.pl.html 0600 root bin 1334 54375 985675911
1 f none dfsadmin/help/root.sv.html 0600 root bin 1172 39343 985675911
1 f none dfsadmin/help/root.zh_TW.Big5.html 0600 root bin 884 45753 985675911
1 f none dfsadmin/help/rw.es.html 0600 root bin 1766 26526 985675911
1 f none dfsadmin/help/rw.fr.html 0600 root bin 1688 21701 985675911
1 f none dfsadmin/help/rw.html 0600 root bin 1496 61838 985675911
1 f none dfsadmin/help/rw.pl.html 0600 root bin 1848 36793 985675911
1 f none dfsadmin/help/rw.sv.html 0600 root bin 1676 19145 985675911
1 f none dfsadmin/help/rw.zh_TW.Big5.html 0600 root bin 1068 4826 985675911
1 f none dfsadmin/help/share.es.html 0600 root bin 497 46400 985675911
1 f none dfsadmin/help/share.fr.html 0600 root bin 447 41505 985675911
1 f none dfsadmin/help/share.html 0600 root bin 403 36209 985675911
1 f none dfsadmin/help/share.pl.html 0600 root bin 487 48059 985675911
1 f none dfsadmin/help/share.sv.html 0600 root bin 441 43443 985675911
1 f none dfsadmin/help/share.zh_TW.Big5.html 0600 root bin 275 40234 985675911
1 f none dfsadmin/help/sub.es.html 0600 root bin 149 13849 985675911
1 f none dfsadmin/help/sub.fr.html 0600 root bin 146 13743 985675911
1 f none dfsadmin/help/sub.html 0600 root bin 130 11757 985675911
1 f none dfsadmin/help/sub.pl.html 0600 root bin 139 13508 985675911
1 f none dfsadmin/help/sub.sv.html 0600 root bin 153 14720 985675911
1 f none dfsadmin/help/sub.zh_TW.Big5.html 0600 root bin 91 12052 985675911
1 f none dfsadmin/help/suid.es.html 0600 root bin 283 26861 985675911
1 f none dfsadmin/help/suid.fr.html 0600 root bin 288 26919 985675911
1 f none dfsadmin/help/suid.html 0600 root bin 228 20882 985675911
1 f none dfsadmin/help/suid.pl.html 0600 root bin 288 27770 985675911
1 f none dfsadmin/help/suid.sv.html 0600 root bin 252 24513 985675911
1 f none dfsadmin/help/suid.zh_TW.Big5.html 0600 root bin 178 25090 985675911
1 d none dfsadmin/images 0700 root bin
1 f none dfsadmin/images/icon.gif 0600 root bin 245 29407 985675911
1 f none dfsadmin/images/share.gif 0600 root bin 1565 51055 985675911
1 f none dfsadmin/index.cgi 0700 root bin 2163 40395 985675911
1 d none dfsadmin/lang 0700 root bin
1 f none dfsadmin/lang/en 0600 root bin 161 14012 985675911
1 f none dfsadmin/lang/es 0600 root bin 198 18422 985675911
1 f none dfsadmin/lang/pl 0600 root bin 171 15971 985675911
1 f none dfsadmin/lang/sv 0600 root bin 179 16237 985675911
1 f none dfsadmin/lang/tr 0600 root bin 199 21226 985675911
1 f none dfsadmin/log_parser.pl 0600 root bin 783 64598 985675911
1 f none dfsadmin/low.risk 0600 root bin 11 971 985675911
1 f none dfsadmin/low.skill 0600 root bin 17 1430 985675911
1 f none dfsadmin/medium.risk 0600 root bin 11 971 985675911
1 f none dfsadmin/medium.skill 0600 root bin 17 1429 985675911
1 f none dfsadmin/module.info 0600 root bin 305 29606 985675911
1 f none dfsadmin/restart_sharing.cgi 0700 root bin 491 41523 985675911
1 f none dfsadmin/save_share.cgi 0700 root bin 3846 55095 985675911
1 d none dhcpd 0700 root bin
1 f none dhcpd/acl_security.pl 0600 root bin 8979 15111 985675938
1 f none dhcpd/config-cobalt-linux 0600 root bin 150 13983 985675938
1 f none dhcpd/config-corel-linux 0600 root bin 142 13174 985675938
1 f none dhcpd/config-debian-linux 0600 root bin 142 13174 985675937
1 f none dhcpd/config-freebsd 0600 root bin 148 13744 985675937
1 f none dhcpd/config-irix 0600 root bin 135 12515 985675938
1 f none dhcpd/config-open-linux 0600 root bin 139 12916 985675938
1 f none dhcpd/config-open-linux-3.1e 0600 root bin 144 13378 985675938
1 f none dhcpd/config-openbsd 0600 root bin 142 13174 985675938
1 f none dhcpd/config-openserver 0600 root bin 135 12515 985675938
1 f none dhcpd/config-osf1 0600 root bin 135 12515 985675937
1 f none dhcpd/config-redhat-linux 0600 root bin 139 12916 985675937
1 f none dhcpd/config-redhat-linux-6.0 0600 root bin 150 13983 985675938
1 f none dhcpd/config-redhat-linux-6.1 0600 root bin 150 13983 985675938
1 f none dhcpd/config-redhat-linux-6.2 0600 root bin 150 13983 985675938
1 f none dhcpd/config-redhat-linux-7.0 0600 root bin 148 13749 985675937
1 f none dhcpd/config-redhat-linux-7.1 0600 root bin 148 13749 985675938
1 f none dhcpd/config-slackware-linux 0600 root bin 145 13521 985675937
1 f none dhcpd/config-slackware-linux-4.0 0600 root bin 151 14083 985675938
1 f none dhcpd/config-solaris 0600 root bin 135 12515 985675937
1 f none dhcpd/config-suse-linux 0600 root bin 150 13983 985675937
1 f none dhcpd/config-suse-linux-7.1 0600 root bin 148 13749 985675938
1 f none dhcpd/config-turbo-linux 0600 root bin 139 12916 985675938
1 f none dhcpd/config-unixware 0600 root bin 171 15974 985675938
1 f none dhcpd/config.info 0600 root bin 353 31431 985675937
1 f none dhcpd/config.info.de 0600 root bin 251 22486 985675938
1 f none dhcpd/config.info.es 0600 root bin 448 41263 985675938
1 f none dhcpd/config.info.fr 0600 root bin 269 24548 985675938
1 f none dhcpd/config.info.pl 0600 root bin 452 42706 985675937
1 f none dhcpd/config.info.ru_RU 0600 root bin 237 38087 985675938
1 f none dhcpd/config.info.ru_SU 0600 root bin 237 34547 985675938
1 f none dhcpd/config.info.sv 0600 root bin 383 36049 985675938
1 f none dhcpd/config.info.tr 0600 root bin 241 25129 985675938
1 f none dhcpd/config.info.zh_CN 0600 root bin 162 22384 985675938
1 f none dhcpd/config.info.zh_TW.Big5 0600 root bin 175 21215 985675938
1 f none dhcpd/confirm_delete.cgi 0600 root bin 3129 50994 985675937
1 f none dhcpd/defaultacl 0600 root bin 213 18108 985675938
1 f none dhcpd/delete_all.cgi 0600 root bin 2157 40848 985675938
1 f none dhcpd/delete_lease.cgi 0700 root bin 1123 25040 985675938
1 f none dhcpd/dhcpd-lib.pl 0700 root bin 17311 35631 985675937
1 f none dhcpd/edit_group.cgi 0700 root bin 7387 62322 985675937
1 f none dhcpd/edit_host.cgi 0700 root bin 10312 17689 985675937
1 f none dhcpd/edit_options.cgi 0700 root bin 6975 43679 985675937
1 f none dhcpd/edit_pool.cgi 0700 root bin 2807 35461 985675937
1 f none dhcpd/edit_shared.cgi 0700 root bin 5179 20534 985675937
1 f none dhcpd/edit_subnet.cgi 0700 root bin 6473 59307 985675937
1 d none dhcpd/help 0700 root bin
1 f none dhcpd/help/acl.html 0600 root bin 2268 1754 985675937
1 f none dhcpd/help/acl_info.html 0600 root bin 1879 35282 985675937
1 f none dhcpd/help/acl_info.pl.html 0600 root bin 2253 18388 985675937
1 d none dhcpd/images 0700 root bin
1 f none dhcpd/images/ctree0.gif 0600 root bin 2591 34363 985675937
1 f none dhcpd/images/ctree1.gif 0600 root bin 2756 52491 985675937
1 f none dhcpd/images/ctree2.gif 0600 root bin 2651 39628 985675937
1 f none dhcpd/images/ctree3.gif 0600 root bin 2808 59676 985675937
1 f none dhcpd/images/group.gif 0600 root bin 251 29940 985675937
1 f none dhcpd/images/host.gif 0600 root bin 256 29904 985675937
1 f none dhcpd/images/icon.gif 0600 root bin 311 35196 985675937
1 f none dhcpd/images/pool.gif 0600 root bin 387 47873 985675937
1 f none dhcpd/images/shared.gif 0600 root bin 272 30116 985675937
1 f none dhcpd/images/subnet.gif 0600 root bin 273 32767 985675937
1 f none dhcpd/index.cgi 0700 root bin 13072 26356 985675937
1 d none dhcpd/lang 0700 root bin
1 f none dhcpd/lang/de 0600 root bin 6033 46619 985675938
1 f none dhcpd/lang/en 0600 root bin 10293 58491 985675938
1 f none dhcpd/lang/es 0600 root bin 11767 21712 985675938
1 f none dhcpd/lang/fr 0600 root bin 6110 4063 985675938
1 f none dhcpd/lang/pl 0600 root bin 11682 55325 985675938
1 f none dhcpd/lang/pt 0600 root bin 6005 59265 985675938
1 f none dhcpd/lang/ru_RU 0600 root bin 5664 51112 985675938
1 f none dhcpd/lang/ru_SU 0600 root bin 5680 39277 985675938
1 f none dhcpd/lang/sv 0600 root bin 10943 34119 985675938
1 f none dhcpd/lang/tr 0600 root bin 6439 11377 985675938
1 f none dhcpd/lang/zh_CN 0600 root bin 4162 48132 985675938
1 f none dhcpd/lang/zh_TW.Big5 0600 root bin 4476 45055 985675938
1 f none dhcpd/list_leases.cgi 0700 root bin 3581 10530 985675938
1 f none dhcpd/log_parser.pl 0600 root bin 801 2290 985675938
1 f none dhcpd/module.info 0600 root bin 481 46730 985675937
1 f none dhcpd/params-lib.pl 0600 root bin 6260 52684 985675937
1 f none dhcpd/restart.cgi 0700 root bin 555 47070 985675937
1 f none dhcpd/save_group.cgi 0700 root bin 4065 56533 985675937
1 f none dhcpd/save_host.cgi 0700 root bin 3797 39006 985675937
1 f none dhcpd/save_options.cgi 0700 root bin 5130 15622 985675937
1 f none dhcpd/save_pool.cgi 0600 root bin 2082 31453 985675937
1 f none dhcpd/save_shared.cgi 0700 root bin 6337 28399 985675937
1 f none dhcpd/save_subnet.cgi 0700 root bin 6305 26084 985675937
1 f none dhcpd/start.cgi 0700 root bin 704 58419 985675937
1 d none dnsadmin 0700 root bin
1 f none dnsadmin/acl_security.pl 0600 root bin 2964 47121 985675914
1 f none dnsadmin/change_soa.cgi 0700 root bin 1125 27939 985675912
1 f none dnsadmin/config-aix 0600 root bin 179 17180 985675914
1 f none dnsadmin/config-cobalt-linux 0600 root bin 188 17838 985675914
1 f none dnsadmin/config-debian-linux 0600 root bin 188 17838 985675913
1 f none dnsadmin/config-debian-linux-2.2 0600 root bin 193 18298 985675914
1 f none dnsadmin/config-freebsd 0600 root bin 191 18253 985675914
1 f none dnsadmin/config-hpux 0600 root bin 183 17581 985675913
1 f none dnsadmin/config-irix 0600 root bin 183 17577 985675914
1 f none dnsadmin/config-open-linux 0600 root bin 188 17838 985675914
1 f none dnsadmin/config-openbsd 0600 root bin 190 18168 985675914
1 f none dnsadmin/config-openserver 0600 root bin 182 17441 985675914
1 f none dnsadmin/config-osf1 0600 root bin 190 18243 985675914
1 f none dnsadmin/config-redhat-linux 0600 root bin 188 17838 985675913
1 f none dnsadmin/config-slackware-linux 0600 root bin 188 17838 985675913
1 f none dnsadmin/config-solaris 0600 root bin 182 17441 985675913
1 f none dnsadmin/config-suse-linux 0600 root bin 188 17839 985675913
1 f none dnsadmin/config-turbo-linux 0600 root bin 188 17838 985675914
1 f none dnsadmin/config-unixware 0600 root bin 182 17441 985675914
1 f none dnsadmin/config.info 0600 root bin 312 28151 985675912
1 f none dnsadmin/config.info.de 0600 root bin 361 32902 985675914
1 f none dnsadmin/config.info.es 0600 root bin 377 35265 985675912
1 f none dnsadmin/config.info.fr 0600 root bin 375 34607 985675914
1 f none dnsadmin/config.info.pl 0600 root bin 372 35537 985675914
1 f none dnsadmin/config.info.ru_RU 0600 root bin 338 55171 985675914
1 f none dnsadmin/config.info.ru_SU 0600 root bin 338 50601 985675914
1 f none dnsadmin/config.info.sv 0600 root bin 314 30315 985675914
1 f none dnsadmin/config.info.tr 0600 root bin 340 34829 985675914
1 f none dnsadmin/config.info.zh_CN 0600 root bin 237 31153 985675914
1 f none dnsadmin/config.info.zh_TW.Big5 0600 root bin 265 33554 985675914
1 f none dnsadmin/create_master.cgi 0700 root bin 2939 36843 985675914
1 f none dnsadmin/create_slave.cgi 0700 root bin 2065 24774 985675914
1 f none dnsadmin/db.cache 0600 root bin 2769 34340 985675913
1 f none dnsadmin/defaultacl 0600 root bin 63 5396 985675914
1 f none dnsadmin/delete_zone.cgi 0700 root bin 3531 19511 985675914
1 f none dnsadmin/dns-lib.pl 0600 root bin 5217 62539 985675912
1 f none dnsadmin/dns_boot.cgi 0700 root bin 1259 42361 985675912
1 f none dnsadmin/edit_master.cgi 0700 root bin 3869 37841 985675913
1 f none dnsadmin/edit_record.cgi 0700 root bin 798 461 985675913
1 f none dnsadmin/edit_recs.cgi 0700 root bin 2617 52438 985675912
1 f none dnsadmin/edit_slave.cgi 0700 root bin 1672 8255 985675914
1 f none dnsadmin/edit_text.cgi 0700 root bin 1089 28094 985675913
1 d none dnsadmin/help 0700 root bin
1 f none dnsadmin/help/intro.html 0600 root bin 3978 17279 985675912
1 f none dnsadmin/help/intro.sv.html 0600 root bin 3710 14993 985675912
1 f none dnsadmin/help/intro.zh_TW.Big5.html 0600 root bin 2733 26159 985675912
1 d none dnsadmin/images 0700 root bin
1 f none dnsadmin/images/dnsadmin.gif 0600 root bin 2256 3033 985675912
1 f none dnsadmin/images/icon.gif 0600 root bin 2031 38844 985675912
1 f none dnsadmin/index.cgi 0700 root bin 6186 40873 985675912
1 d none dnsadmin/lang 0700 root bin
1 f none dnsadmin/lang/en 0600 root bin 975 24948 985675914
1 f none dnsadmin/lang/es 0600 root bin 1075 35740 985675914
1 f none dnsadmin/lang/pl 0600 root bin 1066 39713 985675914
1 f none dnsadmin/lang/sv 0600 root bin 987 30698 985675914
1 f none dnsadmin/lang/zh_CN 0600 root bin 708 30312 985675914
1 f none dnsadmin/log_parser.pl 0600 root bin 1198 31916 985675914
1 f none dnsadmin/master_form.cgi 0700 root bin 2042 42794 985675914
1 f none dnsadmin/module.info 0600 root bin 582 53443 985675912
1 f none dnsadmin/restart.cgi 0700 root bin 270 22286 985675912
1 f none dnsadmin/save_master.cgi 0700 root bin 1685 1881 985675914
1 f none dnsadmin/save_record.cgi 0700 root bin 9085 60231 985675914
1 f none dnsadmin/save_slave.cgi 0700 root bin 1201 34345 985675914
1 f none dnsadmin/save_text.cgi 0700 root bin 580 48314 985675913
1 f none dnsadmin/save_zonedef.cgi 0700 root bin 821 3907 985675913
1 f none dnsadmin/slave_form.cgi 0700 root bin 1494 61951 985675914
1 f none dnsadmin/start.cgi 0700 root bin 179 15114 985675913
1 d none exports 0700 root bin
1 f none exports/config-aix 0600 root bin 155 13713 985675915
1 f none exports/config-cobalt-linux 0600 root bin 246 22204 985675915
1 f none exports/config-corel-linux 0600 root bin 202 18378 985675915
1 f none exports/config-debian-linux 0600 root bin 202 18378 985675914
1 f none exports/config-debian-linux-2.2 0600 root bin 202 18288 985675914
1 f none exports/config-open-linux 0600 root bin 198 17684 985675915
1 f none exports/config-redhat-linux 0600 root bin 198 17684 985675914
1 f none exports/config-slackware-linux 0600 root bin 165 14896 985675914
1 f none exports/config-suse-linux 0600 root bin 204 18506 985675914
1 f none exports/config-suse-linux-7.1 0600 root bin 202 18282 985675915
1 f none exports/config-turbo-linux 0600 root bin 190 16942 985675915
1 f none exports/config.info 0600 root bin 92 8928 985675914
1 f none exports/config.info.de 0600 root bin 111 10726 985675915
1 f none exports/config.info.es 0600 root bin 123 11831 985675915
1 f none exports/config.info.fr 0600 root bin 111 10863 985675915
1 f none exports/config.info.pl 0600 root bin 79 7422 985675915
1 f none exports/config.info.ru_RU 0600 root bin 115 19744 985675915
1 f none exports/config.info.ru_SU 0600 root bin 115 17755 985675915
1 f none exports/config.info.sv 0600 root bin 103 10082 985675915
1 f none exports/config.info.tr 0600 root bin 103 10279 985675915
1 f none exports/config.info.zh_CN 0600 root bin 77 11978 985675915
1 f none exports/config.info.zh_TW.Big5 0600 root bin 79 10997 985675915
1 f none exports/edit_export.cgi 0700 root bin 7217 3150 985675914
1 f none exports/exports-lib.pl 0600 root bin 4089 52328 985675914
1 d none exports/help 0700 root bin
1 f none exports/help/active.es.html 0600 root bin 173 15944 985675914
1 f none exports/help/active.html 0600 root bin 142 12427 985675914
1 f none exports/help/active.pl.html 0600 root bin 165 15513 985675914
1 f none exports/help/active.sv.html 0600 root bin 173 15729 985675914
1 f none exports/help/active.zh_TW.Big5.html 0600 root bin 115 14282 985675914
1 f none exports/help/anongid.es.html 0600 root bin 261 24181 985675914
1 f none exports/help/anongid.fr.html 0600 root bin 256 24603 985675914
1 f none exports/help/anongid.html 0600 root bin 238 21710 985675914
1 f none exports/help/anongid.pl.html 0600 root bin 257 24917 985675914
1 f none exports/help/anongid.sv.html 0600 root bin 237 22568 985675914
1 f none exports/help/anongid.zh_TW.Big5.html 0600 root bin 176 24485 985675914
1 f none exports/help/anonuid.es.html 0600 root bin 269 25071 985675914
1 f none exports/help/anonuid.fr.html 0600 root bin 254 24371 985675914
1 f none exports/help/anonuid.html 0600 root bin 233 21174 985675914
1 f none exports/help/anonuid.pl.html 0600 root bin 289 29017 985675914
1 f none exports/help/anonuid.sv.html 0600 root bin 245 23776 985675914
1 f none exports/help/anonuid.zh_TW.Big5.html 0600 root bin 188 27079 985675914
1 f none exports/help/client.es.html 0600 root bin 1304 51158 985675914
1 f none exports/help/client.fr.html 0600 root bin 917 21052 985675914
1 f none exports/help/client.html 0600 root bin 1121 31240 985675914
1 f none exports/help/client.pl.html 0600 root bin 1330 59406 985675914
1 f none exports/help/client.sv.html 0600 root bin 1170 40873 985675914
1 f none exports/help/client.zh_TW.Big5.html 0600 root bin 795 38110 985675914
1 f none exports/help/create_export.es.html 0600 root bin 144 13491 985675914
1 f none exports/help/create_export.fr.html 0600 root bin 130 12081 985675914
1 f none exports/help/create_export.html 0600 root bin 137 12345 985675914
1 f none exports/help/create_export.pl.html 0600 root bin 162 16066 985675914
1 f none exports/help/create_export.sv.html 0600 root bin 145 13455 985675914
1 f none exports/help/create_export.zh_TW.Big5.html 0600 root bin 91 12673 985675914
1 f none exports/help/dir.es.html 0600 root bin 394 36792 985675914
1 f none exports/help/dir.fr.html 0600 root bin 345 33392 985675914
1 f none exports/help/dir.html 0600 root bin 351 32338 985675914
1 f none exports/help/dir.pl.html 0600 root bin 348 34093 985675914
1 f none exports/help/dir.sv.html 0600 root bin 342 31991 985675914
1 f none exports/help/dir.zh_TW.Big5.html 0600 root bin 241 33928 985675914
1 f none exports/help/edit_export.es.html 0600 root bin 163 15514 985675914
1 f none exports/help/edit_export.fr.html 0600 root bin 163 15038 985675914
1 f none exports/help/edit_export.html 0600 root bin 156 14213 985675914
1 f none exports/help/edit_export.pl.html 0600 root bin 186 18906 985675914
1 f none exports/help/edit_export.sv.html 0600 root bin 138 13285 985675914
1 f none exports/help/edit_export.zh_TW.Big5.html 0600 root bin 105 14927 985675914
1 f none exports/help/insecure.es.html 0600 root bin 311 28380 985675914
1 f none exports/help/insecure.fr.html 0600 root bin 281 26027 985675914
1 f none exports/help/insecure.html 0600 root bin 240 21591 985675914
1 f none exports/help/insecure.pl.html 0600 root bin 293 29139 985675914
1 f none exports/help/insecure.sv.html 0600 root bin 257 24691 985675914
1 f none exports/help/insecure.zh_TW.Big5.html 0600 root bin 182 24321 985675914
1 f none exports/help/intro.es.html 0600 root bin 1008 28046 985675914
1 f none exports/help/intro.fr.html 0600 root bin 949 22959 985675914
1 f none exports/help/intro.html 0600 root bin 877 13882 985675914
1 f none exports/help/intro.pl.html 0600 root bin 955 28214 985675914
1 f none exports/help/intro.sv.html 0600 root bin 869 17246 985675914
1 f none exports/help/intro.zh_TW.Big5.html 0600 root bin 607 17268 985675914
1 f none exports/help/link_relative.es.html 0600 root bin 433 39765 985675914
1 f none exports/help/link_relative.fr.html 0600 root bin 139 12522 985675914
1 f none exports/help/link_relative.html 0600 root bin 394 35169 985675914
1 f none exports/help/link_relative.pl.html 0600 root bin 441 42067 985675914
1 f none exports/help/link_relative.sv.html 0600 root bin 368 34100 985675914
1 f none exports/help/link_relative.zh_TW.Big5.html 0600 root bin 313 40510 985675914
1 f none exports/help/nfs.es.html 0600 root bin 1295 56913 985675914
1 f none exports/help/nfs.fr.html 0600 root bin 1198 50376 985675914
1 f none exports/help/nfs.html 0600 root bin 1093 35121 985675914
1 f none exports/help/nfs.pl.html 0600 root bin 1292 440 985675914
1 f none exports/help/nfs.sv.html 0600 root bin 1142 45833 985675914
1 f none exports/help/nfs.zh_TW.Big5.html 0600 root bin 668 36100 985675914
1 f none exports/help/noaccess.es.html 0600 root bin 280 26776 985675914
1 f none exports/help/noaccess.fr.html 0600 root bin 286 27612 985675914
1 f none exports/help/noaccess.html 0600 root bin 277 25556 985675914
1 f none exports/help/noaccess.pl.html 0600 root bin 307 30500 985675914
1 f none exports/help/noaccess.sv.html 0600 root bin 255 24902 985675914
1 f none exports/help/noaccess.zh_TW.Big5.html 0600 root bin 184 27467 985675914
1 f none exports/help/ro.es.html 0600 root bin 203 18692 985675914
1 f none exports/help/ro.fr.html 0600 root bin 215 19644 985675914
1 f none exports/help/ro.html 0600 root bin 175 15505 985675914
1 f none exports/help/ro.pl.html 0600 root bin 201 19628 985675914
1 f none exports/help/ro.sv.html 0600 root bin 179 16909 985675914
1 f none exports/help/ro.zh_TW.Big5.html 0600 root bin 130 18228 985675914
1 f none exports/help/squash.es.html 0600 root bin 727 65393 985675914
1 f none exports/help/squash.fr.html 0600 root bin 752 3735 985675914
1 f none exports/help/squash.html 0600 root bin 659 58359 985675914
1 f none exports/help/squash.pl.html 0600 root bin 795 10570 985675914
1 f none exports/help/squash.sv.html 0600 root bin 702 65167 985675914
1 f none exports/help/squash.zh_TW.Big5.html 0600 root bin 511 6096 985675914
1 f none exports/help/squash_gids.es.html 0600 root bin 329 28245 985675914
1 f none exports/help/squash_gids.fr.html 0600 root bin 410 37598 985675914
1 f none exports/help/squash_gids.html 0600 root bin 296 25283 985675914
1 f none exports/help/squash_gids.pl.html 0600 root bin 321 29539 985675914
1 f none exports/help/squash_gids.sv.html 0600 root bin 299 25953 985675914
1 f none exports/help/squash_gids.zh_TW.Big5.html 0600 root bin 239 28329 985675914
1 f none exports/help/squash_uids.es.html 0600 root bin 339 29659 985675914
1 f none exports/help/squash_uids.fr.html 0600 root bin 407 37312 985675914
1 f none exports/help/squash_uids.html 0600 root bin 314 27179 985675914
1 f none exports/help/squash_uids.pl.html 0600 root bin 342 32534 985675914
1 f none exports/help/squash_uids.sv.html 0600 root bin 295 26192 985675914
1 f none exports/help/squash_uids.zh_TW.Big5.html 0600 root bin 239 30231 985675914
1 d none exports/images 0700 root bin
1 f none exports/images/export.gif 0600 root bin 1565 51055 985675914
1 f none exports/images/icon.gif 0600 root bin 245 29407 985675914
1 f none exports/index.cgi 0700 root bin 2099 30962 985675914
1 d none exports/lang 0700 root bin
1 f none exports/lang/de 0600 root bin 1953 54526 985675914
1 f none exports/lang/en 0600 root bin 2106 1442 985675914
1 f none exports/lang/es 0600 root bin 2376 30380 985675914
1 f none exports/lang/fr 0600 root bin 1852 51917 985675914
1 f none exports/lang/pl 0600 root bin 2330 33704 985675915
1 f none exports/lang/pt 0600 root bin 1767 44298 985675914
1 f none exports/lang/ru_RU 0600 root bin 1742 38036 985675915
1 f none exports/lang/ru_SU 0600 root bin 1745 9565 985675914
1 f none exports/lang/sv 0600 root bin 2309 27723 985675914
1 f none exports/lang/tr 0600 root bin 1919 1394 985675914
1 f none exports/lang/zh_CN 0600 root bin 1494 14184 985675914
1 f none exports/lang/zh_TW.Big5 0600 root bin 1388 49416 985675914
1 f none exports/log_parser.pl 0600 root bin 862 4904 985675915
1 f none exports/low.risk 0600 root bin 11 971 985675915
1 f none exports/low.skill 0600 root bin 17 1430 985675915
1 f none exports/medium.risk 0600 root bin 11 971 985675915
1 f none exports/medium.skill 0600 root bin 9 770 985675915
1 f none exports/module.info 0600 root bin 452 44972 985675914
1 f none exports/restart_mountd.cgi 0700 root bin 522 44498 985675914
1 f none exports/save_export.cgi 0700 root bin 3204 64103 985675914
1 d none fdisk 0700 root bin
1 f none fdisk/acl_security.pl 0600 root bin 1122 26174 985675920
1 f none fdisk/apply_hdparm.cgi 0700 root bin 1287 30840 985675921
1 f none fdisk/config 0600 root bin 0 0 985675920
1 f none fdisk/defaultacl 0600 root bin 19 1625 985675920
1 f none fdisk/edit_hdparm.cgi 0700 root bin 4261 45195 985675920
1 f none fdisk/edit_part.cgi 0700 root bin 7422 58962 985675920
1 f none fdisk/fdisk-lib.pl 0600 root bin 20375 23086 985675920
1 f none fdisk/fsck.cgi 0700 root bin 551 44753 985675920
1 f none fdisk/fsck_form.cgi 0700 root bin 860 7774 985675920
1 d none fdisk/help 0700 root bin
1 f none fdisk/help/A.es.html 0600 root bin 152 14245 985675920
1 f none fdisk/help/A.fr.html 0600 root bin 91 8730 985675920
1 f none fdisk/help/A.html 0600 root bin 115 10279 985675920
1 f none fdisk/help/A.hu.html 0600 root bin 128 13346 985675920
1 f none fdisk/help/A.sv.html 0600 root bin 118 10901 985675920
1 f none fdisk/help/A.zh_TW.Big5.html 0600 root bin 84 10876 985675920
1 f none fdisk/help/K.es.html 0600 root bin 496 46003 985675920
1 f none fdisk/help/K.fr.html 0600 root bin 536 49703 985675920
1 f none fdisk/help/K.html 0600 root bin 397 35668 985675920
1 f none fdisk/help/K.hu.html 0600 root bin 446 47244 985675920
1 f none fdisk/help/K.sv.html 0600 root bin 405 38597 985675920
1 f none fdisk/help/K.zh_TW.Big5.html 0600 root bin 258 33920 985675920
1 f none fdisk/help/P.es.html 0600 root bin 980 25888 985675920
1 f none fdisk/help/P.fr.html 0600 root bin 775 6553 985675920
1 f none fdisk/help/P.html 0600 root bin 818 8665 985675920
1 f none fdisk/help/P.hu.html 0600 root bin 863 24343 985675920
1 f none fdisk/help/P.sv.html 0600 root bin 736 5537 985675920
1 f none fdisk/help/P.zh_TW.Big5.html 0600 root bin 511 8947 985675920
1 f none fdisk/help/S.es.html 0600 root bin 974 22562 985675920
1 f none fdisk/help/S.fr.html 0600 root bin 1043 30875 985675920
1 f none fdisk/help/S.html 0600 root bin 816 6905 985675920
1 f none fdisk/help/S.sv.html 0600 root bin 789 8799 985675920
1 f none fdisk/help/S.zh_TW.Big5.html 0600 root bin 490 64078 985675920
1 f none fdisk/help/W.es.html 0600 root bin 151 14073 985675920
1 f none fdisk/help/W.fr.html 0600 root bin 128 12603 985675920
1 f none fdisk/help/W.html 0600 root bin 114 10176 985675920
1 f none fdisk/help/W.pl.html 0600 root bin 131 12578 985675920
1 f none fdisk/help/W.sv.html 0600 root bin 103 9306 985675920
1 f none fdisk/help/W.zh_TW.Big5.html 0600 root bin 83 10651 985675920
1 f none fdisk/help/X.es.html 0600 root bin 570 52469 985675920
1 f none fdisk/help/X.fr.html 0600 root bin 661 62263 985675920
1 f none fdisk/help/X.html 0600 root bin 467 41466 985675920
1 f none fdisk/help/X.sv.html 0600 root bin 497 48312 985675920
1 f none fdisk/help/X.zh_TW.Big5.html 0600 root bin 331 46072 985675920
1 f none fdisk/help/a.fr.html 0600 root bin 651 62289 985675920
1 f none fdisk/help/a.html 0600 root bin 634 57966 985675920
1 f none fdisk/help/a.sv.html 0600 root bin 620 62122 985675920
1 f none fdisk/help/a.zh_TW.Big5.html 0600 root bin 395 58976 985675920
1 f none fdisk/help/c.fr.html 0600 root bin 387 35846 985675920
1 f none fdisk/help/c.html 0600 root bin 366 31836 985675920
1 f none fdisk/help/c.sv.html 0600 root bin 357 33253 985675920
1 f none fdisk/help/c.zh_TW.Big5.html 0600 root bin 274 35462 985675920
1 f none fdisk/help/d.fr.html 0600 root bin 587 55308 985675920
1 f none fdisk/help/d.html 0600 root bin 685 62374 985675920
1 f none fdisk/help/d.sv.html 0600 root bin 672 685 985675920
1 f none fdisk/help/d.zh_TW.Big5.html 0600 root bin 411 56092 985675920
1 f none fdisk/help/edit.fr.html 0600 root bin 380 34872 985675920
1 f none fdisk/help/edit.html 0600 root bin 296 26019 985675920
1 f none fdisk/help/edit.sv.html 0600 root bin 282 27114 985675920
1 f none fdisk/help/edit.zh_TW.Big5.html 0600 root bin 235 32187 985675920
1 f none fdisk/help/index.fr.html 0600 root bin 1362 61466 985675920
1 f none fdisk/help/index.html 0600 root bin 1004 24495 985675920
1 f none fdisk/help/index.sv.html 0600 root bin 1010 31453 985675920
1 f none fdisk/help/index.zh_TW.Big5.html 0600 root bin 665 28520 985675920
1 f none fdisk/help/k.fr.html 0600 root bin 464 43783 985675920
1 f none fdisk/help/k.html 0600 root bin 366 33008 985675920
1 f none fdisk/help/k.sv.html 0600 root bin 380 36197 985675920
1 f none fdisk/help/k.zh_TW.Big5.html 0600 root bin 273 34534 985675920
1 f none fdisk/help/m.fr.html 0600 root bin 1253 52364 985675920
1 f none fdisk/help/m.html 0600 root bin 1151 38410 985675920
1 f none fdisk/help/m.sv.html 0600 root bin 1257 56042 985675920
1 f none fdisk/help/m.zh_TW.Big5.html 0600 root bin 782 45607 985675920
1 f none fdisk/help/r.fr.html 0600 root bin 162 15378 985675920
1 f none fdisk/help/r.html 0600 root bin 123 11101 985675920
1 f none fdisk/help/r.sv.html 0600 root bin 133 12960 985675920
1 f none fdisk/help/r.zh_TW.Big5.html 0600 root bin 86 12143 985675920
1 f none fdisk/help/u.fr.html 0600 root bin 660 62615 985675920
1 f none fdisk/help/u.html 0600 root bin 640 58768 985675920
1 f none fdisk/help/u.sv.html 0600 root bin 670 64521 985675920
1 f none fdisk/help/u.zh_TW.Big5.html 0600 root bin 403 53718 985675920
1 d none fdisk/images 0700 root bin
1 f none fdisk/images/ext.gif 0600 root bin 36 1456 985675920
1 f none fdisk/images/gap.gif 0600 root bin 44 2023 985675920
1 f none fdisk/images/icon.gif 0600 root bin 308 36936 985675920
1 f none fdisk/images/use.gif 0600 root bin 36 1215 985675920
1 f none fdisk/index.cgi 0700 root bin 4314 57135 985675920
1 d none fdisk/lang 0700 root bin
1 f none fdisk/lang/de 0600 root bin 7077 9868 985675921
1 f none fdisk/lang/en 0600 root bin 6539 21216 985675921
1 f none fdisk/lang/es 0600 root bin 7674 7322 985675921
1 f none fdisk/lang/fr 0600 root bin 6897 18878 985675921
1 f none fdisk/lang/hu 0600 root bin 6383 11535 985675921
1 f none fdisk/lang/pl 0600 root bin 7282 3254 985675921
1 f none fdisk/lang/pt 0600 root bin 5669 24358 985675921
1 f none fdisk/lang/ru_RU 0600 root bin 5396 22157 985675921
1 f none fdisk/lang/ru_SU 0600 root bin 5407 61895 985675920
1 f none fdisk/lang/sv 0600 root bin 6879 11972 985675921
1 f none fdisk/lang/tr 0600 root bin 6416 12953 985675921
1 f none fdisk/lang/zh_CN 0600 root bin 5069 53749 985675921
1 f none fdisk/lang/zh_TW.Big5 0600 root bin 4701 14151 985675921
1 f none fdisk/log_parser.pl 0600 root bin 1333 35937 985675921
1 f none fdisk/make_tags.pl 0700 root bin 210 14222 985675920
1 f none fdisk/mkfs.cgi 0700 root bin 934 11358 985675920
1 f none fdisk/mkfs_form.cgi 0700 root bin 1054 23065 985675920
1 f none fdisk/module.info 0600 root bin 571 61519 985675920
1 f none fdisk/reboot.cgi 0700 root bin 271 23148 985675920
1 f none fdisk/save_part.cgi 0700 root bin 2695 20943 985675920
1 f none fdisk/tunefs.cgi 0700 root bin 684 57191 985675920
1 f none fdisk/tunefs_form.cgi 0700 root bin 938 15214 985675920
1 d none file 0700 root bin
1 f none file/BorderPanel.class 0600 root bin 1446 4753 985675936
1 f none file/BorderPanel.java 0700 root bin 765 58285 985675936
1 f none file/CbButton.class 0600 root bin 4861 19409 985675936
1 f none file/CbButton.java 0600 root bin 5443 26769 985675936
1 f none file/CbButtonCallback.class 0600 root bin 241 16019 985675936
1 f none file/CbButtonGroup.class 0600 root bin 747 39501 985675936
1 f none file/CbColorButton.class 0600 root bin 1788 40052 985675936
1 f none file/CbColorButton.java 0600 root bin 947 7942 985675936
1 f none file/CbColorWindow.class 0600 root bin 3954 55038 985675936
1 f none file/CbColorWindow.java 0600 root bin 5257 37084 985675936
1 f none file/CbColorWindowCallback.class 0600 root bin 363 26150 985675936
1 f none file/CbColorWindowCube.class 0600 root bin 1831 47508 985675936
1 f none file/CbColorWindowSwatch.class 0600 root bin 1790 39012 985675936
1 f none file/CbImageChooser.class 0600 root bin 1285 5767 985675936
1 f none file/CbImageChooser.java 0600 root bin 4700 46122 985675936
1 f none file/CbImageFileWindow.class 0600 root bin 3699 54358 985675936
1 f none file/CbScrollbar.class 0600 root bin 4330 39507 985675936
1 f none file/CbScrollbar.java 0600 root bin 7820 13914 985675936
1 f none file/CbScrollbarArrow.class 0600 root bin 2028 37155 985675936
1 f none file/CbScrollbarCallback.class 0600 root bin 274 18301 985675936
1 f none file/CbSlider.class 0600 root bin 3732 55388 985675936
1 f none file/CbSlider.java 0600 root bin 4622 28249 985675936
1 f none file/CbSliderCallback.class 0600 root bin 240 15352 985675936
1 f none file/DFSAdminExport.class 0600 root bin 1755 43480 985675937
1 f none file/DeleteWindow.class 0600 root bin 3194 35669 985675936
1 f none file/EditorWindow.class 0600 root bin 5507 56778 985675936
1 f none file/ErrorWindow.class 0600 root bin 1323 15257 985675936
1 f none file/ErrorWindow.java 0600 root bin 557 46152 985675936
1 f none file/FileManager.class 0600 root bin 15550 59463 985675936
1 f none file/FileManager.java 0600 root bin 60791 53965 985675936
1 f none file/FileNode.class 0600 root bin 1895 55195 985675936
1 f none file/FixedFrame.class 0600 root bin 855 39991 985675936
1 f none file/FixedFrame.java 0600 root bin 696 55546 985675936
1 f none file/GrayPanel.class 0600 root bin 632 35006 985675936
1 f none file/GrayPanel.java 0600 root bin 177 14890 985675936
1 f none file/Hierarchy.class 0600 root bin 5744 19311 985675936
1 f none file/Hierarchy.java 0600 root bin 7595 17329 985675936
1 f none file/HierarchyCallback.class 0600 root bin 324 21287 985675936
1 f none file/HierarchyNode.class 0600 root bin 612 30959 985675936
1 f none file/LineInputStream.class 0600 root bin 1838 12147 985675936
1 f none file/LineInputStream.java 0700 root bin 2127 45435 985675936
1 f none file/LinedPanel.class 0600 root bin 1352 8767 985675936
1 f none file/LinedPanel.java 0600 root bin 712 53631 985675936
1 f none file/LinkWindow.class 0600 root bin 3548 57093 985675936
1 f none file/LinuxExport.class 0600 root bin 1908 58070 985675937
1 f none file/Makefile 0600 root bin 122 10701 985675936
1 f none file/MkdirWindow.class 0600 root bin 3582 58520 985675936
1 f none file/MultiColumn.class 0600 root bin 7967 21218 985675936
1 f none file/MultiColumn.java 0600 root bin 9630 37505 985675936
1 f none file/MultiColumnCallback.class 0600 root bin 263 17903 985675936
1 f none file/MultiLabel.class 0600 root bin 1677 45285 985675936
1 f none file/MyFlowLayout.java 0400 root bin 6627 60000 985675936
1 f none file/OverwriteWindow.class 0600 root bin 3111 20341 985675937
1 f none file/PermissionsPanel.class 0600 root bin 1489 27834 985675936
1 f none file/PropertiesWindow.class 0600 root bin 6767 62668 985675936
1 f none file/RemoteFile.class 0600 root bin 3648 31372 985675936
1 f none file/RenameWindow.class 0600 root bin 4040 26839 985675936
1 f none file/ResizePanel.class 0600 root bin 2375 63409 985675936
1 f none file/ResizePanel.java 0600 root bin 2036 36261 985675936
1 f none file/SambaShare.class 0600 root bin 1646 35968 985675937
1 f none file/ScrollImage.class 0600 root bin 2865 40852 985675936
1 f none file/SearchWindow.class 0600 root bin 7661 14053 985675937
1 f none file/SharingWindow.class 0600 root bin 10702 52928 985675937
1 f none file/StaticTextField.class 0600 root bin 508 24333 985675936
1 f none file/StaticTextField.java 0600 root bin 338 28277 985675936
1 f none file/StringJoiner.class 0600 root bin 840 43468 985675937
1 f none file/StringSplitter.class 0600 root bin 1194 62800 985675937
1 f none file/StringSplitter.java 0600 root bin 1970 31966 985675937
1 f none file/TabSelector.class 0600 root bin 2818 29199 985675936
1 f none file/TabbedDisplayPanel.class 0600 root bin 1580 28851 985675936
1 f none file/TabbedPanel.class 0600 root bin 1344 9732 985675936
1 f none file/TabbedPanel.java 0600 root bin 4111 58688 985675936
1 f none file/ThirdsLayout.class 0600 root bin 1607 30560 985675937
1 f none file/Util.class 0600 root bin 3762 30510 985675936
1 f none file/Util.java 0600 root bin 2598 6953 985675936
1 f none file/acl_security.pl 0600 root bin 1333 45229 985675936
1 f none file/chmod.cgi 0700 root bin 2024 27452 985675936
1 f none file/copy.cgi 0700 root bin 1061 17898 985675936
1 f none file/defaultacl 0600 root bin 44 3648 985675936
1 f none file/delete.cgi 0700 root bin 412 33561 985675936
1 f none file/file-lib.pl 0600 root bin 1744 63683 985675936
1 d none file/images 0700 root bin
1 f none file/images/binary.gif 0600 root bin 97 8992 985675936
1 f none file/images/cancel.gif 0600 root bin 107 9763 985675936
1 f none file/images/copy.gif 0600 root bin 113 11556 985675936
1 f none file/images/cut.gif 0600 root bin 119 11873 985675936
1 f none file/images/device.gif 0600 root bin 90 7520 985675936
1 f none file/images/dir.gif 0600 root bin 88 8637 985675936
1 f none file/images/edit.gif 0600 root bin 138 13129 985675936
1 f none file/images/file.gif 0600 root bin 1754 7118 985675936
1 f none file/images/icon.gif 0600 root bin 266 29430 985675936
1 f none file/images/image.gif 0600 root bin 124 11467 985675936
1 f none file/images/makelink.gif 0600 root bin 127 14672 985675936
1 f none file/images/mkdir.gif 0600 root bin 106 11958 985675936
1 f none file/images/new.gif 0600 root bin 85 9773 985675936
1 f none file/images/open.gif 0600 root bin 114 13145 985675936
1 f none file/images/paste.gif 0600 root bin 152 15179 985675936
1 f none file/images/pipe.gif 0600 root bin 107 8758 985675936
1 f none file/images/props.gif 0600 root bin 117 13273 985675936
1 f none file/images/refresh.gif 0600 root bin 92 9815 985675936
1 f none file/images/rename.gif 0600 root bin 144 15370 985675936
1 f none file/images/run.gif 0600 root bin 130 13008 985675936
1 f none file/images/save.gif 0600 root bin 92 7921 985675936
1 f none file/images/sdir.gif 0600 root bin 180 18300 985675936
1 f none file/images/search.gif 0600 root bin 131 12536 985675936
1 f none file/images/share.gif 0600 root bin 132 13595 985675936
1 f none file/images/symlink.gif 0600 root bin 87 7991 985675936
1 f none file/images/text.gif 0600 root bin 91 8129 985675936
1 f none file/images/unknown.gif 0600 root bin 79 7261 985675936
1 f none file/images/upload.gif 0600 root bin 154 16502 985675936
1 f none file/images/view.gif 0600 root bin 138 14182 985675936
1 f none file/index.cgi 0700 root bin 1104 26701 985675936
1 d none file/lang 0700 root bin
1 f none file/lang.cgi 0700 root bin 194 16320 985675937
1 f none file/lang/de 0600 root bin 4834 56507 985675936
1 f none file/lang/en 0600 root bin 6068 37485 985675936
1 f none file/lang/es 0600 root bin 6879 61427 985675936
1 f none file/lang/fr 0600 root bin 4679 56823 985675936
1 f none file/lang/it 0600 root bin 4354 10319 985675936
1 f none file/lang/pl 0600 root bin 11281 30243 985675936
1 f none file/lang/pt 0600 root bin 4524 40204 985675936
1 f none file/lang/ru_RU 0600 root bin 4305 30265 985675936
1 f none file/lang/ru_SU 0600 root bin 4326 37526 985675936
1 f none file/lang/sv 0600 root bin 4261 9029 985675936
1 f none file/lang/tr 0600 root bin 5759 52709 985675936
1 f none file/lang/zh_CN 0600 root bin 4823 45240 985675936
1 f none file/lang/zh_TW.Big5 0600 root bin 3197 58318 985675936
1 f none file/list.cgi 0700 root bin 598 46233 985675936
1 f none file/list_exports.cgi 0700 root bin 2361 50118 985675937
1 f none file/list_shares.cgi 0700 root bin 1204 31422 985675937
1 f none file/log_parser.pl 0600 root bin 994 16431 985675937
1 f none file/makelink.cgi 0700 root bin 535 44275 985675936
1 f none file/mkdir.cgi 0700 root bin 453 36698 985675936
1 f none file/module.info 0600 root bin 339 37311 985675936
1 f none file/move.cgi 0700 root bin 597 48448 985675936
1 f none file/rename.cgi 0700 root bin 458 37091 985675936
1 f none file/root.cgi 0700 root bin 176 15352 985675936
1 f none file/save.cgi 0700 root bin 476 36889 985675936
1 f none file/save_export.cgi 0700 root bin 3933 46658 985675937
1 f none file/save_share.cgi 0700 root bin 2537 621 985675937
1 f none file/search.cgi 0700 root bin 749 57642 985675937
1 f none file/show.cgi 0700 root bin 1165 20627 985675936
1 f none file/upform.cgi 0700 root bin 883 9987 985675936
1 f none file/upload.cgi 0700 root bin 921 5032 985675936
1 d none format 0700 root bin
1 f none format/acl_security.pl 0600 root bin 1070 22103 985675921
1 f none format/config 0600 root bin 84 7946 985675921
1 f none format/config.info 0600 root bin 90 8170 985675921
1 f none format/config.info.de 0600 root bin 100 9178 985675921
1 f none format/config.info.es 0600 root bin 110 10270 985675921
1 f none format/config.info.fr 0600 root bin 104 9664 985675921
1 f none format/config.info.pl 0600 root bin 98 9372 985675921
1 f none format/config.info.sv 0600 root bin 112 11320 985675921
1 f none format/config.info.tr 0600 root bin 89 8312 985675921
1 f none format/config.info.zh_CN 0600 root bin 82 8918 985675921
1 f none format/config.info.zh_TW.Big5 0600 root bin 92 10498 985675921
1 f none format/copy_part_form.cgi 0700 root bin 2727 21182 985675921
1 f none format/defaultacl 0600 root bin 19 1625 985675921
1 f none format/edit_disk.cgi 0700 root bin 2663 24288 985675921
1 f none format/edit_part.cgi 0700 root bin 4835 3193 985675921
1 f none format/format-lib.pl 0600 root bin 9040 38885 985675921
1 f none format/fsck.cgi 0700 root bin 553 44859 985675921
1 f none format/fsck_form.cgi 0700 root bin 886 10314 985675921
1 d none format/help 0700 root bin
1 f none format/help/help.es.html 0600 root bin 205 17433 985675921
1 f none format/help/help.html 0600 root bin 199 16460 985675921
1 f none format/help/help.sv.html 0600 root bin 204 17228 985675921
1 f none format/help/help.zh_TW.Big5.html 0600 root bin 177 16907 985675921
1 d none format/images 0700 root bin
1 f none format/images/gap.gif 0600 root bin 44 2023 985675921
1 f none format/images/icon.gif 0600 root bin 308 36936 985675921
1 f none format/images/use.gif 0600 root bin 36 1215 985675921
1 f none format/index.cgi 0700 root bin 2954 24312 985675921
1 d none format/lang 0700 root bin
1 f none format/lang/de 0600 root bin 121 10081 985675921
1 f none format/lang/en 0600 root bin 6030 42080 985675921
1 f none format/lang/es 0600 root bin 6097 49161 985675921
1 f none format/lang/sv 0600 root bin 6317 24346 985675921
1 f none format/lang/tr 0600 root bin 125 11583 985675921
1 f none format/lang/zh_CN 0600 root bin 4485 24109 985675921
1 f none format/module.info 0600 root bin 413 42525 985675921
1 f none format/newfs.cgi 0700 root bin 1172 24250 985675921
1 f none format/newfs_form.cgi 0700 root bin 1579 64572 985675921
1 f none format/save_part.cgi 0700 root bin 1034 20581 985675921
1 f none format/tunefs.cgi 0700 root bin 892 6358 985675921
1 f none format/tunefs_form.cgi 0700 root bin 1261 42436 985675921
1 f none group_chooser.cgi 0700 root bin 4690 42826 985675910
1 f none help.cgi 0700 root bin 2128 37997 985675910
1 d none hpuxexports 0700 root bin
1 f none hpuxexports/config-hpux 0600 root bin 91 9010 985675936
1 f none hpuxexports/config.info 0600 root bin 155 14908 985675936
1 f none hpuxexports/config.info.de 0600 root bin 174 16759 985675936
1 f none hpuxexports/config.info.es 0600 root bin 201 19444 985675936
1 f none hpuxexports/config.info.fr 0600 root bin 183 17595 985675936
1 f none hpuxexports/config.info.pl 0600 root bin 196 19820 985675936
1 f none hpuxexports/config.info.ru_RU 0600 root bin 164 26971 985675936
1 f none hpuxexports/config.info.ru_SU 0600 root bin 164 24484 985675936
1 f none hpuxexports/config.info.sv 0600 root bin 173 16978 985675936
1 f none hpuxexports/config.info.tr 0600 root bin 155 15829 985675936
1 f none hpuxexports/config.info.zh_CN 0600 root bin 128 16397 985675936
1 f none hpuxexports/config.info.zh_TW.Big5 0600 root bin 118 15514 985675936
1 f none hpuxexports/delete_export.cgi 0700 root bin 153 13096 985675936
1 f none hpuxexports/edit_export.cgi 0700 root bin 3756 47032 985675936
1 d none hpuxexports/help 0700 root bin
1 f none hpuxexports/help/help.es.html 0600 root bin 209 17914 985675936
1 f none hpuxexports/help/help.html 0600 root bin 200 16597 985675936
1 f none hpuxexports/help/help.sv.html 0600 root bin 201 16858 985675936
1 f none hpuxexports/help/help.zh_TW.Big5.html 0600 root bin 175 16447 985675936
1 f none hpuxexports/hpuxexports-lib.pl 0600 root bin 2620 11441 985675936
1 d none hpuxexports/images 0700 root bin
1 f none hpuxexports/images/icon.gif 0600 root bin 245 29407 985675936
1 f none hpuxexports/index.cgi 0700 root bin 1567 61313 985675936
1 f none hpuxexports/module.info 0600 root bin 350 34980 985675936
1 f none hpuxexports/restart_exporting.cgi 0700 root bin 591 49707 985675936
1 f none hpuxexports/save_export.cgi 0700 root bin 2585 19803 985675936
1 d none images 0700 root bin
1 f none images/back.gif 0600 root bin 41 2407 985675909
1 f none images/binary.gif 0600 root bin 134 13697 985675909
1 f none images/dir.gif 0600 root bin 115 10983 985675909
1 f none images/image.gif 0600 root bin 231 19727 985675909
1 f none images/lc1.gif 0600 root bin 42 2929 985675909
1 f none images/lc2.gif 0600 root bin 42 2981 985675909
1 f none images/left.gif 0600 root bin 118 12154 985675909
1 d none images/letters 0700 root bin
1 f none images/letters/100.gif 0600 root bin 279 27562 985675909
1 f none images/letters/101.gif 0600 root bin 263 23439 985675909
1 f none images/letters/102.gif 0600 root bin 201 20319 985675909
1 f none images/letters/103.gif 0600 root bin 321 29587 985675909
1 f none images/letters/104.gif 0600 root bin 244 26065 985675909
1 f none images/letters/105.gif 0600 root bin 111 10886 985675909
1 f none images/letters/106.gif 0600 root bin 188 18256 985675909
1 f none images/letters/107.gif 0600 root bin 264 24686 985675909
1 f none images/letters/108.gif 0600 root bin 104 10349 985675909
1 f none images/letters/109.gif 0600 root bin 325 34654 985675909
1 f none images/letters/110.gif 0600 root bin 234 23843 985675909
1 f none images/letters/111.gif 0600 root bin 279 26183 985675909
1 f none images/letters/112.gif 0600 root bin 295 26799 985675909
1 f none images/letters/113.gif 0600 root bin 293 27114 985675909
1 f none images/letters/114.gif 0600 root bin 193 18528 985675909
1 f none images/letters/115.gif 0600 root bin 270 25366 985675909
1 f none images/letters/116.gif 0600 root bin 207 19561 985675909
1 f none images/letters/117.gif 0600 root bin 240 22575 985675909
1 f none images/letters/118.gif 0600 root bin 266 25314 985675909
1 f none images/letters/119.gif 0600 root bin 365 36606 985675909
1 f none images/letters/120.gif 0600 root bin 265 25455 985675909
1 f none images/letters/121.gif 0600 root bin 295 28187 985675909
1 f none images/letters/122.gif 0600 root bin 211 20556 985675909
1 f none images/letters/123.gif 0600 root bin 230 20800 985675910
1 f none images/letters/124.gif 0600 root bin 93 9416 985675910
1 f none images/letters/125.gif 0600 root bin 214 20574 985675910
1 f none images/letters/126.gif 0600 root bin 179 16492 985675910
1 f none images/letters/177.iso-8859-2.gif 0600 root bin 297 26677 985675910
1 f none images/letters/179.iso-8859-2.gif 0600 root bin 132 14569 985675910
1 f none images/letters/182.iso-8859-2.gif 0600 root bin 292 26962 985675910
1 f none images/letters/188.iso-8859-2.gif 0600 root bin 243 23472 985675910
1 f none images/letters/191.iso-8859-2.gif 0600 root bin 223 23721 985675910
1 f none images/letters/192.gif 0600 root bin 344 34350 985675909
1 f none images/letters/193.gif 0600 root bin 350 35704 985675909
1 f none images/letters/194.gif 0600 root bin 357 35931 985675909
1 f none images/letters/195.gif 0600 root bin 357 35372 985675909
1 f none images/letters/196.gif 0600 root bin 347 33811 985675909
1 f none images/letters/197.gif 0600 root bin 371 38306 985675909
1 f none images/letters/198.gif 0600 root bin 343 36851 985675909
1 f none images/letters/199.gif 0600 root bin 345 32508 985675909
1 f none images/letters/200.gif 0600 root bin 243 26765 985675909
1 f none images/letters/201.gif 0600 root bin 210 22783 985675909
1 f none images/letters/202.gif 0600 root bin 266 29527 985675909
1 f none images/letters/203.gif 0600 root bin 217 26120 985675909
1 f none images/letters/204.gif 0600 root bin 167 18673 985675909
1 f none images/letters/205.gif 0600 root bin 162 18114 985675909
1 f none images/letters/206.gif 0600 root bin 213 22371 985675909
1 f none images/letters/207.gif 0600 root bin 178 20451 985675909
1 f none images/letters/208.gif 0600 root bin 295 31590 985675909
1 f none images/letters/208.iso-8859-9.gif 0600 root bin 353 32557 985675910
1 f none images/letters/209.gif 0600 root bin 338 34720 985675909
1 f none images/letters/210.gif 0600 root bin 382 37778 985675909
1 f none images/letters/211.gif 0600 root bin 382 38537 985675909
1 f none images/letters/211.iso-8859-2.gif 0600 root bin 382 38537 985675910
1 f none images/letters/212.gif 0600 root bin 389 40849 985675909
1 f none images/letters/213.gif 0600 root bin 389 40492 985675909
1 f none images/letters/214.gif 0600 root bin 377 37118 985675909
1 f none images/letters/214.iso-8859-9.gif 0600 root bin 377 37118 985675910
1 f none images/letters/215.gif 0600 root bin 242 24334 985675909
1 f none images/letters/216.gif 0600 root bin 413 41522 985675909
1 f none images/letters/217.gif 0600 root bin 307 30901 985675909
1 f none images/letters/218.gif 0600 root bin 301 30176 985675909
1 f none images/letters/219.gif 0600 root bin 323 33907 985675909
1 f none images/letters/220.gif 0600 root bin 314 32975 985675909
1 f none images/letters/220.iso-8859-9.gif 0600 root bin 314 32975 985675910
1 f none images/letters/221.gif 0600 root bin 296 32517 985675909
1 f none images/letters/221.iso-8859-9.gif 0600 root bin 943 19870 985675910
1 f none images/letters/222.gif 0600 root bin 239 24937 985675909
1 f none images/letters/222.iso-8859-9.gif 0600 root bin 1129 39223 985675910
1 f none images/letters/223.gif 0600 root bin 317 32136 985675909
1 f none images/letters/224.gif 0600 root bin 287 27847 985675909
1 f none images/letters/225.gif 0600 root bin 300 29200 985675909
1 f none images/letters/226.gif 0600 root bin 316 31226 985675909
1 f none images/letters/227.gif 0600 root bin 306 27799 985675909
1 f none images/letters/228.gif 0600 root bin 308 30740 985675909
1 f none images/letters/229.gif 0600 root bin 323 31030 985675909
1 f none images/letters/230.gif 0600 root bin 378 37522 985675909
1 f none images/letters/230.iso-8859-2.gif 0600 root bin 288 26948 985675910
1 f none images/letters/231.gif 0600 root bin 293 27749 985675909
1 f none images/letters/231.iso-8859-9.gif 0600 root bin 293 27749 985675910
1 f none images/letters/232.gif 0600 root bin 282 27297 985675909
1 f none images/letters/233.gif 0600 root bin 285 28670 985675909
1 f none images/letters/234.gif 0600 root bin 300 28841 985675910
1 f none images/letters/234.iso-8859-2.gif 0600 root bin 285 26819 985675910
1 f none images/letters/235.gif 0600 root bin 293 28337 985675910
1 f none images/letters/236.gif 0600 root bin 169 16788 985675910
1 f none images/letters/237.gif 0600 root bin 145 15802 985675910
1 f none images/letters/238.gif 0600 root bin 193 19445 985675910
1 f none images/letters/239.gif 0600 root bin 162 18182 985675910
1 f none images/letters/240.gif 0600 root bin 328 31206 985675910
1 f none images/letters/240.iso-8859-9.gif 0600 root bin 1101 36086 985675910
1 f none images/letters/241.gif 0600 root bin 279 30015 985675910
1 f none images/letters/241.iso-8859-2.gif 0600 root bin 259 27391 985675910
1 f none images/letters/242.gif 0600 root bin 301 28194 985675910
1 f none images/letters/243.gif 0600 root bin 305 28510 985675910
1 f none images/letters/243.iso-8859-2.gif 0600 root bin 305 28510 985675910
1 f none images/letters/244.gif 0600 root bin 323 31508 985675910
1 f none images/letters/245.gif 0600 root bin 318 30010 985675910
1 f none images/letters/246.gif 0600 root bin 314 31221 985675910
1 f none images/letters/246.iso-8859-9.gif 0600 root bin 314 31221 985675910
1 f none images/letters/247.gif 0600 root bin 217 20068 985675910
1 f none images/letters/248.gif 0600 root bin 320 32994 985675910
1 f none images/letters/249.gif 0600 root bin 261 27640 985675910
1 f none images/letters/250.gif 0600 root bin 266 27019 985675910
1 f none images/letters/251.gif 0600 root bin 272 27944 985675910
1 f none images/letters/252.gif 0600 root bin 270 28826 985675910
1 f none images/letters/252.iso-8859-9.gif 0600 root bin 270 28826 985675910
1 f none images/letters/253.gif 0600 root bin 317 29574 985675910
1 f none images/letters/253.iso-8859-9.gif 0600 root bin 911 16826 985675910
1 f none images/letters/254.gif 0600 root bin 309 30760 985675910
1 f none images/letters/255.gif 0600 root bin 339 32895 985675910
1 f none images/letters/32.gif 0600 root bin 108 9700 985675910
1 f none images/letters/33.gif 0600 root bin 165 15817 985675909
1 f none images/letters/34.gif 0600 root bin 145 14648 985675910
1 f none images/letters/35.gif 0600 root bin 290 28557 985675910
1 f none images/letters/36.gif 0600 root bin 336 31998 985675910
1 f none images/letters/37.gif 0600 root bin 418 44292 985675910
1 f none images/letters/38.gif 0600 root bin 341 33541 985675910
1 f none images/letters/39.gif 0600 root bin 93 8353 985675910
1 f none images/letters/40.gif 0600 root bin 226 19687 985675910
1 f none images/letters/41.gif 0600 root bin 226 20077 985675910
1 f none images/letters/42.gif 0600 root bin 185 18044 985675910
1 f none images/letters/43.gif 0600 root bin 154 17591 985675910
1 f none images/letters/44.gif 0600 root bin 143 13259 985675910
1 f none images/letters/45.gif 0600 root bin 103 10757 985675910
1 f none images/letters/46.gif 0600 root bin 79 8499 985675910
1 f none images/letters/47.gif 0600 root bin 197 17377 985675910
1 f none images/letters/48.gif 0600 root bin 300 29187 985675909
1 f none images/letters/49.gif 0600 root bin 197 18188 985675909
1 f none images/letters/50.gif 0600 root bin 270 26110 985675909
1 f none images/letters/51.gif 0600 root bin 289 26741 985675909
1 f none images/letters/52.gif 0600 root bin 261 26144 985675909
1 f none images/letters/53.gif 0600 root bin 279 25679 985675909
1 f none images/letters/54.gif 0600 root bin 313 29226 985675909
1 f none images/letters/55.gif 0600 root bin 235 22518 985675909
1 f none images/letters/56.gif 0600 root bin 310 29997 985675909
1 f none images/letters/57.gif 0600 root bin 312 28140 985675909
1 f none images/letters/58.gif 0600 root bin 108 10765 985675910
1 f none images/letters/59.gif 0600 root bin 157 13920 985675910
1 f none images/letters/60.gif 0600 root bin 215 20238 985675910
1 f none images/letters/61.gif 0600 root bin 111 11761 985675910
1 f none images/letters/62.gif 0600 root bin 218 19622 985675910
1 f none images/letters/63.gif 0600 root bin 246 24681 985675910
1 f none images/letters/64.gif 0600 root bin 456 47828 985675910
1 f none images/letters/65.gif 0600 root bin 314 29902 985675909
1 f none images/letters/66.gif 0600 root bin 279 28462 985675909
1 f none images/letters/67.gif 0600 root bin 316 28609 985675909
1 f none images/letters/68.gif 0600 root bin 286 29933 985675909
1 f none images/letters/69.gif 0600 root bin 192 21014 985675909
1 f none images/letters/70.gif 0600 root bin 185 20369 985675909
1 f none images/letters/71.gif 0600 root bin 353 32557 985675909
1 f none images/letters/72.gif 0600 root bin 192 21724 985675909
1 f none images/letters/73.gif 0600 root bin 104 9813 985675909
1 f none images/letters/74.gif 0600 root bin 234 22179 985675909
1 f none images/letters/75.gif 0600 root bin 290 30104 985675909
1 f none images/letters/76.gif 0600 root bin 168 17611 985675909
1 f none images/letters/77.gif 0600 root bin 365 39576 985675909
1 f none images/letters/78.gif 0600 root bin 309 33259 985675909
1 f none images/letters/79.gif 0600 root bin 340 31918 985675909
1 f none images/letters/80.gif 0600 root bin 244 25229 985675909
1 f none images/letters/81.gif 0600 root bin 373 34966 985675909
1 f none images/letters/82.gif 0600 root bin 278 27814 985675909
1 f none images/letters/83.gif 0600 root bin 330 31206 985675909
1 f none images/letters/84.gif 0600 root bin 179 18720 985675909
1 f none images/letters/85.gif 0600 root bin 293 29284 985675909
1 f none images/letters/86.gif 0600 root bin 297 32396 985675909
1 f none images/letters/87.gif 0600 root bin 437 44621 985675909
1 f none images/letters/88.gif 0600 root bin 321 31944 985675909
1 f none images/letters/89.gif 0600 root bin 276 28941 985675909
1 f none images/letters/90.gif 0600 root bin 246 24715 985675909
1 f none images/letters/91.gif 0600 root bin 160 17505 985675910
1 f none images/letters/93.gif 0600 root bin 160 17941 985675910
1 f none images/letters/94.gif 0600 root bin 210 20895 985675910
1 f none images/letters/95.gif 0600 root bin 112 11268 985675910
1 f none images/letters/96.gif 0600 root bin 105 11369 985675910
1 f none images/letters/97.gif 0600 root bin 280 25111 985675909
1 f none images/letters/98.gif 0600 root bin 285 27842 985675909
1 f none images/letters/99.gif 0600 root bin 264 23531 985675909
1 f none images/newlogo.gif 0600 root bin 6835 33785 985675910
1 f none images/rc1.gif 0600 root bin 43 3192 985675909
1 f none images/rc2.gif 0600 root bin 43 3244 985675909
1 f none images/right.gif 0600 root bin 135 13410 985675909
1 f none images/smalllogo.gif 0600 root bin 4795 22264 985675910
1 f none images/text.gif 0600 root bin 130 13008 985675909
1 f none images/unknown.gif 0600 root bin 132 12527 985675909
1 f none images/webmin-mini.xpm 0600 root bin 528 22656 985675909
1 f none images/webmin.gif 0600 root bin 1890 31149 985675909
1 f none images/webmin.xpm 0600 root bin 1355 52866 985675909
1 f none index.cgi 0700 root bin 7005 16934 985675910
1 d none inetd 0700 root bin
1 f none inetd/config-aix 0600 root bin 276 25261 985675915
1 f none inetd/config-cobalt-linux 0600 root bin 305 28868 985675915
1 f none inetd/config-corel-linux 0600 root bin 305 28868 985675915
1 f none inetd/config-debian-linux 0600 root bin 305 28868 985675915
1 f none inetd/config-freebsd 0600 root bin 226 21355 985675915
1 f none inetd/config-freebsd-2.1 0600 root bin 226 21353 985675915
1 f none inetd/config-freebsd-2.2 0600 root bin 226 21353 985675915
1 f none inetd/config-hpux 0600 root bin 216 20445 985675915
1 f none inetd/config-lfs-linux 0600 root bin 305 28868 985675915
1 f none inetd/config-macos 0600 root bin 443 41192 985675915
1 f none inetd/config-open-linux 0600 root bin 305 28868 985675915
1 f none inetd/config-open-linux-3.1e 0600 root bin 327 30873 985675915
1 f none inetd/config-openbsd 0600 root bin 209 19758 985675915
1 f none inetd/config-openserver 0600 root bin 297 27338 985675915
1 f none inetd/config-osf1 0600 root bin 276 25260 985675915
1 f none inetd/config-redhat-linux 0600 root bin 336 31647 985675915
1 f none inetd/config-slackware-linux 0600 root bin 256 24127 985675915
1 f none inetd/config-solaris 0600 root bin 327 30321 985675915
1 f none inetd/config-solaris-8 0600 root bin 327 30322 985675915
1 f none inetd/config-suse-linux 0600 root bin 305 28868 985675915
1 f none inetd/config-suse-linux-6.3 0600 root bin 305 28867 985675915
1 f none inetd/config-suse-linux-6.4 0600 root bin 305 28867 985675915
1 f none inetd/config-suse-linux-7.0 0600 root bin 305 28867 985675915
1 f none inetd/config-suse-linux-7.1 0600 root bin 305 28867 985675915
1 f none inetd/config-turbo-linux 0600 root bin 305 28868 985675915
1 f none inetd/config-unixware 0600 root bin 297 27338 985675915
1 f none inetd/config.info 0600 root bin 679 62297 985675915
1 f none inetd/config.info.de 0600 root bin 684 63577 985675915
1 f none inetd/config.info.es 0600 root bin 817 10545 985675915
1 f none inetd/config.info.fr 0600 root bin 601 55500 985675915
1 f none inetd/config.info.hu 0600 root bin 709 3564 985675915
1 f none inetd/config.info.pl 0600 root bin 757 6277 985675915
1 f none inetd/config.info.ru_RU 0600 root bin 572 23906 985675915
1 f none inetd/config.info.ru_SU 0600 root bin 572 16398 985675915
1 f none inetd/config.info.sv 0600 root bin 729 5827 985675915
1 f none inetd/config.info.tr 0600 root bin 653 64928 985675915
1 f none inetd/config.info.zh_CN 0600 root bin 500 539 985675915
1 f none inetd/config.info.zh_TW.Big5 0600 root bin 489 57125 985675915
1 f none inetd/delete_rpc.cgi 0700 root bin 563 43496 985675915
1 f none inetd/delete_serv.cgi 0700 root bin 605 47519 985675915
1 f none inetd/edit_rpc.cgi 0700 root bin 5671 2076 985675915
1 f none inetd/edit_serv.cgi 0700 root bin 6771 31664 985675915
1 d none inetd/help 0700 root bin
1 f none inetd/help/help.es.html 0600 root bin 6032 12891 985675915
1 f none inetd/help/help.html 0600 root bin 5578 29438 985675915
1 f none inetd/help/help.sv.html 0600 root bin 5363 43365 985675915
1 f none inetd/help/help.zh_TW.Big5.html 0600 root bin 3865 37445 985675915
1 d none inetd/images 0700 root bin
1 f none inetd/images/icon.gif 0600 root bin 274 34263 985675915
1 f none inetd/index.cgi 0700 root bin 3084 39507 985675915
1 f none inetd/inetd-lib.pl 0600 root bin 5825 4855 985675915
1 d none inetd/lang 0700 root bin
1 f none inetd/lang/en 0600 root bin 3942 38109 985675915
1 f none inetd/lang/es 0600 root bin 4230 4576 985675915
1 f none inetd/lang/fr 0600 root bin 4599 45045 985675915
1 f none inetd/lang/hu 0600 root bin 4861 32840 985675915
1 f none inetd/lang/pl 0600 root bin 4267 25115 985675915
1 f none inetd/lang/sv 0600 root bin 4203 12767 985675915
1 f none inetd/lang/tr 0600 root bin 4238 35455 985675915
1 f none inetd/lang/zh_CN 0600 root bin 3244 29093 985675915
1 f none inetd/log_parser.pl 0600 root bin 863 4070 985675915
1 f none inetd/module.info 0600 root bin 976 33520 985675915
1 f none inetd/restart_inetd.cgi 0700 root bin 302 25221 985675915
1 f none inetd/save_rpc.cgi 0700 root bin 3539 16895 985675915
1 f none inetd/save_serv.cgi 0700 root bin 4908 60285 985675915
1 d none init 0700 root bin
1 f none init/acl_security.pl 0600 root bin 1300 44284 985675915
1 f none init/atboot.pl 0700 root bin 2236 49000 985675915
1 f none init/config-aix 0600 root bin 211 19914 985675916
1 f none init/config-cobalt-linux-2.2 0600 root bin 229 21360 985675915
1 f none init/config-cobalt-linux-5.0 0600 root bin 244 22577 985675915
1 f none init/config-corel-linux 0600 root bin 166 15519 985675916
1 f none init/config-debian-linux 0600 root bin 166 15519 985675915
1 f none init/config-freebsd 0600 root bin 86 8363 985675915
1 f none init/config-hpux 0600 root bin 191 17983 985675915
1 f none init/config-irix 0600 root bin 183 16720 985675916
1 f none init/config-macos 0600 root bin 80 7794 985675916
1 f none init/config-open-linux 0600 root bin 230 21517 985675916
1 f none init/config-openbsd 0600 root bin 86 8363 985675916
1 f none init/config-openserver 0600 root bin 183 16725 985675915
1 f none init/config-osf1 0600 root bin 213 20028 985675916
1 f none init/config-redhat-linux 0600 root bin 264 24402 985675915
1 f none init/config-slackware-linux 0600 root bin 91 8769 985675915
1 f none init/config-solaris 0600 root bin 200 18151 985675915
1 f none init/config-suse-linux 0600 root bin 174 16324 985675915
1 f none init/config-suse-linux-7.1 0600 root bin 184 17180 985675916
1 f none init/config-turbo-linux 0600 root bin 244 22577 985675916
1 f none init/config-unixware 0600 root bin 183 16725 985675915
1 f none init/config.info 0600 root bin 739 3384 985675915
1 f none init/config.info.de 0600 root bin 701 64931 985675916
1 f none init/config.info.es 0600 root bin 762 6479 985675916
1 f none init/config.info.fr 0600 root bin 583 56613 985675916
1 f none init/config.info.pl 0600 root bin 836 16738 985675916
1 f none init/config.info.ru_RU 0600 root bin 576 36899 985675916
1 f none init/config.info.ru_SU 0600 root bin 576 26293 985675916
1 f none init/config.info.sv 0600 root bin 713 4556 985675916
1 f none init/config.info.tr 0600 root bin 684 7003 985675916
1 f none init/config.info.zh_CN 0600 root bin 448 62581 985675916
1 f none init/config.info.zh_TW.Big5 0600 root bin 496 63516 985675916
1 f none init/defaultacl 0600 root bin 40 3538 985675915
1 f none init/delboot.pl 0700 root bin 841 2370 985675915
1 f none init/delete_action.cgi 0700 root bin 832 2702 985675915
1 f none init/edit_action.cgi 0700 root bin 7775 35203 985675915
1 f none init/fix_action.cgi 0700 root bin 630 49956 985675915
1 d none init/help 0700 root bin
1 f none init/help/help.es.html 0600 root bin 212 18186 985675916
1 f none init/help/help.html 0600 root bin 199 16460 985675916
1 f none init/help/help.sv.html 0600 root bin 204 17228 985675916
1 f none init/help/proc.es.html 0600 root bin 78 7093 985675916
1 f none init/help/proc.html 0600 root bin 70 6010 985675916
1 f none init/help/proc.sv.html 0600 root bin 76 6749 985675916
1 d none init/images 0700 root bin
1 f none init/images/icon.gif 0600 root bin 389 44270 985675915
1 f none init/index.cgi 0700 root bin 4811 35025 985675915
1 f none init/init-lib.pl 0700 root bin 7802 16245 985675915
1 d none init/lang 0700 root bin
1 f none init/lang/de 0600 root bin 2843 6512 985675915
1 f none init/lang/en 0600 root bin 3047 26064 985675915
1 f none init/lang/es 0600 root bin 3075 32570 985675915
1 f none init/lang/fr 0600 root bin 2733 12429 985675915
1 f none init/lang/it 0600 root bin 2370 27399 985675915
1 f none init/lang/pl 0600 root bin 2940 30519 985675915
1 f none init/lang/pt 0600 root bin 2598 56748 985675915
1 f none init/lang/ru_RU 0600 root bin 2668 18571 985675915
1 f none init/lang/ru_SU 0600 root bin 2674 36713 985675915
1 f none init/lang/sv 0600 root bin 3252 58530 985675915
1 f none init/lang/tr 0600 root bin 3028 64299 985675915
1 f none init/lang/zh_CN 0600 root bin 1952 25197 985675915
1 f none init/lang/zh_TW.Big5 0600 root bin 1882 54194 985675915
1 f none init/log_parser.pl 0600 root bin 1167 30212 985675916
1 f none init/low.risk 0600 root bin 20 1755 985675916
1 f none init/medium.risk 0600 root bin 20 1757 985675916
1 f none init/module.info 0600 root bin 624 1638 985675915
1 f none init/reboot.cgi 0700 root bin 760 64690 985675915
1 f none init/save_action.cgi 0700 root bin 7064 8489 985675915
1 f none init/save_bootup.cgi 0600 root bin 1463 42453 985675916
1 f none init/save_local.cgi 0700 root bin 459 39155 985675915
1 f none init/shutdown.cgi 0700 root bin 795 2371 985675915
1 f none init/start_stop.cgi 0700 root bin 1133 26910 985675915
1 d none inittab 0700 root bin
1 f none inittab/config 0600 root bin 26 2486 985675952
1 f none inittab/config.info 0600 root bin 36 3304 985675952
1 f none inittab/config.info.de 0600 root bin 35 3381 985675953
1 f none inittab/config.info.es 0600 root bin 45 4268 985675952
1 f none inittab/config.info.fr 0600 root bin 41 3807 985675952
1 f none inittab/config.info.pl 0600 root bin 40 3890 985675953
1 f none inittab/config.info.ru_RU 0600 root bin 36 4621 985675953
1 f none inittab/config.info.ru_SU 0600 root bin 36 4358 985675952
1 f none inittab/config.info.sv 0600 root bin 39 3914 985675952
1 f none inittab/config.info.tr 0600 root bin 36 3601 985675953
1 f none inittab/config.info.zh_CN 0600 root bin 34 4170 985675953
1 f none inittab/config.info.zh_TW.Big5 0600 root bin 41 5269 985675952
1 f none inittab/defaultacl 0600 root bin 10 867 985675952
1 f none inittab/edit_inittab.cgi 0700 root bin 2676 7666 985675952
1 d none inittab/help 0700 root bin
1 f none inittab/help/action.es.html 0600 root bin 3232 33188 985675952
1 f none inittab/help/action.fr.html 0600 root bin 2850 4415 985675952
1 f none inittab/help/action.html 0600 root bin 2810 54908 985675952
1 f none inittab/help/action.pl.html 0600 root bin 3108 31934 985675952
1 f none inittab/help/action.ru_RU.html 0600 root bin 3045 21798 985675952
1 f none inittab/help/action.ru_SU.html 0600 root bin 3045 27213 985675952
1 f none inittab/help/action.sv.html 0600 root bin 2627 56712 985675952
1 f none inittab/help/id.es.html 0600 root bin 493 44972 985675952
1 f none inittab/help/id.fr.html 0600 root bin 532 49756 985675952
1 f none inittab/help/id.html 0600 root bin 432 38739 985675952
1 f none inittab/help/id.pl.html 0600 root bin 524 50334 985675952
1 f none inittab/help/id.ru_RU.html 0600 root bin 455 15311 985675952
1 f none inittab/help/id.ru_SU.html 0600 root bin 455 6185 985675952
1 f none inittab/help/id.sv.html 0600 root bin 410 39268 985675952
1 f none inittab/help/index.es.html 0600 root bin 274 24817 985675952
1 f none inittab/help/index.fr.html 0600 root bin 267 25074 985675952
1 f none inittab/help/index.html 0600 root bin 238 21270 985675952
1 f none inittab/help/index.pl.html 0600 root bin 270 24728 985675952
1 f none inittab/help/index.ru_RU.html 0600 root bin 249 38280 985675952
1 f none inittab/help/index.ru_SU.html 0600 root bin 249 34593 985675952
1 f none inittab/help/index.sv.html 0600 root bin 245 22326 985675952
1 f none inittab/help/process.es.html 0600 root bin 451 41131 985675952
1 f none inittab/help/process.fr.html 0600 root bin 289 26878 985675952
1 f none inittab/help/process.html 0600 root bin 409 36656 985675952
1 f none inittab/help/process.pl.html 0600 root bin 399 37486 985675952
1 f none inittab/help/process.ru_RU.html 0600 root bin 182 29647 985675952
1 f none inittab/help/process.ru_SU.html 0600 root bin 182 26542 985675952
1 f none inittab/help/process.sv.html 0600 root bin 356 33638 985675952
1 f none inittab/help/runlevels.es.html 0600 root bin 458 41834 985675952
1 f none inittab/help/runlevels.fr.html 0600 root bin 441 41184 985675952
1 f none inittab/help/runlevels.html 0600 root bin 378 33672 985675952
1 f none inittab/help/runlevels.pl.html 0600 root bin 469 44626 985675952
1 f none inittab/help/runlevels.ru_RU.html 0600 root bin 400 5252 985675952
1 f none inittab/help/runlevels.ru_SU.html 0600 root bin 400 62915 985675952
1 f none inittab/help/runlevels.sv.html 0600 root bin 373 36442 985675952
1 d none inittab/images 0700 root bin
1 f none inittab/images/icon.gif 0600 root bin 296 35073 985675952
1 f none inittab/index.cgi 0700 root bin 1534 50607 985675952
1 f none inittab/inittab-lib.pl 0700 root bin 1426 37263 985675952
1 d none inittab/lang 0700 root bin
1 f none inittab/lang/de 0600 root bin 1337 63970 985675952
1 f none inittab/lang/en 0600 root bin 1299 59143 985675952
1 f none inittab/lang/es 0600 root bin 1463 9698 985675952
1 f none inittab/lang/fr 0600 root bin 1419 10664 985675952
1 f none inittab/lang/pl 0600 root bin 1376 4972 985675952
1 f none inittab/lang/ru_RU 0600 root bin 1268 3681 985675952
1 f none inittab/lang/ru_SU 0600 root bin 1271 53076 985675952
1 f none inittab/lang/sv 0600 root bin 1347 2279 985675952
1 f none inittab/lang/tr 0600 root bin 1464 26878 985675952
1 f none inittab/lang/zh_CN 0600 root bin 1055 8701 985675952
1 f none inittab/lang/zh_TW.Big5 0600 root bin 969 51850 985675952
1 f none inittab/log_parser.pl 0600 root bin 720 59912 985675952
1 f none inittab/module.info 0600 root bin 569 64329 985675952
1 f none inittab/new_inittab.cgi 0700 root bin 2056 28924 985675952
1 f none inittab/save_inittab.cgi 0700 root bin 1473 42573 985675952
1 f none install-module.pl 0700 root bin 2800 20833 985675910
1 f none install-type 0600 root bin 12 1142 985676532
1 d none lang 0700 root bin
1 f none lang/de 0600 root bin 3208 35217 985675910
1 f none lang/en 0600 root bin 3778 22753 985675910
1 f none lang/es 0600 root bin 4127 59665 985675910
1 f none lang/fr 0600 root bin 2262 16261 985675910
1 f none lang/he 0600 root bin 2119 64373 985675910
1 f none lang/hu 0600 root bin 3384 4697 985675910
1 f none lang/it 0600 root bin 1925 47244 985675910
1 f none lang/ja_JP.euc 0600 root bin 3800 1315 985675910
1 f none lang/nl 0700 root bin 4117 57502 985675910
1 f none lang/no 0600 root bin 2006 51173 985675910
1 f none lang/pl 0600 root bin 4084 7117 985675910
1 f none lang/pt 0600 root bin 1760 35123 985675910
1 f none lang/ru_RU 0600 root bin 3923 26231 985675910
1 f none lang/ru_SU 0600 root bin 3941 44330 985675910
1 f none lang/sv 0600 root bin 2422 34359 985675910
1 f none lang/tr 0600 root bin 2798 18961 985675910
1 f none lang/zh_CN 0600 root bin 2869 45445 985675910
1 f none lang/zh_TW.Big5 0600 root bin 1812 9845 985675910
1 f none lang_list.txt 0600 root bin 620 54797 985675910
1 d none lilo 0700 root bin
1 f none lilo/apply.cgi 0700 root bin 467 38374 985675939
1 f none lilo/config 0600 root bin 45 4190 985675939
1 f none lilo/config-lfs-linux 0600 root bin 45 4190 985675939
1 f none lilo/config.info 0600 root bin 84 7524 985675939
1 f none lilo/config.info.de 0600 root bin 97 9057 985675939
1 f none lilo/config.info.es 0600 root bin 110 10331 985675939
1 f none lilo/config.info.fr 0600 root bin 114 10283 985675939
1 f none lilo/config.info.hu 0600 root bin 114 12602 985675939
1 f none lilo/config.info.pl 0600 root bin 100 9444 985675939
1 f none lilo/config.info.ru_RU 0600 root bin 89 15052 985675939
1 f none lilo/config.info.ru_SU 0600 root bin 89 13444 985675939
1 f none lilo/config.info.sv 0600 root bin 105 10221 985675939
1 f none lilo/config.info.tr 0600 root bin 92 9698 985675939
1 f none lilo/config.info.zh_CN 0600 root bin 68 9291 985675939
1 f none lilo/config.info.zh_TW.Big5 0600 root bin 65 7654 985675939
1 f none lilo/edit_global.cgi 0700 root bin 4603 52625 985675939
1 f none lilo/edit_image.cgi 0700 root bin 5379 53253 985675939
1 f none lilo/edit_other.cgi 0700 root bin 2142 47929 985675939
1 d none lilo/images 0700 root bin
1 f none lilo/images/icon.gif 0600 root bin 1855 57767 985675939
1 f none lilo/images/image.gif 0600 root bin 1614 26487 985675939
1 f none lilo/images/other.gif 0600 root bin 2083 47306 985675939
1 f none lilo/index.cgi 0700 root bin 2393 60750 985675939
1 d none lilo/lang 0700 root bin
1 f none lilo/lang/de 0600 root bin 2876 11626 985675939
1 f none lilo/lang/en 0600 root bin 3259 46064 985675939
1 f none lilo/lang/es 0600 root bin 3802 34905 985675939
1 f none lilo/lang/fr 0600 root bin 3012 33187 985675939
1 f none lilo/lang/hu 0600 root bin 2839 38926 985675939
1 f none lilo/lang/pl 0600 root bin 3591 27174 985675939
1 f none lilo/lang/pt 0600 root bin 2764 9093 985675939
1 f none lilo/lang/ru_RU 0600 root bin 2743 7720 985675939
1 f none lilo/lang/ru_SU 0600 root bin 2747 31838 985675939
1 f none lilo/lang/sv 0600 root bin 3314 2989 985675939
1 f none lilo/lang/tr 0600 root bin 3625 8257 985675939
1 f none lilo/lang/zh_CN 0600 root bin 2591 24021 985675939
1 f none lilo/lang/zh_TW.Big5 0600 root bin 2118 16237 985675939
1 f none lilo/lilo-lib.pl 0600 root bin 4869 46996 985675939
1 f none lilo/log_parser.pl 0600 root bin 841 4773 985675939
1 f none lilo/module.info 0600 root bin 603 63516 985675939
1 f none lilo/save_global.cgi 0700 root bin 1465 51785 985675939
1 f none lilo/save_image.cgi 0700 root bin 2680 23489 985675939
1 f none lilo/save_other.cgi 0700 root bin 1334 44924 985675939
1 d none lpadmin 0700 root bin
1 f none lpadmin/acl_security.pl 0600 root bin 3179 62431 985675930
1 f none lpadmin/ascii.txt 0600 root bin 4291 41053 985675930
1 f none lpadmin/base_coas_driver 0700 root bin 560 39252 985675930
1 f none lpadmin/bw.fig 0600 root bin 2811 5685 985675930
1 f none lpadmin/bw.ps 0600 root bin 6615 11601 985675929
1 f none lpadmin/caldera-driver.pl 0600 root bin 12471 56211 985675930
1 f none lpadmin/cancel_all.cgi 0700 root bin 406 34408 985675929
1 f none lpadmin/cancel_job.cgi 0700 root bin 550 45283 985675929
1 f none lpadmin/catalog.devices 0400 root bin 12641 50532 985675930
1 f none lpadmin/colour.fig 0600 root bin 2984 13358 985675930
1 f none lpadmin/colour.ps 0600 root bin 6792 22515 985675930
1 f none lpadmin/config-corel-linux 0600 root bin 189 18176 985675930
1 f none lpadmin/config-debian-linux 0600 root bin 189 18176 985675930
1 f none lpadmin/config-freebsd 0600 root bin 191 18347 985675930
1 f none lpadmin/config-hpux 0600 root bin 284 27324 985675930
1 f none lpadmin/config-irix 0600 root bin 172 16576 985675930
1 f none lpadmin/config-macos 0600 root bin 191 18347 985675930
1 f none lpadmin/config-open-linux 0600 root bin 270 26033 985675930
1 f none lpadmin/config-open-linux-3.1e 0600 root bin 200 19302 985675930
1 f none lpadmin/config-openbsd 0600 root bin 191 18347 985675929
1 f none lpadmin/config-redhat-linux 0600 root bin 189 18166 985675930
1 f none lpadmin/config-redhat-linux-7.0 0600 root bin 207 19876 985675929
1 f none lpadmin/config-redhat-linux-7.1 0600 root bin 210 20223 985675930
1 f none lpadmin/config-slackware-linux 0600 root bin 189 18176 985675929
1 f none lpadmin/config-solaris 0600 root bin 310 29208 985675929
1 f none lpadmin/config-suse-linux 0600 root bin 187 17982 985675930
1 f none lpadmin/config-turbo-linux 0600 root bin 189 18166 985675930
1 f none lpadmin/config-unixware 0600 root bin 263 24314 985675930
1 f none lpadmin/config.info 0600 root bin 753 5341 985675928
1 f none lpadmin/config.info.de 0600 root bin 593 56493 985675930
1 f none lpadmin/config.info.es 0600 root bin 736 4219 985675930
1 f none lpadmin/config.info.fr 0600 root bin 557 52725 985675930
1 f none lpadmin/config.info.hu 0600 root bin 685 1165 985675929
1 f none lpadmin/config.info.pl 0600 root bin 781 10377 985675929
1 f none lpadmin/config.info.ru_RU 0600 root bin 494 1498 985675930
1 f none lpadmin/config.info.ru_SU 0600 root bin 494 62916 985675930
1 f none lpadmin/config.info.sv 0600 root bin 640 62231 985675930
1 f none lpadmin/config.info.tr 0600 root bin 541 55908 985675928
1 f none lpadmin/config.info.zh_CN 0600 root bin 496 62518 985675930
1 f none lpadmin/config.info.zh_TW.Big5 0600 root bin 490 55428 985675930
1 f none lpadmin/cups-driver.pl 0600 root bin 4636 32032 985675930
1 f none lpadmin/cups-lib.pl 0600 root bin 6464 49754 985675930
1 f none lpadmin/defaultacl 0600 root bin 47 3856 985675930
1 f none lpadmin/delete_printer.cgi 0700 root bin 705 58752 985675929
1 f none lpadmin/drivers 0600 root bin 5265 19390 985675928
1 f none lpadmin/edit_printer.cgi 0700 root bin 10356 55065 985675928
1 f none lpadmin/freebsd-lib.pl 0600 root bin 6611 1347 985675928
1 f none lpadmin/hpux-driver.pl 0600 root bin 3149 57507 985675930
1 f none lpadmin/hpux-lib.pl 0600 root bin 9300 21705 985675929
1 d none lpadmin/images 0700 root bin
1 f none lpadmin/images/icon.gif 0600 root bin 330 38844 985675928
1 f none lpadmin/index.cgi 0700 root bin 3875 38409 985675928
1 f none lpadmin/irix-driver.pl 0600 root bin 3149 57498 985675930
1 f none lpadmin/irix-lib.pl 0600 root bin 10176 30553 985675930
1 d none lpadmin/lang 0700 root bin
1 f none lpadmin/lang/de 0600 root bin 5878 32531 985675930
1 f none lpadmin/lang/en 0600 root bin 7439 43977 985675930
1 f none lpadmin/lang/es 0600 root bin 8562 33202 985675930
1 f none lpadmin/lang/fr 0600 root bin 5398 4388 985675930
1 f none lpadmin/lang/hu 0600 root bin 7230 55793 985675930
1 f none lpadmin/lang/it 0600 root bin 5354 50360 985675930
1 f none lpadmin/lang/pl 0600 root bin 8428 46645 985675930
1 f none lpadmin/lang/pt 0600 root bin 5386 4151 985675930
1 f none lpadmin/lang/ru_RU 0600 root bin 4784 16068 985675930
1 f none lpadmin/lang/ru_SU 0600 root bin 4796 9248 985675930
1 f none lpadmin/lang/sv 0600 root bin 7847 46249 985675930
1 f none lpadmin/lang/tr 0600 root bin 5943 44008 985675930
1 f none lpadmin/lang/zh_CN 0600 root bin 5117 62819 985675930
1 f none lpadmin/lang/zh_TW.Big5 0600 root bin 4058 54679 985675930
1 f none lpadmin/linux-lib.pl 0600 root bin 8023 36580 985675930
1 f none lpadmin/list_jobs.cgi 0700 root bin 2133 35077 985675929
1 f none lpadmin/log_parser.pl 0600 root bin 821 2415 985675928
1 f none lpadmin/lpadmin-lib.pl 0600 root bin 13821 34363 985675928
1 f none lpadmin/lprng-lib.pl 0600 root bin 9361 9595 985675930
1 f none lpadmin/module.info 0600 root bin 601 211 985675928
1 f none lpadmin/old-caldera-driver.pl 0600 root bin 9888 61839 985675928
1 f none lpadmin/openbsd-lib.pl 0600 root bin 6611 1347 985675928
1 f none lpadmin/printconf-driver.pl 0600 root bin 7809 32423 985675930
1 f none lpadmin/redhat-driver.pl 0600 root bin 12651 19074 985675929
1 f none lpadmin/restart.cgi 0700 root bin 301 25952 985675930
1 f none lpadmin/save_printer.cgi 0700 root bin 5006 3044 985675929
1 f none lpadmin/solaris-lib.pl 0600 root bin 7045 32956 985675928
1 f none lpadmin/sortdrivers.pl 0700 root bin 236 17273 985675929
1 f none lpadmin/start.cgi 0700 root bin 249 21379 985675930
1 f none lpadmin/stop.cgi 0700 root bin 253 21649 985675929
1 f none lpadmin/stp 0600 root bin 2512 59283 985675929
1 f none lpadmin/suse-driver.pl 0600 root bin 10646 31358 985675930
1 f none lpadmin/test_form.cgi 0700 root bin 862 9932 985675930
1 f none lpadmin/test_print.cgi 0600 root bin 883 4286 985675930
1 f none lpadmin/unixware-lib.pl 0600 root bin 7431 61072 985675930
1 f none lpadmin/view_job.cgi 0700 root bin 837 1164 985675930
1 f none lpadmin/webmin-driver.pl 0600 root bin 1065 31373 985675930
1 d none majordomo 0700 root bin
1 f none majordomo/acl_security.pl 0600 root bin 1973 31774 985675938
1 f none majordomo/alias_setup.cgi 0700 root bin 678 55780 985675938
1 f none majordomo/config 0600 root bin 102 9749 985675938
1 f none majordomo/config-aix 0600 root bin 80 7479 985675938
1 f none majordomo/config-debian-linux-2.2 0600 root bin 98 9242 985675938
1 f none majordomo/config-open-linux 0600 root bin 98 9242 985675938
1 f none majordomo/config-suse-linux-6.1 0600 root bin 85 7932 985675938
1 f none majordomo/config-suse-linux-6.2 0600 root bin 85 7932 985675938
1 f none majordomo/config-suse-linux-6.3 0600 root bin 85 7932 985675938
1 f none majordomo/config-suse-linux-6.4 0600 root bin 85 7932 985675938
1 f none majordomo/config-suse-linux-7.0 0600 root bin 85 7932 985675938
1 f none majordomo/config-suse-linux-7.1 0600 root bin 85 7932 985675938
1 f none majordomo/config.info 0600 root bin 352 32893 985675938
1 f none majordomo/config.info.de 0600 root bin 202 19016 985675938
1 f none majordomo/config.info.es 0600 root bin 440 41624 985675938
1 f none majordomo/config.info.fr 0600 root bin 188 17562 985675938
1 f none majordomo/config.info.pl 0600 root bin 386 37886 985675938
1 f none majordomo/config.info.ru_RU 0600 root bin 171 26714 985675938
1 f none majordomo/config.info.ru_SU 0600 root bin 171 24484 985675938
1 f none majordomo/config.info.sv 0600 root bin 375 36838 985675938
1 f none majordomo/config.info.tr 0600 root bin 406 41447 985675938
1 f none majordomo/config.info.zh_CN 0600 root bin 273 37172 985675938
1 f none majordomo/config.info.zh_TW.Big5 0600 root bin 143 17188 985675938
1 f none majordomo/create_digest.cgi 0700 root bin 5314 52570 985675938
1 f none majordomo/create_form.cgi 0700 root bin 1608 4668 985675938
1 f none majordomo/create_list.cgi 0700 root bin 4064 12920 985675938
1 f none majordomo/defaultacl 0600 root bin 44 3677 985675938
1 f none majordomo/delete_list.cgi 0700 root bin 3220 60149 985675938
1 f none majordomo/digest_form.cgi 0700 root bin 1670 9678 985675938
1 f none majordomo/edit_access.cgi 0700 root bin 3669 45106 985675938
1 f none majordomo/edit_digest.cgi 0700 root bin 1488 61163 985675938
1 f none majordomo/edit_global.cgi 0700 root bin 1363 50764 985675938
1 f none majordomo/edit_head.cgi 0700 root bin 1178 34617 985675938
1 f none majordomo/edit_info.cgi 0700 root bin 1836 23009 985675938
1 f none majordomo/edit_list.cgi 0700 root bin 1294 42210 985675938
1 f none majordomo/edit_members.cgi 0700 root bin 2167 49225 985675938
1 f none majordomo/edit_mesg.cgi 0700 root bin 1822 21510 985675938
1 f none majordomo/edit_misc.cgi 0700 root bin 1364 48688 985675938
1 f none majordomo/edit_subs.cgi 0700 root bin 3951 4244 985675938
1 d none majordomo/images 0700 root bin
1 f none majordomo/images/access.gif 0600 root bin 275 34570 985675938
1 f none majordomo/images/dig.gif 0600 root bin 377 41028 985675938
1 f none majordomo/images/digest.gif 0600 root bin 2466 26349 985675938
1 f none majordomo/images/head.gif 0600 root bin 215 25149 985675938
1 f none majordomo/images/icon.gif 0600 root bin 335 37082 985675938
1 f none majordomo/images/info.gif 0600 root bin 318 36739 985675938
1 f none majordomo/images/list.gif 0600 root bin 335 37082 985675938
1 f none majordomo/images/members.gif 0600 root bin 390 43396 985675938
1 f none majordomo/images/mesg.gif 0600 root bin 258 31067 985675938
1 f none majordomo/images/misc.gif 0600 root bin 460 53918 985675938
1 f none majordomo/images/mod.gif 0600 root bin 330 39587 985675938
1 f none majordomo/images/subs.gif 0600 root bin 330 36057 985675938
1 f none majordomo/index.cgi 0700 root bin 4231 21343 985675938
1 d none majordomo/lang 0700 root bin
1 f none majordomo/lang/en 0600 root bin 9789 11687 985675938
1 f none majordomo/lang/es 0600 root bin 11213 31764 985675938
1 f none majordomo/lang/sv 0600 root bin 10790 18913 985675938
1 f none majordomo/lang/tr 0600 root bin 10082 61236 985675938
1 f none majordomo/lang/zh_CN 0600 root bin 7214 61459 985675938
1 f none majordomo/log_parser.pl 0600 root bin 915 10574 985675938
1 f none majordomo/majordomo-lib.pl 0600 root bin 7990 19046 985675938
1 f none majordomo/module.info 0600 root bin 641 1509 985675938
1 f none majordomo/save_access.cgi 0700 root bin 1424 52044 985675938
1 f none majordomo/save_auto.cgi 0700 root bin 606 52904 985675938
1 f none majordomo/save_digest.cgi 0700 root bin 1128 30986 985675938
1 f none majordomo/save_global.cgi 0700 root bin 984 20011 985675938
1 f none majordomo/save_head.cgi 0700 root bin 654 56341 985675938
1 f none majordomo/save_info.cgi 0700 root bin 1261 38536 985675938
1 f none majordomo/save_members.cgi 0700 root bin 2138 46311 985675938
1 f none majordomo/save_mesg.cgi 0700 root bin 1280 43006 985675938
1 f none majordomo/save_misc.cgi 0700 root bin 694 59504 985675938
1 f none majordomo/save_subs.cgi 0700 root bin 2411 6039 985675938
1 f none majordomo/useradmin_update.pl 0600 root bin 1486 55287 985675938
1 d none man 0700 root bin
1 f none man/config-aix 0600 root bin 90 7607 985675951
1 f none man/config-cobalt-linux 0600 root bin 222 19664 985675951
1 f none man/config-corel-linux 0600 root bin 270 23876 985675951
1 f none man/config-debian-linux 0600 root bin 228 20242 985675951
1 f none man/config-freebsd 0600 root bin 93 7993 985675951
1 f none man/config-hpux 0600 root bin 129 11252 985675952
1 f none man/config-irix 0600 root bin 166 14909 985675951
1 f none man/config-lfs-linux 0600 root bin 205 18119 985675951
1 f none man/config-macos 0600 root bin 116 10194 985675951
1 f none man/config-open-linux 0600 root bin 307 27227 985675951
1 f none man/config-open-linux-3.1e 0600 root bin 444 40141 985675952
1 f none man/config-openbsd 0600 root bin 93 7993 985675951
1 f none man/config-redhat-linux 0600 root bin 301 26656 985675951
1 f none man/config-redhat-linux-7.0 0600 root bin 330 29395 985675952
1 f none man/config-redhat-linux-7.1 0600 root bin 330 29395 985675952
1 f none man/config-slackware-linux 0600 root bin 294 26209 985675951
1 f none man/config-solaris 0600 root bin 90 7607 985675951
1 f none man/config-suse-linux 0600 root bin 299 26817 985675951
1 f none man/config-suse-linux-7.1 0600 root bin 341 30725 985675952
1 f none man/config-turbo-linux 0600 root bin 354 31875 985675951
1 f none man/config.info 0600 root bin 550 50869 985675951
1 f none man/config.info.de 0600 root bin 213 19557 985675951
1 f none man/config.info.es 0600 root bin 636 60205 985675951
1 f none man/config.info.fr 0600 root bin 211 19478 985675951
1 f none man/config.info.hu 0600 root bin 248 25715 985675951
1 f none man/config.info.pl 0600 root bin 660 64899 985675952
1 f none man/config.info.ru_RU 0600 root bin 211 38368 985675952
1 f none man/config.info.ru_SU 0600 root bin 212 34234 985675951
1 f none man/config.info.sv 0600 root bin 602 58289 985675951
1 f none man/config.info.tr 0600 root bin 196 21161 985675952
1 f none man/config.info.zh_CN 0600 root bin 279 34641 985675951
1 f none man/config.info.zh_TW.Big5 0600 root bin 121 15874 985675951
1 d none man/help 0700 root bin
1 f none man/help/intro.es.html 0600 root bin 678 63931 985675951
1 f none man/help/intro.fr.html 0600 root bin 722 2084 985675951
1 f none man/help/intro.html 0600 root bin 622 56403 985675951
1 f none man/help/intro.hu.html 0600 root bin 780 12842 985675951
1 f none man/help/intro.pl.html 0600 root bin 662 693 985675951
1 f none man/help/intro.ru_RU.html 0600 root bin 624 54265 985675951
1 f none man/help/intro.ru_SU.html 0600 root bin 624 40190 985675951
1 f none man/help/intro.sv.html 0600 root bin 631 60934 985675951
1 d none man/images 0700 root bin
1 f none man/images/icon.gif 0600 root bin 1128 40241 985675951
1 f none man/index.cgi 0700 root bin 2084 42341 985675951
1 d none man/lang 0700 root bin
1 f none man/lang/de 0600 root bin 538 51129 985675951
1 f none man/lang/en 0600 root bin 1549 14850 985675951
1 f none man/lang/es 0600 root bin 1905 49953 985675951
1 f none man/lang/fr 0600 root bin 889 19966 985675951
1 f none man/lang/hu 0600 root bin 646 62878 985675951
1 f none man/lang/it 0600 root bin 555 52856 985675951
1 f none man/lang/pl 0600 root bin 1738 39260 985675951
1 f none man/lang/ru_RU 0600 root bin 499 15198 985675951
1 f none man/lang/ru_SU 0600 root bin 500 8622 985675951
1 f none man/lang/sv 0600 root bin 1570 23197 985675951
1 f none man/lang/tr 0600 root bin 535 57266 985675951
1 f none man/lang/zh_CN 0600 root bin 412 56268 985675951
1 f none man/lang/zh_TW.Big5 0600 root bin 376 45036 985675951
1 f none man/man-lib.pl 0600 root bin 396 29842 985675951
1 f none man/module.info 0600 root bin 536 57918 985675951
1 f none man/search.cgi 0700 root bin 8254 8218 985675951
1 f none man/view_doc.cgi 0700 root bin 1486 48851 985675952
1 f none man/view_howto.cgi 0700 root bin 1087 19683 985675952
1 f none man/view_kde.cgi 0700 root bin 1533 53458 985675952
1 f none man/view_kernel.cgi 0700 root bin 1493 50222 985675952
1 f none man/view_man.cgi 0700 root bin 1990 16010 985675952
1 f none man/view_perl.cgi 0700 root bin 708 56176 985675952
1 f none mime.types 0700 root bin 3567 47661 985675910
1 f none miniserv.pem 0600 root bin 974 11791 985675910
1 f none miniserv.pl 0700 root bin 45551 25051 985675910
1 d none mount 0700 root bin
1 f none mount/^1 0600 root bin 0 0 985675917
1 f none mount/cobalt-linux-lib.pl 0700 root bin 56388 2308 985675916
1 f none mount/config-cobalt-linux 0600 root bin 87 8555 985675917
1 f none mount/config-corel-linux 0600 root bin 114 11127 985675917
1 f none mount/config-debian-linux 0600 root bin 98 9578 985675916
1 f none mount/config-freebsd 0600 root bin 126 12305 985675916
1 f none mount/config-hpux 0600 root bin 126 12305 985675916
1 f none mount/config-irix 0600 root bin 129 12421 985675916
1 f none mount/config-lfs-linux 0600 root bin 108 10361 985675917
1 f none mount/config-open-linux 0600 root bin 112 10809 985675917
1 f none mount/config-openbsd 0600 root bin 126 12305 985675916
1 f none mount/config-osf1 0600 root bin 184 17769 985675916
1 f none mount/config-redhat-linux 0600 root bin 116 11322 985675916
1 f none mount/config-redhat-linux-5.0 0600 root bin 145 14111 985675916
1 f none mount/config-redhat-linux-5.1 0600 root bin 145 14111 985675916
1 f none mount/config-redhat-linux-5.2 0600 root bin 145 14111 985675916
1 f none mount/config-redhat-linux-6.0 0600 root bin 145 14111 985675916
1 f none mount/config-redhat-linux-6.1 0600 root bin 140 13551 985675917
1 f none mount/config-redhat-linux-6.2 0600 root bin 140 13551 985675917
1 f none mount/config-redhat-linux-7.0 0600 root bin 140 13551 985675917
1 f none mount/config-redhat-linux-7.1 0600 root bin 140 13551 985675917
1 f none mount/config-slackware-linux 0600 root bin 87 8555 985675916
1 f none mount/config-solaris 0600 root bin 159 15377 985675916
1 f none mount/config-suse-linux 0600 root bin 116 11344 985675916
1 f none mount/config-turbo-linux 0600 root bin 145 14111 985675917
1 f none mount/config-turbo-linux-4.0 0600 root bin 145 14111 985675917
1 f none mount/config-unixware 0600 root bin 159 15377 985675916
1 f none mount/config.info 0600 root bin 339 31828 985675916
1 f none mount/config.info.de 0600 root bin 367 34415 985675916
1 f none mount/config.info.es 0600 root bin 429 40239 985675916
1 f none mount/config.info.fr 0600 root bin 392 37181 985675917
1 f none mount/config.info.pl 0600 root bin 453 45018 985675917
1 f none mount/config.info.ru_RU 0600 root bin 381 59990 985675917
1 f none mount/config.info.ru_SU 0600 root bin 381 54867 985675917
1 f none mount/config.info.sv 0600 root bin 358 35344 985675917
1 f none mount/config.info.tr 0600 root bin 390 39377 985675917
1 f none mount/config.info.zh_CN 0600 root bin 295 38884 985675917
1 f none mount/config.info.zh_TW.Big5 0600 root bin 337 42208 985675917
1 f none mount/corel-linux-lib.pl 0700 root bin 56388 2308 985675916
1 f none mount/create_swap.cgi 0700 root bin 434 38055 985675916
1 f none mount/debian-linux-lib.pl 0700 root bin 56388 2308 985675916
1 f none mount/edit_mount.cgi 0700 root bin 6402 57854 985675916
1 f none mount/freebsd-lib.pl 0700 root bin 26851 13178 985675916
1 f none mount/freebsd-mounts-2 0700 root bin 8917 52409 985675916
1 f none mount/freebsd-mounts-2.c 0600 root bin 1319 37901 985675917
1 f none mount/freebsd-mounts-3 0700 root bin 4713 741 985675916
1 f none mount/freebsd-mounts-3.c 0400 root bin 1262 35294 985675917
1 f none mount/freebsd-mounts-4 0700 root bin 4878 11027 985675917
1 f none mount/freebsd-mounts-4.c 0400 root bin 1262 35294 985675917
1 d none mount/help 0700 root bin
1 f none mount/help/help.html 0600 root bin 20595 60265 985675916
1 f none mount/help/help.sv.html 0600 root bin 20704 35176 985675916
1 f none mount/help/help.zh_TW.Big5.html 0600 root bin 14675 50356 985675916
1 f none mount/hpux-lib.pl 0600 root bin 36759 49266 985675916
1 d none mount/images 0700 root bin
1 f none mount/images/auto.gif 0600 root bin 2248 19392 985675916
1 f none mount/images/autofs.gif 0600 root bin 2248 19392 985675916
1 f none mount/images/cachefs.gif 0600 root bin 2336 3570 985675916
1 f none mount/images/ext.gif 0600 root bin 2016 34725 985675916
1 f none mount/images/ext2.gif 0600 root bin 2016 34725 985675916
1 f none mount/images/fat.gif 0600 root bin 2291 51542 985675916
1 f none mount/images/hpfs.gif 0600 root bin 2016 34725 985675916
1 f none mount/images/hsfs.gif 0600 root bin 1591 15553 985675916
1 f none mount/images/icon.gif 0600 root bin 345 37063 985675916
1 f none mount/images/iso9660.gif 0600 root bin 1591 15553 985675916
1 f none mount/images/lofs.gif 0600 root bin 1219 43674 985675916
1 f none mount/images/minix.gif 0600 root bin 2016 34725 985675916
1 f none mount/images/msdos.gif 0600 root bin 2291 51542 985675916
1 f none mount/images/nfs.gif 0600 root bin 1565 51055 985675916
1 f none mount/images/pcfs.gif 0600 root bin 2291 51542 985675916
1 f none mount/images/reiserfs.gif 0600 root bin 2016 34725 985675916
1 f none mount/images/rumba.gif 0600 root bin 1898 34077 985675916
1 f none mount/images/smbfs.gif 0600 root bin 1898 34077 985675916
1 f none mount/images/star.gif 0600 root bin 2100 58961 985675916
1 f none mount/images/swap.gif 0600 root bin 2427 23882 985675916
1 f none mount/images/sysv.gif 0600 root bin 2016 34725 985675916
1 f none mount/images/tmpfs.gif 0600 root bin 2462 26131 985675916
1 f none mount/images/udfs.gif 0600 root bin 1685 3476 985675916
1 f none mount/images/ufs.gif 0600 root bin 2016 34725 985675916
1 f none mount/images/umsdos.gif 0600 root bin 2291 51542 985675916
1 f none mount/images/vfat.gif 0600 root bin 2291 51542 985675916
1 f none mount/images/xmemfs.gif 0600 root bin 2462 26131 985675916
1 f none mount/index.cgi 0700 root bin 3445 6030 985675916
1 f none mount/irix-lib.pl 0600 root bin 49762 40174 985675916
1 d none mount/lang 0700 root bin
1 f none mount/lang/de 0600 root bin 12044 18428 985675916
1 f none mount/lang/en 0600 root bin 11034 48054 985675916
1 f none mount/lang/es 0600 root bin 12600 21232 985675916
1 f none mount/lang/fr 0600 root bin 12074 58190 985675916
1 f none mount/lang/hu 0600 root bin 11437 5717 985675916
1 f none mount/lang/pl 0600 root bin 12268 27363 985675916
1 f none mount/lang/ru_RU 0600 root bin 11526 17763 985675916
1 f none mount/lang/ru_SU 0600 root bin 11534 57108 985675916
1 f none mount/lang/sv 0600 root bin 11681 18981 985675916
1 f none mount/lang/tr 0600 root bin 11730 20033 985675916
1 f none mount/lang/zh_CN 0600 root bin 9072 23460 985675916
1 f none mount/lang/zh_TW.Big5 0600 root bin 8737 30772 985675916
1 f none mount/lfs-linux-lib.pl 0700 root bin 56388 2308 985675917
1 f none mount/linux-lib.pl 0700 root bin 56388 2308 985675916
1 f none mount/log_parser.pl 0600 root bin 484 41180 985675917
1 f none mount/low.risk 0600 root bin 24 2036 985675917
1 f none mount/low.skill 0600 root bin 65 6038 985675917
1 f none mount/medium.risk 0600 root bin 11 971 985675917
1 f none mount/medium.skill 0600 root bin 41 3795 985675917
1 f none mount/module.info 0600 root bin 736 15168 985675916
1 f none mount/mount-lib.pl 0600 root bin 4370 39384 985675916
1 f none mount/nfs_export.cgi 0700 root bin 1001 14500 985675916
1 f none mount/nfs_server.cgi 0700 root bin 1784 8245 985675916
1 f none mount/open-linux-lib.pl 0700 root bin 56388 2308 985675916
1 f none mount/openbsd-lib.pl 0700 root bin 23818 27750 985675917
1 f none mount/openbsd-mounts-2 0700 root bin 25634 27408 985675917
1 f none mount/openbsd-mounts-2.c 0600 root bin 1058 19310 985675917
1 f none mount/osf1-lib.pl 0600 root bin 49514 21113 985675916
1 f none mount/redhat-linux-lib.pl 0700 root bin 56388 2308 985675917
1 f none mount/save_mount.cgi 0700 root bin 12732 921 985675916
1 f none mount/slackware-linux-lib.pl 0700 root bin 56388 2308 985675917
1 f none mount/smb_server.cgi 0700 root bin 1484 52891 985675916
1 f none mount/smb_share.cgi 0700 root bin 1411 43874 985675916
1 f none mount/solaris-lib.pl 0600 root bin 57451 21951 985675916
1 f none mount/suse-linux-lib.pl 0700 root bin 56388 2308 985675917
1 f none mount/turbo-linux-lib.pl 0700 root bin 56388 2308 985675917
1 f none mount/unixware-lib.pl 0700 root bin 57528 55609 985675916
1 d none mysql 0700 root bin
1 f none mysql/acl_security.pl 0600 root bin 3367 12995 985675950
1 f none mysql/backup_db.cgi 0700 root bin 1363 46972 985675945
1 f none mysql/backup_form.cgi 0700 root bin 1632 6848 985675945
1 f none mysql/config 0600 root bin 292 27733 985675950
1 f none mysql/config-aix 0600 root bin 246 23434 985675950
1 f none mysql/config-cobalt-linux 0600 root bin 228 21570 985675950
1 f none mysql/config-debian-linux 0600 root bin 201 18771 985675950
1 f none mysql/config-debian-linux-2.2 0600 root bin 272 25124 985675950
1 f none mysql/config-freebsd 0600 root bin 246 23434 985675950
1 f none mysql/config-open-linux 0600 root bin 228 21570 985675950
1 f none mysql/config-redhat-linux 0600 root bin 228 21570 985675950
1 f none mysql/config-redhat-linux-7.0 0600 root bin 230 21770 985675951
1 f none mysql/config-redhat-linux-7.1 0600 root bin 230 21770 985675950
1 f none mysql/config-suse-linux 0600 root bin 220 20982 985675950
1 f none mysql/config-suse-linux-7.1 0600 root bin 218 20758 985675950
1 f none mysql/config-turbo-linux 0600 root bin 228 21570 985675950
1 f none mysql/config.info 0600 root bin 585 53839 985675944
1 f none mysql/config.info.de 0600 root bin 370 34444 985675950
1 f none mysql/config.info.es 0600 root bin 434 41525 985675950
1 f none mysql/config.info.hu 0600 root bin 406 41801 985675951
1 f none mysql/config.info.pl 0600 root bin 727 4677 985675950
1 f none mysql/config.info.sv 0600 root bin 657 64427 985675950
1 f none mysql/config.info.tr 0600 root bin 374 38254 985675950
1 f none mysql/config.info.zh_CN 0600 root bin 262 36389 985675950
1 f none mysql/config.info.zh_TW.Big5 0600 root bin 306 39265 985675950
1 f none mysql/create_table.cgi 0700 root bin 1237 32382 985675945
1 f none mysql/defaultacl 0600 root bin 58 4879 985675950
1 f none mysql/drop_dbase.cgi 0700 root bin 1103 24742 985675950
1 f none mysql/drop_table.cgi 0700 root bin 1123 27463 985675946
1 f none mysql/edit_cpriv.cgi 0700 root bin 2886 39790 985675950
1 f none mysql/edit_db.cgi 0700 root bin 2584 11387 985675945
1 f none mysql/edit_dbase.cgi 0700 root bin 2182 49005 985675945
1 f none mysql/edit_field.cgi 0700 root bin 5239 32084 985675945
1 f none mysql/edit_host.cgi 0700 root bin 2124 40222 985675946
1 f none mysql/edit_table.cgi 0700 root bin 2377 64523 985675945
1 f none mysql/edit_tpriv.cgi 0700 root bin 3010 49194 985675950
1 f none mysql/edit_user.cgi 0700 root bin 2499 7461 985675946
1 f none mysql/exec.cgi 0700 root bin 884 4423 985675950
1 f none mysql/exec_file.cgi 0600 root bin 1154 28046 985675950
1 f none mysql/exec_form.cgi 0700 root bin 1258 41103 985675950
1 d none mysql/help 0700 root bin
1 f none mysql/help/backup_form.html 0600 root bin 504 45475 985675950
1 f none mysql/help/cpriv.es.html 0600 root bin 489 43613 985675947
1 f none mysql/help/cpriv.html 0600 root bin 448 39427 985675947
1 f none mysql/help/cpriv.sv.html 0600 root bin 397 38237 985675949
1 f none mysql/help/cpriv.zh_TW.Big5.html 0600 root bin 291 38621 985675948
1 f none mysql/help/cprivs.es.html 0600 root bin 614 56877 985675947
1 f none mysql/help/cprivs.html 0600 root bin 547 49639 985675947
1 f none mysql/help/cprivs.sv.html 0600 root bin 516 51616 985675949
1 f none mysql/help/cprivs.zh_TW.Big5.html 0600 root bin 321 49054 985675948
1 f none mysql/help/create_cpriv.es.html 0600 root bin 277 25477 985675947
1 f none mysql/help/create_cpriv.html 0600 root bin 248 22493 985675947
1 f none mysql/help/create_cpriv.sv.html 0600 root bin 235 23183 985675949
1 f none mysql/help/create_cpriv.zh_TW.Big5.html 0600 root bin 159 21475 985675948
1 f none mysql/help/create_db.es.html 0600 root bin 305 27752 985675947
1 f none mysql/help/create_db.html 0600 root bin 254 23041 985675947
1 f none mysql/help/create_db.sv.html 0600 root bin 240 23359 985675949
1 f none mysql/help/create_db.zh_TW.Big5.html 0600 root bin 160 21495 985675948
1 f none mysql/help/create_field.es.html 0600 root bin 277 25440 985675948
1 f none mysql/help/create_field.html 0600 root bin 244 21435 985675947
1 f none mysql/help/create_field.sv.html 0600 root bin 245 23461 985675949
1 f none mysql/help/create_field.zh_TW.Big5.html 0600 root bin 170 23472 985675948
1 f none mysql/help/create_tpriv.es.html 0600 root bin 285 26057 985675948
1 f none mysql/help/create_tpriv.html 0600 root bin 248 22505 985675947
1 f none mysql/help/create_tpriv.sv.html 0600 root bin 238 23269 985675949
1 f none mysql/help/create_tpriv.zh_TW.Big5.html 0600 root bin 159 21706 985675948
1 f none mysql/help/create_user.es.html 0600 root bin 251 22665 985675948
1 f none mysql/help/create_user.html 0600 root bin 210 18467 985675947
1 f none mysql/help/create_user.sv.html 0600 root bin 221 21084 985675949
1 f none mysql/help/create_user.zh_TW.Big5.html 0600 root bin 162 21963 985675948
1 f none mysql/help/db.es.html 0600 root bin 749 622 985675948
1 f none mysql/help/db.html 0600 root bin 628 54715 985675947
1 f none mysql/help/db.sv.html 0600 root bin 620 58726 985675949
1 f none mysql/help/db.zh_TW.Big5.html 0600 root bin 435 57249 985675948
1 f none mysql/help/dbs.es.html 0600 root bin 551 51695 985675948
1 f none mysql/help/dbs.html 0600 root bin 486 44736 985675947
1 f none mysql/help/dbs.sv.html 0600 root bin 469 46295 985675949
1 f none mysql/help/dbs.zh_TW.Big5.html 0600 root bin 357 52733 985675948
1 f none mysql/help/edit_cpriv.es.html 0600 root bin 343 31359 985675948
1 f none mysql/help/edit_cpriv.html 0600 root bin 309 27736 985675947
1 f none mysql/help/edit_cpriv.sv.html 0600 root bin 296 29033 985675949
1 f none mysql/help/edit_cpriv.zh_TW.Big5.html 0600 root bin 216 28715 985675948
1 f none mysql/help/edit_db.es.html 0600 root bin 359 32777 985675948
1 f none mysql/help/edit_db.html 0600 root bin 310 27848 985675947
1 f none mysql/help/edit_db.sv.html 0600 root bin 296 28897 985675950
1 f none mysql/help/edit_db.zh_TW.Big5.html 0600 root bin 216 28865 985675948
1 f none mysql/help/edit_dbase.es.html 0600 root bin 506 45361 985675948
1 f none mysql/help/edit_dbase.html 0600 root bin 423 37518 985675947
1 f none mysql/help/edit_dbase.sv.html 0600 root bin 446 42636 985675950
1 f none mysql/help/edit_dbase.zh_TW.Big5.html 0600 root bin 304 45974 985675949
1 f none mysql/help/edit_field.es.html 0600 root bin 398 36390 985675948
1 f none mysql/help/edit_field.html 0600 root bin 358 31732 985675947
1 f none mysql/help/edit_field.sv.html 0600 root bin 316 30510 985675950
1 f none mysql/help/edit_field.zh_TW.Big5.html 0600 root bin 258 36839 985675949
1 f none mysql/help/edit_table.es.html 0600 root bin 623 57042 985675948
1 f none mysql/help/edit_table.html 0600 root bin 549 49176 985675947
1 f none mysql/help/edit_table.sv.html 0600 root bin 532 51846 985675950
1 f none mysql/help/edit_table.zh_TW.Big5.html 0600 root bin 372 57953 985675949
1 f none mysql/help/edit_tpriv.es.html 0600 root bin 356 32666 985675948
1 f none mysql/help/edit_tpriv.html 0600 root bin 308 27623 985675947
1 f none mysql/help/edit_tpriv.sv.html 0600 root bin 298 29090 985675950
1 f none mysql/help/edit_tpriv.zh_TW.Big5.html 0600 root bin 220 29470 985675949
1 f none mysql/help/edit_user.es.html 0600 root bin 303 27196 985675948
1 f none mysql/help/edit_user.html 0600 root bin 268 23530 985675947
1 f none mysql/help/edit_user.sv.html 0600 root bin 271 26174 985675950
1 f none mysql/help/edit_user.zh_TW.Big5.html 0600 root bin 213 27268 985675949
1 f none mysql/help/exec_form.es.html 0600 root bin 260 24162 985675948
1 f none mysql/help/exec_form.html 0600 root bin 203 18090 985675947
1 f none mysql/help/exec_form.sv.html 0600 root bin 215 20241 985675950
1 f none mysql/help/exec_form.zh_TW.Big5.html 0600 root bin 180 22733 985675949
1 f none mysql/help/field.es.html 0600 root bin 983 22252 985675948
1 f none mysql/help/field.html 0600 root bin 904 14001 985675947
1 f none mysql/help/field.sv.html 0600 root bin 883 18208 985675950
1 f none mysql/help/field.zh_TW.Big5.html 0600 root bin 632 18126 985675949
1 f none mysql/help/intro.es.html 0600 root bin 837 11714 985675948
1 f none mysql/help/intro.html 0600 root bin 699 63800 985675947
1 f none mysql/help/intro.sv.html 0600 root bin 715 4207 985675950
1 f none mysql/help/intro.zh_TW.Big5.html 0600 root bin 484 5331 985675949
1 f none mysql/help/newdb_form.es.html 0600 root bin 393 35129 985675948
1 f none mysql/help/newdb_form.html 0600 root bin 344 30615 985675947
1 f none mysql/help/newdb_form.sv.html 0600 root bin 292 27182 985675950
1 f none mysql/help/newdb_form.zh_TW.Big5.html 0600 root bin 249 37472 985675949
1 f none mysql/help/table_form.es.html 0600 root bin 393 35354 985675948
1 f none mysql/help/table_form.html 0600 root bin 345 30464 985675947
1 f none mysql/help/table_form.sv.html 0600 root bin 306 28850 985675950
1 f none mysql/help/table_form.zh_TW.Big5.html 0600 root bin 256 38915 985675949
1 f none mysql/help/tpriv.es.html 0600 root bin 664 59256 985675948
1 f none mysql/help/tpriv.html 0600 root bin 614 54166 985675947
1 f none mysql/help/tpriv.sv.html 0600 root bin 526 51452 985675950
1 f none mysql/help/tpriv.zh_TW.Big5.html 0600 root bin 410 56879 985675949
1 f none mysql/help/tprivs.es.html 0600 root bin 687 63607 985675948
1 f none mysql/help/tprivs.html 0600 root bin 595 54084 985675947
1 f none mysql/help/tprivs.sv.html 0600 root bin 550 54119 985675950
1 f none mysql/help/tprivs.zh_TW.Big5.html 0600 root bin 351 52647 985675949
1 f none mysql/help/user.es.html 0600 root bin 923 16990 985675948
1 f none mysql/help/user.html 0600 root bin 787 2723 985675947
1 f none mysql/help/user.sv.html 0600 root bin 792 8332 985675950
1 f none mysql/help/user.zh_TW.Big5.html 0600 root bin 532 3731 985675949
1 f none mysql/help/users.es.html 0600 root bin 637 58558 985675948
1 f none mysql/help/users.html 0600 root bin 549 49754 985675946
1 f none mysql/help/users.sv.html 0600 root bin 503 50304 985675950
1 f none mysql/help/users.zh_TW.Big5.html 0600 root bin 363 53693 985675949
1 d none mysql/images 0700 root bin
1 f none mysql/images/cprivs.gif 0600 root bin 399 49837 985675944
1 f none mysql/images/db.gif 0600 root bin 462 58683 985675944
1 f none mysql/images/dbs.gif 0600 root bin 507 62354 985675944
1 f none mysql/images/delete.gif 0600 root bin 66 4724 985675944
1 f none mysql/images/edit.gif 0600 root bin 60 4152 985675944
1 f none mysql/images/hosts.gif 0600 root bin 412 49712 985675944
1 f none mysql/images/icon.gif 0600 root bin 775 18305 985675944
1 f none mysql/images/mysql.gif 0600 root bin 2371 12001 985675944
1 f none mysql/images/table.gif 0600 root bin 366 49508 985675944
1 f none mysql/images/tprivs.gif 0600 root bin 447 56041 985675944
1 f none mysql/images/users.gif 0600 root bin 293 35470 985675944
1 f none mysql/index.cgi 0700 root bin 3731 37730 985675944
1 d none mysql/lang 0700 root bin
1 f none mysql/lang/de 0600 root bin 11006 57984 985675944
1 f none mysql/lang/en 0600 root bin 13898 49557 985675944
1 f none mysql/lang/es 0600 root bin 14150 17089 985675944
1 f none mysql/lang/he 0600 root bin 11465 41092 985675945
1 f none mysql/lang/hu 0600 root bin 14558 4358 985675945
1 f none mysql/lang/it 0600 root bin 8843 51862 985675945
1 f none mysql/lang/pl 0600 root bin 14336 3752 985675945
1 f none mysql/lang/sv 0600 root bin 15345 54199 985675945
1 f none mysql/lang/tr 0600 root bin 12492 46721 985675945
1 f none mysql/lang/zh_CN 0600 root bin 8824 54943 985675945
1 f none mysql/lang/zh_TW.Big5 0600 root bin 7355 35187 985675944
1 f none mysql/list_cprivs.cgi 0700 root bin 1650 63935 985675950
1 f none mysql/list_dbs.cgi 0700 root bin 1390 41550 985675946
1 f none mysql/list_hosts.cgi 0700 root bin 1277 34254 985675946
1 f none mysql/list_tprivs.cgi 0700 root bin 1680 563 985675950
1 f none mysql/list_users.cgi 0700 root bin 1220 30123 985675946
1 f none mysql/log_parser.pl 0600 root bin 2028 28297 985675950
1 f none mysql/login.cgi 0700 root bin 476 41106 985675945
1 f none mysql/module.info 0600 root bin 346 34065 985675944
1 f none mysql/mysql-lib.pl 0600 root bin 4695 33342 985675944
1 f none mysql/newdb.cgi 0700 root bin 1229 31941 985675950
1 f none mysql/newdb_form.cgi 0700 root bin 1536 61776 985675950
1 f none mysql/save_cpriv.cgi 0700 root bin 2713 12317 985675950
1 f none mysql/save_db.cgi 0700 root bin 2659 1782 985675946
1 f none mysql/save_field.cgi 0700 root bin 3014 42401 985675945
1 f none mysql/save_host.cgi 0700 root bin 2226 38196 985675946
1 f none mysql/save_tpriv.cgi 0700 root bin 2614 5245 985675950
1 f none mysql/save_user.cgi 0700 root bin 2371 49096 985675946
1 f none mysql/start.cgi 0700 root bin 335 27452 985675944
1 f none mysql/stop.cgi 0700 root bin 378 31294 985675944
1 f none mysql/table_form.cgi 0700 root bin 1726 11157 985675945
1 f none mysql/view_table.cgi 0700 root bin 8718 15571 985675945
1 d none net 0700 root bin
1 f none net/cobalt-linux-lib.pl 0600 root bin 13217 5171 985675937
1 f none net/config-cobalt-linux 0600 root bin 22 2114 985675937
1 f none net/config-debian-linux 0600 root bin 22 2114 985675937
1 f none net/config-freebsd 0600 root bin 22 2114 985675937
1 f none net/config-lfs-linux 0600 root bin 22 2114 985675937
1 f none net/config-open-linux 0600 root bin 22 2114 985675937
1 f none net/config-openbsd 0600 root bin 22 2114 985675937
1 f none net/config-redhat-linux 0600 root bin 22 2114 985675937
1 f none net/config-solaris 0600 root bin 22 2114 985675937
1 f none net/config-suse-linux 0600 root bin 22 2114 985675937
1 f none net/config-turbo-linux 0600 root bin 22 2114 985675937
1 f none net/config-unixware 0600 root bin 22 2114 985675937
1 f none net/config.info 0600 root bin 46 4335 985675937
1 f none net/config.info.de 0600 root bin 64 5979 985675937
1 f none net/config.info.es 0600 root bin 61 5919 985675937
1 f none net/config.info.fr 0600 root bin 52 4872 985675937
1 f none net/config.info.pl 0600 root bin 71 6775 985675937
1 f none net/config.info.ru_RU 0600 root bin 46 7727 985675937
1 f none net/config.info.ru_SU 0600 root bin 46 6970 985675937
1 f none net/config.info.sv 0600 root bin 42 3880 985675937
1 f none net/config.info.tr 0600 root bin 62 6401 985675937
1 f none net/config.info.zh_CN 0600 root bin 34 5205 985675937
1 f none net/config.info.zh_TW.Big5 0600 root bin 34 4644 985675937
1 f none net/debian-linux-lib.pl 0600 root bin 15035 12592 985675937
1 f none net/edit_aifc.cgi 0700 root bin 3862 46927 985675937
1 f none net/edit_bifc.cgi 0700 root bin 4039 57238 985675937
1 f none net/edit_dns.cgi 0700 root bin 1383 50228 985675937
1 f none net/edit_host.cgi 0700 root bin 1251 40146 985675937
1 f none net/freebsd-lib.pl 0600 root bin 10692 49092 985675937
1 d none net/images 0700 root bin
1 f none net/images/dns.gif 0600 root bin 374 42949 985675937
1 f none net/images/hosts.gif 0600 root bin 307 35512 985675937
1 f none net/images/icon.gif 0600 root bin 364 43854 985675937
1 f none net/images/ifcs.gif 0600 root bin 362 38137 985675937
1 f none net/images/routes.gif 0600 root bin 315 37774 985675937
1 f none net/index.cgi 0700 root bin 548 45381 985675937
1 d none net/lang 0700 root bin
1 f none net/lang/de 0600 root bin 3586 9914 985675937
1 f none net/lang/en 0600 root bin 3657 14104 985675937
1 f none net/lang/es 0600 root bin 4062 61676 985675937
1 f none net/lang/fr 0600 root bin 3415 2281 985675937
1 f none net/lang/pl 0600 root bin 3917 53919 985675937
1 f none net/lang/pt 0600 root bin 3304 58301 985675937
1 f none net/lang/ru_RU 0600 root bin 3446 57843 985675937
1 f none net/lang/ru_SU 0600 root bin 3452 4421 985675937
1 f none net/lang/sv 0600 root bin 3932 52301 985675937
1 f none net/lang/tr 0600 root bin 3874 4207 985675937
1 f none net/lang/zh_CN 0600 root bin 2830 62336 985675937
1 f none net/lang/zh_TW.Big5 0600 root bin 2605 8615 985675937
1 f none net/list_hosts.cgi 0700 root bin 643 52230 985675937
1 f none net/list_ifcs.cgi 0700 root bin 2641 6742 985675937
1 f none net/list_routes.cgi 0700 root bin 505 43101 985675937
1 f none net/log_parser.pl 0600 root bin 732 61293 985675937
1 f none net/module.info 0600 root bin 784 12466 985675937
1 f none net/net-lib.pl 0600 root bin 1271 33644 985675937
1 f none net/open-linux-lib.pl 0600 root bin 10773 5857 985675937
1 f none net/openbsd-lib.pl 0600 root bin 12820 19815 985675937
1 f none net/redhat-linux-lib.pl 0600 root bin 13217 5171 985675937
1 f none net/save_aifc.cgi 0700 root bin 2634 5838 985675937
1 f none net/save_bifc.cgi 0700 root bin 2753 14743 985675937
1 f none net/save_dns.cgi 0700 root bin 861 3486 985675937
1 f none net/save_host.cgi 0700 root bin 1087 21481 985675937
1 f none net/save_routes.cgi 0700 root bin 230 19890 985675937
1 f none net/slackware-linux-lib.pl 0600 root bin 2441 60195 985675937
1 f none net/solaris-lib.pl 0600 root bin 10135 1542 985675937
1 f none net/suse-linux-lib.pl 0600 root bin 15271 5916 985675937
1 f none net/turbo-linux-lib.pl 0600 root bin 13217 5171 985675937
1 f none net/unixware-lib.pl 0600 root bin 10166 4074 985675937
1 f none newmods.pl 0700 root bin 582 42068 985675910
1 d none nis 0700 root bin
1 f none nis/config-debian-linux 0600 root bin 139 13437 985675966
1 f none nis/config-open-linux 0600 root bin 136 13100 985675966
1 f none nis/config-redhat-linux 0600 root bin 135 13003 985675966
1 f none nis/config-solaris 0600 root bin 139 13629 985675966
1 f none nis/config-solaris-8 0600 root bin 171 16817 985675966
1 f none nis/config-suse-linux 0600 root bin 135 13003 985675967
1 f none nis/config.info 0600 root bin 154 14377 985675966
1 f none nis/config.info.pl 0600 root bin 181 17381 985675966
1 f none nis/config.info.sv 0600 root bin 163 16195 985675967
1 f none nis/debian-linux-lib.pl 0600 root bin 13364 22652 985675966
1 f none nis/edit_aliases.cgi 0600 root bin 1193 35204 985675966
1 f none nis/edit_client.cgi 0700 root bin 1302 44469 985675966
1 f none nis/edit_ethers.cgi 0600 root bin 1128 29952 985675966
1 f none nis/edit_group.cgi 0600 root bin 1812 22404 985675966
1 f none nis/edit_group_shadow.cgi 0600 root bin 1838 24911 985675966
1 f none nis/edit_hosts.cgi 0600 root bin 1302 44266 985675966
1 f none nis/edit_netgroup.cgi 0600 root bin 2020 31896 985675966
1 f none nis/edit_netmasks.cgi 0600 root bin 1152 32604 985675966
1 f none nis/edit_networks.cgi 0600 root bin 1341 48582 985675966
1 f none nis/edit_passwd.cgi 0600 root bin 4861 3812 985675966
1 f none nis/edit_passwd_shadow.cgi 0600 root bin 4861 3812 985675966
1 f none nis/edit_passwd_shadow_full.cgi 0600 root bin 4861 3812 985675966
1 f none nis/edit_protocols.cgi 0600 root bin 1341 48878 985675966
1 f none nis/edit_rpc.cgi 0600 root bin 1289 42635 985675966
1 f none nis/edit_security.cgi 0700 root bin 1809 8328 985675967
1 f none nis/edit_server.cgi 0600 root bin 604 50433 985675966
1 f none nis/edit_services.cgi 0600 root bin 1516 61978 985675966
1 f none nis/edit_services2.cgi 0600 root bin 1518 62006 985675966
1 f none nis/edit_switch.cgi 0600 root bin 1672 60660 985675966
1 f none nis/edit_tables.cgi 0600 root bin 4866 49224 985675966
1 d none nis/images 0700 root bin
1 f none nis/images/client.gif 0600 root bin 272 33549 985675966
1 f none nis/images/icon.gif 0600 root bin 413 46276 985675966
1 f none nis/images/security.gif 0600 root bin 275 34570 985675966
1 f none nis/images/server.gif 0600 root bin 415 48303 985675966
1 f none nis/images/switch.gif 0600 root bin 282 35935 985675966
1 f none nis/images/tables.gif 0600 root bin 366 49508 985675966
1 f none nis/index.cgi 0700 root bin 732 59520 985675966
1 d none nis/lang 0700 root bin
1 f none nis/lang/en 0600 root bin 8702 47130 985675966
1 f none nis/lang/pl 0600 root bin 9669 35625 985675966
1 f none nis/lang/sv 0600 root bin 9608 38854 985675966
1 f none nis/module.info 0600 root bin 207 19503 985675966
1 f none nis/nis-lib.pl 0600 root bin 7104 19413 985675966
1 f none nis/nisupdate.conf 0600 root bin 1982 36044 985675966
1 f none nis/old_edit_passwd_shadow.cgi 0600 root bin 4715 61163 985675966
1 f none nis/open-linux-lib.pl 0600 root bin 10943 12637 985675966
1 f none nis/redhat-linux-lib.pl 0600 root bin 13539 44306 985675966
1 f none nis/save_aliases.cgi 0600 root bin 725 58400 985675966
1 f none nis/save_client.cgi 0700 root bin 669 54815 985675966
1 f none nis/save_ethers.cgi 0600 root bin 738 60250 985675966
1 f none nis/save_file.cgi 0700 root bin 528 41922 985675966
1 f none nis/save_group.cgi 0600 root bin 915 6059 985675966
1 f none nis/save_group_shadow.cgi 0600 root bin 1034 15047 985675966
1 f none nis/save_hosts.cgi 0600 root bin 734 59763 985675966
1 f none nis/save_netgroup.cgi 0600 root bin 1046 16084 985675966
1 f none nis/save_netmasks.cgi 0600 root bin 729 60641 985675966
1 f none nis/save_networks.cgi 0600 root bin 767 63415 985675966
1 f none nis/save_passwd_shadow.cgi 0600 root bin 2436 58707 985675966
1 f none nis/save_protocols.cgi 0600 root bin 782 64802 985675966
1 f none nis/save_rpc.cgi 0600 root bin 722 58541 985675966
1 f none nis/save_security.cgi 0700 root bin 822 64446 985675967
1 f none nis/save_server.cgi 0700 root bin 190 16372 985675966
1 f none nis/save_services.cgi 0600 root bin 751 61732 985675966
1 f none nis/save_services2.cgi 0600 root bin 752 61782 985675966
1 f none nis/save_switch.cgi 0700 root bin 539 42772 985675966
1 f none nis/solaris-lib.pl 0600 root bin 9949 15296 985675966
1 f none nis/suse-linux-lib.pl 0600 root bin 15147 29370 985675967
1 f none os_list.txt 0600 root bin 6811 61286 985675910
1 f none oschooser.pl 0600 root bin 2673 9920 985675910
1 d none pam 0700 root bin
1 f none pam/config-cobalt-linux 0600 root bin 251 24204 985675966
1 f none pam/config-corel-linux 0600 root bin 240 23294 985675966
1 f none pam/config-debian-linux 0600 root bin 240 23294 985675966
1 f none pam/config-open-linux 0600 root bin 240 23294 985675966
1 f none pam/config-redhat-linux 0600 root bin 240 23294 985675966
1 f none pam/config-suse-linux 0600 root bin 240 23432 985675966
1 f none pam/config-turbo-linux 0600 root bin 240 23294 985675966
1 f none pam/config.info 0600 root bin 163 15043 985675965
1 f none pam/config.info.es 0600 root bin 181 16914 985675966
1 f none pam/config.info.pl 0600 root bin 157 14745 985675966
1 f none pam/config.info.sv 0600 root bin 173 16230 985675966
1 f none pam/create_form.cgi 0700 root bin 1014 20589 985675966
1 f none pam/create_pam.cgi 0700 root bin 1780 1412 985675966
1 f none pam/delete_pam.cgi 0700 root bin 286 23041 985675966
1 f none pam/edit_mod.cgi 0700 root bin 2570 8123 985675966
1 f none pam/edit_pam.cgi 0700 root bin 2919 29884 985675966
1 d none pam/images 0700 root bin
1 f none pam/images/down.gif 0600 root bin 108 8892 985675965
1 f none pam/images/gap.gif 0600 root bin 73 6048 985675965
1 f none pam/images/icon.gif 0600 root bin 275 34570 985675965
1 f none pam/images/up.gif 0600 root bin 103 9086 985675965
1 f none pam/index.cgi 0700 root bin 1195 28713 985675965
1 d none pam/lang 0700 root bin
1 f none pam/lang/en 0600 root bin 7995 38826 985675965
1 f none pam/lang/es 0600 root bin 8206 4497 985675965
1 f none pam/lang/fr 0600 root bin 8900 13379 985675965
1 f none pam/lang/pl 0600 root bin 8488 55581 985675965
1 f none pam/lang/sv 0600 root bin 8316 40678 985675965
1 f none pam/log_parser.pl 0600 root bin 759 61157 985675966
1 f none pam/module.info 0600 root bin 241 22960 985675965
1 f none pam/move.cgi 0700 root bin 592 46501 985675966
1 f none pam/pam-lib.pl 0600 root bin 2773 19689 985675965
1 f none pam/pam_cracklib.so.pl 0600 root bin 1156 31546 985675966
1 f none pam/pam_deny.so.pl 0600 root bin 51 4181 985675966
1 f none pam/pam_env.so.pl 0600 root bin 1600 55957 985675966
1 f none pam/pam_filter.so.pl 0600 root bin 53 4395 985675966
1 f none pam/pam_group.so.pl 0600 root bin 1585 60372 985675966
1 f none pam/pam_listfile.so.pl 0600 root bin 2286 56346 985675966
1 f none pam/pam_mail.so.pl 0600 root bin 2177 46694 985675966
1 f none pam/pam_motd.so.pl 0600 root bin 770 63947 985675966
1 f none pam/pam_nologin.so.pl 0600 root bin 54 4507 985675966
1 f none pam/pam_permit.so.pl 0600 root bin 53 4406 985675966
1 f none pam/pam_pwdb.so.pl 0600 root bin 1678 6370 985675966
1 f none pam/pam_rhosts_auth.so.pl 0600 root bin 1773 19801 985675966
1 f none pam/pam_rootok.so.pl 0600 root bin 53 4419 985675966
1 f none pam/pam_securetty.so.pl 0600 root bin 603 51028 985675966
1 f none pam/pam_shells.so.pl 0600 root bin 601 50548 985675966
1 f none pam/pam_stack.so.pl 0600 root bin 714 58222 985675966
1 f none pam/pam_tally.so.pl 0600 root bin 2121 44967 985675966
1 f none pam/pam_time.so.pl 0600 root bin 1425 47128 985675966
1 f none pam/pam_wheel.so.pl 0600 root bin 1477 57315 985675966
1 f none pam/save_mod.cgi 0700 root bin 1601 53797 985675966
1 f none pam/template.pl 0600 root bin 162 14372 985675966
1 d none pap 0700 root bin
1 f none pap/config-corel-linux 0600 root bin 45 4249 985675926
1 f none pap/config-debian-linux 0600 root bin 45 4249 985675926
1 f none pap/config-freebsd 0600 root bin 45 4249 985675926
1 f none pap/config-open-linux 0600 root bin 45 4249 985675926
1 f none pap/config-redhat-linux 0600 root bin 45 4249 985675926
1 f none pap/config-slackware-linux 0600 root bin 45 4249 985675926
1 f none pap/config-suse-linux 0600 root bin 45 4249 985675926
1 f none pap/config-turbo-linux 0600 root bin 45 4249 985675926
1 f none pap/config.info 0600 root bin 89 7970 985675926
1 f none pap/config.info.de 0600 root bin 110 9867 985675926
1 f none pap/config.info.es 0600 root bin 113 10146 985675926
1 f none pap/config.info.fr 0600 root bin 104 9181 985675926
1 f none pap/config.info.pl 0600 root bin 84 7595 985675926
1 f none pap/config.info.sv 0600 root bin 104 9726 985675926
1 f none pap/config.info.tr 0600 root bin 105 10166 985675926
1 f none pap/config.info.zh_CN 0600 root bin 75 10385 985675926
1 f none pap/config.info.zh_TW.Big5 0600 root bin 75 8418 985675926
1 f none pap/edit_secret.cgi 0700 root bin 3259 5979 985675926
1 d none pap/images 0700 root bin
1 f none pap/images/icon.gif 0600 root bin 279 33204 985675926
1 f none pap/index.cgi 0700 root bin 1925 23907 985675926
1 d none pap/lang 0700 root bin
1 f none pap/lang/de 0600 root bin 1783 37506 985675926
1 f none pap/lang/en 0600 root bin 1520 11228 985675926
1 f none pap/lang/es 0600 root bin 1701 29819 985675926
1 f none pap/lang/pl 0600 root bin 1728 40186 985675926
1 f none pap/lang/sv 0600 root bin 1588 24404 985675926
1 f none pap/lang/zh_CN 0600 root bin 1272 35505 985675926
1 f none pap/log_parser.pl 0600 root bin 631 53378 985675926
1 f none pap/module.info 0600 root bin 610 62800 985675926
1 f none pap/pap-lib.pl 0600 root bin 1627 61425 985675926
1 f none pap/save_secret.cgi 0700 root bin 1386 46506 985675926
1 f none pap/save_sync.cgi 0700 root bin 493 42266 985675926
1 f none pap/useradmin_update.pl 0600 root bin 1476 55173 985675926
1 f none perlpath.pl 0600 root bin 551 41203 985675910
1 i pkginfo 213 18040 985676677
1 d none postfix 0700 root bin
1 f none postfix/aliases.cgi 0700 root bin 2525 14950 985675953
1 f none postfix/canonical.cgi 0700 root bin 1981 41673 985675953
1 f none postfix/canonical_edit.cgi 0700 root bin 1283 44985 985675953
1 f none postfix/config 0600 root bin 269 26913 985675959
1 f none postfix/config.info 0600 root bin 453 43470 985675953
1 f none postfix/config.info.de 0600 root bin 507 49225 985675953
1 f none postfix/config.info.es 0600 root bin 454 43571 985675959
1 f none postfix/config.info.fr 0600 root bin 590 57721 985675953
1 f none postfix/config.info.pl 0600 root bin 541 54283 985675959
1 f none postfix/config.info.sv 0600 root bin 532 55163 985675959
1 f none postfix/config.info.tr 0600 root bin 442 43988 985675959
1 f none postfix/config.info.zh_CN 0600 root bin 350 45538 985675959
1 f none postfix/debug.cgi 0700 root bin 1472 60762 985675953
1 f none postfix/defaultacl 0600 root bin 176 15669 985675953
1 f none postfix/edit_alias.cgi 0700 root bin 1728 14362 985675953
1 f none postfix/edit_canonical_mappings.cgi 0700 root bin 1716 14934 985675953
1 f none postfix/edit_mapping.cgi 0700 root bin 1794 20417 985675953
1 f none postfix/general.cgi 0700 root bin 4405 53118 985675953
1 d none postfix/help 0700 root bin
1 f none postfix/help/aliases.html 0600 root bin 1058 28451 985675954
1 f none postfix/help/aliases.sv.html 0600 root bin 1140 40407 985675957
1 f none postfix/help/canonical.html 0600 root bin 2512 28062 985675954
1 f none postfix/help/canonical.sv.html 0600 root bin 2692 910 985675957
1 f none postfix/help/general_opts.html 0600 root bin 368 33798 985675954
1 f none postfix/help/general_opts.sv.html 0600 root bin 358 34920 985675957
1 f none postfix/help/intro.html 0600 root bin 508 45962 985675954
1 f none postfix/help/intro.sv.html 0600 root bin 569 54859 985675957
1 f none postfix/help/opt_2bounce_notice_recipient.html 0600 root bin 244 22023 985675954
1 f none postfix/help/opt_2bounce_notice_recipient.sv.html 0600 root bin 235 21753 985675957
1 f none postfix/help/opt_access_map_reject_code.html 0600 root bin 307 27476 985675954
1 f none postfix/help/opt_access_map_reject_code.sv.html 0600 root bin 278 26934 985675957
1 f none postfix/help/opt_alias_database.html 0600 root bin 576 51553 985675954
1 f none postfix/help/opt_alias_database.sv.html 0600 root bin 567 51819 985675957
1 f none postfix/help/opt_alias_maps.html 0600 root bin 546 48364 985675954
1 f none postfix/help/opt_alias_maps.sv.html 0600 root bin 574 52908 985675957
1 f none postfix/help/opt_allow_mail_to_commands.html 0600 root bin 269 24539 985675954
1 f none postfix/help/opt_allow_mail_to_commands.sv.html 0600 root bin 290 27503 985675957
1 f none postfix/help/opt_allow_mail_to_files.html 0600 root bin 259 23467 985675954
1 f none postfix/help/opt_allow_mail_to_files.sv.html 0600 root bin 280 26439 985675957
1 f none postfix/help/opt_allow_untrusted_routing.html 0600 root bin 547 50434 985675954
1 f none postfix/help/opt_allow_untrusted_routing.sv.html 0600 root bin 564 54483 985675957
1 f none postfix/help/opt_always_bcc.html 0600 root bin 273 24962 985675954
1 f none postfix/help/opt_always_bcc.sv.html 0600 root bin 278 25937 985675957
1 f none postfix/help/opt_best_mx_transport.html 0600 root bin 474 42836 985675954
1 f none postfix/help/opt_best_mx_transport.sv.html 0600 root bin 500 47464 985675957
1 f none postfix/help/opt_bounce_notice_recipient.html 0600 root bin 242 21923 985675954
1 f none postfix/help/opt_bounce_notice_recipient.sv.html 0600 root bin 245 22661 985675957
1 f none postfix/help/opt_bounce_size_limit.html 0600 root bin 217 19840 985675954
1 f none postfix/help/opt_bounce_size_limit.sv.html 0600 root bin 245 23103 985675957
1 f none postfix/help/opt_canonical_maps.html 0600 root bin 733 453 985675954
1 f none postfix/help/opt_canonical_maps.sv.html 0600 root bin 775 9415 985675957
1 f none postfix/help/opt_command_time_limit.html 0600 root bin 482 43822 985675954
1 f none postfix/help/opt_command_time_limit.sv.html 0600 root bin 535 52305 985675957
1 f none postfix/help/opt_daemon_timeout.html 0600 root bin 230 20845 985675954
1 f none postfix/help/opt_daemon_timeout.sv.html 0600 root bin 258 24965 985675957
1 f none postfix/help/opt_debug_peer_level.html 0600 root bin 301 27515 985675954
1 f none postfix/help/opt_debug_peer_level.sv.html 0600 root bin 300 29236 985675957
1 f none postfix/help/opt_debug_peer_list.html 0600 root bin 516 46330 985675954
1 f none postfix/help/opt_debug_peer_list.sv.html 0600 root bin 516 49746 985675957
1 f none postfix/help/opt_default_database_type.html 0600 root bin 361 32267 985675954
1 f none postfix/help/opt_default_database_type.sv.html 0600 root bin 368 34255 985675957
1 f none postfix/help/opt_default_destination_concurrency_limit.html 0600 root bin 358 32936 985675954
1 f none postfix/help/opt_default_destination_concurrency_limit.sv.html 0600 root bin 355 34386 985675957
1 f none postfix/help/opt_default_destination_recipient_limit.html 0600 root bin 332 30466 985675954
1 f none postfix/help/opt_default_destination_recipient_limit.sv.html 0600 root bin 329 31840 985675957
1 f none postfix/help/opt_default_privs.html 0600 root bin 358 31273 985675954
1 f none postfix/help/opt_default_privs.sv.html 0600 root bin 375 35166 985675957
1 f none postfix/help/opt_default_process_limit.html 0600 root bin 230 21148 985675954
1 f none postfix/help/opt_default_process_limit.sv.html 0600 root bin 210 20165 985675957
1 f none postfix/help/opt_default_transport.html 0600 root bin 304 28107 985675954
1 f none postfix/help/opt_default_transport.sv.html 0600 root bin 300 28374 985675957
1 f none postfix/help/opt_defer_transports.html 0600 root bin 372 34302 985675954
1 f none postfix/help/opt_defer_transports.sv.html 0600 root bin 345 33184 985675957
1 f none postfix/help/opt_delay_notice_recipient.html 0600 root bin 240 21705 985675954
1 f none postfix/help/opt_delay_notice_recipient.sv.html 0600 root bin 250 23467 985675957
1 f none postfix/help/opt_delay_warning_time.html 0600 root bin 254 22845 985675954
1 f none postfix/help/opt_delay_warning_time.sv.html 0600 root bin 309 29427 985675957
1 f none postfix/help/opt_deliver_lock_attempts.html 0600 root bin 214 19509 985675954
1 f none postfix/help/opt_deliver_lock_attempts.sv.html 0600 root bin 210 20312 985675957
1 f none postfix/help/opt_deliver_lock_delay.html 0600 root bin 205 18719 985675954
1 f none postfix/help/opt_deliver_lock_delay.sv.html 0600 root bin 200 18976 985675957
1 f none postfix/help/opt_disable_vrfy_command.html 0600 root bin 236 21133 985675954
1 f none postfix/help/opt_disable_vrfy_command.sv.html 0600 root bin 248 23202 985675957
1 f none postfix/help/opt_double_bounce_sender.html 0600 root bin 328 29770 985675954
1 f none postfix/help/opt_double_bounce_sender.sv.html 0600 root bin 324 30719 985675957
1 f none postfix/help/opt_duplicate_filter_limit.html 0600 root bin 255 23454 985675954
1 f none postfix/help/opt_duplicate_filter_limit.sv.html 0600 root bin 244 23069 985675957
1 f none postfix/help/opt_empty_address_recipient.html 0600 root bin 319 28447 985675954
1 f none postfix/help/opt_empty_address_recipient.sv.html 0600 root bin 332 30564 985675957
1 f none postfix/help/opt_error_notice_recipient.html 0600 root bin 240 21759 985675954
1 f none postfix/help/opt_error_notice_recipient.sv.html 0600 root bin 239 22175 985675957
1 f none postfix/help/opt_fallback_relay.html 0600 root bin 405 36503 985675954
1 f none postfix/help/opt_fallback_relay.sv.html 0600 root bin 419 40102 985675957
1 f none postfix/help/opt_fallback_transport.html 0600 root bin 344 31372 985675954
1 f none postfix/help/opt_fallback_transport.sv.html 0600 root bin 328 30942 985675957
1 f none postfix/help/opt_fork_attempts.html 0600 root bin 167 14949 985675954
1 f none postfix/help/opt_fork_attempts.sv.html 0600 root bin 188 18055 985675957
1 f none postfix/help/opt_fork_delay.html 0600 root bin 170 15267 985675954
1 f none postfix/help/opt_fork_delay.sv.html 0600 root bin 181 16819 985675957
1 f none postfix/help/opt_forward_path.html 0600 root bin 709 62396 985675954
1 f none postfix/help/opt_forward_path.sv.html 0600 root bin 684 63458 985675957
1 f none postfix/help/opt_hash_queue_depth.html 0600 root bin 367 33911 985675954
1 f none postfix/help/opt_hash_queue_depth.sv.html 0600 root bin 360 34702 985675957
1 f none postfix/help/opt_hash_queue_names.html 0600 root bin 592 54376 985675955
1 f none postfix/help/opt_hash_queue_names.sv.html 0600 root bin 625 61615 985675957
1 f none postfix/help/opt_header_size_limit.html 0600 root bin 290 26394 985675955
1 f none postfix/help/opt_header_size_limit.sv.html 0600 root bin 322 31261 985675957
1 f none postfix/help/opt_home_mailbox.html 0600 root bin 438 38475 985675955
1 f none postfix/help/opt_home_mailbox.sv.html 0600 root bin 444 42056 985675957
1 f none postfix/help/opt_hopcount_limit.html 0600 root bin 220 19693 985675955
1 f none postfix/help/opt_hopcount_limit.sv.html 0600 root bin 226 20815 985675957
1 f none postfix/help/opt_ignore_mx_lookup_error.html 0600 root bin 328 29915 985675955
1 f none postfix/help/opt_ignore_mx_lookup_error.sv.html 0600 root bin 355 34540 985675957
1 f none postfix/help/opt_inet_interfaces.html 0600 root bin 486 43577 985675955
1 f none postfix/help/opt_inet_interfaces.sv.html 0600 root bin 474 44484 985675957
1 f none postfix/help/opt_initial_destination_concurrency.html 0600 root bin 495 45255 985675955
1 f none postfix/help/opt_initial_destination_concurrency.sv.html 0600 root bin 515 49249 985675957
1 f none postfix/help/opt_invalid_hostname_reject_code.html 0600 root bin 327 29636 985675955
1 f none postfix/help/opt_invalid_hostname_reject_code.sv.html 0600 root bin 324 31135 985675957
1 f none postfix/help/opt_ipc_idle.html 0600 root bin 337 31013 985675955
1 f none postfix/help/opt_ipc_idle.sv.html 0600 root bin 343 32651 985675957
1 f none postfix/help/opt_ipc_timeout.html 0600 root bin 318 28955 985675955
1 f none postfix/help/opt_ipc_timeout.sv.html 0600 root bin 317 30701 985675957
1 f none postfix/help/opt_line_length_limit.html 0600 root bin 271 24992 985675955
1 f none postfix/help/opt_line_length_limit.sv.html 0600 root bin 284 27435 985675957
1 f none postfix/help/opt_local_command_shell.html 0600 root bin 823 8670 985675955
1 f none postfix/help/opt_local_command_shell.sv.html 0600 root bin 785 8631 985675957
1 f none postfix/help/opt_local_destination_concurrency_limit.html 0600 root bin 554 50707 985675955
1 f none postfix/help/opt_local_destination_concurrency_limit.sv.html 0600 root bin 582 56522 985675957
1 f none postfix/help/opt_local_destination_recipient_limit.html 0600 root bin 458 42475 985675955
1 f none postfix/help/opt_local_destination_recipient_limit.sv.html 0600 root bin 479 46929 985675957
1 f none postfix/help/opt_local_recipient_maps.html 0600 root bin 721 210 985675955
1 f none postfix/help/opt_local_recipient_maps.sv.html 0600 root bin 728 3449 985675957
1 f none postfix/help/opt_local_transport.html 0600 root bin 431 38966 985675955
1 f none postfix/help/opt_local_transport.sv.html 0600 root bin 452 43134 985675957
1 f none postfix/help/opt_luser_relay.html 0600 root bin 904 14514 985675956
1 f none postfix/help/opt_luser_relay.sv.html 0600 root bin 876 15154 985675957
1 f none postfix/help/opt_mail_name.html 0600 root bin 223 19704 985675956
1 f none postfix/help/opt_mail_name.sv.html 0600 root bin 211 18758 985675957
1 f none postfix/help/opt_mail_owner.html 0600 root bin 428 35427 985675956
1 f none postfix/help/opt_mail_owner.sv.html 0600 root bin 429 40821 985675957
1 f none postfix/help/opt_mail_spool_directory.html 0600 root bin 224 20197 985675956
1 f none postfix/help/opt_mail_spool_directory.sv.html 0600 root bin 196 18372 985675957
1 f none postfix/help/opt_mail_version.html 0600 root bin 239 21496 985675956
1 f none postfix/help/opt_mail_version.sv.html 0600 root bin 232 21967 985675957
1 f none postfix/help/opt_mailbox_command.html 0600 root bin 1180 36863 985675956
1 f none postfix/help/opt_mailbox_command.sv.html 0600 root bin 1234 50287 985675958
1 f none postfix/help/opt_mailbox_transport.html 0600 root bin 376 34392 985675956
1 f none postfix/help/opt_mailbox_transport.sv.html 0600 root bin 364 33961 985675958
1 f none postfix/help/opt_maps_rbl_domains.html 0600 root bin 489 44586 985675956
1 f none postfix/help/opt_maps_rbl_domains.sv.html 0600 root bin 463 45035 985675958
1 f none postfix/help/opt_maps_rbl_reject_code.html 0600 root bin 318 28553 985675956
1 f none postfix/help/opt_maps_rbl_reject_code.sv.html 0600 root bin 308 29716 985675958
1 f none postfix/help/opt_masquerade_domains.html 0600 root bin 573 52036 985675956
1 f none postfix/help/opt_masquerade_domains.sv.html 0600 root bin 559 53317 985675958
1 f none postfix/help/opt_masquerade_exceptions.html 0600 root bin 358 32824 985675956
1 f none postfix/help/opt_masquerade_exceptions.sv.html 0600 root bin 390 38168 985675958
1 f none postfix/help/opt_max_idle.html 0600 root bin 282 25836 985675956
1 f none postfix/help/opt_max_idle.sv.html 0600 root bin 276 27475 985675958
1 f none postfix/help/opt_max_use.html 0600 root bin 270 24723 985675956
1 f none postfix/help/opt_max_use.sv.html 0600 root bin 283 27947 985675958
1 f none postfix/help/opt_maximal_backoff_time.html 0600 root bin 235 21491 985675956
1 f none postfix/help/opt_maximal_backoff_time.sv.html 0600 root bin 235 23010 985675958
1 f none postfix/help/opt_maximal_queue_lifetime.html 0600 root bin 241 21910 985675956
1 f none postfix/help/opt_maximal_queue_lifetime.sv.html 0600 root bin 281 26337 985675958
1 f none postfix/help/opt_message_size_limit.html 0600 root bin 190 17105 985675956
1 f none postfix/help/opt_message_size_limit.sv.html 0600 root bin 198 18479 985675958
1 f none postfix/help/opt_minimal_backoff_time.html 0600 root bin 361 33402 985675956
1 f none postfix/help/opt_minimal_backoff_time.sv.html 0600 root bin 357 35362 985675958
1 f none postfix/help/opt_mydestination.html 0600 root bin 852 8809 985675956
1 f none postfix/help/opt_mydestination.sv.html 0600 root bin 823 11749 985675958
1 f none postfix/help/opt_mydomain.html 0600 root bin 314 28656 985675956
1 f none postfix/help/opt_mydomain.sv.html 0600 root bin 295 28742 985675958
1 f none postfix/help/opt_myhostname.html 0600 root bin 352 31917 985675956
1 f none postfix/help/opt_myhostname.sv.html 0600 root bin 350 34153 985675958
1 f none postfix/help/opt_mynetworks.html 0600 root bin 761 3252 985675956
1 f none postfix/help/opt_mynetworks.sv.html 0600 root bin 731 4969 985675958
1 f none postfix/help/opt_myorigin.html 0600 root bin 432 39028 985675956
1 f none postfix/help/opt_myorigin.sv.html 0600 root bin 404 38448 985675958
1 f none postfix/help/opt_notify_classes.html 0600 root bin 1518 8056 985675956
1 f none postfix/help/opt_notify_classes.sv.html 0600 root bin 1497 11814 985675958
1 f none postfix/help/opt_prepend_delivered_header.html 0600 root bin 432 38764 985675956
1 f none postfix/help/opt_prepend_delivered_header.sv.html 0600 root bin 451 42246 985675958
1 f none postfix/help/opt_process_id_directory.html 0600 root bin 271 24776 985675956
1 f none postfix/help/opt_process_id_directory.sv.html 0600 root bin 232 22472 985675958
1 f none postfix/help/opt_program_directory.html 0600 root bin 242 22221 985675956
1 f none postfix/help/opt_program_directory.sv.html 0600 root bin 221 20757 985675958
1 f none postfix/help/opt_qmgr_message_active_limit.html 0600 root bin 191 17367 985675956
1 f none postfix/help/opt_qmgr_message_active_limit.sv.html 0600 root bin 190 17692 985675958
1 f none postfix/help/opt_qmgr_message_recipient_limit.html 0600 root bin 270 24936 985675956
1 f none postfix/help/opt_qmgr_message_recipient_limit.sv.html 0600 root bin 257 24801 985675958
1 f none postfix/help/opt_queue_directory.html 0600 root bin 232 21334 985675956
1 f none postfix/help/opt_queue_directory.sv.html 0600 root bin 202 19582 985675958
1 f none postfix/help/opt_queue_minfree.html 0600 root bin 290 26072 985675956
1 f none postfix/help/opt_queue_minfree.sv.html 0600 root bin 285 27360 985675958
1 f none postfix/help/opt_queue_run_delay.html 0600 root bin 217 19628 985675956
1 f none postfix/help/opt_queue_run_delay.sv.html 0600 root bin 232 22504 985675958
1 f none postfix/help/opt_recipient_canonical_maps.html 0600 root bin 373 33389 985675956
1 f none postfix/help/opt_recipient_canonical_maps.sv.html 0600 root bin 394 38426 985675958
1 f none postfix/help/opt_recipient_delimiter.html 0600 root bin 506 45676 985675956
1 f none postfix/help/opt_recipient_delimiter.sv.html 0600 root bin 520 48615 985675958
1 f none postfix/help/opt_reject_code.html 0600 root bin 290 25649 985675956
1 f none postfix/help/opt_reject_code.sv.html 0600 root bin 271 25605 985675958
1 f none postfix/help/opt_relay_domains.html 0600 root bin 1552 10487 985675956
1 f none postfix/help/opt_relay_domains.sv.html 0600 root bin 1570 19197 985675958
1 f none postfix/help/opt_relay_domains_reject_code.html 0600 root bin 311 27959 985675956
1 f none postfix/help/opt_relay_domains_reject_code.sv.html 0600 root bin 321 31045 985675958
1 f none postfix/help/opt_relayhost.html 0600 root bin 587 53262 985675956
1 f none postfix/help/opt_relayhost.sv.html 0600 root bin 574 53971 985675958
1 f none postfix/help/opt_relocated_maps.html 0600 root bin 388 34831 985675956
1 f none postfix/help/opt_relocated_maps.sv.html 0600 root bin 377 35576 985675958
1 f none postfix/help/opt_sample.html 0600 root bin 58 4603 985675956
1 f none postfix/help/opt_sample.sv.html 0600 root bin 58 4603 985675958
1 f none postfix/help/opt_sender_canonical_maps.html 0600 root bin 358 31971 985675956
1 f none postfix/help/opt_sender_canonical_maps.sv.html 0600 root bin 388 38130 985675958
1 f none postfix/help/opt_smtp_connect_timeout.html 0600 root bin 369 33212 985675956
1 f none postfix/help/opt_smtp_connect_timeout.sv.html 0600 root bin 386 36565 985675958
1 f none postfix/help/opt_smtp_data_done_timeout.html 0600 root bin 487 43663 985675956
1 f none postfix/help/opt_smtp_data_done_timeout.sv.html 0600 root bin 485 45324 985675958
1 f none postfix/help/opt_smtp_data_init_timeout.html 0600 root bin 347 30956 985675956
1 f none postfix/help/opt_smtp_data_init_timeout.sv.html 0600 root bin 344 32183 985675958
1 f none postfix/help/opt_smtp_data_xfer_timeout.html 0600 root bin 448 40981 985675956
1 f none postfix/help/opt_smtp_data_xfer_timeout.sv.html 0600 root bin 440 42526 985675958
1 f none postfix/help/opt_smtp_destination_concurrency_limit.html 0600 root bin 401 37133 985675956
1 f none postfix/help/opt_smtp_destination_concurrency_limit.sv.html 0600 root bin 429 42095 985675958
1 f none postfix/help/opt_smtp_destination_recipient_limit.html 0600 root bin 309 28546 985675956
1 f none postfix/help/opt_smtp_destination_recipient_limit.sv.html 0600 root bin 303 29267 985675958
1 f none postfix/help/opt_smtp_helo_timeout.html 0600 root bin 420 38195 985675956
1 f none postfix/help/opt_smtp_helo_timeout.sv.html 0600 root bin 396 38096 985675958
1 f none postfix/help/opt_smtp_mail_timeout.html 0600 root bin 352 31132 985675957
1 f none postfix/help/opt_smtp_mail_timeout.sv.html 0600 root bin 344 31429 985675958
1 f none postfix/help/opt_smtp_quit_timeout.html 0600 root bin 246 22100 985675957
1 f none postfix/help/opt_smtp_quit_timeout.sv.html 0600 root bin 238 21824 985675958
1 f none postfix/help/opt_smtp_rcpt_timeout.html 0600 root bin 348 30908 985675957
1 f none postfix/help/opt_smtp_rcpt_timeout.sv.html 0600 root bin 336 30866 985675958
1 f none postfix/help/opt_smtp_skip_4xx_greeting.html 0600 root bin 290 25886 985675957
1 f none postfix/help/opt_smtp_skip_4xx_greeting.sv.html 0600 root bin 319 30356 985675958
1 f none postfix/help/opt_smtp_skip_quit_response.html 0600 root bin 231 20771 985675957
1 f none postfix/help/opt_smtp_skip_quit_response.sv.html 0600 root bin 216 20319 985675958
1 f none postfix/help/opt_smtpd_banner.html 0600 root bin 510 45634 985675957
1 f none postfix/help/opt_smtpd_banner.sv.html 0600 root bin 519 49236 985675958
1 f none postfix/help/opt_smtpd_client_restrictions.html 0600 root bin 1362 59414 985675957
1 f none postfix/help/opt_smtpd_client_restrictions.sv.html 0600 root bin 1382 2422 985675958
1 f none postfix/help/opt_smtpd_error_sleep_time.html 0600 root bin 357 32303 985675957
1 f none postfix/help/opt_smtpd_error_sleep_time.sv.html 0600 root bin 332 30824 985675958
1 f none postfix/help/opt_smtpd_etrn_restrictions.html 0600 root bin 1137 37637 985675957
1 f none postfix/help/opt_smtpd_etrn_restrictions.sv.html 0600 root bin 1147 43230 985675958
1 f none postfix/help/opt_smtpd_hard_error_limit.html 0600 root bin 262 24043 985675957
1 f none postfix/help/opt_smtpd_hard_error_limit.sv.html 0600 root bin 261 24351 985675958
1 f none postfix/help/opt_smtpd_helo_required.html 0600 root bin 225 20528 985675957
1 f none postfix/help/opt_smtpd_helo_required.sv.html 0600 root bin 185 17187 985675958
1 f none postfix/help/opt_smtpd_helo_restrictions.html 0600 root bin 1494 4216 985675957
1 f none postfix/help/opt_smtpd_helo_restrictions.sv.html 0600 root bin 1485 11358 985675958
1 f none postfix/help/opt_smtpd_recipient_limit.html 0600 root bin 227 20830 985675957
1 f none postfix/help/opt_smtpd_recipient_limit.sv.html 0600 root bin 213 20096 985675958
1 f none postfix/help/opt_smtpd_recipient_restrictions.html 0600 root bin 4294 60668 985675957
1 f none postfix/help/opt_smtpd_recipient_restrictions.sv.html 0600 root bin 4290 15676 985675958
1 f none postfix/help/opt_smtpd_sender_restrictions.html 0600 root bin 1775 31641 985675957
1 f none postfix/help/opt_smtpd_sender_restrictions.sv.html 0600 root bin 1789 41704 985675958
1 f none postfix/help/opt_smtpd_soft_error_limit.html 0600 root bin 333 30718 985675957
1 f none postfix/help/opt_smtpd_soft_error_limit.sv.html 0600 root bin 377 36476 985675958
1 f none postfix/help/opt_smtpd_timeout.html 0600 root bin 392 35332 985675957
1 f none postfix/help/opt_smtpd_timeout.sv.html 0600 root bin 402 38361 985675958
1 f none postfix/help/opt_stale_lock_time.html 0600 root bin 230 20680 985675957
1 f none postfix/help/opt_stale_lock_time.sv.html 0600 root bin 268 25874 985675958
1 f none postfix/help/opt_sun_mailtool_compatibility.html 0600 root bin 453 41388 985675957
1 f none postfix/help/opt_sun_mailtool_compatibility.sv.html 0600 root bin 478 47227 985675958
1 f none postfix/help/opt_swap_bangpath.html 0600 root bin 196 17284 985675957
1 f none postfix/help/opt_swap_bangpath.sv.html 0600 root bin 212 20079 985675958
1 f none postfix/help/opt_transport_maps.html 0600 root bin 558 50374 985675957
1 f none postfix/help/opt_transport_maps.sv.html 0600 root bin 550 51308 985675958
1 f none postfix/help/opt_transport_retry_time.html 0600 root bin 266 24487 985675957
1 f none postfix/help/opt_transport_retry_time.sv.html 0600 root bin 268 25333 985675958
1 f none postfix/help/opt_trigger_timeout.html 0600 root bin 270 24599 985675957
1 f none postfix/help/opt_trigger_timeout.sv.html 0600 root bin 298 28147 985675958
1 f none postfix/help/opt_unknown_address_reject_code.html 0600 root bin 374 34338 985675957
1 f none postfix/help/opt_unknown_address_reject_code.sv.html 0600 root bin 374 36089 985675958
1 f none postfix/help/opt_unknown_client_reject_code.html 0600 root bin 362 33088 985675957
1 f none postfix/help/opt_unknown_client_reject_code.sv.html 0600 root bin 380 36402 985675958
1 f none postfix/help/opt_unknown_hostname_reject_code.html 0600 root bin 335 30563 985675957
1 f none postfix/help/opt_unknown_hostname_reject_code.sv.html 0600 root bin 338 32461 985675958
1 f none postfix/help/opt_virtual_maps.html 0600 root bin 546 49730 985675957
1 f none postfix/help/opt_virtual_maps.sv.html 0600 root bin 556 52697 985675958
1 f none postfix/help/relocated.html 0600 root bin 993 23401 985675957
1 f none postfix/help/relocated.sv.html 0600 root bin 1034 32339 985675958
1 f none postfix/help/transport.html 0600 root bin 1259 48454 985675957
1 f none postfix/help/transport.sv.html 0600 root bin 1246 52865 985675958
1 f none postfix/help/virtual.html 0600 root bin 2502 25760 985675957
1 f none postfix/help/virtual.sv.html 0600 root bin 2546 42440 985675958
1 d none postfix/images 0700 root bin
1 f none postfix/images/aliases.gif 0600 root bin 1924 54355 985675958
1 f none postfix/images/canonical.gif 0600 root bin 2900 56537 985675958
1 f none postfix/images/debug.gif 0600 root bin 2135 2464 985675958
1 f none postfix/images/general.gif 0600 root bin 1522 34231 985675958
1 f none postfix/images/icon.gif 0600 root bin 1840 18870 985675958
1 f none postfix/images/ldap.gif 0600 root bin 1755 23281 985675958
1 f none postfix/images/local_delivery.gif 0600 root bin 2367 22078 985675958
1 f none postfix/images/rate.gif 0600 root bin 1821 20669 985675958
1 f none postfix/images/relocated.gif 0600 root bin 1785 37348 985675958
1 f none postfix/images/resource.gif 0600 root bin 1507 54943 985675958
1 f none postfix/images/rewrite.gif 0600 root bin 2408 23089 985675958
1 f none postfix/images/smtp.gif 0600 root bin 1709 12844 985675958
1 f none postfix/images/smtpd.gif 0600 root bin 1828 38020 985675958
1 f none postfix/images/transport.gif 0600 root bin 1291 18231 985675958
1 f none postfix/images/virtual.gif 0600 root bin 1632 9195 985675958
1 f none postfix/index.cgi 0700 root bin 3669 46749 985675958
1 d none postfix/lang 0700 root bin
1 f none postfix/lang/de 0600 root bin 16262 63259 985675958
1 f none postfix/lang/en 0600 root bin 14759 49906 985675958
1 f none postfix/lang/es 0600 root bin 14858 7093 985675958
1 f none postfix/lang/fr 0600 root bin 15519 31742 985675958
1 f none postfix/lang/pl 0600 root bin 16969 19187 985675958
1 f none postfix/lang/sv 0600 root bin 14457 33119 985675958
1 f none postfix/lang/zh_CN 0600 root bin 10695 22412 985675958
1 f none postfix/ldap.cgi 0700 root bin 1560 3117 985675958
1 f none postfix/local_delivery.cgi 0700 root bin 2856 54467 985675958
1 f none postfix/maps_edit.cgi 0700 root bin 2173 51162 985675958
1 f none postfix/module.info 0600 root bin 353 38234 985675958
1 f none postfix/postfix-lib.pl 0600 root bin 13652 34420 985675958
1 f none postfix/rate.cgi 0700 root bin 1738 19752 985675958
1 f none postfix/relocated.cgi 0700 root bin 1592 4979 985675958
1 f none postfix/resource.cgi 0700 root bin 2214 60624 985675958
1 f none postfix/rewrite.cgi 0700 root bin 1793 25682 985675959
1 f none postfix/save_alias.cgi 0700 root bin 1924 29599 985675959
1 f none postfix/save_map.cgi 0700 root bin 1977 33318 985675959
1 f none postfix/save_opts.cgi 0700 root bin 787 2325 985675959
1 f none postfix/save_opts_aliases.cgi 0700 root bin 787 2269 985675959
1 f none postfix/save_opts_canonical.cgi 0700 root bin 865 9525 985675959
1 f none postfix/save_opts_misc.cgi 0700 root bin 832 6397 985675959
1 f none postfix/save_opts_relocated.cgi 0700 root bin 865 9569 985675959
1 f none postfix/save_opts_transport.cgi 0700 root bin 865 9801 985675959
1 f none postfix/save_opts_virtual.cgi 0700 root bin 857 8881 985675959
1 f none postfix/smtp.cgi 0700 root bin 2355 8178 985675959
1 f none postfix/smtpd.cgi 0700 root bin 3120 8491 985675959
1 f none postfix/start.cgi 0700 root bin 808 5049 985675959
1 f none postfix/stop.cgi 0700 root bin 786 3276 985675959
1 f none postfix/transport.cgi 0700 root bin 1585 5008 985675959
1 f none postfix/virtual.cgi 0700 root bin 1562 2363 985675959
1 d none postgresql 0700 root bin
1 f none postgresql/acl_security.pl 0600 root bin 2218 50772 985675960
1 f none postgresql/config 0600 root bin 291 27041 985675960
1 f none postgresql/config-cobalt-linux 0600 root bin 239 21919 985675960
1 f none postgresql/config-debian-linux 0600 root bin 220 20807 985675960
1 f none postgresql/config-redhat-linux 0600 root bin 217 20429 985675959
1 f none postgresql/config-redhat-linux-7.0 0600 root bin 222 20886 985675960
1 f none postgresql/config-redhat-linux-7.1 0600 root bin 222 20886 985675960
1 f none postgresql/config-suse-linux 0600 root bin 232 21816 985675960
1 f none postgresql/config-suse-linux-7.0 0600 root bin 222 20860 985675960
1 f none postgresql/config-suse-linux-7.1 0600 root bin 224 21078 985675960
1 f none postgresql/config.info 0600 root bin 444 40743 985675959
1 f none postgresql/config.info.es 0600 root bin 515 48164 985675960
1 f none postgresql/config.info.pl 0600 root bin 561 54750 985675960
1 f none postgresql/config.info.sv 0600 root bin 504 49508 985675960
1 f none postgresql/config.info.zh_CN 0600 root bin 301 41551 985675960
1 f none postgresql/create_table.cgi 0700 root bin 1083 20094 985675959
1 f none postgresql/defaultacl 0600 root bin 39 3177 985675959
1 f none postgresql/drop_dbase.cgi 0700 root bin 1115 25904 985675959
1 f none postgresql/drop_table.cgi 0700 root bin 1128 28005 985675959
1 f none postgresql/edit_dbase.cgi 0700 root bin 1553 64733 985675959
1 f none postgresql/edit_field.cgi 0700 root bin 2618 17884 985675959
1 f none postgresql/edit_grant.cgi 0700 root bin 2641 12666 985675960
1 f none postgresql/edit_group.cgi 0700 root bin 2005 34373 985675960
1 f none postgresql/edit_host.cgi 0700 root bin 3500 20691 985675960
1 f none postgresql/edit_table.cgi 0700 root bin 2435 3346 985675959
1 f none postgresql/edit_user.cgi 0700 root bin 2519 11911 985675960
1 f none postgresql/exec.cgi 0700 root bin 889 4965 985675959
1 f none postgresql/exec_form.cgi 0700 root bin 635 54416 985675959
1 d none postgresql/help 0700 root bin
1 f none postgresql/help/create_field.es.html 0600 root bin 596 53505 985675959
1 f none postgresql/help/create_field.html 0600 root bin 561 48629 985675959
1 f none postgresql/help/create_field.pl.html 0600 root bin 605 55276 985675959
1 f none postgresql/help/edit_dbase.es.html 0600 root bin 481 42936 985675959
1 f none postgresql/help/edit_dbase.html 0600 root bin 423 37518 985675959
1 f none postgresql/help/edit_dbase.pl.html 0600 root bin 539 51921 985675959
1 f none postgresql/help/edit_field.es.html 0600 root bin 355 32142 985675959
1 f none postgresql/help/edit_field.html 0600 root bin 324 28665 985675959
1 f none postgresql/help/edit_field.pl.html 0600 root bin 334 32023 985675959
1 f none postgresql/help/edit_table.es.html 0600 root bin 619 56570 985675959
1 f none postgresql/help/edit_table.html 0600 root bin 554 49718 985675959
1 f none postgresql/help/edit_table.pl.html 0600 root bin 622 59682 985675959
1 f none postgresql/help/exec_form.es.html 0600 root bin 268 24069 985675959
1 f none postgresql/help/exec_form.html 0600 root bin 203 18090 985675959
1 f none postgresql/help/exec_form.pl.html 0600 root bin 282 25887 985675959
1 f none postgresql/help/intro.es.html 0600 root bin 846 13181 985675959
1 f none postgresql/help/intro.html 0600 root bin 705 64541 985675959
1 f none postgresql/help/intro.pl.html 0600 root bin 863 18597 985675959
1 f none postgresql/help/list_grants.es.html 0600 root bin 451 41853 985675959
1 f none postgresql/help/list_grants.html 0600 root bin 461 41961 985675959
1 f none postgresql/help/list_grants.pl.html 0600 root bin 492 47924 985675959
1 f none postgresql/help/list_groups.es.html 0600 root bin 244 22287 985675959
1 f none postgresql/help/list_groups.html 0600 root bin 221 19655 985675959
1 f none postgresql/help/list_groups.pl.html 0600 root bin 274 26587 985675959
1 f none postgresql/help/list_hosts.es.html 0600 root bin 1268 50833 985675959
1 f none postgresql/help/list_hosts.html 0600 root bin 1103 33612 985675959
1 f none postgresql/help/list_hosts.pl.html 0600 root bin 1237 52688 985675959
1 f none postgresql/help/list_users.es.html 0600 root bin 341 31468 985675959
1 f none postgresql/help/list_users.html 0600 root bin 312 28351 985675959
1 f none postgresql/help/list_users.pl.html 0600 root bin 367 37053 985675959
1 f none postgresql/help/newdb_form.es.html 0600 root bin 362 32677 985675959
1 f none postgresql/help/newdb_form.html 0600 root bin 301 26790 985675959
1 f none postgresql/help/newdb_form.pl.html 0600 root bin 315 31160 985675959
1 f none postgresql/help/table_form.es.html 0600 root bin 558 50827 985675959
1 f none postgresql/help/table_form.html 0600 root bin 501 44498 985675959
1 f none postgresql/help/table_form.pl.html 0600 root bin 550 53931 985675959
1 f none postgresql/help/view_table.es.html 0600 root bin 804 6571 985675959
1 f none postgresql/help/view_table.html 0600 root bin 708 61084 985675959
1 f none postgresql/help/view_table.pl.html 0600 root bin 799 7952 985675959
1 d none postgresql/images 0700 root bin
1 f none postgresql/images/db.gif 0600 root bin 462 58683 985675959
1 f none postgresql/images/grants.gif 0600 root bin 1869 17073 985675959
1 f none postgresql/images/groups.gif 0600 root bin 401 45436 985675959
1 f none postgresql/images/hosts.gif 0600 root bin 412 49712 985675959
1 f none postgresql/images/icon.gif 0600 root bin 1752 25416 985675959
1 f none postgresql/images/table.gif 0600 root bin 366 49508 985675959
1 f none postgresql/images/users.gif 0600 root bin 293 35470 985675959
1 f none postgresql/index.cgi 0700 root bin 3148 57381 985675959
1 d none postgresql/lang 0700 root bin
1 f none postgresql/lang/en 0600 root bin 8630 19909 985675959
1 f none postgresql/lang/es 0600 root bin 10075 32761 985675959
1 f none postgresql/lang/pl 0600 root bin 9865 52269 985675959
1 f none postgresql/lang/sv 0600 root bin 9428 2014 985675959
1 f none postgresql/lang/zh_CN 0600 root bin 6831 40077 985675959
1 f none postgresql/list_grants.cgi 0700 root bin 1752 2006 985675960
1 f none postgresql/list_groups.cgi 0700 root bin 1131 24251 985675960
1 f none postgresql/list_hosts.cgi 0700 root bin 1136 23606 985675960
1 f none postgresql/list_locals.cgi 0700 root bin 808 65017 985675960
1 f none postgresql/list_users.cgi 0700 root bin 1116 24190 985675960
1 f none postgresql/log_parser.pl 0600 root bin 1572 61476 985675960
1 f none postgresql/login.cgi 0700 root bin 463 40316 985675960
1 f none postgresql/module.info 0600 root bin 236 23521 985675959
1 f none postgresql/newdb.cgi 0700 root bin 696 57516 985675959
1 f none postgresql/newdb_form.cgi 0700 root bin 935 13771 985675959
1 f none postgresql/postgresql-lib.pl 0600 root bin 6688 56409 985675959
1 f none postgresql/save_field.cgi 0700 root bin 757 60323 985675960
1 f none postgresql/save_grant.cgi 0700 root bin 1045 14083 985675960
1 f none postgresql/save_group.cgi 0700 root bin 1287 41066 985675960
1 f none postgresql/save_host.cgi 0700 root bin 1988 26204 985675960
1 f none postgresql/save_user.cgi 0700 root bin 1240 33131 985675960
1 f none postgresql/start.cgi 0700 root bin 345 28536 985675959
1 f none postgresql/stop.cgi 0700 root bin 560 44882 985675959
1 f none postgresql/table_form.cgi 0700 root bin 1811 20324 985675959
1 f none postgresql/view_table.cgi 0700 root bin 5701 53493 985675959
1 i postinstall 406 37191 985676576
1 i preremove 285 23797 985676576
1 d none proc 0700 root bin
1 f none proc/acl_security.pl 0600 root bin 488 42218 985675922
1 f none proc/config-aix 0600 root bin 44 4242 985675922
1 f none proc/config-cobalt-linux 0600 root bin 45 4333 985675922
1 f none proc/config-corel-linux 0600 root bin 45 4333 985675922
1 f none proc/config-debian-linux 0600 root bin 45 4333 985675921
1 f none proc/config-freebsd 0600 root bin 47 4503 985675921
1 f none proc/config-hpux 0600 root bin 44 4225 985675921
1 f none proc/config-irix 0600 root bin 44 4242 985675922
1 f none proc/config-macos 0600 root bin 45 4300 985675921
1 f none proc/config-open-linux 0600 root bin 45 4333 985675922
1 f none proc/config-openserver 0600 root bin 44 4242 985675921
1 f none proc/config-osf1 0600 root bin 43 4101 985675922
1 f none proc/config-redhat-linux 0600 root bin 45 4333 985675921
1 f none proc/config-slackware-linux 0600 root bin 45 4333 985675921
1 f none proc/config-solaris 0600 root bin 44 4242 985675921
1 f none proc/config-suse-linux 0600 root bin 45 4333 985675921
1 f none proc/config-turbo-linux 0600 root bin 45 4333 985675922
1 f none proc/config-unixware 0600 root bin 44 4242 985675921
1 f none proc/config.info 0600 root bin 259 24006 985675921
1 f none proc/config.info.de 0600 root bin 313 29196 985675922
1 f none proc/config.info.es 0600 root bin 336 32015 985675922
1 f none proc/config.info.fr 0600 root bin 315 29481 985675922
1 f none proc/config.info.hu 0600 root bin 293 29930 985675922
1 f none proc/config.info.pl 0600 root bin 321 31751 985675922
1 f none proc/config.info.ru_RU 0600 root bin 333 54501 985675922
1 f none proc/config.info.ru_SU 0600 root bin 333 49596 985675922
1 f none proc/config.info.sv 0600 root bin 311 30774 985675922
1 f none proc/config.info.tr 0600 root bin 298 33075 985675922
1 f none proc/config.info.zh_CN 0600 root bin 214 28029 985675922
1 f none proc/config.info.zh_TW.Big5 0600 root bin 248 31411 985675922
1 f none proc/defaultacl 0600 root bin 17 1411 985675922
1 f none proc/edit_proc.cgi 0700 root bin 3686 32806 985675921
1 f none proc/freebsd-lib.pl 0600 root bin 1288 32558 985675921
1 d none proc/help 0700 root bin
1 f none proc/help/cmd.es.html 0600 root bin 268 23498 985675921
1 f none proc/help/cmd.fr.html 0600 root bin 315 29069 985675921
1 f none proc/help/cmd.html 0600 root bin 252 21766 985675921
1 f none proc/help/cmd.hu.html 0600 root bin 305 29028 985675922
1 f none proc/help/cmd.pl.html 0600 root bin 310 28863 985675922
1 f none proc/help/cmd.sv.html 0600 root bin 274 24966 985675921
1 f none proc/help/cmd.zh_TW.Big5.html 0600 root bin 224 26337 985675921
1 f none proc/help/cpu.es.html 0600 root bin 699 64377 985675921
1 f none proc/help/cpu.fr.html 0600 root bin 799 9819 985675921
1 f none proc/help/cpu.html 0600 root bin 648 58183 985675921
1 f none proc/help/cpu.hu.html 0600 root bin 698 3883 985675922
1 f none proc/help/cpu.pl.html 0600 root bin 792 12411 985675922
1 f none proc/help/cpu.sv.html 0600 root bin 613 58086 985675921
1 f none proc/help/cpu.zh_TW.Big5.html 0600 root bin 512 7083 985675921
1 f none proc/help/edit_proc.es.html 0600 root bin 1709 23936 985675921
1 f none proc/help/edit_proc.fr.html 0600 root bin 1789 36384 985675921
1 f none proc/help/edit_proc.html 0600 root bin 1576 8931 985675921
1 f none proc/help/edit_proc.hu.html 0600 root bin 1622 30657 985675922
1 f none proc/help/edit_proc.pl.html 0600 root bin 1772 39251 985675922
1 f none proc/help/edit_proc.sv.html 0600 root bin 1579 16966 985675921
1 f none proc/help/edit_proc.zh_TW.Big5.html 0600 root bin 1097 23020 985675921
1 f none proc/help/input.es.html 0600 root bin 242 22324 985675921
1 f none proc/help/input.fr.html 0600 root bin 139 12752 985675921
1 f none proc/help/input.html 0600 root bin 221 19885 985675921
1 f none proc/help/input.hu.html 0600 root bin 216 21120 985675922
1 f none proc/help/input.pl.html 0600 root bin 246 23634 985675922
1 f none proc/help/input.sv.html 0600 root bin 237 22461 985675921
1 f none proc/help/input.zh_TW.Big5.html 0600 root bin 161 22271 985675921
1 f none proc/help/intro.es.html 0600 root bin 1283 52771 985675921
1 f none proc/help/intro.fr.html 0600 root bin 1442 8027 985675921
1 f none proc/help/intro.html 0600 root bin 1138 37941 985675921
1 f none proc/help/intro.hu.html 0600 root bin 1316 3428 985675922
1 f none proc/help/intro.pl.html 0600 root bin 1301 61902 985675922
1 f none proc/help/intro.sv.html 0600 root bin 1113 42899 985675921
1 f none proc/help/intro.zh_TW.Big5.html 0600 root bin 825 53257 985675921
1 f none proc/help/mode.es.html 0600 root bin 417 37315 985675921
1 f none proc/help/mode.fr.html 0600 root bin 414 38829 985675921
1 f none proc/help/mode.html 0600 root bin 372 32806 985675921
1 f none proc/help/mode.hu.html 0600 root bin 376 38048 985675922
1 f none proc/help/mode.pl.html 0600 root bin 430 40256 985675922
1 f none proc/help/mode.sv.html 0600 root bin 337 32111 985675921
1 f none proc/help/mode.zh_TW.Big5.html 0600 root bin 278 38063 985675921
1 f none proc/help/nice.es.html 0600 root bin 499 45984 985675921
1 f none proc/help/nice.fr.html 0600 root bin 523 50397 985675921
1 f none proc/help/nice.html 0600 root bin 445 41008 985675921
1 f none proc/help/nice.hu.html 0600 root bin 436 44626 985675922
1 f none proc/help/nice.pl.html 0600 root bin 539 53989 985675922
1 f none proc/help/nice.sv.html 0600 root bin 457 45294 985675922
1 f none proc/help/nice.zh_TW.Big5.html 0600 root bin 358 54257 985675921
1 f none proc/help/overview.es.html 0600 root bin 87 8224 985675921
1 f none proc/help/overview.fr.html 0600 root bin 78 7267 985675921
1 f none proc/help/overview.html 0600 root bin 73 6679 985675921
1 f none proc/help/overview.hu.html 0600 root bin 90 9019 985675922
1 f none proc/help/overview.pl.html 0600 root bin 86 8157 985675922
1 f none proc/help/overview.sv.html 0600 root bin 68 6483 985675922
1 f none proc/help/overview.zh_TW.Big5.html 0600 root bin 66 8897 985675921
1 f none proc/help/run.es.html 0600 root bin 245 22755 985675921
1 f none proc/help/run.fr.html 0600 root bin 246 23254 985675921
1 f none proc/help/run.html 0600 root bin 231 20976 985675921
1 f none proc/help/run.hu.html 0600 root bin 247 24890 985675922
1 f none proc/help/run.pl.html 0600 root bin 302 30034 985675922
1 f none proc/help/run.sv.html 0600 root bin 235 22476 985675922
1 f none proc/help/run.zh_TW.Big5.html 0600 root bin 154 21978 985675921
1 f none proc/help/scpu.es.html 0600 root bin 141 12917 985675921
1 f none proc/help/scpu.fr.html 0600 root bin 192 18002 985675921
1 f none proc/help/scpu.html 0600 root bin 137 12406 985675921
1 f none proc/help/scpu.hu.html 0600 root bin 153 14998 985675922
1 f none proc/help/scpu.pl.html 0600 root bin 166 16639 985675922
1 f none proc/help/scpu.sv.html 0600 root bin 136 12733 985675922
1 f none proc/help/scpu.zh_TW.Big5.html 0600 root bin 106 13593 985675921
1 f none proc/help/search.es.html 0600 root bin 734 2343 985675921
1 f none proc/help/search.fr.html 0600 root bin 784 8279 985675921
1 f none proc/help/search.html 0600 root bin 665 59582 985675921
1 f none proc/help/search.hu.html 0600 root bin 701 4885 985675922
1 f none proc/help/search.pl.html 0600 root bin 786 12643 985675922
1 f none proc/help/search.sv.html 0600 root bin 669 64653 985675922
1 f none proc/help/search.zh_TW.Big5.html 0600 root bin 504 5798 985675921
1 f none proc/help/sfiles.es.html 0600 root bin 227 21110 985675921
1 f none proc/help/sfiles.fr.html 0600 root bin 270 25805 985675921
1 f none proc/help/sfiles.html 0600 root bin 208 18956 985675921
1 f none proc/help/sfiles.hu.html 0600 root bin 266 27099 985675922
1 f none proc/help/sfiles.pl.html 0600 root bin 239 23586 985675922
1 f none proc/help/sfiles.sv.html 0600 root bin 215 20537 985675922
1 f none proc/help/sfiles.zh_TW.Big5.html 0600 root bin 135 20006 985675921
1 f none proc/help/sfs.es.html 0600 root bin 451 42949 985675921
1 f none proc/help/sfs.fr.html 0600 root bin 428 41268 985675921
1 f none proc/help/sfs.html 0600 root bin 375 34611 985675921
1 f none proc/help/sfs.hu.html 0600 root bin 442 46091 985675922
1 f none proc/help/sfs.pl.html 0600 root bin 503 51106 985675922
1 f none proc/help/sfs.sv.html 0600 root bin 397 38359 985675922
1 f none proc/help/sfs.zh_TW.Big5.html 0600 root bin 219 33879 985675921
1 f none proc/help/signore.html 0600 root bin 240 21763 985675922
1 f none proc/help/signore.pl.html 0600 root bin 256 25885 985675922
1 f none proc/help/size.es.html 0600 root bin 808 10294 985675921
1 f none proc/help/size.fr.html 0600 root bin 805 11771 985675921
1 f none proc/help/size.html 0600 root bin 711 65079 985675921
1 f none proc/help/size.hu.html 0600 root bin 863 22590 985675922
1 f none proc/help/size.pl.html 0600 root bin 861 20805 985675922
1 f none proc/help/size.sv.html 0600 root bin 688 398 985675922
1 f none proc/help/size.zh_TW.Big5.html 0600 root bin 565 19558 985675921
1 f none proc/help/smatch.es.html 0600 root bin 259 24299 985675921
1 f none proc/help/smatch.fr.html 0600 root bin 293 27640 985675921
1 f none proc/help/smatch.html 0600 root bin 227 20836 985675921
1 f none proc/help/smatch.hu.html 0600 root bin 282 28162 985675922
1 f none proc/help/smatch.pl.html 0600 root bin 247 24406 985675922
1 f none proc/help/smatch.sv.html 0600 root bin 242 23088 985675922
1 f none proc/help/smatch.zh_TW.Big5.html 0600 root bin 160 20553 985675921
1 f none proc/help/suser.es.html 0600 root bin 132 12218 985675921
1 f none proc/help/suser.fr.html 0600 root bin 126 11708 985675921
1 f none proc/help/suser.html 0600 root bin 102 9127 985675921
1 f none proc/help/suser.hu.html 0600 root bin 144 14221 985675922
1 f none proc/help/suser.pl.html 0600 root bin 127 12626 985675922
1 f none proc/help/suser.sv.html 0600 root bin 103 9659 985675922
1 f none proc/help/suser.zh_TW.Big5.html 0600 root bin 77 10731 985675921
1 f none proc/help/tree.es.html 0600 root bin 335 30745 985675921
1 f none proc/help/tree.fr.html 0600 root bin 357 34136 985675921
1 f none proc/help/tree.html 0600 root bin 320 29040 985675921
1 f none proc/help/tree.hu.html 0600 root bin 339 33075 985675922
1 f none proc/help/tree.pl.html 0600 root bin 384 37356 985675922
1 f none proc/help/tree.sv.html 0600 root bin 305 29367 985675922
1 f none proc/help/tree.zh_TW.Big5.html 0600 root bin 256 35954 985675921
1 f none proc/help/user.es.html 0600 root bin 443 40824 985675921
1 f none proc/help/user.fr.html 0600 root bin 460 44455 985675921
1 f none proc/help/user.html 0600 root bin 381 34198 985675921
1 f none proc/help/user.hu.html 0600 root bin 395 39558 985675922
1 f none proc/help/user.pl.html 0600 root bin 454 44865 985675922
1 f none proc/help/user.sv.html 0600 root bin 328 31359 985675922
1 f none proc/help/user.zh_TW.Big5.html 0600 root bin 296 42704 985675921
1 f none proc/hpux-lib.pl 0600 root bin 1971 15417 985675921
1 d none proc/images 0700 root bin
1 f none proc/images/icon.gif 0600 root bin 359 41333 985675921
1 f none proc/index.cgi 0700 root bin 383 31342 985675921
1 f none proc/index_cpu.cgi 0700 root bin 972 9790 985675921
1 f none proc/index_run.cgi 0700 root bin 938 12868 985675922
1 f none proc/index_search.cgi 0700 root bin 5022 3277 985675921
1 f none proc/index_size.cgi 0700 root bin 1058 16395 985675921
1 f none proc/index_tree.cgi 0700 root bin 1113 22199 985675921
1 f none proc/index_user.cgi 0700 root bin 1047 16252 985675921
1 f none proc/kill_proc.cgi 0700 root bin 674 54071 985675921
1 f none proc/kill_proc_list.cgi 0700 root bin 745 60295 985675921
1 d none proc/lang 0700 root bin
1 f none proc/lang/de 0600 root bin 2055 65087 985675922
1 f none proc/lang/en 0600 root bin 2571 43133 985675922
1 f none proc/lang/es 0600 root bin 2850 4841 985675922
1 f none proc/lang/fr 0600 root bin 2155 17766 985675922
1 f none proc/lang/hu 0600 root bin 2012 9721 985675922
1 f none proc/lang/pl 0600 root bin 2874 19147 985675922
1 f none proc/lang/pt 0600 root bin 2171 13786 985675922
1 f none proc/lang/ru_RU 0600 root bin 1983 48100 985675922
1 f none proc/lang/ru_SU 0600 root bin 2011 26152 985675922
1 f none proc/lang/sv 0600 root bin 2706 64192 985675922
1 f none proc/lang/tr 0600 root bin 2253 42843 985675922
1 f none proc/lang/zh_CN 0600 root bin 2035 58854 985675922
1 f none proc/lang/zh_TW.Big5 0600 root bin 1697 16282 985675922
1 f none proc/linux-lib.pl 0600 root bin 4333 3361 985675921
1 f none proc/log_parser.pl 0600 root bin 977 9199 985675922
1 f none proc/low.skill 0600 root bin 9 770 985675922
1 f none proc/macos-lib.pl 0600 root bin 1645 55250 985675922
1 f none proc/medium.risk 0600 root bin 21 1904 985675922
1 f none proc/medium.skill 0600 root bin 9 770 985675922
1 f none proc/module.info 0600 root bin 589 63749 985675921
1 f none proc/osf-lib.pl 0600 root bin 1920 18204 985675922
1 f none proc/proc-lib.pl 0600 root bin 4378 11425 985675921
1 f none proc/renice_proc.cgi 0700 root bin 289 24582 985675921
1 f none proc/run.cgi 0700 root bin 810 62789 985675921
1 f none proc/sysv-lib.pl 0600 root bin 2276 47447 985675921
1 f none prototype 0644 root other 265370 42913 985676576
1 d none quota 0700 root bin
1 f none quota/acl_security.pl 0600 root bin 4989 9213 985675925
1 f none quota/activate.cgi 0700 root bin 632 51940 985675925
1 f none quota/check_quotas.cgi 0700 root bin 672 58153 985675925
1 f none quota/cobalt-linux-lib.pl 0600 root bin 9461 31073 985675925
1 f none quota/config-cobalt-linux 0600 root bin 521 50202 985675925
1 f none quota/config-corel-linux 0600 root bin 521 50202 985675925
1 f none quota/config-debian-linux 0600 root bin 521 50202 985675925
1 f none quota/config-freebsd 0600 root bin 515 49828 985675925
1 f none quota/config-hpux 0600 root bin 256 25432 985675925
1 f none quota/config-open-linux 0600 root bin 521 50202 985675925
1 f none quota/config-openbsd 0600 root bin 515 49828 985675925
1 f none quota/config-redhat-linux 0600 root bin 521 50202 985675925
1 f none quota/config-slackware-linux 0600 root bin 521 50202 985675925
1 f none quota/config-solaris 0600 root bin 256 25432 985675925
1 f none quota/config-suse-linux 0600 root bin 521 50202 985675925
1 f none quota/config-turbo-linux 0600 root bin 521 50202 985675925
1 f none quota/config-unixware 0600 root bin 256 25432 985675925
1 f none quota/config.info 0600 root bin 882 18329 985675925
1 f none quota/config.info.de 0600 root bin 1123 42607 985675925
1 f none quota/config.info.es 0600 root bin 1017 31761 985675925
1 f none quota/config.info.fr 0600 root bin 1107 40559 985675925
1 f none quota/config.info.pl 0600 root bin 1023 37220 985675925
1 f none quota/config.info.ru_RU 0600 root bin 1081 56174 985675925
1 f none quota/config.info.ru_SU 0600 root bin 1081 37794 985675925
1 f none quota/config.info.sv 0600 root bin 1102 45610 985675925
1 f none quota/config.info.tr 0600 root bin 1016 42203 985675925
1 f none quota/config.info.zh_CN 0600 root bin 750 46673 985675925
1 f none quota/config.info.zh_TW.Big5 0600 root bin 695 25140 985675925
1 f none quota/copy_group.cgi 0700 root bin 1286 39779 985675925
1 f none quota/copy_group_form.cgi 0700 root bin 1119 31767 985675925
1 f none quota/copy_user.cgi 0700 root bin 1205 34157 985675925
1 f none quota/copy_user_form.cgi 0700 root bin 1107 30665 985675925
1 f none quota/corel-linux-lib.pl 0600 root bin 9461 31073 985675925
1 f none quota/debian-linux-lib.pl 0600 root bin 9461 31073 985675925
1 f none quota/defaultacl 0600 root bin 86 7305 985675925
1 f none quota/edgrace.pl 0700 root bin 454 34487 985675925
1 f none quota/edit_group_quota.cgi 0700 root bin 2301 64668 985675925
1 f none quota/edit_user_quota.cgi 0700 root bin 2274 61727 985675925
1 f none quota/edquota.pl 0700 root bin 482 36195 985675925
1 f none quota/freebsd-lib.pl 0600 root bin 9057 62429 985675925
1 f none quota/group_filesys.cgi 0700 root bin 2532 14849 985675925
1 f none quota/group_grace_form.cgi 0700 root bin 1795 18415 985675925
1 f none quota/group_grace_save.cgi 0700 root bin 780 65444 985675925
1 d none quota/help 0700 root bin
1 f none quota/help/copy_group.es.html 0600 root bin 577 53059 985675925
1 f none quota/help/copy_group.fr.html 0600 root bin 540 49430 985675925
1 f none quota/help/copy_group.html 0600 root bin 508 45349 985675925
1 f none quota/help/copy_group.pl.html 0600 root bin 569 54091 985675925
1 f none quota/help/copy_group.sv.html 0600 root bin 547 50592 985675925
1 f none quota/help/copy_group.zh_TW.Big5.html 0600 root bin 355 49939 985675925
1 f none quota/help/copy_user.es.html 0600 root bin 614 56810 985675925
1 f none quota/help/copy_user.fr.html 0600 root bin 574 53147 985675925
1 f none quota/help/copy_user.html 0600 root bin 528 47118 985675925
1 f none quota/help/copy_user.pl.html 0600 root bin 682 2124 985675925
1 f none quota/help/copy_user.sv.html 0600 root bin 592 55783 985675925
1 f none quota/help/copy_user.zh_TW.Big5.html 0600 root bin 374 54457 985675925
1 f none quota/help/edit_group_quota.es.html 0600 root bin 223 20494 985675925
1 f none quota/help/edit_group_quota.fr.html 0600 root bin 207 19511 985675925
1 f none quota/help/edit_group_quota.html 0600 root bin 189 16785 985675925
1 f none quota/help/edit_group_quota.pl.html 0600 root bin 240 23810 985675925
1 f none quota/help/edit_group_quota.sv.html 0600 root bin 225 22089 985675925
1 f none quota/help/edit_group_quota.zh_TW.Big5.html 0600 root bin 141 21101 985675925
1 f none quota/help/edit_user_quota.es.html 0600 root bin 227 20932 985675925
1 f none quota/help/edit_user_quota.fr.html 0600 root bin 185 17415 985675925
1 f none quota/help/edit_user_quota.html 0600 root bin 187 16565 985675925
1 f none quota/help/edit_user_quota.pl.html 0600 root bin 253 25386 985675925
1 f none quota/help/edit_user_quota.sv.html 0600 root bin 232 23113 985675925
1 f none quota/help/edit_user_quota.zh_TW.Big5.html 0600 root bin 145 21961 985675925
1 f none quota/help/group_filesys.es.html 0600 root bin 687 63536 985675925
1 f none quota/help/group_filesys.fr.html 0600 root bin 708 483 985675925
1 f none quota/help/group_filesys.html 0600 root bin 600 54307 985675925
1 f none quota/help/group_filesys.pl.html 0600 root bin 700 3819 985675925
1 f none quota/help/group_filesys.sv.html 0600 root bin 572 55884 985675925
1 f none quota/help/group_filesys.zh_TW.Big5.html 0600 root bin 421 62783 985675925
1 f none quota/help/group_grace.es.html 0600 root bin 500 46515 985675925
1 f none quota/help/group_grace.fr.html 0600 root bin 354 32867 985675925
1 f none quota/help/group_grace.html 0600 root bin 405 36925 985675925
1 f none quota/help/group_grace.pl.html 0600 root bin 528 52581 985675925
1 f none quota/help/group_grace.sv.html 0600 root bin 422 41634 985675925
1 f none quota/help/group_grace.zh_TW.Big5.html 0600 root bin 219 33145 985675925
1 f none quota/help/intro.es.html 0600 root bin 2901 7513 985675925
1 f none quota/help/intro.fr.html 0600 root bin 2472 31164 985675925
1 f none quota/help/intro.html 0600 root bin 2358 16768 985675925
1 f none quota/help/intro.pl.html 0600 root bin 2893 26861 985675925
1 f none quota/help/intro.sv.html 0600 root bin 2258 23094 985675925
1 f none quota/help/intro.zh_TW.Big5.html 0600 root bin 1727 58000 985675925
1 f none quota/help/list_groups.es.html 0600 root bin 1454 4279 985675925
1 f none quota/help/list_groups.fr.html 0600 root bin 1442 4451 985675925
1 f none quota/help/list_groups.html 0600 root bin 1208 43466 985675925
1 f none quota/help/list_groups.pl.html 0600 root bin 1383 7862 985675925
1 f none quota/help/list_groups.sv.html 0600 root bin 1286 61222 985675925
1 f none quota/help/list_users.es.html 0600 root bin 1268 52893 985675925
1 f none quota/help/list_users.fr.html 0600 root bin 1232 49835 985675925
1 f none quota/help/list_users.html 0600 root bin 1024 26533 985675925
1 f none quota/help/list_users.pl.html 0600 root bin 1262 63634 985675925
1 f none quota/help/list_users.sv.html 0600 root bin 1143 48400 985675925
1 f none quota/help/list_users.zh_TW.Big5.html 0600 root bin 674 36211 985675925
1 f none quota/help/user_filesys.es.html 0600 root bin 683 63380 985675925
1 f none quota/help/user_filesys.fr.html 0600 root bin 705 121 985675925
1 f none quota/help/user_filesys.html 0600 root bin 594 53647 985675925
1 f none quota/help/user_filesys.pl.html 0600 root bin 745 9311 985675925
1 f none quota/help/user_filesys.sv.html 0600 root bin 591 58455 985675925
1 f none quota/help/user_filesys.zh_TW.Big5.html 0600 root bin 431 64933 985675925
1 f none quota/help/user_grace.es.html 0600 root bin 493 45940 985675925
1 f none quota/help/user_grace.fr.html 0600 root bin 356 32994 985675925
1 f none quota/help/user_grace.html 0600 root bin 402 36527 985675925
1 f none quota/help/user_grace.pl.html 0600 root bin 545 54678 985675925
1 f none quota/help/user_grace.sv.html 0600 root bin 432 42970 985675925
1 f none quota/help/user_grace.zh_TW.Big5.html 0600 root bin 221 33901 985675925
1 f none quota/hpux-lib.pl 0600 root bin 6232 32672 985675925
1 d none quota/images 0700 root bin
1 f none quota/images/icon.gif 0600 root bin 334 40887 985675923
1 f none quota/index.cgi 0700 root bin 2901 35198 985675925
1 d none quota/lang 0700 root bin
1 f none quota/lang/en 0600 root bin 8246 57845 985675925
1 f none quota/lang/es 0600 root bin 9627 929 985675925
1 f none quota/lang/pl 0600 root bin 9555 42333 985675925
1 f none quota/lang/pt 0600 root bin 26 2615 985675925
1 f none quota/lang/sv 0600 root bin 8487 58586 985675925
1 f none quota/lang/tr 0600 root bin 9263 43782 985675925
1 f none quota/lang/zh_CN 0600 root bin 6308 43714 985675925
1 f none quota/linux-lib.pl 0600 root bin 9461 31073 985675925
1 f none quota/list_groups.cgi 0700 root bin 3106 64691 985675925
1 f none quota/list_users.cgi 0700 root bin 4108 15567 985675924
1 f none quota/log_parser.pl 0600 root bin 1211 31705 985675925
1 f none quota/module.info 0600 root bin 493 51625 985675923
1 f none quota/notes 0700 root bin 1737 27368 985675925
1 f none quota/open-linux-lib.pl 0600 root bin 9461 31073 985675925
1 f none quota/openbsd-lib.pl 0600 root bin 9057 62429 985675925
1 f none quota/quota-lib.pl 0700 root bin 5090 16066 985675925
1 f none quota/redhat-linux-lib.pl 0600 root bin 9461 31073 985675925
1 f none quota/save_group_quota.cgi 0700 root bin 658 55975 985675925
1 f none quota/save_sync.cgi 0700 root bin 730 61349 985675925
1 f none quota/save_user_quota.cgi 0700 root bin 639 54197 985675925
1 f none quota/slackware-linux-lib.pl 0600 root bin 9461 31073 985675925
1 f none quota/solaris-lib.pl 0700 root bin 6511 53995 985675925
1 f none quota/suse-linux-lib.pl 0600 root bin 9461 31073 985675925
1 f none quota/turbo-linux-lib.pl 0600 root bin 9461 31073 985675925
1 f none quota/unixware-lib.pl 0700 root bin 6338 43042 985675925
1 f none quota/user_filesys.cgi 0700 root bin 2519 13351 985675925
1 f none quota/user_grace_form.cgi 0700 root bin 1789 17881 985675925
1 f none quota/user_grace_save.cgi 0700 root bin 775 64964 985675925
1 f none quota/useradmin_update.pl 0600 root bin 968 13729 985675925
1 d none raid 0700 root bin
1 f none raid/config 0600 root bin 41 3842 985675953
1 f none raid/config.info 0600 root bin 67 5959 985675953
1 f none raid/config.info.de 0600 root bin 68 6160 985675953
1 f none raid/config.info.es 0600 root bin 86 7678 985675953
1 f none raid/config.info.pl 0600 root bin 76 6748 985675953
1 f none raid/config.info.ru_RU 0600 root bin 70 10931 985675953
1 f none raid/config.info.ru_SU 0600 root bin 70 9837 985675953
1 f none raid/config.info.sv 0600 root bin 72 6944 985675953
1 f none raid/config.info.tr 0600 root bin 73 7328 985675953
1 f none raid/config.info.zh_CN 0600 root bin 52 6474 985675953
1 f none raid/config.info.zh_TW.Big5 0600 root bin 55 7500 985675953
1 f none raid/create_raid.cgi 0700 root bin 1995 22040 985675953
1 d none raid/images 0700 root bin
1 f none raid/images/0.gif 0600 root bin 556 65328 985675953
1 f none raid/images/0.ia.gif 0600 root bin 556 64702 985675953
1 f none raid/images/1.gif 0600 root bin 573 4807 985675953
1 f none raid/images/1.ia.gif 0600 root bin 573 4297 985675953
1 f none raid/images/4.gif 0600 root bin 1283 33606 985675953
1 f none raid/images/4.ia.gif 0600 root bin 1284 35876 985675953
1 f none raid/images/5.gif 0600 root bin 1211 18091 985675953
1 f none raid/images/5.ia.gif 0600 root bin 1209 15450 985675953
1 f none raid/images/disk.gif 0600 root bin 219 24798 985675953
1 f none raid/images/icon.gif 0600 root bin 1547 64202 985675953
1 f none raid/images/linear.gif 0600 root bin 571 65116 985675953
1 f none raid/images/linear.ia.gif 0600 root bin 571 64481 985675953
1 f none raid/index.cgi 0700 root bin 1369 46481 985675953
1 d none raid/lang 0700 root bin
1 f none raid/lang/de 0600 root bin 2691 54339 985675953
1 f none raid/lang/en 0600 root bin 2407 24323 985675953
1 f none raid/lang/es 0600 root bin 2802 63944 985675953
1 f none raid/lang/pl 0600 root bin 2665 61800 985675953
1 f none raid/lang/ru_RU 0600 root bin 2549 5030 985675953
1 f none raid/lang/ru_SU 0600 root bin 2555 36483 985675953
1 f none raid/lang/sv 0600 root bin 2534 44517 985675953
1 f none raid/lang/zh_CN 0600 root bin 1883 40552 985675953
1 f none raid/lang/zh_TW.Big5 0600 root bin 2013 62973 985675953
1 f none raid/log_parser.pl 0600 root bin 767 64096 985675953
1 f none raid/mkfs.cgi 0700 root bin 1043 19958 985675953
1 f none raid/module.info 0600 root bin 378 35991 985675953
1 f none raid/raid-lib.pl 0600 root bin 4079 50924 985675953
1 f none raid/raid_form.cgi 0700 root bin 4548 37021 985675953
1 f none raid/save_raid.cgi 0700 root bin 1388 48281 985675953
1 f none raid/view_raid.cgi 0700 root bin 3782 36978 985675953
1 f none referer_save.cgi 0700 root bin 315 27093 985675910
1 f none rpc.cgi 0700 root bin 2959 30773 985675910
1 d none samba 0700 root bin
1 f none samba/acl_security.pl 0600 root bin 10804 31485 985675918
1 f none samba/ask_epass.cgi 0700 root bin 1524 1960 985675917
1 f none samba/conf_misc.cgi 0700 root bin 5061 32532 985675917
1 f none samba/conf_net.cgi 0700 root bin 4693 56241 985675917
1 f none samba/conf_pass.cgi 0700 root bin 3788 51616 985675917
1 f none samba/conf_print.cgi 0700 root bin 2353 1234 985675917
1 f none samba/conf_smb.cgi 0700 root bin 6343 3950 985675917
1 f none samba/config-aix 0600 root bin 429 41359 985675917
1 f none samba/config-cobalt-linux 0600 root bin 435 41149 985675917
1 f none samba/config-corel-linux 0600 root bin 413 38952 985675917
1 f none samba/config-debian-linux 0600 root bin 401 37827 985675917
1 f none samba/config-debian-linux-2.1 0600 root bin 413 38952 985675917
1 f none samba/config-debian-linux-2.2 0600 root bin 413 38952 985675917
1 f none samba/config-freebsd 0600 root bin 547 51784 985675917
1 f none samba/config-hpux 0600 root bin 456 43935 985675917
1 f none samba/config-irix 0600 root bin 475 45750 985675917
1 f none samba/config-lfs-linux 0600 root bin 435 41149 985675917
1 f none samba/config-macos 0600 root bin 503 47509 985675918
1 f none samba/config-open-linux 0600 root bin 499 47543 985675917
1 f none samba/config-openbsd 0600 root bin 547 51784 985675917
1 f none samba/config-openserver 0600 root bin 475 45750 985675917
1 f none samba/config-osf1 0600 root bin 475 45750 985675917
1 f none samba/config-redhat-linux 0600 root bin 507 47719 985675917
1 f none samba/config-redhat-linux-7.0 0600 root bin 563 53042 985675917
1 f none samba/config-redhat-linux-7.1 0600 root bin 563 53042 985675918
1 f none samba/config-slackware-linux 0600 root bin 474 44837 985675917
1 f none samba/config-slackware-linux-7.0 0600 root bin 492 46598 985675917
1 f none samba/config-slackware-linux-7.1 0600 root bin 492 46598 985675918
1 f none samba/config-solaris 0600 root bin 475 45750 985675917
1 f none samba/config-suse-linux 0600 root bin 521 49329 985675917
1 f none samba/config-turbo-linux 0600 root bin 435 41149 985675917
1 f none samba/config-unixware 0600 root bin 475 45750 985675917
1 f none samba/config.info 0600 root bin 514 47607 985675917
1 f none samba/config.info.es 0600 root bin 655 62037 985675917
1 f none samba/config.info.fr 0600 root bin 504 46405 985675917
1 f none samba/config.info.pl 0600 root bin 609 59134 985675917
1 f none samba/config.info.ru_RU 0600 root bin 436 1079 985675918
1 f none samba/config.info.ru_SU 0600 root bin 436 61267 985675917
1 f none samba/config.info.sv 0600 root bin 610 61564 985675917
1 f none samba/config.info.tr 0600 root bin 424 42760 985675917
1 f none samba/config.info.zh_CN 0600 root bin 436 56579 985675917
1 f none samba/config.info.zh_TW.Big5 0600 root bin 383 47132 985675917
1 f none samba/create_copy.cgi 0700 root bin 903 11212 985675917
1 f none samba/defaultacl 0600 root bin 289 25584 985675917
1 f none samba/delete_euser.cgi 0700 root bin 523 45083 985675917
1 f none samba/delete_share.cgi 0700 root bin 691 58895 985675917
1 f none samba/edit_epass.cgi 0700 root bin 1025 17402 985675917
1 f none samba/edit_euser.cgi 0700 root bin 3091 62485 985675917
1 f none samba/edit_fmisc.cgi 0700 root bin 3350 20568 985675917
1 f none samba/edit_fname.cgi 0700 root bin 2395 5456 985675917
1 f none samba/edit_fperm.cgi 0700 root bin 2381 5251 985675917
1 f none samba/edit_fshare.cgi 0700 root bin 3903 55750 985675917
1 f none samba/edit_popts.cgi 0700 root bin 3932 4762 985675917
1 f none samba/edit_pshare.cgi 0700 root bin 4405 29662 985675917
1 f none samba/edit_sec.cgi 0700 root bin 5776 26664 985675917
1 f none samba/edit_sync.cgi 0700 root bin 999 20191 985675917
1 d none samba/help 0700 root bin
1 f none samba/help/help.es.html 0600 root bin 9123 31020 985675917
1 f none samba/help/help.html 0600 root bin 8975 13575 985675917
1 f none samba/help/help.sv.html 0600 root bin 9205 34553 985675917
1 d none samba/images 0700 root bin
1 f none samba/images/icon.gif 0600 root bin 1089 52489 985675917
1 f none samba/images/icon_0.gif 0600 root bin 313 36739 985675917
1 f none samba/images/icon_1.gif 0600 root bin 333 38555 985675917
1 f none samba/images/icon_2.gif 0600 root bin 275 34570 985675917
1 f none samba/images/icon_3.gif 0600 root bin 330 38844 985675917
1 f none samba/images/icon_4.gif 0600 root bin 460 53918 985675917
1 f none samba/images/icon_5.gif 0600 root bin 327 38178 985675917
1 f none samba/images/icon_6.gif 0600 root bin 380 41077 985675917
1 f none samba/images/icon_7.gif 0600 root bin 332 37563 985675917
1 f none samba/images/icon_8.gif 0600 root bin 493 57210 985675917
1 f none samba/images/icon_9.gif 0600 root bin 1163 25692 985675917
1 f none samba/index.cgi 0700 root bin 6681 17449 985675917
1 f none samba/kill_user.cgi 0700 root bin 776 429 985675917
1 d none samba/lang 0700 root bin
1 f none samba/lang/en 0600 root bin 17602 32197 985675917
1 f none samba/lang/es 0600 root bin 18231 49622 985675917
1 f none samba/lang/pl 0600 root bin 20602 48683 985675917
1 f none samba/lang/ru_RU 0600 root bin 14705 21523 985675917
1 f none samba/lang/ru_SU 0600 root bin 14742 62712 985675917
1 f none samba/lang/sv 0600 root bin 20088 49601 985675917
1 f none samba/lang/tr 0600 root bin 16008 20078 985675917
1 f none samba/lang/zh_CN 0600 root bin 11342 30723 985675917
1 f none samba/log_parser.pl 0600 root bin 1310 41491 985675918
1 f none samba/make_epass.cgi 0700 root bin 3356 53833 985675917
1 f none samba/module.info 0600 root bin 709 6554 985675917
1 f none samba/opts.pl.dev 0600 root bin 6524 9621 985675917
1 f none samba/restart.cgi 0700 root bin 981 17750 985675917
1 f none samba/samba-lib.pl 0600 root bin 14012 46639 985675917
1 f none samba/save_copy.cgi 0700 root bin 722 61764 985675917
1 f none samba/save_euser.cgi 0700 root bin 1594 64664 985675917
1 f none samba/save_fmisc.cgi 0700 root bin 1378 55368 985675917
1 f none samba/save_fname.cgi 0700 root bin 1071 28506 985675917
1 f none samba/save_fperm.cgi 0700 root bin 1169 37486 985675917
1 f none samba/save_fshare.cgi 0700 root bin 1909 26313 985675917
1 f none samba/save_misc.cgi 0700 root bin 2160 53541 985675917
1 f none samba/save_net.cgi 0700 root bin 2008 27882 985675917
1 f none samba/save_pass.cgi 0700 root bin 2372 61036 985675917
1 f none samba/save_popts.cgi 0700 root bin 1288 48373 985675917
1 f none samba/save_print.cgi 0700 root bin 977 18657 985675917
1 f none samba/save_pshare.cgi 0700 root bin 2046 35086 985675917
1 f none samba/save_sec.cgi 0700 root bin 2069 40657 985675917
1 f none samba/save_smb.cgi 0700 root bin 2232 54548 985675917
1 f none samba/save_sync.cgi 0700 root bin 646 55528 985675917
1 f none samba/start.cgi 0700 root bin 788 2266 985675917
1 f none samba/swat.cgi 0700 root bin 3099 53606 985675917
1 f none samba/swat_save.cgi 0700 root bin 574 49015 985675917
1 f none samba/useradmin_update.pl 0600 root bin 2519 634 985675917
1 f none samba/view_users.cgi 0700 root bin 1822 18017 985675917
1 d none sendmail 0700 root bin
1 f none sendmail/access-lib.pl 0600 root bin 4391 20000 985675932
1 f none sendmail/acl_security.pl 0600 root bin 10693 15535 985675932
1 f none sendmail/aliases-lib.pl 0600 root bin 5713 45883 985675932
1 f none sendmail/autoreply.pl 0700 root bin 1730 1061 985675933
1 f none sendmail/boxes-lib.pl 0600 root bin 17770 6798 985675932
1 f none sendmail/config-aix 0600 root bin 305 27757 985675932
1 f none sendmail/config-cobalt-linux 0600 root bin 315 29688 985675933
1 f none sendmail/config-corel-linux 0600 root bin 262 24464 985675932
1 f none sendmail/config-debian-linux 0600 root bin 257 23998 985675932
1 f none sendmail/config-debian-linux-2.1 0600 root bin 262 24464 985675932
1 f none sendmail/config-debian-linux-2.2 0600 root bin 262 24464 985675932
1 f none sendmail/config-freebsd 0600 root bin 296 27715 985675932
1 f none sendmail/config-freebsd-4.0 0600 root bin 301 28181 985675933
1 f none sendmail/config-freebsd-5.0 0600 root bin 301 28181 985675933
1 f none sendmail/config-hpux 0600 root bin 259 24367 985675932
1 f none sendmail/config-irix 0600 root bin 331 30992 985675932
1 f none sendmail/config-macos 0600 root bin 290 27317 985675932
1 f none sendmail/config-macos-1.3 0600 root bin 295 27783 985675933
1 f none sendmail/config-open-linux 0600 root bin 305 28642 985675932
1 f none sendmail/config-open-linux-2.5 0600 root bin 310 29108 985675932
1 f none sendmail/config-open-linux-3.1e 0600 root bin 310 29108 985675933
1 f none sendmail/config-openbsd 0600 root bin 273 25715 985675932
1 f none sendmail/config-openserver 0600 root bin 300 28337 985675932
1 f none sendmail/config-redhat-linux 0600 root bin 315 29688 985675932
1 f none sendmail/config-slackware-linux 0600 root bin 257 23998 985675932
1 f none sendmail/config-solaris 0600 root bin 300 28337 985675932
1 f none sendmail/config-solaris-7 0600 root bin 389 36802 985675932
1 f none sendmail/config-solaris-8 0600 root bin 389 36802 985675933
1 f none sendmail/config-suse-linux 0600 root bin 257 23998 985675932
1 f none sendmail/config-turbo-linux 0600 root bin 315 29688 985675933
1 f none sendmail/config-unixware 0600 root bin 300 28337 985675932
1 f none sendmail/config.info 0600 root bin 1146 39607 985675931
1 f none sendmail/config.info.de 0600 root bin 1179 43099 985675932
1 f none sendmail/config.info.es 0600 root bin 1307 55664 985675932
1 f none sendmail/config.info.fr 0600 root bin 1025 31251 985675932
1 f none sendmail/config.info.pl 0600 root bin 1186 48767 985675932
1 f none sendmail/config.info.ru_RU 0600 root bin 905 10762 985675933
1 f none sendmail/config.info.ru_SU 0600 root bin 905 63796 985675932
1 f none sendmail/config.info.sv 0600 root bin 1138 44875 985675931
1 f none sendmail/config.info.tr 0600 root bin 1121 50806 985675932
1 f none sendmail/config.info.zh_CN 0600 root bin 842 51957 985675932
1 f none sendmail/config.info.zh_TW.Big5 0600 root bin 901 56650 985675934
1 f none sendmail/defaultacl 0600 root bin 237 19197 985675932
1 f none sendmail/del_mailq.cgi 0700 root bin 693 55120 985675932
1 f none sendmail/del_mailqs.cgi 0700 root bin 922 8272 985675933
1 f none sendmail/delete_mail.cgi 0700 root bin 654 55834 985675932
1 f none sendmail/detach.cgi 0700 root bin 366 30830 985675933
1 f none sendmail/domain-lib.pl 0600 root bin 3096 50265 985675932
1 f none sendmail/edit_access.cgi 0700 root bin 418 35797 985675932
1 f none sendmail/edit_afile.cgi 0700 root bin 902 10220 985675932
1 f none sendmail/edit_alias.cgi 0700 root bin 631 53183 985675932
1 f none sendmail/edit_domain.cgi 0700 root bin 418 36010 985675932
1 f none sendmail/edit_file.cgi 0700 root bin 2437 6606 985675934
1 f none sendmail/edit_generic.cgi 0700 root bin 509 43511 985675932
1 f none sendmail/edit_mailer.cgi 0700 root bin 420 36417 985675932
1 f none sendmail/edit_rfile.cgi 0700 root bin 904 10577 985675932
1 f none sendmail/edit_virtuser.cgi 0700 root bin 521 45325 985675932
1 f none sendmail/flushq.cgi 0700 root bin 512 42406 985675932
1 f none sendmail/generics-lib.pl 0600 root bin 3142 55912 985675932
1 d none sendmail/help 0700 root bin
1 f none sendmail/help/alias_enabled.es.html 0600 root bin 158 14528 985675932
1 f none sendmail/help/alias_enabled.fr.html 0600 root bin 152 14392 985675932
1 f none sendmail/help/alias_enabled.html 0600 root bin 146 13259 985675932
1 f none sendmail/help/alias_enabled.pl.html 0600 root bin 168 15991 985675932
1 f none sendmail/help/alias_enabled.ru_RU.html 0600 root bin 160 29950 985675932
1 f none sendmail/help/alias_enabled.ru_SU.html 0600 root bin 160 26642 985675932
1 f none sendmail/help/alias_enabled.sv.html 0600 root bin 162 15168 985675932
1 f none sendmail/help/alias_enabled.zh_TW.Big5.html 0600 root bin 101 12885 985675932
1 f none sendmail/help/alias_name.es.html 0600 root bin 229 20851 985675932
1 f none sendmail/help/alias_name.fr.html 0600 root bin 206 18230 985675932
1 f none sendmail/help/alias_name.html 0600 root bin 184 16205 985675932
1 f none sendmail/help/alias_name.pl.html 0600 root bin 194 18214 985675932
1 f none sendmail/help/alias_name.ru_RU.html 0600 root bin 213 34525 985675932
1 f none sendmail/help/alias_name.ru_SU.html 0600 root bin 213 31107 985675932
1 f none sendmail/help/alias_name.sv.html 0600 root bin 204 19545 985675932
1 f none sendmail/help/alias_name.zh_TW.Big5.html 0600 root bin 150 18129 985675932
1 f none sendmail/help/alias_to.es.html 0600 root bin 1054 28458 985675932
1 f none sendmail/help/alias_to.fr.html 0600 root bin 923 19327 985675932
1 f none sendmail/help/alias_to.html 0600 root bin 938 16585 985675932
1 f none sendmail/help/alias_to.pl.html 0600 root bin 1071 36829 985675932
1 f none sendmail/help/alias_to.ru_RU.html 0600 root bin 1013 53201 985675932
1 f none sendmail/help/alias_to.ru_SU.html 0600 root bin 1013 32931 985675932
1 f none sendmail/help/alias_to.sv.html 0600 root bin 941 20203 985675932
1 f none sendmail/help/alias_to.zh_TW.Big5.html 0600 root bin 655 23935 985675932
1 f none sendmail/help/aliases.es.html 0600 root bin 1087 34379 985675932
1 f none sendmail/help/aliases.fr.html 0600 root bin 1073 33899 985675932
1 f none sendmail/help/aliases.html 0600 root bin 981 22987 985675932
1 f none sendmail/help/aliases.pl.html 0600 root bin 1096 41048 985675932
1 f none sendmail/help/aliases.ru_RU.html 0600 root bin 1113 2776 985675932
1 f none sendmail/help/aliases.ru_SU.html 0600 root bin 1113 46479 985675932
1 f none sendmail/help/aliases.sv.html 0600 root bin 950 24703 985675932
1 f none sendmail/help/aliases.zh_TW.Big5.html 0600 root bin 731 30339 985675932
1 f none sendmail/help/edit_alias.es.html 0600 root bin 240 22050 985675932
1 f none sendmail/help/edit_alias.fr.html 0600 root bin 120 11011 985675932
1 f none sendmail/help/edit_alias.html 0600 root bin 203 18026 985675932
1 f none sendmail/help/edit_alias.pl.html 0600 root bin 210 20437 985675932
1 f none sendmail/help/edit_alias.ru_RU.html 0600 root bin 248 46163 985675932
1 f none sendmail/help/edit_alias.ru_SU.html 0600 root bin 248 41095 985675932
1 f none sendmail/help/edit_alias.sv.html 0600 root bin 196 18239 985675932
1 f none sendmail/help/edit_alias.zh_TW.Big5.html 0600 root bin 153 19795 985675932
1 f none sendmail/help/intro.es.html 0600 root bin 2176 5704 985675932
1 f none sendmail/help/intro.fr.html 0600 root bin 2114 518 985675932
1 f none sendmail/help/intro.html 0600 root bin 1914 42152 985675932
1 f none sendmail/help/intro.pl.html 0600 root bin 2253 25078 985675932
1 f none sendmail/help/intro.ru_RU.html 0600 root bin 2294 23137 985675932
1 f none sendmail/help/intro.ru_SU.html 0600 root bin 2294 42000 985675932
1 f none sendmail/help/intro.sv.html 0600 root bin 1874 46282 985675932
1 f none sendmail/help/intro.zh_TW.Big5.html 0600 root bin 1335 50205 985675932
1 f none sendmail/help/opt_ConnectionRateThrottle.es.html 0600 root bin 230 21702 985675932
1 f none sendmail/help/opt_ConnectionRateThrottle.fr.html 0600 root bin 221 20943 985675932
1 f none sendmail/help/opt_ConnectionRateThrottle.html 0600 root bin 207 18846 985675932
1 f none sendmail/help/opt_ConnectionRateThrottle.pl.html 0600 root bin 296 30036 985675932
1 f none sendmail/help/opt_ConnectionRateThrottle.ru_RU.html 0600 root bin 231 44231 985675932
1 f none sendmail/help/opt_ConnectionRateThrottle.ru_SU.html 0600 root bin 231 38999 985675932
1 f none sendmail/help/opt_ConnectionRateThrottle.sv.html 0600 root bin 250 23625 985675932
1 f none sendmail/help/opt_ConnectionRateThrottle.zh_TW.Big5.html 0600 root bin 150 21482 985675932
1 f none sendmail/help/opt_DH.es.html 0600 root bin 356 33710 985675932
1 f none sendmail/help/opt_DH.fr.html 0600 root bin 367 35430 985675932
1 f none sendmail/help/opt_DH.html 0600 root bin 301 27492 985675932
1 f none sendmail/help/opt_DH.pl.html 0600 root bin 370 37509 985675932
1 f none sendmail/help/opt_DH.ru_RU.html 0600 root bin 366 5034 985675932
1 f none sendmail/help/opt_DH.ru_SU.html 0600 root bin 366 62232 985675932
1 f none sendmail/help/opt_DH.sv.html 0600 root bin 325 30404 985675932
1 f none sendmail/help/opt_DH.zh_TW.Big5.html 0600 root bin 228 34651 985675932
1 f none sendmail/help/opt_DR.es.html 0600 root bin 417 39039 985675932
1 f none sendmail/help/opt_DR.fr.html 0600 root bin 387 37018 985675932
1 f none sendmail/help/opt_DR.html 0600 root bin 326 29828 985675932
1 f none sendmail/help/opt_DR.pl.html 0600 root bin 403 40139 985675932
1 f none sendmail/help/opt_DR.ru_RU.html 0600 root bin 412 13018 985675932
1 f none sendmail/help/opt_DR.ru_SU.html 0600 root bin 412 3951 985675932
1 f none sendmail/help/opt_DR.sv.html 0600 root bin 345 32809 985675932
1 f none sendmail/help/opt_DR.zh_TW.Big5.html 0600 root bin 261 39126 985675932
1 f none sendmail/help/opt_DS.es.html 0600 root bin 344 32675 985675932
1 f none sendmail/help/opt_DS.fr.html 0600 root bin 340 32047 985675932
1 f none sendmail/help/opt_DS.html 0600 root bin 296 27277 985675932
1 f none sendmail/help/opt_DS.pl.html 0600 root bin 380 38837 985675932
1 f none sendmail/help/opt_DS.ru_RU.html 0600 root bin 364 4048 985675932
1 f none sendmail/help/opt_DS.ru_SU.html 0600 root bin 364 61425 985675932
1 f none sendmail/help/opt_DS.sv.html 0600 root bin 319 30173 985675932
1 f none sendmail/help/opt_DS.zh_TW.Big5.html 0600 root bin 217 32303 985675932
1 f none sendmail/help/opt_ForwardPath.es.html 0600 root bin 424 39512 985675932
1 f none sendmail/help/opt_ForwardPath.fr.html 0600 root bin 384 36017 985675932
1 f none sendmail/help/opt_ForwardPath.html 0600 root bin 337 30794 985675932
1 f none sendmail/help/opt_ForwardPath.pl.html 0600 root bin 392 39521 985675932
1 f none sendmail/help/opt_ForwardPath.ru_RU.html 0600 root bin 395 9252 985675932
1 f none sendmail/help/opt_ForwardPath.ru_SU.html 0600 root bin 395 461 985675932
1 f none sendmail/help/opt_ForwardPath.sv.html 0600 root bin 298 29170 985675932
1 f none sendmail/help/opt_ForwardPath.zh_TW.Big5.html 0600 root bin 245 34755 985675932
1 f none sendmail/help/opt_LogLevel.es.html 0600 root bin 169 15693 985675932
1 f none sendmail/help/opt_LogLevel.fr.html 0600 root bin 160 14839 985675932
1 f none sendmail/help/opt_LogLevel.html 0600 root bin 136 12338 985675932
1 f none sendmail/help/opt_LogLevel.pl.html 0600 root bin 158 15027 985675932
1 f none sendmail/help/opt_LogLevel.ru_RU.html 0600 root bin 168 28945 985675932
1 f none sendmail/help/opt_LogLevel.ru_SU.html 0600 root bin 168 25977 985675932
1 f none sendmail/help/opt_LogLevel.sv.html 0600 root bin 135 12560 985675932
1 f none sendmail/help/opt_LogLevel.zh_TW.Big5.html 0600 root bin 112 14453 985675932
1 f none sendmail/help/opt_MaxDaemonChildren.es.html 0600 root bin 248 24042 985675932
1 f none sendmail/help/opt_MaxDaemonChildren.fr.html 0600 root bin 235 22417 985675932
1 f none sendmail/help/opt_MaxDaemonChildren.html 0600 root bin 219 20349 985675932
1 f none sendmail/help/opt_MaxDaemonChildren.pl.html 0600 root bin 257 26099 985675932
1 f none sendmail/help/opt_MaxDaemonChildren.ru_RU.html 0600 root bin 289 56670 985675932
1 f none sendmail/help/opt_MaxDaemonChildren.ru_SU.html 0600 root bin 289 49887 985675932
1 f none sendmail/help/opt_MaxDaemonChildren.sv.html 0600 root bin 264 25679 985675932
1 f none sendmail/help/opt_MaxDaemonChildren.zh_TW.Big5.html 0600 root bin 156 21833 985675932
1 f none sendmail/help/opt_MaxMessageSize.es.html 0600 root bin 233 22224 985675932
1 f none sendmail/help/opt_MaxMessageSize.fr.html 0600 root bin 239 21859 985675932
1 f none sendmail/help/opt_MaxMessageSize.html 0600 root bin 205 18819 985675932
1 f none sendmail/help/opt_MaxMessageSize.pl.html 0600 root bin 249 24751 985675932
1 f none sendmail/help/opt_MaxMessageSize.ru_RU.html 0600 root bin 267 52244 985675932
1 f none sendmail/help/opt_MaxMessageSize.ru_SU.html 0600 root bin 267 46018 985675932
1 f none sendmail/help/opt_MaxMessageSize.sv.html 0600 root bin 182 17442 985675932
1 f none sendmail/help/opt_MaxMessageSize.zh_TW.Big5.html 0600 root bin 163 23697 985675932
1 f none sendmail/help/opt_MaxQueueRunSize.es.html 0600 root bin 172 16377 985675932
1 f none sendmail/help/opt_MaxQueueRunSize.fr.html 0600 root bin 176 16119 985675932
1 f none sendmail/help/opt_MaxQueueRunSize.html 0600 root bin 155 14304 985675932
1 f none sendmail/help/opt_MaxQueueRunSize.pl.html 0600 root bin 190 19003 985675932
1 f none sendmail/help/opt_MaxQueueRunSize.ru_RU.html 0600 root bin 177 32508 985675932
1 f none sendmail/help/opt_MaxQueueRunSize.ru_SU.html 0600 root bin 177 28880 985675932
1 f none sendmail/help/opt_MaxQueueRunSize.sv.html 0600 root bin 145 13793 985675932
1 f none sendmail/help/opt_MaxQueueRunSize.zh_TW.Big5.html 0600 root bin 101 13195 985675932
1 f none sendmail/help/opt_MinFreeBlocks.es.html 0600 root bin 309 28689 985675932
1 f none sendmail/help/opt_MinFreeBlocks.fr.html 0600 root bin 361 33872 985675932
1 f none sendmail/help/opt_MinFreeBlocks.html 0600 root bin 289 26554 985675932
1 f none sendmail/help/opt_MinFreeBlocks.pl.html 0600 root bin 353 35284 985675932
1 f none sendmail/help/opt_MinFreeBlocks.ru_RU.html 0600 root bin 402 12604 985675932
1 f none sendmail/help/opt_MinFreeBlocks.ru_SU.html 0600 root bin 402 3452 985675932
1 f none sendmail/help/opt_MinFreeBlocks.sv.html 0600 root bin 321 31615 985675932
1 f none sendmail/help/opt_MinFreeBlocks.zh_TW.Big5.html 0600 root bin 194 28486 985675932
1 f none sendmail/help/opt_MinQueueAge.es.html 0600 root bin 178 16621 985675932
1 f none sendmail/help/opt_MinQueueAge.fr.html 0600 root bin 194 17299 985675932
1 f none sendmail/help/opt_MinQueueAge.html 0600 root bin 160 14446 985675932
1 f none sendmail/help/opt_MinQueueAge.pl.html 0600 root bin 178 17830 985675932
1 f none sendmail/help/opt_MinQueueAge.ru_RU.html 0600 root bin 213 37258 985675932
1 f none sendmail/help/opt_MinQueueAge.ru_SU.html 0600 root bin 213 33212 985675932
1 f none sendmail/help/opt_MinQueueAge.sv.html 0600 root bin 186 18786 985675932
1 f none sendmail/help/opt_MinQueueAge.zh_TW.Big5.html 0600 root bin 112 14611 985675932
1 f none sendmail/help/opt_PostMasterCopy.es.html 0600 root bin 300 28012 985675932
1 f none sendmail/help/opt_PostMasterCopy.fr.html 0600 root bin 304 27972 985675932
1 f none sendmail/help/opt_PostMasterCopy.html 0600 root bin 291 26661 985675932
1 f none sendmail/help/opt_PostMasterCopy.pl.html 0600 root bin 356 34890 985675932
1 f none sendmail/help/opt_PostMasterCopy.ru_RU.html 0600 root bin 354 63880 985675932
1 f none sendmail/help/opt_PostMasterCopy.ru_SU.html 0600 root bin 354 56683 985675932
1 f none sendmail/help/opt_PostMasterCopy.sv.html 0600 root bin 288 27649 985675932
1 f none sendmail/help/opt_PostMasterCopy.zh_TW.Big5.html 0600 root bin 199 24999 985675932
1 f none sendmail/help/opt_QueueDirectory.es.html 0600 root bin 217 20158 985675932
1 f none sendmail/help/opt_QueueDirectory.fr.html 0600 root bin 252 22910 985675932
1 f none sendmail/help/opt_QueueDirectory.html 0600 root bin 199 18383 985675932
1 f none sendmail/help/opt_QueueDirectory.pl.html 0600 root bin 203 19451 985675932
1 f none sendmail/help/opt_QueueDirectory.ru_RU.html 0600 root bin 222 41160 985675932
1 f none sendmail/help/opt_QueueDirectory.ru_SU.html 0600 root bin 222 36515 985675932
1 f none sendmail/help/opt_QueueDirectory.sv.html 0600 root bin 216 20438 985675932
1 f none sendmail/help/opt_QueueDirectory.zh_TW.Big5.html 0600 root bin 137 18535 985675932
1 f none sendmail/help/opt_QueueLA.es.html 0600 root bin 292 27511 985675932
1 f none sendmail/help/opt_QueueLA.fr.html 0600 root bin 302 27812 985675932
1 f none sendmail/help/opt_QueueLA.html 0600 root bin 258 24057 985675932
1 f none sendmail/help/opt_QueueLA.pl.html 0600 root bin 350 35996 985675932
1 f none sendmail/help/opt_QueueLA.ru_RU.html 0600 root bin 315 62978 985675932
1 f none sendmail/help/opt_QueueLA.ru_SU.html 0600 root bin 315 55260 985675932
1 f none sendmail/help/opt_QueueLA.sv.html 0600 root bin 317 31194 985675932
1 f none sendmail/help/opt_QueueLA.zh_TW.Big5.html 0600 root bin 159 23614 985675932
1 f none sendmail/help/opt_RefuseLA.es.html 0600 root bin 336 31765 985675932
1 f none sendmail/help/opt_RefuseLA.fr.html 0600 root bin 358 33436 985675932
1 f none sendmail/help/opt_RefuseLA.html 0600 root bin 299 27748 985675932
1 f none sendmail/help/opt_RefuseLA.pl.html 0600 root bin 388 39190 985675932
1 f none sendmail/help/opt_RefuseLA.ru_RU.html 0600 root bin 339 207 985675932
1 f none sendmail/help/opt_RefuseLA.ru_SU.html 0600 root bin 339 57992 985675932
1 f none sendmail/help/opt_RefuseLA.sv.html 0600 root bin 362 35132 985675932
1 f none sendmail/help/opt_RefuseLA.zh_TW.Big5.html 0600 root bin 193 28943 985675932
1 f none sendmail/help/opt_SendMimeErrors.es.html 0600 root bin 302 27802 985675932
1 f none sendmail/help/opt_SendMimeErrors.fr.html 0600 root bin 281 25941 985675932
1 f none sendmail/help/opt_SendMimeErrors.html 0600 root bin 254 22980 985675932
1 f none sendmail/help/opt_SendMimeErrors.pl.html 0600 root bin 357 35380 985675932
1 f none sendmail/help/opt_SendMimeErrors.ru_RU.html 0600 root bin 298 55612 985675932
1 f none sendmail/help/opt_SendMimeErrors.ru_SU.html 0600 root bin 298 49092 985675932
1 f none sendmail/help/opt_SendMimeErrors.sv.html 0600 root bin 265 24728 985675932
1 f none sendmail/help/opt_SendMimeErrors.zh_TW.Big5.html 0600 root bin 182 23731 985675932
1 f none sendmail/help/opt_Timeout.queuereturn.es.html 0600 root bin 463 43525 985675932
1 f none sendmail/help/opt_Timeout.queuereturn.fr.html 0600 root bin 453 41602 985675932
1 f none sendmail/help/opt_Timeout.queuereturn.html 0600 root bin 401 36641 985675932
1 f none sendmail/help/opt_Timeout.queuereturn.pl.html 0600 root bin 465 46481 985675932
1 f none sendmail/help/opt_Timeout.queuereturn.ru_RU.html 0600 root bin 431 15652 985675932
1 f none sendmail/help/opt_Timeout.queuereturn.ru_SU.html 0600 root bin 431 6110 985675932
1 f none sendmail/help/opt_Timeout.queuereturn.sv.html 0600 root bin 412 40505 985675932
1 f none sendmail/help/opt_Timeout.queuereturn.zh_TW.Big5.html 0600 root bin 283 41773 985675932
1 f none sendmail/help/opt_Timeout.queuewarn.es.html 0600 root bin 464 43722 985675932
1 f none sendmail/help/opt_Timeout.queuewarn.fr.html 0600 root bin 434 40240 985675932
1 f none sendmail/help/opt_Timeout.queuewarn.html 0600 root bin 395 36105 985675932
1 f none sendmail/help/opt_Timeout.queuewarn.pl.html 0600 root bin 444 44817 985675932
1 f none sendmail/help/opt_Timeout.queuewarn.ru_RU.html 0600 root bin 405 9549 985675932
1 f none sendmail/help/opt_Timeout.queuewarn.ru_SU.html 0600 root bin 405 1003 985675932
1 f none sendmail/help/opt_Timeout.queuewarn.sv.html 0600 root bin 370 36314 985675932
1 f none sendmail/help/opt_Timeout.queuewarn.zh_TW.Big5.html 0600 root bin 248 35337 985675932
1 f none sendmail/help/opt_dmode.es.html 0600 root bin 635 56399 985675932
1 f none sendmail/help/opt_dmode.html 0600 root bin 562 48658 985675932
1 f none sendmail/help/opt_dmode.pl.html 0600 root bin 672 62133 985675932
1 f none sendmail/help/units.es.html 0600 root bin 256 22582 985675932
1 f none sendmail/help/units.fr.html 0600 root bin 283 25353 985675932
1 f none sendmail/help/units.html 0600 root bin 235 19861 985675932
1 f none sendmail/help/units.pl.html 0600 root bin 258 23120 985675932
1 f none sendmail/help/units.ru_RU.html 0600 root bin 274 43485 985675932
1 f none sendmail/help/units.ru_SU.html 0600 root bin 274 38909 985675932
1 f none sendmail/help/units.sv.html 0600 root bin 251 22007 985675932
1 f none sendmail/help/units.zh_TW.Big5.html 0600 root bin 176 19394 985675932
1 d none sendmail/images 0700 root bin
1 f none sendmail/images/access.gif 0600 root bin 290 34434 985675931
1 f none sendmail/images/aliases.gif 0600 root bin 397 47679 985675931
1 f none sendmail/images/attach.gif 0600 root bin 77 4645 985675931
1 f none sendmail/images/boxes.gif 0600 root bin 367 47932 985675931
1 f none sendmail/images/cgs.gif 0600 root bin 376 48320 985675931
1 f none sendmail/images/cws.gif 0600 root bin 266 31279 985675931
1 f none sendmail/images/domains.gif 0600 root bin 256 30700 985675931
1 f none sendmail/images/generics.gif 0600 root bin 389 49281 985675931
1 f none sendmail/images/icon.gif 0600 root bin 314 42505 985675931
1 f none sendmail/images/mailers.gif 0600 root bin 248 28427 985675931
1 f none sendmail/images/mailq.gif 0600 root bin 374 42022 985675931
1 f none sendmail/images/masq.gif 0600 root bin 335 37345 985675931
1 f none sendmail/images/opts.gif 0600 root bin 460 53918 985675931
1 f none sendmail/images/p1.gif 0600 root bin 55 3891 985675931
1 f none sendmail/images/p2.gif 0600 root bin 55 3822 985675931
1 f none sendmail/images/relay.gif 0600 root bin 392 50435 985675931
1 f none sendmail/images/trusts.gif 0600 root bin 390 43396 985675931
1 f none sendmail/images/virtusers.gif 0600 root bin 451 55525 985675931
1 f none sendmail/index.cgi 0700 root bin 4266 28891 985675931
1 d none sendmail/lang 0700 root bin
1 f none sendmail/lang/de 0600 root bin 24212 23783 985675932
1 f none sendmail/lang/en 0600 root bin 23272 8283 985675932
1 f none sendmail/lang/es 0600 root bin 26673 42022 985675932
1 f none sendmail/lang/fr 0600 root bin 21203 16626 985675932
1 f none sendmail/lang/pl 0600 root bin 26870 59991 985675933
1 f none sendmail/lang/pt 0600 root bin 20946 6741 985675932
1 f none sendmail/lang/ru_RU 0600 root bin 20023 4940 985675933
1 f none sendmail/lang/ru_SU 0600 root bin 20056 35293 985675932
1 f none sendmail/lang/sv 0600 root bin 23891 59768 985675933
1 f none sendmail/lang/tr 0600 root bin 23442 22168 985675933
1 f none sendmail/lang/zh_CN 0600 root bin 14720 43636 985675933
1 f none sendmail/lang/zh_TW.Big5 0600 root bin 14756 5634 985675932
1 f none sendmail/list_access.cgi 0700 root bin 1762 10213 985675932
1 f none sendmail/list_aliases.cgi 0700 root bin 2385 54522 985675932
1 f none sendmail/list_boxes.cgi 0700 root bin 1980 25691 985675932
1 f none sendmail/list_cgs.cgi 0700 root bin 1227 34136 985675932
1 f none sendmail/list_cws.cgi 0700 root bin 1261 36876 985675932
1 f none sendmail/list_domains.cgi 0700 root bin 1747 9466 985675932
1 f none sendmail/list_generics.cgi 0700 root bin 2679 25592 985675932
1 f none sendmail/list_mail.cgi 0700 root bin 4638 47981 985675932
1 f none sendmail/list_mailers.cgi 0700 root bin 2005 31359 985675932
1 f none sendmail/list_mailq.cgi 0700 root bin 2924 27968 985675932
1 f none sendmail/list_masq.cgi 0700 root bin 1469 53780 985675932
1 f none sendmail/list_opts.cgi 0700 root bin 6420 4200 985675932
1 f none sendmail/list_relay.cgi 0700 root bin 1568 62075 985675932
1 f none sendmail/list_trusts.cgi 0700 root bin 1269 38054 985675932
1 f none sendmail/list_us 0600 root bin 1 10 985675933
1 f none sendmail/list_virtusers.cgi 0700 root bin 2407 64712 985675932
1 f none sendmail/log_parser.pl 0600 root bin 1188 31298 985675932
1 f none sendmail/mail_search.cgi 0700 root bin 2469 4317 985675934
1 f none sendmail/mailers-lib.pl 0600 root bin 4420 24466 985675932
1 f none sendmail/module.info 0600 root bin 603 62520 985675931
1 f none sendmail/qdetach.cgi 0700 root bin 489 41134 985675933
1 f none sendmail/reply_mail.cgi 0700 root bin 5573 51634 985675933
1 f none sendmail/save_access.cgi 0700 root bin 1611 61521 985675932
1 f none sendmail/save_afile.cgi 0700 root bin 393 32238 985675932
1 f none sendmail/save_alias.cgi 0700 root bin 3309 61709 985675932
1 f none sendmail/save_cgs.cgi 0700 root bin 1088 21892 985675932
1 f none sendmail/save_cws.cgi 0700 root bin 1132 25415 985675932
1 f none sendmail/save_domain.cgi 0700 root bin 1185 31328 985675932
1 f none sendmail/save_file.cgi 0700 root bin 2497 7846 985675934
1 f none sendmail/save_generic.cgi 0700 root bin 1349 45434 985675932
1 f none sendmail/save_mailer.cgi 0700 root bin 1440 52099 985675932
1 f none sendmail/save_masq.cgi 0700 root bin 1406 46972 985675932
1 f none sendmail/save_opts.cgi 0700 root bin 2577 17784 985675932
1 f none sendmail/save_relay.cgi 0700 root bin 1070 21682 985675932
1 f none sendmail/save_rfile.cgi 0700 root bin 366 30223 985675932
1 f none sendmail/save_trusts.cgi 0700 root bin 1118 25501 985675932
1 f none sendmail/save_virtuser.cgi 0700 root bin 2660 19121 985675932
1 f none sendmail/send_mail.cgi 0700 root bin 4196 59552 985675933
1 f none sendmail/sendmail-lib.pl 0600 root bin 5200 18397 985675931
1 f none sendmail/start.cgi 0700 root bin 339 28599 985675932
1 f none sendmail/stop.cgi 0700 root bin 497 42012 985675931
1 f none sendmail/useradmin_update.pl 0600 root bin 1122 25128 985675932
1 f none sendmail/view_mail.cgi 0700 root bin 3793 45580 985675933
1 f none sendmail/view_mailq.cgi 0700 root bin 2551 9287 985675933
1 f none sendmail/virtusers-lib.pl 0600 root bin 4976 6636 985675932
1 d none servers 0700 root bin
1 f none servers/acl_security.pl 0600 root bin 1889 18878 985675942
1 f none servers/config 0600 root bin 22 1959 985675941
1 f none servers/config.info 0600 root bin 96 8769 985675941
1 f none servers/config.info.de 0600 root bin 121 10831 985675941
1 f none servers/config.info.es 0600 root bin 121 11477 985675941
1 f none servers/config.info.hu 0600 root bin 139 13964 985675941
1 f none servers/config.info.pl 0600 root bin 110 10690 985675942
1 f none servers/config.info.sv 0600 root bin 96 9127 985675941
1 f none servers/config.info.tr 0600 root bin 110 11393 985675941
1 f none servers/config.info.zh_CN 0600 root bin 64 9280 985675942
1 f none servers/config.info.zh_TW.Big5 0600 root bin 46 5814 985675941
1 f none servers/defaultacl 0600 root bin 24 1970 985675942
1 f none servers/edit_serv.cgi 0700 root bin 2208 52847 985675941
1 f none servers/find.cgi 0700 root bin 2768 9918 985675941
1 d none servers/images 0700 root bin
1 f none servers/images/cal_spin.gif 0600 root bin 37393 15581 985675941
1 f none servers/images/caldera.gif 0600 root bin 2740 55513 985675941
1 f none servers/images/debian.gif 0600 root bin 2155 8335 985675941
1 f none servers/images/freebsd.gif 0600 root bin 1664 481 985675941
1 f none servers/images/hpux.gif 0600 root bin 435 50957 985675941
1 f none servers/images/icon.gif 0600 root bin 1526 31216 985675941
1 f none servers/images/irix.gif 0600 root bin 718 31023 985675941
1 f none servers/images/linux.gif 0600 root bin 2028 31581 985675941
1 f none servers/images/mac.gif 0600 root bin 2203 2868 985675941
1 f none servers/images/mandrake.gif 0600 root bin 997 9791 985675941
1 f none servers/images/openbsd.gif 0600 root bin 1664 481 985675941
1 f none servers/images/redhat.gif 0600 root bin 1385 16437 985675941
1 f none servers/images/sco.gif 0600 root bin 502 60123 985675941
1 f none servers/images/solaris.gif 0600 root bin 858 61299 985675941
1 f none servers/images/suse.gif 0600 root bin 496 3496 985675941
1 f none servers/images/unknown.gif 0600 root bin 2256 52530 985675941
1 f none servers/index.cgi 0700 root bin 1472 51676 985675941
1 d none servers/lang 0700 root bin
1 f none servers/lang/de 0600 root bin 1258 52446 985675941
1 f none servers/lang/en 0600 root bin 1632 21726 985675941
1 f none servers/lang/es 0600 root bin 1897 49366 985675941
1 f none servers/lang/fr 0600 root bin 1044 36179 985675941
1 f none servers/lang/hu 0600 root bin 1516 18409 985675941
1 f none servers/lang/pl 0600 root bin 1905 57028 985675941
1 f none servers/lang/pt 0600 root bin 972 28504 985675941
1 f none servers/lang/ru_RU 0600 root bin 948 26957 985675941
1 f none servers/lang/ru_SU 0600 root bin 952 13232 985675941
1 f none servers/lang/sv 0600 root bin 1737 38190 985675941
1 f none servers/lang/tr 0600 root bin 1209 57314 985675941
1 f none servers/lang/zh_CN 0600 root bin 1276 54894 985675941
1 f none servers/lang/zh_TW.Big5 0600 root bin 756 32931 985675941
1 f none servers/link.cgi 0700 root bin 4341 9274 985675941
1 f none servers/log_parser.pl 0600 root bin 655 55180 985675941
1 f none servers/module.info 0600 root bin 419 43943 985675941
1 f none servers/save_serv.cgi 0700 root bin 1103 23239 985675941
1 f none servers/servers-lib.pl 0600 root bin 1514 56355 985675941
1 f none session_login.cgi 0700 root bin 1503 62257 985675910
1 f none setup.sh 0700 root bin 15590 49995 985675910
1 d none shell 0700 root bin
1 f none shell/acl_security.pl 0600 root bin 456 39521 985675967
1 f none shell/defaultacl 0600 root bin 10 970 985675967
1 d none shell/images 0700 root bin
1 f none shell/images/icon.gif 0600 root bin 2678 14014 985675967
1 f none shell/images/shell.jpg 0600 root bin 46154 22692 985675967
1 f none shell/index.cgi 0700 root bin 1690 1477 985675967
1 d none shell/lang 0700 root bin
1 f none shell/lang/en 0600 root bin 298 28051 985675967
1 f none shell/lang/pl 0600 root bin 333 33745 985675967
1 f none shell/module.info 0600 root bin 62 5844 985675967
1 f none shell/shell-lib.pl 0600 root bin 57 4201 985675967
1 d none software 0700 root bin
1 f none software/apt-lib.pl 0600 root bin 2039 41498 985675926
1 f none software/apt_upgrade.cgi 0700 root bin 1743 6874 985675926
1 f none software/close.cgi 0700 root bin 377 31666 985675926
1 f none software/closeall.cgi 0700 root bin 150 12982 985675926
1 f none software/config-cobalt-linux 0600 root bin 19 1894 985675926
1 f none software/config-corel-linux 0600 root bin 22 2170 985675926
1 f none software/config-debian-linux 0600 root bin 22 2170 985675926
1 f none software/config-freebsd 0600 root bin 23 2290 985675926
1 f none software/config-hpux 0600 root bin 20 2012 985675926
1 f none software/config-open-linux 0600 root bin 19 1894 985675926
1 f none software/config-openbsd 0600 root bin 23 2306 985675926
1 f none software/config-openserver 0600 root bin 22 2178 985675926
1 f none software/config-redhat-linux 0600 root bin 19 1894 985675925
1 f none software/config-slackware-linux 0600 root bin 25 2516 985675926
1 f none software/config-solaris 0600 root bin 22 2178 985675925
1 f none software/config-suse-linux 0600 root bin 19 1894 985675925
1 f none software/config-turbo-linux 0600 root bin 19 1894 985675926
1 f none software/config-unixware 0600 root bin 22 2178 985675925
1 f none software/config.info 0600 root bin 126 11774 985675925
1 f none software/config.info.de 0600 root bin 124 11527 985675926
1 f none software/config.info.es 0600 root bin 131 12285 985675926
1 f none software/config.info.fr 0600 root bin 133 12664 985675926
1 f none software/config.info.pl 0600 root bin 129 12217 985675926
1 f none software/config.info.ru_RU 0600 root bin 128 15193 985675926
1 f none software/config.info.ru_SU 0600 root bin 128 14490 985675926
1 f none software/config.info.sv 0600 root bin 224 21124 985675926
1 f none software/config.info.tr 0600 root bin 122 11535 985675926
1 f none software/config.info.zh_CN 0600 root bin 115 12209 985675926
1 f none software/config.info.zh_TW.Big5 0600 root bin 117 12026 985675926
1 f none software/debian-lib.pl 0600 root bin 4958 7881 985675926
1 f none software/delete_file.cgi 0700 root bin 176 14918 985675926
1 f none software/delete_pack.cgi 0700 root bin 1327 41727 985675925
1 f none software/do_install.cgi 0700 root bin 1405 44535 985675925
1 f none software/edit_pack.cgi 0700 root bin 1940 32924 985675925
1 f none software/file_info.cgi 0700 root bin 2245 44376 985675925
1 f none software/freebsd-lib.pl 0600 root bin 4526 33774 985675926
1 d none software/help 0700 root bin
1 f none software/help/delete.es.html 0600 root bin 287 26584 985675925
1 f none software/help/delete.fr.html 0600 root bin 267 25841 985675925
1 f none software/help/delete.html 0600 root bin 248 22423 985675925
1 f none software/help/delete.hu.html 0600 root bin 251 25772 985675925
1 f none software/help/delete.pl.html 0600 root bin 273 27240 985675926
1 f none software/help/delete.sv.html 0600 root bin 227 21177 985675925
1 f none software/help/delete.zh_TW.Big5.html 0600 root bin 173 25631 985675925
1 f none software/help/edit_pack.es.html 0600 root bin 286 26838 985675925
1 f none software/help/edit_pack.fr.html 0600 root bin 292 27660 985675925
1 f none software/help/edit_pack.html 0600 root bin 251 22693 985675925
1 f none software/help/edit_pack.hu.html 0600 root bin 261 26555 985675925
1 f none software/help/edit_pack.pl.html 0600 root bin 262 25413 985675926
1 f none software/help/edit_pack.sv.html 0600 root bin 230 21600 985675925
1 f none software/help/edit_pack.zh_TW.Big5.html 0600 root bin 163 22607 985675925
1 f none software/help/excludedocs.es.html 0600 root bin 174 16729 985675925
1 f none software/help/excludedocs.fr.html 0600 root bin 172 16064 985675925
1 f none software/help/excludedocs.html 0600 root bin 168 15421 985675925
1 f none software/help/excludedocs.hu.html 0600 root bin 141 14047 985675925
1 f none software/help/excludedocs.pl.html 0600 root bin 184 17998 985675926
1 f none software/help/excludedocs.sv.html 0600 root bin 160 15284 985675925
1 f none software/help/excludedocs.zh_TW.Big5.html 0600 root bin 94 13036 985675925
1 f none software/help/file_info.es.html 0600 root bin 291 27403 985675925
1 f none software/help/file_info.fr.html 0600 root bin 268 25042 985675925
1 f none software/help/file_info.html 0600 root bin 250 22424 985675925
1 f none software/help/file_info.pl.html 0600 root bin 277 27313 985675926
1 f none software/help/file_info.sv.html 0600 root bin 226 21528 985675925
1 f none software/help/file_info.zh_TW.Big5.html 0600 root bin 142 21176 985675925
1 f none software/help/install.es.html 0600 root bin 183 17494 985675925
1 f none software/help/install.fr.html 0600 root bin 193 18291 985675925
1 f none software/help/install.html 0600 root bin 173 15690 985675925
1 f none software/help/install.pl.html 0600 root bin 157 14834 985675926
1 f none software/help/install.sv.html 0600 root bin 154 14748 985675925
1 f none software/help/install.zh_TW.Big5.html 0600 root bin 90 12293 985675925
1 f none software/help/intro.es.html 0600 root bin 2322 21475 985675925
1 f none software/help/intro.fr.html 0600 root bin 2384 30703 985675925
1 f none software/help/intro.html 0600 root bin 2022 51766 985675925
1 f none software/help/intro.pl.html 0600 root bin 2305 30438 985675926
1 f none software/help/intro.sv.html 0600 root bin 2020 63013 985675925
1 f none software/help/intro.zh_TW.Big5.html 0600 root bin 1348 61875 985675925
1 f none software/help/list_pack.es.html 0600 root bin 974 22774 985675925
1 f none software/help/list_pack.fr.html 0600 root bin 928 17843 985675925
1 f none software/help/list_pack.html 0600 root bin 828 6916 985675925
1 f none software/help/list_pack.pl.html 0600 root bin 966 26099 985675926
1 f none software/help/list_pack.sv.html 0600 root bin 750 3988 985675925
1 f none software/help/list_pack.zh_TW.Big5.html 0600 root bin 607 17689 985675925
1 f none software/help/nodeps.es.html 0600 root bin 182 17147 985675925
1 f none software/help/nodeps.fr.html 0600 root bin 201 18905 985675925
1 f none software/help/nodeps.html 0600 root bin 190 17352 985675925
1 f none software/help/nodeps.pl.html 0600 root bin 209 20807 985675926
1 f none software/help/nodeps.sv.html 0600 root bin 175 16421 985675925
1 f none software/help/nodeps.zh_TW.Big5.html 0600 root bin 118 16916 985675925
1 f none software/help/noscripts.es.html 0600 root bin 221 21381 985675925
1 f none software/help/noscripts.fr.html 0600 root bin 200 19036 985675925
1 f none software/help/noscripts.html 0600 root bin 193 17780 985675925
1 f none software/help/noscripts.pl.html 0600 root bin 192 18960 985675926
1 f none software/help/noscripts.sv.html 0600 root bin 202 19687 985675925
1 f none software/help/noscripts.zh_TW.Big5.html 0600 root bin 120 17330 985675925
1 f none software/help/oldpackage.es.html 0600 root bin 285 27403 985675925
1 f none software/help/oldpackage.fr.html 0600 root bin 320 30046 985675925
1 f none software/help/oldpackage.html 0600 root bin 245 22183 985675925
1 f none software/help/oldpackage.pl.html 0600 root bin 282 27891 985675926
1 f none software/help/oldpackage.sv.html 0600 root bin 254 23708 985675925
1 f none software/help/oldpackage.zh_TW.Big5.html 0600 root bin 188 27441 985675925
1 f none software/help/replacefiles.es.html 0600 root bin 271 26124 985675925
1 f none software/help/replacefiles.fr.html 0600 root bin 271 26204 985675925
1 f none software/help/replacefiles.html 0600 root bin 245 22577 985675925
1 f none software/help/replacefiles.pl.html 0600 root bin 243 23837 985675926
1 f none software/help/replacefiles.sv.html 0600 root bin 242 23116 985675925
1 f none software/help/replacefiles.zh_TW.Big5.html 0600 root bin 156 22497 985675925
1 f none software/help/replacepkgs.es.html 0600 root bin 142 13281 985675925
1 f none software/help/replacepkgs.fr.html 0600 root bin 144 13898 985675925
1 f none software/help/replacepkgs.html 0600 root bin 144 12970 985675925
1 f none software/help/replacepkgs.pl.html 0600 root bin 151 14651 985675926
1 f none software/help/replacepkgs.sv.html 0600 root bin 136 12819 985675925
1 f none software/help/replacepkgs.zh_TW.Big5.html 0600 root bin 118 15922 985675925
1 f none software/help/root.es.html 0600 root bin 162 15458 985675925
1 f none software/help/root.fr.html 0600 root bin 163 15263 985675925
1 f none software/help/root.html 0600 root bin 147 13472 985675925
1 f none software/help/root.pl.html 0600 root bin 146 13884 985675926
1 f none software/help/root.sv.html 0600 root bin 155 14758 985675925
1 f none software/help/root.zh_TW.Big5.html 0600 root bin 108 14534 985675925
1 f none software/help/search.es.html 0600 root bin 219 20429 985675925
1 f none software/help/search.fr.html 0600 root bin 211 19627 985675925
1 f none software/help/search.html 0600 root bin 163 14371 985675925
1 f none software/help/search.pl.html 0600 root bin 198 19683 985675926
1 f none software/help/search.sv.html 0600 root bin 169 16671 985675925
1 f none software/help/search.zh_TW.Big5.html 0600 root bin 101 14181 985675925
1 f none software/help/upgrade.es.html 0600 root bin 222 21162 985675925
1 f none software/help/upgrade.fr.html 0600 root bin 235 22844 985675925
1 f none software/help/upgrade.html 0600 root bin 203 18411 985675925
1 f none software/help/upgrade.pl.html 0600 root bin 213 21309 985675926
1 f none software/help/upgrade.sv.html 0600 root bin 189 18003 985675925
1 f none software/help/upgrade.zh_TW.Big5.html 0600 root bin 140 19733 985675925
1 f none software/hpux-lib.pl 0600 root bin 10069 65524 985675926
1 d none software/images 0700 root bin
1 f none software/images/close.gif 0600 root bin 112 11697 985675925
1 f none software/images/icon.gif 0600 root bin 297 35022 985675925
1 f none software/images/open.gif 0600 root bin 107 10761 985675925
1 f none software/images/pack.gif 0600 root bin 123 11211 985675925
1 f none software/index.cgi 0700 root bin 3453 20157 985675925
1 f none software/install_pack.cgi 0700 root bin 3279 65295 985675925
1 d none software/lang 0700 root bin
1 f none software/lang/de 0600 root bin 4072 57395 985675926
1 f none software/lang/en 0600 root bin 6326 3087 985675926
1 f none software/lang/es 0600 root bin 4089 13 985675926
1 f none software/lang/fr 0600 root bin 4115 8647 985675926
1 f none software/lang/hu 0600 root bin 3884 14078 985675926
1 f none software/lang/pl 0600 root bin 4975 32450 985675926
1 f none software/lang/pt 0600 root bin 3874 49620 985675926
1 f none software/lang/ru_RU 0600 root bin 3649 60098 985675926
1 f none software/lang/ru_SU 0600 root bin 3662 12744 985675926
1 f none software/lang/sv 0600 root bin 5789 35194 985675926
1 f none software/lang/tr 0600 root bin 3672 47457 985675926
1 f none software/lang/zh_CN 0600 root bin 2773 43475 985675926
1 f none software/lang/zh_TW.Big5 0600 root bin 2889 26975 985675926
1 f none software/list_pack.cgi 0700 root bin 1775 6271 985675925
1 f none software/log_parser.pl 0600 root bin 893 7449 985675926
1 f none software/module.info 0600 root bin 677 1286 985675926
1 f none software/open.cgi 0700 root bin 253 21084 985675926
1 f none software/openall.cgi 0700 root bin 419 32530 985675926
1 f none software/openbsd-lib.pl 0600 root bin 4519 33441 985675926
1 f none software/pkgadd-lib.pl 0600 root bin 6391 38736 985675926
1 f none software/rhn-lib.pl 0600 root bin 3143 64043 985675926
1 f none software/rhn.cgi 0700 root bin 1097 23059 985675926
1 f none software/rhn_check.cgi 0600 root bin 1768 12546 985675926
1 f none software/rpm-lib.pl 0600 root bin 6479 51370 985675926
1 f none software/search.cgi 0700 root bin 1276 33716 985675926
1 f none software/slackware-lib.pl 0600 root bin 5706 49324 985675926
1 f none software/software-lib.pl 0600 root bin 4837 65173 985675926
1 d none squid 0700 root bin
1 f none squid/acl.cgi 0700 root bin 8944 49443 985675934
1 f none squid/acl_save.cgi 0700 root bin 6633 47309 985675934
1 f none squid/acl_security.pl 0700 root bin 474 41368 985675935
1 f none squid/always.cgi 0700 root bin 1964 30859 985675935
1 f none squid/always_save.cgi 0700 root bin 983 15593 985675935
1 f none squid/cachemgr.cgi 0700 root bin 434 34177 985675934
1 f none squid/calamaris.cgi 0700 root bin 2253 42649 985675935
1 f none squid/chown.cgi 0700 root bin 1409 48525 985675934
1 f none squid/clear.cgi 0700 root bin 2533 6500 985675935
1 f none squid/config-aix 0600 root bin 240 22437 985675934
1 f none squid/config-cobalt-linux 0600 root bin 239 22344 985675935
1 f none squid/config-corel-linux 0600 root bin 213 19859 985675935
1 f none squid/config-debian-linux 0600 root bin 213 19859 985675935
1 f none squid/config-freebsd 0600 root bin 270 25391 985675935
1 f none squid/config-hpux 0600 root bin 280 26355 985675934
1 f none squid/config-irix 0600 root bin 280 26355 985675935
1 f none squid/config-lfs-linux 0600 root bin 249 23347 985675935
1 f none squid/config-macos 0600 root bin 280 26355 985675935
1 f none squid/config-open-linux 0600 root bin 304 28428 985675935
1 f none squid/config-open-linux-3.1e 0600 root bin 306 28574 985675935
1 f none squid/config-openbsd 0600 root bin 270 25391 985675935
1 f none squid/config-openserver 0600 root bin 280 26355 985675934
1 f none squid/config-osf1 0600 root bin 280 26355 985675935
1 f none squid/config-redhat-linux 0600 root bin 216 20175 985675935
1 f none squid/config-redhat-linux-6.0 0600 root bin 302 28282 985675935
1 f none squid/config-redhat-linux-6.1 0600 root bin 302 28282 985675935
1 f none squid/config-redhat-linux-6.2 0600 root bin 302 28282 985675935
1 f none squid/config-redhat-linux-7.0 0600 root bin 302 28282 985675934
1 f none squid/config-redhat-linux-7.1 0600 root bin 302 28282 985675935
1 f none squid/config-slackware-linux 0600 root bin 280 26355 985675935
1 f none squid/config-solaris 0600 root bin 280 26355 985675934
1 f none squid/config-suse-linux 0600 root bin 207 19322 985675935
1 f none squid/config-turbo-linux 0600 root bin 216 20175 985675935
1 f none squid/config-unixware 0600 root bin 280 26355 985675934
1 f none squid/config.info 0600 root bin 501 46649 985675934
1 f none squid/config.info.de 0600 root bin 424 39533 985675935
1 f none squid/config.info.es 0600 root bin 635 60537 985675935
1 f none squid/config.info.fr 0600 root bin 573 54349 985675935
1 f none squid/config.info.pl 0600 root bin 644 62027 985675934
1 f none squid/config.info.ru_RU 0600 root bin 282 43222 985675935
1 f none squid/config.info.ru_SU 0600 root bin 282 39479 985675935
1 f none squid/config.info.sv 0600 root bin 592 59284 985675935
1 f none squid/config.info.tr 0600 root bin 351 35830 985675934
1 f none squid/config.info.zh_CN 0600 root bin 373 49812 985675935
1 f none squid/config.info.zh_TW.Big5 0600 root bin 296 37235 985675935
1 f none squid/defaultacl 0600 root bin 7 570 985675935
1 f none squid/edit_acl.cgi 0700 root bin 3710 27241 985675934
1 f none squid/edit_admin.cgi 0700 root bin 3119 56801 985675934
1 f none squid/edit_auth.cgi 0700 root bin 2183 47195 985675934
1 f none squid/edit_cache.cgi 0700 root bin 8476 27539 985675934
1 f none squid/edit_cache_host.cgi 0700 root bin 6423 4790 985675934
1 f none squid/edit_icp.cgi 0700 root bin 5517 39193 985675934
1 f none squid/edit_logs.cgi 0700 root bin 2880 39382 985675934
1 f none squid/edit_mem.cgi 0700 root bin 2629 18812 985675934
1 f none squid/edit_misc.cgi 0700 root bin 3702 39499 985675934
1 f none squid/edit_nauth.cgi 0700 root bin 1071 19866 985675935
1 f none squid/edit_nuser.cgi 0700 root bin 1516 62379 985675935
1 f none squid/edit_ports.cgi 0700 root bin 2373 61907 985675934
1 f none squid/edit_progs.cgi 0700 root bin 2611 24383 985675934
1 f none squid/edit_smem.cgi 0700 root bin 4046 64077 985675934
1 f none squid/edit_sports.cgi 0700 root bin 2369 57739 985675934
1 f none squid/edit_user.cgi 0700 root bin 1465 59353 985675934
1 d none squid/help 0700 root bin
1 f none squid/help/edit_acl.es.html 0600 root bin 1755 28763 985675935
1 f none squid/help/edit_acl.html 0600 root bin 1604 11481 985675935
1 f none squid/help/edit_acl.pl.html 0600 root bin 1670 29190 985675935
1 f none squid/help/edit_acl.sv.html 0600 root bin 1601 25651 985675935
1 f none squid/help/edit_acl.zh_TW.Big5.html 0600 root bin 1050 7963 985675935
1 f none squid/help/edit_admin.es.html 0600 root bin 2145 2002 985675935
1 f none squid/help/edit_admin.html 0600 root bin 1912 40607 985675935
1 f none squid/help/edit_admin.pl.html 0600 root bin 2197 17847 985675935
1 f none squid/help/edit_admin.sv.html 0600 root bin 2055 63967 985675935
1 f none squid/help/edit_admin.zh_TW.Big5.html 0600 root bin 1319 45222 985675935
1 f none squid/help/edit_cache.es.html 0600 root bin 5679 63390 985675935
1 f none squid/help/edit_cache.html 0600 root bin 4913 44493 985675935
1 f none squid/help/edit_cache.pl.html 0600 root bin 5657 26499 985675935
1 f none squid/help/edit_cache.sv.html 0600 root bin 5142 38183 985675935
1 f none squid/help/edit_cache.zh_TW.Big5.html 0600 root bin 3273 60717 985675935
1 f none squid/help/edit_icp.es.html 0600 root bin 1982 53906 985675935
1 f none squid/help/edit_icp.html 0600 root bin 1767 27711 985675935
1 f none squid/help/edit_icp.pl.html 0600 root bin 2147 13562 985675935
1 f none squid/help/edit_icp.sv.html 0600 root bin 1942 58290 985675935
1 f none squid/help/edit_icp.zh_TW.Big5.html 0600 root bin 1215 36493 985675935
1 f none squid/help/edit_logs.es.html 0600 root bin 5359 37455 985675935
1 f none squid/help/edit_logs.html 0600 root bin 4331 57704 985675935
1 f none squid/help/edit_logs.pl.html 0600 root bin 4915 21185 985675935
1 f none squid/help/edit_logs.sv.html 0600 root bin 4700 61488 985675935
1 f none squid/help/edit_logs.zh_TW.Big5.html 0600 root bin 2925 23016 985675935
1 f none squid/help/edit_mem.es.html 0600 root bin 3011 10689 985675935
1 f none squid/help/edit_mem.html 0600 root bin 2666 39745 985675935
1 f none squid/help/edit_mem.pl.html 0600 root bin 2941 24522 985675935
1 f none squid/help/edit_mem.sv.html 0600 root bin 2979 31371 985675935
1 f none squid/help/edit_mem.zh_TW.Big5.html 0600 root bin 1702 42552 985675935
1 f none squid/help/edit_misc.es.html 0600 root bin 5511 51303 985675935
1 f none squid/help/edit_misc.html 0600 root bin 4875 42352 985675935
1 f none squid/help/edit_misc.pl.html 0600 root bin 5615 29372 985675935
1 f none squid/help/edit_misc.sv.html 0600 root bin 5218 43626 985675935
1 f none squid/help/edit_misc.zh_TW.Big5.html 0600 root bin 3485 11729 985675935
1 f none squid/help/edit_ports.es.html 0600 root bin 1192 42145 985675935
1 f none squid/help/edit_ports.html 0600 root bin 1082 29084 985675935
1 f none squid/help/edit_ports.pl.html 0600 root bin 1141 43212 985675935
1 f none squid/help/edit_ports.sv.html 0600 root bin 1153 43373 985675935
1 f none squid/help/edit_ports.zh_TW.Big5.html 0600 root bin 727 27715 985675935
1 f none squid/help/edit_progs.es.html 0600 root bin 3661 12756 985675935
1 f none squid/help/edit_progs.html 0600 root bin 3248 31437 985675935
1 f none squid/help/edit_progs.pl.html 0600 root bin 3604 26151 985675935
1 f none squid/help/edit_progs.sv.html 0600 root bin 3462 8384 985675935
1 f none squid/help/edit_progs.zh_TW.Big5.html 0600 root bin 2103 18323 985675935
1 f none squid/help/intro.es.html 0600 root bin 1569 16644 985675935
1 f none squid/help/intro.html 0600 root bin 1431 156 985675935
1 f none squid/help/intro.pl.html 0600 root bin 1603 27219 985675935
1 f none squid/help/intro.sv.html 0600 root bin 1590 24644 985675935
1 f none squid/help/intro.zh_TW.Big5.html 0600 root bin 1017 6104 985675935
1 f none squid/http_access.cgi 0700 root bin 1960 30254 985675934
1 f none squid/http_access_save.cgi 0700 root bin 978 15439 985675934
1 f none squid/icp_access.cgi 0700 root bin 1880 22319 985675934
1 f none squid/icp_access_save.cgi 0700 root bin 957 12660 985675934
1 d none squid/images 0700 root bin
1 f none squid/images/acl.gif 0600 root bin 275 34570 985675934
1 f none squid/images/admin.gif 0600 root bin 200 23141 985675934
1 f none squid/images/auth.gif 0600 root bin 390 43396 985675934
1 f none squid/images/cache.gif 0600 root bin 266 29430 985675934
1 f none squid/images/cachemgr.gif 0600 root bin 256 29660 985675934
1 f none squid/images/calamaris.gif 0600 root bin 1069 49684 985675934
1 f none squid/images/clear.gif 0600 root bin 239 27917 985675934
1 f none squid/images/down.gif 0600 root bin 108 8892 985675934
1 f none squid/images/gap.gif 0600 root bin 73 6048 985675934
1 f none squid/images/icon.gif 0600 root bin 340 38435 985675934
1 f none squid/images/icp.gif 0600 root bin 259 29070 985675934
1 f none squid/images/logs.gif 0600 root bin 470 52260 985675934
1 f none squid/images/mem.gif 0600 root bin 251 28945 985675934
1 f none squid/images/misc.gif 0600 root bin 460 53918 985675934
1 f none squid/images/nauth.gif 0600 root bin 390 43396 985675934
1 f none squid/images/ports.gif 0600 root bin 478 58145 985675934
1 f none squid/images/progs.gif 0600 root bin 295 36758 985675934
1 f none squid/images/smem.gif 0600 root bin 251 28945 985675934
1 f none squid/images/sports.gif 0600 root bin 478 58145 985675934
1 f none squid/images/up.gif 0600 root bin 103 9086 985675934
1 f none squid/index.cgi 0700 root bin 5157 9564 985675934
1 f none squid/init_cache.cgi 0700 root bin 1510 56762 985675934
1 d none squid/lang 0700 root bin
1 f none squid/lang/de 0600 root bin 18484 14037 985675935
1 f none squid/lang/en 0600 root bin 19238 16291 985675935
1 f none squid/lang/es 0600 root bin 22330 24914 985675935
1 f none squid/lang/fr 0600 root bin 23153 37252 985675935
1 f none squid/lang/pl 0600 root bin 21937 50598 985675935
1 f none squid/lang/ru_RU 0600 root bin 17125 26082 985675935
1 f none squid/lang/ru_SU 0600 root bin 17163 43828 985675935
1 f none squid/lang/sv 0600 root bin 21138 31178 985675935
1 f none squid/lang/tr 0600 root bin 18959 47369 985675935
1 f none squid/lang/zh_CN 0600 root bin 14753 57658 985675935
1 f none squid/lang/zh_TW.Big5 0600 root bin 13700 8527 985675935
1 f none squid/log_parser.pl 0600 root bin 778 192 985675935
1 f none squid/low.risk 0600 root bin 11 971 985675934
1 f none squid/low.skill 0600 root bin 9 771 985675934
1 f none squid/medium.risk 0600 root bin 11 971 985675935
1 f none squid/medium.skill 0600 root bin 9 770 985675935
1 f none squid/module.info 0600 root bin 582 60381 985675934
1 f none squid/move_always.cgi 0700 root bin 564 48677 985675935
1 f none squid/move_http.cgi 0700 root bin 547 46919 985675934
1 f none squid/move_icp.cgi 0700 root bin 536 45467 985675934
1 f none squid/move_never.cgi 0700 root bin 553 47434 985675935
1 f none squid/never.cgi 0700 root bin 1952 29503 985675935
1 f none squid/never_save.cgi 0700 root bin 962 13220 985675935
1 f none squid/parser-lib.pl 0600 root bin 3232 57964 985675935
1 f none squid/restart.cgi 0700 root bin 335 28746 985675934
1 f none squid/save_admin.cgi 0700 root bin 2213 53499 985675934
1 f none squid/save_auth.cgi 0700 root bin 1233 35160 985675934
1 f none squid/save_cache.cgi 0700 root bin 5756 1276 985675934
1 f none squid/save_cache_host.cgi 0700 root bin 2977 33805 985675934
1 f none squid/save_icp.cgi 0700 root bin 999 19537 985675934
1 f none squid/save_logs.cgi 0700 root bin 1673 8241 985675934
1 f none squid/save_mem.cgi 0700 root bin 1552 62438 985675934
1 f none squid/save_misc.cgi 0700 root bin 1929 28694 985675934
1 f none squid/save_nuser.cgi 0700 root bin 1014 15162 985675935
1 f none squid/save_ports.cgi 0700 root bin 1827 20146 985675934
1 f none squid/save_progs.cgi 0700 root bin 1832 24080 985675934
1 f none squid/save_smem.cgi 0700 root bin 2742 18666 985675935
1 f none squid/save_sports.cgi 0700 root bin 1552 61158 985675934
1 f none squid/save_user.cgi 0700 root bin 961 11326 985675934
1 f none squid/squid-lib.pl 0600 root bin 11986 24555 985675934
1 f none squid/start.cgi 0700 root bin 872 5325 985675934
1 f none squid/stop.cgi 0700 root bin 630 50850 985675934
1 d none status 0700 root bin
1 f none status/apache-monitor.pl 0600 root bin 858 3259 985675961
1 f none status/bind8-monitor.pl 0600 root bin 892 5363 985675961
1 f none status/config 0600 root bin 15 1427 985675961
1 f none status/config-corel-linux 0600 root bin 34 3018 985675961
1 f none status/config-debian-linux 0600 root bin 34 3018 985675961
1 f none status/config-freebsd 0600 root bin 34 3018 985675961
1 f none status/config-hpux 0600 root bin 29 2761 985675961
1 f none status/config-open-linux 0600 root bin 34 3018 985675961
1 f none status/config-redhat-linux 0600 root bin 34 3018 985675961
1 f none status/config-slackware-linux 0600 root bin 34 3018 985675961
1 f none status/config-solaris 0600 root bin 29 2761 985675961
1 f none status/config-suse-linux 0600 root bin 34 3018 985675961
1 f none status/config-turbo-linux 0600 root bin 34 3018 985675961
1 f none status/config.info 0600 root bin 125 11474 985675961
1 f none status/config.info.es 0600 root bin 146 13666 985675961
1 f none status/config.info.nl 0600 root bin 125 11474 985675961
1 f none status/config.info.pl 0600 root bin 146 14019 985675961
1 f none status/config.info.sv 0600 root bin 147 13924 985675961
1 f none status/config.info.zh_CN 0600 root bin 125 11474 985675961
1 f none status/dhcpd-monitor.pl 0600 root bin 580 46241 985675961
1 f none status/dnsadmin-monitor.pl 0600 root bin 612 49367 985675961
1 f none status/edit_mon.cgi 0700 root bin 3653 33700 985675961
1 f none status/edit_sched.cgi 0700 root bin 3311 12209 985675961
1 f none status/exec-monitor.pl 0600 root bin 436 36194 985675961
1 f none status/file-monitor.pl 0600 root bin 1624 64120 985675961
1 f none status/http-monitor.pl 0600 root bin 1852 14416 985675961
1 d none status/images 0700 root bin
1 f none status/images/down.gif 0600 root bin 91 7953 985675961
1 f none status/images/icon.gif 0600 root bin 2075 21934 985675961
1 f none status/images/not.gif 0600 root bin 87 6388 985675961
1 f none status/images/quest.gif 0600 root bin 79 6114 985675961
1 f none status/images/up.gif 0600 root bin 86 7526 985675961
1 f none status/index.cgi 0600 root bin 1959 25670 985675961
1 f none status/inetd-monitor.pl 0600 root bin 347 28938 985675961
1 d none status/lang 0700 root bin
1 f none status/lang/en 0600 root bin 3309 51050 985675961
1 f none status/lang/es 0600 root bin 3090 34964 985675961
1 f none status/lang/nl 0700 root bin 2958 18865 985675961
1 f none status/lang/pl 0600 root bin 3689 36177 985675961
1 f none status/lang/sv 0600 root bin 3185 51207 985675961
1 f none status/lang/zh_CN 0600 root bin 2085 21070 985675961
1 f none status/module.info 0600 root bin 236 24335 985675961
1 f none status/monitor.pl 0700 root bin 2621 15470 985675961
1 f none status/mysql-monitor.pl 0600 root bin 394 33304 985675961
1 f none status/nfs-monitor.pl 0600 root bin 273 22604 985675961
1 f none status/ping-monitor.pl 0600 root bin 1009 16645 985675961
1 f none status/postfix-monitor.pl 0600 root bin 453 38810 985675961
1 f none status/postgresql-monitor.pl 0600 root bin 429 37017 985675961
1 f none status/proc-monitor.pl 0600 root bin 589 48034 985675961
1 f none status/samba-monitor.pl 0600 root bin 398 33356 985675961
1 f none status/save_mon.cgi 0700 root bin 1319 40569 985675961
1 f none status/save_sched.cgi 0700 root bin 2934 40790 985675961
1 f none status/sendmail-monitor.pl 0600 root bin 611 49934 985675961
1 d none status/services 0700 root bin
1 f none status/services/apache.serv 0600 root bin 69 6341 985675961
1 f none status/services/bind8.serv 0600 root bin 55 4709 985675961
1 f none status/services/dhcpd.serv 0600 root bin 51 4588 985675961
1 f none status/services/dnsadmin.serv 0600 root bin 66 5924 985675961
1 f none status/services/inetd.serv 0600 root bin 68 6261 985675961
1 f none status/services/mysql.serv 0600 root bin 61 5713 985675961
1 f none status/services/nfs.serv 0600 root bin 45 4077 985675961
1 f none status/services/postfix.serv 0600 root bin 60 5848 985675961
1 f none status/services/postgresql.serv 0600 root bin 91 8740 985675961
1 f none status/services/samba.serv 0600 root bin 53 4903 985675961
1 f none status/services/sendmail.serv 0600 root bin 64 6104 985675961
1 f none status/services/squid.serv 0600 root bin 58 5502 985675961
1 f none status/services/xinetd.serv 0600 root bin 67 6402 985675961
1 f none status/squid-monitor.pl 0600 root bin 826 409 985675961
1 f none status/status-lib.pl 0600 root bin 3329 8864 985675961
1 f none status/tcp-monitor.pl 0600 root bin 1535 60353 985675961
1 f none status/xinetd-monitor.pl 0600 root bin 476 38213 985675961
1 f none switch_skill.cgi 0700 root bin 295 24944 985675910
1 f none switch_user.cgi 0700 root bin 355 29048 985675910
1 d none syslog 0700 root bin
1 f none syslog/config-aix 0600 root bin 282 25366 985675944
1 f none syslog/config-cobalt-linux 0600 root bin 284 25776 985675944
1 f none syslog/config-corel-linux 0600 root bin 284 25776 985675944
1 f none syslog/config-debian-linux 0600 root bin 284 25776 985675944
1 f none syslog/config-freebsd 0600 root bin 295 26803 985675944
1 f none syslog/config-hpux 0600 root bin 262 23689 985675944
1 f none syslog/config-irix 0600 root bin 251 22488 985675944
1 f none syslog/config-macos 0600 root bin 312 28527 985675944
1 f none syslog/config-open-linux 0600 root bin 509 47283 985675944
1 f none syslog/config-openbsd 0600 root bin 295 26803 985675944
1 f none syslog/config-redhat-linux 0600 root bin 551 51394 985675944
1 f none syslog/config-slackware-linux 0600 root bin 288 26169 985675944
1 f none syslog/config-solaris 0600 root bin 381 34919 985675944
1 f none syslog/config-suse-linux 0600 root bin 288 26169 985675944
1 f none syslog/config-turbo-linux 0600 root bin 284 25776 985675944
1 f none syslog/config-unixware 0600 root bin 282 25366 985675944
1 f none syslog/config.info 0600 root bin 568 50673 985675943
1 f none syslog/config.info.de 0600 root bin 604 54556 985675944
1 f none syslog/config.info.es 0600 root bin 690 63692 985675944
1 f none syslog/config.info.fr 0600 root bin 645 58468 985675944
1 f none syslog/config.info.hu 0600 root bin 814 16712 985675944
1 f none syslog/config.info.pl 0600 root bin 663 62524 985675944
1 f none syslog/config.info.ru_RU 0600 root bin 646 40824 985675944
1 f none syslog/config.info.ru_SU 0600 root bin 646 30957 985675944
1 f none syslog/config.info.sv 0600 root bin 591 55564 985675944
1 f none syslog/config.info.tr 0600 root bin 675 3133 985675944
1 f none syslog/config.info.zh_CN 0600 root bin 440 61912 985675944
1 f none syslog/config.info.zh_TW.Big5 0600 root bin 483 61382 985675944
1 f none syslog/edit_log.cgi 0700 root bin 6523 52164 985675944
1 d none syslog/images 0700 root bin
1 f none syslog/images/icon.gif 0600 root bin 470 52260 985675943
1 f none syslog/index.cgi 0700 root bin 4732 33796 985675944
1 d none syslog/lang 0700 root bin
1 f none syslog/lang/de 0600 root bin 2360 23297 985675944
1 f none syslog/lang/en 0600 root bin 2334 19299 985675944
1 f none syslog/lang/es 0600 root bin 2917 13561 985675944
1 f none syslog/lang/fr 0600 root bin 2381 24262 985675944
1 f none syslog/lang/hu 0600 root bin 2647 9762 985675944
1 f none syslog/lang/pl 0600 root bin 2714 2088 985675944
1 f none syslog/lang/ru_RU 0600 root bin 2362 65032 985675944
1 f none syslog/lang/ru_SU 0600 root bin 2367 29686 985675944
1 f none syslog/lang/sv 0600 root bin 2625 55470 985675944
1 f none syslog/lang/tr 0600 root bin 2360 47368 985675944
1 f none syslog/lang/zh_CN 0600 root bin 1923 7263 985675944
1 f none syslog/lang/zh_TW.Big5 0600 root bin 1722 23633 985675944
1 f none syslog/log_parser.pl 0600 root bin 636 53940 985675944
1 f none syslog/low.risk 0600 root bin 20 1734 985675944
1 f none syslog/low.skill 0600 root bin 8 660 985675944
1 f none syslog/m4.cgi 0700 root bin 768 60051 985675944
1 f none syslog/medium.risk 0600 root bin 11 971 985675944
1 f none syslog/module.info 0600 root bin 532 56837 985675943
1 f none syslog/restart.cgi 0700 root bin 320 26577 985675944
1 f none syslog/save_log.cgi 0700 root bin 3200 50492 985675944
1 f none syslog/start.cgi 0700 root bin 178 14818 985675944
1 f none syslog/syslog-lib.pl 0600 root bin 3273 39525 985675943
1 d none telnet 0700 root bin
1 f none telnet/config 0600 root bin 7 540 985675939
1 f none telnet/config-open-linux-3.1e 0600 root bin 7 541 985675941
1 f none telnet/config.info 0600 root bin 162 14697 985675939
1 f none telnet/config.info.de 0600 root bin 75 6914 985675940
1 f none telnet/config.info.es 0600 root bin 144 13403 985675940
1 f none telnet/config.info.fr 0600 root bin 73 7167 985675940
1 f none telnet/config.info.pl 0600 root bin 183 17437 985675941
1 f none telnet/config.info.ru_RU 0600 root bin 83 14703 985675941
1 f none telnet/config.info.ru_SU 0600 root bin 83 13139 985675940
1 f none telnet/config.info.sv 0600 root bin 180 16767 985675940
1 f none telnet/config.info.tr 0600 root bin 62 6423 985675941
1 f none telnet/config.info.zh_CN 0600 root bin 104 14152 985675940
1 f none telnet/config.info.zh_TW.Big5 0600 root bin 56 7534 985675940
1 d none telnet/images 0700 root bin
1 f none telnet/images/icon.gif 0600 root bin 235 29270 985675939
1 f none telnet/index.cgi 0700 root bin 1631 271 985675939
1 f none telnet/jta20.jar 0600 root bin 212305 45345 985675941
1 d none telnet/lang 0700 root bin
1 f none telnet/lang/de 0600 root bin 371 33498 985675940
1 f none telnet/lang/en 0600 root bin 471 43130 985675940
1 f none telnet/lang/es 0600 root bin 459 42503 985675940
1 f none telnet/lang/fr 0600 root bin 307 28615 985675940
1 f none telnet/lang/it 0600 root bin 288 26411 985675940
1 f none telnet/lang/pl 0600 root bin 499 46740 985675940
1 f none telnet/lang/pt 0600 root bin 299 27900 985675940
1 f none telnet/lang/ru_RU 0600 root bin 328 49869 985675940
1 f none telnet/lang/ru_SU 0600 root bin 328 45569 985675940
1 f none telnet/lang/sv 0600 root bin 470 43568 985675940
1 f none telnet/lang/tr 0600 root bin 492 49391 985675940
1 f none telnet/lang/zh_CN 0600 root bin 418 47016 985675940
1 f none telnet/lang/zh_TW.Big5 0600 root bin 254 27349 985675940
1 f none telnet/module.info 0600 root bin 378 36332 985675939
1 f none telnet/ssh.conf 0600 root bin 1331 46966 985675941
1 f none telnet/telnet.conf 0600 root bin 2876 26700 985675941
1 f none thirdparty.pl 0600 root bin 1770 7116 985675910
1 d none time 0700 root bin
1 f none time/acl_security.pl 0600 root bin 784 58315 985675942
1 f none time/apply.cgi 0700 root bin 3489 8100 985675942
1 f none time/config 0600 root bin 116 10888 985675942
1 f none time/config-hpux 0600 root bin 27 2289 985675942
1 f none time/config-macos 0600 root bin 116 10888 985675942
1 f none time/config-solaris 0600 root bin 116 10887 985675942
1 f none time/config.info 0600 root bin 360 32594 985675942
1 f none time/config.info.de 0600 root bin 117 11091 985675942
1 f none time/config.info.es 0600 root bin 423 38747 985675942
1 f none time/config.info.fr 0600 root bin 82 7904 985675942
1 f none time/config.info.pl 0600 root bin 396 37853 985675942
1 f none time/config.info.ru_RU 0600 root bin 87 17358 985675942
1 f none time/config.info.ru_SU 0600 root bin 87 15327 985675942
1 f none time/config.info.sv 0600 root bin 303 29399 985675942
1 f none time/config.info.tr 0600 root bin 122 12427 985675942
1 f none time/config.info.zh_CN 0600 root bin 144 22508 985675942
1 f none time/config.info.zh_TW.Big5 0600 root bin 45 7274 985675942
1 f none time/defaultacl 0600 root bin 30 2610 985675942
1 d none time/help 0700 root bin
1 f none time/help/hardware_time.es.html 0600 root bin 60 5183 985675942
1 f none time/help/hardware_time.fr.html 0600 root bin 74 7200 985675942
1 f none time/help/hardware_time.html 0600 root bin 51 4473 985675942
1 f none time/help/hardware_time.hu.html 0600 root bin 51 5021 985675942
1 f none time/help/hardware_time.pl.html 0600 root bin 64 6070 985675942
1 f none time/help/hardware_time.ru_RU.html 0600 root bin 80 13854 985675942
1 f none time/help/hardware_time.ru_SU.html 0600 root bin 80 12544 985675942
1 f none time/help/hardware_time.sv.html 0600 root bin 54 5023 985675942
1 f none time/help/hardware_time.zh_TW.Big5.html 0600 root bin 46 4676 985675942
1 f none time/help/index.es.html 0600 root bin 246 22261 985675942
1 f none time/help/index.fr.html 0600 root bin 202 19197 985675942
1 f none time/help/index.html 0600 root bin 213 19097 985675942
1 f none time/help/index.hu.html 0600 root bin 240 25296 985675942
1 f none time/help/index.pl.html 0600 root bin 265 25886 985675942
1 f none time/help/index.ru_RU.html 0600 root bin 308 58097 985675942
1 f none time/help/index.ru_SU.html 0600 root bin 308 51404 985675942
1 f none time/help/index.sv.html 0600 root bin 227 22254 985675942
1 f none time/help/index.zh_TW.Big5.html 0600 root bin 117 14961 985675942
1 f none time/help/system_time.es.html 0600 root bin 59 5165 985675942
1 f none time/help/system_time.fr.html 0600 root bin 84 8275 985675942
1 f none time/help/system_time.html 0600 root bin 62 5649 985675942
1 f none time/help/system_time.hu.html 0600 root bin 60 5883 985675942
1 f none time/help/system_time.pl.html 0600 root bin 83 7805 985675942
1 f none time/help/system_time.ru_RU.html 0600 root bin 64 10448 985675942
1 f none time/help/system_time.ru_SU.html 0600 root bin 64 9539 985675942
1 f none time/help/system_time.sv.html 0600 root bin 60 5460 985675942
1 f none time/help/system_time.zh_TW.Big5.html 0600 root bin 41 5176 985675942
1 f none time/help/timeserver.es.html 0600 root bin 280 25253 985675942
1 f none time/help/timeserver.fr.html 0600 root bin 251 23871 985675942
1 f none time/help/timeserver.html 0600 root bin 236 21254 985675942
1 f none time/help/timeserver.hu.html 0600 root bin 259 26652 985675942
1 f none time/help/timeserver.pl.html 0600 root bin 286 28117 985675942
1 f none time/help/timeserver.ru_RU.html 0600 root bin 290 53031 985675942
1 f none time/help/timeserver.ru_SU.html 0600 root bin 290 47238 985675942
1 f none time/help/timeserver.sv.html 0600 root bin 211 20223 985675942
1 f none time/help/timeserver.zh_TW.Big5.html 0600 root bin 178 23279 985675942
1 d none time/images 0700 root bin
1 f none time/images/icon.gif 0600 root bin 529 63918 985675942
1 f none time/index.cgi 0700 root bin 5354 10781 985675942
1 d none time/lang 0700 root bin
1 f none time/lang/de 0600 root bin 735 2770 985675942
1 f none time/lang/en 0600 root bin 1279 54567 985675942
1 f none time/lang/es 0600 root bin 1482 7906 985675942
1 f none time/lang/fr 0600 root bin 989 32820 985675942
1 f none time/lang/hu 0600 root bin 982 39904 985675942
1 f none time/lang/pl 0600 root bin 1505 19611 985675942
1 f none time/lang/ru_RU 0600 root bin 913 24465 985675942
1 f none time/lang/ru_SU 0600 root bin 918 10490 985675942
1 f none time/lang/sv 0600 root bin 1308 65505 985675942
1 f none time/lang/tr 0600 root bin 1430 14858 985675942
1 f none time/lang/zh_CN 0600 root bin 984 7677 985675942
1 f none time/lang/zh_TW.Big5 0600 root bin 644 17770 985675942
1 f none time/log_parser.pl 0600 root bin 754 63479 985675942
1 f none time/module.info 0600 root bin 459 48862 985675942
1 f none time/time-lib.pl 0700 root bin 1218 23671 985675942
1 f none time/try.cgi 0700 root bin 185 13029 985675942
1 f none user_chooser.cgi 0700 root bin 4328 15474 985675910
1 d none useradmin 0700 root bin
1 f none useradmin/acl_security.pl 0600 root bin 7950 64352 985675920
1 f none useradmin/aix-lib.pl 0600 root bin 1343 42668 985675920
1 f none useradmin/batch_exec.cgi 0600 root bin 8856 7014 985675920
1 f none useradmin/batch_form.cgi 0600 root bin 2438 13757 985675920
1 f none useradmin/cobalt-linux-lib.pl 0600 root bin 4597 16550 985675919
1 f none useradmin/config-aix 0600 root bin 360 33471 985675919
1 f none useradmin/config-cobalt-linux 0600 root bin 363 33430 985675920
1 f none useradmin/config-corel-linux 0600 root bin 318 29091 985675920
1 f none useradmin/config-debian-linux 0600 root bin 318 29091 985675919
1 f none useradmin/config-freebsd 0600 root bin 365 33666 985675919
1 f none useradmin/config-hpux 0600 root bin 312 28679 985675919
1 f none useradmin/config-irix 0600 root bin 471 43987 985675920
1 f none useradmin/config-open-linux 0600 root bin 340 31452 985675920
1 f none useradmin/config-openbsd 0600 root bin 355 32751 985675919
1 f none useradmin/config-osf1 0600 root bin 312 28678 985675920
1 f none useradmin/config-redhat-linux 0600 root bin 330 30359 985675919
1 f none useradmin/config-slackware-linux 0600 root bin 316 29003 985675920
1 f none useradmin/config-solaris 0600 root bin 328 30024 985675919
1 f none useradmin/config-suse-linux 0600 root bin 330 30358 985675919
1 f none useradmin/config-turbo-linux 0600 root bin 330 30358 985675919
1 f none useradmin/config-unixware 0600 root bin 328 30024 985675920
1 f none useradmin/config.info 0600 root bin 1259 49273 985675919
1 f none useradmin/config.info.de 0600 root bin 1135 38863 985675919
1 f none useradmin/config.info.es 0600 root bin 1509 8770 985675920
1 f none useradmin/config.info.fr 0600 root bin 1157 43634 985675920
1 f none useradmin/config.info.pl 0600 root bin 1462 10602 985675920
1 f none useradmin/config.info.ru_RU 0600 root bin 1026 42201 985675920
1 f none useradmin/config.info.ru_SU 0600 root bin 1027 25670 985675920
1 f none useradmin/config.info.sv 0600 root bin 1263 56136 985675920
1 f none useradmin/config.info.tr 0600 root bin 1080 46790 985675920
1 f none useradmin/config.info.zh_CN 0600 root bin 820 53304 985675920
1 f none useradmin/config.info.zh_TW.Big5 0600 root bin 730 26796 985675920
1 f none useradmin/corel-linux-lib.pl 0600 root bin 4597 16550 985675919
1 f none useradmin/debian-linux-lib.pl 0600 root bin 4597 16550 985675920
1 f none useradmin/defaultacl 0600 root bin 142 12422 985675920
1 f none useradmin/delete_group.cgi 0700 root bin 1745 12118 985675919
1 f none useradmin/delete_user.cgi 0700 root bin 3616 25965 985675919
1 f none useradmin/edit_group.cgi 0700 root bin 3692 42982 985675919
1 f none useradmin/edit_user.cgi 0700 root bin 14219 36359 985675918
1 f none useradmin/freebsd-lib.pl 0600 root bin 1261 35095 985675920
1 d none useradmin/help 0700 root bin
1 f none useradmin/help.html 0600 root bin 6949 14638 985675919
1 f none useradmin/help/2nd.es.html 0600 root bin 285 26532 985675920
1 f none useradmin/help/2nd.fr.html 0600 root bin 306 28813 985675919
1 f none useradmin/help/2nd.html 0600 root bin 255 23348 985675919
1 f none useradmin/help/2nd.pl.html 0600 root bin 297 29708 985675920
1 f none useradmin/help/2nd.ru_RU.html 0600 root bin 310 60392 985675920
1 f none useradmin/help/2nd.ru_SU.html 0600 root bin 310 53224 985675919
1 f none useradmin/help/2nd.sv.html 0600 root bin 250 24942 985675920
1 f none useradmin/help/2nd.zh_TW.Big5.html 0600 root bin 136 20415 985675920
1 f none useradmin/help/change.es.html 0600 root bin 179 15883 985675919
1 f none useradmin/help/change.fr.html 0600 root bin 172 15841 985675919
1 f none useradmin/help/change.html 0600 root bin 152 13713 985675919
1 f none useradmin/help/change.pl.html 0600 root bin 130 12198 985675920
1 f none useradmin/help/change.ru_RU.html 0600 root bin 143 23651 985675920
1 f none useradmin/help/change.ru_SU.html 0600 root bin 143 21215 985675919
1 f none useradmin/help/change.sv.html 0600 root bin 133 13001 985675920
1 f none useradmin/help/change.zh_TW.Big5.html 0600 root bin 108 13545 985675920
1 f none useradmin/help/change2.es.html 0600 root bin 241 21507 985675919
1 f none useradmin/help/change2.fr.html 0600 root bin 274 25258 985675919
1 f none useradmin/help/change2.html 0600 root bin 210 18765 985675919
1 f none useradmin/help/change2.pl.html 0600 root bin 221 21677 985675920
1 f none useradmin/help/change2.ru_RU.html 0600 root bin 206 38447 985675920
1 f none useradmin/help/change2.ru_SU.html 0600 root bin 206 33948 985675919
1 f none useradmin/help/change2.sv.html 0600 root bin 201 20120 985675920
1 f none useradmin/help/change2.zh_TW.Big5.html 0600 root bin 135 19420 985675920
1 f none useradmin/help/chgid.es.html 0600 root bin 596 55259 985675919
1 f none useradmin/help/chgid.fr.html 0600 root bin 566 54315 985675919
1 f none useradmin/help/chgid.html 0600 root bin 476 42541 985675919
1 f none useradmin/help/chgid.pl.html 0600 root bin 571 56463 985675920
1 f none useradmin/help/chgid.ru_RU.html 0600 root bin 536 35778 985675920
1 f none useradmin/help/chgid.ru_SU.html 0600 root bin 536 24067 985675919
1 f none useradmin/help/chgid.sv.html 0600 root bin 426 40374 985675920
1 f none useradmin/help/chgid.zh_TW.Big5.html 0600 root bin 323 49175 985675920
1 f none useradmin/help/chuid.es.html 0600 root bin 596 55141 985675920
1 f none useradmin/help/chuid.fr.html 0600 root bin 602 57388 985675919
1 f none useradmin/help/chuid.html 0600 root bin 465 41366 985675919
1 f none useradmin/help/chuid.pl.html 0600 root bin 568 56199 985675920
1 f none useradmin/help/chuid.ru_RU.html 0600 root bin 511 30604 985675920
1 f none useradmin/help/chuid.ru_SU.html 0600 root bin 511 19383 985675919
1 f none useradmin/help/chuid.sv.html 0600 root bin 427 40753 985675920
1 f none useradmin/help/chuid.zh_TW.Big5.html 0600 root bin 325 49985 985675920
1 f none useradmin/help/class.es.html 0600 root bin 250 22416 985675920
1 f none useradmin/help/class.fr.html 0600 root bin 290 26365 985675919
1 f none useradmin/help/class.html 0600 root bin 218 19318 985675919
1 f none useradmin/help/class.pl.html 0600 root bin 257 24598 985675920
1 f none useradmin/help/class.ru_RU.html 0600 root bin 250 41896 985675920
1 f none useradmin/help/class.ru_SU.html 0600 root bin 250 37392 985675919
1 f none useradmin/help/class.sv.html 0600 root bin 234 22409 985675920
1 f none useradmin/help/class.zh_TW.Big5.html 0600 root bin 166 20584 985675920
1 f none useradmin/help/copy_files.es.html 0600 root bin 472 43718 985675919
1 f none useradmin/help/copy_files.fr.html 0600 root bin 444 41504 985675919
1 f none useradmin/help/copy_files.html 0600 root bin 423 37809 985675919
1 f none useradmin/help/copy_files.pl.html 0600 root bin 502 47955 985675920
1 f none useradmin/help/copy_files.ru_RU.html 0600 root bin 451 12531 985675920
1 f none useradmin/help/copy_files.ru_SU.html 0600 root bin 451 3910 985675919
1 f none useradmin/help/copy_files.sv.html 0600 root bin 398 37847 985675920
1 f none useradmin/help/copy_files.zh_TW.Big5.html 0600 root bin 311 40791 985675920
1 f none useradmin/help/create_group.es.html 0600 root bin 215 19669 985675919
1 f none useradmin/help/create_group.fr.html 0600 root bin 200 18785 985675919
1 f none useradmin/help/create_group.html 0600 root bin 184 16453 985675919
1 f none useradmin/help/create_group.pl.html 0600 root bin 165 16496 985675920
1 f none useradmin/help/create_group.ru_RU.html 0600 root bin 190 35357 985675920
1 f none useradmin/help/create_group.ru_SU.html 0600 root bin 190 31494 985675919
1 f none useradmin/help/create_group.sv.html 0600 root bin 190 18218 985675920
1 f none useradmin/help/create_group.zh_TW.Big5.html 0600 root bin 131 18958 985675920
1 f none useradmin/help/create_user.es.html 0600 root bin 112 10147 985675919
1 f none useradmin/help/create_user.fr.html 0600 root bin 124 11504 985675919
1 f none useradmin/help/create_user.html 0600 root bin 98 8578 985675919
1 f none useradmin/help/create_user.pl.html 0600 root bin 110 10810 985675920
1 f none useradmin/help/create_user.ru_RU.html 0600 root bin 106 18610 985675920
1 f none useradmin/help/create_user.ru_SU.html 0600 root bin 106 16783 985675919
1 f none useradmin/help/create_user.sv.html 0600 root bin 115 10932 985675920
1 f none useradmin/help/create_user.zh_TW.Big5.html 0600 root bin 141 21034 985675920
1 f none useradmin/help/edit_group.es.html 0600 root bin 197 18075 985675920
1 f none useradmin/help/edit_group.fr.html 0600 root bin 201 18548 985675919
1 f none useradmin/help/edit_group.html 0600 root bin 175 15573 985675919
1 f none useradmin/help/edit_group.pl.html 0600 root bin 168 16461 985675920
1 f none useradmin/help/edit_group.ru_RU.html 0600 root bin 173 32122 985675920
1 f none useradmin/help/edit_group.ru_SU.html 0600 root bin 173 28633 985675919
1 f none useradmin/help/edit_group.sv.html 0600 root bin 144 13507 985675920
1 f none useradmin/help/edit_group.zh_TW.Big5.html 0600 root bin 123 17219 985675920
1 f none useradmin/help/edit_user.es.html 0600 root bin 203 18732 985675920
1 f none useradmin/help/edit_user.fr.html 0600 root bin 209 20022 985675919
1 f none useradmin/help/edit_user.html 0600 root bin 177 15805 985675919
1 f none useradmin/help/edit_user.pl.html 0600 root bin 189 18842 985675920
1 f none useradmin/help/edit_user.ru_RU.html 0600 root bin 220 42787 985675920
1 f none useradmin/help/edit_user.ru_SU.html 0600 root bin 220 37880 985675919
1 f none useradmin/help/edit_user.sv.html 0600 root bin 160 15515 985675920
1 f none useradmin/help/edit_user.zh_TW.Big5.html 0600 root bin 129 18509 985675920
1 f none useradmin/help/expire.es.html 0600 root bin 146 13097 985675920
1 f none useradmin/help/expire.fr.html 0600 root bin 148 13633 985675919
1 f none useradmin/help/expire.html 0600 root bin 152 13555 985675919
1 f none useradmin/help/expire.pl.html 0600 root bin 142 13931 985675920
1 f none useradmin/help/expire.ru_RU.html 0600 root bin 181 34573 985675920
1 f none useradmin/help/expire.ru_SU.html 0600 root bin 181 30581 985675919
1 f none useradmin/help/expire.sv.html 0600 root bin 143 14034 985675920
1 f none useradmin/help/expire.zh_TW.Big5.html 0600 root bin 101 13819 985675920
1 f none useradmin/help/expire2.es.html 0600 root bin 180 16155 985675920
1 f none useradmin/help/expire2.fr.html 0600 root bin 196 17919 985675919
1 f none useradmin/help/expire2.html 0600 root bin 188 16688 985675919
1 f none useradmin/help/expire2.pl.html 0600 root bin 142 13931 985675920
1 f none useradmin/help/expire2.ru_RU.html 0600 root bin 168 30032 985675920
1 f none useradmin/help/expire2.ru_SU.html 0600 root bin 168 26768 985675919
1 f none useradmin/help/expire2.sv.html 0600 root bin 187 18189 985675920
1 f none useradmin/help/expire2.zh_TW.Big5.html 0600 root bin 131 17807 985675920
1 f none useradmin/help/findform.es.html 0600 root bin 297 27576 985675920
1 f none useradmin/help/findform.fr.html 0600 root bin 356 33278 985675919
1 f none useradmin/help/findform.html 0600 root bin 265 23578 985675919
1 f none useradmin/help/findform.pl.html 0600 root bin 372 37326 985675920
1 f none useradmin/help/findform.ru_RU.html 0600 root bin 352 2188 985675920
1 f none useradmin/help/findform.ru_SU.html 0600 root bin 352 59859 985675919
1 f none useradmin/help/findform.sv.html 0600 root bin 337 32994 985675920
1 f none useradmin/help/findform.zh_TW.Big5.html 0600 root bin 209 30913 985675920
1 f none useradmin/help/gchgid.es.html 0600 root bin 579 53479 985675920
1 f none useradmin/help/gchgid.fr.html 0600 root bin 542 51532 985675919
1 f none useradmin/help/gchgid.html 0600 root bin 494 44112 985675919
1 f none useradmin/help/gchgid.pl.html 0600 root bin 587 58372 985675920
1 f none useradmin/help/gchgid.ru_RU.html 0600 root bin 597 45717 985675920
1 f none useradmin/help/gchgid.ru_SU.html 0600 root bin 597 32865 985675919
1 f none useradmin/help/gchgid.sv.html 0600 root bin 470 44229 985675920
1 f none useradmin/help/gchgid.zh_TW.Big5.html 0600 root bin 324 49559 985675920
1 f none useradmin/help/ggid.es.html 0600 root bin 401 35721 985675920
1 f none useradmin/help/ggid.fr.html 0600 root bin 460 43613 985675919
1 f none useradmin/help/ggid.html 0600 root bin 377 33496 985675919
1 f none useradmin/help/ggid.pl.html 0600 root bin 397 38166 985675920
1 f none useradmin/help/ggid.ru_RU.html 0600 root bin 369 680 985675920
1 f none useradmin/help/ggid.ru_SU.html 0600 root bin 369 58693 985675919
1 f none useradmin/help/ggid.sv.html 0600 root bin 401 38051 985675920
1 f none useradmin/help/ggid.zh_TW.Big5.html 0600 root bin 270 37136 985675920
1 f none useradmin/help/ggroup.es.html 0600 root bin 165 14788 985675920
1 f none useradmin/help/ggroup.fr.html 0600 root bin 148 13138 985675919
1 f none useradmin/help/ggroup.html 0600 root bin 146 13043 985675919
1 f none useradmin/help/ggroup.pl.html 0600 root bin 145 14199 985675920
1 f none useradmin/help/ggroup.ru_RU.html 0600 root bin 140 25516 985675920
1 f none useradmin/help/ggroup.ru_SU.html 0600 root bin 140 22574 985675919
1 f none useradmin/help/ggroup.sv.html 0600 root bin 145 13649 985675920
1 f none useradmin/help/ggroup.zh_TW.Big5.html 0600 root bin 109 15296 985675920
1 f none useradmin/help/gmembers.es.html 0600 root bin 473 43384 985675920
1 f none useradmin/help/gmembers.fr.html 0600 root bin 475 42721 985675919
1 f none useradmin/help/gmembers.html 0600 root bin 432 38911 985675919
1 f none useradmin/help/gmembers.pl.html 0600 root bin 484 48004 985675920
1 f none useradmin/help/gmembers.ru_RU.html 0600 root bin 503 30245 985675920
1 f none useradmin/help/gmembers.ru_SU.html 0600 root bin 503 18943 985675919
1 f none useradmin/help/gmembers.sv.html 0600 root bin 448 43318 985675920
1 f none useradmin/help/gmembers.zh_TW.Big5.html 0600 root bin 277 38710 985675920
1 f none useradmin/help/gpasswd.es.html 0600 root bin 142 12654 985675920
1 f none useradmin/help/gpasswd.fr.html 0600 root bin 174 16324 985675919
1 f none useradmin/help/gpasswd.html 0600 root bin 124 11202 985675919
1 f none useradmin/help/gpasswd.pl.html 0600 root bin 127 12596 985675920
1 f none useradmin/help/gpasswd.ru_RU.html 0600 root bin 145 26479 985675920
1 f none useradmin/help/gpasswd.ru_SU.html 0600 root bin 145 23568 985675919
1 f none useradmin/help/gpasswd.sv.html 0600 root bin 106 10476 985675920
1 f none useradmin/help/gpasswd.zh_TW.Big5.html 0600 root bin 91 11983 985675920
1 f none useradmin/help/group.es.html 0600 root bin 601 55452 985675920
1 f none useradmin/help/group.fr.html 0600 root bin 546 51470 985675919
1 f none useradmin/help/group.html 0600 root bin 506 45779 985675919
1 f none useradmin/help/group.pl.html 0600 root bin 601 59933 985675920
1 f none useradmin/help/group.ru_RU.html 0600 root bin 638 57358 985675920
1 f none useradmin/help/group.ru_SU.html 0600 root bin 638 42467 985675919
1 f none useradmin/help/group.sv.html 0600 root bin 449 44728 985675920
1 f none useradmin/help/group.zh_TW.Big5.html 0600 root bin 293 42619 985675920
1 f none useradmin/help/home.es.html 0600 root bin 590 55047 985675920
1 f none useradmin/help/home.fr.html 0600 root bin 617 58774 985675919
1 f none useradmin/help/home.html 0600 root bin 530 48028 985675919
1 f none useradmin/help/home.pl.html 0600 root bin 601 59404 985675920
1 f none useradmin/help/home.ru_RU.html 0600 root bin 730 8263 985675920
1 f none useradmin/help/home.ru_SU.html 0600 root bin 730 57711 985675919
1 f none useradmin/help/home.sv.html 0600 root bin 534 51421 985675920
1 f none useradmin/help/home.zh_TW.Big5.html 0600 root bin 401 56946 985675920
1 f none useradmin/help/inactive.es.html 0600 root bin 102 9429 985675920
1 f none useradmin/help/inactive.fr.html 0600 root bin 110 10196 985675919
1 f none useradmin/help/inactive.html 0600 root bin 146 12988 985675919
1 f none useradmin/help/inactive.pl.html 0600 root bin 188 18325 985675920
1 f none useradmin/help/inactive.ru_RU.html 0600 root bin 186 35559 985675920
1 f none useradmin/help/inactive.ru_SU.html 0600 root bin 186 31408 985675919
1 f none useradmin/help/inactive.sv.html 0600 root bin 134 12202 985675920
1 f none useradmin/help/inactive.zh_TW.Big5.html 0600 root bin 71 9774 985675920
1 f none useradmin/help/intro.es.html 0600 root bin 2559 36652 985675920
1 f none useradmin/help/intro.fr.html 0600 root bin 2593 44645 985675919
1 f none useradmin/help/intro.html 0600 root bin 2220 628 985675919
1 f none useradmin/help/intro.pl.html 0600 root bin 2551 52863 985675920
1 f none useradmin/help/intro.ru_RU.html 0600 root bin 2552 18470 985675920
1 f none useradmin/help/intro.ru_SU.html 0600 root bin 2552 27997 985675919
1 f none useradmin/help/intro.sv.html 0600 root bin 2244 19144 985675920
1 f none useradmin/help/intro.zh_TW.Big5.html 0600 root bin 1504 19535 985675920
1 f none useradmin/help/list_logins.es.html 0600 root bin 291 26648 985675920
1 f none useradmin/help/list_logins.fr.html 0600 root bin 285 25832 985675919
1 f none useradmin/help/list_logins.html 0600 root bin 249 22601 985675919
1 f none useradmin/help/list_logins.pl.html 0600 root bin 295 29100 985675920
1 f none useradmin/help/list_logins.ru_RU.html 0600 root bin 286 53885 985675920
1 f none useradmin/help/list_logins.ru_SU.html 0600 root bin 286 47686 985675919
1 f none useradmin/help/list_logins.sv.html 0600 root bin 261 25612 985675920
1 f none useradmin/help/list_logins.zh_TW.Big5.html 0600 root bin 161 23338 985675920
1 f none useradmin/help/makehome.es.html 0600 root bin 192 17517 985675920
1 f none useradmin/help/makehome.fr.html 0600 root bin 180 17319 985675919
1 f none useradmin/help/makehome.html 0600 root bin 184 16607 985675919
1 f none useradmin/help/makehome.pl.html 0600 root bin 226 22148 985675920
1 f none useradmin/help/makehome.ru_RU.html 0600 root bin 180 31369 985675920
1 f none useradmin/help/makehome.ru_SU.html 0600 root bin 180 27995 985675919
1 f none useradmin/help/makehome.sv.html 0600 root bin 180 16750 985675920
1 f none useradmin/help/makehome.zh_TW.Big5.html 0600 root bin 139 19190 985675920
1 f none useradmin/help/max.es.html 0600 root bin 256 23764 985675920
1 f none useradmin/help/max.fr.html 0600 root bin 225 21031 985675919
1 f none useradmin/help/max.html 0600 root bin 196 17843 985675919
1 f none useradmin/help/max.pl.html 0600 root bin 235 23218 985675920
1 f none useradmin/help/max.ru_RU.html 0600 root bin 222 41418 985675920
1 f none useradmin/help/max.ru_SU.html 0600 root bin 222 36711 985675919
1 f none useradmin/help/max.sv.html 0600 root bin 228 22761 985675920
1 f none useradmin/help/max.zh_TW.Big5.html 0600 root bin 124 17350 985675920
1 f none useradmin/help/min.es.html 0600 root bin 117 11111 985675920
1 f none useradmin/help/min.fr.html 0600 root bin 120 10885 985675919
1 f none useradmin/help/min.html 0600 root bin 106 9699 985675919
1 f none useradmin/help/min.pl.html 0600 root bin 128 12524 985675920
1 f none useradmin/help/min.ru_RU.html 0600 root bin 99 17617 985675920
1 f none useradmin/help/min.ru_SU.html 0600 root bin 99 15711 985675919
1 f none useradmin/help/min.sv.html 0600 root bin 117 11370 985675920
1 f none useradmin/help/min.zh_TW.Big5.html 0600 root bin 60 7710 985675920
1 f none useradmin/help/movehome.es.html 0600 root bin 376 34941 985675920
1 f none useradmin/help/movehome.fr.html 0600 root bin 362 35175 985675919
1 f none useradmin/help/movehome.html 0600 root bin 327 29793 985675919
1 f none useradmin/help/movehome.pl.html 0600 root bin 360 35558 985675920
1 f none useradmin/help/movehome.ru_RU.html 0600 root bin 363 4447 985675920
1 f none useradmin/help/movehome.ru_SU.html 0600 root bin 363 61788 985675919
1 f none useradmin/help/movehome.sv.html 0600 root bin 295 28554 985675920
1 f none useradmin/help/movehome.zh_TW.Big5.html 0600 root bin 227 31870 985675920
1 f none useradmin/help/pass.es.html 0600 root bin 1449 61800 985675920
1 f none useradmin/help/pass.fr.html 0600 root bin 1437 63707 985675919
1 f none useradmin/help/pass.html 0600 root bin 1214 40482 985675919
1 f none useradmin/help/pass.pl.html 0600 root bin 1293 57013 985675920
1 f none useradmin/help/pass.ru_RU.html 0600 root bin 1440 53150 985675920
1 f none useradmin/help/pass.ru_SU.html 0600 root bin 1440 25793 985675919
1 f none useradmin/help/pass.sv.html 0600 root bin 1190 47025 985675920
1 f none useradmin/help/pass.zh_TW.Big5.html 0600 root bin 825 40962 985675920
1 f none useradmin/help/real.es.html 0600 root bin 183 16802 985675920
1 f none useradmin/help/real.fr.html 0600 root bin 193 17749 985675919
1 f none useradmin/help/real.html 0600 root bin 158 14050 985675919
1 f none useradmin/help/real.pl.html 0600 root bin 201 19353 985675920
1 f none useradmin/help/real.ru_RU.html 0600 root bin 208 37343 985675920
1 f none useradmin/help/real.ru_SU.html 0600 root bin 208 33142 985675919
1 f none useradmin/help/real.sv.html 0600 root bin 136 12637 985675920
1 f none useradmin/help/real.zh_TW.Big5.html 0600 root bin 133 18214 985675920
1 f none useradmin/help/shell.es.html 0600 root bin 881 14571 985675920
1 f none useradmin/help/shell.fr.html 0600 root bin 895 16399 985675919
1 f none useradmin/help/shell.html 0600 root bin 786 3970 985675919
1 f none useradmin/help/shell.pl.html 0600 root bin 944 27804 985675920
1 f none useradmin/help/shell.ru_RU.html 0600 root bin 936 31203 985675920
1 f none useradmin/help/shell.ru_SU.html 0600 root bin 936 14071 985675919
1 f none useradmin/help/shell.sv.html 0600 root bin 847 14369 985675920
1 f none useradmin/help/shell.zh_TW.Big5.html 0600 root bin 641 19052 985675920
1 f none useradmin/help/uid.es.html 0600 root bin 756 2791 985675920
1 f none useradmin/help/uid.fr.html 0600 root bin 788 10405 985675919
1 f none useradmin/help/uid.html 0600 root bin 676 59366 985675919
1 f none useradmin/help/uid.pl.html 0600 root bin 846 17277 985675920
1 f none useradmin/help/uid.ru_RU.html 0600 root bin 814 17175 985675920
1 f none useradmin/help/uid.ru_SU.html 0600 root bin 814 109 985675919
1 f none useradmin/help/uid.sv.html 0600 root bin 710 2694 985675920
1 f none useradmin/help/uid.zh_TW.Big5.html 0600 root bin 514 6054 985675920
1 f none useradmin/help/user.es.html 0600 root bin 97 8521 985675920
1 f none useradmin/help/user.fr.html 0600 root bin 120 10793 985675919
1 f none useradmin/help/user.html 0600 root bin 82 7187 985675919
1 f none useradmin/help/user.pl.html 0600 root bin 94 8955 985675920
1 f none useradmin/help/user.ru_RU.html 0600 root bin 97 17264 985675920
1 f none useradmin/help/user.ru_SU.html 0600 root bin 97 15468 985675919
1 f none useradmin/help/user.sv.html 0600 root bin 90 8664 985675920
1 f none useradmin/help/user.zh_TW.Big5.html 0600 root bin 72 9069 985675920
1 f none useradmin/help/warn.es.html 0600 root bin 172 15730 985675920
1 f none useradmin/help/warn.fr.html 0600 root bin 208 19845 985675919
1 f none useradmin/help/warn.html 0600 root bin 142 12897 985675919
1 f none useradmin/help/warn.pl.html 0600 root bin 153 14992 985675920
1 f none useradmin/help/warn.ru_RU.html 0600 root bin 237 44715 985675920
1 f none useradmin/help/warn.ru_SU.html 0600 root bin 237 39546 985675919
1 f none useradmin/help/warn.sv.html 0600 root bin 149 14590 985675920
1 f none useradmin/help/warn.zh_TW.Big5.html 0600 root bin 88 12075 985675920
1 f none useradmin/hpux-lib.pl 0600 root bin 1192 30005 985675919
1 d none useradmin/images 0700 root bin
1 f none useradmin/images/group.gif 0600 root bin 498 56003 985675918
1 f none useradmin/images/icon.gif 0600 root bin 390 43396 985675918
1 f none useradmin/images/user.gif 0600 root bin 223 25871 985675918
1 f none useradmin/index.cgi 0700 root bin 9330 11918 985675918
1 f none useradmin/irix-lib.pl 0600 root bin 1263 36263 985675920
1 d none useradmin/lang 0700 root bin
1 f none useradmin/lang/de 0600 root bin 9708 58320 985675919
1 f none useradmin/lang/en 0600 root bin 11922 55388 985675919
1 f none useradmin/lang/es 0600 root bin 10568 17061 985675919
1 f none useradmin/lang/fr 0600 root bin 9706 35385 985675919
1 f none useradmin/lang/he 0600 root bin 8326 56722 985675919
1 f none useradmin/lang/pl 0600 root bin 13597 43313 985675919
1 f none useradmin/lang/pt 0600 root bin 7147 35348 985675919
1 f none useradmin/lang/ru_RU 0600 root bin 8662 19900 985675919
1 f none useradmin/lang/ru_SU 0600 root bin 8672 13942 985675919
1 f none useradmin/lang/sv 0600 root bin 12536 42574 985675919
1 f none useradmin/lang/tr 0600 root bin 9292 54596 985675919
1 f none useradmin/lang/zh_CN 0600 root bin 6300 33483 985675919
1 f none useradmin/lang/zh_TW.Big5 0600 root bin 6359 42296 985675919
1 f none useradmin/linux-lib.pl 0600 root bin 4597 16550 985675919
1 f none useradmin/list_logins.cgi 0700 root bin 1678 2231 985675919
1 f none useradmin/log_parser.pl 0600 root bin 1172 28597 985675920
1 f none useradmin/low.risk 0600 root bin 302 27343 985675920
1 f none useradmin/low.skill 0600 root bin 50 4436 985675920
1 f none useradmin/many_create.cgi 0700 root bin 3933 42648 985675920
1 f none useradmin/many_form.cgi 0700 root bin 1419 56112 985675920
1 f none useradmin/medium.risk 0600 root bin 142 12415 985675920
1 f none useradmin/medium.skill 0600 root bin 8 672 985675920
1 f none useradmin/module.info 0600 root bin 565 60994 985675918
1 f none useradmin/my_group_chooser.cgi 0700 root bin 4725 46670 985675920
1 f none useradmin/my_user_chooser.cgi 0700 root bin 4359 18886 985675920
1 f none useradmin/open-linux-lib.pl 0600 root bin 4597 16550 985675920
1 f none useradmin/openbsd-lib.pl 0600 root bin 1261 35095 985675920
1 f none useradmin/osf1-lib.pl 0600 root bin 1181 28866 985675920
1 f none useradmin/redhat-linux-lib.pl 0600 root bin 4597 16550 985675920
1 f none useradmin/save_group.cgi 0700 root bin 2817 27614 985675919
1 f none useradmin/save_user.cgi 0700 root bin 12635 8608 985675918
1 f none useradmin/search_group.cgi 0700 root bin 1197 24875 985675920
1 f none useradmin/search_user.cgi 0700 root bin 1248 28113 985675919
1 f none useradmin/slackware-linux-lib.pl 0600 root bin 4597 16550 985675920
1 f none useradmin/solaris-lib.pl 0600 root bin 1203 31201 985675920
1 f none useradmin/suse-linux-lib.pl 0600 root bin 4597 16550 985675920
1 f none useradmin/turbo-linux-lib.pl 0600 root bin 4597 16550 985675920
1 f none useradmin/unixware-lib.pl 0600 root bin 1297 39350 985675918
1 f none useradmin/user-lib.pl 0600 root bin 16740 46741 985675918
1 f none version 0600 root bin 5 213 985675910
1 f none web-lib.pl 0700 root bin 54524 61558 985675910
1 d none webmin 0700 root bin
1 f none webmin-caldera-init 0700 root bin 990 11661 985675910
1 f none webmin-daemon 0600 root bin 80 6541 985675910
1 f none webmin-init 0700 root bin 545 42397 985675910
1 f none webmin/change_access.cgi 0700 root bin 2386 45333 985675922
1 f none webmin/change_bind.cgi 0700 root bin 1587 63224 985675922
1 f none webmin/change_ca.cgi 0700 root bin 555 46296 985675923
1 f none webmin/change_lang.cgi 0700 root bin 331 28462 985675922
1 f none webmin/change_log.cgi 0700 root bin 1147 31979 985675922
1 f none webmin/change_os.cgi 0700 root bin 525 44909 985675922
1 f none webmin/change_proxy.cgi 0700 root bin 819 5109 985675922
1 f none webmin/change_referers.cgi 0700 root bin 472 40937 985675923
1 f none webmin/change_session.cgi 0700 root bin 1548 4244 985675923
1 f none webmin/change_ssl.cgi 0700 root bin 560 46772 985675922
1 f none webmin/change_startpage.cgi 0700 root bin 655 56669 985675922
1 f none webmin/change_syslet.cgi 0700 root bin 916 12365 985675923
1 f none webmin/change_theme.cgi 0700 root bin 834 5889 985675923
1 f none webmin/change_ui.cgi 0700 root bin 906 8280 985675922
1 f none webmin/clone_mod.cgi 0700 root bin 1178 27489 985675922
1 f none webmin/delete_mod.cgi 0700 root bin 2675 8201 985675922
1 f none webmin/edit_access.cgi 0700 root bin 1211 37760 985675922
1 f none webmin/edit_assignment.cgi 0700 root bin 1356 43155 985675923
1 f none webmin/edit_bind.cgi 0700 root bin 1030 22056 985675922
1 f none webmin/edit_ca.cgi 0700 root bin 2700 28342 985675923
1 f none webmin/edit_categories.cgi 0700 root bin 1340 43910 985675923
1 f none webmin/edit_lang.cgi 0700 root bin 798 94 985675922
1 f none webmin/edit_log.cgi 0700 root bin 2744 35041 985675922
1 f none webmin/edit_mods.cgi 0700 root bin 2846 39102 985675922
1 f none webmin/edit_os.cgi 0700 root bin 1758 10175 985675922
1 f none webmin/edit_proxy.cgi 0700 root bin 1724 16801 985675922
1 f none webmin/edit_referers.cgi 0700 root bin 1035 22799 985675923
1 f none webmin/edit_session.cgi 0700 root bin 2466 17096 985675922
1 f none webmin/edit_ssl.cgi 0700 root bin 793 1760 985675922
1 f none webmin/edit_startpage.cgi 0700 root bin 2131 47876 985675923
1 f none webmin/edit_syslet.cgi 0600 root bin 998 19657 985675923
1 f none webmin/edit_themes.cgi 0600 root bin 1310 47313 985675923
1 f none webmin/edit_ui.cgi 0700 root bin 1998 31513 985675923
1 f none webmin/edit_upgrade.cgi 0700 root bin 1641 7317 985675923
1 d none webmin/images 0700 root bin
1 f none webmin/images/access.gif 0600 root bin 275 34570 985675922
1 f none webmin/images/assignment.gif 0600 root bin 2295 39355 985675922
1 f none webmin/images/bind.gif 0600 root bin 478 58145 985675922
1 f none webmin/images/ca.gif 0600 root bin 1420 41188 985675922
1 f none webmin/images/categories.gif 0600 root bin 1820 56835 985675922
1 f none webmin/images/icon.gif 0600 root bin 2303 63158 985675922
1 f none webmin/images/lang.gif 0600 root bin 405 48317 985675922
1 f none webmin/images/log.gif 0600 root bin 470 52260 985675922
1 f none webmin/images/mods.gif 0600 root bin 281 32091 985675922
1 f none webmin/images/os.gif 0600 root bin 393 45957 985675922
1 f none webmin/images/proxy.gif 0600 root bin 214 23452 985675922
1 f none webmin/images/referers.gif 0600 root bin 827 31730 985675922
1 f none webmin/images/session.gif 0600 root bin 1705 53289 985675922
1 f none webmin/images/ssl.gif 0600 root bin 364 43760 985675922
1 f none webmin/images/startpage.gif 0600 root bin 1511 40217 985675922
1 f none webmin/images/syslet.gif 0600 root bin 922 41762 985675922
1 f none webmin/images/themes.gif 0600 root bin 1946 832 985675922
1 f none webmin/images/ui.gif 0600 root bin 1558 33481 985675922
1 f none webmin/images/upgrade.gif 0600 root bin 184 20358 985675922
1 f none webmin/index.cgi 0700 root bin 2015 34045 985675922
1 f none webmin/install_mod.cgi 0700 root bin 6499 37079 985675922
1 f none webmin/install_theme.cgi 0700 root bin 4712 35024 985675923
1 d none webmin/lang 0700 root bin
1 f none webmin/lang/de 0600 root bin 12736 7287 985675922
1 f none webmin/lang/en 0600 root bin 19011 6961 985675922
1 f none webmin/lang/es 0600 root bin 20651 6126 985675922
1 f none webmin/lang/fr 0600 root bin 18005 24288 985675922
1 f none webmin/lang/he 0600 root bin 14302 10182 985675923
1 f none webmin/lang/hu 0600 root bin 8100 56769 985675922
1 f none webmin/lang/it 0600 root bin 12226 31877 985675922
1 f none webmin/lang/nl 0700 root bin 20318 13325 985675923
1 f none webmin/lang/pl 0600 root bin 20780 46496 985675923
1 f none webmin/lang/pt 0600 root bin 7804 27720 985675922
1 f none webmin/lang/ru_RU 0600 root bin 19498 41188 985675923
1 f none webmin/lang/ru_SU 0600 root bin 20044 28882 985675922
1 f none webmin/lang/sv 0600 root bin 19126 29994 985675922
1 f none webmin/lang/tr 0600 root bin 13534 44676 985675923
1 f none webmin/lang/zh_CN 0600 root bin 11791 21094 985675922
1 f none webmin/lang/zh_TW.Big5 0600 root bin 7572 27034 985675922
1 f none webmin/log_parser.pl 0600 root bin 986 15669 985675923
1 f none webmin/low.risk 0600 root bin 10 879 985675923
1 f none webmin/low.skill 0600 root bin 41 3913 985675923
1 f none webmin/medium.risk 0600 root bin 10 879 985675923
1 f none webmin/medium.skill 0600 root bin 71 6773 985675923
1 f none webmin/module.info 0600 root bin 455 48115 985675922
1 f none webmin/save_assignment.cgi 0700 root bin 451 38521 985675923
1 f none webmin/save_categories.cgi 0700 root bin 817 1994 985675923
1 f none webmin/setup_ca.cgi 0700 root bin 1284 43103 985675923
1 f none webmin/stop_ca.cgi 0700 root bin 1062 23723 985675923
1 f none webmin/upgrade.cgi 0700 root bin 5150 12296 985675923
1 f none webmin/webmin-lib.pl 0600 root bin 1270 37992 985675922
1 d none webminlog 0700 root bin
1 d none webminlog/images 0700 root bin
1 f none webminlog/images/icon.gif 0600 root bin 470 52260 985675959
1 f none webminlog/index.cgi 0700 root bin 2089 43944 985675959
1 d none webminlog/lang 0700 root bin
1 f none webminlog/lang/en 0600 root bin 1907 45394 985675959
1 f none webminlog/lang/es 0600 root bin 1809 41303 985675959
1 f none webminlog/lang/fr 0600 root bin 1821 46194 985675959
1 f none webminlog/lang/hu 0600 root bin 1801 51220 985675959
1 f none webminlog/lang/nl 0700 root bin 1708 30066 985675959
1 f none webminlog/lang/pl 0600 root bin 2207 17693 985675959
1 f none webminlog/lang/sv 0600 root bin 2035 64617 985675959
1 f none webminlog/lang/tr 0600 root bin 1685 43069 985675959
1 f none webminlog/lang/zh_CN 0600 root bin 1352 41217 985675959
1 f none webminlog/module.info 0600 root bin 290 28572 985675959
1 f none webminlog/search.cgi 0700 root bin 3663 10778 985675959
1 f none webminlog/view.cgi 0700 root bin 3059 41952 985675959
1 f none webminlog/webminlog-lib.pl 0600 root bin 725 47811 985675959
1 d none wuftpd 0700 root bin
1 f none wuftpd/config-aix 0600 root bin 188 18293 985675943
1 f none wuftpd/config-corel-linux 0600 root bin 186 18099 985675943
1 f none wuftpd/config-debian-linux 0600 root bin 186 18099 985675943
1 f none wuftpd/config-freebsd 0600 root bin 186 18099 985675943
1 f none wuftpd/config-hpux 0600 root bin 186 18099 985675943
1 f none wuftpd/config-lfs-linux 0600 root bin 186 18099 985675943
1 f none wuftpd/config-macos 0600 root bin 186 18099 985675943
1 f none wuftpd/config-open-linux 0600 root bin 186 18099 985675943
1 f none wuftpd/config-openbsd 0600 root bin 186 18099 985675943
1 f none wuftpd/config-osf1 0600 root bin 186 18099 985675943
1 f none wuftpd/config-redhat-linux 0600 root bin 186 18099 985675943
1 f none wuftpd/config-slackware-linux 0600 root bin 186 18120 985675943
1 f none wuftpd/config-solaris 0600 root bin 186 18099 985675943
1 f none wuftpd/config-suse-linux 0600 root bin 186 18120 985675943
1 f none wuftpd/config-turbo-linux 0600 root bin 211 20484 985675943
1 f none wuftpd/config.info 0600 root bin 269 24949 985675943
1 f none wuftpd/config.info.de 0600 root bin 307 28835 985675943
1 f none wuftpd/config.info.es 0600 root bin 354 34039 985675943
1 f none wuftpd/config.info.fr 0600 root bin 292 27649 985675943
1 f none wuftpd/config.info.pl 0600 root bin 368 35279 985675943
1 f none wuftpd/config.info.ru_RU 0600 root bin 281 39562 985675943
1 f none wuftpd/config.info.ru_SU 0600 root bin 281 36684 985675943
1 f none wuftpd/config.info.sv 0600 root bin 329 33897 985675943
1 f none wuftpd/config.info.tr 0600 root bin 284 29026 985675943
1 f none wuftpd/config.info.zh_CN 0600 root bin 224 30551 985675943
1 f none wuftpd/config.info.zh_TW.Big5 0600 root bin 250 30404 985675943
1 f none wuftpd/edit_acl.cgi 0700 root bin 8452 13370 985675943
1 f none wuftpd/edit_alias.cgi 0700 root bin 1277 39128 985675943
1 f none wuftpd/edit_anon.cgi 0700 root bin 3748 37239 985675943
1 f none wuftpd/edit_class.cgi 0700 root bin 2845 31265 985675943
1 f none wuftpd/edit_log.cgi 0700 root bin 2363 484 985675943
1 f none wuftpd/edit_message.cgi 0700 root bin 4455 31162 985675943
1 f none wuftpd/edit_misc.cgi 0700 root bin 2909 36064 985675943
1 f none wuftpd/edit_net.cgi 0700 root bin 2641 14746 985675943
1 f none wuftpd/edit_perm.cgi 0700 root bin 3262 60691 985675943
1 d none wuftpd/help 0700 root bin
1 f none wuftpd/help/acl.es.html 0600 root bin 2010 55943 985675943
1 f none wuftpd/help/acl.fr.html 0600 root bin 1867 45631 985675943
1 f none wuftpd/help/acl.html 0600 root bin 1681 21673 985675943
1 f none wuftpd/help/acl.pl.html 0600 root bin 1913 59633 985675943
1 f none wuftpd/help/acl.ru_RU.html 0600 root bin 1743 5959 985675943
1 f none wuftpd/help/acl.ru_SU.html 0600 root bin 1743 31859 985675943
1 f none wuftpd/help/acl.sv.html 0600 root bin 1808 45452 985675943
1 f none wuftpd/help/acl.zh_TW.Big5.html 0600 root bin 1118 37616 985675943
1 f none wuftpd/help/alias.es.html 0600 root bin 891 14903 985675943
1 f none wuftpd/help/alias.fr.html 0600 root bin 871 15074 985675943
1 f none wuftpd/help/alias.html 0600 root bin 794 5231 985675943
1 f none wuftpd/help/alias.pl.html 0600 root bin 858 16961 985675943
1 f none wuftpd/help/alias.ru_RU.html 0600 root bin 841 11352 985675943
1 f none wuftpd/help/alias.ru_SU.html 0600 root bin 841 62182 985675943
1 f none wuftpd/help/alias.sv.html 0600 root bin 812 11085 985675943
1 f none wuftpd/help/alias.zh_TW.Big5.html 0600 root bin 577 6548 985675943
1 f none wuftpd/help/anon.es.html 0600 root bin 1965 52353 985675943
1 f none wuftpd/help/anon.fr.html 0600 root bin 1954 56721 985675943
1 f none wuftpd/help/anon.html 0600 root bin 1747 28115 985675943
1 f none wuftpd/help/anon.pl.html 0600 root bin 1687 34820 985675943
1 f none wuftpd/help/anon.ru_RU.html 0600 root bin 1907 19601 985675943
1 f none wuftpd/help/anon.ru_SU.html 0600 root bin 1907 46248 985675943
1 f none wuftpd/help/anon.sv.html 0600 root bin 1718 33016 985675943
1 f none wuftpd/help/anon.zh_TW.Big5.html 0600 root bin 1171 33896 985675943
1 f none wuftpd/help/class.es.html 0600 root bin 1636 17058 985675943
1 f none wuftpd/help/class.fr.html 0600 root bin 1573 16940 985675943
1 f none wuftpd/help/class.html 0600 root bin 1353 54491 985675943
1 f none wuftpd/help/class.pl.html 0600 root bin 1541 17102 985675943
1 f none wuftpd/help/class.ru_RU.html 0600 root bin 1552 19877 985675943
1 f none wuftpd/help/class.ru_SU.html 0600 root bin 1552 53373 985675943
1 f none wuftpd/help/class.sv.html 0600 root bin 1450 6442 985675943
1 f none wuftpd/help/class.zh_TW.Big5.html 0600 root bin 960 63184 985675943
1 f none wuftpd/help/intro.es.html 0600 root bin 1048 32491 985675943
1 f none wuftpd/help/intro.fr.html 0600 root bin 949 24397 985675943
1 f none wuftpd/help/intro.html 0600 root bin 897 15896 985675943
1 f none wuftpd/help/intro.pl.html 0600 root bin 933 27202 985675943
1 f none wuftpd/help/intro.ru_RU.html 0600 root bin 986 53387 985675943
1 f none wuftpd/help/intro.ru_SU.html 0600 root bin 986 32498 985675943
1 f none wuftpd/help/intro.sv.html 0600 root bin 862 17907 985675943
1 f none wuftpd/help/intro.zh_TW.Big5.html 0600 root bin 594 17946 985675943
1 f none wuftpd/help/log.es.html 0600 root bin 900 16382 985675943
1 f none wuftpd/help/log.fr.html 0600 root bin 784 8639 985675943
1 f none wuftpd/help/log.html 0600 root bin 674 59865 985675943
1 f none wuftpd/help/log.pl.html 0600 root bin 755 6640 985675943
1 f none wuftpd/help/log.ru_RU.html 0600 root bin 710 58211 985675943
1 f none wuftpd/help/log.ru_SU.html 0600 root bin 710 45403 985675943
1 f none wuftpd/help/log.sv.html 0600 root bin 699 1506 985675943
1 f none wuftpd/help/log.zh_TW.Big5.html 0600 root bin 562 9783 985675943
1 f none wuftpd/help/message.es.html 0600 root bin 1139 39945 985675943
1 f none wuftpd/help/message.fr.html 0600 root bin 1140 42545 985675943
1 f none wuftpd/help/message.html 0600 root bin 997 24543 985675943
1 f none wuftpd/help/message.pl.html 0600 root bin 1046 40631 985675943
1 f none wuftpd/help/message.ru_RU.html 0600 root bin 1057 9525 985675943
1 f none wuftpd/help/message.ru_SU.html 0600 root bin 1057 50301 985675943
1 f none wuftpd/help/message.sv.html 0600 root bin 933 25761 985675943
1 f none wuftpd/help/message.zh_TW.Big5.html 0600 root bin 585 24191 985675943
1 f none wuftpd/help/misc.es.html 0600 root bin 732 634 985675943
1 f none wuftpd/help/misc.fr.html 0600 root bin 784 8025 985675943
1 f none wuftpd/help/misc.html 0600 root bin 649 58257 985675943
1 f none wuftpd/help/misc.pl.html 0600 root bin 663 64020 985675943
1 f none wuftpd/help/misc.ru_RU.html 0600 root bin 659 57025 985675943
1 f none wuftpd/help/misc.ru_SU.html 0600 root bin 659 42779 985675943
1 f none wuftpd/help/misc.sv.html 0600 root bin 626 59938 985675943
1 f none wuftpd/help/misc.zh_TW.Big5.html 0600 root bin 421 59017 985675943
1 f none wuftpd/help/net.es.html 0600 root bin 482 43909 985675943
1 f none wuftpd/help/net.fr.html 0600 root bin 458 43350 985675943
1 f none wuftpd/help/net.html 0600 root bin 409 37080 985675943
1 f none wuftpd/help/net.pl.html 0600 root bin 438 42821 985675943
1 f none wuftpd/help/net.ru_RU.html 0600 root bin 431 16091 985675943
1 f none wuftpd/help/net.ru_SU.html 0600 root bin 431 6444 985675943
1 f none wuftpd/help/net.sv.html 0600 root bin 387 37504 985675943
1 f none wuftpd/help/net.zh_TW.Big5.html 0600 root bin 249 35417 985675943
1 f none wuftpd/help/perm.es.html 0600 root bin 1153 42329 985675943
1 f none wuftpd/help/perm.fr.html 0600 root bin 1195 49315 985675943
1 f none wuftpd/help/perm.html 0600 root bin 1008 26425 985675943
1 f none wuftpd/help/perm.pl.html 0600 root bin 1077 42472 985675943
1 f none wuftpd/help/perm.ru_RU.html 0600 root bin 1142 26522 985675943
1 f none wuftpd/help/perm.ru_SU.html 0600 root bin 1142 65427 985675943
1 f none wuftpd/help/perm.sv.html 0600 root bin 988 29850 985675943
1 f none wuftpd/help/perm.zh_TW.Big5.html 0600 root bin 610 25449 985675943
1 d none wuftpd/images 0700 root bin
1 f none wuftpd/images/acl.gif 0600 root bin 275 34570 985675943
1 f none wuftpd/images/alias.gif 0600 root bin 208 23229 985675943
1 f none wuftpd/images/aliases.gif 0600 root bin 208 23229 985675943
1 f none wuftpd/images/anon.gif 0600 root bin 237 27060 985675943
1 f none wuftpd/images/class.gif 0600 root bin 390 43396 985675943
1 f none wuftpd/images/icon.gif 0600 root bin 407 48215 985675943
1 f none wuftpd/images/log.gif 0600 root bin 470 52260 985675943
1 f none wuftpd/images/message.gif 0600 root bin 377 47845 985675943
1 f none wuftpd/images/misc.gif 0600 root bin 460 53918 985675943
1 f none wuftpd/images/net.gif 0600 root bin 478 58145 985675943
1 f none wuftpd/images/perm.gif 0600 root bin 332 37563 985675943
1 f none wuftpd/index.cgi 0700 root bin 3579 17385 985675943
1 d none wuftpd/lang 0700 root bin
1 f none wuftpd/lang/de 0600 root bin 9389 28480 985675943
1 f none wuftpd/lang/en 0600 root bin 8433 4407 985675943
1 f none wuftpd/lang/es 0600 root bin 9827 17176 985675943
1 f none wuftpd/lang/fr 0600 root bin 9550 3090 985675943
1 f none wuftpd/lang/pl 0600 root bin 9005 34966 985675943
1 f none wuftpd/lang/ru_RU 0600 root bin 9018 5577 985675943
1 f none wuftpd/lang/ru_SU 0600 root bin 9028 58457 985675943
1 f none wuftpd/lang/sv 0600 root bin 9336 6732 985675943
1 f none wuftpd/lang/tr 0600 root bin 9199 40344 985675943
1 f none wuftpd/lang/zh_CN 0600 root bin 6047 52414 985675943
1 f none wuftpd/lang/zh_TW.Big5 0600 root bin 6443 43738 985675943
1 f none wuftpd/log_parser.pl 0600 root bin 394 34363 985675943
1 f none wuftpd/module.info 0600 root bin 441 43301 985675943
1 f none wuftpd/restart.cgi 0700 root bin 302 24994 985675943
1 f none wuftpd/save_acl.cgi 0700 root bin 3971 48227 985675943
1 f none wuftpd/save_alias.cgi 0700 root bin 876 4741 985675943
1 f none wuftpd/save_anon.cgi 0700 root bin 1611 63592 985675943
1 f none wuftpd/save_class.cgi 0700 root bin 1714 3320 985675943
1 f none wuftpd/save_log.cgi 0700 root bin 897 5003 985675943
1 f none wuftpd/save_message.cgi 0700 root bin 2566 3860 985675943
1 f none wuftpd/save_misc.cgi 0700 root bin 1505 53047 985675943
1 f none wuftpd/save_net.cgi 0700 root bin 1619 62960 985675943
1 f none wuftpd/save_perm.cgi 0700 root bin 1390 44913 985675943
1 f none wuftpd/start.cgi 0700 root bin 227 18711 985675943
1 f none wuftpd/wuftpd-lib.pl 0600 root bin 2186 35097 985675943
1 d none xinetd 0700 root bin
1 f none xinetd/config-debian-linux 0600 root bin 122 11674 985675960
1 f none xinetd/config-freebsd 0600 root bin 121 11650 985675960
1 f none xinetd/config-redhat-linux 0600 root bin 128 12200 985675960
1 f none xinetd/config-suse-linux 0600 root bin 124 11906 985675960
1 f none xinetd/config-suse-linux-7.1 0600 root bin 123 11794 985675961
1 f none xinetd/config.info 0600 root bin 151 14086 985675960
1 f none xinetd/config.info.es 0600 root bin 183 17025 985675960
1 f none xinetd/config.info.pl 0600 root bin 175 16940 985675960
1 f none xinetd/config.info.sv 0600 root bin 165 16546 985675960
1 f none xinetd/config.info.zh_CN 0600 root bin 125 15737 985675960
1 f none xinetd/edit_defaults.cgi 0600 root bin 3769 45363 985675960
1 f none xinetd/edit_serv.cgi 0700 root bin 7177 1450 985675960
1 d none xinetd/images 0700 root bin
1 f none xinetd/images/icon.gif 0600 root bin 291 36589 985675960
1 f none xinetd/index.cgi 0700 root bin 2900 33421 985675960
1 d none xinetd/lang 0700 root bin
1 f none xinetd/lang/en 0600 root bin 4154 3053 985675960
1 f none xinetd/lang/es 0600 root bin 4818 7803 985675960
1 f none xinetd/lang/pl 0600 root bin 4719 16785 985675960
1 f none xinetd/lang/sv 0600 root bin 4583 63930 985675960
1 f none xinetd/lang/zh_CN 0600 root bin 3337 7050 985675960
1 f none xinetd/log_parser.pl 0600 root bin 638 54390 985675960
1 f none xinetd/module.info 0600 root bin 370 36415 985675960
1 f none xinetd/restart.cgi 0700 root bin 266 22348 985675960
1 f none xinetd/save_defaults.cgi 0700 root bin 1341 43484 985675960
1 f none xinetd/save_serv.cgi 0700 root bin 4390 22883 985675960
1 f none xinetd/start.cgi 0700 root bin 296 25051 985675960
1 f none xinetd/xinetd-lib.pl 0600 root bin 3747 27208 985675960
 0707010003b3d5000041ed0000000000000001000000023ac03c4500000000000000200000000000000000000000000000000800000003install   0707010003b3d6000081a40000000000000001000000013ac03b2000000196000000200000000000000000000000000000001400000003install/postinstall   echo "Executing postinstall script .."
cd /opt/webmin
config_dir=/etc/webmin
var_dir=/var/webmin
perl=/usr/local/bin/perl
autoos=1
port=10000
login=root
crypt=`grep "^root:" /etc/shadow | cut -f 2 -d :`
host=`hostname`
ssl=0
atboot=0
nochown=1
autothird=1
noperlpath=1
nouninstall=1
export config_dir var_dir perl autoos port login crypt host ssl atboot nochown autothird noperlpath nouninstall
./setup.sh
  0707010003b3d7000081a40000000000000001000000013ac03b200000011d000000200000000000000000000000000000001200000003install/preremove echo "In preremove script.."
/etc/webmin/stop
grep root=/opt/webmin /etc/webmin/miniserv.conf >/dev/null 2>&1
if [ "$?" = 0 -a "" = "" ]; then
	# Package is being removed, and no new version of webmin
	# has taken it's place. Delete the config files
	rm -rf /etc/webmin /var/webmin
fi
   0707010000bb17000041ed0000000000000001000000353ac03cb100000000000000200000000000000000000000000000000600000003reloc 0707010000bb18000081a40000000000000002000000013ac0388600000638000000200000000000000000000000000000000e00000003reloc/LICENCE ---------------------------------------------------------
 Copyright (c) Jamie Cameron
 All rights reserved.

 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions
 are met:
 1. Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer.
 2. Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the
    documentation and/or other materials provided with the distribution.
 3. Neither the name of the developer nor the names of contributors
    may be used to endorse or promote products derived from this software
    without specific prior written permission.

 THIS SOFTWARE IS PROVIDED BY THE DEVELOPER ``AS IS'' AND
 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 ARE DISCLAIMED.  IN NO EVENT SHALL THE DEVELOPER OR CONTRIBUTORS BE LIABLE
 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 SUCH DAMAGE.
 ---------------------------------------------------------

0707010000bb19000081a40000000000000002000000013ac0388600000489000000200000000000000000000000000000000d00000003reloc/README  Webmin Version 0.84
-------------------
Webmin is a web-based interface for system administration for Unix. 
Using any browser that supports tables and forms, you can setup user
accounts, Apache, internet services, DNS, file sharing and so on. 

Webmin consists of a simple web server, and a number of CGI programs
which directly update system files like /etc/inetd.conf and /etc/passwd.
The web server and all CGI programs are written in Perl version 5, and use
only the standard perl modules. 

To setup webmin, simply run the  setup.sh  shell script, which should be
found in the same directory as this README file. This will setup Webmin
to run from that directory.

You can also upgrade an existing webmin install by running setup.sh
from the new version and entering the same configuration directory as
last time.

After running setup.sh, do not delete this directory as it contains
all the scripts and programs that will be used by Webmin when it is running.
Unlike many other programs, the Webmin scripts do not get copied to another
location when installing.

For more information, see http://www.webmin.com/webmin/

Jamie Cameron
jcameron@webmin.com

   0707010000d188000041ed0000000000000001000000043ac03b8e00000000000000200000000000000000000000000000000a00000003reloc/acl 0707010000d189000081a40000000000000002000000013ac0389600002304000000200000000000000000000000000000001500000003reloc/acl/acl-lib.pl  # acl-lib.pl
# Library for editing webmin users, passwords and access rights

do '../web-lib.pl';
&init_config();
%access = &get_module_acl();

# list_users()
# Returns a list of hashes containing user details
sub list_users
{
local(@mods, %miniserv, $_, @rv, %acl);
&read_acl(undef, \%acl);
@mods = &list_modules();
&get_miniserv_config(\%miniserv);
open(PWFILE, $miniserv{'userfile'});
while(<PWFILE>) {
	s/\r|\n//g;
	local @user = split(/:/, $_);
	if (@user) {
		local(%user);
		$user{'name'} = $user[0];
		$user{'pass'} = $user[1];
		$user{'sync'} = $user[2];
		$user{'cert'} = $user[3];
		if ($user[4] =~ /^(allow|deny)\s+(.*)/) {
			$user{$1} = $2;
			}
		$user{'modules'} = $acl{$user[0]};
		$user{'lang'} = $gconfig{"lang_$user[0]"};
		$user{'notabs'} = $gconfig{"notabs_$user[0]"};
		$user{'skill'} = $gconfig{"skill_$user[0]"};
		$user{'risk'} = $gconfig{"risk_$user[0]"};
		$user{'ownmods'} = [ split(/\s+/,
					   $gconfig{"ownmods_$user[0]"}) ];
		push(@rv, \%user);
		}
	}
close(PWFILE);
return @rv;
}

# list_groups()
# Returns a list of hashes, one per group.
# Group membership is stored in /etc/webmin/webmin.groups, and other attributes
# in the config file.
sub list_groups
{
local @rv;
open(GROUPS, "$config_directory/webmin.groups");
while(<GROUPS>) {
	s/\r|\n//g;
	local @g = split(/:/, $_);
	local $group = { 'name' => $g[0],
			 'members' => [ split(/\s+/, $g[1]) ],
			 'modules' => [ split(/\s+/, $g[2]) ],
			 'desc' => $g[3] };
	push(@rv, $group);
	}
close(GROUPS);
return @rv;
}

# list_modules()
# Returns a list of all modules available on this system
sub list_modules
{
local(@rv, $d);
opendir(DIR, "..");
foreach $d (readdir(DIR)) {
	local %minfo;
	if ($d !~ /^\./ && (%minfo = &get_module_info($d)) &&
	    &check_os_support(\%minfo)) {
		push(@rv, \%minfo);
		}
	}
closedir(DIR);
return map { $_->{'dir'} } sort { $a->{'desc'} cmp $b->{'desc'} } @rv;
}

# module_info(module)
# Returns an array of  module, name, desc, [os_support]
sub module_info
{
local %module = &get_module_info($_[0]);
return ($_[0], $module{'name'}, $module{"desc"}, $module{'os_support'});
}

# create_user(&details, clone)
sub create_user
{
local(%user, %miniserv, @mods);
%user = %{$_[0]};
&get_miniserv_config(\%miniserv);

&lock_file($miniserv{'userfile'});
open(PWFILE, ">> $miniserv{'userfile'}");
print PWFILE "$user{'name'}:$user{'pass'}:$user{'sync'}:$user{'cert'}:",
	$user{'allow'} ? "allow $user{'allow'}" :
	$user{'deny'} ? "deny $user{'deny'}" : "","\n";
close(PWFILE);
&unlock_file($miniserv{'userfile'});

&lock_file(&acl_filename());
@mods = &list_modules();
open(ACL, ">> ".&acl_filename());
print ACL &acl_line(\%user, \@mods);
close(ACL);
&unlock_file(&acl_filename());

delete($gconfig{"lang_".$user{'name'}});
$gconfig{"lang_".$user{'name'}} = $user{'lang'} if ($user{'lang'});
delete($gconfig{"notabs_".$user{'name'}});
$gconfig{"notabs_".$user{'name'}} = $user{'notabs'} if ($user{'notabs'});
delete($gconfig{"skill_".$user{'name'}});
$gconfig{"skill_".$user{'name'}} = $user{'skill'} if ($user{'skill'});
delete($gconfig{"risk_".$user{'name'}});
$gconfig{"risk_".$user{'name'}} = $user{'risk'} if ($user{'risk'});
delete($gconfig{"ownmods_".$user{'name'}});
$gconfig{"ownmods_".$user{'name'}} = join(" ", @{$user{'ownmods'}})
	if (@{$user{'ownmods'}});
&write_file("$config_directory/config", \%gconfig);

if ($_[1]) {
	foreach $m (@mods) {
		local $file = "$config_directory/$m/$_[1].acl";
		local $dest = "$config_directory/$m/$user{'name'}.acl";
		if (-r $file) {
			local %macl;
			&read_file($file, \%macl);
			&write_file($dest, \%macl);
			}
		}
	}
}

# modify_user(name, &details)
sub modify_user
{
local(%user, %miniserv, @pwfile, @acl, @mods, $_, $m);
%user = %{$_[1]};
&get_miniserv_config(\%miniserv);

&lock_file($miniserv{'userfile'});
open(PWFILE, $miniserv{'userfile'});
@pwfile = <PWFILE>;
close(PWFILE);
open(PWFILE, "> $miniserv{'userfile'}");
foreach (@pwfile) {
	if (/^([^:\s]+):([^:\s]+)/ && $1 eq $_[0]) {
		print PWFILE "$user{'name'}:$user{'pass'}:",
			     "$user{'sync'}:$user{'cert'}:",
			$user{'allow'} ? "allow $user{'allow'}" :
			$user{'deny'} ? "deny $user{'deny'}" : "","\n";
		}
	else { print PWFILE $_; }
	}
close(PWFILE);
&unlock_file($miniserv{'userfile'});

&lock_file(&acl_filename());
@mods = &list_modules();
open(ACL, &acl_filename());
@acl = <ACL>;
close(ACL);
open(ACL, "> ".&acl_filename());
foreach (@acl) {
	if (/^(\S+):/ && $1 eq $_[0]) {
		print ACL &acl_line($_[1], \@mods);
		}
	else { print ACL $_; }
	}
close(ACL);
&unlock_file(&acl_filename());

delete($gconfig{"lang_".$_[0]});
$gconfig{"lang_".$user{'name'}} = $user{'lang'} if ($user{'lang'});
delete($gconfig{"notabs_".$_[0]});
$gconfig{"notabs_".$user{'name'}} = $user{'notabs'} if ($user{'notabs'});
delete($gconfig{"skill_".$_[0]});
$gconfig{"skill_".$user{'name'}} = $user{'skill'} if ($user{'skill'});
delete($gconfig{"risk_".$_[0]});
$gconfig{"risk_".$user{'name'}} = $user{'risk'} if ($user{'risk'});
delete($gconfig{"ownmods_".$_[0]});
$gconfig{"ownmods_".$user{'name'}} = join(" ", @{$user{'ownmods'}})
	if (@{$user{'ownmods'}});
&write_file("$config_directory/config", \%gconfig);

foreach $m (@mods, "") {
	local $file = "$config_directory/$m/$_[0].acl";
	if (-r $file) {
		rename($file, "$config_directory/$m/$user{'name'}.acl");
		}
	}

if ($miniserv{'session'} && $_[0] ne $user{'name'}) {
	# Modify all sessions for the renamed user
	&open_session_db(\%miniserv);
	foreach $s (keys %sessiondb) {
		local ($u,$t) = split(/\s+/, $sessiondb{$s});
		if ($u eq $_[0]) {
			$sessiondb{$s} = "$user{'name'} $t";
			}
		}
	dbmclose(%sessiondb);
	}
}

# delete_user(name)
# Delete some user from the ACL and password files
sub delete_user
{
local($_, @pwfile, @acl, %miniserv);
&get_miniserv_config(\%miniserv);
&lock_file($miniserv{'userfile'});
open(PWFILE, $miniserv{'userfile'});
@pwfile = <PWFILE>;
close(PWFILE);
open(PWFILE, "> $miniserv{'userfile'}");
foreach (@pwfile) {
	if (!/^([^:\s]+):([^:\s]+)/ || $1 ne $_[0]) { print PWFILE $_; }
	}
close(PWFILE);
&unlock_file($miniserv{'userfile'});

&lock_file(&acl_filename());
open(ACL, &acl_filename());
@acl = <ACL>;
close(ACL);
open(ACL, "> ".&acl_filename());
foreach (@acl) {
	if (!/^(\S+):/ || $1 ne $_[0]) { print ACL $_; }
	}
close(ACL);
&unlock_file(&acl_filename());

delete($gconfig{"lang_".$_[0]});
delete($gconfig{"notabs_".$_[0]});
delete($gconfig{"skill_".$_[0]});
delete($gconfig{"risk_".$_[0]});
delete($gconfig{"ownmods_".$_[0]});
&write_file("$config_directory/config", \%gconfig);

unlink(map { "$config_directory/$_/$_[0].acl" } &list_modules());

if ($miniserv{'session'}) {
	# Delete all sessions for the deleted user
	&open_session_db(\%miniserv);
	foreach $s (keys %sessiondb) {
		local ($u,$t) = split(/\s+/, $sessiondb{$s});
		if ($u eq $_[0]) {
			delete($sessiondb{$s});
			}
		}
	dbmclose(%sessiondb);
	}
}

# create_group(&group)
# Add a new webmin group
sub create_group
{
&lock_file("$config_directory/webmin.groups");
open(GROUP, ">>$config_directory/webmin.groups");
print GROUP &group_line($_[0]),"\n";
close(GROUP);
&unlock_file("$config_directory/webmin.groups");
}

# modify_group(name, &group)
# Update a webmin group
sub modify_group
{
&lock_file("$config_directory/webmin.groups");
local $lref = &read_file_lines("$config_directory/webmin.groups");
foreach $l (@$lref) {
	if ($l =~ /^([^:]+):/ && $1 eq $_[0]) {
		$l = &group_line($_[1]);
		}
	}
&flush_file_lines();
&unlock_file("$config_directory/webmin.groups");

foreach $m (@{$_[1]->{'modules'}}, "") {
	local $file = "$config_directory/$m/$_[0].acl";
	if (-r $file) {
		rename($file, "$config_directory/$m/$_[1]->{'name'}.acl");
		}
	}
}

# delete_group(name)
# Delete a webmin group
sub delete_group
{
&lock_file("$config_directory/webmin.groups");
local $lref = &read_file_lines("$config_directory/webmin.groups");
@$lref = grep { !/^([^:]+):/ || $1 ne $_[0] } @$lref;
&flush_file_lines();
&unlock_file("$config_directory/webmin.groups");
unlink(map { "$config_directory/$_/$_[0].acl" } &list_modules());
}

# group_line(&group)
sub group_line
{
return join(":", $_[0]->{'name'},
		 join(" ", @{$_[0]->{'members'}}),
		 join(" ", @{$_[0]->{'modules'}}),
		 $_[0]->{'desc'});
}

# acl_line(&user, &allmodules)
# Internal function to generate an ACL file line
sub acl_line
{
local(%user);
%user = %{$_[0]};
return "$user{'name'}: ".join(' ', @{$user{'modules'}})."\n";
}

# can_edit_user(user)
sub can_edit_user
{
return 1 if ($access{'users'} eq '*');
local $u;
foreach $u (split(/\s+/, $access{'users'})) {
	return 1 if ($u eq $_[0]);
	}
return 0;
}

# open_session_db(\%miniserv)
sub open_session_db
{
local $sfile = $_[0]->{'sessiondb'} ? $_[0]->{'sessiondb'} :
	       $_[0]->{'pidfile'} =~ /^(.*)\/[^\/]+$/ ? "$1/sessiondb"
						      : return;
eval "use SDBM_File";
dbmopen(%sessiondb, $sfile, 0700);
eval { $sessiondb{'1111111111'} = 'foo bar' };
if ($@) {
	dbmclose(%sessiondb);
	eval "use NDBM_File";
	dbmopen(%sessiondb, $sfile, 0700);
	}
}


1;

0707010000d18a000081a40000000000000002000000013ac03896000014de000000200000000000000000000000000000001a00000003reloc/acl/acl_security.pl 
do './acl-lib.pl';

# acl_security_form(&options)
# Output HTML for editing security options for the acl module
sub acl_security_form
{
local $o = $_[0];
print "<tr> <td valign=top><b>$text{'acl_users'}</b></td>\n";
print "<td valign=top>\n";
printf "<input type=radio name=users_def value=1 %s> %s\n",
	$o->{'users'} eq '*' ? 'checked' : '', $text{'acl_uall'};
printf "<input type=radio name=users_def value=0 %s> %s<br>\n",
	$o->{'users'} eq '*' ? '' : 'checked', $text{'acl_usel'};
print "<select name=users multiple size=4 width=150>\n";
map { $ucan{$_}++ } split(/\s+/, $o->{'users'});
foreach $u (&list_users()) {
	printf "<option %s>%s\n",
		$ucan{$u->{'name'}} ? 'selected' : '',
		$u->{'name'};
	}
print "</select></td>\n";

print "<td valign=top rowspan=3><b>$text{'acl_mods'}</b></td> ",
      "<td valign=top rowspan=3>\n";
printf "<input type=radio name=mode value=0 %s> %s&nbsp;\n",
	$o->{'mode'} == 0 ? 'checked' : '', $text{'acl_all'};
printf "<input type=radio name=mode value=1 %s> %s<br>\n",
	$o->{'mode'} == 1 ? 'checked' : '', $text{'acl_own'};
printf "<input type=radio name=mode value=2 %s> %s<br>\n",
	$o->{'mode'} == 2 ? 'checked' : '', $text{'acl_sel'};
print "&nbsp;&nbsp;&nbsp;<select name=mods multiple size=6>\n";
map { $mcan{$_}++ } split(/\s+/, $o->{'mods'});
foreach $m (&list_modules()) {
	%minfo = &get_module_info($m);
	printf "<option value=%s %s>%s\n",
		$m, $mcan{$m} ? 'selected' :'', $minfo{'desc'}, $m;
	}
print "</select></td> </tr>\n";

print "<tr> <td><b>$text{'acl_create'}</b></td> <td>\n";
printf "<input type=radio name=create value=1 %s> $text{'yes'}\n",
	$o->{'create'} ? 'checked' : '';
printf "<input type=radio name=create value=0 %s> $text{'no'}</td> </tr>\n",
	$o->{'create'} ? '' : 'checked';

print "<tr> <td><b>$text{'acl_delete'}</b></td> <td>\n";
printf "<input type=radio name=delete value=1 %s> $text{'yes'}\n",
	$o->{'delete'} ? 'checked' : '';
printf "<input type=radio name=delete value=0 %s> $text{'no'}</td> </tr>\n",
	$o->{'delete'} ? '' : 'checked';

print "<tr> <td><b>$text{'acl_rename'}</b></td> <td>\n";
printf "<input type=radio name=rename value=1 %s> $text{'yes'}\n",
	$o->{'rename'} ? 'checked' : '';
printf "<input type=radio name=rename value=0 %s> $text{'no'}</td>\n",
	$o->{'rename'} ? '' : 'checked';

print "<td><b>$text{'acl_acl'}</b></td> <td>\n";
printf "<input type=radio name=acl value=1 %s> $text{'yes'}\n",
	$o->{'acl'} ? 'checked' : '';
printf "<input type=radio name=acl value=0 %s> $text{'no'}</td> </tr>\n",
	$o->{'acl'} ? '' : 'checked';

print "<tr> <td><b>$text{'acl_cert'}</b></td> <td>\n";
printf "<input type=radio name=cert value=1 %s> $text{'yes'}\n",
	$o->{'cert'} ? 'checked' : '';
printf "<input type=radio name=cert value=0 %s> $text{'no'}</td>\n",
	$o->{'cert'} ? '' : 'checked';

print "<td><b>$text{'acl_others'}</b></td> <td>\n";
printf "<input type=radio name=others value=1 %s> $text{'yes'}\n",
	$o->{'others'} ? 'checked' : '';
printf "<input type=radio name=others value=0 %s> $text{'no'}</td> </tr>\n",
	$o->{'others'} ? '' : 'checked';

print "<tr> <td><b>$text{'acl_chcert'}</b></td> <td>\n";
printf "<input type=radio name=chcert value=1 %s> $text{'yes'}\n",
	$o->{'chcert'} ? 'checked' : '';
printf "<input type=radio name=chcert value=0 %s> $text{'no'}</td>\n",
	$o->{'chcert'} ? '' : 'checked';

print "<td><b>$text{'acl_lang'}</b></td> <td>\n";
printf "<input type=radio name=lang value=1 %s> $text{'yes'}\n",
	$o->{'lang'} ? 'checked' : '';
printf "<input type=radio name=lang value=0 %s> $text{'no'}</td> </tr>\n",
	$o->{'lang'} ? '' : 'checked';

print "<tr> <td colspan=4><hr></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'acl_groups'}</b></td> <td valign=top>\n";
printf "<input type=radio name=groups value=1 %s> $text{'yes'}\n",
	$o->{'groups'} == 1 ? 'checked' : '';
printf "<input type=radio name=groups value=0 %s> $text{'no'}</td>\n",
	$o->{'groups'} == 0 ? 'checked' : '';

print "<td valign=top><b>$text{'acl_gassign'}</b></td> <td>\n";
printf "<input type=radio name=gassign_def value=1 %s> %s\n",
	$o->{'gassign'} eq '*' ? 'checked' : '', $text{'acl_gall'};
printf "<input type=radio name=gassign_def value=0 %s> %s<br>\n",
	$o->{'gassign'} eq '*' ? '' : 'checked', $text{'acl_gsel'};
print "<select name=gassign multiple size=3 width=150>\n";
map { $gcan{$_}++ } split(/\s+/, $o->{'gassign'});
printf "<option value=_none %s>&lt;%s&gt;\n",
	$gcan{'_none'} ? 'selected' : '', $text{'acl_gnone'};
foreach $g (&list_groups()) {
	printf "<option %s>%s\n",
		$gcan{$g->{'name'}} ? 'selected' : '', $g->{'name'};
	}
print "</select></td> </tr>\n";
}

# acl_security_save(&options)
# Parse the form for security options for the acl module
sub acl_security_save
{
if ($in{'users_def'}) {
	$_[0]->{'users'} = '*';
	}
else {
	$_[0]->{'users'} = join(" ", split(/\0/, $in{'users'}));
	}
$_[0]->{'mode'} = $in{'mode'};
$_[0]->{'mods'} = $in{'mode'} == 2 ? join(" ", split(/\0/, $in{'mods'}))
				   : undef;
$_[0]->{'create'} = $in{'create'};
$_[0]->{'groups'} = $in{'groups'};
$_[0]->{'delete'} = $in{'delete'};
$_[0]->{'rename'} = $in{'rename'};
$_[0]->{'acl'} = $in{'acl'};
$_[0]->{'others'} = $in{'others'};
$_[0]->{'cert'} = $in{'cert'};
$_[0]->{'chcert'} = $in{'chcert'};
$_[0]->{'lang'} = $in{'lang'};
$_[0]->{'gassign'} = $in{'gassign_def'} ? '*' :
		     join(" ", split(/\0/, $in{'gassign'}));
}

  0707010000d19d000081e40000000000000002000000013ac0389700000564000000200000000000000000000000000000001800000003reloc/acl/cert_form.cgi   #!/usr/local/bin/perl
# cert_form.cgi

require './acl-lib.pl';
&header($text{'cert_title'}, "");
print "<hr>\n";
eval "use Net::SSLeay";

print "<p>$text{'cert_msg'}<p>\n";
if ($ENV{'SSL_USER'}) {
	print &text('cert_already', "<tt>$ENV{'SSL_USER'}</tt>"),
	      "<p>\n";
	}
print "<form action=cert_issue.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'cert_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'cert_cn'}</b></td>\n";
print "<td><input name=commonName size=30></td> </tr>\n";

print "<tr> <td><b>$text{'cert_email'}</b></td>\n";
print "<td><input name=emailAddress size=30></td> </tr>\n";

print "<tr> <td><b>$text{'cert_ou'}</b></td>\n";
print "<td><input name=organizationalUnitName size=30></td> </tr>\n";

print "<tr> <td><b>$text{'cert_o'}</b></td>\n";
print "<td><input name=organizationName size=30></td> </tr>\n";

print "<tr> <td><b>$text{'cert_sp'}</b></td>\n";
print "<td><input name=stateOrProvinceName size=15></td> </tr>\n";

print "<tr> <td><b>$text{'cert_c'}</b></td>\n";
print "<td><input name=countryName size=2></td> </tr>\n";

print "<tr> <td><b>$text{'cert_key'}</b></td>\n";
print "<td><keygen name=key></td> </tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value='$text{'cert_issue'}'>\n";
print "</form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

0707010000d19e000081e40000000000000002000000013ac0389700000629000000200000000000000000000000000000001900000003reloc/acl/cert_issue.cgi  #!/usr/local/bin/perl
# cert_issue.cgi

require './acl-lib.pl';
&ReadParse();

&error_setup($text{'cert_err'});
$in{'key'} || &error($text{'cert_ekey'});
&get_miniserv_config(\%miniserv);

# Create the new key
$temp1 = &tempname();
$temp2 = &tempname();
open(IN, ">$temp1");
foreach $k ("emailAddress", "organizationalUnitName", "organizationName",
	    "stateOrProvinceName", "countryName", "commonName") {
	print IN "$k = $in{$k}\n";
	}
$in{'key'} =~ s/\s//g;
print IN "SPKAC = $in{'key'}\n";
close(IN);
$ssleay = &backquote_logged("$config{'ssleay'} ca -spkac $temp1 -out $temp2 -config $module_config_directory/openssl.cnf 2>&1");
unlink($temp1);
if ($?) {
	&error("<pre>$ssleay</pre>");
	}
else {
	# Display status and redirect to actual cert file
	$| = 1;
	&header($text{'cert_title'}, "");
	print "<hr>\n";
	print "<p>",&text('cert_ok', $in{'commonName'}),"<p>\n";
	print "<script>\n";
	print "location = 'cert_output.cgi?file=$temp2'\n";
	print "</script>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});

	# Update the miniserv users file
	&lock_file($miniserv{'userfile'});
	$lref = &read_file_lines($miniserv{'userfile'});
	foreach $l (@$lref) {
		@u = split(/:/, $l);
		if ($u[0] eq $ENV{'REMOTE_USER'}) {
			$l = "$u[0]:$u[1]:$u[2]:/C=$in{'countryName'}/ST=$in{'stateOrProvinceName'}/O=$in{'organizationName'}/OU=$in{'organizationalUnitName'}/CN=$in{'commonName'}/Email=$in{'emailAddress'}";
			}
		}
	&flush_file_lines();
	&unlock_file($miniserv{'userfile'});

	sleep(1);
	&restart_miniserv();
	&webmin_log("cert", undef, $ENV{'REMOTE_USER'}, \%in);
	}

   0707010000d19f000081e40000000000000002000000013ac03897000000da000000200000000000000000000000000000001a00000003reloc/acl/cert_output.cgi #!/usr/local/bin/perl
# cert_issue.cgi

require './acl-lib.pl';
&ReadParse();
print "Content-type: application/x-x509-user-cert\n\n";
open(OUT, $in{'file'});
while(<OUT>) {
	print;
	}
close(OUT);
unlink($in{'file'});

  0707010000d1a0000081a40000000000000002000000013ac038970000002b000000200000000000000000000000000000001100000003reloc/acl/config  ssleay=/usr/local/ssl/bin/openssl
select=0
 0707010000d1a1000081a40000000000000002000000013ac0389700000021000000200000000000000000000000000000001e00000003reloc/acl/config-debian-linux ssleay=/usr/bin/openssl
select=0
   0707010000d1a2000081a40000000000000002000000013ac0389700000021000000200000000000000000000000000000001900000003reloc/acl/config-freebsd  ssleay=/usr/bin/openssl
select=0
   0707010000d1a3000081a40000000000000002000000013ac0389700000021000000200000000000000000000000000000002100000003reloc/acl/config-open-linux-3.1e  ssleay=/usr/bin/openssl
select=0
   0707010000d1a4000081a40000000000000002000000013ac0389700000021000000200000000000000000000000000000001e00000003reloc/acl/config-redhat-linux ssleay=/usr/bin/openssl
select=0
   0707010000d1a5000081a40000000000000002000000013ac0389700000064000000200000000000000000000000000000001600000003reloc/acl/config.info ssleay=Path to openssl or ssleay program,0
select=Display user modules in,1,0-Table,1-Pulldown menu
0707010000d1a6000081a40000000000000002000000013ac0389700000063000000200000000000000000000000000000001900000003reloc/acl/config.info.de  ssleay=Pfad zum OpenSSL oder SSLeay,0
select=Zeige Benutzer Module als,1,0-Tabelle,1-Pulldown Menu
 0707010000d1a7000081a40000000000000002000000013ac0389700000075000000200000000000000000000000000000001900000003reloc/acl/config.info.es  ssleay=Trayectoria al programa openssl o ssleay,0
select=Mostrar m骴ulos de usuario en,1,0-Tabla,1-Men de persianas
   0707010000d1a8000081a40000000000000002000000013ac038970000008e000000200000000000000000000000000000001900000003reloc/acl/config.info.hu  ssleay=Az <code>openssl</code> vagy <code>ssleay</code> program teljes el閞閟i 鷗ja,0
select=A modulok megjelen韙si m骴ja,1,0-T醔l醶at,1-Men
  0707010000d1a9000081a40000000000000002000000013ac0389700000075000000200000000000000000000000000000002000000003reloc/acl/config.info.ja_JP.euc   ssleay=opensslプログラムまたはssleayプログラムのパス,0
select=ユ〖ザモジュ〖ルの山绩数恕,1,0-山,1-プルダウンメニュ〖
   0707010000d1aa000081e40000000000000002000000013ac038970000006e000000200000000000000000000000000000001900000003reloc/acl/config.info.nl  ssleay=Pad naar openssl of ssleay programma,0
select=Geef gebruiker modules weer in,1,0-Tabel,1-Pulldown menu
  0707010000d1ab000081a40000000000000002000000013ac0389700000073000000200000000000000000000000000000001900000003reloc/acl/config.info.pl  ssleay=Scie縦a do programu openssl lub ssleay,0
select=Wy秝ietl modu硑 u縴tkownika w,1,0-Tabeli,1-Rozwijalnym menu
 0707010000d1ac000081a40000000000000002000000013ac0389700000075000000200000000000000000000000000000001c00000003reloc/acl/config.info.ru_RU   select=悟钺疣驵螯 祛潴腓 镱朦珙忄蝈 赅,1,0-亦犭桷,1-蔓镟溧邋 戾睨
ssleay=象螯  镳钽疣祆 openssl 桦 ssleay,0
   0707010000d1ad000081a40000000000000002000000013ac0389700000075000000200000000000000000000000000000001c00000003reloc/acl/config.info.ru_SU   ssleay=鹫载  幸锨伊屯 openssl 商 ssleay,0
select=镌下伊至载 拖恼躺 邢特谙琢耘萄 肆,1,0-袅绿擅,1-髻辛牧垒排 团卫
   070701000117db000041ed0000000000000001000000023ac03b8b00000000000000200000000000000000000000000000001100000003reloc/acl/images  070701000117dc000081a40000000000000002000000013ac0389600000040000000200000000000000000000000000000001b00000003reloc/acl/images/empty.gif    GIF87a    ppp牑狓   ,       剰 砜q簀)藲w嶻4J翂 ;070701000117dd000081a40000000000000002000000013ac038960000078c000000200000000000000000000000000000001a00000003reloc/acl/images/icon.gif GIF89a0 0   fffjjj揪疽椅揶込zzNNN觋鎾拻F>>铑隇灋...鲻蚵侣Ζ&&&破坡恫汉适凭伯


廪RRR谮谥问
挝~~znnn>66翰甐VV唵"蝌铈廪殥嶧FF种襔ZZ戮憾伯问:::nfb椅蕍vv骀.*&殮"巻偸坡坡綽b^凭222JJJ纹井Ζ膊氌忠赕饴憾铌
ⅱ⒅椅谥沂满鲻^ZV廪
蝾阹jf鷕rr*"拪RJF枛***JBBZRR鲵颌殩事
径"""坪篵^^"灃挾抖妸666纹玛觋FB:倐>:6σ势铑钰种bZV

事骡忖挹诓示黑乙
ΒⅥ鲻纹埔挝廪
2**沂赎骀蝣BBB枓抮nn瀿62.vrr帄喡汉治捂忖势祁觋适饰适
&&""B::挝蝌蛑种骀嫫揪忠揖抖"




乙.**蝾疃膊nffrjjbZZ翰矚拻^ZZRJJ,    0 0   /	8皶#*\萈a,#J湼	53j鳭 慯m拱Z:b(螦0_=2劎B+K6<岵虒&踴	e﹥U<	R繞@b扂P絹d蓱k^凴J儐E 衣t8E燙嘕蟻慾84亰却E垁鍔@墆$h偽/O鬚V<4u磇C7(肂羾_櫔t	楔))妃S凘DT匀q? .@缼/> (瞏 6踁豵kU璟!膁(䴓	]键*\>0梑寻躁cn呆萈馍1+眮-箳Vy艜R+D@+扐(o=2%	崩&1o鹄Ed8l0`{\B\偖涪眕ま[惔q[ql ⒚%廯 d曠鈧.(P!\釮 D感J!4$p,O *8h罙JA  趶.*!+J腞 / @聥!柼K"I9腞伱	@g敟4`B薌f┬B紒Πq蕢 貍'yO壶膔<荰4憛@rI+%鹆	 鑡A屫!椮:灌PQ
,u| mLuI%鋰%)`牪粪 GM+:	T|p 9椄@H 徖-嫶澳~@Hv0n塨梡馠$B$B惲珼Ap腂Fi醼@q恋)&7PU鴶H愹,呍1iZhX0:悞-霡触朷噬T(P+x
!Q勹E? 槠 叁 D盃.
"埀埿A動轜B%醼 <駾Z 癇鄡CI6+漃M耕D勅R:H$9 M
椙鄦+X湅y溲B噌%杊^X	5.褩鴑x峤G攢<鈸#D睂-朑%緾貝NPd@N鰞+趥郍笀Xm皠鵅q<墹9贎葠V勑琉(窻 叄`鲣WC "#Q鑌=燷Q/=扨"烣dX鯬AuT郈"J)Q!iX
鉂JA#BQ!RTP稦xE,鈔.冖8%
dAJt裝旗Q盵V$#`rgC亪駟kゃ埱5枃馰蚯:r{僉葥蚓D1亽#G ;070701000117de000081a40000000000000002000000013ac038960000004b000000200000000000000000000000000000001a00000003reloc/acl/images/tick.gif GIF87a    ppp牑狓   ,       $剰 砜o8┐qg輞谂4熡}闄澈霤鰨 ; 0707010000d1ae000081a40000000000000002000000013ac0389700000066000000200000000000000000000000000000001900000003reloc/acl/config.info.sv  ssleay=S鰇v鋑 till openssl- eller ssleay-program,0
select=Visa moduler i,1,0-Tabell,1-Rullgardinsmeny
  0707010000d1af000081a40000000000000002000000013ac038970000006c000000200000000000000000000000000000001900000003reloc/acl/config.info.tr  ssleay=Openssl ya da ssleay program yolu,0
select=Kullan齝 mod黮lerini burada g鰎黱t黮e,1,0-Tablo,1-Men

0707010000d1b0000081a40000000000000002000000013ac0389700000058000000200000000000000000000000000000001c00000003reloc/acl/config.info.zh_CN   ssleay=Openssl 或者 Ssleay 程序的路径,0
select=显示用户模块以,1,0-Table,1-Pulldown 菜单
0707010000d1b1000081a40000000000000002000000013ac0389700000029000000200000000000000000000000000000002100000003reloc/acl/config.info.zh_TW.Big5  ssleay= openssl ┪ ssleay 祘Α隔畖,0
   0707010000d1b2000081e40000000000000002000000013ac038970000093d000000200000000000000000000000000000001600000003reloc/acl/convert.cgi #!/usr/local/bin/perl
# convert.cgi
# Convert unix to webmin users

require './acl-lib.pl';
&ReadParse();
&error_setup($text{'convert_err'});
&foreign_require("useradmin", "user-lib.pl");

# Validate inputs
if ($in{'conv'} == 1) {
	$in{'users'} =~ /\S/ || &error($text{'convert_eusers'});
	map { $users{$_}++ } split(/\s+/, $in{'users'});
	}
elsif ($in{'conv'} == 2) {
	map { $nusers{$_}++ } split(/\s+/, $in{'nusers'});
	}
elsif ($in{'conv'} == 3) {
	$gid = getgrnam($in{'group'});
	defined($gid) || &error($text{'convert_egroup'});
	}
elsif ($in{'conv'} == 4) {
	$in{'min'} =~ /^\d+$/ || &error($text{'convert_emin'});
	$in{'max'} =~ /^\d+$/ || &error($text{'convert_emax'});
	}

# Get the group to add to
foreach $g (&list_groups()) {
	$group = $g if ($g->{'name'} eq $in{'wgroup'});
	}
$group || &error($text{'convert_ewgroup'});

# Convert matching users
&header($text{'convert_title'}, "");
print "<hr>\n";
print "<h3>$text{'convert_msg'}</h3>\n";
print "<table border width=100%><tr><td bgcolor=#c0c0c0><pre>\n";
map { $exists{$_->{'name'}}++ } &list_users();
foreach $u (&foreign_call("useradmin", "list_users")) {
	local $ok;
	if ($in{'conv'} == 0) {
		$ok = 1;
		}
	elsif ($in{'conv'} == 1) {
		$ok = $users{$u->{'user'}};
		}
	elsif ($in{'conv'} == 2) {
		$ok = !$nusers{$u->{'user'}};
		}
	elsif ($in{'conv'} == 3) {
		$ok = $u->{'gid'} == $gid;
		}
	elsif ($in{'conv'} == 4) {
		$ok = $u->{'uid'} >= $in{'min'} &&
		      $u->{'uid'} <= $in{'max'};
		}
	if (!$ok) {
		print &text('convert_skip', $u->{'user'}),"\n";
		}
	elsif ($exists{$u->{'user'}}) {
		print "<i>",&text('convert_exists', $u->{'user'}),"</i>\n";
		}
	else {
		# Actually add the user
		print "<b>",&text('convert_added', $u->{'user'}),"</b>\n";
		local $user = { 'name' => $u->{'user'},
				'pass' => $u->{'pass'},
				'modules' => $group->{'modules'} };
		&create_user($user);
		foreach $m (@{$group->{'modules'}}, "") {
			local %groupacl;
			if (&read_file("$config_directory/$m/$in{'wgroup'}.acl",
				       \%groupacl)) {
				&write_file(
					"$config_directory/$m/$u->{'user'}.acl",
					\%groupacl);
				}
			}

		push(@{$group->{'members'}}, $u->{'user'});
		$exists{$u->{'user'}}++;
		}
	}
endpwent();

# Finish off
&modify_group($group->{'name'}, $group);
&restart_miniserv();

print "</pre></td></tr></table><br>\n";
print "<hr>\n";
&footer("", $text{'index_return'});

   0707010000d1b3000081e40000000000000002000000013ac03897000004f1000000200000000000000000000000000000001b00000003reloc/acl/convert_form.cgi    #!/usr/local/bin/perl
# convert_form.cgi
# Display a form for converting unix users to webmin users

require './acl-lib.pl';
&header($text{'convert_title'}, "");
print "<hr>\n";

@glist = &list_groups();
if (!@glist) {
	print "$text{'convert_nogroups'}<p>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}

print "<form action=convert.cgi>\n";
print "$text{'convert_desc'}<p>\n";
print "<input type=radio name=conv value=0 checked> $text{'convert_0'}<br>\n";
print "<input type=radio name=conv value=1> $text{'convert_1'} ",
      "<input name=users size=40> ",&user_chooser_button("users",1),"<br>\n";
print "<input type=radio name=conv value=2> $text{'convert_2'} ",
      "<input name=nusers size=40> ",&user_chooser_button("nusers",1),"<br>\n";
print "<input type=radio name=conv value=3> $text{'convert_3'} ",
      &unix_group_input("group"),"<br>\n";
print "<input type=radio name=conv value=4> $text{'convert_4'} ",
      "<input name=min size=6> - <input name=max size=6><p>\n";

print "$text{'convert_group'} <select name=wgroup>\n";
foreach $g (@glist) {
	print "<option>$g->{'name'}\n";
	}
print "</select><br>\n";
print "<input type=submit value='$text{'convert_ok'}'></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

   0707010000d1b4000081a40000000000000002000000013ac0389700000064000000200000000000000000000000000000001500000003reloc/acl/defaultacl  users=*
mode=0
create=1
delete=1
rename=1
others=1
cert=1
acl=1
chcert=1
lang=1
groups=1
gassign=*

0707010000d1b5000081a40000000000000002000000013ac0389700000477000000200000000000000000000000000000001b00000003reloc/acl/delete_group.cgi    #!/usr/local/bin/perl
# delete_group.cgi
# Delete a group (and maybe it's members)

require './acl-lib.pl';
&ReadParse();
&error_setup($text{'gdelete_err'});
$access{'groups'} || &error($text{'gdelete_ecannot'});
@glist = &list_groups();
($group) = grep { $_->{'name'} eq $in{'group'} } @glist;
@mems = @{$group->{'members'}};

if (&indexof($ENV{'REMOTE_USER'}, @mems) >= 0) {
	&error($text{'gdelete_euser'});
	}
elsif (@mems && !$in{'confirm'}) {
	# Ask if the user really wants to delete the group and members
	&header($text{'gdelete_title'}, "");
	print "<hr>\n";
	print "<center><form action=delete_group.cgi>\n";
	print "<input type=hidden name=group value='$in{'group'}'>\n";
	print &text('gdelete_desc', "<tt>$in{'group'}</tt>",
		    "<tt>".join(" ", @mems)."</tt>"),"<p>\n";
	print "<input type=submit name=confirm value='$text{'gdelete_ok'}'>\n";
	print "</form></center><hr>\n";
	&footer("", $text{'index_return'});
	}
else {
	# Delete the group (and members if any)
	&delete_group($in{'group'});
	foreach $u (@mems) {
		&delete_user($u);
		}
	&restart_miniserv();
	&webmin_log("delete", "group", $in{'group'});
	&redirect("");
	}

 0707010000d1b6000081e40000000000000002000000013ac038960000028f000000200000000000000000000000000000001a00000003reloc/acl/delete_user.cgi #!/usr/local/bin/perl
# delete_user.cgi
# Delete a webmin user

require './acl-lib.pl';
&ReadParse();
&error_setup($text{'delete_err'});
$access{'delete'} || &error($text{'delete_ecannot'});
&can_edit_user($in{'user'}) || &error($text{'delete_euser'});
if ($ENV{'REMOTE_USER'} eq $in{'user'}) {
	&error($text{'delete_eself'});
	}
&delete_user($in{'user'});
foreach $g (&list_groups()) {
	local @mems = @{$g->{'members'}};
	local $i = &indexof($in{'user'}, @mems);
	if ($i >= 0) {
		splice(@mems, $i, 1);
		$g->{'members'} = \@mems;
		&modify_group($g->{'name'}, $g);
		}
	}
&restart_miniserv();
&webmin_log("delete", "user", $in{'user'});
&redirect("");

 0707010000d1b7000081e40000000000000002000000013ac03896000008c5000000200000000000000000000000000000001700000003reloc/acl/edit_acl.cgi    #!/usr/local/bin/perl
# edit_acl.cgi
# Display a form for editing the access control options for some module

require './acl-lib.pl';
&ReadParse();
$access{'acl'} || &error($text{'acl_emod'});
if ($in{'group'}) {
	$access{'groups'} || &error($text{'acl_egroup'});
	$who = $in{'group'};
	}
else {
	foreach $u (&list_users()) {
		$me = $u if ($u->{'name'} eq $ENV{'REMOTE_USER'});
		}
	@mcan = $access{'mode'} == 1 ? @{$me->{'modules'}} :
		$access{'mode'} == 2 ? split(/\s+/, $access{'mods'}) :
				       ( &list_modules() , "" );
	&indexof($in{'mod'}, @mcan) >= 0 || &error($text{'acl_emod'});
	&can_edit_user($in{'user'}) || &error($text{'acl_euser'});
	$who = $in{'user'};
	}

&header($text{'acl_title'}, "", -r &help_file($in{'mod'}, "acl_info") ?
	[ "acl_info", $in{'mod'} ] : undef);
%minfo = $in{'mod'} ? &get_module_info($in{'mod'})
		    : ( 'desc' => $text{'index_global'} );
print "<center><font size=+1>",
      &text('acl_title2', "<tt>$who</tt>",
	    "<tt>$minfo{'desc'}</tt>"),"</font></center>\n";
print "<hr>\n";
%access = &get_module_acl($who, $in{'mod'});

# display the form
print "<form method=post action=save_acl.cgi>\n";
print "<input type=hidden name=_acl_mod value=$in{'mod'}>\n";
if ($in{'group'}) {
	print "<input type=hidden name=_acl_group value=$who>\n";
	}
else {
	print "<input type=hidden name=_acl_user value=$who>\n";
	}
print "<table border width=100%>\n";
print "<tr $tb> <td><b>",&text('acl_options', $minfo{'desc'}),"</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

if ($in{'mod'}) {
	print "<tr> <td><b>$text{'acl_config'}</b></td> <td>\n";
	printf "<input type=radio name=noconfig value=0 %s> $text{'yes'}\n",
		$access{'noconfig'} ? "" : "checked";
	printf "<input type=radio name=noconfig value=1 %s> $text{'no'}</td>\n",
		$access{'noconfig'} ? "checked" : "";
	print "<td width=50% colspan=2></td> </tr>\n";
	}

if (-r "../$in{'mod'}/acl_security.pl") {
	print "<tr> <td colspan=4><hr></td> </tr>\n" if ($in{'mod'});
	&foreign_require($in{'mod'}, "acl_security.pl");
	&foreign_call($in{'mod'}, "acl_security_form", \%access);
	}

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";
print "<hr>\n";
&footer("", $text{'index_return'});

   0707010000d1b8000081a40000000000000002000000013ac03897000006dc000000200000000000000000000000000000001900000003reloc/acl/edit_group.cgi  #!/usr/local/bin/perl
# edit_group.cgi
# Edit or create a webmin group

require './acl-lib.pl';
&ReadParse();
$access{'groups'} || &error($text{'gedit_ecannot'});
if ($in{'group'}) {
	# Editing an existing group
	&header($text{'gedit_title'}, "");
	foreach $g (&list_groups()) {
		if ($g->{'name'} eq $in{'group'}) {
			%group = %$g;
			}
		}
	}
else {
	# Creating a new group
	&header($text{'gedit_title2'}, "");
	}
print "<hr>\n";

print "<form action=save_group.cgi>\n";
print "<input type=hidden name=old value=\"$in{'group'}\">\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'gedit_rights'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'gedit_group'}</b></td>\n";
print "<td><input name=name size=25 value=\"$group{'name'}\"></td> </tr>\n";

@mlist = &list_modules();
map { $has{$_}++ } @{$group{'modules'}};
print "<tr> <td valign=top><b>$text{'gedit_modules'}</b></td>\n";
print "<td><table width=100% cellpadding=0 cellspacing=0>\n";
foreach $m (@mlist) {
	if (!$sw) { print "<tr>\n"; }
	print "<td width=50%>";
	printf"<input type=checkbox name=mod value=$m %s> %s\n",
	      $has{$m} ? "checked" : "", (&module_info($m))[2];
	print "</td>";
	if ($sw) { print "<tr>\n"; }
	$sw = !$sw;
	}
print "</table></td> </tr>\n";
print "</table></td> </tr></table>\n";

print "<table width=100%> <tr>\n";
print "<td><input type=submit value='$text{'save'}'></td>\n";
if ($in{'group'}) {
	print "</form><form action=delete_group.cgi>\n";
	print "<input type=hidden name=group value=\"$in{'group'}\">\n";
	print "<td align=right><input type=submit name=delete ",
	      "value='$text{'delete'}'></td></form>\n";
	}
print "</tr></table>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

0707010000d1b9000081e40000000000000002000000013ac0389600001cb2000000200000000000000000000000000000001800000003reloc/acl/edit_user.cgi   #!/usr/local/bin/perl
# edit_user.cgi
# Edit a new or existing webmin user

require './acl-lib.pl';
&ReadParse();
if ($in{'user'}) {
	# Editing an existing user
	&can_edit_user($in{'user'}) || &error($text{'edit_euser'});
	&header($text{'edit_title'}, "");
	foreach $u (&list_users()) {
		if ($u->{'name'} eq $in{'user'}) {
			%user = %$u;
			}
		if ($u->{'name'} eq $ENV{'REMOTE_USER'}) {
			$me = $u;
			}
		}
	}
else {
	# Creating a new user
	$access{'create'} || &error($text{'edit_ecreate'});
	&header($text{'edit_title2'}, "");
	foreach $u (&list_users()) {
		if ($u->{'name'} eq $in{'clone'}) {
			$user{'modules'} = $u->{'modules'};
			$user{'lang'} = $u->{'lang'};
			}
		if ($u->{'name'} eq $ENV{'REMOTE_USER'}) {
			$me = $u;
			}
		}
	$user{'skill'} = $user{'risk'} = 'high' if ($in{'risk'});
	}
print "<hr>\n";

print "<form action=save_user.cgi>\n";
if ($in{'user'}) {
	print "<input type=hidden name=old value=\"$user{'name'}\">\n";
	print "<input type=hidden name=oldpass value=\"$user{'pass'}\">\n";
	}
if ($in{'clone'}) {
	print "<input type=hidden name=clone value=\"$in{'clone'}\">\n";
	}
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'edit_rights'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'edit_user'}</b></td>\n";
if ($access{'rename'} || !$in{'user'}) {
	print "<td><input name=name size=25 ",
	      "value=\"$user{'name'}\"></td>\n";
	}
else {
	print "<td>$user{'name'}</td>\n";
	}

@glist = &list_groups();
@mcan = $access{'gassign'} eq '*' ?
		( ( map { $_->{'name'} } @glist ), '_none' ) :
		split(/\s+/, $access{'gassign'});
map { $gcan{$_}++ } @mcan;
if (@glist && %gcan && !$in{'risk'} && !$user{'risk'}) {
	print "<td><b>$text{'edit_group'}</b></td>\n";
	print "<td><select name=group>\n";
	foreach $g (@glist) {
		local $mem = &indexof($user{'name'}, @{$g->{'members'}}) >= 0;
		next if (!$gcan{$g->{'name'}} && !$mem);
		printf "<option %s>%s\n",
			$mem ?  'selected' : '', $g->{'name'};
		$group = $g if ($mem);
		}
	printf "<option value='' %s>&lt;%s&gt;\n",
		$group ? '' : 'selected', $text{'edit_none'}
			if ($gcan{'_none'});
	print "</select></td>\n";
	}
print "</tr>\n";

print "<tr> <td><b>$text{'edit_pass'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=pass_def value=3 %s> $text{'edit_pam'}\n",
	$user{'pass'} eq 'x' ? "checked" : "";
printf "<input type=radio name=pass_def value=2 %s> $text{'edit_same'}\n",
	$user{'sync'} && $user{'pass'} ne 'x' ? "checked" : "";
if ($in{'user'}) {
	printf "<input type=radio name=pass_def value=1 %s> %s\n",
		$user{'sync'} || $user{'pass'} eq 'x' ? "" : "checked",
		$text{'edit_dont'};
	}
printf "<input type=radio name=pass_def value=0 %s> $text{'edit_set'}\n",
	$in{'user'} ? "" : "checked";
print "<input type=password name=pass size=25></td> </tr>\n";

if ($access{'chcert'}) {
	print "<tr> <td><b>$text{'edit_cert'}</b></td> <td colspan=3>\n";
	printf "<input type=radio name=cert_def value=1 %s> %s\n",
		$user{'cert'} ? '' : 'checked', $text{'edit_none'};
	printf "<input type=radio name=cert_def value=0 %s>\n",
		$user{'cert'} ? 'checked' : '';
	print "<input name=cert size=50 value='$user{'cert'}'></td> </tr>\n";
	}

if ($access{'lang'}) {
	print "<tr> <td><b>$text{'edit_lang'}</b></td> <td colspan=3>\n";
	printf "<input type=radio name=lang_def value=1 %s> %s\n",
		$user{'lang'} ? '' : 'checked', $text{'default'};
	printf "<input type=radio name=lang_def value=0 %s>\n",
		$user{'lang'} ? 'checked' : '';
	print "<select name=lang>\n";
	foreach $l (&list_languages()) {
		printf "<option value=%s %s>%s (%s)\n",
			$l->{'lang'},
			$user{'lang'} eq $l->{'lang'} ? 'selected' : '',
			$l->{'desc'}, uc($l->{'lang'});
		}
	print "</select></td> </tr>\n";
	}

print "<tr> <td><b>$text{'edit_notabs'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=notabs value=1 %s> %s\n",
	$user{'notabs'} == 1 ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=notabs value=2 %s> %s\n",
	$user{'notabs'} == 2 ? 'checked' : '', $text{'no'};
printf "<input type=radio name=notabs value=0 %s> %s</td> </tr>\n",
	$user{'notabs'} == 0 ? 'checked' : '', $text{'default'};

print "<tr> <td><b>$text{'edit_ips'}</b></td> <td colspan=3><table><tr>\n";
printf "<td nowrap><input name=ipmode type=radio value=0 %s> %s<br>\n",
	$user{'allow'} || $user{'deny'} ? '' : 'checked', $text{'edit_all'};
printf "<input name=ipmode type=radio value=1 %s> %s<br>\n",
	$user{'allow'} ? 'checked' : '', $text{'edit_allow'};
printf "<input name=ipmode type=radio value=2 %s> %s</td> <td>\n",
	$user{'deny'} ? 'checked' : '', $text{'edit_deny'};
print "<textarea name=ips rows=4 cols=30>",
      join("\n", split(/\s+/, $user{'allow'} ? $user{'allow'} : $user{'deny'})),
      "</textarea></td>\n";
print "</td> <td>$text{'edit_ipdesc'}</td></tr></table> </tr>\n";

if ($user{'risk'} || $in{'risk'}) {
	# Creating or editing a risk-level user
	print "<tr> <td><b>$text{'edit_risk'}</b></td> <td colspan=3>\n";
	foreach $s ('high', 'medium', 'low') {
		printf "<input type=radio name=risk value='%s' %s> %s\n",
		    $s, $user{'risk'} eq $s ? 'checked' : '',
		    $text{"edit_risk_$s"};
		}
	print "</td> </tr>\n";

	print "<tr> <td><b>$text{'edit_skill'}</b></td> <td colspan=3>\n";
	foreach $s ('high', 'medium', 'low') {
		printf "<input type=radio name=skill value='%s' %s> %s\n",
		    $s, $user{'skill'} eq $s ? 'checked' : '',
		    $text{"skill_$s"};
		}
	print "</td> </tr>\n";
	}
else {
	# Creating or editing a normal user
	@mcan = $access{'mode'} == 1 ? @{$me->{'modules'}} :
		$access{'mode'} == 2 ? split(/\s+/, $access{'mods'}) :
				       &list_modules();
	map { $mcan{$_}++ } @mcan;
	map { $has{$_}++ } @{$user{'modules'}};
	map { $has{$_} = 0 } $group ? @{$group->{'modules'}} : ();

	@mlist = grep { $access{'others'} || $has{$_} || $mcan{$_} }
		      &list_modules();
	print "<tr> <td valign=top><b>$text{'edit_modules'}</b><br>",
	      "$text{'edit_groupmods'}</td>\n";
	print "<td colspan=3><table width=100% cellpadding=0 cellspacing=0>\n";
	foreach $m (@mlist) {
		if (!$sw) { print "<tr>\n"; }
		print "<td width=50%>";
		if ($mcan{$m}) {
			printf"<input type=checkbox name=mod value=$m %s> %s\n",
			      $has{$m} ? "checked" : "", (&module_info($m))[2];
			}
		else {
			printf "<img src=images/%s.gif> %s\n",
			    $has{$m} ? 'tick' : 'empty', (&module_info($m))[2];
			}
		print "</td>";
		if ($sw) { print "<tr>\n"; }
		$sw = !$sw;
		}
	print "</table></td> </tr>\n";
	}
print "</table></td> </tr></table>\n";

print "<table width=100%> <tr>\n";
print "<td align=left width=33%><input type=submit value=\"$text{'save'}\"></td></form>\n";
if ($in{'user'}) {
	if ($access{'create'} && !$group) {
		print "<form action=edit_user.cgi>\n";
		print "<input type=hidden name=clone value=\"$in{'user'}\">\n";
		print "<td align=center width=33%>",
		      "<input type=submit value=\"$text{'edit_clone'}\">",
		      "</td></form>\n";
		}
	else { print "<td width=33%></td>\n"; }

	if ($access{'delete'}) {
		print "<form action=delete_user.cgi>\n";
		print "<input type=hidden name=user value=\"$in{'user'}\">\n";
		print "<td align=right width=33%>",
		      "<input type=submit value=\"$text{'delete'}\"></td></form>\n";
		}
	else { print "<td width=33%></td>\n"; }
	}
print "</tr> </table>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

  0707010000d1ba000081e40000000000000002000000013ac0389600001645000000200000000000000000000000000000001400000003reloc/acl/index.cgi   #!/usr/local/bin/perl
# index.cgi
# List all webmin users

require './acl-lib.pl';
&header($text{'index_title'}, "", undef, 1, 1);

@glist = &list_groups();
foreach $g (@glist) {
	foreach $gm (@{$g->{'members'}}) {
		$ingroup{$gm} = $g;
		}
	}

@ulist = &list_users();
foreach $u (@ulist) {
	$me = $u if ($u->{'name'} eq $ENV{'REMOTE_USER'});
	}
@mcan = $access{'mode'} == 1 ? @{$me->{'modules'}} :
	$access{'mode'} == 2 ? split(/\s+/, $access{'mods'}) :
			       &list_modules();
map { $mcan{$_}++ } @mcan;

foreach $m (&list_modules()) {
	@minfo = &module_info($m);
	$modname{$m} = $minfo[2];
	}
print "<hr>\n";
print "<h3>$text{'index_users'}</h3>\n";
foreach $u (@ulist) {
	next if (!&can_edit_user($u->{'name'}));
	if (!$header) {
		print "<table border width=100%>\n";
		print "<tr $tb> <td><b>$text{'index_user'}</b></td>\n";
		print "<td><b>$text{'index_modules'}</b></td> </tr>\n";
		$header++;
		}
	print "<tr $cb>\n";
	printf "<td valign=top><a href=\"edit_user.cgi?user=%s\">%s</a></td>\n",
		&urlize($u->{'name'}), $u->{'name'};
	if ($u->{'risk'}) {
		# Just display risk and skill levels
		print "<td><table width=100% cellpadding=1 cellspacing=1><tr>\n";
		print "<td width=33%><b>$text{'edit_risk'}</b> : ",
		      $text{'edit_risk_'.$u->{'risk'}},"</td>\n";
		print "<td width=33%><b>$text{'edit_skill'}</b> : ",
		      $text{'skill_'.$u->{'skill'}},"</td>\n";
		print "<td width=33%></td>\n";
		print "</tr></table></td></tr>\n";
		}
	elsif ($ingroup{$u->{'name'}}) {
		# Display group membership
		print "<td><table width=100% cellpadding=1 cellspacing=1>\n";
		print "<tr> <td colspan=3>",&text('index_modgroups',
		      "<tt>$ingroup{$u->{'name'}}->{'name'}</tt>"),
		      "</td> </tr>\n";
		$done = 0;
		foreach $m (@{$u->{'ownmods'}}) {
			if ($done%3 == 0) { print "<tr>\n"; }
			print "<td width=33%>";
			if ($mcan{$m} && $access{'acl'}) {
				print "<a href='edit_acl.cgi?mod=",
				      &urlize($m),"&user=",
				      &urlize($u->{'name'}),
				      "'>$modname{$m}</a>";
				}
			else {
				print $modname{$m};
				}
			print "</td>\n";
			if ($done%3 == 2) { print "<tr>\n"; }
			$done++;
			}
		while($done++ % 3) { print "<td width=33%></td>\n"; }
		print "</table></td></tr>\n";
		}
	elsif ($config{'select'}) {
		# Display select input
		print "<form action=edit_acl.cgi><td>\n";
		print "<input type=hidden name=user value='$u->{'name'}'>\n";
		if ($access{'acl'}) {
			print "<input type=submit ",
			      "value='$text{'index_edit'}'>\n";
			}
		print "<select name=mod>\n";
		print "<option value=''>$text{'index_global'}\n";
		foreach $m (@{$u->{'modules'}}) {
			if ($modname{$m}) {
				print "<option value=$m>$modname{$m}\n";
				}
			}
		print "</select></td></form></tr>\n";
		}
	else {
		# Display as table of modules
		print "<td><table width=100% cellpadding=1 cellspacing=1>\n";
		print "<tr> <td width=33%>\n";
		if ($access{'acl'}) {
			print "<a href='edit_acl.cgi?mod=&user=",
			      &urlize($u->{'name'}),
			      "'>$text{'index_global'}</a></td>";
			$done = 1;
			}
		foreach $m (@{$u->{'modules'}}) {
			if ($modname{$m}) {
				if ($done%3 == 0) { print "<tr>\n"; }
				print "<td width=33%>";
				if ($mcan{$m} && $access{'acl'}) {
					print "<a href='edit_acl.cgi?mod=",
					      &urlize($m),"&user=",
					      &urlize($u->{'name'}),
					      "'>$modname{$m}</a>";
					}
				else {
					print $modname{$m};
					}
				print "</td>\n";
				if ($done%3 == 2) { print "<tr>\n"; }
				$done++;
				}
			}
		while($done++ % 3) { print "<td width=33%></td>\n"; }
		print "</table></td></tr>\n";
		}
	}
if ($header) {
	print "</table>\n";
	}
else {
	print "<b>$text{'index_nousers'}</b><p>\n";
	}
if ($access{'create'}) {
	print "<a href=edit_user.cgi>$text{'index_create'}</a>&nbsp;&nbsp;\n";
	print "<a href=convert_form.cgi>$text{'index_convert'}</a>&nbsp;&nbsp;\n";
	print "<a href=edit_user.cgi?risk=1>$text{'index_rcreate'}</a>\n"
		if ($gconfig{'eazel'});
	print "<p>\n";
	}

if ($access{'groups'}) {
	print "<hr>\n";
	print "<h3>$text{'index_groups'}</h3>\n";
	foreach $g (@glist) {
		if (!$gheader) {
			print "<table border width=100%>\n";
			print "<tr $tb> <td><b>$text{'index_group'}</b></td>\n";
			print "<td><b>$text{'index_members'}</b></td>\n";
			print "<td><b>$text{'index_modules'}</b></td> </tr>\n";
			$gheader++;
			}
		print "<tr $cb>\n";
		printf "<td><a href='edit_group.cgi?group=%s'>%s</a></td>\n",
			&urlize($g->{'name'}), $g->{'name'};
		print "<td>",join(" ", @{$g->{'members'}}),"&nbsp;</td>\n";
		print "<td><table width=100% cellpadding=1 cellspacing=1>\n";
		print "<tr> <td width=33%><a href='edit_acl.cgi?mod=&user=",
		      &urlize($g->{'name'}),"'>$text{'index_global'}</a></td>";
		$done = 1;
		foreach $m (@{$g->{'modules'}}) {
			if ($modname{$m}) {
				if ($done%3 == 0) { print "<tr>\n"; }
				print "<td width=33%>";
				print "<a href='edit_acl.cgi?mod=",
				      &urlize($m),"&group=",
				      &urlize($g->{'name'}),
				      "'>$modname{$m}</a>";
				print "</td>\n";
				if ($done%3 == 2) { print "<tr>\n"; }
				$done++;
				}
			}
		while($done++ % 3) { print "<td width=33%></td>\n"; }
		print "</table></td></tr>\n";
		}
	if ($gheader) {
		print "</table>\n";
		}
	else {
		print "<b>$text{'index_nogroups'}</b><p>\n";
		}
	print "<a href=edit_group.cgi>$text{'index_gcreate'}</a><p>\n";
	}

&get_miniserv_config(\%miniserv);
if (uc($ENV{'HTTPS'}) eq "ON" && $miniserv{'ca'}) {
	print "<hr>\n";
	print "<form action=cert_form.cgi>\n";
	print "<table width=100%><tr>\n";
	print "<td><input type=submit value='$text{'index_cert'}'></td>\n";
	print "<td>$text{'index_certmsg'}</td>\n";
	print "</table></tr></form>\n";
	}

print "<hr>\n";
&footer("/", $text{'index'});


   07070100012e2c000041ed0000000000000001000000023ac03b8d00000000000000200000000000000000000000000000000f00000003reloc/acl/lang    07070100012e2d000081a40000000000000002000000013ac0389600001151000000200000000000000000000000000000001200000003reloc/acl/lang/de index_title=Webmin Benutzer
index_user=Benutzer
index_modules=Module
index_create=Einen neuen Webmin User anlegen
index_cert=Fordere ein SSL Zertifikat an
index_certmsg=Klicken Sie auf diesen Button, um ein SSL Zertifikat anzufragen, das es Ihnen erlauben wird, sicher in Webmin einzuloggen ohne einen Benutzernamen und ein Passwort anzugeben.
index_return=Benutzer Liste
index_none=Keines
index_edit=Bearbeite Modul ACL :

edit_title=Webmin Benutzer bearbeiten
edit_title2=Webmin Benutzer anlegen
edit_rights=Webmin Benutzer Zugriffs Rechte
edit_user=Benutzername
edit_pass=Passwort
edit_same=Dasselbe wie bei Unix
edit_dont=Nicht &auml;ndern
edit_set=Setz auf
edit_modules=Module
edit_clone=Klonen
edit_lang=Sprache
edit_notabs=Module in Kategorien?
edit_cert=SSL Zertifikat Name
edit_none=Keines
edit_ips=IP Zugangskontrolle
edit_all=Erlaube von allen Adressen
edit_allow=Erlaube nur von aufgelisteten Adressen
edit_deny=Kein zugang f黵 aufgelistete Adressen
edit_ipdesc=Die Benutzer IP Kontrolle funktioniert in der gleichen Weisen, wie es die globale IP Zugriffskontrolle im Webmin Konfigurations Modul funktioniert. Nur wenn ein Benutzer die globale Kontrolle passiert, werden diese Reglen hier &uuml;berpr&uuml;ft werden.
edit_euser=Sie haben keine Berechitung, diesen Benutzer zu bearbeiten
edit_ecreate=Sie haben keine Berechtigung einen Benutzer anzulegen


save_err=Fehler beim sichern von Benutzer
save_ename='$1' ist kein g&uuml;ltiger Benutzername
save_edup=Der Benutzername '$1' wird bereits genutzt
save_edeny=Sie k&ouml;nnen sich nicht selbst das Zugriffsrecht auf Webmin Benutzer entziehen
save_eos=Die Option "Dasselbe Passwort wie bei Unix" wird nicht von Ihrem Betriebssystem unterst&uuml;tzt.
save_emd5=Die Option "Dasselbe Passwort wie bei Unix" kann nicht auf Systemen mit MD5-verschl&uuml;sselten Passw&ouml;rtern benutzt werden.
save_eunix=Der Benutzer '$1' existiert nicht
save_emod=Sie haben keine Berechtigung, den Zugriff auf das Module '$1' zu gew&auml;hren
save_ecreate=Sie haben keine Berechtigung, einen Benutzer anzulegen
save_euser=Sie haben keine Berechtigung, diesen Benutzer zu bearbeiten
save_ecolon=Passworte d&uuml;rfen keinen Doppelpunkt (:) enthalten
save_eself=Ihrer aktuellen IP Adresse ($1) w黵de der Zugriff verweigert werden

delete_err=Fehler beim L&ouml;schen des Benutzers
delete_eself=Sie k&ouml;nnen sich nicht selbst l&ouml;schen
delete_ecannot=Sie haben keine Berechtigung, Benutzer zu l&ouml;schen
delete_euser=Sie haben keine Berechtigung, diesen Benutzer zu l&ouml;schen

cert_title=Zertifikats-Anfrage
cert_issue=Zertifikat ausstellen
cert_header=Details des neuen Zertifikats
cert_msg=Dieses Formular erlaubt es Ihnen ein SSL Client Zertifikat zu beantragen, das Ihnen in Zukunft Zugriff auf Webmin gestattet ohne Eingabe von Benutzername und Passwort. Dies ist sicherer, aber da diese Authentifizierung automatisch geschieht, ist es nicht m&ouml;glich, zu einem anderen Benutzer zu wechseln, wenn Zertifikats-Authentifizierung gew&auml;hlt wird.
cert_cn=Ihr Name
cert_email=Email Adresse
cert_ou=Abteilung
cert_o=Organisation
cert_sp=Bundesland
cert_c=L&auml;ndercode
cert_key=Schl&uuml;sselgr&ouml;sse
cert_ok=Ihr Zertifikat f&uuml;r $1 wurde erfolgreich generiert und in Ihrem Web Browser installiert.
cert_ekey=Ein neuer SSL Schl&uuml;ssel wurde nicht von Ihrem Browser &uuml;bertragen - vielleicht unterst&uuml;tzt Ihr Browser keine Client-Zertifikate.
cert_eca=Fehler beim Setup des Zertifikats : $1
cert_already=Warnung - Sie benutzen bereits das Zertifikat $1.

acl_title=Modul Zugriffskontrolle
acl_title2=F&uuml;r $1 in $2
acl_options=$1 Zugriffskontroll-Einstellungen
acl_config=Darf Modul Konfiguration bearbeiten?
acl_users=Benutzer, die bearbeitet werden d&uuml;rfen
acl_mods=Darf Zugriff gew&auml;hren auf
acl_all=Alle Module
acl_own=Nur seine eigenen Module
acl_sel=Ausgew&auml;hlte Module ..
acl_create=Darf neuen Benutzer anlegen?
acl_delete=Darf Benutzer l&ouml;schen?
acl_rename=Darf Benutzer umbenennen?
acl_acl=Darf Modul Zugriffskontrollen bearbeiten?
acl_lang=darf Sprache &auml;ndern?
acl_chcert=Kann den SSL Zertifikatsnamen &auml;ndern?
acl_euser=Sie haben keine Berechtigung, die Zugriffskontrolle (ACL) f&uuml;r diesen Benutzer zu bearbeiten
acl_emod=Sie haben keine Berechtigung, die Zugriffskontrolle (ACL) f&uuml;r dieses Modul zu bearbeiten
acl_others=Kann Module sehen, auf die er keinen Zugriff hat?
acl_cert=Darf Zertifikat beantragen?
   07070100012e2e000081a40000000000000002000000013ac0389600001966000000200000000000000000000000000000001200000003reloc/acl/lang/en index_title=Webmin Users
index_user=User
index_modules=Modules
index_create=Create a new Webmin user
index_rcreate=Create a new risk-level user
index_convert=Convert Unix to Webmin users
index_cert=Request an SSL certificate
index_certmsg=Click this button to request an SSL certificate that will allow you to securely login to Webmin without having to enter a username and password.
index_return=user list
index_none=None
index_edit=Edit Module ACL :
index_global=Global ACL
index_users=Webmin Users
index_groups=Webmin Groups
index_group=Group
index_nousers=No editable Webmin users defined.
index_nogroups=No editable Webmin groups defined.
index_gcreate=Create a new Webmin group
index_members=Members
index_modgroups=Modules from group $1

edit_title=Edit Webmin User
edit_title2=Create Webmin User
edit_rights=Webmin user access rights
edit_user=Username
edit_group=Member of group
edit_pass=Password
edit_same=Same as Unix
edit_pam=PAM authentication
edit_dont=Don't change
edit_set=Set to
edit_modules=Modules
edit_clone=Clone
edit_lang=Language
edit_notabs=Categorise modules?
edit_cert=SSL certificate name
edit_none=None
edit_ips=IP access control
edit_all=Allow from all addresses
edit_allow=Only allow from listed addresses
edit_deny=Deny from listed addresses
edit_ipdesc=User IP access control works in the same way as the global IP access control in the Webmin Configuration module. Only if a user passes the global controls will those here be checked as well.
edit_skill=Skill level
edit_risk=Risk level
edit_risk_high=Super user
edit_risk_medium=Admin user
edit_risk_low=Normal user
edit_groupmods=(In addition to modules from group)
edit_euser=You are not allowed to edit this user
edit_ecreate=You are not allowed to create users

save_err=Failed to save user
save_ename='$1' is not a valid username
save_edup=The username '$1' is already in user
save_edeny=you cannot deny yourself access to the Webmin Users module
save_eos=The Same as Unix password option is not supported on your operating system.
save_emd5=The Same as Unix password option cannot be used on systems with MD5 encryption
save_eunix=The Unix user '$1' does not exist
save_emod=You cannot grant access to module '$1'
save_ecreate=You are not allowed to create users
save_euser=You are not allowed to edit this user
save_ecolon=Passwords cannot contain the : character
save_eself=Your current IP address ($1) would be denied
save_epam=PAM authentication is not available as the <tt>Authen::PAM</tt> Perl module is not installed or not working properly.
save_egroup=You are not allowed to assign to that group

delete_err=Failed to delete user
delete_eself=You cannot delete yourself
delete_ecannot=You are not allowed to delete users
delete_euser=You are not allowed to delete this user

cert_title=Request Certificate
cert_issue=Issue Certificate
cert_header=New certificate details
cert_msg=This form allows you to request an SSL client certificate that will be used in future to grant you access to Webmin instead of your username and password. This is more secure, but because the authentication is automatic you will not be able to switch to a different user when using the certificate.
cert_cn=Your name
cert_email=Email address
cert_ou=Department
cert_o=Organisation
cert_sp=State
cert_c=Country code
cert_key=Key size
cert_ok=Your certificate for $1 has been successfully generated and installed in your web browser.
cert_ekey=A new SSL key was not submitted by your browser - maybe it does not support SSL client certificates.
cert_eca=Failed to setup certificate authority : $1
cert_already=Warning - you are already using the certificate $1.

acl_title=Module Access Control
acl_title2=For $1 in $2
acl_options=$1 access control options
acl_config=Can edit module configuration?
acl_uall=All users
acl_usel=Selected ..
acl_users=Users who can be edited
acl_mods=Can grant access to
acl_all=All modules
acl_own=Only his own modules
acl_sel=Selected modules ..
acl_create=Can create new users?
acl_delete=Can delete users?
acl_rename=Can rename users?
acl_acl=Can edit module access control?
acl_lang=Can change language?
acl_chcert=Can change SSL certificate name?
acl_euser=You are not allowed to edit the ACL for this user
acl_egroup=You are not allowed to edit group ACLs
acl_emod=You are not allowed to edit the ACL for this module
acl_others=Can see inaccessible modules?
acl_cert=Can request certificate?
acl_err=Failed to save access control
acl_groups=Can edit groups?
acl_gassign=Can assign users to groups
acl_gall=All groups
acl_gsel=Selected ..
acl_gnone=None

log_modify=Modified Webmin user $1
log_rename=Renamed Webmin user $1 to $2
log_create=Created Webmin user $1
log_clone=Cloned Webmin user $1 to $2
log_delete=Deleted Webmin user $1
log_acl=Updated access for $1 in $2
log_cert=Issued certificate for user $1
log_modify_g=Modified Webmin group $1
log_rename_g=Renamed Webmin group $1 to $2
log_create_g=Created Webmin group $1
log_delete_g=Deleted Webmin group $1

gedit_ecannot=You are not allowed to edit groups
gedit_title=Edit Webmin Group
gedit_title2=Create Webmin Group
gedit_group=Group name
gedit_rights=Webmin group access rights
gedit_modules=Members' modules

gdelete_err=Failed to delete group
gdelete_ecannot=You are not allowed to delete groups
gdelete_euser=You cannot delete your own group
gdelete_title=Delete Group
gdelete_desc=Are you sure you want to delete the group $1 and its member users $2 ?
gdelete_ok=Delete Group

gsave_err=Failed to save group
gsave_ename=Missing or invalid group name
gsave_edup=Group name is already in use

convert_title=Convert Users
convert_nogroups=No Webmin groups have been defined on your system. At least one group must be created before converting in order to define permissions for the converted users.
convert_desc=This form allows you to convert existing Unix users to Webmin users. The permissions of each new Webmin user will be determined by the group selected below.
convert_0=All users
convert_1=Only users
convert_2=All except users
convert_3=Users with group
convert_4=Users with UIDs in range
convert_group=Assign new users to Webmin group
convert_ok=Convert Now
convert_err=Failed to convert users
convert_eusers=No users to convert entered
convert_egroup=Unix group does not exist
convert_emin=Invalid minimum UID
convert_emax=Invalid maximum UID
convert_ewgroup=No such Webmin group
convert_skip=$1 being skipped
convert_exists=$1 already exists
convert_added=$1 being added
convert_msg=Converting Unix users...
  07070100012e2f000081a40000000000000002000000013ac03896000017ee000000200000000000000000000000000000001200000003reloc/acl/lang/es index_title=Usuarios de Webmin
index_user=Usuario
index_modules=M骴ulos
index_create=Crear un nuevo usuario de Webmin
index_rcreate=Crear un nuevo usuario de nivel de riesgo
index_cert=Requerir un certificado SSL
index_certmsg=Haz click en este bot髇 para requerir un certificado SSL que te permita hacer un login seguro a Webmin sin tener que digitar un nombre de usuario y su clave de acceso.
index_return=lista de usuarios
index_none=Ninguno
index_edit=Editar M骴ulo ACL:
index_global=ACL Global
index_users=Usuarios de Webmin
index_groups=Grupos de Webmin
index_group=Grupo
index_nousers=No se han definido usuarios editables de Webmin.
index_nogroups=No se han definido grupos editables de Webmin.
index_gcreate=Crear un nuevo grupo de Webmin
index_members=Miembros
index_modgroups=M骴ulos desde el grupo $1

edit_title=Editar Usuario de Webmin
edit_title2=Crear Usuario de Webmin
edit_rights=Derechos de acceso de usuario de Webmin
edit_user=Nombre de Usuario
edit_group=Miembro de grupo
edit_pass=Clave de Acceso
edit_same=Igual que en Unix
edit_pam=Autenticaci髇 PAM
edit_dont=No cambiar
edit_set=Poner a
edit_modules=M骴ulos
edit_clone=Clon
edit_lang=Lenguage
edit_notabs=縋ongo los m骴ulos por Categor韆s?
edit_cert=Nombre de certificado SSL
edit_none=Ninguno
edit_ips=Control de acceso a IP
edit_all=Permitir desde todas las direcciones
edit_allow=S髄o permitir desde direcciones listadas
edit_deny=Denegar desde direcciones listadas
edit_ipdesc=El control de acceso de usuario a IP funciona al igual que el control global de acceso a IP en el m骴ulo de Configuraci髇 de Webmin. S髄o si un usuario pasa los controles globales se realizar el chequeo aqu tambi閚.
edit_skill=Nivel de inteligencia
edit_risk=Nivel de riesgo
edit_risk_high=Super usuario
edit_risk_medium=Usuario de Administraci髇
edit_risk_low=Usuario normal
edit_groupmods=(A馻dido a los m骴ulos de grupo)
edit_euser=No est醩 autorizado a editar este usuario
edit_ecreate=No est醩 autorizado a crear usuarios

save_err=Error al salvar usuario
save_ename='$1' no es un nombre de usuario v醠ido
save_edup=El nombre de usuario '$1' ya est existe
save_edeny=no te puedes denegar a ti mismo acceso al m骴ulo de Usuarios de Webmin
save_eos=La misma opci髇 que la clave de acceso de Unix no est soportada por tu sistema operativo.
save_emd5=La misma opci髇 que la clave de acceso de Unix no puede ser usada en sistemas con encriptaci髇 MD5
save_eunix=El usuario Unix '$1' no existe
save_emod=No puedes conceder acceso al m骴ulo '$1'
save_ecreate=No est醩 autorizado a crear usuarios
save_euser=No est醩 autorizado a editar este usuario
save_ecolon=Las claves de acceso no pueden contener el car醕ter ':'
save_eself=Tu direcci髇 IP actual ($1) ser韆 denegada
save_epam=La autenticaci髇 PAM no est disponible ya que el m骴ulo de Perl <tt>Authen::PAM</tt> no est instalado o no funciona adecu醖amente.
save_egroup=No se ha seleccionado grupo para recoger sus m骴ulos

delete_err=No puedo borrar este usuario
delete_eself=No te puedes borrar a ti mismo
delete_ecannot=No est醩 autorizado a borrar usuarios
delete_euser=No est醩 autorizado a borrar este usuario

cert_title=Requerir Certificado
cert_issue=Adjuntar Certificado
cert_header=Detalles del Nuevo certificado
cert_msg=Este formuario te permite requerir un certificado de cliente SSL que ser usado en el futuro para garantizarte el acceso a Webmin en vez de tu nombre de usuario y clave de aceso. Esto es m醩 seguro, pero debido a que la autentificaci髇, es autom醫ica no podr醩 cambiar a un usuario diferente cuando uses el certificado.
cert_cn=Tu nombre
cert_email=Direcci髇 de Correo
cert_ou=Departamento
cert_o=Organizaci髇
cert_sp=Estado
cert_c=C骴igo de Pa韘
cert_key=Medida de Clave
cert_ok=Tu certificado para $1 ha sido generado con 閤ito e instalado en tu navegador de web.
cert_ekey=Una nueva clave SSL no fue lanzada por tu navegador - quiz no soporta certificados de cliente SSL.
cert_eca=No pude configurar autoridad de certificado: $1
cert_already=Aviso - ya est醩 usandi el certificado $1.

acl_title=Control de Acceso a M骴ulo
acl_title2=Para $1 en $2
acl_options=$1 opciones de control de acceso
acl_config=縋uede editar la configuraci髇 del m骴ulo?
acl_uall=Todos los usuarios
acl_usel=Los seleccionados...
acl_users=Usuarios que pueden ser editados
acl_mods=Puede conceder acceso a
acl_all=Todos los m骴ulos
acl_own=S髄o sus propios m骴ulos
acl_sel=M骴ulos seleccionados...
acl_create=縋uede crear nuevos usuarios?
acl_delete=縋uede borrar usuarios?
acl_groups=縋uede editar grupos?
acl_rename=縋uede renombrar usuarios?
acl_acl=縋uedo editar control de acceso al m骴ulo?
acl_lang=縋uedo cambiar el lenguaje?
acl_chcert=縋uedo cambiar el nombre de certificado SSL?
acl_euser=No est醩 autorizado a editar la ACL de este usuario
acl_egroup=No est醩 autorizad a editar la ACL de este grupo
acl_emod=No est醩 autorizado a editar la ACL de este m骴ulo
acl_others=縋uede ver los m骴ulos inaccesibles?
acl_cert=縋uedo requerir el certificado?
acl_err=No pude salvar control de acceso

log_modify=Modificado usuario de Webmin $1
log_rename=Renombrado usuario de Webmin $1 por $2
log_create=Creado usuario de Webmin $1
log_clone=Clonado usuario de Webmin $1 en $2
log_delete=Borrado usuario de Webmin $1
log_acl=Actualizado acceso de $1 en $2
log_cert=Emitido certificado para usuario $1
log_modify_g=Modificado grupo de Webmin $1
log_rename_g=Renombrado grupo de Webmin $1 a $2
log_create_g=Creado grupo de Webmin $1
log_delete_g=Borrado grupo de Webmin $1

gedit_ecannot=No est醩 autorizado a editar grupos
gedit_title=Editar Grupo de Webmin
gedit_title2=Crear Grupo de Webmin
gedit_group=Nombre de Grupo
gedit_rights=Derechos de acceso a grupo de Webmin
gedit_modules=M骴ulos de Miembros

gdelete_err=No pude borrar el grupo
gdelete_ecannot=No est醩 autorizado a borrar grupos
gdelete_euser=No puedes borrar tu propio grupo
gdelete_title=Borrar Grupo
gdelete_desc=縀st醩 seguro de quere borrar el grupo $1 y sus usuarios miembro $2?
gdelete_ok=Borrar Grupo

gsave_err=No pude salvar grupo
gsave_ename=Nombre de grupo sin poner o inv醠ido
gsave_edup=Nombre de grupo ya est en uso

  07070100012e30000081a40000000000000002000000013ac03896000019fd000000200000000000000000000000000000001200000003reloc/acl/lang/fr index_title=Utilisateurs Webmin
index_user=Utilisateurs
index_modules=Modules autoris閟
index_create=Cr閑r un nouvel utilisateur Webmin
index_rcreate=Cr閑r un nouvel utilisateur  niveau de risque
index_cert=Demander un certificat SSL
index_certmsg=Cliquez sur ce bouton pour demander un certificat SSL qui vous permettra de vous connecter  Webmin de mani鑢e s鹯e sans avoir besoin d'entrer un nom d'utilisateur et un mot de passe.
index_return=la liste des utilisateurs
index_none=Aucun
index_edit=蒬iter le module ACL:
index_global=ACL global
index_users=Les utilisateurs
index_groups=Les groupes
index_group=Groupe
index_nousers=Aucun utilisateur Webmin 閐itable n'est d閒ini.
index_nogroups=Aucun groupe Webmin 閐itable n'est d閒ini.
index_gcreate=Cr閑r un nouveau groupe d'utilisateur
index_members=Les membres
index_modgroups=Modules du groupe $1

edit_title=蒬iter un utilisateur Webmin
edit_title2=Cr閑r un utilisateur Webmin
edit_rights=Acc鑣 d'utilisateur Webmin
edit_user=Nom d'utilisateur
edit_group=Membre du groupe
edit_pass=Mot de passe
edit_same=Semblable  celui du syst鑝e
edit_pam=Authentification PAM
edit_dont=Inchang
edit_set=Remplacer par
edit_modules=Modules autoris閟
edit_clone=Dupliquer
edit_lang=Langue
edit_notabs=Cat間oriser les modules?
edit_cert=Nom du certificat SSL
edit_none=Aucun
edit_ips=Contr鬺e d'acc鑣 par adresse IP
edit_all=Autoriser depuis toutes les adresses
edit_allow=Autoriser uniquement depuis les adresses sp閏ifi閑s
edit_deny=Refuser depuis les adresses sp閏ifi閑s
edit_ipdesc=Le contr鬺e d'acc鑣 par adresses IP fonctionne de la m阭e mani鑢e pour un utilisateur que son 閝uivalent global dans le module de configuration de Webmin. Ces contr鬺es ne seront effectu閟 que si l'utilisateur a pass avec succ鑣 les contr鬺es globaux.
edit_skill=Niveau de comp閠ence
edit_risk=Niveau de risque
edit_risk_high=Super-utilisateur
edit_risk_medium=Utilisateur administrateur
edit_risk_low=Utilisateur normal
edit_groupmods=(en plus des modules du groupe)
edit_euser=Vous n'阾es pas autoris  閐iter cet utilisateur
edit_ecreate=Vous n'阾es pas autoris  cr閑r un utilisateur

save_err=Impossible de sauvegarder l'utilisateur
save_ename='$1' n'est pas un nom d'utilisateur valide
save_edup=L'utilisateur '$1' existe d閖
save_edeny=Vous ne pouvez pas vous interdire d'avoir acc鑣 au module de configuration des utilisateurs Webmin
save_eos=L'option "mot de passe semblable  celui du syst鑝e" n'est pas support閑 par votre syst鑝e d'exploitation
save_emd5=L'option "mot de passe semblable  celui du syst鑝e" ne peut pas 阾re s閘ectionn閑 avec un chiffrage par MD5
save_eunix=Le compte syst鑝e '$1' n'existe pas
save_emod=Vous ne pouvez pas donner l'acc鑣 au module $1
save_ecreate=Vous n'阾es pas autoris  cr閑r un utilisateur
save_euser=Vous n'阾es pas autoris  閐iter cet utilisateur
save_ecolon=Les mots de passe ne peuvent pas contenir le caract鑢e ":"
save_eself=Votre adresse IP actuelle ($1) serait refus閑
save_epam=L'authentification PAM n'est pas disponible car le module Perl <tt>Authen::PAM</tt> n'est pas install ou ne fonctionne pas correctement.
save_egroup=Vous n'avez s閘ectionn aucun groupe d'o obtenir la liste des modules

delete_err=Impossible de supprimer cet utilisateur
delete_eself=Vous ne pouvez vous supprimer vous-m阭e
delete_ecannot=Vous n'阾es pas autoris  supprimer un utilisateur
delete_euser=Vous n'阾es pas autoris  supprimer cet utilisateur

cert_title=Demande d'un certificat
cert_issue=D閘ivrer un nouveau certificat
cert_header=D閠ails pour le nouveau certificat
cert_msg=Ce formulaire vous permet de demander un certificat SSL client, qui sera ensuite utilis pour vous permettre l'acc鑣  Webmin sans avoir  taper vos nom et mot de passe. Cette m閠hode est plus s鹯e, mais comme l'authentification est automatique, vous ne pourrez plus changer d'utilisateur quand vous utiliserez le certificat.
cert_cn=Votre nom
cert_email=Adresse 閘ectronique
cert_ou=D閜artement
cert_o=Organisation
cert_sp=蓆at
cert_c=Code du pays
cert_key=Taille de la clef
cert_ok=Votre certificat pour $1 a 閠 g閚閞 avec succ鑣 et est install dans votre navigateur web.
cert_ekey=Votre navigateur n'a pas envoy de nouvelle clef SSL. Peut-阾re qu'il ne supporte pas les certificats SSL client.
cert_eca=Impossible de d閒inir l'autorit du certificat: $1
cert_already=Attention, vous utilisez d閖 le certificat $1.

acl_title=Contr鬺e d'acc鑣 du module
acl_title2=de $2 pour l'utilisateur $1
acl_options=Contr鬺e d'acc鑣 du module $1
acl_config=Peut 閐iter la configuration du module?
acl_uall=Tous les utilisateurs
acl_usel=S閘ectionn...
acl_users=Utilisateurs pouvant 阾re 閐it閟
acl_mods=Peut donner acc鑣 
acl_all=Tout les modules
acl_own=Seulement ses modules
acl_sel=Modules s閘ectionn閟 ..
acl_create=Peut cr閑r un nouvel utilisateur?
acl_delete=Peut supprimer un utilisateur?
acl_groups=Peut 閐iter les groupes?
acl_rename=Peut renommer un utilisateur?
acl_acl=Peut 閐iter les contr鬺es d'acc鑣 au module?
acl_lang=Peut changer la langue?
acl_chcert=Peut changer le nom du certificat SSL?
acl_euser=Vous n'阾es pas autoris  閐iter le contr鬺e d'acc鑣 pour cet utilisateur
acl_egroup=Vous n'阾es pas autoris  閐iter les ACL de groupe
acl_emod=Vous n'阾es pas autoris  閐iter le contr鬺e d'acc鑣 de ce module
acl_others=Peut voir les modules inaccessibles?
acl_cert=Peut demander un certificat?
acl_err=Impossible d'enregistrer les contr鬺es d'acc鑣

log_modify=Modifi l'utilisateur Webmin $1
log_rename=Renomm l'utilisateur Webmin $1 en $2
log_create=Cr殚 l'utilisateur Webmin $1
log_clone=Clon l'utilisateur Webmin $1 en $2
log_delete=D閠ruit l'utilisateur Webmin $1
log_acl=Mis  jour l'acc鑣 pour $1 dans $2
log_cert=Cr殚 un certificat pour l'utilisateur $1
log_modify_g=Modifi le groupe Webmin $1
log_rename_g=Renomm le groupe Webmin $1 en $2
log_create_g=Cr殚 le groupe Webmin $1
log_delete_g=D閠ruit le groupe Webmin $1

gedit_ecannot=Vous n'阾es pas autoris  閐iter des groupes
gedit_title=蒬ition d'un groupe Webmin
gedit_title2=Cr閍tion d'un groupe Webmin
gedit_group=Nom du groupe
gedit_rights=Droits d'acc鑣 du groupe Webmin
gedit_modules=Modules accessibles aux membres

gdelete_err=Impossible de d閠ruire le groupe
gdelete_ecannot=Vous n'阾es pas autoris  d閠ruire des groupes
gdelete_euser=Vous ne pouvez pas d閠ruire votre propre groupe
gdelete_title=Destruction du groupe
gdelete_desc=Voulez-vous vraiment d閠ruire le groupe $1 et les utilisateurs qui en sont membres $2?
gdelete_ok=D閠ruire le groupe

gsave_err=Impossible d'enregistrer le groupe
gsave_ename=Nom du groupe manquant ou invalide
gsave_edup=Ce nom de groupe est d閖 utilis
   07070100012ec3000081a40000000000000002000000013ac038960000117c000000200000000000000000000000000000001200000003reloc/acl/lang/hu index_title=Webmin felhaszn醠髃
index_user=Felhaszn醠
index_modules=Modulok, melyekhez hozz醘閞het
index_create=趈 Webmin felhaszn醠 l閠rehoz醩a
index_cert=SSL igazolv醤y k閞閟e
index_certmsg=Ezt a gombot nyomd meg, ha egy SSL igazolv醤yt akarsz k閞ni, mely a tov醔biakban lehet鮲 teszi, hogy a Webmin szerverre biztons醙os m骴on, azonos韙 閟 jelsz haszn醠ata n閘k黮 l閜hess be.
index_return=a felhaszn醠髃 list醞醜oz
index_none=Egyik sem
index_edit=A modulhoz val hozz醘閞閟 v醠toztat醩a:

edit_title=Felhaszn醠骾 profil m骴os韙醩a
edit_title2=趈 felhaszn醠 felv閠ele
edit_rights=A Webmin felhaszn醠 hozz醘閞閟i jogai
edit_user=Azonos韙
edit_pass=Jelsz
edit_same=Ugyanaz, mint az oper醕i髎 rendszerhez
edit_dont=V醠tozatlan
edit_set=趈
edit_modules=Modulok
edit_clone=Kl髇oz醩
edit_lang=Nyelv
edit_notabs=Modulok kategoriz醠va?
edit_cert=Az SSL igazolv醤yon szerepl n関
edit_none=Nincs
edit_ips=IP hozz醘閞閟i lista
edit_all=B醨honnan bel閜het
edit_allow=Csak a megadott c韒ekr鮨
edit_deny=A felsoroltak kiv閠el関el b醨honnan
edit_ipdesc=A felhaszn醠骾 szint hozz醘閞閟i lista pont 鷊y m鹝鰀ik, mint a "Webmin konfigur醠醩a" nev modulban a glob醠is IP hozz醘閞閟i lista. A felhaszn醠 g閜閚ek mindk閠 lista szerinti ellen鮮z閟nek meg kell felelnie.
edit_euser=Nincs jogod felhaszn醠骾 adatok m骴os韙醩醜oz
edit_ecreate=Nincs jogod 鷍 felhaszn醠 felv閠el閔ez

save_err=Nem siker黮t elmenteni
save_ename='$1' hib醩 azonos韙
save_edup=A '$1' azonos韙 m醨 foglalt
save_edeny=Nem tilthatod meg magadnak a hozz醘閞閟t a "Webmin felhaszn醠髃" modulhoz
save_eos=Az oper醕i髎 rendszer nem engedi, hogy az  jelszav醫 haszn醠d
save_emd5=Ha az oper醕i髎 rendszer jelszava MD5 titkos韙醩, nem haszn醠hat a Webminhez
save_eunix=Az oper醕i髎 rendszernek nincs '$1' azonos韙骿 felhaszn醠骿a
save_emod=Nem adhatsz hozz醘閞閟i jogokat a '$1' modulhoz
save_ecreate=Nem hozhatsz l閠re 鷍 felhaszn醠髃at
save_euser=Nem m骴os韙hatod ennek a felhaszn醠髇ak az adatait
save_ecolon=A jelsz骲an nem lehet kett鮯pont (:)
save_eself=Nem tilthatod le a sajat IP c韒edet ($1)

delete_err=Nem siker黮t a t鰎l閟
delete_eself=Nem t鰎鰈heted 鰊magadat
delete_ecannot=Nincs jogod felhaszn醠髃at t鰎鰈ni
delete_euser=Nincs jogod t鰎鰈ni ezt a felhaszn醠髏

cert_title=Igazolv醤y k閞閟e
cert_issue=Igazolv醤y kiad醩a
cert_header=Az 鷍 igazolv醤y tartalma
cert_msg=Ezen az oldalon egy SSL (Secure Socket Layer) igazolv醤yt k閞hetsz. Ennek haszn醠at醰al a b鰊g閟z鮠 titkos韙ott kommunik醕i髏 folytat a Webminnel, 閟 egy digit醠is al犴r醩sal azonos韙ja mag醫 ahelyett, hogy minden alkalommal (lehallgathat m骴on) bek黮den az azonos韙骴at 閟 jelszavadat. Ez biztons醙osabb, de az automatikus azonos韙醩 miatt nem tudsz felhaszn醠髏 v醠tani.<p>Ha net醤 le van tiltva a JavaScript a b鰊g閟z鮠ben, most enged閘yezd egy kicsit!
cert_cn=N関
cert_email=E-mail c韒
cert_ou=Szervezeti egys間
cert_o=Szervezet
cert_sp=Orsz醙
cert_c=Orsz醙k骴
cert_key=Kulcsm閞et [bit]
cert_ok=A(z) '$1' n関re ki醠l韙ott igazolv醤y elk閟z黮t, 閟 beker黮t a b鰊g閟z鮠be.
cert_ekey=Az 鷍 SSL kulcsot nem siker黮t 醫adni a b鰊g閟z鮠nek. Tal醤 az閞t, mert nem t醡ogatja az kliensoldali SSL igazolv醤yokat.
cert_eca=Nem siker黮t a hiteles韙 k鰖pont fel醠l韙醩a: $1
cert_already=Figyelem! M醨 van egy igazolv醤yod: $1.

acl_title=Hozz醘閞閟i jogok
acl_title2=$1 sz醡醨a a "$2" modulhoz
acl_options=A "$1" modul feletti hat醩k鰎
acl_config=Megv醠toztathatja a modul konfigur醕i骿醫?
acl_users=A megv醠toztathat felhaszn醠髃 list醞a
acl_mods=Mihez adhat jogokat?
acl_all=Minden modulhoz
acl_own=Csak a saj醫 moduljaihoz
acl_sel=Az alant megjel鰈t modulokhoz
acl_create=L閠rehozhat 鷍 felhaszn醠髃at?
acl_delete=T鰎鰈het felhaszn醠髃at?
acl_rename=羣nevezhet felhaszn醠髃at?
acl_acl=Megv醠toztathatja a modul hozz醘閞閟i jogait?
acl_lang=Megv醠toztathatja a nyelvet?
acl_chcert=Megv醠toztathatja az SSL igazolv醤yon 醠l nevet?
acl_euser=Nincs jogod ezen felhaszn醠 hozz醘閞閟i jogait megv醠toztatni
acl_emod=Nincs jogod ezen modul hozz醘閞閟i jogait megv醠toztatni
acl_others=L醫hatja az el閞hetetlen modulokat?
acl_cert=K閞het SSL igazolv醤yt?
acl_err=Nem siker黮t elmenteni a hozz醘閞閟i jogokat

log_modify=$1 Webmin felhaszn醠 m骴os韙醩a
log_rename=$1 Webmin felhaszn醠 醫nevez閟e $2-ra/re
log_create=$1 Webmin felhaszn醠 l閠rehoz醩a
log_clone=$1 Webmin felhaszn醠 kl髇oz醩a $2 n関en
log_delete=$1 Webmin felhaszn醠 t鰎l閟e
log_acl=$1 jogai a $2 modulhoz m骴os韙va
log_cert=Igazolv醤y kiad醩a $1 felhaszn醠 sz醡醨a

07070100012ec4000081a40000000000000002000000013ac0389600000703000000200000000000000000000000000000001200000003reloc/acl/lang/it index_title=Utenti Webmin 
index_user=Usente
index_modules=Moduli
index_create=Crea un nuovo utente Webmin
index_return=Lista Utenti

edit_title=Modifica l'Utente Webmin
edit_title2=Crea un Utente Webmin
edit_rights=Diritti d'accesso per l'utente Webmin
edit_user=Username
edit_pass=Password
edit_same=Stessa di Unix
edit_dont=Non cambiare
edit_set=Imposta a
edit_modules=Moduli
edit_clone=Copia
edit_lang=Lingua
edit_notabs=Dividi i moduli per categorie?
edit_euser=Non hai i permessi per modificare questo utente
edit_ecreate=Non hai i permessi per creare nuovi utenti

save_err=Errore nel salvataggio dell'utente
save_ename='$1' non &egrave; uno Username nome valido
save_edup=Lo username '$1' &egrave; gia' utilizzato
save_edeny=Non puoi negare a te stesso l'accesso al modulo Utenti Webmin
save_eunix=L'utente Unix '$1' non esiste
save_emod=Non puoi dare accesso al modulo '$1'
save_ecreate=Non hai i permessi per creare utenti
save_euser=Non hai i permessi per modificare questo utente

delete_err=Errore nell'eliminazione dell'utente
delete_eself=Non puoi eliminare te stesso
delete_ecannot=Non hai i permessi per eliminare utenti
delete_euser=Non hai i permessi per eliminare questo utente

acl_title=Controllo di Accesso ai Moduli
acl_title2=Per $1 in $2
acl_options=$1 opzioni di accesso
acl_config=Pu&ograve; modificare la configurazione del modulo?
acl_users=Utenti che pu&ograve; modificare
acl_mods=Pu&ograve; dare accesso a
acl_all=Tutti i moduli
acl_own=Solo ai suoi moduli
acl_sel=Moduli selezionati ..
acl_create=Pu&ograve; creare nuovi utenti?
acl_delete=Pu&ograve; eliminare gli utenti?
acl_rename=Pu&ograve; rinominare gli utenti?
acl_euser=Non hai i permessi per modificare l'accesso di questo utente
acl_emod=Non hai i permessi per modificare l'accesso per questo modulo

 07070100012ec5000081a40000000000000002000000013ac038970000168b000000200000000000000000000000000000001900000003reloc/acl/lang/ja_JP.euc  index_title=Webminユ〖ザ
index_user=ユ〖ザ
index_modules=モジュ〖ル
index_create=糠しいユ〖ザを侯喇する
index_rcreate=糠しいリスクレベルユ〖ザを侯喇する
index_cert=SSL沮汤今を妥滇する
index_certmsg=ユ〖ザ叹とパスワ〖ドを掐蜗せずにWebminに奥链にログインするためのSSL沮汤今を妥滇するには、このボタンをクリックしてください。
index_return=ユ〖ザ办枉
index_none=なし
index_edit=モジュ〖ルACLの试礁
index_global=グロ〖バルACL
index_users=Webminユ〖ザ
index_groups=Webminグル〖プ
index_group=グル〖プ
index_nousers=试礁材墙なWebminユ〖ザは年盗されていません。
index_nogroups=试礁材墙なWebminグル〖プは年盗されていません。
index_gcreate=糠しいWebminグル〖プを侯喇する
index_members=メンバ
index_modgroups=グル〖プ$1のモジュ〖ル

edit_title=Webminユ〖ザの试礁
edit_title2=Webminユ〖ザの侯喇
edit_rights=Webminユ〖ザのアクセス涪
edit_user=ユ〖ザ叹
edit_group=グル〖プのメンバ
edit_pass=パスワ〖ド
edit_same=Unixと票じ
edit_pam=PAM千沮
edit_dont=恃构なし
edit_set=恃构:
edit_modules=モジュ〖ル
edit_clone=剩澜
edit_lang=咐胳
edit_notabs=モジュ〖ルを尸梧しますか?
edit_cert=SSL沮汤今の叹涟
edit_none=なし
edit_ips=IPアクセス扩告
edit_all=すべてのアドレスからのアクセスを钓材
edit_allow=回年したアドレスからのアクセスのみ钓材
edit_deny=回年したアドレスからのアクセスを雕容
edit_ipdesc=ユ〖ザ帽疤のIPアクセス扩告は、Webmin肋年モジュ〖ルのグロ〖バルIPアクセス扩告と票屯に怠墙します。グロ〖バルな扩告をユ〖ザが奶册したときだけ、ここでの肋年がチェックされます。
edit_skill=祷窖レベル
edit_risk=リスクレベル
edit_risk_high=ス〖パユ〖ザ
edit_risk_medium=瓷妄ユ〖ザ
edit_risk_low=奶撅のユ〖ザ
edit_groupmods=(グル〖プで肋年したモジュ〖ルに纳裁されます)
edit_euser=あなたはこのユ〖ザを试礁できません
edit_ecreate=あなたはユ〖ザを侯喇できません

save_err=ユ〖ザを瘦赂できませんでした
save_ename='$1'は铜跟なユ〖ザ叹ではありません
save_edup=ユ〖ザ叹'$1'はすでにユ〖ザとして赂哼します
save_edeny=极尸极咳のWebminユ〖ザモジュ〖ルへのアクセスを雕容することはできません
save_eos=このオペレ〖ティングシステムでは、≈Unixと票じ∽パスワ〖ドオプションはサポ〖トされていません。
save_emd5=≈Unixと票じ∽パスワ〖ドオプションは、MD5芭规步を脱いるシステムでは蝗えません
save_eunix=Unixユ〖ザ'$1'は赂哼しません
save_emod=あなたはモジュ〖ル'$1'へのアクセスを钓材できません
save_ecreate=あなたはユ〖ザを侯喇できません
save_euser=あなたはこのユ〖ザを试礁できません
save_ecolon=パスワ〖ドに≈:∽矢机を崔めることはできません
save_eself=あなたの附哼のIPアドレス ($1) からのアクセスが雕容されます
save_epam=<tt>Authen::PAM</tt> Perlモジュ〖ルがインスト〖ルされていないか、赖撅に瓢侯していないため、PAM千沮を网脱できません。
save_egroup=モジュ〖ルを艰评するためのグル〖プが联买されていません

delete_err=ユ〖ザを猴近できませんでした
delete_eself=极尸极咳を猴近することはできません
delete_ecannot=あなたはユ〖ザを猴近できません
delete_euser=あなたはこのユ〖ザを猴近できません

cert_title=沮汤今の妥滇
cert_issue=沮汤今の券乖
cert_header=糠しい沮汤今の拒嘿
cert_msg=海稿Webminへのアクセスを钓材する狠にユ〖ザ叹とパスワ〖ドの洛わりに蝗われるSSLクライアント沮汤今を妥滇するには、このフォ〖ムを蝗います。SSLの数がより奥链ですが、千沮は极瓢弄に乖われるため、沮汤今を蝗っているときに侍のユ〖ザに磊り仑えることはできなくなります。
cert_cn=あなたの叹涟
cert_email=Emailアドレス
cert_ou=婶金
cert_o=寥骏
cert_sp=俯
cert_c=柜コ〖ド
cert_key=キ〖のサイズ
cert_ok=$1に簇するあなたの沮汤今は赖撅に栏喇され、あなたのWebブラウザにインスト〖ルされました。
cert_ekey=あなたのブラウザからは糠しいSSLキ〖は流慨されませんでした - ブラウザがSSLクライアント沮汤今をサポ〖トしていない材墙拉があります。
cert_eca=沮汤今の涪嘎を肋年できませんでした : $1
cert_already=焚桂 - あなたはすでに沮汤今$1を蝗っています。

acl_title=モジュ〖ルのアクセス扩告
acl_title2=モジュ〖ル≈$2∽におけるユ〖ザ≈$1∽
acl_options=$1のアクセス扩告オプション
acl_config=このモジュ〖ルの肋年を试礁する涪网を涂えますか?
acl_uall=すべてのユ〖ザ
acl_usel=联买したユ〖ザ..
acl_users=试礁材墙なユ〖ザ
acl_mods=アクセスの钓材滦据
acl_all=すべてのモジュ〖ル
acl_own=疥铜するモジュ〖ルのみ
acl_sel=联买したモジュ〖ル..
acl_create=糠しいユ〖ザを侯喇する涪网を涂えますか?
acl_delete=ユ〖ザを猴近できる涪网を涂えますか?
acl_groups=グル〖プを试礁する涪网を涂えますか?
acl_rename=ユ〖ザの叹涟を恃构する涪网を涂えますか?
acl_acl=モジュ〖ルのアクセス扩告を试礁する涪网を涂えますか?
acl_lang=咐胳を恃构する涪网を涂えますか?
acl_chcert=SSL沮汤今の叹涟を恃构する涪网を涂えますか?
acl_euser=あなたはこのユ〖ザのACLを试礁できません
acl_egroup=あなたはグル〖プACLを试礁できません
acl_emod=あなたはこのモジュ〖ルのACLを试礁できません
acl_others=アクセスできないモジュ〖ルを山绩しますか?
acl_cert=沮汤今を妥滇する涪网を涂えますか?
acl_err=アクセス扩告を瘦赂できませんでした

log_modify=Webminユ〖ザ$1を饯赖しました
log_rename=Webminユ〖ザ$1の叹涟を$2に恃构しました
log_create=Webminユ〖ザ$1を侯喇しました
log_clone=Webminユ〖ザ$1の剩澜として$2を侯喇しました
log_delete=Webminユ〖ザ$1を猴近しました
log_acl=モジュ〖ル$2における$1のアクセス涪を构糠しました
log_cert=ユ〖ザ$1の沮汤今を券乖しました
log_modify_g=Webminグル〖プ$1を饯赖しました
log_rename_g=Webminグル〖プ$1の叹涟を$2に恃构しました
log_create_g=Webminグル〖プ$1を侯喇しました
log_delete_g=Webminグル〖プ$1を猴近しました

gedit_ecannot=あなたはグル〖プを试礁できません
gedit_title=Webminの试礁
gedit_title2=Webminグル〖プの侯喇
gedit_group=グル〖プ叹
gedit_rights=Webminグル〖プのアクセス涪
gedit_modules=メンバのモジュ〖ル

gdelete_err=グル〖プを猴近できませんでした
gdelete_ecannot=あなたはグル〖プを猴近できません
gdelete_euser=极尸极咳のグル〖プは猴近できません
gdelete_title=グル〖プの猴近
gdelete_desc=グル〖プ$1とそれを菇喇するユ〖ザ$2を塑碰に猴近しますか?
gdelete_ok=グル〖プを猴近する

gsave_err=グル〖プを瘦赂できませんでした
gsave_ename=グル〖プ叹が赂哼しないか、痰跟です
gsave_edup=そのグル〖プ叹はすでに赂哼します

 07070100012ec6000081e40000000000000002000000013ac0389600001878000000200000000000000000000000000000001200000003reloc/acl/lang/nl index_title=Webmin Gebruikers
index_user=Gebruikers
index_modules=Modules
index_create=Maak een nieuwe Webmin gebruiker
index_rcreate=Maak een nieuwe risico-niveau gebruiker aan
index_cert=Vraag een SSL certificaat aan
index_certmsg=Klik op deze knop om een SSL certificaat aan te vragen welke u de mogelijk geeft u beveiligd aan te melden bij de Webmin server zondere een gebruikersnaam of wachtwoord op te hoeven geven.
index_return=gebruikers lijst
index_none=Geen
index_edit=Bewerk Module ACL :
index_global=Globale ACL
index_users=Webmin Gebruikers
index_groups=Webmin Groepen
index_group=Groep
index_nousers=Geen bewerkbare Webmin gebruikers gedefinieerd.
index_nogroups=Geen bewerkbare Webmin groepen gedefinieerd.
index_gcreate=Maak een nieuwe gebruikersgroep aan.
index_members=Leden
index_modgroups=Leden van de groep $1

edit_title=Bewerk Webmin Gebruiker
edit_title2=Maak een Webmin Gebruiker aan
edit_rights=Webmin gebruiker toegangsrechten
edit_user=Gebruikersnaam
edit_group=Lid van de groep
edit_pass=Wachtwoord
edit_same=Hetzelfde als Unix
edit_pam=PAM authenticatie
edit_dont=Niet wijzigen
edit_set=Wijzig in
edit_modules=Modules
edit_clone=Kloon
edit_lang=Taal
edit_notabs=Categoriseer modules?
edit_cert=SSL certificaat naam
edit_none=Geen
edit_ips=IP toegangscontrole
edit_all=Accepteer van alle adressen
edit_allow=Accepteer adressen in de lijst
edit_deny=Weiger adressen in de lijst
edit_ipdesc=Gebruiker IP toegangscontrole werk op de zelfde manier als de globale IP toegangscontrole in de Webmin Configuratie module. Alleen als de gebruiker door de globale regels word geaccepteerd zullen de rechen ook door de ze regels worden gecontroleerd.
edit_skill=Ervaring niveau
edit_risk=Risico Niveau
edit_risk_high=Super gebruiker
edit_risk_medium=Administrator gebruiker
edit_risk_low=Normale gebruiker
edit_groupmods=(Als toevoeging op modules uit groep)
edit_euser=U bent niet gemachtigd om deze gebruiker te bewerken
edit_ecreate=U bent niet gemachtigd om gebruikers aan te maken

save_err=Fout bij het opslaan van de gebruiker
save_ename='$1' is geen geldige gebruikersnaam
save_edup=De gebruikersnaam '$1' is al in gebruik
save_edeny=U kunt niet u zelf de de toegang tot de Webmin gebruikers module ontnemen
save_eos=De hetzelfde als Unix wachtwoord optie wordt niet ondersteund door uw besturingssysteem.
save_emd5=De hetzelfde als Unix wachtwoord optie kan niet worden gebruikt op systemen met MD5 encryptie
save_eunix=De Unix gebruiker '$1' bestaat niet
save_emod=U kunt geen toegangsrechten toewijzen aan module '$1'
save_ecreate=U bent niet gemachtigd om gebruikers aan te maken
save_euser=U bent niet gemachtigd om deze gebruikers te bewerken
save_ecolon=Wachtwoorden kunnen het : teken niet bevatten
save_eself=Uw huidige IP adres ($1) zou worden geweigerd
save_epam=PAM authenticatie is niet beschikbaar als de <tt>Authen::PAM</tt> Perl module niet geinstalleerd of niet goed werkt.
save_egroup=Geen groep geselceteerd om modules van op te halen

delete_err=Fout bij het verwijderen van de gebruiker
delete_eself=u kunt niet uzelf verwijderen
delete_ecannot=U bent niet gemachtigd om gebruikers te verwijderen
delete_euser=U bent niet gemachtigd om deze gebruiker te verwijderen

cert_title=Certificaat aanvragen
cert_issue=Geef Certificaat uit
cert_header=Nieuwe certificaat details
cert_msg=Dit formulier stelt u in staat om een SSL client certificaat aan te vragen, welke in de toekomst gebruikt zal worden om u toegang tot webmin te verschaffen, in plaats van uw gebruikersnaam en wachtwoord. Dit is veiliger, maar omdat de verifiering automatisch is kunt u niet van gebruiker wisselen wanneer u een certificaat gebruikt.
cert_cn=Uw naam
cert_email=Email adres
cert_ou=Departement
cert_o=Organisatie
cert_sp=Staat/Provincie
cert_c=Land code
cert_key=Sleute groote
cert_ok=Uw certificaat voor $1 is met succes aangemaakt en geinstalleerd in uw webbrowser.
cert_ekey=Een nieuwe SSL sleutel is niet verstuurd door uw browser - wellicht ondersteund het geen SSL client certificaten.
cert_eca=Fout bij het instellen van de certificaat authoriteit : $1
cert_already=Waarschuing - u maakt reeds gebruik van het volgende certificaat: $1.

acl_title=Module Toegang Controle
acl_title2=Voor $1 in $2
acl_options=$1 toegangscontrole opties
acl_config=Kan module configuratie bewerken?
acl_uall=Alle gebruikers
acl_usel=Geselecteerd ..
acl_users=Gebruikers die bewerkt kunne worden
acl_mods=Kan toegang geven tot
acl_all=Alle modules
acl_own=Alleen zijn eigen modules
acl_sel=Geselected modules ..
acl_create=Kan nieuwe gebruikers aanmaken?
acl_delete=Kan gebruikers verwijderen?
acl_groups=Kan groepen bewerken?
acl_rename=Kan gebruikers hernoemen?
acl_acl=Kan module toegangscontrole bewerken?
acl_lang=Kan taal weizigen?
acl_chcert=Kan SSL certificaat naam wijzigen?
acl_euser=U bent niet gemachtigd om de ACL voor deze gebruiker te bewerken
acl_egroup=U bent niet bevoegd om groep ACLs te bewerken
acl_emod=U bent niet gemachtigd om groep ACLs te bewerken
acl_others=Kan niet toegankelijke modules zien?
acl_cert=Kan certificaat aanvragen?
acl_err=Fout bij het opslaan van de toegangscontrole

log_modify=Aangepaste Webmin gebruiker $1
log_rename=Webmin gebruiker hernoemd van $1 naar $2
log_create=Webmin gebruier $1 aangemaakt
log_clone=Webmin gebruiker gekloond van $1 naar $2
log_delete=Webmin gebruiker $1 verwijderd
log_acl=Toegang voor $1 in $2 aangepast
log_cert=Certificaat uitgegeven voor gebruiker $1
log_modify_g=Gewijzigde Webmin groep $1
log_rename_g=Webmin groep $1 hernoemd naar $2
log_create_g=Webmin groep $1 aangemaakt
log_delete_g=Webmin groep $1 verwijderd

gedit_ecannot=U bent niet gemachtigd om groepen te bewerken
gedit_title=Bewerk Webmin Groep
gedit_title2=Maak Webmin Groep aan
gedit_group=Groep naam
gedit_rights=Webmin groep toegangsrechten
gedit_modules=Leden modules

gdelete_err=Fout bij het verwijderen van de groep
gdelete_ecannot=U bent niet gemachtigd om groepen te verwijderen
gdelete_euser=U kunt niet uw eigen groep verwijderen
gdelete_title=Verwijderen Groep
gdelete_desc=Weet u zeker dat u de groep $1 en haar leden $2 wilt verwijderen?
gdelete_ok=Verwijderen Groep

gsave_err=Fout bij het opslaan van de groep
gsave_ename=Ontbrekende of ongeldige groep naam
gsave_edup=Groep naam bestaat al

07070100012ec7000081a40000000000000002000000013ac0389600001ccc000000200000000000000000000000000000001200000003reloc/acl/lang/pl index_title=U縴tkownicy Webmina
index_user=U縴tkownik
index_modules=Modu硑
index_create=Utw髍z nowego u縴tkownika Webmina
index_rcreate=Utw髍z nowego u縴tkownika o&nbsp;okre秎onym poziomie ryzyka
index_convert=Przekszta虫 u縴tkownik體 Uniksa w&nbsp;u縴tkownik體 Webmina
index_cert=Popro o certyfikat SSL
index_certmsg=Naci秐ij ten przycisk, aby poprosi o&nbsp;certyfikat SSL, kt髍y pozwoli Ci si bezpiecznie zalogowa do Webmina bez konieczno禼i podawania nazwy u縴tkownika i&nbsp;has砤.
index_return=listy u縴tkownik體
index_none=Brak
index_edit=Zmie ACL dla modu硊&nbsp;:
index_global=Og髄ne ACL-e
index_users=U縴tkownicy Webmina
index_groups=Grupy Webmina
index_group=Grupa
index_nousers=Nie zdefiniowano modyfikowalnych u縴tkownik體 Webmina.
index_nogroups=Nie zdefiniowano modyfikowalnych grup Webmina.
index_gcreate=Utw髍z now grup Webmina
index_members=Cz硂nkowie
index_modgroups=Modu硑 z&nbsp;grupy $1

edit_title=Modyfikuj u縴tkownika Webmina
edit_title2=Nowy u縴tkownik Webmina
edit_rights=Prawa dost阷u dla u縴tkownika Webmina
edit_user=Nazwa u縴tkownika
edit_group=Cz硂nek grupy
edit_pass=Has硂
edit_same=Uniksowe
edit_pam=Autoryzacja przez PAM
edit_dont=Nie zmieniaj
edit_set=Ustaw
edit_modules=Modu硑
edit_clone=Kopiuj
edit_lang=J陑yk
edit_notabs=Klasyfikowa modu硑?
edit_cert=Nazwa certyfikatu SSL
edit_none=Brak
edit_ips=Kontrola dost阷u wed硊g adresu IP
edit_all=Wpu舵 z&nbsp;dowolnego adresu
edit_allow=Wpu舵 tylko z&nbsp;adres體
edit_deny=Nie wpuszczaj z&nbsp;adres體
edit_ipdesc=Kontrola dost阷u wed硊g adresu IP na poziomie u縴tkownika dzia砤 w&nbsp;ten sam spos骲, jak og髄na kontrola dost阷u po IP w&nbsp;module <tt>Konfiguracja Webmina</tt>. Tzn. te regu硑 maj zastosowanie tylko je秎i u縴tkownik przejdzie najpierw przez kontrol og髄n.
edit_skill=Poziom umiej阾no禼i
edit_risk=Poziom ryzyka
edit_risk_high=Nadu縴tkownik
edit_risk_medium=Administrator
edit_risk_low=Zwyk硑 u縴tkownik
edit_groupmods=(Dodatkowo opr骳z modu丑w z&nbsp;grupy)
edit_euser=Nie masz uprawnie do zmiany danych dla tego u縴tkownika
edit_ecreate=Nie masz uprawnie do tworzenia u縴tkownik體

save_err=Nie uda硂 sie zachowa u縴tkownika
save_ename='$1' nie jest prawid硂w nazw u縴tkownika
save_edup=U縴tkownik '$1' ju istnieje
save_edeny=nie mo縠sz zablokowa sobie dost阷u do modu硊 <tt>U縴tkownicy Webmina</tt>
save_eos=Opcja has硂 "Uniksowe" nie jest wspomagana przez tw骿 system operacyjny.
save_emd5=Opcja has硂 "Uniksowe" nie mo縠 by stosowana na systemach z&nbsp;kodowaniem hase MD5
save_eunix=U縴tkownik uniksowy '$1' nie istnieje
save_emod=Nie mo縠sz przekaza uprawnie do modu硊 '$1'
save_ecreate=Nie masz uprawnie do tworzenia u縴tkownik體
save_euser=Nie masz uprawnie do modyfikacji tego u縴tkownika
save_ecolon=Has砤 nie mog zawiera znaku ':'
save_eself=Tw骿 obecny adres IP ($1) zosta砨y zablokowany
save_epam=Autoryzacja poprzez PAM nie jest dost阷na, gdy nie zainstalowano modu硊 Perla <tt>Authen::PAM</tt> lub nie pracuje on poprawnie.
save_egroup=Nie masz uprawnie do przyporz眃kowywania do tej grupy

delete_err=Nie uda硂 si usun辨 u縴tkownika
delete_eself=nie mo縠sz usun辨 samego siebie
delete_ecannot=Nie wolno ci usuwa u縴tkownik體
delete_euser=Nie wolno ci usun辨 tego u縴tkownika

cert_title=Popro o certyfikat
cert_issue=Certyfikat wydany
cert_header=Dane nowego certifikatu
cert_msg=Formularz umo縧iwia ci poprosi o certyfikat SSL, kt髍y pozwoli ci si bezpiecznie zalogowa do Webmina bez konieczno禼i podawania nazwy u縴tkownika i has砤. Takie rozwi眤anie jest bezpieczniejsze, ale uniemo縧iwia prze潮czenia u縴tkownika Webmina po wlogowaniu. 
cert_cn=Twoje imie
cert_email=Adres e-mail
cert_ou=Wydzia
cert_o=Organizacja
cert_sp=Stan
cert_c=Kod kraju
cert_key=D硊go舵 klucza
cert_ok=Tw骿 certyfikat dla $1 zosta pomy秎nie wygenerowany i&nbsp;zainstalowany w&nbsp;twojej przegl眃arce.
cert_ekey=Twoja przegl眃arka zam體i砤 nowy klucz SSL - by mo縠 nie obs硊guje ona certyfikat體 SSL po stronie klienta.
cert_eca=Nie uda硂 sie ustawi centrum autoryzacji&nbsp;: $1
cert_already=Uwaga - ju u縴wasz certyfikatu $1.

acl_title=Kontrola dost阷u do modu硊
acl_title2=$2 dla u縴tkownika $1
acl_options=Opcje kontroli dost阷u do $1
acl_config=Mo縠 zmienia konfiguracj modu硊
acl_uall=Wszystkich u縴tkownik體
acl_usel=Wybranych ..
acl_users=U縴tkownicy, kt髍ych mo縩a zmienia
acl_mods=Mo縠 zapewni dost阷 do
acl_all=Wszystkich modu丑w
acl_own=Tylko w砤snych modu體
acl_sel=Wybranych modu丑w ..
acl_create=Mo縠 tworzy nowych u縴tkownik體?
acl_delete=Mo縠 usuwa u縴tkownik體?
acl_rename=Mo縠 zmienia nazwy u縴tkownik體?
acl_acl=Mo縠 zmienia prawa dost阷u do modu硊?
acl_lang=Mo縠 zmienia j陑yk?
acl_chcert=Mo縠 zmienia nazw certyfikatu SSL?
acl_euser=Nie masz uprawnie do zmiany ACL-i dla tego u縴tkownika
acl_egroup=Nie masz uprawnie do zmiany ACL-i dla grupy
acl_emod=Nie masz uprawnie do zmiany tego ACL dla tego modu硊
acl_others=Mo縠 widzie niedost阷ne modu硑?
acl_cert=Mo縠 poprosi o&nbsp;certyfikat?
acl_err=Nie uda硂 si zachowa opcji ACL-i
acl_groups=Mo縠 zmienia grupy?
acl_gassign=Mo縠 przyporz眃kowywa u縴tkownik體 do grup
acl_gall=Wszystkich
acl_gsel=Wybranych ..
acl_gnone=痑dnej

log_modify=Zmodyfikowano u縴tkownika Webmina $1
log_rename=Przemianowano u縴tkownika Webmina $1 na $2
log_create=Utworzono u縴tkownika Webmina $1
log_clone=Powielono u縴tkownika Webmina z $1 na $2
log_delete=Usuni阾o u縴tkownika Webmina $1
log_acl=Zmodyfikowano dost阷 dla $1 do $2
log_cert=Utworzono certyfikat dla u縴tkownika $1
log_modify_g=Zmodyfikowano grup Webmina $1
log_rename_g=Przemianowano grup Webmina $1 na $2
log_create_g=Utworzono grup Webmina $1
log_delete_g=Usuni阾o grup Webmina $1

gedit_ecannot=Nie masz uprawnie do zmiany grup
gedit_title=Zmie grup Webmina
gedit_title2=Utw髍z grup Webmina
gedit_group=Nazwa grupy
gedit_rights=Prawa dost阷u dla grupy Webmina
gedit_modules=Modu硑 cz硂nk體

gdelete_err=Nie uda硂 si usun辨 grupy
gdelete_ecannot=Nie masz uprawnie do usuwania grup
gdelete_euser=Nie mo縠sz usun辨 w砤snej grupy
gdelete_title=Usu grup
gdelete_desc=Czy na pewno chcesz usun辨 grup $1 wraz z&nbsp;jej cz硂nkami $2&nbsp;?
gdelete_ok=Usu grup

gsave_err=Nie uda硂 si zachowa grupy
gsave_ename=Nie podana lub niepoprawna nazwa grupy
gsave_edup=Nazwa grupy jest ju u縴wana

convert_title=Przekszta虫 u縴tkownik體
convert_nogroups=W&nbsp;systemie nie zdefiniowano grup Webmina. Musisz utworzy przynajmniej jedn grup przed konwersj, aby okre秎i uprawnienia dla przekszta砪onych u縴tkownik體.
convert_desc=Za pomoc tego formularza mo縠sz przekszta砪i istniej眂ych u縴tkownik體 Uniksa w&nbsp;u縴tkownik體 Webmina. Uprawnienia ka縟ego z&nbsp;nowych u縴tkownik體 Webmina b阣 okre秎one przez podanie poni縠j grupy.
convert_0=Wszystkich
convert_1=Wybranych
convert_2=Wszystkich opr骳z
convert_3=U縴tkownik體 z&nbsp;grupy
convert_4=U縴tkownik體 z&nbsp;zakresu UID-體
convert_group=Przypisywa nowych u縴tkownik體 do grupy Webmina
convert_ok=Przekszta虫 teraz
convert_err=Nie uda硂 si przekszta砪i u縴tkownik體
convert_eusers=Nie podano u縴tkownik體 do przekszta砪enia
convert_egroup=Grupa Uniksa nie istnieje
convert_emin=Niepoprawny minimalny UID
convert_emax=Niepoprawny maksymalny UID
convert_ewgroup=Nie ma takiej grupy Webmina
convert_skip=Pomijanie $1
convert_exists=$1 ju istnieje
convert_added=Dodawanie $1
convert_msg=Przekszta砪anie u縴tkownik體 Uniksa...
07070100012ec8000081a40000000000000002000000013ac0389600000385000000200000000000000000000000000000001200000003reloc/acl/lang/pt index_title=Utilizador do Webmin
index_user=Utilizador
index_modules=M骴ulos
index_create=Criar novo utilizador do Webmin
index_return=lista de utilizadores

edit_title=Editar Utilizador do Webmin
edit_title2=Criar Utilizador do Webmin
edit_rights=Direitos de acesso do utilizador do Webmin
edit_user=Nome do Utilizador
edit_pass=Palvra de Passe
edit_same=Como no Unix
edit_dont=N鉶 alterar
edit_set=Configurar para
edit_modules=M骴ulos
edit_clone=Clone

save_err=Erro ao guardar utilizador
save_ename='$1' n鉶  um nome de utilizador v醠ido
save_edup=O nome de utilizador '$1' j est a ser usado
save_edeny=voc n鉶 pode negar acesso a si mesmo relativamente ao m骴ulo de utilizadores do Webmin
save_eunix=O utilizador de Unix '$1' n鉶 existe

acl_title=Controlo de Acesso do M骴ulo
acl_title2=Para $1 em $2
acl_options=$1 op珲es de contolo de acesso
acl_config=Pode editar configura珲es do m骴ulo?
   07070100012ec9000081a40000000000000002000000013ac03896000017ad000000200000000000000000000000000000001500000003reloc/acl/lang/ru_RU  index_create=杨玟囹 眍忸泐 镱朦珙忄蝈
index_modules=填潴腓
acl_title=语疣怆屙桢 念耱箫铎  填潴
save_err=硒栳赅 镳 耦躔囗屙梃 镱朦珙忄蝈
edit_pass=相痤朦
acl_config=填驽 戾螯 觐眙桡箴圉棹 祛潴?
index_title=项朦珙忄蝈腓 Webmin
save_edup=褥 镱朦珙忄蝈 '$1' 箧 桉镱朦珞弪
edit_modules=填潴腓
edit_user=褥 镱朦珙忄蝈
edit_set=玉蜞眍忤螯
index_user=项朦珙忄蝈朦
acl_title2=碾 $1  $2
save_edeny=恹 礤 祛驽蝈 襦扈 皴徨 玎镳弪栩 漕耱箫  祛潴膻 镱朦珙忄蝈脲 Webmin
edit_title=绣溧牝桊钼囗桢 项朦珙忄蝈 Webmin
edit_same=亦觐-驽 赅  Unix
save_ename='$1' 礤 怆弪 漕矬耱桁 桁屙屐 镱朦珙忄蝈
edit_clone=孰铐桊钼囹
edit_rights=橡噔 漕耱箫 镱朦珙忄蝈 Webmin
save_eunix=Unix 镱腌钼囹咫 '$1' 礤 耋耱怏弪
index_return=耧桉铌 镱朦珙忄蝈脲
edit_title2=杨玟囗桢 项朦珙忄蝈 Webmin
edit_dont=湾 戾螯
acl_options=$1 镟疣戾蝠 箫疣怆屙 漕耱箫铎
gedit_title2=杨玟囗桢 沭箫稃 Webmin
gdelete_ecannot=锣 礤 疣琊屮屙 箐嚯螯 沭箫稃
index_members=纂屙
acl_mods=填驽 疣玟噔囹 镳噔 漕耱箫 潆
gsave_edup=褥 沭箫稃 箧 玎溴轳蜮钼囗
edit_pam=PAM 囿蝈眚梏桕圉
index_group=灭箫镟
edit_groupmods=( 漕镱腠屙桢  祛潴 桤 沭箫稃)
index_nousers=湾 铒疱溴脲眍 龛 钿眍泐 镱朦珙忄蝈 漕耱箫眍泐 潆 疱溧牝桊钼囗.
index_users=项朦珙忄蝈腓
gedit_title=绣溧牝桊钼囗桢 沭箫稃 Webmin
log_modify_g=如戾礤磬 沭箫镟 Webmin  $1
log_cert=蔓溧 皴痱梏桕囹 潆 镱朦珙忄蝈 $1
edit_risk_low=吾睇 镱朦珙忄蝈朦
cert_title=青镳铖 皴痱梏桕囹
cert_already=马桁囗桢! - 蔓 箧 桉镱朦珞弪 皴痱梏桕囹 $1.
index_gcreate=杨玟囹 眍怏 沭箫矬 镱朦珙忄蝈脲
edit_cert=褥 SSL 皴痱梏桕囹
index_nogroups=湾 铒疱溴脲眍 龛 钿眍 沭箫稃 漕耱箫眍 潆 疱溧牝桊钼囗.
delete_euser=锣 礤 疣琊屮屙 箐嚯螯 溧眄钽 镱朦珙忄蝈
cert_header=项漯钺眍耱 眍忸泐 皴痱梏桕囹
cert_eca=硒栳赅 镳 篑蜞眍怅 噔蝾痂玎鲨 镱 皴痱梏桕囹囔 : $1
acl_err=硒栳赅 镳 耦躔囗屙梃 镳噔 漕耱箫
save_emd5=相疣戾蝠 镟痤 "蜞觊-驽 赅  Unix" 礤 祛驽 猁螯 桉镱朦珙忄 磬 耔耱屐 桉镱朦珞彘 麴钼囗桢 MD5
gsave_ename=悟耋蝰蜮箦 桦 礤忮痦铄 桁 沭箫稃
gdelete_title=愉嚯屙桢 沭箫稃
edit_all=朽琊屮屙 耦 怦艴 噤疱耦
acl_acl=填驽 觐眚痤腚桊钼囹 漕耱箫  祛潴膻?
delete_eself=蔓 礤 祛驽蝈 箐嚯栩 襦扈 皴
gdelete_err=硒栳赅 镳 箐嚯屙梃 沭箫稃
acl_delete=填驽 箐嚯螯 镱朦珙忄蝈脲?
index_cert=青镳铖栩 SSL 皴痱梏桕囹
gedit_modules=填潴腓 麟屙钼 沭箫稃
index_global=秒钺嚯 ACL
acl_usel=蔓狃囗睇 ..
log_modify=如戾礤 镱朦珙忄蝈朦 Webmin $1
save_ecolon=相痤腓 礤 祛泱 耦溴疰囹 耔焘铍 : 
save_epam=PAM 囿蝈眚梏桕圉 礤漕耱箫磬 .. Perl 祛潴朦 <tt>Authen::PAM</tt> 礤 篑蜞眍怆屙 桦 疣犷蜞弪 礤觐痧尻蝽.
edit_ips=暑眚痤朦 漕耱箫 镱 IP
save_euser=锣 礤 疣琊屮屙 疱溧牝桊钼囹 溧眄钽 镱朦珙忄蝈
edit_group=纂屙 沭箫稃
save_emod=蔓 礤 祛驽蝈 疣琊屮栩 漕耱箫  祛潴膻 '$1'
log_delete=愉嚯屙 镱朦珙忄蝈朦 Webmin $1
gedit_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 沭箫稃
cert_msg=泥眄 纛痨 镱玮铍弪 锣 玎镳铖栩 SSL 皴痱梏桕囹 觌桢眚, 觐蝾瘥 狍溴 桉镱朦珙忄螯 潆 镱塍麇龛 漕耱箫  Webmin 皴疴屦 忪羼蝾 锣泐 桁屙 镱朦珙忄蝈  镟痤. 蒡 磬祉钽 徨珙镟耥邋, 眍 镱耜铍 囿蝈眚梏桕圉 狍溴 铖簌羼蜮螯 噔蝾爨蜩麇耜, 锣 狍溴 礤漕耱箫眍 镥疱觌屙桢 磬 漯筱钽 镱朦珙忄蝈.
save_eos=相疣戾蝠 镟痤 "蜞觊-驽 赅  Unix" 礤 镱滗屦骅忄弪 锣 铒屦圉桀眄铋 耔耱屐铋.
edit_none=悟耋蝰蜮箦
cert_issue=蔓矬耜 皴痱梏桕囹
gdelete_desc=蔓 筲屦屙, 黩 躅蜩蝈 箐嚯栩 沭箫矬 $1  澹 麟屙钼 $2 ?
save_eself=锣 蝈牦 IP 噤疱 ($1) 狍溴 玎镳妁屙
edit_risk_high=洋镥-镱朦珙忄蝈朦
edit_ipdesc=暑眚痤朦 漕耱箫 镱 IP 潆 镱朦珙忄蝈 疣犷蜞弪 蜞-驽, 赅  汶钺嚯 觐眚痤朦 漕耱箫 镱 IP  祛潴脲 "暑眙桡箴圉 Webmin". 泥眄 镳钼屦赅 漕耱箫 铖簌羼蜮弪 蝾朦觐 羼腓 镱朦珙忄蝈朦 镳铠咫 汶钺嚯 觐眚痤朦 漕耱箫.
edit_risk_medium=冷扈龛耱疣蝾
edit_ecreate=锣 礤 疣琊屮屙 耦玟噔囹 镱朦珙忄蝈脲
log_rename_g=襄疱桁屙钼囗 沭箫镟 Webmin $1  $2
acl_egroup=锣 礤 疣琊屮屙 疱溧牝桊钼囹 ACL 沭箫
acl_own=翌朦觐 邈 腓黜 祛潴腓
index_none=悟耋蝰蜮箦
acl_rename=填驽 镥疱桁屙钼囹 镱朦珙忄蝈脲?
acl_all=埋 祛潴腓
edit_euser=锣 礤 疣琊屮屙 疱溧牝桊钼囹 溧眄钽 镱朦珙忄蝈
edit_notabs=朽玟咫螯 祛潴腓 镱 赅蝈泐痂?
acl_groups=填驽 疱溧牝桊钼囹 沭箫稃?
acl_lang=填驽 戾螯 琨?
acl_emod=锣 礤 疣琊屮屙 疱溧牝桊钼囹 ACL 潆 溧眄钽 祛潴
cert_email=冷疱 e-mail
log_rename=襄疱桁屙钼囗 镱朦珙忄蝈朦 Webmin $1  $2
gedit_group=褥 沭箫稃
log_delete_g=愉嚯屙 沭箫镟 Webmin $1
delete_ecannot=锣 礤 疣琊屮屙 箐嚯螯 镱朦珙忄蝈脲
log_create_g=杨玟囗 沭箫镟 Webmin $1
cert_ekey=皖恹 SSL 觌 礤 猁 镱滹桉囗 锣 狃囿珏痤 - 忸珈铈眍 狃囿珏 礤 镱滗屦骅忄弪 SSL 皴痱梏桕囹 觌桢眚.
index_rcreate=杨玟囹 眍忸泐 镱朦珙忄蝈  玎溧眄 痂耜铎
edit_risk=羽钼屙 痂耜钼
cert_cn=锣 桁
save_egroup=湾 恹狃囗 沭箫稃 潆 镱塍麇龛 耧桉赅 祛潴脲
acl_users=项朦珙忄蝈腓 漕耱箫睇 潆 疱溧牝桊钼囗
acl_create=填驽 耦玟噔囹 眍恹 镱朦珙忄蝈脲?
edit_skill=羽钼屙 铒
acl_others=填驽 忤溴螯 礤漕耱箫睇 祛潴腓?
edit_allow=朽琊屮屙 蝾朦觐  镥疱麒耠屙睇 噤疱耦
save_ecreate=锣 礤 疣琊屮屙 耦玟噔囹 镱朦珙忄蝈脲
edit_lang=哏
cert_ok=锣 皴痱梏桕囹 潆 $1 猁 篑镥 胥屙屦桊钼囗  篑蜞眍怆屙 磬 锣 忮 狃囿珏.
acl_chcert=填驽 戾螯 桁 SSL 皴痱梏桕囹?
index_certmsg=SSL 皴痱梏桕囹 镱玮铍栩 锣 徨珙镟耥 疱汨耱痂痤忄螯 磬 Webmin 皴疴屦 徨 桉镱朦珙忄龛 桁屙 镱朦珙忄蝈  镟痤.
cert_c=暑 耱疣睇
cert_sp=仳囹
log_acl=吾眍怆屙 漕耱箫 潆 $1  $2
cert_ou=悟溴
log_clone= 孰铐桊钼囗 镱朦珙忄蝈朦 Webmin $1  $2
gdelete_ok=愉嚯栩 沭箫矬
acl_euser=锣 礤 疣琊屮屙 疱溧牝桊钼囹 ACL 潆 溧眄钽 镱朦珙忄蝈
acl_sel=蔓狃囗睇 祛潴腓 ..
log_create=杨玟囗 镱朦珙忄蝈朦 Webmin $1
edit_deny=青镳妁屙  镥疱麒耠屙睇 噤疱耦
cert_key=朽珈屦 觌
index_modgroups=填潴腓 沭箫稃 $1
index_groups=灭箫稃
delete_err=硒栳赅 镳 箐嚯屙梃 镱朦珙忄蝈
cert_o=勿汔龛玎鲨
index_edit=绣溧牝桊钼囗桢 ACL 祛潴 :
gedit_rights=橡噔 漕耱箫 沭箫稃
gdelete_euser=蔓 礤 祛驽蝈 箐嚯栩 锣 耦狁蜮屙眢 沭箫矬
acl_cert=填驽 玎镳帏桠囹 皴痱梏桕囹?
acl_uall=埋 镱朦珙忄蝈腓
gsave_err=硒栳赅 镳 耦躔囗屙梃 沭箫稃
   07070100012eca000081a40000000000000002000000013ac03896000017b9000000200000000000000000000000000000001500000003reloc/acl/lang/ru_SU  index_title=鹣特谙琢耘躺 Webmin
index_user=鹣特谙琢耘特
index_modules=硐恼躺
index_create=笙谀猎 蜗紫窍 邢特谙琢耘萄
index_return=有捎纤 邢特谙琢耘膛

edit_title=蚺牧嗽梢献廖膳 鹣特谙琢耘萄 Webmin
edit_title2=笙谀廖膳 鹣特谙琢耘萄 Webmin
edit_rights=鹨磷 南釉招 邢特谙琢耘萄 Webmin
edit_user=橥 邢特谙琢耘萄
edit_pass=鹆蚁特
edit_same=袅讼-峙 肆  Unix
edit_dont=钆 团窝载
edit_set=跤粤蜗咨载
edit_modules=硐恼躺
edit_clone=胩衔梢献猎

save_err=镗陕肆 幸 酉纫廖盼缮 邢特谙琢耘萄
save_ename='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 邢特谙琢耘萄
save_edup=橥 邢特谙琢耘萄 '$1' 罩 捎邢特谡旁友
save_edeny=踪 闻 拖峙耘 恿蜕 优屡 诹幸旁稍 南釉招  拖恼汤 邢特谙琢耘膛 Webmin
save_eunix=Unix 邢腾献猎盘 '$1' 闻 诱菖釉渍旁

acl_title=跣伊滋盼膳 湎釉招贤  硐恼萄
acl_title2=涮 $1  $2
acl_options=$1 辛伊团砸 招伊滋盼裳 南釉招贤
acl_config=硐峙 团窝载 讼纹汕找撩衫 拖恼萄?
acl_acl=硐峙 讼卧蚁烫梢献猎 南釉招  拖恼汤?
acl_all=饔 拖恼躺
acl_cert=硐峙 诹幸鳞勺猎 优以善伤猎?
acl_chcert=硐峙 团窝载 赏 SSL 优以善伤猎?
acl_create=硐峙 酉谀磷猎 蜗踪 邢特谙琢耘膛?
acl_delete=硐峙 漳撂言 邢特谙琢耘膛?
acl_egroup=髁 闻 伊谝袍盼 遗牧嗽梢献猎 ACL 且招
acl_emod=髁 闻 伊谝袍盼 遗牧嗽梢献猎 ACL 奶 牧挝锨 拖恼萄
acl_err=镗陕肆 幸 酉纫廖盼缮 幸磷 南釉招
acl_euser=髁 闻 伊谝袍盼 遗牧嗽梢献猎 ACL 奶 牧挝锨 邢特谙琢耘萄
acl_groups=硐峙 遗牧嗽梢献猎 且招匈?
acl_lang=硐峙 团窝载 掩偎?
acl_mods=硐峙 伊谀磷猎 幸磷 南釉招 奶
acl_others=硐峙 咨呐载 闻南釉招钨 拖恼躺?
acl_own=粝特讼 徘 躺尬倥 拖恼躺
acl_rename=硐峙 信遗赏盼献僮猎 邢特谙琢耘膛?
acl_sel=髻乱廖钨 拖恼躺 ..
acl_uall=饔 邢特谙琢耘躺
acl_usel=髻乱廖钨 ..
acl_users=鹣特谙琢耘躺 南釉招钨 奶 遗牧嗽梢献廖裳

cert_already=魑赏廖膳! - 髻 罩 捎邢特谡旁 优以善伤猎 $1.
cert_c=胂 釉伊钨
cert_cn=髁叟 赏
cert_eca=镗陕肆 幸 沼粤蜗姿 磷韵疑诹蒙 邢 优以善伤猎镣 : $1
cert_ekey=钕踪 SSL 颂擂 闻 沦 邢男捎廖 髁凵 乱琳谂蚁 - 紫谕现蜗 乱琳谂 闻 邢哪乓稚琢旁 SSL 优以善伤猎 颂膳卧.
cert_email=崮遗 e-mail
cert_header=鹣囊下蜗釉 蜗紫窍 优以善伤猎
cert_issue=髻姓铀 优以善伤猎
cert_key=蛄谕乓 颂擂
cert_msg=淞挝裂 葡彝 邢谧咸雅 髁 诹幸嫌稍 SSL 优以善伤猎 颂膳卧, 讼韵屹 抡呐 捎邢特谙琢载友 奶 邢陶夼紊 南釉招  Webmin 优易乓 淄庞韵 髁叟窍 赏盼 邢特谙琢耘萄  辛蚁萄.  瘟臀锨 屡谙辛游排, 蜗 邢铀咸厮 琳耘卧善伤撩裳 抡呐 嫌蛰庞宰萄载友 磷韵土陨夼铀, 髁 抡呐 闻南釉招蜗 信遗颂擂盼膳 瘟 囊涨锨 邢特谙琢耘萄.
cert_o=镆橇紊诹蒙
cert_ok=髁 优以善伤猎 奶 $1 沦 沼信畚 忧盼乓梢献廖  沼粤蜗滋盼 瘟 髁 着 乱琳谂.
cert_ou=镌呐
cert_sp=猎
cert_title=幸嫌 优以善伤猎

delete_ecannot=髁 闻 伊谝袍盼 漳撂言 邢特谙琢耘膛
delete_err=镗陕肆 幸 漳撂盼缮 邢特谙琢耘萄
delete_eself=髻 闻 拖峙耘 漳撂稍 恿蜕 优卵
delete_euser=髁 闻 伊谝袍盼 漳撂言 牧挝锨 邢特谙琢耘萄

edit_all=蛄谝袍盼 酉 子湃 聊遗酉
edit_allow=蛄谝袍盼 韵特讼  信遗奚犹盼钨 聊遗酉
edit_cert=橥 SSL 优以善伤猎
edit_deny=幸泡盼  信遗奚犹盼钨 聊遗酉
edit_ecreate=髁 闻 伊谝袍盼 酉谀磷猎 邢特谙琢耘膛
edit_euser=髁 闻 伊谝袍盼 遗牧嗽梢献猎 牧挝锨 邢特谙琢耘萄
edit_group=盼 且招匈
edit_groupmods=( 南邢涛盼膳  拖恼萄 哨 且招匈)
edit_ipdesc=胂卧蚁特 南釉招 邢 IP 奶 邢特谙琢耘萄 伊孪粤旁 粤-峙, 肆  翘下撂匚偈 讼卧蚁特 南釉招 邢 IP  拖恼膛 "胂纹汕找撩裳 Webmin". 淞挝裂 幸献乓肆 南釉招 嫌蛰庞宰萄旁友 韵特讼 庞躺 邢特谙琢耘特 幸羡盘 翘下撂匚偈 讼卧蚁特 南釉招.
edit_ips=胂卧蚁特 南釉招 邢 IP
edit_lang=褛偎
edit_none=镌诱杂宰张
edit_notabs=蛄谀盘言 拖恼躺 邢 肆耘窍疑淹?
edit_pam=PAM 琳耘卧善伤撩裳
edit_risk=跻献盼 疑铀献
edit_risk_high=笳信-邢特谙琢耘特
edit_risk_low=锫俎钨 邢特谙琢耘特
edit_risk_medium=崮蜕紊釉伊韵
edit_skill=跻献盼 闲僭

gdelete_desc=髻 兆乓盼, 拊 认陨耘 漳撂稍 且招姓 $1  牛 尢盼献 $2 ?
gdelete_ecannot=髁 闻 伊谝袍盼 漳撂言 且招匈
gdelete_err=镗陕肆 幸 漳撂盼缮 且招匈
gdelete_euser=髻 闻 拖峙耘 漳撂稍 髁壅 酉掠宰盼握 且招姓
gdelete_ok=跄撂稍 且招姓
gdelete_title=跄撂盼膳 且招匈

gedit_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 且招匈
gedit_group=橥 且招匈
gedit_modules=硐恼躺 尢盼献 且招匈
gedit_rights=鹨磷 南釉招 且招匈
gedit_title2=笙谀廖膳 且招匈 Webmin
gedit_title=蚺牧嗽梢献廖膳 且招匈 Webmin

gsave_edup=橥 且招匈 罩 诹呐视宰献廖
gsave_ename=镌诱杂宰张 商 闻着椅吓 赏 且招匈
gsave_err=镗陕肆 幸 酉纫廖盼缮 且招匈

index_cert=幸嫌稍 SSL 优以善伤猎
index_certmsg=SSL 优以善伤猎 邢谧咸稍 髁 屡谙辛游 遗巧釉疑蚁琢载友 瘟 Webmin 优易乓 屡 捎邢特谙琢紊 赏盼 邢特谙琢耘萄  辛蚁萄.
index_edit=蚺牧嗽梢献廖膳 ACL 拖恼萄 :
index_gcreate=笙谀猎 蜗渍 且招姓 邢特谙琢耘膛
index_global=缣下撂匚倥 ACL
index_group=缫招辛
index_groups=缫招匈
index_members=盼
index_modgroups=硐恼躺 且招匈 $1
index_nogroups=钆 闲遗呐膛蜗 紊 夏蜗 且招匈 南釉招蜗 奶 遗牧嗽梢献廖裳.
index_none=镌诱杂宰张
index_nousers=钆 闲遗呐膛蜗 紊 夏蜗窍 邢特谙琢耘萄 南釉招蜗窍 奶 遗牧嗽梢献廖裳.
index_rcreate=笙谀猎 蜗紫窍 邢特谙琢耘萄  诹牧挝偻 疑铀贤
index_users=鹣特谙琢耘躺

log_acl=锫蜗滋盼 南釉招 奶 $1  $2
log_cert=髻牧 优以善伤猎 奶 邢特谙琢耘萄 $1
log_clone= 胩衔梢献廖 邢特谙琢耘特 Webmin $1  $2
log_create=笙谀廖 邢特谙琢耘特 Webmin $1
log_create_g=笙谀廖 且招辛 Webmin $1
log_delete=跄撂盼 邢特谙琢耘特 Webmin $1
log_delete_g=跄撂盼 且招辛 Webmin $1
log_modify=橼团闻 邢特谙琢耘特 Webmin $1
log_modify_g=橼团闻瘟 且招辛 Webmin  $1
log_rename=鹋遗赏盼献廖 邢特谙琢耘特 Webmin $1  $2
log_rename_g=鹋遗赏盼献廖 且招辛 Webmin $1  $2

save_ecolon=鹆蚁躺 闻 拖钦 酉呐抑猎 由妥咸 : 
save_ecreate=髁 闻 伊谝袍盼 酉谀磷猎 邢特谙琢耘膛
save_egroup=钆 踪乱廖 且招匈 奶 邢陶夼紊 有捎肆 拖恼膛
save_emd5=鹆伊团砸 辛蚁萄 "粤耸-峙 肆  Unix" 闻 拖峙 沦载 捎邢特谙琢 瘟 由釉磐 捎邢特谡垒攀 凵埔献廖膳 MD5
save_emod=髻 闻 拖峙耘 伊谝袍稍 南釉招  拖恼汤 '$1'
save_eos=鹆伊团砸 辛蚁萄 "粤耸-峙 肆  Unix" 闻 邢哪乓稚琢旁友 髁叟 闲乓撩上挝鲜 由釉磐鲜.
save_epam=PAM 琳耘卧善伤撩裳 闻南釉招瘟 .. Perl 拖恼特 <tt>Authen::PAM</tt> 闻 沼粤蜗滋盼 商 伊孪粤旁 闻讼乙潘晕.
save_eself=髁 耘苏萆 IP 聊遗 ($1) 抡呐 诹幸泡盼
save_euser=髁 闻 伊谝袍盼 遗牧嗽梢献猎 牧挝锨 邢特谙琢耘萄
   07070100012ecb000081a40000000000000002000000013ac0389600001713000000200000000000000000000000000000001200000003reloc/acl/lang/sv index_title=Webmin-anv鋘dare
index_user=Anv鋘dare
index_modules=Moduler
index_create=Skapa ny Webmin-anv鋘dare
index_rcreate=Skapa ny riskniv-anv鋘dare
index_cert=Skapa en SSL-certifikatbeg鋜an
index_certmsg=Tryck p denna knapp f鰎 att skicka efter ett SSL-certifikat som g鰎 det m鰆ligt f鰎 dig att logga in p Webmin s鋕ert, utan att beh鰒a anv鋘da anv鋘darnamn och l鰏enord.
index_return=anv鋘darlista
index_none=Ingen
index_edit=膎dra ACL-modul:
index_global=Global ACL
index_users=Webmin-anv鋘dare
index_groups=Webmin-grupper
index_group=Grupp
index_nousers=Det finns inga 鋘dringsbara Webmin-anv鋘dare.
index_nogroups=Det finns inga 鋘dringsbara Webmin-grupper.
index_gcreate=Skapa en ny Webmin-grupp
index_members=Medlemmar
index_modgroups=Moduler fr錸 grupp $1

edit_title=膎dra Webmin-anv鋘dare
edit_title2=Skapa ny Webmin-anv鋘dare
edit_rights=舤komstr鋞tigheter f鰎 Webmin-anv鋘dare
edit_user=Anv鋘darnamn
edit_group=Medlem i grupp
edit_pass=L鰏enord
edit_same=Samma som i Unix
edit_pam=PAM-autentisering
edit_dont=膎dra inte
edit_set=S鋞t till
edit_modules=Moduler
edit_clone=Klona
edit_lang=Spr錵
edit_notabs=Kategorisera moduler?
edit_cert=SSL-certifikatnamn
edit_none=Inget
edit_ips=IP-styrd 錿komstkontroll
edit_all=Till錿 fr錸 alla adresser
edit_allow=Till錿 endast fr錸 angivna adresser
edit_deny=Till錿 ej fr錸 angivna adresser
edit_ipdesc=Anv鋘darbaserad IP-styrd 錿komstkontroll fungerar p samma s鋞t som den globala IP-styrda 錿komstkontrollen i konfigurationsmodulen f鰎 Webmin. Endast ifall anv鋘daren har passerat den globala kontrollen kommer reglerna h鋜 att kontrolleras. 
edit_skill=Skicklighetsniv
edit_risk=Riskniv
edit_risk_high=Superanv鋘dare
edit_risk_medium=Administrat鰎
edit_risk_low=Vanlig anv鋘dare
edit_groupmods=(ut鰒er moduler fr錸 gruppen)
edit_euser=Du f錼 inte 鋘dra n錱ot f鰎 denna anv鋘dare
edit_ecreate=Du f錼 inte skapa anv鋘dare

save_err=Det gick inte att spara anv鋘dare
save_ename='$1' 鋜 inget giltigt anv鋘darnamn
save_edup=Det finns redan en anv鋘dare '$1'
save_edeny=Du kan inte ta bort din egen 錿komstr鋞tighet till Webmin-anv鋘darmodulen
save_eos=Alternativet Samma som i Unix st鰀s inte av ditt operativsystem
save_emd5=Alternativet Samma som i Unix kan inte anv鋘das p system med MD5-kryptering
save_eunix=Unix-anv鋘daren '$1' finns inte
save_emod=Du f錼 inte ge 錿komstr鋞tighet till '$1'-modulen
save_ecreate=Du f錼 inte skapa anv鋘dare
save_euser=Du f錼 inte 鋘dra n錱ot f鰎 denna anv鋘dare
save_ecolon=L鰏enord f鰎 ej inneh錶la tecknet :
save_eself=Din nuvarande IP-adress ($1) skulle nekas 錿komst
save_epam=PAM-autentiseringen finns inte tillg鋘glig eftersom Perl-modulen <tt>Authen::PAM</tt> inte har installerats eller inte fungerar ordentligt.
save_egroup=Du f錼 inte l鋑ga till anv鋘dare till denna grupp.

delete_err=Det gick inte att radera anv鋘dare
delete_eself=Du f錼 inte radera dig sj鋖v
delete_ecannot=Du f錼 inte radera anv鋘dare
delete_euser=Du f錼 inte radera denna anv鋘dare

cert_title=Certifikatbeg鋜an
cert_issue=Skapa certifikat
cert_header=Uppgifter om nytt certifikat
cert_msg=H鋜 kan du skapa en certifikatbeg鋜an till din SSL-klient. Certifikatet anv鋘ds sedan f鰎 att du ska kunna komma 錿 Webmin utan att anv鋘da anv鋘darnamn och l鰏enord. Detta 鋜 ett s鋕rare s鋞t, men eftersom autenticeringen sker automatiskt kommer du inte att kunna byta till en annnan anv鋘dare medan du anv鋘der certifikatet.
cert_cn=Ditt namn
cert_email=E-postadress
cert_ou=Avdelning
cert_o=Organisation
cert_sp=Land
cert_c=Landskod
cert_key=Nyckelstorlek
cert_ok=Ditt certifikat f鰎 $1 har genererats och laddats in i din webbrowser.
cert_ekey=Din browser genererade ingen SSL-nyckel - m鰆ligen st鰀jer den inte SSL-certifikat.
cert_eca=Det gick inte att kontakta en p錶itlig tredjepart: $1
cert_already=Varning: du anv鋘der redan certifikat $1.

acl_title=舤komstkontroll f鰎 moduler
acl_title2=F鰎 $1 i $2
acl_options=舤komstkontrollinst鋖lningar f鰎 $1
acl_config=膎dra modulkonfigurering?
acl_uall=Alla anv鋘dare
acl_usel=Angivna ...
acl_users=Anv鋘dare som f錼 鋘dras
acl_mods=Kunna ge 錿komstr鋞tigheter till
acl_all=Alla moduler
acl_own=Bara egna moduler
acl_sel=Valda moduler ...
acl_create=Kunna skapa nya anv鋘dare?
acl_delete=Kunna radera anv鋘dare?
acl_rename=Kunna byta namn p anv鋘dare?
acl_acl=Kunna 鋘dra 錿komstr鋞tigheter f鰎 moduler?
acl_lang=Kunna 鋘dra spr錵?
acl_chcert=Kunna 鋘dra SSL-certifikatnamn?
acl_euser=Du f錼 inte 鋘dra ACL:en f鰎 denna anv鋘dare
acl_egroup=Du f錼 inte 鋘dra grupp-ACL:er
acl_emod=Du f錼 inte 鋘dra ACL:en f鰎 denna modul
acl_others=Kunna se moduler som inte g錼 att komma 錿?
acl_cert=Kunna beg鋜a certifikat?
acl_err=Det gick inte att spara 錿komstr鋞tigheter
acl_groups=Kunna 鋘dra grupper?
acl_gassign=Kunna l鋑ga anv鋘dare till grupper
acl_gall=Alla grupper
acl_gsel=Angivna ...
acl_gnone=Inga

log_modify=膎drade Webmin-anv鋘dare $1
log_rename=Bytte namn p Webmin-anv鋘dare $1 till $2
log_create=Skapade Webmin-anv鋘dare $1
log_clone=Klonade Webmin-anv鋘dare $1 till $2
log_delete=Tog bort Webmin-anv鋘dare $1
log_acl=膎drade 錿komst f鰎 $1 i $2
log_cert=Utf鋜dade certifikat f鰎 anv鋘dare $1
log_modify_g=膎drade Webmin-grupp $1
log_rename_g=Bytte namn p Webmin-grupp $1 till $2
log_create_g=Skapade Webmin-grupp $1
log_delete_g=Tog bort Webmin-grupp $1

gedit_ecannot=Du f錼 inte 鋘dra n錱ra grupper
gedit_title=膎dra Webmin-grupp
gedit_title2=Skapa Webmin-grupp
gedit_group=Gruppnamn
gedit_rights=舤komstr鋞tigheter f鰎 Webmin-grupp
gedit_modules=Medlemsmoduler

gdelete_err=Det gick inte att ta bort gruppen
gdelete_ecannot=Du f錼 inte ta bort grupper
gdelete_euser=Du f錼 inte ta bort din egen grupp
gdelete_title=Ta bort grupp
gdelete_desc=Vill du verkligen ta bort gruppen $1 och dess medlemmar, anv鋘darna $2 ?
gdelete_ok=Ta bort grupp

gsave_err=Det gick inte att spara gruppen
gsave_ename=Gruppnamn saknas eller 鋜 ogiltigt
gsave_edup=Gruppnamnet anv鋘ds redan

 07070100012ecc000081a40000000000000002000000013ac03896000010ef000000200000000000000000000000000000001200000003reloc/acl/lang/tr index_title=Webmin Kullan齝齦ar
index_user=Kullan齝
index_modules=Mod黮ler
index_create=Yeni bir Webmin kullan齝齭 olu⺶ur
index_cert=SSL sertifikas gereklidir
index_certmsg=Bir kullan齝 ad ve 㱮freye ihtiya olmadan Webmin'e g黺enli olarak girebilmek i鏸n gerekli olan SSL sertifikas齨 i鏸n bu butonu t齥lay齨齴
index_return=kullan齝 listesi
index_none=Hi鏱iri

edit_title=Webmin Kullan齝齭齨齨 謟elliklerini De餴⺶ir
edit_title2=Webmin Kullan齝齭 Olu⺶ur
edit_rights=Webmin yeni kullan齝 izinleri 
edit_user=Kullan齝 Ad
edit_pass=Parola
edit_same=Unix ile ayn
edit_dont=De餴⺶irilmedi
edit_set=Yeni Parola
edit_modules=Mod黮ler
edit_clone=Ayn齭齨 Olu⺶ur
edit_lang=Dil
edit_notabs=Mod黮ler S齨齠land齬齦s齨?
edit_cert=SSL sertifika ismi
edit_none=Hi鏱iri
edit_ips=IP Giri Kontrol
edit_all=B黷黱 adreslerden kabul et
edit_allow=Sadece listeli adreslerden kabul et
edit_deny=Listeli adreslere izin verme
edit_ipdesc=Kullan齝 IP giri kontrol Webmin yap齦and齬ma mod黮黱deki genel IP giri kontrol黱e benzer yolla 鏰l齬.Kullan齝 genel kontrolleri ge鏴rse bir defa daha kontrol edilmi olacakt齬. 
edit_euser=Bu kullan齝齨齨 鰖elliklerini de餴⺶irmenize izin verilmemi⺶ir 
edit_ecreate=Kullan齝 olu⺶urman齴a izin verilmemi⺶ir

save_err=Kullan齝 kay齮lar kaydedilirken hata olu⺶u.
save_ename='$1' do餽u bir kullan齝 ad de餴ldir. (valid=do餽u)
save_edup='$1' kullan齝 ad sistemde vard齬.
save_edeny=Webmin Kullan齝齦ar mod黮黱 kendinizin de餴⺶irmenize izin verilmemi⺶ir.
save_eos=Unix 辤fresi ile Ayn se鏴ne餴 ietim sisteminiz taraf齨dan desteklenmemektedir.
save_emd5=Unix 辤fresi ile Ayn se鏴ne餴 sisteminizde MD5 㱮freleme y鰊temi ile birlikte kullan齦amaz.
save_eunix='$1' Unix kullan齝齭 sistemde yoktur.
save_emod='$1' mod黮黱黱 izinlerini de餴⺶iremezsiniz.
save_ecreate=Kullan齝 olu⺶urman齴 izin verilmemi⺶ir.
save_euser=Bu kullan齝齨齨 鰖elliklerini de餴⺶irmenize izin verilmemi⺶ir.
save_ecolon=Parola : karakterini i鏴rmemelidir.
save_eself=Mevcut IP adresinize ($1) istenirse izin verilmeyebilir.

delete_err=Kullan齝齨齨 silinmesinde hata olu⺶u
delete_eself=Kendi kullan齝齨齴 silemezsiniz
delete_ecannot=Kullan齝 silmenize izin verilmemi⺶ir
delete_euser=Bu kullan齝齳 silmenize izin verilmemi⺶ir

cert_title=Gerekli Sertifika
cert_issue=Sertifika Ba
cert_header=Yeni Sertifika Detaylar
cert_mesg=Bu form kullan齝 ad齨齴 ve 㱮frenize izinler verilmek i鏸n gelecekte kullan齦mak 鼁ere bir istemci sertifikas齨a ihtiya duymaktad齬.Bu 鏾k gizlidir, 琰nk onaylama otomatiktir. Siz sertifika kullan齦齬ken bu kullan齝齳 ka餫t齪 farkl bir kullan齝 olarak giremezsiniz. 
cert_cn=輘miniz
cert_email=E-posta adresiniz
cert_ou=B鰈黰黱鼁
cert_o=Kurum ve 辤rket 輘mi
cert_sp=躭ke
cert_c=Bulundu饀nuz 㧐hrin plaka numaras
cert_key=Anahtar Boyutu
cert_ok=$1 i鏸n gerekli olan sertifikan齴 bar齳la olu⺶uruldu ve web taray齝齨齴a kuruldu
cert_ekey=Yeni SSL anahtar taray齝齨齴a yerle⺶irilemedi.Taray齝齨齴 SSL istemci sertifikalar齨 desteklemiyor olabilir.
cert_eca=Sertifikan齨 onaylama kurulumunda hata olu⺶u
cert_already=Uyar- $1 sertifikas齨 her zaman kullanmaktas齨齴

acl_title=Mod黮 輟in Kontrol
acl_title2=$2'de $1 i鏸n
acl_options=$1 輟in Kontrol Se鏴nekleri
acl_config=Mod黮 ayarlar齨 de餴⺶irebilsin
acl_users=謟ellikleri de餴⺶irilebilmi olan kullan齝齦ar
acl_mods=輟in verilebilir mi?
acl_all=B黷黱 mod黮ler
acl_own=Sadece kendi mod黮leriniz
acl_sel=Se鏸len mod黮ler ..
acl_create=Yeni kullan齝齦ar olu⺶urabilsin
acl_delete=Kullan齝齦ar silebilsin
acl_rename=Kullan齝齦ar yeniden isimlendirebilsin
acl_euser=Bu kullan齝 i鏸n giri izinlerini de餴⺶iremezsiniz
acl_acl=Giri kontrol mod黮黱 de餴⺶irebilsin mi?
acl_lang=Dili de餴⺶irebilsin mi?
acl_chcert=SSL sertifikas齨齨 ismini de餴⺶irebilsin mi?
acl_emod=Bu mod黮 i鏸n giri izinlerini de餴⺶iremezsiniz
acl_others=輟in verilmeyen mod黮ler g鰎黱t黮ensin
acl_cert=Sertifika isteyebilsin?
acl_err=Giri kontrollerinin kaydedilmesinde hata olu⺶u.

log_modify=Webmin kullan齝齭 $1 de餴⺶irildi.
log_rename=Webmin kullan齝齭 $1, $2 olarak yeniden adland齬齦d.
log_create=Webmin kullan齝齭 $1 olu⺶uruldu.
log_clone=Webmin kullan齝齭 $1, $2'ye kopyaland.
log_delete=Webmin kullan齝齭 $1 silindi.
log_acl=$2'de $1 i鏸n girier g黱cellendi.
log_cert=$1 kullan齝齭 i鏸n sertifika yay齨land.

 07070100012ecd000081a40000000000000002000000013ac0389600000c27000000200000000000000000000000000000001500000003reloc/acl/lang/zh_CN  index_title=Webmin 用户管理
index_user=用户
index_modules=模块
index_create=创建新用户
index_rcreate=创建新的冒险级别用户
index_cert=需要 SSL 验证
index_certmsg=点击此按钮获得一个SSL验证, 您将不需要用户名和口令来登录 Webmin。
index_return=用户列表
index_none=无
index_edit=编辑 ACL 模块:
index_global=全局 ACL

edit_title=编辑 Webmin 用户
edit_title2=创建 Webmin 用户
edit_rights=Webmin 用户设置
edit_user=用户名
edit_pass=口令
edit_same=与用户系统口令相同
edit_pam=PAM 验证 
edit_dont=口令不变
edit_set=设置为
edit_modules=可用模块
edit_clone=复制
edit_lang=使用语言
edit_notabs=模块分类?
edit_cert=SSL 验证名称
edit_none=无
edit_ips=IP 访问控制
edit_all=允许从任何地址访问
edit_allow=只允许从列出了地址访问
edit_deny=禁止从列出的地址访问
edit_ipdesc=用户的 IP 访问控制使用与Webmin全局IP访问控制相同的配置. 只有当一个用户通过全局控制时，这里才能通过。
edit_skill=熟练程度
edit_risk=冒险级别
edit_risk_high=超级用户
edit_risk_medium=管理用户
edit_risk_low=普通用户
edit_euser=没有编辑这个用户的权限
edit_ecreate=没有创建用户的权限

save_err=保存用户失败
save_ename=错误的用户名 '$1'
save_edup=用户名 '$1' 已经存在
save_edeny=不能取消自己对 Webmin 用户模块的控制权
save_eos=使用系统口令选项在此系统中不能支持。
save_emd5=您的系统使用了MD5加密格式的口令，因此不能设置与用户系统口令相同的Webmin口令。
save_eunix=Unix 用户 '$1' 不存在
save_emod=不能为模块module '$1' 赋予许可
save_ecreate=没有建立用户的权限
save_euser=没有编辑用户的权限
save_ecolon=口令不能包含 : 字符
save_eself=你目前使用的 IP 地址 ($1) 被拒绝。
save_epam=当<tt>Authen::PAM</tt> Perl 模块没有安装或不能正常工作时PAM 验证无效

delete_err=删除用户失败
delete_eself=不能删除自己
delete_ecannot=没有删除用户的权限
delete_euser=没有删除这个用户的权限

cert_title=需要验证
cert_issue=发放验证
cert_header=新验证详细信息
cert_msg=此表单用来申请一个 SSL 客户端的验证，在以后您使用webmin时，此验证将被用来确认您的身份，而不需要您输入用户名和口令. 此方法更为安全，但是，因为验证过程是自动的，您将不能切换到别的用户。
cert_cn=您的姓名
cert_email=Email 地址
cert_ou=部门
cert_o=组织
cert_sp=省市
cert_c=国家代码
cert_key=密钥长度
cert_ok=用于 $1 的验证已经成功地被生成并且安装到了您的浏览器中。
cert_ekey=新的 SSL 密钥没有被浏览器提交，您的浏览器可能不支持 SSL。
cert_eca=设置验证失败 : $1
cert_already=警告 - 您已经使用验证 $1.

acl_title=访问控制模块
acl_title2=$2 中的 $1
acl_options=$1 访问控制选项
acl_config=是否可以编辑模块配置?
acl_uall=所有用户
acl_usel=选择 ..
acl_users=可被编辑的用户
acl_mods=可以授权给
acl_all=所有模块
acl_own=只有自己的模块
acl_sel=已被选中的模块 ..
acl_create=是否可以建立新用户?
acl_delete=是否可以删除用户?
acl_rename=是否可以重命名用户?
acl_acl=能否编辑访问控制模块?
acl_lang=是否可以改变语言?
acl_chcert=是否可以改变 SSL 验证名称?
acl_euser=没有编辑这个用户的ACL的权限
acl_emod=没有编辑这个模块的ACL的权限
acl_others=是否可以看到不能访问的模块?
acl_cert=是否需要验证?
acl_err=保存访问控制失败

log_modify=修改 Webmin 用户 $1
log_rename=改名 Webmin 用户从 $1 到 $2
log_create=创建 Webmin 用户 $1
log_clone=复制 Webmin 用户 $1 到 $2
log_delete=删除 Webmin 用户 $1
log_acl=更新在 $2 中的访问 $1
log_cert=发放验证给用户 $1

 07070100012ece000081a40000000000000002000000013ac038960000090d000000200000000000000000000000000000001a00000003reloc/acl/lang/zh_TW.Big5 index_title=Webmin ㄏノ
index_user=ㄏノ
index_modules=家舱
index_create=ミ穝 Webmin ㄏノ
index_cert=璶― SSL 粄靡
index_certmsg=硂秙璶―ㄏノ SSL 粄靡. 硂ㄏ眤祅 Webmin いぃ惠璶块ㄏノ嘿籔盞絏.
index_return=ㄏノ

edit_title=絪胯 Webmin ㄏノ
edit_title2=ミ Webmin ㄏノ
edit_rights=Webmin ㄏノ舦
edit_user=ㄏノ嘿
edit_pass=盞絏
edit_same=籔 Unix ╰参
edit_dont=ぃ璶э跑
edit_set=砞﹚Θ
edit_modules=家舱
edit_clone=狡籹
edit_lang=粂ē
edit_notabs=琌ㄏノ家舱だ摸?
edit_cert=SSL 粄靡嘿
edit_none=礚
edit_euser=眤ぃ砆す砛絪胯硂ㄏノ
edit_ecreate=眤ぃ砆す砛ミㄏノ

save_err=纗ㄏノア毖
save_ename='$1' ぃ琌Τㄏノ嘿
save_edup=ㄏノ嘿 '$1' 竒砆ㄏノ
save_edeny=眤ぃ┶荡眤 Webmin ㄏノ家舱
save_eos=籔 Unix ╰参盞絏ぃ砆眤穨╰参や穿.
save_emd5=籔 Unix ╰参盞絏ぃノㄏノ MD5 絪絏╰参.
save_eunix=Unix ㄏノ '$1' ぃ
save_emod=眤ぃ砆甭舦家舱 '$1'
save_ecreate=眤ぃ砆す砛ミ穝ㄏノ
save_euser=眤ぃ砆す砛絪胯硂ㄏノ
save_ecolon=盞絏ぃ ':' じ

delete_err=埃ㄏノア毖
delete_eself=眤ぃ埃眤
delete_ecannot=眤ぃ砆す砛埃ㄏノ
delete_euser=眤ぃ砆す砛埃硂ㄏノ

cert_title=璶―粄靡
cert_issue=祇粄靡
cert_header=穝粄靡冈灿戈
cert_msg=硂虫す砛眤璶― SSL め狠粄靡, 眤盢ㄏノ硂粄靡ㄓ甭舦眤 Webmin τぃ惠璶块ㄏノ嘿籔盞絏. 硂盢穦, 粄靡琌笆矪瞶, ┮ㄏノ粄靡眤盢ぃち传ㄤㄏノ.
cert_cn=眤ㄏノ嘿
cert_email=筿秎ン
cert_ou=虫
cert_o=舱麓嘿
cert_sp=()
cert_c=瓣產絏
cert_key=玛芲
cert_ok=眤倒 $1 粄靡竒笆甭舦杆眤聅凝竟い.
cert_ekey=眤聅凝竟ゼ癳穝 SSL 玛芲 - 琌ぃや穿 SSL め狠粄靡.
cert_eca=砞﹚粄靡甭舦ア毖 : $1
cert_already=牡 - 眤ヘ玡タㄏノ粄靡 $1.

acl_title=家舱北
acl_title2=倒 $1  $2
acl_options=$1 北匡兜
acl_config=琌絪胯家舱舱篈?
acl_users=ㄏノ琌砆絪胯
acl_mods=琌甭舦?
acl_all=┮Τ家舱
acl_own=Τ家舱
acl_sel=匡拒家舱 ..
acl_create=琌ミ穝ㄏノ?
acl_delete=琌埃ㄏノ?
acl_rename=琌跑ㄏノ嘿?
acl_euser=眤ぃ砆す砛絪胯硂ㄏノ北
acl_emod=眤ぃ砆す砛絪胯硂家舱北
acl_others=琌ぃ家舱?
acl_cert=琌璶―粄靡?
   0707010000d1bb000081a40000000000000002000000013ac0389700000434000000200000000000000000000000000000001800000003reloc/acl/log_parser.pl   # log_parser.pl
# Functions for parsing this module's logs

require './acl-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p) = @_;
local $g = $type eq 'group' ? "_g" : "";
if ($action eq 'modify') {
	if ($p->{'old'} ne $p->{'name'}) {
		return &text('log_rename'.$g, "<tt>$p->{'old'}</tt>",
					      "<tt>$p->{'name'}</tt>");
		}
	else {
		return &text('log_modify'.$g, "<tt>$object</tt>");
		}
	}
elsif ($action eq 'create') {
	if ($p->{'clone'}) {
		return &text('log_clone'.$g, "<tt>$p->{'clone'}</tt>",
					     "<tt>$object</tt>");
		}
	else {
		return &text('log_create'.$g, "<tt>$object</tt>");
		}
	}
elsif ($action eq 'delete') {
	return &text('log_delete'.$g, "<tt>$object</tt>");
	}
elsif ($action eq 'acl') {
	return &text('log_acl', "<tt>$object</tt>", "<i>$p->{'moddesc'}</i>");
	}
elsif ($action eq 'cert') {
	return &text('log_cert', "<tt>$object</tt>");
	}
else {
	return undef;
	}
}

0707010000d1bc000081a40000000000000002000000013ac03896000001c5000000200000000000000000000000000000001600000003reloc/acl/module.info desc_zh_CN=Webmin 用户管理
name=AdminUsers
desc_pt=Utilizadores do Webmin
desc_tr=Webmin Kullan齝齦ar
desc_es=Usuarios de Webmin
desc_fr=Utilisateurs Webmin
desc_sv=Webmin-anv鋘dare
desc_de=Webmin Benutzer
desc_pl=U縴tkownicy Webmina
desc_hu=Webmin felhaszn醠髃
desc_ru_SU=鹣特谙琢耘躺 Webmin
category=webmin
desc_zh_TW.Big5=Webmin ㄏノ
desc=Webmin Users
risk=high
desc_nl=Webmin Gebruikers
desc_ru_RU=项朦珙忄蝈腓 Webmin
desc_ja_JP.euc=Webminユ〖ザ
   0707010000d1bd000081a40000000000000002000000013ac0389700001827000000200000000000000000000000000000001600000003reloc/acl/openssl.cnf #
# OpenSSL example configuration file.
# This is mostly being used for generation of certificate requests.
#

RANDFILE		= $ENV::HOME/.rnd
oid_file		= $ENV::HOME/.oid
oid_section		= new_oids

# To use this configuration file with the "-extfile" option of the
# "openssl x509" utility, name here the section containing the
# X.509v3 extensions to use:
# extensions		= 
# (Alternatively, use a configuration file that has only
# X.509v3 extensions in its main [= default] section.)

[ new_oids ]

# We can add new OIDs in here for use by 'ca' and 'req'.
# Add a simple OID like this:
# testoid1=1.2.3.4
# Or use config file substitution like this:
# testoid2=${testoid1}.5.6

####################################################################
[ ca ]
default_ca	= CA_default		# The default ca section

####################################################################
[ CA_default ]

dir		= DIRECTORY		# Where everything is kept
certs		= $dir/certs		# Where the issued certs are kept
crl_dir		= $dir/crl		# Where the issued crl are kept
database	= $dir/index.txt	# database index file.
new_certs_dir	= $dir/newcerts		# default place for new certs.

certificate	= $dir/ca.pem 		# The CA certificate
serial		= $dir/serial 		# The current serial number
crl		= $dir/crl.pem 		# The current CRL
private_key	= $dir/ca.pem   	# The private key
RANDFILE	= $dir/.rand		# private random number file

x509_extensions	= usr_cert		# The extentions to add to the cert

# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs
# so this is commented out by default to leave a V1 CRL.
# crl_extensions	= crl_ext

default_days	= 365			# how long to certify for
default_crl_days= 30			# how long before next CRL
default_md	= md5			# which md to use.
preserve	= no			# keep passed DN ordering

# A few difference way of specifying how similar the request should look
# For type CA, the listed attributes must be the same, and the optional
# and supplied fields are just that :-)
policy		= policy_anything

# For the CA policy
[ policy_match ]
countryName		= match
stateOrProvinceName	= match
organizationName	= match
organizationalUnitName	= optional
commonName		= supplied
emailAddress		= optional

# For the 'anything' policy
# At this point in time, you must list all acceptable 'object'
# types.
[ policy_anything ]
countryName		= optional
stateOrProvinceName	= optional
localityName		= optional
organizationName	= optional
organizationalUnitName	= optional
commonName		= supplied
emailAddress		= optional

####################################################################
[ req ]
default_bits		= 1024
default_keyfile 	= privkey.pem
distinguished_name	= req_distinguished_name
attributes		= req_attributes
x509_extensions	= v3_ca	# The extentions to add to the self signed cert

[ req_distinguished_name ]
countryName			= Country Name (2 letter code)
countryName_default		= 
countryName_min			= 2
countryName_max			= 2

stateOrProvinceName		= State or Province Name (full name)
stateOrProvinceName_default	= 

localityName			= Locality Name (eg, city)

0.organizationName		= Organization Name (eg, company)
0.organizationName_default	= Internet Widgits Pty Ltd

# we can do this but it is not needed normally :-)
#1.organizationName		= Second Organization Name (eg, company)
#1.organizationName_default	= World Wide Web Pty Ltd

organizationalUnitName		= Organizational Unit Name (eg, section)
#organizationalUnitName_default	=

commonName			= Common Name (eg, YOUR name)
commonName_max			= 64

emailAddress			= Email Address
emailAddress_max		= 40

# SET-ex3			= SET extension number 3

[ req_attributes ]
challengePassword		= A challenge password
challengePassword_min		= 4
challengePassword_max		= 20

unstructuredName		= An optional company name

[ usr_cert ]

# These extensions are added when 'ca' signs a request.

# This goes against PKIX guidelines but some CAs do it and some software
# requires this to avoid interpreting an end user certificate as a CA.

basicConstraints=CA:FALSE

# Here are some examples of the usage of nsCertType. If it is omitted
# the certificate can be used for anything *except* object signing.

# This is OK for an SSL server.
# nsCertType			= server

# For an object signing certificate this would be used.
# nsCertType = objsign

# For normal client use this is typical
# nsCertType = client, email

# and for everything including object signing:
# nsCertType = client, email, objsign

# This is typical in keyUsage for a client certificate.
# keyUsage = nonRepudiation, digitalSignature, keyEncipherment

# This will be displayed in Netscape's comment listbox.
nsComment			= "OpenSSL Generated Certificate"

# PKIX recommendations harmless if included in all certificates.
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer:always

# This stuff is for subjectAltName and issuerAltname.
# Import the email address.
# subjectAltName=email:copy

# Copy subject details
# issuerAltName=issuer:copy

#nsCaRevocationUrl		= http://www.domain.dom/ca-crl.pem
#nsBaseUrl
#nsRevocationUrl
#nsRenewalUrl
#nsCaPolicyUrl
#nsSslServerName

[ v3_ca ]

# Extensions for a typical CA


# PKIX recommendation.

subjectKeyIdentifier=hash

authorityKeyIdentifier=keyid:always,issuer:always

# This is what PKIX recommends but some broken software chokes on critical
# extensions.
#basicConstraints = critical,CA:true
# So we do this instead.
basicConstraints = CA:true

# Key usage: this is typical for a CA certificate. However since it will
# prevent it being used as an test self-signed certificate it is best
# left out by default.
# keyUsage = cRLSign, keyCertSign

# Some might want this also
# nsCertType = sslCA, emailCA

# Include email address in subject alt name: another PKIX recommendation
# subjectAltName=email:copy
# Copy issuer details
# issuerAltName=issuer:copy

# RAW DER hex encoding of an extension: beware experts only!
# 1.2.3.5=RAW:02:03
# You can even override a supported extension:
# basicConstraints= critical, RAW:30:03:01:01:FF

[ crl_ext ]

# CRL extensions.
# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL.

# issuerAltName=issuer:copy
authorityKeyIdentifier=keyid:always,issuer:always
 0707010000d1be000081e40000000000000002000000013ac038960000076b000000200000000000000000000000000000001700000003reloc/acl/save_acl.cgi    #!/usr/local/bin/perl
# save_acl.cgi
# Save access control options for some module

require './acl-lib.pl';
&ReadParse();
if ($in{'_acl_group'}) {
	$access{'groups'} || &error($text{'acl_egroup'});
	$who = $in{'_acl_group'};
	}
else {
	foreach $u (&list_users()) {
		$me = $u if ($u->{'name'} eq $ENV{'REMOTE_USER'});
		}
	@mcan = $access{'mode'} == 1 ? @{$me->{'modules'}} :
		$access{'mode'} == 2 ? split(/\s+/, $access{'mods'}) :
				       ( &list_modules(), "" );
	&indexof($in{'_acl_mod'}, @mcan) >= 0 || &error($text{'acl_emod'});
	&can_edit_user($in{'_acl_user'}) || &error($text{'acl_euser'});
	$who = $in{'_acl_user'};
	}

&error_setup($text{'acl_err'});
$maccess{'noconfig'} = $in{'noconfig'};
if (-r "../$in{'_acl_mod'}/acl_security.pl") {
	&foreign_require($in{'_acl_mod'}, "acl_security.pl");
	if ($in{'_acl_mod'}) {
		eval "\%$in{'_acl_mod'}::in = \%in";
		}
	else {
		%global::in = %in;
		}
	&foreign_call($in{'_acl_mod'}, "acl_security_save", \%maccess, \%in);
	}
&lock_file("$config_directory/$in{'_acl_mod'}/$who.acl");
&write_file("$config_directory/$in{'_acl_mod'}/$who.acl",
	    \%maccess);
&unlock_file("$config_directory/$in{'_acl_mod'}/$who.acl");
%minfo = $in{'_acl_mod'} ? &get_module_info($in{'_acl_mod'})
			 : ( 'desc' => $text{'index_global'} );

if ($in{'_acl_group'}) {
	# Update the ACLs for members as well
	@ulist = &list_users();
	($group) = grep { $_->{'name'} eq $in{'_acl_group'} } &list_groups();
	foreach $m (@{$group->{'members'}}) {
		local ($u) = grep { $_->{'name'} eq $m } @ulist;
		if ($u) {
			&lock_file("$config_directory/$in{'_acl_mod'}/".
				   "$u->{'name'}.acl");
			&write_file("$config_directory/$in{'_acl_mod'}/".
				    "$u->{'name'}.acl", \%maccess);
			&unlock_file("$config_directory/$in{'_acl_mod'}/".
				     "$u->{'name'}.acl");
			}
		}
	}

$in{'moddesc'} = $minfo{'desc'};
&webmin_log("acl", undef, $who, \%in);
&redirect("");

 0707010000d1bf000081e40000000000000002000000013ac038970000057e000000200000000000000000000000000000001900000003reloc/acl/save_group.cgi  #!/usr/local/bin/perl
# save_group.cgi
# Create, modify or delete a webmin group

require './acl-lib.pl';
&ReadParse();
@glist = &list_groups();
if ($in{'old'}) {
	foreach $g (@glist) {
		$old = $g if ($g->{'name'} eq $in{'old'});
		}
	$group{'members'} = $old->{'members'};
	}
&error_setup($text{'gsave_err'});

# Check for duplicate group names
$in{'name'} =~ /^[A-z0-9\-\_\.]+$/ ||
	&error(&text('gsave_ename', $in{'name'}));
if (!$in{'old'} || $in{'old'} ne $in{'name'}) {
	foreach $g (@glist, &list_users()) {
		if ($g->{'name'} eq $in{'name'}) {
			&error(&text('gsave_edup', $in{'name'}));
			}
		}
	&error(&text('gsave_edup', $in{'name'})) if ($in{'name'} eq 'webmin');
	}

# Store group options
@mods = split(/\0/, $in{'mod'});
$group{'modules'} = \@mods;
$group{'name'} = $in{'name'};

if ($in{'old'}) {
	# update group
	&modify_group($in{'old'}, \%group);

	# update members' module lists, languages and ip access control
	@ulist = &list_users();
	foreach $m (@{$old->{'members'}}) {
		local ($u) = grep { $_->{'name'} eq $m } @ulist;
		if ($u) {
			$u->{'modules'} = [ @{$group{'modules'}},
					    @{$u->{'ownmods'}} ];
			&modify_user($u->{'name'}, $u);
			}
		}
	}
else {
	# create group
	&create_group(\%group);
	}
&restart_miniserv();
if ($in{'old'}) {
	&webmin_log("modify", "group", $in{'old'}, \%in);
	}
else {
	&webmin_log("create", "group", $group{'name'}, \%in);
	}
&redirect("");

  0707010000d1c0000081e40000000000000002000000013ac0389600001ad8000000200000000000000000000000000000001800000003reloc/acl/save_user.cgi   #!/usr/local/bin/perl
# save_user.cgi
# Modify or create a webmin user

$| = 1;
require './acl-lib.pl';
&ReadParse();
@ulist = &list_users();
if ($in{'old'}) {
	$in{'name'} = $in{'old'} if (!$access{'rename'});
	&can_edit_user($in{'old'}) || &error($text{'save_euser'});
	foreach $u (@ulist) {
		$old = $u if ($u->{'name'} eq $in{'old'});
		}
	}
else {
	$access{'create'} || &error($text{'save_ecreate'});
	}
&error_setup($text{'save_err'});

$in{'name'} =~ /^[A-z0-9\-\_\.]+$/ ||
	&error(&text('save_ename', $in{'name'}));
if (!$in{'old'} || $in{'old'} ne $in{'name'}) {
	foreach $u (@ulist, &list_groups()) {
		if ($u->{'name'} eq $in{'name'}) {
			&error(&text('save_edup', $in{'name'}));
			}
		}
	&error(&text('save_edup', $in{'name'})) if ($in{'name'} eq 'webmin');
	}

foreach $u (@ulist) {
	if ($u->{'name'} eq $ENV{'REMOTE_USER'}) {
		$me = $u;
		}
	}

# Find the current group
if ($in{'old'}) {
	foreach $g (&list_groups()) {
		if (&indexof($in{'old'}, @{$g->{'members'}}) >= 0) {
			$oldgroup = $g;
			}
		}
	}

if ($in{'risk'}) {
	# Just store the skill and risk levels
	$user{'skill'} = $in{'skill'};
	$user{'risk'} = $in{'risk'};
	delete($user{'modules'});
	}
else {
	if (defined($in{'group'})) {
		# Check if group is allowed
		if ($access{'gassign'} ne '*') {
			local @gcan = split(/\s+/, $access{'gassign'});
			$in{'group'} && &indexof($in{'group'}, @gcan) >= 0 ||
			  !$in{'group'} && &indexof('_none', @gcan) >= 0 ||
			  $oldgroup && $oldgroup->{'name'} eq $in{'group'} ||
				&error($text{'save_egroup'});
			}

		# Store group membership
		@glist = &list_groups();
		($group) = grep { $_->{'name'} eq $in{'group'} } @glist;
		if ($in{'group'} ne ($oldgroup ? $oldgroup->{'name'} : '')) {
			# Group has changed - update the member lists
			if ($oldgroup) {
				$oldgroup->{'members'} =
					[ grep { $_ ne $in{'name'} }
					  @{$oldgroup->{'members'}} ];
				&modify_group($oldgroup->{'name'}, $oldgroup);
				}
			if ($group) {
				push(@{$group->{'members'}}, $in{'name'});
				&modify_group($in{'group'}, $group);
				}
			}
		}

	# Store manually selected modules
	@mcan = $access{'mode'} == 1 ? @{$me->{'modules'}} :
		$access{'mode'} == 2 ? split(/\s+/, $access{'mods'}) :
				       &list_modules();
	map { $mcan{$_}++ } @mcan;

	@mods = split(/\0/, $in{'mod'});
	foreach $m (@mods) {
		$mcan{$m} || &error(&text('save_emod', $m));
		}
	if ($in{'old'}) {
		# Add modules that this user already has, but were not
		# allowed to be changed or are not available for this OS
		foreach $m (@{$old->{'modules'}}) {
			push(@mods, $m) if (!$mcan{$m});
			}
		}
	if ($ENV{'REMOTE_USER'} eq $in{'old'} &&
	    &indexof("acl", @mods) == -1) {
		&error($text{'save_edeny'});
		}

	if ($oldgroup) {
		# Remove modules from the old group
		@mods = grep { &indexof($_, @{$oldgroup->{'modules'}}) < 0 }
			     @mods;
		}

	if ($group) {
		# Add modules from group to list
		local @ownmods;
		foreach $m (@mods) {
			push(@ownmods, $m)
				if (&indexof($m, @{$group->{'modules'}}) < 0);
			}
		@mods = &unique(@mods, @{$group->{'modules'}});
		$user{'ownmods'} = \@ownmods;

		# Copy ACL files for group
		local $name = $in{'old'} ? $in{'old'} : $in{'name'};
		foreach $m (@{$group->{'modules'}}, "") {
			local %groupacl;
			unlink("$config_directory/$m/$name.acl");
			if (&read_file("$config_directory/$m/$in{'group'}.acl",
				       \%groupacl)) {
				&write_file("$config_directory/$m/$name.acl",
					    \%groupacl);
				}
			}
		}
	$user{'modules'} = \@mods;
	delete($user{'skill'});
	delete($user{'risk'});
	}

$salt = chr(int(rand(26))+65).chr(int(rand(26))+65);
$user{'name'} = $in{'name'};
$user{'lang'} = !$access{'lang'} ? $old->{'lang'} :
		$in{'lang_def'} ? undef : $in{'lang'};
$user{'cert'} = !$access{'chcert'} ? $old->{'cert'} :
		$in{'cert_def'} ? undef : $in{'cert'};
$user{'notabs'} = $in{'notabs'};
$raddr = $ENV{'REMOTE_ADDR'};
@ips = split(/\s+/, $in{'ips'});
if ($in{'ipmode'} == 1) {
	$user{'allow'} = join(" ", @ips);
	if ($old->{'name'} eq $ENV{'REMOTE_USER'} && !&ip_match($raddr, @ips)) {
		&error(&text('save_eself', $raddr));
		}
	}
elsif ($in{'ipmode'} == 2) {
	$user{'deny'} = join(" ", @ips);
	if ($old->{'name'} eq $ENV{'REMOTE_USER'} && &ip_match($raddr, @ips)) {
		&error(&text('save_eself', $raddr));
		}
	}
if ($in{'pass_def'} == 0) {
	$in{'pass'} =~ /:/ && &error($text{'save_ecolon'});
	$salt = chr(int(rand(26))+65).chr(int(rand(26))+65);
	$user{'pass'} = crypt($in{'pass'}, $salt);
	$user{'sync'} = 0;
	}
elsif ($in{'pass_def'} == 1) {
	$user{'pass'} = $in{'oldpass'};
	$user{'sync'} = 0;
	}
elsif ($in{'pass_def'} == 3) {
	# is PAM installed?
	eval "use Authen::PAM";
	&error($text{'save_epam'}) if ($@);
	if (!ref($pamh = new Authen::PAM("webmin", "root", \&pam_conv_func))) {
		&error($text{'save_epam'});
		}
	$user{'pass'} = 'x';
	$user{'sync'} = 0;
	}
else {
	&foreign_check("useradmin") || &error($text{'save_eos'});
	&foreign_require("useradmin", "user-lib.pl");
	foreach $uu (&foreign_call("useradmin", "list_users")) {
		$user{'pass'} = $uu->{'pass'} if ($uu->{'user'} eq $in{'name'});
		}
	defined($user{'pass'}) ||
		&error(&text('save_eunix', $in{'name'}));
	if ($user{'pass'} =~ /^\$1\$/ && crypt("foo", "xx") !~ /^\$1\$/ &&
	    crypt('test', '$1$A9wB3O18$zaZgqrEmb9VNltWTL454R/') ne
		  '$1$A9wB3O18$zaZgqrEmb9VNltWTL454R/') {
		&error($text{'save_emd5'});
		}
	$user{'sync'} = 1;
	}

if ($in{'old'}) {
	# update user and all ACLs
	&modify_user($in{'old'}, \%user);
	foreach $u (&list_users()) {
		%uaccess = &get_module_acl($u->{'name'});
		local @au = split(/\s+/, $uaccess{'users'});
		local $idx = &indexof($in{'old'}, @au);
		if ($idx != -1) {
			$au[$idx] = $in{'name'};
			$uaccess{'users'} = join(" ", @au);
			&save_module_acl(\%uaccess, $u->{'name'});
			}
		}
	}
else {
	# create and add to access list
	&create_user(\%user, $in{'clone'});
	if ($access{'users'} ne '*') {
		$access{'users'} .= " ".$in{'name'};
		&save_module_acl(\%access);
		}
	%aclacl = &get_module_acl();
	&save_module_acl(\%aclacl, $in{'name'});
	}
&restart_miniserv();
if ($in{'old'}) {
	&webmin_log("modify", "user", $in{'old'}, \%in);
	}
else {
	&webmin_log("create", "user", $user{'name'}, \%in);
	}
&redirect("");

# ip_match(ip, [match]+)
# Checks an IP address against a list of IPs, networks and networks/masks
sub ip_match
{
local(@io, @mo, @ms, $i, $j);
@io = split(/\./, $_[0]);
for($i=1; $i<@_; $i++) {
	local $mismatch = 0;
	if ($_[$i] =~ /^(\S+)\/(\S+)$/) {
		# Compare with network/mask
		@mo = split(/\./, $1); @ms = split(/\./, $2);
		for($j=0; $j<4; $j++) {
			if ((int($io[$j]) & int($ms[$j])) != int($mo[$j])) {
				$mismatch = 1;
				}
			}
		}
	else {
		# Compare with IP or network
		@mo = split(/\./, $_[$i]);
		while(@mo && !$mo[$#mo]) { pop(@mo); }
		for($j=0; $j<@mo; $j++) {
			if ($mo[$j] != $io[$j]) {
				$mismatch = 1;
				}
			}
		}
	return 1 if (!$mismatch);
	}
return 0;
}

0707010000d1c1000081a40000000000000002000000013ac03896000004ce000000200000000000000000000000000000001e00000003reloc/acl/useradmin_update.pl 
do './acl-lib.pl';

# useradmin_create_user(&details)
# Does nothing, as webmin users must be created manually
sub useradmin_create_user
{
}

# useradmin_delete_user(&details)
# Delete this webmin user if in sync
sub useradmin_delete_user
{
local @list = &list_users();
foreach $u (@list) {
	if ($u->{'name'} eq $_[0]->{'user'} && $u->{'sync'}) {
		&delete_user($u->{'name'});
		&restart_miniserv();
		}
	}
}

# useradmin_modify_user(&details)
# Update this users password if in sync
sub useradmin_modify_user
{
return if ($_[0]->{'passmode'} == 4 && $_[0]->{'olduser'} eq $_[0]->{'user'});
foreach $u (&list_users()) {
	if ($u->{'name'} eq $_[0]->{'olduser'} && $u->{'sync'}) {
		$u->{'name'} = $_[0]->{'user'};
		$u->{'pass'} = $_[0]->{'passmode'} == 3 ?
			crypt($_[0]->{'plainpass'}, substr(time(), 0, 2)) :
			$_[0]->{'pass'};
		&modify_user($_[0]->{'olduser'}, $u);
		&restart_miniserv();
		}

	# Check other users' acl module acls
	local %uaccess = &get_module_acl($u->{'name'});
	local @au = split(/\s+/, $uaccess{'users'});
	local $idx = &indexof($_[0]->{'olduser'}, @au);
	if ($idx != -1) {
		$au[$idx] = $_[0]->{'user'};
		$uaccess{'users'} = join(" ", @au);
		&save_module_acl(\%uaccess, $u->{'name'});
		}
	}
}

1;

  0707010000bb1a000081a40000000000000002000000013ac0388600000dea000000200000000000000000000000000000001600000003reloc/acl_security.pl 
do './web-lib.pl';
&init_config();

# acl_security_form(&options)
# Output HTML for editing global security options
sub acl_security_form
{
local $o = $_[0];

print "<tr> <td><b>$text{'acl_root'}</b></td>\n";
print "<td><input name=root size=30 value='$o->{'root'}'></td>\n";

print "<tr> <td valign=top><b>$text{'acl_uedit'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=uedit_mode value=0 %s> $text{'acl_uedit_all'}\n",
	$o->{'uedit_mode'} == 0 ? "checked" : "";
printf "<input type=radio name=uedit_mode value=1 %s> $text{'acl_uedit_none'}<br>\n",
	$o->{'uedit_mode'} == 1 ? "checked" : "";
printf "<input type=radio name=uedit_mode value=2 %s> $text{'acl_uedit_only'}\n",
	$o->{'uedit_mode'} == 2 ? "checked" : "";
printf "<input name=uedit_can size=40 value='%s'><br>\n",
	$o->{'uedit_mode'} == 2 ? $o->{'uedit'} : "";
printf "<input type=radio name=uedit_mode value=3 %s> $text{'acl_uedit_except'}\n",
	$o->{'uedit_mode'} == 3 ? "checked" : "";
printf "<input name=uedit_cannot size=40 value='%s'><br>\n",
	$o->{'uedit_mode'} == 3 ? $o->{'uedit'} : "";
printf "<input type=radio name=uedit_mode value=4 %s> $text{'acl_uedit_uid'}\n",
	$o->{'uedit_mode'} == 4 ? "checked" : "";
printf "<input name=uedit_uid size=6 value='%s'> - \n",
	$o->{'uedit_mode'} == 4 ? $o->{'uedit'} : "";
printf "<input name=uedit_uid2 size=6 value='%s'><br>\n",
	$o->{'uedit_mode'} == 4 ? $o->{'uedit2'} : "";
printf "<input type=radio name=uedit_mode value=5 %s> $text{'acl_uedit_group'}\n",
	$o->{'uedit_mode'} == 5 ? "checked" : "";
printf "<input name=uedit_group size=8 value='%s'></td> </tr>\n",
	$o->{'uedit_mode'} == 5 ? $dummy=getgrgid($o->{'uedit'}) : "";

print "<tr> <td valign=top><b>$text{'acl_gedit'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=gedit_mode value=0 %s> $text{'acl_gedit_all'}\n",
	$o->{'gedit_mode'} == 0 ? "checked" : "";
printf "<input type=radio name=gedit_mode value=1 %s> $text{'acl_gedit_none'}<br>\n",
	$o->{'gedit_mode'} == 1 ? "checked" : "";
printf "<input type=radio name=gedit_mode value=2 %s> $text{'acl_gedit_only'}\n",
	$o->{'gedit_mode'} == 2 ? "checked" : "";
printf "<input name=gedit_can size=40 value='%s'><br>\n",
	$o->{'gedit_mode'} == 2 ? $o->{'gedit'} : "";
printf "<input type=radio name=gedit_mode value=3 %s> $text{'acl_gedit_except'}\n",
	$o->{'gedit_mode'} == 3 ? "checked" : "";
printf "<input name=gedit_cannot size=40 value='%s'><br>\n",
	$o->{'gedit_mode'} == 3 ? $o->{'gedit'} : "";
printf "<input type=radio name=gedit_mode value=4 %s> $text{'acl_gedit_gid'}\n",
	$o->{'gedit_mode'} == 4 ? "checked" : "";
printf "<input name=gedit_gid size=6 value='%s'> -\n",
	$o->{'gedit_mode'} == 4 ? $o->{'gedit'} : "";
printf "<input name=gedit_gid2 size=6 value='%s'></td> </tr>\n",
	$o->{'gedit_mode'} == 4 ? $o->{'gedit2'} : "";
}

# acl_security_save(&options)
# Parse the form for global security options
sub acl_security_save
{
$_[0]->{'root'} = $in{'root'};

$_[0]->{'uedit_mode'} = $in{'uedit_mode'};
$_[0]->{'uedit'} = $in{'uedit_mode'} == 2 ? $in{'uedit_can'} :
		   $in{'uedit_mode'} == 3 ? $in{'uedit_cannot'} :
		   $in{'uedit_mode'} == 4 ? $in{'uedit_uid'} :
		   $in{'uedit_mode'} == 5 ? getgrnam($in{'uedit_group'}) : "";
$_[0]->{'uedit2'} = $in{'uedit_mode'} == 4 ? $in{'uedit_uid2'} : undef;

$_[0]->{'gedit_mode'} = $in{'gedit_mode'};
$_[0]->{'gedit'} = $in{'gedit_mode'} == 2 ? $in{'gedit_can'} :
		   $in{'gedit_mode'} == 3 ? $in{'gedit_cannot'} :
		   $in{'gedit_mode'} == 4 ? $in{'gedit_gid'} : "";
$_[0]->{'gedit2'} = $in{'gedit_mode'} == 4 ? $in{'gedit_gid2'} : undef;
}

  07070100015d99000041ed0000000000000001000000043ac03b9c00000000000000200000000000000000000000000000000d00000003reloc/apache  07070100015d9a000081a40000000000000002000000013ac0389800000f9e000000200000000000000000000000000000001d00000003reloc/apache/acl_security.pl  
require './apache-lib.pl';

# acl_security_form(&options)
# Output HTML for editing security options for the apache module
sub acl_security_form
{
print "<tr> <td valign=top rowspan=4><b>$text{'acl_virts'}</b></td>\n";
print "<td rowspan=4 valign=top>\n";
printf "<input type=radio name=virts_def value=1 %s> %s\n",
	$_[0]->{'virts'} eq '*' ? 'checked' : '', $text{'acl_vall'};
printf "<input type=radio name=virts_def value=0 %s> %s<br>\n",
	$_[0]->{'virts'} eq '*' ? '' : 'checked', $text{'acl_vsel'};
print "<select name=virts multiple size=5>\n";
local $conf = &get_config();
local @virts = ( { 'value' => '__default__' },
		 &find_directive_struct("VirtualHost", $conf) );
local ($v, %vcan);
map { $vcan{$_}++ } split(/\s+/, $_[0]->{'virts'});
foreach $v (@virts) {
	local $vn = &virt_acl_name($v);
	printf "<option value=\"%s\" %s>%s\n",
		$vn, $vcan{$vn} ? "selected" : "",
		$vn eq "__default__" ? $text{'acl_defserv'} : $vn;
	}
print "</select></td>\n";

print "<td><b>$text{'acl_global'}</b></td> <td><select name=global>\n";
printf "<option value=1 %s> $text{'yes'}\n",
	$_[0]->{'global'} == 1 ? "selected" : "";
printf "<option value=2 %s> $text{'acl_htaccess'}\n",
	$_[0]->{'global'} == 2 ? "selected" : "";
printf "<option value=0 %s> $text{'no'}</select></td> </tr>\n",
	$_[0]->{'global'} == 0 ? "selected" : "";

print "<tr> <td><b>$text{'acl_create'}</b></td> <td>\n";
printf "<input type=radio name=create value=1 %s> $text{'yes'}\n",
	$_[0]->{'create'} ? "checked" : "";
printf "<input type=radio name=create value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'create'} ? "" : "checked";

print "<tr> <td><b>$text{'acl_vuser'}</b></td> <td>\n";
printf "<input type=radio name=vuser value=1 %s> $text{'yes'}\n",
	$_[0]->{'vuser'} ? "checked" : "";
printf "<input type=radio name=vuser value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'vuser'} ? "" : "checked";

print "<tr> <td><b>$text{'acl_vaddr'}</b></td> <td>\n";
printf "<input type=radio name=vaddr value=1 %s> $text{'yes'}\n",
	$_[0]->{'vaddr'} ? "checked" : "";
printf "<input type=radio name=vaddr value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'vaddr'} ? "" : "checked";

print "<tr> <td><b>$text{'acl_pipe'}</b></td> <td>\n";
printf "<input type=radio name=pipe value=1 %s> $text{'yes'}\n",
	$_[0]->{'pipe'} ? "checked" : "";
printf "<input type=radio name=pipe value=0 %s> $text{'no'}</td>\n",
	$_[0]->{'pipe'} ? "" : "checked";

print "<td><b>$text{'acl_stop'}</b></td> <td>\n";
printf "<input type=radio name=stop value=1 %s> $text{'yes'}\n",
	$_[0]->{'stop'} ? "checked" : "";
printf "<input type=radio name=stop value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'stop'} ? "" : "checked";

print "<tr> <td><b>$text{'acl_dir'}</b></td>\n";
printf "<td colspan=3><input name=dir size=30 value='%s'> %s</td> </tr>\n",
	$_[0]->{'dir'}, &file_chooser_button("dir", 1);

print "<tr> <td valign=top><b>$text{'acl_types'}</b></td>\n";
print "<td colspan=3>\n";
printf "<input type=radio name=types_def value=1 %s> $text{'acl_all'}&nbsp;\n",
	$_[0]->{'types'} eq '*' ? "checked" : "";
printf "<input type=radio name=types_def value=0 %s> $text{'acl_sel'}<br>\n",
	$_[0]->{'types'} eq '*' ? "" : "checked";
map { $types{$_}++ } split(/\s+/, $_[0]->{'types'});
print "<select name=types size=5 multiple>\n";
for($i=0; $text{"type_$i"}; $i++) {
	printf "<option value=\"%d\" %s>%s\n",
		$i, $types{$i} ? "selected" : "", $text{"type_$i"};
	}
print "</select></td> </tr>\n";
}

# acl_security_save(&options)
# Parse the form for security options for the apache module
sub acl_security_save
{
if ($in{'virts_def'}) {
	$_[0]->{'virts'} = "*";
	}
else {
	$_[0]->{'virts'} = join(" ", split(/\0/, $in{'virts'}));
	}
$_[0]->{'global'} = $in{'global'};
$_[0]->{'create'} = $in{'create'};
$_[0]->{'vuser'} = $in{'vuser'};
$_[0]->{'stop'} = $in{'stop'};
$_[0]->{'vaddr'} = $in{'vaddr'};
$_[0]->{'dir'} = $in{'dir'};
$_[0]->{'types'} = $in{'types_def'} ? '*'
				    : join(" ", split(/\0/, $in{'types'}));
$_[0]->{'pipe'} = $in{'pipe'};
}

  07070100015d9b000081a40000000000000002000000013ac0389700005a0c000000200000000000000000000000000000001b00000003reloc/apache/apache-lib.pl    # apache-lib.pl
# Common functions for apache configuration

do '../web-lib.pl';
&init_config();
%access = &get_module_acl();

@access_types = $access{'types'} eq '*' ? (0 .. 100)
				        : split(/\s+/, $access{'types'});
map { $access_types{$_}++ } @access_types;

# Read the site-specific setup file, then require in all the module-specific
# .pl files
if (&read_file("$module_config_directory/site", \%site)) {
	local($m, $f, $d);
	$httpd_size = $site{'size'};
	foreach $m (split(/\s+/, $site{'modules'})) {
		if ($m =~ /(\S+)\/(\S+)/) { $httpd_modules{$1} = $2; }
		}
	foreach $f (split(/\s+/, $site{'htaccess'})) {
		if (-r $f) { push(@htaccess_files, $f); }
		}
	foreach $m (keys %httpd_modules) {
		do "./$m.pl";
		}
	foreach $d (split(/\s+/, $site{'defines'})) {
		$httpd_defines{$d}++;
		}
	}
foreach $d (split(/\s+/, $config{'defines'})) {
	$httpd_defines{$d}++;
	}

# parse_config_file(handle, lines, file)
# Parses lines of text from some config file into a data structure. The
# return value is an array of references, one for each directive in the file.
# Each reference points to an associative array containing
#  line -	The line number this directive is at
#  eline -	The line number this directive ends at
#  file -	The file this directive is from
#  type -	0 for a normal directive, 1 for a container directive
#  name -	The name of this directive
#  value -	Value (possibly with spaces)
#  members -	For type 1, a reference to the array of members
sub parse_config_file
{
local($fh, @rv, $line, %dummy);
$fh = $_[0];
$dummy{'line'} = $dummy{'eline'} = $_[1]-1;
$dummy{'file'} = $_[2];
$dummy{'type'} = 0;
$dummy{'name'} = "dummy";
@rv = (\%dummy);
while($line = <$fh>) {
	chop;
	$line =~ s/^\s*#.*$//g;
	if ($line =~ /^\s*<\/(\S+)\s*(.*)>/) {
		# end of a container directive. This can only happen in a
		# recursive call to this function
		$_[1]++;
		last;
		}
	elsif ($line =~ /^\s*<IfModule\s+(\!?)(\S+)\.c>/i) {
		# start of an IfModule block. Read it, and if the module
		# exists put the directives in this section.
		local ($not, $mod) = ($1, $2);
		local $oldline = $_[1];
		$_[1]++;
		local @dirs = &parse_config_file($fh, $_[1], $_[2]);
		if (!$not && $httpd_modules{$mod} ||
		    $not && !$httpd_modules{$mod}) {
			# use the directives..
			push(@rv, { 'line', $oldline,
				    'eline', $oldline,
				    'file', $_[2],
				    'name', "<IfModule $not$mod>" });
			push(@rv, @dirs);
			push(@rv, { 'line', $_[1]-1,
				    'eline', $_[1]-1,
				    'file', $_[2],
				    'name', "</IfModule>" });
			}
		}
	elsif ($line =~ /^\s*<IfDefine\s+(\!?)(\S+)>/i) {
		# start of an IfDefine block. Read it, and if the define
		# exists put the directives in this section
		local ($not, $def) = ($1, $2);
		local $oldline = $_[1];
		$_[1]++;
		local @dirs = &parse_config_file($fh, $_[1], $_[2]);
		if (!$not && $httpd_defines{$def} ||
		    $not && !$httpd_defines{$def}) {
			# use the directives..
			push(@rv, { 'line', $oldline,
				    'eline', $oldline,
				    'file', $_[2],
				    'name', "<IfDefine $not$def>" });
			push(@rv, @dirs);
			push(@rv, { 'line', $_[1]-1,
				    'eline', $_[1]-1,
				    'file', $_[2],
				    'name', "</IfDefine>" });
			}
		}
	elsif ($line =~ /^\s*<(\S+)\s*(.*)>/) {
		# start of a container directive. The first member is a dummy
		# directive at the same line as the container
		local(%dir, @members);
		%dir = ('line', $_[1],
			'file', $_[2],
			'type', 1,
			'name', $1,
			'value', $2);
		$dir{'value'} =~ s/\s+$//g;
		$dir{'words'} = &wsplit($dir{'value'});
		$_[1]++;
		@members = &parse_config_file($fh, $_[1], $_[2]);
		$dir{'members'} = \@members;
		$dir{'eline'} = $_[1]-1;
		push(@rv, \%dir);
		}
	elsif ($line =~ /^\s*(\S+)\s*(.*)$/) {
		# normal directive
		local(%dir);
		%dir = ('line', $_[1],
			'eline', $_[1],
			'file', $_[2],
			'type', 0,
			'name', $1,
			'value', $2);
		if ($dir{'value'} =~ s/\\$//g) {
			# multi-line directive!
			while($line = <$fh>) {
				chop($line);
				$cont = ($line =~ s/\\$//g);
				$dir{'value'} .= $line;
				$dir{'eline'} = ++$_[1];
				if (!$cont) { last; }
				}
			}
		$dir{'value'} =~ s/\s+$//g;
		$dir{'words'} = &wsplit($dir{'value'});
		push(@rv, \%dir);
		$_[1]++;
		}
	else {
		# blank or comment line
		$_[1]++;
		}
	}
return @rv;
}

# wsplit(string)
# Splits a string like  foo "foo \"bar\"" bazzz  into an array of words
sub wsplit
{
local($s, @rv); $s = $_[0];
$s =~ s/\\\"/\0/g;
while($s =~ /^"([^"]*)"\s*(.*)$/ || $s =~ /^(\S+)\s*(.*)$/) {
	$w = $1; $s = $2;
	$w =~ s/\0/"/g; push(@rv, $w);
	}
return \@rv;
}

# wjoin(word, word, ...)
sub wjoin
{
local(@rv, $w);
foreach $w (@_) {
	if ($w =~ /^\S+$/) { push(@rv, $w); }
	else { push(@rv, "\"$w\""); }
	}
return join(' ', @rv);
}

# find_directive(name, &directives)
# Returns the values of directives matching some name
sub find_directive
{
local(@rv, $i, @vals, $dref);
foreach $ref (@{$_[1]}) {
	if (lc($ref->{'name'}) eq lc($_[0])) {
		push(@vals, $ref->{'value'});
		}
	}
return wantarray ? @vals : !@vals ? undef : $vals[$#vals];
}

# find_directive_struct(name, &directives)
# Returns references to directives maching some name
sub find_directive_struct
{
local(@rv, $i, @vals);
foreach $ref (@{$_[1]}) {
	if (lc($ref->{'name'}) eq lc($_[0])) {
		push(@vals, $ref);
		}
	}
return wantarray ? @vals : !@vals ? undef : $vals[$#vals];
}

# find_vdirective(name, &virtualdirectives, &directives)
# Looks for some directive in a <VirtualHost> section, and then in the 
# main section
sub find_vdirective
{
if ($_[1]) {
	$rv = &find_directive($_[0], $_[1]);
	if ($rv) { return $rv; }
	}
return &find_directive($_[0], $_[2]);
}

# get_config()
# Returns the entire config structure
sub get_config
{
local($acc, $res, $lnum, $conf, @virt, $v, $mref, $inc);
if (@get_config_cache) {
	return \@get_config_cache;
	}

# read primary config file
$conf = $config{'httpd_conf'};
if (!$conf) { $conf = "$config{'httpd_dir'}/conf/httpd.conf"; }
if (!-r $conf) { $conf = "$config{'httpd_dir'}/etc/httpd.conf"; }
return undef if (!-r $conf);
@get_config_cache = &get_config_file($conf);

# Read main resource and access config files
$lnum = 0;
$res = &find_directive("ResourceConfig", \@get_config_cache);
if (!$res) { $res = $config{'srm_conf'}; }
if (!$res) { $res = "$config{'httpd_dir'}/conf/srm.conf"; }
if (!-r $res) { $res = "$config{'httpd_dir'}/etc/srm.conf"; }
push(@get_config_cache, &get_config_file($res));

$lnum = 0;
$acc = &find_directive("AccessConfig", \@get_config_cache);
if (!$acc) { $acc = $config{'access_conf'}; }
if (!$acc) { $acc = "$config{'httpd_dir'}/conf/access.conf"; }
if (!-r $acc) { $acc = "$config{'httpd_dir'}/etc/access.conf"; }
push(@get_config_cache, &get_config_file($acc));

# Read extra config files in VirtualHost sections
@virt = &find_directive_struct("VirtualHost", \@get_config_cache);
foreach $v (@virt) {
	$mref = $v->{'members'};
	if ($res = &find_directive("ResourceConfig", $mref)) {
		if ($res !~ /^\//) { $res = "$config{'httpd_dir'}/$res"; }
		push(@$mref, &get_config_file($res));
		}
	if ($acc = &find_directive("AccessConfig", $mref)) {
		if ($acc !~ /^\//) { $acc = "$config{'httpd_dir'}/$acc"; }
		push(@$mref, &get_config_file($acc));
		}
	}

# Read Include'd files
foreach $inc (&find_directive("Include", \@get_config_cache)) {
	if ($inc !~ /^\//) { $inc = "$config{'httpd_dir'}/$inc"; }
	push(@get_config_cache, &get_config_file($inc));
	}

return \@get_config_cache;
}

# get_config_file(filename)
sub get_config_file
{
local @rv;
if (opendir(DIR, $_[0])) {
	# Is a directory .. parse all files!
	local @files = readdir(DIR);
	closedir(DIR);
	foreach $f (@files) {
		next if ($f =~ /^\./);
		push(@rv, &get_config_file("$_[0]/$f"));
		}
	}
else {
	# Just a normal config file
	local $lnum = 0;
	open(CONF, $_[0]);
	@rv = &parse_config_file(CONF, $lnum, $_[0]);
	close(CONF);
	}
return @rv;
}

# get_virtual_config(index)
sub get_virtual_config
{
local($conf, $c, $v);
$conf = &get_config();
if (!$_[0]) { $c = $conf; $v = undef; }
else {
	$c = $conf->[$_[0]]->{'members'};
	$v = $conf->[$_[0]];
	}
return wantarray ? ($c, $v) : $c;
}

# get_htaccess_config(file)
sub get_htaccess_config
{
local($lnum, @conf);
open(HTACCESS, $_[0]);
@conf = &parse_config_file(HTACCESS, $lnum, $_[0]);
close(HTACCESS);
return \@conf;
}

# save_directive(name, &values, &directives, &config)
# Updates the config file(s) and the directives structure with new values
# for the given directives.
# If a directive's value is merely being changed, then its value only needs
# to be updated in the directives array and in the file.
sub save_directive
{
local($i, @old, $lref, $change, $len, $v);
@old = &find_directive_struct($_[0], $_[2]);
for($i=0; $i<@old || $i<@{$_[1]}; $i++) {
	$v = ${$_[1]}[$i];
	if ($i >= @old) {
		# a new directive is being added. If other directives of this
		# type exist, add it after them. Otherwise, put it at the end of
		# the first file in the section
		if ($change) {
			# Have changed some old directive.. add this new one
			# after it, and update change
			local(%v, $j);
			%v = (	"line", $change->{'line'}+1,
				"eline", $change->{'line'}+1,
				"file", $change->{'file'},
				"type", 0,
				"name", $_[0],
				"value", $v);
			$j = &indexof($change, @{$_[2]})+1;
			&renumber($_[3], $v{'line'}, $v{'file'}, 1);
			splice(@{$_[2]}, $j, 0, \%v);
			$lref = &read_file_lines($v{'file'});
			splice(@$lref, $v{'line'}, 0, "$_[0] $v");
			$change = \%v;
			}
		else {
			# Adding a new directive to the end of the list
			# in this section
			local($f, %v, $j);
			$f = $_[2]->[0]->{'file'};
			for($j=0; $_[2]->[$j]->{'file'} eq $f; $j++) { }
			$l = $_[2]->[$j-1]->{'eline'}+1;
			%v = (	"line", $l,
				"eline", $l,
				"file", $f,
				"type", 0,
				"name", $_[0],
				"value", $v);
			&renumber($_[3], $l, $f, 1);
			splice(@{$_[2]}, $j, 0, \%v);
			$lref = &read_file_lines($f);
			splice(@$lref, $l, 0, "$_[0] $v");
			}
		}
	elsif ($i >= @{$_[1]}) {
		# a directive was deleted
		$lref = &read_file_lines($old[$i]->{'file'});
		$idx = &indexof($old[$i], @{$_[2]});
		splice(@{$_[2]}, $idx, 1);
		$len = $old[$i]->{'eline'} - $old[$i]->{'line'} + 1;
		splice(@$lref, $old[$i]->{'line'}, $len);
		&renumber($_[3], $old[$i]->{'line'}, $old[$i]->{'file'}, -$len);
		}
	else {
		# just changing the value
		$lref = &read_file_lines($old[$i]->{'file'});
		$len = $old[$i]->{'eline'} - $old[$i]->{'line'} + 1;
		&renumber($_[3], $old[$i]->{'eline'}+1,
			  $old[$i]->{'file'},1-$len);
		$old[$i]->{'value'} = $v;
		$old[$i]->{'eline'} = $old[$i]->{'line'};
		splice(@$lref, $old[$i]->{'line'}, $len, "$_[0] $v");
		$change = $old[$i];
		}
	}
}

# renumber(&config, line, file, offset)
# Recursively changes the line number of all directives from some file 
# beyond the given line.
sub renumber
{
local($d);
if (!$_[3]) { return; }
foreach $d (@{$_[0]}) {
	if ($d->{'file'} eq $_[2] && $d->{'line'} >= $_[1]) {
		$d->{'line'} += $_[3];
		}
	if ($d->{'file'} eq $_[2] && $d->{'eline'} >= $_[1]) {
		$d->{'eline'} += $_[3];
		}
	if ($d->{'type'}) {
		&renumber($d->{'members'}, $_[1], $_[2], $_[3]);
		}
	}
}

# server_root(path, &directives)
sub server_root
{
if ($_[0] =~ /^\//) { return $_[0]; }
else { return "$config{'httpd_dir'}/$_[0]"; }
}

sub dump_config
{
local($c, $mref);
print "<table border>\n";
print "<tr> <td>Name</td> <td>Value</td> <td>File</td> <td>Line</td> </tr>\n";
foreach $c (@_) {
	printf "<tr> <td>%s</td> <td>%s</td><td>%s</td><td>%s</td> </tr>\n",
		$c->{'name'}, $c->{'value'}, $c->{'file'}, $c->{'line'};
	if ($c->{'type'}) {
		print "<tr> <td colspan=4>\n";
		$mref = $c->{'members'};
		&dump_config(@$mref);
		print "</td> </tr>\n";
		}
	}
print "</table>\n";
}

sub def
{
return $_[0] ? $_[0] : $_[1];
}

# make_directives(ref, version, module)
sub make_directives
{
local(@rv, $aref);
$aref = $_[0];
local $ver = $_[1];
if ($ver =~ /^(1)\.(3)(\d+)$/) {
	$ver = sprintf "%d.%d%2.2d", $1, $2, $3;
	}
foreach $d (@$aref) {
	local(%dir);
	$dir{'name'} = $d->[0];
	$dir{'multiple'} = $d->[1];
	$dir{'type'} = $d->[2];
	$dir{'module'} = $_[2];
	$dir{'version'} = $ver;
	$dir{'priority'} = $d->[5];
	foreach $c (split(/\s+/, $d->[3])) { $dir{$c}++; }
	if (!$d->[4]) { push(@rv, \%dir); }
	elsif ($d->[4] =~ /^-([\d\.]+)$/ && $ver < $1) { push(@rv, \%dir); }
	elsif ($d->[4] =~ /^([\d\.]+)$/ && $ver >= $1) { push(@rv, \%dir); }
	elsif ($d->[4] =~ /^([\d\.]+)-([\d\.]+)$/ && $ver >= $1 && $ver < $2)
		{ push(@rv, \%dir); }
	}
return @rv;
}


# editable_directives(type, context)
# Returns an array of references to associative arrays, one for each 
# directive of the given type that can be used in the given context
sub editable_directives
{
local($m, $func, @rv);
foreach $m (keys %httpd_modules) {
	$func = $m."_directives";
	push(@rv, &$func($httpd_modules{$m}));
	}
@rv = grep { $_->{'type'} == $_[0] && $_->{$_[1]} } @rv;
@rv = sort { $pd = $b->{'priority'} - $a->{'priority'};
	     $md = $a->{'module'} cmp $b->{'module'};
	     $pd == 0 ? ($md == 0 ? $a->{'name'} cmp $b->{'name'} : $md) : $pd }
		@rv;
return @rv;
}

# generate_inputs(&editors, &directives)
# Displays a 2-column list of options, for use inside a table
sub generate_inputs
{
local($e, $sw, @args, @rv, $func);
foreach $e (@{$_[0]}) {
	if (!$sw) { print "<tr>\n"; }

	# Build arg list for the editing function. Each arg can be a single
	# directive struct, or a reference to an array of structures.
	$func = "edit";
	undef(@args);
	foreach $ed (split(/\s+/, $e->{'name'})) {
		local(@vals);
		$func .= "_$ed";
		@vals = &find_directive_struct($ed, $_[1]);
		if ($e->{'multiple'}) { push(@args, \@vals); }
		elsif (!@vals) { push(@args, undef); }
		else { push(@args, $vals[$#vals]); }
		}
	push(@args, $e);

	# call the function
	@rv = &$func(@args);
	if ($rv[0] == 2) {
		# spans 2 columns..
		if ($sw) {
			# need to end this row
			print "<td colspan=2></td> </tr><tr>\n";
			}
		else { $sw = !$sw; }
		print "<td valign=top align=right width=25%><b>$rv[1]</b></td>\n";
		print "<td nowrap valign=top colspan=3 width=75%>$rv[2]</td>\n";
		}
	else {
		# only spans one column
		print "<td valign=top align=right width=25%><b>$rv[1]</b></td>\n";
		print "<td nowrap valign=top width=25%>$rv[2]</td>\n";
		}

	if ($sw) { print "</tr>\n"; }
	$sw = !$sw;
	}
}

# parse_inputs(&editors, &directives, &config)
# Reads user choices from a form and update the directives and config files.
sub parse_inputs
{
# First call editor functions to get new values. Each function returns
# an array of references to arrays containing the new values for the directive.
foreach $e (@{$_[0]}) {
	@dirs = split(/\s+/, $e->{'name'});
	$func = "save_".join('_', @dirs);
	@rv = &$func($e);
	for($i=0; $i<@dirs; $i++) {
		push(@chname, $dirs[$i]);
		push(@chval, $rv[$i]);
		}
	}

# Assuming everything went OK, update the configuration
for($i=0; $i<@chname; $i++) {
	&save_directive($chname[$i], $chval[$i], $_[1], $_[2]);
	}
&flush_file_lines();
}

# opt_input(value, name, default, size)
sub opt_input
{
return sprintf "<input type=radio name=$_[1]_def value=1 %s> $_[2]\n".
	       "<input type=radio name=$_[1]_def value=0 %s>\n".
	       "<input name=$_[1] size=$_[3] value='%s'>\n",
	defined($_[0]) ? "" : "checked",
	defined($_[0]) ? "checked" : "",
	$_[0];
}

# parse_opt(name, regexp, error)
sub parse_opt
{
local($i, $re);
if ($in{"$_[0]_def"}) { return ( [ ] ); }
for($i=1; $i<@_; $i+=2) {
	$re = $_[$i];
	if ($in{$_[0]} !~ /$re/) { &error($_[$i+1]); }
	}
return ( [ $in{$_[0]} ] );
}

# choice_input(value, name, default, [choice]+)
# Each choice is a display,value pair
sub choice_input
{
local($i, $rv);
for($i=3; $i<@_; $i++) {
	$_[$i] =~ /^([^,]*),(.*)$/;
	$rv .= sprintf "<input type=radio name=$_[1] value=\"$2\" %s> $1\n",
		lc($2) eq lc($_[0]) || !defined($_[0]) && lc($2) eq lc($_[2]) ? "checked" : "";
	}
return $rv;
}

# choice_input_vert(value, name, default, [choice]+)
# Each choice is a display,value pair
sub choice_input_vert
{
local($i, $rv);
for($i=3; $i<@_; $i++) {
	$_[$i] =~ /^([^,]*),(.*)$/;
	$rv .= sprintf "<input type=radio name=$_[1] value=\"$2\" %s> $1<br>\n",
		lc($2) eq lc($_[0]) || !defined($_[0]) &&
				       lc($2) eq lc($_[2]) ? "checked" : "";
	}
return $rv;
}

# parse_choice(name, default)
sub parse_choice
{
if (lc($in{$_[0]}) eq lc($_[1])) { return ( [ ] ); }
else { return ( [ $in{$_[0]} ] ); }
}

# select_input(value, name, default, [choice]+)
sub select_input
{
local($i, $rv);
$rv = "<select name=\"$_[1]\">\n";
for($i=3; $i<@_; $i++) {
	$_[$i] =~ /^([^,]*),(.*)$/;
	$rv .= sprintf "<option value=\"$2\" %s> $1\n",
		lc($2) eq lc($_[0]) || !defined($_[0]) && lc($2) eq lc($_[2]) ? "selected" : "";
	}
$rv .= "</select>\n";
return $rv;
}

# parse_choice(name, default)
sub parse_select
{
return &parse_choice(@_);
}

# handler_input(value, name)
sub handler_input
{
local($m, $func, @hl, $rv, $h);
push(@hl, "");
foreach $m (keys %httpd_modules) {
	$func = $m."_handlers";
	if (defined(&$func)) {
		push(@hl, &$func($conf, $httpd_modules{$m}));
		}
	}
if (&indexof($_[0], @hl) < 0) { push(@hl, $_[0]); }
$rv = "<select name=$_[1]>\n";
foreach $h (&unique(@hl)) {
	$rv .= sprintf "<option value=\"$h\" %s>$h\n",
		$h eq $_[0] ? "selected" : "";
	}
$rv .= "</select>\n";
return $rv;
}

# parse_handler(name)
sub parse_handler
{
if ($in{$_[0]} eq "") { return ( [ ] ); }
else { return ( [ $in{$_[0]} ] ); }
}

# virtual_name(struct, [forlog])
sub virtual_name
{
if ($_[0]) {
	local $n = &find_directive("ServerName", $_[0]->{'members'});
	if ($n) {
		return $_[0]->{'value'} =~ /:(\d+)$/ ? "$n:$1" : $n;
		}
	else {
		return $_[0]->{'value'};
		}
	}
else { return $_[1] ? "*" : $text{'default_serv'}; }
}

# dir_name(struct)
sub dir_name
{
local($dfm, $mat);
$_[0]->{'name'} =~ /^(Directory|Files|Location)(Match)?$/;
$dfm = $1; $mat = $2;
if ($mat) { return "$dfm regexp <tt>$_[0]->{'words'}->[0]</tt>"; }
elsif ($_[0]->{'words'}->[0] eq "~")
	{ return "$dfm regexp <tt>$_[0]->{'words'}->[1]</tt>"; }
else { return "$dfm <tt>$_[0]->{'words'}->[0]</tt>"; }
}

# list_user_file(file, &user,  &pass)
sub list_user_file
{
local($_);
open(USERS, $_[0]);
while(<USERS>) {
	/^(\S+):(\S+)/;
	push(@{$_[1]}, $1); $_[2]->{$1} = $2;
	}
close(USERS);
}


# config_icons(context, program)
# Displays up to 17 icons, one for each type of configuration directive, for
# some context (global, virtual, directory or htaccess)
sub config_icons
{
local($m, $func, $e, %etype, $i, $c);
foreach $m (sort { $a cmp $b } (keys %httpd_modules)) {
        $func = $m."_directives";
	foreach $e (&$func($httpd_modules{$m})) {
		if ($e->{$_[0]}) { $etype{$e->{'type'}}++; }
		}
        }
print "<table width=100% cellpadding=5>\n";
for($i=0; $text{"type_$i"}; $i++) {
	if ($etype{$i} && $access_types{$i}) {
		if ($c%5 == 0) { print "<tr>\n"; }
		print "<td valign=top align=center width=20%>\n";
		&generate_icon("images/type_icon_$i.gif", $text{"type_$i"},
			       $_[1]."type=$i");
		print "</td>\n";
		if ($c%5 == 4) { print "<tr>\n"; }
		$c++;
		}
	}
for($i=2; $i<@_; $i++) {
	if ($c%5 == 0) { print "<tr>\n"; }
	print "<td valign=top align=center width=20%>\n";
	&generate_icon($_[$i]->{'icon'}, $_[$i]->{'name'}, $_[$i]->{'link'});
	print "</td>\n";
	if ($c%5 == 4) { print "<tr>\n"; }
	$c++;
	}
print "</table><p>\n";
}

# restart_button()
# Returns HTML for a link to put in the top-right corner of every page
sub restart_button
{
local($pidfile, $pidfilestr, $conf, $rv);
$conf = &get_config();
$pidfilestr = &find_directive_struct("PidFile", $conf);
$pidfile = $pidfilestr ? $pidfilestr->{'words'}->[0]
		       : "logs/httpd.pid";
$pidfile = &server_root($pidfile, $conf);
$args = "redir=".&urlize(&this_url());
if (open(PID, $pidfile) && <PID> =~ /(\d+)/ && kill(0, $1)) {
	close(PID);
	$rv = "<a href=\"restart.cgi?$args\">$text{'apache_apply'}</a><br>\n";
	if ($access{'stop'}) {
		$rv .= "<a href=\"stop.cgi?$args\">$text{'apache_stop'}</a>\n";
		}
	}
elsif ($access{'stop'}) {
	$rv = "<a href=\"start.cgi?$args\">$text{'apache_start'}</a><br>\n";
	}
return $rv;
}

# this_url()
# Returns the URL in the apache directory of the current script
sub this_url
{
local($url);
$url = $ENV{'SCRIPT_NAME'};
if ($ENV{'QUERY_STRING'} ne "") { $url .= "?$ENV{'QUERY_STRING'}"; }
return $url;
}

# find_all_directives(config, name)
# Recursively finds all directives of some type
sub find_all_directives
{
local(@rv, $d);
foreach $d (@{$_[0]}) {
	if ($d->{'name'} eq $_[1]) { push(@rv, $d); }
	if ($d->{'type'} == 1) {
		push(@rv, &find_all_directives($d->{'members'}, $_[1]));
		}
	}
return @rv;
}

# httpd_info(executable)
# Returns the httpd version and modules array
sub httpd_info
{
local(@mods, $verstr, $ver, $minor);
$verstr = `$_[0] -v 2>&1`;
if ($verstr =~ /Apache(\S*)\/(\d+)\.([\d\.]+)/) {
	# standard apache
	$ver = $2; $minor = $3; $minor =~ s/\.//g; $ver .= ".$minor";
	}
elsif ($verstr =~ /Red\s*Hat\s+Secure\/2\.0/i) {
	# redhat secure server 2.0
	$ver = 1.31;
	}
elsif ($verstr =~ /Red\s*Hat\s+Secure\/3\.0/i) {
	# redhat secure server 3.0
	$ver = 1.39;
	}
else {
	# couldn't get version
	return (0, undef);
	}
if ($ver < 1.2) {
	# apache 1.1 has no -l option! Use the standard list
	@mods = ("core", "mod_mime", "mod_access", "mod_auth", "mod_include",
		 "mod_negotiation", "mod_dir", "mod_cgi", "mod_userdir",
		 "mod_alias", "mod_env", "mod_log_common");
	}
else {
	# ask apache for the module list
	@mods = ("core");
	open(APACHE, "$_[0] -l |");
	while(<APACHE>) {
		if (/(mod_\S+)\.c/) { push(@mods, $1); }
		}
	close(APACHE);
	}
return ($ver, \@mods);
}

# print_line(directive, text, indent, link)
sub print_line
{
local $line = $_[0]->{'line'} + 1;
local $lstr = "$_[0]->{'file'} ($line)";
local $txt = join("", @{$_[1]});
local $left = 85 - length($lstr) - $_[2];
if (length($txt) > $left) {
	$txt = substr($txt, 0, $left)." ..";
	}
local $txtlen = length($txt);
$txt =~ s/&/&amp;/g;
$txt =~ s/</&lt;/g;
$txt =~ s/>/&gt;/g;
print " " x $_[2];
if ($_[3]) {
	print "<a href=\"$_[3]\">",$txt,"</a>";
	}
else { print $txt; }
print " " x (90 - $txtlen - $_[2] - length($lstr));
print $lstr,"\n";
}

# can_edit_virt(struct)
sub can_edit_virt
{
return 1 if ($access{'virts'} eq '*');
local %vcan;
map { $vcan{$_}++ } split(/\s+/, $access{'virts'});
return $vcan{&virt_acl_name($_[0])};
}

# virt_acl_name(struct)
sub virt_acl_name
{
return "__default__" if (!$_[0]);
local $n = &find_directive("ServerName", $_[0]->{'members'});
if ($n) {
	local $p;
	if ($_[0]->{'value'} =~ /(:\d+)/) { $p = $1; }
	return $n.$p;
	}
else {
	return $_[0]->{'value'};
	}
}

# allowed_auth_file(file)
sub allowed_auth_file
{
local $_;
return 1 if ($access{'dir'} eq '/');
return 0 if ($_[0] =~ /\.\./);
local $f = &server_root($_[0], &get_config());
return 0 if (-l $f && !&allowed_auth_file(readlink($f)));
local $l = length($access{'dir'});
return length($f) >= $l && substr($f, 0, $l) eq $access{'dir'};
}

sub lock_apache_files
{
local $conf = &get_config();
foreach $f (&unique(map { $_->{'file'} } @$conf)) {
	&lock_file($f);
	}
}

sub unlock_apache_files
{
local $conf = &get_config();
foreach $f (&unique(map { $_->{'file'} } @$conf)) {
	&unlock_file($f);
	}
}

1;

07070100015d9c000081a40000000000000002000000013ac0389800000b32000000200000000000000000000000000000001900000003reloc/apache/auth-lib.pl  # auth-lib.pl
# Functions for editing text and dbm user files

# list_authusers(file)
# Returns an array of user names from the given file
sub list_authusers
{
local($_, @rv);
open(HTPASSWD, $_[0]);
while(<HTPASSWD>) {
	if (/^(\S+):(\S*)/) { push(@rv, $1); }
	}
close(HTPASSWD);
return @rv;
}

# get_authuser(file, name)
sub get_authuser
{
local($_, $rv);
open(HTPASSWD, $_[0]);
while(<HTPASSWD>) {
	if (/^(\S+):(\S*)/ && $1 eq $_[1]) {
		$rv = { 'user' => $1 , 'pass' => $2 };
		}
	}
close(HTPASSWD);
return $rv;
}

# save_authuser(file, olduser, &details)
sub save_authuser
{
local($_, @htpasswd);
open(HTPASSWD, $_[0]);
@htpasswd = <HTPASSWD>;
close(HTPASSWD);
open(HTPASSWD, "> $_[0]");
foreach (@htpasswd) {
	if (/^(\S+):(\S*)/ && $1 eq $_[1]) {
		print HTPASSWD $_[2]->{'user'},":",$_[2]->{'pass'},"\n";
		}
	else { print HTPASSWD $_; }
	}
close(HTPASSWD);
}

# create_authuser(file, &details)
# Add a new user to a file
sub create_authuser
{
open(HTPASSWD, ">> $_[0]");
print HTPASSWD $_[1]->{'user'},":",$_[1]->{'pass'},"\n";
close(HTPASSWD);
}

# delete_authuser(file, user)
# Delete some user from a file
sub delete_authuser
{
local($_, @htpasswd);
open(HTPASSWD, $_[0]);
@htpasswd = <HTPASSWD>;
close(HTPASSWD);
open(HTPASSWD, "> $_[0]");
foreach (@htpasswd) {
	if (!/^(\S+):(\S*)/ || $1 ne $_[1]) { print HTPASSWD $_; }
	}
close(HTPASSWD);
}

###########################################################################
# Group Functions
###########################################################################

# list_authgroups(file)
# Returns an array of associative arrays containing information about
# groups from some text file
sub list_authgroups
{
local($_, @rv);
open(HTGROUP, $_[0]);
while(<HTGROUP>) {
	if (/^(\S+):\s*(.*)/) {
		local($gr, @mems);
		$gr = $1; @mems = split(/\s+/, $2);
		push(@rv, { 'group' => $gr, 'members' => \@mems });
		}
	}
close(HTGROUP);
return @rv;
}

# get_authgroup(file, group)
sub get_authgroup
{
local(@tmp, $t);
@tmp = &list_authgroups($_[0]);
foreach $t (@tmp) {
	if ($t->{'group'} eq $_[1]) { return $t; }
	}
return undef;
}

# create_authgroup(file, &details)
sub create_authgroup
{
open(HTGROUP, ">> $_[0]");
print HTGROUP $_[1]->{'group'},": ",join(' ', @{$_[1]->{'members'}}),"\n";
close(HTGROUP);
}

# save_authgroup(file, oldgroup, &details)
sub save_authgroup
{
open(HTGROUP, $_[0]);
@htgroup = <HTGROUP>;
close(HTGROUP);
open(HTGROUP, "> $_[0]");
foreach (@htgroup) {
	if (/^(\S+):\s*(.*)/ && $1 eq $_[1]) {
		print HTGROUP $_[2]->{'group'},": ",
			      join(' ', @{$_[2]->{'members'}}),"\n";
		}
	else { print HTGROUP $_; }
	}
close(HTGROUP);
}

# delete_authgroup(file, group)
sub delete_authgroup
{
open(HTGROUP, $_[0]);
@htgroup = <HTGROUP>;
close(HTGROUP);
open(HTGROUP, "> $_[0]");
foreach (@htgroup) {
	if (!/^(\S+):\s*(.*)/ || $1 ne $_[1]) { print HTGROUP $_; }
	}
close(HTGROUP);
}

1;

  07070100015d9d000081a40000000000000002000000013ac03898000025fe000000200000000000000000000000000000001a00000003reloc/apache/autoindex.pl # autoindex.pl
# Directives in both mod_dir.pl and mod_autoindex.pl

@AddIcon_dirs = ("AddIcon", "AddIconByType", "AddIconByEncoding");
@AddIcon_descs = ("$text{'autoindex_fname'}", "$text{'autoindex_mime'}", "$text{'autoindex_enc'}");

sub edit_AddIcon_AddIconByType_AddIconByEncoding
{
local($rv, @all, $i, $j, $icon, $alt, $mode, $file);
$rv = "<table border>\n".
"<tr $tb> <td><b>$text{'autoindex_icon'}</b></td> <td><b>$text{'autoindex_alt'}</b></td>\n".
"<td><b>$text{'autoindex_match'}</b></td> <td><b>$text{'autoindex_fte'}</b></td></tr>\n";
@all = (@{$_[0]}, @{$_[1]}, @{$_[2]});
for($i=0; $i<=@all; $i++) {
	$d = $all[$i];
	if ($d) {
		if ($d->{'value'} =~ /^\((.*),(\S+)\)\s*(.*)$/) {
			$alt = $1; $icon = $2; $file = $3;
			}
		elsif ($d->{'value'} =~ /^(\S+)\s*(.*)$/) {
			$alt = ""; $icon = $1; $file = $2;
			}
		$mode = &indexof($d->{'name'}, @AddIcon_dirs);
		}
	else { $alt = $icon = $file = ""; $mode = 0; }

	$rv .="<tr $cb>\n";
	$rv .="<td><input name=AddIcon_icon_$i size=25 value=\"$icon\"></td>\n";
	$rv .="<td><input name=AddIcon_alt_$i size=10 value=\"$alt\"></td>\n";
	$rv .="<td><select name=AddIcon_mode_$i>\n";
	for($j=0; $j<@AddIcon_descs; $j++) {
		$rv .= sprintf "<option value=$j %s>%s\n",
		        $mode == $j ? "selected" : "", $AddIcon_descs[$j];
		}
	$rv .="</select></td>\n";
	$rv .="<td><input name=AddIcon_file_$i size=20 value=\"$file\"></td>\n";
	$rv .="</tr>\n";
	}
$rv .= "</table>\n";
return (2, "$text{'autoindex_diricon'}", $rv);
}
sub save_AddIcon_AddIconByType_AddIconByEncoding
{
local($i, $icon, $alt, $file, $mode, $aref, @ai, @ait, @aie);
for($i=0; defined($in{"AddIcon_icon_$i"}); $i++) {
	$icon = $in{"AddIcon_icon_$i"}; $alt = $in{"AddIcon_alt_$i"};
	$mode = $in{"AddIcon_mode_$i"}; $file = $in{"AddIcon_file_$i"};
	if ($icon !~ /\S/ && $file !~ /\S/) { next; }
	$icon =~ /^\S+$/ || &error(&text('autoindex_eiconurl', $icon));
	$file =~ /\S/ || &error(&text('autoindex_emiss', $AddIcon_descs[$mode], $icon));
	$aref = $mode==0 ? \@ai : $mode==1 ? \@ait : \@aie;
	if ($alt) { push(@$aref, "($alt,$icon) $file"); }
	else { push(@$aref, "$icon $file"); }
	}
return ( \@ai, \@ait, \@aie );
}

sub edit_DefaultIcon
{
return (1, "$text{'autoindex_deficon'}",
        &opt_input($_[0]->{'value'}, "DefaultIcon", "$text{'autoindex_default'}", 20));
}
sub save_DefaultIcon
{
return &parse_opt("DefaultIcon", '^\S+$', "$text{'autoindex_edeficon'}");
}

@AddAlt_dirs = ("AddAlt", "AddAltByType", "AddAltByEncoding");
@AddAlt_descs = ("Filename", "MIME type", "Encoding");

sub edit_AddAlt_AddAltByType_AddAltByEncoding
{
local($rv, @all, $i, $j, $alt, $mode, $file);
$rv = "<table border>\n".
"<tr $tb> <td><b>$text{'autoindex_alt'}</b></td>\n".
"<td><b>$text{'autoindex_match'}</b></td> <td><b>$text{'autoindex_fte'}</b></td></tr>\n";
@all = (@{$_[0]}, @{$_[1]}, @{$_[2]});
for($i=0; $i<=@all; $i++) {
	$d = $all[$i];
	if ($d->{'value'}) {
		$alt = $d->{'words'}->[0];
		@w = @{$d->{'words'}};
		$file = join(' ', @w[1..$#w]);
		$mode = &indexof($d->{'name'}, @AddAlt_dirs);
		}
	else { $alt = $file = ""; $mode = 0; }

	$rv .="<tr $cb>\n";
	$rv .="<td><input name=AddAlt_alt_$i size=20 value=\"$alt\"></td>\n";
	$rv .="<td><select name=AddAlt_mode_$i>\n";
	for($j=0; $j<@AddAlt_descs; $j++) {
		$rv .= sprintf "<option value=$j %s>%s\n",
		        $mode == $j ? "selected" : "", $AddAlt_descs[$j];
		}
	$rv .="</select></td>\n";
	$rv .="<td><input name=AddAlt_file_$i size=20 value=\"$file\"></td>\n";
	$rv .="</tr>\n";
	}
$rv .= "</table>\n";
return (2, "$text{'autoindex_diralt'}", $rv);
}
sub save_AddAlt_AddAltByType_AddAltByEncoding
{
local($i, $alt, $file, $mode, $aref, @ai, @ait, @aie);
for($i=0; defined($alt = $in{"AddAlt_alt_$i"}); $i++) {
	$mode = $in{"AddAlt_mode_$i"}; $file = $in{"AddAlt_file_$i"};
	if ($alt !~ /\S/ && $file !~ /\S/) { next; }
	$file =~ /\S/ || &error(&text('autoindex_emissquot', $AddAlt_descs[$mode], $alt));
	$aref = $mode==0 ? \@ai : $mode==1 ? \@ait : \@aie;
	push(@$aref, "\"$alt\" $file");
	}
return ( \@ai, \@ait, \@aie );
}

sub edit_AddDescription
{
local($rv, $i, $desc, $file);
$rv = "<table border>\n".
      "<tr $tb> <td><b>$text{'autoindex_desc'}</b></td> <td><b>$text{'autoindex_fnames'}</b></td> </tr>\n";
for($i=0; $i<=@{$_[0]}; $i++) {
	if ($_[0]->[$i] && $_[0]->[$i]->{'value'} =~ /^"(.*)"\s*(.*)$/)
		{ $desc = $1; $file = $2; }
	else { $desc = $file = ""; }
	$rv .= "<tr $cb> <td><input size=40 name=AddDescription_desc_$i ".
	       "value=\"$desc\"></td>\n";
	$rv .= "<td><input size=20 name=AddDescription_file_$i ".
	       "value=\"$file\"></td> </tr>\n";
	}
$rv .= "</table>\n";
return (2, "$text{'autoindex_dirdesc'}", $rv);
}
sub save_AddDescription
{
local($i, $desc, $file, @rv);
for($i=0; defined($in{"AddDescription_desc_$i"}); $i++) {
	$desc = $in{"AddDescription_desc_$i"};
	$file = $in{"AddDescription_file_$i"};
	if ($desc !~ /\S/ && $file !~ /\S/) { next; }
	$desc =~ /\S/ || &error(&text('autoindex_enodesc', $file));
	$file =~ /\S/ || &error(&text('autoindex_enofile', $desc));
	push(@rv, "\"$desc\" $file");
	}
return ( \@rv );
}

@IndexOptions_v =
	( "FancyIndexing", "ScanHTMLTitles", "IconHeight", "IconWidth",
	  "SuppressColumnSorting", "SuppressDescription",
	  "SuppressHTMLPreamble", "SuppressLastModified", "SuppressSize",
	  "IconsAreLinks", "NameWidth", "DescriptionWidth", "FoldersFirst" );
@IndexOptions_d =
	( "$text{'autoindex_fancy'}",
	  "$text{'autoindex_htmltitle'}",
	  "$text{'autoindex_iheight'}",
	  "$text{'autoindex_iwidth'}",
	  "$text{'autoindex_sort'}",
	  "$text{'autoindex_fildesc'}",
	  "$text{'autoindex_htags'}",
	  "$text{'autoindex_mtime'}",
	  "$text{'autoindex_size'}",
	  "$text{'autoindex_iconlink'}",
	  "$text{'autoindex_fwidth'}",
	  "$text{'autoindex_dwidth'}",
	  "$text{'autoindex_dirfirst'}" );
@IndexOptions_i = ( 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0 );
sub edit_IndexOptions_FancyIndexing
{
local($o, %opts, $i, $rv);
$rv = &choice_input($_[0] || $_[1] ? 0 : 1, "IndexOptions_def", 1,
		    "$text{'autoindex_default2'},1", "$text{'autoindex_select'},0");
foreach $o (split(/\s+/, $_[0]->{'value'})) {
	if ($o =~ /^(\S+)=(\S+)$/) { $opts{$1} = $2; }
	else { $opts{$o} = -1; }
	}
if ($_[1]->{'value'} eq "on") { $opts{'FancyIndexing'} = -1; }
$rv .= "<table border><tr><td><table cellpadding=0>\n";
local $sw = 0;
for($i=0; $i<@IndexOptions_v; $i++) {
	$o = $IndexOptions_v[$i];
	if ($_[2]->{'version'} < 1.3 &&
	    $o =~ /IconWidth|IconHeight|SuppressColumnSorting/) { next; }
	if ($_[2]->{'version'} < 1.302 &&
	    $o =~ /NameWidth|IconsAreLinks/) { next; }
	if ($_[2]->{'version'} < 1.310 &&
	    $o =~ /DescriptionWidth|FoldersFirst/) { next; }

	$rv .= "<tr>\n" if (!$sw);
	if ($IndexOptions_i[$i]) { $opts{$o} = -$opts{$o}-1; }
	$rv .= sprintf "<td><input type=checkbox name=Index_$o value=1 %s> %s\n",
	        $opts{$o} ? "checked" : "", $IndexOptions_d[$i];
	if ($o =~ /IconWidth|IconHeight/) {
		$rv .= "&nbsp;";
		$rv .= sprintf 
		        "<input type=radio name=Index_${o}_def value=1 %s> $text{'autoindex_default3'}\n",
		        $opts{$o} < 0 ? "checked" : "";
		$rv .= sprintf
		        "&nbsp;<input type=radio name=Index_${o}_def value=0 %s>\n",
		        $opts{$o} < 0 ? "" : "checked";
		$rv .= sprintf
		        "<input name=Index_${o}_wh size=5 value=\"%s\"> $text{'autoindex_pixels'}\n",
		        $opts{$o} < 0 ? "" : $opts{$o};
		}
	elsif ($o =~ /NameWidth|DescriptionWidth/) {
		$rv .= "&nbsp;";
		$rv .= sprintf
		        "<input name=Index_${o}_w size=5 value=\"%s\"> $text{'autoindex_chars'}\n",
		        $opts{$o} < 0 ? "" : $opts{$o};
		}
	$rv .= "</td>";
	$rv .= "</tr>\n" if ($sw);
	$sw = !$sw;
	}
$rv .= "</table></td></tr></table>\n";
return (2, "$text{'autoindex_diropt'}", $rv);
}
sub save_IndexOptions_FancyIndexing
{
local($i, $o, @rv, %opts);
if ($in{'IndexOptions_def'}) { return ( [ ], [ ] ); }
for($i=0; $i<@IndexOptions_v; $i++) {
	$o = $IndexOptions_v[$i];
	if ($_[0]->{'version'} < 1.3 &&
	    $o =~ /IconWidth|IconHeight|SuppressColumnSorting/) { next; }
	if ($_[0]->{'version'} < 1.302 &&
	    $o =~ /NameWidth|IconsAreLinks/) { next; }
	if ($_[0]->{'version'} < 1.310 &&
	    $o =~ /DescriptionWidth|FoldersFirst/) { next; }

	if ($in{"Index_$o"}) { $opts{$o} = -1; }
	if ($o =~ /IconWidth|IconHeight/ &&
	    $in{"Index_${o}"} && !$in{"Index_${o}_def"}) {
		$in{"Index_${o}_wh"} =~ /^[1-9]\d*$/ ||
			&error(&text('autoindex_eiconsize', $in{"Index_${o}_wh"}));
		$opts{$o} = $in{"Index_${o}_wh"};
		}
	elsif ($o =~ /NameWidth|DescriptionWidth/ && $in{"Index_${o}"}) {
		$in{"Index_${o}_w"} =~ /^[1-9]\d*$/ ||
			&error(&text('autoindex_ewidth', $in{"Index_$(o)_h"}));
		$opts{$o} = $in{"Index_${o}_w"};
		}
	if ($IndexOptions_i[$i]) { $opts{$o} = -$opts{$o}-1; }
	if ($opts{$o} < 0) { push(@rv, "$o"); }
	elsif ($opts{$o} > 0) { push(@rv, "$o=$opts{$o}"); }
	}
return ( [ join(' ', @rv) ], [ ] );
}

sub edit_HeaderName
{
return (1, "$text{'autoindex_dirhead'}",
        &opt_input($_[0]->{'value'}, "HeaderName", "$text{'autoindex_default4'}", 20));
}
sub save_HeaderName
{
return &parse_opt("HeaderName", '^\S+$', "$text{'autoindex_edirhead'}");
}

sub edit_ReadmeName
{
return (1, "$text{'autoindex_dirfoot'}",
        &opt_input($_[0]->{'value'}, "ReadmeName", "$text{'autoindex_default4'}", 20));
}
sub save_ReadmeName
{
return &parse_opt("ReadmeName", '^\S+$', "$text{'autoindex_edirfoot'}");
}

sub edit_IndexIgnore
{
local($rv, $i, @ii);
foreach $i (@{$_[0]}) { push(@ii, split(/\s+/, $i->{'value'})); }
$rv = join("\n", @ii);
return (1, "$text{'autoindex_ignore'}",
        "<textarea name=IndexIgnore rows=5 cols=20>$rv</textarea>");
}
sub save_IndexIgnore
{
local(@rv); @rv = split(/\s+/, $in{'IndexIgnore'});
if (!@rv) { return ( [ ] ); }
else { return ( [ join(' ', @rv) ] ); }
}

1;

  07070100015d9e000081a40000000000000002000000013ac038980000089c000000200000000000000000000000000000001d00000003reloc/apache/browsermatch.pl  #  browsermatch.pl
# Functions used in mod_browser.pl and mod_setenvif.pl

sub edit_BrowserMatch_BrowserMatchNoCase
{
local($d, @w, $i, @regex, @var, @val, @case, $rv);
foreach $d (@{$_[0]}, @{$_[1]}) {
	@w = @{$d->{'words'}};
	for($i=1; $i<@w; $i++) {
		push(@regex, $w[0]);
		if ($w[$i] =~ /^\!(\S+)$/) { push(@var, $1); push(@val, undef); }
		elsif ($w[$i] =~ /^(\S+)=(\S*)$/) { push(@var, $1); push(@val, $2); }
		else { push(@var, $w[$i]); push(@val, 1); }
		if ($d->{'name'} eq "BrowserMatch") { push(@case, 1); }
		else { push(@case, 0); }
		}
	}
push(@regex, ""); push(@var, ""); push(@val, ""); push(@case, 0);
$rv = "<table border>\n".
      "<tr $tb> <td><b>$text{'browsermatch_regexp'}</b></td> <td><b>$text{'browsermatch_case'}</b></td>\n".
      "<td><b>$text{'browsermatch_var'}</b></td> <td><b>$text{'browsermatch_value'}</b></td> </tr>\n";
for($i=0; $i<@regex; $i++) {
	$rv .= "<tr $cb>\n";
	$rv .= sprintf
	        "<td><input size=20 name=Browser_regex_$i value=\"%s\"></td>\n",
	        $regex[$i];
	$rv .= "<td>".&choice_input($case[$i], "Browser_case_$i", 1,
	       "$text{'yes'},1", "$text{'no'},0")."</td>\n";
	$rv .= sprintf
	        "<td><input size=20 name=Browser_var_$i value=\"%s\"></td>\n",
	        $var[$i];
	$rv .= "<td>".&opt_input($val[$i], "Browser_val_$i",
				 "$text{'browsermatch_clear'}", 10)."</td>\n";
	$rv .= "</tr>\n";
	}
$rv .= "</table>\n";
return (2, "$text{'browsermatch_txt'}", $rv);
}
sub save_BrowserMatch_BrowserMatchNoCase
{
local($i, $regex, $case, $var, $val, $set, $lastbm, $lastbmnc, @bm, @bmnc);
for($i=0; defined($regex = $in{"Browser_regex_$i"}); $i++) {
	$case = $in{"Browser_case_$i"}; $var = $in{"Browser_var_$i"};
	if ($regex !~ /\S/ && $var !~ /\S/) { next; }
	$var =~ /^\S+$/ || &error(&text('browsermatch_evar', $var));
	$val = $in{"Browser_val_$i"};
	$set = $in{"Browser_val_${i}_def"} ? "!$var" :
		$val eq "1" ? $var : "$var=$val";
	if ($case) {
		if ($regex eq $lastbm) { $bm[$#bm] .= " $set"; }
		else { push(@bm, "\"$regex\" $set"); }
		$lastbm = $regex;
		}
	else {
		if ($regex eq $lastbmnc) { $bmnc[$#bmnc] .= " $set"; }
		else { push(@bmnc, "\"$regex\" $set"); }
		$lastbmnc = $regex;
		}
	}
return ( \@bm, \@bmnc );
}

1;

07070100015d9f000081e40000000000000002000000013ac03898000004e4000000200000000000000000000000000000001c00000003reloc/apache/change_dir.cgi   #!/usr/local/bin/perl
# change_dir.cgi
# Modify or delete a <Directory>, <Files> or <Location> clause

require './apache-lib.pl';
&ReadParse();
($vconf, $v) = &get_virtual_config($in{'virt'});
&can_edit_virt($v) || &error($text{'virt_ecannot'});
$d = $vconf->[$in{'idx'}];
&lock_file($d->{'file'});
$lref = &read_file_lines($d->{'file'});
if ($in{'delete'}) {
	# deleting a directive
	$conf = &get_config();
	$gap = $d->{'eline'} - $d->{'line'} + 1;
	splice(@$lref, $d->{'line'}, $d->{'eline'} - $d->{'line'} + 1);
	splice(@$vconf, $in{'idx'}, 1);
	&renumber($conf, $d->{'line'}, $d->{'file'}, -$gap);
	}
else {
	# changing a directive
	if ($in{'regexp'}) {
		if ($httpd_modules{'core'} >= 1.3) {
			$newdir = "<$in{'type'}Match \"$in{'path'}\">";
			$enddir = "</$in{'type'}Match>";
			}
		else {
			$newdir = "<$in{'type'} ~ \"$in{'path'}\">";
			$enddir = "</$in{'type'}>";
			}
		}
	else {
		$newdir = "<$in{'type'} \"$in{'path'}\">";
		$enddir = "</$in{'type'}>";
		}
	$lref->[$d->{'line'}] = $newdir;
	$lref->[$d->{'eline'}] = $enddir;
	}
&flush_file_lines();
&unlock_file($d->{'file'});
&webmin_log("dir", $in{'delete'} ? 'delete' : 'save',
	    &virtual_name($v, 1).":".$d->{'words'}->[0], \%in);
&redirect("virt_index.cgi?virt=$in{'virt'}");

07070100015da0000081e40000000000000002000000013ac03898000004e4000000200000000000000000000000000000001e00000003reloc/apache/change_files.cgi #!/usr/local/bin/perl
# change_files.cgi
# Modify or delete a <Files> clause in a .htaccess file

require './apache-lib.pl';
&ReadParse();
$access{'global'} || &error($text{'htaccess_ecannot'});
&allowed_auth_file($in{'file'}) ||
	&error($text{'htindex_ecannot'});
$hconf = &get_htaccess_config($in{'file'});
$d = $hconf->[$in{'idx'}];
&lock_file($d->{'file'});
$lref = &read_file_lines($d->{'file'});

if ($in{'delete'}) {
	# deleting a directive
	$gap = $d->{'eline'} - $d->{'line'} + 1;
	splice(@$lref, $d->{'line'}, $d->{'eline'} - $d->{'line'} + 1);
	splice(@$hconf, $in{'idx'}, 1);
	&renumber($hconf, $d->{'line'}, $d->{'file'}, -$gap);
	}
else {
	# changing a directive
	if ($in{'regexp'}) {
		if ($httpd_modules{'core'} >= 1.3) {
			$newdir = "<FilesMatch \"$in{'path'}\">";
			$enddir = "</FilesMatch>";
			}
		else {
			$newdir = "<Files ~ \"$in{'path'}\">";
			$enddir = "</Files>";
			}
		}
	else {
		$newdir = "<Files \"$in{'path'}\">";
		$enddir = "</Files>";
		}
	$lref->[$d->{'line'}] = $newdir;
	$lref->[$d->{'eline'}] = $enddir;
	}
&flush_file_lines();
&unlock_file($d->{'file'});
&webmin_log("files", $in{'delete'} ? 'delete' : 'save',
	    "$in{'file'}:$d->{'words'}->[0]", \%in);
&redirect("htaccess_index.cgi?file=$in{'file'}");

07070100015da1000081a40000000000000002000000013ac03898000000a5000000200000000000000000000000000000001800000003reloc/apache/config-aix   httpd_path=/usr/local/bin/httpd
apachectl_path=/usr/local/bin/apachectl
httpd_conf=
httpd_dir=/usr/local
mime_types=
srm_conf=
access_conf=
show_list=0
show_order=0
   07070100015da2000081a40000000000000002000000013ac03898000000b0000000200000000000000000000000000000002100000003reloc/apache/config-cobalt-linux  show_list=0
httpd_dir=/etc/httpd
httpd_path=/usr/sbin/httpd
mime_types=/etc/mime.types
start_cmd=/etc/rc.d/init.d/httpd start
stop_cmd=/etc/rc.d/init.d/httpd stop
show_order=0
07070100015da3000081a40000000000000002000000013ac0389700000115000000200000000000000000000000000000002000000003reloc/apache/config-corel-linux   show_list=0
httpd_dir=/etc/apache
httpd_path=/usr/sbin/apache
httpd_conf=/etc/apache/httpd.conf
srm_conf=/etc/apache/srm.conf
access_conf=/etc/apache/access.conf
mime_types=/etc/apache/mime.types
start_cmd=/etc/init.d/apache start
stop_cmd=/etc/init.d/apache stop
show_order=0
   07070100015da4000081a40000000000000002000000013ac0389800000115000000200000000000000000000000000000002100000003reloc/apache/config-debian-linux  show_list=0
httpd_dir=/etc/apache
httpd_path=/usr/sbin/apache
httpd_conf=/etc/apache/httpd.conf
srm_conf=/etc/apache/srm.conf
access_conf=/etc/apache/access.conf
mime_types=/etc/apache/mime.types
start_cmd=/etc/init.d/apache start
stop_cmd=/etc/init.d/apache stop
show_order=0
   07070100015da5000081a40000000000000002000000013ac0389800000131000000200000000000000000000000000000001c00000003reloc/apache/config-freebsd   show_list=0
httpd_dir=/usr/local/etc/apache
httpd_path=/usr/local/sbin/httpd
apachectl_path=/usr/local/sbin/apachectl
httpd_conf=/usr/local/etc/apache/httpd.conf
mime_types=/usr/local/etc/apache/mime.types
srm_conf=/usr/local/etc/apache/srm.conf
access_conf=/usr/local/etc/apache/access.conf
show_order=0
   07070100015da6000081a40000000000000002000000013ac03898000000ba000000200000000000000000000000000000001900000003reloc/apache/config-hpux  show_list=0
httpd_path=/usr/local/apache/bin/httpd
apachectl_path=/usr/local/apache/bin/apachectl
httpd_conf=
httpd_dir=/usr/local/apache
mime_types=
srm_conf=
access_conf=
show_order=0
  07070100015da7000081a40000000000000002000000013ac03897000000ba000000200000000000000000000000000000001900000003reloc/apache/config-irix  show_list=0
httpd_path=/usr/local/apache/bin/httpd
apachectl_path=/usr/local/apache/bin/apachectl
httpd_conf=
httpd_dir=/usr/local/apache
mime_types=
srm_conf=
access_conf=
show_order=0
  07070100015da8000081a40000000000000002000000013ac0389800000170000000200000000000000000000000000000001e00000003reloc/apache/config-lfs-linux httpd_path=/usr/apache/bin/httpd
stop_cmd=/usr/apache/bin/apachectl stop
httpd_conf=/usr/apache/conf/httpd.conf
start_cmd=/usr/apache/bin/apachectl start
apachectl_path=/usr/apache/bin/apachectl
httpd_dir=/usr/apache
show_order=0
mime_types=/usr/apache/conf/mime.types
show_list=0
virt_file=
srm_conf=/usr/apache/conf/srm.conf
access_conf=/usr/apache/conf/access.conf
07070100015da9000081a40000000000000002000000013ac038980000018e000000200000000000000000000000000000001a00000003reloc/apache/config-macos httpd_path=/usr/sbin/apache
apachectl_path=/usr/sbin/apachectl
start_cmd=
httpd_dir=/Local/Library/WebServer
virt_file=
access_conf=/Local/Library/WebServer/Configuration/access.conf
srm_conf=/Local/Library/WebServer/Configuration/srm.conf
stop_cmd=
httpd_conf=/Local/Library/WebServer/Configuration/apache.conf
show_list=0
mime_types=/Local/Library/WebServer/Configuration/mime.types
show_order=0
  07070100015daa000081a40000000000000002000000013ac03897000000f7000000200000000000000000000000000000001e00000003reloc/apache/config-macos-1.3 httpd_path=/usr/sbin/httpd
apachectl_path=/usr/sbin/apachectl
start_cmd=
httpd_dir=/etc/httpd
virt_file=
access_conf=/dev/null
srm_conf=/dev/null
stop_cmd=
httpd_conf=/etc/httpd/httpd.conf
show_list=0
mime_types=/etc/httpd/mime.types
show_order=0
 07070100015dab000081a40000000000000002000000013ac03898000000f2000000200000000000000000000000000000002300000003reloc/apache/config-open-linux-2.3    show_list=0
httpd_dir=/etc/httpd/apache
httpd_path=/usr/sbin/httpd.apache
mime_types=/etc/mime.types
stop_cmd=/etc/rc.d/init.d/httpd stop
start_cmd=/etc/rc.d/init.d/httpd start
show_order=0
defines=AUTH_MYSQL DAV JSERV PERL PHP3 PHP4 ROAMING
  07070100015dac000081a40000000000000002000000013ac03898000000e4000000200000000000000000000000000000002400000003reloc/apache/config-open-linux-2.3e   show_list=0
httpd_dir=/etc/httpd
httpd_path=/usr/sbin/httpd
mime_types=/etc/mime.types
stop_cmd=/etc/rc.d/init.d/httpd stop
start_cmd=/etc/rc.d/init.d/httpd start
show_order=0
defines=AUTH_MYSQL DAV JSERV PERL PHP3 PHP4 ROAMING
07070100015dad000081a40000000000000002000000013ac03897000000e4000000200000000000000000000000000000002300000003reloc/apache/config-open-linux-2.4    show_list=0
httpd_dir=/etc/httpd
httpd_path=/usr/sbin/httpd
mime_types=/etc/mime.types
stop_cmd=/etc/rc.d/init.d/httpd stop
start_cmd=/etc/rc.d/init.d/httpd start
show_order=0
defines=AUTH_MYSQL DAV JSERV PERL PHP3 PHP4 ROAMING
07070100015dae000081a40000000000000002000000013ac0389800000145000000200000000000000000000000000000002300000003reloc/apache/config-open-linux-2.5    show_list=0
httpd_dir=/etc/httpd
httpd_path=/usr/sbin/httpd
mime_types=/etc/mime.types
stop_cmd=/etc/rc.d/init.d/httpd stop
start_cmd=/etc/rc.d/init.d/httpd start
show_order=0
httpd_conf=/etc/httpd/httpd.conf
srm_conf=/etc/httpd/srm.conf
access_conf=/etc/httpd/access.conf
defines=AUTH_MYSQL DAV JSERV PERL PHP3 PHP4 ROAMING
   07070100015daf000081a40000000000000002000000013ac0389800000145000000200000000000000000000000000000002400000003reloc/apache/config-open-linux-3.1e   show_list=0
httpd_dir=/etc/httpd
httpd_path=/usr/sbin/httpd
mime_types=/etc/mime.types
stop_cmd=/etc/rc.d/init.d/httpd stop
start_cmd=/etc/rc.d/init.d/httpd start
show_order=0
httpd_conf=/etc/httpd/httpd.conf
srm_conf=/etc/httpd/srm.conf
access_conf=/etc/httpd/access.conf
defines=AUTH_MYSQL DAV JSERV PERL PHP3 PHP4 ROAMING
   07070100015db0000081a40000000000000002000000013ac03897000000f8000000200000000000000000000000000000001c00000003reloc/apache/config-openbsd   show_list=0
httpd_dir=/var/www
httpd_path=/usr/sbin/httpd
apachectl_path=/usr/sbin/apachectl
httpd_conf=/var/www/conf/httpd.conf
mime_types=/var/www/conf/mime.types
srm_conf=/var/www/conf/srm.conf
access_conf=/var/www/conf/access.conf
show_order=0
07070100015db1000081a40000000000000002000000013ac0389800000146000000200000000000000000000000000000001f00000003reloc/apache/config-openserver    show_list=0
httpd_path=/usr/local/lib/apache/bin/httpd
apachectl_path=/usr/local/lib/apache/bin/apachectl
httpd_conf=/usr/local/lib/apache/conf/httpd.conf
httpd_dir=/usr/local/lib/apache
mime_types=/usr/local/lib/apache/conf/mime.types
srm_conf=
access_conf=
start_cmd=/etc/apache start
stop_cmd=/etc/apache stop
show_order=0
  07070100015db2000081a40000000000000002000000013ac03897000000ba000000200000000000000000000000000000001900000003reloc/apache/config-osf1  show_list=0
httpd_path=/usr/local/apache/bin/httpd
apachectl_path=/usr/local/apache/bin/apachectl
httpd_conf=
httpd_dir=/usr/local/apache
mime_types=
srm_conf=
access_conf=
show_order=0
  07070100015db3000081a40000000000000002000000013ac03897000000b0000000200000000000000000000000000000002100000003reloc/apache/config-redhat-linux  show_list=0
httpd_dir=/etc/httpd
httpd_path=/usr/sbin/httpd
mime_types=/etc/mime.types
start_cmd=/etc/rc.d/init.d/httpd start
stop_cmd=/etc/rc.d/init.d/httpd stop
show_order=0
07070100015db4000081a40000000000000002000000013ac0389800000102000000200000000000000000000000000000002500000003reloc/apache/config-redhat-linux-7.0  show_list=0
httpd_dir=/etc/httpd
httpd_path=/usr/sbin/httpd
mime_types=/etc/mime.types
start_cmd=/etc/rc.d/init.d/httpd start
stop_cmd=/etc/rc.d/init.d/httpd stop
show_order=0
defines=HAVE_PERL HAVE_PHP HAVE_PHP3 HAVE_PHP4 HAVE_DAV HAVE_ROAMING HAVE_SSL SSL
  07070100015db5000081a40000000000000002000000013ac0389800000102000000200000000000000000000000000000002500000003reloc/apache/config-redhat-linux-7.1  show_list=0
httpd_dir=/etc/httpd
httpd_path=/usr/sbin/httpd
mime_types=/etc/mime.types
start_cmd=/etc/rc.d/init.d/httpd start
stop_cmd=/etc/rc.d/init.d/httpd stop
show_order=0
defines=HAVE_PERL HAVE_PHP HAVE_PHP3 HAVE_PHP4 HAVE_DAV HAVE_ROAMING HAVE_SSL SSL
  07070100015db6000081a40000000000000002000000013ac038970000004d000000200000000000000000000000000000002400000003reloc/apache/config-slackware-linux   show_list=0
httpd_dir=/var/lib/httpd
httpd_path=/usr/sbin/httpd
show_order=0
   07070100015db7000081a40000000000000002000000013ac03897000000d6000000200000000000000000000000000000002800000003reloc/apache/config-slackware-linux-7.0   httpd_path=/var/lib/apache/sbin/httpd
start_cmd=
apachectl_path=/var/lib/apache/sbin/apachectl
httpd_dir=/var/lib/apache
virt_file=
access_conf=
srm_conf=
stop_cmd=
httpd_conf=
mime_types=
show_order=0
show_list=0
  07070100015db8000081a40000000000000002000000013ac03898000000d6000000200000000000000000000000000000002800000003reloc/apache/config-slackware-linux-7.1   httpd_path=/var/lib/apache/sbin/httpd
start_cmd=
apachectl_path=/var/lib/apache/sbin/apachectl
httpd_dir=/var/lib/apache
virt_file=
access_conf=
srm_conf=
stop_cmd=
httpd_conf=
mime_types=
show_order=0
show_list=0
  07070100015db9000081a40000000000000002000000013ac03898000000ba000000200000000000000000000000000000001c00000003reloc/apache/config-solaris   show_list=0
httpd_path=/usr/local/apache/bin/httpd
apachectl_path=/usr/local/apache/bin/apachectl
httpd_conf=
httpd_dir=/usr/local/apache
mime_types=
srm_conf=
access_conf=
show_order=0
  07070100015dba000081a40000000000000002000000013ac0389800000117000000200000000000000000000000000000001f00000003reloc/apache/config-suse-linux    show_list=0
httpd_dir=/usr/local/httpd
httpd_conf=/etc/httpd/httpd.conf
srm_conf=/etc/httpd/srm.conf
access_conf=/etc/httpd/access.conf
mime_types=/etc/httpd/mime.types
httpd_path=/usr/sbin/httpd
start_cmd=/sbin/init.d/apache start
stop_cmd=/sbin/init.d/apache stop
show_order=0
 07070100015dbb000081a40000000000000002000000013ac0389800000115000000200000000000000000000000000000002300000003reloc/apache/config-suse-linux-7.1    show_list=0
httpd_dir=/usr/local/httpd
httpd_conf=/etc/httpd/httpd.conf
srm_conf=/etc/httpd/srm.conf
access_conf=/etc/httpd/access.conf
mime_types=/etc/httpd/mime.types
httpd_path=/usr/sbin/httpd
start_cmd=/etc/init.d/apache start
stop_cmd=/etc/init.d/apache stop
show_order=0
   07070100015dbc000081a40000000000000002000000013ac03897000000b0000000200000000000000000000000000000002000000003reloc/apache/config-turbo-linux   show_list=0
httpd_dir=/etc/httpd
httpd_path=/usr/sbin/httpd
mime_types=/etc/mime.types
start_cmd=/etc/rc.d/init.d/httpd start
stop_cmd=/etc/rc.d/init.d/httpd stop
show_order=0
07070100015dbd000081a40000000000000002000000013ac0389800000146000000200000000000000000000000000000001d00000003reloc/apache/config-unixware  show_list=0
httpd_path=/usr/local/lib/apache/bin/httpd
apachectl_path=/usr/local/lib/apache/bin/apachectl
httpd_conf=/usr/local/lib/apache/conf/httpd.conf
httpd_dir=/usr/local/lib/apache
mime_types=/usr/local/lib/apache/conf/mime.types
srm_conf=
access_conf=
start_cmd=/etc/apache start
stop_cmd=/etc/apache stop
show_order=0
  07070100015dbe000081a40000000000000002000000013ac0389700000248000000200000000000000000000000000000001900000003reloc/apache/config.info  httpd_dir=Apache server root directory,0
httpd_path=Path to httpd executable,0
apachectl_path=Path to the apachectl command,3,None
start_cmd=Command to start apache,3,Automatic
stop_cmd=Command to stop apache,3,Automatic
show_list=Display virtual servers as,1,0-Icons,1-List
show_order=Order virtual servers by,1,0-Order in config files,1-Server name,2-IP Address
httpd_conf=Path to httpd.conf,3,Automatic
srm_conf=Path to srm.conf,3,Automatic
access_conf=Path to access.conf,3,Automatic
mime_types=Path to mime.types,3,Automatic
virt_file=File to add virtual servers to,3,httpd.conf
07070100015dbf000081a40000000000000002000000013ac03897000002aa000000200000000000000000000000000000001c00000003reloc/apache/config.info.de   httpd_dir=Apache Server Root Verzeichnis,0
httpd_path=Pfad zur ausf&uuml;hrbaren Datei httpd,0
apachectl_path=Pfad zum apachectl Kommando,3,None
start_cmd=Kommando zum starten von Apache,3,Automatisch
stop_cmd=Kommando zum stoppen von Apache,3,Automatisch
show_list=Zeige virtuelle Server an als,1,0-Icons,1-Liste
show_order=Sortiere virtuelle Server nach,1,0-Reihenfolge in Konfigurationsdatei(en),1-Server Name,2-IP Adresse
httpd_conf=Pfad zu httpd.conf,3,Automatisch
srm_conf=Pfad zu srm.conf,3,Automatisch
access_conf=Pfad zu access.conf,3,Automatisch
mime_types=Pfad zu mime.types,3,Automatisch
virt_file=Datei, der virtuelle Server hinzugef&uuml;gt werden sollen,3,httpd.conf
  07070100015dc0000081a40000000000000002000000013ac03897000002b1000000200000000000000000000000000000001c00000003reloc/apache/config.info.es   httpd_dir=Directorio ra韟 de servidor Apache,0
httpd_path=Trayectoria a ejecutable httpd,0
apachectl_path=Trayectoria a comando apachectl,3,Ninguna
start_cmd=Comando para arrancar apache,3,Autom醫ico
stop_cmd=Comando para parar apache,3,Autom醫ico
show_list=Mostrar servidores virtuales como,1,0-Iconos,1-Lista
show_order=Ordenar servidores virtuales por,1,0-Orden en archivos de configuraci髇,1-Nombre de servidor,2-Direcci髇 IP
httpd_conf=Trayectoria a httpd.conf,3,Autom醫ica
srm_conf=Trayectoria a srm.conf,3,Autom醫ica
access_conf=Trayectoria a access.conf,3,Autom醫ica
mime_types=Trayectoria a mime.types,3,Autom醫ica
virt_file=Archivo donde a馻dir servidores virtuales,3,httpd.conf
   07070100015dc1000081a40000000000000002000000013ac03897000002c7000000200000000000000000000000000000001c00000003reloc/apache/config.info.fr   httpd_dir=R閜ertoire racine d'Apache,0
httpd_path=Chemin de l'ex閏utable httpd,0
apachectl_path=Chemin pour la commande apachectl,3,Aucun
start_cmd=Commande pour d閙arrer apache,3,Automatique
stop_cmd=Commande pour arr阾er apache,3,Automatique
show_list=Affichage tout serveur virtuel comme,1,0-Ic鬾es,1-Liste
show_order=Ordre des serveurs virtuels,1,0-Ordre dans le fichier de configuration,1-Nom de serveur,2-Adresse IP
httpd_conf=Chemin du fichier httpd.conf,3,Automatique
srm_conf=Chemin du fichier srm.conf,3,Automatique
access_conf=Chemin du fichier access.conf,3,Automatique
mime_types=Chemin du fichier mime.types,3,Automatique
virt_file=Fichier pour ajouter un serveur virtuel,3,httpd.conf
 07070100015dc2000081a40000000000000002000000013ac03898000002dc000000200000000000000000000000000000001c00000003reloc/apache/config.info.hu   httpd_dir=Apache kiszolg醠 gy鰇閞k鰊yvt醨,0
httpd_path=趖vonal a futtathat httpd-hez,0
apachectl_path=趖vonal az apachectl parancshoz,3,Nincs
start_cmd=Parancs az apache elind韙醩醜oz,3,Automatikus
stop_cmd=Parancs az apache meg醠l韙醩醜oz,3,Automatikus
show_list=Virtu醠is kiszolg醟 megjelen韙閟e mint,1,0-Ikon,1-Lista
show_order=Virtu醠is kiszolg醠髃 rendszerez閟e,1,0-A konfigur醕i髎 f醞lok sorrendje szerint,1-Kiszolg醠 neve alapj醤,2-IP-c韒 alapj醤
httpd_conf=趖vonal a httpd.conf-hoz,3,Automatikus
srm_conf=趖vonal az srm.conf-hoz,3,Automatikus
access_conf=趖vonal az access.conf-hoz,3,Automatikus
mime_types=趖vonal az mime.types-hoz,3,Automatikus
virt_file=Virtu醠is kiszolg醠髃 hozz醓d醩a az al醔bi f醞lhoz,3,httpd.conf
07070100015dc3000081e40000000000000002000000013ac0389700000287000000200000000000000000000000000000001c00000003reloc/apache/config.info.nl   httpd_dir=Apache server hoofd directory,0
httpd_path=Pad naar httpd programma,0
apachectl_path=Pad naar het apachectl commando,3,een
start_cmd=Commando om apache te starten,3,Automatisch
stop_cmd=Commando om apache te stoppen,3,Automatisch
show_list=Geef virtuele servers weer als,1,0-Iconen,1-Lijst
show_order=Sorteer virtuele servers op,1,0-Volgorde in configuratie bestand,1-Servernaam,2-IP Adres
httpd_conf=Pad naar httpd.conf,3,Automatisch
srm_conf=Pad naar srm.conf,3,Automatisch
access_conf=Pad naar access.conf,3,Automatisch
mime_types=Pad naar mime.types,3,Automatisch
virt_file=Bestand om virtuele servers aan toe te voegen,3,httpd.conf
 07070100015dc4000081a40000000000000002000000013ac03898000002ba000000200000000000000000000000000000001c00000003reloc/apache/config.info.pl   httpd_dir=Katalog g丑wny serwera Apache,0
httpd_path=ie縦a do pliku programu httpd,0
apachectl_path=ie縦a do polecenia apachectl,3,Brak
start_cmd=Polecenie uruchamiaj眂e apache'a,3,Automatycznie
stop_cmd=Polecenie zatrzymuj眂e apache'a,3,Automatycznie
show_list=Wy秝ietlanie serwer體 wirtualnych jako,1,0-Ikony,1-List
show_order=Kolejno舵 serwer體 wirtualnych wg,1,0-Porz眃ku w&nbsp;plikach konfiguracyjnych,1-Nazwy servera,2-Adresu IP
httpd_conf=ie縦a do httpd.conf,3,Automatycznie
srm_conf=ie縦a do srm.conf,3,Automatycznie
access_conf=ie縦a do access.conf,3,Automatycznie
mime_types=ie縦a do mime.types,3,Automatycznie
virt_file=Serwery wirtualne dodawane w&nbsp;pliku,3,httpd.conf
  07070100015dc5000081a40000000000000002000000013ac0389700000293000000200000000000000000000000000000001f00000003reloc/apache/config.info.ru_RU    httpd_path=象螯  桉镫铐屐铎 祛潴膻 httpd,0
start_cmd=暑爨礓 潆 耱囵蜞 apache,3,棱蝾爨蜩麇耜
apachectl_path=象螯  觐爨礓 apachectl,3,湾
httpd_dir=暑痦邂铋 赅蜞腩 皴疴屦 Apache,0
virt_file=脏殡 潆 漕徉怆屙 忤痱筻朦睇 皴疴屦钼,3,httpd.conf
access_conf=象螯  access.conf,3,棱蝾爨蜩麇耜
srm_conf=象螯  srm.conf,3,棱蝾爨蜩麇耜
stop_cmd=暑爨礓 潆 铖蜞眍怅 apache,3,棱蝾爨蜩麇耜
httpd_conf=象螯  httpd.conf,3,棱蝾爨蜩麇耜
mime_types=象螯  mime.types,3,棱蝾爨蜩麇耜
show_list=项赅琨忄螯 忤痱筻朦睇 皴疴屦 赅,1,0-翔牝钽疣祆,1-扬桉铌
show_order=语铕漕麒螯 忤痱筻朦睇 皴疴屦 镱,1,0-暑眙桡箴圉桀眄 羿殡囔,1-褥屙囔 皴疴屦钼,2-IP 冷疱襦
 07070100015dc6000081a40000000000000002000000013ac0389700000293000000200000000000000000000000000000001f00000003reloc/apache/config.info.ru_SU    httpd_dir=胂椅抛鲜 肆粤滔 优易乓 Apache,0
httpd_path=鹫载  捎刑衔雅拖驼 拖恼汤 httpd,0
apachectl_path=鹫载  讼土文 apachectl,3,钆
start_cmd=胂土文 奶 釉烈粤 apache,3,嶙韵土陨夼铀
stop_cmd=胂土文 奶 嫌粤蜗姿 apache,3,嶙韵土陨夼铀
show_list=鹣肆谫琢载 咨以樟特钨 优易乓 肆,1,0-鹕嗽锨伊屯,1-笮捎纤
show_order=跣弦涯限稍 咨以樟特钨 优易乓 邢,1,0-胂纹汕找撩上挝偻 屏侍镣,1-橥盼镣 优易乓献,2-IP 崮遗恿
httpd_conf=鹫载  httpd.conf,3,嶙韵土陨夼铀
srm_conf=鹫载  srm.conf,3,嶙韵土陨夼铀
access_conf=鹫载  access.conf,3,嶙韵土陨夼铀
mime_types=鹫载  mime.types,3,嶙韵土陨夼铀
virt_file=媪侍 奶 南铝滋盼裳 咨以樟特钨 优易乓献,3,httpd.conf
 07070100015dc7000081a40000000000000002000000013ac038980000027b000000200000000000000000000000000000001c00000003reloc/apache/config.info.sv   httpd_dir=Apacheserver-rotkatalog,0
httpd_path=S鰇v鋑 till exekverbar httpd-fil,0
apachectl_path=S鰇v鋑 till kommando apachectl,3,Inget
start_cmd=Kommando f鰎 att starta apache,3,Automatisk
stop_cmd=Kommando f鰎 att stoppa apache,3,Automatisk
show_list=Visa virtuella servrar som,1,0-Ikoner,1-Lista
show_order=Sortera virtuella servrar,1,0-konfigurationsfilordning,1-servernamn,2-IP-adress
httpd_conf=S鰇v鋑 till httpd.conf,3,Automatisk
srm_conf=S鰇v鋑 till srm.conf,3,Automatisk
access_conf=S鰇v鋑 till access.conf,3,Automatisk
mime_types=S鰇v鋑 till mime.types,3,Automatisk
virt_file=L鋑g till virtuella servrar i filen,3,httpd.conf
 07070100015dc8000081a40000000000000002000000013ac0389800000284000000200000000000000000000000000000001c00000003reloc/apache/config.info.tr   httpd_dir=Apache sunucusu root dizini,0
httpd_path=httpd 鏰lt齬齦abilirinin yolu,0
apachectl_path=apachectl komutunun yolu ,3,None
start_cmd=Apache'yi baatma komutu,3,Automatic
stop_cmd=Apache'yi durdurma komutu,3,Automatic
show_list=Sanal sunucular ⺷ 㧐kilde g鰎黱t黮e,1,0-Icons,1-List
show_order=Sanal sunucular齨 g鰎黱t黮enmesi,1,0-Yap齦and齬ma dosyalar齳la,1-Sunucu ad,2-IP Adresi
httpd_conf=httpd.conf dosyas yolu,3,Otomatik
srm_conf=srm.conf dosyas yolu,3,Otomatik
access_conf=access.conf dosyas yolu,3,Otomatik
mime_types=mime.types dosyas yolu,3,Otomatik
virt_file=Sanal sunucular齨 eklenece餴 dosya,3,httpd.conf
07070100015dc9000081a40000000000000002000000013ac03898000001d5000000200000000000000000000000000000001f00000003reloc/apache/config.info.zh_CN    httpd_dir=Apache服务器根目录,0
httpd_path=httpd执行文件路径,0
apachectl_path=命令apachectl的路径,3,没有
start_cmd=启动apache命令,3,自动
stop_cmd=停止apache命令,3,自动
show_list=虚拟服务器显示方式,1,0-图标,1-列表
show_order=虚拟服务器排序方式,1,0-按配置文件的设置,1-按服务器名,2-按IP地址
httpd_conf=httpd.conf的路径,3,自动
srm_conf=srm.conf的路径,3,自动
access_conf=access.conf的路径,3,自动
mime_types=mime.types的路径,3,自动
virt_file=增加虚拟服务器的文件,3,httpd.conf
   07070100015dca000081a40000000000000002000000013ac0389800000224000000200000000000000000000000000000002400000003reloc/apache/config.info.zh_TW.Big5   httpd_dir=Apache 狝竟ヘ魁,0
httpd_path= httpd 磅︽郎隔畖,0
apachectl_path= Apachectl 隔畖,3,None
start_cmd=币笆 Apache ㏑,3,Automatic
stop_cmd=氨ゎ Apache ㏑,3,Automatic
show_list=店览诀陪ボ妓Α,1,0-瓜ボ,1-
show_order=店览诀逼よΑ,1,0-ㄌ沮舱篈郎い抖,1-ㄌ沮狝竟嘿,2-ㄌ沮 IP 
httpd_conf= httpd.conf 隔畖,3,Automatic
srm_conf= srm.conf 隔畖,3,Automatic
access_conf= access.conf 隔畖,3,Automatic
mime_types= mime.types 隔畖,3,Automatic
virt_file=糤店览诀砞﹚郎,3,httpd.conf
07070100015dcb000081a40000000000000002000000013ac0389800000051000000200000000000000000000000000000002500000003reloc/apache/config_solaris.txt.1.25  httpd_dir=/usr/local/webadmin/apache/test
httpd_path=/jaz/apache_1.2.5/src/httpd
   07070100015dcc000081a40000000000000002000000013ac0389700007f44000000200000000000000000000000000000001500000003reloc/apache/core.pl  # core.pl
# Defines the core module directives

# core_directives(version)
# Returns ar array of references to associative arrays, each containing
# information about some directive. The keys of each array are:
#  name -	The name of this directive
#  type -	What kind of directive this in. Possible values are
#		0 - Processes and limits
#		1 - Networking and addresses
#		2 - Apache Modules
#		3 - Log files
#		4 - Access control
#		5 - document options
#		6 - MIME types
#		7 - Error handling
#		8 - Users and Groups
#		9 - Miscellaneous
#		10- Aliases and redirects
#		11- CGI programs
#		12- Directory indexing
#		13- Proxying
#		14- SSL
#		15- Perl
#		16- PHP
#  multiple -	Can this directive appear multiple times
#  global -	Can be used in the global server context
#  virtual -	Can be used in a VirtualHost section or in the global section
#  directory -	Can be used in a Directory section context
#  htaccess -	Can be used in a .htaccess file
sub core_directives
{
local($rv);
$rv = [	[ 'AccessFileName', 0, 5, 'virtual', undef, 5 ],
	[ 'ClearModuleList AddModule', 1, 2, 'global' ],
	[ 'AllowOverride', 0, 5, 'directory' ],
	[ 'AuthName', 0, 4, 'directory htaccess', undef, 10 ],
	[ 'AuthType', 0, 4, 'directory htaccess', undef, 8 ],
	[ 'BindAddress Listen Port', 1, 1, 'global' ],
	[ 'ContentDigest', 0, 5, 'virtual directory htaccess' ],
	[ 'CoreDumpDirectory', 0, 9, 'global', 1.3 ],
	[ 'DefaultType', 0, 6, 'virtual directory htaccess' ],
	[ 'DocumentRoot', 0, 5, 'virtual', undef, 10 ],
	[ 'ErrorDocument', 1, 7, 'virtual directory htaccess' ],
	[ 'ErrorLog', 0, 3, 'virtual' ],
	[ 'Group', 0, 8, 'virtual' ],
	[ 'HostNameLookups', 0, 1, 'virtual directory htaccess' ],
	[ 'IdentityCheck', 0, 1, 'virtual directory htaccess' ],
	[ 'KeepAlive MaxKeepAliveRequests', 0, 1, 'global' ],
	[ 'KeepAliveTimeout', 0, 1, 'global' ],
	[ 'ListenBacklog', 0, 1, 'global', 1.2 ],
	[ 'LockFile', 0, 9, 'global' ],
	[ 'LimitRequestBody', 0, 0, 'virtual directory htaccess', 1.302 ],
	[ 'LimitRequestFields', 0, 0, 'global', 1.302 ],
	[ 'LimitRequestFieldsize', 0, 0, 'global', 1.302 ],
	[ 'LimitRequestLine', 0, 0, 'global', 1.302 ],
	[ 'MaxClients', 0, 0, 'global' ],
	[ 'MaxRequestsPerChild', 0, 0, 'global' ],
	[ 'StartServers', 0, 0, 'global' ],
	[ 'MinSpareServers', 0, 0, 'global' ],
	[ 'MaxSpareServers', 0, 0, 'global' ],
	[ 'NameVirtualHost', 1, 1, 'global', 1.3 ],
	[ 'Options', 0, 5, 'virtual directory htaccess', undef, 3 ],
	[ 'PidFile', 0, 9, 'global' ],
	[ 'require', 0, 4, 'directory htaccess', undef, 6 ],
	[ 'RLimitCPU', 0, 0, 'virtual', 1.2 ],
	[ 'RLimitMEM', 0, 0, 'virtual', 1.2 ],
	[ 'RLimitNPROC', 0, 0, 'virtual', 1.2 ],
	[ 'Satisfy', 0, 4, 'directory htaccess', 1.2, 4 ],
	[ 'ScoreBoardFile', 0, 9, 'global', 1.2 ],
	[ 'SendBufferSize', 0, 1, 'global' ],
	[ 'ServerAdmin', 0, 1, 'virtual' ],
	[ 'ServerAlias', 1, 1, 'virtual virtualonly', 1.2 ],
	[ 'ServerName', 0, 1, 'virtual' ],
	[ 'ServerPath', 0, 5, 'virtual' ],
	[ 'ServerType', 0, 9, 'global' ],
	[ 'ServerTokens', 0, 9, 'global', 1.3 ],
	[ 'ServerSignature', 0, 5, 'virtual directory htaccess', 1.3 ],
	[ 'TimeOut', 0, 1, 'global' ],
	[ 'UseCanonicalName', 0, 1, 'virtual directory htaccess', 1.3 ],
	[ 'User', 0, 8, 'virtual', undef, 10 ] ];
return &make_directives($rv, $_[0], "core");
}

# core_handlers(config, version)
# Returns an array of all available handlers
sub core_handlers
{
return ();
}

#########################################################################
# Process and limit directives
sub edit_MaxClients
{
return (1,
	$text{'core_maxconc'},
	&opt_input($_[0]->{'value'}, "MaxClients", $text{'core_default'}, 4));
}
sub save_MaxClients
{
return &parse_opt("MaxClients", '^\d+$',
		  $text{'core_emaxconc'});
}

sub edit_MaxKeepAliveRequests
{
return (1,
	$text{'core_maxkeep'},
	&opt_input($_[0]->{'value'}, "MaxKeepAliveRequests", $text{'core_default'}, 4));
}
sub save_MaxKeepAliveRequests
{
return &parse_opt("MaxKeepAliveRequests", '^\d+$',
		  $text{'core_emaxkeep'});
}

sub edit_MaxRequestsPerChild
{
return (1,
	$text{'core_maxreq'},
	&opt_input($_[0]->{'value'}, "MaxRequestsPerChild", $text{'core_default'}, 5));
}
sub save_MaxRequestsPerChild
{
return &parse_opt("MaxRequestsPerChild", '^\d+$',
		  $text{'core_emaxreq'});
}

sub edit_MinSpareServers
{
return (1,
	$text{'core_minspare'},
	&opt_input($_[0]->{'value'},"MinSpareServers",$text{'core_default'}, 4));
}
sub save_MinSpareServers
{
return &parse_opt("MinSpareServers", '^\d+$',
		  $text{'core_eminspare'});
}

sub edit_MaxSpareServers
{
return (1,
	$text{'core_maxspare'},
	&opt_input($_[0]->{'value'},"MaxSpareServers",$text{'core_default'}, 4));
}
sub save_MaxSpareServers
{
return &parse_opt("MaxSpareServers", '^\d+$',
		  $text{'core_emaxspare'});
}

sub edit_StartServers
{
return (1,
	$text{'core_initial'},
	&opt_input($_[0]->{'value'}, "StartServers", $text{'core_default'}, 4));
}
sub save_StartServers
{
return &parse_opt("StartServers", '^\d+$',
		  $text{'core_einitial'});
}

sub edit_RLimitCPU
{
return &rlimit_input("RLimitCPU", $text{'core_cpulimit'}, $_[0]);
}
sub save_RLimitCPU
{
return &parse_rlimit("RLimitCPU", $text{'core_cpulimit2'});
}

sub edit_RLimitMEM
{
return &rlimit_input("RLimitMEM", $text{'core_memlimit'}, $_[0]);
}
sub save_RLimitMEM
{
return &parse_rlimit("RLimitMEM", $text{'core_memlimit2'});
}

sub edit_RLimitNPROC
{
return &rlimit_input("RLimitNPROC", $text{'core_proclimit'}, $_[0]);
}
sub save_RLimitNPROC
{
return &parse_rlimit("RLimitNPROC", $text{'core_proclimit2'});
}

# rlimit_input(name, desc, value)
sub rlimit_input
{
local(@v, $rv);
@v = split(/\s+/, $_[2]->{'value'});
$rv = sprintf "<input type=radio name=$_[0]_mode value=0 %s> $text{'core_default'}<br>\n",
	@v ? "" : "checked";
$rv .= sprintf "<input type=radio name=$_[0]_mode value=1 %s>\n",
	@v == 1 ? "checked" : "";
$rv .= sprintf "$text{'core_slimit'}<input name=$_[0]_soft1 size=5 value=\"%s\"><br>\n",
	@v == 1 ? $v[0] : "";
$rv .= sprintf "<input type=radio name=$_[0]_mode value=2 %s>\n",
	@v == 2 ? "checked" : "";
$rv .= sprintf "$text{'core_slimit'}<input name=$_[0]_soft2 size=5 value=\"%s\">\n",
	@v == 2 ? $v[0] : "";
$rv .= sprintf "$text{'core_hlimit'}<input name=$_[0]_hard2 size=5 value=\"%s\"><br>\n",
	@v == 2 ? $v[1] : "";
return (1, $_[1], $rv);
}

# parse_rlimit(name, desc)
sub parse_rlimit
{
if ($in{"$_[0]_mode"} == 0) { return ( [ ] ); }
elsif ($in{"$_[0]_mode"} == 1) {
	$in{"$_[0]_soft1"} =~ /^(\d+|max)$/ ||
		&error(&text('core_eslimit', $in{"$_[0]_soft1"}, $_[1]));
	return ( [ $in{"$_[0]_soft1"} ] );
	}
elsif ($in{"$_[0]_mode"} == 2) {
	$in{"$_[0]_soft2"} =~ /^(\d+|max)$/ ||
		&error(&text('core_eslimit', $in{"$_[0]_soft2"}, $_[1]));
	$in{"$_[0]_hard2"} =~ /^(\d+|max)$/ ||
		&error(&text('core_ehlimit', $in{"$_[0]_hard2"}, $_[1]));
	return ( [ $in{"$_[0]_soft2"}." ".$in{"$_[0]_hard2"} ] );
	}
}


#########################################################################
# Networking and address directives
sub edit_BindAddress_Listen_Port
{
local($bref, $lref, $pref, @blist, @plist, $inp);
$bref = $_[0]; $lref = $_[1]; $pref = $_[2];
if (@$lref) {
	# listen directives in use.. so BindAddress and Port are unused
	foreach $l (@$lref) {
		if ($l->{'value'} =~ /^(\S+):(\d+)$/) {
			push(@blist, $1); push(@plist, $2);
			}
		elsif ($l->{'value'} =~ /^(\d+)$/) {
			push(@blist, "*"); push(@plist, $1);
			}
		elsif ($l->{'value'} =~ /^(\S+)$/) {
			push(@blist, $1); push(@plist, undef);
			}
		}
	}
else {
	# no listen directives... check for BindAddress
	if (@$bref) { push(@blist, $bref->[@$bref-1]->{'value'}); }
	else { push(@blist, "*"); }
	push(@plist, undef);
	}
$port = @$pref ? $pref->[@$pref-1]->{'value'} : 80;
$inp = "<b>$text{'core_dport'}</b> <input name=Port size=6 value=\"$port\"><br>\n";
$inp .=	"<table border>\n".
	"<tr $tb> <td><b>$text{'core_address'}</b></td> <td><b>$text{'core_port'}</b></td> </tr>\n";
for($i=0; $i<@blist+1; $i++) {
	$inp .= sprintf
		"<tr><td><input type=radio name=BindAddress_def_$i value=2 %s>".
		" $text{'core_none'} <input type=radio name=BindAddress_def_$i value=1 %s>".
		" $text{'core_all'} <input type=radio name=BindAddress_def_$i value=0 %s> ".
		"<input name=BindAddress_$i size=20 value=\"%s\"></td>",
		$blist[$i] ? "" : "checked",
		$blist[$i] eq "*" ? "checked" : "",
		$blist[$i] && $blist[$i] ne "*" ? "checked" : "",
		$blist[$i] eq "*" ? "" : $blist[$i];
	$inp .= "<td>".&opt_input($plist[$i], "Port_$i", "$text{'core_default'}", 5)."</td>";
	}
$inp .= "</table>\n";
return (2, $text{'core_listen'}, $inp);
}
sub save_BindAddress_Listen_Port
{
local(@blist, @plist, $bdef, $b, $p);

# build list of addresses and ports
for($i=0; defined($in{"Port_$i"}); $i++) {
	$bdef = $in{"BindAddress_def_$i"}; $b = $in{"BindAddress_$i"};
	$pdef = $in{"Port_${i}_def"}; $p = $in{"Port_$i"};
	if ($bdef == 2) { next; }

	if ($bdef) { push(@blist, "*"); }
	elsif ($b =~ /^\S+$/ && gethostbyname($b)) { push(@blist, $b); }
	else { &error(&text('core_eaddress', $b)); }

	if ($pdef) { push(@plist, undef); }
	elsif ($p =~ /^\d+$/) { push(@plist, $p); }
	else { &error(&text('core_eport', $p)); }
	}
if (!@blist) { &error($text{'core_eoneaddr'}); }

# Return directives
$in{'Port'} =~ /^\d+$/ || &error($text{'core_edefport'});
if (@blist == 1 && !$plist[0]) {
	# Only one address, and the default port
	return ( $blist[0] eq "*" ? [ ] : [ $blist[0] ], [ ], [ $in{'Port'} ] );
	}
else {
	# More than one address, or a non-default port. Must use Listens
	for($i=0; $i<@blist; $i++) {
		if ($blist[$i] ne "*" && $plist[$i]) {
			push(@l, "$blist[$i]:$plist[$i]");
			}
		elsif ($blist[$i] ne "*") { push(@l, $blist[$i]); }
		elsif ($plist[$i]) { push(@l, "*:$plist[$i]"); }
		else { push(@l, $in{'Port'}); }
		}
	return ( [], \@l, [ $in{'Port'} ] );
	}
}

sub edit_KeepAlive_MaxKeepAliveRequests
{
$kref = $_[0]; $mref = $_[1];
if ($_[2]->{'version'} >= 1.2) {
	# two separate directives for keep-alives
	$inp = sprintf
		"<input type=radio name=KeepAlive_def value=0 %s> $text{'core_none'}\n".
		"<input type=radio name=KeepAlive_def value=1 %s> $text{'core_default'}\n".
		"<input type=radio name=KeepAlive_def value=2 %s> ".
		"<input name=KeepAlive size=5 value=\"%s\">",
		$kref->{'value'} =~ /off/i ? "checked" : "",
		$kref->{'value'} !~ /off/i && !$mref ? "checked" : "",
		$mref ? "checked" : "",
		$mref ? $mref->{'value'} : "";
	}
else {
	# only one directive
	$inp = sprintf
		"<input type=radio name=KeepAlive_def value=0 %s> $text{'core_none'}\n".
		"<input type=radio name=KeepAlive_def value=1 %s> $text{'core_default'}\n".
		"<input type=radio name=KeepAlive_def value=2 %s> ".
		"<input name=KeepAlive size=5 value=\"%s\">",
		$kref->{'value'} eq "0" ? "checked" : "",
		$kref ? "" : "checked" ,
		$kref->{'value'} ? "checked" : "",
		$kref->{'value'} ? $kref->{'value'} : "";
	}
return (1, $text{'core_multi'}, $inp);
}
sub save_KeepAlive_MaxKeepAliveRequests
{
if ($_[0]->{'version'} >= 1.2) {
	# two separate directives
	if ($in{'KeepAlive_def'} == 0) { return ( [ "off" ], [ ] ); }
	elsif ($in{'KeepAlive_def'} == 1) { return ( [ "on" ], [ ] ); }
	elsif ($in{'KeepAlive'} !~ /^\d+$/) {
		&error(&text('core_ekeep', $in{'KeepAlive'}));
		}
	else { return ( [ "on" ], [ $in{'KeepAlive'} ] ); }
	}
else {
	# only one directive
	if ($in{'KeepAlive_def'} == 0) { return ( [ 0 ], [ ] ); }
	elsif ($in{'KeepAlive_def'} == 1) { return ( [ ], [ ] ); }
	elsif ($in{'KeepAlive'} !~ /^\d+$/) {
		&error(&text('core_ekeep', $in{'KeepAlive'}));
		}
	else { return ( [ $in{'KeepAlive'} ], [ ] ); }
	}
}

sub edit_KeepAliveTimeout
{
return (1,
	$text{'core_keeptout'},
	&opt_input($_[0]->{'value'}, "KeepAliveTimeout", $text{'core_default'}, 5));
}
sub save_KeepAliveTimeout
{
return &parse_opt("KeepAliveTimeout", '^\d+$',
		  $text{'core_ekeeptout'});
}

sub edit_ListenBacklog
{
return (1,
	$text{'core_lqueue'},
	&opt_input($_[0]->{'value'}, "ListenBacklog", $text{'core_default'}, 4));
}
sub save_ListenBacklog
{
return &parse_opt("ListenBacklog", '^\d+$',
		  $text{'core_elqueue'});
}

sub edit_SendBufferSize
{
return (1,
	$text{'core_bufsize'},
	&opt_input($_[0]->{'value'}, "SendBufferSize", $text{'core_osdefault'}, 4));
}
sub save_SendBufferSize
{
return &parse_opt("SendBufferSize", '^\d+$',
		  $text{'core_ebufsize'});
}

sub edit_ServerAdmin
{
return (1, $text{'core_admin'},
        &opt_input($_[0]->{'value'}, "ServerAdmin", $text{'core_noadmin'}, 25));
}
sub save_ServerAdmin
{
return &parse_opt("ServerAdmin");
}

sub edit_TimeOut
{
return (1,
	$text{'core_rtout'},
	&opt_input($_[0]->{'value'}, "TimeOut", $text{'core_default'}, 4));
}
sub save_TimeOut
{
return &parse_opt("TimeOut", '^\d+$',
		  $text{'core_ertout'});
}

sub edit_UseCanonicalName
{
return (1, $text{'core_bhostname'},
        &choice_input($_[0]->{'value'}, "UseCanonicalName",
	               "", "$text{'yes'},off", "$text{'no'},on", "$text{'core_default'},"));
}
sub save_UseCanonicalName
{
return &parse_choice("UseCanonicalName", "");
}

sub edit_HostNameLookups
{
if ($_[1]->{'version'} >= 1.3) {
	return (1, $text{'core_lookup'},
		&choice_input($_[0]->{'value'}, "HostNameLookups", "",
		       "$text{'no'},off", "$text{'yes'},on", "$text{'core_ltwice'},double", "$text{'core_default'},"));
	}
else {
	return (1, $text{'core_lookup'},
		&choice_input($_[0]->{'value'}, "HostNameLookups", "",
			      "$text{'yes'},on", "$text{'no'},off", "$text{'core_default'},"));
	}
}
sub save_HostNameLookups
{
return &parse_choice("HostNameLookups", "");
}

sub edit_IdentityCheck
{
return (1, $text{'core_useauth'},
	&choice_input($_[0]->{'value'}, "IdentityCheck", "",
		      "$text{'yes'},on", "$text{'no'},off", "$text{'core_default'},"));
}
sub save_IdentityCheck
{
return &parse_choice("IdentityCheck", "");
}

sub edit_ServerAlias
{
local($a, @al);
foreach $a (@{$_[0]}) { push(@al, split(/\s+/, $a->{'value'})); }
return (1, $text{'core_altnames'},
	sprintf "<textarea name=ServerAlias rows=3 cols=25>%s</textarea>\n",
		join("\n", @al) );
}
sub save_ServerAlias
{
local(@al);
@al = split(/\s+/, $in{'ServerAlias'});
if (@al) { return ( [ join(' ', @al) ] ) }
else { return ( [ ] ); }
}

sub edit_ServerName
{
return (1, $text{'core_hostname'},
	&opt_input($_[0]->{'value'}, "ServerName", $text{'core_auto'}, 25));
}
sub save_ServerName
{
return &parse_opt("ServerName", '^\S+$', $text{'core_ehostname'});
}

sub edit_NameVirtualHost
{
local(@nv, $nv);
foreach $nv (@{$_[0]}) { push(@nv, $nv->{'value'}); }
return (1, $text{'core_virtaddr'},
	"<textarea name=NameVirtualHost rows=3 cols=30>".
	join("\n", @nv)."</textarea>");
}
sub save_NameVirtualHost
{
local(@nv, $nv, $addr);
@nv = split(/\s+/, $in{'NameVirtualHost'});
foreach $nv (@nv) {
	if ($nv =~ /^(\S+):(\d+)$/) { $addr = $1; }
	else { $addr = $nv; }
	if (!gethostbyname($addr) && $addr ne '*') {
		&error(&text('core_evirtaddr', $addr));
		}
	}
if (@nv) { return ( \@nv ); }
else { return ( [ ] ); }
}

#########################################################################
# Document directives
sub edit_AccessFileName
{
return (1,
        $text{'core_optfile'},
        &opt_input($_[0]->{'value'}, "AccessFileName", $text{'core_default'}, 20));
}
sub save_AccessFileName
{
if ($_[0]->{'version'} < 1.3) {
	return &parse_opt("AccessFileName", '^(\S+)$',
	                  $text{'core_eoptfile'});
	}
else {
	return &parse_opt("AccessFileName", '\S',
			     $text{'core_enoopt'});
	}
}

@AllowOverride_v = ("AuthConfig", "FileInfo", "Indexes", "Limit", "Options");
@AllowOverride_d = ("$text{'core_auth'}", "$text{'core_mime'}",
                    "$text{'core_indexing'}", "$text{'core_hostacc'}",
                    "$text{'core_diropts'}");
sub edit_AllowOverride
{
local($rv, @ov, %over, $rv);
$rv = &choice_input($_[0] ? 0 : 1, "AllowOverride_def", 1,
		 "$text{'core_default'},1", "$text{'core_filesel'},0");
$rv .= "<table border><tr><td>\n";
if ($_[0]) { @ov = split(/\s+/, $_[0]->{'value'}); }
else { @ov = ("All"); }
foreach $ov (@ov) { $over{$ov}++; }
if ($over{'All'}) { foreach $ov (@AllowOverride_v) { $over{$ov}++; }	}
elsif ($over{'None'}) { %over = (); }

for($i=0; $i<@AllowOverride_v; $i++) {
	$rv .= sprintf "<input type=checkbox name=AllowOverride_%s %s> %s<br>\n",
	        $AllowOverride_v[$i],
	        $over{$AllowOverride_v[$i]} ? "checked" : "",
	        $AllowOverride_d[$i];
	}
$rv .= "</td></tr></table>\n";
return (1, $text{'core_overr'}, $rv);
}
sub save_AllowOverride
{
local(@ov, $ov);
if ($in{'AllowOverride_def'}) { return ( [ ] ); }
foreach $ov (@AllowOverride_v) {
	if ($in{"AllowOverride_$ov"}) { push(@ov, $ov); }
	}
if (!@ov) { return ( [ "None" ] ); }
elsif (@ov == @AllowOverride_v) { return ( [ "All" ] ); }
else { return ( [ join(' ', @ov) ] ); }
}

sub edit_ContentDigest
{
return (1,
	$text{'core_genmd5'},
	&choice_input($_[0]->{'value'}, "ContentDigest", "",
		      "$text{'yes'},on", "$text{'no'},off", "$text{'core_default'},"));
}
sub save_ContentDigest
{
return &parse_choice("ContentDigest", "");
}

sub edit_DocumentRoot
{
return (2, $text{'core_docroot'},
	&opt_input($_[0]->{'words'}->[0], "DocumentRoot", $text{'core_default'}, 40).
	&file_chooser_button("DocumentRoot", 1));
}
sub save_DocumentRoot
{
$in{'DocumentRoot_def'} || -d $in{'DocumentRoot'} ||
	&error(&text('core_enodoc', $in{'DocumentRoot'}));
return &parse_opt("DocumentRoot");
}

sub edit_Options
{
local(@po, @o, $o, %opts, $opts, $po, @pon, $i);
@po = ("ExecCGI", "FollowSymLinks", "Includes", "IncludesNOEXEC",
       "Indexes", "MultiViews", "SymLinksIfOwnerMatch");
@pon = ("$text{'core_execcgi'}", "$text{'core_flink'}",
	"$text{'core_inclexe'}", "$text{'core_incl'}",
	"$text{'core_genind'}", "$text{'core_genmview'}",
	"$text{'core_flinkmatch'}");
$opts = &choice_input($_[0] ? 0 : 1, "Options_def", 1, "$text{'core_default'},1",
		      "$text{'core_optsel'},0")."<br>\n";
@o = split(/\s+/, $_[0]->{'value'});
foreach $o (split(/\s+/, $_[0]->{'value'})) {
	if ($o =~ /^\+(.*)$/) { $opts{$1} = 2; }
	elsif ($o =~ /^\-(.*)$/) { $opts{$1} = 3; }
	else { $opts{$o} = 1; }
	}
if ($opts{'All'}) {
	local($all); $all = $opts{'All'};
	undef(%opts);
	foreach $o (grep {!/MultiViews/} @po) {
		$opts{$o} = $all;
		}
	}
$opts .= "<table border>\n";
$opts .= "<tr $tb> <td><b>$text{'core_option'}</b></td> <td><b>$text{'core_setdir'}</b></td>\n";
$opts .= "<td><b>$text{'core_merge'}</b></td> </tr>\n";
for($i=0; $i<@po; $i++) {
	$po = $po[$i];
	$opts .= "<tr $cb> <td><b>$pon[$i]</b></td> <td>\n";
	$opts .= sprintf "<input type=radio name=$po value=1 %s> $text{'yes'}\n",
			$opts{$po}==1 ? "checked" : "";
	$opts .= sprintf "<input type=radio name=$po value=0 %s> $text{'no'}\n",
			$opts{$po}==0 ? "checked" : "";
	$opts .= "</td> <td>\n";
	$opts .= sprintf "<input type=radio name=$po value=2 %s> $text{'core_enable'}\n",
			$opts{$po}==2 ? "checked" : "";
	$opts .= sprintf "<input type=radio name=$po value=3 %s> $text{'core_disable'}\n",
			$opts{$po}==3 ? "checked" : "";
	$opts .= "</td> </tr>\n";
	}
$opts .= "</table>\n";
return (2, $text{'core_diropts'}, $opts);
}
sub save_Options
{
local(@po, $po, @rv);
if ($in{'Options_def'}) { return ( [ ] ); }
@po = ("ExecCGI", "FollowSymLinks", "Includes", "IncludesNOEXEC",
       "Indexes", "MultiViews", "SymLinksIfOwnerMatch");
foreach $po (@po) {
	if ($in{$po} == 1) { push(@rv, $po); }
	elsif ($in{$po} == 2) { push(@rv, "+$po"); }
	elsif ($in{$po} == 3) { push(@rv, "-$po"); }
	}
return @rv ? ( [ join(' ', @rv) ] ) : ( [ "None" ] );
}

sub edit_ServerPath
{
return (2,
	$text{'core_virtpath'},
	&opt_input($_[0]->{'value'}, "ServerPath", $text{'core_default'}, 40).
	&file_chooser_button("ServerPath", 1));
}
sub save_ServerPath
{
return &parse_opt("ServerPath", '^\/\S*$',
		  $text{'core_evirtpath'});
}

sub edit_ServerSignature
{
return (1, $text{'core_footer'},
	&choice_input($_[0]->{'value'}, "ServerSignature", undef,
		      "$text{'core_sigemail'},Email", "$text{'core_signame'},On",
		      "$text{'core_signone'},Off", "$text{'core_default'},"));
}
sub save_ServerSignature
{
return &parse_choice("ServerSignature", undef);
}

#########################################################################
# MIME directives directives
sub edit_DefaultType
{
return (1,
	$text{'core_defmime'},
	&opt_input($_[0]->{'value'}, "DefaultType", $text{'core_default'}, 20));
}
sub save_DefaultType
{
return &parse_opt("DefaultType", '^(\S+)\/(\S+)$',
		  $text{'core_edefmime'});
}

#########################################################################
# Access control directives
sub edit_AuthName
{
my $val = $_[1]->{'version'} >= 1.3 ? $_[0]->{'words'}->[0]
				    : $_[0]->{'value'};
return (1, $text{'core_realm'},
        &opt_input($val, "AuthName", $text{'core_default'}, 25));
}
sub save_AuthName
{
return $in{'AuthName_def'}	 ? ( [ ] ) :
       $_[0]->{'version'} >= 1.3 ? ( [ "\"$in{'AuthName'}\"" ] ) :
				   ( [ $in{'AuthName'} ] );
}

sub edit_AuthType
{
local($rv, $a);
$rv = "<select name=AuthType>\n";
foreach $a ("", "Basic", "Digest") {
	$rv .= sprintf "<option %s>$a\n",
	        lc($_[0]->{'value'}) eq lc($a) ? "selected" : "";
	}
$rv .= "</select>";
return (1, $text{'core_authtype'}, $rv);
}
sub save_AuthType
{
if ($in{'AuthType'}) { return ( [ $in{'AuthType'} ] ); }
else { return ( [ ] ); }
}

sub edit_require
{
local($rv, $mode, $list);
$_[0]->{'value'} =~ /^(\S+)\s*(.*)$/; $mode = $1; $list = $2;
$rv = sprintf
      "<input type=radio name=require_mode value=0 %s> $text{'default'}<br>\n",
      $mode ? "" : "checked";
$rv .= sprintf
      "<input type=radio name=require_mode value=1 %s> $text{'core_users'}:\n",
      $mode eq "user" ? "checked" : "";
$rv .= sprintf
      "<input name=require_user size=20 value=\"%s\"><br>\n",
      $mode eq "user" ? $list : "";
$rv .= sprintf
      "<input type=radio name=require_mode value=2 %s> $text{'core_groups'}:\n",
      $mode eq "group" ? "checked" : "";
$rv .= sprintf
      "<input name=require_group size=20 value=\"%s\"><br>\n",
      $mode eq "group" ? $list : "";
$rv .= sprintf
      "<input type=radio name=require_mode value=3 %s> $text{'core_allusers'}:<br>\n",
      $mode eq "valid-user" ? "checked" : "";
return (1, $text{'core_authlog'}, $rv);
}
sub save_require
{
if ($in{'require_mode'} == 0) { return ( [ ] ); }
elsif ($in{'require_mode'} == 1) { return ( [ "user $in{'require_user'}" ] ); }
elsif ($in{'require_mode'} == 2) { return ( [ "group $in{'require_group'}" ] ); }
else { return ( [ "valid-user" ] ); }
}

sub edit_Satisfy
{
return (1, $text{'core_satisfy'},
	&choice_input_vert($_[0]->{'value'}, "Satisfy", "", "$text{'core_default'},",
			   "$text{'core_authall'},all","$text{'core_authany'},any"));
}
sub save_Satisfy
{
return &parse_choice("Satisfy", "");
}

#########################################################################
# Misc. directives
sub edit_CoreDumpDirectory
{
return (1, $text{'core_coredir'},
	 &opt_input($_[0]->{'value'}, "CoreDumpDirectory", $text{'core_sroot'}, 20).
	 &file_chooser_button("CoreDumpDirectory", 1));
}
sub save_CoreDumpDirectory
{
return &parse_opt("CoreDumpDirectory", '^\S+$', $text{'core_ecore'});
}

sub edit_LockFile
{
return (1, $text{'core_lockfile'},
        &opt_input($_[0]->{'value'}, "LockFile", $text{'core_default'}, 20).
        &file_chooser_button("LockFile", 0));
}
sub save_LockFile
{
return &parse_opt("LockFile", '^\S+', $text{'core_elock'});
}

sub edit_LimitRequestBody
{
return (1, $text{'core_maxbody'},
	&opt_input($_[0]->{'value'}, "LimitRequestBody", $text{'core_default'}, 8)
		.$text{'bytes'});
}
sub save_LimitRequestBody
{
return &parse_opt("LimitRequestBody", '^\d+$', $text{'core_ebody'});
}

sub edit_LimitRequestFields
{
return (1, $text{'core_maxhead'},
	&opt_input($_[0]->{'value'}, "LimitRequestFields", $text{'core_default'}, 6));
}
sub save_LimitRequestFields
{
return &parse_opt("LimitRequestFields", '^\d+$', $text{'core_ehead'});
}

sub edit_LimitRequestFieldsize
{
return (1, $text{'core_maxshead'},
	&opt_input($_[0]->{'value'}, "LimitRequestFieldsize", $text{'core_default'}, 6));
}
sub save_LimitRequestFieldsize
{
return &parse_opt("LimitRequestFieldsize", '^\d+$', $text{'core_eshead'});
}

sub edit_LimitRequestLine
{
return (1, $text{'core_maxline'},
	&opt_input($_[0]->{'value'}, "LimitRequestLine", $text{'core_default'}, 6));
}
sub save_LimitRequestLine
{
return &parse_opt("LimitRequestLine", '^\d+$', $text{'core_eline'});
}

sub edit_PidFile
{
return (1, $text{'core_pid'},
        &opt_input($_[0]->{'value'}, "PidFile", $text{'core_default'}, 20).
        &file_chooser_button("PidFile", 0));
}
sub save_PidFile
{
return &parse_opt("PidFile", '^\S+$', $text{'core_epid'});
}

sub edit_ScoreBoardFile
{
return (1, $text{'core_memsco'},
        &opt_input($_[0]->{'value'}, "ScoreBoardFile", $text{'core_default'}, 20).
        &file_chooser_button("ScoreBoardFile", 0));
}
sub save_ScoreBoardFile
{
return &parse_opt("ScoreBoardFile", '^\S+$', $text{'core_escore'});
}

sub edit_ServerType
{
return (1, $text{'core_exec'},
        &choice_input($_[0]->{'value'}, "ServerType", "standalone",
                      "$text{'core_salone'},standalone", "$text{'core_inetd'},inetd"));
}
sub save_ServerType
{
return &parse_choice("ServerType", "standalone");
}

sub edit_ServerTokens
{
return (1, $text{'core_header'},
	&select_input($_[0]->{'value'}, "ServerTokens", "Full",
		      "$text{'core_verosmod'},Full",
		      "$text{'core_veros'},OS", "$text{'core_ver'},Min",
		      $_[1]->{'version'} >= 1.313 ?
			("$text{'core_product'},ProductOnly") : ()));
}
sub save_ServerTokens
{
return &parse_select("ServerTokens", "Full");
}

#########################################################################
# User/group directives
sub edit_Group
{
local($rv, @ginfo);
$rv = sprintf "<input type=radio name=Group value=0 %s>$text{'core_default'}&nbsp;\n",
       $_[0] ? "" : "checked";
$rv .= sprintf "<input type=radio name=Group value=1 %s>$text{'core_group'}\n",
        $_[0] && $_[0]->{'value'} !~ /^#/ ? "checked" : "";
$rv .= sprintf "<input name=Group_name size=8 value=\"%s\"> %s&nbsp;\n",
	$_[0]->{'value'} !~ /^#/ ? $_[0]->{'value'} : "",
	&group_chooser_button("Group_name", 0);
$rv .= sprintf "<input type=radio name=Group value=2 %s>$text{'core_gid'}\n",
        $_[0]->{'value'} =~ /^#/ ? "checked" : "";
$rv .= sprintf "<input name=Group_id size=6 value=\"%s\">\n",
	 $_[0]->{'value'} =~ /^#(.*)$/ ? $1 : "";
return (2, $text{'core_asgroup'}, $rv);
}
sub save_Group
{
if ($in{'Group'} == 0) { return ( [ ] ); }
elsif ($in{'Group'} == 1) { return ( [ $in{'Group_name'} ] ); }
elsif ($in{'Group_id'} !~ /^\-?\d+$/) {
	&error(&text('core_euid', $in{'Group_id'}));
	}
else { return ( [ "#$in{'Group_id'}" ] ); }
}

sub edit_User
{
local($rv, @uinfo);
$rv = sprintf "<input type=radio name=User value=0 %s>$text{'core_default'}&nbsp;\n",
       $_[0] ? "" : "checked";
$rv .= sprintf "<input type=radio name=User value=1 %s>$text{'core_user'}\n",
        $_[0] && $_[0]->{'value'} !~ /^#/ ? "checked" : "";
$rv .= sprintf "<input name=User_name size=8 value=\"%s\"> %s&nbsp;\n",
	$_[0]->{'value'} !~ /^#/ ? $_[0]->{'value'} : "",
	&user_chooser_button("User_name", 0);
$rv .= sprintf "<input type=radio name=User value=2 %s>$text{'core_uid'}\n",
        $_[0]->{'value'} =~ /^#/ ? "checked" : "";
$rv .= sprintf "<input name=User_id size=6 value=\"%s\">\n",
	 $_[0]->{'value'} =~ /^#(.*)$/ ? $1 : "";
return (2, $text{'core_asuser'}, $rv);
}
sub save_User
{
if ($in{'User'} == 0) { return ( [ ] ); }
elsif ($in{'User'} == 1) { return ( [ $in{'User_name'} ] ); }
elsif ($in{'User_id'} !~ /^\-?\d+$/) {
	&error(&text('core_egid', $in{'User_id'}));
	}
else { return ( [ "#$in{'User_id'}" ] ); }
}

#########################################################################
# Error handling directives
sub edit_ErrorDocument
{
local($rv, $len, $i);
$rv = "<table border width=100%>\n";
$rv .= "<tr $tb> <td><b>$text{'core_error'}</b></td> <td><b>$text{'core_resp'}</b></td> ".
       "<td><b>$text{'core_urlmsg'}</b></td> </tr>\n";
$len = @{$_[0]} + 1;
for($i=0; $i<$len; $i++) {
	$v = $_[0]->[$i]->{'value'};
	if ($v =~ /^(\d+)\s+((http|ftp|gopher):\S+)$/)
		{ $code = $1; $type = 0; $url = $2; }
	elsif ($v =~ /^(\d+)\s+(\/.*)$/) { $code = $1; $type = 0; $url = $2; }
	elsif ($v =~ /^(\d+)\s+"?(.*)$/) { $code = $1; $type = 1; $url = $2; }
	else { $code = ""; $type = 0; $url = ""; }
	$rv .= "<tr $cb>\n";
	$rv .= "<td><input name=ErrorDocument_code_$i size=3 value=$code></td>\n";
	$rv .= "<td><input type=radio name=ErrorDocument_type_$i value=0 ".
	       ($type==0 ? "checked" : "").">$text{'core_tourl'}\n";
	$rv .= "<input type=radio name=ErrorDocument_type_$i value=1 ".
	       ($type==1 ? "checked" : "").">$text{'core_mesg'}</td>\n";
	$rv .= "<td><input name=ErrorDocument_url_$i size=40 value=\"$url\"></td>\n";
	$rv .= "</tr>\n";
	}
$rv .= "</table>\n";
return (2, $text{'core_custom'}, $rv);
}
sub save_ErrorDocument
{
local($i, $code, $url, @rv);
for($i=0; defined($in{"ErrorDocument_code_$i"}); $i++) {
	$code = $in{"ErrorDocument_code_$i"}; $url = $in{"ErrorDocument_url_$i"};
	if ($code !~ /\S/ && $url !~ /\S/) { next; }
	$code =~ /^\d\d\d$/ || &error(&text('core_eerror', $code));
	if ($in{"ErrorDocument_type_$i"} == 0) {
		$url =~ /^\S+$/ || &error(&text('core_eurl', $url));
		push(@rv, "$code $url");
		}
	elsif ($_[0]->{'version'} >= 1.2) { push(@rv, "$code \"$url"); }
	else { push(@rv, "$code $url"); }
	}
return ( \@rv );
}

#########################################################################
# Logging directives
sub edit_ErrorLog
{
if ($_[1]->{'version'} < 1.3) {
	return (1, $text{'core_errfile'},
		&opt_input($_[0]->{'value'}, "ErrorLog", $text{'core_default'}, 20).
		&file_chooser_button("ErrorLog", 0));
	}
else {
	local $v = $_[0]->{'words'}->[0];
	local $t = !$v ? 3 :
		   $v eq 'syslog' ? 2 :
		   $v =~ /^\|/ ? 1 : 0;
	$rv = sprintf "<input type=radio name=ErrorLog_type value=3 %s>\n",
		$t == 3 ? "checked" : "";
	$rv .= "$text{'core_default'}";
	$rv .= sprintf "<input type=radio name=ErrorLog_type value=2 %s>\n",
		$t == 2 ? "checked" : "";
	$rv .= "$text{'core_syslog'}<br>\n";
	$rv .= sprintf "<input type=radio name=ErrorLog_type value=0 %s>\n",
		$t == 0 ? "checked" : "";
	$rv .= sprintf "$text{'core_filelog'}<input name=ErrorLog_file size=25 value='%s'>\n",
		$t == 0 ? $v : "";
	$rv .= sprintf "<input type=radio name=ErrorLog_type value=1 %s>\n",
		$t == 1 ? "checked" : "";
	$rv .= sprintf "$text{'core_proglog'}<input name=ErrorLog_prog size=25 value='%s'><br>\n",
		$t == 1 ? substr($v, 1) : "";
	return (2, $text{'core_logto'}, $rv);
	}
}
sub save_ErrorLog
{
if ($_[0]->{'version'} < 1.3) {
	$in{'ErrorLog_def'} || &allowed_auth_file($in{'ErrorLog'}) ||
		&error($text{'core_edirlog'});
	return &parse_opt("ErrorLog", '^\S+$', $text{'core_efilelog'});
	}
else {
	if ($in{'ErrorLog_type'} == 3) {
		return ( [ ] );
		}
	elsif ($in{'ErrorLog_type'} == 0) {
		$in{'ErrorLog_file'} =~ /\S/ ||
		    &error($text{'core_efilemiss'});
		&allowed_auth_file($in{'ErrorLog_file'}) ||
		    &error($text{'core_edirlog'});
		return ( [ $in{'ErrorLog_file'} ] );
		}
	elsif ($in{'ErrorLog_type'} == 1) {
		$in{'ErrorLog_prog'} =~ /\S/ ||
		    &error($text{'core_eprogmiss'});
		$access{'pipe'} ||
		    &error($text{'core_eperm'});
		return ( [ "\"|$in{'ErrorLog_prog'}\"" ] );
		}
	else {
		return ( [ "syslog" ] );
		}
	}
}

#########################################################################
# Module directives
sub edit_ClearModuleList_AddModule
{
local($mods, @allmods, $d, %mods, $m, $i, $rv);
($ver, $mods) = &httpd_info($config{'httpd_path'});
@allmods = grep { !/^core$/ } @$mods;
local $conf = &get_config();
foreach $d (&find_directive_struct("LoadModule", $conf)) {
	if ($d->{'words'}->[1] =~ /(mod_\S+)\.so/) {
		push(@allmods, $1);
		}
	elsif ($d->{'words'}->[1] =~ /lib([^\/\s]+)\.so/) {
		push(@allmods, "mod_$1");
		}
	}

if (@{$_[0]}) {
	# Only selected modules have been enabled
	foreach $d (@{$_[1]}) {
		local $modc = $d->{'value'};
		$modc =~ s/\.c$//;
		$mods{$modc} = "checked";
		}
	}
else { foreach $m (@allmods) { $mods{$m} = "checked"; } }
$rv = &choice_input(@{$_[0]} ? 1 : 0, "ClearModuleList", 1,
		    "$text{'core_allmod'},0", "$text{'core_selmod'},1")."<br>\n";
$rv .= "<table>\n";
foreach $m (@allmods) {
	if ($i%4 == 0) { $rv .= "<tr>\n"; }
	$rv .= "<td><input name=AddModule type=checkbox value=$m $mods{$m}> $m</td>\n";
	if ($i++%4 == 3) { $rv .= "</tr>\n"; }
	}
$rv .= "</table>\n";
return (2, $text{'core_actmod'}, $rv);
}
sub save_ClearModuleList_AddModule
{
if ($in{'ClearModuleList'}) {
	local @mods = split(/\0/, $in{'AddModule'});
	return ( [ "" ], [ map { $_.".c" } @mods ] );
	}
else { return ( [ ], [ ] ); }
}

1;

07070100015dcd000081e40000000000000002000000013ac038980000039f000000200000000000000000000000000000001c00000003reloc/apache/create_dir.cgi   #!/usr/local/bin/perl
# create_dir.cgi
# Create an empty <Directory>, <Files> or <Location> clause

require './apache-lib.pl';
&ReadParse();
($vconf, $v) = &get_virtual_config($in{'virt'});
&can_edit_virt($v) || &error($text{'virt_ecannot'});
$f = $vconf->[0]->{'file'};
for($j=0; $vconf->[$j]->{'file'} eq $f; $j++) { }
$l = $vconf->[$j-1]->{'eline'}+1;
&lock_file($f);
$lref = &read_file_lines($f);

if ($in{'regexp'}) {
	if ($httpd_modules{'core'} >= 1.3) {
		$newdir = "<$in{'type'}Match \"$in{'path'}\">";
		$enddir = "</$in{'type'}Match>";
		}
	else {
		$newdir = "<$in{'type'} ~ \"$in{'path'}\">";
		$enddir = "</$in{'type'}>";
		}
	}
else {
	$newdir = "<$in{'type'} \"$in{'path'}\">";
	$enddir = "</$in{'type'}>";
	}
splice(@$lref, $l, 0, ($newdir, $enddir));
&flush_file_lines();
&unlock_file($f);
&webmin_log("dir", "create", &virtual_name($v, 1).":$in{'path'}", \%in);
&redirect("virt_index.cgi?virt=$in{'virt'}");

 07070100015dce000081e40000000000000002000000013ac0389800000337000000200000000000000000000000000000001e00000003reloc/apache/create_files.cgi #!/usr/local/bin/perl
# create_files.cgi
# Create an empty <Files> clause in a .htaccess file

require './apache-lib.pl';
$access{'global'} || &error($text{'htaccess_ecannot'});
&allowed_auth_file($in{'file'}) ||
	&error($text{'htindex_ecannot'});
&ReadParse();
&lock_file($in{'file'});
$lref = &read_file_lines($in{'file'});
if ($in{'regexp'}) {
	if ($httpd_modules{'core'} >= 1.3) {
		$newdir = "<FilesMatch \"$in{'path'}\">";
		$enddir = "</FilesMatch>";
		}
	else {
		$newdir = "<Files ~ \"$in{'path'}\">";
		$enddir = "</Files>";
		}
	}
else {
	$newdir = "<Files \"$in{'path'}\">";
	$enddir = "</Files>";
	}
push(@$lref, $newdir);
push(@$lref, $enddir);
&flush_file_lines();
&unlock_file($in{'file'});
&webmin_log("files", "create", "$in{'file'}:$in{'path'}", \%in);
&redirect("htaccess_index.cgi?file=$in{'file'}");

 07070100015dcf000081e40000000000000002000000013ac0389800000545000000200000000000000000000000000000002100000003reloc/apache/create_htaccess.cgi  #!/usr/local/bin/perl
# create_htaccess.cgi
# Creates a new .htaccess file for some directory

require './apache-lib.pl';
&ReadParse();
$access{'global'} || &error($text{'htaccess_ecannot'});
$conf = &get_config();

if (-d $in{'file'}) {
	# user entered a directory.. create a file in that directory
	$accfile = &find_directive("AccessFile", $conf);
	if (!$accfile) { $accfile = ".htaccess"; }
	$file = "$in{'file'}/$accfile";
	}
else { $file = $in{'file'}; }
&allowed_auth_file($file) ||
	&error($text{'htaccess_ecreate'});

# create the file (if needed), and add to the known list
&lock_file($file);
if (!(-r $file)) {
	open(HTACCESS, "> $file") || &error($!);
	close(HTACCESS);
	chmod(0755, $file);

	$u = &find_directive("User", $conf);
	if ($u =~ /#(\d+)/) { $u = $1; }
	elsif (defined($u)) { $u = getpwnam($u); }

	$g = &find_directive("Group", $conf);
	if ($g =~ /#(\d+)/) { $g = $1; }
	elsif (defined($g)) { $g = getgrnam($g); }

	chown(defined($u) ? $u : $< , defined($g) ? $g : $( , $file);
	}
&read_file("$module_config_directory/site", \%site);
@ht = split(/\s+/, $site{'htaccess'});
$site{'htaccess'} = join(' ', &unique(@ht, $file));
&write_file("$module_config_directory/site", \%site);
&unlock_file($file);
&webmin_log("htaccess", "create", $file);

# redirect to editing index
&redirect("htaccess_index.cgi?file=".&urlize($file));

   07070100015dd0000081e40000000000000002000000013ac038980000097e000000200000000000000000000000000000001d00000003reloc/apache/create_virt.cgi  #!/usr/local/bin/perl
# create_virt.cgi
# Create a new virtual host.

require './apache-lib.pl';
&ReadParse();
$access{'create'} || &error($text{'cvirt_ecannot'});
&error_setup($text{'cvirt_err'});
$conf = &get_config();

if ($in{'addr_def'}) {
	if ($httpd_modules{'core'} >= 1.2) { $addr = "_default_"; }
	else { $addr = "*"; }
	}
elsif ($in{'addr'} !~ /\S/) { &error($text{'cvirt_eaddr1'}); }
elsif (!gethostbyname($in{'addr'}) && !&check_ipaddress($in{'addr'}) &&
       $in{'addr'} ne '*')
	{ &error(&text('cvirt_eaddr2', $in{'addr'})); }
else { $addr = $in{'addr'}; }

if ($in{'port_mode'} == 0) { $port = ""; }
elsif ($in{'port_mode'} == 1) { $port = ":*"; }
elsif ($in{'port'} !~ /^\d+$/) { &error(&text('cvirt_eport', $in{'port'})); }
else { $port = ":$in{'port'}"; }
if (!$in{'name_def'} && $in{'name'} !~ /^\S+$/) {
	&error(&text('cvirt_ename', $in{'name'}));
	}

if ($in{'root'} && !-d $in{'root'}) {
	# create the document root
	mkdir($in{'root'}, 0755) ||
		&error(&text('cvirt_eroot2', $in{'root'}, $!));
	$user = &find_directive("User", $conf);
	$group = &find_directive("Group", $conf);
	$uid = $user ? getpwnam($user) : 0;
	$gid = $group ? getgrnam($group) : 0;
	chown($uid, $gid, $in{'root'});
	}

# find file to add to
$f = $config{'virt_file'};
if (!$f) {
	# use the first file in config (usually httpd.conf)
	$vconf = &get_virtual_config();
	$f = $vconf->[0]->{'file'};
	for($j=0; $vconf->[$j]->{'file'} eq $f; $j++) { }
	$l = $vconf->[$j-1]->{'eline'}+1;
	}

# add NameVirtualHost if needed
&lock_apache_files();
if ($in{'nv'} && !$in{'addr_def'}) {
	local $ip = &to_ipaddress($in{'addr'});
	local $found;
	local @nv = &find_directive("NameVirtualHost", $conf);
	foreach $nv (@nv) {
		$found++ if ($nv eq $ip);
		}
	if (!$found && $ip) {
		&save_directive("NameVirtualHost", [ @nv, $ip ], $conf, $conf);
		}
	}

$lref = &read_file_lines($f);
push(@$lref, "");
push(@$lref, "<VirtualHost $addr$port>");
push(@$lref, "DocumentRoot $in{'root'}") if ($in{'root'});
if (!$in{'name_def'}) {
	push(@$lref, "ServerName $in{'name'}");
	}
push(@$lref, "</VirtualHost>");
&flush_file_lines();
&unlock_apache_files();
&webmin_log("virt", "create", ($in{'name_def'} ? $addr : $in{'name'}).$port,
	    \%in);

# add to acl
if ($access{'virts'} ne '*') {
	if ($in{'name_def'}) {
		$access{'virts'} .= " $addr$port";
		}
	else {
		$access{'virts'} .= " $in{'name'}$port";
		}
	&save_module_acl(\%access);
	}
&redirect("");

  07070100015dd1000081a40000000000000002000000013ac0389800000051000000200000000000000000000000000000001800000003reloc/apache/defaultacl   virts=*
global=1
create=1
vuser=1
noconfig=0
stop=1
vaddr=1
dir=/
types=*
pipe=1
   07070100015dd2000081e40000000000000002000000013ac038980000022e000000200000000000000000000000000000002100000003reloc/apache/delete_htaccess.cgi  #!/usr/local/bin/perl
# delete_htaccess.cgi
# Delete some .htaccess or similar file

require './apache-lib.pl';
&ReadParse();
&allowed_auth_file($in{'file'}) ||
	&error($text{'htaccess_edelete'});
&lock_file($in{'file'});
unlink($in{'file'});
&unlock_file($in{'file'});

&read_file("$module_config_directory/site", \%site);
@ht = split(/\s+/, $site{'htaccess'});
$site{'htaccess'} = join(' ', (grep { $_ ne $in{'file'} } @ht));
&write_file("$module_config_directory/site", \%site);
&webmin_log("htaccess", "delete", $in{'file'});
&redirect("htaccess.cgi");

  07070100015dd3000081e40000000000000002000000013ac038970000099c000000200000000000000000000000000000001b00000003reloc/apache/dir_index.cgi    #!/usr/local/bin/perl
# dir_index.cgi
# Display a menu of icons for per-directory options

require './apache-lib.pl';
&ReadParse();
($conf, $v) = &get_virtual_config($in{'virt'});
&can_edit_virt($v) || &error($text{'virt_ecannot'});
$d = $conf->[$in{'idx'}];
&header($text{'dir_title'}, "",
	undef, undef, undef, undef, &restart_button());
print "<center><font size=+2>",&text('dir_header', &dir_name($d),
				     &virtual_name($v)),"</font></center>\n";
print "<hr>\n";
print "<h3>$text{'dir_title'}</h3>\n";
$sw_icon = { "icon" => "images/show.gif",
	     "name" => $text{'dir_show'},
	     "link" => "show.cgi?virt=$in{'virt'}&idx=$in{'idx'}" };
if ($access{'types'} eq '*') {
	$ed_icon = { "icon" => "images/edit.gif",
		     "name" => $text{'dir_edit'},
		     "link" =>
			"manual_form.cgi?virt=$in{'virt'}&idx=$in{'idx'}" };
	}
&config_icons("directory", "edit_dir.cgi?virt=$in{'virt'}&idx=$in{'idx'}&",
	      $sw_icon, $ed_icon ? ( $ed_icon) : ( ));

print "<hr>\n";
print "<form action=change_dir.cgi>\n";
print "<input type=hidden name=virt value=$in{'virt'}>\n";
print "<input type=hidden name=idx value=$in{'idx'}>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'dir_opts'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";
print "<tr> <td><b>$text{'dir_type'}</b></td> <td><select name=type>\n";
foreach $t ($httpd_modules{'core'} >= 1.2 ? ("Directory", "Files", "Location")
					  : ("Directory", "Location")) {
	printf "<option %s>$text{'dir_'.$t}\n", $d->{'name'} =~ /^$t/ ? "selected" : "";
	}
print "</select></td>\n";
if ($httpd_modules{'core'} >= 1.2) {
	print "<td><b>$text{'dir_regexp'}</b></td>\n";
	$regex = $d->{'words'}->[0] eq "~" || $d->{'name'} =~ /Match/i;
	printf "<td><input type=radio name=regexp value=0 %s> %s\n",
		$regex ? "" : "checked", $text{'dir_exact'};
	printf "<input type=radio name=regexp value=1 %s> %s</td>\n",
		$regex ? "checked" : "", $text{'dir_re'};
	print "</tr>\n";
	}
else { print "<td></td> </tr>\n"; }
print "<tr> <td><b>$text{'dir_path'}</b></td>\n";
printf "<td><input name=path size=40 value=\"%s\"></td>\n",
	$d->{'words'}->[0] eq "~" ? $d->{'words'}->[1] : $d->{'words'}->[0];
print "<td colspan=2 align=right>",
      "<input type=submit value=\"$text{'save'}\">&nbsp;",
      "<input type=submit value=\"$text{'delete'}\" name=delete></td> </tr>\n";
print "</table></td></tr></table></form>\n";

print "<hr>\n";
&footer("virt_index.cgi?virt=$in{'virt'}", $text{'virt_return'});


07070100015dd4000081e40000000000000002000000013ac0389800000646000000200000000000000000000000000000002000000003reloc/apache/edit_authgroup.cgi   #!/usr/local/bin/perl
# edit_authgroup.cgi
# Display a form for editing a new or existing group

require './apache-lib.pl';
require './auth-lib.pl';

&ReadParse();
&allowed_auth_file($in{'file'}) ||
	&error(&text('authg_ecannot', $in{'file'}));
if (defined($in{'group'})) {
	# editing existing group
	&header($text{'authg_edit'}, "");
	$g = &get_authgroup($in{'file'}, $in{'group'});
	$group = $g->{'group'};
	@members = @{$g->{'members'}};
	$new = 0;
	}
else {
	# creating a new group
	&header($text{'authg_create'}, "");
	$new = 1;
	}
print "<center><font size=+2>",&text('authg_header', "<tt>$in{'file'}</tt>"),
      "</font></center>\n";
print "<hr>\n";

print "<form method=post action=save_authgroup.cgi>\n";
print "<input type=hidden name=file value=\"$in{'file'}\">\n";
print "<input type=hidden name=url value=\"$in{'url'}\">\n";
if (!$new) { print "<input type=hidden name=oldgroup value=$in{'group'}>\n"; }
print "<table border> <tr $tb><td colspan=2><b>",
      ($new ? $text{'authg_create'} : $text{'authg_edit'}),
      "</b></td> </tr>\n";
print "<tr $cb> <td><b>$text{'authg_group'}</b></td>\n";
print "<td><input name=group size=20 value=\"$group\"></td> </tr>\n";
print "<tr $cb> <td valign=top><b>$text{'authg_mems'}</b></td>\n";
print "<td><textarea name=members rows=5 cols=60 wrap=on>",
	join(' ', @members),"</textarea></td> </tr>\n";

print "</table><p>\n";
print "<input type=submit value=\"$text{'save'}\">\n";
print "&nbsp; <input type=submit value=\"$text{'delete'}\" name=delete>\n"
	if (!$new);
print "</form>\n";

print "<hr>\n";
&footer($in{'url'}, $text{'auth_return'});

  07070100015dd5000081e40000000000000002000000013ac0389800000735000000200000000000000000000000000000001f00000003reloc/apache/edit_authuser.cgi    #!/usr/local/bin/perl
# edit_authuser.cgi
# Display a form for editing a user from a text file

require './apache-lib.pl';
require './auth-lib.pl';

&ReadParse();
&allowed_auth_file($in{'file'}) ||
	&error(&text('authu_ecannot', $in{'file'}));
if (defined($in{'user'})) {
	# editing an existing user
	&header($text{'authu_edit'}, "");
	$u = &get_authuser($in{'file'}, $in{'user'});
	$user = $u->{'user'};
	$pass = $u->{'pass'};
	$new = 0;
	}
else {
	# creating a new user
	&header($text{'authu_create'}, "");
	$new = 1;
	}
print "<center><font size=+2>",&text('authu_header', "<tt>$in{'file'}</tt>"),
      "</font></center>\n";
print "<hr>\n";

print "<form method=post action=save_authuser.cgi>\n";
print "<input type=hidden name=file value=\"$in{'file'}\">\n";
print "<input type=hidden name=url value=\"$in{'url'}\">\n";
if (!$new) { print "<input type=hidden name=olduser value=$in{'user'}>\n"; }

print "<table border>\n";
printf "<tr $tb> <td><b>%s</b></td> </tr>\n",
	$new ? $text{'authu_create'} : $text{'authu_edit'};
print "<tr $cb> <td><table>\n";

print "<tr $cb> <td><b>$text{'authu_user'}</b></td>\n";
print "<td><input name=user size=20 value=\"$user\"></td> </tr>\n";
print "<tr $cb> <td><b>$text{'authu_pass'}</b></td>\n";
printf "<td><input name=mode type=radio value=1 %s> $text{'authu_enc'}\n",
	$new ? '' : 'checked';
print "<input name=enc size=15 value='$pass'>\n";
printf "<input name=mode type=radio value=0 %s> $text{'authu_plain'}\n",
	$new ? 'checked' : '';
print "<input name=pass size=15></td> </tr>\n";

print "<tr> <td colspan=2 align=right>\n";
print "<input type=submit value=\"$text{'save'}\">\n";
print "<input type=submit value=\"$text{'delete'}\" name=delete>\n"
	if (!$new);
print "</td> </tr></table></td></tr></table>\n";
print "</form>\n";

print "<hr>\n";
&footer($in{'url'}, $text{'authu_return'});

   07070100015dd6000081e40000000000000002000000013ac0389800000323000000200000000000000000000000000000001e00000003reloc/apache/edit_defines.cgi #!/usr/local/bin/perl
# edit_defines.cgi
# Display a form for editing run-time httpd defines

require './apache-lib.pl';
$access{'global'}==1 || &error($text{'defines_ecannot'});
&header($text{'defines_title'}, "",
	undef, undef, undef, undef, &restart_button());
print "<hr>\n";

print "<form action=save_defines.cgi>\n";
print "<table width=100%><tr><td valign=top>\n";
print $text{'defines_desc'};
if ($config{'defines'}) {
	print "<p>",&text('defines_config',
			  "<tt><b>$config{'defines'}</b></tt>");
	}

print "</td> <td valign=top>\n";
print "<textarea name=defines rows=5 cols=20>",
	join("\n", split(/\s+/, $site{'defines'})),"</textarea><br>\n";
print "<input type=submit value=\"$text{'save'}\"></td>\n";
print "</tr></table></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});
 07070100015dd7000081e40000000000000002000000013ac038980000050b000000200000000000000000000000000000001a00000003reloc/apache/edit_dir.cgi #!/usr/local/bin/perl
# edit_virt.cgi
# Display a form for editing some kind of per-directory options

require './apache-lib.pl';
&ReadParse();
($vconf, $v) = &get_virtual_config($in{'virt'});
&can_edit_virt($v) || &error($text{'virt_ecannot'});
$access_types{$in{'type'}} || &error($text{'etype'});
$d = $vconf->[$in{'idx'}];
$conf = $d->{'members'};
@dirs = &editable_directives($in{'type'}, 'directory');
&header($text{"type_$in{'type'}"}, "",
	undef, undef, undef, undef, &restart_button());
print "<center><font size=+2>",&text('dir_header', &dir_name($d),
				     &virtual_name($v)), "</font></center>\n";
print "<hr>\n";

print "<form method=post action=save_dir.cgi method=post>\n";
print "<input type=hidden name=type value=$in{'type'}>\n";
print "<input type=hidden name=idx value=$in{'idx'}>\n";
print "<input type=hidden name=virt value=$in{'virt'}>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>",&text('dir_header2', $text{"type_$in{'type'}"},
			       &dir_name($d)),"</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";
&generate_inputs(\@dirs, $conf);
print "</table></td> </tr></table><br>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("dir_index.cgi?virt=$in{'virt'}&idx=$in{'idx'}", $text{'dir_return'});


 07070100015dd8000081e40000000000000002000000013ac0389800000511000000200000000000000000000000000000001c00000003reloc/apache/edit_files.cgi   #!/usr/local/bin/perl
# edit_virt.cgi
# Display a form for editing some kind of per-directory options file

require './apache-lib.pl';
&ReadParse();
$access{'global'} || &error($text{'htaccess_ecannot'});
$access_types{$in{'type'}} || &error($text{'etype'});
&allowed_auth_file($in{'file'}) || &error($text{'htindex_ecannot'});
$hconf = &get_htaccess_config($in{'file'});
$d = $hconf->[$in{'idx'}];
$conf = $d->{'members'};
@dirs = &editable_directives($in{'type'}, 'directory');
&header($text{"type_$in{'type'}"}, "");
print "<center><font size=+2>",&text('htfile_header', &dir_name($d),
      "<tt>$in{'file'}</tt>"),"</font></center>\n";
print "<hr>\n";

print "<form method=post action=save_files.cgi>\n";
print "<input type=hidden name=type value=$in{'type'}>\n";
print "<input type=hidden name=file value=$in{'file'}>\n";
print "<input type=hidden name=idx value=$in{'idx'}>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>",&text('htfile_header2', $text{"type_$in{'type'}"},
	&dir_name($d)),"</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";
&generate_inputs(\@dirs, $conf);
print "</table></td> </tr></table><br>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("htaccess_index.cgi?file=$in{'file'}", $text{'htindex_return'});


   07070100015dd9000081e40000000000000002000000013ac03898000007c9000000200000000000000000000000000000001d00000003reloc/apache/edit_global.cgi  #!/usr/local/bin/perl
# edit_global.cgi
# Display a form for editing some kind of global options

require './apache-lib.pl';
&ReadParse();
$conf = &get_config();
@dirs = &editable_directives($in{'type'}, 'global');
$access{'global'}==1 || &error($text{'global_ecannot'});
$access_types{$in{'type'}} ||
	&error($text{'etype'});
&header($text{"type_$in{'type'}"}, "",
	undef, undef, undef, undef, &restart_button());
print "<hr>\n";

print "<form method=post action=save_global.cgi>\n";
print "<input type=hidden name=type value=$in{'type'}>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>",$text{"type_$in{'type'}"},"</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";
&generate_inputs(\@dirs, $conf);
print "</table></td> </tr></table><br>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

if ($in{'type'} == 6) {
	print "<hr>\n";
	print "<h3>$text{'global_mime'}</h3>\n";
	print "$text{'global_mimedesc'}<p>\n";
	print "<table border width=100%>\n";
	print "<tr $tb> <td width=25%><b>$text{'global_type'}</b></td>\n";
	print "<td><b>$text{'global_ext'}</b></td>\n";
	print "<td width=25%><b>$text{'global_type'}</b></td>\n";
	print "<td><b>$text{'global_ext'}</b></td> </tr>\n";
	$mfile = &find_directive("TypesConfig", $conf);
	if (!$mfile) { $mfile = $config{'mime_types'}; }
	if (!$mfile) { $mfile = &server_root("etc/mime.types", $conf); }
	if (!-r $mfile) { $mfile = &server_root("conf/mime.types", $conf); }
	$mfile = &server_root($mfile, $conf);
	open(MIME, $mfile);
	$line = 0;
	while(<MIME>) {
		chop;
		s/#.*$//;
		if (/^\s*(\S+)\s*(.*)$/) {
			if (!$sw) { print "<tr $cb>\n"; }
			print "<td><a href=\"edit_gmime_type.cgi?line=$line",
			      "&file=$mfile\">$1</a></td> <td>$2<br></td>\n";
			if ($sw) { print "</tr>\n"; }
			$sw = !$sw;
			}
		$line++;
		}
	close(MIME);
	print "</table>\n";
	print "<a href=\"edit_gmime_type.cgi?file=$mfile\">",
	      "$text{'global_add'}</a><p>\n";
	}

print "<hr>\n";
&footer("", $text{'index_return'});


   07070100015dda000081e40000000000000002000000013ac03897000004eb000000200000000000000000000000000000002100000003reloc/apache/edit_gmime_type.cgi  #!/usr/local/bin/perl
# edit_gmime_type.cgi
# Display a form for editing a MIME type from the global list

require './apache-lib.pl';
&ReadParse();
$access{'global'}==1 || &error($text{'mime_ecannot'});
if (defined($in{'line'})) {
	&header($text{'mime_edit'}, "");
	open(MIME, $in{'file'});
	for($i=0; $i<=$in{'line'}; $i++) {
		$line = <MIME>;
		}
	close(MIME);
	$line =~ s/#.*$//;
	$line =~ /^\s*(\S+)\s*(.*)$/;
	$type = $1; @exts = split(/\s+/, $2);
	}
else {
	&header($text{'mime_add'}, "");
	}
print "<hr>\n";

print "<form method=post action=save_gmime_type.cgi>\n";
print "<input type=hidden name=file value=$in{'file'}>\n";
if ($type) {
	print "<input type=hidden name=line value=$in{'line'}>\n";
	}
print "<table border>\n";
print "<tr $tb> <td colspan=2><b>$text{'mime_header'}</b></td> </tr>\n";
print "<tr $cb> <td><b>$text{'mime_type'}</b></td>\n";
print "<td><input name=type size=40 value=\"$type\"></td> </tr>\n";
print "<tr $cb> <td valign=top><b>$text{'mime_ext'}</b></td>\n";
print "<td><textarea name=exts rows=5 cols=15>",join("\n", @exts),
      "</textarea></td> </tr>\n";
print "</table><br>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("edit_global.cgi?type=6", $text{'global_return'});

 07070100015ddb000081e40000000000000002000000013ac03898000004aa000000200000000000000000000000000000001f00000003reloc/apache/edit_htaccess.cgi    #!/usr/local/bin/perl
# edit_htaccess.cgi
# Display a form for editing some kind of per-directory options file

require './apache-lib.pl';
&ReadParse();
$access{'global'} || &error($text{'htaccess_ecannot'});
$access_types{$in{'type'}} ||
	&error($text{'etype'});
&allowed_auth_file($in{'file'}) ||
	&error($text{'htindex_ecannot'});
$conf = &get_htaccess_config($in{'file'});
@dirs = &editable_directives($in{'type'}, 'htaccess');
&header($text{"type_$in{'type'}"}, "");
print "<center><font size=+2>",&text('htindex_header', "<tt>$in{'file'}</tt>"),
      "</font></center>\n";
print "<hr>\n";

print "<form method=post action=save_htaccess.cgi>\n";
print "<input type=hidden name=type value=$in{'type'}>\n";
print "<input type=hidden name=file value=$in{'file'}>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>",&text('htindex_header2', $text{"type_$in{'type'}"},
			       "<tt>$in{'file'}</tt>"),"</td> </tr>\n";
print "<tr $cb> <td><table>\n";
&generate_inputs(\@dirs, $conf);
print "</table></td> </tr></table><br>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("htaccess_index.cgi?file=$in{'file'}", "options file index");


  07070100015ddc000081e40000000000000002000000013ac0389700000562000000200000000000000000000000000000001b00000003reloc/apache/edit_virt.cgi    #!/usr/local/bin/perl
# edit_virt.cgi
# Display a form for editing some kind of per-server

require './apache-lib.pl';
&ReadParse();
($conf, $v) = &get_virtual_config($in{'virt'});
&can_edit_virt($v) || &error($text{'virt_ecannot'});
$access_types{$in{'type'}} || &error($text{'etype'});
@dirs = &editable_directives($in{'type'}, 'virtual');
&header($text{"type_$in{'type'}"}, "",
	undef, undef, undef, undef, &restart_button());
print "<center><font size=+2>",&text('virt_header', &virtual_name($v)),
      "</font></center>\n";
print "<hr>\n";

if ($in{'type'} == 8 && !$access{'vuser'}) {
	print "$text{'virt_euser'} <p>\n";
	print "<hr>\n";
	&footer("virt_index.cgi?virt=$in{'virt'}", $text{'virt_return'});
	exit;
	}

if (!$in{'virt'}) {
	@dirs = grep { !$_->{'virtualonly'} } @dirs;
	}

print "<form action=save_virt.cgi method=post>\n";
print "<input type=hidden name=type value=$in{'type'}>\n";
print "<input type=hidden name=virt value=$in{'virt'}>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>",&text('virt_header2', $text{"type_$in{'type'}"},
			       &virtual_name($v)),"</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";
&generate_inputs(\@dirs, $conf);
print "</table></td> </tr></table><br>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("virt_index.cgi?virt=$in{'virt'}", $text{'virt_return'});


  07070100015ddd000081e40000000000000002000000013ac03898000008a5000000200000000000000000000000000000001c00000003reloc/apache/edit_vserv.cgi   #!/usr/local/bin/perl
# edit_vserv.cgi
# Edit the fundamental parameters of some virtual server

require './apache-lib.pl';
&ReadParse();
$access{'vaddr'} || &error($text{'vserv_ecannot'});
$vconf = &get_config()->[$in{'virt'}];
&header($text{'vserv_title'}, "",
	undef, undef, undef, undef, &restart_button());
print "<hr>\n";

$val = $vconf->{'value'};
if ($val =~ /\s/) {
	$addrs = $val;
	}
if ($val =~ /^(\S+):(\S+)$/) {
	$addr = $1; $port = $2;
	}
else { $addr = $val; }
if ($addr eq "_default_" || $addr eq "*") { undef($addr); }
$root = &find_directive_struct("DocumentRoot", $vconf->{'members'});
$name = &find_directive("ServerName", $vconf->{'members'});

print "<form action=save_vserv.cgi>\n";
print "<input type=hidden name=virt value=$in{'virt'}>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'vserv_title'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

if ($addrs) {
	print "<tr> <td valign=top><b>$text{'vserv_addrs'}</b></td>\n";
	print "<td><textarea name=addrs rows=4 cols=30>",
	      join("\n", split(/\s+/, $addrs)),"</textarea></td> </tr>\n";
	}
else {
	print "<tr> <td><b>$text{'vserv_addr'}</b></td>\n";
	print "<td>",&opt_input($addr, "addr", $text{'vserv_any'}, 30),
	      "</td> </tr>\n";

	print "<tr> <td><b>$text{'vserv_port'}</b></td>\n";
	print "<td>",&choice_input($port eq "*" ? 1 : $port > 0 ? 2 : 0,
				   "port_mode", "0", "$text{'vserv_default'},0",
				   "$text{'vserv_any'},1", ",2");
	printf "<input name=port size=5 value=\"%s\"></td> </tr>\n",
		$port > 0 ? $port : "";
	}

print "<tr> <td><b>$text{'vserv_root'}</b></td>\n";
print "<td>",&opt_input($root->{'words'}->[0], "root", $text{'vserv_default'},
	50), &file_chooser_button("root", 1),"</td> </tr>\n";

print "<tr> <td><b>$text{'vserv_name'}</b></td>\n";
print "<td>",&opt_input($name, "name", $text{'vserv_default'}, 30),
      "</td> </tr>\n";

print "<tr> <td colspan=2 align=right>\n";
print "<input type=submit value=\"$text{'save'}\">\n";
print "<input type=submit value=\"$text{'vserv_delete'}\" name=delete>\n";
print "</td> </tr>\n";

print "</table> </td></tr></table><p>\n";
print "</form>\n";

print "<hr>\n";
&footer("virt_index.cgi?virt=$in{'virt'}", $text{'virt_return'});

   07070100015dde000081e40000000000000002000000013ac0389800000862000000200000000000000000000000000000001d00000003reloc/apache/files_index.cgi  #!/usr/local/bin/perl
# files_index.cgi
# Display a menu of icons for per-files options

require './apache-lib.pl';
&ReadParse();
$access{'global'} || &error($text{'htaccess_ecannot'});
&allowed_auth_file($in{'file'}) ||
	&error($text{'htindex_ecannot'});
$conf = &get_htaccess_config($in{'file'});
$d = $conf->[$in{'idx'}];
&header($text{'htfile_title'}, "");
print "<center><font size=+2>",&text('htfile_header', &dir_name($d),
	"<tt>$in{'file'}</tt>"),"</font></center><br>\n";
print "<hr>\n";
print "<h3>$text{'htfile_title'}</h3>\n";
$sw_icon = { "icon" => "images/show.gif",
	     "name" => $text{'htfile_show'},
	     "link" => "show.cgi?file=$in{'file'}&idx=$in{'idx'}" };
if ($access{'types'} eq '*') {
	$ed_icon = { "icon" => "images/edit.gif",
		     "name" => $text{'htfile_edit'},
		     "link" =>
			"manual_form.cgi?file=$in{'file'}&idx=$in{'idx'}" };
	}
&config_icons("directory", "edit_files.cgi?file=$in{'file'}&idx=$in{'idx'}&",
	      $sw_icon, $ed_icon ? ( $ed_icon ) : ( ));

print "<hr>\n";
print "<form action=change_files.cgi>\n";
print "<input type=hidden name=file value=$in{'file'}>\n";
print "<input type=hidden name=idx value=$in{'idx'}>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'htfile_apply'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";
print "<tr> <td><b>$text{'htindex_regexp'}</b></td>\n";
$regex = $d->{'words'}->[0] eq "~" || $d->{'name'} =~ /Match/i;
printf "<td colspan=3><input type=radio name=regexp value=0 %s> %s\n",
	$regex ? "" : "checked", $text{'htindex_exact'};
printf "<input type=radio name=regexp value=1 %s> %s</td> </tr>\n",
	$regex ? "checked" : "", $text{'htindex_re'};
print "<tr> <td><b>$text{'htindex_path'}</b></td>\n";
printf "<td><input name=path size=40 value=\"%s\"></td>\n",
	$d->{'words'}->[0] eq "~" ? $d->{'words'}->[1] : $d->{'words'}->[0];
print "<td colspan=2 align=right>",
      "<input type=submit value=\"$text{'save'}\">&nbsp;",
      "<input type=submit value=\"$text{'delete'}\" name=delete></td> </tr>\n";
print "</table></td></tr></table></form>\n";

print "<hr>\n";
&footer("htaccess_index.cgi?file=$in{'file'}", $text{'htindex_return'});


  07070100015ddf000081e40000000000000002000000013ac03898000006de000000200000000000000000000000000000001f00000003reloc/apache/find_htaccess.cgi    #!/usr/local/bin/perl
# find_htaccess.cgi
# Finds all per-directory options files under the all the document roots

require './apache-lib.pl';
&ReadParse();
$access{'global'} || &error($text{'htaccess_ecannot'});

$in{'from'}=1 if ($access{'dir'} ne '/');
if ($in{'from'} == 1 && !(-d $in{'dir'})) {
	&error(&text('htaccess_edir', $in{'dir'}));
	}
&read_file("$module_config_directory/site", \%site);
foreach $f (split(/\s+/, $site{'htaccess'})) {
	if (-r $f) { push(@rv, $f); }
	}

# Find the default document root and access file
$conf = &get_config();
$def_htaccess = &find_directive("AccessFileName", $conf);
if (!$def_htaccess) { $def_htaccess = ".htaccess"; }
$def_root = &find_directive("DocumentRoot", $conf);
if (!$def_root) { $def_root = "/"; }

# find virtual server doc roots and access files
push(@dirs, $def_root); push(@files, $def_htaccess);
foreach $v (&find_directive_struct("VirtualHost", $conf)) {
	$root = &find_directive("DocumentRoot", $v->{'members'});
	push(@dirs, $root ? $root : $def_root);
	$htaccess = &find_directive("AccessFileName", $v->{'members'});
	push(@files, $htaccess ? $htaccess : $def_htaccess);
	}

if ($in{'from'} == 0) {
	# search under all directories
	for($i=0; $i<@dirs; $i++) {
		open(FIND, "find $dirs[$i] -name $files[$i] -print |");
		while(<FIND>) {
			s/\r|\n//g;
			push(@rv, $_);
			}
		close(FIND);
		}
	}
else {
	# search under the given directory only
	foreach $f (&unique(@files)) { push(@args, "-name $f"); }
	$args = join(' -o ', @args);
	open(FIND, "find $in{'dir'} $args -print |");
	while(<FIND>) {
		s/\r|\n//g;
		push(@rv, $_);
		}
	close(FIND);
	}

# save results
$site{'htaccess'} = join(' ', &unique(@rv));
&write_file("$module_config_directory/site", \%site);
&redirect("htaccess.cgi");

  07070100015de0000081e40000000000000002000000013ac03898000005e0000000200000000000000000000000000000001a00000003reloc/apache/htaccess.cgi #!/usr/local/bin/perl
# htaccess.cgi
# Display a list of per-directory config files

require './apache-lib.pl';
$access{'global'} || &error($text{'htaccess_ecannot'});
&header($text{'htaccess_title'}, "");
print "<hr>\n";

print "$text{'htaccess_desc'} <p>\n";
@htaccess_files = grep { &allowed_auth_file($_) } @htaccess_files;
if (@htaccess_files) {
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'htaccess_title'}</b></td> </tr>\n";
	print "<tr $cb><td><table width=100%>\n";
	for($i=0; $i<@htaccess_files; $i++) {
		if ($i%2 == 0) { print "<tr>\n"; }
		print "<td width=50%><a href=\"htaccess_index.cgi?file=",
		      &urlize($htaccess_files[$i]),"\">",$htaccess_files[$i],
		      "</a></td>\n";
		if ($i%2 == 1) { print "</tr>\n"; }
		}
	print "</table></td></tr></table><p>\n";
	}
print "<form action=create_htaccess.cgi>\n";
print "<input type=submit value=\"$text{'htaccess_create'}\">\n";
print "<input name=file size=30>\n",
	&file_chooser_button("file", 0, 0);
print "</form>\n";

print "<form action=find_htaccess.cgi>\n";
print "<input type=submit value=\"$text{'htaccess_find'}\">\n";
if ($access{'dir'} eq '/') {
	print "<input type=radio name=from value=0 checked>",
	      "$text{'htaccess_auto'}&nbsp;&nbsp;\n";
	print "<input type=radio name=from value=1>\n";
	}
print "$text{'htaccess_from'}\n";
print "<input name=dir size=30 value=$access{'dir'}>\n",
	&file_chooser_button("dir", 1, 1);
print "</form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

07070100015de1000081e40000000000000002000000013ac0389800000aee000000200000000000000000000000000000002000000003reloc/apache/htaccess_index.cgi   #!/usr/local/bin/perl
# htaccess_index.cgi
# Display a menu of icons for a per-directory options file

require './apache-lib.pl';
&ReadParse();
$access{'global'} || &error($text{'htaccess_ecannot'});
&allowed_auth_file($in{'file'}) ||
	&error($text{'htindex_ecannot'});
$conf = &get_htaccess_config($in{'file'});
&header($text{'htindex_title'}, "",
	undef, undef, undef, undef, "<a href=\"delete_htaccess.cgi?file=".
	&urlize($in{'file'})."\">$text{'htindex_delete'}</a>");
print "<center><font size=+2><tt>$in{'file'}</tt></font></center>\n";
print "<hr>\n";
print "<h3>$text{'htindex_opts'}</h3>\n";
$sw_icon = { "icon" => "images/show.gif",
	     "name" => $text{'htindex_show'},
	     "link" => "show.cgi?file=$in{'file'}" };
if ($access{'types'} eq '*') {
	$ed_icon = { "icon" => "images/edit.gif",
		     "name" => $text{'htindex_edit'},
		     "link" => "manual_form.cgi?file=$in{'file'}" };
	}
&config_icons("htaccess", "edit_htaccess.cgi?file=$in{'file'}&",
	      $sw_icon, $ed_icon ? ( $ed_icon ) : ( ));

@file = ( &find_directive_struct("Files", $conf),
          &find_directive_struct("FilesMatch", $conf) );
if (@file && $httpd_modules{'core'} >= 1.2) {
	# Files sub-directives
	print "<hr>\n";
	print "<h3>$text{'htindex_file'}</h3>\n";
	print "<table width=100% cellpadding=5>\n";
	foreach $f (@file) {
		if ($i%3 == 0) { print "<tr>\n"; }
		$what = &dir_name($f);
		substr($what, 0, 1) = uc(substr($what, 0, 1));
		print "<td valign=top align=center width=33%>\n";
		&generate_icon("images/dir.gif", $what,
		       	"files_index.cgi?idx=".&indexof($f, @$conf).
			"&file=$in{'file'}");
		print "</td>\n";
		if ($i++%3 == 2) { print "</tr>\n"; }
		}
	while($i++%3) { print "<td width=33%><br></td>\n"; }
	print "</table><p>\n";
	}

if ($httpd_modules{'core'} >= 1.2) {
	print "<form action=create_files.cgi>\n";
	print "<input type=hidden name=file value=$in{'file'}>\n";
	print "<table border>\n";
	print "<tr $tb> <td><b>$text{'htindex_create'}</b></td> </tr>\n";
	print "<tr $cb> <td><table>\n";
	print "<tr> <td><b>$text{'htindex_regexp'}</b></td>\n";
	$regex = $d->{'words'}->[0] eq "~" || $d->{'name'} =~ /Match/;
	printf "<td colspan=3><input type=radio name=regexp value=0 %s> %s\n",
		$regex ? "" : "checked", $text{'htindex_exact'};
	printf "<input type=radio name=regexp value=1 %s> %s</td> </tr>\n",
		$regex ? "checked" : "", $text{'htindex_re'};
	print "<tr> <td><b>$text{'htindex_path'}</b></td>\n";
	printf "<td><input name=path size=40 value=\"%s\"></td>\n",
		$d->{'words'}->[0] eq "~" ? $d->{'words'}->[1]
					  : $d->{'words'}->[0];
	print "<td colspan=2 align=right>",
	      "<input type=submit value=\"$text{'create'}\"></td> </tr>\n";
	print "</table></td></tr></table></form>\n";
	}

print "<hr>\n";
&footer("htaccess.cgi", $text{'htaccess_return'});


  07070100017200000041ed0000000000000001000000023ac03b9900000000000000200000000000000000000000000000001400000003reloc/apache/images   07070100017201000081a40000000000000002000000013ac038970000020c000000200000000000000000000000000000001c00000003reloc/apache/images/def.gif   GIF89a0 0   ゥ!浇苿剟ZZZ    c挝蝐  1   B 1  fff絉sss kkk                        !    ,    0 0    巇i瀐l電+蟭
vn
割咐纆# !Q6,叔k`嚇5 唲B≥垍伭84,茿Qe7pUH暂y(jb亗&rU
{&
哸墫&卼lo#s	>"$櫄坣# 懒部木&噳犊%橇胰 c憮昭徕嘧{洅足赃淠 
	a鰦鹎螯染╣o哩$豊Z瓈&d0仮(69U5#
嵳娻a rW&OZ3亱贇奛糞3E)P8m> 噼	>霆tsJ翸
敗:嘇&Q: 眂E溮3,t顟洫嬃+穥
8雟紽鷬8@爛#\癭纻劰T-<0\)1蓵[(9胥臓g  ;07070100017202000081a40000000000000002000000013ac03897000002c2000000200000000000000000000000000000002000000003reloc/apache/images/defines.gif   GIF89a0 0   ┅沣鉹rrUUU帋庘忖   qqq乔TTT888破999崓!Made with GIMP !   ,    0 0  '巇i瀐l霂B,Q芇址q+A,&@#Q(B(q<DF肣詀Z.Q鳈畧褋A揽弨hdgNP"DH	"	$墜}$l厲')f*D"厏s`L#z&灊#＂J#岶礡~g俺F门"S7=示棶"臏;	豐zJ憼$臋&#婕宋蛗醀円z屟鯍綉	?cF$鈹幪噥楔<A騛@8U b耝J$鶘闕╯&倛DE②二J8櫜	0c蕼I肠蜎8K3圓歎Ry)硦暋7穴a撪'%I擛 +	\翷+5&嵏F徣"x犪J怴"p%!QUh垤竹嗧撛[蒉身儘"=骬茬GO/B犣;L鋛兯勴砐.>h0iD7#攷6T嗓[_awc酬_4:啑lGz 碢}牊膓忘.进峴髿澕tr螎@熁6m熝繟K翆魕伃z|j~v1_>H鮥鎋? 2@TC<趕$|/1瀬Fmw謧┢O@鲷e 4囦V	+h雎m惀齞! ;  07070100017203000081a40000000000000002000000013ac038970000010a000000200000000000000000000000000000001c00000003reloc/apache/images/dir.gif   GIF89a0 0   烫虣櫃fff            !    ,    0 0  很0蔍8帅 貚Nf炴FRA杈檬爵薘[脁倔=堫K膼袢&桳厯峃U鎢E〧倎xL./w
j塯I蹐@浅糊9痏鈘t儎1[5x厡噣a}{Tz杦>棟af倊i牗毆9'_AhGll窰煢揦┕悩4崊徖 薂勇\目溋泑邽拶い墉嫥蒕	 ;  07070100017204000081a40000000000000002000000013ac03897000000f5000000200000000000000000000000000000001c00000003reloc/apache/images/doc.gif   GIF89a0 0   櫃櫶烫fff!    ,    0 0  苿彥隧蹿[冝<`	釮
圩:l踰!,灍︺<$d,91賠uM2荞l*扸泳篈(镴駔吰ii3薴汒\撸6鶟#(鯂6ˇx8W7H颧HTt5墿x郔殸5腨定戟`[饫Zk[腙4:∷+猁
,K|jx惶莒\3鹛:@]m}峂崜蜐-.>⺌  ;   07070100017206000081a40000000000000002000000013ac03897000001de000000200000000000000000000000000000001d00000003reloc/apache/images/edit.gif  GIF89a0 0   櫃   蘤f虣ff櫶櫃烫烫櫶33虣3烫3铑蘤烫檅bb                                             !Made with GIMP !    ,    0 0    巇i瀐jh缼.辔眏碎慵~>R鼭X脵&劷h蔱窆[虍XiF粪jW媍妠;蹦齿9)n玨Qㄌ鼚涽F乴M#唫坬W塅5R/彁"+ld憖尃儶墥 9C毉㎝磝絊Q	啓}Zor

廽N璬抩m蝝huV1k剶	
纶芔v莳,吐蔱緖PL}鸸

9$煦t醭徙毣亯; 	酏"迚`9s幮艌U@"稅"J+共丅q齯|粓1SNB7g潈(Ev:唻 rn摦$CQ省哫砵菔但庄`脢K冬俪]C  ;  07070100017208000081a40000000000000002000000013ac038970000020c000000200000000000000000000000000000001d00000003reloc/apache/images/icon.gif  GIF89a0 0   ゥ!浇苿剟ZZZ    c挝蝐  1   B 1  fff絉sss kkk                        !    ,    0 0    巇i瀐l電+蟭
vn
割咐纆# !Q6,叔k`嚇5 唲B≥垍伭84,茿Qe7pUH暂y(jb亗&rU
{&
哸墫&卼lo#s	>"$櫄坣# 懒部木&噳犊%橇胰 c憮昭徕嘧{洅足赃淠 
	a鰦鹎螯染╣o哩$豊Z瓈&d0仮(69U5#
嵳娻a rW&OZ3亱贇奛糞3E)P8m> 噼	>霆tsJ翸
敗:嘇&Q: 眂E溮3,t顟洫嬃+穥
8雟紽鷬8@爛#\癭纻劰T-<0\)1蓵[(9胥臓g  ;07070100017209000081a40000000000000002000000013ac0389700000250000000200000000000000000000000000000001e00000003reloc/apache/images/recon.gif GIF89a0 0   UUU乔倾沣帋   rrr999      !Made with GIMP !    ,    0 0  菼8胪Y XC@\E`5赜`攞 b0*侰b0( GJ訮f稝0%Y ND("尭Q匭@,p罿r艻 	{丅	|CT 妢Q4 剢岴w/ODa0 pi~P1A:q3乽U乤|+*TLq沺c)hi'm-$;#溓s襴姓肿刭" 刀諞輵Q:<<A EB 蓔R,稶`X璟]J`x!*-(澲箟SgN;2yH(傤*4AA.8殗柒=I'*M撪P8mx攂!烺﹤F	竈d茬_.籘泥癰/j\+ъ洗m汧M痐脢腠挢Q	懶那-=喋n试)鉵嫼Fv螇IEz
覯F糝る囇紁yfR羓纉$x”鐫爫=敃攂1c﹁甑巢琽详尥环锆荑柕鯮醺=挘[+仢籩:s*i枈晑Z2婤患姉垂幫聡饕fK蠿  ;0707010001720a000081a40000000000000002000000013ac0389700000143000000200000000000000000000000000000001d00000003reloc/apache/images/show.gif  GIF89a0 0   櫃!    ,    0 0  ⻊彥谁<萚澏mRz[$"t^fR婢辄洁毋;3諂腬星C*$龄瞖:35欵9*开24fNG嘘6Y6u薝X迗_熪s繗鰓g噂3#7喣%暸(娲Rdu膯S駝f觊▂"衷恼I枻'';WF[嫑獽gh[竒Ч487Jh髝&sj豼$<硪堯Xt	x葦檸,n緙M减и凳J篇夯线锟猊?*|f	ㄑ珔o折婱Z药kXL6倴=Hv蕷$(矢晜讘劽X嫸4K@ ; 0707010001720b000081a40000000000000002000000013ac0389700000103000000200000000000000000000000000000002400000003reloc/apache/images/type_icon_0.gif   GIF89a0 0   烫虣櫃fff!    ,    0 0  詣彥隧+貃)~Gc]&殜琩建:C乮卑1v嚀'瑃`盽波0唨O1h汾隄-2elv犛-qi縎WiU7籁非g╭刪踔3527关═I)!ㄧij)觬(Z醩`歸*懪5[苏;蝴爸\(<L5閍嗘5fd帱l咆远=u嵀绞濇畕C=鬲K媖V  ; 0707010001720c000081a40000000000000002000000013ac03897000001de000000200000000000000000000000000000002400000003reloc/apache/images/type_icon_1.gif   GIF89a0 0   fff烫   櫃         !    ,    0 0  很0独璨t龜*Ｓ]榃ミ鎾*倬+薥=w1}"赿'$nN筏蓛順=塼*X嫬^砡*@鰱穏q椝nw尊q\m纂v;铽醎|{~y乗
媶噝k{\峿弾抭妺潟漻] 牉寠R寉灆￢廠ぅ┉ごT潹颅衰拦捛夏T 患蕾召呜僦棕浊滂煦赕怃麴锺篪蝥叔kg磔?:濧啌hn猞3j|@预C"!挙挾T
ftl	r@hf股sB蜝;骝tJQ琝哛舰t檎疪眾倞E,Pc奞骃3ァ篎E5+U〈襃,卜6J洛p簣v耦銌P演谯7p=yOIqB倫V茱q@	C秝佼嗤K慈"膱藭<% ;  0707010001720d000081a40000000000000002000000013ac03897000000d0000000200000000000000000000000000000002500000003reloc/apache/images/type_icon_10.gif  GIF89a0 0   烫虣櫃fff!    ,    0 0  彥隧魠{E+/躼x燞庢嚘苁/^頉 儜!駚嫾ゥ閘$5褑睔Q眽i袀簧/W<>L穒-6W/]↙扷j濛擟(犁62Px拎fWh1yGy夈矆y)G鄙3 CD毆*赩杅p5垛YeB[{鷬p胨Q  ;0707010001720e000081a40000000000000002000000013ac0389700000184000000200000000000000000000000000000002500000003reloc/apache/images/type_icon_11.gif  GIF89a0 0   帋嶶UU   沣rrr乔999      !Made with GIMP !    ,    0 0  菼8胪`(巇i瀐l刖p,蟭聽B!N7帙渀赡簚`
暶@Xq 榋J1@蒵	粧 '至 HL;D~D\>xv8岲H匘y`奞u:{cozb:瞕:坷f尵Dyp┌:藮慌蔇で喖j泥yjZ:雓刿楾趓D芷 漲拚揱珬.糃+@4gΙ丗*O翷衳抝I &)*`傎X刹ニ0c蕼I肠蜎8sr  ;0707010001720f000081a40000000000000002000000013ac038970000011e000000200000000000000000000000000000002500000003reloc/apache/images/type_icon_12.gif  GIF89a0 0   櫃櫶烫   fff                           !    ,    0 0  菼8胪`(巆 渉d榢酚儸4`吖潓鰞	嚖b繢1汵(<戗尸7m璈些P E泸Szz(,峭w;彧鋡Br乄!'刱km{媇厒d,敄{Qo)棙b昬檍}湠煇3悲S婻 羠磸|巬∨亭暮删骄痰俦郄茛邨釖銋=玷殛腱眍 ;  07070100017210000081a40000000000000002000000013ac03897000000d6000000200000000000000000000000000000002500000003reloc/apache/images/type_icon_13.gif  GIF89a0 0     烫虣櫃fff         !    ,    0 0  很0寿谔帉H炶i示p穝m+瞽辄'`pp幦$扨T:廘蒔Fk#毤,懟紑3g馰叟8灛跺x稡x%oo|O乭u}/凬宊}VM抏6~櫄洑=98ⅳ、Дク<舶煷7返	 ;  07070100017211000081a40000000000000002000000013ac038970000016c000000200000000000000000000000000000002500000003reloc/apache/images/type_icon_14.gif  GIF89a0 0   櫃!Made with GIMP !    ,    0 0  﨑g哥渀,糦㏕[s^)譮u鎾a)鬒镶胛芣毹杤燶$V)>4B飿(JC郅期o{a^ 鏬/膘[8继#7忡翮b６烛5鰡敢WUyi〣籁	i扞妲Y7賾4Dd7值傜#攝RK掆R椨(FrHBg+腻H)s$艣x,奫獆
儇=篻瓬l芾氀汑形)靀9换9<碱X蛧憢*"%掘崥嘖毯R,牡"4p$iO2?妭#孒~向`QGh箨嶼'vF渽题脬rm鑋短孞	  ;07070100017212000081a40000000000000002000000013ac0389700000119000000200000000000000000000000000000002400000003reloc/apache/images/type_icon_2.gif   GIF89a0 0         !    ,    0 0  陝彥隧蹿嫵<]'勗	阘B脹畂珜/,荀貛A鶭I墮駠L3'缄~I-洅侫焔K?Ie髖
猚@堺薝+:禽'龅#稧嗮g677耫瓒(E莚 y7┓夢塀	绱EH姌4$6	嚻4﹤魂塲{{+;k 麭苒p|<鬨l'G龛'濤:衍鞬璟毊佥驡M僰<_3韢oL穙m/犂4P  ;   07070100017213000081a40000000000000002000000013ac03897000001d6000000200000000000000000000000000000002400000003reloc/apache/images/type_icon_3.gif   GIF89a0 0   櫃檉ff烫            !   ,    0 0  㧏	18[汹麪h$xㄣ卄Yv芎0諍'z7ZDg;3IQ墪s4q愙(ザi+C惠c
bo]韪7Lg\y疓/鷒$zhwak唦#:僫N"妏寍墤巃y敄"槒D慶w嶥6廳V:猺6X圥矋~瓭櫒 海朅秞皾杭絅l9萴
材灯.,VI,汜Y謉T餭X>鎚遺o)VKA旺鏝*W歶7綺>1菩TA#*=冟湬酕Wwh,4駧G捙B塍缪J嫯4籏5杉僤憯=Z瀌鰘4"'.mM3櫹檱j厷7區蔶掙>D'4%#r臛_e8J2親g:窘86c%N堬T 馵霎粤幝S掆
i0;o 赦 錌嬑燙M鶥 ;  07070100017214000081a40000000000000002000000013ac0389700000113000000200000000000000000000000000000002400000003reloc/apache/images/type_icon_4.gif   GIF89a0 0   烫虣櫃fff            !    ,    0 0  很0蔍8死{讬'8yB俫B]z秮:渕}鲯嚨炩!鰧粻Ya倻MJ	酼礧捌 gu@鬡U?賍w咵/羆巷}y剕&z剢巻 憭弾崈棌晧殩瀧ぅⅲ洜~挱疁埓捣祲悎恫【聥炼拦贸皺橇幣派维泄氏斎已虆乇趰*徭乳 庄飶B蝮趱鲼	 ; 07070100017215000081a40000000000000002000000013ac0389700000175000000200000000000000000000000000000002400000003reloc/apache/images/type_icon_5.gif   GIF89a0 0   櫃櫶烫fff                              !    ,    0 0  菼8胪`(巆 渉d榢酚k竴篅邏傲d綻秾佨nw
朚姮pA鷼
h磑
內0n棘3珙vwwyrH倛xZ!'Tf}}<s墐 2敃"<igj<T殜湗▌潕R9懀帾┅Мu惌~胆穟捒膯H墒3尠2凉窽]掏*犞赴=墼献=捱懪嫖貊龊挧 膑镛?w唳戵p`馱縶F6贻厗#%(苳{Pa転罝Aう蜎8s贶捎B ;   07070100017216000081a40000000000000002000000013ac038970000018b000000200000000000000000000000000000002400000003reloc/apache/images/type_icon_6.gif   GIF89a0 0   櫃     fff烫  !    ,    0 0  很0蔃k8?*z縕圲0牗6Vyδ
艓x煂,顑ZdEq
繀饒)泠|鈆斋襧諝\冏,荷8O>詤凗怰烷{儂}I垈剓:實|+6棔櫄洔牎!xO、Ёg;Cs<6瑺b縺xwU坣cAYr<何呈q纮T湍]耑e艺K畚篟份W隋缰膉贂喱欘寐女麴圾 
d乮鄸&*d	
 傕倐B剄!|侔肣y礿@$澊s軚L獲毅3諕P⒉ %艠#"氦v屾NqL 	$	(唍r:2O!Y
 5%>H  ; 07070100017217000081a40000000000000002000000013ac038970000018a000000200000000000000000000000000000002400000003reloc/apache/images/type_icon_7.gif   GIF89a0 0   乔莚rr999   UUU沣帋      !Made with GIMP !    ,    0 0  菼8胪`(巇i翤瑓qb瑃]細★ w	}@29牑R8倐OB⿹謽朰嵢z聒%9匆濿U=売NrX+	~+`iAjMOVAd^U0?A|灙6ケ5A 牄5┆5Y0珺k0耐4猈埪$FA茒4%z4峙&厓j0嫓b"氣b广项+!全犃儶 瓼墕8L0E(旽发P&	櫋4&;(,眗7$谹嫣s贶沙  ;  07070100017218000081a40000000000000002000000013ac0389700000186000000200000000000000000000000000000002400000003reloc/apache/images/type_icon_8.gif   GIF89a0 0      fff烫!    ,    0 0  ⻊彥隧&X
厧躲OG~J:"ㄘ芫涄-`愓坶8A醡5榈宐啽U(姖旿秺nRfF6#8_砪_踂TfJ力7@q坵 g(鰓@s羧w枛鴓t贅y'篱偃&h皯$宸:[v儤踄囀餣:瑳眤覉4琫滒!都鸆槣J扲e工骰M躪M編-{巆))㖞~J蚙_m 進u&)骔僪x,0麌/犅hN`瀀馺<朻LLn|t罧婽聶e%=螙塣嬜瓚'Y<喪張⑵- 萒Po:昮U4>燜佃幈d藲[  ;  07070100017219000081a40000000000000002000000013ac03897000001cc000000200000000000000000000000000000002400000003reloc/apache/images/type_icon_9.gif   GIF89a0 0   櫃櫶烫   !    ,    0 0  ⻊	甲岒蛬T睼c陖耯箿c#槎+倂窝莞h%A 9洂舯@瀂
罧9=榍Z鈋/L瀨荾7&嬎[篡g制礸陞*U{ag&2鵂非%' XXSgGG(貴╱虏Y雎s)驋y赧9%33历:`
{  蓑z袺;;埴`{汸睖塥0 m潦郜 D-1离,卷,L:-蜰.l-峠觐n6<,唀#棌簝盞妗聢
5A瀴吼c灞hZi5r諭#+v躻蔅儇TⅰH幬B戞焯	1=c滗Y4MO倈*麻枽Nw蕠R,t怓吤顷濶^杰
uiY'QZ'3q昃w滼d硚祸羷遯簸唘p(EJ编槓n琷夊;)kV咘!葤1  ;0707010001721a000081a40000000000000002000000013ac038970000020c000000200000000000000000000000000000001d00000003reloc/apache/images/virt.gif  GIF89a0 0   ゥ!浇苿剟ZZZ    c挝蝐  1   B 1  fff絉sss kkk                        !    ,    0 0    巇i瀐l電+蟭
vn
割咐纆# !Q6,叔k`嚇5 唲B≥垍伭84,茿Qe7pUH暂y(jb亗&rU
{&
哸墫&卼lo#s	>"$櫄坣# 懒部木&噳犊%橇胰 c憮昭徕嘧{洅足赃淠 
	a鰦鹎螯染╣o哩$豊Z瓈&d0仮(69U5#
嵳娻a rW&OZ3亱贇奛糞3E)P8m> 噼	>霆tsJ翸
敗:嘇&Q: 眂E溮3,t顟洫嬃+穥
8雟紽鷬8@爛#\癭纻劰T-<0\)1蓵[(9胥臓g  ;0707010001721b000081a40000000000000002000000013ac0389700000a5e000000200000000000000000000000000000002300000003reloc/apache/images/virt_index.gif    GIF89a0   UUU   rrr999沣闱乔獛帋      !Made with GIMP !    ,    0  菼8胪鄓$A$Hól雮2楥x甒佮徵+$=鈔#
,美欂pR佔砬	嫥膔鍬J
膫y濧TW璇覨稃-]zN	lDn:viIDad-1a?|^倇櫍[	jY枙>潳-疧m磯*幢睭Np驴+徟?刏-?α耿,星啃!刑徽彐酠D襈,Nr?-泗N鰕个jRB痑唌("悏$啝R
B	XH颲焺+鱍侲Zv3唴柍
萾﹣#啍w樐F湘橑.迥觘" 澌.DXMs+{	賘肬2L皳创(]r6嫢 蕍Xkd肧AmU码v7B謉	弥
|+0QB&>@imHPn+贒凵_f 囈餵o邺猑M贆鎆棾磐}sB*QK棙惽揋k^鎤戅+ゴ喒緦0劣$H	T牊碓
倈	蜶狍0C
醯I<岽纚 虻勒_~乤郰蒘馾袩R渑嵛z"R莯文Tg%艔k	硌;D|馇"勄\淞k鋎Ar@Z袐X鏨餡E瀿<R4u0dx 棥($^诔<?誋/)U5bh{,X鈣 	&Q1儙乧p抇瓒^廙R [緳砡\U$YUe哎汿FWˊz欐 vAJl!枹Y铢a煕qTL*2姊a洊E檁XF哋k罥d暋K9p㑳悞\z`╛N闚0#凳妁&w|Ц'C児钑稳.搦D墚癏繺暂_瑜鵭稒7AJ9Wd硆蠻厲聠憔+潔麶咃燩癁>Q	-!l棊砷1媖OW|崔慛吹VKf鈍/0x
,&罿 -0儎榛C飞E;A+蛠Q伷 ;潝b<鲤 >頻m-汕鞘淦;鎅尢*爸敦蜞壍坬T秀滉 \]蓌盃O=7U~-AJ;澱踿途枺5O餎,準Dd詝{J剉嫸;/7"u辺浑CTs**z7]楔绾黬^w镨翱沘Tcfō┊宨
刁zN箭9鑊o]钛z難禬栓;Rpa膢畸祫VW'胃
)^8豠炕>c娪館m圹 А狻TII#@寗!桱\噵犳zg7,aoo糭 〇佮 
U鏎 VZ揿F瓤衽蠂鰚%$JibW3+嗷蝕9鶱 嗐猁<T5G瑫D盒嚂1堤紷<犉KX/{,䎱6嶭H
=鹂<迧i蹰$惸暑J]貳郘暣,鈓-A#4@	騆梥B玴錪寊pC!翵V(nH毂o繠(/'摳lⅠ鸬v
h-械;菢睏嵣2#(NJ9 狆k!溏F>$袝鮏辔腤n馢褜f輍銰:e抺3椮屓特醪r闆$ 酫d閬T@烪-賲q槻<'R騤紎垚捥诹3邈豂异仚浅厍糔鷬滀th偃PP4匑新Y苊雄-&mG+\?虭,G}来〔	L-襌Aq膹3*3犲簸h墟o翀
埶TJ壍澎槗彺R>X	蔞;vuN4嬪洒Iw慠伶G嘂裐U岼F-$_!	搨颖篶.T`-b~OPG7諢設R濎趆ojN 瓴建'愻莖河墍猤k砵谑丹侮h艉>幀萴O隐􈱥捣鲣靊/ Et伓玃6kB<颞aD玍俅>V穁(昑味^怼桊雠椶s]q鵩詓 g铡 苏J"擱
`藒 h輭m z吲`7H⺪x矟L卹Ep阒j琋DJ畍o#A兟#W-r挪V%磭[壄偌祈秸畺 剜"5$厞RX才鱮Gok|瀢*0%^s明e,嚦!t貣H礌%P趥鮪窯}T睊n駻j扊獜纏@﹢F	<c撑癀#-H猙J9鉩ぁ餎  e>1偼!墣G琠Hf殤茏"6DE ~T劕zV%:死輗8灱=cMM襻(t(b馝V摉B萎P軕妄4-*咦睹I(眥烞箱.勢)
C厍<銑顃﹚,}蓓痑1n %結w?e8ju"45@qx7翌f擪x"鋅遤辺.>鍽GAl/柏踷*!灓摸&焚Ξ5.*Cl<穛@oD&媱bT輘?騐犀焒慹h玠宼5Pt煅鯜堌d|喼u畲篋4賋 憣籔P晈鈈厞壬G >"奚
u`^谌	/+Mxa偄c!30
|]殞U#⒎d@涌
h,佺2l簪1消摞!廅金嘜罣?掘椣A瘴従臾O}^4氟叵决?桧{飣柮O>窥紫-H箭饛奎5庂W  ;  07070100015de2000081e40000000000000002000000013ac038970000224f000000200000000000000000000000000000001700000003reloc/apache/index.cgi    #!/usr/local/bin/perl
# index.cgi
# Display a list of all virtual servers, and links for various types
# of global configuration

require './apache-lib.pl';

# check for the base directory
if (!(-d $config{'httpd_dir'})) {
	&header($text{'index_title'}, "", undef, 1, 1);
	print "<hr><p>\n";
	print &text('index_eroot', "<tt>$config{'httpd_dir'}</tt>",
		    "/config.cgi?$module_name"),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

# check for the executable
if (!-x $config{'httpd_path'} || -d $config{'httpd_path'}) {
	&header($text{'index_title'}, "", undef, 1, 1);
	print "<hr><p>\n";
	print &text('index_eserver', "<tt>$config{'httpd_path'}</tt>",
		    "/config.cgi?$module_name"),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

# check if this is a new apache install, by looking for -dist files
$conf = "$config{'httpd_dir'}/etc";
if (!-d $conf) { $conf = "$config{'httpd_dir'}/conf"; }
if (!$config{'httpd_conf'} && !(-e "$conf/httpd.conf") &&
    (-e "$conf/httpd.conf-dist") && (-d $conf)) {
	# copy all the .dist files and fix up @@ServerRoot@@ references
	# Only needed for apache versions < 1.3, which don't do this as part
	# of the 'make install'
	$sroot = $config{'httpd_dir'};
	opendir(CONF, $conf);
	foreach $f (readdir(CONF)) {
		if ($f =~ /^(.*)-dist$/) {
			open(DIST, "$conf/$f");
			@dist = <DIST>;
			close(DIST);
			open(REAL, "> $conf/$1");
			foreach (@dist) {
				s/\/usr\/local\/etc\/httpd/$sroot/g;
				s/\@\@ServerRoot\@\@/$sroot/g;
				print REAL $_;
				}
			close(REAL);
			}
		}
	close(CONF);
	}

# check for the httpd.conf file
if ($config{'httpd_conf'}) { $htconf = $config{'httpd_conf'}; }
else { $htconf = "$conf/httpd.conf"; }
if (!-e $htconf) {
	# still doesn't exist!
	&header($text{'index_title'}, "", undef, 1, 1);
	print "<hr><p>\n";
	print &text('index_econf', "<tt>$htconf</tt>",
		    "/config.cgi?$module_name"),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

# check if apache executable has changed..
@st = stat($config{'httpd_path'});
if ($st[7] != $httpd_size || $httpd_modules{'core'} < 1) {
	# Changed .. redirect to reconfig form
	&redirect("$module_name/reconfig_form.cgi?size=$st[7]");
	exit;
	}

# check for multiple port directives
$conf = &get_config();
@prt = &find_directive("Port", $conf);
if (@prt > 1 && $httpd_modules{'core'} < 1.3) {
	&header($text{'index_title'}, "", undef, 1, 1);
	print "<hr><p>\n";
	print &text('index_eports', 'Port'),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

# global config options
&header($text{'index_title'}, "", undef, 1, 1, undef, &restart_button());
if ($access{'global'}) {
	print "<hr>\n";
	print "<h3>$text{'index_global'}</h3>\n";
	if ($access{'global'} == 1) {
		$ht_icon = { "icon" => "images/dir.gif",
			     "name" => $text{'htaccess_title'},
			     "link" => "htaccess.cgi" };
		$rc_icon = { "icon" => "images/recon.gif",
			     "name" => $text{'reconfig_title'},
			     "link" =>
				"reconfig_form.cgi?size=$httpd_size&vol=1" };
		$df_icon = { "icon" => "images/defines.gif",
			     "name" => $text{'defines_title'},
			     "link" => "edit_defines.cgi" };
		&config_icons("global", "edit_global.cgi?",
			      $ht_icon, $rc_icon, $df_icon);
		}
	else {
		&icons_table([ "htaccess.cgi" ],
			     [ $text{'htaccess_title'} ],
			     [ "images/dir.gif" ]);
		}
	}

# list virtual hosts
if ($access{'virts'}) {
	print "<hr>\n";
	print "<h3>$text{'index_virts'}</h3>\n";
	}

# add default server
if (&can_edit_virt()) {
	push(@vname, $text{'index_defserv'});
	push(@vlink, "virt_index.cgi");
	push(@vdesc, $text{'index_defdesc1'});
	push(@vaddr, $text{'index_any'});
	push(@vport, $text{'index_any'});
	push(@vserv, &def(&find_directive("ServerName", $conf), $text{'index_auto'}));
	push(@vroot, &def(&find_directive("DocumentRoot", $conf), $text{'index_auto'}));
	}

# add other servers
@virt = &find_directive_struct("VirtualHost", $conf);
if ($httpd_modules{'core'} >= 1.3) {
	# build list of name-based virtual host IP addresses
	@nv = &find_directive("NameVirtualHost", $conf);
	foreach $nv (@nv) {
		$nv{&to_ipaddress($nv)}++;
		}
	}
elsif ($httpd_modules{'core'} >= 1.2) {
	# only one name-based virtual host IP address - the default address
	$ba = &find_directive("ServerName", $conf);
	$nv{&to_ipaddress($ba ? $ba : &get_system_hostname())}++;
	}
@virt = grep { &can_edit_virt($_) } @virt;
if ($config{'show_order'} == 1) {
	# sort by server name
	@virt = sort { &server_name_sort($a) cmp &server_name_sort($b) } @virt;
	}
elsif ($config{'show_order'} == 2) {
	# sort by IP address
	@virt = sort { &server_ip_sort($a) cmp &server_ip_sort($b) } @virt;
	}
foreach $v (@virt) {
	$vm = $v->{'members'};
	if ($v->{'value'} =~ /^(\S+):(\S+)$/) {
		$addr = $1;
		$port = $2;
		}
	else {
		$addr = $v->{'value'};
		$port = &def(&find_directive("Port", $conf), 80);
		}
	push(@vname, $text{'index_virt'});
	push(@vlink, "virt_index.cgi?virt=".&indexof($v, @$conf));
	$sname = &find_directive("ServerName", $vm);
	if ($addr ne "_default_" && $addr ne "*" && $nv{&to_ipaddress($addr)}) {
		push(@vdesc, &text('index_vname', "<tt>$sname</tt>",
				   "<tt>$addr</tt>"));
		}
	elsif (($addr eq "_default_" || $addr eq "*") && $port eq "*") {
		push(@vdesc, $text{'index_vdef'});
		$vdesc[0] = $text{'index_defdesc2'};
		}
	elsif ($addr eq "_default_" || $addr eq "*") {
		push(@vdesc, &text('index_vport', $port));
		}
	elsif ($port eq "*") {
		push(@vdesc, &text('index_vaddr', "<tt>$addr</tt>"));
		}
	else {
		push(@vdesc, &text('index_vaddrport', "<tt>$addr</tt>", $port));
		}
	push(@vaddr, $addr eq "_default_" || $addr eq "*" ? $text{'index_any'}
							  : $addr);
	push(@vport, $port eq "*" ? $text{'index_any'} : $port);
	push(@vserv, &def(&find_vdirective("ServerName", $vm, $conf),
			  $text{'index_auto'}));
	push(@vroot, &def(&find_vdirective("DocumentRoot", $vm, $conf),
			  $text{'index_default'}));
	}

# display servers
if ($config{'show_list'} && scalar(@vname)) {
	# as list for people with lots of servers
	print "<table width=100% border=1>\n";
	print "<tr $tb> <td><b>$text{'index_type'}</b></td> ",
	      "<td><b>$text{'index_addr'}</b></td> ",
	      "<td><b>$text{'index_port'}</b></td> ",
	      "<td><b>$text{'index_name'}</b></td> ",
	      "<td><b>$text{'index_root'}</b></td> </tr>\n";
	for($i=0; $i<@vname; $i++) {
		print "<tr $cb>\n";
		print "<td><a href=\"$vlink[$i]\">$vname[$i]</a></td>\n";
		print "<td>$vaddr[$i]</td>\n";
		print "<td>$vport[$i]</td>\n";
		print "<td>$vserv[$i]</td>\n";
		print "<td>$vroot[$i]</td>\n";
		print "</tr>\n";
		}
	print "</table>\n";
	}
else {
	# as icons for niceness
	print "<table width=100% cellpadding=5>\n";
	for($i=0; $i<@vname; $i++) {
		print "<tr> <td valign=top align=center nowrap>";
		&generate_icon("images/virt.gif", $vname[$i], $vlink[$i]);
		print "</td> <td valign=top>\n";
		print "$vdesc[$i]<br>\n";
		print "<table width=100%><tr>\n";
		print "<td width=30%><b>$text{'index_addr'}</b> ",
		      "$vaddr[$i]<br>\n";
		print "<b>$text{'index_port'}</b> $vport[$i]</td>\n";
		print "<td width=70%><b>$text{'index_name'}</b> ",
		      "$vserv[$i]<br>\n";
		print "<b>$text{'index_root'}</b> $vroot[$i]</td> </tr>\n";
		print "</table></td> </tr>\n";
		}
	print "</table>\n";
	}

if ($access{'create'}) {
	print "<form action=create_virt.cgi>\n";
	print "<table border>\n";
	print "<tr $tb> <td><b>$text{'index_create'}</b></td> </tr>\n";
	print "<tr $cb> <td><table>\n";
	print "<tr> <td><b>$text{'index_addr'}</b></td>\n";
	print "<td>",&opt_input("", "addr", $text{'index_any'}, 20),
	      "</td> </tr>\n";
	print "<tr> <td></td>\n";
	print "<td><input type=checkbox name=nv value=1 checked> ",
	      "$text{'index_nv'}</td> </tr>\n";
	print "<tr> <td><b>$text{'index_port'}</b></td>\n";
	print "<td>",&choice_input("0", "port_mode", "0",
				   "$text{'index_default'},0",
				   "$text{'index_any'},1", ",2"),
	      "<input name=port size=5></td> </tr>\n";
	print "<tr> <td><b>$text{'index_root'}</b></td>\n";
	print "<td><input name=root size=40>\n";
	print &file_chooser_button("root", 1);
	print "</td> </tr>\n";
	print "<tr> <td><b>$text{'index_name'}</b></td>\n";
	print "<td>",&opt_input("", "name", $text{'index_auto'}, 20);
	print "&nbsp;&nbsp;\n";
	print "<input type=submit value=\"$text{'create'}\"></td> </tr>\n";
	print "</table></td></tr></table>\n";
	print "</form>\n";
	}

print "<hr>\n";
&footer("/", $text{'index'});

sub server_name_sort
{
return &def(&find_vdirective("ServerName", $_[0]->{'members'}, $conf),
	    $_[0]->{'value'});
}

sub server_ip_sort
{
local $addr = $_[0]->{'value'} =~ /^(\S+):(\S+)/ ? $1 : $_[0]->{'value'};
return $addr eq '_default_' || $addr eq '*' ? undef :
       &check_ipaddress($addr) ? $addr :
			         &to_ipaddress($addr);
}

 0707010001b88a000041ed0000000000000001000000023ac03b9a00000000000000200000000000000000000000000000001200000003reloc/apache/lang 0707010001b8aa000081a40000000000000002000000013ac0389700002b93000000200000000000000000000000000000001500000003reloc/apache/lang/de  index_title=Apache Webserver
index_eroot=Das Apache root Verzeichnis $1 exististiert nicht. Wenn Apache installiert ist, passen Sie die <a href='$2'>Modul Konfiguration</a> an, um den korrekten Pfad zu benutzen.
index_eserver=Die ausf&uuml;hrbare Datei $1 des Apache Server exististiert nicht. Wenn Apache installiert ist, passen Sie die  <a href='$2'>Module Konfiguration</a> an, um den korrekten Pfad zu benutzen.
index_econf=Die Apache Konfigurationsdatei $1 existiert nicht. Wenn Apache installiert ist, passen Sie die <a href='$2'>Modul Konfiguration</a> an, um den korrekten Pfad zu benutzen.
index_eports=Ihre Apache Konfiguration enth&auml;lt mehr als 1 $1 Direktive. Die aktuelle Version von Webmin kann diese Einstellung nicht korrekt behandeln.
index_global=Globale Konfiguration
index_virts=Virtuelle Server
index_defserv=Standard Server
index_defdesc1=Definiert die Standard-Einstellungen f&uuml;r alle anderen virtuellen Server und beantwortet alle unbehandelten Anfragen.
index_any=Beliebig
index_default=Standard
index_auto=Automatisch
index_virt=Virtueller Server
index_vname=Behandelt den Namen-basierten server $1 an Adresse $2.
index_vdef=Behandelt alle Anfragen, die nicht von anderen virtuellen Servern behandelt werden.
index_defdesc2=Definiert die Standard-Einstellungen f&uml;r alle anderen Server.
index_vport=Behandelt alle Anfragen auf Port $1, die nicht von anderen virtuellen Servern behandelt werden.
index_vaddr=Behandelt alle Anfragen an Adresse $1.
index_vaddrport=Behandelt alle Anfrangen an Adresse $1 auf port $2.
index_type=Typ
index_addr=Adresse
index_port=Port
index_name=Server Name
index_root=Dokumenten Root
index_create=Einen neuen virtuellen Server anlegen
index_return=Server Liste

cvirt_ecannot=Sie haben keine Berechtigung virtuelle Server anzulegen
cvirt_err=Fehler beim anlegen des virtuellen Servers
cvirt_eaddr1=Keine Adresse angegeben
cvirt_eaddr2='$1' ist keine g&uuml;tige Adresse
cvirt_eport='$1' ist kein g&uuml;ltiger Port
cvirt_ename='$1' ist kein g&uuml;ltiger Server Name
cvirt_eroot1=Sie m&uuml;ssen ein Dokumenten Root angeben
cvirt_eroot2=Fehler beim anlegen des Verzeichnisses '$1' : $2

etype=Sie haben keine Berechtigung Einstellungen dieses Typs zu bearbeiten
efailed=Fehler beim Speichern von $1
apache_apply=&Auml;nderungen anwenden
apache_stop=Apache stoppen
apache_start=Apache starten
auth_return=Zugangs Kontrolle

global_ecannot=Sie haben keine Berechtigung globale Optionen zu bearbeiten
global_mime=Globale MIME-Typen Liste
global_mimedesc=Klicken Sie auf einen MIME-Typ aus der Liste, um ihn zu bearbeiten oder benutzen Sie den Link unten auf der Seite um einen neuen Typ zur Liste hinzuzuf&uuml;gen.
global_type=Typ
global_ext=Endungen
global_add=Einen neuen MIME-Typ hinzuf&uuml;gen
global_return=MIME-Typen

mime_ecannot=Sie haben keine Berechtigung, MIME-Typen zu bearbeiten
mime_edit=MIME Typ bearbeiten
mime_add=MIME Typ hinzuf&uuml;gen
mime_header=Mapping von Dateiendungen auf MIME Typen
mime_type=MIME Typ
mime_ext=Endungen
mime_err=Fehler beim Speichern des MIME Typs
mime_etype='$1' ist kein g&uuml;ltiger MIME Typ

virt_ecannot=Sie k&ouml;nnen diesen virtuellen Server nich bearbeiten.
virt_title=Einstellungen des virtuellen Servers
virt_header=F&uuml;r $1
virt_opts=Einstellungen des virtuellen Servers
virt_conf=Server Konfiguration
virt_show=Zeige Direktiven
virt_adddir=Lege Per-Directory, Files or Location Einstellungen an
virt_type=Typ
virt_exact=Exakte &Uuml;bereinstimmung
virt_re=&Uuml;bereinstimmung mit RegExp.
virt_path=Pfad
virt_return=server index
virt_euser=Sie haben keine Berechtigung, Benutzer oder Gruppe f&uuml;r diesen virtuellen Server zu &auml;ndern
virt_header2=$1 f&uuml;r $2

vserv_title=Konfiguration des virtuellen Servers
vserv_ecannot=Sie k&ouml;nnen die Adresse dieses virtuellen Servers nicht &auml;ndern
vserv_addr=Adresse
vserv_port=Port
vserv_any=Beliebig
vserv_default=Standard
vserv_root=Dokumenten Root
vserv_name=Server Name
vserv_delete=L&ouml;sche virtuellen Server
vserv_err=Fehler beim L&ouml;schen des virtuellen Server
vserv_eaddr1=Keine Adresse angegeben
vserv_eaddr2='$1' ist keine g&uuml;ltige Adresse
vserv_eport='$1' ist kein g&uuml;ltiger Port
vserv_eroot='$1' ist kein g&uuml;ltiger Dokumenten root
vserv_ename='$1' ist kein g&uuml;ltiger Server Name

show_title=Direktiven
show_edit=Bearbeite Apache Direktive
show_these=Bearbeite Direktiven von Hand
show_ok=Bearbeiten

manual_header=Benutzen Sie die Textbox unten um die Apache Direktiven in $1 von Hand zu bearbeiten die zu diesem Virtuellen Server, Verzeichnis oder Datei geh鰎en.

dir_title=Verzeichnis Einstellungen
dir_header=F&uuml;r $1 auf $2
dir_show=Zeige Direktiven
dir_opts=Einstellungen anwenden auf..
dir_type=Typ
dir_regexp=Regexp?
dir_exact=Exakte &Uuml;bereinstimmung
dir_re=&Uuml;bereinstimmung mit regexp
dir_path=Pfad
dir_return=Verzeichnis Index
dir_header2=$1 f&uuml;r $2

type_0=Prozesse und Limits
type_1=Netzwerk und Adressen
type_2=Apache Module
type_3=Log Dateien
type_4=Zugriffs Kontrolle
type_5=Dokument Optionen
type_6=MIME Typen
type_7=Fehler Behandlung
type_8=Benutzer und Gruppe
type_9=Sonstiges
type_10=Aliase und Weiterleitungen
type_11=CGI Programme
type_12=Verzeichnis Indexierung
type_13=Proxying
type_14=SSL Optionen
type_15=Perl
type_16=PHP

htaccess_title=Per-Directory Einstellungsdateien
htaccess_ecannot=Sie k&ouml;nnen diese htaccess Dateien nicht bearbeiten
htaccess_desc=Zus&auml;tzliche per-directory Einstellungen k&ouml;nnen  in jedem Verzeichnis durch eine Datei (nromalerweise <tt>.htaccess</tt> genannt) definiert werden. Diese Einstellungen betreffen alle Dateien in dem Verzeichnis und in allen Unterverzeichnissen, soweit sie nicht von einer anderen Datei &uuml;berschrieben werden.
htaccess_create=Erstelle Einstellungsdatei
htaccess_find=Finde Einstellungsdatei
htaccess_auto=Automatisch
htaccess_from=Von Verzeichnis
htaccess_return=Einstellungsdatei-Liste
htaccess_edir='$1' ist kein g&uuml;ltiges Verzeichnis
htaccess_ecreate=Sie haben keine Berechtigung diese Einstellungsdatei anzulegen.
htaccess_edelete=Sie haben keine Berechtigung diese Einstellungsdatei zu l&ouml;schen.

htindex_ecannot=Sie haben keine Berechtigung diese Einstellungsdatei zu bearbeiten.
htindex_title=Per-Directory Einstellungsdatei
htindex_delete=L&ouml;sche Datei
htindex_show=Zeige Direktive
htindex_opts=Per-Directory Einstellungen
htindex_file=Per-File Konfiguration
htindex_create=Erstelle Per-File Einstellungen
htindex_regexp=Regexp?
htindex_exact=Exakte &Uuml;bereinstimmung
htindex_re=&Uuml;bereinstimmung mit regexp
htindex_path=Pfad
htindex_header=F&uuml;r $1
htindex_header2=$1 f&uuml;r Einstellungsdatei $2
htindex_return=Einstellungsdatei Liste

htfile_title=Per-File Einstellungen
htfile_header=F&uuml;r $1 in $2
htfile_show=Zeige Direktiven
htfile_apply=Einstellungen anwenden auf ..
htfile_header2=$1 f&uuml;r $2

reconfig_title=Re-konfiguriere bekannte Module
reconfig_ecannot=Sie haben keine Berechtigung, Apache zu rekonfigurieren
reconfig_ever=Es war nicht m&ouml;glich eine Versionsnummer f&uuml; $1 zu bestimmen. &Uuml;berpr&uuml;fen Sie Ihre <a href='$2'>Modul Konfiguration</a>, um sicher zu gehen, dass der Pfad korrekt ist.
reconfig_desc1=Ihre Apache Konfiguration hat sich ge&auml;ndert oder wurde nich nicht von Webmin untersucht. Unten sehen Sie eine Liste mit allen von Webmin unterst&uuml;tzten Modulen von Apache, bei der die aktuell installierten markiert sind. Sie k&ouml;nnen nun die Liste &auml;ndern, falls Sie inkorrekt ist.
reconfig_desc2=Unten sehen Sie eine Liste mit allen von Webmin unterst&uuml;tzten Modulen von Apache, bei der die aktuell installierten markiert sind. Falls Sie dynamisch geladene Module benutzen, k&ouml;nnen Sie sie jetzt ausw&auml;hlen.
reconfig_ok=Konfiguriere

defines_title=Bearbeite Definierte Parameter
defines_ecannot=Sie haben keine Berechtigung httpd Definitionen zu &auml;ndern
defines_desc=Wenn Apache gestarted wird, k&ouml;nnen ihm Parameter mit der <tt>-D</tt> Kommandozeilenoption &uuml;bergeben werden. Weil diese Parameter die Direktiven beeinflusst, die in Ihrer Kofigurationsdatei vorkommen, muss Webmin wissen, welche Parameter Apache beim Start &uuml;bergeben werden. Geben Sie die benutzten Parameter in die Textfelder auf der rechten Seite.

authu_ecannot='$1' ist keine g&uuml;ltige Benutzer-Datei
authu_title=Benutzer Liste
authu_header=Aus Datei $1
authu_header2=benutzer von Datei $1
authu_none=Keine Benutzer vorhanden in Datei $1
authu_add=Einen neuen Benutzer hinzuf&uuml;gen
authu_return=Benutzer Liste
authu_edit=Benutzer bearbeiten
authu_create=Benutzer anlegen
authu_user=Benutzername
authu_pass=Passwort
authu_enc=Verschl&uuml;sselt..
authu_plain=Klartext..
authu_err=Fehler beim speichern des Benutzers
authu_euser=Kein Benutzername angegeben
authu_euser2=Benutzername darf keinen Doppelpunkt (:) enhalten
authu_edup=Ein Benutzer '$1' existiert bereits
authu_sync=Die Einstellungen untern gestatten es Ihnen Webmin so zu konfigurieren, dass Webmin Benutze automatisch hinzuf&uuml;gen, &auml;ndern oder l&ouml;schen wird, wenn Benutzer im <TT>Benutzer und Gruppen</TT> Modul bearbeitet, angelegt oder entfernt werden.
authu_screate=F&uuml;ge Benutzer hinzu, wenn Unix Benutzer angelegt wird
authu_sdelete=Entferne den Benutzer, wenn Unix Benutzer gel&ouml;scht wird
authu_smodify=Aktualiesiere den Benutzer, wenn der Unix Benutzer bearbeitet wurde

authg_ecannot='$1' ist keine g&uuml;ltige Gruppen Datei
authg_title=Gruppen Liste
authg_header=Aus Datei $1
authg_header2=Gruppen aus Datei $1
authg_none=Keine Gruppen in Datei $1
authg_add=Eine neue Gruppe hinzuf&uuml;gen
authg_return=Gruppen Liste
authg_edit=Bearbeite Gruppe
authg_create=Gruppe anlegen
authg_group=Gruppen Name
authg_mems=Mitglieder
authg_dont=Nicht &auml;ndern
authg_set=Sezte auf..
authg_err=Fehler beim Speichern der Gruppe
authg_euser=Kein Gruppen Name angegeben
authg_euser2=Gruppenname darf keinen Doppelpunkt (:) enhalten
authg_edup=Eine Gruppe '$1' existiert bereits

stop_err=Fehler beim beenden von Apache
stop_ecannot=Sie haben keine Berechtigung, Apache zu beenden
stop_epid=Fehler beim &Ouml;ffnen der PID Datei $1
stop_epid2=ung&uuml;ltige PID Datei $1
stop_esig=Fehler beim senden von SIGTERM an den Prozess $1

start_err=Fehler beim Starten von Apache
start_ecannot=Sie haben keine Berechtigung Apache zu starten
start_ecmd=$1 schlug fehl : $2
start_eunknown=Unbekannter Grund

restart_err=Fehler beim Anwenden der &Auml;nderungen
restart_epid=Fehler beim &Ouml;ffnen der PID Datei $1
restart_epid2=ung&uuml;ltige PID Datei $1
restart_esig=Fehler beim Senden des SIGHUP an den Prozess $1
restart_eunknown=Unbekannter Grund

acl_virts=Virtuelle Server die dieser Benutzer bearbeiten kann
acl_global=Darf globale Optionen bearbeiten?
acl_htaccess=nur .htaccess
acl_create=Darf virtuelle Server anlegen?
acl_vuser=Darf den Benutzer eines virtuellen Servers &auml;ndern?
acl_vaddr=Darf Adresse des virtuellen Servers &auml;ndern?
acl_pipe=Darf logs an Programm geben?
acl_stop=Darf Apache starten und beenden
acl_dir=Beschr&auml;nke Datein auf Verzeichnis
acl_types=Verf&uuml;gbare Direktiven Typen
acl_all=Alle
acl_sel=Ausgew&auml;hlte..

 0707010001b8ab000081a40000000000000002000000013ac03897000073b4000000200000000000000000000000000000001500000003reloc/apache/lang/en  index_title=Apache Webserver
index_eroot=The Apache root directory $1 does not exist. If you have Apache installed, adjust the <a href='$2'>module configuration</a> to use the correct paths.
index_eserver=The Apache server executable $1 does not exist. If you have Apache installed, adjust the <a href='$2'>module configuration</a> to use the correct path.
index_econf=The Apache configuration file $1 does not exist. If you have Apache installed, adjust the <a href='$2'>module configuration</a> to use the correct path.
index_eports=Your Apache configuration contains more than 1 $1 directive. The current version of Webmin cannot properly handle this setup.
index_global=Global Configuration
index_virts=Virtual Servers
index_defserv=Default Server
index_defdesc1=Defines the default settings for all other virtual servers, and processes any unhandled requests.
index_any=Any
index_default=Default
index_auto=Automatic
index_virt=Virtual Server
index_vname=Handles the name-based server $1 on address $2.
index_vdef=Processes all requests not handled by other virtual servers.
index_defdesc2=Defines the default settings for all other virtual servers.
index_vport=Processes all requests on port $1 not handled by other virtual servers.
index_vaddr=Handles all requests to the address $1.
index_vaddrport=Handles all requests to the address $1 on port $2.
index_type=Type
index_addr=Address
index_nv=Add name virtual server address (if needed)
index_port=Port
index_name=Server Name
index_root=Document Root
index_create=Create a New Virtual Server
index_return=server list

cvirt_ecannot=You are not allowed to create a virtual server
cvirt_err=Failed to create virtual server
cvirt_eaddr1=No address entered
cvirt_eaddr2='$1' is not a valid address
cvirt_eport='$1' is not a valid port
cvirt_ename='$1' is not a valid server name
cvirt_eroot1=You must enter a document root
cvirt_eroot2=Failed to create directory '$1' : $2

etype=You are not allowed to edit options of this type
efailed=Failed to save $1
apache_apply=Apply Changes
apache_stop=Stop Apache
apache_start=Start Apache
auth_return=access control
default_serv=default server
bytes=bytes

global_ecannot=You are not allowed to edit global options
global_mime=Global MIME types list
global_mimedesc=Click on a MIME type from the list below to edit it, or use the link at the bottom of the page to add a new type to the list.
global_type=Type
global_ext=Extensions
global_add=Add a new MIME type
global_return=MIME types

mime_ecannot=You are not allowed to edit mime types
mime_edit=Edit MIME Type
mime_add=Add MIME Type
mime_header=Filename extensions to MIME type mapping
mime_type=MIME Type
mime_ext=Extensions
mime_err=Failed to save MIME type
mime_etype='$1' is not a valid MIME type

virt_ecannot=You cannot edit this virtual server
virt_title=Virtual Server Options
virt_header=For $1
virt_opts=Virtual Server Options
virt_conf=Server Configuration
virt_show=Show Directives
virt_edit=Edit Directives
virt_adddir=Create Per-Directory, Files or Location Options
virt_type=Type
virt_Directory=Directory
virt_Files=Files
virt_Location=Location
virt_exact=Exact match
virt_re=Match regexp
virt_regexp=Regexp?
virt_path=Path
virt_return=server index
virt_euser=You are not allowed to change the user or group for this virtual server.
virt_header2=$1 for $2

vserv_title=Virtual Server Configuration
vserv_ecannot=You cannot edit this virtual server's address
vserv_addr=Address
vserv_addrs=Addresses
vserv_port=Port
vserv_any=Any
vserv_default=Default
vserv_root=Document Root
vserv_name=Server Name
vserv_delete=Delete Virtual Server
vserv_err=Failed to save virtual server
vserv_eaddr1=No address entered
vserv_eaddr2='$1' is not a valid address
vserv_eport='$1' is not a valid port
vserv_eroot='$1' is not a valid document root
vserv_ename='$1' is not a valid server name
vserv_eaddrs=No virtual server addresses entered

show_title=Directives
show_edit=Edit Apache directive:
show_these=Manually edit directives
show_ok=Edit

manual_title=Edit Directives
manual_header=Use the text box below to manually edit the Apache directives in $1 that apply to this virtual server, directory or files.
manual_ecannot=You are not allowed to manually edit directives

dir_title=Per-Directory Options
dir_header=For $1 on $2
dir_show=Show Directives
dir_edit=Edit Directives
dir_opts=Options apply to ..
dir_Directory=Directory
dir_Files=Files
dir_Location=Location
dir_type=Type
dir_regexp=Regexp?
dir_exact=Exact match
dir_re=Match regexp
dir_path=Path
dir_return=directory index
dir_header2=$1 for $2

type_0=Processes and Limits
type_1=Networking and Addresses
type_2=Apache Modules
type_3=Log Files
type_4=Access Control
type_5=Document Options
type_6=MIME Types
type_7=Error Handling
type_8=User and Group
type_9=Miscellaneous
type_10=Aliases and Redirects
type_11=CGI Programs
type_12=Directory Indexing
type_13=Proxying
type_14=SSL Options
type_15=Perl
type_16=PHP

htaccess_title=Per-Directory Options Files
htaccess_ecannot=You cannot edit htaccess files
htaccess_desc=Additional per-directory options can be specified in a file (usually called <tt>.htaccess</tt>) in each directory. The options apply to all files in that directory and any sub-directories, unless overridden by another options file.
htaccess_create=Create Options File
htaccess_find=Find Options Files
htaccess_auto=Automatically
htaccess_from=From directory
htaccess_return=options file list
htaccess_edir='$1' is not a valid directory
htaccess_ecreate=You are not allowed to create this options file
htaccess_edelete=You are not allowed to delete this options file

htindex_ecannot=You are not allowed to edit this options file
htindex_title=Per-Directory Options File
htindex_delete=Delete File
htindex_show=Show Directives
htindex_edit=Edit Directives
htindex_opts=Per-Directory Options
htindex_file=Per-File Configuration
htindex_create=Create Per-File Options
htindex_regexp=Regexp?
htindex_exact=Exact match
htindex_re=Match regexp
htindex_path=Path
htindex_header=For $1
htindex_header2=$1 for options file $2
htindex_return=options file index

htfile_title=Per-File Options
htfile_header=For $1 in $2
htfile_show=Show Directives
htfile_edit=Edit Directives
htfile_apply=Options apply to ..
htfile_header2=$1 for $2

reconfig_title=Re-Configure Known Modules
reconfig_ecannot=You are not allowed to reconfigure apache
reconfig_ever=Failed to get the version of Apache server executable $1. Check your <a href='$2'>module configuration</a> to make sure this is the correct path.
reconfig_desc1=Your Apache configuration has changed, or has not yet been examined by Webmin. Below is a list of all Apache modules supported by Webmin, with those currently installed selected. You may select or de-select modules if the list is incorrect.
reconfig_desc2=Below is a list of all Apache modules supported by Webmin, with those currently installed selected. If you are using dynamically loaded modules then you may need to select those that are dynamically loaded.
reconfig_ok=Configure

defines_title=Edit Defined Parameters
defines_ecannot=You are not allowed to edit httpd defines
defines_desc=When Apache is started, parameters can be passed to it with the <tt>-D</tt> command line option. Because these parameters can affect which directives are used in your config files, Webmin needs to know which ones are passed to Apache when it is started up. Enter the parameters used on your system into the text field on the right.
defines_config=Note that the following defined parameters are already known : $1

authu_ecannot='$1' is not an allowed users text file
authu_title=User List
authu_header=In file $1
authu_header2=Users from text file $1
authu_none=No users in text file $1
authu_add=Add a new user
authu_return=user list
authu_edit=Edit User
authu_create=Create User
authu_user=Username
authu_pass=Password
authu_enc=Encrypted..
authu_plain=Plain text..
authu_err=Failed to save user
authu_euser=No username entered
authu_euser2=Username cannot contain a :
authu_edup=A user called '$1' already exists
authu_sync=The options below allow you to configure Webmin to automatically add, update or delete a user from this password file when a user is added, modified or removed in the <tt>Users and Groups</tt> module.
authu_screate=Add a user when a Unix user is added
authu_sdelete=Delete the user when a Unix user is deleted
authu_smodify=Change the user when a Unix user is changed

authg_ecannot='$1' is not an allowed groups text file
authg_title=Group List
authg_header=In file $1
authg_header2=Groups from text file $1
authg_none=No groups in text file $1
authg_add=Add a new group
authg_return=group list
authg_edit=Edit Group
authg_create=Create Group
authg_group=Group name
authg_mems=Members
authg_dont=Don't change
authg_set=Set to..
authg_err=Failed to save group
authg_euser=No group name entered
authg_euser2=Group name cannot contain a :
authg_edup=A group called '$1' already exists

stop_err=Failed to stop apache
stop_ecannot=You are not allowed to stop apache
stop_epid=Failed to open PID file $1
stop_epid2=Invalid PID file $1
stop_esig=Failed to send SIGTERM to process $1

start_err=Failed to start apache
start_ecannot=You are not allowed to start apache
start_ecmd=$1 failed : $2
start_eunknown=Unknown reason

restart_err=Failed to apply changes
restart_epid=Failed to open PID file $1
restart_epid2=Invalid PID file $1
restart_esig=Failed to send SIGHUP to process $1
restart_eunknown=Unknown reason

acl_virts=Virtual servers this user can edit
acl_vall=All servers
acl_vsel=Selected..
acl_defserv=Default Server
acl_global=Can edit global options?
acl_htaccess=.htaccess only
acl_create=Can create virtual servers?
acl_vuser=Can change virtual server users?
acl_vaddr=Can change virtual server addresses?
acl_pipe=Can pipe logs to programs?
acl_stop=Can stop and start Apache?
acl_dir=Limit files to directory
acl_types=Directive types available
acl_all=All
acl_sel=Selected..

core_maxconc=Maximum concurrent requests
core_maxkeep=Maximum keepalives per connection
core_maxreq=Maximum requests per server process
core_minspare=Minimum spare server processes
core_maxspare=Maximum spare server processes
core_initial=Initial server processes
core_emaxconc=Maximum concurrent requests must be an integer
core_emaxkeep=Maximum keepalives per connection must be an integer
core_emaxreq=Maximum requests per server process must be an integer
core_eminspare=Minimum spare server processes must be an integer
core_emaxspare=Maximum spare server processes must be an integer
core_einitial=Initial server processes must be an integer
core_default=Default
core_cpulimit=CPU resource limit
core_memlimit=Memory resource limit
core_proclimit=Process limit
core_cpulimit2=CPU resource limit
core_memlimit2=memory resource limit
core_proclimit2=process limit
core_slimit=Soft limit 
core_hlimit=Hard limit 
core_eslimit=$1 is not a valid soft $2
core_ehlimit=$1 is not a valid hard $2
core_dport=Default port:
core_address=Address
core_port=Port
core_listen=Listen on addresses and ports
core_eaddress='$1' is not a valid address
core_eport='$1' is not a valid port
core_eoneaddr=You must specify at least one address to listen on
core_edefport=Invalid default port
core_multi=Multiple requests per connection
core_ekeep='$1' is not a valid number of keepalives
core_ltwice=Lookup twice
core_keeptout=Keep-alive timeout
core_lqueue=Listen queue length
core_bufsize=TCP send buffer size
core_admin=Server admin email address
core_rtout=Request timeout
core_bhostname=Use hostname supplied by browser
core_lookup=Lookup hostnames
core_useauth=Do RFC1413 user lookups
core_altnames=Alternate virtual server names
core_hostname=Server hostname
core_virtaddr=Addresses for name virtual servers
core_ekeeptout=Keep-alive timeout must be an integer
core_elqueue=Listen queue length must be an integer
core_ebufsize=TCP send buffer size must be an integer
core_ertout=Request timeout must be an integer
core_ehostname=Invalid server hostname
core_osdefault=OS Default
core_noadmin=None
core_auto=Automatic
core_ekeep='$1' is not a valid number of keepalives
core_evirtaddr='$1' is not a valid address for name virtual servers
core_auth=Authentication options
core_mime=MIME types and encodings
core_indexing=Indexing and index files
core_hostacc=Hostname access control
core_diropts=Directory options
core_filesel=Selected below...
core_execcgi=Execute CGI programs
core_flink=Follow symbolic links
core_inclexe=Server-side includes and execs
core_incl=Server-side includes
core_genind=Generate directory indexes
core_genmview=Generate Multiviews
core_flinkmatch=Follow symbolic links if owners match
core_optsel=Selected below..
core_enable=Enable
core_disable=Disable
core_optfile=Per-directory options file
core_overr=Options file can override..
core_genmd5=Generate MD5 digests
core_docroot=Document root directory
core_eoptfile=Only one options file is allowed
core_enoopt=No options file entered
core_enodoc=Document root '$1' does not exist
core_sigemail=Email address
core_signame=Server name
core_signone=None
core_virtpath=Virtual server path
core_footer=Error message footer
core_evirtpath=Virtual server path must start with a /
core_defmime=Default MIME Type
core_edefmime=Default MIME type must be in the form type/subtype
core_realm=Authentication realm name
core_authtype=Authentication type
core_authall=All access controls
core_authany=Any access control
core_authlog=Restrict access by login
core_satisfy=Clients must satisfy
core_salone=Standalone
core_inetd=Run from inetd
core_verosmod=Version and OS and modules
core_veros=Version and OS
core_ver=Version only
core_coredir=Core dump directory
core_lockfile=Server lock file
core_maxbody=Maximum request body size
core_maxhead=Maximum headers in request
core_maxshead=Maximum request header size
core_maxline=Maximum request line size
core_pid=Server PID file
core_memsco=Shared memory scoreboard file
core_exec=Server execution
core_header=Server HTTP header
core_ecore=Invalid core dump directory
core_elock=Invalid lock file
core_ebody=Invalid request body size
core_ehead=Invalid number of headers
core_eshead=Invalid header size
core_eline=Invalid request line size
core_epid=Invalid PID file
core_escore=Invalid scoreboard file
core_sroot=Server root
core_group=Group name
core_gid=Group ID
core_user=User name
core_uid=User ID
core_asgroup=Run as Unix group
core_asuser=Run as Unix user
core_euid='$1' is not a valid group ID
core_egid='$1' is not a valid user ID
core_tourl=Goto URL..
core_mesg=Show message..
core_error=Error code
core_resp=Response
core_urlmsg=URL or message
core_custom=Custom error responses
core_eerror='$1' is not a valid error code
core_eurl='$1' is not a valid URL
core_syslog=System Log
core_filelog=File 
core_proglog=Program 
core_errfile=Error log file
core_logto=Error log to
core_efilelog=Invalid error log file
core_edirlog=Error log file is not under the allowed directory
core_efilemiss=Missing error log file
core_eprogmiss=Missing error log program
core_eperm=You are not allowed to pipe logs to programs
core_allmod=All modules
core_selmod=Selected modules..
core_actmod=Active modules
core_option=Option
core_setdir=Set for directory
core_merge=Merge with parent
core_users=Only these users
core_groups=Only these groups
core_allusers=All valid users
core_none=None
core_all=All
core_product=Product only

mod_negotiation_cache=Cache content-negotiated documents?
mod_negotiation_pri=Language priority for multi-views
mod_negotiation_def=Default
mod_negotiation_epri=Missing language priorities

mod_cgi_logname=CGI Script log
mod_cgi_none=None
mod_cgi_elogname=Invalid CGI script log file
mod_cgi_logsize=Maximum CGI log size
mod_cgi_default=Default
mod_cgi_elogsize=CGI log size must be an integer
mod_cgi_post=Maximum logged post data size
mod_cgi_epost=Post data size must be an integer
mod_cgi_eunder=CGI script log is not under the allowed directory

mod_alias_from=From
mod_alias_to=To
mod_alias_status=Status
mod_alias_efrom='$1' is not a valid $2
mod_alias_edest='$1' is not a valid $2 destination
mod_alias_alias=Document directory aliases
mod_alias_alias2=dokument alias
mod_alias_regexp=Regexp document directory aliases
mod_alias_regexp2=regexp document alias
mod_alias_redir=URL redirects
mod_alias_redir2=URL redirect
mod_alias_rredir=Regexp URL redirects
mod_alias_rredir2=regexp URL redirect
mod_alias_tredir=Temporary URL redirects
mod_alias_tredir2=temporary URL redirect
mod_alias_predir=Permanent URL redirects
mod_alias_predir2=permanent URL redirect
mod_alias_cgi=CGI directory aliases
mod_alias_cgi2=CGI directory alias
mod_alias_rcgi=Regexp CGI directory aliases
mod_alias_rcgi2=regexp CGI directory alias
mod_alias_estatus='$1' is not a valid status

mod_proxy_proxy=Act as proxy server?
mod_proxy_req=Requests
mod_proxy_forw=Forward to
mod_proxy_all=All
mod_proxy_match=Matching..
mod_proxy_pass=Requests to pass to another proxy
mod_proxy_local=Local URL path
mod_proxy_remote=Remote URL
mod_proxy_map=Map local to remote URLs
mod_proxy_block=Block requests to domains
mod_proxy_eblock=No domains given to block
mod_proxy_type=Type
mod_proxy_noproxy=No proxy for..
mod_proxy_nopass=Don't pass requests to another proxy for
mod_proxy_nodomain=Domain for requests with no domain
mod_proxy_none=None
mod_proxy_enodomain=Invalid default domain
mod_proxy_connect=Ports to which CONNECT is allowed
mod_proxy_default=Default
mod_proxy_econnect=Invalid CONNECT ports
mod_proxy_dir=Cache directory
mod_proxy_edir=Invalid cache directory name
mod_proxy_size=Cache size
mod_proxy_esize=Invalid cache size
mod_proxy_garbage=Cache garbage collection interval
mod_proxy_nogc=Never
mod_proxy_hours=hours
mod_proxy_egarbage=Invalid cache garbage collection interval
mod_proxy_maxexp=Cached file maximum expiry time
mod_proxy_emaxexp=Invalid cached file maximum expiry time
mod_proxy_expfac=Cached file expiry time factor
mod_proxy_eexpfac=Invalid cached file expiry time factor
mod_proxy_levels=Cache directory levels
mod_proxy_elevels=Invalid number of cache directory levels
mod_proxy_length=Cache directory name length
mod_proxy_elength=Invalid cache directory name length
mod_proxy_defexp=Cache default expiry time
mod_proxy_edefexp=Invalid default expiry time
mod_proxy_finish=Finish and cache transfer after
mod_proxy_efinish=Invalid transfer percentage
mod_proxy_nocache=Domains not to cache
mod_proxy_none2=None
mod_proxy_none3=None
mod_proxy_enocache=No domains not to cache given
mod_proxy_erequest='$1' is not a valid request
mod_proxy_epurl='$1' is not a valid proxy URL
mod_proxy_elurl='$1' is not a valid local URL path
mod_proxy_erurl='$1' is not a valid remote URL
mod_proxy_eip='$1' is not a valid IP address
mod_proxy_ehost='$1' is not a valid hostname
mod_proxy_edomain='$1' is not a valid domain
mod_proxy_enet='$1' is not a valid network
mod_proxy_enetbit='$1' is not a valid network/bits pair
mod_proxy_eunder=Cache directory is not under the allowed directory
mod_proxy_rurl=Remote URL
mod_proxy_lurl=Local URL path
mod_proxy_headers=Map remote Location: headers to local
mod_proxy_ip=IP address
mod_proxy_host=Hostname
mod_proxy_domain=Domain
mod_proxy_net=IP network
mod_proxy_netbit=Network/bits

mod_log_agent_default=Default
mod_log_agent_file=File..
mod_log_agent_program=Program..
mod_log_agent_log=Browser log file
mod_log_agent_efile=$1 is not a valid agent log filename

mod_log_config_common=Common Log Format
mod_log_config_named=Named log formats
mod_log_config_nick=Nickname
mod_log_config_format=Format
mod_log_config_deflog=Default log format
mod_log_config_default=Default
mod_log_config_write=Write to
mod_log_config_filprog=File or program
mod_log_config_file=File..
mod_log_config_program=Program..
mod_log_config_log=Access log files
mod_log_config_enick='$1' is not a valid nickname
mod_log_config_eformat=No log format given for $1
mod_log_config_enofilprog=Missing log filename or program
mod_log_config_efilprog='$1' is not an allowed log filename or program
mod_log_config_eifset='If set' option cannot be used with the default log format

mod_log_referer_default=Default
mod_log_referer_file=File..
mod_log_referer_program=Program..
mod_log_referer_log=Referer log file
mod_log_referer_nolog=Don't log references from
mod_log_referer_elog=$1 is not a valid referer log filename
mod_log_referer_edir=referer log is not under the allowed directory

mod_status_msg=Display extended status information

mod_mime_ext=Extensions
mod_mime_xtype=Extra MIME types
mod_mime_mtype=MIME type
mod_mime_chandl=Content handlers
mod_mime_cencs=Content encodings
mod_mime_cenc=Content encoding
mod_mime_clangs=Content languages
mod_mime_clang=Content language
mod_mime_defmime=Treat all files as MIME type
mod_mime_real=Real type
mod_mime_etype=Invalid MIME type
mod_mime_pass=Pass all files to handler
mod_mime_file=MIME types file
mod_mime_default=Default
mod_mime_ignhand=Ignore handlers for extensions
mod_mime_none=None
mod_mime_xchars=Extra character sets
mod_mime_einvalid='$1' is not a valid $2
mod_mime_eext=No extensions given for $1 $2
mod_mime_type=Type
mod_mime_handler=Handler
mod_mime_enc=Encoding
mod_mime_lang=Language
mod_mime_chars=Charset
mod_mime_igntype=Ignore MIME types for extension
mod_mime_ignenc=Ignore encodings for extension

mod_setenvif_header=Header
mod_setenvif_match=Match
mod_setenvif_case=Match case
mod_setenvif_var=Variable
mod_setenvif_value=Value
mod_setenvif_txt=Variables set based on request headers
mod_setenvif_eheader=Invalid request header '$1'
mod_setenvif_eregex=Invalid regular expression '$1'
mod_setenvif_evar=Invalid variable name '$1'
mod_setenvif_clear=Clear

mod_userdir_default=Default
mod_userdir_all=All users accessible
mod_userdir_except=All users except
mod_userdir_dir=User WWW directory

mod_imap_action=Action on incorrect use of imagemaps
mod_imap_default=Default
mod_imap_godefurl=Go to default URL
mod_imap_form=Show formatted menu
mod_imap_semiform=Show semi-formatted menu
mod_imap_unform=Show unformatted menu
mod_imap_disperr=Display server error
mod_imap_donoth=Do nothing
mod_imap_goimap=Go to imagemap URL
mod_imap_goref=Go to referring URL
mod_imap_gourl=Go to URL...
mod_imap_defact=Default action for imagemaps
mod_imap_default2=Default
mod_imap_root=Server root
mod_imap_imapurl=Imagemap URL
mod_imap_refurl=Referring URL
mod_imap_url=URL...
mod_imap_defbase=Default base for imagemaps
mod_imap_eurl='$1' is not a valid URL

mod_speling_autocorr=Automatically correct misspelled URLs?
mod_speling_default=Default

mod_actions_mime=Handler / MIME type
mod_actions_cgiurl=CGI script URL
mod_actions_mimecgi=Handler or MIME type CGI actions
mod_actions_http=HTTP method
mod_actions_cgi=CGI script
mod_actions_httpcgi=HTTP method CGI actions
mod_actions_emime='$1' is not a valid handler or MIME type
mod_actions_ecgi='$1' is not a valid CGI script
mod_actions_enometh=No method chosen for CGI script '$1'

mod_include_incl=Process includes on files with execute bit?
mod_include_set=Yes and set last-modified date
mod_include_default=Default

mod_dir_txt=Directory index files

mod_autoindex_default=Default
mod_autoindex_asc=Ascending
mod_autoindex_descend=Descending
mod_autoindex_name=Name
mod_autoindex_date=Date
mod_autoindex_size=Size
mod_autoindex_desc=Description
mod_autoindex_sort=Sort directory index by

browsermatch_regexp=Browser regex
browsermatch_case=Match case?
browsermatch_var=Set variable
browsermatch_value=Value
browsermatch_txt=Variables set based on browser type
browsermatch_evar=Invalid variable name '$1'
browsermatch_clear=Clear

autoindex_fname=Filename
autoindex_mime=MIME type
autoindex_enc=Encoding
autoindex_icon=Icon
autoindex_alt=Alt text
autoindex_match=Match by
autoindex_fte=Filenames, types or encodings
autoindex_diricon=Directory index icons
autoindex_deficon=Directory index default icon
autoindex_default=Default
autoindex_edeficon=Invalid default icon URL
autoindex_diralt=Directory index ALT tags
autoindex_desc=Description
autoindex_fnames=Filenames
autoindex_dirdesc=Directory index descriptions
autoindex_fancy=Display fancy directory indexes
autoindex_htmltitle=Display HTML title as description
autoindex_iheight=Icon height
autoindex_iwidth=Icon width
autoindex_sort=Allow user sorting of columns
autoindex_fildesc=Show file descriptions
autoindex_htags=Output HTML header tags
autoindex_mtime=Show last modified times
autoindex_size=Show file sizes
autoindex_iconlink=Include icon in link
autoindex_fwidth=Filename width
autoindex_dwidth=Description width
autoindex_dirfirst=Display directories first
autoindex_default2=Default
autoindex_select=Selected below...
autoindex_default3=Default
autoindex_pixels=pixels
autoindex_chars=chars
autoindex_diropt=Directory index options
autoindex_dirhead=Directory index header file
autoindex_default4=Default
autoindex_edirhead=Invalid index header filename
autoindex_dirfoot=Directory index footer file
autoindex_edirfoot=Invalid index footer filename
autoindex_ignore=Files to ignore in directory index
autoindex_eiconurl='$1' is not a valid icon url
autoindex_emiss=Missing $1 for $2
autoindex_emissquot=Missing $1 for '$2'
autoindex_enodesc=No description for file $1
autoindex_enofile=No files for description '$1'
autoindex_eiconsize='$1' is not a valid icon size
autoindex_ewidth='$1' is not a valid width

mod_mime_magic_file=MIME magic numbers file
mod_mime_magic_none=None
mod_mime_magic_efile=Invalid MIME magic numbers filename

mod_env_var=Variable
mod_env_value=Value
mod_env_pass=Pass through
mod_env_clear=Clear
mod_env_set=Set to..
mod_env_cgivar=Environment variables for CGI scripts
mod_env_passall=Pass all environment variables to CGIs
mod_env_default=Default
mod_env_evar='$1' is not a valid variable name
mod_env_evalue='$1' is not a valid variable value

mod_access_order=Access checking order:
mod_access_denyallow=Deny then allow
mod_access_allowdeny=Allow then deny
mod_access_mutual=Mutual failure
mod_access_default=Default
mod_access_action=Action
mod_access_cond=Condition
mod_access_all=All requests
mod_access_host=Request from host...
mod_access_ip=Request from IP..
mod_access_pip=Request from partial IP..
mod_access_mask=Request from net/netmask..
mod_access_cidr=Request from net/CIDR..
mod_access_var=If variable is set..
mod_access_allow=Allow
mod_access_deny=Deny
mod_access_restr=Restrict access
mod_access_eip='$1' is not a valid IP address
mod_access_epip='$1' is not a valid partial IP address
mod_access_emask='$1' is not a valid network/netmask pair
mod_access_ecidr='$1' is not a valid network/CIDR pair
mod_access_evar='$1' is not a valid variable name

mod_auth_ufile=User text file
mod_auth_uedit=Edit users
mod_auth_gfile=Group text file
mod_auth_gedit=Edit groups
mod_auth_pass=Pass failures to next module?
mod_auth_auth=Text file authentication
mod_auth_eudir=User text file is not under the allowed directory
mod_auth_egdir=Group text file is not under the allowed directory
mod_auth_eufile=Invalid user text file name
mod_auth_egfile=Invalid group text file name

mod_auth_dbm_ufile=User DBM file
mod_auth_dbm_gfile=Group DBM file
mod_auth_dbm_pass=Pass failures to next module?
mod_auth_dbm_auth=DBM file authentication
mod_auth_dbm_eufile=Invalid user DBM file name
mod_auth_dbm_egfile=Invalid group DBM file name

mod_cern_meta_process=Process header metafiles
mod_cern_meta_dir=Subdirectory for header metafiles
mod_cern_meta_default=Default
mod_cern_meta_edir=Invalid metafile subdirectory name
mod_cern_meta_suffix=File suffix for header metafiles
mod_cern_meta_default2=Default
mod_cern_meta_esuffix=Invalid metafile suffix

mod_ssl_enable=Enable SSL?
mod_ssl_proto=SSL protocols
mod_ssl_cfile=Certificate/private key file
mod_ssl_default=Default
mod_ssl_ecfile=Missing certificate/private key file
mod_ssl_kfile=Private key file
mod_ssl_ekfile=Missing private key file
mod_ssl_clcert=Client SSL certificate
mod_ssl_nreq=Not required
mod_ssl_opt=Optional
mod_ssl_req=Required
mod_ssl_optca=Optional no CA
mod_ssl_cdepth=Client certificate depth
mod_ssl_ecdepth=Certificate depth must be an integer
mod_ssl_log=SSL log file
mod_ssl_elog=Missing SSL log file
mod_ssl_onlyssl=Allow SSL access only

log_global=Changed global $1 options
log_virtc=Created server $1
log_virts=Reconfigured server $1
log_virtd=Deleted server $1
log_virtm=Manually edited server $1
log_virt=Changed $1 in server $2
log_dirc=Created directory $1
log_dirc_l=Created directory $1 in server $2
log_dirs=Changed directory $1
log_dirs_l=Changed directory $1 in server $2
log_dird=Deleted directory $1
log_dird_l=Deleted directory $1 in server $2
log_dirm=Manually edited directory $1
log_dirm_l=Manually edited directory $1 in server $2
log_dir=Changed $1 in directory $2
log_dir_l=Changed $1 in directory $2 in server $3
log_htaccessc=Created options file $1
log_htaccessd=Deleted options file $1
log_htaccessm=Manually edited options file $1
log_htaccess=Changed $1 in options file $2
log_filesc=Created file options for $1
log_filesc_l=Created file options for $1 in file $2
log_filess=Changed file options for $1
log_filess_l=Changed file options for $1 in file $2
log_filesd=Deleted file options for $1
log_filesd_l=Deleted file options for $1 in file $2
log_filesm=Manually edited file options for $1
log_filesm_l=Manually edited file options for $1 in file $2
log_files=Changed $1 in file options for $2
log_files_l=Changed $1 in file options for $2 in file $3
log_mime_modify=Modified MIME type $1
log_mime_create=Added MIME type $1
log_defines=Changed defined parameters
log_reconfig=Reconfigured known modules
log_start=Started webserver
log_stop=Stopped webserver
log_apply=Applied changes

0707010001b8ac000081a40000000000000002000000013ac03897000089fd000000200000000000000000000000000000001500000003reloc/apache/lang/es  index_title=Servidor Web Apache
index_eroot=El directorio ra韟 de Apache $1 no existe. Si tienes Apache instalado, ajusta la <a href='$2'>configuraci髇 del m骴ulo</a> para que use la trayectoria correcta.
index_eserver=El ejecutable del servidor Apache $1 no existe. Si tienes Apache instalado, ajusta la <a href='$2'>configuraci髇 del m骴ulo</a> para que use la trayectoria correcta.
index_econf=El archivo de configuraci髇 de Apache $1 no existe. Si tienes apache instalado, ajusta la <a href='$2'>configuraci髇 del m骴ulo</a> para que use la trayectoria correcta.
index_eports=Tu configuraci髇 de Apache contiene m醩 de 1 directiva $1. La versi髇 actual de Webmin no puede manejar de forma adecuada est configuraci髇.
index_global=Configuraci髇 Global
index_virts=Servidores Virtuales
index_defserv=Servidor por Defecto
index_defdesc1=Define las opciones por defecto para todos los otros sevidores virtuales y procesa cualquier requerimiento no manejado.
index_any=Cualquiera
index_default=Por defecto
index_auto=Autom醫ico
index_virt=Servidor Virtual
index_vname=Maneja el servidor basado en nombre $1 en la direcci髇 $2.
index_vdef=Procesa todos los requerimientos no manejados por otros servidores virtuales.
index_defdesc2=Define las opciones por defecto para todos los otros servidores virtuales.
index_vport=Procesa todos los requerimientos en el puerto $1 no manejados por otros servidores virtuales.
index_vaddr=Maneja todos los requerimientos de la direcci髇 $1.
index_vaddrport=Maneja todos los requerimientos de la direcci髇 $1 en el puerto $2.
index_type=Tipo
index_addr=Direcci髇
index_nv=A馻dir direcci髇 de servidor virtual de nombres (si es necesario)
index_port=Puerto
index_name=Nombre del Servidor
index_root=Ra韟 para Documentos
index_create=Crear un Nuevo Servidor Virtual
index_return=lista de servidores

cvirt_ecannot=No est醩 autorizado a crear un servidor virtual
cvirt_err=Error al crear servidor virtual
cvirt_eaddr1=No se ha digitado direcci髇
cvirt_eaddr2='$1' no es una direcci髇 v醠ida
cvirt_eport='$1' no es un puerto v醠ido
cvirt_ename='$1' no es un nombre de servidor v醠ido
cvirt_eroot1=Debes digitar una ra韟 para documentos
cvirt_eroot2=Error al crear directorio '$1' : $2

etype=No est醩 autorizado a editar opciones de este tipo
efailed=Error al salvar $1
apache_apply=Aplicar Cambios
apache_stop=Parar Apache
apache_start=Arrancar Apache
auth_return=control de acceso
default_serv=servidor por defecto
bytes=octetos

global_ecannot=No est醩 autorizado a editar opciones globales
global_mime=Lista de tipos MIME Globales
global_mimedesc=Haz click en un tipo MIME de la lista inferior para editarlo o usa el enlace al final de la p醙ina para a馻dir un nuevo tipo a la lista.
global_type=Tipo
global_ext=Extensiones
global_add=A馻dir un nuevo tipo MIME
global_return=Tipos MIME

mime_ecannot=No est醩 autorizado a editar tipos MIME
mime_edit=Editar Tipo MIME
mime_add=A馻dir Tipo MIME
mime_header=Extensiones de nombre de archivo mapeadas a tipo MIME
mime_type=Tipo MIME
mime_ext=Extensiones
mime_err=Error al salvar tipo MIME
mime_etype='$1' no es un tipo MIME v醠ido

virt_ecannot=No puedes editar este servidor virtual
virt_title=Opciones de Servidor Virtual
virt_header=Para $1
virt_opts=Opciones de Servidor Virtual
virt_conf=Configuraci髇 del Servidor
virt_show=Mostrar Directivas
virt_adddir=Crear Opciones de Por-Directorio, Archivos o Localizaci髇
virt_edit=Editar Directivas
virt_type=Tipo
virt_Directory=Directorio
virt_Files=Archivos
virt_Location=Localizaci髇
virt_exact=Coincidencia Exacta
virt_re=Coincidir con expresi髇
virt_regexp=縀xpresi髇?
virt_path=Trayectoria
virt_return=韓dice de servidor
virt_euser=No est醩 autorizado a cambiar el usuario o grupo de este servidor virtual.
virt_header2=$1 para $2

vserv_title=Configuraci髇 de Servidor Virtual
vserv_ecannot=No puedes editar esta direcci髇 de servidor virtual
vserv_addr=Direcci髇
vserv_addrs=Direcciones
vserv_port=Puerto
vserv_any=Cualquiera
vserv_default=Por defecto
vserv_root=Ra韟 de Documento
vserv_name=Nombre de Servidor
vserv_delete=Borrar Servidor Virtual
vserv_err=Error al salvar servidor virtual
vserv_eaddr1=No se ha digitado direcci髇
vserv_eaddr2='$1' no es una direcci髇 v醠ida
vserv_eport='$1' no es un puerto v醠ido
vserv_eroot='$1' no es una ra韟 de documentos v醠ida
vserv_ename='$1' no es un nombre de servidor v醠ido
vserv_eaddrs=No se han digitado direcciones de servidores virtuales

show_title=Directivas
show_edit=Editar directiva Apache:
show_these=Editar directivas manu醠mente
show_ok=Editar

manual_title=Editar Directivas
manual_header=Usa la caja de texto inferior para editar manu醠mente las directivas Apache en $1 que se aplican a este servidor virtual, directorio o archivos.
manual_ecannot=No est醩 autorizado a editar manu醠mente las directivas

dir_title=Opciones de Por-Directorio
dir_header=Para $1 en $2
dir_show=Ver Directivas
dir_edit=Editar Directivas
dir_opts=Las opciones se aplican a...
dir_Directory=Directorio
dir_Files=Archivos
dir_Location=Localizaci髇
dir_type=Tipo
dir_regexp=縀xpresi髇?
dir_exact=coincidencia exacta
dir_re=Coincidir con expresi髇
dir_path=Trayectoria
dir_return=韓dice de directorio
dir_header2=$1 para $2

type_0=L韒ites y Procesos
type_1=Redes y Direcciones
type_2=M骴ulos Apache
type_3=Archivos de Historial
type_4=Control de Acceso
type_5=Opciones de Documento
type_6=Tipos MIME
type_7=Manejo de Errores
type_8=Usuarios y Grupos
type_9=Varios
type_10=Alias y Redireccionamientos
type_11=Programass CGI
type_12=Indizado de Directorio
type_13=Haciendo Proxy
type_14=Opciones SSL
type_15=Perl
type_16=PHP

htaccess_title=Archivos de Opciones de Por-Directorio
htaccess_ecannot=No puedes editar archivos 'htaccess'
htaccess_desc=Se pueden especificar en un archivo (normalmente llamado <tt>.htaccess</tt>) opciones adicionales de por-directorio dentro de cada directorio. Las opciones se aplican a todos los archivos de ese directorio y a cualquier subdirectorio, a menos que se indique lo contrario en otro archivo de opciones.
htaccess_create=Crear Archivo de Opciones
htaccess_find=Hallar Archivos de Opciones
htaccess_auto=Autom醫icamente
htaccess_from=Desde el directorio
htaccess_return=lista de archivos de opciones
htaccess_edir='$1' no es un directorio v醠ido
htaccess_ecreate=No est醩 autorizado a crear este archivo de opciones
htaccess_edelete=No est醩 autorizado a borrar este archivo de opciones

htindex_ecannot=No est醩 autorizado a editar este archivo de opciones
htindex_title=Archivo de Opciones de Por-Directorio
htindex_delete=Borrar Archivo
htindex_show=Ver Directivas
htindex_edit=Editar Directivas
htindex_opts=Opciones de Por-Directorio
htindex_file=Configuraci髇 de Por-Archivo
htindex_create=Crear Opciones de Por-Archivo
htindex_regexp=縀xpresi髇?
htindex_exact=Coincidencia exacta
htindex_re=Coincidir con expresi髇
htindex_path=Trayectoria
htindex_header=Para $1
htindex_header2=$1 para archivo de opciones $2
htindex_return=韓dice de archivo de opciones

htfile_title=Opciones de Por-Archivo
htfile_header=Para $1 en $2
htfile_show=Ver Directivas
htfile_edit=Editar Directivas
htfile_apply=Las Opciones se aplican a...
htfile_header2=$1 para $2

reconfig_title=Reconfigurar M骴ulos Conocidos
reconfig_ecannot=No est醩 autorizado a reconfigurar apache
reconfig_ever=Error al obtener la versi髇 del ejecutable del servidor Apache $1. Revisa tu <a href='$2'>configuraci髇 del m骴ulo</a> para asegurarte de que su trayectoria es la correcta.
reconfig_desc1=Tu configuraci髇 Apache ha cambiado o todav韆 no ha sido examinada por Webmin. Abajo hay una lista de todos los m骴ulos Apache soportados por Webmin en la que ya est醤 seleccionados aquellos que ya est醤 instalados. Puedes seleccionar o quitar m骴ulos si la lista es incorrecta.
reconfig_desc2=Debajo hay una lista de todos los m骴ulos Apache soportados por Webmin en la que ya est醤 seleccionados aquellos que ya est醤 instalados. Si est醩 usando m骴ulos cargados din醡icamente necesitar醩 seleccionar aquellos que cargues de esa manera.
reconfig_ok=Configurar

defines_title=Editar Par醡etros Definidos
defines_ecannot=No est醩 autorizado a editar par醡etros httpd definidos
defines_desc=Cuando Apache arranca, se le pueden pasar par醡etros con la opci髇 <tt>-D</tt> de l韓ea de comando. A causa de que estos par醡etros pueden afectar a las directivas que se usar醤 en tus archivos de configuraci髇, Webmin necesita saber cu醠 son pasados a Apache cuando 閟te arranca. Digita los par醡etros usados por tu sistema dentro del campo de texto de la derecha.
defines_config=Date cuenta de que los siguientes par醡etros definidos ya son conocidos: $1

authu_ecannot='$1' no es un archivo de texto de usuario autorizado
authu_title=Lista de Usuarios
authu_header=En archivo $1
authu_header2=Usuarios de archivo de texto $1
authu_none=No hay usuarios en archivo de texto $1
authu_add=A馻dir nuevo usuario
authu_return=lista de usuarios
authu_edit=Editar Usuario
authu_create=Crear Usuario
authu_user=Nombre de Usuario
authu_pass=Clave de Acceso
authu_dont=No cambiar
authu_set=Poner a...
authu_err=Error al salvar usuario
authu_euser=No se ha digitado nombre de usuario
authu_euser2=El nombre de usuario no puede contener un car醕ter ':'
authu_edup=Ya existe un usuario llamado '$1'
authu_sync=Las opciones de debajo te permiten configurar Webmin para que autom醫icamente a馻da, actualice o borre a un usuario de este archivo de claves de acceso cuando un usuario es a馻dido, modificado o borrado en el m骴ulo de <tt>Usuarios y Grupos</tt>.
authu_screate=A馻dir el usuario cuando se a馻da el de Unix
authu_sdelete=Borrar el usuario cuando se borre el de Unix
authu_smodify=Cambiar el usuario cuando se cambie el de Unix

authg_ecannot='$1' no es un archivo de texto de grupos autorizado
authg_title=Lista de Grupos
authg_header=En archivo $1
authg_header2=Grupos del archivo de texto $1
authg_none=No hay grupos en archivo de texto $1
authg_add=A馻dir nuevo grupo
authg_return=lista de grupos
authg_edit=Editar Grupo
authg_create=Crear Grupo
authg_group=Nombre de Grupo
authg_mems=Miembros
authg_dont=No cambiar
authg_set=Poner a...
authg_err=Error al salvar grupo
authg_euser=No se ha digitado nombre de grupo
authg_euser2=El nombre de grupo no puede contener un car醕ter ':'
authg_edup=Ya existe un grupo llamado '$1'

stop_err=Error al parar apache
stop_ecannot=No est醩 autorizado a parar apache
stop_epid=Error al abrir archivo PID $1
stop_epid2=Archivo PID $1 inv醠ido
stop_esig=Error al enviar SIGTERM al proceso $1

start_err=Error al arrancar apache
start_ecannot=No est醩 autorizado a arrancar apache
start_ecmd=$1 fall: $2
start_eunknown=Motivo desconocido

restart_err=Error al aplicar cambios
restart_epid=Error al abrir archivo PID $1
restart_epid2=Archivo PID $1 inv醠ido
restart_esig=Error al enviar SIGHUP al proceso $1
restart_eunknown=Motivo desconocido

acl_virts=Servidores virtuales que este usuario puede editar
acl_vall=Todos los servidores
acl_vsel=Los seleccionados...
acl_defserv=Servidor por defecto
acl_global=縋uedo editar opciones globales?
acl_htaccess=s髄amente .htaccess
acl_create=縋uedo crear servidores virtuales?
acl_vuser=縋uedo cambiar usuarios de servidores virtuales?
acl_vaddr=縋uedo cambiar direcciones de servidores virtuales?
acl_pipe=縋uedo entubar historiales a programas?
acl_stop=縋uedo parar y arrancar Apache?
acl_dir=Limitar archivos a directorio
acl_types=Tipos de Directivas disponibles
acl_all=Todas
acl_sel=Seleccionadas...

core_maxconc=M醲imo n鷐ero de requerimientos concurrentes
core_maxkeep=M醲imo n鷐ero de mantener_vivos por conexi髇
core_maxreq=M醲imo n鷐ero de requerimientos por proceso de servidor
core_minspare=M韓imo n鷐ero de procesos de repuesto del servidor
core_maxspare=M醲imo n鷐ero de procesos de repuesto del servidor
core_initial=Procesos iniciales del servidor
core_emaxconc=M醲imo n鷐ero de requerimientos concurrentes debe de ser un entero
core_emaxkeep=M醲imo n鷐ero de mantener_vivos por conexi髇 debe de ser un entero
core_emaxreq=M醲imo n鷐ero de requerimientos por proceso de servidor debe de ser un entero
core_eminspare=M韓imo n鷐ero de procesos de servidor debe de ser un entero
core_emaxspare=M醲imo n鷐ero de procesos de repuesto del servidor debe de ser un entero
core_einitial=Procesos iniciales del servidor debe de ser un entero
core_default=Por defecto
core_cpulimit=L韒ite de recursos de UCP
core_memlimit=L韒ite de recursos de memoria
core_proclimit=L韒ite de procesos
core_cpulimit2=L韒ite de recursos de UCP
core_memlimit2=l韒ite de recursos de memoria
core_proclimit2=l韒ite de procesos
core_slimit=L韒ite por Soft
core_hlimit=L韒ite por Hard
core_eslimit=$1 no es un soft $2 v醠ido
core_ehlimit=$1 no es un hard $2 v醠ido
core_dport=Puerto por defecto:
core_address=Direcci髇
core_port=Puerto
core_listen=Escuchar en direcciones y puertos
core_eaddress='$1' no es una direcci髇 v醠ida
core_eport='$1' no es un puerto v醠ido
core_eoneaddr=Debes de especificar al menos una direcci髇 donde escuchar
core_edefport=Puerto por defecto inv醠ido
core_multi=Requerimientos m鷏tiples por conexi髇
core_ekeep='$1' no es un n鷐ero v醠ido de mantener_vivos
core_ltwice=Buscar dos veces
core_keeptout=Tiempo de espera para mantener_vivos
core_lqueue=Medida de cola para escuchar
core_bufsize=Medida de b鷉er de env韔 de TCP
core_admin=Direcci髇 de correo del administrador del servidor
core_rtout=Tiempo de espera para requerimientos
core_bhostname=Usar el nombre de m醧uina suministrado por el navegador
core_lookup=Buscar nombres de m醧uina
core_useauth=Hacer b鷖quedas de usuario RFC1413
core_altnames=Nombres alternativos de servidor virtual
core_hostname=Nmbre de m醧uina de servidor
core_virtaddr=Direcciones para servidores virtuales de nombres
core_ekeeptout=Tiempo de espera para mantener_vivos debe de ser un entero
core_elqueue=Medida de cola para escuchar debe de ser un entero
core_ebufsize=B鷉er de env韔 de TCP debe de ser un entero
core_ertout=Tiempo de espera de requerimiento debe de ser un entero
core_ehostname=Servidor de nombres de m醧uina inv醠ido
core_osdefault=Por defecto de SO
core_noadmin=Ninguno
core_auto=Autom醫ico
core_ekeep='$1' no es un n鷐ero v醠ido para mantener_vivos
core_evirtaddr='$1' no es una direcci髇 v醠ida para servidores virtuales de nombres
core_auth=Opciones de autentificaci髇
core_mime=Tipos MIME y codificaciones
core_indexing=Indexaciones y archivos de 韓dice
core_hostacc=Control de acceso a nombre de m醧uina
core_diropts=Opciones de directorio
core_filesel=Seleccionado debajo...
core_execcgi=Ejecutar programas CGI
core_flink=Seguir enlaces simb髄icos
core_inclexe=Inclusiones y ejecuciones del lado del servidor
core_incl=Inclusiones del lado del servidor
core_genind=Generar 韓dices de directorio
core_genmview=Generar multivistas
core_flinkmatch=Seguir enlaces simb髄icos si el propietario coincide
core_optsel=Seleccionado debajo...
core_enable=Activar
core_disable=Desactivar
core_optfile=Archivo de opciones de Por-directorio
core_overr=El archivo de opciones puede pasar por alto...
core_genmd5=Generar resumen MD5
core_docroot=Directorio ra韟 para documentos
core_eoptfile=S髄o est permitido un archivo de opciones
core_enoopt=No se ha digitado archivo de opciones
core_enodoc=El documento ra韟 '$1' no existe
core_sigemail=Direcci髇 de correo
core_signame=Nombre de servidor
core_signone=Ninguno
core_virtpath=Trayectoria de servidor virtual
core_footer=Pie de mensaje de error
core_evirtpath=La trayectoria del servidor virtual debe de comenzar con una '/'
core_defmime=Tipo MIME por defecto
core_edefmime=Tipo MIME por defecto debe de estar en el formato tipo/subtipo
core_realm=Nombre de 醡bito de autentificaci髇
core_authtype=Tipo de Autentificaci髇
core_authall=Todos los controles de acceso
core_authany=Cualquier control de acceso
core_authlog=Restringir acceso por login
core_satisfy=Los clientes deben de satisfacer
core_salone=Solo
core_inetd=Ejecutar desde inetd
core_verosmod=Versi髇 y SO y m骴ulos
core_veros=Versi髇 y SO
core_ver=Versi髇 s髄amente
core_coredir=Directorio para volcados de memoria
core_lockfile=Archivo de bloqueo del servidor
core_maxbody=Medida m醲ima de cuerpo de requerimiento
core_maxhead=Cabeceras m醲imas en requerimiento
core_maxshead=Medida m醲ima de cabecera de requerimiento
core_maxline=Medida m醲ima de l韓ea de requerimiento
core_pid=Archivo PID del Servidor
core_memsco=Archivo de puntuaci髇 de memoria compartida
core_exec=Ejecuci髇 de servidor
core_header=Cabecera HTTP de servidor
core_ecore=Directorio de volcado de memoria inv醠ido
core_elock=Archivo de bloqueo inv醠ido
core_ebody=Medida de cuerpo de requerimiento inv醠ida
core_ehead=N鷐ero inv醠ido de cabeceras
core_eshead=Medida inv醠ida de cabecera
core_eline=Medida inv醠ida de l韓ea de requerimiento
core_epid=Archivo PID inv醠ido
core_escore=Archivo de puntuaci髇 inv醠ido
core_sroot=Ra韟 de Servidor
core_group= Nombre de grupo
core_gid= ID de grupo
core_user= Nombre de usuario
core_uid= ID de usuario
core_asgroup=Ejecutar como grupo de Unix
core_asuser=Ejecutar como usuario de Unix
core_euid='$1' no es una ID v醠ida de grupo
core_egid='$1' no es una ID v醠ida de usuario
core_tourl= Ir a Direcci髇 (URL)...
core_mesg= Mostrar mensaje...
core_error=C骴igo de error
core_resp=Respuesta
core_urlmsg=Direcci髇 (URL) o mensaje
core_custom=respuestas a errores de Cliente
core_eerror='$1' no es un c骴igo de error v醠ido
core_eurl='$1' no es una direcci髇 (URL) v醠ida
core_syslog=Historial de Sistema
core_filelog=Archivo
core_proglog=Programa 
core_errfile=Archivo de historial de errores
core_logto=Historial de errores a
core_efilelog=Archivo de historial de errores inv醠ido
core_edirlog=El archivo de historial de errores no est bajo el directorio autorizado
core_efilemiss=Archivo de historial de error sin poner
core_eprogmiss=Programa de historial de errores sin poner
core_eperm=No est醩 autorizado a usar tuber韆s hacia los programas de historial
core_allmod=Todos los m骴ulos
core_selmod=Los m骴ulos seleccionados...
core_actmod=M骴ulos activos
core_option=Opci髇
core_setdir=Puesta para el directorio
core_merge=Fundir con el padre
core_users=S髄o estos usuarios
core_groups=S髄o estos grupos
core_allusers=Todos los usuarios v醠idos
core_none=Ninguno
core_all=Todos
core_product=S髄o producto

mod_negotiation_0=縃ago cach de los documentos de contenido-negociado?
mod_negotiation_3=Prioridad de lenguaje para muti-vistas
mod_negotiation_def=Por defecto
mod_negotiation_5=Prioridades de lenguage sin poner

mod_cgi_0=Historial de gui髇 CGI
mod_cgi_1=Ninguno
mod_cgi_2=Archivo de historial de gui髇 CGI inv醠ido
mod_cgi_3=Medida m醲ima de historial de CGI
mod_cgi_4=Por defecto
mod_cgi_5=La medida del historial de CGI debe de ser un entero
mod_cgi_6=Medida m醲ima de historial de datos enviados
mod_cgi_7=Por defecto
mod_cgi_8=La medida de los datos enviados debe de ser un entero
mod_cgi_9=El historial de gui髇 de CGI no est bajo el directorio autorizado

mod_alias_from=De
mod_alias_to=Para
mod_alias_status=Estado
mod_alias_efrom='$1' no es un $2 v醠ido
mod_alias_edest='$1' no es un destino $2 v醠ido
mod_alias_alias=Aliases de directorio de documento
mod_alias_alias2=Alias de documento
mod_alias_regexp=Aliases de directorio de documento de expresiones (regexp)
mod_alias_regexp2=Alias de expresi髇 de documento
mod_alias_redir=Redirecciones URL
mod_alias_redir2=Redirecci髇 URL
mod_alias_rredir=Redirecciones de Expresiones URL
mod_alias_rredir2=Redirecci髇 de Expresi髇 URL
mod_alias_tredir=Redirecciones de URL temporales
mod_alias_tredir2=Redirecci髇 de URL temporal
mod_alias_predir=Redirecciones de URL permanentes
mod_alias_predir2=Redirecci髇 de URL permanente
mod_alias_cgi=Aliases de directorio CGI
mod_alias_cgi2=Alias de directorio CGI
mod_alias_rcgi=Aliases de expresiones de directorio CGI
mod_alias_rcgi2=Alias de expresi髇 de directorio CGI
mod_alias_estatus='$1' no es un estado v醠ido

mod_proxy_proxy=緼ct鷒 como servidor proxy?
mod_proxy_req=Requerimientos
mod_proxy_forw=Remitir a
mod_proxy_all=Todos
mod_proxy_match=Qeu coincidan con...
mod_proxy_pass=Requerimientos a pasar a otro proxy
mod_proxy_local=Trayectoria de direcci髇 (URL) local
mod_proxy_remote=Direcci髇 (URL) remota
mod_proxy_map=Mapear direcciones (URL) locales a remotas
mod_proxy_block=Bloquear requerimientos a dominios
mod_proxy_eblock=No se han digitado dominios que bloquear
mod_proxy_type=Tipo
mod_proxy_noproxy=Sin proxy para...
mod_proxy_nopass=No pasar requerimientos a otro proxy para
mod_proxy_nodomain=Dominio para requerimientos sin dominio
mod_proxy_none=Ninguno
mod_proxy_enodomain=Dominio por defecto inv醠ido
mod_proxy_connect=Puertos en los que se permite CONECTAR (CONNECT)
mod_proxy_default=Por defecto
mod_proxy_econnect=Puertos donde conectar inv醠idos
mod_proxy_dir=Directorio de cach
mod_proxy_edir=Nombre de directorio de cach inv醠ido
mod_proxy_size=Medida de cach
mod_proxy_esize=Medida de cach inv醠ida
mod_proxy_garbage=Intervalo de colecci髇 de basura de cach
mod_proxy_nogc=Nunca
mod_proxy_hours=horas
mod_proxy_egarbage=Intervalo de colecci髇 de basura de cach inv醠ido
mod_proxy_maxexp=Tiempo m醲imo de expiraci髇 de archivo de cach
mod_proxy_emaxexp=Tiempo m醲imo de expiraci髇 de archivo de cach inv醠ido
mod_proxy_expfac~=Factor de tiempo de expiraci髇 de archivo de cach
mod_proxy_eexpfac=Factor de tiempo de expiraci髇 de archivo de cach inv醠ido
mod_proxy_levels=Niveles de directorio de cach
mod_proxy_elevels=Niveles de directorio de cach inv醠idos
mod_proxy_length=Medida de nombre de directorio de cach
mod_proxy_elength=Medida de nombre de directorio de cach inv醠ida
mod_proxy_defexp=Tiempo de expiraci髇 por defecto de cach
mod_proxy_edefexp=Tiempo de expiraci髇 por defecto inv醠ido
mod_proxy_finish=Acabar y hacer cach de transferencia despu閟
mod_proxy_efinish=Porcentaje de transferencia inv醠ido
mod_proxy_nocache=Dominios de los que no hacer cach
mod_proxy_none2=Ninguno
mod_proxy_none3=Ninguno
mod_proxy_enocache=No se han digitado dominios de los que no hacer cach
mod_proxy_erequest='$1' no es un requerimiento v醠ido
mod_proxy_epurl='$1' no es una direcci髇 (URL) de proxy v醠ida
mod_proxy_elurl='$1' no es una trayectoria de direcci髇 (URL) local v醠ida
mod_proxy_erurl='$1' no es una direcci髇 (URL) remota v醠ida
mod_proxy_eip='$1' no es una direcci髇 IP v醠ida
mod_proxy_ehost='$1' no es un nombre v醠ido de m醧uina
mod_proxy_edomain='$1' no es un dominio v醠ido
mod_proxy_enet='$1' no es una red v醠ida
mod_proxy_enetbit='$1' no es una red/par_de_bits v醠ida
mod_proxy_eunder=directorio de cach no est bajo el directorio permitido
mod_proxy_rurl=Direcci髇 (URL) remota
mod_proxy_lurl=Trayectoria de direcci髇 (URL) local
mod_proxy_headers=Mapear Localizaci髇 remota: cabeceras a local
mod_proxy_ip=Direcci髇 IP
mod_proxy_host=Nombre de m醧uina
mod_proxy_domain=Dominio
mod_proxy_net=Red IP
mod_proxy_netbit=Red/bits

mod_log_agent_default=Por defecto
mod_log_agent_file=Archivo...
mod_log_agent_program=Programa...
mod_log_agent_log=Archivo de historial de navegador
mod_log_agent_efile=$1 no es un nombre de archivo de historial de agente v醠ido

mod_log_config_common=Formato de Historial Com鷑
mod_log_config_named=Formatos de historial de Named
mod_log_config_nick=Apodo
mod_log_config_format=Formato
mod_log_config_deflog=Formato por defecto de historial
mod_log_config_default=Por defecto
mod_log_config_write=Escribir a
mod_log_config_filprog=Archivo o programa
mod_log_config_file=Archivo...
mod_log_config_program=Programa...
mod_log_config_log=Archivos de historial de acceso
mod_log_config_enick='$1' no es un apodo v醠ido
mod_log_config_eformat=No se ha digitado formato de historial para $1
mod_log_config_enofilprog=Nombre de archivo de historial o programa sin poner
mod_log_config_efilprog='$1' no es un nombre de archivo de historial o programa autorizado
mod_log_config_eifset=La opci髇 'If set' no se puede utilizar con el formato de historial por defecto

mod_log_referer_default=Por defecto
mod_log_referer_file=Archivo...
mod_log_referer_program=Programa...
mod_log_referer_log=Archivo de historial de referencias
mod_log_referer_nolog=No llevar historial de las referencias desde
mod_log_referer_elog=$1 no es un nombre de archivo de referencias v醠ido
mod_log_referer_edir=historial de referencias no est bajo el directorio autorizado

mod_status_msg=Mostrar informaci髇 extendida de estado

mod_mime_ext=Extensiones
mod_mime_xtype=Tipos MIME extra
mod_mime_mtype=Tipo MIME
mod_mime_chandl=Manejadores de contenido
mod_mime_cencs=Codificaciones de contenido
mod_mime_cenc=Codificaci髇 de contenido
mod_mime_clangs=Lenguages de Contenido
mod_mime_clang=Lenguage de Contenido
mod_mime_defmime=Trata todos los archivos como de tipo MIME
mod_mime_real=Tipo real
mod_mime_etype=Tipo MIME inv醠ido
mod_mime_pass=Pasa todos los archivos al manejador
mod_mime_file=Archivo de tipos MIME
mod_mime_default=Por defecto
mod_mime_ignhand=Ignorar manejadores para extensiones
mod_mime_none=Ninguna
mod_mime_xchars=Conjuntos extra de caracteres
mod_mime_einvalid='$1' no es un $2 v醠ido
mod_mime_19=No se han digitado extensiones para $1 $2
mod_mime_type=Tipo
mod_mime_handler=Manejador
mod_mime_enc=Codificaci髇
mod_mime_lang=Lenguage
mod_mime_chars=Conjunto de caracteres
mod_mime_chars=Ignorar tipos MIME para extensi髇
mod_mime_igntype=Ignorar codificaciones para extensi髇

mod_setenvif_header=Cabecera
mod_setenvif_match=Coincidencia
mod_setenvif_case=Coincidencia de may鷖culas/min鷖culas
mod_setenvif_var=Variable
mod_setenvif_value=Valor
mod_setenvif_txt=Variables puestas basadas en cabeceras de requerimiento
mod_setenvif_eheader=Cabecera de requerimiento '$1' inv醠ida
mod_setenvif_eregex=Expresi髇 regular '$1' inv醠ida
mod_setenvif_evar=Nombre de variable '$1' inv醠ida
mod_setenvif_clear=Limpiar

mod_userdir_default=Por defecto
mod_userdir_all=Accesible a todos los usuarios
mod_userdir_except=Todos los usarios excepto
mod_userdir_dir=Directorio WWW de Usuario

mod_imap_action=Acci髇 cuando se haga uso incorrecto de mapas de im醙enes
mod_imap_default=Por defecto
mod_imap_godefurl=Ir a direcci髇 (URL) por defecto
mod_imap_form=Mostrar men formateado
mod_imap_semiform=Mostrar men semi-formateado
mod_imap_unform=Mostrar men sin formato
mod_imap_disperr=Mostrar error de servidor
mod_imap_donoth=No hacer nada
mod_imap_goimap=Ir a direcci髇 (URL) de mapa de imagen
mod_imap_goref=Ir a direcci髇 (URL) a la que se hace referencia
mod_imap_gourl=Ir a direcci髇 (URL)...
mod_imap_defact=Acci髇 por defecto para mapas de imagen
mod_imap_default2=Por defecto
mod_imap_root=Ra韟 de Servidor
mod_imap_imapurl=Direcci髇 (URL) de mapa de imagen
mod_imap_refurl=Direcci髇 (URL) a la que se hace referencia
mod_imap_url=Direcci髇 (URL)...
mod_imap_defbase=Base por defecto para mapas de imagen
mod_imap_eurl='$1' no es una direcci髇 (URL) v醠ida

mod_speling_autocorr=緾orregir autom醫icamente direcciones (URL) con mala sint醲is?
mod_speling_default=Por defecto

mod_actions_mime=Manejador/tipo MIME
mod_actions_cgiurl=Direcci髇 (URL) de gui髇 CGI
mod_actions_mimecgi=Acciones CGI de Manejador o tipo MIME
mod_actions_http=M閠odo HTTP
mod_actions_cgi=Gui髇 CGI
mod_actions_httpcgi=Acciones CGI de m閠odo HTTP
mod_actions_emime='$1' no es un manejador o tipo MIME v醠ido
mod_actions_ecgi='$1' no es un gui髇 CGI v醠ido
mod_actions_enometh=No se ha seleccionado m閠odo para gui髇 CGI '$1'

mod_include_incl=縋roceso incluye archivos con bit de ejecuci髇?
mod_include_set=S y poner 鷏tima fecha de modificaci髇
mod_include_default=Por defecto

mod_dir_txt=Archivos de 韓dice de directorio

mod_autoindex_default=Por defecto
mod_autoindex_asc=Ascendente
mod_autoindex_descend=Descendente
mod_autoindex_name=Nombre
mod_autoindex_date=Fecha
mod_autoindex_size=Medida
mod_autoindex_desc=Descripci髇
mod_autoindex_sort=Clasificar 韓dice de directorio por

browsermatch_regexp=Expresiones de navegador
browsermatch_case=緾oincidir may鷖culas/min鷖culas?
browsermatch_var=Poner variable
browsermatch_value=Valor
browsermatch_txt=Variables puestas basadas en tipo de navegador
browsermatch_evar=Nombre de variable '$1' inv醠ido
browsermatch_clear=Limpiar

autoindex_fname=Nombre de archivo
autoindex_mime=Tipo MIME
autoindex_enc=Codificaci髇
autoindex_icon=Icono
autoindex_alt=Texto alternativo
autoindex_match=Que coincida con
autoindex_fte=Nombre de archivos, tipos o codificaciones
autoindex_diricon=Iconos de 韓dice de directorio
autoindex_deficon=Icono por defecto de 韓dice de directorio
autoindex_default=Por defecto
autoindex_edeficon=Direcci髇 (URL) de icono por defecto inv醠ida
autoindex_diralt=Marcas ALT de 韓dice de directorio
autoindex_desc=Descripci髇
autoindex_fnames=Nombre de archivos
autoindex_dirdesc=Descripciones de 韓dice de directorio
autoindex_fancy=Mostrar 韓dices simp醫icos de directorio
autoindex_htmltitle=Mostrar t韙ulo HTML como descripci髇
autoindex_iheight=Altura de icono
autoindex_iwidth=Anchura de icono
autoindex_sort=Permitir al usuario la clasificaci髇 de columnas
autoindex_fildesc=Mostrar descripciones de archivo
autoindex_htags=Marcas de cabecera HTML de salida
autoindex_mtime=Mostrar tiempos de 鷏tima modificaci髇
autoindex_size=Mostrar medidas de archivo
autoindex_iconlink=Incluir icono en enlace
autoindex_fwidth=Ancho de nombre de archivo
autoindex_dwidth=Ancho de descripci髇
autoindex_dirfirst=Mostrar primero los directorios
autoindex_default2=Por defecto
autoindex_select=Seleccionado debajo...
autoindex_default3=Por defecto
autoindex_pixels=pixels
autoindex_chars=caracteres
autoindex_diropt=Opciones de 韓dice de directorio
autoindex_dirhead=Archivo de cabecera de 韓dice de directorio
autoindex_default4=Por defecto
autoindex_edirhead=Nombre de archivo de cabecera de 韓dice inv醠ido
autoindex_dirfoot=Archivo de pie de 韓dice de directorio
autoindex_edirfoot=Nombre de pie de 韓dice inv醠ido
autoindex_ignore=Archivos a ignorar en 韓dice de directorio
autoindex_eiconurl='$1' no es una direcci髇 (URL) v醠ida de icono
autoindex_emiss=Sin poner $1 para $2
autoindex_emissquot=Sin poner $1 para '$2'
autoindex_enodesc=No hay descripci髇 para archivo $1
autoindex_enofile=No hay archivos para descripci髇 '$1'
autoindex_eiconsize='$1' no es una medida v醠ida de icono
autoindex_ewidth='$1' no es una anchura v醠ida

mod_mime_magic_file=Archivo de n鷐eros de magia de MIME
mod_mime_magic_none=Ninguno
mod_mime_magic_efile=Nombre de archivo de n鷐eros de magia de MIME inv醠ido

mod_env_var=Variable
mod_env_value=Valor
mod_env_pass=Paso a trav閟
mod_env_clear=Limpiar
mod_env_set=Poner a...
mod_env_cgivar=Variables de entorno para guiones CGI
mod_env_passall=Pasar todas las variables de entorno a CGIs
mod_env_default=Por defecto
mod_env_evar='$1' no es un nombre v醠ido de variable
mod_env_evalue='$1' no es un valor v醠ido de variable

mod_access_order=Orden de chequeo de acceso:
mod_access_denyallow=Denegar y luego permitir
mod_access_allowdeny=Permitir y luego denegar
mod_access_mutual=Fallo mutuo
mod_access_default=Por defecto
mod_access_action=Acci髇
mod_access_cond=Condici髇
mod_access_all=Todos los requerimientos
mod_access_host=Requerimientos desde m醧uina...
mod_access_ip=Requerimientos desde IP...
mod_access_pip=Requerimientos desde IP parcial...
mod_access_mask=Requerimientos desde red/m醩cara de red...
mod_access_cidr=Requerimientos desde red/CIDR...
mod_access_var=Si la variable est puesta...
mod_access_allow=Permitir
mod_access_deny=Denegar
mod_access_restr=Restringir acceso
mod_access_eip='$1' no es una direcci髇 IP v醠ida
mod_access_epip='$1' no es una direcci髇 IP parcial v醠ida
mod_access_emask='$1' no es un par v醠ido de red/m醩cara de red
mod_access_ecidr='$1' no es un par v醠ido de red/CIDR
mod_access_evar='$1' no es un nombre v醠ido de variable

mod_auth_ufile=Archivo de texto de usuario
mod_auth_uedit=Editar usuarios
mod_auth_gfile=Archivo de texto de grupo
mod_auth_gedit=Editar grupos
mod_auth_pass=縋aso fallos al m骴ulo siguiente?
mod_auth_auth=Autentificaci髇 de archivo de texto
mod_auth_eudir=Archivo de texto de usuario no est bajo el directorio autorizado
mod_auth_egdir=Archivo de texto de grupo no est bajo el directorio autorizado
mod_auth_eufile=Nombre de archivo de texto de usuario inv醠ido
mod_auth_egfile=Nombre de archivo de texto de grupo inv醠ido

mod_auth_dbm_ufile=Archivo DBM de usuario
mod_auth_dbm_gfile=Archivo DBM de grupo
mod_auth_dbm_pass=縋aso los fallos al siguiente m骴ulo?
mod_auth_dbm_auth=Autenticaci髇 de archivo DBM
mod_auth_dbm_eufile=Nombre de archivo DBM de usario inv醠ido
mod_auth_dbm_egfile=Nombre de archivo DBM de grupo inv醠ido

mod_cern_meta_process=Meta-archivos de cabecera de proceso
mod_cern_meta_dir=Subdirectorio para meta-archivos de cabecera
mod_cern_meta_default=Por defecto
mod_cern_meta_edir=Nombre de subdirectorio de meta-archivo inv醠ido
mod_cern_meta_suffix=Sufijo de archivo para meta-archivos de cabecera
mod_cern_meta_default2=Por defecto
mod_cern_meta_esuffix=Sufijo de meta-archivo inv醠ido

mod_ssl_enable=緼ctivar SSL?
mod_ssl_proto=Protocolos SSL
mod_ssl_cfile=Archivo de Certificado/Clave privada
mod_ssl_default=Por defecto
mod_ssl_ecfile=Archivo de Certificado/Clave privada sin poner
mod_ssl_kfile=Archivo de clave privada
mod_ssl_ekfile=Archivo de clave privada sin poner
mod_ssl_clcert=Certificado SSL de cliente
mod_ssl_nreq=No requerido
mod_ssl_opt=Opcional
mod_ssl_req=Requerido
mod_ssl_optca=Opcional no CA
mod_ssl_cdepth=Profundidad del certificado de cliente
mod_ssl_ecdepth=La profundidad del certificado debe de ser un entero
mod_ssl_log=Archivo de historial SSL
mod_ssl_elog=Archivo de historial SSL sin poner
mod_ssl_onlyssl=Permitir solamente el acceso SSL

log_global=Cambiadas las opciones globales $1
log_virtc=Creado servidor $1
log_virts=Reconfigurado servidor $1
log_virtd=Borrado servidor $1
log_virtm=Servidor $1 editado manu醠mente
log_virt=Cambiado $1 en servidor $2
log_dirc=Creado directorio $1
log_dirc_l=Creado directorio $1 en servidor $2
log_dirs=Cambiado directorio $1
log_dirs_l=Cambiado directorio $1 en servidor $2
log_dird=Borrado directorio $1
log_dird_l=Borrado directorio $1 en servidor $2
log_dirm=Directorio $1 editado manu醠mente
log_dirm_l=Directorio $1 editado manu醠mente en servidor $2
log_dir=Cambiado $1 en directorio $2
log_dir_l=Cambiado $1 en directorio $2 del servidor $3
log_htaccessc=Creado el archivo de opciones $1
log_htaccessd=Borrado el archivo de opciones $1
log_htaccessm=El archivo de opciones $1 ha sido editado manu醠mente
log_htaccess=Cambiado $1 en archivo de opciones $2
log_filesc=Creadas opciones de archivo para $1
log_filesc_l=Creadas opciones de archivo para $1 en archivo $2
log_filess=Cambiadas opciones de archivo para $1
log_filess_l=Cambiadas opciones de archivo para $1 en archivo $2
log_filesd=Borradas opciones de archivo para $1
log_filesd_l=Borradas opciones de archivo para $1 en archivo $2
log_filesm=Editadas manu醠mente opciones de archivo para $1
log_filesm_l=Editadas manu醠mente opciones de archivo para $1 en archivo $2
log_files=Cambiado $1 en opciones de archivo para $2
log_files_l=Cambiado $1 en opciones de archivo para $2 en archivo $3
log_mime_modify=Modificado tipo MIME $1
log_mime_create=A馻dido tipo MIME $1
log_defines=Cambiados los par醡etros definidos
log_reconfig=Reconfigurados los m骴ulos conocidos
log_start=Servidor de web arrancado
log_stop=Servidor de web parado
log_apply=Cambios aplicados

   0707010001b8ad000081a40000000000000002000000013ac038970000299b000000200000000000000000000000000000001500000003reloc/apache/lang/fr  index_title=Serveur Web Apache
index_eroot=Le r閜ertoire racine d'Apache '$1' n'existe pas.  Si vous avez Apache d'install, ajuster la <a href='$2'>configuration du module</a> avec les chemins corrects.
index_eserver=L'ex閏utable '$1' du serveur Apache n'existe pas.  Si vous avez Apache d'install, ajuster la <a href='$2'>configuration du module</a> avec le chemin du fichier correct.
index_econf=Le fichier de configuration '$1' du serveur Apache n'existe pas.  Si vous avez Apache d'install, ajuster la <a href='$2'>configuration du module</a> avec le chemin du correct du fichier de configuration.
index_eports=Votre configuration d'Apache contient plus que $1 directives.  La version courante de Webmin ne peut supporter cette configuration.
index_global=Configuration Globale
index_virts=Serveurs Virtuel
index_defserv=Serveur par D閒aut
index_defdesc1=D閒init la configuration par d閒aut pour tout autre serveur virtuel, et qui proc鑔e  toute requ阾e qui n'est pas trait.
index_any=N'importe quel
index_default=D閒aut
index_auto=Automatique
index_virt=Serveur Virtuel
index_vname=Prise en main du serveur bas sur le nom $1 sur l'adresse $2.
index_vdef=Traite tout requ阾e qui ne sont pas prise en main par d'autre serveur virtuel
index_defdesc2=D閒init la configuration par d閒aut de tout autre serveur virtuel
index_vport=Traite toute requ阾e du port $1 qui ne sont pas prise en charge par tout autre serveur virtuel
index_vaddr=Traite toutes les requ阾es de l'adresse $1.
index_vaddrport=Traite toutes les requ阾es de l'adresse $1 sur le port $2.
index_type=Type
index_addr=Adresse
index_port=Port
index_name=Nom du Serveur
index_root=R閜ertoire Racine du Document
index_create=Cr閑r un nouveau serveur virtuel
index_return=liste des serveurs

cvirt_ecannot=Vous n'阾es pas autoris  cr閑r un serveur virtuel
cvirt_err=Impossible de cr閑r un serveur virtuel
cvirt_eaddr1=Aucune adresse entr閑
cvirt_eaddr2=$1 n'est pas une adresse valide
cvirt_eport=$1 n'est pas un port valide
cvirt_ename=$1 n'est pas un nom de serveur valide
cvirt_eroot1=Vous devez entrer le r閜ertoire racine du document
cvirt_eroot2=N'a pu cr閑r le r閜ertoire '$1' : $2

etype=Vous n'阾es pas autoris  閐iter les options de ce type
efailed=Impossible d'enregistrer '$1'
apache_apply=Appliquer tout Changement
apache_stop=Arr阾er Apache
apache_start=D閙arrer Apache
auth_return=contr鬺e de l'acc鑣

global_ecannot=Vous n'阾es pas autoris  閐iter les options globales
global_mime=Liste de types globaux MIME
global_mimedesc=Cliquer sur le type MIME de la liste ci-dessous pour l'閐iter ou utiliser le liens au bas de cette page pour ajouter un nouveau type
global_type=Type
global_ext=Extensions
global_add=Ajouter un nouveau type MIME
global_return=Liste de types MIME

mime_ecannot=Vous n'阾es pas autoris  閐iter un type MIME
mime_edit=蒬iter un Type MIME
mime_add=Ajouter un Type MIME
mime_header=Extensions de fichier pour les plans du type MIME
mime_type=Type MIME
mime_ext=Extensions
mime_err=Impossible d'enregistrer le type MIME
mime_etype=$1 n'est pas un type MIME valide

virt_ecannot=Vous n'阾es pas autoris  閐iter ce serveur virtuel
virt_title=Options du serveur virtuel
virt_header=Pour $1
virt_opts=Options du serveur virtuel
virt_conf=Configuration du Serveur
virt_show=Afficher toute Directive
virt_adddir=Cr閑r des Options par R閜ertoire, Fichier ou Endroit
virt_type=Type
virt_exact=Correspondance exacte
virt_re=Correspondance 'regexp'
virt_path=Chemin
virt_return=index du serveur
virt_euser=Vous n'阾es pas autoris  changer l'usager ou le groupe de ce serveur virtuel
virt_header2=$1 de $2

vserv_title=Configuration du Serveur Virtuel
vserv_ecannot=Vous ne pouvez pas 閐iter les adresses de ce serveur virtuel
vserv_addr=Adresse
vserv_port=Port
vserv_any=Tous
vserv_default=D閒aut
vserv_root=Racine du document
vserv_name=Nom du Serveur
vserv_delete=Supprimer le Serveur Virtuel
vserv_err=Impossible d'enregistrer le serveur virtuel
vserv_eaddr1=Aucune adresse entr閑
vserv_eaddr2=$1 n'est pas une adresse valide
vserv_eport=$1 n'est pas un port valide
vserv_eroot='$1' n'est pas un r閜ertoire racine de document valide
vserv_ename=$1 n'est pas un nom de serveur valide

show_title=Directives
show_edit=蒬iter toutes Directives d'Apache
show_ok=蒬iter

dir_title=Options par R閜ertoire
dir_header=Pour $1 sur $2
dir_show=Afficher toutes Directives
dir_opts=Options applicables  ..
dir_type=Type
dir_regexp='Regexp'?
dir_exact=Correspondance exacte
dir_re=Regexp correspondant
dir_path=Chemin
dir_return=index du r閜ertoire
dir_header2=$1 pour $2

type_0=Limites et Processus
type_1=Adresses et R閟eau
type_2=Modules d'Apache
type_3=Fichiers d'Audit
type_4=Contr鬺e de l'Acc鑣
type_5=Options des Documents
type_6=Types MIME
type_7=Acheminement des Erreurs
type_8=Usager et Groupe
type_9=Autre
type_10=Alias et Redirections
type_11=Programmes CGI
type_12=Indexation du R閜ertoire
type_13=Proxy
type_14=Options SSL
type_15=Perl
type_16=PHP

htaccess_title=Fichier d'Option Par R閜ertoire
htaccess_ecannot=Vous n'阾es pas autoris  閐iter un fichier htaccess
htaccess_desc=Des options par r閜ertoire additionnel peuvent 阾re sp閏ifier dans un fichier (usuellement <tt>.htaccess</tt>) dans chaque r閜ertoire.  Les options sont appliqu閑s qu' tous les fichiers dans ce r閜ertoire et ses sous-r閜ertoires, sauf s'ils ont eux-m阭es un fichier d'options.
htaccess_create=Cr閑r un Fichier d'Options
htaccess_find=Trouver un Fichier d'Options
htaccess_auto=Automatiquement
htaccess_from=Du r閜ertoire
htaccess_return=liste de tout fichier d'options
htaccess_edir='$1' n'est pas un r閜ertoire valide
htaccess_ecreate=Vous n'阾es pas autoris  cr閑r ce fichier d'options
htaccess_edelete=Vous n'阾es pas autoris  supprimer ce fichier d'options

htindex_ecannot=Vous n'阾es pas autoris  閐iter ce fichier d'option
htindex_title=Fichier d'Options par R閜ertoire
htindex_delete=Supprimer Fichier
htindex_show=Afficher toutes Directives
htindex_opts=Options Par R閜ertoire
htindex_file=Configuration Par Fichier
htindex_create=Cr閑r des Options par Fichier
htindex_regexp=Regexp?
htindex_exact=Correspondance exacte
htindex_re=Regexp correspondant
htindex_path=Chemin
htindex_header=Pour $1
htindex_header2=$1 pour le fichier d'options '$2'
htindex_return=index des options de fichiers

htfile_title=Options Par Fichier
htfile_header=Pour $1 dans $2
htfile_show=Afficher toutes Directives
htfile_apply=Options applicables  ..
htfile_header2=$1 pour $2

reconfig_title=Re-Configuration de tout Modules Connu
reconfig_ecannot=Vous n'阾es pas autoris  reconfigurer Apache
reconfig_ever=Impossible de lire la version de l'ex閏utable '$1' du serveur Apache.  V閞ifier votre <a href='$2'>configuration du module</a> pour vous assurer que le chemin est correct.
reconfig_desc1=Votre configuration d'Apache est chang閑, ou n'a pas encore 閠 examin par Webmin.  Ci-dessous ce trouve une liste de tout module d'Apache support par Webmin, avec ceux qui sont install閟 s閘ectionn閟.  Vous pouvez s閘ectionner ou enlever si la liste est incorrecte.
reconfig_desc2=Ci-dessous ce trouve une liste de tout module d'Apache support par Webmin, avec ceux qui sont install閟 s閘ectionn閟.  Si vous utilis le chargement dynamique, vous pouvez avoir besoin de s閘ectionner ceux qui sont charg dynamiquement.
reconfig_ok=Configurer

defines_title=Configuration de Param鑤re D閒init
defines_ecannot=Vous n'阾es pas autoris  閐iter un param鑤re d'Apache
defines_desc=Quand Apache est lanc, tous param鑤res peut 阾re pass avec l'argument de la ligne de commande <tt>-D</tt>.  Parce que ces param鑤res peuvent affecter les directives de vos fichiers de configuration, Webmin a besoin de savoir cet argument qui est pass  Apache quand il est d閙arr.  Entrer le param鑤re utilis sur votre syst鑝e dans le champ de texte  votre droite.

authu_ecannot='$1' n'est pas un fichier d'usager autoris
authu_title=Liste d'Usagers
authu_header=Dans le fichier '$1'
authu_header2=Usagers du fichier texte '$1'
authu_none=Aucun usager dans le fichier texte '$1'
authu_add=Ajouter un nouvel usager
authu_return=liste d'usager
authu_edit=蒬iter un Usager
authu_create=Cr閑r un Usager
authu_user=Nom d'usager
authu_pass=Mot de passe
authu_enc=Encrypt
authu_plain=Texte...
authu_err=Impossible d'enregistrer l'usager
authu_euser=Pas de nom d'usager entr
authu_euser2=Le nom d'usager ne peut contenir :
authu_edup=Un usager $1 existe d閖
authu_sync=Cette options ci-dessous vous permet de configurer Webmin pour automatiquement ajouter, mettre  jour ou supprimer des usagers de ce fichier de mot de passe quand un usager est ajouter, modifi ou supprimer dans le module <tt>Usagers et Groupes</tt>.
authu_screate=Ajouter un usager quand un usager Unix est ajout
authu_sdelete=Supprimer l'usager quand l'usager Unix est supprim
authu_smodify=Changer l'usager quand un usager Unix est chang

authg_ecannot='$1' n'est pas un fichier de groupe autoris
authg_title=Liste des Groupes
authg_header=Dans le fichier '$1'
authg_header2=Groupes du fichier texte '$1'
authg_none=Aucun groupe dans le fichier texte '$1'
authg_add=Ajouter un nouveau groupe
authg_return=liste des groupes
authg_edit=蒬iter un Groupe
authg_create=Cr閑r un Groupe
authg_group=Nom de groupe
authg_mems=Membres
authg_dont=Ne pas changer
authg_set=Changer pour
authg_err=Impossible d'enregistrer le groupe
authg_euser=Pas de nom de groupe entr
authg_euser2=Le nom de groupe ne peut contenir un :
authg_edup=Un groupe appel $1 existe d閖

stop_err=Vous n'阾es pas autoris  arr阾er Apache
stop_ecannot=Impossible d'arr阾er Apache
stop_epid=Impossible d'ouvrir le fichier de num閞o de processus '$1'
stop_epid2=Fichier de num閞o de processus '$1' invalide
stop_esig=Impossible d'envoyer le signal d'arr阾 au processus $1

start_err=Impossible de d閙arrer apache
start_ecannot=Vous n'阾es pas autoris  d閙arrer apache
start_ecmd=$1 rat : $2
start_eunknown=Raison inconnue

restart_err=Impossible d'appliquer tous changements
restart_epid=Ne peut ouvrir le fichier PID '$1'
restart_epid2=Fichier PID invalide '$1'
restart_esig=Impossible d'envoyer SIGHUP au processus $1
restart_eunknown=Raison inconnue

acl_virts=Serveurs virtuels que cet usager peut 閐iter
acl_global=Peut 閐iter les options globale?
acl_htaccess=.htaccess seulement
acl_create=Peut cr閑r un serveur virtuel?
acl_vuser=Peut changer les usagers d'un serveur virtuel?
acl_vaddr=Peut changer les adresses d'un serveur virtuel?
acl_pipe=Peut d関ier l'audit au programme?
acl_stop=Peut arr阾er et d閙arrer Apache?
acl_dir=Limite de fichier au r閜ertoire
acl_types=Type de Directive disponible
acl_all=Tous
acl_sel=S閘ectionn

 0707010001b8af000081a40000000000000002000000013ac0389700006da8000000200000000000000000000000000000001500000003reloc/apache/lang/hu  index_title=Apache Webkiszolg醠
index_eroot=A $1 Apache gy鰇閞k鰊yvt醨 nem l閠ezik. Ha van 謓nek telep韙ett Apache, akkor a k閞j黭 <a href='$2'>modulok be醠l韙醩a</a> szekci骲an adja meg a helyes 鷗vonalakat.
index_eserver=A futtatand $1 Apache kiszolgal f醞l nem l閠ezik. Ha van 謓nek telep韙ett Apache, akkor a k閞j黭 <a href='$2'>modulok be醠l韙醩a</a> szekci骲an adja meg a helyes 鷗vonalakat.
index_econf=A(z) $1 Apache konfigur醕i髎 f醞l nem l閠ezik. Ha van 謓nek telep韙ett Apache, akkor a k閞j黭 <a href='$2'>modulok be醠l韙醩a</a> szekci骲an adja meg a helyes 鷗vonalakat.
index_eports=Az 謓 Apache-醤ak be醠l韙醩ai egyn閘 t鯾b $1 direkt韛醫 tartalmaznak. A Webmin jelenlegi verzi骿a ezt a be醠l韙醩t m間 nem tudja helyesen lekezelni.
index_global=羖tal醤os be醠l韙醩ok
index_virts=Virtu醠is kiszolg醠髃
index_defserv=Alap閞telmezett kiszolg醠
index_defdesc1=Defini醠ja az alap閞telmezett be醠l韙醩ait az 鰏szes egy閎 virtu醠is kiszolg醠髇ak 閟 feldolgoz minden lekezeletlen k閞elmet.
index_any=Ak醨melyik
index_default=Alap閞telmezett
index_auto=Automatikus
index_virt=Virtu醠is kiszolg醠
index_vname=A(z) $1 n関-b醶is kiszolg醠 lekezel閟e a(z) $1 c韒en.
index_vdef=Az 鰏szes olyan k閞elem feldolgoz醩a, melyeket m醩 virtu醠is kiszolg醠髃 nem kezeltek le.
index_defdesc2=Meghat醨ozza az alap閞telmezett be醠l韙醩okat a t鯾bi virtu醠is kiszolg醠 sz醡醨a.
index_vport=Feldolgozza az 鰏szes $1 portra 閞kez k閞閟t, melyet m醩 virtu醠is kiszolg醠髃 nem kezeltek le.
index_vaddr=A(z) c韒re 閞kez 鰏szes k閞elem lekezel閟e
index_vaddrport=A(z) $1 c韒 $2 portj醨a 閞kez 鰏szes k閞elem lekezel閟e
index_type=T韕us
index_addr=C韒
index_port=Port
index_name=Kiszolg醠 neve
index_root=Dokumentum-gy鰇閞k鰊yvt醨
index_create=趈 virtu醠is kiszolg醠 l閠rehoz醩a
index_return=a kiszolg醠髃 list醞醜oz

cvirt_ecannot=謓nek nincs joga l閠rehozni virtu醠is kiszolg醠髏.
cvirt_err=A virtu醠is kiszolg醠 l閠rehoz醩a nem siker黮t.
cvirt_eaddr1=Nem lett c韒 megadva.
cvirt_eaddr2=A(z) '$1' nem 閞v閚yes c韒.
cvirt_eport=A(z) '$1' nem 閞v閚yes port.
cvirt_ename=A(z) '$1' nem 閞v閚yes kiszolg醠髇関.
cvirt_eroot1=A dokumentum-gy鰇閞k鰊yvt醨at musz醞 megadni.
cvirt_eroot2=A(z) '$1' k鰊yvt醨 l閠rehoz醩a nem siker黮t : $2

etype=謓nek nincs jogosult醩ga szerkeszteni ennek a t韕usnak az opci骾t.
efailed=A(z) $1 elment閟e nem siker黮t
apache_apply=V醠toztat醩ok 閞v閚yes韙閟e
apache_stop=Apache le醠l韙醩a
apache_start=Apache elind韙醩a
auth_return=a hozz醘閞閟-vez閞l閟hez

global_ecannot=謓nek nincs jogosult醩ga szerkeszteni az 醠tal醤os opci髃at.
global_mime=羖tal醤os MIME-t韕uslista
global_mimedesc=A szerkeszteshez kattintson egy list醔an szerepl MIME-t韕usra vagy 鷍 t韕us hozz醓d醩醜oz haszn醠ja a lap alj醤 l関 linket.
global_type=T韕us
global_ext=Kiterjeszt閟
global_add=趈 MIME-t韕us hozz醓d醩a
global_return=MIME-t韕usok

mime_ecannot=謓nek nincs jogosults醙a szerkeszteni a MIME-t韕usokat.
mime_edit=MIME-t韕us szerkeszt閟e
mime_add=MIME-t韕us hozz醓d醩a
mime_header=F醞ln関 kiterjeszt閟ek a MIME-t韕ust閞k閜hez
mime_type=MIME-t韕us
mime_ext=Kiterjeszt閟ek
mime_err=A MIME-t韕us elment閟e nem siker黮t
mime_etype=A(z) '$1' 閞v閚ytelen MIME-t韕us.

virt_ecannot=謓 nem tudja szerkeszteni ezt a virtu醠is kiszolg醠髏.
virt_title=Virtu醠is kiszolg醠 opci骾
virt_header=$1 r閟z閞e
virt_opts=Virtu醠is kiszolg醠髃 opci骾
virt_conf=Kiszolg醠 be醠l韙醩a
virt_show=Direkt韛醟 megmutat醩a
virt_adddir=K鰊yvt醨ank閚ti, f醞lonk閚ti elhelyezked閟 szerinti kapcsol髃 l閠rehoz醩a
virt_type=T韕us
virt_exact=Pontos egyez閟
virt_re=Regexp egyez閟
virt_path=趖vonal
virt_return=a kiszolg醠 index閔ez
virt_euser=謓nek nincs jogosults醙a megv醠toztatni a felhaszn醠髏 vagy csoportot enn閘 a virtu醠is kiszolg醠髇醠.
virt_header2=$1 for $2

vserv_title=Virtu醠is kiszolg醠 be醠l韙醩ai
vserv_ecannot=謓 nem tudja szerkeszteni ennek a virtu醠is kiszolg醠髇ak a c韒閠.
vserv_addr=C韒
vserv_port=Port
vserv_any=Ak醨mi
vserv_default=Alap閞telmezett
vserv_root=Dokumentum-gy鰇閞k鰊yvt醨
vserv_name=Kiszolg醠 neve
vserv_delete=Virtu醠is kiszolg醠 t鰎l閟e
vserv_err=A virtu醠is kiszolg醠 elment閟e nem siker黮t.
vserv_eaddr1=Nem lett c韒 megadva.
vserv_eaddr2=A(z) '$1' 閞v閚ytelen c韒.
vserv_eport=A(z) '$1' 閞v閚ytelen port.
vserv_eroot=A(z) '$1' 閞v閚ytelen dokumentum-gy鰇閞k鰊yvt醨.
vserv_ename=A(z) '$1' 閞v閚ytelen kiszolg醠髇関.

show_title=Direkt韛醟
show_edit=Apache direkt韛a szerkeszt閟e
show_these=Direkt韛醟 szerkeszt閟e k閦zel
show_ok=Szerkeszt

manual_header=Haszn醠ja az al醔bi sz鰒egdobozokat a(z) $1 Apache-direkt韛醝nak be醠l韙醩醜oz, hogy 閞v閚yes韙se azokat ezen a virtu醠is kiszolg醠髇, k鰊yvt醨on vagy f醞lokon.

dir_title=K鰊yvt醨ank閚ti kapcsol髃
dir_header=$1 nek $2
dir_show=Direkt韛醟 megmutat醩a
dir_opts=Options apply to ..
dir_type=T韕us
dir_regexp=Regexp?
dir_exact=Pontos egyez閟
dir_re=Regexp egyez閟
dir_path=趖vonal
dir_return=a k鰊yvt醨 indexhez
dir_header2=$1 nek $2

type_0=Processzek 閟 Limitek
type_1=H醠髗at 閟 C韒ek
type_2=Apache modulok
type_3=Napl骹醞lok
type_4=Hozz醘閞閟-vez閞l閟
type_5=Dokumentum opci髃
type_6=MIME-t韕usok
type_7=Hibakezel閟
type_8=Felhaszn醠髃 閟 Csoportok
type_9=Egy閎
type_10=羖nevek 閟 羣ir醤y韙醩ok
type_11=CGI programok
type_12=K鰊yvt醨indexel閟
type_13=Proxyz醩
type_14=SSL opci髃
type_15=Perl
type_16=PHP

htaccess_title=K鰊yvt醨ank閚ti opci骹醞lok
htaccess_ecannot=謓nek nincs jogosults醙a a .htaccess f醞lok szerkeszt閟閔ez.
htaccess_desc=Minden egyes k鰊yvt醨ban tov醔bi k鰊yvt醨ank閚ti kapcsol髃 adhat髃 meg egy f醞lban (醠tal醔an ezt <tt>.htaccess</tt>-nek h韛j醟). Az opci髃 a k鰊yvt醨 minden f醞lj醨a 閟 alk鰊yvt醨醨a vonatkoznak, kiv関e ha azokhoz egy m醩ik opci骹醞l tartozik.
htaccess_create=Opci骹醞l l閠rehoz醩a
htaccess_find=Opci骹醞lok keres閟e
htaccess_auto=Automatikus
htaccess_from=K鰊yvt醨ban
htaccess_return=az opci骹醞lok list醞醜oz
htaccess_edir=A(z) '$1' egy 閞v閚ytelen k鰊yvt醨.
htaccess_ecreate=謓nek nincs jogosults醙a l閠rehozni ezt az opci骹醞lt.
htaccess_edelete=謓nek nincs jogosults醙a t鰎鰈ni ezt az opci骹醞lt.

htindex_ecannot=謓nek nincs jogosults醙a szerkeszteni ezt az opci骹醞lt.
htindex_title=K鰊yvt醨ank閚ti opci骹醞l
htindex_delete=F醞l t鰎l閟e
htindex_show=Direkt韛醟 megmutat醩a
htindex_opts=K鰊yvt醨ank閚ti opci髃
htindex_file=F醞lonk閚ti konfigur醕i
htindex_create=F醞lonk閚ti opci髃 l閠rehoz醩a
htindex_regexp=Regexp?
htindex_exact=Pontos egyez閟
htindex_re=Match regexp
htindex_path=趖vonal
htindex_header=$1 r閟z閞e
htindex_header2=$1 a $2 opci骹醞l r閟z閞e
htindex_return=opci骹醞lok index閔ez

htfile_title=F醞lonk閚ti opci髃
htfile_header=$1 r閟z閞e $2 ben
htfile_show=Direkt韛醟 megmutat醩a
htfile_apply=Kapcsol髃 elfogad醩a a...
htfile_header2=$1 a(z) $2 r閟z閞e

reconfig_title=Az ismert modulok 鷍rakonfigur醠醩a
reconfig_ecannot=謓nek nincs jogosults醙a az Apache 鷍rakonfigur醠醩醜oz.
reconfig_ever=A(z) $1 futtathat Apache kiszolg醠 verzi髎z醡醤ak lek閞閟e nem siker黮t. Ellen鮮izze a <a href='$2'>modul konfigur醕i</a>t, hogy biztos legyen abban, hogy ez a korrekt 鷗vonal.
reconfig_desc1=Az 謓 Apache be醠l韙醩a megv醠tozott, vagy a Webmin m間 nem vizsg醠ta meg. Al醔b tal醠hat egy lista az 鰏szes, Webmin 醠tal t醡ogatott Apache-modulr髄, melyek k鰖黮 a telep韙ettek be vannak jel鰈ve. 謓 akkor is kiv醠aszthat modulokat, ha a lista hib醩, vagy nem teljes.
reconfig_desc2=Al醔b tal醠hat egy lista a Webmin 醠tal t醡ogatott Apache-modulokr髄, 閟 melyek k鰖黮 a jelenleg telep韙ettek ki vannak v醠asztva. Ha dinamikusan bet鰈t鮠 modulokat haszn醠, akkor lehets間es, hogy ki kell v醠asztania azokat is, amelyek dinamikusan fognak bet鰈t鮠ni.
reconfig_ok=Be醠l韙

defines_title=Defini醠t param閠erek szerkeszt閟e
defines_ecannot=謓nek nincs jogosults醙a szerkeszteni a httpd 閞telmez閟eit.
defines_desc=Amikor az Apache indul醩akor param閠erek adhat髃 醫 a <tt>-D</tt> parancssori kapcsol髒al. Mivel ezek a param閠erek befoly醩olj醟 a konfigur醕i髎 f醞lokban megadott direkt韛醟at, a Webminnek sz黭s間e van azokra, amelyeket az Apache indul醩kor megkap. Adja meg a rendszer閚 haszn醠t param閠ereket a jobboldali sz鰒egmez鮞en.

authu_ecannot=A(z) '$1' nem egy enged閘yezett felhaszn醠骾 sz鰒egf醞l.
authu_title=Felhaszn醠髄ista
authu_header=A(z) $1 f醞lban
authu_header2=A(z) $1 sz鰒egf醞lb髄 vett felhaszn醠髃
authu_none=Nincs felhaszn醠 a(z) $1 sz鰒egf醞lban.
authu_add=趈 felhaszn醠 hozz醓d醩a
authu_return=a felhaszn醠髃 list醞醜oz
authu_edit=Felhaszn醠 szerkeszt閟e
authu_create=Felhaszn醠 l閠rehoz醩a
authu_user=Felhaszn醠髇関
authu_pass=Jelsz
authu_enc=Titkos韙ott...
authu_plain=S韒a sz鰒eg..
authu_err=A felhaszn醠 elment閟e nem siker黮t.
authu_euser=Nem lett felhaszn醠髇関 megadva
authu_euser2=A felhaszn醠髇関 ilyet nem tartalmazhat :
authu_edup=A(z) '$1' felhaszn醠 m醨 l閠ezik.
authu_sync=Az al醔bi kapcsol髃kal be醠l韙hatja a Webmint, hogy automatikusan l閠rehozzon, friss韙sen vagy t鰎鰈j鰊 egy felhaszn醠髏 ebb鮨 a jelsz骹醞lb髄, ha az l閠rej鰐t, m骴osult vagy t鰎l鮠鰐t a <tt>Felhaszn醠髃 閟 Csoportok</tt> modulban.
authu_screate=Hozz醓d egy felhaszn醠髏, ha egy Unix felhaszn醠 l閠rej鰐t
authu_sdelete=T鰎鰈i a felhaszn醠髏, ha a Unix felhaszn醠 t鰎l鮠鰐t
authu_smodify=Megv醠toztatja a felhaszn醠髏, ha a Unix felhaszn醠 v醠tozott

authg_ecannot=A(z) '$1' nem egy enged閘yezett csoport sz鰒egf醞l.
authg_title=Csoportlista
authg_header=A(z) $1 f醞lban
authg_header2=A(z) $1 sz鰒egf醞lb髄 vett csoportok
authg_none=Nincs csoport a(z) $1 sz鰒egf醞lban
authg_add=趈 csoport hozz醓d醩a
authg_return=a csoportok list醞醜oz
authg_edit=Csoport szerkeszt閟e
authg_create=Csoport l閠rehoz醩a
authg_group=Csoport neve
authg_mems=Tagok
authg_dont=Nem v醠toztat
authg_set=Be醠l韙..
authg_err=A csoport elment閟e nem siker黮t.
authg_euser=Nem lett csoportn関 megadva.
authg_euser2=A csoportn関 ilyet nem tartalmazhat :
authg_edup=A(z) '$1' csoport m醨 l閠ezik.

stop_err=Az Apache le醠l韙醩a nem siker黮t
stop_ecannot=謓nek nincs jogosults醙a az Apache le醠l韙醩醜oz
stop_epid=A(z) $1 PID f醞l megnyit醩a nem siker黮t.
stop_epid2=A(z) $1 閞v閚ytelen PID f醞l.
stop_esig=A SIGHUP jelz閟 k黮d閟e a $1 processznek sikertelen volt.

start_err=Az Apache elind韙醩a nem siker黮t.
start_ecannot=謓nek nincs jogosults醙a elind韙ani az Apache-ot.
start_ecmd=$1 sikertelen : $2
start_eunknown=Ismeretlen ok.

restart_err=A v醠toztat醩ok 閞v閚yes韙閟e nem siker黮t.
restart_epid=A(z) $1 PID f醞l megnyit醩a nem siker黮t.
restart_epid2=A(z) $1 閞v閚ytelen PID f醞l.
restart_esig=A SIGHUP jelz閟 k黮d閟e a $1 processznek sikertelen volt.
restart_eunknown=Ismeretlen ok.

acl_virts=Ez a felhaszn醠 virtu醠is kiszolg醠髃at tud szerkeszteni
acl_global=羖tal醤os kapcsol髃 szerkeszt閟e?
acl_htaccess=csak .htaccess
acl_create=L閠rehozhat virtu醠is kiszolg醠髃at?
acl_vuser=Tudja v醠toztatni a virtu醠is kiszolg醠 felhaszn醠骾t?
acl_vaddr=Tudja v醠toztatni a virtu醠is kiszolg醠 c韒閠?
acl_pipe=Lehessen 醫pipe-olni a napl髗醩t programok fel?
acl_stop=Le tudja 醠l韙ani, el tudja ind韙ani az Apache-ot?
acl_dir=F醞lok korl醫oz醩a k鰊yvt醨akra
acl_types=El閞het direkt韛at韕usok
acl_all=Mindet
acl_sel=Kiv醠asztottakat...

core_maxconc=Maxim醠is konkurens lek閞閟ek
core_maxkeep=Maxim醠is 閘etbentart醩ok (keepalives) kapcsolatonk閚t
core_maxreq=Maxim醠is lek閞閟ek szerverprocesszenk閚t
core_minspare=Minim醠is tartal閗kiszolg醠 processzek
core_maxspare=Maxim醠is tartal閗kiszolg醠 processzek
core_initial=Kezd kiszolg醠 processzek
core_emaxconc=A maxim醠is konkurens lek閞閟ek sz醡醤ak eg閟znek kell lennie.
core_emaxkeep=A kapcsolatonk閚ti maxim醠is 閘etbentart醩ok (keepalives) sz醡醤ak eg閟znek kell lennie.
core_emaxreq=A szerverprocesszenk閚ti maxim醠is lek閞閟ek sz醡醤ak eg閟znek kell lennie.
core_eminspare=A tartal閗kiszolg醠髃 minim醠is sz醡醤ak eg閟znek kell lennie.
core_emaxspare=A tartal閗kiszolg醠髃 maxim醠is sz醡醤ak eg閟znek kell lennie.
core_einitial=A kezd kiszolg醠 processzek sz醡醤ak eg閟znek kell lennie.
core_default=Alap閞telmezett
core_cpulimit=CPU-kihaszn醠ts醙 korl醫
core_memlimit=Mem髍iakihaszn醠ts醙-korl醫
core_proclimit=Processzkorl醫
core_cpulimit2=CPU-kihaszn醠ts醙 korl醫
core_memlimit2=mem髍iakihaszn醠ts醙-korl醫
core_proclimit2=processzkorl醫
core_slimit=K鰊ny korl醫
core_hlimit=Kem閚y korl醫
core_eslimit=$1 閞v閚ytelen k鰊ny $2
core_ehlimit=$1 nem 閞v閚yes kem閚y $2
core_dport=Alap閞telmezett port:
core_address=C韒
core_port=Port
core_listen=C韒ek 閟 portok figyel閟e
core_eaddress=A(z) '$1' 閞v閚ytelen c韒
core_eport=A(z) '$1' 閞v閚ytelen port
core_eoneaddr=謓nek legal醔b egy figyelend c韒et meg kell meghat醨oznia
core_edefport=蓃v閚ytelen alap閞telmezett port
core_multi=T鯾bsz鰎閟 lek閞閟ek kapcsolatonk閚t
core_ekeep=A(z) '$1' nem 閞v閚yes sz醡 az 閘etbentart醩ok (keepalives) meghat醨oz醩醨a.
core_ltwice=Ut醤an閦 k閠szer
core_keeptout=蒷etbentart醩 id鮰鷏l閜閟e
core_lqueue=Sorban醠l醩 hossz醤ak figyel閟e
core_bufsize=TCP k黮閟i buffer m閞ete
core_admin=Kiszolg醠 adminj醤ak email c韒e
core_rtout=Lek閞閟 id鮰鷏l閜閟e
core_bhostname=Use hostname supplied by browser
core_lookup=Lookup hostnames
core_useauth=Do RFC1413 user lookups
core_altnames=Alternate virtual server names
core_hostname=Kiszolg醠 hosztneve
core_virtaddr=Addresses for name virtual servers
core_ekeeptout=Keep-alive timeout must be an integer
core_elqueue=Listen queue length must be an integer
core_ebufsize=TCP send buffer size must be an integer
core_ertout=Request timeout must be an integer
core_ehostname=Invalid server hostname
core_osdefault=OS Alap閞telmezett
core_noadmin=Nem
core_auto=Automatic
core_ekeep='$1' is not a valid number of keepalives
core_evirtaddr='$1' is not a valid address for name virtual servers
core_auth=Authentication options
core_mime=MIME types and encodings
core_indexing=Indexing and index files
core_hostacc=Hostname access control
core_diropts=Directory options
core_filesel=Selected below...
core_execcgi=Execute CGI programs
core_flink=Follow symbolic links
core_inclexe=Server-side includes and execs
core_incl=Server-side includes
core_genind=Generate directory indexes
core_genmview=Generate Multiviews
core_flinkmatch=Follow symbolic links if owners match
core_optsel=Selected below..
core_enable=Enable
core_disable=Disable
core_optfile=Per-directory options file
core_overr=Options file can override..
core_genmd5=Generate MD5 digests
core_docroot=Document root directory
core_eoptfile=Only one options file is allowed
core_enoopt=Nem options file entered
core_enodoc=Document root '$1' does not exist
core_sigemail=Email address
core_signame=Server name
core_signone=Nem
core_virtpath=Virtual server path
core_footer=Error message footer
core_evirtpath=Virtual server path must start with a /
core_defmime=Alap閞telmezett MIME Type
core_edefmime=Alap閞telmezett MIME type must be in the form type/subtype
core_realm=Authentication realm name
core_authtype=Authentication type
core_authall=All access controls
core_authany=Any access control
core_authlog=Restrict access by login
core_satisfy=Clients must satisfy
core_salone=Standalone
core_inetd=Futtat醩 az inetd-b鮨
core_verosmod=Version and OS and modules
core_veros=Version and OS
core_ver=Csak verzi
core_coredir=Core dump directory
core_lockfile=Server lock file
core_maxbody=Maximum request body size
core_maxhead=Maximum headers in request
core_maxshead=Maximum request header size
core_maxline=Maximum request line size
core_pid=Kiszolg醠 PID f醞lja
core_memsco=Shared memory scoreboard file
core_exec=Server execution
core_header=Server HTTP header
core_ecore=Invalid core dump directory
core_elock=Invalid lock file
core_ebody=Invalid request body size
core_ehead=Invalid number of headers
core_eshead=Invalid header size
core_eline=Invalid request line size
core_epid=Invalid PID file
core_escore=Invalid scoreboard file
core_sroot=Server root
core_group= Csoportn関
core_gid= Csoport ID
core_user= Felhaszn醠骾 n関
core_uid= Felhaszn醠 ID
core_asgroup=Run as Unix group
core_asuser=Run as Unix user
core_euid='$1' is not a valid group ID
core_egid='$1' is not a valid user ID
core_tourl= Goto URL..
core_mesg= Show message..
core_error=Error code
core_resp=Response
core_urlmsg=URL or message
core_custom=Custom error responses
core_eerror='$1' is not a valid error code
core_eurl='$1' is not a valid URL
core_syslog=System Log
core_filelog=F醞l
core_proglog=Program 
core_errfile=Error log file
core_logto=Error log to
core_efilelog=Invalid error log file
core_edirlog=Error log file is not under the allowed directory
core_efilemiss=Missing error log file
core_eprogmiss=Missing error log program
core_eperm=You are not allowed to pipe logs to programs
core_allmod=All modules
core_selmod=Selected modules..
core_actmod=Active modules

core_option=Opci
core_setdir=Set for directory
core_merge=Merge with parent

mod_negotiation_cache=Cache content-negotiated documents?
mod_negotiation_pri=Language priority for multi-views
mod_negotiation_def=Alap閞telmezett
mod_negotiation_epri=Missing language priorities
mod_cgi_logname=CGI Script log
mod_cgi_none=Nem
mod_cgi_elogname=Invalid CGI script log file
mod_cgi_logsize=Maximum CGI log size
mod_cgi_default=Alap閞telmezett
mod_cgi_elogsize=CGI log size must be an integer
mod_cgi_post=Maximum logged post data size
mod_cgi_epost=Post data size must be an integer
mod_cgi_eunder=CGI script log is not under the allowed directory
mod_alias_efrom='$1' is not a valid $2
mod_alias_edest='$1' is not a valid $2 destination
mod_alias_alias=Document directory aliases
mod_alias_regexp=Regexp document directory aliases
mod_alias_redir=URL redirects
mod_alias_rredir=Regexp URL redirects
mod_alias_tredir=Temporary URL redirects
mod_alias_predir=Permanent URL redirects
mod_alias_cgi=CGI directory aliases
mod_alias_rcgi=Regexp CGI directory aliases
mod_alias_estatus='$1' is not a valid status
mod_proxy_proxy=Act as proxy server?
mod_proxy_req=Requests
mod_proxy_forw=Forward to
mod_proxy_all=All
mod_proxy_match=Matching..
mod_proxy_pass=Requests to pass to another proxy
mod_proxy_local=Local URL path
mod_proxy_remote=Remote URL
mod_proxy_map=Map local to remote URLs
mod_proxy_block=Block requests to domains
mod_proxy_eblock=Nem domains given to block
mod_proxy_type=Type
mod_proxy_noproxy=Nem proxy for..
mod_proxy_nopass=Don't pass requests to another proxy for
mod_proxy_nodomain=Domain for requests with no domain
mod_proxy_none=Nem
mod_proxy_enodomain=Invalid default domain
mod_proxy_connect=Ports to which CONNECT is allowed
mod_proxy_default=Alap閞telmezett
mod_proxy_econnect=Invalid CONNECT ports
mod_proxy_dir=Cache directory
mod_proxy_edir=Invalid cache directory name
mod_proxy_size=Cache size
mod_proxy_esize=Invalid cache size
mod_proxy_garbage=Cache garbage collection interval
mod_proxy_nogc=Never
mod_proxy_hours=hours
mod_proxy_egarbage=Invalid cache garbage collection interval
mod_proxy_maxexp=Cached file maximum expiry time
mod_proxy_emaxexp=Invalid cached file maximum expiry time
mod_proxy_expfac~=Cached file expiry time factor
mod_proxy_eexpfac=Invalid cached file expiry time factor
mod_proxy_levels=Cache directory levels
mod_proxy_elevels=Invalid number of cache directory levels
mod_proxy_length=Cache directory name length
mod_proxy_elength=Invalid cache directory name length
mod_proxy_defexp=Cache default expiry time
mod_proxy_edefexp=Invalid default expiry time
mod_proxy_finish=Finish and cache transfer after
mod_proxy_efinish=Invalid transfer percentage
mod_proxy_nocache=Domains not to cache
mod_proxy_none2=Nem
mod_proxy_enocache=Nem domains not to cache given
mod_proxy_erequest='$1' is not a valid request
mod_proxy_epurl='$1' is not a valid proxy URL
mod_proxy_elurl='$1' is not a valid local URL path
mod_proxy_erurl='$1' is not a valid remote URL
mod_proxy_eip='$1' is not a valid IP address
mod_proxy_ehost='$1' is not a valid hostname
mod_proxy_edomain='$1' is not a valid domain
mod_proxy_enet='$1' is not a valid network
mod_proxy_enetbit='$1' is not a valid network/bits pair
mod_proxy_eunder=cache directory is not under the allowed directory
mod_proxy_rurl=T醰oli URL
mod_proxy_lurl=Helyi URL 鷗vonala
mod_proxy_headers=Map remote Location: headers to local
mod_log_agent_default=Alap閞telmezett
mod_log_agent_file=F醞l..
mod_log_agent_program=Program..
mod_log_agent_log=Browser log file
mod_log_agent_efile=$1 is not a valid agent log filename
mod_log_config_common=Common Log Format
mod_log_config_named=Named log formats
mod_log_config_nick=Becen関
mod_log_config_format=Format
mod_log_config_deflog=Alap閞telmezett log format
mod_log_config_default=Alap閞telmezett
mod_log_config_write=Write to
mod_log_config_filprog=F醞l vagy program
mod_log_config_file=F醞l..
mod_log_config_program=Program..
mod_log_config_log=Access log files
mod_log_config_enick='$1' is not a valid nickname
mod_log_config_eformat=Nem log format given for $1
mod_log_config_enofilprog=Missing log filename or program
mod_log_config_efilprog='$1' is not an allowed log filename or program
mod_log_config_eifset='If set' option cannot be used with the default log format
mod_log_referer_default=Alap閞telmezett
mod_log_referer_file=File..
mod_log_referer_program=Program..
mod_log_referer_log=Referer log file
mod_log_referer_nolog=Don't log references from
mod_log_referer_elog=$1 is not a valid referer log filename
mod_log_referer_edir=referer log is not under the allowed directory
mod_status_msg=Display extended status information
mod_mime_ext=Kiterjeszt閟ek
mod_mime_xtype=Extra MIME types
mod_mime_mtype=MIME-t韕us
mod_mime_chandl=Content handlers
mod_mime_cencs=Content encodings
mod_mime_cenc=Content encoding
mod_mime_clangs=Content languages
mod_mime_clang=Content language
mod_mime_defmime=Treat all files as MIME type
mod_mime_real=Val骴i t韕us
mod_mime_etype=Invalid MIME type
mod_mime_pass=Pass all files to handler
mod_mime_file=MIME types file
mod_mime_default=Alap閞telmezett
mod_mime_ignhand=Ignore handlers for extensions
mod_mime_none=Nem
mod_mime_xchars=Extra character sets
mod_mime_einvalid='$1' is not a valid $2
mod_mime_19=Nem extensions given for $1 $2

mod_mime_type=T韕us
mod_mime_handler=Kezel
mod_mime_enc=K骴ol醩
mod_mime_lang=Nyelv
mod_mime_chars=Karaktert醔la

mod_setenvif_header=Header
mod_setenvif_match=Match
mod_setenvif_case=Match case
mod_setenvif_var=Variable
mod_setenvif_value=Value
mod_setenvif_txt=Variables set based on request headers
mod_setenvif_eheader=Invalid request header '$1'
mod_setenvif_eregex=Invalid regular expression '$1'
mod_setenvif_evar=Invalid variable name '$1'
mod_userdir_default=Alap閞telmezett
mod_userdir_all=All users accessible
mod_userdir_except=All users except
mod_userdir_dir=User WWW directory
mod_imap_action=Action on incorrect use of imagemaps
mod_imap_default=Alap閞telmezett
mod_imap_godefurl=Go to default URL
mod_imap_form=Show formatted menu
mod_imap_semiform=Show semi-formatted menu
mod_imap_unform=Show unformatted menu
mod_imap_disperr=Display server error
mod_imap_donoth=Do nothing
mod_imap_goimap=Go to imagemap URL
mod_imap_goref=Go to referring URL
mod_imap_gourl=Go to URL...
mod_imap_defact=Alap閞telmezett action for imagemaps
mod_imap_default2=Alap閞telmezett
mod_imap_root=Server root
mod_imap_imapurl=Imagemap URL
mod_imap_refurl=Referring URL
mod_imap_url=URL...
mod_imap_defbase=Alap閞telmezett base for imagemaps
mod_imap_eurl='$1' is not a valid URL
mod_speling_autocorr=Automatically correct misspelled URLs?
mod_speling_default=Alap閞telmezett
mod_actions_mime=Handler / MIME type
mod_actions_cgiurl=CGI script URL
mod_actions_mimecgi=Handler or MIME type CGI actions
mod_actions_http=HTTP method
mod_actions_cgi=CGI script
mod_actions_httpcgi=HTTP method CGI actions
mod_actions_emime='$1' is not a valid handler or MIME type
mod_actions_ecgi='$1' is not a valid CGI script
mod_actions_enometh=Nem method chosen for CGI script '$1'
mod_include_incl=Process includes on files with execute bit?
mod_include_set=Igen and set last-modified date
mod_include_default=Alap閞telmezett
mod_dir_txt=Directory index files
mod_autoindex_default=Alap閞telmezett
mod_autoindex_asc=Ascending
mod_autoindex_descend=Descending
mod_autoindex_name=N関
mod_autoindex_date=D醫um
mod_autoindex_size=M閞et
mod_autoindex_desc=Le韗醩
mod_autoindex_sort=Sort directory index by
browsermatch_regexp=Browser regex
browsermatch_case=Match case?
browsermatch_var=V醠toz be醠l韙醩a
browsermatch_value=蓃t閗
browsermatch_txt=Variables set based on browser type
browsermatch_evar=Invalid variable name '$1'
autoindex_fname=F醞ln関
autoindex_mime=MIME type
autoindex_enc=K骴ol醩
autoindex_icon=Ikon
autoindex_alt=Alt text
autoindex_match=Match by
autoindex_fte=Filenames, types or encodings
autoindex_diricon=Directory index icons
autoindex_deficon=Directory index default icon
autoindex_default=Alap閞telmezett
autoindex_edeficon=Invalid default icon URL
autoindex_diralt=Directory index ALT tags
autoindex_desc=Description
autoindex_fnames=Filenames
autoindex_dirdesc=Directory index descriptions
autoindex_fancy=Display fancy directory indexes
autoindex_htmltitle=Display HTML title as description
autoindex_20=Icon height", "Icon width
autoindex_sort=Allow user sorting of columns
autoindex_fildesc=Show file descriptions
autoindex_htags=Output HTML header tags
autoindex_mtime=Show last modified times
autoindex_size=Show file sizes
autoindex_iconlink=Include icon in link
autoindex_fwidth=F醞ln関 sz閘ess間e
autoindex_dwidth=Le韗醩 sz閘ess間e
autoindex_dirfirst=Display directories first
autoindex_default2=Alap閞telmezett
autoindex_select=Selected below...
autoindex_default3=Alap閞telmezett
autoindex_pixels=pixelek
autoindex_chars=karakterek
autoindex_diropt=Directory index options
autoindex_dirhead=Directory index header file
autoindex_default4=Alap閞telmezett
autoindex_edirhead=Invalid index header filename
autoindex_dirfoot=Directory index footer file
autoindex_edirfoot=Invalid index footer filename
autoindex_ignore=Files to ignore in directory index
autoindex_eiconurl='$1' is not a valid icon url
autoindex_emiss=Missing $1 for $2
autoindex_emissquot=Missing $1 for '$2'
autoindex_enodesc=Nem description for file $1
autoindex_enofile=Nem files for description '$1'
autoindex_eiconsize='$1' is not a valid icon size
autoindex_ewidth='$1' is not a valid width
mod_mime_magic_file=MIME magic numbers file
mod_mime_magic_none=Nem
mod_mime_magic_efile=Invalid MIME magic numbers filename
mod_env_var=V醠toz
mod_env_value=蓃t閗
mod_env_pass=Pass through
mod_env_clear=T鰎鰈
mod_env_set=Be醠l韙..
mod_env_cgivar=Environment variables for CGI scripts
mod_env_passall=Pass all environment variables to CGIs
mod_env_default=Alap閞telmezett
mod_env_evar='$1' is not a valid variable name
mod_env_evalue='$1' is not a valid variable value
mod_access_order=Access checking order:
mod_access_denyallow=Deny then allow
mod_access_allowdeny=Allow then deny
mod_access_mutual=Mutual failure
mod_access_default=Alap閞telmezett
mod_access_action=Action
mod_access_cond=Condition
mod_access_all=All requests
mod_access_host=Request from host...
mod_access_ip=Request from IP..
mod_access_pip=Request from partial IP..
mod_access_mask=Request from net/netmask..
mod_access_cidr=Request from net/CIDR..
mod_access_var=If variable is set..
mod_access_restr=Restrict access
mod_access_eip='$1' is not a valid IP address
mod_access_epip='$1' is not a valid partial IP address
mod_access_emask='$1' is not a valid network/netmask pair
mod_access_ecidr='$1' is not a valid network/CIDR pair
mod_access_evar='$1' is not a valid variable name
mod_auth_ufile=User text file
mod_auth_uedit=Felhaszn醠髃 szerkeszt閟es
mod_auth_gfile=Group text file
mod_auth_gedit=Csoportok szerkeszt閟e
mod_auth_pass=Pass failures to next module?
mod_auth_auth=Text file authentication
mod_auth_eudir=User text file is not under the allowed directory
mod_auth_egdir=Group text file is not under the allowed directory
mod_cern_meta_process=Process header metafiles
mod_cern_meta_dir=Subdirectory for header metafiles
mod_cern_meta_default=Alap閞telmezett
mod_cern_meta_edir=Invalid metafile subdirectory name
mod_cern_meta_suffix=File suffix for header metafiles
mod_cern_meta_default2=Alap閞telmezett
mod_cern_meta_esuffix=Invalid metafile suffix
0707010001b8b0000081a40000000000000002000000013ac03897000027e8000000200000000000000000000000000000001500000003reloc/apache/lang/it  index_title=Apache Webserver
index_eroot= La directory root di Apache $1 non esiste. Se Apache &egrave; installato, correggi la <a href='$2'>configurazione del modulo</a> per impostare i percorsi corretti.
index_eserver=Il file eseguibile di Apache server $1 non esiste. Se hai Apache installato, correggi la <a href='$2'>configurazione del modulo</a> per usare il percorso corretto.
index_econf=Il file di configurazione di Apache $1 non esiste. Se hai Apache installato, correggi la <a href='$2'>configurazione del modulo</a> per usare il percorso corretto.
index_eports=La tua configurazione di Apache contiene pi di 1 direttive $1. La versione corrente di Webmin non pu gestire propriamente questa impostazione.
index_global=Configurazione Globale
index_virts=Server Virtuali
index_defserv=Default Server
index_defdesc1=Definisce le impostazioni di default per tutti gli altri server virtuali, e si prende in carico ogni richiesta non gestita.
index_any=Qualsiasi
index_default=Default
index_auto=Automatico
index_virt=Server Virtuale
index_vname=Gestisce il name-based server $1 all'indirizzo $2.
index_vdef=Elabora tutte le richieste non gestite da altri server virtuali.
index_defdesc2=Definisce le impostazioni di default per tutti gli altri server virtuali.
index_vport=Elabora tutte le richieste alla porta $1 non gestite da altri server virtuali.
index_vaddr=Gestisce tutte le richieste all'indirizzo $1.
index_vaddrport=Gestisce tutte le richieste all'indirizzo $1 nella porta $2.
index_type=Tipo
index_addr=Indirizzo
index_port=Porta
index_name=Nome del Server 
index_root=Document Root
index_create=Crea un nuovo Server Virtuale
index_return=lista server

cvirt_ecannot=Non hai i permessi per creare un server virtuale
cvirt_err=Creazione del server virtuale fallita
cvirt_eaddr1=Non hai inserito l'indirizzo
cvirt_eaddr2='$1' non  un indirizzo valido
cvirt_eport='$1' non  una porta valida
cvirt_ename='$1' non  uno username valido
cvirt_eroot1=Devi inserire una 'document root'
cvirt_eroot2=Creazione della directory '$1' fallita: $2

etype=Non hai i permessi per modificare le opzioni di questo tipo
efailed=Salvataggio di $1 fallito
apache_apply=Applica Modifiche
apache_stop=Ferma Apache
apache_start=Avvia Apache
auth_return=controllo di accesso

global_ecannot=Non hai i permessi per modificare le opzioni globali
global_mime=Lista tipi MIME globali
global_mimedesc=Clicca su un tipo MIME nella lista sottostante per modificarlo, o usa il link alla fine della pagina per aggiungere un nuovo tipo alla lista.
global_type=Tipo
global_ext=Estensioni
global_add=Aggiungi un nuovo tipo MIME
global_return=Tipi MIME

mime_ecannot=Non hai i permessi per modificare i tipi mime
mime_edit=Modifica tipo MIME
mime_add=Aggiungi tipo MIME
mime_header=Mappatura delle estensioni ai tipi MIME
mime_type=Tipo MIME
mime_ext=Estensioni
mime_err=Salvataggio del tipo MIME fallito
mime_etype='$1' non &egrave un tipo MIME valido

virt_ecannot=Non puoi modificare questo server virtuale
virt_title=Opzioni Server Virtuale 
virt_header=Per $1
virt_opts=Opzioni Server Virtuale
virt_conf=Configurazione Server 
virt_show=Mostra Direttive
virt_adddir=Crea Opzioni per Directory, File o Locazione
virt_type=Tipo
virt_exact=Exact match
virt_re=Match regexp
virt_path=Percorso
virt_return=indice del server 
virt_euser=Non hai i permessi per cambiare l'utente o gruppo per questo server virtuale.
virt_header2=$1 per $2

vserv_title=Configurazione Server Virtuale
vserv_ecannot=Non puoi modificare l'indirizzo di questo server virtuale
vserv_addr=Indirizzo
vserv_port=Porta
vserv_any=Qualsiasi
vserv_default=Default
vserv_root=Document Root
vserv_name=Nome Server
vserv_delete=Elimina Server Virtuale
vserv_err=Salvataggio del server virtuale fallito
vserv_eaddr1=Non hai inserito l'indirizzo
vserv_eaddr2='$1' non &egrave; un indirizzo valido
vserv_eport='$1' non &egrave; una porta valida
vserv_eroot='$1' non &egrave; una valida document root
vserv_ename='$1' non &egrave un nome server valido

show_title=Direttive
show_edit=Modifica direttiva di Apache
show_ok=Modifica

dir_title=Opzioni per Directory 
dir_header=Per $1 su $2
dir_show=Mostra Direttive
dir_opts=Applica le opzioni a ..
dir_type=Tipo
dir_regexp=Regexp?
dir_exact=Exact match
dir_re=Match regexp
dir_path=Percorso
dir_return=indice directory
dir_header2=$1 per $2

type_0=Processi e Limiti
type_1=Rete e Indirizzi
type_2=Moduli Apache 
type_3=File di Log
type_4=Controllo di Accesso
type_5=Opzioni Documento
type_6=Tipi MIME
type_7=Gestione Errori
type_8=Utenti e Gruppi 
type_9=Varie
type_10=Alias e Redirezioni
type_11=Programmi CGI 
type_12=Indicizzazione Directory
type_13=Proxying
type_14=Opzioni SSL 
type_15=Perl
type_16=PHP

htaccess_title=File di Opzioni per directory 
htaccess_ecannot=Non puoi modificare i file htaccess
htaccess_desc=Opzioni per directory aggiuntive possono essere specificate in
un file (solitamente chiamato <tt>.htaccess</tt>) in ogni directory. Le
opzioni sono applicate a tutti i file di quella directory e a tutte le
sottodirectory, a meno che non vi siano altri file di opzioni.
htaccess_create=Crea File di Opzioni
htaccess_find=Trova File di Opzioni
htaccess_auto=Automaticamente
htaccess_from=Da directory
htaccess_return=lista file opzioni
htaccess_edir='$1' non &egrave; una directory valida
htaccess_ecreate=Non hai i permessi per creare questo file di opzioni
htaccess_edelete=Non hai i permessi per eliminare questo file di opzioni

htindex_ecannot=Non hai i permessi per modificare questo file di opzioni
htindex_title=File di Opzioni per directory
htindex_delete=Elimina File
htindex_show=Mostra Direttive
htindex_opts=Opzioni per directory
htindex_file=Configurazione File
htindex_create=Crea Opzioni File
htindex_regexp=Regexp?
htindex_exact=Exact match
htindex_re=Match regexp
htindex_path=Percorso
htindex_header=Per $1
htindex_header2=$1 per il file di opzioni $2
htindex_return=indice del file di opzioni

htfile_title=Opzioni dei File
htfile_header=Per $1 in $2
htfile_show=Mostra Direttive
htfile_apply=Le opzioni si applicano a ..
htfile_header2=$1 per $2

reconfig_title=Ri-Configura i Moduli Conosciuti
reconfig_ecannot=Non hai i permessi per riconfigurare Apache
reconfig_ever=Non riesco a leggere la versione del server Apache $1.
Controlla la <a href='$2'>Configurazione del modulo</a> per accertarti che
sia il percorso corretto.
reconfig_desc1=La configurazione di Apache &egrave; cambiata, o non &egrave;
stata ancora esaminata da Webmin. Sotto c'&egrave; una lista di utti i
moduli Apache supportati da Webmin, con quelli attualmente installati
selezionati. Puoi selezionare o deselezionare i moduli se la lista non
&egrave; corretta. 
reconfig_desc2=Sotto c'&egrave; una lista di tutti i moduli Apache
supportati da Webmin, con quelli attualmente installati selezionati. Se stai
usando moduli caricati dinamicamente potresti aver bisogno di selezionare
quelli che sono caricati dinamicamente.
reconfig_ok=Configura

defines_title=Modifica i Parametri Definiti
defines_ecannot=Non hai i permessi per modificare le definizioni httpd
defines_desc=Quando Apache &egrave; avviato, i parametri possono venirgli
passati con la linea di comando <tt>-D</tt>. Siccome questi parametri
possono influenzare quali direttive vengono usate nel tuo file di
configurazione, Webmin deve sapere quali vengono passati ad Apache quando
viene avviato. Inserisci i parametri usati dal tuo sistema nel campo testo
sulla destra

authu_ecannot='$1' non &egrave; un file di testo utente permesso
authu_title=Lista Utenti
authu_header=Nel file $1
authu_header2=Gli Utenti dal file di testo $1
authu_none=Non ci sono utenti nel file di testo $1
authu_add=Aggiungi un nuovo utente
authu_return=lista utenti
authu_edit=Modifica Utente
authu_create=Crea Utente
authu_user=Username
authu_pass=Password
authu_enc=Criptato..
authu_plain=In chiaro..
authu_err=Salvataggio dell'utente fallito
authu_euser=Username non inserito
authu_euser2=Username non pu&ograve; contenere un :
authu_edup=Un utente chiamato '$1' esiste gi&agrave;
authu_sync=Queste opzioni ti permettono di configurare Webmin in modo che
automaticamente aggiunga, aggiorni o elimini un utente da questo file di
password quando un utente viene aggiunto, modificato o eliminato nel modulo
<tt>Utenti e Gruppi</tt>.
authu_screate=Aggiunge un utente quando un utente Unix viene aggiunto
authu_sdelete=Elimina l'utente quando un utente Unix viene eliminato
authu_smodify=Modifica l'utente quando un utente Unix viene modificato

authg_ecannot='$1' non &egrave; un file dei gruppi permesso
authg_title=Lista Gruppi
authg_header=Nel file $1
authg_header2=Gruppi dal file di testo $1
authg_none=Nessun gruppo nel file di testo $1
authg_add=Aggiungi un gruppo
authg_return=lista gruppi
authg_edit=Modifica Gruppo
authg_create=Crea Gruppo
authg_group=Nome Gruppo
authg_mems=Membri
authg_dont=Non modificare
authg_set=Imposta a..
authg_err=Salvataggio del gruppo fallito
authg_euser=Nome gruppo non inserito
authg_euser2=Il nome del gruppo non pu&ograve; contenere una :
authg_edup=Un gruppo chiamato '$1' esiste gi&agrave;

stop_err=Chiusura di apache fallita
stop_ecannot=Non hai i permessi per chiudere apache
stop_epid=Apertura del file PID $1 fallita
stop_epid2=File PID $1 non valido
stop_esig=Invio segnale SIGTEMR al processo $1 fallito

start_err=Avvio di apache fallito
start_ecannot=Non hai i permessi per avviare apache
start_ecmd=$1 fallito : $2
start_eunknown=Ragione sconosciuta

restart_err=Applicazione modifiche fallita
restart_epid=Apertura del file PID $1 fallita
restart_epid2=File PID $1 non valido
restart_esig=Invio del segnale SIGHUP al processo $1 fallito
restart_eunknown=Ragione sconosciuta

acl_virts=Server virtuali che possono essere modificati da questo utente
acl_global=Pu&ograve; modificare le opzioni globali?
acl_htaccess=solo .htaccess
acl_create=Pu&ograve; creare server virtuali?
acl_vuser=Pu&ograve; modificare gli utenti dei server virtuali?
acl_vaddr=Pu&ograve; modificare gli indirizzi dei server virtuali?
acl_pipe=Pu&ograve; inviare i log ai programmi?
acl_stop=Pu&ograve; fermare ed avviare Apache?
acl_dir=Limita i file alla directory
acl_types=Tipi di direttive disponibili
acl_all=Tutte
acl_sel=Selezionate..

0707010001b8b1000081e40000000000000002000000013ac0389700008013000000200000000000000000000000000000001500000003reloc/apache/lang/nl  index_title=Apache Webserver
index_eroot=De Apache root directory $1 bestaat niet. Als u Apache heeft geinstalleerd, pas dan de <a href='$2'>module configuratie</a> aan om de juiste paden te gebruiken.
index_eserver=Het Apache server programma $1 bestaat niet. Als u Apache heeft geinstalleerd, pas dan de <a href='$2'>module configuratie</a> aan om de juiste paden te gebruiken.
index_econf=De Apache configuratie bestand $1 bestaat niet. Als u Apache heeft geinstalleerd, pas dan de <a href='$2'>module configuratie</a> aan om de juiste paden te gebruiken.
index_eports=Uw Apache configuratie bevat meer dan 1 $1 directive. De huidige versie van webmin kan ondersteund deze configuratie niet.
index_global=Globale Configuratie
index_virts=Virtuele Servers
index_defserv=Standaard Server
index_defdesc1=Definieerd de standaard instellingen voor alle andere viruele servers, en verwerkt alle niet beantwoorde verzoeken.
index_any=Alle
index_default=Standaard
index_auto=Automatisch
index_virt=Virtuele Server
index_vname=Verwerkt de op naam gebaseerde server $1 op adres $2.
index_vdef=Verwerkt alle verzoeken die niet door een andere virtuele server worden beantwoord.
index_defdesc2=Definieerd de standaard instellingen voor alle andere virtuele servers.
index_vport=Verwerkt alle processen op poort port $1 die niet door een andere virtuele server worden verwerkt.
index_vaddr=Verwerkt alle verzoeken aan het adres $1.
index_vaddrport=Verwerkt alle verzoeken aan het adres $1 op poort $2.
index_type=Type
index_addr=Adres
index_nv=Voeg naam viruele server toe (wanneer nodig)
index_port=Poort
index_name=Server Naam
index_root=Document Root
index_create=Maak een nieuwe Virtuele Server aan
index_return=server lijst

cvirt_ecannot=U bent niet bevoegd om een virtuele server aan te maken
cvirt_err=Fout bij het aanmaken van de virtuele server
cvirt_eaddr1=Geen adres ingevuld
cvirt_eaddr2='$1' is geen geldig adres
cvirt_eport='$1' is geen geldige poort
cvirt_ename='$1' is geen geldige server naam
cvirt_eroot1=U moet een documenten root opgeven
cvirt_eroot2=Fout bij het maken van directory '$1' : $2

etype=U bent niet bevoegd om de opties van dit type te bewerken
efailed=Fout bij het opslaan van $1
apache_apply=Wijzigingen toepassen
apache_stop=Apache Stoppen
apache_start=Apache Starten
auth_return=Toegangs controle
default_serv=standaard server
bytes=bytes

global_ecannot=U bent niet bevoegd om de globale opties te bewerken
global_mime=Globale MIME types lijst
global_mimedesc=Klik op een MIME type in de onderstaande lijst om het te bewerken, of gebruik de link onderaan de pagina om een nieuw type aan de lijst toe te voegen.
global_type=Type
global_ext=Extensies
global_add=Voeg een nieuw MIME type toe
global_return=MIME types

mime_ecannot=U bent niet bevoegd om myme types te bewerken
mime_edit=Bewerk MIME Type
mime_add=MIME Type Toevoegen
mime_header=Bestandsnaam extenties voor MIME type mapping
mime_type=MIME Type
mime_ext=Extensies
mime_err=Fout bij het opslaan van MIME type
mime_etype='$1' is geen geldig MIME type

virt_ecannot=U kunt deze virtuele server niet bewerken
virt_title=Virtuele Server Opties
virt_header=Voor $1
virt_opts=Virtuele Server Opties
virt_conf=Server Configuratie
virt_show=Toon Directives
virt_edit=Bewerk Directives
virt_adddir=Maak Per-Directory, Bestands of Locatie Opties aan
virt_type=Type
virt_Directory=Directory
virt_Files=Bestanden
virt_Location=Locatie
virt_exact=Exacte overeenkomst
virt_re=Match regexp
virt_regexp=Regexp?
virt_path=Pad
virt_return=server index
virt_euser=U bent niet bevoegd de gebruiker of groep van deze virtuele server te wijzigen.
virt_header2=$1 voor $2

vserv_title=Virtuele Server Configuratie
vserv_ecannot=U kunt niet het adres voor deze virtuele server bewerken
vserv_addr=Adres
vserv_addrs=Adressen
vserv_port=Poort
vserv_any=Alle
vserv_default=Standaard
vserv_root=Document Root
vserv_name=Server Naam
vserv_delete=Verwijder Virtuele Server
vserv_err=Fout bij het opslaan van virtuele server
vserv_eaddr1=Geen adres ingevuld
vserv_eaddr2='$1' is geen geldig adres
vserv_eport='$1' is geen geldige poort
vserv_eroot='$1' is geen geldige document root
vserv_ename='$1' is geen geldige server naam
vserv_eaddrs=Geen virtuele server adressen ingevoerd

show_title=Directives
show_edit=Bewerk Apache directive:
show_these=Bewerk directives met de hand
show_ok=Bewerk

manual_title=Bewerk Directives
manual_header=Gebruik het onderstaande tekstveld om de Apache directives in $1 die van toepassing zijn op deze virtuele server, directory of bestanden.
manual_ecannot=U bent niet bevoegd om directives met de hand te bewerken

dir_title=Per-Directory Opties
dir_header=Voor $1 op $2
dir_show=Geef Directives week
dir_edit=Bewerk Directives
dir_opts=opties van toepassing op ..
dir_Directory=Directory
dir_Files=Bestanden
dir_Location=Locatie
dir_type=Type
dir_regexp=Regexp?
dir_exact=Exacte match
dir_re=Match regexp
dir_path=Pad
dir_return=directory index
dir_header2=$1 voor $2

type_0=Processen en Limieten
type_1=Netwerken en Adressen
type_2=Apache Modules
type_3=Rapport Bestanden
type_4=Toegangs Controle
type_5=Document Opties
type_6=MIME Types
type_7=Fout afhandeling
type_8=Gebruiker en Groep
type_9=Overige
type_10=Aliassen en Redirects
type_11=CGI Programma's
type_12=Directory Indexing
type_13=Proxying
type_14=SSL Opties
type_15=Perl
type_16=PHP

htaccess_title=Per-Directory Optie Bestanden
htaccess_ecannot=U kunt htaccess bestanden niet bewerken
htaccess_desc=Additionele per-directory opties kunnen worden gespecificeerd in een bestand (meestal <tt>.htaccess</tt>) in iedere directory. De opties zijn van toepassing op alle bestanden in die directory en alle sub-directories, tenzij die hun eigen optie bestand hebben.
htaccess_create=Maak Optie bestand aan
htaccess_find=Zoek optie bestanden
htaccess_auto=Automatisch
htaccess_from=Van directory
htaccess_return=optie bestand lijst
htaccess_edir='$1' is geen geldige directory
htaccess_ecreate=U bent niet bevoegd om dit optie bestand aan te maken
htaccess_edelete=U bent niet bevoegd om dit optie bestand te verwijderen

htindex_ecannot=U bent niet bevoegd om dit optie bestand te bewerken
htindex_title=Per-Directory Optie Bestand
htindex_delete=Verwijder Bestand
htindex_show=Toon Directives
htindex_edit=Bewerk Directives
htindex_opts=Per-Directory Opties
htindex_file=Per-Bestands Configuratie
htindex_create=Maak Per-Bestands Opties aan
htindex_regexp=Regexp?
htindex_exact=Exacte overeenkomst
htindex_re=Match regexp
htindex_path=Pad
htindex_header=Voor $1
htindex_header2=$1 voor optie bestand $2
htindex_return=optie bestanden index

htfile_title=Per-File Opties
htfile_header=Voor $1 in $2
htfile_show=Toon Directives
htfile_edit=Bewerk Directives
htfile_apply=Opties van toepassign op ..
htfile_header2=$1 voor $2

reconfig_title=Herconfigureer Bekende Modules
reconfig_ecannot=U bent niet bevoegd om apache te herconfigureren
reconfig_ever=Fout bij het ophalen van de versie van het Apache server programma $1. Controleer uw <a href='$2'>module configuratie</a> om er zeker van te zijn dat het pad correct is.
reconfig_desc1=Uw Apache configuratie is gewijzigd, of is nog niet onderzocht door Webmin. Hieronder staat een lijst van alle Apache modules die door Webmin worden ondersteund, met degenen die nu zijn geinstalleerd geselecteerd. U kunt modules selecteren of deselecteren wanneer de lijst niet klopt.
reconfig_desc2=Hieronder staat een lijst van alle Apache modules die door Webmin worden ondersteund, met degenen die nu zijn geinstalleerd geselecteerd. Als u dynamisch geladen modules gebruikt moet u mogelijk de dynamisch geladen modules aanvinken.
reconfig_ok=Configureer

defines_title=Bewerk Gedefineerde Parameters
defines_ecannot=U bent niet bevoegd om httpd definities te bewerken
defines_desc=Wanneer Apache wordt gestart, kunnen parameters aan apache worden meegegeven met de <tt>-D</tt> command line optie. Omdat deze parameters invlied kunnen uitoefenen op welke directives gebruikt worden in uw configuratie bestanden, moet Webmin weten welke parameters er aan Apache worden meegegeven wanneer het wordt gestart. Vul de parameters die aan apache worden doorgegeven in in het rechtsstaande tekstveld.
defines_config=Merk op dat de volgende gedefinieerde parameters al bekend zijn: $1

authu_ecannot='$1' is niet een toegestaan gebruikers tekxt bestand
authu_title=Gebruikers Lijst
authu_header=In bestand $1
authu_header2=Gebruikers uit tekst bestand $1
authu_none=Geen gebruikers in het tekstbestand $1
authu_add=Voeg een nieuwe gebruiker toe
authu_return=gebruikerslijst
authu_edit=Bewerk gebruiker
authu_create=Maak genbruiker aan
authu_user=Gebruikersnaam
authu_pass=Wachtwoord
authu_enc=Versleuteld..
authu_plain=Niet versleutelde tekst ..
authu_err=Fout bij het opslaan van gebruiker
authu_euser=Geen gebruikersnaam ingevuld
authu_euser2=Het volgende teken mag niet gebruikt worden in een gebruikersnaam :
authu_edup=Een gebruiker '$1' bestaat reeds
authu_sync=De onderstaande opties stellen u in staat om Webmin te configureren voor het automatisch toevoegen, bijwerken of verwijderen van een gebruiker in dit wachtwoord bestand wanneer een gebruiker word toegevoegd, gewijzicht of verwijderd in de <tt>Gebruikers en Groepen</tt> module.
authu_screate=Voeg een gebruiker toe wanneer een Unix gebruiker wordt toegevoegd
authu_sdelete=Verwijder een gebruiker toe wanneer een Unix gebruiker wordt verwijderd
authu_smodify=Wijzig een gebruiker toe wanneer een Unix gebruiker wordt gewijzigd

authg_ecannot='$1' is niet een toegestaan groepen tekxt bestand
authg_title=Groepen lijst
authg_header=In bestand $1
authg_header2=Groepen uit tekst bestand $1
authg_none=Geen groepen in het tekstbestand $1
authg_add=Maak een nietwe groep aan
authg_return=groepen lijst
authg_edit=Bewerk groep
authg_create=Maak groep aan
authg_group=Groep naam
authg_mems=Leden
authg_dont=Niet wijzigen
authg_set=Wijzigen in..
authg_err=Fout bij het opslaan van de groep
authg_euser=Geen groepnaam ingevuld
authg_euser2=Het volgende teken mag niet gebruikt worden in een groepsnaam :
authg_edup=De groep '$1' bestaat al

stop_err=Fout bij het stoppen van apache
stop_ecannot=U bent niet bevoegd om apache te stoppen
stop_epid=Fout bij het openen van PID bestand $1
stop_epid2=Ongeldig PID bestand $1
stop_esig=Fout bij het sturen van SIGTERM naar proces $1

start_err=Fout bij het starten van apache
start_ecannot=U bent niet bevoegd om apache te starten
start_ecmd=$1 mislukt : $2
start_eunknown=Onbekende reden

restart_err=Fout bij het toepassen van de wijzigingen
restart_epid=Fout bij het openen van PID bestand $1
restart_epid2=Ongeldig PID bestand $1
restart_esig=Fout bij het sturen van SIGHUP naar proces $1
restart_eunknown=Onbekende reden

acl_virts=Virtuele servers welke deze  gebruiker kan bewerken
acl_vall=Alle servers
acl_vsel=Geselecteerd..
acl_defserv=Standaard Server
acl_global=Kan globale opties bewerken?
acl_htaccess=alleen .htaccess 
acl_create=Kan virtuele servers aanmaken?
acl_vuser=Kan virtuele server gebruikers wijzigen?
acl_vaddr=Kan virtuele server adressen wijzigen?
acl_pipe=Kan logs naar programma's pipen?
acl_stop=Kan Apache stoppen en starten ?
acl_dir=Beperk bestanden tot directory
acl_types=Beschikbaren directive types 
acl_all=Alle
acl_sel=Geselected..

core_maxconc=Maximum aantal opeenvolgende aanvragen
core_maxkeep=Maximum aantal keepalives per verbinding
core_maxreq=Maximum aantal aanvragen per server proces
core_minspare=Minimum aantal reserve server processen
core_maxspare=Maximum aantal reserve server processen
core_initial=Initiele server processen
core_emaxconc=Maximum aantal opeenvolgende aanvragen moet een integer zijn
core_emaxkeep=Maximum aantal keepalives per verbinding moet een integer zijn
core_emaxreq=Maximum aantal aanvragen per server proces moet een integer zijn
core_eminspare=Minimum aantal reserve server processen moet een integer zijn
core_emaxspare=Maximum aantal reserve server processen moet een integer zijn
core_einitial=Initiele server processen moet een integer zijn
core_default=STandaard
core_cpulimit=CPU resource limiet
core_memlimit=Geheugen resource limiet
core_proclimit=Proces limiet
core_cpulimit2=CPU resource limiet
core_memlimit2=geheugen resource limiet
core_proclimit2=proces limiet
core_slimit=Zachte limiet 
core_hlimit=Harde limiet 
core_eslimit=$1 is geen geldige zachte $2
core_ehlimit=$1 is geen geldige harde $2
core_dport=Standaard poort:
core_address=Adres
core_port=Poort
core_listen=Luister op adressen en poorten
core_eaddress='$1' is geen geldig adres
core_eport='$1' is geen geldige poort
core_eoneaddr=U moet minimaal een adres opgeven om op te luisteren
core_edefport=Ongeldige standaard poort
core_multi=Meerdere aanvragen per verbinding
core_ekeep='$1' is geen geldig aantal keepalives
core_ltwice=Twee keer opzoeken
core_keeptout=Keep-alive timeout
core_lqueue=Luister wachtrij lengte
core_bufsize=TCP zend buffer grote
core_admin=Server beheerder email adres
core_rtout=Aanvraag timeout
core_bhostname=Gebruik door de browser gebruikte hostnaam
core_lookup=Hostnamen opzoeken
core_useauth=Gebruik RFC1413 user lookups
core_altnames=Alternatieve virtuele server namen
core_hostname=Server hostnaam
core_virtaddr=Adressen voor naam virtuele servers
core_ekeeptout=Keep-alive timeout moet een integer zijn
core_elqueue=Luister wachtlijst lengte moet een integer zijn
core_ebufsize=TCP zend buffer grootte moet een integer zijn
core_ertout=Aanvraag timeout moet een integer zijn
core_ehostname=Ongeldige server hostnaam
core_osdefault=OS Standaard
core_noadmin=Geen
core_auto=Automatisch
core_evirtaddr='$1' is geen geldig adres voor naam virtuele server
core_auth=Authenticatie opties
core_mime=MIME types en versleutelingen
core_indexing=Indexering en index bestanden
core_hostacc=Hostname toegangs controle
core_diropts=Directory opties
core_filesel=Hieronder geselecteerd...
core_execcgi=Voer CGI programma's uit
core_flink=Volg symbolische links
core_inclexe=Server-zijde includes en execs
core_incl=Server-zijde includes
core_genind=Genereer directory indexen
core_genmview=Genereer Multiviews
core_flinkmatch=Volg symbolische links als de eigenaar overeenkomt
core_optsel=Hieronde geselecteerd
core_enable=Ingeschakeld
core_disable=Uitgeschakeld
core_optfile=Per-directory optie bestand
core_overr=Optie bestand kan vervangen..
core_genmd5=Genereer MD5 samenvattingen
core_root=Document hoofd directory
core_eoptfile=Slechts een optie bestand is toegestaan
core_enoopt=Geen optie bestand opgegeven
core_enodoc=Document hoofddirectory '$1' bestaat niet
core_sigemail=Email adres
core_signame=Server naam
core_signone=Geen
core_virtpath=Virtuale server pad
core_footer=Foutmelding message voettekst
core_evirtpath=Virtuale server pad moet met een / beginnen
core_defmime=Standaard MIME Type
core_edefmime=Standaard MIME type moet in de vorm type/subtype staan
core_realm=Verificatie realm naam
core_authtype=Verificatie type
core_authall=Alle toegangscontroles
core_authany=Iedere toegangscontrole
core_authlog=Beperk toegang met login
core_satisfy=Clienten moeten satisfy
core_salone=Standalone
core_inetd=Start vanuit inetd
core_verosmod=Versie en OS en modules
core_veros=Versie en OS
core_ver=Alleen Versie
core_coredir=Core dump directory
core_lockfile=Server slot bestand
core_maxbody=Maximum aanvraag body grootte
core_maxhead=Maximum aantal headers in aanvraag
core_maxshead=Maximum aanvraag header grootte
core_maxline=Maximum aanvraag line grootte
core_pid=Server PID vestand
core_memsco=Gedeeld geheugen scorebord bestand
core_exec=Server uitvoering
core_header=Server HTTP header
core_ecore=Ongeldige core dump directory
core_elock=Ongeldig slot bestand
core_ebody=Ongeldige aanvraag body grootte
core_ehead=Ongeldig aantal headers
core_eshead=Ongeldige header grootte
core_eline=Ongeldige aanvraag line grootte
core_epid=Ongeldig PID bestand
core_escore=Ongeldig scorebord bestand
core_sroot=Server hoofddirectory
core_group=Groep naam
core_gid=Groep ID
core_user=Gebrukersnaam
core_uid=GebruikersUser ID
core_asgroup=Voer als Unix groep uit
core_asuser=Voer als Unix gebruiker uit
core_euid='$1' is geen geldige groep ID
core_egid='$1' is geen geldige gebruikers ID
core_tourl=Ga naar URL..
core_mesg=Toon bericht..
core_error=Foutmelding code
core_resp=Reactie
core_urlmsg=URL of bericht
core_custom=Aangepaste foutmedings berichten
core_eerror='$1' is geen geldige foutmelding code
core_eurl='$1' is geen geldige URL
core_syslog=Systeem Log
core_filelog=Bestand 
core_proglog=Programma 
core_errfile=Fout rapport bestand
core_logto=Fouten rapporteren naar
core_efilelog=Ongeldig fout rapport bestand
core_edirlog=Fout rapport bestand bevindt zich niet onder de toegestane directory
core_efilemiss=Ontbrekend fout rapport bestand
core_eprogmiss=Ontbrekend fout rapport programma
core_eperm=U bent niet bevoegd om rapporten naar programma's door te sluizen
core_allmod=Alle modules
core_selmod=Geselecteerde modules..
core_actmod=Actieve modules
core_option=Opties
core_setdir=Instellen voor directory
core_merge=Samenvoegen met ouder
core_users=Alleen deze gebruikers
core_groups=Alleen deze groepen
core_allusers=Alle geldige gebruikers
core_none=Geen
core_all=Alle
core_product=Alleen product


mod_negotiation_0=Inhoud-overlegde documenten bufferen?
mod_negotiation_3=Taal prioriteit voor multi-views
mod_negotiation_def=Standaard
mod_negotiation_5=Ontbrekende taal prioriteiten

mod_cgi_0=CGI Script rapport
mod_cgi_1=Geen
mod_cgi_2=Ongeldig CGI script rapport bestand
mod_cgi_3=Maximum CGI rapport grootte
mod_cgi_4=Standaard
mod_cgi_5=CGI rapport grootte moet een integer zijn
mod_cgi_6=Maximum gerapporteerde post data grootte
mod_cgi_7=Standaard
mod_cgi_8=Post data grootte moet een integer zijn
mod_cgi_9=CGI script rapport bevindt zich niet onder de toegestane directory

mod_alias_from=Van
mod_alias_to=Naar
mod_alias_status=Status
mod_alias_efrom='$1' is geen geldige $2
mod_alias_edest='$1' is geen geldige $2 bestemming
mod_alias_alias=Document directory aliasen
mod_alias_alias2=document alias
mod_alias_regexp=Regexp document directory aliasen
mod_alias_regexp2=regexp document alias
mod_alias_redir=URL omleidingen
mod_alias_redir2=URL omleiding
mod_alias_rredir=Regexp URL omleidingen
mod_alias_rredir2=regexp URL omleiding
mod_alias_tredir=Tijdelijke URL omleidingen
mod_alias_tredir2=tijdelijke URL omleiding
mod_alias_predir=Permanente URL omleidingen
mod_alias_predir2=permanente URL omleiding
mod_alias_cgi=CGI directory aliasen
mod_alias_cgi2=CGI directory alias
mod_alias_rcgi=Regexp CGI directory aliasen
mod_alias_rcgi2=regexp CGI directory alias
mod_alias_status='$1' is geen geldige status

mod_proxy_proxy=Werk als proxy server?
mod_proxy_req=Aanvragen
mod_proxy_forw=Doorsturen naar
mod_proxy_all=Alle
mod_proxy_match=Overeenkomend met..
mod_proxy_pass=Aanvragen om door te sturen naar een andere proxy
mod_proxy_local=Locaal URL pad
mod_proxy_remote=Externe URL
mod_proxy_map=Vertaal locale naar externe URLs
mod_proxy_block=Blokeer aanvragen naar domeinen
mod_proxy_eblock=Geen domainen opgegeven om te blokkeren
mod_proxy_type=Type
mod_proxy_noproxy=Geen proxy voor..
mod_proxy_nopass=Stuur geen aanvragen naar een andere proxy door voor
mod_proxy_nodomain=Domein voor aanvragen zonder domein
mod_proxy_none=Geen
mod_proxy_enodomain=Ongeldig standaard domein
mod_proxy_connect=Poorten naar welke CONNECT is toegestaan
mod_proxy_default=Standaard
mod_proxy_econnect=Ongeldige CONNECT poorten
mod_proxy_dir=Buffer directory
mod_proxy_edir=Ongeldige buffer directory naam
mod_proxy_size=Buffer grootte
mod_proxy_esize=Ongeldige buffer grootte
mod_proxy_garbage=Buffer vuil ophaal interval
mod_proxy_nogc=Nooit
mod_proxy_hours=uren
mod_proxy_egarbage=Ongeldige buffer vuil ophaal interval
mod_proxy_maxexp=Gebufferd bestand maximale verlooptijd
mod_proxy_emaxexp=Ongeldige gebufferd bestand maximale verlooptijd
mod_proxy_expfac=Gebufferd bestand maximale verlooptijd factor
mod_proxy_eexpfac=Ongeldige gebufferd bestand maximale verlooptijd factor
mod_proxy_levels=Buffer directory niveaus
mod_proxy_elevels=Ongeldig aantal buffer directory niveaus
mod_proxy_length=Buffer directory naam lengte
mod_proxy_elength=Ongeldige buffer directory naam lengte
mod_proxy_defexp=Buffer standaard verlooptijd
mod_proxy_edefexp=Ongeldige standaard verlooptijd
mod_proxy_finish=Beeindig en buffer transfer na
mod_proxy_efinish=Ongeldig transfer percentage
mod_proxy_nocache=Domeinen die niet gebuffer moeten worden
mod_proxy_none2=Geen
mod_proxy_none3=Geen
mod_proxy_enocache=Geen ongebufferde domeinen opgegeven
mod_proxy_erequest='$1' is geen geldige aanvraag
mod_proxy_epurl='$1' is geen geldige proxy URL
mod_proxy_elurl='$1' is geen lokaal URL pad
mod_proxy_erurl='$1' is geen geldige externe URL
mod_proxy_eip='$1' is geen geldig IP adres
mod_proxy_ehost='$1' is geen geldige hostnaam
mod_proxy_edomain='$1' is geen geldig domein
mod_proxy_enet='$1' is geen geldig netwerk
mod_proxy_enetbit='$1' is geen geldig netwerk/bits paar
mod_proxy_eunder=Buffer directory bevindt zich niet onder de toegestane directory
mod_proxy_rurl=Externe URL
mod_proxy_lurl=Lokaal URL pad
mod_proxy_headers=Vertaal externe locatie: headers naar lokaal
mod_proxy_ip=IP adaresa
mod_proxy_host=Hostnaam
mod_proxy_domain=Domein
mod_proxy_net=IP netwerk
mod_proxy_netbit=Netwerk/bits

mod_log_agent_default=Standaard
mod_log_agent_file=Bestand..
mod_log_agent_program=Programma..
mod_log_agent_log=Browser rapport bestand
mod_log_agent_efile=$1 is geen geldig browser rapport bestand

mod_log_config_common=Veel gebruikte Rapport Formaten
mod_log_config_named=Benoemde Rapport Formaten
mod_log_config_nick=Bijnaam
mod_log_config_format=Formaat
mod_log_config_deflog=Standaard Rapport Formaat
mod_log_config_default=Standaard
mod_log_config_write=Schrijf naar
mod_log_config_filprog=Bestand of programma
mod_log_config_file=Bestand..
mod_log_config_program=Programma..
mod_log_config_log=Benader rapport bestanden
mod_log_config_enick='$1' is geen geldige bijnaam
mod_log_config_eformat=Geen rapport formaat opgegeven voor $1
mod_log_config_enofilprog=Ontbrekende bestandsnaam of programma
mod_log_config_efilprog='$1' is geen toegestane rapport bestandsnaam of programma
mod_log_config_eifset='Wanneer ingesteld' kunnen opties niet gebruikt worden met het standaard rapport formaat

mod_log_referer_default=Stadnaard
mod_log_referer_file=Bestand..
mod_log_referer_program=Programma..
mod_log_referer_log=Verwijzer rapport bestand
mod_log_referer_nolog=Verwijzingen niet rapporteren van
mod_log_referer_elog=$1 is geen geldig verwijzer rapport bestand
mod_log_referer_edir=verwijzer rapport bevindt zich niet onder de toegestane directory

mod_status_msg=Geef uitgebreide statusinformatie weer

mod_mime_ext=Extenties
mod_mime_xtype=Extra MIME typen
mod_mime_mtype=MIME type
mod_mime_chandl=Inhoud verwerkers
mod_mime_cencs=Inhoud coderingen
mod_mime_cenc=Inhoud coderingen
mod_mime_clangs=Inhoud talen
mod_mime_clang=Inhoud taal
mod_mime_defmime=Behanden alle bestanden als MIME type
mod_mime_real=Werkelijk  type
mod_mime_etype=Ongeldig MIME type
mod_mime_pass=Geef alle bestanden door aan vewerker 
mod_mime_file=MIME typen bestand
mod_mime_default=Standaard
mod_mime_ignhand=Negeer verwerkers voor extenties
mod_mime_none=Geen
mod_mime_xchars=Extra tekenverzameling 
mod_mime_einvalid='$1' is geen geldig $2
mod_mime_eext=Geen extensies opgegeven voor $1 $2
mod_mime_type=Type
mod_mime_handler=Verwerker
mod_mime_enc=Codering
mod_mime_lang=Taal
mod_mime_chars=tekenverzameling 
mod_mime_igntype=Negeer MIME typen voor extenties
mod_mime_ignenc=NEgeer coderingen voor extenties

mod_setenvif_header=Kop
mod_setenvif_match=Vergelijken
mod_setenvif_case=Vergelijk hoofd-/kleine letters 
mod_setenvif_var=Variable
mod_setenvif_value=Waarde
mod_setenvif_txt=Variablen instellen op basis van aanvraag kop
mod_setenvif_eheader=Ongeldige aanvraagkop '$1'
mod_setenvif_eregex=Ongeldige reguliere expressie  '$1'
mod_setenvif_evar=Ongeldige variablenaam '$1'
mod_setenvif_clear=Leeg maken

mod_userdir_default=Standaard
mod_userdir_all=Alle gebruikers toegankelijk
mod_userdir_except=Alle gebruikers uitgezonderd
mod_userdir_dir=Gebruikers WWW directory

mod_imap_action=Actie bij onjuist gebruik van imagemaps
mod_imap_default=Standaard
mod_imap_godefurl=Ga naar standaard URL
mod_imap_form=Geef geformatteerd menu weer
mod_imap_semiform=Geef semi-geformatteerd menu weer
mod_imap_unform=Geef ongeformatteerd menu weer
mod_imap_disperr=Geef server foutmelding weer
mod_imap_donoth=Doe niets
mod_imap_goimap=Ga naar imagemap URL
mod_imap_goref=Ga naar verwijzende URL
mod_imap_gourl=Ga naar URL URL...
mod_imap_defact=Stadnaard acties voor imagemaps
mod_imap_default2=Standaard
mod_imap_root=Server hoofddirectory
mod_imap_imapurl=Imagemap URL
mod_imap_refurl=Verwijzende URL
mod_imap_url=URL...
mod_imap_defbase=Stadnaard basis voor imagemaps
mod_imap_eurl='$1' is geen geldige URL

mod_speling_autocorr=Automatisch fout gespelde URLs corrigeren?
mod_speling_default=Standaard

mod_actions_mime=Verwerker / MIME type
mod_actions_cgiurl=CGI script URL
mod_actions_mimecgi=Verwerker of MIME type CGI acties
mod_actions_http=HTTP methode
mod_actions_cgi=CGI script
mod_actions_httpcgi=HTTP methode CGI acties
mod_actions_emime='$1' is geen geldige verwerker of MIME type
mod_actions_ecgi='$1' is geen geldig CGI script
mod_actions_enometh=Geen methode gekozen voor CGI script '$1'

mod_include_incl=Verwerk invoegingen op bestanden met uitvoer bit?
mod_include_set=Ja en stel het de laatst bewerktdatum in
mod_include_default=Standaard

mod_dir_txt=Directory index bestanden

mod_autoindex_default=Standaard
mod_autoindex_asc=Oplopend
mod_autoindex_descend=Aflopend
mod_autoindex_name=Naam
mod_autoindex_date=Datum
mod_autoindex_size=Grootte
mod_autoindex_desc=Omschrijving
mod_autoindex_sort=Sorteer directory index op

browsermatch_regexp=Browser regex
browsermatch_case=Verkelijk hoofd-/kleine letters?
browsermatch_var=Stel variable in
browsermatch_value=Waarde
browsermatch_txt=Variabelen instellen op basis van browsertype
browsermatch_evar=Ongeldige variabelenaam '$1'
browsermatch_clear=Leeg maken

autoindex_fname=Bestandsnaam
autoindex_mime=MIME type
autoindex_enc=Codering
autoindex_icon=Icoon
autoindex_alt=Alt tekst
autoindex_match=Vergelijk op
autoindex_fte=Bestandsnamen, typen of coderingen
autoindex_diricon=Directory index iconen
autoindex_deficon=Directory index standaard icoon
autoindex_default=Standaard
autoindex_edeficon=Ongeldig stadnaard icoon URL
autoindex_diralt=Directory index ALT tags
autoindex_desc=Omschrijving
autoindex_fnames=Bestandsnamen
autoindex_dirdesc=Directory index omschrijvingen
autoindex_fancy=Geef opgemaakte directory indexen weer
autoindex_htmltitle=Toon HTML titel als omschrijving
autoindex_iheight=Icoon hoogte
autoindex_iwidth=Icoon breedte
autoindex_sort=Sta gebruiker sortering van colommen toe
autoindex_fildesc=Geef bestandsomschrijvingen weer
autoindex_htags=Voer HTML hoofd tags uit
autoindex_mtime=Geef laatst bewert tijden weer
autoindex_size=Geef bestandsgrootes weer
autoindex_iconlink=Voe icoon in in link
autoindex_fwidth=Bestandsnaam breedte
autoindex_dwidth=Omschrijving breedte
autoindex_dirfirst=Toon directories eerst
autoindex_default2=Standaard
autoindex_select=Hieronder geselecteerd...
autoindex_default3=Standaard
autoindex_pixels=pixels
autoindex_chars=tekens
autoindex_diropt=Directory index opties
autoindex_dirhead=Directory index kop bestand
autoindex_default4=Stadnaard
autoindex_edirhead=Ongeldige index kop bestandsnaam
autoindex_dirfoot=Directory index voet bestandnaam
autoindex_edirfoot=Ongeldige index voet bestandnaam
autoindex_ignore=Bestanden om te negeren in directory index
autoindex_eiconurl='$1' is geen geldige icoon url
autoindex_emiss=Ontbrekende $1 voor $2
autoindex_emissquot=Ontbrekende $1 voor '$2'
autoindex_enodesc=Geen omschrijving voor bestand $1
autoindex_enofile=Geen bestanden voor omschrijving'$1'
autoindex_eiconsize='$1' is geen geldige icoon grootte
autoindex_ewidth='$1' is geen geldige breedte

mod_mime_magic_file=MIME magisch nummers bestandsnaam
mod_mime_magic_none=Geen
mod_mime_magic_efile=Ongeldig MIME magisch nummers bestandsnaam

mod_env_var=Variable
mod_env_value=Waarde
mod_env_pass=Geef door
mod_env_clear=Legen
mod_env_set=Instellen op..
mod_env_cgivar=Omgevingsvariabelen voor CGI scripts
mod_env_passall=Geef alle omgevingsvariabelen door aan CGIs
mod_env_default=Standaard
mod_env_evar='$1' is geen geldige variabelenaam
mod_env_evalue='$1' is geen geldige variabelewaarde

mod_access_order=Toegangscontrole volgorde:
mod_access_denyallow=Weigeren dan toestaan
mod_access_allowdeny=Toestaan dan weigeren
mod_access_mutual=Wederzijds mislukken
mod_access_default=Standaard
mod_access_action=Actie
mod_access_cond=Verbinding
mod_access_all=Alle aanvragen
mod_access_host=Aanvragen van host...
mod_access_ip=Aanvraag van IP..
mod_access_pip=Aanvraag van gedeeltelijk IP..
mod_access_mask=Aanvraag van net/netmask..
mod_access_cidr=Aanvraag van net/CIDR..
mod_access_var=Wanneer variable is ingesteld..
mod_access_allow=Toestaan
mod_access_deny=Weigeren
mod_access_restr=BEperk toegang
mod_access_eip='$1' is geen geldig IP adres
mod_access_epip='$1' is geen geldig gedeeltelijk IP adres
mod_access_emask='$1' is geen geldig network/netmask paar
mod_access_ecidr='$1' is geen geldig network/CIDR paar
mod_access_evar='$1' is geen geldige variable naam

mod_auth_ufile=Gebruikers tekst bestand
mod_auth_uedit=Gebruikers bewerken
mod_auth_gfile=Groep tekst bestand
mod_auth_gedit=Bewerk groepen
mod_auth_pass=Geef fouten door aan volgende module?
mod_auth_auth=Tekst bestand verificatie
mod_auth_eudir=Gebruikers tekst bestand bevindt zich niet onder de toegestane directory
mod_auth_egdir=Groep tekst bestand bevindt zich niet onder de toegestane directory
mod_auth_eufile=Ongeldige gebruikers tekst bestandsnaam
mod_auth_egfile=Ongeldige groep tekst bestandsnaam

mod_auth_dbm_ufile=Gebruiker DBM bestand
mod_auth_dbm_gfile=Groep DBM bestand
mod_auth_dbm_pass=Geef fouten door aan volgende module?
mod_auth_dbm_auth=DBM bestand verificatie
mod_auth_dbm_eufile=Ongeldige gebruikers DBM bestandsnaam     
mod_auth_dbm_egfile=Ongeldige groep DBM bestandsnaam          

mod_cern_meta_process=Verwerk header metafiles
mod_cern_meta_dir=Subdirectory voor header metafiles
mod_cern_meta_default=Standaard
mod_cern_meta_edir=Ongeldige metafile subdirectory naam
mod_cern_meta_suffix=BEstands voorvoegsel voor header metafiles
mod_cern_meta_default2=Standaard
mod_cern_meta_esuffix=Ongeldig metafile voorvoegsel

mod_ssl_enable=SSL inschakelen?
mod_ssl_proto=SSL protocollen
mod_ssl_cfile=Certificaat/prive sleutel bestand
mod_ssl_default=Standaard
mod_ssl_ecfile=Ontbrekend certificaat/prive sleutel bestand
mod_ssl_kfile=Prive sleutel bestand
mod_ssl_ekfile=Ontbrekend prive sleutel bestand
mod_ssl_clcert=Client SSL certificaat
mod_ssl_nreq=Niet vereist
mod_ssl_opt=Optioneel
mod_ssl_req=Vereist
mod_ssl_optca=Optioneel geen CA
mod_ssl_cdepth=Client certificaat diepte
mod_ssl_ecdepth=Certificate diepte moet een integer zijn
mod_ssl_log=SSL rapport bestand
mod_ssl_elog=Ontbrekend SSL rapport bestand
mod_ssl_onlyssl=Alleen SSL toegang toestaan

log_global=Gewijzigd grlobale $1 opties
log_virtc=Aangemaakt server $1
log_virts=Geherconfigureerd server $1
log_virtd=Verwijderd server $1
log_virtm=Handmatig bewerkt server $1
log_virt=Gewijzigd $1 in server $2
log_dirc=Aangemaakt directory $1
log_dirc_l=Aangemaakt directory $1 in server $2
log_dirs=Gewijzigd directory $1
log_dirs_l=Gewijzigd directory $1 in server $2
log_dird=Verwijderd directory $1
log_dird_l=Verwijderd directory $1 in server $2
log_dirm=Handmatig bewerkt directory $1
log_dirm_l=Handmatig bewerkt directory $1 in server $2
log_dir=Gewijzigd $1 in directory $2
log_dir_l=Gewijzigd $1 in directory $2 in server $3
log_htaccessc=Aangemaakt optiebestand $1
log_htaccessd=Verwijderd optiebestand $1
log_htaccessm=Handmatig bewerkt optie bestand $1
log_htaccess=Gewijzigd $1 in optie bestand $2
log_filesc=Aangemaakt bestandsopties voor $1
log_filesc_l=Aangemaakt bestandsopties voor $1 in bestand $2
log_filess=Gewijzigd bestandsopties voor $1
log_filess_l=Gewijzigd bestandsopties voor $1 in bestand $2
log_filesd=Verwijderd bestandsopties voor $1
log_filesd_l=Verwijderd bestandsopties voor $1 in bestand $2
log_filesm=Handmatig bewerkt bestandsopties voor $1
log_filesm_l=Handmatig bewerkt bestandsopties voor $1 in bestand $2
log_files=Gewijzigd $1 in bestandsopties voor $2
log_files_l=Gewijzigd $1 in bestandsopties voorr $2 in bestand $3
log_mime_modify=Gewijzigd MIME type $1
log_mime_create=Toegevoegd MIME type $1
log_defines=Gewijzigd gedefinieerde parameters
log_reconfig=Geherconfigureerd bekende modules
log_start=Gestart webserver
log_stop=Gestopt webserver
log_apply=Wijzigingen toegepast

 0707010001b8b2000081a40000000000000002000000013ac0389800008499000000200000000000000000000000000000001500000003reloc/apache/lang/pl  index_title=Serwer WWW Apache
index_eroot=G丑wny katalog Apache'a $1 nie istnieje. Je秎i Apache jest zainstalowany, sprawd poprawno舵 禼ie縠k w&nbsp;<a href='$2'>konfiguracji modu硊</a>.
index_eserver=Program serwera Apache $1 nie istnieje. Je秎i Apache jest zainstalowany, sprawd poprawno舵 禼ie縠k w&nbsp;<a href='$2'>konfiguracji modu硊</a>.
index_econf=Plik konfiguracji Apache'a $1 nie istnieje. Je秎i Apache jest zainstalowany, sprawd poprawno舵 禼ie縠k w&nbsp;<a href='$2'>konfiguracji modu硊</a>.
index_eports=Konfiguracja Apache'a zawiera wi阠ej ni 1 dyrektyw $1. Aktualna wersja Webmina nie obs硊guje tych ustawie.
index_global=Konfiguracja og髄na
index_virts=Serwery wirtualne
index_defserv=Serwer domy秎ny
index_defdesc1=Definiuje domy秎ne ustawienia dla wszystkich serwer體 wirtualnych, proces體 oraz wszystkich nie obs硊giwanych 勘da.
index_any=Dowolny
index_default=Domy秎ny
index_auto=Automatycznie
index_virt=Serwer wirtualny
index_vname=Obs硊guje bazuj眂y na nazwach serwer $1 o&nbsp;adresie $2
index_vdef=Przetwarza wszystkie 勘dania nie obs硊giwane przez pozosta砮 serwery wirtualne.
index_defdesc2=Definiuje domy秎ne ustawienia dla pozosta硑ch serwer體 wirtualnych.
index_vport=Przetwarza wszystkie 勘dania na porcie $1 nie obs硊giwane przez pozosta砮 serwery wirtualne.
index_vaddr=Obs硊guje wszystkie 勘dania dla adresu $1.
index_vaddrport=Obs硊guje wszystkie 勘dania dla adresu $1 na porcie $2.
index_type=Typ
index_addr=Adres
index_nv=Dodaj (je秎i trzeba) adres opartego na nazwach serwera wirtualnego
index_port=Port
index_name=Nazwa serwera
index_root=Katalog g丑wny dokumentu
index_create=Utw髍z nowy serwer wirtualny
index_return=listy serwer體

cvirt_ecannot=Nie masz uprawnie do tworzenia serwera wirtualnego
cvirt_err=Utworzenie serwera wirtualnego nie powiod硂 si
cvirt_eaddr1=Nie wpisano adresu
cvirt_eaddr2='$1' nie jest poprawnym adresem
cvirt_eport='$1' nie jest poprawnym portem
cvirt_ename='$1' nie jest poprawn nazw serwera
cvirt_eroot1=Musisz wpisa katalog g丑wny dla dokument體
cvirt_eroot2=Utworzenie katalogu '$1' nie powiod硂 si: $2

etype=Nie masz uprawnie do zmiany opcji tego typu
efailed=Nie uda硂 si zachowa $1
apache_apply=Zastosuj
apache_stop=Wy潮cz Apache'a
apache_start=Uruchom Apache'a
auth_return=kontroli dost阷u
default_serv=serwera domy秎nego
bytes=bajt體

global_ecannot=Nie masz uprawnie do zmiany opcji og髄nych
global_mime=Globalna lista typ體 MIME
global_mimedesc=Kliknij na typie MIME z&nbsp;listy, by go zmieni lub skorzystaj z&nbsp;odno秐ika u&nbsp;do硊 strony, by doda typ do listy.
global_type=Typ
global_ext=Rozszerzenie
global_add=Dodaj nowy typ MIME
global_return=typ體 MIME

mime_ecannot=Nie masz uprawnie do zmian typ體 MIME
mime_edit=Zmie typ MIME
mime_add=Dodaj typ MIME
mime_header=Mapowanie rozszerze dla typu MIME
mime_type=typ MIME
mime_ext=Rozszerzenie
mime_err=Nie uda硂 si zachowa typu MIME
mime_etype='$1' nie jest poprawnym typem MIME

virt_ecannot=Nie masz uprawnie do zmiany tego serwera wirtualnego
virt_title=Opcje serwera wirtualnego
virt_header=Dla $1
virt_opts=Opcje serwera wirtualnego
virt_conf=Konfiguracja serwera
virt_show=Poka dyrektywy
virt_edit=Zmie dyrektywy
virt_adddir=Utw髍z opcje dla plik體, katalog體 lub lokacji
virt_type=Dotyczy
virt_Directory=katalogu
virt_Files=plik體
virt_Location=lokacji
virt_exact=Nie, dok砤dny wzorzec
virt_re=Tak
virt_regexp=Wyr. regularne?
virt_path=ie縦a
virt_return=indeksu serwer體
virt_euser=Nie masz uprawnie do zmiany u縴tkownika lub grupy dla tego serwera wirtualnego
virt_header2=$1 dla $2

vserv_title=Konfiguracja serwera wirtualnego
vserv_ecannot=Nie mo縠sz zmienia adresu tego serwera wirtualnego
vserv_addr=Adres
vserv_addrs=Adresy
vserv_port=Port
vserv_any=Dowolny
vserv_default=Domy秎ny
vserv_root=Katalog g丑wny dla dokumentu
vserv_name=Nazwa serwera
vserv_delete=Usu serwer wirtualny
vserv_err=Nie uda硂 si zachowa serwera wirtualnego
vserv_eaddr1=Nie podano adresu
vserv_eaddr2='$1' nie jest poprawnym adresem
vserv_eport='$1' nie jest poprawnym portem
vserv_eroot='$1' nie jest poprawnym katalogiem g丑wnym dla dokument體
vserv_ename='$1' nie jest poprawn nazw serwera
vserv_eaddrs=Nie podano 縜dnego adresu dla serwer體 wirtualnych

show_title=Dyrektywy
show_edit=Zmie dyrektywy Apache'a:
show_these=Zmie r阠znie dyrektywy Apache'a
show_ok=Zmie

manual_title=Zmie dyrektywy
manual_header=U縴j poni縮zej ramki, aby r阠znie zmieni dyrektywy Apache'a w&nbsp;$1, kt髍e dotycz tego serwera wirtualnego, katalogu lub plik體.
manual_ecannot=Nie masz uprawnie do r阠znej zmiany dyrektyw

dir_title=Opcje dotycz眂e katalog體
dir_header=Dla $1 na $2
dir_show=Poka dyrektywy
dir_edit=Zmie dyrektywy
dir_opts=Opcje dotycz ..
dir_Directory=katalogu
dir_Files=plik體
dir_Location=lokacji
dir_type=Dotyczy
dir_regexp=Wyra縠nie regularne?
dir_exact=Dok砤dny wzorzec
dir_re=Dopasuj wyra縠nie regularne
dir_path=ie縦a
dir_return=indeksu katalog體
dir_header2=$1 dla $2

type_0=Procesy i&nbsp;ograniczenia
type_1=Sie oraz adresy
type_2=Modu硑 Apache'a
type_3=Logowanie
type_4=Kontrola dost阷u
type_5=Opcje dokument體
type_6=Typy MIME
type_7=Obs硊ga b酬d體
type_8=U縴tkownicy i&nbsp;grupy
type_9=R罂ne
type_10=Aliasy i&nbsp;przekierowania
type_11=Skrypty CGI
type_12=Indeksowanie katalog體
type_13=Serwery proxy
type_14=Opcje SSL
type_15=Perl
type_16=PHP

htaccess_title=Pliki opcji dla katalog體
htaccess_ecannot=Nie mo縠sz modyfikowa plik體 <tt>htaccess</tt>
htaccess_desc=Dodatkowe opcje dla katalog體 mog by okre秎one w&nbsp;pliku (z&nbsp;regu硑 nazywanym <tt>.htaccess</tt>) w&nbsp;ka縟ym katalogu. Opcje dotycz wszystkich plik體 w&nbsp;tym katalogu i&nbsp;wszystkich podkatalogach, o&nbsp;ile nie zostan zmienione przez inny plik opcji.
htaccess_create=Utw髍z plik opcji
htaccess_find=Znajd pliki opcji
htaccess_auto=Automatycznie
htaccess_from=Od katalogu
htaccess_return=listy plik體 opcji
htaccess_edir='$1' nie jest poprawnym katalogiem
htaccess_ecreate=Nie masz uprawnie do tworzenia pliku opcji
htaccess_edelete=Nie masz uprawnie do kasowania tego pliku opcji

htindex_ecannot=Nie masz uprawnie do zmian tego pliku opcji
htindex_title=Plik opcji dotycz眂ych katalog體
htindex_delete=Skasuj plik
htindex_show=Poka dyrektywy
htindex_edit=Zmie dyrektywy
htindex_opts=Opcje dotycz眂e katalog體
htindex_file=Konfiguracja dotycz眂a plik體
htindex_create=Utw髍z opcje dotycz眂e katalog體
htindex_regexp=Wyra縠nie regularne?
htindex_exact=Dok砤dny wzorzec
htindex_re=Dopasuj wyra縠nie regularne
htindex_path=ie縦a
htindex_header=Dla $1
htindex_header2=$1 dla pliku opcji $2
htindex_return=pliku opcji

htfile_title=Opcje dotycz眂e plik體
htfile_header=Dla $1 na $2
htfile_show=Poka dyrektywy
htfile_edit=Zmie dyrektywy
htfile_apply=Opcje dotycz ..
htfile_header2=$1 dla $2

reconfig_title=Rekonfiguruj znane modu硑
reconfig_ecannot=Nie masz uprawnie do rekonfiguracji Apache'a
reconfig_ever=Nie uda硂 si okre秎i wersji aplikacji serwera Apache $1. Sprawd <a href='$2'>konfiguracj modu硊</a>, aby upewni si, 縠 podano poprawn 禼ie縦.
reconfig_desc1=Konfiguracja Apache'a zosta砤 zmieniona lub nie by砤 jeszcze sprawdzana przez Webmina. Poni縠j znajduje si lista wszystkich obs硊giwanych przez Webmina modu丑w Apache'a. Te z&nbsp;nich, kt髍e s zainstalowane, zosta硑 zaznaczone. Mo縠sz zaznaczy lub odznaczy niekt髍e z&nbsp;nich, je秎i lista nie jest prawdziwa.
reconfig_desc2=Poni縠j znajduje si lista wszystkich modu丑w Apache'a obs硊giwanych przez Webmina, te kt髍e zosta硑 zainstalowane s zaznaczone. Je秎i korzystasz z&nbsp;dynamicznie uruchomionych modu丑w, powinienne zaznaczy je r阠znie.
reconfig_ok=Rekonfiguruj

defines_title=Zmie zdefiniowane parametry
defines_ecannot=Nie masz uprawnie do zmian definicji httpd
defines_desc=Podczas uruchamiania Apache'a parametry mog by przekazywane za pomoc opcji <tt>-D</tt> z&nbsp;linii polece. Poniewa parametry te mog wp硑wa na dyrektywy u縴wane w&nbsp;plikach konfiguracyjnych, Webmin musi wiedzie, kt髍e z&nbsp;nich przekazywane s Apache'owi podczas uruchamiania. Wpisz te parametry w&nbsp;polu po prawej.
defines_config=Zauwa, 縠 nast阷uj眂e definiowalne parametry zosta硑 ju okre秎one&nbsp;: $1

authu_ecannot='$1' nie jest plikiem z&nbsp;uprawnionymi u縴tkownikami
authu_title=Lista u縴tkownik體
authu_header=W&nbsp;pliku $1
authu_header2=U縴tkownicy z&nbsp;pliku $1
authu_none=Brak u縴tkownik體 w&nbsp;pliku $1
authu_add=Dodaj nowego u縴tkownika
authu_return=lista u縴tkownik體
authu_edit=Zmie u縴tkownika
authu_create=Utw髍z u縴tkownika
authu_user=Nazwa u縴tkownika
authu_pass=Has硂
authu_enc=Zakodowane..
authu_plain=Otwartym tekstem..
authu_err=Nie uda硂 si zachowa u縴tkownika.
authu_euser=Nie podano nazwy u縴tkownika
authu_euser2=Nazwa u縴tkownika nie mo縠 zawiera&nbsp;':'
authu_edup=U縴tkownik o&nbsp;nazwie '$1' ju istnieje
authu_sync=Poni縮ze opcje pozwalaj na skonfigurowanie Webmina tak, aby automatycznie dodawa, uaktualnia, kasowa u縴tkownika z&nbsp;tego pliku hase, gdy jest on dodawany, modyfikowany lub usuwany w&nbsp;module <tt>U縴tkownicy i&nbsp;grupy</tt>
authu_screate=Tw髍z u縴tkownika, gdy u縴tkownik uniksowy jest tworzony
authu_sdelete=Usuwaj u縴tkownika, gdy u縴tkownik uniksowy jest usuwany
authu_smodify=Zmieniaj u縴tkownika, gdy u縴tkownik uniksowy jest zmieniany

authg_ecannot='$1' nie jest dopuszczalnym plikiem grup
authg_title=Lista grup
authg_header=W&nbsp;pliku $1
authg_header2=Grupy z&nbsp;pliku $1
authg_none=Brak grup w&nbsp;pliku $1
authg_add=Dodaj now grup
authg_return=listy grup
authg_edit=Zmie grup
authg_create=Utw髍z grup
authg_group=Nazwa grupy
authg_mems=Cz硂nkowie
authg_dont=Nie zmieniaj
authg_set=Zmie na..
authg_err=Nie uda硂 si zachowa grupy
authg_euser=Nie podano nazwy grupy
authg_euser2=Nazwa grupy nie mo縠 zawiera&nbsp;':'
authg_edup=Grupa o&nbsp;nazwie '$1' ju istnieje

stop_err=Nie uda硂 si wy潮czy Apache'a
stop_ecannot=Nie masz uprawnie do wy潮czania Apache'a
stop_epid=Nie uda硂 si otworzy pliku z&nbsp;numerem PID $1
stop_epid2=Niepoprawny plik z&nbsp;numerem PID $1
stop_esig=Nie uda硂 si wys砤 sygna硊 SIGTERM do procesu $1

start_err=Uruchomienie Apache'a nie powiod硂 si
start_ecannot=Nie masz uprawnie do uruchamiania Apache'a
start_ecmd=$1 nie powiod硂 si&nbsp;: $2
start_eunknown=Nieznana przyczyna

restart_err=Nie uda硂 si zastosowa zmian
restart_epid=Nie uda硂 si otworzy piku z&nbsp;numerem PID $1
restart_epid2=Niepoprawny plik z&nbsp;numerem PID $1
restart_esig=Wysy砤nie sygna硊 SIGHUP do procesu $1
restart_eunknown=Nieznana przyczyna

acl_virts=Wirtualne serwery, kt髍e ten u縴tkownik mo縠 zmienia
acl_vall=Wszywtkie
acl_vsel=Wybrane..
acl_defserv=Serwer domy秎ny
acl_global=Mo縠 zmienia ustawienia og髄ne?
acl_htaccess=tylko .htaccess
acl_create=Mo縠 tworzy wirualne serwery?
acl_vuser=Mo縠 zmienia u縴tkownik體 serwera wirtualnego?
acl_vaddr=Mo縠 zmienia adresy wirtualnych serwer體?
acl_pipe=Mo縠 przekierowywa logi do program體?
acl_stop=Mo縠 w潮cza i&nbsp;wy潮cza Apache'a
acl_dir=Limit ilo禼i plik體 w&nbsp;katalogu
acl_types=Dost阷ne typy dyrektyw
acl_all=Wszystkie
acl_sel=Wybrane..

core_maxconc=Maksymalna liczba jednoczesnych zapyta
core_maxkeep=Maksymalna liczba podtrzyma po潮czenia
core_maxreq=Maksymalna liczba zapyta dla procesu serwera
core_minspare=Minimalna liczba zapasowych proces體 serwera
core_maxspare=Maksymalna liczba zapasowych proces體 serwera
core_initial=Pocz眛kowa liczba proces體 serwera
core_emaxconc=Maksymalna liczba jednoczesnych zapyta musi by liczb ca砶owit
core_emaxkeep=Maksymalna liczba podtrzyma po潮czenia musi by liczb ca砶owit
core_emaxreq=Maksymalna liczba zapyta dla procesu serwera musi by liczb ca砶owit
core_eminspare=Minimalna liczba zapasowych proces體 serwera musi by liczb ca砶owit
core_emaxspare=Maksymalna liczba zapasowych proces體 serwera musi by liczb ca砶owit
core_einitial=Pocz眛kowa liczba proces體 serwera musi by liczb ca砶owit
core_default=Domy秎ne
core_cpulimit=Ograniczenie wykorzystania CPU
core_memlimit=Ograniczenie wykorzystania pami阠i
core_proclimit=Ograniczenie liczby proces體
core_cpulimit2=ograniczenie wykorzystania CPU
core_memlimit2=ograniczenie wykorzystania pami阠i
core_proclimit2=ograniczenie liczby proces體
core_slimit=Ograniczenie mi阫kie
core_hlimit=Ograniczenie twarde
core_eslimit=$1 nie jest poprawnym mi阫kim $2
core_ehlimit=$1 nie jest poprawnym twardym $2
core_dport=Domy秎ny port:
core_address=Adres
core_port=Port
core_listen=Nas硊chiwanie na adresach i&nbsp;portach
core_eaddress='$1' nie jest poprawnym adresem
core_eport='$1' nie jest poprawnym portem
core_eoneaddr=Musisz poda co najmniej jeden adres, na kt髍ym serwer b阣zie nas硊chiwa
core_edefport=Niepoprawny port domy秎ny
core_multi=Wielokrotne zapytania w&nbsp;jednym po潮czeniu
core_ekeep='$1' nie jest poprawn liczb podtrzyma po潮czenia
core_ltwice=Poszukiwa dwukrotnie
core_keeptout=Czas przeterminowania podtrzymania po潮czenia
core_lqueue=Rozmiar kolejki nas硊chiwania
core_bufsize=Rozmiar bufora nadawczego TCP
core_admin=Adres e-mail administratora serwera
core_rtout=Czas przeterminowania zapytania
core_bhostname=U縴 nazwy hosta podanej przez przegl眃ark
core_lookup=Poszukiwa nazw host體
core_useauth=Dokonywa identyfikacji u縴tkownik體 wg RFC1413
core_altnames=Alternatywne nazwy serwer體 wirtualnych
core_hostname=Nazwa hosta serwera
core_virtaddr=Adresy dla serwer體 wirtualnych opartych na nazwach
core_ekeeptout=Czas przeterminowania podtrzymania musi by liczb ca砶owit
core_elqueue=Rozmiar kolejki nas硊chiwania musi by liczb ca砶owit
core_ebufsize=Rozmiar bufora nadawczego TCP musi by liczb ca砶owit
core_ertout=Czas przeterminowania zapytania musi by liczb ca砶owit
core_ehostname=Niepoprawna nazwa hosta serwera
core_osdefault=Domy秎ny dla OS
core_noadmin=Brak
core_auto=Automatycznie
core_ekeep='$1' nie jest poprawn liczb of podtrzyma po潮czenia
core_evirtaddr='$1' nie jest poprawnym adresem dla opartych na nazwie serwer體 wirtualnych
core_auth=Opcje autoryzacji
core_mime=Typy MIME i&nbsp;kodowanie
core_indexing=Indeksowanie i&nbsp;pliki indeksowe
core_hostacc=Kontrola dost阷u opatra o&nbsp;nazwy host體
core_diropts=Opcje katalog體
core_filesel=Wybrane poni縠j...
core_execcgi=Uruchamianie programy CGI
core_flink=edzenie dowi眤a sybmolicznych
core_inclexe=W潮czanie plik體 i&nbsp;program體 po stronie serwera
core_incl=W潮czanie plik體 po stronie serwera
core_genind=Generowanie indeks體 dla katalog體
core_genmview=Generowanie wielowidoki
core_flinkmatch=edzenie dowi眤a sybmolicznych przy zgodnym u縴tkowniku
core_optsel=Ustawione poni縠j..
core_enable=W潮czone
core_disable=Wy潮czone
core_optfile=Pliki opcji dla katalog體
core_overr=Opcje w&nbsp;pliku maj priorytet..
core_genmd5=Generowa sum kontroln MD5
core_docroot=Katalog g丑wny dla dokument體
core_eoptfile=Mo縠 by tylko jeden plik opcji
core_enoopt=Nie podano nazwy pliku opcji
core_enodoc=Katalog g丑wny dla dokument體 '$1' nie istnieje
core_sigemail=Adres e-mail
core_signame=Nazwa serwera
core_signone=Brak
core_virtpath=ie縦a dla serwera wirtualnego
core_footer=Stopka komunikatu o&nbsp;b酬dzie
core_evirtpath=ie縦a dla serwera wirtualnego musi si zaczyna od /
core_defmime=Domy秎ny typ MIME
core_edefmime=Domy秎ny typ MIME musi by postaci typ/podtyp
core_realm=Nazwa dziedziny autoryzacji
core_authtype=Rodzaj autoryzacji
core_authall=Wszystkie rodzaje autoryzacji
core_authany=Dowolny rodzaj autoryzacji
core_authlog=Wymuszenie logowania
core_satisfy=Klienci musz spe硁i
core_salone=Wolnostoj眂y
core_inetd=Uruchamiany przez <tt>inetd</tt>
core_verosmod=Wersja OS i modu硑
core_veros=Wersja i OS
core_ver=Tylko wersja
core_coredir=Katalog zrzutu pami阠i
core_lockfile=Plik blokady serwera
core_maxbody=Maksymalny rozmiar cz甓ci podstawowej zapytania
core_maxhead=Maksymalna ilo舵 nag丑wk體 w&nbsp;zapytaniu
core_maxshead=Maksymalny rozmiar nag丑wk體 w&nbsp;zapytaniu
core_maxline=Maksymalna d硊go舵 linii w&nbsp;zapytaniu
core_pid=Nr PID serwera
core_score=Plik rejestru pami阠i wsp蟪dzielonej
core_exec=Spos骲 uruchamiania serwera
core_header=Nag丑wek HTTP serwera
core_ecore=Niepoprawny katalog zrzutu pami阠i
core_elock=Niepoprawny plik blokady
core_ebody=Niepoprawny rozmiar cz甓ci podstawowej
core_ehead=Niepoprawna liczna nag丑wk體
core_eshead=Niepoprawny rozmiar nag丑wka
core_eline=Niepoprawna d硊go舵 linii zapytania
core_epid=Niepoprawny plik numeru PID
core_escore=Niepoprawny plik rejestru
core_sroot=Katalog g丑wny serwera
core_group=Nazwa grupy
core_gid=Nr ID grupy
core_user=Nazwa u縴tkownika
core_uid=Nr ID u縴tkownika
core_asgroup=Uruchom jako grupa Uniksa
core_asuser=Uruchom jako u縴tkownik Uniksa
core_euid='$1' nie jest poprawnym ID u縴tkownika
core_egid='$1' nie jest poprawnym ID grupy
core_tourl=Przejd do URL-a..
core_mesg=Poka komunikat..
core_error=Kod b酬du
core_resp=Odpowied
core_urlmsg=URL lub komunikat
core_custom=W砤sne komunikaty b酬d體
core_eerror='$1' nie jest poprawnym kodem b酬du
core_eurl='$1' nie jest poprawnym URL-em
core_syslog=Logowania systemowego
core_filelog=Pliku
core_proglog=Programu 
core_errfile=Plik logowania b酬d體
core_logto=B酬dy logowane do
core_efilelog=Niepoprawny plik logowania b酬d體
core_edirlog=Plik logowania b酬d體 nie znajduje si w&nbsp;dozwolonym katalogu
core_efilemiss=Brak pliku logowania b酬d體
core_eprogmiss=Brak programu logowania b酬d體
core_eperm=Nie masz uprawnie do przekierowywania logowania do program體
core_allmod=Wszystkie modu硑
core_selmod=Wybrane modu硑..
core_actmod=Modu硑 aktywne
core_option=Opcja
core_setdir=Ustawi dla katalogu
core_merge=Uwzgl阣ni ustawienia dla nadrz阣nego
core_users=Tyko u縴tkownicy
core_groups=Tyko grupy
core_allusers=Wszyscy dopuszczeni u縴tkownicy
core_none=痑den
core_all=Wszystkie
core_product=Tylko produkt

mod_negotiation_cache=Buforowa dokumenty o&nbsp;negocjowanej zawarto禼i?
mod_negotiation_pri=Priorytety j陑yk體 dla wielowidok體
mod_negotiation_def=Default
mod_negotiation_epri=Nie podano priorytet體 j陑yk體

mod_cgi_logname=Plik logowania skrypt體 CGI
mod_cgi_none=Brak
mod_cgi_elogname=Niepoprawny plik logowania skrypt體 CGI
mod_cgi_logsize=Maksymalny rozmiar logu CGI
mod_cgi_default=Default
mod_cgi_elogsize=Rozmiar logu CGI musi by liczb ca砶owit.
mod_cgi_post=Maksymalny rozmiar logowanych przes砤nych danych
mod_cgi_epost=Rozmiar przes砤nych danych musi by liczb ca砶owit.
mod_cgi_eunder=Plik logowania skrypt體 CGI nie znajduje si w&nbsp;dozwolonym katalogu.

mod_alias_from=Z
mod_alias_to=Do
mod_alias_status=Stan
mod_alias_efrom='$1' nie jest poprawnym $2.
mod_alias_edest='$1' nie jest poprawnym $2 celu.
mod_alias_alias=Aliasy katalogu dokument體
mod_alias_alias2=aliasem dokumentu
mod_alias_regexp=Wyra縠nie regularne dla katalogu dokument體
mod_alias_regexp2=wyra縠niem regularnym dla dokument體
mod_alias_redir=URL-e przekierowania
mod_alias_redir2=URL-em przekierowania
mod_alias_rredir=Wyra縠nie regularne dla URL-i przekierowania
mod_alias_rredir2=wyra縠niem regularnym dla URL-i przekierowania
mod_alias_tredir=Tymczasowe URL-e przekierowania
mod_alias_tredir2=tymczasowym URL-em przekierowania
mod_alias_predir=Sta砮 URL-e przekierowania
mod_alias_predir2=sta硑m URL-em przekierowania
mod_alias_cgi=Aliasy katalog體 CGI
mod_alias_cgi2=aliasem katalog體 CGI
mod_alias_rcgi=Wyra縠nie regularne dla katalog體 CGI
mod_alias_rcgi2=wyra縠niem regularnym dla katalog體 CGI
mod_alias_estatus='$1' nie jest poprawnym stanem.

mod_proxy_proxy=Dzia砤 jako serwer proxy?
mod_proxy_req=Zapytania
mod_proxy_forw=Przekierowa do
mod_proxy_all=Wszystkie
mod_proxy_match=Pasuj眂e do..
mod_proxy_pass=Zapytania przekazywane innym proxy
mod_proxy_local=ie縦a lokalnego URL-a
mod_proxy_remote=Zdalny URL
mod_proxy_map=Zast眕 lokalne URL-e zdalnymi
mod_proxy_block=Zablokowa zapytania do domen
mod_proxy_eblock=Nie podano domen do zablokowania
mod_proxy_type=Typ
mod_proxy_noproxy=Bez proxy dla..
mod_proxy_nopass=Nie przekazuj innym proxy zapyta o
mod_proxy_nodomain=Domena dla zapyta bez domeny
mod_proxy_none=Brak
mod_proxy_enodomain=Niepoprawna domy秎na domena
mod_proxy_connect=Porty, do kt髍ych zezwolono na CONNECT
mod_proxy_default=Domy秎ne
mod_proxy_econnect=Niepoprawne porty dla CONNECT
mod_proxy_dir=Katalog bufor體 cache
mod_proxy_edir=Niepoprawna nazwa katalogu bufor體 cache
mod_proxy_size=Rozmiar bufor體 cache
mod_proxy_esize=Niepoprawny rozmiar bufor體 cache
mod_proxy_garbage=Okres pomi阣zy czyszczeniami bufor體 cache
mod_proxy_nogc=Nie czy舵
mod_proxy_hours=godzin
mod_proxy_egarbage=Niepoprawny okres pomi阣zy czyszczeniami bufor體 cache
mod_proxy_maxexp=Maksymalny czas wa縩o禼i buforowanego pliku
mod_proxy_emaxexp=Niepoprawny maksymalny czas wa縩o禼i buforowanego pliku
mod_proxy_expfac=Czynnik dla czasu wa縩o禼i buforowanego pliku
mod_proxy_eexpfac=Niepoprawny czynnik dla czasu wa縩o禼i buforowanego pliku
mod_proxy_levels=Liczba poziom體 katalog體 bufor體
mod_proxy_elevels=Niepoprawna liczba poziom體 katalog體 bufor體
mod_proxy_length=D硊go舵 nazwy katalogu bufor體
mod_proxy_elength=Niepoprawna d硊go舵 nazwy katalogu bufor體
mod_proxy_defexp=Standardowy czas wa縩o禼i bufor體 cache
mod_proxy_edefexp=Niepoprawny standardowy czas wa縩o禼i bufor體 cache
mod_proxy_finish=Zako馽zy i&nbsp;buforowa przesy砤nie po
mod_proxy_efinish=Niepoprawny procent przes砤nia
mod_proxy_nocache=Domeny nie buforowane
mod_proxy_none2=Brak
mod_proxy_none3=Do 縜dnej
mod_proxy_enocache=Nie podano nie buforowanych domen
mod_proxy_erequest='$1' nie jest poprawnym zapytaniem
mod_proxy_epurl='$1' nie jest poprawnym URL-em dla proxy
mod_proxy_elurl='$1' nie jest poprawn 禼ie縦 lokalnego URL-a
mod_proxy_erurl='$1' nie jest poprawnym zdalnym URL-em
mod_proxy_eip='$1' nie jest poprawnym adresem IP
mod_proxy_ehost='$1' nie jest poprawn nazw hosta
mod_proxy_edomain='$1' nie jest poprawn domen
mod_proxy_enet='$1' nie jest poprawn sieci
mod_proxy_enetbit='$1' nie jest poprawn par sie/bity maski
mod_proxy_eunder=Katalog bufor體 cache nie znajduje si w&nbsp;dozwolonym katalogu
mod_proxy_rurl=Zdalny URL
mod_proxy_lurl=ie縦a lokalnego URL-a
mod_proxy_headers=Podmienia zdaln lokalizacj: lokalne nag丑wki
mod_proxy_ip=Adres IP
mod_proxy_host=Nazwa hosta
mod_proxy_domain=Domena
mod_proxy_net=IP sieci
mod_proxy_netbit=Sie/bity maski

mod_log_agent_default=Domy秎ny
mod_log_agent_file=Plik..
mod_log_agent_program=Program..
mod_log_agent_log=Plik logowania przegl眃arek
mod_log_agent_efile=$1 nie jest poprawn nazw pliku logowania przegl眃arek

mod_log_config_common=Og髄ny format logowania
mod_log_config_named=Nazwane formaty logowania
mod_log_config_nick=Skr髏 nazwy
mod_log_config_format=Format
mod_log_config_deflog=Domy秎ny format logowania
mod_log_config_default=Domy秎ny
mod_log_config_write=Zapisywa do
mod_log_config_filprog=Pliku lub programu
mod_log_config_file=Pliku..
mod_log_config_program=Programu..
mod_log_config_log=Pliki logowania dost阷u
mod_log_config_enick='$1' nie jest poprawn nazw skr骳on
mod_log_config_eformat=Brak formatu log體 podanego dla $1
mod_log_config_enofilprog=Nie podano pliku ani programu logowania
mod_log_config_efilprog='$1' nie jest dozwolon nazw pliku lub programu logowania
mod_log_config_eifset=Opcji 'Je秎i ustawiono' nie mo縩a u縴 dla domy秎nego formatu logowania

mod_log_referer_default=Domy秎ny
mod_log_referer_file=Plik..
mod_log_referer_program=Program..
mod_log_referer_log=Plik logowania odsy砤
mod_log_referer_nolog=Nie logowa odsy砤 z
mod_log_referer_elog=$1 nie jest poprawn nazw pliku logowania odsy砤
mod_log_referer_edir=log odsy砤 nie znajduje si w&nbsp;dozwolonym katalogu

mod_status_msg=Czy pokazywa poszerzone informacje o&nbsp;stanie

mod_mime_ext=Rozszerzenia
mod_mime_xtype=Dodatkowe typy MIME
mod_mime_mtype=typ MIME
mod_mime_chandl=Uchwyty zawarto禼i
mod_mime_cencs=Kodowania zawarto禼i
mod_mime_cenc=kodowaniem zawarto禼i
mod_mime_clangs=J陑yki zawarto禼i
mod_mime_clang=j陑ykiem zawarto禼i
mod_mime_defmime=Traktowa wszystkie pliki jako typu MIME
mod_mime_real=Typ reczywisty
mod_mime_etype=Niepoprawny typ MIME
mod_mime_pass=Przekaza wszystkie pliki do uchwytu
mod_mime_file=Plik typ體 MIME
mod_mime_default=Domy秎ny
mod_mime_ignhand=Ignorowa uchwyty dla rozszerze
mod_mime_none=Brak
mod_mime_xchars=Dodatkowe zestawy znak體
mod_mime_einvalid='$1' nie jest porawnym $2
mod_mime_eext=Nie podano rozszerze dla $1 $2
mod_mime_type=Typ
mod_mime_handler=Uchwyt
mod_mime_enc=Kodowanie
mod_mime_lang=J陑yk
mod_mime_chars=Zestaw znak體
mod_mime_igntype=Ignorowa typy MIME dla rozszerze
mod_mime_ignenc=Ignorowa kodowanie dla rozszerze

mod_setenvif_header=Nag丑wek
mod_setenvif_match=Dopasowany do
mod_setenvif_case=Rozr罂nianie wielko禼i liter
mod_setenvif_var=Zmienna
mod_setenvif_value=Warto舵
mod_setenvif_txt=Zmienne ustawiane na podstawie nag丑wk體 zapytania
mod_setenvif_eheader=Niepoprawy nag丑wek zapytania '$1'
mod_setenvif_eregex=Niepoprawne wyra縠nie regularne '$1'
mod_setenvif_evar=Niepoprawna nazwa zmiennej '$1'
mod_setenvif_clear=Wyczy舵

mod_userdir_default=Domy秎ny
mod_userdir_all=Wszyscy u縴tkownicy
mod_userdir_except=Opr骳z u縴tkownik體
mod_userdir_dir=Katalog WWW u縴tkownika

mod_imap_action=Reakcja na nieprawid硂we u縴cie 'imagemap'
mod_imap_default=Domy秎na
mod_imap_godefurl=Przej舵 do domy秎nego URL-a
mod_imap_form=Pokaza sformatowane menu
mod_imap_semiform=Pokaza p蟪-sformatowane menu
mod_imap_unform=Pokaza niesformatowane menu
mod_imap_disperr=Wy秝ietli b潮d serwera
mod_imap_donoth=Nic nie robi
mod_imap_goimap=Przej舵 do URL-a 'imagemap'
mod_imap_goref=Przej舵 do URL-a odsy砤cza
mod_imap_gourl=Przej舵 do URL-a...
mod_imap_defact=Domy秎na reakcja dla 'imagemap'
mod_imap_default2=Domy秎nie
mod_imap_root=Katalog g丑wny serwera
mod_imap_imapurl=URL 'imagemap'
mod_imap_refurl=URL odsy砤cza
mod_imap_url=URL...
mod_imap_defbase=Domy秎na baza dla 'imagemap'
mod_imap_eurl='$1' nie jest poprawnym URL-em

mod_speling_autocorr=Czy automatycznie poprawia b酬dnie napisane URL-e?
mod_speling_default=Domy秎nie

mod_actions_mime=Uchwyt / Typ MIME
mod_actions_cgiurl=CGI script URL
mod_actions_mimecgi=Akcje CGI dla uchwytu lub typu MIME
mod_actions_http=Metoda HTTP
mod_actions_cgi=Skrypt CGI
mod_actions_httpcgi=Akcje CGI dla metody HTTP
mod_actions_emime='$1' nie jest poprawnym uchwytem lub typem MIME
mod_actions_ecgi='$1' nie jest poprawnym skryptem CGI
mod_actions_enometh=Nie wybrano metody dla skryptu CGI '$1'

mod_include_incl=W潮czanie plik體 z&nbsp;bitem uruchamiania przez procesy?
mod_include_set=Tak i&nbsp;ustaw dat ostatniej modyfikacji
mod_include_default=Domy秎nie

mod_dir_txt=Directory index files

mod_autoindex_default=Domy秎ne
mod_autoindex_asc=Rosn眂o
mod_autoindex_descend=Malej眂o
mod_autoindex_name=Nazwy
mod_autoindex_date=Daty
mod_autoindex_size=Rozmiaru
mod_autoindex_desc=Opisu
mod_autoindex_sort=Porz眃kowanie indeksu katalogu wg

browsermatch_regexp=Wyra縠nie reg. dla przegl眃arki
browsermatch_case=Rozr罂nia wielko舵 liter?
browsermatch_var=Ustawi zmienn
browsermatch_value=Warto舵
browsermatch_txt=Zmienne ustawiane na podstawie rodzaju przegl眃arki
browsermatch_evar=Niepoprawna nazwa zmiennej '$1'
browsermatch_clear=Wyczy舵

autoindex_fname=Nazwa pliku
autoindex_mime=Typ MIME
autoindex_enc=Kodowanie
autoindex_icon=Ikona
autoindex_alt=Tekst zast阷czy
autoindex_match=Dopasuj wg
autoindex_fte=Nazwy plik體, typy i&nbsp;kodowanie
autoindex_diricon=Ikony dla indeksu katalogu
autoindex_deficon=Domy秎na ikona dla indeksu katalogu
autoindex_default=Domy秎nie
autoindex_edeficon=Niepoprawny URL dla domy秎nej ikony
autoindex_diralt=Znaczniki ALT dla indeks體 katalog體
autoindex_desc=Opis
autoindex_fnames=Nazwy plik體
autoindex_dirdesc=Opisy indeks體 katalog體
autoindex_fancy=Pokazywa osdobne indeksy katalog體
autoindex_htmltitle=Pokazywa tytu HTML jako opis
autoindex_iheight=Wysoko舵 ikony
autoindex_iwidth=Szeroko舵 ikony
autoindex_sort=Zezwoli u縴tkownikowi na porz眃kowanie kolumn
autoindex_fildesc=Pokazywa opisy plik體
autoindex_htags=Znaczniki nag丑wka wysy砤nego HTML-u
autoindex_mtime=Pokazywa czas ostatniej modyfikacji
autoindex_size=Pokazywa rozmiary plik體
autoindex_iconlink=Do潮cza ikon do odsy砤cza
autoindex_fwidth=Szeroko舵 nazwy pliku
autoindex_dwidth=Szeroko舵 opisu
autoindex_dirfirst=Pokazywa najpierw katalogi
autoindex_default2=Domy秎ne
autoindex_select=Zaznaczone poni縠j...
autoindex_default3=Domy秎na
autoindex_pixels=pikseli
autoindex_chars=znak體
autoindex_diropt=Opcje indeksu katalogu
autoindex_dirhead=Plik nag丑wk體 indeksu katalogu
autoindex_default4=Domy秎ny
autoindex_edirhead=Niepoprawna nazwa pliku nag丑wk體 indeksu
autoindex_dirfoot=Plik stopki indeksu katalogu
autoindex_edirfoot=Niepoprawna nazwa pliku stopki indeksu
autoindex_ignore=Pliki ignorowane w&nbsp;indeksie katalogu
autoindex_eiconurl='$1' nie jest poprawnym URL-em ikony
autoindex_emiss=Brak $1 dla $2
autoindex_emissquot=Brak $1 dla '$2'
autoindex_enodesc=Brak opisu dla pliku $1
autoindex_enofile=Brak plik體 do opisania '$1'
autoindex_eiconsize='$1' nie jest poprawnym rozmiarem ikony
autoindex_ewidth='$1' nie jest poprawn szeroko禼i

mod_mime_magic_file=Plik magicznych liczb MIME
mod_mime_magic_none=Brak
mod_mime_magic_efile=Niepoprawna nazwa pliku magicznych liczb MIME

mod_env_var=Zmienna
mod_env_value=Warto舵
mod_env_pass=Pass through
mod_env_clear=Wyczy禼i
mod_env_set=Ustawi na..
mod_env_cgivar=Zmienne 秗odowiska dla skrypt體 CGI
mod_env_passall=Przekazywa wszystkie zmienne 秗odowiska do CGI
mod_env_default=Domy秎ne
mod_env_evar='$1' nie jest poprawn nazw zmiennej
mod_env_evalue='$1' nie jest poprawn warto禼i zmiennej

mod_access_order=Kolejno舵 sprawdzania praw dost阷u:
mod_access_denyallow=Zabro, potem pozw髄
mod_access_allowdeny=pozw髄, potem zabro
mod_access_mutual=Obustronne niepowodzenie
mod_access_default=Domy秎na
mod_access_action=Akcja
mod_access_cond=Warunek
mod_access_all=Wszystkie zapytania
mod_access_host=Zapytania z&nbsp;hosta...
mod_access_ip=Zapytania z&nbsp;IP..
mod_access_pip=Zapytania z&nbsp;cz甓ciowego IP..
mod_access_mask=Zapytania z&nbsp;sieci/maski..
mod_access_cidr=Zapytania z&nbsp;sieci/CIDR..
mod_access_var=Gdy ustawiona jest zmienna..
mod_access_allow=Pozw髄
mod_access_deny=Zabro
mod_access_restr=Ogranicz dost阷
mod_access_eip='$1' nie jest poprawnym adresem IP
mod_access_epip='$1' nie jest poprawnym cz甓ciowym adresem IP
mod_access_emask='$1' nie jest poprawn par sie/maska
mod_access_ecidr='$1' nie jest poprawn par sie/CIDR
mod_access_evar='$1' nie jest poprawn nazw zmiennej

mod_auth_ufile=Plik tekstowy u縴tkownik體
mod_auth_uedit=Zmie u縴tkownik體
mod_auth_gfile=Plik tekstowy grup
mod_auth_gedit=Zmie grupy
mod_auth_pass=Czy przekazywa b酬dy do nast阷nego modu硊?
mod_auth_auth=Autoryzacja na podstawie plik體 tekstowych
mod_auth_eudir=Plik tekstowy u縴tkownik體 nie znajduje si w&nbsp;dozwolonym katalogu
mod_auth_egdir=Plik tekstowy grup nie znajduje si w&nbsp;dozwolonym katalogu
mod_auth_eufile=Niepoprawna nazwa pliku tekstowego u縴tkownik體
mod_auth_egfile=Niepoprawna nazwa pliku tekstowego grup

mod_auth_dbm_ufile=Plik DBM u縴tkownik體
mod_auth_dbm_gfile=Plik DBM grup
mod_auth_dbm_pass=Czy przekazywa b酬dy do nast阷nego modu硊?
mod_auth_dbm_auth=Autoryzacja na podstawie plk體 DBM
mod_auth_dbm_eufile=Niepoprawna nazwa pliku DBM u縴tkownik體
mod_auth_dbm_egfile=Niepoprawna nazwa pliku DBM grup

mod_cern_meta_process=Przetwarzanie metaplik體 nag丑wk體
mod_cern_meta_dir=Podkatalog dla metaplik體 nag丑wk體
mod_cern_meta_default=Domy秎ny
mod_cern_meta_edir=Niepoprawna nazwa podkatalogu dla metaplik體 nag丑wk體
mod_cern_meta_suffix=Zako馽zenie nazwy pliku dla metaplik體 nag丑wk體
mod_cern_meta_default2=Domy秎ne
mod_cern_meta_esuffix=Niepoprawne zako馽zenie nazwy dla metaplik體

mod_ssl_enable=Czy w潮czy SSL?
mod_ssl_proto=Protoko硑 SSL
mod_ssl_cfile=Plik certifikat體/kluczy prywatnych
mod_ssl_default=Domy秎ny
mod_ssl_ecfile=Nie podano nazwy pliku certifikat體/kluczy prywatnych
mod_ssl_kfile=Plik kluczy prywatnych
mod_ssl_ekfile=Nie podano nazwy pliku pliku kluczy prywatnych
mod_ssl_clcert=Certifikat SSL klienta
mod_ssl_nreq=Nie wymagany
mod_ssl_opt=Nieobowi眤kowy
mod_ssl_req=Wymagany
mod_ssl_optca=Dopuszczalny brak CA
mod_ssl_cdepth=Stopie certyfikatu klienta
mod_ssl_ecdepth=Stopie certyfikatu musi by liczb ca砶owit
mod_ssl_log=Plik logowania SSL
mod_ssl_elog=Nie podano nazwy pliku logowania SSL
mod_ssl_onlyssl=Pozwala wy潮cznie na dost阷 SSL

log_global=Zmieniono opcje og髄ne $1
log_virtc=Utworzono serwer $1
log_virts=Przekonfigurowano serwer $1
log_virtd=Usuni阾o serwer $1
log_virtm=R阠znie zmieniono serwer $1
log_virt=Zmieniono $1 dla serwera $2
log_dirc=Utworzono katalog $1
log_dirc_l=Utworzono katalog $1 dla serwera $2
log_dirs=Zmieniono katalog $1
log_dirs_l=Zmieniono katalog $1 dla serwera $2
log_dird=Usuni阾o katalog $1
log_dird_l=Usuni阾o katalog $1 dla serwera $2
log_dirm=R阠znie zmieniono katalog $1
log_dirm_l=R阠znie zmieniono katalog $1 dla serwera $2
log_dir=Zmieniono $1 w&nbsp;katalogu $2
log_dir_l=Zmieniono $1 w&nbsp;katalogu $2 dla serwera $3
log_htaccessc=Utworzono plik opcji $1
log_htaccessd=Usuni阾o plik opcji $1
log_htaccessm=R阠znie zmieniono plik opcji $1
log_htaccess=Zmieniono $1 w&nbsp;pliku opcji $2
log_filesc=Utworzono opcje plik體 dla $1
log_filesc_l=Utworzono w&nbsp;pliku $2 opcje plik體 dla $1
log_filess=Zmieniono opcje plik體 dla $1
log_filess_l=Zmieniono w&nbsp;pliku $2 opcje plik體 dla $1
log_filesd=Usuni阾o opcje plik體 dla $1
log_filesd_l=Usuni阾o z&nbsp;pliku $2 opcje plik體 dla $1
log_filesm=R阠znie zmieniono opcje plik體 dla $1
log_filesm_l=R阠znie zmieniono w&nbsp;pliku $2 opcje plik體 dla $1
log_files=Zmieniono $1 w&nbsp;opcjach plik體 dla $2
log_files_l=Zmieniono $1 w&nbsp;pliku $3 opcji plik體 dla $2
log_mime_modify=Zmieniono typ MIME $1
log_mime_create=Dodano typ MIME $1
log_defines=Zmieniono znane parametry
log_reconfig=Przekonfigurowano znane modu硑
log_start=Uruchomiono serwer WWW
log_stop=Zatrzymano serwer WWW
log_apply=Zastosowano zmiany
   0707010001b8b3000081a40000000000000002000000013ac0389700002721000000200000000000000000000000000000001500000003reloc/apache/lang/pt  index_title=Servidor Web Apache
index_eroot=O direct髍io ra韟 do Apache $1 n鉶 existe. Se tem o Apache instalado, ajuste a <a href='$2'>configura玢o do m骴ulo</a> para usar os caminhos correctos.
index_eserver=O ficheiro execut醰el $1 do servidor Apache n鉶 existe. Se tem o Apache instalado, ajuste a <a href='$2'>configura玢o do m骴ulo</a> para usar o caminho correcto.
index_econf=O ficheiro de configura玢o $1 do Apache n鉶 existe. Se tem o Apache instalado, ajuste a <a href='$2'>configura玢o do m骴ulo</a> para usar o caminho correcto.
index_eports=A configura玢o do seu servidor Apache cont閙 mais do que 1 directiva $1. A vers鉶 actual do Webmin n鉶 consegue trabalhar correctamente com esta configura玢o.
index_global=Configura玢o Geral
index_virts=Servidores Virtuais
index_defserv=Servidor Predefinido
index_defdesc1=Define os parametros predefinidos para todos os outros servidores virtuais e processa todos os pedidos n鉶 respondidos.
index_any=Qualquer
index_default=Predefinido
index_auto=Autom醫ico
index_virt=Servidor Virtual
index_vname=Suporta o servidor baseado no nome $1 no endere鏾 $2.
index_vdef=Processa todos os pedidos n鉶 suportados por outros servidores virtuais.
index_defdesc2=Define os par鈓etros predefinidos para todos os outros servidores virtuais.
index_vport=Processa todos os pedidos na porta $1 n鉶 suportados por outros servidores virtuais.
index_vaddr=Suporta todos os pedidos no endere鏾 $1.
index_vaddrport=Suporta todos os pedidos do endere鏾 $1 na porta $2.
index_type=Tipo
index_addr=Endere鏾
index_port=Porta
index_name=Nome do Servidor
index_root=Ra韟 do Documento
index_create=Criar Novo Servidor Virtual
index_return=lista de servidores

cvirt_ecannot=Voc n鉶 est autorizado para criar um servidor virtual
cvirt_err=Erro ao criar servidor servidor virtual
cvirt_eaddr1=Endere鏾 n鉶 introduzido
cvirt_eaddr2='$1' n鉶  um endere鏾 v醠ido
cvirt_eport='$1' n鉶  uma porta v醠ida
cvirt_ename='$1' n鉶  um nome de servidor v醠ido
cvirt_eroot1=Tem de introduzir o documento de ra韟
cvirt_eroot2=Erro ao criar o direct髍io '$1' : $2

etype=Voc n鉶 est autorizado para editar op珲es deste tipo
efailed=Erro ao guardar $1
apache_apply=Aplicar altera珲es
apache_stop=Encerrar o Apache
apache_start=Iniciar o Apache
auth_return=controlo de acesso

global_ecannot=Voc n鉶 est autorizado para editar op珲es gerais
global_mime=Lista geral de tipos MIME
global_mimedesc=Clique num tipo de MIME da lista para edit-lo, ou use o enlace abaixo para adicionar um novo tipo  lista.
global_type=Tipo
global_ext=Extens鮡s
global_add=Adicionar novo tipo de MIME
global_return=Tipos de MIME

mime_ecannot=Voc n鉶 est autorizado para editar tipos de mime
mime_edit=Editar tipo de MIME
mime_add=Adicionar tipos de MIME
mime_header=Extens鮡s de ficheiros para mapeamento MIME
mime_type=Tipos MIME
mime_ext=Extens鮡s
mime_err=Erro ao guardar tipos de MIME
mime_etype='$1' n鉶  um tipo MIME v醠ido

virt_ecannot=Voc n鉶 pode editar este servidor virtual
virt_title=Op珲es de Servidor Virtual
virt_header=Para $1
virt_opts=Op珲es de Servidor Virtual
virt_conf=Configura玢o de Servidor
virt_show=Mostrar Directivas
virt_adddir=Criar Por-Direct髍io, Ficheiros ou Op珲es de Localiza玢o
virt_type=Tipo
virt_exact=valor exacto
virt_re=Igual a express鉶
virt_path=Caminho
virt_return=index do servidor
virt_ecannot=Voc n鉶 pode editar este servidor virtual
virt_euser=Voc n鉶 est autorizado para alterar o utilizador ou o grupo deste servidor virtual.
virt_header2=$1 para $2

vserv_title=Configura玢o do Servidor Virtual
vserv_ecannot=Voc n鉶 est autorizado para editar o endere鏾 deste servidor virtual
vserv_addr=Endere鏾
vserv_port=Porta
vserv_any=Qualquer
vserv_default=Predefinido
vserv_root=Ra韟 do Documento
vserv_name=Nome do Servidor
vserv_delete=Apagar Servidor Virtual
vserv_err=Erro ao guardar o servidor virtual
vserv_eaddr1=Endere鏾 n鉶 introduzido
vserv_eaddr2='$1' n鉶  um endere鏾 v醠ido
vserv_eport='$1' n鉶  uma porta v醠ida
vserv_eroot='$1' n鉶  um um documento de ra韟 v醠ido
vserv_ename='$1' n鉶  um nome de servidor v醠ido

show_title=Directivas
show_edit=Editar a directiva do Apache
show_ok=Editar

dir_title=Op珲es Por-Direct髍io
dir_header=Para $1 em $2
dir_show=Mostrar Directivas
dir_opts=Aplicar op珲es a ..
dir_type=Tipo
dir_regexp=Express鉶?
dir_exact=valor exacto
dir_re=Igual a express鉶
dir_path=Caminho
dir_return=index do direct髍io
dir_header2=$1 para $2

type_0=Processos e Limites
type_1=Rede e Endere鏾s
type_2=M骴ulos do Apache
type_3=Ficheiros de Historial
type_4=Controlo de Acesso
type_5=Op珲es do Documento
type_6=Tipos MIME
type_7=Suporte de Erros
type_8=Utilizador e Grupo
type_9=Miscel鈔ea
type_10=Aliases e Redirecionamentos
type_11=Programas CGI
type_12=Indexa玢o de Direct髍ios
type_13=Proxying
type_14=Op珲es de SSL
type_15=Perl
type_16=PHP

htaccess_title=Op珲es de ficheiros Por-Direct髍io
htaccess_ecannot=Voc n鉶 pode editar ficheiros htaccess
htaccess_desc=Op珲es adicionais de Por-Direct髍io podem ser especificadas num ficheiro (usualmente chamado <tt>.htaccess</tt>) em cada direct髍io. As op珲es aplicam-se a todos os ficheiros do direct髍io e em qualquer sub-direct髍io, excepto se for sobreposto por outro ficheiro de configura玢o.
htaccess_create=Criar Ficheiro de Op珲es
htaccess_find=Procurar ficheiros de op珲es
htaccess_auto=Automaticamente
htaccess_from=Do direct髍io
htaccess_return=lista de op珲es do ficheiro
htaccess_edir='$1' n鉶  um direct髍io v醠ido
htaccess_ecreate=Voc n鉶 est autorizado para criar este ficheiro de op珲es
htaccess_edelete=Voc n鉶 est autorizado para apagar este ficheiro de op珲es

htindex_ecannot=Voc n鉶 est autorizado para editar este ficheiro de op珲es
htindex_title=Ficheiro de Op珲es Por-Direct髍io
htindex_delete=Apagar ficheiro
htindex_show=Mostrar directivas
htindex_opts=Op珲es Por-Direct髍io
htindex_file=Configura玢o Por-Ficheiro
htindex_create=Criar Op珲es Por-Ficheiro
htindex_regexp=Express鉶?
htindex_exact=Valor exacto
htindex_re=igual a express鉶
htindex_path=Caminho
htindex_header=Para $1
htindex_header2=$1 para o ficheiro de op珲es $2
htindex_return=index do ficheiro de op珲es

htfile_title=Op珲es Por-Ficheiro
htfile_header=Para $1 em $2
htfile_show=Mostrar Directivas
htfile_apply=Op珲es aplicadas a ..
htfile_header2=$1 para $2

reconfig_title=Reconfigurar M骴ulos Conhecidos
reconfig_ecannot=Voc n鉶 est autorizado para reconfigurar o Apache
reconfig_ever=Erro ao obter a vers鉶 do execut醰el $1 do servidor Apache. Verifique a sua <a href='$2'>configura玢o de m骴ulos</a> para ter a certeza que este  o caminho correcto.
reconfig_desc1=A configura玢o do Apache foi alterada, ou ainda n鉶 foi examinada pelo Webmin. Abaixo encontra-se uma lista de todos os m骴ulos suportados pelo Webmin, nos quais est鉶 instalados os seleccionados. Voc pode seleccionar ou excluir os m骴ulos se a lista estiver incorrecta.
reconfig_desc2=Abaixo excontra-se a lista de todos os m骴ulos suportados pelo Webmin, dos quais est鉶 selecionados os instalados. Se est a usar m骴ulos carregados din鈓icamente ent鉶 poder precisar de seleccionar aqueles que est鉶 din鈓icamente carregados.
reconfig_ok=Configurar

defines_title=Editar Par鈓etros Definidos
defines_ecannot=Voc n鉶 est autorizado para editar defini珲es httpd
defines_desc=Quando o Apache  iniciado, os par鈓etros s鉶 transmitidos para ele com a op玢o em linha de comando <tt>-D</tt>. Porque estes par鈓etros podem afectar as directivas usadas na sua configura玢o, O Webmin necessita que elas sejam tranmitidas ao Apache aquando do seu arranque. Introduza no campo de texto da direita os par鈓etros usados no seu sistema.

authu_ecannot='$1' n鉶  um ficheiro de texto de utilizadores permitido
authu_title=Lista de Utilizadores
authu_header=No ficheiro $1
authu_header2=Utilizadores do ficheiro de texto $1
authu_none=N鉶 utilizadores no ficheiro de texto $1
authu_add=Adicionar novo utilizador
authu_return=Lista de Utilizadores
authu_edit=Editar Utilizador
authu_create=Criar Utilizador
authu_user=Nome de Utilizador
authu_pass=Palavra de Passe
authu_dont=N鉶 alterar
authu_set=Configurar para..
authu_err=Erro ao guardar utilizador
authu_euser=Sem nome de utilizador introduzido
authu_euser2=O nome de utilizador n鉶 pode conter :
authu_edup=J existe um utilizador chamado '$1'

authg_ecannot='$1' n鉶  um ficheiro de texto de grupos permitido
authg_title=Lista de Grupos
authg_header=No ficheiro $1
authg_header2=Grupos do ficheiro de texto $1
authg_none=N鉶 h grupos no ficheiro de texto $1
authg_add=Adicionar novo grupo
authg_return=lista de grupos
authg_edit=Editar Grupo
authg_create=Criar Grupo
authg_group=Nome do grupo
authg_mems=Membros
authg_dont=N鉶 alterar
authg_set=Configurar para..
authg_err=Erro ao guardar grupo
authg_euser=N鉶 foi introduzido o nome de grupo
authg_euser2=O nome do grupo n鉶 pode conter :
authg_edup=J existe um grupo chamado '$1'

stop_err=Erro ao parar o Apache
stop_ecannot=Voc n鉶 est autorizado para parar o Apache
stop_epid=Erro ao abrir o ficheiro PID $1
stop_epid2=Ficheiro PID $1 inv醠ido
stop_esig=Erro ao enviar o sinal SIGTERM para o processo $1

start_err=Erro ao iniciar o Apache
start_ecannot=Voc n鉶 est autorizado para iniciar o Apache
start_ecmd=$1 falhou : $2
start_eunknown=Raz鉶 desconhecida

restart_err=Erro ao aplicar as altera珲es
restart_epid=Erro ao abrir o ficheiro PID $1
restart_epid2=Ficheiro PID $1 inv醠ido
restart_esig=Erro ao enviar o sinal SIGHUP para o processo $1
restart_eunknown=Raz鉶 desconhecida

acl_virts=Servidores virtuais que este utilizador pode editar
acl_global=Pode editar as op珲es gerais?
acl_htaccess=apenas .htaccess
acl_create=Pode criar servidores virtuais?
acl_vuser=Pode alterar utilizadores dos servidores virtuais?
acl_vaddr=Pode alterar o endere鏾 dos servidores virtuais?
acl_pipe=Pode canalizar historial para programas?
acl_stop=Pode iniciar e terminar o Apache?
acl_dir=Limitar ficheiros para o direct髍io
acl_types=Tipos de directivas disponiveis
acl_all=Todos
acl_sel=Seleccionados..
   0707010001b8b4000081a40000000000000002000000013ac038980000265e000000200000000000000000000000000000001800000003reloc/apache/lang/ru_RU   htaccess_create=杨玟囹 脏殡 相疣戾蝠钼
acl_vuser=填驽 戾螯 镱朦珙忄蝈脲 忤痱筻朦眍泐 皴疴屦?
virt_title=相疣戾蝠 妈痱筻朦眍泐 彦疴屦
stop_epid=硒栳赅 镳 铗牮梃 PID 羿殡 $1
dir_header=碾 $1 磬 $2
apache_stop=务蜞眍忤螯 Apache
index_create=杨溧螯 皖恹 妈痱筻朦睇 彦疴屦
apache_start=羊囵蝾忄螯 Apache
vserv_title=暑眙桡箴圉 妈痱筻朦眍泐 彦疴屦
index_port=项痱
index_default=项 箪铍鬣龛
vserv_any=塔犷
dir_type=诣
start_ecmd=铠桕 潆 $1 : $2
index_vaddr=吾疣徉螓忄弪 怦 玎镳铖 磬 噤疱 $1.
authu_header= 羿殡 $1
index_auto=棱蝾爨蜩麇耜
authg_header2=灭箫稃 桤 蝈犟蝾忸泐 羿殡 $1
reconfig_ecannot=锣 礤 疣琊屮屙 疱觐眙桡箴桊钼囹 apache
dir_re=杨怙噤屙桢  疱.恹.
htfile_header2=$1 潆 $2
vserv_name=褥 彦疴屦
virt_exact=翌黜铄 耦怙噤屙桢
authu_create=杨玟囗桢 项朦珙忄蝈
htfile_title=项羿殡钼 相疣戾蝠
virt_header2=$1 潆 $2
index_eroot=暑痦邂铋 赅蜞腩 Apache $1 礤 耋耱怏弪. 篷腓 Apache 桧耱嚯腓痤忄 磬 忄 耔耱屐, 镱镳噔蝈 <a href='$2'>觐眙桡箴圉棹 祛潴</a> 潆 桉镱朦珙忄龛 觐痧尻蝽 矬蝈.
authu_header2=项朦珙忄蝈腓 桤 蝈犟蝾忸泐 羿殡 $1
virt_show=项赅琨忄螯 蔫疱牝桠
mime_add=念徉怆屙桢 MIME 蜩镟
reconfig_desc1=暑眙桡箴圉 Apache 桤戾豚顸 桦 礤 猁豚 镳钼屦屙 Webmin铎. 丸驽 恹 忤滂蝈 耧桉铌 怦艴 祛潴脲 Apache 镱滗屦骅忄屐 Webmin铎. 软耱嚯腓痤忄眄  溧眄 祛戾眚 祛潴腓 - 恹狃囗  耧桉赍. 蔓 祛驽蝈 恹徼疣螯 桦 铗戾螯恹犷, 羼腓 溧眄 耧桉铌 礤忮疱.
reconfig_desc2=丸驽 镳桠邃屙 耧桉铌 怦艴 祛潴脲 Apache 镱滗屦骅忄屐 Webmin铎. 软耱嚯腓痤忄眄  溧眄 祛戾眚 祛潴腓 - 恹狃囗  耧桉赍. 篷腓 恹 桉镱朦珞弪 滂磬扈麇耜 玎沭箧噱禧 祛潴腓 Apache, 蝾 忸珈铈眍 忄 礤钺躅滂祛 恹狃囹 蝈, 觐蝾瘥 玎沭箧屙 滂磬扈麇耜.
dir_title=项赅蜞腩泐恹 镟疣戾蝠
htfile_apply=相疣戾蝠 镳桁屙桁  ..
index_econf=脏殡 觐眙桡箴圉梃 Apache $1 礤 耋耱怏弪. 篷腓 Apache 桧耱嚯腓痤忄 磬 忄 耔耱屐, 镱镳噔蝈 <a href='$2'>觐眙桡箴圉棹 祛潴</a> 潆 桉镱朦珙忄龛 觐痧尻蝽 矬蝈.
etype=锣 礤 疣琊屮屙 疱溧牝桊钼囹 镟疣戾蝠 溧眄钽 蜩镟.
authg_none=湾 沭箫  蝈犟蝾忸 羿殡 $1
vserv_delete=愉嚯栩 妈痱筻朦睇 彦疴屦
authu_edit=绣溧牝桊钼囗桢 项朦珙忄蝈
restart_err=硒栳赅 镳 镳桧蜩 桤戾礤龛
virt_header=碾 $1
htaccess_title=脏殡 项赅蜞腩泐恹 相疣戾蝠钼
htaccess_edir='$1' 礤 怆弪 漕矬耱桁 赅蜞腩泐
type_0=橡铞羼覃  髓扈螓
type_1=彦蝈恹 相疣戾蝠  冷疱襦
index_vport=吾疣徉螓忄弪 怦 玎镳铖 磬 $1 镱痱 礤 钺耠箧屙睇 漯筱桁 忤痱筻朦睇扈 皴疴屦囔.
acl_sel=蔓狃囗睇..
type_2=填潴腓 Apache
type_3=企痦嚯 脏殡
index_eports=锣 觐眙桡箴圉 Apache 耦溴疰栩 犷脲 1 滂疱牝桠  $1. 义牦 忮瘃 Webmin 礤 箪邋 镳噔桦 钺疣徉螓忄螯 蜞牦 觐眙桡箴圉棹
type_4=暑眚痤朦 念耱箫
type_5=相疣戾蝠 念牦戾眚
type_6=MIME 诣稃
type_7=吾疣犷蜿 硒栳铌
type_8=项朦珙忄蝈腓  灭箫稃
type_9=橡铟邋
vserv_default=项 箪铍鬣龛
index_root=暑疱睃 念牦戾眚钼
acl_vaddr=填驽 戾螯 噤疱襦 忤痱筻朦眍泐 皴疴屦?
acl_global=填驽 疱溧牝桊钼囹 汶钺嚯 镟疣戾蝠?
start_eunknown=橡梓桧 礤桤忮耱磬
dir_opts=相疣戾蝠 镳桁屙桁  ..
apache_apply=橡桧螯 如戾礤龛
authg_euser2=褥 沭箫稃 礤 漕腈眍 耦溴疰囹 :
mime_etype='$1' 礤 怆弪 漕矬耱桁 MIME 蜩镱
auth_return=箫疣怆屙桢 漕耱箫铎
dir_exact=翌黜铄 耦怙噤屙桢
authg_ecannot='$1' 礤 怆弪 漕矬耱桁 蝈犟蝾恹 羿殡铎 沭箫
defines_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 httpd 铒疱溴脲龛
htaccess_auto=棱蝾爨蜩麇耜
virt_ecannot=蔓 礤 祛驽蝈 疱溧牝桊钼囹 溧眄 忤痱筻朦睇 皴疴屦
authg_dont=湾 戾弪
authu_ecannot='$1' 礤 怆弪 漕矬耱桁 蝈犟蝾恹 羿殡铎 镱朦珙忄蝈脲
htaccess_find=袜轵 脏殡 相疣戾蝠钼
authu_set=玉蜞眍忤螯 ..
global_mimedesc=孰桕龛蝈 磬 MIME 蜩镥 桤 耧桉赅 龛驽 潆 邈 疱溧牝桊钼囗 桦 桉镱朦珞轵 耨牦 忭桤 耱疣龛鳆 潆 漕徉怆屙 眍忸泐 蜩镟  耧桉铌.
vserv_eport='$1' 礤 怆弪 漕矬耱桁 镱痱铎
index_any=塔犷
restart_epid=硒栳赅 镳 铗牮梃 PID 羿殡 $1
acl_all=埋
mime_type=MIME 蜩
stop_esig=硒栳赅 镳 铗覃腙 耔沩嚯 SIGTERM 镳铞羼耋 $1
authu_err=硒栳赅 镳 耦躔囗屙梃 镱朦珙忄蝈
index_virts=妈痱筻朦睇 彦疴屦
cvirt_eport='$1' 礤 怆弪 漕矬耱桁 镱痱铎
htindex_file=项羿殡钼 暑眙桡箴圉
start_ecannot=锣 礤 疣琊屮屙 耱囵蝾忄螯 apache
index_defdesc1=物疱溴弪 篑蜞眍怅 镱 箪铍鬣龛 潆 怦艴 忤痱筻朦睇 皴疴屦钼,  钺耠箧桠噱 怦 礤钺疣犷蜞眄 玎镳铖.
index_defdesc2=物疱溴弪 篑蜞眍怅 镱 箪铍鬣龛 潆 怦艴 漯筱桴 忤痱筻朦睇 皴疴屦钼.
authg_euser=褥 沭箫稃 礤 忖邃屙
authu_euser2=褥 镱朦珙忄蝈 礤 漕腈眍 耦溴疰囹 :
defines_desc=橡 耱囵蝈 Apache 镟疣戾蝠 祛泱 猁螯 镥疱溧睇 屐 镳 镱祛 镟疣戾蝠 <tt>-D</tt>  囵泱戾眚圊 觐爨礓眍 耱痤觇. 项耜铍 溧眄 镟疣戾蝠 祛泱 祛泱 怆螯 磬 桉镱朦珙忄龛 滂疱牝桠 桤 羿殡 觐眙桡箴圉梃, 蝾 Webmin 漕腈屙 珥囹 溧眄 囵泱戾眚. 骡邃栩 镟疣戾蝠 桉镱朦珞屐 磬 忄 耔耱屐  蝈犟蝾忸 镱脲 耧疣忄.
index_virt=妈痱筻朦睇 彦疴屦
authg_add=念徉忤螯 眍怏 沭箫矬
type_10=像邂漕龛禧  襄疱磬镳噔脲龛
type_11=CGI 橡钽疣祆
type_12=软溴犟圉 枢蜞腩泐
type_13=橡铌耔
type_14=相疣戾蝠 SSL
show_edit=绣溧牝桊钼囗桢 滂疱牝桠 Apache
type_15=Perl
type_16=PHP
stop_ecannot=锣 礤 疣琊屮屙 铖蜞磬怆桠囹 apache
mime_edit=绣溧牝桊钼囗桢 MIME 蜩镟
vserv_addr=冷疱
mime_header=杨铗忮蝰蜮桢 疣聒桊屙栝 桁屙 羿殡钼 MIME 蜩镟
global_return=MIME 蜩稃
index_eserver=锐镱腠屐 祛潴朦 Apache $1 礤 耋耱怏弪. 篷腓 Apache 桧耱嚯腓痤忄 磬 忄 耔耱屐, 镱镳噔蝈 <a href='$2'>觐眙桡箴圉棹 祛潴</a> 潆 桉镱朦珙忄龛 觐痧尻蝽 矬蝈.
authg_title=扬桉铌 灭箫
vserv_ecannot=蔓 礤 祛驽蝈 疱溧牝桊钼囹 噤疱 溧眄钽 忤痱筻朦眍泐 皴疴屦
virt_type=诣
dir_path=象螯
global_type=诣
index_name=褥 彦疴屦
stop_epid2=湾忮痦 PID 羿殡 $1
dir_header2=$1 潆 $2
htindex_opts=项赅蜞腩泐恹 相疣戾蝠
authu_pass=相痤朦
vserv_eroot='$1' 礤 怆弪 漕矬耱桁 觐痦邂 赅蜞腩泐 潆 漕牦戾眚钼
htindex_regexp=绣.恹.?
global_ext=朽聒桊屙
htaccess_from=如 赅蜞腩汔
authg_edup=灭箫镟 '$1' 箧 耋耱怏弪
acl_virts=妈痱筻朦睇 皴疴屦, 觐蝾瘥 祛驽 疱溧牝桊钼囹 溧眄 镱朦珙忄蝈朦
index_global=秒钺嚯 觐眙桡箴圉
virt_adddir=杨玟囗桢 项赅蜞腩泐忸, 相疣戾蝠钼 脏殡钼 桦 URL
acl_dir=毋疣龛麒螯 羿殡 赅蜞腩泐
cvirt_err=硒栳赅 镳 耦玟囗梃 忤痱筻朦眍泐 皴疴屦
mime_err=硒栳赅 镳 耦躔囗屙梃 MIME 蜩镟
authu_none=湾 镱朦珙忄蝈脲  蝈犟蝾忸 羿殡 $1
global_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 汶钺嚯 镟疣戾蝠
index_title=Web 皴疴屦 Apache
vserv_port=项痱
show_title=蔫疱牝桠
vserv_eaddr1=冷疱 礤 忖邃屙
vserv_eaddr2='$1' 礤 怆弪 漕矬耱桁 噤疱耦
dir_regexp=绣.恹.?
htindex_return=戾睨 羿殡 镟疣戾蝠钼
htaccess_ecannot=蔓 礤 祛驽蝈 疱溧牝桊钼囹 羿殡 htaccess
authg_return=耧桉铌 沭箫
acl_htaccess=蝾朦觐 .htaccess
dir_show=项赅玎螯 蔫疱牝桠
cvirt_eroot1=蔓 漕腈睇 忖羼蜩 觐痦邂铋 赅蜞腩 潆 漕牦戾眚钼
cvirt_eroot2=硒栳赅 镳 耦玟囗梃 赅蜞腩汔 '$1' : $2
acl_create=填驽 耦玟噔囹 忤痱筻朦睇 皴疴屦?
authg_mems=纂屙
authu_euser=褥 镱朦珙忄蝈 礤 忖邃屙
virt_opts=相疣戾蝠 妈痱筻朦眍泐 彦疴屦
htaccess_return=耧桉铌 羿殡 镟疣戾蝠钼
index_vname=吾耠箧桠噱 桁屙钼囗睇 皴疴屦 $1 磬 噤疱皴 $2.
acl_stop=填驽 铖蜞磬怆桠囹 Apache?
start_err=硒栳赅 镳 耱囵蝈 apache
index_return=耧桉铌 皴疴屦钼
global_add=念徉忤螯 眍恹 MIME 蜩
authu_dont=湾 戾弪
dir_return=戾睨 赅蜞腩泐
htfile_header=碾 $1  $2
htaccess_edelete=锣 礤 疣琊屮屙 箐嚯螯 溧眄 羿殡 镟疣戾蝠钼
authu_title=扬桉铌 项朦珙忄蝈脲
htindex_re=杨怙噤屙桢  疱.恹.
restart_esig=硒栳赅 镳 铗覃腙 耔沩嚯 SIGTERM 镳铞羼耋 $1
htaccess_desc=念镱腠栩咫 镱赅蜞腩泐恹 镟疣戾蝠 祛泱 猁螯 箨噻囗  羿殡 (钺眍 磬琨忄屐铎 <tt>.htaccess</tt>)  赅驿铎 赅蜞腩沐. 泥眄 镟疣戾蝠 镳桁屙桁 觐 怦屐 羿殡囔  铎 赅蜞腩沐  怦艴 邈 镱潢囹嚯钽圊, 漕 蝈 镱 镱赅 礤 怦蝠弪栩 眍恹 <tt>.htaccess</tt> 羿殡.
stop_err=硒栳赅 镳 铖蜞眍忮 apache
htindex_header2=$1 潆 羿殡 镟疣戾蝠钼 $2
reconfig_title=绣觐眙桡箴圉 如忮耱睇 填潴脲
cvirt_ecannot=锣 礤 疣琊屮屙 耦玟噔囹 忤痱筻朦睇 皴疴屦
mime_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 MIME 蜩稃
htindex_title=项赅蜞腩泐恹 脏殡 相疣戾蝠钼
cvirt_eaddr1=冷疱 礤 忖邃屙
cvirt_eaddr2='$1' 礤 怆弪 漕矬耱桁 噤疱耦
vserv_root=暑疱睃 念牦戾眚钼
virt_re=杨怙噤噱  疱. 恹.
htfile_show=项赅琨忄螯 蔫疱牝桠
acl_pipe=填驽 镥疱溧忄螯 骟痦嚯 耦钺龛 磬 怩钿 镳钽疣祆?
authg_edit=绣溧牝桊钼囗桢 灭箫稃
vserv_err=硒栳赅 镳 箐嚯屙梃 忤痱筻朦眍泐 皴疴屦
htindex_path=象螯
authg_set=玉蜞眍忤螯 ..
index_defserv=彦疴屦 项 箪铍鬣龛
htindex_delete=愉嚯栩 脏殡
authu_return=耧桉铌 镱朦珙忄蝈脲
restart_epid2=湾忮痦 PID 羿殡 $1
vserv_ename='$1' 礤 怆弪 漕矬耱桁 桁屙屐 皴疴屦
reconfig_ever=硒栳赅 镳 恹耥屙梃 忮瘃梃 桉镱腠屐钽 祛潴 $1 皴疴屦 Apache. 橡钼屦 <a href='$2'>觐眙桡箴圉棹 祛潴</a>, 黩钺 筢邃栩  镳噔桦铖蜩 矬蝈.
defines_title=绣溧牝桊钼囗桢 物疱溴脲眄 相疣戾蝠钼
authg_err=硒栳赅 镳 耦躔囗屙梃 沭箫稃
acl_types=念耱箫睇 蜩稃 滂疱牝桠
authg_group=褥 沭箫稃
authu_user=褥 镱朦珙忄蝈
htaccess_ecreate=锣 礤 疣琊屮屙 耦玟噔囹 溧眄 羿殡 镟疣戾蝠钼
reconfig_ok=袜耱痤栩
htindex_exact=项腠铄 耦怙噤屙桢
efailed=硒栳赅 镳 耦躔囗屙梃 $1
virt_conf=暑眙桡箴圉 彦疴屦
cvirt_ename='$1' 礤 怆弪 漕矬耱桁 桁屙屐 皴疴屦
index_addr=冷疱
restart_eunknown=橡梓桧 礤桤忮耱磬
index_type=诣
index_vdef=吾疣徉螓忄弪 怦 玎镳铖 礤 钺耠箧屙睇 漯筱桁 忤痱筻朦睇扈 皴疴屦囔.
htindex_header=碾 $1
authg_header= 羿殡 $1
virt_return=戾睨 皴疴屦
htindex_create=杨玟囗桢 项羿殡钼 相疣戾蝠钼
virt_euser=锣 礤 疣琊屮屙 桤戾螯 镱朦珙忄蝈 桦 沭箫矬 潆 溧眄钽 忤痱筻朦眍泐 皴疴屦.
authg_create=杨玟囗桢 灭箫稃
index_vaddrport=吾疣徉螓忄弪 怦 玎镳铖 磬 噤疱 $1, 镱痱 $2.
authu_add=念徉忤螯 眍忸泐 镱朦珙忄蝈
virt_path=象螯
authu_edup=项朦珙忄蝈朦 '$1' 箧 耋耱怏弪
htindex_show=项赅玎螯 蔫疱牝桠
global_mime=秒钺嚯 耧桉铌 MIME 蜩镱
mime_ext=朽聒桊屙
show_ok=绣溧牝桊钼囹
htindex_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 溧眄 羿殡 镟疣戾蝠钼
  0707010001b8b5000081a40000000000000002000000013ac03897000026b5000000200000000000000000000000000000001800000003reloc/apache/lang/ru_SU   index_title=Web 优易乓 Apache
index_eroot=胂椅抛鲜 肆粤滔 Apache $1 闻 诱菖釉渍旁. 逵躺 Apache 晌釉撂躺蚁琢 瘟 琢叟 由釉磐, 邢幸磷耘 <a href='$2'>讼纹汕找撩衫 拖恼萄</a> 奶 捎邢特谙琢紊 讼乙潘晕偃 姓耘.
index_eserver=橛邢涛雅唾 拖恼特 Apache $1 闻 诱菖釉渍旁. 逵躺 Apache 晌釉撂躺蚁琢 瘟 琢叟 由釉磐, 邢幸磷耘 <a href='$2'>讼纹汕找撩衫 拖恼萄</a> 奶 捎邢特谙琢紊 讼乙潘晕偃 姓耘.
index_econf=媪侍 讼纹汕找撩缮 Apache $1 闻 诱菖釉渍旁. 逵躺 Apache 晌釉撂躺蚁琢 瘟 琢叟 由釉磐, 邢幸磷耘 <a href='$2'>讼纹汕找撩衫 拖恼萄</a> 奶 捎邢特谙琢紊 讼乙潘晕偃 姓耘.
index_eports=髁哿 讼纹汕找撩裳 Apache 酉呐抑稍 孪膛 1 纳遗嗽勺  $1. 襞苏萘 着矣裳 Webmin 闻 胀排 幸磷商匚 下伊铝再琢载 粤苏 讼纹汕找撩衫
index_global=缣下撂匚裂 讼纹汕找撩裳
index_virts=魃以樟特钨 笈易乓
index_defserv=笈易乓 鹣 胀咸蘖紊
index_defdesc1=镄遗呐萄旁 沼粤蜗姿 邢 胀咸蘖紊 奶 子湃 咨以樟特钨 优易乓献,  下犹罩勺僚 子 闻下伊孪粤挝倥 诹幸嫌.
index_any=炖孪
index_default=鹣 胀咸蘖紊
index_auto=嶙韵土陨夼铀
index_virt=魃以樟特钨 笈易乓
index_vname=锫犹罩勺僚 赏盼献廖钨 优易乓 $1 瘟 聊遗优 $2.
index_vdef=锫伊铝再琢旁 子 诹幸嫌 闻 下犹罩盼钨 囊涨赏 咨以樟特钨蜕 优易乓镣.
index_defdesc2=镄遗呐萄旁 沼粤蜗姿 邢 胀咸蘖紊 奶 子湃 囊涨扇 咨以樟特钨 优易乓献.
index_vport=锫伊铝再琢旁 子 诹幸嫌 瘟 $1 邢以 闻 下犹罩盼钨 囊涨赏 咨以樟特钨蜕 优易乓镣.
index_vaddr=锫伊铝再琢旁 子 诹幸嫌 瘟 聊遗 $1.
index_vaddrport=锫伊铝再琢旁 子 诹幸嫌 瘟 聊遗 $1, 邢以 $2.
index_type=羯
index_addr=崮遗
index_port=鹣以
index_name=橥 笈易乓
index_root=胂遗呜 湎苏团卧献
index_create=笙牧载 钕踪 魃以樟特钨 笈易乓
index_return=有捎纤 优易乓献

cvirt_ecannot=髁 闻 伊谝袍盼 酉谀磷猎 咨以樟特钨 优易乓
cvirt_err=镗陕肆 幸 酉谀廖缮 咨以樟特蜗窍 优易乓
cvirt_eaddr1=崮遗 闻 鬃拍盼
cvirt_eaddr2='$1' 闻 炎萄旁友 南姓釉赏偻 聊遗酉
cvirt_eport='$1' 闻 炎萄旁友 南姓釉赏偻 邢以贤
cvirt_ename='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 优易乓
cvirt_eroot1=髻 南讨钨 鬃庞陨 讼椅抛鲜 肆粤滔 奶 南苏团卧献
cvirt_eroot2=镗陕肆 幸 酉谀廖缮 肆粤滔橇 '$1' : $2

etype=髁 闻 伊谝袍盼 遗牧嗽梢献猎 辛伊团砸 牧挝锨 陨辛.
efailed=镗陕肆 幸 酉纫廖盼缮 $1
apache_apply=鹨晌言 橼团闻紊
apache_stop=镉粤蜗咨载 Apache
apache_start=笤烈韵琢载 Apache
auth_return=招伊滋盼膳 南釉招贤

global_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 翘下撂匚倥 辛伊团砸
global_mime=缣下撂匚偈 有捎纤 MIME 陨邢
global_mimedesc=胩伤紊耘 瘟 MIME 陨信 哨 有捎肆 紊峙 奶 徘 遗牧嗽梢献廖裳 商 捎邢特谡试 佑偬苏 孜哨 釉伊紊觅 奶 南铝滋盼裳 蜗紫窍 陨辛  有捎纤.
global_type=羯
global_ext=蛄盂梢盼裳
global_add=湎铝咨载 蜗踪 MIME 陨
global_return=MIME 陨匈

mime_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 MIME 陨匈
mime_edit=蚺牧嗽梢献廖膳 MIME 陨辛
mime_add=湎铝滋盼膳 MIME 陨辛
mime_header=笙显着杂宰膳 伊盂梢盼墒 赏盼 屏侍献 MIME 陨辛
mime_type=MIME 陨
mime_ext=蛄盂梢盼裳
mime_err=镗陕肆 幸 酉纫廖盼缮 MIME 陨辛
mime_etype='$1' 闻 炎萄旁友 南姓釉赏偻 MIME 陨邢

virt_ecannot=髻 闻 拖峙耘 遗牧嗽梢献猎 牧挝偈 咨以樟特钨 优易乓
virt_title=鹆伊团砸 魃以樟特蜗窍 笈易乓
virt_header=涮 $1
virt_opts=鹆伊团砸 魃以樟特蜗窍 笈易乓
virt_conf=胂纹汕找撩裳 笈易乓
virt_show=鹣肆谫琢载 渖遗嗽勺
virt_adddir=笙谀廖膳 鹣肆粤滔窍紫, 鹆伊团砸献 媪侍献 商 URL
virt_type=羯
virt_exact=粝尬吓 酉仔聊盼膳
virt_re=笙仔聊僚  遗. 踪.
virt_path=鹫载
virt_return=团卫 优易乓
virt_ecannot=髻 闻 拖峙耘 遗牧嗽梢献猎 牧挝偈 咨以樟特钨 优易乓
virt_euser=髁 闻 伊谝袍盼 哨团窝载 邢特谙琢耘萄 商 且招姓 奶 牧挝锨 咨以樟特蜗窍 优易乓.
virt_header2=$1 奶 $2

vserv_title=胂纹汕找撩裳 魃以樟特蜗窍 笈易乓
vserv_ecannot=髻 闻 拖峙耘 遗牧嗽梢献猎 聊遗 牧挝锨 咨以樟特蜗窍 优易乓
vserv_addr=崮遗
vserv_port=鹣以
vserv_any=炖孪
vserv_default=鹣 胀咸蘖紊
vserv_root=胂遗呜 湎苏团卧献
vserv_name=橥 笈易乓
vserv_delete=跄撂稍 魃以樟特钨 笈易乓
vserv_err=镗陕肆 幸 漳撂盼缮 咨以樟特蜗窍 优易乓
vserv_eaddr1=崮遗 闻 鬃拍盼
vserv_eaddr2='$1' 闻 炎萄旁友 南姓釉赏偻 聊遗酉
vserv_eport='$1' 闻 炎萄旁友 南姓釉赏偻 邢以贤
vserv_eroot='$1' 闻 炎萄旁友 南姓釉赏偻 讼椅抛偻 肆粤滔窍 奶 南苏团卧献
vserv_ename='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 优易乓

show_title=渖遗嗽勺
show_edit=蚺牧嗽梢献廖膳 纳遗嗽勺 Apache
show_ok=蚺牧嗽梢献猎

dir_title=鹣肆粤滔窍踪 辛伊团砸
dir_header=涮 $1 瘟 $2
dir_show=鹣肆诹载 渖遗嗽勺
dir_opts=鹆伊团砸 幸赏盼赏  ..
dir_type=羯
dir_regexp=蚺.踪.?
dir_exact=粝尬吓 酉仔聊盼膳
dir_re=笙仔聊盼膳  遗.踪.
dir_path=鹫载
dir_return=团卫 肆粤滔窍
dir_header2=$1 奶 $2

type_0=鹨厦庞淤  焐蜕再
type_1=笈耘踪 鹆伊团砸  崮遗恿
type_2=硐恼躺 Apache
type_3=稣椅撂匚倥 媪侍
type_4=胂卧蚁特 湎釉招
type_5=鹆伊团砸 湎苏团卧
type_6=MIME 羯匈
type_7=锫伊孪运 镗陕纤
type_8=鹣特谙琢耘躺  缫招匈
type_9=鹨限排
type_10=鹩抛南紊唾  鹋遗瘟幸磷膛紊
type_11=CGI 鹨锨伊屯
type_12=槲呐擞撩裳 肓粤滔窍
type_13=鹨纤由
type_14=鹆伊团砸 SSL
type_15=Perl
type_16=PHP

htaccess_title=媪侍 鹣肆粤滔窍踪 鹆伊团砸献
htaccess_ecannot=髻 闻 拖峙耘 遗牧嗽梢献猎 屏侍 htaccess
htaccess_desc=湎邢涛稍盘匚倥 邢肆粤滔窍踪 辛伊团砸 拖钦 沦载 账邻廖  屏侍 (下俎蜗 瘟谫琢磐贤 <tt>.htaccess</tt>)  肆帜贤 肆粤滔桥. 淞挝倥 辛伊团砸 幸赏盼赏 讼 子磐 屏侍镣  茉贤 肆粤滔桥  子湃 徘 邢乃猎撂锨寥, 南 耘 邢 邢肆 闻 子砸旁稍友 蜗踪 <tt>.htaccess</tt> 屏侍.
htaccess_create=笙谀猎 媪侍 鹆伊团砸献
htaccess_find=盍试 媪侍 鹆伊团砸献
htaccess_auto=嶙韵土陨夼铀
htaccess_from=橼 肆粤滔橇
htaccess_return=有捎纤 屏侍 辛伊团砸献
htaccess_edir='$1' 闻 炎萄旁友 南姓釉赏偻 肆粤滔窍
htaccess_ecreate=髁 闻 伊谝袍盼 酉谀磷猎 牧挝偈 屏侍 辛伊团砸献
htaccess_edelete=髁 闻 伊谝袍盼 漳撂言 牧挝偈 屏侍 辛伊团砸献

htindex_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 牧挝偈 屏侍 辛伊团砸献
htindex_title=鹣肆粤滔窍踪 媪侍 鹆伊团砸献
htindex_delete=跄撂稍 媪侍
htindex_show=鹣肆诹载 渖遗嗽勺
htindex_opts=鹣肆粤滔窍踪 鹆伊团砸
htindex_file=鹣屏侍献裂 胂纹汕找撩裳
htindex_create=笙谀廖膳 鹣屏侍献偃 鹆伊团砸献
htindex_regexp=蚺.踪.?
htindex_exact=鹣涛吓 酉仔聊盼膳
htindex_re=笙仔聊盼膳  遗.踪.
htindex_path=鹫载
htindex_header=涮 $1
htindex_header2=$1 奶 屏侍 辛伊团砸献 $2
htindex_return=团卫 屏侍 辛伊团砸献

htfile_title=鹣屏侍献倥 鹆伊团砸
htfile_header=涮 $1  $2
htfile_show=鹣肆谫琢载 渖遗嗽勺
htfile_apply=鹆伊团砸 幸赏盼赏  ..
htfile_header2=$1 奶 $2

reconfig_title=蚺讼纹汕找撩裳 橼着釉钨 硐恼膛
reconfig_ecannot=髁 闻 伊谝袍盼 遗讼纹汕找梢献猎 apache
reconfig_ever=镗陕肆 幸 踪延闻紊 着矣缮 捎邢涛雅拖窍 拖恼萄 $1 优易乓 Apache. 鹨献乓卦 <a href='$2'>讼纹汕找撩衫 拖恼萄</a>, 拊下 章拍稍赜  幸磷商匚嫌陨 姓耘.
reconfig_desc1=胂纹汕找撩裳 Apache 哨团窝塘迂 商 闻 沦塘 幸献乓盼 Webmin贤. 钌峙 踪 咨纳耘 有捎纤 子湃 拖恼膛 Apache 邢哪乓稚琢磐偃 Webmin贤. 槲釉撂躺蚁琢挝倥  牧挝偈 拖团卧 拖恼躺 - 踪乱廖  有捎伺. 髻 拖峙耘 踪律伊载 商 显团窝载踪孪, 庞躺 牧挝偈 有捎纤 闻着遗.
reconfig_desc2=钌峙 幸勺拍盼 有捎纤 子湃 拖恼膛 Apache 邢哪乓稚琢磐偃 Webmin贤. 槲釉撂躺蚁琢挝倥  牧挝偈 拖团卧 拖恼躺 - 踪乱廖  有捎伺. 逵躺 踪 捎邢特谡旁 纳瘟蜕夼铀 诹且罩僚唾 拖恼躺 Apache, 韵 紫谕现蜗 琢 闻下认纳拖 踪乱猎 耘, 讼韵屹 诹且罩盼 纳瘟蜕夼铀.
reconfig_ok=盍釉蚁稍

defines_title=蚺牧嗽梢献廖膳 镄遗呐膛挝偃 鹆伊团砸献
defines_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 httpd 闲遗呐膛紊
defines_desc=鹨 釉烈耘 Apache 辛伊团砸 拖钦 沦载 信遗牧钨 磐 幸 邢拖萆 辛伊团砸 <tt>-D</tt>  烈钦团卧寥 讼土文蜗 釉蚁松. 鹣铀咸厮 牧挝倥 辛伊团砸 拖钦 拖钦 滋裳载 瘟 捎邢特谙琢紊 纳遗嗽勺 哨 屏侍 讼纹汕找撩缮, 韵 Webmin 南讨盼 谖猎 牧挝倥 烈钦团卧. 髯拍稍 辛伊团砸 捎邢特谡磐倥 瘟 琢叟 由釉磐  耘擞韵紫 邢膛 有伊琢.

authu_ecannot='$1' 闻 炎萄旁友 南姓釉赏偻 耘擞韵踪 屏侍贤 邢特谙琢耘膛
authu_title=笮捎纤 鹣特谙琢耘膛
authu_header= 屏侍 $1
authu_header2=鹣特谙琢耘躺 哨 耘擞韵紫窍 屏侍 $1
authu_none=钆 邢特谙琢耘膛  耘擞韵紫 屏侍 $1
authu_add=湎铝咨载 蜗紫窍 邢特谙琢耘萄
authu_return=有捎纤 邢特谙琢耘膛
authu_edit=蚺牧嗽梢献廖膳 鹣特谙琢耘萄
authu_create=笙谀廖膳 鹣特谙琢耘萄
authu_user=橥 邢特谙琢耘萄
authu_pass=鹆蚁特
authu_dont=钆 团窝旁友
authu_set=跤粤蜗咨载 ..
authu_err=镗陕肆 幸 酉纫廖盼缮 邢特谙琢耘萄
authu_euser=橥 邢特谙琢耘萄 闻 鬃拍盼
authu_euser2=橥 邢特谙琢耘萄 闻 南讨蜗 酉呐抑猎 :
authu_edup=鹣特谙琢耘特 '$1' 罩 诱菖釉渍旁

authg_ecannot='$1' 闻 炎萄旁友 南姓釉赏偻 耘擞韵踪 屏侍贤 且招
authg_title=笮捎纤 缫招
authg_header= 屏侍 $1
authg_header2=缫招匈 哨 耘擞韵紫窍 屏侍 $1
authg_none=钆 且招  耘擞韵紫 屏侍 $1
authg_add=湎铝咨载 蜗渍 且招姓
authg_return=有捎纤 且招
authg_edit=蚺牧嗽梢献廖膳 缫招匈
authg_create=笙谀廖膳 缫招匈
authg_group=橥 且招匈
authg_mems=盼
authg_dont=钆 团窝旁友
authg_set=跤粤蜗咨载 ..
authg_err=镗陕肆 幸 酉纫廖盼缮 且招匈
authg_euser=橥 且招匈 闻 鬃拍盼
authg_euser2=橥 且招匈 闻 南讨蜗 酉呐抑猎 :
authg_edup=缫招辛 '$1' 罩 诱菖釉渍旁

stop_err=镗陕肆 幸 嫌粤蜗着 apache
stop_ecannot=髁 闻 伊谝袍盼 嫌粤瘟滋勺猎 apache
stop_epid=镗陕肆 幸 显艘僭缮 PID 屏侍 $1
stop_epid2=钆着椅偈 PID 屏侍 $1
stop_esig=镗陕肆 幸 显淤趟 由俏撂 SIGTERM 幸厦庞诱 $1

start_err=镗陕肆 幸 釉烈耘 apache
start_ecannot=髁 闻 伊谝袍盼 釉烈韵琢载 apache
start_ecmd=羡伤 奶 $1 : $2
start_eunknown=鹨赊晌 闻哨着釉瘟

restart_err=镗陕肆 幸 幸晌言缮 哨团闻紊
restart_epid=镗陕肆 幸 显艘僭缮 PID 屏侍 $1
restart_epid2=钆着椅偈 PID 屏侍 $1
restart_esig=镗陕肆 幸 显淤趟 由俏撂 SIGTERM 幸厦庞诱 $1
restart_eunknown=鹨赊晌 闻哨着釉瘟

acl_virts=魃以樟特钨 优易乓, 讼韵屹 拖峙 遗牧嗽梢献猎 牧挝偈 邢特谙琢耘特
acl_global=硐峙 遗牧嗽梢献猎 翘下撂匚倥 辛伊团砸?
acl_htaccess=韵特讼 .htaccess
acl_create=硐峙 酉谀磷猎 咨以樟特钨 优易乓?
acl_vuser=硐峙 团窝载 邢特谙琢耘膛 咨以樟特蜗窍 优易乓?
acl_vaddr=硐峙 团窝载 聊遗恿 咨以樟特蜗窍 优易乓?
acl_pipe=硐峙 信遗牧琢载 终椅撂 酉下菖紊 瘟 兹夏 幸锨伊屯?
acl_stop=硐峙 嫌粤瘟滋勺猎 Apache?
acl_dir=锴伊紊奚载 屏侍 肆粤滔窍
acl_types=湎釉招钨 陨匈 纳遗嗽勺
acl_all=饔
acl_sel=髻乱廖钨..

   0707010001b8b6000081a40000000000000002000000013ac0389700007ca7000000200000000000000000000000000000001500000003reloc/apache/lang/sv  index_title=Apache Webserver
index_eroot=Apache-rotkatalogen $1 finns inte. Om du har installerat Apache, 鋘dra <a href='$2'>modulkonfigureringen</a> s att r鋞t s鰇v鋑 anv鋘ds.
index_eserver=Den exekverbara Apacheserverfilen $1 finns inte. Om du har installerat Apache, 鋘dra <a href='$2'>modulkonfigureringen</a> s att r鋞t s鰇v鋑 anv鋘ds.
index_econf=Apacheinst鋖lningsfilen $1 finns inte. Om du har installerat Apache, 鋘dra <a href='$2'>modulkonfigureringen</a> s att r鋞t s鰇v鋑 anv鋘ds.
index_eports=Din Apachekonfigurering inneh錶ler mer 鋘 1 $1-direktiv. Denna version av Webmin kan inte hantera denna inst鋖lning korrekt.
index_global=Globala inst鋖lningar
index_virts=Virtuella servrar
index_defserv=Defaultserver
index_defdesc1=Definierar standardinst鋖lningar f鰎 alla andra virtuella servrar och svarar p alla obesvarade anrop.
index_any=Alla
index_default=Standard
index_auto=Automatisk
index_virt=Virtuell server
index_vname=Hanterar den namnbaserade servern $1 p adress $2.
index_vdef=Svarar p alla obesvarade anrop som inte behandlas av andra virtuella servrar.
index_defdesc2=Definierar standardinst鋖lningar f鰎 alla andra virtuella servrar.
index_vport=Svarar p alla anrop till port $1 som inte behandlas av andra virtuella servrar.
index_vaddr=Hanterar alla anrop till adress $1.
index_vaddrport=Hanterar alla anrop till port $2 p adress $1.
index_type=Typ
index_addr=Adress
index_nv=L鋑g till adress till namnad virtuell server (om det beh鰒s)
index_port=Port
index_name=Servernamn
index_root=Dokumentrot
index_create=Skapa en ny virtuell server
index_return=serverlista

cvirt_ecannot=Du f錼 inte skapa en virtuell server
cvirt_err=Det gick inte att skapa en virtuell server
cvirt_eaddr1=Ingen adress angiven
cvirt_eaddr2='$1' 鋜 inte en giltig adress
cvirt_eport='$1' 鋜 inte en giltig port
cvirt_ename='$1' 鋜 inte ett giltigt servernamn
cvirt_eroot1=Du m錽te ange en dokumentrot
cvirt_eroot2=Det gick inte att skapa katalogen '$1' : $2

etype=Du f錼 inte 鋘dra denna typ av inst鋖lningar
efailed=Det gick inte att spara $1
apache_apply=Genomf鰎 鋘dringar
apache_stop=Stanna Apache
apache_start=Starta Apache
auth_return=錿komstkontroll
default_serv=Defaultserver
bytes=bytes

global_ecannot=Du f錼 inte 鋘dra globala inst鋖lningar
global_mime=Global MIME-typlista
global_mimedesc=Klicka p en MIME-typ i listan nedan f鰎 att 鋘dra den eller anv鋘d l鋘ken l鋘gst ned p sidan f鰎 att l鋑ga till en ny typ i listan.
global_type=Typ
global_ext=Fil鋘delser
global_add=L鋑g till en ny MIME-typ
global_return=MIME-typer

mime_ecannot=Du f錼 inte 鋘dra MIME-typer
mime_edit=膎dra MIME-typ
mime_add=L鋑g till MIME-typ
mime_header=F鰎teckning 鰒er fil鋘delser f鰎 olika MIME-typer
mime_type=MIME-typ
mime_ext=Fil鋘delser
mime_err=Det gick inte att spara MIME-typ
mime_etype='$1' 鋜 inte en giltig MIME-typ

virt_ecannot=Du f錼 inte 鋘dra i denna virtuella server
virt_title=Tillval f鰎 virtuell server
virt_header=F鰎 $1
virt_opts=Tillval f鰎 virtuell server
virt_conf=Serverinst鋖lningar
virt_show=Visa direktiv
virt_edit=膎dra direktiv
virt_adddir=Skapa tillval f鰎 Per-Directory, Files or Location
virt_type=Typ
virt_Directory=Katalog
virt_Files=Filer
virt_Location=Plats
virt_exact=Exakt 鰒erensst鋗melse
virt_re=Matcha regulj鋜t uttryck (regexp)
virt_regexp=Regexp?
virt_path=S鰇v鋑
virt_return=serverindex
virt_euser=Du f錼 inte 鋘dra anv鋘dare eller grupp f鰎 denna virtuella server.
virt_header2=$1 f鰎 $2

vserv_title=Inst鋖lningar f鰎 virtuella servrar
vserv_ecannot=Du f錼 inte 鋘dra adressen f鰎 denna virtuella server
vserv_addr=Adress
vserv_addrs=Adresser
vserv_port=Port
vserv_any=Alla
vserv_default=Standard
vserv_root=Dokumentrot
vserv_name=Servernamn
vserv_delete=Ta bort virtuell server
vserv_err=Det gick inte att spara den virtuella servern
vserv_eaddr1=Ingen adress angiven
vserv_eaddr2='$1' 鋜 inte en giltig adress
vserv_eport='$1' 鋜 inte en giltig port
vserv_eroot='$1' 鋜 inte en giltig dokumentrot
vserv_ename='$1' 鋜 inte ett giltigt servernamn
vserv_eaddrs=Du har inte angivit adresser till virtuella servrar

show_title=Direktiv
show_edit=膎dra Apache-direktiv
show_ok=膎dra
show_these=膎dra direktiv f鰎 hand

manual_title=膎dra direktiv
manual_header=I textrutan nedan kan du 鋘dra i Apache-direktiven i $1 som g鋖ler f鰎 denna virtuella server, katalog eller filer.
manual_ecannot=Du f錼 inte 鋘dra dessa direktiv f鰎 hand.

dir_title=Inst鋖lningar f鰎 Per-Directory
dir_header=F鰎 $1 p $2
dir_show=Visa direktiv
dir_edit=膎dra direktiv
dir_opts=Inst鋖lningarna g鋖ler f鰎 ...
dir_Directory=Katalog
dir_Files=Filer
dir_Location=Plats
dir_type=Typ
dir_regexp=Regulj鋜t uttryck?
dir_exact=Exakt 鰒erensst鋗melse
dir_re=Matcha regulj鋜t uttryck (regexp)
dir_path=S鰇v鋑
dir_return=katalogindex
dir_header2=$1 f鰎 $2

type_0=Processer och begr鋘sningar
type_1=N鋞verk och adresser
type_2=Apache-moduler
type_3=Loggfiler
type_4=舤komstkontroll
type_5=Dokumentinst鋖lningar
type_6=MIME-typer
type_7=Felhantering
type_8=Anv鋘dare och grupp
type_9=Blandat
type_10=Alias och vidares鋘dningar
type_11=CGI-program
type_12=Katalogindexering
type_13=Proxy-hantering
type_14=SSL-inst鋖lningar
type_15=Perl
type_16=PHP

htaccess_title=Per-Directory inst鋖lningsfiler
htaccess_ecannot=Du f錼 inte 鋘dra htaccess-filer
htaccess_desc=Ytterligare per-directory-inst鋖lningar kan g鰎as i en fil (heter oftast <tt>.htaccess</tt>) i respektive katalog. Inst鋖lningarna g鋖ler f鰎 alla filer i katalogen och dess underkataloger, om det inte finns andra inst鋖lningsfiler d鋜.
htaccess_create=Skapa inst鋖lningsfil
htaccess_find=S鰇 inst鋖lningsfil
htaccess_auto=Automatiskt
htaccess_from=Fr錸 katalog
htaccess_return=lista 鰒er inst鋖lningsfiler
htaccess_edir='$1' 鋜 inte en giltig katalog
htaccess_ecreate=Du f錼 inte skapa denna inst鋖lningsfil
htaccess_edelete=Du f錼 inte ta bort denna inst鋖lningsfil

htindex_ecannot=Du f錼 inte 鋘dra denna inst鋖lningsfil
htindex_title=Per-Directory-inst鋖lningsfil
htindex_delete=Ta bort fil
htindex_show=Visa direktiv
htindex_edit=膎dra direktiv
htindex_opts=Per-Directory-inst鋖lningar
htindex_file=Per-File-inst鋖lningar
htindex_create=Skapa Per-File-inst鋖lningar
htindex_regexp=Regulj鋜t uttryck?
htindex_exact=Exakt 鰒erensst鋗melse
htindex_re=Matcha regulj鋜t uttryck
htindex_path=S鰇v鋑
htindex_header=F鰎 $1
htindex_header2=$1 f鰎 inst鋖lningsfil $2
htindex_return=Lista 鰒er inst鋖lningsfiler

htfile_title=Per-File-inst鋖lningar
htfile_header=F鰎 $1 i $2
htfile_show=Visa direktiv
htfile_edit=膎dra direktiv
htfile_apply=Inst鋖lningarna g鋖ler f鰎 ...
htfile_header2=$1 f鰎 $2

reconfig_title=膎dra konfiguration f鰎 k鋘da moduler
reconfig_ecannot=Du f錼 inte 鋘dra konfiguration f鰎 apache
reconfig_ever=Det gick inte att hitta n錱on versionsbeteckning f鰎 den exekverbara Apacheserver-filen $1. Kontrollera <a href='$2'>modulkonfigurationen</a> s att du har angivit r鋞t s鰇v鋑.
reconfig_desc1=Din Apache-konfiguration har 鋘drats eller har 鋘nu inte kontrollerats av Webmin. Nedan finns en lista 鰒er alla Apache-moduler som Webmin st鰀jer, d鋜 installerade moduler 鋜 valda. V鋖j till eller bort moduler om listan inte 鋜 korrekt.
reconfig_desc2=Nedan fins en lista 鰒er alla Apache-moduler som Webmin st鰀jer, d鋜 installerade moduler 鋜 valda. Om du anv鋘der dynamiskt inl鋝ta moduler kan du beh鰒a v鋖ja till dessa.
reconfig_ok=Konfigurera

defines_title=膎dra definierade parametrar
defines_ecannot=Du f錼 inte 鋘dra httpd-definitioner
defines_desc=N鋜 du startar Apache, kan du ange parametrar med flaggan <tt>-D</tt>. Eftersom dessa parametrar kan p鍁erka vilka direktiv som anv鋘ds i dina inst鋖lningsfiler m錽te Webmin veta vilka parametrar som ska vidarebefordras till Apache n鋜 det startas. Ange de parametrar som anv鋘ds p ditt system i textf鋖tet till h鰃er.
defines_config=Observera att f鰈jande parametrar redan 鋜 k鋘da: $1

authu_ecannot='$1' 鋜 inte en till錿en anv鋘darfil
authu_title=Lista 鰒er anv鋘dare
authu_header=I fil $1
authu_header2=Anv鋘dare i textfil $1
authu_none=Inga anv鋘dare i textfil $1
authu_add=L鋑g till en ny anv鋘dare
authu_return=anv鋘darlista
authu_edit=膎dra anv鋘dare
authu_create=Skapa anv鋘dare
authu_user=Anv鋘darnamn
authu_pass=L鰏enord
authu_enc=Krypterat ...
authu_plain=Klartext ...
authu_err=Det gick inte att spara anv鋘dare
authu_euser=Anv鋘darnamn ej angivet
authu_euser2=Anv鋘darnamn kan inte inneh錶la :
authu_edup=Det finns redan en anv鋘dare med namn '$1'
authu_sync=I inst鋖lningarna nedan kan du konfigurera Webmin att automatiskt l鋑ga till, uppdatera eller ta bort en anv鋘dare fr錸 denna l鰏enordsfil n鋜 anv鋘daren l鋑gs till, 鋘dras eller tas bort i <tt>Anv鋘dare och Grupper</tt>-modulen.
authu_screate=L鋑g till en anv鋘dare n鋜 Unix-anv鋘daren l鋑gs till
authu_sdelete=Ta bort en anv鋘dare n鋜 Unix-anv鋘daren tas bort
authu_smodify=膎dra en anv鋘dare n鋜 Unix-anv鋘daren 鋘dras

authg_ecannot='$1' 鋜 inte en till錿en grupp-textfil
authg_title=Lista 鰒er grupper
authg_header=Fr錸 fil $1
authg_header2=Grupper fr錸 textfil $1
authg_none=Inga grupper i textfil $1
authg_add=L鋑g till en ny grupp
authg_return=lista 鰒er grupper
authg_edit=膎dra grupp
authg_create=Skapa grupp
authg_group=Gruppnamn
authg_mems=Medlemmar
authg_dont=膎dra inte
authg_set=S鋞t till ...
authg_err=Det gick inte att spara grupp
authg_euser=Inget gruppnamn har angivits
authg_euser2=Gruppnamn kan inte inneh錶la :
authg_edup=Det finns redan en grupp med namn '$1'

stop_err=Det gick inte att stanna apache
stop_ecannot=Du f錼 inte stanna apache
stop_epid=Det gick inte att 鰌pna PID-fil $1
stop_epid2=Ogiltig PID-fil $1
stop_esig=Det gick inte att skicka SIGTERM till process $1

start_err=Det gick inte att starta apache
start_ecannot=Du f錼 inte starta apache
start_ecmd=$1 Det gick inte: $2
start_eunknown=Ok鋘d anledning

restart_err=Det gick inte att g鰎a 鋘dringarna
restart_epid=Det gick inte att 鰌pna PID-fil $1
restart_epid2=Ogiltig PID-fil $1
restart_esig=Det gick inte att skicka SIGHUP till process $1
restart_eunknown=Ok鋘d anledning

acl_virts=Virtuella servrar som denna anv鋘dare kan 鋘dra
acl_vall=Alla servrar
acl_vsel=Angivna ...
acl_defserv=Defaultserver
acl_global=Kunna 鋘dra globala inst鋖lningar?
acl_htaccess=endast .htaccess
acl_create=Kunna skapa virtuella servrar?
acl_vuser=Kunna 鋘dra anv鋘dare f鰎 virtuella servrar?
acl_vaddr=Kunna 鋘dra adress f鰎 virtuella servrar?
acl_pipe=Kunna skicka loggar till program?
acl_stop=Kunna starta och stanna Apache?
acl_dir=Begr鋘sa filer till katalog
acl_types=Tillg鋘gliga direktivtyper
acl_all=Alla
acl_sel=Angivna ...

core_maxconc=Maximalt antal samtidiga f鰎fr錱ningar
core_maxkeep=Maximalt antal persistenta f鰎fr錱ningar per anslutning
core_maxreq=Maximalt antal f鰎fr錱ningar per serverprocess
core_minspare=Minimalt antal extra serverprocesser
core_maxspare=Maximalt antal extra serverprocesser
core_initial=Initialt antal serverprocesser
core_emaxconc=Maximalt antal f鰎fr錱ningar m錽te vara ett heltal
core_emaxkeep=Maximalt antal persistenta f鰎fr錱ningar per anslutning m錽te vara ett heltal
core_emaxreq=Maximalt antal f鰎fr錱ningar per serverprocess m錽te vara ett heltal
core_eminspare=Minimalt antal extra serverprocesser m錽te vara ett heltal
core_emaxspare=Maximalt antal extra serverprocesser m錽te vara ett heltal
core_einitial=Initialt antal serverprocesser m錽te vara ett heltal
core_default=Standard
core_cpulimit=Gr鋘s f鰎 utnyttjande av CPU
core_memlimit=Gr鋘s f鰎 utnyttjande av minne
core_proclimit=Gr鋘s f鰎 antal processer
core_cpulimit2=gr鋘s f鰎 utnyttjande av CPU
core_memlimit2=gr鋘s f鰎 utnyttjande av minne
core_proclimit2=gr鋘s f鰎 antal processer
core_slimit=Mjuk gr鋘s
core_hlimit=H錼d gr鋘s
core_eslimit=$1 鋜 inte en giltig mjuk $2
core_ehlimit=$1 鋜 inte en giltig h錼d $2
core_dport=Standardport:
core_address=Adress
core_port=Port
core_listen=Lyssna p adresser och portar
core_eaddress='$1' 鋜 inte en giltig adress
core_eport='$1' 鋜 inte en giltig port
core_eoneaddr=Du m錽te ange minst en adress att lyssna p
core_edefport=Ogiltig standardport
core_multi=Flera f鰎fr錱ningar per anslutning
core_ekeep='$1' 鋜 inte ett giltigt v鋜de p persistenta f鰎fr錱ningar
core_ltwice=Sl upp tv g錸ger
core_keeptout=Timeout f鰎 persistenta f鰎fr錱ningar
core_lqueue=Lyssningsk鰏torlek
core_bufsize=Storlek p TCP-s鋘dningsbuffert
core_admin=E-postadress till serverns administrat鰎
core_rtout=Timeout f鰎 f鰎fr錱an
core_bhostname=Anv鋘d datornamn fr錸 webl鋝aren
core_lookup=Sl upp datornamn
core_useauth=Utf鰎 RFC1413-uppslagning av anv鋘dare
core_altnames=Alternativa namn f鰎 virtuella servrar
core_hostname=Serverns datornamn
core_virtaddr=Adresser f鰎 namnbaserade virtuella servrar
core_ekeeptout=Timeout f鰎 persistenta f鰎fr錱ningar m錽te vara ett heltal
core_elqueue=Lyssningsk鰏torlek m錽te vara ett heltal
core_ebufsize=TCP-s鋘dningsbuffertens storlek m錽te vara ett heltal. 
core_ertout=Timeout f鰎 f鰎fr錱an m錽te vara ett heltal
core_ehostname=Ogiltigt datornamn f鰎 servern
core_osdefault=Operativsystemets standard
core_noadmin=Ingen
core_auto=Automatisk
core_ekeep='$1' 鋜 inte ett giltigt antal persistenta f鰎fr錱ningar
core_evirtaddr='$1' 鋜 inte en giltig adress f鰎 namnbaserade virtuella servrar
core_auth=Autentiseringsinst鋖lningar
core_mime=MIME-typer och kodningar
core_indexing=Indexering och indexfiler
core_hostacc=Datornamnsbaserad 錿komstkontroll
core_diropts=Kataloginst鋖lningar
core_filesel=Angivna nedan...
core_execcgi=K鰎 CGI-program
core_flink=F鰈j symboliska l鋘kar
core_inclexe=Serverbaserade inkluderingar och k鰎ningar
core_incl=Serverbaserade inkluderingar
core_genind=Skapa katalogindex
core_genmview=Skapa Multiviews
core_flinkmatch=F鰈j symboliska l鋘kar om 鋑aren matchar
core_optsel=Angivna nedan...
core_enable=Aktivera
core_disable=Deaktivera
core_optfile=Inst鋖lningsfil f鰎 Per-directory
core_overr=Inst鋖lningsfilen g鋖ler 鰒er ...
core_genmd5=Skapa MD5-sammandrag
core_docroot=Dokumentrotkatalog
core_eoptfile=Endast en inst鋖lningsfil 鋜 till錿en
core_enoopt=Du har inte angivit n錱on inst鋖lningsfil
core_enodoc=Dokumentrot '$1' finns inte
core_sigemail=E-postadress
core_signame=Servernamn
core_signone=Inget
core_virtpath=S鰇v鋑 f鰎 virtuell server
core_footer=Fotnot till felmeddelande
core_evirtpath=S鰇v鋑 f鰎 virtuell server m錽te b鰎ja med en /
core_defmime=Standard MIME-typ
core_edefmime=Standard MIME-typ m錽te vara p formen typ/undertyp
core_realm=Namn p autentiseringsomr錮e
core_authtype=Autentiseringstyp
core_authall=Alla 錿komstr鋞tigheter
core_authany=N錱on 錿komstr鋞tighet
core_authlog=Begr鋘sa 錿komst via inloggning
core_satisfy=Klienter m錽te uppfylla
core_salone=Frist錯nde
core_inetd=K鰎 fr錸 inetd
core_verosmod=Version och OS och moduler
core_veros=Version och OS
core_ver=Endast version
core_coredir=Katalog f鰎 core-fil
core_lockfile=L錽fil f鰎 server
core_maxbody=Maximal storlek p f鰎fr錱ningens kropp
core_maxhead=Maximalt antal huvud i f鰎fr錱ningen
core_maxshead=Maximal storlek p f鰎fr錱ningens huvud
core_maxline=Maximal radl鋘gd f鰎 f鰎fr錱ningen
core_pid=Serverns PID-fil
core_memsco=Fil f鰎 minnesdelningens resultattabell
core_exec=Serverstart
core_header=Serverns HTTP-huvud
core_ecore=Ogiltig katalog f鰎 core-fil
core_elock=Ogiltig l錽fil
core_ebody=Ogiltig storlek p f鰎fr錱ningens kropp
core_ehead=Ogiltigt antal huvud i f鰎fr錱ningen
core_eshead=Ogiltig storlek p f鰎fr錱ningens huvud
core_eline=Ogiltig radl鋘gd f鰎 f鰎fr錱ningen
core_epid=Ogiltig PID-fil
core_escore=Ogiltig fil f鰎 minnesdelningens resultattabell
core_sroot=Serverroot
core_group= Gruppnamn
core_gid= Grupp-ID
core_user= Anv鋘darnamn
core_uid= Anv鋘dar-ID
core_asgroup=K鰎 som Unix-grupp
core_asuser=K鰎 som Unix-anv鋘dare
core_euid='$1' 鋜 inte ett giltigt grupp-ID
core_egid='$1' 鋜 inte ett giltigt anv鋘dar-ID
core_tourl= G till URL ...
core_mesg= Visa meddelande ...
core_error=Felkod
core_resp=Respons
core_urlmsg=URL eller meddelande
core_custom=Egna felmeddelanden
core_eerror='$1' 鋜 inte en giltig felkod
core_eurl='$1' 鋜 inte en giltig URL
core_syslog=Systemlogg
core_filelog=Fil
core_proglog=Program
core_errfile=Felloggningsfil
core_logto=Logga fel till
core_efilelog=Ogiltig felloggningsfil
core_edirlog=Felloggningsfilen finns inte under den till錿na katalogen
core_efilemiss=Felloggningsfil saknas
core_eprogmiss=Felloggningsprogram saknas
core_eperm=Du f錼 inte skicka loggar till program
core_allmod=Alla moduler
core_selmod=Angivna moduler ...
core_actmod=Aktiva moduler
core_option=Val
core_setdir=S鋞t f鰎 katalog
core_merge=F鰎ena med f鰎鋖der
core_users=Endast anv鋘dare
core_groups=Endast grupper
core_allusers=Alla giltiga anv鋘dare
core_none=Ingen
core_all=Alla
core_product=Endast produkt

mod_negotiation_cache=Cacha inneh錶lsf鰎handlade dokument?
mod_negotiation_pri=Spr錵prioritet f鰎 multi-views
mod_negotiation_def=Standard
mod_negotiation_epri=Spr錵prioriteter saknas

mod_cgi_logname=Logg f鰎 CGI-script
mod_cgi_none=Ingen
mod_cgi_elogname=Ogiltig loggfil f鰎 CGI-script
mod_cgi_logsize=Maximal storlek f鰎 CGI-scriptslogg
mod_cgi_default=Standard
mod_cgi_elogsize=CGI-scriptsloggens storlek m錽te vara ett heltal
mod_cgi_post=Maximal postad datastorlek som loggas
mod_cgi_epost=Maximal postad datastorlek m錽te vara ett heltal
mod_cgi_eunder=CGI-scriptsloggen finns inte under den till錿na katalogen
mod_alias_from=Fr錸
mod_alias_to=Till
mod_alias_status=Status
mod_alias_efrom='$1' 鋜 inte en giltig $2
mod_alias_edest='$1' 鋜 inte en giltig destination f鰎 $2 
mod_alias_alias=Alias f鰎 dokumentkatalog
mod_alias_alias2=dokumentalias
mod_alias_regexp=Alias f鰎 dokumentkatalog (regexp)
mod_alias_regexp2=dokumentalias-regexp
mod_alias_redir=URL-h鋘visningar
mod_alias_redir2=URL-h鋘visning
mod_alias_rredir=URL-h鋘visning (regexp)
mod_alias_rredir2=URL-h鋘visning (regexp)
mod_alias_tredir=Tempor鋜 URL-h鋘visning
mod_alias_tredir2=tempor鋜 URL-h鋘visning
mod_alias_predir=Permanent URL-h鋘visning
mod_alias_predir2=permanent URL-h鋘visning
mod_alias_cgi=Alias f鰎 CGI-katalog
mod_alias_cgi2=alias f鰎 CGI-katalog
mod_alias_rcgi=Alias f鰎 CGI-katalog (regexp)
mod_alias_rcgi2=alias f鰎 CGI-katalog (regexp)
mod_alias_estatus='$1' 鋜 inte en giltig status

mod_proxy_proxy=Agera som proxy-server?
mod_proxy_req=F鰎fr錱ningar
mod_proxy_forw=Skicka vidare till
mod_proxy_all=Alla
mod_proxy_match=Matchande..
mod_proxy_pass=F鰎fr錱ningar som ska skickas vidare till annan proxy
mod_proxy_local=Lokal URL-s鰇v鋑
mod_proxy_remote=URL p annan server
mod_proxy_map=講ers鋞t lokala URL:er till andra
mod_proxy_block=Blockera f鰎fr錱ningar till dessa dom鋘er
mod_proxy_eblock=Du har inte angivit n錱on dom鋘 att blockera
mod_proxy_type=Typ
mod_proxy_noproxy=Ingen proxy f鰎 ...
mod_proxy_nopass=Skicka inte f鰎fr錱ningar till annan proxy f鰎
mod_proxy_nodomain=Dom鋘 f鰎 f鰎fr錱ningar utan dom鋘
mod_proxy_none=Ingen
mod_proxy_enodomain=Ogiltig standarddom鋘
mod_proxy_connect=Portar som CONNECT 鋜 till錿na till
mod_proxy_default=Standard
mod_proxy_econnect=Ogiltiga CONNECT-portar
mod_proxy_dir=Cachekatalog
mod_proxy_edir=Ogiltig cachekatalog
mod_proxy_size=Cachestorlek
mod_proxy_esize=Ogiltig cachestorlek
mod_proxy_garbage=Intervall f鰎 cacherensning
mod_proxy_nogc=Aldrig
mod_proxy_hours=timmar
mod_proxy_egarbage=Ogiltigt intervall f鰎 cacherensning
mod_proxy_maxexp=Maximal livsl鋘gd f鰎 cachade filer
mod_proxy_emaxexp=Ogiltig livsl鋘gd f鰎 cachade filer
mod_proxy_expfac~=Livsl鋘gdsfaktor f鰎 cachade filer
mod_proxy_eexpfac=Ogiltig livsl鋘gdsfaktor f鰎 cachade filer
mod_proxy_levels=Antal katalogniv錯r att cacha 
mod_proxy_elevels=Ogiltigt antal katalogniv錯r att cacha 
mod_proxy_length=Namnl鋘gd f鰎 cachad katalog
mod_proxy_elength=Ogiltig namnl鋘gd f鰎 cachad katalog
mod_proxy_defexp=Standardlivsl鋘gd f鰎 cachade filer
mod_proxy_edefexp=Ogiltig standardlivsl鋘gd f鰎 cachade filer
mod_proxy_finish=Slutf鰎 och cacha 鰒erf鰎ingen efter
mod_proxy_efinish=Ogiltig 鰒erf鰎ingsprocent
mod_proxy_nocache=Dom鋘er som inte ska cachas
mod_proxy_none2=Inga
mod_proxy_none3=Ingen
mod_proxy_enocache=Du har inte angivit n錱on dom鋘 som inte ska cachas
mod_proxy_erequest='$1' 鋜 inte en giltig f鰎fr錱an
mod_proxy_epurl='$1' 鋜 inte en giltig proxy-URL
mod_proxy_elurl='$1' 鋜 inte en giltig s鰇v鋑 f鰎 lokal URL
mod_proxy_erurl='$1' 鋜 inte en giltig URL p annan server
mod_proxy_eip='$1' 鋜 inte en giltig IP-adress
mod_proxy_ehost='$1' 鋜 inte ett giltigt datornamn
mod_proxy_edomain='$1' 鋜 inte en giltig dom鋘
mod_proxy_enet='$1' 鋜 inte ett giltigt n鋞verk
mod_proxy_enetbit='$1' 鋜 inte ett giltigt par av n鋞verk/bitar
mod_proxy_eunder=cache-katalogen finns inte under den till錿na katalogen
mod_proxy_rurl=URL p annan server
mod_proxy_lurl=S鰇v鋑 f鰎 lokal URL
mod_proxy_headers=講ers鋞t andra Location:-huvuden till lokala
mod_proxy_ip=IP-adress
mod_proxy_host=Datornamn
mod_proxy_domain=Dom鋘
mod_proxy_net=IP-n鋞verk
mod_proxy_netbit=N鋞verk/bitar

mod_log_agent_default=Standard
mod_log_agent_file=Fil ...
mod_log_agent_program=Program ...
mod_log_agent_log=Loggfil f鰎 webbl鋝are
mod_log_agent_efile=$1 鋜 inte ett giltigt namn f鰎 loggfil f鰎 webbl鋝are

mod_log_config_common=Gemensamt loggformat
mod_log_config_named=Namngivet loggformat
mod_log_config_nick=Kortnamn
mod_log_config_format=Format
mod_log_config_deflog=Standardformat
mod_log_config_default=Standard
mod_log_config_write=Skriv till
mod_log_config_filprog=Fil eller program
mod_log_config_file=Fil ...
mod_log_config_program=Program ...
mod_log_config_log=舤komstloggfiler
mod_log_config_enick='$1' 鋜 inte ett giltigt kortnamn
mod_log_config_eformat=Du har inte angivit n錱ot loggformat f鰎 $1
mod_log_config_enofilprog=Loggfil eller program saknas
mod_log_config_efilprog='$1' 鋜 inte ett giltigt loggfilnamn eller program
mod_log_config_eifset=Valet 'If set' kan inte anv鋘das med standardformatet f鰎 loggning

mod_log_referer_default=Standard
mod_log_referer_file=Fil ...
mod_log_referer_program=Program ...
mod_log_referer_log=Referensloggfil
mod_log_referer_nolog=Logga inte referenser fr錸
mod_log_referer_elog=$1 鋜 inte ett giltigt namn f鰎 referensloggen
mod_log_referer_edir=Referensloggen finns inte under den till錿na katalogen

mod_status_msg=Visa ut鰇ad statusinformation

mod_mime_ext=Ut鰇ningar
mod_mime_xtype=Extra MIME-typer
mod_mime_mtype=MIME-typ
mod_mime_chandl=Inneh錶lshanterare
mod_mime_cencs=Inneh錶lskodningar
mod_mime_cenc=Inneh錶lskodning
mod_mime_clangs=Inneh錶lsspr錵
mod_mime_clang=Inneh錶lets spr錵
mod_mime_defmime=Behandla alla filer som MIME-typ
mod_mime_real=Verklig typ
mod_mime_etype=Ogiltig MIME-typ
mod_mime_pass=Skicka alla filer till hanterare
mod_mime_file=MIME-typsfil
mod_mime_default=Standard
mod_mime_ignhand=Ignorera hanterare f鰎 鋘delse
mod_mime_none=Ingen
mod_mime_xchars=Extra teckenupps鋞tning
mod_mime_einvalid='$1' 鋜 inte en giltig $2
mod_mime_eext=Inga 鋘delser angivna f鰎 $1 $2
mod_mime_type=Typ
mod_mime_handler=Hanterare
mod_mime_enc=Kodning
mod_mime_lang=Spr錵
mod_mime_chars=Teckenupps鋞tning
mod_mime_igntype=Ignorera MIME-typer f鰎 鋘delse
mod_mime_ignenc=Ignorera kodningar f鰎 鋘delse

mod_setenvif_header=膔enderad
mod_setenvif_match=Matcha
mod_setenvif_case=Matcha skiftl鋑e
mod_setenvif_var=Variabel
mod_setenvif_value=V鋜de
mod_setenvif_txt=Variabler s鋞ts baserat p f鰎fr錱ningens 鋜ende
mod_setenvif_eheader=Ogiltigt 鋜ende '$1'
mod_setenvif_eregex=Ogiltigt regulj鋜t uttryck '$1'
mod_setenvif_evar=Ogiltigt variabelnamn '$1'
mod_setenvif_clear=Rensa

mod_userdir_default=Standard
mod_userdir_all=Alla anv鋘dare 錿komliga
mod_userdir_except=Alla anv鋘dare f鰎utom
mod_userdir_dir=Anv鋘dares WWW-katalog

mod_imap_action=舤g鋜d vid felaktig anv鋘dning av imagemaps
mod_imap_default=Standard
mod_imap_godefurl=G till standard-URL
mod_imap_form=Visa formaterad meny
mod_imap_semiform=Visa halvformaterad meny
mod_imap_unform=Visa oformaterad meny
mod_imap_disperr=Visa serverfel
mod_imap_donoth=G鰎 ingenting
mod_imap_goimap=G till imagemap-URL
mod_imap_goref=G till h鋘visande URL
mod_imap_gourl=G till URL ...
mod_imap_defact=Standard錿g鋜d f鰎 imagemaps
mod_imap_default2=Standard
mod_imap_root=Serverroot
mod_imap_imapurl=Imagemap URL
mod_imap_refurl=H鋘visande URL
mod_imap_url=URL ...
mod_imap_defbase=Standardbas f鰎 imagemaps
mod_imap_eurl='$1' 鋜 inte en giltig URL

mod_speling_autocorr=Korrigera felstavade URL:er automatiskt?
mod_speling_default=Standard

mod_actions_mime=Hanterare/MIME-typ
mod_actions_cgiurl=URL till CGI-script
mod_actions_mimecgi=CGI-錿g鋜der f鰎 hanterare eller MIME-typ
mod_actions_http=HTTP-metod
mod_actions_cgi=CGI-script
mod_actions_httpcgi=HTTP-metod CGI-錿g鋜der
mod_actions_emime='$1' 鋜 inte en giltig hanterare eller MIME-typ
mod_actions_ecgi='$1' 鋜 inte ett giltigt CGI-script
mod_actions_enometh=Du har inte angivit n錱on metod f鰎 CGI-scriptet '$1'

mod_include_incl=Processa inkluderingar av k鰎bara filer?
mod_include_set=Ja och 鋘dra senast-鋘drad-datum
mod_include_default=Standard

mod_dir_txt=Indexfiler f鰎 kataloger

mod_autoindex_default=Standard
mod_autoindex_asc=Stigande
mod_autoindex_descend=Fallande
mod_autoindex_name=Namn
mod_autoindex_date=Datum
mod_autoindex_size=Storlek
mod_autoindex_desc=Beskrivning
mod_autoindex_sort=Sortera katalogindex efter

browsermatch_regexp=Regulj鋜t uttryck f鰎 webbl鋝are
browsermatch_case=Matcha skiftl鋑e?
browsermatch_var=S鋞t variabel
browsermatch_value=V鋜de
browsermatch_txt=Variabler s鋞ts baserat p webbl鋝arens typ
browsermatch_evar='$1' 鋜 ett ogiltigt variabelnamn 
browsermatch_clear=Rensa

autoindex_fname=Filnamn
autoindex_mime=MIME-typ
autoindex_enc=Kodning
autoindex_icon=Ikon
autoindex_alt=Alternativtext
autoindex_match=Matcha efter
autoindex_fte=Filnamn, typ eller kodning
autoindex_diricon=Ikoner f鰎 katalogindex
autoindex_deficon=Standardikon f鰎 katalogindex
autoindex_default=Standard
autoindex_edeficon=Ogiltig URL f鰎 standardikon
autoindex_diralt=Katalogindexets ALT-taggar
autoindex_desc=Beskrivning
autoindex_fnames=Filnamn
autoindex_dirdesc=Beskrivningar f鰎 katalogindex
autoindex_fancy=Visa tjusiga katalogindex
autoindex_htmltitle=Visa HTML-titel som beskrivning
autoindex_iheight=Ikonh鰆d
autoindex_iwidth=Ikonbredd
autoindex_sort=Till錿 anv鋘daren att sortera kolumner
autoindex_fildesc=Visa filbeskrivningar
autoindex_htags=Skapa taggar f鰎 HTML-huvud
autoindex_mtime=Visa senast-鋘drad-tider
autoindex_size=Visa filstorlekar
autoindex_iconlink=Inkludera ikon i l鋘ken
autoindex_fwidth=Filnamnsl鋘gd
autoindex_dwidth=Beskrivningsl鋘gd
autoindex_dirfirst=Visa kataloger f鰎st
autoindex_default2=Standard
autoindex_select=Angivna nedan ...
autoindex_default3=Standard
autoindex_pixels=pixlar
autoindex_chars=tecken
autoindex_diropt=Inst鋖lningar f鰎 katalogindex
autoindex_dirhead=Katalogindexets huvudfil
autoindex_default4=Standard
autoindex_edirhead=Ogiltigt filnamn f鰎 huvudfil
autoindex_dirfoot=Katalogindexets fotnotsfil
autoindex_edirfoot=Ogiltigt filnamn f鰎 fotnotsfil
autoindex_ignore=Strunta i dessa filer i katalogindex
autoindex_eiconurl='$1' 鋜 inte en giltig ikon-URL
autoindex_emiss=$1 till $2 fattas
autoindex_emissquot=$1 till '$2' fattas
autoindex_enodesc=Det finns ingen beskrivning av filen $1
autoindex_enofile=Det finns inga filer med beskrivning '$1'
autoindex_eiconsize='$1' 鋜 inte en giltig ikonstorlek
autoindex_ewidth='$1' 鋜 inte en giltig ikonbredd

mod_mime_magic_file=Fil f鰎 MIMEs magiska tal
mod_mime_magic_none=Ingen
mod_mime_magic_efile=Ogiltigt filnamn f鰎 MIMEs magiska tal

mod_env_var=Variabel
mod_env_value=V鋜de
mod_env_pass=Skicka vidare
mod_env_clear=Rensa
mod_env_set=S鋞t till ...
mod_env_cgivar=Milj鰒ariabler f鰎 CGI-script
mod_env_passall=Skicka vidare alla milj鰒ariabler till CGIs
mod_env_default=Standard
mod_env_evar='$1' 鋜 inte ett giltigt variabelnamn
mod_env_evalue='$1' 鋜 inte ett giltigt variabelv鋜de

mod_access_order=Ordning f鰎 kontroll av 錿komstsr鋞tigheter:
mod_access_denyallow=Neka, sedan till錿
mod_access_allowdeny=Till錿, sedan neka
mod_access_mutual=謒sesidigt misslyckande
mod_access_default=Standard
mod_access_action=舤g鋜d
mod_access_cond=Tillst錸d
mod_access_all=Alla f鰎fr錱ningar
mod_access_host=F鰎fr錱ning fr錸 dator ...
mod_access_ip=F鰎fr錱ning fr錸 IP ...
mod_access_pip=F鰎fr錱ning fr錸 del av IP ...
mod_access_mask=F鰎fr錱ning fr錸 n鋞/n鋞mask ...
mod_access_cidr=F鰎fr錱ning fr錸 n鋞/CIDR ...
mod_access_var=Om variabeln 鋜 satt ...
mod_access_allow=Till錿
mod_access_deny=Neka
mod_access_restr=Begr鋘sa 錿komst
mod_access_eip='$1' 鋜 inte en giltig IP-adress
mod_access_epip='$1' 鋜 inte en giltig del av en IP-adress
mod_access_emask='$1' 鋜 inte ett giltigt par av n鋞/n鋞mask
mod_access_ecidr='$1' 鋜 inte ett giltigt n鋞/CIDR
mod_access_evar='$1' 鋜 inte ett giltigt variabelnamn

mod_auth_ufile=Anv鋘dartextfil
mod_auth_uedit=膎dra anv鋘dare 
mod_auth_gfile=Grupptextfil
mod_auth_gedit=膎dra grupper
mod_auth_pass=Skicka vidare misslyckanden till n鋝ta modul?
mod_auth_auth=Textfilsautentisering
mod_auth_eudir=Anv鋘dartextfilen finns inte under den till錿na katalogen
mod_auth_egdir=Grupptextfilen finns inte under till錿na katalogen
mod_auth_eufile=Ogiltigt namn f鰎 anv鋘dartextfil
mod_auth_egfile=Ogiltigt namn f鰎 grupptextfil

mod_auth_dbm_ufile=DBM-anv鋘darfil
mod_auth_dbm_gfile=DBM-gruppfil
mod_auth_dbm_pass=Skicka vidare misslyckade f鰎s鰇 till n鋝ta modul?
mod_auth_dbm_auth=Autentisering f鰎 DBM-fil
mod_auth_dbm_eufile=Ogiltigt namn f鰎 DBM-anv鋘darfil
mod_auth_dbm_egfile=Ogiltigt namn f鰎 DBM-gruppfil

mod_cern_meta_process=Processa huvudets metafiler
mod_cern_meta_dir=Underkatalog f鰎 huvudets metafiler
mod_cern_meta_default=Standard
mod_cern_meta_edir=Ogiltig underkatalog f鰎 huvudets metafiler
mod_cern_meta_suffix=Fil鋘delse f鰎 huvudets metafiler
mod_cern_meta_default2=Standard
mod_cern_meta_esuffix=Ogiltig fil鋘delse f鰎 metafiler

mod_ssl_enable=Anv鋘da SSL?
mod_ssl_proto=SSL-protokoll
mod_ssl_cfile=Certifikat/privat nyckelfil
mod_ssl_default=Standard
mod_ssl_ecfile=Du har inte angivit n錱ot certifikat/n錱on privat nyckelfil
mod_ssl_kfile=Privat nyckelfil
mod_ssl_ekfile=Du har inte angivit n錱on privat nyckelfil
mod_ssl_clcert=Klient-SSL-certifikat
mod_ssl_nreq=Kr鋠s inte
mod_ssl_opt=Valfritt
mod_ssl_req=Kr鋠s
mod_ssl_optca=Valfritt, ingen CA
mod_ssl_cdepth=Djup f鰎 klientcertifikat
mod_ssl_ecdepth=Certifikatdjupet m錽te vara ett tal
mod_ssl_log=Loggfil f鰎 SSL
mod_ssl_elog=Du har inte angivit n錱on loggfil f鰎 SSL
mod_ssl_onlyssl=Till錿 endast 錿komst med SSL

log_global=膎drade globala inst鋖lningar f鰎 $1
log_virtc=Skapade server $1
log_virts=Konfigurerade om server $1
log_virtd=Tog bort server $1
log_virtm=膎drade server $1 f鰎 hand
log_virt=膎drade $1 f鰎 server $2
log_dirc=Skapade katalog $1
log_dirc_l=Skapade katalog $1 p server $2
log_dirs=膎drade katalog $1
log_dirs_l=膎drade katalog $1 p server $2
log_dird=Tog bort katalog $1
log_dird_l=Tog bort katalog $1 p server $2
log_dirm=膎drade katalog $1 f鰎 hand
log_dirm_l=膎drade katalog $1 p server $2 f鰎 hand
log_dir=膎drade $1 i katalog $2
log_dir_l=膎drade $1 i katalog $2 p server $3
log_htaccessc=Skapade inst鋖lningsfil $1
log_htaccessd=Tog bort inst鋖lningsfil $1
log_htaccessm=膎drade i inst鋖lningsfil $1 f鰎 hand
log_htaccess=膎drade $1 i inst鋖lningsfil $2
log_filesc=Skapade filinst鋖lningar f鰎 $1
log_filesc_l=Skapade filinst鋖lningar f鰎 $1 i fil $2
log_filess=膎drade filinst鋖lningar f鰎 $1
log_filess_l=膎drade filinst鋖lningar f鰎 $1 i fil $2
log_filesd=Tog bort filinst鋖lningar f鰎 $1
log_filesd_l=Tog bort filinst鋖lningar f鰎 $1 i fil $2
log_filesm=膎drade filinst鋖lningar f鰎 $1 f鰎 hand
log_filesm_l=膎drade filinst鋖lningar f鰎 $1 i fil $2 f鰎 hand
log_files=膎drade $1 i filinst鋖lningarna f鰎 $2
log_files_l=膎drade $1 i filinst鋖lningarna f鰎 $2 i fil $3
log_mime_modify=Modifierade MIME-typ $1
log_mime_create=Lade till MIME-typ $1
log_defines=膎drade definierade parametrar
log_reconfig=Konfigurerade om k鋘da moduler
log_start=Startade webbserver
log_stop=Stannade webbserver
log_apply=Tog 鋘dringar i drift
 0707010001b8b7000081a40000000000000002000000013ac0389700007804000000200000000000000000000000000000001500000003reloc/apache/lang/tr  index_title=Apache Web Sunucusu
index_eroot=Apache k鰇 dizini $1 mevcut de餴l. E餰r Apache kurulmu ise, <a href='$2'>mod黮 ayarlar齨</a> do餽u yolu kullanmak i鏸n de餴⺶irin
index_eserver=Apache sunucusu 鏰lt齬齦abiliri $1 mevcut de餴l. E餰r Apache kurulmu ise, <a href='$2'>mod黮 ayarlar齨</a> do餽u yolu kullanmak i鏸n de餴⺶irin
index_econf=Apache ayar dosyas $1 mevcut de餴l. E餰r Apache kurulmu ise, <a href='$2'>mod黮 ayarlar齨</a> do餽u yolu kullanmak i鏸n de餴⺶irin
index_eports=Apache ayarlar齨齴 1'den fazla $1 i鏴riyor. Webmin'in bu versiyonu bu kurulumu devam ettiremiyor.
index_global=Genel Yap齦and齬ma
index_virts=Sanal Sunucular
index_defserv=謓tan齧l Sunucu
index_defdesc1=Di餰r b黷黱 sanal sunucular i鏸n 鰊tan齧l ayarlar tan齧lar ve herhangi b齬ak齦an istekleri yapar 
index_any=Hepsi
index_default=謓tan齧l
index_auto=Otomatik
index_virt=Sanal Sunucular
index_vname=輘im tabanl sunucu $2'deki adresleri $1'de tutar.
index_vdef=蔺lemler b黷黱 istekleri di餰r sanal sunucular ile kullanmazlar
index_defdesc2=Di餰r sanal sunucular i鏸n 鰊tan齧l ayarlar tan齧lar
index_vport=蔺lemler $1 portundaki b黷黱 istekleri di餰r sanal sunucular ile kullanmazlar
index_vaddr=B黷黱 istekler $1 adresine b齬ak齦齬
index_vaddrport=B黷黱 istekler $1 adresindeki $2 portuna b齬ak齦齬
index_type=Tip
index_addr=Adres
index_port=Port
index_name=Sunucu 輘mi
index_root=D鰇黰an Yolu
index_create=Yeni Bir Sanal Sunucu Olu⺶ur
index_return=sunucu listesi

cvirt_ecannot=Sanal sunucu olu⺶urmaya izniniz yoktur
cvirt_err=Sanal sunucu olu⺶urulmas齨da hata olustu
cvirt_eaddr1=Adres Girilmedi
cvirt_eaddr2='$1' ge鏴rli bir adres de餴ldir
cvirt_eport='$1' ge鏴rli bir form de餴ldir
cvirt_ename='$1' ge鏴rli bir sunucu ismi de餴ldir
cvirt_eroot1=Bir d鰇黰an ismi girilmelidir
cvirt_eroot2=Dizinin olu⺶urulmasinda hata olustu '$1' : $2

etype=Bu tip se鏴nekleri de餴⺶irmeye izininiz yoktur
efailed=Kaydetmede hata olu⺶u : $1
apache_apply=De餴㱮klikleri Uygula
apache_stop=Apache'yi durdur
apache_start=Apache'yi baat
auth_return=giri kontrol
default_serv=鰊tan齧l sunucusu

global_ecannot=Genel se鏴nekleri de餴⺶irmeye izininiz yoktur
global_mime=Genel MIME tipleri listesi
global_mimedesc=謟elliklerini de餴⺶irmek istedi餴niz MIME tipini listeden se鏸p t齥lay齨 veya listeye yeni bir tip eklemek i鏸n sayfan齨 alt齨daki linki kullanin
global_type=Tip
global_ext=Uzant齦ar
global_add=Yeni bir MIME tipi ekle
global_return=MIME tipleri

mime_ecannot=MIME tiplerini degi⺶irmeye izininiz yoktur
mime_edit=MIME Tipinin 謟elliklerini De餴⺶ir
mime_add=Yeni Bir MIME Tipi Ekle
mime_header=MIME tipi haritalar i鏸n dosya ad uzant齦ar
mime_type=MIME Tipi
mime_ext=Uzant齦ar
mime_err=MIME tipinin kaydedilmesinde hata olu⺶u
mime_etype='$1' ge鏴rli bir MIME tipi de餴ldir

virt_ecannot=Bu sanal sunucunun 鰖elliklerini de餴⺶iremezsiniz
virt_title=Sanal Sunucu Se鏴nekleri
virt_header=$1 icin
virt_opts=Sanal Sunucu Se鏴nekleri
virt_conf=Sunucu Ayarlar
virt_show=Dizin Se鏴nekleri
virt_adddir=Alt-dizin, Dosya veya Dizin Olu⺶urma 謟ellikleri
virt_type=Tip
virt_exact=Birebir ee⺶ir
virt_re=Regexp'i karla⺶齬
virt_path=Yol
virt_return=sunucu indeksi
virt_euser=Bu sanal sunucu icin kullan齝 ya da gruplar齨 鰖elliklerini de餴⺶irmeye hakk齨齴 yoktur
virt_header2=$2 i鏸n $1

vserv_title=Sanal Sunucu Ayarlar
vserv_ecannot=Bu sanal sunucunun adres 鰖elliklerini de餴⺶iremezsiniz
vserv_addr=Adres
vserv_port=Port
vserv_any=Hepsi
vserv_default=謓tan齧l
vserv_root=D鰇黰an Yeri
vserv_name=Sunucu 輘mi
vserv_delete=Sanal Sunucuyu Sil
vserv_err=Sanal sunucunun kaydedilmesinde hata olu⺶u
vserv_eaddr1=Adres Girilmedi
vserv_eaddr2='$1' ge鏴rli bir adres de餴ldir
vserv_eport='$1' ge鏴rli bir port de餴ldir
vserv_eroot='$1' ge鏴rli bir k鰇 dokumani de餴ldir
vserv_ename='$1' ge鏴rli bir sunucu ismi de餴ldir

show_title=Komutlar
show_edit=Apache Komutlar齨 De餴⺶ir:
show_these=Komutlar elle de餴⺶irin
show_ok=謟elli餴ni de餴⺶ir

manual_title=Yeni Komutlar
manual_header=Bu sanal sunucudaki dizin ya da dosyalara $1'deki Apache komutlar齨 uygulamak i鏸n takip eden formu kullanabilirsiniz

dir_title=Dizin Bana Se鏴nekler
dir_header=$1 i鏸n, $2'de
dir_show=Komutlar g鰏ter
dir_opts=Secenekleri Uggula ..
dir_type=Tip
dir_regexp=Regexp(D鼁enleme ifadeleri)?
dir_exact=Mecburi karla⺶齬
dir_re=Regexp karla⺶齬
dir_path=Yol
dir_return=dizin indexi
dir_header2=$2 icin $1

type_0=蔺lemler ve S齨齬lar
type_1=A ve Adresler
type_2=Apache Mod黮leri
type_3=Kay齮 Dosyalar
type_4=Giri Kontrol
type_5=D鰇黰an Se鏴nekleri
type_6=MIME Tipleri
type_7=Hata Denetimi
type_8=Kullan齝 ve Gruplar
type_9=莈㱮tli
type_10=Takma isimler ve y鰊lendirmeler
type_11=CGI Programlar
type_12=Dizin Indeksleme
type_13=Proxy
type_14=SSL Se鏴nekleri
type_15=Perl
type_16=PHP

htaccess_title=Dizin bana se鏴nekler dosyas
htaccess_ecannot=htaccess dosyalar齨 de餴⺶iremezsiniz
htaccess_desc=Eklenilen dizin bana se鏴nekler her dizinde bir dosyada (genellikle <tt>.htaccess</tt>) tutulmaktad齬.Bu se鏴nek belirtilen dizin, i鏸ndeki dosyalar ve alt dizinlerinde di餰r se鏴nek dosyalar 鰊emsenmedik鏴 uygulanacakt齬.
htaccess_create=Se鏴nek Dosyas Olu⺶ur
htaccess_find=Se鏴nek Dosyalar齨 Bul
htaccess_auto=Otomatik Olarak
htaccess_from=Dizinden
htaccess_return=se鏴nek dosyas listesi
htaccess_edir='$1' ge鏴rli bir dizin ismi degildir
htaccess_ecreate=Bu se鏴nek dosyas齨 olu⺶urmaya izininiz yoktur
htaccess_edelete=Bu se鏴nek dosyas齨 silmeye izininiz yoktur

htindex_ecannot=Bu se鏴nek dosyas齨齨 i鏴ri餴ni de餴⺶irmeye izininiz yoktur
htindex_title=Dizin Bana Se鏴nekler
htindex_delete=Dosyay Sil
htindex_show=Komutlar G鰏ter
htindex_opts=Dizin Bana Se鏴nekler
htindex_file=Dosya Bana Yap齦and齬ma
htindex_create=Dosya Bana Se鏴nekler Olu⺶ur
htindex_regexp=Regexp?
htindex_exact=Mutlaka karla⺶齬
htindex_re=Mutlaka Regexp
htindex_path=Yol
htindex_header=$1 i鏸n
htindex_header2=Se鏴nek dosyas $2 i鏸n $1
htindex_return=Se鏴nek dosyas indeksi

htfile_title=Dosya Bana Se鏴nekler
htfile_header=$2'de $1 icin
htfile_show=Komutlar G鰏ter
htfile_edit=Komutlar De餴⺶ir
htfile_apply=Se鏴nekleri Uygula
htfile_header2=$2 i鏸n $1

reconfig_title=Bilinen Mod黮leri Tekrar Ayarla
reconfig_ecannot=Apache'yi tekrar yap齦and齬mak i鏸n izininiz yoktur.
reconfig_ever=Apache sunucusu 鏰lt齬齦abilirinin s黵黰黱黱 al齨mas齨da hata olu⺶u.Do餽u yol tan齧齨 bulmak i鏸n <a href='$1'>mod黮 yap齦and齬mas</a> kontrol ediniz.
reconfig_desc1=Takip eden listede Webmin'in destekledi餴 Apache mod黮leri vard齬 ve kurulu olanlar se鏸lmi⺶ir.Liste do餽u de餴lse se鏴nekleri se鏴bilir ya da se鏸li olan kald齬abilirsiniz.
reconfig_desc2=Takip eden listede Webmin'in destekledi餴 Apache mod黮leri vard齬 ve kurulu olanlar se鏸lidir.
reconfig_ok=Ayarla

defines_title=Tan齧lanm parametreleri de餴⺶ir
defines_ecannot=Httpd tan齧lar齨 de餴⺶irmeye izininiz yoktur
defines_desc=Apache baat齦d齨da parametreler <tt>-D</tt> komut sat齬 se鏴ne餴 ile ge鏸lebilir. Sa taraftaki yaz kutusuna sisteminizde kulland齨齴 parametreleri giriniz.
defines_config=Not: Takip eden tan齧l parametreler $1 olarak her zaman biliniyor.

authu_ecannot='$1' izin verilmi bir kullan齝 d鼁 metin dosyas de餴ldir
authu_title=Kullan齝 Listesi
authu_header=$1'deki dosya
authu_header2=$1 dosyas齨daki kullan齝齦ar
authu_none=$1 dosyas齨da kullan齝齦ar yoktur
authu_add=Yeni bir kullan齝 ekle
authu_return=Kullan齝 Listesi
authu_edit=Kullan齝 謟ellliklerini De餴⺶ir
authu_create=Kullan齝 Olu⺶ur
authu_user=Kullan齝 Ad
authu_pass=Parola
authu_enc=辤frelenmi...
authu_plain=D鼁 Metin Ortam
authu_err=Kullan齝齨齨 Kaydedilmesinde hata olu⺶u
authu_euser=Kullan齝 Ad Girilmedi
authu_euser2=Kullan齝 ad ⺷ karakteri i鏴rmemelidir :
authu_edup='$1' kullan齝齭 her zaman mevcut
authu_sync=Bu se鏴nek ile Webmin'in, <tt>Kullan齝齦ar ve Gruplar</tt> mod黮 ile bir kullan齝 eklendi餴, de餴⺶irildi餴 veya silindi餴 zaman otomatik olarak bu parola dosyas齨da kullan齝 eklemek, de餴㱮rmek ya da silme iemlerini yapmas sa餷an齬.
authu_screate=Bir Unix kullan齝齭 eklendi餴nde kullan齝齳 ekle
authu_sdelete=Bir Unix kullan齝齭 silindi餴nde kullan齝齳 sil
authu_smodify=Bir Unix kullan齝齭 de餴⺶irildi餴nde kullan齝齳 de餴⺶ir

authg_ecannot='$1' izin verilmi bir d鼁 metin dosyas de餴l.
authg_title=Grup listesi
authg_header=$1 dosyas齨da
authg_header2=$1 yaz dosyas齨daki gruplar
authg_none=$1 yaz dosyas齨da grup yok
authg_add=Yeni bir grup ekle
authg_return=grup listesi
authg_edit=Grup 謟elliklerini De餴⺶ir
authg_create=Grup Olu⺶ur
authg_group=Grup 輘mi
authg_mems=躽eler
authg_dont=Degi⺶irmeyin
authg_set=Kur..
authg_err=Grubun kaydedilmesinde hata olu⺶u
authg_euser=Grup ismi girilmedi
authg_euser2=Grup ismi bu karakteri i鏴rmemelidir :
authg_edup='$1' grubu zaten mevcuttur

stop_err=Apache'nin durdurulamas齨da hata olu⺶u
stop_ecannot=Apache'yi durdurmaya izininiz yoktur
stop_epid=PID dosyas $1'in a琮lmas齨da hata olu⺶u
stop_epid2=Yanl PID dosyas $1
stop_esig=$1 iemine SIGTERM g鰊derilirken hata olu⺶u

start_err=Apache'nin baat齦mas齨da hata olu⺶u
start_ecannot=Apache'yi baatmaya izininiz yoktur
start_ecmd=$1'de hata olu⺶u : $2
start_eunknown=Bilinmeyen sebep

restart_err=De餴㱮klikleri uygulamada hata olu⺶u
restart_epid=PID dosyas $1'i a鏰rken hata olu⺶u
restart_epid2=Yanl PID dosyas $1
restart_esig=$1 iemine SIGHUP gonderilirken hata olu⺶u
restart_eunknown=Bilinmeyen sebep

acl_virts=Sanal Sunucular齨 鰖elliklerini bu kullan齝 de餴⺶irebilir
acl_global=Genel se鏴nekleri de餴⺶irebilsin
acl_htaccess=Sadece .htaccess
acl_create=Sanal sunucular olu⺶urabilsin
acl_vuser=Sanal sunucu kullan齝齦ar齨 de餴⺶irebilsin
acl_vaddr=Sanal sunucu adreslerini de餴⺶irebilsin
acl_pipe=Kay齮lar programlara ba餷ayabilsin mi?
acl_stop=Apache'yi durdurup baatabilsin
acl_dir=S齨齬lanacak dosya dizinleri
acl_types=Komut tipleri ulalabilir.
acl_all=B黷黱
acl_sel=Se鏸lmi..

core_maxconc=En 鏾k concurrent istek say齭
core_maxkeep=Ba餷ant bana en 鏾k keepalive s黵esi
core_maxreq=Sunucu iemi bana en 鏾k iem say齭
core_minspare=En az spare sunucu iemi say齭
core_maxspare=En 鏾k spare sunucu iemi say齭
core_initial=輑k sunucu iem say齭
core_emaxconc=En 鏾k concurrent istek say齭 bir tamsay olmal齞齬.
core_emaxkeep=Ba餷ant bana en 鏾k keepalive s黵esi bir tamsay olmal齞齬.
core_emaxreq=Sunucu iemi bana en 鏾k iem say齭 bir tamsay olmal齞齬.
core_eminspare=En az spare sunucu iemi say齭 bir tamsay olmal齞齬.
core_emaxspare=En 鏾k spare sunucu iemi say齭 bir tamsay olmal齞齬.
core_einitial=輑k sunucu iem say齭 bir tamsay olmal齞齬.
core_default=謓tan齧l
core_cpulimit=蔺lemci kaynak limiti
core_memlimit=Bellek kaynak limiti
core_proclimit=蔺lem limiti
core_cpulimit2=蔺lemci kaynak limiti
core_memlimit2=Bellek kaynak limiti
core_proclimit2=iem limiti
core_slimit=Soft limit 
core_hlimit=Hard limit 
core_eslimit=$1 ge鏴rli bir soft $2 de餴l
core_ehlimit=$1 ge鏴rli bir hard $2 de餴l
core_dport=謓tan齧l port:
core_address=Adres
core_port=Port
core_listen=Adres ve portlarda dinle
core_eaddress='$1' ge鏴rli bir adres de餴l
core_eport='$1' ge鏴rli bir port de餴l
core_eoneaddr=Burada inlemek i鏸n en az bir adres girmelisiniz:
core_edefport=Ge鏴rsiz 鰊tan齧l port
core_multi=Ba餷ant bana 鏾klu istek say齭
core_ekeep='$1' ge鏴rli bir keepalive say齭 de餴ldir
core_ltwice=Lookup twice
core_keeptout=Keep-alive gecikme s黵esi
core_lqueue=Dinleme kuyru饀 uzunlu饀
core_bufsize=TCP g鰊derim tampon boyutu
core_admin=Sunucu y鰊eticisi e-posta adresi
core_rtout=輘tek gecikme s黵esi
core_bhostname=Taray齝 ile makine ad tamamlay齝齦ar齨 kullan
core_lookup=Makine adlar齨a bak齦s齨 m?
core_useauth=RFC1413 kullan齝齦ar齨a bak齦s齨 m
core_altnames=Sanal sunucu isimlerini olu⺶ur
core_hostname=Sunucu makine ad
core_virtaddr=Sanal sunucu isimleri i鏸n adresler
core_ekeeptout=Keep-alive gecikme s黵esi bir tamsay olmal齞齬
core_elqueue=Dinleme kuyrupu uzunlu饀 bir tamsay olmal齞齬
core_ebufsize=TCP g鰊derim tampon boyutu bir tamsay olmal齞齬
core_ertout=輘tek gecikme s黵esi bir tamsay olmal齞齬
core_ehostname=Ge鏴rsiz sunucu makine ad
core_osdefault=OS 謓tan齧l齭
core_noadmin=Hi鏱iri
core_auto=Otomatik
core_ekeep='$1' ge鏴rli bir keepalive gecikme s黵esi olmal齞齬
core_evirtaddr='$1' sanal sunucu isimleri i鏸n ge鏴rli bir adres de餴ldir
core_auth=Onaylama se鏴nekleri
core_mime=MIME tipleri ve 㱮frelemeler
core_indexing=Indeksleme ve indeks dosyalar
core_hostacc=Makine ad giri kontrol
core_diropts=Dizin se鏴nekleri
core_filesel=Se鏸liler...
core_execcgi=CGI programlar齨 鏰lt齬
core_flink=Sembolik linkleri takip et
core_inclexe=Server-side i鏴rikleri ve 鏰lt齬齦abilirleri
core_incl=Server-side i鏴rikleri
core_genind=Sizin indekslerini olu⺶ur
core_genmview=莖klu Baklar Olu⺶ur
core_flinkmatch=Sahipleri izin verirse sembolik linkleri takip et
core_optsel=Se鏸liler..
core_enable=Aktif
core_disable=Aktif de餴l
core_optfile=Dizin bana se鏴nekler dosyas
core_overr=Se鏴nekler dosyas g鰖 鰊黱de tutulsun..
core_genmd5=MD5 digest'lerini olu⺶ur
core_docroot=D鰇黰an dizini
core_eoptfile=Sadece bir tane se鏴nekler dosyas olabilir
core_enoopt=Se鏴nekler dosyas girilmedi
core_enodoc=D鰇黰an yolu '$1' mevcut de餴l
core_sigemail=E-posta adresi
core_signame=Sunucu ismi
core_signone=Hi鏱iri
core_virtpath=Sanal sunucu yolu
core_footer=Hata mesaj dipnotu
core_evirtpath=Sanal sunucu yolu bir / ile baamal齞齬
core_defmime=謓tan齧l MIME Tipi
core_edefmime=謓tan齧l MIME tipi tip/alt_tip 㧐klinde olmal齞齬
core_realm=Onaylama alan ismi
core_authtype=Onaylama tipi
core_authall=B黷黱 giri kontrolleri
core_authany=Herhangi bir giri kontrol
core_authlog=Login ile giri㱮 k齭齮la
core_satisfy=輘temciler ikna edilmeli
core_salone=Her zaman 鏰ls齨
core_inetd=Inetd'den 鏰lt齬
core_verosmod=S黵黰, OS ve mod黮ler
core_veros=S黵黰 ve OS
core_ver=Sadece s黵黰
core_coredir=莈kirdek hatas dizini
core_lockfile=Sunucu kilit dosyas
core_maxbody=En 鏾k istek boyutu
core_maxhead=輘tekteki en 鏾k ba齥 say齭
core_maxshead=En 鏾k istek ba boyutu
core_maxline=En 鏾k istek sat齬 say齭
core_pid=Sunucu PID dosyas
core_memsco=Paylalm bellek durum dosyas
core_exec=Sunucu 鏰lma durumu
core_header=Sunucu HTTP ba
core_ecore=Ge鏴rsiz 鏴kirdek hatas dizini
core_elock=Ge鏴rsiz kay齮 dosyas
core_ebody=Ge鏴rsiz istek boyutu
core_ehead=Ge鏴rsiz ba齥 say齭
core_eshead=Ge鏴rsiz ba齥 boyutu
core_eline=Ge鏴rsiz istek sat齬 say齭
core_epid=Ge鏴rsiz PID dosyas
core_escore=Ge鏴rsiz durum dosyas
core_sroot=Sunucu root
core_group= Grup ad
core_gid= Grup ID
core_user= Kullan齝 ad
core_uid= Kullan齝 ID
core_asgroup=Unix grubu olarak 鏰lt齬
core_asuser=Unix kullan齝齭 olarak 鏰lt齬
core_euid='$1' ge鏴rli bir grup ID de餴l
core_egid='$1' ge鏴rli bir kullan齝 ID de餴l
core_tourl= URL'ye git..
core_mesg= Mesaj g鰏ter..
core_error=Hata kodu
core_resp=Yan齮
core_urlmsg=URL ya da mesaj
core_custom=謟el hata yan齮lar
core_eerror='$1' ge鏴rli bir hata kodu de餴l
core_eurl='$1' ge鏴rli bir URL de餴l
core_syslog=Sistem Kayd
core_filelog=Dosya
core_proglog=Program 
core_errfile=Hata kay齮 dosyas
core_logto=Hata kayd...
core_efilelog=Ge鏴rsiz hata kay齮 dosyas
core_edirlog=Hata kay齮 dosyas izin verilen dizinin alt齨da de餴l
core_efilemiss=Hata kay齮 dosyas bulunamad
core_eprogmiss=Hata kay齮 dosyas bulunamad
core_eperm=Programlar kay齮lara ba餷amak i鏸n izininiz yoktur
core_allmod=B黷黱 mod黮ler
core_selmod=Se鏸li mod黮ler..
core_actmod=Aktif mod黮ler
core_option=Se鏴nek
core_setdir=Dizin i鏸n olu⺶ur
core_merge=Merge with parent
core_users=Sadece bu kullan齝齦ar
core_groups=Sadece bu gruplar
core_allusers=Sedece ge鏴rli kullan齝齦ar
core_none=Hi鏱iri
core_all=Hepsi
core_product=Hi鏱iri
core_206=謓tan齧l


mod_negotiation_cache=Cache content-negotiated documents?
mod_negotiation_pri=莖klu baklar i鏸n dil 鰊celi餴
mod_negotiation_def=謓tan齧l
mod_negotiation_epri=Dil 鰊celikleri bulunamad

mod_cgi_logname=CGI Betik kayd
mod_cgi_none=Hi鏱iri
mod_cgi_elogname=Ge鏴rsiz CGI betik kay齮 dosyas
mod_cgi_logsize=En 鏾k CGI kay齮 boyutu
mod_cgi_default=謓tan齧l
mod_cgi_elogsize=CGI kay齮 boyutu bir tamsay olmal齞齬
mod_cgi_post=En 鏾k kayd tutulmu sonraki bilgi boyutu
mod_cgi_epost=Post bilgi boyutu bir tamsay olmal齞齬.
mod_cgi_eunder=CGI beti餴 kayd izin verilen dizinin alt齨da de餴ldir
mod_alias_efrom='$1' ge鏴rli bir $2 de餴ldir
mod_alias_edest='$1' ge鏴rli bir $2 hedefi de餴ldir
mod_alias_alias=D鰇黰an dizin takma adlar
mod_alias_regexp=D鼁enleme ifadeleri d鰇黰an dizin takma adlar
mod_alias_redir=URL y鰊lendirmeleri
mod_alias_rredir=D鼁enleme ifadeleri URL y鰊lendirmeleri
mod_alias_tredir=Ge鏸ci URL y鰊lendirmeleri
mod_alias_predir=Kal齝 URL y鰊lendirmeleri
mod_alias_cgi=CGI dizini takma adlar
mod_alias_rcgi=D鼁enleme ifadeleri CGI dizini takma adlar
mod_alias_estatus='$1' ge鏴rli bir durum de餴ldir
mod_proxy_proxy=Proxy sunucusu olarak davrans齨 m?
mod_proxy_req=輘tekler
mod_proxy_forw=D鰊d黵
mod_proxy_all=Hepsi
mod_proxy_match=Karla⺶齬齦齳or..
mod_proxy_pass=Di餰r proxy'e ge鏸 istekleri
mod_proxy_local=Yerel URL yolu
mod_proxy_remote=Uzak URL
mod_proxy_map=Uzak URL'lere yereli haritala
mod_proxy_block=Alanlara engel istekleri
mod_proxy_eblock=Engellenecek alan bulunamad
mod_proxy_type=Tip
mod_proxy_noproxy=Bunun i鏸n proxy kullanma..
mod_proxy_nopass=Di餰r proxy'e istekleri ge鏼e
mod_proxy_nodomain=Alan bulunamad齨da istekler i鏸n verilecek alan
mod_proxy_none=Hi鏱iri
mod_proxy_enodomain=Ge鏴rsiz 鰊tan齧l alan
mod_proxy_connect=BA蠰ANTIya izin verilen portlar
mod_proxy_default=謓tan齧l
mod_proxy_econnect=Ge鏴rsiz BA蠰ANTI portlar
mod_proxy_dir=Cache dizini
mod_proxy_edir=Ge鏴rsiz cache dizin ismi
mod_proxy_size=Cache boyutu
mod_proxy_esize=Ge鏴rsiz cache boyutu
mod_proxy_garbage=Cache at齥 toplama aral
mod_proxy_nogc=Asla
mod_proxy_hours=saat
mod_proxy_egarbage=Ge鏴rsiz cache at齥 toplama aral
mod_proxy_maxexp=Cache'lenmi dosyan齨 en 鏾k iptal s黵esi:
mod_proxy_emaxexp=Ge鏴rsiz cache'lenmi dosyan齨 en 鏾k iptal s黵esi
mod_proxy_expfac~==Cache'lenmi dosyan齨 en 鏾k iptal s黵esi 鏰rpan
mod_proxy_eexpfac=Ge鏴rsiz cache'lenmi dosyan齨 en 鏾k iptal s黵esi 鏰rpan
mod_proxy_levels=Cache dizin seviyesi
mod_proxy_elevels=Ge鏴rsiz cache dizin seviyesi say齭
mod_proxy_length=Cache dizin ismi uzunlu饀
mod_proxy_elength=Ge鏴rsiz cache dizin ismi uzunlu饀
mod_proxy_defexp=Cache 鰊tan齧l iptal s黵esi
mod_proxy_edefexp=Ge鏴rsiz cache 鰊tan齧l iptal s黵esi
mod_proxy_finish=Transferden sonra bitir ve cache'le
mod_proxy_efinish=Ge鏴rsiz transfer y鼁desi
mod_proxy_nocache=Cache'lenmeyecek alanlar
mod_proxy_none2=Hi鏱iri
mod_proxy_enocache=Cache'lenmeyecek alan bulunamad
mod_proxy_erequest='$1' ge鏴rli bir istek de餴ldir
mod_proxy_epurl='$1' ge鏴rli bir proxy URL'si de餴ldir
mod_proxy_elurl='$1' ge鏴rli bir yerel URL yolu de餴ldir
mod_proxy_erurl='$1' ge鏴rli bir uzak URL de餴ldir
mod_proxy_eip='$1' ge鏴rli bir IP adresi de餴ldir
mod_proxy_ehost='$1' ge鏴rli bir makine ad de餴ldir
mod_proxy_edomain='$1' ge鏴rli bir alan de餴ldir
mod_proxy_enet='$1' ge鏴rli bir a de餴ldir
mod_proxy_enetbit='$1' ge鏴rli bir a/bit 鏸fti de餴ldir
mod_proxy_eunder=cache dizini izin verilen dizinin alt齨da de餴ldir
mod_proxy_rurl=Uzak URL
mod_proxy_lurl=Yerel URL yolu
mod_proxy_headers=Uzak yerle㱮m haritas: yerele ba齥lar
mod_log_agent_default=謓tan齧l
mod_log_agent_file=Dosya..
mod_log_agent_program=Program..
mod_log_agent_log=Taray齝 kay齮 dosyas
mod_log_agent_efile=$1 ge鏴rli bir gizli kay齮 dosya ad de餴l
mod_log_config_common=Yayg齨 Kay齮 Bi鏸mi
mod_log_config_named=輘imlendirilmi kay齮 formatlar
mod_log_config_nick=Lakap
mod_log_config_format=Bi鏸m
mod_log_config_deflog=謓tan齧l kay齮 bi鏸mi
mod_log_config_default=謓tan齧l
mod_log_config_write=Yaz
mod_log_config_filprog=Dosya ya da program
mod_log_config_file=Dosya..
mod_log_config_program=Program..
mod_log_config_log=Giri kay齮 dosyalar
mod_log_config_enick='$1' ge鏴rli bir lakap de餴l
mod_log_config_eformat=$1 i鏸n kay齮 bi鏸mi girilmedi
mod_log_config_enofilprog=Kay齮 dosyas ya da program bulunamad
mod_log_config_efilprog='$1' ge鏴rli bir kay齮 dosyas ya da program de餴ldir
mod_log_config_eifset='Kurulduysa' se鏴ne餴 鰊tan齧l kay齮 bi鏸mi ile birlikte kullan齦amaz.
mod_log_referer_default=謓tan齧l
mod_log_referer_file=Dosya..
mod_log_referer_program=Program..
mod_log_referer_log=Y鰊lendirici kay齮 dosyas
mod_log_referer_nolog=Buradan gelen referanslar kay齮 tutma 
mod_log_referer_elog=$1 ge鏴rli bir y鰊lendirici kay齮 dosya ismi ismi de餴ldir
mod_log_referer_edir=Y鰊lendirici kayd izin verilen dizinin alt齨da de餴ldir
mod_status_msg=Uzat齦m durum bilgilerini g鰎黱t黮e
mod_mime_ext=Uzant齦ar
mod_mime_xtype=Ekstra MIME tipleri
mod_mime_mtype=MIME tipi
mod_mime_chandl=Handler'ler
mod_mime_cencs=辤frelemeler
mod_mime_cenc=辤freleme
mod_mime_clangs=Diller
mod_mime_clang=Sil
mod_mime_defmime=B黷黱 dosyalar MIME tipi olarak do餽ula
mod_mime_real=Ger鏴k tip
mod_mime_etype=Ge鏴rsiz MIME tipi
mod_mime_pass=Handler'e b黷黱 dosyalar ge
mod_mime_file=MIME tipleri dosyas
mod_mime_default=謓tan齧l
mod_mime_ignhand=Uzant齦ar i鏸n handler'leri yoksay
mod_mime_none=Hi鏱iri
mod_mime_xchars=Ekstra karakter setleri
mod_mime_einvalid='$1' ge鏴rli bir $2 de餴ldir
mod_mime_19=$1 $2 i鏸n uzant齦ar girilmedi

mod_mime_type=Tip
mod_mime_handler=Handler
mod_mime_enc=辤freleme
mod_mime_lang=Dil
mod_mime_chars=Karakter Seti

mod_setenvif_header=Ba齥
mod_setenvif_match=Ee⺶ir
mod_setenvif_case=Harf ee⺶ir
mod_setenvif_var=De餴⺧en
mod_setenvif_value=De餰r
mod_setenvif_txt=De餴⺧enler istek ba齥lar齨a g鰎e olu⺶urulmal齞齬.
mod_setenvif_eheader=Ge鏴rsiz istek ba '$1'
mod_setenvif_eregex=Ge鏴rsiz d鼁enleme ifadesi '$1'
mod_setenvif_evar=Ge鏴rsiz de餴⺧en ismi '$1'
mod_setenvif_clear=Temizle
mod_userdir_default=謓tan齧l
mod_userdir_all=T黰 kullan齝齦ar ulabilir 
mod_userdir_except=T黰 kullan齝齦ar hari
mod_userdir_dir=Kullan齝 WWW dizini
mod_imap_action=Imagemap'lerin yanl kullan齦齧齨daki iem
mod_imap_default=謓tan齧l
mod_imap_godefurl=謓tan齧l URL'ye git
mod_imap_form=Bi鏸mlendirilmi men鼀 g鰏ter
mod_imap_semiform=Yar bi鏸mlendirilmi men鼀 g鰏ter
mod_imap_unform=Bi鏸mlendirilmemi men鼀 g鰏ter
mod_imap_disperr=Sunucu hatas齨 g鰎黱t黮e
mod_imap_donoth=Hi鏱ir㧐y yapma
mod_imap_goimap=Imagemap URL'sine git
mod_imap_goref=Referring URL'ye git
mod_imap_gourl=URL'ye git...
mod_imap_defact=Imagemap'ler i鏸n 鰊tan齧l iemler
mod_imap_default2=謓tan齧l
mod_imap_root=Sunucu root
mod_imap_imapurl=Imagemap URL
mod_imap_refurl=Referring URL
mod_imap_url=URL...
mod_imap_defbase=Imagemap'ler i鏸n 鰊tan齧l taban
mod_imap_eurl='$1' ge鏴rli bir URL de餴ldir
mod_speling_autocorr=Tamamlanmam URL'leri otomatik olarak tamamla?
mod_speling_default=謓tan齧l
mod_actions_mime=Handler / MIME tipi
mod_actions_cgiurl=CGI beti餴 URL'si
mod_actions_mimecgi=Handler ya da MIME tipi CGI iemleri
mod_actions_http=HTTP metodu
mod_actions_cgi=CGI beti餴
mod_actions_httpcgi=HTTP metodu CGI iemleri
mod_actions_emime='$1' ge鏴rli bir handler ya da MIME tipi de餴ldir
mod_actions_ecgi='$1' ge鏴rli bir CGI beti餴 de餴ldir
mod_actions_enometh=CGI beti餴 '$1' i鏸n bir metod se鏸lmedi
mod_include_incl=蔺lem dosyalara 鏰lt齬齦abilir biti eklesin mi?
mod_include_set=Evet ve son de餴⺶irilme tarihini olu⺶ur
mod_include_default=謓tan齧l
mod_dir_txt=Dizin indeks dosyalar
mod_autoindex_default=謓tan齧l
mod_autoindex_asc=A瘕ya do餽u (a->z)
mod_autoindex_descend=Yukar do餽u (z->a)
mod_autoindex_name=輘im
mod_autoindex_date=Tarih
mod_autoindex_size=Boyut
mod_autoindex_desc=A琮klama
mod_autoindex_sort=Dizin indeksini s齬ala
browsermatch_regexp=Taray齝 d鼁enleme ifadesi
browsermatch_case=Harfler ee⺶irilsin?
browsermatch_var=De餴⺧eni gir
browsermatch_value=De餰r
browsermatch_txt=De餴⺧enler taray齝 tipine g鰎e belirlenmelidir
browsermatch_evar=Ge鏴rsiz de餴⺧en ismi '$1'
browsermatch_clear=Temizle
autoindex_fname=Dosya ismi
autoindex_mime=MIME tipi
autoindex_enc=辤freleme
autoindex_icon=Ikon
autoindex_alt=A琮klama
autoindex_match=Karla⺶齬
autoindex_fte=Dosya isimleri, tipler ve 㱮frelemeler
autoindex_diricon=Dizin indeks ikonlar
autoindex_deficon=Dizin indeksi 鰊tan齧l ikonu
autoindex_default=謓tan齧l
autoindex_edeficon=Ge鏴rsiz 鰊tan齧l ikon URL'si
autoindex_diralt=Dizin indeksi ALT etiketleri
autoindex_desc=A琮klama
autoindex_fnames=Dosya isimleri
autoindex_dirdesc=Dizin indeksi a琮klamalar
autoindex_fancy=Display fancy directory indexes
autoindex_htmltitle=HTML ba齨 a琮klama olarak g鰎黱tile
autoindex_20=輐on t黭sekli餴", "輐on genii餴
autoindex_sort=Allow user sorting of columns
autoindex_fildesc=Dosya a琮klamalar齨 g鰏ter
autoindex_htags=HTML ba齥 etiketleri 琮kt齭
autoindex_mtime=Son de餴⺶irilme tarihlerini g鰏ter
autoindex_size=Dosya boyutlar齨 g鰏ter
autoindex_iconlink=Ba餷ant齦ar ikonu i鏴rsin
autoindex_fwidth=Dosya ismi uzunlu饀
autoindex_dwidth=A琮klama uzunlu饀
autoindex_dirfirst=Dizinleri ilk olarak g鰏ter
autoindex_default2=謓tan齧l
autoindex_select=Se鏸liler...
autoindex_default3=謓tan齧l
autoindex_pixels=piksel
autoindex_chars=karakter
autoindex_diropt=Dizin indeks se鏴nekleri
autoindex_dirhead=Dizin indeks ba齥 dosyas
autoindex_default4=謓tan齧l
autoindex_edirhead=Ge鏴rsiz indeks ba dosya ismi
autoindex_dirfoot=Dizin indeksi dipnot dosyas
autoindex_edirfoot=Ge鏴rsiz indeks dipnot dosya ismi
autoindex_ignore=Dizin indeksindeki yoksay齦acak dosyalar
autoindex_eiconurl='$1' ge鏴rli bir ikon url'si de餴ldir
autoindex_emiss=$2 i鏸n $1 bulunamad
autoindex_emissquot='$2' i鏸n $1 bulunamad
autoindex_enodesc=$1 dosyas i鏸n a琮klama bulunamad
autoindex_enofile='$1' a琮klamas i鏸n dosya bulunamad
autoindex_eiconsize='$1' ge鏴rli bir ion boyutu de餴ldir
autoindex_ewidth='$1' ge鏴rli bir geniik de餴ldir
mod_mime_magic_file=MIME magic numaralar dosyas
mod_mime_magic_none=Hi鏱iri
mod_mime_magic_efile=Ge鏴rsiz MIME magic numaralar dosyas
mod_env_var=De餴⺧en
mod_env_value=De餰r
mod_env_pass=Do餽udan ge
mod_env_clear=Temizle
mod_env_set=Kur..
mod_env_cgivar=CGI betikleri i鏸n 鏴vresel de餴⺧enler
mod_env_passall=CGI'lar i鏸n b黷黱 鏴vresel de餴⺧enleri ge
mod_env_default=謓tan齧l
mod_env_evar='$1' ge鏴rli bir de餴⺧en ismi de餴ldir
mod_env_evalue='$1' ge鏴rli bir de餴⺧en de餰ri de餴ldir
mod_access_order=Giri kontrol s齬alamas:
mod_access_denyallow=輟in verilenden verilmeye
mod_access_allowdeny=輟in verilmeyenden verilene
mod_access_mutual=Karl齥l hata
mod_access_default=謓tan齧l
mod_access_action=蔺lem
mod_access_cond=Durum
mod_access_all=B黷黱 istekler
mod_access_host=Makineden gelen istek...
mod_access_ip=IP'den gelen istek..
mod_access_pip=B鰈黱m IP'den gelen istek..
mod_access_mask=A/a餩maskesi'nden gelen istek..
mod_access_cidr=Net/CIDR'den gelen istek..
mod_access_var=De餴⺧en kurulduysa..
mod_access_restr=Giri㱮 k齭齮la
mod_access_eip='$1' ge鏴rli bir IP adresi de餴ldir
mod_access_epip='$1' ge鏴rli bir par鏰l IP adresi de餴ldir
mod_access_emask='$1' ge鏴rli bir a/a餩maskesi 鏸fti de餴ldir
mod_access_ecidr='$1' ge鏴rli bir a/CIDR 鏸fti de餴ldir
mod_access_evar='$1' ge鏴rli bir de餴⺧en ismi de餴ldir
mod_auth_ufile=Kullan齝 d鼁 metin yaz齭 dosyas
mod_auth_uedit=Kullan齝 de餴⺶ir
mod_auth_gfile=Grup d鼁 metin yaz齭 dosyas
mod_auth_gedit=Gruplar de餴⺶ir
mod_auth_pass=Sonraki mod黮e hatalar ge鏸lsin mi?
mod_auth_auth=D鼁 metin yaz齭 dosyas onaylamas
mod_auth_eudir=Kullan齝 d鼁 metin yaz齭 dosyas izin verilen dizinin alt齨da de餴ldir.
mod_auth_egdir=Grup d鼁 metin yaz齭 dosyas izin verilen dizinin alt齨da de餴ldir.
mod_auth_eufile=Ge鏴rsiz kullan齝 d鼁 metin dosyas ad
mod_auth_egfile=Ge鏴rsiz grup d鼁 metin yaz齭 dosyas ad
mod_auth_dbm_ufile=Kullan齝 DBM dosyas
mod_auth_dbm_gfile=Grup DBM dosyas
mod_auth_dbm_pass=Sonraki mod黮e hatalar ge鏸lsin mi?
mod_auth_dbm_auth=DBM dosyas onaylamas
mod_auth_dbm_eufile=Ge鏴rsiz kullan齝 DBM dosyas ad
mod_auth_dbm_egfile=Ge鏴rsiz grup DBM dosyas ad
mod_cern_meta_process=蔺lem ba meta dosyalar
mod_cern_meta_dir=Ba齥 meta dosyalar i鏸n alt dizin
mod_cern_meta_default=謓tan齧l
mod_cern_meta_edir=Ge鏴rsiz meta dosyas alt dizin ismi
mod_cern_meta_suffix=Ba齥 meta dosyalar i鏸n dosya son eki
mod_cern_meta_default2=謓tan齧l
mod_cern_meta_esuffix=Ge鏴rsiz meta dosyas son eki

mod_ssl_proto=SSL Protokolleri
mod_ssl_cfile=Sertifika/anahtar dosyas
mod_ssl_ecfile=Sertifika/anahtar dosyas bulunamad
mod_ssl_kfile=謟el anahtar dosyas
mod_ssl_ekfile=謟el anahtar dosyas bulunamad
mod_ssl_clcert=輘temci SSL Sertifikas
mod_ssl_nreq=Gerekli de餴ldir
mod_ssl_opt=Se鏸me ba餷
mod_ssl_req=Gerekli
mod_ssl_optca=Se鏸me ba餷 - CA olmadan
mod_ssl_cdepth=輘temci sertifika derinli餴
mod_ssl_ecdepth=Sertifika derinli餴 bir tam say olmal齞齬
mod_ssl_log=SSL kay齮 dosyas
mod_ssl_elog=SSL kay齮 dosyas bulunamad
mod_ssl_onlyssl=Sadece SSL giri㱮ne izin ver

log_global=Genel $1 se鏴nekleri de餴⺶irildi
log_virtc=$1 sunucusu olu⺶uruldu
log_virts=$1 sunucusu yeniden yap齦and齬齦d
log_virtd=$1 sunucusu silindi
log_virtm=$1 sunucusu elle de餴⺶irildi
log_virt=$2 sunucusundaki $1 de餴⺶irildi
log_dirc=$1 dizini olu⺶uruldu
log_dirc_l=$2 sunucusunda $1 dizini olu⺶uruldu
log_dirs=$1 dizini de餴⺶irildi
log_dirs_l=$2 sunucusunda $1 dizini de餴⺶irildi
log_dird=$1 dizini silindi
log_dird_l=$2 sunucusunda $1 dizini silindi
log_dirm=$1 dizini elle de餴⺶irildi
log_dirm_l=$2 sunucusunda $1 dizini elle de餴⺶irildi
log_dir=$2 dizinindeki $1 de餴⺶irildi
log_dir_l=$3 sunucusunda $2 dizinindeki $1 de餴⺶irildi
log_htaccessc=Se鏴nekler dosyas $1 olu⺶uruldu
log_htaccessd=Se鏴nekler dosyas $1 silindi
log_htaccessm=Se鏴nekler dosyas $1 elle de餴⺶irildi
log_htaccess=Se鏴nekler dosyas $2'deki $1 de餴⺶irildi
log_filesc=$1 i鏸n dosya se鏴nekleri olu⺶uruldu
log_filesc_l=$2 dosyas齨daki $1 i鏸n dosya se鏴nekleri olu⺶uruldu
log_filess=$1 i鏸n dosya se鏴nekleri de餴⺶irildi
log_filess_l=$2 dosyas齨daki $1 i鏸n dosya se鏴nekleri de餴⺶irildi
log_filesd=$1 i鏸n dosya se鏴nekleri silindi
log_filesd_l=$2 dosyas齨daki $1 i鏸n dosya se鏴nekleri silindi
log_filesm=$1 i鏸n dosya se鏴nekleri elle de餴⺶irildi
log_filesm_l=$2 dosyas齨daki $1 i鏸n dosya se鏴nekleri elle de餴⺶irildi
log_files=$1 i鏸n dosya se鏴nekleri de餴⺶irildi
log_files_l=$2 dosyas齨daki $1 i鏸n dosya se鏴nekleri de餴⺶irildi
log_mime_modify=MIME tipi $1 de餴⺶irildi
log_mime_create=MIME tipi $1 eklendi
log_defines=Tan齧l parametreler de餴⺶irildi
log_reconfig=Bilinen mod黮ler yeniden yap齦and齬齦d
log_start=Web sunucusu baat齦d
log_stop=Web sunucusu durduruldu
log_apply=De餴㱮klikler Uyguland



0707010001b8b8000081a40000000000000002000000013ac0389800005832000000200000000000000000000000000000001800000003reloc/apache/lang/zh_CN   index_title=Apache WEB服务器
index_eroot=Apache根目录 $1 不存在. 如果你已经安装了Apache, 请用正确的路径配置<a href='$2'></a>模块.
index_eserver=Apache服务器的执行文件$1不存在. 如果你已经安装了Apache, 请用正确的路径配置<a href='$2'></a>模块.
index_econf=Apache服务器的配置文件$1不存在. 如果你已经安装了Apache, 请用正确的路径配置<a href='$2'></a>模块.
index_eports=你目前Apache的配置中对 $1的引用超过了一个. 这个版本的Webmin不能处理这种设置.
index_global=全局配置
index_virts=虚拟服务器
index_defserv=缺省服务器
index_defdesc1=为所有其他虚拟服务器定义缺省设置, 处理任何没有定义的请求.
index_any=任意
index_default=缺省
index_auto=自动
index_virt=虚拟服务器
index_vname=在地址$2处理名字服务器$1 .
index_vdef=处理所有其他虚拟服务器不能处理的请求.
index_defdesc2=为所有其他虚拟服务器定义缺省设置.
index_vport=在端口$1处理所有其他虚拟服务器不能处理的请求.
index_vaddr=在地址$1处理所有请求.
index_vaddrport=在地址$1的端口$2处理所有请求.
index_type=类型
index_addr=地址
index_nv=增加虚拟命名服务器地址(如果需要)
index_port=端口
index_name=服务器名字
index_root=根文件
index_create=创建一个新的虚拟服务器
index_return=服务器列表

cvirt_ecannot=你不能创建虚拟服务器
cvirt_err=创建虚拟服务器失败
cvirt_eaddr1=没输入地址
cvirt_eaddr2='$1' 不是一个合法的地址
cvirt_eport='$1' 不是一个合法的端口
cvirt_ename='$1' 不是一个合法的服务器名
cvirt_eroot1=你必须键入一个根文件
cvirt_eroot2=创建目录'$1' : $2失败

etype=你不能编辑这种类型的选项
efailed=保存$1失败
apache_apply=申请改变
apache_stop=停止Apache
apache_start=运行Apache
auth_return=访问控制
default_serv=缺省服务器

global_ecannot=你不能编辑全局选项
global_mime=全局MIME类型列表
global_mimedesc=从下面的列表中选一个MIME类型编辑, 或用底部的链结向列表中增加一个新类型.
global_type=类型
global_ext=扩展名
global_add=增加新的MIME类型
global_return=MIME类型

mime_ecannot=你不能编辑MIME类型
mime_edit=编辑MIME类型
mime_add=增加MIME类型
mime_header=文件扩展名不是MIME类型
mime_type=MIME类型
mime_ext=扩展名
mime_err=保存MIME类型失败
mime_etype='$1' 不是一个合法的MIME类型

virt_ecannot=你不能编辑这个虚拟服务器
virt_title=虚拟服务器选项
virt_header=为 $1
virt_opts=虚拟服务器选项
virt_conf=配置服务器
virt_show=显示引用
virt_edit=编辑管理指令Edit Directives
virt_adddir=创建目录、文件或位置
virt_type=类型
virt_exact=精确匹配
virt_re=匹配正则表达式
virt_path=路径
virt_return=服务器索引
virt_euser=你不能改变这个虚拟服务器上的用户和组.
virt_header2=$1 为 $2

vserv_title=配置虚拟服务器
vserv_ecannot=你不能编辑这个虚拟服务器的地址
vserv_addr=地址
vserv_addrs=地址
vserv_port=端口
vserv_any=任意
vserv_default=确省
vserv_root=根文件
vserv_name=服务器名
vserv_delete=删除虚拟服务器
vserv_err=保存虚拟服务器失败
vserv_eaddr1=没输入地址
vserv_eaddr2='$1'不是一个合法的地址
vserv_eport='$1'不是一个合法的端口
vserv_eroot='$1'不是一个合法的根文件
vserv_ename='$1'不是一个合法的服务器名
vserv_eaddrs=没有键入虚拟服务器地址

show_title=引用
show_edit=编辑Apache引用
show_these=手工编辑管理指令
show_ok=编辑

manual_title=编辑管理指令
manual_header=在下面文本框中手工编辑 Apache 管理指令,用 $1 申请虚拟服务器,目录或文件.
manual_ecannot=您不能手工编辑管理指令

dir_title=保护目录选项
dir_header=为 $1 在 $2 上
dir_show=显示引用
dir_edit=编辑管理指令
dir_opts=选项应用于 ..
dir_type=类型
dir_regexp=正则表达式?
dir_exact=精确匹配
dir_re=匹配正则表达式
dir_path=路径
dir_return=目录索引
dir_header2=$1 为 $2

type_0=进程和限制
type_1=网络和地址
type_2=Apache模块
type_3=日志文件
type_4=访问控制
type_5=文档选项
type_6=MIME类型
type_7=错误处理
type_8=用户和组
type_9=杂项
type_10=别名和重定向
type_11=CGI程序
type_12=目录索引
type_13=代理
type_14=SSL选项
type_15=Perl
type_16=PHP

htaccess_title=保护目录选项文件
htaccess_ecannot=你不能编辑 htaccess 文件
htaccess_desc=保护目录选项一般在每个目录的一个文件中指定(通常是<tt>.htaccess</tt>) . 选项应用于目录下的所有文件及其子目录下的所有文件,除非被另一个选项文件覆盖. 
htaccess_create=创建选项文件 
htaccess_find=查找选项文件
htaccess_auto=自动 
htaccess_from=来自目录 
htaccess_return=选项文件列表
htaccess_edir='$1' 不是一个合法的目录 
htaccess_ecreate=你不能创建这个选项文件
htaccess_edelete=你不能删除这个选项文件

htindex_ecannot=你不能编辑这个选项文件
htindex_title=保护目录选项文件
htindex_delete=删除文件
htindex_show=显示引用
htindex_edit=编辑管理指令
htindex_opts=保护目录选项
htindex_file=保护文件配置
htindex_create=创建保护文件选项
htindex_regexp=正则表达式?
htindex_exact=精确匹配
htindex_re=匹配正则表达式
htindex_path=路径
htindex_header=为 $1
htindex_header2=$1 为选项文件 $2
htindex_return=选项文件索引

htfile_title=保护文件选项
htfile_header= $1 在 $2
htfile_show=显示引用
htfile_edit=编辑管理指令
htfile_apply=选项应用于 ..
htfile_header2=$1 为 $2

reconfig_title=重新配置已知的模块
reconfig_ecannot=你不能重新配置apache
reconfig_ever=不能得到Apache服务器$1的版本. 检查你的 <a href='$2'>模块配置</a> 以确定这是一个正确的路径.
reconfig_desc1=Apache配置已改变, 或还不能被Webmin检测到.下面是当前已安装的Webmin支持的所有Apache模块. 你可以选择或不选择.
reconfig_desc2=下面是当前已安装的Webmin支持的所有Apache模块. 如果你正在使用动态装载模块你必须选择那些支持动态装载的模块. 
reconfig_ok=配置

defines_title=编辑已定义的参数
defines_ecannot=你不能编辑httpd定义的
defines_desc=启动Apache时,可以用命令行选项<tt>-D</tt>传递参数. 因为这些参数能影响使用配置文件中的那些引用, 所以Webmin必须在Apache启动的时候将这些参数传递给它. 在右边的文本域中键入你需要的参数.
defines_config=注意: 下面定义的参数已存在: $1

authu_ecannot='$1' 不是一个合法的用户文本文件
authu_title=用户列表
authu_header=在文件$1中
authu_header2=来自于文本文件$1的用户
authu_none=在文件$1中没有用户
authu_add=增加一个新用户
authu_return=用户列表
authu_edit=编辑用户
authu_create=创建用户
authu_user=用户名
authu_pass=口令
authu_enc=被加密..
authu_plain=纯文本..
authu_err=保存用户失败
authu_euser=没输入用户名
authu_euser2=用户名不能包含 : 
authu_edup=用户 '$1' 已存在
authu_sync=在tt>用户和组</tt> 模块增加、修改、删除用户时，下面的选项允许你将Webmin配置成根据口令文件自动增加、修改、删除用户.
authu_screate=增加一个Unix用户时增加一个用户
authu_sdelete=删除一个Unix用户时删除一个用户
authu_smodify=修改一个Unix用户时修改一个用户

authg_ecannot='$1'不是一个合法的组文件
authg_title=组列表
authg_header=在文件$1中
authg_header2=来自于文本文件$1的组
authg_none=在文件$1中没有组
authg_add=增加一个新组
authg_return=组列表
authg_edit=编辑组
authg_create=创建组
authg_group=组名
authg_mems=成员
authg_dont=不能改变
authg_set=设为..
authg_err=保存组失败
authg_euser=没输入组名
authg_euser2=组名不能包含 : 
authg_edup=组 '$1' 已存在

stop_err=停止apache失败
stop_ecannot=你不能停止apache
stop_epid=打开PID文件$1失败
stop_epid2=非法PID文件$1
stop_esig=发送SIGTERM信号给进程 $1 失败

start_err=启动apache失败
start_ecannot=你不能启动apache
start_ecmd=$1 失败 : $2
start_eunknown=不明原因

restart_err=改变不能起作用
restart_epid=打开PID文件$1失败
restart_epid2=非法PID文件$1
restart_esig=发送SIGHUP信号给进程 $1 失败
restart_eunknown=不明原因

acl_virts=该用户能编辑的虚拟服务器
acl_vall=All servers
acl_vsel=Selected..
acl_global=能编辑全局选项吗？
acl_htaccess=只有 .htaccess
acl_create=能创建虚拟服务器吗?
acl_vuser=能改变虚拟服务器的用户吗?
acl_vaddr=能改变虚拟服务器的地址吗?
acl_pipe=能将日志输出到程序里吗?
acl_stop=能启动和停止Apache吗?
acl_dir=对目录限制文件
acl_types=可靠的引用类型
acl_all=所有
acl_sel=被选择的..

core_maxconc=最大并行请求
core_maxkeep=每个连接的最大活动时间
core_maxreq=每个服务进程的最大请求
core_minspare=最小剩余服务进程
core_maxspare=最大剩余服务进程
core_initial=初始化服务进程
core_emaxconc=最大并行服务请求应当是整数
core_emaxkeep=每个连接的最大激活数应当是整数
core_emaxreq=每个服务进程最大请求应当是整数
core_eminspace=最小剩余服务进程应当是整数
core_emaxspare=最大剩余服务进程应当是整数
core_einitial=初始化服务进程应当是整数
core_default=缺省
core_cpulimit=CPU 资源限制
core_memlimit=内存资源限制
core_proclimit=进程限制
core_cpulimit2=CPU 资源限制
core_memlimit2=内存资源限制
core_proclimit=进程限制
core_24=软限制
core_25=软限制
core_26=硬限制
core_27= 错误的软 $1
core_28= 错误的软 $1
core_29= 错误的硬 $1
core_dport=缺省端口:
core_address=地址
core_port=端口
core_listed=在地址和端口是监听
core_eaddress=错误地址'$1'
core_eport=错误端口'$1'
core_eoneaddr=至少应当指定一个监听地址
core_edefport=错误缺省端口
core_multi=每个连接多个请求
core_ekeep=错误的保持激活数'$1'
core_ltwice=查找两次
core_keeptout=保持激活超时
core_lqueue=监听队列长度
core_bufsize=TCP 发送缓冲大小
core_admin=服务器管理员电子邮件地址
core_rtout=请求超时
core_bhostname=使用浏览器提供的主机名称
core_lookup=查询主机名
core_useauth=执行 RFC1413 用户查询
core_altnames=替代虚拟用户名
core_hostname=服务器主机名
core_virtaddr=主机地址名虚拟服务
core_ekeeptout=保持激活超时应当是整数
core_elqueue=监听队列长度应当是整数
core_ebufsize=TCP 发送缓冲大小应当是整数
core_ertout=请求超时应当是整数
core_ehostname=错误服务器地址
core_osdefault=OS 缺省
core_noadmin=无
core_auto=自动
core_ekeep=错误的保持激活数'$1'
core_evirtaddr=错误的地址名虚拟服务器'$1'
core_auth=认证选项
core_mime=MIME 类型和编码
core_indexing=索引和索引文件
core_hostacc=主机存取控制
core_diropts=目录选项
core_filesel=选择下面的...
core_execcgi=执行 CGI 程序
core_flink=跟随符号连接
core_inclexe=服务器段包含和执行
core_incl=服务器段包含
core_genind=生成目录索引
core_genmview=生成 Multiviews
core_flinkmatch=如果所有者匹配根随符号连接
core_optsel=选择下面..
core_enable=允许
core_disable=禁止
core_optfile=每个目录选项文件
core_overr=选项文件可覆盖..
core_genmd5=生成 MD5 digests
core_docroot=文档根目录
core_eoptfile=仅仅允许一个选项文件
core_enoopt=没有输入选项文件
core_enodoc=文档根目录 '$1'不存在
core_sigemail=电子邮件地址
core_signame=服务器名
core_signone=无
core_virtpath=虚拟服务路径
core_footer=错误信息footer
core_evirtpath=虚拟服务器路径从 / 起始
core_defmime=缺省 MIME 类型
core_edefmime=缺省 MIME 类型格式是 类型/子类型
core_realm=认证真名
core_authtype=认证类型
core_authall=所有的存取控制
core_authany=任何存取控制
core_authlog=登录约束存取
core_satisfy=客户应当满足
core_salone=Standalone
core_inetd=从inetd运行
core_verosmod=版本和操作系统及模块
core_veros=版本和操作系统
core_ver=仅仅版本
core_coredir=core dump 目录
core_lockfile=服务锁文件
core_maxbody=最大请求体大小
core_maxhead=请求头数目最大值
core_maxshead=最大请求头大小
core_maxline=最大请求行大小
core_pid=服务 PID 文件
core_memsco=共享内存scoreboard文件
core_exec=服务器执行
core_header=服务器 HTTP 头
core_ecore=错误的 core dump 目录
core_elock=错误的lock文件
core_ebody=错误的请求体大小
core_ehead=错误的头大小
core_eshead=错误的的头大小
core_eline=错误的请求行大小
core_epid=错误 PID 文件
core_escore=错误 scoreboard 文件
core_sroot=服务器的根目录
core_group=组名
core_gid=组ID
core_user=用户名
core_uid=用户ID
core_asgroup=当做Unix组执行
core_asuser=当做Unix用户执行
core_euid=错误的组ID'$1'
core_egid=错误的用户ID'$1'
core_tourl= 转到 URL..
core_mesg= 显示信息..
core_error=错误代码
core_resp=反应
core_urlmsg=URL 或信息
core_custom=客户错误响应
core_eerror=非法的错误代码'$1'
core_eurl=错误的URL'$1'
core_syslog=系统日志
core_filelog=文件
core_proglog=程序
core_errfile=错误日志文件
core_logto=错误日志到
core_efilelog=错误日志文件
core_edirlog=错误日志文件没有在可允许读写的目录下
core_efilemiss=丢失错误日志文件
core_eprogmiss=丢失错误日程序
core_eperm=不允许通过管道把日志传递给程序
core_allmod=所有模块
core_selmod=已经选择的模块
core_actmod=激活模块
core_option=选项
core_setdir=路径设置
core_merge=和上级合并
core_users=只有这些用户
core_groups=只有这些用户组
core_allusers=所有有效用户
core_none=无
core_all=所有
core_product=仅仅产生

mod_negotiation_cache=是否缓冲文档处理?
mod_negotiation_pri=多语言环境的语言优先级
mod_negotiation_def=缺省
mod_negotiation_epri=丢失语言优先级

mod_cgi_logname=CGI 描述日志
mod_cgi_none=无
mod_cgi_elogname=错误的 CGI 描述日志文件
mod_cgi_logsize=最大 CGI 日志
mod_cgi_default=缺省
mod_cgi_elogsize=CGI 日志的大小是一个整数
mod_cgi_post=最大登录发送数据
mod_cgi_epost=发送数据必须是整数
mod_cgi_eunder=CGI 描述日志没有在可读写的目录下

mod_alias_efrom='$1' 错误的 $2
mod_alias_edest='$1' 错误的 $2 目标
mod_alias_alias=文档目录别名
mod_alias_alias2=正则表达式文档目录别名
mod_alias_redir=URL 重定向s
mod_alias_redir2=URL 重定向s
mod_alias_rredir=正则表达式 URL 重定向
mod_alias_tredir=临时 URL 重定向
mod_alias_predir=永久 URL 重定向
mod_alias_cgi=CGI 目录别名
mod_alias_rcgi=正则表达式 CGI 目录别名
mod_alias_estatus='$1' 是错误状态

mod_proxy_proxy=是否当做代理服务器?
mod_proxy_req=请求
mod_proxy_forw=前进
mod_proxy_all=所有
mod_proxy_match=匹配..
mod_proxy_pass=请求通过另一个代理
mod_proxy_local=本地 URL 路径
mod_proxy_remote=远程 URL
mod_proxy_map=本地映射到远程 URL
mod_proxy_block=域的块请求
mod_proxy_eblock=块没有给到域
mod_proxy_type=类型
mod_proxy_noproxy=无代理..
mod_proxy_nopass=不把请求发送到另一个代理
mod_proxy_nodomain=无域的域请求
mod_proxy_none=无
mod_proxy_enodomain=错误的缺省域
mod_proxy_connect=连接的端口是允许的
mod_proxy_econnect=错误的连接端口
mod_proxy_dir=缓冲目录
mod_proxy_edir=错误的缓冲目录名
mod_proxy_size=缓冲大小
mod_proxy_esize=错误的缓冲大小
mod_proxy_garbage=缓冲垃圾清理间隔
mod_proxy_nogc=从不
mod_proxy_hours=小时
mod_proxy_egarbage=错误的缓冲垃圾清理间隔
mod_proxy_maxexp=缓冲文件最大时效
mod_proxy_emaxexp=错误的缓冲文件最大时效
mod_proxy_expfac=缓冲文件时效因子
mod_proxy_eexpfac=错误的缓冲文件时效因子
mod_proxy_levels=缓冲目录级别
mod_proxy_elevels=错误的缓冲目录级别数
mod_proxy_length=缓冲目录级别长度
mod_proxy_elength=错误的缓冲目录名长度
mod_proxy_defexp=缓冲缺省时效时间
mod_proxy_edefexp=错误的缺省时效时间
mod_proxy_finish=结束和缓冲发送 after
mod_proxy_efinish=错误的传送百分比
mod_proxy_nocache=域不能缓冲
mod_proxy_none2=无
mod_proxy_none3=无
mod_proxy_enocache=没有域可缓冲
mod_proxy_erequest=错误请求'$1'
mod_proxy_epurl=错误代理URL '$1'
mod_proxy_elurl=错误的本地URL路径'$1'
mod_proxy_erurl=错误的远程URL '$1'
mod_proxy_eip=错误的IP地址'$1'
mod_proxy_ehost=错误的主机名'$1'
mod_proxy_edomain=错误的域'$1'
mod_proxy_enet=错误的网络'$1'
mod_proxy_enetbit=错误的网络/位对'$1'
mod_proxy_eunder=缓冲目录没有在允许读写的目录下
mod_proxy_rurl=远程 URL
mod_proxy_lurl=本地 URL 路径
mod_proxy_headers=映射远程机的位置图: 与本地机相连

mod_log_agent_default=缺省
mod_log_agent_file=文件..
mod_log_agent_program=程序..
mod_log_agent_log=浏览日志文件
mod_log_agent_efile=$1 是错误的代理日志文件名

mod_log_config_common=普通日志格式
mod_log_config_named=命名的日志格式
mod_log_config_nick=怩称
mod_log_config_format=格式
mod_log_config_deflog=缺省日志格式
mod_log_config_default=缺省
mod_log_config_write=写入
mod_log_config_filprog=文件和程序
mod_log_config_file=文件..
mod_log_config_program=程序..
mod_log_config_log=读写日志文件
mod_log_config_enick=错误怩称'$1'
mod_log_config_eformat=$1 没有给出日志格式
mod_log_config_enofilprog=丢失日志文件或程序
mod_log_config_efilprog=不允许的日志文件和程序 '$1'
mod_log_config_eifset='If set' 选项在缺省日志格式中不能使用

mod_log_referer_default=缺省
mod_log_referer_file=文件..
mod_log_referer_program=程序..
mod_log_referer_log=关联日志文件
mod_log_referer_nolog=不关联日志从
mod_log_referer_elog=错误的关联日志文件 $1
mod_log_referer_edir=关联日志没有在可读写的目录下

mod_status_msg=显示扩展的状态信息

mod_mime_ext=扩展
mod_mime_xtype=扩展 MIME 类型
mod_mime_mtype=MIME 类型
mod_mime_chandl=内容处理器
mod_mime_cencs=内容编码
mod_mime_cenc=内容编码
mod_mime_clangs=内容语言
mod_mime_clang=内容语言
mod_mime_defmime=所有文件当做 MIME 类型
mod_mime_real=实类型
mod_mime_etype=错误的 MIME 类型
mod_mime_pass=所有文件交给处理器
mod_mime_file=MIME 类型文件
mod_mime_default=缺省
mod_mime_ignhand=扩展类忽略处理器
mod_mime_none=无
mod_mime_xchars=扩展字符集
mod_mime_einvalid='$1' 是错误的 $2
mod_mime_eext=$2 没有扩展的$1
mod_mime_type=类型
mod_mime_handler=处理器(Handler)
mod_mime_encoding=编码
mod_mime_lang=语言
mod_mime_chars=字符集
mod_mime_igntype=取消MIME类型的扩展 **
mod_mime_ignenc=取消扩展部分的编码 **

mod_setenvif_header=头
mod_setenvif_match=匹配
mod_setenvif_case=匹配大小写
mod_setenvif_var=变量
mod_setenvif_value=值
mod_setenvif_txt=变量集基于请求头
mod_setenvif_eheader=错误的请求头 '$1'
mod_setenvif_eregex=错误的正则表达式 '$1'
mod_setenvif_evar=错误的变量名 '$1'
mod_setenvif_clear=清理

mod_userdir_default=缺省
mod_userdir_all=所有用户可用
mod_userdir_except=所有用户除了
mod_userdir_dir=用户 WWW 目录

mod_imap_action=正确使用位图的动作
mod_imap_default=缺省
mod_imap_godefurl=转到缺省 URL
mod_imap_form=显示格式化的菜单
mod_imap_semiform=显示半格式化菜单
mod_imap_unform=显示未格式化菜单
mod_imap_disperr=显示服务器错误
mod_imap_donoth=无所作为
mod_imap_goimap=转到位图 URL
mod_imap_goref=转到关联 URL
mod_imap_gourl=转到 URL...
mod_imap_defact=位图的缺省动作
mod_imap_root=服务器的root
mod_imap_imapurl=位图 URL
mod_imap_refurl=关联 URL
mod_imap_url=URL...
mod_imap_defbase=位图缺省的根目录
mod_imap_eurl=错误的URL'$1'

mod_speling_autocorr=是否自动校正拼写错误的URL?
mod_speling_default=缺省

mod_actions_mime=处理器 / MIME 类型
mod_actions_cgiurl=CGI 描述 URL
mod_actions_mimecgi=处理器或MIME 类型 CGI 动作
mod_actions_http=HTTP 方法
mod_actions_cgi=CGI 文本 
mod_actions_httpcgi=CGI 描述
mod_actions_emime=错误的处理器或MIME类型'$1'
mod_actions_ecgi=错误的CGI描述'$1'
mod_actions_enometh=CGI描述没有选择动作 '$1'

mod_include_incl=是否进程包含文件带执行位?
mod_include_set=是并且设置最后修改日期
mod_include_default=缺省

mod_dir_txt=目录索引文件

mod_autoindex_default=缺省
mod_autoindex_asc=升序
mod_autoindex_descend=降序
mod_autoindex_name=名称
mod_autoindex_date=日期
mod_autoindex_size=大小
mod_autoindex_desc=描述
mod_autoindex_sort=描述

browsermatch_regexp=浏览器正则表达式
browsermatch_case=匹配大小写?
browsermatch_var=设置变量
browsermatch_value=值
browsermatch_txt=变量集基于浏览器类型
browsermatch_evar=错误变量名 '$1'
browsermatch_clear=清理

autoindex_fname=文件名
autoindex_mime=MIME 类型
autoindex_enc=编码
autoindex_icon=图标
autoindex_alt=Alt text
autoindex_match=选择文本
autoindex_fte=文件名,类型或编码
autoindex_diricon=目录索引图标
autoindex_deficon=目录索引缺省图标
autoindex_default=缺省
autoindex_edeficon=错误的缺省图标URL
autoindex_diralt=目录索引ALT标记
autoindex_desc=描述
autoindex_fnames=文件名
autoindex_dirdesc=目录索引描述
autoindex_fancy=显示fancy目录索引
autoindex_htmltitle=显示HTML 标题作为描述
autoindex_iwidth=图标的高度
autoindex_iheight=图标的宽度
autoindex_sort=允许用户按列排序
autoindex_fildesc=显示文件描述
autoindex_htags=输出HTML头标
autoindex_mtime=显示最终修改时间
autoindex_size=显示文件大小
autoindex_iconlink=连接中包含图标
autoindex_fwidth=文件名宽度
autoindex_dwidth=描述宽度
autoindex_dirfirst=首先显示目录
autoindex_default2=缺省
autoindex_select=如下选择..
autoindex_default3=缺省
autoindex_pixels=像素
autoindex_chars=字符
autoindex_diropt=目录索引选项
autoindex_dirhead=目录索引头文件
autoindex_default4=缺省
autoindex_edirhead=错误的索引头文件
autoindex_dirfoot=目录索引页脚文件
autoindex_edirfoot=错误的索引页脚文件
autoindex_ignore=目录索引忽略文件
autoindex_eiconurl=错误的图标URL '$1'
autoindex_emiss=丢失$2的$1
autoindex_emissquot=丢失$2的$1
autoindex_enodesc=文件$1没有描述
autoindex_enofile=文件$1没有描述
autoindex_eiconsize=错误的图标大小'$1'
autoindex_ewidth=' 不是有效宽度

mod_mime_magic_file=MIME magic 数目文件
mod_mime_magic_none=无
mod_mime_magic_efile=错误的 MIME magic 数目文件

mod_env_var=变量
mod_env_value=值
mod_env_pass=跳过
mod_env_clear=清除
mod_env_set=设置为..
mod_env_cgivar=CGI描述的环境变量
mod_env_passall=跳过所有的CGI环境变量
mod_env_default=缺省
mod_env_evar=错误的变量名 '$1' 
mod_env_evalue=错误的变量值 '$1'

mod_access_order=读写控制检查次序:
mod_access_denyallow=先禁止后允许
mod_access_allowdeny=先允许后禁止
mod_access_mutual=相关失败
mod_access_default=缺省
mod_access_action=动作
mod_access_cond=状态
mod_access_all=所有请求
mod_access_host=从主机请求...
mod_access_ip=从IP请求..
mod_access_pip=从部分IP请求..
mod_access_mask=从网络/掩码请求..
mod_access_cidr=从网络net/CIDR请求..
mod_access_var=如果变量被设置..
mod_access_restr=约束读写控制
mod_access_eip=错误IP地址'$1'
mod_access_epip=错误的部分IP地址'$1'
mod_access_emask=错误网络/掩码对'$1'
mod_access_ecidr=错误网络/CIDR对'$1'
mod_access_evar=错误变量名'$1'

mod_auth_ufile=用户文本文件
mod_auth_uedit=编辑用户
mod_auth_gfile=用户组文本文件
mod_auth_gedit=编辑用户组
mod_auth_pass=错误传递给下一个模块吗?
mod_auth_auth=文本文件的权限
mod_auth_eudir=用户文本文件没有在允许读写的目录下
mod_auth_egdir=用户组文本文件没有在允许读写的目录下
mod_auth_eufile=无效用户文本文件名
mod_auth_egfile=无效用户组文本文件名

mod_auth_dbm_ufile=用户 DBM 文件
mod_auth_dbm_gfile=用户组 DBM 文件
mod_auth_dbm_pass=向下一个模块传递错误信息?
mod_auth_dbm_auth=DBM 文件确认
mod_auth_dbm_eufile=无效用户 DBF 文本文件名
mod_auth_dbm_egfile=无效用户组 DBF 文件名

mod_cern_meta_process=处理头的 meta 文件
mod_cern_meta_dir=头的meta文件的子目录
mod_cern_meta_default=缺省
mod_cern_meta_edir=错误的meta文件子目录名
mod_cern_meta_suffix=头meta文件的文件后缀
mod_cern_meta_default2=缺省
mod_cern_meta_esuffix=错误的meta文件后缀

mod_ssl_proto=SSL 协议
mod_ssl_cfile=公有/私有密钥文件Certificate/private key file  **
mod_ssl_ecfile=丢失公有/私人的密钥文件
mod_ssl_default=缺省
mod_ssl_kfile=私人的密钥文件
mod_ssl_ekfile=丢失私人的密钥文件
mod_ssl_clcert=客户 SSL 认证
mod_ssl_nreq=不需要
mod_ssl_opt=可选择
mod_ssl_req=需要
mod_ssl_optca=客户不能访问的选项
mod_ssl_cdepth=客户认证程度
mod_ssl_ecdepth=客户认证程度值必须是整数
mod_ssl_log=SSL 日志文件
mod_ssl_elog=丢失 SSL 日志文件
mod_ssl_onlyssl=仅仅允许 SSL 访问

log_global=已改变的全局 $1 选项
log_virtc=已创建的服务器 $1
log_virts=重新配置服务器 $1
log_virtd=删除服务器 $1
log_virtm=手工编辑服务器 $1
log_virt=在服务器 $2 上改变服务器 $1
log_dirc=已创建的目录$1
log_dirc_l=在服务器 $2 上创建目录$1
log_dirs=已改变的目录$1
log_dirs_l=在服务器 $2 上改变目录$1
log_dird=删除目录$1
log_dird_l=在服务器 $2 上删除目录$1
log_dirm=手工编辑目录$1
log_dirm_l=在服务器 $2 上手工编辑目录$1
log_dir=目录 $2 中已改变的 $1
log_dir_l=在服务器$2上目录$2中已改变的 $1
log_htaccessc=已创建的选项文件$1
log_htaccessd=已删除的选项文件$1
log_htaccessm=手工编辑的选项文件$1
log_htaccess=在选项文件$2中改变的文件$1
log_filesc=为$1创建的文件选项
log_filesc_l=在文件$2中创建$1的文件选项
log_filess=为$1而改变的文件选项
log_filess_l=在选项文件$2中改变$1的文件选项
log_filesd=为文件$1而删除的文件选项
log_filesd_l=在文件$2中为文件$1而删除的文件选项
log_filesm=为$1而手工编辑的文件选项
log_filesm_l=在文件$2中为文件$1而手工编辑的文件选项
log_files=为$2而在文件选项中改变$1
log_files_l=在文件$3中为$2而在文件选项中改变$1
log_mime_modify=已更改的 MIME 类型 $1
log_mime_create=增加的 MIME 类型 $1
log_defines=改变了已定义的参数
log_reconfig=重新配置已知模块
log_start=已启动的 Web 服务器
log_stop=已关闭的 Web 服务器
log_apply=已应用的改变
  0707010001b8b9000081a40000000000000002000000013ac0389700001cbe000000200000000000000000000000000000001d00000003reloc/apache/lang/zh_TW.Big5  index_title=Apache 呼狝竟
index_eroot=Apache ヘ魁 $1 ぃ. 狦眤絋﹚Τ杆 Apache, 秸俱<a href='$2'>家舱舱篈</a>タ隔畖.
index_eserver=Apache 狝竟磅︽郎 $1 ぃ. 狦眤絋﹚Τ杆 Apache, 秸俱<a href='$2'>家舱舱篈</a>タ隔畖.
index_econf=Apache 舱篈郎 $1 ぃ. 狦眤絋﹚Τ杆 Apache, 秸俱<a href='$2'>家舱舱篈</a>タ隔畖.
index_eports=眤 Apache 舱篈郎禬筁 $1 . ヘ玡 Webmin ﹟礚猭タ絋矪ミ硂贺砞﹚.
index_global=办舱篈
index_virts=店览狝竟
index_defserv=箇砞狝竟
index_defdesc1=﹚竡┮Τ店览诀狝竟箇砞, 矪瞶ヴ礚猭矪瞶璶―.
index_any=ヴ
index_default=箇砞
index_auto=笆
index_virt=店览诀狝竟
index_vname=矪瞶嘿膀娄狝竟 $1  IP  $2.
index_vdef=矪瞶┮Τぃ妮ㄤ店览诀狝竟矪瞶璶―.
index_defdesc2=﹚竡箇砞倒┮Τㄤ店览诀狝竟.
index_vport=矪瞶┮Τ倒硄癟梆 $1 ぃパㄤ店览诀狝竟矪瞶璶―.
index_vaddr=矪瞶┮Τ倒 IP  $1 璶―.
index_vaddrport=矪瞶┮Τ倒 IP  $1 硄癟梆 $2 璶―.
index_type=摸
index_addr=IP 
index_port=硄癟梆
index_name=狝竟嘿
index_root=ゅンヘ魁
index_create=ミ穝店览诀
index_return=狝竟

cvirt_ecannot=眤ぃ砆す砛ミ店览诀
cvirt_err=ミ店览诀ア毖
cvirt_eaddr1=ゼ块 IP 
cvirt_eaddr2='$1' ぃ琌Τ IP 
cvirt_eport='$1' ぃ琌Τ硄癟梆
cvirt_ename='$1' ぃ琌Τ狝竟嘿
cvirt_eroot1=眤ゲ斗块ゅンヘ魁
cvirt_eroot2=礚猭ミヘ魁 '$1' : $2

etype=Y眤ぃ砆す砛絪胯硂摸匡兜
efailed=礚猭纗 $1
apache_apply=甅ノ跑
apache_stop=氨ゎ Apache
apache_start=币笆 Apache
auth_return=北

global_ecannot=眤ぃ砆す砛絪胯办匡兜
global_mime=办 MIME 摸
global_mimedesc=翴匡 MIME 摸絪胯ぇ, ┪ㄏノセ┏狠硈挡ㄓ糤穝摸い.
global_type=摸
global_ext=┑郎
global_add=糤穝 MIME 摸
global_return=MIME 摸

mime_ecannot=眤ぃ砆す砛絪胯 MIME 摸
mime_edit=絪胯 MIME 摸
mime_add=糤 MIME 摸
mime_header=┑郎籔 MIME 摸癸莱
mime_type=MIME 摸
mime_ext=┑郎
mime_err=礚猭纗 MIME 摸
mime_etype='$1' ぃ琌Τ MIME 摸

virt_ecannot=眤ぃ絪胯硂店览诀狝竟
virt_title=店览诀狝竟匡兜
virt_header=倒 $1
virt_opts=店览诀狝竟匡兜
virt_conf=狝竟舱篈
virt_show=陪ボ㏑
virt_adddir=箇ミヘ魁, 郎┪竚匡兜
virt_type=摸
virt_exact=Ч才
virt_re=才タ砏ボΑ
virt_path=隔畖
virt_return=狝竟ま
virt_euser=眤ぃ砆す砛跑硂店览诀狝竟ㄏノ┪竤舱.
virt_header2=$1 倒 $2

vserv_title=店览诀狝竟舱篈
vserv_ecannot=眤ぃ絪胯硂店览诀狝竟 IP 
vserv_addr=IP 
vserv_port=硄癟梆
vserv_any=ヴ
vserv_default=箇砞
vserv_root=ゅンヘ魁
vserv_name=狝竟嘿
vserv_delete=埃店览诀狝竟
vserv_err=纗店览诀狝竟ア毖
vserv_eaddr1=ゼ块 IP 
vserv_eaddr2='$1' ぃ琌Τ IP 
vserv_eport='$1' ぃ琌Τ硄癟梆
vserv_eroot='$1' ぃ琌Τゅンヘ魁
vserv_ename='$1' ぃ琌Τ狝竟嘿

show_title=㏑
show_edit=絪胯 Apache ㏑:
show_these=も笆絪胯㏑
show_ok=絪胯

manual_header=続ノゅ跋办絪胯 $1  Apache ㏑甅ノ硂店览诀狝竟, 隔畖┪郎.

dir_title=隔畖匡兜
dir_header=倒 $1  $2
dir_show=陪ボ㏑
dir_opts=匡兜甅ノ ...
dir_type=摸
dir_regexp=タ砏ボΑ?
dir_exact=Ч才
dir_re=才タ砏ボΑ
dir_path=隔畖
dir_return=ヘ魁ま
dir_header2=$1 倒 $2

type_0=祘籔
type_1=呼隔籔 IP 
type_2=Apache 家舱
type_3=魁郎
type_4=北
type_5=ゅン匡兜
type_6=MIME 摸
type_7=岿粇矪瞶
type_8=ㄏノ籔竤舱
type_9=ㄤ
type_10=籔旧
type_11=CGI 祘Α
type_12=ヘ魁ま
type_13=瞶狝竟
type_14=SSL 匡兜
type_15=Perl
type_16=PHP

htaccess_title=隔畖匡兜郎
htaccess_ecannot=眤ぃ絪胯 htaccess 郎
htaccess_desc=肂隔畖匡兜砆﹚–隔畖郎い (硄盽琌暗 <tt>.htaccess</tt>). 埃獶Τㄤ匡兜郎, 玥硂ㄇ匡兜穦甅ノ赣ヘ魁籔ㄤヘ魁い.
htaccess_create=ミ匡兜郎
htaccess_find=т碝匡兜郎
htaccess_auto=笆て
htaccess_from=眖ヘ魁
htaccess_return=匡兜郎
htaccess_edir='$1' ぃ琌Τヘ魁
htaccess_ecreate=眤ぃ砆す砛ミ匡兜郎
htaccess_edelete=眤ぃ砆す砛埃匡兜郎

htindex_ecannot=眤ぃ砆す砛絪胯硂匡兜郎
htindex_title=隔畖匡兜郎
htindex_delete=埃郎
htindex_show=陪ボ㏑
htindex_opts=ヘ魁匡兜
htindex_file=郎舱篈
htindex_create=ミ郎匡兜
htindex_regexp=タ砏ボΑ?
htindex_exact=Ч才
htindex_re=才タ砏ボΑ
htindex_path=隔畖
htindex_header=倒 $1
htindex_header2=$1 倒匡兜郎 $2
htindex_return=匡兜郎ま

htfile_title=郎匡兜
htfile_header=倒 $1  $2
htfile_show=陪ボ
htfile_apply=匡兜甅ノ倒 ...
htfile_header2=$1 倒 $2

reconfig_title=穝舱篈家舱
reconfig_ecannot=眤ぃ砆す砛穝舱篈 Apache
reconfig_ever=礚猭眔 Apache 狝竟磅︽郎 $1 セ. 叫浪琩眤<a href='$2'>家舱舱篈</a>絋粄眤﹚タ絋隔畖.
reconfig_desc1=眤 Apache 舱篈郎竒跑, ┪琌﹟ゼ竒筁 Webmin 浪琩. 琌 Webmin や穿┮Τ家舱, ヘ玡Τ杆家舱竒砆匡. 眤匡┪匡岿粇场だ.
reconfig_desc2=琌 Webmin や穿┮Τ家舱, ヘ玡Τ杆家舱竒砆匡. 狦眤ㄏノ笆篈更家舱, 眤ゲ斗も笆匡拒êㄇ砆笆篈更家舱.
reconfig_ok=舱篈

defines_title=絪胯﹚竡把计
defines_ecannot=眤ぃ砆す砛絪胯 httpd ﹚竡
defines_desc=讽 Apache 币笆, 把计竒パ <tt>-D</tt> ㏑把计τ砆癳 Apache. 硂ㄇ把计紇臫眤舱篈郎い砞﹚㏑, Webmin ゲ斗笵眤币笆 Apache 癳ㄇ把计. 叫娩ゅ跋办い块眤币笆 Apache ┮ㄏノ把计.

authu_ecannot='$1' ぃ琌砆す砛ㄏノゅ郎
authu_title=ㄏノ
authu_header=郎 $1
authu_header2=眖ゅ郎 $1 ㄏノ
authu_none=ゅ郎 $1 い⊿Τㄏノ
authu_add=糤穝ㄏノ
authu_return=ㄏノ
authu_edit=絪胯ㄏノ
authu_create=ミㄏノ
authu_user=ㄏノ嘿
authu_pass=盞絏
authu_enc=絪絏...
authu_plain=ゅ...
authu_err=纗ㄏノア毖
authu_euser=⊿Τ块ㄏノ嘿
authu_euser2=ㄏノ嘿ぃ ':' じ
authu_edup=ㄏノ嘿 '$1' 竒
authu_sync=匡兜す砛眤舱篈 Webmin 笆眤竒パ<tt>ㄏノ籔竤舱<//tt>家舱い糤, 跑┪埃 Unix ㄏノ, 穝┪埃ㄏノ.
authu_screate=讽 Unix ㄏノ, 糤ㄏノ
authu_sdelete=讽埃 Unix ㄏノ, 埃ㄏノ
authu_smodify=讽跑 Unix ㄏノ, 跑ㄏノ

authg_ecannot='$1' ぃ琌砆す砛竤舱ゅ郎
authg_title=竤舱
authg_header=郎 $1
authg_header2=眖ゅ郎 $1 い竤舱
authg_none=ゅ郎 $1 い⊿Τ竤舱
authg_add=糤穝竤舱
authg_return=竤舱
authg_edit=絪胯竤舱
authg_create=ミ竤舱
authg_group=竤舱嘿
authg_mems=Θ
authg_dont=ぃ璶э跑
authg_set=砞﹚...
authg_err=纗竤舱ア毖
authg_euser=⊿Τ块竤舱嘿
authg_euser2=竤舱嘿ぃ ':' じ
authg_edup=竤舱嘿 '$1' 竒

stop_err=氨ゎ Apache ア毖
stop_ecannot=眤ぃ砆す砛氨ゎ Apache
stop_epid=秨币 PID 郎 $1 ア毖
stop_epid2=岿粇 PID 郎 $1
stop_esig=癳 SIGTERM 獺腹倒祘 $1 ア毖

start_err=币笆 Apache ア毖
start_ecannot=眤ぃ砆す砛币笆 Apache
start_ecmd=$1 ア毖 : $2
start_eunknown=ゼ

restart_err=甅ノ跑ア毖
restart_epid=秨币 PID 郎 $1 ア毖
restart_epid2=岿粇 PID 郎 $1
restart_esig=鲦 SIGHUP 獺腹倒祘 $1 ア毖
restart_eunknown=ゼ

acl_virts=硂ㄏノ絪胯店览诀狝竟
acl_global=琌絪胯办舱篈?
acl_htaccess=Τ .htaccess
acl_create=琌ミ店览诀狝竟?
acl_vuser=琌跑店览诀狝竟ㄏノ?
acl_vaddr=琌跑店览诀狝竟 IP ?
acl_pipe=琌块魁郎祘Α?
acl_stop=琌氨ゎ籔币笆 Apache?
acl_dir=ヘ魁郎
acl_types=ㄏノ㏑贺摸
acl_all=场
acl_sel=匡拒...

  07070100015de3000081e40000000000000002000000013ac03898000005cf000000200000000000000000000000000000002100000003reloc/apache/list_authgroups.cgi  #!/usr/local/bin/perl
# list_authgroups.cgi
# Displays a list of groups and their members

require './apache-lib.pl';
require './auth-lib.pl';

$conf = &get_config();
&ReadParse();
&allowed_auth_file($in{'file'}) ||
	&error(&text('authg_ecannot', $in{'file'}));
&header($text{'authg_title'}, "");
print "<center><font size=+1>",&text('authg_header', "<tt>$in{'file'}</tt>"),
      "</font></center>\n";
print "<hr>\n";
$f = &server_root($in{'file'}, $conf);

@groups = sort { $a->{'name'} cmp $b->{'name'} } &list_authgroups($in{'file'});
if (@groups) {
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>",&text('authg_header2', "<tt>$f</tt>"),
	      "</b></td></tr>\n";
	print "<tr $cb> <td><table width=100%>\n";
	print "<tr> <td><b>$text{'authg_group'}</b></td> ",
	      "<td><b>$text{'authg_mems'}</b></td> </tr>\n";
	for($i=0; $i<@groups; $i++) {
		$g = $groups[$i]->{'group'};
		@m = @{$groups[$i]->{'members'}};
		if (@m > 15) { @m = @m[0..14]; }
		printf "<tr> <td><a href=\"edit_authgroup.cgi?group=$g&".
		  "file=%s&url=%s\">$g</a></td>\n",
		  &urlize($f), &urlize(&this_url());
		printf "<td>%s</td> </tr>\n",
			@m ? join(" , ", @m) : "<i>None</i>";
		}
	print "</table></td></tr></table>\n";
	}
else {
	print "<b>",&text('authg_none', "<tt>$f</tt>"),"</b><p>\n";
	}
printf "<a href=\"edit_authgroup.cgi?file=%s&url=%s\">%s</a><p>\n",
        &urlize($f), &urlize(&this_url()), $text{'authg_add'};

print "<hr>\n";
&footer($in{'url'}, $text{'auth_return'});

 07070100015e0a000081a40000000000000002000000013ac038970000047b000000200000000000000000000000000000001300000003reloc/apache/notes    notes about apache
------------------
Apache has a large number of directives which are valid in different 
parts of the config file (and maybe in other files such as .htaccess). The
available directives and their possible locations varies from release to
release of apache. Apache version from 1.1 to 1.3 will be supported.

Each type of directive is defined in some module, which may be compiled
into the server or not. Each module version supports some list of directives,
and the server version is basically a list of the modules/versions supported.

To implement this, each apache module will have one .pl file that has
functions for each directive, plus a master function that lists all the 
supported directives for this module version and their possible contexts.

The main apache config file is httpd.conf in the conf directory. This
file can refer to other files by some directives, or other config files
can be read as well.Directives can be in any config file (unlike NCSA).
This means that the config file must be read, parsed, and the other config
files read and parsed as well. Only then can the other directives be searched
for.


 07070100015de4000081e40000000000000002000000013ac03898000007ba000000200000000000000000000000000000002000000003reloc/apache/list_authusers.cgi   #!/usr/local/bin/perl
# list_authusers.cgi
# Displays a list of users from a text file

require './apache-lib.pl';
require './auth-lib.pl';

$conf = &get_config();
&ReadParse();
&allowed_auth_file($in{'file'}) ||
	&error(&text('authu_ecannot', $in{'file'}));
&header($text{'authu_title'}, "");
print "<center><font size=+1>",&text('authu_header', "<tt>$in{'file'}</tt>"),
      "</font></center>\n";
print "<hr>\n";
$f = &server_root($in{'file'}, $conf);

@users = sort { $a cmp $b } &list_authusers($f);
if (@users) {
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>",&text('authu_header2', "<tt>$f</tt>"),
	      "</b></td> </tr>\n";
	print "<tr $cb> <td><table width=100%>\n";
	for($i=0; $i<@users; $i++) {
		$u = $users[$i];
		if ($i%4 == 0) { print "<tr>\n"; }
		printf "<td width=25%><a href=\"edit_authuser.cgi?user=$u&".
		  "file=%s&url=%s\">$u</a></td>\n",
		  &urlize($f), &urlize(&this_url());
		if ($i%4 == 3) { print "</tr>\n"; }
		}
	while($i++%4) { print "<td width=25%></td>\n"; }
	print "</table></td></tr></table>\n";
	}
else {
	print "<b>",&text('authu_none', "<tt>$f</tt>"),"</b><p>\n";
	}
printf "<a href=\"edit_authuser.cgi?file=%s&url=%s\">%s</a><p>\n",
        &urlize($f), &urlize(&this_url()), $text{'authu_add'};

print "<hr>\n";
$s = $config{"sync_$f"};
print "<form action=save_sync.cgi>\n";
print "$text{'authu_sync'} <p>\n";
print "<input type=hidden name=file value='$f'>\n";
print "<input type=hidden name=url value='$in{'url'}'>\n";
printf "<input type=checkbox name=sync value=create %s> %s<br>\n",
	$s =~ /create/ ? 'checked' : '', $text{'authu_screate'};
printf "<input type=checkbox name=sync value=modify %s> %s<br>\n",
	$s =~ /modify/ ? 'checked' : '', $text{'authu_smodify'};
printf "<input type=checkbox name=sync value=delete %s> %s<br>\n",
	$s =~ /delete/ ? 'checked' : '', $text{'authu_sdelete'};
print "<input type=submit value='$text{'save'}'></form>\n";

print "<hr>\n";
&footer($in{'url'}, $text{'auth_return'});

  07070100015de5000081a40000000000000002000000013ac0389800000cf8000000200000000000000000000000000000001b00000003reloc/apache/log_parser.pl    # log_parser.pl
# Functions for parsing this module's logs

require './apache-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p, $long) = @_;
local $typestr = "<i>".$text{"type_$type"}."</i>";
if ($action eq 'global') {
	return &text('log_global', $typestr);
	}
elsif ($action eq 'virt') {
	if ($type eq 'create') {
		return &text('log_virtc', "<tt>$object</tt>");
		}
	elsif ($type eq 'save') {
		return &text('log_virts', "<tt>$object</tt>");
		}
	elsif ($type eq 'delete') {
		return &text('log_virtd', "<tt>$object</tt>");
		}
	elsif ($type eq 'manual') {
		return &text('log_virtm', "<tt>$object</tt>");
		}
	else {
		return &text('log_virt', $typestr, "<tt>$object</tt>");
		}
	}
elsif ($action eq 'dir') {
	local ($virt, $dir);
	if ($object =~ /^([^:]+):(\d+):(.*)$/) {
		$virt = "$1:$2"; $dir = $3;
		}
	elsif ($object =~ /^([^:]+):(.*)$/) {
		$virt = $1; $dir = $2;
		}
	if ($type eq 'create') {
		return &text($long ? 'log_dirc_l' : 'log_dirc',
			     "<tt>$dir</tt>", "<tt>$virt</tt>");
		}
	elsif ($type eq 'save') {
		return &text($long ? 'log_dirs_l' : 'log_dirs',
			     "<tt>$dir</tt>", "<tt>$virt</tt>");
		}
	elsif ($type eq 'delete') {
		return &text($long ? 'log_dird_l' : 'log_dird',
			     "<tt>$dir</tt>", "<tt>$virt</tt>");
		}
	elsif ($type eq 'manual') {
		return &text($long ? 'log_dirm_l' : 'log_dirm',
			     "<tt>$dir</tt>", "<tt>$virt</tt>");
		}
	else {
		return &text($long ? 'log_dir_l' : 'log_dir', $typestr,
			     "<tt>$dir</tt>", "<tt>$virt</tt>");
		}
	}
elsif ($action eq 'htaccess') {
	if ($type eq 'create') {
		return &text('log_htaccessc',
			     "<tt>$object</tt>", "<tt>$virt</tt>");
		}
	elsif ($type eq 'delete') {
		return &text('log_htaccessd',
			     "<tt>$object</tt>", "<tt>$virt</tt>");
		}
	elsif ($type eq 'manual') {
		return &text('log_htaccessm',
			     "<tt>$object</tt>", "<tt>$virt</tt>");
		}
	else {
		return &text('log_htaccess', $typestr,
			     "<tt>$object</tt>", "<tt>$virt</tt>");
		}
	}
elsif ($action eq 'files') {
	local ($file, $path);
	if ($object =~ /^([^:]+):(.*)$/) {
		$file = $1; $path = $2;
		}
	if ($type eq 'create') {
		return &text($long ? 'log_filesc_l' : 'log_filesc',
			     "<tt>$path</tt>", "<tt>$file</tt>");
		}
	elsif ($type eq 'save') {
		return &text($long ? 'log_filess_l' : 'log_filess',
			     "<tt>$path</tt>", "<tt>$file</tt>");
		}
	elsif ($type eq 'delete') {
		return &text($long ? 'log_filesd_l' : 'log_filesd',
			     "<tt>$path</tt>", "<tt>$file</tt>");
		}
	elsif ($type eq 'manual') {
		return &text($long ? 'log_filesm_l' : 'log_filesm',
			     "<tt>$path</tt>", "<tt>$file</tt>");
		}
	else {
		return &text($long ? 'log_files_l' : 'log_files', $typestr,
			     "<tt>$path</tt>", "<tt>$file</tt>");
		}
	}
elsif ($action eq 'mime') {
	return &text("log_mime_$type", "<tt>$object</tt>");
	}
elsif ($action eq 'defines') {
	return $text{'log_defines'};
	}
elsif ($action eq 'reconfig') {
	return $text{'log_reconfig'};
	}
elsif ($action eq 'stop') {
	return $text{'log_stop'};
	}
elsif ($action eq 'start') {
	return $text{'log_start'};
	}
elsif ($action eq 'apply') {
	return $text{'log_apply'};
	}
else {
	return undef;
	}
}

07070100015de6000081e40000000000000002000000013ac03898000009ce000000200000000000000000000000000000001d00000003reloc/apache/manual_form.cgi  #!/usr/local/bin/perl
# manual.cgi
# Display a text box for manually editing directives

require './apache-lib.pl';
&ReadParse();
$access{'types'} eq '*' || &error($text{'manual_ecannot'});
&header($text{'manual_title'}, "");
if (defined($in{'virt'})) {
	if (defined($in{'idx'})) {
		# directory within virtual server
		($vconf, $v) = &get_virtual_config($in{'virt'});
		$d = $vconf->[$in{'idx'}];
		$title = &text('dir_header', &dir_name($d), &virtual_name($v));
		$return = "dir_index.cgi"; $rmsg = $text{'dir_return'};
		$file = $d->{'file'};
		$start = $d->{'line'}+1; $end = $d->{'eline'}-1;
		}
	else {
		# virtual server
		($conf, $v) = &get_virtual_config($in{'virt'});
		$title = &text('virt_header', &virtual_name($v));
		$return = "virt_index.cgi"; $rmsg = $text{'virt_return'};
		$file = $v->{'file'};
		$start = $v->{'line'}+1; $end = $v->{'eline'}-1;
		}
	}
else {
	if (defined($in{'idx'})) {
		# files within .htaccess file
		$hconf = &get_htaccess_config($in{'file'});
		$d = $hconf->[$in{'idx'}];
		$file = $in{'file'};
		$start = $d->{'line'}+1; $end = $d->{'eline'}-1;
		$title = &text('htfile_header', &dir_name($d),
			       "<tt>$in{'file'}</tt>");
		$return = "htaccess_index.cgi"; $rmsg = $text{'htindex_return'};
		}
	else {
		# .htaccess file
		$file = $in{'file'};
		$title = &text('htindex_header', "<tt>$in{'file'}</tt>");
		$return = "htaccess_index.cgi"; $rmsg = $text{'htindex_return'};
		$dir = "files_index.cgi";
		}
	}
print "<center><font size=+2>$title</font></center>\n";
print "<hr>\n";

print &text('manual_header', "<tt>$file</tt>"),"<p>\n";
print "<form action=manual_save.cgi method=post>\n";
foreach $h ('virt', 'idx', 'file') {
	if (defined($in{$h})) {
		print "<input type=hidden name=$h value='$in{$h}'>\n";
		push(@args, "$h=$in{$h}");
		}
	}
$args = join('&', @args);

print "<textarea rows=15 cols=80 name=directives>\n";
$lref = &read_file_lines($file);
if (!defined($start)) {
	$start = 0;
	$end = @$lref - 1;
	}
for($i=$start; $i<=$end; $i++) {
	print $lref->[$i],"\n";
	}
print "</textarea><br><input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("$return?$args", $rmsg);

# print_directives(&list, indent)
sub print_directives
{
foreach $c (@{$_[0]}) {
	next if ($c->{'name'} eq 'dummy');
	if ($c->{'type'}) {
		print $_[1],"<",$c->{'name'}," ",$c->{'value'},">\n";
		&print_directives($c->{'members'}, $_[1].' ');
		print $_[1],"</",$c->{'name'},">\n";
		}
	else {
		print $_[1],$c->{'name'}," ",$c->{'value'},"\n";
		}
	}
}

  07070100015de7000081e40000000000000002000000013ac03898000006b9000000200000000000000000000000000000001d00000003reloc/apache/manual_save.cgi  #!/usr/local/bin/perl
# manual_save.cgi
# Save manually entered directives

require './apache-lib.pl';
&ReadParse();
$access{'types'} eq '*' || &error($text{'manual_ecannot'});
if (defined($in{'virt'})) {
	if (defined($in{'idx'})) {
		# directory within virtual server
		($vconf, $v) = &get_virtual_config($in{'virt'});
		$d = $vconf->[$in{'idx'}];
		$file = $d->{'file'};
		$return = "dir_index.cgi";
		$start = $d->{'line'}+1; $end = $d->{'eline'}-1;
		$logtype = 'dir';
		$logname = &virtual_name($v, 1).":".$d->{'words'}->[0];
		}
	else {
		# virtual server
		($conf, $v) = &get_virtual_config($in{'virt'});
		$return = "virt_index.cgi";
		$file = $v->{'file'};
		$start = $v->{'line'}+1; $end = $v->{'eline'}-1;
		$logtype = 'virt'; $logname = &virtual_name($v, 1);
		}
	}
else {
	if (defined($in{'idx'})) {
		# files within .htaccess file
		$hconf = &get_htaccess_config($in{'file'});
		$d = $hconf->[$in{'idx'}];
		$file = $in{'file'};
		$return = "files_index.cgi";
		$start = $d->{'line'}+1; $end = $d->{'eline'}-1;
		$logtype = 'files';
		$logname = "$in{'file'}:$d->{'words'}->[0]";
		}
	else {
		# .htaccess file
		$file = $in{'file'};
		$return = "htaccess_index.cgi";
		$logtype = 'htaccess'; $logname = $in{'file'};
		}
	}

&lock_file($file);
$in{'directives'} =~ s/\r//g;
$in{'directives'} =~ s/\s+$//;
@dirs = split(/\n/, $in{'directives'});
$lref = &read_file_lines($file);
if (!defined($start)) {
	$start = 0;
	$end = @$lref - 1;
	}
splice(@$lref, $start, $end-$start+1, @dirs);
&flush_file_lines();
&unlock_file($file);
&webmin_log($logtype, "manual", $logname, \%in);

foreach $h ('virt', 'idx', 'file') {
	push(@args, "$h=$in{$h}") if (defined($in{$h}));
	}
&redirect("$return?".join("&", @args));

   07070100015de8000081a40000000000000002000000013ac0389800000c50000000200000000000000000000000000000001b00000003reloc/apache/mod_access.pl    # mod_access.pl
# Defines editors for host restriction directives

sub mod_access_directives
{
local($rv);
$rv = [ [ 'allow deny order', 1, 4, 'directory htaccess' ] ];
return &make_directives($rv, $_[0], "mod_access");
}

sub edit_allow_deny_order
{
local($d, @w, $i, @type, @mode, @what, $rv);
foreach $d (@{$_[0]}, @{$_[1]}) {
	@w = split(/\s+/, $d->{'value'});
	for($i=1; $i<@w; $i++) {
		push(@type, lc($d->{'name'}) eq "allow" ? 1 : 2);
		push(@what, $w[$i]);
		if ($w[$i] =~ /^env=(\S+)$/) {
			$what[$#what] = $1;
			push(@mode, 6);
			}
		elsif ($w[$i] =~ /^[0-9\.]+\/[0-9]+$/) { push(@mode, 5); }
		elsif ($w[$i] =~ /^[0-9\.]+\/[0-9\.]+$/) { push(@mode, 4); }
		elsif ($w[$i] =~ /^\d+\.\d+\.\d+\.\d+$/) { push(@mode, 2); }
		elsif ($w[$i] =~ /^[0-9\.]+$/) { push(@mode, 3); }
		elsif ($w[$i] eq "all") { push(@mode, 0); }
		else { push(@mode, 1); }
		}
	}
push(@type, ""); push(@what, ""); push(@mode, 0);
$rv = "<i>$text{'mod_access_order'}</i>\n".
      &choice_input($_[2]->[0]->{'value'}, "order", "",
       "$text{'mod_access_denyallow'},deny,allow", "$text{'mod_access_allowdeny'},allow,deny",
       "$text{'mod_access_mutual'},mutual-failure", "$text{'mod_access_default'},")."<br>\n";
$rv .= "<table border>\n".
       "<tr $tb> <td><b>$text{'mod_access_action'}</b></td> <td><b>$text{'mod_access_cond'}</b></td> </tr>\n";
@sels = ("$text{'mod_access_all'},0", "$text{'mod_access_host'},1",
	 "$text{'mod_access_ip'},2", "$text{'mod_access_pip'},3");
if ($_[3]->{'version'} >= 1.3) {
	push(@sels, "$text{'mod_access_mask'},4",
		    "$text{'mod_access_cidr'},5");
	}
if ($_[3]->{'version'} >= 1.2) {
	push(@sels, "$text{'mod_access_var'},6");
	}
for($i=0; $i<@type; $i++) {
	$rv .= "<tr $cb> <td>".&select_input($type[$i], "allow_type_$i", "",
	       ",0", "$text{'mod_access_allow'},1", "$text{'mod_access_deny'},2")."</td>\n";
	$rv .= "<td>".&select_input($mode[$i], "allow_mode_$i", "0", @sels);
	$rv .= sprintf "<input name=allow_what_$i size=20 value=\"%s\"></td>\n",
	        $mode[$i] ? $what[$i] : "";
	$rv .= "</tr>\n";
	}
$rv .= "</table>\n";
return (2, "$text{'mod_access_restr'}", $rv);
}
sub save_allow_deny_order
{
local($i, $type, $mode, $what, @allow, @deny);
for($i=0; defined($type = $in{"allow_type_$i"}); $i++) {
	$mode = $in{"allow_mode_$i"}; $what = $in{"allow_what_$i"};
	if (!$type) { next; }
	if ($mode == 0) { $what = "all"; }
	elsif ($mode == 2 && !&check_ipaddress($what)) {
		&error(&text('mod_access_eip', $what));
		}
	elsif ($mode == 3 && $what !~ /^[0-9\.]+$/) {
		&error(&text('mod_access_epip', $what));
		}
	elsif ($mode == 4 && ($what !~ /^([0-9\.]+)\/([0-9\.]+)$/ ||
	       !&check_ipaddress($1) || !&check_ipaddress($2))) {
		&error(&text('mod_access_emask', $what));
		}
	elsif ($mode == 5 && ($what !~ /^([0-9\.]+)\/([0-9]+)$/ ||
	       !&check_ipaddress($1) || $2 > 32)) {
		&error(&text('mod_access_ecidr', $what));
		}
	elsif ($mode == 6) {
		$what =~ /^\S+$/ ||
			&error(&text('mod_access_evar', $what));
		$what = "env=$what";
		}
	if ($type == 1) { push(@allow, "from $what"); }
	else { push(@deny, "from $what"); }
	}
return ( \@allow, \@deny, &parse_choice("order", ""));
}

1;

07070100015de9000081a40000000000000002000000013ac0389700000a3a000000200000000000000000000000000000001c00000003reloc/apache/mod_actions.pl   # mod_actions.pl
# Defines editors for CGI actions

sub mod_actions_directives
{
$rv = [ [ 'Action', 1, 11, 'virtual directory htaccess', undef, 5 ],
        [ 'Script', 1, 11, 'virtual directory' ] ];
return &make_directives($rv, $_[0], "mod_actions");
}

sub mod_actions_handlers
{
local($d, @rv);
foreach $d (&find_all_directives($_[0], "Action")) {
	if ($d->{'words'}->[0] =~ /^[A-z0-9\-\_]+$/) {
		push(@rv, $d->{'words'}->[0]);
		}
	}
return @rv;
}

sub edit_Action
{
local($rv, $len, $i, $type, $cgi);
$rv = "<table border>\n".
      "<tr $tb> <td><b>$text{'mod_actions_mime'}</b></td> <td><b>$text{'mod_actions_cgiurl'}</b></td> </tr>";
$len = @{$_[0]}+1;
for($i=0; $i<$len; $i++) {
	if ($_[0]->[$i]->{'value'} =~ /^(\S+)\s+(\S+)$/) {
		$type = $1; $cgi = $2;
		}
	else { $type = $cgi = ""; }
	$rv .= "<tr $cb>\n";
	$rv .= "<td><input name=Action_type_$i size=20 value=\"$type\"></td>\n";
	$rv .= "<td><input name=Action_cgi_$i size=40 value=\"$cgi\"></td>\n";
	$rv .= "</tr>\n";
	}
$rv .= "</table>\n";
return (2, "$text{'mod_actions_mimecgi'}", $rv);
}
sub save_Action
{
local($i, $cgi, $type, @rv);
for($i=0; defined($in{"Action_type_$i"}); $i++) {
	$type = $in{"Action_type_$i"}; $cgi = $in{"Action_cgi_$i"};
	if ($type !~ /\S/ && $cgi !~ /\S/) { next; }
	$type =~ /^(\S+)$/ || &error(&text('mod_actions_emime', $type));
	$cgi =~ /^\/(\S+)$/ || &error(&text('mod_actions_ecgi', $cgi));
	push(@rv, "$type $cgi");
	}
return ( \@rv );
}

sub edit_Script
{
local($rv, $len, $i, $meth, $cgi, $m, $found);
$rv = "<table border>\n".
      "<tr $tb> <td><b>$text{'mod_actions_http'}</b></td> <td><b>$text{'mod_actions_cgi'}</b></td> </tr>";
$len = @{$_[0]}+1;
for($i=0; $i<$len; $i++) {
	if ($_[0]->[$i]->{'value'} =~ /^(\S+)\s+(\S+)$/) {
		$meth = $1; $cgi = $2;
		}
	else { $meth = $cgi = ""; }
	$rv .= "<tr $cb><td><select name=Script_meth_$i>\n";
	foreach $m ("", "GET", "POST", "PUT", "DELETE") {
		$rv .= sprintf "<option %s>$m\n", $meth eq $m ? "selected" : "";
		$found++ if ($meth eq $m);
		}
	printf "<option selected>$meth\n" if (!$found);
	$rv .= "</select></td>\n";
	$rv .= "<td><input name=Script_cgi_$i size=40 value=\"$cgi\"></td>\n";
	$rv .= "</tr>\n";
	}
$rv .= "</table>\n";
return (2, "$text{'mod_actions_httpcgi'}", $rv);
}
sub save_Script
{
local($i, @rv, $meth, $cgi);
for($i=0; defined($in{"Script_meth_$i"}); $i++) {
	$meth = $in{"Script_meth_$i"}; $cgi = $in{"Script_cgi_$i"};
	if (!$meth && $cgi !~ /\S/) { next; }
	$meth || &error(&text('mod_actions_enometh', $cgi));
	$cgi =~ /^\/(\S+)$/ || &error(&text('mod_actions_ecgi', $cgi));
	push(@rv, "$meth $cgi");
	}
return ( \@rv );
}

1;

  07070100015dea000081a40000000000000002000000013ac03897000014b1000000200000000000000000000000000000001a00000003reloc/apache/mod_alias.pl # mod_alias.pl
# Defines editors for alias module directives

sub mod_alias_directives
{
$rv = [ [ 'Alias', 1, 10, 'virtual' ],
	[ 'AliasMatch', 1, 10, 'virtual', 1.3 ],
	[ 'Redirect', 1, 10, 'virtual directory htaccess', 1.2 ],
	[ 'Redirect', 1, 10, 'virtual', '-1.2' ],
	[ 'RedirectMatch', 1, 10, 'virtual', 1.3 ],
	[ 'RedirectTemp', 1, 10, 'virtual directory htaccess', 1.2 ],
	[ 'RedirectPermanent', 1, 10, 'virtual directory htaccess', 1.2 ],
	[ 'ScriptAlias', 1, 11, 'virtual', undef, 10 ],
	[ 'ScriptAliasMatch', 1, 11, 'virtual', 1.3, 10 ] ];
return &make_directives($rv, $_[0], "mod_alias");
}

# alias_input(array, name, title)
sub alias_input
{
local($rv, $len, $i, $from, $to);
$rv = "<table border>\n".
      "<tr $tb> <td><b>$text{'mod_alias_from'}</b></td> <td><b>$text{'mod_alias_to'}</b></td> </tr>\n";
$len = @{$_[0]} + 1;
for($i=0; $i<$len; $i++) {
	$from = $_[0]->[$i]->{'words'}->[0];
	$to = $_[0]->[$i]->{'words'}->[1];
	$rv .= "<tr $cb>\n";
	$rv .= "<td><input name=$_[1]_from_$i size=20 value=\"$from\"></td>\n";
	$rv .= "<td><input name=$_[1]_to_$i size=40 value=\"$to\"></td>\n";
	$rv .= "</tr>\n";
	}
$rv .= "</table>\n";
return (2, $_[2], $rv);
}

%alias_statmap = ("permanent", 301,  "temp", 302,
		  "seeother", 303,   "gone", 410);
$url_regexp = '^(http|ftp|gopher|https|mailto|telnet):(\S+)$';

# alias_status_input(array, name, title)
sub alias_status_input
{
local($rv, $len, $i, $from, $to, $stat);
$rv = "<table border>\n".
      "<tr $tb> <td><b>$text{'mod_alias_from'}</b></td> <td><b>$text{'mod_alias_status'}</b></td> <td><b>$text{'mod_alias_to'}</b></td> </tr>\n";
$len = @{$_[0]} + 1;
for($i=0; $i<$len; $i++) {
	if ($_[0]->[$i]->{'words'}->[0] =~ /^(permanent|temp|seeother|gone|\d+)$/) {
		$stat = $_[0]->[$i]->{'words'}->[0];
		$from = $_[0]->[$i]->{'words'}->[1];
		$to = $_[0]->[$i]->{'words'}->[2];
		if ($alias_statmap{$stat}) { $stat = $alias_statmap{$stat}; }
		}
	else {
		$stat = "";
		$from = $_[0]->[$i]->{'words'}->[0];
		$to = $_[0]->[$i]->{'words'}->[1];
		}
	$rv .= "<tr $cb>\n";
	$rv .= "<td><input name=$_[1]_from_$i size=20 value=\"$from\"></td>\n";
	$rv .= "<td><input name=$_[1]_stat_$i size=4 value=\"$stat\"></td>\n";
	$rv .= "<td><input name=$_[1]_to_$i size=40 value=\"$to\"></td>\n";
	$rv .= "</tr>\n";
	}
$rv .= "</table>\n";
return (2, $_[2], $rv);
}

# parse_alias(name, title, regexp)
sub parse_alias
{
local($re, @rv, $i, $from, $to);
$re = $_[2];
for($i=0; defined($in{"$_[0]_from_$i"}); $i++) {
	$from = $in{"$_[0]_from_$i"}; $to = $in{"$_[0]_to_$i"};
	if ($from !~ /\S/ && $to !~ /\S/) { next; }
	if ($from !~ /^\S+$/) { &error(&text('mod_alias_efrom', $from, $_[1])); }
	if ($to !~ /$re/) { &error(&text('mod_alias_edest', $to, $_[1])); }
	push(@rv, "$from $to");
	}
return ( \@rv );
}

# parse_alias_status(name, title, regexp)
sub parse_alias_status
{
local($re, @rv, $i, $from, $to, $stat);
$re = $_[2];
for($i=0; defined($in{"$_[0]_from_$i"}); $i++) {
	$from = $in{"$_[0]_from_$i"};
	$to = $in{"$_[0]_to_$i"};
	$stat = $in{"$_[0]_stat_$i"};
	if ($from !~ /\S/ && $to !~ /\S/) { next; }
	if ($from !~ /^\S+$/) { &error(&text('mod_alias_efrom', $from, $_[1])); }
	if ($stat !~ /^(\d*)$/) { &error(&text('mod_alias_estatus', $stat)); }
	if (!$stat || $stat >= 300 && $stat <= 399) {
		if ($to !~ /$re/) {
			&error(&text('mod_alias_edest', $to, $_[1]));
			}
		}
	else { $to = ""; }
	if ($stat) { push(@rv, "$stat $from $to"); }
	else { push(@rv, "$from $to"); }
	}
return ( \@rv );
}

sub edit_Alias
{
return &alias_input($_[0], "Alias", $text{'mod_alias_alias'});
}
sub save_Alias
{
return &parse_alias("Alias", $text{'mod_alias_alias2'}, '^\S+$');
}

sub edit_AliasMatch
{
return &alias_input($_[0], "AliasMatch", $text{'mod_alias_regexp'});
}
sub save_AliasMatch
{
return &parse_alias("AliasMatch", $text{'mod_alias_regexp2'}, '^\S+$');
}

sub edit_Redirect
{
if ($_[1]->{'version'} >= 1.2) {
	return &alias_status_input($_[0], "Redirect", $text{'mod_alias_redir'});
	}
else { return &alias_input($_[0], "Redirect", $text{'mod_alias_redir'}); }
}
sub save_Redirect
{
if ($_[0]->{'version'} >= 1.2) {
	return &parse_alias_status("Redirect", $text{'mod_alias_redir2'}, $url_regexp);
	}
else { return &parse_alias("Redirect", $text{'mod_alias_redir2'}, $url_regexp); }
}

sub edit_RedirectMatch
{
return &alias_status_input($_[0], "RedirectMatch", $text{'mod_alias_rredir'});
}
sub save_RedirectMatch
{
return &parse_alias_status("RedirectMatch", $text{'mod_alias_rredir2'}, $url_regexp);
}

sub edit_RedirectTemp
{
return &alias_input($_[0], "RedirectTemp", $text{'mod_alias_tredir'});
}
sub save_RedirectTemp
{
return &parse_alias("RedirectTemp", $text{'mod_alias_tredir2'}, $url_regexp);
}

sub edit_RedirectPermanent
{
return &alias_input($_[0], "RedirectPermanent", $text{'mod_alias_predir'});
}
sub save_RedirectPermanent
{
return &parse_alias("RedirectPermanent", $text{'mod_alias_predir2'}, $url_regexp);
}

sub edit_ScriptAlias
{
return &alias_input($_[0], "ScriptAlias", $text{'mod_alias_cgi'});
}
sub save_ScriptAlias
{
return &parse_alias("ScriptAlias", $text{'mod_alias_cgi2'}, '^\S+$');
}

sub edit_ScriptAliasMatch
{
return &alias_input($_[0], "ScriptAliasMatch", $text{'mod_alias_rcgi'});
}
sub save_ScriptAliasMatch
{
return &parse_alias("ScriptAliasMatch", $text{'mod_alias_rcgi2'}, '^\S+$');
}

1;
   07070100015deb000081a40000000000000002000000013ac038980000007d000000200000000000000000000000000000001900000003reloc/apache/mod_asis.pl  # mod_asis.pl
# No directives

sub mod_asis_directives
{
return ();
}

sub mod_asis_handlers
{
return ("send-as-is");
}

1;

   07070100015dec000081a40000000000000002000000013ac038980000075b000000200000000000000000000000000000001900000003reloc/apache/mod_auth.pl  # mod_auth.pl
# Defines editors for text-file authentication directives

sub mod_auth_directives
{
local($rv);
$rv = [ [ 'AuthUserFile AuthGroupFile AuthAuthoritative', 0, 4, 'directory htaccess' ] ];
return &make_directives($rv, $_[0], "mod_auth");
}

sub edit_AuthUserFile_AuthGroupFile_AuthAuthoritative
{
local($rv, $uf, $gf);
$uf = $_[0] ? 1 : 0; $gf = $_[1] ? 1 : 0;
$rv = "<table border><tr><td><table>\n";

$rv .= "<tr> <td><b>$text{'mod_auth_ufile'}</b></td> <td>".
       &opt_input($_[0]->{'value'}, "AuthUserFile", $text{'default'}, 25).
       &file_chooser_button("AuthUserFile", 0).
       ($uf ? "&nbsp;<a href=\"list_authusers.cgi?file=".$_[0]->{'value'}.
       "&url=".&urlize(&this_url())."\">$text{'mod_auth_uedit'}</a>" : "")."</td></tr>\n";

$rv .= "<tr> <td><b>$text{'mod_auth_gfile'}</b></td> <td>".
       &opt_input($_[1]->{'value'}, "AuthGroupFile", $text{'default'}, 25).
       &file_chooser_button("AuthGroupFile", 0).
       ($gf ? "&nbsp;<a href=\"list_authgroups.cgi?file=".$_[1]->{'value'}.
       "&url=".&urlize(&this_url())."\">$text{'mod_auth_gedit'}</a>" : "")."</td></tr>\n";

$rv .= "<tr> <td><b>$text{'mod_auth_pass'}</b></td> <td>".
       &choice_input($_[2]->{'value'}, "AuthAuthoritative", "",
       "$text{'yes'},off", "$text{'no'},on", "$text{'default'},").
       "</td> </tr>\n";
$rv .= "</table></td></tr></table>\n";
return (2, "$text{'mod_auth_auth'}", $rv);
}
sub save_AuthUserFile_AuthGroupFile_AuthAuthoritative
{
$in{'AuthUserFile_def'} || &allowed_auth_file($in{'AuthUserFile'}) ||
	&error($text{'mod_auth_eudir'});
$in{'AuthGroupFile_def'} || &allowed_auth_file($in{'AuthGroupFile'}) ||
	&error($text{'mod_auth_egdir'});
return (&parse_opt("AuthUserFile", '^\S+$', $text{'mod_auth_eufile'}) ,
        &parse_opt("AuthGroupFile", '^\S+$', $text{'mod_auth_egfile'}) ,
        &parse_choice("AuthAuthoritative", ""));
}

1;

 07070100015ded000081a40000000000000002000000013ac03898000005cd000000200000000000000000000000000000001d00000003reloc/apache/mod_auth_dbm.pl  # mod_auth_dbm.pl
# Defines editors for DBM file authentication directives

sub mod_auth_dbm_directives
{
local($rv);
$rv = [ [ 'AuthDBMUserFile AuthDBMGroupFile AuthDBMAuthoritative',
          0, 4, 'directory htaccess' ] ];
return &make_directives($rv, $_[0], "mod_auth_dbm");
}

sub edit_AuthDBMUserFile_AuthDBMGroupFile_AuthDBMAuthoritative
{
local($rv, $uf, $gf);
$uf = $_[0] ? 1 : 0; $gf = $_[1] ? 1 : 0;
$rv = "<table border><tr><td><table>\n";

$rv .= "<tr> <td><b>$text{'mod_auth_dbm_ufile'}</b></td> <td>".
       &opt_input($_[0]->{'value'}, "AuthDBMUserFile", $text{'default'}, 25).
       &file_chooser_button("AuthDBMUserFile", 0)."</td></tr>\n";

$rv .= "<tr> <td><b>$text{'mod_auth_dbm_gfile'}</b></td> <td>".
       &opt_input($_[1]->{'value'}, "AuthDBMGroupFile", $text{'default'}, 25).
       &file_chooser_button("AuthDBMGroupFile", 0)."</td></tr>\n";

$rv .= "<tr> <td><b>$text{'mod_auth_dbm_pass'}</b></td> <td>".
       &choice_input($_[2]->{'value'}, "AuthDBMAuthoritative", "",
       "$text{'yes'},off", "$text{'no'},on", "$text{'default'},").
       "</td> </tr>\n";
$rv .= "</table></td></tr></table>\n";
return (2, $text{'mod_auth_dbm_auth'}, $rv);
}
sub save_AuthDBMUserFile_AuthDBMGroupFile_AuthDBMAuthoritative
{
local(@rv);
@rv = (&parse_opt("AuthDBMUserFile", '^\S+$', $text{'mod_auth_dbm_eufile'}) ,
       &parse_opt("AuthDBMGroupFile", '^\S+$', $text{'mod_auth_dbm_egfile'}) ,
       &parse_choice("AuthDBMAuthoritative", ""));
return @rv;
}

1;

   07070100015dee000081a40000000000000002000000013ac038980000080f000000200000000000000000000000000000001e00000003reloc/apache/mod_autoindex.pl # mod_autoindex.pl
# Defines editors automatic index generation

sub mod_autoindex_directives
{
local($rv, $all); $all = 'virtual directory htaccess';
$rv = [ [ 'AddIcon AddIconByType AddIconByEncoding', 1, 12, $all, 1.3, 1 ],
        [ 'DefaultIcon', 0, 12, $all, 1.3, 5 ],
        [ 'AddAlt AddAltByType AddAltByEncoding', 1, 12, $all, 1.3 ],
        [ 'AddDescription', 1, 12, $all, 1.3 ],
        [ 'IndexOptions FancyIndexing', 0, 12, $all, 1.3, 10 ],
        [ 'HeaderName', 0, 12, $all, 1.3, 4 ],
        [ 'ReadmeName', 0, 12, $all, 1.3, 3 ],
        [ 'IndexIgnore', 1, 12, $all, 1.3, 6 ],
	[ 'IndexOrderDefault', 0, 12, $all, 1.304, 2 ] ];
return &make_directives($rv, $_[0], "mod_autoindex");
}

sub edit_IndexOrderDefault
{
local $rv = sprintf
	"<input type=radio name=IndexOrderDefault_def value=1 %s> $text{'mod_autoindex_default'}\n",
	$_[0] ? "" : "checked";
$rv .= sprintf "<input type=radio name=IndexOrderDefault_def value=0 %s>\n",
	$_[0] ? "checked" : "";
$rv .= "<select name=IndexOrderDefault_asc>\n";
$rv .= sprintf "<option %s>$text{'mod_autoindex_asc'}\n",
		$_[0]->{'words'}->[0] eq "Ascending" ? "selected" : "";
$rv .= sprintf "<option %s>$text{'mod_autoindex_descend'}\n",
		$_[0]->{'words'}->[0] eq "Descending" ? "selected" : "";
$rv .= "</select>\n";
$rv .= "<select name=IndexOrderDefault_what>\n";
$rv .= sprintf "<option %s>$text{'mod_autoindex_name'}\n",
		$_[0]->{'words'}->[1] eq "Name" ? "selected" : "";
$rv .= sprintf "<option %s>$text{'mod_autoindex_date'}\n",
		$_[0]->{'words'}->[1] eq "Date" ? "selected" : "";
$rv .= sprintf "<option %s>$text{'mod_autoindex_size'}\n",
		$_[0]->{'words'}->[1] eq "Size" ? "selected" : "";
$rv .= sprintf "<option %s>$text{'mod_autoindex_desc'}\n",
		$_[0]->{'words'}->[1] eq "Description" ? "selected" : "";
$rv .= "</select>\n";
return (2, "$text{'mod_autoindex_sort'}", $rv);
}
sub save_IndexOrderDefault
{
if ($in{'IndexOrderDefault_def'}) { return ( [ ] ); }
else { return ( [ "$in{'IndexOrderDefault_asc'} $in{'IndexOrderDefault_what'}" ] ); }
}

require './autoindex.pl';

1;

 07070100015def000081a40000000000000002000000013ac0389800000114000000200000000000000000000000000000001c00000003reloc/apache/mod_browser.pl   # mod_browser.pl
# Defines editors for directives to set environment variables

sub mod_browser_directives
{
local($rv);
$rv = [ [ 'BrowserMatch BrowserMatchNoCase', 1, 11, 'global' ] ];
return &make_directives($rv, $_[0], "mod_browser");
}

require './browsermatch.pl';

1;

07070100015df0000081a40000000000000002000000013ac0389800000480000000200000000000000000000000000000001e00000003reloc/apache/mod_cern_meta.pl # mod_cern_meta.pl
# Defines editors CERN metafile directives

sub mod_cern_meta_directives
{
local($rv);
$rv = [ [ 'MetaFiles', 0, 5, 'directory', 1.3 ],
        [ 'MetaDir', 0, 5, 'server', -1.3 ],
        [ 'MetaDir', 0, 5, 'directory', 1.3 ],
        [ 'MetaSuffix', 0, 5, 'server', -1.3 ],
        [ 'MetaSuffix', 0, 5, 'directory', 1.3 ] ];
return &make_directives($rv, $_[0], "mod_cern_meta");
}

sub edit_MetaFiles
{
return (1, "$text{'mod_cern_meta_process'}",
        &choice_input($_[0]->{'value'}, "MetaFiles", "off",
        "$text{'yes'},on", "$text{'no'},off"));
}
sub save_MetaFiles
{
return &parse_choice("MetaFiles", "off");
}

sub edit_MetaDir
{
return (1, "$text{'mod_cern_meta_dir'}",
        &opt_input($_[0]->{'value'}, "MetaDir", "$text{'mod_cern_meta_default'}", 8));
}
sub save_MetaDir
{
return &parse_opt("MetaDir", '^\S+$', "$text{'mod_cern_meta_edir'}");
}

sub edit_MetaSuffix
{
return (1, "$text{'mod_cern_meta_suffix'}",
        &opt_input($_[0]->{'value'}, "MetaSuffix", "$text{'mod_cern_meta_default2'}", 15));
}
sub save_MetaSuffix
{
return &parse_opt("MetaSuffix", '^\S+$', "$text{'mod_cern_meta_esuffix'}");
}

1;

07070100015df1000081a40000000000000002000000013ac0389800000508000000200000000000000000000000000000001800000003reloc/apache/mod_cgi.pl   # mod_cgi.pl
# Defines editors CGI logging directives

sub mod_cgi_directives
{
local($rv);
$rv = [ [ 'ScriptLog', 0, 11, 'global', 1.2 ],
        [ 'ScriptLogLength', 0, 11, 'global', 1.2 ],
        [ 'ScriptLogBuffer', 0, 11, 'global', 1.2 ] ];
return &make_directives($rv, $_[0], "mod_cgi");
}

sub mod_cgi_handlers
{
return ("cgi-script");
}

sub edit_ScriptLog
{
return (1, "$text{'mod_cgi_logname'}",
        &opt_input($_[0]->{'value'}, "ScriptLog", "$text{'mod_cgi_none'}", 20).
        &file_chooser_button("ScriptLog", 0));
}
sub save_ScriptLog
{
$in{'ScriptLog_def'} || &allowed_auth_file($in{'ScriptLog'}) ||
	&error($text{'mod_cgi_eunder'});
return &parse_opt("ScriptLog", '^\S+$', "$text{'mod_cgi_elogname'}");
}

sub edit_ScriptLogLength
{
return (1, "$text{'mod_cgi_logsize'}",
        &opt_input($_[0]->{'value'}, "ScriptLogLength", "$text{'mod_cgi_default'}", 8)
		.$text{'bytes'});
}
sub save_ScriptLogLength
{
return &parse_opt("ScriptLogLength", '^\d+$', "$text{'mod_cgi_elogsize'}");
}

sub edit_ScriptLogBuffer
{
return (1, "$text{'mod_cgi_post'}",
        &opt_input($_[0]->{'value'}, "ScriptLogBuffer", "$text{'mod_cgi_default'}", 6)
		.$text{'bytes'});
}
sub save_ScriptLogBuffer
{
return &parse_opt("ScriptLogBuffer", '^\d+$', "$text{'mod_cgi_epost'}");
}

1;

07070100015df2000081a40000000000000002000000013ac038970000043f000000200000000000000000000000000000001800000003reloc/apache/mod_dir.pl   # mod_dir.pl
# Defines editors for mod_dir directives

sub mod_dir_directives
{
local($rv, $all); $all = 'virtual directory htaccess';
$rv = [ [ 'DirectoryIndex', 0, 12, 'virtual directory htaccess', undef, 8 ],
	[ 'AddIcon AddIconByType AddIconByEncoding', 1, 12, $all, -1.3, 1 ],
        [ 'DefaultIcon', 0, 12, $all, -1.3, 4 ],
        [ 'AddAlt AddAltByType AddAltByEncoding', 1, 12, $all, -1.3 ],
        [ 'AddDescription', 1, 12, $all, -1.3 ],
        [ 'IndexOptions FancyIndexing', 0, 12, $all, -1.3, 10 ],
        [ 'HeaderName', 0, 12, $all, -1.3, 3 ],
        [ 'ReadmeName', 0, 12, $all, -1.3, 2 ],
        [ 'IndexIgnore', 1, 12, $all, -1.3, 6 ] ];
return &make_directives($rv, $_[0], "mod_dir");
}

sub edit_DirectoryIndex
{
local($rv);
$rv = sprintf "<textarea name=DirectoryIndex rows=5 cols=20>%s</textarea>\n",
        join("\n", split(/\s+/, $_[0]->{'value'}));
return (1, "$text{'mod_dir_txt'}", $rv);
}
sub save_DirectoryIndex
{
local(@di);
@di = split(/\s+/, $in{'DirectoryIndex'});
return @di ? ( [ join(' ', @di) ] ) : ( [ ] );
}

require './autoindex.pl';

1;

 07070100015df3000081a40000000000000002000000013ac038980000081d000000200000000000000000000000000000001800000003reloc/apache/mod_env.pl   # mod_env.pl
# Defines editors for passing variables to CGI scripts

sub mod_env_directives
{
local($rv);
$rv = [ [ 'PassEnv UnsetEnv SetEnv', 1, 11, 'virtual', -1.309 ],
	[ 'PassEnv UnsetEnv SetEnv', 1, 11, 'virtual directory', 1.309 ] ];
return &make_directives($rv, $_[0], "mod_env");
}

sub edit_PassEnv_UnsetEnv_SetEnv
{
local($d, $e, @var, @mode, @val, $i, $rv);
foreach $d (@{$_[0]}, @{$_[1]}, @{$_[2]}) {
	if ($d->{'name'} ne "SetEnv") {
		foreach $e (@{$d->{'words'}}) {
			push(@var, $e);
			push(@mode, $d->{'name'} eq "PassEnv" ? 0 : 1);
			push(@val, "");
			}
		}
	else {
		push(@var, $d->{'words'}->[0]);
		push(@mode, 2);
		push(@val, $d->{'words'}->[1]);
		}
	}
push(@var, ""); push(@mode, 0); push(@val, "");
$rv = "<table border>\n".
      "<tr $tb> <td><b>$text{'mod_env_var'}</b></td> <td><b>$text{'mod_env_value'}</b></td> </tr>\n";
for($i=0; $i<@var; $i++) {
	$rv .= "<tr $cb>\n";
	$rv .= "<td><input name=Env_var_$i size=20 value=\"$var[$i]\"></td>\n";
	$rv .= "<td>".&choice_input($mode[$i], "Env_mode_$i", 0,
	                            "$text{'mod_env_pass'},0", "$text{'mod_env_clear'},1", "$text{'mod_env_set'},2");
	$rv .= "<input name=Env_val_$i size=20 value=\"$val[$i]\"></td>\n";
	$rv .= "</tr>\n";
	}
$rv .= "</table>\n";
return (2, "$text{'mod_env_cgivar'}", $rv);
}
sub save_PassEnv_UnsetEnv_SetEnv
{
local($i, $var, $mode, $val, @pa, @uns, @se);
for($i=0; defined($var = $in{"Env_var_$i"}); $i++) {
	$mode = $in{"Env_mode_$i"}; $val = $in{"Env_val_$i"};
	if ($var !~ /\S/ && $val !~ /\S/) { next; }
	$var =~ /^\S+$/ || &error(&text('mod_env_evar', $var));
	if ($mode == 0) { push(@pa, $var); }
	elsif ($mode == 1) { push(@uns, $var); }
	elsif ($var !~ /^\S+$/) {
		&error(&text('mod_env_evalue', $var));
		}
	else { push(@se, "$var \"$val\""); }
	}
return ( \@pa, \@uns, \@se );
}

sub edit_PassEnvAll
{
return (1, "$text{'mod_env_passall'}",
	&choice_input($_[0]->{'value'}, "PassEnvAll",
		      "", "$text{'yes'},on", "$text{'no'},off", "$text{'mod_env_default'},"));
}
sub save_PassEnvAll
{
return &parse_choice("PassEnvAll");
}

1;

   07070100015df4000081a40000000000000002000000013ac0389800000cdf000000200000000000000000000000000000002300000003reloc/apache/mod_expires.pl.broken    # mod_expires.pl
# Defines editors for setting expires times

sub mod_expires_directives
{
local($rv);
$rv = [ [ 'ExpiresActive ExpiresByType ExpiresDefault', 1, 5,
          'virtual directory htaccess' ] ];
return &make_directives($rv, $_[0], "mod_expires");
}

sub edit_ExpiresActive_ExpiresByType_ExpiresDefault
{
local($rv, $max, $i);
$rv = "Generate Expires headers?\n".
      &choice_input($_[0]->[0]->{'value'}, "ExpiresActive", "off",
      "Yes,on", "No,off")."<br>\n";
$rv .= "Default expiry time?\n";
$rv .= sprintf "<input type=radio name=ExpireDefault_def value=1 %s> None\n",
        $_[2]->[0] ? "" : "checked";
$rv .= sprintf "&nbsp; <input type=radio name=ExpireDefault_def value=2 %s>\n",
        $_[2]->[0] ? "checked" : "";
$rv .= &expires_input("ExpiresDefault", $_[2]->[0]->{'value'})."<br>\n";
$rv .= "<table border>\n".
       "<tr $tb> <td><b>MIME type</b></td> <td><b>Expiry time</b></td> </tr>\n";
$max = @{$_[1]} + 1;
for($i=0; $i<$max; $i++) {
	if ($_[1]->[$i]->{'value'} =~ /^(\S+)\s+(.*)$/) {
		$type = $1; $when = $2;
		}
	else { $type = $when = ""; }
	$rv .= "<tr $cb>\n";
	$rv .= "<td><input name=Expires_type_$i size=15 value=\"$type\"></td>\n";
	$rv .= "<td>".&expires_input("Expires_when_$i", $when)."</td>\n";
	$rv .= "</tr>\n";
	}
$rv .= "</table>\n";
return (2, "Expires headers", $rv);
}
sub save_Expires
{
local($i, $type, @rv);
for($i=0; defined($type = $in{"Expires_type_$i"}); $i++) {
	if ($type !~ /\S/) { next; }
	$type =~ /^(\S+)\/(\S+)$/ || &error("'$type' is not a valid MIME type");
	push(@rv, "$type ".&parse_expires("Expires_when_$i"));
	}
return ( &parse_choice("ExpiresActive", "off"),
         \@rv,
         $in{'ExpiresDefault_def'} ? [ ] : &parse_expires("ExpiresDefault") );
}

@Expires_units = (60, 60, 24, 30, 365);
@Expires_words = ('second', 'minute', 'hour', 'day', 'week', 'month', 'year');

# expires_input(name, value)
sub expires_input
{
local(@tm, @w, $i, $rv, $from, $secs);
if ($_[1] =~ /^"(\S+)\s+(plus\s+)?(.*)"$/) {
	@w = split(/\s+/, $3);
	$from = ($1 =~ /access|now/ ? "A" : "M");
	@tm = (0, 0, 0, 0, 0, 0, 0);
	for($i=0; $i<@w; $i+=2) {
		$w[$i+1] =~ s/s$//g;
		$tm[&indexof($w[$i+1], @Expires_words)] = $w[$i];
		}
	}
elsif ($_[1] =~ /^(A|M)(\d+)$/) {
	$from = $1;
	$secs = $2;
	for($i=0; $i<@Expires_units; $i++) {
		push(@tm, $secs % $Expires_units[$i]);
		$secs = int($secs / $Expires_units[$i]);
		}
	push(@tm, $secs);
	splice(@tm, 4, 1, 0);
	}
else {
	$from = "A";
	@tm = (0, 0, 0, 0, 0, 0, 0);
	}
$rv = "<select name=$_[0]_from>\n";
$rv .= sprintf "<option value=M %s>Modification\n",
        $from eq "M" ? "checked" : "";
$rv .= sprintf "<option value=A %s>Access\n",
        $from eq "A" ? "checked" : "";
$rv .= "</select> time plus&nbsp;\n";
for($i=0; $i<7; $i++) {
	$rv .= "<input size=3 name=$_[0]_$i value=\"$tm[$i]\">".
		substr($Expires_words[$i],0,1)."\n";
	}
return $rv;
}

# parse_expires(name)
sub parse_expires
{
local($rv, $i, $v);
$rv = $in{"$_[0]_from"} eq "A" ? "access" : "modification";
$rv .= " plus";
for($i=0; $i<7; $i++) {
	$v = $in{"$_[0]_$i"};
	if ($v !~ /^\d*$/) { &error("'$v' is not a valid number of ".
	                            "$Expires_words[$i]s"); }
	if ($v) { $rv .= " $v $Expires_words[$i]s"; }
	}
if ($rv =~ /plus$/) { $rv .= " 0 seconds"; }
return "\"$rv\"";
}

1;

 07070100015df5000081a40000000000000002000000013ac0389800000963000000200000000000000000000000000000001900000003reloc/apache/mod_imap.pl  # mod_imap.pl
# Defines editors for imagemap directives

sub mod_imap_directives
{
$rv = [ [ 'ImapMenu', 0, 5, 'virtual directory htaccess' ],
        [ 'ImapDefault', 0, 5, 'virtual directory htaccess' ],
        [ 'ImapBase', 0, 5, 'virtual directory htaccess' ] ];
return &make_directives($rv, $_[0], "mod_imap");
}

sub mod_imap_handlers
{
return ("imap-file");
}

sub edit_ImapMenu
{
return (2, "$text{'mod_imap_action'}",
        &select_input($_[0]->{'value'}, "ImapMenu", "", "$text{'mod_imap_default'},",
         "$text{'mod_imap_dogefurl'},none", "$text{'mod_imap_form'},formatted",
         "$text{'mod_imap_semiform'},semiformatted",
         "$text{'mod_imap_unform'},unformatted"));
}
sub save_ImapMenu
{
return &parse_select("ImapMenu", "");
}

sub edit_ImapDefault
{
local($rv, $v);
if ($_[0]->{'value'} =~ /^\S+:/) { $v = "url"; }
else { $v = $_[0]->{'value'}; }
$rv = &select_input($v, "ImapDefault", "", "$text{'mod_imap_default'},",
       "$text{'mod_imap_disperr'},error",  "$text{'mod_imap_donoth'},nocontent",
       "$text{'mod_imap_goimap'},map", "$text{'mod_imap_goref'},referer",
       "$text{'mod_imap_gourl'},url");
$rv .= sprintf "&nbsp;<input name=ImapDefault_url size=30 value=\"%s\">\n",
        $v eq "url" ? $_[0]->{'value'} : "";
return (2, "$text{'mod_imap_defact'}", $rv);
}
sub save_ImapDefault
{
if ($in{'ImapDefault'} eq "") { return ( [ ] ); }
elsif ($in{'ImapDefault'} ne "url") { return ( [ $in{'ImapDefault'} ] ); }
elsif ($in{'ImapDefault_url'} !~ /^\S+$/) {
	&error(&text('mod_imap_eurl', $in{'ImapDefault_url'}));
	}
else { return ( [ $in{'ImapDefault_url'} ] ); }
}

sub edit_ImapBase
{
local($rv, $v);
if ($_[0]->{'value'} =~ /^\S+:/) { $v = "url"; }
else { $v = $_[0]->{'value'}; }
$rv = &select_input($v, "ImapBase", "", "$text{'mod_imap_default2'},",
       "$text{'mod_imap_root'},root", "$text{'mod_imap_imapurl'},map",
       "$text{'mod_imap_refurl'},referer", "$text{'mod_imap_url'},url");
$rv .= sprintf "&nbsp;<input name=ImapBase_url size=30 value=\"%s\">\n",
        $v eq "url" ? $_[0]->{'value'} : "";
return (2, "$text{'mod_imap_defbase'}", $rv);
}
sub save_ImapBase
{
if ($in{'ImapBase'} eq "") { return ( [ ] ); }
elsif ($in{'ImapBase'} ne "url") { return ( [ $in{'ImapBase'} ] ); }
elsif ($in{'ImapBase_url'} !~ /^\S+$/) {
	&error(&text('mod_imap_eurl', $in{'ImapBase_url'}));
	}
else { return ( [ $in{'ImapBase_url'} ] ); }
}

1;

 07070100015df6000081a40000000000000002000000013ac0389800000227000000200000000000000000000000000000001c00000003reloc/apache/mod_include.pl   # mod_include.pl
# Defines editors SSI directives

sub mod_include_directives
{
$rv = [ [ 'XBitHack', 0, 11, 'virtual directory htaccess' ] ];
return &make_directives($rv, $_[0], "mod_include");
}

sub mod_include_handlers
{
return ("server-parsed");
}

sub edit_XBitHack
{
return (2, "$text{'mod_include_incl'}",
        &choice_input($_[0]->{'value'}, "XBitHack", "",
        "$text{'no'},off", "$text{'yes'},on", "$text{'mod_include_set'},full", "$text{'mod_include_default'},"));
}
sub save_XBitHack
{
return &parse_choice("XBitHack", "");
}

1;

 07070100015df7000081a40000000000000002000000013ac0389800000091000000200000000000000000000000000000001900000003reloc/apache/mod_info.pl  # mod_info.pl
# This module defines only handlers

sub mod_info_directives
{
return ();
}

sub mod_info_handlers
{
return ("server-info");
}

1;
   07070100015df8000081a40000000000000002000000013ac038980000044d000000200000000000000000000000000000001e00000003reloc/apache/mod_log_agent.pl # mod_log_agent.pl
# Defines editors for logging user agents

sub mod_log_agent_directives
{
$rv = [ [ 'AgentLog', 0, 3, 'virtual' ] ];
return &make_directives($rv, $_[0], "mod_log_agent");
}

sub edit_AgentLog
{
local($rv);
$rv = sprintf "<input type=radio name=AgentLog_mode value=0 %s> $text{'mod_log_agent_default'}\n",
       $_[0] ? "" : "checked";
$rv .= sprintf "<input type=radio name=AgentLog_mode value=1 %s> $text{'mod_log_agent_file'}",
	 $_[0] && $_[0]->{'value'} !~ /^\|/ ? "checked" : "";
$rv .= sprintf "<input type=radio name=AgentLog_mode value=2 %s> $text{'mod_log_agent_program'}",
	 $_[0]->{'value'} =~ /^\|/ ? "checked" : "";
$rv .= sprintf "<input name=AgentLog size=20 value=\"%s\">\n",
        $_[0]->{'value'} =~ /^\|(.*)$/ ? $1 : $_[0]->{'value'};
return (1, "$text{'mod_log_agent_log'}", $rv); 
}
sub save_AgentLog
{
if ($in{'AgentLog_mode'} == 0) { return ( [ ] ); }
$in{'AgentLog'} =~ /^\S+$/ ||
	&error(&text('mod_log_agent_efile', $in{'AgentLog'}));
if ($in{'AgentLog_mode'} == 1) { return ( [ $in{'AgentLog'} ] ); }
else { return ( [ "|$in{'AgentLog'}" ] ); }
}

1;

   07070100015df9000081a40000000000000002000000013ac0389800000490000000200000000000000000000000000000001f00000003reloc/apache/mod_log_common.pl    # mod_log_common.pl
# Defines editors for logging

sub mod_log_common_directives
{
$rv = [ [ 'TransferLog', 0, 3, 'virtual', -1.2 ] ];
return &make_directives($rv, $_[0], "mod_log_common");
}

sub edit_TransferLog
{
local($rv);
$rv = sprintf "<input type=radio name=TransferLog_mode value=0 %s> Default\n",
       $_[0] ? "" : "checked";
$rv .= sprintf "<input type=radio name=TransferLog_mode value=1 %s> File..",
	 $_[0] && $_[0]->{'value'} !~ /^\|/ ? "checked" : "";
$rv .= sprintf "<input type=radio name=TransferLog_mode value=2 %s> Program..",
	 $_[0]->{'value'} =~ /^\|/ ? "checked" : "";
$rv .= sprintf "<input name=TransferLog size=20 value=\"%s\">\n",
        $_[0]->{'value'} =~ /^\|(.*)$/ ? $1 : $_[0]->{'value'};
return (1, "Access log file", $rv); 
}
sub save_TransferLog
{
if ($in{'TransferLog_mode'} == 0) { return ( [ ] ); }
$in{'TransferLog'} =~ /^\S+$/ ||
	&error("$in{'TransferLog'} is not a valid access log filename");
&allowed_auth_file($in{'TransferLog'}) ||
	&error("access log is not under the allowed directory");
if ($in{'TransferLog_mode'} == 1) { return ( [ $in{'TransferLog'} ] ); }
else { return ( [ "|$in{'TransferLog'}" ] ); }
}

1;

07070100015dfa000081a40000000000000002000000013ac0389700001162000000200000000000000000000000000000001f00000003reloc/apache/mod_log_config.pl    # mod_log_config.pl
# Defines editors for logging

sub mod_log_config_directives
{
$rv = [ [ 'LogFormat', 1, 3, 'virtual', 1.2 ],
        [ 'TransferLog CustomLog', 1, 3, 'virtual', 1.2 ] ];
return &make_directives($rv, $_[0], "mod_log_config");
}

sub edit_LogFormat
{
if ($_[1]->{'version'} >= 1.3) {
	local($i, $v, $deffmt, @nick, @fmt, $rv);
	for($i=0; $_[0]->[$i]; $i++) {
		$vv = $_[0]->[$i]->{'words'};
		if ($vv->[1]) {
			push(@nick, $vv->[1]); push(@fmt, $vv->[0]);
			}
		else { $deffmt = $vv->[0]; }
		}
	$rv = &opt_input($deffmt, "LogFormat", "$text{'mod_log_config_common'}", 20);
	$rv .= "<br><b>$text{'mod_log_config_named'}</b><br>\n";
	$rv .= "<table border>\n".
	       "<tr $tb> <td><b>$text{'mod_log_config_nick'}</b></td> <td><b>$text{'mod_log_config_format'}</b></td> </tr>\n";
	for($i=0; $i<=@nick; $i++) {
		$rv .= "<tr $cb> <td><input name=LogFormat_nick_$i size=10 ".
		       "value=\"$nick[$i]\"></td>\n";
		$rv .= "<td><input name=LogFormat_fmt_$i size=40 ".
		       "value='$fmt[$i]'></td> </tr>\n";
		}
	$rv .= "</table>\n";
	return (2, "$text{'mod_log_config_deflog'}", $rv);
	}
else {
	return (1, "$text{'mod_log_config_deflog'}",
		&opt_input($_[0]->[0]->{'words'}->[0],
			   "LogFormat", "$text{'mod_log_config_default'}", 25));
	}
}
sub save_LogFormat
{
$in{'LogFormat'} =~ s/\"/\\\"/g;
if ($_[0]->{'version'} >= 1.3) {
	local(@rv, $i, $nick, $fmt);
	if (!$in{'LogFormat_def'}) { push(@rv, "\"$in{'LogFormat'}\""); }
	for($i=0; defined($in{"LogFormat_nick_$i"}); $i++) {
		$nick = $in{"LogFormat_nick_$i"}; $fmt =$in{"LogFormat_fmt_$i"};
		$fmt =~ s/\"/\\\"/g;
		if ($nick !~ /\S/ && $fmt !~ /\S/) { next; }
		$nick =~ /^\S+$/ || &error(&text('mod_log_config_enick', $nick));
		push(@rv, "\"$fmt\" $nick");
		}
	return ( \@rv );
	}
else {
	if ($in{'LogFormat_def'}) { return ( [ ] ); }
	elsif ($in{'LogFormat'} =~ /^\S+$/) { return ( [ $in{'LogFormat'} ] ); }
	else { return ( [ "\"$in{'LogFormat'}\"" ] ); }
	}
}

sub edit_TransferLog_CustomLog
{
local($rv, @all, $d, $i, $format, $dest);
$rv = "<table border>\n".
      "<tr $tb> <td><b>$text{'mod_log_config_format'}</b></td> <td><b>$text{'mod_log_config_write'}</b></td> ".
      "<td><b>$text{'mod_log_config_filprog'}</b></td> ";
if ($_[2]->{'version'} >= 1.305) {
	$rv .= "<td><b>If set</b></td> ";
	}
$rv .= "</tr>\n";
@all = (@{$_[0]}, @{$_[1]});
for($i=0; $i<=@all; $i++) {
	$d = $all[$i];
	if (!$d) { $format = ""; $dest = ""; }
	elsif ($d->{'name'} eq "CustomLog") {
		$format = $d->{'words'}->[1];
		$dest = $d->{'words'}->[0];
		}
	else { $format = ""; $dest = $d->{'value'}; }
	$rv .= "<tr $cb>\n";
	$rv .= "<td><input type=radio name=Log_def_$i value=1 ".
              ($format ? "" : "checked")."> $text{'mod_log_config_default'}&nbsp;\n";
	$rv .= "<input type=radio name=Log_def_$i value=0 ".
	       ($format ? "checked" : "")."> <input name=Log_cust_$i size=15 ".
	       "value='$format'></td>\n";

	$rv .= "<td><input type=radio name=Log_prog_$i value=0 ".
	       ($dest =~ /^\|/ ? "" : "checked")."> $text{'mod_log_config_file'}&nbsp;\n";
	$rv .= "<input type=radio name=Log_prog_$i value=1 ".
	       ($dest =~ /^\|/ ? "checked" : "")."> $text{'mod_log_config_program'}</td>\n";

	$dest =~ s/^\|//g;
	$rv .= "<td><input name=Log_dest_$i size=30 value=\"$dest\"></td>\n";
	if ($_[2]->{'version'} >= 1.305) {
		local $ev = $d->{'words'}->[2] =~ /^env=(.*)$/ ? $1 : "";
		$rv .= "<td><input name=Log_env_$i size=8 value=\"$ev\"></td>";
		}
	$rv .= "</tr>\n";
	}
$rv .= "</table>\n";
return (2, "$text{'mod_log_config_log'}", $rv);
}
sub save_TransferLog_CustomLog
{
local($i, $def, $cust, $prog, $dest, $fileprog, @tl, @cl);
for($i=0; defined($in{"Log_dest_$i"}); $i++) {
	$def = $in{"Log_def_$i"}; $cust = $in{"Log_cust_$i"};
	$prog = $in{"Log_prog_$i"}; $dest = $in{"Log_dest_$i"};
	$env = $in{"Log_env_$i"};
	$cust =~ s/\"/\\\"/g;
	if ($cust !~ /\S/ && $dest !~ /\S/) { next; }
	if (!$def && $cust !~ /\S/) { &error(&text('mod_log_config_eformat', $dest)); }
	if ($dest !~ /\S/) { &error($text{'mod_log_config_enofilprog'}); }
	&allowed_auth_file($dest) ||
		&error(&text('mod_log_config_efilprog', $dest));

	$fileprog = !$prog ? $dest :
		     $dest =~ /^\S+$/ ? $dest : "\"|$dest\"";
	if ($def) {
		if ($env) { &error($text{'mod_log_config_eifset'}); }
		push(@tl, "$fileprog");
		}
	else {
		if ($env) { push(@cl, "$fileprog \"$cust\" env=$env"); }
		else { push(@cl, "$fileprog \"$cust\""); }
		}
	}
return ( \@tl, \@cl );
}

1;

  07070100015dfb000081a40000000000000002000000013ac0389800000659000000200000000000000000000000000000002000000003reloc/apache/mod_log_referer.pl   # mod_log_referer.pl
# Defines editors for logging

sub mod_log_referer_directives
{
$rv = [ [ 'RefererLog', 0, 3, 'virtual' ],
        [ 'RefererIgnore', 0, 3, 'virtual' ] ];
return &make_directives($rv, $_[0], "mod_log_referer");
}

sub edit_RefererLog
{
local($rv);
$rv = sprintf "<input type=radio name=RefererLog_mode value=0 %s> $text{'mod_log_referer_default'}\n",
       $_[0] ? "" : "checked";
$rv .= sprintf "<input type=radio name=RefererLog_mode value=1 %s> $text{'mod_log_referer_file'}",
	 $_[0] && $_[0]->{'value'} !~ /^\|/ ? "checked" : "";
$rv .= sprintf "<input type=radio name=RefererLog_mode value=2 %s> $text{'mod_log_referer_program'}",
	 $_[0]->{'value'} =~ /^\|/ ? "checked" : "";
$rv .= sprintf "<input name=RefererLog size=20 value=\"%s\">\n",
        $_[0]->{'value'} =~ /^\|(.*)$/ ? $1 : $_[0]->{'value'};
return (1, "$text{'mod_log_referer_log'}", $rv); 
}
sub save_RefererLog
{
if ($in{'RefererLog_mode'} == 0) { return ( [ ] ); }
$in{'RefererLog'} =~ /^\S+$/ ||
	&error(&text('mod_log_referer_elog', $in{'RefererLog'}));
&allowed_auth_file($in{'RefererLog'}) ||
	&error($text{'mod_log_referer_edir'});
if ($in{'RefererLog_mode'} == 1) { return ( [ $in{'RefererLog'} ] ); }
else { return ( [ "|$in{'RefererLog'}" ] ); }
}

sub edit_RefererIgnore
{
local($rv);
$rv = "<textarea name=RefererIgnore rows=3 cols=20>".
      join("\n", split(/\s+/, $_[0]->{'value'})).
      "</textarea>\n";
return (1, "$text{'mod_log_referer_nolog'}", $rv);
}
sub save_RefererIgnore
{
local(@rv);
@rv = split(/\s+/, $in{'RefererIgnore'});
if (@rv) { return ( [ join(' ', @rv) ] ); }
else { return ( [ ] ); }
}

1;

   07070100015dfc000081a40000000000000002000000013ac0389700001208000000200000000000000000000000000000001900000003reloc/apache/mod_mime.pl  # mod_mime.pl
# Defines MIME module directives

sub mod_mime_directives
{
$rv = [ [ 'AddType', 1, 6, 'virtual directory htaccess', undef, 10 ],
	[ 'AddHandler', 1, 6, 'virtual directory htaccess', undef, 6 ],
	[ 'RemoveHandler', 1, 6, 'directory htaccess', 1.304, 5 ],
	[ 'RemoveType', 1, 6, 'directory htaccess', 1.313, 5 ],
	[ 'RemoveEncoding', 1, 6, 'directory htaccess', 1.313, 5 ],
	[ 'AddLanguage', 1, 6, 'virtual directory htaccess', undef, 4 ],
	[ 'AddEncoding', 1, 6, 'virtual directory htaccess', undef, 8 ],
	[ 'AddCharset', 1, 6, 'virtual directory htaccess', 1.310, 2 ],
	[ 'ForceType', 0, 6, 'directory htaccess' ],
	[ 'SetHandler', 0, 6, 'directory htaccess' ],
	[ 'TypesConfig', 0, 6, 'global' ] ];
return &make_directives($rv, $_[0], "mod_mime");
}

# extmap_input(directive, title, size, desc, list)
sub extmap_input
{
local($rv, $i, $type, $exts);
$rv = "<table border>\n".
      "<tr $tb> <td><b>$_[1]</b></td> <td><b>$text{'mod_mime_ext'}</b></td>\n".
      "<td><b>$_[1]</b></td> <td><b>$text{'mod_mime_ext'}</b></td> </tr>\n";
$len = int(@{$_[4]}/2)*2 + 2;
for($i=0; $i<$len; $i++) {
	if ($i%2 == 0) { $rv .= "<tr $cb>\n"; }
	if ($_[4]->[$i]) {
		$_[4]->[$i]->{'value'} =~ /^(\S+)\s*(.*)$/;
		$type = $1; $exts = $2;
		}
	else { $type = $exts = ""; }
	$rv .= "<td>";
	if ($_[2] eq "h") { $rv .= &handler_input($type, "$_[0]_type_$i"); }
	else { $rv .= "<input name=$_[0]_type_$i size=$_[2] value=$type>"; }
	$rv .= "</td>\n";
	$rv .= "<td><input name=$_[0]_exts_$i size=10 value=\"$exts\"></td>\n";
	if ($i%2 == 1) { $rv .= "</tr>\n"; }
	}
$rv .= "</table>\n";
return (2, $_[3], $rv);
}

# parse_extmap(directive, regexp, desc)
sub parse_extmap
{
local($i, $type, $exts, @rv, $re); $re = $_[1];
for($i=0; defined($in{"$_[0]_type_$i"}); $i++) {
	$type = $in{"$_[0]_type_$i"}; $exts = $in{"$_[0]_exts_$i"};
	if ($type !~ /\S/ && $exts !~ /\S/) { next; }
	if ($type !~ /$re/) { &error(&text('mod_mime_einvalid', $type, $_[2])); }
	if ($exts !~ /\S/) { &error(&text('mod_mime_eext', $_[2], $type)); }
	push(@rv, "$type $exts");
	}
return ( \@rv );
}

sub edit_AddType
{
&extmap_input("AddType", $text{'mod_mime_type'}, 20, $text{'mod_mime_xtype'}, $_[0]);
}
sub save_AddType
{
return &parse_extmap("AddType", '^(\S+)\/(\S+)$',
		     $text{'mod_mime_mtype'});
}

sub edit_AddHandler
{
&extmap_input("AddHandler", $text{'mod_mime_handler'}, "h", $text{'mod_mime_chandl'}, $_[0]);
}
sub save_AddHandler
{
return &parse_extmap("AddHandler");
}

sub edit_AddEncoding
{
&extmap_input("AddEncoding", $text{'mod_mime_cenc'}, 20, $text{'mod_mime_cencs'}, $_[0]);
}
sub save_AddEncoding
{
return &parse_extmap("AddEncoding", '^(\S+)$',
		     $text{'mod_mime_cenc'});
}

sub edit_AddLanguage
{
&extmap_input("AddLanguage", $text{'mod_mime_lang'}, 5, $text{'mod_mime_clangs'}, $_[0]);
}
sub save_AddLanguage
{
return &parse_extmap("AddLanguage", '^\S+$', $text{'mod_mime_clang'});
}

sub edit_ForceType
{
return (1, $text{'mod_mime_defmime'},
	&opt_input($_[0]->{'value'}, "ForceType", $text{'mod_mime_real'}, 15));
}
sub save_ForceType
{
return &parse_opt("ForceType", '^\S+\/\S+$', $text{'mod_mime_etype'});
}

sub edit_SetHandler
{
return (1, $text{'mod_mime_pass'},
	&handler_input($_[0]->{'value'}, "SetHandler"));
}
sub save_SetHandler
{
return &parse_handler("SetHandler");
}

sub edit_TypesConfig
{
return (2,
	$text{'mod_mime_file'},
	&opt_input($_[0]->{'value'}, "TypesConfig", $text{'mod_mime_default'}, 40).
	&file_chooser_button("TypesConfig", 0));
}
sub save_TypesConfig
{
return &parse_opt("TypesConfig");
}

sub edit_RemoveHandler
{
local @list;
foreach $v (@{$_[0]}) {
	push(@list, @{$v->{'words'}});
	}
return (2, "$text{'mod_mime_ignhand'}",
	&opt_input(@list ? join(" ", @list) : undef,
		   "RemoveHandler", "$text{'mod_mime_none'}", 40));
}
sub save_RemoveHandler
{
return &parse_opt("RemoveHandler");
}

sub edit_RemoveType
{
local @list;
foreach $v (@{$_[0]}) {
	push(@list, @{$v->{'words'}});
	}
return (2, "$text{'mod_mime_igntype'}",
	&opt_input(@list ? join(" ", @list) : undef,
		   "RemoveType", "$text{'mod_mime_none'}", 40));
}
sub save_RemoveType
{
return &parse_opt("RemoveType");
}

sub edit_RemoveEncoding
{
local @list;
foreach $v (@{$_[0]}) {
	push(@list, @{$v->{'words'}});
	}
return (2, "$text{'mod_mime_ignenc'}",
	&opt_input(@list ? join(" ", @list) : undef,
		   "RemoveEncoding", "$text{'mod_mime_none'}", 40));
}
sub save_RemoveEncoding
{
return &parse_opt("RemoveEncoding");
}

sub edit_AddCharset
{
&extmap_input("AddCharset", "$text{'mod_mime_chars'}", 5, "$text{'mod_mime_xchars'}", $_[0]);
}
sub save_AddCharset
{
return &parse_extmap("AddCharset");
}

1;

07070100015dfd000081a40000000000000002000000013ac0389800000209000000200000000000000000000000000000001f00000003reloc/apache/mod_mime_magic.pl    # mod_mime_magic.pl
# Defines MIME type guessing directives

sub mod_mime_magic_directives
{
$rv = [ [ 'MimeMagicFile', 0, 6, 'virtual' ] ];
return &make_directives($rv, $_[0], "mod_mime_magic");
}

sub edit_MimeMagicFile
{
return (1, "$text{'mod_mime_magic_file'}",
        &opt_input($_[0]->{'value'}, "MimeMagicFile", "$text{'mod_mime_magic_none'}", 20).
        &file_chooser_button("MimeMagicFile", 1));
}
sub save_MimeMagicFile
{
return &parse_opt("MimeMagicFile", '^\S+$', "$text{'mod_mime_magic_efile'}");
}

1;

   07070100015dfe000081a40000000000000002000000013ac038980000039c000000200000000000000000000000000000002000000003reloc/apache/mod_negotiation.pl   # mod_negotiation.pl
# Defines editors content negotiation directives

sub mod_negotiation_directives
{
$rv = [ [ 'CacheNegotiatedDocs', 0, 6, 'global' ],
        [ 'LanguagePriority', 0, 6, 'virtual directory htaccess' ] ];
return &make_directives($rv, $_[0], "mod_negotiation");
}

sub mod_negotiation_handlers
{
return ("type-map");
}

sub edit_CacheNegotiatedDocs
{
local($v); $v = $_[0] ? "1" : "0";
return (1, "$text{'mod_negotiation_cache'}",
        &choice_input($v, "CacheNegotiatedDocs", "0",
        "$text{'yes'},1", "$text{'no'},0"));
}
sub save_CacheNegotiatedDocs
{
return $in{'CacheNegotiatedDocs'} ? ( [ "" ] ) : ( [ ] );
}

sub edit_LanguagePriority
{
return (1, "$text{'mod_negotiation_pri'}",
        &opt_input($_[0]->{'value'}, "LanguagePriority", "$text{'mod_negotiation_def'}", 15));
}
sub save_LanguagePriority
{
return &parse_opt("LanguagePriority", '\S', "$text{'mod_negotiation_epri'}");
}

1;

07070100015dff000081a40000000000000002000000013ac0389800000093000000200000000000000000000000000000001900000003reloc/apache/mod_perl.pl  # mod_perl.pl
# Placeholder for mod_perl directives

sub mod_perl_directives
{
return ();
}

sub mod_perl_handlers
{
return ("perl-script");
}

1;
 07070100015e00000081a40000000000000002000000013ac038980000005d000000200000000000000000000000000000001800000003reloc/apache/mod_php.pl   # mod_php.pl
# Placeholder for mod_php directives

sub mod_php_directives
{
return ();
}

1;
   07070100015e01000081a40000000000000002000000013ac0389800000093000000200000000000000000000000000000001900000003reloc/apache/mod_php3.pl  # mod_php3.pl
# Placeholder for mod_php3 directives

sub mod_php3_directives
{
return ();
}

sub mod_php3_handlers
{
return ("php3-script");
}

1;
 07070100015e02000081a40000000000000002000000013ac0389800000093000000200000000000000000000000000000001900000003reloc/apache/mod_php4.pl  # mod_php4.pl
# Placeholder for mod_php4 directives

sub mod_php4_directives
{
return ();
}

sub mod_php4_handlers
{
return ("php4-script");
}

1;
 07070100015e03000081a40000000000000002000000013ac0389800002960000000200000000000000000000000000000001a00000003reloc/apache/mod_proxy.pl # mod_proxy.pl
# Editors for proxy directives

sub mod_proxy_directives
{
$rv = [ [ 'ProxyRequests', 0, 13, 'virtual', undef, 11 ],
        [ 'ProxyRemote', 1, 13, 'virtual', undef, 7 ],
        [ 'ProxyPass', 1, 10, 'virtual', undef, 0 ],
        [ 'ProxyPassReverse', 1, 10, 'virtual', 1.306, 0 ],
        [ 'ProxyBlock', 1, 13, 'virtual', 1.2, 9 ],
        [ 'NoProxy', 1, 13, 'virtual', 1.3, 5 ],
        [ 'ProxyDomain', 0, 13, 'virtual', 1.3, 4 ],
	[ 'AllowCONNECT', 0, 13, 'virtual', 1.302, 2 ],
        [ 'CacheRoot', 0, 13, 'virtual', undef, 10 ],
        [ 'CacheSize', 0, 13, 'virtual' ],
        [ 'CacheGcInterval', 0, 13, 'virtual' ],
        [ 'CacheMaxExpire', 0, 13, 'virtual' ],
        [ 'CacheLastModifiedFactor', 0, 13, 'virtual' ],
        [ 'CacheDirLevels', 0, 13, 'virtual' ],
        [ 'CacheDirLength', 0, 13, 'virtual' ],
        [ 'CacheDefaultExpire', 0, 13, 'virtual' ],
        [ 'CacheForceCompletion', 0, 13, 'virtual', 1.301 ],
        [ 'NoCache', 1, 13, 'virtual', undef, 3 ] ];
return &make_directives($rv, $_[0], "mod_proxy");
}

sub edit_ProxyRequests
{
return (1, $text{'mod_proxy_proxy'},
        &choice_input($_[0]->{'value'}, "ProxyRequests", "off",
                      "$text{'yes'},on", "$text{'no'},off"));
}
sub save_ProxyRequests
{
return &parse_choice("ProxyRequests", "off");
}

sub edit_ProxyRemote
{
local($rv, $i, $match, $proxy, $max);
$rv = "<table border>\n".
      "<tr $tb> <td><b>$text{'mod_proxy_req'}</b></td> <td><b>$text{'mod_proxy_forw'}</b></td> </tr>\n";
$max = @{$_[0]}+1;
for($i=0; $i<$max; $i++) {
	if ($_[0]->[$i]->{'value'} =~ /^(\S+)\s+(\S+)$/) {
		$match = $1; $proxy = $2;
		}
	else { $match = "*"; $proxy = ""; }
	$rv .= "<tr $cb>\n";
	$rv .= sprintf
	        "<td><input type=radio name=ProxyRemote_match_all_$i %s> $text{'mod_proxy_all'}\n",
	        $match eq "*" ? "checked" : "";
	$rv .= sprintf
	        "<input type=radio name=ProxyRemote_match_all_$i %s> $text{'mod_proxy_match'}\n",
	        $match eq "*" ? "" : "checked";
	$rv .= sprintf
	        "<input name=ProxyRemote_match_$i size=30 value=\"%s\"></td>\n",
	        $match eq "*" ? "" : $match;
	$rv .= "<td><input name=ProxyRemote_proxy_$i size=30 ".
	       "value=\"$proxy\"></td>\n";
	$rv .= "</tr>\n";
	}
$rv .= "</table>\n";
return (2, $text{'mod_proxy_pass'}, $rv);
}
sub save_ProxyRemote
{
local($i, $match, $match_all, $proxy, @rv);
for($i=0; defined($proxy = $in{"ProxyRemote_proxy_$i"}); $i++) {
	$match = $in{"ProxyRemote_match_$i"};
	$match_all = $in{"ProxyRemote_match_all_$i"};
	if ($match !~ /\S/ && $proxy !~ /\S/) { next; }
	if ($match_all) { $match = "*"; }
	elsif ($match !~ /^\S+$/) { &error(&text('mod_proxy_erequest', $match)); }
	$proxy =~ /^http:\/\/\S+$/ || &error(&text('mod_proxy_epurl', $proxy));
	push(@rv, "$match $proxy");
	}
return ( \@rv );
}

sub edit_ProxyPass
{
local($rv, $i, $path, $url, $max);
$rv = "<table border>\n".
      "<tr $tb> <td><b>$text{'mod_proxy_local'}</b></td> <td><b>$text{'mod_proxy_remote'}</b></td> </tr>\n";
$max = @{$_[0]} + 1;
for($i=0; $i<$max; $i++) {
	if ($_[0]->[$i]->{'value'} =~ /^(\S+)\s+(\S+)$/) {
		$path = $1; $url = $2;
		}
	else { $path = $url = ""; }
	$rv .= "<tr $cb>\n";
	$rv .= "<td><input name=ProxyPass_path_$i size=20 value=\"$path\"></td>\n";
	$rv .= "<td><input name=ProxyPass_url_$i size=30 value=\"$url\"></td>\n";
	$rv .= "</tr>\n";
	}
$rv .= "</table>\n";
return (2, $text{'mod_proxy_map'}, $rv);
}
sub save_ProxyPass
{
local($i, $url, $path, @rv);
for($i=0; defined($path = $in{"ProxyPass_path_$i"}); $i++) {
	$url = $in{"ProxyPass_url_$i"};
	if ($path !~ /\S/ && $url !~ /\S/) { next; }
	$path =~ /^\/\S*$/ || &error(&text('mod_proxy_elurl', $path));
	$url =~ /^http:\/\/(\S+)$/ || &error(&text('mod_proxy_erurl', $url));
	push(@rv, "$path $url");
	}
return ( \@rv );
}

sub edit_ProxyPassReverse
{
local($rv, $i, $path, $url, $max);
$rv = "<table border>\n".
      "<tr $tb> <td><b>$text{'mod_proxy_rurl'}</b></td> <td><b>$text{'mod_proxy_lurl'}</b></td> </tr>\n";
$max = @{$_[0]} + 1;
for($i=0; $i<$max; $i++) {
	if ($_[0]->[$i]->{'value'} =~ /^(\S+)\s+(\S+)$/) {
		$path = $1; $url = $2;
		}
	else { $path = $url = ""; }
	$rv .= "<tr $cb>\n";
	$rv .= "<td><input name=ProxyPassReverse_url_$i size=30 value=\"$url\"></td>\n";
	$rv .= "<td><input name=ProxyPassReverse_path_$i size=20 value=\"$path\"></td>\n";
	$rv .= "</tr>\n";
	}
$rv .= "</table>\n";
return (2, $text{'mod_proxy_headers'}, $rv);
}
sub save_ProxyPassReverse
{
local($i, $url, $path, @rv);
for($i=0; defined($path = $in{"ProxyPassReverse_path_$i"}); $i++) {
	$url = $in{"ProxyPassReverse_url_$i"};
	if ($path !~ /\S/ && $url !~ /\S/) { next; }
	$path =~ /^\/\S*$/ || &error(&text('mod_proxy_elurl', $path));
	$url =~ /^http:\/\/(\S+)$/ || &error(&text('mod_proxy_erurlerurl', $url));
	push(@rv, "$path $url");
	}
return ( \@rv );
}

sub edit_ProxyBlock
{
local($b, @b);
foreach $b (@{$_[0]}) { push(@b, split(/\s+/, $b->{'value'})); }
return (2, $text{'mod_proxy_block'},
        &opt_input(@b ? join(' ', @b) : undef, "ProxyBlock", $text{'mod_proxy_none3'}, 50));
}
sub save_ProxyBlock
{
return &parse_opt("ProxyBlock", '\S', $text{'mod_proxy_eblock'});
}

sub edit_NoProxy
{
local($n, @n, $i, $rv);
foreach $n (@{$_[0]}) { push(@n, split(/\s+/, $n->{'value'})); }
$rv = "<table border>\n".
      "<tr $tb> <td><b>$text{'mod_proxy_type'}</b></td> <td><b>$text{'mod_proxy_noproxy'}</b></td> </tr>\n";
for($i=0; $i<=@n; $i++) {
	$rv .= "<tr $cb>\n";
	if ($i>=@n) { $type = 0; }
	elsif ($n[$i] =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/) {
		if ($4 == 0) { $type = 3; }
		else { $type = 0; }
		}
	elsif ($n[$i] =~ /^([0-9\.]+)\/(\d+)$/) { $type = 4; }
	elsif ($n[$i] =~ /^([0-9\.]+)$/) { $type = 3; }
	elsif ($n[$i] =~ /^\.(\S+)$/) { $type = 2; }
	else { $type = 1; }
	$rv .= "<td>".&select_input($type, "NoProxy_type_$i", 0,
		"$text{'mod_proxy_ip'},0", "$text{'mod_proxy_host'},1",
		"$text{'mod_proxy_domain'},2", "$text{'mod_proxy_net'},3",
		"$text{'mod_proxy_netbit'},4")."</td>\n";
	$rv .= "<td><input name=NoProxy_for_$i size=30 value=\"$n[$i]\"></td>\n";
	$rv .= "</tr>\n";
	}
$rv .= "</table>\n";
return (2, $text{'mod_proxy_nopass'}, $rv);
}
sub save_NoProxy
{
local($i, $type, $for, @rv);
for($i=0; defined($type = $in{"NoProxy_type_$i"}); $i++) {
	$for = $in{"NoProxy_for_$i"};
	if ($for !~ /\S/) { next; }
	if ($type == 0) {
		&check_ipaddress($for) || 
			&error(&text('mod_proxy_eip', $for));
		}
	elsif ($type == 1) {
		$for =~ /^[A-z0-9\-][A-z0-9\-\.]+[A-z0-9\-]$/ ||
			&error(&text('mod_proxy_ehost', $for));
		}
	elsif ($type == 2) {
		$for =~ /^\.[A-z0-9\-\.]+[A-z0-9\-]$/ ||
			&error(&text('mod_proxy_edomain', $for));
		}
	elsif ($type == 3) {
		if ($for =~ /^(\d+)$/) { $for .= ".0.0.0"; }
		elsif ($for =~ /^(\d+)\.(\d+)$/) { $for .= ".0.0"; }
		elsif ($for =~ /^(\d+)\.(\d+)\.(\d+)$/) { $for .= ".0"; }
		&check_ipaddress($for) || &error(&text('mod_proxy_enet', $for));
		}
	elsif ($type == 4) {
		($for =~ /^(\S+)\/(\d+)$/ && &check_ipaddress($1) && $2 < 32) ||
			&error(&text('mod_proxy_enetbit', $for));
		}
	push(@rv, $for);
	}
return @rv ? ( [ join(' ', @rv) ] ) : ( [ ] );
}

sub edit_ProxyDomain
{
return (1, $text{'mod_proxy_nodomain'},
        &opt_input($_[0]->{'value'}, "ProxyDomain", $text{'mod_proxy_none'}, 20));
}
sub save_ProxyDomain
{
return &parse_opt("ProxyDomain", '^[A-z0-9\-]+$', $text{'mod_proxy_enodomain'});
}

sub edit_AllowCONNECT
{
return (1, $text{'mod_proxy_connect'},
        &opt_input($_[0]->{'value'}, "AllowCONNECT", $text{'mod_proxy_default'}, 10));
}
sub save_AllowCONNECT
{
return &parse_opt("AllowCONNECT", '^[\d ]+$', $text{'mod_proxy_econnect'});
}

sub edit_CacheRoot
{
return (1, $text{'mod_proxy_dir'},
        &opt_input($_[0]->{'value'}, "CacheRoot", $text{'mod_proxy_none'}, 20).
        &file_chooser_button("CacheRoot", 0));
}
sub save_CacheRoot
{
$in{'CacheRoot_def'} || &allowed_auth_file($in{'CacheRoot'}) ||
	&error($text{'mod_proxy_eunder'});
return &parse_opt("CacheRoot", '^\S+$', $text{'mod_proxy_edir'});
}

sub edit_CacheSize
{
return (1, $text{'mod_proxy_size'},
        &opt_input($_[0]->{'value'}, "CacheSize", $text{'mod_proxy_default'}, 8)." kB");
}
sub save_CacheSize
{
return &parse_opt("CacheSize", '^\d+$', $text{'mod_proxy_esize'});
}

sub edit_CacheGcInterval
{
return (1, $text{'mod_proxy_garbage'},
        &opt_input($_[0]->{'value'}, "CacheGcInterval", $text{'mod_proxy_nogc'}, 6).
	$text{'mod_proxy_hours'});
}
sub save_CacheGcInterval
{
return &parse_opt("CacheGcInterval", '^\d+$',
                  $text{'mod_proxy_egarbage'});
}

sub edit_CacheMaxExpire
{
return (1, $text{'mod_proxy_maxexp'},
        &opt_input($_[0]->{'value'}, "CacheMaxExpire", $text{'mod_proxy_default'}, 6).
	$text{'mod_proxy_hours'});
}
sub save_CacheMaxExpire
{
return &parse_opt("CacheMaxExpire", '^\d+$',
                  $text{'mod_proxy_emaxexp'});
}

sub edit_CacheLastModifiedFactor
{
return (1, $text{'mod_proxy_expfac'},
        &opt_input($_[0]->{'value'}, "CacheLastModifiedFactor", $text{'mod_proxy_default'}, 6));
}
sub save_CacheLastModifiedFactor
{
return &parse_opt("CacheLastModifiedFactor", '^\d+$',
                  $text{'mod_proxy_eexpfac'});
}

sub edit_CacheDirLevels
{
return (1, $text{'mod_proxy_levels'},
        &opt_input($_[0]->{'value'}, "CacheDirLevels", $text{'mod_proxy_default'}, 6));
}
sub save_CacheDirLevels
{
return &parse_opt("CacheDirLevels", '^\d+$',
                  $text{'mod_proxy_elevels'});
}

sub edit_CacheDirLength
{
return (1, $text{'mod_proxy_length'},
        &opt_input($_[0]->{'value'}, "CacheDirLength", $text{'mod_proxy_default'}, 4));
}
sub save_CacheDirLength
{
return &parse_opt("CacheDirLength", '^\d+$',
                  $text{'mod_proxy_elength'});
}

sub edit_CacheDefaultExpire
{
return (1, $text{'mod_proxy_defexp'},
        &opt_input($_[0]->{'value'}, "CacheDefaultExpire", $text{'mod_proxy_default'}, 6).
	$text{'mod_proxy_hours'});
}
sub save_CacheDefaultExpire
{
return &parse_opt("CacheDefaultExpire", '^\d+$', $text{'mod_proxy_edefexp'});
}

sub edit_CacheForceCompletion
{
return (1, $text{'mod_proxy_finish'},
        &opt_input($_[0]->{'value'}, "CacheForceCompletion", $text{'mod_proxy_default'}, 6)."%");
}
sub save_CacheForceCompletion
{
return &parse_opt("CacheForceCompletion", '^\d+$',
		  $text{'mod_proxy_efinish'});
}

sub edit_NoCache
{
local($n, @n);
foreach $n (@{$_[0]}) { push(@n, $n->{'value'}); }
return (1, $text{'mod_proxy_nocache'},
        &opt_input(@n ? join(' ', @n) : undef, "NoCache", $text{'mod_proxy_none2'}, 20));
}
sub save_NoCache
{
return &parse_opt("NoCache", '\S', $text{'mod_proxy_enocache'});
}

1;

07070100015e04000081a40000000000000002000000013ac0389800000c2b000000200000000000000000000000000000001d00000003reloc/apache/mod_setenvif.pl  # mod_setenvif.pl
# Defines editors for directives to set environment variables

sub mod_setenvif_directives
{
local($rv);
$rv = [ [ 'BrowserMatch BrowserMatchNoCase', 1, 11, 'global', '-1.313' ],
	[ 'BrowserMatch BrowserMatchNoCase', 1, 11, 'virtual directory htaccess', 1.313 ],
        [ 'SetEnvIf SetEnvIfNoCase', 1, 11, 'global', '1.3-1.313' ],
        [ 'SetEnvIf SetEnvIfNoCase', 1, 11, 'virtual directory htaccess', 1.313 ] ];
return &make_directives($rv, $_[0], "mod_setenvif");
}

require './browsermatch.pl';

sub edit_SetEnvIf_SetEnvIfNoCase
{
local($d, @w, $i, @head, @regex, @var, @val, @case, $rv);
foreach $d (@{$_[0]}, @{$_[1]}) {
	@w = @{$d->{'words'}};
	for($i=2; $i<@w; $i++) {
		push(@head, $w[0]);
		push(@regex, $w[1]);
		if ($w[$i] =~ /^\!(\S+)$/)
			{ push(@var, $1); push(@val, undef); }
		elsif ($w[$i] =~ /^(\S+)=(\S*)$/)
			{ push(@var, $1); push(@val, $2); }
		else { push(@var, $w[$i]); push(@val, 1); }
		if ($d->{'name'} eq "SetEnvIf") { push(@case, 1); }
		else { push(@case, 0); }
		}
	}
push(@head, ""); push(@regex, ""); push(@var, ""); push(@val, ""); push(@case, 0);
$rv = "<table border>\n".
      "<tr $tb> <td><b>$text{'mod_setenvif_header'}</b></td> <td><b>$text{'mod_setenvif_match'}</b></td>\n".
      "<td><b>$text{'mod_setenvif_case'}</b></td> <td><b>$text{'mod_setenvif_var'}</b></td>\n".
      "<td><b>$text{'mod_setenvif_value'}</b></td> </tr>\n";
for($i=0; $i<@head; $i++) {
	$rv .= "<tr $cb>\n";
	$rv .= sprintf
	        "<td><input size=15 name=SetEnvIf_head_$i value=\"%s\"></td>\n",
	        $head[$i];
	$rv .= sprintf
	        "<td><input size=10 name=SetEnvIf_regex_$i value=\"%s\"></td>\n",
	        $regex[$i];
	$rv .= "<td>".&choice_input($case[$i], "SetEnvIf_case_$i", 1,
	       "$text{'yes'},1", "$text{'no'},0")."</td>\n";
	$rv .= sprintf
	        "<td><input size=20 name=SetEnvIf_var_$i value=\"%s\"></td>\n",
	        $var[$i];
	$rv .= "<td>".&opt_input($val[$i], "SetEnvIf_val_$i",
	       "$text{'mod_setenvif_clear'}", 10)."</td>\n";
	$rv .= "</tr>\n";
	}
$rv .= "</table>\n";
return (2, "$text{'mod_setenvif_txt'}", $rv);
}
sub save_SetEnvIf_SetEnvIfNoCase
{
local($i, $head, $regex, $case, $var, $val,
      $set, $lastsi, $lastsnc, @si, @sinc);
for($i=0; defined($head = $in{"SetEnvIf_head_$i"}); $i++) {
	$regex = $in{"SetEnvIf_regex_$i"}; $case = $in{"SetEnvIf_case_$i"};
	$var = $in{"SetEnvIf_var_$i"};
	$val = $in{"SetEnvIf_val_${i}_def"} ? undef : $in{"SetEnvIf_val_$i"};
	if ($head !~ /\S/ && $regex !~ /\S/ && $var !~ /\S/) { next; }
	$head =~ /^\S+$/ || &error(&text('mod_setenvif_eheader', $head));
	$regex =~ /^\S+$/ || &error(&text('mod_setenvif_eregex', $regex));
	$var =~ /^\S+$/ || &error(&text('mod_setenvif_evar', $var));
	$set = !defined($val) ? "!$var" : $val eq "1" ? $var : "$var=$val";
	if ($case) {
		if ("$head $regex" eq $lastsi) { $si[$#si] .= " $set"; }
		else { push(@si, "$head $regex $set"); }
		$lastsi = "$head $regex";
		}
	else {
		if ("$head $regex" eq $lastsinc) { $sinc[$#sinc] .= " $set"; }
		else { push(@sinc, "$head $regex $set"); }
		$lastsinc = "$head $regex";
		}
	}
return ( \@si, \@sinc );
}

1;

 07070100015e05000081a40000000000000002000000013ac0389800000235000000200000000000000000000000000000001c00000003reloc/apache/mod_speling.pl   # mod_speling.pl
# Defines editors spelling correction directives

sub mod_speling_directives
{
$rv = [ [ 'CheckSpelling', 0, 5, 'virtual', '1.3-1.302' ],
	[ 'CheckSpelling', 0, 5, 'virtual directory htaccess', 1.302 ] ];
return &make_directives($rv, $_[0], "mod_speling");
}

sub edit_CheckSpelling
{
return (1, "$text{'mod_speling_autocorr'}",
        &choice_input($_[0]->{'value'}, "CheckSpelling",
        "", "$text{'no'},Off", "$text{'yes'},On", "$text{'mod_speling_default'},"));
}
sub save_CheckSpelling
{
return &parse_choice("CheckSpelling", "");
}

1;

   07070100015e06000081a40000000000000002000000013ac0389800000cbe000000200000000000000000000000000000001800000003reloc/apache/mod_ssl.pl   # mod_ssl.pl
# Defines editors for mod_ssl directives

sub mod_ssl_directives
{
local($rv);
$rv = [ [ 'SSLEngine', 0, 14, 'virtual', undef, 10 ],
	[ 'SSLProtocol', 0, 14, 'virtual', undef, 10 ],
	[ 'SSLCertificateFile', 0, 14, 'virtual', undef, 9 ],
	[ 'SSLCertificateKeyFile', 0, 14, 'virtual', undef, 8 ],
	[ 'SSLVerifyClient', 0, 14, 'virtual directory htaccess', undef, 7 ],
	[ 'SSLVerifyDepth', 0, 14, 'virtual directory htaccess', undef, 6 ],
	[ 'SSLLog', 0, 14, 'virtual', undef, 5 ],
	[ 'SSLRequireSSL', 0, 14, 'directory htaccess', undef, 4 ] ];
return &make_directives($rv, $_[0], "mod_ssl");
}

sub edit_SSLEngine
{
return (1, $text{'mod_ssl_enable'},
	&choice_input($_[0]->{'value'}, "SSLEngine", "",
		      "$text{'yes'},on", "$text{'no'},off", "$text{'default'},"));
}
sub save_SSLEngine
{
return &parse_choice("SSLEngine");
}

@sslprotos = ("SSLv2", "SSLv3", "TLSv1");
sub edit_SSLProtocol
{
local ($rv, $p, %prot);
local @list = $_[0] ? @{$_[0]->{'words'}} : ("all");
foreach $p (@list) {
	if ($p =~ /^\+?all$/i) { map { $prot{lc($_)} = 1 } @sslprotos; }
	elsif ($p =~ /^\-all$/i) { undef(%prot); }
	elsif ($p =~ /^\-(\S+)/) { $prot{lc($1)} = 0; }
	elsif ($p =~ /^\+(\S+)/) { $prot{lc($1)} = 1; }
	}
foreach $p (@sslprotos) {
	$rv .= sprintf "<input type=checkbox name=SSLProtocol value=$p %s> $p ",
		$prot{lc($p)} ? "checked" : "";
	}
return (1, $text{'mod_ssl_proto'}, $rv);
}
sub save_SSLProtocol
{
local @sel = split(/\0/, $in{'SSLProtocol'});
if (scalar(@sel) == scalar(@sslprotos)) { return ( [ ] ); }
return ( [ join(" ", (map { "+$_" } @sel)) ] );
}

sub edit_SSLCertificateFile
{
return (2, $text{'mod_ssl_cfile'},
	&opt_input($_[0]->{'value'}, "SSLCertificateFile", $text{'mod_ssl_default'}, 35).
	&file_chooser_button("SSLCertificateFile", 0));
}
sub save_SSLCertificateFile
{
return &parse_opt("SSLCertificateFile", '\S', $text{'mod_ssl_ecfile'});
}

sub edit_SSLCertificateKeyFile
{
return (2, $text{'mod_ssl_kfile'},
	&opt_input($_[0]->{'value'}, "SSLCertificateKeyFile", $text{'mod_ssl_default'}, 35).
	&file_chooser_button("SSLCertificateKeyFile", 0));
}
sub save_SSLCertificateKeyFile
{
return &parse_opt("SSLCertificateKeyFile", '\S', $text{'mod_ssl_ekfile'});
}

sub edit_SSLVerifyClient
{
return (1, $text{'mod_ssl_clcert'},
	&select_input($_[0]->{'value'}, "SSLVerifyClient", "",
		      "$text{'default'},", "$text{'mod_ssl_nreq'},none",
		      "$text{'mod_ssl_opt'},optional",
		      "$text{'mod_ssl_req'},require",
		      "$text{'mod_ssl_optca'},optional_no_ca"));
}
sub save_SSLVerifyClient
{
return &parse_select("SSLVerifyClient");
}

sub edit_SSLVerifyDepth
{
return (1, $text{'mod_ssl_cdepth'},
	&opt_input($_[0]->{'value'}, "SSLVerifyDepth", $text{'mod_ssl_default'}, 6));
}
sub save_SSLVerifyDepth
{
return &parse_opt("SSLVerifyDepth", '^\d+$', $text{'mod_ssl_ecdepth'});
}

sub edit_SSLLog
{
return (1, $text{'mod_ssl_log'},
	&opt_input($_[0]->{'value'}, "SSLLog", $text{'mod_ssl_default'}, 20));
}
sub save_SSLLog
{
return &parse_opt("SSLLog", '\S', $text{'mod_ssl_elog'});
}

sub edit_SSLRequireSSL
{
return (1, $text{'mod_ssl_onlyssl'},
	&choice_input($_[0] ? 1 : 0, "SSLRequireSSL", 0, "$text{'yes'},1", "$text{'no'},0"));
}
sub save_SSLRequireSSL
{
return $in{'SSLRequireSSL'} ? ( [ "" ] ) : ( [ ] );
}

  07070100015e07000081a40000000000000002000000013ac038980000021e000000200000000000000000000000000000001b00000003reloc/apache/mod_status.pl    # mod_status.pl
# This module defines the one directive and handle for mod_status

sub mod_status_directives
{
$rv = [ [ 'ExtendedStatus', 0, 0, 'global', 1.302 ] ];
return &make_directives($rv, $_[0], "mod_status");
}

sub mod_status_handlers
{
return ("server-status");
}

sub edit_ExtendedStatus
{
return (1, "$text{'mod_status_msg'}",
        &choice_input($_[0]->{'value'}, "ExtendedStatus",
	               "off", "$text{'yes'},on", "$text{'no'},off"));
}
sub save_ExtendedStatus
{
return &parse_choice("ExtendedStatus", "off");
}

1;

  07070100015e08000081a40000000000000002000000013ac03897000009c8000000200000000000000000000000000000001c00000003reloc/apache/mod_userdir.pl   # mod_userdir.pl
# Defines editors user WWW dir directives

sub mod_userdir_directives
{
local($rv);
$rv = [ [ 'UserDir', 1, 5, 'virtual', 1.3, 6 ],
	[ 'UserDir', 0, 5, 'virtual', -1.3, 6 ] ];
return &make_directives($rv, $_[0], "mod_userdir");
}

sub edit_UserDir
{
$fmt = "<input type=radio name=UserDir_def value=1 %s> $text{'mod_userdir_default'}&nbsp\n".
       "<input type=radio name=UserDir_def value=0 %s>\n".
       "<input name=UserDir size=20 value=\"%s\"><br>\n";
if ($_[1]->{'version'} >= 1.3) {
	local($d, $v, $ud, $rv, @uinfo, $mode, @disabled, @enabled, $_, @ulist);
	foreach $d (@{$_[0]}) {
		$v = $d->{'value'};
		if ($v =~ /^(disabled|enabled)\s*(.*)$/) {
			if ($1 eq "disabled" && !$2) { $mode = 2; }
			elsif ($1 eq "disabled")
				{ $mode = 1; push(@disabled, split(/\s+/, $2)); }
			else { push(@enabled, split(/\s+/, $2)); }
			}
		else { $ud = $v; }
		}
	if ($mode == 1) {
		# only selected users disabled
		@ulist = @disabled;
		}
	elsif ($mode == 2) {
		# only selected users enabled
		local %dis;
		foreach (@disabled) { $dis{$_}++; }
		@ulist = grep { !$dis{$_} } @enabled;
		}
	$rv = sprintf $fmt, $ud ? "" : "checked", $ud ? "checked" : "", $ud;
	$rv .= sprintf "<input type=radio name=UserDir_mode value=0 %s>\n",
			$mode==0 ? "checked" : "";
	$rv .= "$text{'mod_userdir_all'}<br>\n";
	$rv .= sprintf "<input type=radio name=UserDir_mode value=1 %s>\n",
			$mode==1 ? "checked" : "";
	$rv .= "$text{'mod_userdir_except'} <input name=UserDir_deny size=20 value=\"".
	       ($mode==1 ? join(" ", @ulist) : "")."\"> ".
	       &user_chooser_button("UserDir_deny",1)."<br>\n";
	$rv .= sprintf "<input type=radio name=UserDir_mode value=2 %s>\n",
			$mode==2 ? "checked" : "";
	$rv .= "Only users <input name=UserDir_allow size=20 value=\"".
	       ($mode==2 ? join(" ", @ulist) : "")."\"> ".
	       &user_chooser_button("UserDir_allow",1);
	return (2, "$text{'mod_userdir_dir'}", $rv);
	}
else {
	return (1, "$text{'mod_userdir_dir'}",
	        sprintf $fmt, $_[0] ? "" : "checked", $_[0] ? "checked" : "",
	                      $_[0]->{'value'} );
	}
}
sub save_UserDir
{
if ($_[0]->{'version'} >= 1.3) {
	local(@ud);
	if ($in{'UserDir_mode'} == 1)
		{ @ud = ("disabled $in{'UserDir_deny'}"); }
	elsif ($in{'UserDir_mode'} == 2)
		{ @ud = ("disabled", "enabled $in{'UserDir_allow'}"); }
	if (!$in{'UserDir_def'}) { push(@ud, $in{'UserDir'}); }
	return ( \@ud );
	}
else {
	if ($in{'UserDir_def'}) { return ( [ ] ); }
	else { return ( [ $in{'UserDir'} ] ); }
	}
}

1;

07070100015e09000081a40000000000000002000000013ac038970000026d000000200000000000000000000000000000001900000003reloc/apache/module.info  desc_zh_CN=Apache 服务器
name=Apache
desc_pt=Servidor Web Apache
desc_tr=Apache Web Sunucusu
desc_fr=Serveur Web Apache
desc_es=Servidor Web Apache
desc_sv=Apache Webserver
desc_de=Apache Webserver
desc_hu=Apache Webkiszolg醠
desc_ru_SU=髋 笈易乓 Apache
desc_pl=Serwer WWW Apache
category=servers
os_support=solaris redhat-linux debian-linux slackware-linux suse-linux aix hpux freebsd osf1 irix unixware openserver macos open-linux turbo-linux openbsd corel-linux cobalt-linux lfs-linux
desc_zh_TW.Big5=Apache 呼狝竟
desc=Apache Webserver
risk=low medium high
desc_nl=Apache Webserver
desc_ru_RU=洛 彦疴屦 Apache
   07070100015e0b000081e40000000000000002000000013ac0389700000237000000200000000000000000000000000000001a00000003reloc/apache/reconfig.cgi #!/usr/local/bin/perl
# reconfig.cgi
# Save apache configuration

require './apache-lib.pl';
$access{'global'}==1 || &error($text{'reconfig_ecannot'});
&ReadParse();

foreach $m (split(/\0/, $in{'mods'})) {
	push(@mods, "$m/$in{'ver'}");
	}
&lock_file("$module_config_directory/site");
&read_file("$module_config_directory/site", \%site);
$site{'size'} = $in{'size'};
$site{'modules'} = join(' ', @mods);
&write_file("$module_config_directory/site", \%site);
&unlock_file("$module_config_directory/site");
&webmin_log("reconfig", undef, undef, \%in);
&redirect("");

 07070100015e0c000081e40000000000000002000000013ac0389800000747000000200000000000000000000000000000001f00000003reloc/apache/reconfig_form.cgi    #!/usr/local/bin/perl
# reconfig_form.cgi
# Displays a list of supported modules, and allows the user to pick which
# ones are installed in apache

require './apache-lib.pl';
&ReadParse();
$access{'global'}==1 || &error($text{'reconfig_ecannot'});
&header($text{'reconfig_title'}, "");
print "<hr>\n";

# build list of modules compiled into apache
($ver, $mods) = &httpd_info($config{'httpd_path'});
if (!$ver) {
	print &text('reconfig_ever', "<tt>$config{'httpd_path'}</tt>",
		    "/config.cgi?$module_name"),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}
foreach $m (@$mods) {
	if (-r "$m.pl") { $inst{$m}++; }
	}

# build list of dynamically loaded modules
$conf = &get_config();
foreach $l (&find_directive_struct("LoadModule", $conf)) {
	if ($l->{'words'}->[1] =~ /(mod_\S+)\.so/ && -r "$1.pl") {
		$inst{$1}++;
		}
	elsif ($l->{'words'}->[1] =~ /lib([^\/\s]+)\.so/ && -r "mod_$1.pl") {
		$inst{"mod_$1"}++;
		}
	}

# build list of supported modules
push(@mods, "core");
opendir(DIR, ".");
foreach $f (readdir(DIR)) {
	if ($f =~ /^(mod_\S+)\.pl$/) { push(@mods, $1); }
	}
closedir(DIR);
@mods = sort { $a cmp $b } @mods;

if (!$in{'vol'}) {
	print $text{'reconfig_desc1'};
	}
else {
	print $text{'reconfig_desc2'};
	}
print "<p> <form action=reconfig.cgi>\n";
print "<input type=hidden name=size value=$in{'size'}>\n";
print "<input type=hidden name=ver value=\"$ver\">\n";
print "<table width=100%>\n";
for($i=0; $i<@mods; $i++) {
	if ($i%4 == 0) { print "<tr>\n"; }
	print "<td><input type=checkbox name=mods value=$mods[$i] ",
	      ($inst{$mods[$i]} ? "checked" : ""),"> $mods[$i]</td>\n";
	if ($i%4 == 3) { print "</tr>\n"; }
	}
print "</table>\n";
print "<input type=submit value=\"$text{'reconfig_ok'}\"></form>\n";

print "<hr>\n";
if ($in{'vol'}) { &footer("", $text{'index_return'}); }
else { &footer("/", $text{'index'}); }

 07070100015e0d000081e40000000000000002000000013ac038980000056d000000200000000000000000000000000000001900000003reloc/apache/restart.cgi  #!/usr/local/bin/perl
# restart.cgi
# Send a SIGHUP to apache

require './apache-lib.pl';
&ReadParse();
&error_setup($text{'restart_err'});

$conf = &get_config();
$pidfilestr = &find_directive_struct("PidFile", $conf);
$pidfile = $pidfilestr ? $pidfilestr->{'words'}->[0]
		       : "logs/httpd.pid";
$pidfile = &server_root($pidfile, $conf);

if (-x $config{'apachectl_path'}) {
	# use apachectl to restart
	$out = &backquote_logged("$config{'apachectl_path'} restart 2>&1");
	if ($out !~ /httpd restarted/) {
		&error("<tt>$out</tt>");
		}
	}
else {
	# send SIGHUP directly
	open(PID, $pidfile) || &error(&text('restart_epid', $pidfile));
	<PID> =~ /(\d+)/ || &error(&text('restart_epid2', $pidfile));
	close(PID);
	&kill_logged('HUP', $1) || &error(&text('restart_esig', $1));
	}

# Check if restart was successful.. some config file error may have caused it
# to silently fail
sleep(1);
if (!open(PID, $pidfile) || <PID> !~ /(\d+)/ || !kill(0, $1)) {
	# Not running..  find out why
	$errorlogstr = &find_directive_struct("ErrorLog", $conf);
	$errorlog = $errorlogstr ? $errorlogstr->{'words'}->[0]
				 : "logs/error_log";
	if ($errorlog eq 'syslog' || $errorlog =~ /^\|/) {
		&error($text{'restart_eunknown'});
		}
	else {
		$errorlog = &server_root($errorlog, $conf);
		$out = `tail -5 $errorlog`;
		&error("<pre>$out</pre>");
		}
	}
&webmin_log("apply");
&redirect($in{'redir'});

   07070100015e0e000081e40000000000000002000000013ac0389800000464000000200000000000000000000000000000002000000003reloc/apache/save_authgroup.cgi   #!/usr/local/bin/perl
# save_authgroup.cgi
# Save, create or delete a group

require './apache-lib.pl';
require './auth-lib.pl';

&ReadParse();
&allowed_auth_file($in{'file'}) ||
	&error(&text('authg_ecannot', $in{'file'}));
if ($in{'delete'}) {
	# Deleting a group
	&delete_authgroup($in{'file'}, $in{'oldgroup'});
	}
else {
	# Creating or updating
	&error_setup($text{'authg_err'});
	$in{'group'} =~ /\S/ || &error($text{'authg_euser'});
	$in{'group'} !~ /:/ || &error($text{'authg_euser2'});

	$oldg = &get_authgroup($in{'file'}, $in{'oldgroup'});
	$ginfo{'group'} = $in{'group'};
	@mems = split(/\s+/, $in{'members'});
	$ginfo{'members'} = \@mems;

	if (defined($in{'oldgroup'})) {
		# updating an old group
		if ($in{'oldgroup'} ne $in{'group'} &&
		    &get_authgroup($in{'file'}, $in{'group'})) {
			&error(&text('authg_edup', $in{'group'}));
			}
		&save_authgroup($in{'file'}, $in{'oldgroup'}, \%ginfo);
		}
	else {
		# creating a new one
		if (&get_authgroup($in{'file'}, $in{'group'})) {
			&error(&text('authg_edup', $in{'group'}));
			}
		&create_authgroup($in{'file'}, \%ginfo);
		}
	}
&redirect($in{'url'});

07070100015e0f000081e40000000000000002000000013ac03898000004b0000000200000000000000000000000000000001f00000003reloc/apache/save_authuser.cgi    #!/usr/local/bin/perl
# save_authuser.cgi
# Save, create or delete a user

require './apache-lib.pl';
require './auth-lib.pl';

&ReadParse();
&allowed_auth_file($in{'file'}) ||
	&error(&text('authu_ecannot', $in{'file'}));
if ($in{'delete'}) {
	# Deleting a user
	&delete_authuser($in{'file'}, $in{'olduser'});
	}
else {
	# Creating or updating
	&error_setup($text{'authu_err'});
	$in{'user'} =~ /\S/ || &error($text{'authu_euser'});
	$in{'user'} !~ /:/ || &error($text{'authu_euser2'});

	$oldu = &get_authuser($in{'file'}, $in{'olduser'});
	$uinfo{'user'} = $in{'user'};
	if ($in{'mode'}) {
		$uinfo{'pass'} = $in{'enc'};
		}
	else {
		$salt = chr(int(rand(26))+65).chr(int(rand(26))+65);
		$uinfo{'pass'} = crypt($in{'pass'}, $salt);
		}

	if (defined($in{'olduser'})) {
		# updating an old user
		if ($in{'olduser'} ne $in{'user'} &&
		    &get_authuser($in{'file'}, $in{'user'})) {
			&error(&text('authu_edup', $in{'user'}));
			}
		&save_authuser($in{'file'}, $in{'olduser'}, \%uinfo);
		}
	else {
		# creating a new one
		if (&get_authuser($in{'file'}, $in{'user'})) {
			&error(&text('authu_edup', $in{'user'}));
			}
		&create_authuser($in{'file'}, \%uinfo);
		}
	}
&redirect($in{'url'});

07070100015e10000081e40000000000000002000000013ac03898000001bf000000200000000000000000000000000000001e00000003reloc/apache/save_defines.cgi #!/usr/local/bin/perl
# save_defines.cgi
# Save defined run-time httpd parameters

require './apache-lib.pl';
$access{'global'}==1 || &error($text{'defines_ecannot'});
&lock_file("$module_config_directory/site");
&ReadParse();
$site{'defines'} = join(" ", split(/\s+/, $in{'defines'}));
&write_file("$module_config_directory/site", \%site);
&unlock_file("$module_config_directory/site");
&webmin_log("defines", undef, undef, \%in);
&redirect("");
 07070100015e11000081e40000000000000002000000013ac03898000002e8000000200000000000000000000000000000001a00000003reloc/apache/save_dir.cgi #!/usr/local/bin/perl
# save_virt.cgi
# Save some kind of per-directory configuration

require './apache-lib.pl';
&ReadParse();
($vconf, $v) = &get_virtual_config($in{'virt'});
&can_edit_virt($v) || &error($text{'virt_ecannot'});
$access_types{$in{'type'}} || &error($text{'etype'});
$d = $vconf->[$in{'idx'}];
$conf = $d->{'members'};
@edit = &editable_directives($in{'type'}, 'directory');

&lock_apache_files();
$tn = $type_name[$in{'type'}]; $tn =~ tr/A-Z/a-z/;
&error_setup(&text('efailed', $text{"type_$in{'type'}"}));
&parse_inputs(\@edit, $conf, &get_config());
&unlock_apache_files();
&webmin_log("dir", $in{'type'},
	    &virtual_name($v, 1).":".$d->{'words'}->[0], \%in);

&redirect("dir_index.cgi?virt=$in{'virt'}&idx=$in{'idx'}");
07070100015e12000081e40000000000000002000000013ac03898000002e2000000200000000000000000000000000000001c00000003reloc/apache/save_files.cgi   #!/usr/local/bin/perl
# save_files.cgi
# Save some kind of per-files options

require './apache-lib.pl';
&ReadParse();
$access{'global'} || &error($text{'htaccess_ecannot'});
$access_types{$in{'type'}} || &error($text{'etype'});
&allowed_auth_file($in{'file'}) || &error($text{'htindex_ecannot'});
$hconf = &get_htaccess_config($in{'file'});
$d = $hconf->[$in{'idx'}];
$conf = $d->{'members'};
@edit = &editable_directives($in{'type'}, 'directory');

&lock_file($in{'file'});
&error_setup(&text('efailed', $text{"type_$in{'type'}"}));
&parse_inputs(\@edit, $conf, $hconf);
&unlock_file($in{'file'});
&webmin_log("files", $in{'type'}, "$in{'file'}:$d->{'words'}->[0]", \%in);

&redirect("files_index.cgi?file=$in{'file'}&idx=$in{'idx'}");
  07070100015e13000081e40000000000000002000000013ac0389800000202000000200000000000000000000000000000001d00000003reloc/apache/save_global.cgi  #!/usr/local/bin/perl
# save_global.cgi
# Save some type of global options

require './apache-lib.pl';
&ReadParse();
$access{'global'}==1 || &error($text{'global_ecannot'});
$access_types{$in{'type'}} ||
	&error($text{'etype'});
&lock_apache_files();
$conf = &get_config();
@edit = &editable_directives($in{'type'}, 'global');

&error_setup(&text('efailed', $text{"type_$in{'type'}"}));
&parse_inputs(\@edit, $conf, $conf);
&unlock_apache_files();
&webmin_log("global", $in{'type'}, undef, \%in);

&redirect("");

  07070100015e14000081e40000000000000002000000013ac03897000002dc000000200000000000000000000000000000002100000003reloc/apache/save_gmime_type.cgi  #!/usr/local/bin/perl
# save_gmime_type.cgi
# Add or change a MIME type

require './apache-lib.pl';
&ReadParse();
$access{'global'}==1 || &error($text{'mime_ecannot'});

&error_setup($text{'mime_err'});
if ($in{'type'} !~ /^([A-z0-9\-]+)\/([A-z0-9\-]+)$/) {
	&error(&text('mime_etype', $in{'type'}));
	}

&lock_file($in{'file'});
open(MIME, $in{'file'});
@mime = <MIME>;
close(MIME);
$line = "$in{'type'} ".join(" ", split(/\s+/, $in{'exts'}))."\n";
if ($in{'line'}) {
	$mime[$in{'line'}] = $line;
	}
else {
	push(@mime, $line);
	}
open(MIME, "> $in{'file'}");
print MIME @mime;
close(MIME);
&unlock_file($in{'file'});
&webmin_log("mime", $in{'line'} ? 'modify' : 'create', $in{'type'}, \%in);
&redirect("edit_global.cgi?type=6");

07070100015e15000081e40000000000000002000000013ac038980000029b000000200000000000000000000000000000001f00000003reloc/apache/save_htaccess.cgi    #!/usr/local/bin/perl
# save_htaccess.cgi
# Save some kind of per-directory options file

require './apache-lib.pl';
&ReadParse();
$access{'global'} || &error($text{'htaccess_ecannot'});
$access_types{$in{'type'}} ||
	&error($text{'etype'});
&allowed_auth_file($in{'file'}) ||
	&error($text{'htindex_ecannot'});
$conf = &get_htaccess_config($in{'file'});
@edit = &editable_directives($in{'type'}, 'htaccess');

&lock_file($in{'file'});
&error_setup(&text('efailed', $text{"type_$in{'type'}"}));
&parse_inputs(\@edit, $conf, $conf);
&unlock_file($in{'file'});
&webmin_log("htaccess", $in{'type'}, $in{'file'}, \%in);

&redirect("htaccess_index.cgi?file=$in{'file'}");
 07070100015e16000081e40000000000000002000000013ac03898000001ee000000200000000000000000000000000000001b00000003reloc/apache/save_sync.cgi    #!/usr/local/bin/perl
# save_sync.cgi
# Save user synchronisation options

require './apache-lib.pl';
require './auth-lib.pl';
&ReadParse();
&allowed_auth_file($in{'file'}) || &error(&text('authu_ecannot', $in{'file'}));
$in{'sync'} =~ s/\0/ /g;
if ($in{'sync'}) {
	$config{"sync_$in{'file'}"} = $in{'sync'};
	}
else {
	delete($config{"sync_$in{'file'}"});
	}
&write_file("$module_config_directory/config", \%config);
&redirect("list_authusers.cgi?file=$in{'file'}&url=".&urlize($in{'url'}));

  07070100015e17000081e40000000000000002000000013ac03898000002de000000200000000000000000000000000000001b00000003reloc/apache/save_virt.cgi    #!/usr/local/bin/perl
# save_virt.cgi
# Save some kind of per-server configuration

require './apache-lib.pl';
&ReadParse();
($conf, $v) = &get_virtual_config($in{'virt'});
&can_edit_virt($v) || &error($text{'virt_ecannot'});
$access_types{$in{'type'}} || &error($text{'etype'});
$in{'type'} == 8 && !$access{'vuser'} &&
	&error($text{'virt_euser'});
@edit = &editable_directives($in{'type'}, 'virtual');
if (!$in{'virt'}) {
	@edit = grep { !$_->{'virtualonly'} } @edit;
	}

&lock_apache_files();
&error_setup(&text('efailed', $text{"type_$in{'type'}"}));
&parse_inputs(\@edit, $conf, &get_config());
&unlock_apache_files();
&webmin_log("virt", $in{'type'}, &virtual_name($v, 1), \%in);

&redirect("virt_index.cgi?virt=$in{'virt'}");
  07070100015e18000081e40000000000000002000000013ac0389800000add000000200000000000000000000000000000001c00000003reloc/apache/save_vserv.cgi   #!/usr/local/bin/perl
# save_vserv.cgi
# Save virtual server options such as the port and address

require './apache-lib.pl';
&ReadParse();
$access{'vaddr'} || &error($text{'vserv_ecannot'});
$conf = &get_config();
$vconf = $conf->[$in{'virt'}];

if ($in{'delete'}) {
	# Delete a virtual server
	$vname = &virt_acl_name($vconf);
	&lock_file($vconf->{'file'});
	$lref = &read_file_lines($vconf->{'file'});
	splice(@$lref, $vconf->{'line'},
	       $vconf->{'eline'} - $vconf->{'line'} + 1);
	&flush_file_lines();
	&unlock_file($vconf->{'file'});

	# Remove from acls
	&read_acl(undef, \%wusers);
	foreach $u (keys %wusers) {
		%uaccess = &get_module_acl($u);
		$uaccess{'virts'} = join(' ', grep { $_ ne $vname }
					      split(/\s+/, $uaccess{'virts'}));
		&save_module_acl(\%uaccess, $u) if ($uaccess{'virts'} ne '*');
		}
	&webmin_log("virt", "delete", &virtual_name($vconf, 1));
	&redirect("");
	}
else {
	# Update virtual server and directives
	&error_setup($text{'vserv_err'});

	# Check address
	if (defined($in{'addrs'})) {
		local @addrs = split(/\s+/, $in{'addrs'});
		@addrs || &error($text{'vserv_eaddrs'});
		foreach $a (@addrs) {
			$a =~ s/:(\d+)$//;
			$a eq '*' || $a eq '_default_' ||
			gethostbyname($a) || &check_ipaddress($a) ||
				&error(&text('vserv_eaddr2', $a));
			}
		$addr = join(" ", @addrs);
		}
	else {
		if ($in{'addr_def'}) {
			if ($httpd_modules{'core'} >= 1.2)
				{ $addr = "_default_"; }
			else { $addr = "*"; }
			}
		elsif ($in{'addr'} !~ /\S/) { &error($text{'vserv_eaddr1'}); }
		elsif (!gethostbyname($in{'addr'}) &&
		       !&check_ipaddress($in{'addr'}))
			{ &error(&text('vserv_eaddr2', $in{'addr'})); }
		else { $addr = $in{'addr'}; }
		}

	# Check port
	if ($in{'port_mode'} == 0) { $port = ""; }
	elsif ($in{'port_mode'} == 1) { $port = ":*"; }
	elsif ($in{'port'} !~ /^\d+$/) {
		&error(&text('vserv_eport', $in{'port'}));
		}
	else { $port = ":$in{'port'}"; }

	# Check document root
	if (!$in{'root_def'}) {
		(-d $in{'root'}) ||
			&error(&text('vserv_eroot', $in{'root'}));
		$root = $in{'root'};
		}

	# Check server name
	if (!$in{'name_def'}) {
		$in{'name'} =~ /^\S+$/ ||
			&error(&text('vserv_ename', $in{'name'}));
		$name = $in{'name'};
		}

	# Update <VirtualHost> directive
	&lock_file($vconf->{'file'});
	$lref = &read_file_lines($vconf->{'file'});
	$lref->[$vconf->{'line'}] = "<VirtualHost $addr$port>";

	# Update DocumentRoot and ServerName
	&save_directive("DocumentRoot", $root ? [ $root ] : [ ],
			$vconf->{'members'}, $conf);
	&save_directive("ServerName", $name ? [ $name ] : [ ],
			$vconf->{'members'}, $conf);

	# write out file
	&flush_file_lines();
	&unlock_file($vconf->{'file'});
	&webmin_log("virt", "save", &virtual_name($vconf, 1), \%in);
	&redirect("virt_index.cgi?virt=$in{'virt'}");
	}

   07070100015e19000081e40000000000000002000000013ac0389800000eb8000000200000000000000000000000000000001600000003reloc/apache/show.cgi #!/usr/local/bin/perl
# show.cgi
# Show directives from a virtualhost, directory or .htaccess

require './apache-lib.pl';
&ReadParse();
&header($text{'show_title'}, "");
if (defined($in{'virt'})) {
	if (defined($in{'idx'})) {
		# directory within virtual server
		($vconf, $v) = &get_virtual_config($in{'virt'});
		$d = $vconf->[$in{'idx'}];
		$conf = $d->{'members'};
		$title = &text('dir_header', &dir_name($d), &virtual_name($v));
		$edit = "edit_dir.cgi"; $return = "dir_index.cgi";
		$editable = 'directory'; $rmsg = $text{'dir_return'};
		}
	else {
		# virtual server
		($conf, $v) = &get_virtual_config($in{'virt'});
		$title = &text('virt_header', &virtual_name($v));
		$edit = "edit_virt.cgi"; $return = "virt_index.cgi";
		$editable = 'virtual'; $rmsg = $text{'virt_return'};
		$dir = "dir_index.cgi";
		}
	}
else {
	if (defined($in{'idx'})) {
		# files within .htaccess file
		$hconf = &get_htaccess_config($in{'file'});
		$d = $hconf->[$in{'idx'}];
		$conf = $d->{'members'};
		$title = &text('htfile_header', &dir_name($d),
			       "<tt>$in{'file'}</tt>");
		$edit = "edit_files.cgi"; $return = "htaccess_index.cgi";
		$editable = "directory"; $rmsg = $text{'htindex_return'};
		}
	else {
		# .htaccess file
		$conf = &get_htaccess_config($in{'file'});
		$title = &text('htindex_header', "<tt>$in{'file'}</tt>");
		$edit = "edit_htaccess.cgi"; $return = "htaccess_index.cgi";
		$editable = 'htaccess'; $rmsg = $text{'htindex_return'};
		$dir = "files_index.cgi";
		}
	}
print "<center><font size=+2>$title</font></center>\n";
print "<hr>\n";

foreach $h ('virt', 'idx', 'file') {
	if (defined($in{$h})) {
		$s .= "<input type=hidden name=$h value='$in{$h}'>\n";
		push(@args, "$h=$in{$h}");
		}
	}
$args = join('&', @args);

for($i=0; $i<14; $i++) {
	foreach $e (&editable_directives($i, $editable)) {
		foreach $n (split(/\s+/, $e->{'name'})) {
			$edit{lc($n)} = $e;
			push(@elist, { 'name' => $n, 'edit' => $e });
			}
		}
	}
@elist = sort { $a->{'name'} cmp $b->{'name'} } @elist;

print "<table><tr><td colspan=2>\n";
print "<table border><tr><td $cb><pre>\n\n";
&show_directives($conf, 0);
print "</pre></td></tr></table>\n";
print "</td></tr>\n";

if ($in{'virt'} || $in{'file'} || defined($in{'idx'})) {
	print "<tr><form action=manual_form.cgi>\n";
	print $s;
	print "<td><input type=submit name=these ",
	      "value='$text{'show_these'}'></td>\n";
	print "</form>\n";
	}
else {
	print "<tr> <td></td>\n";
	}

print "<form action=$edit>\n";
print $s;
print "<td align=right><input type=submit value='$text{'show_edit'}'>\n";
print "<select name=type>\n";
foreach $e (@elist) {
	print "<option value=",$e->{'edit'}->{'type'},">",
	      $e->{'name'},"\n";
	}
print "</select></td>\n";
print "</form></tr></table>\n";

print "<hr>\n";
&footer("$return?$args", $rmsg);

# show_directives(list, indent)
sub show_directives
{
local ($list, $ind) = @_;
local $idx;
for($idx=0; $idx<@$list; $idx++) {
	local $d = $list->[$idx];
	next if ($d->{'name'} eq "dummy");
	$t = $edit{lc($d->{'name'})};
	if ($d->{'type'}) {
		# Recurse into section
		local ($ed1, $ed2);
		print " " x $ind;
		if ($d->{'name'} eq "VirtualHost") { next; }
		elsif ($d->{'name'} =~ /Location|Files|Directory/) {
			$ed1 = "<a href=\"$dir?$args&".
			       "idx=$idx\">";
			$ed2 = "</a>";
			}
		print $ed1,"&lt;",$d->{'name'}," ",$d->{'value'},
		      "&gt;",$ed2,"\n";
		&show_directives($d->{'members'}, $ind+1);
		print " " x $ind;
		print "&lt;/",$d->{'name'},"&gt;\n";
		}
	elsif ($_[1] || !$access_types{$t->{'type'}}) {
		# Directives in section are not editable
		&print_line($d, [ $d->{'name'}," ",$d->{'value'} ], $ind);
		}
	else {
		next if (!$t);
		&print_line($d, [ $d->{'name'}," ",$d->{'value'} ], $ind,
			    "$edit?$args&type=$t->{'type'}");
		}
	}
}

07070100015e1a000081e40000000000000002000000013ac038980000081c000000200000000000000000000000000000001a00000003reloc/apache/show_dir.cgi #!/usr/local/bin/perl
# show_dir.cgi
# Show directives from a directory (or equivalent) section

require './apache-lib.pl';
&ReadParse();
($vconf, $v) = &get_virtual_config($in{'virt'});
$d = $vconf->[$in{'idx'}];
$conf = $d->{'members'};
&header($text{'show_title'}, "");
print "<center><font size=+2>",&text('dir_header', &dir_name($d),
				     &virtual_name($v)),"</font></center>\n";
print "<hr>\n";

for($i=0; $i<14; $i++) {
	foreach $e (&editable_directives($i, 'directory')) {
		foreach $n (split(/\s+/, $e->{'name'})) {
			$edit{lc($n)} = $e;
			push(@elist, { 'name' => $n, 'edit' => $e });
			}
		}
	}
@elist = sort { $a->{'name'} cmp $b->{'name'} } @elist;

print "<table border><tr><td $cb><pre>\n\n";
&show_directives($conf, 0);
print "</pre></td></tr></table><p>\n";

print "<form action=edit_dir.cgi>\n";
print "<input type=hidden name=virt value=\"$in{'virt'}\">\n";
print "<input type=hidden name=idx value=\"$in{'idx'}\">\n";
print "<b>$text{'show_edit'}</b>\n";
print "<select name=type>\n";
foreach $e (@elist) {
	print "<option value=",$e->{'edit'}->{'type'},">",
	      $e->{'name'},"\n";
	}
print "</select> <input type=submit value=\"$text{'show_ok'}\">\n";
print "</form>\n";

print "<hr>\n";
&footer("dir_index.cgi?virt=$in{'virt'}&idx=$in{'idx'}", $text{'dir_return'});

# show_directives(list, indent)
sub show_directives
{
local ($list, $ind) = @_;
local $idx;
for($idx=0; $idx<@$list; $idx++) {
	local $d = $list->[$idx];
	next if ($d->{'name'} eq "dummy");
	$t = $edit{lc($d->{'name'})};
	if ($d->{'type'}) {
		# Recurse into section
		print " " x $ind;
		print "&lt;",$d->{'name'}," ",$d->{'value'},"&gt;\n";
		&show_directives($d->{'members'}, $ind+1);
		print " " x $ind;
		print "&lt;/",$d->{'name'},"&gt;\n";
		}
	elsif ($_[1] || !$access_types{$t->{'type'}}) {
		# Directives in section are not editable
		&print_line($d, [ $d->{'name'}," ",$d->{'value'} ], $ind);
		}
	else {
		next if (!$t);
		&print_line($d, [ $d->{'name'}," ",$d->{'value'} ], $ind,
			    "edit_dir.cgi?virt=$in{'virt'}&type=$t->{'type'}&idx=$in{'idx'}");
		}
	}
}

07070100015e1b000081e40000000000000002000000013ac038970000081c000000200000000000000000000000000000001c00000003reloc/apache/show_files.cgi   #!/usr/local/bin/perl
# show_files.cgi
# Show directives from a files section in a .htaccess file

require './apache-lib.pl';
&ReadParse();
$hconf = &get_htaccess_config($in{'file'});
$d = $hconf->[$in{'idx'}];
$conf = $d->{'members'};
&header($text{'show_title'}, "");
print "<center><font size=+2>",&text('htfile_header', &dir_name($d),
      "<tt>$in{'file'}</tt>"),"</font></center>\n";
print "<hr>\n";

for($i=0; $i<14; $i++) {
	foreach $e (&editable_directives($i, 'directory')) {
		foreach $n (split(/\s+/, $e->{'name'})) {
			$edit{lc($n)} = $e;
			push(@elist, { 'name' => $n, 'edit' => $e });
			}
		}
	}
@elist = sort { $a->{'name'} cmp $b->{'name'} } @elist;

print "<table border><tr><td $cb><pre>\n\n";
&show_directives($conf, 0);
print "</pre></td></tr></table><p>\n";

print "<form action=edit_files.cgi>\n";
print "<input type=hidden name=file value=\"$in{'file'}\">\n";
print "<input type=hidden name=idx value=\"$in{'idx'}\">\n";
print "<b>$text{'show_edit'}</b>\n";
print "<select name=type>\n";
foreach $e (@elist) {
	print "<option value=",$e->{'edit'}->{'type'},">",
	      $e->{'name'},"\n";
	}
print "</select> <input type=submit value=\"$text{'show_ok'}\">\n";
print "</form>\n";

print "<hr>\n";
&footer("htaccess_index.cgi?file=$in{'file'}", $text{'htindex_return'});

# show_directives(list, indent)
sub show_directives
{
local ($list, $ind) = @_;
local $idx;
for($idx=0; $idx<@$list; $idx++) {
	local $d = $list->[$idx];
	next if ($d->{'name'} eq "dummy");
	$t = $edit{lc($d->{'name'})};
	if ($d->{'type'}) {
		# Recurse into section
		print " " x $ind;
		print "&lt;",$d->{'name'}," ",$d->{'value'},"&gt;\n";
		&show_directives($d->{'members'}, $ind+1);
		print " " x $ind;
		print "&lt;/",$d->{'name'},"&gt;\n";
		}
	elsif ($_[1] || !$access_types{$t->{'type'}}) {
		# Directives in section are not editable
		&print_line($d, [ $d->{'name'}," ",$d->{'value'} ], $ind);
		}
	else {
		next if (!$t);
		&print_line($d, [ $d->{'name'}," ",$d->{'value'} ], $ind,
			    "edit_files.cgi?file=$in{'file'}&type=$t->{'type'}&idx=$in{'idx'}");
		}
	}
}

07070100015e1c000081e40000000000000002000000013ac0389700000834000000200000000000000000000000000000001f00000003reloc/apache/show_htaccess.cgi    #!/usr/local/bin/perl
# show_htaccess.cgi
# Show directives from a .htaccess

require './apache-lib.pl';
&ReadParse();
$conf = &get_htaccess_config($in{'file'});
&header($text{'show_title'}, "");
print "<center><font size=+2>",&text('htindex_header', "<tt>$in{'file'}</tt>"),
      "</font></center>\n";
print "<hr>\n";

for($i=0; $i<14; $i++) {
	foreach $e (&editable_directives($i, 'htaccess')) {
		foreach $n (split(/\s+/, $e->{'name'})) {
			$edit{lc($n)} = $e;
			push(@elist, { 'name' => $n, 'edit' => $e });
			}
		}
	}
@elist = sort { $a->{'name'} cmp $b->{'name'} } @elist;

print "<table border><tr><td $cb><pre>\n\n";
&show_directives($conf, 0);
print "</pre></td></tr></table><p>\n";

print "<form action=edit_htaccess.cgi>\n";
print "<input type=hidden name=file value=\"$in{'file'}\">\n";
print "<b>$text{'show_edit'}</b>\n";
print "<select name=type>\n";
foreach $e (@elist) {
	print "<option value=",$e->{'edit'}->{'type'},">",
	      $e->{'name'},"\n";
	}
print "</select> <input type=submit value=\"$text{'show_ok'}\">\n";
print "</form>\n";

print "<hr>\n";
&footer("htaccess_index.cgi?file=$in{'file'}", $text{'htindex_return'});

# show_directives(list, indent)
sub show_directives
{
local ($list, $ind) = @_;
local $idx;
for($idx=0; $idx<@$list; $idx++) {
	local $d = $list->[$idx];
	next if ($d->{'name'} eq "dummy");
	$t = $edit{lc($d->{'name'})};
	if ($d->{'type'}) {
		# Recurse into section
		local ($ed1, $ed2);
		print " " x $ind;
		if ($d->{'name'} =~ /Files/) {
			$ed1 = "<a href=\"files_index.cgi?idx=$idx&".
			       "file=$in{'file'}\">";
			$ed2 = "</a>";
			}
		print $ed1,"&lt;",$d->{'name'}," ",$d->{'value'},
		      "&gt;",$ed2,"\n";
		&show_directives($d->{'members'}, $ind+1);
		print " " x $ind;
		print "&lt;/",$d->{'name'},"&gt;\n";
		}
	elsif ($_[1] || !$access_types{$t->{'type'}}) {
		# Directives in section are not editable
		&print_line($d, [ $d->{'name'}," ",$d->{'value'} ], $ind);
		}
	else {
		next if (!$t);
		&print_line($d, [ $d->{'name'}," ",$d->{'value'} ], $ind,
			    "edit_htaccess.cgi?file=$in{'file'}&type=$t->{'type'}");
		}
	}
}

07070100015e1d000081e40000000000000002000000013ac038980000086a000000200000000000000000000000000000001b00000003reloc/apache/show_virt.cgi    #!/usr/local/bin/perl
# show_virt.cgi
# Show directives from a virtualhost section

require './apache-lib.pl';
&ReadParse();
($conf, $v) = &get_virtual_config($in{'virt'});
&header($text{'show_title'}, "");
print "<center><font size=+2>",&text('virt_header', &virtual_name($v)),
      "</font></center>\n";
print "<hr>\n";

for($i=0; $i<14; $i++) {
	foreach $e (&editable_directives($i, 'virtual')) {
		foreach $n (split(/\s+/, $e->{'name'})) {
			$edit{lc($n)} = $e;
			push(@elist, { 'name' => $n, 'edit' => $e });
			}
		}
	}
@elist = sort { $a->{'name'} cmp $b->{'name'} } @elist;

print "<table border><tr><td $cb><pre>\n\n";
&show_directives($conf, 0);
print "</pre></td></tr></table><p>\n";

print "<form action=edit_virt.cgi>\n";
print "<input type=hidden name=virt value=\"$in{'virt'}\">\n";
print "<b>$text{'show_edit'}</b>\n";
print "<select name=type>\n";
foreach $e (@elist) {
	print "<option value=",$e->{'edit'}->{'type'},">",
	      $e->{'name'},"\n";
	}
print "</select> <input type=submit value=\"$text{'show_ok'}\">\n";
print "</form>\n";

print "<hr>\n";
&footer("virt_index.cgi?virt=$in{'virt'}", $text{'virt_return'});

# show_directives(list, indent)
sub show_directives
{
local ($list, $ind) = @_;
local $idx;
for($idx=0; $idx<@$list; $idx++) {
	local $d = $list->[$idx];
	next if ($d->{'name'} eq "dummy");
	$t = $edit{lc($d->{'name'})};
	if ($d->{'type'}) {
		# Recurse into section
		local ($ed1, $ed2);
		print " " x $ind;
		if ($d->{'name'} eq "VirtualHost") { next; }
		elsif ($d->{'name'} =~ /Location|Files|Directory/) {
			$ed1 = "<a href=\"dir_index.cgi?virt=$in{'virt'}&".
			       "idx=$idx\">";
			$ed2 = "</a>";
			}
		print $ed1,"&lt;",$d->{'name'}," ",$d->{'value'},
		      "&gt;",$ed2,"\n";
		&show_directives($d->{'members'}, $ind+1);
		print " " x $ind;
		print "&lt;/",$d->{'name'},"&gt;\n";
		}
	elsif ($_[1] || !$access_types{$t->{'type'}}) {
		# Directives in section are not editable
		&print_line($d, [ $d->{'name'}," ",$d->{'value'} ], $ind);
		}
	else {
		next if (!$t);
		&print_line($d, [ $d->{'name'}," ",$d->{'value'} ], $ind,
			    "edit_virt.cgi?virt=$in{'virt'}&type=$t->{'type'}");
		}
	}
}

  07070100015e1e000081e40000000000000002000000013ac03898000007e2000000200000000000000000000000000000001700000003reloc/apache/start.cgi    #!/usr/local/bin/perl
# start.cgi
# Start apache with the server root from the config files

require './apache-lib.pl';
&ReadParse();
&error_setup($text{'start_err'});

$access{'stop'} || &error($text{'start_ecannot'});
if ($config{'start_cmd'}) {
	# use the configured start command
	if ($config{'stop_cmd'}) {
		# execute the stop command to clear lock files
		&system_logged("$config{'stop_cmd'} >/dev/null 2>&1");
		}
	$out = &backquote_logged("$config{'start_cmd'} 2>&1");
	if ($?) {
		&error("<pre>$out</pre>");
		}
	}
elsif (-x $config{'apachectl_path'}) {
	# use the apachectl program
	$out = &backquote_logged("$config{'apachectl_path'} start 2>&1");
	if ($out =~ /\S/ && $out !~ /httpd started/) {
		&error("<pre>$out</pre>");
		}
	}
else {
	# start manually
	$cmd = "$config{'httpd_path'} -d $config{'httpd_dir'}";
	if ($config{'httpd_conf'}) { $cmd .= " -f $config{'httpd_conf'}"; }
	$temp = &tempname();
	$rv = &system_logged("$cmd >$temp 2>&1 </dev/null");
	$out = `cat $temp`;
	unlink($temp);
	if ($out =~ /\S/ && $out !~ /httpd started/) {
		&error("<pre>$cmd :\n$out</pre>");
		}
	}

# check if startup was successful. Later apache version return no
# error code, but instead fail to start and write the reason to
# the error log file!
sleep(3);
$conf = &get_config();
$pidfilestr = &find_directive_struct("PidFile", $conf);
$pidfile = $pidfilestr ? $pidfilestr->{'words'}->[0]
		       : "logs/httpd.pid";
$pidfile = &server_root($pidfile, $conf);
if (!open(PID, $pidfile) || <PID> !~ /(\d+)/ || !kill(0, $1)) {
	# Not running..  find out why
	$errorlogstr = &find_directive_struct("ErrorLog", $conf);
	$errorlog = $errorlogstr ? $errorlogstr->{'words'}->[0]
				 : "logs/error_log";
	if ($out =~ /\S/) {
		&error("<pre>$out</pre>");
		}
	elsif ($errorlog eq 'syslog' || $errorlog =~ /^\|/) {
		&error($text{'start_eunknown'});
		}
	else {
		$errorlog = &server_root($errorlog, $conf);
		$out = `tail -5 $errorlog`;
		&error("<pre>$out</pre>");
		}
	}
&webmin_log("start");
&redirect($in{'redir'});

  07070100015e1f000081e40000000000000002000000013ac0389700000416000000200000000000000000000000000000001600000003reloc/apache/stop.cgi #!/usr/local/bin/perl
# stop.cgi
# Stop the running apache server

require './apache-lib.pl';
&ReadParse();
&error_setup($text{'stop_err'});

$access{'stop'} || &error($text{'stop_ecannot'});
if ($config{'stop_cmd'}) {
	# use the configured stop command
	$out = &backquote_logged("$config{'stop_cmd'} 2>&1");
	if ($?) {
		&error("<tt>$out</tt>");
		}
	}
elsif (-x $config{'apachectl_path'}) {
	# use the apachectl program
	$out = &backquote_logged("$config{'apachectl_path'} stop 2>&1");
	if ($out !~ /httpd stopped/) {
		&error("<tt>$out</tt>");
		}
	}
else {
	# kill the process
	$conf = &get_config();
	$pidfilestr = &find_directive_struct("PidFile", $conf);
	$pidfile = $pidfilestr ? $pidfilestr->{'words'}->[0]
			       : "logs/httpd.pid";
	$pidfile = &server_root($pidfile, $conf);

	open(PID, $pidfile) || &error(&text('stop_epid', $pidfile));
	<PID> =~ /(\d+)/ || &error(&text('stop_epid2', $pidfile));
	close(PID);
	&kill_logged('TERM', $1) || &error(&text('stop_esig', $1));
	}
sleep(1);
&webmin_log("stop");
&redirect($in{'redir'});

  07070100015e20000081a40000000000000002000000013ac03898000003c1000000200000000000000000000000000000002100000003reloc/apache/useradmin_update.pl  
do './apache-lib.pl';
do './auth-lib.pl';

foreach $k (keys %config) {
	if ($k =~ /^sync_(.*)$/) {
		push(@sync, [ $1, $config{$k} ]);
		}
	}

# useradmin_create_user(&details)
sub useradmin_create_user
{
foreach $s (@sync) {
	if ($s->[1] =~ /create/ && !&get_authuser($s->[0], $_[0]->{'user'})) {
		&lock_file($s->[0]);
		&create_authuser($s->[0], { 'user' => $_[0]->{'user'},
					    'pass' => $_[0]->{'pass'} });
		&unlock_file($s->[0]);
		}
	}
}

# useradmin_delete_user(&details)
sub useradmin_delete_user
{
foreach $s (@sync) {
	if ($s->[1] =~ /delete/) {
		&lock_file($s->[0]);
		&delete_authuser($s->[0], $_[0]->{'user'});
		&unlock_file($s->[0]);
		}
	}
}

# useradmin_modify_user(&details)
sub useradmin_modify_user
{
foreach $s (@sync) {
	if ($s->[1] =~ /modify/) {
		&lock_file($s->[0]);
		&save_authuser($s->[0], $_[0]->{'olduser'},
			       { 'user' => $_[0]->{'user'},
				 'pass' => $_[0]->{'pass'} });
		&unlock_file($s->[0]);
		}
	}
}

1;

   07070100015e21000081e40000000000000002000000013ac0389700000c2b000000200000000000000000000000000000001c00000003reloc/apache/virt_index.cgi   #!/usr/local/bin/perl
# virt_index.cgi
# Display a menu for some specific virtual server, or the default server

require './apache-lib.pl';
&ReadParse();
($conf, $v) = &get_virtual_config($in{'virt'});
&can_edit_virt($v) || &error($text{'virt_ecannot'});
&header($text{'virt_title'}, "", undef, undef, undef, undef, &restart_button());

# Display header and icons
print "<center><font size=+2>",&text('virt_header', &virtual_name($v)),
      "</font></center>\n";
print "<hr>\n";
print "<h3>$text{'virt_opts'}</h3>\n";
if ($in{'virt'} && $access{'vaddr'}) {
	$vr_icon = { "icon" => "images/virt.gif",
		     "name" => $text{'virt_conf'},
		     "link" => "edit_vserv.cgi?virt=$in{'virt'}" };
	}
$sw_icon = { "icon" => "images/show.gif",
	     "name" => $text{'virt_show'},
	     "link" => "show.cgi?virt=$in{'virt'}" };
if ($in{'virt'} && $access{'types'} eq '*') {
	$ed_icon = { "icon" => "images/edit.gif",
		     "name" => $text{'virt_edit'},
		     "link" => "manual_form.cgi?virt=$in{'virt'}" };
	}
&config_icons("virtual", "edit_virt.cgi?virt=$in{'virt'}&",
	      $vr_icon ? $vr_icon : (), $sw_icon,
	      $ed_icon ? $ed_icon : ());

# Display per-directory options
@dir = ( &find_directive_struct("Directory", $conf) ,
         &find_directive_struct("DirectoryMatch", $conf),
	 &find_directive_struct("Files", $conf),
	 &find_directive_struct("FilesMatch", $conf),
	 &find_directive_struct("Location", $conf),
	 &find_directive_struct("LocationMatch", $conf) );
if (@dir) {
	print "<hr>\n";
	print "<h3>$text{'dir_title'}</h3>\n";
	print "<table width=100% cellpadding=5>\n";
	foreach $d (@dir) {
		if ($i%3 == 0) { print "<tr>\n"; }
		print "<td valign=top align=center width=33%>\n";
		$what = &dir_name($d);
		substr($what, 0, 1) = uc(substr($what, 0, 1));
		&generate_icon("images/dir.gif", $what,
		       	"dir_index.cgi?idx=".&indexof($d, @$conf).
			"&virt=$in{'virt'}");
		print "</td>\n";
		if ($i++%3 == 2) { print "</tr>\n"; }
		}
	while($i++%3) { print "<td width=33%></td>\n"; }
	print "</table>\n";
	}

print "<form action=create_dir.cgi>\n";
print "<input type=hidden name=virt value=$in{'virt'}>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'virt_adddir'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";
print "<tr> <td><b>$text{'virt_type'}</b></td> <td><select name=type>\n";
foreach $t ($httpd_modules{'core'} >= 1.2 ? ("Directory", "Files", "Location")
					  : ("Directory", "Location")) {
	print "<option>$text{'virt_'.$t}\n";
	}
print "</select></td>\n";
if ($httpd_modules{'core'} >= 1.2) {
	print "<td><b>$text{'virt_regexp'}</b></td>\n";
	print "<td><input type=radio name=regexp value=0 checked> ",
	      "$text{'virt_exact'}\n";
	print "<input type=radio name=regexp value=1> ",
	      "$text{'virt_re'}</td> </tr>\n";
	}
else { print "<td></td> </tr>\n"; }
print "<tr> <td><b>$text{'virt_path'}</b></td>\n";
print "<td><input name=path size=40></td>\n";
print "<td colspan=2 align=right>",
      "<input type=submit value=\"$text{'create'}\"></td> </tr>\n";
print "</table></td></tr></table></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

 0707010001fb07000041ed0000000000000001000000043ac03ba000000000000000200000000000000000000000000000000c00000003reloc/bind8   0707010001fb08000081a40000000000000002000000013ac0389b000014f9000000200000000000000000000000000000001c00000003reloc/bind8/acl_security.pl   
require './bind8-lib.pl';

# acl_security_form(&options)
# Output HTML for editing security options for the bind8 module
sub acl_security_form
{
print "<tr> <td valign=top rowspan=4><b>$text{'acl_zones'}</b></td>\n";
print "<td rowspan=4 valign=top>\n";
printf "<input type=radio name=zones_def value=1 %s> %s\n",
	$_[0]->{'zones'} eq '*' ? 'checked' : '', $text{'acl_zall'};
printf "<input type=radio name=zones_def value=0 %s> %s<br>\n",
	$_[0]->{'zones'} eq '*' ? '' : 'checked', $text{'acl_zsel'};
print "<select name=zones multiple size=4 width=15>\n";
local $conf = &get_config();
local @zones = grep { $_->{'value'} ne "." }
		    &find("zone", $conf);
local ($z, %zcan);
map { $zcan{$_}++ } split(/\s+/, $_[0]->{'zones'});
foreach $z (sort { $a->{'value'} cmp $b->{'value'} } @zones) {
	printf "<option value='%s' %s>%s\n",
		$z->{'value'},
		$zcan{$z->{'value'}} ? "selected" : "",
		&arpa_to_ip($z->{'value'});
	}
print "</select></td>\n";

print "<td><b>$text{'acl_master'}</b></td> <td>\n";
printf "<input type=radio name=master value=1 %s> $text{'yes'}\n",
	$_[0]->{'master'} ? "checked" : "";
printf "<input type=radio name=master value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'master'} ? "" : "checked";

print "<tr> <td><b>$text{'acl_slave'}</b></td> <td>\n";
printf "<input type=radio name=slave value=1 %s> $text{'yes'}\n",
	$_[0]->{'slave'} ? "checked" : "";
printf "<input type=radio name=slave value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'slave'} ? "" : "checked";

print "<tr> <td><b>$text{'acl_forward'}</b></td> <td>\n";
printf "<input type=radio name=forward value=1 %s> $text{'yes'}\n",
	$_[0]->{'forward'} ? "checked" : "";
printf "<input type=radio name=forward value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'forward'} ? "" : "checked";

print "<tr> <td><b>$text{'acl_defaults'}</b></td> <td>\n";
printf "<input type=radio name=defaults value=1 %s> $text{'yes'}\n",
	$_[0]->{'defaults'} ? "checked" : "";
printf "<input type=radio name=defaults value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'defaults'} ? "" : "checked";

print "<tr> <td><b>$text{'acl_reverse'}</b></td> <td>\n";
printf "<input type=radio name=reverse value=1 %s> $text{'yes'}\n",
	$_[0]->{'reverse'} ? "checked" : "";
printf "<input type=radio name=reverse value=0 %s> $text{'no'}</td>\n",
	$_[0]->{'reverse'} ? "" : "checked";

print "<td><b>$text{'acl_multiple'}</b></td> <td>\n";
printf "<input type=radio name=multiple value=1 %s> $text{'yes'}\n",
	$_[0]->{'multiple'} ? "checked" : "";
printf "<input type=radio name=multiple value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'multiple'} ? "" : "checked";

print "<tr> <td><b>$text{'acl_ro'}</b></td> <td>\n";
printf "<input type=radio name=ro value=1 %s> $text{'yes'}\n",
	$_[0]->{'ro'} ? "checked" : "";
printf "<input type=radio name=ro value=0 %s> $text{'no'}</td>\n",
	$_[0]->{'ro'} ? "" : "checked";

print "<td><b>$text{'acl_apply'}</b></td> <td>\n";
printf "<input type=radio name=apply value=1 %s> $text{'yes'}\n",
	$_[0]->{'apply'} ? "checked" : "";
printf "<input type=radio name=apply value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'apply'} ? "" : "checked";

print "<tr> <td><b>$text{'acl_file'}</b></td> <td>\n";
printf "<input type=radio name=file value=1 %s> $text{'yes'}\n",
	$_[0]->{'file'} ? "checked" : "";
printf "<input type=radio name=file value=0 %s> $text{'no'}</td>\n",
	$_[0]->{'file'} ? "" : "checked";

print "<td><b>$text{'acl_params'}</b></td> <td>\n";
printf "<input type=radio name=params value=1 %s> $text{'yes'}\n",
	$_[0]->{'params'} ? "checked" : "";
printf "<input type=radio name=params value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'params'} ? "" : "checked";

print "<tr> <td><b>$text{'acl_opts'}</b></td> <td>\n";
printf "<input type=radio name=opts value=1 %s> $text{'yes'}\n",
	$_[0]->{'opts'} ? "checked" : "";
printf "<input type=radio name=opts value=0 %s> $text{'no'}</td>\n",
	$_[0]->{'opts'} ? "" : "checked";

print "<td><b>$text{'acl_delete'}</b></td> <td>\n";
printf "<input type=radio name=delete value=1 %s> $text{'yes'}\n",
	$_[0]->{'delete'} ? "checked" : "";
printf "<input type=radio name=delete value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'delete'} ? "" : "checked";

print "<td><b>$text{'acl_findfree'}</b></td> <td>\n";
printf "<input type=radio name=findfree value=1 %s> $text{'yes'}\n",
	$_[0]->{'findfree'} ? "checked" : "";
printf "<input type=radio name=findfree value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'findfree'} ? "" : "checked";

print "<tr> <td><b>$text{'acl_dir'}</b></td>\n";
printf "<td colspan=3><input name=dir size=30 value='%s'> %s</td> </tr>\n",
	$_[0]->{'dir'}, &file_chooser_button("dir", 1);
}

# acl_security_save(&options)
# Parse the form for security options for the bind8 module
sub acl_security_save
{
if ($in{'zones_def'}) {
	$_[0]->{'zones'} = "*";
	}
else {
	$_[0]->{'zones'} = join(" ", split(/\0/, $in{'zones'}));
	}
$_[0]->{'master'} = $in{'master'};
$_[0]->{'slave'} = $in{'slave'};
$_[0]->{'forward'} = $in{'forward'};
$_[0]->{'defaults'} = $in{'defaults'};
$_[0]->{'reverse'} = $in{'reverse'};
$_[0]->{'multiple'} = $in{'multiple'};
$_[0]->{'ro'} = $in{'ro'};
$_[0]->{'apply'} = $in{'apply'};
$_[0]->{'dir'} = $in{'dir'};
$_[0]->{'file'} = $in{'file'};
$_[0]->{'params'} = $in{'params'};
$_[0]->{'opts'} = $in{'opts'};
$_[0]->{'delete'} = $in{'delete'};
$_[0]->{'findfree'} = $in{'findfree'};
}

   0707010001fb09000081a40000000000000002000000013ac0389a00005bfe000000200000000000000000000000000000001900000003reloc/bind8/bind8-lib.pl  # bind8-lib.pl
# Common functions for bind8 config files

do '../web-lib.pl';
&init_config();
do './records-lib.pl';

# get_config()
# Returns an array of references to assocs, each containing the details of
# one directive
sub get_config
{
if (!@get_config_cache) {
	@get_config_cache = &read_config_file($config{'named_conf'});
	}
return \@get_config_cache;
}

# get_config_parent()
# Returns a structure containing the top-level config as members
sub get_config_parent
{
return { 'file' => $config{'named_conf'},
	 'type' => 1,
	 'line' => 0,
	 'eline' => $lines_count{$config{'named_conf'}},
	 'members' => &get_config() };
}

# read_config_file(file, [expand includes])
# Reads a config file and returns an array of values
sub read_config_file
{
local($lnum, $line, $cmode, @ltok, @lnum, @tok,
      @rv, $i, $t, $j, $ifile, @inc, $str);
$lnum = 0;
open(FILE, $config{'chroot'}.$_[0]);
while($line = <FILE>) {
	# strip comments
	$line =~ s/\r|\n//g;
	$line =~ s/#.*$//g;
	$line =~ s/\/\/.*$//g;
	$line =~ s/\/\*.*\*\///g;
	while(1) {
		if (!$cmode && $line =~ /\/\*/) {
			# start of a C-style comment
			$cmode = 1;
			$line =~ s/\/\*.*$//g;
			}
		elsif ($cmode) {
			if ($line =~ /\*\//) {
				# end of comment
				$cmode = 0;
				$line =~ s/^.*\*\///g;
				}
			else { $line = ""; last; }
			}
		else { last; }
		}

	# split line into tokens
	undef(@ltok);
	while(1) {
		if ($line =~ /^\s*\"([^"]*)"(.*)$/) {
			push(@ltok, $1); $line = $2;
			}
		elsif ($line =~ /^\s*([{};])(.*)$/) {
			push(@ltok, $1); $line = $2;
			}
		elsif ($line =~ /^\s*([^{}; \t]+)(.*)$/) {
			push(@ltok, $1); $line = $2;
			}
		else { last; }
		}
	foreach $t (@ltok) {
		push(@tok, $t); push(@lnum, $lnum);
		}
	$lnum++;
	}
close(FILE);
$lines_count{$_[0]} = $lnum;

# parse tokens into data structures
$i = 0; $j = 0;
while($i < @tok) {
	$str = &parse_struct(\@tok, \@lnum, \$i, $j++, $_[0]);
	if ($str) { push(@rv, $str); }
	}

# expand include directives
for($i=0; $i<@rv; $i++) {
	if (lc($rv[$i]->{'name'}) eq "include" && !$_[1]) {
		# found one.. replace the include directive with it
		$ifile = $rv[$i]->{'value'};
		if ($ifile !~ /^\//) {
			$ifile = &base_directory(\@rv)."/$ifile";
			}
		@inc = &read_config_file($ifile, 1);

		# update index of included structures
		for($j=0; $j<@inc; $j++) {
			$inc[$j]->{'index'} += $rv[$i]->{'index'};
			}

		# update index of structures after include
		for($j=$i+1; $j<@rv; $j++) {
			$rv[$j]->{'index'} += scalar(@inc) - 1;
			}
		splice(@rv, $i--, 1, @inc);
		}
	}

return @rv;
}

# parse_struct(&tokens, &lines, &line_num, index, file)
# A structure can either have one value, or a list of values.
# Pos will end up at the start of the next structure
sub parse_struct
{
local(%str, $i, $t, @vals, $str);
$i = ${$_[2]};
$str{'name'} = lc($_[0]->[$i]);
$str{'line'} = $_[1]->[$i];
while(1) {
	$t = $_[0]->[++$i];
	if ($t eq "{" || $t eq ";" || $t eq "}") { last; }
	elsif (!defined($t)) { ${$_[2]} = $i; return undef; }
	else { push(@vals, $t); }
	}
$str{'values'} = \@vals;
$str{'value'} = $vals[0];
$str{'index'} = $_[3];
$str{'file'} = $_[4];
if ($t eq "{") {
	# contains sub-structures.. parse them
	local(@mems, $j);
	$i++;		# skip {
	$str{'type'} = 1;
	$j = 0;
	while($_[0]->[$i] ne "}") {
		if (!defined($_[0]->[$i])) { ${$_[2]} = $i; return undef; }
		$str = &parse_struct($_[0], $_[1], \$i, $j++, $_[4]);
		if ($str) { push(@mems, $str); }
		}
	$str{'members'} = \@mems;
	$i += 2;	# skip trailing } and ;
	}
else {
	# only a single value..
	$str{'type'} = 0;
	if ($t eq ";") {
		$i++;	# skip trailing ;
		}
	}
$str{'eline'} = $_[1]->[$i-1];	# ending line is the line number the trailing
				# ; is on
${$_[2]} = $i;
return \%str;
}

# find(name, &array)
sub find
{
local($c, @rv);
foreach $c (@{$_[1]}) {
	if ($c->{'name'} eq $_[0]) {
		push(@rv, $c);
		}
	}
return @rv ? wantarray ? @rv : $rv[0]
           : wantarray ? () : undef;
}

# find_value(name, &array)
sub find_value
{
local(@v);
@v = &find($_[0], $_[1]);
if (!@v) { return undef; }
elsif (wantarray) { return map { $_->{'value'} } @v; }
else { return $v[0]->{'value'}; }
}

# base_directory([&config])
# Returns the base directory for named files
sub base_directory
{
local($opts, $dir, $conf);
$conf = $_[0] ? $_[0] : &get_config();
if (($opts = &find("options", $conf)) &&
    ($dir = &find("directory", $opts->{'members'}))) {
	return $dir->{'value'};
	}
$config{'named_conf'} =~ /^(.*)\/[^\/]+$/;
return $1;
}

# save_directive(&parent, name, &values, indent, [structonly])
# Given a structure containing a directive name, type, values and members
# add, update or remove that directive in config structure and data files.
# Updating of files assumes that there is no overlap between directives -
# each line in the config file must contain part or all of only one directive.
sub save_directive
{
local(@oldv, @newv, $pm, $i, $o, $n, $lref, @nl);
$pm = $_[0]->{'members'};
@oldv = &find($_[1], $pm);
@newv = @{$_[2]};
for($i=0; $i<@oldv || $i<@newv; $i++) {
	if ($i >= @oldv) {
		# a new directive is being added.. put it at the end of
		# the parent
		if (!$_[4]) {
			$lref = &read_file_lines($config{'chroot'}.$_[0]->{'file'});
			@nl = &directive_lines($newv[$i], $_[3]);
			splice(@$lref, $_[0]->{'eline'}, 0, @nl);
			$newv[$i]->{'file'} = $_[0]->{'file'};
			$newv[$i]->{'line'} = $_[0]->{'eline'};
			$newv[$i]->{'eline'} =
				$_[0]->{'eline'} + scalar(@nl) - 1;
			&renumber(&get_config(), $_[0]->{'eline'},
				  $_[0]->{'file'}, scalar(@nl));
			}
		push(@$pm, $newv[$i]);
		}
	elsif ($i >= @newv) {
		# a directive was deleted
		if (!$_[4]) {
			$lref = &read_file_lines($config{'chroot'}.$oldv[$i]->{'file'});
			$ol = $oldv[$i]->{'eline'} - $oldv[$i]->{'line'} + 1;
			splice(@$lref, $oldv[$i]->{'line'}, $ol);
			&renumber(&get_config(), $oldv[$i]->{'eline'},
				  $oldv[$i]->{'file'}, -$ol);
			}
		splice(@$pm, &indexof($oldv[$i], @$pm), 1);
		}
	else {
		# updating some directive
		if (!$_[4]) {
			$lref = &read_file_lines($config{'chroot'}.$oldv[$i]->{'file'});
			@nl = &directive_lines($newv[$i], $_[3]);
			$ol = $oldv[$i]->{'eline'} - $oldv[$i]->{'line'} + 1;
			splice(@$lref, $oldv[$i]->{'line'}, $ol, @nl);
			$newv[$i]->{'file'} = $_[0]->{'file'};
			$newv[$i]->{'line'} = $oldv[$i]->{'line'};
			$newv[$i]->{'eline'} =
				$oldv[$i]->{'line'} + scalar(@nl) - 1;
			&renumber(&get_config(), $oldv[$i]->{'eline'},
				  $oldv[$i]->{'file'}, scalar(@nl) - $ol);
			}
		$pm->[&indexof($oldv[$i], @$pm)] = $newv[$i];
		}
	}
}

# directive_lines(&directive, tabs)
# Renders some directive into a number of lines of text
sub directive_lines
{
local(@rv, $v, $m, $i);
$rv[0] = "\t" x $_[1];
$rv[0] .= "$_[0]->{'name'}";
foreach $v (@{$_[0]->{'values'}}) {
	if ($need_quote{$_[0]->{'name'}} && !$i) { $rv[0] .= " \"$v\""; }
	else { $rv[0] .= " $v"; }
	$i++;
	}
if ($_[0]->{'type'}) {
	# multiple values.. include them as well
	$rv[0] .= " {";
	foreach $m (@{$_[0]->{'members'}}) {
		push(@rv, &directive_lines($m, $_[1]+1));
		}
	push(@rv, ("\t" x ($_[1]+1))."}");
	}
$rv[$#rv] .= ";";
return @rv;
}

# renumber(&directives, line, file, count)
# Runs through the given array of directives and increases the line numbers
# of all those greater than some line by the given count
sub renumber
{
local($d);
foreach $d (@{$_[0]}) {
	if ($d->{'file'} eq $_[2]) {
		if ($d->{'line'} > $_[1]) { $d->{'line'} += $_[3]; }
		if ($d->{'eline'} > $_[1]) { $d->{'eline'} += $_[3]; }
		}
	if ($d->{'type'}) {
		&renumber($d->{'members'}, $_[1], $_[2], $_[3]);
		}
	}
}

# choice_input(text, name, &config, [display, option]+)
sub choice_input
{
local($rv, $v, $i, @ops);
$rv = "<td><b>$_[0]</b></td> <td valign=top>";
$v = &find_value($_[1], $_[2]);
for($i=3; $i<@_; $i+=2) {
	$rv .= sprintf "<input type=radio name=%s value='%s' %s> %s\n",
		$_[1], $_[$i+1], $v eq $_[$i+1] ? "checked" : "", $_[$i];
	}
return $rv."</td>\n";
}

# save_choice(name, &parent, indent)
sub save_choice
{
local($nd);
if ($in{$_[0]}) { $nd = { 'name' => $_[0], 'values' => [ $in{$_[0]} ] }; }
&save_directive($_[1], $_[0], $nd ? [ $nd ] : [ ], $_[2]);
}

# addr_match_input(text, name, &config)
# A field for editing a list of addresses, ACLs and partial IP addresses
sub addr_match_input
{
local($v, $rv, $av, @av);
$v = &find($_[1], $_[2]);
$rv = "<td valign=top><b>$_[0]</b></td> <td valign=top>";
$rv .= "<input type=radio name=$_[1]_def value=1 ".
       ($v ? "" : "checked")."> $text{'default'}";
$rv .= "<input type=radio name=$_[1]_def value=0 ".
       ($v ? "checked" : "")."> $text{'listed'}<br>";
foreach $av (@{$v->{'members'}}) { push(@av, $av->{'name'}); }
$rv .= "<textarea name=$_[1] rows=3 cols=15>".
	join("\n", @av)."</textarea></td>\n";
}

# save_addr_match(name, &parent, indent)
sub save_addr_match
{
local($addr, @vals, $dir);
if ($in{"$_[0]_def"}) { &save_directive($_[1], $_[0], [ ], $_[2]); }
else {
	foreach $addr (split(/\s+/, $in{$_[0]})) {
		push(@vals, { 'name' => $addr });
		}
	$dir = { 'name' => $_[0], 'type' => 1, 'members' => \@vals };
	&save_directive($_[1], $_[0], [ $dir ], $_[2]);
	}
}

# address_input(text, name, &config, type)
sub address_input
{
local($v, $rv, $av, @av);
$v = &find($_[1], $_[2]);
foreach $av (@{$v->{'members'}}) { push(@av, $av->{'name'}); }
if ($_[3] == 0) {
	# text area
	$rv = "<td valign=top><b>$_[0]</b></td> <td valign=top>";
	$rv .= "<textarea name=$_[1] rows=3 cols=15>".
		join("\n", @av)."</textarea></td>\n";
	}
else {
	$rv = "<td valign=top><b>$_[0]</b></td> <td colspan=3 valign=top>";
	$rv .= "<input name=$_[1] size=50 value=\"".join(' ',@av)."\"></td>\n";
	}
return $rv;
}

sub save_address
{
local($addr, @vals, $dir);
foreach $addr (split(/\s+/, $in{$_[0]})) {
	&check_ipaddress($addr) || &error(&text('eip', $addr));
	push(@vals, { 'name' => $addr });
	}
$dir = { 'name' => $_[0], 'type' => 1, 'members' => \@vals };
&save_directive($_[1], $_[0], @vals ? [ $dir ] : [ ], $_[2]);
}

# opt_input(text, name, &config, default, size, units)
sub opt_input
{
local($v, $rv, $n);
$v = &find($_[1], $_[2]);
($n = $_[1]) =~ s/[^A-Za-z0-9_]/_/g;
$rv = "<td valign=top><b>$_[0]</b></td> <td nowrap valign=top";
$rv .= $_[4] > 30 ? " colspan=3>\n" : ">\n";
$rv .= sprintf "<input type=radio name=${n}_def value=1 %s> $_[3]\n",
	$v ? "" : "checked";
$rv .= sprintf "<input type=radio name=${n}_def value=0 %s> ",
	$v ? "checked" : "";
$rv .= sprintf "<input name=$n size=$_[4] value=\"%s\"> $_[5]</td>\n",
	$v ? $v->{'value'} : "";
return $rv;
}

sub save_opt
{
local($dir, $n);
($n = $_[0]) =~ s/[^A-Za-z0-9_]/_/g;
if ($in{"${n}_def"}) { &save_directive($_[2], $_[0], [ ], $_[3]); }
elsif ($err = &{$_[1]}($in{$n})) {
	&error($err);
	}
else {
	$dir = { 'name' => $_[0], 'values' => [ $in{$n} ] };
	&save_directive($_[2], $_[0], [ $dir ], $_[3]);
	}
}

# directives that need their value to be quoted
@need_quote = ( "file", "zone", "pid-file", "statistics-file",
	        "dump-file", "named-xfer" );
foreach $need (@need_quote) {
	$need_quote{$need}++;
	}

1;

# find_reverse(address)
# Returns the zone and record structures for the PTR record for some address
sub find_reverse
{
local($conf, @zl, $rev, $z, $revconf, $revfile, $revrec, @revrecs, $addr, $rr,
      @octs, $i, @hexs, $ipv6, @zero);

#&error($_[0]);
# find reverse domain
$conf = &get_config();
@zl = &find("zone", $conf);
$ipv6 = $config{'support_aaaa'} && &check_ip6address($_[0]);
if ($ipv6) {
	@zero = (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
	$addr = &expandall_ip6($_[0]);
	$addr =~ s/://g;
	@hexs = split('', $addr);
	DOMAIN: for($i=30; $i>=0; $i--) {
		$addr = join(':',split(/(.{4})/,join('', (@hexs[0..$i],@zero[$i..30]))));
		$addr =~ s/::/:/g;
		$addr =~ s/(^:|:$)//g;
		$rev = &net_to_ip6int($addr, 4*($i+1));
		$rev =~ s/\.$//g;
		foreach $z (@zl) {
			if (lc($z->{'value'}) eq $rev &&
			    ($typed = &find("type", $z->{'members'})) &&
			    $typed->{'value'} eq "master") {
				# found the reverse master domain
				$revconf = $z;
				last DOMAIN;
				}
			}
		}
	}
else {
	@octs = split(/\./, $_[0]);
	DOMAIN: for($i=2; $i>=0; $i--) {
		$rev = &ip_to_arpa(join('.', @octs[0..$i]));
		$rev =~ s/\.$//g;
		foreach $z (@zl) {
			if (lc($z->{'value'}) eq $rev &&
			    ($typed = &find("type", $z->{'members'})) &&
			    $typed->{'value'} eq "master") {
				# found the reverse master domain
				$revconf = $z;
				last DOMAIN;
				}
			}
		}
	}

# find reverse record
if ($revconf) {
	$revfile = &find("file", $revconf->{'members'})->{'value'};
	@revrecs = &read_zone_file($revfile, $revconf->{'value'});
	if ($ipv6) {
		$addr = &net_to_ip6int($_[0], 128);
		}
	else {
		$addr = &ip_to_arpa($_[0]);
		}
	foreach $rr (@revrecs) {
		if ($rr->{'type'} eq "PTR" &&
		    lc($rr->{'name'}) eq lc($addr)) {
			# found the reverse record
			$revrec = $rr;
			last;
			}
		}
	}
return ($revconf, $revfile, $revrec);
}

# find_forward(address)
# Returns the zone and record structures for the A record for some address
sub find_forward
{
local ($fwdconf, $i, $fwdfile, $fwdrec, $fr, $ipv6);

# find forward domain
local $host = $_[0]; $host =~ s/\.$//;
local $conf = &get_config();
local @zl = &find("zone", $conf);
local @parts = split(/\./, $host);
DOMAIN: for($i=1; $i<@parts; $i++) {
	local $fwd = join(".", @parts[$i .. @parts-1]);
	foreach $z (@zl) {
		local $typed;
		if (lc($z->{'value'}) eq $fwd &&
		    ($typed = &find("type", $z->{'members'})) &&
		    $typed->{'value'} eq "master") {
			# Found the forward master!
			$fwdconf = $z;
			last DOMAIN;
			}
		}
	}

# find forward record
if ($fwdconf) {
	$fwdfile = &find("file", $fwdconf->{'members'})->{'value'};
	local @fwdrecs = &read_zone_file($fwdfile, $fwdconf->{'value'});
	foreach $fr (@fwdrecs) {
		if ($ipv6 ? $fr->{'type'} eq "AAAA" : $fr->{'type'} eq "A" &&
		    $fr->{'name'} eq $_[0]) {
			# found the forward record!
			$fwdrec = $fr;
			last;
			}
		}
	}

return ($fwdconf, $fwdfile, $fwdrec);
}

# can_edit_zone(&access, zone)
sub can_edit_zone
{
local %zcan;
return 1 if ($access{'zones'} eq '*');
foreach (split(/\s+/, $access{'zones'})) {
	return 1 if ($_ eq $_[1]);
	}
return 0;
}

# record_input(zoneindex, type, file, origin, [num], [record])
# Display a form for editing or creating a DNS record
sub record_input
{
local(%rec, @recs, $ttl, $ttlunit);
print "<form action=save_record.cgi>\n";
print "<input type=hidden name=index value='$_[0]'>\n";
print "<input type=hidden name=file value='$_[2]'>\n";
print "<input type=hidden name=origin value='$_[3]'>\n";
print "<input type=hidden name=sort value='$in{'sort'}'>\n";
if (@_ >= 5) {
	print "<input type=hidden name=num value=$_[4]>\n";
	%rec = %{$_[5]};
	}
else { print "<input type=hidden name=new value=1>\n"; }
print "<input type=hidden name=type value=$_[1]>\n";
print "<table border>\n";
print "<tr $tb><td><b>",&text(@_ >= 5 ? 'edit_edit' : 'edit_add',
			      $text{"edit_$_[1]"}),"</b></td> </tr>\n";
print "<tr $cb><td><table>\n";

if ($_[1] eq "PTR") {
	print "<tr> <td><b>$text{'edit_addr'}</b></td>\n";
	printf "<td><input name=name value=\"%s\" size=30></td>\n",
		!%rec && $_[3] =~ /^(\d+)\.(\d+)\.(\d+)\.in-addr/ ?
			"$3.$2.$1." : &ip6int_to_net(&arpa_to_ip($rec{'name'}));
	}
elsif ($_[1] eq "NS") {
	print "<tr> <td><b>$text{'edit_zonename'}</b></td>\n";
	print "<td><input name=name value=\"$rec{'name'}\" size=30></td>\n";
	}
else {
	print "<tr> <td><b>$text{'edit_name'}</b></td>\n";
	print "<td><input name=name value=\"$rec{'name'}\" size=30></td>\n";
	}
if ($rec{'ttl'} =~ /^(\d+)([SMHDW]?)$/i) {
	$ttl = $1; $ttlunit = $2;
	}
else {
	$ttl = $rec{'ttl'}; $ttlunit = "";
	}
print "<td><b>$text{'edit_ttl'}</b></td>\n";
printf "<td><input type=radio name=ttl_def value=1 %s> $text{'default'}\n",
	defined($rec{'ttl'}) ? "" : "checked";
printf "<input type=radio name=ttl_def value=0 %s>\n",
	defined($rec{'ttl'}) ? "checked" : "";
print "<input name=ttl size=8 value=\"$ttl\">\n";
&time_unit_choice("ttlunit", $ttlunit);
print "</td> </tr>\n";

@v = @{$rec{'values'}};
if ($_[1] eq "A" || $_[1] eq "AAAA") {
	print "<tr> <td><b>$text{'value_A1'}</b></td>\n";
	print "<td><input name=value0 size=20 value=\"$v[0]\"></td> </tr>\n";
	if (@_ >= 5) {
		print "<input type=hidden name=oldname ",
		      "value=\"$rec{'name'}\">\n";
		print "<input type=hidden name=oldvalue0 value=\"$v[0]\">\n";
		}
	}
elsif ($_[1] eq "NS") {
	print "<tr> <td><b>$text{'value_NS1'}</b></td>\n";
	print "<td colspan=3><input name=value0 size=30 value=\"$v[0]\">\n";
	print "($text{'edit_cnamemsg'})</td> </tr>\n";
	}
elsif ($_[1] eq "CNAME") {
	print "<tr> <td><b>$text{'value_CNAME1'}</b></td>\n";
	print "<td colspan=3><input name=value0 size=30 value=\"$v[0]\">\n";
	print "($text{'edit_cnamemsg'})</td> </tr>\n";
	}
elsif ($_[1] eq "MX") {
	print "<tr> <td><b>$text{'value_MX2'}</b></td>\n";
	print "<td><input name=value1 size=30 value=\"$v[1]\"></td>\n";
	print "<td><b>$text{'value_MX1'}</b></td>\n";
	print "<td><input name=value0 size=8 value=\"$v[0]\"></td> </tr>\n";
	}
elsif ($_[1] eq "HINFO") {
	print "<tr> <td><b>$text{'value_HINFO1'}</b></td>\n";
	print "<td><input name=value0 size=20 value=\"$v[0]\"></td>\n";
	print "<td><b>$text{'value_HINFO2'}</b></td>\n";
	print "<td><input name=value1 size=20 value=\"$v[1]\"></td> </tr>\n";
	}
elsif ($_[1] eq "TXT") {
	print "<tr> <td><b>$text{'value_TXT1'}</b></td>\n";
	print "<td><input name=value0 size=30 value=\"$v[0]\"></td> </tr>\n";
	}
elsif ($_[1] eq "WKS") {
	print "<tr> <td><b>$text{'value_WKS1'}</b></td>\n";
	print "<td><input name=value0 size=15 value=\"$v[0]\"></td>\n";
	print "<td><b>$text{'value_WKS2'}</b></td>\n";
	print "<td><select name=value1>\n";
	printf "<option %s>TCP\n", $v[1] =~ /tcp/ ? "selected" : "";
	printf "<option %s>UDP\n", $v[1] =~ /udp/ ? "selected" : "";
	print "</select></td>\n";
	print "<tr> <td valign=top><b>$text{'value_WKS3'}</b></td>\n";
	print "<td><textarea name=value2 rows=3 cols=20 wrap>",
		join(' ', @v[2..$#v]),"</textarea></td> </tr>\n";
	}
elsif ($_[1] eq "RP") {
	print "<tr> <td><b>$text{'value_RP1'}</b></td>\n";
	$v[0] = &dotted_to_email($v[0]);
	print "<td><input name=value0 size=20 value=\"$v[0]\"></td>\n";
	print "<td><b>$text{'value_RP2'}</b></td>\n";
	print "<td><input name=value1 size=30 value=\"$v[1]\"></td> </tr>\n";
	}
elsif ($_[1] eq "PTR") {
	print "<tr> <td><b>$text{'value_PTR1'}</b></td>\n";
	print "<td><input name=value0 size=30 value=\"$v[0]\"></td> </tr>\n";
	if (@_ >= 5) {
		print "<input type=hidden name=oldname ",
		      "value=\"$rec{'name'}\">\n";
		print "<input type=hidden name=oldvalue0 value=\"$v[0]\">\n";
		}
	}
elsif ($_[1] eq "LOC") {
	print "<tr> <td><b>$text{'value_LOC1'}</b></td>\n";
	printf "<td colspan=3><input name=value0 size=45 value=\"%s\"></td> </tr>\n", join(" ", @v);
	}
if ($_[1] ne "WKS") {
	printf "<tr> <td><b>%s</b></td>\n",
		$config{'allow_comments'} ? $text{'edit_comment'} : "";
	printf "<td><input %s name=comment size=30 value=\"%s\"></td> </tr>\n",
		$config{'allow_comments'} ? "" : "type=hidden", $rec{'comment'};
	}
if ($_[1] eq "A" || $_[1] eq "AAAA") {
	print "<tr> <td><b>$text{'edit_uprev'}</b></td>\n";
	printf "<td><input type=radio name=rev value=1 %s> $text{'yes'}\n",
		$config{'rev_def'} ? '' : 'checked';
	printf "<input type=radio name=rev value=0 %s> $text{'no'}</td>\n",
		$config{'rev_def'} ? 'checked' : '';
	}
elsif ($_[1] eq "PTR") {
	print "<tr> <td><b>$text{'edit_upfwd'}</b></td>\n";
	printf "<td><input type=radio name=fwd value=1 %s> $text{'yes'}\n",
		$config{'rev_def'} ? '' : 'checked';
	printf "<input type=radio name=fwd value=0 %s> $text{'no'}</td>\n",
		$config{'rev_def'} ? 'checked' : '';
	}
else { print "<tr> <td colspan=2></td>\n"; }
print "<td colspan=2 align=right>\n";
local %a = &get_module_acl();
if (!$a{'ro'}) {
	if (@_ >= 5) {
		print "<input type=submit value=\"$text{'save'}\">\n";
		print "<input type=submit name=delete ",
		      "value=\"$text{'delete'}\">\n";
		}
	else { print "<input type=submit value=\"$text{'create'}\">\n"; }
	}
print "</td></tr></table></td></tr></table></form>\n";
}

sub zones_table
{
local($i);
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'index_zone'}</b></td> ",
      "<td><b>$text{'index_type'}</b></td> </tr>\n";
for($i=0; $i<@{$_[0]}; $i++) {
	print "<tr $cb>\n";
	print "<td><a href=\"$_[0]->[$i]\">$_[1]->[$i]</a></td>\n";
	print "<td>$_[2]->[$i]</td>\n";
	print "</tr>\n";
	}
print "</table>\n";
}

# convert_illegal(text)
# Convert text containing special HTML characters to properly display it.
sub convert_illegal
{
$_[0] =~ s/&/&amp;/g;
$_[0] =~ s/>/&gt;/g;
$_[0] =~ s/</&lt;/g;
$_[0] =~ s/"/&quot;/g;
$_[0] =~ s/ /&nbsp;/g;
return $_[0];
}

sub check_net_ip
{
local($j, $arg = $_[0]);
if ($arg !~ /^(\d{1,3}\.){0,3}([0-9\-]+)$/) {
	return 0;
	}
foreach $j (split(/\./, $arg)) {
	$j =~ /^(\d+)-(\d+)$/ && $1 < 255 && $2 < 255 ||
		$j <= 255 || return 0;
	}
return 1;
}

# expand_ip6(ip)
# Transform compact (with ::) IPv6 address to the unique expanded form
# (without :: and leading zeroes in all parts) 
sub expand_ip6
{
local($n);
for($n = 6 - ($_[0] =~ s/([^:]):(?=[^:])/$1:/g); $n > 0; $n--) {
	$_[0] =~ s/::/:0::/;
	}
$_[0] =~ s/::/:/;
$_[0] =~ s/^:/0:/;
$_[0] =~ s/:$/:0/;
$_[0] =~ s/(:|^)0(?=\w)/$1/;
$_[0] =~ tr/[A-Z]/[a-z]/;
return $_[0];
}

# expandall_ip6(ip)
# Transform IPv6 address to the expanded form containing all internal 0's 
sub expandall_ip6
{
&expand_ip6($_[0]);
$_[0] =~ s/(:|^)(\w{3})(?=:|$)/:0$2/g;
$_[0] =~ s/(:|^)(\w{2})(?=:|$)/:00$2/g;
$_[0] =~ s/(:|^)(\w)(?=:|$)/:000$2/g;
return $_[0];
}

# check_ip6address(ip)
# Check if some IPv6 address is properly formatted
sub check_ip6address
{
local($ip6);
$ip6 = $_[0];
$ip6 = &expand_ip6($ip6);
return ($ip6 =~ /^([\da-f]{1,4}:){7}([\da-f]{1,4})$/i);
}

sub time_unit_choice 
{
print "<select name=$_[0]>\n";
printf "<option %s value=\"\">$text{'seconds'}\n",
       $_[1] =~ /^(S?)$/i ? "selected" : "";
printf "<option %s value=\"M\">$text{'minutes'}\n",
       $_[1] =~ /M/i ? "selected" : "";
printf "<option %s value=\"H\">$text{'hours'}\n",
       $_[1] =~ /H/i ? "selected" : "";
printf "<option %s value=\"D\">$text{'days'}\n",
       $_[1] =~ /D/i ? "selected" : "";
printf "<option %s value=\"W\">$text{'weeks'}\n",
       $_[1] =~ /W/i ? "selected" : "";
print "</select>\n";
}

sub extract_time_units
{
local(@ret);
foreach $j (@_) {
	if ($j =~ /^(\d+)([SMHDW]?)$/is) {
		push(@ret, $2); $j = $1;
		}
	}
return @ret;
}

sub email_to_dotted
{
local $v = $_[0];
$v =~ s/\.$//;
if ($v =~ /^([^.]+)\@(.*)$/) {
	return "$1.$2.";
	}
elsif ($v =~ /^(.*)\@(.*)$/) {
	local ($u, $d) = ($1, $2);
	$u =~ s/\./\\\./g;
	return "\"$u.$d.\"";
	}
else {
	return $v;
	}
}

sub dotted_to_email
{
local $v = $_[0];
if ($v ne ".") {
	$v =~ s/([^\\])\./$1\@/;
	$v =~ s/\\\./\./g;
	$v =~ s/\.$//;
	}
return $v;
}

# set_ownership(file)
sub set_ownership
{
if ($config{'file_owner'}) {
	&system_logged("chown \"$config{'file_owner'}\" $_[0] >/dev/null 2>&1");
	}
if ($config{'file_perms'}) {
	&system_logged("chmod \"$config{'file_perms'}\" $_[0] >/dev/null 2>&1");
	}
}

@cat_list = ( 'default', 'config', 'parser', 'queries',
	      'lame-servers', 'statistics', 'panic', 'update',
	      'ncache', 'xfer-in', 'xfer-out', 'db',
	      'eventlib', 'packet', 'notify', 'cname', 'security',
	      'os', 'insist', 'maintenance', 'load', 'response-checks' );

@syslog_levels = ( 'kern', 'user', 'mail', 'daemon', 'auth', 'syslog',
		   'lpr', 'news', 'uucp', 'cron', 'authpriv', 'ftp',
		   'local0', 'local1', 'local2', 'local3',
		   'local4', 'local5', 'local6', 'local7' );

@severities = ( 'critical', 'error', 'warning', 'notice', 'info',
		'debug', 'dynamic' );

  0707010001fb0a000081e40000000000000002000000013ac0389b0000038e000000200000000000000000000000000000001a00000003reloc/bind8/conf_acls.cgi #!/usr/local/bin/perl
# conf_acls.cgi
# Display global ACLs

require './bind8-lib.pl';
%access = &get_module_acl();
$access{'defaults'} || &error($text{'acls_ecannot'});
&header($text{'acls_title'}, "");
print "<hr>\n";

$conf = &get_config();
@acls = ( &find("acl", $conf), { } );

print "<form action=save_acls.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'acls_name'}</b></td> ",
      "<td><b>$text{'acls_values'}</b></td> </tr>\n";
for($i=0; $i<@acls; $i++) {
	print "<tr $cb>\n";
	printf "<td valign=top><input name=name_$i size=15 value='%s'></td>\n",
		$acls[$i]->{'value'};
	@vals = map { $_->{'name'} } @{$acls[$i]->{'members'}};
	print "<td><textarea rows=2 cols=60 name=values_$i wrap=auto>",
		join(" ", @vals),"</textarea></td> </tr>\n";
	}
print "</table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

  0707010001fb0b000081e40000000000000002000000013ac0389b00000516000000200000000000000000000000000000001b00000003reloc/bind8/conf_files.cgi    #!/usr/local/bin/perl
# conf_files.cgi
# Display global files options

require './bind8-lib.pl';
%access = &get_module_acl();
$access{'defaults'} || &error($text{'files_ecannot'});
&header($text{'files_title'}, "");
print "<hr>\n";

&ReadParse();
$conf = &get_config();
$options = &find("options", $conf);
$mems = $options->{'members'};

print "<form action=save_files.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'files_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
print &opt_input($text{'files_stats'}, "statistics-file", $mems,
		 $text{'default'}, 40, &file_chooser_button("statistics_file"));
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'files_dump'}, "dump-file", $mems,
		 $text{'default'}, 40, &file_chooser_button("dump_file"));
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'files_pid'}, "pid-file", $mems,
		 $text{'default'}, 40, &file_chooser_button("pid_file"));
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'files_xfer'}, "named-xfer", $mems,
		 $text{'default'}, 40, &file_chooser_button("named_xfer"));
print "</tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});


  0707010001fb0c000081e40000000000000002000000013ac0389b000005db000000200000000000000000000000000000002000000003reloc/bind8/conf_forwarding.cgi   #!/usr/local/bin/perl
# conf_forwarding.cgi
# Display global forwarding and transfer options

require './bind8-lib.pl';
%access = &get_module_acl();
$access{'defaults'} || &error($text{'forwarding_ecannot'});
&header($text{'forwarding_title'}, "");
print "<hr>\n";

$conf = &get_config();
$options = &find("options", $conf);
$mems = $options->{'members'};

print "<form action=save_forwarding.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'forwarding_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
print &address_input($text{'forwarding_fwders'}, 'forwarders', $mems, 0);
print "</tr>\n";

print "<tr>\n";
print &choice_input($text{'forwarding_fwd'}, 'forward', $mems,
		    $text{'yes'}, 'first', $text{'no'}, 'only',
		    $text{'default'}, undef);
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'forwarding_max'}, "max-transfer-time-in",
		 $mems, $text{'default'}, 4, $text{'forwarding_minutes'});
print "</tr>\n";

print "<tr>\n";
print &choice_input($text{'forwarding_format'}, 'transfer-format', $mems,
		    $text{'forwarding_one'}, 'one-answer',
		    $text{'forwarding_many'}, 'many-answers',
		    $text{'default'}, undef);
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'forwarding_in'}, "transfers-in",
		 $mems, $text{'default'}, 4);
print "</tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

 0707010001fb0d000081e40000000000000002000000013ac0389b00001a07000000200000000000000000000000000000001d00000003reloc/bind8/conf_logging.cgi  #!/usr/local/bin/perl
# conf_logging.cgi
# Display global logging options

require './bind8-lib.pl';
%access = &get_module_acl();
$access{'defaults'} || &error($text{'logging_ecannot'});
&header($text{'logging_title'}, "");
print "<hr>\n";

&ReadParse();
$conf = &get_config();
$logging = &find("logging", $conf);
$mems = $logging ? $logging->{'members'} : [ ];

print "<form action=save_logging.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'logging_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";
print "<tr> <td valign=top><b>$text{'logging_chans'}</b></td> <td>\n";

# display default channels
@defchans = ( { 'name' => 'default_syslog',
		'syslog' => 'daemon',
		'severity' => 'info' },
	      { 'name' => 'default_debug',
		'file' => 'named.run',
		'severity' => 'dynamic' },
	      { 'name' => 'default_stderr',
		'fd' => 'stderr',
		'severity' => 'info' },
	      { 'name' => 'null',
		'null' => 1 } );
foreach $c (@defchans) {
	print "<table width=100% border><tr><td><table>\n";
	print "<tr> <td><b>$text{'logging_cname'}</b></td>\n";
	print "<td colspan=3><i>$c->{'name'}</i></td> </tr>\n";

	print "<tr> <td><b>$text{'logging_to'}</b></td>\n";
	if ($c->{'syslog'}) {
		print "<td>$text{'logging_syslog'} ",
		      "<i>$c->{'syslog'}</i></td>\n";
		}
	elsif ($c->{'file'}) {
		print "<td>$text{'logging_file'} <i>$c->{'file'}</i></td>\n";
		}
	elsif ($c->{'fd'}) {
		print "<td>$text{'logging_fd'} <i>$c->{'fd'}</i></td>\n";
		}
	else {
		print "<td>$text{'logging_null'}</td>\n";
		}
	print "</tr>\n";

	print "<tr> <td><b>$text{'logging_sev'}</b></td>\n";
	if ($c->{'severity'}) {
		print "<td><i>$c->{'severity'}</i></td> </tr>\n";
		}
	else {
		print "<td><i>$text{'logging_any'}</i></td> </tr>\n";
		}
	print "</table></td></tr></table><br>\n";
	}

# display user-defined channels
@chans = &find("channel", $mems);
@channames = ( (map { $_->{'value'} } @chans) ,
	       'default_syslog', 'default_debug', 'default_stderr', 'null' );
push(@chans, { }) if ($in{'add'});
for($i=0; $i<@chans; $i++) {
	$cmems = $chans[$i]->{'members'};
	$file = &find("file", $cmems);
	$filestr = $file ? join(" ", @{$file->{'values'}}) : "";
	$syslog = &find_value("syslog", $cmems);
	$null = &find("null", $cmems);

	print "<br>\n" if ($i);
	print "<table width=100% border><tr><td><table width=100%>\n";
	print "<tr> <td><b>$text{'logging_cname'}</b></td>\n";
	printf "<td colspan=3><input name=cname_$i value='%s'></td> </tr>\n",
		$chans[$i]->{'value'};

	print "<tr> <td valign=top><b>$text{'logging_to'}</b></td>\n";
	print "<td colspan=3>\n";
	printf "<input type=radio name=to_$i value=0 %s> %s\n",
		$file ? "checked" : "", $text{'logging_file'};
	printf "<input name=file_$i size=40 value='%s'> %s<br>\n",
		$file->{'value'}, &file_chooser_button("file_$i");

	print "&nbsp;&nbsp;&nbsp;&nbsp;<b>$text{'logging_versions'}</b>\n";
	printf "<input type=radio name=vmode_$i value=0 %s> %s\n",
		$filestr =~ /\sversions\s/i ? "" : "checked",
		$text{'logging_ver1'};
	printf "<input type=radio name=vmode_$i value=1 %s> %s\n",
		$filestr =~ /\sversions\s+unlimited/i ? "checked" : "",
		$text{'logging_ver2'};
	printf "<input type=radio name=vmode_$i value=2 %s>\n",
		$filestr =~ /\sversions\s+(\d+)/i ? "checked" : "";
	printf "<input name=ver_$i size=5 value='%s'><br>\n",
		$filestr =~ /\sversions\s+(\d+)/i ? $1 : "";

	$size = $filestr =~ /\ssize\s+(\S+)/ ? $1 : '';
	$size = undef if ($size eq 'unlimited');
	print "&nbsp;&nbsp;&nbsp;&nbsp;<b>$text{'logging_size'}</b>\n";
	printf "<input type=radio name=smode_$i value=0 %s> %s\n",
		$size ? "" : "checked", $text{'logging_sz1'};
	printf "<input type=radio name=smode_$i value=1 %s>\n",
		$size ? "checked" : "";
	printf "<input name=size_$i size=5 value='%s'><br>\n", $size;

	printf "<input type=radio name=to_$i value=1 %s> %s\n",
		$syslog ? "checked" : "", $text{'logging_syslog'};
	print "<select name=syslog_$i>\n";
	print "<option selected>\n" if (!$syslog);
	foreach $s (@syslog_levels) {
		printf "<option %s>%s\n",
			$syslog eq $s ? "selected" : "", $s;
		}
	print "</select>&nbsp;&nbsp;\n";

	printf "<input type=radio name=to_$i value=2 %s> %s</td> </tr>\n",
		$null ? "checked" : "", $text{'logging_null'};

	$sev = &find("severity", $cmems);
	print "<tr> <td><b>$text{'logging_sev'}</b></td>\n";
	print "<td colspan=3><select name=sev_$i>\n";
	printf "<option %s>\n", $sev ? "" : "selected";
	foreach $s (@severities) {
		printf "<option value=%s %s>%s\n",
			$s, $sev->{'value'} eq $s ? "selected" : "",
			$s eq 'debug' ? $text{'logging_debug'} :
			$s eq 'dynamic' ? $text{'logging_dyn'} : $s;
		}
	print "</select>\n";
	printf "<input name=debug_$i size=5 value='%s'></td> </tr>\n",
		$sev->{'value'} eq 'debug' ? $sev->{'values'}->[1] : "";

	print "<tr> <td><b>$text{'logging_pcat'}</b></td> <td>\n";
	&yes_no_default("print-category-$i",
			&find_value("print-category", $cmems));
	print "</td> <td><b>$text{'logging_psev'}</b></td> <td>\n";
	&yes_no_default("print-severity-$i",
			&find_value("print-severity", $cmems));
	print "</td> </tr>\n";

	print "<tr> <td><b>$text{'logging_ptime'}</b></td> <td>\n";
	&yes_no_default("print-time-$i",
			&find_value("print-time", $cmems));
	print "</td> </tr>\n";

	print "</table></td></tr></table>\n";
	}
print "<a href='conf_logging.cgi?add=1'>$text{'logging_add'}</a>\n";
print "</td> </tr>\n";

print "<tr> <td valign=top><b>$text{'logging_cats'}</b></td>\n";
print "<td><table border>\n";
print "<tr $tb> <td><b>$text{'logging_cat'}</b></td> ",
      "<td><b>$text{'logging_cchans'}</b></td> </tr>\n";
@cats = ( &find("category", $mems), { } );
for($i=0; $i<@cats; $i++) {
	print "<tr $cb> <td><select name=cat_$i>\n";
	print "<option>\n";
	foreach $c (@cat_list) {
		printf "<option %s>%s\n",
			$cats[$i]->{'value'} eq $c ? "selected" : "", $c;
		}
	print "</select></td> <td>\n";
	local %cchan;
	foreach $c (@{$cats[$i]->{'members'}}) {
		$cchan{$c->{'name'}}++;
		}
	foreach $c (@channames) {
		printf "<input type=checkbox name=cchan_$i value=%s %s> %s\n",
			$c, $cchan{$c} ? "checked" : "", $c;
		}
	print "</td> </tr>\n";
	}
print "</table></td> </tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

# yes_no_default(name, value)
sub yes_no_default
{
printf "<input type=radio name=$_[0] value=yes %s> $text{'yes'}\n",
	lc($_[1]) eq 'yes' ? 'checked' : '';
printf "<input type=radio name=$_[0] value=no %s> $text{'no'}\n",
	lc($_[1]) eq 'no' ? 'checked' : '';
printf "<input type=radio name=$_[0] value='' %s> $text{'default'}\n",
	!$_[1] ? 'checked' : '';
}

 0707010001fb0e000081e40000000000000002000000013ac0389b00000892000000200000000000000000000000000000001a00000003reloc/bind8/conf_misc.cgi #!/usr/local/bin/perl
# conf_misc.cgi
# Display miscellaneous options

require './bind8-lib.pl';
%access = &get_module_acl();
$access{'defaults'} || &error($text{'misc_ecannot'});
&header($text{'misc_title'}, "");
print "<hr>\n";

&ReadParse();
$conf = &get_config();
$options = &find("options", $conf);
$mems = $options->{'members'};

print "<form action=save_misc.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'misc_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
print &opt_input($text{'misc_core'}, 'coresize', $mems, $text{'default'}, 8);
print &opt_input($text{'misc_data'}, 'datasize', $mems, $text{'default'}, 8);
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'misc_files'}, 'files', $mems, $text{'default'}, 8);
print &opt_input($text{'misc_stack'}, 'stacksize', $mems, $text{'default'}, 8);
print "</tr>\n";

print "<tr> <td colspan=4><hr></td> </tr>\n";

print "<tr>\n";
print &opt_input($text{'misc_clean'}, 'cleaning-interval', $mems,
		 $text{'default'}, 8, "$text{'misc_mins'}");
print &opt_input($text{'misc_iface'}, 'interface-interval', $mems,
		 $text{'default'}, 8, "$text{'misc_mins'}");
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'misc_stats'}, 'statistics-interval', $mems,
		 $text{'default'}, 8, "$text{'misc_mins'}");
print "</tr>\n";

print "<tr> <td colspan=4><hr></td> </tr>\n";

print "<tr>\n";
print &choice_input($text{'misc_recursion'}, 'recursion', $mems,
		    $text{'yes'}, 'yes', $text{'no'}, 'no',
		    $text{'default'}, undef);
print &choice_input($text{'misc_cnames'}, 'multiple-cnames', $mems,
		    $text{'yes'}, 'yes', $text{'no'}, 'no',
		    $text{'default'}, undef);
print "</tr>\n";

print "<tr>\n";
print &choice_input($text{'misc_glue'}, 'fetch-glue', $mems,
		    $text{'yes'}, 'yes', $text{'no'}, 'no',
		    $text{'default'}, undef);
print &choice_input($text{'misc_nx'}, 'auth-nxdomain', $mems,
		    $text{'yes'}, 'yes', $text{'no'}, 'no',
		    $text{'default'}, undef);
print "</tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});


  0707010001fb0f000081e40000000000000002000000013ac0389b00000a60000000200000000000000000000000000000001900000003reloc/bind8/conf_net.cgi  #!/usr/local/bin/perl
# conf_files.cgi
# Display global files options

require './bind8-lib.pl';
%access = &get_module_acl();
$access{'defaults'} || &error($text{'net_ecannot'});
&header($text{'net_title'}, "");
print "<hr>\n";

&ReadParse();
$conf = &get_config();
$options = &find("options", $conf);
$mems = $options->{'members'};

print "<form action=save_net.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'net_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td valign=top><b>$text{'net_listen'}</b></td> <td colspan=3>\n";
@listen = &find("listen-on", $mems);
printf "<input type=radio name=listen_def value=1 %s> %s\n",
	@listen ? "" : "checked", $text{'default'};
printf "<input type=radio name=listen_def value=0 %s> %s<br>\n",
	@listen ? "checked" : "", $text{'net_below'};

print "<table width=100% border>\n";
print "<tr $tb> <td><b>$text{'net_port'}</b></td> ",
      "<td><b>$text{'net_addrs'}</b></td> </tr>\n";
push(@listen, { });
for($i=0; $i<@listen; $i++) {
	printf "<tr $cb> <td><input type=radio name=pdef_$i value=1 %s> %s\n",
		$listen[$i]->{'value'} eq 'port' ? "" : "checked",
		$text{'default'};
	printf "<input type=radio name=pdef_$i value=0 %s>\n",
		$listen[$i]->{'value'} eq 'port' ? "checked" : "";
	printf "<input name=port_$i size=5 value='%s'></td>\n",
		$listen[$i]->{'value'} eq 'port' ?
			$listen[$i]->{'values'}->[1] : "";

	@vals = map { $_->{'name'} } @{$listen[$i]->{'members'}};
	printf "<td><input name=addrs_$i size=50 value='%s'></td> </tr>\n",
		join(" ", @vals);
	}
print "</table></td></tr>\n";

$src = &find("query-source", $mems);
$srcstr = join(" ", @{$src->{'values'}});
$sport = $1 if ($srcstr =~ /port\s+(\d+)/i);
$saddr = $1 if ($srcstr =~ /address\s+([0-9\.]+)/i);
print "<tr> <td><b>$text{'net_saddr'}</b></td> <td>\n";
printf "<input type=radio name=saddr_def value=1 %s> %s\n",
	$saddr ? "" : "checked", $text{'default'};
printf "<input type=radio name=saddr_def value=0 %s>\n",
	$saddr ? "checked" : "";
printf "<input name=saddr size=15 value='%s'></td>\n", $saddr;
print "<td><b>$text{'net_sport'}</b></td> <td>\n";
printf "<input type=radio name=sport_def value=1 %s> %s\n",
	$sport ? "" : "checked", $text{'default'};
printf "<input type=radio name=sport_def value=0 %s>\n",
	$sport ? "checked" : "";
printf "<input name=sport size=5 value='%s'></td> </tr>\n", $sport;

print "<tr>\n";
print &addr_match_input($text{'net_topol'}, 'topology', $mems, 1);
print "</tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});


0707010001fb10000081e40000000000000002000000013ac0389b000006e3000000200000000000000000000000000000001d00000003reloc/bind8/conf_servers.cgi  #!/usr/local/bin/perl
# conf_servers.cgi
# Display options for other DNS servers

require './bind8-lib.pl';
%access = &get_module_acl();
$access{'defaults'} || &error($text{'servers_ecannot'});
&header($text{'servers_title'}, "");
print "<hr>\n";

$conf = &get_config();
@servers = ( &find("server", $conf), { } );

print "<form action=save_servers.cgi>\n";
print "<table width=100% border>\n";
print "<tr $tb> <td><b>$text{'servers_ip'}</b></td> ",
      "<td><b>$text{'servers_bogus'}</b></td> ",
      "<td><b>$text{'servers_format'}</b></td> ",
      "<td><b>$text{'servers_trans'}</b></td> </tr>\n";
for($i=0; $i<@servers; $i++) {
	$s = $servers[$i];
	print "<tr $cb>\n";
	printf "<td><input name=ip_$i size=15 value='%s'></td>\n",
		$s->{'value'};

	$bogus = &find_value("bogus", $s->{'members'});
	printf "<td><input type=radio name=bogus_$i value=yes %s> %s\n",
		lc($bogus) eq 'yes' ? "checked" : "", $text{'yes'};
	printf "<input type=radio name=bogus_$i value='' %s> %s</td>\n",
		lc($bogus) eq 'yes' ? "" : "checked", $text{'no'};

	$format = &find_value("transfer-format", $s->{'members'});
	printf "<td><input type=radio name=format_$i value=one-answer %s> %s\n",
		lc($format) eq 'one-answer' ? "checked" : "",
		$text{'servers_one'};
	printf "<input type=radio name=format_$i value=many-answers %s> %s\n",
		lc($format) eq 'many-answers' ? "checked" : "",
		$text{'servers_many'};
	printf "<input type=radio name=format_$i value='' %s> %s</td>\n",
		$format ? "" : "checked", $text{'default'};

	printf "<td><input name=trans_$i size=8 value='%s'></td> </tr>\n",
		&find_value("transfers", $s->{'members'});
	}
print "</table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

 0707010001fb11000081e40000000000000002000000013ac0389b00000ed3000000200000000000000000000000000000001d00000003reloc/bind8/conf_zonedef.cgi  #!/usr/local/bin/perl
# conf_zonedef.cgi
# Display defaults for master zones

require './bind8-lib.pl';
%access = &get_module_acl();
$access{'defaults'} || &error($text{'zonedef_ecannot'});
&header($text{'zonedef_title'}, "");
print "<hr>\n";

print "<form action=save_zonedef.cgi>\n";

&get_zone_defaults(\%zd);
print "<table border>\n";
print "<tr $tb> <td><b>$text{'zonedef_msg'}</b></td> </tr>\n";
print "<tr $cb> <td><table cellpadding=5>\n";

print "<tr> <td><b>$text{'master_refresh'}</b></td>\n";
print "<td><input name=refresh size=10 value='$zd{'refresh'}'>\n";
&time_unit_choice("refunit", $zd{'refunit'});
print "</td>\n";
print "<td><b>$text{'master_retry'}</b></td>\n";
print "<td><input name=retry size=10 value='$zd{'retry'}'>\n";
&time_unit_choice("retunit", $zd{'retunit'});
print "</td> </tr>\n";

print "<tr> <td><b>$text{'master_expiry'}</b></td>\n";
print "<td><input name=expiry size=10 value='$zd{'expiry'}'>\n";
&time_unit_choice("expunit", $zd{'expunit'});
print "</td>\n";
print "<td><b>$text{'master_minimum'}</b></td>\n";
print "<td><input name=minimum size=10 value='$zd{'minimum'}'>\n";
&time_unit_choice("minunit", $zd{'minunit'});
print "</td>\n";

print "<tr> <td valign=top><b>$text{'master_tmplrecs'}</b></td>\n";
print "<td colspan=3><table border>\n";
print "<tr $tb> <td><b>$text{'master_name'}</b></td> ",
      "<td><b>$text{'master_type'}</b></td> ",
      "<td><b>$text{'master_value'}</b></td> </tr>\n";
for($i=0; $i<2 || $config{"tmpl_".($i-1)}; $i++) {
	@c = split(/\s+/, $config{"tmpl_$i"}, 3);
	print "<tr $cb>\n";
	print "<td><input name=name_$i size=15 value='$c[0]'></td>\n";
	print "<td><select name=type_$i>\n";
	foreach $t ('A', 'CNAME', 'MX', 'NS', 'HINFO') {
		printf "<option value=%s %s>%s\n",
			$t, $c[1] eq $t ? 'selected' : '', $text{"type_$t"};
		}
	print "</select></td>\n";
	printf "<td><input type=radio name=def_$i value=1 %s> %s\n",
		$c[2] ? '' : 'checked', $text{'master_user'};
	printf "<input type=radio name=def_$i value=0 %s>\n",
		$c[2] ? 'checked' : '';
	print "<input name=value_$i size=15 value='$c[2]'></td> </tr>\n";
	}
print "</table></td> </tr>\n";

print "</tr> </table></td></tr></table><br>\n";

$conf = &get_config();
$options = &find("options", $conf);
$mems = $options->{'members'};
foreach $c (&find("check-names", $mems)) {
	$check{$c->{'values'}->[0]} = $c->{'values'}->[1];
	}

print "<table border>\n";
print "<tr $tb> <td><b>$text{'zonedef_msg2'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr>\n";
print &addr_match_input($text{'zonedef_transfer'}, "allow-transfer", $mems);
print &addr_match_input($text{'zonedef_query'}, "allow-query", $mems);
print "</tr>\n";

print "<tr>\n";
&ignore_warn_fail($text{'zonedef_cmaster'}, 'master', $check{'master'});
&ignore_warn_fail($text{'zonedef_cslave'}, 'slave', $check{'slave'});
print "</tr>\n";

print "<tr>\n";
&ignore_warn_fail($text{'zonedef_cresponse'}, 'response', $check{'response'});
print &choice_input($text{'zonedef_notify'}, "notify", $mems,
		    $text{'yes'}, "yes", $text{'no'}, "no",
		    $text{'default'}, undef);
print "</tr>\n";

print "</tr> </table></td></tr></table><br>\n";

print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

# ignore_warn_fail(text, name, value)
sub ignore_warn_fail
{
print "<td><b>$_[0]</b></td> <td>\n";
printf "<input type=radio name=$_[1] value=ignore %s> $text{'ignore'}\n",
	$_[2] eq 'ignore' ? 'checked' : '';
printf "<input type=radio name=$_[1] value=warn %s> $text{'warn'}\n",
	$_[2] eq 'warn' ? 'checked' : '';
printf "<input type=radio name=$_[1] value=fail %s> $text{'fail'}\n",
	$_[2] eq 'fail' ? 'checked' : '';
printf "<input type=radio name=$_[1] value='' %s> $text{'default'}</td>\n",
	!$_[2] ? 'checked' : '';
}

 0707010001fb12000081a40000000000000002000000013ac0389b000000b7000000200000000000000000000000000000001700000003reloc/bind8/config-aix    soa_style=0
named_path=/usr/sbin/named8
named_conf=/etc/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
start_cmd=startsrc -s named
pid_file=/etc/named.pid
master_ttl=1
 0707010001fb13000081a40000000000000002000000013ac0389b000000bc000000200000000000000000000000000000002000000003reloc/bind8/config-cobalt-linux   soa_style=0
named_path=/usr/sbin/named
named_conf=/etc/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
0707010001fb14000081a40000000000000002000000013ac0389b000000bc000000200000000000000000000000000000001f00000003reloc/bind8/config-corel-linux    soa_style=0
named_path=/usr/sbin/named
named_conf=/etc/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
0707010001fb15000081a40000000000000002000000013ac0389a000000bc000000200000000000000000000000000000002000000003reloc/bind8/config-debian-linux   soa_style=0
named_path=/usr/sbin/named
named_conf=/etc/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
0707010001fb16000081a40000000000000002000000013ac0389b000000c1000000200000000000000000000000000000002400000003reloc/bind8/config-debian-linux-2.2   soa_style=0
named_path=/usr/sbin/named
named_conf=/etc/bind/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
   0707010001fb17000081a40000000000000002000000013ac0389b000000c2000000200000000000000000000000000000001f00000003reloc/bind8/config-freebsd-2.1    soa_style=0
named_path=/usr/local/sbin/named
named_conf=/etc/named.conf
show_list=0
records_order=0
rev_def=0
max_zones=50
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
  0707010001fb18000081a40000000000000002000000013ac0389a000000c2000000200000000000000000000000000000001f00000003reloc/bind8/config-freebsd-2.2    soa_style=0
named_path=/usr/local/sbin/named
named_conf=/etc/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
  0707010001fb19000081a40000000000000002000000013ac0389b000000c3000000200000000000000000000000000000001f00000003reloc/bind8/config-freebsd-3.0    soa_style=0
named_path=/usr/sbin/named
named_conf=/etc/namedb/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
 0707010001fb1a000081a40000000000000002000000013ac0389b000000bc000000200000000000000000000000000000001f00000003reloc/bind8/config-freebsd-3.1    soa_style=0
named_path=/usr/sbin/named
named_conf=/etc/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
0707010001fb1b000081a40000000000000002000000013ac0389b000000bc000000200000000000000000000000000000001f00000003reloc/bind8/config-freebsd-3.2    soa_style=0
named_path=/usr/sbin/named
named_conf=/etc/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
0707010001fb1c000081a40000000000000002000000013ac0389b000000bc000000200000000000000000000000000000001f00000003reloc/bind8/config-freebsd-3.3    soa_style=0
named_path=/usr/sbin/named
named_conf=/etc/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
0707010001fb1d000081a40000000000000002000000013ac0389b000000bc000000200000000000000000000000000000001f00000003reloc/bind8/config-freebsd-3.4    soa_style=0
named_path=/usr/sbin/named
named_conf=/etc/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
0707010001fb1e000081a40000000000000002000000013ac0389b000000c3000000200000000000000000000000000000001f00000003reloc/bind8/config-freebsd-4.0    soa_style=0
named_path=/usr/sbin/named
named_conf=/etc/namedb/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
 0707010001fb1f000081a40000000000000002000000013ac0389b000000c3000000200000000000000000000000000000001f00000003reloc/bind8/config-freebsd-5.0    soa_style=0
named_path=/usr/sbin/named
named_conf=/etc/namedb/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
 0707010001fb20000081a40000000000000002000000013ac0389a000000bc000000200000000000000000000000000000001800000003reloc/bind8/config-hpux   soa_style=0
named_path=/usr/sbin/named
named_conf=/etc/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
0707010001fb21000081a40000000000000002000000013ac0389b000000bc000000200000000000000000000000000000001800000003reloc/bind8/config-irix   soa_style=0
named_path=/usr/sbin/named
named_conf=/etc/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
0707010001fb22000081a40000000000000002000000013ac0389b000000c2000000200000000000000000000000000000001900000003reloc/bind8/config-macos  named_path=/usr/sbin/named
named_conf=/etc/named/named.conf
soa_style=0
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
  0707010001fb23000081a40000000000000002000000013ac0389b000000bc000000200000000000000000000000000000001d00000003reloc/bind8/config-macos-1.3  named_path=/usr/sbin/named
named_conf=/etc/named.conf
soa_style=0
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
0707010001fb24000081a40000000000000002000000013ac0389b000000e3000000200000000000000000000000000000001e00000003reloc/bind8/config-open-linux soa_style=0
named_path=/usr/sbin/named
named_conf=/etc/named.conf
show_list=0
records_order=0
start_cmd=/etc/rc.d/init.d/named start
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
 0707010001fb25000081a40000000000000002000000013ac0389b000000bc000000200000000000000000000000000000001f00000003reloc/bind8/config-openbsd-2.5    soa_style=0
named_path=/usr/sbin/named
named_conf=/etc/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
0707010001fb26000081a40000000000000002000000013ac0389b000000bc000000200000000000000000000000000000001f00000003reloc/bind8/config-openbsd-2.6    soa_style=0
named_path=/usr/sbin/named
named_conf=/etc/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
0707010001fb27000081a40000000000000002000000013ac0389b000000bc000000200000000000000000000000000000001f00000003reloc/bind8/config-openbsd-2.7    soa_style=0
named_path=/usr/sbin/named
named_conf=/etc/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
0707010001fb28000081a40000000000000002000000013ac0389b000000bc000000200000000000000000000000000000001e00000003reloc/bind8/config-openserver soa_style=0
named_path=/usr/sbin/named
named_conf=/etc/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
0707010001fb29000081a40000000000000002000000013ac0389b000000bc000000200000000000000000000000000000001800000003reloc/bind8/config-osf1   soa_style=0
named_path=/usr/sbin/named
named_conf=/etc/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
0707010001fb2a000081a40000000000000002000000013ac0389a000000e3000000200000000000000000000000000000002000000003reloc/bind8/config-redhat-linux   soa_style=0
named_path=/usr/sbin/named
named_conf=/etc/named.conf
show_list=0
records_order=0
start_cmd=/etc/rc.d/init.d/named start
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
 0707010001fb2b000081a40000000000000002000000013ac0389b00000105000000200000000000000000000000000000002400000003reloc/bind8/config-redhat-linux-7.1   soa_style=0
named_path=/usr/sbin/named
named_conf=/etc/named.conf
show_list=0
records_order=0
start_cmd=/etc/rc.d/init.d/named start
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
pid_file=/var/run/named/named.pid
   0707010001fb2c000081a40000000000000002000000013ac0389a000000bc000000200000000000000000000000000000002300000003reloc/bind8/config-slackware-linux    soa_style=0
named_path=/usr/sbin/named
named_conf=/etc/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
0707010001fb2d000081a40000000000000002000000013ac0389a000000cb000000200000000000000000000000000000001b00000003reloc/bind8/config-solaris    soa_style=0
named_path=/usr/sbin/named
named_conf=/etc/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
file_perms=644
 0707010001fb2e000081a40000000000000002000000013ac0389b000000bf000000200000000000000000000000000000001d00000003reloc/bind8/config-solaris-7  soa_style=0
named_path=/usr/sbin/in.named
named_conf=/etc/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
 0707010001fb2f000081a40000000000000002000000013ac0389b000000bf000000200000000000000000000000000000001d00000003reloc/bind8/config-solaris-8  soa_style=0
named_path=/usr/sbin/in.named
named_conf=/etc/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
 0707010001fb30000081a40000000000000002000000013ac0389a000000bc000000200000000000000000000000000000001e00000003reloc/bind8/config-suse-linux soa_style=1
named_path=/usr/sbin/named
named_conf=/etc/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
0707010001fb31000081a40000000000000002000000013ac0389b000000bc000000200000000000000000000000000000001f00000003reloc/bind8/config-turbo-linux    soa_style=1
named_path=/usr/sbin/named
named_conf=/etc/named.conf
show_list=0
records_order=1
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
master_ttl=1
0707010001fb32000081a40000000000000002000000013ac0389b000000e5000000200000000000000000000000000000001c00000003reloc/bind8/config-unixware   soa_style=0
named_path=/usr/local/sbin/named
named_conf=/etc/local/named.conf
show_list=0
records_order=0
max_zones=50
rev_def=0
support_aaaa=0
allow_comments=0
allow_wild=0
allow_long=0
pid_file=/etc/inet/named.pid
master_ttl=1
   0707010001fb33000081a40000000000000002000000013ac0389a00000474000000200000000000000000000000000000001800000003reloc/bind8/config.info   named_conf=Full path to the named.conf file,0
named_path=Full path to the named executable,0
pid_file=Default PID file location,3,/var/run/named.pid
show_list=Display domains as,1,0-Icons,1-List
soa_style=Serial number style,1,0-Running number,1-Date based (YYYYMMDDnn)
records_order=Order to display records in,1,1-By name,2-By value,3-By IP,0-As added
chroot=Chroot directory to run BIND under,3,Default
start_cmd=Command to start BIND,3,Default
max_zones=Maximum number of zones to display,0
rev_def=Update reverse is,1,0-On by default,1-Off by default
master_ttl=Add $ttl to top of new zone files,1,1-Yes,0-No
named_user=User to start BIND as,3,Default
named_group=Group to start BIND as,3,Default
master_dir=Directory for master zone files,3,Default
slave_dir=Directory for slave/stub zone files,3,Default
file_owner=Owner for zone files (user:group),3,Default
file_perms=Permissions for zone files (in octal),3,Default
support_aaaa=Support DNS for IPv6 addresses,1,0-No,1-Yes
allow_comments=Allow comments for records,1,0-No,1-Yes
allow_wild=Allow wildcards (not recommended),1,0-No,1-Yes
allow_long=Allow long hostnames,1,0-No,1-Yes
0707010001fb34000081a40000000000000002000000013ac0389a000001a6000000200000000000000000000000000000001b00000003reloc/bind8/config.info.de    named_conf=Ganzer Pfad zur named.conf Datei,0
named_path=Ganzer Pfad zur ausf&uuml;hrbaren Datei named,0
show_list=Zeige Domains als,1,0-Icons,1-Liste
soa_style=Aussehen der Seriennummer,1,0-Laufende Nummer,1-Datums basiert (JJJJMMTTnn)
records_order=Sortierung die Anzeige der Eintr&auml;ge nach,1,1-Name,2-Wert,3-By IP,0-Wie hinzugef&uuml;gt
chroot=Chroot Verzeichnis, in dem BIND ausgef&uuml;hrt werden soll,3,Standard
  0707010001fb35000081a40000000000000002000000013ac0389b00000495000000200000000000000000000000000000001b00000003reloc/bind8/config.info.es    named_conf=Trayectoria completa a archivo named.conf,0
named_path=Trayectoria completa a ejecutable named,0
pid_file=Localizaci髇 por defecto de archivo de PID,3,/var/run/named.pid
show_list=Mostrar dominios como,1,0-Iconos,1-Lista
soa_style=Estilo de n鷐ero serial,1,0-N鷐ero en ejecuci髇,1-Basado en fecha (AAAAMMDDnn)
records_order=Orden en el que mostrar los registros,1,1-Por nombre,2-Por valor,3-By IP,0-Seg鷑 se a馻dieron
chroot=Directorio Chroot bajo el que ejecutar BIND,3,Por defecto
start_cmd=Comando para arrancar BIND,3,Por defecto
max_zones=N鷐ero m醲imo de zonas a mostrar,0
rev_def=Actualizar inversas est,1,0-Activado por defecto,1-Desactivado por defecto
named_user=Usuario bajo el que arrancar BIND,3,Por defecto
named_group=Grupo bajo el que arrancar BIND,3,Por defecto
master_dir=Directorio para archivos de zona maestra,3,Por defecto
slave_dir=Directorio para archivos de zona esclava/s髄o cach,3,Por defecto
support_aaaa=Soporte de DNS para direcciones IPv6,1,0-No,1-S
allow_comments=Permitir comentarios en registros,1,0-No,1-S
allow_wild=Permitir comodines (no recomendado),1,0-No,1-S
allow_long=Permitir nombres de m醧uina largos,1,0-No,1-S
   0707010001fb36000081a40000000000000002000000013ac0389b00000145000000200000000000000000000000000000001b00000003reloc/bind8/config.info.fr    named_conf=Chemin du fichier named.conf,0
named_path=Chemin de l'ex閏utable named,0
show_list=Affichage des domaines comme,1,0-Ic鬾es,1-Liste
soa_style=Style des num閞os de s閞ie,1,0-Num閞o,1-Bas par date (AAAAMMJJnn)
records_order=Ordre d'affichage des enregistrements,1,1-Par noms,2-Par valeur,3-By IP,0-Comme ajout
   0707010001fb38000081a40000000000000002000000013ac0389b00000522000000200000000000000000000000000000001b00000003reloc/bind8/config.info.pl    named_conf=Pe硁a 禼ie縦a do pliku named.conf,0
named_path=Pe硁a 禼ie縦a do programu named,0
pid_file=Domy秎na lokalizacja pliku z numerem PID,3,/var/run/named.pid
show_list=Wy秝ietlaj domeny jako,1,0-Ikony,1-List
soa_style=Posta numeru seryjnego,1,0-Numer kolejny,1-Oparty na dacie (RRRRMMDDnn)
records_order=Kolejno舵 wy秝ietlania rekord體,1,1-Wg nazwy,2-Wg warto禼i,3-Wg IP,0-W&nbsp;kolejno禼i dodawania
chroot=Katalog chroot dla BINDa,3,Domy秎ny
start_cmd=Polecenie uruchamiaj眂e BINDa,3,Domy秎ne
max_zones=Maksymalna liczba wy秝ietlanych stref,0
rev_def=Aktualizacja DNS odwrotnego jest,1,0-Domy秎nie w潮czona,1-Domy秎nie wy潮czona
master_ttl=Dodawa $ttl na pocz眛ku nowych plik體 stref,1,1-Tak,0-Nie
named_user=BIND jest uruchamiany jako u縴tkownik,3,Domy秎ny
named_group=BIND jest uruchamiany jako grupa,3,Domy秎na
master_dir=Katalog plik體 stref podstawowych,3,Domy秎ny
slave_dir=Katalog plik體 stref zapasowych/wykarczowanych,3,Domy秎ny
file_owner=W砤禼iciel plik體 stref (u縴tkownik:grupa),3,Domy秎ny
file_perms=Uprawnienia dla plik體 stref (髎emkowo),3,Domy秎ne
support_aaaa=W潮czy obs硊g DNS dla adres體 IPv6,1,0-Nie,1-Tak
allow_comments=Komentarze dla rekord體,1,0-Nie,1-Tak
allow_wild=Zezwoli na wieloznaczne (nie zalecane),1,0-Nie,1-Tak
allow_long=Zezwoli na d硊gie nazwy host體,1,0-Nie,1-Tak
  0707010001fb39000081a40000000000000002000000013ac0389b00000146000000200000000000000000000000000000001e00000003reloc/bind8/config.info.ru_RU named_path=项腠 矬螯  桉镱腠屐铎 祛潴膻 named,0
named_conf=项腠 矬螯  羿殡 named.conf,0
soa_style=彦痂轫 眍戾  耱桦,1,0-项潢钼钽 眍戾疣,1-袜 铖眍忮 溧螓 (妹妹烫哪nn)
show_list=项赅琨忄螯 漕戾睇 赅,1,0-翔牝钽疣祆,1-扬桉铌
records_order=项漕 耦痱桊钼觇 玎镨皴,1,1-项 桁屙,2-项 珥圜屙棹,3-By IP,0-湾耦痱.
  0707010001fb3a000081a40000000000000002000000013ac0389b00000146000000200000000000000000000000000000001e00000003reloc/bind8/config.info.ru_SU named_conf=鹣涛偈 姓载  屏侍 named.conf,0
named_path=鹣涛偈 姓载  捎邢涛雅拖驼 拖恼汤 named,0
show_list=鹣肆谫琢载 南团钨 肆,1,0-鹕嗽锨伊屯,1-笮捎纤
soa_style=笈疑饰偈 蜗团  釉商,1,0-鹣已乃献锨 蜗团伊,1-盍 嫌蜗着 牧再 (珑珑眄滗nn)
records_order=鹣已南 酉以梢献松 诹猩优,1,1-鹣 赏盼,2-鹣 谖赁盼衫,3-By IP,0-钆酉以.
  0707010001fb3b000081a40000000000000002000000013ac0389b00000438000000200000000000000000000000000000001b00000003reloc/bind8/config.info.sv    named_conf=Fullst鋘dig s鰇v鋑 till filen named.conf,0
named_path=Fullst鋘dig s鰇v鋑 till angiven exekverbar fil,0
pid_file=Standardplacering av PID-fil,3,/var/run/named.pid
show_list=Visa dom鋘er som,1,0-Ikoner,1-Lista
soa_style=Serienummer,1,0-L鰌ande nummer,1-Datumbaserade (排排MMDDnn)
records_order=Visa poster ordnade,1,1-efter namn,2-efter v鋜de,3-efter IP,0-kronologiskt
chroot=Chroot-katalog att k鰎a BIND under,3,Standard
start_cmd=Startkommando f鰎 BIND,3,Standard
max_zones=Maximalt antal zoner att visa,0
rev_def=F鰎nya bak錿 鋜,1,0-P som standard,1-Av som standard
master_ttl=L鋑ga till $ttl h鰃st upp p nya zonfiler,1,1-Ja,0-Nej
named_user=Anv鋘dare att starta BIND som,3,Standard
named_group=Grupp att starta BIND som,3,Standard
master_dir=Katalog f鰎 master-zonfiler,3,Standard
slave_dir=Katalog f鰎 slav/錿erv鋘dszonfiler,3,Standard
support_aaaa=St鰀jer DNS f鰎 IPv6-adresser,1,0-Nej,1-Ja
allow_comments=Till錿a kommentarer f鰎 poster,1,0-Nej,1-Ja
allow_wild=Till錿a jokertecken (rekommenderas inte),1,0-Nej,1-Ja
allow_long=Till錿a l錸ga datornamn,1,0-Nej,1-Ja
0707010001fb3c000081a40000000000000002000000013ac0389b00000246000000200000000000000000000000000000001b00000003reloc/bind8/config.info.tr    named_conf=named.conf dosyas齨齨 tam yolu,0
named_path=named 鏰lt齬齦abilir dosyas齨齨 tam yolu,0
show_list=Alanlar g鰎黱t黮eme 㧐kli,1,0-輐onlarla,1-Listeyle
soa_style=Seri nuamaras tipi,1,0-莂lma numaras ile,1-Tarih tabanl (YYYYAAGGss)
records_order=Kay齮lar g鰎黱t黮eme 㧐kli,1,1-輘ime g鰎e,2-De餰rine g鰎e,3-By IP,0-Eklenmi olarak
chroot=BIND alt齨da 鏰lt齬齦acak Chroot dizini,3,謓tan齧l
start_cmd=BIND'i baatma komutu,3,謓tan齧l
max_zones=G鰎黱t黮enecek en 鏾k b鰈ge say齭,0
rev_def=Ters kay齮lar g黱celle,1,0-謓tan齧l olarak a琮k,1-謓tan齧l olarak kapal
  0707010001fb3d000081a40000000000000002000000013ac0389b0000029b000000200000000000000000000000000000001e00000003reloc/bind8/config.info.zh_CN named_conf=named.conf 文件路径,0
named_path=named 文件路径,0
show_list=域显示方式,1,0-图标,1-列表
soa_style=序列号类型,1,0-运行编号,1-日期 (YYYYMMDDnn)
records_order=排序,1,1-名称,2-值,3-By IP,0-增加的顺序
chroot=改变到根目录运行 BIND 的方式,3,Default
start_cmd=开始 BIND 命令,3,Default
max_zones=要显示的最大域数,0
rev_def=反向更新,1,0-利用缺省,1-不用缺省
named_user=启动 BIND 用户的方式,3,默认
named_group=启动 BIND 的组作为,3,默认
master_dir=主区文件目录,3,默认
slave_dir=slave/stub 区文件目录,3,默认
support_aaaa=DNS 至此 IPv6 地址,1,0-否,1-是
allow_comments=允许注释记录,1,0-否,1-是
allow_wild=允许通配符 (不推荐),1,0-否,1-是
allow_long=允许长主机名,1,0-否,1-是
 0707010001fb3e000081a40000000000000002000000013ac0389b0000012e000000200000000000000000000000000000002300000003reloc/bind8/config.info.zh_TW.Big5    named_conf= named.conf 郎Ч俱隔畖,0
named_path= named 磅︽郎Ч俱隔畖,0
show_list=呼办陪ボよΑ,1,0-瓜ボ,1-
soa_style=腹妓Α,1,0-患糤抖,1-ら戳膀娄 (YYYYMMDDnn)
records_order=陪ボ魁逼抖,1,1-ㄌ沮嘿,2-ㄌ沮计,3-By IP,0-ㄌ沮糤丁
chroot=Chroot 隔畖磅︽ BIND,3,Default
  0707010001fb3f000081e40000000000000002000000013ac0389b0000074e000000200000000000000000000000000000001f00000003reloc/bind8/create_forward.cgi    #!/usr/local/bin/perl
# create_forward.cgi
# Create a new forward zone

require './bind8-lib.pl';
&ReadParse();
&error_setup($text{'fcreate_err'});
%access = &get_module_acl();
$access{'forward'} || &error($text{'fcreate_ecannot'});
$access{'ro'} && &error($text{'master_ero'});
$conf = &get_config();

# validate inputs
if ($in{'rev'}) {
	local($ipv4);
	($ipv4 = &check_net_ip($in{'zone'})) ||
	$config{'support_aaaa'} &&
	(($in{'zone'} =~ /^([\w:]+)(\/\d+)$/) || &check_ip6address($1)) ||
		&error(&text('create_enet', $in{'zone'}));
	if ($ipv4) {
		$in{'zone'} = &ip_to_arpa($in{'zone'});
		}
	else {
		$in{'zone'} = &net_to_ip6int($1, ($2 ? substr($2, 1) : "" ));
		}
	}
else {
	($in{'zone'} =~ /^[\d\.]+$/ || $in{'zone'} =~ /^[\d\:]+(\/[\d]+)?$/) &&
		&error(&text('create_edom2', $in{'zone'}));
	&valdnsname($in{'zone'}, 0, ".") ||
		&error(&text('create_edom', $in{'zone'}));
	}
$in{'zone'} =~ s/\.$//;
@masters = split(/\s+/, $in{'masters'});
foreach $m (@masters) {
	&check_ipaddress($m) ||
		&error(&text('create_emaster', $m));
	}
if (!@masters) {
	&error($text{'create_enone'});
	}
foreach $z (&find("zone", $conf)) {
	if ($z->{'value'} eq $in{'zone'}) {
		&error($text{'master_etaken'});
		}
	}

# Create zone directive
&lock_file($config{'chroot'}.$config{'named_conf'});
open(CONF, ">>$config{'chroot'}$config{'named_conf'}");
print CONF "zone \"$in{'zone'}\" {\n";
print CONF "\ttype forward;\n";
print CONF "\tforwarders {\n";
foreach $m (@masters) { print CONF "\t\t$m;\n"; }
print CONF "\t\t};\n";
print CONF "\t};\n";
print CONF "\n";
close(CONF);
&unlock_file($config{'chroot'}.$config{'named_conf'});
&webmin_log("create", "forward", $in{'zone'}, \%in);

# Add the new zone to the access list
if ($access{'zones'} ne '*') {
	$access{'zones'} .= " ".$in{'zone'};
	&save_module_acl(\%access);
	}
&redirect("edit_forward.cgi?index=".scalar(@$conf));

  0707010001fb40000081e40000000000000002000000013ac0389a00001152000000200000000000000000000000000000001e00000003reloc/bind8/create_master.cgi #!/usr/local/bin/perl
# create_master.cgi
# Create a new master zone

require './bind8-lib.pl';
&ReadParse();
&error_setup($text{'mcreate_err'});
%access = &get_module_acl();
$access{'master'} || &error($text{'mcreate_ecannot'});
$access{'ro'} && &error($text{'master_ero'});
$conf = &get_config();

# validate inputs
if ($in{'rev'}) {
	local($ipv4);
	($ipv4 = &check_net_ip($in{'zone'})) ||
	$config{'support_aaaa'} &&
	($in{'zone'} =~ /^([\w:]+)(\/\d+)$/ || &check_ip6address($1)) ||
		&error(&text('create_enet', $in{'zone'}));
	if ($ipv4) {
		$in{'zone'} = &ip_to_arpa($in{'zone'});
		}
	else {
		$in{'zone'} = &net_to_ip6int($1, ($2 ? substr($2, 1) : "" ));
		}
	}
else {
	($in{'zone'} =~ /^[\d\.]+$/ || $in{'zone'} =~ /^[\d\:]+(\/[\d]+)?$/) &&
		&error(&text('create_edom2', $in{'zone'}));
	&valdnsname($in{'zone'}, 0, ".") ||
		&error(&text('create_edom', $in{'zone'}));
	}
$in{'zone'} =~ s/\.$//;
&valdnsname($in{'master'}, 0, ".") ||
	&error(&text('master_emaster', $in{'master'}));
if ($in{'master'} !~ /\.$/) { $in{'master'} .= "."; }
&valemail($in{'email'}) || &valemail(&dotted_to_email($in{'email'})) ||
	&error(&text('master_eemail', $in{'email'}));
$in{'email'} = &email_to_dotted($in{'email'});
$in{'refresh'} =~ /^\d+$/ ||
        &error(&text('master_erefresh', $in{'refresh'}));
$in{'retry'} =~ /^\d+$/ ||
        &error(&text('master_eretry', $in{'retry'}));
$in{'expiry'} =~ /^\d+$/ ||
        &error(&text('master_eexpiry', $in{'expiry'}));
$in{'minimum'} =~ /^\d+$/ ||
        &error(&text('master_eminimum', $in{'minimum'}));
$base = $config{'master_dir'} ? $config{'master_dir'} :
	$access{'dir'} eq '/' ? &base_directory($conf) :
				$access{'dir'};
if ($in{'tmpl'}) {
	for($i=0; $config{"tmpl_$i"}; $i++) {
		@c = split(/\s+/, $config{"tmpl_$i"}, 3);
		if ($c[1] eq 'A' && !$c[2] && !&check_ipaddress($in{'ip'})) {
			&error($text{'master_eip'});
			}
		}
	}
foreach $z (&find("zone", $conf)) {
	if ($z->{'value'} eq $in{'zone'}) {
		&error($text{'master_etaken'});
		}
	}
if (!$in{'file_def'}) {
	$in{'file'} =~ /^\S+$/ ||
		&error(&text('create_efile', $in{'file'}));
	if ($in{'file'} !~ /^\//) {
		$in{'file'} = $base."/".$in{'file'};
		}
	&allowed_zone_file(\%access, $in{'file'}) ||
		&error(&text('create_efile2', $in{'file'}));
	}
elsif ($in{'rev'}) {
	# create filename for reverse zone
	$in{'file'} = &ip6int_to_net(&arpa_to_ip($in{'zone'}));
	$in{'file'} =~ s/\//_/;
	$in{'file'} = $base."/".$in{'file'}.".rev";
	}
else {
	# create filename for forward zone
	$in{'file'} = $base."/".$in{'zone'}.".hosts";
	}
&lock_file("$config{'chroot'}$in{'file'}");
open(ZONE, "> $config{'chroot'}$in{'file'}") ||
	&error(&text('create_efile3', $in{'file'}, $!));
print ZONE "\$ttl $in{'minimum'}$in{'minunit'}\n" if ($config{'master_ttl'});
close(ZONE);
$in{'file'} =~ s/^$config{'chroot'}//;

# create the SOA and NS records
if ($config{'soa_style'} == 1) {
        $serial = &date_serial()."00";
        }
else {
        $serial = time();
        }
$vals = "$in{'master'} $in{'email'} (\n".
        "\t\t\t$serial\n".
        "\t\t\t$in{'refresh'}$in{'refunit'}\n".
        "\t\t\t$in{'retry'}$in{'retunit'}\n".
        "\t\t\t$in{'expiry'}$in{'expunit'}\n".
        "\t\t\t$in{'minimum'}$in{'minunit'} )";
&create_record($in{'file'}, "$in{'zone'}.", undef, "IN", "SOA", $vals);
&create_record($in{'file'}, "$in{'zone'}.", undef, "IN", "NS", $in{'master'})
	if ($in{'master_ns'});

if ($in{'tmpl'}) {
	# Create template records
	for($i=0; $config{"tmpl_$i"}; $i++) {
		@c = split(/\s+/, $config{"tmpl_$i"}, 3);
		&create_record($in{'file'},
			       $c[0] eq '.' ? "$in{'zone'}." : $c[0], undef,
			       "IN", $c[1], $c[2] ? $c[2] : $in{'ip'});
		}
	}
&unlock_file("$config{'chroot'}$in{'file'}");
&set_ownership("$config{'chroot'}$in{'file'}");

# create the zone directive
&lock_file($config{'chroot'}.$config{'named_conf'});
open(CONF, ">>$config{'chroot'}$config{'named_conf'}");
print CONF "zone \"$in{'zone'}\" {\n";
print CONF "\ttype master;\n";
print CONF "\tfile \"$in{'file'}\";\n";
print CONF "\t};\n";
print CONF "\n";
close(CONF);
&unlock_file($config{'chroot'}.$config{'named_conf'});
&set_ownership("$config{'chroot'}.$config{'named_conf'}");
&webmin_log("create", "master", $in{'zone'}, \%in);

# Add the new zone to the access list
if ($access{'zones'} ne '*') {
	$access{'zones'} .= " ".$in{'zone'};
	&save_module_acl(\%access);
	}
&redirect("edit_master.cgi?index=".scalar(@$conf));

  070701000214a7000041ed0000000000000001000000023ac03b9e00000000000000200000000000000000000000000000001300000003reloc/bind8/images    070701000214a8000081a40000000000000002000000013ac0389a00000133000000200000000000000000000000000000001900000003reloc/bind8/images/A.gif  GIF89a0 0   乔   UUU帋庛沣999rrr!Made with GIMP !    ,    0 0  菼8胪`(巇i瀐l0,竅088^Cw Z
C溋H9$o$ -慔ぽ9,8u颥0
鬒冉vk瘂34rfo=4k?|l.xmO,aUIz+h桿*Z7ⅲ8t*8=+峗*=&k汣%x(r啴%菼 蘒むG嚆豖玷殛腱眍镳: ; 070701000214a9000081a40000000000000002000000013ac0389a00000189000000200000000000000000000000000000001c00000003reloc/bind8/images/AAAA.gif   GIF89a0 0   乔   UUU帋庛沣999rrr                  !Made with GIMP ,    0 0  菼8胪`(巇i瀐l0,1C>l_畃
4a頯J
5e蜳>3 Q蔨/Ni>b笵Bf降鷺":聨e:T ~9rFc ^>\ ^:D v:V=儊牏9^xF>Aa>8vR禤?tZJ蔙吽R3襔o茌芟9谵耷9療:爉擩:珘a.\;2踨!嘑.2SnB霥爲-0拶x	啦~佣	肰酻9s
紎r&Iz.r贶沙烜
J( ;   070701000214aa000081a40000000000000002000000013ac0389a000001a7000000200000000000000000000000000000001d00000003reloc/bind8/images/CNAME.gif  GIF89a0 0   乔莚rrUUU   沣帋999!Made with GIMP !    ,    0 0  菼8胪`(巇i瀐l{翤tAP佱烂錪 f丹拃斒εP"∝吕櫏^U K$侂杛U
8O鐯X又8鰈拟+TwzP_X	垈凱o	Xt5 z揚|~8Ry5孞妘XE#z Xm5% 汮 d兜 烶 丣  vQ臝 4B螚4<犠嵀薎E$页呌X賏跴诗驵庯疗洏笽vY繤O蹍khe哀o逘$酅$X枢+	藾憢C>r,dfB繋窵i45鑔R$?q.Hy4畯1栢蠥A帲Gi妐链┯滼氮斋XCD  ; 070701000214ab000081a40000000000000002000000013ac0389a00000178000000200000000000000000000000000000001d00000003reloc/bind8/images/HINFO.gif  GIF89a0 0   乔仟沣鉛UU   999帋!Made with GIMP !    ,    0 0  菼8胪`(巇i瀐p,妹4谈Hy厾pL膁 Q*巍2铡蛺糬DC娚砷I鬡谻鳏,T[郪>(椥{Kz]_i亝kvo嫄m咲倉T揾晥泈憇噭煉q擸U 槰㎞湳挨Сu灧牓秠娊~Ｂ沪翆偶菞∧科扇|畝勒屹恃逃蚊P菰冓遘R哼G II驞颙;$ 亁?*1趣Q1A塰伧既!菑玓I菠蓳(S猏刹ニ  ;070701000214ac000081a40000000000000002000000013ac0389a00000191000000200000000000000000000000000000001b00000003reloc/bind8/images/LOC.gif    GIF89a0 0   乔仟沣鉛UU   rrr帋999!Made with GIMP !    ,    0 0  菼8胪`(巇i瀐l雴 洗剝@卆;羺+}勏hJ靝!l劚爃嵚
鰧}褗)>9遙鰾5读灹睜9奚uEg>o}nkE岶izgv檵殀=>彂UIc毆伯侗G瓍 綗砍āx荅鹊偮7U曕犡蔆i虉q炑遵嗴_钬Y蛎oNГ癥G瑽= `&蹌x 郠臛-|X$A$=V暝1-戃x纴d熊沙烜
J川 ;   070701000214ad000081a40000000000000002000000013ac0389a000001c5000000200000000000000000000000000000001a00000003reloc/bind8/images/MX.gif GIF89a0 0   乔沣   UUU帋999rrr!Made with GIMP !    ,    0 0  菼8胪`(巇i瀐紁
 吡 /@喁	弰IX2M	T>%U嚒h撿
鉷|1蒀1?汤
jA\UxMi}eN@h 哛o奀態tv桞5媄B|hDG@:嚑 稟	s癗D 甮背耹 粿櫪就 葦溆A?冴や籅呔湁骀黿60ca瀽*(A	躾i聉≥胏H烋鸇.ha	搸釪]哈X怕<d帝鱇H鉟擠X亪w`夵AR$02負hD櫪撋+w瞛}v 3*+j嫵h营]硕穚闶澦" ;   070701000214ae000081a40000000000000002000000013ac0389a000001b7000000200000000000000000000000000000001a00000003reloc/bind8/images/NS.gif GIF89a0 0   乔沣鉹rrUUU   999帋!Made with GIMP !    ,    0 0  菼8胪`(巇i瀐紁`4Q紂濸埑靻結E@鰝酈晙7X睒hJ Xb=d虇鬱p&4坶.$唍x[k|MBd=垁{IH=HwYN}<@岲<濹E憼 N搮bHícU槹[剷uH﹩嚲^t舅笴J豊辗腂8LQ邐蚇@輁颔	怅觻椻劯辕q}郿≧腥杽堡)蜔8$yd0慚E僑滺;嗜d魆aFZ呠1晙}\
硯B@"﹎砂硰媀 X蚀iM@GJKS[h菔但庄`脢K冬Y  ; 070701000214af000081a40000000000000002000000013ac0389a00000175000000200000000000000000000000000000001b00000003reloc/bind8/images/PTR.gif    GIF89a0 0   乔仟沣鉛UU   999rrr帋!Made with GIMP !    ,    0 0  菼8胪`(巇i瀐p,腺0選EAP徣r3%F&搑"`笺3Z0$bU(P部'瑌剆P0O>z"銨tiI\tx=墑ya乗nws攣妺灇泃J獚>I牂卑硱?挤O椂共@H颂蒆幾R	礁%迮"闃$恧!瘰#貂潴=	' X!丅>侌劙'傱"d侫O3bぇ眂 CI菠蓳(S猏蓃d ;   070701000214b0000081a40000000000000002000000013ac0389a000001a9000000200000000000000000000000000000001a00000003reloc/bind8/images/RP.gif GIF89a0 0   乔仟沣鉛UU   999rrr帋!Made with GIMP !    ,    0 0  菼8胪`(巇i瀐p,78<HD类凥 牀l皇)B<D-	嬽Q樌氫4k,TK/e
孾h?veA|C=t噷H>~a巌怋E枔檭BoA G>H	獇RuЙ煬嵐7哋抺pX疘a<T暻炆哉Kb?P?蘪^炎謴駺n咀侮旱靹袎蛔?	\8醌 <Y俲xPB壃,8dV iE鸂0	蒳b0$8讓憓琩鲃KaN徯L汙冝 丂6

瓍缨P滼氮斋X砵} ;   070701000214b1000081a40000000000000002000000013ac0389a00000196000000200000000000000000000000000000001b00000003reloc/bind8/images/TXT.gif    GIF89a0 0   沣悛   帋999rrr乔荱UU!Made with GIMP !    ,    0 0  菼8胪`(巇i瀐p,蟭减L虲罓 )竣qyT2H煋P倗蒯7A$剣怅LP継A碐	倖媨O蠭蕸,WtRgAjwCx>[=N刬巿m{?fS^	殗擼灍B抯=姁 ? 槅瑓 B槫璽!冀!氨镜笰#罖"徟 N仙丁捅A譅y 催冣x毦差贼7槚综哚 P銞萠員*僐X譁ぐpe\闿KP眹2H 宜>唊閝;>gF蓽	rB仚2K<注烜
J川眩H摓  ;  070701000214b2000081a40000000000000002000000013ac0389a000001c2000000200000000000000000000000000000001b00000003reloc/bind8/images/WKS.gif    GIF89a0 0   沣乔   UUUrrr999帋!Made with GIMP !    ,    0 0  菼8胪`(巇i瀐紁
<TK2@/P晙0(鷸B"虐LBMf<H+堝8 壽DI爐/(O拃".Tx }QfPj凢B僕@	弇aAl漡V?嫍泍K4仼敟Ac@HK塻 qGDz筺?祭堾 哃<@Ж弛漵梅睝 聈侥 剧蟉AH妆?煒涉(層j7>K5'㈱?皮联鄭纴x-2^漚+襋tJ脿钋0-箟晷啘阅d I 哸jjP籽B濅)搄撽<
	>M塙k简lA冬俪h营]硕穚UD  ;  070701000214b3000081a40000000000000002000000013ac0389a00000113000000200000000000000000000000000000001c00000003reloc/bind8/images/acls.gif   GIF89a0 0   烫虣櫃fff            !    ,    0 0  很0蔍8死{讬'8yB俫B]z秮:渕}鲯嚨炩!鰧粻Ya倻MJ	酼礧捌 gu@鬡U?賍w咵/羆巷}y剕&z剢巻 憭弾崈棌晧殩瀧ぅⅲ洜~挱疁埓捣祲悎恫【聥炼拦贸皺橇幣派维泄氏斎已虆乇趰*徭乳 庄飶B蝮趱鲼	 ; 070701000214b4000081a40000000000000002000000013ac0389a0000010a000000200000000000000000000000000000001d00000003reloc/bind8/images/files.gif  GIF89a0 0   烫虣櫃fff            !    ,    0 0  很0蔍8帅 貚Nf炴FRA杈檬爵薘[脁倔=堫K膼袢&桳厯峃U鎢E〧倎xL./w
j塯I蹐@浅糊9痏鈘t儎1[5x厡噣a}{Tz杦>棟af倊i牗毆9'_AhGll窰煢揦┕悩4崊徖 薂勇\目溋泑邽拶い墉嫥蒕	 ;  070701000214b5000081a40000000000000002000000013ac0389a0000062e000000200000000000000000000000000000002000000003reloc/bind8/images/findfree.gif   GIF89a0 0   fff烫膛露-皹5骸:默C瞎M谄V嵫_谙`糠^琶粺.瀯$◤+稘7毛B溆`胼g钺j耒m耔m塘Z   殘J晊潈$及~己Ｋ菗嶷灬h遑a兹T堡_u_攛n悍毴絜着R匣I-弤;搙В捁璷骗?尽6梺'级潛w殟]獩d窓1瘬--'殏)潩湙櫃瑈f獜+-蕉敨瘯/簾87T瓂h$末@礌>+殢b滩G鹊I礇5ァ捯糓漳R陋A灼S峙R帋幬窵永M北敝耂党ぴ罭章U良斅粨屑J前C牡V墼勆紂什C篮擉阰拷技猫;谛c傩}妹门骏形便謆菸Z衅嬌缮破湃羣峙V位M枪适侍趟莲P紳4霉a飘G荆>建]陕瓮吻Κ+籂C矘;害[丝曅涂运浺胦尽7凵X7墨I坛M茅;毛F行茟cb瘺L鸡N傻Q彰Q魏I食F浅W行歇yuQQ稛焷LLv脽橾,-b//匰SX((l/1~LM#		m45g')Lp:<b"$Z[ R\!$M
梛hL媆[`#%U{@?!   ,    0 0   	H盃羶@愥@!䲟@b脣f秆`艊-6yq"9<墣[槖迩Y.湬撶膹/冓J錖5*]0 烰*p暧╓欮搳誮砖_礦秎毡h乏雝k鄱n
@爛(X饢*[╓岫e欣餔楡q艓傽2h仞冞<| B蒥穊爅橠	n??="厞#W禱橢会V迭1d攮T鴍3h詟蔥v蔥m芾慶鄐蹦匕b酌 棆兦3徦徨'.d濮Tq焴K丏J(u?鏉穅VXM8a酅OD"A迼"QHQ袌*濰T )辺_V艰c]7阧dY鴪b#檆奬t"2)鈦^L孠Fb澍#嶢M倛c攁唝/鹿爲jj槺FnBnH銎焵 q1熍鎃 uW=ex洹荳\砹GV	)\~H 偰FP 䞍睩匱岐㎏醞!? 拡"-聢煃8捖U唅S>$慏QE]刟$揚荲b謃Yr	& ┥&湸丈)x蛏Z馰溂昡'_`籽(2'穕u伛囤羂碗T綐UV)䏝rJV2窙刘*p联]
Β眧隧嘸専*珋	+&奪+
歔BH';#勧<繰s7k夈扽.5虭櫞僡
$,N{rb訥O褌5牡d(%襎g-X"5贓	7赘洧速[讴s=縤]颂T ;  070701000214b6000081a40000000000000002000000013ac0389a000007e6000000200000000000000000000000000000001f00000003reloc/bind8/images/forward.gif    GIF89a0 0   橐骞徔跄⒓蛼浸隔钗鋳F粌y酤跻茑呛徸挂佼淘で蓧唇rh〔Z湠倓朴砷亳媾赈驹粁哳媸荻~溈Z﹦B|鶘緢胒鲍h毑~极F懀3喚2塍钰纩鲻蚯r疮S暍\お暦薹筑囹矶y懷灻脋^濄瀯崔珂庆胝辋荥爻蝌纩疤邢椝蕦逝埰苳陆t弿侙燹谅u翰dG笠耶汗g;Ε4じ(兮饨亿讵那埦緉抖[膊Sⅱ 潩7噜醋证抑潽猟铗軂骀飻 悐
|攺瓝D陪钤威擇槚湰<湝态灱袞厔p埜孌拠簞x硓n珚^刴bNzP蔺耿糽溽窆箟挦虤捖}s獁j琭Zハ籂惒竀政拨毱pg╖j犅很矾颖虀N敽憕膊|毊D悍晕沁唵逮颤挛t椅鋋V渾粳谙缜拈~z碙B|圬韉姢侭瑉z   EE2CC.nnD袌═HQ┅ň綥霻TT⑵,VV4??$))忖鄋m5150.3OL\rl'&.96DNbp噸888TKA@@'敂Uee2OO%qqpTES2TXJg876弾m崓孮TQBAM30@威侑Δrrr帋999乔荱UU沣!Made with GIMP !   ,    0 0   	H盃羶*\劝∶#J淗睜
T(酂(X繾忝@坧@
,榣xC+[N楶a肔8t篱伮N
@(鵒冇1`h$Jli妬Kac
*:@)p$
["Ul优梦璌F劒1葮q`k
+膝k扚Z5Z趢I俰由72佬A-K7*芾!P0S!7T機ｋdO泥	
饇郆晴S爨仯~| 脥挕⺈"d!E<偂皳匞,0匋y$Ip瘌稡峡&;谅LAC QDM O@舠疎<H聊T((DD aEW`1Yh爘窭;lA],垊塚え,8G蘕#T鋁迬'衫F谌厛U4丐奛@)`CG(DB !(舘0>De:AF	aNphQj埞6*眴@i^菷X`酔lP鄦TL$溛堣J$缊!珸pH殊n尼E4n僚A嗅@;"怸d岐u剙輥噂毙i
Nべb!茝Ay璞|翎
腂l衂 HT傸3葕O禿ゐ !圁伻!  S)壈 "Cl蜒?嫭槄縢粤x84b:仪#?艛?(SDC仵p+h怐"$&隺埜
B	A,蠪%lH$U4%F瓷棓処&AO2#歭⑶!	#卑収V*菼&jMa縬剂@'悁K*{馍A熇崵扗敻e蟦笐狆I(E!!帉瞦A咼1W
褁>R▍>
)爛M偘)辋蝇d朎<Na哀剨 倀v$俤扖2夾け峈p憡*聤(z褗+c<!嘑糱H#鲂&岜萺滒┨b艌Lj 怐b∨@
綞"D,0僙仫 芭X
槨<D.r遭劵/R翄焘金/塦c(1ja*$档82挕宔8a锑E-汃廸菳=擡-孎`"檟4iI匑癝媔Pa脆?d褜4:渊5抹媖`#S4"苼hc酕7捡岪z噜?骸堮嘾F倓咝!)ol2掄$8蒊nc(銪T9恜|镕8b9薾纑戇-u9恛紃?1I@  ;  070701000214b7000081a40000000000000002000000013ac0389a0000013b000000200000000000000000000000000000002200000003reloc/bind8/images/forwarding.gif GIF89a0 0   烫   烫H睲z櫃櫘裁fff  !Made with GIMP !   ,    0 0  逐蒊8胪`(巇i瀐l刖ptm叻咃荒5痃幦@.熑鎯匤)躁R氄&瘬5帲鐧湠氉噔-熐輘f[\M+Y~cec	倃亗Z刏啂彁慯孭憱棅O敃槤搟o}噈Xf唭燙4	6BAn9炒"=骄!柯侗赋X姜z蔆蘟4略巩月植乜讠诬蟕5徕さ噌2祉铒瘃蝮趱鲼 ; 070701000214b8000081a40000000000000002000000013ac0389a000007df000000200000000000000000000000000000001c00000003reloc/bind8/images/icon.gif   GIF89a0 0   剛侣vDDⅱ/奃xbb溻狡劥Ζ寗俻矣檉dhb&T英""拻膊攆F\妀剺vv排刽翕砸萊R膊S43
rrq獋滍胝楾劒Υ62\殩じ慈倐X饴"4＃\垈犼珍瞗ff<uu?烫竀VTtl擥BW滗銝朙苴泉狣苴沺|rㄊ蕣簰瑤峵寢mkq汉dB4<纯w琹l椇簲~~lF2D郊糡Lh濲刪Td{{UUA祆>"<殮棠搦儆>>妸<犹洙\敽哪à4埰拒闯溔筰||W`\`痄燧芏蜁骀虝摋崀嚧磑55,{u剴尐ll8湜拵帊媼'獉~&砙準苿Ζ<孞|杺屨枝oeq排臏寯蝾蹳<L瑅>l*&@z2l俍|诓蘶BlJJR>LB*<ZZ_宆斻蒌紁ㄙ媸輓\l蕷稼涸|Lp殠腛F:4bZ6.T盯**$殮LF=n緤琙Z<垀瑲F劕K敤帬R.L拞紦'WN塏&D歂刏.LJ:<儍$ⅱ剙|剬孿ujz:將毮即趾簞mm梁趈jP巖劼~毚ff$jb剅r,VV$ttX敂^技::<NN4甊敯ぬ桎鸩潨!懂>6d淳都NF\倂绰総rn黵nD渂^$厔傰豸bbT怂莢l蒇L挝橿Zt枌记姶Δ
nBdZT\拗璁^溾薮赕虤枩勃铺畆溡災rn$$铂磣:l饩云苶ff骀臇枌种讯禱vvt灇皢哱帋揪m!Made with GIMP ,    0 0   	H盃羶*\劝∶#J淗睜R:榩渔1云Lp`啈凧弩刃Q恌yvAzg&0u枻a筆堞戣4冟f漛抶*斪(==2簞\)J>懷(X>|P瘿(.竐-P3榙S	缳ym"櫡y鴓胗.桝鳗PJ箑at骪眣(&惢H(A"Y.撏譟ZbtM!*暝1剼 槞dF堨:鐮竒,幄罃*褱a  ".疳觨1{賰G 腅椢灲鯃2倅薬G 4\^癡)5痔艳旖缾><!攒0}莛急NpB{>h6>戴B2鞝5s(笳S ?栌w蹵)粳擂売^B2@愊=4錉,  母H75豖{> <j躶 :e ヾ}悬P8 {2怷燗2ち爍6乩b9>鸂%哀袥捎=詙@y"	?璩F7菰HānJg燗	绦(^趢d=燨2w *◢䦅扒艫S尼轆翤郍棌ⅲ>=斜"拘袰{J鐉 碔O崧怡C7	S8rC PJ=j&恫'嶢 ⊥>狦+bZ±/@<Q緥悀貁〨'-埍 v粓0h2QP蚂ンT瞺d嫀9励馪@A<欄O厒剔a仔[=緸@`珹2
nl昧覎S%A荓伈钹6佐S襖J5k翕,枠漱3傡C鍍=)gkh銉 F3"鶧M幰舝-苵1)8l6靬鈮6ic4赍蔋	蘰B爃諬{N鬊K#c
*矊'靑r:=E崸烍亳仸i1 -薁拞卷	S7聬m`韎赁鈥pE蚀仌@噸# 0;)I舂G欮敱蒓:9 匸垹d倚F(歧癭敐 ェ1夔L#?d%廲LP
#`^駥+慇"袀d+I,騿鬘▉;魻蓤 p(
縻^鎴'滾,CZ袴?諴唞储啛~ 貎釶评$$T怋儛yb'y0:褗塘	多艩.m窣新F9@* 蝖詴/癭 ADCP 2栁 `塰t/6xp/X!缕1,枝DlhO0圐鐥鍮 ; 070701000214b9000081a40000000000000002000000013ac0389a000001d6000000200000000000000000000000000000001f00000003reloc/bind8/images/logging.gif    GIF89a0 0   櫃檉ff烫            !   ,    0 0  㧏	18[汹麪h$xㄣ卄Yv芎0諍'z7ZDg;3IQ墪s4q愙(ザi+C惠c
bo]韪7Lg\y疓/鷒$zhwak唦#:僫N"妏寍墤巃y敄"槒D慶w嶥6廳V:猺6X圥矋~瓭櫒 海朅秞皾杭絅l9萴
材灯.,VI,汜Y謉T餭X>鎚遺o)VKA旺鏝*W歶7綺>1菩TA#*=冟湬酕Wwh,4駧G捙B塍缪J嫯4籏5杉僤憯=Z瀌鰘4"'.mM3櫹檱j厷7區蔶掙>D'4%#r臛_e8J2親g:窘86c%N堬T 馵霎粤幝S掆
i0;o 赦 錌嬑燙M鶥 ;  070701000214ba000081a40000000000000002000000013ac0389a00000796000000200000000000000000000000000000001e00000003reloc/bind8/images/master.gif GIF89a0 0   橐骞徔跄⒓蛼浸隔钗鋳F粌y酤跻茑呛徸挂佼淘で蓧唇rh〔Z湠倓朴砷亳媾赈驹粁哳媸荻~溈Z﹦B|鶘緢胒鲍h毑~极F懀3喚2塍钰纩鲻蚯r疮S暍\お暦薹筑囹矶y懷灻脋^濄瀯崔珂庆胝辋荥爻蝌纩疤邢椝蕦逝埰苳陆t弿侙燹谅u翰dG笠耶汗g;Ε4じ(兮饨亿讵那埦緉抖[膊Sⅱ 潩7噜醋证抑潽猟槚湝帿铗軂骀飻 簻\悐
|攺瓝D陪钤威擇湰<态灱袞厔p埜孌拠簞x硓n珚^刴bNzP蔺耿糽溽窆箟挦虤捖}s獁j琭Zハ籂惒竀政拨毱pg╖j犅很矾颖虀N敽憕膊|毊D悍晕沁唵逮颤挛t椅鋋V渾粳谙缜拈~z碙B|圬韉姢侭瑉z鶈僙   ~~I*7蟹逼棏珗ê妉揪L丯TT1灊mTTT鞂墭@>I⑵,剟R@@'**qqp崓888忖郆AM悠0.3eau槓'&.96D!*0兮趛y<;;LL{┅ㄆ⒙\Un|z峊T=xq桱g876破腉G6刐qA剛汸PL30@DTHSSR猆UU999rrr乔倾沣帋!Made with GIMP !   ,    0 0   	H盃羶*\劝∶#J淗睜
T(酂(X繾忝@坧@
,榣xC+[N楶a肔8t篱伮N
@(C+ QbL'P4=槀儕|
\q壄Yp鷢`.N粿[F1葮q纉
+ゑg崠6`抈*x 啦tyＢ	螑 亗嵜*捞1矦n悹  .t蠱眱>|垘7n"d!E<偂喬?$	V(Y馒鐟GX,a匄!H4i侱墦'P4"厙&S〝R+M\亝{Od`3窭;lA]槆V▌f馝侴, TDX軇 Z堘`刟,堘\霿z%鵀V裘?餈茋
憛H攁Fb楨g啼@:丗	∑N豖`罠戓F;H釥oDp膩JfeP1 ?涔牂S(! 鼌r鐤_蘄EQ"僛pQGv8迍
鐪_蹵x攪膫瀌)DX8Ad㧐斄Fn嫂砹GF 旡Q礼h僛" Q >騉!>羍琱ゐ +"夵"  -z(嫲 #Cl蜒?梜茚坧8<-籅騁$?E?|g&SDC乎p誶	f扡BI%伻&b	A,%p"U4&F Y檾ど&WR	$渢翯"*im'屽y膺2縢-r0饓$8K偳E褔罓rP(G("X_戳(SK2
AQ悞$ヌ[橰;E䦟B愅磪飅!)榖(8裘)媻)<7"蝀勝7f憡@B'8OB&9祚m"腀[0(鶰
+鑵+瘶チ側#,,[c}烉滥丛b盾侹l洧.嫾犷@继@)进2$13($/伕藔0M񚨆稽CL1?孮宂蒔2樠g<`0堘6'覙5LQ宩舣.k\儇6	nt#傓坣p劽灭vVe 41挘骛%rt#闤G讘侙p靈:醒䞍腽bD酣*NMl:芰Et搞閻b!F垁駤a迹F)嗰腓9!:&" ;  070701000214bb000081a40000000000000002000000013ac0389a000001cc000000200000000000000000000000000000001c00000003reloc/bind8/images/misc.gif   GIF89a0 0   櫃櫶烫   !    ,    0 0  ⻊	甲岒蛬T睼c陖耯箿c#槎+倂窝莞h%A 9洂舯@瀂
罧9=榍Z鈋/L瀨荾7&嬎[篡g制礸陞*U{ag&2鵂非%' XXSgGG(貴╱虏Y雎s)驋y赧9%33历:`
{  蓑z袺;;埴`{汸睖塥0 m潦郜 D-1离,卷,L:-蜰.l-峠觐n6<,唀#棌簝盞妗聢
5A瀴吼c灞hZi5r諭#+v躻蔅儇TⅰH幬B戞焯	1=c滗Y4MO倈*麻枽Nw蕠R,t怓吤顷濶^杰
uiY'QZ'3q昃w滼d硚祸羷遯簸唘p(EJ编槓n琷夊;)kV咘!葤1  ;070701000214bc000081a40000000000000002000000013ac0389a000001de000000200000000000000000000000000000001b00000003reloc/bind8/images/net.gif    GIF89a0 0   fff烫   櫃         !    ,    0 0  很0独璨t龜*Ｓ]榃ミ鎾*倬+薥=w1}"赿'$nN筏蓛順=塼*X嫬^砡*@鰱穏q椝nw尊q\m纂v;铽醎|{~y乗
媶噝k{\峿弾抭妺潟漻] 牉寠R寉灆￢廠ぅ┉ごT潹颅衰拦捛夏T 患蕾召呜僦棕浊滂煦赕怃麴锺篪蝥叔kg磔?:濧啌hn猞3j|@预C"!挙挾T
ftl	r@hf股sB蜝;骝tJQ琝哛舰t檎疪眾倞E,Pc奞骃3ァ篎E5+U〈襃,卜6J洛p簣v耦銌P演谯7p=yOIqB倫V茱q@	C秝佼嗤K慈"膱藭<% ;  070701000214bd000081a40000000000000002000000013ac0389a00000eb8000000200000000000000000000000000000001f00000003reloc/bind8/images/no-home.gif    GIF89a] P  黹赭蜾眄劓袦烙⒛支却彥耍枯笛橐鉄I嚩_潰X嵍d熀i－c樈s~壎虛紣p囑嗑皱容獶惎R棶Q$盫櫜Y毘Z泬EwE%=tHi栉犷哧0嘡5L	纛kgk姨襏SU,1
鲶掮棠哂啼呲腌沭董颐悔僭绔∷rg焭o喓洃陇浨皑匣粗&rf﹜n瓅q瘈t矄{礶^唭|C俌N3-U@8i`U瀏[Cvladj
鸾纀聊l送嵶佴6P购_媚z侨伾蕡蜗徰覛釉澮訚哉熣症刭н啾殭 槚 枖 晸 拺 崑 儊 qp _^   {z悗88晹MM敁拹槜	晹洑亐晸洑槜灊悙

牋"儌灋"'ⅰ)ぃ+ⅰ-``tt"イ3Ζ5┄8Е8┄=拻5BBEFⅰBK┅IL鞍O巢Q鞍P巢U荡W创Z<<脖Z抖^阜b缓e　W郊j换jhh;创g浇n揽r铝v巢m侣y拿{哪{婆~拍~wwNQQ5缮吺蕡缮埩羶怂嬎藢贩~((屯懴蠑行柆瑍览広讵乙噜封饣巺卲觋鸯煸镲陴疖沣殷筱鲻犒鼔 '& hf/.あ-é:B弾Q绕偼藣噬嬓蠒刈鬲苒诋掭赤叻邃骆迤觊舞缣苴钭痫陧胗鞕搲752铝趑览   !   ,    ] P @ 	H盃羶*\劝∶	胼#P`@p纮(L!H瑎炔ッT0Q疋駦0$N淍懧パat(T桫qBXA剙 艼嚱XV00]氖#lL8\穎蓨錴*p瘑濟腎%o楴%K8叱kY狹';v霘1K.櫄4f圆uW.軺猂"5蔛逰&us螣~刌緃砚=k;,9澓Y}纥!x蔠.p馆iD蚀咴):圡7n嗵1[l埈^茗q渖鐢鞪敤卫D瑉蛫Tp+椅Q珫N滿渓 ns(潴A &GQESDEN`,|判3鞤驰y擸啓fm譢u6Zi莀um1?-豟C:
I懩R1DX　C谲1;戆c#wG#洈"薴*zV+呠AGv斎wP?2纏O q:颞C 懩:聊Wt?碆(p$ C "8 B )C粜dF| HO%伬APBy伴B"TPF9
RH"ズ*	E翃.c/縿SK-s丆朄lイ拪翨磳=簷譡e梕禫姖歨高t勑憁C(cM芳MVYj敗J!qRL.椚慚x0
/'鉻亴骨c+ 鄀!^n逭浳9k9 烸*忠J)爃B#睮(闒前u亓G9眲僀>憦1P4羷.纑軄I;骹L"'Ｋ.跫侹x斯	翘7
=Dv婀'ID艩OH罝UHHD-傿咹5馠夆rY頶.
'涜'3 w鎻-虁s仲K 鮄衩"aU檛K啍i2聢,珮J&<2]$uP 羶S<a|埽#Q膮塉l2$磒A$溷浙鬨愌FTU&u衻o殏橉轺
旽=*#x繭鷦  36lA+$ B蔼爈郱麮
$ P鋧8@P懒尟~ <iE)-0侞.\卭|pG 溞P1 両D(De$@F﹡7l.悂"维胮軥靝
LDB奍L湵e糮鬚釟%s%F腺" ,置 蠄.2瓻鐱ｃ褕@繿I鼉及唈HCp1娏杙洧獝,Z秚f囏#-屚q2鐷G9霢8酿妬黙r繡&L∏咍:儋唟迏崐]L庌RG3蔖圚,銟猫.劇"Z銠瑘&(,骨欋w@%Bd@劆
V>|9zEF關%鹦<!-x1婰B鴾6霭堟埻5 	B齹gH皼戃F4&,)!鞲n1Oz+慮8F=氱"礹駣<*l]怨AP9=)	Z悆L!#akB膼Sぃ,Q清D/U矕(Pi'(m姺穫`T 襇+D4(8A!鹔A虸祵3?9$" :犃2! !J郰凱"8tE3γ蒆F衟cnEi5' 垿馎旇!罾漮.AG耚;閴O0UP儗p$ 石,9$qnL茇8萿f艂挮X`p`嶯9葋TypZ>)段勖>鲪nh0!谟F
Dpt)堶
廷z讻l#餈Y0)(xA 騋(@W  WJ騺览鱡P鄠[}OW猓@疞0,J郹峘 夝刄5D筏鑠b8@'!0烶H /d/xF<u8 	郅Cn纴#葦覀葎@慩纗UB妢<$颣0R~ ;U呭 羂&:t|
齁吕苰!1餈=pg0啰
AW 0 `50ｂ
O崘9` 2(缿猔e#枥宠e粁耪$G  
Dm-%y8肶隋瑑!	P0茸汽;H=8菱F>訌St/掵&g该H v駥3橎盕M\(N鷪H攳矫p嗋攓幏馰%=纛嗃Y9Tx決嗾<稇D塗芒蠓!嬊癩剙:A;鋋03>芶懵鱴5q6I	*招`攤`-(亣A4B玐膍C葬镺?Z瘵%d<錊L#樞唗飷8hB鍸喟峲g楔zo藟8塘貳8~亯備AR1I筓b 皢>,v駮烻尚Dm驃_郆螺!1宎H8)醝枬;V紻<縫u擟(柋勸嫝謆矵豚gDz戙潬(怋i癅
骢&CC-b
Q|.p眾C阁鹮 7pf 魛
QPB竄疮.譖襟?檸t涪is0t@{0敌	yP軺{3p 侔!0:3S{E!鬢|$w爐0b0"%ML{`]僬w/S祺 Zu72Hs 抲	0嶨G]y!9粈禒  ┌tI晘i覾0G BF`7S@:!p蹳-苧GG%z3BS :#y'? R IW^Q燩鬢4 x  qph桾轴;PZCL:aL怭E6M悎园pB鮪 s2鑹l8ft#="鉛2Γ嗹魼LH嫐鑠憰嫎圇厲3'づ#BJ >(!┿pv  依鏿嚪崲	峆斷伬Y70s9纗'藚Z猽PXQ@(a{	i屠轅
糮f蠿	奝Yw嚢Y$7X<'Z猆M S郩緯E
閌T啇t0wEe. 	诎KQypzAr;B圔皟A!D0,踿3瘍$嚼/%.I07p9A`擆gB9 R=墍嘝0頂wp殑齪0MR`V N207Dc^榕i ;070701000214be000081a40000000000000002000000013ac0389a0000014d000000200000000000000000000000000000001f00000003reloc/bind8/images/options.gif    GIF89a0 0   忍葮槝PP鴃d`   槝!Made with GIMP !
  ,    0 0  䎬很0蔍8胪`Hdi瀐p,蟭m蹆+|_疈,徣d铕J:熜0╖瑅LxLu tX趆Z蚟眠_瞺_f債+yl@ 噲'刪墡$y*帍c搱恌+枟暃榽殯dT潠)ⅲ獡瑏(懙阜复儗o瘚o叆}腷暮'辣斔&蜕┬%襛蕶签荧怒(专策还阪佌閏腱aS飥K^\鼬鵘" {mHP鄴\x!搮"苑稀艐3j鼦  ;   070701000214bf000081a40000000000000002000000013ac0389a00000174000000200000000000000000000000000000001f00000003reloc/bind8/images/servers.gif    GIF89a0 0   烫   烫H睲z櫃櫘裁fff  !Made with GIMP !   ,    0 0  蒊8永&^`Y庤	l刖棪+l2jvjp吖佧賯⑨県|!5JX賚=3Q'&距瘅憉M%5n楒;撍+庅V澶;团c=|wnB&z;3實剤4帊剚 3攷殲憳濱寫k湐嫪<c氨A硑挻m"	(縟媚攀荄#ct1:軵$嶝絟z专=<槲K铩囶*岑珌鏷栦I1鱈S祤祙陾袑▋d堣!CzU颰( [蒇襝蓌BN2 ;070701000214c0000081a40000000000000002000000013ac0389a00000780000000200000000000000000000000000000001d00000003reloc/bind8/images/slave.gif  GIF89a0 0   翳蜍沁演嫔撖垸鲦衽？萘践桧镢芮胲桁皱橐沅馁薰折葱丨蜗谅忾漪禅蜮麴揲菁睁秭蜾钰课攮月【弈岢卣赐乜菡Ｈ褮棉櫿貂祢埴愎僮旬艺售钲掰秫鲒既柘後恐诏务下兕篁沲蹶酤睨胭蟒族珑隋淦溻拟饨噢呵抢钹嗪茇仓证柚苘痴諡右氁蹟祓疝桁枕煺徙霓薹谮鬲蜒愇螠镲匐暌桕握詹趟兾螇钦傱空傭蝼嗜冄蠍芪艆峻窍堉散怦鲩纩渗蚜傼缥找炐絺逭陷缢侣劯嫩脾遮擅苈假椒张侗噎а浇演恶瘌苘纳渝蜕嗑拐坏粘琬腥刿油飧吃朽茼圩樨真昭蹇苋控鼐椭④坶驺锩觅婧桄癜棉侦珞汜艨劫Α卷膂才伊≌浇傸觞^Z;*.$EE0/."妦VTTT┅ㄕ冂睦攒哦揶Σ睔888称跹鈻226ひ拓   xv_]f灙787忖醧qq破艒崒‵DK880潮害柯-,2'+/拍肧TS妸喣磕纩霼UU帋帾rrr沣闱乔999!Made with GIMP !
  ,    0 0   	H盃羶*\劝∶#J淗睜
T(酂(X繾忝@坧@
,榣xC+[N楶a肔8t篱伮N
@(C+ QbL'P4=槀儕|
\q壄Yp鷢`.N粿[F1葮q纉
+ゑg崠6`抈*x 啦tyＢ	螑 亗嵜*捞1矦n悹  .t蠱眱>|垘7n"d!E<偂喬?$	V(Y馒鐟GX,a匄!H4i侱墦'P4"厙&S〝R+M\亝{Od`3窭;lA]槆V▌f馝侴, TDX軇 Z堘`刟,堘\霿z%鵀V裘?餈茋
憛H攁Fb楨g啼@:丗	∑N豖`罠戓F;H釥oDp膩JfeP1 ?涔牂S(! 鼌r鐤_蘄EQ"僛pQGv8迍
鐪_蹵x攪膫瀌)DX8Ad㧐斄Fn嫂砹GF 旡Q礼h僛" Q >騉!>羍琱ゐ +"夵"  -z(嫲 #Cl蜒?梜茚坧8<-籅騁$?E?|g&SDC乎p誶	f扡BI%伻&b	A,%p"U4&F Y檾ど&WR	$渢翯"*im'屽y膺2縢-r0饓$8K偳E褔罓rP(G("X_戳(SK2
AQ悞$ヌ[橰;E䦟B愅磪飅!)榖(8裘)媻)<7"蝀勝7f憡@B'8OB&9祚m"腀[0(鶰Gc^J+R ,比側#傮掐1酥X磪'<01-礨塎癮-,侹.瘙.3`试揕1 0傿埢≦\費乓浸防翶/绝咘a 艭陴9G1~q媌c8?悜M(c蘦3淹?`棪 飯QX"1ρj丱傍匢猘崄TG腇戻弆TCb礱抣l桌7湗#nc嬴6!$汃'赘0︸c6秩8欶" ;070701000214c1000081a40000000000000002000000013ac0389a000001b2000000200000000000000000000000000000001b00000003reloc/bind8/images/soa.gif    GIF89a0 0   沣鉹rrUUU   乔999帋!Made with GIMP !    ,    0 0  菼8胪`(巇i瀐l霋041E_!状 w 彽'咢"忌,$4&<伮醲儣)A0,M|х5!	@	M|zv5@\5eg崕Qar搣xN晫3cNzZ=k`GJ 稓N6!茨腹4浆g粒6!1立杖疓哒苦qH撿 梷肛4 	釢\幍 岃'甔Z倃B	迒YX处颐
ICN涃khI"5雧驐$,	P]1!zn$1葊魻魗鉉賮媫卮t奀仹?剚书呎玐砵菔但庄`脢 ;  070701000214c2000081a40000000000000002000000013ac0389a0000076e000000200000000000000000000000000000001c00000003reloc/bind8/images/stub.gif   GIF89a0 0   翳蜍沁演嫔撖垸鲦衽？萘践桧镢芮胲桁皱橐沅馁薰折葱丨蜗谅忾漪禅蜮麴揲菁睁秭蜾钰课攮月【弈岢卣赐乜菡Ｈ褮棉櫿貂祢埴愎僮旬艺售钲掰秫鲒既柘後恐诏务下兕篁沲蹶酤睨胭蟒族珑隋淦溻拟饨噢呵抢钹嗪茇仓证柚苘痴諡右氁蹟祓疝桁枕煺徙霓薹谮鬲蜒愇螠镲匐暌桕握詹趟兾螇钦傱空傭蝼嗜冄蠍芪艆峻窍堉散怦鲩纩渗蚜傼缥找炐絺逭陷缢侣劯嫩脾遮擅苈假椒张侗噎а浇演恶瘌苘纳渝蜕嗑拐坏粘琬腥刿油飧吃朽茼圩樨真昭蹇苋控鼐椭④坶驺锩觅婧桄癜棉侦珞汜艨劫Α卷膂才伊≌浇傸觞铀喛谣qno888TTT/03~{幐房淌詥倰A@F芘掇蕈妹疗婆IBJ灉}愌鈻┅656复   HGL帇榲qqqTMT寛枽柯DCJzw島亷887忖釐崒ΙèUU帋帾999乔倾沣rrr!Made with GIMP !
  ,    0 0   	H盃羶*\劝∶#J淗睜
T(酂(X繾忝@坧@
,榣xC+[N楶a肔8t篱伮N
@(C+ QbL'P4=槀儕|
\q壄Yp鷢`.N粿[F1葮q纉
+ゑg崠6`抈*x 啦tyＢ	螑 亗嵜*捞1矦n悹  .t蠱眱>|垘7n"d!E<偂喬?$	V(Y馒鐟GX,a匄!H4i侱墦'P4"厙&S〝R+M\亝{Od`3窭;lA]槆V▌f馝侴, TDX軇 Z堘`刟,堘\霿z%鵀V裘?餈茋
憛H攁Fb楨g啼@:丗	∑N豖`罠戓F;H釥oDp膩JfeP1 ?涔牂S(! 鼌r鐤_蘄EQ"僛pQGv8迍
鐪_蹵x攪膫瀌)DX8Ad㧐斄Fn嫂砹GF 旡Q礼h僛" Q >騉!>羍琱ゐ +"夵"  -z(嫲 #Cl蜒?梜茚坧8<-籅騁$?E?|g&SDC乎p誶	f扡BI%伻&b	A,%p"U4&F Y檾ど&WR	$渢翯"*im'屽y膺2縢-r0饓$8K偳E褔罓rP(G("X_戳(SK2
AQ悞$ヌ[橰;E䦟B愅磪飅!)榖(8裘)媻)<7"蝀勝7f憡@B'8OB&9祚m"腀[0(鶰Gc^O醒+#蔡傮掐襌酥X磪'<01-稾塎!凘嫾亱+澧火2$損躃-虪 .jWv龗03L(1庱
W!m鴱渀S胮2r駨d(C秘2樠g<C 莯艭t廿	!袌0狇
i宐P3峎lJ51恓\脟=?|鳦乣#[6琿峬pC肇6竌kF!,"Q 仔6畱峫1d4岲 ;  070701000214c3000081a40000000000000002000000013ac0389a00000131000000200000000000000000000000000000001c00000003reloc/bind8/images/text.gif   GIF89a0 0   `d`槝樔倘   !Made with GIMP !
  ,    0 0  鋢很0蔍8胪`Hdi瀐伈緋Lx|镧@P;H 筎*PaJ碋疿``X$龢态O碍o鈚徧碟拋fX=`浗魘杰E鬣MzZmg倀v}r:pO唟剎嶻圴8s拸w~橯攨槍崅煈漃7杛┃W瘈棦妝▅n筩粎骄惇５榡噶<瞦嫵扴浭kBw4D仝圮蒉
剡沅錏"彖d 眍[0鳅 
  ;   070701000214c4000081a40000000000000002000000013ac0389a0000069c000000200000000000000000000000000000001f00000003reloc/bind8/images/zonedef.gif    GIF89a0 0   彥英奶摷塃w姨覚搲嗑众葔督sêi２Y殶I嚽铝碡驽容砕涱哧聗V櫠d煭c槴D悾0図殡蜾碇嶛貘莸旬Q暥_澩蛻邢曀藡绕偲舿铝v弾Q览幋磄B桤桃訚釉澖絥缓e抖^巢UKЕ8ぃ+黼渝渎乙诋刭Г-牋"镱奏喾槜	篌沭疖洑儊 鲻昴脅哉煘"退嵞膡悗'洑苒5崑 拍~墕 槚 觋艳莩F亮兂睶枖 疣叻谮爪~贩~rg熪诋墒埁:噬嫊L憜簡{祕od^唋aU瀁N桘阜b缮垻　W拺 洃聕q痷j玤[∈蕡莯t瞴n璻f┳佴没诨粗皑汐∷拻5棠進C倕卲祆杂啼廪邕陔僭绗獷鲶沭億♀饣觊螘攝HH8FG5..!噰\剝	GG倈<9Fmg剨奷TTT揽r湚e槜┅><G董   ⅰ-qqMYX:亖P**>>!qqp888崓屍颇忖郙KP悕歽s宊Yq95CYSw剠V@?&ΕY┄8*&;2!Made with GIMP !    ,    0 0   H盃羶*\劝∶#J淗馺
  亴8`c4 尚$M佸B`"槹@撂6xyBf^纮!^n郂pA劌3?0認新濴蓘珹DKH罁AVsB恵D
x&@癭翭hR<D吳 饋q翚 B%L湴l単&RT醰臔-N噕F*f衟Zc厤8r宁<祸碥:v劁眼F忇肣佣峽Fr  i㘎竘訌㘚"鋹砭籊/A$|蹁6p^d剳#H(1栬9M8@O
%稤Q`$E=LA臔$T1V赭亝v蚭AU擛F"E#R]tQj嗾肘鋮C1r.X%紣膾c悂.&APf渷Fj艫m欈=嗥p噰W臔e藺%u╝aqwL5锜k!n殤{乇mhG!|敔@=鶡@} z(s.骸1焢\T	'瘅$v !H1 冊鐪4农脲X﹗$痊~≦{dIt吖gi bH}dFh$舁w	腌 捜溄d甏銳g;" b痊T评y罊#徹 I$扡BI%雎 %梎A嵭亣總d	 J嚥	欚'8'焵R\( 堃IBs$bH&R
f埅)2t
*%あ* 惺%襃'@) 8,硨BK)地騮'R+碄粪拫.混缞+A7@'-/]侥龏j+3軛t53"%qS(v莬I+瑒潗攮0>3 %R-麾峠+桹^(	跶o願+$痛+>(畏B3
A孙歡w瘼(繐鍼@ ;0707010001fb41000081e40000000000000002000000013ac0389a00000c38000000200000000000000000000000000000001d00000003reloc/bind8/create_slave.cgi  #!/usr/local/bin/perl
# create_slave.cgi
# Create a new slave zone

require './bind8-lib.pl';
&ReadParse();
&error_setup($in{'type'} ? $text{'screate_err1'} : $text{'screate_err2'});
%access = &get_module_acl();
$access{'slave'} || &error($in{'type'} ? $text{'screate_ecannot1'}
				       : $text{'screate_ecannot2'});
$access{'ro'} && &error($text{'master_ero'});
$conf = &get_config();

# validate inputs
if ($in{'rev'}) {
	local($ipv4);
	($ipv4 = &check_net_ip($in{'zone'})) ||
	$config{'support_aaaa'} &&
	($in{'zone'} =~ /^([\w:]+)(\/\d+)$/ || &check_ip6address($1)) ||
                &error(&text('create_enet', $in{'zone'}));
	if ($ipv4) {
		$in{'zone'} = &ip_to_arpa($in{'zone'});
		}
	else {
		$in{'zone'} = &net_to_ip6int($1, ($2 ? substr($2, 1) : "" ));
		}
	}
else {
	($in{'zone'} =~ /^[\d\.]+$/ || $in{'zone'} =~ /^[\d\:]+(\/[\d]+)?$/) &&
		&error(&text('create_edom2', $in{'zone'}));
	&valdnsname($in{'zone'}, 0, ".") ||
		&error(&text('create_edom', $in{'zone'}));
        }
$in{'zone'} =~ s/\.$//;
foreach $z (&find("zone", $conf)) {
	if ($z->{'value'} eq $in{'zone'}) {
		&error($text{'master_etaken'});
		}
	}
@masters = split(/\s+/, $in{'masters'});
foreach $m (@masters) {
	&check_ipaddress($m) ||
		&error(&text('create_emaster', $m));
	}
if (!@masters) {
	&error($text{'create_enone'});
	}
$base = $config{'slave_dir'} ? $config{'slave_dir'} :
	$access{'dir'} eq '/' ? &base_directory($conf) :
				$access{'dir'};
if ($in{'file_def'} == 0) {
	# Use the entered filename
	$in{'file'} =~ /^\S+$/ ||
		&error(&text('create_efile', $in{'file'}));
	$in{'file'} =~ s/^$config{'chroot'}//;
	if ($in{'file'} !~ /^\//) {
		$file = $base."/".$in{'file'};
		}
	else { $file = $in{'file'}; }
	&allowed_zone_file(\%access, $file) ||
		&error(&text('create_efile2', $file));
	open(ZONE, "> $config{'chroot'}$file") ||
		&error(&text('create_efile3', $file, $!));
	close(ZONE);
	&set_ownership("$config{'chroot'}$file");
	}
elsif ($in{'file_def'} == 2) {
	if ($in{'rev'}) {
		# create filename for reverse zone
		$file = &ip6int_to_net(&arpa_to_ip($in{'zone'}));
		$file = s/\//_/;
		$file = $base."/".$in{'zone'}.".rev";
		}
	else {
		# create filename for forward zone
		$file = $base."/".$in{'zone'}.".hosts";
		}
	open(ZONE, "> $config{'chroot'}$file") ||
		&error(&text('create_efile3', $file, $!));
	close(ZONE);
	&set_ownership("$config{'chroot'}$file");
	}

# Create zone directive
&lock_file($config{'chroot'}.$config{'named_conf'});
open(CONF, ">>$config{'chroot'}$config{'named_conf'}");
print CONF "zone \"$in{'zone'}\" {\n";
print CONF "\ttype ",$in{'type'} ? 'slave' : 'stub',";\n";
if ($file) { print CONF "\tfile \"$file\";\n"; }
print CONF "\tmasters {\n";
foreach $m (@masters) { print CONF "\t\t$m;\n"; }
print CONF "\t\t};\n";
print CONF "\t};\n";
print CONF "\n";
close(CONF);
&unlock_file($config{'chroot'}.$config{'named_conf'});
&webmin_log("create", $in{'type'} ? 'slave' : 'stub', $in{'zone'}, \%in);

# Add the new zone to the access list
if ($access{'zones'} ne '*') {
	$access{'zones'} .= " ".$in{'zone'};
	&save_module_acl(\%access);
	}
&redirect("edit_slave.cgi?index=".scalar(@$conf));

0707010001fb42000081a40000000000000002000000013ac0389a00000ad1000000200000000000000000000000000000001500000003reloc/bind8/db.cache  ;       This file holds the information on root name servers needed to
;       initialize cache of Internet domain name servers
;       (e.g. reference this file in the "cache  .  <file>"
;       configuration file of BIND domain name servers).
;
;       This file is made available by InterNIC registration services
;       under anonymous FTP as
;           file                /domain/named.root
;           on server           FTP.RS.INTERNIC.NET
;       -OR- under Gopher at    RS.INTERNIC.NET
;           under menu          InterNIC Registration Services (NSI)
;              submenu          InterNIC Registration Archives
;           file                named.root
;
;       last update:    Aug 22, 1997
;       related version of root zone:   1997082200
;
;
; formerly NS.INTERNIC.NET
;
.                        3600000  IN  NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
;
; formerly NS1.ISI.EDU
;
.                        3600000      NS    B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET.      3600000      A     128.9.0.107
;
; formerly C.PSI.NET
;
.                        3600000      NS    C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12
;
; formerly TERP.UMD.EDU
;
.                        3600000      NS    D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET.      3600000      A     128.8.10.90
;
; formerly NS.NASA.GOV
;
.                        3600000      NS    E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET.      3600000      A     192.203.230.10
;
; formerly NS.ISC.ORG
;
.                        3600000      NS    F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.      3600000      A     192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
.                        3600000      NS    G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET.      3600000      A     192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
.                        3600000      NS    H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.      3600000      A     128.63.2.53
;
; formerly NIC.NORDU.NET
;
.                        3600000      NS    I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET.      3600000      A     192.36.148.17
;
; temporarily housed at NSI (InterNIC)
;
.                        3600000      NS    J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET.      3600000      A     198.41.0.10
;
; housed in LINX, operated by RIPE NCC
;
.                        3600000      NS    K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET.      3600000      A     193.0.14.129 
;
; temporarily housed at ISI (IANA)
;
.                        3600000      NS    L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET.      3600000      A     198.32.64.12
;
; housed in Japan, operated by WIDE
;
.                        3600000      NS    M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33
; End of File
   0707010001fb43000081a40000000000000002000000013ac0389b00000076000000200000000000000000000000000000001700000003reloc/bind8/defaultacl    zones=*
master=1
slave=1
defaults=1
reverse=1
forward=1
multiple=1
dir=/
ro=0
apply=1
file=1
params=1
opts=1
delete=1
  0707010001fb44000081e40000000000000002000000013ac0389a000010ad000000200000000000000000000000000000001c00000003reloc/bind8/delete_zone.cgi   #!/usr/local/bin/perl
# delete_zone.cgi
# Delete an existing master, slave or secondary zone, and it's records file

require './bind8-lib.pl';
&ReadParse();
$conf = &get_config();
$zconf = $conf->[$in{'index'}];
%access = &get_module_acl();
&can_edit_zone(\%access, $zconf->{'value'}) ||
	&error($text{'master_edelete'});
$access{'ro'} && &error($text{'master_ero'});
$access{'delete'} || &error($text{'master_edeletecannot'});

$rev = ($zconf->{'value'} =~ /in-addr\.arpa/i || $zconf->{'value'} =~ /\.ip6\.int/i);
$type = &find("type", $zconf->{'members'})->{'value'};
if (!$in{'confirm'}) {
	# Ask the user if he is sure ..
	&header($text{'delete_title'}, "");
	print "<hr>\n";

	print "<center><p>",&text('delete_mesg',
		"<tt>".&ip6int_to_net(&arpa_to_ip($zconf->{'value'}))."</tt>"),"<p>\n";
	print "<form action=delete_zone.cgi>\n";
	print "<input type=hidden name=index value=$in{'index'}>\n";
	print "<input type=submit name=confirm value='$text{'delete'}'><br>\n";
	if ($type eq 'master') {
		print $text{$rev ? 'delete_fwd' : 'delete_rev'},"\n";
		print "<input type=radio name=rev value=1 checked> $text{'yes'}\n";
		print "<input type=radio name=rev value=0> $text{'no'}\n";
		}
	print "</form></center>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}

if (!$rev && $in{'rev'} && $type eq 'master') {
	# find and delete reverse records
	local $file = &find("file", $zconf->{'members'})->{'value'};
	&lock_file($config{'chroot'}.$file);
	@recs = &read_zone_file($file, $zconf->{'value'});
	foreach $r (@recs) {
		next if ($r->{'type'} ne "A" && $r->{'type'} ne "AAAA");
		($orevconf, $orevfile, $orevrec) =
			&find_reverse($r->{'values'}->[0]);
		if ($orevrec && &can_edit_reverse($orevconf) &&
		    $r->{'name'} eq $orevrec->{'values'}->[0] &&
		    ($r->{'type'} eq "A" &&
		     $r->{'values'}->[0] eq &arpa_to_ip($orevrec->{'name'})
		     || $r->{'type'} eq "AAAA" &&
		     &expandall_ip6($r->{'values'}->[0]) eq &expandall_ip6(&ip6int_to_net($orevrec->{'name'})))) {
			&lock_file($config{'chroot'}.$orevrec->{'file'});
			&delete_record($orevrec->{'file'} , $orevrec);
			&lock_file($config{'chroot'}.$orevfile);
			@orrecs = &read_zone_file($orevfile,
						  $orevconf->{'value'});
			&bump_soa_record($orevfile, \@orrecs);
			}
		}
	}
elsif ($rev && $in{'rev'} && $type eq 'master') {
	# find and delete forward records
	local $file = &find("file", $zconf->{'members'})->{'value'};
	&lock_file($config{'chroot'}.$file);
	@recs = &read_zone_file($file, $zconf->{'value'});
	foreach $r (@recs) {
		next if ($r->{'type'} ne "PTR");
		($ofwdconf, $ofwdfile, $ofwdrec) =
			&find_forward($r->{'values'}->[0]);
		if ($ofwdrec && &can_edit_zone($ofwdconf->{'value'}) &&
		    ($ofwdrec->{'type'} eq "A" &&
		     &arpa_to_ip($r->{'name'}) eq $ofwdrec->{'values'}->[0] 
		     || $ofwdrec->{'type'} eq "AAAA" &&
		     &expandall_ip6(&ip6int_to_net($r->{'name'})) eq &expandall_ip6($ofwdrec->{'values'}->[0])) &&
		    $r->{'values'}->[0] eq $ofwdrec->{'name'}) {
			&lock_file($config{'chroot'}.$ofwdrec->{'file'});
			&delete_record($ofwdrec->{'file'} , $ofwdrec);
			&lock_file($config{'chroot'}.$ofwdfile);
			@ofrecs = &read_zone_file($ofwdfile,
						  $ofwdconf->{'value'});
			&bump_soa_record($ofwdfile, \@ofrecs);
			}
		}
	}

# delete the records file
$f = &find("file", $zconf->{'members'});
if ($f) {
	&lock_file($config{'chroot'}.&absolute_path($f->{'value'}));
	unlink($config{'chroot'}.&absolute_path($f->{'value'}));
	}

# remove the zone directive
&lock_file($config{'chroot'}.$zconf->{'file'});
$lref = &read_file_lines($config{'chroot'}.$zconf->{'file'});
splice(@$lref, $zconf->{'line'}, $zconf->{'eline'} - $zconf->{'line'} + 1);
&flush_file_lines();
&unlock_all_files();
&webmin_log("delete", &find("type", $zconf->{'members'})->{'value'},
	    $zconf->{'value'}, \%in);

# remove from acl files
&read_acl(undef, \%wusers);
foreach $u (keys %wusers) {
	%uaccess = &get_module_acl($u);
	if ($uaccess{'zones'} ne '*') {
		$uaccess{'zones'} = join(' ', grep { $_ ne $zconf->{'value'} }
					      split(/\s+/, $uaccess{'zones'}));
		&save_module_acl(\%uaccess, $u);
		}
	}
&redirect("");

# can_edit_reverse(&zone)
sub can_edit_reverse
{
return $access{'reverse'} || &can_edit_zone(\%access, $_[0]->{'value'});
}
   0707010001fb45000081e40000000000000002000000013ac0389a0000070a000000200000000000000000000000000000001900000003reloc/bind8/dns_boot.cgi  #!/usr/local/bin/perl
# dns_boot.cgi
# Create an empty named.conf file and start the name server

require './bind8-lib.pl';
&error_setup($text{'boot_err'});
&ReadParse();

$config{'named_conf'} =~ /^(\S+)\/([^\/]+)$/;
$conf_directory = $1;

&lock_file($config{'chroot'}.$config{'named_conf'});
&lock_file("$config{'chroot'}$conf_directory/db.cache");
$conf_temp = &tempname("webmin.named.conf");
open(BOOT, ">$conf_temp");
print BOOT "options {\n";
print BOOT "\tdirectory \"$conf_directory\";\n";
print BOOT "\tpid-file \"/var/run/named.pid\";\n";
print BOOT "\t};\n";
print BOOT "\n";
mkdir("/var/run", 0755);
if ($in{real} == 0) {
	# Create an empty root domain file... no need to do anything here
	}
elsif ($in{real} == 1) {
	# Try to download the root servers file from
	# ftp://rs.internic.net/domain/named.root
	&ftp_download("rs.internic.net", "/domain/named.root", 
		      "$config{'chroot'}$conf_directory/db.cache");
	print BOOT "zone \".\" {\n";
	print BOOT "\ttype hint;\n";
	print BOOT "\tfile \"$conf_directory/db.cache\";\n";
	print BOOT "\t};\n";
	print BOOT "\n";
	}
elsif ($in{real} == 2) {
	# Use builtin db.cache
	system("cp ./db.cache $config{'chroot'}$conf_directory/db.cache 2>/dev/null");
	print BOOT "zone \".\" {\n";
	print BOOT "\ttype hint;\n";
	print BOOT "\tfile \"$conf_directory/db.cache\";\n";
	print BOOT "\t};\n";
	print BOOT "\n";
	}
close(BOOT);
system("cp $conf_temp $config{'chroot'}$config{'named_conf'} 2>/dev/null");
unlink($conf_temp);
&unlock_file("$config{'chroot'}$conf_directory/db.cache");
&unlock_file($config{'chroot'}.$config{'named_conf'});
&set_ownership("$config{'chroot'}$conf_directory/db.cache")
	if ($in{'real'} == 2 || $in{'real'} == 1);
&set_ownership($config{'chroot'}.$config{'named_conf'});
&webmin_log("boot");
&redirect("start.cgi");

  0707010001fb46000081e40000000000000002000000013ac0389b0000068b000000200000000000000000000000000000001d00000003reloc/bind8/edit_forward.cgi  #!/usr/local/bin/perl
# edit_forward.cgi
# Display options for an existing forward zone

require './bind8-lib.pl';
&ReadParse();
$conf = &get_config();
$zconf = $conf->[$in{'index'}]->{'members'};
$dom = $conf->[$in{'index'}]->{'value'};
%access = &get_module_acl();
&can_edit_zone(\%access, $dom) || &error($text{'fwd_ecannot'});
&header($text{'fwd_title'}, "");
print "<center><font size=+2>", &ip6int_to_net(&arpa_to_ip($dom)),
      "</font></center>\n";

print "<hr>\n";
print "<form action=save_forward.cgi>\n";
print "<input type=hidden name=index value=\"$in{'index'}\">\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'fwd_opts'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
print &address_input($text{'fwd_masters'}, "forwarders", $zconf);
print "</tr>\n";

print "<tr>\n";
print &choice_input($text{'fwd_forward'}, "forward", $zconf,
		    $text{'yes'}, "first", $text{'no'}, "only",
		    $text{'default'}, undef);
print &choice_input($text{'fwd_check'}, "check-names", $zconf,
		    $text{'warn'}, "warn", $text{'fail'}, "fail",
		    $text{'ignore'}, "ignore", $text{'default'}, undef);
print "</tr>\n";

print "</table></td></tr> </table><br>\n";

if ($access{'ro'}) {
	print "</form>\n";
	}
else {
	print "<table width=100%><tr><td align=left>\n";
	print "<input type=submit value=\"$text{'save'}\"></td></form>\n";
	print "<form action=delete_zone.cgi>\n";
	print "<input type=hidden name=index value=\"$in{'index'}\">\n";
	print "<td align=right><input type=submit ",
	      "value=\"$text{'delete'}\"></td></form>\n";
	print "</tr></table>\n";
	}
print "<hr>\n";
&footer("", $text{'index_return'});

 0707010001fb47000081e40000000000000002000000013ac0389a00000d8a000000200000000000000000000000000000001c00000003reloc/bind8/edit_master.cgi   #!/usr/local/bin/perl
# edit_master.cgi
# Display options and directives in an existing master zone

require './bind8-lib.pl';
&ReadParse();
$conf = &get_config();
if ($in{'zone'}) {
	foreach $z (@$conf) {
		if ($z->{'value'} eq $in{'zone'}) {
			$zconf = $z->{'members'};
			$in{'index'} = $z->{'index'};
			$dom = $in{'zone'};
			}
		}
	}
else {
	$zconf = $conf->[$in{'index'}]->{'members'};
	$dom = $conf->[$in{'index'}]->{'value'};
	}
%access = &get_module_acl();
&can_edit_zone(\%access, $dom) || &error($text{'master_ecannot'});
&header($text{'master_title'}, "");
print "<center><font size=+2>", &ip6int_to_net(&arpa_to_ip($dom)),
      "</font></center>\n";

print "<hr><p>\n";
@recs = &read_zone_file(&find("file", $zconf)->{'value'}, $dom);
if ($dom =~ /in-addr\.arpa/i || $dom =~ /\.ip6\.int/i) {
	@rcodes = ("PTR", "NS", "CNAME");
	}
else {
	@rcodes = ("A", "NS", "CNAME", "MX", "HINFO", "TXT", "WKS", "RP", "LOC");
	if ($config{'support_aaaa'}) {
		push(@rcodes, "AAAA");
		}
	}
foreach $c (@rcodes) { $rnum{$c} = 0; }
foreach $r (@recs) {
	$rnum{$r->{'type'}}++;
	if ($r->{'type'} eq "SOA") { $soa = $r; }
	}
if ($config{'show_list'}) {
	# display as list
	$mid = int((@rcodes+1)/2);
	print "<table width=100%> <tr><td width=50%>\n";
	&types_table(@rcodes[0..$mid-1]);
	print "</td><td width=50%>\n";
	&types_table(@rcodes[$mid..$#rcodes]);
	print "</td></tr> </table>\n";
	}
else {
	# display as icons
	for($i=0; $i<@rcodes; $i++) {
		push(@rlinks,
		     "edit_recs.cgi?index=$in{'index'}&type=$rcodes[$i]");
		push(@rtitles, $text{"type_$rcodes[$i]"}.
			       " ($rnum{$rcodes[$i]})");
		push(@ricons, "images/$rcodes[$i].gif");
		}
	&icons_table(\@rlinks, \@rtitles, \@ricons);
	}
$file = &absolute_path(&find("file", $zconf)->{'value'});

# links to forms editing text, soa and zone options
if ($access{'file'}) {
	push(@links, "edit_text.cgi?index=$in{'index'}");
	push(@titles, $text{'master_manual'});
	push(@images, "images/text.gif");
	}
if ($access{'params'}) {
	push(@links, "edit_soa.cgi?index=$in{'index'}");
	push(@titles, $text{'master_soa'});
	push(@images, "images/soa.gif");
	}
if ($access{'opts'}) {
	push(@links, "edit_options.cgi?index=$in{'index'}");
	push(@titles, $text{'master_options'});
	push(@images, "images/options.gif");
	}
if ($access{'findfree'}) {
	push(@links, "find_free.cgi?index=$in{'index'}");
	push(@titles, $text{'findfree_desc'});
	push(@images, "images/findfree.gif");
	}

if (@links) {
	print "<hr>\n";
	&icons_table(\@links, \@titles, \@images);
	}

if (!$access{'ro'} && $access{'delete'}) {
	print "<hr>\n";
	print "<form action=delete_zone.cgi>\n";
	print "<input type=hidden name=index value=\"$in{'index'}\">\n";
	print "<table width=100%><tr><td>\n";
	print "<input type=submit value=\"$text{'master_del'}\">\n";
	print "</td> <td>$text{'master_delmsg'}\n";
	if ($dom !~ /in-addr\.arpa/i && $dom !~ /\.ip6\.int/i) {
		print "$text{'master_delrev'}\n";
		}
	print "</td> </tr></table>\n";
	}
print "</form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

sub types_table
{
if ($_[0]) {
	local($i);
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'master_type'}</b></td> ",
	      "<td><b>$text{'master_records'}</b></td> </tr>\n";
	for($i=0; $_[$i]; $i++) {
		print "<tr $cb> <td><a href=\"edit_recs.cgi?",
		      "index=$in{'index'}&type=$_[$i]\">",$text{"recs_$_[$i]"},
		      "</a></td>\n";
		print "<td>$rnum{$_[$i]}</td> </tr>\n";
		}
	print "</table>\n";
	}
}

  0707010001fb48000081e40000000000000002000000013ac0389b000006c5000000200000000000000000000000000000001d00000003reloc/bind8/edit_options.cgi  #!/usr/local/bin/perl
# edit_options.cgi
# Display options for an existing master zone

require './bind8-lib.pl';
&ReadParse();
$conf = &get_config();
$zconf = $conf->[$in{'index'}]->{'members'};
$dom = $conf->[$in{'index'}]->{'value'};
%access = &get_module_acl();
&can_edit_zone(\%access, $dom) || &error($text{'master_ecannot'});
$access{'opts'} || &error($text{'master_eoptscannot'});
&header($text{'master_opts'}, "");
print "<center><font size=+2>", &ip6int_to_net(&arpa_to_ip($dom)),
      "</font></center>\n";

# Form for editing zone options
print "<hr><a name=options>\n";
print "<form action=save_master.cgi>\n";
print "<input type=hidden name=index value=\"$in{'index'}\">\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'master_opts'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
print &choice_input($text{'master_check'}, "check-names", $zconf,
		    $text{'warn'}, "warn", $text{'fail'}, "fail",
		    $text{'ignore'}, "ignore", $text{'default'}, undef);
print &choice_input($text{'master_notify'}, "notify", $zconf,
		    $text{'yes'}, "yes", $text{'no'}, "no",
		    $text{'default'}, undef);
print "</tr>\n";

print "<tr>\n";
print &addr_match_input($text{'master_update'}, "allow-update", $zconf);
print &addr_match_input($text{'master_transfer'}, "allow-transfer", $zconf);
print "</tr>\n";

print "<tr>\n";
print &addr_match_input($text{'master_query'}, "allow-query", $zconf);
print &address_input($text{'master_notify2'}, "also-notify", $zconf);
print "</tr>\n";

print "</table></td></tr> </table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("edit_master.cgi?index=$in{'index'}", $text{'master_return'});
   0707010001fbec000081e40000000000000002000000013ac0389a0000032d000000200000000000000000000000000000001c00000003reloc/bind8/edit_record.cgi   #!/usr/local/bin/perl
# edit_record.cgi
# Edit an existing record of some type

require './bind8-lib.pl';
&ReadParse();
$conf = &get_config();
$zconf = $conf->[$in{'index'}];
$dom = $conf->[$in{'index'}]->{'value'};
%access = &get_module_acl();
&can_edit_zone(\%access, $dom) ||
	&error($text{'recs_ecannot'});
&header(&text('edit_title', $text{"edit_$in{'type'}"}), "");
print "<center><font size=+2>",
      &text('edit_header', &ip6int_to_net(&arpa_to_ip($dom))),
      "</font></center>\n";
print "<hr>\n";

$file = &find("file", $zconf->{'members'})->{'value'};
@recs = &read_zone_file($file, $dom);
&record_input($in{'index'}, $in{'type'}, $file,
	      $zconf->{'value'}, $in{'num'}, $recs[$in{'num'}]);
print "<hr>\n";
&footer("edit_recs.cgi?index=$in{'index'}&type=$in{'type'}",
	$text{'edit_return'});

   0707010001fbed000081e40000000000000002000000013ac0389a00000d98000000200000000000000000000000000000001a00000003reloc/bind8/edit_recs.cgi #!/usr/local/bin/perl
# edit_recs.cgi
# Display records of some type from some domain

require './bind8-lib.pl';
&ReadParse();
$conf = &get_config();
$zconf = $conf->[$in{'index'}]->{'members'};
$dom = $conf->[$in{'index'}]->{'value'};
%access = &get_module_acl();
&can_edit_zone(\%access, $dom) || &error($text{'recs_ecannot'});
&header(&text('recs_title', $text{"recs_$in{'type'}"}), "");
print "<center><font size=+2>",
      &text('recs_header', &ip6int_to_net(&arpa_to_ip($dom))),
      "</font></center>\n";
print "<hr>\n";

$type = &find("type", $zconf)->{'value'};
$file = &find("file", $zconf)->{'value'};
&record_input($in{'index'}, $in{'type'}, $file, $dom)
	if (!$access{'ro'} && $type eq 'master');
@recs = &read_zone_file($file, $dom);
@recs = grep { $_->{'type'} eq $in{'type'} } @recs;
if (@recs) {
	@recs = &sort_records(@recs);
	foreach $v (keys %text) {
		if ($v =~ /^value_(\S+)(\d+)/) {
			$hmap{$1}->[$2-1] = $text{$v};
			}
		}
	if ($in{'type'} =~ /HINFO|WKS|RP/ || $config{'allow_comments'}) {
		&recs_table(@recs);
		}
	else {
		$mid = int((@recs+1)/2);
		print "<table width=100%><tr><td width=50% valign=top>\n";
		&recs_table(@recs[0 .. $mid-1]);
		print "</td><td width=50% valign=top>\n";
		if ($mid < @recs) { &recs_table(@recs[$mid .. $#recs]); }
		print "</td></tr></table><p>\n";
		}
	print "<p>\n";
	}
print "<hr>\n";
&footer("edit_$type.cgi?index=$in{'index'}", $text{'recs_return'});

sub recs_table
{
local($r, $i, $j, $k, $h);
print "<table border width=100%>\n";
print "<tr $tb> <td><b><a href='edit_recs.cgi?index=$in{'index'}&type=$in{'type'}&sort=1'>",$in{'type'} eq "PTR" ? $text{'recs_addr'} : $text{'recs_name'}, "</b></td> <td><b>$text{'recs_ttl'}</b></td>\n";
@hmap = @{$hmap{$in{'type'}}};
foreach $h (@hmap) {
	print "<td><b><a href='edit_recs.cgi?index=$in{'index'}&type=$in{'type'}&sort=2'>$h</a></b></td>\n";
	}
if ($config{'allow_comments'} && $in{'type'} ne "WKS") {
	print "<td width=50%><b>$text{'recs_comment'}</b></td>\n";
	}
print "</tr>\n";
for($i=0; $i<@_; $i++) {
	$r = $_[$i];
	$name = $in{'type'} eq "PTR" ? &ip6int_to_net(&arpa_to_ip($r->{'name'}))
				     : $r->{'name'};
	if (!$access{'ro'} && $type eq 'master') {
		print "<tr $cb> <td><a href=\"edit_record.cgi?index=",
		      "$in{'index'}&type=$in{'type'}&num=$r->{'num'}&",
		      "sort=$in{'sort'}\">$name</a></td>\n";
		}
	else {
		print "<tr $cb> <td>$name</td>\n";
		}
	if ($r->{'ttl'} =~ /(\d+)([SMHDW]?)/i) {
		$r->{'ttl'} =~ s/S//i;
		if ($r->{'ttl'} =~ s/M//i) { $r->{'ttl'} *= 60; }
		if ($r->{'ttl'} =~ s/H//i) { $r->{'ttl'} *= 3600; }
		if ($r->{'ttl'} =~ s/D//i) { $r->{'ttl'} *= 86400; }
		if ($r->{'ttl'} =~ s/W//i) { $r->{'ttl'} *= 604800; }
		}
	print "<td>",$r->{'ttl'} ? $r->{'ttl'} : $text{'default'},"</td>\n";
	for($j=0; $j<@hmap; $j++) {
		if ($in{'type'} eq "RP" && $j == 0) {
			print "<td>", &dotted_to_email($r->{'values'}->[$j]),
			      "</td>\n";
			}
		elsif ($in{'type'} eq "WKS" && $j == @hmap-1) {
			print "<td>";
			for($k=$j; $r->{'values'}->[$k]; $k++) {
				print &convert_illegal($r->{'values'}->[$k]), " ";
				}
			print "</td>\n", 
			}
		elsif ($in{'type'} eq "LOC") {
			print "<td>",join(" ",@{$r->{'values'}}),"</td>\n";
			}
		else {
			print "<td>", &convert_illegal($r->{'values'}->[$j]),
			      "</td>\n";
			}
		}
	if ($config{'allow_comments'} && $in{'type'} ne "WKS") {
		print "<td>",$r->{'comment'} ? $r->{'comment'} : "&nbsp;",
		      "</td>\n";
		}
	print "</tr>\n";
	}
print "</table>\n";
}

0707010001fbee000081e40000000000000002000000013ac0389a00001066000000200000000000000000000000000000001b00000003reloc/bind8/edit_slave.cgi    #!/usr/local/bin/perl
# edit_slave.cgi
# Display options for an existing slave or stub zone

require './bind8-lib.pl';
&ReadParse();
$conf = &get_config();
$zconf = $conf->[$in{'index'}]->{'members'};
$dom = $conf->[$in{'index'}]->{'value'};
%access = &get_module_acl();
&can_edit_zone(\%access, $dom) ||
	&error($text{'slave_ecannot'});
if ($0 =~ /edit_slave/) {
	&header($text{'slave_title'}, "");
	}
else {
	&header($text{'stub_title'}, "");
	}
print "<center><font size=+2>", &ip6int_to_net(&arpa_to_ip($dom)),
      "</font></center>\n";

if (&find("file", $zconf)) {
	$file = &find("file", $zconf)->{'value'};
	print "<hr><p>\n";
	@recs = &read_zone_file($file, $dom);
	if ($dom =~ /in-addr\.arpa/i || $dom =~ /\.ip6\.int/i) {
		@rcodes = ("PTR", "NS");
		}
	else {
		@rcodes = ("A", "NS", "CNAME", "MX", "HINFO",
			   "TXT", "WKS", "RP");
		if ($config{'support_aaaa'}) {
			push(@rcodes, "AAAA");
			}
		}
	foreach $c (@rcodes) { $rnum{$c} = 0; }
	foreach $r (@recs) {
		$rnum{$r->{'type'}}++;
		if ($r->{'type'} eq "SOA") { $soa = $r; }
		}
	if ($config{'show_list'}) {
		# display as list
		$mid = int((@rcodes+1)/2);
		print "<table width=100%> <tr><td width=50%>\n";
		&types_table(@rcodes[0..$mid-1]);
		print "</td><td width=50%>\n";
		&types_table(@rcodes[$mid..$#rcodes]);
		print "</td></tr> </table>\n";
		}
	else {
		# display as icons
		for($i=0; $i<@rcodes; $i++) {
			push(@rlinks, "edit_recs.cgi?index=$in{'index'}".
				      "&type=$rcodes[$i]");
			push(@rtitles, $text{"type_$rcodes[$i]"}.
				       " ($rnum{$rcodes[$i]})");
			push(@ricons, "images/$rcodes[$i].gif");
			}
		&icons_table(\@rlinks, \@rtitles, \@ricons);
		}
	}


if ($access{'findfree'}) {
	push(@links, "find_free.cgi?index=$in{'index'}");
	push(@titles, $text{'findfree_desc'});
	push(@images, "images/findfree.gif");
	}
if (@links) {
	print "<hr>\n";
	&icons_table(\@links, \@titles, \@images);
	}

print "<hr>\n";

print "<form action=save_slave.cgi>\n";
print "<input type=hidden name=index value=\"$in{'index'}\">\n";
print "<input type=hidden name=slave_stub value=\"$scriptname\">\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'slave_opts'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
print &address_input($text{'slave_masters'}, "masters", $zconf);
print &opt_input($text{'slave_max'}, "max-transfer-time-in",
		 $zconf, $text{'default'}, 4, $text{'slave_mins'});
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'slave_file'}, "file", $zconf, $text{'slave_none'}, 40);
print "</tr>\n";

print "<tr>\n";
print &choice_input($text{'slave_check'}, "check-names", $zconf,
		    $text{'warn'}, "warn", $text{'fail'}, "fail",
		    $text{'ignore'}, "ignore", $text{'default'}, undef);
print &choice_input($text{'slave_notify'}, "notify", $zconf,
		    $text{'yes'}, "yes", $text{'no'}, "no",
		    $text{'default'}, undef);
print "</tr>\n";

print "<tr>\n";
print &addr_match_input($text{'slave_update'}, "allow-update", $zconf);
print &addr_match_input($text{'slave_transfer'}, "allow-transfer", $zconf);
print "</tr>\n";

print "<tr>\n";
print &addr_match_input($text{'slave_query'}, "allow-query", $zconf);
print &address_input($text{'slave_notify2'}, "also-notify", $zconf);
print "</tr>\n";

print "</table></td></tr> </table><br>\n";
if ($access{'ro'}) {
	print "</form>\n";
	}
else {
	print "<table width=100%><tr><td align=left>\n";
	print "<input type=submit value=\"$text{'save'}\"></td></form>\n";
	print "<form action=delete_zone.cgi>\n";
	print "<input type=hidden name=index value=\"$in{'index'}\">\n";
	print "<td align=right><input type=submit ",
	      "value=\"$text{'delete'}\"></td></form>\n";
	print "</tr></table>\n";
	}
print "<hr>\n";
&footer("", $text{'index_return'});

sub types_table
{
if ($_[0]) {
	local($i);
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'master_type'}</b></td> ",
	      "<td><b>$text{'master_records'}</b></td> </tr>\n";
	for($i=0; $_[$i]; $i++) {
		print "<tr $cb> <td><a href=\"edit_recs.cgi?",
		      "index=$in{'index'}&type=$_[$i]\">",$text{"type_$_[$i]"},
		      "</a></td>\n";
		print "<td>$rnum{$_[$i]}</td> </tr>\n";
		}
	print "</table>\n";
	}
}

  0707010001fc32000081e40000000000000002000000013ac0389b0000096a000000200000000000000000000000000000001900000003reloc/bind8/edit_soa.cgi  #!/usr/local/bin/perl
# edit_soa.cgi
# Display the SOA for an existing master zone

require './bind8-lib.pl';
&ReadParse();
$conf = &get_config();
$zconf = $conf->[$in{'index'}]->{'members'};
$dom = $conf->[$in{'index'}]->{'value'};
%access = &get_module_acl();
&can_edit_zone(\%access, $dom) || &error($text{'master_ecannot'});
$access{'params'} || &error($text{'master_esoacannot'});
&header($text{'master_params'}, "");
print "<center><font size=+2>", &ip6int_to_net(&arpa_to_ip($dom)),
      "</font></center>\n";

@recs = &read_zone_file(&find("file", $zconf)->{'value'}, $dom);
foreach $r (@recs) {
	$soa = $r if ($r->{'type'} eq "SOA");
	}
$v = $soa->{'values'};

# form for editing SOA record
print "<hr>\n";
print "<form action=save_soa.cgi>\n";
print "<input type=hidden name=file value=\"$soa->{'file'}\">\n";
print "<input type=hidden name=num value=\"$soa->{'num'}\">\n";
print "<input type=hidden name=origin value=\"$dom\">\n";
print "<input type=hidden name=index value=\"$in{'index'}\">\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'master_params'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'master_server'}</b></td>\n";
print "<td><input name=master size=20 value=\"$v->[0]\"></td>\n";
$v->[1] = &dotted_to_email($v->[1]);
print "<td><b>$text{'master_email'}</b></td>\n";
print "<td><input name=email size=20 value=\"$v->[1]\"></td> </tr>\n";

@u = &extract_time_units($v->[3], $v->[4], $v->[5], $v->[6]);
print "<tr> <td><b>$text{'master_refresh'}</b></td>\n";
print "<td><input name=refresh size=10 value=\"$v->[3]\">\n";
&time_unit_choice("refunit", $u[0]);
print "</td>\n";
print "<td><b>$text{'master_retry'}</b></td>\n";
print "<td><input name=retry size=10 value=\"$v->[4]\">\n";
&time_unit_choice("retunit", $u[1]);
print "</td> </tr>\n";

print "<tr> <td><b>$text{'master_expiry'}</b></td>\n";
print "<td><input name=expiry size=10 value=\"$v->[5]\">\n";
&time_unit_choice("expunit", $u[2]);
print "</td>\n";
print "<td><b>$text{'master_minimum'}</b></td>\n";
print "<td><input name=minimum size=10 value=\"$v->[6]\">\n";
&time_unit_choice("minunit", $u[3]);
print "</td> </tr>\n";

print "</table></td></tr> </table><br>\n";
print "<input type=submit value=\"$text{'save'}\">\n" if (!$access{'ro'});
print "</form><p>\n";

print "<hr>\n";
&footer("edit_master.cgi?index=$in{'index'}", $text{'master_return'});

  0707010001fc33000081e40000000000000002000000013ac0389a00000968000000200000000000000000000000000000001a00000003reloc/bind8/edit_stub.cgi #!/usr/local/bin/perl
# edit_slave.cgi
# Display options for an existing slave or stub zone

require './bind8-lib.pl';
&ReadParse();
$conf = &get_config();
$zconf = $conf->[$in{'index'}]->{'members'};
$dom = $conf->[$in{'index'}]->{'value'};
%access = &get_module_acl();
&can_edit_zone(\%access, $dom) ||
	&error($text{'slave_ecannot'});
if ($0 =~ /edit_slave/) {
	&header($text{'slave_title'}, "");
	}
else {
	&header($text{'stub_title'}, "");
	}
print "<center><font size=+2>", &ip6int_to_net(&arpa_to_ip($dom)),
      "</font></center>\n";

print "<hr>\n";
print "<form action=save_slave.cgi>\n";
print "<input type=hidden name=index value=\"$in{'index'}\">\n";
print "<input type=hidden name=slave_stub value=\"$scriptname\">\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'slave_opts'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
print &address_input($text{'slave_masters'}, "masters", $zconf);
print &opt_input($text{'slave_max'}, "max-transfer-time-in",
		 $zconf, $text{'default'}, 4, $text{'slave_mins'});
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'slave_file'}, "file", $zconf, $text{'slave_none'}, 40);
print "</tr>\n";

print "<tr>\n";
print &choice_input($text{'slave_check'}, "check-names", $zconf,
		    $text{'warn'}, "warn", $text{'fail'}, "fail",
		    $text{'ignore'}, "ignore", $text{'default'}, undef);
print &choice_input($text{'slave_notify'}, "notify", $zconf,
		    $text{'yes'}, "yes", $text{'no'}, "no",
		    $text{'default'}, undef);
print "</tr>\n";

print "<tr>\n";
print &addr_match_input($text{'slave_update'}, "allow-update", $zconf);
print &addr_match_input($text{'slave_transfer'}, "allow-transfer", $zconf);
print "</tr>\n";

print "<tr>\n";
print &addr_match_input($text{'slave_query'}, "allow-query", $zconf);
print &address_input($text{'slave_notify2'}, "also-notify", $zconf);
print "</tr>\n";

print "</table></td></tr> </table><br>\n";
if ($access{'ro'}) {
	print "</form>\n";
	}
else {
	print "<table width=100%><tr><td align=left>\n";
	print "<input type=submit value=\"$text{'save'}\"></td></form>\n";
	print "<form action=delete_zone.cgi>\n";
	print "<input type=hidden name=index value=\"$in{'index'}\">\n";
	print "<td align=right><input type=submit ",
	      "value=\"$text{'delete'}\"></td></form>\n";
	print "</tr></table>\n";
	}
print "<hr>\n";
&footer("", $text{'index_return'});

0707010001fc34000081e40000000000000002000000013ac0389a0000046e000000200000000000000000000000000000001a00000003reloc/bind8/edit_text.cgi #!/usr/local/bin/perl
# edit_text.cgi
# Display a form for manually editing a records file

require './bind8-lib.pl';
&ReadParse();
$conf = &get_config();
$zconf = $conf->[$in{'index'}]->{'members'};
$file = &absolute_path(&find("file", $zconf)->{'value'});
%access = &get_module_acl();
&can_edit_zone(\%access, $conf->[$in{'index'}]->{'value'}) ||
	&error($text{'master_ecannot'});
$access{'file'} || &error($text{'text_ecannot'});
&header($text{'text_title'}, "");
print "<center><font size=+1>$file</font></center>\n";
print "<hr>\n";

open(FILE, $config{'chroot'}.$file);
@lines = <FILE>;
close(FILE);

if (!$access{'ro'}) {
	print &text('text_desc', "<tt>$in{'file'}</tt>"),"<p>\n";
	}

print "<form action=save_text.cgi method=post>\n";
print "<input type=hidden name=index value=\"$in{'index'}\">\n";
print "<textarea name=text rows=20 cols=80>",
	join("", @lines),"</textarea><p>\n";
print "<input type=submit value=\"$text{'save'}\"> ",
      "<input type=reset value=\"$text{'text_undo'}\">\n"
	if (!$access{'ro'});
print "</form>\n";

print "<hr>\n";
&footer("edit_master.cgi?index=$in{'index'}", $text{'master_return'});

  0707010001fc35000081e40000000000000002000000013ac0389b0000191b000000200000000000000000000000000000001a00000003reloc/bind8/find_free.cgi #!/usr/local/bin/perl
# find_free.cgi
# Looks for free IP numbers
# by Ivan Andrian, <ivan.andrian@elettra.trieste.it>, 11/07/2000

require './bind8-lib.pl';
&ReadParse();
$conf = &get_config();
$zconf = $conf->[$in{'index'}]->{'members'};
$type = &find("type", $zconf)->{'value'};
$file = &find("file", $zconf)->{'value'};
$dom = $conf->[$in{'index'}]->{'value'};
%access = &get_module_acl();
if (!$access{'findfree'}) {&error($text{'findfree_nofind'})};
&header(&text('findfree_title'), "");
print "<center><font size=+2>",&text('findfree_header', &arpa_to_ip($dom)),
      "</font></center>\n";
print "<hr>\n";

my $cf=1;
if (@in == 2) {
	&find_ips ($in{'index'}, $in{'from'});
}
elsif (@in == 3) {
	&find_ips ($in{'index'}, $in{'from'}, $in{'to'});
}
elsif (@in == 4) {
	$cf=$in{'cf'};
	&find_ips ($in{'index'}, $in{'from'}, $in{'to'}, $in{'cf'});
}
else {
	&find_ips ($in{'index'});
}

if (@in >= 3) { #we need to do the search!

   @recs = &read_zone_file($file, $dom);
   @recs = grep { ($_->{'type'} eq 'A') || ($_->{'type'} eq 'PTR')} @recs;
   my $freeXXXcount=0;
   my $freemaccount=0;
   if (@recs) {
	@recs = &sort_records(@recs);
	my %frecs = &build_iprange($in{'from'}, $in{'to'});

	for($i=0; $i<@recs; $i++) {
		my $hip;	# host IP
		my $hname;	# hostname
		
		if ($recs[$i]->{'type'} eq 'A') {
			$hip=$recs[$i]->{'values'}->[0]; 		# IP no. in 'values' field
			$hname=$recs[$i]->{'name'};				# name   in 'name' field
		}
		else {
			$hip=&arpa_to_ip($recs[$i]->{'name'});	# IP no. in 'name' field
			$hname=$recs[$i]->{'values'}->[0];		# name   in 'values' field
		}
		
#	print "evaluating ", $hip, " ", $hname, "...<BR>"; #debug
		
		if($cf & ($hname=~ /^free.*/) & exists $frecs{$hip}) {	# 'freeXXX' hostnames are free IP's!
			# update
#	print "&nbsp;&nbsp;updating: ",$hip, "... <BR>"; #debug
			$frecs{$hip}->{'ttl'}=$recs[$i]->{'ttl'};
			$frecs{$hip}->{'name'}=$hname;
			$freeXXXcount++;
			if($hname=~ /^freemac.*/) {$freemaccount++;}
		}
		else {
#	print "&nbsp;&nbsp;deleting: ",$hip, "... <BR>"; #debug
			delete $frecs{$hip};
		}
	}
	
	

	my @frecs=sort ffree_ip_sort_func values %frecs; 
	my $mid = int((@frecs+1)/2);
	print "<P align = \"center\"><STRONG>Found <BIG>" . @frecs . "</BIG> free IP number" . (@frecs==1?"\n":"s\n");
	if ($cf) {
		print " (<BIG>$freeXXXcount</BIG> ". ($freeXXXcount==1?" is":"are") .
				" <EM>`freeXXX'</EM>" .
				" of which <BIG>$freemaccount</BIG> ". ($freemaccount==1?" is":"are") . 
				" <EM>`freemac'</EM>)" ;
	print "</STRONG></P>\n";
	}
	print "<table width=100%><tr><td width=50% valign=top>\n";
	&frecs_table(@frecs[0 .. $mid-1]);
	print "</td><td width=50% valign=top>\n";
	if ($mid < @frecs) { &frecs_table(@frecs[$mid .. $#frecs]); }
	print "</td></tr></table><p>\n";
	print "<p>\n";

    } # if(@recs)
} # if(@in >= 3)

print "<hr>\n";
&footer("edit_$type.cgi?index=$in{'index'}", $text{'recs_return'});






# build_iprange(fromIP, toIP)
# Returns a list of IP numbers from fromIP to toIP
sub build_iprange
{
$_[0] =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)/;
my @from = ($1, $2, $3, $4);
return @from if (@from != 4); #I want a correct IPv4 #
$_[1] =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)/;
my @to = ($1, $2, $3, $4);
return @to if (@to != 4);

for ($i=0;$i<4;$i++) {
	$from[$i]=$from[$i]==0?1:$from[$i];
	$to[$i]=$to[$i]==255?254:$to[$i];
}

my %frecs;

for ($byte0=$from[0]; $byte0<=$to[0]; $byte0++) {
	for ($byte1=$byte0==$from[0]?$from[1]:1;
			$byte1<=(($byte0==$to[0]?$to[1]:254));
			$byte1++) {
		##print "================<BR>";
		for ($byte2=($byte0==$from[0])&&($byte1==$from[1])?$from[2]:1;
				$byte2<=(($byte0==$to[0])&&($byte1==$to[1])?$to[2]:254);
				$byte2++) {
			##print "----------------<BR>";
			for ($byte3=($byte0==$from[0])&&($byte1==$from[1])&&($byte2==$from[2])?$from[3]:1;
					$byte3<=(($byte0==$to[0])&&($byte1==$to[1])&&($byte2==$to[2])?$to[3]:254);
					$byte3++) {
				$frecs{"$byte0.$byte1.$byte2.$byte3"}->{'ip'}="$byte0.$byte1.$byte2.$byte3";
				$frecs{"$byte0.$byte1.$byte2.$byte3"}->{'ttl'}=$text{'default'};
				$frecs{"$byte0.$byte1.$byte2.$byte3"}->{'name'}='';
				##push(@frecs, "$byte0.$byte1.$byte2.$byte3");
				##print "$byte0.$byte1.$byte2.$byte3<BR>";
			} #for $byte3
		} #for $byte2
	} #for $byte1
} #for $byte0

return %frecs;
} # sub build_iprange












# find_ips (zoneindex, from_ip, to_ip, consider_freeXX_names)
# Display a form for searching for free IP nos
sub find_ips
{
print "<form action=find_free.cgi>\n";
print "<input type=hidden name=index value=$_[0]>\n";

print "<table border>\n";
print "<tr $tb><td><b>$text{'findfree_sopt'}</b></td> </tr>\n";
print "<tr $cb><td><table>\n";

print "<tr> <td><b>$text{'findfree_IPrange'}</b></td>\n";
print "<td><b>$text{'findfree_from'}</b></td>\n";
if (@_ >= 2) { # there is a "from" field on the URL
	print "<td> <input name=from value=\"$_[1]\" size=30></td> </tr>\n";
	}
else {
	print "<td> <input name=from value=\"\" size=30></td> </tr>\n";
	}

print "<tr> <td>&nbsp;</td>\n";
print "<td><b>$text{'findfree_to'}</b></td>\n";
if (@_ >= 3) { # there is a "to" field on the URL
	print "<td> <input name=to value=\"$_[2]\" size=30></td> </tr>\n";
	}
else {
	print "<td> <input name=to value=\"\" size=30></td> </tr>\n";
	}

print "<tr> <td colspan=3 nowrap><b>$text{'findfree_cf'}</b>\n";

$cfy=$cf?'checked':'';
$cfn=(!$cf)?'checked':'';

print " &nbsp; <input type=radio name=cf value=1 $cfy> $text{'yes'}\n";
print "<input type=radio name=cf value=0 $cfn> $text{'no'}</td></tr>\n";

print "<tr colspan=3><td><input type=submit value=\"$text{'findfree_search'}\"></td></tr>\n";
print "</table></td></tr></table></form>\n";

} #	end of find_ips










# frecs_table(array_of_freerecords)
sub frecs_table
{
print "<table border width=100%>\n";
print "<tr $tb> <td><b>", $text{'recs_addr'},"</b></td>",
	"<td><b>$text{'recs_ttl'}</b></td>\n",
	"<td><b>$text{'recs_name'}</b></td>\n",
	"</tr>\n";

for($i=0; $i<@_; $i++) {
	$r = $_[$i];
	print "<tr $cb> <td>$r->{'ip'}</td>\n",
	"<td>",$r->{'ttl'} ? $r->{'ttl'} : $text{'default'},"</td>\n",
	"<td>",$r->{'name'}?$r->{'name'}:'&nbsp;',"</td>\n",
	"</tr>\n";
	}
	print "</table>\n";
}




sub ffree_ip_sort_func
{
$a->{'ip'} =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)/;
local ($a1, $a2, $a3, $a4) = ($1, $2, $3, $4);
$b->{'ip'} =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)/;
return	$a1 < $1 ? -1 :
	$a1 > $1 ? 1 :
	$a2 < $2 ? -1 :
	$a2 > $2 ? 1 :
	$a3 < $3 ? -1 :
	$a3 > $3 ? 1 :
	$a4 < $4 ? -1 :
	$a4 > $4 ? 1 : 0;
}


#EOF
 0707010001fce8000081e40000000000000002000000013ac0389b00000650000000200000000000000000000000000000001b00000003reloc/bind8/find_zones.cgi    #!/usr/local/bin/perl
# find_zones.cgi
# Display zones matching some search

require './bind8-lib.pl';
&ReadParse();
&header($text{'find_title'}, "");
print "<hr>\n";
%access = &get_module_acl();

$conf = &get_config();
@zones = &find("zone", $conf);
print "<p>",&text('find_match', "<tt>$in{'search'}</tt>"),"<p>\n";

foreach $z (@zones) {
	$v = $z->{'value'};
	next if ($v eq "." || !&can_edit_zone(\%access, $v) ||
		 $v !~ /$in{'search'}/);
	$t = &find("type", $z->{'members'})->{'value'};
	push(@zlinks, "edit_$t.cgi?index=$z->{'index'}");
	push(@ztitles, &ip6int_to_net(&arpa_to_ip($v)));
	push(@zicons, "images/$t.gif");
	push(@ztypes, $text{"index_$t"});
	$len++;
	}

if ($len) {
	# sort list of zones
	@zorder = sort { $ztitles[$a] cmp $ztitles[$b] } (0 .. $len-1);
	@zlinks = map { $zlinks[$_] } @zorder;
	@ztitles = map { $ztitles[$_] } @zorder;
	@zicons = map { $zicons[$_] } @zorder;
	@ztypes = map { $ztypes[$_] } @zorder;

	if ($config{'show_list'}) {
		# display as list
		$mid = int((@zlinks+1)/2);
		print "<table width=100%><tr><td width=50% valign=top>\n";
		&zones_table([ @zlinks[0 .. $mid-1] ],
			     [ @ztitles[0 .. $mid-1] ],
			     [ @ztypes[0 .. $mid-1] ]);
		print "</td><td width=50% valign=top>\n";
		if ($mid < @zlinks) {
			&zones_table([ @zlinks[$mid .. $#zlinks] ],
				     [ @ztitles[$mid .. $#ztitles] ],
				     [ @ztypes[$mid .. $#ztypes] ]);
			}
		print "</td></tr></table>\n";
		}
	else {
		# display as icons
		&icons_table(\@zlinks, \@ztitles, \@zicons);
		}
	}
else {
	print "<b>$text{'find_none'}</b><p>\n";
	}

print "<hr>\n";
&footer("", $text{'index_return'});


0707010001fce9000081e40000000000000002000000013ac0389b0000046f000000200000000000000000000000000000001d00000003reloc/bind8/forward_form.cgi  #!/usr/local/bin/perl
# forward_form.cgi
# A form for creating a new forard zone

require './bind8-lib.pl';
%access = &get_module_acl();
$access{'forward'} || &error($text{'fcreate_ecannot'});
&header($text{'fcreate_title'}, "");
print "<hr>\n";

print "<form action=create_forward.cgi>\n";
print "<table border width=100%>\n";
print "<tr> <td $tb><b>$text{'fcreate_opts'}</b></td> </tr>\n";
print "<tr> <td $cb><table width=100%>\n";

print "<tr> <td><b>$text{'fcreate_type'}</b></td>\n";
print "<td colspan=3><input type=radio name=rev value=0 checked>\n";
print "$text{'fcreate_fwd'}\n";
print "&nbsp;&nbsp;<input type=radio name=rev value=1>\n";
print "$text{'fcreate_rev'}</td> </tr>\n";

print "<tr> <td><b>$text{'fcreate_dom'}</b></td>\n";
print "<td colspan=3><input name=zone size=40></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'fcreate_masters'}</b></td> ",
      "<td colspan=3>\n";
print "<textarea name=masters rows=4 cols=30></textarea></td> </tr>\n";

print "</table></td></tr></table><br>\n";
print "<input type=submit value=\"$text{'create'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});
 0707010001fcea000081e40000000000000002000000013ac0389a00001850000000200000000000000000000000000000001600000003reloc/bind8/index.cgi #!/usr/local/bin/perl
# index.cgi
# Display a list of domains and links to options

require './bind8-lib.pl';
&header($text{'index_title'}, "", undef, 1, 1);
print "<hr>\n";
%access = &get_module_acl();

$need_create = !(-r $config{'chroot'}.$config{'named_conf'});
if (!$need_create) {
	# file exists.. but check if it is valid. Some systems have a
	# default invalid config file!
	$conf = &get_config();
	if (($opts = &find("options", $conf)) &&
	    ($dir = &find("directory", $opts->{'members'})) &&
	    !(-d $dir->{'value'})) {
		# bogus config file!
		$need_create = 1;
		}
	}

# Check if bind is installed
if (!(-x $config{'named_path'})) {
	print "<p>",&text('index_enamed', "<tt>$config{'named_path'}</tt>",
			  "/config.cgi?$module_name"),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{"index"});
	exit;
	}

# Check if BIND is the right version.. Only BIND 8/9 offers the -f option
# Is there a better way to do this?
$out = `$config{'named_path'} -help 2>&1`;
if ($out !~ /\[-f\]/ && $out !~ /\[-f\|/) {
	print "<p>",&text('index_eversion', "<tt>$config{'named_path'}</tt>",
			  "/dnsadmin/"),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{"index"});
	exit;
	}

# If the named.boot file does not exist, offer to create it
if ($need_create) {
	print &text('index_eempty',
		    "<tt>$config{'chroot'}$config{'named_conf'}</tt>"),"<p>\n";
	print "<form action=\"dns_boot.cgi\">\n";
	print "<input type=radio name=real value=0> $text{'index_local'}<p>\n";
	print "<input type=radio name=real value=1 checked> ",
	      "$text{'index_download'}<p>\n";
	print "<input type=radio name=real value=2> $text{'index_webmin'}<p>\n";
	print "<center><input type=submit value=\"$text{'index_create'}\">",
	      "</center></form>\n";
	print "<hr>\n";
	&footer("/", $text{"index"});
	exit;
	}

if ($access{'defaults'}) {
	# display global options
	print "<h3>$text{'index_opts'}</h3>\n";
	@olinks = ("conf_servers.cgi", "conf_logging.cgi", "conf_acls.cgi",
		   "conf_files.cgi", "conf_forwarding.cgi", "conf_net.cgi",
		   "conf_misc.cgi", "conf_zonedef.cgi");
	@otitles = map { /conf_(\S+).cgi/; $text{$1."_title"} } @olinks;
	@oicons = map { /^conf_(\S+).cgi/; "images/$1.gif"; } @olinks;
	&icons_table(\@olinks, \@otitles, \@oicons);
	print "<hr>\n";
	}

$conf = &get_config();
@zones = &find("zone", $conf);
if (@zones > $config{'max_zones'}) {
	print "<h3>$text{'index_zones'}</h3>\n";
	print "<p>$text{'index_toomany'}<p>\n";
	print "<form action=find_zones.cgi>\n";
	print "<b>$text{'index_find'}</b>\n";
	print "<input name=search size=20>\n";
	print "<input type=submit value='$text{'index_search'}'></form>\n";
	}
elsif (@zones) {
	print "<h3>$text{'index_zones'}</h3>\n";
	print "<table width=100%>\n";
	foreach $z (@zones) {
		$v = $z->{'value'};
		next if ($v eq "." || !&can_edit_zone(\%access, $v));
		$tv = &find("type", $z->{'members'});
		next if (!$tv);
		$t = $tv->{'value'};
		push(@zlinks, "edit_$t.cgi?index=$z->{'index'}");
		push(@ztitles, &ip6int_to_net(&arpa_to_ip($v)));
		push(@zicons, "images/$t.gif");
		push(@ztypes, $text{"index_$t"});
		$len++;
		}

	# sort list of zones
	@zorder = sort { $ztitles[$a] cmp $ztitles[$b] } (0 .. $len-1);
	@zlinks = map { $zlinks[$_] } @zorder;
	@ztitles = map { $ztitles[$_] } @zorder;
	@zicons = map { $zicons[$_] } @zorder;
	@ztypes = map { $ztypes[$_] } @zorder;

	if ($config{'show_list'}) {
		# display as list
		$mid = int((@zlinks+1)/2);
		print "<table width=100%><tr><td width=50% valign=top>\n";
		&zones_table([ @zlinks[0 .. $mid-1] ],
			     [ @ztitles[0 .. $mid-1] ],
			     [ @ztypes[0 .. $mid-1] ]);
		print "</td><td width=50% valign=top>\n";
		if ($mid < @zlinks) {
			&zones_table([ @zlinks[$mid .. $#zlinks] ],
				     [ @ztitles[$mid .. $#ztitles] ],
				     [ @ztypes[$mid .. $#ztypes] ]);
			}
		print "</td></tr></table>\n";
		}
	else {
		# display as icons
		&icons_table(\@zlinks, \@ztitles, \@zicons);
		}
	}
else {
	print "<b>$text{'index_none'}</b><p>\n";
	}
if ($access{'master'} && !$access{'ro'}) {
	print "<a href=\"master_form.cgi\">$text{'index_addmaster'}</a>\n";
	print "&nbsp;&nbsp;\n";
	}
if ($access{'slave'} && !$access{'ro'}) {
	print "<a href=\"slave_form.cgi\">$text{'index_addslave'}</a>\n";
	print "&nbsp;&nbsp;\n";
	print "<a href=\"stub_form.cgi\">$text{'index_addstub'}</a>\n";
	print "&nbsp;&nbsp;\n";
	}
if ($access{'forward'} && !$access{'ro'}) {
	print "<a href=\"forward_form.cgi\">$text{'index_addfwd'}</a>\n";
	print "&nbsp;&nbsp;\n";
	}
print "<p>\n";

# get pid (if any)
if (($opts = &find("options", $conf)) &&
    ($pidopt = &find("pid-file", $opts->{'members'}))) {
	# read from PID file
	$pidfile = $pidopt->{'value'};
	}
else {
	# use default file
	$pidfile = $config{'pid_file'} ? $config{'pid_file'}
				       : "/var/run/named.pid";
	}

# read the PID
if (open(PID, $config{'chroot'}.$pidfile)) {
	<PID> =~ /(\d+)/;
	$pid = $1;
	close(PID);
	}

if (!$access{'ro'} && $access{'apply'}) {
	if ($pid && kill(0, $pid)) {
		# named is running
		print "<hr>\n";
		print "<form action=restart.cgi>\n";
		print "<input type=hidden name=pid value=$pid>\n";
		print "<table width=100%><tr><td>\n";
		print "<input type=submit value=\"$text{'index_apply'}\">\n";
		print "</td> <td>$text{'index_applymsg'}</td> </tr></table>\n";
		print "</form>\n";
		}
	else {
		# named is not running
		print "<hr>\n";
		print "<form action=start.cgi>\n";
		print "<table width=100%><tr><td>\n";
		print "<input type=submit value=\"$text{'index_start'}\">\n";
		print "</td> <td>$text{'index_startmsg'}</td> </tr></table>\n";
		print "</form>\n";
		}
	}

print "<hr>\n";
&footer("/", $text{"index"});

sub dump_config
{
local($c);
foreach $c (@{$_[0]}) {
	print "$_[1]$c->{'name'} ",
		join(',', @{$c->{'values'}});
	if ($c->{'type'}) {
		print " {\n";
		&dump_config($c->{'members'}, "$_[1]\t");
		print "$_[1]}\n";
		}
	else { print "\n"; }
	}
}

sub zones_table
{
local($i);
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'index_zone'}</b></td> ",
      "<td><b>$text{'index_type'}</b></td> </tr>\n";
for($i=0; $i<@{$_[0]}; $i++) {
	print "<tr $cb>\n";
	print "<td><a href=\"$_[0]->[$i]\">$_[1]->[$i]</a></td>\n";
	print "<td>$_[2]->[$i]</td>\n";
	print "</tr>\n";
	}
print "</table>\n";
}

0707010002596d000041ed0000000000000001000000023ac03b9f00000000000000200000000000000000000000000000001100000003reloc/bind8/lang  07070100025970000081a40000000000000002000000013ac0389b00003ea8000000200000000000000000000000000000001400000003reloc/bind8/lang/de   index_title=BIND 8 DNS Server
index_enamed=Der BIND 8 DNS Server $1 konnte nicht auf Ihrem System gefunden werden. Entweder ist er nicht installiert oder die <a href='$2'>BIND 8 Modul Konfiguration</a> ist inkorrekt.
index_eversion=Die ausf&uuml;hrbare Datei $1 scheint nicht BIND 8 zu sein. Eventuell sollten Sie das <a href='$2'>BIND 4 Modul</a> benutzen.
index_eempty=Die prim&auml;re Konfigurationsdatei $1 f&uuml;r BIND 8 exisitiert nicht oder ist ung&uuml;ltig. Soll sie angelegt werden?
index_local=Nameserver nur f&uuml; internen (kein Internet) Gebrauch einrichten
index_download=Einrichten als Internet Nameserver, Root-Server Informationen runterladen
index_webmin=Einrichten als Internet Nameserver, aber Webmins &auml;ltere Root-Server Informationen benutzen
index_create=Lege prim&auml;re Konfigurationsdatei an und starte den Nameserver
index_zones=Existierende DNS Zonen
index_none=Es sind keine Zonen f&uuml;r diesen Nameserver definiert
index_addmaster=Neue Master-Zone anlegen
index_addslave=Neue Slave-Zone anlegen
index_addstub=Neue Stub-Zone anlegen
index_addfwd=Neue Weiterleitungs-Zone anlegen
index_apply=&Auml;nderungen anwenden
index_applymsg=Klicken Sie auf diesen Button um den laufenden BIND 8 Server neu zu starten. Dies wird die neue Konfiguration aktivieren.
index_start=Starte Nameserver
index_startmsg=Klicken Sie auf diesen Button um den BIND 8 Server zu starten und die Konfiguration zu laden
index_zone=Zone
index_type=Typ
index_master=Master
index_slave=Slave
index_stub=Stub
index_forward=Forward
index_opts=Globale Server Einstellungen
index_return=Zonen-Liste

master_title=Bearbeite Master Zone
master_ecannot=Sie haben keine Berechtigung, diese Zone zu bearbeiten.
master_manual=Bearbeite Datensatz
master_soa=Bearbeite Zonen-Parameter
master_options=Bearbeite Zonen-Einstellungen
master_del=L&ouml;sche Zone
master_delmsg=Klicken Sie auf diesen Button um die Zone zu l&ouml;schen
master_delrev=Passende Adress-Eintr&auml;ge in anderen Datens&auml;tzen auf diesem Server werden auch gel&ouml;scht
master_tmpl=Benutze Zonen-Vorlage?
master_ip=IP Adresse f&uuml;r Vorlage?
master_params=Zonen-Parameter
master_server=Master Server
master_email=email Adresse
master_refresh=Aktualisiere Zeit
master_retry=Transferiere Wiederholungs-Zeit
master_expiry=Ablauf Zeit
master_minimum=Standard time-to-live
master_opts=Zonen Einstellungen
master_check=&Uuml;berpr&uuml;fe Namen?
master_notify=Benachrichtige Slaves &uuml;ber &Auml;nderungen?
master_update=Erlaube Updates von..
master_transfer=Erlaube Transfers von..
master_query=Erlaube Anfragen von..
master_notify2=Benachrichtige auch Slaves..
master_type=Typ
master_records=Datens&auml;tze
master_return=Datensatz-Typen
master_err=Fehler beim Speichern der Einstellungen
master_ero=Sie haben keine Berechtigung, Zone zu aktualisieren
master_err2=Fehler beim Aktualisieren der Zone
master_emaster='$1' ist kein g&uuml;ltiger Master Server
master_eemail='$1' is not a valid email address
master_erefresh='$1' ist keine g&uuml;ltige Aktualisierungszeit
master_eretry='$1' ist keine g&uuml;ltige Transfer Wiederholungs-Zeit
master_eexpiry='$1' ist keine g&uuml;ltige Ablaufzeit
master_eminimum='$1' ist keine g&uuml;ltige Standard-TTL
master_edelete=Sie haben keine Berechtigung, diese Zone zu aktualisieren
master_tmplrecs=Vorlagen Eintr&auml;ge
master_name=Eintragsname
master_value=Wert
master_user=Von Formular
master_eip=IP Adresse fehlt oder ist un&uuml;ltige
master_eiptmpl=Werte f&uuml;r Vorlageneintr&auml;ge k&ouml;nnen nur f&uuml;r Adress-Eintr&auml;ge vorkommen
master_esoacannot=Sie haben keine Berechtigung, Zonenparameter zu bearbeiten
master_eoptscannot=Sie haben keine Berechtigung, Zoneneinstellungen zu bearbeiten
master_edeletecannot=Sie haben keine Berechtigung, Zonen zu l&ouml;schen

delete_title=L鰏che Zone
delete_mesg=Sind Sie sicher, dass Sie die Zone $1 l&ouml;schen wollen? Alle Eintr&auml;ge in dieser Zonen-Datei werden gel&ouml;scht werden.
delete_rev=L&ouml;sche Adress-zu-Namen Eintr&auml;ge in anderen Zonen?
delete_fwd=L&ouml;scge Namen-zu-Adressen Eintr&auml;ge in andern Zonen?

mcreate_title=Erstelle Master Zone
mcreate_ecannot=Sie k&ouml;nnen keine Master Zonen erstellen
mcreate_opts=Einstellungen der neuen Master Zone
mcreate_type=Zonen Typ
mcreate_fwd=Forward (Namen zu Adressen)
mcreate_rev=Reverse (Adressen zu Namen)
mcreate_dom=Domain Name / Netzwerk
mcreate_file=Datensatz Datei
mcreate_auto=Automatisch
mcreate_err=Fehler beim Anlegen der Master Zone

slave_title=Bearbeite Slave Zone
stub_title=Bearbeite Stub Zone
slave_ecannot=Sie haben keine Berechtigung, diese Zone zu bearbeiten
slave_opts=Zonen Einstellungen
slave_masters=Master Server
slave_max=Maximale Transfer-Zeit
slave_file=Datensatz Datei
slave_check=&Uuml;berpr&uuml;fe Namen?
slave_notify=Benachrichtige Slaves &uuml;ber &Auml;nderungen?
slave_update=erlaube Updates von..
slave_transfer=Erlaube Transfers von..
slave_query=Erlaube Anfragen von..
slave_notify2=Benachrichige auch Slaves..
slave_none=Keine
slave_auto=Automatisch
slave_err=Fehler beim Speichern der Einstellungen
slave_emax='$1' ist keine g&uuml;ltige maximale Transfer-Zeit
slave_efile=Fehlende Datensatz Datei
slave_efile2='$1' ist keine erlaubte Datensatz Datei
slave_mins=Minuten

screate_title1=Slave Zone erstellen
screate_title2=Stub Zone erstellen
screate_ecannot1=Sie haben keine Berechtigung Slave Zonen anzulegen
screate_ecannot2=Sie haben keine Berechtigung Stub Zonen anzulegen
screate_header1=Einstellungen der neuen Slave Zone
screate_header2=Einstellungen der neuen Stub Zone
screate_type=Zonen Typ
screate_fwd=Forward (Namen zu Adressen)
screate_rev=Reverse (Adressen zu Namen)
screate_dom=Domain Name / Netzwerk
screate_err1=Fehler beim Anlegen der Slave Zone
screate_err2=Fehler beim Anlegen der Stub Zone

recs_ecannot=Sie haben keine Berechtigung, Datens&auml;tze in dieser Zone zu bearbeiten
recs_title=$1 Datens&auml;tze
recs_header=In $1
recs_addr=Adresse
recs_name=Name
recs_ttl=TTL
recs_return=Datensatz-Typen

edit_title=Bearbeite $1
edit_header=In $1
edit_edit=Bearbeite $1 Datensatz
edit_add=F&uuml;ge $1 Datensatz hinzu
edit_addr=Adresse
edit_name=Name
edit_ttl=Time-To-Live
edit_cnamemsg=Absolute Namen m&uuml;ssen mit einem Punkt (.) enden
edit_uprev=Aktualisiere IP-zu-Name Eintrag?
edit_upfwd=Aktualisiere Name-zu-IP Eintrag?
edit_err=Fehler beim Speichern des Datensatzes
edit_ettl='$1' ist keine g&uuml;tige time-to-live
edit_eip='$1' ist keine g&uuml;ltige IP Adresse
edit_ehost='$1' ist kein g&uuml;ltiger Hostname
edit_ename='$1' ist kein g&uuml;ltiger Datensatz Name
edit_edupip=Es existiert bereits ein Adress-Datensatz f&uuml;r $1
edit_ens='$1' ist kein g&uuml;ltiger Nameserver
edit_ecname='$1' ist kein g&uuml;ltiges Alias Ziel
edit_emx='$1' ist kein g&uuml;ltiger Mailserver
edit_epri='$1' ist keine g&uuml;ltige Priorit鋞
edit_ehard=Fehlender oder ung&uuml;ltiger Hardware Typ
edit_eos=Fehlender oder ung&uuml;ltiger Betriebssystem Typ
edit_eserv=Sie haben keinen Dienst eingetragen
edit_eemail='$1' ist keine g&uuml;ltige email Adresse
edit_etxt='$1' ist kein g&uuml;ltiger Datensatz Name
edit_return=Datens&auml;tze

text_title=Bearbeite Datensatz Datei
text_desc=Dieses Formular erlaubt es Ihnen, die DNS Datensatzdatei $1 manuell zu bearbeiten. Es wird keine Syntax-&Uuml;berpr&uuml;fung von Webmin durchgef&uuml;hrt, die Serial Nummer wird nicht automatisch erh&ouml;ht.
text_undo=R&uuml;ckg&auml;ngig
text_ecannot=Sie haben keine Berechtigung, die Dateien direkt zu bearbeiten

restart_ecannot=Sie haben keine Berechtigung, BIND neu zu starten
restart_esig=Fehler beim Signalisieren des Prozesses $1 : $2
start_ecannot=Sie haben keine Berechtigung, BIND zu starten
start_error=Fehler beim Starten von BIND : $1

fwd_title=Bearbeite Forward Zone
fwd_ecannot=Sie haben keine Berechtigung diese Zone zu bearbeiten
fwd_opts=Zonen Einstellungen
fwd_masters=Master Server
fwd_forward=Versuche andere Server?
fwd_check=&Uuml;berpr&uuml;fe Namen?
fwd_err=Fehler beim Speichern der Einstellungen

fcreate_title=Erstelle Forward Zone
fcreate_ecannot=Sie haben keine Berechtigung Forward Zonen anzulegen
fcreate_opts=Einstellungen der neuen Forward Zone
fcreate_type=Zonen Typ
fcreate_fwd=Forward (Namen zu Adressen)
fcreate_rev=Reverse (Adressen zu Namen)
fcreate_dom=Domain Name / Netzwerk
fcreate_masters=Master Server
fcreate_err=Fehler beim Anlegen der Forward Zone

create_enet='$1' ist kein g&uuml;ltiges Netzwerk
create_edom='$1' ist kein g&uuml;ltiger Domain Name
create_edom2='$1' muss eine Domain und kein Netzwerk sein
create_efile='$1' ist kein g&uuml;ltiger Dateiname
create_efile2='$1' ist keine g&uuml;ltige Zonen Datei
create_efile3=Fehler beim Erstellen von '$1' : $2
create_emaster='$1' ist keine g&uuml;ltige Adresse eines Master Servers
create_enone=Sie m&uuml;ssen mindestens einen Master Server angeben

boot_err=Download schlug fehl

type_A=Adresse
type_NS=Name Server
type_CNAME=Namens-Alias
type_MX=Mail Server
type_HINFO=Host Information
type_TXT=Text
type_WKS=Well Known Service
type_RP=Verantwortliche Person
type_PTR=Reverse Adresse

edit_A=Adresse
edit_NS=Name Server
edit_CNAME=Namens-Alias
edit_MX=Mail Server
edit_HINFO=Host Information
edit_TXT=Text
edit_WKS=Well Known Service
edit_RP=Verantwortliche Person
edit_PTR=Reverse Adresse

recs_A=Adresse
recs_NS=Name Server
recs_CNAME=Namens-Alias
recs_MX=Mail Server
recs_HINFO=Host Information
recs_TXT=Text
recs_WKS=Well Known Service
recs_RP=Verantwortliche Person
recs_PTR=Reverse Adresse

value_A1=Adresse
value_NS1=Name Server
value_CNAME1=Wirklicher Name
value_MX1=Priorit&auml;t
value_MX2=Mail Server
value_HINFO1=Hardware
value_HINFO2=Betriebssystem
value_TXT1=Nachricht
value_WKS1=Adresse
value_WKS2=Protokoll
value_WKS3=Dienst
value_RP1=email Adresse
value_RP2=Text Datensatz
value_PTR1=Hostname

warn=Warnen
fail=Fehler
ignore=Ignorieren
default=Standard
listed=Aufgelistet ..
eip='$1' ist keine g&uuml;ltige IP Adresse

acl_zones=Domains, die dieser User bearbeiten darf
acl_master=Darf neue Master Zonen anlegen?
acl_slave=Darf neue Slave/Stub Zonen anlegen?
acl_forward=Darf Forward Zonen anlegen?
acl_defaults=Darf globale Einstellungen bearbeiten?
acl_reverse=Darf Reverse-Adressen in jeder Domain aktualisieren?
acl_multiple=K&ouml;nnen mehrere Adressen die gleiche IP haben?
acl_ro=Nur-Lesen Zugriffs-Modus?
acl_dir=Beschr&auml;nke Zonen Dateien auf Verzeichnis
acl_file=Darf Daten(-Datei) direkt bearbeiten?
acl_params=Darf Zonen-Parameter bearbeiten?
acl_opts=Darf Zonen Einstellunge bearbeiten?
acl_delete=Darf Zonen l&ouml;schen?

servers_title=Andere DNS Server
servers_ip=IP Adressen
servers_bogus=Ignorieren Bogus (unsinnige) Server?
servers_format=Zonen Transfer Format
servers_trans=Maximale Transfers
servers_one=Immer nur einen
servers_many=Mehrere
servers_err=Fehler beim Speichern anderer DNS Server
servers_eip='$1' ist keine g&uuml;ltige IP Adresse
servers_etrans='$1' ist keine g&uuml;ltige Anzahl von maximalen Transfers

logging_title=Logging und Fehler
logging_ecannot=Sie haben keine Berechtigung das Logging zu konfigurieren
logging_header=Globale Loggung und Fehler Einstellungen
logging_default1=Benutze BIND's Standard Logging Einstellungen
logging_default2=Benutze Einstellungen unten..
logging_cats=Logging Kategorien
logging_cat=Kategorie
logging_cchans=Kan&auml;le
logging_chans=Logging Kan&auml;le
logging_cname=Kanal Name
logging_to=Logge zu
logging_file=Datei
logging_fd=Dateiname
logging_versions=Zu haltende Versionen
logging_ver1=Keine
logging_ver2=Unendlich
logging_size=Maximale Dateigr&ouml;sse
logging_sz1=Unendlich
logging_syslog=Syslog Level
logging_null=Nirgendwo
logging_sev=Minimaler Nachrichten Level
logging_any=Beliebig
logging_debug=Debug Level ..
logging_dyn=Globaler Level
logging_pcat=Vermerke Kategorie in der Log Datei
logging_psev=Vermerke Gewicht in der Log Datei
logging_ptime=Vermerke Datum und Zeit in der Log Datei
logging_add=Neuen Kanal hinzuf&uuml;gen
logging_none=Keine Logging Kan&auml;le definiert.
logging_err=Fehler beim Speichern der Logging Einstellungen
logging_ename='$1' ist kein g&uuml;ltiger Kanal-Name
logging_efile=Fehlender Dateiname f&uuml;r Log
logging_ever='$1' ist keine g&uuml;ltige Anzahl f&uuml;r Versionen
logging_esize='$1' ist keine g&uuml;ltige Gr&ouml;ssenangabe f&uuml;r das Log

acls_title=Zugriffs-Kontrolle
acls_ecannot=Sie haben keine Berechtigung die globale Zugriffskontroll zu bearbeiten.
acls_name=ACL Name
acls_values=Passende Adressen, Netzwerke und ACLs
acls_err=Fehler beim Speichern der Zugriffs-Einstellungen
acls_ename='$1' ist kein g&uuml;ltiger Zugriffsname

files_title=Dateien und Verzeichnisse
files_ecannot=Sie haben keine Berechtigung Dateien zu konfigurieren
files_header=Globale Datei und Verzeichnis Einstellungen
files_stats=Ausgabedatei f&uuml;r Statistiken
files_dump=Datenbank Datei
files_pid=Prozess ID (PID) Datei
files_xfer=Pfad zum Zonen-Transfer-Programm
files_err=Fehler beim Speichern der Einstellungen f&uuml;r Dateien und Verzeichnisse
files_efile=Fehlender oder ung&uuml;ltiger Dateiname

forwarding_title=Weiterleitungen und Transfers
forwarding_ecannot=Sie haben keine Berechtigung, Weiterleitungs und Transfer Einstellungen zu bearbeiten
forwarding_header=Globale Weiterleitungs und Transfer Einstellungen
forwarding_fwders=Server an die Anfragen weitergeleitet werden sollen
forwarding_fwd=Suche direkt wenn keine Antwort von der Weiterleitung
forwarding_max=Maximale Zonen-Transfer Zeit
forwarding_format=Zonen-Transfer Format
forwarding_one=Immer nur einen
forwarding_many=Mehrere
forwarding_in=Maximale Anzhal gleichzeitiger Zonen-Transfers
forwarding_err=Fehler beim Speichern der Weiterleitungs und Transfer Einstellungen
forwarding_emins=Fehlende oder ung&uuml;ltige maximale Transferzeit
forwarding_etrans=Fehlende oder ung&uuml;ltige Anzahl maximaler gleichzeitiger Transfers
forwarding_minutes=Minuten

net_title=Adressen und Topologie
net_ecannot=Sie haben keine Berechtigung Adressen und Topologie zu bearbeiten
net_header=Globale Adress und Topologie Einstellungen
net_listen=Ports and Adressen auf denen geantwortet werden soll..
net_below=Unten aufgelistet..
net_port=Port
net_addrs=Adressen
net_saddr=Quell-IP-Adresse f&uuml;r Anfragen
net_sport=Quell-Port f&uuml;r Anfragen
net_topol=Nameserver Wahl Topologie
net_err=Fehler beim Speichern der Adress und Topologie Einstellungen
net_eport='$1' ist kein g&uuml;ltiger Port

misc_title=Sonstige Einstellungen
misc_ecannot=Sie haben keine Berechtigung, sonstige Einstellungen zu bearbeiten
misc_header=Sonstige globale Einstellungen
misc_core=Maximale core dump Gr&ouml;sse
misc_data=Maximale Benutzung des Datenspeichers
misc_files=Maximale Anzahl ge&ouml;ffneter Dateien
misc_stack=Maximale Benutzung des Stack Speichers
misc_clean=Intervall zwischen L&ouml;schen abgelaufener Datens&auml;tze
misc_iface=Intervall zwischen dem &Uuml;berpr&uuml;fen auf neue Schnittstellen
misc_stats=Intervall zwischen dem Loggen der Statistik
misc_recursion=Mache vollen rekursiven Lookup f&uuml;r die Clients?
misc_cnames=Erlaube mehrfache CNAME Aliase f&uuml;r einen Namen?
misc_glue=Fetch glue records?
misc_nx=Setze massgebliches AA Bit bei Antworten?
misc_err=Fehler beim speichern der sonstigen Optionen
misc_esize='$1' ist keine g&uuml;litge Gr&ouml;sse
misc_efiles='$1' ist keine g&uuml;ltige Anzahl gleichzeitig ge&ouml;ffneter Dateien
misc_emins='$1' ist keine g&uuml;ltige Minutenzahl
misc_mins=Minuten

zonedef_title=Zonen Standards
zonedef_msg=Standard f&uuml;r neue Master Zonen
zonedef_err=Fehler beim Speichern der Zonen Standards
zonedef_ecannot=Sie haben keine Berechtigung, Master Zonen Standars zu ver&auml;ndern
zonedef_msg2=Standard Zonen Einstellungen
zonedef_transfer=Erlaube Transfers von..
zonedef_query=Erlaube Anfragen von..
zonedef_cmaster=&Uuml;berpr&uuml;fe Namen in Master Zonen?
zonedef_cslave=&Uuml;berpr&uuml;fe Namen in Slave Zonen?
zonedef_cresponse=&Uuml;berpr&uuml;fe Namen in Antworten?
zonedef_notify=Benachrichtige Slaves &uuml;ber &Auml;nderungen?

efirst=Ung&uuml;ltige erste Direktive in Zeile $1 in $2
07070100025971000081a40000000000000002000000013ac0389b00003d93000000200000000000000000000000000000001400000003reloc/bind8/lang/en   index_title=BIND DNS Server
index_enamed=The BIND DNS server $1 could not be found on your system. Maybe it is not installed, or your <a href='$2'>BIND module configuration</a> is incorrect.
index_eversion=The server executable $1 does not appear to be BIND 8 or 9. Maybe your should use the <a href='$2'>BIND 4 module</a> instead.
index_eempty=The primary configuration file for BIND $1 does not exist, or is not valid. Create it?
index_local=Setup nameserver for internal non-internet use only
index_download=Setup as an internet name server, and download root server information
index_webmin=Setup as an internet name server, but use Webmin's older root server information
index_create=Create Primary Configuration File and Start Nameserver
index_zones=Existing DNS Zones
index_none=There are no DNS zones defined for this name server
index_addmaster=Create a new master zone
index_addslave=Create a new slave zone
index_addstub=Create a new stub zone
index_addfwd=Create a new forward zone
index_apply=Apply Changes
index_applymsg=Click this button to restart the running BIND server. This will cause the current configuration to become active
index_start=Start Name Server
index_startmsg=Click this button to start the BIND server, and load the current configuration
index_zone=Zone
index_type=Type
index_master=Master
index_slave=Slave
index_stub=Stub
index_forward=Forward
index_opts=Global Server Options
index_return=zone list
index_toomany=There are too many zones on your system to display here.
index_find=Find zones matching :
index_search=Search

master_title=Edit Master Zone
master_ecannot=You are not allowed to edit this zone
master_manual=Edit Records File
master_soa=Edit Zone Parameters
master_options=Edit Zone Options
master_del=Delete Zone
master_delmsg=Click this button to delete this zone from your DNS server.
master_delrev=Matching reverse address records in other zones hosted by this server will also be deleted.
master_tmpl=Use zone template?
master_ip=IP address for template records
master_params=Zone Parameters
master_server=Master server
master_ns=Add NS record for master server?
master_email=Email address
master_refresh=Refresh time
master_retry=Transfer retry time
master_expiry=Expiry time
master_minimum=Default time-to-live
master_opts=Zone Options
master_check=Check names?
master_notify=Notify slaves of changes?
master_update=Allow updates from..
master_transfer=Allow transfers from..
master_query=Allow queries from..
master_notify2=Also notify slaves..
master_type=Type
master_records=Records
master_return=record types
master_err=Failed to save options
master_ero=You are not allowed to update zones
master_err2=Failed to update zone
master_emaster='$1' is not a valid master server
master_eemail='$1' is not a valid email address
master_erefresh='$1' is not a valid refresh time
master_eretry='$1' is not a valid transfer retry time
master_eexpiry='$1' is not a valid expiry time
master_eminimum='$1' is not a valid default TTL
master_edelete=You are not allowed to delete this zone
master_tmplrecs=Template records
master_name=Record name
master_value=Value
master_user=From form
master_eip=Missing or invalid template IP address
master_eiptmpl=Template record value can only come from for Address records
master_esoacannot=You are not allowed to edit zone parameters
master_eoptscannot=You are not allowed to edit zone options
master_edeletecannot=You are not allowed to delete zones
master_etaken=This zone already exists

delete_title=Delete Zone
delete_mesg=Are you sure you want to delete the zone $1 ? All records and the zone file will be deleted.
delete_rev=Delete reverse records in other zones ?
delete_fwd=Delete forward records in other zones ?

mcreate_title=Create Master Zone
mcreate_ecannot=You cannot create master zones
mcreate_opts=New master zone options
mcreate_type=Zone type
mcreate_fwd=Forward (Names to Addresses)
mcreate_rev=Reverse (Addresses to Names)
mcreate_dom=Domain name / Network
mcreate_file=Records file
mcreate_auto=Automatic
mcreate_err=Failed to create master zone

slave_title=Edit Slave Zone
stub_title=Edit Stub Zone
slave_ecannot=You are not allowed to edit this zone
slave_opts=Zone Options
slave_masters=Master servers
slave_max=Maximum transfer time
slave_file=Records file
slave_check=Check names?
slave_notify=Notify slaves of changes?
slave_update=Allow updates from..
slave_transfer=Allow transfers from..
slave_query=Allow queries from..
slave_notify2=Also notify slaves..
slave_none=None
slave_auto=Automatic
slave_err=Failed to save options
slave_emax='$1' is not a valid max transfer time
slave_efile=Missing records file
slave_efile2='$1' is not an allowable records file
slave_mins=minutes

screate_title1=Create Slave Zone
screate_title2=Create Stub Zone
screate_ecannot1=You are not allowed to create slave zones
screate_ecannot2=You are not allowed to create stub zones
screate_header1=New slave zone options
screate_header2=New stub zone options
screate_type=Zone type
screate_fwd=Forward (Names to Addresses)
screate_rev=Reverse (Addresses to Names)
screate_dom=Domain name / Network
screate_err1=Failed to create slave zone
screate_err2=Failed to create stub zone

recs_ecannot=You are not allowed to edit records in this zone
recs_title=$1 Records
recs_header=In $1
recs_addr=Address
recs_name=Name
recs_ttl=TTL
recs_comment=Comment
recs_return=record types

edit_title=Edit $1
edit_header=In $1
edit_edit=Edit $1 Record
edit_add=Add $1 Record
edit_addr=Address
edit_name=Name
edit_zonename=Zone Name
edit_ttl=Time-To-Live
edit_comment=Comment
edit_cnamemsg=Absolute names must end with a .
edit_uprev=Update reverse?
edit_upfwd=Update forward?
edit_err=Failed to save record
edit_ettl='$1' is not a valid time-to-live
edit_eip='$1' is not a valid IP address
edit_eip6='$1' is not a valid IPv6 address
edit_ehost='$1' is not a valid hostname
edit_ename='$1' is not a valid record name
edit_edupip=An address record for $1 already exists
edit_ens='$1' is not a valid nameserver
edit_ecname='$1' is not a valid alias target
edit_emx='$1' is not a valid mail server
edit_epri='$1' is not a valid priority
edit_ehard=Missing or invalid hardware type
edit_eos=Missing or invalid OS type
edit_eserv=You did not enter any well known services
edit_ebadserv=The well known service name '$1' is incorrect
edit_eemail='$1' is not a valid email address
edit_etxt='$1' is not a valid text record name
edit_efqdn=Absolute name '$1' is too long
edit_elabel=A label in '$1' is too long
edit_eloc=Missing latitude and longitude
edit_return=records

text_title=Edit Records File
text_desc=This form allows you to manually edit the DNS records file $1. No syntax checking will be done by webmin, and the zone serial number will not be automatically incremented.
text_undo=Undo
text_ecannot=You are not allowed to edit record files

restart_ecannot=You are not allowed to restart BIND
restart_esig=Failed to signal process $1 : $2
start_ecannot=You are not allowed to start BIND
start_error=Failed to start BIND : $1

fwd_title=Edit Forward Zone
fwd_ecannot=You are not allowed to edit this zone
fwd_opts=Zone Options
fwd_masters=Master servers
fwd_forward=Try other servers?
fwd_check=Check names?
fwd_err=Failed to save options

fcreate_title=Create Forward Zone
fcreate_ecannot=You are not allowed to create forward zones
fcreate_opts=New forward zone options
fcreate_type=Zone type
fcreate_fwd=Forward (Names to Addresses)
fcreate_rev=Reverse (Addresses to Names)
fcreate_dom=Domain name / Network
fcreate_masters=Master servers
fcreate_err=Failed to create forward zone

create_enet='$1' is not a valid network
create_edom='$1' is not a valid domain name
create_edom2='$1' must be a domain, not a network
create_efile='$1' is not a valid filename
create_efile2='$1' is not an allowable zone file
create_efile3=Failed to create '$1' : $2
create_emaster='$1' is not a valid master server address
create_enone=You must enter at least one master server

boot_err=Download failed

type_A=Address
type_AAAA=IPv6 Address
type_NS=Name Server
type_CNAME=Name Alias
type_MX=Mail Server
type_HINFO=Host Information
type_TXT=Text
type_WKS=Well Known Service
type_RP=Responsible Person
type_PTR=Reverse Address
type_LOC=Location

edit_A=Address
edit_AAAA=IPv6 Adress
edit_NS=Name Server
edit_CNAME=Name Alias
edit_MX=Mail Server
edit_HINFO=Host Information
edit_TXT=Text
edit_WKS=Well Known Service
edit_RP=Responsible Person
edit_PTR=Reverse Address
edit_LOC=Location

recs_A=Address
recs_AAAA=IPv6 Adress
recs_NS=Name Server
recs_CNAME=Name Alias
recs_MX=Mail Server
recs_HINFO=Host Information
recs_TXT=Text
recs_WKS=Well Known Service
recs_RP=Responsible Person
recs_PTR=Reverse Address
recs_LOC=Location

value_A1=Address
value_NS1=Name Server
value_CNAME1=Real Name
value_MX1=Priority
value_MX2=Mail Server
value_HINFO1=Hardware
value_HINFO2=Operating System
value_TXT1=Message
value_WKS1=Address
value_WKS2=Protocol
value_WKS3=Services
value_RP1=Email Address
value_RP2=Text Record Name
value_PTR1=Hostname
value_LOC1=Latitude and Longitude

warn=Warn
fail=Fail
ignore=Ignore
default=Default
minutes=minutes
seconds=seconds
hours=hours
days=days
weeks=weeks
listed=Listed ..
eip='$1' is not a valid IP address

acl_zones=Domains this user can edit
acl_zall=All zones
acl_zsel=Selected..
acl_master=Can create master zones?
acl_slave=Can create slave/stub zones?
acl_forward=Can create forward zones?
acl_defaults=Can edit global options?
acl_reverse=Can update reverse addresses in any domain?
acl_multiple=Can multiple addresses have the same IP?
acl_ro=Read-only access mode?
acl_apply=Can apply changes?
acl_dir=Restrict zone files to directory
acl_file=Can edit records files?
acl_params=Can edit zone parameters?
acl_opts=Can edit zone options?
acl_delete=Can delete zones?
acl_findfree=Can search for free IP numbers?

servers_title=Other DNS Servers
servers_ip=IP address
servers_bogus=Ignore bogus server?
servers_format=Zone transfer format
servers_trans=Maximum transfers
servers_one=One at a time
servers_many=Many
servers_err=Failed to save other DNS servers
servers_eip='$1' is not a valid IP address
servers_etrans='$1' is not a valid number of maximum transfers

logging_title=Logging and Errors
logging_ecannot=You are not allowed to configure logging
logging_header=Global logging and error options
logging_default1=Use BIND's default logging settings
logging_default2=Use the settings below ..
logging_cats=Logging categories
logging_cat=Category
logging_cchans=Channels
logging_chans=Logging channels
logging_cname=Channel name
logging_to=Log to
logging_file=File
logging_fd=File descriptor
logging_versions=Versions to keep
logging_ver1=None
logging_ver2=Unlimited
logging_size=Maximum file size
logging_sz1=Unlimited
logging_syslog=Syslog level
logging_null=Nowhere
logging_sev=Minimum message level
logging_any=Any
logging_debug=Debug level ..
logging_dyn=Global level
logging_pcat=Record category in log
logging_psev=Record severity in log
logging_ptime=Record date and time in log
logging_add=Add a new channel
logging_none=No logging channels defined.
logging_err=Failed to save logging options
logging_ename='$1' is not a valid channel name
logging_efile=Missing log filename
logging_ever='$1' is not a valid number of versions
logging_esize='$1' is not a valid log size

acls_title=Access Control Lists
acls_ecannot=You are not allowed to edit global acls
acls_name=ACL Name
acls_values=Matching addresses, networks and ACLs
acls_err=Failed to save access control lists
acls_ename='$1' is not a valid ACL name

files_title=Files and Directories
files_ecannot=You are not allowed to configure files
files_header=Global files and directories options
files_stats=Statistics output file
files_dump=Database dump file
files_pid=Process ID file
files_xfer=Path to zone transfer program
files_err=Failed to save files and directories options
files_efile=Missing or invalid filename

forwarding_title=Forwarding and Transfers
forwarding_ecannot=You are not allowed to edit forwarding and transfer options
forwarding_header=Global forwarding and zone transfer options
forwarding_fwders=Servers to forward queries to
forwarding_fwd=Lookup directly if no response from forwarder
forwarding_max=Maximum zone transfer time
forwarding_format=Zone transfer format
forwarding_one=One at a time
forwarding_many=Many
forwarding_in=Maximum concurrent zone transfers
forwarding_err=Failed to save forwarding and transfer options
forwarding_emins=Missing or invalid maximum transfer time
forwarding_etrans=Missing or invalid maximum concurrent transfers
forwarding_minutes=minutes

net_title=Addresses and Topology
net_ecannot=You are not allowed to edit address and topology options
net_header=Global address and topology options
net_listen=Ports and addresses to listen on
net_below=Listed below..
net_port=Port
net_addrs=Addresses
net_saddr=Source IP address for queries
net_sport=Source port for queries
net_topol=Nameserver choice topology
net_err=Failed to save address and topology options
net_eport='$1' is not a valid port number
net_etopology=No topology addresses entered

misc_title=Miscellaneous Options
misc_ecannot=You are not allowed to edit miscellaneous options
misc_header=Miscellaneous global options
misc_core=Maximum core dump size
misc_data=Maximum data memory usage
misc_files=Maximum open files
misc_stack=Maximum stack memory usage
misc_clean=Interval between cleaning expired records
misc_iface=Interval between check for new interfaces
misc_stats=Interval between logging stats
misc_recursion=Do full recursive lookups for clients?
misc_cnames=Allow multiple CNAME aliases for one name?
misc_glue=Fetch glue records?
misc_nx=Set authorative AA bit on responses?
misc_err=Failed to save miscellaneous options
misc_esize='$1' is not a valid size
misc_efiles='$1' is not a valid number of maximum open files
misc_emins='$1' is not a valid number of minutes
misc_mins=mins

zonedef_title=Zone Defaults
zonedef_msg=Defaults for new master zones
zonedef_err=Failed to save zone defaults
zonedef_ecannot=You are not allowed to change master zone defaults
zonedef_msg2=Default zone settings
zonedef_transfer=Allow transfers from..
zonedef_query=Allow queries from..
zonedef_cmaster=Check names in master zones?
zonedef_cslave=Check names in slave zones?
zonedef_cresponse=Check names in responses?
zonedef_notify=Notify slaves of changes?

find_title=Find Zones
find_match=Zones matching $1 ..
find_none=No zones found.

efirst=Bad first directive at line $1 in $2

findfree_title=Find Free IPs
findfree_desc=Find Free IPs
findfree_nofind=You cannot look for free IP's
findfree_header=In $1
findfree_sopt=Search options
findfree_IPrange=IP range
findfree_from=from
findfree_to=to
findfree_cf=Consider <em>`freeXXX'</em> hostnames as free IP's?
findfree_search=Search

log_servers=Changed other DNS servers
log_logging=Changed logging and errors
log_acls=Changed access control lists
log_files=Changed files and directories
log_forwarding=Changed forwarding and transfers
log_net=Changed addresses and topology
log_misc=Changed miscellaneous options
log_zonedef=Changed zone defaults
log_apply=Applied changes
log_start=Started DNS server
log_master=Created master zone $1
log_slave=Created slave zone $1
log_stub=Created stub zone $1
log_forward=Created forward zone $1
log_delete_master=Deleted master zone $1
log_delete_slave=Deleted slave zone $1
log_delete_stub=Deleted stub zone $1
log_delete_forward=Deleted forward zone $1
log_text=Manually edited records for $1
log_soa=Changed zone parameters for $1
log_opts=Changed zone options for $1
log_delete_record=Deleted $1 record $2 in zone $3
log_create_record=Created $1 record $2 in zone $3
log_modify_record=Modified $1 record $2 in zone $3
log_boot=Created primary configuration file

 07070100025972000081a40000000000000002000000013ac0389b000046db000000200000000000000000000000000000001400000003reloc/bind8/lang/es   index_title=Servidor de DNS BIND
index_enamed=El servidor de DNS BIND $1 no ha podido ser encontrado en tu sistema. Quiz醩 no est instalado o tu <a href='$2'>configuraci髇 del m骴ulo BIND</a> es incorrecta.
index_eversion=El ejecutable del servidor $1 no parece ser BIND 8 o 9. Quiz醩 deber韆s utilizar el <a href='$2'>m骴ulo BIND 4</a> en su lugar.
index_eempty=El archivo primario $1 de configuraci髇 para BIND no existe o no es v醠ido. 縇o creo?
index_local=Configurar servidor de nombres s髄o para uso interno sin internet
index_download=Configurar como servidor de nombres de internet y descargar informaci髇 de servidor raiz
index_webmin=Configurar como servidor de nombres de internet pero usar antigua informaci髇 de servidor raiz de Webmin
index_create=Crear Archivo de Configuraci髇 Primario y Arrancar Servidor de Nombes
index_zones=Zonas DNS Existentes
index_none=No hay zonas DNS definidas para este servidor de nombres
index_addmaster=Crar una nueva zona maestra
index_addslave=Crear una nueva zona esclava
index_addstub=Crear una nueva zona de s髄o cach
index_addfwd=Crear una nueva zona de reenv韔
index_apply=Aplicar Cambios
index_applymsg=Haz click en este bot髇 para rearrancar el servidor BIND que se est ejecutando. Esto har que la configuraci髇 en curso pase a estar activa
index_start=Arrancar Servidor de Nombres
index_startmsg=Haz click en este bot髇 para arrancar el servidor BIND y cargar la configuraci髇 actual
index_zone=Zona
index_type=Tipo
index_master=Maestra
index_slave=Esclava
index_stub=S髄o Cach
index_forward=de Reenv韔
index_opts=Opciones Globales del Servidor
index_return=lista de zonas
index_toomany=Hay demasiadas zonas en tu sistema para que sean mostradas aqu.
index_find=Hallar zonas que coincidan con:
index_search=Buscar

master_title=Editar Zona Maestra
master_ecannot=No est醩 autorizado a editar esta zona
master_manual=Editar Archivo de Registros
master_soa=Editar Par醡etros de Zona
master_options=Editar Opciones de Zona
master_del=Borrar Zona
master_delmsg=Haz click en este bot髇 para borrar esta zona de tu servidor DNS.
master_delrev=Los registros de direcciones inversas que coincidan en otras zonas soportadas por este servidor tambi閚 ser醤 borrados.
master_tmpl=縐tilizo plantilla de zona?
master_ip=Direcci髇 IP para registros de plantilla
master_params=Par醡etros de Zona
master_server=Servidor Maestro
master_ns=緼馻do registro NS para servidor maestro?
master_email=Direcci髇 de correo
master_refresh=Tiempo de refresco
master_retry=Tiempo para reintentar transferencia
master_expiry=Tiempo para expirar
master_minimum=Tiempo-que-est-viva por Defecto
master_opts=Opciones de Zona
master_check=縍eviso nombres?
master_notify=縉otifico los cambios a las esclavas?
master_update=Permitir actualizaciones desde...
master_transfer=Permitir transferencias desde...
master_query=Permitir consultas desde...
master_notify2=Tambi閚 notificar a esclavas...
master_type=Tipo
master_records=Registros
master_return=tipos de registro
master_err=Error al salvar opciones
master_ero=No est醩 autorizado a actualizar las zonas
master_err2=Error al actualizar zona
master_emaster='$1' no es un servidor maestro v醠ido
master_eemail='$1' no es una direcci髇 de correo v醠ida
master_erefresh='$1' no es una tiempo de refresco v醠ido
master_eretry='$1' no es un tiempo de reintento de transferencia v醠ido
master_eexpiry='$1' no es un tiempo de expiraci髇 v醠ido
master_eminimum='$1' no es un tiempo-que-est-viva por defecto v醠ido
master_edelete=No est醩 autorizado a borrar esta zona
master_tmplrecs=Registros plantilla
master_name=Nombre de registro
master_value=Valor
master_user=Desde formulario
master_eip=Direcci髇 IP de plantilla inv醠ida o sin poner
master_eiptmpl=Valor de registro de plantilla s髄o puede venir desde registros de direcci髇
master_esoacannot=No est醩 autorizado a editar par醡etros de zona
master_eoptscannot=No est醩 autorizado a editar opciones de zona
master_edeletecannot=No est醩 autorizado a borrar zonas
master_etaken=Esta zona ya existe

delete_title=Borrar Zona
delete_mesg=縀st醩 seguro de querer borrar la zona $1?. Todos sus registros y el archivo de zona ser醤 borrados.
delete_rev=緽orro los registros inversos de otras zonas?
delete_fwd=緽orro los registros de reenv韔 de otras zonas?

mcreate_title=Crear Zona Maestra
mcreate_ecannot=No puedes crear zonas maestras
mcreate_opts=Opciones de nueva zona maestra
mcreate_type=Tipo de zona
mcreate_fwd=Reenv韔 (Nombres a Direcciones)
mcreate_rev=Inversas (Direcciones a Nombres)
mcreate_dom=Nombre de Dominio/Red
mcreate_file=Archivo de Registros
mcreate_auto=Autom醫ico
mcreate_err=Error al crear zona maestra

slave_title=Editar Zona Esclava
stub_title=Editar Zona de S髄o Cach
slave_ecannot=No est醩 autorizado a editar esta zona
slave_opts=Opciones de Zona
slave_masters=Servidores Maestros
slave_max=M醲imo tiempo de transferencia
slave_file=Archivo de Registros
slave_check=縍eviso los nombres?
slave_notify=縉otifico a las esclavas los cambios?
slave_update=Permitir actualizaciones desde...
slave_transfer=Permitir transferencias desde...
slave_query=Permitir consultas desde...
slave_notify2=Tambi閚 notificar a esclavas...
slave_none=Ninguno
slave_auto=Autom醫ico
slave_err=Error al salvar opciones
slave_emax='$1' no es tiempo m醲imo de transferencia v醠ido
slave_efile=Archivo de registros perdido
slave_efile2='$1' no es una archivo de registros permitido
slave_mins=minutos

screate_title1=Crear Zona Esclava
screate_title2=Crear Zona de S髄o Cach
screate_ecannot1=No est醩 autorizado a crear zonas esclavas
screate_ecannot2=No est醩 autorizado a crear zonas de s髄o cach
screate_header1=Opciones de nueva zona esclava
screate_header2=Opciones de nueva zona s髄o cach
screate_type=Tipo de Zona
screate_fwd=Reenv韔 (Nombres a Direcciones)
screate_rev=Inversas (Direcciones a Nombres)
screate_dom=Nombre de Dominio/Red
screate_err1=Error al crear zona esclava
screate_err2=Error al crear zona de s髄o cach

recs_return=tipos de registro
recs_title=$1 Registros
recs_header=En $1
recs_addr=Direcci髇
recs_name=Nombre
recs_ttl=TTL
recs_comment=Comentario
recs_return=registros

edit_title=Editar $1
edit_header=En $1
edit_edit=Editar Registro $1
edit_add=A馻dir Registro $1
edit_addr=Direcci髇
edit_name=Nombre
edit_zonename=Nombre de Zona
edit_ttl=Tiempo-Que-Est-Vivo
edit_comment=Comentario
edit_cnamemsg=Los nombres absolutos deben de terminar con un .
edit_uprev=緼ctualizo Inversas?
edit_upfwd=緼ctualizo las de Reenv韔?
edit_err=Error al salvar registro
edit_ettl='$1' no es un tiempo-que-est-vivo v醠ido
edit_eip='$1' no es una direcci髇 IP v醠ida
edit_eip6='$1' no es una direcci髇 IPv6 v醠ida
edit_ehost='$1' no es un nombre de m醧uina v醠ido
edit_ename='$1' no es un nombre de registro v醠ido
edit_edupip=Ya existe un registro de direcci髇 para $1
edit_ens='$1' no es un nombre de servidor v醠ido
edit_ecname='$1' no es un blanco de alias v醠ido
edit_emx='$1' no es un servidor de correo v醠ido
edit_epri='$1' no es una prioridad v醠ida
edit_ehard=Tipo de hardware no est puesto o es inv醠ido
edit_eos=Tipo de SO no est puesto o es inv醠ido
edit_eserv=No digitaste servicios acreditados
edit_ebadserv=El acreditado nombre de servicio '$1' es incorrecto
edit_eemail='$1' no es una direcci髇 de correo v醠ida
edit_etxt='$1' no es un nombre de registro de texto v醠ido
edit_efqdn=El nombre absoluto '$1' es demasiado largo
edit_elabel=Una etiqueta en '$1' es demasiado larga
edit_eloc=Latitud y longitud sin poner
edit_return=registros

text_title=Editar Archivo de Registros
text_desc=Este formulario te permite edtar manualmente el archivo de registros DNS $1. Webmin no har revisi髇 sint醕tica alguna y el n鷐ero de serie de zona no ser autom醫icamente incrementado.
text_undo=Deshacer
text_ecannot=No est醩 autorizado a editar archivos de registro

restart_ecannot=No est醩 autorizado a rearrancar BIND
restart_esig=Error el enviar se馻l a proceso $1 : $2
start_ecannot=No est醩 autorizado a arrancar BIND
start_error=No pude arrancar BIND: $1

fwd_title=Editar Zona de Reenv韔
fwd_ecannot=No est醩 autorizado a editar esta zona
fwd_opts=Opciones de Zona
fwd_masters=Servidores maestros
fwd_forward=縋ruebo con otros servidores?
fwd_check=縍eviso nombres?
fwd_err=Error al salvar opciones

fcreate_title=Crear Zona de Reenv韔
fcreate_ecannot=No est醩 autorizado a crear zonas de reenv韔
fcreate_opts=Opciones de nueva zona de reenv韔
fcreate_type=Tipo de Zona
fcreate_fwd=Renv韔 (Nombres a Direcciones)
fcreate_rev=Inversas (Direcciones a Nombres)
fcreate_dom=Nombre de Dominio / Red
fcreate_masters=Servidores maestros
fcreate_err=Error al crear zona de reenv韔

create_enet='$1' no es una red v醠ida
create_edom='$1' no es un nombre de dominio v醠ido
create_edom2='$1' debe de ser un dominio, no una red
create_efile='$1' no es un nombre de archivo v醠ido
create_efile2='$1' no es un archivo de zona permisible
create_efile3=No pude crear '$1': $2
create_emaster='$1' no es una direcci髇 de servidor maestro v醠ida
create_enone=Debes de digitar al menos un servidor maestro

boot_err=Error en la descarga

type_A=Direcci髇
type_AAAA=Direcci髇 IPv6
type_NS=Servidor de Nombres
type_CNAME=Alias de Nombre
type_MX=Servidor de Correo
type_HINFO=Informaci髇 de M醧uina
type_TXT=Texto
type_WKS=Servicio Acreditado
type_RP=Persona Responsable
type_PTR=Direcci髇 Inversas
type_LOC=Localizaci髇

edit_A=Direcci髇
edit_AAAA=Direcci髇 IPv6
edit_NS=Nombre de Servidor
edit_CNAME=Nombre de Alias
edit_MX=Servidor de Correo
edit_HINFO=Informaci髇 de M醧uina
edit_TXT=Texto
edit_WKS=Servicio Acreditado
edit_RP=Persona Responsable
edit_PTR=Direcci髇 Inversa
edit_LOC=Localizaci髇

recs_A=Direcci髇
recs_AAAA=Direcci髇 IPv6
recs_NS=Nombre de Servidor
recs_CNAME=Nombre de Alias
recs_MX=Servidor de Correo
recs_HINFO=Informaci髇 de M醧uina
recs_TXT=Texto
recs_WKS=Servicio Acreditado
recs_RP=Persona Responsable
recs_PTR=Direcci髇 Inversa
recs_LOC=Localizaci髇

value_A1=Direcci髇
value_NS1=Servidor de Nombres
value_CNAME1=Nombre Real
value_MX1=Prioridad
value_MX2=Servidor de Correo
value_HINFO1=Hardware
value_HINFO2=Sistema Operativo
value_TXT1=Mensaje
value_WKS1=Direcci髇
value_WKS2=Protocolo
value_WKS3=Servicios
value_RP1=Direcci髇 de Correo
value_RP2=Registro de Texto
value_PTR1=M醧uina
value_LOC1=Latitud y Longitud

warn=Aviso
fail=Fallo
ignore=Ignorar
default=Por defecto
minutes=minutos
seconds=segundos
hours=horas
days=d韆s
weeks=semanas
listed=Listado...
eip='$1' no es una direcci髇 IP v醠ida

acl_zones=Dominios que este usuario puede editar
acl_zall=Todas las zonas
acl_zsel=Las seleccionadas...
acl_master=縋uede crear zonas maestras?
acl_slave=縋uede crear zonas esclavas/s髄o cach?
acl_forward=縋uede crear zonas de reenv韔?
acl_defaults=縋uede editar opciones globales?
acl_reverse=縋uede actualizar direcciones inversas en cualquier dominio?
acl_multiple=縋ueden tener la misma IP direcciones m鷏tiples?
acl_ro=縈odo de acceso de S髄o-lectura?
acl_apply=縋uede aplicar los cambios?
acl_dir=Restringir archivos de zona a directorio
acl_file=縋uede editar archivos de registros?
acl_params=縋uede editar par醡etros de zona?
acl_opts=縋uede editar opciones de zona?
acl_delete=縋uede borrar zonas?
acl_findfree=縋uedo buscar n鷐eros de IP libres?

servers_title=Otros Servidores DNS
servers_ip=Direcci髇 IP
servers_bogus=縄gnorar servidor fraudulento?
servers_format=Formato de transferencia de Zona
servers_trans=M醲imas Transferencias
servers_one=Una cada vez
servers_many=Muchas
servers_err=Error al salvar otros servidores DNS
servers_eip='$1' no es una direcci髇 IP v醠ida
servers_etrans='$1' no es un n鷐ero v醠ido de m醲imas transferencias

logging_title=Historial y Errores
logging_ecannot=No est醩 autorizado a configurar el historial
logging_header=Opciones Globales de error e historial
logging_default1=Usar valores de historial de BIND por defecto
logging_default2=Usar los valores puestos debajo...
logging_cats=Categor韆s de historial
logging_cat=Categor韆
logging_cchans=Canales
logging_chans=Canales de historial
logging_cname=Nombre de canal
logging_to=Lleva historial en
logging_file=Archivo
logging_fd=Descriptor de archivo
logging_versions=Versiones a mantener
logging_ver1=Ninguna
logging_ver2=Ilimitadas
logging_size=M醲ima medida de archivo
logging_sz1=Ilimitada
logging_syslog=Nivel de historial de sistema (Syslog)
logging_null=Ninguno
logging_sev=Nivel m韓imo de mensaje
logging_any=Cualquiera
logging_debug=Nivel de depuraci髇...
logging_dyn=Nivel global
logging_pcat=Grabar categor韆 en historial
logging_psev=Grabar severidad en historial
logging_ptime=Grabar fecha y hora en historial
logging_add=A馻dir nuevo canal
logging_none=No se han definido canales de historial.
logging_err=Error al salvar opciones de historial
logging_ename='$1' no es un nombre de canal v醠ido
logging_efile=No se ha puesto nombre de archivo de historial
logging_ever='$1' no es un n鷐ero v醠ido de versiones
logging_esize='$1' no es una medida de historial v醠ida

acls_title=Listas de Control de Acceso
acls_ecannot=No est醩 autorizado a editar listas de control de acceso globales
acls_name=Nombre de Lista de Control de Acceso
acls_values=Direcciones que coincidan, redes y listas de control de acceso
acls_err=Error al salvar listas de control de acceso
acls_ename='$1' no es un nombre v醠ido de Lista de Control de Acceso

files_title=Archivos y Directorios
files_ecannot=No est醩 autorizado a configurar archivos
files_header=Opciones Globales de archivos y directorios
files_stats=Archivo de salida de Estad韘ticas
files_dump=Archivo de volcado de Base de Datos
files_pid=Archivo de ID de Proceso
files_xfer=Trayectoria a programa de transferencia de zona
files_err=Error al salvar opciones de archivos y directorios
files_efile=Nombre de archivo sin poner o inv醠ido

forwarding_title=Reenv韔 y Transferencias
forwarding_ecannot=No est醩 autorizado a editar opciones de reenv韔 y transferencia
forwarding_header=Opciones globales de reenv韔 y transferencia de zona
forwarding_fwders=Servidores a los que reenviar consultas
forwarding_fwd=Mirar directamente si no hay respuesta del remitente
forwarding_max=Tiempo m醲imo de transferencia de zona
forwarding_format=Formato de transferencia de zona
forwarding_one=Uno cada vez
forwarding_many=Muchos
forwarding_in=M醲imas transferencias concurrentes de zona
forwarding_err=Error al savar opciones de reenv韔 y transferencia
forwarding_emins=Tiempo m醲imo de transferencia sin poner o inv醠ido
forwarding_etrans=M醲imas transferencias concurrentes sin poner o inv醠idas
forwarding_minutes=minutos

net_title=Direcciones y Topolog韆
net_ecannot=No est醩 autorizado a editar opciones de direcci髇 y topolog韆
net_header=Opciones globales de direcci髇 y topolog韆
net_listen=Puertos y direcciones en donde escuchar
net_below=Listado debajo...
net_port=Puerto
net_addrs=Direcciones
net_saddr=Direcci髇 IP origen para las consultas
net_sport=Puerto origen para las consultas
net_topol=Selecci髇 de topolog韆 para Servidor de Nombres
net_err=Error al salvar opciones de direcci髇 y topolog韆
net_eport='$1' no es un n鷐ero de puerto v醠ido

misc_title=Opciones Varias
misc_ecannot=No est醩 autorizado a editar opciones miscel醤eas
misc_header=Opciones globales miscel醤eas
misc_core=Medida m醲ima de volcado de memoria
misc_data=Uso m醲imo de memoria de datos
misc_files=M醲imo n鷐ero de archivos abiertos
misc_stack=Uso m醲imo de memoria de pila
misc_clean=Intervalo para limpiar registros expirados
misc_iface=Intervalo para chequear por nuevas interfaces
misc_stats=Intervalo entre estados de historial
misc_recursion=縃ago b鷖quedas recursivas para clientes?
misc_cnames=縋ermito alias m鷏tiple CNAME para un nombre?
misc_glue=縍ecojo registros pegados?
misc_nx=Pongo bit autorizativo AA en las respuestas?
misc_err=Error al salvar opciones miscel醤eas
misc_esize='$1' no es una medida v醠ida
misc_efiles='$1' no es un n鷐ero v醠ido de m醲imo n鷐ero de archivos abiertos
misc_emins='$1' no es un n鷐ero v醠ido de minutos
misc_mins=mins

zonedef_title=Valores por Defecto de Zona
zonedef_msg=Valores por defecto para nuevas zonas maestras
zonedef_err=Error al savar valores por defecto de zona
zonedef_ecannot=No est醩 autorizado a cambiar valores por defecto de zona maestra
zonedef_msg2=Valores por defecto de zona
zonedef_transfer=Permitir transferencias desde...
zonedef_query=Permitir consultas desde...
zonedef_cmaster=縍eviso nombres en zonas maestras?
zonedef_cslave=縍eviso nombres en zonas esclavas?
zonedef_cresponse=縍eviso los nombres en la respuestas?
zonedef_notify=縉otifico a la esclavas a cerca de los cambios?

find_title=Hallar Zonas
find_match=Zonas que coincidan con $1...
find_none=No se han hallado zonas.

efirst=Directiva primera err髇ea en la l韓ea $1 de $2

findfree_title=Buscar IPs Libres
findfree_desc=Buscar IPs Libres
findfree_nofind=No puedes buscar IPs libres
findfree_header=En $1
findfree_sopt=Opciones de b鷖queda
findfree_IPrange=Rango de IP
findfree_from=Desde
findfree_to=hasta
findfree_cf=緾onsiderar nombres de m醧uina <em>`freeXXX'</em> como IPs libres?
findfree_search=Buscar

log_servers=Cambiados otros servidores DNS
log_logging=Cambiados historiales y errores
log_acls=Cmabiadas listas de control de acceso
log_files=Cambiados directorios y archivos
log_forwarding=Cambiados reenv韔s y transferencias
log_net=Cambiadas direcciones y topolog韆
log_misc=Cambiadas opciones varias
log_zonedef=Cambiados valores por defecto de zona
log_apply=Cambios aplicados
log_start=Servidor DNS arrancado
log_master=Creada zona maestra $1
log_slave=Creada zona esclava $1
log_stub=Creada zona de s髄o cach $1
log_forward=Creada zona de reenv韔 $1
log_delete_master=Borrada zona maestra $1
log_delete_slave=Borrada zona esclava $1
log_delete_stub=Borrada zona de s髄o cach $1
log_delete_forward=Borrada zona de reenv韔 $1
log_text=Editados manu醠mente registros de $1
log_soa=Cambiados par醡etros de zona de $1
log_opts=Cambiadas opciones de zona de $1
log_delete_record=Borrado $1 registro $2 en zona $3
log_create_record=Creado $1 registro $2 en zona $3
log_modify_record=Modificado $1 registro $2 en zona $3
log_boot=Creado archivo de configuraci髇 primario

 07070100025973000081a40000000000000002000000013ac0389b00003afc000000200000000000000000000000000000001400000003reloc/bind8/lang/fr   index_title=Serveur de Noms de Domaines (DNS) BIND 8
index_enamed=L'ex閏utable serveur DNS BIND 8 '$1' n'a pas 閠 trouv sur votre syst鑝e.  Peut-阾re qu'il n'est pas install, ou vous n'avez pas ajust correctement la <a href='$2'>Configuration du module BIND 8</a>.
index_eversion=L'ex閏utable '$1' du serveur ne semble pas 阾re celui de BIND 8.  Peut-阾re devriez-vous utiliser le <a href='$2'>Module BIND 4</a>.
index_eempty=Le fichier de configuration primaire '$1' n'existe pas ou est invalide.  Doit-on en cr閑r un nouveau?
index_local=Configurer le serveur de noms pour une utilisation interne, pour un usage sans Internet
index_download=Configurer un serveur de noms Internet et t閘閏harger toutes les informations racines du serveur
index_webmin=Configurer un serveur de noms Internet, mais utiliser les informations racines de Webmin
index_create=Cr閑r un Fichier de Configuration Primaire et D閙arrer le Serveur de Noms
index_zones=Zones Existante
index_none=Il n'y a aucune zone d閒inie sur ce serveur de noms
index_addmaster=Cr閑r une nouvelle zone primaire
index_addslave=Cr閑r une nouvelle zone secondaire
index_addstub=Cr閑r une nouvelle zone talon
index_addfwd=Cr閑r une nouvelle zone directe
index_apply=Appliquer tous Changements
index_applymsg=Appuyer sur ce bouton pour red閙arrer le serveur de noms, ce qui activera la nouvelle configuration
index_start=D閙arrer le Serveur de Noms
index_startmsg=Appuyer sur ce bouton pour d閙arrer le serveur de noms, ce qui chargera la nouvelle configuration
index_zone=Zone
index_type=Type
index_master=Primaire
index_slave=Secondaire
index_stub=Talon
index_forward=Redirection
index_opts=Options Globale du Serveur
index_return=liste de zones

master_title=蒬iter une Zone Primaire
master_ecannot=Vous n'阾es pas autoris  閐iter cette zone
master_manual=蒬iter le Fichier d'Enregistrements
master_soa=蒬iter les Param鑤res de la Zone
master_options=蒬iter les Options de la Zone
master_del=Supprimer la Zone
master_delmsg=Cliquer sur ce bouton pour supprimer cette zone de votre serveur de noms.
master_delrev=Le registre des adresses inverse correspondant aux autres zones de ce serveur vont aussi 阾re supprim
master_params=Param鑤re de la zone
master_server=Serveur Primaire
master_email=Adresse Couriel
master_refresh=Temps de rafra頲hissement
master_retry=Temps de retransfert
master_expiry=Temps d'expiration
master_minimum=Dur閑 de vie par d閒aut
master_opts=Options de la Zone
master_check=V閞ifier les noms?
master_notify=Noter les serveurs secondaires des changements?
master_update=Autoriser les mises--jour de
master_transfer=Autoriser les transferts de
master_query=Autoriser les requ阾es de
master_notify2=Aussi noter les serveurs secondaires
master_type=Type
master_records=Enregistrements
master_return=Type d'enregistrement
master_err=Impossible d'enregistrer les options
master_ero=Vous n'阾es pas autoris  mettre  jour une zone
master_err2=Impossible de mettre  jour la zone
master_emaster=$1 n'est pas un serveur principal valide
master_eemail=$1 n'est pas une adresse couriel valide
master_erefresh=$1 n'est pas un temps de rafra頲hissement valide
master_eretry=$1 n'est pas un temps de retransfert valide
master_eexpiry=$1 n'est pas un temps d'expiration valide
master_eminimum=$1 n'est pas une dur閑 de vie valide
master_edelete=Vous n'阾es pas autoris  supprimer cette zone

mcreate_title=Cr閑r une Zone Primaire
mcreate_ecannot=Vous n'阾es pas autoris  cr閑r une zone primaire
mcreate_opts=Options d'une nouvelle zone primaire
mcreate_type=Type de Zone
mcreate_fwd=Exp閐ition (Noms  Adresses)
mcreate_rev=Inverse (Adresse  Nom)
mcreate_dom=Nom de domaine / R閟eau
mcreate_file=Fichier d'enregistrements
mcreate_auto=Automatique
mcreate_err=Impossible de cr閑r la zone primaire

slave_title=蒬iter une Zone Secondaire
stub_title=蒬iter une Zone Talon
slave_ecannot=Vous n'阾es pas autoris  閐iter cette zone
slave_opts=Options de la Zone
slave_masters=Serveurs Primaire
slave_max=Temps de transferts maximum
slave_file=Fichier d'enregistrements
slave_check=V閞ifier les noms?
slave_notify=Noter les serveurs secondaires du changement?
slave_update=Autoriser les mise  jour de
slave_transfer=Autoriser les transferts de
slave_query=Autoriser les requ阾es de
slave_notify2=Aussi noter les serveurs secondaires
slave_none=Aucun
slave_auto=Automatique
slave_err=Impossible d'enregistrer les options
slave_emax=$1 n'est pas un temps de transfert maximum valide
slave_efile=Fichier d'enregistrement manquant
slave_efile2='$1' n'est pas un fichier d'enregistrement acceptable
slave_mins=minutes

screate_title1=Cr閑r une Zone Secondaire
screate_title2=Cr閑r une Zone Talon
screate_ecannot1=Vous n'阾es pas autoris  cr閑r une zone secondaire
screate_ecannot2=Vous n'阾es pas autoris  cr閑r une zone talon
screate_header1=Options d'une nouvelle zone secondaire
screate_header2=Options d'une nouvelle zone talon
screate_type=Type de Zone
screate_fwd=Exp閐ition (Noms  Adresses)
screate_rev=Inverse (Adresses  Noms)
screate_dom=Nom de domaine / R閟eau
screate_err1=Impossible de cr閑r la zone secondaire
screate_err2=Impossible de cr閑r la zone talon

recs_ecannot=Vous n'阾es pas autoris  閐iter les enregistrements de cette zone
recs_title=$1 Enregistrements
recs_header=Dans $1
recs_addr=Adresse
recs_name=Nom
recs_ttl=Dur閑 de vie
recs_return=Type d'enregistrement

edit_title=蒬iter $1
edit_header=Dans $1
edit_edit=蒬iter l'enregistrement $1
edit_add=Ajouter l'enregistrement $1
edit_addr=Adresse
edit_name=Nom
edit_ttl=Dur閑 de vie
edit_cnamemsg=Les noms absolus doivent se terminer par un point '.'
edit_uprev=Mettre  jour l'adresse inverse?
edit_upfwd=Mettre  jour l'adresse d'exp閐ition?
edit_err=Impossible de sauver l'enregistrement
edit_ettl=$1 n'est pas une dur閑 de vie valide
edit_eip=$1 n'est pas une adresse IP valide
edit_ehost=$1 n'est pas un nom d'h魌e valide
edit_ename=$1 n'est pas un nom d'enregistrement valide
edit_edupip=Un enregistrement pour $1 existe d閖
edit_ens=$1 n'est pas un nom de serveur valide
edit_ecname=$1 n'est pas un alias cible valide
edit_emx=$1 n'est pas un serveur de couriel valide
edit_epri=$1 n'est pas une priorit valide
edit_ehard=Type de mat閞iel manquant ou invalide
edit_eos=Type de syst鑝e d'exploitation manquant ou invalide
edit_eserv=Vous avez entrer aucun serveur bien connu
edit_eemail=$1 n'est pas une adresse de couriel valide
edit_etxt=$1 n'est pas un nom d'enregistrement valide
edit_return=enregistrements

text_title=蒬iter un Fichier d'Enregistrements
text_desc=Cette page vous permet d'閐iter manuellement le fichier enregistrements '$1'.  Aucune v閞ification de syntaxe sera faite par Webmin et les num閞o de s閞ie des zones ne sera pas automatiquement incr閙ent.
text_undo=Annuler

restart_ecannot=Vous n'阾es pas autoris  red閙arrer BIND
restart_esig=Impossible d'envoyer le signal au processus $1 : $2
start_ecannot=Vous n'阾es pas autoris  d閙arrer BIND

fwd_title=蒬iter une Zone Directe
fwd_ecannot=Vous n'阾es pas autoris  閐iter cette zone
fwd_opts=Options de la Zone
fwd_masters=Serveurs Principal
fwd_forward=Essayer d'autres serveurs?
fwd_check=V閞ifier les noms?
fwd_err=Impossible d'enregistrer les options

fcreate_title=Cr閑r une Zone Directe
fcreate_ecannot=Vous n'阾es pas autoris  cr閑r une zone directe
fcreate_opts=Options d'une nouvelle zone directe
fcreate_type=Type de la zone
fcreate_fwd=Exp閐ition (Noms  Adresses)
fcreate_rev=Inverse (Adresses  Noms)
fcreate_dom=Nom de Domaine / R閟eau
fcreate_masters=Serveurs Primaire
fcreate_err=Impossible de cr閑r une zone directe

create_enet=$1 n'est pas un r閟eau valide
create_edom=$1 n'est pas un nom de domaine valide
create_edom2=$1 doit 阾re un domaine et non un r閟eau
create_efile='$1' n'est pas un nom de fichier valide
create_efile2=$1 n'est pas un fichier de zone acceptable
create_efile3=Impossible de cr閑r $1 : $2
create_emaster=$1 n'est pas une adresse de serveur principal valide
create_enone=Vous devez au moins entrer un serveur principal

boot_err=Impossible de t閘閏harger

type_A=Adresse
type_NS=Nom de Serveur
type_CNAME=Alias du Nom
type_MX=Serveur de Couriel
type_HINFO=Information de l'H魌e
type_TXT=Texte
type_WKS=Service Bien Connu
type_RP=Personne Responsable
type_PTR=Adressage Inverse

edit_A=Adresse
edit_NS=Nom de Serveur
edit_CNAME=Alias du Nom
edit_MX=Serveur de Couriel
edit_HINFO=Information de l'H魌e
edit_TXT=Texte
edit_WKS=Service Bien Connu
edit_RP=Personne Responsable
edit_PTR=Adressage Inverse

recs_A=Adresse
recs_NS=Nom de Serveur
recs_CNAME=Alias du Nom
recs_MX=Serveur de Couriel
recs_HINFO=Information de l'H魌e
recs_TXT=Texte
recs_WKS=Service Bien Connu
recs_RP=Personne Responsable
recs_PTR=Adressage Inverse

value_A1=Adresse
value_NS1=Nom de Serveur
value_CNAME1=V閞itable Nom
value_MX1=Priorit
value_MX2=Serveur de Couriel
value_HINFO1=Mat閞iel
value_HINFO2=Syst鑝e d'Exploitation
value_TXT1=Message
value_WKS1=Adresse
value_WKS2=Protocole
value_WKS3=Services
value_RP1=Adresse Couriel
value_RP2=Enregistrement Texte
value_PTR1=Nom d'H魌e

warn=Avertissement
fail=Rat
ignore=Ignore
default=D閒aut
listed=List ..
eip=$1 n'est pas une adresse IP valide

acl_zones=Domaine que cet usager peut 閐iter
acl_master=Peut cr閑r une zone principale?
acl_slave=Peut cr閑r une zone secondaire/talon?
acl_forward=Peut cr閑r une zone directe?
acl_defaults=Peut 閐iter les options globales?
acl_reverse=Peut mettre  jour l'adressage inverse dans tous les domaines?
acl_multiple=Plusieurs adresses peuvent avoir le m阭e IP?
acl_ro=Mode lecture seulement?
acl_apply=Peut appliquer les changements?
acl_dir=Restreindre les fichiers de zone au r閜ertoire

servers_title=Autres Serveurs de Noms de Domaine
servers_ip=Adresse IP
servers_bogus=Ignorer les faux serveurs?
servers_format=Format de transfert de zone
servers_trans=Transfert maximum
servers_one=Un  la fois
servers_many=Combien
servers_err=Impossible d'enregistrer toute autre serveurs
servers_eip=$1 n'est pas une adresse IP valide
servers_etrans=$1 n'est pas un nombre de transfert maximum valide

logging_title=Journal et Erreurs
logging_ecannot=Vous n'阾es pas autoris  configurer le journal
logging_header=Options globales de journal et d'erreur
logging_default1=Utiliser la configuration par d閒aut de BIND
logging_default2=Utiliser la configuration ci-dessous ..
logging_cats=Cat間ories de journal
logging_cat=Cat間orie
logging_cchans=Canaux
logging_chans=Canaux de journal
logging_cname=Nom de canal
logging_to=Enregistrer dans
logging_file=Fichier
logging_fd=Descripteur de fichier
logging_versions=Garder les versions
logging_ver1=Aucune
logging_ver2=Illimit
logging_size=Taille maximale du fichier
logging_sz1=Illimit
logging_syslog=Niveau de 'Syslog'
logging_null=N'importe o
logging_sev=Niveau minimum de messages
logging_any=N'importe quel
logging_debug=Niveau de debug
logging_dyn=Niveau global
logging_pcat=Cat間orie d'enregistrement dans le journal
logging_psev=S関閞it de l'enregistrement dans le journal
logging_ptime=Date et temps de l'enregistrement dans le journal
logging_add=Ajouter un nouveau canal
logging_none=Aucun canal de journal de d閒ini
logging_err=Impossible d'enregistrer les options de journal
logging_ename=$1 n'est pas un nom de canal valide
logging_efile=Nom de fichier d'audit manquant
logging_ever=$1 n'est pas un num閞o de version valide
logging_esize=$1 n'est pas une taille de fichier valide

acls_title=Liste des Contr鬺es des Acc鑣
acls_ecannot=Vous n'阾es pas autoris  閐iter les contr鬺es d'acc鑣 global
acls_name=Nom d'usager Webmin
acls_values=Adresses correspondante, r閟eaux et noms d'usager Webmin
acls_err=Impossible d'enregistrer la liste des contr鬺es d'acc鑣
acls_ename=$1 n'est pas un nom d'usager Webmin valide

files_title=Fichiers et R閜ertoires
files_ecannot=Vous n'阾es pas autoris  configurer ces fichiers
files_header=Fichiers globaux et options de r閜ertoires
files_stats=Fichier de sortie de statistiques
files_dump=Fichier de sortie de la base de donn閑
files_pid=Fichier de num閞o de processus
files_xfer=Chemin pour le programme de transfert de zone
files_err=Impossible d'enregistrer les options de fichiers et de r閜ertoires
files_efile=Fichier manquant ou invalide

forwarding_title=Direction et Transferts
forwarding_ecannot=Vous n'阾es pas autoris  閐iter les options de direction et de transferts
forwarding_header=Options globales de direction et de transfert
forwarding_fwders=Serveurs  exp閐ier les requ阾es
forwarding_fwd=Voir directement s'il n'y a aucune r閜onse de l'exp閐iteur
forwarding_max=Temps de transferts maximum de zones
forwarding_format=Format de transfert de zone
forwarding_one=Un  la fois
forwarding_many=Combien
forwarding_in=Maximum de transferts de zone simultan
forwarding_err=Impossible d'enregistr les options de direction et de transferts
forwarding_emins=Temps de transfert manquant ou invalide
forwarding_etrans=Maximum de transferts simultan manquant ou invalide
forwarding_minutes=minutes

net_title=Topologie et Adresses
net_ecannot=Vous n'阾es pas autoris  閐iter les adresses et les options de topologie
net_header=Adresses globale et options de topologie
net_listen=Ports et adresses  閏outer
net_below=List ci-dessous
net_port=Port
net_addrs=Adresses
net_saddr=Adresse IP source pour les requ阾es
net_sport=Port source pour les requ阾es
net_topol=Choix de topologie du serveur de nom
net_err=Impossible d'enregistrer les adresses et les options de topologie
net_eport=$1 n'est pas un num閞o de port valide

misc_title=Autres Options
misc_ecannot=Vous n'阾es pas autoris  閐iter les autres options
misc_header=Autres options globales
misc_core=Taille maximale du d閜魌 du noyau de bind
misc_data=Utilisation maximum de m閙oires pour les donn閑s
misc_files=Nom de fichier maximum ouvert
misc_stack=Utilisation maximum de piles de m閙oire
misc_clean=Intervalle entre le nettoyage des enregistrements expir
misc_iface=Intervalle entre les v閞ifications pour de nouvelles interfaces
misc_stats=Intervalle entre les statistiques de journal
misc_recursion=Faire une v閞ification r閏ursive des clients?
misc_cnames=Permettre des alias CNAME multiple pour un nom?
misc_glue=Coller les enregistrements?
misc_nx=D閒inir un bit AA d'autorisation dans les r閜onses?
misc_err=Impossible d'enregistrer les autres options
misc_esize=$1 n'est pas une taille valide
misc_efiles=$1 n'est pas un nombre de fichiers ouvert valide
misc_emins=$1 n'est pas nombre de minutes valide
misc_mins=mins

zonedef_title=Zone par D閒aut
zonedef_msg=D閒aut pour toute nouvelle zone principale
zonedef_err=Impossible d'enregistrer la zone par d閒aut
zonedef_ecannot=Vous n'阾es pas autoriser  changer la zone principale par d閒aut
zonedef_msg2=Configuration par d閒aut de la zone
zonedef_transfer=Accepter les transferts de
zonedef_query=Accepter les requ阾es de
zonedef_cmaster=V閞ifier les noms de la zone principale?
zonedef_cslave=V閞ifier les noms dans la zone secondaire?
zonedef_cresponse=V閞ifier les noms en r閜onses?
zonedef_notify=Avertir les zone secondaires des changements?

efirst=Premi鑢e mauvaise directive  la ligne $1 dans $2
07070100025974000081a40000000000000002000000013ac0389b00003686000000200000000000000000000000000000001400000003reloc/bind8/lang/it   #localizzazione mantenuta da Stefano Giunchi 
#inviate qualsiasi correzione all'indirizzo <sgiunchi@libero.it>

index_title=BIND 8 DNS Server
index_enamed=Il server DNS BIND 8 DNS $1 non &egrave; stato trovato nel tuo sistema. Forse non &egrave; installato, o forse la tua <a href='$2'> Configurazione Modulo BIND 8</a> non &egrave; corretta.
index_eversion=L'eseguibile del server $1 non sembra essere BIND 8. Forse dovresti usare il <a href='$2'>modulo BIND 4</a>.
index_eempty=Il file di configurazione primario per BIND 8 $1 non esiste, o non &egrave; valido. Lo creo? 
index_local=Imposta il nameserver per il solo uso interno, non Internet
index_download=Imposta il nameserver per un uso Internet, e scarica le informazioni sui server root
index_webmin=Imposta come un nameserver Internet, ma usa il vecchio file di informazioni sui server root di Webmin
index_create=Crea il File di Configurazione Primaria ed Esegui il Nameserver
index_zones=Zone DNS Esistenti
index_none=Non ci sono zone DNS definite per questo nameserver
index_addmaster=Crea una nuova zona master
index_addslave=Crea una nuova zona slave
index_addstub=Crea una nuova zona stub
index_addfwd=Crea una nuova zona forward
index_apply=Applica Modifiche
index_applymsg=Clicca questo pulsante per riavviare il server BIND 8 attivo. Ci&ograve; attiver&agrave; la configurazione corrente.
index_start=Avvia il NameServer
index_startmsg=Clicca questo pulsante per avviare il server BIND 8, e caricare la configurazione corrente.
index_zone=Zona
index_type=Tipo
index_master=Master
index_slave=Slave
index_stub=Stub
index_forward=Forward
index_opts=Opzioni Server Globali
index_return=lista zone

master_title=Modifica Zona Master
master_ecannot=Non hai i permessi per modificare questa zona
master_manual=Modifica il File dei Record
master_soa=Modifica i Parametri di Zona
master_options=Modifica le Opzioni di Zona
master_del=Elimina Zona
master_delmsg=Clicca questo pulsante per eliminare questa zona dal tuo server DNS.
master_delrev=Anche i reverse record corrispondenti in altre zone ospitate da questo server saranno eliminati
master_params=Parametri di Zona
master_server=Server Primario
master_email=Indirizzo email
master_refresh=Tempo di Aggiornamento
master_retry=Tempo per riprova trasferimento
master_expiry=Tempo di scadenza
master_minimum=Default time-to-live
master_opts=Opzioni di Zona
master_check=Controlla i nomi?
master_notify=Notifica gli slave dei cambiamenti?
master_update=Permetti modifiche da..
master_transfer=Permetti trasferimenti da..
master_query=Permetti richieste da..
master_notify2=Notifica anche gli slave..
master_type=Tipo
master_records=Records
master_return=tipi di record
master_err=Salvataggio opzioni fallito
master_ero=Non hai i permessi per aggiornare la zona
master_err2=Aggiornamento zona fallito
master_emaster='$1' non &egrave; un master server valido
master_eemail='$1' non &egrave; un indirizzo email valido
master_erefresh='$1' non &egrave; un tempo di aggiornamento valido
master_eretry='$1' non &egrave; un tempo di riprova trasferimento valido
master_eexpiry='$1' non &egrave; un tempo di scadenza valido
master_eminimum='$1' non &egrave; un TTL di default valido
master_edelete=Non hai i permessi per eliminare qusta zona

delete_title=Elimina Zona
delete_mesg=Sei sicuro che vuoi eliminare la zona $1 ? Tutti i record e i file di zona saranno eliminati.

mcreate_title=Crea Zona Master
mcreate_ecannot=Non puoi creare zone master
mcreate_opts=Opzioni della nuova zona master
mcreate_type=Tipo di Zona
mcreate_fwd=Forward (Nomi verso Indirizzi)
mcreate_rev=Reverse (Indirizzi verso Nomi)
mcreate_dom=Nome dominio / Rete
mcreate_file=File di record
mcreate_auto=Automatico
mcreate_err=Creazione zona master fallita

slave_title=Modifica Zona Slave
stub_title=Modifica Zona Stub
slave_ecannot=Non hai i permessi per modificare questa zona
slave_opts=Opzioni di Zona
slave_masters=Servers Master
slave_max=Massimo tempo di trasferimento
slave_file=File dei record
slave_check=Controlla i nomi?
slave_notify=Notifica gli slave delle modifiche?
slave_update=Permetti aggiornamenti da..
slave_transfer=Permetti trasferimenti da..
slave_query=Permetti richieste da..
slave_notify2=Notifica anche gli slave..
slave_none=Nessuno
slave_auto=Automatico
slave_err=Salvataggio opzioni fallito
slave_emax='$1' non &egrave; un tempo di trasferimento valido
slave_efile=File dei record mancante
slave_efile2='$1' non &egrave; un file dei record consentito

screate_title1=Crea Zona Slave
screate_title2=Crea Zona Stub
screate_ecannot1=Non hai i permessi per creare zone slave
screate_ecannot2=Non hai i permessi per creare zone stub
screate_header1=Opzioni per la nuova zona slave
screate_header2=Opzioni per la nuova zona stub
screate_type=Tipo Zona
screate_fwd=Normale (Nomi -> Indirizzi)
screate_rev=Inversa (Indirizzi -> Nomi)
screate_dom=Nome dominio / Rete
screate_err1=Creazione zona slave fallita
screate_err2=Creazione zona stub fallita

recs_ecannot=Non hai i permessi per modificare i record in questa zona
recs_title=$1 Records
recs_header=In $1
recs_addr=Indirizzo
recs_name=Nome
recs_ttl=TTL
recs_return=tipi di record

edit_title=Modifica $1
edit_header=In $1
edit_edit=Modifica Record $1
edit_add=Aggiungi Record $1
edit_addr=Indirizzo
edit_name=Nome
edit_ttl=Time-To-Live
edit_cnamemsg=I nomi assoluti devono finire con un .
edit_uprev=Aggiorna zona?
edit_upfwd=Aggiorna zona inversa?
edit_err=Salvataggio record fallito
edit_ettl='$1' non &egrave; un time-to-live valido
edit_eip='$1' non &egrave; un indirizzo IP valido
edit_ehost='$1' non &egrave; un hostname valido
edit_ename='$1' non &egrave; un nome record valido
edit_edupip=Un record indirizzo per $1 esiste gi&agrave;
edit_ens='$1' non &egrave; un nameserver valido
edit_ecname='$1' non &egrave; un target alias valido
edit_emx='$1' non &egrave; un mail server valdio
edit_epri='$1' non &egrave; una priorit&agrave; valida
edit_ehard=Tipo di hardware mancante o non valido
edit_eos=Tipo di Sistema Operativo mancante o non valido
edit_eserv=Non hai inserito nessun servizio conosciuto
edit_eemail='$1' non &egrave; un indirizzo email valido
edit_etxt='$1' non &egrave; un 'text record name' valido
edit_return=records

text_title=Modifica File dei Records
text_desc=Questa pagina ti permette di modificare manualmente i record del file DNS $1. Webmin non far&agrave; nessun controllo sintattico, ed il numero seriale di zona non sar&agrave; incrementato automaticamente.
text_undo=Annulla

restart_ecannot=Non hai i permessi per riavviare BIND
restart_esig=Segnalazione al processo $1 fallita : $2
start_ecannot=Non hai i permessi per avviare BIND

fwd_title=Modifica Zona 
fwd_ecannot=Non hai i permessi per modificare questa zona
fwd_opts=Opzioni di Zona
fwd_masters=Master Servers
fwd_forward=Prova altri server?
fwd_check=Controlla i nomi?
fwd_err=Salvataggio opzioni fallito

fcreate_title=Crea Zona Forward
fcreate_ecannot=Non hai i permessi per creare zone forward
fcreate_opts=Opzioni della nuova Zona Forward
fcreate_type=Tipo Zona
fcreate_fwd=Forward (Names to Addresses)
fcreate_rev=Reverse (Addresses to Names)
fcreate_dom=Nome Dominio / Rete
fcreate_masters=Master servers
fcreate_err=Creazione della forward zone fallita

create_enet='$1' non &egrave; una rete valida
create_edom='$1' non &egrave; un nome di dominio valido
create_edom2='$1' deve essere un dominio, non una rete
create_efile='$1' non &egrave; un nome di file valido
create_efile2='$1' non &egrave; un file di zona consentito
create_efile3=Creazione di '$1' fallita : $2
create_emaster='$1' non &egrave; un indirizzo server master valido
create_enone=Devi inserire almeno un server master

boot_err=Download fallito

type_A=Indirizzo
type_NS=Name Server (NS)
type_CNAME=Name Alias (CNAME)
type_MX=Server di Posta (MX)
type_HINFO=Informazioni host (HINFO)
type_TXT=Testo (TXT)
type_WKS=Well Known Service
type_RP=Responsible Person
type_PTR=Reverse Address

edit_A=Indirizzo
edit_NS=Name Server (NS)
edit_CNAME=Name Alias (CNAME)
edit_MX=Server di Posta (MX)
edit_HINFO=Informazioni host (HINFO)
edit_TXT=Testo (TXT)
edit_WKS=Well Known Service
edit_RP=Responsible Person
edit_PTR=Reverse Address

recs_A=Indirizzo
recs_NS=Name Server (NS)
recs_CNAME=Name Alias (CNAME)
recs_MX=Server di Posta (MX)
recs_HINFO=Informazioni host (HINFO)
recs_TXT=Testo (TXT)
recs_WKS=Well Known Service
recs_RP=Responsible Person
recs_PTR=Reverse Address

value_A1=Indirizzo
value_NS1=Name Server
value_CNAME1=Nome Reale
value_MX1=Priorit&agrave
value_MX2=Server di Posta
value_HINFO1=Hardware
value_HINFO2=Sistema Operativo
value_TXT1=Messaggio
value_WKS1=Indirizzo
value_WKS2=Protocollo
value_WKS3=Servizi
value_RP1=Indirizzo Email
value_RP2=Text Record
value_PTR1=Hostname

warn=Warn
fail=Fail
ignore=Ignore
default=Default
listed=Listed ..
eip='$1' non &egrave un indirizzo IP valido

acl_zones=Domini che questo utente pu&ograve modificare
acl_master=Pu&ograve creare zone master?
acl_slave=Pu&ograve creare zone slave/stub?
acl_forward=Pu&ograve creare zone forward?
acl_defaults=Pu&ograve modificare le opzioni globali?
acl_reverse=Pu&ograve aggiornare i reverse addresses in qualsiasi dominio?
acl_multiple=Possono esistere pi&ugrave indirizzi con lo stesso IP?
acl_ro=Modalit&agrave di accesso Read-only?
acl_apply=Pu&ograve applicare le modifiche?
acl_dir=Restringi i file di zona alla directory

servers_title=Altri Server DNS
servers_ip=Indirizzo IP
servers_bogus=Ignore bogus server?
servers_format=Formato del trasferimento di Zona
servers_trans=Massimo trasferimenti
servers_one=Uno alla volta
servers_many=Molti
servers_err=Salvataggio degli altri server DNS fallito
servers_eip='$1' non &egrave un indirizzo IP valido
servers_etrans='$1' non &egrave un numero di trasferimenti massimi valido

logging_title=Logging ed Errori
logging_ecannot=Non hai i permessi per configurare il logging
logging_header=Opzioni Globali di logging ed errori
logging_default1=Utilizza le impostazioni di logging di default di BIND
logging_default2=Utilizza le seguenti impostazioni ..
logging_cats=Categorie di Logging
logging_cat=Categoria
logging_cchans=Canali
logging_chans=Canali di Logging
logging_cname=Nome Canale
logging_to=Log su
logging_file=File
logging_fd=Descrittore di File
logging_versions=Versions to keep
logging_ver1=Niente
logging_ver2=Illimitato
logging_size=Dimensione massima file
logging_sz1=Illimitata
logging_syslog=Livello Syslog
logging_null=Nowhere
logging_sev=Minimum message level
logging_any=Any
logging_debug=Debug level ..
logging_dyn=Global level
logging_pcat=Record category in log
logging_psev=Record severity in log
logging_ptime=Record date and time in log
logging_add=Add a new channel
logging_none=No logging channels defined.
logging_err=Failed to save logging options
logging_ename='$1' is not a valid channel name
logging_efile=Missing log filename
logging_ever='$1' is not a valid number of versions
logging_esize='$1' is not a valid log size

acls_title=Access Control Lists
acls_ecannot=You are not allowed to edit global acls
acls_name=ACL Name
acls_values=Matching addresses, networks and ACLs
acls_err=Failed to save access control lists
acls_ename='$1' is not a valid ACL name

files_title=Files and Directories
files_ecannot=You are not allowed to configure files
files_header=Global files and directories options
files_stats=Statistics output file
files_dump=Database dump file
files_pid=Process ID file
files_xfer=Path to zone transfer program
files_err=Failed to save files and directories options
files_efile=Missing or invalid filename

forwarding_title=Forwarding and Transfers
forwarding_ecannot=You are not allowed to edit forwarding and transfer options
forwarding_header=Global forwarding and zone transfer options
forwarding_fwders=Servers to forward queries to
forwarding_fwd=Lookup directly if no response from forwarder
forwarding_max=Maximum zone transfer time
forwarding_format=Zone transfer format
forwarding_one=One at a time
forwarding_many=Many
forwarding_in=Maximum concurrent zone transfers
forwarding_err=Failed to save forwarding and transfer options
forwarding_emins=Missing or invalid maximum transfer time
forwarding_etrans=Missing or invalid maximum concurrent transfers

net_title=Addresses and Topology
net_ecannot=You are not allowed to edit address and topology options
net_header=Global address and topology options
net_listen=Ports and addresses to listen on
net_below=Listed below..
net_port=Port
net_addrs=Addresses
net_saddr=Source IP address for queries
net_sport=Source port for queries
net_topol=Nameserver choice topology
net_err=Failed to save address and topology options
net_eport='$1' is not a valid port number

misc_title=Miscellaneous Options
misc_ecannot=You are not allowed to edit miscellaneous options
misc_header=Miscellaneous global options
misc_core=Maximum core dump size
misc_data=Maximum data memory usage
misc_files=Maximum open files
misc_stack=Maximum stack memory usage
misc_clean=Interval between cleaning expired records
misc_iface=Interval between check for new interfaces
misc_stats=Interval between logging stats
misc_recursion=Do full recursive lookups for clients?
misc_cnames=Allow multiple CNAME aliases for one name?
misc_glue=Fetch glue records?
misc_nx=Set authorative AA bit on responses?
misc_err=Failed to save miscellaneous options
misc_esize='$1' is not a valid size
misc_efiles='$1' is not a valid number of maximum open files
misc_emins='$1' is not a valid number of minutes

zonedef_title=Zone Defaults
zonedef_msg=Defaults for new master zones
zonedef_err=Failed to save zone defaults
zonedef_ecannot=You are not allowed to change master zone defaults
zonedef_msg2=Default zone settings
zonedef_transfer=Allow transfers from..
zonedef_query=Allow queries from..
zonedef_cmaster=Check names in master zones?
zonedef_cslave=Check names in slave zones?
zonedef_cresponse=Check names in responses?
zonedef_notify=Notify slaves of changes?

efirst=Bad first directive at line $1 in $2
  07070100025975000081a40000000000000002000000013ac0389b00004a00000000200000000000000000000000000000001400000003reloc/bind8/lang/pl   index_title=Serwer DNS BIND
index_enamed=Nie znaleziono serwera DNS BIND $1 w&nbsp;Twoim systemie. Mo縧iwe, 縠 nie zosta zainstalowany lub Twoja <a href='$2'>konfiguracja modu硊</a> serwera BIND jest nieprawid硂wy.
index_eversion=Program serwera $1 nie jest serwerem BIND&nbsp;8 ani&nbsp;9. Mo縧iwe, 縠 powiniene u縴 modu硊 <a href='$2'>BIND 4</a>.
index_eempty=Pierwotny plik konfiguracyjny serwera BIND $1 nie istnieje lub jest nieprawid硂wy. Czy go utworzy od nowa?
index_local=Ustaw serwer DNS wy潮cznie do u縴tku intranetowego (a&nbsp;nie internetowego)
index_download=Ustaw jako internetowy serwer DNS, i&nbsp;za砤duj informacj o&nbsp;root-nameserwerach
index_webmin=Ustaw jako internetowy serwer DNS, ale u縴waj informacji o&nbsp;root-nameserwerach z&nbsp;Webmina
index_create=Utw髍z podstawowy plik konfiguracyjny i&nbsp;uruchom serwer DNS
index_zones=Istniej眂e strefy DNS
index_none=Nie zdefiniowano 縜dnej strefy DNS dla tego serwera
index_addmaster=Nowa strefa podstawowa
index_addslave=Nowa strefa zapasowa
index_addstub=Nowa strefa wykarczowana
index_addfwd=Nowa strefa po秗ednicz眂a
index_apply=Zastosuj zmiany
index_applymsg=Naci秐ij ten przycisk, aby prze砤dowa dzia砤j眂y serwer BIND. Spowoduje to uaktywninie bie勘cej konfiguracji.
index_start=Uruchom serwer
index_startmsg=Naci秐ij ten przycisk, aby uruchomi serwer BIND oraz za砤dowa bie勘c konfiguracj.
index_zone=Strefa
index_type=Typ
index_master=Podstawowa
index_slave=Zapasowa
index_stub=Wykarczowana
index_forward=Po秗ednicz眂a
index_opts=Og髄ne opcje serwera
index_return=listy stref
index_toomany=W&nbsp;Twoim systemie jest za du縪 stref, by je tu wy秝ietli.
index_find=Znajd strefy&nbsp;:
index_search=Szukaj

master_title=Zmie stref podstawow
master_ecannot=Nie masz uprawnie do modyfikacji tej strefy
master_manual=Modyfikuj plik strefy
master_soa=Zmie parametry strefy
master_options=Zmie opcje strefy
master_del=Usu stref
master_delmsg=Naci秐ij ten przycisk, aby usun辨 t stref ze swojego serwera DNS.
master_delrev=Odpowiednie rekordy odwrotnego DNS w&nbsp;innych strefach obs硊giwanych przez ten serwer r體nie b阣 usuni阾e.
master_tmpl=Czy u縴 wzorca strefy?
master_ip=Wzorcowy adres IP dla rekord體
master_params=Parametry strefy
master_server=Serwer podstawowy
master_ns=Czy doda rekord NS dla serwera podstawowego?
master_email=Adres e-mail
master_refresh=Czas od秝ie縜nia
master_retry=Czas powt髍zenia transferu
master_expiry=Czas 縴cia
master_minimum=Standardowy czas 縴cia
master_opts=Opcje strefy
master_check=Sprawdzi nazwy?
master_notify=Czy zawiadamia serwery zapasowe o&nbsp;zmianach?
master_update=Pozw髄 na aktualizacj z..
master_transfer=Pozw髄 na transmisj z..
master_query=Pozw髄 na zapytania z..
master_notify2=Powiadom r體nie serwery zapasowe..
master_type=Typ
master_records=Rekordy
master_return=rodzaj體 rekord體
master_secs=sekund
master_err=Nie uda硂 si zachowa opcji
master_ero=Nie masz uprawnie do aktualizacji stref
master_err2=Nie uda硂 si zaktualizowa strefy
master_emaster='$1' nie jest poprawnym serwerem podstawowym
master_eemail='$1' nie jest poprawnym adresem e-mail
master_erefresh='$1' nie jest poprawnym czasem od秝ie縜nia
master_eretry='$1' nie jest poprawnym czasem powt髍zenia transferu
master_eexpiry='$1' nie jest poprawnym czasem wyga秐i阠ia
master_eminimum='$1' nie jest poprawnym standardowym TTL
master_edelete=Nie masz uprawnie do usuni阠ia tej strefy
master_tmplrecs=Rekordy wzorcowe
master_name=Nazwa rekordu
master_value=Warto舵
master_user=Z&nbsp;formularza
master_eip=Brakuj眂y lub niepoprawny adres IP wzorca
master_eiptmpl=Warto禼i z&nbsp;rekord體 wzorcowych mog by pobierane jedynie do rekord體 adresowych
master_esoacannot=Nie masz uprawnie do zmiany parametr體 strefy
master_eoptscannot=Nie masz uprawnie do to zmiany opcji strefy
master_edeletecannot=Nie masz uprawnie do usuwania stref
master_etaken=Ta strefa ju istnieje

delete_title=Usu stref
delete_mesg=Czy jeste pewien, 縠 chcesz usun辨 stref $1 ? Wszystkie rekordy oraz plik strefy zostan usuni阾e.
delete_rev=Czy usun辨 rekordy odwrotnego DNS z&nbsp;innych stref ? 
delete_fwd=Czy usun辨 rekordy prostego DNS z&nbsp;innych stref ?

mcreate_title=Utw髍z stref podstawow
mcreate_ecannot=Nie masz uprawnie do tworzenia strefy podstawowej
mcreate_opts=Nowe opcje strefy podstawowej
mcreate_type=Rodzaj strefy
mcreate_fwd=Prosta (nazwy na adresy)
mcreate_rev=Odwrotna (adresy na nazwy)
mcreate_dom=Nazwa domeny / Sie
mcreate_file=Plik strefy
mcreate_auto=Domy秎ny
mcreate_err=Nie uda硂 si utworzy pliku strefy podstawowej
mcreate_enet='$1' nie jest poprawn sieci
mcreate_edom='$1' nie jest poprawn nazw domeny
mcreate_edom2='$1' musi by domen a&nbsp;nie sieci
mcreate_efile='$1' nie jest poprawn nazw pliku
mcreate_efile2='$1' nie jest dozwolonym plikiem strefy
mcreate_efile3=Nie uda硂 si utworzy '$1'&nbsp;: $2

slave_title=Zmie stref zapasow
stub_title=Zmie stref wykarczowan
slave_ecannot=Nie masz uprawnie do modyfikacji tej strefy
slave_opts=Opcje strefy
slave_masters=Serwery podstawowe
slave_max=Maksymalny czas transferu
slave_file=Plik strefy
slave_check=Czy sprawdza nazwy?
slave_notify=Czy zawiadama serwery zapasowe o&nbsp;zmianach?
slave_update=Pozw髄 na aktualizacj z..
slave_transfer=Pozw髄 na transmisj z..
slave_query=Pozw髄 na zapytania z..
slave_notify2=Powiadom r體nie serwery zapasowe..
slave_none=Brak
slave_auto=Automatycznie
slave_err=Nie uda硂 si zachowa opcji
slave_emax='$1' nie jest poprawnym maksymalnym czasem transferu
slave_efile=Brak pliku strefy
slave_efile2='$1' nie jest dozwolonym plikiem strefy
slave_mins=minut

screate_title1=Utw髍z stref zapasow
screate_title2=Utw髍z stref wykarczowan
screate_ecannot1=Nie masz uprawnie do tworzenia stref zapasowych
screate_ecannot2=Nie masz uprawnie do tworzenia stref wykarczowanych
screate_header1=Opcje nowej strefy zapasowej
screate_header2=Opcje nowej strefy wykarczowanej
screate_type=Rodzaj strefy
screate_fwd=Prosta (nazwy na adresy)
screate_rev=Odwrotna (adresy na nazwy)
screate_dom=Nazwa domeny / Sie
screate_err1=Nie uda硂 si utworzy strefy zapasowej
screate_err2=Nie uda硂 si utworzy strefy wykarczowanej
screate_enet='$1' nie jest poprawn sieci
screate_edom='$1' nie jest poprawn nazw domeny
screate_emaster='$1' nie jest poprawnym adresem serwera podstawowego
screate_enone=Musisz wpisa co najmniej jeden serwer podstawowy
screate_efile='$1' nie jest poprawn nazw pliku
screate_efile2='$1' nie jest dozwolonym plikiem strefy
screate_efile3=Nie uda硂 si utworzy '$1'&nbsp;: $2

recs_ecannot=Nie masz uprawnie do modyfikacji rekord體 w&nbsp;tej strefie
recs_title=Rekordy $1
recs_header=W&nbsp;$1
recs_addr=Adres
recs_name=Nazwa
recs_ttl=TTL
recs_comment=Komentarz
recs_return=rodzaj體 rekord體

edit_title=Zmie rekord $1
edit_header=W&nbsp;$1
edit_edit=Zmie rekord $1
edit_add=Dodaj rekord $1
edit_addr=Adres
edit_name=Nazwa
edit_zonename=Nazwa strefy
edit_ttl=Czas 縴cia
edit_comment=Komentarz
edit_cnamemsg=Nazwy bezwzgl阣ne musz by zako馽zone '.'
edit_uprev=Aktualizowa odwrotny?
edit_upfwd=Aktualizowa prosty?
edit_err=Nie uda硂 si zachowa rekordu
edit_ettl='$1' nie jest prawid硂wym czasem 縴cia
edit_eip='$1' nie jest prawid硂wym adresem IP
edit_eip6='$1' nie jest prawid硂wym adresem IPv6
edit_ehost='$1' nie jest prawid硂w nazw hosta
edit_ename='$1' nie jest prawid硂w nazw rekordu
edit_edupip=Rekord adresu dla $1 ju istnieje
edit_ens='$1' nie jest poprawnym serwerem DNS
edit_ecname='$1' nie jest poprawnym celem dla aliasu
edit_emx='$1' nie jest poprawnym serwerem poczty
edit_epri='$1' nie jest poprawnym priorytetem
edit_ehard=Brakuj眂y lub niepoprawny typ sprz阾u
edit_eos=Brakuj眂y lub niepoprawny rodzaj OS
edit_eserv=Nie wprowadzi砮 縜dnej dobrze znanej us硊gi
edit_badeserv=Nazwa dobrze znanaej us硊gi '$1' jest niepoprawna
edit_eemail='$1' nie jest poprawnym adresem e-mail
edit_etxt='$1' nie jest poprawn nazw rekordu tekstowego
edit_efqdn=Nazwa bezwzgl阣na '$1' jest za d硊ga
edit_elabel=Jeden z&nbsp;cz硂n體 nazwy '$1' jest za d硊gi
edit_eloc=Nie podano szeroko禼i i&nbsp;d硊go禼i geograficznej
edit_return=rekord體

text_title=Zmie plik strefy
text_desc=Ten formularz pozwoli ci zmieni r阠znie recordy DNS w&nbsp;pliku strefy $1. Webmin nie przeprowadz 縜dnej kontroli sk砤dni, ani nie zwi阫sza automatycznie numeru seryjnego strefy.
text_undo=Cofnij
text_ecannot=Nie masz uprawnie do modyfikacji plik體 stref

restart_ecannot=Nie masz uprawnie do restartu BINDa
restart_esig=Nie uda硂 si powiadomi procesu $1&nbsp;: $2
start_ecannot=Nie masz uprawnie do uruchamiania BINDa
start_error=Nie uda硂 si uruchomi BINDa&nbsp;: $1

fwd_title=Popraw stref po秗ednicz眂
fwd_ecannot=Nie masz uprawnie do modyfikacji tej strefy
fwd_opts=Opcje strefy
fwd_masters=Serwery podstawowe
fwd_forward=Czy pr骲owa innych serwer體?
fwd_check=Czy sprawdza nazwy?
fwd_err=Nie uda硂 si zachowa opcji

fcreate_title=Utw髍z stref po秗ednicz眂
fcreate_ecannot=Nie masz uprawnie do tworzenia stref po秗ednicz眂ych
fcreate_opts=Opcje nowej strefy po秗ednicz眂ej
fcreate_type=Rodzaj strefy
fcreate_fwd=Prosta (nazwy na adresy)
fcreate_rev=Odwrotna (adresy na nazwy)
fcreate_dom=Nazwa domeny / Siec
fcreate_masters=Serwery podstawowe
fcreate_err=Nie uda硂 si utworzy strefy po秗ednicz眂ej
fcreate_enet='$1' nie jest poprawn sieci
fcreate_edom='$1' nie jest poprawn nazw domeny
fcreate_emaster='$1' nie jest poprawnym adresem serwera podstawowego
fcreate_enone=Musisz wpisa co najmniej jeden serwer podstawowy

create_enet='$1' nie jest poprawn sieci
create_edom='$1' nie jest poprawn nazw domeny
create_edom2='$1' musi by domen a&nbsp;nie sieci
create_efile='$1' nie jest poprawn nazw pliku
create_efile2='$1' nie jest dozwolonym plikiem strefy
create_efile3=Nie uda硂 si utworzy '$1'&nbsp;: $2
create_emaster='$1' nie jest poprawnym adresem serwera podstawowego
create_enone=Musisz wpisa co najmniej jeden serwer podstawowy

boot_err=dowanie si nie powiod硂

type_A=Adresy
type_AAAA=Adresy IPv6
type_NS=Serwery DNS
type_CNAME=Aliasy nazw
type_MX=Serwery pocztowe
type_HINFO=Informacje o&nbsp;hostach
type_TXT=Tekstowe
type_WKS=Dobrze znane us硊gi
type_RP=Osoby odpowiedzialne
type_PTR=Adresowanie odwrotne
type_LOC=Lokalizacja

edit_A=adresowy
edit_AAAA=adresowy IPv6
edit_NS=serwera DNS
edit_CNAME=aliasu nazwy
edit_MX=serwera pocztowego
edit_HINFO=informacji o&nbsp;ho禼ie
edit_TXT=tekstowy
edit_WKS=dobrze znanych us硊g
edit_RP=osoby odpowiedzialnej
edit_PTR=adresowania odwrotnego
edit_LOC=lokalizacji

recs_A=adresowe
recs_AAAA=adresowe IPv6
recs_NS=serwer體 DNS
recs_CNAME=alias體 nazw
recs_MX=serwer體 pocztowych
recs_HINFO=informacji o&nbsp;hostach
recs_TXT=tekstowy
recs_WKS=dobrze znanych us硊g
recs_RP=os骲 odpowiedzialnych
recs_PTR=adresowania odwrotnego
recs_LOC=lokalizacji

value_A1=Adres
value_NS1=Serwer DNS
value_CNAME1=Rzeczywista nazwa
value_MX1=Priorytet
value_MX2=Serwer poczty
value_HINFO1=Sprz阾
value_HINFO2=System operacyjny
value_TXT1=Informacja
value_WKS1=Adres
value_WKS2=Protok蟪
value_WKS3=Us硊gi
value_RP1=Adres e-mail
value_RP2=Nazwa rekordu tekstowego
value_PTR1=Nazwa hosta
value_LOC1=Szeroko舵 i&nbsp;d硊go舵 geograficzna

warn=Ostrze
fail=Przerwij
ignore=Ignoruj
default=Domy秎ne
minutes=minut
seconds=sekund
listed=Wymienione ..
eip='$1' nie jest poprawnym adresem IP

acl_zones=Domeny, kt髍e u縴tkownik mo縠 zmienia
acl_zall=Wszystkie strefy
acl_zsel=Wybrane..
acl_master=Tworzenie stref podstawowych?
acl_slave=Tworzenie stref zapasowych/wykarczowanych?
acl_forward=Tworzenie stref po秗ednicz眂ych?
acl_defaults=Zmiany opcji og髄nych?
acl_reverse=Aktualizacja odwrotnego DNS dla domen?
acl_multiple=Tworzenie wielu nazw o&nbsp;tym samym IP?
acl_ro=Dost阷 tylko do odczytu?
acl_apply=Zastosowanie zmian?
acl_dir=Ogranicz pliki stref do katalogu
acl_file=Modyfikacja plik體 stref?
acl_params=Modyfikacja parametr體 stref?
acl_opts=Modyfikacja opcji stref?
acl_delete=Usuwanie stref?
acl_findfree=Poszukiwanie niewykorzystanych numer體 IP?

servers_title=Inne serwery DNS
servers_ip=Adres IP
servers_bogus=Ignoruj podrabiane serwery?
servers_format=Format transferu strefy
servers_trans=Maksymalna liczba transfer體
servers_one=Pojedynczo
servers_many=Wielokrotnie
servers_err=Nie uda硂 si zachowa innych serwer體 DNS
servers_eip='$1' nie jest poprawnym adresem IP
servers_etrans='$1' nie jest poprawn maksymaln liczba transfer體

logging_title=Logowanie i&nbsp;b酬dy
logging_ecannot=Nie masz uprawnie do konfiguracji logowania
logging_header=Og髄ne opcje logowania i&nbsp;b酬d體
logging_default1=U縴waj do logowania domy秎nych ustawie BINDa
logging_default2=U縴waj poni縮zych ustawie ..
logging_cats=Kategorie logowania
logging_cat=Kategoria
logging_cchans=Kana硑
logging_chans=Kana硑 logowania
logging_cname=Nazwa kana硊
logging_to=Loguj do
logging_file=Plik
logging_fd=Deskryptor pliku
logging_versions=Utrzymywa wersji
logging_ver1=痑dnej
logging_ver2=Bez ogranicze
logging_size=Maksymalny rozmiar pliku
logging_sz1=Bez ogranicze
logging_syslog=Poziom logowania
logging_null=Nigdzie
logging_sev=Minimalny poziom komunikat體
logging_any=Dowolny
logging_debug=Poziom debuggingu ..
logging_dyn=Poziom og髄ny
logging_pcat=Kategorie rekord體 w&nbsp;logu
logging_psev=Uporczywo舵 rekord體 w&nbsp;logu
logging_ptime=Czas i&nbsp;data rekordu w&nbsp;logu
logging_add=Dodaj nowy kana
logging_none=Nie zdefiniowano 縜dnego kana硊 logowania.
logging_err=Nie uda硂 sie zachowa opcji logowania
logging_ename='$1' nie jest poprawn nazw kana硊
logging_efile=Pomini阾o nazw pliku logowania
logging_ever='$1' nie jest poprawnym numerem wersji
logging_esize='$1' nie jest poprawnym rozmiarem logu

acls_title=Listy kontroli dost阷u (ACL)
acls_ecannot=Nie masz uprawnie do modyfikacji og髄nych ACL
acls_name=Nazwa ACL
acls_values=Odpowiadaj眂e adresy, sieci i&nbsp;ACL
acls_err=Nie uda硂 si zachowa list kontroli dost阷u
acls_ename='$1' nie jest prawid硂w nazw ACL

files_title=Pliki i&nbsp;katalogi
files_ecannot=Nie masz uprawnie do konfiguracji plik體
files_header=Og髄ne opcje plik體 i&nbsp;katalog體
files_stats=Wynikowy plik statystyk
files_dump=Plik zrzutu bazy danych
files_pid=Plki numeru PID programu
files_xfer=ie縦a do programu transferu stref
files_err=Nie uda硂 si zachowa opcji plik體 i&nbsp;katalog體
files_efile=Brakuj眂a lub niepoprawna nazwa pliku

forwarding_title=Po秗edniczenie i&nbsp;transfery
forwarding_ecannot=Nie masz uprawnien do modyfikacji opcji po秗edniczenia i&nbsp;transfer體
forwarding_header=Og髄ne opcje po秗edniczenia i&nbsp;transfer體
forwarding_fwders=Serwery do kt髍ych przekazywa zapytania
forwarding_fwd=Pytaj bezpo秗ednio, je秎i brak odpowiedzi od po秗ednika
forwarding_max=Maksymalny czas transmisji strefy
forwarding_format=Format transferu strefy
forwarding_one=Pojedynczo
forwarding_many=Wielokrotnie
forwarding_in=Maksymalna liczba konkurencyjnych transfer體
forwarding_err=Nie uda硂 si zachowa opcji transferu i&nbsp;po秗eniczenia
forwarding_emins=Brakuj眂y lub niepoprawny maksymalny czas transferu
forwarding_etrans=Brakuj眂a lub niepoprawna maksymalna liczba konkurencyjnych transfer體
forwarding_minutes=minut

net_title=Adresy i&nbsp;topologia
net_ecannot=Nie masz uprawnie do modyfikacji opcji adres體 i&nbsp;topologii
net_header=Og髄ne opcje adres體 i&nbsp;topologii
net_listen=Porty i&nbsp;adresy, na&nbsp;kt髍ych nas硊chiwa
net_below=Wymienione poni縠j..
net_port=Port
net_addrs=Adresy
net_saddr=瑀骴硂wy adres IP dla zapyta
net_sport=瑀骴硂wy port dla zapyta
net_topol=Topologia wyboru serwera DNS
net_err=Nie uda硂 si zachowa opcji adres體 i&nbsp;topologii
net_eport='$1' nie jest poprawnym numerem portu
net_etopology=Nie podano topologii adres體

misc_title=Opcje r罂ne
misc_ecannot=Nie masz uprawnie do modyfikacji opcji r罂nych
misc_header=R罂ne opcje og髄ne
misc_core=Maksymalny rozmiar pliku zrzutu pami阠i (core)
misc_data=Maksymalne zu縴cie pami阠i na dane
misc_files=Maksymalna liczba otwartych plik體
misc_stack=Maksymalny rozmiar stosu
misc_clean=Okres pomi阣zy czyszczeniem przeterminowanych rekord體
misc_iface=Okres pomi阣zy sprawdzaniem nowych interfejs體
misc_stats=Okres pomi阣zy logowaniem statystyk
misc_recursion=Czy wykonywa pe硁e rekurencyjne przeszukiwanie za klient體?
misc_cnames=Czy pozwala na wielokrotne aliasy CNAME do jednej nazwy?
misc_glue=Sprowadza rekordy sklejaj眂e?
misc_nx=Czy ustawia bit autorytatywno禼i AA w&nbsp;odpowiedziach?
misc_err=Nie uda硂 si zachowa opcji r罂nych
misc_esize='$1' nie jest poprawnym rozmiarem
misc_efiles='$1' nie jest poprawn liczb otwartych plik體
misc_emins='$1' nie jest poprawn liczb minut
misc_mins=min.

zonedef_title=Domy秎ne ustawienia stref
zonedef_msg=Domy秎ne ustawienia dla nowych stref podstawowych
zonedef_err=Nie uda硂 si zachowa ustawie domy秎nych stref
zonedef_ecannot=Nie masz uprawnie do zmiany ustawie domy秎nych stref podstawowych
zonedef_msg2=Domy秎ne ustawienia strefy
zonedef_transfer=Pozw髄 na transfer&nbsp;z..
zonedef_query=Pozw髄 na zapytania&nbsp;z..
zonedef_cmaster=Czy sprawdza nazwy w&nbsp;strefach podstawowych?
zonedef_cslave=Czy sprawdza nazwy w&nbsp;strefach zapasowych?
zonedef_cresponse=Czy sprawdza nazwy w&nbsp;odpowiedziach?
zonedef_notify=Czy zawiadamia serwery zapasowe o&nbsp;zmianach?
zonedef_secs=sekund

find_title=Znajd strefy
find_match=Strefy wg wzorca "$1" ..
find_none=Nie znaleziono 縜dnej strefy.

efirst=Nieprawid硂wa pierwsza dyrektywa w&nbsp;linii $1 w&nbsp;$2

findfree_title=Szukanie wolnych IP
findfree_desc=Szukanie wolnych IP
findfree_nofind=Nie masz uprawnie do poszukiwania wolnych IP
findfree_header=W $1
findfree_sopt=Opcje szukania
findfree_IPrange=Zakres IP
findfree_from=od
findfree_to=do
findfree_cf=Traktowa nazwy host體 <em>`freeXXX'</em> jako wolne IP?
findfree_search=Szukaj

log_servers=Zmiany innych serwer體 DNS
log_logging=Zmiany logowania i&nbsp;b酬d體
log_acls=Zmiany list kontroli dost阷u
log_files=Zmiany plikow i&nbsp;katalog體
log_forwarding=Zmiany po秗edniczenia i&nbsp;transfer體
log_net=Zmiany adres體 i&nbsp;topologii
log_misc=Zmiany opcji r罂nych
log_zonedef=Zmiany domy秎nych ustawie stref
log_apply=Zastosowano zmiany
log_start=Uruchomiono serwer DNS
log_master=Utworzono stref podstawow $1
log_slave=Utworzono stref zapasow $1
log_stub=Utworzono stref wykarczowan $1
log_forward=Utworzono stref po秗ednicz眂 $1
log_delete_master=Usuni阾o stref podstawow $1
log_delete_slave=Usuni阾o stref zapasow $1
log_delete_stub=Usuni阾o stref wykarczowan $1
log_delete_forward=Usuni阾o stref po秗ednicz眂 $1
log_text=Zmieniono r阠znie rekordy w&nbsp;$1
log_soa=Zmieniono parametry strefy $1
log_opts=Zmieniono domy秎ne ustawienia strefy $1
log_delete_record=Usuni阾o rekord $1 $2 w&nbsp;strefie $3
log_create_record=Utworzono rekord $1 $2 w&nbsp;strefie $3
log_modify_record=Zmieniono rekord $1 $2 w&nbsp;strefie $3
log_boot=Utworzono podstawowy plik konfiguracyjny

hours=godzin
days=dni
weeks=tygodni
07070100025976000081a40000000000000002000000013ac0389b000036f3000000200000000000000000000000000000001400000003reloc/bind8/lang/pt   index_title=Servidor DNS BIND 8
index_enamed=O servidor DNS BIND 8 n鉶 foi encontrado no seu sistema. Poder n鉶 estar instalado ou a <a href='$2'>configura玢o do m骴ulo BIND 8</a> est incorreta.
index_eversion=O ficheiro execut醰el $1 n鉶 aparenta pertencer ao servidor BIND Vers鉶 8. Tente usar o <a href='$2'>m骴ulo BIND 4</a> em vez do BIND 8.
index_eempty=O ficheiro de configura玢o prim醨io para o servidor BIND Vers鉶 8 $1 n鉶 existe ou n鉶  v醠ido. Deseja que se crie um?
index_local=Configurara玢o do servidor de nomes apenas para uso interno (sem internet)
index_download=Configura玢o para servidor de nomes de internet, e fazer o download da informa玢o ra韟 do servidor
index_webmin=Configura玢o para servidor de nomes de internet, mas usar a antiga informa玢o ra韟 do Webmin
index_create=Criar o Ficheiro de Configura玢o Prim醨io e Iniciar o servidor de nomes
index_zones=Zonas DNS Existentes
index_none=N鉶 est鉶 definidas nehumas zonas DNS para este servidor
index_addmaster=Criar nova zona MASTER
index_addslave=Criar nova zona SLAVE
index_addstub=Criar nova zona STUB
index_addfwd=Criar nova zona FORWARD
index_apply=Aplicar Altera珲es
index_applymsg=Clique neste bot鉶 para reiniciar o servidor BIND 8. Desta forma a configura玢o corrente tornar-se- activa.
index_start=Iniciar o Name Server
index_startmsg=Clique neste bot鉶 para iniciar o servidor BIND 8, e carregar a configura玢o corrente
index_zone=Zona
index_type=Tipo
index_master=Master
index_slave=Slave
index_stub=Stub
index_forward=Forward
index_opts=Op珲es Gerais do Servidor
index_return=lista de zonas

master_title=Editar a Zona Master
master_ecannot=Voc n鉶 est autorizado para editar esta zona
master_manual=Editar o Ficheiro de Registos
master_soa=Editar Par鈓etros de Zona
master_options=Editar Op珲es de Zona
master_del=Apagar Zona
master_delmsg=Clique neste bot鉶 para apagar esta zona do seu servidor DNS.
master_delrev=Os registos de endere鏾s inversos coincidentes noutras zonas alojadas por este servidor, ir鉶 teamb閙 ser apagados.

master_params=Par鈓etros de Zona
master_server=Servidor Master
master_email=Endere鏾 de email
master_refresh=Tempo de refrescagem
master_retry=Tempo de retry de tranfer阯cia
master_expiry=Tempo de expira玢o
master_minimum=Time-to-live por defeito
master_opts=Op珲es de Zona
master_check=Verificar nomes?
master_notify=Notificar slaves das altera珲es?
master_update=Permitir atualiza珲es de..
master_transfer=Permitir transfer阯cias de..
master_query=Permitir queries de..
master_notify=Notificar slaves tamb閙..
master_type=Tipo
master_records=Registos
master_return=tipos de registos
master_err=Erro ao guardar as op珲es
master_ero=Voc n鉶 est autorizado para actualizar zonas
master_err2=Erro ao actualizar a zona
master_emaster='$1' n鉶  um servidor master v醠ido
master_eemail='$1' n鉶  um endere鏾 de email v醠ido
master_erefresh='$1' n鉶  um tempo de refrescagem v醠ido
master_eretry='$1' n鉶  um tempo de retry de transfer阯cia v醠ido
master_eexpiry='$1' n鉶  um tempo de expira玢o v醠ido
master_eminimum='$1' n鉶  um TTL predefinido v醠ido
master_edelete=Voc n鉶 est autorizado para apagar esta zona

mcreate_title=Criar Zona Master
mcreate_ecannot=Voc n鉶 pode criar zonas master
mcreate_opts=Novas op珲es de zona master
mcreate_type=Tipo de zona
mcreate_fwd=Forward (Nomes para Endere鏾s)
mcreate_rev=Reverse (Endere鏾s para Nomes)
mcreate_dom=Nome do dom韓io / Network
mcreate_file=Ficheiro de registos
mcreate_auto=Autom醫ico
mcreate_err=Erro ao criar zona

slave_title=Editar Zona Slave
stub_title=Editar Zona Stub
slave_ecannot=Voc n鉶 est autorizado para editar esta zona
slave_opts=Op珲es de Zona
slave_masters=Servidores Master
slave_max=Tempo m醲imo de tranfer阯cia
slave_file=Ficheiro de registos
slave_check=Verificar nomes?
slave_notify=Notificar os slaves das altera珲es?
slave_update=Permitir actualiza珲es de..
slave_transfer=Permitir tranfer阯cias de..
slave_query=Permitir queries de..
slave_notify2=Tamb閙 notificar slaves..
slave_none=Nenhum
slave_auto=Autom醫ico
slave_err=Erro ao guardar op珲es
slave_emax='$1' n鉶  um tempo m醲imo de transfer阯cia v醠ido
slave_efile=Falta o ficheiro de registos
slave_efile2='$1' n鉶  um ficheiro de registos permiss韛el
slave_mins=minutos

screate_title1=Criar Zona Slave
screate_title2=Criar Zona Stub
screate_ecannot1=Voc n鉶 est autorizado para criar zonas slave
screate_ecannot2=Voc n鉶 est autorizado para criar zonas stub
screate_header1=Novas op珲es de zona slave
screate_header2=Novas op珲es de zona stub
screate_type=Tipo de zona
screate_fwd=Forward (Nomes para Endere鏾s)
screate_rev=Reverse (Endere鏾s para Nomes)
screate_dom=Nome do dom韓io / Network
screate_err1=Erro ao criar zona slave
screate_err2=Erro ao criar zona stub

recs_ecannot=Voc n鉶 est autorizado para editar registos nesta zona
recs_title=$1 Registos
recs_header=Em $1
recs_addr=Endere鏾
recs_name=Nome
recs_ttl=TTL
recs_return=tipos de registos

edit_title=Editar $1
edit_header=Em $1
edit_edit=Editar Registo $1
edit_add=Adicionar Registo $1
edit_addr=Endere鏾
edit_name=Nome
edit_ttl=Time-To-Live
edit_cnamemsg=Nomes absolutos t阭 de terminar com um .
edit_uprev=Actualizar reverse?
edit_err=Erro ao guardar registo
edit_ettl='$1' n鉶  um time-to-live v醠ido
edit_eip='$1' n鉶  um endere鏾 IP v醠ido
edit_ehost='$1' n鉶  um hostname v醠ido
edit_ename='$1' n鉶  um nome de registo v醠ido
edit_edupip=J existe um registo de endere鏾 para $1
edit_ens='$1' n鉶  um servidor de nomes v醠ido
edit_ecname='$1' n鉶  um alvo de alias v醠ido
edit_emx='$1' n鉶  um servidor de correio v醠ido
edit_epri='$1' n鉶  uma prioridade v醠ida
edit_ehard=Tipo de hardware em falta ou inv醠ido
edit_eos=Tipo de SO em falta ou inv醠ido
edit_eserv=Voc n鉶 introduziu nenhum servi鏾 conhecido
edit_eemail='$1' n鉶  um endere鏾 de email v醠ido
edit_etxt='$1' n鉶  um nome de registo de texto v醠ido
edit_return=registos

text_title=Editar Ficheiro de Registos
text_desc=Este formul醨io permite-lhe editar manualmente o ficheiro de registos $1 do DNS. N鉶 ser executado nenhuma verifica玢o de sintax pelo Webmin, e o n鷐ero de s閞ie da zona n鉶 ser autom醫icamente incrementado.
text_undo=Anular

restart_ecannot=Voc n鉶 est autorizado para reiniciar o BIND
restart_esig=Erro ao sinalizar o processo $1 : $2
start_ecannot=Voc n鉶 est autorizado para iniciar o BIND

fwd_title=Editar Zona Forward
fwd_ecannot=Voc n鉶 est autorizado para editar esta zona
fwd_opts=Op珲es de Zona
fwd_masters=Servidores Master
fwd_forward=Tentar outros servidores?
fwd_check=Verificar nomes?
fwd_err=Erro ao guardar op珲es

fcreate_title=Criar Zona Forward
fcreate_ecannot=Voc n鉶 est autorizado para criar zonas forward
fcreate_opts=Novas op珲es de zona forward
fcreate_type=Tipo de zona
fcreate_fwd=Forward (Nomes para Endere鏾s)
fcreate_rev=Reverse (Endere鏾s para Nomes)
fcreate_dom=Nome do dom韓io / Network
fcreate_masters=Servidores Master
fcreate_err=Erro ao criar zona forward

create_enet='$1' n鉶  uma network v醠ida
create_edom='$1' n鉶  um nome de dom韓io v醠ido
create_edom2='$1' necessita ser um dom韓io, n鉶 uma network
create_efile='$1' n鉶  um nome de ficheiro v醠ido
create_efile2='$1' n鉶  um ficheiro de zona permiss韛el
create_efile3=Erro ao criar '$1' : $2
create_emaster='$1' n鉶  um endere鏾 de servidor master v醠ido
create_enone=Voc tem de introduzir pelo menos um servidor master

boot_err=O download falhou

type_A=Endere鏾
type_NS=Name Server
type_CNAME=Name Alias
type_MX=Servidor de Correio
type_HINFO=Informa玢o do Anfitri鉶
type_TXT=Texto
type_WKS=Servi鏾 Bem Conhecido
type_RP=Pessoa Respons醰el
type_PTR=Endere鏾 Inverso

edit_A=Endere鏾
edit_NS=Name Server
edit_CNAME=Name Alias
edit_MX=Servidor de Correio
edit_HINFO=Informa玢o do Anfitri鉶
edit_TXT=Texto
edit_WKS=Servi鏾 Bem Conhecido
edit_RP=Pessoa Respons醰el
edit_PTR=Endere鏾 Inverso

recs_A=Endere鏾
recs_NS=Name Server
recs_CNAME=Name Alias
recs_MX=Servidor de Correio
recs_HINFO=Informa玢o do Anfitri鉶
recs_TXT=Texto
recs_WKS=Servi鏾 Bem Conhecido
recs_RP=Pessoa Respons醰el
recs_PTR=Endere鏾 Inverso

value_A1=Endere鏾
value_NS1=Name Server
value_CNAME1=Nome Real
value_MX1=Prioridade
value_MX2=Servidor de Correio
value_HINFO1=Hardware
value_HINFO2=Sistema Operativo
value_TXT1=Mensagem
value_WKS1=Endere鏾
value_WKS2=Protocolo
value_WKS3=Servi鏾s
value_RP1=Endere鏾 de Email
value_RP2=Registo de Texto
value_PTR1=Nome do Anfitri鉶

warn=Avisar
fail=Falhar
ignore=Ignorar
default=Predefinido
listed=Listado ..
eip='$1' n鉶  um endere鏾 IP v醠ido

acl_zones=Dom韓ios que este utilizador pode editar
acl_master=Pode criar zonas master?
acl_slave=Pode criar zonas slave/stub?
acl_forward=Pode criar zonas forward?
acl_defaults=Pode editar op珲es gerais?
acl_reverse=Pode actualizar endere鏾s inversos em qualquer dom韓io?
acl_multiple=Endere鏾s m鷏tiplos podem ter o mesmo IP?
acl_ro=Modo de acesso em read-only (leitura)?
acl_dir=Restringir ficheiros de zona ao direct髍io?

servers_title=Outros Servidores DNS
servers_ip=Endere鏾 IP
servers_bogus=Ignorar servidor bogus?
servers_format=Formato de tranfer阯cia da zona
servers_trans=Tranfer阯cias M醲imas
servers_one=Uma de cada vez
servers_many=Muitas
servers_err=Erro ao guardar outros servidores DNS
servers_eip='$1' n鉶  um endere鏾 IP v醠ido
servers_etrans='$1' n鉶  um n鷐ero v醠ido tranfer阯cias m醲imas

logging_title=Logging e Erros
logging_ecannot=Voc n鉶 est autorizado para configurar o logging
logging_header=Logging geral e op珲es de erro
logging_default1=Utilizar configura珲es de logging predefinidas do BIND
logging_default2=Utilizar as configura珲es abixo ..
logging_cats=Categorias de logging
logging_cat=Categoria
logging_cchans=Canais
logging_chans=Canais de logging
logging_cname=Nome do Canal
logging_to=Log para
logging_file=Ficheiro
logging_fd=Descriptor do ficheiro
logging_versions=Vers鮡s a manter
logging_ver1=Nenhum
logging_ver2=Ilimitado
logging_size=Tamanho m醲imo do ficheiro
logging_sz1=Ilimitado
logging_syslog=N韛el do syslog
logging_null=Em lado nenhum
logging_sev=N韛el m韓imo da mensagem
logging_any=Qualquer
logging_debug=Nivel de depura玢o ..
logging_dyn=Nivel geral
logging_pcat=Categoria do registo no log
logging_psev=Rigor do registo no log
logging_ptime=Data e hora do registo no log
logging_add=Adicionar novo canal
logging_none=Sem canais de logging definidos.
logging_err=Erro ao guardar op珲es de logging
logging_ename='$1' n鉶  um nome de canal v醠ido
logging_efile=Falta o nome do ficheiro de log
logging_ever='$1' n鉶  um n鷐ero de vers鮡s v醠ido
logging_esize='$1' n鉶  um tamanho de log v醠ido

acls_title=Listas de Controlo de Acesso
acls_ecannot=Voc n鉶 est autorizado para editar as acls gerais
acls_name=Nome da ACL
acls_values=Endere鏾s correspondentes, networks e ACLs
acls_err=Erro ao guardar listas de controlo de acesso
acls_ename='$1' n鉶  um nome de ACL v醠ido

files_title=Ficheiros e Direct髍ios
files_ecannot=Voc n鉶 est autorizado para configurar ficheiros
files_header=Op珲es gerais de ficheiros e direct髍ios
files_stats=Ficheiro de sa韉a de estat韘ticas
files_dump=Ficheiro dump de base de dados
files_pid=Ficheiro ID do processo
files_xfer=Caminho para o programa de tranfer阯cia de zona
files_err=Erro ao guardar op珲es de ficheiros e direct髍ios
files_efile=Nome de ficheiro em falta ou inv醠ido

forwarding_title=Reencaminhamento e Tranfer阯cias
forwarding_ecannot=Voc n鉶 est autorizado para editar op珲es de reencaminhamento e transfer阯cia
forwarding_header=Reencaminhamento geral e op珲es de tranfer阯cia de zona
forwarding_fwders=Servidores para reencaminhar queries
forwarding_fwd=Procurar directamente se n鉶 houver resposta do reencaminhador
forwarding_max=Tempo de tranfer阯cia m醲imo da zona
forwarding_format=Formato de tranfer阯cia de zona
forwarding_one=Um de cada vez
forwarding_many=Muitos
forwarding_in=M醲imo de transfer阯cias de zona simult鈔eas
forwarding_err=Erro ao guardar op珲es de reencaminhamento e tranfer阯cia
forwarding_emins=Tempo m醲imo de tranfer阯cia em falta ou inv醠ido
forwarding_etrans=M醲imo de tranfer阯cias simult鈔eas em falta ou inv醠ido
forwarding_minutes=minutos

net_title=Endere鏾s e Topologia
net_ecannot=Voc n鉶 est autorizado para editar op珲es de endere鏾s e topologia
net_header=Op珲es gerais de endere鏾s e topologia
net_listen=Portas e endere鏾s para serem interceptados em
net_below=Listado abaixo..
net_port=Porta
net_addrs=Endere鏾s
net_saddr=Endere鏾 IP fonte para queries
net_sport=Porta fonte para queries
net_topol=Topologia de escolha do servidor de nomes
net_err=Erro ao guardar op珲es de endere鏾s e topologia
net_eport='$1' n鉶  um n鷐ero de porta v醠ido

misc_title=Op珲es Miscel鈔eas
misc_ecannot=Vo珀 n鉶 est autorizado para editar op珲es miscel鈔eas
misc_header=Op珲es miscel鈔eas gerais
misc_core=Tamanho m醲imo de core dump
misc_data=Uso m醲imo de mem髍ia de dados
misc_files=M醲imo de ficheiros abertos
misc_stack=Utiliza玢o m醲ima de mem髍ia stack
misc_clean=Intervalo para limpar registos expirados
misc_iface=Intervalo para verificar novos interfaces
misc_stats=Intervalo entre estados de historial
misc_recursion=Fazer busca recursiva total para clientes?
misc_cnames=Permitir aliases CNAME m鷏tiplas para um nome?
misc_glue=Recordar registops colados?
misc_nx=Colocar bit autorit醨io AA em respostas?
misc_err=Erro ao guardar op珲es miscel鈔eas
misc_esize='$1' n鉶  um tamanho v醠ido
misc_efiles='$1' n鉶 um n鷐ero m醲imo v醠ido de ficheiros abertos
misc_emins='$1' n鉶  um n鷑ero v醠ido de minutos
misc_mins=minutos

zonedef_title=Predefini珲es de Zona
zonedef_msg=Predefini珲es para novas zonas master
zonedef_err=Erro ao guardar predefini珲es de zona
zonedef_ecannot=Voc n鉶 est autorizado para alterar as predefini珲es de zona master
zonedef_msg2=Configura珲es de zona predefinidas
zonedef_transfer=Permitir tranfer阯cias de..
zonedef_query=Permitir consultas de..
zonedef_cmaster=Verificar nomes em zonas master?
zonedef_cslave=Verificar nomes em zonas slave?
zonedef_cresponse=Verificar nomes em respostas?
zonedef_notify=Notificar os slaves de altera珲es?
 07070100025977000081a40000000000000002000000013ac0389b00003681000000200000000000000000000000000000001700000003reloc/bind8/lang/ru_RU    files_stats=蔓躅漤铋 羿殡 耱囹桉蜩觇
fcreate_ecannot=锣 礤 疣琊屮屙 耦玟噔囹 forward 珙睇
value_WKS1=冷疱
recs_PTR=绣忮瘃桠睇 冷疱
value_WKS2=橡铗铌铍
logging_sz1=湾钽疣龛麇眍
value_WKS3=彦疴桉
fwd_opts=相疣戾蝠 穷睇
create_enone=蔓 漕腈睇 忖羼蜩 躅猁 钿桧 汶噔睇 皴疴屦
index_create=杨玟囹 襄疴梓睇 暑眙桡箴圉桀眄 脏殡  羊囵蝾忄螯 彦疴屦 桁屙
logging_ename='$1' 礤 怆弪 漕矬耱桁 桁屙屐 赅磬豚
master_transfer=朽琊屮栩 镥疱覃腙 ..
files_title=脏殡  枢蜞腩汨
logging_none=枢磬臌 骟痦嚯桤圉梃 礤 铒疱溴脲睇
acl_multiple=填驽 祉铈羼蜮 噤疱耦 桁弪 钿桧  蝾-驽 IP?
edit_PTR=绣忮瘃桠睇 冷疱
fcreate_title=杨玟囗桢 Forward 穷睇
slave_transfer=朽琊屮栩 镥疱覃腙 ..
fwd_title=绣溧牝桊钼囗桢 Forward 穷睇
index_zones=洋耱怏桢 穷睇 DNS
logging_syslog=羽钼屙 Syslog
master_eminimum='$1' 礤 怆弪 漕矬耱桁 TTL 镱 箪铍鬣龛
logging_pcat=青镨覃忄螯 赅蝈泐痂  骟痦嚯
forwarding_max=锑犟桁嚯铄 怵屐 珙眄铋 镥疱覃腙
forwarding_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 镟疣戾蝠 玎镳铖钼  镥疱覃腩
files_header=秒钺嚯 镟疣戾蝠 羿殡钼  赅蜞腩泐
net_below=襄疱麒耠屙睇 龛驽..
mcreate_file=脏殡  玎镨扈
edit_eip='$1' 礤 怆弪 漕矬耱桁 IP 噤疱耦
acls_title=扬桉觇 语疣怆屙 念耱箫铎
screate_dom=褥 漕戾磬 / 皴螯
mcreate_ecannot=蔓 礤 祛驽蝈 疱溧牝桊钼囹 master 珙睇
slave_none=湾
zonedef_title=相疣戾蝠 镱 箪铍鬣龛 潆 穷
value_NS1=彦疴屦 褥屙
logging_dyn=秒钺嚯 箴钼屙
master_eemail='$1' 礤 怆弪 漕矬耱桁 镱黩钼 噤疱耦
master_refresh=吗屐 钺眍怆屙
forwarding_err=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼 玎镳铖钼  镥疱覃腩
edit_ettl='$1' 礤 怆弪 漕矬耱桁 怵屐屙屐-骅珥
zonedef_query=朽琊屮栩 玎镳铖 ..
screate_header1=相疣戾蝠 眍忸 slave 珙睇
screate_header2=相疣戾蝠 眍忸 stub 珙睇
misc_data=锑觇爨朦睇 疣珈屦 桉镱朦珞屐铋 镟蜩
type_AAAA=IPv6 冷疱
net_title=冷疱襦  翌镱腩汨
recs_return=蜩稃 玎镨皴
zonedef_ecannot=锣 礤 疣琊屮屙 桤戾螯 镟疣戾蝠 镱 箪铍鬣龛 潆 master 珙睇
misc_glue=橡铛钿栩 镱 觌 玎镨?
fcreate_type=诣 穷睇
zonedef_err=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼 镱 箪铍鬣龛 潆 珙睇
files_efile=域屦眍 桦 礤忮痦铄 桁 羿殡
recs_HINFO=软纛痨圉  疹耱
recs_WKS=如忮耱睇 彦疴桉
fcreate_err=硒栳赅 镳 耦玟囗梃 forward 珙睇
type_MX=项黩钼 彦疴屦
files_xfer=象螯  镳钽疣祆 珙眄铋 镥疱覃腙
acl_slave=填驽 耦玟噔囹 slave/stub 珙睇?
acl_reverse=填驽 钺眍怆螯 疱忮瘃桠睇 玎镨耔  膻犷 漕戾礤?
edit_ecname='$1' 礤 怆弪 漕矬耱桁铋 鲥朦 锺邂漕龛爨
value_MX1=橡桀痂蝈
value_MX2=项黩钼 彦疴屦
create_edom='$1' 礤 怆弪 漕矬耱桁 桁屙屐 漕戾磬
edit_WKS=如忮耱睇 彦疴桉
screate_ecannot1=锣 礤 疣琊屮屙 耦玟噔囹 slave 珙睇
stub_title=绣溧牝桊钼囗桢 Stub 穷睇
edit_addr=冷疱
screate_ecannot2=锣 礤 疣琊屮屙 耦玟噔囹 stub 珙睇
mcreate_dom=褥 漕戾磬 / 彦螯
master_del=愉嚯栩 穷眢
type_NS=彦疴屦 褥屙
logging_psev=青镨覃忄螯 耱痤泐耱  骟痦嚯
type_CNAME=像邂漕龛 褥屙
index_none=湾 铒疱溴脲眍 龛 钿眍 DNS 珙睇 潆 溧眄钽 皴疴屦 桁屙
master_check=橡钼屦螯 桁屙?
master_type=诣
logging_add=念徉忤螯 眍恹 赅磬
edit_emx='$1' 礤 怆弪 漕矬耱桁 镱黩钼 皴疴屦铎
edit_eemail='$1' 礤 怆弪 漕矬耱桁 镱黩钼 噤疱耦
index_stub=Stub
warn=橡邃箫疱驿屙桢
screate_title1=杨玟囗桢 Slave 穷睇
screate_title2=杨玟囗桢 Stub 穷睇
fcreate_opts=相疣戾蝠 眍忸 forward 珙睇
misc_cnames=朽琊屮栩 祉铈羼蜮 CNAME 锺邂漕龛祛 潆 钿眍泐 桁屙?
zonedef_notify=逾邃铎螯 slaves 钺 桤戾礤龛?
misc_efiles='$1' 礤 怆弪 漕矬耱桁 爨犟桁嚯 麒耠铎 铗牮 羿殡钼
logging_ver1=湾
logging_ver2=湾钽疣龛麇眍
index_start=羊囵蝾忄螯 彦疴屦 褥屙
zonedef_cslave=橡钼屦螯 桁屙  slave 珙磬?
edit_etxt='$1' 礤 怆弪 漕矬耱桁 桁屙屐 蝈犟蝾忸 玎镨耔
servers_one=武磬 玎 疣
edit_ens='$1' 礤 怆弪 漕矬耱桁 皴疴屦铎 桁屙
value_RP1=项黩钼 冷疱
value_RP2=义犟蝾忄 青镨顸
logging_chans=枢磬臌 骟痦嚯桊钼囗
recs_header= $1
zonedef_cresponse=橡钼屦螯 桁屙  铗忮蜞?
logging_cat=枢蝈泐痂
master_retry=亦殪囿 镱怛铕眍 镥疱溧麒
index_addfwd=杨玟囹 眍怏 forward 珙眢
zonedef_msg2=玉蜞眍怅 镱 箪铍鬣龛 潆 珙睇
edit_eos=湾 箨噻囗 桦 礤忮痦 蜩 窝
logging_header=相疣戾蝠 汶钺嚯钽 骟痦嚯桊钼囗  铠栳铌
slave_title=绣溧牝桊钼囗桢 Slave 穷睇
forwarding_fwders=彦疴屦 潆 玎镳铖钼
misc_mins=扈.
edit_eserv=蔓 礤 忖咫 赅觐 腓犷 桤忮耱睇 皴疴桉
misc_esize='$1' 礤 怆弪 漕矬耱桁 疣珈屦铎
acl_dir=毋疣龛麒螯 羿殡 珙 赅蜞腩汔扈
slave_query=朽琊屮栩 玎镳铖 ..
logging_cats=枢蝈泐痂 骟痦嚯桊钼囗
master_opts=相疣戾蝠 穷睇
forwarding_fwd=吾疣螯 磬镳祗, 羼腓 礤 铗忮蜞  玎镳铖眍泐 皴疴屦
misc_header=秒钺嚯 镳铟桢 镟疣戾蝠
index_title=BIND 8 
fail=硒栳赅
slave_max=锑犟桁嚯铄 怵屐 镥疱溧麒
slave_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹  珙眢
misc_iface=软蝈疴嚯 戾驿 镳钼屦觐 眍恹 桧蝈痿彘耦
type_RP=悟忮蝰蜮屙睇 扬弼栲腓耱
misc_clean=软蝈疴嚯 戾驿 铟桉蜿铋 篑蜞疱怿桴 玎镨皴
zonedef_transfer=朽琊屮栩 镥疱覃腙 ..
servers_trans=锑犟桁嚯 镥疱覃腩
recs_MX=项黩钼 彦疴屦
index_zone=穷磬
logging_ever='$1' 礤 怆弪 漕矬耱桁 觐腓麇耱忸 忮瘃栝
index_apply=橡桧螯 如戾礤龛
recs_ttl=TTL
logging_null=丸牦溧
slave_err=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼
master_err2=硒栳赅 镳 钺眍怆屙梃 珙
misc_emins='$1' 礤 怆弪 漕矬耱桁 麒耠铎 扈眢
mcreate_err=硒栳赅 镳 耦玟囗梃 master 珙睇
master_return=蜩稃 玎镨皴
logging_debug=羽钼屙 铗豚潢 ..
recs_NS=彦疴屦 褥屙
edit_err=硒栳赅 镳 耦躔囗屙梃 玎镨耔
servers_format=灶痨囹 珙眄铋 镥疱覃腙
index_return=耧桉铌 珙
edit_ttl=吗屐-畦珥
fcreate_fwd=Forward (褥屙  冷疱襦)
create_emaster='$1' 礤 怆弪 漕矬耱桁 噤疱耦 汶噔眍泐 皴疴屦
recs_addr=冷疱
logging_to=企痦嚯桊钼囹 
servers_bogus=茹眍痂痤忄螯 镱滗咫 皴疴屦?
edit_ename='$1' 礤 怆弪 漕矬耱桁 桁屙屐 玎镨耔
recs_TXT=义犟
forwarding_emins=域屦眍 桦 礤忮痦铄 怵屐 镥疱覃腙
logging_ecannot=锣 礤 疣琊屮屙 磬耱疣桠囹 骟痦嚯桊钼囗桢
recs_title=青镨耔: $1
recs_CNAME=像邂漕龛 褥屙
logging_sev=惕龛爨朦睇 箴钼屙 耦钺龛
slave_efile=湾 箨噻囗 羿殡  玎镨扈
edit_TXT=义犟
logging_esize='$1' 礤 怆弪 漕矬耱桁 疣珈屦铎 骟痦嚯
index_eempty=脏殡 磬鬣朦眍 觐眙桡箴圉梃 潆 BIND Version 8 $1 礤 耋耱怏弪 桦 礤 忮痦. 杨玟囹 邈?
index_startmsg=袜骒栩 磬  觏铒牦 潆 玎矬耜 耩邂屦 BIND 8  玎沭箸觇 蝈牦 觐眙桡箴圉梃.
net_err=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼 噤疱耦  蝾镱腩汨
slave_efile2='$1' 礤 怆弪 疣琊屮屙睇 羿殡铎  玎镨扈
acls_values=杨怙噤噱  噤疱襦扈, 皴扈  ACL囔
slave_auto=棱蝾爨蜩麇耜
net_addrs=冷疱襦
edit_uprev=吾眍忤螯 疱忮瘃眢 玎镨顸?
slave_opts=相疣戾蝠 穷睇
index_local=袜耱痤栩 皴疴屦 桁屙 蝾朦觐 潆 忭篁疱眄邈, 礤 internet 桉镱朦珙忄龛.
servers_eip='$1' 礤 怆弪 漕矬耱桁 IP 噤疱耦
screate_fwd=Forward (褥屙  冷疱襦)
fwd_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 溧眄簋 珙眢
recs_A=冷疱
master_soa=绣溧牝桊钼囗桢 相疣戾蝠钼 穷睇
index_type=诣
misc_stats=软蝈疴嚯 戾驿 镳钼屦赅扈 骟痦嚯钼
logging_ptime=青镨覃忄螯 溧蝮  怵屐  骟痦嚯
edit_return=玎镨耔
master_eretry='$1' 礤 怆弪 漕矬耱桁 怵屐屙屐 镥疱溧麒
files_dump=脏殡 溧祜 徉琨 溧眄
acls_ename='$1' 礤 怆弪 漕矬耱桁 桁屙屐 ACL
index_forward=Forward
misc_title=橡铟桢 相疣戾蝠
recs_RP=悟忮蝰蜮屙睇 扬弼栲腓耱
master_update=朽琊屮栩 钺眍怆屙 ..
misc_err=硒栳赅 镳 耦躔囗屙梃 镳铟桴 镟疣戾蝠钼
servers_etrans='$1' 礤 怆弪 漕矬耱桁 爨犟桁嚯 麒耠铎 镥疱覃腩
type_PTR=绣忮瘃桠睇 冷疱
create_enet='$1' 礤 怆弪 漕矬耱桁铋 皴螯
logging_size=锑犟桁嚯 疣珈屦 羿殡
index_master=Master
edit_name=褥
master_minimum=吗屐 骅珥 镱 箪铍鬣龛
net_topol=离屦磬蜩忭 蝾镱腩汨 皴疴屦 桁屙
forwarding_title=青镳铖  襄疱觇
text_undo=悟戾龛螯
net_sport=锐躅漤 镱痱 潆 玎镳铖钼
mcreate_type=诣 珙睇
logging_any=塔犷
recs_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 玎镨耔 溧眄铋 珙睇
fcreate_masters=秒噔睇 皴疴屦
files_ecannot=锣 礤 疣琊屮屙 磬耱疣桠囹 羿殡
forwarding_format=灶痨囹 珙眄铋 镥疱覃腙
forwarding_header=秒钺嚯 镟疣戾蝠 玎镳铖钼  珙眄铋 镥疱覃腙
index_opts=秒钺嚯 相疣戾蝠 彦疴屦
slave_update=朽琊屮栩 钺眍怆屙 ..
fwd_check=橡钼屦螯 桁屙?
mcreate_fwd=Forward (褥屙  冷疱襦)
acl_forward=填驽 耦玟噔囹 forward 珙睇?
slave_notify2=亦赕 筲邃铎螯 镱澉桧屙睇 皴疴屦..
fcreate_rev=Reverse (冷疱襦  褥屙囔)
edit_MX=项黩钼 彦疴屦
master_expiry=吗屐 篑蜞疱忄龛
value_TXT1=杨钺龛
index_slave=Slave
misc_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 镳铟桢 镟疣戾蝠
forwarding_one=武磬 玎 疣
files_err=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼 羿殡钼  赅蜞腩泐
edit_NS=彦疴屦 褥屙
forwarding_many=添钽
logging_title=企痦嚯桊钼囗桢  硒栳觇
screate_type=诣 穷睇
acls_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 汶钺嚯 耧桉觇 漕耱箫
create_efile2='$1' 礤 怆弪 疣琊屮屙睇 羿殡铎 珙睇
servers_title=酿筱桢 DNS 彦疴屦
create_efile3=硒栳赅 镳 耦玟囗梃 '$1' : $2
edit_header= $1
misc_nx=玉蜞磬怆桠囹 噔蝾痂玎鲨铐睇 徼 AA 磬 铗忮螓?
slave_mins=扈.
net_listen=项痱  噤疱襦 潆 镳铖塍忄龛
mcreate_auto=棱蝾爨蜩麇耜
index_addslave=杨玟囹 眍怏 slave 珙眢
acl_zones=念戾睇, 觐蝾瘥 祛驽 疱溧牝桊钼囹 溧眄 镱朦珙忄蝈朦
master_erefresh='$1' 礤 怆弪 漕矬耱桁 怵屐屙屐 钺眍怆屙
type_A=冷疱
mcreate_opts=相疣戾蝠 眍忸 master 珙睇
acls_err=硒栳赅 镳 耦躔囗屙梃 耧桉赅 箫疣怆屙 漕耱箫铎
edit_add=念徉忤螯 青镨顸: $1
screate_rev=Reverse (冷疱襦  褥屙囔)
type_WKS=如忮耱睇 彦疴桉
master_options=绣溧牝桊钼囗桢 相疣戾蝠钼 穷睇
index_webmin=袜耱痤栩 赅 皴疴屦 桁屙 internet, 眍 桉镱朦珙忄螯 耱囵簋 桧纛痨圉棹 Webmin  觐痦邂铎 皴疴屦.
logging_default1=锐镱朦珙忄螯 磬耱痤殛 骟痦嚯桊钼囗 BIND 镱 箪铍鬣龛
logging_default2=锐镱朦珙忄螯 磬耱痤殛 龛驽 ..
mcreate_title=杨玟囗桢 Master 穷睇
master_title=绣溧牝桊钼囗桢 Master 穷睇
value_A1=冷疱
zonedef_msg=相疣戾蝠 镱 箪铍鬣龛 潆 眍忸 master 珙睇
master_ero=锣 礤 疣琊屮屙 钺眍怆螯 珙睇
master_err=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼
forwarding_etrans=域屦眍 桦 礤忮痦铄 爨犟桁嚯铄 麒耠 镟疣腚咫 珙眄 镥疱覃腩
logging_versions=洛瘃栝 潆 耦躔囗屙
master_query=朽琊屮栩 玎镳铖 ..
acls_name=褥 ACL
slave_emax='$1' 礤 怆弪 漕矬耱桁 爨犟. 怵屐屙屐 镥疱溧麒
recs_name=褥
edit_cnamemsg=泪耦膻蝽 桁屙 漕腈睇 铌囗麒忄蝰 磬 .
value_CNAME1=绣嚯铄 褥
start_ecannot=锣 礤 疣琊屮屙 耱囵蝾忄螯 BIND
boot_err=硒栳赅 镳 恹沭箸赍
index_enamed=BIND 8 DNS 皴疴屦 $1 礤 磬殇屙 磬 忄 耔耱屐. 骂珈铈眍 铐 礤 桧耱嚯腓痤忄 桦 觐眙桡箴圉 <a href='$2'>祛潴 BIND 8</a> 礤忮痦.
ignore=茹眍痂痤忄螯
edit_RP=悟忮蝰蜮屙睇 扬弼栲腓耱
fwd_err=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼
logging_efile=域屦眍 桁 羿殡 骟痦嚯
edit_edit=绣溧牝桊钼囹 青镨顸: $1
servers_err=硒栳赅 镳 耦躔囗屙梃 漯筱桴 DNS 皴疴屦钼
edit_HINFO=软纛痨圉  疹耱
screate_err1=硒栳赅 镳 耦玟囗梃 slave 珙睇
screate_err2=硒栳赅 镳 耦玟囗梃 stub 珙睇
servers_ip=IP 噤疱
text_title=绣溧牝桊钼囗桢 脏殡  青镨扈
edit_AAAA=IPv6 冷疱
logging_cname=褥 赅磬豚
mcreate_rev=Reverse (冷疱襦  褥屙囔)
net_header=秒钺嚯 镟疣戾蝠 噤疱耦  蝾镱腩汨
net_eport='$1' 礤 怆弪 漕矬耱桁 眍戾痤 镱痱
acl_ro=绣骅 漕耱箫 蝾朦觐-黩屙桢?
master_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 溧眄簋 珙眢
edit_epri='$1' 礤 怆弪 漕矬耱桁 镳桀痂蝈蝾
fwd_forward=橡钺钼囹 漯筱桢 皴疴屦?
master_records=青镨耔
index_applymsg=袜骒栩 磬  觏铒牦 潆 镥疱玎矬耜 疣犷蜞邈 耩邂屦 BIND 8. 蒡 嚓蜩忤玷痼弪 蝈牦 觐眙桡箴圉棹.
default=项 箪铍鬣龛
edit_edupip=冷疱耥 玎镨顸 潆 $1 箧 耋耱怏弪
master_delrev=杨怙噤帼 疱忮瘃睇 噤疱耥 玎镨耔  漯筱桴 珙磬 钺耠箧桠噱禧 溧眄 皴疴屦铎 狍潴 蜞赕 箐嚯屙.
slave_check=橡钼屦螯 桁屙?
create_efile='$1' 礤 怆弪 漕矬耱桁 桁屙屐 羿殡
master_edelete=锣 礤 疣琊屮屙 箐嚯螯 溧眄簋 珙眢
text_desc=泥眄 纛痨 镱玮铍弪 忄 怵篦眢 铗疱溧牝桊钼囹 DNS 玎镨耔  羿殡 $1. 橡 铎 webmin 礤 狍溴 镳钼屦螯 耔眚嚓耔 玎镨皴  礤 狍溴 噔蝾爨蜩麇耜 钺眍怆螯 皴痂轫 眍戾 珙睇.
misc_recursion=蔓镱腠螯 镱腠铖螯 疱牦瘃桠睇 镳铖祛蝠 潆 觌桢眚钼?
listed=襄疱麒耠屙睇 ..
logging_file=脏殡
forwarding_in=锑犟桁箪 镟疣腚咫 珙眄 镥疱覃腩
index_addmaster=杨玟囹 眍怏 master 珙眢
restart_ecannot=锣 礤 疣琊屮屙 镥疱玎矬耜囹 BIND
misc_core=锑觇爨朦睇 疣珈屦 溧祜 core
zonedef_cmaster=橡钼屦螯 桁屙  master 珙磬?
acl_master=填驽 耦玟噔囹 master 珙睇?
master_notify=亦赕 筲邃铎螯 镱澉桧屙睇 皴疴屦..
acl_defaults=填驽 疱溧牝桊钼囹 汶钺嚯 镟疣戾蝠?
net_port=项痱
master_email=项黩钼 噤疱
forwarding_minutes=扈眢
slave_masters=秒噔睇 皴疴屦
slave_file=脏殡  玎镨扈
master_emaster='$1' 礤 怆弪 汶噔睇 皴疴屦铎
type_TXT=义犟
index_eversion=锐镱腠屐 祛潴朦 皴疴屦 $1 礤 怆弪 BIND 8. 骂珈铈眍 忄 礤钺躅滂祛 忸耧铍钼囹 <a href='$2'>祛潴脲 BIND 4</a>.
value_PTR1=褥 疹耱
restart_esig=硒栳赅 铗镳噔觇 耔沩嚯 镳铞羼耋 $1 : $2
net_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 镟疣戾蝠 噤疱耦  蝾镱腩汨
eip='$1' 礤 怆弪 漕矬耱桁 IP 噤疱耦
misc_stack=锑觇爨朦睇 疣珈屦 桉镱朦珞屐钽 耱尻
edit_A=冷疱
master_delmsg=袜骒栩 磬  觏铒牦 潆 箐嚯屙 溧眄铋 珙睇  忄泐 DNS 皴疴屦.
edit_ehost='$1' 礤 怆弪 漕矬耱桁 桁屙屐 躅耱
logging_err=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼 骟痦嚯桊钼囗
index_download=袜耱痤栩 赅 皴疴屦 桁屙 internet  恹沭箸栩 桧纛痨圉棹 觐痦邂钽 皴疴屦.
master_params=相疣戾蝠 穷睇
logging_fd=腻耜痂矧铕
slave_notify=逾邃铎螯 镱澉桧屙睇 皴疴屦 钺 桤戾礤龛
master_manual=绣溧牝桊钼囗桢 脏殡 青镨皴
recs_AAAA=IPv6 冷疱
master_eexpiry='$1' 礤 怆弪 漕矬耱桁 怵戾礤 篑蜞疱忄龛
net_saddr=锐躅漤 IP 噤疱 潆 玎镳铖钼
type_HINFO=软纛痨圉  疹耱
servers_many=添铈羼蜮
index_addstub=杨玟囹 眍怏 stub 珙眢
value_HINFO1=里镟疣蝮疣
master_server=秒噔睇 皴疴屦
value_HINFO2=物屦圉桀眄 谚耱屐
edit_title=绣溧牝桊钼囹 $1
edit_ehard=湾 箨噻囗 桦 礤忮痦 蜩 囡镟疣蝮瘥
edit_CNAME=像邂漕龛 褥屙
create_edom2='$1' 漕腈屙 猁螯 漕戾眍, 礤 皴螯
files_pid=脏殡 ID 镳铞羼襦
logging_cchans=枢磬臌
fcreate_dom=褥 漕戾磬 / 彦螯
misc_files=锑觇爨朦眍 麒耠 铗牮 羿殡钼
fwd_masters=秒噔睇 皴疴屦
   07070100025978000081a40000000000000002000000013ac0389b000036d8000000200000000000000000000000000000001700000003reloc/bind8/lang/ru_SU    index_title=BIND 8 
index_enamed=BIND 8 DNS 优易乓 $1 闻 瘟誓盼 瘟 琢叟 由釉磐. 飨谕现蜗 衔 闻 晌釉撂躺蚁琢 商 讼纹汕找撩裳 <a href='$2'>拖恼萄 BIND 8</a> 闻着椅.
index_eversion=橛邢涛雅唾 拖恼特 优易乓 $1 闻 炎萄旁友 BIND 8. 飨谕现蜗 琢 闻下认纳拖 紫有咸刳献猎赜 <a href='$2'>拖恼膛 BIND 4</a>.
index_eempty=媪侍 瘟蘖特蜗 讼纹汕找撩缮 奶 BIND Version 8 $1 闻 诱菖釉渍旁 商 闻 着椅偈. 笙谀猎 徘?
index_local=盍釉蚁稍 优易乓 赏盼 韵特讼 奶 孜赵遗挝徘, 闻 internet 捎邢特谙琢紊.
index_download=盍釉蚁稍 肆 优易乓 赏盼 internet  踪且遮稍 晌葡彝撩衫 讼椅抛锨 优易乓.
index_webmin=盍釉蚁稍 肆 优易乓 赏盼 internet, 蜗 捎邢特谙琢载 釉烈绽 晌葡彝撩衫 Webmin  讼椅抛贤 优易乓.
index_create=笙谀猎 鹋易赊钨 胂纹汕找撩上挝偈 媪侍  笤烈韵琢载 笈易乓 赏盼
index_zones=笳菖釉渍垒膳 钨 DNS
index_none=钆 闲遗呐膛蜗 紊 夏蜗 DNS 谙钨 奶 牧挝锨 优易乓 赏盼
index_addmaster=笙谀猎 蜗渍 master 谙握
index_addslave=笙谀猎 蜗渍 slave 谙握
index_addstub=笙谀猎 蜗渍 stub 谙握
index_addfwd=笙谀猎 蜗渍 forward 谙握
index_apply=鹨晌言 橼团闻紊
index_applymsg=盍滞稍 瘟 茉 宋闲苏 奶 信遗诹姓铀 伊孪粤垒徘 右抛乓 BIND 8.  了陨咨谏艺旁 耘苏菡 讼纹汕找撩衫.
index_start=笤烈韵琢载 笈易乓 橥盼
index_startmsg=盍滞稍 瘟 茉 宋闲苏 奶 诹姓铀 右抛乓 BIND 8  诹且遮松 耘苏菖 讼纹汕找撩缮.
index_zone=瘟
index_type=羯
index_master=Master
index_slave=Slave
index_stub=Stub
index_forward=Forward
index_opts=缣下撂匚倥 鹆伊团砸 笈易乓
index_return=有捎纤 谙

master_title=蚺牧嗽梢献廖膳 Master 钨
master_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 牧挝绽 谙握
master_manual=蚺牧嗽梢献廖膳 媪侍 猩优
master_soa=蚺牧嗽梢献廖膳 鹆伊团砸献 钨
master_options=蚺牧嗽梢献廖膳 鹆伊团砸献 钨
master_del=跄撂稍 握
master_delmsg=盍滞稍 瘟 茉 宋闲苏 奶 漳撂盼裳 牧挝鲜 谙钨  琢叟窍 DNS 优易乓.
master_delrev=笙仔聊晾萆 遗着矣钨 聊遗游倥 诹猩由  囊涨扇 谙瘟 下犹罩勺僚唾 牧挝偻 优易乓贤 抡恼 粤酥 漳撂盼.
master_params=鹆伊团砸 钨
master_server=缣磷钨 优易乓
master_email=鹣拊献偈 聊遗
master_refresh=饕磐 下蜗滋盼裳
master_retry=袅释琳 邢自弦蜗 信遗牧奚
master_expiry=饕磐 沼粤遗琢紊
master_minimum=饕磐 稚谖 邢 胀咸蘖紊
master_opts=鹆伊团砸 钨
master_check=鹨献乓言 赏盼?
master_notify=踝拍贤萄载 邢霓晌盼钨 优易乓 下 哨团闻紊讶?
master_update=蛄谝袍稍 下蜗滋盼裳 ..
master_transfer=蛄谝袍稍 信遗淤趟 ..
master_query=蛄谝袍稍 诹幸嫌 ..
master_notify=袅酥 兆拍贤萄载 邢霓晌盼钨 优易乓..
master_type=羯
master_records=猩由
master_return=陨匈 诹猩优
master_err=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献
master_ero=髁 闻 伊谝袍盼 下蜗滋言 谙钨
master_err2=镗陕肆 幸 下蜗滋盼缮 谙
master_emaster='$1' 闻 炎萄旁友 翘磷钨 优易乓贤
master_eemail='$1' 闻 炎萄旁友 南姓釉赏偻 邢拊献偻 聊遗酉
master_erefresh='$1' 闻 炎萄旁友 南姓釉赏偻 滓磐盼磐 下蜗滋盼裳
master_eretry='$1' 闻 炎萄旁友 南姓釉赏偻 滓磐盼磐 信遗牧奚
master_eexpiry='$1' 闻 炎萄旁友 南姓釉赏偻 滓团闻 沼粤遗琢紊
master_eminimum='$1' 闻 炎萄旁友 南姓釉赏偻 TTL 邢 胀咸蘖紊
master_edelete=髁 闻 伊谝袍盼 漳撂言 牧挝绽 谙握

mcreate_title=笙谀廖膳 Master 钨
mcreate_ecannot=髻 闻 拖峙耘 遗牧嗽梢献猎 master 谙钨
mcreate_opts=鹆伊团砸 蜗紫 master 谙钨
mcreate_type=羯 谙钨
mcreate_fwd=Forward (橥盼  崮遗恿)
mcreate_rev=Reverse (崮遗恿  橥盼镣)
mcreate_dom=橥 南团瘟 / 笈载
mcreate_file=媪侍  诹猩友蜕
mcreate_auto=嶙韵土陨夼铀
mcreate_err=镗陕肆 幸 酉谀廖缮 master 谙钨

slave_title=蚺牧嗽梢献廖膳 Slave 钨
stub_title=蚺牧嗽梢献廖膳 Stub 钨
slave_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 茉 谙握
slave_opts=鹆伊团砸 钨
slave_masters=缣磷钨 优易乓
slave_max=砹擞赏撂匚吓 滓磐 信遗牧奚
slave_file=媪侍  诹猩友蜕
slave_check=鹨献乓言 赏盼?
slave_notify=踝拍贤萄载 邢霓晌盼钨 优易乓 下 哨团闻紊讶
slave_update=蛄谝袍稍 下蜗滋盼裳 ..
slave_transfer=蛄谝袍稍 信遗淤趟 ..
slave_query=蛄谝袍稍 诹幸嫌 ..
slave_notify2=袅酥 兆拍贤萄载 邢霓晌盼钨 优易乓..
slave_none=钆
slave_auto=嶙韵土陨夼铀
slave_err=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献
slave_emax='$1' 闻 炎萄旁友 南姓釉赏偻 土擞. 滓磐盼磐 信遗牧奚
slave_efile=钆 账邻廖 屏侍  诹猩友蜕
slave_efile2='$1' 闻 炎萄旁友 伊谝袍盼钨 屏侍贤  诹猩友蜕
slave_mins=蜕.

screate_title1=笙谀廖膳 Slave 钨
screate_title2=笙谀廖膳 Stub 钨
screate_ecannot1=髁 闻 伊谝袍盼 酉谀磷猎 slave 谙钨
screate_ecannot2=髁 闻 伊谝袍盼 酉谀磷猎 stub 谙钨
screate_header1=鹆伊团砸 蜗紫 slave 谙钨
screate_header2=鹆伊团砸 蜗紫 stub 谙钨
screate_type=羯 钨
screate_fwd=Forward (橥盼  崮遗恿)
screate_rev=Reverse (崮遗恿  橥盼镣)
screate_dom=橥 南团瘟 / 优载
screate_err1=镗陕肆 幸 酉谀廖缮 slave 谙钨
screate_err2=镗陕肆 幸 酉谀廖缮 stub 谙钨

recs_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 诹猩由 牧挝鲜 谙钨
recs_title=猩由: $1
recs_header= $1
recs_addr=崮遗
recs_name=橥
recs_ttl=TTL
recs_return=陨匈 诹猩优

edit_title=蚺牧嗽梢献猎 $1
edit_header= $1
edit_edit=蚺牧嗽梢献猎 猩迂: $1
edit_add=湎铝咨载 猩迂: $1
edit_addr=崮遗
edit_name=橥
edit_ttl=饕磐-錾谖
edit_cnamemsg=崧酉汤晕倥 赏盼 南讨钨 纤廖奚琢杂 瘟 .
edit_uprev=锫蜗咨载 遗着矣握 诹猩迂?
edit_err=镗陕肆 幸 酉纫廖盼缮 诹猩由
edit_ettl='$1' 闻 炎萄旁友 南姓釉赏偻 滓磐盼磐-稚谖
edit_eip='$1' 闻 炎萄旁友 南姓釉赏偻 IP 聊遗酉
edit_ehost='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 认釉
edit_ename='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 诹猩由
edit_edupip=崮遗游裂 诹猩迂 奶 $1 罩 诱菖釉渍旁
edit_ens='$1' 闻 炎萄旁友 南姓釉赏偻 优易乓贤 赏盼
edit_ecname='$1' 闻 炎萄旁友 南姓釉赏鲜 门特 杏抛南紊土
edit_emx='$1' 闻 炎萄旁友 南姓釉赏偻 邢拊献偻 优易乓贤
edit_epri='$1' 闻 炎萄旁友 南姓釉赏偻 幸上疑耘韵
edit_ehard=钆 账邻廖 商 闻着椅偈 陨 列辛伊哉屹
edit_eos=钆 账邻廖 商 闻着椅偈 陨 矬
edit_eserv=髻 闻 鬃盘 肆讼 躺孪 哨着釉钨 优易捎
edit_eemail='$1' 闻 炎萄旁友 南姓釉赏偻 邢拊献偻 聊遗酉
edit_etxt='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 耘擞韵紫 诹猩由
edit_return=诹猩由

text_title=蚺牧嗽梢献廖膳 媪侍  猩友蜕
text_desc=淞挝裂 葡彝 邢谧咸雅 琢 滓辙握 显遗牧嗽梢献猎 DNS 诹猩由  屏侍 $1. 鹨 茉贤 webmin 闻 抡呐 幸献乓言 由卧了由 诹猩优  闻 抡呐 磷韵土陨夼铀 下蜗滋言 优疑饰偈 蜗团 谙钨.
text_undo=镌团紊载

restart_ecannot=髁 闻 伊谝袍盼 信遗诹姓铀猎 BIND
restart_esig=镗陕肆 显幸磷松 由俏撂 幸厦庞诱 $1 : $2
start_ecannot=髁 闻 伊谝袍盼 釉烈韵琢载 BIND

fwd_title=蚺牧嗽梢献廖膳 Forward 钨
fwd_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 牧挝绽 谙握
fwd_opts=鹆伊团砸 钨
fwd_masters=缣磷钨 优易乓
fwd_forward=鹨下献猎 囊涨膳 优易乓?
fwd_check=鹨献乓言 赏盼?
fwd_err=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献

fcreate_title=笙谀廖膳 Forward 钨
fcreate_ecannot=髁 闻 伊谝袍盼 酉谀磷猎 forward 谙钨
fcreate_opts=鹆伊团砸 蜗紫 forward 谙钨
fcreate_type=羯 钨
fcreate_fwd=Forward (橥盼  崮遗恿)
fcreate_rev=Reverse (崮遗恿  橥盼镣)
fcreate_dom=橥 南团瘟 / 笈载
fcreate_masters=缣磷钨 优易乓
fcreate_err=镗陕肆 幸 酉谀廖缮 forward 谙钨

create_enet='$1' 闻 炎萄旁友 南姓釉赏鲜 优载
create_edom='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 南团瘟
create_edom2='$1' 南讨盼 沦载 南团蜗, 闻 优载
create_efile='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 屏侍
create_efile2='$1' 闻 炎萄旁友 伊谝袍盼钨 屏侍贤 谙钨
create_efile3=镗陕肆 幸 酉谀廖缮 '$1' : $2
create_emaster='$1' 闻 炎萄旁友 南姓釉赏偻 聊遗酉 翘磷蜗窍 优易乓
create_enone=髻 南讨钨 鬃庞陨 认匝沦 夏晌 翘磷钨 优易乓

boot_err=镗陕肆 幸 踪且遮伺

type_A=崮遗
type_AAAA=IPv6 崮遗
type_NS=笈易乓 橥盼
type_CNAME=鹩抛南紊 橥盼
type_MX=鹣拊献偈 笈易乓
type_HINFO=槲葡彝撩裳  柘釉
type_TXT=襞擞
type_WKS=橼着釉钨 笈易捎
type_RP=镌着杂宰盼钨 笮琶闪躺釉
type_PTR=蚺着矣勺钨 崮遗

edit_A=崮遗
edit_AAAA=IPv6 崮遗
edit_NS=笈易乓 橥盼
edit_CNAME=鹩抛南紊 橥盼
edit_MX=鹣拊献偈 笈易乓
edit_HINFO=槲葡彝撩裳  柘釉
edit_TXT=襞擞
edit_WKS=橼着釉钨 笈易捎
edit_RP=镌着杂宰盼钨 笮琶闪躺釉
edit_PTR=蚺着矣勺钨 崮遗

recs_A=崮遗
recs_AAAA=IPv6 崮遗
recs_NS=笈易乓 橥盼
recs_CNAME=鹩抛南紊 橥盼
recs_MX=鹣拊献偈 笈易乓
recs_HINFO=槲葡彝撩裳  柘釉
recs_TXT=襞擞
recs_WKS=橼着釉钨 笈易捎
recs_RP=镌着杂宰盼钨 笮琶闪躺釉
recs_PTR=蚺着矣勺钨 崮遗

value_A1=崮遗
value_NS1=笈易乓 橥盼
value_CNAME1=蚺撂匚吓 橥
value_MX1=鹨上疑耘
value_MX2=鹣拊献偈 笈易乓
value_HINFO1=嵝辛伊哉伊
value_HINFO2=镄乓撩上挝裂 笊釉磐
value_TXT1=笙下菖紊
value_WKS1=崮遗
value_WKS2=鹨显纤咸
value_WKS3=笈易捎
value_RP1=鹣拊献偈 崮遗
value_RP2=襞擞韵琢 猩迂
value_PTR1=橥 柘釉

warn=鹨拍招遗帜盼膳
fail=镗陕肆
ignore=榍蜗疑蚁琢载
default=鹣 胀咸蘖紊
listed=鹋遗奚犹盼钨 ..
eip='$1' 闻 炎萄旁友 南姓釉赏偻 IP 聊遗酉

acl_zones=湎团钨, 讼韵屹 拖峙 遗牧嗽梢献猎 牧挝偈 邢特谙琢耘特
acl_master=硐峙 酉谀磷猎 master 谙钨?
acl_slave=硐峙 酉谀磷猎 slave/stub 谙钨?
acl_forward=硐峙 酉谀磷猎 forward 谙钨?
acl_defaults=硐峙 遗牧嗽梢献猎 翘下撂匚倥 辛伊团砸?
acl_reverse=硐峙 下蜗滋言 遗着矣勺钨 诹猩由  汤孪 南团闻?
acl_multiple=硐峙 臀现庞宰 聊遗酉 赏旁 夏晌  韵-峙 IP?
acl_ro=蚺稚 南釉招 韵特讼-拊盼膳?
acl_dir=锴伊紊奚载 屏侍 谙 肆粤滔橇蜕

servers_title=湟涨膳 DNS 笈易乓
servers_ip=IP 聊遗
servers_bogus=榍蜗疑蚁琢载 邢哪盘匚倥 优易乓?
servers_format=嫦彝猎 谙挝鲜 信遗淤趟
servers_trans=砹擞赏撂匚 信遗淤滔
servers_one=锬瘟 诹 伊
servers_many=砦现庞宰
servers_err=镗陕肆 幸 酉纫廖盼缮 囊涨扇 DNS 优易乓献
servers_eip='$1' 闻 炎萄旁友 南姓釉赏偻 IP 聊遗酉
servers_etrans='$1' 闻 炎萄旁友 南姓釉赏偻 土擞赏撂匚偻 奚犹贤 信遗淤滔

logging_title=稣椅撂梢献廖膳  镗陕松
logging_ecannot=髁 闻 伊谝袍盼 瘟釉伊勺猎 终椅撂梢献廖膳
logging_header=鹆伊团砸 翘下撂匚锨 终椅撂梢献廖裳  羡陕纤
logging_default1=橛邢特谙琢载 瘟釉蚁仕 终椅撂梢献廖裳 BIND 邢 胀咸蘖紊
logging_default2=橛邢特谙琢载 瘟釉蚁仕 紊峙 ..
logging_cats=肓耘窍疑 终椅撂梢献廖裳
logging_cat=肓耘窍疑
logging_cchans=肓瘟藤
logging_chans=肓瘟藤 终椅撂梢献廖裳
logging_cname=橥 肆瘟塘
logging_to=稣椅撂梢献猎 
logging_file=媪侍
logging_fd=渑铀疑性弦
logging_versions=髋矣墒 奶 酉纫廖盼裳
logging_ver1=钆
logging_ver2=钆锨伊紊夼蜗
logging_size=砹擞赏撂匚偈 伊谕乓 屏侍
logging_sz1=钆锨伊紊夼蜗
logging_syslog=跻献盼 Syslog
logging_null=钌苏牧
logging_sev=砩紊土特钨 找献盼 酉下菖紊
logging_any=炖孪
logging_debug=跻献盼 显塘乃 ..
logging_dyn=缣下撂匚偈 找献盼
logging_pcat=猩淤琢载 肆耘窍疑  终椅撂
logging_psev=猩淤琢载 釉蚁窍釉  终椅撂
logging_ptime=猩淤琢载 牧哉  滓磐  终椅撂
logging_add=湎铝咨载 蜗踪 肆瘟
logging_none=肓瘟藤 终椅撂哨撩缮 闻 闲遗呐膛钨
logging_err=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献 终椅撂梢献廖裳
logging_ename='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 肆瘟塘
logging_efile=踉乓盐 赏 屏侍 终椅撂
logging_ever='$1' 闻 炎萄旁友 南姓釉赏偻 讼躺夼釉紫 着矣墒
logging_esize='$1' 闻 炎萄旁友 南姓釉赏偻 伊谕乓贤 终椅撂

acls_title=笮捎松 跣伊滋盼裳 湎釉招贤
acls_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 翘下撂匚倥 有捎松 南釉招
acls_name=橥 ACL
acls_values=笙仔聊僚  聊遗恿蜕, 优匝蜕  ACL镣
acls_err=镗陕肆 幸 酉纫廖盼缮 有捎肆 招伊滋盼裳 南釉招贤
acls_ename='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 ACL

files_title=媪侍  肓粤滔巧
files_ecannot=髁 闻 伊谝袍盼 瘟釉伊勺猎 屏侍
files_header=缣下撂匚倥 辛伊团砸 屏侍献  肆粤滔窍
files_stats=髻认奈鲜 屏侍 釉猎捎陨松
files_dump=媪侍 牧托 铝谫 牧挝偃
files_pid=媪侍 ID 幸厦庞恿
files_xfer=鹫载  幸锨伊屯 谙挝鲜 信遗淤趟
files_err=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献 屏侍献  肆粤滔窍
files_efile=踉乓盐 商 闻着椅吓 赏 屏侍

forwarding_title=幸嫌  鹋遗偬松
forwarding_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 辛伊团砸 诹幸嫌献  信遗淤滔
forwarding_header=缣下撂匚倥 辛伊团砸 诹幸嫌献  谙挝鲜 信遗淤趟
forwarding_fwders=笈易乓 奶 诹幸嫌献
forwarding_fwd=锫伊萘载友 瘟幸淹绽, 庞躺 闻 显着粤  诹幸嫌蜗窍 优易乓
forwarding_max=砹擞赏撂匚吓 滓磐 谙挝鲜 信遗淤趟
forwarding_format=嫦彝猎 谙挝鲜 信遗淤趟
forwarding_one=锬瘟 诹 伊
forwarding_many=砦锨
forwarding_in=砹擞赏胀 辛伊烫盘匚偃 谙挝偃 信遗淤滔
forwarding_err=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献 诹幸嫌献  信遗淤滔
forwarding_emins=踉乓盐 商 闻着椅吓 滓磐 信遗淤趟
forwarding_etrans=踉乓盐 商 闻着椅吓 土擞赏撂匚吓 奚犹 辛伊烫盘匚偃 谙挝偃 信遗淤滔
forwarding_minutes=蜕握

net_title=崮遗恿  粝邢滔巧
net_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 辛伊团砸 聊遗酉  韵邢滔巧
net_header=缣下撂匚倥 辛伊团砸 聊遗酉  韵邢滔巧
net_listen=鹣以  聊遗恿 奶 幸嫌陶凵琢紊
net_below=鹋遗奚犹盼钨 紊峙..
net_port=鹣以
net_addrs=崮遗恿
net_saddr=橛认奈偈 IP 聊遗 奶 诹幸嫌献
net_sport=橛认奈偈 邢以 奶 诹幸嫌献
net_topol=崽卦乓瘟陨孜裂 韵邢滔巧 优易乓 赏盼
net_err=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献 聊遗酉  韵邢滔巧
net_eport='$1' 闻 炎萄旁友 南姓釉赏偻 蜗团蚁 邢以

misc_title=鹨限膳 鹆伊团砸
misc_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 幸限膳 辛伊团砸
misc_header=缣下撂匚倥 幸限膳 辛伊团砸
misc_core=砹松土特钨 伊谕乓 牧托 core
misc_data=砹松土特钨 伊谕乓 捎邢特谡磐鲜 辛脱陨
misc_files=砹松土特蜗 奚犹 显艘僭偃 屏侍献
misc_stack=砹松土特钨 伊谕乓 捎邢特谡磐锨 釉潘
misc_clean=槲耘易撂 团帜 限捎运鲜 沼粤遗综扇 诹猩优
misc_iface=槲耘易撂 团帜 幸献乓讼 蜗踪 晌耘移攀酉
misc_stats=槲耘易撂 团帜 幸献乓肆蜕 终椅撂献
misc_recursion=髻邢涛言 邢涛嫌载 遗苏矣勺钨 幸嫌拖砸 奶 颂膳卧献?
misc_cnames=蛄谝袍稍 臀现庞宰 CNAME 杏抛南紊拖 奶 夏蜗窍 赏盼?
misc_glue=鹨先夏稍 邢 颂叛萆 诹猩友?
misc_nx=跤粤瘟滋勺猎 磷韵疑诹蒙衔钨 律 AA 瘟 显着再?
misc_err=镗陕肆 幸 酉纫廖盼缮 幸限扇 辛伊团砸献
misc_esize='$1' 闻 炎萄旁友 南姓釉赏偻 伊谕乓贤
misc_efiles='$1' 闻 炎萄旁友 南姓釉赏偻 土擞赏撂匚偻 奚犹贤 显艘僭偃 屏侍献
misc_emins='$1' 闻 炎萄旁友 南姓釉赏偻 奚犹贤 蜕握
misc_mins=蜕.

zonedef_title=鹆伊团砸 邢 胀咸蘖紊 奶 
zonedef_msg=鹆伊团砸 邢 胀咸蘖紊 奶 蜗紫 master 谙钨
zonedef_err=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献 邢 胀咸蘖紊 奶 谙钨
zonedef_ecannot=髁 闻 伊谝袍盼 哨团窝载 辛伊团砸 邢 胀咸蘖紊 奶 master 谙钨
zonedef_msg2=跤粤蜗姿 邢 胀咸蘖紊 奶 谙钨
zonedef_transfer=蛄谝袍稍 信遗淤趟 ..
zonedef_query=蛄谝袍稍 诹幸嫌 ..
zonedef_cmaster=鹨献乓言 赏盼  master 谙瘟?
zonedef_cslave=鹨献乓言 赏盼  slave 谙瘟?
zonedef_cresponse=鹨献乓言 赏盼  显着粤?
zonedef_notify=踝拍贤萄载 slaves 下 哨团闻紊讶?

07070100025979000081a40000000000000002000000013ac0389b000040b1000000200000000000000000000000000000001400000003reloc/bind8/lang/sv   index_title=BIND DNS-server
index_enamed=BIND DNS-server $1 kunde inte hittas p ditt system. Den 鋜 troligen inte installerad, eller ocks 鋜 dina <a href='$2'>BIND-modulinst鋖lningar</a> felaktiga.
index_eversion=Den exekverbara filen $1 verkar inte vara en BIND 8- eller BIND 9-fil. Prova att k鰎a <a href='$2'>BIND 4-modulen</a> i st鋖let.
index_eempty=Den prim鋜a konfigurationsfilen $1 f鰎 BIND finns inte eller 鋜 inte en giltig konfigurationsfil. Vill du skapa en konfigurationsfil?
index_local=S鋞t upp namnservern endast f鰎 internt bruk
index_download=S鋞t upp som Internet-namnserver och ladda information f鰎 rotserver
index_webmin=S鋞t upp som Internet-namnserver, men anv鋘d Webmins gamla information f鰎 rotservern
index_create=Skapa prim鋜 konfigurationsfil och starta namnserver
index_zones=Existerande DNS-zoner
index_none=Inga DNS-zoner 鋜 definierade f鰎 denna namnserver
index_addmaster=Skapa en ny master-zon
index_addslave=Skapa en ny slavzon
index_addstub=Skapa en ny 錿erv鋘dszon
index_addfwd=Skapa en ny genomfartszon
index_apply=Genomf鰎 鋘dringar
index_applymsg=Tryck p denna knapp f鰎 att starta om den aktiva BIND-servern. Detta g鰎 att den nu inst鋖lda konfigurationen tas i drift.
index_start=Starta namnserver
index_startmsg=Tryck p denna knapp f鰎 att starta BIND-servern och anv鋘da inst鋖ld konfiguration.
index_zone=Zon
index_type=Typ
index_master=Master
index_slave=Slav
index_stub=舤erv鋘dszon
index_forward=Genomfartszon
index_opts=Globala serverinst鋖lningar
index_return=zonlista
index_toomany=Det finns f鰎 m錸ga zoner p ditt system f鰎 att de ska kunna visas h鋜
index_find=S鰇 zoner som matchar:
index_search=S鰇

master_title=膎dra masterzon
master_ecannot=Du f錼 inte 鋘dra denna zon
master_manual=膎dra i listan 鰒er poster
master_soa=膎dra zonparametrar
master_options=膎dra zoninst鋖lningar
master_del=Ta bort zon
master_delmsg=Tryck p denna knapp f鰎 att ta bort zonen fr錸 din DNS-server.
master_delrev=Motsvarande bak錿uppslagningsposter i andra zoner p denna server kommer ocks att tas bort.
master_tmpl=Anv鋘da zonmall?
master_ip=IP-adress f鰎 mallposter
master_params=Zonparametrar
master_server=Masterserver
master_ns=L鋑ga till NS-post f鰎 masterserver?
master_email=E-postadress
master_refresh=Tidsintervall f鰎 uppdatering
master_retry=Tid till n鋝ta 鰒erf鰎ingsf鰎s鰇
master_expiry=Tid tills post blir obsolet
master_minimum=Standard time-to-live
master_opts=Zoninst鋖lningar
master_check=Kontrollera namn?
master_notify=Underr鋞ta slavar om 鋘dringar?
master_update=Till錿 uppdateringar fr錸 ...
master_transfer=Till錿 鰒erf鰎ingar fr錸 ...
master_query=Till錿 f鰎fr錱ningar fr錸 ...
master_notify2=Underr鋞ta ocks slavar ...
master_type=Typ
master_records=Poster
master_return=posttyper
master_err=Det gick inte att spara inst鋖lningar
master_ero=Du f錼 inte uppdatera zoner
master_err2=Det gick inte att uppdatera zonen
master_emaster='$1' 鋜 inte en giltig masterserver
master_eemail='$1' 鋜 inte en giltig e-postadress
master_erefresh='$1' 鋜 inte ett giltigt tidsintervall f鰎 uppdatering
master_eretry='$1' 鋜 inte ett giltigt tidsintervall f鰎 鰒erf鰎ingsf鰎s鰇
master_eexpiry='$1' 鋜 inte ett giltigt tidsintervall f鰎 obsolet post
master_eminimum='$1' 鋜 inte en giltig standard-TTL
master_edelete=Du f錼 inte ta bort denna zon
master_tmplrecs=Mallposter
master_name=Namn f鰎 posten
master_value=V鋜de
master_user=Fr錸 formul鋜
master_eip=IP-adress f鰎 mallpost saknas eller 鋜 ogiltig
master_eiptmpl=V鋜det p mallposten m錽te finnas bland adressposterna
master_esoacannot=Du f錼 inte 鋘dra zonparametrar
master_eoptscannot=Du f錼 inte 鋘dra zoninst鋖lningar
master_edeletecannot=Du f錼 inte ta bort zoner
master_etaken=Zonen finns redan

delete_title=Ta bort zon
delete_mesg=膔 du s鋕er p att du vill ta bort zon $1? Alla poster och zonfilen kommer att tas bort.
delete_rev=Ta bort bak錿uppslagningsposter i andra zoner?
delete_fwd=Ta bort fram錿uppslagningsposter i andra zoner?

mcreate_title=Skapa masterzon
mcreate_ecannot=Du f錼 inte skapa masterzoner
mcreate_opts=Inst鋖lningar f鰎 ny masterzon
mcreate_type=Zontyp
mcreate_fwd=Fram錿uppslagning (namn till adresser)
mcreate_rev=Bak錿uppslagning (adresser till namn)
mcreate_dom=Dom鋘namn/n鋞verk
mcreate_file=Fil med poster
mcreate_auto=Automatisk
mcreate_err=Det gick inte att skapa masterzonen

slave_title=膎dra slavzon
stub_title=膎dra 錿erv鋘dszon
slave_ecannot=Du f錼 inte 鋘dra denna zon
slave_opts=Zoninst鋖lningar
slave_masters=Masterservrar
slave_max=Mazimal 鰒erf鰎ingstid
slave_file=Fil med poster
slave_check=Kontrollera namn?
slave_notify=Underr鋞ta slavar om 鋘dringar?
slave_update=Till錿 uppdateringar fr錸 ...
slave_transfer=Till錿 鰒erf鰎ingar fr錸 ...
slave_query=Till錿 f鰎fr錱ningar fr錸 ...
slave_notify2=Underr鋞ta 鋠en slavar ...
slave_none=Ingen
slave_auto=Automatisk
slave_err=Det gick inte att spara inst鋖lningar
slave_emax='$1' 鋜 inte en giltig maximal 鰒erf鰎ingstid
slave_efile=Fil med poster saknas
slave_efile2='$1' 鋜 inte en giltig fil med poster
slave_mins=minuter

screate_title1=Skapa slavzon
screate_title2=Skapa 錿erv鋘dszon
screate_ecannot1=Du f錼 inte skapa slavzoner
screate_ecannot2=Du f錼 inte skapa 錿erv鋘dszoner
screate_header1=Inst鋖lningar f鰎 ny slavzon
screate_header2=Inst鋖lningar f鰎 ny 錿erv鋘dszon
screate_type=Zontyp
screate_fwd=Fram錿uppslagning (namn till adresser)
screate_rev=Bak錿uppslagning (adresser till namn)
screate_dom=Dom鋘namn/n鋞verk
screate_err1=Det gick inte att skapa slavzon
screate_err2=Det gick inte att skapa 錿erv鋘dszon

recs_ecannot=Du f錼 inte 鋘dra poster i denna zon
recs_title=$1 Poster
recs_header=I $1
recs_addr=Adress
recs_name=Namn
recs_ttl=TTL
recs_comment=Kommentar
recs_return=posttyper

edit_title=膎dra $1
edit_header=I $1
edit_edit=膎dra post $1
edit_add=L鋑g till post $1
edit_addr=Adress
edit_name=Namn
edit_zonename=Zonnamn
edit_ttl=Time-To-Live
edit_comment=Kommentar
edit_cnamemsg=Absoluta namn m錽te sluta med en .
edit_uprev=Uppdatera bak錿uppslagning?
edit_upfwd=Uppdatera fram錿uppslagning?
edit_err=Det gick inte att spara post
edit_ettl='$1' 鋜 inte en giltig time-to-live
edit_eip='$1' 鋜 inte en giltig IP-adress
edit_eip6='$1' 鋜 inte en giltig IPv6-adress
edit_ehost='$1' 鋜 inte ett giltigt datornamn
edit_ename='$1' 鋜 inte ett giltigt postnamn
edit_edupip=Det finns redan en adresspost f鰎 $1
edit_ens='$1' 鋜 inte en giltig namnserver
edit_ecname='$1' 鋜 inte ett giltigt m錶alias
edit_emx='$1' 鋜 inte en giltig e-postserver
edit_epri='$1' 鋜 inte en giltig prioritet
edit_ehard=H錼dvarutyp saknas eller 鋜 felaktig
edit_eos=OS-typ saknas eller 鋜 felaktig
edit_eserv=Du har inte angivit n錱on k鋘d tj鋘st
edit_ebadserv=Namnet p den k鋘da tj鋘sten '$1' 鋜 felaktigt
edit_eemail='$1' 鋜 inte en giltig e-postadress
edit_etxt='$1' 鋜 inte ett giltigt postnamn
edit_efqdn=Det absoluta namnet '$1' 鋜 f鰎 l錸gt
edit_elabel=En uppgift i '$1' inneh錶ler f鰎 m錸ga tecken
edit_return=poster

text_title=膎dra fil med poster
text_desc=I detta formul鋜 kan du 鋘dra DNS-posterna i fil $1 manuellt. webmin kommer inte att utf鰎a n錱on syntaxkontroll och serienumret f鰎 zonen kommer inte att r鋕nas upp automatiskt.
text_undo=舗gra
text_ecannot=Du f錼 inte 鋘dra i filerna

restart_ecannot=Du f錼 inte starta om BIND
restart_esig=Det gick inte att skicka signal till process $1 : $2
start_ecannot=Du f錼 inte starta BIND
start_error=Det gick inte att starta BIND: $1

fwd_title=膎dra genomfartszon
fwd_ecannot=Du f錼 inte 鋘dra i denna zon
fwd_opts=Zoninst鋖lningar
fwd_masters=Masterservrar
fwd_forward=Prova med andra servrar?
fwd_check=Kontrollera namn?
fwd_err=Det gick inte att spara inst鋖lningar

fcreate_title=Skapa genomfartszon
fcreate_ecannot=Du f錼 inte skapa genomfartszoner
fcreate_opts=Inst鋖lningar f鰎 ny genomfartszon
fcreate_type=Zontyp
fcreate_fwd=Fram錿uppslagning (namn till adresser)
fcreate_rev=Bak錿uppslagning (adresser till namn)
fcreate_dom=Dom鋘namn/n鋞verk
fcreate_masters=Masterservrar
fcreate_err=Det gick inte att skapa genomfartszon

create_enet='$1' 鋜 inte ett giltigt n鋞verk
create_edom='$1' 鋜 inte ett giltigt dom鋘namn
create_edom2='$1' m錽te vara en dom鋘, inte ett n鋞verk
create_efile='$1' 鋜 inte ett giltigt filnamn
create_efile2='$1' 鋜 inte en giltig zonfil
create_efile3=Det gick inte att skapa '$1' : $2
create_emaster='$1' 鋜 inte en giltig masterserveradress
create_enone=Du m錽te ange minst en masterserver

boot_err=Nedladdningen misslyckades

type_A=Adress
type_AAAA=IPv6-adress
type_NS=Namnserver
type_CNAME=Namnalias
type_MX=E-postserver
type_HINFO=Datorinformation
type_TXT=Text
type_WKS=K鋘d tj鋘st
type_RP=Ansvarig person
type_PTR=Bak錿adress

edit_A=Adress
edit_AAAA=IPv6-adress
edit_NS=Namnserver
edit_CNAME=Namnalias
edit_MX=E-postserver
edit_HINFO=Datorinformation
edit_TXT=Text
edit_WKS=K鋘d tj鋘st
edit_RP=Ansvarig person
edit_PTR=Bak錿adress

recs_A=Adress
recs_AAAA=IPv6-adress
recs_NS=Namnserver
recs_CNAME=Namnalias
recs_MX=E-postserver
recs_HINFO=Datorinformation
recs_TXT=Text
recs_WKS=K鋘d tj鋘st
recs_RP=Ansvarig person
recs_PTR=Bak錿adress

value_A1=Adress
value_NS1=Namnserver
value_CNAME1=Verkligt namn
value_MX1=Prioritet
value_MX2=E-postserver
value_HINFO1=H錼dvara
value_HINFO2=Operativsystem
value_TXT1=Meddelande
value_WKS1=Adress
value_WKS2=Protokoll
value_WKS3=Tj鋘ster
value_RP1=E-postadress
value_RP2=Textpostnamn
value_PTR1=Datornamn

warn=Varning
fail=Fel
ignore=Strunta i
default=Standard
minutes=minuter
seconds=sekunder
hours=timmar
days=dagar
weeks=veckor
listed=Uppr鋕nade ...
eip='$1' 鋜 inte en giltig IP-adress

acl_zones=Dom鋘er som denna anv鋘dare kan 鋘dra i
acl_zall=Alla zoner
acl_zsel=Angivna ...
acl_master=Kunna skapa masterzoner?
acl_slave=Kunna skapa slav-/錿erv鋘dszoner?
acl_forward=Kunna skapa genomfartszoner?
acl_defaults=Kunna 鋘dra globala inst鋖lningar?
acl_reverse=Kunna 鋘dra bak錿uppslagningsadresser i alla dom鋘er?
acl_multiple=Kan flera adresser ha samma IP-adress?
acl_ro=Ej skrivbart?
acl_apply=Kunna ta 鋘dringar i drift?
acl_dir=Begr鋘sa zonfiler till katalog
acl_file=Kunna 鋘dra i filerna?
acl_params=Kunna 鋘dra zonparametrar?
acl_opts=Kunna 鋘dra zoninst鋖lningar?
acl_delete=Kunna ta bort zoner?
acl_findfree=Kunna s鰇a efter lediga IP-nummer?

servers_title=Andra DNS-servrar
servers_ip=IP-adress
servers_bogus=Strunta i falsk server?
servers_format=Format f鰎 zon鰒erf鰎ing
servers_trans=Maximala 鰒erf鰎ingar
servers_one=En i taget
servers_many=M錸ga
servers_err=Det gick inte att spara andra DNS-servrar
servers_eip='$1' 鋜 inte en giltig IP-adress
servers_etrans='$1' 鋜 inte ett giltig antal f鰎 鰒erf鰎ingar

logging_title=Loggning och fel
logging_ecannot=Du f錼 inte konfigurera loggningen
logging_header=Globala inst鋖lningar f鰎 loggning och fel
logging_default1=Anv鋘d BINDs standardinst鋖lningar f鰎 loggning
logging_default2=Anv鋘d inst鋖lningarna nedan ...
logging_cats=Loggkategorier
logging_cat=Kategori
logging_cchans=Kanaler
logging_chans=Loggkanaler
logging_cname=Kanalnamn
logging_to=Logga till
logging_file=Fil
logging_fd=Filnamn
logging_versions=Spara version(er)
logging_ver1=Inga
logging_ver2=Obegr鋘sat
logging_size=Maximal filstorlek
logging_sz1=Obegr鋘sat
logging_syslog=Syslog-niv
logging_null=Ingenstans
logging_sev=L鋑sta meddelandeniv
logging_any=N錱on
logging_debug=Debug-niv ...
logging_dyn=Global niv
logging_pcat=Notera kategori i loggen
logging_psev=Notera vikt i loggen
logging_ptime=Notera datum och tid i loggen
logging_add=L鋑g till en ny kanal
logging_none=Inga loggkanaler 鋜 angivna.
logging_err=Det gick inte att spara logginst鋖lningar
logging_ename='$1' 鋜 inte ett giltigt kanalnamn
logging_efile=Loggfilnamn saknas
logging_ever='$1' 鋜 inte ett giltigt versionsantal
logging_esize='$1' 鋜 inte en giltig loggfilstorlek

acls_title=Listor 鰒er 錿komstkontroll
acls_ecannot=Du f錼 inte 鋘dra globala ACL:er
acls_name=ACL-namn
acls_values=Tillh鰎ande adresser, n鋞verk och ACL:er
acls_err=Det gick inte att spara listor 鰒er 錿komstkontroll
acls_ename='$1' 鋜 inte ett giltigt ACL-namn

files_title=Filer och kataloger
files_ecannot=Du f錼 inte 鋘dra inst鋖lningarna f鰎 filer
files_header=Globala inst鋖lningar f鰎 filer och kataloger
files_stats=Fil f鰎 statistik
files_dump=Fil f鰎 databas
files_pid=Fil f鰎 process-ID
files_xfer=S鰇v鋑 till zon鰒erf鰎ingsprogram
files_err=Det gick inte att spara inst鋖lningar f鰎 filer och kataloger
files_efile=Filnamn saknas eller 鋜 ogiltigt

forwarding_title=講erf鰎ing och efters鋘dning
forwarding_ecannot=Du f錼 inte 鋘dra inst鋖lningarna f鰎 鰒erf鰎ing och efters鋘dning
forwarding_header=Globala inst鋖lningar f鰎 鰒erf鰎ing och efters鋘dning
forwarding_fwders=Servrar att skicka vidare fr錱or till
forwarding_fwd=Sl upp direkt om efters鋘daren inte svarar
forwarding_max=Maximal zon鰒erf鰎ingstid
forwarding_format=Format f鰎 zon鰒erf鰎ing
forwarding_one=En i taget
forwarding_many=M錸ga
forwarding_in=Maximalt antal samtidiga zon鰒erf鰎ingar
forwarding_err=Det gick inte att spara inst鋖lningar f鰎 鰒erf鰎ing och efters鋘dning
forwarding_emins=Maximal 鰒erf鰎ingstid saknas eller 鋜 felaktig
forwarding_etrans=Maxantal f鰎 samtidiga 鰒erf鰎ingar saknas eller 鋜 felaktigt
forwarding_minutes=minuter

net_title=Adresser och topologi
net_ecannot=Du f錼 inte 鋘dra inst鋖lningar f鰎 adresser och topologi
net_header=Globala inst鋖lningar f鰎 adresser och topologi
net_listen=Lyssna p f鰈jande portar och adresser
net_below=Uppr鋕nade nedan ...
net_port=Port
net_addrs=Adresser
net_saddr=Serverns IP-adress f鰎 f鰎fr錱ningar
net_sport=Serverns port f鰎 f鰎fr錱ningar
net_topol=Topologi f鰎 namnserverval
net_err=Det gick inte att spara inst鋖lningar f鰎 adresser och topologi.
net_eport='$1' 鋜 inte ett giltigt portnummer.
net_etopology=Du har inte angivit n錱on topologiadress.

misc_title=Blandade inst鋖lningar
misc_ecannot=Du f錼 inte 鋘dra de blandade inst鋖lningarna
misc_header=Blandade globala inst鋖lningar
misc_core=Maximal storlek f鰎 core dump
misc_data=Maximalt minnesutnyttjande
misc_files=Maximalt antal 鰌pna filer
misc_stack=Maximalt stackminnesutnyttjande
misc_clean=Hur ofta ska obsoleta poster rensas bort?
misc_iface=Hur ofta ska servern s鰇a efter nya interface?
misc_stats=Hur ofta ska loggstatistik tas?
misc_recursion=Fullst鋘diga uppslagningar f鰎 klienter?
misc_cnames=Till錿a multipla CNAME-alias f鰎 ett namn?
misc_glue=H鋗ta tillh鰎ande poster?
misc_nx=S鋞ta den auktorativa AA-biten f鰎 svar?
misc_err=Det gick inte att spara blandade inst鋖lningar
misc_esize='$1' 鋜 inte en giltig storlek
misc_efiles='$1' 鋜 inte ett giltigt maxantal f鰎 鰌pna filer
misc_emins='$1' 鋜 inte ett giltigt antal minuter
misc_mins=min

zonedef_title=Zonstandard
zonedef_msg=Standard f鰎 nya masterzoner
zonedef_err=Det gick inte att spara zonstandard
zonedef_ecannot=Du f錼 inte 鋘dra masterzonstandard
zonedef_msg2=Standardinst鋖lningar f鰎 zon
zonedef_transfer=Till錿 鰒erf鰎ingar fr錸 ...
zonedef_query=Till錿 f鰎fr錱ningar fr錸 ...
zonedef_cmaster=Kontrollera namn hos masterzoner?
zonedef_cslave=Kontrollera namn hos slavzoner?
zonedef_cresponse=Kontrollera namn vid svar?
zonedef_notify=Underr鋞ta slavar vid 鋘dringar?

find_title=S鰇 zoner
find_match=Zoner som matchar $1 ...
find_none=Inga zoner funna

efirst=Ogiltigt f鰎sta direktiv p rad $1 i $2

findfree_title=S鰇 lediga IP
findfree_desc=S鰇 efter lediga IP-nummer
findfree_nofind=Du f錼 inte s鰇a efter lediga IP-nummer
findfree_header=I $1
findfree_sopt=S鰇villkor
findfree_IPrange=IP-intervall
findfree_from=fr錸
findfree_to=till
findfree_cf=Anse <em>`freeXXX'</em>-datornamn som lediga IP-nummer?
findfree_search=S鰇

log_servers=膎drade 鰒riga DNS-servrar
log_logging=膎drade loggning och fel
log_acls=膎drade listorna 鰒er 錿komstkontroll
log_files=膎drade filer och kataloger
log_forwarding=膎drade efters鋘dning och 鰒erf鰎ing
log_net=膎drade adresser och topologi
log_misc=膎drade blandade inst鋖lningar
log_zonedef=膎drade zonstandarder
log_apply=Tog 鋘dringar i drift
log_start=Startade DNS-server
log_master=Skapade master-zon $1
log_slave=Skapade slavzon $1
log_stub=Skapade 錿erv鋘dszon $1
log_forward=Skapade genomfartszon $1
log_delete_master=Tog bort master-zon $1
log_delete_slave=Tog bort slavzon $1
log_delete_stub=Tog bort 錿erv鋘dszon $1
log_delete_forward=Tog bort genomfartszon $1
log_text=膎drade poster f鰎 $1 f鰎 hand
log_soa=膎drade zonparametrar f鰎 $1
log_opts=膎drade zoninst鋖lningar f鰎 $1
log_delete_record=Tog bort $1 post $2 i zon $3
log_create_record=Skapade $1 post $2 i zon $3
log_modify_record=Modifierade $1 post $2 i zon $3
log_boot=Skapade prim鋜 konfigurationsfil

   0707010002597a000081a40000000000000002000000013ac0389b00004056000000200000000000000000000000000000001400000003reloc/bind8/lang/tr   index_title=BIND 8 DNS Sunucusu
index_enamed=BIND 8 DNS sunucusu $1 sisteminizde bulunamad.Kurulmam olabilir ya da <a href='$2'>mod黮 yap齦and齬man齴</a> do餽u olmayabilir.
index_eversion=Sunucu 鏰lt齬齦abiliri $1 BIND 8 gibi g鰎黱m鼀or.Belki de <a href='$2'>BIND 4 Mod黮</a> kullan齩r olabilirsiniz.
index_eempty=BIND 8 i鏸n birincil yap齦and齬ma dosyas mevcut de餴l ya da yanl. Olu⺶urulsun mu? 
index_local=輘im sunucusunu sadece internet olmayan i a餯a kullanmak i鏸n kur
index_download=Bir internet isim sunucusu olarak kur ve root sunucusu bilgilerini indir.
index_webmin=Bir internet isim sunucusu olarak kur, ama Webmin'in eski root sunucu bilgilerini kullan
index_create=Birincil Yap齦and齬ma Dosyas Olu⺶ur ve 輘im Sunucusunu Baat
index_zones=Varolan DNS B鰈geleri
index_none=Bu DNS sunucusu i鏸n tan齧lanan DNS b鰈gesi yok
index_none=Bu isim sunucusu icin DNS bolgesi yok
index_addmaster=Yeni bir ana b鰈ge olu⺶ur 
index_addslave=Yeni bir alt b鰈ge olu⺶ur
index_addstub=Yeni bir stub b鰈gesi olu⺶ur
index_addfwd=Yeni bir 鰊 b鰈ge olu⺶ur
index_apply=Degisiklikleri Uygula
index_applymsg=Bu buton ile 鏰lan BIND 8 sunucusunu durdurup yeniden baatabilirsiniz.Bu aktif hale gelmeden mevcut yap齦and齬ma kullan齦amayacakt齬.
index_start=輘im Sunucusunu Baat
index_startmsg=Bu butonu t齥layarak BIND 8 sunucusunu 鏰lt齬abilir ve mevcut yap齦and齬may kullanabilirsiniz.
index_zone=Bolge
index_type=Tip
index_master=Ana
index_slave=Alt
index_stub=Stub
index_forward=輑eri
index_opts=Genel Sunucu Se鏴nekleri
index_return=b鰈ge se鏴nekleri
index_toomany=Sisteminizde burada g鰏terilemeyecek kadar 鏾k b鰈ge var.
index_find=Arama i鏸n karla⺶齬齦acak b鰈ge :
index_search=Ara

master_title=Ana B鰈geyi De餴⺶ir
master_ecannot=Ana b鰈geyi de餴⺶irmek i鏸n izininiz yoktur
master_manual=Kay齮 Dosyas齨 De餴⺶ir
master_soa=B鰈ge Parametrelerini De餴⺶ir
master_options=B鰈ge Se鏴neklerini De餴⺶ir
master_del=B鰈geyi Sil
master_delmsg=Bu butonu t齥layarak bu b鰈geyi DNS sunucunuzdan silebilirsiniz.
master_delrev=Di餰r b鰈gelerdeki karla⺶齬齦an ters adres kay齮lar
silinmi olsa bile bu sunucu taraf齨dan tutulacakt齬.
master_tmpl=B鰈ge blonu kullan?
master_ip=轪blon kay齮lar i鏸n IP adresi
master_params=B鰈ge Parametreleri
master_server=Ana sunucu
master_ns=Ana sunucu NS olarak kaydedilsin mi?
master_email=E-posta adresi
master_refresh=Yenileme zaman
master_retry=Transfer tekrar s黵esi
master_expiry=輕tal s黵esi
master_minimum=謓tan齧l yam s黵esi (TTL)
master_opts=B鰈ge Se鏴nekleri
master_check=輘imleri kontrol et?
master_notify=Alt b鰈gelerdeki de餴㱮klikleri bildir?
master_update=G黱cellemeleri kabul et..
master_transfer=Transferleri kabul et..
master_query=Sorgulamalar kabul et..
master_notify2=Sadece alttakini bildir..
master_type=Tip
master_records=Kay齮lar
master_return=kay齮 tipleri
master_secs=saniye
master_err=Se鏴neklerin kaydedilmesinde hata olu⺶u
master_ero=B鰈gelerin g黱cellemenize izin verilmedi
master_err2=B鰈gelerin g黱cellenmesinde hata olu⺶u
master_emaster='$1' ge鏴rli bir ana sunucu adresi de餴l
master_eemail='$1' ge鏴rli bir e-posta adresi de餴l
master_erefresh='$1' ge鏴rli bir tazeleme s黵esi de餴l
master_eretry='$1' ge鏴rli bir transfer tekrarlama zaman de餴l
master_eexpiry='$1' ge鏴rli bir iptal s黵esi de餴l
master_eminimum='$1' ge鏴rli bir 鰊tan齧l TTL de餴l
master_edelete=Bu b鰈geyi silmenize izin verilmedi
master_tmplrecs=Kal齪 kay齮lar
master_name=Kay齮 ismi
master_value=De餰ri
master_user=Formdan
master_eip=Kay齪 ya da yanl kal齪 IP adresi
master_eiptmpl=Kal齪 kay齮 de餰rleri sadece adres kay齮lar齨dan gelebilir.
master_esoacannot=B鰈ge parametrelerinin de餴⺶irilmesine izin verilmedi 
master_eoptscannot=Kay齮 se鏴neklerinin de餴⺶irilmesine izin verilmedi
master_edeletecannot=B鰈geleri silmenize izin verilmedi

delete_title=B鰈ge Sil
delete_mesg=$1 b鰈gesini silmek istedi餴nizden emin misiniz? B黷黱 kay齮lar ve b鰈geler silinebilir.
delete_rev=Di餰r b鰈gelerdeki ters kay齮lar silinsin?
delete_fwd=Di餰r b鰈gelerdeki d鼁 kay齮lar silinsin?

mcreate_title=Ana B鰈ge Olu⺶ur
mcreate_ecannot=Ana b鰈ge olu⺶uramazs齨齴
mcreate_opts=Yeni ana b鰈ge se鏴nekleri
mcreate_type=Alan tipi
mcreate_fwd=D鼁 (Adresten IP'ye 泅z黰leme)
mcreate_rev=Ters (IP'den Adrese 泅z黰leme)
mcreate_dom=Alan ismi / A
mcreate_file=Kay齮 dosyas
mcreate_auto=Otomatik
mcreate_err=B鰈ge olu⺶urulmas齨da hata olu⺶u
mcreate_enet='$1' ge鏴rli bir a de餴l
mcreate_edom='$1' ge鏴rli alan ismi de餴l
mcreate_edom2='$1' bir alan olmal齞齬, a de餴l
mcreate_efile='$1' ge鏴rli bir adres de餴l
mcreate_efile2='$1' ge鏴rli bir ulalabilir b鰈ge dosyas de餴l
mcreate_efile3='$1'in olu⺶urulmas齨da hata olu⺶u : $2

slave_title=Alt B鰈geleri De餴⺶ir
stub_title=Stub b鰈geyi de餴⺶ir
slave_ecannot=Bu b鰈geyi de餴⺶irmek i鏸n izininiz yoktur
slave_opts=B鰈ge Se鏴nekleri
slave_masters=Ana sunucular
slave_max=En 鏾k transfer s黵esi
slave_file=Kay齮 dosyas
slave_check=輘imler kontrol edilsin?
slave_notify=Alt b鰈gelerdeki de餴㱮klikler bildirilsin?
slave_update=G黱cellemeleri kabul et..
slave_transfer=Transferleri kabul et..
slave_query=Sorgulamalar kabul et..
slave_notify2=Alt b鰈geleri de bildir..
slave_none=Hi鏱iri
slave_auto=Otomatik
slave_err=Se鏴neklerin kaydedilmesinde hata olu⺶u
slave_emax='$1' ge鏴rli en 鏾k transfer s黵esi de餴l
slave_efile=Kay齪 kay齮 dosyas
slave_efile2='$1' ulalabilir bir kay齮 dosyas de餴ldir.
slave_mins=dakika

screate_title1=Alt B鰈geleri Olu⺶ur
screate_title2=Stub B鰈ge Olu⺶ur
screate_ecannot1=Alt b鰈ge olu⺶urmak i鏸n izininiz yoktur 
screate_ecannot2=Stub b鰈ge olu⺶urmak i鏸n izininiz yoktur
screate_header1=Yeni alt b鰈ge se鏴nekleri
screate_header2=Yeni stub b鰈ge se鏴nekleri
screate_type=B鰈ge Tipi
screate_fwd=D鼁 (Adreslere 輘imler)
screate_rev=Ters (輘imlere Adresler)
screate_dom=Alan ad / A
screate_err1=Alt b鰈genin olu⺶urulmas齨da hata olu⺶u
screate_err2=Stub b鰈gesinin olu⺶urulmas齨da hata olu⺶u
screate_enet='$1' ge鏴rli bir a de餴l
screate_edom='$1' ge鏴rli bir alan ad de餴l
screate_emaster='$1' ge鏴rli bir ana sunucu adresi de餴l 
screate_enone=En az bir ana sunucu girmelisiniz
screate_efile='$1' ge鏴rli bir dosya ismi de餴l
screate_efile2='$1' ulalabilir b鰈ge dosyas de餴l
screate_efile3='$1' in olu⺶urulmas齨da hata olu⺶u : $2

recs_ecannot=Bu b鰈gede kay齮lar de餴⺶irmenize izininiz yoktur
recs_title=$1 Kay齮lar
recs_header=$1
recs_addr=Adres
recs_name=輘im
recs_ttl=TTL
recs_return=kay齮lar

edit_title=$1 De餴⺶ir
edit_header=$1 i鏸nde
edit_edit=$1 kayd齨 de餴⺶ir
edit_add=$1 kay齞 ekle
edit_addr=Adres
edit_name=輘im
edit_ttl=TTL s黵esi
edit_cnamemsg=輘imler mutlaka bir nokta ile bitmelidir 
edit_uprev=Ters'leri g黱celle⺶ir?
edit_upfwd=D鼁ler g黱celle⺳in mi?
edit_err=Kay齞齨 kaydedilmesinde hata olu⺶u
edit_ettl='$1' ge鏴rli bir yama s黵esi de餴ldir
edit_eip='$1' ge鏴rli bir IP adresi de餴ldir
edit_ehost='$1' ge鏴rli bir makine ad de餴ldir
edit_ename='$1' ge鏴rli bir kay齮 ismi de餴ldir
edit_edupip=$1 i鏸n adres kayd her zaman mevcut
edit_ens='$1' ge鏴rli bir isim sunucusu de餴ldir
edit_ecname='$1' ge鏴rli bir sahte hedef de餴ldir
edit_emx='$1' ge鏴rli bir posta sunucusu de餴ldir
edit_epri='$1' ge鏴rli bir 鰊celik de餴ldir
edit_ehard=Kay齪 ya da yanl donan齧 tipi
edit_eos=Kay齪 ya da yanl OS tipi
edit_eserv=Herhangi iyi bilinen servis girmediniz
edit_eemail='$1' ge鏴rli bir e-posta adresi de餴ldir
edit_etxt='$1' ge鏴rli bir yaz kay齮 ismi de餴ldir

text_title=Kay齮 Dosyas齨 De餴⺶ir
text_desc=Bu form DNS kay齮 dosyas $1'n齨 elle de餴⺶irilmesine izin verir.
text_undo=Geri Al
text_ecannot=Kay齮 dosyalar齨 de餴⺶irmeye izininiz yoktur

restart_ecannot=BIND'i yeniden baatmak i鏸n izininiz yoktur
restart_esig=蔺aret iemi $1'de hata olu⺶u : $2
start_ecannot=BIND'i baatmak i鏸n izininiz yoktur
start_error=BIND'in baat齦mas齨da hata olu⺶u : $1

fwd_title=謓 B鰈geyi De餴⺶ir
fwd_ecannot=Bu b鰈geyi de餴⺶irmek i鏸n izininiz yoktur
fwd_opts=B鰈ge Se鏴nekleri
fwd_masters=ana sunucular
fwd_forward=Di餰r sunucular denensin?
fwd_check=輘imler kontrol edilsin?
fwd_err=Se鏴neklerin kaydedilmesinde hata olu⺶u

fcreate_title=謓 B鰈ge Olu⺶ur
fcreate_ecannot=謓 b鰈ge olu⺶urmak i鏸n izininiz yoktur
fcreate_opts=Yeni 鰊 b鰈ge se鏴nekleri
fcreate_type=B鰈ge tipi
fcreate_fwd=D鼁 (Adreslere 輘im)
fcreate_rev=Ters (輘imlere Adresler)
fcreate_dom=Alan ad/A
fcreate_masters=Ana sunucular
fcreate_err=謓 b鰈ge olu⺶urulmas齨da hata olu⺶u
fcreate_enet='$1' ge鏴rli bir a de餴ldir
fcreate_edom='$1' ge鏴rli bir alan ad de餴ldir
fcreate_emaster='$1' ge鏴rli bir ana sunucu adresi de餴ldir
fcreate_enone=En az bir ana sunucu adresi girmelisiniz

boot_err=Dosya indirmede hata olu⺶u

type_A=Adres
type_NS=輘im Sunucusu
type_CNAME=Takma 輘imler
type_MX=Posta Sunucusu
type_HINFO=Makine Ad Bilgisi
type_TXT=Yaz
type_WKS=Bilinen Servis
type_RP=Sorumlu Ki㱮
type_PTR=Ters Adresler

value_A1=Adres
value_NS1=輘im Sunucu
value_CNAME1=Ger鏴k 輘im
value_MX1=謓celik
value_MX2=Posta Sunucusu
value_HINFO1=Donan齧
value_HINFO2=蔺letim Sistemi
value_TXT1=Mesaj
value_WKS1=Adres
value_WKS2=Protokol
value_WKS3=Servisler
value_RP1=E-posta Adresi
value_RP2=Yaz Kay齞
value_PTR1=Makine ad

warn=Uyar
fail=Hata
ignore=Yoksay
default=謓tan齧l
minutes=dakika
seconds=saniye
listed=Listeli ..
eip='$1' ge鏴rli bir IP adresi de餴l

acl_zones=Bu kullan齝 alanlar de餴⺶irebilir
acl_master=Ana b鰈ge olu⺶urabilsin?
acl_slave=Alt/Stub b鰈ge olu⺶urabilsin?
acl_forward=謓 b鰈ge olu⺶urabilsin?
acl_defaults=Genel se鏴nekleri de餴⺶irebilsin?
acl_reverse=Herhangi b鰈gedeki ters adresleri g黱celleyebilsin?
acl_multiple=莖klu adresler ayn IP'ye sahip olabilsin?
acl_ro=Sadece okunur giri modu?
acl_apply=De餴㱮klikleri uygulayabilsin?
acl_dir=B鰈ge dosyalar dizine s齨齬lans齨
acl_file=Kay齮 dosyalar齨 de餴⺶irebilsin?
acl_params=B鰈ge parametrelerini de餴⺶irebilsin?
acl_opts=B鰈ge se鏴neklerini de餴⺶irebilsin?
acl_delete=B鰈geleri silebilsin?
acl_findfree=Kullan齦mayan IP numaralar齨 arayabilsin mi?

servers_title=Di餰r DNS sunucular
servers_ip=IP adresi
servers_bogus=Sahte sunucuyu yoksay?
servers_format=B鰈ge transfer format
servers_trans=En 鏾k transfer
servers_one=Belli aral齥larla
servers_many=莖k
servers_err=Di餰r DNS sunucular齨齨 kaydedilmesinde hata olu⺶u
servers_eip='$1' ge鏴rli bir IP adresi de餴l
servers_etrans='$1' ge鏴rli bir en 鏾k transfer say齭 de餴l

logging_title=Kay齮 ve Hatalar
logging_ecannot=Kay齮lar齨 yap齦and齬齦mas齨da hata olu⺶u
logging_header=Genel kay齮 ve hata se鏴nekleri
logging_default1=BIND'in 鰊tan齧l kay齮 se鏴neklerini kullan
logging_default2=Takip eden ayarlar kullan ..
logging_cats=Kay齮 kategorileri
logging_cat=Kategori
logging_cchans=Kanallar
logging_chans=Kay齮 Kanallar
logging_cname=Kanal 輘mi
logging_to=Kay齮 tut
logging_file=Dosya
logging_fd=Dosya a琮klamas
logging_versions=S黵黰leri sakla
logging_ver1=Hi鏱iri
logging_ver2=Limitsiz
logging_size=En 鏾k dosya boyutu
logging_sz1=Limitsiz
logging_syslog=Sistem kay齮 seviyesi
logging_null=Hi鏱iryer
logging_sev=En az mesaj seviyesi
logging_any=Herhangi
logging_debug=Hatas齴la⺶齧a seviyesi ..
logging_dyn=Genel seviye
logging_pcat=Kay齮larda kay齮 kategorisi
logging_psev=Kay齮larda kay齮 derecesi
logging_ptime=Kay齮tak kay齮 tarihi ve s黵esi
logging_add=Yeni kanal ekle
logging_none=Kay齮 kanallar tan齧lanmad
logging_err=Kay齮 se鏴neklerinin kaydedilmesinde hata olu⺶u
logging_ename='$1' ge鏴rli bir kanal ismi de餴l
logging_efile=Kay齪 kay齮 dosya ad
logging_ever='$1' ge鏴rli s黵黰 say齭 de餴l
logging_esize='$1' ge鏴rli bir kay齮 boyutu de餴l

acls_title=輟in Kontrol Listeleri
acls_ecannot=Genel kontrol listelerini de餴⺶irmeniz i鏸n izininiz yoktur
acls_name=Kontrol Listesi 輘mi
acls_values=Karla⺶齬齦an adresler, a餷ar ve kontrol listeleri
acls_err=Giri kontrol listelerinin kaydedilmesinde hata olu⺶u
acls_ename='$1' ge鏴rli bir kontrol listesi ad de餴l

files_title=Dosya ve Dizinler
files_ecannot=Dosyalar yap齦and齬mak i鏸n izininiz yoktur
files_header=Genel dosya ve dizin se鏴nekleri
files_stats=驱kt dosyas se鏴nekleri
files_dump=Veritaban kay齮 dosyas
files_pid=蔺lem ID dosyas
files_xfer=B鰈ge transfer program yolu
files_err=Dosya ve dizin se鏴neklerinin kaydedilmesinde hata olu⺶u
files_efile=Kay齪 ya da yanl dosya ismi

forwarding_title=G鰊derim ve Transferler
forwarding_ecannot=G鰊derim ve transfer se鏴neklerini de餴⺶irmek i鏸n izininiz yoktur
forwarding_header=Genel g鰊derim ve transfer se鏴nekleri
forwarding_fwders=G鰊derim sorgulamalar齨a sunucular
forwarding_fwd=G鰊dericiden cevap gelmiyorsa do餽udan bak
forwarding_max=En 鏾k b鰈ge transfer zaman
forwarding_format=B鰈ge transfer format
forwarding_one=Bir s黵ede bir
forwarding_many=莖k
forwarding_in=Ayn zamandaki en 鏾k b鰈ge transferi
forwarding_err=G鰊derim ve Transfer se鏴neklerinin kaydedilmesinde hata olu⺶u
forwarding_emins=Kay齪 ya da yanl en 鏾k transfer s黵esi
forwarding_etrans=Kay齪 ya da yanl, ayn zamandaki en 鏾k b鰈ge transferi say齭
forwarding_minutes=dakika

net_title=Adresler ve Topoloji
net_ecannot=Adres ve topoloji se鏴neklerinin de餴⺶irilmesinde hata olu⺶u
net_header=Genel adres ve topoloji se鏴nekleri
net_listen=Dinlenilen port ve adresler
net_below=Takip eden listede..
net_port=Port
net_addrs=Adresler
net_saddr=Sorgulama i鏸n kaynak IP adresi
net_sport=Sorgulama i鏸n kaynak port
net_topol=輘im sunucusu se鏸m topolojisi
net_err=Adres ve topoloji se鏴neklerinin kaydedilmesinde hata olu⺶u
net_eport='$1' ge鏴rli bir port numaras de餴l

misc_title=莈㱮tli Se鏴nekler
misc_ecannot=莈㱮tli se鏴nekleri kaydetmek i鏸n izininiz yoktur
misc_header=莈㱮tli genel se鏴nekler
misc_core=En 鏾k 鏴kirdek kay齮 boyutu
misc_data=En 鏾k bilgi bellek kullan齧
misc_files=En 鏾k a琮k dosya say齭
misc_stack=En 鏾k y齨 bellek kullan齧
misc_clean=輕tal kay齮lar齨齨 temizlenmesi aras齨daki s黵e
misc_iface=Yeni aray鼁lerin kontrol edilmesi aras齨daki s黵e
misc_stats=Kay齮 ifadeleri aras齨daki s黵e
misc_recursion=輘temciler i鏸n rek黵sif baklar齨 tamam yap齦s齨 m?
misc_cnames=Bir isim i鏸n 鏾klu CNAME takma isimlerine izin verilsin?
misc_glue=Ba瘕ml kay齮lar tut?
misc_nx=Yan齮lamalarda AA bit onaylamas kurulsun?
misc_err=莈㱮tli se鏴neklerin kaydedilmesinde hata olu⺶u
misc_esize='$1' ge鏴rli bir boyut de餴l
misc_efiles='$1' ge鏴rli bir en 鏾k dosya say齭 de餴l
misc_emins='$1' ge鏴rli bir dakika say齭 de餴l
misc_mins=dakika

zonedef_title=B鰈ge 謓tan齧lamalar
zonedef_msg=Yeni ana b鰈ge i鏸n 鰊tan齧lamalar
zonedef_err=B鰈ge 鰊tan齧l齦ar齨齨 kaydedilmesinde hata olu⺶u
zonedef_ecannot=Ana b鰈ge 鰊tan齧l齦ar齨 de餴⺶irmek i鏸n izininiz yoktur
zonedef_msg2=謓tan齧l b鰈ge 鰖ellikleri
zonedef_transfer=Transferlere izin ver..
zonedef_query=Sorgulamalara izin ver..
zonedef_cmaster=Ana b鰈gelerde isimler kontrol edilsin?
zonedef_cslave=Alt b鰈gelerde isimler kontrol edilsin?
zonedef_cresponse=Yan齮larda isimler kontrol edilsin?
zonedef_notify=Alt b鰈gelerin de餴⺶irilmesi bildirilsin?
zonedef_secs=saniye

efirst=$1 sat齬齨da k鰐 ilk komut, $2'de

findfree_title=Bo IP Arama
findfree_desc=Bo IP'leri Arar.
findfree_nofind=Bo IP'leri arayamazs齨齴
findfree_header=$1 'de
findfree_sopt=Arama Se鏴nekleri
findfree_IPrange=IP Aral
findfree_from=Nereden
findfree_to=Nereye
findfree_cf=<em>'freeXXX'</em> makine adlar bo IP olarak de餰relendirilsin mi?
findfree_search=Ara

log_servers=Di餰r DNS sunucular de餴⺶irildir
log_logging=Kay齮 ve hatalar de餴⺶irildi
log_acls=Giri kontrol listeleri de餴⺶irildi
log_files=Dosya ve dizinler de餴⺶irildi
log_forwarding=Geri d鰊d黵me ve transferler de餴⺶irildi
log_net=Adresler ve topoloji de餴⺶irildi
log_misc=莈㱮tli se鏴nekler de餴⺶irildi
log_zonedef=B鰈ge 鰊tan齧l齦ar de餴⺶irildi
log_apply=De餴㱮klikler uyguland
log_start=DNS sunucusu baat齦d
log_master=Ana b鰈ge $1 olu⺶uruldu
log_slave=Alt b鰈ge $1 olu⺶uruldu
log_stub=Stub b鰈ge $1 olu⺶uruldu
log_forward=輑eri b鰈ge $1 olu⺶uruldu
log_delete_master=Ana b鰈ge $1 silindi
log_delete_slave=Alt b鰈ge $1 silindi
log_delete_stub=Stub b鰈ge $1 silindi
log_delete_forward=輑eri b鰈ge $1 silindi
log_text=$1 i鏸n kay齮lar elle de餴⺶irildi
log_soa=$1 i鏸n b鰈ge parametreleri de餴⺶irildi
log_opts=$1 i鏸n b鰈ge se鏴nekleri de餴⺶irildi
log_delete_record=B鰈ge $3'de $2 kayd齨daki $1 silindi
log_create_record=B鰈ge $3'de $2 kayd齨daki $1 olu⺶uruldu
log_modify_record=B鰈ge $3'de $2 kayd齨daki $1 de餴⺶irildi
log_boot=Birincil yap齦and齬ma dosyas olu⺶uruldu

  0707010002597b000081a40000000000000002000000013ac0389b00002d8c000000200000000000000000000000000000001700000003reloc/bind8/lang/zh_CN    index_title=BIND 8 DNS 服务器
index_enamed=系统中的 BIND 8 DNS 服务$1没有找到.可能是没有安装或者<a href='$2'>BIND 8 模块配置</a> 错误.
index_eversion=服务执行 $1 似乎不是 BIND 8. 或许应该使用<a href='$2'>BIND 4 模块</a>.
index_eempty=BIND 8 $1 的主配制文件不存在 $1 不存在或错误,是否创建?
index_local=设置内部域名服务,非internet用户使用
index_download=设置为internet域名服务下载根服务器信息
index_webmin=设置为internet域名服务, 使用 Webmin 较早的根服务器信息
index_create=建立主配置文件启动域名服务
index_zones=当前 DNS 域
index_none=本服务器上没有设置DNS域
index_addmaster=建立主域
index_addslave=建立辅助域
index_addstub=建立缓冲域
index_addfwd=建立转发域
index_apply=应用
index_applymsg=单击此按钮重新运行 BIND 8 服务器. 当前配置生效
index_start=启动名字服务器
index_startmsg=单击此按钮运行 BIND 8 服务器, 并装载当前配置
index_zone=域
index_type=类型
index_master=主
index_slave=辅助
index_stub=缓冲
index_forward=转发
index_opts=服务器选项
index_return=域列表
index_toomany=您的系统有太多的区域要在这显示.
index_find=寻找匹配的区域:
index_search=搜索

master_title=编辑主域
master_ecannot=没有编辑本域的权限
master_manual=编辑记录文件
master_soa=编辑域参数
master_options=编辑域选项
master_del=删除域
master_delmsg=单击此按钮, 从你的 DNS 服务器中删除该域
master_delrev=从本服务器查询的匹配的反向地址记录也被删除.
master_tmpl=使用区域模板?
master_ip=模板记录的IP 地址
master_params=域参数
master_server=主服务器
master_ns=为主服务器增加 NS 记录
master_email=Email 地址
master_refresh=刷新时间
master_retry=发送重试时间
master_expiry=过期时间
master_minimum=缺省的活动时间
master_opts=域选项
master_check=检查名字?
master_notify=是否把变化通知辅助域?
master_update=允许更新自..
master_transfer=允许发送自..
master_query=允许查询自..
master_notify2=也通知辅助域..
master_type=类型
master_records=记录
master_return=记录类型
master_err=保存选项时失败
master_ero=没有更新域的权限
master_err2=更新域失败
master_emaster=错误的主服务器'$1'
master_eemail='错误的email地址 $1' 
master_erefresh=错误的刷新时间'$1' 
master_eretry=错误的发送重试时间'$1'
master_eexpiry=错误的过期时间'$1'
master_eminimum=错误的缺省 TTL '$1' 
master_edelete=没有删除这个域的权限
master_tmplrecs= 模板记录
master_name=记录名称
master_value=值
master_user=来自表
master_eip=丢失或无效的模板IP地址
master_eiptmpl=模板记录只能来自地址记录
master_esoacannot=您不能编辑域参数
master_eoptscannot=您不能编辑域选项
master_edeletecannot=您不能删除域
master_etaken=该域已存在

delete_title=删除域
delete_mesg=是否确信删除域$1 ? 所有的记录和域文件都会被删除
delete_rev=在其它域中向后删除记录 ?
delete_fwd=在其它域中向前删除记录 ?

mcreate_title=建立主域
mcreate_ecannot=不能建立主域
mcreate_opts=新建主域选项
mcreate_type=域类型
mcreate_fwd=正向 (名称解析为地址)
mcreate_rev=反向 (地址转化为名称)
mcreate_dom=域名 / 网络
mcreate_file=记录文件
mcreate_auto=自动
mcreate_err=建立域失败

slave_title=编辑辅助域
stub_title=编辑缓冲域
slave_ecannot=没有编辑该域的权限
slave_opts=域选项
slave_masters=主服务器
slave_max=最大传送时间
slave_file=记录文件
slave_check=检查名?
slave_notify=是否把变化通知辅助域?
slave_update=允许更新自..
slave_transfer=允许传送自..
slave_query=允许查询自..
slave_notify2=允许通知辅助域..
slave_none=无
slave_auto=自动
slave_err=保存选项失败
slave_emax=错误的最大传输时间 '$1'
slave_efile=丢失记录文件
slave_efile2=不是允许的记录文件'$1'
slave_mins=minutes

screate_title1=建立辅助域
screate_title2=建立缓冲域
screate_ecannot1=没有建立辅助域的权限
screate_ecannot2=没有建立缓冲域的权限
screate_header1=新建辅助域选项
screate_header2=新建缓冲域选项
screate_type=域类型
screate_fwd=正向解析 (名称解析为地址)
screate_rev=反向解析 (地址解析为名称)
screate_dom=域名 / 网络
screate_err1=建立辅助域失败
screate_err2=建立缓冲域失败

recs_ecannot=没有编辑本域中记录的权限
recs_title=$1 记录 
recs_header=在 $1 中
recs_addr=地址
recs_name=名称
recs_ttl=TTL
recs_comment=注释
recs_return=记录类型

edit_title=编辑 $1
edit_header=在 $1 中
edit_edit=编辑 $1 记录
edit_add=增加 $1 记录
edit_addr=地址
edit_name=名称
edit_zonename=域名
edit_ttl=存活时间
edit_comment=注释
edit_cnamemsg=绝对名必须以 . 结尾
edit_uprev=更新正向解析?
edit_upfwd=更新反向解析?
edit_err=保存记录失败
edit_ettl=错误的存活时间'$1'
edit_eip=错误的IP 地址'$1'
edit_eip6='$1' 不是一个有效的IPv6地址
edit_ehost=错误的主机名'$1'
edit_ename=错误的记录名'$1'
edit_edupip=$1的地址记录已经存在
edit_ens=错误的域名服务'$1'
edit_ecname=错误的别名目标 '$1'
edit_emx=错误的邮件服务'$1' 
edit_epri=错误的优先级'$1'
edit_ehard=丢失或错误的硬件类型
edit_eos=丢失或错误的操作系统类型
edit_eserv=不能输入任何已知服务类型
edit_ebadserv=该已知的服务器名称 '$1' 不正确
edit_eemail=错误的Email地址类型 '$1' 
edit_etxt=错误的文本记录名 '$1'
edit_efqdn='$1' 的名字太长
edit_elabel='$1' 中的一个列表太长
edit_eloc=丢失了经度和纬度
edit_return=记录

text_title=编辑记录文件
text_desc=该表单允许你手工编辑 DNS 记录文件 $1. Webmin不提供语法检查, 域序列号不会自动增加.
text_undo=撤消
text_ecannot=您不能编辑记录文件

restart_ecannot=不允许重新启动 BIND
restart_esig=信号处理失败 $1 : $2
start_ecannot=没有启动BIND的权限
start_error=启动 BIND:$1 失败

fwd_title=编辑转发域
fwd_ecannot=没有编辑该域的权限
fwd_opts=Zone 选项
fwd_masters=主服务器
fwd_forward=是否试用另一个服务器?
fwd_check=是否检查名称?
fwd_err=保存选项失败

fcreate_title=建立转发域
fcreate_ecannot=没有建立转发域的权限
fcreate_opts=新建转发域选项
fcreate_type=域类型
fcreate_fwd=正向解析(名称解析为地址)
fcreate_rev=反向解析(地址解析为名称)
fcreate_dom=域名/网络
fcreate_masters=主服务器
fcreate_err=建立转发域失败

create_enet=错误的网络'$1'
create_edom=错误的域名'$1'
create_edom2='$1'是域不是网络
create_efile=错误的文件名'$1'
create_efile2=不允许的域文件'$1'
create_efile3=建立'$1'失败 : $2
create_emaster=错误的主服务器地址'$1'
create_enone=至少输入一个主服务器

boot_err=下载失败

type_A=地址
type_AAAA=IPv6 地址  
type_NS=域名服务器
type_CNAME=域名别名
type_MX=邮件服务器
type_HINFO=主机信息
type_TXT=文本
type_WKS=已知服务
type_RP=可信理由
type_PTR=反向解析地址
type_LOC=位置

edit_A=地址
edit_AAAA=IPv6 地址
edit_NS=域名服务器
edit_CNAME=域名别名
edit_MX=邮件服务器
edit_HINFO=主机信息
edit_TXT=文本
edit_WKS=已知服务
edit_RP=可信理由
edit_PTR=反向解析地址
edit_LOC=位置

recs_A=地址
recs_AAAA=IPv6 地址
recs_NS=域名服务器
recs_CNAME=域名别名
recs_MX=邮件服务器
recs_HINFO=主机信息
recs_TXT=文本
recs_WKS=已知服务
recs_RP=可信理由
recs_PTR=反向解析地址
recs_LOC=位置

value_A1=地址
value_NS1=域名服务器
value_CNAME1=真名
value_MX1=优先级
value_MX2=邮件服务器
value_HINFO1=硬件
value_HINFO2=操作系统
value_TXT1=信息
value_WKS1=地址
value_WKS2=协议
value_WKS3=服务
value_RP1=Email 地址
value_RP2=文本记录
value_PTR1=主机名
value_LOC1=精度和纬度

warn=警告
fail=失败
ignore=忽略
default=缺省
minutes=分
seconds=秒
hours=小时
days=天
weeks=星期
listed=列表 ..
eip=错误的IP地址'$1'

acl_zones=本用户域可编辑
acl_zall=所有域
acl_zsel=已选择的..
acl_master=是否可编辑主域?
acl_slave=是否可建立 辅助/缓冲 域?
acl_forward=是否可建立转发域?
acl_defaults=是否可建立全局选项?
acl_reverse=是否在任何域都可以更新反向地址解析?
acl_multiple=是否一个IP可以对应多地址?
acl_ro=是否只读模式?
acl_apply=是否更新生效?
acl_dir=约束目录的域文件
acl_file=能够编辑记录文件吗?
acl_params=能够编辑域参数吗?
acl_opts=能够编辑域选项吗?
acl_delete=能够删除域吗?
acl_findfree=能搜索自由 IP 号吗?

servers_title=其它 DNS 服务器
servers_ip=IP 地址
servers_bogus=忽略伪装服务器?
servers_format=域传送格式
servers_trans=最大传送
servers_one=每次一个
servers_many=多个
servers_err=保存其他DNS服务器时失败
servers_eip=错误的IP地址'$'
servers_etrans=错误的最大传送数'$1'

logging_title=日志和错误
logging_ecannot=没有配置日志的权限
logging_header=全部日志和错误选项
logging_default1=使用 BIND 的缺省日志设置
logging_default2=使用如下设置 ..
logging_cats=日志分类
logging_cat=分类
logging_cchans=通道
logging_chans=日志通道
logging_cname=通道名称
logging_to=输出日志到
logging_file=文件
logging_fd=文件描述符
logging_versions=保持的版本
logging_ver1=无
logging_ver2=无限
logging_size=最大文件
logging_sz1=无限
logging_syslog=系统日志级别
logging_null=空的
logging_sev=最小信息级别
logging_any=任何
logging_debug=调试级 ..
logging_dyn=全局级
logging_pcat=日志中记录分类
logging_psev=日志中记录服务类型
logging_ptime=日志中记录日期和时间
logging_add=添加新的通道
logging_none=没有已建通道
logging_err=保存日志选项失败
logging_ename=错误的通道名'$1'
logging_efile=丢失日志文件名
logging_ever=错误版本'$1'
logging_esize=错误日志大小'$1'

acls_title=访问控制列表
acls_ecannot=没有编辑全局访问控制列表的权限
acls_name=访问控制列表名称
acls_values=匹配地址,网络和访问控制列表
acls_err=保存控制列表失败
acls_ename=错误的访问控制列表名称'$1'

files_title=文件和目录
files_ecannot=没有配置文件的权限
files_header=全部文件和目录选项
files_stats=统计输出文件
files_dump=数据库 dump 文件
files_pid=进程 ID 文件
files_xfer=路径到域的传送程序
files_err=保存文件和目录选项失败
files_efile=丢失或错误的文件名

forwarding_title=转发和转换
forwarding_ecannot=没有编辑正向解析和传送选项的权限
forwarding_header=全部转发和转换选项
forwarding_fwders=正向解析查询服务器
forwarding_fwd=正向地址解址无效时使用文件解析
forwarding_max=传送时间的最大域
forwarding_format=域传送格式
forwarding_one=每次一个
forwarding_many=多个
forwarding_in=最大并行传送的域
forwarding_err=保存正向地址解析和传送选项失败
forwarding_emins=丢失或错误的最大传输时间
forwarding_etrans=丢失或错误的最大并行传输
forwarding_minutes=分钟

net_title=地址和拓扑
net_ecannot=没有编辑地址和拓扑选项的权限
net_header=全部地址和拓扑选项
net_listen=监听的地址和端口
net_below=如下列表..
net_port=端口
net_addrs=地址
net_saddr=查询的源地址
net_sport=查询的源端口
net_topol=域名服务的拓扑结构
net_err=保存地址和拓扑选项失败
net_eport=错误的端口号'$1'

misc_title=杂项
misc_ecannot=没有编辑杂项选项的权限
misc_header=杂项
misc_core=最大内核dump大小
misc_data=最多使用的数据内存
misc_files=最多打开的文件
misc_stack=最多栈使用的内存
misc_clean=清除过期记录间隔时间
misc_iface=检查新接口的时间间隔
misc_stats=日志更新的时间间隔
misc_recursion=是否客户查询使用递归?
misc_cnames=是否一个名称允许多CNAME别名?
misc_glue=是否获取 glue 记录?
misc_nx=回应是否设置权限AA位?
misc_err=保存杂项选择失败
misc_esize=错误大小'$1'
misc_efiles=错误的最多打开文件数'$1'
misc_emins=错误的分钟数'$1'
misc_mins=分钟

zonedef_title=缺省区域
zonedef_msg=设置新主域为缺省值
zonedef_err=保存域缺省值失败
zonedef_ecannot=没有改变主域缺省值的权限
zonedef_msg2=缺省域设置
zonedef_transfer=允许传送自..
zonedef_query=允许查询自..
zonedef_cmaster=在主域中查询名称?
zonedef_cslave=在辅助域中查询名称?
zonedef_cresponse=在回应中查询名称?
zonedef_notify=变化通知辅助域?

find_title=找到域
find_match=正在将域与$1相匹配..
find_none=没找到域

efirst=错误的第一条指令在 $2 中 $1 行

findfree_title=找到自由 IPs 
findfree_desc=找到自由 IPs
findfree_nofind=您不能搜索自由 IPs
findfree_header=在 $1 中
findfree_sopt=搜索选项
findfree_IPrange=IP 范围
findfree_from=从
findfree_to=到
findfree_cf=将 <em>`freeXXX'</em> 客户名看作自由 IP's
findfree_search=搜索

log_servers=已改变的其它 DNS 服务器
log_logging=已改变的日志和错误
log_acls=已改变的访问控制列表
log_files=已改变的文件和目录
log_forwarding=被改变的前移和变换
log_net=被改变的地址和拓扑空间
log_misc=被改变的其它选项
log_zonedef=被改变的缺省域
log_apply=已应用改变值
log_start=启动了 DNS 服务器
log_master=创建了主域$1
log_slave=创建了辅域$1
log_stub=创建了剩余域$1
log_forward=创建了前域$1
log_delete_master=删除了主域$1
log_delete_slave=删除了辅域$1
log_delete_stub=删除了剩余域$1
log_delete_forward=删除了前域$1
log_text=为 $1 手工编辑的记录
log_soa=为 $1 改变的域参数$1
log_opts=为 $1 改变的域选项
log_delete_record=在 $3 中删除 $1,记录 $2
log_create_record=在 $3 中创建 $1,记录 $2
log_modify_record=在 $3 中更新 $1,记录 $2
log_boot=创建初始配置文件
0707010002597c000081a40000000000000002000000013ac0389b00002a28000000200000000000000000000000000000001c00000003reloc/bind8/lang/zh_TW.Big5   index_title=BIND 8 DNS 狝竟
index_enamed=眤╰参тぃ BIND 8 DNS 狝竟 $1. 琌﹟ゼ砆杆, ┪眤 <a href='$2'>BIND 8 家舱舱篈</a>琌岿粇.
index_eversion=狝竟磅︽郎 $1 癬ㄓぃ钩琌 BIND 8. 眤ゲ斗ㄏノ <a href='$2'>BIND 4 家舱</a>.
index_eempty=BIND Version 8 $1 璶舱篈郎ぃ, ┪琌岿粇. 琌璶ミ?
index_local=砞﹚嘿狝竟度ㄑず场 (礚呼悔呼隔硈挡) ㄏノ
index_download=砞﹚Θ呼悔呼隔嘿狝竟, 更狝竟戈癟
index_webmin=砞﹚Θ呼悔呼隔嘿狝竟, ㄏノ Webmin ┮矗ㄑ耕侣狝竟戈癟
index_create=ミ璶舱篈郎币笆嘿狝竟
index_zones=瞷 DNS 跋办
index_none=硂嘿狝竟⊿Τ﹚竡 DNS 跋办
index_addmaster=ミ穝北跋办
index_addslave=ミ穝砆北跋办
index_addstub=ミ穝纗跋办
index_addfwd=ミ穝锣癳跋办
index_apply=甅ノ跑
index_applymsg=硂秙穝币笆 BIND 8 狝竟. 硂ㄏヘ玡舱篈ネ
index_start=币笆嘿狝竟
index_startmsg=硂秙币笆 BIND 8 狝竟, 更ヘ玡舱篈
index_zone=跋办
index_type=摸
index_master=北
index_slave=砆北
index_stub=纗
index_forward=锣癳
index_opts=狝竟办匡兜
index_return=跋办

master_title=絪胯璶跋办
master_ecannot=眤ぃ砆す砛絪胯硂跋办
master_manual=絪胯魁郎
master_soa=絪胯跋办把计
master_options=絪胯跋办匡兜
master_del=埃跋办
master_delmsg=硂秙眖眤 DNS 狝竟い埃硂跋办.
master_delrev=硂狝竟ㄤ跋办い癸莱は琩戈穦砆埃.
master_tmpl=琌ㄏノ跋办家狾?
master_ip=琌家狾魁いㄏノ IP ?
master_params=跋办把计
master_server=北狝竟
master_email=筿秎ン
master_refresh=穝丁
master_retry=肚块刚丁
master_expiry=筁戳丁
master_minimum=箇砞丁
master_opts=跋办匡兜
master_check=琌浪琩嘿?
master_notify=硄砆北狝竟跑?
master_update=す砛眖 ... 穝
master_transfer=す砛眖 ... 肚块
master_query=す砛眖 ... 琩高
master_notify2=硄砆北狝竟 ...
master_type=摸
master_records=魁
master_return=魁摸
master_err=纗匡兜ア毖
master_ero=眤ぃ砆す砛穝跋办
master_err2=穝跋办ア毖
master_emaster='$1' ぃ琌Τ北狝竟
master_eemail='$1' ぃ琌Τ筿秎ン
master_erefresh='$1' ぃ琌Τ穝丁
master_eretry='$1' ぃ琌Τ肚块刚丁
master_eexpiry='$1' ぃ琌Τ筁戳丁
master_eminimum='$1' ぃ琌Τ箇砞丁
master_edelete=眤ぃ砆す砛埃硂跋办
master_tmplrecs=家狾魁
master_name=魁嘿
master_value=计
master_user=ㄓ方虫
master_eip=框ア┪岿粇家狾 IP 
master_eiptmpl=家狾魁计度ㄓ魁
master_esoacannot=眤ぃ砆す砛絪胯跋办把计
master_eoptscannot=眤ぃ砆す砛絪胯跋办匡兜
master_edeletecannot眤ぃ砆す砛埃跋办

delete_title=埃跋办
delete_mesg=眤絋﹚璶埃跋办 $1 盾? ┮Τ魁籔硂跋办郎常盢砆埃.
delete_rev=琌埃ㄤ跋办いは琩魁?
delete_fwd=琌埃ㄤ跋办いタ魁?

mcreate_title=ミ北跋办
mcreate_ecannot=眤ぃミ北跋办
mcreate_opts=穝北跋办匡兜
mcreate_type=跋办摸
mcreate_fwd=タ (嘿)
mcreate_rev=は琩 (嘿)
mcreate_dom=呼办嘿 / 呼隔
mcreate_file=魁郎
mcreate_auto=笆
mcreate_err=ミ跋办ア毖

slave_title=絪胯砆北跋办
stub_title=絪胯纗跋办
slave_ecannot=眤ぃ砆す砛絪胯硂跋办
slave_opts=跋办匡兜
slave_masters=北狝竟
slave_max=程肚块丁
slave_file=魁郎
slave_check=琌浪琩嘿?
slave_notify=硄砆北狝竟跑?
slave_update=す砛眖 ... 穝
slave_transfer=す砛眖 ... 肚块
slave_query=す砛眖 ... 琩高
slave_notify2=硄砆北狝竟 ...
slave_none=礚
slave_auto=笆
slave_err=纗匡兜ア毖
slave_emax='$1' ぃ琌Τ程肚块丁
slave_efile=框ア魁郎
slave_efile2='$1' ぃ琌钡魁郎

screate_title1=ミ砆北跋办
screate_title2=ミ纗跋办
screate_ecannot1=眤ぃ砆す砛ミ砆北跋办
screate_ecannot2=眤ぃ砆す砛ミ纗跋办
screate_header1=穝砆北跋办匡兜
screate_header2=穝纗跋办匡兜
screate_type=跋办摸
screate_fwd=タ (嘿)
screate_rev=は琩 (嘿)
screate_dom=呼办嘿 / 呼隔
screate_err1=礚猭ミ砆北跋办
screate_err2=礚猭ミ纗跋办

recs_ecannot=眤ぃ砆す砛絪胯硂跋办い魁
recs_title=$1 魁
recs_header= $1
recs_addr=
recs_name=嘿
recs_ttl=丁
recs_return=魁摸

edit_title=絪胯 $1
edit_header= $1
edit_edit=絪胯 $1 魁
edit_add=糤 $1 魁
edit_addr=搐
edit_name=嘿
edit_ttl=丁
edit_cnamemsg=荡癸嘿ゲ斗 '.' 挡Ю
edit_uprev=琌穝は琩戈?
edit_upfwd=琌穝タ戈?
edit_err=礚猭纗魁
edit_ettl='$1' ぃ琌Τ丁
edit_eip='$1' ぃ琌Τ IP 
edit_ehost='$1' ぃ琌Τ璶诀嘿
edit_ename='$1' ぃ琌Τ魁嘿
edit_edupip=$1 魁竒
edit_ens='$1' ぃ琌Τ嘿狝竟
edit_ecname='$1' ぃ琌Τヘ夹
edit_emx='$1' ぃ琌Τ秎ン狝竟
edit_epri='$1' ぃ琌Τ纔
edit_ehard=框ア┪岿粇祑砰摸
edit_eos=框ア┪岿粇穨╰参摸
edit_eserv=眤⊿Τ块ヴ狝叭
edit_eemail='$1' ぃ琌Τ筿秎ン
edit_etxt='$1' ぃ琌Τゅ魁嘿
edit_return=魁

text_title=絪胯魁郎
text_desc=硂虫す砛眤も笆絪胯 DNS 魁郎 $1. Webmin 盢ぃ穦秈︽ヴ粂猭浪琩, τ跋籔郎腹ぃ穦笆糤.
text_undo=確
text_ecannot=眤ぃ砆す絪胯魁郎

restart_ecannot=眤ぃ砆す砛穝币笆 BIND
restart_esig=癳癟腹倒祘ア毖 $1 : $2
start_ecannot=眤ぃ砆す币笆 BIND
start_error=币笆 BIND ア毖 : $1

fwd_title=絪胯锣癳跋办
fwd_ecannot=眤ぃ砆す砛絪胯硂跋办
fwd_opts=跋办匡兜
fwd_masters=北狝竟
fwd_forward=琌沽刚ㄤ狝竟?
fwd_check=琌浪琩嘿?
fwd_err=纗匡兜ア毖

fcreate_title=ミ锣癳跋办
fcreate_ecannot=眤ぃ砆すミ锣癳跋办
fcreate_opts=穝锣癳跋办匡兜
fcreate_type=跋办摸
fcreate_fwd=タ (嘿)
fcreate_rev=は琩 (嘿)
fcreate_dom=呼办嘿 / 呼隔
fcreate_masters=北狝竟
fcreate_err=ミ锣癳跋办ア毖

create_enet='$1' ぃ琌Τ呼隔
create_edom='$1' ぃ琌Τ呼办嘿
create_edom2='$1'ゲ斗琌呼籔嘿, τぃ琌呼隔
create_efile='$1' ぃ琌Τ郎嘿
create_efile2='$1' ぃ琌钡跋办郎
create_efile3=礚猭ミ '$1' : $2
create_emaster='$1' ぃ琌Τ北狝竟
create_enone=眤ぶゲ斗块北狝竟

boot_err=更ア毖

type_A=
type_NS=嘿狝竟
type_CNAME=
type_MX=秎ン狝竟
type_HINFO=诀戈癟
type_TXT=ゅ
type_WKS=狝叭
type_RP=璽砫
type_PTR=は琩

edit_A=
edit_NS=嘿狝竟
edit_CNAME=
edit_MX=秎ン狝竟
edit_HINFO=诀戈癟
edit_TXT=ゅ
edit_WKS=狝叭
edit_RP=璽砫
edit_PTR=は琩

recs_A=
recs_NS=嘿狝竟
recs_CNAME=
recs_MX=秎ン狝竟
recs_HINFO=诀戈癟
recs_TXT=ゅ
recs_WKS=狝叭
recs_RP=璽砫
recs_PTR=は琩

value_A1=
value_NS1=嘿狝竟
value_CNAME1=痷龟嘿
value_MX1=纔
value_MX2=秎ン狝竟
value_HINFO1=祑砰
value_HINFO2=穨╰参
value_TXT1=癟
value_WKS1=
value_WKS2=﹚
value_WKS3=狝叭
value_RP1=筿秎ン
value_RP2=ゅ魁
value_PTR1=诀嘿

warn=牡
fail=ア毖
ignore=┛菠
default=箇砞
listed=菏钮 ...
eip='$1' ぃ琌Τ IP 

acl_zones=硂ㄏノ絪胯呼办
acl_master=琌ミ北跋办?
acl_slave=琌ミ 砆北/纗 跋办?
acl_forward=琌ミ锣癳跋办?
acl_defaults=琌絪胯办匡兜?
acl_reverse=琌穝ヴ種呼办いは琩?
acl_multiple=琌盢倒 IP?
acl_ro=琌斑弄家Α?
acl_apply=琌甅ノ跑?
acl_dir=跋办郎ヘ魁
acl_file=琌絪胯魁郎?
acl_params=琌絪胯跋办把计?
acl_opts=琌絪胯跋办匡兜?
acl_delete=琌埃跋办?

servers_title=ㄤ DNS 狝竟
servers_ip=IP 
servers_bogus=琌┛菠鞍硑狝竟?
servers_format=跋办肚块Α
servers_trans=程肚块秖
servers_one=Ω
servers_many=Ω
servers_err=纗ㄤ DNS 狝竟ア毖
servers_eip='$1' ぃ琌Τ IP 
servers_etrans='$1' ぃ琌Τ程肚块秖

logging_title=魁籔岿粇
logging_ecannot=眤ぃ砆す砛舱篈魁
logging_header=办魁籔岿粇匡兜
logging_default1=ㄏノ BIND 箇砞魁砞﹚
logging_default2=ㄏノ魁 ...
logging_cats=魁だ摸
logging_cat=だ摸
logging_cchans=繵笵
logging_chans=魁繵笵
logging_cname=繵笵嘿
logging_to=魁
logging_file=郎
logging_fd=郎磞瓃
logging_versions=玂痙セ
logging_ver1=礚
logging_ver2=ぃ
logging_size=程郎
logging_sz1=ぃ
logging_syslog=魁糷
logging_null=礚
logging_sev=程魁糷
logging_any=ヴ種
logging_debug=埃岿糷 ...
logging_dyn=办糷
logging_pcat=魁だ摸
logging_psev=魁腨┦
logging_ptime=魁ら戳籔丁
logging_add=糤穝繵笵
logging_none=﹟ゼ﹚竡魁繵笵.
logging_err=纗魁匡兜ア毖
logging_ename='$1' ぃ琌Τ繵笵嘿
logging_efile=框ア魁郎郎
logging_ever='$1' ぃ琌Τセ絪腹
logging_esize='$1' ぃ琌Τ魁

acls_title=北
acls_ecannot=眤ぃ砆す砛絪胯办北
acls_name=北嘿
acls_values=才, 呼隔籔北
acls_err=礚猭纗北
acls_ename='$1' ぃ琌Τ北嘿

files_title=郎籔ヘ魁
files_ecannot=眤ぃ砆す砛舱篈郎
files_header=办郎籔ヘ魁匡兜
files_stats=参璸块郎
files_dump=戈畐渡郎
files_pid=祘絪腹郎
files_xfer=跋办肚块祘Α隔畖
files_err=礚猭纗郎籔ヘ魁匡兜
files_efile=框ア┪岿粇郎

forwarding_title=锣癳籔肚块
forwarding_ecannot=眤ぃ砆す砛絪胯锣癳籔肚块匡兜
forwarding_header=办锣癳籔跋籔肚块匡兜
forwarding_fwders=锣癳琩高狝竟
forwarding_fwd=狦锣癳狝竟⊿Τ莱, 钡琩高狝竟
forwarding_max=程跋办肚块丁
forwarding_format=跋办肚块Α
forwarding_one=Ω
forwarding_many=Ω
forwarding_in=程跋办肚块计ヘ
forwarding_err=礚猭纗锣癳籔肚块匡兜
forwarding_emins=框ア┪岿粇肚块丁
forwarding_etrans=框ア┪岿粇程肚块计ヘ

net_title=籔┹倦
net_ecannot=眤ぃ砆す砛絪胯籔┹倦
net_header=办籔┹倦匡兜
net_listen=璶菏钮籔硄癟梆
net_below=...
net_port=硄癟梆
net_addrs=
net_saddr=琩高ㄓ方 IP 
net_sport=琩高ㄓ方硄癟梆
net_topol=嘿狝竟匡拒┹倦
net_err=礚猭纗籔┹倦匡兜
net_eport='$1' ぃ琌Τ硄癟梆絪腹

misc_title=ㄤ匡兜
misc_ecannot=眤ぃ砆す砛絪胯ㄤ匡兜
misc_header=ㄤ办办匡兜
misc_core=程み渡郎
misc_data=程戈癘拘砰ㄏノ秖
misc_files=程秨币郎计
misc_stack=程既癘拘砰ㄏノ秖
misc_clean=睲埃筁戳魁丁筳
misc_iface=浪琩穝ざ丁筳
misc_stats=魁篈丁筳
misc_recursion=琌め狠秈︽Ч俱患癹琩高?
misc_cnames=琌す砛 CNAME 倒嘿?
misc_glue=琌硈钡魁?
misc_nx=琌莱砞﹚粄靡 AA じ?
misc_err=礚猭纗ㄤ匡兜
misc_esize='$1' ぃ琌Τ
misc_efiles='$1' ぃ琌Τ程秨币郎计ヘ
misc_emins='$1' ぃ琌Τだ牧计

zonedef_title=跋办箇砞
zonedef_msg=倒穝北跋办箇砞
zonedef_err=礚猭纗跋办箇砞
zonedef_ecannot=眤ぃ砆す砛跑北跋办箇砞
zonedef_msg2=箇砞跋办砞﹚
zonedef_transfer=す砛眖 ... 肚块
zonedef_query=す砛眖 ... 琩高
zonedef_cmaster=琌浪琩北狝竟い嘿?
zonedef_cslave=琌浪琩砆北跋办い嘿?
zonedef_cresponse=琌浪琩嘿琌Τ莱?
zonedef_notify=琌硄砆北狝竟跑?

efirst= $2 材 $1 ︽Τ岿粇材
0707010001fceb000081a40000000000000002000000013ac0389b000004b0000000200000000000000000000000000000001a00000003reloc/bind8/log_parser.pl # log_parser.pl
# Functions for parsing this module's logs

require './bind8-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p) = @_;
if ($type eq 'record') {
	if ($p->{'type'} eq 'PTR') {
		return &text("log_${action}_record", $text{"type_$p->{'type'}"},
			     "<tt>".&arpa_to_ip($p->{'name'})."</tt>",
			     "<tt>".&arpa_to_ip($object)."</tt>");
		}
	else {
		$p->{'name'} =~ s/\.$object\.*$//;
		return &text("log_${action}_record", $text{"type_$p->{'type'}"},
			     "<tt>$p->{'name'}</tt>", "<tt>$object</tt>");
		}
	}
elsif ($action eq 'create') {
	return &text("log_${type}", "<tt>$object</tt>");
	}
elsif ($action eq 'delete') {
	return &text("log_delete_${type}", "<tt>$object</tt>");
	}
elsif ($action eq 'text') {
	return &text("log_text", "<tt>$object</tt>");
	}
elsif ($action eq 'soa') {
	return &text("log_soa", "<tt>$object</tt>");
	}
elsif ($action eq 'opts') {
	return &text("log_opts", "<tt>$object</tt>");
	}
elsif ($text{"log_${action}"}) {
	return $text{"log_${action}"};
	}
else {
	return undef;
	}
}

0707010001fcec000081e40000000000000002000000013ac0389a00000a7a000000200000000000000000000000000000001c00000003reloc/bind8/master_form.cgi   #!/usr/local/bin/perl
# master_form.cgi
# Form for creating a new master zone

require './bind8-lib.pl';
&ReadParse();
%access = &get_module_acl();
$access{'master'} || &error($text{'mcreate_ecannot'});
&header($text{'mcreate_title'}, "");
print "<hr>\n";

print "<form action=create_master.cgi>\n";
print "<table border width=100%>\n";
print "<tr> <td $tb><b>$text{'mcreate_opts'}</b></td> </tr>\n";
print "<tr> <td $cb><table width=100%>\n";

print "<tr> <td><b>$text{'mcreate_type'}</b></td>\n";
print "<td colspan=3><input type=radio name=rev value=0 checked>\n";
print "$text{'mcreate_fwd'}\n";
print "&nbsp;&nbsp;<input type=radio name=rev value=1>\n";
print "$text{'mcreate_rev'}</td> </tr>\n";

print "<tr> <td><b>$text{'mcreate_dom'}</b></td>\n";
print "<td colspan=3><input name=zone size=40></td> </tr>\n";

print "<tr> <td><b>$text{'mcreate_file'}</b></td> <td colspan=3>\n";
print "<input type=radio name=file_def value=1 checked> ",
      "$text{'mcreate_auto'}\n";
print "<input type=radio name=file_def value=0>\n";
print "<input name=file size=30>",&file_chooser_button("file"),"</td> </tr>\n";

print "<tr> <td><b>$text{'master_server'}</b></td>\n";
printf "<td colspan=3><input name=master size=30 value=\"%s\">\n",
	&get_system_hostname();
printf "<input type=checkbox name=master_ns value=1 checked> %s</td> </tr>\n",
	$text{'master_ns'};

print "<tr> <td><b>$text{'master_email'}</b></td>\n";
print "<td colspan=3><input name=email size=40></td> </tr>\n";

print "<tr> <td><b>$text{'master_tmpl'}</b></td>\n";
print "<td><input type=radio name=tmpl value=1> $text{'yes'}\n";
print "<input type=radio name=tmpl value=0 checked> $text{'no'}</td>\n";
print "<td><b>$text{'master_ip'}</b></td>\n";
print "<td><input name=ip size=15></td> </tr>\n";

&get_zone_defaults(\%zd);
print "<tr> <td><b>$text{'master_refresh'}</b></td>\n";
print "<td><input name=refresh size=8 value=$zd{'refresh'}>\n";
&time_unit_choice("refunit", $zd{'refunit'});
print "</td>\n";

print "<td><b>$text{'master_retry'}</b></td>\n";
print "<td><input name=retry size=8 value=$zd{'retry'}>\n";
&time_unit_choice("retunit", $zd{'retunit'});
print "</td> </tr>\n";

print "<tr> <td><b>$text{'master_expiry'}</b></td>\n";
print "<td><input name=expiry size=8 value=$zd{'expiry'}>\n";
&time_unit_choice("expunit", $zd{'expunit'});
print "</td>\n";

print "<td><b>$text{'master_minimum'}</b></td>\n";
print "<td><input name=minimum size=8 value=$zd{'minimum'}>\n";
&time_unit_choice("minunit", $zd{'minunit'});
print "</td> </tr>\n";

print "</table></td></tr></table><br>\n";
print "<input type=submit value=\"$text{'create'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

  0707010001fced000081a40000000000000002000000013ac0389a00000235000000200000000000000000000000000000001800000003reloc/bind8/module.info   desc_zh_CN=BIND 8 DNS 服务器
name=BIND
desc_pt=Servidor de DNS BIND
desc_tr=BIND DNS Sunucusu
desc_fr=Serveur de Noms de Domaine Bind
desc_es=Servidor de DNS BIND
desc_de=BIND DNS Server
desc_sv=BIND DNS-server
desc_ru_SU=BIND DNS 笈易乓
desc_pl=Serwer DNS BIND
category=servers
os_support=slackware-linux redhat-linux solaris debian-linux suse-linux hpux freebsd osf1 irix unixware openserver macos open-linux turbo-linux openbsd corel-linux cobalt-linux/5.0 aix
desc_zh_TW.Big5=BIND DNS 狝竟
desc=BIND DNS Server
risk=low medium high
desc_ru_RU=BIND DNS 彦疴屦
   0707010001fcee000081a40000000000000002000000013ac0389b00002ed8000000200000000000000000000000000000001b00000003reloc/bind8/records-lib.pl    # read_zone_file(file, origin)
# Reads a DNS zone file and returns a data structure of records. The origin
# must be a domain without the trailing dot, or just .
sub read_zone_file
{
local($file, $lnum, $line, $t, @tok, @lnum, @coms,
      $i, @rv, $origin, $num, $j, @inc, @oset, $comment);
$origin = $_[1];
$file = &absolute_path($_[0]);
open(FILE, $config{'chroot'}.$file);
$lnum = 0;
while($line = <FILE>) {
	local($glen, $merged_2, $merge);
	# strip comments (# is not a valid comment separator here!)
	$line =~ s/\r|\n//g;
	# parsing splited into separate cases to fasten it
	if ($line =~ /;/ &&
	    ($line =~ /[^\\]/ &&
	     $line =~ /^((?:[^;\"]+|\"\"|(?:\"(?:[^\"]*)\"))*);(.*)/) ||
	    ($line =~ /[^\"]/ &&
	     $line =~ /^((?:[^;\\]|\\.)*);(.*)/) ||
	     # expresion below is the most general, but very slow 
	     # if ";" is quoted somewhere
	     $line =~ /^((?:(?:[^;\"\\]|\\.)+|(?:\"(?:[^\"\\]|\\.)*\"))*);(.*)/) {
		$comment = $2;
		$line = $1;
		}
	else { 
		$comment = "";
		}

	# split line into tokens
	local $oset = 0;
	while(1) {
		$merge = 1;
		$base_oset = 0;
		if ($line =~ /^(\s*)\"((?:[^\"\\]|\\.)*)\"(.*)/ ||
		    $line =~ /^(\s*)((?:[^\s\(\)\"\\]|\\.)+)(.*)/ ||
		    ($merge = 0) || $line =~ /^(\s*)([\(\)])(.*)/) {
			if ($glen == 0) {
				$oset += length($1);
				}
			else {
				$glen += length($1);
				}
			$glen += length($2);
			$merged_2 .= $2;
			$line = $3;
			if (!$merge || $line =~ /^([\s\(\)]|$)/) {
				push(@tok, $merged_2); push(@lnum, $lnum);
				push(@oset, $oset);
				push(@coms, $comment); $comment = "";
				$merged_2 = "";
				$oset += $glen;
				$glen = 0;
				}
			}
		else { last; }
		}
	$lnum++;
	}
close(FILE);

# parse into data structures
$i = 0; $num = 0;
while($i < @tok) {
	if ($tok[$i] =~ /^\$origin$/i) {
		# $ORIGIN directive (may be relative or absolute)
		if ($tok[$i+1] =~ /^(\S+)\.$/) {
			$origin = $1 ? $1 : ".";
			}
		elsif ($origin eq ".") { $origin = $tok[$i+1]; }
		else { $origin = "$tok[$i+1].$origin"; }
		$i += 2;
		}
	elsif ($tok[$i] =~ /^\$include$/i) {
		# including another file
		if ($lnum[$i+1] == $lnum[$i+2]) {
			# $INCLUDE zonefile origin
			local $inc_origin;
			if ($tok[$i+2] =~ /^(\S+)\.$/) {
				$inc_origin = $1 ? $1 : ".";
				}
			elsif ($origin eq ".") { $inc_origin = $tok[$i+2]; }
			else { $inc_origin = "$tok[$i+2].$origin"; }
			@inc = &read_zone_file($tok[$i+1], $inc_origin);
			$i += 3;
			}
		else {
			# $INCLUDE zonefile
			@inc = &read_zone_file($tok[$i+1], $origin);
			$i += 2;
			}
		foreach $j (@inc) { $j->{'num'} = $num++; }
		push(@rv, @inc);
		}
	elsif ($tok[$i] =~ /^\$(\S+)/i) {
		# some other special directive
		local $ln = $lnum[$i];
		while($lnum[$i] == $ln) {
			$i++;
			}
		}
	else {
		# some other directive
		local(%dir, @values, $l);
		$dir{'line'} = $lnum[$i];
		$dir{'file'} = $file;
		$dir{'comment'} = $coms[$i];
		if ($tok[$i] =~ /^(in|hs)$/i) {
			# starting with a class
			$dir{'class'} = uc($tok[$i]);
			$i++;
			}
		elsif ($tok[$i] =~ /^\d/ && $tok[$i] !~ /in-addr/i &&
		       $oset[$i] > 0) {
			# starting with a TTL and class
			$dir{'ttl'} = $tok[$i];
			$dir{'class'} = uc($tok[$i+1]);
			$i += 2;
			}
		elsif ($tok[$i+1] =~ /^(in|hs)$/i) {
			# starting with a name and class
			$dir{'name'} = $tok[$i];
			$dir{'class'} = uc($tok[$i+1]);
			$i += 2;
			}
		elsif ($oset[$i] > 0) {
			# starting with nothing
			$dir{'class'} = "IN";
			}
		elsif ($tok[$i+1] =~ /^\d/) {
			# starting with a name, ttl and class
			$dir{'name'} = $tok[$i];
			$dir{'ttl'} = $tok[$i+1];
			$dir{'class'} = uc($tok[$i+2]);
			$i += 3;
			}
		else {
			# starting with a name
			$dir{'name'} = $tok[$i];
			$dir{'class'} = "IN";
			$i++;
			}
		if ($dir{'name'} eq '') {
			$#rv >= 0 ||
				&error(&text('efirst', $lnum[$i]+1, $file));
			$dir{'name'} = $rv[$#rv]->{'name'};
			$dir{'realname'} = $rv[$#rv]->{'realname'};
			}
		else {
			$dir{'realname'} = $dir{'name'};
			}
		$dir{'type'} = uc($tok[$i++]);

		# read values until end of line (unless a ( is found)
		# for soa records, always read past newlines
		$l = $lnum[$i];
		while(($lnum[$i] == $l || $dir{'type'} eq 'SOA') && $i < @tok) {
			if ($tok[$i] eq "(") {
				while($tok[++$i] ne ")") {
					push(@values, $tok[$i]);
					}
				$i++; # skip )
				last;
				}
			push(@values, $tok[$i++]);
			}
		$dir{'values'} = \@values;
		$dir{'eline'} = $lnum[$i-1];
		if ($dir{'name'} eq "@") {
			$dir{'name'} = $origin eq "." ? "." : "$origin.";;
			}
		elsif ($dir{'name'} !~ /\.$/) {
			$dir{'name'} .= $origin eq "." ? "." : ".$origin.";
			}
		$dir{'num'} = $num++;
		push(@rv, \%dir);
		}
	}
return @rv;
}

# create_record(file, name, ttl, class, type, values, comment)
# Add a new record of some type to some zone file
sub create_record
{
open(ZONE, ">>".$config{'chroot'}.&absolute_path($_[0]));
print ZONE &make_record(@_[1..$#_]);
close(ZONE);
}

# modify_record(file, old, name, ttl, class, type, values, comment)
# Updates an existing record in some zone file
sub modify_record
{
local(@zone, $lines, $file);
$file = $config{'chroot'}.&absolute_path($_[0]);
open(ZONE, $file);
@zone = <ZONE>;
close(ZONE);
$lines = $_[1]->{'eline'} - $_[1]->{'line'} + 1;
splice(@zone, $_[1]->{'line'}, $lines, &make_record(@_[2..$#_]));
open(ZONE, "> $file");
print ZONE @zone;
close(ZONE);
}

# delete_record(file, old)
# Deletes a record in some zone file
sub delete_record
{
local(@zone, $lines, $file);
$file = $config{'chroot'}.&absolute_path($_[0]);
open(ZONE, $file);
@zone = <ZONE>;
close(ZONE);
$lines = $_[1]->{'eline'} - $_[1]->{'line'} + 1;
splice(@zone, $_[1]->{'line'}, $lines);
open(ZONE, "> $file");
print ZONE @zone;
close(ZONE);
}

# make_record(name, ttl, class, type, values, comment)
# Returns a string for some zone record
sub make_record
{
return $_[0] . ($_[1] ? "\t$_[1]" : "") . "\t$_[2]\t$_[3]\t$_[4]" .
       ($_[5] ? "\t;$_[5]" : "") . "\n";
}

# bump_soa_record(file, &records)
# Increase the serial number in some SOA record by 1
sub bump_soa_record
{
local($i, $r, $v, $vals);
for($i=0; $i<@{$_[1]}; $i++) {
	$r = $_[1]->[$i];
	if ($r->{'type'} eq "SOA") {
		$v = $r->{'values'};
		if ($config{'soa_style'} == 1 && $v->[2] =~ /^(\d{8})(\d\d)$/) {
			if ($1 eq &date_serial())
				{ $serial = sprintf "%d%2.2d", $1, $2+1; }
			else { $serial = &date_serial()."00"; }
			}
		else { $serial = $v->[2]+1; }
		$vals = "$v->[0] $v->[1] (\n\t\t\t$serial\n\t\t\t$v->[3]\n".
			"\t\t\t$v->[4]\n\t\t\t$v->[5]\n\t\t\t$v->[6] )";
		&modify_record($_[0], $r, $r->{'realname'}, $r->{'ttl'},
				$r->{'class'}, $r->{'type'}, $vals);
		}
	}
}



# date_serial()
# Returns a string like YYYYMMDD
sub date_serial
{
local $now = time();
local @tm = localtime($now);
return sprintf "%4.4d%2.2d%2.2d", $tm[5]+1900, $tm[4]+1, $tm[3];
}

# get_zone_defaults(&array)
sub get_zone_defaults
{
if (!&read_file("$module_config_directory/zonedef", $_[0])) {
	$_[0]->{'refresh'} = 10800; $_[0]->{'retry'} = 3600;
	$_[0]->{'expiry'} = 432000; $_[0]->{'minimum'} = 38400;
	$_[0]->{'refunit'} = ""; $_[0]->{'retunit'} = "";
	$_[0]->{'expunit'} = ""; $_[0]->{'minunit'} = "";
	}
else {
	$_[0]->{'refunit'} = $1 if ($_[0]->{'refresh'} =~ s/([^0-9])$//);
	$_[0]->{'retunit'} = $1 if ($_[0]->{'retry'} =~ s/([^0-9])$//);
	$_[0]->{'expunit'} = $1 if ($_[0]->{'expiry'} =~ s/([^0-9])$//);
	$_[0]->{'minunit'} = $1 if ($_[0]->{'minimum'} =~ s/([^0-9])$//);
	}
}

# save_zone_defaults(&array)
sub save_zone_defaults
{
&write_file("$module_config_directory/zonedef", $_[0]);
}

# allowed_zone_file(&access, file)
sub allowed_zone_file
{
return 0 if ($_[1] =~ /\.\./);
return 0 if (-l $_[1] && !&allowed_zone_file($_[0], readlink($_[1])));
local $l = length($_[0]->{'dir'});
return length($_[1]) > $l && substr($_[1], 0, $l) eq $_[0]->{'dir'};
}

# sort_records(list)
sub sort_records
{
return @_ if (!@_);
local $s = $in{'sort'} ? $in{'sort'} : $config{'records_order'};
if ($s == 1) {
	# Sort by name
	if ($_[0]->{'type'} eq "PTR") {
		return sort ptr_sort_func @_;
		}
	else {
		return sort { $a->{'name'} cmp $b->{'name'} } @_;
		}
	}
elsif ($s == 2) {
	# Sort by value
	if ($_[0]->{'type'} eq "A") {
		return sort ip_sort_func @_;
		}
	elsif ($_[0]->{'type'} eq "MX") {
		return sort { $a->{'values'}->[1] cmp $b->{'values'}->[1] } @_;
		}
	else {
		return sort { $a->{'values'}->[0] cmp $b->{'values'}->[0] } @_;
		}
	}
elsif ($s == 3) {
	# Sort by IP address or by value if there is no IP
	if ($_[0]->{'type'} eq "A") {
		return sort ip_sort_func @_;
		}
	elsif ($_[0]->{'type'} eq "PTR") {
		return sort ptr_sort_func @_;
		}
	elsif ($_[0]->{'type'} eq "MX") {
		return sort { $a->{'values'}->[1] cmp $b->{'values'}->[1] } @_;
		}
	else {
		return sort { $a->{'values'}->[0] cmp $b->{'values'}->[0] } @_;
		}
	}
else {
	return @_;
	}
}

sub ptr_sort_func
{
$a->{'name'} =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)/;
local ($a1, $a2, $a3, $a4) = ($1, $2, $3, $4);
$b->{'name'} =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)/;
return	$a4 < $4 ? -1 :
	$a4 > $4 ? 1 :
	$a3 < $3 ? -1 :
	$a3 > $3 ? 1 :
	$a2 < $2 ? -1 :
	$a2 > $2 ? 1 :
	$a1 < $1 ? -1 :
	$a1 > $1 ? 1 : 0;
}

sub ip_sort_func
{
$a->{'values'}->[0] =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)/;
local ($a1, $a2, $a3, $a4) = ($1, $2, $3, $4);
$b->{'values'}->[0] =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)/;
return	$a1 < $1 ? -1 :
	$a1 > $1 ? 1 :
	$a2 < $2 ? -1 :
	$a2 > $2 ? 1 :
	$a3 < $3 ? -1 :
	$a3 > $3 ? 1 :
	$a4 < $4 ? -1 :
	$a4 > $4 ? 1 : 0;
}

# arpa_to_ip(name)
# Converts an address like 4.3.2.1.in-addr.arpa. to 1.2.3.4
sub arpa_to_ip
{
if ($_[0] =~ /^([\d\-\.]+)\.in-addr\.arpa/i) {
	return join('.',reverse(split(/\./, $1)));
	}
return $_[0];
}

# ip_to_arpa(address)
# Converts an IP address like 1.2.3.4 to 4.3.2.1.in-addr.arpa.
sub ip_to_arpa
{
if ($_[0] =~ /^([\d\-\.]+)$/) {
	return join('.',reverse(split(/\./,$1))).".in-addr.arpa.";
	}
return $_[0];
}

# ip6int_to_net(name)
# Converts an address like a.b.c.d.4.3.2.1.ip6.int. to 1234:dcba::
sub ip6int_to_net
{
local($n, $addr = $_[0]);
if ($addr =~ /^([\da-f]\.)+ip6\.int/i) {
	$addr =~ s/\.ip6\.int/\./i;
	$addr = reverse(split(/\./, $addr));
	$addr =~ s/([\w]{4})/$1:/g;
	$n = ($addr =~ s/([\w])/$1/g) * 4;
	$addr =~ s/(\w+)$/$+0000/;
	$addr =~ s/([\w]{4})0+$/$1:/;
	$addr =~ s/$/:/;
	$addr =~ s/:0{1,3}/:/g;
	if ($n > 112) {
		$addr =~ s/::$//;
		$addr =~ s/(:0)+:/::/;
		}
	if ($n < 128) {
		return $addr."/$n";
		}
	return $addr
	}
return $_[0];
}

# net_to_ip6int(address, bits)
# Converts an IPv6 address like 1234:dcba:: to a.b.c.d.4.3.2.1.ip6.int.
sub net_to_ip6int
{
local($addr = lc($_[0]), $n = $_[1] >> 2);
if (&check_ip6address($addr)) {
	$addr = reverse(split(/\:/, &expandall_ip6($addr)));
	$addr =~ s/(\w)/$1\./g;
	if ($n > 0) {
		$addr = substr($addr, -2 * $n, 2 * $n);
	}
	$addr = $addr."ip6.int.";
	}
return $addr;
}

# valdnsname(name, wild, origin)
sub valdnsname
{
local($fqdn);
$fqdn = $_[0] !~ /\.$/ ? "$_[0].$_[2]." : $_[0];
if (length($fqdn) > ($config{'allow_long'} ? 635 : 255)) {
	&error(&text('edit_efqdn', $fqdn));
	}
if ($_[0] =~ /[^\.]{63}/) {
	# no label longer than 63 chars
	&error(&text('edit_elabel', $_[0]));
	}
return ((($_[1] && $config{'allow_wild'})
	 ? (($_[0] =~ /^[\*A-Za-z0-9\-\.]+$/)
	   && ($_[0] !~ /.\*/)		# "*" can be only the first char
	   && ($_[0] !~ /\*[^\.]/))	# a "." must always follow "*"
	 : ($_[0] =~ /^[\A-Za-z0-9\-\.]+$/))
	&& ($_[0] !~ /\.\./)		# no ".." inside
	&& ($_[0] !~ /^\../)		# no "." at the beginning
	&& ($_[0] !~ /^\-/)		# no "-" at the beginning
	&& ($_[0] !~ /\-$/)		# no "-" at the end
	&& ($_[0] !~ /\.\-/)		# no ".-" inside
	&& ($_[0] !~ /\-\./)		# no "-." inside
	&& ($_[0] !~ /\.[0-9]+\.$/));	# last label in FQDN may not be
					# purely numeric
}

# valemail(email)
sub valemail
{
return $_[0] eq "." ||
       $_[0] =~ /^[A-Za-z0-9\.\-]+$/ ||
       $_[0] =~ /(.*)\@(.*)/ && 
       &valdnsname($2, 0, ".") && 
       $1 =~ /[a-z][\w\-\_\.]+/i;
}

# absolute_path(path)
# If a path does not start with a /, prepend the base directory
sub absolute_path
{
if ($_[0] =~ /^\//) { return $_[0]; }
return &base_directory()."/".$_[0];
}

0707010001fcef000081e40000000000000002000000013ac0389a00000168000000200000000000000000000000000000001800000003reloc/bind8/restart.cgi   #!/usr/local/bin/perl
# restart.cgi
# Restart the running named

require './bind8-lib.pl';
&ReadParse();
%access = &get_module_acl();
$access{'ro'} && &error($text{'restart_ecannot'});
$access{'apply'} || &error($text{'restart_ecannot'});
&kill_logged('HUP', $in{'pid'}) ||
	&error(&text('restart_esig', $in{'pid'}, $!));
&webmin_log("apply");
&redirect("");

0707010001fcf0000081e40000000000000002000000013ac0389b00000329000000200000000000000000000000000000001a00000003reloc/bind8/save_acls.cgi #!/usr/local/bin/perl
# save_acls.cgi
# Update all the acl directives

require './bind8-lib.pl';
%access = &get_module_acl();
$access{'defaults'} || &error($text{'acls_ecannot'});
&error_setup($text{'acls_err'});
&ReadParse();

&lock_file($config{'chroot'}.$config{'named_conf'});
$conf = &get_config();
for($i=0; defined($name = $in{"name_$i"}); $i++) {
	next if (!$name);
	$name =~ /^\S+$/ || &error(&text('acls_ename', $name));
	@vals = split(/\s+/, $in{"values_$i"});
	push(@acls, { 'name' => 'acl',
		      'values' => [ $name ],
		      'type' => 1,
		      'members' => [ map { { 'name' => $_ } } @vals ] });
	}
&save_directive(&get_config_parent(), 'acl', \@acls, 0);
&flush_file_lines();
&unlock_file($config{'chroot'}.$config{'named_conf'});
&webmin_log("acls", undef, undef, \%in);
&redirect("");

   0707010001fcf1000081e40000000000000002000000013ac0389b000002f1000000200000000000000000000000000000001b00000003reloc/bind8/save_files.cgi    #!/usr/local/bin/perl
# save_files.cgi
# Save global files options

require './bind8-lib.pl';
%access = &get_module_acl();
$access{'defaults'} || &error($text{'files_ecannot'});
&error_setup($text{'files_err'});
&ReadParse();

&lock_file($config{'chroot'}.$config{'named_conf'});
$conf = &get_config();
$options = &find("options", $conf);
&save_opt("statistics-file", \&file_check, $options, 1);
&save_opt("dump-file", \&file_check, $options, 1);
&save_opt("pid-file", \&file_check, $options, 1);
&save_opt("named-xfer", \&file_check, $options, 1);
&flush_file_lines();
&unlock_file($config{'chroot'}.$config{'named_conf'});
&webmin_log("files", undef, undef, \%in);
&redirect("");

sub file_check
{
return $_[0] =~ /\S/ ? '' : $text{'files_efile'};
}

   0707010001fcf2000081e40000000000000002000000013ac0389b00000299000000200000000000000000000000000000001d00000003reloc/bind8/save_forward.cgi  #!/usr/local/bin/perl
# save_forward.cgi
# Save changes to forward zone options in named.conf

require './bind8-lib.pl';
&ReadParse();
$zconf = &get_config()->[$in{'index'}];
&lock_file($config{'chroot'}.$zconf->{'file'});
&error_setup($text{'fwd_err'});
%access = &get_module_acl();
&can_edit_zone(\%access, $zconf->{'value'}) ||
	&error($text{'fwd_ecannot'});
$access{'ro'} && &error($text{'master_ero'});

&save_address("forwarders", $zconf, 1);
&save_choice("check-names", $zconf, 1);
&save_choice("forward", $zconf, 1);
&flush_file_lines();
&unlock_file($config{'chroot'}.$zconf->{'file'});
&webmin_log("opts", undef, $zconf->{'value'}, \%in);
&redirect("");

   0707010001fcf3000081e40000000000000002000000013ac0389b0000038a000000200000000000000000000000000000002000000003reloc/bind8/save_forwarding.cgi   #!/usr/local/bin/perl
# save_forwarding.cgi
# Save global forwarding options

require './bind8-lib.pl';
%access = &get_module_acl();
$access{'defaults'} || &error($text{'forwarding_ecannot'});
&error_setup($text{'forwarding_err'});
&ReadParse();

&lock_file($config{'chroot'}.$config{'named_conf'});
$conf = &get_config();
$options = &find("options", $conf);
&save_address('forwarders', $options, 1);
&save_choice('forward', $options, 1);
&save_opt('max-transfer-time-in', \&check_mins, $options, 1);
&save_choice('transfer-format', $options, 1);
&save_opt('transfers-in', \&check_trans, $options, 1);

&flush_file_lines();
&unlock_file($config{'chroot'}.$config{'named_conf'});
&webmin_log("forwarding", undef, undef, \%in);
&redirect("");

sub check_mins
{
return $_[0] =~ /^\d+$/ ? undef : $text{'forwarding_emins'};
}

sub check_trans
{
return $_[0] =~ /^\d+$/ ? undef : $text{'forwarding_etrans'};
}

  0707010001fcf4000081e40000000000000002000000013ac0389b000009fe000000200000000000000000000000000000001d00000003reloc/bind8/save_logging.cgi  #!/usr/local/bin/perl
# save_logging.cgi
# Save global logging options

require './bind8-lib.pl';
%access = &get_module_acl();
$access{'defaults'} || &error($text{'logging_ecannot'});
&error_setup($text{'files_err'});
&ReadParse();

&lock_file($config{'chroot'}.$config{'named_conf'});
$conf = &get_config();
$logging = &find("logging", $conf);

# save categories
for($i=0; defined($cat = $in{"cat_$i"}); $i++) {
	next if (!$cat);
	@cchan = split(/\0/, $in{"cchan_$i"});
	push(@category, { 'name' => 'category',
			  'values' => [ $cat ],
			  'type' => 1,
			  'members' =>
				[ map { { 'name' => $_ } } @cchan ] });
	}

# save channels
for($i=0; defined($cname = $in{"cname_$i"}); $i++) {
	next if (!$cname);
	$cname =~ /^\S+$/ || &error(&text('logging_ename', $cname));
	local @mems;
	if ($in{"to_$i"} == 0) {
		$in{"file_$i"} || &error($text{'logging_efile'});
		local @fvals = ( $in{"file_$i"} );
		if ($in{"vmode_$i"} == 1) {
			push(@fvals, 'versions', 'unlimited');
			}
		elsif ($in{"vmode_$i"} == 2) {
			$in{"ver_$i"} =~ /^\d+$/ ||
				&error(&text('logging_ever', $in{"ver_$i"}));
			push(@fvals, 'versions', $in{"ver_$i"});
			}
		if ($in{"smode_$i"}) {
			$in{"size_$i"} =~ /^\d+[kmg]*$/i ||
				&error(&text('logging_esize', $in{"size_$i"}));
			push(@fvals, 'size', $in{"size_$i"});
			}
		push(@mems, { 'name' => 'file',
			      'values' => \@fvals });
		}
	elsif ($in{"to_$i"} == 1) {
		push(@mems, { 'name' => 'syslog',
			      'values' => [ $in{"syslog_$i"} ] });
		}
	else {
		push(@mems, { 'name' => 'null' });
		}
	if ($in{"sev_$i"} eq 'debug') {
		push(@mems, { 'name' => 'severity',
			      'values' => [ 'debug', $in{"debug_$i"} ] });
		}
	elsif ($in{"sev_$i"}) {
		push(@mems, { 'name' => 'severity',
			      'values' => [ $in{"sev_$i"} ] });
		}
	foreach $p ('print-category', 'print-severity', 'print-time') {
		push(@mems, { 'name' => $p,
			      'values' => [ $in{"$p-$i"} ] }) if ($in{"$p-$i"});
		}
	push(@channel, { 'name' => 'channel',
			 'values' => [ $cname ],
			 'type' => 1,
			 'members' => \@mems } );
	}

if ($logging) {
	&save_directive($logging, 'channel', \@channel, 1);
	&save_directive($logging, 'category', [ ], 1);
	&save_directive($logging, 'category', [ reverse(@category) ], 1);
	}
else {
	$logging = { 'name' => 'logging',
		     'type' => 1,
		     'members' => [ @channel, @category ] };
	&save_directive(&get_config_parent(), 'logging', [ $logging ], 0);
	}
&flush_file_lines();
&unlock_file($config{'chroot'}.$config{'named_conf'});
&webmin_log("logging", undef, undef, \%in);
&redirect("");

  0707010001fcf5000081e40000000000000002000000013ac0389a0000037f000000200000000000000000000000000000001c00000003reloc/bind8/save_master.cgi   #!/usr/local/bin/perl
# save_master.cgi
# Save changes to master zone options in named.conf

require './bind8-lib.pl';
&ReadParse();
$zconf = &get_config()->[$in{'index'}];
&lock_file($config{'chroot'}.$zconf->{'file'});
&error_setup($text{'master_err'});
%access = &get_module_acl();
&can_edit_zone(\%access, $zconf->{'value'}) ||
	&error($text{'master_ecannot'});
$access{'ro'} && &error($text{'master_ero'});
$access{'opts'} || &error($text{'master_eoptscannot'});

&save_choice("check-names", $zconf, 1);
&save_choice("notify", $zconf, 1);
&save_addr_match("allow-update", $zconf, 1);
&save_addr_match("allow-transfer", $zconf, 1);
&save_addr_match("allow-query", $zconf, 1);
&save_address("also-notify", $zconf, 1);
&flush_file_lines();
&unlock_file($config{'chroot'}.$zconf->{'file'});
&webmin_log("opts", undef, $zconf->{'value'}, \%in);
&redirect("edit_master.cgi?index=$in{'index'}");

 0707010001fcf6000081e40000000000000002000000013ac0389b000004e7000000200000000000000000000000000000001a00000003reloc/bind8/save_misc.cgi #!/usr/local/bin/perl
# save_misc.cgi
# Save global miscellaneous options

require './bind8-lib.pl';
%access = &get_module_acl();
$access{'defaults'} || &error($text{'misc_ecannot'});
&error_setup($text{'misc_err'});
&ReadParse();

&lock_file($config{'chroot'}.$config{'named_conf'});
$conf = &get_config();
$options = &find("options", $conf);
&save_opt("coresize", \&size_check, $options, 1);
&save_opt("datasize", \&size_check, $options, 1);
&save_opt("files", \&files_check, $options, 1);
&save_opt("stacksize", \&size_check, $options, 1);
&save_opt("cleaning-interval", \&mins_check, $options, 1);
&save_opt("interface-interval", \&mins_check, $options, 1);
&save_opt("statistics-interval", \&mins_check, $options, 1);
&save_choice("recursion", $options, 1);
&save_choice("multiple-cnames", $options, 1);
&save_choice("fetch-glue", $options, 1);
&save_choice("auth-nxdomain", $options, 1);

&flush_file_lines();
&unlock_file($config{'chroot'}.$config{'named_conf'});
&webmin_log("misc", undef, undef, \%in);
&redirect("");

sub size_check
{
return $_[0] =~ /^\d+[kmg]*$/i ? "" : $text{'misc_esize'};
}

sub files_check
{
return $_[0] =~ /^\d+$/i ? "" : $text{'misc_efiles'};
}

sub mins_check
{
return $_[0] =~ /^\d+$/i ? "" : $text{'misc_emins'};
}

 0707010001fcf7000081e40000000000000002000000013ac0389b00000606000000200000000000000000000000000000001900000003reloc/bind8/save_net.cgi  #!/usr/local/bin/perl
# save_net.cgi
# Save global address and topology options

require './bind8-lib.pl';
%access = &get_module_acl();
$access{'defaults'} || &error($text{'net_ecannot'});
&error_setup($text{'net_err'});
&ReadParse();

&lock_file($config{'chroot'}.$config{'named_conf'});
$conf = &get_config();
$options = &find("options", $conf);
if (!$in{'listen_def'}) {
	for($i=0; defined($addr = $in{"addrs_$i"}); $i++) {
		next if (!$addr);
		local $l = { 'name' => 'listen-on',
			     'type' => 1 };
		if (!$in{"pdef_$i"}) {
			$in{"port_$i"} =~ /^\d+$/ ||
				&error(&text('net_eport', $in{"port_$i"}));
			$l->{'values'} = [ 'port', $in{"port_$i"} ];
			}
		$l->{'members'} =
			[ map { { 'name' => $_ } } split(/\s+/, $addr) ];
		push(@listen, $l);
		}
	}
&save_directive($options, 'listen-on', \@listen, 1);
if (!$in{'saddr_def'}) {
	&check_ipaddress($in{'saddr'}) ||
		&error(&text('net_eaddr', $in{'saddr'}));
	push(@qvals, "address", $in{'saddr'});
	}
if (!$in{'sport_def'}) {
	$in{'sport'} =~ /^\d+$/ || &error(&text('net_eport', $in{'sport'}));
	push(@qvals, "port", $in{'sport'});
	}
if (@qvals) {
	&save_directive($options, 'query-source',
			[ { 'name' => 'query-source',
			    'values' => \@qvals } ], 1);
	}
else {
	&save_directive($options, 'query-source', [ ], 1);
	}
$in{'topology_def'} || $in{'topology'} || &error($text{'net_etopology'});
&save_addr_match('topology', $options, 1);

&flush_file_lines();
&unlock_file($config{'chroot'}.$config{'named_conf'});
&webmin_log("net", undef, undef, \%in);
&redirect("");
  0707010001fcf8000081e40000000000000002000000013ac0389a000031b4000000200000000000000000000000000000001c00000003reloc/bind8/save_record.cgi   #!/usr/local/bin/perl
# save_record.cgi
# Adds or updates a record of some type

require './bind8-lib.pl';
&ReadParse();
%access = &get_module_acl();
&can_edit_zone(\%access, $in{'origin'}) || &error($text{'recs_ecannot'});
$access{'ro'} && &error($text{'master_ero'});
&lock_file($config{'chroot'}.$in{'file'});
@recs = &read_zone_file($in{'file'}, $in{'origin'});
&error_setup($text{'edit_err'});

# get the old record if needed
$r = $recs[$in{'num'}] if (defined($in{'num'}));

# check for deletion
if ($in{'delete'}) {
	# Delete the record
	&lock_file($config{'chroot'}.$r->{'file'});
	&delete_record($r->{'file'}, $r);
	&bump_soa_record($in{'file'}, \@recs);

	# Update reverse
	($orevconf, $orevfile, $orevrec) = &find_reverse($in{'oldvalue0'});
	if ($in{'rev'} && $orevrec && &can_edit_reverse($orevconf) &&
	    $in{'oldname'} eq $orevrec->{'values'}->[0] &&
	    ($in{'type'} eq "A" &&
	     $in{'oldvalue0'} eq &arpa_to_ip($orevrec->{'name'}) ||
	     $in{'type'} eq "AAAA" &&
	     &expandall_ip6($in{'oldvalue0'}) eq &expandall_ip6(&ip6int_to_net($orevrec->{'name'})))) {
		&lock_file($config{'chroot'}.$orevrec->{'file'});
		&delete_record($orevrec->{'file'} , $orevrec);
		&lock_file($config{'chroot'}.$orevfile);
		@orrecs = &read_zone_file($orevfile, $orevconf->{'value'});
		&bump_soa_record($orevfile, \@orrecs);
		}

	# Update forward
	local($ipv6 = ($in{'oldvalue0'} =~ /\.ip6\.int/i));
	($ofwdconf, $ofwdfile, $ofwdrec) = &find_forward($in{'oldvalue0'}, $ipv6);
	if ($in{'fwd'} && $ofwdrec && &can_edit_zone($ofwdconf->{'value'}) &&
	    (!$ipv6 && &arpa_to_ip($in{'oldname'}) eq $ofwdrec->{'values'}->[0] ||
	     $ipv6 && &expandall_ip6(&ip6int_to_net($in{'oldname'})) eq &expandall_ip6($ofwdrec->{'values'}->[0])) &&
	    $in{'oldvalue0'} eq $ofwdrec->{'name'}) {
		&lock_file($config{'chroot'}.$ofwdrec->{'file'});
		&delete_record($ofwdrec->{'file'}, $ofwdrec);
		&lock_file($config{'chroot'}.$ofwdfile);
		@ofrecs = &read_zone_file($ofwdfile, $ofwdconf->{'value'});
		&bump_soa_record($ofwdfile, \@ofrecs);
		}

	&redirect("edit_recs.cgi?index=$in{'index'}&type=$in{'type'}&sort=$in{'sort'}");
	&unlock_all_files();
	&webmin_log('delete', 'record', $in{'origin'}, $r);
	exit;
	}

# parse inputs
if (!$in{'ttl_def'}) {
	$in{'ttl'} =~ /^\d+$/ ||
		&error(&text('edit_ettl', $in{'ttl'}));
	$ttl = $in{'ttl'}.$in{'ttlunit'};
	}
$vals = $in{'value0'};
for($i=1; defined($in{"value$i"}); $i++) {
	$vals .= " ".$in{"value$i"};
	}
if ($in{'type'} eq "PTR") {
	# a reverse address
	local($ipv4);
	($ipv4 = $in{'origin'} =~ /in-addr\.arpa/i) || $in{'origin'} =~ /\.ip6\.int/i ||
		&error(&text('edit_eip', $in{'name'}));
	if ($ipv4) {
		if ($in{'name'} =~ /^\d+$/) {
			$in{'name'} = &arpa_to_ip($in{'origin'}).".".$in{'name'};
			}
		&check_ipaddress($in{'name'}) ||
		    ($in{'name'} =~ /^(.*)\.(\d+)$/ && &check_ipaddress("$1")) ||
		    ($in{'name'} =~ /^(.*)\.(\d+)$/ && $1 eq &arpa_to_ip($in{'origin'})) ||
			&error(&text('edit_eip', $in{'name'}));
		$name = &ip_to_arpa($in{'name'});
		}
	else {
		&check_ip6address($in{'name'}) ||
			&error(&text('edit_eip6', $in{'name'}));
		$name = &net_to_ip6int($in{'name'});
		}
	&valname($in{'value0'}) ||
		&error(&text('edit_ehost', $vals[0]));
	if ($in{'value0'} !~ /\.$/) { $vals .= "."; }
	}
else {
	# some other kind of record
	$in{'name'} eq "" || &valnamewild($in{'name'}) ||
		&error(&text('edit_ename', $in{'name'}));
	if ($in{'type'} eq "A") {
		&check_ipaddress($vals) ||
			&error(&text('edit_eip', $vals));
		if (!$access{'multiple'}) {
			# Is this address already in use? Search all domains
			# to find out..
			$conf = &get_config();
			@zl = &find("zone", $conf);
			foreach $z (@zl) {
				$typed = &find("type", $z->{'members'}) || next;
				next if ($typed->{'value'} ne "master");
				next if ($z->{'value'} =~ /in-addr\.arpa/i);
				$file = &find("file",
					      $z->{'members'})->{'value'};
				@frecs = &read_zone_file($file, $z->{'value'});
				foreach $fr (@frecs) {
					if ($fr->{'type'} eq "A" &&
					    $fr->{'values'}->[0] eq $vals &&
					    $fr->{'name'} ne $r->{'name'}) {
						&error(&text('edit_edupip',
							     $vals));
						}
					}
				}
			}
		}
	elsif ($in{'type'} eq "AAAA") {
		&check_ip6address($vals) ||
			&error(&text('edit_eip6', $vals));
		if (!$access{'multiple'}) {
			# Is this address already in use? Search all domains
			# to find out..
			$conf = &get_config();
			@zl = &find("zone", $conf);
			foreach $z (@zl) {
				$typed = &find("type", $z->{'members'}) || next;
				next if ($typed->{'value'} ne "master");
				next if ($z->{'value'} =~ /\.ip6\.int/i);
				$file = &find("file",
					      $z->{'members'})->{'value'};
				@frecs = &read_zone_file($file, $z->{'value'});
				foreach $fr (@frecs) {
					if ($fr->{'type'} eq "AAAA" &&
					    &expandall_ip6($fr->{'values'}->[0]) eq &expandall_ip6($vals) &&
					    $fr->{'name'} ne $r->{'name'}) {
						&error(&text('edit_edupip',
							     $vals));
						}
					}
				}
			}
		}
	elsif ($in{'type'} eq "NS") {
		&valname($vals) ||
			&error(&text('edit_ens', $vals));
		}
	elsif ($in{'type'} eq "CNAME") {
		&valname($vals) ||
			&error(&text('edit_ecname', $vals));
		}
	elsif ($in{'type'} eq "MX") {
		&valname($in{'value1'}) ||
			&error(&text('edit_emx', $in{'value1'}));
		$in{'value0'} =~ /^\d+$/ ||
			&error(&text('edit_epri', $in{'value0'}));
		}
	elsif ($in{'type'} eq "HINFO") {
		$in{'value0'} =~ /^[^\s\";]+$/ ||
			&error($text{'edit_ehard'});
		$in{'value1'} =~ /^[^\s\";]+$/ ||
			&error($text{'edit_eos'});
		$vals = $in{'value0'}." ".$in{'value1'};
		}
	elsif ($in{'type'} eq "TXT") {
		$vals = $in{'value0'};
		$vals =~ s/((?:^|[^\\])(?:\\\\)*)[\"]/$1\\\"/g;
		$vals = "\"$vals\"";
		}
	elsif ($in{'type'} eq "WKS") {
		&check_ipaddress($in{'value0'}) ||
			&error(&text('edit_eip', $in{'value0'}));
		if (!$in{'value2'}) {
			&error($text{'edit_eserv'});
			}
		@ws = split(/[\r\n]+|\s+/, $in{'value2'});
		$vals = "$in{'value0'} $in{'value1'} (";
		foreach $ws (@ws) {
			$ws =~ /^[a-z]([\w\-]*\w)?$/i ||
				&error(&text('edit_ebadserv', $ws));
			$vals .= "\n\t\t\t\t\t$ws";
			}
		$vals .= " )";
		}
	elsif ($in{'type'} eq "RP") {
		if (!$in{'value0'}) {
			$in{'value0'} = ".";
			}
		elsif (!&valemail($in{'value0'})) {
			&error(&text('edit_eemail', $in{'value0'}));
			}
		&valname($in{'value1'}) ||
			&error(&text('edit_etxt', $in{'value1'}));
		$in{'value0'} = &email_to_dotted($in{'value0'});
		$vals = "$in{'value0'} $in{'value1'}";
		}
	elsif ($in{'type'} eq "LOC") {
		$in{'value0'} =~ /\S/ || &error($text{'edit_eloc'});
		}
	$name = $in{'name'} eq "" ?    "$in{'origin'}." :
		$in{'name'} !~ /\.$/ ? "$in{'name'}.$in{'origin'}." :
				       $in{'name'};
	}

if ($in{'new'}) {
	# just adding a new record
	&create_record($in{'file'}, $name, $ttl, "IN", $in{'type'}, $vals,
		       $in{'comment'});
	$r = { 'name' => $name, 'ttl' => $ttl, 'class' => 'IN',
	       'type' => $in{'type'}, 'values' => [ split(/\s+/, $vals) ],
	       'comment' => $in{'comment'} };
	($revconf, $revfile, $revrec) = &find_reverse($in{'value0'});
	if ($in{'rev'} && $revconf && !$revrec && &can_edit_reverse($revconf)) {
		# Add a reverse record if we are the master for the reverse
		# domain, and if there is not already a reverse record
		# for the address.
		&lock_file($config{'chroot'}.$revfile);
		&create_record($revfile,
			$in{'type'} eq "A" ? &ip_to_arpa($in{'value0'}) : &net_to_ip6int($in{'value0'}),
			$ttl, "IN", "PTR", $name);
		@rrecs = &read_zone_file($revfile, $revconf->{'value'});
		&bump_soa_record($revfile, \@rrecs);
		}

	($fwdconf, $fwdfile, $fwdrec) = &find_forward($vals, $vals =~ /\.ip6\.int/i);
	if ($in{'fwd'} && $fwdconf && !$fwdrec &&
	    &can_edit_zone($fwdconf->{'value'})) {
		# Add a forward record if we are the master for the forward
		# domain, and if there is not already an A record
		# for the address
		local($rtype);
		if (&check_ipaddress($in{'name'})) {
			$rtype = "A";
			}
		elsif ($config{'support_aaaa'} &&
		       &check_ip6address($in{'name'})) {
			$rtype = "AAAA";
			}
		if ($rtype) {
			&lock_file($config{'chroot'}.$fwdfile);
			&create_record($fwdfile, $vals,
				       $ttl, "IN", $rtype, $in{'name'});
			@frecs = &read_zone_file($fwdfile, $fwdconf->{'value'});
			&bump_soa_record($fwdfile, \@frecs);
			}
		}
	}
else {
	# updating an existing record
	&lock_file($config{'chroot'}.$r->{'file'});
	&modify_record($r->{'file'}, $r, $name, $ttl,
		       "IN", $in{'type'}, $vals, $in{'comment'});

	($orevconf, $orevfile, $orevrec) = &find_reverse($in{'oldvalue0'});
	($revconf, $revfile, $revrec) = &find_reverse($in{'value0'});
	if ($in{'rev'} && $orevrec && &can_edit_reverse($orevconf) &&
	    $in{'oldname'} eq $orevrec->{'values'}->[0] &&
	    ($in{'type'} eq "A" &&
	     $in{'oldvalue0'} eq &arpa_to_ip($orevrec->{'name'}) ||
	     $in{'type'} eq "AAAA" &&
	     &expandall_ip6($in{'oldvalue0'}) eq &expandall_ip6(&ip6int_to_net($orevrec->{'name'})))) {
		# Updating the reverse record. Either the name, address
		# or both may have changed. Furthermore, the reverse record
		# may now be in a different file!
		&lock_file($config{'chroot'}.$orevfile);
		&lock_file($config{'chroot'}.$revfile);
		@orrecs = &read_zone_file($orevfile, $orevconf->{'value'});
		@rrecs = &read_zone_file($revfile, $revconf->{'value'});
		if ($revconf eq $orevconf && &can_edit_reverse($revconf)) {
			# old and new in the same file
			&modify_record($orevrec->{'file'} , $orevrec, 
				       &net_to_ip6int(&ip_to_arpa($in{'value0'})),
				       $orevrec->{'ttl'}, "IN", "PTR", $name,
				       $in{'comment'});
			&bump_soa_record($orevfile, \@orrecs);
			}
		elsif ($revconf && &can_edit_reverse($revconf)) {
			# old and new in different files
			&delete_record($orevrec->{'file'} , $orevrec);
			&create_record($revfile, &net_to_ip6int(&ip_to_arpa($in{'value0'})),
				       $orevrec->{'ttl'}, "IN", "PTR", $name,
				       $in{'comment'});
			&bump_soa_record($orevfile, \@orrecs);
			&bump_soa_record($revfile, \@rrecs);
			}
		else {
			# we don't handle the new reverse domain.. lose the
			# reverse record
			&delete_record($orevrec->{'file'}, $orevrec);
			&bump_soa_record($orevfile, \@orrecs);
			}
		}
	elsif ($in{'rev'} && !$orevrec && $revconf && !$revrec && 
	       &can_edit_reverse($revconf)) {
		# we don't handle the old reverse domain but handle the new 
		# one.. create a new reverse record
	 	&lock_file($config{'chroot'}.$revfile);
		&create_record($revfile, &net_to_ip6int(&ip_to_arpa($in{'value0'})),
			       $ttl, "IN", "PTR", $name, $in{'comment'});
		&bump_soa_record($revfile, \@rrecs);
		}

	local($ipv6 = ($in{'value0'} =~ /\.ip6\.int/i));
	($ofwdconf, $ofwdfile, $ofwdrec) = &find_forward($in{'oldvalue0'}, $ipv6);
	($fwdconf, $fwdfile, $fwdrec) =	&find_forward($in{'value0'}, $ipv6);
	if ($in{'fwd'} && $ofwdrec && &can_edit_zone($ofwdconf->{'value'}) &&
	    &expandall_ip6(&ip6int_to_net(&arpa_to_ip($in{'oldname'}))) eq
	    &expandall_ip6($ofwdrec->{'values'}->[0]) &&
	    $in{'oldvalue0'} eq $ofwdrec->{'name'}) {
		# Updating the forward record
		&lock_file($config{'chroot'}.$ofwdfile);
		&lock_file($config{'chroot'}.$fwdfile);
		@ofrecs = &read_zone_file($ofwdfile, $ofwdconf->{'value'});
		@frecs = &read_zone_file($fwdfile, $fwdconf->{'value'});
		if ($fwdconf eq $ofwdconf &&
		    &can_edit_zone($fwdconf->{'value'})) {
			# old and new are in the same file
			&modify_record($ofwdrec->{'file'} , $ofwdrec, $vals,
				       $ofwdrec->{'ttl'}, "IN",
				       $ipv6 ? "AAAA" : "A",
				       $in{'name'}, $in{'comment'});
			&bump_soa_record($ofwdfile, \@ofrecs);
			}
		elsif ($fwdconf && &can_edit_zone($fwdconf->{'value'})) {
			# old and new in different files
			&delete_record($ofwdrec->{'file'} , $ofwdrec);
			if (!ipv6 || $config{'support_aaaa'}) {
				&create_record($fwdfile, $vals, $ofwdrec->{'ttl'},
					       "IN", $ipv6 ? "AAAA" : "A",
					       $in{'name'}, $in{'comment'});
				&bump_soa_record($fwdfile, \@frecs);
				}
			&bump_soa_record($ofwdfile, \@ofrecs);
			}
		else {
			# lose the forward because it has been moved to
			# a zone not handled by this server
			&delete_record($ofwdrec->{'file'} , $ofwdrec);
			&bump_soa_record($ofwdfile, \@ofrecs);
			}
		}
	}
&bump_soa_record($in{'file'}, \@recs);
&unlock_all_files();
&webmin_log($in{'new'} ? 'create' : 'modify', 'record', $in{'origin'}, $r);
&redirect("edit_recs.cgi?index=$in{'index'}&type=$in{'type'}&sort=$in{'sort'}");

# valname(name)
sub valname
{
return valdnsname($_[0], 0, $in{'origin'});
}

# valnamewild(name)
sub valnamewild
{
return valdnsname($_[0], 1, $in{'origin'});
}

# can_edit_reverse(&zone)
sub can_edit_reverse
{
return $access{'reverse'} || &can_edit_zone(\%access, $_[0]->{'value'});
}

0707010001fcf9000081e40000000000000002000000013ac0389b00000548000000200000000000000000000000000000001d00000003reloc/bind8/save_servers.cgi  #!/usr/local/bin/perl
# save_servers.cgi
# Update all the server directives

require './bind8-lib.pl';
%access = &get_module_acl();
$access{'defaults'} || &error($text{'servers_ecannot'});
&error_setup($text{'servers_err'});
&ReadParse();

&lock_file($config{'chroot'}.$config{'named_conf'});
$conf = &get_config();
@old = &find("server", $conf);
for($i=0; defined($ip = $in{"ip_$i"}); $i++) {
	next if (!$ip);
	&check_ipaddress($ip) || &error(&text('servers_eip', $ip));
	$in{"trans_$i"} =~ /^\d+$/ ||
		&error(&text('servers_etrans', $in{"trans_$i"}));
	local $s = { 'name' => 'server',
		     'type' => 1 };
	$s->{'members'} = $old[$i] ? $old[$i]->{'members'} : [ ];
	$s->{'values'} = [ $ip ];
	&save_directive($s, 'bogus',
		$in{"bogus_$i"} ? [ { 'name' => 'bogus',
				      'values' => [ 'yes' ] } ] : [ ], 1, 1);
	&save_directive($s, 'transfer-format',
		$in{"format_$i"} ? [ { 'name' => 'transfer-format',
				       'values' => [ $in{"format_$i"} ] } ]
				 : [ ], 1, 1);
	&save_directive($s, 'transfers',
		$in{"trans_$i"} ? [ { 'name' => 'transfers',
				      'values' => [ $in{"trans_$i"} ] } ]
				: [ ], 1, 1);
		
	push(@servers, $s);
	}
&save_directive(&get_config_parent(), 'server', \@servers, 0);
&flush_file_lines();
&unlock_file($config{'chroot'}.$config{'named_conf'});
&webmin_log("servers", undef, undef, \%in);
&redirect("");

0707010001fcfa000081e40000000000000002000000013ac0389a000004f1000000200000000000000000000000000000001b00000003reloc/bind8/save_slave.cgi    #!/usr/local/bin/perl
# save_slave.cgi
# Save changes to slave zone options in named.conf

require './bind8-lib.pl';
&ReadParse();
$zconf = &get_config()->[$in{'index'}];
&lock_file($config{'chroot'}.$zconf->{'file'});
&error_setup($text{'slave_err'});
%access = &get_module_acl();
&can_edit_zone(\%access, $zconf->{'value'}) ||
	&error($text{'slave_ecannot'});
$access{'ro'} && &error($text{'master_ero'});

&save_address("masters", $zconf, 1);
&save_opt("max-transfer-time-in", \&mtti_check, $zconf, 1);
&save_opt("file", \&file_check, $zconf, 1);
&save_choice("check-names", $zconf, 1);
&save_choice("notify", $zconf, 1);
&save_addr_match("allow-update", $zconf, 1);
&save_addr_match("allow-transfer", $zconf, 1);
&save_addr_match("allow-query", $zconf, 1);
&save_address("also-notify", $zconf, 1);
&flush_file_lines();
&unlock_file($config{'chroot'}.$zconf->{'file'});
&webmin_log("opts", undef, $zconf->{'value'}, \%in);
&redirect("");

sub mtti_check
{
return $_[0] =~ /^\d+$/ ? undef : &text('slave_emax', $_[0]);
}

sub file_check
{
return $text{'slave_efile'} if ($_[0] !~ /\S/);
local $file = $_[0];
if ($_[0] !~ /^\//) {
	$file = &base_directory($conf)."/".$file;
	}
return &allowed_zone_file(\%access, $file) ? undef :
	&text('slave_efile2', $_[0]);
}

   0707010001fcfb000081e40000000000000002000000013ac0389a00000708000000200000000000000000000000000000001900000003reloc/bind8/save_soa.cgi  #!/usr/local/bin/perl
# save_soa.cgi
# Save changes to an SOA record

require './bind8-lib.pl';
&ReadParse();
&error_setup($text{'master_err2'});
%access = &get_module_acl();
&can_edit_zone(\%access, $in{'origin'}) ||
	&error($text{'master_ecannot'});
$access{'ro'} && &error($text{'master_ero'});
$access{'params'} || &error($text{'master_esoacannot'});

# check inputs
&valdnsname($in{'master'}, 0, $in{'origin'}) ||
	&error(&text('master_emaster', $in{'master'}));
&valemail($in{'email'}) ||
	&error(&text('master_eemail', $in{'email'}));
$in{'refresh'} =~ /^\d+$/ ||
	&error(&text('master_erefresh', $in{'refresh'}));
$in{'retry'} =~ /^\d+$/ ||
	&error(&text('master_eretry', $in{'retry'}));
$in{'expiry'} =~ /^\d+$/ ||
	&error(&text('master_eexpiry', $in{'expiry'}));
$in{'minimum'} =~ /^\d+$/ ||
	&error(&text('master_eminimum', $in{'minimum'}));
if ($in{'email'} =~ /\@/) {
	$in{'email'} = &email_to_dotted($in{'email'});
	}

&lock_file($config{'chroot'}.$in{'file'});
@recs = &read_zone_file($in{'file'}, $in{'origin'});
$old = $recs[$in{'num'}];
if ($config{'soa_style'} == 1 && $old->{'values'}->[2] =~ /^(\d{8})(\d\d)$/) {
        if ($1 eq &date_serial()) { $serial = sprintf "%d%2.2d", $1, $2+1; }
        else { $serial = &date_serial()."00"; }
        }
else {
        $serial = $old->{'values'}->[2]+1;
        }
$vals = "$in{'master'} $in{'email'} (\n".
	"\t\t\t$serial\n".
	"\t\t\t$in{'refresh'}$in{'refunit'}\n".
	"\t\t\t$in{'retry'}$in{'retunit'}\n".
	"\t\t\t$in{'expiry'}$in{'expunit'}\n".
	"\t\t\t$in{'minimum'}$in{'minunit'} )";
&modify_record($in{'file'}, $old, $old->{'name'}, $old->{'ttl'},
	       $old->{'class'}, "SOA", $vals);
&unlock_file($config{'chroot'}.$in{'file'});
&webmin_log("soa", undef, $in{'origin'}, \%in);
&redirect("edit_master.cgi?index=$in{'index'}");

0707010001fcfc000081e40000000000000002000000013ac0389b00000306000000200000000000000000000000000000001a00000003reloc/bind8/save_text.cgi #!/usr/local/bin/perl
# save_text.cgi
# Save a manually edit zone file

require './bind8-lib.pl';
&ReadParse();
$conf = &get_config();
$zconf = $conf->[$in{'index'}]->{'members'};
$file = &absolute_path(&find("file", $zconf)->{'value'});
%access = &get_module_acl();
&can_edit_zone(\%access, $conf->[$in{'index'}]->{'value'}) ||
	&error($text{'master_ecannot'});
$access{'file'} || &error($text{'text_ecannot'});
$access{'ro'} && &error($text{'master_ero'});

&lock_file($config{'chroot'}.$file);
$in{'text'} =~ s/\r//g;
open(FILE, ">$config{'chroot'}$file");
print FILE $in{'text'};
close(FILE);
&unlock_file($config{'chroot'}.$file);
&webmin_log("text", undef, $conf->[$in{'index'}]->{'value'},
	    { 'file' => $file });
&redirect("edit_master.cgi?index=$in{'index'}");

  0707010001fcfd000081e40000000000000002000000013ac0389b000007e1000000200000000000000000000000000000001d00000003reloc/bind8/save_zonedef.cgi  #!/usr/local/bin/perl
# save_zonedef.cgi
# Save zone defaults

require './bind8-lib.pl';
&ReadParse();
&error_setup($text{'zonedef_err'});
%access = &get_module_acl();
$access{'defaults'} || &error($text{'zonedef_ecannot'});

&lock_file($config{'chroot'}.$config{'named_conf'});
&lock_file("$module_config_directory/zonedef");
$conf = &get_config();
$options = &find("options", $conf);
foreach $c ("master", "slave", "response") {
	push(@check, { 'name' => 'check-names',
		       'values' => [ $c, $in{$c} ] }) if ($in{$c});
	}
&save_directive($options, 'check-names', \@check, 1);
&save_addr_match("allow-transfer", $options, 1);
&save_addr_match("allow-query", $options, 1);
&save_choice("notify", $options, 1);

$in{'refresh'} =~ /^\d+$/ || &error(&text('master_erefresh', $in{'refresh'}));
$in{'retry'} =~ /^\d+$/ || &error(&text('master_eretry', $in{'retry'}));
$in{'expiry'} =~ /^\d+$/ || &error(&text('master_eexpiry', $in{'expiry'}));
$in{'minimum'} =~ /^\d+$/ || &error(&text('master_eminimum', $in{'minimum'}));
%zonedef = ( 'refresh', $in{'refresh'},
	     'retry', $in{'retry'},
	     'expiry', $in{'expiry'},
	     'minimum', $in{'minimum'},
	     'refunit', $in{'refunit'},
	     'retunit', $in{'retunit'},
	     'expunit', $in{'expunit'},
	     'minunit', $in{'minunit'} );

&lock_file("$module_config_directory/config");
foreach $k (keys %config) {
	delete($config{$k}) if ($k =~ /^tmpl_/);
	}
$j=0;
for($i=0; defined($in{"name_$i"}); $i++) {
	next if (!$in{"name_$i"});
	$in{"type_$i"} eq 'A' || !$in{"def_$i"} ||
		&error($text{'master_eiptmpl'});
	$config{"tmpl_$j"} = join(' ', $in{"name_$i"}, $in{"type_$i"},
				  $in{"def_$i"} ? () : ( $in{"value_$i"} ) );
	$j++;
	}
&write_file("$module_config_directory/config", \%config);
&unlock_file("$module_config_directory/config");

&save_zone_defaults(\%zonedef);
&flush_file_lines();
&unlock_file($config{'chroot'}.$config{'named_conf'});
&unlock_file("$module_config_directory/zonedef");
&webmin_log("zonedef", undef, undef, \%in);
&redirect("");

   0707010001fd0a000081e40000000000000002000000013ac0389a0000069d000000200000000000000000000000000000001b00000003reloc/bind8/slave_form.cgi    #!/usr/local/bin/perl
# slave_form.cgi
# A form for creating a new slave or stub zone

require './bind8-lib.pl';
$type = ($0 =~ /slave_form/);
%access = &get_module_acl();
$access{'slave'} || &error($type ? $text{'screate_ecannot1'}
				 : $text{'screate_ecannot2'});
&header($type ? $text{'screate_title1'} : $text{'screate_title2'}, "");
print "<hr>\n";

print "<form action=create_slave.cgi>\n";
print "<input type=hidden name=type value=\"$type\">\n";
print "<table border width=100%>\n";
print "<tr> <td $tb><b>",$type ? $text{'screate_header1'}
			       : $text{'screate_header2'},"</b></td> </tr>\n";
print "<tr> <td $cb><table width=100%>\n";

print "<tr> <td><b>$text{'screate_type'}</b></td>\n";
print "<td colspan=3><input type=radio name=rev value=0 checked>\n";
print "$text{'screate_fwd'}\n";
print "&nbsp;&nbsp;<input type=radio name=rev value=1>\n";
print "$text{'screate_rev'}</td> </tr>\n";

print "<tr> <td><b>$text{'screate_dom'}</b></td>\n";
print "<td colspan=3><input name=zone size=40></td> </tr>\n";

print "<tr> <td><b>$text{'slave_file'}</b></td> <td colspan=3>\n";
print "<input type=radio name=file_def value=1> $text{'slave_none'}\n";
print "<input type=radio name=file_def value=2 checked> $text{'slave_auto'}\n";
print "<input type=radio name=file_def value=0>\n";
print "<input name=file size=30>",&file_chooser_button("file"),"</td> </tr>\n";

print "<tr> <td valign=top><b>$text{'slave_masters'}</b></td> <td colspan=3>\n";
print "<textarea name=masters rows=4 cols=30></textarea></td> </tr>\n";

print "</table></td></tr></table><br>\n";
print "<input type=submit value=\"$text{'create'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

   0707010001fd0b000081e40000000000000002000000013ac0389a000004bb000000200000000000000000000000000000001600000003reloc/bind8/start.cgi #!/usr/local/bin/perl
# start.cgi
# Start bind 8

require './bind8-lib.pl';
%access = &get_module_acl();
$access{'ro'} && &error($text{'start_ecannot'});
$access{'apply'} || &error($text{'start_ecannot'});
if ($config{'named_user'}) {
	$user = "-u $config{'named_user'}";
	if ($config{'named_group'}) {
		$user .= " -g $config{'named_group'}";
		}
	else {
		local @u = getpwnam($config{'named_user'});
		local @g = getgrgid($u[3]);
		$user .= " -g $g[0]";
		}
	}
if ($config{'start_cmd'}) {
	$cmd = $config{'start_cmd'};
	}
elsif (!$config{'chroot'}) {
	$cmd = "$config{'named_path'} -c $config{'named_conf'} $user </dev/null 2>&1";
	}
elsif (`$config{'named_path'} -help 2>&1` =~ /\[-t/) {
	# use named's chroot option
	$cmd = "$config{'named_path'} -c $config{'named_conf'} -t $config{'chroot'} $user </dev/null 2>&1";
	}
else {
	# use the chroot command
	$cmd = "chroot $config{'chroot'} $config{'named_path'} -c $config{'named_conf'} $user </dev/null 2>&1";
	}

$temp = &tempname();
$rv = &system_logged("$cmd </dev/null >$temp 2>&1");
$out = `cat $temp`;
unlink($temp);
if ($rv || $out =~ /chroot.*not available/i) {
	&error(&text('start_error', "<tt>$out</tt>"));
	}
&webmin_log("start");
&redirect("");

 0707010001fd0c000081e40000000000000002000000013ac0389a0000069d000000200000000000000000000000000000001a00000003reloc/bind8/stub_form.cgi #!/usr/local/bin/perl
# slave_form.cgi
# A form for creating a new slave or stub zone

require './bind8-lib.pl';
$type = ($0 =~ /slave_form/);
%access = &get_module_acl();
$access{'slave'} || &error($type ? $text{'screate_ecannot1'}
				 : $text{'screate_ecannot2'});
&header($type ? $text{'screate_title1'} : $text{'screate_title2'}, "");
print "<hr>\n";

print "<form action=create_slave.cgi>\n";
print "<input type=hidden name=type value=\"$type\">\n";
print "<table border width=100%>\n";
print "<tr> <td $tb><b>",$type ? $text{'screate_header1'}
			       : $text{'screate_header2'},"</b></td> </tr>\n";
print "<tr> <td $cb><table width=100%>\n";

print "<tr> <td><b>$text{'screate_type'}</b></td>\n";
print "<td colspan=3><input type=radio name=rev value=0 checked>\n";
print "$text{'screate_fwd'}\n";
print "&nbsp;&nbsp;<input type=radio name=rev value=1>\n";
print "$text{'screate_rev'}</td> </tr>\n";

print "<tr> <td><b>$text{'screate_dom'}</b></td>\n";
print "<td colspan=3><input name=zone size=40></td> </tr>\n";

print "<tr> <td><b>$text{'slave_file'}</b></td> <td colspan=3>\n";
print "<input type=radio name=file_def value=1> $text{'slave_none'}\n";
print "<input type=radio name=file_def value=2 checked> $text{'slave_auto'}\n";
print "<input type=radio name=file_def value=0>\n";
print "<input name=file size=30>",&file_chooser_button("file"),"</td> </tr>\n";

print "<tr> <td valign=top><b>$text{'slave_masters'}</b></td> <td colspan=3>\n";
print "<textarea name=masters rows=4 cols=30></textarea></td> </tr>\n";

print "</table></td></tr></table><br>\n";
print "<input type=submit value=\"$text{'create'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

   07070100028743000041ed0000000000000001000000033ac03ba000000000000000200000000000000000000000000000001100000003reloc/bsdexports  07070100028744000081a40000000000000002000000013ac0389f000008de000000200000000000000000000000000000002300000003reloc/bsdexports/bsdexports-lib.pl    # bsdexports-lib.pl
# Functions for managing the FreeBSD exports file

do '../web-lib.pl';
&init_config();

# list_exports()
# Returns the current exports list
sub list_exports
{
local(@rv, $lnum, $_);
open(EXP, $config{'exports_file'});
$lnum = -1; $index = 0;
while(<EXP>) {
	$lnum++;
	s/\r|\n//g;	# remove newlines
	s/#.*$//g;	# remove comments
	next if (!/\S/);
	local @w = split(/[\s=]+/, $_);
	local %exp;
	for($i=0; $i<@w; $i++) {
		if ($w[$i] =~ /^\//) { push(@{$exp{'dirs'}}, $w[$i]); }
		elsif ($w[$i] eq "-maproot") { $exp{'maproot'} = $w[++$i]; }
		elsif ($w[$i] eq "-r") { $exp{'maproot'} = $w[++$i]; }
		elsif ($w[$i] eq "-mapall") { $exp{'mapall'} = $w[++$i]; }
		elsif ($w[$i] eq "-kerb") { $exp{'kerb'}++; }
		elsif ($w[$i] eq "-ro") { $exp{'ro'}++; }
		elsif ($w[$i] eq "-alldirs") { $exp{'alldirs'}++; }
		elsif ($w[$i] eq "-network") { $exp{'network'} = $w[++$i]; }
		elsif ($w[$i] eq "-mask") { $exp{'mask'} = $w[++$i]; }
		elsif ($w[$i] eq "-public") { $exp{'public'}++; }
		elsif ($w[$i] eq "-webnfs") { $exp{'webnfs'}++; }
		elsif ($w[$i] eq "-index") { $exp{'index'} = $w[++$i]; }
		else { push(@{$exp{'hosts'}}, $w[$i]); }
		}
	$exp{'line'} = $lnum;
	$exp{'index'} = $index++;
	push(@rv, \%exp);
	}
close(EXP);
return @rv;
}

# create_export(&export)
sub create_export
{
open(EXP, ">> $config{'exports_file'}");
print EXP &export_line($_[0]);
close(EXP);
}

# modify_export(&old, &new)
sub modify_export
{
&replace_file_line($config{'exports_file'}, $_[0]->{'line'},
		   &export_line($_[1]));
}

# delete_export(&export)
sub delete_export
{
&replace_file_line($config{'exports_file'}, $_[0]->{'line'});
}

# export_line(&export)
sub export_line
{
local %exp = %{$_[0]};
local $rv = join(' ', @{$exp{'dirs'}});
if ($exp{'alldirs'}) { $rv .= " -alldirs"; }
if ($exp{'ro'}) { $rv .= " -ro"; }
if ($exp{'kerb'}) { $rv .= " -kerb"; }
if ($exp{'maproot'}) { $rv .= " -maproot $exp{'maproot'}"; }
if ($exp{'mapall'}) { $rv .= " -mapall $exp{'mapall'}"; }
if ($exp{'mask'}) { $rv .= " -network $exp{'network'} -mask $exp{'mask'}"; }
if ($exp{'public'}) { $rv .= " -public"; }
if ($exp{'webnfs'}) { $rv .= " -webnfs"; }
if ($exp{'index'}) { $rv .= " -index $exp{'index'}"; }
else { $rv .= " ".join(" ", @{$exp{'hosts'}}); }
$rv .= "\n";
return $rv;
}

  07070100028745000081a40000000000000002000000013ac0389f00000056000000200000000000000000000000000000002000000003reloc/bsdexports/config-freebsd   restart_command=killall -HUP mountd nfsd || (mountd ; nfsd)
exports_file=/etc/exports
  07070100028746000081a40000000000000002000000013ac0389f000000a5000000200000000000000000000000000000001e00000003reloc/bsdexports/config-macos restart_command=ps aux | grep -e nfsd -e mountd | grep -v grep | awk '{ print $2 }' | xargs kill -9 ; sleep 2 ; nfsd ; mountd /etc/exports
exports_file=/etc/exports
   07070100028747000081a40000000000000002000000013ac0389f00000056000000200000000000000000000000000000002000000003reloc/bsdexports/config-openbsd   restart_command=killall -HUP mountd nfsd || (mountd ; nfsd)
exports_file=/etc/exports
  07070100028748000081a40000000000000002000000013ac0389f00000051000000200000000000000000000000000000001d00000003reloc/bsdexports/config.info  exports_file=Exports file,0
restart_command=Command to restart mountd and nfsd,0
   07070100028749000081a40000000000000002000000013ac0389f00000059000000200000000000000000000000000000002000000003reloc/bsdexports/config.info.de   exports_file=Export Datei,0
restart_command=Kommando um mountd und nfsd neu zu starten,0
   0707010002874a000081a40000000000000002000000013ac0389f00000060000000200000000000000000000000000000002000000003reloc/bsdexports/config.info.es   exports_file=Archivo de exportaciones,0
restart_command=Comando para rearrancar mountd y nfsd,0
0707010002874b000081a40000000000000002000000013ac0389f0000005f000000200000000000000000000000000000002000000003reloc/bsdexports/config.info.fr   exports_file=Fichier de partages,0
restart_command=Commande pour red閙arrer mountd et nfsd,0
 07070100028750000081a40000000000000002000000013ac0389f0000005a000000200000000000000000000000000000002000000003reloc/bsdexports/config.info.pl   exports_file=Plik 'exports',0
restart_command=Polecenie restartuj眂e mountd i&nbsp;nfsd,0
  07070100028751000081a40000000000000002000000013ac0389f0000005b000000200000000000000000000000000000002000000003reloc/bsdexports/config.info.sv   exports_file=Exporterar fil,0
restart_command=Kommando f鰎 att starta om mountd och nfsd,0
 07070100028752000081a40000000000000002000000013ac0389f0000005a000000200000000000000000000000000000002000000003reloc/bsdexports/config.info.tr   exports_file=Export dosyas,0
restart_command=mountd ve nfsd'yi tekrar baatacak komut,0
  07070100028755000081a40000000000000002000000013ac038a00000004d000000200000000000000000000000000000002300000003reloc/bsdexports/config.info.zh_CN    exports_file=Exports 文件,0
restart_command=重新启动 mountd 和 nfsd 的命令,0
   07070100028756000081a40000000000000002000000013ac0389f00000049000000200000000000000000000000000000002800000003reloc/bsdexports/config.info.zh_TW.Big5   exports_file=蹲郎,0
restart_command=穝竟笆 mountd 籔 nfsd ,0
   07070100028757000081e40000000000000002000000013ac0389f0000010e000000200000000000000000000000000000002300000003reloc/bsdexports/delete_export.cgi    #!/usr/local/bin/perl
# delete_export.cgi
# Delete an existing export

require './bsdexports-lib.pl';
&ReadParse();
&lock_file($config{'exports_file'});
@exps = &list_exports();
&delete_export($exps[$in{'index'}]);
&unlock_file($config{'exports_file'});
&redirect("");

  07070100028758000081e40000000000000002000000013ac0389f00001024000000200000000000000000000000000000002100000003reloc/bsdexports/edit_export.cgi  #!/usr/local/bin/perl
# edit_export.cgi
# Display a form for editing or creating an export

require './bsdexports-lib.pl';
&ReadParse();

if (defined($in{'index'})) {
	&header("Edit Export", "");
	@exp = &list_exports();
	%exp = %{$exp[$in{'index'}]};
	}
else {
	&header("Create Export", "");
	}
print "<hr>\n";

print "<form action=save_export.cgi>\n";
if (%exp) { print "<input type=hidden name=index value=$in{'index'}>\n"; }
print "<table border width=100%>\n";
print "<tr $tb> <td><b>Export options</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td valign=top rowspan=3><b>Directories to export</b></td>\n";
print "<td rowspan=3><textarea name=dirs rows=4 cols=30>",
	join("\n", @{$exp{'dirs'}}),"</textarea></td>\n";

print "<td><b>Export subdirectories?</b></td>\n";
printf "<td><input type=radio name=alldirs value=1 %s> Yes\n",
	$exp{'alldirs'} ? "checked" : "";
printf "<input type=radio name=alldirs value=0 %s> No</td> </tr>\n",
	$exp{'alldirs'} ? "" : "checked";

print "<tr> <td><b>Read only?</b></td>\n";
printf "<td><input type=radio name=ro value=1 %s> Yes\n",
	$exp{'ro'} ? "checked" : "";
printf "<input type=radio name=ro value=0 %s> No</td> </tr>\n",
	$exp{'ro'} ? "" : "checked";

print "<tr> <td><b>Use Kerberos?</b></td>\n";
printf "<td><input type=radio name=kerb value=1 %s> Yes\n",
	$exp{'kerb'} ? "checked" : "";
printf "<input type=radio name=kerb value=0 %s> No</td> </tr>\n",
	$exp{'kerb'} ? "" : "checked";

print "</table></td></tr></table><p>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>Remote user mapping</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>Map root user to</b></td>\n";
printf "<td><input type=radio name=maproot_def value=1 %s> %s</td>\n",
	$exp{'maproot'} ? "" : "checked", "Unprivileged user";
printf "<td><input type=radio name=maproot_def value=0 %s> User/UID\n",
	$exp{'maproot'} ? "checked" : "";
$user = $exp{'maproot'} =~ /^([^:]+)/ ? $1 : "";
print "<input name=maproot size=8 value=\"$user\">&nbsp;&nbsp;\n";
printf "<input type=checkbox name=maprootg_def value=1 %s> And groups/GIDs\n",
	$exp{'maproot'} =~ /:/ ? "checked" : "";
$groups = $exp{'maproot'} =~ /:(.*)$/ ? join(' ', split(/:/, $1)) : "";
print "<input name=maprootg size=30 value=\"$groups\"></td> </tr>\n";

print "<tr> <td><b>Map all users to</b></td>\n";
printf "<td><input type=radio name=mapall_def value=1 %s> No change</td>\n",
	$exp{'mapall'} ? "" : "checked";
printf "<td><input type=radio name=mapall_def value=0 %s> User/UID\n",
	$exp{'mapall'} ? "checked" : "";
$user = $exp{'mapall'} =~ /^([^:]+)/ ? $1 : "";
print "<input name=mapall size=8 value=\"$user\">&nbsp;&nbsp;\n";
printf "<input type=checkbox name=mapallg_def value=1 %s> And groups/GIDs\n",
	$exp{'mapall'} =~ /:/ ? "checked" : "";
$groups = $exp{'mapall'} =~ /:(.*)$/ ? join(' ', split(/:/, $1)) : "";
print "<input name=mapallg size=30 value=\"$groups\"></td> </tr>\n";

print "</table></td></tr></table><p>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>Clients for this export</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td valign=top><b>Clients</b></td> <td>\n";

printf "<input type=radio name=cmode value=0 %s> <b>Hosts / netgroups</b>\n",
	$exp{'mask'} ? "" : "checked";
printf "<input name=hosts size=40 value=\"%s\"><br>\n",
	join(' ', @{$exp{'hosts'}});

printf "<input type=radio name=cmode value=1 %s> <b>Network</b>\n",
	$exp{'mask'} ? "checked" : "";
print "<input name=network size=20 value=\"$exp{'network'}\">\n";
print "&nbsp;<b>Mask</b>\n";
print "<input name=mask size=20 value=\"$exp{'mask'}\"></td> </tr>\n";

print "</table></td> </tr></table>\n";

if (%exp) {
	print "<table width=100%>\n";
	print "<tr> <td><input type=submit value=Save></td>\n";

	print "</form><form action=\"delete_export.cgi\">\n";
	print "<input type=hidden name=index value=\"$exp{'index'}\">\n";
	print "<td align=right><input type=submit value=Delete></td> </tr>\n";
	print "</form></table><p>\n";
	}
else { print "<input type=submit value=Create></form><p>\n"; }

print "<hr>\n";
&footer("", "exports list");

07070100029e0e000041ed0000000000000001000000023ac03ba000000000000000200000000000000000000000000000001800000003reloc/bsdexports/images   07070100029e3a000081a40000000000000002000000013ac0389f000000f5000000200000000000000000000000000000002100000003reloc/bsdexports/images/icon.gif  GIF89a0 0   櫃櫶烫fff!    ,    0 0  苿彥隧蹿[冝<`	釮
圩:l踰!,灍︺<$d,91賠uM2荞l*扸泳篈(镴駔吰ii3薴汒\撸6鶟#(鯂6ˇx8W7H颧HTt5墿x郔殸5腨定戟`[饫Zk[腙4:∷+猁
,K|jx惶莒\3鹛:@]m}峂崜蜐-.>⺌  ;   07070100028759000081e40000000000000002000000013ac0389f00000526000000200000000000000000000000000000001b00000003reloc/bsdexports/index.cgi    #!/usr/local/bin/perl
# index.cgi
# Display a list of exports

require './bsdexports-lib.pl';
&header("NFS Exports", "", undef, 1, 1);
print "<hr>\n";

@exp = &list_exports();
if (@exp) {
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>Directories</b></td> ",
	      "<td><b>Clients</b></td> </tr>\n";
	foreach $e (@exp) {
		print "<tr $cb>\n";
		print "<td><a href=\"edit_export.cgi?index=$e->{'index'}\">",
			join(" ", @{$e->{'dirs'}}),"</a></td>\n";
		if ($e->{'network'}) {
			print "<td>$e->{'network'} / $e->{'mask'}</td>\n";
			}
		elsif (!$e->{'hosts'}) { print "<td>Everyone</td>\n"; }
		else { print "<td>",join("&nbsp;|&nbsp;",
					 @{$e->{'hosts'}}),"</td>\n"; }
		print "</tr>\n";
		}
	print "</table>\n";
	}
else {
	print "<b>No exports currently defined</b> <p>\n";
	}
print "<a href=edit_export.cgi>Add a new export</a> <p>\n";

print "<hr>\n";
print "<table width=100%> <tr>\n";
print "<td><form action=restart_mountd.cgi>\n";
print "<input type=submit value=\"Apply Changes\">\n";
print "</form></td>\n";
print "<td valign=top> Click this button to apply the current file exports\n";
print "configuration. This will make all the directories listed above\n";
print "available with the options specified.</td>\n";
print "</tr> <tr> </table>\n";

print "<hr>\n";
&footer("/", "index");

  0707010002875a000081a40000000000000002000000013ac0389f00000142000000200000000000000000000000000000001d00000003reloc/bsdexports/module.info  name=BSDexports
desc_pt=Exporta珲es de NFS
desc_tr=NFS Ba餷ant齦ar
desc_fr=Partage NFS
desc_es=Exportaciones de NFS
desc_de=NFS Exporte
desc_sv=NFS-exportering
desc_pl=Udost阷nianie po NFS
category=system
os_support=freebsd openbsd macos
desc_zh_TW.Big5=NFS 蹲
desc=NFS Exports
risk=low medium high
desc_zh_CN=NFS 输出
  0707010002875b000081a40000000000000002000000013ac0389f00000175000000200000000000000000000000000000001700000003reloc/bsdexports/notes     - Cannot have different options for the same host on the same *local*
   filesystem. Ie

/usr -maproot=daemon florissa
/tmp -ro -mapall=jcameron:staff daemon florissa

Would not be allowed if /usr and /tmp are on the same local. But

/usr -maproot=daemon florissa
/tmp -ro -mapall=jcameron:staff daemon

Would be allowed because there is no local-filesystem/host overlap

   0707010002875c000081e40000000000000002000000013ac0389f00000151000000200000000000000000000000000000002400000003reloc/bsdexports/restart_mountd.cgi   #!/usr/local/bin/perl
# restart_mountd.cgi
# Do whatever is needed to apply changes to the exports file

require './bsdexports-lib.pl';
$whatfailed = "Failed to apply changes";
$out = &backquote_logged("($config{'restart_command'}) </dev/null 2>&1");
if ($?) {
	# something went wrong.. display an error
	&error($out);
	}
&redirect("");
   0707010002875d000081e40000000000000002000000013ac0389f000010f7000000200000000000000000000000000000002100000003reloc/bsdexports/save_export.cgi  #!/usr/local/bin/perl
# save_export.cgi
# Save or create an export

require './bsdexports-lib.pl';
&ReadParse();
$whatfailed = "Failed to save export";

# Validate and save inputs
@dl = split(/\s+/, $in{'dirs'});
foreach $d (@dl) {
	(-d $d) || &error("'$d' is not a directory or does not exist");
	}
@dl || &error("You must enter at least one directory to export");
if ($in{'alldirs'}) {
	@dl == 1 || &error("Only one directory can be given if the ",
			   "'export subdirectories' option is chosen");
	if (&root_dir($dl[0]) ne $dl[0]) {
		&error("When using the 'export subdirectories' option, the ",
		       "exported directory must be the root of a ",
		       "<i>local</i> filesystem");
		}
	}
$exp{'dirs'} = \@dl;
@devno = map { (stat($_))[0] } @dl;
$exp{'alldirs'} = $in{'alldirs'};
$exp{'ro'} = $in{'ro'};
$exp{'kerb'} = $in{'kerb'};

if (!$in{'maproot_def'}) {
	$in{'maproot'} =~ /^-?\d+$/ || defined(getpwnam($in{'maproot'})) ||
		&error("'$in{'maproot'}' is not a valid user or UID");
	if ($in{'maprootg_def'}) {
		@rgl = split(/\s+/, $in{'maprootg'});
		foreach $g (@rgl) {
			$g =~ /^-?\d+$/ || defined(getgrnam($g)) ||
				&error("'$g' is not a valid group or GID");
			}
		$exp{'maproot'} = "$in{'maproot'}:".join(':', @rgl);
		}
	else { $exp{'maproot'} = $in{'maproot'}; }
	}

if (!$in{'mapall_def'}) {
	$in{'mapall'} =~ /^-?\d+$/ || defined(getpwnam($in{'mapall'})) ||
		&error("'$in{'mapall'}' is not a valid user or UID");
	if ($in{'mapallg_def'}) {
		@rgl = split(/\s+/, $in{'mapallg'});
		foreach $g (@agl) {
			$g =~ /^-?\d+$/ || defined(getgrnam($g)) ||
				&error("'$g' is not a valid group or GID");
			}
		$exp{'mapall'} = "$in{'mapall'}:".join(':', @agl);
		}
	else { $exp{'mapall'} = $in{'mapall'}; }
	}

if (!$in{'maproot_def'} + !$in{'mapall_def'} + $in{'kerb'} > 1) {
	&error("The map root users, map all users and kerberos options ",
	       "are mutually exclusive");
	}

if ($in{'cmode'} == 0) {
	# Exporting to a list of hosts
	@hl = split(/\s+/, $in{'hosts'});
	@hl || &error("You must enter at least on host to export to");
	$exp{'hosts'} = \@hl;
	foreach $h (@hl) {
		$ip = gethostbyname($h);
		if ($ip) { push(@iplist, $ip); }
		}
	}
else {
	# Exporting to a subnet
	&check_ipaddress($in{'network'}) ||
		&error("'$in{'network'}' is not a valid network");
	&check_ipaddress($in{'mask'}) ||
		&error("'$in{'mask'}' is not a valid netmask");
	$exp{'network'} = $in{'network'};
	$exp{'mask'} = $in{'mask'};
	}

# Check for an export to the same host on the same local filesystem
&lock_file($config{'exports_file'});
@exps = &list_exports();
for($i=0; $i<@exps; $i++) {
	next if (defined($in{'index'}) && $in{'index'} == $i);
	$samefs = 0;
	foreach $d (@{$exps[$i]->{'dirs'}}) {
		if (&indexof((stat($d))[0], @devno) >= 0) {
			# Same filesystem as this export..
			$samefs = $d;
			}
		}
	next if (!$samefs);
	foreach $h (@{$exps[$i]->{'hosts'}}) {
		$ip = gethostbyname($h);
		if ($ip && &indexof($ip, @iplist) >= 0) {
			# Another export on this filesystem is to the same host
			&error("The directory <tt>$samefs</tt> is already ",
			       "being exported to <tt>$h</tt>. FreeBSD does ",
			       "not allow directories on the same ",
			       "<i>local</i> filesystem to be exported to the ",
			       "same host separately");
			}
		}
	if ($exp{'mask'} && $exp{'mask'} eq $exps[$i]->{'mask'} &&
			    $exp{'network'} eq $exps[$i]->{'network'}) {
		# Another export on this filesystem to the same net
		&error("The directory <tt>$samefs</tt> is already ",
		       "being exported to <tt>$exp{'network'}</tt>. FreeBSD ",
		       "does not allow directories on the same ",
		       "<i>local</i> filesystem to be exported to the ",
		       "same network separately");
		}
	}

if (defined($in{'index'})) {
	$old = $exps[$in{'index'}];
	$exp{'public'} = $old->{'public'};
	$exp{'webnfs'} = $old->{'webnfs'};
	$exp{'index'} = $old->{'index'};
	&modify_export($old, \%exp);
	}
else {
	&create_export(\%exp);
	}
&unlock_file($config{'exports_file'});
&redirect("");

# root_dir(path)
# Returns the root directory of the filesystem some path is in
sub root_dir
{
my $dir = $_[0];
my @pst = stat($dir);
while(1) {
	if ($dir eq "/") { return "/"; }
	my $lastdir = $dir;
	$dir =~ s/\/[^\/]+$//g;
	if ($dir eq "") { $dir = "/"; }
	my @ust = stat($dir);
	if ($ust[0] != $pst[0]) { return $lastdir; }
	}
}

 0707010002b515000041ed00000000000000010000003e3ac03bb600000000000000200000000000000000000000000000000e00000003reloc/caldera 0707010002b516000081a40000000000000002000000013ac038b90000212c000000200000000000000000000000000000001b00000003reloc/caldera/Alphabet.gif    GIF89a&   33獭¤缮駄j贏A向螯儋蹂妁隡M覼Z謪呧憫浠活ww輔o坳犏技睥㈣鞍腈纟耨                           !     ,    &    巇i瀐l刖p,蟭m選|罓pH,徣蒷:煬J璟瑅隧z苦皒L.浵璐z蚽粄佮煣r胘p%(	*	Jy+z%x'倓$rS%"晸 槄-|~'/晑)q漺玽瑂8u.()宱魄壬仕掏蜗醒矣哉F+(
*
)'錔+钆%怃'7鈥稱"鴯鴚@x騌淜.吜U纁犅`6p'X盃	t崂7慆茩,q@ 謗贶沙烜
J川lZ4Q&郂6H癏W憟[u翧~洔B憉kW0俶耿E!暘諑洳愂駧: d羥 dM蕾6RKa戱M捍橛⊿玘綋胱3-6Qka 埇6欵[嗠 /r|Es粼憬d鹅=訧(蟏z豯剜蝗0嬹涇`飝N綏sj貄M$諳&_B㑳~葢 銐`Z懔r` 鏠r^}!$HD(蚶 鏎vp!u90[巖_蔘聜)bH搥)Z奝GD鯭墜"D覊|鞴P槀 	"
r  E^瞕xT*!H1WB9梻坉h閑9B藏!|髅#P鐶 '82賲歁8#橿HLz異
ǎ黫舁'騿"X2倉瞄{N瀤姙飸5*,
G	И皓刐`@扃XHg~箊鸽~萕翱灆$入-

繬k*聵4瑟"W湵内９铝蚯&轨* 
釈も	*2陇彩0f騡A扛詋狓謾)墰膽;%攤_肬+櫺1wOo	顮:0%安舌棘r&蕦6,<2+ ;邷:椹,:80QRG邉B疏旂彩8,O$L舨h谔5 Z低郶习恗4 k彁s淫珽:叀梦"-覡 t忚0漅 厜)<垤:<0V*'泱85A凴昒罌帵诒莏
斖@pL&9) "=pU觳硝@唳銘z 叮l;D纒柒敒,0K]"s$OB辏渻6<0UO辇D+k肜/儨绞w澕-4M肊I5>9齻哞0   蠬%KGGT&:10
jkIh穨牤}M揧2;@韊跦Y柳动M'膏6
"m1a鋎婵ⅲ哵3丕坥mkZ覀%駇{cibh-y$d伤皹|勯b/1R6揢(M洧!癲`6、饝圣*鳮K2倗pf):`莁宒6	桪B挋'J鋪U蠶2锔;F纴犘巃:`B荷 皝y,靉D "I	);'w龢H1窾飏A#Q6$ 強q	!Y pmw 琙GA攻%1"显礫87#&>Sn敾炿Ni?%覘9茳Z挷U`e1a('!p潇&Wb蔷%檣A
 @ $:笴筬,薠Z囹蒑+5  纙%!	舛帹櫼f踃!'!E<贙I駧>糞r瓄S劥箔L(AN湍tn4薒\#{N8蟦箰瞮葽\)8芰  u D6";m唊饃 ,&)<蝋j&4\镨@搨+<酹瞇蓨嚫+of6 =籒j寒澨	G谼\叴YU)JCT%	3同浧4鞨F[谛礬訜1Φ~褕缒鞟担埝s~罖崴0 嵩諼$灿y菰T獟<擰FS!p恉18Lbc渴%0-淽瀊嚰煎K犀U樷餅 8痋擏陘唽罸$AQ@Vē3钫[3柾薦%'餥薁核縩oD玞喭筟恻
M醥y[6劋!^7|捦!Q-be/;損薡躰粮績E坿竧"Nbw憣B$-^矑}勰逧&蜚Y'@1t踌e韕竉|責R钘Y0鈣5(4鈢寬q刧禲Y因i渌c遣驔:粘谗1B愠畦)(踏@菬厗d箜.i3^"絈D鸯x~k埶8F竘@俈Z]Bx戉ㄙ:刲0	6,w1"峻e鋵s坔ofA峉譆绂冑)X儂HG岗凨亜璵`u琘捣r洍h`烘殬攠]嘑簷恞軽5槨忏#筰?秔t霛$全N<HzR)稏Csk9L蠮狻7変⒗7)涛t艺兦襦:黪jT己49	聅(!驊K鉡9\紨r.y挄u0漎怗钑蜖!Lr赶b懭b戊*';溺宙n&沤鴴楽[E蟬|硘軖qq鬯詺e碌厺临烌*憤嶲&7D0-jB>嫤狽L阢F墡JX殪格溺=鑺部$苐淗c万!s蒨氥3渮8l脤,鵜M@#惱(0
凊!盛|郻澳菫倶傠匰$雑貛EN智逿蜻蜶F_箨賫彃飢傉囇豾)@[<&4sjZ58*瘿&缇 ,S*L;崷0X騫唓 荝Bs`l"t揘#9$\-qA#|謟-鐈K郿%涪,=Csi$<w㏒P,`lxR2pc0瑂C,x_.(og5賎>sA?W8h$opv詅X=":26qW荄骣m謤康nQGe?Xb'TWi)イkg乿剤秝挦匵(v惼gDWLB╬j鱺gp紼bd3{朜^%}`莔鉹x睪詀 u "斝   毐zh/嗻CM2憌_'墄蒅调|晈壙Pz恭Eu|貓Q#|a妘$$x妵)糶O!}P襶'+礨|搥'訟1|苳p攭浩ZvY體6b%@D浚腈(PO+3]説髣j66wO觱睹u馪2+禰"|4!F"p+聖,$Ed;页q噯<$4V鵳2賎Hyd7賟b;稪v1擹'f觾﹖G5>腷9臔?脣朐S轰n*揼I3 朼<#=猓2 ┐S佊掄p )JK钀4B@gNQ4D2$R%9却N0惗pa0v&嵩	7v6擟9v0n 7
c纒僱t~7aa7羔&銱<D,攂&}P|凙 P]FjgaF"E佊'6 0锓酾M蹛3* ly$&d*y槻視)!~决Nq(P醟善(汿295姥`h?W寧t&暃母洂蟲1WxqXy刬憚榚屼使)揂Y唜崨3囈岉@铷忣禎V厣濟楪呫2床涾槥穯}47晣@BX35噐2T<魫孉A>訜+鬅g,祼\僕X乄:詢誀F爌莥
%狩~)8｀   !+C2S耿=Rq禈迤@8L%9$ぁ26-眘疗aFPO	
()溬謹K2堑v*@D4曫3梾枂橙hI6錢4.f7	崥sP頿~c8頟=wrw9s9│mCNBUY6p{锁O鴛滲=r苂[裿:y!uE>唽k錄T8/88s褧⒋嶓f!t彋j猙2鴳N@=	焢5	97巗u'IXP覷K瑲Q&诣 4
@;o8[韯+"P7v2*槒叀5vPc]XX6	桰?rB5 磩01nS觢拻+=g裀gJ鵯332℡Ns E酕W缆U063枞P慗?芝鈮/U槙v蒄k矚2;蚶bn闍乁N=嵸5?呩'XU+泝5`偀墏1鄜7m~２(鄄ZfH趦2珜73+1WSZ*鄝处J6J6蛓凬鴈鴡f*厡髣#祷ETZpib晟	窞Wk6觿!F2i+H9e>蘤 q;幅Xy4~B莹%SZc;C箆<#9@3 5HgZ珰h笇Wq杣2俀2?乒冠g窫篔る橬IX瞠t鍁a嫞WU伙HB7竌血队硾uY頁戲害KxP
zFK櫦垗k歂5菗G揋i鷉k摷5杲,D64I搚歠{jY|,2霵2扼&$"U瞟:zbMS}+q(9縮
9 馵E5犲
efN!9磛:X~2V(騡N虺菱鏅䓖罼8*篹;kEi淗g檬bv2"7卿慦m`苾]診T筬m茣少C纽@鈠+c熡Z%W(:AH>駔E掠
y%=髃S釶 K:X+兂ニ篖凷耽嵘{G&尣扷懗}藳 < o ?缧	[3h緰:E{k槕垱毨Cwi:)帠潝,僾噮-"蹍糷魃滾斬)f淭&3胜	D喆q昸93+4O鹠Q+綰怂W玽VkYf粒W	镀Kn]蹫%th発5UB}&魐;'|拭o礖B酣>粼烧j窿4y[d傃ǜY儷	<S却奱6$N報7鴾祏壄质B)s藘h讂9g谼7zR溝橎蒪8\71g0>棎)u坿 囐7脗猟淜Y蔏[z∧<厊 鐞,8潷w3M搼,h)緜C5rN踀!斁Qμ鍤<<( 馉胾殣J穞Z邻蠜益粲1氏言tf=鸳菱譞驏猯K(礼枷It7)3
v円&xI詌t8=蔮漾p枪e9H&涬d+ =Yy\@-帒2潬?囆P祌衿4郳v{Q儾簀N%aB$㏒D)x
:bp,_(bi6稜 +葍J蹌]7xf〔孊@'" #e*A茬0	堎盌黑蜚2坼据确怗敃絒呱X洉澾_s%.= .Me卶c趐襰谜胤
&mルT崱wB碩}氻矻z:齕b專讞=璏wS'u忖i6*f牾7伸3畣g\9搽檎隼C蚶x皭摶= 憢钟滀韘s裊2嘨2埮転	.ハ灏 踈摶t3泄铸4b蔅9sR踞m灥)歇r妞5艤鉿;裓绰3朷8|f3慿涔滎蓶K嗋詶%.!鰐0娰K|N5谕?椿９孻爵霧eDPf (+"鱤踏\@称:藌籧H&X共v﹥LQ貞K鼋e漷偽蔲瀱轪U獦儝滁襲}讄n凉66A葱4釤5傿倊-劬)貴40h=鞊淕0慓{Q晍ZYpeV 郅i哩篺$!磐g鶾偷]9(%n曩5債t2WB%#	/N$y4臐慳怀嘠D+7挥F!2p<」摎>鄇36菴歎@逤鈮鐴/3&q鐷o~2働J鋣班瀻晷涥楣洞騆隂=l阦鳆#鑫鑔2`軠5幪萍綸锰
=鑫	Z芅1'箹縩奱劤麝!TVMBu7涝 x3m式觎a?鑾疍:Z蚸醗鞯m嶚6~L+歪嶘H兦蠩图缭甃<
学p,-;9椮dw艟Jd3	E =D閊蜀罸閿{閤]琄4衮嚅宻榨<陹邳v笉>v)勄7W室L仪#7S%eI6M\聪鞭嵣)[W劜袾W85;Ss\MZY蹓B 00
*A仒 1猯=B楶>1r#呴G榾袆 2j瘨xDs#c郰[廆0o躗躓!j嘹DI糸q橍頷$,
\U綄pBT<n\臲殭ǖ (-T
 r<@5bHr&髱R螵\瞉
靔囎魬夡&-}s伓粀1&  堣輴HR&矙K人DDbU:p桸p郻9)2 瓇#IY伊蓃~dd訇'^+j:顕藯痟𻱻S9噅蹹t＠廥K巂鎎爊Sg职*碻V[珃悗氇I橳!3榡徸h踆c;碙PXP4璦J%8R&*攲蘽y5a	9喡箄硦6V瑎闬$卤)7郈毶$镃癖COTh,Dl.+q蟫[鳏5釯=茝砞R-輜鞡佤3?XD礎兏恟7峚DF摩牎酨Hp0'頥駮n终K%窹=iE4HS~弣=懽G繁	襭鱀-癫梥幚_"憅磝x#r!创"}-2 丈5笛46<賯庋2n8T伓]'琀a@:d|T 茣擡P/0` %V輘&)yM桬aBp	鰞K襻[lV2廔5榎I呼` }1戫騋/饤澋GV2祊S)5&PQ倲Q`諲d0jYXE鰢搸枤0?16 -D噋D& 髆z}燚) 8塓戦*欚珺鞌%"% 磺:V\垅|F1T壤h	苁a圥 )pe 	呐萱;l)5W	椊閒癭脱񄙔圙#q穋GTl^;n辅jd鬈4;4欆蜺旰S墱踟朼♀R即酑髊()b(蛪~梃腥^墕D7ktI/几lX!菕qF耯5埛e頌k5[鵤:fS普G馀	線D瞁=樄vnCq蚯崟0@ 矱6帺GW搬噥s趼=悘bNU@Iib?緳&湆#蔰`;贳屷H揟2漚螡9u/ I厺E`#+$v羴T 啗X碋碲娜楮Gs?耨儚诧}鬱資N鹰򎝉﨎sW!T譻<嫀屄蛘\苢C夃劋&	B熞\Wp3@碊-窺掝 沽麓  f曘癊]蚰珿%/瓛嶹 0q. kB艠h\P碭^縢寪xr酀>挱-郲)@普f	6:嚴繬B粯r抍&苺~仠{鹆圡e凚/壤2￤腋mD44浈;兡sXD30h#p5樏倭踐'Q 5F%呠腯:N!BA7嗳7惃條圡琣(` }LF&茝Z_#r^渊T2\穨櫯)jxQ	^荓ejk拏4`)Gà	G畆紑$%噅剫L滉刕"(/頉*谿?MuA烑|燑緹$篎6X/諰h腰切5N卨疡DS喟 [躁&已DN孲jM渑$1S倜(豮2i渎^ 1A枮午4)Ms	h舙l N痹妀溅*7b櫶昑寐E渂岖*5\Z獞I|'塽DV賐S1
瞐 6,A硅.)D櫃x鳴雾現鹏R$曬u"I|鷋3}牛~+虷9X騟嵧!'0尚喢擣俈T莳@嶫唰xg1倓J頚@拕%\鉌膷еW鰭y陣q@)恕唴CAΠ 5Tn7敷杪n卑\* Z a$襮Q礮E尲
孂槪磹òH9悑la怜aQlX=葍 飉X>}旼z}痊"賽OiO+,\PA秽-aC!蓀$(+娲:#蹘mb揟
\8+ /p+|鍮_=董V沣\&とku铱炿$8贇P瞵W^替束$娩:
埮k!檵駀粼rq@l臅6搎Y建vP瑱7胭>髽蠚tf'徵7(夕諉荑牜翋钅l壷M墤Jr蓥督K怚9婝侴緫娥镮怷`謾:軄龋Ki鑴T标N摲蛯tu*I艆%4麙@篆貯韑8栚pq$@釯$c找P*v芣鱭H硷u-6岗譃皝臜(x<飡k
t溜,=oY`蔈铕嚊C樐2鳾ox/q5堹肓亏,|BR奒糽	﹚8
n姀<棐粀.蝟棑溿运x.槒0蝠(緌厙晃q7/V }u6徆B只唕x晾亓&樜镩i搇T;侃(牀=韎g~'%J吗ǒ飧{`精蒿]牫
`巕:徨^q炉w耢喙/媁骿亏5畒R=驚蛆?瘧J鋫夤P艖re3<韐o>骱=>SY-梻mh锱ql,辐iO曭涳+銳茉# 6K断{w攝2秺c廼長	q鄕!]C? _/鋙?龝
`辇` 
ー80 "`* 諁栿酀_B$钶2Y`j驗8 ,僺脡G鑡	瓳鞚
瞏赀灨`薁餫卩鈆B)]BD牪i籤h矡1栲2a:刘\
Ra ,r!%!醬a娽抋氠瞐横隆6  ;0707010002caf1000041ed0000000000000001000000033ac03ba000000000000000200000000000000000000000000000001200000003reloc/caldera/acl 0707010002fb03000041ed0000000000000001000000023ac03ba000000000000000200000000000000000000000000000001900000003reloc/caldera/acl/images  0707010002fb04000081a40000000000000002000000013ac038ba00000207000000200000000000000000000000000000002200000003reloc/caldera/acl/images/icon.gif GIF89a6   3f))曙驐换尦硢＃z灋v屯毺虣缮椚葨排斄翍浇幑箣父姤拻n烫毼螡蜒⑿孝佑ㄕ摘栽乇烫虛摀fffdddccc```YYYSSSRRRAAA@@@)))                                                                     ,    6   绖pH,徣y\|@ⅷtJ晵LΧ(i0喟x蝋B犾V8U置	舝)詐d麧LDr)yI{}))E)唞nH~		D)x擟圙妺湉	劋E弿滲挸D礒腹籅伎摿B肏故	涛蠔)	灾讏)谯鉁軨死遒 頉~炬93g餃>~ R&0A凍鰤譓r矱竪顬"
6锁鎻I悭d8摇鱞蔰傃%焂5g9@窭,烜
)　螕H*5J狝P滼Uj丅4p赖痐6%$ ; 0707010003102f000041ed0000000000000001000000033ac03ba000000000000000200000000000000000000000000000001500000003reloc/caldera/apache  07070100032739000041ed0000000000000001000000023ac03ba100000000000000200000000000000000000000000000001c00000003reloc/caldera/apache/images   0707010003273e000081a40000000000000002000000013ac038bb00000242000000200000000000000000000000000000002500000003reloc/caldera/apache/images/icon.gif  GIF89a6   /O33蘰p﹤偩ゥ橛吁珑兮a 牝s塍z换尦硢＃z灋v览廊葨排斄翍浇幑箣拻nPP<烫毼螡挝炑癣佑в莹换曊摘种乇沣情橐创觊Jtsp谪诱游あ炋势徇躩hf邈釗拺粴儍~iiibbbYYYSSSAAA888...)))$$$   !   ,    6   缊pH,徣y斬l法tJ曗rΧH蓧@喟x<~f汾
弮2'9窇j6徖%?wIym|?C?儀kC5P78:D?2?4垀?v岰84ī?梟2仮E:'0'?B&櫙&B嫶D!;
0.(?!? 钠壬B送.*季肿?賹
**?#C鏆C请垲*+?1~|p脟>mE`艎&0 袓羶鷴筀E肳:u氯疂>皥1#艐	l姁燞緬閯I`_l"渊懊HI膱馫協jCX逼鑁鈏T8"т&
%,<X硕穔/ズ钞莼sEQp ’呖u 垵
+^谈馼
 ;  070701000340ad000041ed0000000000000001000000033ac03ba100000000000000200000000000000000000000000000001400000003reloc/caldera/bind8   0707010003553e000041ed0000000000000001000000023ac03ba100000000000000200000000000000000000000000000001b00000003reloc/caldera/bind8/images    0707010003553f000081a40000000000000002000000013ac038bb0000021c000000200000000000000000000000000000002400000003reloc/caldera/bind8/images/icon.gif   GIF89a6   ))33藤鈇牝s塍z换尦硢＃z灋v览廊葨排斄翍浇幑箣拻n烫毼螡挝炑癣佑в莹照脂刎贬崮殚种绚燡tsp觊尜滓衷悉淌栖谥邃廛僭匝蹄徂湙杍hf净竷~噍眄黹殚iiidddccc```YYYUUURRRAAA999666...)))   !  
 ,    6   @卲H,徣y\蘦定tJ曗rΧ厝e.喟x<瞇GI#稝粦膂]_{xl丆?凢yC25Q8;K?v

7/煚?揅?E機: &0?D嚜B<))?稦簣季.%1迫够虄
'钠?噌郈始氊!延F
遄z"($,徘  责知z!M紜#T带癰诰/銴湼c
>韠A!Gl4lX蒖儹!#KnL磇B8sV%銼9e$2I撁H*])剻x淛*訞$厥但庄] 獾爜兂h营]浂&!A  ;07070100036d00000041ed0000000000000001000000033ac03ba100000000000000200000000000000000000000000000001900000003reloc/caldera/bsdexports  070701000382d7000041ed0000000000000001000000023ac03ba100000000000000200000000000000000000000000000002000000003reloc/caldera/bsdexports/images   070701000382d8000081a40000000000000002000000013ac038bb00000238000000200000000000000000000000000000002900000003reloc/caldera/bsdexports/images/icon.gif  GIF89a6   g  77颭Q祇o魭趑鮀FFOPPbccahf]damqo:=;x{y憭徝脪揪幓粚吵啴畟＃z灋v览朗蕵热柵艛亮懡綆父姎歵晻p拻n烫毼螢蜒⒂缨蜒ビ莹照綏枛}儋肚黔屯贡保铑唧蝾噬乒傅噙苜卣研椭孕個~腙鶼YYSSS)))   !   ,    6   @宲H,徣y$绩tJ曵Χ9琍喟x<~f汾帍奆/sn#誰火q魒kG3[?GxE

?
3t揈"?u塀婥?4:;3D"~汥滲8,$狢嚡C	91523!,0纠旅":73*.40&謭刳苻5. .0%B另脢)缺#菎频@@_  +黓(h4l蘞pB>'喃b7=鷔@艒-`  @$秎壢)CUS+h鯿w硺C&i0眀(QwWJ滼)<淊蜋H,K冬Y!&灓识-U摏8T窣樊莼x鞻鴥MLX0MB  ;07070100039a00000041ed0000000000000001000000033ac03ba100000000000000200000000000000000000000000000001600000003reloc/caldera/certmgr 0707010003b3af000041ed0000000000000001000000023ac03ba100000000000000200000000000000000000000000000001d00000003reloc/caldera/certmgr/images  0707010003b3b0000081a40000000000000002000000013ac038bd0000012c000000200000000000000000000000000000002600000003reloc/caldera/certmgr/images/icon.gif GIF89a6   VVV兮_牋x膊)))照翍挝溠癣ccc热柦綆fff   览!   ,    6   兖蒊8雧UJ@($﹑he E刖p鼭)HMH(4鏂N
嚵8膓巋敀\0/D帲羗攨#x昫7.:/薽'核6$n杒襱[xz|}Et\y{|gkl媿憭]梽厫潾珋p㏑Q姡`儼e槮r悼得~W耐囅瘫蜭斜z圮蒉哕约卿彐釽囔o|
貊鼬d ;0707010002b517000081a40000000000000002000000013ac038bd00000019000000200000000000000000000000000000001500000003reloc/caldera/config  noindex=1
cs_page=cccc99
   0707010003cade000041ed0000000000000001000000033ac03ba100000000000000200000000000000000000000000000001300000003reloc/caldera/cpan    0707010003f74e000041ed0000000000000001000000023ac03ba100000000000000200000000000000000000000000000001a00000003reloc/caldera/cpan/images 0707010003f74f000081a40000000000000002000000013ac038bc000004e0000000200000000000000000000000000000002300000003reloc/caldera/cpan/images/icon.gif    GIF89a6    热杁ddcccYYYRRR@@@亮慉AA刎闭摘栽猔``浇)))蜒⒒换技烫毼螡行⒂莹SSS缮棩ゥ}}}NNN摀揳aaIIIrrr___贩   破茖寣櫃檛ttEEE崓>>>排iii[[[qqq噰嘼bb晻暯浇敂斖蜌换寁vv媼媏ee侣律缮潩潻┅创川è帋幮行父妭倐珑缬佑构汞儍兲烫鞍俺硢kkkDDD舷檄妹敏趑　nn???uuu111煙焼唵垐圸ZZ===ooo$$$   猇VVTTT灋<<<MMM{{{^^^...hhh殮殻＃LLLWWW&&&xxx槝榶yy墘塻ss~~~哌擐Ё屯驮栽葺輻棗档禍湝构嫞拻n灋v!Made with GIMP !   ,    6    	H盃羶*\x@ "J淗Q" j,h  CRA2n匀爜B0P
,\P2a藯1d邪a > h@=(b&濦態缊U刞乍K+X磒駉0b葮A !x%8u`n怌=| 4扔
$ $C/)b$1
*範K,惾I'x<E偅蓶x:═眗*Y船倹鬾伣媗Y隶	/線#嬫簾(FC1d蕵鵺M鹣=╢?67赿h隖磗耋磁?o|擺|'P1?"$碻|傽t黃噮頄]q堘`AM↓搰ATAz $ !柶|!鋹Di~!4殇揚Fe姤 Xf╁朶jT` d杋鏅h歩^ ;07070100040de3000041ed0000000000000001000000033ac03ba100000000000000200000000000000000000000000000001300000003reloc/caldera/cron    0707010004259c000041ed0000000000000001000000023ac03ba100000000000000200000000000000000000000000000001a00000003reloc/caldera/cron/images 0707010004259d000081a40000000000000002000000013ac038bc000001fb000000200000000000000000000000000000002300000003reloc/caldera/cron/images/icon.gif    GIF89a6   FKJ媽埆裳J潱F矧椈粚吵啰＃z灋v览郎蓷热柵艛亮懡綆父姃抧烫毼螢蜒⑿孝佑ㄕ摘栽乇dddccc```YYYSSSAAA)))                                                                                    !   ,    6   绤pH,徣ylt<牗tJ晢DΧi0喟x蝋>烄VU置	舝	1詐d鸐$鵌Kr$yI{F  Z$唞nDL$x慍圔$J劃E煛イ孞彫D煴阿睧 D祼稡辜夯}撩膿势~菳$刻段牛幄ブ$送扌剩钫睍垒脽骘儮蝮迈	0'剎藛萭埜Y%TH飽=$~YhF?I8埠Id'"$X刹ニ+%Ti│蜎5込@佅烜
姞惓 (]蚀㏒8		 ; 07070100046ba6000041ed0000000000000001000000033ac03ba200000000000000200000000000000000000000000000001500000003reloc/caldera/custom  07070100048289000041ed0000000000000001000000023ac03ba200000000000000200000000000000000000000000000001c00000003reloc/caldera/custom/images   0707010004828a000081a40000000000000002000000013ac038bc0000024e000000200000000000000000000000000000002500000003reloc/caldera/custom/images/icon.gif  GIF89a6   zR]/Op/zdJo  P22鑘h鯋矧検蕳妹捑編换尦硢儶＃z灋vSS>览朗蕵热柵艛哪摿翍浇幑箣档埐矄殮t晻p憫m倐b烫55(挝澭癣佑а薛挝せ粫照葼佑梱谮非黔烫革镟腚蕻种eeebbbYYYSSSAAA***)))   !   ,    6   缞pH,徣y架p龚tJ曣vΧㄙ絍喟x匤盭￢囁n禌)i4<,e昄':noIqsH!0	3|~?匤嘔.45	3(C?槅rC? 42'B#?劒D5?1/柪F毮
80笴ㄕE灼 
?*13溴玷C6

?哴`朽8]D胎'D 黙a鎐▔ 	8l谼2l汝 嗁9撲彊)72fIk7+歴!GVD貉j鐸*W
KJT萀Wq]Ya*憼DPxEV倫℅閆濊6 ‘莼x笾汾瞼lT焼+^谈疋梀*贎共逅-k%$ ;  070701000497ea000041ed0000000000000001000000033ac03ba200000000000000200000000000000000000000000000001700000003reloc/caldera/dfsadmin    0707010004afae000041ed0000000000000001000000023ac03ba200000000000000200000000000000000000000000000001e00000003reloc/caldera/dfsadmin/images 0707010004afaf000081a40000000000000002000000013ac038bc00000238000000200000000000000000000000000000002700000003reloc/caldera/dfsadmin/images/icon.gif    GIF89a6   g  77颭Q祇o魭趑鮀FFOPPbccahf]damqo:=;x{y憭徝脪揪幓粚吵啴畟＃z灋v览朗蕵热柵艛亮懡綆父姎歵晻p拻n烫毼螢蜒⒂缨蜒ビ莹照綏枛}儋肚黔屯贡保铑唧蝾噬乒傅噙苜卣研椭孕個~腙鶼YYSSS)))   !   ,    6   @宲H,徣y$绩tJ曵Χ9琍喟x<~f汾帍奆/sn#誰火q魒kG3[?GxE

?
3t揈"?u塀婥?4:;3D"~汥滲8,$狢嚡C	91523!,0纠旅":73*.40&謭刳苻5. .0%B另脢)缺#菎频@@_  +黓(h4l蘞pB>'喃b7=鷔@艒-`  @$秎壢)CUS+h鯿w硺C&i0眀(QwWJ滼)<淊蜋H,K冬Y!&灓识-U摏8T窣樊莼x鞻鴥MLX0MB  ;0707010004dd71000041ed0000000000000001000000033ac03ba200000000000000200000000000000000000000000000001400000003reloc/caldera/dhcpd   0707010004f459000041ed0000000000000001000000023ac03ba200000000000000200000000000000000000000000000001b00000003reloc/caldera/dhcpd/images    0707010004f45a000081a40000000000000002000000013ac038bc00000222000000200000000000000000000000000000002400000003reloc/caldera/dhcpd/images/icon.gif   GIF89a6   33藤鈇牝s塍z换尦硢＃z灋v览廊葨排斄翍浇幑箣拻n烫毼螡挝炑癣佑в莹照脂刎贬崮殚种绚燡tsp觊孳谡僮抑韵あ炋势邃庠烟汜逌櫀jhf净竷~噍眄黹殚iiidddccc```\\\YYYUUURRRAAA999666111...)))   !  	 ,    6   绖pH,徣yT膁胆tJ曓p
Χ壤a,喟x<炆瞇m7I!慖濡@粦膂]W{xl丆?凢yC03Q7:K?v		6-煚?揑機9%  .?	?刀?禕嚚B<''?-礏?	紙纠, /仁	-苄接	 期喂废丫氥!刳藷菹嘁ㄔ"L怭q,Y畠靨咉'O賿5{8錆8=|乥厙诤}#b!F/胸慿_艆橳e蠤砯Z爭攲9N?@僐昫g墝j傲羴濟蹋(砵輟聤K鹅X|)`袪穚憔eIH ;  07070100050b15000041ed0000000000000001000000033ac03ba200000000000000200000000000000000000000000000001700000003reloc/caldera/dnsadmin    070701000521d5000041ed0000000000000001000000023ac03ba200000000000000200000000000000000000000000000001e00000003reloc/caldera/dnsadmin/images 070701000521d6000081a40000000000000002000000013ac038bc0000021c000000200000000000000000000000000000002700000003reloc/caldera/dnsadmin/images/icon.gif    GIF89a6   ))33藤鈇牝s塍z换尦硢＃z灋v览廊葨排斄翍浇幑箣拻n烫毼螡挝炑癣佑в莹照脂刎贬崮殚种绚燡tsp觊尜滓衷悉淌栖谥邃廛僭匝蹄徂湙杍hf净竷~噍眄黹殚iiidddccc```YYYUUURRRAAA999666...)))   !  
 ,    6   @卲H,徣y\蘦定tJ曗rΧ厝e.喟x<瞇GI#稝粦膂]_{xl丆?凢yC25Q8;K?v

7/煚?揅?E機: &0?D嚜B<))?稦簣季.%1迫够虄
'钠?噌郈始氊!延F
遄z"($,徘  责知z!M紜#T带癰诰/銴湼c
>韠A!Gl4lX蒖儹!#KnL磇B8sV%銼9e$2I撁H*])剻x淛*訞$厥但庄] 獾爜兂h营]浂&!A  ;07070100053b14000041ed0000000000000001000000033ac03ba200000000000000200000000000000000000000000000001600000003reloc/caldera/exports 07070100056693000041ed0000000000000001000000023ac03ba200000000000000200000000000000000000000000000001d00000003reloc/caldera/exports/images  07070100056694000081a40000000000000002000000013ac038bc00000238000000200000000000000000000000000000002600000003reloc/caldera/exports/images/icon.gif GIF89a6   g  77颭Q祇o魭趑鮀FFOPPbccahf]damqo:=;x{y憭徝脪揪幓粚吵啴畟＃z灋v览朗蕵热柵艛亮懡綆父姎歵晻p拻n烫毼螢蜒⒂缨蜒ビ莹照綏枛}儋肚黔屯贡保铑唧蝾噬乒傅噙苜卣研椭孕個~腙鶼YYSSS)))   !   ,    6   @宲H,徣y$绩tJ曵Χ9琍喟x<~f汾帍奆/sn#誰火q魒kG3[?GxE

?
3t揈"?u塀婥?4:;3D"~汥滲8,$狢嚡C	91523!,0纠旅":73*.40&謭刳苻5. .0%B另脢)缺#菎频@@_  +黓(h4l蘞pB>'喃b7=鷔@艒-`  @$秎壢)CUS+h鯿w硺C&i0眀(QwWJ滼)<淊蜋H,K冬Y!&灓识-U摏8T窣樊莼x鞻鴥MLX0MB  ;07070100057cc5000041ed0000000000000001000000033ac03ba200000000000000200000000000000000000000000000001400000003reloc/caldera/fdisk   07070100059484000041ed0000000000000001000000023ac03ba200000000000000200000000000000000000000000000001b00000003reloc/caldera/fdisk/images    07070100059485000081a40000000000000002000000013ac038bc00000229000000200000000000000000000000000000002400000003reloc/caldera/fdisk/images/icon.gif   GIF89a6   ++謔o悙靠垠篥!桱换尦硢＃z灋v览廊葨排斄翍浇幑箣拻n烫毼螡蜒⒂缨照乇後漱种原(1殓ι+%弹'&膛-繁)啪/籽D障I噗s谡w腓㈧楗耧王笱铞蹴祀枛枖敂fffdddbbbYYYRRR@@@333,,,)))   !   ,    6   绤pH,徣yd豯辅tJ曟tΧ栊],喟x<举瞇恚GI%J%茾粦膂]g{xlF?0?婩?丟yD  媻宱?v態揃嫨</21?o0技5矯彿C?骄03臖菒/&!噜544刳蹆B?2.+(&$#滏桕谒1-,:0!bD坾鐖餕,@'J<Bc鳃涤鍚"軛戓SD偄
K奘
 A| f蘁l&佟憛37FBJ奻 鴢悹玐砎 砳询`胿嶄 亗砲营] m<楰樊莼u ;   0707010005abc6000041ed0000000000000001000000033ac03ba300000000000000200000000000000000000000000000001300000003reloc/caldera/file    0707010005d8a5000041ed0000000000000001000000023ac03ba300000000000000200000000000000000000000000000001a00000003reloc/caldera/file/images 0707010005d8a6000081a40000000000000002000000013ac038bc0000020a000000200000000000000000000000000000002300000003reloc/caldera/file/images/icon.gif    GIF89a6   荧@Z酎噦埰燎愍裳J牝t骅腔粚吵啰＃z灋v屯毨览缮椚葨排斄翍浇幑箣父姃抧烫毼螡蜒⑿孝佑ㄕ摘栽乇霪&有烫摊厖協ffdddccc```YYYSSSRRRAAA@@@)))                        !   ,    6   @塸H,徣yじ^报tJ曃jΧh@喟x乣V{眜置求慚詐dT狺*q8yI{L8 )8E8噝n)

廌8x擟塊8	泀叀E*+)F挰D--B-览D祿稡-櫃紹)蜗嶤钠菛
(,F釉-北#&&%钽棋鼬С癯蚨洮 悹犃傤慢+FO爛O搞窅殑r$Nh塄演悐
F掃擉n箓埔鋺敩rQ曷r贶沙gN' 閼J磆衃@X蚀┯谅叓X砵輾(!A  ;  0707010005f266000041ed0000000000000001000000033ac03ba300000000000000200000000000000000000000000000001500000003reloc/caldera/format  07070100060717000041ed0000000000000001000000023ac03ba300000000000000200000000000000000000000000000001c00000003reloc/caldera/format/images   07070100060718000081a40000000000000002000000013ac038bc00000229000000200000000000000000000000000000002500000003reloc/caldera/format/images/icon.gif  GIF89a6   ++謔o悙靠垠篥!桱换尦硢＃z灋v览廊葨排斄翍浇幑箣拻n烫毼螡蜒⒂缨照乇後漱种原(1殓ι+%弹'&膛-繁)啪/籽D障I噗s谡w腓㈧楗耧王笱铞蹴祀枛枖敂fffdddbbbYYYRRR@@@333,,,)))   !   ,    6   绤pH,徣yd豯辅tJ曟tΧ栊],喟x<举瞇恚GI%J%茾粦膂]g{xlF?0?婩?丟yD  媻宱?v態揃嫨</21?o0技5矯彿C?骄03臖菒/&!噜544刳蹆B?2.+(&$#滏桕谒1-,:0!bD坾鐖餕,@'J<Bc鳃涤鍚"軛戓SD偄
K奘
 A| f蘁l&佟憛37FBJ奻 鴢悹玐砎 砳询`胿嶄 亗砲营] m<楰樊莼u ;   07070100061e0f000041ed0000000000000001000000033ac03ba300000000000000200000000000000000000000000000001300000003reloc/caldera/help    07070100063644000041ed0000000000000001000000023ac03ba300000000000000200000000000000000000000000000001a00000003reloc/caldera/help/images 07070100063645000081a40000000000000002000000013ac038bc00000261000000200000000000000000000000000000002300000003reloc/caldera/help/images/icon.gif    GIF89a6   3f**""22kRR22廗K襫n饀u迧嶓破敾粚吵啰＃z灋v棗q摀n览朗蕵热柲膿亮懡綆构嫷祱鞍劕瑏Ζ}櫃s唵e烫毻蜐蜒⒁咬照刷破炗萤灋晻x膊樥辗沣势票技ㄌ碳栽孺驷耨駬摀fffdddbbbYYYSSSAAA)))   !   ,    6   缐pH,徣yp酣tJ曨xΧx岘H􆘪*櫹パ墧胑穁LOt,0巆蟟`!"';opIrtF(./00+" !?嘕塆)0
Ζ1#?潏s.腹, ?啽D烣/5/, 浤F艵+-/E跠&+0/.-1玷B氚鞢飵5馉"4d癛穷煇O?n颍b巵-x惲b!C!蕡(駠9b@(`c憕2iR RBPQ兤寏/啘9(N1:礃f 1E,
 G峯:斘2妴p儐4聑'膴p徂惐劔踄玛菟膎粈秉f绵#脙脠+^|XB劭q#K淇 h尢钩g8澎啞撮莹S熅0LH ;   07070100064d1f000041ed0000000000000001000000033ac03ba300000000000000200000000000000000000000000000001a00000003reloc/caldera/hpuxexports 07070100066603000041ed0000000000000001000000023ac03ba300000000000000200000000000000000000000000000002100000003reloc/caldera/hpuxexports/images  07070100066604000081a40000000000000002000000013ac038bc00000238000000200000000000000000000000000000002a00000003reloc/caldera/hpuxexports/images/icon.gif GIF89a6   g  77颭Q祇o魭趑鮀FFOPPbccahf]damqo:=;x{y憭徝脪揪幓粚吵啴畟＃z灋v览朗蕵热柵艛亮懡綆父姎歵晻p拻n烫毼螢蜒⒂缨蜒ビ莹照綏枛}儋肚黔屯贡保铑唧蝾噬乒傅噙苜卣研椭孕個~腙鶼YYSSS)))   !   ,    6   @宲H,徣y$绩tJ曵Χ9琍喟x<~f汾帍奆/sn#誰火q魒kG3[?GxE

?
3t揈"?u塀婥?4:;3D"~汥滲8,$狢嚡C	91523!,0纠旅":73*.40&謭刳苻5. .0%B另脢)缺#菎频@@_  +黓(h4l蘞pB>'喃b7=鷔@艒-`  @$秎壢)CUS+h鯿w硺C&i0眀(QwWJ滼)<淊蜋H,K冬Y!&灓识-U摏8T窣樊莼x鞻鴥MLX0MB  ;07070100067af5000041ed0000000000000001000000033ac03ba900000000000000200000000000000000000000000000001500000003reloc/caldera/images  07070100067af6000081a40000000000000002000000013ac038ba0000031f000000200000000000000000000000000000002100000003reloc/caldera/images/blue-bg.gif  GIF89a    f3 烫虣蘤3 櫶櫃檉3 ffffff3f 3333f333     f 3  烫櫶f3 烫烫烫虣烫f烫3烫 虣虣烫櫃虣f虣3虣 蘤蘤烫f櫶ff蘤3蘤 33烫3櫶3f333   烫 櫶 f 3  虣櫃f3 櫶櫶虣虣櫶f櫶3櫶 櫃櫃虣櫃櫃f櫃3櫃 檉檉虣f櫃ff檉3檉 33虣3櫃3f333   虣 櫃 f 3  ff蘤檉ff3f ff烫f虣f蘤f3f ff櫶f櫃f檉f3f ffff蘤f檉ffff3ff f3f3蘤3檉3ff33f3 f f 蘤 檉 ff 3f  3333f333 33烫3虣3蘤333 33櫶3櫃3檉333 3f3f3f3ff3f33f 33333333f33333 3 3 3 3 f3 33      f 3    烫 虣 蘤 3    櫶 櫃 檉 3   f f f ff f3 f  3 3 3 3f 33 3         f  3                                                                                                                           ,        S ; 07070100067af7000081a40000000000000002000000013ac038ba00000026000000200000000000000000000000000000002400000003reloc/caldera/images/folder-off.gif   GIF89a    33,       剰Q ;  07070100067af8000081a40000000000000002000000013ac038ba000003f3000000200000000000000000000000000000002300000003reloc/caldera/images/folder-on.gif    GIF89a    2211..!!3322220000//..--,,++**))''..((66++<<99??-->>,,m;]]娞虣适樔葨破暲缾屯洓泆舷炐小乙ぱ绚佑ㄔ元种匕吵捼诖葺哼呃骀殊馇邋嚏缦镲陂檎祆匐胭沣褽E@耨膺咦儍怂甚豸                                                                                                                                                                                             ,        	噲墛媽崕	  櫄洔潪煚、￥ウЖ	

渤吹斗腹府	槳旅呐魄矣哉肿刭柸沅彐鐮=;:6瘃蝮趱鲼7585=<0@ 澚~B袪:j虡H雹艐3j(#F4HPP∩(!p饌0^葴I肠蜎8s隃閎EH
J磋B
.p貈"姧P滼氮U)拨P雹E嫤!f船Y(瑦﹤D嚪p闶滽樊莺"D("	,0p栋as(╬"呟粣#K东稤	xhxp喟缦/vaB匿莹#鐄膯
葌濵枰﹕霂涀甅8.Z噢<wk#6@0粮u袎Sx]藜讳!爚郊犰_箋__<+槦_Vt祗蟯?億 
觊x!赭_&擵
+琾俰V坄鄦BV%PX醽 \P,抯'燻B	#ZX鈮鈳羌x	'<Vc~娓"廐	I(陿鋽,伽撿欌慣v=$朰迾= 臍?撮鏇p)鐪t謎鐫x姗鐬|鳄榖
Ifsⅸ&泘&6(焷  ; 07070100067af9000081a40000000000000002000000013ac038ba000000e6000000200000000000000000000000000000002500000003reloc/caldera/images/gradient-bg.gif  GIF89a   烫櫷蜎屯溝蠟挝澭癣行∫谣乙υ冤种斋鬃乇谮帝鄹葺贿呔噜棱馀沣卿渖邋绥缦梃宴缧殚与胫祆夙碹铑!   ,      c'嶿蓇翻洣aXv]朥U5MRE萩鑠4ER$瀳C釦-甐胉@磷( X愤鸶|N秫紐巷亗儎厗噲墛媽崕彁y! ;  07070100069107000041ed0000000000000001000000023ac03ba900000000000000200000000000000000000000000000001d00000003reloc/caldera/images/letters  07070100069109000081a40000000000000002000000013ac038ba000000a4000000200000000000000000000000000000002500000003reloc/caldera/images/letters/100.gif  GIF89a    痧鴢勦HL蠤@热瑞悙郮X袪犺噤仞hh亘00萷t   !  
 ,       QP蒊8胪9坴4!抐6朧!k*J逋A,	偞t捳aR@*敁貏AZJ蝍C08推鈆吧$aq<#8鸶 ;0707010006910a000081a40000000000000002000000013ac038ba0000009b000000200000000000000000000000000000002500000003reloc/caldera/images/letters/101.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺刎hh亘00      !  
 ,       HP蒊8胪J ,MI侤4暏哾き劋兣b怋L~Q(fn崁O牋哴cQ9%U燩兾hJ ; 0707010006910b000081a40000000000000002000000013ac038ba00000086000000200000000000000000000000000000002500000003reloc/caldera/images/letters/102.gif  GIF89a
    HL蠤@热瑞悙郮X袪犺噤hh00                  !   ,    
   3鹑I8鐐P〤""5V B*b齀 匬)8	/@c憭8熜J ;  0707010006910c000081a40000000000000002000000013ac038ba000000ab000000200000000000000000000000000000002500000003reloc/caldera/images/letters/103.gif  GIF89a    痧鴢勦父鐯@热瑞悙郮X袪犺噤仞hh亘00萷t   !  
 ,       XP蒊8胪萹$ A 匝3紦&R並稦歆`0塧匯0埅F X")諹099, j>寜羔 貥 K洰凞繥 ; 0707010006910d000081a40000000000000002000000013ac038ba00000093000000200000000000000000000000000000002500000003reloc/caldera/images/letters/104.gif  GIF89a    痧鴢勦热餢X袪犺噤仞hh亘00               !   ,       @鹑I8霛褕"9f醜xEP $10ロ+俔IB%㊣(<柷C抙l*婚z苦 ; 0707010006910e000081a40000000000000002000000013ac038ba00000058000000200000000000000000000000000000002500000003reloc/caldera/images/letters/105.gif  GIF89a    热馉犺刎hh亘00   !   ,       8很+劜!趼葮b吤灑枓婧桨  ;0707010006910f000081a40000000000000002000000013ac038ba00000085000000200000000000000000000000000000002500000003reloc/caldera/images/letters/106.gif  GIF89a    痧鴢勦@@热瑞牋栲澍ì00                     !   ,       2腥IB%B|針I0訮讹鋳0-且l娓∽;&   #槯 ;   07070100069110000081a40000000000000002000000013ac038ba00000098000000200000000000000000000000000000002500000003reloc/caldera/images/letters/107.gif  GIF89a    痧歌HL蠤@热瑞悙郮X袪犺噤仞hh00萷t      !  
 ,       EP蒊8隡蜛倭0D8枠H毇B祭jA湍窽j 0嗀m鬰$,鑰<!)犮婹@ZJ聧xL.G  ;07070100069111000081a40000000000000002000000013ac038ba00000056000000200000000000000000000000000000002500000003reloc/caldera/images/letters/108.gif  GIF89a    牋hh亘00         !   ,       很⺧ !鮢,&v鶇朠.	 ;  07070100069112000081a40000000000000002000000013ac038ba000000e5000000200000000000000000000000000000002500000003reloc/caldera/images/letters/109.gif  GIF89a    鞍桊瘌勦讣鐷L蠤@热瑞悙郮X袪犺噤仞hl豩h亘00萷t                                          !   ,       b #巇i瀐l刖p,3乤(翐銗 ,,FCb锣@
"JD聢@銪#bcT厴"5,娐rQ麧啲鮰v}{uR剆n3崕.! ;   07070100069113000081a40000000000000002000000013ac038ba0000008f000000200000000000000000000000000000002500000003reloc/caldera/images/letters/110.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺刎hh亘00      !  
 ,       <P蒊8胪户E( T囑ｄ叀:L儦7嬌'

UP2l鼥婃箬,B ; 07070100069114000081a40000000000000002000000013ac038ba000000a2000000200000000000000000000000000000002500000003reloc/caldera/images/letters/111.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Op蒊8胪K `)嚕:凘L垔H咜LUa"LBP 誤襊$U倀杋0冝pJ ;  07070100069115000081a40000000000000002000000013ac038ba0000009f000000200000000000000000000000000000002500000003reloc/caldera/images/letters/112.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00   !   ,       Lp蒊8胪伙JQ, 8陵ゾ俻4荎J"11YI鉾tS菜:梗柇43M齒" ; 07070100069116000081a40000000000000002000000013ac038ba0000009f000000200000000000000000000000000000002500000003reloc/caldera/images/letters/113.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00   !   ,       Lp蒊8胪@KQ(TC8l2撀傶N甋H-瓗	婪`'k 1"FXL Z奲Wk亐z" ; 07070100069117000081a40000000000000002000000013ac038ba0000007c000000200000000000000000000000000000002500000003reloc/caldera/images/letters/114.gif  GIF89a	    勦HL腥瑞牋栲澍刎hh00萷t                  !   ,    	   )腥I8胪凙 r擧`畳$分洬;L`gH碊  ;07070100069118000081a40000000000000002000000013ac038ba0000009a000000200000000000000000000000000000002500000003reloc/caldera/images/letters/115.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Gp蒊8胪环
4I<N6摉掛 P冷VAP9絁h
L寚扟~!%寖甧G麡蠐 ;  07070100069119000081a40000000000000002000000013ac038ba0000008e000000200000000000000000000000000000002500000003reloc/caldera/images/letters/116.gif  GIF89a    痧鴢勦热餢X袪犺噤仞hh亘00               !   ,       ;鹑I8胪% 僷"R攧 LB)汼A e@I[維$G腒4豒 Yqb:,% ;  0707010006911a000081a40000000000000002000000013ac038ba00000091000000200000000000000000000000000000002500000003reloc/caldera/images/letters/117.gif  GIF89a    痧鳣@热瑞悙郮X袪犺噤仞hh亘00萷t         !   ,       >蒊8胪伙  R8N挪R孩*嫺7;/影PW$r垉*0`▃E@E '偯g溯D  ;   0707010006911b000081a40000000000000002000000013ac038ba00000097000000200000000000000000000000000000002500000003reloc/caldera/images/letters/118.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Dp蒊8胪桼罃尌81=A 裮;室=妧錬8l1罛\ +b檭祽Y臨牥x<  ; 0707010006911c000081a40000000000000002000000013ac038ba000000bb000000200000000000000000000000000000002500000003reloc/caldera/images/letters/119.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       hp蒊8胪`(jJQ `揨$8$既2%硛膧CH嶢鍚荂Bp*怭-航
&
裁@謵啫"{:P闄N孲/~k3sv#墛媺 ; 0707010006911d000081a40000000000000002000000013ac038ba0000009b000000200000000000000000000000000000002500000003reloc/caldera/images/letters/120.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Hp蒊8胪WR胜尷,娿U#?酸i跞YL( d,%唡"-孷疏NIA&櫹鐴 ; 0707010006911e000081a40000000000000002000000013ac038ba000000a0000000200000000000000000000000000000002500000003reloc/caldera/images/letters/121.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Mp蒊8胪伙EH)Ⅳ8 3	!5:蝋:D厾*PI腵巂厬.4!	層q赛嵦.寑(|( ;0707010006911f000081a40000000000000002000000013ac038ba0000008a000000200000000000000000000000000000002500000003reloc/caldera/images/letters/122.gif  GIF89a    勦父鐯@热瑞悙酄犺噤仞hh亘00萷t         !   ,       7蒊8胪户 U,h篜C"`剕\
\猏嘪`▌Ry$T┮gJ鞤  ;  07070100069120000081a40000000000000002000000013ac038ba00000056000000200000000000000000000000000000002500000003reloc/caldera/images/letters/123.gif  GIF89a    热馉犺hh亘00      !   ,       (很䦆癋	鮢,&v鶇朠.	 ;  07070100069124000081a40000000000000002000000013ac038ba00000084000000200000000000000000000000000000002500000003reloc/caldera/images/letters/124.gif  GIF89a	    痧鴢勦父鐯@热瑞悙酄犺噤仞hh亘00萷t      !  	 ,    	   10蒊8%ST^V+誑
暽绽,凓* 1" 85 ;07070100069125000081a40000000000000002000000013ac038ba0000007b000000200000000000000000000000000000002500000003reloc/caldera/images/letters/125.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙酄犺刎hh亘00萷t      !  	 ,       (0蒊8胪&(pL:,佬L!i篖"!
c劺爌H  ; 07070100069127000081a40000000000000002000000013ac038ba000000b2000000200000000000000000000000000000002500000003reloc/caldera/images/letters/126.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞ì00萷t   !   ,       _p蒊玗羒gy891讦.D#'*#水4美 櫫 S坙匓($辩%羂Sn`俥	.*＠.h丣$o'滃8傀亗 ;  0707010006912a000081a40000000000000002000000013ac038ba000000b2000000200000000000000000000000000000002500000003reloc/caldera/images/letters/192.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞ì00萷t   !   ,       _p蒊!
W燲塈1讦.D#&#水4美 櫫 ql匓(:黗OK偣/堧B@n`俥	.F2Fa]6曍O笉苣8傀亗 ;  0707010006912b000081a40000000000000002000000013ac038ba000000b8000000200000000000000000000000000000002500000003reloc/caldera/images/letters/193.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞ì00萷t   !   ,       ep蒊珪 !pm 冇QHS(2JГhjM災L炞#Gc0 9!
T0:oWK")	0/%―赖}h侲奆*/芰係O)9o6厗噲 ;0707010006912c000081a40000000000000002000000013ac038ba000000b7000000200000000000000000000000000000002500000003reloc/caldera/images/letters/194.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       dp蒊珪E蓶430'%D!<La/"稷刡鄮F(G纱+!佬64爧佉#\.@Z%+?,2PI
鹇窝犥喪	(Zl5剠唶 ; 0707010006912d000081a40000000000000002000000013ac038ba000000b6000000200000000000000000000000000000002500000003reloc/caldera/images/letters/195.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       cp蒊玗圣屆97屢0嶉篐,紜廛芊帎#恋["缻h~信@	-%,%+枾$	厁|鏷M獑J}闥m4儎厗 ;  0707010006912e000081a40000000000000002000000013ac038ba000000b6000000200000000000000000000000000000002500000003reloc/caldera/images/letters/196.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       cp晒殸嚽ZP<_GQfI瞓H|綃廛鳝x	n們凁1X雅`Y2%,%+逪0Q
p8厢欂鰁.:儎厗 ;  0707010006912f000081a40000000000000002000000013ac038ba000000b8000000200000000000000000000000000000002500000003reloc/caldera/images/letters/197.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙酄犺噤仞hh亘00萷t   !  
 ,       eP蒊8胪磺G(嶩4h0↘,'`3,(Ds(F切  
(N艁*⒁实酺 R卲貍芒438骿^扏$V)5[Q|厗噲 ;07070100069130000081a40000000000000002000000013ac038ba000000b6000000200000000000000000000000000000002500000003reloc/caldera/images/letters/198.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       cp蒊8胪@ 昆NM暊R jB)21僡 R僊!臥27婄FE


#%RJ#u(%d藺 e埇<hr杬E ;  07070100069131000081a40000000000000002000000013ac038ba00000099000000200000000000000000000000000000002500000003reloc/caldera/images/letters/199.gif  GIF89a    痧鴢勦@@热瑞悙郮X袪犺噤仞hh亘00         !  	 ,       F0蒊kB K3\'4愓懎隻2p+/#(8N詔8胎Ｇ蔪 夞楲僪ETa辭iL.浰 ;   07070100069132000081a40000000000000002000000013ac038ba00000098000000200000000000000000000000000000002500000003reloc/caldera/images/letters/200.gif  GIF89a    痧歌@@热瑞悙郮X袪犺噤仞hh亘00         !  	 ,       E0蒊+E ;[| 軕+(L,鞘3偄雱M椃Z(溚>c鶌P!)囄h4ヾp暐皒LG  ;07070100069133000081a40000000000000002000000013ac038ba0000009f000000200000000000000000000000000000002500000003reloc/caldera/images/letters/201.gif  GIF89a    痧鴢勦HL蠤@热瑞牋柝仞hh亘00萷t            !   ,       L鹑I ;w
a(gJQY┸8:恹壿-%9F(棧-7-@╒7怠2Y糛,T幩蚀z蚔G  ; 07070100069134000081a40000000000000002000000013ac038ba0000009b000000200000000000000000000000000000002500000003reloc/caldera/images/letters/202.gif  GIF89a    热饜愢XX袪犺噤仞hh亘00                  !   ,       H腥I獳儉9蓶^p葋x靹p淢`b!mG趭蜦Q.6`婞[Dl:%棧飹*浵hs ; 07070100069135000081a40000000000000002000000013ac038ba00000081000000200000000000000000000000000000002500000003reloc/caldera/images/letters/203.gif  GIF89a    痧歌@@热瑞悙酄犺噤仞hh亘00            !   ,       .9K	!@轉C,K9屎L#砍~缂]E趣r ;   07070100069136000081a40000000000000002000000013ac038ba00000080000000200000000000000000000000000000002500000003reloc/caldera/images/letters/204.gif  GIF89a    父枞瑞牋栲澍刎hh亘00                     !   ,       -叭It(AT諱T憾*嬈;蹝+玺黑/璜徣$2 ;07070100069137000081a40000000000000002000000013ac038ba00000088000000200000000000000000000000000000002500000003reloc/caldera/images/letters/205.gif  GIF89a	    痧鴢勦HL蠤@热瑞牋柝仞00萷t                  !   ,    	   5鹑I(咹TRL伇!bn跾}辿.7壖" 8熜═ ;07070100069138000081a40000000000000002000000013ac038ba00000085000000200000000000000000000000000000002500000003reloc/caldera/images/letters/206.gif  GIF89a	    热饜愢牋栲澍刎hh亘00                     !   ,    	   2叭I@iPF腶TZ	W趛.S颋6嚽侈K5^富
A鉖舕:煍 ;   0707010006913c000081a40000000000000002000000013ac038ba0000007a000000200000000000000000000000000000002500000003reloc/caldera/images/letters/207.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞牋栲澍刎hh00            !  	 ,       '0蒊8胪镼JA薂"P盛Tら婹Pa 潬 ;  0707010006913d000081a40000000000000002000000013ac038ba000000b2000000200000000000000000000000000000002500000003reloc/caldera/images/letters/208.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙酄犺噤仞hh亘00萷t   !  
 ,       _P蒊玌%I啴4M3,劎 D!8Kar@1骉勧A-!疉癐a#袥 f旍嘍S翊6佊.鯄嗽鈟[^c滵穙3Lz邠z勖䜣亗 ;  07070100069140000081a40000000000000002000000013ac038ba000000c6000000200000000000000000000000000000002500000003reloc/caldera/images/letters/209.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       sp蒊玗墈! gy唄%)M0"6刢週X	6倗鞵矇衼4l丣6l死0l┦鰝-泸<'1秄錐QP+O牵矊J<6o+=刋 [7l(*摂晼 ;  07070100069141000081a40000000000000002000000013ac038ba000000c7000000200000000000000000000000000000002500000003reloc/caldera/images/letters/210.gif  GIF89a    痧鴢勦HL蠤@热瑞悙郮X袪犺噤仞hh亘00萷t   !  
 ,       tP蒊珪鄿t雐AG!C(NqJ柔,蝸tEc進a諐僊7!	@`鉎6F卆3)剭偃f樮._I2乩嵙daSQ實配狜%!昉H	f{N#刬Z	+敃枟 ; 07070100069142000081a40000000000000002000000013ac038ba000000ca000000200000000000000000000000000000002500000003reloc/caldera/images/letters/211.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       wp蒊玗塠9幝I览, 孖E" 騟8|枬阈(4@?J仹殧x"I专4x	27I撧E,!W挢A0x吺襮 皶P'WML~lQ	i<\
#棙櫄 ;  07070100069143000081a40000000000000002000000013ac038ba000000c6000000200000000000000000000000000000002500000003reloc/caldera/images/letters/212.gif  GIF89a    痧鴢勦HL蠤@热瑞悙郮X袪犺噤仞hh亘00萷t   !  
 ,       sP蒊蒫﹊峚8澞,拈he!嚦8k`7h0㎡7!	@ JL F
L6	7蓇pE< }兩D嬌68抏tBm )	e~LhN俬Y	.摂晼- ;  07070100069144000081a40000000000000002000000013ac038ba000000c6000000200000000000000000000000000000002500000003reloc/caldera/images/letters/213.gif  GIF89a    痧鴢勦HL蠤@热瑞悙郮X袪犺噤仞hh亘00萷t   !  
 ,       sP蒊=G眱,m嵅47-婻,夐毴,g`冒@  $Ｂ &腇噦 &9OX2當 qcp晫爺鋊璂	S:6	hMkO\僰[&	/摂晼& ;  07070100069162000081a40000000000000002000000013ac038ba000000cc000000200000000000000000000000000000002500000003reloc/caldera/images/letters/214.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       yp蒊8胪)競0AAN慞	Ea窶糯J犈牭攩面業瓟D:p觇iA7彸@A8K
5彗(P橃E▅ [.#.y,.=~亃9殯湚 ;07070100069163000081a40000000000000002000000013ac038ba000000b1000000200000000000000000000000000000002500000003reloc/caldera/images/letters/215.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞XX袪犺噤仞hh亘00      !  
 ,       ^P蒊+鏧L+[ [H芁M\葚R芴帝/灬&:灺	汮&裪"媻E,A9腣
F虁R$1%#,幢W05* ;   07070100069165000081a40000000000000002000000013ac038ba000000b3000000200000000000000000000000000000002500000003reloc/caldera/images/letters/216.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00   !   ,       `p蒊玗!
78	T5#W吿3U;$;4鷕'汊浗%R矉2婲	C d珽Cv HYj[瑐(Q(楳亗 ; 0707010006916b000081a40000000000000002000000013ac038ba000000b8000000200000000000000000000000000000002500000003reloc/caldera/images/letters/217.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞XX袪犺噤仞hh亘00萷t   !  
 ,       eP蒊k [7M4嚚楻RXYJ!35xU嗨漇籉O俴鑨>#I麺侰E(LRＳe旦|2\侭BM8肍  幇鉲暶犡0Tk*厗噲* ;0707010006916f000081a40000000000000002000000013ac038ba000000b6000000200000000000000000000000000000002500000003reloc/caldera/images/letters/218.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00   !   ,       cp蒊+-$造DN0炘0嵚eK!p祋揷W匨J秲氲Nro,.從E镒%葷鯄2l姉1i 墏`KP6鉱隩優 h%
i.儎厗 ;  07070100069179000081a40000000000000002000000013ac038ba00000086000000200000000000000000000000000000002500000003reloc/caldera/images/letters/219.gif  GIF89a    勦HL腥瑞XX袪犺噤仞hh亘00               !   ,       3鹑I8,H蕜個⒄*p<J  蔪V8_>爷W岴`𘵦熜M ;  07070100069196000081a40000000000000002000000013ac038ba0000009a000000200000000000000000000000000000002500000003reloc/caldera/images/letters/220.gif  GIF89a    痧鳫L蠤@热瑞悙郮X袪犺噤仞hh亘00         !  	 ,       G0蒊8雿峈芶KE02G2J舃荺< j8H躣BF dべ湌c诂Q幰$嫢N+5)浵 ;  07070100069197000081a40000000000000002000000013ac038ba000000ae000000200000000000000000000000000000002500000003reloc/caldera/images/letters/221.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       [p蒊8胪踓!\泪滆T 纒6s畫煨旐H椗穐.DyZ N陌長$DI聎鑁%羒塵俬	裻h9宏b\/吢澝稃/ ;  07070100069198000081a40000000000000002000000013ac038ba000000a2000000200000000000000000000000000000002500000003reloc/caldera/images/letters/222.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Op蒊8氆Y Z@$Z乺 闾矨53i摊P!G)<囱D0 DJ闪1貯裁.V乼HEQ馗唣J ;  070701000691aa000081a40000000000000002000000013ac038ba000000a5000000200000000000000000000000000000002500000003reloc/caldera/images/letters/223.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Rp蒊8隴B@Jf怹懁_砎枢裈连 L	b4殻(1堔r勀Iaf鰽c.I茾 J湼|N  ;   070701000691ab000081a40000000000000002000000013ac038ba000000a8000000200000000000000000000000000000002500000003reloc/caldera/images/letters/224.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Up蒊8氍吕q8燉 (P$R炼' UC83虙愗=(檮粒=e 凴墍譞6%*嘸鐼
<倸z宲氲┷飻 ;070701000691ac000081a40000000000000002000000013ac038ba000000aa000000200000000000000000000000000000002500000003reloc/caldera/images/letters/225.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Wp蒊8隲攍Ie8卫UB旅" UC愪郙@鍃P
	僁 <錊
 俁墍訮2%抈郙
$傶晫H宲v(刡鴟> ;  070701000691ad000081a40000000000000002000000013ac038ba000000a8000000200000000000000000000000000000002500000003reloc/caldera/images/letters/226.gif  GIF89a    痧鴢勦父鐯@热瑞悙郮X袪犺噤仞hh亘00萷t   !  
 ,       UP蒊8k|巄b5嵅4劦,J$蹍GZd B:
#"壵r1h
囧譎j%O漝咰礬7
v徖嬞秣 ;070701000691b1000081a40000000000000002000000013ac038ba000000ab000000200000000000000000000000000000002500000003reloc/caldera/images/letters/227.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Xp蒊8邉 N2`埍0蹋檪)0N灈S#CH
灺廟xt燚 K闪1Z(蹵"Kp嶨偌P<勂S:Q4 ; 070701000691b4000081a40000000000000002000000013ac038ba000000ba000000200000000000000000000000000000002500000003reloc/caldera/images/letters/228.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       gp蒊8胪`(NJ4$ 坮N ;@)癯睪3P唸TAfE鄖cX	1*60纍仿劒攊?𭫶N6;@u |
Z b#墛 ;  070701000691b6000081a40000000000000002000000013ac038ba0000009e000000200000000000000000000000000000002500000003reloc/caldera/images/letters/229.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞XX袪犺噤仞hh亘00萷t   !  
 ,       KP蒊8胪豢蓂W袦蛺P)E4劥淪c舿!'Q M'聙N)Pa苔
繮萙侤硃\
僡鯄  ;  070701000691c2000081a40000000000000002000000013ac038ba000000a6000000200000000000000000000000000000002500000003reloc/caldera/images/letters/230.gif  GIF89a    痧歌HL蠤@热瑞悙郮X袪犺噤仞hh亘00萷t   !  
 ,       SP蒊8-9`4Dh@ Y1琔4t30誂8 擜&	赻5Bm赬L4kF(槬夘yb揧M惱@巪N桪  ;  070701000691c4000081a40000000000000002000000013ac038ba000000a2000000200000000000000000000000000000002500000003reloc/caldera/images/letters/231.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺刎hh亘00      !  
 ,       OP蒊8隴Y@vP敗Z酪掏怲2!腍%3兡0籌沉b1!&H汈)a83繤喔dId北/E碘高餓 ;  070701000691c6000081a40000000000000002000000013ac038ba000000ad000000200000000000000000000000000000002500000003reloc/caldera/images/letters/232.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Zp蒊8=橞巖<`%砷!ΕN0	8= -H剩w`0垾	们u&佫胠H e  De荱^`c巭蠗D  ;   070701000691c7000081a40000000000000002000000013ac038ba000000a8000000200000000000000000000000000000002500000003reloc/caldera/images/letters/233.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Up蒊8-Z抃幊0Nq1蘠0
[蔖@恰((E嘆rp(徱t躈籰j(0蓡$鼈D择′睬K曎秭 ;070701000691c8000081a40000000000000002000000013ac038ba0000007d000000200000000000000000000000000000002500000003reloc/caldera/images/letters/234.gif  GIF89a    痧歌@@热瑞悙酄犺噤仞00                  !   ,       *蒊笘	別9圫$hS6嶄2`蜅) ;   070701000691c9000081a40000000000000002000000013ac038ba0000007b000000200000000000000000000000000000002500000003reloc/caldera/images/letters/235.gif  GIF89a    痧鴢勦@@热瑞牋栲澍刎hh00                  !   ,       (鹑IB%I@81$穙\芋$酃淬櫊p(  ; 070701000691cd000081a40000000000000002000000013ac038ba00000084000000200000000000000000000000000000002500000003reloc/caldera/images/letters/236.gif  GIF89a	    痧鴢勦HL蠤@热瑞牋栲澍刎00萷t               !   ,    	   1蒊8KP
 (TGRL╰@FE$獚濛;輳%>瘿i: ;070701000691ce000081a40000000000000002000000013ac038ba00000083000000200000000000000000000000000000002500000003reloc/caldera/images/letters/237.gif  GIF89a	    痧瑞悙酄犺噤仞hh亘00                  !   ,    	   0腥I84H羣$_2L翾 ^ TCB襳H征炪	O'倰醟蒤F  ; 070701000691cf000081a40000000000000002000000013ac038ba00000078000000200000000000000000000000000000002500000003reloc/caldera/images/letters/238.gif  GIF89a    痧鴢勦父鐯@热瑞悙郮X袪犺噤hh亘00         !  	 ,       %0蒊8胪gPG0R孯$A嶅LA 車旋@M ;070701000691d2000081a40000000000000002000000013ac038ba000000a0000000200000000000000000000000000000002500000003reloc/caldera/images/letters/239.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Mp蒊8=U懪W	嶤0刡M0ga4圥錍攷`+!
寬乆
H%揇дd渓澎7靧H乖験苙/ ;070701000691d3000081a40000000000000002000000013ac038ba000000a9000000200000000000000000000000000000002500000003reloc/caldera/images/letters/240.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Vp蒊8-欱@H[Rd喹朄8磗(擝B3%蓛C摍cR=&5&1袀Z`爜Zc槤*%哩9
 阖飜I ;   070701000691d4000081a40000000000000002000000013ac038ba000000aa000000200000000000000000000000000000002500000003reloc/caldera/images/letters/241.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Wp蒊8隴Y@vP x%N=*擱BC[ j	19[称j,A-0	訞C1JI0lC悽*r铠$ ;  070701000691d5000081a40000000000000002000000013ac038ba000000ae000000200000000000000000000000000000002500000003reloc/caldera/images/letters/242.gif  GIF89a    痧歌HL蠤@热瑞悙郮X袪犺噤仞hh亘00萷t   !  
 ,       [P蒊8霛	Z2M垄8p!0莂^G沱プp垘世7Y鴙妱O%!&勯:A搨廇鴦湇k卄/斆稃+ ;  070701000691d8000081a40000000000000002000000013ac038ba000000ad000000200000000000000000000000000000002500000003reloc/caldera/images/letters/243.gif  GIF89a    痧鳫L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t      !  	 ,       Z0蒊8雿8拋S偷(泌\v,唩`F7@3嵙/E&娨M()&?慸鄤枻塁0!擛 1`覴缾d`'qI甬藰~蠗D  ;   070701000691e6000081a40000000000000002000000013ac038ba000000ad000000200000000000000000000000000000002500000003reloc/caldera/images/letters/244.gif  GIF89a    痧鳫L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t      !  	 ,       Z0蒊8雧廦塧`$!
('!鈘\@擃c3喠'A(唨bH)膜	淍兩"鍜R7!U R
Uaげj.  a檦蠗D  ;   070701000691e7000081a40000000000000002000000013ac038ba00000080000000200000000000000000000000000000002500000003reloc/caldera/images/letters/245.gif  GIF89a    痧瑞牋栲澍刎hh亘00                     !   ,       -叭I8胪^ 欻f@\佮绢0	c]a禳NSi醼趣$ ;070701000691e8000081a40000000000000002000000013ac038ba000000a6000000200000000000000000000000000000002500000003reloc/caldera/images/letters/246.gif  GIF89a    痧鴢勦HL蠤@热瑞悙郮X袪犺噤仞hh亘00萷t   !  
 ,       SP蒊8胪GGu4,+ 61;绽Js僉	諦0X)	A fI5槑爬"H>欕癅R毻 *I槫7hN螪  ;  070701000691e9000081a40000000000000002000000013ac038ba00000094000000200000000000000000000000000000002500000003reloc/caldera/images/letters/247.gif  GIF89a    痧鴢勦@@热瑞牋栲澍刎hh亘00萷t            !   ,       A鹑I8雓YZ 趢V胉L+)
2仰\呋8/:乨@<,pA)MIa 趚苦I ;070701000691ea000081a40000000000000002000000013ac038ba00000092000000200000000000000000000000000000002500000003reloc/caldera/images/letters/248.gif  GIF89a    痧歌@@热瑞牋栲澍刎hh亘00萷t            !   ,       ?鹑I8km$X0f唓*鳖(4滓m;.9嘞吪熰昞$@4K$%h庙z' ;  070701000691eb000081a40000000000000002000000013ac038ba0000009f000000200000000000000000000000000000002500000003reloc/caldera/images/letters/249.gif  GIF89a    痧鴢勦HL蠤@热瑞悙酄犺噤仞00萷t            !  	 ,       L0蒊8=1@聜
(匹JQqH=
+窬_瘯 婥a4顠蹋3鶷╡bzZ劆7'1巣彤D  ; 070701000691ec000081a40000000000000002000000013ac038ba0000009e000000200000000000000000000000000000002500000003reloc/caldera/images/letters/250.gif  GIF89a    痧鳣@热瑞悙郮X袪犺噤仞hh亘00萷t         !   ,       K蒊8-U1B!\.5$噿(
4識睒><.(培<N欼.(焕#"a`贝z崍  ;  070701000691ed000081a40000000000000002000000013ac038ba00000085000000200000000000000000000000000000002500000003reloc/caldera/images/letters/251.gif  GIF89a    HL蠤@热瑞悙酄犺hh亘00                     !   ,       2叭I8雦埲B5F 1匟,廢H_6y[yuΛ諯F躀z筰:熗 ;   070701000691ee000081a40000000000000002000000013ac038ba00000099000000200000000000000000000000000000002500000003reloc/caldera/images/letters/252.gif  GIF89a    勦@@热瑞悙酄犺噤仞hh亘00               !   ,       F鹑I8雧@H!DA仮+暔僁从2}J6淒ET5
@8隃穃碏CR0>璡饟C.浰 ;   070701000691ef000081a40000000000000002000000013ac038ba000000ae000000200000000000000000000000000000002500000003reloc/caldera/images/letters/253.gif  GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       [p蒊8-JR\:萫0J4淯虜BK忋?佄醒&  T:臖$咮嚧R敆啂聬u	套q菮0藺繺@寑* ;  070701000691f0000081a40000000000000002000000013ac038ba00000000000000200000000000000000000000000000002500000003reloc/caldera/images/letters/254.gif  070701000691f1000081a40000000000000002000000013ac038ba00000000000000200000000000000000000000000000002500000003reloc/caldera/images/letters/255.gif  070701000691f2000081a40000000000000002000000013ac038ba0000007b000000200000000000000000000000000000002400000003reloc/caldera/images/letters/32.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!Made with GIMP !   ,       p蒊8胪`(巇i瀐 ; 070701000691f3000081a40000000000000002000000013ac038ba0000005e000000200000000000000000000000000000002400000003reloc/caldera/images/letters/33.gif   GIF89a    热馉犺噤hh亘00萷t!   ,       #8很劜!醍杳,"i屴i Q dBx$ ;  070701000691f4000081a40000000000000002000000013ac038ba0000007e000000200000000000000000000000000000002400000003reloc/caldera/images/letters/34.gif   GIF89a
    热馉犺噤仞hh亘00辱桫                     !   ,    
   +惾I8[A0G1杇簹*O0 h罓pH,彇 ;  070701000691f5000081a40000000000000002000000013ac038ba000000a8000000200000000000000000000000000000002400000003reloc/caldera/images/letters/35.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Up蒊8胪ic膨0$CZ嶢呧E+禳@$01駈梺沐xT傌悇!0o俻0S嗣<\$雪埏 ;0707010006920d000081a40000000000000002000000013ac038ba000000ac000000200000000000000000000000000000002400000003reloc/caldera/images/letters/36.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Yp蒊8隡嵤M@P專7*4勼P党0吜08晙w伃	喟R1\乭50Y垇1q
堌勯P*█E:Zu郻<溂~O  ;07070100069213000081a40000000000000002000000013ac038ba000000ca000000200000000000000000000000000000002400000003reloc/caldera/images/letters/37.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       wp蒊8胪k*4 梡805`%幟8D"峎K4澩俻悐$/冯
庒+6*5&  剙s58胅!壵hAp  4唗{	igR

!槞! ;  07070100069214000081a40000000000000002000000013ac038ba000000c2000000200000000000000000000000000000002400000003reloc/caldera/images/letters/38.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       op蒊8胪鸏胖8hh凜$纼*Y{H茰錘P牱鄲rh垽EAD g%*℅厑j淧乷儝..t騭0&hH	$迷嘎3rQU{E
 k悜拻 ;  07070100069220000081a40000000000000002000000013ac038ba00000052000000200000000000000000000000000000002400000003reloc/caldera/images/letters/39.gif   GIF89a    热馉犺刎hh亘00   !   ,       8很劜!鮢, @di瀐$ ;  07070100069221000081a40000000000000002000000013ac038ba0000008a000000200000000000000000000000000000002400000003reloc/caldera/images/letters/40.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00   !   ,       7p蒊
りp 8G8F8M8暭UAS禨嵑雝攦CP	8亙a!(0C璂  ;  07070100069222000081a40000000000000002000000013ac038ba00000088000000200000000000000000000000000000002400000003reloc/caldera/images/letters/41.gif   GIF89a    痧鴢勦父鐷L腥瑞悙郮X袪犺噤hh亘00萷t      !  	 ,       50蒊x@[斃4򣸒00u0佁(6>王羝C@9啞岕 ;07070100069223000081a40000000000000002000000013ac038ba00000094000000200000000000000000000000000000002400000003reloc/caldera/images/letters/42.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Ap蒊8隲p薈tU NP)2.叄镫壝((*噣p Q 喢"8螎v隧z苦K ;07070100069224000081a40000000000000002000000013ac038ba00000080000000200000000000000000000000000000002400000003reloc/caldera/images/letters/43.gif   GIF89a    勦热餢X袪犺噤仞hh亘00                  !   ,       -腥I8胪^$欻f鎱0睪1c]S0栏K
5*A趣2 ;07070100069225000081a40000000000000002000000013ac038ba0000006f000000200000000000000000000000000000002400000003reloc/caldera/images/letters/44.gif   GIF89a    痧鴢勦@@热瑞悙酄犺刎00                     !   ,       鹑I8胪歈 @	HA:-菶 ; 07070100069226000081a40000000000000002000000013ac038ba0000003f000000200000000000000000000000000000002400000003reloc/caldera/images/letters/45.gif   GIF89a    hh00   !    ,       剰┧C济 ; 07070100069227000081a40000000000000002000000013ac038ba0000004c000000200000000000000000000000000000002400000003reloc/caldera/images/letters/46.gif   GIF89a    热馉犺hh亘00      !   ,       (很0蔍伂P祁V$ ;07070100069228000081a40000000000000002000000013ac038ba0000008e000000200000000000000000000000000000002400000003reloc/caldera/images/letters/47.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       ;p蒊8k笂C``#\夈|溍`弮\沑3`Cp@"埋@9,琑`6仂$ ;  07070100069229000081a40000000000000002000000013ac038ba000000a6000000200000000000000000000000000000002400000003reloc/caldera/images/letters/48.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00   !   ,       Sp蒊8胪'蝷 栣8莥T,荣PH*艤宇P災渵糜'\鴸桅8EpB,
'CeG0$
犁`\-塀# ;  0707010006922a000081a40000000000000002000000013ac038ba0000007d000000200000000000000000000000000000002400000003reloc/caldera/images/letters/49.gif   GIF89a	    勦父鐯@热瑞悙酄犺噤hh00                  !   ,    	   *鹑I8k9"$$2懆)%BPN艢ㄔ[脔l岌~9ZO)/ ;   0707010006922b000081a40000000000000002000000013ac038ba00000099000000200000000000000000000000000000002400000003reloc/caldera/images/letters/50.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00   !   ,       Fp蒊8胪gc巗 @e劽T倴H豅
 R釾

 
棦"\Z臙奲b巵m;揱C`疌./ ;   0707010006922c000081a40000000000000002000000013ac038ba000000a4000000200000000000000000000000000000002400000003reloc/caldera/images/letters/51.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞XX袪犺噤仞hh亘00萷t   !  
 ,       QP蒊8雿Q$B4峲6爣溒"-(枩肆A覷P÷ダ啾0 PM倠韟PC9k&醏@1(嚂積I寽笢 ;0707010006922d000081a40000000000000002000000013ac038ba00000094000000200000000000000000000000000000002400000003reloc/caldera/images/letters/52.gif   GIF89a    痧歌HL蠤@热瑞悙郮X袪犺噤仞hh亘00      !  
 ,       AP蒊8胪+X`v4$啇宓犕4儜VB矛m5

^!7搶 09睭	侤%葎	/稠x苦L ;0707010006922e000081a40000000000000002000000013ac038ba000000a0000000200000000000000000000000000000002400000003reloc/caldera/images/letters/53.gif   GIF89a    痧鴢勦HL蠤@热瑞XX袪犺噤仞hh亘00萷t      !  	 ,       M0蒊8雧楘爞Lc1)寬.啞R靲*纉0	(2M剳だLt舍71A魼1杈d辞i慧 ;0707010006922f000081a40000000000000002000000013ac038ba000000a8000000200000000000000000000000000000002400000003reloc/caldera/images/letters/54.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Up蒊8胪5:庴W2D(TM,蒠=釀軙剝A萢鐼
昧'd C(0Buqu(( GX BG靡H+.雪埏 ;07070100069230000081a40000000000000002000000013ac038ba0000008d000000200000000000000000000000000000002400000003reloc/caldera/images/letters/55.gif   GIF89a    痧鴢勦HL蠤@热瑞悙郮X袪犺噤仞hh亘00萷t   !  
 ,       :P蒊8雧^25dI—)^F#`	y`塦C砢鉮 )90哷鉞疿N ;   07070100069231000081a40000000000000002000000013ac038ba000000ad000000200000000000000000000000000000002400000003reloc/caldera/images/letters/56.gif   GIF89a    痧鴢勦父鐯@热瑞悙郮X袪犺噤仞hh亘00萷t   !  
 ,       ZP蒊8胪Mc@U剢仏2SxP儓(囆o扨A8諃!0Bc持kl$∨D重)l(,	娱Z剎g乡D  ;   07070100069232000081a40000000000000002000000013ac038ba000000a9000000200000000000000000000000000000002400000003reloc/caldera/images/letters/57.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Vp蒊8胪%@冦<E":埲礜圶J脫(⿻#6Q'髵s夿 1AQk:P"偂 悽霖扷t铠| ;   07070100069233000081a40000000000000002000000013ac038ba00000053000000200000000000000000000000000000002400000003reloc/caldera/images/letters/58.gif   GIF89a    痧瑞牋栲澍00      !   ,       H很0*%芗〞 洣`&>	 ; 07070100069234000081a40000000000000002000000013ac038ba00000078000000200000000000000000000000000000002400000003reloc/caldera/images/letters/59.gif   GIF89a    痧鴢勦父鐯@热瑞牋栲澍刎00萷t               !   ,       %蒊8雿!$醁y FQT $%喃U ;07070100069235000081a40000000000000002000000013ac038ba0000008a000000200000000000000000000000000000002400000003reloc/caldera/images/letters/60.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞XX袪犺噤hh亘00萷t      !  	 ,       70蒊8胪$菂脭(覤钠乀G糮敦@wY4b蛂J4RhJ鞤  ;  07070100069236000081a40000000000000002000000013ac038ba0000005b000000200000000000000000000000000000002400000003reloc/caldera/images/letters/61.gif   GIF89a    热馉犺hh00         !   ,        (很0蔍u杞 dY^@^额囃t$ ; 07070100069237000081a40000000000000002000000013ac038ba0000008a000000200000000000000000000000000000002400000003reloc/caldera/images/letters/62.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       7p蒊8胪踓(8G\蚿瀬p)唟糆n偘9配`╰hJ璕" ;  07070100069238000081a40000000000000002000000013ac038ba00000091000000200000000000000000000000000000002400000003reloc/caldera/images/letters/63.gif   GIF89a    痧鴢勦父鐯@热瑞悙郮X袪犺噤仞hh亘00萷t   !  
 ,       >P蒊8k嬑RMi2BHG9 豏畻Q聳PW24即欀!肵0"[謲v隋F  ;   07070100069239000081a40000000000000002000000013ac038ba000000fb000000200000000000000000000000000000002400000003reloc/caldera/images/letters/64.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       ╬蒊8胪粭
0锣$X乒$3蹟| 勩P$	D(,幤@p貏a 8!C"塥鎱nt	\	T YK狽 .+NNcit:tzu2fB"孷 :+'M0 +!U-+` #% ; 07070100069244000081a40000000000000002000000013ac038b9000000a7000000200000000000000000000000000000002400000003reloc/caldera/images/letters/65.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Tp蒊8胪;8淅$﹍劽悂&惵#4缷#vi鎱帞DjJzXx)燽#綺敚A*B脘閄U拵mgN7 ; 07070100069245000081a40000000000000002000000013ac038b9000000a8000000200000000000000000000000000000002400000003reloc/caldera/images/letters/66.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞XX袪犺噤仞hh亘00      !  
 ,       UP蒊8隴蠃`a-Mi6CB憤,D9 C㎎盎_MR-h L.偮啤P膜7(稢壏q鋾φ,榝鐏C飻 ;07070100069246000081a40000000000000002000000013ac038b9000000ad000000200000000000000000000000000000002400000003reloc/caldera/images/letters/67.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Zp蒊8胪WBc4X銣锠T翴舠誵sO蔐5!挙l'1箃(5儝( NBI郿\(l宙8鐽`
_巭戏D  ;   07070100069294000081a40000000000000002000000013ac038b9000000a4000000200000000000000000000000000000002400000003reloc/caldera/images/letters/68.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Qp蒊8氕p9dI"U2蘍U9)墾$U頣5Gj!0H匢qrt$%KIS√M 穴
侴塟5崢鵣Hp摒竆 ;07070100069295000081a40000000000000002000000013ac038b900000092000000200000000000000000000000000000002400000003reloc/caldera/images/letters/69.gif   GIF89a    痧鴢勦HL腥瑞牋柝仞hh亘00                  !   ,       ?腥I8=0Ii柲X
G"j抌阵U煡(<煛崁X蝹粫娗A!芀雈隧z ;  07070100069296000081a40000000000000002000000013ac038b90000008a000000200000000000000000000000000000002400000003reloc/caldera/images/letters/70.gif   GIF89a    @@热瑞XX袪犺噤hh亘00                     !   ,       7叭I8隡^0Hi柮XF*bd3V%刁緬 @$m:y╁毷峵J璣" ;  07070100069297000081a40000000000000002000000013ac038b9000000b5000000200000000000000000000000000000002400000003reloc/caldera/images/letters/71.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00   !   ,       bp蒊8胪mBL鉁3(晀HQ/05艤虳;圝N"k&&Kh*(!渓p瞫(Ν$台劑类d 熜呎A暷O锁ZX儎 ;   07070100069298000081a40000000000000002000000013ac038b900000077000000200000000000000000000000000000002400000003reloc/caldera/images/letters/72.gif   GIF89a    勦热馉犺00         !   ,       <8很0)乊!銇枻2灙壊脢A n<;蚪(#SG楲$.櫬(eJ璟	 ; 070701000692db000081a40000000000000002000000013ac038b90000005b000000200000000000000000000000000000002400000003reloc/caldera/images/letters/73.gif   GIF89a    热馉犺噤hh亘00   !   ,        8很 1X鑡a7|&Zx挱	汪  ; 070701000692dc000081a40000000000000002000000013ac038b90000008a000000200000000000000000000000000000002400000003reloc/caldera/images/letters/74.gif   GIF89a    痧鴢勦HL蠤@热瑞XX袪犺噤仞hh亘00         !  	 ,       70蒊8霛屜L奨葘gI^&闖丩*
塃(01#80f栘扖璻" ;  070701000692dd000081a40000000000000002000000013ac038b9000000aa000000200000000000000000000000000000002400000003reloc/caldera/images/letters/75.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Wp蒊8氕B!蔜83鐰潻$稷jB8Dy*T1(秙0癈S澳蛒	媞窭i絸A茶]厽J聄$[I踵仫% ;  070701000692de000081a40000000000000002000000013ac038b900000068000000200000000000000000000000000000002400000003reloc/caldera/images/letters/76.gif   GIF89a    热餢X袪犺噤hh亘00!   ,       -H很0󅌚淪蝾惼yc鴳#ξ娋 4=,猞撅綁pH, ;070701000692df000081a40000000000000002000000013ac038b9000000cb000000200000000000000000000000000000002400000003reloc/caldera/images/letters/77.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       xp蒊8胪{mH圱悻嶡53J狢8踟爰曰
鬜+#!瑴2]#m鮯<$窊峨X 感D禞^$莂宾$ Z桱7Ktcw
,s僱{U}[eq倞>槞殯 ; 070701000692e0000081a40000000000000002000000013ac038b9000000a6000000200000000000000000000000000000002400000003reloc/caldera/images/letters/78.gif   GIF89a    痧鴢勦HL蠤@热瑞牋栲澍刎hh亘00            !   ,       S蒊8胪)`P
8KT挒2寬焕K惒++莠w;"庡跂 M"殌-h捺+(bE0O"圓皖巪N痆" ;  070701000692e1000081a40000000000000002000000013ac038b9000000ba000000200000000000000000000000000000002400000003reloc/caldera/images/letters/79.gif   GIF89a    痧鴢勦HL蠤@热瑞悙郮X袪犺噤仞hh亘00萷t   !  
 ,       gP蒊8胪-:吴V4h仲(; L& 奞aZA撛E*源1,P
a憷5cCGId XA頫L	|垑 ;  070701000692e2000081a40000000000000002000000013ac038b900000095000000200000000000000000000000000000002400000003reloc/caldera/images/letters/80.gif   GIF89a    痧鴢勦父鐷L腥瑞悙郮X袪犺噤hh亘00         !  	 ,       B0蒊8隡庽RLi2E2儮樓雌	QrI'f涡垱O擱捳塧 鳽娎bに态U蘒涊x苦% ;   070701000692e3000081a40000000000000002000000013ac038b9000000b7000000200000000000000000000000000000002400000003reloc/caldera/images/letters/81.gif   GIF89a    痧鴢勦HL蠤@热瑞悙郮X袪犺噤仞hh亘00萷t   !  
 ,       dP蒊8胪7:吴HV4h踪(K% L& 奞aZA斣E:瑠j,P
16怉SN潭浂!X鳳贑!T	k厗噯 ; 070701000692e4000081a40000000000000002000000013ac038b9000000a2000000200000000000000000000000000000002400000003reloc/caldera/images/letters/82.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤hh亘00萷t   !  
 ,       OP蒊8隴 TMiC橩;樕dRK壢%呚x3嘡L耲陵d2寊G杀鬗俈bn鰐ヂw锣i硦Bi羒贿pI ;  070701000692e5000081a40000000000000002000000013ac038b9000000b7000000200000000000000000000000000000002400000003reloc/caldera/images/letters/83.gif   GIF89a    痧歌HL蠤@热瑞悙郮X袪犺噤仞hh亘00萷t   !  
 ,       dP蒊8胪:吴纔4h*$釥Ke牓t7U+	"x4乀c郹(剠ry紎bn%輆rj屔ǔ個 牌W"フ
爯MAO厗 ; 070701000692e6000081a40000000000000002000000013ac038b900000057000000200000000000000000000000000000002400000003reloc/caldera/images/letters/84.gif   GIF89a    牋hh00!   ,       (審┧頍渷Gx憓聮=6)硳橓⒈:车薃鱅 ; 070701000692e7000081a40000000000000002000000013ac038b9000000a6000000200000000000000000000000000000002400000003reloc/caldera/images/letters/85.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞XX袪犺噤仞hh亘00      !  
 ,       SP蒊8氕彲埱LMY錌讪R贉:穟蘊.礂-鈩/擟0a I侾BP%侣YUY  
,gN痮" ;  070701000692e8000081a40000000000000002000000013ac038b9000000a8000000200000000000000000000000000000002400000003reloc/caldera/images/letters/86.gif   GIF89a    痧鴢勦HL蠤@热瑞悙郮X袪犺噤仞ì00萷t      !  
 ,       UP蒊8胪聩堳0蘍%h@≦(Q	h)宍(*X檮菩Qx蚞T @Ld9^CC=鄿ZX瑿秣 ;070701000692e9000081a40000000000000002000000013ac038b9000000e1000000200000000000000000000000000000002400000003reloc/caldera/images/letters/87.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       巔蒊8胪籣襊B8NM89A:棠皦艾"),H-謮(L
,兡鄕IUa0膙 =*7"裬 媊呹P竇@ Z [gD2;哤B4悆0W} ,t-O<梸<搎1i ;   070701000692ea000081a40000000000000002000000013ac038ba000000a9000000200000000000000000000000000000002400000003reloc/caldera/images/letters/88.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞XX袪犺噤仞hh亘00萷t   !  
 ,       VP蒊8胪8`艀MsLIjTBJ 拺枙蕬畺SJZdb⊙6N)c^_脁q6)l')T)沦$愨J4J堠埏鳭 ;   070701000692eb000081a40000000000000002000000013ac038ba0000009c000000200000000000000000000000000000002400000003reloc/caldera/images/letters/89.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞XX袪犺噤仞hh亘00      !  
 ,       IP蒊8胪'8 B%燖-MPAZPEJ .R奂昘儬 0:屏\F翘C蚀5^N竅順翔t& ;070701000692ec000081a40000000000000002000000013ac038ba0000009a000000200000000000000000000000000000002400000003reloc/caldera/images/letters/90.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Gp蒊8隴 H!Ni歍矛雬b 賁	%霵
d7 F`R`繷嗚8甔ヤ膗&萦桟.浵 ;  070701000692ed000081a40000000000000002000000013ac038ba000000cf000000200000000000000000000000000000002400000003reloc/caldera/images/letters/91.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       |p蒊8胪籲H(園!RL屻3P堧 28奍稿p儜褺.殦傘P丣#羂>綃 媇彯p醍掾忉h飻uJ|rE&}|5pk6+5.N朅v灍 ; 070701000692ee000081a40000000000000002000000013ac038ba0000008f000000200000000000000000000000000000002400000003reloc/caldera/images/letters/93.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙酄犺噤仞hh亘00萷t   !  
 ,       <P蒊8氕蟌傩4%hT@C FcTG(圽散!$	ａ 
疘!醛Z瑬 ; 070701000692ef000081a40000000000000002000000013ac038ba00000055000000200000000000000000000000000000002400000003reloc/caldera/images/letters/94.gif   GIF89a    热饜愢噤仞ì00   !   ,       H很0蔍8胪粐!巄@米$ ;   070701000692f0000081a40000000000000002000000013ac038ba0000006a000000200000000000000000000000000000002400000003reloc/caldera/images/letters/95.gif   GIF89a    痧歌@@热瑞悙酄犺噤仞                     !   ,       蒊笖@@'1`hl牒 ;  070701000692f1000081a40000000000000002000000013ac038ba00000082000000200000000000000000000000000000002400000003reloc/caldera/images/letters/96.gif   GIF89a    父鐷L蠤@热瑞悙酄犺噤仞hh亘00萷t         !   ,       /蒊鴼ⅷKBs孠Q*贜,E,!遇齁被?BeU 	afi  ;  070701000692f2000081a40000000000000002000000013ac038ba0000009c000000200000000000000000000000000000002400000003reloc/caldera/images/letters/97.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00萷t!   ,       Ip蒊8胪环
"*8(jP,JJIQ K酭3桪 ;闪1愯訟僇N嶨蘸P勂O8Q>梏% ;070701000692f3000081a40000000000000002000000013ac038ba0000009f000000200000000000000000000000000000002400000003reloc/caldera/images/letters/98.gif   GIF89a    痧鴢勦父鐷L蠤@热瑞悙郮X袪犺噤仞hh亘00   !   ,       Lp蒊8胼覍銆"9f( P俻埵斨媯($"B駝,IR墘h包,氓胉 挞OQ秒0咉f蚽W" ; 070701000692f4000081a40000000000000002000000013ac038ba00000096000000200000000000000000000000000000002400000003reloc/caldera/images/letters/99.gif   GIF89a    痧鴢勦父鐯@热瑞悙郮X袪犺噤仞hh亘00萷t   !  
 ,       CP蒊8胪豢聁$`4h 砸BS:篖菍趨*H2( :Jj0*S訞X煱 ;  07070100067afa000081a40000000000000002000000013ac038ba00000023000000200000000000000000000000000000002700000003reloc/caldera/images/main-bg-pixel.gif    GIF89a    烫   ,       D ; 07070100067afb000081a40000000000000002000000013ac038ba00000061000000200000000000000000000000000000002000000003reloc/caldera/images/nav2bg.gif   GIF89a ,  烫33..((W}11,     , .(很0蔍榿突`(巇i瀐l刖p,蟭m選|罓pH,e	 ;   07070100067afc000081a40000000000000002000000013ac038ba0000006e000000200000000000000000000000000000001f00000003reloc/caldera/images/navbg.gif    GIF89a ,  烫33..((W}11,     , ;X簀n$扐枪'柰`(巇i嶡l刖p,蟭m選|罓pH,徣蒷:熜╰J&  ;  07070100067afd000081a40000000000000002000000013ac038ba0000031f000000200000000000000000000000000000002500000003reloc/caldera/images/pixel-white.gif  GIF89a    f3 烫虣蘤3 櫶櫃檉3 ffffff3f 3333f333     f 3  烫櫶f3 烫烫烫虣烫f烫3烫 虣虣烫櫃虣f虣3虣 蘤蘤烫f櫶ff蘤3蘤 33烫3櫶3f333   烫 櫶 f 3  虣櫃f3 櫶櫶虣虣櫶f櫶3櫶 櫃櫃虣櫃櫃f櫃3櫃 檉檉虣f櫃ff檉3檉 33虣3櫃3f333   虣 櫃 f 3  ff蘤檉ff3f ff烫f虣f蘤f3f ff櫶f櫃f檉f3f ffff蘤f檉ffff3ff f3f3蘤3檉3ff33f3 f f 蘤 檉 ff 3f  3333f333 33烫3虣3蘤333 33櫶3櫃3檉333 3f3f3f3ff3f33f 33333333f33333 3 3 3 3 f3 33      f 3    烫 虣 蘤 3    櫶 櫃 檉 3   f f f ff f3 f  3 3 3 3f 33 3         f  3                                                                                                                           ,         ; 07070100067afe000081a40000000000000002000000013ac038ba0000002b000000200000000000000000000000000000002000000003reloc/caldera/images/spacer.gif   GIF89a   览   !    ,       D ; 07070100067aff000081a40000000000000002000000013ac038ba0000003e000000200000000000000000000000000000002a00000003reloc/caldera/images/top-grad-stretch.gif GIF89a    11..((}3333W   ,       h6#R埥8 ;  07070100067b0a000081a40000000000000002000000013ac038ba00001f38000000200000000000000000000000000000002700000003reloc/caldera/images/webmin-header.gif    GIF89a#   V䴙炴z~~jjz^^ZRRz~谮&&欶F**⑹室BB獨殲>>睛Σ*.綣J畍vzff柖逗拻::綱Z築B~揶鈯妿ff甖Vr秡z秱倸骀瓴段fb22j灇..締啴njV蝂^芺b諶R揪臼**掰*.俲j蕍v26緅n蜝B蔉J尧㈥剖駼F耶挅鎺幘&*瀦z""^铑鰖~蕈倖藓绢NNV种2222..獖庘ff趎n趥傏RR6:挛悟蝌碴枤26虏:>26殕嗏拻鎣r::^66朲^諮N柌蛾vVZ謏j"&抮r襃J衣买.2簥娾&&brr辷z辬j诋::苸z.2>B>>蝵傗FF蝂Z謓n22瀭傓::n26"&r~~庖因RV22&*傗骣帋66""v鲻j殮鎊^侄蛾**fFF..""唕n..22蝏b贔F哊N.."r::蕍v..66*.禫V""~**f6622^6:..B226622**歂N""z&&~::bBB26&&6:n.2""26&&6:66..66..2266b^***...:>.22622**..**!Made with GIMP ,    #   H盃羶*\劝∶	"橦qb悑A诖q枣b艎/jt淙勆>(鹟澳掑仐0榠谅虠!Nò郧%,>jZ怸S盘Dk侍y釪仌&,l IrＦ玐3^4fJU璪*2阖J	6l榿闶滽樊莼x箨菟矾呖L赴崦+^谈便菒H濴共逅3k尢钩缦M簍ib摯ㄖB,"E[@酩訿纋x胁曪攮>P翨*抩淫罛+柧C`	E 魛鼉>|䴗酪;+7躛暇b飋刼朲贠捔縱( 1
"欂D6栲F(釀Vh釁fㄡv栳 (攈鈮(Θ鈯,惰鈰0(卧鐻8辎%:硛^< D 蓭亨杼)(j^)D~P錺d欏qz豍醡W錻荱1莈職攪艣'fv%鑁Dd攟錾'閰/`(崤%膍B&q梮O:)稨{43L4+葱侹$,搥e	お戟觋捌*氍粗j氕告鲫氙+彀k毂&埠嗏斐蠪+泶訴k淼豧吨b偵 糄A拣财tL;繢%班湢&5LRH1)庵泵%i\饴
.h3扜N81h衊h<盉M谸们h匕M虂苺l褍 98QEM,R4爜籥憄ut蠥"n8aC#火	A-XR[撞7羲u-2)()3天x.g,#抶绛齄迀黜鬟.n'鈱7铠銗G.擶n婼Ⅸ鏈w铢鐮.n爓	*G
'#c赛2砗缆HQ*,恬潣viぱze|捛鮛D3繿'3猜
G虪3<c46癆D嵈UpQC 蝠"|u烂秲 7葍蚮鄤Qp;"+#4芾癤摅爨梳x&LC9H绩伔灔gy鈬
嘓"駡HL椚&:駢P將*Z駣X挞啡.z駤`ジ詸駥hLIW芅蒯晙虬僠,!萖巳%鴔粮'<6 擯&R窰;d哺簸匫X{-X鬣`3虁f'綪	3磸P0"(@FhD鈆"|傲T@楥鍬.s`'豟4爨牧'<	p圈[`F|!鋼+懮めxx#嘽D Q8* Y5汘悆*r憡T嗅霼/蓄牅瑙B市:簟崹D'J褗Z簪通F7恃巣簦 〩GJ覓汈(M㎎W:Q=呼0崺LgJ託隰8桐N_簞U"s`CT gOa昵NHe"p圲鳤s澵.锳Y萣冄;B%?Q<|bN0博=@spt`64=0B垹 4f[ 7'[@&(缽	4杪襊#p饄;犾h .tAp悇ZO澤郘'淍NK段u䜩,Ph栳]喷"M佋U 河%偦刜,酯后椝苕:鞴袓畉蓐Z骱赝畍匪蓊zWsM痻荎掾汍艰M痾姿揆[  +祭c`
`馟骱4u 00KP,`:;圉儴:7(\O刪55褗?# 
4衼πW.!E鳣∞釛C@fp;s辣0%Z訤!
nh3癜饬	@婣+	l蕅睳甫$蹳'搥畢黼!媦.2x-
a良6繻傼4G躑魯寂+^{鏛:垸蝬纬烑嚏>蟺礌M鐱圢磟w疏F;惗v9匜 <H凘匓溧艐﹛e褌!@`誹b涟f^袎儼N髵g厴Z啫
鮧氖*]匛懿h 妧L62樋埿f34 -|O1藏$53糰榾鐱h錢A'膿o缺H9颫腟zi楅壜鮘.倯尀㧏铈捇;垌N徃'N駣[细7务;a k噽泑#o昵M;徜(Ot'^46潏Ds厸烹RU嗔P 2&寏鑴&l蟳弜鞽瘲纱RP凙迓猐&ˋ w赴9!9多靇s抶BP欞5鶝鱪]垉pf  (	
 軴8盒俹^/b鰒 偌1癶5檹	MO徠=8窭跿9紃n犟fO埝龈辖顆消摞攫嘜O掘椣;従臾O};	染鰸%8AR嵋E効慆~i濟D(H\0@
B铣O谹詞a 道0
	朒翣U婦fo牯鯿]荶d\c@Cpo0FPEWlphjP40鍲0缍my`=痵Cf; HOo扏|E饌N:sta楓	畠N;0O k鎗`袄[vd\^'^r	g哒唍鴨p噐8噒X噕x噚╙u鄃C
V~贕幞岱|竲CGh翋9P匑傪憄	/郍q
@@cP0P0@珷:╜皜[uu赇儹sI1諷=@ XC  :jG╀:P饌4j7镉賳Z謸=0Y裇knDVdi0L爪2喞br0G,燣阵c!t厪pOd6fzv鬴~q 9Yy議K`偢{S 堎敯G	~烨h=祱贄戫WS濔	咅*0>~BB渠SG9`Z蘞OQw<]HfdV_V覵If匳s4>f乐倁荴[\戎:昄兝Yd属0涘宻`A痵Y7dl9w沃c咴:Yx尷兂彔卄貐鲐j潗H畺忓甒^鼒鶚檼9檾Y櫀I檔謷7
)鴻p8g N`hupF 晉瀙M 7N槴p	0tu~@楻z╱梽Vp?E v9 cqM衯CFiB晅6-P岎磩w梒4 %敄鬖岫yy婡q\衛@w:]6[左cZ&ObkY5樔S槯鱢<釁槇:e兆 ":$Z&z(殺*|	H箼C蓤K倄\峷鶓2_  嵿 $0P琉	懆10\P闵g00P	V様盃U恍婗4k滻byIoUP╰=0us`Nl0\饌f2:XBG *內ty=t燌〢N6(wYf恲i蓶i=([(p獂<uW錰錁~dG…蕟y8Zz毇汉9sΚD 歾t3殅M蠸焢赹:含~ff l$>	n	G0捠3玡崰:Pp	XJ豪 h槅鵭<V梇>XIe誹-`I \  F效PPj恄壍l赓I落c瓝c縿LJ	儳A呑峔w癑sM;鑳杏6n鱲NYUe衘情儶鶻毊獦|TF椯>@碆;磸筍j7狦 ~1~c郍I1uf7V;D2宅PW媟[kv 峘礑鄳i $hG`単=TD bqp  椑佬祦0j`:c蔪算妚N蟟佒儊寞n\餡C9宭 瀱 T4恇MO0B馾a搘c訓漹'兡tOP碅舱岹@UF嶄骦F&勨&6Oou繾●Z榃臹擿G政^岻蹿唤苒睫鄫^}倶毇 岌 z劥嗲$3^зM+垊(^咫 S`K`~ #爄汌6) +銢j@挏pW <p鳐 3爥鄺y鄥H痁hk訑dI3衼cPCUv绯郄w袛V盀
幦眐晅i憲崡諐8]1攪e焢0俉-[O徭AH[)41	W:Q桯MUp姵茬TjX秸虎h溒j计l芷np*猄簮錵青w/殅~D缹℅九殅@~zt殐寏/%垎8泒 斕摐
0騁壭iIp) d@檧;滭_燯茰蛽N祐斦1#T	6z;}陝c案x:à-輺I|笔L3PD0XNIFe爾Td rO`y柎|9xDI;@7纘z4肱X%gj簡|垣宵芟 雄臹銢檱
K 繉厝邝~$融D 殙恟;葌幞褍,蒘 曁5嚿I0佮   d	I湿~j@u8Ohk棝I=哷 ?&t:5汸K.8`蓸屓D蛯寙q\MV 嬖m$睙肮襐Nae猬牉:O9[7PO(DzΝ峙4邾鼧礕{貍=貏]貑}h9U.z衺 U
n~鸹菈癟~j`<v佬7.吶嵗<=閒{渳1`PD@Fp/p磢"涏佰0 	g )煓礙+垙蠬佣V澒哯N兀lD t72q衯挵炓	a爈Χx.槍i梩裦粲F0瀰陮莲a陡坻訉e0>:枼AfOW,硦:glX橀e綆櫧>^釃]=5跍骨-菒鄧~CW狩	M遽赪貾+^=t趬`殦ih	
- 	 疸pZ.= 垎燝潗茑g`販釬侙啍-P	&Ax5ゼ<癙@虲0;辨	,0<翱椢?j@}>4"+	$禞橧_0牃鱑鵄插`(碒YE猑枢ガ赺蕝肌	.菤鹃溵闉辎>{8ヘ~ぞ嗲櫉n柨侑 6
~RGP綽腙賅囲潸堦唰=u趭霨萸/0蹱 討礉#0d8 	F俬篪姴0a&VV2F`[p*3p惕6`o纋)c倀g郓j\c妘w葦c2Y&囤肸_餗悖牭[輝'よ:p袷唌勦^|\#]&(燆*框叩h妽袀XLR瀩生檠崆崙漼殈h趪槳5
嬓sB`
Z	U癷溨s{
筑f~p歄`O擕棾棝箤necl嗤骎I3)面-<耯瀄袩c佇v頻]p沾+ #+1倌V
_	昿ak[a戶姱z嵽臱E茊u<{^m釡啭鶢7e闙%埦 鑧陣竳n喨冹0销'迱Ku诎咔竖G椊=
:趙\W飂漙傴0O]F佅)V梉嬕=鄟D3`oC|5簄嶹 _V昐-@fPc47&焫荲艹V卭媅.椟网8餖 便F;v`4诈S0
)僅!%姅朶膞瘛臽Kf靦眂F%M濪橰錔-]緞S鍸5mZ礄S鏝=}T鑀q$橐UMc
鮥T6JW晧*5k秪齤澧篆N";6閽)[*]瞙獽瑋]/F筟1篚T廝酙擑H茻虼p"蠆M赴獒淙FN棹X膯-M牥i" uI衏赑 BcFs嫘革9]啻荌r83+w猡<y>->8<╠誂U形盷滾陵洄!q哾o颍H
={Q~0@$癅D0Ad癆0B	'ぐB/0C7D)?l
2Z-盃*#N 啴垛 :g岊dV!++'蚴1*C<41狤F+*含*2了$
1樌秡:dy鋺4矉鈭O藘！'ZX 崦#(!d*@cc.犡b>Fd堐惸*r 劯醸8I燬甊K!嫯掳幈煲Po<X4袲!胰彃乽夢3)散妚宓W_6Xa%禭c廍6Ye梕禮f椑蟉iД禯k6[m峰钝liD|2獶@T僂簰瞔獴H*僃;弃j玍1+.
*敝zr泮*#&肥╘宍2+7跘K偶t鞁蝂(#3軜亼/$♂?箻倛i剤@P愕扌A磮趆籱4 ! 䦃舴爄様𯯷[鹭:>YΞ Xv:"WG(Z1:$娋.猯诚F;m底f籱愤;n棺D崧()(XT#=艳郸婈	噅G縭#摹H逢
橋&:8+	霁)喛"薖穃,
05昄S甓 	C姲+r酄#庁匕鶐9t癰蠩	t洝嗝禙0c唟敻鉃p鈎娈_铊O徖;<F昪j垺 bOW];婊>?;~` 8傈)w麗R䏝6$p乊S灓#,嵷J"娴@i鳧憾覉剪+ C馑\植
匽檵J
V繂Ex纫La*_0t0#冤d(+a①牋?-1P冓 攚@tp盒呥t	J玊湏滃,慽.}*|!蘹4>
Q}0r?o愼q~8碒F6覒徳怘 9IJV覓椖d&7t懞mN\$嬺惙嫲hG泵奨敃5,脟L8$r`M宋s[q#p0迸8&2橞娻",D骛.)J,蘩5癌O 挆3D櫋 傂 ㊣Y飠風 U鴙 媯X!i蟷胤Y硎$穫窜-6浴卙C铃憟V寓舎F5貉圢%烲`S($鈄V1hU畳y IO翆蘎哬9RRZ券^d!Th牆-5b拺扌*癆 jP!t+)B(恪!F楳燌pE錷83p魝3艻!噸Hc鋓咕12宍騊䥺蛝/;;*n犌]$$=!e	閵弲ldy扨蒝植椗leC襂悅#"軍V樎( 斄菴J7躪q[盋J吅蛂s#义粢K蝘.)歺耊逘C覷32z爄18 俲0( 躊匜=愅犇嫵94蕥i%荋4鑘疪郑週1:a燾#*T剣忔檲{邝菌礕掎М頶刻6亓3鄡%<a
W'^e5糰w孛q圗<b椮'Fq奤糱坟/唓宔<c'棕7苢巙糲髫?r悈<d"偃GFr挄糳&7y ;0707010002b518000081e40000000000000002000000013ac038bb00000651000000200000000000000000000000000000001800000003reloc/caldera/index.cgi   #!/usr/local/bin/perl
# index.cgi
# Webmin index page for Caldera's theme. Contains two frames, with the
# categories and modules always at the top and the CGIs at the bottom

require './web-lib.pl';
&init_config();
$hostname = &get_system_hostname();
$ver = &get_webmin_version();
if ($gconfig{'real_os_type'}) {
	$ostr = "$gconfig{'real_os_type'} $gconfig{'real_os_version'}";
	}
else {
	$ostr = "$gconfig{'os_type'} $gconfig{'os_version'}";
	}

# Find the category with the most modules
&read_acl(\%acl);
opendir(DIR, ".");
$user = $ENV{'REMOTE_USER'};
$risk = $gconfig{'risk_'.$user};
foreach $d (readdir(DIR)) {
	local %minfo;
	if ($d !~ /^config-/ && (%minfo = &get_module_info($d))) {
		if (!&check_os_support(\%minfo)) {
			# This OS is not supported!
			next;
			}
		if ($risk) {
			# Check module risk level
			next if ($risk ne 'high' && $minfo{'risk'} &&
				 $minfo{'risk'} !~ /$risk/);
			}
		else {
			# Check specific ACL
			next if (!$acl{$user,$d} && !$acl{$user,"*"});
			}
		local $c = $minfo{'category'} ? $minfo{'category'} : 'other';
		$count{$c}++;
		$maxcat = $count{$c} if ($count{$c} > $maxcat);
		}
	}
closedir(DIR);
$rows = 60 + (int(($maxcat-1) / 3)+1)*25;

# Display the frameset
&PrintHeader();
print "<!doctype html public \"-//W3C//DTD HTML 3.2 Final//EN\">\n";
print "<html><head><title>",&text('main_title', $ver, $hostname, $ostr),
      "</title></head>\n";
print "<frameset rows='$rows,*' border=0>\n";
print "<frame scrolling=no noresize src='index_top.cgi' name=top>\n";
print "<frame scrolling=auto noresize src='index_body.cgi' name=body>\n";
print "</frameset></html>\n";

   0707010002b519000081a40000000000000002000000013ac038bd00000074000000200000000000000000000000000000001d00000003reloc/caldera/index_body.cgi  #!/usr/local/bin/perl
# index_body.cgi
# Display an empty page

require './web-lib.pl';
&init_config();
&header();

0707010002b51a000081a40000000000000002000000013ac038bb00001598000000200000000000000000000000000000001c00000003reloc/caldera/index_top.cgi   #!/usr/local/bin/perl
# index_top.cgi
# Display the top frame using the Caldera icons and style

require './web-lib.pl';
&init_config();
$hostname = &get_system_hostname();
$ver = &get_webmin_version();
if ($gconfig{'real_os_type'}) {
	$ostr = "$gconfig{'real_os_type'} $gconfig{'real_os_version'}";
	}
else {
	$ostr = "$gconfig{'os_type'} $gconfig{'os_version'}";
	}

# Build a list of all modules
&read_acl(\%acl);
opendir(DIR, ".");
$user = $ENV{'REMOTE_USER'};
$risk = $gconfig{'risk_'.$user};
foreach $d (readdir(DIR)) {
	local %minfo;
	if ($d !~ /^config-/ && (%minfo = &get_module_info($d))) {
		if (!&check_os_support(\%minfo)) {
			# This OS is not supported!
			next;
			}
		if ($risk) {
			# Check module risk level
			next if ($risk ne 'high' && $minfo{'risk'} &&
				 $minfo{'risk'} !~ /$risk/);
			}
		else {
			# Check specific ACL
			next if (!$acl{$user,$d} && !$acl{$user,"*"});
			}
		push(@modules, \%minfo);
		}
	}
closedir(DIR);
@modules = sort { $a->{'desc'} cmp $b->{'desc'} } @modules;

# Work out what categories exist, and which is current
&ReadParse();
&read_file("$config_directory/webmin.catnames", \%catnames);
foreach $m (@modules) {
	$c = $m->{'category'};
	next if ($cats{$c});
	if ($catnames{$c}) {
		$cats{$c} = $catnames{$c};
		}
	elsif ($text{"category_$c"}) {
		$cats{$c} = $text{"category_$c"};
		}
	else {
		# try to get category name from module ..
		local %mtext = &load_language($m->{'dir'});
		if ($mtext{"category_$c"}) {
			$cats{$c} = $mtext{"category_$c"};
			}
		else {
			$c = $m->{'category'} = "";
			$cats{$c} = $text{"category_$c"};
			}
		}
	}
@cats = sort { $b cmp $a } keys %cats;
$cats = @cats;
$per = $cats ? 100.0 / $cats : 100;
if (!defined($in{'cat'})) {
	# Use default category
	if (defined($gconfig{'deftab'})) {
		$in{'cat'} = $gconfig{'deftab'};
		}
	else {
		$in{'cat'} = $cats[0];
		}
	}
elsif (!$cats{$in{'cat'}}) {
	$in{'cat'} = "";
	}

# Display title and categories
&PrintHeader();
print <<EOF;
<!doctype html public \"-//W3C//DTD HTML 3.2 Final//EN\">
<HTML>

<HEAD>
<LINK REL="stylesheet" TYPE="text/css" HREF="style.css">
</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" LEFTMARGIN="0" TOPMARGIN="0" BACKGROUND="images/navbg.gif">

  <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%" HEIGHT="1">
    <TR>
      <TD HEIGHT="35"  VALIGN="top" ALIGN="left" WIDTH=100% background="images/webmin-header.gif"><br></TD>
      <TD WIDTH="100%" HEIGHT="1" ALIGN="LEFT" VALIGN="BOTTOM" BACKGROUND="images/navbg.gif">
        <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" BACKGROUND="images/blue-bg.gif" WIDTH="100%">
          <TR>
EOF
foreach $c (@cats) {
	if ($in{'cat'} eq $c) {
		print "<TD width=1% HEIGHT=24 BACKGROUND=images/folder-on.gif VALIGN=TOP ALIGN=LEFT><IMG SRC=images/spacer.gif HEIGHT=6 WIDTH=72><BR><NOBR><IMG SRC=images/spacer.gif WIDTH=6 HEIGHT=1><TABLE WIDTH=72 CELLPADDING=0 CELLSPACING=0 BORDER=0 BACKGROUND=''><TR><TD><CENTER><SPAN CLASS=navActive2>$cats{$c}</SPAN></CENTER></TD></TR></TABLE></NOBR></TD>\n";
		}
	else {
		print "<TD width=1% HEIGHT=24 BACKGROUND=images/folder-off.gif VALIGN=TOP ALIGN=LEFT><IMG SRC=images/spacer.gif HEIGHT=6 WIDTH=72><BR><NOBR><IMG SRC=images/spacer.gif WIDTH=6 HEIGHT=1><TABLE WIDTH=72 CELLPADDING=0 CELLSPACING=0 BORDER=0 BACKGROUND=''><TR><TD><CENTER><A TARGET=top HREF='index_top.cgi?cat=$c' CLASS=navInactive>$cats{$c}</A></CENTER></TD></TR></TABLE></NOBR></TD>\n";
		}
	}
$vtext = &text('main_title', $ver, $hostname, $ostr);
if ($ENV{'SESSION_ID'}) {
	$switch = "<a href='session_login.cgi?logout=1' target=_top CLASS=bodyNav>".
		  "$text{'main_logout'}</a>";
	}
else {
	$switch = "<a href=switch_user.cgi target=_top CLASS=bodyNav>",
	          "$text{'main_switch'}</a>";
	}
print <<EOF;
<TD WIDTH=1% HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="RIGHT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="80"><BR><NOBR><A TARGET="_top" HREF="http://www.calderasystems.com/" CLASS="navInactive2">Home</A><SPAN CLASS="bodyText"> | </SPAN><A HREF="mailto:support\@calderasystems.com" CLASS="navInactive2">Feedback</A><IMG SRC="images/spacer.gif" HEIGHT="1" WIDTH="6"></NOBR></TD></TR></TABLE></TD>
          </TR>
        </TABLE>
      </TD>
    </TR>
    <TR>
      <TD COLSPAN="2" WIDTH="100%" HEIGHT="19">
        <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%">
          <TR>
            <TD BACKGROUND="images/gradient-bg.gif" WIDTH="300" HEIGHT="19"><IMG SRC="images/spacer.gif" WIDTH="95" HEIGHT="1"><SPAN CLASS="EightPoint"><NOBR>$vtext</NOBR></SPAN></TD>
            <TD BACKGROUND="images/main-bg-pixel.gif" WIDTH="100%" HEIGHT="19" ALIGN=RIGHT>$switch</TD>
          </TR>
        </TABLE>
      </TD>
    </TR>
    <TR>
      <TD BACKGROUND="images/main-bg-pixel.gif" COLSPAN="2" WIDTH="100%" VALIGN="TOP" ALIGN="LEFT">
          <TABLE BACKGROUND="images/main-bg-pixel.gif" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0">
EOF

# Display icons in this category
$pos = 0;
foreach $m (@modules) {
	next if ($m->{'category'} ne $in{'cat'});
	if ($pos % 3 == 0) { print "<tr>\n"; }
	print "<TD width=1%><A TARGET=body HREF=/$m->{'dir'}/><IMG SRC=/$m->{'dir'}/images/icon.gif WIDTH=55 HEIGHT=24 BORDER=0></A></TD><TD WIDTH=32%><A TARGET=body HREF=/$m->{'dir'}/ CLASS=bodyNav>$m->{'desc'}</A></TD>\n";
	if ($pos++ % 3 == 2) { print "</tr>\n"; }
	}

print <<EOF;
<TR> <TD COLSPAN="6"><IMG SRC="images/spacer.gif" WIDTH="10" HEIGHT="100"></TD> </TR>
</TABLE> </TD> </TR> </TABLE>
</BODY>
</HTML>
EOF

07070100045022000041ed0000000000000001000000033ac03ba900000000000000200000000000000000000000000000001400000003reloc/caldera/inetd   0707010006a80e000041ed0000000000000001000000023ac03ba900000000000000200000000000000000000000000000001b00000003reloc/caldera/inetd/images    0707010006a80f000081a40000000000000002000000013ac038bc00000235000000200000000000000000000000000000002400000003reloc/caldera/inetd/images/icon.gif   GIF89a6   33蘰p﹤偩ゥ橛吁珑兮a牝s塍z换尦硢＃z灋v览廊葨排斄翍浇幑箣拻n厖d烫毼螡挝炑癣佑в莹换曊摘种乇沣情橐Jtsp桤溱赜沼韦淌沏徂jhf净竷~噍蹤棖弾觋阨iiccc```YYYSSSAAA888...)))$$$   !   ,    6   绹pH,徣y勗j法tJ曗rΧ(蓙<喟x<墩瞇韯/A粦膂]圏${xl丆?凢yC46Q8:C??D
?v82￥??）|滳:	&&  3?柀綜嚢B;++$?B񝪴B翀门/'负唯栄彰瀮''?!Cえ怃诅'(?0?芥	'
*Z03P犨R馄剠D]竧E{>幄り8盨盺2
憟G楃6罶D孯麳QX薉2l攊#5j恚$迶蹹:侭儻`脢翾B`猐琐l 	葷K樊]  a傔縺,亾  ;   0707010006c0e7000041ed0000000000000001000000033ac03ba900000000000000200000000000000000000000000000001300000003reloc/caldera/init    0707010006d68c000041ed0000000000000001000000023ac03ba900000000000000200000000000000000000000000000001a00000003reloc/caldera/init/images 0707010006d68d000081a40000000000000002000000013ac038bc0000026d000000200000000000000000000000000000002300000003reloc/caldera/init/images/icon.gif    GIF89a6   3 \ 0!N憉..鉢\寣OPP嘱釢蒎h揪幓粚吵啴畟＃z灋v览朗蕵热柵艛亮懡綆创嚂昿拻n烫毟笇挝炐孝适熡缨蜒ヅ艤照珵瀫枛}刎记黔父牨睗怂铑嚅檑谮裷rp钞QJ媷?點cc\\\YYYSSSAAA555)))      !   ,    6   @妏H,徣y窜n龚tJ曣vΧ堎暰喟xn禉圧谔$夜纤4╮i8DOV<Br?xJz){B:5槞5?C?孖i!'0/<	;<;43渿?fi$0/#>;D碈姾Fi&撩."?52熝=*%邫沐犵Ci)/
窣&0箺O4(@E
(F缺脝舾罖
,―!(汕唞刋hPm姞 錐寠C^鎷& P)j$Q>繶 蓝"@=G斖#/簔粒゜TC凮/謧觿*竟k旰乥鐠毖蔉C+C婻"K濴共)笴9j尢贵瓶0D楡捍橛∕GXb喿癱藶C!A  ;   070701000452e7000041ed0000000000000001000000033ac03baa00000000000000200000000000000000000000000000001600000003reloc/caldera/inittab 0707010006ee00000041ed0000000000000001000000023ac03baa00000000000000200000000000000000000000000000001d00000003reloc/caldera/inittab/images  0707010006ee01000081a40000000000000002000000013ac038bc00000239000000200000000000000000000000000000002600000003reloc/caldera/inittab/images/icon.gif GIF89a6   \3 照鄌q矉屆侨#%-p暗彻W`氯z萼56#骁袒粚吵啰＃z灋v览廊葨排斄翍浇帟昿拻n烫毼螢蜒⒂缨佑ㄕ摘种元刎眜uc噜你闵殚祆茱镟鬃撕祳.-(忉苠赝崭盁崏竼~ⅱjjdddbbbYYYSSSAAA333)))   !   ,    6   缞pH,徣y脆p酣tJ曨xΧ堘態喟x卹胳V涶y諧N赮詐d麧-?}zn僀?咶{y?弤?x岴?.7=5?~.仌C桟/'('汦欳墾B&2盌ご斗?11244?翋B祳艆B?32  .j?Ｃ渊*,,	?*+,(	%湷夷鎱-6?,:!G亟r! ?V<h繾翉霼榲薘!?`8 

憅芰
O磠鋊E
MN<尤壁沄$\<aB+湆籼千P?xx5㏑|	-Z歅厠	`脢K瑡2hZ硕Ga怈‘莼x筠 钖L葛`攧 ;   0707010007039d000041ed0000000000000001000000033ac03baa00000000000000200000000000000000000000000000001700000003reloc/caldera/ipchains    07070100071d8b000041ed0000000000000001000000023ac03baa00000000000000200000000000000000000000000000001e00000003reloc/caldera/ipchains/images 07070100071d8c000081a40000000000000002000000013ac038bd00000158000000200000000000000000000000000000002700000003reloc/caldera/ipchains/images/icon.gif    GIF89a6   右蠌婣栽ee热朧VV,,+]爔创個浇   览!   ,    6   鹕I8雧E(庝h\Z1呧緋,20}︽剼-冇=
崵册尅(咮 性<鮝8R荸C妕CQ0爉他x(儍q`y{~I e拻噳n9摀u慗棙c焴xT	剟－  苛榔ぜ殺壤虡X踋岩嘶貧玷祉兆墽滛嶂泷殬饄騧黰0H@盃羶怆G脟*HH眀0`辣Ｇ A矐 ;07070100007700000041ed0000000000000001000000033ac03bab00000000000000200000000000000000000000000000001200000003reloc/caldera/man 07070100008e77000041ed0000000000000001000000023ac03bab00000000000000200000000000000000000000000000001900000003reloc/caldera/man/images  07070100008e78000081a40000000000000002000000013ac038bc00000207000000200000000000000000000000000000002200000003reloc/caldera/man/images/icon.gif GIF89a6   垍裳J暂6矧椈粚吵啰＃z灋v览郎蓷热柵艛亮懡綆父姃抧烫毼螢蜒⑿孝佑ㄕ摘栽乇钟蝹~dddccc```YYYSSSAAA)))                                                                                    !  	 ,    6   绖pH,徣y\t<牗tJ晢DΧa,喟x綳>烄VM置垊R	)詐d麧$Dr$yI{C~ $E$唞nB$憦灊潛q$x楥	$ $常B劏E獪 綈盌柡D脧臗菞葿宋涂覓迫	谯娃訠帚錃	脬彐$婖髫鶞啻竕 恒d.@4zI% 艐5l垬p;~ 欣駳B>R猏I$;U$阹愥羴8s贶yB$!
i2Y*]蚀镽吰-h酄玐砠mpJH ; 0707010007328a000041ed0000000000000001000000033ac03baa00000000000000200000000000000000000000000000001300000003reloc/caldera/lilo    07070100074ba6000041ed0000000000000001000000023ac03baa00000000000000200000000000000000000000000000001a00000003reloc/caldera/lilo/images 07070100074ba7000081a40000000000000002000000013ac038bc0000026f000000200000000000000000000000000000002300000003reloc/caldera/lilo/images/icon.gif    GIF89a6   椎稘7R- 枏抺vC88顙fh八踢骆犅m幆U58）lY萼甭苭伹菚靠徎粚吵啰＃z灋v览朗蕵浇幑箣档垾拻n烫毼螢行搒佑д摘种箷>>2洓~鬃橙拳沣请脍儋衣翏逯渭搯cccYYYRRR@@@)))   !   ,    6   缽pH,徣y匿r酣tJ曨xΧX懔V+昘.浲响V辍> LF摿敠J祴瘲m(q"-1侹y?5J"$%/43塊!廔5))4		榦?j濫m'!枽3*"嵁F-贩0'?'G?澗D!332+=2薊拖蠦5#0227?逤徙C錻5'2b?6l 鄧."鲱}(w1鄦#!	1,r~X楢R倠o菚5峝绦,侫屛.t筢倢!*~蠿盃2(T橉cNq*y!剠挞
2`噜羶,炾,笄2B&0蘭SB+嚕.0>b摗W1
79卆{砅AO>Dt楲共逅揔\冻缦潯B羶橛⊿獸歪饨s!b藶M祸瓎 ; 07070100075ff1000041ed0000000000000001000000033ac03baa00000000000000200000000000000000000000000000001300000003reloc/caldera/link    07070100077854000041ed0000000000000001000000023ac03baa00000000000000200000000000000000000000000000001a00000003reloc/caldera/link/images 07070100077855000081a40000000000000002000000013ac038bc000002a4000000200000000000000000000000000000002300000003reloc/caldera/link/images/icon.gif    GIF89a6    殮靝p燀倐睛︼è锉瘪嗑倔览舁ㄒ怂跣婿刎鴰師滗琨祆棛暬粚吵啰＃z灋v屯毨览缮椚葨排斄翍浇幑箣父姃抧烫毼螡蜒⑿孝佑ɑ粫照元种乇揶厩屏tspあ}}}fffdddccc```YYYSSSRRRAAA@@@333)))   !Made with GIMP !  < ,    6   飥<們剠唶垑妺457憭摂9;寶:,)牎ⅲ*)65櫅=%珒#$&'8埈偛?胶?茊凰<?肝退#!廖兺??呡<鄩哨傑迍噔堜舒栎蝮糸<铈<鑲朕簖灬+瘶8徜$敮喃"BdHP縿胭笾衎1F
uqQH婏<騔6rY5I4忠 .柢沙"b涸H川紨<X览穿缨P漐f巸X砵菔U珖i ;07070100078f6a000041ed0000000000000001000000033ac03baa00000000000000200000000000000000000000000000001600000003reloc/caldera/lkmload 07070100000173000041ed0000000000000001000000023ac03baa00000000000000200000000000000000000000000000001d00000003reloc/caldera/lkmload/images  07070100000174000081a40000000000000002000000013ac038bd0000011c000000200000000000000000000000000000002600000003reloc/caldera/lkmload/images/icon.gif GIF89a6   吵)))XXX亮懴蠠佑cc热朅AA灋vいz湙柦綆   览!   ,    6   绅蒊8雧9B(庝 \Z夅緋,6AaSEa堏冇'剝p$鍾巋敘l4/E鐯猕4芦$碎>	`)ヰ#^Y[坫鐋荤r靫yFfh乷q宨uwxo|敂墥z劀啂檓媿p槓揬杶o灢g焜洡ギ窔Fb疻d澜壬仕倘
虐阂m
仝圮蒇L彐玷殓a ;070701000019bd000041ed0000000000000001000000033ac03bab00000000000000200000000000000000000000000000001600000003reloc/caldera/lpadmin 07070100003206000041ed0000000000000001000000023ac03bab00000000000000200000000000000000000000000000001d00000003reloc/caldera/lpadmin/images  07070100003207000081a40000000000000002000000013ac038bc0000020c000000200000000000000000000000000000002600000003reloc/caldera/lpadmin/images/icon.gif GIF89a6   荧B[Νd裳J牝s骅锹苭换尦硢＃z灋v屯毨览缮椚葨排斄翍浇幑箣父姃抧烫毼螡蜒⑿孝佑д摘栽乇&钟蝺~烫摊厖協ffdddccc```YYYRRR@@@)))                                                      !   ,    6   绬pH,徣y|楴┄tJ暘VΧYu6喟x鎙PъV+aa諧%9詐d哈"Br.yI{C 孌. !.D.噝nC.!!揃.x楥墷! 嫰叕E湴!"#泼D柤D纠皽屢κ椞B伟潨谯B兆貧%右%G茚猱瘃鸱$熳夋玷浢胨趇z'癄媡傀们,憢"J旇釓d (纼菑 9Zp~鐞A茞+o迴磀鍕誏LZLP莱)烜yV(パ橢H盃┯>M`H軆瞛菔惦珓 ;070701000048e7000041ed0000000000000001000000033ac03bab00000000000000200000000000000000000000000000001800000003reloc/caldera/majordomo   07070100005ef4000041ed0000000000000001000000023ac03bab00000000000000200000000000000000000000000000001f00000003reloc/caldera/majordomo/images    07070100005f0f000081a40000000000000002000000013ac038bc00000206000000200000000000000000000000000000002800000003reloc/caldera/majordomo/images/icon.gif   GIF89a6   ㄉ袹潳G牝t矧椈粚吵啰＃z灋v屯毨览缮椚葨排斄翍浇幑箣父姃抧烫毼螡蜒⑿孝佑ㄕ摘栽乇友讨游儉~鲻鎏烫瘏厖dddccc```YYYSSSRRRAAA)))                                                      !   ,    6   绤pH,徣yl擫ètJ暘VΧ鳻m2喟x謉NVaY"梊礌T.C絅哆K.# .Cv.}JL. 咲.寏n彂擟
.|橠r〦"# E姤F  煩紵棿E匔甘笩罉翪钠怚湛列B腋函 B$B孜谯洦攀愵瀵尜谲  斦笙蹶.<粜R綩疨%<囄V閲n俩蔤鄵x$!6.懨q	埁襯2:a-匒佂8s甏9乛#^@
)炝H*]蔜閬E<@氮斋X> %$ ;  0707010000a37f000041ed0000000000000001000000033ac03bab00000000000000200000000000000000000000000000001400000003reloc/caldera/mount   0707010000bb1b000041ed0000000000000001000000023ac03bab00000000000000200000000000000000000000000000001b00000003reloc/caldera/mount/images    0707010000bb1c000081a40000000000000002000000013ac038bc00000218000000200000000000000000000000000000002400000003reloc/caldera/mount/images/icon.gif   GIF89a6   33677x{y:;:媽堒錱牝s换尦硢＃z灋v览郎蓷热柵艛亮懡綆父姃抧烫毼螢蜒⑿孝佑ㄕ摘栽乇苘詒rp殚瑗钞Q拍甲窒邢酸嘬耸琴卣赵芽焦钟卧烟湙杍hf個~邈徂蒈ⅱjjdddccc```YYYSSSAAA...)))         !   ,    6   @唒H,徣yt詌辅tJ曟tΧ裮2喟x謉n鹅V醂諧J鍌5詐d|觜q=yI{C47S9+2憪=D=噝nB9憺=瀽2擝=x機 0& !/攻叓E;灦2+椑D1( 壬藼螛蠦($$欠熪葸鄾(),兹》桕胍+,%'#*酤(击,_籥X彔穙褼H渉K埞H
B<h 练3Zx!鄡sHHBk叉畼g&X+59}v悹牗眩HtU汸Ｚ|BX砵菔UkC@園冬俪h虰P%$ ;0707010000d1c2000041ed0000000000000001000000033ac03bab00000000000000200000000000000000000000000000001400000003reloc/caldera/mysql   070701000117df000041ed0000000000000001000000023ac03bab00000000000000200000000000000000000000000000001b00000003reloc/caldera/mysql/images    070701000117e0000081a40000000000000002000000013ac038bc00000230000000200000000000000000000000000000002400000003reloc/caldera/mysql/images/icon.gif   GIF89a6   33碳菈裳J兮a牝s牝t塍z换尦硢＃z灋v览廊葨排斄翍浇幑箣拻n烫毼螡挝炑癣佑в莹照脂刎贬崮殚J字裻sp觊孳谡沼韦淌棋溻汜逌櫀jhf净竷~噍觋晏烫瘏厖iiidddccc```YYYUUURRRAAA888...)))   !   ,    6   @唒H,徣yl衘法tJ曟tΧm2喟x<墩瞇-I'&譆粦膂]o{xlL0?0E?丟yC36Q9;?,1.?E?v岯8.┆??.滵;"'  /?睤嫹C<((?01.F蓪拖-#苛嗙喨兽# 诱擒捱  湔G\	鼻.>$L瑺!\謓^9"#N颊糖)X凱P9m譗4]CTa&Q%莬8t厣撁M1臆8猅*絧╁Cm7奾#"(厥但庄[%H疥船Yл=H盃穚憔M 萚蜿菟凤 ;07070100012ecf000041ed0000000000000001000000033ac03bab00000000000000200000000000000000000000000000001200000003reloc/caldera/net 07070100015e22000041ed0000000000000001000000023ac03bab00000000000000200000000000000000000000000000001900000003reloc/caldera/net/images  07070100015e23000081a40000000000000002000000013ac038bc00000225000000200000000000000000000000000000002200000003reloc/caldera/net/images/icon.gif GIF89a6   椎稘7R- fh皥壞颂$&.妿58カhV萼辨枨缕w殛NN:换尦硢＃zⅱy灋v妸g览廊葨亮懡綆构嫋杚拻nddK烫毼螡挝炑癣乙ビ缨照脂>>2刎便闳骀烷橐殚躁贳痧巅壅TTR锹/+%逯纬拡cccYYY@@@)))$$$   !   ,    6   缻pH,徣y滗r酣tJ曇vΧ刭盧喟x<~f穁蟿嶩&峴n#誰火往u魒kF%?%K5?GxE%6-/-嘔#?u孊嶤-8?朑#~淒濨(?77 ?(J姭C瓌?8?85H箣%.22?0+$G伤虃3??24?'酆藥3?1?)焓粠T貨G燸醉]媔腍 頏媅F腹B覌I-<Nba妶F6擛、e,[(iJ6 D堐箵B0渣藩ESrB噬儚滼礿6嬺苁祂VN,dK冬俪e-黋啤儑穚闶访&!A  ;   0707010001721c000041ed0000000000000001000000033ac03bac00000000000000200000000000000000000000000000001200000003reloc/caldera/nis 0707010001b8ba000041ed0000000000000001000000023ac03bac00000000000000200000000000000000000000000000001900000003reloc/caldera/nis/images  0707010001b8bb000081a40000000000000002000000013ac038bd000002a7000000200000000000000000000000000000002200000003reloc/caldera/nis/images/icon.gif GIF89a6    殮靝p燀倐睛︼è锉瘪嗑倔览舁ㄒ怂跣婿刎鴰師滗琨祆棛暬粚吵啰＃z灋v屯毨览缮椚葨排斄翍浇幑箣父姃抧烫毼螡蜒⑿孝佑ɑ粫照元种乇揶厩屏tspあ}}}fffdddccc```YYYSSSRRRAAA@@@333)))   !Made with GIMP !  < ,    6   騹<們剠唶垑妺457憭摂9;寶:,)牎ⅲ*)65櫅=%珒#$&'8埈偛?胶?茊凰<?肝??勚<賯州!廖冋圳综蓍赦備总珩鍎焓铕趔蝓<黝x3G癨簒阱+啴 翧7衆秼\ 苸$琱 H)s枓谑e-5c㏄%/5 q¨蠠@凍慡媪5媪啩P諅0w<|厥但庄]=L ; 0707010001fd0d000041ed0000000000000001000000033ac03bac00000000000000200000000000000000000000000000001700000003reloc/caldera/openldap    070701000214c5000041ed0000000000000001000000023ac03bac00000000000000200000000000000000000000000000001e00000003reloc/caldera/openldap/images 070701000214c6000081a40000000000000002000000013ac038b90000015b000000200000000000000000000000000000002700000003reloc/caldera/openldap/images/icon.gif    GIF89a6   栽╠UZ乔櫄氺潩r钟湘逖桊r..*＃}..拈桤浇   览!   ,    6   鹕I8雧E鴃(巿罎 l刖餲ⅶ
3庂緤懒㑇粕皹L!啠+E蕜F憟喐蔫哻迈J垈cN 嚺B8nQDn_7qcrvxbo俷prr||+x|~m揱昦cx帎乚UHtd肠珷^@j背嚙彑捇Osq缆i瀾璏q╮j		谷畝ttj鐃窃Ii 趱綮冿0,l阏D	H盃繥韺HQ前∶凙|#@雹艐+&鐲 儚 C9拪 ; 0707010002597d000041ed0000000000000001000000033ac03bac00000000000000200000000000000000000000000000001600000003reloc/caldera/openslp 0707010002875e000041ed0000000000000001000000023ac03bac00000000000000200000000000000000000000000000001d00000003reloc/caldera/openslp/images  0707010002875f000081a40000000000000002000000013ac038ba0000012a000000200000000000000000000000000000002600000003reloc/caldera/openslp/images/icon.gif GIF89a6   )))XXX照袹挝澭癣ccc吵喨葨AAA灋vいz浇   览!   ,    6   尊蒊8雧1A(庝 \Z1夃緋,2@aSD!堏冇'剝q$(帹艫Q2洊鈩*醃飪b%*6颽yΔ氽諯鎃ucOj匱o垐m俬剎j墛崕w]]塹杺i匬瀠~[槬R棎{腹硨禑悺P瞓甔┆箔建贝佀Fg腗d刭谯茇
石衡銁携
殛腱黼鎄趱鲼f ;  07070100029e3b000041ed0000000000000001000000033ac03bac00000000000000200000000000000000000000000000001200000003reloc/caldera/pam 0707010002b51b000041ed0000000000000001000000023ac03bac00000000000000200000000000000000000000000000001900000003reloc/caldera/pam/images  0707010002b51c000081a40000000000000002000000013ac038bc000002fb000000200000000000000000000000000000002200000003reloc/caldera/pam/images/icon.gif GIF89a6    热杁ddcccYYYRRR@@@亮慉AA刎闭摘栽猔``浇)))蜒⑤葺妹锰虤挝澬孝佑⊿SS缮椻忖适寿儋   侣陆浇排斃览屯毣粚鬃滋烫父姵硢贩伐ゥ瘺洓|||eeefffUUU+++\\\888ppp$$$QQQjjj!!!111lll"""333kkk222***KKK[[[;;;555DDD<<<构嫞拻n灋v!Made with GIMP !   ,    6   䜣們剠唶垑妺 憭摂 寶	牎ⅲ
	櫅壄瘏 緤绬涂畣堁 截勏車!"#虽嗘冭堧$竹咉傰觎
寤秓P?%LlX萷	t0厞*X磆銑	N$b(	R犇戁Y紙逄杽NsP姃+f牑Q僥葷H`帇忣TZ2噹@q9掸牊*骆啾恽
瓊嘎鑺G>u)侧@	"d坁RG)bぐ崦>蛞n颓#KFYw$I2k尢贵f$蘶0罓撮莹S60NP  ; 0707010002caf2000041ed0000000000000001000000033ac03bac00000000000000200000000000000000000000000000001200000003reloc/caldera/pap 0707010002fb05000041ed0000000000000001000000023ac03bac00000000000000200000000000000000000000000000001900000003reloc/caldera/pap/images  0707010002fbca000081a40000000000000002000000013ac038bc00000220000000200000000000000000000000000000002200000003reloc/caldera/pap/images/icon.gif GIF89a6   ))蔘Q祙|鲍矧椈粚吵啰＃z灋v屯毨览缮椚葨排斄翍浇幑箣父姃抧hhN烫毼螡蜒⑿孝佑ㄕ摘栽乇照刑势湙杻~烫摊厖協ffdddccc```YYYSSSRRRAAA)))                                                   !   ,    6   绤pH,徣yl淧tJ暡ZΧ鴋q4喟x辢RVq]置揧1詐d麔|Er/yI{}/  #/F/唞nG~ &E
/x擟團妺湉濨劋E"弿滳挸D礑. 腹籅繐罛{$!!$箿妓拖衝!&诠"示泪{""鍰贻C唢像/"$&
$‰+顪駍3O?=|餑 a粍詚釪v%eR▽憭鵷 &,l銦=.擆5屢PR:D@来┯橬刈螫斋X*鲟@偗`脢鯜@X硕穖 ;07070100031030000041ed0000000000000001000000033ac03bac00000000000000200000000000000000000000000000001600000003reloc/caldera/postfix 0707010003273f000041ed0000000000000001000000023ac03bac00000000000000200000000000000000000000000000001d00000003reloc/caldera/postfix/images  0707010003274f000081a40000000000000002000000013ac038bc0000025b000000200000000000000000000000000000002600000003reloc/caldera/postfix/images/icon.gif GIF89a6   竵兓啞I]- 卑33蘻|柑袜#%-46!p 桊r狈\氯y萼吵啰＃z灋v览廊葨亮懡綆拻n烫毼螡挝炑癣佑в莹qqZ照元种藿沣情橐珑腚躎TSァM势椉秾盱枵游/+%巅諣煘摊崏俳竲||cccYYYAAA888...)))   !   ,    6   缞pH,徣y脆p龚tJ暘tΧx褝B喟x厼侪与▏歁纾菠逪/孾~|ym侰匜zBOQ*;L?w*7潪?扟-楥;.).??怠D?垿檮#<)1+?#0%&%燛够11#?%3虲霞絥1/?$?5 备衡依//.645礪=K懧(歑 bC厒褆髏銍綵2~Q+寴` C}0`@dqQ濧x_祩聹I髧	9	-%!蕩歨 h>"(!e"MFK鈩$.;苩#聤跣A〖聙⑴効7兿hA+^谈V覦$P楲共逅%鈋喯燙%!A  ; 070701000340af000041ed0000000000000001000000033ac03bac00000000000000200000000000000000000000000000001900000003reloc/caldera/postgresql  0707010003554c000041ed0000000000000001000000023ac03bac00000000000000200000000000000000000000000000002000000003reloc/caldera/postgresql/images   0707010003554d000081a40000000000000002000000013ac038bc00000230000000200000000000000000000000000000002900000003reloc/caldera/postgresql/images/icon.gif  GIF89a6   33碳菈裳J兮a牝s牝t塍z换尦硢＃z灋v览廊葨排斄翍浇幑箣拻n烫毼螡挝炑癣佑в莹照脂刎贬崮殚J字裻sp觊孳谡沼韦淌棋溻汜逌櫀jhf净竷~噍觋晏烫瘏厖iiidddccc```YYYUUURRRAAA888...)))   !   ,    6   @唒H,徣yl衘法tJ曟tΧm2喟x<墩瞇-I'&譆粦膂]o{xlL0?0E?丟yC36Q9;?,1.?E?v岯8.┆??.滵;"'  /?睤嫹C<((?01.F蓪拖-#苛嗙喨兽# 诱擒捱  湔G\	鼻.>$L瑺!\謓^9"#N颊糖)X凱P9m譗4]CTa&Q%莬8t厣撁M1臆8猅*絧╁Cm7奾#"(厥但庄[%H疥船Yл=H盃穚憔M 萚蜿菟凤 ;07070100036d1c000041ed0000000000000001000000033ac03bac00000000000000200000000000000000000000000000001300000003reloc/caldera/proc    070701000382d9000041ed0000000000000001000000023ac03bac00000000000000200000000000000000000000000000001a00000003reloc/caldera/proc/images 070701000382da000081a40000000000000002000000013ac038bc0000023a000000200000000000000000000000000000002300000003reloc/caldera/proc/images/icon.gif    GIF89a6   g,,))##::﨟HWWllyy寣FKJ驐妹捖聭揪幓粚吵啱珋＃z灋v览朗蕵热柵艛亮懡綆父姃抧烫毼螢蜒⒒粨佑а靴排溣莹照儋刺太乔й劬後拍漠鬃怂检燔镲噻缵沣族遘忖佘茉dddbbbYYYSSSAAA)))   !   ,    6   @媝H,徣y匿r花tJ曭zΧㄩ喟x<皱瞇砥J=P墂A粦6袂-?wIyF8Z?剎lD}~L?v廋咮𛱆?8J倹E潫ⅰ崻D潱牱8u糆矌碆动‘D缆脩箎!*!!) 虰闲钠-84?-
4'-	1#C嗦澯0

77
	2D|NW燻 @p榔l0爬`d姥厑5(ˋ @ 庋'$	,1$  ^刦仴W  兡
 E応躖P^FujU侌ft篒オ/8PK冬俪c;h]I┉鄯m1乙0莼x箨;a46L赴a4		 ;  07070100039a01000041ed0000000000000001000000033ac03bad00000000000000200000000000000000000000000000001400000003reloc/caldera/quota   0707010003b3b1000041ed0000000000000001000000023ac03bad00000000000000200000000000000000000000000000001b00000003reloc/caldera/quota/images    0707010003b3b2000081a40000000000000002000000013ac038bc00000223000000200000000000000000000000000000002400000003reloc/caldera/quota/images/icon.gif   GIF89a6   ++譴l垐棗靠埕趱!桱％4照z哌粚吵啰＃z灋v览廊葨排斄翍浇幐笂拻n烫毼螢蜒⒂莹照乇哌麻橐鼦棖殓﹃樯四,弹'繁)'眉2铂0籽G姨J糖N噗s趄邀篁钭钟祀鷶敂fffdddccc```YYYSSSAAA333...)))   !   ,    6   绹pH,徣y勜n龚tJ曣vΧ(賛4喟x<戚瞇砟嘔-LFA粦膂]圏${xlE?2?婫?丟yC  媻0孌
?v態嫪=13?2技5碊徃C0骄2 臗菒1)&哌544誃踪趦?3/	+'(&沐橘猴-!8Q鉃r鎶餕﹄,R(/1d齪Q"艃bd☉c垐#HD菴$6抸隈qR⑹q?Z篢wj廆U@,恼3倚RE4P滼j厬D乯菔k)	K冬Y e a傐穚闶+仈  ; 0707010003cadf000041ed0000000000000001000000033ac03bad00000000000000200000000000000000000000000000001300000003reloc/caldera/raid    0707010003f750000041ed0000000000000001000000023ac03bad00000000000000200000000000000000000000000000001a00000003reloc/caldera/raid/images 0707010003f751000081a40000000000000002000000013ac038bc0000022f000000200000000000000000000000000000002300000003reloc/caldera/raid/images/icon.gif    GIF89a6   ..=@@jpoEJIuzy8<;6:9ahf:?=LQO]dabfd`dbqsq=?<棛晩寙ɑ粚吵啰＃z灋v览廊葨排斄翍浇幑箣拻n烫毼螡蜒⒂缨照乇腚仲僬蜒雾黼殚珑珏鲻醪杯瞧驴竞刈逾徂衷邢翁趟芍游趔吵dddbbbYYYRRR@@@)))   !   ,    6   缷pH,徣y泥p酣tJ曨xΧㄡ岲喟x<吾瞇恙J=Ph嘇粦膂]屈4{xl丆?凢yD?7C崗憒?v婤?/556-?潫。o欳	B安?$C嚞B(%,-B门5季繙*4.摳7螧綀覂B('0灎?
憧涙&1+稄j琱0嗲.q裍箽谚膶ㄡh 絲	5- @蘸}U 4r
8<y壺+譮%絵D23eMLG.0j1IO崈H^$AR裳D=%戳
X砵菔k噷P亰K冬#敋4P袄董鄯p軷 儐x箨菟W瘑LB  ; 07070100040de5000041ed0000000000000001000000033ac03bad00000000000000200000000000000000000000000000001400000003reloc/caldera/samba   0707010004259e000041ed0000000000000001000000023ac03bad00000000000000200000000000000000000000000000001b00000003reloc/caldera/samba/images    0707010004259f000081a40000000000000002000000013ac038bc000001e4000000200000000000000000000000000000002400000003reloc/caldera/samba/images/icon.gif   GIF89a6   唺屆`矧椈粚吵啰＃z灋v屯毨览缮椚葨排斄翍浇幑箣父姃抧烫毼螡蜒⑿孝佑ㄕ摘栽乇垏劋vusfffdddccc```YYYSSSRRRAAA)))                                                                        !  
 ,    6   @卲H,徣ydB（tJ晼LΧ0i0喟x蝋D§V8U置	舝!-詐d鹽,(yI{I(
(奌(剒nK(  婨	(x怌咶~
晼姟
倽E烣垔Θ
幁D癄緤D笍築糂(礒钠菕(蜅霉胰C謯(禕艳訧巅芘七}骁蒺隄梓|J硇龊>GP躀S幘 =l鮜3j苋Id'╘刹Ic噜佂8s昴閫搻  ;07070100046ba7000041ed0000000000000001000000033ac03bad00000000000000200000000000000000000000000000001700000003reloc/caldera/sendmail    0707010004828b000041ed0000000000000001000000023ac03bad00000000000000200000000000000000000000000000001e00000003reloc/caldera/sendmail/images 0707010004828c000081a40000000000000002000000013ac038bc00000238000000200000000000000000000000000000002700000003reloc/caldera/sendmail/images/icon.gif    GIF89a6   x  cP11阞bQQ祼搪葃矧検蕳破斆脪揪幓粚吵啴畟＃z灋v览朗蕵热柲膿亮懡綆构嫷祱膊啔歵晻p拻n烫毼螢蜒⑾稀佑а靴佑ㄍ停换曊摘蜒梱儋程太圹磕漠创犔谈镲囔燹揶誺usdddbbbYYYSSSAAA)))   !   ,    6   缞pH,徣y间r花tJ曭zΧ橀礣喟|:a].徽j|#妤崛0,!谚腫佰IoqI).(y?J侸 05孊?搧>$~岴,165&B!?o$F14%懟Fo"(-虳2 -B⒀E娇?腱鞓0 啼骁C絶?8?R权`@={ｐ	㏕崆

"J\G絣.#勥$鄔"*d/燎	F釮扲c8b挢S&蚒{+96藤(繜*癖l囚(挌V鳪u&R汻:柢V36LK冬俪cA U诖蟚怈‘莼x筠 I%LXp]B  ;070701000497f9000041ed0000000000000001000000033ac03bad00000000000000200000000000000000000000000000001600000003reloc/caldera/servers 0707010004afb0000041ed0000000000000001000000023ac03bad00000000000000200000000000000000000000000000001d00000003reloc/caldera/servers/images  0707010004afb1000081a40000000000000002000000013ac038bc00000225000000200000000000000000000000000000002600000003reloc/caldera/servers/images/icon.gif GIF89a6   3344垍裳J兮a牝s塍z暂6矧椈粚吵啰＃z灋v览廊葨排斄翍浇幑箣拻n烫毼螡蜒⒂莹照乇种汛疩J婆粀vs衷涎鲜あ炋势汜蒈谥卣兄游匝逃兴谧訒拸jhf净歌珂儉~噍iiidddccc```YYYUUURRRAAA888...)))   !   ,    6   @噋H,徣y|蘦定tJ曗rΧ蒳2喟x<瞇瓌wI+鰼粦6蚯稃p?wIy{1妺1'?C?厁l{'殮巓	?v擟嘊25S8:1滲儮E7寣?1皬C
挾D:..$  季繢脫臖;$$%嬓将勇淖0%* 嘁盉真鐤%&哐泸蔧CC妚紛鏯9t P帷5hm=mB5伵虚娽'NvLi+V鉴饋/B%=犟C鬵挔4踟BjK倧	滼礿T
(菔佃L[4K冬俪e2 倓穚闶7B(!A  ;   0707010004dd72000041ed0000000000000001000000033ac03bad00000000000000200000000000000000000000000000001400000003reloc/caldera/shell   0707010004f45b000041ed0000000000000001000000023ac03bad00000000000000200000000000000000000000000000001b00000003reloc/caldera/shell/images    0707010004f45c000081a40000000000000002000000013ac038bd000003c8000000200000000000000000000000000000002400000003reloc/caldera/shell/images/icon.gif   GIF89a6    乙fdbbdZZ\RRTBBD破斒蕯谮粗脂汉**,嘲懂è蔼爱挝溌聰赋定＂牃柧富澁揪尯郴ǜ郴ɡ久牉澁爱懂ò靖猫牏灇柲廊潪槤灑竞猫（钞陡岸膊劤晲惛獣\皻h畾o盀u獝U◥a撼叮＂盃|澃柧敞爭h殮柈灂偩尝殬枙晲常偫好牋潪殱è▕坲爯u灋潥殱値巿牋妭鞍皻晼揪脴晲槑|妿垥晼帋悐}h槙枑帎悤悩槚垔垔妶█厊鞍稑槓ⅱ|灋t|拻l!Made with GIMP !   ,    6   䜣們剠唶垑妺 憮敁拺対	￥ウ 	灋
  瓔劰繆叴 呅溣皠!"#$%&秱啹	歱聜(JAa-\F 	c儗4j馗#%X擯1娶4寗%o<z4h嚆 A& 戯廍0	$dC
|祭0虑:1意AGZ$&(a蹦㑇r丅|夶.M渪悁&.灠P%姅K鹁鹙)A0罰e/燶y2,20嗾KY訸@(W,嵋EJH鱒剹/Bv( fD(L翲#儛私狝 溽嫈-SH0$1T<
环rV庫楡#e刓0t浇艫B榾Haex`麰冚p咗衼2溼c<甭E淴牎@j&Θ%毟=樍4謍銔7N枖kㄡ銖@)$恔(爛,嗓扠:閐換6? ;07070100050b16000041ed0000000000000001000000033ac03bad00000000000000200000000000000000000000000000001700000003reloc/caldera/software    070701000521d7000041ed0000000000000001000000023ac03bad00000000000000200000000000000000000000000000001e00000003reloc/caldera/software/images 070701000521d8000081a40000000000000002000000013ac038bc0000024d000000200000000000000000000000000000002700000003reloc/caldera/software/images/icon.gif    GIF89a6   璯k[0Oss蹝捬浇廷辈擞5侥@％4踪佪瞢鬃z哌粚吵啰＃z灋v览廊葨亮懡綆父姃抧烫歠fN挝瀰協蜒)) 佑в莹WWE;;/照狤E7种元灋儋瘁崤ⅱ忛橐蝌錼rp殓.-(沪伬瑠紱兏唦瞴scccYYYSSSAAA...)))   !   ,    6   缞pH,徣y翠r酣tJ曨xΧx岍J喟xF暈侪沱▏浳G闯みH/孾~|ymF&$垐 F侴zF!?-.)F?w態揈'?0.	19噳 З	<񞒣?!B?惗# .).
2=6芈'徘墒n!#-?
3񟔠?迫蓳'赇姗.87辯沢珵鴡p乣E? q屪蚚=T	hd/ D 鍄玴醼(X醔\i憪椟吰j?gVS!H擛雹呌+圦$8"袪B溫5DЗ#'卙iT&4壓墒惦W%i救0‘莼x笾0脆湛uA吤+^淴B o.`楲共逅/ ;   07070100053b15000041ed0000000000000001000000033ac03bad00000000000000200000000000000000000000000000001400000003reloc/caldera/squid   07070100056695000041ed0000000000000001000000023ac03bad00000000000000200000000000000000000000000000001b00000003reloc/caldera/squid/images    07070100056696000081a40000000000000002000000013ac038bc00000231000000200000000000000000000000000000002400000003reloc/caldera/squid/images/icon.gif   GIF89a6   33藤鈇牝s塍z氯y矧椈粚吵啰＃z灋v览廊葨排斄翍浇幑箣拻n烫毼螡挝炑癣佑в莹照脂刎贬崮殚J字裻sp桤滠谡沼韦淌苬us汜逌櫀jhf净竷~噍觋阨iidddccc```YYYUUURRRAAA999666111...)))$$$   !   ,    6   @唒H,徣yl膁川tJ曏nΧm2喟x<炆瞇-刧I'浦@粦膂]o{xl丆?凢yC03Q69D'?'D?v5.￥???o滳8""/?í 桞嚢B;((?骄 呐巧-#负鞋?.請變# 拖.逾娩柏  茼┽ 胥妝2噹	+測p5{搼r袽H蛛t虈)X凱旬苝C	<觯ニZ(@矦藔弭\嘈¨ONT貲U'D=z鑈蚀楎\録.懯k"(厥但庄[%<澍铂俪e7&z恅佦穚闶厸 P 栎朔痏8		 ;   07070100057cc6000041ed0000000000000001000000033ac03bae00000000000000200000000000000000000000000000001200000003reloc/caldera/ssh 07070100059486000041ed0000000000000001000000023ac03bae00000000000000200000000000000000000000000000001900000003reloc/caldera/ssh/images  07070100059487000081a40000000000000002000000013ac038bc00000201000000200000000000000000000000000000002200000003reloc/caldera/ssh/images/icon.gif GIF89a6   殮靝p燀倐睛︼è锉瘪嗑倔览舁ㄒ怂跣婿刎鴰師滗琨祆棛暬粚吵啰＃z灋v屯毨览缮椚葨排斄翍浇幑箣父姃抧烫毼螡蜒⑿孝佑ɑ粫照元种乇揶厩屏tspあ}}}fffdddccc```YYYSSSRRRAAA@@@333)))   !   ,    6   @峱H,徣y湫j法tJ曟vΧ柩盧喟xV奠V曋蓆耺詐d麧9?}zn僀?咶{C?彁慖?x岯?.潪?I#!仒C?33?1I墻Bí31.泊捣冀-G硦羺浢1暖12?(E实櫷┫寻諨偬|莓姒窇1綛髽48PH 饒=nIP-
樹劏d崋8鯝9鑳b蕼I砯L"7谯沙gNC,`J川眩E-撩嚙P彰%!A  ;   0707010005abc7000041ed0000000000000001000000033ac03bae00000000000000200000000000000000000000000000001500000003reloc/caldera/status  070701000452e8000041ed0000000000000001000000023ac03bae00000000000000200000000000000000000000000000001c00000003reloc/caldera/status/images   070701000452e9000081a40000000000000002000000013ac038bc00000504000000200000000000000000000000000000002500000003reloc/caldera/status/images/icon.gif  GIF89a6    热杁ddcccYYYRRR@@@亮慉AA刎闭摘栽猔``浇)))蜒⑻虤挝澬孝佑⊿SS缮楜鏖殍破奴北鼻瞧珑潼   梃姝~}}mmo湝満桓拍没换吵钞儋助排斨终opq__b┅黼鲷岩途拷趑蛲蜌换岓箴ono[Z`哙唠腙Ё槡槞檿晿煘∈噬骀潢腌Δ！耩鸶笂魄肎GL}|摀敘ⅳsst槜杽剢~~乬gjVUZXXZ厖厔剝ihj洓毘硢耨餵il>>DNNS换糺hl@?E>=C?=C?>CA?DDDHRQTZY^亮翧?EGFL摀昛Y]?>DVUYkkmA@FFDKPOT{y}HFLqpq靠綠EK`_cddfuuwJIMDDIIHMBBGccdHGM珑鐐倓SSV破撵祀帋帊崗厖勔盐YX\RRV^]b妸奡SX鲻霈A@E>>CCBH灋澱种构簄no岩蠙槞KKO换罕背档掇捋feg腓~~~ddg厔夑觊耨窦蓟妹隆　垐堦赙档锤腹佑覡牊qqsDCHRRW痧铨鼢躞篁铑灬徇乔脡墘ssvzz|JIO览傈觌栉翁牋燱VZ┄觋戤屯锡揶弈拿忖构嫞拻n灋v!Made with GIMP !   ,    6    	H盃羶*\x@ "J淗Q" j,h  CRA2n匀爜儠@ a0秥YC8t痧翣L !銵笓爤$J8"厞,Zt偭R.線C襔╝巶9t劺鵸`;x麴H!C1rI%,IZ粪]&M<E*U琝翏E藮箃mL癷/_绖3哃2f螌鶄&崥5lB&-癷7o嗄#g2u燔罶荕=?t{妪>}!(悹22t杷D墹SV"F	zI螚H&Q猟闝w&沺覊'焵(R)RG*熔]J+,比2-地r.6輩a膯.混繩/军L0S悐隺楶1僉2(`
-锰d$<%4$$i>~uecH35`)鏄d俌蚽啝鏆l堕+抐5自i鐫x鎦5JQ*锠:t	 ;0707010005d8a7000041ed00000000000000010000000a3ac03bb500000000000000200000000000000000000000000000001400000003reloc/caldera/steed   0707010005d8a8000081a40000000000000002000000013ac038ba00000ea9000000200000000000000000000000000000002400000003reloc/caldera/steed/apache_nav.html   <HTML>
<HEAD>
<TITLE>Apache Servers</TITLE>
<LINK REL="stylesheet" TYPE="text/css" HREF="css/style.css">
</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" LEFTMARGIN="0" TOPMARGIN="0" BACKGROUND="images/nav2bg.gif">

  <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%" HEIGHT="1">
    <TR>
      <TD COLSPAN="2" WIDTH="100%" HEIGHT="19">
		<NOBR><IMG SRC="images/spacer.gif" WIDTH="18" HEIGHT="2">
		<SPAN CLASS="bodyText">APACHE WEBSERVERS<SPAN></NOBR>
      </TD>
    </TR>
    <TR>
      <TD BACKGROUND="images/main-bg-pixe.gif" COLSPAN="2" WIDTH="100%" VALIGN="TOP" ALIGN="LEFT">
		  <TABLE BACKGROUND="images/main-bg-pixel.gif" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0">
		  <TR>
			<TD WIDTH="1%"><IMG SRC="images/spacer.gif" WIDTH="52" HEIGHT="20"></TD><TD WIDTH="32%"><IMG SRC="images/spacer.gif" WIDTH="211" HEIGHT="20"></TD><TD WIDTH="1%"><IMG SRC="images/spacer.gif" WIDTH="52" HEIGHT="20"></TD><TD WIDTH="32%"><IMG SRC="images/spacer.gif" WIDTH="211" HEIGHT="20"></TD><TD WIDTH="1%"><IMG SRC="images/spacer.gif" WIDTH="52" HEIGHT="20"></TD><TD WIDTH="32%"><IMG SRC="images/spacer.gif" WIDTH="211" HEIGHT="20"></TD>
		  </TR>
		  <TR>
			<TD width="1%"><A TARGET="BODY" HREF="servers/ap_procs_limits.html"><IMG SRC="images/iconserverT3-01.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="servers/ap_procs_limits.html" CLASS="bodyNav">Processes and Limits </A></TD><TD width="1%"><A TARGET="BODY" HREF="servers/ap_net_add.html"><IMG SRC="images/iconserverT3-02.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="servers/ap_net_add.html" CLASS="bodyNav">Networking and Addresses</A></TD><TD width="1%"><A TARGET="BODY" HREF="servers/ap_apmods.html"><IMG SRC="images/iconserverT3-03.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></CENTER></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="servers/ap_apmods.html" CLASS="bodyNav">Apache Modules</A></TD>
		  </TR>
		  <TR>
			<TD width="1%"><A TARGET="BODY" HREF="servers/ap_mime.html"><IMG SRC="images/iconserverT3-04.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="servers/ap_mime.html" CLASS="bodyNav">MIME Types </A></TD><TD width="1%"><A TARGET="BODY" HREF="servers/ap_misc.html"><IMG SRC="images/iconserverT3-05.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="servers/ap_misc.html" CLASS="bodyNav">Miscellaneous</A></TD><TD width="1%"><A TARGET="BODY" HREF="servers/ap_cgi.html"><IMG SRC="images/iconserverT3-07.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="servers/ap_cgi.html" CLASS="bodyNav">CGI Programs</A></TD>
		  </TR>
		  <TR>
			<TD width="1%"><A TARGET="BODY" HREF="servers/ap_pdoptfiles.html"><IMG SRC="images/iconserverT3-07.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="servers/ap_pdoptfiles.html" CLASS="bodyNav">Per-Directory Options Files</A></TD><TD width="1%"><A TARGET="BODY" HREF="servers/ap_reconknowmods.html"><IMG SRC="images/iconserverT3-08.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="servers/ap_reconknowmods.html" CLASS="bodyNav">Re-Configure Known Modules </A></TD><TD width="1%"><A TARGET="BODY" HREF="servers/ap_editdefparam.html"><IMG SRC="images/iconserverT3-09.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="servers/ap_editdefparam.html" CLASS="bodyNav">Edit Defined Parameters</A></TD>
		  </TR>
		  <TR>
			<TD COLSPAN="6"><IMG SRC="images/spacer.gif" WIDTH="10" HEIGHT="10"></TD>
		  </TR>
		</TABLE>
      </TD>
    </TR>
  </TABLE>
</BODY>
</HTML>

   0707010005f267000041ed0000000000000001000000023ac03bae00000000000000200000000000000000000000000000001800000003reloc/caldera/steed/css   0707010005f268000081a40000000000000002000000013ac038ba000006a1000000200000000000000000000000000000002200000003reloc/caldera/steed/css/style.css BODY 	{
	font-family	:	Arial, Helvetica, sans-serif; 
	margin-top	:	0px;
	margin-left	:	0px;
	margin-right	:	0px;
	margin-bottom	:	0px;
	padding-top	:	0;
	padding-left	:	0;
	padding-right	:	0;
	padding-bottom	:	0;
	border-top	:	0;
	border-left	:	0;
	border-bottom	:	0;
	border-right	:	0;
	width		:	auto;
	background-color:	#FFFFFF;
	}

A.navInactive
	{ 
	font-size	:	8pt;
   	text-decoration	:	underline; 
	color		:	#FFFFFF;
	background	:	transparent;
	font-style	:	bold;
	font-family	:	Arial, Helvetica, sans-serif; 
	}

A.navInactive2
	{ 
	font-size	:	8pt;
   	text-decoration	:	underline; 
	color		:	#CCCCCC;
	background	:	transparent;
	font-style	:	bold;
	font-family	:	Arial, Helvetica, sans-serif; 
	}

.navActive
	{ 
	font-size	:	8pt;
   	text-decoration	:	underline; 
	color		:	#FFFFFF;
	background	:	transparent;
	font-style	:	bold;
	font-family	:	Arial, Helvetica, sans-serif; 
	}

.navActive2
	{ 
	font-size	:	8pt;
   	text-decoration	:	underline; 
	color		:	#000000;
	background	:	transparent;
	font-style	:	bold;
	font-family	:	Arial, Helvetica, sans-serif; 
	}

P, TR, THEAD, TFOOT, TH, TD, 
DL, OL, UL, BLOCKQUOTE, SPAN, BR
	{
	FONT-FAMILY	:	Arial, Helvetica, sans-serif;
	}

.EightPoint
	{ 
	font-size	:	8pt;
   	text-decoration	:	none; 
	color		:	#000000;
	background	:	transparent;
	font-style	:	light;
	font-family	:	Arial, Helvetica, sans-serif; 
	}
	
A.bodyNav
	{ 
	font-size	:	8pt;
   	text-decoration	:	underline; 
	color		:	#000099;
	background	:	transparent;
	font-style	:	light;
	font-family	:	Arial, Helvetica, sans-serif; 
	}

.bodyText
	{
	font-size	:	8pt;
	color		:	#000000;
	}
   0707010005d8ab000081a40000000000000002000000013ac038ba0000018e000000200000000000000000000000000000002200000003reloc/caldera/steed/hardware.html <HTML>
<HEAD>
<TITLE>Webmin: Hardware</TITLE>
</HEAD>

 <FRAMESET ROWS="133,*" BORDER="0">
   <FRAME SCROLLING="NO" NORESIZE SRC="hardware_nav.html" NAME="TOP">
   <FRAME SCROLLING="AUTO" NORESIZE SRC="hardware_body.html" NAME="BODY">
 </FRAMESET>

<NOFRAME>
<BODY>
If you see the following text, you are using a Web browser that does not support frames.
</BODY>
</NOFRAME>
</HTML>
  07070100060719000041ed0000000000000001000000023ac03bae00000000000000200000000000000000000000000000001d00000003reloc/caldera/steed/hardware  0707010006071a000081a40000000000000002000000013ac038ba0000029b000000200000000000000000000000000000002800000003reloc/caldera/steed/hardware/fdisk.html   <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Partitions on Local Disks<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML> 0707010006071b000081a40000000000000002000000013ac038ba0000029c000000200000000000000000000000000000002700000003reloc/caldera/steed/hardware/lilo.html    <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Linux Bootup Configuration<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>0707010006071c000081a40000000000000002000000013ac038ba00000298000000200000000000000000000000000000002a00000003reloc/caldera/steed/hardware/lpadmin.html <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Printer Administration<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>0707010006071d000081a40000000000000002000000013ac038ba00000297000000200000000000000000000000000000002600000003reloc/caldera/steed/hardware/net.html <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Network Configuration<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML> 0707010006071e000081a40000000000000002000000013ac038ba0000028c000000200000000000000000000000000000002700000003reloc/caldera/steed/hardware/raid.html    <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Linux RAID<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>0707010006071f000081a40000000000000002000000013ac038ba0000028d000000200000000000000000000000000000002700000003reloc/caldera/steed/hardware/time.html    <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: System Time<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>   0707010005d8ae000081a40000000000000002000000013ac038ba00000263000000200000000000000000000000000000002700000003reloc/caldera/steed/hardware_body.html    <HTML>
<HEAD>
  <LINK REL="stylesheet" TYPE="text/css" HREF="css/style.css">
</HEAD>
<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">
  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">
    <TR>
      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">
    </TR>
    <TR>
      <TD WIDTH="20">
		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">
      </TD>
      <TD WIDTH="100%">
		<SPAN CLASS="bodyText">PAGE CONTENT: Hardware<SPAN>
      </TD>
    </TR>
  </TABLE>
</BODY>
</HTML>
 0707010005d8af000081a40000000000000002000000013ac038ba000018e1000000200000000000000000000000000000002600000003reloc/caldera/steed/hardware_nav.html <HTML>

<HEAD>
<TITLE>Servers</TITLE>
<LINK REL="stylesheet" TYPE="text/css" HREF="css/style.css">
</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" LEFTMARGIN="0" TOPMARGIN="0" BACKGROUND="images/navbg.gif">

  <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%" HEIGHT="1">
    <TR>
      <TD HEIGHT="35" ROWSPAN="2" VALIGN="top" ALIGN="left" WIDTH="298"><IMG BORDER="0" SRC="images/webmin-header.gif" WIDTH="298" HEIGHT="35"></TD>
      <TD VALIGN="top" ALIGN="left" HEIGHT="11" WIDTH="100%" BACKGROUND="images/top-grad-stretch.gif"><IMG BORDER="0" SRC="images/top-grad-stretch.gif" WIDTH="482" HEIGHT="11"></TD>
    </TR>
    <TR>
      <TD WIDTH="100%" HEIGHT="1" ALIGN="LEFT" VALIGN="TOP" BACKGROUND="images/navbg.gif">
        <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" BACKGROUND="images/blue-bg.gif" WIDTH="100%">
          <TR>
<!--Tab1--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="webmin.html" CLASS="navInactive">Webmin</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab2--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="system.html" CLASS="navInactive">System</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab3--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="servers.html" CLASS="navInactive">Servers</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab4--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-on.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><SPAN CLASS="navActive2">Hardware</SPAN></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab5--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="others.html" CLASS="navInactive">Others</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--H|F-->	<TD WIDTH="20%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="RIGHT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="1"><BR><NOBR><A TARGET="_top" HREF="index.html" CLASS="navInactive2">Home</A><SPAN CLASS="bodyText"> | </SPAN><A TARGET="_top" HREF="mailto:jcameron@webmin.com" CLASS="navInactive2">Feedback</A><IMG SRC="images/spacer.gif" HEIGHT="1" WIDTH="6"></NOBR></TD></TR></TABLE></TD>
          </TR>
        </TABLE>
      </TD>
    </TR>
    <TR>
      <TD COLSPAN="2" WIDTH="100%" HEIGHT="19">
<!-- --VERSION TABLE HERE -->
        <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%">
          <TR>
            <TD BACKGROUND="images/gradient-bg.gif" WIDTH="300" HEIGHT="19"><IMG SRC="images/spacer.gif" WIDTH="95" HEIGHT="1"><SPAN CLASS="EightPoint"><NOBR>Version 0.8 (Redhat Linux 5.2)</NOBR></SPAN></TD>
            <TD BACKGROUND="images/main-bg-pixel.gif" WIDTH="100%" HEIGHT="19"><IMG SRC="images/spacer.gif" WIDTH="1" HEIGHT="1"></TD>
          </TR>
        </TABLE>
<!-- //VERSION TABLE HERE -->
      </TD>
    </TR>
    <TR>
      <TD BACKGROUND="images/main-bg-pixel.gif" COLSPAN="2" WIDTH="100%" VALIGN="TOP" ALIGN="LEFT">
          <TABLE BACKGROUND="images/main-bg-pixel.gif" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0">
			<TR>
			  <TD WIDTH="1%"><IMG SRC="images/spacer.gif" WIDTH="52" HEIGHT="20"></TD><TD WIDTH="32%"><IMG SRC="images/spacer.gif" WIDTH="211" HEIGHT="20"></TD><TD WIDTH="1%"><IMG SRC="images/spacer.gif" WIDTH="52" HEIGHT="20"></TD><TD WIDTH="32%"><IMG SRC="images/spacer.gif" WIDTH="211" HEIGHT="20"></TD><TD WIDTH="1%"><IMG SRC="images/spacer.gif" WIDTH="52" HEIGHT="20"></TD><TD WIDTH="32%"><IMG SRC="images/spacer.gif" WIDTH="211" HEIGHT="20"></TD>
			</TR>
			<TR>
			  <TD width="1%"><A TARGET="BODY" HREF="hardware/lilo.html"><IMG SRC="images/iconT4-01.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="hardware/lilo.html" CLASS="bodyNav">Linux Bootup Configuration</A></TD><TD width="1%"><A TARGET="BODY" HREF="hardware/raid.html"><IMG SRC="images/iconT4-02.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="hardware/raid.html" CLASS="bodyNav">Linux RAID</A></TD><TD width="1%"><A TARGET="BODY" HREF="hardware/net.html"><IMG SRC="images/iconT4-03.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></CENTER></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="hardware/net.html" CLASS="bodyNav">Network Configuration</A></TD>
			</TR>
			<TR>
			  <TD width="1%"><A TARGET="BODY" HREF="hardware/fdisk.html"><IMG SRC="images/iconT4-04.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="hardware/fdisk.html" CLASS="bodyNav">Partitions on Local Disks</A></TD><TD width="1%"><A TARGET="BODY" HREF="hardware/lpadmin.html"><IMG SRC="images/iconT4-05.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="hardware/lpadmin.html" CLASS="bodyNav">Printer Administration</A></TD><TD width="1%"><A TARGET="BODY" HREF="hardware/time.html"><IMG SRC="images/iconT4-06.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="hardware/time.html" CLASS="bodyNav">System Time</A></TD>
			</TR>
			<TR>
			  <TD COLSPAN="6"><IMG SRC="images/spacer.gif" WIDTH="10" HEIGHT="100"></TD>
			</TR>
		  </TABLE>
      </TD>
    </TR>
  </TABLE>

</BODY>

</HTML>
   07070100061e3e000041ed0000000000000001000000023ac03baf00000000000000200000000000000000000000000000001900000003reloc/caldera/steed/home  07070100061e3f000081a40000000000000002000000013ac038ba00000290000000200000000000000000000000000000002d00000003reloc/caldera/steed/home/authentication.html  <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Authentication<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>07070100061e40000081a40000000000000002000000013ac038ba00000291000000200000000000000000000000000000002700000003reloc/caldera/steed/home/editcats.html    <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Edit Categories<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>   07070100061e41000081a40000000000000002000000013ac038ba00000294000000200000000000000000000000000000002c00000003reloc/caldera/steed/home/indexpageopts.html   <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Index Page Options<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>07070100061e42000081a40000000000000002000000013ac038ba0000026d000000200000000000000000000000000000002e00000003reloc/caldera/steed/home/ipaccesscontrol.html <HTML>
<HEAD>
  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">
</HEAD>
<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">
  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">
    <TR>
      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">
    </TR>
    <TR>
      <TD WIDTH="20">
		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">
      </TD>
      <TD WIDTH="100%">
		<SPAN CLASS="bodyText">PAGE CONTENT: IP Access Control<SPAN>
      </TD>
    </TR>
  </TABLE>
</BODY>
</HTML>   07070100061e43000081a40000000000000002000000013ac038ba0000028a000000200000000000000000000000000000002300000003reloc/caldera/steed/home/lang.html    <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Language<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>  07070100061e44000081a40000000000000002000000013ac038ba00000289000000200000000000000000000000000000002600000003reloc/caldera/steed/home/logging.html <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Logging<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>   07070100061e45000081a40000000000000002000000013ac038ba00000292000000200000000000000000000000000000002100000003reloc/caldera/steed/home/os.html  <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Operating System<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>  07070100061e48000081a40000000000000002000000013ac038ba00000292000000200000000000000000000000000000002a00000003reloc/caldera/steed/home/portaddress.html <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Port and Address<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>  07070100061e49000081a40000000000000002000000013ac038ba0000028f000000200000000000000000000000000000002500000003reloc/caldera/steed/home/proxys.html  <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Proxy Servers<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML> 07070100061e4b000081a40000000000000002000000013ac038ba00000292000000200000000000000000000000000000002b00000003reloc/caldera/steed/home/reassignmods.html    <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Reassign Modules<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>  07070100061ebf000081a40000000000000002000000013ac038ba00000290000000200000000000000000000000000000002c00000003reloc/caldera/steed/home/upgradewebmin.html   <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Upgrade Webmin<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>07070100061ee3000081a40000000000000002000000013ac038ba00000290000000200000000000000000000000000000002400000003reloc/caldera/steed/home/useri.html   <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: User Interface<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>07070100061ee4000081a40000000000000002000000013ac038ba00000290000000200000000000000000000000000000002900000003reloc/caldera/steed/home/webminmods.html  <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Webmin Modules<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>07070100063646000041ed0000000000000001000000023ac03bb200000000000000200000000000000000000000000000001b00000003reloc/caldera/steed/images    07070100063647000081a40000000000000002000000013ac038ba0000031f000000200000000000000000000000000000002700000003reloc/caldera/steed/images/blue-bg.gif    GIF89a    f3 烫虣蘤3 櫶櫃檉3 ffffff3f 3333f333     f 3  烫櫶f3 烫烫烫虣烫f烫3烫 虣虣烫櫃虣f虣3虣 蘤蘤烫f櫶ff蘤3蘤 33烫3櫶3f333   烫 櫶 f 3  虣櫃f3 櫶櫶虣虣櫶f櫶3櫶 櫃櫃虣櫃櫃f櫃3櫃 檉檉虣f櫃ff檉3檉 33虣3櫃3f333   虣 櫃 f 3  ff蘤檉ff3f ff烫f虣f蘤f3f ff櫶f櫃f檉f3f ffff蘤f檉ffff3ff f3f3蘤3檉3ff33f3 f f 蘤 檉 ff 3f  3333f333 33烫3虣3蘤333 33櫶3櫃3檉333 3f3f3f3ff3f33f 33333333f33333 3 3 3 3 f3 33      f 3    烫 虣 蘤 3    櫶 櫃 檉 3   f f f ff f3 f  3 3 3 3f 33 3         f  3                                                                                                                           ,        S ; 07070100063648000081a40000000000000002000000013ac038ba00000026000000200000000000000000000000000000002a00000003reloc/caldera/steed/images/folder-off.gif GIF89a    33,       剰Q ;  07070100063649000081a40000000000000002000000013ac038ba000003f3000000200000000000000000000000000000002900000003reloc/caldera/steed/images/folder-on.gif  GIF89a    2211..!!3322220000//..--,,++**))''..((66++<<99??-->>,,m;]]娞虣适樔葨破暲缾屯洓泆舷炐小乙ぱ绚佑ㄔ元种匕吵捼诖葺哼呃骀殊馇邋嚏缦镲陂檎祆匐胭沣褽E@耨膺咦儍怂甚豸                                                                                                                                                                                             ,        	噲墛媽崕	  櫄洔潪煚、￥ウЖ	

渤吹斗腹府	槳旅呐魄矣哉肿刭柸沅彐鐮=;:6瘃蝮趱鲼7585=<0@ 澚~B袪:j虡H雹艐3j(#F4HPP∩(!p饌0^葴I肠蜎8s隃閎EH
J磋B
.p貈"姧P滼氮U)拨P雹E嫤!f船Y(瑦﹤D嚪p闶滽樊莺"D("	,0p栋as(╬"呟粣#K东稤	xhxp喟缦/vaB匿莹#鐄膯
葌濵枰﹕霂涀甅8.Z噢<wk#6@0粮u袎Sx]藜讳!爚郊犰_箋__<+槦_Vt祗蟯?億 
觊x!赭_&擵
+琾俰V坄鄦BV%PX醽 \P,抯'燻B	#ZX鈮鈳羌x	'<Vc~娓"廐	I(陿鋽,伽撿欌慣v=$朰迾= 臍?撮鏇p)鐪t謎鐫x姗鐬|鳄榖
Ifsⅸ&泘&6(焷  ; 0707010006364a000081a40000000000000002000000013ac038ba000000e6000000200000000000000000000000000000002b00000003reloc/caldera/steed/images/gradient-bg.gif    GIF89a   烫櫷蜎屯溝蠟挝澭癣行∫谣乙υ冤种斋鬃乇谮帝鄹葺贿呔噜棱馀沣卿渖邋绥缦梃宴缧殚与胫祆夙碹铑!   ,      c'嶿蓇翻洣aXv]朥U5MRE萩鑠4ER$瀳C釦-甐胉@磷( X愤鸶|N秫紐巷亗儎厗噲墛媽崕彁y! ;  0707010006364b000081a40000000000000002000000013ac038ba0000026d000000200000000000000000000000000000002600000003reloc/caldera/steed/images/icon01.gif GIF89a6   3 \ 0!N憉..鉢\寣OPP嘱釢蒎h揪幓粚吵啴畟＃z灋v览朗蕵热柵艛亮懡綆创嚂昿拻n烫毟笇挝炐孝适熡缨蜒ヅ艤照珵瀫枛}刎记黔父牨睗怂铑嚅檑谮裷rp钞QJ媷?點cc\\\YYYSSSAAA555)))      !   ,    6   @妏H,徣y窜n龚tJ曣vΧ堎暰喟xn禉圧谔$夜纤4╮i8DOV<Br?xJz){B:5槞5?C?孖i!'0/<	;<;43渿?fi$0/#>;D碈姾Fi&撩."?52熝=*%邫沐犵Ci)/
窣&0箺O4(@E
(F缺脝舾罖
,―!(汕唞刋hPm姞 錐寠C^鎷& P)j$Q>繶 蓝"@=G斖#/簔粒゜TC凮/謧觿*竟k旰乥鐠毖蔉C+C婻"K濴共)笴9j尢贵瓶0D楡捍橛∕GXb喿癱藶C!A  ;   0707010006364c000081a40000000000000002000000013ac038ba00000207000000200000000000000000000000000000002600000003reloc/caldera/steed/images/icon02.gif GIF89a6   垍裳J暂6矧椈粚吵啰＃z灋v览郎蓷热柵艛亮懡綆父姃抧烫毼螢蜒⑿孝佑ㄕ摘栽乇钟蝹~dddccc```YYYSSSAAA)))                                                                                    !  	 ,    6   绖pH,徣y\t<牗tJ晢DΧa,喟x綳>烄VM置垊R	)詐d麧$Dr$yI{C~ $E$唞nB$憦灊潛q$x楥	$ $常B劏E獪 綈盌柡D脧臗菞葿宋涂覓迫	谯娃訠帚錃	脬彐$婖髫鶞啻竕 恒d.@4zI% 艐5l垬p;~ 欣駳B>R猏I$;U$阹愥羴8s贶yB$!
i2Y*]蚀镽吰-h酄玐砠mpJH ; 0707010006364d000081a40000000000000002000000013ac038ba000001fb000000200000000000000000000000000000002600000003reloc/caldera/steed/images/icon03.gif GIF89a6   FKJ媽埆裳J潱F矧椈粚吵啰＃z灋v览郎蓷热柵艛亮懡綆父姃抧烫毼螢蜒⑿孝佑ㄕ摘栽乇dddccc```YYYSSSAAA)))                                                                                    !   ,    6   绤pH,徣ylt<牗tJ晢DΧi0喟x蝋>烄VU置	舝	1詐d鸐$鵌Kr$yI{F  Z$唞nDL$x慍圔$J劃E煛イ孞彫D煴阿睧 D祼稡辜夯}撩膿势~菳$刻段牛幄ブ$送扌剩钫睍垒脽骘儮蝮迈	0'剎藛萭埜Y%TH飽=$~YhF?I8埠Id'"$X刹ニ+%Ti│蜎5込@佅烜
姞惓 (]蚀㏒8		 ; 0707010006369b000081a40000000000000002000000013ac038ba0000021d000000200000000000000000000000000000002600000003reloc/caldera/steed/images/icon04.gif GIF89a6   566OPPFKJ噵噓wu:;:ㄇ蟄潱F苠g顼n亿f矧56#换尦硢＃z灋v览廊葨排斄翍浇幐笂拻n烫歠fN挝瀰協蜒⒂莹WWE照狜@4刎膊睏棖钞QI媷?环b徉芩是儇諅~掭沣恽ⅱjjjdddccc```\\\YYYSSSHHHAAA...)))      !   ,    6   缐pH,徣yばj辅tJ曟vΧh賺B喟x<墩瞇恁鏘5'GA粦雟qf巔?wIyE90妺0?H?厁lE
;;)(巰?v揅嘍<
:D'烠B儰E=	C0*師懘D禕$7
?捘B藠+?嵾B灾讜E"?腱B尕H0鹁笾2&l ⒚厀駣#fk /^@d1緞
囇C7#0f#>x P嶙:$i賘a@唩5的$U镂:I=蔹,tH*]i嶞豂滼店:捘,@惱但庄`紹 d巶h营]薞瓍QB  ;   0707010006369c000081a40000000000000002000000013ac038ba00000223000000200000000000000000000000000000002600000003reloc/caldera/steed/images/icon05.gif GIF89a6   ++譴l垐棗靠埕趱!桱％4照z哌粚吵啰＃z灋v览廊葨排斄翍浇幐笂拻n烫毼螢蜒⒂莹照乇哌麻橐鼦棖殓﹃樯四,弹'繁)'眉2铂0籽G姨J糖N噗s趄邀篁钭钟祀鷶敂fffdddccc```YYYSSSAAA333...)))   !   ,    6   绹pH,徣y勜n龚tJ曣vΧ(賛4喟x<戚瞇砟嘔-LFA粦膂]圏${xlE?2?婫?丟yC  媻0孌
?v態嫪=13?2技5碊徃C0骄2 臗菒1)&哌544誃踪趦?3/	+'(&沐橘猴-!8Q鉃r鎶餕﹄,R(/1d齪Q"艃bd☉c垐#HD菴$6抸隈qR⑹q?Z篢wj廆U@,恼3倚RE4P滼j厬D乯菔k)	K冬Y e a傐穚闶+仈  ; 0707010006369d000081a40000000000000002000000013ac038ba00000238000000200000000000000000000000000000002600000003reloc/caldera/steed/images/icon06.gif GIF89a6   g  77颭Q祇o魭趑鮀FFOPPbccahf]damqo:=;x{y憭徝脪揪幓粚吵啴畟＃z灋v览朗蕵热柵艛亮懡綆父姎歵晻p拻n烫毼螢蜒⒂缨蜒ビ莹照綏枛}儋肚黔屯贡保铑唧蝾噬乒傅噙苜卣研椭孕個~腙鶼YYSSS)))   !   ,    6   @宲H,徣y$绩tJ曵Χ9琍喟x<~f汾帍奆/sn#誰火q魒kG3[?GxE

?
3t揈"?u塀婥?4:;3D"~汥滲8,$狢嚡C	91523!,0纠旅":73*.40&謭刳苻5. .0%B另脢)缺#菎频@@_  +黓(h4l蘞pB>'喃b7=鷔@艒-`  @$秎壢)CUS+h鯿w硺C&i0眀(QwWJ滼)<淊蜋H,K冬Y!&灓识-U摏8T窣樊莼x鞻鴥MLX0MB  ;0707010006369e000081a40000000000000002000000013ac038ba0000024d000000200000000000000000000000000000002600000003reloc/caldera/steed/images/icon07.gif GIF89a6   璯k[0Oss蹝捬浇廷辈擞5侥@％4踪佪瞢鬃z哌粚吵啰＃z灋v览廊葨亮懡綆父姃抧烫歠fN挝瀰協蜒)) 佑в莹WWE;;/照狤E7种元灋儋瘁崤ⅱ忛橐蝌錼rp殓.-(沪伬瑠紱兏唦瞴scccYYYSSSAAA...)))   !   ,    6   缞pH,徣y翠r酣tJ曨xΧx岍J喟xF暈侪沱▏浳G闯みH/孾~|ymF&$垐 F侴zF!?-.)F?w態揈'?0.	19噳 З	<񞒣?!B?惗# .).
2=6芈'徘墒n!#-?
3񟔠?迫蓳'赇姗.87辯沢珵鴡p乣E? q屪蚚=T	hd/ D 鍄玴醼(X醔\i憪椟吰j?gVS!H擛雹呌+圦$8"袪B溫5DЗ#'卙iT&4壓墒惦W%i救0‘莼x笾0脆湛uA吤+^淴B o.`楲共逅/ ;   0707010006369f000081a40000000000000002000000013ac038ba00000227000000200000000000000000000000000000002600000003reloc/caldera/steed/images/icon08.gif GIF89a6    ,))蔘Q祙~矧楁缣换尦硢＃z灋v览郎蓷热柵艛亮懡綆父姃抧烫歠fN挝炑癣行⒂缨佑ㄕ摘种元刎睎杴uuc圹踞崤ⅱ弶墆殚镲囹蝈烫蘤ffdddccc```YYYSSSAAA)))                                       !   ,    6   @唒H,徣yt癦tJ暵bΧ墆6喟x頻\V慮諧5詐d麔滪Er3yI{}3*3F3唞nG~+3x擟團妺湉濨劊E)弿滳挷D3B2犯築緭繠~笢煌涎覗3俑)探苦ヤ'#鐩鹧3( 荤д寁B九G 
襩磣豀罗膫Db溆p鉌鰳!|w樋?0SN上ジ"J柢i D$"m虮悂冄2ZSVH滼氮U殠倡庄Z)AH盃砲訛MP馐滽奉\ ; 070701000636a0000081a40000000000000002000000013ac038ba00000218000000200000000000000000000000000000002600000003reloc/caldera/steed/images/icon09.gif GIF89a6   33677x{y:;:媽堒錱牝s换尦硢＃z灋v览郎蓷热柵艛亮懡綆父姃抧烫毼螢蜒⑿孝佑ㄕ摘栽乇苘詒rp殚瑗钞Q拍甲窒邢酸嘬耸琴卣赵芽焦钟卧烟湙杍hf個~邈徂蒈ⅱjjdddccc```YYYSSSAAA...)))         !   ,    6   @唒H,徣yt詌辅tJ曟tΧ裮2喟x謉n鹅V醂諧J鍌5詐d|觜q=yI{C47S9+2憪=D=噝nB9憺=瀽2擝=x機 0& !/攻叓E;灦2+椑D1( 壬藼螛蠦($$欠熪葸鄾(),兹》桕胍+,%'#*酤(击,_籥X彔穙褼H渉K埞H
B<h 练3Zx!鄡sHHBk叉畼g&X+59}v悹牗眩HtU汸Ｚ|BX砵菔UkC@園冬俪h虰P%$ ;070701000636a1000081a40000000000000002000000013ac038ba0000023a000000200000000000000000000000000000002600000003reloc/caldera/steed/images/icon10.gif GIF89a6   g,,))##::﨟HWWllyy寣FKJ驐妹捖聭揪幓粚吵啱珋＃z灋v览朗蕵热柵艛亮懡綆父姃抧烫毼螢蜒⒒粨佑а靴排溣莹照儋刺太乔й劬後拍漠鬃怂检燔镲噻缵沣族遘忖佘茉dddbbbYYYSSSAAA)))   !   ,    6   @媝H,徣y匿r花tJ曭zΧㄩ喟x<皱瞇砥J=P墂A粦6袂-?wIyF8Z?剎lD}~L?v廋咮𛱆?8J倹E潫ⅰ崻D潱牱8u糆矌碆动‘D缆脩箎!*!!) 虰闲钠-84?-
4'-	1#C嗦澯0

77
	2D|NW燻 @p榔l0爬`d姥厑5(ˋ @ 庋'$	,1$  ^刦仴W  兡
 E応躖P^FujU侌ft篒オ/8PK冬俪c;h]I┉鄯m1乙0莼x箨;a46L赴a4		 ;  070701000636a2000081a40000000000000002000000013ac038ba00000239000000200000000000000000000000000000002600000003reloc/caldera/steed/images/icon11.gif GIF89a6   \3 照鄌q矉屆侨#%-p暗彻W`氯z萼56#骁袒粚吵啰＃z灋v览廊葨排斄翍浇帟昿拻n烫毼螢蜒⒂缨佑ㄕ摘种元刎眜uc噜你闵殚祆茱镟鬃撕祳.-(忉苠赝崭盁崏竼~ⅱjjdddbbbYYYSSSAAA333)))   !   ,    6   缞pH,徣y脆p酣tJ曨xΧ堘態喟x卹胳V涶y諧N赮詐d麧-?}zn僀?咶{y?弤?x岴?.7=5?~.仌C桟/'('汦欳墾B&2盌ご斗?11244?翋B祳艆B?32  .j?Ｃ渊*,,	?*+,(	%湷夷鎱-6?,:!G亟r! ?V<h繾翉霼榲薘!?`8 

憅芰
O磠鋊E
MN<尤壁沄$\<aB+湆籼千P?xx5㏑|	-Z歅厠	`脢K瑡2hZ硕Ga怈‘莼x筠 钖L葛`攧 ;   070701000636a3000081a40000000000000002000000013ac038ba00000190000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT0-01.gif  GIF89a6   览   浇趟葹瀡＃z照癣YYY)))亮懗硢照腥葨fff瘍~bbb湙柼虤牝t构媴厖AAA挝漇SS裳J换屫乇!    ,    6     巇i瀐HI,洗糴珬K罓p8擧r;滰丠(腶鉆:Q甩HPG`qMeWdhe,=═%J'`崗*ux`c~%)'o$']槝%抪"g$Ηl$湠焥(#g(""稙競魄#纯 翑g\ 俗蛽穝试又"滋螇觌叹阪~ 谯澛蘧櫂魴荝俥|竊牎脟#6,繫缷3Vご繠亸 CVX刹ニ- ;070701000636a4000081a40000000000000002000000013ac038ba0000019f000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT0-02.gif  GIF89a6   览纄ee灋v浇   いz(((YYY蜒⒄摘梃袚摀苠g舷999翍RRR挝灣硢圹禔AA 0热柼虤Nqqq潳GI媷?!    ,    6     巇i瀐&H,洗,Y珬慤)罓p8|鍁毫!e&	sl淘琐pN0剤5匨I 4凘谱e暄=,9 T#e(${"}b$'%o巵r $攈 "槡 
&i櫔"k#&ǘ珴;炼[2$湿稳&椎四观$喋涄彗//#仨憔篇聜T葌鉃#A僬0\6
h苋保G,钝G菠I憥"啦ニ0]h
C8s贶蒘g?#B  ; 070701000636a5000081a40000000000000002000000013ac038ba00000186000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT0-03.gif  GIF89a6   览   浇CFE灋v＃z照游蜒YY)))亮懗硢ccc热柅矧椞虤儉~挝潩构嫪SSS拻n裳J刎被粚祆!    ,    6     巇i瀐驺8J,洗珬罓p8|鍁:"I(鎞lL0醋(@&#	;仢íEl@ ^師$^w$y{np&q~"i厁bzpn弞悞敃Y垯塵潙摂嚇妏z 播 祘姕萍究ぅ嘾﹏唤'捞 圹由３厃c}(执"喷#脬韅體鋔鱦舜,H盃羶3拽∶泡ap艐3j膞酜I菠I ;  070701000636a6000081a40000000000000002000000013ac038ba00000188000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT0-04.gif  GIF89a6   览   いzYYY***沼谓綆崑灋v照獓 *蜒⒘翍冻硢ccc热栬駂33嚏驿汜尢虤疮QAAA构嬑螡蒇刎被粚考!    ,    6     巇i瀐fAC,萧孍l^6X罓P閞8瞙夾娜D%桿3hd飯k洰f牔眩|NZ$K們#vv$e} "噳#媿} w妼帍a"晽啯瀘瘈う&澀处'艓侨グst"螣紤儌軠杷伳赓X誸r腹萍*兺砘颾剞p 牋羶L邢寔x#Jl(3j苋Q /"40@菠蓳(M6p3" ;070701000636a7000081a40000000000000002000000013ac038ba00000192000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT0-05.gif  GIF89a6   览类閗灋v浇   いzddd)))YYY999矧桞BB照蜒RR亮懗硢))嗜葨烫毼螡刎崩耡噜55(烫藼B2媷?!    ,    6     巇i瀐&eH,洗-珬褌1罓p8|鍁毫醽U,剅lLI!D醋@.	"O猨 $u^y${&p
s$h#%崓s#慽 /6	
%灎"氨""獱	7	磵 ⿸涵 $履&箵埻#胐側熤 s陨釿 绨露爨珪ef+U0螥-0爛脟#Jt(罎@3j蜳BI蹭_@Q0牓藯0c緦gD ;  070701000636a8000081a40000000000000002000000013ac038ba00000182000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT0-06.gif  GIF89a6   览   浇灋w＃z热终摘蜒YY)))亮慺ff吵喨葨bbb3f烫毣唽屃`构婣AASSS骅秦悍挝潽刎睊抧换!    ,    6     巇i瀐γ<I,洗|Y珬嬚罓p8|<r;滰丠"尼釦:Q随Uu[,S`0F侓9凮Y驙l孉*	X"q vvvy{_$倓s拤z)n巵c儝憯*棛殣挧攊i&沍jv% Ь赂$氦(巢艠 'vv 茙&庳趢%诗曎突(靠蹋埏a錹鏦鴄
H癭@鞨萷=@6楬雹艐7y錪亐 Cr翢!  ;  070701000636a9000081a40000000000000002000000013ac038ba000001aa000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT0-07.gif  GIF89a6   览纉ii照   XXXΖ杳敏潩v浇帳(((苠g888舷喜膊晻澚翍吵咥AA热栨骥M烫氾驐蜒⒒粫潳GI媷?Εy!    ,    6     巇i瀐&D,萧<Ql^F撪罓篱rE8篭2湃D%)噩鸭P慾隁",舞艀鬍埈蔜傾4&魏P#d(
${"}a$ "%n巵q 檊灎$h$潫疻"
缮&蒋"坤9臀d/3/籍賟 撋%缇爯h娠##乜闖鋬7猏z @脯們=@@藟y,H＃>I菠I戂'}T撇ニ椛T姁鄝蜎8s昴櫊+
J川Q䦟 ;  070701000636aa000081a40000000000000002000000013ac038ba000001c7000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT0-08.gif  GIF89a6   览罒焨YYY   厖殚))(＃跻窑浇幹脂氨菁嗽1唵咷G?奄D┅亮懳螢腩摮硢 0热柎磽yy烫殸鞍嶑螈踪!    ,    6     巇i瀐&&紁,妻弭(|罈wK&蕛捼PfHL懃鑓溯2EN蘞RU]M妬*v$N敪G春)?
%	Tw$g%ik~s`卍%$寍]]Lv棄yHⅳ"W_ i经谅偞#W綺i~缆聊 魄 W尯
沅牛肿G篿倔翮刀豭盹"
J蝂>	.p鄦錩B<v0Y〃Fq>歹8烥z(D<裂$攐#綔T〣	"t壤砱侳@川褣7Q*]楗	C岼滼昲K0LH赖痐絅84" ; 070701000636ab000081a40000000000000002000000013ac038ba000001c3000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT0-09.gif  GIF89a6   览罓爔ZZZ佑梃   浇  ++棕卮侣憹-P热螢汉+++┅癢s乔暢硢噜攀蕵烫毧+父妰 )妹沴 "换凙A!    ,    6     巇i瀐$紁,闲霓)C@嗨喕 償e8,垁嬅1,嫬c虼蘌"I:1,*-jr"I臨*)鮥B	*t#Px$z-}匭f&島m["w殞H&	#З" 疞		酣#溋甩臀 嵮衣诠菁絲耱M腱哙悚6@塢' J橜鳰=$犂A
娢菻`Ｄ夀B@1燘仐0# 閚% =<~L槲@?@
敡*D髵*]:瘽n圝崽7&瞛菔惦''B  ; 070701000636ac000081a40000000000000002000000013ac038ba000001a2000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT0-10.gif  GIF89a6   览繴VV湝u   佑綆--蓿後萔V媶栆姨eee亮懰甩P6)))鬃登菚构柍硢适槴珋3f烫毼螡父姄摀祆!    ,    6     巇i瀐f8A,4]眡繾饀酸

S)8+绬!樒R塨v2時*僄V淀V: 兵怗杪:>ar
\RE{%}-亙"i&%
#z$$Lb	埅"}/#	%杭#/	賵"掏 嫌*萃嘈脲绔捱I"吁戽)杓膻磙碲7皟瘛凶陸繃W0漪j夏F譢埽倧 C7ES猏塸`+@rb蕼Isf5*<p鲁>0" ;  070701000636ad000081a40000000000000002000000013ac038ba0000019b000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT0-11.gif  GIF89a6   览   浇幷斋＃z灋v儋砓YY蜒ff)))揶搅翍```挝為橛吵営缨滗梳崮轵q热烫歋SS构婣AA换寬抧蛰]櫃!    ,    6     巇i瀐f$G,洗宨珬宖罓p8l$r;滰丠.DSA:Q随U[,3<
圈,p琸等癃;X椞w=;w+g| r拝u晇"墜|rウ槉實c 潫捀憫 櫙湠葠	嚳屃?吀#蠜遛蛃A嚲磬Z 鱻溆-N,4讶A认?2	悂艐3j簇　耺 C﹊R猏刹迨`U` 牔蜎8s辒 gD ; 070701000636ae000081a40000000000000002000000013ac038ba000001d4000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT0-12.gif  GIF89a6   览罓爔照粚   [[Z樨jk諘栠--,&&m噜虱Kg聭秵嶅认0 讯η菛行≮邛排彩蕷B寥q唵喫茥99!    ,    6     巇i瀐fU紁,螶呸%|罈w(,膾EP(#J 澡Q$h=I侰"犴	喜柢X'埫涩Wr$gx廠%d俿[lF#摃朒敃g
^a兎 gぬ岣偤鑰
<4ピ- *嗳绤w 8 C9鈘!tRN @ 4P2GQqi蓄憘-	:櫻BK糒l纒k9cb="〈!骇P}*爚X砵軿5劑`>舃J醼砲营]B!  ;070701000636af000081a40000000000000002000000013ac038ba00000180000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT0-13.gif  GIF89a6   览   浇CFE灋vddd＃z照猘hf蜒YY)))亮懗硢热枾К矧椞虤潳G挝澒箣SSS`刎贝z伾袹拻n换!    ,    6     巇i瀐鎐K,洗珬!罓p8|鍁:CI*
鎞lLQb0盀廆脷聨僼`茸9漎$濦>2l_b|%~"ii)%o噠rZ\^' #悞 塰j$"灎"v湰懏泚矎寒 嫢a履艧摙棷透$剑祃(贍v'庋娇鐎*雵仁H騶萷鱬 
H`c丬)\幛
H淗雹E聘z蠤菑 C賎蠄 ;070701000636b0000081a40000000000000002000000013ac038ba0000024d000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT1-02.gif  GIF89a6   3ff,,i%%玊T{{gg 烫3f适椈粚吵啿矃＃z灋v殮s弿k览朗蕵热柵艛哪摿翍浇幑箣ゥ|拻n烫毼螢勓癣适澯缨蜒ノ危构撜摘适∑茷佑┨太鬃丰崮侣礅噜厥杉貂跆烫帋巬}}fffdddbbbYYYSSSAAA)))   !   ,    6   @妏H,徣y脆p酣tJ曨xΧ樶盢⿺B昑醫8囁n禋^蓚蒬巼iU=!#;noIq5 ./$B7??B?嘕q"6 .10/#?2卑C?爤=6.-
硾?喐D墜,张櫂2C炍Fqs5(3/3瑽北E夺Eq!椱,飚耋盙!,撆m埣[黴闫怢H&鋋D=盍艽qむ胥D癲詟 セw !F|9j氒騛戍O4m启Iゅ螑80ta倳NNT1ザ>紾釢Yx7:4 ‘莼x笾砝6.卓龟樶A劽+^滧璃2h楲共逅34 ;   070701000636b1000081a40000000000000002000000013ac038ba00000261000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT1-03.gif  GIF89a6   3f**""22kRR22廗K襫n饀u迧嶓破敾粚吵啰＃z灋v棗q摀n览朗蕵热柲膿亮懡綆构嫷祱鞍劕瑏Ζ}櫃s唵e烫毻蜐蜒⒁咬照刷破炗萤灋晻x膊樥辗沣势票技ㄌ碳栽孺驷耨駬摀fffdddbbbYYYSSSAAA)))   !   ,    6   缐pH,徣yp酣tJ曨xΧx岘H􆘪*櫹パ墧胑穁LOt,0巆蟟`!"';opIrtF(./00+" !?嘕塆)0
Ζ1#?潏s.腹, ?啽D烣/5/, 浤F艵+-/E跠&+0/.-1玷B氚鞢飵5馉"4d癛穷煇O?n颍b巵-x惲b!C!蕡(駠9b@(`c憕2iR RBPQ兤寏/啘9(N1:礃f 1E,
 G峯:斘2妴p儐4聑'膴p徂惐劔踄玛菟膎粈秉f绵#脙脠+^|XB劭q#K淇 h尢钩g8澎啞撮莹S熅0LH ;   070701000636b2000081a40000000000000002000000013ac038ba00000225000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT1-04.gif  GIF89a6   3344垍裳J兮a牝s塍z暂6矧椈粚吵啰＃z灋v览廊葨排斄翍浇幑箣拻n烫毼螡蜒⒂莹照乇种汛疩J婆粀vs衷涎鲜あ炋势汜蒈谥卣兄游匝逃兴谧訒拸jhf净歌珂儉~噍iiidddccc```YYYUUURRRAAA888...)))   !   ,    6   @噋H,徣y|蘦定tJ曗rΧ蒳2喟x<瞇瓌wI+鰼粦6蚯稃p?wIy{1妺1'?C?厁l{'殮巓	?v擟嘊25S8:1滲儮E7寣?1皬C
挾D:..$  季繢脫臖;$$%嬓将勇淖0%* 嘁盉真鐤%&哐泸蔧CC妚紛鏯9t P帷5hm=mB5伵虚娽'NvLi+V鉴饋/B%=犟C鬵挔4踟BjK倧	滼礿T
(菔佃L[4K冬俪e2 倓穚闶7B(!A  ;   070701000636b3000081a40000000000000002000000013ac038ba00000207000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT1-05.gif  GIF89a6   3f))曙驐换尦硢＃z灋v屯毺虣缮椚葨排斄翍浇幑箣父姤拻n烫毼螡蜒⑿孝佑ㄕ摘栽乇烫虛摀fffdddccc```YYYSSSRRRAAA@@@)))                                                                     ,    6   绖pH,徣y\|@ⅷtJ晵LΧ(i0喟x蝋B犾V8U置	舝)詐d麧LDr)yI{}))E)唞nH~		D)x擟圙妺湉	劋E弿滲挸D礒腹籅伎摿B肏故	涛蠔)	灾讏)谯鉁軨死遒 頉~炬93g餃>~ R&0A凍鰤譓r矱竪顬"
6锁鎻I悭d8摇鱞蔰傃%焂5g9@窭,烜
)　螕H*5J狝P滼Uj丅4p赖痐6%$ ; 070701000636b4000081a40000000000000002000000013ac038bb00000242000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT3-01.gif  GIF89a6   /O33蘰p﹤偩ゥ橛吁珑兮a 牝s塍z换尦硢＃z灋v览廊葨排斄翍浇幑箣拻nPP<烫毼螡挝炑癣佑в莹换曊摘种乇沣情橐创觊Jtsp谪诱游あ炋势徇躩hf邈釗拺粴儍~iiibbbYYYSSSAAA888...)))$$$   !   ,    6   缊pH,徣y斬l法tJ曗rΧH蓧@喟x<~f汾
弮2'9窇j6徖%?wIym|?C?儀kC5P78:D?2?4垀?v岰84ī?梟2仮E:'0'?B&櫙&B嫶D!;
0.(?!? 钠壬B送.*季肿?賹
**?#C鏆C请垲*+?1~|p脟>mE`艎&0 袓羶鷴筀E肳:u氯疂>皥1#艐	l姁燞緬閯I`_l"渊懊HI膱馫協jCX逼鑁鈏T8"т&
%,<X硕穔/ズ钞莼sEQp ’呖u 垵
+^谈馼
 ;  070701000636b5000081a40000000000000002000000013ac038bb0000021c000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT3-02.gif  GIF89a6   ))33藤鈇牝s塍z换尦硢＃z灋v览廊葨排斄翍浇幑箣拻n烫毼螡挝炑癣佑в莹照脂刎贬崮殚种绚燡tsp觊尜滓衷悉淌栖谥邃廛僭匝蹄徂湙杍hf净竷~噍眄黹殚iiidddccc```YYYUUURRRAAA999666...)))   !  
 ,    6   @卲H,徣y\蘦定tJ曗rΧ厝e.喟x<瞇GI#稝粦膂]_{xl丆?凢yC25Q8;K?v

7/煚?揅?E機: &0?D嚜B<))?稦簣季.%1迫够虄
'钠?噌郈始氊!延F
遄z"($,徘  责知z!M紜#T带癰诰/銴湼c
>韠A!Gl4lX蒖儹!#KnL磇B8sV%銼9e$2I撁H*])剻x淛*訞$厥但庄] 獾爜兂h营]浂&!A  ;070701000636b6000081a40000000000000002000000013ac038bb00000222000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT3-04.gif  GIF89a6   33藤鈇牝s塍z换尦硢＃z灋v览廊葨排斄翍浇幑箣拻n烫毼螡挝炑癣佑в莹照脂刎贬崮殚种绚燡tsp觊孳谡僮抑韵あ炋势邃庠烟汜逌櫀jhf净竷~噍眄黹殚iiidddccc```\\\YYYUUURRRAAA999666111...)))   !  	 ,    6   绖pH,徣yT膁胆tJ曓p
Χ壤a,喟x<炆瞇m7I!慖濡@粦膂]W{xl丆?凢yC03Q7:K?v		6-煚?揑機9%  .?	?刀?禕嚚B<''?-礏?	紙纠, /仁	-苄接	 期喂废丫氥!刳藷菹嘁ㄔ"L怭q,Y畠靨咉'O賿5{8錆8=|乥厙诤}#b!F/胸慿_艆橳e蠤砯Z爭攲9N?@僐昫g墝j傲羴濟蹋(砵輟聤K鹅X|)`袪穚憔eIH ;  070701000636b7000081a40000000000000002000000013ac038bb00000228000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT3-05.gif  GIF89a6   33藤鈇牝s塍z换尦硢＃z灋v览廊葨排斄翍浇幑箣拻nhhN烫毼螡挝炑癣佑в莹照脂刎贬崮殚种绚燡tsp觊孳谡僮抑韵あ炋势邃庵游匝蹄徂湙杍hf净竷~噍眄黹殚iiidddccc```YYYUUURRRJJJAAA888...)))   !  	 ,    6   绖pH,徣yT蘦定tJ曗t
Χ刃e.喟x<瞇mI#粦膂]W{xlZ?厖D?丟yC25Q8;B?/'?o?v孊	7櫑/??'-﹟; &  0?	-楤姶C<))?镰毰	菋	送.!1诱ㄘ谲輧	!唁搂缛苻"怛'醵%7E	舀Z樈侂凇G-狶C休嬭# 	-> '剺鮜XC,@p(悥-r暝 !E6譓█〃
枖 5*訰F888@氮斋X>xh3ψ1k哹` 佡砲营Ek 7葷K樊]@		 ;070701000636b8000081a40000000000000002000000013ac038bb00000235000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT3-06.gif  GIF89a6   33蘰p﹤偩ゥ橛吁珑兮a牝s塍z换尦硢＃z灋v览廊葨排斄翍浇幑箣拻n厖d烫毼螡挝炑癣佑в莹换曊摘种乇沣情橐Jtsp桤溱赜沼韦淌沏徂jhf净竷~噍蹤棖弾觋阨iiccc```YYYSSSAAA888...)))$$$   !   ,    6   绹pH,徣y勗j法tJ曗rΧ(蓙<喟x<墩瞇韯/A粦膂]圏${xl丆?凢yC46Q8:C??D
?v82￥??）|滳:	&&  3?柀綜嚢B;++$?B񝪴B翀门/'负唯栄彰瀮''?!Cえ怃诅'(?0?芥	'
*Z03P犨R馄剠D]竧E{>幄り8盨盺2
憟G楃6罶D孯麳QX薉2l攊#5j恚$迶蹹:侭儻`脢翾B`猐琐l 	葷K樊]  a傔縺,亾  ;   070701000636b9000081a40000000000000002000000013ac038bb00000206000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT3-07.gif  GIF89a6   ㄉ袹潳G牝t矧椈粚吵啰＃z灋v屯毨览缮椚葨排斄翍浇幑箣父姃抧烫毼螡蜒⑿孝佑ㄕ摘栽乇友讨游儉~鲻鎏烫瘏厖dddccc```YYYSSSRRRAAA)))                                                      !   ,    6   绤pH,徣yl擫ètJ暘VΧ鳻m2喟x謉NVaY"梊礌T.C絅哆K.# .Cv.}JL. 咲.寏n彂擟
.|橠r〦"# E姤F  煩紵棿E匔甘笩罉翪钠怚湛列B腋函 B$B孜谯洦攀愵瀵尜谲  斦笙蹶.<粜R綩疨%<囄V閲n俩蔤鄵x$!6.懨q	埁襯2:a-匒佂8s甏9乛#^@
)炝H*]蔜閬E<@氮斋X> %$ ;  070701000636ba000081a40000000000000002000000013ac038bb00000230000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT3-08.gif  GIF89a6   33碳菈裳J兮a牝s牝t塍z换尦硢＃z灋v览廊葨排斄翍浇幑箣拻n烫毼螡挝炑癣佑в莹照脂刎贬崮殚J字裻sp觊孳谡沼韦淌棋溻汜逌櫀jhf净竷~噍觋晏烫瘏厖iiidddccc```YYYUUURRRAAA888...)))   !   ,    6   @唒H,徣yl衘法tJ曟tΧm2喟x<墩瞇-I'&譆粦膂]o{xlL0?0E?丟yC36Q9;?,1.?E?v岯8.┆??.滵;"'  /?睤嫹C<((?01.F蓪拖-#苛嗙喨兽# 诱擒捱  湔G\	鼻.>$L瑺!\謓^9"#N颊糖)X凱P9m譗4]CTa&Q%莬8t厣撁M1臆8猅*絧╁Cm7奾#"(厥但庄[%H疥船Yл=H盃穚憔M 萚蜿菟凤 ;070701000636bb000081a40000000000000002000000013ac038bb00000220000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT3-09.gif  GIF89a6   ))蔘Q祙|鲍矧椈粚吵啰＃z灋v屯毨览缮椚葨排斄翍浇幑箣父姃抧hhN烫毼螡蜒⑿孝佑ㄕ摘栽乇照刑势湙杻~烫摊厖協ffdddccc```YYYSSSRRRAAA)))                                                   !   ,    6   绤pH,徣yl淧tJ暡ZΧ鴋q4喟x辢RVq]置揧1詐d麔|Er/yI{}/  #/F/唞nG~ &E
/x擟團妺湉濨劋E"弿滳挸D礑. 腹籅繐罛{$!!$箿妓拖衝!&诠"示泪{""鍰贻C唢像/"$&
$‰+顪駍3O?=|餑 a粍詚釪v%eR▽憭鵷 &,l銦=.擆5屢PR:D@来┯橬刈螫斋X*鲟@偗`脢鯜@X硕穖 ;070701000636bc000081a40000000000000002000000013ac038bb0000025b000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT3-10.gif  GIF89a6   竵兓啞I]- 卑33蘻|柑袜#%-46!p 桊r狈\氯y萼吵啰＃z灋v览廊葨亮懡綆拻n烫毼螡挝炑癣佑в莹qqZ照元种藿沣情橐珑腚躎TSァM势椉秾盱枵游/+%巅諣煘摊崏俳竲||cccYYYAAA888...)))   !   ,    6   缞pH,徣y脆p龚tJ暘tΧx褝B喟x厼侪与▏歁纾菠逪/孾~|ym侰匜zBOQ*;L?w*7潪?扟-楥;.).??怠D?垿檮#<)1+?#0%&%燛够11#?%3虲霞絥1/?$?5 备衡依//.645礪=K懧(歑 bC厒褆髏銍綵2~Q+寴` C}0`@dqQ濧x_祩聹I髧	9	-%!蕩歨 h>"(!e"MFK鈩$.;苩#聤跣A〖聙⑴効7兿hA+^谈V覦$P楲共逅%鈋喯燙%!A  ; 070701000636bd000081a40000000000000002000000013ac038bb000001e4000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT3-12.gif  GIF89a6   唺屆`矧椈粚吵啰＃z灋v屯毨览缮椚葨排斄翍浇幑箣父姃抧烫毼螡蜒⑿孝佑ㄕ摘栽乇垏劋vusfffdddccc```YYYSSSRRRAAA)))                                                                        !  
 ,    6   @卲H,徣ydB（tJ晼LΧ0i0喟x蝋D§V8U置	舝!-詐d鹽,(yI{I(
(奌(剒nK(  婨	(x怌咶~
晼姟
倽E烣垔Θ
幁D癄緤D笍築糂(礒钠菕(蜅霉胰C謯(禕艳訧巅芘七}骁蒺隄梓|J硇龊>GP躀S幘 =l鮜3j苋Id'╘刹Ic噜佂8s昴閫搻  ;070701000636be000081a40000000000000002000000013ac038bb00000238000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT3-13.gif  GIF89a6   x  cP11阞bQQ祼搪葃矧検蕳破斆脪揪幓粚吵啴畟＃z灋v览朗蕵热柲膿亮懡綆构嫷祱膊啔歵晻p拻n烫毼螢蜒⑾稀佑а靴佑ㄍ停换曊摘蜒梱儋程太圹磕漠创犔谈镲囔燹揶誺usdddbbbYYYSSSAAA)))   !   ,    6   缞pH,徣y间r花tJ曭zΧ橀礣喟|:a].徽j|#妤崛0,!谚腫佰IoqI).(y?J侸 05孊?搧>$~岴,165&B!?o$F14%懟Fo"(-虳2 -B⒀E娇?腱鞓0 啼骁C絶?8?R权`@={ｐ	㏕崆

"J\G絣.#勥$鄔"*d/燎	F釮扲c8b挢S&蚒{+96藤(繜*癖l囚(挌V鳪u&R汻:柢V36LK冬俪cA U诖蟚怈‘莼x筠 I%LXp]B  ;070701000636bf000081a40000000000000002000000013ac038bb00000231000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT3-14.gif  GIF89a6   33藤鈇牝s塍z氯y矧椈粚吵啰＃z灋v览廊葨排斄翍浇幑箣拻n烫毼螡挝炑癣佑в莹照脂刎贬崮殚J字裻sp桤滠谡沼韦淌苬us汜逌櫀jhf净竷~噍觋阨iidddccc```YYYUUURRRAAA999666111...)))$$$   !   ,    6   @唒H,徣yl膁川tJ曏nΧm2喟x<炆瞇-刧I'浦@粦膂]o{xl丆?凢yC03Q69D'?'D?v5.￥???o滳8""/?í 桞嚢B;((?骄 呐巧-#负鞋?.請變# 拖.逾娩柏  茼┽ 胥妝2噹	+測p5{搼r袽H蛛t虈)X凱旬苝C	<觯ニZ(@矦藔弭\嘈¨ONT貲U'D=z鑈蚀楎\録.懯k"(厥但庄[%<澍铂俪e7&z恅佦穚闶厸 P 栎朔痏8		 ;   070701000636c0000081a40000000000000002000000013ac038bb0000026f000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT4-01.gif  GIF89a6   椎稘7R- 枏抺vC88顙fh八踢骆犅m幆U58）lY萼甭苭伹菚靠徎粚吵啰＃z灋v览朗蕵浇幑箣档垾拻n烫毼螢行搒佑д摘种箷>>2洓~鬃橙拳沣请脍儋衣翏逯渭搯cccYYYRRR@@@)))   !   ,    6   缽pH,徣y匿r酣tJ曨xΧX懔V+昘.浲响V辍> LF摿敠J祴瘲m(q"-1侹y?5J"$%/43塊!廔5))4		榦?j濫m'!枽3*"嵁F-贩0'?'G?澗D!332+=2薊拖蠦5#0227?逤徙C錻5'2b?6l 鄧."鲱}(w1鄦#!	1,r~X楢R倠o菚5峝绦,侫屛.t筢倢!*~蠿盃2(T橉cNq*y!剠挞
2`噜羶,炾,笄2B&0蘭SB+嚕.0>b摗W1
79卆{砅AO>Dt楲共逅揔\冻缦潯B羶橛⊿獸歪饨s!b藶M祸瓎 ; 070701000636c1000081a40000000000000002000000013ac038bb0000022f000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT4-02.gif  GIF89a6   ..=@@jpoEJIuzy8<;6:9ahf:?=LQO]dabfd`dbqsq=?<棛晩寙ɑ粚吵啰＃z灋v览廊葨排斄翍浇幑箣拻n烫毼螡蜒⒂缨照乇腚仲僬蜒雾黼殚珑珏鲻醪杯瞧驴竞刈逾徂衷邢翁趟芍游趔吵dddbbbYYYRRR@@@)))   !   ,    6   缷pH,徣y泥p酣tJ曨xΧㄡ岲喟x<吾瞇恙J=Ph嘇粦膂]屈4{xl丆?凢yD?7C崗憒?v婤?/556-?潫。o欳	B安?$C嚞B(%,-B门5季繙*4.摳7螧綀覂B('0灎?
憧涙&1+稄j琱0嗲.q裍箽谚膶ㄡh 絲	5- @蘸}U 4r
8<y壺+譮%絵D23eMLG.0j1IO崈H^$AR裳D=%戳
X砵菔k噷P亰K冬#敋4P袄董鄯p軷 儐x箨菟W瘑LB  ; 070701000636c2000081a40000000000000002000000013ac038bb00000225000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT4-03.gif  GIF89a6   椎稘7R- fh皥壞颂$&.妿58カhV萼辨枨缕w殛NN:换尦硢＃zⅱy灋v妸g览廊葨亮懡綆构嫋杚拻nddK烫毼螡挝炑癣乙ビ缨照脂>>2刎便闳骀烷橐殚躁贳痧巅壅TTR锹/+%逯纬拡cccYYY@@@)))$$$   !   ,    6   缻pH,徣y滗r酣tJ曇vΧ刭盧喟x<~f穁蟿嶩&峴n#誰火往u魒kF%?%K5?GxE%6-/-嘔#?u孊嶤-8?朑#~淒濨(?77 ?(J姭C瓌?8?85H箣%.22?0+$G伤虃3??24?'酆藥3?1?)焓粠T貨G燸醉]媔腍 頏媅F腹B覌I-<Nba妶F6擛、e,[(iJ6 D堐箵B0渣藩ESrB噬儚滼礿6嬺苁祂VN,dK冬俪e-黋啤儑穚闶访&!A  ;   070701000636c3000081a40000000000000002000000013ac038bb00000229000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT4-04.gif  GIF89a6   ++謔o悙靠垠篥!桱换尦硢＃z灋v览廊葨排斄翍浇幑箣拻n烫毼螡蜒⒂缨照乇後漱种原(1殓ι+%弹'&膛-繁)啪/籽D障I噗s谡w腓㈧楗耧王笱铞蹴祀枛枖敂fffdddbbbYYYRRR@@@333,,,)))   !   ,    6   绤pH,徣yd豯辅tJ曟tΧ栊],喟x<举瞇恚GI%J%茾粦膂]g{xlF?0?婩?丟yD  媻宱?v態揃嫨</21?o0技5矯彿C?骄03臖菒/&!噜544刳蹆B?2.+(&$#滏桕谒1-,:0!bD坾鐖餕,@'J<Bc鳃涤鍚"軛戓SD偄
K奘
 A| f蘁l&佟憛37FBJ奻 鴢悹玐砎 砳询`胿嶄 亗砲营] m<楰樊莼u ;   070701000636c4000081a40000000000000002000000013ac038bb0000020c000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT4-05.gif  GIF89a6   荧B[Νd裳J牝s骅锹苭换尦硢＃z灋v屯毨览缮椚葨排斄翍浇幑箣父姃抧烫毼螡蜒⑿孝佑д摘栽乇&钟蝺~烫摊厖協ffdddccc```YYYRRR@@@)))                                                      !   ,    6   绬pH,徣y|楴┄tJ暘VΧYu6喟x鎙PъV+aa諧%9詐d哈"Br.yI{C 孌. !.D.噝nC.!!揃.x楥墷! 嫰叕E湴!"#泼D柤D纠皽屢κ椞B伟潨谯B兆貧%右%G茚猱瘃鸱$熳夋玷浢胨趇z'癄媡傀们,憢"J旇釓d (纼菑 9Zp~鐞A茞+o迴磀鍕誏LZLP莱)烜yV(パ橢H盃┯>M`H軆瞛菔惦珓 ;070701000636c5000081a40000000000000002000000013ac038bb0000022c000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT4-06.gif  GIF89a6   乙覧JI8<;qsq墜儷寄T怆k矧桸N:换尦硢＃z灋v览廊葨排斄翍浇幖紞构嫆抧烫毼螡蜒⒂缨照乇邋损疣趑鬁楩媷?亇;瞧噜噗圹构钩吵瘶槝拻拝厖{{{jjjdddccc```YYYUUURRREEE@@@888333,,,)))$$$   !   ,    6   缊pH,徣y斈d川tJ曏pΧH羪:喟x<炆瞇m叿I3&A粦攵6虫攑?wIyB5&妺&?K?厁lB9	W7#"?牉o?v揅=	7D滳&E儳E>&#、C懜D⿴$!&
? D茠菳蔅*?逾兆B氽軙B> 脽
湔栝〩篌蝓髹嘪磒衤EB鰜2酗1|昢凘"@!3佟I~P傩6	柩儑 殙)殠滺盉匫I3跜攝,2g簸莡竝灙嚆聝玐砵輟肣徝聤).
 ╙硕璠@莼x箨臟翑  ;070701000636c6000081a40000000000000002000000013ac038bb0000024e000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT5-01.gif  GIF89a6   zR]/Op/zdJo  P22鑘h鯋矧検蕳妹捑編换尦硢儶＃z灋vSS>览朗蕵热柵艛哪摿翍浇幑箣档埐矄殮t晻p憫m倐b烫55(挝澭癣佑а薛挝せ粫照葼佑梱谮非黔烫革镟腚蕻种eeebbbYYYSSSAAA***)))   !   ,    6   缞pH,徣y架p龚tJ曣vΧㄙ絍喟x匤盭￢囁n禌)i4<,e昄':noIqsH!0	3|~?匤嘔.45	3(C?槅rC? 42'B#?劒D5?1/柪F毮
80笴ㄕE灼 
?*13溴玷C6

?哴`朽8]D胎'D 黙a鎐▔ 	8l谼2l汝 嗁9撲彊)72fIk7+歴!GVD貉j鐸*W
KJT萀Wq]Ya*憼DPxEV倫℅閆濊6 ‘莼x笾汾瞼lT焼+^谈疋梀*贎共逅-k%$ ;  070701000636c7000081a40000000000000002000000013ac038bb0000020a000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT5-02.gif  GIF89a6   荧@Z酎噦埰燎愍裳J牝t骅腔粚吵啰＃z灋v屯毨览缮椚葨排斄翍浇幑箣父姃抧烫毼螡蜒⑿孝佑ㄕ摘栽乇霪&有烫摊厖協ffdddccc```YYYSSSRRRAAA@@@)))                        !   ,    6   @塸H,徣yじ^报tJ曃jΧh@喟x乣V{眜置求慚詐dT狺*q8yI{L8 )8E8噝n)

廌8x擟塊8	泀叀E*+)F挰D--B-览D祿稡-櫃紹)蜗嶤钠菛
(,F釉-北#&&%钽棋鼬С癯蚨洮 悹犃傤慢+FO爛O搞窅殑r$Nh塄演悐
F掃擉n箓埔鋺敩rQ曷r贶沙gN' 閼J磆衃@X蚀┯谅叓X砵輾(!A  ;  070701000636c8000081a40000000000000002000000013ac038bb00000201000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconT5-03.gif  GIF89a6   殮靝p燀倐睛︼è锉瘪嗑倔览舁ㄒ怂跣婿刎鴰師滗琨祆棛暬粚吵啰＃z灋v屯毨览缮椚葨排斄翍浇幑箣父姃抧烫毼螡蜒⑿孝佑ɑ粫照元种乇揶厩屏tspあ}}}fffdddccc```YYYSSSRRRAAA@@@333)))   !   ,    6   @峱H,徣y湫j法tJ曟vΧ柩盧喟xV奠V曋蓆耺詐d麧9?}zn僀?咶{C?彁慖?x岯?.潪?I#!仒C?33?1I墻Bí31.泊捣冀-G硦羺浢1暖12?(E实櫷┫寻諨偬|莓姒窇1綛髽48PH 饒=nIP-
樹劏d崋8鯝9鑳b蕼I砯L"7谯沙gNC,`J川眩E-撩嚙P彰%!A  ;   070701000636c9000081a40000000000000002000000013ac038bb00000023000000200000000000000000000000000000002900000003reloc/caldera/steed/images/iconblank.gif  GIF89a    烫   ,       D ; 070701000636ca000081a40000000000000002000000013ac038ba00000259000000200000000000000000000000000000002f00000003reloc/caldera/steed/images/iconserverT3-01.gif    GIF89a6   /O**!!33nMM䁖o崓!!适椘茢妹捑編换尦硢＃z灋v览朗蕵热柫翍浇幑箣鞍剼歵拻n寣iPP<烫毼螢ww\缮溞孝破浻缨换曊摘行Δ谮贯崮哪勇怂碱钸骀鄄博忖刿垩粴耨胥沣cccYYYSSSAAA)))   !   ,    6   缐pH,徣yr酣tJ曨xΧh釞距皒n禇炶,鼀>"襈af#与醥C'o?vIxD?44FB?厀jm|媼E?3墋?u擟噝姙43˙儰E{機0湪0B挷Dxt
655
?5B 唤坷Bi |?7? ?褤i!	%+%	82%'"题 滳捐觟Fd邪釦0" 憖Cd8`@.H碤皜[P薛埧t&dQ`纮v2@旀6#烄.亴 ^%  亹B:$5)\孒qu霼慔nV酓m咂E沄iWK涝魜!傔縺龌.+^湗+)$H濴共eカ`醾缦燙ma攼  ;   070701000636cb000081a40000000000000002000000013ac038ba00000240000000200000000000000000000000000000002f00000003reloc/caldera/steed/images/iconserverT3-02.gif    GIF89a6   .O )l ""G'K?_疪p筳  ..zKK!!适椘茢妹捑編换尦硢＃z灋v殮s览朗蕵热柫翍浇幑箣档埌皠Ζ}殮t拻n唵ePP<烫毼螡蜒⒂缨蜒ッ脹照汉枩渵儋度痊忖擒芪铑啻穿骀垅庾粴dddYYYSSSAAA222)))   !   ,    6   缷pH,徣y锑p龚tJ曣vΧㄙ筎喟x<~f汾M蟿﨟%覫8窇j6坷3?wIym|?C?儀kEuE?6?7垀?v岰灑67橞$仧E?).'C3柅?3B嫳D硘+40 苛脤臖、-1? ?履?34/&斿 桟朱韽2}xA  d9t冞:l8皑 @	d
H;m?0悮(郻0唷HXLD@3+洉]"@腀燖9\冂B\ 0妱錘愱犘ツj,m熂~卩叧h营]{6勎瘒馐滽棌襜&T厮矾呖}'b桝脝脠+^淴A  ;070701000636cc000081a40000000000000002000000013ac038ba0000024c000000200000000000000000000000000000002f00000003reloc/caldera/steed/images/iconserverT3-03.gif    GIF89a6   6S- 	 oq皧嬃颂#%-p暗彻W`氯z萼叉枨殛!!吵啰＃z灋v览廊葨亮懡綆构嫆抧PP<烫毻蜏挝澪螢ww\蜒⒂缨照脂刎变淙邋舞枰祆莛疳ㄚ谠TTS徉21"势椔皫遑吞粦劅崏俳cccYYYAAA)))   !   ,    6   缷pH,徣y蔫t花tJ暰xΧ樶滼喟x<~f穁Mo<閰9窇j6坷1?wIym|?C儀k{6?9垀?v孋匸?69払晜楧欳!!D-湠?-B?嫟檸1(*(狟 泊Θ05?? ?背荁$?4486$C 怌刨确?78?32n|9柝賲!),X(a

D|p揙煴ZyP8膉>	~铏銹]n.
 0嗲0鳴B垊"轼1ar鋩 4X鄧	i!`;臔>1V8d 鸥#1壆	qB棅]0:崴HT垘B0A杽&Ht:馐滽穘\mIi8姆縷捠@羵崦+FLa14H濴共e.		 ;070701000636cd000081a40000000000000002000000013ac038ba00000220000000200000000000000000000000000000002f00000003reloc/caldera/steed/images/iconserverT3-04.gif    GIF89a6   /O%%箽氺矧!!破敾粚吵啰＃z灋v屯毨览缮椚葨亮懡綆构嫺笂拻nPP<烫11%挝澭癣行⒂缨照元刎辈博钟位殐~dddccc```YYYSSSAAA)))                                                               !   ,    6   @唒H,徣yt孒ΘtJ暈PΧ鳣u6喟x鎙JれVIa致U鍜褱j8昌H+s+zI|"丟+C+妠n  揈+ +"+y汣暣 彥埊E背"懇BジB櫧D+ 仁掏B铣噜	+~	跉迬惓C 岁軐晵諘D咱啹Tq奌脕鳉1姄羞8E飙cg惲 Y	B #A偞8R{M"+野朑4疀囍 =淔t|S$X%B%獔悹┯6漰Rο玐砎} 亗痐脢A@X硕穖 ;070701000636ce000081a40000000000000002000000013ac038ba00000216000000200000000000000000000000000000002f00000003reloc/caldera/steed/images/iconserverT3-05.gif    GIF89a6   /O垍p裳J兮a矧椑  !!破敾粚吵啰＃z灋v屯毨览缮椚葨亮懡綆构嫺笂拻nPP<烫毼螡蜒⑿孝佑д摘栽乇膊┲游粴儌~dddccc```YYYSSSAAA)))                                                      !   ,    6   @坧H,徣y敇N┄tJ暘VΧ8Y<喟x䎬PъVKam諦WF瞄"j8昌^箕s.zI|p.C	.唟n~#.%
.y怌圼.#%朆劃E烞瓔!。.!B帺D览% 炊笍築骄.. .饭垔% 擟枢釖."ｔ甄q庙咛" 	塬4勦緀X@`乬桠q脝. A0憻.q"@!:"(?&橮L鳩勍7堤d'瘴3TZTh@川眩H塣籁缨/W览佌玐砵攀8	(K冬Y8		 ;  070701000636cf000081a40000000000000002000000013ac038ba000001ed000000200000000000000000000000000000002f00000003reloc/caldera/steed/images/iconserverT3-06.gif    GIF89a6   /O!!破敾粚吵啰＃z灋v屯毨览缮椚葨亮懡綆构嫺笂拻nPP<烫毼螡蜒⑿孝佑д摘栽乇膊┗殐dddccc```YYYSSSAAA)))                                                                                 !  	 ,    6   绖pH,徣y\t<牗tJ晢DΧe.喟x芢>烄VQ致抎R眲j8昌^楟	s%zI|p%C%唟n~%	%y怌圼%朆劃E烲。%B帺D煀柛	 	硰礏窎牵	% %泊	使莙螖C略諕貢讳譹缌幽烽婃D晦斓珷E咴铕龡	蛘K鮥斄冮咲8瑵$髳鑣'誅{;]$H聛亸 C吕N\榀a-葴I肠M
Q[罓佅
烜
蕗搻  ;   070701000636d0000081a40000000000000002000000013ac038ba00000250000000200000000000000000000000000000002f00000003reloc/caldera/steed/images/iconserverT3-07.gif    GIF89a6   /O%%u88##88親H㖞Zhh帋ahf裳J!!适椘茢揪幓粚吵啰＃z灋v殮s览朗蕵热柫翍浇幑箣拻nPP<烫毆獊挝澭癣佑а靴乔灨笒照学佑渵儋粗植缮ǘ稓圹棵铆镲囔燹忖植博沣儋匦粴dddbbbYYYSSSAAA)))   !   ,    6   @媝H,徣y泥p酣tJ曨xΧ樶璍`旇D>塒啻:囁n禋^Hxqd鳪苢)< !";noIqsu%,%!}B??嘕2	//1#C?C?潏r)5		440"?6?7瘶?喆D煛-*67葿浵F煁%4113凄?3B叉Eu$薰p徹< 躅Y7k邜~
"",L 釓	9騃8pS嘭#I赗盃fMpt悭萴%O
蚷1
农覱g.ej劻訜K.副+"6:菚YW5朄蚸酸趠5Я菃	x箨菟/琾
L肮((^谈眂8拍怉冨藰3k茰翙  ;070701000636d1000081a40000000000000002000000013ac038ba0000024d000000200000000000000000000000000000002f00000003reloc/caldera/steed/images/iconserverT3-08.gif    GIF89a6   磟仠/ON**p>DD羒i跇樼排趭嬃`!!适椘茢妹捖聭换尦硢＃z灋v览朗蕵热柲膿亮懡綆构嫲皠Ζ}拻nPP<烫毼螡蜒⑺藷佑д摘妹湨种淬闫圹铝连珑咽矢眄叱敞哌賴噮粴兲碍骏鷆ccYYYSSSAAA222)))   !   ,    6   @媝H,徣y泥p龚tJ曣vΧㄙ喟x<~f汾Mo﨎I8窇jvI誖晹?p?wIy%/1/))F?C?坸k*/+D?3?6杻?v汣y-*暴6珺!啿E1+C0粳0B櫯Dy+1,??謿谺y$/<1..0(銫玷?猐{g!O2
傍PI獑#Xp.X犺峌賽8餧$x鹦 Q$槲4kU慾骕竴訊	V㏄儫%	}陱X泜ZS晖<+<&"恳R蛛賐m媘鹆亗莼x箨邓矮馨圂+K脛
+^蘕駝Csn楲共逅5 ;   070701000636d4000081a40000000000000002000000013ac038bb00000061000000200000000000000000000000000000002600000003reloc/caldera/steed/images/nav2bg.gif GIF89a ,  烫33..((W}11,     , .(很0蔍榿突`(巇i瀐l刖p,蟭m選|罓pH,e	 ;   070701000636d2000081a40000000000000002000000013ac038ba00000216000000200000000000000000000000000000002f00000003reloc/caldera/steed/images/iconserverT3-09.gif    GIF89a6   祘倻/O妺罠KJahfㄉ袹潳G`矧!!破敾粚吵啰＃z灋v屯毨览缮椚葨亮懡綆构嫺笂拻nPP<烫毼螡蜒⑿孝佑д摘栽乇膊┗殐fffdddccc```YYYSSSAAA)))                                                !   ,    6   @塸H,徣yRtJ暡ZΧXi岯喟x匱╈Vkqy諦&j8昌&鳲~E0s0zI|&&0&憮厙B0峽n摃 桟0%0B0y濩弳啋&DB嫳E懜脩C$簰$B溊D弬剄柾蠞袯訓000涡棯刈愆C唧鬇裄e"A}qj鶕N盜*\CP6<圖饪y$钾(憟"/綢1ぅ'尷lKg,3/.<J川眩C3能9癌缨M-F 傉玐砵抨<
,K冬Y`		 ;  070701000636d3000081a40000000000000002000000013ac038bb00000023000000200000000000000000000000000000002d00000003reloc/caldera/steed/images/main-bg-pixel.gif  GIF89a    烫   ,       D ; 070701000636d5000081a40000000000000002000000013ac038bb0000006e000000200000000000000000000000000000002500000003reloc/caldera/steed/images/navbg.gif  GIF89a ,  烫33..((W}11,     , ;X簀n$扐枪'柰`(巇i嶡l刖p,蟭m選|罓pH,徣蒷:熜╰J&  ;  070701000636d6000081a40000000000000002000000013ac038bb0000031f000000200000000000000000000000000000002b00000003reloc/caldera/steed/images/pixel-white.gif    GIF89a    f3 烫虣蘤3 櫶櫃檉3 ffffff3f 3333f333     f 3  烫櫶f3 烫烫烫虣烫f烫3烫 虣虣烫櫃虣f虣3虣 蘤蘤烫f櫶ff蘤3蘤 33烫3櫶3f333   烫 櫶 f 3  虣櫃f3 櫶櫶虣虣櫶f櫶3櫶 櫃櫃虣櫃櫃f櫃3櫃 檉檉虣f櫃ff檉3檉 33虣3櫃3f333   虣 櫃 f 3  ff蘤檉ff3f ff烫f虣f蘤f3f ff櫶f櫃f檉f3f ffff蘤f檉ffff3ff f3f3蘤3檉3ff33f3 f f 蘤 檉 ff 3f  3333f333 33烫3虣3蘤333 33櫶3櫃3檉333 3f3f3f3ff3f33f 33333333f33333 3 3 3 3 f3 33      f 3    烫 虣 蘤 3    櫶 櫃 檉 3   f f f ff f3 f  3 3 3 3f 33 3         f  3                                                                                                                           ,         ; 070701000636d7000081a40000000000000002000000013ac038bb0000002b000000200000000000000000000000000000002600000003reloc/caldera/steed/images/spacer.gif GIF89a   览   !    ,       D ; 070701000636d8000081a40000000000000002000000013ac038bb0000003e000000200000000000000000000000000000003000000003reloc/caldera/steed/images/top-grad-stretch.gif   GIF89a    11..((}3333W   ,       h6#R埥8 ;  070701000636d9000081a40000000000000002000000013ac038bb000017e0000000200000000000000000000000000000002d00000003reloc/caldera/steed/images/webmin-header.gif  GIF89a*#   蒈犷眙pl趞x躥c磠y侗'&汻P訳T觍^謈b豨f21hli谹@~tq跱M昚W;:oGF剋u踷x輢{~鄎p碨Rlk浟+-i#${/0)*!"w4544332211/0T,-68786634""~,,W;<::<=89>>#$s@A23C蠤B=>紼E袳G56烥H89./  ]JJ襃K56朚M覯N襋Q訟A║V覹X誔P綵Z誎K琈N璤_誦c譍G沎\膃f賘j貹L杗n趆h蕇s覀傔ef瓈佢厖釅夅寣銚撲櫄鐫炴nne擻\嚔ｈЖ閹幙档霊懝倐檌iz圹糸辄揪嗜扔妸忬篾栽阱咫槝渨wz鼢&(滲E*,僃I$&aPT()eZ\誛Y竝r躪m蝫y軁醷}軸T弮嗊妽鄳斾棜鋞uが厗务炒屠吗槌冯讣锱锐延瘳ウ饱怃鱷|吹                                                                                                                                                                                                                                                                                                ,    *#   WH盃羶*\劝∶	螛Hqb憢E	翮b艎/j▉	('<犂挜啑05牂y嫣虠8l0kj瀾Ys肔Dk侍蓙殨< IrＦ玐3^l fU璪*2阖眮@╙硕穚闶滽樊莼xA呢朔o>DF'哯1楬`槾孈箁	%8C绬97H8%
d}FurJ萈`毆,a抢g特qe摊)矰"耒師C'r牶蹼爻k呶交黠嗝/＜y谘聞I(L衃?/c圐蹯鄯/嫖 v怹襐@瑕`nk<8 凁1赁v!嘓洄H協 ╕C琖b夨0邑翇8妯銕<鲨銖@)鋹D
0茑7 脩*魣@<aO苄擭:y脳7园d@HqO  N\iVP迸卨乬,b鐫x*"p＄0RF[PR"d(r爢 娕 [(a=t蔵.槊TBY鏅M搁揱zC=*+
告鲫氙+彀腚/馉G $
!D+泶衣0y蜢	' 麄-訿= G	8釀 P2W, S4憖匼驁"翬%l rA!a揂孒zd渜wbE8欏:麴w:嗬J 盌矪 =褎S@懤=豍兏&坂?坌B窩踐艶-踉TW]6$`P 
)劃B/粜D!)淧B	C74t戭	措
,袄.;P埶.蠨PbI] R"($柊鈐<趌劻8恄P伷@ 
$F!蜌禚M@AhJ,P
|PL狩S$?犤,83<秸訵o缓 a(b0V麴u芈 _ b0狆v	.腳8鐯w騀$慏揞蚪 W Pe杪眻K4哷%	8\iX“0@j.v0c *爛$Pa
J C#PA  .K  @厪	鮖牽$BpP @癆魀P?╝飲`惘 5╝_h鍼04*/l
,P侞?衻y:褧v
` 祊 R+q	8D聜寈%0B81敗a8D	-`Cdl嘮`|D*饊@0坠甡ta <@ !\!朲!答睆+	Jpと傽掷6"曲夞涏羻H搬吶:p"J(伆x@G;鈶0x鳞8?@阘怓Pv斗就_KT2'%萈1浉DF(岎# 0屝(恁0g 柘 -齹(唨琅傞2Y2 Khヨ ~鵮	/E^5雇牃4桤2X酹GU2d5WU尻獀劗z5溁*葊	8XU 蠳=|p癪 ,t翈7A魅G舫媰LW柪苦-爛XH. FTb]PD JD0&枢I0$詡0鈚\`溹#即Y濖-qySCX繞Y@新P*`@\
E)挬t练'锤裛jb鴦x莧]]a艰XsE嗶病j鏜oy褗+LA$1*h偖z半'陳傝B努X碠熑抇7蓛年彵	p祆牾1,屃瞛!Ebb8!襭	0t熁.3"/啌牸f襻&3殸擀95 咺2@@$"鱂'81奒7＊]1jz?A]祑虩P儺&戅2S-捐/Z_ 黵B壢  X紆xyJ	,,砌秓蒓\埮_䜣趧) 貉U@懆M+%0{/`劯D泗0A
`eZ鳧菮6@鶴V臽皜 	闵薦G彮剜徸煦>缱G絁cv3"佹O繟W鋷3|,gp枲	l鍎虗灬	書硏0嗭頙	咹#蔖 $z皀+A%4袈屽垤㈦&`a峘fE﹋Ex艎 #.泇C)ˊ,
泪 P簚+?棋.剚iHCRl?辛%,!歁X柡通f[蝗2鼏諫懶兆+鲷~U舔ク綻	8獭y z皥 7鳽
6<R`獹}6殶v颛?M]U4|!}敇/袇溪忴+寷屼
`a
0,UHK5q dx#0咰X x廝{>$}oNW泃.b慧込煟>祎7旄rB古+1[武濗蔪9H夬僝袆4浞q"烨+寔 傪伭o壈麆x"Hq柶r./P餓擛	﹖	嵗8`	榚 Z\pkP郣 紘ZrN {縑|箃A鱕縠kuG求cSgPMOE婴灼u}嗙-軫5j鄛蛤埙	b恾w鱹靻V6d拹	m`U燝'Ip7XH$lp	x剹p?廎?倀.7P镡7蹭/N郰淝_怸桺	仦G朻	_\蠯$侾P@	銺6B9晜Bps:B
pc镜LQ艱殁瓋僆鐃G0MI6胑C,qX婩H5釙^孤顓+鄺f紃b0	憄寫勑+柳	艴苮実+鬜峎``8鍞岉v媭	v  '	mV皑;C'暷	橉m塒Y 梡寭 <iB0i霷P AeJ`纀c`乢 X妧	0\S@[0 洂>&xZ{F缐澑Z繨5KM 寺,瓝K8B郉詖3:pu碭&爑覈,o6( 枧勮un(悑沲劰IXnq衝(袑b鄫c宦n0v慲`g w   巖	Г(}7	橉~	i{	權	k [鄃楗P0}iUH庣?炽LfY泃歶	!擩泅噋qd皯N7Ph 挅嘮痷] Z,+蓲~刞$摃&薘僎剆tw]掌]%0斃湇6呧哵G`}鈪+g~競J賱阤^淫嫼2flVn(^z i pv`pp颳頳鐥$袨z9Wu5v煚S0圑魀;旅 ;0寪Y奝	齢Q ]0\E訰 莡壇時X@	!9 悽枑"8{Q灤L=NPiN鱰IP內袃浉YmN覿郻x&p沦hU髐e~qU~9^+9^p_g讓夜尮R澺Wi9銐栦I炨is	x@$0巙%潛 aVaXH7=7%i	d`Q啺 y觼
皺郻梬y5B0pb恵j@] GT<&Pp9@DS0俻(殀{礕7)#34K觘o3斳-8*}Ud往	顴轷勈鞎^擆淐*^宧\垣忮斻6fq _悿瑗j 瀝	嚓	n庎tp畒	滰e獈愢g尲8f?蠴鑠	qN`PT燩唒e蠵	 ZZ燚ii0	垚圿p佖YP妰燱cpR惏XK\ <7<糞鷗镽3-H3
-u殻礪;J淩璦cu溿鮚鷨}(罆沐S鶙`5f見胡	gЙzpf髸p 帪	x鯑n@_	炧!c&&0t u圍	@鹇I	爦廯	堗 !XHPS圚	擸J囸s
I摖烢B`iD刬~ 絚68u穀M嘱獇敶毘ns
W5Ly}(爋_叴鎲殄昗+_吱粺牬Y俣篟汇%k澯趮箁宍朸#P#@:su(p	GZ0fr;鱯E兜X6w(栃I`L奬KI鵝yb0	0	0悿ぴz孊紻@]$K
3Шd2腹篭V锄湴+擠)OG橿7^A+p+^+曁Jド;藐执m+*n(鹇`gf f	 &@	焒钣孼pM	牊D疮 癢(t虽r靣iXp闦俁R06d暟彇`筧	i@B怰畨14\t;,K=mNЯ挎񇻺QU巢J萝R媻屄T3f然(糳杤臟免錰拓nB;^舛肒宆F双`z-竢	Fv弄嫺RX0fOLaRE<蟛慦 r 鰖Ktc`:
DYL娓D棌pl	旔@M6盚6`B)5s1烦,K腸(j鷆8悛Bc#夵6氍萔#己+(免%8l蓸寯蛤昏丈9际秀卬L,尸>瘻^ZP?S<X膦煃1T尠c餝# 6伄嬥s嬸(顕	榾A隻]耙5B彻(挙C@軀;W 魾&姫鮧Twm`湷% 籶嘨佃E几"燉|涎j峊M/_暽:綔孤	竟	峖Z 薆@HNWi4; 	 #h殘糅gl	麍	w	―烾虌鶽#󟇩崫1]729MD模波z5#2ju敞u8嬙岛萔俱E琸秨F簧熜鹿T}ね让P闇僳蠠衇}( 旨M指g澕姺|靕iS罒{,篍Fk	粐0j蠽孈Ij郻刴粓墠l0僐旨<俜Y9M<煊.霜@xm;垄-'倘S#设uR踈}磃+;_丸瀆Gz蹨溮世+经驶M崧=f E绮継昦偫r矰攥gJ嵃	崘p	杽kQ畢妮0蝑
犡昉哖拮熵`;戥茄舝ずDO,2d浉珊C8嵲(呭&6烊nnYu>\礧>^損NPK懈^>衉	箁衢E3惗蔗@DD/騻鮌沗	戰缟XRV興嶜埃禿d懈找9;nB2=:37\C巨鱞伲u,刷.蔜4*9{略硙N=ュιPm糭^潾钌h炲n謈湍p巀劙MN梐,в廳!揚	jF}z(糤蘈vbsd`狄;捭鏼楗撻#@修HQ7汯戢{M-`x::<;5貁诮略穘^痎鍾穅[}秐n^-^餌TK.p澯W6孈	#=	27崁	l鼝椅d+8y鞮埔:毋庬毨钮蛓<t髰鬊<I.璖M=癕钷eZ':耍VC鎌+疮急Q?^雖庰l^餪5cf姷Xx楬瘺鈺般cP'	)-%韂01潈cP*揭婬Bp揘:榐筌, D\D/FN獋嚅彻侏K"|o
桙鶢?_燏啁? ;0707010005d8b0000081a40000000000000002000000013ac038bb00000189000000200000000000000000000000000000001f00000003reloc/caldera/steed/index.html    <HTML>
<HEAD>
<TITLE>Welcome to Webmin</TITLE>
</HEAD>

 <FRAMESET ROWS="210,*" BORDER="0">
   <FRAME SCROLLING="NO" NORESIZE SRC="index_nav.html" NAME="TOP">
   <FRAME SCROLLING="AUTO" NORESIZE SRC="index_body.html" NAME="BODY">
 </FRAMESET>

<NOFRAME>
<BODY>
If you see the following text, you are using a Web browser that does not support frames.
</BODY>
</NOFRAME>
</HTML>
   0707010005d8b1000081a40000000000000002000000013ac038bb0000025f000000200000000000000000000000000000002400000003reloc/caldera/steed/index_body.html   <HTML>
<HEAD>
  <LINK REL="stylesheet" TYPE="text/css" HREF="css/style.css">
</HEAD>
<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">
  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">
    <TR>
      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">
    </TR>
    <TR>
      <TD WIDTH="20">
		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">
      </TD>
      <TD WIDTH="100%">
		<SPAN CLASS="bodyText">PAGE CONTENT: Home<SPAN>
      </TD>
    </TR>
  </TABLE>
</BODY>
</HTML>
 0707010005d8b2000081a40000000000000002000000013ac038bb00002053000000200000000000000000000000000000002300000003reloc/caldera/steed/index_nav.html    <HTML>

<HEAD>
<TITLE>Servers</TITLE>
<LINK REL="stylesheet" TYPE="text/css" HREF="css/style.css">
</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" LEFTMARGIN="0" TOPMARGIN="0" BACKGROUND="images/navbg.gif">

  <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%" HEIGHT="1" BACKGROUND="">
    <TR>
      <TD HEIGHT="35" ROWSPAN="2" VALIGN="top" ALIGN="left" WIDTH="298"><IMG BORDER="0" SRC="images/webmin-header.gif" WIDTH="298" HEIGHT="35"></TD>
      <TD VALIGN="top" ALIGN="left" HEIGHT="11" WIDTH="100%" BACKGROUND="images/top-grad-stretch.gif"><IMG BORDER="0" SRC="images/top-grad-stretch.gif" WIDTH="482" HEIGHT="11"></TD>
    </TR>
    <TR>
      <TD WIDTH="100%" HEIGHT="1" ALIGN="LEFT" VALIGN="TOP" BACKGROUND="images/navbg.gif">
        <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" BACKGROUND="images/blue-bg.gif" WIDTH="100%">
          <TR>
<!--Tab1--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="webmin.html" CLASS="navInactive">Webmin</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab2--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="system.html" CLASS="navInactive">System</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab3--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="servers.html" CLASS="navInactive">Servers</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab4--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="hardware.html" CLASS="navInactive">Hardware</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab5--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="others.html" CLASS="navInactive">Others</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--H|F-->	<TD WIDTH="20%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="RIGHT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="1"><BR><NOBR><A TARGET="_top" HREF="index.html" CLASS="navInactive2">Home</A><SPAN CLASS="bodyText"> | </SPAN><A TARGET="_top" HREF="mailto:jcameron@webmin.com" CLASS="navInactive2">Feedback</A><IMG SRC="images/spacer.gif" HEIGHT="1" WIDTH="6"></NOBR></TD></TR></TABLE></TD>
          </TR>
        </TABLE>
      </TD>
    </TR>
    <TR>
      <TD COLSPAN="2" WIDTH="100%" HEIGHT="19">
<!-- //VERSION TABLE HERE -->
        <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%">
          <TR>
            <TD BACKGROUND="images/gradient-bg.gif" WIDTH="300" HEIGHT="19"><IMG SRC="images/spacer.gif" WIDTH="95" HEIGHT="1"><SPAN CLASS="EightPoint"><NOBR>Version 0.8 (Redhat Linux 5.2)</NOBR></SPAN></TD>
            <TD BACKGROUND="images/main-bg-pixel.gif" WIDTH="100%" HEIGHT="19"><IMG SRC="images/spacer.gif" WIDTH="1" HEIGHT="1"></TD>
          </TR>
        </TABLE>
<!-- //VERSION TABLE HERE -->
      </TD>
    </TR>
    <TR>
      <TD BACKGROUND="images/main-bg-pixel.gif" COLSPAN="2" WIDTH="100%" VALIGN="TOP" ALIGN="LEFT">
          <TABLE BACKGROUND="images/main-bg-pixel.gif" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0">
			<TR>
			  <TD WIDTH="1%"><IMG SRC="images/spacer.gif" WIDTH="52" HEIGHT="20"></TD><TD WIDTH="32%"><IMG SRC="images/spacer.gif" WIDTH="211" HEIGHT="20"></TD><TD WIDTH="1%"><IMG SRC="images/spacer.gif" WIDTH="52" HEIGHT="20"></TD><TD WIDTH="32%"><IMG SRC="images/spacer.gif" WIDTH="211" HEIGHT="20"></TD><TD WIDTH="1%"><IMG SRC="images/spacer.gif" WIDTH="52" HEIGHT="20"></TD><TD WIDTH="32%"><IMG SRC="images/spacer.gif" WIDTH="211" HEIGHT="20"></TD>
			</TR>
			<TR>
			  <TD width="1%"><a TARGET="BODY" HREF="home/ipaccesscontrol.html"><IMG SRC="images/iconT0-01.gif" WIDTH="55" HEIGHT="24" BORDER="0"></a></TD><TD WIDTH="32%"><a TARGET="BODY" HREF="home/ipaccesscontrol.html" CLASS="bodyNav">IP Access Control</a></TD><TD width="1%"><a TARGET="BODY" HREF="home/portaddress.html"><IMG SRC="images/iconT0-02.gif" WIDTH="55" HEIGHT="24" BORDER="0"></a></TD><TD WIDTH="32%"><a TARGET="BODY" HREF="home/portaddress.html" CLASS="bodyNav">Port and Address</a></TD><TD width="1%"><a TARGET="BODY" HREF="home/logging.html"><IMG SRC="images/iconT0-03.gif" WIDTH="55" HEIGHT="24" BORDER="0"></a></TD><TD WIDTH="32%"><a TARGET="BODY" HREF="home/logging.html" CLASS="bodyNav">Logging</a></TD>
			</TR>
			<TR>
			  <TD width="1%"><a TARGET="BODY" HREF="home/proxys.html"><IMG SRC="images/iconT0-04.gif" WIDTH="55" HEIGHT="24" BORDER="0"></a></TD><TD WIDTH="32%"><a TARGET="BODY" HREF="home/proxys.html" CLASS="bodyNav">Proxy Servers</a></TD><TD width="1%"><a TARGET="BODY" HREF="home/useri.html"><IMG SRC="images/iconT0-05.gif" WIDTH="55" HEIGHT="24" BORDER="0"></a></TD><TD WIDTH="32%"><a TARGET="BODY" HREF="home/useri.html" CLASS="bodyNav">User Interface</a></TD><TD width="1%"><a TARGET="BODY" HREF="home/webminmods.html"><IMG SRC="images/iconT0-06.gif" WIDTH="55" HEIGHT="24" BORDER="0"></a></TD><TD WIDTH="32%"><a TARGET="BODY" HREF="home/webminmods.html" CLASS="bodyNav">Webmin Modules</a></TD>
			</TR>
			<TR>
			  <TD width="1%"><a TARGET="BODY" HREF="home/os.html"><IMG SRC="images/iconT0-07.gif" WIDTH="55" HEIGHT="24" BORDER="0"></a></TD><TD WIDTH="32%"><a TARGET="BODY" HREF="home/os.html" CLASS="bodyNav">Operating System</a></TD><TD width="1%"><a TARGET="BODY" HREF="home/lang.html"><IMG SRC="images/iconT0-08.gif" WIDTH="55" HEIGHT="24" BORDER="0"></a></TD><TD WIDTH="32%"><a TARGET="BODY" HREF="home/lang.html" CLASS="bodyNav">Language</a></TD><TD width="1%"><a TARGET="BODY" HREF="home/indexpageopts.html"><IMG SRC="images/iconT0-09.gif" WIDTH="55" HEIGHT="24" BORDER="0"></a></TD><TD WIDTH="32%"><a TARGET="BODY" HREF="home/indexpageopts.html" CLASS="bodyNav">Index Page Options</a></TD>
			</TR>
			<TR>
			  <TD width="1%"><a TARGET="BODY" HREF="home/upgradewebmin.html"><IMG SRC="images/iconT0-10.gif" WIDTH="55" HEIGHT="24" BORDER="0"></a></TD><TD WIDTH="32%"><a TARGET="BODY" HREF="home/upgradewebmin.html" CLASS="bodyNav">Upgrade Webmin</a></TD><TD width="1%"><a TARGET="BODY" HREF="home/authentication.html"><IMG SRC="images/iconT0-11.gif" WIDTH="55" HEIGHT="24" BORDER="0"></a></TD><TD WIDTH="32%"><a TARGET="BODY" HREF="home/authentication.html" CLASS="bodyNav">Authentication</a></TD><TD width="1%"><a TARGET="BODY" HREF="home/reassignmods.html"><IMG SRC="images/iconT0-12.gif" WIDTH="55" HEIGHT="24" BORDER="0"></a></TD><TD WIDTH="32%"><a TARGET="BODY" HREF="home/reassignmods.html" CLASS="bodyNav">Reassign Modules</a></TD>
			</TR>
			<TR>
			  <TD width="1%"><a TARGET="BODY" HREF="home/editcats.html"><IMG SRC="images/iconT0-13.gif" WIDTH="55" HEIGHT="24" BORDER="0"></a></TD><TD WIDTH="32%"><a TARGET="BODY" HREF="home/editcats.html" CLASS="bodyNav">Edit Categories</a></TD><TD width="1%"><IMG SRC="images/iconblank.gif" BORDER="0"></TD><TD WIDTH="32%">&nbsp;</TD><TD width="1%"><IMG SRC="images/iconblank.gif" BORDER="0"></TD><TD WIDTH="32%">&nbsp;</TD>
			</TR>
			<TR>
			  <TD COLSPAN="6"><IMG SRC="images/spacer.gif" WIDTH="10" HEIGHT="100"></TD>
			</TR>
		  </TABLE>
      </TD>
    </TR>
  </TABLE>

</BODY>

</HTML>
 0707010005d8b3000081a40000000000000002000000013ac038bb00000188000000200000000000000000000000000000002000000003reloc/caldera/steed/others.html   <HTML>
<HEAD>
<TITLE>Webmin: Others</TITLE>
</HEAD>

 <FRAMESET ROWS="109,*" BORDER="0">
   <FRAME SCROLLING="NO" NORESIZE SRC="others_nav.html" NAME="TOP">
   <FRAME SCROLLING="AUTO" NORESIZE SRC="others_body.html" NAME="BODY">
 </FRAMESET>

<NOFRAME>
<BODY>
If you see the following text, you are using a Web browser that does not support frames.
</BODY>
</NOFRAME>
</HTML>
07070100064d20000041ed0000000000000001000000023ac03bb300000000000000200000000000000000000000000000001b00000003reloc/caldera/steed/others    07070100064d21000081a40000000000000002000000013ac038bb00000291000000200000000000000000000000000000002700000003reloc/caldera/steed/others/custom.html    <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Custom Commands<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>   07070100064d22000081a40000000000000002000000013ac038bb0000028e000000200000000000000000000000000000002500000003reloc/caldera/steed/others/file.html  <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: File Manager<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>  07070100064d23000081a40000000000000002000000013ac038bb0000028e000000200000000000000000000000000000002700000003reloc/caldera/steed/others/telnet.html    <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Telnet Login<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>  0707010005d8b4000081a40000000000000002000000013ac038bb00000261000000200000000000000000000000000000002500000003reloc/caldera/steed/others_body.html  <HTML>
<HEAD>
  <LINK REL="stylesheet" TYPE="text/css" HREF="css/style.css">
</HEAD>
<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">
  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">
    <TR>
      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">
    </TR>
    <TR>
      <TD WIDTH="20">
		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">
      </TD>
      <TD WIDTH="100%">
		<SPAN CLASS="bodyText">PAGE CONTENT: Others<SPAN>
      </TD>
    </TR>
  </TABLE>
</BODY>
</HTML>
   0707010005d8b5000081a40000000000000002000000013ac038bb00001603000000200000000000000000000000000000002400000003reloc/caldera/steed/others_nav.html   <HTML>

<HEAD>
<TITLE>Servers</TITLE>
<LINK REL="stylesheet" TYPE="text/css" HREF="css/style.css">
</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" LEFTMARGIN="0" TOPMARGIN="0" BACKGROUND="images/navbg.gif">

  <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%" HEIGHT="1" BACKGROUND="">
    <TR>
      <TD HEIGHT="35" ROWSPAN="2" VALIGN="top" ALIGN="left" WIDTH="298"><IMG BORDER="0" SRC="images/webmin-header.gif" WIDTH="298" HEIGHT="35"></TD>
      <TD VALIGN="top" ALIGN="left" HEIGHT="11" WIDTH="100%" BACKGROUND="images/top-grad-stretch.gif"><IMG BORDER="0" SRC="images/top-grad-stretch.gif" WIDTH="482" HEIGHT="11"></TD>
    </TR>
    <TR>
      <TD WIDTH="100%" HEIGHT="1" ALIGN="LEFT" VALIGN="TOP" BACKGROUND="images/navbg.gif">
        <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" BACKGROUND="images/blue-bg.gif" WIDTH="100%">
          <TR>
<!--Tab1--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="webmin.html" CLASS="navInactive">Webmin</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab2--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="system.html" CLASS="navInactive">System</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab3--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="servers.html" CLASS="navInactive">Servers</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab4--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="hardware.html" CLASS="navInactive">Hardware</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab5--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-on.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><SPAN CLASS="navActive2">Others</SPAN></CENTER></TD></TR></TABLE></NOBR></TD>
<!--H|F-->	<TD WIDTH="20%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="RIGHT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="1"><BR><NOBR><A TARGET="_top" HREF="index.html" CLASS="navInactive2">Home</A><SPAN CLASS="bodyText"> | </SPAN><A TARGET="_top" HREF="mailto:jcameron@webmin.com" CLASS="navInactive2">Feedback</A><IMG SRC="images/spacer.gif" HEIGHT="1" WIDTH="6"></NOBR></TD></TR></TABLE></TD>
          </TR>
        </TABLE>
      </TD>
    </TR>
    <TR>
      <TD COLSPAN="2" WIDTH="100%" HEIGHT="19">
<!-- --VERSION TABLE HERE -->
        <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%">
          <TR>
            <TD BACKGROUND="images/gradient-bg.gif" WIDTH="300" HEIGHT="19"><IMG SRC="images/spacer.gif" WIDTH="95" HEIGHT="1"><SPAN CLASS="EightPoint"><NOBR>Version 0.8 (Redhat Linux 5.2)</NOBR></SPAN></TD>
            <TD BACKGROUND="images/main-bg-pixel.gif" WIDTH="100%" HEIGHT="19"><IMG SRC="images/spacer.gif" WIDTH="1" HEIGHT="1"></TD>
          </TR>
        </TABLE>
<!-- //VERSION TABLE HERE -->
      </TD>
    </TR>
    <TR>
      <TD BACKGROUND="images/main-bg-pixel.gif" COLSPAN="2" WIDTH="100%" VALIGN="TOP" ALIGN="LEFT">
          <TABLE BACKGROUND="images/main-bg-pixel.gif" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0">
			<TR>
			  <TD WIDTH="1%"><IMG SRC="images/spacer.gif" WIDTH="52" HEIGHT="20"></TD><TD WIDTH="32%"><IMG SRC="images/spacer.gif" WIDTH="211" HEIGHT="20"></TD><TD WIDTH="1%"><IMG SRC="images/spacer.gif" WIDTH="52" HEIGHT="20"></TD><TD WIDTH="32%"><IMG SRC="images/spacer.gif" WIDTH="211" HEIGHT="20"></TD><TD WIDTH="1%"><IMG SRC="images/spacer.gif" WIDTH="52" HEIGHT="20"></TD><TD WIDTH="32%"><IMG SRC="images/spacer.gif" WIDTH="211" HEIGHT="20"></TD>
			</TR>
			<TR>
			  <TD width="1%"><A TARGET="BODY" HREF="others/custom.html"><IMG SRC="images/iconT5-01.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD ALIGN="LEFT" WIDTH="32%"><A TARGET="BODY" HREF="others/custom.html" CLASS="bodyNav">Custom Commands</A></TD><TD width="1%"><A TARGET="BODY" HREF="others/file.html"><IMG SRC="images/iconT5-02.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="others/file.html" CLASS="bodyNav">File Manager</A></TD><TD width="1%"><A TARGET="BODY" HREF="others/telnet.html"><IMG SRC="images/iconT5-03.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></CENTER></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="others/telnet.html" CLASS="bodyNav">Telnet Login</A></TD>
			</TR>
			<TR>
			  <TD COLSPAN="6"><IMG SRC="images/spacer.gif" WIDTH="10" HEIGHT="100"></TD>
			</TR>
		  </TABLE>
      </TD>
    </TR>
  </TABLE>

</BODY>

</HTML>
 0707010005d8b6000081a40000000000000002000000013ac038bb000001cb000000200000000000000000000000000000002100000003reloc/caldera/steed/servers.html  <HTML>
<HEAD>
<TITLE>Webmin: Servers</TITLE>
  <LINK REL="stylesheet" TYPE="text/css" HREF="css/style.css">
</HEAD>

 <FRAMESET ROWS="214,*" BORDER="0">
   <FRAME SCROLLING="NO" NORESIZE SRC="servers_nav.html" NAME="TOP">
   <FRAME SCROLLING="AUTO" NORESIZE SRC="servers_body.html" NAME="BODY">
 </FRAMESET>

<NOFRAME>
<BODY>
If you see the following text, you are using a Web browser that does not support frames.
</BODY>
</NOFRAME>
</HTML>
 07070100066605000041ed0000000000000001000000023ac03bb400000000000000200000000000000000000000000000001c00000003reloc/caldera/steed/servers   07070100066606000081a40000000000000002000000013ac038bb00000294000000200000000000000000000000000000002b00000003reloc/caldera/steed/servers/ap_apmods.html    <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT:  Apache Modules <SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>
07070100066607000081a40000000000000002000000013ac038bb00000292000000200000000000000000000000000000002800000003reloc/caldera/steed/servers/ap_cgi.html   <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT:  CGI Programs <SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>
  07070100066608000081a40000000000000002000000013ac038bb0000029d000000200000000000000000000000000000003100000003reloc/caldera/steed/servers/ap_editdefparam.html  <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT:  Edit Defined Parameters <SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>
   07070100066609000081a40000000000000002000000013ac038bb00000290000000200000000000000000000000000000002900000003reloc/caldera/steed/servers/ap_mime.html  <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT:  MIME Types <SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>
0707010006660a000081a40000000000000002000000013ac038bb00000293000000200000000000000000000000000000002900000003reloc/caldera/steed/servers/ap_misc.html  <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT:  Miscellaneous <SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>
 0707010006660b000081a40000000000000002000000013ac038bb0000029e000000200000000000000000000000000000002c00000003reloc/caldera/steed/servers/ap_net_add.html   <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT:  Networking and Addresses <SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>
  0707010006660c000081a40000000000000002000000013ac038bb000002a1000000200000000000000000000000000000002f00000003reloc/caldera/steed/servers/ap_pdoptfiles.html    <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT:  Per-Directory Options Files <SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>
   0707010006660d000081a40000000000000002000000013ac038bb0000029a000000200000000000000000000000000000003100000003reloc/caldera/steed/servers/ap_procs_limits.html  <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT:  Processes and Limits <SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>
  0707010006660e000081a40000000000000002000000013ac038bb000002a0000000200000000000000000000000000000003200000003reloc/caldera/steed/servers/ap_reconknowmods.html <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT:  Re-Configure Known Modules <SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>
0707010006660f000081a40000000000000002000000013ac038bb000001d2000000200000000000000000000000000000002800000003reloc/caldera/steed/servers/apache.html   <HTML>

<HEAD>
<TITLE>Servers - Apache</TITLE>
  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">
</HEAD>

 <FRAMESET ROWS="121,*" BORDER="0">
   <FRAME SCROLLING="NO" NORESIZE SRC="../apache_nav.html" NAME="TOP">
   <FRAME SCROLLING="AUTO" NORESIZE SRC="apache_body.html" NAME="BODY">
 </FRAMESET>

<NOFRAME>
<BODY>
If you see the following text, you are using a Web browser that does not support frames.
</BODY>
</NOFRAME>
</HTML>
  07070100066610000081a40000000000000002000000013ac038bb0000026f000000200000000000000000000000000000002d00000003reloc/caldera/steed/servers/apache_body.html  <HTML>
<HEAD>
  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">
</HEAD>
<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">
  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">
    <TR>
      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">
    </TR>
    <TR>
      <TD WIDTH="20">
		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">
      </TD>
      <TD WIDTH="100%">
		<SPAN CLASS="bodyText">PAGE CONTENT: Apache WebServers<SPAN>
      </TD>
    </TR>
  </TABLE>
</BODY>
</HTML>
 07070100066611000081a40000000000000002000000013ac038bb00000293000000200000000000000000000000000000002700000003reloc/caldera/steed/servers/bind8.html    <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT:  BIND DNS Server <SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML> 07070100066612000081a40000000000000002000000013ac038bb0000028f000000200000000000000000000000000000002700000003reloc/caldera/steed/servers/dhcpd.html    <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT:  DHCP Server <SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML> 07070100066613000081a40000000000000002000000013ac038bb00000293000000200000000000000000000000000000002a00000003reloc/caldera/steed/servers/dnsadmin.html <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: BIND 4 DNS Server<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML> 07070100066614000081a40000000000000002000000013ac038bb000002a1000000200000000000000000000000000000002700000003reloc/caldera/steed/servers/inetd.html    <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Internet Services and Protocols<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>   07070100066615000081a40000000000000002000000013ac038bb00000298000000200000000000000000000000000000002b00000003reloc/caldera/steed/servers/majordomo.html    <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Majordomo List Manager<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>07070100066616000081a40000000000000002000000013ac038bb00000297000000200000000000000000000000000000002700000003reloc/caldera/steed/servers/mysql.html    <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: MySQL Database Server<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML> 07070100066617000081a40000000000000002000000013ac038bb0000028e000000200000000000000000000000000000002500000003reloc/caldera/steed/servers/pap.html  <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: PPP Accounts<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>  07070100066618000081a40000000000000002000000013ac038bb00000297000000200000000000000000000000000000002900000003reloc/caldera/steed/servers/postfix.html  <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Postfix Configuration<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML> 07070100066619000081a40000000000000002000000013ac038bb0000029c000000200000000000000000000000000000002c00000003reloc/caldera/steed/servers/postgresql.html   <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: PostgreSQL Database Server<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>0707010006661a000081a40000000000000002000000013ac038bb0000029c000000200000000000000000000000000000002700000003reloc/caldera/steed/servers/samba.html    <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Samba Windows File Sharing<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>0707010006661b000081a40000000000000002000000013ac038bb00000298000000200000000000000000000000000000002a00000003reloc/caldera/steed/servers/sendmail.html <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Sendmail Configuration<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>0707010006661c000081a40000000000000002000000013ac038bb00000294000000200000000000000000000000000000002700000003reloc/caldera/steed/servers/squid.html    <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Squid Proxy Server<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>0707010006661d000081a40000000000000002000000013ac038bb0000028c000000200000000000000000000000000000002800000003reloc/caldera/steed/servers/wuftpd.html   <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: FTP Server<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>0707010005d8b7000081a40000000000000002000000013ac038bb00000262000000200000000000000000000000000000002600000003reloc/caldera/steed/servers_body.html <HTML>
<HEAD>
  <LINK REL="stylesheet" TYPE="text/css" HREF="css/style.css">
</HEAD>
<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">
  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">
    <TR>
      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">
    </TR>
    <TR>
      <TD WIDTH="20">
		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">
      </TD>
      <TD WIDTH="100%">
		<SPAN CLASS="bodyText">PAGE CONTENT: Servers<SPAN>
      </TD>
    </TR>
  </TABLE>
</BODY>
</HTML>
  0707010005d8b8000081a40000000000000002000000013ac038bb0000211a000000200000000000000000000000000000002500000003reloc/caldera/steed/servers_nav.html  <HTML>

<HEAD>
<TITLE>Servers</TITLE>
<LINK REL="stylesheet" TYPE="text/css" HREF="css/style.css">
</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" LEFTMARGIN="0" TOPMARGIN="0" BACKGROUND="images/navbg.gif">

  <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%" HEIGHT="1">
    <TR>
      <TD HEIGHT="35" ROWSPAN="2" VALIGN="top" ALIGN="left" WIDTH="298"><IMG BORDER="0" SRC="images/webmin-header.gif" WIDTH="298" HEIGHT="35"></TD>
      <TD VALIGN="top" ALIGN="left" HEIGHT="11" WIDTH="100%" BACKGROUND="images/top-grad-stretch.gif"><IMG BORDER="0" SRC="images/top-grad-stretch.gif" WIDTH="482" HEIGHT="11"></TD>
    </TR>
    <TR>
      <TD WIDTH="100%" HEIGHT="1" ALIGN="LEFT" VALIGN="TOP" BACKGROUND="images/navbg.gif">
        <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" BACKGROUND="images/blue-bg.gif" WIDTH="100%">
          <TR>
<!--Tab1--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="webmin.html" CLASS="navInactive">Webmin</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab2--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="system.html" CLASS="navInactive">System</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab3--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-on.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><SPAN CLASS="navActive2">Servers</SPAN></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab4--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="hardware.html" CLASS="navInactive">Hardware</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab5--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="others.html" CLASS="navInactive">Others</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--H|F-->	<TD WIDTH="20%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="RIGHT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="1"><BR><NOBR><A TARGET="_top" HREF="index.html" CLASS="navInactive2">Home</A><SPAN CLASS="bodyText"> | </SPAN><A TARGET="_top" HREF="mailto:jcameron@webmin.com" CLASS="navInactive2">Feedback</A><IMG SRC="images/spacer.gif" HEIGHT="1" WIDTH="6"></NOBR></TD></TR></TABLE></TD>
          </TR>
        </TABLE>
      </TD>
    </TR>
    <TR>
      <TD COLSPAN="2" WIDTH="100%" HEIGHT="19">
<!-- --VERSION TABLE HERE -->
        <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%">
          <TR>
            <TD BACKGROUND="images/gradient-bg.gif" WIDTH="300" HEIGHT="19"><IMG SRC="images/spacer.gif" WIDTH="95" HEIGHT="1"><SPAN CLASS="EightPoint"><NOBR>Version 0.8 (Redhat Linux 5.2)</NOBR></SPAN></TD>
            <TD BACKGROUND="images/main-bg-pixel.gif" WIDTH="100%" HEIGHT="19"><IMG SRC="images/spacer.gif" WIDTH="1" HEIGHT="1"></TD>
          </TR>
        </TABLE>
<!-- //VERSION TABLE HERE -->
      </TD>
    </TR>
    <TR>
      <TD BACKGROUND="images/main-bg-pixel.gif" COLSPAN="2" WIDTH="100%" VALIGN="TOP" ALIGN="LEFT">
          <TABLE BACKGROUND="images/main-bg-pixel.gif" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0">
			<TR>
			  <TD WIDTH="1%"><IMG SRC="images/spacer.gif" WIDTH="52" HEIGHT="20"></TD><TD WIDTH="32%"><IMG SRC="images/spacer.gif" WIDTH="211" HEIGHT="20"></TD><TD WIDTH="1%"><IMG SRC="images/spacer.gif" WIDTH="52" HEIGHT="20"></TD><TD WIDTH="32%"><IMG SRC="images/spacer.gif" WIDTH="211" HEIGHT="20"></TD><TD WIDTH="1%"><IMG SRC="images/spacer.gif" WIDTH="52" HEIGHT="20"></TD><TD WIDTH="32%"><IMG SRC="images/spacer.gif" WIDTH="211" HEIGHT="20"></TD>
			</TR>
			<TR>
			  <TD width="1%"><A TARGET="BODY" HREF="servers/apache.html"><IMG SRC="images/iconT3-01.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="servers/apache.html" CLASS="bodyNav">Apache Webserver</A></TD><TD width="1%"><A TARGET="BODY" HREF="servers/dnsadmin.html"><IMG SRC="images/iconT3-02.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="servers/dnsadmin.html" CLASS="bodyNav">BIND 4 DNS Server</A></TD><TD width="1%"><A TARGET="BODY" HREF="servers/bind8.html"><IMG SRC="images/iconT3-03.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></CENTER></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="servers/bind8.html" CLASS="bodyNav">BIND DNS Server</A></TD>
			</TR>
			<TR>
			  <TD width="1%"><A TARGET="BODY" HREF="servers/dhcpd.html"><IMG SRC="images/iconT3-04.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="servers/dhcpd.html" CLASS="bodyNav">DHCP Server</A></TD><TD width="1%"><A TARGET="BODY" HREF="servers/wuftpd.html"><IMG SRC="images/iconT3-05.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="servers/wuftpd.html" CLASS="bodyNav">FTP Server</A></TD><TD width="1%"><A TARGET="BODY" HREF="servers/inetd.html"><IMG SRC="images/iconT3-06.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="servers/inetd.html" CLASS="bodyNav">Internet Services and Protocols</A></TD>
			</TR>
			<TR>
			  <TD width="1%"><A TARGET="BODY" HREF="servers/majordomo.html"><IMG SRC="images/iconT3-07.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="servers/majordomo.html" CLASS="bodyNav">Majordomo List Manager</A></TD><TD width="1%"><A TARGET="BODY" HREF="servers/mysql.html"><IMG SRC="images/iconT3-08.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="servers/mysql.html" CLASS="bodyNav">MySQL Database Server</A></TD><TD width="1%"><A TARGET="BODY" HREF="servers/pap.html"><IMG SRC="images/iconT3-09.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="servers/pap.html" CLASS="bodyNav">PPP Accounts</A></TD>
			</TR>
			<TR>
			  <TD width="1%"><A TARGET="BODY" HREF="servers/postfix.html"><IMG SRC="images/iconT3-10.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="servers/postfix.html" CLASS="bodyNav">Postfix Configuration</A></TD><TD width="1%"><A TARGET="BODY" HREF="servers/postgresql.html"><IMG SRC="images/iconT3-11.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="servers/postgresql.html" CLASS="bodyNav">PostgreSQL Database Server</A></TD><TD width="1%"><A TARGET="BODY" HREF="servers/samba.html"><IMG SRC="images/iconT3-12.gif" WIDTH="55" HEIGHT="24" BORDER="0"></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="servers/samba.html" CLASS="bodyNav">Samba Windows File Sharing</A></TD>
			</TR>
			<TR>
			  <TD width="1%"><A TARGET="BODY" HREF="servers/sendmail.html"><IMG SRC="images/iconT3-13.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="servers/sendmail.html" CLASS="bodyNav">Sendmail Configuration</A></TD><TD width="1%"><A TARGET="BODY" HREF="servers/squid.html"><IMG SRC="images/iconT3-14.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="servers/squid.html" CLASS="bodyNav">Squid Proxy Server</A></TD><TD width="1%"><IMG SRC="images/iconblank.gif" WIDTH="55" HEIGHT="24" BORDER="0"></TD><TD WIDTH="32%">&nbsp;</TD>
			</TR>
			<TR>
			  <TD COLSPAN="6"><IMG SRC="images/spacer.gif" WIDTH="10" HEIGHT="100"></TD>
			</TR>
		  </TABLE>
      </TD>
    </TR>
  </TABLE>

</BODY>

</HTML>
  0707010005d8b9000081a40000000000000002000000013ac038bb00000188000000200000000000000000000000000000002000000003reloc/caldera/steed/system.html   <HTML>
<HEAD>
<TITLE>Webmin: System</TITLE>
</HEAD>

 <FRAMESET ROWS="180,*" BORDER="0">
   <FRAME SCROLLING="NO" NORESIZE SRC="system_nav.html" NAME="TOP">
   <FRAME SCROLLING="AUTO" NORESIZE SRC="system_body.html" NAME="BODY">
 </FRAMESET>

<NOFRAME>
<BODY>
If you see the following text, you are using a Web browser that does not support frames.
</BODY>
</NOFRAME>
</HTML>
07070100067b65000041ed0000000000000001000000023ac03bb400000000000000200000000000000000000000000000001b00000003reloc/caldera/steed/system    07070100067b8d000081a40000000000000002000000013ac038bb00000295000000200000000000000000000000000000002500000003reloc/caldera/steed/system/cron.html  <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Scheduled Cron Jobs<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>   07070100067b8e000081a40000000000000002000000013ac038bb0000028d000000200000000000000000000000000000002800000003reloc/caldera/steed/system/exports.html   <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: NFS Exports<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>   07070100067b8f000081a40000000000000002000000013ac038bb00000295000000200000000000000000000000000000002500000003reloc/caldera/steed/system/init.html  <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Bootup and Shutdown<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>   07070100067b90000081a40000000000000002000000013ac038bb00000299000000200000000000000000000000000000002800000003reloc/caldera/steed/system/inittab.html   <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: SysV Init Configuration<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>   07070100067b91000081a40000000000000002000000013ac038bb0000028e000000200000000000000000000000000000002400000003reloc/caldera/steed/system/man.html   <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Manual Pages<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>  07070100067b92000081a40000000000000002000000013ac038bb0000029e000000200000000000000000000000000000002600000003reloc/caldera/steed/system/mount.html <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Disk and Network Filesystems<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>  07070100067b93000081a40000000000000002000000013ac038bb00000293000000200000000000000000000000000000002500000003reloc/caldera/steed/system/proc.html  <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Running Processes<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML> 07070100067b94000081a40000000000000002000000013ac038bb0000028d000000200000000000000000000000000000002600000003reloc/caldera/steed/system/quota.html <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Disk Quotas<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>   07070100067b95000081a40000000000000002000000013ac038bb00000293000000200000000000000000000000000000002900000003reloc/caldera/steed/system/software.html  <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Software Packages<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML> 07070100067b96000081a40000000000000002000000013ac038bb0000028d000000200000000000000000000000000000002700000003reloc/caldera/steed/system/syslog.html    <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: System Logs<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>   07070100067b97000081a40000000000000002000000013ac038bb00000292000000200000000000000000000000000000002a00000003reloc/caldera/steed/system/useradmin.html <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Users and Groups<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>  0707010005d8ba000081a40000000000000002000000013ac038bb00000261000000200000000000000000000000000000002500000003reloc/caldera/steed/system_body.html  <HTML>
<HEAD>
  <LINK REL="stylesheet" TYPE="text/css" HREF="css/style.css">
</HEAD>
<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">
  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">
    <TR>
      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">
    </TR>
    <TR>
      <TD WIDTH="20">
		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">
      </TD>
      <TD WIDTH="100%">
		<SPAN CLASS="bodyText">PAGE CONTENT: System<SPAN>
      </TD>
    </TR>
  </TABLE>
</BODY>
</HTML>
   0707010005d8bb000081a40000000000000002000000013ac038bb00001dda000000200000000000000000000000000000002400000003reloc/caldera/steed/system_nav.html   <HTML>

<HEAD>
<TITLE>System</TITLE>
<LINK REL="stylesheet" TYPE="text/css" HREF="css/style.css">
</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" LEFTMARGIN="0" TOPMARGIN="0" BACKGROUND="images/navbg.gif">

  <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%" HEIGHT="1">
    <TR>
      <TD HEIGHT="35" ROWSPAN="2" VALIGN="top" ALIGN="left" WIDTH="298"><IMG BORDER="0" SRC="images/webmin-header.gif" WIDTH="298" HEIGHT="35"></TD>
      <TD VALIGN="top" ALIGN="left" HEIGHT="11" WIDTH="100%" BACKGROUND="images/top-grad-stretch.gif"><IMG BORDER="0" SRC="images/top-grad-stretch.gif" WIDTH="482" HEIGHT="11"></TD>
    </TR>
    <TR>
      <TD WIDTH="100%" HEIGHT="1" ALIGN="LEFT" VALIGN="TOP" BACKGROUND="images/navbg.gif">
        <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" BACKGROUND="images/blue-bg.gif" WIDTH="100%">
          <TR>
<!--Tab1--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="webmin.html" CLASS="navInactive">Webmin</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab2--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-on.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><SPAN CLASS="navActive2">System</SPAN></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab3--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="servers.html" CLASS="navInactive">Servers</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab4--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="hardware.html" CLASS="navInactive">Hardware</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab5--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="others.html" CLASS="navInactive">Others</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--H|F-->	<TD WIDTH="20%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="RIGHT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="1"><BR><NOBR><A TARGET="_top" HREF="index.html" CLASS="navInactive2">Home</A><SPAN CLASS="bodyText"> | </SPAN><A TARGET="_top" HREF="mailto:jcameron@webmin.com" CLASS="navInactive2">Feedback</A><IMG SRC="images/spacer.gif" HEIGHT="1" WIDTH="6"></NOBR></TD></TR></TABLE></TD>
          </TR>
        </TABLE>
      </TD>
    </TR>
    <TR>
      <TD COLSPAN="2" WIDTH="100%" HEIGHT="19">
<!-- --VERSION TABLE HERE -->
        <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%">
          <TR>
            <TD BACKGROUND="images/gradient-bg.gif" WIDTH="300" HEIGHT="19"><IMG SRC="images/spacer.gif" WIDTH="95" HEIGHT="1"><SPAN CLASS="EightPoint"><NOBR>Version 0.8 (Redhat Linux 5.2)</NOBR></SPAN></TD>
            <TD BACKGROUND="images/main-bg-pixel.gif" WIDTH="100%" HEIGHT="19"><IMG SRC="images/spacer.gif" WIDTH="1" HEIGHT="1"></TD>
          </TR>
        </TABLE>
<!-- //VERSION TABLE HERE -->
      </TD>
    </TR>
    <TR>
      <TD BACKGROUND="images/main-bg-pixel.gif" COLSPAN="2" WIDTH="100%" VALIGN="TOP" ALIGN="LEFT">
          <TABLE BACKGROUND="images/main-bg-pixel.gif" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0">
			<TR>
			  <TD WIDTH="1%"><IMG SRC="images/spacer.gif" WIDTH="52" HEIGHT="20"></TD><TD WIDTH="32%"><IMG SRC="images/spacer.gif" WIDTH="211" HEIGHT="20"></TD><TD WIDTH="1%"><IMG SRC="images/spacer.gif" WIDTH="52" HEIGHT="20"></TD><TD WIDTH="32%"><IMG SRC="images/spacer.gif" WIDTH="211" HEIGHT="20"></TD><TD WIDTH="1%"><IMG SRC="images/spacer.gif" WIDTH="52" HEIGHT="20"></TD><TD WIDTH="32%"><IMG SRC="images/spacer.gif" WIDTH="211" HEIGHT="20"></TD>
			</TR>
			<TR>
			  <TD width="1%"><A TARGET="BODY" HREF="system/init.html"><IMG SRC="images/icon01.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="system/init.html" CLASS="bodyNav">Bootup and Shutdown</A></TD><TD width="1%"><A TARGET="BODY" HREF="system/man.html"><IMG SRC="images/icon02.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="system/man.html" CLASS="bodyNav">Manual Pages</A></TD><TD width="1%"><A TARGET="BODY" HREF="system/cron.html"><IMG SRC="images/icon03.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></CENTER></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="system/cron.html" CLASS="bodyNav">Scheduled Cron Jobs</A></TD>
			</TR>
			<TR>
			  <TD width="1%"><A TARGET="BODY" HREF="system/syslog.html"><IMG SRC="images/icon04.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="system/syslog.html" CLASS="bodyNav">System Logs</A></TD><TD width="1%"><A TARGET="BODY" HREF="system/quota.html"><IMG SRC="images/icon05.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="system/quota.html" CLASS="bodyNav">Disk Quotas</A></TD><TD width="1%"><A TARGET="BODY" HREF="system/exports.html"><IMG SRC="images/icon06.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="system/exports.html" CLASS="bodyNav">NFS Exports</A></TD>
			</TR>
			<TR>
			  <TD width="1%"><A TARGET="BODY" HREF="system/software.html"><IMG SRC="images/icon07.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="system/software.html" CLASS="bodyNav">Software Packages</A></TD><TD width="1%"><A TARGET="BODY" HREF="system/useradmin.html"><IMG SRC="images/icon08.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="system/useradmin.html" CLASS="bodyNav">Users and Groups</A></TD><TD width="1%"><A TARGET="BODY" HREF="system/mount.html"><IMG SRC="images/icon09.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="system/mount.html" CLASS="bodyNav">Disk and Network Filesystems</A></TD>
			</TR>
			<TR>
			  <TD width="1%"><A TARGET="BODY" HREF="system/proc.html"><IMG SRC="images/icon10.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="system/proc.html" CLASS="bodyNav">Running Processes</A></TD><TD width="1%"><A TARGET="BODY" HREF="system/inittab.html"><IMG SRC="images/icon11.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="32%"><A TARGET="BODY" HREF="system/inittab.html" CLASS="bodyNav">SysV Init Configuration</A></TD><TD width="1%"><IMG SRC="images/iconblank.gif" WIDTH="55" HEIGHT="24" BORDER="0"></TD><TD WIDTH="32%">&nbsp;</TD>
			</TR>
			<TR>
			  <TD COLSPAN="6"><IMG SRC="images/spacer.gif" WIDTH="10" HEIGHT="100"></TD>
			</TR>
		  </TABLE>
      </TD>
    </TR>
  </TABLE>

</BODY>

</HTML>
  0707010005d8bc000081a40000000000000002000000013ac038bb00000188000000200000000000000000000000000000002000000003reloc/caldera/steed/webmin.html   <HTML>
<HEAD>
<TITLE>Webmin: Webmin</TITLE>
</HEAD>

 <FRAMESET ROWS="130,*" BORDER="0">
   <FRAME SCROLLING="NO" NORESIZE SRC="webmin_nav.html" NAME="TOP">
   <FRAME SCROLLING="AUTO" NORESIZE SRC="webmin_body.html" NAME="BODY">
 </FRAMESET>

<NOFRAME>
<BODY>
If you see the following text, you are using a Web browser that does not support frames.
</BODY>
</NOFRAME>
</HTML>
070701000692f5000041ed0000000000000001000000023ac03bb500000000000000200000000000000000000000000000001b00000003reloc/caldera/steed/webmin    070701000692f6000081a40000000000000002000000013ac038bb0000028e000000200000000000000000000000000000002a00000003reloc/caldera/steed/webmin/webminacl.html <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Webmin Users<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>  070701000692f7000081a40000000000000002000000013ac038bb0000028e000000200000000000000000000000000000002b00000003reloc/caldera/steed/webmin/webminhelp.html    <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Webmin Help <SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>  070701000692f8000081a40000000000000002000000013ac038bb00000296000000200000000000000000000000000000002e00000003reloc/caldera/steed/webmin/webminservers.html <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Webmin Servers Index<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>  070701000692f9000081a40000000000000002000000013ac038bb00000296000000200000000000000000000000000000002d00000003reloc/caldera/steed/webmin/webminwebmin.html  <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Webmin Configuration<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>  070701000692fa000081a40000000000000002000000013ac038bb00000294000000200000000000000000000000000000003000000003reloc/caldera/steed/webmin/webminwebminlog.html   <HTML>

<HEAD>

  <LINK REL="stylesheet" TYPE="text/css" HREF="../css/style.css">

</HEAD>

<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">

  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">

    <TR>

      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">

    </TR>

    <TR>

      <TD WIDTH="20">

		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">

      </TD>

      <TD WIDTH="100%">

		<SPAN CLASS="bodyText">PAGE CONTENT: Webmin Actions Log<SPAN>

      </TD>

    </TR>

  </TABLE>

</BODY>

</HTML>0707010005d8bd000081a40000000000000002000000013ac038bb00000261000000200000000000000000000000000000002500000003reloc/caldera/steed/webmin_body.html  <HTML>
<HEAD>
  <LINK REL="stylesheet" TYPE="text/css" HREF="css/style.css">
</HEAD>
<BODY LINK="#FFFFFF" VLINK="#FFFFFF" BGCOLOR="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" TOPMARGIN="0" LEFTMARGIN="0">
  <TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0">
    <TR>
      <TD COLSPAN="2"><IMG SRC="../images/spacer.gif" WIDTH="1" HEIGHT="4">
    </TR>
    <TR>
      <TD WIDTH="20">
		<IMG SRC="../images/spacer.gif" WIDTH="20" HEIGHT="1">
      </TD>
      <TD WIDTH="100%">
		<SPAN CLASS="bodyText">PAGE CONTENT: Webmin<SPAN>
      </TD>
    </TR>
  </TABLE>
</BODY>
</HTML>
   0707010005d8be000081a40000000000000002000000013ac038bb0000189c000000200000000000000000000000000000002400000003reloc/caldera/steed/webmin_nav.html   <HTML>

<HEAD>
<TITLE>System</TITLE>
<LINK REL="stylesheet" TYPE="text/css" HREF="css/style.css">
</HEAD>

<BODY LINK="#FFFFFF" ALINK="#FFFFFF" VLINK="#FFFFFF" MARGINWIDTH="0" MARGINHEIGHT="0" LEFTMARGIN="0" TOPMARGIN="0" BACKGROUND="images/navbg.gif">

  <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%" HEIGHT="1">
    <TR>
      <TD HEIGHT="35" ROWSPAN="2" VALIGN="top" ALIGN="left" WIDTH="298"><IMG BORDER="0" SRC="images/webmin-header.gif" WIDTH="298" HEIGHT="35"></TD>
      <TD VALIGN="top" ALIGN="left" HEIGHT="11" WIDTH="100%" BACKGROUND="images/top-grad-stretch.gif"><IMG BORDER="0" SRC="images/top-grad-stretch.gif" WIDTH="482" HEIGHT="11"></TD>
    </TR>
    <TR>
      <TD WIDTH="100%" HEIGHT="1" ALIGN="LEFT" VALIGN="TOP" BACKGROUND="images/navbg.gif">
        <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" BACKGROUND="images/blue-bg.gif" WIDTH="100%">
          <TR>
<!--Tab1--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-on.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><SPAN CLASS="navActive2">Webmin</SPAN></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab2--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="system.html" CLASS="navInactive">System</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab3--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="servers.html" CLASS="navInactive">Servers</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab4--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="hardware.html" CLASS="navInactive">Hardware</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--Tab5--> <TD WIDTH="16%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="LEFT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="72"><BR><NOBR><IMG SRC="images/spacer.gif" WIDTH="6" HEIGHT="1"><TABLE WIDTH="72" CELLPADDING="0" CELLSPACING="0" BORDER="0" BACKGROUND=""><TR><TD><CENTER><A TARGET="_top" HREF="others.html" CLASS="navInactive">Others</A></CENTER></TD></TR></TABLE></NOBR></TD>
<!--H|F-->	<TD WIDTH="20%" HEIGHT="24" BACKGROUND="images/folder-off.gif" VALIGN="TOP" ALIGN="RIGHT"><IMG SRC="images/spacer.gif" HEIGHT="6" WIDTH="1"><BR><NOBR><A TARGET="_top" HREF="index.html" CLASS="navInactive2">Home</A><SPAN CLASS="bodyText"> | </SPAN><A TARGET="_top" HREF="mailto:jcameron@webmin.com" CLASS="navInactive2">Feedback</A><IMG SRC="images/spacer.gif" HEIGHT="1" WIDTH="6"></NOBR></TD></TR></TABLE></TD>
          </TR>
        </TABLE>
      </TD>
    </TR>
    <TR>
      <TD COLSPAN="2" WIDTH="100%" HEIGHT="19">
<!-- --VERSION TABLE HERE -->
        <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%">
          <TR>
            <TD BACKGROUND="images/gradient-bg.gif" WIDTH="300" HEIGHT="19"><IMG SRC="images/spacer.gif" WIDTH="95" HEIGHT="1"><SPAN CLASS="EightPoint"><NOBR>Version 0.8 (Redhat Linux 5.2)</NOBR></SPAN></TD>
            <TD BACKGROUND="images/main-bg-pixel.gif" WIDTH="100%" HEIGHT="19"><IMG SRC="images/spacer.gif" WIDTH="1" HEIGHT="1"></TD>
          </TR>
        </TABLE>
<!-- //VERSION TABLE HERE -->
      </TD>
    </TR>
    <TR>
      <TD BACKGROUND="images/main-bg-pixel.gif" COLSPAN="2" WIDTH="100%" VALIGN="TOP" ALIGN="LEFT">
          <TABLE BACKGROUND="images/main-bg-pixel.gif" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0">
			<TR>
			  <TD WIDTH="1%"><IMG SRC="images/spacer.gif" WIDTH="52" HEIGHT="20"></TD><TD WIDTH="32%"><IMG SRC="images/spacer.gif" WIDTH="211" HEIGHT="20"></TD><TD WIDTH="1%"><IMG SRC="images/spacer.gif" WIDTH="52" HEIGHT="20"></TD><TD WIDTH="32%"><IMG SRC="images/spacer.gif" WIDTH="211" HEIGHT="20"></TD><TD WIDTH="1%"><IMG SRC="images/spacer.gif" WIDTH="52" HEIGHT="20"></TD><TD WIDTH="32%"><IMG SRC="images/spacer.gif" WIDTH="211" HEIGHT="20"></TD>
			</TR>
			<TR>
			  <TD width="1%"><A TARGET="BODY" HREF="webmin/webminwebminlog.html"><IMG SRC="images/iconT1-01.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="33%"><A TARGET="BODY" HREF="webmin/webminwebminlog.html" CLASS="bodyNav">Webmin Actions Log</A></TD><TD width="1%"><A TARGET="BODY" HREF="webmin/webminwebmin.html"><IMG SRC="images/iconT1-02.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="33%"><A TARGET="BODY" HREF="webmin/webminwebmin.html" CLASS="bodyNav">Webmin Configuration</A></TD><TD width="1%"><A TARGET="BODY" HREF="webmin/webminhelp.html"><IMG SRC="images/iconT1-03.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></CENTER></TD><TD WIDTH="33%"><A TARGET="BODY" HREF="webmin/webminhelp.html" CLASS="bodyNav">Webmin Help</A></TD>
			</TR>
			<TR>
			  <TD width="1%"><A TARGET="BODY" HREF="webmin/webminservers.html"><IMG SRC="images/iconT1-04.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="33%"><A TARGET="BODY" HREF="webmin/webminservers.html" CLASS="bodyNav">Webmin Servers Index</A></TD><TD width="1%"><A TARGET="BODY" HREF="webmin/webminacl.html"><IMG SRC="images/iconT1-05.gif" WIDTH="55" HEIGHT="24" BORDER="0"></A></TD><TD WIDTH="33%"><A TARGET="BODY" HREF="webmin/webminacl.html" CLASS="bodyNav">Webmin Users</A></TD><TD width="1%"><IMG SRC="images/iconblank.gif" WIDTH="55" HEIGHT="24" BORDER="0"></TD><TD WIDTH="32%">&nbsp;</TD>
			</TR>
			<TR>
			  <TD COLSPAN="6"><IMG SRC="images/spacer.gif" WIDTH="10" HEIGHT="100"></TD>
			</TR>
		  </TABLE>
      </TD>
    </TR>
  </TABLE>

</BODY>

</HTML>
0707010002b51d000081a40000000000000002000000013ac038bb000006a1000000200000000000000000000000000000001800000003reloc/caldera/style.css   BODY 	{
	font-family	:	Arial, Helvetica, sans-serif; 
	margin-top	:	0px;
	margin-left	:	0px;
	margin-right	:	0px;
	margin-bottom	:	0px;
	padding-top	:	0;
	padding-left	:	0;
	padding-right	:	0;
	padding-bottom	:	0;
	border-top	:	0;
	border-left	:	0;
	border-bottom	:	0;
	border-right	:	0;
	width		:	auto;
	background-color:	#FFFFFF;
	}

A.navInactive
	{ 
	font-size	:	8pt;
   	text-decoration	:	underline; 
	color		:	#FFFFFF;
	background	:	transparent;
	font-style	:	bold;
	font-family	:	Arial, Helvetica, sans-serif; 
	}

A.navInactive2
	{ 
	font-size	:	8pt;
   	text-decoration	:	underline; 
	color		:	#CCCCCC;
	background	:	transparent;
	font-style	:	bold;
	font-family	:	Arial, Helvetica, sans-serif; 
	}

.navActive
	{ 
	font-size	:	8pt;
   	text-decoration	:	underline; 
	color		:	#FFFFFF;
	background	:	transparent;
	font-style	:	bold;
	font-family	:	Arial, Helvetica, sans-serif; 
	}

.navActive2
	{ 
	font-size	:	8pt;
   	text-decoration	:	underline; 
	color		:	#000000;
	background	:	transparent;
	font-style	:	bold;
	font-family	:	Arial, Helvetica, sans-serif; 
	}

P, TR, THEAD, TFOOT, TH, TD, 
DL, OL, UL, BLOCKQUOTE, SPAN, BR
	{
	FONT-FAMILY	:	Arial, Helvetica, sans-serif;
	}

.EightPoint
	{ 
	font-size	:	8pt;
   	text-decoration	:	none; 
	color		:	#000000;
	background	:	transparent;
	font-style	:	light;
	font-family	:	Arial, Helvetica, sans-serif; 
	}
	
A.bodyNav
	{ 
	font-size	:	8pt;
   	text-decoration	:	underline; 
	color		:	#000099;
	background	:	transparent;
	font-style	:	light;
	font-family	:	Arial, Helvetica, sans-serif; 
	}

.bodyText
	{
	font-size	:	8pt;
	color		:	#000000;
	}
   0707010006a810000041ed0000000000000001000000033ac03bb500000000000000200000000000000000000000000000001500000003reloc/caldera/syslog  0707010006c0e8000041ed0000000000000001000000023ac03bb500000000000000200000000000000000000000000000001c00000003reloc/caldera/syslog/images   0707010006c0e9000081a40000000000000002000000013ac038bc0000021d000000200000000000000000000000000000002500000003reloc/caldera/syslog/images/icon.gif  GIF89a6   566OPPFKJ噵噓wu:;:ㄇ蟄潱F苠g顼n亿f矧56#换尦硢＃z灋v览廊葨排斄翍浇幐笂拻n烫歠fN挝瀰協蜒⒂莹WWE照狜@4刎膊睏棖钞QI媷?环b徉芩是儇諅~掭沣恽ⅱjjjdddccc```\\\YYYSSSHHHAAA...)))      !   ,    6   缐pH,徣yばj辅tJ曟vΧh賺B喟x<墩瞇恁鏘5'GA粦雟qf巔?wIyE90妺0?H?厁lE
;;)(巰?v揅嘍<
:D'烠B儰E=	C0*師懘D禕$7
?捘B藠+?嵾B灾讜E"?腱B尕H0鹁笾2&l ⒚厀駣#fk /^@d1緞
囇C7#0f#>x P嶙:$i賘a@唩5的$U镂:I=蔹,tH*]i嶞豂滼店:捘,@惱但庄`紹 d巶h营]薞瓍QB  ;   0707010006d68e000041ed0000000000000001000000033ac03bb500000000000000200000000000000000000000000000001500000003reloc/caldera/telnet  0707010006ee02000041ed0000000000000001000000023ac03bb500000000000000200000000000000000000000000000001c00000003reloc/caldera/telnet/images   0707010006ee03000081a40000000000000002000000013ac038bc00000201000000200000000000000000000000000000002500000003reloc/caldera/telnet/images/icon.gif  GIF89a6   殮靝p燀倐睛︼è锉瘪嗑倔览舁ㄒ怂跣婿刎鴰師滗琨祆棛暬粚吵啰＃z灋v屯毨览缮椚葨排斄翍浇幑箣父姃抧烫毼螡蜒⑿孝佑ɑ粫照元种乇揶厩屏tspあ}}}fffdddccc```YYYSSSRRRAAA@@@333)))   !   ,    6   @峱H,徣y湫j法tJ曟vΧ柩盧喟xV奠V曋蓆耺詐d麧9?}zn僀?咶{C?彁慖?x岯?.潪?I#!仒C?33?1I墻Bí31.泊捣冀-G硦羺浢1暖12?(E实櫷┫寻諨偬|莓姒窇1綛髽48PH 饒=nIP-
樹劏d崋8鯝9鑳b蕼I砯L"7谯沙gNC,`J川眩E-撩嚙P彰%!A  ;   0707010002b51e000081a40000000000000002000000013ac038bd0000027a000000200000000000000000000000000000001b00000003reloc/caldera/template.gif    GIF89a6    殮靝p燀倐睛︼è锉瘪嗑倔览舁ㄒ怂跣婿刎鴰師滗琨祆棛暬粚吵啰＃z灋v屯毨览缮椚葨排斄翍浇幑箣父姃抧烫毼螡蜒⑿孝佑ɑ粫照元种乇揶厩屏tspあ}}}fffdddccc```YYYSSSRRRAAA@@@333)))   !Made with GIMP !  < ,    6   艀<們剠唶垑妺457憭摂9;寶:,)牎ⅲ*)65櫅=%珒#$&'8埈偛?胶?茊凰<?肝退#!廖冋哨傑妻枢饷溧<缃殒盼钰旃蛟疠唢践弩酏羞=傝詅o .H淗雹E":保菑 A\媪啌(S猏櫼0p<|業肠蜎5=L ;  0707010002b51f000081a40000000000000002000000013ac038b900000013000000200000000000000000000000000000001900000003reloc/caldera/theme.info  desc=Th鑝e Caldera
 070701000452ea000041ed0000000000000001000000033ac03bb500000000000000200000000000000000000000000000001300000003reloc/caldera/time    0707010007039e000041ed0000000000000001000000023ac03bb500000000000000200000000000000000000000000000001a00000003reloc/caldera/time/images 0707010007039f000081a40000000000000002000000013ac038bd0000022c000000200000000000000000000000000000002300000003reloc/caldera/time/images/icon.gif    GIF89a6   乙覧JI8<;qsq墜儷寄T怆k矧桸N:换尦硢＃z灋v览廊葨排斄翍浇幖紞构嫆抧烫毼螡蜒⒂缨照乇邋损疣趑鬁楩媷?亇;瞧噜噗圹构钩吵瘶槝拻拝厖{{{jjjdddccc```YYYUUURRREEE@@@888333,,,)))$$$   !   ,    6   缊pH,徣y斈d川tJ曏pΧH羪:喟x<炆瞇m叿I3&A粦攵6虫攑?wIyB5&妺&?K?厁lB9	W7#"?牉o?v揅=	7D滳&E儳E>&#、C懜D⿴$!&
? D茠菳蔅*?逾兆B氽軙B> 脽
湔栝〩篌蝓髹嘪磒衤EB鰜2酗1|昢凘"@!3佟I~P傩6	柩儑 殙)殠滺盉匫I3跜攝,2g簸莡竝灙嚆聝玐砵輟肣徝聤).
 ╙硕璠@莼x箨臟翑  ;07070100071d8d000041ed0000000000000001000000033ac03bb600000000000000200000000000000000000000000000001800000003reloc/caldera/useradmin   0707010007328b000041ed0000000000000001000000023ac03bb600000000000000200000000000000000000000000000001f00000003reloc/caldera/useradmin/images    0707010007328c000081a40000000000000002000000013ac038bd00000227000000200000000000000000000000000000002800000003reloc/caldera/useradmin/images/icon.gif   GIF89a6    ,))蔘Q祙~矧楁缣换尦硢＃z灋v览郎蓷热柵艛亮懡綆父姃抧烫歠fN挝炑癣行⒂缨佑ㄕ摘种元刎睎杴uuc圹踞崤ⅱ弶墆殚镲囹蝈烫蘤ffdddccc```YYYSSSAAA)))                                       !   ,    6   @唒H,徣yt癦tJ暵bΧ墆6喟x頻\V慮諧5詐d麔滪Er3yI{}3*3F3唞nG~+3x擟團妺湉濨劊E)弿滳挷D3B2犯築緭繠~笢煌涎覗3俑)探苦ヤ'#鐩鹧3( 荤д寁B九G 
襩磣豀罗膫Db溆p鉌鰳!|w樋?0SN上ジ"J柢i D$"m虮悂冄2ZSVH滼氮U殠倡庄Z)AH盃砲訛MP馐滽奉\ ; 07070100074ba8000041ed0000000000000001000000033ac03bb600000000000000200000000000000000000000000000001200000003reloc/caldera/vnc 07070100075ff2000041ed0000000000000001000000023ac03bb600000000000000200000000000000000000000000000001900000003reloc/caldera/vnc/images  07070100075ff4000081a40000000000000002000000013ac038bd0000033a000000200000000000000000000000000000002200000003reloc/caldera/vnc/images/icon.gif GIF89a6    热杁ddcccYYYRRR@@@亮慉AA刎闭摘栽猔``浇)))蜒Ⅺ@(  鵌+烫毼螡行⒂莹SSS缮楙/  獸,鶱0#蠅Ul     J  
鶥'  排旡_    屯毣粚鋬T  ~6/\O1飝J  	ZM/q`;sb=父娙玥5  !C1%*  吵啙哣]  鰝OG    & 峽Nk  (  M%峽L纙NA  8#F<&
  9#爥T7.OB*VJ-  N    E9#81峽Jk
    B9#TH-祘N巊@?(鵆)@@侭B凙A==+??>>55y鮸M构嫞拻n灋v!Made with GIMP !   ,    6   䜣們剠唶垑妺 憭摂 寶	牎ⅲ
	櫅壄  !翃脗"#!!$%&苘'!月畟()廑*+,!-.!黎勚/0b鼞眒!l茗G?tH踘ㄟ巑<z阪恴噦槪X恗C 瓐G<GrP?$蹝@P聄	&!溔YSP'9!@B*蹎,z4)*!琝谅-嫋-`,jT!tB嘁潘?哷鑱K禵榤bd!SF悪3钅vYi0榅5必hb\砡!m箉鐛缦qO璡槓9傗摹Cj:q靾&2;(揹'彏呃䓖相蕆+6殼>}烴晋t>尤0罓击镟7燨P  ;  07070100077856000041ed0000000000000001000000033ac03bb600000000000000200000000000000000000000000000001700000003reloc/caldera/volution    07070100078f6b000041ed0000000000000001000000023ac03bb600000000000000200000000000000000000000000000001e00000003reloc/caldera/volution/images 07070100078f6c000081a40000000000000002000000013ac038bb00000225000000200000000000000000000000000000002700000003reloc/caldera/volution/images/icon.gif    GIF89a6   椎稘7R- fh皥壞颂$&.妿58カhV萼辨枨缕w殛NN:换尦硢＃zⅱy灋v妸g览廊葨亮懡綆构嫋杚拻nddK烫毼螡挝炑癣乙ビ缨照脂>>2刎便闳骀烷橐殚躁贳痧巅壅TTR锹/+%逯纬拡cccYYY@@@)))$$$   !   ,    6   缻pH,徣y滗r酣tJ曇vΧ刭盧喟x<~f穁蟿嶩&峴n#誰火往u魒kF%?%K5?GxE%6-/-嘔#?u孊嶤-8?朑#~淒濨(?77 ?(J姭C瓌?8?85H箣%.22?0+$G伤虃3??24?'酆藥3?1?)焓粠T貨G燸醉]媔腍 頏媅F腹B覌I-<Nba妶F6擛、e,[(iJ6 D堐箵B0渣藩ESrB噬儚滼礿6嬺苁祂VN,dK冬俪e-黋啤儑穚闶访&!A  ;   07070100000175000041ed0000000000000001000000033ac03bb600000000000000200000000000000000000000000000001500000003reloc/caldera/webmin  070701000019be000041ed0000000000000001000000023ac03bb600000000000000200000000000000000000000000000001c00000003reloc/caldera/webmin/images   07070100001a0f000081a40000000000000002000000013ac038bd0000024d000000200000000000000000000000000000002500000003reloc/caldera/webmin/images/icon.gif  GIF89a6   3ff,,i%%玊T{{gg 烫3f适椈粚吵啿矃＃z灋v殮s弿k览朗蕵热柵艛哪摿翍浇幑箣ゥ|拻n烫毼螢勓癣适澯缨蜒ノ危构撜摘适∑茷佑┨太鬃丰崮侣礅噜厥杉貂跆烫帋巬}}fffdddbbbYYYSSSAAA)))   !   ,    6   @妏H,徣y脆p酣tJ曨xΧ樶盢⿺B昑醫8囁n禋^蓚蒬巼iU=!#;noIq5 ./$B7??B?嘕q"6 .10/#?2卑C?爤=6.-
硾?喐D墜,张櫂2C炍Fqs5(3/3瑽北E夺Eq!椱,飚耋盙!,撆m埣[黴闫怢H&鋋D=盍艽qむ胥D癲詟 セw !F|9j氒騛戍O4m启Iゅ螑80ta倳NNT1ザ>紾釢Yx7:4 ‘莼x笾砝6.卓龟樶A劽+^滧璃2h楲共逅34 ;   07070100003208000041ed0000000000000001000000033ac03bb600000000000000200000000000000000000000000000001800000003reloc/caldera/webminlog   070701000048e8000041ed0000000000000001000000023ac03bb600000000000000200000000000000000000000000000001f00000003reloc/caldera/webminlog/images    070701000048e9000081a40000000000000002000000013ac038bd0000021d000000200000000000000000000000000000002800000003reloc/caldera/webminlog/images/icon.gif   GIF89a6   566OPPFKJ噵噓wu:;:ㄇ蟄潱F苠g顼n亿f矧56#换尦硢＃z灋v览廊葨排斄翍浇幐笂拻n烫歠fN挝瀰協蜒⒂莹WWE照狜@4刎膊睏棖钞QI媷?环b徉芩是儇諅~掭沣恽ⅱjjjdddccc```\\\YYYSSSHHHAAA...)))      !   ,    6   缐pH,徣yばj辅tJ曟vΧh賺B喟x<墩瞇恁鏘5'GA粦雟qf巔?wIyE90妺0?H?厁lE
;;)(巰?v揅嘍<
:D'烠B儰E=	C0*師懘D禕$7
?捘B藠+?嵾B灾讜E"?腱B尕H0鹁笾2&l ⒚厀駣#fk /^@d1緞
囇C7#0f#>x P嶙:$i賘a@唩5的$U镂:I=蔹,tH*]i嶞豂滼店:捘,@惱但庄`紹 d巶h营]薞瓍QB  ;   07070100005f10000041ed0000000000000001000000033ac03bb600000000000000200000000000000000000000000000001500000003reloc/caldera/wuftpd  07070100007701000041ed0000000000000001000000023ac03bb600000000000000200000000000000000000000000000001c00000003reloc/caldera/wuftpd/images   07070100007702000081a40000000000000002000000013ac038bd00000228000000200000000000000000000000000000002500000003reloc/caldera/wuftpd/images/icon.gif  GIF89a6   33藤鈇牝s塍z换尦硢＃z灋v览廊葨排斄翍浇幑箣拻nhhN烫毼螡挝炑癣佑в莹照脂刎贬崮殚种绚燡tsp觊孳谡僮抑韵あ炋势邃庵游匝蹄徂湙杍hf净竷~噍眄黹殚iiidddccc```YYYUUURRRJJJAAA888...)))   !  	 ,    6   绖pH,徣yT蘦定tJ曗t
Χ刃e.喟x<瞇mI#粦膂]W{xlZ?厖D?丟yC25Q8;B?/'?o?v孊	7櫑/??'-﹟; &  0?	-楤姶C<))?镰毰	菋	送.!1诱ㄘ谲輧	!唁搂缛苻"怛'醵%7E	舀Z樈侂凇G-狶C休嬭# 	-> '剺鮜XC,@p(悥-r暝 !E6譓█〃
枖 5*訰F888@氮斋X>xh3ψ1k哹` 佡砲营Ek 7葷K樊]@		 ;07070100008e79000041ed0000000000000001000000033ac03bb600000000000000200000000000000000000000000000001500000003reloc/caldera/xinetd  0707010000a380000041ed0000000000000001000000023ac03bb600000000000000200000000000000000000000000000001c00000003reloc/caldera/xinetd/images   0707010000a381000081a40000000000000002000000013ac038bd00000235000000200000000000000000000000000000002500000003reloc/caldera/xinetd/images/icon.gif  GIF89a6   33蘰p﹤偩ゥ橛吁珑兮a牝s塍z换尦硢＃z灋v览廊葨排斄翍浇幑箣拻n厖d烫毼螡挝炑癣佑в莹换曊摘种乇沣情橐Jtsp桤溱赜沼韦淌沏徂jhf净竷~噍蹤棖弾觋阨iiccc```YYYSSSAAA888...)))$$$   !   ,    6   绹pH,徣y勗j法tJ曗rΧ(蓙<喟x<墩瞇韯/A粦膂]圏${xl丆?凢yC46Q8:C??D
?v82￥??）|滳:	&&  3?柀綜嚢B;++$?B񝪴B翀门/'负唯栄彰瀮''?!Cえ怃诅'(?0?芥	'
*Z03P犨R馄剠D]竧E{>幄り8盨盺2
憟G楃6罶D孯麳QX薉2l攊#5j恚$迶蹹:侭儻`脢翾B`猐琐l 	葷K樊]  a傔縺,亾  ;   0707010000bb1d000081e40000000000000002000000013ac03886000006f0000000200000000000000000000000000000001400000003reloc/changepass.pl   #!/usr/local/bin/perl
# changepass.pl
# Script for the user to change their webmin password

# Check command line arguments
usage() if (@ARGV != 3);
($config, $user, $pass) = @ARGV;
if (!-d $config) {
	print STDERR "The config directory $config does not exist\n";
	exit 2;
	}
if (!open(CONF, "$config/miniserv.conf")) {
	print STDERR "Failed to open $config/miniserv.conf : $!\n";
	print STDERR "Maybe $config is not the Webmin config directory.\n";
	exit 3;
	}
while(<CONF>) {
	if (/^([^=]+)=(\S+)/) { $config{$1} = $2; }
	}
close(CONF);

# Update the users file
if (!open(USERS, $config{'userfile'})) {
	print STDERR "Failed to open Webmin users file $config{'userfile'} : $!\n";
	exit 4;
	}
while(<USERS>) {
	s/\r|\n//g;
	local @user = split(/:/, $_);
	if (@user) {
		$users{$user[0]} = \@user;
		}
	}
close(USERS);
if (!defined($users{$user})) {
	print STDERR "The Webmin user $user does not exist\n";
	exit 5;
	}
$salt = substr(time(), 0, 2);
$users{$user}->[1] = crypt($pass, $salt);
if (!open(USERS, "> $config{'userfile'}")) {
	print STDERR "Failed to open Webmin users file $config{'userfile'} : $!\n";
	exit 6;
	}
foreach $v (values %users) {
	print USERS join(":", @$v),"\n";
	}
close(USERS);
print "Updated password of Webmin user $user\n";

# Send a signal to restart miniserv, if running
if (open(PID, $config{'pidfile'})) {
	<PID> =~ /(\d+)/; $pid = $1;
	close(PID);
	kill('HUP', $pid);
	}

sub usage
{
print STDERR <<EOF;
usage: changepass.pl <config-dir> <login> <password>

This program allows you to change the password of a user in the Webmin
password file. For example, to change the password of the admin user
to foo, you would run:
	changepass.pl /etc/webmin admin foo
This assumes that /etc/webmin is the Webmin configuration directory.
EOF
exit 1;
}

0707010000bb1e000081e40000000000000002000000013ac0388600000f8a000000200000000000000000000000000000001200000003reloc/chooser.cgi #!/usr/local/bin/perl
# chooser.cgi
# Outputs HTML for a frame-based file chooser 

$icon_map = (	"c", "text.gif",
		"txt", "text.gif",
		"pl", "text.gif",
		"cgi", "text.gif",
		"html", "text.gif",
		"htm", "text.gif",
		"gif", "image.gif",
		"jpg", "image.gif",
		"tar", "binary.gif"
		);

require './web-lib.pl';
&init_config();
%access = &get_module_acl();
&ReadParse();
if ($in{'file'} =~ /^(.*\/)([^\/]*)$/) {
	# File entered is invalid
	$dir = $1;
	$file = $2;
	}
else {
	$dir = $access{'root'};
	$dir .= '/' if ($dir !~ /\/$/);
	$file = "";
	}

if (!(-d $in{'chroot'}.$dir)) {
	# Entered directory does not exist
	$dir = $access{'root'}.'/';
	$file = "";
	}
if ($access{'root'} ne '/' && $dir ne $access{'root'} &&
    $dir !~ /^$access{'root'}\//) {
	# Directory is outside allowed root
	$dir = $access{'root'}.'/';
	$file = "";
	}

if ($in{'frame'} == 0) {
	# base frame
	&PrintHeader();
	if ($in{'type'} == 0)
		{ print "<title>$text{'chooser_title1'}</title>\n"; }
	elsif ($in{'type'} == 1)
		{ print "<title>$text{'chooser_title2'}</title>\n";}
	print "<frameset rows='*,50'>\n";
	print "<frame marginwidth=5 marginheight=5 name=topframe ",
	     "src=\"chooser.cgi?frame=1&file=$in{'file'}&chroot=$in{'chroot'}&",
	     "type=$in{'type'}\">\n";
	print "<frame marginwidth=0 marginheight=0 name=bottomframe ",
	      "src=\"chooser.cgi?frame=2&file=$in{'file'}&",
	      "chroot=$in{'chroot'}&type=$in{'type'}\" scrolling=no>\n";
	print "</frameset>\n";
	}
elsif ($in{'frame'} == 1) {
	# List of files in this directory
	&header();
	
	print <<EOF;
<script>
function fileclick(f, d)
{
curr = top.frames[1].document.forms[0].elements[1].value;
if (curr == f) {
	// Double-click! Enter directory or select file
	if (d) {
		// Enter this directory
		location = "chooser.cgi?frame=1&chroot=$in{'chroot'}&type=$in{'type'}&file="+f+"/";
		}
	else {
		// Select this file and close the window
		top.ifield.value = f;
		top.close();
		}
	}
else {
	top.frames[1].document.forms[0].elements[1].value = f;
	}
}

function parentdir(p)
{
top.frames[1].document.forms[0].elements[1].value = p;
location = "chooser.cgi?frame=1&chroot=$in{'chroot'}&type=$in{'type'}&file="+p;
}
</script>
EOF

	print "<b>",&text('chooser_dir', $dir),"</b>\n";
	print "<table width=100%>\n";
	opendir(DIR, $in{'chroot'}.$dir);
	foreach $f (sort { $a cmp $b } readdir(DIR)) {
		$path = "$in{'chroot'}$dir$f";
		if ($f eq ".") { next; }
		if ($f eq ".." && ($dir eq "/" || $dir eq $access{'root'}.'/')) { next; }
		if (!(-d $path) && $in{'type'} == 1) { next; }

		@st = stat($path);
		print "<tr>\n";
		$isdir = 0; undef($icon);
		if (-d $path) { $icon = "dir.gif"; $isdir = 1; }
		elsif ($path =~ /\.([^\.\/]+)$/) { $icon = $icon_map{$1}; }
		if (!$icon) { $icon = "unknown.gif"; }

		if ($f eq "..") {
			$dir =~ /^(.*\/)[^\/]+\/$/;
			$link = "<a href=\"\" onClick='parentdir(\"$1\"); return false'>";
			}
		else {
			$link = "<a href=\"\" onClick='fileclick(\"$dir$f\", $isdir); return false'>";
			}
		print "<td>$link<img border=0 src=/images/$icon></a></td>\n";
		print "<td nowrap>$link$f</a></td>\n";
		printf "<td nowrap>%s</td>\n",
			$st[7] > 1000000 ? int($st[7]/1000000)." MB" :
			$st[7] > 1000 ? int($st[7]/1000)." kB" :
			$st[7];
		@tm = localtime($st[9]);
		printf "<td nowrap><tt>%.2d/%s/%.4d</tt></td>\n",
			$tm[3], $text{'smonth_'.$tm[4]}, $tm[5]+1900;
		printf "<td nowrap><tt>%.2d:%.2d</tt></td>\n", $tm[2], $tm[1];
		print "</tr>\n";
		}
	closedir(DIR);
	print "</table>\n";
	}
elsif ($in{'frame'} == 2) {
	# Current file and OK/cancel buttons
	&header();
	print <<EOF;
<script>
function filechosen()
{
top.ifield.value = document.forms[0].path.value;
top.close();
}
</script>
EOF

	print "<table width=100%>\n";
	print "<form onSubmit='filechosen(); return false'>\n";
	print "<tr><td><input type=submit value=\"$text{'chooser_ok'}\"></td>\n";
	print "<td align=right><input name=path size=45 value=\"$dir$file\"></td></tr>\n";
	print "</form>\n";
	print "</table>\n";
	}

  0707010000bb1f000081a40000000000000002000000013ac038860000008e000000200000000000000000000000000000001100000003reloc/config-aix  find_pid_command=ps -A | grep NAME | grep -v grep | awk '{print $1}'
path=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
ld_env=LD_LIBRARY_PATH
  0707010000bb20000081a40000000000000002000000013ac0388600000094000000200000000000000000000000000000001a00000003reloc/config-cobalt-linux find_pid_command=ps auwwwx | grep NAME | grep -v grep | awk '{ print $2 }'
path=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
ld_env=LD_LIBRARY_PATH
0707010000bb21000081a40000000000000002000000013ac0388600000094000000200000000000000000000000000000001900000003reloc/config-corel-linux  find_pid_command=ps auwwwx | grep NAME | grep -v grep | awk '{ print $2 }'
path=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
ld_env=LD_LIBRARY_PATH
0707010000bb22000081a40000000000000002000000013ac0388600000094000000200000000000000000000000000000001a00000003reloc/config-debian-linux find_pid_command=ps auwwwx | grep NAME | grep -v grep | awk '{ print $2 }'
path=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
ld_env=LD_LIBRARY_PATH
0707010000bb23000081a40000000000000002000000013ac0388600000095000000200000000000000000000000000000001500000003reloc/config-freebsd  find_pid_command=ps auxwwww | grep NAME | grep -v grep | awk '{ print $2 }'
path=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
ld_env=LD_LIBRARY_PATH
   0707010000bb24000081a40000000000000002000000013ac038860000008e000000200000000000000000000000000000001200000003reloc/config-hpux find_pid_command=ps -e | grep NAME | grep -v grep | awk '{print $1}'
path=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
ld_env=LD_LIBRARY_PATH
  0707010000bb25000081a40000000000000002000000013ac03886000000b9000000200000000000000000000000000000001200000003reloc/config-irix find_pid_command=ps -ef | grep NAME | grep -v grep | awk '{ print $2 }'
path=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/bsd:/usr/etc
ld_path=/lib:/usr/lib
ld_env=LD_LIBRARY_PATH
   0707010000bb26000081a40000000000000002000000013ac03886000000a3000000200000000000000000000000000000001300000003reloc/config-macos    find_pid_command=ps auxwwww | grep NAME | grep -v grep | awk '{ print $2 }'
path=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/libexec
ld_env=LD_LIBRARY_PATH

 0707010000bb27000081a40000000000000002000000013ac0388600000094000000200000000000000000000000000000001800000003reloc/config-open-linux   find_pid_command=ps auwwwx | grep NAME | grep -v grep | awk '{ print $2 }'
path=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
ld_env=LD_LIBRARY_PATH
0707010000bb28000081a40000000000000002000000013ac0388600000096000000200000000000000000000000000000001500000003reloc/config-openbsd  find_pid_command=ps auxwwww | grep NAME | grep -v grep | awk '{ print $2 }'
path=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
ld_env=LD_LIBRARY_PATH

  0707010000bb29000081a40000000000000002000000013ac038860000008f000000200000000000000000000000000000001800000003reloc/config-openserver   find_pid_command=ps -A | grep NAME | grep -v grep | awk '{print $1}'
path=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
ld_env=LD_LIBRARY_PATH

 0707010000bb2a000081a40000000000000002000000013ac03886000000a7000000200000000000000000000000000000001200000003reloc/config-osf1 find_pid_command=ps -ef | grep NAME | grep -v grep | awk '{ print $2 }'
path=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
ld_path=/lib:/usr/lib
ld_env=LD_LIBRARY_PATH
 0707010000bb34000041ed0000000000000001000000043ac03bbb00000000000000200000000000000000000000000000000b00000003reloc/cpan    0707010000bb35000081a40000000000000002000000013ac038b900000063000000200000000000000000000000000000001200000003reloc/cpan/config packages=http://www.cpan.org/modules/02packages.details.txt.gz
cpan=http://www.cpan.org/authors/id
 0707010000bb36000081a40000000000000002000000013ac038b90000003f000000200000000000000000000000000000001700000003reloc/cpan/config.info    packages=CPAN perl modules list,0
cpan=CPAN modules base URL,0
 0707010000bb37000081a40000000000000002000000013ac038b90000004b000000200000000000000000000000000000001a00000003reloc/cpan/config.info.es packages=Lista de m骴ulos CPAN perl,0
cpan=URL base para m骴ulos de CPAN,0
 0707010000bb38000081e40000000000000002000000013ac038b900000041000000200000000000000000000000000000001a00000003reloc/cpan/config.info.nl packages=CPAN perl modules lijst,0
cpan=CPAN modules basis URL,0
   0707010000bb39000081a40000000000000002000000013ac038b900000047000000200000000000000000000000000000001a00000003reloc/cpan/config.info.pl packages=Lista modu丑w CPAN Perla,0
cpan=Podstawowy URL modu丑w CPAN,0
 0707010000bb3a000081a40000000000000002000000013ac038b900000045000000200000000000000000000000000000001d00000003reloc/cpan/config.info.ru_RU  cpan=拎珙恹 URL 囵蹊忄 CPAN,0
packages=扬桉铌 祛潴脲 囵蹊忄 CPAN,0
   0707010000bb3b000081a40000000000000002000000013ac038b900000045000000200000000000000000000000000000001d00000003reloc/cpan/config.info.ru_SU  packages=笮捎纤 拖恼膛 烈壬琢 CPAN,0
cpan=饬谙踪 URL 烈壬琢 CPAN,0
   0707010000bb3c000081a40000000000000002000000013ac038b90000004a000000200000000000000000000000000000001a00000003reloc/cpan/config.info.sv packages=Lista 鰒er CPAN-Perl-moduler,0
cpan=Grund-URL f鰎 CPAN-moduler,0
  0707010000bb3d000081a40000000000000002000000013ac038b900000037000000200000000000000000000000000000001d00000003reloc/cpan/config.info.zh_CN  packages=CPAN perl 模块列表,0
cpan=CPAN 模块基本 URL,0
 0707010000bb3e000081a40000000000000002000000013ac038b900000695000000200000000000000000000000000000001700000003reloc/cpan/cpan-lib.pl    # cpan-lib.pl
# Functions for getting information about perl modules

do '../web-lib.pl';
&init_config();
use Config;
$packages_file = "$module_config_directory/packages.txt.gz";

# Get the paths to perl and perldoc
open(PERL, "$config_directory/perl-path");
chop($perl_path = <PERL>);
close(PERL);
if (&has_command("perldoc")) {
	$perl_doc = &has_command("perldoc");
	}
else {
	$perl_path =~ /^(.*)\/[^\/]+$/;
	if (-x "$1/perldoc") {
		$perl_doc = "$1/perldoc";
		}
	}
if ($perl_doc && $] >= 5.006) {
	$perl_doc = "$perl_path -T $perl_doc";
	}

# list_perl_modules()
# Returns a list of all installed perl modules
sub list_perl_modules
{
local (@rv, $lmod);
open(POD, "$Config{'archlib'}/perllocal.pod");
while(<POD>) {
	if (/^=head2\s+(.*):\s+C<Module>\s+L<(.*)>/i) {
		local $name = $2;
		local $mod = { 'name' => $2,
			       'date' => $1,
			       'index' => scalar(@rv) };
		if ($perl_doc) {
			chop($mod->{'file'} = `$perl_doc -l $name`);
			}
		if ($mod->{'file'}) {
			local $in_name;
			open(MOD, $mod->{'file'});
			while(<MOD>) {
				if (/^=head1\s+name/i) {
					$in_name = 1;
					}
				elsif (/^=/ && $in_name) {
					last;
					}
				elsif ($in_name) {
					$mod->{'desc'} .= $_;
					}
				}
			close(MOD);
			$mod->{'desc'} =~ s/^\s*$name\s+\-\s+//;
			}
		$lmod = $mod;
		push(@rv, $mod);
		}
	elsif (/^C<(\S+):\s+(.*)>/) {
		$lmod->{lc($1)} = $2;
		}
	}
close(POD);
return @rv;
}

sub download_packages_file
{
$config{'packages'} =~ /^http:\/\/([^\/]+)(\/.*)$/ ||
	&error($text{'download_epackages'});
local ($host, $page, $port) = ($1, $2, 80);
if ($host =~ /^(.*):(\d+)$/) { $host = $1; $port = $2; }
&http_download($host, $port, $page, $packages_file);
}

1;

   0707010000bb3f000081e40000000000000002000000013ac038b9000009a6000000200000000000000000000000000000001400000003reloc/cpan/cpan.cgi   #!/usr/local/bin/perl
# cpan.cgi
# Display known perl modules and categories

require './cpan-lib.pl';
&ReadParse();

if (!-r $packages_file) {
	&download_packages_file();
	}

# Read the modules list
open(LIST, "gunzip -c $packages_file |");
while(<LIST>) {
	s/\r|\n//g;
	if ($_ eq '') { $found_blank++; }
	elsif ($found_blank && /^(\S+)\s+(\S+)\s+(.*)/) {
		next if ($donefile{$3}++);
		$mod = $1; $ver = $2;
		next if ($mod eq 'about');
		local @mod = split(/::/, $mod);
		if (@mod > 1) {
			local @cat = @mod[0 .. $#mod-1];
			if (!$donecat{join("::", @cat)}++) {
				push(@mods, { 'name' => \@cat,
					      'cat' => 1 } );
				}
			}
		push(@mods, { 'name' => \@mod,
			      'ver' => $ver eq 'undef' ? '' : $ver } );
		}
	}
close(LIST);

# Display the current level of modules
$bgcolor = defined($gconfig{'cs_page'}) ? $gconfig{'cs_page'} : "ffffff";
$link = defined($gconfig{'cs_link'}) ? $gconfig{'cs_link'} : "0000ee";
$text = defined($gconfig{'cs_text'}) ? $gconfig{'cs_text'} : "000000";
@sel = split(/\0/, $in{'sel'});
&PrintHeader();
print <<EOF;
<html>
<head><title>$text{'cpan_title'}</title>
<script>
function sel(m)
{
window.opener.ifield.value = m;
window.close();
return false;
}
</script>
</head><body bgcolor=#$bgcolor link=#$link vlink=#$link text=#$text>
EOF
if (@sel) {
	print "<b>",&text('cpan_sel', join("::",@sel)),"</b><p>\n";
	}
print "<table width=100% cellpadding=1 cellspacing=1>\n";
if (@sel) {
	local @up = @sel[0..$#sel-1];
	print "<tr>\n";
	print "<td><a href='cpan.cgi?",join("&",map { "sel=$_" } @up),"#",join("::",@sel),"'><img src=images/cat.gif border=0></a></td>\n";
	print "<td><a href='cpan.cgi?",join("&",map { "sel=$_" } @up),"#",join("::",@sel),"'>..</a></td>\n";
	print "</tr>\n";
	}
MOD: foreach $m (@mods) {
	for($i=0; $i<@sel; $i++) {
		next MOD if ($sel[$i] ne $m->{'name'}->[$i]);
		}
	next if (scalar(@sel) != scalar(@{$m->{'name'}}-1));
	$name = join("::",@{$m->{'name'}});
	$pars = join("&",map { "sel=$_" } @{$m->{'name'}});
	print "<tr>\n";
	if ($m->{'cat'}) {
		print "<td><a name=$name><a href='cpan.cgi?$pars'><img src=images/cat.gif border=0></a></td>\n";
		print "<td><a href='cpan.cgi?$pars'>$name</a></td>\n";
		}
	else {
		print "<td><a href='' onClick='sel(\"$name\")'><img src=images/mod.gif border=0></a></td>\n";
		print "<td><a href='' onClick='sel(\"$name\")'>$name</a></td>\n";
		print "<td align=right>$m->{'ver'}</td>\n";
		}
	print "</tr>\n";
	}
print "</table>\n";
print "</body></html>\n";

  0707010000bb40000081e40000000000000002000000013ac038b9000011c9000000200000000000000000000000000000001800000003reloc/cpan/download.cgi   #!/usr/local/bin/perl
# download.cgi
# Get a perl module from somewhere

require './cpan-lib.pl';
&ReadParseMime();

if ($ENV{REQUEST_METHOD} eq "POST") { &ReadParseMime(); }
else { &ReadParse(); $no_upload = 1; }
&error_setup($text{'download_err'});

&tempname();
if ($in{'source'} == 0) {
	# installing from local file (or maybe directory)
	if (!$in{'local'})
		{ &error($text{'download_elocal'}); }
	if (!-r $in{'local'})
		{ &error(&text('download_elocal2', $in{'local'})); }
	$source = $in{'local'};
	$pfile = $in{'local'};
	$need_unlink = 0;
	}
elsif ($in{'source'} == 1) {
	# installing from upload .. store file in temp location
	if ($no_upload) {
		&error($text{'download_eupload'});
		}
	$in{'upload_filename'} =~ /([^\/]+$)/;
	$pfile = &tempname("$1");
	open(PFILE, "> $pfile");
	print PFILE $in{'upload'};
	close(PFILE);
	$source = $in{'upload_filename'};
	$need_unlink = 1;
	}
elsif ($in{'source'} == 2) {
	# installing from URL.. store downloaded file in temp location
	$in{'url'} =~ /\/([^\/]+)\/*$/;
	$pfile = &tempname("$1");
	if ($in{'url'} =~ /^http:\/\/([^\/]+)(\/.*)$/) {
		# Make a HTTP request
		$host = $1; $page = $2; $port = 80;
		if ($host =~ /^(.*):(\d+)$/) { $host = $1; $port = $2; }
		&http_download($host, $port, $page, $pfile);
		}
	elsif ($in{'url'} =~ /^ftp:\/\/([^\/]+)(\/.*)$/) {
		$host = $1; $file = $2;
		&ftp_download($host, $file, $pfile);
		}
	else { &error(&text('download_eurl', $in{'url'})); }
	$source = $in{'url'};
	$need_unlink = 1;
	}
elsif ($in{'source'} == 3) {
	# installing from CPAN.. find the module, and then install it
	if (!-r $packages_file || $in{'refresh'}) {
		# Need to download the modules list from CPAN first
		&download_packages_file();
		}

	# Find the module in the modules list
	open(LIST, "gunzip -c $packages_file |");
	while(<LIST>) {
		s/\r|\n//g;
		if ($_ eq '') { $found_blank++; }
		elsif ($found_blank && /^(\S+)\s+(\S+)\s+(.*)/) {
			if ($1 eq $in{'cpan'}) {
				$source = "$config{'cpan'}/$3";
				last;
				}
			}
		}
	close(LIST);
	$source || &error(&text('download_ecpan', "<tt>$in{'cpan'}</tt>"));

	# Download the actual module
	$source =~ /\/([^\/]+)\/*$/;
	$pfile = &tempname("$1");
	if ($source =~ /^http:\/\/([^\/]+)(\/.*)$/) {
		# Make a HTTP request
		$host = $1; $page = $2; $port = 80;
		if ($host =~ /^(.*):(\d+)$/) { $host = $1; $port = $2; }
		&http_download($host, $port, $page, $pfile);
		}
	elsif ($source =~ /^ftp:\/\/([^\/]+)(\/.*)$/) {
		$host = $1; $file = $2;
		&ftp_download($host, $file, $pfile);
		}
	else { &error(&text('download_eurl', $in{'url'})); }
	$need_unlink = 1;
	}

# Check if the file looks like a perl module
open(TAR, "( gunzip -c $pfile | tar tf - ) 2>&1 |");
while($line = <TAR>) {
	if ($line =~ /^\.\/([^\/]+)\/(.*)$/ || $line =~ /^([^\/]+)\/(.*)$/) {
		$mods{$1}++;
		$file{$2}++;
		}
	$tar .= $line;
	}
close(TAR);
if ($?) {
	&error(&text('download_etar', "<tt>$tar</tt>"));
	unlink($pfile) if ($need_unlink);
	}
@mods = keys %mods;
if (@mods != 1 || !$file{'Makefile.PL'} || $mods[0] !~ /^(\S+)\-([0-9\.]+)$/) {
	&error($text{'download_emod'});
	unlink($pfile) if ($need_unlink);
	}
$mod = $1; $ver = $2;
$mod =~ s/-/::/g;

# Display install options
&header($text{'download_title'}, "");
print "<hr>\n";

print "<form action=install.cgi>\n";
print "<input type=hidden name=source value='$source'>\n";
print "<input type=hidden name=need_unlink value='$need_unlink'>\n";
print "<input type=hidden name=pfile value='$pfile'>\n";
print "<input type=hidden name=mod value='$mod'>\n";
print "<input type=hidden name=ver value='$ver'>\n";
print "<input type=hidden name=dir value='$mods[0]'>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'download_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'download_mod'}</b></td> <td>$mod</td> </tr>\n";
print "<tr> <td><b>$text{'download_ver'}</b></td> <td>$ver</td> </tr>\n";
print "<tr> <td><b>$text{'download_src'}</b></td> <td>$source</td> </tr>\n";
print "<tr> <td><b>$text{'download_act'}</b></td> <td><select name=act>\n";
print "<option value=0> $text{'download_m'}\n";
print "<option value=1> $text{'download_mt'}\n";
print "<option value=2> $text{'download_mi'}\n";
print "<option value=3 selected> $text{'download_mti'}\n";
print "</select></td> </tr>\n";

print "<tr> <td><b>$text{'download_args'}</b></td>\n";
print "<td><input name=args size=40></td> </tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value='$text{'download_cont'}'></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});


   0707010000bb41000081e40000000000000002000000013ac038b9000005d3000000200000000000000000000000000000001800000003reloc/cpan/edit_mod.cgi   #!/usr/local/bin/perl
# edit_mod.cgi
# Display the details and documentation of a perl module

require './cpan-lib.pl';
&ReadParse();
@mods = &list_perl_modules();
$mod = $mods[$in{'idx'}];

&header($text{'edit_title'}, "");
print "<hr>\n";

print "<form action=uninstall.cgi>\n";
print "<input type=hidden name=idx value='$in{'idx'}'>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'edit_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'edit_mod'}</b></td>\n";
print "<td>$mod->{'name'}</td>\n";

print "<td><b>$text{'edit_desc'}</b></td>\n";
print "<td>$mod->{'desc'}</td> </tr>\n";

print "<tr> <td><b>$text{'edit_version'}</b></td>\n";
print "<td>$mod->{'version'}</td>\n";

print "<td><b>$text{'edit_date'}</b></td>\n";
print "<td>$mod->{'date'}</td> </tr>\n";

if ($mod->{'file'}) {
	print "<tr> <td><b>$text{'edit_file'}</b></td>\n";
	print "<td>$mod->{'file'}</td>\n";
	}

if ($mod->{'exe_files'}) {
	print "<td><b>$text{'edit_files'}</b></td>\n";
	print "<td>$mod->{'exe_files'}</td> </tr>\n";
	}

print "</table></td></tr></table>\n";
print "</form><p>\n";

if ($mod->{'file'}) {
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'edit_header2'}</b></td> </tr>\n";
	print "<tr $cb> <td><pre>";
	open(DOC, "$perl_doc -t $mod->{'name'} |");
	while(<DOC>) { print &html_escape($_); }
	close(DOC);
	print "</pre></td></tr></table><p>\n";
	}

print "<hr>\n";
&footer("", $text{'index_return'});

 0707010000d1c3000041ed0000000000000001000000023ac03bb900000000000000200000000000000000000000000000001200000003reloc/cpan/images 0707010000d1c4000081a40000000000000002000000013ac038b900000070000000200000000000000000000000000000001a00000003reloc/cpan/images/cat.gif GIF89a    烫虣櫃fff!    ,       A﹒劀b糼"啝ph踶Z:V
S凔岂袡v氾0烋5‖g<枓%撱|v釜鯅鮤 ;0707010000d1c5000081a40000000000000002000000013ac038b9000003c9000000200000000000000000000000000000001b00000003reloc/cpan/images/icon.gif    GIF89a0 0      晻旲@@蜒裫jj父觋贻葺vvv鼢KKKЁ///排鹏趑骀黃SSooo铑qqq镲   ,    0 0  '巇i瀐l刖p,嫐A觢"疗	A(Dt ( A燖  2# 4P
锣,bQIc搃8	J 癤/T ' a廫ro/Aow%  ]塁C3A$Q廬B2 猧U1UイN/Q蜂g奎5x z鑩怗惱 鶸	BD `郠H蝷
@($錏7c]2!蠤a:	"萲PM幎bi	鹆" 怃lx刑C1剕 亰*涔b%R脛y屷W 
baA歕"x秎$7 繻$D鑢 @袻壑聠ns,恜 凜 1pw范醉`#x_
$浮菴窗榏	螯I 厙罟駫2濼D餟擽鱻OA歁齛檎?脀<t盃弫脠M@$8Hㄅ<@yp撂吥[+.16談 佳vr"N<X鋪E 鐰D.hPG `@)&H鞽
2 0l3儔敜4厠誔j感櫆b蓋!丯&揚笯7屷@Q# 饗赏 LC&4娎侴 A%浶,1'@艻鏃v庎R栧"@漸d9m佢p-"葮	PQ聳崀鑇mP厁8爫.XQBa%8燝  #	薲闓	徜`#&饝㎏&葀9'罁i u朄g%(d(Q 癅#(0{4糵j#l拔:邞睭糀顠n8 A&0{臔+k5n撐+e~覍7:$ 2T纮
)d*!  ;   0707010000d1c6000081a40000000000000002000000013ac038b90000007b000000200000000000000000000000000000001a00000003reloc/cpan/images/mod.gif GIF89a       烫蘤ff!    ,       L⑺j斀(S7蜯uZXV:'
狻殿/*瞒~O喣/8D摾漴46=(耔B礡r卉zi.R  ; 0707010000bb42000081e40000000000000002000000013ac038b9000007f7000000200000000000000000000000000000001500000003reloc/cpan/index.cgi  #!/usr/local/bin/perl
# index.cgi
# Display installed perl modules and a form for installing new ones

require './cpan-lib.pl';
&header($text{'index_title'}, "", undef, 1, 1);
print "<hr>\n";

# Display perl modules
@mods = &list_perl_modules();
if (@mods) {
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'index_name'}</b></td> ",
	      "<td><b>$text{'index_version'}</b></td> ",
	      "<td><b>$text{'index_desc'}</b></td> ",
	      "<td><b>$text{'index_date'}</b></td> </tr>\n";
	foreach $m (reverse(@mods)) {
		next if ($done{$m->{'name'}}++);
		print "<tr $cb>\n";
		print "<td><a href='edit_mod.cgi?idx=$m->{'index'}'>",
		      "$m->{'name'}</a></td>\n";
		print "<td>$m->{'version'}</td>\n";
		print "<td>",$m->{'desc'} ? $m->{'desc'} : "<br>","</td>\n";
		print "<td>$m->{'date'}</td>\n";
		print "</tr>\n";
		}
	print "</table><p>\n";
	print "<hr>\n";
	}

# Display install form
print "$text{'index_installmsg'}<p>\n";
print "<form action=download.cgi method=post enctype=multipart/form-data>\n";
print "<input type=radio name=source value=3 checked> $text{'index_cpan'}\n";
print "<input name=cpan size=20>\n";
print "<input type=button onClick='window.ifield = document.forms[0].cpan; chooser = window.open(\"cpan.cgi\", \"chooser\", \"toolbar=no,menubar=no,scrollbars=yes,width=400,height=300\")' value=\"...\">\n";
if (-r $packages_file) {
	print "&nbsp;&nbsp;&nbsp;<input type=checkbox name=refresh value=1> ",
	      "$text{'index_refresh'}\n";
	}
print "<br>\n";

print "<input type=radio name=source value=0> $text{'index_local'}\n";
print "<input name=local size=50>\n";
print &file_chooser_button("local", 0); print "<br>\n";

print "<input type=radio name=source value=1> $text{'index_uploaded'}\n";
print "<input type=file name=upload size=20><br>\n";

print "<input type=radio name=source value=2> $text{'index_ftp'}\n";
print "<input name=url size=50><br>\n";
print "<input type=submit value=\"$text{'index_installok'}\">\n";
print "</form>\n";

print "<hr>\n";
&footer("/", $text{'index'});

 0707010000bb43000081a40000000000000002000000013ac038b90000072d000000200000000000000000000000000000001700000003reloc/cpan/install.cgi    #!/usr/local/bin/perl
# install.cgi
# Install a downloaded perl module

require './cpan-lib.pl';
&ReadParse();
-r $in{'pfile'} || &error(&text('install_efile', "<tt>$in{'pfile'}</tt>"));
&header($text{'install_title'}, "");
print "<hr>\n";

# Untar the perl module
$mod_dir = &tempname($in{'dir'});
system("rm -rf $mod_dir >/dev/null 2>&1");
&show_output($text{'install_untar'}, "/tmp/.webmin",
	     "gunzip -c $in{'pfile'} | tar xvf -");

# Run Makefile.PL and make
&show_output($text{'install_make'}, $mod_dir,
	     "$perl_path Makefile.PL $in{'args'} && make") || &build_error();

# Run make test (if requested)
if ($in{'act'} == 1 || $in{'act'} == 3) {
	&show_output($text{'install_test'}, $mod_dir, "make test") ||
		&build_error();
	}

# Run make install (if requested)
if ($in{'act'} == 2 || $in{'act'} == 3) {
	&show_output($text{'install_install'}, $mod_dir, "make install") ||
		&build_error();
	}

# Clean up files
print "<p>",&text('install_done_'.$in{'act'}, "<tt>$in{'mod'}</tt>"),"<p>\n";
&clean_up();

sub clean_up
{
system("rm -rf $mod_dir");
unlink($in{'pfile'}) if ($in{'need_unlink'});
print "<hr>\n";
&footer("", $text{'index_return'});
}

# show_output(desc, dir, command)
sub show_output
{
local (%seen, $endless_loop);
print "<table border>\n";
print "<tr $tb> <td><b>$_[0]</b></td> </tr>\n";
print "<tr $cb> <td><pre>",&text('install_exec', $_[2]),"\n";
print " " x 100,"\n";
open(CMD, "(cd $_[1] ; $_[2]) 2>&1 </dev/null |");
while(<CMD>) {
	if ($seen{$_}++ > 100) {
		$endless_loop = 1;
		print "\n$text{'install_loop'}\n";
		last;
		}
	while(length($_) > 100) {
		s/^(.{100})//;
		print $1,"\n";
		}
	print;
	}
close(CMD);
print "</pre></td></tr> </table><p>\n";
return $? || $endless_loop ? 0 : 1;
}

sub build_error
{
print "<p>",&text('install_err', "<tt>$in{'mod'}</tt>"),"<p>\n";
&clean_up();
exit;
}

   070701000117e1000041ed0000000000000001000000023ac03bbb00000000000000200000000000000000000000000000001000000003reloc/cpan/lang   070701000117e2000081a40000000000000002000000013ac038b900000816000000200000000000000000000000000000001300000003reloc/cpan/lang/en    index_title=Perl Modules
index_name=Module
index_version=Version
index_desc=Description
index_date=Installed on
index_installmsg=Select a new Perl module to compile and install on your system.
index_cpan=From CPAN, named
index_refresh=Refresh module list from CPAN
index_local=From local file
index_uploaded=From uploaded file
index_ftp=From ftp or http URL
index_installok=Install
index_return=modules list

download_err=Failed to install module
download_elocal=No local file given
download_elocal2='$1' does not exist
download_eupload=Your browser does not support file uploads
download_eurl=Incomprehensible URL '$1'
download_edir=Not a valid $1 directory
download_etar=Failed to extract tar file : $1
download_emod=Not a valid Perl module
download_title=Install Module
download_header=Perl module install options
download_mod=Module name
download_ver=Version
download_act=Install action
download_src=Source
download_m=Make only
download_mt=Make and test
download_mi=Make and install
download_mti=Make, test and install
download_cont=Continue with install
download_epackages=Invalid CPAN modules URL
download_ecpan=Module $1 was not found in the CPAN modules list
download_args=<tt>Makefile.PL</tt> arguments

install_title=Install Module
install_untar=Untarring module file
install_make=Compiling module
install_test=Testing module
install_install=Installing module
install_loop=Possible endless loop in output detected!
install_done_0=Make of $1 successful.
install_done_1=Make and test of $1 successful.
install_done_2=Make and install of $1 successful.
install_done_3=Make, test and install of $1 successful.
install_err=Installation of $1 failed. Check the output above and try installing manually.
install_exec=Executing $1 ..
install_efile=Module file $1 no longer exists

cpan_sel=Modules under $1 ..
cpan_title=Select Perl module

edit_title=Module Details
edit_header=Module information
edit_mod=Module name
edit_version=Module version
edit_desc=Description
edit_date=Installed on
edit_header2=Module documentation
edit_file=Module file
edit_files=Programs
  070701000117e3000081a40000000000000002000000013ac038b9000008ea000000200000000000000000000000000000001300000003reloc/cpan/lang/es    index_title=M骴ulos de Perl
index_name=M骴ulo
index_version=Versi髇
index_desc=Descripci髇
index_date=Instalado en
index_installmsg=Selecciona un nuevo m骴ulo de Perl a compilar e instalar en tu sistema.
index_cpan=Desde CPAN, llamado
index_refresh=Refrescar lista de m骴ulos desde CPAN
index_local=Desde archivo local
index_uploaded=Desde archivo cargado
index_ftp=Desde ftp o URL http
index_installok=Instalar
index_return=lista de m骴ulos

download_err=No pude instalar m骴ulo
download_elocal=No se ha digitado archivo local
download_elocal2='$1' no existe
download_eupload=Tu navegador no soporta cargas de archivo
download_eurl=Incomprensible URL '$1'
download_edir=$1 no es un directorio v醠ido
download_etar=No pude extraer archivo tar: $1
download_emod=No es un m骴ulo de Perl v醠ido
download_title=Instalar M骴ulo
download_header=Opciones de instalaci髇 de m骴ulo de Perl
download_mod=Nombre de M骴ulo
download_ver=Versi髇
download_act=Acci髇 de instalaci髇
download_src=Fuente
download_m=S髄o fabricar
download_mt=Fabricar y probar
download_mi=Fabricar e instalar
download_mti=Fabricar, probar e instalar
download_cont=Continuar con la instalaci髇
download_epackages=URL de m骴ulos CPAN inv醠ida
download_ecpan=El m骴ulo $1 no se encontr en la lista de m骴ulos CPAN
download_args=Argumentos de <tt>Makefile.PL</tt>

install_title=Instalar M骴ulo
install_untar=Extrayendo por tar archivo de m骴ulo
install_make=Compilando m骴ulo
install_test=Probando m醥dulo
install_install=Instalando m骴ulo
install_loop=etectado posible bucle sin fin en la salida!
install_done_0=Fabricaci髇 de $1 con 閤ito.
install_done_1=Fabricaci髇 y prueba de $1 con 閤ito.
install_done_2=Fabricaci髇 e instalaci髇 de $1 con 閤ito.
install_done_3=Fabricaci髇, prueba e instalaci髇 de $1 con 閤ito.
install_err=Fall la instalaci髇 de $1. Revisa la salida superior e intenta instalar manu醠mente.
install_exec=Ejecutando $1...
install_efile=El archivo de m骴ulo $1 ya no existe

cpan_sel=M骴ulos bajo $1...
cpan_title=Selecciona m骴ulo de Perl

edit_title=Detalles de M骴ulo
edit_header=Informaci髇 de M骴ulo
edit_mod=Nombre de m骴ulo
edit_version=Versi髇 de m骴ulo
edit_desc=Descripci髇
edit_date=Instalado en
edit_header2=Documentaci髇 de M骴ulo
edit_file=Archivo de m骴ulo
edit_files=Programas
  070701000117e4000081e40000000000000002000000013ac038b9000008f2000000200000000000000000000000000000001300000003reloc/cpan/lang/nl    index_title=Perl Modules
index_name=Module
index_version=Versie
index_desc=Omschrijving
index_date=Geinstalleerd op
index_installmsg=Selecteer een nieuwe Perl module om te compileren en installeren op uw systeem.
index_cpan=Van CPAN, genaamd
index_refresh=Vernieuw module lijst van CPAN
index_local=Van een lokaal bestand
index_uploaded=Van een geupload bestand
index_ftp=Van ftp of http URL
index_installok=Installeren
index_return=modules lijst

download_err=Fout bij he installeren van de module
download_elocal=Geen lokaal bestand opgegeven
download_elocal2='$1' bestaat niet
download_eupload=Uw browser ondersteund geen bestands uploads
download_eurl=Onbegrijpbare URL '$1'
download_edir=Geen geldige $1 directory
download_etar=Fout bij het uiitpakken van tar bestand : $1
download_emod=Geen geldige Perl module
download_title=Installeer Module
download_header=Perl module installatie opties
download_mod=Module naam
download_ver=Versie
download_act=Installatie actie
download_src=Bron
download_m=Alleen compileren
download_mt=Compileren en testen
download_mi=Compileren en installeren
download_mti=Compileren, testen en installeren
download_cont=Ga verder met installatie
download_epackages=Ongeldige CPAN modules URL
download_ecpan=Module $1 werd nit gevonden in de CPAN modules lijst
download_args=<tt>Makefile.PL</tt> argumenten

install_title=Installeer Module
install_untar=Untarren module bestand
install_make=Compileren module
install_test=Testen module
install_install=Installeren module
install_loop=Mogelijke eindeloze lus in uitvoer ontdekt!
install_done_0=Compilatie van $1 succesvul.
install_done_1=Compilatie en testen van of $1 succesvol.
install_done_2=Compilatie en installatie van $1 succesvol.
install_done_3=Compilatie, testen en installatie van $1 succesvol.
install_err=Installatie van $1 mislukt. Controleer de bovenstaande uitvoer en probeer de module handmatig te installeren.
install_exec=Uitvoeren van $1 ..
install_efile=Module bestand $1 bestaat niet meer

cpan_sel=Modules onder $1 ..
cpan_title=Selecteer Perl module

edit_title=Module Details
edit_header=Module informatie
edit_mod=Module naam
edit_version=Module versie
edit_desc=Omschrijving
edit_date=Geinstalleerd op
edit_header2=Module documentatie
edit_file=Module bestand
edit_files=Programma's
  070701000117e5000081a40000000000000002000000013ac038b900000951000000200000000000000000000000000000001300000003reloc/cpan/lang/pl    index_title=Modu硑 Perla
index_name=Modu
index_version=Wersja
index_desc=Opis
index_date=Zainstalowany
index_installmsg=Wybierz nowy modu Perla do zainstalowania w&nbsp;Twoim systemie.
index_cpan=Z&nbsp;CPAN o&nbsp;nazwie
index_refresh=Od秝ierz list modu丑w z&nbsp;CPAN
index_local=Z&nbsp;pliku lokalnego
index_uploaded=Z&nbsp;pliku przes潮nego
index_ftp=Z&nbsp;URL-a ftp lub http
index_installok=Zainstaluj
index_return=listy modu丑w

download_err=Nie uda硂 sie zainstalowa modu硊
download_elocal=Nie podano pliku lokalnego
download_elocal2='$1' nie istnieje
download_eupload=Twoja przegl眃arka nie obs硊guje przesy硁ia plik體
download_eurl=Niezrozumia硑 URL '$1'
download_edir=Nieprawid硂wy katalog $1
download_etar=Nie uda硂 si roz硂縴 pliku tar&nbsp;: $1
download_emod=Nieprawid硂wy modu Perla
download_title=Zainstaluj modu
download_header=Opcje instalacji modu硊 Perla
download_mod=Nazwa modu硊
download_ver=Wersja
download_act=Dzia砤nie instalacyjne
download_src=瑀骴硂
download_m=Jedynie <tt>make</tt>
download_mt=<tt>Make</tt> i&nbsp;testowanie
download_mi=<tt>Make</tt> i&nbsp;instalacja
download_mti=<tt>Make</tt>, testowanie i&nbsp;instalacja
download_cont=Kontynuuj instalacj
download_epackages=Nieprawid硂wy URL modu丑w CPAN
download_ecpan=Nie znaleziono modu硊 $1 na li禼ie modu丑w CPAN
download_args=Parametry dla <tt>Makefile.PL</tt>

install_title=Zainstaluj modu
install_untar=Roz硂縠nie pliku tar modu硊
install_make=Kompilacja modu硊
install_test=Testowanie modu硊
install_install=Instalacja modu硊
install_loop=Prawdopodobnie wykryto niesko馽zon p阾l w&nbsp;danych wyj禼iowych!
install_done_0=Wykonanie <tt>make</tt> dla $1 powiod硂 si.
install_done_1=Wykonanie <tt>make</tt> i&nbsp;testowanie $1 powiod硑 si.
install_done_2=Wykonanie <tt>make</tt> i&nbsp;instalacja $1 powiod硑 si.
install_done_3=Wykonanie <tt>make</tt>, testowanie i&nbsp;instalacja $1 powiod硑 si.
install_err=Instalacja $1 nie powiod砤 si. Sprawd powy縮ze dane wyj禼iowe i&nbsp;spr骲uj zainstalowa r阠znie.
install_exec=Uruchamianie $1 ..
install_efile=Plik modu硊 $1 ju nie istnieje

cpan_sel=Modu硑 w&nbsp;$1 ..
cpan_title=Wybierz modu Perla

edit_title=Dane modu硊
edit_header=Informacje o&nbsp;module
edit_mod=Nazwa modu硊
edit_version=Wersja modu硊
edit_desc=Opis
edit_date=Zainstalowany
edit_header2=Dokumentacja do modu硊
edit_file=Plik modu硊
edit_files=Programy
   070701000117e6000081a40000000000000002000000013ac038b90000037a000000200000000000000000000000000000001600000003reloc/cpan/lang/ru_RU edit_header2=念牦戾眚圉  祛潴脲
edit_date=玉蜞眍怆屙
cpan_title=蔓徨痂蝈 祛潴朦 Perl
edit_desc=物桉囗桢
edit_file=脏殡 祛潴
edit_mod=褥 祛潴
cpan_sel=填潴腓  $1 ..
edit_title=软纛痨圉  祛潴脲
edit_version=洛瘃 祛潴
install_done_0=暑爨礓 Make 潆 祛潴 $1 - 恹镱腠屙.
install_done_1=暑爨礓 Make  test 潆 祛潴  $1 - 恹镱腠屙.
install_install=玉蜞眍怅 祛潴
install_done_2=暑爨礓 Make  install 潆 祛潴  $1 - 恹镱腠屙.
edit_header=软纛痨圉  祛潴脲
install_done_3=暑爨礓 Make,  test  install 潆 祛潴  $1 - 恹镱腠屙.
install_loop=骂珈铈眍 忸珥桕眍忮龛 徨耜铐鬻眍泐 鲨觌 镳 恹忸溴 疱珞朦蜞蜞!
install_make=暑祜桦鲨 祛潴
install_test=义耱桊钼囗桢 祛潴
edit_files=橡钽疣祆
install_exec=蔓镱腠弪 $1 ..
install_efile=脏殡 祛潴 $1 犷朦 礤 耋耱怏弪
install_err=硒栳赅 篑蜞眍怅 $1. 橡钼屦 耦钺龛 祛潴  镱镳钺箝蝈 篑蜞眍忤螯 怵篦眢.
  070701000117e7000081a40000000000000002000000013ac038b90000037b000000200000000000000000000000000000001600000003reloc/cpan/lang/ru_SU install_make=胂托商衙裳 拖恼萄
install_test=襞釉梢献廖膳 拖恼萄
install_install=跤粤蜗姿 拖恼萄
install_loop=飨谕现蜗 紫谖伤蜗着紊 屡铀衔呸蜗窍 蒙颂 幸 踪紫呐 遗谡特粤粤!
install_done_0=胂土文 Make 奶 拖恼萄 $1 - 踪邢涛盼.
install_done_1=胂土文 Make  test 奶 拖恼萄  $1 - 踪邢涛盼.
install_done_2=胂土文 Make  install 奶 拖恼萄  $1 - 踪邢涛盼.
install_done_3=胂土文 Make,  test  install 奶 拖恼萄  $1 - 踪邢涛盼.
install_err=镗陕肆 沼粤蜗姿 $1. 鹨献乓卦 酉下菖紊 拖恼萄  邢幸下帐耘 沼粤蜗咨载 滓辙握.
install_exec=髻邢涛雅杂 $1 ..
install_efile=媪侍 拖恼萄 $1 孪特叟 闻 诱菖釉渍旁

cpan_sel=硐恼躺  $1 ..
cpan_title=髻屡疑耘 拖恼特 Perl

edit_title=槲葡彝撩裳  拖恼膛
edit_header=槲葡彝撩裳  拖恼膛
edit_mod=橥 拖恼萄
edit_version=髋矣裳 拖恼萄
edit_desc=镄捎廖膳
edit_date=跤粤蜗滋盼
edit_header2=湎苏团卧撩裳  拖恼膛
edit_file=媪侍 拖恼萄
edit_files=鹨锨伊屯 070701000117e8000081a40000000000000002000000013ac038b9000008b0000000200000000000000000000000000000001300000003reloc/cpan/lang/sv    index_title=Perl-moduler
index_name=Modul
index_version=Version
index_desc=Beskrivning
index_date=Installerad p
index_installmsg=Ange en ny Perl-modul som ska kompileras och installeras p ditt system.
index_cpan=Fr錸 CPAN, namn
index_refresh=L鋝 modullistan fr錸 CPAN igen
index_local=Fr錸 lokal fil
index_uploaded=Fr錸 nedladdad fil
index_ftp=Fr錸 ftp- eller http-URL
index_installok=Installera
index_return=modullista

download_err=Det gick inte att installera modulen
download_elocal=Du har inte angivit n錱on lokal fil
download_elocal2='$1' finns inte
download_eupload=Din webbl鋝are st鰀er inte filnedladdning
download_eurl=URL:en '$1' 鋜 obegriplig
download_edir=Det 鋜 inte en giltig $1-katalog
download_etar=Det gick inte att packa upp tar-filen: $1
download_emod=Det 鋜 inte en giltig Perl-modul
download_title=Installera modul
download_header=Inst鋖lningar f鰎 installation av Perl-modul
download_mod=Modulnamn
download_ver=Version
download_act=Installations錿g鋜d
download_src=K鋖lkod
download_m=K鰎 endast make
download_mt=K鰎 make och testa
download_mi=K鰎 make och installera
download_mti=K鰎 make, testa och installera
download_cont=Forts鋞t att installera
download_epackages=Ogiltig URL till CPAN-moduler
download_ecpan=Modulen $1 finns inte i CPAN-modullistan
download_args=Argument till <tt>Makefile.PL</tt>

install_title=Installera modulen
install_untar=Packar upp modulfilerna
install_make=Kompilerar modulen
install_test=Testar modulen
install_install=Installerar modulen
install_loop=Jag har hittat en m鰆lig o鋘dlig loop i utdata!
install_done_0=Make $1 lyckades.
install_done_1=Make och testning av $1 lyckades.
install_done_2=Make och installation av $1 lyckades.
install_done_3=Make, testning och installation av $1 lyckades.
install_err=Det gick inte att installera $1. L鋝 vad som st錼 ovan och f鰎s鰇a tt installera manuellt ist鋖let.
install_exec=Utf鰎 $1 ...
install_efile=Modulfilen $1 finns inte l鋘gre

cpan_sel=Moduler under $1 ...
cpan_title=Ange Perl-modul

edit_title=Modulinformation
edit_header=Modulinformation
edit_mod=Modulnamn
edit_version=Modulversion
edit_desc=Beskrivning
edit_date=Installerad p
edit_header2=Dokumentation f鰎 modulen
edit_file=Modulfil
edit_files=Program
070701000117e9000081a40000000000000002000000013ac038b900000660000000200000000000000000000000000000001600000003reloc/cpan/lang/zh_CN index_title=Perl模块
index_name=模块
index_version=版本
index_desc=描述
index_date=安装日期
index_installmsg=选择一个新的Perl模块编译安装到系统上
index_cpan=来自CPAN,已命名为
index_refresh=刷新CPAN模块列表
index_local=来自本地文件
index_uploaded=来自用户上载文件
index_ftp=来自ftp或者httpd地址
index_installok=安装
index_return=模块列表

download_err=模块安装失败
download_elocal=指定的本地文件不存在
download_elocal2='$1'不存在
download_eupload=您的浏览器不支持文件上传
download_eurl=URL'$1'不存在
download_edir=$1目录不存在
download_etar=不能解开压缩文件$1
download_emod=无效的 Perl 模块
download_title=安装模块
download_header=Perl 模块安装选项
download_mod=模块名
download_ver=版本
download_act=安装方式
download_src=源地址
download_m=仅编译连接
download_mt=编译连接和测试
download_mi=编译连接和安装
download_mti=编译连接,测试和安装
download_cont=继续安装
download_epackages=无效的 CPAN 模块地址
download_ecpan=模块 $1 没有在 CPAN 模块列表中发现

install_title=安装模块
install_untar=解开压缩的模块文件
install_make=编译模块中
install_test=测试模块中
install_install=安装模块中
install_loop=可能在输出中发现的无限循环错误
install_done_0=编译连接 $1 成功
install_done_1=编译连接和测试 $1 成功.
install_done_2=编译连接和安装 $1 成功.
install_done_3=编译连接,测试和安装 $1 成功.
install_err=安装 $1 失败,检测到以上的错误信息,请试着手工安装.
install_exec=执行 $1..
install_efile=模块文件 $1 不再存在

cpan_sel=模块在 $1 下..
cpan_title=选择 Perl 模块

edit_title=模块详细信息
edit_header=模块信息
edit_mod=模块名
edit_version=模块版本号
edit_desc=描述
edit_date=安装日期
edit_header2=模块帮助文档
edit_file=模块文件
edit_files=程序
0707010000bb44000081a40000000000000002000000013ac038b9000000c0000000200000000000000000000000000000001700000003reloc/cpan/module.info    name=CPAN
desc=Perl Modules
desc_pl=Modu硑 Perla
risk=high
desc_sv=Perl-moduler
desc_es=M骴ulos de Perl
desc_zh_CN=Perl 模块
desc_nl=Perl Modules
desc_ru_SU=硐恼躺 Perl
desc_ru_RU=填潴腓 Perl
0707010000bb2b000081a40000000000000002000000013ac0388500000094000000200000000000000000000000000000001a00000003reloc/config-redhat-linux find_pid_command=ps auwwwx | grep NAME | grep -v grep | awk '{ print $2 }'
path=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
ld_env=LD_LIBRARY_PATH
0707010000bb2c000081a40000000000000002000000013ac0388500000094000000200000000000000000000000000000001d00000003reloc/config-slackware-linux  find_pid_command=ps auwwwx | grep NAME | grep -v grep | awk '{ print $2 }'
path=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
ld_env=LD_LIBRARY_PATH
0707010000bb2d000081a40000000000000002000000013ac03885000000c4000000200000000000000000000000000000001500000003reloc/config-solaris  find_pid_command=ps -ef | grep NAME | grep -v grep | awk '{ print $2 }'
path=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
ld_path=/lib:/usr/lib:/usr/openwin/lib:/usr/dt/lib
ld_env=LD_LIBRARY_PATH
0707010000bb2e000081a40000000000000002000000013ac0388600000094000000200000000000000000000000000000001800000003reloc/config-suse-linux   find_pid_command=ps auwwwx | grep NAME | grep -v grep | awk '{ print $2 }'
path=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
ld_env=LD_LIBRARY_PATH
0707010000bb2f000081a40000000000000002000000013ac0388600000094000000200000000000000000000000000000001900000003reloc/config-turbo-linux  find_pid_command=ps auwwwx | grep NAME | grep -v grep | awk '{ print $2 }'
path=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
ld_env=LD_LIBRARY_PATH
0707010000bb30000081a40000000000000002000000013ac03886000000ca000000200000000000000000000000000000001600000003reloc/config-unixware find_pid_command=ps -ef | grep NAME | grep -v grep | awk '{ print $2 }'
path=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
ld_path=/usr/lib:/usr/ccs/lib:/usr/local/lib:/usr/dt/lib
ld_env=LD_LIBRARY_PATH
  0707010000bb31000081e40000000000000002000000013ac0388500001279000000200000000000000000000000000000001100000003reloc/config.cgi  #!/usr/local/bin/perl
# config.cgi
# Display a form for editing the configuration of a module.
# Each module has a number of configurable parameters (stored in the file
# config.txt in the module directory). Descriptions and possible values for
# each option are stored in the file config.info in the module directory.
# Each line of config.info looks like
# name=desc,type[,options]
#  desc - A description of the parameter
#  type - Possible types (and options) are
#	0 - Free text
#	1 - One of many (options are possibilities)
#	2 - Many of many (options are possibilities)
#	3 - Optional free text
#	4 - Like 1, but uses a pulldown menu
#	5 - User name
#	6 - Group name
#	7 - Directory
#	8 - File
#	9 - Multiline text
#	10 - Like 1, but with free text option

require './web-lib.pl';
&init_config();
$m = $ARGV[0];
%access = &get_module_acl(undef, $m);
$access{'noconfig'} &&
	&error($text{'config_ecannot'});
%module_info = &get_module_info($m);
&header($text{'config_title'}, "", undef, 0, 1);
print "<center><font size=+2>",&text('config_dir', $module_info{'desc'}),
      "</font></center>\n";
print "<hr>\n";

&read_file("$m/config.info", \%info, \@info_order);
&read_file("$m/config.info.$current_lang", \%info, \@info_order);
@info_order = &unique(@info_order);
&read_file("$config_directory/$m/config", \%config);

print "<form action=\"config_save.cgi\">\n";
print "<input type=hidden name=module value=\"$m\">\n";
print "<table border>\n";
print "<tr $tb> <td><b>",&text('config_header', $module_info{'desc'}),
      "</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";
foreach $c (@info_order) {
	@p = split(/,/, $info{$c});
	print "<tr> <td valign=top><b>$p[0]</b></td>\n";
	print "<td nowrap>\n";
	$qw = $config{$c} =~ /'/ ? '"' : "'";
	if ($p[1] == 0) {
		$size = $p[2] ? "size=$p[2]" : "size=40";
		$max = $p[3] ? "maxlength=$p[3]" : "";
		print "<input name=\"$c\" $size $max value=$qw$config{$c}$qw>\n";
		}
	elsif ($p[1] == 1) {
		for($i=2; $i<@p; $i++) {
			$p[$i] =~ /^(\S*)\-(.*)$/;
			printf "<input type=radio name=\"$c\" value='$1' %s>\n",
				$config{$c} eq $1 ? "checked" : "";
			print "$2 &nbsp;&nbsp;\n";
			}
		}
	elsif ($p[1] == 2) {
		local %sel;
		map { $sel{$_}++ } split(/,/, $config{$c});
		print "<select name=\"$c\" size=4 multiple>\n";
		for($i=2; $i<@p; $i++) {
			$p[$i] =~ /^(\S+)\-(.*)$/;
			printf "<option value=\"$1\" %s>$2\n",
				$sel{$1} ? "selected" : "";
			}
		print "</select>\n";
		}
	elsif ($p[1] == 3) {
		$none = $p[2] ? $p[2] : $text{'config_none'};
		printf "<input type=radio name=\"%s_none\" value=1 %s> $none\n",
			$c, $config{$c} eq "" ? "checked" : "";
		print "&nbsp;&nbsp;\n";
		printf "<input type=radio name=\"%s_none\" value=0 %s>\n",
			$c, $config{$c} eq "" ? "" : "checked";
		print "<input name=\"$c\" size=20 value=$qw$config{$c}$qw>\n";
		}
	elsif ($p[1] == 4) {
		print "<select name=\"$c\">\n";
		for($i=2; $i<@p; $i++) {
			$p[$i] =~ /^(\S+)\-(.*)$/;
			printf "<option value=\"$1\" %s>$2\n",
				$config{$c} eq $1 ? "selected" : "";
			}
		print "</select>\n";
		}
	elsif ($p[1] == 5) {
		if ($p[2]) {
			printf
			   "<input type=radio name=${c}_def value=1 %s>$p[2]\n",
			   $config{$c} eq "" ? "checked" : "";
			printf "<input type=radio name=${c}_def value=0 %s>\n",
			   $config{$c} eq "" ? "" : "checked";
			}
		print &unix_user_input($c, $config{$c});
		}
	elsif ($p[1] == 6) {
		if ($p[2]) {
			printf
			   "<input type=radio name=${c}_def value=1 %s>$p[2]\n",
			   $config{$c} eq "" ? "checked" : "";
			printf "<input type=radio name=${c}_def value=0 %s>\n",
			   $config{$c} eq "" ? "" : "checked";
			}
		print &unix_group_input($c, $config{$c});
		}
	elsif ($p[1] == 7) {
		print "<input name=\"$c\" size=40 value=$qw$config{$c}$qw> ",
		      &file_chooser_button($c, 1);
		}
	elsif ($p[1] == 8) {
		print "<input name=\"$c\" size=40 value=$qw$config{$c}$qw> ",
		      &file_chooser_button($c, 0);
		}
	elsif ($p[1] == 9) {
		local $cols = $p[2] ? $p[2] : 40;
		local $rows = $p[3] ? $p[3] : 5;
		print "<textarea name=\"$c\" rows=$rows cols=$cols>",
			join("\n", split(/\s+/, $config{$c})),
			"</textarea>\n";
		}
	elsif ($p[1] == 10) {
		local $fv = $config{$c};
		for($i=2; $i<@p; $i++) {
			$p[$i] =~ /^(\S+)\-(.*)$/;
			printf "<input type=radio name=\"$c\" value=$1 %s>\n",
				$config{$c} eq $1 ? "checked" : "";
			print "$2 &nbsp;&nbsp;\n";
			$fv = undef if ($config{$c} eq $1);
			}
		printf "<input type=radio name=\"$c\" value=free %s>\n",
			$fv ? "checked" : "";
		print "<input name=\"${c}_free\" value='$fv'>\n";
		}
	print "</td> </tr>\n";
	}
print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";
print "<hr>\n";
&footer("/$m", $text{'index'});

   0707010000bb32000081e40000000000000002000000013ac038860000068d000000200000000000000000000000000000001600000003reloc/config_save.cgi #!/usr/local/bin/perl
# config_save.cgi
# Save inputs from config.cgi

require './web-lib.pl';
&init_config();
&ReadParse();
$m = $in{'module'};
&read_acl(\%acl);
$acl{$ENV{'REMOTE_USER'},$m} || &error($text{'config_eaccess'});
%access = &get_module_acl(undef, $m);
$access{'noconfig'} && &error($text{'config_ecannot'});

&read_file("$m/config.info", \%info, \@info_order) ||
	&error($text{'config_ecannot'});
&read_file("$m/config.info.$gconfig{'lang'}", \%info, \@info_order);
@info_order = &unique(@info_order);

mkdir("$config_directory/$m", 0700);
&lock_file("$config_directory/$m/config");
&read_file("$config_directory/$m/config", \%config);

foreach $c (@info_order) {
	@p = split(/,/, $info{$c});
	if ($p[1] == 0 || $p[1] == 7 || $p[1] == 8) {
		# Free text input
		$config{$c} = $in{$c};
		}
	elsif ($p[1] == 1 || $p[1] == 4) {
		# One of many
		$config{$c} = $in{$c};
		}
	elsif ($p[1] == 5 || $p[1] == 6) {
		# User or group
		$config{$c} = ($p[2] && $in{$c."_def"} ? "" : $in{$c});
		}
	elsif ($p[1] == 2) {
		# Many of many
		$in{$c} =~ s/\0/,/g;
		$config{$c} = $in{$c};
		}
	elsif ($p[1] == 3) {
		# Optional free text
		if ($in{$c."_none"}) { $config{$c} = ""; }
		else { $config{$c} = $in{$c}; }
		}
	elsif ($p[1] == 9) {
		# Multilines of free text
		$in{$c} =~ s/\n/ /g;
		$in{$c} =~ s/\s+$//;
		$config{$c} = $in{$c};
		}
	elsif ($p[1] == 10) {
		# One of many or free text
		if ($in{$c} eq 'free') {
			$config{$c} = $in{$c.'_free'};
			}
		else {
			$config{$c} = $in{$c};
			}
		}
	}
&write_file("$config_directory/$m/config", \%config);
&unlock_file("$config_directory/$m/config");
&webmin_log("_config_", undef, undef, \%in, $m);
&redirect("/$m/");

   0707010000bb33000081a40000000000000002000000013ac038860000087f000000200000000000000000000000000000001400000003reloc/copyconfig.pl   # copyconfig.pl
# Copy the appropriate config file for each module into the webmin config
# directory. If it is already there, merge in new directives. Called with
# <osname> <osversion> <install dir> <config dir> <module>+

$os = $ARGV[0];
$ver = $ARGV[1];
$wadir = $ARGV[2];
$confdir = $ARGV[3];

# Find all clones
opendir(DIR, $wadir);
foreach $f (readdir(DIR)) {
	if (readlink("$wadir/$f")) {
		@st = stat("$wadir/$f");
		push(@{$clone{$st[1]}}, $f);
		}
	}
closedir(DIR);

# For each module, copy its config to itself and all clones
@mods = @ARGV[4..$#ARGV];
foreach $m (@mods) {
	$srcdir = "$wadir/$m";
	if (-r "$srcdir/config-$os-$ver") {
		$conf = "$srcdir/config-$os-$ver";
		}
	elsif (-r "$srcdir/config-$os") {
		$conf = "$srcdir/config-$os";
		}
	elsif (-r "$srcdir/config") {
		$conf = "$srcdir/config";
		}
	else {
		$conf = "/dev/null";
		}

	@st = stat($srcdir);
	@copyto = ( @{$clone{$st[1]}}, $m );
	foreach $c (@copyto) {
		mkdir("$confdir/$c", 0755);
		undef(%oldconf); undef(%newconf);
		&read_file("$confdir/$c/config", \%oldconf);
		&read_file($conf, \%newconf);
		foreach $k (keys %oldconf) {
			$newconf{$k} = $oldconf{$k};
			}
		&write_file("$confdir/$c/config", \%newconf);
		}

	# copy admin.acl
	if (-r "$srcdir/admin.acl") {
		$conf = "$srcdir/admin.acl";
		}
	else {
		$conf = "/dev/null";
		}
	foreach $c (@copyto) {
		mkdir("$confdir/$c", 0755);
		undef(%oldconf); undef(%newconf);
		&read_file("$confdir/$c/admin.acl", \%oldconf);
		&read_file($conf, \%newconf);
		foreach $k (keys %oldconf) {
			$newconf{$k} = $oldconf{$k};
			}
		&write_file("$confdir/$c/admin.acl", \%newconf);
		}

	}

# read_file(file, array)
# Fill an associative array with name=value pairs from a file
sub read_file
{
local($arr);
$arr = $_[1];
open(ARFILE, $_[0]) || return 0;
while(<ARFILE>) {
        chop;
        if (!/^#/ && /^([^=]+)=(.*)$/) { $$arr{$1} = $2; }
        }
close(ARFILE);
return 1;
}
 
# write_file(file, array)
# Write out the contents of an associative array as name=value lines
sub write_file
{
local($arr);
$arr = $_[1];
open(ARFILE, "> $_[0]");
foreach $k (keys %$arr) {
        print ARFILE "$k=$$arr{$k}\n";
        }
close(ARFILE);
}
 07070100012ed0000041ed0000000000000001000000053ac03bc400000000000000200000000000000000000000000000000b00000003reloc/cron    07070100012ed1000081a40000000000000002000000013ac0388700000593000000200000000000000000000000000000001b00000003reloc/cron/acl_security.pl    
require './cron-lib.pl';

# acl_security_form(&options)
# Output HTML for editing security options for the cron module
sub acl_security_form
{
print "<tr> <td valign=top><b>$text{'acl_users'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=mode value=0 %s> $text{'acl_all'}<br>\n",
	$_[0]->{'mode'} == 0 ? "checked" : "";
printf "<input type=radio name=mode value=1 %s> $text{'acl_only'}\n",
	$_[0]->{'mode'} == 1 ? "checked" : "";
printf "<input name=userscan size=40 value='%s'> %s<br>\n",
	$_[0]->{'mode'} == 1 ? $_[0]->{'users'} : "",
	&user_chooser_button("userscan", 1);
printf "<input type=radio name=mode value=2 %s> $text{'acl_except'}\n",
	$_[0]->{'mode'} == 2 ? "checked" : "";
printf "<input name=userscannot size=40 value='%s'> %s</td> </tr>\n",
	$_[0]->{'mode'} == 2 ? $_[0]->{'users'} : "",
	&user_chooser_button("userscannot", 1);

print "<tr> <td><b>$text{'acl_control'}</b></td> <td>\n";
printf "<input type=radio name=allow value=1 %s> $text{'yes'}\n",
	$_[0]->{'allow'} ? "checked" : "";
printf "<input type=radio name=allow value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'allow'} ? "" : "checked";
}

# acl_security_save(&options)
# Parse the form for security options for the cron module
sub acl_security_save
{
$_[0]->{'mode'} = $in{'mode'};
$_[0]->{'users'} = $in{'mode'} == 0 ? "" :
		   $in{'mode'} == 1 ? $in{'userscan'}
				    : $in{'userscannot'};
$_[0]->{'allow'} = $in{'allow'};
}

 07070100012ed2000081a40000000000000002000000013ac03887000000e1000000200000000000000000000000000000001600000003reloc/cron/config-aix cron_input=1
cron_deny_file=/var/adm/cron/cron.deny
cron_dir=/var/spool/cron/crontabs
cron_delete_command=crontab -r USER
cron_allow_file=/var/adm/cron/cron.allow
cron_get_command=crontab -l USER
cron_deny_all=0
vixie_cron=0
   07070100012ed3000081a40000000000000002000000013ac038870000013b000000200000000000000000000000000000001f00000003reloc/cron/config-cobalt-linux    cron_dir=/var/spool/cron
cron_deny_file=/etc/cron.deny
cron_input=1
cron_delete_command=crontab -u USER -r
cron_edit_command=crontab -u USER -e
vixie_cron=1
cron_deny_all=2
system_crontab=/etc/crontab
cron_allow_file=/etc/cron.allow
cron_get_command=crontab -u USER -l
run_parts=run-parts
cronfiles_dir=/etc/cron.d
 07070100012ed4000081a40000000000000002000000013ac038870000014d000000200000000000000000000000000000001e00000003reloc/cron/config-corel-linux cron_input=1
cron_deny_file=/etc/cron.deny
cron_dir=/var/spool/cron/crontabs
cron_deny_all=2
cron_delete_command=crontab -u USER -r
cron_edit_command=crontab -u USER -e
cron_allow_file=/etc/cron.allow
cron_get_command=crontab -u USER -l
vixie_cron=1
run_parts=run-parts --report
system_crontab=/etc/crontab
cronfiles_dir=/etc/cron.d
   07070100012ed5000081a40000000000000002000000013ac0388600000106000000200000000000000000000000000000001f00000003reloc/cron/config-debian-linux    cron_input=1
cron_deny_file=/var/spool/cron/deny
cron_dir=/var/spool/cron/crontabs
cron_deny_all=2
cron_delete_command=crontab -u USER -r
cron_edit_command=crontab -u USER -e
cron_allow_file=/var/spool/cron/allow
cron_get_command=crontab -u USER -l
vixie_cron=0
  07070100012ed6000081a40000000000000002000000013ac0388700000150000000200000000000000000000000000000002300000003reloc/cron/config-debian-linux-2.1    cron_input=1
cron_deny_file=/var/spool/cron/deny
cron_dir=/var/spool/cron/crontabs
cron_deny_all=2
cron_delete_command=crontab -u USER -r
cron_edit_command=crontab -u USER -e
cron_allow_file=/var/spool/cron/allow
cron_get_command=crontab -u USER -l
vixie_cron=1
system_crontab=/etc/crontab
cronfiles_dir=/etc/cron.d
run_parts=run-parts
07070100012ed7000081a40000000000000002000000013ac0388700000150000000200000000000000000000000000000002300000003reloc/cron/config-debian-linux-2.2    cron_input=1
cron_deny_file=/var/spool/cron/deny
cron_dir=/var/spool/cron/crontabs
cron_deny_all=2
cron_delete_command=crontab -u USER -r
cron_edit_command=crontab -u USER -e
cron_allow_file=/var/spool/cron/allow
cron_get_command=crontab -u USER -l
vixie_cron=1
system_crontab=/etc/crontab
cronfiles_dir=/etc/cron.d
run_parts=run-parts
07070100012ed8000081a40000000000000002000000013ac038870000010d000000200000000000000000000000000000001a00000003reloc/cron/config-freebsd cron_dir=/var/cron/tabs
cron_deny_file=/var/cron/deny
cron_input=1
cron_delete_command=crontab -u USER -r
cron_edit_command=crontab -u USER -e
vixie_cron=1
cron_deny_all=2
system_crontab=/etc/crontab
cron_allow_file=/var/cron/allow
cron_get_command=crontab -u USER -l

   07070100012ed9000081a40000000000000002000000013ac0388600000118000000200000000000000000000000000000001700000003reloc/cron/config-hpux    cron_input=1
cron_deny_file=/var/adm/cron/cron.deny
cron_dir=/var/spool/cron/crontabs
cron_delete_command=su USER -c "crontab -r"
cron_copy_command=su USER -c "crontab"
cron_allow_file=/var/adm/cron/cron.allow
cron_get_command=su USER -c "crontab -l"
cron_deny_all=1
vixie_cron=0
07070100012eda000081a40000000000000002000000013ac038870000011a000000200000000000000000000000000000001700000003reloc/cron/config-irix    cron_dir=/var/spool/cron/crontabs
cron_deny_file=/etc/cron.d/cron.deny
cron_input=1
cron_delete_command=crontab -r USER
cron_edit_command=
vixie_cron=0
cron_deny_all=1
cron_copy_command=crontab
system_crontab=
cron_allow_file=/etc/cron.d/cron.allow
cron_get_command=crontab -l USER
  07070100012edb000081a40000000000000002000000013ac038870000010c000000200000000000000000000000000000001800000003reloc/cron/config-macos   cron_deny_file=/var/cron/deny
cron_dir=/var/cron/tabs
cron_input=1
cron_delete_command=crontab -u USER -r
vixie_cron=1
cron_deny_all=2
system_crontab=/etc/crontab
cron_get_command=crontab -u USER -l
cron_allow_file=/var/cron/allow
cron_edit_command=crontab -u USER -e
07070100012edc000081a40000000000000002000000013ac0388700000165000000200000000000000000000000000000001d00000003reloc/cron/config-open-linux  cron_dir=/var/spool/cron
cron_deny_file=/etc/cron.deny
cron_input=1
cron_delete_command=crontab -u USER -r
cron_edit_command=crontab -u USER -e
vixie_cron=1
cron_deny_all=2
system_crontab=/etc/crontab
cron_allow_file=/etc/cron.allow
cron_get_command=crontab -u USER -l
run_parts=/usr/sbin/cronloop
run_parts_dir=/etc/cron.d
cronfiles_dir=/etc/cron.d/tabs.d
   07070100012edd000081a40000000000000002000000013ac038870000010d000000200000000000000000000000000000001a00000003reloc/cron/config-openbsd cron_dir=/var/cron/tabs
cron_deny_file=/var/cron/deny
cron_input=1
cron_delete_command=crontab -u USER -r
cron_edit_command=crontab -u USER -e
vixie_cron=1
cron_deny_all=2
system_crontab=/etc/crontab
cron_allow_file=/var/cron/allow
cron_get_command=crontab -u USER -l

   07070100012ede000081a40000000000000002000000013ac03887000000ff000000200000000000000000000000000000001d00000003reloc/cron/config-openserver  cron_input=1
cron_deny_file=/etc/cron.d/cron.deny
cron_dir=/var/spool/cron/crontabs
cron_delete_command=crontab -r USER
cron_edit_command=crontab -e USER
cron_allow_file=/etc/cron.d/cron.allow
cron_get_command=crontab -l USER
cron_deny_all=0
vixie_cron=0
 07070100012edf000081a40000000000000002000000013ac0388700000126000000200000000000000000000000000000001700000003reloc/cron/config-osf1    cron_deny_file=/usr/lib/cron/cron.deny
cron_dir=/var/spool/cron/crontabs
cron_input=1
cron_delete_command=crontab -r USER
cron_edit_command=crontab -e USER
vixie_cron=0
cron_deny_all=1
cron_copy_command=
system_crontab=
cron_get_command=crontab -l USER
cron_allow_file=/usr/lib/cron/cron.allow
  07070100012ee0000081a40000000000000002000000013ac038860000013b000000200000000000000000000000000000001f00000003reloc/cron/config-redhat-linux    cron_dir=/var/spool/cron
cron_deny_file=/etc/cron.deny
cron_input=1
cron_delete_command=crontab -u USER -r
cron_edit_command=crontab -u USER -e
vixie_cron=1
cron_deny_all=2
system_crontab=/etc/crontab
cron_allow_file=/etc/cron.allow
cron_get_command=crontab -u USER -l
run_parts=run-parts
cronfiles_dir=/etc/cron.d
 07070100012ee1000081a40000000000000002000000013ac03886000000d4000000200000000000000000000000000000002200000003reloc/cron/config-slackware-linux cron_input=0
cron_deny_file=
cron_dir=/var/spool/cron/crontabs
cron_deny_all=2
cron_delete_command=crontab -d USER
cron_edit_command=crontab -e USER
cron_allow_file=
cron_get_command=crontab -l USER
vixie_cron=0
07070100012ee2000081a40000000000000002000000013ac03886000000ff000000200000000000000000000000000000001a00000003reloc/cron/config-solaris cron_input=1
cron_deny_file=/etc/cron.d/cron.deny
cron_dir=/var/spool/cron/crontabs
cron_delete_command=crontab -r USER
cron_edit_command=crontab -e USER
cron_allow_file=/etc/cron.d/cron.allow
cron_get_command=crontab -l USER
cron_deny_all=0
vixie_cron=0
 07070100012ee7000081a40000000000000002000000013ac03887000000ff000000200000000000000000000000000000001b00000003reloc/cron/config-unixware    cron_input=1
cron_deny_file=/etc/cron.d/cron.deny
cron_dir=/var/spool/cron/crontabs
cron_delete_command=crontab -r USER
cron_edit_command=crontab -e USER
cron_allow_file=/etc/cron.d/cron.allow
cron_get_command=crontab -l USER
cron_deny_all=0
vixie_cron=0
 07070100012ee3000081a40000000000000002000000013ac0388700000127000000200000000000000000000000000000001d00000003reloc/cron/config-suse-linux  vixie_cron=1
cron_deny_all=2
system_crontab=/etc/crontab
cron_allow_file=/var/cron/allow
cron_get_command=crontab -u USER -l
cron_delete_command=crontab -u USER -r
cron_edit_command=crontab -u USER -e
cron_dir=/var/cron/tabs
cron_deny_file=/var/cron/deny
cron_input=1
cronfiles_dir=/etc/cron.d

 07070100012ee4000081a40000000000000002000000013ac038870000012d000000200000000000000000000000000000002100000003reloc/cron/config-suse-linux-7.0  vixie_cron=1
cron_deny_all=2
system_crontab=/etc/crontab
cron_allow_file=/var/cron/allow
cron_get_command=crontab -u USER -l
cron_delete_command=crontab -u USER -r
cron_edit_command=crontab -u USER -e
cron_dir=/var/spool/cron/tabs
cron_deny_file=/var/cron/deny
cron_input=1
cronfiles_dir=/etc/cron.d

   07070100012ee5000081a40000000000000002000000013ac038870000012d000000200000000000000000000000000000002100000003reloc/cron/config-suse-linux-7.1  vixie_cron=1
cron_deny_all=2
system_crontab=/etc/crontab
cron_allow_file=/var/cron/allow
cron_get_command=crontab -u USER -l
cron_delete_command=crontab -u USER -r
cron_edit_command=crontab -u USER -e
cron_dir=/var/spool/cron/tabs
cron_deny_file=/var/cron/deny
cron_input=1
cronfiles_dir=/etc/cron.d

   07070100012ee6000081a40000000000000002000000013ac038870000013b000000200000000000000000000000000000001e00000003reloc/cron/config-turbo-linux cron_dir=/var/spool/cron
cron_deny_file=/etc/cron.deny
cron_input=1
cron_delete_command=crontab -u USER -r
cron_edit_command=crontab -u USER -e
vixie_cron=1
cron_deny_all=2
system_crontab=/etc/crontab
cron_allow_file=/etc/cron.allow
cron_get_command=crontab -u USER -l
run_parts=run-parts
cronfiles_dir=/etc/cron.d
 07070100012ee8000081a40000000000000002000000013ac03886000002c0000000200000000000000000000000000000001700000003reloc/cron/config.info    cron_dir=Crontab Directory,0
cron_get_command=Command to read a user's cron job,0
cron_edit_command=Command to edit a user's cron job,0
cron_copy_command=Command to accept a user's cron job on stdin,0
cron_delete_command=Command to delete a user's cron jobs,0
cron_input=Cron supports input to cron jobs,1,1-Yes,0-No
cron_allow_file=File listing allowed users,0
cron_deny_file=File listing denied users,0
cron_deny_all=Permissions without allow or deny files,1,0-Deny all,1-Deny all except root,2-Allow all
vixie_cron=Supports Vixie-Cron extensions,1,1-Yes,0-No
system_crontab=Path to Vixie-Cron system crontab file,0
cronfiles_dir=Path to extra cron files directory,3,None
run_parts=run-parts command,0
07070100012ee9000081a40000000000000002000000013ac0388700000367000000200000000000000000000000000000001a00000003reloc/cron/config.info.de cron_dir=Crontab Verzeichnis,0
cron_get_command=Kommando zum Lesen der Cron Jobs eines Benutzers,0
cron_edit_command=Kommando zum Bearbeiten der Cron Jobs eines Benutzers,0
cron_copy_command=Kommando zum Akzeptieren eines Cron Jobs eines Benutzers auf stdin,0
cron_delete_command=Kommando zum L&ouml;schen eines Cron Jobs eines Benutzers,0
cron_input=Cron unterst&uuml;tzt Eingabe zu Cron Jobs,1,1-Ja,0-Nein
cron_allow_file=Benutzer, denen das auflisten gestattet ist,0
cron_deny_file=Benutzer, denen das auflisten nicht gestattet ist,0
cron_deny_all=Rechte ohne Allow oder Deny Dateien,1,0-Verweigere Alle,1-Verweigere alle ausser root,2-Gestatte Alle
vixie_cron=Unterstz&uuml;tzt Vixie-Cron Erweiterungen,1,1-Ja,0-Nein
system_crontab=Pfad zur Vixie-Cron System Crontab Datei,0
cronfiles_dir=Pfad zum extra Cron Dateien Verzeichnis,3,None
run_parts=run-parts Kommando,0
 07070100012eea000081a40000000000000002000000013ac038870000036e000000200000000000000000000000000000001a00000003reloc/cron/config.info.es cron_dir=Directorio de Crontab,0
cron_get_command=Comando para leer una tarea de usuario de cron,0
cron_edit_command=Comando para editar una tarea de cron de usuario,0
cron_copy_command=Comando para aceptar una tarea de usuario de cron desde la entrada est醤dar,0
cron_delete_command=Comando para borrar tarea de usuario de cron,0
cron_input=Cron soporta entrada a tareas de cron,1,1-S,0-No
cron_allow_file=Usuarios autorizados a listar archivos,0
cron_deny_file=Usuarios denegados a listar archivos,0
cron_deny_all=Permisos sin archivos que autorizar o denegar,1,0-Denegar a todos,1-Denegar a todos excepto a root,2-Autorizar a todos
vixie_cron=Soporta extensiones de Vixie-Cron,1,1-S,0-No
system_crontab=Trayectoria a archivo crontab de sistema Vixie-Cron,0
cronfiles_dir=Trayectoria a directorio de archivos extra de cron,3,Ninguna
run_parts=comando para ejecutar-partes,0
  07070100012eeb000081a40000000000000002000000013ac038870000033e000000200000000000000000000000000000001a00000003reloc/cron/config.info.fr cron_dir=R閜ertoire des t鈉hes cron,0
cron_get_command=Commande pour lire les t鈉hes cron,0
cron_edit_command=Commande pour 閐iter les t鈉hes cron,0
cron_copy_command=Commande pour accepter une t鈉he cron de l'entr閑 standard,0
cron_delete_command=Commande pour supprimer les t鈉hes cron,0
cron_input=Cron supporte les entr閑s pour les t鈉hes cron,1,1-Oui,0-Non
cron_allow_file=Fichier listant les utilisateurs autoris閟,0
cron_deny_file=Fichier listant les utilisateurs interdits,0
cron_deny_all=Permissions sans fichier d'autorisation ni d'interdiction,1,0-Tous refuser,1-Tous refuser sauf root,2-Tous accepter
vixie_cron=Supporte les extensions Vixie-Cron,1,1-Oui,0-Non
system_crontab=Chemin du fichier des t鈉hes cron Vixie-Cron,0
cronfiles_dir=Chemin des fichiers suppl閙entaire cron,3,Aucun
run_parts=Commande 'run-parts',0
  07070100012eec000081e40000000000000002000000013ac038870000034d000000200000000000000000000000000000001a00000003reloc/cron/config.info.nl cron_dir=Crontab Directory,0
cron_get_command=Commando voor het lezen van een gebruikers cron job,0
cron_edit_command=Commando voor het bewerken van een gebruikers cron job,0
cron_copy_command=Commando voor het accepteren van een gebruikers cron job op stdin,0
cron_delete_command=Commando voor het verwijderen van een gebruikers cron jobs,0
cron_input=Cron ondersteund invoer naar cron jobs,1,1-Ja,0-Nee
cron_allow_file=Bestand met toegestane gebruikers,0
cron_deny_file=Bestand met geweigerde gebruikers,0
cron_deny_all=Rechten zonder toestaan of weigeren van bestanden,1,0-Weiger alles,1-Weiger alles behalve root,2-Accepteer alles
vixie_cron=Ondersteund Vixie-Cron extensies,1,1-Ja,0-Nee
system_crontab=Pad naar Vixie-Cron systeem crontab bestand,0
cronfiles_dir=Pad naar extra cron bestanden directory,3,Geen
run_parts=Run-parts commando,0
   07070100012eed000081a40000000000000002000000013ac038870000034d000000200000000000000000000000000000001a00000003reloc/cron/config.info.pl cron_dir=Katalog tablic crona,0
cron_get_command=Polecenie czytania zada u縴tkownika dla crona,0
cron_edit_command=Polecenie modyfikacji zada u縴tkownika dla crona,0
cron_copy_command=Polecenie przyj阠ia zadania u縴tkownika ze standardowego wej禼ia,0
cron_delete_command=Polecenie usuni阠ia zada u縴tkownika dla crona,0
cron_input=Cron pozwala na dodawanie zada,1,1-Tak,0-Nie
cron_allow_file=Plik z list dopuszczonych u縴tkownik體,0
cron_deny_file=Plik z list u縴tkownik體 bez dost阷u,0
cron_deny_all=Uprawnienia przy braku plik體 pozwole/zakazu,1,0-Zablokuj dla wszystkich,1-Zablokuj opr骳z roota,2-Pozw髄 wszystkim
vixie_cron=Obsluga rozszerze vixie-crona,1,1-Tak,0-Nie
system_crontab=Scie縦a do systemowego pliku zada vixie-crona,0
cronfiles_dir=ie縦a do katalogu z dodatkowymi plikami crona,3,Brak
run_parts=polecenie run-parts,0
   07070100012eee000081a40000000000000002000000013ac038870000034b000000200000000000000000000000000000001d00000003reloc/cron/config.info.ru_RU  cron_deny_file=脏殡 耦 耧桉觐 玎镳妁屙睇 镱朦珙忄蝈脲,0
cron_dir=枢蜞腩 蜞犭桷 Crontab,0
cron_input=项滗屦骅忄弪 腓 Cron 忖钿 潆 疋铊 玎溧龛,1,1-泥,0-湾
cron_delete_command=暑爨礓 潆 箐嚯屙 玎溧龛 镱朦珙忄蝈,0
cronfiles_dir=象螯  赅蜞腩泱  漕镱腠栩咫 羿殡囔,3,湾
cron_edit_command=暑爨礓 潆 疱溧牝桊钼囗 玎溧龛 镱朦珙忄蝈,0
vixie_cron=项滗屦骅忄弪 疣聒桊龛 Vixie-Cron,1,1-泥,0-湾
cron_deny_all=橡噔 漕耱箫  耠篦噱 铗耋蝰忤 羿殡钼 耦 耧桉赅扈 漕耱箫,1,0-青镳弪栩 怦屐,1-青镳弪栩 怦屐 牮铎 root,2-朽琊屮栩 怦屐
cron_copy_command=暑爨礓 潆 玎镨耔 玎溧龛 镱朦珙忄蝈 磬 耱囗溧痦 怩钿,0
system_crontab=象螯  耔耱屐眍祗 羿殡 crontab 潆 Vixie-Cron,0
run_parts=暑爨礓 run-parts,0
cron_get_command=暑爨礓 潆 黩屙 玎溧龛 镱朦珙忄蝈,0
cron_allow_file=脏殡 耦 耧桉觐 疣琊屮屙睇 镱朦珙忄蝈脲,0
 07070100012eef000081a40000000000000002000000013ac038870000034b000000200000000000000000000000000000001d00000003reloc/cron/config.info.ru_SU  cron_dir=肓粤滔 粤绿擅 Crontab,0
cron_get_command=胂土文 奶 拊盼裳 诹牧紊 邢特谙琢耘萄,0
cron_edit_command=胂土文 奶 遗牧嗽梢献廖裳 诹牧紊 邢特谙琢耘萄,0
cron_copy_command=胂土文 奶 诹猩由 诹牧紊 邢特谙琢耘萄 瘟 釉廖牧椅偈 兹夏,0
cron_delete_command=胂土文 奶 漳撂盼裳 诹牧紊 邢特谙琢耘萄,0
cron_input=鹣哪乓稚琢旁 躺 Cron 鬃夏 奶 幼仙 诹牧紊,1,1-淞,0-钆
cron_allow_file=媪侍 酉 有捎讼 伊谝袍盼钨 邢特谙琢耘膛,0
cron_deny_file=媪侍 酉 有捎讼 诹幸泡盼钨 邢特谙琢耘膛,0
cron_deny_all=鹨磷 南釉招  犹辙僚 显诱杂咨 屏侍献 酉 有捎肆蜕 南釉招,1,0-幸旁稍 子磐,1-幸旁稍 子磐 艘贤 root,2-蛄谝袍稍 子磐
vixie_cron=鹣哪乓稚琢旁 伊盂梢紊 Vixie-Cron,1,1-淞,0-钆
system_crontab=鹫载  由釉磐蜗驼 屏侍 crontab 奶 Vixie-Cron,0
cronfiles_dir=鹫载  肆粤滔钦  南邢涛稍盘匚偻 屏侍镣,3,钆
run_parts=胂土文 run-parts,0
 07070100012ef0000081a40000000000000002000000013ac03887000002ff000000200000000000000000000000000000001a00000003reloc/cron/config.info.sv cron_dir=Crontab-katalog,0
cron_get_command=Kommando f鰎 att se en anv鋘dares cron-jobb,0
cron_edit_command=Kommando f鰎 att 鋘dra en anv鋘dares cron-jobb,0
cron_copy_command=Kommando f鰎 att ta emot en anv鋘dares cron-jobb p stdin,0
cron_delete_command=Kommando f鰎 att ta bort en anv鋘dares cron-jobb,0
cron_input=Cron st鰀jer inmatning till cron-jobb,1,1-Ja,0-Nej
cron_allow_file=Fil med till錿na anv鋘dare,0
cron_deny_file=Fil med f鰎bjudna anv鋘dare,0
cron_deny_all=R鋞tigheter utan allow- eller deny-filer,1,0-F鰎bjud alla,1-F鰎bjud alla utom root,2-Till錿 alla
vixie_cron=St鰀jers Vixie-Cron-till鋑g,1,1-Ja,0-Nej
system_crontab=S鰇v鋑 till Vixie-Cron:s systemcrontabfil,0
cronfiles_dir=S鰇v鋑 till extra cron-filkatalog,3,Ingen
run_parts=run-parts-kommando,0
 07070100012ef1000081a40000000000000002000000013ac0388700000349000000200000000000000000000000000000001a00000003reloc/cron/config.info.tr cron_dir=Crontab Dizini,0
cron_get_command=Kullan齝齨齨 cron'u okumas i鏸n gerekli komut,0
cron_edit_command=Kullan齝齨齨 cron'u de餴⺶irmesi i鏸n gerekli komut,0
cron_copy_command=Standart girieride kullan齝齨齨 cron'unun kabul edilmesi i鏸n gerekli komut,0
cron_delete_command=Kullan齝齨齨 cron'unun silmek i鏸n gerekli komut,0
cron_input=Cron supports input to cron jobs,1,1-Evet,0-Hay齬
cron_allow_file=輟in verilen kullan齝齦ar齨 listelendi餴 dosya,0
cron_deny_file=輟in verilmeyen kullan齝齦ar齨 listelendi餴 dosya,0
cron_deny_all=輟in dosyalar齨齨 d齨daki haklar,1,0-Hepsini reddet,1-Root d齨da hepsini reddet,2-Hepsini kabul et
vixie_cron=Vixie-Cron uzant齦ar deste餴,1,1-Evet,0-Hay齬
system_crontab=Vixie-Cron sistem crontab dosyas yolu,0
cronfiles_dir=Ekstra cron dosyalar dizini yolu,3,None
run_parts=run-parts komutu,0
   07070100012ef2000081a40000000000000002000000013ac038870000022b000000200000000000000000000000000000001d00000003reloc/cron/config.info.zh_CN  cron_dir=Crontab目录,0
cron_get_command=读用户调度任务命令,0
cron_edit_command=编辑用户调度任务命令,0
cron_copy_command=从标准输入接收调度任务的命令,0
cron_delete_command=删除调度任务的命令,0
cron_input=Cron支持输入调度任务,1,1-是,0-不
cron_allow_file=文件中列出的被允许的用户,0
cron_deny_file=文件中列出的被禁止的用户,0
cron_deny_all=没有允许或禁止文件的限制,1,0-禁止所有,1-除根外禁止所有,2-允许所有
vixie_cron=支持Vixie-Cron扩展,1,1-是,0-不
system_crontab=Vixie-Cron的crontab系统文件路径,0
cronfiles_dir=其它cron文件目录,3,没有
run_parts=运行部分命令,0
 07070100012ef3000081a40000000000000002000000013ac0388700000298000000200000000000000000000000000000002200000003reloc/cron/config.info.zh_TW.Big5 cron_dir=﹚磅︽郎 (crontab) 隔畖,0
cron_get_command=弄ㄏノ﹚磅︽,0
cron_edit_command=絪胯ㄏノ﹚磅︽,0
cron_copy_command=钡ㄏノパ夹非块块﹚磅︽,0
cron_delete_command=埃ㄏノ﹚磅︽,0
cron_input=﹚磅︽琌や穿块﹚磅︽?,1,1-琌,0-
cron_allow_file=す砛ㄏノ嘿郎,0
cron_deny_file=┶荡ㄏノ嘿郎,0
cron_deny_all=ぃヴいㄏノ舦,1,0-┶荡场,1-┶荡 (埃root ),2-す砛场
vixie_cron=琌や穿 Vixie ﹚磅︽耎?,1,1-琌,0-
system_crontab= Vixie ﹚磅︽╰参郎隔畖,0
cronfiles_dir=肂﹚磅︽郎隔畖,3,None
run_parts=磅︽场だ,0
07070100012ef4000081a40000000000000002000000013ac0388600001daa000000200000000000000000000000000000001700000003reloc/cron/cron-lib.pl    # cron-lib.pl
# Common cront table functions

do '../web-lib.pl';
&init_config();
$cron_temp_file = &tempname("cronadmin_temp");

# list_cron_jobs()
# Returns a lists of structures of all cron jobs
sub list_cron_jobs
{
local (@rv, $lnum, $f);

# read the master crontab file
if ($config{'vixie_cron'}) {
	$lnum = 0;
	open(TAB, $config{'system_crontab'});
	while(<TAB>) {
		if (/^(#+)?\s*(-)?\s*([0-9\-\*\/,]+)\s+([0-9\-\*\/,]+)\s+([0-9\-\*\/,]+)\s+([0-9\-\*\/,]+)\s+([0-9\-\*\/,]+)\s+(\S+)\s+(.*)/) {
			push(@rv, { 'file' => $config{'system_crontab'},
				    'line' => $lnum,
				    'type' => 1,
				    'nolog' => $2,
				    'active' => !$1,
				    'mins' => $3, 'hours' => $4,
				    'days' => $5, 'months' => $6,
				    'weekdays' => $7, 'user' => $8,
				    'command' => $9,
				    'index' => scalar(@rv) });
			if ($rv[$#rv]->{'user'} =~ /^\//) {
				# missing the user, as in redhaty 7 !
				$rv[$#rv]->{'command'} = $rv[$#rv]->{'user'}.
					' '.$rv[$#rv]->{'command'};
				$rv[$#rv]->{'user'} = 'root';
				}
			}
		$lnum++;
		}
	close(TAB);
	}

# read package-specific cron files
opendir(DIR, $config{'cronfiles_dir'});
while($f = readdir(DIR)) {
	next if ($f =~ /^\./);
	$lnum = 0;
	open(TAB, "$config{'cronfiles_dir'}/$f");
	while(<TAB>) {
		if (/^(#+)?\s*(-)?\s*([0-9\-\*\/,]+)\s+([0-9\-\*\/,]+)\s+([0-9\-\*\/,]+)\s+([0-9\-\*\/,]+)\s+([0-9\-\*\/,]+)\s+(\S+)\s+(.*)/) {
			push(@rv, { 'file' => "$config{'cronfiles_dir'}/$f",
				    'line' => $lnum,
				    'type' => 2,
				    'active' => !$1,
				    'nolog' => $2,
				    'mins' => $3, 'hours' => $4,
				    'days' => $5, 'months' => $6,
				    'weekdays' => $7, 'user' => $8,
				    'command' => $9,
				    'index' => scalar(@rv) });
			}
		$lnum++;
		}
	close(TAB);
	}
closedir(DIR);

# read per-user cron files
opendir(DIR, $config{'cron_dir'});
while($f = readdir(DIR)) {
	next if ($f =~ /^\./ || !(@uinfo = getpwnam($f)));
	$lnum = 0;
	open(TAB, "$config{'cron_dir'}/$f");
	while(<TAB>) {
		if (/^(#+)?\s*(-)?\s*([0-9\-\*\/,]+)\s+([0-9\-\*\/,]+)\s+([0-9\-\*\/,]+)\s+([0-9\-\*\/,]+)\s+([0-9\-\*\/,]+)\s+(.*)/) {
			push(@rv, { 'file' => "$config{'cron_dir'}/$f",
				    'line' => $lnum,
				    'type' => 0,
				    'active' => !$1, 'nolog' => $2,
				    'mins' => $3, 'hours' => $4,
				    'days' => $5, 'months' => $6,
				    'weekdays' => $7, 'user' => $f,
				    'command' => $8,
				    'index' => scalar(@rv) });
			}
		$lnum++;
		}
	close(TAB);
	}
closedir(DIR);
return @rv;
}

sub cron_job_line
{
local @c;
push(@c, "#") if (!$_[0]->{'active'});
push(@c, ($_[0]->{'nolog'} ? '-' : '').$_[0]->{'mins'},
         $_[0]->{'hours'}, $_[0]->{'days'},
	 $_[0]->{'months'}, $_[0]->{'weekdays'});
push(@c, $_[0]->{'user'}) if ($_[0]->{'type'});
push(@c, $_[0]->{'command'});
return join(" ", @c);
}

# create_cron_job(&job)
sub create_cron_job
{
unlink($cron_temp_file);
system("cp $config{'cron_dir'}/$_[0]->{'user'} $cron_temp_file 2>/dev/null");
open(TAB, ">>$cron_temp_file");
print TAB &cron_job_line($_[0]),"\n";
close(TAB);
&copy_crontab($_[0]->{'user'});
}

# change_cron_job(&job)
sub change_cron_job
{
if ($_[0]->{'type'} == 0) {
	unlink($cron_temp_file);
	system("cp $config{'cron_dir'}/$_[0]->{'user'} $cron_temp_file");
	&replace_file_line($cron_temp_file, $_[0]->{'line'},
			   &cron_job_line($_[0])."\n");
	&copy_crontab($_[0]->{'user'});
	}
else {
	&replace_file_line($_[0]->{'file'}, $_[0]->{'line'},
			   &cron_job_line($_[0])."\n");
	}
}

# delete_cron_job(&job)
sub delete_cron_job
{
if ($_[0]->{'type'} == 0) {
	unlink($cron_temp_file);
	system("cp $config{'cron_dir'}/$_[0]->{'user'} $cron_temp_file");
	&replace_file_line($cron_temp_file, $_[0]->{'line'});
	&copy_crontab($_[0]->{'user'});
	}
else {
	&replace_file_line($_[0]->{'file'}, $_[0]->{'line'});
	}
}

# read_crontab(user)
# Return an array containing the lines of the cron table for some user
sub read_crontab
{
local(@tab);
open(TAB, "$config{cron_dir}/$_[0]");
@tab = <TAB>;
close(TAB);
if ($config{vixie_cron} && $tab[0] =~ /DO NOT EDIT/ &&
    $tab[1] =~ /^\s*#/ && $tab[2] =~ /^\s*#/) {
	@tab = @tab[3..$#tab];
	}
return @tab;
}


# copy_crontab(user)
sub copy_crontab
{
local($pwd);
if (`cat $cron_temp_file` =~ /\S/) {
	if ($config{'cron_edit_command'}) {
		# fake being an editor
		chop($pwd = `pwd`);
		$ENV{"VISUAL"} = $ENV{"EDITOR"} = "$pwd/cron_editor.pl";
		$ENV{"CRON_EDITOR_COPY"} = $cron_temp_file;
		system(&user_sub($config{cron_edit_command},$_[0]).
		       " >/dev/null 2>/dev/null");
		}
	else {
		# use the cron copy command
		system(&user_sub($config{cron_copy_command},$_[0]).
		       " <$cron_temp_file >/dev/null 2>/dev/null");
		}
	}
else {
	system(&user_sub($config{cron_delete_command},$_[0]).
	       " >/dev/null 2>/dev/null");
	}
unlink($cron_temp_file);
}


# parse_job(job)
# Parse a crontab line into an array containing:
#  active, mins, hrs, days, mons, weekdays, command
sub parse_job
{
local($job, $active) = ($_[0], 1);
if ($job =~ /^#+\s*(.*)$/) {
	$active = 0;
	$job = $1;
	}
$job =~ /^\s*(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(.*)$/;
return ($active, $1, $2, $3, $4, $5, $6);
}

# user_sub(command, user)
# Replace the string 'USER' in the command with the user name
sub user_sub
{
local($tmp);
$tmp = $_[0];
$tmp =~ s/USER/$_[1]/g;
return $tmp;
}


# list_allowed()
# Returns a list of all users in the cron allow file
sub list_allowed
{
local(@rv, $_);
open(ALLOW, $config{cron_allow_file});
while(<ALLOW>) {
	chop; push(@rv, $_);
	}
close(ALLOW);
return @rv;
}


# list_denied()
# Return a list of users from the cron deny file
sub list_denied
{
local(@rv, $_);
open(DENY, $config{cron_deny_file});
while(<DENY>) {
	chop; push(@rv, $_);
	}
close(DENY);
return @rv;
}


# save_allowed(user, user, ...)
# Save the list of allowed users
sub save_allowed
{
local($_);
open(ALLOW, ">$config{cron_allow_file}");
foreach (@_) { print ALLOW $_,"\n"; }
close(ALLOW);
chmod(0444, $config{cron_allow_file});
}


# save_denied(user, user, ...)
# Save the list of denied users
sub save_denied
{
local($_);
open(DENY, "> $config{cron_deny_file}");
foreach (@_) { print DENY $_,"\n"; }
close(DENY);
chmod(0444, $config{cron_deny_file});
}

# read_envs(user)
# Returns an array of name,value pairs containing the environment settings
# from the crontab for some user
sub read_envs
{
local(@tab, @rv, $_);
@tab = &read_crontab($_[0]);
foreach (@tab) {
	chop; s/#.*$//g;
	if (/^\s*(\S+)\s*=\s*(.*)$/) { push(@rv, "$1 $2"); }
	}
return @rv;
}

# save_envs(user, [name, value]*)
# Updates the cron file for some user with the given list of environment
# variables. All others in the file are removed
sub save_envs
{
local($i, @tab, $line);
@tab = &read_crontab($_[0]);
open(TAB, "> $cron_temp_file");
for($i=1; $i<@_; $i+=2) {
	print TAB "$_[$i]=$_[$i+1]\n";
	}
foreach (@tab) {
	chop($line = $_); $line =~ s/#.*$//g;
	if ($line !~ /^\s*(\S+)\s*=\s*(.*)$/) { print TAB $_; }
	}
close(TAB);
&copy_crontab($_[0]);
}

# expand_run_parts(directory)
sub expand_run_parts
{
local $dir = $_[0];
$dir = "$config{'run_parts_dir'}/$dir"
	if ($config{'run_parts_dir'} && $dir !~ /^\//);
opendir(DIR, $dir);
local @rv = readdir(DIR);
closedir(DIR);
@rv = grep { !/^\./ } @rv;
@rv = map { $dir."/".$_ } @rv;
return @rv;
}

# is_run_parts(command)
sub is_run_parts
{
local $rp = $config{'run_parts'};
return $rp && $_[0] =~ /$rp(.*)\s+(\S+)$/ ? $2 : undef;
}

# can_edit_user(&access, user)
sub can_edit_user
{
local %umap;
map { $umap{$_}++; } split(/\s+/, $_[0]->{'users'});
if ($_[0]->{'mode'} == 1 && !$umap{$_[1]} ||
    $_[0]->{'mode'} == 2 && $umap{$_[1]}) { return 0; }
else { return 1; }
}

1;

  07070100012ef5000081e40000000000000002000000013ac03887000001dd000000200000000000000000000000000000001a00000003reloc/cron/cron_editor.pl #!/usr/local/bin/perl
# cron_editor.pl
# Called by crontab -e to edit an users cron table.. 

sleep(1);	# This is needed because the stupid crontab -e command
		# checks the mtime before and after editing, and if they are
		# the same it assumes no change has been made!!
open(SRC, $ENV{"CRON_EDITOR_COPY"});
open(DST, "> $ARGV[0]");
while(<SRC>) {
	if (!/^#.*DO NOT EDIT/i && !/^#.*installed on/i &&
	    !/^#.*Cron version/i) {
		print DST $_;
		}
	}
close(SRC); close(DST);
   07070100012ef6000081a40000000000000002000000013ac0388700000021000000200000000000000000000000000000001600000003reloc/cron/defaultacl noconfig=0
users=
mode=0
allow=1
   07070100012ef7000081e40000000000000002000000013ac03886000001c9000000200000000000000000000000000000001b00000003reloc/cron/delete_cron.cgi    #!/usr/local/bin/perl
# delete_cron.cgi
# Delete a cron job for some user

require './cron-lib.pl';
&ReadParse();
%access = &get_module_acl();
@jobs = &list_cron_jobs();
$job = $jobs[$in{'idx'}];
&lock_file($job->{'file'});
&can_edit_user(\%access, $job->{'user'}) ||
	&error("You are not allowed to delete cron jobs for this user");
&delete_cron_job($job);
&unlock_file($job->{'file'});
&webmin_log("delete", "cron", $job->{'user'}, $job);
&redirect("");

   07070100012ef8000081e40000000000000002000000013ac0388700000511000000200000000000000000000000000000001a00000003reloc/cron/edit_allow.cgi #!/usr/local/bin/perl
# edit_allow.cgi
# A form for editing the system cron.allow and cron.deny files

require './cron-lib.pl';
%access = &get_module_acl();
$access{'allow'} || &error($text{'allow_ecannot'});
&header($text{'allow_title'}, "");
print "<hr>\n";

print "<form action=save_allow.cgi>\n";
print "$text{'allow_desc'} <p>\n";

$allowfile = (-r $config{cron_allow_file});
$denyfile = (-r $config{cron_deny_file});
$nofile = $config{cron_deny_all};
printf "<input type=radio name=mode value=0 %s> %s<br>\n",
	!$allowfile && !$denyfile ? "checked" : "",
	$nofile==0 ? $text{'allow_all1'} :
	$nofile==1 ? $text{'allow_all2'} :
		     $text{'allow_all3'};
printf "<input type=radio name=mode value=1 %s> $text{'allow_allow'}\n",
	$allowfile ? "checked" : "";
printf "<input name=allow size=30 value=\"%s\"> %s<br>\n",
	($allowfile ? join(' ', &list_allowed()) : ""),
	&user_chooser_button("allow", 1);
printf "<input type=radio name=mode value=2 %s> $text{'allow_deny'}&nbsp;\n",
	$denyfile && !$allowfile ? "checked" : "";
printf "<input name=deny size=30 value=\"%s\"> %s<br>\n",
	($denyfile ? join(' ', &list_denied()) : ""),
	&user_chooser_button("deny", 1);

print "<input type=submit value=\"$text{'save'}\">\n";
print "</form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

   07070100012ef9000081e40000000000000002000000013ac038860000148c000000200000000000000000000000000000001900000003reloc/cron/edit_cron.cgi  #!/usr/local/bin/perl
# edit_cron.cgi
# Edit an existing or new cron job

require './cron-lib.pl';
%access = &get_module_acl();
&ReadParse();

if (!$in{'new'}) {
	@jobs = &list_cron_jobs();
	$job = $jobs[$in{'idx'}];
	&can_edit_user(\%access, $job->{'user'}) ||
		&error($text{'edit_ecannot'});
	&header($text{'edit_title'}, "");
	}
else {
	&header($text{'create_title'}, "");
	$job = { 'mins' => '*',
		 'hours' => '*',
		 'days' => '*',
		 'months' => '*',
		 'weekdays' => '*',
		 'active' => 1 };
	}
print "<hr>\n";

print "<form action=save_cron.cgi>\n";
print "<input type=hidden name=new value='$in{'new'}'>\n";
print "<input type=hidden name=idx value='$in{'idx'}'>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'edit_details'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'edit_user'}</b></td>\n";
if ($access{'mode'} == 1) {
	print "<td><select name=user>\n";
	foreach $u (split(/\s+/, $access{'users'})) {
		printf "<option %s>$u\n",
			$job->{'user'} eq $u ? "selected" : "";
		}
	print "</select></td>\n";
	}
else {
	print "<td><input name=user size=8 value=\"$job->{'user'}\"> ",
		&user_chooser_button("user", 0),"</td>\n";
	}

print "<td> <b>$text{'edit_active'}</b></td>\n";
printf "<td><input type=radio name=active value=1 %s> $text{'yes'}\n",
	$job->{'active'} ? "checked" : "";
printf "<input type=radio name=active value=0 %s> $text{'no'}</td> </tr>\n",
	$job->{'active'} ? "" : "checked";

$rpd = &is_run_parts($job->{'command'});
if ($rpd) {
	# run-parts command.. just show scripts that will be run
	print "<tr> <td valign=top><b>$text{'edit_commands'}</b></td>\n";
	print "<td><tt>",join("<br>",&expand_run_parts($rpd)),
	      "</tt></td> </tr>\n";
	print "<input type=hidden name=cmd value='$job->{'command'}'>\n";
	}
else {
	# Normal cron job.. can edit command
	$job->{'command'} =~ s/\\%/\0/g;
	@lines = split(/%/ , $job->{'command'});
	foreach (@lines) { s/\0/%/g; }
	print "<tr> <td><b>$text{'edit_command'}</b></td>\n";
	$q = $lines[0] =~ /'/ ? '"' : "'";
	print "<td colspan=3><input name=cmd size=50 ",
	      "value=$q$lines[0]$q></td> </tr>\n";

	if ($config{'cron_input'}) {
		print "<tr> <td valign=top><b>$text{'edit_input'}</b></td>\n";
		print "<td colspan=3><textarea name=input rows=3 cols=50>",
		      join("\n" , @lines[1 .. @lines-1]),"</textarea></td> </tr>\n";
		}
	}

print "</table></td></tr></table><p>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td colspan=5><b>$text{'edit_when'}</b></td> </tr> <tr $tb>\n";
print "<td><b>$text{'edit_mins'}</b></td> <td><b>$text{'edit_hours'}</b></td> ",
      "<td><b>$text{'edit_days'}</b></td> <td><b>$text{'edit_months'}</b></td>",
      "<td><b>$text{'edit_weekdays'}</b></td> </tr> <tr $cb>\n";

@mins = (0..59);
@hours = (0..23);
@days = (1..31);
@months = map { $text{"month_$_"}."=".$_ } (1 .. 12);
@weekdays = map { $text{"day_$_"}."=".$_ } (0 .. 6);

foreach $arr ("mins", "hours", "days", "months", "weekdays") {
	# Find out which ones are being used
	local %inuse;
	$min = ($arr =~ /days|months/ ? 1 : 0);
	$max = $min+scalar(@$arr)-1;
	foreach $w (split(/,/ , $job->{$arr})) {
		if ($w eq "*") {
			# all values
			for($j=$min; $j<=$max; $j++) { $inuse{$j}++; }
			}
		elsif ($w =~ /^\*\/(\d+)$/) {
			# only every Nth
			for($j=$min; $j<=$max; $j+=$1) { $inuse{$j}++; }
			}
		elsif ($w =~ /^(\d+)-(\d+)\/(\d+)$/) {
			# only every Nth of some range
			for($j=$1; $j<=$2; $j+=$3) { $inuse{int($j)}++; }
			}
		elsif ($w =~ /^(\d+)-(\d+)$/) {
			# all of some range
			for($j=$1; $j<=$2; $j++) { $inuse{int($j)}++; }
			}
		else {
			# One value
			$inuse{int($w)}++;
			}
		}
	if ($job->{$arr} eq "*") { undef(%inuse); }

	# Output selection list
	print "<td valign=top>\n";
	printf "<input type=radio name=all_$arr value=1 %s> $text{'edit_all'}<br>\n",
		$job->{$arr} eq "*" ? "checked" : "";
	printf "<input type=radio name=all_$arr value=0 %s> $text{'edit_selected'}<br>\n",
		$job->{$arr} ne "*" ? "checked" : "";
	print "<table> <tr>\n";
	for($j=0; $j<@$arr; $j+=12) {
		$jj = $j+11;
		if ($jj >= @$arr) { $jj = @$arr - 1; }
		@sec = @$arr[$j .. $jj];
		printf "<td valign=top><select multiple size=%d name=$arr>\n",
			@sec > 12 ? 12 : scalar(@sec);
		foreach $v (@sec) {
			if ($v =~ /^(.*)=(.*)$/) { $disp = $1; $code = $2; }
			else { $disp = $code = $v; }
			printf "<option value=\"$code\" %s>$disp\n",
				$inuse{$code} ? "selected" : "";
			}
		print "</select></td>\n";
		}
	print "</tr></table></td>\n";
	}
print "</tr> </table>\n";
if (!$in{'new'}) {
	print "<table width=100%>\n";
	print "<tr> <td align=left><input type=submit value=\"$text{'save'}\"></td>\n";
	if (!$rpd) {
		print "</form><form action=\"exec_cron.cgi\">\n";
		print "<input type=hidden name=idx value=\"$in{'idx'}\">\n";
		print "<td align=center>",
		      "<input type=submit value=\"$text{'edit_run'}\"></td>\n";
		}
	print "</form><form action=\"delete_cron.cgi\">\n";
	print "<input type=hidden name=idx value=\"$in{'idx'}\">\n";
	print "<td align=right><input type=submit value=\"$text{'delete'}\"></td> </tr>\n";
	print "</form></table><p>\n";
	}
else {
	print "<input type=submit value=\"$text{'create'}\"></form><p>\n";
	}

print "<hr>\n";
&footer("", $text{'index_return'});

07070100012efa000081e40000000000000002000000013ac0388700000445000000200000000000000000000000000000001800000003reloc/cron/edit_env.cgi   #!/usr/local/bin/perl
# edit_env.cgi
# Some cron versions support the definition of environment variables in the
# crontab. This form is for editing those variables

require './cron-lib.pl';
$u = $ARGV[0];
%access = &get_module_acl();
&can_edit_user(\%access, $u) ||
	&error($text{'env_ecannot'});
&header($text{'env_title'}, "");
print "<hr>\n";

print "<h3>",&text('env_desc', $u),"</h3>\n";
@envs = &read_envs($u);
print "<form action=save_env.cgi>\n";
print "<input type=hidden name=user value=\"$u\">\n";
printf "<input type=hidden name=count value=%d>\n", scalar(@envs)+1;
print "<table border>\n";
print "<tr $tb> <td><b>$text{'env_name'}</b></td> ",
      "<td><b>$text{'env_value'}</b></td> </tr>\n";
for($i=0; $i<=@envs; $i++) {
	$envs[$i] =~ /^(\S+) (.*)$/;
	printf "<tr $cb> <td><input name=name$i size=20 value=\"%s\"></td>\n",
		$i<@envs ? $1 : "";
	printf "<td><input name=value$i size=40 value=\"%s\"></td> </tr>\n",
		$i<@envs ? $2 : "";
	}
print "</table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});
   07070100012efb000081e40000000000000002000000013ac038870000054b000000200000000000000000000000000000001900000003reloc/cron/exec_cron.cgi  #!/usr/local/bin/perl
# exec_cron.cgi
# Execute an existing cron job, and display the output

require './cron-lib.pl';
&foreign_require("proc", "proc-lib.pl");
&ReadParse();

%access = &get_module_acl();
@jobs = &list_cron_jobs();
$job = $jobs[$in{'idx'}];
&can_edit_user(\%access, $job->{'user'}) || &error($text{'exec_ecannot'});

# split command into command and input
$job->{'command'} =~ s/\\%/\0/g;
@lines = split(/%/ , $job->{'command'});
foreach (@lines) { s/\0/%/g; }
for($i=1; $i<@lines; $i++) {
	$input .= $lines[$i]."\n";
	}

$| = 1;
&header($text{'exec_title'}, "");
print "<hr>\n";
&additional_log('exec', undef, $lines[0]);
&webmin_log("exec", "cron", $job->{'user'}, $job);

# Set cron environment variables
foreach $e (&read_envs($job->{'user'})) {
	$ENV{$1} = $2 if ($e =~ /^(\S+)\s+(.*)$/);
	}

# Get command and switch uid/gid
@uinfo = getpwnam($job->{'user'});
$ENV{"HOME"} = $uinfo[7];
$ENV{"SHELL"} = "/bin/sh";
$ENV{"LOGNAME"} = $ENV{"USER"} = $job->{'user'};
$( = $) = $uinfo[3];
$< = $> = $uinfo[2];

# Execute cron command and display output..
print &text('exec_cmd', "<tt>$lines[0]</tt>"),"<p>\n";
print "<pre>";
$got = &foreign_call("proc", "safe_process_exec",
		     $lines[0], 0, 0, STDOUT, $input, 1);
print "<i>$text{'exec_none'}</i>\n" if (!$got);
print "</pre>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

 070701000452eb000041ed0000000000000001000000023ac03bc400000000000000200000000000000000000000000000001000000003reloc/cron/help   0707010004552b000081a40000000000000002000000013ac0388700000ca5000000200000000000000000000000000000001d00000003reloc/cron/help/help.es.html  <body bgcolor=#ffffff>
<title>Scheduled Commands and Jobs</title>
<center><img src="images/cron.gif"></center><br>
<h2><i>This help page is incomplete</i></h2>
<hr>
<h3>Introduction</h3>
This module can be used to setup commands to be run automatically at
scheduled times. It uses the standard Unix <tt>cron</tt> daemon,
which can run commands as various users at selected minutes, hours, days
of the month, days of the week and months of the year. Every job is owned
by a user, and when executed runs with the permissions of that user. <p>

The module's main page lists all the known scheduled jobs, grouped by the
user to run as. Some systems will have jobs that are part of the
operating system, owned by users like <tt>root</tt> or <tt>sys</tt>.
There may also be jobs created by users on your system using the
<tt>crontab</tt> command, owned by the users who created them. <p>

<hr>
<h3>Creating a New Scheduled Job</h3>
To create a new job, click on the <tt>Create new Scheduled Job</tt> below
the list of existing jobs. This will display a form for entering the
following parameters :
	<ul>
	<li><b>User to run as</b><br>
	    The login name of the Unix users the job will be run as. <p>
	<li><b>Active?</b><br>
	    If a job is not active, it will still be displayed in the list
	    of known jobs, but will not be run on schedule. <p>
	<li><b>Command</b><br>
	    The actual Unix command to run at the schedules time. This can
	    be any command that you would type at the command line. <p>
	<li><b>Input to command</b><br>
	    If this field is not empty, then whatever you enter will be
	    provided as input to the command when it is run. For example,
	    if the command was <tt>mail foo@bar.com</tt> and the input
	    <tt>hello world</tt>, then the input text would be emailed to
	    <tt>foo@bar.com</tt>. <p>
	<li><b>Times to run</b><br>
	    The times when a command is run are chosen by specifying the
	    minutes, hours, days of the month, months of the year and
	    days of week to run. For each of these you can either choose
	    <tt>All</tt>, or select the times when the command should be
	    run. <p>

	    For example, if you chose 5 for the hour and tuesday for the
	    day of the week then the command would be run every minute from
	    5:00am to 5:59am on tuesdays. <br>
	    Alternatively, if you chose 30 for the minute and 14 for the hour,
	    then the command would be run every day at 2:30pm. <p>
	</ul><p>
Once you have filled in the form, click on the <tt>Create</tt> button on
the bottom on the page. The new job will take effect immediately. <p>

<hr>
<h3>Editing an Existing Scheduled Job</h3>
To edit an existing job, click on the command from the list of jobs
on the main page. The form for editing an existing job is the same as
the form for creating a new job, described above. One you have made
whatever changes are needed, click on the <tt>Save</tt> button at
the bottom of the page. <p>

To delete a job, click on the <tt>Delete</tt> button at the bottom
of the job editing form. This will immediately delete the job without
asking for confirmation. <p>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Return to module</a><p>

   0707010004552c000081a40000000000000002000000013ac0388700000d2f000000200000000000000000000000000000001d00000003reloc/cron/help/help.fr.html  <body bgcolor=#ffffff>
<title>Commandes et t鈉hes programm閑s</title>
<center><img src="images/cron.gif"></center><br>
<h2><i>Cette page d'aide est incompl鑤e</i></h2>
<hr>
<h3>Introduction</h3>
Ce module peut 阾re utilis pour configurer des commandes  ex閏uter
automatiquement  des moments planifi閟. Il utilise le daemon standard
Unix <tt>cron</tt>, qui peut ex閏uter des commandes en tant que divers
utilisateurs et  des minutes, heures, jours du mois, jours de la
semaine et mois pr閏is. Chaque t鈉he appartient  un utilisateur, et
poss鑔e ses droits une fois lanc閑. <p>

La page principale du module liste toutes les t鈉hes connues, regroup閑s
par utilisateur. Certains syst鑝es auront des t鈉hes qui font partie du
syst鑝e, dont le propri閠aire est <tt>root</tt> ou <tt>sys</tt>.
Il peut aussi y avoir des t鈉hes cr閑s par des utilisateurs avec la
commande <tt>crontab</tt>, et appartenant aux utilisateurs qui les ont
cr閑s. <p>

<hr>
<h3>Cr閑r une nouvelle t鈉he</h3>
Pour cr閑r une nouvelle t鈉he, cliquez sur <tt>Cr閑r une nouvelle
t鈉he</tt> sous la liste des t鈉hes existantes. Ceci affichera un
formulaire pour saisir les param鑤res suivants :
	<ul>
	<li><b>L'utilisateur propri閠aire</b><br>
	    Le login de l'utilisateur Unix propri閠aire de la t鈉he. <p>
	<li><b>Actif?</b><br>
	    Si une t鈉he n'est pas active, elle apparaitra toujours dans
	    la liste des t鈉hes mais elle ne s'ex閏utera jamais. <p>
	<li><b>Commande</b><br>
	    La commande Unix  ex閏uter aux moments choisis. Ce peut 阾re
	    n'importe quelle commande que vous taperiez en ligne de
	    commande. <p>
	<li><b>Entr閑 de la commande</b><br>
	    Si ce champ n'est pas vide, tout ce que vous aurez mis sera
	    donn en entr閑 de la commande lors de son ex閏ution. Par
	    exemple, si la commande 閠ait <tt>mail foo@bar.com</tt> et
	    l'entr閑 <tt>hello world</tt>, alors le texte en entr閑 serait
	    envoy  <tt>foo@bar.com</tt>. <p>
	<li><b>Quand ex閏uter</b><br>
	    Les moments o la commande est ex閏ut閑 sont choisis en
	    sp閏ifiant les minutes, heures, jours du mois, jours de la
	    semaine et mois de l'ann閑 pour lesquels s'ex閏uter. Pour
	    chaque choix, vous pouvez choisir <tt>Tous</tt>, ou s閘閏tionner
	    les moments pr閏is des ex閏utions. <p>

	    Par exemple, si vous choisissez 5 pour l'heure et tuesday pour le
	    jour de la semaine la commande serait ex閏ut閑 chaque minute de
	    5:00  5:59 les mardis. <br>
	    Autre exemple, si vous mettez juste 30 pour les minutes et 14 pour
	    les heures, la commande serait ex閏ut閑 chaque jour  14:30. <p>
	</ul><p>
Une fois le formulaire rempli, cliquez sur <tt>Cr閑r</tt> en bas de la page.
La nouvelle t鈉he prendra effet instantan閙ent. <p>

<hr>
<h3>Edition d'une t鈉he existante</h3>
Pour 閐iter une t鈉he existante, cliquez sur la commande dans la liste
des t鈉hes de la page principale. Le formulaire de modification est le
m阭e que celui pour la cr閍tion, d閏rit plus haut. Une fois les
modifications souhait閑s faites, cliquez sur le bouton <tt>Sauvegarder</tt>
en bas de page. <p>

Pour effacer une t鈉he, cliquez sur <tt>Effacer</tt> en bas de page
dans le formulaire d'閐ition. Cela effacera instantan閙ent la t鈉he
sans demander confirmation. <p>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Retourner au module</a><p>

 0707010004552d000081a40000000000000002000000013ac0388700000ca5000000200000000000000000000000000000001a00000003reloc/cron/help/help.html <body bgcolor=#ffffff>
<title>Scheduled Commands and Jobs</title>
<center><img src="images/cron.gif"></center><br>
<h2><i>This help page is incomplete</i></h2>
<hr>
<h3>Introduction</h3>
This module can be used to setup commands to be run automatically at
scheduled times. It uses the standard Unix <tt>cron</tt> daemon,
which can run commands as various users at selected minutes, hours, days
of the month, days of the week and months of the year. Every job is owned
by a user, and when executed runs with the permissions of that user. <p>

The module's main page lists all the known scheduled jobs, grouped by the
user to run as. Some systems will have jobs that are part of the
operating system, owned by users like <tt>root</tt> or <tt>sys</tt>.
There may also be jobs created by users on your system using the
<tt>crontab</tt> command, owned by the users who created them. <p>

<hr>
<h3>Creating a New Scheduled Job</h3>
To create a new job, click on the <tt>Create new Scheduled Job</tt> below
the list of existing jobs. This will display a form for entering the
following parameters :
	<ul>
	<li><b>User to run as</b><br>
	    The login name of the Unix users the job will be run as. <p>
	<li><b>Active?</b><br>
	    If a job is not active, it will still be displayed in the list
	    of known jobs, but will not be run on schedule. <p>
	<li><b>Command</b><br>
	    The actual Unix command to run at the schedules time. This can
	    be any command that you would type at the command line. <p>
	<li><b>Input to command</b><br>
	    If this field is not empty, then whatever you enter will be
	    provided as input to the command when it is run. For example,
	    if the command was <tt>mail foo@bar.com</tt> and the input
	    <tt>hello world</tt>, then the input text would be emailed to
	    <tt>foo@bar.com</tt>. <p>
	<li><b>Times to run</b><br>
	    The times when a command is run are chosen by specifying the
	    minutes, hours, days of the month, months of the year and
	    days of week to run. For each of these you can either choose
	    <tt>All</tt>, or select the times when the command should be
	    run. <p>

	    For example, if you chose 5 for the hour and tuesday for the
	    day of the week then the command would be run every minute from
	    5:00am to 5:59am on tuesdays. <br>
	    Alternatively, if you chose 30 for the minute and 14 for the hour,
	    then the command would be run every day at 2:30pm. <p>
	</ul><p>
Once you have filled in the form, click on the <tt>Create</tt> button on
the bottom on the page. The new job will take effect immediately. <p>

<hr>
<h3>Editing an Existing Scheduled Job</h3>
To edit an existing job, click on the command from the list of jobs
on the main page. The form for editing an existing job is the same as
the form for creating a new job, described above. One you have made
whatever changes are needed, click on the <tt>Save</tt> button at
the bottom of the page. <p>

To delete a job, click on the <tt>Delete</tt> button at the bottom
of the job editing form. This will immediately delete the job without
asking for confirmation. <p>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Return to module</a><p>

   0707010004552e000081e40000000000000002000000013ac0388700000e84000000200000000000000000000000000000001d00000003reloc/cron/help/help.nl.html  <body bgcolor=#ffffff>
<title>Geplande Cron Opdrachten</title>
<center><img src="images/cron.gif"></center><br>
<h2><i>Deze help pagina is nog niet compleet</i></h2>
<hr>
<h3>Introductie</h3>
Deze module kan worden gebruikt om opdrachetn automatisch uit te voeren op
gezette tijden. het maakt gebruik van de standaard Unix <tt>cron</tt> daemon,
welke opdrachten kan uitvoeren als verschillende gebruikers op geselecteerde 
minuten, urenm dagen of maanden, dag van de week en maanden van het jaar. Iedere
opdracht is eigendom van een gebruiker, en wanneer het wordt uitgevoerd draait
het met de rechten van die gebruiker. <p>

De hoofdpagina van de module geeft alle bekende geplande opdrachten weer,
gegroepeerd op de gebruiker als welke de opdracht wordt uitgevoerd.
Sommige systemen zullen opdrachten hebben die onderdeel zijn van het besturingssysteem,
die eigendom zijn van gebruikers als <tt>root</tt> of <tt>sys</tt>.
Er zijn mogelijk ook opdrachten die met het <tt>crontab</tt> commando zijn aangemaakt 
door gebruikers op uw systeem, die eigendom zijn van de gebruikers die ze hebben aangemaakt<p>

<hr>
<h3>Een Nieuwe Geplande Opdracht aanmaken</h3>
Om een nieuwe opdracht aan te maken klikt u op <tt>Een nieuwe geplande opdracht aanmaken</tt>
onder de lijst met bestaande opdrachten. Dit zal een formulier weergeven waarin u de 
volgende parameters kunt invoeren :
	<ul>
	<li><b>Uitvoeren als gebruiker</b><br>
	    De loginnaam van de Unix gebruiker als wie de opdracht zal worden uitgevoerd. <p>
	<li><b>Actief?</b><br>
	    Als een opdracht niet actief is zal get nog steed worden weergegeven in de lijst
	    van bekende opdrachten, maar zal niet gepland worden uitgevoerd. <p>
	<li><b>Commando</b><br>
	    Het eigenlijke Unix commando om op gezette tijden uit te voeren.
	    Dit kan ieder commando zijn die u op de command line zou intypen. <p>
	<li><b>Invoer voor commando</b><br>
	    Als dit veld niet leeg is zal hetgeen u hier invoert worden gebruikt
	    als invoer voor de opdracht wanneer deze wordt uitgevoerd.
	    Als bijvoorbeeld de opdracht <tt>mail foo@bar.com</tt> en de invoer
	    <tt>hello world</tt> zou zijn, dan wordt de invoertekst gemaild naar
	    <tt>foo@bar.com</tt>. <p>
	<li><b>Wanneer uitvoeren</b><br>
		De tijden waarop het commando moet worden uitgevoerd worden bepaald 
		door de minuten, uren, dagen van de maand, maanden van het jaar en de 
		dagen van de week op te geven. Voor elk van deze kunt u <tt>Alle</tt>
		selecteren of de tijden waarop het commando moet worden uitgevoerd. <p>

	    Als u bijvoorbeeld 5 kiest voor het uur en dinsdag voor de dag van de week,
	    dan wordt het commando iedere dinsdag tussen 05:00 en 05:59 's nachts om de 
	    minut uitgevoerd. <br>
	    Wanneer u 30 kiest voor de minuten en 14 voor het uur, dan wordt het commando
	    iedre dag om 14:30 uitgevoerd. <p>
	</ul><p>
Wanneer u het formulier volledig heeft ingevuld, klikt u op de knop <tt>Aanmaken</tt> 
onderaan de pagina. De nieuwe opdracht zal dan direct worden geactiveerd. <p>

<hr>
<h3>Bewerken van een bestaande Opdracht</h3>
Om een bestaan de opdracht te bewerken, klikt u op het commando in de lijst op de hoofdpagina.
Het formulier waarop u een opdracht bewerkt is hetzelfde als degene waarop u een nieuwe
opdracht aanmaakt, welke hierboven beschreven is. Wanneer u de benodigde wijzigingen heeft 
gemaakt klikt u op de knop <tt>Opslaan</tt> onderaan de pagina. <p>

Om een opdracht te verwijderen klikt op de knop <tt>verwijderen</tt>
onderaan de pagina. Dit verwijderd de opdracht direct zonder om bevestiging te vragen. <p>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Terug naar de module</a><p>

0707010004552f000081a40000000000000002000000013ac0388700000bec000000200000000000000000000000000000001d00000003reloc/cron/help/help.sv.html  <body bgcolor=#ffffff>
<title>Schemalagda kommandon och jobb</title>
<center><img src="images/cron.gif"></center><br>
<h2><i>Denna hj鋖psida 鋜 inte fullst鋘dig</i></h2>
<hr>
<h3>Introduktion</h3>
I denna modul kan du schemal鋑ga automatisk k鰎ning av kommandon vid
tider som du anger. Modulen anv鋘der den vanliga Unix-demonen <tt>cron</tt>,
som kan k鰎a kommandon som olika anv鋘dare vid best鋗da minuter, timmar,
p best鋗da dagar i m錸aden, veckodagar och m錸ader. Varje jobb 鋑s av
en anv鋘dare, och n鋜 det utf鰎s k鰎s det med denna anv鋘dares r鋞tigheter.

<p>F鰎stasidan listar alla schemalagda jobb grupperade efter anv鋘dare.
En del system har jobb som 鋜 en del av operativsystemet och som 鋑s av
anv鋘dare som <tt>root</tt> eller <tt>sys</tt>. Det kan ocks finnas
jobb som har lagts in med hj鋖p av <tt>crontab</tt>-kommandot och som
d 鋑s av den anv鋘dare som lade in dem.

<hr>
<h3>Schemal鋑ga ett nytt jobb</h3>
Tryck p <tt>Schemal鋑g nytt jobb</tt> nedanf鰎 listan f鰎 att l鋑ga till
ett nytt jobb till listan. Du f錼 d upp ett formul鋜 d鋜 du anger f鰈jande
uppgifter:
	<ul>
	<li><b>Anv鋘dare att k鰎a som</b>
	    <br>Inloggningsnamnet f鰎 den Unix-anv鋘dare jobbet ska k鰎as som.
	<li><b>Aktivt?</b>
	    <br>Om ett jobb inte 鋜 aktivt, kommer det fortfarande att visas i listan, men inte k鰎as.
	<li><b>Kommando</b>
	    <br>Det Unix-kommando som ska k鰎as vid angivna tidpunkter.
	    Detta kan vara vilket kommando som helst som du kan skriva p
	    kommandoraden.
	<li><b>Inmatning till kommandot</b>
	    <br>Om du fyller i n錱ot i detta f鋖t kommer det att matas in
	    till kommandot n鋜 det k鰎s. Om kommandot till exempel 鋜
	    <tt>mail foo@bar.com</tt> och inmatningen <tt>hello world</tt>,
	    kommer den inmatade texten att e-postas till <tt>foo@bar.com</tt>.
	<li><b>Tidpunkter</b>
	    <br>H鋜 anger du vid vilka tidpunkter kommandot ska k鰎as.
	    Tidpunkterna anges som best鋗da minuter, timmar, datum, m錸ader
	    eller veckodagar. F鰎 vart och ett av dessa alternativ kan du
	    v鋖ja <tt>Alla</tt> eller v鋖ja de tidpunkter som kommandot ska
	    k鰎as p.

	    <p>Om du exempelvis v鋖jer timme 5 och veckodag tisdag, kommer
	    kommandot att k鰎as varje minut fr錸 5:00 till 5:59 p tisdagar.
	    <br>Om du v鋖jer minut 30 och timme 14, kommer kommandot att
	    k鰎as varje dag klockan 14:30.
	</ul>
<p>N鋜 du har fyllt i formul鋜et trycker du p <tt>Skapa</tt>-knappen
l鋘gst ned p sidan. Jobbet kommer att schemal鋑gas direkt.

<hr>
<h3>膎dra ett schemalagt jobb</h3>
Klicka p ett kommando i listan p f鰎stasidan f鰎 att 鋘dra i jobbet.
Det 鋜 samma formul鋜 f鰎 att 鋘dra ett jobb som f鰎 att skapa ett.
N鋜 du har gjort de 鋘dringar du ville g鰎a trycker du p <tt>Spara</tt>
l鋘gst ned p sidan.

<p>Tryck p <tt>Ta bort</tt> l鋘gst ned i formul鋜et f鰎 att ta bort
jobbet fr錸 listan. Detta kommer att ta bort jobbet direkt utan att
beg鋜a n錱on bekr鋐telse.


<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Tillbaka till modul</a>

07070100045530000081a40000000000000002000000013ac0388700000873000000200000000000000000000000000000002500000003reloc/cron/help/help.zh_TW.Big5.html  <body bgcolor=#ffffff>
<title>﹚磅︽籔</title>
<center><img src="images/cron.gif"></center><br>
<h2><i>硂弧﹟ゼЧΘ</i></h2>
<hr>
<h3>玡ē</h3>
硂家舱ノ璶砆笆疭﹚丁磅︽. ウㄏノ夹非 Unix <tt>cron</tt> 臔, 硂匡拒丁 (だ, , ら, 琍戳, る), 疭﹚ㄏノōだ籔舦磅︽. <p>

硂家舱璶礶┮Τ﹚磅︽, ㄌ沮ㄏノōだ逼. Τㄇ╰参穦Τ穨╰参场, 硂ㄇ硄盽ㄏノ <tt>root</tt> ┪ <tt>sys</tt>. Τㄇ╰参ㄏノノ <tt>crontab</tt> ︽ミ㏑, τ妮ミウㄏノ. <p>

<hr>
<h3>ミ穝﹚磅︽</h3>
璶ミ穝, 瞷<tt>ミ穝﹚磅︽</tt>秙. 硂盢穦陪ボ虫璶―把计:
	<ul>
	<li><b>磅︽﹚磅︽ㄏノ</b><br>
	    磅︽硂 Unix ㄏノ祅嘿. <p>
	<li><b>琌币笆?</b><br>
	    狦⊿Τ币笆, ウご礛穦┮Τぇい, 琌盢ぃ穦ㄌ沮︽祘磅︽. <p>
	<li><b>㏑</b><br>
	    ┮惠璶磅︽龟悔 Unix ㏑. 硂琌ヴ眤㏑块㏑. <p>
	<li><b>倒㏑块</b><br>
	    狦硂跋办ぃ琌フ, 玥眤┮块狥﹁盢穦砆磅︽块倒. ㄒ狦 <tt>mail foo@bar.com</tt> 块 <tt>hello world</tt>, 玥块 <tt>hello world</tt> 盢穦砆患癳倒 <tt>foo@bar.com</tt>. <p>
	<li><b>磅︽丁</b><br>
	    眤ㄌ沮 だ, , ら, 琍戳, る 单砞﹚璶磅︽㏑丁. 癸–兜眤常匡拒<tt>场</tt>, ┪匡拒疭﹚莱赣璶磅︽丁. <p>

	    羭ㄒㄓ弧, 狦眤""匡拒 5, 匡拒"琍戳", 玥眤盢穦ヴ琍戳 5:00am  5:59am ぇ丁ヴ種だ牧砆磅︽. <br>
	    ┪琌狦眤"だ"ぇい匡拒 30, ""匡拒 14, 玥㏑盢穦–ぱ 2:30 pm 砆磅︽. <p>
	</ul><p>
讽眤恶Ч硂虫, 礶┏狠<tt>ミ</tt>秙. 硂穝盢穦ミㄨネ. <p>

<hr>
<h3>絪胯瞷﹚磅︽</h3>
璶絪胯瞷, 礶い㏑. 絪胯瞷虫膀セ籔玡瓃ミ穝虫. 讽眤ЧΘゲ斗跑ぇ, 礶┏狠<tt>纗</tt>秙. <p>

璶埃, 絪胯虫<tt>埃</tt>秙. 硂盢穦ミ埃τ⊿Τ秈˙絋粄璶―. <p>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">家舱</a><p>

 07070100045531000081a40000000000000002000000013ac03887000000c6000000200000000000000000000000000000001e00000003reloc/cron/help/intro.es.html <header>Tareas planificadas de Cron</header>

<h3>Introducci髇 a Tareas de Cron</h3>
Una tarea de cron es un comando que ejecuta tu sistema en segundo plano
bas醤dose en criterios peri骴icos.
<hr>

  07070100045532000081a40000000000000002000000013ac03887000000b4000000200000000000000000000000000000001e00000003reloc/cron/help/intro.fr.html <header>T鈉hes cron</header>

<h3>Introduction aux t鈉hes cron</h3>
Une t鈉he cron est une commande qui s'ex閏ute en t鈉he de fond sur
votre syst鑝e  intervalles r間uliers.
<hr>

07070100045533000081a40000000000000002000000013ac03887000000a9000000200000000000000000000000000000001b00000003reloc/cron/help/intro.html    <header>Scheduled Cron Jobs</header>

<h3>Introduction to Cron Jobs</h3>
A cron job is a command that in run in the background on your system
on a periodic basis.
<hr>

   07070100045534000081a40000000000000002000000013ac03887000000b0000000200000000000000000000000000000001e00000003reloc/cron/help/intro.hu.html <header>Tervezett Cron munk醟</header>

<h3>Bevezet閟 a Cron munk醟ba</h3>
Egy cron munka nem m醩, mint egy parancs, amely az 謓 rendszer閚ek h醫ter閎en
ism閠l鮠鮡n fut.
<hr>

07070100045535000081e40000000000000002000000013ac03887000000c1000000200000000000000000000000000000001e00000003reloc/cron/help/intro.nl.html <header>Geplande Cron Opdrachten</header>

<h3>Introductie voor Cron Opdrachten</h3>
Een cron opdracht is een commando dat op de achtergrond op uw systeem draait
op een periodieke basis.
<hr>

   07070100045536000081a40000000000000002000000013ac038870000009f000000200000000000000000000000000000001e00000003reloc/cron/help/intro.sv.html <header>Schemalagda cronjobb</header>

<h3>Introduktion till cronjobb</h3>
Ett cronjobb 鋜 ett kommando som k鰎s periodiskt i bakgrunden p
ditt system.
<hr>

 07070100045537000081a40000000000000002000000013ac0388700000082000000200000000000000000000000000000002600000003reloc/cron/help/intro.zh_TW.Big5.html <header>﹚磅︽</header>

<h3>﹚磅︽虏ざ</h3>
﹚磅︽琌眤╰参ㄌ沮箇砞﹚丁τ璉春磅︽.

<hr>

  07070100015e24000041ed0000000000000001000000023ac03bc400000000000000200000000000000000000000000000001200000003reloc/cron/images 07070100015e25000081a40000000000000002000000013ac03886000007b2000000200000000000000000000000000000001b00000003reloc/cron/images/icon.gif    GIF89a0 0   

唵劼铺ⅵも骒捕糐JL挅溡衷琷jl壕臍灉蝣羰翁vz|**,觐熠捃潞饥ⅳ瀻敠汉悸履帋宆^\殮溡以逗糿rt韭臑ⅳ~倓膊::<适酞觋鞏殰谮懿泊姨蝌翕怃剖摩Δ抖糝RT挅ぶ谲春咎灋滫~~|224铗燹怃帓攙vt妸屍颇骊鞏枖种援揪荐挝剔捃Βおffdrvt唵將Μ骀洳赌NNL抑塥nnl殲z|..,铑膦汉穆绿帋攂bd殮ひ臆逗膔rt韭虨倐劜材BBD铌煳以Ζ赌VVT灋~劗材664铗魭挃破號枩揪啮挝赞掬!Made with GIMP ,    0 0  䜣+們唲墑厡+垘侶0H晸=Rd%%\摙＃棨Δ崋H5sB0I)\-9憤帇寯0sQA:h苃b]JR)枛τ揽〒峽ZXh:vD4v&,弬夘眇靹0@hh]8
AqACD厫R.)黆奟狦.(P噲.!h郂Hx躄橰^/堮NN遥蠒 B毓'N9?殌+莵	
囉F*JP7et湁馄M*!R巿 PT鄝"D A劋@<r&腣廅U璲娶 Mz愙朔h9氢牎闪&G獀6牏#?\<9o4v柲眽n9;Y输 4<蓨);t犺偮&娒Yf袎疴E,鑄儀妕瑻掅f 繫党@6x甜倴2剎睧懒祂襚)s T7烂 Z丗4XD丄
JHQ嘾睸0諆X旹7轉垏;潛D	'現%+鬚Bv腅爢nxt丒00}1.嚞褸	困`$45QEvU惻FeAL1丳T 卙紘s褚 伛M婑1羴(I.8|`f]$BQTQ┄A溋zDIL<欵 80
eㄅV掆0誫+QW膒\偹!崂,#a馈C薄WPPg%f	vxA!+洳	fha>:1揮lv[\P癅{貍K$髂lh啾U減0剢)脤p罻<)擲i溽醒uOp鼄8x爌NIQHQ!攼?扩S5D孻鐲Db嗳闌	饏ｌb
,B	BAUS丄rq刲D4褦X矆MFv'j_O(愴<ⅦD扺叀]秆-8譛Ym%"#J吟rdB eL〢#!GgN7W]wU燱!豖Z已检X 	 γFlU1Q@胴E=w缾閈摹`t贰聇@堉Mi躢Y{荶f溽窷(凱S杌[oeh爮yo惧E$`鄝h菴楺:刭	幯欏豙忐7/ ^({鋊(@a'1}瞏啸	`竷8+逝巐誁DR@
 m'<Y憚p$( Ce郂朻h]巸弜b劙
Ei[Q嬙$覡akY0
懈 	X&)%:饒蘴悋"甕E%芌	v欅\绨2;攩e蠫*ɡU増F&/!闰	%纮8 ( 绮悈<$a	‵;(葀"`J绖玪
G.訞r橜	V郂.V14fRo袣GN悂< 伖襾蔖( WJ  V冟-eu茽臞y0 y8 c
Rp8!O|烛36	BR 4AD3j  lL炲&!奥@6-(坦AtP-u)朻8袅y壤庻OiM.5_G=﹪錉k怋U餈 	4 1鑀=)S燽莽f劑( ;  07070100012efc000081e40000000000000002000000013ac03886000009ff000000200000000000000000000000000000001500000003reloc/cron/index.cgi  #!/usr/local/bin/perl
# index.cgi
# Display a list of all cron jobs, with the username and command for each one

require './cron-lib.pl';
%access = &get_module_acl();

&header($text{'index_title'}, "", undef, 1, 1);
print "<hr>\n";
map { $ucan{$_}++ } split(/\s+/, $access{'users'});
@jobs = &list_cron_jobs();
@ulist = &unique(map { $_->{'user'} } @jobs);
if ($access{'mode'} == 1) {
	@ulist = grep { $ucan{$_} } @ulist;
	}
elsif ($access{'mode'} == 2) {
	@ulist = grep { !$ucan{$_} } @ulist;
	}
foreach $u (@ulist) {
	if ((@uinfo = getpwnam($u)) && $uinfo[5] =~ /\S/) {
		$uname = "$u ($uinfo[5])";
		}
	else { $uname = $u; }

	@jlist = grep { $_->{'user'} eq $u } @jobs;
	@plist = ();
	for($i=0; $i<@jlist; $i++) {
		local $rpd = &is_run_parts($jlist[$i]->{'command'});
		local @exp = $rpd ? &expand_run_parts($rpd) : ();
		if (!$rpd || @exp) {
			push(@plist, [ $jlist[$i], \@exp ]);
			}
		}
	for($i=0; $i<@plist; $i++) {
		local $job = $plist[$i]->[0];
		local @exp = @{$plist[$i]->[1]};
		local $idx = $job->{'index'};
		if (!$donehead) {
			print "<table border width=100%>\n";
			print "<tr $tb> <td><b>$text{'index_user'}</b></td>\n";
			print "<td><b>$text{'index_active'}</b></td>\n";
			print "<td><b>$text{'index_command'}</b></td> </tr>\n";
			$donehead = 1;
			}
		print "<tr $cb>\n";
		if ($i == 0) {
			printf "<td valign=top rowspan=%d>", scalar(@plist);
			#if ($config{'vixie_cron'}) {
			#	print "<a href=\"edit_env.cgi?$uname\">",
			#	      "$uname</a>";
			#	}
			#else { print $uname; }
			print $uname;
			print "</td>\n";
			}
		printf "<td valign=top>%s</td>\n",
			$job->{'active'} ? $text{'yes'}
				: "<font color=#ff0000>$text{'no'}</font>";
		if (@exp) {
			print "<td><a href=\"edit_cron.cgi?idx=$idx\">",
			      join("<br>",@exp),"</a></td>\n";
			}
		else {
			local $cmd = $job->{'command'};
			$cmd =~ s/\\%/\0/g; $cmd =~ s/%.*$//;
			$cmd =~ s/\0/%/g;
			$cmd =~ s/&/&amp;/g; $cmd =~ s/</&lt;/g;
			$cmd =~ s/>/&gt;/g;
			printf "<td><a href=\"edit_cron.cgi?idx=$idx\">".
			       "%s</a>%s</td>\n",
				length($cmd) > 60 ? substr($cmd, 0, 60) :
				$cmd !~ /\S/ ? "BLANK" : $cmd,
				length($cmd) > 60 ? " ..." : "";
			}
		print "</tr>\n";
		}
	}
if ($donehead) {
	print "</table>\n";
	}
else {
	print "<b>$text{'index_none'}</b> <p>\n";
	}
print "<a href=\"edit_cron.cgi?new=1\">$text{'index_create'}</a> <p>\n";

if ($config{cron_allow_file} && $config{cron_deny_file} && $access{'allow'}) {
	print "<h3><a href=edit_allow.cgi>$text{'index_allow'}</a></h3>\n";
	}

print "<hr>\n";
&footer("/", $text{'index'});

 0707010001721d000041ed0000000000000001000000023ac03bc400000000000000200000000000000000000000000000001000000003reloc/cron/lang   0707010001721e000081a40000000000000002000000013ac0388700000a22000000200000000000000000000000000000001300000003reloc/cron/lang/de    index_title=Geplante Cron Jobs
index_user=Benutzer
index_active=Aktiv?
index_command=Kommando
index_none=Es gibt keine Cron Jobs auf diesem System
index_create=Erstellte neuen geplanten Cron Job
index_allow=Kontrolliere Benutzer Zugriff auf Cron Jobs
index_return=Cron Liste

edit_title=Bearbeite Cron Job
create_title=Erstelle Cron Job
edit_ecannot=Sie haben keine Berechtigung, Cron Jobs f&uuml;r diesen Benutzer zu bearbeiten
edit_details=Job Details
edit_user=F&uuml;hre Cron Job aus als
edit_active=Aktiv?
edit_commands=Kommandos
edit_command=Kommando
edit_input=Eingabe f&uuml;r Kommando
edit_when=Wann soll das Programm ausgef&uuml;hrt werden
edit_mins=Minuten
edit_hours=Stunden
edit_days=Tage
edit_months=Monate
edit_weekdays=Wochentage
edit_all=Alle
edit_selected=Gew&auml;hlte ..
edit_run=F&uuml;hre jetzt aus

month_1=Januar
month_2=Februar
month_3=M&auml;rz
month_4=April
month_5=Mai
month_6=Juni
month_7=Juli
month_8=August
month_9=September
month_10=Oktober
month_11=November
month_12=Dezember

day_0=Sonntag
day_1=Montag
day_2=Dienstag
day_3=Mittwoch
day_4=Donnerstag
day_5=Freitag
day_6=Samstag

save_err=Fehler beim Speichern des Cron Jobs
save_ecmd=Sie haben kein auszuf&uuml;hrendes Kommando angegeben
save_euser=Sie m&uuml;ssen einen Benutzer angeben
save_eallow=Der Benutzer '$1' hat keine Berechtigung auf Cron zuzugreifen
save_ecannot=Sie haben keine Berechtigung, Cron Jobs zu erstellen f&uuml; '$1'
save_enone=Sie haben nicht einen $1 zum ausf&uuml;hren angew&auml;hlt

allow_title=Kontrolliere Cron Access
allow_desc=Dieses Formular erlaubt es ihnen zu bearbeiten, welche Benutzer Cron Jobs anlegen und ausf&uuml;hren d&uuml;rfen.
allow_ecannot=Sie haben keine Berechtigung, die Zugriffskontrolle zu &ouml;ffnen
allow_all1=Verweigere alle Benutzer
allow_all2=Verweigere alle Benutzer ausser root
allow_all3=Erlaube alle Benutzer
allow_allow=Erlaube nur aufgelistete Benutzer
allow_deny=Verweigere nur aufgelistete Benutzer

env_title=Cron Umgebung
env_ecannot=Sie haben keine Berechtigung die Cron Umgebung f&uuml;r diesen Benutzer zu bearbeiten
env_desc=Cron Umgebung f&uuml;r $1
env_name=Variablen Name
env_value=Wert
env_ename='$1' ist kein g&uuml;ltiger Variablen Name

exec_title=F&uuml;hre Cron Job aus
exec_ecannot=Sie haben keine Berechtigung Cron Jobs f&uuml;r diesen Benutzer auszuf&uuml;hren
exec_cmd=Ausgabe des Kommandos $1 ..
exec_none=Es wurde keine Ausgabe generiert

acl_users=Darf Cron Jobs bearbeiten f&uuml;r
acl_all=Alle Benutzer
acl_only=Nur Benuzter
acl_except=Alle ausser Benutzer
acl_control=Darf Zugriffsrechte f&uuml;r Benutzer bearbeiten?
  0707010001721f000081a40000000000000002000000013ac0388700000999000000200000000000000000000000000000001300000003reloc/cron/lang/en    index_title=Scheduled Cron Jobs
index_user=User
index_active=Active?
index_command=Command
index_none=There are no cron jobs on this system
index_create=Created a new scheduled cron job
index_allow=Control user access to cron jobs
index_return=cron list

edit_title=Edit Cron Job
create_title=Create Cron Job
edit_ecannot=You are not allowed to edit cron jobs for this user
edit_details=Job Details
edit_user=Execute cron job as
edit_active=Active?
edit_commands=Commands
edit_command=Command
edit_input=Input to command
edit_when=When to execute
edit_mins=Minutes
edit_hours=Hours
edit_days=Days
edit_months=Months
edit_weekdays=Weekdays
edit_all=All
edit_selected=Selected ..
edit_run=Run Now

month_1=January
month_2=February
month_3=March
month_4=April
month_5=May
month_6=June
month_7=July
month_8=August
month_9=September
month_10=October
month_11=November
month_12=December

day_0=Sunday
day_1=Monday
day_2=Tuesday
day_3=Wednesday
day_4=Thursday
day_5=Friday
day_6=Saturday

save_err=Failed to save cron job
save_ecmd=You did not enter a command to execute
save_euser=You must select a user
save_euser2=User '$1' does not exist
save_eallow=The user '$1' is not allowed to access cron
save_ecannot=You are not allowed to create or edit cron jobs for '$1'
save_enone=You did not choose any $1 to execute

allow_title=Control Cron Access
allow_desc=This form allows you to control which users can create and run cron jobs.
allow_ecannot=You cannot control user access to cron
allow_all1=Deny all users
allow_all2=Deny all users except root
allow_all3=Allow all users
allow_allow=Allow only listed users
allow_deny=Deny only listed users

env_title=Cron Environment
env_ecannot=You cannot edit the cron environment for this user
env_desc=Cron Environment for $1
env_name=Variable Name
env_value=Value
env_ename='$1' is not a valid variable name

exec_title=Execute Cron Job
exec_ecannot=You are not allowed to execute cron jobs for this user
exec_cmd=Output from command $1 ..
exec_none=No output generated

acl_users=Can edit cron jobs for
acl_all=All users
acl_only=Only users
acl_except=All except users
acl_control=Can control user access to cron?

log_modify=Modified cron job for $1
log_modify_l=Modified cron job "$2" for $1
log_create=Created cron job for $1
log_create_l=Created cron job "$2" for $1
log_delete=Deleted cron job for $1
log_exec=Executed cron job as $1
log_exec_l=Execute cron job "$2" as $1
log_allow=Changed user access to cron
   07070100017220000081a40000000000000002000000013ac0388700000b15000000200000000000000000000000000000001300000003reloc/cron/lang/es    index_title=Tareas de Cron Catalogadas
index_user=Usuario
index_active=緼ctiva?
index_command=Comando
index_none=No hay tareas de cron en este sistema
index_create=Crear una nueva tarea de cron en cat醠ogo
index_allow=Controlar el acceso de usuarios a tareas de cron
index_return=lista de cron

edit_title=Editar Tarea de Cron
create_title=Crear Tarea de Cron
edit_ecannot=No est醩 autorizado a editar tareas de cron para este usuario
edit_details=Detalles de Tarea
edit_user=Ejecutar tarea de cron como
edit_active=緼ctiva?
edit_commands=Comandos
edit_command=Comando
edit_input=Entrada del comando
edit_when=Cu醤do ejecutar
edit_minutes=Minutos
edit_hours=Horas
edit_days=D韆s
edit_months=Meses
edit_weekdays=D韆s de Semana
edit_all=Todos
edit_selected=Seleccionado...
edit_run=Ejecutar Ahora

month_1=Enero
month_2=Febrero
month_3=Marzo
month_4=Abril
month_5=Mayo
month_6=Junio
month_7=Julio
month_8=Agosto
month_9=Septiembre
month_10=Octubre
month_11=Noviembre
month_12=Diciembre

day_0=Domingo
day_1=Lunes
day_2=Martes
day_3=Mi閞coles
day_4=Jueves
day_5=Viernes
day_6=S醔ado

save_err=Error al salvar tarea de cron
save_ecmd=No has digitado un comando para ejecutar
save_euser=Debes de seleccionar un usuario
save_euser2=El usuario '$1' no existe
save_eallow=El usuario '$1' no est autorizado a acceder a cron...
save_ecannot=No est醩 autorizado a crear o a editar tareas de cron para '$1'
save_enone=No has seleccionado un $1 para ejecutar

allow_title=Controlar Acceso de Cron
allow_desc=Este formulario te permite controlar qu usuarios pueden crear y ejecutar tareas de cron.
allow_ecannot=No puedes controlar el acceso del usuario a cron
allow_all1=Denegar a todos los usuarios
allow_all2=Denegar a todos los usuarios excepto a root
allow_all3=Permitir a todos los usuarios
allow_allow=Permitir s髄o a los usuarios listados
allow_deny=Denegar s髄o a los usuarios listados

env_title=Entorno de Cron
env_ecannot=No puedes editar el entorno de cron para este usuario
env_desc=Entorno de Cron para $1
env_name=Nombre de Variable
env_value=Valor
env_ename='$1' no es un Nombre de Variable v醠ido

exec_title=Ejecutar Tarea de Cron
exec_ecannot=No est醩 autorizado a ejecutar tareas de cron para este usuario
exec_cmd=Salida del comando $1 ...
exec_none=No se ha generado salida

acl_users=Puedo editar tareas de cron para
acl_all=Todos los usuarios
acl_only=S髄o los usuarios
acl_except=Todos excepto los usuarios
acl_control=縋uedo controlar el acceso de usuarios a cron?

log_modify=Modificada tarea de cron para $1
log_modify_l=Modificada tarea de cron "$2" para $1
log_create=Creada tarea de cron para $1
log_create_l=Creada tarea de cron "$2" para $1
log_delete=Borrada tarea de cron para $1
log_exec=Ejecutada tarea de cron como $1
log_exec_l=Ejecutada tarea de cron "$2" como $1
log_allow=Cambiado acceso de usuario a cron
   07070100017221000081a40000000000000002000000013ac0388700000a00000000200000000000000000000000000000001300000003reloc/cron/lang/fr    index_title=T鈉hes cron
index_user=Utilisateur
index_active=Actif?
index_command=Commande
index_none=Il n'y a pas de t鈉hes cron sur ce syst鑝e
index_create=Cr閑r une nouvelle t鈉he cron programm閑
index_allow=Contr鬺er l'acc鑣 aux utilisateurs des t鈉hes cron
index_return=liste des t鈉hes cron

edit_title=Editer une t鈉he cron
create_title=Cr閑r une t鈉he cron
edit_ecannot=Vous n'阾es pas autoris  閐iter une t鈉he cron
edit_details=D閠ails de la t鈉he
edit_user=S'ex閏ute en tant que
edit_active=Actif?
edit_commands=Commande
edit_command=Nom de la t鈉he
edit_input=Entr閑 de la commande
edit_when=Quand ex閏uter
edit_mins=Minute(s)
edit_hours=Heure(s)
edit_days=Jour(s) du mois
edit_months=Mois
edit_weekdays=Jour(s) de la semaine
edit_all=Tous
edit_selected=S閘ectionn ..
edit_run=Ex閏uter maintenant

month_1=Janvier
month_2=F関rier
month_3=Mars
month_4=Avril
month_5=Mai
month_6=Juin
month_7=Juillet
month_8=Ao鹴
month_9=Septembre
month_10=Octobre
month_11=Novembre
month_12=D閏embre

day_0=Dimanche
day_1=Lundi
day_2=Mardi
day_3=Mercredi
day_4=Jeudi
day_5=Vendredi
day_6=Samedi

save_err=Impossible d'enregistrer la t鈉he cron
save_ecmd=Vous n'avez pas entr de commande  ex閏uter
save_euser=Vous devez s閘ectionner un utilisateur
save_eallow=L'utilisateur $1 n'est pas autoris  avoir acc鑣 aux t鈉hes cron
save_ecannot=Vous n'avez pas le droit de cr閑r des t鈉hes cron pour $1
save_enone=Vous n'avez choisi aucun $1  ex閏uter

allow_title=Contr鬺e des acc鑣  cron
allow_desc=Cette page vous permet de choisir quels utilisateurs peuvent cr閑r et ex閏uter des t鈉hes cron.
allow_ecannot=Vous n'阾es pas autoris  contr鬺er l'acc鑣 des utilisateurs aux t鈉hes cron
allow_all1=Interdire tous les utilisateurs
allow_all2=Interdire tous les utilisateurs sauf root
allow_all3=Autoriser tous les utilisateurs
allow_allow=Autoriser seulement les utilisateurs list閟
allow_deny=Interdire seulement les utilisateurs list閟

env_title=Environnement cron
env_ecannot=Vous ne pouvez 閐iter l'environnement cron pour cet utilisateur
env_desc=Environnement cron pour $1
env_name=Nom de variable
env_value=Valeur
env_ename=$1 n'est pas un nom de variable valide

exec_title=Ex閏uter une t鈉he cron
exec_ecannot=Vous n'阾es pas autoris  ex閏uter une t鈉he cron pour cet utilisateur
exec_cmd=Sortie de la commande $1 ..
exec_none=Aucune sortie g閚閞閑

acl_users=Peut 閐iter une t鈉he cron pour
acl_all=Tous les utilisateur
acl_only=Seulement les utilisateurs
acl_except=Tous les utilisateur sauf
acl_control=Peut contr鬺er l'acc鑣 des utilisateurs  Cron?
07070100017222000081a40000000000000002000000013ac0388700000a26000000200000000000000000000000000000001300000003reloc/cron/lang/hu    index_title=Tervezett Cron munk醟
index_user=Fehaszn醠
index_active=蓃v閚yes?
index_command=Parancs
index_none=Ezen a rendszeren nincsenek cron munk醟
index_create=趈 cron munka k閟z韙閟e
index_allow=A felhaszn醠髃 hozz醘閞閟閚ek ellen鮮z閟e a cron munk醟hoz
index_return=a cron list醜oz

edit_title=Cron munka szerkeszt閟e
create_title=Cron munka k閟z韙閟e
edit_ecannot=謓nek nincs jogosults醙a szerkeszteni ennek a felhaszn醠髇ak a cron munk醝t.
edit_details=A munka be醠l韙醩ai
edit_user=Cron munka futtat醩a mint
edit_active=Akt韛?
edit_commands=Parancsok
edit_command=Parancs
edit_input=Adatbevitel a parancshoz
edit_when=Mikor futtassa
edit_mins=Percek
edit_hours=觬醟
edit_days=Napok
edit_months=H髇apok
edit_weekdays=H閠 napjai
edit_all=Mindben
edit_selected=V醠asztottban ..
edit_run=Futtat醩 most

month_1=Janu醨
month_2=Febru醨
month_3=M醨cius
month_4=羛rilis
month_5=M醞us
month_6=J鷑ius
month_7=J鷏ius
month_8=Augusztus
month_9=Szeptember
month_10=Okt骲er
month_11=November
month_12=December

day_0=Vas醨nap
day_1=H閠f
day_2=Kedd
day_3=Szerda
day_4=Cs黷鰎t鰇
day_5=P閚tek
day_6=Szombat

save_err=A cron munka elment閟e nem siker黮t.
save_ecmd=謓 nem adott meg futtatand parancsot.
save_euser=Egy felhaszn醠髏 musz醞 kiv醠asztani.
save_eallow=A(z) '$1' felhaszn醠髇ak nincs jogosults醙a hozz醘閞ni a cron-hoz.
save_ecannot=謓nek nincs jogosults醙a l閠rehozni '$1' cron munk醝t.
save_enone=Semmilyen $1 nem lett kiv醠asztva v間rehajt醩hoz.

allow_title=Cron hozz醘閞閟-szab醠yz醩
allow_desc=Ezzel az 鹯lappal megadhatja, hogy mely felhaszn醠髃 hozhatnak l閠re 閟 futtathatnak cron munk醟at.
allow_ecannot=謓 nem szab醠yozhatja a felhaszn醠髃 hozz醘閞閟閠 a cron-hoz.
allow_all1=Az 鰏szes felhaszn醠 tilt醩a
allow_all2=Az 鰏szes felhaszn醠 tilt醩a a root-ot kiv関e
allow_all3=Az 鰏szes felhaszn醠 enged閘yez閟e
allow_allow=Csak a list醔an szerepl felhaszn醠髃 enged閘yez閟e
allow_deny=Csak a list醔an szerepl fehaszn醠髃 tilt醩a

env_title=Cron k鰎nyezet
env_ecannot=謓 nem 醠l韙hatja be ennek a felhaszn醠髇ak a cron k鰎nyezet閠.
env_desc=$1 cron k鰎nyezete
env_name=V醠toz neve
env_value=蓃t閗e
env_ename=A(z) '$1' egy 閞v閚ytelen v醠toz n関.

exec_title=Cron munka v間rehajt醩a
exec_ecannot=謓nek nincs jogosults醙a ennek a felhaszn醠髇ak a nev閎en cron munk醫 v間rehajtani.
exec_cmd=A $1 parancs kimenete...
exec_none=Nincs kimenet.

acl_users=Tudja szerkeszteni a cron munk醝t
acl_all=Az 鰏szes felhaszn醠髇ak
acl_only=Csak az al醔bi felhaszn醠髃nak
acl_except=Mindeki閠, kiv関e az al醔bi felhaszn醠髃at
acl_control=Tudja szab醠yozni a felhaszn醠骾 hozz醘閞閟t a cron-hoz?
  07070100017223000081a40000000000000002000000013ac038870000092f000000200000000000000000000000000000001300000003reloc/cron/lang/it    index_title=Cron Jobs Pianificati
index_user=Utente
index_active=Attivo?
index_command=Comando
index_none=Non ci sono cron jobs su questo sistema
index_create=Crea un nuovo cron job pianificato
index_allow=Controlla l'accesso utente ai cron jobs
index_return=cron list

edit_title=Modifica Cron Job
create_title=Crea Cron Job
edit_ecannot=Non hai i permessi per modificare i cron jobs per questo utente
edit_details=Dettagli Job
edit_user=Esegui il cron job come
edit_active=Attivo?
edit_commands=Comandi
edit_command=Comando
edit_input=Input to command
edit_when=Quando eseguire
edit_mins=Minuti
edit_hours=Ore
edit_days=Giorni
edit_months=Mesi
edit_weekdays=Giorni della settimana
edit_all=Tutti
edit_selected=Selezionati..
edit_run=Esegui Ora

month_1=Gennaio
month_2=Febbraio
month_3=Marzo
month_4=Aprile
month_5=Maggio
month_6=Giugno
month_7=Luglio
month_8=Agosto
month_9=Settembre
month_10=Ottobre
month_11=Novembre
month_12=Dicembre

day_0=Domenica
day_1=Luned&igrave;
day_2=Marted&igrave;
day_3=Mercoled&igrave;
day_4=Gioved&igrave;
day_5=Venerd&igrave;
day_6=Sabato

save_err=Salvataggio del cron job fallito
save_ecmd=Non hai inserito un comando da eseguire
save_euser=Devi selezionare un utente
save_eallow=L'utente '$1' non ha i permessi per accedere a cron
save_ecannot=Non hai i permessi per creare cron jobs per '$1'
save_enone=Non hai scelto nessun $1 da eseguire

allow_title=Controlla Accesso Cron
allow_desc=Questa pagina ti permette di controllare quali utenti possono
creare ed eseguire cron jobs.
allow_ecannot=Non puoi controllare l'accesso utenti a cron
allow_all1=Vieta tutti gli utenti
allow_all2=Vieta tutti gli utenti eccetto root
allow_all3=Permetti tutti gli utenti
allow_allow=Permetti solo questi utenti
allow_deny=Vieta solo questi utenti

env_title=Ambiente Cron
env_ecannot=Non puoi modificare l'ambiente cron per questo utente
env_desc=Ambiente Cron per $1
env_name=Nome Variabile
env_value=Valore
env_ename='$1' non &egrave; un nome variabile valido

exec_title=Esegui Cron Job
exec_ecannot=Non hai i permessi per eseguire i cron jobs di questo utente
exec_cmd=Output dal comando $1 ..
exec_none=Nessun output generato

acl_users=Pu&ograve; modificare i cron job per
acl_all=Tutti gli utenti
acl_only=Solo gli utenti
acl_except=Tutti eccetto gli utenti
acl_control=Pu&ograve; controllare l'accesso utenti a cron?

 07070100017224000081e40000000000000002000000013ac0388700000b37000000200000000000000000000000000000001300000003reloc/cron/lang/nl    index_title=Geplande Cron Opdrachten
index_user=Gebruiker
index_active=Actief?
index_command=Opdracht
index_none=Er zijn geen cron opdrachten op dit systeem
index_create=Nieuwe geplande cronopdracht aangemaakt
index_allow=Beheer gebruikerstoegang tot cron opdrachten
index_return=cron lijst

edit_title=Bewerk Cron Opdracht
create_title=Maak Cron Opdracht Aan
edit_ecannot=U bent niet bevoegd om de cron opdrachten voor deze gebruiken
edit_details=Opdracht Details
edit_user=Voer cron opdracht uit als
edit_active=Actief?
edit_commands=Commando's
edit_command=Commando
edit_input=Invoer voor commando
edit_when=Wanneer uitvoeren
edit_mins=Minuten
edit_hours=Uren
edit_days=Dagen
edit_months=Maanden
edit_weekdays=Weekdagen
edit_all=Alle
edit_selected=Geselected ..
edit_run=Voer Nu Uit

month_1=januari
month_2=februari
month_3=maart
month_4=april
month_5=mei
month_6=june
month_7=juli
month_8=augustus
month_9=september
month_10=oktober
month_11=november
month_12=december

day_0=zondag
day_1=maandag
day_2=dinsdag
day_3=woensdag
day_4=donderdag
day_5=vrijdag
day_6=zaterdag

save_err=Fout bij het opslaan van cron opdrachten
save_ecmd=U heeft geen uit te voeren commando ingevuld
save_euser=U moet een gebruiker selecteren
save_euser2=Gebruiker '$1' bestaat niet
save_eallow=De gebruiker '$1' is niet bevoegd om cron te benaderen
save_ecannot=U bent niet bevoegd om cron opdrachten aan te maken of te bewerken voor '$1'
save_enone=U heeft geen $1 gekozen om uit te voeren

allow_title=Control Cron Toegang
allow_desc=Dit formulier stelt u in staat om aan te geven welke gebruikers cron opdrachten aanmaken uitvoeren.
allow_ecannot=U kunt niet de gebruikerstoegang tot crom beheren
allow_all1=Weiger alle gebruikers
allow_all2=Weiger alle gebruikers behalve root
allow_all3=Accepteer alle gebruikers
allow_allow=Accepteer alleen gebruikers in de lijst
allow_deny=Weiger alleen de gebruikers in de lijst

env_title=Cron Omgeving
env_ecannot=U kunt niet de cron omgeving bewerken voor deze gebruiker
env_desc=Cron Omgeving voor $1
env_name=Variable Naam
env_value=Waarde
env_ename='$1' is geen geldige variabele naam

exec_title=Voer Cron Opdracht Uit
exec_ecannot=U bent niet bevoegd om cron opdrachten voor deze gebruiker uit te voeren
exec_cmd=Uitvoer van commando $1 ..
exec_none=Geen uitvoer gegenereerd

acl_users=Kan cron opdrachten bewerken voor
acl_all=Alle gebruikers
acl_only=Alleen gebruikers
acl_except=Alle behalve de gebruikers
acl_control=Kan gebruikerstoegang tot cron beheren?

log_modify=Gewijzigd cron opdracht voor $1
log_modify_l=Gewijzigd cron opdracht "$2" voor $1
log_create=Aangemaakt cron opdracht voor $1
log_create_l=Aangemaakt cron opdracht "$2" voor$1
log_delete=Verwijderd cron opdracht voor $1
log_exec=Uitgevoerd cron opdracht als $1
log_exec_l=Uitgevoerdoert cron opdracht uit "$2" als $1
log_allow=Gewijzigd gebruikerstoegang naar cron
 07070100017225000081a40000000000000002000000013ac0388700000ac9000000200000000000000000000000000000001300000003reloc/cron/lang/pl    index_title=Harmonogram zada crona
index_user=U縴tkownik
index_active=Aktywne?
index_command=Polecenie
index_none=Brak zada dla crona
index_create=Utw髍z nowe zadanie dla crona
index_allow=Zarz眃zaj dost阷em u縴tkownik體 do zada crona
index_return=listy zada crona

edit_title=Zmie zadanie crona
create_title=Utw髍z zadanie crona
edit_ecannot=Mie masz uprawnie do zmiany zada crona tego u縴tkownika
edit_details=Dane zadania
edit_user=Uruchom zadanie crona jako
edit_active=Aktywne?
edit_commands=Polecenia
edit_command=Polecenie
edit_input=Wej禼ie dla polecenia
edit_when=Kiedy uruchomi
edit_mins=Minuty
edit_hours=Godziny
edit_days=Dni
edit_months=Miesi眂e
edit_weekdays=Dni tygodnia
edit_all=Wszystkie
edit_selected=Wybrane ..
edit_run=Uruchom teraz

month_1=Stycze
month_2=Luty
month_3=Marzec
month_4=Kwiecie
month_5=Maj
month_6=Czerwiec
month_7=Lipiec
month_8=Sierpie
month_9=Wrzesie
month_10=Pa糳ziernik
month_11=Listopad
month_12=Grudzie

day_0=Niedziela
day_1=Poniedzia砮k
day_2=Wtorek
day_3=oda
day_4=Czwartek
day_5=Pi眛ek
day_6=Sobota

save_err=Nie uda硂 si zachowa zadania dla crona
save_ecmd=Nie poda砮s polecenia do uruchomienia
save_euser=Musisz okre秎ic u縴tkownika
save_euser2=U縴tkownik '$1' nie istnieje
save_eallow=U縴tkownik '$1' nie ma prawa dost阷u do crona
save_ecannot=Nie masz uprawnie do tworzenia ani zmieniania zada crona dla '$1'
save_enone=Nie wybra砮 縜dnego $1 do uruchomienia

allow_title=Zarz眃zanie dost阷em do crona
allow_desc=Ten formularz pozwala ci okre秎i, kt髍zy u縴tkownicy mog tworzy i uruchamia zadania crona
allow_ecannot=Nie masz uprawnie do okre秎ania praw dostepu do crona
allow_all1=Zabro wszystkim
allow_all2=Zabro wszystkim opr骳z roota
allow_all3=Pozw髄 wszystkim
allow_allow=Pozw髄 tylko wymienionym
allow_deny=Zabro tylko wymienionym

env_title=odowisko crona
env_ecannot=Nie masz uprawnie do zmiany 秗odowiska crona tego u縴tkownika
env_desc=odowisko crona dla $1
env_name=Nazwa zmiennej
env_value=Warto舵
env_ename='$1' nie jest poprawn nazw zmiennej

exec_title=Uruchom zadanie crona
exec_ecannot=Nie masz uprawnie do uruchamiania zada crona tego u縴tkownika
exec_cmd=Wynik polecenia $1 ..
exec_none=Nie wygenerowano 縜dnego wyniku

acl_users=Mo縠 zmienia zadania crona dla
acl_all=Wszystkich
acl_only=Tylko u縴tkownik體
acl_except=Wszystkich opr骳z
acl_control=Mo縠 okre秎a prawa dost阷u u縴tkownik體 do crona?

log_modify=Zmieniono zadanie crona dla $1
log_modify_l=Zmieniono zadanie crona "$2" dla $1
log_create=Utworzono zadanie crona dla $1
log_create_l=Utworzono zadanie crona "$2" dla $1
log_delete=Usuni阾o zadanie crona dla $1
log_exec=Wykonano zadanie crona jako $1
log_exec_l=Wykonaj zadanie crona "$2" jako $1
log_allow=Zmieniono prawa dost阷u do crona
   07070100017226000081a40000000000000002000000013ac0388700000a76000000200000000000000000000000000000001300000003reloc/cron/lang/pt    index_title=Tarefas Agendadas (Cron)
index_user=Utilizador
index_active=Activo?
index_command=Comando
index_none=N鉶 h tarefas agendadas neste sistema
index_create=Criar nova tarefa agendada
index_allow=Controlo de acesso de utilizadores a tarefas agendadas
index_return=lista de tarefas agendadas

edit_title=Editar Tarefa Agendada
create_title=Criar Tarefa Agendada
edit_ecannot=Voc n鉶 est autorizado para editar tarefas agendadas para este utilizador
edit_details=Detalhes da Tarefa
edit_user=Executar tarefa agendada como
edit_active=Activo?
edit_commands=Comandos
edit_command=Comando
edit_input=Entrada para o comando
edit_when=A executar quando
edit_mins=Minutos
edit_hours=Horas
edit_days=Dias
edit_months=Meses
edit_weekdays=Dias da semana
edit_all=Todos
edit_selected=Seleccionados ..
edit_run=Executar agora

month_1=Janeiro
month_2=Fevereiro
month_3=Mar鏾
month_4=Abril
month_5=Maio
month_6=Junho
month_7=Julho
month_8=Agosto
month_9=Setembro
month_10=Outubro
month_11=Novembro
month_12=Dezembro

day_0=Domingo
day_1=Segunda-Feira
day_2=Ter鏰-Feira
day_3=Quarta-Feira
day_4=Quinta-Feira
day_5=Sexta-Feira
day_6=S醔ado

save_err=Erro ao guardar tarefa agendada
save_ecmd=Voc n鉶 introduziu um comando para executar
save_euser=Voc tem de seleccionar um utilizador
save_eallow=O utilizador '$1' n鉶 est autorizado para aceder 鄐 tarefas agendadas
save_ecannot=Voc n鉶 est autorizado para criar tarefas agendadas para '$1'
save_enone=Voc n鉶 escolheu qualquer $1 para executar

allow_title=Controlo de Acesso de Tarefas Agendadas
allow_desc=Este formul醨io permite-lhe controlar que utilizadores podem criar e executar tarefas agendadas.
allow_ecannot=Voc n鉶 pode controlar o acesso de utilizadores 鄐 tarefas agendadas
allow_all1=Recusar todos os utilizadores
allow_all1=Recusar todos os utilizadores excepto o root
allow_all3=Permitir todos os utilizadores
allow_allow=Permitir apenas os utilizadores listados
allow_deny=Recusar apenas os utilizadores listados

env_title=Ambiente de tarefas agendadas
env_ecannot=Voc n鉶 pode editar o ambiente de tarefas agendadas para este utilizador
env_desc=Ambiente de tarefas agendadas para $1
env_name=Nome da Vari醰el
env_value=Valor
env_ename='$1' n鉶 um nome de vari醰el v醠ido

exec_title=Executar Tarefa Agendada
exec_ecannot=Voc n鉶 est autorizado para executar tarefas agendadas para este utilizador
exec_cmd=Sa韉a de resultados do comando $1 ..
exec_none=Sem sa韉a de resultados gerada

acl_users=Pode editar tarefas agendadas para
acl_all=Todos os utilizadores
acl_only=Apenas utilizadores
acl_except=Todos excepto os utilizadores
acl_control=Pode controlar o acesso do utilizador 鄐 terefas agendadas?
  07070100017227000081a40000000000000002000000013ac038870000092c000000200000000000000000000000000000001600000003reloc/cron/lang/ru_RU index_create=杨玟囹 眍忸 玎溧龛 cron
acl_only=翌朦觐 镱朦珙忄蝈脲
save_eallow=项朦珙忄蝈朦 '$1' 礤 桁邋 漕耱箫  cron
save_err=硒栳赅 镳 耦躔囗屙梃 玎溧龛 cron
edit_selected=蔓狃囗睇 ..
exec_cmd=蔓忸 觐爨礓 $1 ..
edit_user=蔓镱腠栩 玎溧龛 赅
env_ecannot=蔓 礤 祛驽蝈 疱溧牝桊钼囹 铌痼驽龛 cron 潆 溧眄钽 镱朦珙忄蝈
edit_input=骡钿  觐爨礓
edit_weekdays=捻柰邃咫
env_desc=侮痼驽龛 Cron 潆 $1
save_euser=蔓 漕腈睇 恹狃囹 镱朦珙忄蝈
index_none=青溧龛 磬 镳钼邃屙桢 疣犷 铗耋蝰蜮簋
acl_all=埋艴 镱朦珙忄蝈脲
env_title=橡钽疣祆眍 侮痼驽龛 Cron
acl_control=填驽 箫疣怆螯 漕耱箫铎 镱朦珙忄蝈脲  cron?
index_command=暑爨礓
acl_users=填驽 疱溧牝桊钼囹 玎溧龛 cron 潆
allow_title=语疣怆屙桢 漕耱箫铎  Cron
edit_run=青矬耱栩 皴轺囫
month_10=侮狃
month_11=皖狃
month_12=腻赅狃
edit_hours=奏覃
index_title=朽耧桉囗桢 青溧龛 Cron
allow_deny=青镳弪栩 蝾朦觐 镥疱麒耠屙睇
index_return=耧桉铌 cron
acl_except=埋艴, 牮铎 镱朦珙忄蝈脲
allow_all1=青镳弪栩 怦屐, 牮铎 root
allow_all3=朽琊屮栩 怦屐
exec_none=蔓忸 觐爨礓 铗耋蝰蜮箦
env_value=琼圜屙桢
save_ecannot=锣 礤 疣琊屮屙 耦玟噔囹 玎溧龛 cron 潆 '$1'
allow_desc=蒡 纛痨 镱玮铍弪 忄 箫疣怆螯 蝈, 赅觇 镱朦珙忄蝈腓 祛泱 耦玟噔囹  玎矬耜囹 玎溧龛 cron.
save_enone=蔓 礤 恹狃嚯 赅觐-腓犷 $1 潆 恹镱腠屙
allow_ecannot=蔓 礤 祛驽蝈 箫疣怆螯 漕耱箫铎 镱朦珙忄蝈脲  cron
month_1=唔忄瘘
edit_when=吗屐 恹镱腠屙
month_2=藻怵嚯
month_3=锑痱
month_4=里疱朦
month_5=锑
month_6=叁睃
month_7=叁朦
month_8=棱泱耱
month_9=彦眚狃
edit_details=相疣戾蝠 玎溧龛
exec_ecannot=锣 礤 疣琊屮屙 恹镱腠螯 玎溧龛 cron 潆 溧眄钽 镱朦珙忄蝈
day_0=骂耜疱皴睃
day_1=项礤溴朦龛
day_2=买铕龛
day_3=佯邃
day_4=族蜮屦
day_5=蝽桷
day_6=洋後铗
env_ename='$1' 礤 怆弪 漕矬耱桁 桁屙屐 镥疱戾眄铋
env_name=褥 襄疱戾眄铋
create_title=杨玟囗桢 青溧龛 Cron
edit_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 玎溧龛 cron 潆 溧眄钽 镱朦珙忄蝈
save_ecmd=蔓 礤 忖咫 觐爨礓 潆 恹镱腠屙
allow_allow=朽琊屮栩 蝾朦觐 镥疱麒耠屙睇
edit_command=暑爨礓
index_active=狸蜩忭?
index_allow=语疣怆屙桢 漕耱箫铎 镱朦珙忄蝈脲  玎溧龛 cron
index_user=项朦珙忄蝈朦
edit_all=埋
edit_active=狸蜩忭?
exec_title=蔓镱腠屙桢 青溧龛 Cron
edit_days=捻
edit_mins=惕眢螓
edit_title=绣溧牝桊钼囗桢 青溧龛 Cron
edit_commands=暑爨礓
edit_months=体鳆
07070100017228000081a40000000000000002000000013ac038870000094e000000200000000000000000000000000000001600000003reloc/cron/lang/ru_SU index_title=蛄有捎廖膳 牧紊 Cron
index_user=鹣特谙琢耘特
index_active=崴陨孜?
index_command=胂土文
index_none=牧紊 瘟 幸献拍盼膳 伊孪 显诱杂宰绽
index_create=笙谀猎 蜗紫 诹牧紊 cron
index_allow=跣伊滋盼膳 南釉招贤 邢特谙琢耘膛  诹牧紊淹 cron
index_return=有捎纤 cron

edit_title=蚺牧嗽梢献廖膳 牧紊 Cron
create_title=笙谀廖膳 牧紊 Cron
edit_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 诹牧紊 cron 奶 牧挝锨 邢特谙琢耘萄
edit_details=鹆伊团砸 诹牧紊
edit_user=髻邢涛稍 诹牧紊 肆
edit_active=崴陨孜?
edit_commands=胂土文
edit_command=胂土文
edit_input=髯夏  讼土文
edit_when=饕磐 踪邢涛盼裳
edit_mins=砩握再
edit_hours=淤
edit_days=湮
edit_months=砼友觅
edit_weekdays=湮深拍盘
edit_all=饔
edit_selected=髻乱廖钨 ..
edit_run=姓釉稍 优兽劣

month_1=裎琢邑
month_2=媾滓撂
month_3=砹以
month_4=嵝遗特
month_5=砹
month_6=槔呜
month_7=槔特
month_8=嶙钦釉
month_9=笈卧崖邑
month_10=锼匝乱
month_11=钕崖邑
month_12=渑肆乱

day_0=飨铀遗优呜
day_1=鹣闻呐特紊
day_2=髟弦紊
day_3=笠拍
day_4=宰乓
day_5=鹧晕擅
day_6=笳侣显

save_err=镗陕肆 幸 酉纫廖盼缮 诹牧紊 cron
save_ecmd=髻 闻 鬃盘 讼土文 奶 踪邢涛盼裳
save_euser=髻 南讨钨 踪乱猎 邢特谙琢耘萄
save_eallow=鹣特谙琢耘特 '$1' 闻 赏排 南釉招  cron
save_ecannot=髁 闻 伊谝袍盼 酉谀磷猎 诹牧紊 cron 奶 '$1'
save_enone=髻 闻 踪乱撂 肆讼-躺孪 $1 奶 踪邢涛盼裳

allow_title=跣伊滋盼膳 南釉招贤  Cron
allow_desc= 葡彝 邢谧咸雅 琢 招伊滋言 耘, 肆松 邢特谙琢耘躺 拖钦 酉谀磷猎  诹姓铀猎 诹牧紊 cron.
allow_ecannot=髻 闻 拖峙耘 招伊滋言 南釉招贤 邢特谙琢耘膛  cron
allow_all1=幸旁稍 子磐
allow_all1=幸旁稍 子磐, 艘贤 root
allow_all3=蛄谝袍稍 子磐
allow_allow=蛄谝袍稍 韵特讼 信遗奚犹盼钨
allow_deny=幸旁稍 韵特讼 信遗奚犹盼钨

env_title=鹨锨伊屯蜗 锼艺峙紊 Cron
env_ecannot=髻 闻 拖峙耘 遗牧嗽梢献猎 纤艺峙紊 cron 奶 牧挝锨 邢特谙琢耘萄
env_desc=锼艺峙紊 Cron 奶 $1
env_name=橥 鹋遗团挝鲜
env_value=赁盼膳
env_ename='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 信遗团挝鲜

exec_title=髻邢涛盼膳 牧紊 Cron
exec_ecannot=髁 闻 伊谝袍盼 踪邢涛言 诹牧紊 cron 奶 牧挝锨 邢特谙琢耘萄
exec_cmd=髻紫 讼土文 $1 ..
exec_none=髻紫 讼土文 显诱杂宰张

acl_users=硐峙 遗牧嗽梢献猎 诹牧紊 cron 奶
acl_all=饔湃 邢特谙琢耘膛
acl_only=粝特讼 邢特谙琢耘膛
acl_except=饔湃, 艘贤 邢特谙琢耘膛
acl_control=硐峙 招伊滋言 南釉招贤 邢特谙琢耘膛  cron?
  07070100017229000081a40000000000000002000000013ac03887000008fc000000200000000000000000000000000000001300000003reloc/cron/lang/sv    index_title=Schemalagda cronjobb
index_user=Anv鋘dare
index_active=Aktiv?
index_action=舤g鋜d
index_command=Kommando
index_none=Inga cronjobb finns p detta system
index_create=Skapade ett nytt schemalagt cronjobb
index_allow=Styr anv鋘dar錿komst till cronjobb
index_return=cron-lista

edit_title=膎dra cronjobb
create_title=Skapa cronjobb
edit_ecannot=Du f錼 inte 鋘dra cronjobb 鋑da av denna anv鋘dare
edit_details=Jobbinformation
edit_user=K鰎 cronjobbet som
edit_active=Aktivt?
edit_commands=Kommandon
edit_command=Kommando
edit_input=Inmatning till kommandot
edit_when=N鋜 ska jobbet utf鰎as?
edit_mins=Minuter
edit_hours=Timmar
edit_days=Dagar
edit_months=M錸ader
edit_weekdays=Veckodagar
edit_boot=Vid start
edit_all=Alla
edit_selected=Valt ...
edit_run=K鰎 nu

month_1=januari
month_2=februari
month_3=mars
month_4=april
month_5=maj
month_6=juni
month_7=juli
month_8=augusti
month_9=september
month_10=oktober
month_11=november
month_12=december

day_0=s鰊dag
day_1=m錸dag
day_2=tisdag
day_3=onsdag
day_4=torsdag
day_5=fredag
day_6=l鰎dag

save_err=Det gick inte att spara cronjobb
save_ecmd=Du har inte angivit n錱ot kommando som ska utf鰎as
save_euser=Du m錽te v鋖ja en anv鋘dare
save_euser2=Anv鋘dare '$1' finns inte
save_eallow=Anv鋘dare '$1' f錼 inte komma 錿 cron
save_ecannot=Du f錼 inte skapa eller 鋘dra cronjobb f鰎 '$1'
save_enone=Du valde inte n錱on $1 att utf鰎a

allow_title=Styr cron-tillg錸g
allow_desc=I detta formul鋜 kan du ange vilka anv鋘dare som f錼 skapa och k鰎a cronjobb.
allow_ecannot=Du f錼 inte styra anv鋘darnas tillg錸g till cron
allow_all1=F鰎bjud alla anv鋘dare
allow_all2=F鰎bjud alla anv鋘dare utom root
allow_all3=Till錿 alla anv鋘dare
allow_allow=Till錿 bara uppr鋕nade anv鋘dare
allow_deny=F鰎bjud bara uppr鋕nade anv鋘dare

env_title=Cron-omgivning
env_ecannot=Du f錼 inte 鋘dra cron-omgivningen f鰎 denna anv鋘dare
env_desc=Cron-omgivning f鰎 $1
env_name=Variabelnamn
env_value=V鋜de
env_ename='$1' 鋜 inte ett giltigt variabelnamn

exec_title=Utf鰎 cronjobb
exec_ecannot=Du f錼 inte utf鰎a cronjobb f鰎 denna anv鋘dare
exec_cmd=Resultat fr錸 kommando $1 ...
exec_none=Inget resultat fanns

acl_users=F錼 鋘dra cronjobb f鰎
acl_all=Alla anv鋘dare
acl_only=Bara anv鋘dare
acl_except=Alla utom anv鋘dare
acl_control=Kunna styra anv鋘dar錿komst till cron?
0707010001722a000081a40000000000000002000000013ac0388700000b9f000000200000000000000000000000000000001300000003reloc/cron/lang/tr    index_title=Zamanland齬齦m G鰎evler
index_user=Kullan齝
index_active=Aktif?
index_command=Komut
index_none=Bu sistemde zamanland齬齦m g鰎ev yoktur
index_create=Yeni bir zamanland齬齦m g鰎ev olu⺶ur
index_allow=Zamanland齬齦m g鰎evlerdeki kullan齝 haklar kontrol
index_return=g鰎ev listesi

edit_title=Zamanland齬齦m G鰎ev 謟elliklerini De餴⺶ir
create_title=Zamanland齬齦m G鰎ev Olu⺶ur
edit_ecannot=Bu kullan齝齨齨 zamanland齬齦m g鰎evlerin 鰖elliklerini de餴⺶irmeye hakki yoktur
edit_details=蔺 Detaylar
edit_user=G鰎evi 鏰lt齬an kullan齝
edit_active=Aktif?
edit_commands=Komutlar
edit_command=Komut
edit_input=Komutu Girin
edit_when=莂lt齬齦ma zamanlar
edit_minutes=Dakikalar
edit_hours=Saatler
edit_days=G黱ler
edit_months=Aylar
edit_weekdays=蔺g黱leri
edit_all=Hepsi
edit_selected=Se鏸len ..
edit_run=辤mdi 莂lt齬

month_1=Ocak
month_2=辵bat
month_3=Mart
month_4=Nisan
month_5=May齭
month_6=Haziran
month_7=Temmuz
month_8=A饀stos
month_9=Eyl黮
month_10=Ekim
month_11=Kasim
month_12=Aralik

day_0=Pazar
day_1=Pazartesi
day_2=Sal
day_3=莂rmba
day_4=Per㧐mbe
day_5=Cuma
day_6=Cumartesi

save_err=Zamanland齬齦m g鰎evin kaydedilmesinde hata olu⺶u
save_ecmd=莂lt齬齦acak bir komut girmediniz
save_euser=Bir kullan齝 se鏼elisiniz
save_eallow='$1' kullan齝齭齨齨 g鰎evi 鏰lt齬mas齨a izin veriledi
save_ecannot='$1' i鏸n zamanland齬齦m g鰎ev olu⺶urman齴a izin verilmemi⺶ir
save_enone=莂lt齬mak i鏸n herhangi bir $1 se鏼ediniz

allow_title=Zamanland齬齦m G鰎ev Kontrol
allow_desc=Bu form hangi kullan齝齦ar齨 zamanland齬齦m g鰎ev olu⺶urabilece餴ni veya 鏰lt齬abilece餴ni belirlemek i鏸n kullan齦齬
allow_ecannot=Zamanland齬齦m g鰎evde kullan齝 izinlerini kontrol edemezsiniz
allow_all1=B黷黱 kullan齝齦ar reddet
allow_all2=Root hari b黷黱 kullan齝齦ar reddet
allow_all3=B黷黱 kullan齝齦ara izin ver
allow_allow=Listelenmi kullan齝齦ara izin ver 
allow_deny=Listelenmi kullan齝齦ar reddet

env_title=Zamanland齬齦m G鰎ev 莈vresi
env_ecannot=Bu kullan齝齨齨 zamanland齬齦m g鰎ev 鏴vresini de餴⺶irmeye izini yoktur
env_desc=$1 i鏸n zamanland齬齦m g鰎ev 鏴vresi
env_name=De餴⺧en 輘mi
env_value=De餰ri
env_ename='$1' ge鏴rli bir de餴⺧en ii de餴ldir

exec_title=Zamanland齬齦m G鰎evi 莂lt齬
exec_ecannot=Bu kullan齝齨齨 zamanland齬齦m g鰎evi 鏰lt齬mya hakk yoktur
exec_cmd=$1 komutunun 琮kt齭..
exec_none=驱kt olu⺶urulmad

acl_users=Zamanland齬齦m g鰎evleri de餴⺶irebilsin
acl_all=B黷黱 kullan齝齦ar
acl_only=Sadece kullan齝齦ar
acl_except=Bu kullan齝齦ar hari
acl_control=Zamanland齬齦m g鰎evlerin kullan齝 izinlerini kontrol edebilsin

log_modify=$1 i鏸n cron i㱮 de餴⺶irildi
log_modify_l=$1 i鏸n cron i㱮 '$2' de餴⺶irildi
log_create=$1 i鏸n cron i㱮 olu⺶uruldu
log_create_l=$1 i鏸n cron i㱮 '$2' olu⺶uruldu
log_delete=$1 i鏸n cron i㱮 silindi
log_exec=Cron i㱮, $1 olarak 鏰lt齬齦d
log_exec_l=Cron i㱮 '$2', $1 olarak 鏰lt齬齦d
log_allow=Cron'a kullan齝 girieri de餴⺶irildi

 07070100017237000081a40000000000000002000000013ac03887000007ab000000200000000000000000000000000000001600000003reloc/cron/lang/zh_CN index_title=Cron 任务调度
index_user=用户
index_active=活动的?
index_command=命令
index_none=本系统中没有Cron任务
index_create=创建一个新的Cron任务
index_allow=控制用户访问Cron任务
index_return=cron列表

edit_title=编辑Cron任务
create_title=创建Cron任务
edit_ecannot=你不能为这个用户编辑Cron任务
edit_details=任务细节
edit_user=执行Cron任务用户
edit_active=活动的?
edit_commands=命令
edit_command=命令
edit_input=输入命令
edit_when=何时执行
edit_mins=分钟
edit_hours=小时
edit_days=日
edit_months=月
edit_weekdays=星期
edit_all=全部
edit_selected=被选中的 ..
edit_run=现在运行

month_1=一月
month_2=二月
month_3=三月
month_4=四月
month_5=五月
month_6=六月
month_7=七月
month_8=八月
month_9=九月
month_10=十月
month_11=十一月
month_12=十二月

day_0=星期日
day_1=星期一
day_2=星期二
day_3=星期三
day_4=星期四
day_5=星期五
day_6=星期六

save_err=保存Cron任务失败
save_ecmd=你没有输入一个执行的命令
save_euser=你必须选择一个用户
save_eallow=用户'$1'不能访问cron
save_ecannot=你不能为'$1'创建Cron任务 
save_enone=你不能选择任何$1执行

allow_title=控制Cron访问
allow_desc=这里允许你控制哪些用户能创建和运行Cron任务.
allow_ecannot=你不能控制用户访问cron
allow_all1=拒绝所有用户
allow_all2=除了root用户外拒绝所有用户
allow_all3=允许所有用户
allow_allow=只允许列出的用户
allow_deny=只拒绝列出的用户

env_title=Cron环境
env_ecannot=你不能为这个用户编辑Cron环境
env_desc=$1的Cron环境
env_name=变量名
env_value=值
env_ename='$1'不是一个合法的变量名

exec_title=执行Cron任务
exec_ecannot=你不能为这个用户执行Cron任务
exec_cmd=从命令$1输出 ..
exec_none=没有输出

acl_users=能编辑Cron任务 为
acl_all=全部用户
acl_only=只有用户
acl_except=全部用户除了
acl_control=能控制用户对cron的访问?

log_modify=为 $1 更新了 Cron 任务
log_modify_l=为 $1 更新了 Cron 任务 "$2"
log_create=为 $1 创建了 Cron 任务
log_create_l=为 $1 创建了 Cron 任务 "$2"
log_delete=为 $1 删除了 Cron 任务
log_exec=作为 $1 执行了Cron 任务
log_exec_l=作为 $1 执行了Cron 任务 "$2"
log_allow=改变了访问 Cron 的用户
 07070100017238000081a40000000000000002000000013ac0388700000777000000200000000000000000000000000000001b00000003reloc/cron/lang/zh_TW.Big5    index_title=﹚磅︽ (Cron)
index_user=ㄏノ
index_active=琌币笆?
index_command=㏑
index_none=硂╰参い⊿Τ﹚磅︽
index_create=ミ穝﹚磅︽
index_allow=北ㄏノ﹚磅︽
index_return=﹚磅︽

edit_title=絪胯﹚磅︽
create_title=ミ﹚磅︽
edit_ecannot=眤ぃ砆す砛絪胯酚ㄏノ﹚磅︽
edit_details=灿竊
edit_user=磅︽﹚磅︽ㄏノ
edit_active=琌币笆?
edit_commands=㏑
edit_command=㏑
edit_input=倒㏑块
edit_when=磅︽丁
edit_mins=だ
edit_hours=
edit_days=ら
edit_months=る
edit_weekdays=琍戳
edit_all=场
edit_selected=匡拒...
edit_run=瞷磅︽

month_1= る
month_2= る
month_3= る
month_4= る
month_5= きる
month_6= せる
month_7= る
month_8= る
month_9= る
month_10= る
month_11=る
month_12=る

day_0=琍戳ら
day_1=琍戳
day_2=琍戳
day_3=琍戳
day_4=琍戳
day_5=琍戳き
day_6=琍戳せ

save_err=纗﹚磅︽ア毖
save_ecmd=眤⊿Τ块璶磅︽
save_euser=眤ゲ斗匡拒ㄏノ
save_eallow=ㄏノ '$1' ぃ砆す砛ㄏノ﹚磅︽
save_ecannot=眤ぃ砆す砛ㄏノ '$1' ミ﹚磅︽
save_enone=眤⊿Τ匡拒ヴ $1 磅︽

allow_title=﹚磅︽北
allow_desc=硂虫ヴ眤北ㄏノ琌ミ┪磅︽﹚磅︽.
allow_ecannot=眤ぃ北ㄏノ﹚磅︽
allow_all1=┶荡┮Τㄏノ
allow_all2=┶荡埃 root ┮Τㄏノ
allow_all3=す砛┮Τㄏノ
allow_allow=す砛ㄏノ
allow_deny=┶荡ㄏノ

env_title=﹚磅︽吏挂
env_ecannot=眤ぃ絪胯硂ㄏノ﹚磅︽吏挂
env_desc=ㄏノ $1 ﹚磅︽吏挂
env_name=跑计嘿
env_value=计
env_ename='$1' ぃ琌Τ跑计嘿

exec_title=磅︽﹚磅︽
exec_ecannot=眤ぃ砆す砛磅︽硂ㄏノ﹚磅︽
exec_cmd=パ㏑ $1 块...
exec_none=⊿Τ玻ネ块

acl_users=絪胯ㄇㄏノ﹚磅︽
acl_all=场ㄏノ
acl_only=Τㄏノ
acl_except=场ㄏノ, 埃
acl_control=琌北﹚磅︽ㄏノ?
 07070100012efd000081a40000000000000002000000013ac03887000003bd000000200000000000000000000000000000001900000003reloc/cron/log_parser.pl  # log_parser.pl
# Functions for parsing this module's logs

require './cron-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params, [long])
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p, $long) = @_;
if ($action eq 'modify') {
	return &text($long ? 'log_modify_l' : 'log_modify',
		     "<tt>$object</tt>", "<tt>$p->{'cmd'}</tt>");
	}
elsif ($action eq 'create') {
	return &text($long ? 'log_create_l' : 'log_create',
		     "<tt>$object</tt>", "<tt>$p->{'cmd'}</tt>");
	}
elsif ($action eq 'delete') {
	return &text($long ? 'log_delete_l' : 'log_delete',
		     "<tt>$object</tt>", "<tt>$p->{'command'}</tt>");
	}
elsif ($action eq 'exec') {
	return &text($long ? 'log_exec_l' : 'log_exec',
		     "<tt>$object</tt>", "<tt>$p->{'command'}</tt>");
	}
elsif ($action eq 'allow') {
	return $text{'log_allow'};
	}
else {
	return undef;
	}
}

   07070100012efe000081a40000000000000002000000013ac038860000029a000000200000000000000000000000000000001700000003reloc/cron/module.info    desc_zh_CN=Cron 任务调度
name=Cron Manager
desc_pt=Tarefas Agendadas (Cron)
desc_tr=Zamanland齬齦m G鰎evler
desc_fr=T鈉hes Cron
desc_es=Tareas Planificadas de Cron
desc_sv=Schemalagda cronjobb
desc_de=Geplante Cron Jobs
desc_hu=Tervezett Cron munk醟
desc_ru_SU=蛄有捎廖膳 牧紊 Cron
desc_pl=Harmonogram zada crona
category=system
os_support=solaris slackware-linux redhat-linux debian-linux suse-linux hpux freebsd osf1 irix unixware openserver macos open-linux turbo-linux openbsd corel-linux cobalt-linux aix
desc_zh_TW.Big5=﹚磅︽ (Cron)
desc=Scheduled Cron Jobs
risk=low medium high
desc_nl=Geplande Cron Opdrachten
desc_ru_RU=朽耧桉囗桢 青溧龛 Cron
  07070100012eff000081e40000000000000002000000013ac03886000001fe000000200000000000000000000000000000001a00000003reloc/cron/save_allow.cgi #!/usr/local/bin/perl
# save_allow.cgi
# Save the cron allow/deny settings

require './cron-lib.pl';
&ReadParse();

&lock_file($config{cron_allow_file});
&lock_file($config{cron_deny_file});
unlink($config{cron_allow_file});
unlink($config{cron_deny_file});
if ($in{mode} == 1) { &save_allowed(split(/\s+/, $in{'allow'})); }
elsif ($in{mode} == 2) { &save_denied(split(/\s+/, $in{'deny'})); }
&unlock_file($config{cron_allow_file});
&unlock_file($config{cron_deny_file});
&webmin_log("allow");
&redirect("");

  07070100012f00000081e40000000000000002000000013ac0388600000c79000000200000000000000000000000000000001900000003reloc/cron/save_cron.cgi  #!/usr/local/bin/perl
# save_cron.cgi
# Save an existing cron job, or create a new one

require './cron-lib.pl';
&error_setup($text{'save_err'});
&ReadParse();

@jobs = &list_cron_jobs();
if ($in{'new'}) {
	$job = { 'type' => 0 };
	}
else {
	$oldjob = $jobs[$in{'idx'}];
	$job->{'type'} = $oldjob->{'type'};
	$job->{'file'} = $oldjob->{'file'};
	$job->{'line'} = $oldjob->{'line'};
	$job->{'nolog'} = $oldjob->{'nolog'};
	}

@files = &unique((map { $_->{'file'} } @jobs),
	         "$config{'cron_dir'}/$in{'user'}");
foreach $f (@files) { &lock_file($f); }

# Check and parse inputs
if ($in{"cmd"} !~ /\S/) {
	&error($text{'save_ecmd'});
	}
if (!$in{'user'}) {
	&error($text{'save_euser'});
	}
if (!defined(getpwnam($in{'user'}))) {
	&error(&text('save_euser2', $in{'user'}));
	}
foreach $arr ("mins", "hours", "days", "months", "weekdays") {
	if ($in{"all_$arr"}) {
		# All mins/hrs/etc.. chosen
		$job->{$arr} = "*";
		}
	elsif (defined($in{$arr})) {
		# Need to work out and simplify ranges selected
		undef(@range);
		undef(@newrange);
		@range = split(/\0/, $in{$arr});
		@range = sort { $a <=> $b } @range;
		$start = -1;
		for($i=0; $i<@range; $i++) {
			if ($i && $range[$i]-1 == $range[$i-1]) {
				# ok.. looks like a range
				if ($start < 0) { $start = $i-1; }
				}
			elsif ($start < 0) {
				# Not in a range at all
				push(@newrange, $range[$i]);
				}
			else {
				# End of the range.. add it
				$newrange[@newrange - 1] =
					"$range[$start]-".$range[$i-1];
				push(@newrange, $range[$i]);
				$start = -1;
				}
			}
		if ($start >= 0) {
			# Reached the end while in a range
			$newrange[@newrange - 1] =
				"$range[$start]-".$range[$i-1];
			}
		$job->{$arr} = join(',' , @newrange);
		}
	else {
		&error(&text('save_enone', $text{"edit_$arr"}));
		}
	}
$in{input} =~ s/\r//g; $in{input} =~ s/%/\\%/g;
$in{cmd} =~ s/%/\\%/g;
$job->{'active'} = $in{'active'};
$job->{'command'} = $in{'cmd'};
if ($in{input} =~ /\S/) {
	@inlines = split(/\n/ , $in{input});
	$job->{'command'} .= '%'.join('%' , @inlines);
	}

# Check if this user is allowed to execute cron jobs
if (-r $config{cron_allow_file}) {
	if (&indexof($in{user}, &list_allowed()) < 0) { $err = 1; }
	}
elsif (-r $config{cron_deny_file}) {
	if (&indexof($in{user}, &list_denied()) >= 0) { $err = 1; }
	}
elsif ($config{cron_deny_all} == 0) { $err = 1; }
elsif ($config{cron_deny_all} == 1) {
	if ($in{user} ne "root") { $err = 1; }
	}
if ($err) { &error(&text('save_eallow', $in{'user'})); }
$job->{'user'} = $in{'user'};

# Check module access control
%access = &get_module_acl();
&can_edit_user(\%access, $in{'user'}) ||
	&error(&text('save_ecannot', $in{'user'}));

if (!$in{'new'}) {
	# Editing an existing job
	&can_edit_user(\%access, $oldjob->{'user'}) ||
		&error(&text('save_ecannot', $oldjob->{'user'}));
	if ($job->{'user'} eq $oldjob->{'user'}) {
		&change_cron_job($job);
		}
	else {
		&delete_cron_job($oldjob);
		&create_cron_job($job);
		}
	}
else {
	# Creating a new job
	&create_cron_job($job);
	}

foreach $f (@files) { &unlock_file($f); }
if ($in{'new'}) {
	&webmin_log("create", "cron", $in{'user'}, \%in);
	}
else {
	&webmin_log("modify", "cron", $in{'user'}, \%in);
	}
&redirect("");


   07070100012f01000081e40000000000000002000000013ac03887000001eb000000200000000000000000000000000000001800000003reloc/cron/save_env.cgi   #!/usr/local/bin/perl
# save_env.cgi
# Save cron environment for some user

require './cron-lib.pl';
&ReadParse();
%access = &get_module_acl();
&can_edit_user(\%access, $in{'user'}) ||
	&error($text{'env_ecannot'});

for($i=0; $i<$in{count}; $i++) {
	$n = $in{"name$i"}; $v = $in{"value$i"};
	if ($n =~ /\S/) {
		if ($n !~ /^\S+$/) {
			&error(&text('env_ename', $n));
			}
		push(@args, $n);
		push(@args, $v);
		}
	}
&save_envs($in{'user'}, @args);
&redirect("edit_env.cgi?$in{'user'}");

 07070100012f02000081a40000000000000002000000013ac0388700000304000000200000000000000000000000000000001f00000003reloc/cron/useradmin_update.pl    
do './cron-lib.pl';

# useradmin_create_user(&details)
sub useradmin_create_user
{
}

# useradmin_delete_user(&details)
# Delete this user's cron file
sub useradmin_delete_user
{
&lock_file("$config{'cron_dir'}/$_[0]->{'user'}");
unlink("$config{'cron_dir'}/$_[0]->{'user'}");
&unlock_file("$config{'cron_dir'}/$_[0]->{'user'}");
}

# useradmin_modify_user(&details)
sub useradmin_modify_user
{
if ($_[0]->{'user'} ne $_[0]->{'olduser'}) {
	&rename_logged("$config{'cron_dir'}/$_[0]->{'olduser'}",
	               "$config{'cron_dir'}/$_[0]->{'user'}");
	foreach $j (&list_cron_jobs()) {
		if ($j->{'user'} eq $_[0]->{'olduser'}) {
			&lock_file($j->{'file'});
			$j->{'user'} = $_[0]->{'user'};
			&change_cron_job($j);
			&unlock_file($j->{'file'});
			}
		}
	}
}

1;

0707010001b8bc000041ed0000000000000001000000053ac03bc800000000000000200000000000000000000000000000000d00000003reloc/custom  0707010001b8bd000081e40000000000000002000000013ac038a30000051f000000200000000000000000000000000000001d00000003reloc/custom/acl_security.pl  
require './custom-lib.pl';

# acl_security_form(&options)
# Output HTML for editing security options for the custom module
sub acl_security_form
{
print "<tr> <td valign=top><b>$text{'acl_cmds'}</b></td> <td>\n";
printf "<input type=radio name=cmds_def value=1 %s> %s\n",
	$_[0]->{'cmds'} eq '*' ? 'checked' : '', $text{'acl_call'};
printf "<input type=radio name=cmds_def value=0 %s> %s<br>\n",
	$_[0]->{'cmds'} eq '*' ? '' : 'checked', $text{'acl_csel'};
print "<select name=cmds size=5 multiple width=200>\n";
local @cmds = &list_commands();
local ($c, %ccan);
map { $ccan{$_}++ } split(/\s+/, $_[0]->{'cmds'});
foreach $c (@cmds) {
	printf "<option value=%s %s> %s\n",
		$c->{'id'},
		$ccan{$c->{'id'}} ? "selected" : "",
		$c->{'desc'};
	}
print "</select></td> </tr>\n";

print "<tr> <td><b>$text{'acl_edit'}</b></td> <td>\n";
printf "<input type=radio name=edit value=1 %s> $text{'yes'}\n",
	$_[0]->{'edit'} ? "checked" : "";
printf "<input type=radio name=edit value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'edit'} ? "" : "checked";
}

# acl_security_save(&options)
# Parse the form for security options for the custom module
sub acl_security_save
{
if ($in{'cmds_def'}) {
	$_[0]->{'cmds'} = "*";
	}
else {
	$_[0]->{'cmds'} = join(" ", split(/\0/, $in{'cmds'}));
	}
$_[0]->{'edit'} = $in{'edit'};
}

 0707010001b8be000081a40000000000000002000000013ac038a30000070d000000200000000000000000000000000000001b00000003reloc/custom/custom-lib.pl    # custom-lib.pl
# Functions for storing custom commands

do '../web-lib.pl';
&init_config();
%access = &get_module_acl();

# list_commands()
# Returns a list of all custom commands
sub list_commands
{
local (@rv, $f);
opendir(DIR, $module_config_directory);
while($f = readdir(DIR)) {
	if ($f =~ /^(\d+)\.cmd$/) {
		local %cmd;
		$cmd{'file'} = "$module_config_directory/$f";
		$cmd{'id'} = $1;
		open(FILE, $cmd{'file'});
		chop($cmd{'cmd'} = <FILE>);
		chop($cmd{'desc'} = <FILE>);
		local @o = split(/\s+/, <FILE>);
		$cmd{'user'} = $o[0];
		$cmd{'raw'} = int($o[1]);
		$cmd{'su'} = int($o[2]);
		while(<FILE>) {
			s/\r|\n//g;
			local @a = split(/:/, $_, 5);
			push(@{$cmd{'args'}}, { 'name' => $a[0],
						'type' => $a[1],
						'opts' => $a[2],
						'quote' => $a[3],
						'desc' => $a[4] });
			}
		close(FILE);
		$cmd{'index'} = scalar(@rv);
		push(@rv, \%cmd);
		}
	}
closedir(DIR);
return @rv;
}

# save_command(&command)
sub save_command
{
local $c = $_[0];
local $a;
&lock_file("$module_config_directory/$c->{'id'}.cmd");
open(FILE, ">$module_config_directory/$c->{'id'}.cmd");
print FILE $c->{'cmd'},"\n";
print FILE $c->{'desc'},"\n";
print FILE $c->{'user'}," ",$c->{'raw'}," ",$c->{'su'},"\n";
foreach $a (@{$c->{'args'}}) {
	print FILE $a->{'name'},":",$a->{'type'},":",
		   $a->{'opts'},":",$a->{'quote'},":",$a->{'desc'},"\n";
	}
close(FILE);
&unlock_file("$module_config_directory/$c->{'id'}.cmd");
}

# delete_command(&command)
sub delete_command
{
local $c = $_[0];
&lock_file("$module_config_directory/$c->{'id'}.cmd");
unlink("$module_config_directory/$c->{'id'}.cmd");
&unlock_file("$module_config_directory/$c->{'id'}.cmd");
}

sub can_run_command
{
local $c;
foreach $c (split(/\s+/, $access{'cmds'})) {
	return 1 if ($c eq "*" || $c == $_[0]->{'id'});
	}
return 0;
}

1;
   0707010001b8bf000081a40000000000000002000000013ac038a300000019000000200000000000000000000000000000001800000003reloc/custom/defaultacl   noconfig=0
edit=1
cmds=*
   0707010001b8c0000081e40000000000000002000000013ac038a300000c54000000200000000000000000000000000000001a00000003reloc/custom/edit_cmd.cgi #!/usr/local/bin/perl
# edit_cmd.cgi
# Display a custom command and its parameters

require './custom-lib.pl';
&ReadParse();

$access{'edit'} || &error($text{'edit_ecannot'});
if ($in{'new'}) {
	&header($text{'create_title'}, "", "create");
	}
else {
	&header($text{'edit_title'}, "", "edit");
	@cmds = &list_commands();
	$cmd = $cmds[$in{'idx'}];
	}
print "<hr>\n";

print "<form action=save_cmd.cgi method=post>\n";
print "<input type=hidden name=new value='$in{'new'}'>\n";
print "<input type=hidden name=idx value='$in{'idx'}'>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'edit_details'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>",&hlink($text{'edit_desc'}, "desc"),"</b></td>\n";
print "<td><input name=desc size=50 value='$cmd->{'desc'}'></td> </tr>\n";

print "<tr> <td><b>",&hlink($text{'edit_cmd'},"command"),"</b></td>\n";
$cmd->{'cmd'} =~ s/"/&quot;/g;
print "<td><input name=cmd size=50 value=\"$cmd->{'cmd'}\"></td> </tr>\n";

print "<tr> <td><b>",&hlink($text{'edit_user'},"user"),"</b></td>\n";
print "<td><input name=user size=8 value='$cmd->{'user'}'> ",
	&user_chooser_button("user", 0);
printf "<input type=checkbox name=su value=1 %s> %s</td> </tr>\n",
	$cmd->{'su'} ? 'checked' : '', $text{'edit_su'};

print "<tr> <td><b>",&hlink($text{'edit_raw'},"raw"),"</b></td>\n";
printf "<td><input type=radio name=raw value=1 %s> %s\n",
	$cmd->{'raw'} ? "checked" : "", $text{'yes'};
printf "<input type=radio name=raw value=0 %s> %s</td> </tr>\n",
	$cmd->{'raw'} ? "" : "checked", $text{'no'};

print "</table></td></tr></table><p>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'edit_params'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

@types = ("Text", "User", "UID", "Group", "GID", "File", "Directory",
	  "Option..", "Password");

print "<tr> <td><b>$text{'edit_name'}</b></td> ",
      "<td><b>$text{'edit_desc'}</b></td> <td><b>$text{'edit_type'}</b></td> ",
      "<td><b>$text{'edit_quote'}</b></td> </tr>\n";
@a = (@{$cmd->{'args'}}, { });
for($i=0; $i<@a; $i++) {
	print "<tr>\n";
	printf "<td><input name=name_$i size=10 value='%s'></td>\n",
		$a[$i]->{'name'};
	printf "<td><input name=desc_$i size=40 value='%s'></td>\n",
		$a[$i]->{'desc'};
	print "<td><select name=type_$i>\n";
	for($j=0; $text{"edit_type$j"}; $j++) {
		printf "<option value=%d %s>%s\n",
			$j, $a[$i]->{'type'} == $j ? "selected" : "",
			$text{"edit_type$j"};
		}
	printf "</select> <input name=opts_$i size=10 value='%s'></td>\n",
		$a[$i]->{'opts'};
	printf "<td><input type=radio name=quote_$i value=1 %s> $text{'yes'}\n",
		$a[$i]->{'quote'} ? "checked" : "";
	printf "<input type=radio name=quote_$i value=0 %s> $text{'no'}</td>\n",
		$a[$i]->{'quote'} ? "" : "checked";
	print "</tr>\n";
	}

print "</table></td></tr></table>\n";

print "<table width=100%><tr>\n";
print "<td><input type=submit value=\"$text{'save'}\"></td>\n";
if (!$in{'new'}) {
	print "<td align=right><input type=submit name=delete ",
	      "value=\"$text{'delete'}\"></td>\n";
	}
print "</tr></table></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

0707010001fd0e000041ed0000000000000001000000023ac03bc700000000000000200000000000000000000000000000001200000003reloc/custom/help 0707010001fd0f000081a40000000000000002000000013ac038a30000073d000000200000000000000000000000000000001e00000003reloc/custom/help/cmd.es.html Cada comando tiene una descripci髇 (mostrada en la parte inferior de la p醙ina
principal), y un comando a ejecutar. Esta cadena de comando puede contener
operadores de shell como |, &gt; y ; para ejecutar comandos m鷏tiples y l韓eas
de tuber韆. La cadena tambi閚 puede contener par醡etros como <tt>$foo</tt>,
los cuales son reemplazados por entradas de usuario cuando el comando se
ejecuta. <p>

Estos par醡etros pueden ser digitados en la tabla de la parte inferior de la
p醙ina.
Para cada par醡etro debes de digitar:
<dl>
<dt><b>Nombre</b>
<dd>Un c骴igo 鷑ico para este par醡etro. Si el nombre es <tt>foo</tt>, entonces
    <tt>$foo</tt> ser reemplazado por el valor de par醡etro cuando se ejecuta
    el comando.<p>
<dt><b>Descripci髇</b>
<dd>La descripci髇 al lado del par醡etro en la p醙ina principal.<p>
<dt><b>Tipo</b>
<dd>Esta opci髇 controla c髆o se introduce el par醡etro. Las opciones posibles son:
	<ul>
	<li><b>Texto</b><br>
	    Una entrada de texto tot醠mente libre.
	<li><b>Usuario</b><br>
	    Un nombre de usuario de tu sistema.
	<li><b>UID</b><br>
	    La UID de un usuario de tu sistema.
	<li><b>Grupo</b><br>
	    Un nombre de grupo de tu sistema.
	<li><b>GID</b><br>
	    La GID de un grupo de tu sistema.
	<li><b>Archivo</b><br>
	    La trayectoria completa a un archivo.
	<li><b>Directorio</b><br>
	    La trayectoria completa a un directorio.
	<li><b>Opci髇</b><br>
	    Una entrada de S/No que pondr el par醡etro a lo que est en el campo
	    al lado de la entrada de tipo, s髄o si se selecciona S.
	<li><b>Clave de acceso</b><br>
	    Una entrada de texto totalmente libre pero con la entrada reemplazada por *.
	</ul><p>
<dt><b>縀ntrecomillo par醡etro?</b>
<dd>En caso de que s, el par醡etro ser entrecomillado antes de ser sustitu韉o, permitiendo
    al usuario entrar valores que contengan espacios.<p>
</dl>

<hr>

   0707010001fd10000081a40000000000000002000000013ac038a30000071c000000200000000000000000000000000000001e00000003reloc/custom/help/cmd.fr.html Chaque commande a une description (affich sur le bouton de la page principale), et une commande actuel  ex閏uter.  Cette commande peut contenir des op閞ateurs de l'interpr閠eur de commande comme | et ; pour l'ex閏ution de commandes multiples et de transferts de donn閑s.  Il peut aussi contenir des param鑤res comme <tt>$foo</tt>, qui sont remplacer par une saisie de l'usager quand la commande est ex閏ut閑.<p>

Ces param鑤res peuvent 阾re entr dans la table au bas de la page.  Pour chaque pram鑤re vous devez entrer :
<dl>
<dt><b>Nom</b>
<dd>Un code unique pour ce param鑤re.  Si le nom est <tt>foo</tt>, bien <tt>$foo</tt> sera remplac par la valeur de ce param鑤re quand la commande est ex閏ut閑.<p>
<dt><b>Description</b>
<dd>La description apr鑣 le param鑤re sur la page principale.<p>
<dt><b>Type</b>
<dd>Cette option contr鬺e comment le param鑤re est entr.  Les options valides sont :
	<ul>
	<li><b>Texte</b><br>
	    Une entr閑 libre de texte.
	<li><b>Usager</b><br>
	    Un nom d'usager sur votre syst鑝e.
	<li><b>Num閞o d'Usager</b><br>
	    Le num閞o d'un usager de votre syst鑝e.
	<li><b>Groupe</b><br>
	    Un nom de groupe de votre syst鑝e.
	<li><b>Num閞o de Groupe</b><br>
	    Le num閞o d'un groupe de votre syst鑝e.
	<li><b>Fichuer</b><br>
	    Le chemin complet d'un fichier.
	<li><b>R閜ertoire</b><br>
	    Le chemin complet d'un r閜ertoire.
	<li><b>Option</b><br>
	    Une sasie Oui/Non qui va d閒inir le param鑤re  n'importe quoi qui est dans le champs apr鑣 l'entr閑 de ce type si Oui est choisit.
	<li><b>Mot de Passe</b><br>
	    Une saisie de texte libre, mais o le contenu va 阾re remplac par des *  l'affichage.
	</ul><p>
<dt><b>Param鑤re entre "" ?</b>
<dd>Si Oui, le param鑤re va etre mit entre "", permettant  l'usager d'entrer des valeurs contenant des espaces.<p>
</dl>

<hr>
0707010001fd11000081a40000000000000002000000013ac038a30000067b000000200000000000000000000000000000001b00000003reloc/custom/help/cmd.html    Each command has a description (displayed on the button on the main page),
and an actual command to execute. This command string can contain shell
operators like |, &gt; and ; for executing multiple commands and pipelines.
The string can also contain parameters like <tt>$foo</tt>, which are replaced
by user inputs when the command is run. <p>

These parameters can be entered into the table at the bottom of the page.
For each parameter you must enter :
<dl>
<dt><b>Name</b>
<dd>A unique code for this parameter. If the name is <tt>foo</tt>, then
    <tt>$foo</tt> will be replaced by the parameter value when the command
    is executed.<p>
<dt><b>Description</b>
<dd>The description next to this parameter on the main page.<p>
<dt><b>Type</b>
<dd>This option controls how the parameter is input. Available options are :
	<ul>
	<li><b>Text</b><br>
	    A totally free-text input.
	<li><b>User</b><br>
	    A username from your system.
	<li><b>UID</b><br>
	    The UID of a user from your system.
	<li><b>Group</b><br>
	    A group name from your system.
	<li><b>GID</b><br>
	    The GID of a group from your system.
	<li><b>File</b><br>
	    The full path to a file.
	<li><b>Directory</b><br>
	    The full path to a directory.
	<li><b>Option</b><br>
	    A Yes/No input that will set the parameter to whatever is in
	    the field next to the type input only if Yes is chosen.
	<li><b>Password</b><br>
	    A totally free-text input, but with the input replaced by *'s.
	</ul><p>
<dt><b>Quote parameter?</b>
<dd>If Yes, the parameter will be quoted with " before substitution, allowing
    the user to enter values containing whitespaces.<p>
</dl>

<hr>

 0707010001fd12000081a40000000000000002000000013ac038a300000696000000200000000000000000000000000000001e00000003reloc/custom/help/cmd.sv.html Varje kommandoord har en beskrivning (visas p knappen p f鰎stasidan) och
ett kommando som utf鰎s. Detta kommando kan inneh錶la skaloperatorer som
|, &gt; och ; f鰎 att utf鰎a flera kommandon och pipelines. Kommandot kan
ocks inneh錶la parametrar som <tt>$foo</tt>, som byts ut mot inmatningar
n鋜 kommandot k鰎s.

<p>Dessa parametrar kan du skriva in i tabellen l鋘gst ned p sidan. F鰎
varje parameter m錽te du ange:

<dl>
<dt><b>Namn</b>
<dd>En unik best鋗ning f鰎 denna parameter. Om du anger namnet <tt>foo</tt>
    kommer <tt>$foo</tt> att bytas ut mot parameterv鋜det n鋜 kommandot k鰎s.
<p><dt><b>Beskrivning</b>
<dd>Beskrivningen som ska skrivas ut vid denna parameter p f鰎stasidan.
<p><dt><b>Typ</b>
<dd>Denna inst鋖lning best鋗mer hur parametern tas emot. Alternativen 鋜:
	<ul>
	<li><b>Text</b>
	    <br>Fri textinmatning.
	<li><b>Anv鋘dare</b>
	    <br>Ett anv鋘darnamn i ditt system.
	<li><b>UID</b>
	    <br>UID f鰎 en anv鋘dare i ditt system.
	<li><b>Grupp</b>
	    <brEtt gruppnamn i ditt system.
	<li><b>GID</b>
	    <brGID f鰎 en grupp i ditt system.
	<li><b>Fil</b>
	    <br>Fullst鋘dig s鰇v鋑 till en fil.
	<li><b>Katalog</b>
	    <br>Fillst鋘dig s鰇v鋑 till en katalog.
	<li><b>Inst鋖llning</b>
	    <br>Ja/Nej-inmatning som kommer att s鋞ta parametern till det
	    som st錼 i f鋖tet bredvid typinmatningen endast om Ja v鋖js.
	<li><b>L鰏enord</b>
	    <br>Fri textinmatning, men vid inmatning byts tecknen ut mot
	    asterisker p sk鋜men.
	</ul><p>
<dt><b>Citationstecken runt parameter?</b>
<dd>Om du svarar Ja, kommer parametern att omges med citationstecken f鰎e
utbytet, vilket medf鰎 att man kan mata in v鋜den som inneh錶ler mellanslag.
</dl>

<hr>

  0707010001fd13000081a40000000000000002000000013ac038a3000004cd000000200000000000000000000000000000002600000003reloc/custom/help/cmd.zh_TW.Big5.html –㏑常璶Τ磞瓃 (陪ボ礶秙), 籔龟悔璶磅︽. 硂﹃┮Τ╰参㏑催巨ㄒ |, $gt; 籔 ; 磅︽㏑籔恨絬北. 硂﹃籔ㄒ <tt>$foo</tt> 单把计, 硂ㄇ把计盢穦磅︽砆蠢传Θ癸莱﹃. <p>

硂ㄇ把计砆块┏狠. 癸–把计眤ゲ斗块:
<dl>
<dt><b>嘿</b>
<dd>盡把计嘿. 狦暗 <tt>foo</tt>, 玥讽㏑砆磅︽, <tt>$foo</tt> 盢穦砆蠢传Θ┮块把计计.<p>
<dt><b>磞瓃</b>
<dd>硂磞瓃盢穦陪ボ, 钡把计.<p>
<dt><b>摸</b>
<dd>硂匡兜北把计砆块. ノ匡兜:
	<ul>
	<li><b>ゅ</b><br>
	    Чパゅ块.
	<li><b>ㄏノ</b><br>
	    眤╰参ㄏノ嘿.
	<li><b>ㄏノ絪腹 (UID)</b><br>
	    眤╰参ㄏノ絪腹.
	<li><b>竤舱</b><br>
	    眤╰参竤舱嘿.
	<li><b>竤舱絪腹 (GID)</b><br>
	    眤╰参竤舱絪腹.
	<li><b>郎</b><br>
	    郎Ч俱隔畖.
	<li><b>ヘ魁</b><br>
	    ヘ魁Ч俱隔畖.
	<li><b>匡兜...</b><br>
	     琌/ 块, 讽磅︽, 埃獶眤匡拒 "琌", 玥盢ぃ穦盢┮矗ㄑ把计癳倒.
	<li><b>盞絏</b><br>
	    Чパゅ块, ┮Τ块常穦砆陪ボ '*'.
	</ul><p>
<dt><b>琌ㄏノま腹?</b>
<dd>狦匡拒"琌", 把计盢穦ま腹 ("") 瞅, す砛ㄏノ块疭じ.<p>
</dl>

<hr>

   0707010001fd14000081a40000000000000002000000013ac038a3000000c4000000200000000000000000000000000000002200000003reloc/custom/help/command.es.html <header>Comando</header>

El comando actual a ejecutar. Ya que los comando son ejecutados por <tt>sh</tt>,
puede contener cualquier metacar醕ter de shell como |, &gt;, |  y &amp;&amp;. <p>

<hr>

0707010001fd15000081a40000000000000002000000013ac038a3000000dd000000200000000000000000000000000000002200000003reloc/custom/help/command.fr.html <header>Commande</header>

La commande actuelle  ex閏uter.  Parce que les commandes sont ex閏uter par <tt>sh</tt>, elles peuvent contenir des caract鑢e de contr鬺e de l'interpr閠eur de commande comme | and ;. <p>

<hr>

   0707010001fd16000081a40000000000000002000000013ac038a3000000bb000000200000000000000000000000000000001f00000003reloc/custom/help/command.html    <header>Command</header>

The actual command to execute. Because commands are executed by <tt>sh</tt>,
it can contain any shell metacharacters like |, &gt;, |  and &amp;&amp;. <p>

<hr>

 0707010001fd17000081a40000000000000002000000013ac038a3000000a4000000200000000000000000000000000000002200000003reloc/custom/help/command.sv.html <header>Kommando</header>

Kommandot som ska utf鰎as. Eftersom kommandon utf鰎s av <tt>sh</tt>
kan de inneh錶la skaloperatorer, t ex |, &gt; och &amp;&amp;.

<hr>

0707010001fd18000081a40000000000000002000000013ac038a300000097000000200000000000000000000000000000002a00000003reloc/custom/help/command.zh_TW.Big5.html <header></header>

龟悔璶磅︽. 盢穦 <tt>sh</tt> 磅︽, ┮ヴ㏑催い膥じ, ㄒ |, &gt;, |  籔 &amp;&amp;. <p>

<hr>

 0707010001fd19000081a40000000000000002000000013ac038a3000000be000000200000000000000000000000000000002100000003reloc/custom/help/create.es.html  <header>Crear Comando</header>

Esta p醙ina te permite definir un nuevo comando. Una vez salvado, el comando
ser a馻dido a la p醙ina principal para su posible ejecuci髇.

<include cmd.es>

  0707010001fd1a000081a40000000000000002000000013ac038a3000000d9000000200000000000000000000000000000002100000003reloc/custom/help/create.fr.html  <header>Cr閑r une Commande</header>

Cette page vous permet de d閒inir une nouvelle commande personnelle.   Une fois sauvegard閑, cette commande va 阾re ajout  la page principale pour son ex閏ution.

<include cmd>

   0707010001fd1b000081a40000000000000002000000013ac038a3000000ac000000200000000000000000000000000000001e00000003reloc/custom/help/create.html <header>Create Command</header>

This page allows you to define a new custom command. Once saved, the command
will be added to the main page for execution.

<include cmd>

0707010001fd1c000081a40000000000000002000000013ac038a3000000b8000000200000000000000000000000000000002100000003reloc/custom/help/create.sv.html  <header>Skapa kommando</header>

P denna sida kan du definiera ett nytt kommando. N鋜 du har sparat det
kommer det att dyka upp p f鰎stasidan s att du kan k鰎a det.

<include cmd>

0707010001fd1d000081a40000000000000002000000013ac038a300000083000000200000000000000000000000000000002900000003reloc/custom/help/create.zh_TW.Big5.html  <header>ミ㏑</header>

硂琵眤﹚竡穝璹㏑. 讽眤纗ぇ, 硂ㄇ盢砆璶まい非称磅︽.

<include cmd>

 0707010001fd1e000081a40000000000000002000000013ac038a3000000af000000200000000000000000000000000000001f00000003reloc/custom/help/desc.es.html    <header>Descripci髇</header>

Una breve descripci髇 para este comando. Lo que digites aqu es lo que ser mostrado
en el bot髇 del comando en la p醙ina principal. <p>

<hr>


 0707010001fd1f000081a40000000000000002000000013ac038a3000000ac000000200000000000000000000000000000001f00000003reloc/custom/help/desc.fr.html    <header>Description</header>

Une petite description de cette commande.  Tout ce qui est entr sera affich sur le bouton de la commande sur la page principale.<p>

<hr>


0707010001fd20000081a40000000000000002000000013ac038a300000099000000200000000000000000000000000000001c00000003reloc/custom/help/desc.html   <header>Description</header>

A short description for this command. Whatever your enter is displayed on the
command button on the main page. <p>

<hr>


   0707010001fd21000081a40000000000000002000000013ac038a30000008b000000200000000000000000000000000000001f00000003reloc/custom/help/desc.sv.html    <header>Beskrivning</header>

En kort beskrivning av kommandot. Det du skriver kommer att visas p
kommandoknappen p f鰎stasidan.

<hr>


 0707010001fd22000081a40000000000000002000000013ac038a30000006f000000200000000000000000000000000000002700000003reloc/custom/help/desc.zh_TW.Big5.html    <header>磞瓃</header>

癸硂㏑虏祏磞瓃. ぃ阶眤块ぐ或, ウ常盢砆陪ボ璶ま秙. <p>

<hr>


 0707010001fd23000081a40000000000000002000000013ac038a300000074000000200000000000000000000000000000001f00000003reloc/custom/help/edit.es.html    <header>Editar Comando</header>

Esta p醙ina te permite editar un comando de usuario ya definido.
<include cmd.es>

0707010001fd24000081a40000000000000002000000013ac038a30000007a000000200000000000000000000000000000001f00000003reloc/custom/help/edit.fr.html    <header>蒬iter un Commande</header>

Cette page vous permet d'閐iter une commande qui a d閖 閠 d閒inie.

<include cmd>

  0707010001fd25000081a40000000000000002000000013ac038a30000006e000000200000000000000000000000000000001c00000003reloc/custom/help/edit.html   <header>Edit Command</header>

This page allows you to edit an already defined custom command.
<include cmd>

  0707010001fd26000081a40000000000000002000000013ac038a30000006f000000200000000000000000000000000000001f00000003reloc/custom/help/edit.sv.html    <header>膎dra kommando</header>

P denna sida kan du 鋘dra ett redan definierat eget kommando.
<include cmd>

 0707010001fd27000081a40000000000000002000000013ac038a300000052000000200000000000000000000000000000002700000003reloc/custom/help/edit.zh_TW.Big5.html    <header>絪胯㏑</header>

硂す砛眤絪胯竒﹚竡璹㏑.
<include cmd>

  0707010001fd28000081a40000000000000002000000013ac038a3000003a3000000200000000000000000000000000000002000000003reloc/custom/help/intro.es.html   <header>Comandos de Usuario</header>

Este m骴ulo te permite configurar y ejecutar comandos usados frecu閚temente
con sustituci髇 opcional de par醡etros. Esto puede ser 鷗il si deseas hacer
que guiones o programas com鷑mente utilizados se ejecuten f醕ilmente desde
desde tu navegador o que est閚 f醕ilmente disponibles para usuarios inexpertos.<p>

La p醙ina principal muestra un bot髇 para cada comando definido, con par醡etros
opcionales bajo cada bot髇. Puedes ejecutar el comando s韒plemente al seleccionar
las opciones apropiadas y hacer click en el bot髇, en el cual se mostrar
la salida del comando. <p>

Para editar un comando existente, haz click en el enlace <tt>Editar Comando</tt>
bajo 閘. Para crear un nuevo comando, haz click en <tt>Crear un nuevo comando
de usuario</tt> de la parte inferior de la p醙ina. Date cuente de que estas
opciones pueden no estar disponibles para todos los usuarios de Webmin. <p>

<hr>

 0707010001fd29000081a40000000000000002000000013ac038a300000345000000200000000000000000000000000000002000000003reloc/custom/help/intro.fr.html   <header>Commandes Personnalis閑s</header>

Ce module vous permet de cr閑r et ex閏uter des commandes souvent utilis閑s, avec des param鑤res optionel.  Ceci peut s'av閞er utile si vous voulez rendre facilement ex閏utable  partir de votre fureteur ou a des usagers inexperiment閟 des scripts commun.<p>

La page principale affiche un bouton pour chacune des commandes et des param鑤res optionel sous chaque bouton.  Vous pouvez ex閏uter la commande simplement en choissant les options appropri閟 et en cliquant sur le bouton.<p>

Pour 閐iter une commande existante, simplement cliquer sur le lien <tt>蒬iter la commande</tt> sous le bouton.  Pour en cr閑r une nouvelle, cliquer sur <tt>Cr閑r une nouvelle commande personnalis閑</tt> au bas de la page.  Noter que ces options peuvent ne pas 阾re valide  tout les usagers Webmin.<p>

<hr>

   0707010001fd2a000081a40000000000000002000000013ac038a30000033b000000200000000000000000000000000000001d00000003reloc/custom/help/intro.html  <header>Custom Commands</header>

This module allows you to setup and execute commonly-used commands, with
optional parameter substitution. This can be useful if you want to make
commonly used scripts or programs easily executable from your browser or
easily available to inexperienced users. <p>

The main page displays one button for each defined command, with optional
parameters below each button. You can execute the command simply by selecting
the appropriate options and clicking on the button, whereupon the output
from the command will be displayed. <p>

To edit an existing command, just click on the <tt>Edit Command</tt> link
below it. To create a new command, click on the <tt>Create a new custom
command</tt> at the bottom of the page. Note that these options may not
be available to all Webmin users. <p>

<hr>

 0707010001fd2b000081a40000000000000002000000013ac038a30000033a000000200000000000000000000000000000002000000003reloc/custom/help/intro.sv.html   <header>Egna kommandon</header>

I denna modul kan du definiera och utf鰎a vanliga kommandon med eller
utan parametersubstitution. Detta 鋜 anv鋘dbart om du vill att script
och program som du anv鋘der ofta ska kunna utf鰎as enkelt fr錸 din
browser eller vara l鋞tillg鋘gliga f鰎 ovana anv鋘dare.

<p>F鰎stasidan inneh錶ler en knapp f鰎 varje kommando med
parameterinst鋖lningar under knapparna. Utf鰎 kommandot genom att v鋖ja
r鋞t inst鋖lningar och sedan trycka p knappen. Utmatningen fr錸
kommandot kommer att visas p sidan.

<p>F鰎 att 鋘dra i ett eget kommando klickar du p l鋘ken <tt>膎dra
kommando</tt> nedanf鰎 kommandot. Om du vill skapa ett nytt kommando
klickar du p l鋘ken <tt>Skapa kommando</tt> l鋘gst ned p sidan.
Observera att dessa alternativ kanske inte 鋜 tillg鋘gliga f鰎 alla
Webmin-anv鋘dare.

<hr>

  0707010001fd2c000081a40000000000000002000000013ac038a300000216000000200000000000000000000000000000002800000003reloc/custom/help/intro.zh_TW.Big5.html   <header>璹㏑</header>

硂家舱す砛眤砞﹚琍盽ノ㏑, 蛤繦帝ゲ璶匡兜籔把计. 狦眤稱璶ㄏ盽ノ絑镑パ眤聅凝竟虏虫磅︽, 硂盢琌Τノ. <p>

璶ま礶盢穦р–﹚竡㏑陪ボΘ秙, р匡拒┦把计竚秙. 眤虏虫弘パ匡拒ゲ璶匡兜跑秙磅︽㏑, 闽块穦砆陪ボㄓ. <p>

璶絪胯瞷㏑, 璶㏑よ<tt>絪胯㏑</tt>硈挡. 璶ミ穝㏑, 拒礶┏场<tt>ミ穝璹㏑</tt>硈挡. 猔種: 硂ㄇ匡兜⊿Τ矗ㄑ倒– Webmin ㄏノ. <p>

<hr>

  0707010001fd2d000081a40000000000000002000000013ac038a300000141000000200000000000000000000000000000001e00000003reloc/custom/help/raw.es.html <header>縀l comando muestra HTML?</header>

Norm醠mente, cuando un comando es ejecutado Webmin convierte todos los 
caracteres &lt;, &gt; y &amp; de tal manera que se muestren de forma
correcta. Sin embargo, si tu comando muestra HTML, deber韆s poner esta
opci髇 a S para prevenir que ocurra esta conversi髇. <p>

<hr>

   0707010001fd44000081a40000000000000002000000013ac038a300000149000000200000000000000000000000000000001e00000003reloc/custom/help/raw.fr.html <header>Sortie HTML de la Commande?</header>

Normalement quand une commande est ex閏ut閑 Webmin convertit tout les caract鑢es &lt;, &gt; et &amp; pour qu'ils soient affich correctement.  Si votre commande a une sortie d閖 en format HTML vous pouvez mettre cette option  Oui pour pr関enir la conversion de se faire.<p>

<hr>

   0707010001fd45000081a40000000000000002000000013ac038a300000128000000200000000000000000000000000000001b00000003reloc/custom/help/raw.html    <header>Command outputs HTML?</header>

Normally, when a command is run Webmin converts all &lt;, &gt; and &amp;
characters so that they are displayed properly. However, if your command
actually outputs HTML you should set this option to Yes to prevent this
conversion from happening. <p>

<hr>

0707010001fd46000081a40000000000000002000000013ac038a300000103000000200000000000000000000000000000001e00000003reloc/custom/help/raw.sv.html <header>Ska kommandot generera HTML?</header>

Vanligtvis omvandlar Webmin alla  &lt;, &gt; och &amp; n鋜 ett kommando
utf鰎s, s att tecknen visas p vanligt s鋞t. Om kommandot ska generera
HTML b鰎 du v鋖ja Ja h鋜, s att omvandlingen inte 鋑er rum.

<hr>

 0707010001fd47000081a40000000000000002000000013ac038a3000000e8000000200000000000000000000000000000002600000003reloc/custom/help/raw.zh_TW.Big5.html <header>㏑琌 HTML 块?</header>

τē, 讽 Webmin 磅︽, Webmin 盢穦锣传┮Τ &lt;, &gt; and &amp; じ, 絋玂ウタ絋陪ボ. 狦眤穦 HTML 块, 眤莱赣璶盢硂匡兜砞﹚Θ"琌"ňゎ硂ㄇ锣传. <p>

<hr>

0707010001fd48000081a40000000000000002000000013ac038a300000087000000200000000000000000000000000000001e00000003reloc/custom/help/run.es.html <header>Ejecutar Comando</header>

Esta p醙ina muestra toda la salida (STDOUT y STDERR) del comando que acabas de ejecutar. <p>

<hr>

 0707010001fd4a000081a40000000000000002000000013ac038a3000000a3000000200000000000000000000000000000001e00000003reloc/custom/help/run.fr.html <header>Commandes Ex閏ut</header>

Cette page affiche toutes les sorties (Sortie standard et Sortie d'erreur) de la commande que vous venez d'ex閏uter.<p>

<hr>

 0707010001fd4b000081a40000000000000002000000013ac038a300000083000000200000000000000000000000000000001b00000003reloc/custom/help/run.html    <header>Execute Command</header>

This page displays all output (STDOUT and STDERR) from the command you just executed. <p>

<hr>

 0707010001fd4c000081a40000000000000002000000013ac038a30000007d000000200000000000000000000000000000001e00000003reloc/custom/help/run.sv.html <header>Utf鰎 kommando</header>

Denna sida visar all utmatning (STDOUT och STDERR) fr錸 det kommando du
just utf鰎t.

<hr>

   0707010001fd4d000081a40000000000000002000000013ac038a300000064000000200000000000000000000000000000002600000003reloc/custom/help/run.zh_TW.Big5.html <header>磅︽㏑</header>

硂陪ボ眤磅︽㏑┮Τ块 ( STDOUT 籔 STDERR). <p>

<hr>

0707010001fd4e000081a40000000000000002000000013ac038a300000148000000200000000000000000000000000000001f00000003reloc/custom/help/user.es.html    <header>Ejecutar como usuario</header>

El usuario de Unix bajo el cual se ejecuta el comando. Deber韆s ejecutar
siempre los comandos con el nivel menor de privilegios posible - no ejecutes
como root a menos que re醠mente te haga falta, especi醠mente cuando el
comando se ha de ejecutar por otros usuarios de Webmin. <p>

<hr>

0707010001fd4f000081a40000000000000002000000013ac038a30000014c000000200000000000000000000000000000001f00000003reloc/custom/help/user.fr.html    <header>Ex閏uter Comme Usager</header>

L'usager Unix comme quoi la commande est ex閏ut閑.  Vous pouvez toujours ex閏uter une commande avec le plus bas niveau de pr関il鑗e possible - ne pas ex閏uter comme 'root'  moins que cel soit vraiment nec閟saire, surtout si cette commande est ex閏uter par d'autre usagers Webmin.<p>

<hr>

0707010001fd50000081a40000000000000002000000013ac038a300000109000000200000000000000000000000000000001c00000003reloc/custom/help/user.html   <header>Run as user</header>

The Unix user to run the command as. You should always run commands with
the lowest level of privilege possible - don't run as root unless you
really need to, especially when then command is to be run by other Webmin
users. <p>

<hr>

   0707010001fd51000081a40000000000000002000000013ac038a30000010b000000200000000000000000000000000000001f00000003reloc/custom/help/user.sv.html    <header>K鰎 som anv鋘dare</header>

V鋖j den Unix-anv鋘dare du vill k鰎a kommandot som. K鰎 alltid kommandon
med minsta m鰆liga r鋞tigheter. K鰎 s鋜skilt inte som root annat 鋘 n鋜
du verkligen m錽te, s鋜skilt om kommandot ska k鰎as av andra
Webmin-anv鋘dare.

<hr>

 0707010001fd52000081a40000000000000002000000013ac038a3000000cf000000200000000000000000000000000000002700000003reloc/custom/help/user.zh_TW.Big5.html    <header>ㄏノ磅︽</header>

磅︽硂㏑ Unix ㄏノ嘿. 眤ッ环莱赣璶︽絛瞅ず程顶舦磅︽㏑. <b>ぃ璶 root 磅︽</b>埃獶眤痷惠璶, 疭琌讽硂ㄇ㏑砆ㄤ Webmin ㄏノ磅︽. <p>

<hr>

 070701000214c7000041ed0000000000000001000000023ac03bc800000000000000200000000000000000000000000000001400000003reloc/custom/images   070701000214c8000081a40000000000000002000000013ac038a30000017b000000200000000000000000000000000000001d00000003reloc/custom/images/icon.gif  GIF87a0 0   櫃櫶烫fff            ,    0 0  很0 h漺Y稶桿`mb鳴cj俕F叮Wf.-塯_杷晨歭嚔蛫坤r蒷:熜q剕ZSl諛Qy%躂
koo嵀s3麔辆絤+楴晰O8們剠唲V媽崕彁塹搰槞昬敋牁20棥▊*悲舶"吹蛋淮!v摮8虏破律凭W煾欠狈偱懈綯寥吓葜乃べ慧阂芤娩З╈]铒●&燈黏b=摚 
Hp*槇I#B
.3jI4.耿崽/9垊YY蓯p(b$紊Rn~ L;+{f时≦ 璐瑝2铇31漜f婯}皤  ; 0707010001b8c1000081e40000000000000002000000013ac038a3000007ee000000200000000000000000000000000000001700000003reloc/custom/index.cgi    #!/usr/local/bin/perl
# index.cgi
# Display commands available for execution

require './custom-lib.pl';
&header($text{'index_title'}, "", "intro", 0, 1);
print "<hr>\n";

@cust = grep { &can_run_command($_) } &list_commands();
@cust = sort { $a->{'id'} <=> $b->{'id'} } @cust;
print "<table width=100%><tr><td valign=top>\n";
$form = 0;
for($i=0; $i<@cust; $i++) {
	$c = $cust[$i];
	@a = @{$c->{'args'}};
	print "<form action=run.cgi>\n";
	print "<input type=hidden name=idx value='$c->{'index'}'>\n";
	print "<table border cellpadding=3><tr $cb><td>\n";
	print "<input type=submit value='$c->{'desc'}'><br>\n";
	print "<table>\n";
	foreach $a (@a) {
		print "<tr> <td><b>",$a->{'desc'},"</b></td> <td>\n";
		$n = $a->{'name'};
		if ($a->{'type'} == 0) {
			print "<input name=$n size=30>\n";
			}
		elsif ($a->{'type'} == 1 || $a->{'type'} == 2) {
			print "<input name=$n size=8> ",
				&user_chooser_button($n, 0, $form);
			}
		elsif ($a->{'type'} == 3 || $a->{'type'} == 4) {
			print "<input name=$n size=8> ",
				&group_chooser_button($n, 0, $form);
			}
		elsif ($a->{'type'} == 5 || $a->{'type'} == 6) {
			print "<input name=$n size=30> ",
				&file_chooser_button($n, $a->{'type'}-5, $form);
			}
		elsif ($a->{'type'} == 7) {
			print "<input type=radio name=$n value=1> $text{'yes'}\n";
			print "<input type=radio name=$n value=0 checked> $text{'no'}\n";
			}
		elsif ($a->{'type'} == 8) {
			print "<input name=$n type=password size=30>\n";
			}
		print "</td> </tr>\n";
		}
	if ($access{'edit'}) {
		print "<tr> <td colspan=2 align=right nowrap>",
		      "<a href='edit_cmd.cgi?idx=$c->{'index'}'>",
		      "$text{'index_edit'}</a></td> </tr>\n";
		}
	print "</table></td></tr></table></form>\n";
	$form++;
	if ($i == int((@cust-1)/2)) { print "</td><td valign=top>\n"; }
	}
print "</td></tr></table>\n";
if (!@cust) {
	print "<b>$text{'index_none'}</b> <p>\n";
	}
if ($access{'edit'}) {
	print "<a href='edit_cmd.cgi?new=1'>$text{'index_create'}</a> <p>\n";
	}

print "<hr>\n";
&footer("/", $text{'index'});

  0707010002597e000041ed0000000000000001000000023ac03bc800000000000000200000000000000000000000000000001200000003reloc/custom/lang 0707010002597f000081a40000000000000002000000013ac038a300000538000000200000000000000000000000000000001500000003reloc/custom/lang/de  index_title=Eigene Kommandos
index_edit=Bearbeite Kommando
index_none=Keine eigenen Kommandos definiert
index_create=Ein neues Kommando erstellen
index_return=Kommandos

edit_title=Kommando bearbeiten
create_title=Kommando erstellen
edit_ecannot=Sie haben keine Berechtigung, Kommandos zu bearbeiten
edit_details=Kommandor Details
edit_desc=Beschreibung
edit_cmd=Kommando
edit_user=F&uuml;hre aus als Benutzer
edit_raw=Kommando gibt HTML aus?
edit_su=Benutze die Umgebung des Benutzers?
edit_params=Kommando Parameter
edit_name=Name
edit_type=Typ
edit_quote=Setze Parameter in Anf&uuml;hrungszeichen (")?
edit_type0=Text
edit_type1=Benutzer
edit_type2=UID
edit_type3=Gruppe
edit_type4=GID
edit_type5=Datei
edit_type6=Verzeichnis
edit_type7=Einstellung..
edit_type8=Passwort

save_err=Fehler beim Speichern des Kommandos
save_ecannot=Sie haben keine Berechtigung, Kommandos zu bearbeiten
save_ecmd=Kein Kommando angegeben
save_edesc=Keine Beschreibung angegeben
save_euser=Fehlender oder ung&uuml;ltiger Benutzer

run_err=Fehler beim Ausf&uuml;hren des Kommandos
run_ecannot=Sie haben keine Berechtigung, dieses Kommando auszuf&uuml;hren
run_euser=Fehlender oder ung&uuml;tiger Benutzer
run_egroup=Fehlende oder ung&uuml;ltige Gruppe
run_title=F&uuml;hre Kommando aus
run_out=Ausgabe von $1 ..
run_noout=Es wurde keine Ausgabe generiert
07070100025980000081a40000000000000002000000013ac038a300000520000000200000000000000000000000000000001500000003reloc/custom/lang/en  index_title=Custom Commands
index_edit=Edit command
index_none=No custom commands defined
index_create=Create a new custom command
index_return=commands

edit_title=Edit Command
create_title=Create Command
edit_ecannot=You are not allowed to edit commands
edit_details=Command detail
edit_desc=Description
edit_cmd=Command
edit_user=Run as user
edit_raw=Command outputs HTML?
edit_su=Use user's environment?
edit_params=Command parameters
edit_name=Name
edit_type=Type
edit_quote=Quote parameter?
edit_type0=Text
edit_type1=User
edit_type2=UID
edit_type3=Group
edit_type4=GID
edit_type5=File
edit_type6=Directory
edit_type7=Option..
edit_type8=Password

save_err=Failed to save command
save_ecannot=You are not allowed to edit commands
save_ecmd=No command entered
save_edesc=No description entered
save_euser=Missing or invalid user

run_err=Failed to execute command
run_ecannot=You are not allowed to run this command
run_euser=Missing or invalid user
run_egroup=Missing or invalid group
run_title=Execute Command
run_out=Output from $1 ..
run_noout=No output generated

log_modify=Modified command $1
log_create=Created command $1
log_delete=Deleted command $1
log_exec=Executed command $1

acl_cmds=Commands this user can run
acl_call=All commands
acl_csel=Selected..
acl_edit=Can create and edit commands?
07070100025981000081a40000000000000002000000013ac038a3000005cb000000200000000000000000000000000000001500000003reloc/custom/lang/es  index_title=Comandos de Cliente
index_edit=Editar comando
index_none=No se han definido comandos de cliente
index_create=Crear un nuevo comando de cliente
index_return=comandos

edit_title=Editar Comando
create_title=Crear Comando
edit_ecannot=No est醩 autorizado a editar comandos
edit_details=Detalle del Comando
edit_desc=Descripci髇
edit_cmd=Comando
edit_user=Ejecutar como usuario
edit_raw=縀l comando tiene salida HTML?
edit_su=縐tilizo entorno de usuario?
edit_params=Par醡etros de comando
edit_name=Nombre
edit_type=Tipo
edit_quote=縋ongo par醡etros entre comillas?
edit_type0=Texto
edit_type1=Usuario
edit_type2=UID
edit_type3=Grupo
edit_type4=GID
edit_type5=Archivo
edit_type6=Directorio
edit_type7=Opci髇...
edit_type8=Clave de Acceso

save_err=Error al salvar comando
save_ecannot=No est醩 autorizado a editar comandos
save_ecmd=No se ha digitado comando alguno
save_edesc=No se ha digitado descripci髇
save_euser=Usuario inv醠ido o sin poner

run_err=Error al ejecutar comando
run_ecannot=No est醩 autorizado a ejecutar este comando
run_euser=Usuario inv醠ido o sin poner
run_egroup=Grupo inv醠ido o sin poner
run_title=Ejecutar Comando
run_out=Salida de $1 ...
run_noout=No se ha generado salida

log_modify=Modificado comando $1
log_create=Creado comando $1
log_delete=Borrado comando $1
log_exec=Ejecutado comando $1

acl_cmds=Comandos que este usuario puede ejecutar
acl_call=Todos los comandos
acl_csel=Los seleccionados...
acl_edit=縋uede crear y editar comandos?
 07070100025982000081a40000000000000002000000013ac038a3000004ba000000200000000000000000000000000000001500000003reloc/custom/lang/fr  index_title=Commande Personnalis閑
index_edit=蒬iter la commande
index_none=Aucune commande personnalis閑 d閒inie
index_create=Cr閑r une nouvelle commande personnalis閑
index_return=liste des commandes

edit_title=蒬iter une Commande
create_title=Cr閑r une Commande
edit_ecannot=Vous n'阾es pas autoris  閐iter une commande
edit_details=D閠ails de la commande
edit_desc=Description
edit_cmd=Commande
edit_user=Ex閏uter comme usager
edit_raw=Sortie HTML de la commande?
edit_params=Param鑤res de la commande
edit_name=Nom
edit_type=Type
edit_quote=Param鑤re?
edit_type0=Texte
edit_type1=Usager
edit_type2=UID
edit_type3=Groupe
edit_type4=GID
edit_type5=Fichier
edit_type6=R閜ertoire
edit_type7=Option
edit_type8=Mot de passe

save_err=Impossible d'enregistrer la commande
save_ecannot=Vous n'阾es pas autoris  閐iter une commande
save_ecmd=Aucune commande entr閑
save_edesc=Aucune description entr閑
save_euser=Usager absent ou invalide

run_err=Impossible d'ex閏uter cette commande
run_ecannot=Vous n'阾es pas autoris  ex閏uter cette commande
run_euser=Usager absent ou invalide
run_egroup=Groupe absent ou invalide
run_title=Ex閏uter une Commande
run_out=Sortie de $1 ..
run_noout=Aucune sortie g閚閞閑
  07070100025983000081a40000000000000002000000013ac038a3000004a6000000200000000000000000000000000000001500000003reloc/custom/lang/hu  index_title=Saj醫 parancsok
index_edit=Parancs szerkeszt閟e
index_none=Nincs saj醫 parancs defini醠va
index_create=趈 saj醫 parancs k閟z韙閟e
index_return=parancsok

edit_title=Parancs szerkeszt閟e
create_title=Parancs l閠rehoz醩a
edit_ecannot=謓nek nincs jogosults醙a a parancsok szerkeszt閟閔ez
edit_details=Parancs r閟zletei
edit_desc=Le韗醩
edit_cmd=Parancs
edit_user=Futtat醩 felhaszn醠髃閚t
edit_raw=Parancs megjelenjen HTML-k閚t?
edit_params=Parancs param閠erek
edit_name=N関
edit_type=T韕us
edit_quote=Hivatkozzon a param閠erre?
edit_type0=Sz鰒eg
edit_type1=Felhaszn醠
edit_type2=UID
edit_type3=Csoport
edit_type4=GID
edit_type5=File
edit_type6=K鰊yvt醨 
edit_type7=Opci...
edit_type8=Jelsz

save_err=A parancs ment閟e sikertelen
save_ecannot=謓nek nincs jogosults醙a a parancsok szerkeszt閟閔ez
save_ecmd=Nincs parancs megadva
save_edesc=Nincs le韗醩 megadva
save_euser=躵es vagy hib醩 felhaszn醠骾 n関

run_err=A parancs v間rehajt醩a nem siker黮t
run_ecannot=Ennek a parancsnak a futtat醩醜oz 謓nek nincs jogosults醙a
run_euser=躵es vagy hib醩 felhaszn醠骾 n関
run_egroup=躵es vagy hib醩 csoportn関
run_title=Parancs v間rehajt醩a
run_out=$1 kimenete...
run_noout=Nincs kimenet
  07070100025984000081a40000000000000002000000013ac038a3000005f3000000200000000000000000000000000000001500000003reloc/custom/lang/pl  index_title=Wybrane polecenia
index_edit=Zmie polecenie
index_none=Nie zdefiniowano polece u縴tkownika
index_create=Utw髍z nowe polecenie u縴tkownika
index_return=polece

edit_title=Zmie polecenie
create_title=Utw髍z polecenie
edit_ecannot=Nie masz uprawnie do zmiany polece
edit_details=Informacje o&nbsp;poleceniu
edit_desc=Opis
edit_cmd=Polecenie
edit_user=Uruchamia jako u縴tkownik
edit_raw=Czy polecenie zwraca HTML?
edit_su=Korzysta ze 秗odowiska u縴tkownika?
edit_params=Parametry dla polecenia
edit_name=Nazwa
edit_type=Rodzaj
edit_quote=Cytowa parametr?
edit_type0=Tekstowy
edit_type1=U縴tkownik
edit_type2=UID
edit_type3=Grupa
edit_type4=GID
edit_type5=Plik
edit_type6=Katalog
edit_type7=Opcja..
edit_type8=Has硂

save_err=Nie uda硂 si zachowa polecenia
save_ecannot=Nie masz uprawnie do zmieniania polece
save_ecmd=Nie podano polecenia
save_edesc=Nie podano opisu
save_euser=Nie podano lub niepoprawny u縴tkownik

run_err=Nie uda硂 sie uruchomic polecenia
run_ecannot=Nie masz uprawnie do uruchamiania tego polecenia
run_euser=Nie podano lub niepoprawny u縴tkownik
run_egroup=Nie podano lub niepoprawna grupa
run_title=Uruchom polecenie
run_out=Wyniki polecenia $1 ..
run_noout=Nie wygenerowano danych wynikowych

log_modify=Zmieniono polecenie $1
log_create=Utworzono polecenie $1
log_delete=Usuni阾o polecenie $1
log_exec=Uruchomiono polecenie $1

acl_cmds=Polecenia, kt髍e ten u縴tkownik mo縠 uruchamia
acl_call=Wszystkie
acl_csel=Wybrane..
acl_edit=Czy mo縠 tworzy i&nbsp;zmienia polecenia?
 07070100025985000081a40000000000000002000000013ac038a3000004b0000000200000000000000000000000000000001500000003reloc/custom/lang/pt  index_title=Comandos Personalizados
index_edit=Editar comando
index_none=N鉶 foram definidos comandos personalizados
index_create=Criar novo comando personalizado
index_return=comandos

edit_title=Editar Comando
create_title=Criar Comando
edit_ecannot=Voc n鉶 est autorizado para editar comandos
edit_details=Detalhes do comando
edit_desc=Descri玢o
edit_cmd=Comando
edit_user=Executar como utilizador
edit_raw=Resultados do comando em HTML?
edit_params=Par鈓etros do comando
edit_name=Nome
edit_type=Tipo
edit_quote=Citar par鈓etro?
edit_type0=Texto
edit_type1=Utilizador
edit_type2=UID
edit_type3=Grupo
edit_type4=GID
edit_type5=Ficheiro
edit_type6=Direct髍io
edit_type7=Op玢o..
edit_type8=Palavra de Passe

save_err=Erro ao guardar comando
save_ecannot=Voc n鉶 est autorizado para editar comandos
save_ecmd=N鉶 foi introduzido comando algum
save_edesc=N鉶 foi introduzida uma descri玢o
save_euser=Utilizador inv醠ido ou em falta

run_err=Erro ao executar o comando
run_ecannot=Voc n鉶 est autorizado para executar o comando
run_euser=Utilizador inv醠ido ou em falta
run_egroup=Grupo inv醠ido ou em falta
run_title=Executar Comando
run_out=Resultados de $1 ..
run_noout=Sem resultados gerados
07070100025986000081a40000000000000002000000013ac038a300000487000000200000000000000000000000000000001800000003reloc/custom/lang/ru_RU   save_err=硒栳赅 镳 耦躔囗屙梃 觐爨礓
index_none=湾 铒疱溴脲眍 龛 钿眍 镳铊玮铍铋 觐爨礓
index_edit=绣溧牝桊钼囹 觐爨礓
edit_quote=络螯  赅恹麝?
create_title=杨玟囗桢 暑爨礓
save_ecmd=暑爨礓 礤 忖邃屙
run_ecannot=锣 礤 疣琊屮屙 玎矬耜囹  觐爨礓
run_euser=湾 忖邃屙, 桦 礤耋耱怏栝 镱朦珙忄蝈朦
run_title=蔓镱腠屙桢 暑爨礓
save_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 觐爨礓
edit_name=褥
edit_raw=暑爨礓 恹溧弪 HTML?
run_out=蔓忸 桤 $1 ..
edit_type=诣
index_create=杨玟囹 眍怏 觐爨礓
edit_cmd=暑爨礓
edit_user=蔓镱腠螯 赅 镱朦珙忄蝈朦
save_euser=湾 忖邃屙, 桦 礤耋耱怏栝 镱朦珙忄蝈朦
run_egroup=湾 忖邃屙, 桦 礤耋耱怏 沭箫镟
run_noout=暑爨礓 龛麇泐 礤 恹溧豚
index_return=觐爨礓
edit_details=相疣戾蝠 觐爨礓
edit_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 觐爨礓
run_err=硒栳赅 镳 恹镱朦礤龛 觐爨礓
edit_title=绣溧牝桊钼囗桢 暑爨礓
edit_desc=物桉囗桢
edit_params=鲤泱戾眚 觐爨礓
save_edesc=物桉囗桢 礤 忖邃屙
index_title=橡铊玮铍 暑爨礓
edit_type0=义犟
edit_type1=项朦珙忄蝈朦
edit_type2=UID
edit_type3=灭箫镟
edit_type4=GID
edit_type5=脏殡
edit_type6=枢蜞腩
edit_type7=相疣戾蝠
edit_type8=相痤朦
 07070100025987000081a40000000000000002000000013ac038a30000048a000000200000000000000000000000000000001800000003reloc/custom/lang/ru_SU   index_title=鹨仙谧咸匚倥 胂土文
index_edit=蚺牧嗽梢献猎 讼土文
index_none=钆 闲遗呐膛蜗 紊 夏蜗 幸仙谧咸匚鲜 讼土文
index_create=笙谀猎 蜗渍 讼土文
index_return=讼土文

edit_title=蚺牧嗽梢献廖膳 胂土文
create_title=笙谀廖膳 胂土文
edit_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 讼土文
edit_details=鹆伊团砸 讼土文
edit_desc=镄捎廖膳
edit_cmd=胂土文
edit_user=髻邢涛言 肆 邢特谙琢耘特
edit_raw=胂土文 踪牧旁 HTML?
edit_params=嵋钦团卧 讼土文
edit_name=橥
edit_type=羯
edit_quote=髭言  肆踪匏?
edit_type0=襞擞
edit_type1=鹣特谙琢耘特
edit_type2=UID
edit_type3=缫招辛
edit_type4=GID
edit_type5=媪侍
edit_type6=肓粤滔
edit_type7=鹆伊团砸
edit_type8=鹆蚁特

save_err=镗陕肆 幸 酉纫廖盼缮 讼土文
save_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 讼土文
save_ecmd=胂土文 闻 鬃拍盼
save_edesc=镄捎廖膳 闻 鬃拍盼
save_euser=钆 鬃拍盼, 商 闻诱菖釉渍垒墒 邢特谙琢耘特

run_err=镗陕肆 幸 踪邢特闻紊 讼土文
run_ecannot=髁 闻 伊谝袍盼 诹姓铀猎 茉 讼土文
run_euser=钆 鬃拍盼, 商 闻诱菖釉渍垒墒 邢特谙琢耘特
run_egroup=钆 鬃拍盼, 商 闻诱菖釉渍垒裂 且招辛
run_title=髻邢涛盼膳 胂土文
run_out=髻紫 哨 $1 ..
run_noout=胂土文 紊夼窍 闻 踪牧塘
  07070100025988000081a40000000000000002000000013ac038a30000063d000000200000000000000000000000000000001500000003reloc/custom/lang/sv  index_title=Egna kommandon
index_edit=膎dra kommando
index_none=Inga egna kommandon definierade
index_create=Skapa ett nytt kommando
index_return=kommandon
acl_commands=Kommandon som denna anv鋘dare f錼 k鰎a
acl_create=Kunna skapa och 鋘dra kommandon?
yes=Ja
no=Nej

edit_title=膎dra kommando
create_title=Skapa kommando
edit_ecannot=Du f錼 inte 鋘dra kommandon
edit_details=Uppgifter om kommandot
edit_desc=Beskrivning
edit_cmd=Kommando
edit_user=K鰎 som anv鋘dare
edit_raw=Ska kommandot generera HTML?
edit_params=Kommandoparametrar
edit_name=Namn
edit_type=Typ
edit_quote=S鋞ta citattecken runt parameter?
edit_su=Anv鋘da anv鋘darens milj?
edit_type0=Text
edit_type1=Anv鋘dare
edit_type2=UID
edit_type3=Grupp
edit_type4=GID
edit_type5=Fil
edit_type6=Katalog
edit_type7=Inst鋖lning ...
edit_type8=L鰏enord

save_err=Det gick inte att spara kommando
save_ecannot=Du f錼 inte 鋘dra kommandon
save_ecmd=Du har inte angivit n錱ot kommando
save_edesc=Du har inte angivit n錱on beskrivning av kommandot
save_euser=Anv鋘daren finns inte eller 鋜 inte giltig

run_err=Det gick inte att utf鰎a kommandot
run_ecannot=Du f錼 inte utf鰎a detta kommando
run_euser=Anv鋘daren finns inte eller 鋜 inte giltig
run_egroup=Gruppen finns inte eller 鋜 inte giltig
run_title=Utf鰎 kommando
run_out=Resultat fr錸 $1 ...
run_noout=Inget resultat finns

log_modify=Modifierade kommando $1
log_create=Skapade kommando $1
log_delete=Tog bort kommando $1
log_exec=Utf鰎de kommando $1

acl_cmds=Kommandon som denna anv鋘dare f錼 k鰎a
acl_call=Alla kommandon
acl_csel=Angivna ...
acl_edit=Kunna skapa och 鋘dra kommandon?
   07070100025989000081a40000000000000002000000013ac038a300000530000000200000000000000000000000000000001500000003reloc/custom/lang/tr  index_title=謟el Komutlar
index_edit=Komutu De餴⺶ir
index_none=謟el komut tan齧lanmad
index_create=Yeni bir 鰖el komut olu⺶ur
index_return=komutlar

edit_title=Komutu De餴⺶ir
create_title=Komut Olu⺶ur
edit_ecannot=Komutlar de餴⺶irmek i鏸n izininiz yoktur
edit_details=Komut Ayr齨t齦ar
edit_desc=A琮klama
edit_cmd=Komut
edit_user=Kullan齝 olaraak 鏰lt齬
edit_raw=Komut 琮kt齦ar HTML olarak verilsin mi?
edit_su=Kullan齝齨齨 鏴vresel de餴⺧enleri kullan齦s齨 m?
edit_params=Komut Parametreleri
edit_name=輘im
edit_type=Tip
edit_quote=Parametre aktar齦s齨 m?
edit_type0=D鼁 metin yaz齭
edit_type1=Kullan齝
edit_type2=UID
edit_type3=Grup
edit_type4=GID
edit_type5=Dosya
edit_type6=Dizin
edit_type7=Se鏴nek..
edit_type8=辤fre

save_err=Komutun kaydedilmesinde hata olu⺶u
save_ecannot=Komutlar de餴⺶irmek i鏸n izininiz yoktur
save_ecmd=Komut girilmedi
save_edesc=A琮klama girilmedi
save_euser=Kay齪 ya da yanl kullan齝

run_err=Komutun 鏰lt齬齦mas齨da hata olu⺶u
run_ecannot=Bu komutu 鏰lt齬mak i鏸n izininiz yoktur
run_euser=Kay齪 ya da yanl kullan齝
run_egroup=Kay齪 ya da yanl grup
run_title=Komut 莂lt齬
run_out=$1 komutunun 琮kt齭 ..
run_noout=驱kt olu⺶urulmad

log_modify=$1 komutu de餴⺶irildi
log_create=$1 komutu olu⺶uruldu
log_delete=$1 komutu silindi
log_exec=$1 komutu 鏰lt齬齦d

0707010002598a000081a40000000000000002000000013ac038a3000003f1000000200000000000000000000000000000001800000003reloc/custom/lang/zh_CN   index_title=定制命令
index_edit=编辑命令
index_none=没有定义定制的命令
index_create=创建一个新的定制命令
index_return=命令

edit_title=编辑命令
create_title=创建命令
edit_ecannot=你不能编辑命令
edit_details=命令细节
edit_desc=描述
edit_cmd=命令
edit_user=运行用户
edit_raw=输出为HTML?
edit_su=使用用户环境
edit_params=参数
edit_name=名字
edit_type=类型
edit_quote=引用参数吗?
edit_type0=正文
edit_type1=用户
edit_type2=UID
edit_type3=组
edit_type4=GID
edit_type5=文件
edit_type6=目录
edit_type7=选项..
edit_type8=口令

save_err=保存命令失败
save_ecannot=你不能编辑命令
save_ecmd=没有输入命令
save_edesc=没有输入描述
save_euser=缺少用户或用户非法

run_err=执行命令失败
run_ecannot=你不能运行这个命令
run_euser=缺少用户或用户非法
run_egroup=缺少组或组非法
run_title=执行命令
run_out=从$1 输出..
run_noout=没产生输出

log_modify=更新了命令 $1
log_create=创建了命令 $1
log_delete=删除了命令 $1
log_exec=执行了命令 $1

acl_cmds=该用户可以执行的命令
acl_call=所有命令
acl_csel=选择的..
acl_edit=可以创建和编辑命令?
   0707010002598b000081a40000000000000002000000013ac038a30000037d000000200000000000000000000000000000001d00000003reloc/custom/lang/zh_TW.Big5  index_title=璹㏑
index_edit=絪胯㏑
index_none=﹟ゼ﹚竡ヴ璹㏑
index_create=ミ穝璹㏑
index_return=㏑

edit_title=絪胯㏑
create_title=ミ㏑
edit_ecannot=眤ぃ砆す砛絪胯㏑
edit_details=㏑灿竊
edit_desc=磞瓃
edit_cmd=㏑
edit_user=ㄏノ磅︽
edit_raw=㏑琌 HTML 块?
edit_su=ㄏノㄏノ吏挂跑计
edit_params=㏑把计
edit_name=嘿
edit_type=摸
edit_quote=琌ㄏノま腹?
edit_type0=ゅ
edit_type1=ㄏノ
edit_type2=ㄏノ絪腹 (UID)
edit_type3=竤舱
edit_type4=竤舱絪腹 (GID)
edit_type5=郎
edit_type6=ヘ魁
edit_type7=匡兜...
edit_type8=盞絏

save_err=纗㏑ア毖
save_ecannot=眤ぃ砆す砛絪胯㏑
save_ecmd=⊿Τ块㏑
save_edesc=⊿Τ块磞瓃
save_euser=框ア┪岿粇ㄏノ

run_err=磅︽㏑ア毖
run_ecannot=眤ぃ砆す砛磅︽硂㏑
run_euser=框ア┪岿粇ㄏノ
run_egroup=框ア┪岿粇竤舱
run_title=磅︽㏑
run_out=眖 $1 块...
run_noout=⊿Τ玻ネ块
   0707010001b8c2000081a40000000000000002000000013ac038a3000002a2000000200000000000000000000000000000001b00000003reloc/custom/log_parser.pl    # log_parser.pl
# Functions for parsing this module's logs

require './custom-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p) = @_;
if ($action eq 'modify') {
	return &text('log_modify', "<tt>$p->{'desc'}</tt>");
	}
elsif ($action eq 'create') {
	return &text('log_create', "<tt>$p->{'desc'}</tt>");
	}
elsif ($action eq 'delete') {
	return &text('log_delete', "<tt>$p->{'desc'}</tt>");
	}
elsif ($action eq 'exec') {
	return &text('log_exec', "<tt>$p->{'desc'}</tt>");
	}
else {
	return undef;
	}
}

  0707010001b8c3000081a40000000000000002000000013ac038a300000189000000200000000000000000000000000000001900000003reloc/custom/module.info  desc_zh_CN=用户自定义命令
name=Custom
desc_pt=Comandos Personalizados
depends=proc
desc_tr=謟el Komutlar
desc_fr=Commandes Personnalis閑s
desc_es=Comandos de Cliente
desc_sv=Egna kommandon
desc_de=Eigene Kommandos
desc_hu=Saj醫 parancsok
desc_ru_SU=胂土文 鹣特谙琢耘萄
desc_pl=Wybrane polecenia
desc_zh_TW.Big5=璹㏑
desc=Custom Commands
risk=medium high
desc_ru_RU=暑爨礓 项朦珙忄蝈
   0707010001b8c4000081e40000000000000002000000013ac038a30000084e000000200000000000000000000000000000001500000003reloc/custom/run.cgi  #!/usr/local/bin/perl
# run.cgi
# Run some command with the given parameters

require './custom-lib.pl';
&foreign_require("proc", "proc-lib.pl");
&ReadParse();
$| = 1;
&error_setup($text{'run_err'});
@cmds = &list_commands();
$cmd = $cmds[$in{'idx'}];
&can_run_command($cmd) || &error($text{'run_ecannot'});

# substitute parameters into command
$str = $displaystr = $cmd->{'cmd'};
foreach $a (@{$cmd->{'args'}}) {
	$n = $a->{'name'};
	if ($a->{'type'} == 0 || $a->{'type'} == 5 ||
	    $a->{'type'} == 6 || $a->{'type'} == 8) {
		$rv = $in{$n};
		}
	elsif ($a->{'type'} == 1 || $a->{'type'} == 2) {
		(@u = getpwnam($in{$n})) || &error($text{'run_euser'});
		$rv = $a->{'type'} == 1 ? $in{$n} : $u[2];
		}
	elsif ($a->{'type'} == 3 || $a->{'type'} == 4) {
		(@g = getgrnam($in{$n})) || &error($text{'run_egroup'});
		$rv = $a->{'type'} == 3 ? $in{$n} : $g[2];
		}
	elsif ($a->{'type'} == 7) {
		$rv = $in{$n} ? $a->{'opts'} : "";
		}
	$ENV{$n} = $rv;
	$env .= "$n='$rv'\n";
	$export .= " $n";
	if ($a->{'quote'}) {
		$str =~ s/\$$n/"\$$n"/g;
		$displaystr =~ s/\$$n/"$rv"/g;
		}
	else {
		$displaystr =~ s/\$$n/$rv/g;
		}
	}

# Run and display output
$| = 1;
&header($text{'run_title'}, "", "run");
print "<center><font size=+2>$cmd->{'desc'}</font></center>\n";
print "<hr>\n";
print "<p>",&text('run_out', "<tt>$displaystr</tt>"),"\n";
print "<pre>";
if ($cmd->{'su'}) {
	$temp = &tempname();
	open(TEMP, ">$temp");
	print TEMP "#!/bin/sh\n";
	print TEMP $env;
	print TEMP "export $export\n" if ($export);
	print TEMP "$str\n";
	close(TEMP);
	chmod(0777, $temp);
	$got = &foreign_call("proc", "safe_process_exec",
	   		     "su - $cmd->{'user'} -c $temp", 0, 0,
			     STDOUT, undef, !$cmd->{'raw'});
	unlink($temp);
	}
else {
	@u = getpwnam($cmd->{'user'});
	$got = &foreign_call("proc", "safe_process_exec", $str,
			     $u[2], undef, STDOUT, undef, !$cmd->{'raw'});
	}
&additional_log('exec', undef, $displaystr);
if (!$got) { print "<i>$text{'run_noout'}</i>\n"; }
print "</pre>\n";
%cmdin = ( %$cmd, %in );
&webmin_log("exec", "command", $cmd->{'id'}, \%cmdin);
print "<hr>\n";
&footer("", $text{'index_return'});

  0707010001b8c5000081e40000000000000002000000013ac038a300000538000000200000000000000000000000000000001a00000003reloc/custom/save_cmd.cgi #!/usr/local/bin/perl
# save_cmd.cgi
# Save, create or delete a custom command

require './custom-lib.pl';
&ReadParse();

$access{'edit'} || &error($text{'save_ecannot'});
@cmds = &list_commands();
if ($in{'delete'}) {
	$cmd = $cmds[$in{'idx'}];
	&delete_command($cmd);
	&webmin_log("delete", "command", $cmd->{'id'}, $cmd);
	}
else {
	&error_setup($text{'save_err'});
	if (!$in{'new'}) {
		$cmd = $cmds[$in{'idx'}];
		}
	else {
		$cmd = { 'id' => time() };
		}

	# parse and validate inputs
	$in{'cmd'} =~ /\S/ || &error($text{'save_ecmd'});
	$cmd->{'cmd'} = $in{'cmd'};
	$in{'desc'} =~ /\S/ || &error($text{'save_edesc'});
	$cmd->{'desc'} = $in{'desc'};
	(@u = getpwnam($in{'user'})) || &error($text{'save_euser'});
	$cmd->{'user'} = $in{'user'};
	$cmd->{'raw'} = $in{'raw'};
	$cmd->{'su'} = $in{'su'};
	$cmd->{'args'} = [ ];
	for($i=0; defined($name = $in{"name_$i"}); $i++) {
		if ($name) {
			push(@{$cmd->{'args'}}, { 'name' => $name,
						  'desc' => $in{"desc_$i"},
						  'type' => $in{"type_$i"},
						  'quote' => $in{"quote_$i"},
						  'opts' => $in{"opts_$i"} });
			}
		}
	&save_command($cmd);
	&webmin_log($in{'new'} ? "create" : "modify", "command",
		    $cmd->{'id'}, $cmd);

	if ($in{'new'} && $access{'cmds'} ne '*') {
		$access{'cmds'} .= " ".$cmd->{'id'};
		&save_module_acl(\%access);
		}
	}
&redirect("");

0707010000bb45000081e40000000000000002000000013ac0388600000886000000200000000000000000000000000000001700000003reloc/date_chooser.cgi    #!/usr/local/bin/perl
# date_chooser.cgi
# Display a table of days in the current month

require './web-lib.pl';
require 'timelocal.pl';
&init_config();
&ReadParse();
&PrintHeader();

@daysin = ( 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 );
$daysin[1] = $in{'year'}%400 == 0 ? 29 :
	     $in{'year'}%100 == 0 ? 28 :
	     $in{'year'}%4 == 0 ? 29 : 28;

@tm = localtime(time());
if ($in{'day'} !~ /^\d+$/ || $in{'day'} < 1 || $in{'year'} !~ /^\d+$/) {
	$in{'day'} = $tm[3];
	$in{'month'} = $tm[4];
	$in{'year'} = $tm[5]+1900;
	}
if ($in{'day'} > $daysin[$in{'month'}]) {
	$in{'day'} = $daysin[$in{'month'}];
	}
$tm = timelocal(0, 0, 12, $in{'day'}, $in{'month'}, $in{'year'});

print <<EOF;
<html><head>
<script>
function newmonth(m)
{
location = "date_chooser.cgi?day=$in{'day'}&month="+m.selectedIndex+"&year=$in{'year'}";
}
function newyear(y)
{
location = "date_chooser.cgi?day=$in{'day'}&month=$in{'month'}&year="+(y.selectedIndex+$in{'year'}-10);
}
function newday(d)
{
opener.dfield.value = d;
opener.mfield.selectedIndex = $in{'month'};
opener.yfield.value = $in{'year'};
close();
}
</script>
</head><body bgcolor=#ffffff>
<form><table border width=100%>
<tr> <td colspan=7 align=center><select name=year onChange='newyear(this)'>
EOF
for($i=$in{'year'}-10; $i<=$in{'year'}+10; $i++) {
	printf "<option %s>%s\n",
		$i == $in{'year'} ? 'selected' : '', $i;
	}
print "</select> <select name=month onChange='newmonth(this)'>\n";
for($i=0; $i<12; $i++) {
	printf "<option value=%s %s>%s\n",
		$i, $i == $in{'month'} ? 'selected' : '',
		$text{"month_".($i+1)};
	}
print "</select></td> </tr>\n";

print "<tr>\n";
for($i=0; $i<7; $i++) {
	print "<td><b>",$text{"sday_$i"},"</b></td>\n";
	}
print "</tr>\n";

@first = localtime($tm - ($in{'day'}-1)*24*60*60);
$count = -$first[6] + 1;
for($y=0; $y<6; $y++) {
	print "<tr>\n";
	for($x=0; $x<7; $x++) {
		if ($count < 1 || $count > $daysin[$in{'month'}]) {
			print "<td align=center></td>\n";
			}
		else {
			printf "<td align=center %s><a href='' onClick='newday($count)'>%s</a></td>\n", $in{'day'} == $count ? $cb : '', $count;
			}
		$count++;
		}
	print "</tr>\n";
	}
print "</table></form>\n";
print "</body></html>\n";

  0707010000bb46000081a40000000000000002000000013ac0388600000027000000200000000000000000000000000000001100000003reloc/defaultacl  root=/
uedit_mode=0
gedit_mode=0
rpc=1
 07070100028760000041ed0000000000000001000000053ac03bcf00000000000000200000000000000000000000000000000f00000003reloc/dfsadmin    07070100028761000081a40000000000000002000000013ac038870000007b000000200000000000000000000000000000002100000003reloc/dfsadmin/config-openserver  dfstab_file=/etc/dfs/dfstab
unshare_all_command=/etc/init.d/nfs.server stop
share_all_command=/etc/init.d/nfs.server start
 07070100028763000081a40000000000000002000000013ac0388700000099000000200000000000000000000000000000001e00000003reloc/dfsadmin/config-solaris dfstab_file=/etc/dfs/dfstab
unshare_all_command=/etc/init.d/nfs.server stop
share_all_command=/etc/init.d/nfs.server start
fstypes_file=/etc/dfs/fstypes
   07070100028764000081a40000000000000002000000013ac038870000007b000000200000000000000000000000000000001f00000003reloc/dfsadmin/config-unixware    dfstab_file=/etc/dfs/dfstab
unshare_all_command=/etc/init.d/nfs.server stop
share_all_command=/etc/init.d/nfs.server start
 07070100028766000081a40000000000000002000000013ac03887000000b5000000200000000000000000000000000000001b00000003reloc/dfsadmin/config.info    dfstab_file=NFS exports file location,0
fstypes_file=Shared filesystems types file,3,None
share_all_command=Command to start sharing,0
unshare_all_command=Command to stop sharing,0
   07070100028767000081a40000000000000002000000013ac038870000008c000000200000000000000000000000000000001e00000003reloc/dfsadmin/config.info.de dfstab_file=NFS Export Datei,0
share_all_command=Kommando um starten der Freigabe,0
unshare_all_command=Kommando zum stoppen der Freigabe,0
07070100028768000081a40000000000000002000000013ac03887000000a9000000200000000000000000000000000000001e00000003reloc/dfsadmin/config.info.es dfstab_file=Localizaci髇 del archivo de exportaciones NFS,0
share_all_command=Comando para arrancar compartici髇,0
unshare_all_command=Comando para parar compartici髇,0
   07070100028769000081a40000000000000002000000013ac038870000009f000000200000000000000000000000000000001e00000003reloc/dfsadmin/config.info.fr dfstab_file=Chemin du fichier de partage NFS,0
share_all_command=Commande pour d閙arrer le partage,0
unshare_all_command=Commande pour arr阾er le partage,0
 0707010002876a000081a40000000000000002000000013ac03887000000dd000000200000000000000000000000000000001e00000003reloc/dfsadmin/config.info.pl dfstab_file=Lokalizacja pliku 'exports' NFS-u,0
fstypes_file=Rodzaj wsp蟪dzielonego systemu plik體,3,Brak
share_all_command=Polecenie w潮czaj眂e wsp蟪dzielenie,0
unshare_all_command=Polecenie wy潮czaj眂e wsp蟪dzielenie,0
   0707010002876b000081a40000000000000002000000013ac03887000000a0000000200000000000000000000000000000001e00000003reloc/dfsadmin/config.info.sv dfstab_file=Plats f鰎 NFS-exporterade filer,0
share_all_command=Kommando f鰎 att p錬鰎ja fildelning,0
unshare_all_command=Kommando f鰎 att avsluta fildelning,0
0707010002876c000081a40000000000000002000000013ac0388700000085000000200000000000000000000000000000001e00000003reloc/dfsadmin/config.info.tr dfstab_file=NFS exports dosyas yeri,0
share_all_command=Paylam baatma komutu,0
unshare_all_command=Paylam durdurma komutu,0
   0707010002876d000081a40000000000000002000000013ac038880000006b000000200000000000000000000000000000002100000003reloc/dfsadmin/config.info.zh_CN  dfstab_file=NFS exports 文件位置,0
share_all_command=启动共享的路径,0
unshare_all_command=停止共享的路径,0
 0707010002876e000081a40000000000000002000000013ac0388700000067000000200000000000000000000000000000002600000003reloc/dfsadmin/config.info.zh_TW.Big5 dfstab_file=NFS 郎だㄉ竚,0
share_all_command=币笆だㄉ,0
unshare_all_command=氨ゎだㄉ,0
 0707010002876f000081e40000000000000002000000013ac038870000013b000000200000000000000000000000000000002000000003reloc/dfsadmin/delete_share.cgi   #!/usr/local/bin/perl
# delete_share.cgi
# Delete a share

require './dfs-lib.pl';
&ReadParse();
@shlist = &list_shares();
$share = $shlist[$in{'idx'}];
&lock_file($config{'dfstab_file'});
&delete_share($share);
&unlock_file($config{'dfstab_file'});
&webmin_log("delete", "share", $share->{'dir'});
&redirect("");

 07070100028770000081a40000000000000002000000013ac0388700000b39000000200000000000000000000000000000001a00000003reloc/dfsadmin/dfs-lib.pl # dfs-lib.pl
# Common functions for managing dfstab files

do '../web-lib.pl';
&init_config();

$default_type = 'nfs';
if ($config{'fstypes_file'} && open(TYPES, $config{'fstypes_file'})) {
	if (<TYPES> =~ /^(\S+)/) {
		$default_type = $1;
		}
	close(TYPES);
	}

# list_shares()
# Returns a list of structures containing share details
sub list_shares
{
local $lnum = 0;
local @rv;
open(DFS, $config{'dfstab_file'});
while(<DFS>) {
	s/\r|\n//g; s/#.*$//;
	if (/^\s*\S*share\s+(.*)/) {
		# Found a share line
		local $share = { 'line' => $lnum,
				 'index' => scalar(@rv) };
		local $line = $_;
		while($line =~ /\\$/) {
			$_ = <DFS>;
			s/\r|\n//g; s/#.*$//;
			$line =~ s/\\$//;
			$line .= $_;
			$lnum++;
			}
		$share->{'eline'} = $lnum;
		if ($line =~ /(\/\S+)/) {
			$share->{'dir'} = $1;
			}
		if ($line =~ /-d\s+"([^"]+)"/) { $share->{'desc'} = $1; }
		elsif ($line =~ /-d\s+(\S+)/) { $share->{'desc'} = $1; }
		if ($line =~ /-o\s+"([^"]+)"/) { $share->{'opts'} = $1; }
		elsif ($line =~ /-o\s+(\S+)/) { $share->{'opts'} = $1; }
		if ($line =~ /\s-F\s+(\S+)/) { $share->{'type'} = $1; }
		else { $share->{'type'} = $default_type; }
		push(@rv, $share);
		}
	$lnum++;
	}
close(DFS);
return @rv;
}

# create_share(&share)
# Add a new share to the dfstab file
sub create_share
{
open(DFS, ">> $config{dfstab_file}");
print DFS &share_line($_[0]),"\n";
close(DFS);
}

# modify_share(&share)
# Modify an existing share
sub modify_share
{
local $lref = &read_file_lines($config{'dfstab_file'});
splice(@$lref, $_[0]->{'line'}, $_[0]->{'eline'} - $_[0]->{'line'} + 1,
       &share_line($_[0]));
&flush_file_lines();
}

# share_line(&share)
sub share_line
{
local $s = "share";
$s .= " -d \"$_[0]->{'desc'}\"" if ($_[0]->{'desc'});
$s .= " -o $_[0]->{'opts'}" if ($_[0]->{'opts'});
$s .= " -F $_[0]->{'type'}" if ($_[0]->{'type'} &&
				$_[0]->{'type'} ne $default_type);
$s .= " $_[0]->{'dir'}";
return $s;
}

# delete_share(&share)
# Delete the share for a particular directory
sub delete_share
{
local $lref = &read_file_lines($config{'dfstab_file'});
splice(@$lref, $_[0]->{'line'}, $_[0]->{'eline'} - $_[0]->{'line'} + 1);
&flush_file_lines();
}

# parse_options(string)
# Parse a mount options string like rw=foo,nosuid,... into the associative
# array %options. Parts with no value are given an empty string as the value
sub parse_options
{
local($opt);
undef(%options);
foreach $opt (split(/,/, $_[0])) {
	if ($opt =~ /^([^=]+)=(.*)$/) {
		$options{$1} = $2;
		}
	else {
		$options{$opt} = "";
		}
	}
return \%options;
}

# join_options([&options])
# Returns a list of options from the %options array, in the form used in
# the dfstab file
sub join_options
{
local $o = $_[0] ? $_[0] : \%options;
local(@list, $k);
foreach $k (keys %$o) {
	if ($o->{$k} eq "") {
		push(@list, $k);
		}
	else {
		push(@list, "$k=$o->{$k}");
		}
	}
return join(',', @list);
}

1;

   07070100028771000081e40000000000000002000000013ac03887000017af000000200000000000000000000000000000001e00000003reloc/dfsadmin/edit_share.cgi #!/usr/local/bin/perl
# edit_share.cgi
# Display a form for editing a shared directory

require './dfs-lib.pl';
$s = $ARGV[0];
%access = &get_module_acl();

if (defined($s)) { &header("Edit Share", "", "edit_share"); }
else { &header("Create Share", "", "create_share"); }
print "<hr>\n";

print "<form action=\"save_share.cgi\">\n";
if (defined($s)) {
	print "<input type=hidden name=idx value=\"$s\">\n";
	@shlist = &list_shares();
	$share = $shlist[$s];
	}
print "<table border width=100%><tr $cb><td><table width=100%>\n";

print "<tr> <td>",&hlink("<b>Directory</b>","dir"),"</td>\n";
print "<td><input size=40 name=directory value=\"$share->{'dir'}\">\n";
print &file_chooser_button("directory", 1);
print "</td>\n";

print "<tr> <td>",&hlink("<b>Description</b>","desc"),"</td>\n";
print "<td><input name=desc size=40 value=\"$share->{'desc'}\"></td></tr>\n";

print "</table></td></tr></table><p>\n";
print "<table width=100% border>\n";
&parse_options($share->{'opts'});
print "<tr $tb>\n";
print "<td>",&hlink("<b>Read-only access</b>","ro"),"</td>\n";
print "<td>",&hlink("<b>Read-write access</b>","rw"),"</td>\n";
print "<td>",&hlink("<b>Root access</b>","root"),"</td> </tr>\n";

# $fn = "<font size=-2>"; $efn = "</font>";
printf "<tr $cb><td><input type=radio name=readonly value=0 %s> None<br>\n",
	defined($options{"ro"}) ? "" : "checked";
printf "<input type=radio name=readonly value=1 %s> All hosts<br>\n",
	defined($options{"ro"}) && $options{"ro"} eq "" ? "checked" : "";
printf "<input type=radio name=readonly value=2 %s> Listed hosts..<br>\n",
	$options{"ro"} ne "" ? "checked" : "";
printf "$fn<textarea name=rolist rows=8 cols=25>%s</textarea>$efn</td>\n",
	join("\n", split(/:/, $options{"ro"}));

printf "<td><input type=radio name=readwrite value=0 %s> None<br>\n",
	defined($options{"rw"}) ? "" : "checked";
printf "<input type=radio name=readwrite value=1 %s> All hosts<br>\n",
	defined($options{"rw"}) && $options{"rw"} eq "" ? "checked" : "";
printf "<input type=radio name=readwrite value=2 %s> Listed hosts..<br>\n",
	$options{"rw"} ne "" ? "checked" : "";
printf "$fn<textarea name=rwlist rows=8 cols=25>%s</textarea>$efn</td>\n",
	join("\n", split(/:/, $options{"rw"}));

printf "<td><input type=radio name=root value=0 %s> None<p>\n",
	defined($options{"root"}) ? "" : "checked";
printf "<input type=radio name=root value=2 %s> Listed hosts..<br>\n",
	$options{"root"} ne "" ? "checked" : "";
printf "$fn<textarea name=rtlist rows=8 cols=25>%s</textarea>$efn</td></tr>\n",
	join("\n", split(/:/, $options{"root"}));
print "</table>\n";

if (!$access{'simple'}) {
	print "<p><table border width=100%>\n";
	print "<tr $tb> <td><b>Share Options</b></td> </tr>\n";
	print "<tr $cb> <td><table width=100%>\n";
	print "<tr> <td>",&hlink("<b>Allow mounting of subdirs?</b>","sub"),"</td>\n";
	printf "<td><input type=radio name=nosub value=0 %s> Yes\n",
		defined($options{"nosub"}) ? "" : "checked";
	printf "<input type=radio name=nosub value=1 %s> No</td>\n",
		!defined($options{"nosub"}) ? "" : "checked";

	print "<td>",&hlink("<b>Allow setuid files?</b>","suid"),"</td>\n";
	printf "<td nowrap><input type=radio name=nosuid value=0 %s> Yes\n",
		defined($options{"nosuid"}) ? "" : "checked";
	printf "<input type=radio name=nosuid value=1 %s> No</td> </tr>\n",
		!defined($options{"nosuid"}) ? "" : "checked";

	print "<tr> <td>",&hlink("<b>Clients must use DES?</b>","des"),"</td>\n";
	printf "<td nowrap><input type=radio name=secure value=1 %s> Yes\n",
		defined($options{"secure"}) ? "checked" : "";
	printf "<input type=radio name=secure value=0 %s> No</td>\n",
		!defined($options{"secure"}) ? "checked" : "";

	print "<td>",&hlink("<b>Clients must use kerberos?</b>","kerberos"),"</td>\n";
	printf "<td nowrap><input type=radio name=kerberos value=1 %s> Yes\n",
		defined($options{"kerberos"}) ? "checked" : "";
	printf "<input type=radio name=kerberos value=0 %s> No</td> </tr>\n",
		!defined($options{"kerberos"}) ? "checked" : "";

	print "<tr> <td>",&hlink("<b>Anonymous user</b>","anon"),"</td> <td>\n";
	printf "<input type=radio name=anon_m value=0 %s> Not set\n",
		defined($options{"anon"}) ? "" : "checked";
	printf "<input type=radio name=anon_m value=1 %s> No access\n",
		$options{"anon"} == -1 ? "checked" : "";
	$user = defined($options{"anon"}) && $options{"anon"} != -1 ?
			getpwuid($options{'anon'}) : undef;
	printf "<input type=radio name=anon_m value=2 %s>\n",
		$user ? "checked" : "";
	print "<input name=anon size=8 value=\"$user\"> ",
		&user_chooser_button("anon", 0),"</td>\n";

	print "<td>",&hlink("<b>ACL OK option?</b>","aclok"),"</td>\n";
	printf "<td nowrap><input type=radio name=aclok value=1 %s> Yes\n",
		defined($options{"aclok"}) ? "checked" : "";
	printf "<input type=radio name=aclok value=0 %s> No</td> </tr>\n",
		!defined($options{"aclok"}) ? "checked" : "";

	if ($gconfig{'os_version'} >= 7) {
		print "<tr> <td>",&hlink("<b>WebNFS share?</b>","public"),"</td>\n";
		printf "<td nowrap><input type=radio name=public value=1 %s> Yes\n",
			defined($options{"public"}) ? "checked" : "";
		printf "<input type=radio name=public value=0 %s> No</td>\n",
			!defined($options{"public"}) ? "checked" : "";

		print "<td>",&hlink("<b>WebNFS index file</b>","index"),"</td>\n";
		printf "<td nowrap><input type=radio name=index_def value=1 %s> None\n",
			defined($options{"index"}) ? "" : "checked";
		printf "<input type=radio name=index_def value=0 %s>\n",
			defined($options{"index"}) ? "checked" : "";
		printf "<input name=index size=10 value=\"%s\"></td> </tr>\n",
			$options{"index"};
		}

	print "</table></td> </tr></table><p>\n";
	}

if ($s ne "") {
	print "<table width=100%>\n";
	print "<tr> <td><input type=submit value=Save></td>\n";
	print "</form><form action=\"delete_share.cgi\">\n";
	print "<input type=hidden name=idx value=\"$s\">\n";
	print "<td align=right><input type=submit value=Delete></td> </tr>\n";
	print "</form></table><p>\n";
	}
else {
	print "<input type=submit value=Create></form><p>\n";
	}
print "<hr>\n";
&footer("", "list of shares");

 07070100029e3c000041ed0000000000000001000000023ac03bce00000000000000200000000000000000000000000000001400000003reloc/dfsadmin/help   07070100029e45000081a40000000000000002000000013ac03887000000d8000000200000000000000000000000000000002200000003reloc/dfsadmin/help/aclok.es.html <header>縊pci髇 Ok de ACL?</header>

Si se activa esta opci髇, los clientes NFS que no pueden soportar los ACLs
de Solaris tendr醤 acceso de lectura a un archivo si cualquier usuario
tiene permisos de lectura.
<hr>

07070100029e46000081a40000000000000002000000013ac03887000000de000000200000000000000000000000000000002200000003reloc/dfsadmin/help/aclok.fr.html <header>Contr鬺e de Niveau d'Acc鑣 Correct?</header>

Si cette option est choisie, les clients NFS qui ne supporte pas les contr鬺es d'acc鑣 seront autoris閟 a lire les fichiers, si les permissions le permettent.
<hr>
  07070100029e49000081a40000000000000002000000013ac03887000000b3000000200000000000000000000000000000001f00000003reloc/dfsadmin/help/aclok.html    <header>ACL Ok Option?</header>

If this option is set, NFS clients that cannot support Solaris ACLs will
be allowed read access to a file if any user has read permissions.
<hr>

 07070100029e4a000081a40000000000000002000000013ac03887000000c1000000200000000000000000000000000000002200000003reloc/dfsadmin/help/aclok.pl.html <header>Opcja ACL Ok?</header>

Je秎i w潮czono t opcj, klienci NFS nie obs硊guj眂y ACL-i Solarisa
uzyskaj prawo odczytu pliku, o&nbsp;ile jakikolwiek u縴tkownik posiada
prawo odczytu.
<hr>

   07070100029e4b000081a40000000000000002000000013ac03887000000a9000000200000000000000000000000000000002200000003reloc/dfsadmin/help/aclok.sv.html <header>ACL Ok?</header>

Om du har valt detta kommer NFS-klienter som inte st鰀jer Solaris-ACLer
att kunna l鋝a alla filer som 鰒erhuvudtaget har l鋝r鋞tigheter.
<hr>

   07070100029e4c000081a40000000000000002000000013ac0388700000084000000200000000000000000000000000000002a00000003reloc/dfsadmin/help/aclok.zh_TW.Big5.html <header>ACL 絋粄匡兜?</header>

狦砞﹚硂匡兜, ┮Τぃや穿 Solaris 北 NFS 北狠盢弄ヴΤ弄舦郎.
<hr>

07070100029e4d000081a40000000000000002000000013ac03887000000f8000000200000000000000000000000000000002100000003reloc/dfsadmin/help/anon.es.html  <header>Usuario An髇imo</header>

Cuando el usuario root de un cliente que no est en la lista de
<a href=root.es>Acceso de Root</a> accede a archivos de esta compartici髇,
el usuario root ser tratado como el usuario que seleccionemos aqu.
<hr>

07070100029e52000081a40000000000000002000000013ac03887000000e4000000200000000000000000000000000000002100000003reloc/dfsadmin/help/anon.fr.html  <header>Usager Anonyme</header>

Quand l'usager 'root' sur un client qui n'a pas <a href=root>l'Acc鑣 Root</a> dans la liste d'acc鑣 aux fichiers de ce partage, l'usager root sera trait comme l'usager s閘ectionn ici.
<hr>
07070100029e53000081a40000000000000002000000013ac03887000000e5000000200000000000000000000000000000001e00000003reloc/dfsadmin/help/anon.html <header>Anonymous User</header>

When the <tt>root</tt> user on a client that is not on the 
<a href=root>Root Access</a> list accesses files on this share, the
<tt>root</tt> user will be treated as the user selected here.
<hr>

   07070100029e54000081a40000000000000002000000013ac03887000000fc000000200000000000000000000000000000002100000003reloc/dfsadmin/help/anon.pl.html  <header>U縴tkownik anonimowy</header>

Gdy u縴tkownik <tt>root</tt> na stacji klienckiej nie znajduj眂ej si na
li禼ie <a href=root>Dost阷u dla root-a</a> uzyskuje dost阷 do plik體 tego
zasobu, b阣zie on traktowany jako zaznaczony tu u縴tkownik.
<hr>

07070100029e55000081a40000000000000002000000013ac03887000000f5000000200000000000000000000000000000002100000003reloc/dfsadmin/help/anon.sv.html  <header>Anonym anv鋘dare</header>

Om en root p en klient som inte finns p <a href=root>Root-tillg錸g</a>-listanf鰎s鰇er komma 錿 filer p denna delade resurs, kommer denna root att ha samma r鋞tigheter som den anv鋘dare du angivit h鋜.
<hr>

   07070100029e5d000081a40000000000000002000000013ac0388700000086000000200000000000000000000000000000002900000003reloc/dfsadmin/help/anon.zh_TW.Big5.html  <header>拔ㄏノ</header>

讽め狠 root ㄏノぃ <a href=root>Root </a>い, 硂 root 盢砆讽硂娩匡拒ㄏノ.
<hr>

  07070100029e5e000081a40000000000000002000000013ac0388700000080000000200000000000000000000000000000002900000003reloc/dfsadmin/help/create_share.es.html  <header>Creando una Compartici髇 NFS</header>

Este formulario te permite crear una nueva compartici髇 NFS.

<include share.es>
07070100029e5f000081a40000000000000002000000013ac0388700000075000000200000000000000000000000000000002900000003reloc/dfsadmin/help/create_share.fr.html  <header>Cr閑r un Partage NFS</header>

Cette page vous permet de cr閑r un nouveau partage NFS.

<include share>
   07070100029e60000081a40000000000000002000000013ac0388700000069000000200000000000000000000000000000002600000003reloc/dfsadmin/help/create_share.html <header>Creating an NFS Share</header>

This form allows you to create a new NFS share.

<include share>
   07070100029e61000081a40000000000000002000000013ac0388700000072000000200000000000000000000000000000002900000003reloc/dfsadmin/help/create_share.pl.html  <header>Tworzenie zasobu NFS</header>

Za pomoc tego formularza mo縠sz utworzy nowy zas骲 NFS.

<include share>
  07070100029e62000081a40000000000000002000000013ac0388700000067000000200000000000000000000000000000002900000003reloc/dfsadmin/help/create_share.sv.html  <header>Skapa en NFS-resurs</header>

I detta formul鋜 kan du skapa en ny NFS-resurs.

<include share>
 07070100029e64000081a40000000000000002000000013ac03887000000ad000000200000000000000000000000000000002000000003reloc/dfsadmin/help/des.es.html   <header>緿eben los Clientes de Utilizar DES?</header>

Esta opci髇 determina si los clientes NFS deben de utilizar autentificaci髇
DES cuando montan una compartici髇.
<hr>

   07070100029eb8000081a40000000000000002000000013ac03887000005a2000000200000000000000000000000000000001c00000003reloc/dfsadmin/help/ro.html   <header>Read-Only Access</header>

This determines which hosts have read-only access to this share.
There are three choices for this option :
<ul>
<li><b>None</b><br>
    No hosts have read-only access.
<li><b>All hosts</b><br>
    Any host can mount this share read-only. If you are connected to the
    Internet, this means that anyone in the world can read files in the
    exported directory.
<li><b>Listed hosts</b><br>
<if $gconfig{'os_version'} < 7>
    The hosts or IP addresses listed below can mount this share read-only.
<else>
    Matching hosts listed below can mount this share read-only. Hosts can
    be specified in the following ways :<p>
	<dl>
	<dt><b>Hostname or IP address</b> (like <i>ftp.foo.com</i> or <i>1.2.3.4</i>)
	<dd>Matches the host with the given name or address
	<dt><b>Netgroup</b> (like <i>engineering</i>)
	<dd>Matches any host that is a member of the netgroup
	<dt><b>DNS domain</b> (like <i>.foo.com</i>)
	<dd>Matches any host in the domain
	<dt><b>Network</b> (like <i>@10.254.1</i>)
	<dd>Matches any host in the network
	<dt><b>Network/netmask</b> (like <i>@10.254.1/24</i>)
	<dd>Matches any host in the network
	</dl><p>
    In addition, any of the above notations can be prefixed by a <i>-</i>,
    meaning that the host, netgroup, domain or network is <b>not</b> allowed
    to mount this share. This can be useful for allowing access by a set
    of hosts, but denying one member.
</if>
</ul>
<hr>
  07070100029e63000081a40000000000000002000000013ac0388700000060000000200000000000000000000000000000003100000003reloc/dfsadmin/help/create_share.zh_TW.Big5.html  <header>ミ NFS 郎だㄉ</header>

硂虫琵眤ミ穝 NFS 郎だㄉ.

<include share>
07070100029e65000081a40000000000000002000000013ac03887000000b0000000200000000000000000000000000000002000000003reloc/dfsadmin/help/des.fr.html   <header>Les Clients Doivent Utiliser DES?</header>

Cette option d閠ermine si les clients NFS doivent utiliser l'authentification DES au moments de monter le partage.
<hr>
07070100029e68000081a40000000000000002000000013ac038870000008a000000200000000000000000000000000000001d00000003reloc/dfsadmin/help/des.html  <header>Clients Must Use DES?</header>

This option determines if NFS clients must use DES authentication when
mounting this share.
<hr>

  07070100029e6a000081a40000000000000002000000013ac03887000000a6000000200000000000000000000000000000002000000003reloc/dfsadmin/help/des.pl.html   <header>Klienci musz korzysta z&nbsp;DES?</header>

Ta opcja okre秎a, czy klienci NFS-u musz korzysta z&nbsp;autoryzacji
DES podczas montowania tego zasobu.
<hr>
  07070100029e6b000081a40000000000000002000000013ac0388700000094000000200000000000000000000000000000002000000003reloc/dfsadmin/help/des.sv.html   <header>M錽te klienter anv鋘da DES?</header>

H鋜 st鋖ler du in om NFS-klienter m錽te anv鋘da DES-autentisering n鋜 de monterar denna resurs.
<hr>

07070100029e6c000081a40000000000000002000000013ac0388700000070000000200000000000000000000000000000002800000003reloc/dfsadmin/help/des.zh_TW.Big5.html   <header>め狠琌ゲ斗ㄏノ DES?</header>

硂匡兜∕﹚ NFS め狠本更硂だㄉ, 琌ゲ斗ㄏノ DES 粄靡.
<hr>

07070100029e6d000081a40000000000000002000000013ac0388700000060000000200000000000000000000000000000002100000003reloc/dfsadmin/help/desc.es.html  <header>Descripci髇</header>

Una breve descripci髇 hum醤amente legible para esta carpeta
<hr>

07070100029e71000081a40000000000000002000000013ac038870000004c000000200000000000000000000000000000002100000003reloc/dfsadmin/help/desc.fr.html  <header>Description</header>

Une petite description de ce partage
<hr>
07070100029e72000081a40000000000000002000000013ac0388700000056000000200000000000000000000000000000001e00000003reloc/dfsadmin/help/desc.html <header>Description</header>

A short human-readable description for this share
<hr>

  07070100029e74000081a40000000000000002000000013ac038870000005d000000200000000000000000000000000000002100000003reloc/dfsadmin/help/desc.pl.html  <header>Opis</header>

Kr髏ka, czytelna dla u縴tkownika informacja o&nbsp;tym zasobie.
<hr>

   07070100029e77000081a40000000000000002000000013ac0388700000045000000200000000000000000000000000000002100000003reloc/dfsadmin/help/desc.sv.html  <header>Beskrivning</header>

Kort beskrivning av denna resurs
<hr>

   07070100029e78000081a40000000000000002000000013ac038870000003e000000200000000000000000000000000000002900000003reloc/dfsadmin/help/desc.zh_TW.Big5.html  <header>弧</header>

倒硂だㄉ虏祏, 弄弧
<hr>

  07070100029e79000081a40000000000000002000000013ac03887000000c8000000200000000000000000000000000000002000000003reloc/dfsadmin/help/dir.es.html   <header>Directorio</header>

Este es el directorio que es exportado. Los clientes NFS pueden montar
este directorio y posiblemente cualquiera otros archivos o subdirectorios
que cuelguen de 閘.
<hr>

07070100029e7a000081a40000000000000002000000013ac03887000000c9000000200000000000000000000000000000002000000003reloc/dfsadmin/help/dir.fr.html   <header>R閜ertoire</header>

Ceci est le r閜ertoire qui sera partag.  Les clients NFS peuvent monter ce r閜ertoire et possiblement tous les autres fichiers et sous-r閜ertoires  l'int閞ieur.
<hr>
   07070100029e7c000081a40000000000000002000000013ac03887000000a7000000200000000000000000000000000000001d00000003reloc/dfsadmin/help/dir.html  <header>Directory</header>

This is the directory being exported. NFS clients may mount
this directory, and possibly any other files or subdirectories under it.
<hr>

 07070100029e7d000081a40000000000000002000000013ac03887000000b2000000200000000000000000000000000000002000000003reloc/dfsadmin/help/dir.pl.html   <header>Katalog</header>

Jest to udost阷niany katalog. Klienci NFS-u mog montowa ten katalog,
jak te zapewne wszystkie pliki i&nbsp;katalogi w&nbsp;g潮b tego katalogu.
<hr>

  07070100029e7e000081a40000000000000002000000013ac038870000009b000000200000000000000000000000000000002000000003reloc/dfsadmin/help/dir.sv.html   <header>Katalog</header>

Det 鋜 denna katalog som ska exporteras. NFS-klienter kan montera katalogen
och eventuella filer och underkataloger i den.
<hr>

 07070100029e7f000081a40000000000000002000000013ac0388700000069000000200000000000000000000000000000002800000003reloc/dfsadmin/help/dir.zh_TW.Big5.html   <header>ヘ魁</header>

硂琌盢璶砆だㄉヘ魁. NFS め狠本更硂ヘ魁┪ㄤㄤ郎┪ヘ魁.
<hr>

   07070100029e80000081a40000000000000002000000013ac0388700000097000000200000000000000000000000000000002700000003reloc/dfsadmin/help/edit_share.es.html    <header>Editando una compartici髇 NFS</header>

Este formulario te permite editar los detalles de una compartici髇 NFS
existente.

<include share.es>

 07070100029e81000081a40000000000000002000000013ac0388700000084000000200000000000000000000000000000002700000003reloc/dfsadmin/help/edit_share.fr.html    <header>蒬iter un Partage NFS</header>

Cette page vous permet d'閐iter les d閠ails d'un partage NFS existant

<include share>
07070100029e82000081a40000000000000002000000013ac038870000007c000000200000000000000000000000000000002400000003reloc/dfsadmin/help/edit_share.html   <header>Editing an NFS Share</header>

This form allows you to edit the details of an existing NFS share.

<include share>

07070100029e83000081a40000000000000002000000013ac038870000007e000000200000000000000000000000000000002700000003reloc/dfsadmin/help/edit_share.pl.html    <header>Zmiana zasobu NFS</header>

Za pomoc tego formularza mo縠sz zmieni dane instniej眂ego zasobu NFS.

<include share>

  07070100029e84000081a40000000000000002000000013ac0388700000073000000200000000000000000000000000000002700000003reloc/dfsadmin/help/edit_share.sv.html    <header>膎dra en NFS-resurs</header>

I detta formul鋜 kan du 鋘dra uppgifter f鰎 en NFS-resurs.

<include share>

 07070100029e85000081a40000000000000002000000013ac0388700000067000000200000000000000000000000000000002f00000003reloc/dfsadmin/help/edit_share.zh_TW.Big5.html    <header>絪胯 NFS だㄉ</header>

硂虫琵眤絪胯瞷 NFS だㄉ冈灿戈.

<include share>

 07070100029e86000081a40000000000000002000000013ac0388700000122000000200000000000000000000000000000002200000003reloc/dfsadmin/help/index.es.html <header>Archivo 韓dice de WebNFS</header>

Si esta compartici髇 es puesta como disponible a trav閟 de WebNFS, esta
opci髇  te permite poner el nombre del archivo que ser devuelto si se
realiza un requerimiento para un directorio. T韕icamente esto ser algo
como <tt>index.html</tt>.
<hr>

  07070100029e87000081a40000000000000002000000013ac0388700000107000000200000000000000000000000000000002200000003reloc/dfsadmin/help/index.fr.html <header>Fichier Index WebNFS</header>

Si ce partage est accessible via WebNFS, cette option vous permet de d閒inir le nom du fichier qui va 阾re retourn si une requ阾e est faite sur ce r閜ertoire.  G閚閞alement quelque chose comme <tt>index.html</tt>.
<hr>
 07070100029e88000081a40000000000000002000000013ac0388700000100000000200000000000000000000000000000001f00000003reloc/dfsadmin/help/index.html    <header>WebNFS index file</header>

If this share is made available via WebNFS, this option allows you to
set the name of the file that will be returned if a request is made for
a directory. Typically this will be something like <tt>index.html</tt>.
<hr>

07070100029e89000081a40000000000000002000000013ac038870000010e000000200000000000000000000000000000002200000003reloc/dfsadmin/help/index.pl.html <header>Plik indeksowy WebNFS-u</header>

Je秎i ten zas骲 zosta udost阷niony poprzez WebNFS, niniejsza opcja pozwoli
Ci na okre秎enie nazwy pliku zwracanego w體czas, gdy otrzymane 勘danie
dotyczy katalogu. Zazwyczaj jest to co w&nbsp;rodzaju <tt>index.html</tt>.
<hr>
  07070100029e8a000081a40000000000000002000000013ac03887000000f7000000200000000000000000000000000000002200000003reloc/dfsadmin/help/index.sv.html <header>WebNFS-indexfil</header>

Om denna resurs g鰎s tillg鋘glig via WebNFS g鰎 denna inst鋖lning att du kan namnge den fil som returneras som svar vid f鰎fr錱ningar om kataloger.
Vanligen heter filen n錱ot i stil med <tt>index.html</tt>.
<hr>

 07070100029e8b000081a40000000000000002000000013ac03887000000a4000000200000000000000000000000000000002a00000003reloc/dfsadmin/help/index.zh_TW.Big5.html <header>WebNFS ま郎</header>

狦硂だㄉ琌砞Θ硄筁 WebNFS だㄉ, 硂匡兜琵眤砞﹚癸ヘ魁Τ璶―莱郎. τē常穦砞Θ <tt>index.html</tt>.
<hr>

07070100029e8d000081a40000000000000002000000013ac03887000004c0000000200000000000000000000000000000002200000003reloc/dfsadmin/help/intro.es.html <header>Introducci髇 a Comparticiones NFS</header>

<include nfs.es>

<h3>NFS de Solaris</h3>
Este m骴ulo te permite configurar directorios (llamados <i>comparticiones</i>
en Solaris) para ser exportados v韆 NFS desde tu sistema Solaris. La
primera p醙ina muestra un lista de los directorios y de los clientes a los
que han sido exportados, permiti閚dote hacer click en el nombre del
directorio para editar sus opciones o empezar a compartir un nuevo
directorio. <p>

Bajo la lista de comparticiones de la primera p醙ina hay un bot髇 que
har que la configuraci髇 en curso quede activa. Esto se realiza parando
y rearrancando los procesos del servidor NFS en curso. <p>

Solaris no te permite reexportar un directorio NFS montado desde
otro servidor - s髄amente los directorios pertenecientes a sistemas de
archivos pueden ser exportados. Si un directorio compartido contiene
el punto de montaje de otro sistema de archivos local, los clientes
NFS de esta compartici髇 no ver醤 los archivos por debajo del punto de
montaje. El servidor debe de reexportar cada sistema de archivos local
por separado para que puedan ser montados por los clientes en el punto
correcto dentro de la jerarqu韆 del directorio. <p>

<hr>

07070100029e8e000081a40000000000000002000000013ac03887000003c7000000200000000000000000000000000000002200000003reloc/dfsadmin/help/intro.fr.html <header>Introduction au Partage NFS</header>

<include nfs>

<h3>NFS de Solaris</h3>
Ce module vous permet de configurer des r閜ertoires (appel <i>partages</i> dans Solaris) partag par NFS  partir de votre syst鑝e Solaris.  Cette premi鑢e page affiche une liste des r閜ertoires et des clients  qui ils sont partag閟, vous permettant de cliquer sur le nom de r閜ertoire pour 閐iter ses options ou pour cr閑r un partage d'un nouveau r閜ertoire.<p>

Sous la liste des partages de la premi鑢e page se trouve un bouton qui permet d'activer la configuration en arr阾ant le processus du serveur NFS et en le red閙arrant.<p>

Solaris ne vous permet pas de repartager un r閜ertoire d閖 mont par NFS d'un autre serveur, seulement des r閜ertoires du syst鑝e de fichier local peuvent 阾re partag. Si un r閜ertoire partag contient le point de montage d'un syst鑝e de fichier NFS d'un autre h魌e, les clients ne verront pas les fichiers  l'int閞ieur.<p>

<hr>
 07070100029e8f000081a40000000000000002000000013ac03887000003ec000000200000000000000000000000000000001f00000003reloc/dfsadmin/help/intro.html    <header>Introduction to NFS Shares</header>

<include nfs>

<h3>Solaris NFS</h3>
This module allows you to configure directories (called <i>shares</i>
in Solaris) exported via NFS from your Solaris system. The first page
shows a list of directories and the clients they are exported to, allowing
you to click on the directory name to edit its options or start sharing 
a new directory. <p>

Below the list of shares on the first page is a button which will
make the current configuration active. This is done by stopping and
starting the running NFS server processes. <p>

Solaris does not allow you to re-export a directory NFS mounted from
another server - only directories on local filesystems can be exported. If
a shared directory contains the mount point of another local filesystem,
NFS clients of that share will not see files below that mount point.
The server must re-export each local filesystem separately, to be
mounted by clients at the correct point in the directory hierarchy. <p>

<hr>

07070100029e90000081a40000000000000002000000013ac0388700000471000000200000000000000000000000000000002200000003reloc/dfsadmin/help/intro.pl.html <header>Wprowadzenie do zasob體 NFS-u</header>

<include nfs>

<h3>NFS Solarisa</h3>
Za pomoc tego modu硊 mo縠sz okre秎i katalogi (zwane w&nbsp;Solarisie
<i>share</i>) udost阷niane przez Tw骿 system Solarisa za po秗ednictwem NFS-u
Na pierwszej stronie uka縠 si lista katalog體 i&nbsp;stacji klienckich,
dla kt髍ych nast阷uje udost阷nianie. Klikaj眂 nazw katalogu mo縠sz zmieni
jego opcje lub rozpocz辨 udost阷nianie nowego katalogu. <p>

Poni縠j listy zasob體 na tej samej stronie znajduje si przycisk uaktywniaj眂y
bie勘c konfiguracj. Dzieje si to przez zatrzymanie i&nbsp;ponowne
uruchomienie dzia砤j眂ych proces體 serwera NFS-u. <p>

Solaris nie pozwala na ponowne udost阷nianie katalogu zamontowanego poprzez
NFS z&nbsp;innego serwera - mo縩a udost阷nia jedynie katalogi na lokalnych
systemach plik體. Je縠li udost阷niany katalog zawiera punkt montowania
innego lokalnego sustemu plik體, klienci NFS-u dla tego zasobu nie zobacz
plik體 poni縠j punktu montowania. Serwer musi udost阷nia ka縟y lokalny
system plik體 osobno w&nbsp;celu zamontowania przez stacj klienck we
w砤禼iwym punkcie jej drzewa katalog體. <p>

<hr>
   07070100029e91000081a40000000000000002000000013ac03887000003b4000000200000000000000000000000000000002200000003reloc/dfsadmin/help/intro.sv.html <header>Introduktion till NFS-resurser</header>

<include nfs>

<h3>Solaris NFS</h3>
I denna modul kan du g鰎a inst鋖lningar f鰎 kataloger (<i>resurser</i>
i Solaris) som exporteras via NFS fr錸 ditt Solaris-system. Den f鰎sta
sidan inneh錶ler en lista 鰒er kataloger och de klienter som de exporteras
till. Klicka p ett katalognamn f鰎 att 鋘dra dess inst鋖lningar eller
f鰎 att b鰎ja exportera en ny katalog.

<p>Nedanf鰎 listan finns en knapp f鰎 att ta inst鋖lningarna i drift.
Detta sker genom att alla NFS-serverprocesser stannas och startas om.

<p>Solaris till錿er inte exportering av kataloger som NFS-monteras fr錸
en annan server, utan endast fr錸 filsystemen. Om en katalog inneh錶ler
en monteringspunkt f鰎 ett annat lokalt filsystem kan NFS-klienterna inte
visa filerna bortom denna punkt. Servern m錽te exportera varje lokalt
filsystem separat och klienterna f錼 se till att montera dem p r鋞t
st鋖le i kataloghierarkin.

<p><hr>

07070100029e92000081a40000000000000002000000013ac0388700000290000000200000000000000000000000000000002a00000003reloc/dfsadmin/help/intro.zh_TW.Big5.html <header>NFS だㄉ虏ざ</header>

<include nfs>

<h3>Solaris NFS</h3>
硂家舱琵眤舱篈眖眤 Solaris ╰参い硓筁 NFS 蹲ヘ魁 ( Solaris い暗<i>だㄉ</i>). 材陪ボヘ玡竒砞﹚ヘ魁籔钡蹲め狠, す砛眤钡翴匡ヘ魁嘿絪胯闽匡兜; ┪砞﹚穝だㄉヘ魁. <p>

だㄉ秙盢ㄏヘ玡砞﹚ネ. 硂琌竒パ氨ゎ穝币笆磅︽い NFS 狝竟祘笷Θ. <p>

Solaris ぃす砛眤穝蹲竒パ NFS 本更ヘ魁 - Τセ狠郎╰参ヘ魁砆蹲. 狦だㄉヘ魁眖ㄤセ狠郎╰参本更ヘ魁, NFS め狠盢礚猭赣本更翴郎. 狝竟ゲ斗だ盢–郎╰参縒ミ蹲, め狠ゲ斗だ本更. <p>

<hr>

07070100029e93000081a40000000000000002000000013ac03887000000b3000000200000000000000000000000000000002500000003reloc/dfsadmin/help/kerberos.es.html  <header>緿eben los Clientess de Usar Kerberos?</header>

Esta opci髇 determina si los clientes NFS deben de usar la autentificaci髇
Kerberos cuando montan una compartici髇.
<hr>

 07070100029e94000081a40000000000000002000000013ac03887000000b9000000200000000000000000000000000000002500000003reloc/dfsadmin/help/kerberos.fr.html  <header>Les Clients Doivent Utiliser Kerberos?</header>

Cette option d閠ermine si les clients NFS doivent utiliser l'authentification Kerberos au moment de monter un partage.
<hr>
   07070100029e95000081a40000000000000002000000013ac0388700000094000000200000000000000000000000000000002200000003reloc/dfsadmin/help/kerberos.html <header>Clients Must Use Kerberos?</header>

This option determines if NFS clients must use Kerberos authentication when
mounting this share.
<hr>

07070100029e96000081a40000000000000002000000013ac03887000000ae000000200000000000000000000000000000002500000003reloc/dfsadmin/help/kerberos.pl.html  <header>Klienci musz korzysta z&nbsp;Kerberosa?</header>

Ta opcja okre秎a, czy klienci NFS-u musz korzysta z autoryzacji Kerberosa
podczas montowania tego zasobu.
<hr>

  07070100029ec4000081a40000000000000002000000013ac03887000005d8000000200000000000000000000000000000001c00000003reloc/dfsadmin/help/rw.html   <header>Read-Write Access</header>

This determines which hosts have read-write access to this share.
There are three choices for this option :
<ul>
<li><b>None</b><br>
    No hosts have read-write access.
<li><b>All hosts</b><br>
    Any host can mount this share read-write. If you are connected to the
    Internet, this means that anyone in the world can read, write and
    delete files in the exported directory. Use this option with caution.
<li><b>Listed hosts</b><br>
<if $gconfig{'os_version'} < 7>
    The hosts or IP addresses listed below can mount this share read-write.
<else>
    Matching hosts listed below can mount this share read-write. Hosts can
    be specified in the following ways :<p>
	<dl>
	<dt><b>Hostname or IP address</b> (like <i>ftp.foo.com</i> or <i>1.2.3.4</i>)
	<dd>Matches the host with the given name or address
	<dt><b>Netgroup</b> (like <i>engineering</i>)
	<dd>Matches any host that is a member of the netgroup
	<dt><b>DNS domain</b> (like <i>.foo.com</i>)
	<dd>Matches any host in the domain
	<dt><b>Network</b> (like <i>@10.254.1</i>)
	<dd>Matches any host in the network
	<dt><b>Network/netmask</b> (like <i>@10.254.1/24</i>)
	<dd>Matches any host in the network
	</dl><p>
    In addition, any of the above notations can be prefixed by a <i>-</i>,
    meaning that the host, netgroup, domain or network is <b>not</b> allowed
    to mount this share. This can be useful for allowing access by a set
    of hosts, but denying one member.
</if>
</ul>
<hr>
07070100029e97000081a40000000000000002000000013ac03887000000a0000000200000000000000000000000000000002500000003reloc/dfsadmin/help/kerberos.sv.html  <header>M錽te klienterna anv鋘da Kerberos?</header>

H鋜 st鋖ler du in om NFS-klienter m錽te anv鋘da Kerberos-autentisering n鋜 de monterar denna resurs.
<hr>

07070100029e98000081a40000000000000002000000013ac038870000007a000000200000000000000000000000000000002d00000003reloc/dfsadmin/help/kerberos.zh_TW.Big5.html  <header>め狠琌ゲ斗ㄏノ Kerberos?</header>

硂匡兜∕﹚ NFS め狠本更硂だㄉ, 琌ゲ斗ㄏノ Kerberos 粄靡.
<hr>

  07070100029e99000081a40000000000000002000000013ac038870000051d000000200000000000000000000000000000002000000003reloc/dfsadmin/help/nfs.es.html   <h3>Introducci髇 a NFS</h3>

NFS es el protocolo est醤dar de compartici髇 de archivos utilizado por los
sistemas Unix. NFS permite que un sistema exporte un directorio a trav閟
de la red a una o m醩 m醧uinas, permitiendo a los usuarios y programas de
esas m醧uinas acceder a los archivos exportados como si fueran locales. <p>

Un servidor NFS es un sistema que exporta uno o m醩 directorios, mientras
que un cliente NFS es un sistema que monta uno o m醩 directorios del
servidor. Una m醧uina puede ser a la vez servidora NFS y cliente de otros
servidores. <p>

Un servidor controla qu clientes pueden montar un directorio exportado
mediante el chequeo de la direcci髇 IP del cliente contra una lista de
m醧uinas autorizadas a realizar requerimientos de ese directorio. El
servidor puede tambien designar una exportaci髇 como de s髄o-lectura o
de s髄o-lectura para ciertos clientes. <p>

Al contrario de otros sistemas de archivo de red, un cliente NFS no tiene
que hacer login en el servidor cuando monta un directorio exportado. El
servidor conf韆 en la propia autentificaci髇 del cliente para los usuarios
y provee la ID del usuario en curso para acceder a los archivos exportados.
Por ello, s髄o deber韆s permitir a m醧uinas cliente de las cuales realmente
te f韊s el montar directorios exportados. <p>

   07070100029e9a000081a40000000000000002000000013ac03887000004ae000000200000000000000000000000000000002000000003reloc/dfsadmin/help/nfs.fr.html   <header>Introduction  NFS</header>

NFS est un protocole de partage de fichier standard utilis sur les syst鑝es Unix.  NFS permet  un syst鑝e de partager un r閜ertoire sur un r閟eau  un autre h魌e, permettant aux usagers et applications de l'h魌e d'avoir acc鑣 aux fichiers partag.<p>

Un serveur NFS est un syst鑝e qui partage un ou plusieurs r閜ertoire, tandis qu'un client NFS est un syst鑝e qui monte un ou plusieurs r閜ertoire d'un serveur.  Un h魌e peut autant 阾re client que serveur NFS d'un autre h魌e.<p>

Un serveur contr鬺e quels clients peut monter un r閜ertoire partag en v閞ifiant l'adresse IP du client avec la liste des h魌es autoris pour le r閜ertoire demand.  Le serveur peu aussi partag en lecture seule ou d閟igner certains clients en lecture seulement.<p>

Contrairement aux autre syst鑝e de fichiers, un client NFS ne n閏essite pas d'ouverture de session au serveur pour monter un r閜ertoire partag.  Le serveur fait confiant au client et authentifie les usagers en leurs donnant un num閞o lors de l'acc鑣 au fichier partag.  Ainsi, vous pouvez allouer seulement certain h魌e client que vous faites confiance pour monter un r閜ertoire partag.<p>

<hr>
  07070100029e9b000081a40000000000000002000000013ac0388700000445000000200000000000000000000000000000001d00000003reloc/dfsadmin/help/nfs.html  <h3>Introduction to NFS</h3>

NFS is the standard file-sharing protocol used by Unix systems. NFS allows
one system to export a directory across the network to one or more other
hosts, allowing users and programs on those hosts to access exported files
as though they were local. <p>

An NFS server is a system which exports one or more directories, while an NFS
client is a system that mounts one or more directories from a server. A
host can be both an NFS server and a client of other servers. <p>

A server controls which clients can mount an exported directory by checking
the IP address of the client against a list of allowed hosts for the
requested directory. The server can also designate an export read-only,
or read-only for certain clients. <p>

Unlike other network filesystems, an NFS client does not have to login to
the server when mounting an exported directory. The server trusts the client
to authenticate users and provide the ID of the current user when accessing
exported files.  Thus you should only allow client hosts that you trust to
mount exported directories. <p>

   07070100029e9c000081a40000000000000002000000013ac0388700000509000000200000000000000000000000000000002000000003reloc/dfsadmin/help/nfs.pl.html   <h3>Wprowadzenie do NFS-u</h3>

NFS jest standardowym protoko砮m wsp蟪dzielenia plik體 wykorzystywanym przez
systemy uniksowe. Dowolny system mo縠 za po秗ednictwem NFS-u udost阷ni poprzez
sie pewien katalog dla jednego lub wi阠ej host體, pozwalaj眂 u縴tkownikom
oraz programom dzia砤j眂ym na tych hostach na dost阷 do udost阷nionych plik體
tak, jakby by硑 to pliki lokalne. <p>

Serwerem NFS-u jest system udost阷niaj眂y jeden lub wi阠ej katalog體, za
klientem NFS-u jest system, kt髍y montuje jeden lub wi阠ej katalog體
z&nbsp;serwera. Ka縟y host mo縠 by jednocze秐ie serwerem NFS-u i&nbsp;klientem
innych serwer體.
<p>

Serwer okre秎a, kt髍e stacje klienckie mog zamontowa udost阷niony katalog
poprzez por體nanie ich adres體 IP z&nbsp;list host體 dopuszczonych do 勘danego
katalogu. Serwer mo縠 r體nie okre秎i zas骲 jako tylko do odczytu lub tylko do
odczytu dla pewnych stacji klienckich. <p>

W odr罂nieniu od innych sieciowych system體 plik體, klienci NFS-u nie musz
logowa si do serwera podczas montowania udost阷nionego katalogu. Serwer ufa,
縠 stacje klienckie same autoryzuj u縴tkownik體 dostarczaj眂 numer ID
bie勘cego u縴tkownika podczas dost阷u do plik體. Wobec tego powiniene
pozwala na montowanie udost阷nianych zasob體 jedynie zaufanym stacjom
klienckim. <p>
   07070100029e9d000081a40000000000000002000000013ac0388700000477000000200000000000000000000000000000002000000003reloc/dfsadmin/help/nfs.sv.html   <h3>Introduktion till NFS</h3>

NFS 鋜 standardprotokollet f鰎 fildelning i Unix-system. Med NFS kan
ett system exportera en katalog 鰒er n鋞verket till en eller flera datorer,
s att anv鋘dare och program p dessa datorer kan komma 錿 filer som om
de fanns p de lokala datorerna.

<p>En NFS-server 鋜 ett system som exporterar en eller flera kataloger
och en NFS-klient 鋜 ett system som monterar en eller flera kataloger
fr錸 en server. Samma dator kan vara b錮e NFS-server och klient.

<p>Servern best鋗mer om en klient f錼 montera en exporterad katalog
genom att kontrollera IP-adressen f鰎 klienten mot en lista 鰒er
datorer som till錿s montera katalogen i fr錱a. Servern kan ocks g鰎a
s att en katalog exporteras med enbart l鋝r鋞tigheter, f鰎 alla klienter
eller vissa, namngivna.

<p>NFS-klienter beh鰒er, till skillnad fr錸 andra filsystem 鰒er n鋞verk,
inte logga in p servern d en exporterad katalog ska monteras. Servern
litar p att klienten har kontrollerat anv鋘darens identitet och att denna
identitet bifogas f鰎fr錱ningar. D鋜f鰎 kan det vara dumt att till錿a
montering fr錸 klienter som du inte fullst鋘digt litar p.

 07070100029e9e000081a40000000000000002000000013ac03887000002a1000000200000000000000000000000000000002800000003reloc/dfsadmin/help/nfs.zh_TW.Big5.html   <h3>NFS 虏ざ</h3>

NFS 琌 Unix ╰参┮ㄏノ夹非郎だㄉ硄癟﹚. NFS す砛╰参盢ㄤヘ魁硓筁呼隔だㄉ倒ㄤ诀, す砛ㄤ诀ㄏノ┪祘Α砆蹲郎, 粄赣郎琌セ狠╰参.
 <p>

 NFS 狝竟琌盢┪ヘ魁蹲╰参, NFS め狠玥琌眖狝竟本更┪ヘ魁╰参. 诀琌 NFS 狝竟籔ㄤ狝竟め狠. <p>

狝竟竒パ浪琩め狠 IP 竚琌い, ∕﹚赣め狠琌本更蹲ヘ魁. 狝竟匡拒斑弄よΑ┪弄糶よΑ蹲倒疭﹚め狠. <p>

ぃ钩ㄤ呼隔郎╰参, NFS め狠本更ヘ魁, ぃ惠璶祅狝竟い. 狝竟盢獺ヴめ狠╰参ㄏノ蹲ヘ魁.┮眤莱赣盢ヘ魁蹲倒獺ヴ╰参. <p>

   07070100029e9f000081a40000000000000002000000013ac03887000000e1000000200000000000000000000000000000002300000003reloc/dfsadmin/help/public.es.html    <header>緾ompartici髇 WebNFS?</header>

Si se activa esta opci髇, esta compartici髇 ser puesta como disponible
para los clientes WebNFS. S髄o una compartici髇 por servidor puede ser
designada como compartici髇 WebNFS.
<hr>

   07070100029ea0000081a40000000000000002000000013ac03887000000ae000000200000000000000000000000000000002300000003reloc/dfsadmin/help/public.fr.html    <header>Partage NFS?</header>

Si cette option est choisie, ce partage va 阾re disponible aux clients WebNFS.  Seul un partage par serveur peut 阾re d閟ign WebNFS.
<hr>
  07070100029ea1000081a40000000000000002000000013ac03887000000b0000000200000000000000000000000000000002000000003reloc/dfsadmin/help/public.html   <header>WebNFS share?</header>

If this option is set, this share will be made available to WebNFS clients.
Only one share per server can be designated the WebNFS share.
<hr>

07070100029ea2000081a40000000000000002000000013ac03887000000c6000000200000000000000000000000000000002300000003reloc/dfsadmin/help/public.pl.html    <header>Zas骲 WebNFS-u?</header>

Je秎i zaznaczono t opcj, niniejszy zas骲 b阣zie dost阷ny dla klient體
WebNFS-u. Tylko jeden z&nbsp;zasob體 serwera mo縠 by wyznaczony jako zas骲
WebNFS-u.
<hr>

  07070100029ea3000081a40000000000000002000000013ac03887000000ad000000200000000000000000000000000000002300000003reloc/dfsadmin/help/public.sv.html    <header>WebNFS-resurs?</header>

Om du v鋖jer "ja", kommer denna resurs att g鰎as tillg鋘glig f鰎
WebNFS-klienter. Endast en resurs per server kan vara WebNFS-resurs.
<hr>

   07070100029eaa000081a40000000000000002000000013ac0388700000084000000200000000000000000000000000000002b00000003reloc/dfsadmin/help/public.zh_TW.Big5.html    <header>琌 WebNFS だㄉ?</header>

狦砞﹚硂匡兜, 硂だㄉ盢穦 WebNFS め狠. –狝竟Τ WebNFS だㄉ.
<hr>

07070100029eb6000081a40000000000000002000000013ac03887000006dc000000200000000000000000000000000000001f00000003reloc/dfsadmin/help/ro.es.html    <header>Acceso de S髄o-Lectura</header>

蓅te determina qu m醧uinas tienen acceso de s髄o-lectura a esta compartici髇.
Hay tres elecciones para esta opci髇:
<ul>
<li><b>Ninguna</b><br>
    Ninguna m醧uina tiene acceso de s髄o-lectura.
<li><b>Todas las m醧uinas</b><br>
    Cualquier m醧uina puede montar esta compartici髇 como de s髄o-lectura.
    Si est醩 conectado a Internet, esto quiere decir que cualquiera a nivel
    mundial puede leer archivos de este directorio exportado.
<li><b>M醧uinas listadas</b><br>
<if $gconfig{'os_version'} < 7>
    Las m醧uinas o direcciones IP listadas debajo pueden montar esta
    compartici髇 como de s髄o-lectura.
<else>
    Las m醧uinas que coincidan con las listadas debajo pueden montar esta
    compartici髇 como de s髄o-lectura. Las m醧uinas pueden ser especificadas
    de la siguiente manera:<p>
	<dl>
	<dt><b>Nombre de m醧uina o direcci髇 IP</b> (como <i>ftp.foo.com</i> o <i>1.2.3.4</i>)
	<dd>Que coincida la m醧uina del mismo nombre o direcci髇
	<dt><b>Grupo de Red</b> (como <i>ingenier韆</i>)
	<dd>Que coincida cualquier m醧uina que sea miembro del grupo de red
	<dt><b>Dominio DNS</b> (como <i>.foo.com</i>)
	<dd>Que coincida cualquier m醧uina del dominio
	<dt><b>Red</b> (como <i>@10.254.1</i>)
	<dd>Que coincida cualquier m醧uina de la red
	<dt><b>Red/m醩cara de red</b> (como <i>@10.254.1/24</i>)
	<dd>Que coincida cualquier m醧uina de la red
	</dl><p>
    Adem醩, cualquiera de las anotaciones de arriba puede llevar el
    prefijo <i>-</i>, queriendo esto decir que la m醧uina, grupo de red,
    dominio o red <b>no</b> tiene permisos para montar esta compartici髇.
    Esto puede ser 鷗il si desea permitir el acceso a un conjunto de m醧uinas
    pero deneg醨selo a un miembro.
</if>
</ul>
<hr>
07070100029eb7000081a40000000000000002000000013ac03887000005d1000000200000000000000000000000000000001f00000003reloc/dfsadmin/help/ro.fr.html    <header>Acc鑣 Lecture Seule</header>

Ceci d閠ermine quels h魌es  l'acc鑣 en lecture seule sur ce partage.  Trois choix vous sont offert :
<ul>
<li><b>Aucun</b><br>
    Aucun h魌e ne peut avoir l'acc鑣 en lecture.
<li><b>Tous les h魌es</b><br>
    Tous les h魌es peuvent monter ce partage en lecture.  Si vous 阾es connect  Internet, ceci veut dire que n'importe qui dans le monde peut lire les fichiers du r閜ertoire export.
<li><b>H魌es List閟</b><br>
<if $gconfig{'os_version'} < 7>
    Les h魌es list閟 ci-dessous peuvent monter ce partage en lecture seulement, les h魌es peuvent 阾re sp閏ifier de cette fa鏾n :<p>
	<dl>
	<dt><b>Nom d'h魌e ou adresse IP</b> (comme <i>ftp.foo.com</i> ou <i>1.2.3.4</i>)
	<dd>Correspond aux h魌es avec le nom ou l'adresse
	<dt><b>Groupe r閟eau</b> (comme <i>enginering</i>)
	<dd>Correspond  tout h魌e qui sont membre de ce groupe r閟eau
	<dt><b>Nom de domaine</b> (comme <i>.foo.com</i>)
	<dd>Correspond  tout h魌e dans ce domaine
	<dt><b>R閟eau</b> (comme <i>@10.254.1</i>)
	<dd>Correspond de tout h魌e dans ce r閟eau
	<dt><b>R閟eau/masque de sous-r閟eau</b> (comme <i>@10.254.1/24</i>)
	<dd>Correspond  tous h魌es dans ce r閟eau
	</dl><p>
    De plus, toutes les notations ci-dessus peuvent commencer par un <i>-</i>, ce qui signifie que l'h魌e, domaine ou r閟eau n'est pas autoris  monter ce partage.  Ceci peut 阾re utile pour accepter l'acc鑣  une s閞ie d'h魌e tout en le refusant  un membre.
</if>
</ul>
<hr>
   07070100029eb9000081a40000000000000002000000013ac03887000006bb000000200000000000000000000000000000001f00000003reloc/dfsadmin/help/ro.pl.html    <header>Dost阷 tylko do odczytu</header>

Okre秎a, kt髍e hosty maj uzyskiwa dost阷 do tego zasobu w&nbsp;trybie
tylko do odczytu. Mo縧iwe s trzy ustawienia dla tej opcji&nbsp;: 
<ul>
<li><b>痑den</b><br>
    痑den host nie ma dost阷u w&nbsp;trybie tylko do odczytu.
<li><b>Wszystkie hosty</b><br>
    Dowolny host mo縠 zamontowa ten zas骲 w&nbsp;trybie tylko do odczytu
    Je秎i jeste pod潮czony do Internetu, oznacza to, 縠 ktokolwiek
    z&nbsp;dowolnego miejsca na 秝iecie mo縠 czyta pliki 
    w&nbsp;udost阷nionym katalogu.
<li><b>Wymienione hosty</b><br>
<if $gconfig{'os_version'} < 7>
    Z&nbsp;wymienionych poni縠j host體 i&nbsp;adres體 IP mo縩a zamontowa
    ten zas骲 w&nbsp;trybie tylko do odczytu.
<else>
    Hosty spe硁iaj眂e poni縮ze warunki mog montowa ten zas骲
    w&nbsp;trybie tylko do odczytu. Mo縩a je poda w&nbsp;postaci&nbsp;: <p>
	<dl>
	<dt><b>Nazwy hosta lub adresu IP</b> (np. <i>ftp.foo.com</i> lub 
            <i>1.2.3.4</i>)
	<dd>Spe硁ia go host o&nbsp;podanej nazwie lub adresie IP
	<dt><b>Grupy sieciowej</b> (np. <i>inzynieria</i>)
	<dd>Spe硁ia go dowolny host b阣眂y cz硂nkiem grupy sieciowej
	<dt><b>Domeny DNS-u</b> (np. <i>.foo.com</i>)
	<dd>Spe硁ia go dowolny host w&nbsp;domenie
	<dt><b>Sieci</b> (np. <i>@10.254.1</i>)
	<dd>Spe硁ia go dowolny host w&nbsp;sieci
	<dt><b>Sieci z&nbsp;mask</b> (np. <i>@10.254.1/24</i>)
	<dd>Spe硁ia go dowolny host w&nbsp;sieci
	</dl><p>
    Dodatkowo, dowoln z&nbsp;powy縮zych notacji mo縩a poprzedzi <i>-</i>,
    co oznacza 縠 host, grupa sieciowa, domena lub sie <b>nie</b> mo縠
    montowa tego zasobu. Mo縠 to by przydatne do umo縧iwienia dost阷u dla
    zbioru host體 z&nbsp;wy潮czeniem jednego jego cz硂nka.
</if>
</ul>
<hr>
 07070100029eba000081a40000000000000002000000013ac0388700000665000000200000000000000000000000000000001f00000003reloc/dfsadmin/help/ro.sv.html    <header>Endast l鋝r鋞tigheter</header>

H鋜 anger du de datorer som endast har l鋝r鋞tigheter f鰎 denna resurs.
Det finns tre alternativ:
<ul>
<li><b>Ingen</b>
    <br>Ingen dator har endast l鋝r鋞tigheter. (Det kan fortfarande finnas de som har l鋝- och skrivr鋞tigheter.)
<li><b>Alla</b>
    <br>Alla datorer f錼 montera denna resurs med l鋝r鋞tigheter. Om du
    har Internet-uppkoppling betyder detta att alla p Internet kan l鋝a
    filerna i den exporterade katalogen.
<li><b>Angivna datorer</b>
<if $gconfig{'os_version'} < 7>
    <br>Datorer (namn eller IP-adresser) listade nedan f錼 montera denna
    resurs med l鋝r鋞tigheter.
<else>
    <br>Datorer som st鋗mer 鰒erens med vad som listats nedan f錼 montera
    denna resurs med l鋝r鋞tigheter. Du kan ange datorer p f鰈jande s鋞t:
    <p>
	<dl>
	<dt><b>Datornamn eller IP-adress</b> (t ex <i>ftp.foo.com</i> eller <i>1.2.3.4</i>)
	<dd>Matchar datorer med angivet namn eller IP-nummer
	<dt><b>N鋞verksgrupp</b> (t ex <i>administration</i>)
	<dd>Matchar alla datorer i n鋞verksgruppen
	<dt><b>DNS-dom鋘</b> (t ex <i>.foo.com</i>)
	<dd>Matchar alla datorer i dom鋘en
	<dt><b>N鋞verk</b> (t ex <i>@10.254.1</i>)
	<dd>Matchar alla datorer p n鋞verket
	<dt><b>N鋞verk/n鋞mask</b> (t ex <i>@10.254.1/24</i>)
	<dd>Matchar alla datorer p n鋞verket
	</dl>
    <p>Dessutom kan du framf鰎 varje datorbest鋗ning som anges ovan skriva
    ett <i>-</i>, som betyder att datorn, n鋞verksgruppen, dom鋘en eller
    n鋞verket <b>inte</b> f錼 montera denna resurs. Detta 鋜 anv鋘dbart
    om du vill till錿a montering fr錸 en grupp datorer, men utesluta en
    viss dator.
</if>
</ul>
<hr>
   07070100029ebb000081a40000000000000002000000013ac038870000045c000000200000000000000000000000000000002700000003reloc/dfsadmin/help/ro.zh_TW.Big5.html    <header>斑弄</header>

硂∕﹚ㄇ诀斑弄硂だㄉ. 硂娩Τ匡拒倒硂匡兜:
<ul>
<li><b>礚</b><br>
    ⊿Τ诀斑弄.
<li><b>场诀</b><br>
    ヴ诀常斑弄よΑ本更硂だㄉ. 狦眤Τ硈钡呼悔呼隔, 硂ボヴ常弄硂ヘ魁郎.
<li><b>诀</b><br>
<if $gconfig{'os_version'} < 7>
    硂い诀┪ IP 斑弄よΑ本更硂だㄉ.
<else>
    才硂い诀よΑ本更硂だㄉ. 诀ノよΑ﹚:<p>
	<dl>
	<dt><b>诀嘿┪ IP </b> (ㄒ <i>ftp.foo.com</i> ┪ <i>1.2.3.4</i>)
	<dd>才Ч倒ぉ嘿┪诀
	<dt><b>呼隔竤舱</b> (ㄒ <i>engineering</i>)
	<dd>才妮硂呼隔竤舱ヴ诀
	<dt><b>DNS 呼办</b> (ㄒ <i>.foo.com</i>)
	<dd>才硂呼办いヴ诀
	<dt><b>呼隔</b> (ㄒ <i>@10.254.1</i>)
	<dd>才硂呼隔いヴ诀
	<dt><b>呼隔/呼隔綛竛</b> (ㄒ <i>@10.254.1/24</i>)
	<dd>才硂呼隔いヴ诀
	</dl><p>
    , ヴ夹癘常Τ <i>-</i> 玡竚じ, 硂ボ硂ㄇ诀, 呼隔竤舱, 呼办┪呼隔<b>ぃ</b>砆す砛. 硂度┶荡俱舱竤舱いㄤいΘ盢穦Τノ.
</if>
</ul>
<hr>
07070100029ebc000081a40000000000000002000000013ac0388700000544000000200000000000000000000000000000002100000003reloc/dfsadmin/help/root.es.html  <header>Acceso de Root</header>

Controla qu m醧uinas ser醤 tratadas como si el usuario que entra fuera root.
Si un cliente no est en la lista, incluso si puede montar la compartici髇
como de s髄o-lectura o de lectura-escritura, el servidor NFS tratar al
usuario root del cliente como si fuera un <a href=anon.es>Usuario An髇imo</a>.
<if $gconfig{'os_version'} == 7>
    <br>Las m醧uinas puede ser especificadas de la siguiente manera:<p>
	<dl>
	<dt><b>Nombre de m醧uina o direcci髇 IP</b> (como <i>ftp.foo.com</i> o <i>1.2.3.4</i>)
	<dd>Que coincida la m醧uina del mismo nombre o direcci髇
	<dt><b>Grupo de Red</b> (como <i>ingenier韆</i>)
	<dd>Que coincida cualquier m醧uina que sea miembro del grupo de red
	<dt><b>Dominio DNS</b> (como <i>.foo.com</i>)
	<dd>Que coincida cualquier m醧uina del dominio
	<dt><b>Red</b> (como <i>@10.254.1</i>)
	<dd>Que coincida cualquier m醧uina de la red
	<dt><b>Red/m醩cara de red</b> (como <i>@10.254.1/24</i>)
	<dd>Que coincida cualquier m醧uina de la red
	</dl><p>
    Adem醩, cualquiera de las anotaciones de arriba puede llevar el
    prefijo <i>-</i>, queriendo esto decir que la m醧uina, grupo de red,
    dominio o red <b>no</b> tiene permisos para montar esta compartici髇.
    Esto puede ser 鷗il si desea permitir el acceso a un conjunto de m醧uinas
    pero deneg醨selo a un miembro.
</if>
<hr>

07070100029ebd000081a40000000000000002000000013ac0388700000482000000200000000000000000000000000000002100000003reloc/dfsadmin/help/root.fr.html  <header>Acc鑣 'Root'</header>

Permet de d閒inir quels h魌es le serveur va respecter l'usager root.  Si le client n'est pas dans la liste, il sera consid閞 comme un 
<a href=anon>Usager Anonyme</a>.
<if $gconfig{'os_version'} == 7>
    <br>Les h魌es peuvent 阾re sp閏ifi閟 des fa鏾ns suivantes :<p>
	<dl>
	<dt><b>Nom d'h魌e ou adresse IP</b> (comme <i>ftp.foo.com</i> ou <i>1.2.3.4</i>)
	<dd>Correspond aux h魌es avec le nom ou l'adresse
	<dt><b>Groupe r閟eau</b> (comme <i>enginering</i>)
	<dd>Correspond  tout h魌e qui sont membre de ce groupe r閟eau
	<dt><b>Nom de domaine</b> (comme <i>.foo.com</i>)
	<dd>Correspond  tout h魌e dans ce domaine
	<dt><b>R閟eau</b> (comme <i>@10.254.1</i>)
	<dd>Correspond de tout h魌e dans ce r閟eau
	<dt><b>R閟eau/masque de sous-r閟eau</b> (comme <i>@10.254.1/24</i>)
	<dd>Correspond  tous h魌es dans ce r閟eau
	</dl><p>
    De plus, toutes les notations ci-dessus peuvent commencer par un <i>-</i>, ce qui signifie que l'h魌e, domaine ou r閟eau n'est pas autoris  monter ce partage.  Ceci peut 阾re utile pour accepter l'acc鑣  une s閞ie d'h魌e tout en le refusant  un membre.
</if>
<hr>
  07070100029ebe000081a40000000000000002000000013ac0388700000475000000200000000000000000000000000000001e00000003reloc/dfsadmin/help/root.html <header>Root Access</header>

Controls which hosts the server will respect the root user on. If a client
is not on the list, even if it can mount the share read-only or read-write
the NFS server will treat the root user on client as the
<a href=anon>Anonymous User</a>.
<if $gconfig{'os_version'} == 7>
    <br>Hosts can be specified in the following ways :<p>
	<dl>
	<dt><b>Hostname or IP address</b> (like <i>ftp.foo.com</i> or <i>1.2.3.4</i>)
	<dd>Matches the host with the given name or address
	<dt><b>Netgroup</b> (like <i>engineering</i>)
	<dd>Matches any host that is a member of the netgroup
	<dt><b>DNS domain</b> (like <i>.foo.com</i>)
	<dd>Matches any host in the domain
	<dt><b>Network</b> (like <i>@10.254.1</i>)
	<dd>Matches any host in the network
	<dt><b>Network/netmask</b> (like <i>@10.254.1/24</i>)
	<dd>Matches any host in the network
	</dl><p>
    In addition, any of the above notations can be prefixed by a <i>-</i>,
    meaning that the host, netgroup, domain or network is <b>not</b> allowed
    to mount this share. This can be useful for allowing access by a set
    of hosts, but denying one member.
</if>
<hr>

   07070100029ebf000081a40000000000000002000000013ac0388700000536000000200000000000000000000000000000002100000003reloc/dfsadmin/help/root.pl.html  <header>Dost阷 dla root-a</header>

Okre秎a, dla kt髍ych host體 serwer b阣zie honorowa przwa root-a na nich
Je秎i stacji klienckiej nie ma na li禼ie, to nawet w&nbsp;sytuacji, gdy ma
ona prawo montowa zas骲 w&nbsp;trybie tylko do odczytu lub do odczytu
i&nbsp;zapisu, serwer NFS-u b阣zie traktowa u縴tkownika <tt>root</tt> na
tej stacji jako <a href=anon>u縴tkownika anonimowego</a>.
<if $gconfig{'os_version'} == 7>
    <br>Hosty mo縩a okre秎i na nast阷uj眂e sposoby&nbsp;: <p>
	<dl>
	<dt><b>Nazwy hosta lub adresu IP</b> (np. <i>ftp.foo.com</i> lub 
            <i>1.2.3.4</i>)
	<dd>Spe硁ia go host o&nbsp;podanej nazwie lub adresie IP
	<dt><b>Grupy sieciowej</b> (np. <i>inzynieria</i>)
	<dd>Spe硁ia go dowolny host b阣眂y cz硂nkiem grupy sieciowej
	<dt><b>Domeny DNS-u</b> (np. <i>.foo.com</i>)
	<dd>Spe硁ia go dowolny host w&nbsp;domenie
	<dt><b>Sieci</b> (np. <i>@10.254.1</i>)
	<dd>Spe硁ia go dowolny host w&nbsp;sieci
	<dt><b>Sieci z&nbsp;mask</b> (np. <i>@10.254.1/24</i>)
	<dd>Spe硁ia go dowolny host w&nbsp;sieci
	</dl><p>
    Dodatkowo, dowoln z&nbsp;powy縮zych notacji mo縩a poprzedzi <i>-</i>,
    co oznacza 縠 host, grupa sieciowa, domena lub sie <b>nie</b> mo縠
    montowa tego zasobu. Mo縠 to by przydatne do umo縧iwienia dost阷u dla
    zbioru host體 z&nbsp;wy潮czeniem jednego jego cz硂nka.
</if>
<hr>

  07070100029ec0000081a40000000000000002000000013ac0388700000494000000200000000000000000000000000000002100000003reloc/dfsadmin/help/root.sv.html  <header>Root-tillg錸g</header>

H鋜 anger du de datorer som servern ska acceptera root-anv鋘daren f鰎.
Om en klient inte finns p denna listan, kommer NFS-servern att behandla
root som en <a href=anon>anonym anv鋘dare</a> - 鋠en om klienten f錼
montera resursen.

<if $gconfig{'os_version'} == 7>
    <br>Du kan ange datorer p f鰈jande s鋞t:
	<dl>
	<dt><b>Datornamn eller IP-adress</b> (t ex <i>ftp.foo.com</i> eller <i>1.2.3.4</i>)
	<dd>Matchar datorer med angivet namn eller IP-nummer
	<dt><b>N鋞verksgrupp</b> (t ex <i>administration</i>)
	<dd>Matchar alla datorer i n鋞verksgruppen
	<dt><b>DNS-dom鋘</b> (t ex <i>.foo.com</i>)
	<dd>Matchar alla datorer i dom鋘en
	<dt><b>N鋞verk</b> (t ex <i>@10.254.1</i>)
	<dd>Matchar alla datorer p n鋞verket
	<dt><b>N鋞verk/n鋞mask</b> (t ex <i>@10.254.1/24</i>)
	<dd>Matchar alla datorer p n鋞verket
	</dl>
    <p>Dessutom kan du framf鰎 varje datorbest鋗ning som anges ovan skriva
    ett <i>-</i>, som betyder att datorn, n鋞verksgruppen, dom鋘en eller
    n鋞verket <b>inte</b> f錼 montera denna resurs. Detta 鋜 anv鋘dbart
    om du vill till錿a montering fr錸 en grupp datorer, men utesluta en
    viss dator.
</if>
<hr>

07070100029ec1000081a40000000000000002000000013ac0388700000374000000200000000000000000000000000000002900000003reloc/dfsadmin/help/root.zh_TW.Big5.html  <header>Root </header>

北ㄇ诀┪狝竟ノ root 舦だㄉ. 狦め狠ぃい, 羇ㄏウノ斑弄┪弄よΑ本更硂だㄉ, NFS 狝竟盢穦р root ㄏノ讽琌<a href=anon>拔ㄏノ</a>.
<if $gconfig{'os_version'} == 7>
    <br>诀ノよΑ﹚:<p>
	<dl>
	<dt><b>诀嘿┪ IP </b> (ㄒ <i>ftp.foo.com</i> ┪ <i>1.2.3.4</i>)
	<dd>才Ч倒ぉ嘿┪诀
	<dt><b>呼隔竤舱</b> (ㄒ <i>engineering</i>)
	<dd>才妮硂呼隔竤舱ヴ诀
	<dt><b>DNS 呼办</b> (ㄒ <i>.foo.com</i>)
	<dd>才硂呼办いヴ诀
	<dt><b>呼隔</b> (ㄒ <i>@10.254.1</i>)
	<dd>才硂呼隔いヴ诀
	<dt><b>呼隔/呼隔綛竛</b> (ㄒ <i>@10.254.1/24</i>)
	<dd>才硂呼隔いヴ诀
	</dl><p>
    , ヴ夹癘常Τ <i>-</i> 玡竚じ, 硂ボ硂ㄇ诀, 呼隔竤舱, 呼办┪呼隔<b>ぃ</b>砆す砛. 硂度┶荡俱舱竤舱いㄤいΘ盢穦Τノ.
</if>
<hr>

07070100029ec2000081a40000000000000002000000013ac03887000006e6000000200000000000000000000000000000001f00000003reloc/dfsadmin/help/rw.es.html    <header>Acceso de Lectura-Escritura</header>

Esto determina qu m醧uinas tienen acceso de lectura-escritura a esta
compartici髇.
Hay tres elecciones para esta opci髇:
<ul>
<li><b>Ninguna</b><br>
    Ninguna m醧uina tiene acceso de s髄o-lectura.
<li><b>Todas las m醧uinas</b><br>
    Cualquier m醧uina puede montar esta compartici髇 como de s髄o-lectura.
    Si est醩 conectado a Internet, esto quiere decir que cualquiera a nivel
    mundial puede leer archivos de este directorio exportado.
<li><b>M醧uinas listadas</b><br>
<if $gconfig{'os_version'} < 7>
    Las m醧uinas o direcciones IP listadas debajo pueden montar esta
    compartici髇 como de s髄o-lectura.
<else>
    Las m醧uinas que coincidan con las listadas debajo pueden montar esta
    compartici髇 como de s髄o-lectura. Las m醧uinas pueden ser especificadas
    de la siguiente manera:<p>
	<dl>
	<dt><b>Nombre de m醧uina o direcci髇 IP</b> (como <i>ftp.foo.com</i> o <i>1.2.3.4</i>)
	<dd>Que coincida la m醧uina del mismo nombre o direcci髇
	<dt><b>Grupo de Red</b> (como <i>ingenier韆</i>)
	<dd>Que coincida cualquier m醧uina que sea miembro del grupo de red
	<dt><b>Dominio DNS</b> (como <i>.foo.com</i>)
	<dd>Que coincida cualquier m醧uina del dominio
	<dt><b>Red</b> (como <i>@10.254.1</i>)
	<dd>Que coincida cualquier m醧uina de la red
	<dt><b>Red/m醩cara de red</b> (como <i>@10.254.1/24</i>)
	<dd>Que coincida cualquier m醧uina de la red
	</dl><p>
    Adem醩, cualquiera de las anotaciones de arriba puede llevar el
    prefijo <i>-</i>, queriendo esto decir que la m醧uina, grupo de red,
    dominio o red <b>no</b> tiene permisos para montar esta compartici髇.
    Esto puede ser 鷗il si desea permitir el acceso a un conjunto de m醧uinas
    pero deneg醨selo a un miembro.
</if>
</ul>
<hr>
  07070100029ec3000081a40000000000000002000000013ac0388700000698000000200000000000000000000000000000001f00000003reloc/dfsadmin/help/rw.fr.html    <header>Acc鑣 en Lecture/蒫riture</header>

Ceci d閠ermine quels h魌es ont l'acc鑣 en lecture/閏riture de ce partage.  Trois choix vous sont offert :
<ul>
<li><b>Aucun</b><br>
    Aucun h魌e ne peut avoir l'acc鑣 en lecture/閏riture.
<li><b>Tous les h魌es</b><br>
    Tous les h魌es peuvent monter ce partage en lecture/閏riture.  Si vous 阾es connect  Internet, cela veut dire que n'importe qui dans le monde peut lire, 閏rire et supprimer des fichiers de ce r閜ertoire partag.  Cette option est  utiliser avec pr閏aution.
<li><b>H魌es list閟</b><br>
<if $gconfig{'os_version'} < 7>
    Les h魌es ou adresses IP list ci-dessous peuvent monter ce partage en lecture/閏riture.
<else>
    Les h魌es list閟 ci-dessous peuvent monter ce partage en 閏riture/lecture, les h魌es peuvent 阾re sp閏ifier de cette fa鏾n :<p>
	<dl>
	<dt><b>Nom d'h魌e ou adresse IP</b> (comme <i>ftp.foo.com</i> ou <i>1.2.3.4</i>)
	<dd>Correspond aux h魌es avec le nom ou l'adresse
	<dt><b>Groupe r閟eau</b> (comme <i>enginering</i>)
	<dd>Correspond  tout h魌e qui sont membre de ce groupe r閟eau
	<dt><b>Nom de domaine</b> (comme <i>.foo.com</i>)
	<dd>Correspond  tout h魌e dans ce domaine
	<dt><b>R閟eau</b> (comme <i>@10.254.1</i>)
	<dd>Correspond de tout h魌e dans ce r閟eau
	<dt><b>R閟eau/masque de sous-r閟eau</b> (comme <i>@10.254.1/24</i>)
	<dd>Correspond  tous h魌es dans ce r閟eau
	</dl><p>
    De plus, toutes les notations ci-dessus peuvent commencer par un <i>-</i>, ce qui signifie que l'h魌e, domaine ou r閟eau n'est pas autoris  monter ce partage.  Ceci peut 阾re utile pour accepter l'acc鑣  une s閞ie d'h魌e tout en le refusant  un membre.
</if>
</ul>
<hr>
07070100029ec5000081a40000000000000002000000013ac0388700000738000000200000000000000000000000000000001f00000003reloc/dfsadmin/help/rw.pl.html    <header>Dost阷 do odczytu i&nbsp;zapisu</header>

Okre秎a, kt髍e hosty maj uzyskiwa dost阷 do tego zasobu w&nbsp;trybie
do odczytu i&nbsp;zapisu. Mo縧iwe s trzy ustawienia dla tej opcji&nbsp;:
<ul>
<li><b>痑den</b><br>
    痑den host nie ma dost阷u w&nbsp;trybie do odczytu i&nbsp;zapisu.
<li><b>Wszystkie hosty</b><br>
    Dowolny host mo縠 zamontowa ten zas骲 w&nbsp;trybie do odczytu 
    i&nbsp;zapisu. Je秎i jeste pod潮czony do Internetu, oznacza to, 縠
    ktokolwiek z&nbsp;dowolnego miejsca na 秝iecie mo縠 czyta, zapisywa
    i&nbsp;kasowa pliki w&nbsp;udost阷nionym katalogu. Korzystaj z tej opcji
    z&nbsp;ostro縩o禼i.
<li><b>Wymienione hosty</b><br>
<if $gconfig{'os_version'} < 7>
    Z&nbsp;wymienionych poni縠j host體 i&nbsp;adres體 IP mo縩a zamontowa
    ten zas骲 w&nbsp;trybie do odczytu i&nbsp;zapisu.
<else>
    Hosty spe硁iaj眂e poni縮ze warunki mog montowa ten zas骲
    w&nbsp;trybie do odczytu i&nbsp;zapisu. Mo縩a je poda
    w&nbsp;postaci&nbsp;: <p>
	<dl>
	<dt><b>Nazwy hosta lub adresu IP</b> (np. <i>ftp.foo.com</i> lub 
            <i>1.2.3.4</i>)
	<dd>Spe硁ia go host o&nbsp;podanej nazwie lub adresie IP
	<dt><b>Grupy sieciowej</b> (np. <i>inzynieria</i>)
	<dd>Spe硁ia go dowolny host b阣眂y cz硂nkiem grupy sieciowej
	<dt><b>Domeny DNS-u</b> (np. <i>.foo.com</i>)
	<dd>Spe硁ia go dowolny host w&nbsp;domenie
	<dt><b>Sieci</b> (np. <i>@10.254.1</i>)
	<dd>Spe硁ia go dowolny host w&nbsp;sieci
	<dt><b>Sieci z&nbsp;mask</b> (np. <i>@10.254.1/24</i>)
	<dd>Spe硁ia go dowolny host w&nbsp;sieci
	</dl><p>
    Dodatkowo, dowoln z&nbsp;powy縮zych notacji mo縩a poprzedzi <i>-</i>,
    co oznacza 縠 host, grupa sieciowa, domena lub sie <b>nie</b> mo縠
    montowa tego zasobu. Mo縠 to by przydatne do umo縧iwienia dost阷u dla
    zbioru host體 z&nbsp;wy潮czeniem jednego jego cz硂nka.
</if>
</ul>
<hr>
07070100029ec6000081a40000000000000002000000013ac038870000068c000000200000000000000000000000000000001f00000003reloc/dfsadmin/help/rw.sv.html    <header>L鋝- och skrivr鋞tigheter</header>

H鋜 anger du de datorer som ska ha l鋝- och skrivr鋞tigheter f鰎 denna resurs.
Det finns tre alternativ:

<ul>
<li><b>Ingen</b>
    <br>Ingen dator har l鋝- och skrivr鋞tigheter.
<li><b>Alla</b>
    <br>Alla datorer f錼 montera denna resurs med l鋝- och skrivr鋞tigheter.
    Om du har Internet-uppkoppling betyder detta att alla p Internet kan
    l鋝a, skriva och ta bort filerna i den exporterade katalogen. Var
    f鰎siktig med detta val.
<li><b>Angivna datorer</b>
<if $gconfig{'os_version'} < 7>
    <br>Datorer (namn eller IP-adresser) listade nedan f錼 montera denna
    resurs med l鋝- och skrivr鋞tigheter.
<else>
    <br>Datorer som st鋗mer 鰒erens med vad som listats nedan f錼 montera
    denna resurs med l鋝- och skrivr鋞tigheter. Du kan ange datorer p
    f鰈jande s鋞t:
    <p>
	<dl>
	<dt><b>Datornamn eller IP-adress</b> (t ex <i>ftp.foo.com</i> eller <i>1.2.3.4</i>)
	<dd>Matchar datorer med angivet namn eller IP-adress
	<dt><b>N鋞verksgrupp</b> (t ex <i>administration</i>)
	<dd>Matchar alla datorer i n鋞verksgruppen
	<dt><b>DNS-dom鋘</b> (t ex <i>.foo.com</i>)
	<dd>Matchar alla datorer i dom鋘en
	<dt><b>N鋞verk</b> (t ex <i>@10.254.1</i>)
	<dd>Matchar alla datorer p n鋞verket
	<dt><b>N鋞verk/n鋞mask</b> (t ex <i>@10.254.1/24</i>)
	<dd>Matchar alla datorer p n鋞verket
	</dl>
    <p>Dessutom kan du framf鰎 varje datorbest鋗ning som anges ovan skriva
    ett <i>-</i>, som betyder att datorn, n鋞verksgruppen, dom鋘en eller
    n鋞verket <b>inte</b> f錼 montera denna resurs. Detta 鋜 anv鋘dbart
    om du vill till錿a montering fr錸 en grupp datorer, men utesluta en
    viss dator.
</if>
</ul>
<hr>
07070100029ec7000081a40000000000000002000000013ac038870000042c000000200000000000000000000000000000002700000003reloc/dfsadmin/help/rw.zh_TW.Big5.html    <header>弄糶</header>

硂∕﹚ㄇ诀弄糶硂だㄉ. 硂娩Τ匡拒倒硂匡兜:
<ul>
<li><b>礚</b><br>
    ⊿Τ诀弄糶.
<li><b>场诀</b><br>
    ヴ诀常弄糶硂だㄉ. 狦眤Τ硈钡呼悔呼隔, 硂ボヴ常弄糶硂ヘ魁郎.
<li><b>诀</b><br>
<if $gconfig{'os_version'} < 7>
    硂い诀┪ IP 弄糶硂だㄉ.
<else>
才硂い诀弄糶硂だㄉ. 诀ノよΑ﹚:<p>
	<dl>
	<dt><b>诀嘿┪ IP </b> (ㄒ <i>ftp.foo.com</i> ┪ <i>1.2.3.4</i>)
	<dd>才Ч倒ぉ嘿┪诀
	<dt><b>呼隔竤舱</b> (ㄒ <i>engineering</i>)
	<dd>才妮硂呼隔竤舱ヴ诀
	<dt><b>DNS 呼办</b> (ㄒ <i>.foo.com</i>)
	<dd>才硂呼办いヴ诀
	<dt><b>呼隔</b> (ㄒ <i>@10.254.1</i>)
	<dd>才硂呼隔いヴ诀
	<dt><b>呼隔/呼隔綛竛</b> (ㄒ <i>@10.254.1/24</i>)
	<dd>才硂呼隔いヴ诀
	</dl><p>
    , ヴ夹癘常Τ <i>-</i> 玡竚じ, 硂ボ硂ㄇ诀, 呼隔竤舱, 呼办┪呼隔<b>ぃ</b>砆す砛. 硂度┶荡俱舱竤舱いㄤいΘ盢穦Τノ.
</if>
</ul>
<hr>
07070100029ec9000081a40000000000000002000000013ac03887000001f1000000200000000000000000000000000000002200000003reloc/dfsadmin/help/share.es.html 
Cada compartici髇 tiene un directorio que es el que se exporta, una
descripci髇 para los clientes NFS, tres listas de m醧uinas con niveles
diferentes de acceso a esa compartici髇 y un n鷐ero de otras opciones.<p>

Una compartici髇 puede ser exportada como de s髄o-lectura o de
lectura-escritura a una lista de clientes. Por defecto, el usuario
<tt>root</tt> de los sistemas cliente no es de confianza para el servidor,
a menos que el cliente est tambien en la lista de acceso de root.<p>

<hr>

   07070100029eca000081a40000000000000002000000013ac03887000001bf000000200000000000000000000000000000002200000003reloc/dfsadmin/help/share.fr.html <header>Partage</header>

Chaque partage  un r閜ertoire qui est partag, une description pour les clients NFS, trois niveaux d'acc鑣 de partage et un nombre d'autres options.<p>

Un partage peu 阾re partag en lecture seule ou en lecture/閏riture  une liste de clients.  Par d閒aut, il n'est pas fait confiance  l'usager <tt>root</tt> des syst鑝es client par le serveur,  moins que le client soit dans la liste d'acc鑣 'root'.<p>

<hr>
 07070100029ecb000081a40000000000000002000000013ac0388700000193000000200000000000000000000000000000001f00000003reloc/dfsadmin/help/share.html    
Each share has a directory that is being exported, a description for
NFS clients, three list of hosts with different levels of access to
that share and a number of other options. <p>

A share can be exported read-only or read-write to a list of clients.
By default, the <tt>root</tt> user on client systems is not trusted by the
server, unless the client is on the root access list as well. <p>

<hr>

 07070100029ecc000081a40000000000000002000000013ac03887000001e7000000200000000000000000000000000000002200000003reloc/dfsadmin/help/share.pl.html 
Ka縟y z&nbsp;zasob體 zawiera eksportowany katalog, informacj dla
klient體 NFS-u, trzy listy host體 o&nbsp;r罂nych poziomach dost阷u do
tego zasobu oraz pewn liczb innych opcji. <p>

Zas骲 mo縩a udost阷ni tylko do odczytu lub do odczytu i&nbsp;zapisu
dla klient體 z&nbsp;pewnej listy. Domy秎nie, u縴tkownik <tt>root</tt>
na stacjach klienckich nie jest uwa縜ny przez serwer za wiarygodnego
chyba, 縠 stacja kliencka znajduje si jednocze秐ie na li禼ie dost阷u
dla root-a. <p>

<hr>

 07070100029ed2000081a40000000000000002000000013ac03887000001b9000000200000000000000000000000000000002200000003reloc/dfsadmin/help/share.sv.html 
F鰎 varje resurs finns en katalog som exporteras, en beskrivning f鰎
NFS-klienterna, tre listor 鰒er datorer med olika r鋞tigheter till
denna resurs och ett antal andra inst鋖lningar.

<p>En resurs kan exporteras med l鋝- och skrivr鋞tigheter eller endast
l鋝r鋞tigheter till en upps鋞tning klienter. Normalt litar inte
systemet p <tt>root</tt>-anv鋘dare p klientsystem, om inte klienten
鋠en finns med p root-tillg錸gslistan.

<p><hr>

   07070100029ed5000081a40000000000000002000000013ac0388700000113000000200000000000000000000000000000002a00000003reloc/dfsadmin/help/share.zh_TW.Big5.html 
–だㄉ常璶Τ砆蹲ヘ魁, 倒 NFS め狠弧, 癸ぃ诀丁ぃ单獺ヴ籔闽ㄤ匡兜. <p>

だㄉ蹲Θ斑弄┪弄糶倒いめ狠. 箇砞猵, め狠 <tt>root</tt> ㄏノ琌ぃ砆狝竟┮獺ヴ, 埃獶赣め狠Τ root い. <p>

<hr>

 07070100029ee3000081a40000000000000002000000013ac0388700000095000000200000000000000000000000000000002000000003reloc/dfsadmin/help/sub.es.html   <header>縋ermitir el Montaje de Subdirectorios?</header>

Determina si los clientes NFS pueden montar subdirectorios del
directorio exportado.
<hr>

   07070100029eff000081a40000000000000002000000013ac0388700000092000000200000000000000000000000000000002000000003reloc/dfsadmin/help/sub.fr.html   <header>Permet le Montage de Sous-r閜ertoire?</header>

D閠ermine si le client NFS peut monter un sous-r閜ertoire du r閜ertoire export.
<hr>
  07070100029f31000081a40000000000000002000000013ac0388700000082000000200000000000000000000000000000001d00000003reloc/dfsadmin/help/sub.html  <header>Allow Mounting of Subdirs?</header>

Determines if NFS clients can mount subdirectories of the exported 
directory.
<hr>

  07070100029f3a000081a40000000000000002000000013ac038870000008b000000200000000000000000000000000000002000000003reloc/dfsadmin/help/sub.pl.html   <header>Pozwala na montowanie podkatalog體?</header>

Okre秎a, czy klienci NFS-u mog montowa podkatalogi udost阷nianego
katalogu.
<hr>

 07070100029f53000081a40000000000000002000000013ac0388700000099000000200000000000000000000000000000002000000003reloc/dfsadmin/help/sub.sv.html   <header>Till錿a montering av underkataloger?</header>

Best鋗mer om NFS-klienterna 鋠en f錼 montera underkataloger till den
exporterade katalogen.
<hr>

   07070100029f54000081a40000000000000002000000013ac038870000005b000000200000000000000000000000000000002800000003reloc/dfsadmin/help/sub.zh_TW.Big5.html   <header>琌す砛本更ヘ魁?</header>

∕﹚ NFS め狠琌本更蹲ヘ魁ヘ魁.
<hr>

 07070100029f55000081a40000000000000002000000013ac038870000011b000000200000000000000000000000000000002100000003reloc/dfsadmin/help/suid.es.html  <header>縋ermito hacer Setuid a los Archivos?</header>

Determina si el servidor permitir que los clientes creen programas
con setuid en esta compartici髇. Si est醩 exportando un directorio como
de lectura-escritura a clientes no fiables, esta opci髇 deber韆 ser
puesta a No.
<hr>

 07070100029f56000081a40000000000000002000000013ac0388700000120000000200000000000000000000000000000002100000003reloc/dfsadmin/help/suid.fr.html  <header>Permettre les Fichiers 'setuid'?</header>

D閠ermine si le serveur permet au client de faire un programme 'setuid'  partir de ce partage.  Si vous partag un r閜ertoire en lecture/閏riture  des clients dont il n'est pas fait confiance, cette option devrait 阾re  non.
<hr>
07070100029f57000081a40000000000000002000000013ac03887000000e4000000200000000000000000000000000000001e00000003reloc/dfsadmin/help/suid.html <header>Allow Setuid Files?</header>

Determines if the server will allow clients to create setuid programs
on this share. If you are exporting a directory read-write to untrusted
clients, this option should be set to No.
<hr>

07070100029f58000081a40000000000000002000000013ac0388700000120000000200000000000000000000000000000002100000003reloc/dfsadmin/help/suid.pl.html  <header>Pozwala na pliki setuid-owe?</header>

Okre秎a, czy serwer pozwoli klientom na tworzenie program體 setuid-owych
w&nbsp;ramach tego zasobu. Je秎i katalog jest udost阷niany do odczytu
i&nbsp;zapisu dla niewiarygodnych stacji klienckich, opcja ta powinna by
ustawiona na Nie.
<hr>
07070100029f59000081a40000000000000002000000013ac03887000000fc000000200000000000000000000000000000002100000003reloc/dfsadmin/help/suid.sv.html  <header>Till錿a Setuid-filer?</header>

H鋜 st鋖ler du in om servern ska till錿a klienter att skapa setuid-program
p denna resurs. Om du exporterar kataloger med l鋝- och skrivr鋞tigheter
till klienter som du inte litar p b鰎 du v鋖ja Nej h鋜.
<hr>

07070100029f5a000081a40000000000000002000000013ac03887000000b2000000200000000000000000000000000000002900000003reloc/dfsadmin/help/suid.zh_TW.Big5.html  <header>琌す砛 Setuid 郎?</header>

∕﹚狝竟ㄏす砛め狠硂だㄉミ setuid 祘Α. 狦眤р硂ヘ魁弄糶よΑだㄉぃ獺ヴめ狠, 硂匡兜莱赣砞﹚Θ"".
<hr>

  0707010002b520000041ed0000000000000001000000023ac03bce00000000000000200000000000000000000000000000001600000003reloc/dfsadmin/images 0707010002b521000081a40000000000000002000000013ac03887000000f5000000200000000000000000000000000000001f00000003reloc/dfsadmin/images/icon.gif    GIF89a0 0   櫃櫶烫fff!    ,    0 0  苿彥隧蹿[冝<`	釮
圩:l踰!,灍︺<$d,91賠uM2荞l*扸泳篈(镴駔吰ii3薴汒\撸6鶟#(鯂6ˇx8W7H颧HTt5墿x郔殸5腨定戟`[饫Zk[腙4:∷+猁
,K|jx惶莒\3鹛:@]m}峂崜蜐-.>⺌  ;   0707010002b522000081a40000000000000002000000013ac038870000061d000000200000000000000000000000000000002000000003reloc/dfsadmin/images/share.gif   GIF89a0 0      			


   !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~亖亗倐儍儎剟厖厗唵噰噲垐墘墛妸媼媽寣崓崕帋弿彁悙憫憭拻摀摂敂晻晼枛棗棙槝櫃櫄殮洓洔湝潩潪灋煙煚牋　、ⅱ＃￥いゥウΖЁЖè┅┆鞍北辈膊吵炒创档刀抖贩犯父构购汉换患技浇骄揪靠坷览亮谅侣妹媚哪排牌破乔侨热缮墒适怂颂烫屯臀挝舷闲行蜒岩乙佑釉栽照罩种鬃棕刎儋仝谮圹圮苘葺蒉揶哌哙噜後徕忖沣沅滗邋彐骀珑玷梃殚殛觋腚腱祆眄眍铑镲镳痧耨耱蝌篌篝趑貂貊鲻鼢鼬!Made with GIMP ,    0 0   	H盃羶*\劝∶#J淗裛綂晔w1鉊g疣b絒螠!m澐oK"琖/*f訕ツ閶OG<豵b趽諀	q@	<簻m-[璣7<,8擼>{5E嶓"8炀唁h6煶宺/f浢増-m濁u4i瓽峛Wq霧潬慉@
7恶⒍m躡孽#翘E):
6,蝄5婦x853L污磇侔 	mr|K!矛Y畖輮R檍謒6f力燖8肂$ X班亐Y猏!嵮4g勱櫼Z3f眷
{' 9SH `I&è2. 兤3蚿I=0笏.堤F` )9$	奝@
+嘲'唗.	 猟DRt 恖鈊勏砺/?蘼
+甽矆e酿羾|D凟鹉"沝騞嵁<&+1偛 蜆聡H魩_ @搷8I&瑎B+	*灅`
 u!FH!A4B%iB	v炋忍丗
6|M?H10I%媥	!7@+唣Qe#9c2F8b"  / AD
HD%PR酪	"1+	繝迸e^4转旳囗線)l3恲態!<Pe {TG蹳&懥鋁fHa認蘌 HP嬈	橻1蛏1ｒ,缝蛩0超P&4譴笸8绗sT绦l
鯗上@#$4袳$t澎词8?泶蜹Wm跽X雔F諹涐踝`-蹲=鲑b'趌讽鯜 ;   07070100028772000081e40000000000000002000000013ac0388700000873000000200000000000000000000000000000001900000003reloc/dfsadmin/index.cgi  #!/usr/local/bin/perl
# index.cgi

require './dfs-lib.pl';
&header("NFS Shares", "", "intro", 1, 1);
print "<hr>\n";
%access = &get_module_acl();

@shlist = &list_shares();
if (@shlist && $access{'icons'}) {
	# Display shares as icons
	foreach $s (@shlist) {
		next if ($s->{'type'} ne 'nfs');
		push(@icons, "images/share.gif");
		push(@titles, $s->{'dir'});
		push(@links, "edit_share.cgi?$s->{'index'}");
		}
	&icons_table(\@links, \@titles, \@icons);
	}
elsif (@shlist) {
	# Display shares as table
	print "<table border width=100%>\n";
	print "<tr $tb><td width=20%><b>Directory</b></td> ",
	      "<td><b>Clients</b></td> </tr>\n";
	foreach $s (@shlist) {
		next if ($s->{'type'} ne 'nfs');
		&parse_options($s->{'opts'});
		print "<tr $cb>\n";
		if (defined($options{'public'})) {
			print "<td><b><a href=\"edit_share.cgi?$s->{'index'}\">$s->{'dir'}</a></b></td>\n";
			}
		else {
			print "<td><a href=\"edit_share.cgi?$s->{'index'}\">$s->{'dir'}</a></td>\n";
			}
		undef(%clients);
		foreach (split(/:/, $options{"ro"})) { $clients{$_}++; }
		foreach (split(/:/, $options{"rw"})) { $clients{$_}++; }
		foreach (split(/:/, $options{"root"})) { $clients{$_}++; }
		if (%clients) {
			$clients = join(' &nbsp;|&nbsp; ' , sort { $a cmp $b }
				    map { $_ =~ /^\@(.*)/ ? "$1.*" : $_ }
				     (keys %clients) );
			if (length($clients) > 80) {
				$clients = substr($clients, 0, 80)."...";
				}
			}
		else { $clients = "Everyone"; }
		print "<td>$clients</td>\n";
		print "</tr>\n";
		}
	print "</table>\n";
	}
else {
	print "<b>No directories are currently being exported on ",
	      "this system</b>. <p>\n";
	}
print "<a href=\"edit_share.cgi\">Start sharing a new directory</a>. <p>\n";

print "<hr>\n";
print "<table width=100%> <tr>\n";
print "<td><form action=restart_sharing.cgi>\n";
print "<input type=submit value=\"Apply Changes\">\n";
print "</form></td>\n";
print "<td valign=top> Click this button to apply the current file sharing\n";
print "configuration. This will make all the directories listed above\n";
print "available with the options specified.</td>\n";
print "</tr> <tr> </table>\n";

print "<hr>\n";
&footer("/", "index");

 0707010002caf3000041ed0000000000000001000000023ac03bcf00000000000000200000000000000000000000000000001400000003reloc/dfsadmin/lang   0707010002caf4000081a40000000000000002000000013ac03887000000a1000000200000000000000000000000000000001700000003reloc/dfsadmin/lang/en    log_modify=Modified NFS share $1
log_rename=Changed NFS share $1 to $2
log_create=Created NFS share $1
log_delete=Deleted NFS share $1
log_apply=Applied changes
   0707010002caf5000081a40000000000000002000000013ac03887000000c6000000200000000000000000000000000000001700000003reloc/dfsadmin/lang/es    log_modify=Modificada compartici髇 NFS $1
log_rename=Cambiada compartici髇 NFS $1 por $2
log_create=Creada compartici髇 NFS $1
log_delete=Borrada compartici髇 NFS $1
log_apply=Aplicados los cambios
  0707010002caf6000081a40000000000000002000000013ac03887000000ab000000200000000000000000000000000000001700000003reloc/dfsadmin/lang/pl    log_modify=Zmieniono zas骲 NFS $1
log_rename=Zmieniono zas骲 NFS $1 na $2
log_create=Utworzono zas骲 NFS $1
log_delete=Skasowano zas骲 NFS $1
log_apply=Zastosowano zmiany
 0707010002caf7000081a40000000000000002000000013ac03887000000b3000000200000000000000000000000000000001700000003reloc/dfsadmin/lang/sv    log_modify=Modifierade NFS-resurs $1
log_rename=膎drade NFS-resurs $1 till $2
log_create=Skapade NFS-resurs $1
log_delete=Tog bort NFS-resurs $1
log_apply=Tog 鋘dringarna i drift
 0707010002caf8000081a40000000000000002000000013ac03887000000c7000000200000000000000000000000000000001700000003reloc/dfsadmin/lang/tr    log_modify=NFS paylam $1 de餴⺶irildi
log_rename=NFS paylam $1, $2'ye de餴⺶irildi
log_create=NFS paylam $1 olu⺶uruldu
log_delete=NFS paylam $1 silindi
log_apply=De餴㱮klikler uyguland
 07070100028773000081a40000000000000002000000013ac038870000030f000000200000000000000000000000000000001d00000003reloc/dfsadmin/log_parser.pl  # log_parser.pl
# Functions for parsing this module's logs

require './dfs-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p) = @_;
if ($action eq 'modify') {
	if ($p->{'old'} ne $p->{'directory'}) {
		return &text('log_rename', "<tt>$p->{'old'}</tt>",
					   "<tt>$p->{'directory'}</tt>");
		}
	else {
		return &text('log_modify', "<tt>$object</tt>");
		}
	}
elsif ($action eq 'create') {
	return &text('log_create', "<tt>$object</tt>");
	}
elsif ($action eq 'delete') {
	return &text('log_delete', "<tt>$object</tt>");
	}
elsif ($action eq 'apply') {
	return $text{'log_apply'};
	}
else {
	return undef;
	}
}

 07070100028774000081a40000000000000002000000013ac038870000000b000000200000000000000000000000000000001800000003reloc/dfsadmin/low.risk   noconfig=1
 07070100028775000081a40000000000000002000000013ac0388700000011000000200000000000000000000000000000001900000003reloc/dfsadmin/low.skill  icons=1
simple=1
   07070100028776000081a40000000000000002000000013ac038870000000b000000200000000000000000000000000000001b00000003reloc/dfsadmin/medium.risk    noconfig=1
 07070100028777000081a40000000000000002000000013ac0388700000011000000200000000000000000000000000000001c00000003reloc/dfsadmin/medium.skill   icons=0
simple=1
   07070100028778000081a40000000000000002000000013ac0388700000131000000200000000000000000000000000000001b00000003reloc/dfsadmin/module.info    name=DFSadmin
desc_pt=Partilhas de NFS
desc_tr=NFS Paylamlar
desc_fr=Partages NFS
desc_es=Carpetas Compartidas de NFS
desc_de=NFS Freigaben
desc_sv=NFS-resurser
category=system
os_support=solaris unixware openserver
desc_zh_TW.Big5=NFS 郎だㄉ
desc=NFS Shares
risk=low medium high
desc_zh_CN=NFS 共享
   07070100028779000081e40000000000000002000000013ac03887000001eb000000200000000000000000000000000000002300000003reloc/dfsadmin/restart_sharing.cgi    #!/usr/local/bin/perl
# restart_sharing.cgi
# Call unshareall and shareall to stop and re-start file sharing

require './dfs-lib.pl';
$whatfailed = "Failed to apply changes";

$temp = &tempname();
&system_logged("$config{unshare_all_command} >/dev/null 2>&1");
&system_logged("$config{share_all_command} >/dev/null 2>$temp");
$why = `/bin/cat $temp`;
unlink($temp);
if ($why =~ /\S+/) {
	&error("Share failed : </h2><pre>$why</pre>");
	}
unlink($temp);
&webmin_log("apply");
&redirect("");

 0707010002877a000081e40000000000000002000000013ac0388700000f06000000200000000000000000000000000000001e00000003reloc/dfsadmin/save_share.cgi #!/usr/local/bin/perl
# save_share.cgi
# Save changes to a shared directory

require './dfs-lib.pl';
$whatfailed = "Failed to save share";
use Socket;
&ReadParse();
%access = &get_module_acl();
@shlist = &list_shares();

# check inputs
if ($in{directory} !~ /^\/.*/) {
	&error("$in{directory} is not a valid directory name");
	}
if (!(-d $in{directory})) {
	&error("The directory $in{directory} does not exist");
	}
@rolist = split(/\s+/, $in{rolist}); &check_hosts(@rolist);
@rwlist = split(/\s+/, $in{rwlist}); &check_hosts(@rwlist);
@rtlist = split(/\s+/, $in{rtlist}); &check_hosts(@rtlist);
if ($in{readwrite} == 2 && !@rwlist) {
	&error("You did not list any hosts to share read-write with");
	}
if ($in{readonly} == 2 && !@rolist) {
	&error("You did not list any hosts to share read-only with");
	}
if ($in{root} == 2 && !@rtlist) {
	&error("You did not list any hosts to share root with");
	}

# Remove from the read-only list any hosts shared read-write as well
if ($in{readwrite} == 1) {
	$in{readonly} = 0;
	}
elsif ($in{readwrite} == 2) {
	foreach $rwh (@rwlist) {
		if (($idx = &indexof($rwh, @rolist)) != -1) {
			splice(@rolist, $idx, 1);
			}
		}
	if (@rolist == 0 && $in{readonly} == 2) {
		$in{readonly} = 0;
		}
	}

&lock_file($config{dfstab_file});
foreach $s (@shlist) {
	$taken = $s if ($s->{'dir'} eq $in{directory});
	}

if (defined($in{'idx'})) {
	$share = $shlist[$in{'idx'}];
	$olddir = $share->{'dir'};
	}
$share->{'dir'} = $in{'directory'};
$share->{'desc'} = $in{'desc'};
$share->{'type'} = 'nfs';

if (defined($in{'idx'})) {
	# Changing an existing share
	if ($taken && $taken->{'index'} != $in{'idx'}) {
		&error("The directory $in{directory} is already being shared");
		}
	&parse_options($share->{'opts'});
	&set_options();
	$share->{'opts'} = &join_options();
	&modify_share($share);
	}
else {
	# Creating a new share
	if ($taken) {
		&error("The directory $in{directory} is already being shared");
		}
	&set_options();
	$share->{'opts'} = &join_options();
	&create_share($share);
	}
&unlock_file($config{dfstab_file});
if (defined($in{'idx'})) {
	&webmin_log('modify', 'share', $olddir, \%in);
	}
else {
	&webmin_log('create', 'share', $share->{'dir'}, \%in);
	}
&redirect("");


# set_options()
# Fill in the options associative array
sub set_options
{
if ($in{readonly} == 0) { delete($options{"ro"}); }
elsif ($in{readonly} == 1) { $options{"ro"} = ""; }
elsif ($in{readonly} == 2) { $options{"ro"} = join(':', @rolist); }

if ($in{readwrite} == 0) { delete($options{"rw"}); }
elsif ($in{readwrite} == 1) { $options{"rw"} = ""; }
elsif ($in{readwrite} == 2) { $options{"rw"} = join(':', @rwlist); }

if ($in{root} == 0) { delete($options{"root"}); }
elsif ($in{root} == 2) { $options{"root"} = join(':', @rtlist); }

if (!$access{'simple'}) {
	if ($in{nosub}) { $options{"nosub"} = ""; }
	else { delete($options{"nosub"}); }

	if ($in{nosuid}) { $options{"nosuid"} = ""; }
	else { delete($options{"nosuid"}); }

	if ($in{secure}) { $options{"secure"} = ""; }
	else { delete($options{"secure"}); }

	if ($in{kerberos}) { $options{"kerberos"} = ""; }
	else { delete($options{"kerberos"}); }

	if ($in{'anon_m'} == 0) { delete($options{"anon"}); }
	elsif ($in{'anon_m'} == 1) { $options{"anon"} = -1; }
	else { $options{"anon"} = getpwnam($in{"anon"}); }

	if ($in{aclok}) { $options{"aclok"} = ""; }
	else { delete($options{"aclok"}); }

	if ($gconfig{'os_version'} >= 7) {
		if ($in{'public'}) { $options{'public'} = ""; }
		else { delete($options{'public'}); }
		if (!$in{'index_def'}) { $options{'index'} = $in{'index'}; }
		else { delete($options{'index'}); }
		}
	}
}

# check_hosts(host, host, ...)
# Die if any of the listed hosts does not exist
sub check_hosts
{
local $h;
if ($gconfig{'os_version'} < 7) {
	foreach $h (@_) {
		if (!inet_aton($h)) { &error("The host $h does not exist"); }
		}
	}
}


  0707010002fbcb000041ed0000000000000001000000053ac03bd400000000000000200000000000000000000000000000000c00000003reloc/dhcpd   0707010002fbcc000081a40000000000000002000000013ac038a200002313000000200000000000000000000000000000001c00000003reloc/dhcpd/acl_security.pl   
require './dhcpd-lib.pl';

# acl_security_form(&options)
# Output HTML for editing security options for the dhcpd module
sub acl_security_form
{
print "<tr>\n<td><b>$text{'acl_apply'}</b></td> <td>\n";
printf "<input type=radio name=apply value=1 %s> $text{'yes'}\n",
		$_[0]->{'apply'} ? "checked" : "";
printf "<input type=radio name=apply value=0 %s> $text{'no'}</td>\n",
		$_[0]->{'apply'} ? "" : "checked";
print "</tr>\n";

print "<tr>\n<td><b>$text{'acl_global'}</b></td> <td>\n";
printf "<input type=radio name=global value=1 %s> $text{'yes'}\n",
		$_[0]->{'global'} ? "checked" : "";
printf "<input type=radio name=global value=0 %s> $text{'no'}</td>\n",
		$_[0]->{'global'} ? "" : "checked";
print "</tr>\n";

print "<tr>\n<td><b>$text{'acl_r_leases'}</b></td> <td>\n";
printf "<input type=radio name=r_leases value=1 %s> $text{'yes'}\n",
		$_[0]->{'r_leases'} ? "checked" : "";
printf "<input type=radio name=r_leases value=0 %s> $text{'no'}</td>\n",
		$_[0]->{'r_leases'} ? "" : "checked";
print "</tr>\n";

print "<tr>\n<td><b>$text{'acl_w_leases'}</b></td> <td>\n";
printf "<input type=radio name=w_leases value=1 %s> $text{'yes'}\n",
		$_[0]->{'w_leases'} ? "checked" : "";
printf "<input type=radio name=w_leases value=0 %s> $text{'no'}</td>\n",
		$_[0]->{'w_leases'} ? "" : "checked";
print "</tr>\n";

print "<tr> <td colspan=4><hr></td> </tr>\n";

# uniqs
print "<tr>\n<td><b>$text{'acl_uniq_hst'}</b></td> <td>\n";
printf "<input type=radio name=uniq_hst value=1 %s> $text{'yes'}\n",
		$_[0]->{'uniq_hst'} ? "checked" : "";
printf "<input type=radio name=uniq_hst value=0 %s> $text{'no'}</td>\n",
		$_[0]->{'uniq_hst'} ? "" : "checked";
print "</tr>\n";

print "<tr>\n<td><b>$text{'acl_uniq_sub'}</b></td> <td>\n";
printf "<input type=radio name=uniq_sub value=1 %s> $text{'yes'}\n",
		$_[0]->{'uniq_sub'} ? "checked" : "";
printf "<input type=radio name=uniq_sub value=0 %s> $text{'no'}</td>\n",
		$_[0]->{'uniq_sub'} ? "" : "checked";
print "</tr>\n";

print "<tr>\n<td><b>$text{'acl_uniq_sha'}</b></td> <td>\n";
printf "<input type=radio name=uniq_sha value=1 %s> $text{'yes'}\n",
		$_[0]->{'uniq_sha'} ? "checked" : "";
printf "<input type=radio name=uniq_sha value=0 %s> $text{'no'}</td>\n",
		$_[0]->{'uniq_sha'} ? "" : "checked";
print "</tr>\n";

print "<tr> <td colspan=4><hr></td> </tr>\n";

# security mode settings
print "<tr>\n<td><b>$text{'acl_seclevel'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=smode value=0 %s> 0\n",
		$_[0]->{'smode'} == 0 ? "checked" : "";
printf "<input type=radio name=smode value=1 %s> 1\n",
		$_[0]->{'smode'} == 1 ? "checked" : "";
printf "<input type=radio name=smode value=2 %s> 2\n",
		$_[0]->{'smode'} == 2 ? "checked" : "";
printf "<input type=radio name=smode value=3 %s> 3\n",
		$_[0]->{'smode'} == 3 ? "checked" : "";
print "</td>\n</tr>\n";

print "<tr>\n<td><b>$text{'acl_hide'}</b></td> <td>\n";
printf "<input type=radio name=hide value=1 %s> $text{'yes'}\n",
		$_[0]->{'hide'} == 1 ? "checked" : "";
printf "<input type=radio name=hide value=0 %s> $text{'no'}</td>\n",
		$_[0]->{'hide'} == 0 ? "checked" : "";
print "</tr>\n";

print "<tr> <td colspan=4><hr></td> </tr>\n";

# global acls
print "<tr>\n<td><b>$text{'acl_ahst'}</b></td>\n";
print "<td colspan=3>\n";
printf "<input type=checkbox name=c_hst value=1 %s> %s\n",
		$_[0]->{'c_hst'} ? "checked" : "", $text{"acl_c"};
printf "<input type=checkbox name=r_hst value=1 %s> %s\n",
		$_[0]->{'r_hst'} ? "checked" : "", $text{"acl_r"};
printf "<input type=checkbox name=w_hst value=1 %s> %s\n",
		$_[0]->{'w_hst'} ? "checked" : "", $text{"acl_w"};
print "</td> </tr>\n";

print "<tr>\n<td><b>$text{'acl_agrp'}</b></td>\n";
print "<td colspan=3>\n";
printf "<input type=checkbox name=c_grp value=1 %s> %s\n",
		$_[0]->{'c_grp'} ? "checked" : "", $text{"acl_c"};
printf "<input type=checkbox name=r_grp value=1 %s> %s\n",
		$_[0]->{'r_grp'} ? "checked" : "", $text{"acl_r"};
printf "<input type=checkbox name=w_grp value=1 %s> %s\n",
		$_[0]->{'w_grp'} ? "checked" : "", $text{"acl_w"};
print "</td> </tr>\n";

print "<tr>\n<td><b>$text{'acl_asub'}</b></td>\n";
print "<td colspan=3>\n";
printf "<input type=checkbox name=c_sub value=1 %s> %s\n",
		$_[0]->{'c_sub'} ? "checked" : "", $text{"acl_c"};
printf "<input type=checkbox name=r_sub value=1 %s> %s\n",
		$_[0]->{'r_sub'} ? "checked" : "", $text{"acl_r"};
printf "<input type=checkbox name=w_sub value=1 %s> %s\n",
		$_[0]->{'w_sub'} ? "checked" : "", $text{"acl_w"};
print "</td> </tr>\n";

print "<tr>\n<td><b>$text{'acl_asha'}</b></td>\n";
print "<td colspan=3>\n";
printf "<input type=checkbox name=c_sha value=1 %s> %s\n",
		$_[0]->{'c_sha'} ? "checked" : "", $text{"acl_c"};
printf "<input type=checkbox name=r_sha value=1 %s> %s\n",
		$_[0]->{'r_sha'} ? "checked" : "", $text{"acl_r"};
printf "<input type=checkbox name=w_sha value=1 %s> %s\n",
		$_[0]->{'w_sha'} ? "checked" : "", $text{"acl_w"};
print "</td> </tr>\n";

print "<tr> <td colspan=4><hr></td> </tr>\n";

# per-subnet and per-host acls
print "<tr><td><b>$text{'acl_per_sub_acls'}</b></td> <td>\n";
printf "<input type=radio name=per_sub_acls value=1 %s> $text{'yes'}\n",
		$_[0]->{'per_sub_acls'} ? "checked" : "";
printf "<input type=radio name=per_sub_acls value=0 %s> $text{'no'}\n",
		$_[0]->{'per_sub_acls'} ? "" : "checked";
print "</td></tr>\n";

print "<tr><td><b>$text{'acl_per_hst_acls'}</b></td> <td>\n";
printf "<input type=radio name=per_hst_acls value=1 %s> $text{'yes'}\n",
		$_[0]->{'per_hst_acls'} ? "checked" : "";
printf "<input type=radio name=per_hst_acls value=0 %s> $text{'no'}\n",
		$_[0]->{'per_hst_acls'} ? "" : "checked";
print "</td></tr>\n";

print "<tr> <td colspan=4><hr></td> </tr>\n";

print "<tr>\n<td $tb><b>$text{'acl_per_obj_acls'}</b></td></tr> \n";
&display_tree($_[0],&get_parent_config(),-2);
}

# acl_security_save(&options)
# Parse the form for security options for the sendmail module
sub acl_security_save
{
if ($in{'r_sub'} < $in{'w_sub'} || $in{'r_sha'} < $in{'w_sha'} ||
    $in{'r_hst'} < $in{'w_hst'} || $in{'r_grp'} < $in{'w_grp'}) {
	$whatfailed = $text{'acl_err'};
	&error($text{'acl_ernow'});
	}
$_[0]->{'apply'}=$in{'apply'};
$_[0]->{'global'}=$in{'global'};
$_[0]->{'r_leases'}=$in{'r_leases'};
$_[0]->{'w_leases'}=$in{'w_leases'};
$_[0]->{'uniq_hst'}=$in{'uniq_hst'};
$_[0]->{'uniq_sub'}=$in{'uniq_sub'};
$_[0]->{'uniq_sha'}=$in{'uniq_sha'};
$_[0]->{'smode'}=$in{'smode'};
$_[0]->{'hide'}=$in{'hide'};
$_[0]->{'per_hst_acls'}=$in{'per_hst_acls'};
$_[0]->{'per_sub_acls'}=$in{'per_sub_acls'};
$_[0]->{'c_sub'}=$in{'c_sub'};
$_[0]->{'r_sub'}=$in{'r_sub'};
$_[0]->{'w_sub'}=$in{'w_sub'};
$_[0]->{'c_sha'}=$in{'c_sha'};
$_[0]->{'r_sha'}=$in{'r_sha'};
$_[0]->{'w_sha'}=$in{'w_sha'};
$_[0]->{'c_hst'}=$in{'c_hst'};
$_[0]->{'r_hst'}=$in{'r_hst'};
$_[0]->{'w_hst'}=$in{'w_hst'};
$_[0]->{'c_grp'}=$in{'c_grp'};
$_[0]->{'r_grp'}=$in{'r_grp'};
$_[0]->{'w_grp'}=$in{'w_grp'};

foreach (keys %in) {
	  $_[0]->{$_}=$in{$_} if /^ACL\w\w\w_/;
	  }
}

# perm_to(permissions_string,obj_type,\%access,obj_name)
# check per-object permissions:
# permissions_string= 'rw' 'r' 'w' or you perm_to extend this system
# obj_type= 'sub' for subnets, or  'hst' for hosts.
sub perm_to
{
local $acl=$_[2]->{'ACL'.$_[1].'_'.$_[3]};
foreach (split //,$_[0]) {
    return 0 if index($acl,$_) == -1;
    }
return 1;
}

# link config node names and acl categories
%onames=qw(shared-network sha subnet sub group grp host hst);

# display_tree(\%access,\%config_node,display_padding)
sub display_tree
{
local ($acc, $node, $pad)=@_;
if (defined($node->{'name'})) {
	&display_node($acc,$node,$pad) if exists $onames{$node->{'name'}} ;
	}
$pad+=2;
if($node->{'members'}) {
    # recursevly process this subtree
	foreach (@{$node->{'members'}}) { &display_tree($acc, $_, $pad); }
	}
return 1;
}

# display_node(\%access, \%node, padding)									
sub display_node
{
local($acc,$node,$padding)=@_;
local $name=$node->{'values'}->[0];
local $nodetype=$onames{$node->{'name'}};
local $aclname='ACL'.$nodetype.'_'.$name;

print "<tr>\n<td>","&nbsp"x$padding,
	  " $node->{'name'}: <b>$name</b></td>\n";

if (($nodetype eq 'hst')||($nodetype eq 'sub')) {
	print "<td colspan=3>\n";
	if($acc->{$aclname}) {
		printf "<input type=radio name=$aclname value='' %s> %s\n",
				!&perm_to('r',$nodetype,$acc,$name) ? 
					"checked" : "", $text{"acl_na"};
		printf "<input type=radio name=$aclname value='r' %s> %s\n",
				&perm_to('r',$nodetype,$acc,$name) && 
				!&perm_to('rw',$nodetype,$acc,$name) ? 
					"checked" : "",$text{"acl_r1"};
		printf "<input type=radio name=$aclname value='rw' %s> %s\n",
				&perm_to('rw',$nodetype,$acc,$name) ? 
					"checked" : "", $text{"acl_rw"};
		}
	else {
		printf "<input type=radio name=$aclname value='' checked> %s\n",
				$text{"acl_na"};
		printf "<input type=radio name=$aclname value='r'> %s\n", 
				$text{"acl_r1"};
		printf "<input type=radio name=$aclname value='rw'> %s\n",
				$text{"acl_rw"};
		}
	print "</td>\n";
	}
print "</tr>\n";		
}

1; 0707010002fbcd000081a40000000000000002000000013ac038a200000096000000200000000000000000000000000000002000000003reloc/dhcpd/config-cobalt-linux   dhcpd_conf=/etc/dhcpd.conf
pid_file=/var/run/dhcpd.pid
dhcpd_path=/usr/sbin/dhcpd
lease_file=/var/state/dhcp/dhcpd.leases
lease_sort=0
dhcpd_nocols=5
  0707010002fbce000081a40000000000000002000000013ac038a20000008e000000200000000000000000000000000000001f00000003reloc/dhcpd/config-corel-linux    dhcpd_conf=/etc/dhcpd.conf
pid_file=/var/run/dhcpd.pid
dhcpd_path=/usr/sbin/dhcpd
lease_file=/var/db/dhcpd.leases
lease_sort=0
dhcpd_nocols=5
  0707010002fbcf000081a40000000000000002000000013ac038a10000008e000000200000000000000000000000000000002000000003reloc/dhcpd/config-debian-linux   dhcpd_conf=/etc/dhcpd.conf
pid_file=/var/run/dhcpd.pid
dhcpd_path=/usr/sbin/dhcpd
lease_file=/var/db/dhcpd.leases
lease_sort=0
dhcpd_nocols=5
  0707010002fbd0000081a40000000000000002000000013ac038a100000094000000200000000000000000000000000000001b00000003reloc/dhcpd/config-freebsd    dhcpd_conf=/etc/dhcpd.conf
pid_file=/var/run/dhcpd.pid
dhcpd_path=/usr/local/sbin/dhcpd
lease_file=/var/db/dhcpd.leases
lease_sort=0
dhcpd_nocols=5
0707010002fbd1000081a40000000000000002000000013ac038a200000087000000200000000000000000000000000000001800000003reloc/dhcpd/config-irix   dhcpd_conf=/etc/dhcpd.conf
pid_file=/etc/dhcpd.pid
dhcpd_path=/usr/sbin/dhcpd
lease_file=/etc/dhcpd.leases
lease_sort=0
dhcpd_nocols=5
 0707010002fbd2000081a40000000000000002000000013ac038a20000008b000000200000000000000000000000000000001e00000003reloc/dhcpd/config-open-linux dhcpd_conf=/etc/dhcpd.conf
pid_file=/var/run/dhcpd.pid
dhcpd_path=/usr/sbin/dhcpd
lease_file=/etc/dhcpd.leases
lease_sort=0
dhcpd_nocols=5
 0707010002fbd3000081a40000000000000002000000013ac038a200000090000000200000000000000000000000000000002300000003reloc/dhcpd/config-open-linux-3.1e    dhcpd_conf=/etc/dhcp/dhcpd.conf
pid_file=/var/run/dhcpd.pid
dhcpd_path=/usr/sbin/dhcpd
lease_file=/etc/dhcpd.leases
lease_sort=0
dhcpd_nocols=5
0707010002fbd5000081a40000000000000002000000013ac038a20000008e000000200000000000000000000000000000001b00000003reloc/dhcpd/config-openbsd    dhcpd_conf=/etc/dhcpd.conf
pid_file=/var/run/dhcpd.pid
dhcpd_path=/usr/sbin/dhcpd
lease_file=/var/db/dhcpd.leases
lease_sort=0
dhcpd_nocols=5
  0707010002fbd6000081a40000000000000002000000013ac038a200000087000000200000000000000000000000000000001e00000003reloc/dhcpd/config-openserver dhcpd_conf=/etc/dhcpd.conf
pid_file=/etc/dhcpd.pid
dhcpd_path=/usr/sbin/dhcpd
lease_file=/etc/dhcpd.leases
lease_sort=0
dhcpd_nocols=5
 0707010002fbd8000081a40000000000000002000000013ac038a100000087000000200000000000000000000000000000001800000003reloc/dhcpd/config-osf1   dhcpd_conf=/etc/dhcpd.conf
pid_file=/etc/dhcpd.pid
dhcpd_path=/usr/sbin/dhcpd
lease_file=/etc/dhcpd.leases
lease_sort=0
dhcpd_nocols=5
 0707010002fbd9000081a40000000000000002000000013ac038a10000008b000000200000000000000000000000000000002000000003reloc/dhcpd/config-redhat-linux   dhcpd_conf=/etc/dhcpd.conf
pid_file=/var/run/dhcpd.pid
dhcpd_path=/usr/sbin/dhcpd
lease_file=/etc/dhcpd.leases
lease_sort=0
dhcpd_nocols=5
 0707010002fbda000081a40000000000000002000000013ac038a200000096000000200000000000000000000000000000002400000003reloc/dhcpd/config-redhat-linux-6.0   dhcpd_conf=/etc/dhcpd.conf
pid_file=/var/run/dhcpd.pid
dhcpd_path=/usr/sbin/dhcpd
lease_file=/var/state/dhcp/dhcpd.leases
lease_sort=0
dhcpd_nocols=5
  0707010002fbdb000081a40000000000000002000000013ac038a200000096000000200000000000000000000000000000002400000003reloc/dhcpd/config-redhat-linux-6.1   dhcpd_conf=/etc/dhcpd.conf
pid_file=/var/run/dhcpd.pid
dhcpd_path=/usr/sbin/dhcpd
lease_file=/var/state/dhcp/dhcpd.leases
lease_sort=0
dhcpd_nocols=5
  0707010002fbdc000081a40000000000000002000000013ac038a200000096000000200000000000000000000000000000002400000003reloc/dhcpd/config-redhat-linux-6.2   dhcpd_conf=/etc/dhcpd.conf
pid_file=/var/run/dhcpd.pid
dhcpd_path=/usr/sbin/dhcpd
lease_file=/var/state/dhcp/dhcpd.leases
lease_sort=0
dhcpd_nocols=5
  0707010002fbdd000081a40000000000000002000000013ac038a100000094000000200000000000000000000000000000002400000003reloc/dhcpd/config-redhat-linux-7.0   dhcpd_conf=/etc/dhcpd.conf
pid_file=/var/run/dhcpd.pid
dhcpd_path=/usr/sbin/dhcpd
lease_file=/var/lib/dhcp/dhcpd.leases
lease_sort=0
dhcpd_nocols=5
0707010002fbde000081a40000000000000002000000013ac038a200000094000000200000000000000000000000000000002400000003reloc/dhcpd/config-redhat-linux-7.1   dhcpd_conf=/etc/dhcpd.conf
pid_file=/var/run/dhcpd.pid
dhcpd_path=/usr/sbin/dhcpd
lease_file=/var/lib/dhcp/dhcpd.leases
lease_sort=0
dhcpd_nocols=5
07070100031031000041ed0000000000000001000000023ac03bd200000000000000200000000000000000000000000000001100000003reloc/dhcpd/help  07070100031032000081a40000000000000002000000013ac038a1000008dc000000200000000000000000000000000000001a00000003reloc/dhcpd/help/acl.html <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="GENERATOR" content="Mozilla/4.72 [en] (X11; U; Linux 2.2.14-6.1.1 i686) [Netscape]">
</head>
<body>

<center>
<h1>
DHCPD ACL subsystem</h1></center>

<h3>
TARGETS:</h3>
&nbsp;&nbsp;&nbsp; The main goals of acl subsystem is providing a powerfull,
flexible and extendable mechanism for access control of different objects
in dhcpd configuration. This objects are shared networks, subnets, groups
of hosts and hosts.
<br>&nbsp;&nbsp;&nbsp; Also acl subsystem allows you to control some other
features, such as: unique object names, applying of changed configuration,
viewing and deletion of dhcp leasures.
<h3>
CONCEPTS:</h3>
&nbsp;&nbsp;&nbsp; Dhcpd configuration file we can show as a tree structure.
Each node of this tree represents a configuration of different dhcp objects
(fig. 0).
<p>&nbsp;&nbsp;&nbsp; Acl subsystem have 2 levels of permissions:
<ul>
<li>
global: read, write, create;</li>

<li>
per-object: read, write.</li>
</ul>
&nbsp;&nbsp;&nbsp; Global permissions exists for every type of objects
(hosts, groups, subnets, shared networks) and controls operations with
a whole object set of given type.
<br>Global create
<br>Global read
<br>Global write
<br>&nbsp;&nbsp;&nbsp; Per-object permissions give you a more flexible
way of access control. Per-object permissions acl exists for every object
individual object. Today only hosts and subnets per-object acls are impemented.
<br>Per-object read
<br>Per-object write
<br>&nbsp;&nbsp;&nbsp; Acl subsystem can operate in 4 different security
levels (or modes).
<br><img SRC="ctree0.gif" ALT="dhcpd configuration tree, security level 0, check subnetX permissions" height=229 width=314>
<br>&nbsp;
<p><img SRC="ctree1.gif" ALT="dhcpd configuration tree, security level 1, check subnetX permissions" height=229 width=314>
<p><img SRC="ctree2.gif" ALT="dhcpd configuration tree, security level 2, check subnetX permissions" height=229 width=314>
<p><img SRC="ctree3.gif" ALT="dhcpd configuration tree, security level 3, check subnetX permissions" height=229 width=314>
<h3>
USER NOTES:</h3>
&nbsp;
<h3>
DEVELOPER NOTES:</h3>

</body>
</html>
07070100031033000081a40000000000000002000000013ac038a100000757000000200000000000000000000000000000001f00000003reloc/dhcpd/help/acl_info.html    <header>DHCPd ACL subsystem</header>

<h3>TARGETS:</h3>
The main goal of the ACL subsystem is providing a powerfull, flexible and
extendable access control mechanism for different objects in the DHCPd
configuration. These objects are shared networks, subnets, groups of hosts
and hosts. <p>

Also the ACL subsystem allows you to control some other features, such as:
unique object names, applying of changed configuration, viewing and deletion
of DHCP leases. <p>

<h3>CONCEPTS:</h3>
We can show the DHCPd configuration file as a tree structure. Each node of
this tree represents configuration of a different DHCP object (fig. 0). <p>

The ACL subsystem supports two permission levels:
<ul>
<li>global: read, write, create;</li>
<li>per-object: read, write.</li>
</ul>

Global permissions exist for each type of object (hosts, groups, subnets,
shared networks) and control operations with a whole object set of given
type:
<ul type=circle>
<li>Global create</li>
<li>Global read</li>
<li>Global write</li>
</ul>

Per-object permissions give you a more flexible way of access control.
Per-object permissions ACL exist for every individual object. Today
per-object ACLs are impemented only for hosts and subnets:
<ul type=circle>
<li>Per-object read</li>
<li>Per-object write</li>
</ul>

The ACL subsystem can operate in four different security levels (or modes).
<p>

<img SRC="images/ctree0.gif" ALT="DHCPd configuration tree, security level 0, check subnetX permissions" height=229 width=314>

<img SRC="images/ctree1.gif" ALT="DHCPd configuration tree, security level 1, check subnetX permissions" height=229 width=314>

<img SRC="images/ctree2.gif" ALT="DHCPd configuration tree, security level 2, check subnetX permissions" height=229 width=314>

<img SRC="images/ctree3.gif" ALT="DHCPd configuration tree, security level 3, check subnetX permissions" height=229 width=314>

 07070100031034000081a40000000000000002000000013ac038a1000008cd000000200000000000000000000000000000002200000003reloc/dhcpd/help/acl_info.pl.html <header>System ACL-i dla DHCPd</header>

<h3>CELE:</h3>
Zasadniczym celem systemu ACL-i jest zapewnienie silnego, elastycznego
i&nbsp;rozszerzalnego mechanizmu kontroli dost阷u do r罂nych obiekt體
w&nbsp;konfiguracji DHCPd. Obiektami tymi s sieci wsp蟪dzielone, podsieci,
grupy host體 i hosty. <p> 

System ACL-i pozwala r體nie na kontrolowanie kilku innych w砤禼iwo禼i,
takich jak: unikalno舵 nazw obiekt體, mo縧iwo舵 zastosowania zmienionej
konfiguracji, przegl眃anie i&nbsp;kasowanie dzier縜w DHCP. <p>

<h3>ZASADY:</h3>
Plik konfiguracyjny DHCPd posiada struktur drzewiast. Ka縟y w陑e tego
drzewa reprezentuje sob konfiguracj pojedy馽zego obiektu DHCP (rys. 0).
<p>

System ACL-i posiada dwa poziomy zabezpiecze:
<ul>
<li>poziom og髄ny: odczyt, zapis, tworzenie;</li>
<li>dla poszczeg髄nych obiekt體: odczyt, zapis.</li>
</ul>

Uprawnienia og髄ne s okre秎one dla ka縟ego typu obiekt體 (host體, grup,
podsieci, sieci wsp蟪dzielonych) i&nbsp;dotycz operacji na wszystkich
obiektach danego typu:
<ul type=circle>
<li>og髄ne uprawnienia do tworzenia,</li>
<li>og髄ne uprawnienia do odczytu,</li>
<li>og髄ne uprawnienia do zapisu.</li>
</ul>

Uprawnienia dla poszczeg髄nych obiekt體 umo縧iwiaj kontrol dost阷u
w&nbsp;bardziej elastyczny spos骲. ACL-e uprawnie dla poszczeg髄nych
obiekt體 istniej dla ka縟ego pojedy馽zego obiektu. Obecnie ACL-e dla
poszczeg髄nych obiekt體 zaimplementowane s jedynie dla host體
i&nbsp;podsieci:
<ul type=circle>
<li>uprawnienia do zapisu dla poszczeg髄nych obiekt體,</li>
<li>uprawnienia do odczytu dla poszczeg髄nych obiekt體.</li>
</ul>

System ACL-i mo縠 dzia砤 przy czterech r罂nych poziomach (trybach) zabezpiecze.
<p>

<img SRC="images/ctree0.gif" ALT="Drzewo konfiguracji DHCPd, poziom zabezpiecze 0, sprawdzanie uprawnie dla podsieci X" height=229 width=314>

<img SRC="images/ctree1.gif" ALT="Drzewo konfiguracji DHCPd, poziom zabezpiecze 1, sprawdzanie uprawnie dla podsieci X" height=229 width=314>

<img SRC="images/ctree2.gif" ALT="Drzewo konfiguracji DHCPd, poziom zabezpiecze 2, sprawdzanie uprawnie dla podsieci X" height=229 width=314>

<img SRC="images/ctree3.gif" ALT="Drzewo konfiguracji DHCPd, poziom zabezpiecze 3, sprawdzanie uprawnie dla podsieci X" height=229 width=314>

   0707010002fbdf000081a40000000000000002000000013ac038a100000091000000200000000000000000000000000000002300000003reloc/dhcpd/config-slackware-linux    dhcpd_conf=/etc/dhcpd.conf
pid_file=/var/run/dhcpd.pid
dhcpd_path=/usr/sbin/dhcpd
lease_file=/var/state/dhcpd.leases
lease_sort=0
dhcpd_nocols=5
   0707010002fbe0000081a40000000000000002000000013ac038a200000097000000200000000000000000000000000000002700000003reloc/dhcpd/config-slackware-linux-4.0    dhcpd_conf=/etc/dhcpd.conf
pid_file=/var/run/dhcpd.pid
dhcpd_path=/usr/sbin/dhcpd
lease_file=/var/state/dhcpd/dhcpd.leases
lease_sort=0
dhcpd_nocols=5
 0707010002fbe1000081a40000000000000002000000013ac038a100000087000000200000000000000000000000000000001b00000003reloc/dhcpd/config-solaris    dhcpd_conf=/etc/dhcpd.conf
pid_file=/etc/dhcpd.pid
dhcpd_path=/usr/sbin/dhcpd
lease_file=/etc/dhcpd.leases
lease_sort=0
dhcpd_nocols=5
 0707010002fbe2000081a40000000000000002000000013ac038a100000096000000200000000000000000000000000000001e00000003reloc/dhcpd/config-suse-linux dhcpd_conf=/etc/dhcpd.conf
pid_file=/var/run/dhcpd.pid
dhcpd_path=/usr/sbin/dhcpd
lease_file=/var/state/dhcp/dhcpd.leases
lease_sort=0
dhcpd_nocols=5
  0707010002fbe3000081a40000000000000002000000013ac038a200000094000000200000000000000000000000000000002200000003reloc/dhcpd/config-suse-linux-7.1 dhcpd_conf=/etc/dhcpd.conf
pid_file=/var/run/dhcpd.pid
dhcpd_path=/usr/sbin/dhcpd
lease_file=/var/lib/dhcp/dhcpd.leases
lease_sort=0
dhcpd_nocols=5
0707010002fbe4000081a40000000000000002000000013ac038a20000008b000000200000000000000000000000000000001f00000003reloc/dhcpd/config-turbo-linux    dhcpd_conf=/etc/dhcpd.conf
pid_file=/var/run/dhcpd.pid
dhcpd_path=/usr/sbin/dhcpd
lease_file=/etc/dhcpd.leases
lease_sort=0
dhcpd_nocols=5
 0707010002fbe5000081a40000000000000002000000013ac038a2000000ab000000200000000000000000000000000000001c00000003reloc/dhcpd/config-unixware   dhcpd_conf=/usr/local/etc/dhcpd.conf
pid_file=/usr/local/etc/dhcpd.pid
dhcpd_path=/usr/local/sbin/dhcpd
lease_file=/usr/local/etc/dhcpd.leases
lease_sort=0
dhcpd_nocols=5
 0707010002fbe6000081a40000000000000002000000013ac038a100000161000000200000000000000000000000000000001800000003reloc/dhcpd/config.info   dhcpd_conf=DHCP server config file,0
dhcpd_path=DHCP server executable,0
interfaces=Interfaces to run DHCP on,3,Automatic
pid_file=Path to DHCP server PID file,0
lease_file=DHCP server lease file,0
lease_sort=Sort leases by,1,0-Order in file,1-IP address,2-Hostname
hostnet_list=Display subnets and hosts as,1,0-Icons,1-List
dhcpd_nocols=Icons in row,0
   0707010002fbe7000081a40000000000000002000000013ac038a2000000fb000000200000000000000000000000000000001b00000003reloc/dhcpd/config.info.de    dhcpd_conf=DHCP Server Konfigurationsdatei,0
dhcpd_path=Ausf&uuml;hrbare Datei des DHCP Server,0
interfaces=Netzwerkanschl&uuml;sse, an denen der DHCP horcht,3,Automatisch
pid_file=Pfad zur DHCP Server PID Datei,0
lease_file=DHCP Server Lease Datei,0
 0707010002fbe8000081a40000000000000002000000013ac038a2000001c0000000200000000000000000000000000000001b00000003reloc/dhcpd/config.info.es    dhcpd_conf=Archivo de configuraci髇 del servidor DHCP,0
dhcpd_path=Ejecutable del servidor DHCP,0
interfaces=Interfases donde ejecutar DHCP,3,Autom醫ica
pid_file=Trayectoria a archivo PID del servidor DHCP,0
lease_file=Archivo de arriendo del servidor DHCP,0
lease_sort=Clasificar arriendos por,1,0-Orden en archivo,1-Direcciones IP,2-Nombre de m醧uina
hostnet_list=Mostrar subredes y m醧uinas como,1,0-Iconos,1-Lista
dhcpd_nocols=Iconos en fila,0
0707010002fbe9000081a40000000000000002000000013ac038a20000010d000000200000000000000000000000000000001b00000003reloc/dhcpd/config.info.fr    dhcpd_conf=Fichier de configuration du serveur DHCP,0
dhcpd_path=Ex閏utable du serveur DHCP,0
interfaces=Interfaces sur lequel s'ex閏ute DHCP,3,Automatique
pid_file=Chemin du fichier de num閞o de processus du serveur DHCP,0
lease_file=Fichier d'attribution DHCP,0
   0707010002fbea000081a40000000000000002000000013ac038a1000001c4000000200000000000000000000000000000001b00000003reloc/dhcpd/config.info.pl    dhcpd_conf=Plik konfiguracyjny serwera DHCP,0
dhcpd_path=Plik programu serwera DHCP,0
interfaces=Interfejsy&#44; na kt髍ych ma pracowa DHCP,3,Automatycznie
pid_file=ie縦a do pliku z&nbsp;numerem PID serwera DHCP,0
lease_file=Plik dzier縜w serwera DHCP,0
lease_sort=Uporz眃kuj dzier縜wy wg,1,0-Kolejno禼i w&nbsp;pliku,1-Adres體 IP,2-Nazw host體
hostnet_list=Poka podsieci i&nbsp;hosty jako,1,0-Ikony,1-List
dhcpd_nocols=Ilo舵 ikon w&nbsp;wierszu,0
0707010002fbeb000081a40000000000000002000000013ac038a2000000ed000000200000000000000000000000000000001e00000003reloc/dhcpd/config.info.ru_RU dhcpd_conf=暑眙桡箴圉桀眄 羿殡 DHCP 皴疴屦,0
lease_file=脏殡 囵屙 DHCP 皴疴屦,0
pid_file=象螯  pid 羿殡 DHCP 皴疴屦,0
interfaces=软蝈痿彘覃 钺耠箧桠噱禧 DHCP 皴疴屦铎,3,棱蝾爨蜩麇耜
dhcpd_path=锐镱腠屐 祛潴朦 DHCP 皴疴屦,0
   0707010002fbec000081a40000000000000002000000013ac038a2000000ed000000200000000000000000000000000000001e00000003reloc/dhcpd/config.info.ru_SU dhcpd_conf=胂纹汕找撩上挝偈 屏侍 DHCP 优易乓,0
dhcpd_path=橛邢涛雅唾 拖恼特 DHCP 优易乓,0
interfaces=槲耘移攀淤 下犹罩勺僚唾 DHCP 优易乓贤,3,嶙韵土陨夼铀
pid_file=鹫载  pid 屏侍 DHCP 优易乓,0
lease_file=媪侍 烈盼 DHCP 优易乓,0
   0707010002fbed000081a40000000000000002000000013ac038a20000017f000000200000000000000000000000000000001b00000003reloc/dhcpd/config.info.sv    dhcpd_conf=Konfigurationsfil f鰎 DHCP-server,0
dhcpd_path=Exekverbar fil f鰎 DHCP-server,0
interfaces=DHCP k鰎 p interface,3,Automatiskt
pid_file=S鰇v鋑 till PID-fil f鰎 DHCP-server,0
lease_file=L錸efil f鰎 DHCP-server,0
lease_sort=Sortera l錸 efter,1,0-ordning i filen,1-IP-adress,2-datornamn
hostnet_list=Visa deln鋞 och datorer som,1,0-Ikoner,1-Lista
dhcpd_nocols=ikoner i rad,0
 0707010002fbee000081a40000000000000002000000013ac038a2000000f1000000200000000000000000000000000000001b00000003reloc/dhcpd/config.info.tr    dhcpd_conf=DHCP sunucusu yap齦and齬ma dosyas,0
dhcpd_path=DHCP sunucusu 鏰lt齬ma dosyas,0
interfaces=DHCP'nin 鏰laca瘕 aray鼁ler,3,Otomatik
pid_file=DHCP sunucusu pid dosyas yolu,0
lease_file=DHCP sunucusu istemci kay齮lar dosyas,0
   0707010002fbef000081a40000000000000002000000013ac038a2000000a2000000200000000000000000000000000000001e00000003reloc/dhcpd/config.info.zh_CN dhcpd_conf=DHCP服务器配置文件,0
dhcpd_path=DHCP服务器执行文件,0
interfaces=运行DHCP界面,3,自动
pid_file=DHCP服务器pid文件的路径,0
lease_file=DHCP服务器租赁文件,0
  0707010002fbf0000081a40000000000000002000000013ac038a2000000af000000200000000000000000000000000000002300000003reloc/dhcpd/config.info.zh_TW.Big5    dhcpd_conf=DHCP 狝竟舱篈郎,0
dhcpd_path=DHCP 狝竟磅︽郎,0
interfaces=磅︽ DHCP ざ,3,笆
pid_file= DHCP 狝竟 PID 郎隔畖,0
lease_file=DHCP 狝竟郎,0
 0707010002fbf1000081a40000000000000002000000013ac038a100000c39000000200000000000000000000000000000001f00000003reloc/dhcpd/confirm_delete.cgi    #!/usr/local/bin/perl
# save_shared.cgi
# Update, create or delete a shared network

require './dhcpd-lib.pl';
require './params-lib.pl';
&ReadParse();
$par = &get_parent_config();
foreach $i ($in{'sidx'}, $in{'uidx'}, $in{'idx'}) {
	if ($i ne "") {
		$par = $par->{'members'}->[$i];
		}
	}

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");

@host = &find("host", $par->{'members'});
@group = &find("group", $par->{'members'});
@subn = &find("subnet", $par->{'members'});
if ($in{'type'} == 0) {
	&error("$text{'eacl_np'} $text{'eacl_pdn'}")
		if !&can('rw', \%access, $par, 1);
	}
elsif ($in{'type'} == 1) {
	&error("$text{'eacl_np'} $text{'eacl_pds'}")
		if !&can('rw', \%access, $par, 1);
	}
elsif ($in{'type'} == 2) {
	&error("$text{'eacl_np'} $text{'eacl_pdg'}")
		if !&can('rw', \%access, $par, 1);
	}
if ($in{'type'} == 0) {
	foreach $s (@subn) {
		&error("$text{'eacl_np'} $text{'eacl_pds'}")
			if !&can('rw', \%access, $s, 1);
		}
	}
if ($in{'type'} < 2) {
	foreach $g (@group) {
		&error("$text{'eacl_np'} $text{'eacl_pdg'}")
			if !&can('rw', \%access, $g, 1);
		}
	}
foreach $h (@host) {
	&error("$text{'eacl_np'} $text{'eacl_pdh'}")
		if !&can('rw', \%access, $h, 1);
	}

if ($in{'type'} == 0) {
	$name = $par->{'values'}->[0];
	}
elsif ($in{'type'} == 1) {
	$name = $par->{'values'}->[0]."/".$par->{'values'}->[2];
	}
elsif ($in{'type'} == 2) {
	local $gm = @host;
	$name = &group_name($gm);
	}
else {
	&error($text{'cdel_eunknown'});
	}

&header($text{'cdel_header'}, "");
@types1 = ($text{'cdel_shared1'}, $text{'cdel_subnet1'}, $text{'cdel_group1'});
@types2 = ($text{'cdel_shared2'}, $text{'cdel_subnet2'}, $text{'cdel_group2'});
print "<hr>\n";
print &text('cdel_txt', $types1[$in{'type'}], $name), "<br><br>\n";

if (@host > 0) {
	print ((@host > 1) ? $text{'cdel_hosts'} : $text{'cdel_host'});
	print ": ";
	$start = 1;
	foreach $i (@host) {
		if ($start) { $start = 0; }
		else { print ", " }
		print $i->{'values'}->[0];
		}
	print "<br>\n";
	}
if (@group > 0) {
	print ((@group > 1) ? $text{'cdel_groups'} : $text{'cdel_group'});
	print ":";
	$start = 1;
	foreach $i (@group) {
		local (@ghosts, $gm);
		if ($start) { $start = 0; }
		else { print ", " }
		@ghosts = &find("host", $i->{'members'});
		$gm = @ghosts;
		print &group_name($gm);
		}
	print "<br>\n";
	}
if (@subn > 0) {
	print ((@subn > 1) ? $text{'cdel_subnets'} : $text{'cdel_subnet'});
	print ": ";
	$start = 1;
	foreach $i (@subn) {
		if ($start) { $start = 0; }
		else { print ", " }
		print $i->{'values'}->[0], "/", $i->{'values'}->[2];
		}
	print "<br>\n";
	}

print "<form action=delete_all.cgi>\n";
print "<input name=idx value=\"$in{'idx'}\" type=hidden>\n";
print "<input name=uidx value=\"$in{'uidx'}\" type=hidden>\n";
print "<input name=sidx value=\"$in{'sidx'}\" type=hidden>\n";

print "<b>", text('cdel_confirm', $types2[$in{'type'}]), "</b>\&nbsp;\&nbsp;\&nbsp;";
print "<input type=submit name=delete value=\"$text{'yes'}\">\n";
print "<input type=submit value=\"$text{'no'}\">\n";
print "</form>\n";

print "<hr>\n";
&footer("", $text{'cdel_return'});

   0707010002fbf2000081a40000000000000002000000013ac038a2000000d5000000200000000000000000000000000000001700000003reloc/dhcpd/defaultacl    c_sub=1
r_sub=1
w_sub=1
c_sha=1
r_sha=1
w_sha=1
c_hst=1
r_hst=1
w_hst=1
c_grp=1
r_grp=1
w_grp=1
uniq_hst=0
uniq_sub=0
uniq_sha=0
smode=0
hide=1
per_hst_acls=0
per_sub_acls=0
r_leases=1
w_leases=1
global=1
apply=1
   0707010002fbf3000081a40000000000000002000000013ac038a20000086d000000200000000000000000000000000000001b00000003reloc/dhcpd/delete_all.cgi    #!/usr/local/bin/perl
# save_shared.cgi
# Update, create or delete a shared network

require './dhcpd-lib.pl';
require './params-lib.pl';
&ReadParse();
if (!($in{'delete'} eq $text{'yes'})) {
	&redirect("");
	}
&lock_file($config{'dhcpd_conf'});
$par = &get_parent_config();
foreach $i ($in{'sidx'}, $in{'uidx'}) {
	if ($i ne "") {
		$par = $par->{'members'}->[$i];
		}
	}
$parconf = $par->{'members'};
$to_del = $parconf->[$in{'idx'}];
@host = &find("host", $to_del->{'members'});
@group = &find("group", $to_del->{'members'});
@subn = &find("subnet", $to_del->{'members'});

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if ($to_del->{'name'} eq "group") {
	&error("$text{'eacl_np'} $text{'eacl_pdg'}")
		if !&can('rw', \%access, $to_del, 1);
	}
elsif ($to_del->{'name'} eq "subnet") {
	$type = 'sub';
	&error("$text{'eacl_np'} $text{'eacl_pds'}")
		if !&can('rw', \%access, $to_del, 1);
	foreach $g (@group) {
		&error("$text{'eacl_np'} $text{'eacl_pdg'}")
			if !&can('rw', \%access, $g, 1);
		}
	}
elsif ($to_del->{'name'} eq "shared") {
	&error("$text{'eacl_np'} $text{'eacl_pdn'}")
		if !&can('rw', \%access, $to_del, 1);
	foreach $s (@subn) {
		&error("$text{'eacl_np'} $text{'eacl_pds'}")
			if !&can('rw', \%access, $s, 1);
		}
	foreach $g (@group) {
		&error("$text{'eacl_np'} $text{'eacl_pdg'}")
			if !&can('rw', \%access, $g, 1);
		}
	}
else {
	&error($text{'cdel_eunknown'});
	}

foreach $h (@host) {
	&error("$text{'eacl_np'} $text{'eacl_pdh'}")
		if !&can('rw', \%access, $h, 1);
	}

if ($type) {
	&drop_dhcpd_acl($type, \%access, $to_del);
	}
&save_directive($par, [ $to_del ], [ ], 0);
&flush_file_lines();
&unlock_file($config{'dhcpd_conf'});
if ($to_del->{'name'} eq "group") {
	@count = &find("host", $group->{'members'});
	&webmin_log('delete', 'group', join(",", map { $_->{'values'}->[0] } @count), \%in);
	}
elsif ($to_del->{'name'} eq "subnet") {
	&webmin_log('delete', 'subnet', "$sub->{'values'}->[0]/$sub->{'values'}->[2]", \%in);
	}
elsif ($to_del->{'name'} eq "shared") {
	&webmin_log('delete', 'shared', $sha->{'values'}->[0], \%in);
	}

&redirect("");
   0707010002fbf4000081e40000000000000002000000013ac038a200000463000000200000000000000000000000000000001d00000003reloc/dhcpd/delete_lease.cgi  #!/usr/local/bin/perl
# delete_lease.cgi
# Delete one lease from the leases file

require './dhcpd-lib.pl';
&ReadParse();

%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if( !($access{'w_leases'} && $access{'r_leases'}) ) {
	&error("$text{'eacl_np'} $text{'eacl_pdl'}");
	}       

&tokenize_file($config{'lease_file'}, \@tok);
$i = $j = 0;
while($i < @tok) {
	$lease = &parse_struct(\@tok, \$i, $j++, $config{'lease_file'});
	if ($lease->{'index'} == $in{'idx'}) {
		# found the one to delete!
		&lock_file($config{'lease_file'});
		$lref = &read_file_lines($config{'lease_file'});
		splice(@$lref, $lease->{'line'},
		       $lease->{'eline'} - $lease->{'line'} + 1);
		&flush_file_lines();
		&unlock_file($config{'lease_file'});
		if (open(PID, $config{'pid_file'})) {
			chop($pid = <PID>);
			close(PID);
			&kill_logged('TERM', $pid);
			&backquote_logged("$config{'dhcpd_path'} -cf $config{'dhcpd_conf'} $config{'interfaces'} 2>&1");
			}
		&webmin_log("delete", "lease", $lease->{'values'}->[0]);
		last;
		}
	}
&redirect("list_leases.cgi?all=$in{'all'}");

 0707010002fbf5000081e40000000000000002000000013ac038a10000439f000000200000000000000000000000000000001900000003reloc/dhcpd/dhcpd-lib.pl  # dhcpd-lib.pl
# Functions for parsing the DHCPD config file

do '../web-lib.pl';
&init_config();

# get_parent_config()
# Returns a dummy parent structure for the DHCP config
sub get_parent_config
{ 
return $get_parent_config_cache if ($get_parent_config_cache);
return ($get_parent_config_cache =
		{
		 'file' => $config{'dhcpd_conf'},
	     'members' => &get_config(),
	     'line' => -1,
	     'eline' => $get_config_lines 
		  } );
}

# get_config()
# Parses the DHCPD config file into a data structure
sub get_config
{
return \@get_config_cache if (@get_config_cache);
local(@tok, @rv, $i, $t, $j, $ifile, @inc, $str);

$get_config_lines = &tokenize_file($config{'dhcpd_conf'}, \@tok);
$i = 0; $j = 0;
while($i < @tok) {
	$str = &parse_struct(\@tok, \$i, $j++, $config{'dhcpd_conf'});
	if ($str) { push(@rv, $str); }
	}
@get_config_cache = @rv;
return \@get_config_cache;
}

# tokenize_file(file, &tokens)
sub tokenize_file
{
local $lines = 0;
local ($line, $cmode);
open(FILE, $_[0]);
while($line = <FILE>) {
	# strip comments
	$line =~ s/\r|\n//g;
	$line =~ s/^([^"#]*)#.*$/$1/g;
	$line =~ s/^([^"]*)\/\/.*$/$1/g;
	while(1) {
		if (!$cmode && $line =~ /\/\*/) {
			# start of a C-style comment
			$cmode = 1;
			$line =~ s/\/\*.*$//g;
			}
		elsif ($cmode) {
			if ($line =~ /\*\//) {
				# end of comment
				$cmode = 0;
				$line =~ s/^.*\*\///g;
				}
			else { $line = ""; last; }
			}
		else { last; }
		}

	# split line into tokens
	while(1) {
		if ($line =~ /^\s*"([^"]*)"(.*)$/) {
			push(@{$_[1]}, [ $1, 1, $lines ]); $line = $2;
			}
		elsif ($line =~ /^\s*([{};])(.*)$/) {
			push(@{$_[1]}, [ $1, 0, $lines ]); $line = $2;
			}
		elsif ($line =~ /^\s*([^{}; \t]+)(.*)$/) {
			push(@{$_[1]}, [ $1, 0, $lines ]); $line = $2;
			}
		else { last; }
		}
	$lines++;
	}
close(FILE);
return $lines;
}

# parse_struct(&tokens, &token_num, index, file)
# A structure can either have one value, or a list of values.
# Pos will end up at the start of the next structure
sub parse_struct
{
local(%str, $i, $t, @vals, @quotes, $str, @text);
$i = ${$_[1]};
$str{'name'} = $_[0]->[$i]->[0];
$str{'line'} = $_[0]->[$i]->[2];
while(1) {
	$t = $_[0]->[++$i];
	if ($t->[0] eq "{" || $t->[0] eq ";") { last; }
	elsif (!defined($t->[0])) { ${$_[1]} = $i; return undef; }
	else { push(@vals, $t->[0]); push(@quotes, $t->[1]); }
	push(@text, $t->[1] ? "\"$t->[0]\"" : $t->[0]);
	}
$str{'values'} = \@vals;
$str{'quotes'} = \@quotes;
$str{'value'} = $vals[0];
$str{'text'} = join(" ", @text);
$str{'index'} = $_[2];
$str{'file'} = $_[3];
if ($t->[0] eq "{") {
	# contains sub-structures.. parse them
	local(@mems, $j);
	$i++;		# skip {
	$str{'type'} = 1;
	$j = 0;
	while($_[0]->[$i]->[0] ne "}") {
		if (!defined($_[0]->[$i]->[0]))
			{ ${$_[1]} = $i; return undef; }
		$str = &parse_struct($_[0], \$i, $j++, $_[3]);
		if ($str) { push(@mems, $str); }
		}
	$str{'members'} = \@mems;
	$i++;		# skip trailing }
	}
else {
	# only a single value..
	$str{'type'} = 0;
	$i++;	# skip trailing ;
	}
$str{'eline'} = $_[0]->[$i-1]->[2];	# ending line is the line number the
					# trailing ; is on
${$_[1]} = $i;
return \%str;
}

# find(name, &array)
sub find
{
local($c, @rv);
foreach $c (@{$_[1]}) {
	if ($c->{'name'} eq $_[0]) {
		push(@rv, $c);
		}
	}
return @rv ? wantarray ? @rv : $rv[0]
           : wantarray ? () : undef;
}

# find_value(name, &array)
sub find_value
{
local(@v);
@v = &find($_[0], $_[1]);
if (!@v) { return undef; }
elsif (wantarray) { return map { $_->{'value'} } @v; }
else { return $v[0]->{'value'}; }
}

# choice_input(text, name, &config, [display, option]+)
sub choice_input
{
local($rv, $v, $i, @ops);
$rv = "<td><b>$_[0]</b></td> <td>";
$v = &find_value($_[1], $_[2]);
for($i=3; $i<@_; $i+=2) {
	@ops = split(/,/, $_[$i+1]);
	$rv .= "<input type=radio name=$_[1] value=\"$ops[0]\" ".
		($v eq $ops[0] ? "checked" : "").">$_[$i]\n";
	}
return $rv."</td>\n";
}

# save_choice(name, &parent, indent)
sub save_choice
{
local($nd);
if ($in{$_[0]}) { $nd = { 'name' => $_[0], 'values' => [ $in{$_[0]} ] }; }
&save_directive($_[1], $_[0], $nd ? [ $nd ] : [ ], $_[2], 1);
}

# addr_match_input(text, name, &config)
# A field for editing a list of addresses, ACLs and partial IP addresses
sub addr_match_input
{
local($v, $rv, $av, @av);
$v = &find($_[1], $_[2]);
$rv = "<td><b>$_[0]</b></td> <td>";
$rv .= "<input type=radio name=$_[1]_def value=1 ".
       ($v ? "" : "checked").">Default ";
$rv .= "<input type=radio name=$_[1]_def value=0 ".
       ($v ? "checked" : "").">Listed..<br>";
foreach $av (@{$v->{'members'}}) { push(@av, $av->{'name'}); }
$rv .= "<textarea name=$_[1] rows=3 cols=15>".
	join("\n", @av)."</textarea></td>\n";
}

sub save_addr_match
{
local($addr, @vals, $dir);
if ($in{"$_[0]_def"}) { &save_directive($_[1], $_[0], [ ], $_[2], 1); }
else {
	foreach $addr (split(/\s+/, $in{$_[0]})) {
		push(@vals, { 'name' => $addr });
		}
	$dir = { 'name' => $_[0], 'type' => 1, 'members' => \@vals };
	&save_directive($_[1], $_[0], [ $dir ], $_[2], 1);
	}
}

# address_input(text, name, &config, type)
sub address_input
{
local($v, $rv, $av, @av);
$v = &find($_[1], $_[2]);
foreach $av (@{$v->{'members'}}) { push(@av, $av->{'name'}); }
if ($_[3] == 0) {
	# text area
	$rv = "<td><b>$_[0]</b></td> <td>";
	$rv .= "<textarea name=$_[1] rows=3 cols=15>".
		join("\n", @av)."</textarea></td>\n";
	}
else {
	$rv = "<td><b>$_[0]</b></td> <td colspan=3>";
	$rv .= "<input name=$_[1] size=50 value=\"".join(' ',@av)."\"></td>\n";
	}
return $rv;
}

sub save_address
{
local($addr, @vals, $dir);
foreach $addr (split(/\s+/, $in{$_[0]})) {
	&check_ipaddress($addr) || &error("'$addr' is not a valid IP address");
	push(@vals, { 'name' => $addr });
	}
$dir = { 'name' => $_[0], 'type' => 1, 'members' => \@vals };
&save_directive($_[1], $_[0], @vals ? [ $dir ] : [ ], $_[2], 1);
}

# opt_input(text, name, &config, default, size, units)
sub opt_input
{
local($v, $rv);
$v = &find($_[1], $_[2]);
$rv = "<td><b>$_[0]</b></td> <td nowrap";
$rv .= $_[4] > 30 ? " colspan=3>\n" : ">\n";
$rv .= sprintf "<input type=radio name=$_[1]_def value=1 %s> $_[3]\n",
	$v ? "" : "checked";
$rv .= sprintf "<input type=radio name=$_[1]_def value=0 %s> ",
	$v ? "checked" : "";
$rv .= sprintf "<input name=$_[1] size=$_[4] value=\"%s\"> $_[5]</td>\n",
	$v ? $v->{'value'} : "";
return $rv;
}

# save_opt(name, &func, &parent, [indent], [quote])
sub save_opt
{
local($dir);
if ($in{"$_[0]_def"}) { &save_directive($_[2], $_[0], [ ], $_[3], 1); }
elsif ($_[1] && ($err = &{$_[1]}($in{$_[0]}))) {
	&error($err);
	}
else {
	$dir = { 'name' => $_[0],
		 'values' => [ $in{$_[0]} ],
		 'quotes' => [ $_[4] ] };
	&save_directive($_[2], $_[0], [ $dir ], $_[3], 1);
	}
}

# save_directive(&parent, [name|&oldvalues], &values, indent, start)
# Given a structure containing a directive name, type, values and members
# add, update or remove that directive in config structure and data files.
# Updating of files assumes that there is no overlap between directives -
# each line in the config file must contain part or all of only one directive.
sub save_directive
{
local(@oldv, @newv, $pm, $i, $o, $n, $lref, @nl);
$pm = $_[0]->{'members'};
@oldv = ref($_[1]) ? @{$_[1]} : &find($_[1], $pm);
@newv = @{$_[2]};
for($i=0; $i<@oldv || $i<@newv; $i++) {
	if ($i >= @oldv && $_[4]) {
		# a new directive is being added.. put it at the start of
		# the parent
		$lref = &read_file_lines($_[0]->{'file'});
		@nl = &directive_lines($newv[$i], $_[3]);
		splice(@$lref, $_[0]->{'line'}+1, 0, @nl);
		&renumber(&get_config(), $_[0]->{'line'}+1,
			  $_[0]->{'file'}, scalar(@nl));
		&renumber_index($_[0]->{'members'}, 0, 1);
		$newv[$i]->{'file'} = $_[0]->{'file'};
		$newv[$i]->{'line'} = $_[0]->{'line'}+1;
		$newv[$i]->{'eline'} = $_[0]->{'line'} + scalar(@nl);
		unshift(@$pm, $newv[$i]);
		}
	elsif ($i >= @oldv) {
		# a new directive is being added.. put it at the end of
		# the parent
		$lref = &read_file_lines($_[0]->{'file'});
		@nl = &directive_lines($newv[$i], $_[3]);
		splice(@$lref, $_[0]->{'eline'}, 0, @nl);
		&renumber(&get_config(), $_[0]->{'eline'},
			  $_[0]->{'file'}, scalar(@nl));
		$newv[$i]->{'file'} = $_[0]->{'file'};
		$newv[$i]->{'line'} = $_[0]->{'eline'};
		$newv[$i]->{'eline'} = $_[0]->{'eline'} + scalar(@nl) - 1;
		push(@$pm, $newv[$i]);
		}
	elsif ($i >= @newv) {
		# a directive was deleted
		$lref = &read_file_lines($oldv[$i]->{'file'});
		$ol = $oldv[$i]->{'eline'} - $oldv[$i]->{'line'} + 1;
		splice(@$lref, $oldv[$i]->{'line'}, $ol);
		&renumber(&get_config(), $oldv[$i]->{'eline'},
			  $oldv[$i]->{'file'}, -$ol);
		&renumber_index($_[0]->{'members'}, $oldv[$i]->{'index'}, -1);
		splice(@$pm, &indexof($oldv[$i], @$pm), 1);
		}
	else {
		# updating some directive
		$lref = &read_file_lines($oldv[$i]->{'file'});
		@nl = &directive_lines($newv[$i], $_[3]);
		$ol = $oldv[$i]->{'eline'} - $oldv[$i]->{'line'} + 1;
		&renumber(&get_config(), $oldv[$i]->{'eline'},
			  $oldv[$i]->{'file'}, scalar(@nl) - $ol);
		splice(@$lref, $oldv[$i]->{'line'}, $ol, @nl);
		$newv[$i]->{'file'} = $_[0]->{'file'};
		$newv[$i]->{'line'} = $oldv[$i]->{'line'};
		$newv[$i]->{'eline'} = $oldv[$i]->{'line'} + scalar(@nl) - 1;
		$pm->[&indexof($oldv[$i], @$pm)] = $newv[$i];
		}
	}
}

# directive_lines(&directive, tabs)
# Renders some directive into a number of lines of text
sub directive_lines
{
local(@rv, $v, $m, $i);
$rv[0] = "\t" x $_[1];
$rv[0] .= "$_[0]->{'name'}";
for($i=0; $i<@{$_[0]->{'values'}}; $i++) {
	$v = $_[0]->{'values'}->[$i];
	if ($_[0]->{'quotes'}->[$i]) { $rv[0] .= " \"$v\""; }
	else { $rv[0] .= " $v"; }
	}
if ($_[0]->{'type'}) {
	# multiple values.. include them as well
	$rv[0] .= " {";
	foreach $m (@{$_[0]->{'members'}}) {
		push(@rv, &directive_lines($m, $_[1]+1));
		}
	push(@rv, ("\t" x ($_[1]+1))."}");
	}
else { $rv[$#rv] .= ";"; }
return @rv;
}

# renumber(&directives, line, file, count)
# Runs through the given array of directives and increases the line numbers
# of all those greater than some line by the given count
sub renumber
{
local($d);
local ($list, $line, $file, $count) = @_;
return if (!$count);
foreach $d (@$list) {
	if ($d->{'file'} eq $file) {
		if ($d->{'line'} >= $line) { $d->{'line'} += $count; }
		if ($d->{'eline'} >= $line) { $d->{'eline'} += $count; }
		}
	if ($d->{'type'}) {
		&renumber($d->{'members'}, $line, $file, $count);
		}
	}
}

# renumber_index(&directives, index, count)
sub renumber_index
{
local($d);
foreach $d (@{$_[0]}) {
	if ($d->{'index'} >= $_[1]) {
		$d->{'index'} += $_[2];
		}
	}
}

# directive_diff(&d1, &d2)
# Do two directives differ?
sub directive_diff
{
local $i;
local ($d1, $d2) = @_;
return 1 if ($d1->{'name'} ne $d2->{'name'});
local $l1 = @{$d1->{'values'}};
local $l2 = @{$d2->{'values'}};
return 1 if ($l1 != $l2);
for($i=0; $i<$l1; $i++) {
	return 1 if ($d1->{'values'}->[$i] ne $d2->{'values'}->[$i]);
	}
return 1 if ($d1->{'type'} != $d2->{'type'});
if ($d1->{'type'}) {
	$l1 = @{$d1->{'members'}};
	$l2 = @{$d2->{'members'}};
	return 1 if ($l1 != $l2);
	for($i=0; $i<$l1; $i++) {
		return 1 if (&directive_diff($d1->{'members'}->[$i],
					     $d2->{'members'}->[$i]));
		}
	}
return 0;
}

# group_name($members)
sub group_name
{
return ($_[0] == 0) ? $text{'index_nomemb'} :
	($_[0] == 1) ? $text{'index_1memb'} :
	($_[0] >= 2 && $_[0] <= 4) ? &text('index_234memb', $_[0]) :
	&text('index_memb', $_[0]);

}

# get_subnets_and_hosts() 
# returns the references to sorted lists of hosts and subnets
sub get_subnets_and_hosts
{
return (\@get_subnets_cache, \@get_hosts_cache) 
	if (@get_subnets_cache && @get_hosts_cache);

local(@subn,@host,@group,@shan, $s,$h,$g,$sn, $conf);
$conf = &get_config();

# get top level hosts and groups
@host = &find("host", $conf);
foreach $h (&find("host", $conf)) {
	$h->{'order'} = $h->{'index'};
	}
@group = &find("group", $conf);
foreach $g (@group) {
	foreach $h (&find("host", $g->{'members'})) {
		push(@host, $h);
		}
	}
@subn = &find("subnet", $conf);
foreach $u (@subn) {
	foreach $h (&find("host", $u->{'members'})) {
		push(@host, $h);
		}
	foreach $g (&find("group", $u->{'members'})) {
		push(@group, $g);
		foreach $h (&find("host", $g->{'members'})) {
			push(@host, $h);
			}
		}
	}
@shan = &find("shared-network", $conf);
foreach $s (@shan) {
	foreach $h (&find("host", $s->{'members'})) {
		push(@host, $h);
		}
	foreach $g (&find("group", $s->{'members'})) {
		push(@group, $g);
		foreach $h (&find("host", $g->{'members'})) {
			push(@host, $h);
			}
		}
	foreach $u (&find("subnet", $s->{'members'})) {
		push(@subn, $u);
		foreach $h (&find("host", $u->{'members'})) {
			push(@host, $h);
			}
		foreach $g (&find("group", $sn->{'members'})) {
			push(@group, $g);
			foreach $h (&find("host", $g->{'members'})) {
				push(@host, $h);
				}
			}
		}
	}
@get_subnets_cache = sort { $a->{'order'} <=> $b->{'order'} } @subn;
@get_hosts_cache = sort { $a->{'order'} <=> $b->{'order'} } @host;

return (\@get_subnets_cache, \@get_hosts_cache);
}

sub get_subnets
{
local ($sr, $hr) = &get_subnets_and_hosts();
return @{$sr};
}

sub get_hosts
{
local ($sr, $hr) = &get_subnets_and_hosts();
return @{$hr};
}

# hash that links objtypes shortcuts with object names
%obj_names2types = qw(host hst group grp subnet sub shared-network sha);

# get_branch($objtype) 
# usefull for edit_*.cgi and save_*.cgi scripts
# $objtype = one of 'hst' 'grp' 'sub' 'sha'
sub get_branch
{
local %obj_types2names = reverse %obj_names2types;
local $name = $obj_types2names{$_[0]};
local ($parnode, $nparnode, $node, $indent, $nindent);
$parnode = $nparnode = &get_parent_config();
$indent = $nindent = 0;
foreach ($in{'sidx'}, $in{'uidx'}, $in{'gidx'}) {
    if ($_ ne '') {
		$parnode = $parnode->{'members'}->[$_];
		$indent++;
		}
    }

if (!($in{'delete'} && $in{'options'})) {
	if ($in{'assign'} > 0 && !defined($in{'parent'})) {
		# A quirk for not javascript-capable browser
		# New parent is undefined yet; we need 2nd step
		undef $nparnode;
		}
	else {
		foreach (split(/\,/, $in{'parent'})) {
			$nindent++;
			if ($_ < @{$nparnode->{'members'}}) {
				$nparnode = $nparnode->{'members'}->[$_];
				}
			}
		}
	}

if (!$in{'new'}) {
	$node = $parnode->{'members'}->[$in{'idx'}];
	}
else {
	die "Wrong call to get_nodes: pass objtype for new object" unless $name;
	# Construct new node structure
	$node->{'name'} = $name;
	$node->{'type'} = 1;
	$node->{'members'} = [ ];
	}
return ($parnode, $node, $indent, $nparnode, $nindent);
}

# can(permissions_string, \%access, \%config_node, smode)
# this is a cached wrapper of can_noncached(...)
sub can
{
local ($perm, $acc, $node, $smode) = @_;
if (defined($can_cache) &&
	($can_perm_cache eq $perm) &&
	($can_node_cache eq $node) &&
	($can_smode_cache eq $smode)) {
	return $can_cache;
	}
else {
	$can_perm_cache = $perm;
	$can_node_cache = $node;
	$can_smode_cache = $smode;
	return ($can_cache = &can_noncached(@_));
	}
}

# can_noncached(permissions_string, \%access, \%config_node, smode)
# check global and per-object permissions:
#
# permissions_string= 'c' 'r' 'w' or any combination.
# smode= 0 or undef - check only current, 1 - recursive childs check, 
#	2 - check parents, 3 - check parents and all childs
#	note: while deleting an object you must allways enforce smode=1 or 3
#		because all child objects are deletes recursevly. 
#	this maybe an optional parameter 
sub can_noncached
{
local $acl;
local ($perm, $acc, $node, $smode) = @_;
local @perm = split(//, $perm);

if ($node ne get_parent_config()) {
	foreach (@perm) { 
		next if ($_ ne 'c') &&  ($_ ne 'r') && ($_ ne 'w');
		return 0 unless $acc->{$_ . '_' . $obj_names2types{$node->{'name'}} };
		}

	# per-object permissions
	return 0 unless &can_node(\@perm, $acc, $node);

	if (($acc->{'smode'} == 2) || ($smode == 2) ||
	    ($acc->{'smode'} == 3) || ($smode == 3)) {
		# check parents
		$parnode=&get_parent_config();								
		foreach ($in{'sidx'}, $in{'uidx'}, $in{'gidx'}) {
			if ($_ ne '') {
				$parnode = $parnode->{'members'}->[$_];
				return 0 unless &can_node(\@perm, $acc, $parnode);
				}
			}
		}
		
	if (($acc->{'smode'} == 1) || ($smode == 1) ||
		($acc->{'smode'} == 3) || ($smode == 3)) {
		# check childs
		return 0 unless &can_subtree(\@perm, $acc, $node);
		}
	}
return 1;
}

# can_node(\@perm, $acc, $node)
# checks object permissions for current node
sub can_node
{
local ($rperm, $acc, $node)=@_;
# per-object permissions
local $otype=$obj_names2types{$node->{'name'}};
if ($acc->{'per_' . $otype . '_acls'}) {  
	local $acl = $acc->{'ACL' . $otype . '_' . $node->{'values'}->[0]};
	foreach (@{$rperm}) {
		next if $_ eq 'c'; # skip creation perms for per-obj acls
		return 0 if index($acl, $_) == -1;
		}
	}
return 1;
}

# can_subtree(\@perm, $acc, $node)
# checks object permissions for subtree
sub can_subtree
{
local ($rperm, $acc, $node)=@_;
return 0 unless &can_node($rperm, $acc, $node); 
if($node->{'members'}) {
	# recursevly process this subtree
	foreach (@{$node->{'members'}}) {
		return 0 unless &can_subtree($rperm, $acc, $_);
		}
	}
return 1;	
}

# save_dhcpd_acl(permissions_string, obj_type, \%access, obj_name)
sub save_dhcpd_acl
{
$_[2]->{'ACL'.$_[1].'_'.$_[3]} = $_[0];
undef($can_cache);
return &save_module_acl($_[2]);
}

# drop_dhcpd_acl(obj_type, \%access, obj_name)
sub drop_dhcpd_acl
{
delete($_[1]->{'ACL'.$_[0].'_'.$_[2]});
undef($can_cache);
return &save_module_acl($_[1]);
}

1;
 0707010002fbf6000081e40000000000000002000000013ac038a100001cdb000000200000000000000000000000000000001b00000003reloc/dhcpd/edit_group.cgi    #!/usr/local/bin/perl
# edit_group.cgi
# Edit or create a group

require './dhcpd-lib.pl';
require './params-lib.pl';
&ReadParse();
$conf = &get_config();
($par, $group) = get_branch('grp');
$gconf = $group->{'members'};
$mems = $par->{'members'};

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if ($in{'new'}) {
	&error("$text{'eacl_np'} $text{'eacl_pig'}")
		unless &can('c', \%access, $group) && &can('rw', \%access, $par);
	}
else {
	&error("$text{'eacl_np'} $text{'eacl_psg'}")
		if !&can('r', \%access, $group);
	}
# per hosts acl check is below

# display
&header($in{'new'} ? $text{'egroup_crheader'} : $text{'egroup_eheader'}, "");
if ($in{'uidx'} ne '') {
	local $s = $in{'sidx'} eq '' ? $conf->[$in{'uidx'}] :
		   $conf->[$in{'sidx'}]->{'members'}->[$in{'uidx'}];
	print "<center><font size=+1>", &text('ehost_subnet',
	      $s->{'values'}->[0], $s->{'values'}->[2]), "</font></center>\n";
	}
elsif ($in{'sidx'} ne '') {
	local $s = $conf->[$in{'sidx'}];
	print "<center><font size=+1>", &text('ehost_shared',
		$s->{'values'}->[0]), "</font></center>\n";
	}
print "<hr>\n";

@shar = &find("shared-network", $conf);
@subn = &find("subnet", $conf);
$iu = 0; $is = 0;
foreach $u (@subn) {
	push(@subn_desc, $u->{'values'}->[0]);
	$script2 .= "parent.options[$iu] = "
		."new Option(\"$subn_desc[$iu]\", $iu)\n"
		."parent.options[$iu].value = "
		."new String(\"$u->{'index'}\")\n"
			if &can('rw', \%access, $u);
	if ($in{'sidx'} eq '' && $in{'uidx'} eq $u->{'index'}) {
		$sel_parent = $iu;
		$currpar = "$u->{'index'}";
		}
	$iu ++;
	}
foreach $s (@shar) {
	push(@shar_desc, $s->{'values'}->[0]);
	$script1 .= "parent.options[$is] = "
		."new Option(\"$shar_desc[$is]\", $is)\n"
		."parent.options[$is].value = "
		."new String(\"$s->{'index'}\")\n"
			if &can('rw', \%access, $s);
	if ($in{'sidx'} eq $s->{'index'} && $in{'uidx'} eq '') {
		$sel_parent = $is;
		$currpar = "$s->{'index'}";
		}
	$is ++;
	foreach $u (&find("subnet", $s->{'members'})) {
		push(@subn, $u);
		push(@subn_desc, "$u->{'values'}->[0] $text{'ehost_in'} $s->{'values'}->[0]");
		$shared{$u} = $s->{'index'};
		$script2 .= "parent.options[$iu] = "
			."new Option(\"$subn_desc[$iu]\", $iu)\n"
			."parent.options[$iu].value = "
			."new String(\"$s->{'index'},$u->{'index'}\")\n"
				if &can('rw', \%access, $u);
		if ($in{'sidx'} eq $s->{'index'} && $in{'uidx'} eq $u->{'index'}) {
			$sel_parent = $iu;
			$currpar = "$s->{'index'},$u->{'index'}";
			}
		$iu ++;
		}
	}

print "<form action=save_group.cgi>\n";
print "<input name=ret value=\"$in{'ret'}\" type=hidden>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'egroup_tblhdr'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

$rws = "rowspan=2" if (defined($in{'ret'}));
print "<tr> <td $rws valign=top><b>$text{'egroup_hosts'}</b></td>\n";
print "<td $rws><select name=hosts size=5 multiple>\n";
foreach $h (&find("host", $mems)) {
	push(@host, $h);
# if &can('r', \%access, $h);
	}
foreach $g (&find("group", $mems)) {
	foreach $h (&find("host", $g->{'members'})) {
		push(@host, $h);
# if &can('r', \%access, $h);
		$ingroup{$h} = $g->{'index'};
		}
	}
@host = sort { $a->{'values'}->[0] cmp $b->{'values'}->[0] } @host;
foreach $h (@host) {
	next if !&can('r', \%access, $h);
	printf "<option value=\"%s,%s\" %s>%s\n",
		$h->{'index'}, $ingroup{$h},
		(!$in{'new'}) && $ingroup{$h} eq $group->{'index'} ? "selected" : "",
		$h->{'values'}->[0];
	}
print "</select></td>\n";

if (!$in{'new'}) {
	# inaccessible hosts in this group
	foreach $h (@host) {
		if (!&can('r', \%access, $h) && $ingroup{$h} eq $group->{'index'}) {
			print "<input name=hosts value=\"$h->{'index'},$group->{'index'}\" type=hidden>\n";
			}
		}
	}

$assign = $in{'uidx'} ne "" ? "2" :
	$in{'sidx'} ne "" ? "1" : "0";
if (!defined($in{'ret'})) {
	local @labels = ( $text{'ehost_toplevel'}, $text{'ehost_inshared'},
			  $text{'ehost_insubnet'} );
	print "<td colspan=2><table><tr>";
	print "<td colspan=2>$text{'ehost_nojavascr'}</td></tr>\n<tr>" if ($in{'assign'});
	print "<td valign=top><b>$text{'egroup_assign'}</b><br>\n";
	if ($in{'assign'}) {
		$assign = $in{'assign'};
		print "$labels[$assign]</td>\n";
		print "<input name=assign type=hidden value=$assign>\n";
		print "<input name=jsquirk type=hidden value=1>\n";
		}
	else {
		print "<select name=assign onChange='setparent(0)'>\n";
		for ($i = 0; $i <= 2; $i++) {
			printf "<option value=$i %s>%s\n",
				$assign == $i ? "selected" : "",
				$labels[$i];
			}
		print "</select></td>\n";
		}
	print "<td><select name=parent size=5 width=120>\n";
	if ($assign == 2) {
		$iu = 0;
		foreach $u (@subn) {
			printf "<option value=\"%s\" %s>%s\n",
				defined($shared{$u}) ? "$shared{$u},$u->{'index'}" : $u->{'index'},
				$iu == $sel_parent ? "selected" : "",
				$subn_desc[$iu]
					if &can('rw', \%access, $u);
			$iu ++;
			}
		}
	elsif ($assign == 1) {
		$is = 0;
		foreach $s (@shar) {
			printf "<option value=\"%s\" %s>%s\n",
				$s->{'index'},
				$is == $sel_parent ? "selected" : "",
				$shar_desc[$is]
					if &can('rw', \%access, $s);
			$is ++;
			}
		}
	print "</select></td></tr>\n";
	print "</table></td>\n";
	print "</tr> <tr>\n";
	}
else {
	print "<input name=assign type=hidden value=$assign>\n",
	print "<input name=parent type=hidden value=$currpar>\n";
	}

print &choice_input($text{'egroup_nchoice'}, "use-host-decl-names",
	$gconf, " $text{'yes'}", "on", " $text{'no'}", "off", " $text{'default'}", "");

print "</tr> <tr>\n" if (defined($in{'ret'}));
&display_params($gconf);

print "</table></td></tr></table>\n";
print "<input type=hidden name=sidx value=\"$in{'sidx'}\">\n";
print "<input type=hidden name=uidx value=\"$in{'uidx'}\">\n";
if (!$in{'new'}) {
	print "<input type=hidden name=idx value=\"$in{'idx'}\">\n";
	print "<table width=100%><tr>\n";
	print "<td><input type=submit value=\"$text{'save'}\"></td>\n"
		if &can('rw', \%access, $group);
	print "<td align=center><input type=submit name=options value=\"",
          &can('rw', \%access, $group) ? $text{'butt_eco'} : $text{'butt_vco'},
	      "\"></td>\n";		  
	print "<td align=right><input type=submit name=delete ",
	      "value=\"$text{'delete'}\"></td>\n" 
		  if &can('rw', \%access, $group, 1);
	print "</tr></table>\n";
	print "<a href=\"edit_host.cgi?new=1&sidx=".$in{'sidx'}."&uidx=".$in{'uidx'}
		."&gidx=".$in{'idx'}."&ret=group\">"
		.$text{'index_addhst'}."</a><p>\n" if &can('rw', \%access, $group);
	}
else {
	print "<input type=hidden name=new value=1>\n";
	print "<input type=submit value=\"$text{'create'}\">\n";
	}
print "</form>\n";
print &script_fn() if (!defined($in{'ret'}));
print "<hr>\n";
if ($in{'ret'} eq "subnet") {
	&footer("edit_subnet.cgi?sidx=$in{'sidx'}&idx=$in{'uidx'}",
		$text{'egroup_retsubn'});
	}
elsif ($in{'ret'} eq "shared") {
	&footer("edit_shared.cgi?idx=$in{'sidx'}", $text{'egroup_retshar'});
	}
else {
	&footer($ret, $text{'egroup_return'});
	}

sub script_fn
{
return <<EOF
<script>
function setparent(sel)
{
var idx = document.forms[0].assign.selectedIndex;
var v = document.forms[0].assign.options[idx].value;
var vv = v.split(";");
var parent = document.forms[0].parent;
parent.length = 0;

if (v==1) {
$script1
}
if (v==2) {
$script2
}
if (parent.length > 0) {
	parent.options[sel].selected = true;
	}
}
setparent($sel_parent);
</script>
EOF

}
 0707010002fbf7000081e40000000000000002000000013ac038a100002848000000200000000000000000000000000000001a00000003reloc/dhcpd/edit_host.cgi #!/usr/local/bin/perl
# edit_host.cgi
# Edit or create a host

require './dhcpd-lib.pl';
require './params-lib.pl';
&ReadParse();
$conf = &get_config();
($par, $host) = &get_branch('hst');
$hconf = $host->{'members'};

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if ($in{'new'}  ) {
	&error("$text{'eacl_np'} $text{'eacl_pih'}")
		unless &can('c', \%access, $host) && &can('rw', \%access, $par);
	}
else {
	&error("$text{'eacl_np'} $text{'eacl_psh'}")
		if !&can('r', \%access, $host);
	}

# display
&header($in{'new'} ? $text{'ehost_crheader'} : $text{'ehost_eheader'}, "");
if ($in{'uidx'} ne '') {
	local $s = $in{'sidx'} eq '' ? $conf->[$in{'uidx'}] :
		   $conf->[$in{'sidx'}]->{'members'}->[$in{'uidx'}];
	print "<center><font size=+1>", &text('ehost_subnet', $s->{'values'}->[0],
	      $s->{'values'}->[2]), "</font></center>\n";
	}
elsif ($in{'sidx'} ne '') {
	local $s = $conf->[$in{'sidx'}];
	print "<center><font size=+1>", &text('ehost_shared', $s->{'values'}->[0]),
	      "</font></center>\n";
	}
print "<hr>\n";

@shar = &find("shared-network", $conf);
@subn = &find("subnet", $conf);
@group = &find("group", $conf);
$iu = 0; $is = 0; $ig = 0;
foreach $g (@group) {
	$gm = 0;
	foreach $h (&find("host", $g->{'members'})) { $gm++; };
	push(@group_desc, &group_name($gm));
	$group_desc[$#group_desc-1] =~ s/&nbsp;/ /g;
	$script3 .= "parent.options[$ig] = "
		."new Option(\"$group_desc[$ig]\", $ig)\n"
		."parent.options[$ig].value = "
		."new String(\"$g->{'index'}\")\n"
			if &can('rw', \%access, $g);
	if ($in{'sidx'} eq '' && $in{'uidx'} eq '' && $in{'gidx'} eq $g->{'index'}) {
		$sel_parent = $ig;
		$currpar = "$g->{'index'}";
		}
	$ig ++;
	}
foreach $u (@subn) {
	push(@subn_desc, $u->{'values'}->[0]);
	$script2 .= "parent.options[$iu] = "
		."new Option(\"$subn_desc[$iu]\", $iu)\n"
		."parent.options[$iu].value = "
		."new String(\"$u->{'index'}\")\n"
			if &can('rw', \%access, $u);
	if ($in{'sidx'} eq '' && $in{'uidx'} eq $u->{'index'} && $in{'gidx'} eq '') {
		$sel_parent = $iu;
		$currpar = "$u->{'index'}";
		}
	foreach $g (&find("group", $u->{'members'})) {
		push(@group, $g);
		$gm = 0;
		foreach $h (&find("host", $g->{'members'})) { $gm ++; };
		push(@group_desc, &group_name($gm)
			." $text{'ehost_in'} $u->{'values'}->[0]");
		$group_desc[$#group_desc-1] =~ s/&nbsp;/ /g;
		$subnet{$g} = $u->{'index'};
		$script3 .= "parent.options[$ig] = "
			."new Option(\"$group_desc[$ig]\", $ig)\n"
			."parent.options[$ig].value = "
			."new String(\"$u->{'index'},$g->{'index'}\")\n"
				if &can('rw', \%access, $g);
		if ($in{'sidx'} eq '' && $in{'uidx'} eq $u->{'index'} && $in{'gidx'} eq $g->{'index'}) {
			$sel_parent = $ig;
			$currpar = "$u->{'index'},$g->{'index'}";
			}
		$ig ++;
		}
	$iu ++;
	}
foreach $s (@shar) {
	push(@shar_desc, $s->{'values'}->[0]);
	$script1 .= "parent.options[$is] = "
		."new Option(\"$shar_desc[$is]\", $is)\n"
		."parent.options[$is].value = "
		."new String(\"$s->{'index'}\")\n"
			if &can('rw', \%access, $s);
	if ($in{'sidx'} eq $s->{'index'} && $in{'uidx'} eq '' && $in{'gidx'} eq '') {
		$sel_parent = $is;
		$currpar = "$s->{'index'}";
		}
	foreach $g (&find("group", $s->{'members'})) {
		push(@group, $g);
		$gm = 0;
		foreach $h (&find("host", $g->{'members'})) { $gm ++; };
		push(@group_desc, &group_name($gm)
			." $text{'ehost_in'} $s->{'values'}->[0]");
		$group_desc[$#group_desc-1] =~ s/&nbsp;/ /g;
		$shared{$g} = $s->{'index'};
		$script3 .= "parent.options[$ig] = "
			."new Option(\"$group_desc[$ig]\", $ig)\n"
			."parent.options[$ig].value = "
			."new String(\"$s->{'index'},$g->{'index'}\")\n"
				if &can('rw', \%access, $g);
		if ($in{'sidx'} eq $s->{'index'} && $in{'uidx'} eq '' && $in{'gidx'} eq $g->{'index'}) {
			$sel_parent = $ig;
			$currpar = "$s->{'index'},$g->{'index'}";
			}
		$ig ++;
		}
	foreach $u (&find("subnet", $s->{'members'})) {
		push(@subn, $u);
		push(@subn_desc, "$u->{'values'}->[0] $text{'ehost_in'} $s->{'values'}->[0]");
		$shared{$u} = $s->{'index'};
		$script2 .= "parent.options[$iu] = "
			."new Option(\"$subn_desc[$iu]\", $iu)\n"
			."parent.options[$iu].value = "
			."new String(\"$s->{'index'},$u->{'index'}\")\n"
				if &can('rw', \%access, $u);
		if ($in{'sidx'} eq $s->{'index'} && $in{'uidx'} eq $u->{'index'} && $in{'gidx'} eq '') {
			$sel_parent = $iu;
			$currpar = "$s->{'index'},$u->{'index'}";
			}
		foreach $g (&find("group", $u->{'members'})) {
			push(@group, $g);
			$gm = 0;
			foreach $h (&find("host", $g->{'members'})) { $gm ++; };
			push(@group_desc, &group_name($gm)
				." $text{'ehost_in'} $u->{'values'}->[0] $text{'ehost_in'} $s->{'values'}->[0]");
			$group_desc[$#group_desc-1] =~ s/&nbsp;/ /g;
			$shared{$g} = $s->{'index'};
			$subnet{$g} = $u->{'index'};
			$script3 .= "parent.options[$ig] = "
				."new Option(\"$group_desc[$ig]\", $ig)\n"
				."parent.options[$ig].value = "
				."new String(\"$s->{'index'},$u->{'index'},$g->{'index'}\")\n"
					if &can('rw', \%access, $g);
			if ($in{'sidx'} eq $s->{'index'} && $in{'uidx'} eq $u->{'index'} && $in{'gidx'} eq $g->{'index'}) {
				$sel_parent = $ig;
				$currpar = "$s->{'index'},$u->{'index'},$g->{'index'}";
				}
			$ig ++;
			}
		$iu ++;
		}
	$is ++;
	}

print "<form action=save_host.cgi>\n";
print "<input name=ret value=\"$in{'ret'}\" type=hidden>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'ehost_tabhdr'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'ehost_hname'}</b></td>\n";
printf "<td><input name=name size=20 value=\"%s\"></td>\n",
	$host ? $host->{'values'}->[0] : "";
$assign = $in{'gidx'} ne "" ? "3" :
	$in{'uidx'} ne "" ? "2" :
	$in{'sidx'} ne "" ? "1" : "0";
if (!defined($in{'ret'})) {
	local @labels = ( $text{'ehost_toplevel'}, $text{'ehost_inshared'},
			  $text{'ehost_insubnet'}, $text{'ehost_ingroup'} );
	print "<td colspan=2 rowspan=2><table><tr>";
	print "<td colspan=2>$text{'ehost_nojavascr'}</td></tr>\n<tr>" if ($in{'assign'});
	print "<td valign=top><b>$text{'ehost_assign'}</b><br>\n";
	if ($in{'assign'}) {
		$assign = $in{'assign'};
		print "$labels[$assign]</td>\n";
		print "<input name=assign type=hidden value=$assign>\n";
		print "<input name=jsquirk type=hidden value=1>\n";
		}
	else {
		print "<select name=assign onChange='setparent(0)'>\n";
		for ($i = 0; $i <= 3; $i++) {
			printf "<option value=$i %s>%s\n",
				$assign == $i ? "selected" : "",
				$labels[$i];
			}
		print "</select></td>\n";
		}
	print "<td><select name=parent size=5 width=120>\n";
	if ($assign == 3) {
		$ig = 0;
		foreach $g (@group) {
			printf "<option value=\"%s\" %s>%s\n",
				(defined($shared{$g}) ? "$shared{$g}," : "").
				(defined($subnet{$g}) ? "$subnet{$g}," : "").
				$g->{'index'},
				$ig == $sel_parent ? "selected" : "",
				$group_desc[$ig]
					if &can('rw', \%access, $g);
			$ig ++;
			}
		}
	elsif ($assign == 2) {
		$iu = 0;
		foreach $u (@subn) {
			printf "<option value=\"%s\" %s>%s\n",
				defined($shared{$u}) ? "$shared{$u},$u->{'index'}" : $u->{'index'},
				$iu == $sel_parent ? "selected" : "",
				$subn_desc[$iu]
					if &can('rw', \%access, $u);
			$iu ++;
			}
		}
	elsif ($assign == 1) {
		$is = 0;
		foreach $s (@shar) {
			printf "<option value=\"%s\" %s>%s\n",
				$s->{'index'},
				$is == $sel_parent ? "selected" : "",
				$shar_desc[$is]
					if &can('rw', \%access, $s);
			$is ++;
			}
		}
	print "</select></td></tr>\n";
	print "</table></td>\n";

	print "</tr> <tr>\n";
	}
else {
	print "<input name=assign type=hidden value=$assign>\n";
	print "<input name=parent type=hidden value=$currpar>\n";
	}

$hard = $hconf ? &find("hardware", $hconf) : undef;
print "<td><b>$text{'ehost_hwaddr'}</b></td>\n";
print "<td nowrap><select name=hardware_type>\n";
printf "<option %s>ethernet\n",
	$hard && $hard->{'values'}->[0] eq "ethernet" ? "selected" : "";
printf "<option %s>token-ring\n",
	$hard && $hard->{'values'}->[0] eq "token-ring" ? "selected" : "";
printf "<option %s>fddi\n",
	$hard && $hard->{'values'}->[0] eq "fddi" ? "selected" : "";
print "</select>";
printf "<input name=hardware size=18 value=\"%s\"></td> </tr>\n",
	$hard ? $hard->{'values'}->[1] : "";

$fixed = $host ? &find("fixed-address", $hconf) : "";
print "<tr> <td><b>$text{'ehost_fixedip'}</b></td> <td>\n";
printf "<input name=fixed-address size=20 value=\"%s\"></td>\n",
	$fixed ? join(" ", grep { $_ ne "," } @{$fixed->{'values'}}) : "";

&display_params($hconf);

print "</table></td></tr></table>\n";
print "<input type=hidden name=gidx value=\"$in{'gidx'}\">\n";
print "<input type=hidden name=uidx value=\"$in{'uidx'}\">\n";
print "<input type=hidden name=sidx value=\"$in{'sidx'}\">\n";
if (!$in{'new'}) {
	print "<input type=hidden name=idx value=\"$in{'idx'}\">\n";
	print "<table width=100%><tr>\n";
	print "<td><input type=submit value=\"$text{'save'}\"></td>\n"
		if &can('rw', \%access, $host);
	print "<td align=center><input type=submit name=options value=\"",
          &can('rw', \%access, $host) ? $text{'butt_eco'} : $text{'butt_vco'},
	      "\"></td>\n";		  
	print "<td align=right><input type=submit name=delete ",
	      "value=\"$text{'delete'}\"></td>\n" 
		  if &can('rw', \%access, $host, 1);
	print "</tr></table>\n";
	}
else {
	print "<input type=hidden name=new value=1>\n";
	print "<input type=submit value=\"$text{'butt_create'}\">\n";
	}
print "</form>\n";
print &script_fn() if (!defined($in{'ret'}));
print "<hr>\n";
if ($in{'ret'} eq "group") {
	&footer("edit_group.cgi?sidx=$in{'sidx'}&uidx=$in{'uidx'}&idx=$in{'gidx'}",
		$text{'ehost_retgroup'});
	}
elsif ($in{'ret'} eq "subnet") {
	&footer("edit_subnet.cgi?sidx=$in{'sidx'}&idx=$in{'uidx'}",
		$text{'ehost_retsubn'});
	}
elsif ($in{'ret'} eq "shared") {
	&footer("edit_shared.cgi?idx=$in{'sidx'}", $text{'ehost_retshar'});
	}
else {
	&footer($ret, $text{'ehost_return'});
	}

sub script_fn
{
return <<EOF
<script>
function setparent(sel)
{
var idx = document.forms[0].assign.selectedIndex;
var v = document.forms[0].assign.options[idx].value;
var vv = v.split(";");
var parent = document.forms[0].parent;
parent.length = 0;

if (v==1) {
$script1
}
if (v==2) {
$script2
}
if (v==3) {
$script3
}
if (parent.length > 0) {
	parent.options[sel].selected = true;
	}
}
setparent($sel_parent);
</script>
EOF

}
0707010002fbf8000081e40000000000000002000000013ac038a100001b3f000000200000000000000000000000000000001d00000003reloc/dhcpd/edit_options.cgi  #!/usr/local/bin/perl
# edit_options.cgi
# Edit client options for some subnet, shared net, group, host or global

require './dhcpd-lib.pl';
require './params-lib.pl';
&ReadParse();
$conf = &get_config();

%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");

$client = &get_parent_config();
foreach $i ($in{'sidx'}, $in{'uidx'}, $in{'gidx'}, $in{'idx'}) {
	$client = $client->{'members'}->[$i] if ($i ne '');
	}

if ($client->{'name'} eq 'subnet') {
	$title = &text('eopt_subtitle',$client->{'values'}->[0]);
	$back = $text{'eopt_returnsub'};
	$backlink = "edit_subnet.cgi";
	&error("$text{'eacl_np'} $text{'eacl_pss'}") if !&can('r',\%access,$client);
	}
elsif ($client->{'name'} eq 'shared-network') {
	$title = &text('eopt_snettitle',$client->{'values'}->[0]);
	$back = $text{'eopt_returnshsub'};
	$backlink = "edit_shared.cgi";
	&error("$text{'eacl_np'} $text{'eacl_psn'}") if !&can('r',\%access,$client);
	}
elsif ($client->{'name'} eq 'host') {
	$title = &text('eopt_hosttitle',$client->{'values'}->[0]);
	$back = $text{'eopt_returnhost'};
	$backlink = "edit_host.cgi";
	&error("$text{'eacl_np'} $text{'eacl_psh'}") if !&can('r',\%access,$client);
	}
elsif ($client->{'name'} eq 'group') {
	@mc = &find("host", $client->{'members'});
	$title = &text('eopt_grouptitle',scalar(@mc));
	$back = $text{'eopt_returngroup'};
	$backlink = "edit_group.cgi";
	&error("$text{'eacl_np'} $text{'eacl_psg'}") if !&can('r',\%access,$client);
	}
else {
	$title = $text{'eopt_alltitle'};
	$back = $text{'eopt_returnindex'};
	$backlink = "";
	&error("$text{'eacl_np'} $text{'eacl_pglob'}") if !$access{'global'};
	}

# display
&header($text{'eopt_header'}, "");
$backlink .= "?idx=".$in{'idx'}."&gidx=".$in{'gidx'}."&uidx=".$in{'uidx'}.
	     "&sidx=".$in{'sidx'} if (backlink);
print "<center><font size=+2>$title</font></center>\n";
print "<hr>\n";

print "<form action=save_options.cgi>\n";
printf "<input type=hidden name=level value='%s'>\n",
	$in{'global'} ? "global" : $client->{'name'};
print "<input type=hidden name=idx value='$in{'idx'}'>\n";
print "<input type=hidden name=gidx value='$in{'gidx'}'>\n";
print "<input type=hidden name=uidx value='$in{'uidx'}'>\n";
print "<input type=hidden name=sidx value='$in{'sidx'}'>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'eopt_tabhdr'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";
@opts = &find("option", $client->{'members'});

print "<tr>\n";
print &option_input($text{'eopt_chost'}, "host-name", \@opts, 3);
print &option_input($text{'eopt_defrouters'}, "routers", \@opts, 2);
print "</tr>\n";

print "<tr>\n";
print &option_input($text{'eopt_smask'}, "subnet-mask", \@opts, 0);
print &option_input($text{'eopt_baddr'}, "broadcast-address", \@opts, 0);
print "</tr>\n";

print "<tr>\n";
print &option_input($text{'eopt_domname'}, "domain-name", \@opts, 3);
print &option_input($text{'eopt_dnsserv'}, "domain-name-servers", \@opts, 2);
print "</tr>\n";

print "<tr>\n";
print &option_input($text{'eopt_timeserv'}, "time-servers", \@opts, 2);
print &option_input($text{'eopt_logserv'}, "log-servers", \@opts, 2);
print "</tr>\n";

print "<tr>\n";
print &option_input($text{'eopt_swapserv'}, "swap-server", \@opts, 2);
print &option_input($text{'eopt_rdpath'}, "root-path", \@opts, 3);
print "</tr>\n";

print "<tr>\n";
print &option_input($text{'eopt_nisdom'}, "nis-domain", \@opts, 3);
print &option_input($text{'eopt_nisserv'}, "nis-servers", \@opts, 2);
print "</tr>\n";

print "<tr>\n";
print &option_input($text{'eopt_fontserv'}, "font-servers", \@opts, 2);
print &option_input($text{'eopt_xdmserv'}, "x-display-manager", \@opts, 2);
print "</tr>\n";

print "<tr>\n";
print &option_input($text{'eopt_statrouters'}, "static-routes", \@opts, 5);
print "</tr>\n";

print "<tr>\n";
print &option_input($text{'eopt_ntpserv'}, "ntp-servers", \@opts, 2);
print &option_input($text{'eopt_nbns'}, "netbios-name-servers", \@opts, 2);
print "</tr>\n";

print "<tr>\n";
print &option_input($text{'eopt_nbs'}, "netbios-scope", \@opts, 3);
print &option_input($text{'eopt_nbntype'}, "netbios-node-type", \@opts, 1);
print "</tr>\n";

print "<tr> <td colspan=4><hr></td> </tr>\n";
@custom = grep { $_->{'values'}->[0] =~ /^option-(\d+)$/ } @opts;
push(@custom, undef);
push(@custom, undef) if (@custom%2 == 1);
for($i=0; $i<@custom; $i++) {
	$o = $custom[$i];
	print "<tr>\n" if ($i%2 == 0);
	print "<td><b>$text{'eopt_custom'}</b></td>\n";
	print "<td>$text{'eopt_cnum'}\n";
	printf "<input name=cnum_$i size=4 value='%s'>\n",
		$o->{'values'}->[0] =~ /^option-(\d+)$/ ? $1 : '';
	print "$text{'eopt_cval'}\n";
	printf "<input name=cval_$i size=20 value='%s'></td>\n",
		$o->{'values'}->[1];
	print "</tr>\n" if ($i%2 != 0);
	}

if ($in{'global'}) {
	# Display options for subnets and hosts too
	print "<tr> <td colspan=4><hr></td> </tr>\n";
	print "<tr>\n";
	print &choice_input($text{'egroup_nchoice'}, "use-host-decl-names",
			    $conf, $text{'yes'}, "on", $text{'no'}, "off",
			    $text{'default'}, "");
	&display_params($conf);
	}

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n"
	if &can('rw',\%access,$client);
print "<hr>\n";
&footer($backlink, $back);

# option_input(text, name, &config, type)
# types values:	0  - IP address
#		1  - Integer
#		2  - IP address list
#		3  - String
#		4  - Yes/no flag
#		5  - IP address pairs
sub option_input
{
local($rv, $v, $i);
for($i=0; $i<@{$_[2]}; $i++) {
	if ($_[2]->[$i]->{'values'}->[0] eq $_[1]) {
		$v = $_[2]->[$i];
		last;
		}
	}
$rv = "<td><b>$_[0]</b></td>\n";
if ($_[3] == 5) { $rv .= "<td colspan=3 nowrap>"; }
else { $rv .= "<td nowrap>"; }
$rv .= sprintf "<input type=radio name=$_[1]_def value=1 %s> $text{'default'}\n",
	$v ? "" : "checked";
$rv .= sprintf "<input type=radio name=$_[1]_def value=0 %s> ",
	$v ? "checked" : "";
local @vl = $v ? @{$v->{'values'}} : ();
@vl = @vl[1..$#vl];
if ($_[3] == 0) {
	$rv .= "<input name=$_[1] size=15 value=\"$vl[0]\">\n";
	}
elsif ($_[3] == 1) {
	$rv .= "<input name=$_[1] size=4 value=\"$vl[0]\">\n";
	}
elsif ($_[3] == 2) {
	@vl = grep { $_ ne "," } @vl;
	$rv .= "<input name=$_[1] size=20 value=\"".join(" ", @vl)."\">\n";
	}
elsif ($_[3] == 3) {
	local $str = &oct_to_string($vl[0]);
	$rv .= "<input name=$_[1] size=10 value=\"$str\">\n";
	}
elsif ($_[3] == 4) {
	$rv .= sprintf "<input name=$_[1] value=1 %s> Yes\n",
			$vl[0] eq "1" ? "checked" : "";
	$rv .= sprintf "<input name=$_[1] value=0 %s> No\n",
			$vl[0] eq "0" ? "checked" : "";
	}
elsif ($_[3] == 5) {
	@vl = grep { $_ ne "," } @vl;
	$rv .= "<input name=$_[1] size=50 value=\"";
	for($i=0; $i<@vl; $i+=2) {
		$rv .= $vl[$i].",".$vl[$i+1];
		}
	$rv .= "\">\n";
	}
$rv .= "</td>\n";
return $rv;
}

sub oct_to_string
{
local @b = split(/:/, $_[0]);
local $rv;
foreach $b (@b) {
	if ($b !~ /^[A-z0-9]{1,2}$/) {
		# Wasn't actually in octet format after all.
		return $_[0];
		}
	$rv .= chr(hex($b));
	}
return $rv;
}

 0707010002fbf9000081e40000000000000002000000013ac038a100000af7000000200000000000000000000000000000001a00000003reloc/dhcpd/edit_pool.cgi #!/usr/local/bin/perl
# edit_pool.cgi
# Edit ranges and other options in an address pool

require './dhcpd-lib.pl';
require './params-lib.pl';
&ReadParse();
$conf = &get_config();
if ($in{'sidx'} ne "") {
	$sha = $conf->[$in{'sidx'}]; 
	$sub = $sha->{'members'}->[$in{'uidx'}];
	}
else { $sub = $conf->[$in{'uidx'}]; }

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pss'}") if !&can('r',\%access,$sub);

# display
if ($in{'new'}) {
	&header($text{'pool_create'}, "");
	}
else {
	&header($text{'pool_edit'}, "");
	$pool = $sub->{'members'}->[$in{'idx'}];
	}
print "<center><font size=+1>",&text('ehost_subnet',
	$sub->{'values'}->[0], $sub->{'values'}->[2]),"</font></center>\n";
print "<hr>\n";

print "<form action=save_pool.cgi>\n";
print "<input type=hidden name=new value='$in{'new'}'>\n";
print "<input type=hidden name=idx value='$in{'idx'}'>\n";
print "<input type=hidden name=uidx value='$in{'uidx'}'>\n";
print "<input type=hidden name=sidx value='$in{'sidx'}'>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'pool_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

@range = $pool ? &find("range", $pool->{'members'}) : ();
print "<tr> <td valign=top><b>$text{'esub_arange'}</b></td> <td colspan=3>\n";
for($i=0; $i<=@range; $i++) {
	$r = $range[$i];
	local $dyn = ($r->{'values'}->[0] eq "dynamic-bootp");
	printf "<input name=range_low_$i size=15 value=\"%s\"> - \n",
		$r->{'values'}->[$dyn];
	printf "<input name=range_hi_$i size=15 value=\"%s\">&nbsp;\n",
		$r->{'values'}->[$dyn+1];
	printf "<input type=checkbox name=range_dyn_$i value=1 %s>\n",
		$dyn ? "checked" : "";
	print "$text{'esub_dbooptpq'}<br>\n";
	}
print "</td> </tr>\n";

print "<tr> <td valign=top><b>$text{'pool_allow'}</b></td>\n";
print "<td><textarea name=allow rows=4 cols=25>",
	join("\n", map { $_->{'text'} } &find("allow", $pool->{'members'})),
	"</textarea></td>\n";

print "<td valign=top><b>$text{'pool_deny'}</b></td>\n";
print "<td><textarea name=deny rows=4 cols=25>",
	join("\n", map { $_->{'text'} } &find("deny", $pool->{'members'})),
	"</textarea></td> </tr>\n";

&display_params($pool->{'members'});

print "</table></td></tr></table>\n";
print "<table width=100%><tr>\n";
if ($in{'new'}) {
	print "<td><input type=submit value='$text{'create'}'></td>\n"
		if &can('rw',\%access,$sub);
	}
else {
	print "<td><input type=submit value='$text{'save'}'></td>\n"
		if &can('rw',\%access,$sub);
	print "<td align=right><input type=submit name=delete ",
	      "value='$text{'delete'}'></td>\n" if &can('rw',\%access,$sub);
	}
print "</tr></table>\n";
print "</form><hr>\n";
&footer("edit_subnet.cgi?sidx=$in{'sidx'}&idx=$in{'uidx'}",
	$text{'pool_return'});

 0707010002fbfa000081e40000000000000002000000013ac038a10000143b000000200000000000000000000000000000001c00000003reloc/dhcpd/edit_shared.cgi   #!/usr/local/bin/perl
# edit_shared.cgi
# Edit or create a shared network

require './dhcpd-lib.pl';
require './params-lib.pl';
&ReadParse();
$conf = &get_config();
($par, $sha) = &get_branch('sha');
$sconf = $sha->{'members'};

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if ($in{'new'}  ) {
	&error("$text{'eacl_np'} $text{'eacl_pin'}")
		unless &can('c', \%access, $sha) && &can('rw', \%access, $par);
	}
else {
	&error("$text{'eacl_np'} $text{'eacl_psn'}")
		if !&can('r', \%access, $sha);
	}

# display
&header($in{'new'} ? $text{'esh_crheader'} : $text{'esh_eheader'}, "");
print "<hr>\n";

print "<form action=save_shared.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'esh_tabhdr'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'esh_netname'}</b></td>\n";
printf "<td><input name=name size=15 value=\"%s\"></td>\n",
	$sha ? $sha->{'values'}->[0] : "";

&display_params($sconf);

print "<tr> <td colspan=4> <table border=0 width=100%>\n";
foreach $h (&find("host", $conf)) {
	push(@host, $h) if &can('r', \%access, $h);
	}
foreach $g (&find("group", $conf)) {
	push(@group, $g) if &can('r', \%access, $g);
	}
foreach $s (&find("subnet", $conf)) {
	push(@subn, $s) if &can('r', \%access, $s);
	}
foreach $sh (&find("shared-network", $conf)) {
	foreach $h (&find("host", $sh->{'members'})) {
		push(@host, $h);
# if &can('r', \%access, $h);
		$inshar{$h} = $sh->{'index'};
		}
	foreach $g (&find("group", $sh->{'members'})) {
		push(@group, $g);
# if &can('r', \%access, $g);
		$inshar{$g} = $sh->{'index'};
		}
	foreach $s (&find("subnet", $sh->{'members'})) {
		push(@subn, $s);
# if &can('r', \%access, $s);
		$inshar{$s} = $sh->{'index'};
		}
	}
@host = sort { $a->{'values'}->[0] cmp $b->{'values'}->[0] } @host;
# @group = sort { @{$a->{'members'}} <=> @{$b->{'members'}} } @group;
@subn = sort { $a->{'values'}->[0] cmp $b->{'values'}->[0] } @subn;

print "<td valign=top align=right><b>$text{'esh_hosts'}</b></td>\n";
print "<td><select name=hosts size=3 multiple>\n";
foreach $h (@host) {
	next if !&can('r', \%access, $h);
	printf "<option value=\"%s,%s\" %s>%s\n",
		$h->{'index'}, $inshar{$h},
		(!$in{'new'}) && $inshar{$h} eq $sha->{'index'} ? "selected" : "",
		$h->{'values'}->[0];
	}
print "</select></td>\n";

print "<td valign=top align=right><b>$text{'esh_groups'}</b></td>\n";
print "<td><select name=groups size=3 multiple>\n";
foreach $g (@group) {
	local $gm = 0;
	next if !&can('r', \%access, $g);
	foreach $h (@{$g->{'members'}}) {
		if ($h->{'name'} eq "host") { $gm++; }
		}
	printf "<option value=\"%s,%s\" %s>%s\n",
		$g->{'index'}, $inshar{$g},
		(!$in{'new'}) && $inshar{$g} eq $sha->{'index'} ? "selected" : "",
		&group_name($gm);
	}
print "</select></td>\n";

print "<td valign=top align=right><b>$text{'esh_subn'}</b></td>\n";
print "<td><select name=subnets size=3 multiple>\n";
foreach $s (@subn) {
	next if !&can('r', \%access, $s);
	printf "<option value=\"%s,%s\" %s>%s\n",
		$s->{'index'}, $inshar{$s},
		(!$in{'new'}) && $inshar{$s} eq $sha->{'index'} ? "selected" : "",
		$s->{'values'}->[0];
	}
print "</select></td>\n";

if (!$in{'new'}) {
	# inaccessible hosts in this shared network
	foreach $h (@host) {
		if (!&can('r', \%access, $h) && $inshar{$h} eq $sha->{'index'}) {
			print "<input name=hosts value=\"$h->{'index'},$sha->{'index'}\" type=hidden>\n";
			}
		}
	# inaccessible groups in this shared network
	foreach $g (@group) {
		if (!&can('r', \%access, $g) && $inshar{$g} eq $sha->{'index'}) {
			print "<input name=groups value=\"$g->{'index'},$sha->{'index'}\" type=hidden>\n";
			}
		}
	# inaccessible subnets in this shared network
	foreach $s (@subn) {
		if (!&can('r', \%access, $s) && $inshar{$s} eq $sha->{'index'}) {
			print "<input name=subnets value=\"$s->{'index'},$sha->{'index'}\" type=hidden>\n";
			}
		}
	}
print "</table></td></tr>\n";

print "</table></td></tr></table>\n";
if (!$in{'new'}) {
	print "<input type=hidden name=idx value=\"$in{'idx'}\">\n";
	print "<table width=100%><tr>\n";
	print "<td><input type=submit value=\"$text{'save'}\"></td>\n"
		if &can('rw', \%access, $sha);
	print "<td align=center><input type=submit name=options value=\"",
          &can('rw', \%access, $sha) ? $text{'butt_eco'} : $text{'butt_vco'},
	      "\"></td>\n";		  
	print "<td align=right><input type=submit name=delete ",
	      "value=\"$text{'delete'}\"></td>\n" 
		  if &can('rw', \%access, $sha, 1);
	print "</tr></table>\n";
	print "<a href=\"edit_host.cgi?new=1&sidx=$in{'idx'}"
		."&ret=shared\">$text{'index_addhst'}</a>&nbsp;&nbsp;\n"
			if &can('rw', \%access, $sha);
	print "<a href=\"edit_group.cgi?new=1&sidx=$in{'idx'}"
		."&ret=shared\">$text{'index_addhstg'}</a>&nbsp;&nbsp;\n"
			if &can('rw', \%access, $sha);
	print "<a href=\"edit_subnet.cgi?new=1&sidx=$in{'idx'}"
		."&ret=shared\">$text{'index_addsub'}</a><p>\n"
			if &can('rw', \%access, $sha);
	}
else {
	print "<input type=hidden name=new value=1>\n";
	print "<input type=submit value=\"$text{'create'}\">\n";
	}
print "</form>\n";
print "<hr>\n";
&footer("", $text{'esh_return'});

 0707010002fbfb000081e40000000000000002000000013ac038a100001949000000200000000000000000000000000000001c00000003reloc/dhcpd/edit_subnet.cgi   #!/usr/local/bin/perl
# edit_subnet.cgi
# Edit or create a subnet

require './dhcpd-lib.pl';
require './params-lib.pl';
&ReadParse();
$conf = &get_config();
($par, $sub) = &get_branch('sub');
$mems = $par->{'members'};
$sconf = $sub->{'members'};

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if ($in{'new'}) {
	&error("$text{'eacl_np'} $text{'eacl_pis'}")
		unless &can('c', \%access, $sub) && &can('rw', \%access, $par);
	}
else {
	&error("$text{'eacl_np'} $text{'eacl_pss'}")
		if !&can('r', \%access, $sub);
	}

# display
&header($in{'new'} ? $text{'esub_crheader'} : $text{'esub_edheader'}, "");
if ($in{'sidx'} ne "") {
	local $s = $conf->[$in{'sidx'}];
	print "<center><font size=+1>", &text('ehost_shared', $s->{'values'}->[0]),
	      "</font></center>\n";
	}
print "<hr>\n";

foreach $s (&find("shared-network", $conf)) {
	if ($in{'sidx'} eq $s->{'index'}) {
		$s_parent = $s;
		}
	}

print "<form action=save_subnet.cgi>\n";
print "<input name=ret value=\"$in{'ret'}\" type=hidden>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'esub_tabhdr'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'esub_naddr'}</b></td>\n";
printf "<td><input name=network size=25 value=\"%s\"></td>\n",
	$sub ? $sub->{'values'}->[0] : "";

print "<td><b>$text{'esub_nmask'}</b></td>\n";
printf "<td><input name=netmask size=15 value=\"%s\"></td> </tr>\n",
	$sub ? $sub->{'values'}->[2] : "";

@range = $sub ? &find("range", $sub->{'members'}) : ();
print "<tr> <td valign=top><b>$text{'esub_arange'}</b></td> <td colspan=3>\n";
for($i=0; $i<=@range; $i++) {
	$r = $range[$i];
	local $dyn = ($r->{'values'}->[0] eq "dynamic-bootp");
	printf "<input name=range_low_$i size=15 value=\"%s\"> - \n",
		$r->{'values'}->[$dyn];
	printf "<input name=range_hi_$i size=15 value=\"%s\">&nbsp;\n",
		$r->{'values'}->[$dyn+1];
	printf "<input type=checkbox name=range_dyn_$i value=1 %s>\n",
		$dyn ? "checked" : "";
	print "$text{'esub_dbooptpq'}<br>\n";
	}
print "</td> </tr>\n";

if (!defined($in{'ret'})) {
	print "<tr> <td><b>$text{'esub_shnet'}</b></td>\n";
	print "<td><select name=parent>\n";
	printf "<option value=\"\" '%s'>&lt;%s&gt;\n",
		$s_parent ? "" : "checked", $text{'esub_none'};
	foreach $s (&find("shared-network", $conf)) {
		printf "<option value=\"%s\" %s>%s\n",
			$s->{'index'},
			$s eq $s_parent ? "selected" : "",
			$s->{'values'}->[0]
				if &can('rw', \%access, $s);
		}
	print "</select></td>\n";
	}
else {
	print "<input name=parent type=hidden value=$s_parent->{'index'}>\n";
	print "<tr> <td>&nbsp;</td> <td>&nbsp;</td>\n";
	}

&display_params($sconf);

foreach $h (&find("host", $mems)) {
	push(@host, $h);
# if &can('r', \%access, $h);
	}
foreach $g (&find("group", $mems)) {
	push(@group, $g);
# if &can('r', \%access, $g);
	}
foreach $s (&find("subnet", $mems)) {
	foreach $h (&find("host", $s->{'members'})) {
		push(@host, $h);
# if &can('r', \%access, $h);
		$insubn{$h} = $s->{'index'};
		}
	foreach $g (&find("group", $s->{'members'})) {
		push(@group, $g);
# if &can('r', \%access, $g);
		$insubn{$g} = $s->{'index'};
		}
	}
@host = sort { $a->{'values'}->[0] cmp $b->{'values'}->[0] } @host;
# @group = sort { @{$a->{'members'}} <=> @{$b->{'members'}} } @group;

print "<tr> <td valign=top><b>$text{'esub_hosts'}</b></td>\n";
print "<td><select name=hosts size=3 multiple>\n";
foreach $h (@host) {
	next if !&can('r', \%access, $h);
	printf "<option value=\"%s,%s\" %s>%s\n",
		$h->{'index'}, $insubn{$h},
		(!$in{'new'}) && $insubn{$h} eq $sub->{'index'} ? "selected" : "",
		$h->{'values'}->[0];
	}
print "</select></td>\n";

print "<td valign=top><b>$text{'esub_groups'}</b></td>\n";
print "<td><select name=groups size=3 multiple>\n";
foreach $g (@group) {
	local $gm = 0;
	next if !&can('r', \%access, $g);
	foreach $h (@{$g->{'members'}}) {
		if ($h->{'name'} eq "host") { $gm++; }
		}
	printf "<option value=\"%s,%s\" %s>%s\n",
		$g->{'index'}, $insubn{$g},
		(!$in{'new'}) && $insubn{$g} eq $sub->{'index'} ? "selected" : "",
		&group_name($gm);
	}
print "</select></td>\n";

if (!$in{'new'}) {
	# inaccessible hosts in this subnet
	foreach $h (@host) {
		if (!&can('r', \%access, $h) && $insubn{$h} eq $sub->{'index'}) {
			print "<input name=hosts value=\"$h->{'index'},$sub->{'index'}\" type=hidden>\n";
			}
		}
	# inaccessible groups in this subnet
	foreach $g (@group) {
		if (!&can('r', \%access, $g) && $insubn{$g} eq $sub->{'index'}) {
			print "<input name=groups value=\"$g->{'index'},$sub->{'index'}\" type=hidden>\n";
			}
		}
	}

print "</table></td></tr></table>\n";
print "<input type=hidden name=sidx value=\"$in{'sidx'}\">\n";
if (!$in{'new'}) {
	print "<input type=hidden name=idx value=\"$in{'idx'}\">\n";
	print "<table width=100%><tr>\n";
	print "<td><input type=submit value=\"$text{'save'}\"></td>\n"
		if &can('rw', \%access, $sub);
	print "<td align=center><input type=submit name=options value=\"", 
		  &can('rw', \%access, $sub) ? $text{'butt_eco'} : $text{'butt_vco'},
		  "\"></td>\n";
	print "<td align=right><input type=submit name=delete ",
	      "value=\"$text{'delete'}\"></td>\n" if &can('rw', \%access, $sub, 1);
	print "</tr></table>\n";
	print "<a href=\"edit_host.cgi?new=1&sidx=$in{'sidx'}&uidx=$in{'idx'}"
		."&ret=subnet\">$text{'index_addhst'}</a>&nbsp;&nbsp;\n"
			if &can('rw', \%access, $sub);
	print "<a href=\"edit_group.cgi?new=1&sidx=$in{'sidx'}&uidx=$in{'idx'}"
		."&ret=subnet\">$text{'index_addhstg'}</a><p>\n"
			if &can('rw', \%access, $sub);
	}
else {
	print "<input type=hidden name=new value=1>\n";
	print "<input type=submit value=\"$text{'create'}\">\n";
	}

if ($config{'dhcpd_version'} >= 3 && !$in{'new'}) {
	# Display address pools
	print "<hr>\n";
	print "<h3>$text{'esub_pools'}</h3>\n";
	local $pn = 1;
	foreach $p (&find('pool', $sconf)) {
		push(@links, "edit_pool.cgi?uidx=$in{'idx'}&sidx=$in{'sidx'}&idx=$p->{'index'}");
		push(@titles, &text('esub_pool', $pn));
		push(@icons, "images/pool.gif");
		$pn++;
		}
	if ($pn == 1) {
		print "$text{'esub_poolnone'}<p>\n";
		}
	else {
		&icons_table(\@links, \@titles, \@icons, 5);
		}
	print "<a href='edit_pool.cgi?uidx=$in{'idx'}&sidx=$in{'sidx'}&new=1'>",
	      "$text{'esub_pooladd'}</a><br>\n";
	}

print "</form>\n";
print "<hr>\n";
if ($in{'ret'} eq "shared") {
	&footer("edit_shared.cgi?idx=$in{'sidx'}", $text{'esub_retshar'});
	}
else {
	&footer("", $text{'esub_return'});
	}

   07070100032752000041ed0000000000000001000000023ac03bd300000000000000200000000000000000000000000000001300000003reloc/dhcpd/images    07070100032753000081a40000000000000002000000013ac038a100000a1f000000200000000000000000000000000000001e00000003reloc/dhcpd/images/ctree0.gif GIF87a:      !     ,    :   H盃羶*\劝∶#J淗雹艐3j苋保菑 CI菠蓳(S猏刹ニ0c蕼I肠蜎8s贶沙烜
J川眩H*]蚀┯滼氮斋X砵菔但庄`脢K冬俪h营]硕穚闶潧 莼P礅莴T/呖FT0崦;#^|S1闱2C炋R2逅(-c尢钩缦燙M殻嬉X}:祂伀a`蔸u柝捕鰼嘶y凍M5m針夒9b逅'w毫汼噆 鰡诜ы铨鉻馾#麼1<卜x狰騑悍縥楑駠貳F爛8X M!X讄%貭1)^OR⊕A`娔a嘐釬#>鋋M&炟迠-爧/)覙7诣詭淫愴裨ctNFd慒毱dEG%:$}-y褦5gq^榑^7沗另孀歝瞃fn{i(6fnl	|*焩)锠o
'渨9gcf"姀g爢B
)爮蔞&Z'q姠oy瀥h洠姍f牬aziΜ秷枹u飧绗6:瑜幹簀zZ暞&堦皕蜈"j炋
	lN&歞B,ㄋ-.>+浞鄦冣R耽F屙`閦詎_V槒F[m涱嬶o
揳墩,灁:p薺_肷[枱
'郢y珀皪,e|j緯喉*j*c*iFw馠<d穼.担蘝i7輞桩閕汹
]<桲瞚/+龘飘:=暶IK-afMs晆蠒m崟譠鮗`kUu噀?曵Uk7黈劭w`J螡澼)Y刭2B唚D|/咭n撫Κ⿰束銔B薷鍢谦孢?絨鎺g緔l+痃槆.烘殝j鷷qo蘯毪阚'冻_:6H餁;9砝哔癁洬:#j/捣デ.ヱ臛Oz饖R蕎歱萐蠇-跤划荇j:."(銃燋菓O|穇<&熅钎JE鵏铟~尖c] /&1燧*Wjc嫍|萍蜰x;_
ň)pu锑/K_yG:犰廇$L!銗sB饏3PzC?贤,K*霃XZ7,<|歞划Qn7厺#+ND!彅h豆责L"意B$-捜j/殥茠,乪d炸4蔊^cd媐6hZ阢 驼9,鲰(}蕿篦２臦嶨沗齲嵌2B塴櫷VvGQg4$uF窯BR(4Vs(+P^r(祷晈霓=GpO4e_塉J({鼱雟.<6/}}(s-睰偆 6Y襐萒4CUK悧篮2O甇毰a鏂2筂菤$嫢GTpO"樈^.l晼
+鐇%?Y#蜲bh{誄'>I
呉;e)IzE4炣'8vQ8鎽]XG/D蠬
瓉﹋專覔醭=洀7a:蝁音k7氶MU瑵䦅K:鮥yⅴ)Tx癞╕R+I挔麓iN韍＊PC.鯛b籮)K獀媆单V󭕿苧琭'2顴󓚳?l輻[輺袎綰⒂(硕)只R)+,曜濾td聰X83Z爻*V痙-gA薙缞4掺黗0[:O蛕暡環GK谝汌川M璲W粟趾龅皪璴gK圳邛陡铜nw蛩坜稭ф2抌敆:jj_揹躖R3DT[nJ殘ヅ2>遄$,琅浢襗x翌傋鹤u椯+泞I瓛mo{瑦汍玣zo囚獼彚w几/%荹(;娍'十~V禁已;+鷗YSv撛g6詯Q0=孈洩腍0臽鱖=飣h⿸昡Q3>鶆,kqh進%硨,0睓M銌U<靡1搧K*[X尾柗体.{`硺荓2淁蘦&K@  ; 07070100032754000081a40000000000000002000000013ac038a100000ac4000000200000000000000000000000000000001e00000003reloc/dhcpd/images/ctree1.gif GIF87a:      <農qsv藈|葺l雟撤;wn韛畸[l 砗X飉凤n惠!     ,    :   H盃羶*\劝∶#J淗雹艐3j苋保菑 CI菠蓳(S猏刹ニ0c蕼I肠蜎8s贶沙烜
J川眩H*]蚀┯滼氮斋X砵菔但庄`脢K冬俪h营]硕穚闶潧 莼P礅莴T/呖FT0崦;#^|S1闱2C炋R2逅(-c尢钩缦燙M殻嬉X}:祂伀a`蔸u柝捕鰼嘶y凍M5m針夒9b逅'w毫汼噆 鰡诜ы铨鉻馾#麼1<卜x狰騑悍縥楑駠貳F爛8X M!X讄%貭1)^OR⊕A`娔a嘐釬#>鋋M&炟迠-爧/)覙7诣詭淫愴裨ctNFd慒毱dEG%:$}-y褦5gq^榑^7沗另孀歝瞃fn{i(6fnl	|*焩)锠o
'渨9gcf"姀g爢B
)爮蔞&Z'q姠oy瀥h洠姍f牬aziΜ秷枹u飧绗6:瑜幹簀zZ暞&堦皕蜈"j炋
	lN&歞B,ㄋ-.>+浞鄦冣R耽F屙`閦詎_V槒F[m涱嬶o
揳墩,灁:p薺_肷[枱
'郢y珀皪,e|j緯喉*j*c*iFw馠<d穼.担蘝i7輞桩閕汹
]<桲瞚/+龘飘:=暶IK-afMs晆蠒m崟譠鮗`kUu噀?曵Uk7黈劭w`J螡澼)Y刭2B唚D|/咭n撫Κ⿰束銔B薷鍢谦孢?絨鎺g緔l+痃槆.烘殝j鷷qo蘯毪阚'冻_:6H餁;9砝哔癁洬:#j/捣デ.ヱ臛Oz饖R蕎歱萐蠇-跤划荇j:."(銃燋菓O|穇<&熅钎JE鵏铟~尖c] /&1燧*Wjc嫍|萍蜰x;_
ň)pu锑/K_yG:犰廇$L!銗sB饏3PzC?贤,K*霃XZ7,<|歞划Qn7厺#+ND!彅h豆责L"意B$-捜j/殥茠,乪d炸4蔊^cd媐6hZ阢 驼9,鲰(}蕿篦２臦嶨沗齲嵌2B塴櫷Vv抝q舯d
I塎(%W%狽敎J 峌V抾/踏&G钃8诸VT^錱嗜啝酁X搜蛂崸&)S7P"襀3;Y灙v`憴$U鎴?`囂谁$g盌^扴澃紤9艍蝢鶵樜q勂:yx眑嚷4~;Oa'&B齓紈3愾$W?驩~騭殽鼨:獻哇q髗O2cX2L0檲坫]GS暜4礤2Y唇O捩8] )S圍敀jP蟕巉5}$ 昷驮昈UにF8:鎽僒Sj+滻珌+鄬穦G猰睫|.懙甈'^聡Kt+Y&X+皡-+瘨 栋M{,^齟UK2极礻.k藮皃歶*g?礩键靐慺蘕Θ礴j坌~车閘A巯荜V嵮I痕9W‵籨H1?xZ胏h@专袎述筟姩u嶗趮~4Ｘ=ms吺]轏穿飏羡[x篓吼嬶I_仮坊)M豁摳i獐jㄚ_揶t+-皝麷+9]E2糣/啺吪豚w>皣Ox(N眾W题圾0幈実L埒8侮睅w蹄KPG;l卋Dヲ8$xk";殍#3?*瞂O粽挦痽舚漾羏楫P(.e 婽{(骴枆煊VV*T隒沑4菹螉顨5吘幜櫹+慗*銀`账驦閄*+2gvJ舸<gY螌$t橫昰L虘F徿(D{已*什淜,G_W櫀5\5B洛2褚LMZ泫乑5濁?１贪}天f;袔洞韏[匚抖吠韓{囝v@  ;07070100032755000081a40000000000000002000000013ac038a100000a5b000000200000000000000000000000000000001e00000003reloc/dhcpd/images/ctree2.gif GIF87a:      ?彿溳咩w7垭狠l砦粉臊惠铪謃垌n諤{垌{踤黯篰毁晚踗穠籲勤-媕w幗q!     ,    :   H盃羶*\劝∶#J淗雹艐3j苋保菑 CI菠蓳(S猏刹ニ0c蕼I肠蜎8s贶沙烜
J川眩H*]蚀┯滼氮斋X砵菔但庄`脢K冬俪h营]硕穚闶潧 莼P礅莴T/呖FT0崦;#^|S1闱2C炋R2逅(-c尢钩缦燙M殻嬉X}:祂伀a`蔸u柝捕鰼嘶y凍M5m針夒9b逅'w毫汼噆 鰡诜ы铨鉻馾#麼1<卜x狰騑悍縥楑駠貳F爛8X M!X讄%貭1)^OR⊕A`娔a嘐釬#>鋋M&炟迠-爧/)覙7诣詭彝D蹛Di鋺H&╀扖.d{B9揔NI鍟IZ"w=V豫iRb櫏槺憏憙=I僡歒W)﹜褩(沕珥9錹临&熗閕濉z9ve'F峟T妞	j━2'N姪j陂=
)嫍铋┆寏*ò*琚眴:c[姫_獟
琛派+贘緅WE*i摰糙k痶J矲K闁b9嫝M诤)当灩砉錴j煴{g⑷9*紓
j扑k禾疀 皬
l鹆J&7|隬頑}w碽0a渇纽q,#Ψ惹洴G$嬶蔐/[兼惰廃浱`诂筇o竈蟚)筇<週醇(=葱g鬤*-跞颖淮*?M襴苤)3褽飳u;3Mt`襥咴a6豥积5蜟眸rX赨踝&蛍絵呯鱣壁鎛讐S4釐c6鋢s嗻瘡]铊K屻殰?zV＋V簩棟铘^狾Et.曥*巨2d大榹b屬.忸崱%皽dF2I<杙nj糦'_蔙斯缏S箌骆&垡臰E<犎颥ú欌沵鐍K楱阇>s"m(q侜郱瘖烘5痠a靔TK犥6; 芦~甁Y譍8-乵sA皕
赊.ù猆E|芠義賖nG儭窤蝑"吒8(B督M唋

ｄ9p搁
5腟连團銶E	g猙渼敒贴/%X躗镟f甘塏9at奈!%:c9糽i*
てъ褖薐25q	?れT)Rw鞬#k8N襱b趟%龃FF(鐩U证雠蕯覔me鷴杳U蝞t↙e塟Y6雩斪q#趈伤5-2柆-IH防 /栧+仺0櫣,(慼2y嵋K;L#'n鯪櫯$Q7潷2`輳愑4/9=烍橦 縀茞f硘<媃I^搧呇0Gh眮2燖仸%鞾減晔燊%庲#瀩蕹煬<h
甽辠夵室〤舒殅寛B濅裛墕敋遘鋮JH捧22韾zG嬑0@!?犧):'N
蒱铗燇dj)毾＝sR璢M
扩rz骙閃櫼:闒b58彧V5*璵u*=︺*膥襏=茧/GW甆N`荵櫫5,0_HU
v睄m╟骦謋祎Z襰b?渆檊C漳~禙ュ([9队Z靓HC	贲涛定se鑂kKV輮-5-o演r_0%鏿冰7剐嵁t蓐Z骱赝畍匪蓊z骰痻荎掾汍艰M痾嘴宿龊鹘饙瘄绔8畊霢玭L宬	稚謣/)曡/,睳K(mF脸宫硳キdu预癳詜秾鞻S淮x喐>暐幨S/f禭y馡揑L营1{1'禼OM"v顄>竎6UW燻膦"j馩/J8鎞2鴄{H蔝^3隘uDj烪什j鏃e	焙峒碜Sd_<沲簓N
镵鐱圢储丸F;悗搐'Mi ; 0707010003275a000081a40000000000000002000000013ac038a100000af8000000200000000000000000000000000000001e00000003reloc/dhcpd/images/ctree3.gif GIF87a:      >農qsv藈|葺l雟撤;wn韛畸[l 砗X飉凤n惠!     ,    :   H盃羶*\劝∶#J淗雹艐3j苋保菑 CI菠蓳(S猏刹ニ0c蕼I肠蜎8s贶沙烜
J川眩H*]蚀┯滼氮斋X砵菔但庄`脢K冬俪h营]硕穚闶潧 莼P礅莴T/呖FT0崦;#^|S1闱2C炋R2逅(-c尢钩缦燙M殻嬉X}:祂伀a`蔸u柝捕鰼嘶y凍M5m針夒9b逅'w毫汼噆 鰡诜ы铨鉻馾#麼1<卜x狰騑悍縥楑駠貳F爛8X M!X讄%貭1)^OR⊕A`娔a嘐釬#>鋋M&炟迠-爧/)覙7诣詭H蹛Di鋺H&╀3d{B9揔NI鍟IZ"w=V%奊j墺攃芕鎞D$}3!)鏅粷&杘:Ewft^湴5千o淤暒^{%堽f鎙VN雇讱z秹琛}:'R奫殩f趇&杇A─橿歫ⅹv邯菏财氷\敡瀪贘\联(▎:k瓰鰴kU岁枢牥FK,殦禯代Jl韏嬟^(矚^+訤[詈.z婹￡蔞9-绞Nkǒ敒.瀙,鹄>>;鹆3Y0	7靝揰錚WY+䴖qT侗G髯飌&沔隧孵
>盳(3氎赲称勬Τ6烁尢粑G'惨?G桾|鸵\蛲LcyU汶驫吡\澫=S-vqX彮X豛KGt腨嶖踇Ｘ6襾礨'+7[笫}覞w/鼣穮腲+N曕;赤肗F9迺]遞歿梷産鏢:窷啂ｉL眫曡锖6d搏]籔稫晎峮睨ｏ^ Z,)湍S9'濚>z焉+,g簚W謻W9降午鋧R飡n綱颣o秿/=砇o+瞌２<腵s-玕鶽婧/?积匙噫6湽-n犅蹩擴獃Z懷
m酑W槷x塰jMa;秔Y㘚I吼l霺狓\F緇UT-H&袆ＳkX>緣痳?攁&霫h塋鋶(V(=廔_0帇jRO鍟1RL2fX8褂皅b]y汴#酋漀.#徃TA)/|屗擔#膳巔%4$锞HE2鏽,#吵禜抙扖%/5Z玱I隵K慈&g^l绾M^钄屽遉'黍槖(=胎t%e>虛O\㎏Y蝽塙Z _1m棬4"IHEs	摍郊fb赕眉]瓥<RU3wTE臅滗0艡Ms2ぼ4御J)偩D;)(K{:[&唒櫍:岀黀y.Q](鑔@蔔`N魟g)慍=~酜犪糷C窸QВ辎エ軵z/寲T?辦L:4^趓旻啭芹po哯琥9瘄k凷fQh93L峲7&殜55ロ9顶6飒3銽槧z喂M效L烌tjE擴綐Z底羋5杁秽g:隓礃=匿"T"#/gO+H1秝髩鑓由ηn柵鈆3<I柍晆h裳侽偊銻搢柕9鋾洔	[摎GI庶emAB[躡s秌-炔%l6 肮"wybR頿璉W￡喒页畉邏蓐MF喷?愎蓦^骟%暌钖w箾"i
; j鹘6M![_遘國=銱['泮ZpS鯆`N賜)cYz`X饨婻牚,梗K珎琥者"l腵=眽崌厨	k眿	6沔8"苢宱嫅X<q巤, HN矑椞&;P幉敡L*[X笪矕诽e	pW鋏:鱴葑倯非	7篕0/Y3ォ#[EcH僓C:gTy5,	㎎螧H7Se戣Xp\3 ;磦9茡\u櫇;揮诂.$洣Q謎蜆檓F+狄2g睳煢``=<_-!5ビ賗ubZ覡觥C透:锥*楝着运>牣腌碁簩v.T78"x9X廭`錴^ox8l,o射滠]幏肩M飠埯搌畏诀惋~ 咐N饌|) ;0707010003275b000081a40000000000000002000000013ac038a1000000fb000000200000000000000000000000000000001d00000003reloc/dhcpd/images/group.gif  GIF89a0 0   烫   櫃!    ,    0 0  虅彥隧唻u啟萿7i>:瞞舐</-鄖渤鶁 lHUH獠穳^r蟝*鋺ㄒ嬾栐}Wa卽藭QO`饚脙g癉巼;鼜G亲t1p坸(8F璞菢Y哖GFY雌貘炸摲1J
9轹(8垯鉠4Z肽陞2'躨榟賕缮L
萏鞂mH寚g-<;;5漬[  ; 0707010003275c000081a40000000000000002000000013ac038a100000100000000200000000000000000000000000000001c00000003reloc/dhcpd/images/host.gif   GIF89a0 0   烫   櫃!    ,    0 0  褎彥隧c蹿嫵旻q %旀墻*%掙,缙6:K跬鏢
|悵F|彨@葘%髓i讪ZKX唙踋|璦8ZN湙i您>紖t洩忣撈浊酾(7刪胤(圕2镼HyY!睮瞄I噳9騎:笽1喧;[A嫐猌H+圹授k塊k[4\:=M]]齥浾滉`-^nN-毊疚揞.Z  ;0707010003275d000081a40000000000000002000000013ac038a100000137000000200000000000000000000000000000001c00000003reloc/dhcpd/images/icon.gif   GIF89a0 0   fff櫃櫶烫!    ,    0 0  ⻊彥隧蹿嬻!q畖]F瀲X-0喉棯w款胏疌"G`x}8揁'摫4c 楂9砊"琩嵀寂鯸屗鄹.瓮牖魚3睏'73髧%P╒3Ｘ5X礌#&#Α I轾	)H&獖授犏
+;+u#$d鄞珛嫠F鱷鯖#掚t錦A#2]寜!8Z鏯(-劮xk髅u炆ⅴ鶹頶Y0奦c恳甁Q[6)觛j爦傪L!'YF4舉<	J:zB ; 07070100032787000081a40000000000000002000000013ac038a100000183000000200000000000000000000000000000001c00000003reloc/dhcpd/images/pool.gif   GIF89a0 0        鳣```忍葮槝!Made with GIMP !
  ,    0 0  䎬很0蔍8胪`(*Ai炵H媣n,洏,芨0鋤KJ媷靾H訌劆圙]I2泹Uj刵y讇蘉扣髈,E浌<c7(苕绯9z溸qbvH~_rqg%u儎or哵[)倣儑qTS,寲巒?湑灍┅塇Wa-潠牚创aL唉灥嘎.眱牗惊赂@墒了紞骋┱证/刭劾暂哙惜阢鎂腥依婧
暄祉4狷笫u粬畻糳鯑;o[0n滤鏟2w
鰎H7/饴|E旆@/f,秐轍td崈匚焻O!k峔脕cJ\*川眩H*=  ; 07070100032788000081a40000000000000002000000013ac038a100000110000000200000000000000000000000000000001e00000003reloc/dhcpd/images/shared.gif GIF89a0 0   烫   櫃檉ff         !    ,    0 0  很"娻*敶j+鐍]鰨W$~7扐郛肼tm肅愮割輅8<Y圖#PA 6棜
mPi*娱 x苦皒L/砐-cs详厈4烞5|T-{漾J5)僓!噴噠倫q揔;?
<槖BH營槍K+7(ˊ灁=5泟獺E0ゾUz{q萔撌k搪Xe矣d膚臵蚞儇衘1磻2傛筷瘞膘熲充	 ;07070100032789000081a40000000000000002000000013ac038a100000111000000200000000000000000000000000000001e00000003reloc/dhcpd/images/subnet.gif GIF89a0 0   烫   櫃!    ,    0 0  鈩彥隧#tIJ獋<啵q涽佲X鐬B[緃-訜=千幈D\B`陥|随$鑤蘪糍癹椨
s s)汱鄒{xуj:覟魔鬐_H!圓豟鑰笭壤樴6&Yhfyf笽壚┥	y譏w
y:[7媧郱洤蝗坨(孠\iz浖V詄兰淐蝇2漋-妄潳漖Df疁祬Vq5喣.E鮚e濕e兕渙动  ;   0707010002fbfc000081e40000000000000002000000013ac038a100003310000000200000000000000000000000000000001600000003reloc/dhcpd/index.cgi #!/usr/local/bin/perl
# index.cgi
# List all subnets and shared networks

require './dhcpd-lib.pl';
&ReadParse();
$horder = $in{'horder'};
$norder = $in{'norder'};
if ($horder eq "" && open(INDEX, "$module_config_directory/hindex.".$ENV{'REMOTE_USER'})) {
	chop($horder = <INDEX>);
	close(INDEX);
	}
if (!$horder) {
	$horder = 0;
	}
if ($norder eq "" && open(INDEX, "$module_config_directory/nindex.".$ENV{'REMOTE_USER'})) {
	chop($norder = <INDEX>);
	close(INDEX);
	}
if (!$norder) {
	$norder = 0;
	}
$nocols = $config{'dhcpd_nocols'} ? $config{'dhcpd_nocols'} : 5;
&header($text{'index_title'}, "", undef, 1, 1);
print "<hr>\n";
$conf = &get_config();
%access = &get_module_acl();

# Check if dhcpd is installed
if (!(-x $config{'dhcpd_path'})) {
	print "<p>";
	print &text('index_dhcpdnotfound', $config{'dhcpd_path'},
		    "/config.cgi?$module_name"),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index_return'});
	exit;
	}

# Check if it is the right version
$out = `$config{'dhcpd_path'} -v 2>&1`;
if ($out !~ /DHCP/ || $out =~ /V1/) {
        print "<p>";
        print(&text('index_dhcpdver',$config{'dhcpd_path'}));
        print "<p>\n";
        print "<hr>\n";
        &footer("/", $text{'index_return'});
	exit;
	}
$ver = $out =~ /-T/ ? 3 : 2;
if ($ver != $config{'dhcpd_version'}) {
	$config{'dhcpd_version'} = $ver;
	&write_file("$module_config_directory/config", \%config);
	}

# get top-level hosts
foreach $h (&find("host", $conf)) {
	push(@host, $h);
	}
foreach $g (&find("group", $conf)) {
	push(@group, $g);
	foreach $h (&find("host", $g->{'members'})) {
		push(@host, $h);
		$group{$h} = $g->{'index'};
		$par{$h} = $g;
		push(@{$g->{'hosts'}}, $h->{'values'}->[0]);
		}
	}

# get subnets and shared nets, and the hosts and groups within them
@subn = &find("subnet", $conf);
foreach $u (@subn) {
	$maxsubn = $maxsubn > $u->{'index'} ? $maxsubn : $u->{'index'};
	foreach $h (&find("host", $u->{'members'})) {
		$maxhost = $maxhost > $h->{'index'} ? $maxhost : $h->{'index'};
		$subnet{$h} = $u->{'index'};
		$par{$h} = $u;
		push(@host, $h);
		}
	foreach $g (&find("group", $u->{'members'})) {
		$maxgroup = $maxgroup > $g->{'index'} ? $maxgroup : $g->{'index'};
		$subnet{$g} = $u->{'index'};
		$par{$g} = $u;
		push(@group, $g);
		foreach $h (&find("host", $g->{'members'})) {
			$maxhost = $maxhost > $h->{'index'} ? $maxhost : $h->{'index'};
			$subnet{$h} = $u->{'index'};
			$group{$h} = $g->{'index'};
			$par{$h} = $g;
			push(@{$g->{'hosts'}}, $h->{'values'}->[0]);
			push(@host, $h);
			}
		}
	}
@shan = &find("shared-network", $conf);
foreach $s (@shan) {
	$maxshar = $maxshar > $s->{'index'} ? $maxshar : $s->{'index'};
	foreach $h (&find("host", $s->{'members'})) {
		$maxhost = $maxhost > $h->{'index'} ? $maxhost : $h->{'index'};
		$shared{$h} = $s->{'index'};
		$par{$h} = $s;
		push(@host, $h);
		}
	foreach $g (&find("group", $s->{'members'})) {
		$maxgroup = $maxgroup > $g->{'index'} ? $maxgroup : $g->{'index'};
		$shared{$g} = $s->{'index'};
		$par{$g} = $s;
		push(@group, $g);
		foreach $h (&find("host", $g->{'members'})) {
			$maxhost = $maxhost > $h->{'index'} ? $maxhost : $h->{'index'};
			$group{$h} = $g->{'index'};
			$shared{$h} = $s->{'index'};
			$par{$h} = $g;
			push(@{$g->{'hosts'}}, $h->{'values'}->[0]);
			push(@host, $h);
			}
		}
	foreach $u (&find("subnet", $s->{'members'})) {
		$maxsubn = $maxsubn > $u->{'index'} ? $maxsubn : $u->{'index'};
		$par{$u} = $s;
		push(@subn, $u);
		$shared{$u} = $s->{'index'};
		foreach $h (&find("host", $u->{'members'})) {
			$maxhost = $maxhost > $h->{'index'} ? $maxhost : $h->{'index'};
			$subnet{$h} = $u->{'index'};
			$shared{$h} = $s->{'index'};
			$par{$h} = $u;
			push(@host, $h);
			}
		foreach $g (&find("group", $u->{'members'})) {
			$maxgroup = $maxgroup > $g->{'index'} ? $maxgroup : $g->{'index'};
			$subnet{$g} = $u->{'index'};
			$shared{$g} = $s->{'index'};
			$par{$g} = $u;
			push(@group, $g);
			foreach $h (&find("host", $g->{'members'})) {
				$maxhost = $maxhost > $h->{'index'} ? $maxhost : $h->{'index'};
				$subnet{$h} = $u->{'index'};
				$group{$h} = $g->{'index'};
				$shared{$h} = $s->{'index'};
				$par{$h} = $g;
				push(@{$g->{'hosts'}}, $h->{'values'}->[0]);
				push(@host, $h);
				}
			}
		}
	}
foreach $s (@shan) {
	$s->{'order'} = (1 + $s->{'index'}) * (2 + $maxsubn);
	}
foreach $s (@subn) {
	$s->{'order'} = (defined($shared{$s}) ? (1 + $shared{$s}) * (2 + $maxsubn) : 0)
			+ 1 + $s->{'index'};
	}
if ($norder == 0) {
	@subn = (@subn, @shan);
	}
elsif ($norder == 1) {
	@subn = (@subn, @shan);
	@subn = sort { $a->{'order'} <=> $b->{'order'} } @subn;
	}
elsif ($norder == 2) {
	@subn = sort { $a->{'values'}->[0] <=> $b->{'values'}->[0] } @subn;
	@shan = sort { $a->{'values'}->[0] <=> $b->{'values'}->[0] } @shan;
	@subn = (@subn, @shan);
	}

# display subnets and shared nets
foreach $u (@subn) {
	local $can_view = &can('r', \%access, $u);
	next if !$can_view && $access{'hide'};
	if ($u->{'name'} eq "subnet") {
		push(@links, $can_view ? 
			"edit_subnet.cgi?idx=$u->{'index'}".
			($shared{$u} ne "" ? "&sidx=$shared{$u}" : "") :
			undef);
		push(@titles, $u->{'values'}->[0]);
		push(@icons, "images/subnet.gif");
		}
	else {
		push(@links, $can_view ?
			"edit_shared.cgi?idx=$u->{'index'}" : undef);
		push(@titles, $u->{'values'}->[0]);
		push(@icons, "images/shared.gif");
		}
	}
if ($access{'r_sub'} || $access{'c_sub'} || $access{'r_sha'} || $access{'c_sha'}) {
	print "<h3>$text{'index_subtitle'}</h3>\n";
	$sp = "";
	if (@links) {
		&index_links($norder, "n", 3, $text{'index_ndisplay'},
			"horder=$horder");
		if ($config{'hostnet_list'} == 0) {
			&icons_table(\@links, \@titles, \@icons, $nocols);
			}
		else {
			&net_table(\@subn, 0, scalar(@subn), \@links, \@titles);
			}
		}
	else {
		print "$text{'index_nosubdef'} <p>\n";
		}
	}
print "<a href='edit_subnet.cgi?new=1'>$text{'index_addsub'}</a>&nbsp;&nbsp;\n"
	if $access{'c_sub'};
print "<a href='edit_shared.cgi?new=1'>$text{'index_addnet'}</a><p>\n"
	if $access{'c_sha'};
print "<hr>\n";

foreach $g (@group) {
	$parent = (defined($subnet{$g}) ? 1 + $subnet{$g} : 0) +
		  (defined($shared{$g}) ? (1 + $shared{$g}) * (2 + $maxsubn) : 0);
	$g->{'order'} = $parent + (1 + $g->{'index'}) / (2 + $maxgroup);
	}
foreach $h (@host) {
	$parent = (defined($group{$h}) ? (1 + $group{$h}) / (2 + $maxgroup) : 0) +
		  (defined($subnet{$h}) ? 1 + $subnet{$h} : 0) +
		  (defined($shared{$h}) ? (1 + $shared{$h}) * (2 + $maxsubn) : 0);
	$h->{'order'} = $parent + (1 + $h->{'index'}) /
			((1 + @group) * (2 + $maxhost));
	}
if ($horder == 0) {
	@host = (@host, @group);
	}
elsif ($horder == 1) {
	@host = (@host, @group);
	@host = sort { $a->{'order'} <=> $b->{'order'} } @host;
	}
elsif ($horder == 2) {
	@host = sort { $a->{'values'}->[0] cmp $b->{'values'}->[0] } @host;
	@host = (@host, @group);
	}
elsif ($horder == 3) {
	@host = sort { &hardware($a) cmp &hardware($b) } @host;
	@host = (@host, @group);
	}
elsif ($horder == 4) {
	@host = sort { &ipaddress($a) cmp &ipaddress($b) } @host;
	@host = (@host, @group);
	}

# display hosts
@links = @titles = @icons = ();
foreach $h (@host) {
	local $can_view = &can('r', \%access, $h);
	next if !$can_view && $access{'hide'};
	if ($h->{'name'} eq 'host') {
		push(@links, $can_view ?
			"edit_host.cgi?idx=$h->{'index'}".
			(defined($group{$h}) ? "&gidx=$group{$h}" : "").
			(defined($subnet{$h}) ? "&uidx=$subnet{$h}" : "").
			(defined($shared{$h}) ? "&sidx=$shared{$h}" : "") :
			undef);
		push(@titles, $h->{'values'}->[0]);
		push(@icons, "images/host.gif");
		}
	else {
		push(@links, $can_view ?
			"edit_group.cgi?idx=$h->{'index'}".
			(defined($subnet{$h}) ? "&uidx=$subnet{$h}" : "").
			(defined($shared{$h}) ? "&sidx=$shared{$h}" : "") :
			undef);
		$gm = @{$h->{'hosts'}};
		push(@titles, &group_name($gm));
		push(@icons, "images/group.gif");
		}
	}
if ($access{'r_hst'} || $access{'c_hst'} || $access{'r_grp'} || $access{'c_grp'}) {
	print "<h3>$text{'index_hst'}</h3>\n";
	$sp = "";
	if (@links) {
		&index_links($horder, "h", 5, $text{'index_hdisplay'},
			"norder=$norder");
		if ($config{'hostnet_list'} == 0) {
			&icons_table(\@links, \@titles, \@icons, $nocols);
			}
		else {
			&host_table(\@host, 0, scalar(@host), \@links, \@titles);
			}
		}
	else {
		print "$text{'index_nohst'} <p>\n";
		}
	}
print "<a href='edit_host.cgi?new=1'>$text{'index_addhst'}</a>&nbsp;&nbsp;\n"
	if $access{'c_hst'};
print "<a href='edit_group.cgi?new=1'>$text{'index_addhstg'}</a><p>\n"
	if $access{'c_grp'};
print "<hr>\n";

print "<table>\n";
if ($access{'global'}) {
	print "<form action=edit_options.cgi>\n";
	print "<input type=hidden name=global value=1>\n";
	print "<tr> <td><input type=submit value=\"$text{'index_buttego'}\"></td>\n";
	print "<td>$text{'index_ego'} \n";
	print "</td> </tr>\n";
	print "</form>\n";
	}
if ($access{'r_leases'}) {
	print "<form action=list_leases.cgi>\n";
	print "<tr> <td><input type=submit value=\"$text{'index_buttlal'}\"></td>\n";
	print "<td>$text{'index_lal'} \n";
	print "</td> </tr>\n";
	print "</form>\n";
	}
if ($access{'apply'}) {
	if (open(PID, $config{'pid_file'})) {
		chop($pid = <PID>);
		close(PID);
		}
	if ($pid && kill(0, $pid)) {
		print "<form action=restart.cgi>\n";
		print "<input type=hidden name=pid value=$pid>\n";
		print "<tr> <td><input type=submit value=\"$text{'index_buttapply'}\"></td>\n";
		print "<td>$text{'index_apply'} \n";
		print "</td></tr>\n";
		print "</form>\n";
		}
	else {
		print "<form action=start.cgi>\n";
		print "<tr> <td><input type=submit value=\"$text{'index_buttstart'}\"></td>\n";
		print "<td>$text{'index_start'} \n";
		print "</td> </tr>\n";
		print "</form>\n";
		}
	}
print "</table>\n";

print "<hr>\n";
&footer("/", $text{'index_return'});

# Returns canonized hardware address.
sub hardware {
	local ($hconf, $addr);
	$hconf = $_[0]->{'members'} ? &find("hardware", $_[0]->{'members'}) : undef;
	if ($hconf) {
		$addr = uc($hconf->{'values'}->[1]);
		$addr =~ s/(^|\:)([0-9A-F])(?=$|\:)/$1\x30$2/g;
	}
	return $hconf ? $addr : undef;
}

# Returns ip address for sorting on
sub ipaddress
{
return undef if (!$_[0]->{'members'});
local $iconf = &find("fixed-address", $_[0]->{'members'});
return undef if (!$iconf);
return sprintf "%3.3d.%3.3d.%3.3d.%3.3d",
		split(/\./, $iconf->{'values'}->[0]);
}

sub fixedaddr {
	local ($fixed, $addr);
	$fixed = &find("fixed-address", $_[0]->{'members'});
	$addr = join(" ", grep { $_ ne "," } @{$fixed->{'values'}});
	$addr =~ s/, / /g;
	return $addr;
}

sub netmask {
	return $_[0]->{'values'}->[2];
}

# index_links(current, name, max, txt, ref)
sub index_links
{
local (%linkname, $l);
print "<table><tr><td valign=top><b>$_[3] </b>&nbsp;&nbsp;</td>\n";
print "<td>";
for ($l = 0; $l < $_[2]; $l++) {
	if ($l ne $_[0]) {
		print "<a href=?$_[1]order=$l\&$_[4]>";
		}
	else {
		print "<b>";
		}
	print $text{"index_$_[1]order$l"};
	if ($l ne $_[0]) {
		print "</a>";
		}
	else {
		print "</b>";
		}
	print "&nbsp;\n";
	}
print "</td></table>\n";
open(INDEX, "> $module_config_directory/$_[1]index.".$ENV{'REMOTE_USER'});
print INDEX "$_[0]\n";
close(INDEX);
}

sub host_table
{
local ($i, $h, $parent);
print "<table border width=95%>\n";
print "<tr $tb> <td><b>", $text{'index_hostgroup'}, "</b></td> ",
      "<td><b>", $text{'index_parent'}, "</b></td> ",
      "<td><b>", $text{'index_hardware'}, "</b></td> ",
      "<td><b>", $text{'index_nameip'}, "</b></td> </tr>\n";
for ($i = $_[1]; $i < $_[2]; $i++) {
	print "<tr $cb> <td>\n";
	$h = $_[0]->[$i];
	if ($h->{'name'} eq 'host') {
		print $sp;
		}
	else {
		print $text{'index_group'}, " ";
		$sp = "\&nbsp;\&nbsp;";
		}
	if ($_[3]->[$i]) {
		print "<a href=$_[3]->[$i]>", $_[4]->[$i], "</a> </td>\n";
		}
	else {
		print $_[4]->[$i], "</td>\n";
		}
	if ($par{$h}->{'name'} eq "group") {
		$parent = "$text{'index_togroup'} ".&group_name(scalar @{$par{$h}->{'hosts'}});
		}
	elsif ($par{$h}->{'name'} eq "subnet") {
		$parent = "$text{'index_tosubnet'} $par{$h}->{'values'}->[0]";
		}
	elsif ($par{$h}->{'name'} eq "shared-network") {
		$parent = "$text{'index_toshared'} $par{$h}->{'values'}->[0]";
		}
	print "<td>", $parent, "\&nbsp;</td>\n";
	print "<td>", $_[3]->[$i] ? &hardware($h) : "", "\&nbsp;</td>\n";
	print "<td>", $_[3]->[$i] ? &fixedaddr($h) : "", "\&nbsp;</td>\n";
	print "</tr>\n";
	}
print "</table>\n"
}

sub net_table
{
local ($i, $n);
print "<table border width=95%>\n";
print "<tr $tb> <td><b>", $text{'index_net'}, "</b></td> ",
      "<td><b>", $text{'index_netmask'}, "</b></td> ",
      "<td><b>", $text{'index_parent'}, "</b></td> </tr>\n";
for ($i = $_[1]; $i < $_[2]; $i++) {
	print "<tr $cb> <td>\n";
	$n = $_[0]->[$i];
	if ($n->{'name'} eq 'subnet') {
		print $sp;
		}
	else {
		$sp = "\&nbsp;\&nbsp;";
		}
	if ($_[3]->[$i]) {
		print "<a href=$_[3]->[$i]>", $_[4]->[$i], "</a> </td>\n";
		}
	else {
		print $_[4]->[$i], "</td>\n";
		}
	print "<td>", $_[3]->[$i] ? &netmask($n) : "", "\&nbsp;</td>\n";
	print "<td>", $par{$n} ? 
		"$text{'index_toshared'} $par{$n}->{'values'}->[0]" : "",
		"\&nbsp;</td>\n";
	print "</tr>\n";
	}
print "</table>\n"
}
070701000340b9000041ed0000000000000001000000023ac03bd300000000000000200000000000000000000000000000001100000003reloc/dhcpd/lang  070701000340ba000081a40000000000000002000000013ac038a200001791000000200000000000000000000000000000001400000003reloc/dhcpd/lang/de   index_title=DHCP Server
index_dhcpdnotfound=Der DHCP Server <i>$1</i> konnte auf Ihrem System nicht gefunden werden. Vielleicht ist er nicht isntalliert, oder Ihre <a href="$2">DHCP Modul Konfiguration</a> ist fehlerhaft.
index_return=Startseite
index_dhcpdver=Der DHCP Server <i>$1</i> scheint nicht in der richtigen Version vorzuliegen. Webmin unterst黷zt ausschlie遧ich den ISC DHCPD Version 2.
index_subtitle=Subnetze und verteilte Netzwerke
index_nosubdef=Keine Subnetze oder geteilte Netzwerke wurden definiert.
index_addsub=Ein neues Subnetz hinzuf&uuml;gen
index_addnet=Ein neues verteiltes Netzwerk hinzuf&uuml;gen
index_nomemb=Keine Mitglieder
index_1memb=1 Mitglied
index_234memb=$1 Mitglieder
index_memb=$1 Mitglieder
index_hst=Hosts und Host Gruppen
index_nohst=Es wurden keine Hosts oder Gruppen definiert.
index_hostgroup=Host/Gruppe
index_addhst=Einen neuen Host hinzuf&uuml;gen
index_addhstg=Eine neue Host Gruppe hinzuf&uuml;gen
index_buttego=Bearbeite globale Einstellungen
index_ego=Bearbeite DHCP Einstellungen und wende sie auf alle Subnetze, verteilte Netzwerke, Host und Host Gruppen an
index_buttlal=Liste aktive Vergaben auf
index_lal=Liste Vergaben auf, die momentan von diesem DHCP Server als dynamische IP Adressen vergeben wurden
index_buttapply=&Auml;nderungen anwenden
index_apply=Klicken Sie auf diesen Button um die aktuelle Konfiguration auf den laufenden DHCP Server anzuwenden (dies geschieht durch Stoppen und neu Starten des Prozesses)
index_buttstart=Starte Server
index_start=Clicken Sie auf diesen Button um den DHCP Server auf Ihrem System mit der aktuellen Konfiguration zu aktivieren

butt_save=Speichern
butt_eco=Bearbeite Client Einstellungen
butt_del=L&ouml;schen
butt_create=Erstellen

esub_crheader=Subnetz erstellen
esub_edheader=Subnetz bearbeiten
esub_tabhdr=Subnetz Details
esub_naddr=Netzwerk Adresse
esub_nmask=Netzmaske
esub_arange=Adress Raum
esub_dbooptpq=Dynamisches BOOTP ?
esub_shnet=Verteiltes Netzwerk
esub_return=Subnetz Liste

esh_crheader=Verteiltes Netzwerk erstellen
esh_eheader=Verteiltes Netzwerk bearbeiten
esh_tabhdr=Details des verteilten Netzwerks
esh_netname=Netzwerk Name
esh_return=Subnetz Liste

ehost_crheader=Host erstellen
ehost_eheader=Host bearbeiten
ehost_tabhdr=Host Details
ehost_hname=Host Name
ehost_fixedip=Feste IP Adresse
ehost_return=Host Liste

egroup_crheader=Host Gruppe erstellen
egroup_eheader=Host Gruppe bearbeiten
egroup_tblhdr=Gruppen Details
egroup_hosts=Host in dieser Gruppe
egroup_nchoice=Benutze Name als Client Hostname?
egroup_return=Host Liste

yes=Ja
no=Nein
default=Standard
secs=Sek.
none=Keine

listl_header=DHCP Vergaben
listl_lfnotexist=Die DHCPd Vergabendatei <tt>$1</tt> existiert nicht.
listl_lfnotcont=Die DHCPd Vergabendatei <tt>$1</tt> enth&auml;lt keine $2 Vergaben.
listl_active=aktiven
listl_ipaddr=IP Adresse
listl_ether=Ethernet
listl_host=Hostname
listl_start=Start Datum
listl_end=End Datum
listl_return=Subnetz Liste

restart_errmsg1=Das Neustarten des dhcpd schlug fehl
restart_errmsg2=Fehler beim senden des Signals an den Prozess
start_failstart=Das Starten des dhcpd schlug fehl

sgroup_faildel=Das L&ouml;schen der Gruppe schlug fehl
sgroup_failsave=Das Speichern der Gruppe schlug fehl

shost_faildel=Das L&ouml;schen des Hosts schlug fehl
shost_failsave=Das Speichern des Hosts schlug fehl
shost_invalidhn=ist kein g&uuml;ltiger Hostname
shost_invalidhwa='$1' ist kein g&uuml;ltige $2 Adresse

sopt_failsave=Fehler beim Speichern der Client Einstellungen
sopt_invalidip=ist keine g&uuml;ltige IP Adresse
sopt_invalidint=ist keine Ganzzahl
sopt_invalidipp=ist kein g&uuml;ltiges IP Adressen Paar (wie z.B. 1.2.3.4,5.6.7.8)

sshared_faildel=Das L&ouml;schen des verteilten Netzwerks schlug fehl
sshared_failsave=Das Speichern des verteilten Netzwerks schlug fehl
sshared_invalidsname=Fehlender oder ung&uuml;ltiger Name

ssub_faildel=Das L&ouml;schen des Subnetzes schlug fehl
ssub_failsave=Fehler beim Speichern des Subnetzes
ssub_invalidsubaddr=ist kein g&uuml;ltige Subnetz Adresse
ssub_invalidnmask=ist keine g&uuml;ltige Netzmaske
ssub_invalidipr=ist kein g&uuml;ltiger IP Bereich

plib_deflt=Standard Vergabe-Zeit
plib_bfname=Boot Dateiname
plib_maxlt=Maximale Vergabe Zeit
plib_bfserv=Boot Datei Server
plib_thisserv=Dieser Server
plib_servname=Server Name
plib_llbc=Vergabel&auml;nge f&uuml;r BOOTP Clients
plib_forever=Beliebig
plib_lebc=Vergabe-Ende f&uuml;r BOOTP Clients
plib_never=Niemals
plib_invalidlt=ist keine g&uuml;ltige Vergabezeit
plib_invalidsn=ist kein g&uuml;ltiger Server Name
plib_leformat=Vergabe-Enddatum muss das Format W YYYY/MM/DD HH:MM:SS haben
plib_copt=Client Einstellungen
plib_chname=Client Hostname
plib_defrouters=Standard Router
plib_snmask=Subnetzmaske
plib_babbr=Broadcast Adresse
plib_domname=Domain Name
plib_dnsserv=DNS Server
plib_timeserv=Zeit Server
plib_logserv=Log Server
plib_swapserv=Swap Server
plib_rdpath=Stammverzeichnis Pfad
plib_nisdom=NIS Domain
plib_nisserv=NIS Server
plib_fontserv=Font Server
plib_xdmserv=XDM Server
plib_statrouters=Statische Routen
plib_ntpserv=NTP Server
plib_nbns=NetBIOS Name Server
plib_nbscope=NetBIOS Scope
plib_nbntype=NetBIOS Verbindungstyp

eopt_header=Client Einstellungen
eopt_subtitle=F&uuml;r Subnetz $1
eopt_returnsub=Subnetz Liste
eopt_snettitle=F&uuml;r verteiltes Netzwerk $1
eopt_hosttitle=F&uuml;r Host $1
eopt_returnhost=Host Liste
eopt_grouptitle=F&uuml;r $1 Gruppe
eopt_alltitle=F&uuml;r alle Netzwerke, Hosts und Gruppen
eopt_returnindex=Index
eopt_tabhdr=Client Einstellungen
eopt_chost=Client Hostname
eopt_defrouters=Standard Router
eopt_smask=Subnetz Maske
eopt_baddr=Broadcast Adresse
eopt_domname=Domain Name
eopt_dnsserv=DNS Server
eopt_timeserv=Zeit Server
eopt_logserv=Log Server
eopt_swapserv=Swap Server
eopt_rdpath=Stammverzeichnis Pfad
eopt_nisdom=NIS Domain
eopt_nisserv=NIS Server
eopt_fontserv=Font Server
eopt_xdmserv=XDM Server
eopt_statrouters=Statische Routen
eopt_ntpserv=NTP Server
eopt_nbns=NetBIOS Name Server
eopt_nbs=NetBIOS Scope
eopt_nbntype=NetBIOS Verbindungstyp


   070701000340bb000081a40000000000000002000000013ac038a200002835000000200000000000000000000000000000001400000003reloc/dhcpd/lang/en   index_title=DHCP Server
index_dhcpdnotfound=The DHCP server <i>$1</i> could not be found on your system. Maybe it is not installed, or your <a href="$2">DHCP module configuration</a> is incorrect.
index_return=index
index_dhcpdver=The DHCP server <i>$1</i> does not appear to be correct version. Webmin only supports ISC DHCPD version 2.
index_subtitle=Subnets and Shared Networks
index_nosubdef=No subnets or shared networks have been defined.
index_addsub=Add a new subnet
index_addnet=Add a new shared network
index_nomemb=No members
index_1memb=1 member
index_234memb=$1 members
index_memb=$1 members
index_hst=Hosts and Host Groups
index_nohst=No hosts or groups have been defined.
index_hostgroup=Host/Group
index_parent=Parent
index_hardware=Hardware Address
index_group=Group:
index_nameip=Hostname or IP
index_net=Network
index_netmask=Netmask
index_addhst=Add a new host
index_addhstg=Add a new host group
index_buttego=Edit Client Options
index_ego=Edit DHCP client options that apply to all subnets, shared networks, hosts and groups
index_buttlal=List Active Leases
index_lal=List leases currently issued by this DHCP server for dynamically assigned IP addresses.
index_buttapply=Apply Changes
index_apply=Click this button to apply the current configuration to the running DHCP server, by stopping and restarting it.
index_buttstart=Start Server
index_start=Click this button to start the DHCP server on your system, using the current configuration.
index_hdisplay=Display hosts and groups by:
index_horder0=Assignment
index_horder1=File structure
index_horder2=Name
index_horder3=Hardware address
index_horder4=IP address
index_togroup=Group
index_tosubnet=Subnet
index_toshared=Network
index_ndisplay=Display nets and subnets by:
index_norder0=Assignment
index_norder1=File structure
index_norder2=Name/IP address

butt_save=Save
butt_eco=Edit Client Options
butt_vco=View Client Options
butt_del=Delete
butt_create=Create

esub_crheader=Create Subnet
esub_edheader=Edit Subnet
esub_tabhdr=Subnet Details
esub_naddr=Network address
esub_nmask=Netmask
esub_arange=Address ranges
esub_dbooptpq=Dynamic BOOTP ?
esub_shnet=Shared network
esub_hosts=Hosts directly in this subnet
esub_groups=Groups directly in this subnet
esub_pools=Address Pools for Subnet
esub_pool=Pool $1
esub_poolnone=No address pools defined
esub_pooladd=Add an address pool
esub_none=None
esub_return=subnet list
esub_retshar=shared network

esh_crheader=Create Shared Network
esh_eheader=Edit Shared Network
esh_tabhdr=Shared Network Details
esh_netname=Network name
esh_hosts=Hosts directly in this shared network
esh_groups=Groups directly in this shared network
esh_subn=Subnets in this shared network
esh_return=subnet list

ehost_crheader=Create Host
ehost_eheader=Edit Host
ehost_tabhdr=Host Details
ehost_hname=Host name
ehost_nojavascr=Your browser does not seem to support javascript. Now you must chose the proper position from the list below.
ehost_assign=Host assigned to
ehost_toplevel=Toplevel
ehost_inshared=Shared Network
ehost_insubnet=Subnet
ehost_ingroup=Group
ehost_hwaddr=Hardware Address
ehost_fixedip=Fixed IP address
ehost_subnet=In subnet $1/$2
ehost_shared=In shared network $1
ehost_in=in
ehost_return=host list
ehost_retgroup=group
ehost_retsubn=subnet
ehost_retshar=shared network

egroup_crheader=Create Host Group
egroup_eheader=Edit Host Group
egroup_tblhdr=Group Details
egroup_assign=Group assigned to
egroup_hosts=Hosts in this group
egroup_nchoice=Use name as client hostname?
egroup_return=host list
egroup_retsubn=subnet
egroup_retshar=shared network

default=Default
secs=secs
none=None

listl_header=DHCP Leases
listl_lfnotexist=The DHCPd lease file <tt>$1</tt> does not exist.
listl_lfnotcont=The DHCPd lease file <tt>$1</tt> does not contain any $2 leases.
listl_active=active
listl_ipaddr=IP Address
listl_ether=Ethernet
listl_host=Hostname
listl_start=Start Date
listl_end=End Date
listl_return=network and host list
listl_all=List all active and expired leases
listl_delete=Click on a lease IP address from the list above to delete it.

restart_errmsg1=Failed to restart dhcpd
restart_errmsg2=Failed to signal process
start_failstart=Failed to start dhcpd

sgroup_faildel=Failed to delete group
sgroup_failsave=Failed to save group
sgroup_invassign=group assigned to an incorrect section
sgroup_echanged=Configuration file contents has been changed. Try again.

shost_faildel=Failed to delete host
shost_failsave=Failed to save host
shost_invalidhn=is not a valid host name
shost_invalidhwa='$1' is not a valid $2 address
shost_invalidaddr='$1' contains an invalid hostname or IP address
shost_invassign=host assigned to an incorrect section

sopt_failsave=Failed to save client options
sopt_invalidip=is not a valid IP address
sopt_invalidint=is not an integer
sopt_invalidipp=is not a valid IP address pair (like 1.2.3.4,5.6.7.8)

sshared_faildel=Failed to delete shared network
sshared_failsave=Failed to save shared network
sshared_invalidsname=Missing or invalid shared network name.
sshared_nosubnet=Shared network '$1' does not contain any subnet.

ssub_faildel=Failed to delete subnet
ssub_failsave=Failed to save subnet
ssub_invalidsubaddr=is not a valid subnet address
ssub_invalidnmask=is not a valid netmask
ssub_invalidipr=is not a valid range IP address
ssub_nosubnet=Shared network '$1' does not contain any subnet.

plib_deflt=Default lease time
plib_bfname=Boot filename
plib_maxlt=Maximum lease time
plib_bfserv=Boot file server
plib_thisserv=This server
plib_servname=Server name
plib_llbc=Lease length for BOOTP clients
plib_forever=Forever
plib_lebc=Lease end for BOOTP clients
plib_never=Never
plib_invalidlt=is not a valid lease time
plib_invalidsn=is not a valid server name
plib_invaliddom=$1 is not a valid domain name
plib_leformat=Lease end date must be in the format W YYYY/MM/DD HH:MM:SS
plib_copt=Client Options
plib_chname=Client hostname
plib_defrouters=Default routers
plib_snmask=Subnet mask
plib_babbr=Broadcast address
plib_domname=Domain name
plib_dnsserv=DNS servers
plib_timeserv=Time servers
plib_logserv=Log servers
plib_swapserv=Swap server
plib_rdpath=Root disk path
plib_nisdom=NIS domain
plib_nisserv=NIS servers
plib_fontserv=Font servers
plib_xdmserv=XDM servers
plib_statrouters=Static routes
plib_ntpserv=NTP servers
plib_nbns=NetBIOS name servers
plib_nbscope=NetBIOS scope
plib_nbntype=NetBIOS node type
plib_ddnsdom=Dynamic DNS domain name
plib_ddnsrevdom=Dynamic DNS reverse domain
plib_ddnsup=Dynamic DNS enabled?
plib_ddnshost=Dynamic DNS hostname
plib_ddnshost_def=From client

eopt_header=Client Options
eopt_subtitle=For subnet $1
eopt_returnsub=subnet
eopt_returnshsub=shared network
eopt_snettitle=For shared network $1
eopt_hosttitle=For host $1
eopt_returnhost=host
eopt_returngroup=host group
eopt_grouptitle=For $1 member group
eopt_alltitle=For all networks, hosts and groups
eopt_returnindex=network and host list
eopt_tabhdr=Client Options
eopt_chost=Client hostname
eopt_defrouters=Default routers
eopt_smask=Subnet mask
eopt_baddr=Broadcast address
eopt_domname=Domain name
eopt_dnsserv=DNS servers
eopt_timeserv=Time servers
eopt_logserv=Log servers
eopt_swapserv=Swap server
eopt_rdpath=Root disk path
eopt_nisdom=NIS domain
eopt_nisserv=NIS servers
eopt_fontserv=Font servers
eopt_xdmserv=XDM servers
eopt_statrouters=Static routes
eopt_ntpserv=NTP servers
eopt_nbns=NetBIOS name servers
eopt_nbs=NetBIOS scope
eopt_nbntype=NetBIOS node type
eopt_custom=Custom option
eopt_cnum=Number
eopt_cval=Value

log_apply=Applied changes
log_start=Started DHCP server
log_create_subnet=Created subnet $1
log_delete_subnet=Deleted subnet $1
log_modify_subnet=Modified subnet $1
log_options_subnet=Modified options for subnet $1
log_create_shared=Created shared network $1
log_delete_shared=Deleted shared network $1
log_modify_shared=Modified shared network $1
log_options_shared=Modified options for shared network $1
log_create_host=Created host $1
log_delete_host=Deleted host $1
log_modify_host=Modified host $1
log_options_host=Modified options for host $1
log_create_group=Created group of $1 hosts
log_delete_group=Deleted group of $1 hosts
log_modify_group=Modified group of $1 hosts
log_options_group=Modified options for group of $1 hosts
log_delete_lease=Deleted lease for $1

pool_edit=Edit Address Pool
pool_create=Created Address Pool
pool_header=Address pool options
pool_allow=Clients to allow
pool_deny=Clients to deny
pool_return=subnet

cdel_header=Warning
cdel_shared1=shared network
cdel_shared2=shared network
cdel_subnet1=subnet
cdel_subnet2=subnet
cdel_subnet=subnet
cdel_subnets=subnets
cdel_group1=group
cdel_group2=group
cdel_group=group
cdel_groups=groups
cdel_host=host
cdel_hosts=hosts
cdel_txt=Deleting $1 '$2' will also delete its contents:
cdel_confirm=Do you really want to delete this $1 ?
cdel_eunknown=Unknown error
cdel_return=host and network list

eacl_aviol=Access control violation
eacl_np=You have not permissions to
eacl_pdh=delete host
eacl_pih=add new hosts
eacl_puh=edit host
eacl_psh=select host
eacl_pdg=delete group
eacl_pig=add new groups
eacl_pug=edit group
eacl_psg=select group
eacl_pds=delete subnet
eacl_pis=add new subnets
eacl_pus=edit subnet
eacl_pss=select subnet
eacl_pdn=delete shared network
eacl_pin=add new shared networks
eacl_pun=edit shared network
eacl_psn=select shared network
eacl_uniq=create duplicates
eacl_pdl=delete leases
eacl_psl=view leases
eacl_pglob=edit global options
eacl_papply=restart this service

acl_apply=Can apply changes?
acl_r_leases=Can view leases?
acl_w_leases=Can remove leases?
acl_global=Can edit global options?
acl_uniq_hst=Uniq host names?
acl_uniq_sub=Uniq subnet IP addresses?
acl_uniq_sha=Uniq shared-net names?
acl_seclevel=Use security level:
acl_hide=Hide inaccessible objects?
acl_ahst=Access hosts:
acl_agrp=Access groups:
acl_asub=Access subnets:
acl_asha=Access shared nets:
acl_per_hst_acls=Enable per-host ACLs?
acl_per_sub_acls=Enable per-subnet ACLs?
acl_per_obj_acls=Per-object ACLs...
acl_na=not allowed
acl_r1=read only
acl_rw=read/write
acl_c=create
acl_r=read
acl_w=write
acl_err=Error saving ACL list
acl_ernow=If you want to enable write access in global ACLs for some object type you must also enable read access for this object type.
acl_normal=normal
acl_paranoic=paranoic
   070701000340bc000081a40000000000000002000000013ac038a200002df7000000200000000000000000000000000000001400000003reloc/dhcpd/lang/es   index_title=Servidor DHCP
index_dhcpdnotfound=El servidor de DHCP <i>$1</i> no pudo ser encontrado en tu sistema. Quiz no est instalado o tu <a href=\"/config.cgi?$module_name\">m骴ulo de configuraci髇 de DHCP</a> es incorrecto.
index_return=韓dice
index_dhcpdver=El servidor de DHCP <i>$1</i> no parece ser de la versi髇 correcta. Webmin s髄o soporta la versi髇 2 de ISC DHCPD.
index_subtitle=Subredes y Redes Compartidas.
index_nosubdef=No se han definido subredes o redes compartidas.
index_addsub=A馻dir una nueva subred.
index_addnet=A馻dir una nueva red compartida
index_nomemb=No hay miembros
index_1memb=1 miembro
index_234memb=$1 miembros
index_memb=$1 miembros
index_hst=M醧uinas y Grupos de M醧uinas
index_nohst=No se han definido m醧uinas o grupos.
index_hostgroup=M醧uina/Grupo
index_parent=Padre
index_hardware=Direcci髇 de Hardware
index_group=Grupo:
index_nameip=Nombre de m醧uina o IP
index_net=Red
index_netmask=M醩cara de red
index_addhst=A馻dir una nueva m醧uina
index_addhstg=A馻dir un nuevo grupo de m醧uinas
index_buttego=Editar Opciones Globales
index_ego=Editar opciones DHCP que se aplican a todas las subredes, redes compartias, m醧uinas y grupos.
index_buttlal=Listar Arrendamientos Activos
index_lal=Lista arrendamientos ahora suministrados por este servidor DHCP para las direcciones IP asignadas din醡icamente.
index_buttapply=Aplicar Cambios
index_apply=Haz click en este bot髇 para aplicar la configuraci髇 actual al servidor DHCP en ejecuci髇 mediante su parada y rearranque.
index_buttstart=Arrancar Servidor
index_start=Haz click en este bot髇 para arrancar el servidor DHCP de tu sistema utilizando la configuraci髇 en curso.
index_hdisplay=Mostrar m醧uinas y grupos por:
index_horder0=Asignaci髇
index_horder1=Estructura de Archivo
index_horder2=Nombre
index_horder3=Direcci髇 de Hardware
index_togroup=Grupo
index_tosubnet=Subred
index_toshared=Red
index_ndisplay=Mostrar redes y subredes por:
index_norder0=Asignaci髇
index_norder1=Estructura de Archivo
index_norder2=Nombre/Direcci髇 IP

butt_save=Salvar
butt_eco=Editar Opciones de Cliente
butt_vco=Ver Opciones de Cliente
butt_del=Borrar
butt_create=Crear

esub_crheader=Crear Subred
esub_edheader=Editar Subred
esub_tabhdr=Detalles de Subred
esub_naddr=Direcci髇 de Red
esub_nmask=M醩cara de Red
esub_arange=Rangos de direcciones
esub_dbooptpq=緽OOTP din醡ico?
esub_shnet=Red compartida
esub_hosts=M醧uinas dir閏tamente en esta Subred
esub_groups=Grupos dir閏tamente en esta Subred
esub_pools=Paquetes de direcciones para Subred
esub_pool=Paquete $1
esub_poolnone=No se ha definido paquetes de direcciones
esub_pooladd=A馻dir un paquetes de direcciones
esub_none=Ninguno
esub_return=lista de subred
esub_retshar=red compartida

esh_crheader=Crear Red Compartida
esh_eheader=Editar Red Compartida
esh_tabhdr=Detalles de Red Compartida
esh_netname=Nombre de red
esh_hosts=M醧uinas dir閏tamente en esta red compartida
esh_groups=Grupos dir閏tamente en esta red compartida
esh_subn=Subredes en esta red compartida
esh_return=lista de subred

ehost_crheader=Crear M醧uina
ehost_eheader=Editar M醧uina
ehost_tabhdr=Detalles de M醧uina
ehost_hname=Nombre de m醧uina
ehost_nohavascr=Tu navegador no parece soportar javascript. Ahora debes de seleccionar de la posici髇 adecuada de la lista inferior.
ehost_assign=M醧uina asignada a
ehost_toplevel=Nivel superior
ehost_inshared=Red Compartida
ehost_insubnet=Subred
ehost_ingroup=Grupo
ehost_hwaddr=Direcci髇 Hardware
ehost_fixedip=Direcci髇 IP fijada
ehost_subnet=En la subred $1/$2
ehost_shared=En red compartida $1
ehost_in=en
ehost_return=lista de m醧uinas
ehost_retgroup=grupo
ehost_retsubn=subred
ehost_retshar=red compartida

egroup_crheader=Crear Grupo de M醧uinas
egroup_eheader=Editar Grupo de M醧uinas
egroup_tblhdr=Detalles de Grupo
egroup_assign=Grupo asignado a
egroup_hosts=M醧uinas en este grupo
egroup_nchoice=縐so el nombre como nombre de m醧uina del cliente?
egroup_return=lista de m醧uinas
egroup_retsubn=subred
egroup_retshar=red compartida

default=Por defecto
secs=segs
none=Ninguno

listl_header=Arrendamientos DHCP
listl_lfnotexist=No existe el archivo de arrendamientos de DHCPd <tt>$1</tt>.
listl_lfnotcont=El archivo de arrendamientos de DHCPd <tt>$1</tt> no contiene arrendamientos $2.
listl_active= activos
listl_ipaddr=Direcci髇 IP
listl_ether=Ethernet
listl_host=Nombre de m醧uina
listl_start=Fecha de Inicio
listl_end=Fecha de Fin
listl_return=lista de subred
listl_all=Lista todas los arrendamientos activos y expirados
listl_delete=Haz click en una direcci髇 IP de arrendamiento de la lista superior para borrarla

restart_errmsg1=Fall al reiniciar dhcpd
restart_errmsg2=Fall al enviar se馻l al proceso
start_failstart=Fall al iniciar dhcpd

sgroup_faildel=Fall al borrar grupo
sgroup_failsave=Fall al salvar grupo
sgroup_invassign=grupo asignado a una secci髇 incorrecta
sgroup_echanged=El contenido del archivo de configuraci髇 ha cambiado. Prueba otra vez.

shost_faildel=Fall al borrar m醧uina
shost_failsave=Fall al salvar m醧uina
shost_invalidhn=no es un nombre de m醧uina v醠ido
shost_invalidhwa='$1' no es una direcci髇 $2 v醠ida
shost_invalidaddr='$1' contiene un nombre de m醧uina o una direcci髇 IP inv醠idos
shost_invassign=m醧uina asignada a una secci髇 incorrecta

sopt_failsave=Fall al salvar opciones de cliente
sopt_invalidip=no es una direcci髇 IP v醠ida
sopt_invalidint=no es un entero
sopt_invalidipp=no es un par de direcciones IP v醠ido (como 1.2.3.4, 5.6.7.8)

sshared_faildel=Fall al borrar red compartida
sshared_failsave=Fall al salvar red compartida
sshared_invalidsname=Nombre de red compartida perdido o inv醠ido
sshared_nosubnet=La red compartida '$1' no contiene ninguna subred.

ssub_faildel=Fall al borrar subred
ssub_failsave=Fall al salvar subred
ssub_invalidsubaddr=no es una direcci髇 de subred v醠ida
ssub_invalidnmask=no es una m醩cara de red v醠ida
ssub_invalidipr=no es un rango v醠ido de direcciones IP
ssub_nosubnet=La red compartida '$1' no contiene ninguna subred.

plib_deflt=Tiempo de arrendamiento por defecto
plib_bfname=Nombre de archivo de Boot
plib_maxlt=M醲imo tiempo de arrendamiento
plib_bfserv=Servidor de archivo de Boot
plib_thisserv=Este servidor
plib_servname=Nombre de servidor
plib_llbc=Medida de arrendamiento para clientes BOOTP
plib_forever=Para siempre
plib_lebc=Fin de arrendamiento para clientes BOOTP
plib_never=Nunca
plib_invalidlt=no es un tiempo de arrendamiento v醠ido
plib_invalidsn=no es un nombre de servidor v醠ido
plib_invaliddom=$1 no es un nombre v醠ido de dominio
plib_leformat=Fecha de fin de arrendamiento debe de estar en formato W YYYY/MM/DD HH:MM:SS
plib_copt=Opciones de Cliente
plib_chname=Nombre de m醧uina cliente
plib_defrouters=Enrutadores por defecto
plib_snmask=M醩cara de subred
plib_babbr=Direcci髇 propagada (broadcast)
plib_domname=Nombre de dominio
plib_dnsserv=Servidores DNS
plib_timeserv=Servidores de hora
plib_logserv=Servidores de historial
plib_swapserv=Servidores de intercambio
plib_rdpath=Trayectoria de disco ra韟
plib_nisdom=Dominio de NIS
plib_nisserv=Servidores NIS
plib_fontserv=Servidores de tipos de letra
plib_xdmserv=Servidores XDM
plib_statrouters=Rutas est醫icas
plib_ntpserv=Servidores NTP
plib_nbns=Servidores de nombres NetBIOS
plib_nbscope=羗bito de NetBIOS
plib_nbntype=Tipo de nodo NetBIOS
plib_ddnsdom=Nombre de dominio de DNS din醡ico
plib_ddnsrevdom=Dominio inverso de DNS din醡ico
plib_ddnsup=緿NS din醡ico activado?
plib_ddnshost=Nombre de m醧uina de DNS din醡ico
plib_ddnshost_def=Del cliente

eopt_header=Opciones de Cliente
eopt_subtitle=Para subred $1
eopt_returnsub=lista de subred
eopt_returnshsub=red compartida
eopt_snettitle=Para red compartida $1
eopt_hosttitle=Para m醧uina $1
eopt_returnhost=lista de m醧uinas
eopt_returngroup=grupo de m醧uinas
eopt_grouptitle=Para el miembro de grupo $1
eopt_alltitle=Para todas las redes. m醧uinas y grupos
eopt_returnindex=韓dice
eopt_tabhdr=Opciones de Cliente
eopt_chost=Nombre de m醧uina cliente
eopt_defrouters=Enrutadores por defecto
eopt_smask=M醩cara de subred
eopt_baddr=Direcci髇 propagada (broadcast)
eopt_domname=Nombre de dominio
eopt_dnsserv=Servidores DNS
eopt_timeserv=Servidores de hora
eopt_logserv=Servidores de historial
eopt_swapserv=Servidores de intercambio
eopt_rdpath=Trayectoria de disco ra韟
eopt_nisdom=Dominio NIS
eopt_nisserv=Servidores NIS
eopt_fontserv=Servidores de tipos de letra
eopt_xdmserv=Servidores XDM
eopt_statrouters=Rutas est醫icas
eopt_ntpserv=Servidores NTP
eopt_nbns=Servidores de nombre de NetBIOS
eopt_nbs=羗bito de NetBIOS
eopt_nbntype=Tipo de nodo de NetBIOS
eopt_custom=Opci髇 de cliente
eopt_cnum=N鷐ero
eopt_cval=Valor

log_apply=Cambios aplicados
log_start=Servidor DHCP arrancado
log_create_subnet=Creada subred $1
log_delete_subnet=Borrada subred $1
log_modify_subnet=Modificada subred $1
log_options_subnet=Modificadas opciones para subred $1
log_create_shared=Creada red compartida $1
log_delete_shared=Borrada red compartida $1
log_modify_shared=Modificada red compartida $1
log_options_shared=Modificadas opciones para red compartida $1
log_create_host=Creada m醧uina $1
log_delete_host=Borrada m醧uina $1
log_modify_host=Modificada m醧uina $1
log_options_host=Modificadas opciones para m醧uina $1
log_create_group=Creado grupo de $1 m醧uinas
log_delete_group=Borrado grupo de $1 m醧uinas
log_modify_group=Modificado grupo de $1 m醧uinas
log_options_group=Modificadas opciones para grupo de $1 m醧uinas
log_delete_lease=Borrado arrendamiento para $1

pool_edit=Editar Paquete de Direcciones
pool_create=Creado Paquete de Direcciones
pool_header=Opciones de Paquete de direcciones
pool_allow=Clientes autorizados
pool_deny=Clientes denegados
pool_return=subred

cdel_header=Aviso
cdel_shared1=red compartida
cdel_shared2=red compartida
cdel_subnet1=subred
cdel_subnet2=subred
cdel_subnet=subred
cdel_subnets=subredes
cdel_group1=grupo
cdel_group2=grupo
cdel_group=grupo
cdel_groups=grupos
cdel_host=m醧uina
cdel_hosts=m醧uinas
cdel_txt=Borrando $1 '$2' tambi閚 se borrar su contenido:
cdel_confirm=縍e醠mente deseas borrar este $1?
cdel_eunknown=Error desconocido
cdel_return=lista de m醧uina y red

eacl_aviol=Violaci髇 de control de acceso
eacl_np=No tienes permisos para
eacl_pdh=borrar m醧uina
eacl_pih=a馻dir nuevas m醧uinas
eacl_puh=editar m醧uina
eacl_psh=seleccionar m醧uina
eacl_pdg=borrar grupo
eacl_pig=a馻dir nuevos grupos
eacl_pug=editar grupo
eacl_psg=seleccionar grupo
eacl_pds=borrar subred
eacl_pis=a馻dir nuevas subredes
eacl_pus=editar subred
eacl_pss=seleccionar subred
eacl_pdn=borrar red compartida
eacl_pin=a馻dir nuevas redes compartidas
eacl_pun=editar red compartida
eacl_psn=seleccionar red compartida
eacl_uniq=crear duplicados
eacl_pdl=borrar arrendamientos
eacl_psl=ver arrendamientos
eacl_pglob=editar opcione globales
eacl_papply=rearrancar este servicio

acl_apply=縋uede aplicar los cambios?
acl_r_leases=縋uede ver arrendamientos?
acl_w_leases=縋uede quitar arrendamientos?
acl_global=縋uede editar opciones globales?
acl_uniq_hst=縉ombres 鷑icos de m醧uina?
acl_uniq_sub=緿irecciones IP de subred 鷑icas?
acl_uniq_sha=縉ombres 鷑icos de red compartida?
acl_seclevel=Usar nivel de seguridad:
acl_hide=縊culto objetos inaccesibles?
acl_ahst=M醧uinas de acceso:
acl_agrp=Grupos de acceso:
acl_asub=Subredes de acceso:
acl_asha=Redes compartidas de acceso:
acl_per_hst_acls=緼ctivo ACLs por m醧uina?
acl_per_sub_acls=緼ctivo ACLs por subred?
acl_per_obj_acls=ACLs por objeto...
acl_na=no autorizado
acl_r1=s髄o lectura
acl_rw=lectura/escritura
acl_c=crear
acl_r=leer
acl_w=escribir
acl_err=Error salvando lista ACL
acl_ernow=Si deseas activar acceso de escritura en ACLs globales para alg鷑 tipo de objeto debes tambi閚 activar acceso de lectura para este tipo de objeto.
acl_normal=normal
acl_paranoic=paranoico
 070701000340c9000081a40000000000000002000000013ac038a2000017de000000200000000000000000000000000000001400000003reloc/dhcpd/lang/fr   index_title=Serveur DHCP
index_dhcpdnotfound=L'ex閏utable du serveur DHCP '$1' est introuvable sur votre syst鑝e.  Peut-阾re devriez-vous 閐iter la <a href="$2">configuration du module DHCP</a>.
index_return=index
index_dhcpdver=Le serveur DHCP '$1' ne semble pas 阾re d'une version correcte.  Webmin supporte seulement ISC version 2.
index_subtitle=Sous-r閟eaux et R閟eaux Partag閟
index_nosubdef=Aucun sous-r閟eaux ou r閟eaux partag ont 閠 d閒init
index_addsub=Ajouter un nouveau sous-r閟eau
index_addnet=Ajouter un nouveau r閟eau partag
index_nomemb=Aucun membre
index_1memb=1 membre
index_234memb=$1 membres
index_memb=$1 membres
index_hst=H魌es et Groupes d'H魌e
index_nohst=Aucun h魌e ou groupes ont 閠 d閒init
index_addhst=Ajouter un nouvel h魌e
index_addhstg=Ajouter un nouveau groupe
index_buttego=蒬iter les Options Globale
index_ego=蒬iter les options DHCP qui s'applique  tout sous-r閟eau, r閟eau partag, h魌e et groupe d'h魌e
index_buttlal=Lister les attributions active
index_lal=Lister les attributions desservies en ce moment par ce serveur DHCP pour l'assignement dynamique d'adresse IP
index_buttapply=Appliquer tout Changement
index_apply=Cliquer sur ce bouton appliquera la configuration courante au serveur DHCP qui est ex閏uter en ce moment en l'arr阾ant et le red閙arrant.
index_buttstart=D閙arrer le Serveur
index_start=Cliquer sur ce bouton pour d閙arrer le serveur DHCP en utilisant la configuration courante.

butt_save=Enregistrer
butt_eco=蒬it les Options du Client
butt_del=Supprimer
butt_create=Cr閑r

esub_crheader=Cr閑r un Sous-R閟eau
esub_edheader=蒬iter un Sous-R閟eau
esub_tabhdr=D閠ails du Sous-R閟eau
esub_naddr=Adresse du r閟eau
esub_nmask=Masque de sous-r閟eau
esub_arange=Plages d'adresse
esub_dbooptpq=BOOTP dynamique?
esub_shnet=R閟eau partag
esub_return=liste de sous-r閟eaux

esh_crheader=Cr閑r un R閟eau Partag
esh_eheader=蒬iter un R閟eau Partag
esh_tabhdr=D閠ails du R閟eau Partag
esh_netname=Nom du r閟eau
esh_return=liste des r閟eaux partag閟

ehost_crheader=Cr閑r un H魌e
ehost_eheader=蒬iter un H魌e
ehost_tabhdr=D閠ails de l'H魌e
ehost_hname=Nom de l'h魌e
ehost_fixedip=Adresse IP fixe
ehost_return=liste d'h魌e

egroup_crheader=Cr閑r un Groupe d'H魌e
egroup_eheader=蒬iter un Groupe d'H魌e
egroup_tblhdr=D閠ails du Groupe
egroup_hosts=H魌e dans ce groupe
egroup_nchoice=Utiliser le nom comme nom d'h魌e du client?
egroup_return=liste des groupes d'h魌e

yes=Oui
no=Non
default=D閒aut
secs=secondes
none=Aucun

listl_header=Attributions DHCP
listl_lfnotexist=Le fichier DHCPd d'attribution '$1' n'existe pas.
listl_lfnotcont=Le fichier DHCPd d'attribution ne contient a1ucun attribution$2.
listl_active= active
listl_ipaddr=Adresse IP
listl_ether=Ethernet
listl_host=Nom d'h魌e
listl_start=D閎ut du bail
listl_end=Fin du bail
listl_return=liste des attributions

restart_errmsg1=Impossible de red閙arrer le serveur DHCP
restart_errmsg2=Impossible d'envoyer le signal au processus
start_failstart=Impossible de d閙arrer DHCP

sgroup_faildel=Impossible de supprimer le groupe
sgroup_failsave=Impossible d'enregistrer le groupe

shost_faildel=Impossible de supprimer l'h魌e
shost_failsave=Impossible d'enregistrer l'h魌e
shost_invalidhn=n'est pas un nom d'h魌e valide
shost_invalidhwa=$1 n'est pas une adresse $2 valide

sopt_failsave=Impossible d'enregistrer les options du client
sopt_invalidip=n'est pas une adresse IP valide
sopt_invalidint=n'est pas un nombre entier
sopt_invalidipp=n'est pas une adresse IP paire (comme 1.2.3.4,1.2.4.9)

sshared_faildel=Impossible de supprimer le r閟eau partag
sshared_failsave=Impossible d'enregistrer le r閟eau partag
sshared_invalidsname=R閟eau partag manquant ou invalide

ssub_faildel=Impossible de supprimer le sous-r閟eau
ssub_failsave=Impossible d'enregistrer le sous-r閟eau
ssub_invalidsubaddr=n'est pas une adresse de sous-r閟eau valide
ssub_invalidnmask=n'est pas une adresse de sous-r閟eau
ssub_invalidipr=n'est pas une plage d'adresse IP

plib_deflt=Dur閑 d'attribution par d閒aut
plib_bfname=Fichier de d閙arrage
plib_maxlt=Temps maximum de l'attribution
plib_bfserv=Serveur de fichier de d閙arrage
plib_thisserv=Ce serveur
plib_servname=Nom du serveur
plib_llbc=Dur閑 de l'attribution des clients BOOTP
plib_forever=Infini
plib_lebc=Fin de l'attribution des clients BOOTP
plib_never=Jamais
plib_invalidlt=n'est pas un temps d'attribution valide
plib_invalidsn=n'est pas un nom de serveur valide
plib_leformat=La date de fin d'attribution doit 阾re dans le format W AAAA/MM/JJ HH:MM:SS
plib_copt=Options du Client
plib_chname=Nom d'h魌e du client
plib_defrouters=Routeurs par d閒aut
plib_snmask=Masque de sous-r閟eau
plib_babbr=Adresse de diffusion
plib_domname=Nom de domaine
plib_dnsserv=Serveurs de nom de domaine
plib_timeserv=Serveurs de temps
plib_logserv=Serveurs de journal
plib_swapserv=Serveur de m閙oire temporaire
plib_rdpath=Chemin du disque racine
plib_nisdom=Domaine NIS
plib_nisserv=Serveurs NIS
plib_fontserv=Serveurs de police
plib_xdmserv=Serveurs XDM
plib_statrouters=Routes statique
plib_ntpserv=Serveurs NTP
plib_nbns=Serveurs de nom NetBIOS
plib_nbscope=Envergure NetBIOS
plib_nbntype=Type de node NetBIOS

eopt_header=Options du Client
eopt_subtitle=Pour le sous-r閟eau $1
eopt_returnsub=liste de sous-r閟eaux
eopt_snettitle=Pour le r閟eau partag $1
eopt_hosttitle=Pour l'h魌e $1
eopt_returnhost=liste d'h魌es
eopt_grouptitle=Pour le membre $1 du groupe
eopt_alltitle=Pour tous r閟eaux, h魌es et groupes
eopt_returnindex=index
eopt_tabhdr=Options du Client
eopt_chost=Nom d'h魌e du client
eopt_defrouters=Routeurs par d閒aut
eopt_smask=Masque de sous-r閟eau
eopt_baddr=Adresse de diffusion
eopt_domname=Nom de domaine
eopt_dnsserv=Serveurs de nom de domaine
eopt_timeserv=Serveurs de temps
eopt_logserv=Serveurs de journal
eopt_swapserv=Serveur de m閙oire temporaire
eopt_rdpath=Chemin du disque racine
eopt_nisdom=Domaine NIS
eopt_nisserv=Serveurs NIS
eopt_fontserv=Serveurs de police
eopt_xdmserv=Serveurs XDM
eopt_statrouters=Routes statique
eopt_ntpserv=Serveurs NTP
eopt_nbns=Serveurs de nom NetBIOS
eopt_nbs=Envergure NetBIOS
eopt_nbntype=Type de node NetBIOS


  070701000340ca000081a40000000000000002000000013ac038a200002da2000000200000000000000000000000000000001400000003reloc/dhcpd/lang/pl   index_title=Serwer DHCP
index_dhcpdnotfound=Nie znaleziono w&nbsp;Twoim systemie serwera DHCP <i>$1</i>. Mo縧iwe, 縠 nie jest on zainstalowany lub Twoja <a href="$2">konfiguracja modu硊 DHCP</a> jest nieprawid硂wa.
index_return=indeksu
index_dhcpdver=Niew砤禼iwa wersja serwera DHCP <i>$1</i>. Webmin obs硊guje jedynie ISC DHCPD w&nbsp;wersji 2.
index_subtitle=Podsieci i&nbsp;sieci wsp蟪dzielone
index_nosubdef=Nie zdefiniowano podsieci ani sieci wsp蟪dzielonych.
index_addsub=Dodaj now podsie
index_addnet=Dodaj now sie wsp蟪dzielon
index_nomemb=Brak host體
index_1memb=1&nbsp;host
index_234memb=$1&nbsp;hosty
index_memb=$1&nbsp;host體
index_hst=Hosty i&nbsp;grupy host體
index_nohst=Nie zdefiniowano host體 ani grup host體.
index_hostgroup=Host/grupa
index_parent=Nale縴 do
index_hardware=Adres sprz阾owy
index_group=Grupa:
index_nameip=Nazwa lub IP hosta
index_net=Podsie
index_netmask=Maska sieci
index_addhst=Dodaj nowy host
index_addhstg=Dodaj now grup host體
index_buttego=Zmie opcje klienta
index_ego=Zmie opcje klienta DHCP, kt髍e dotycz wszystkich podsieci, sieci wsp蟪dzielonych, host體 i&nbsp;ich grup.
index_buttlal=Poka aktywne dzier縜wy
index_lal=Poka dzier縜wy obecnie udzielone przez ten serwer DHCP dla dynamicznie przypisanych adres體 IP.
index_buttapply=Zastosuj zmiany
index_apply=Naci秐ij ten przycisk, aby zastosowa bie勘c konfiguracj dla dzia砤j眂ego serwera DHCP poprzez zatrzymanie go i&nbsp;ponowne uruchomienie.
index_buttstart=Uruchom serwer
index_start=Naci秐ij ten przycisk, aby uruchomi serwer DHCP w&nbsp;twoim systemie z&nbsp;wykorzystaniem bie勘cej konfiguracji.
index_hdisplay=Wy秝ietla hosty i&nbsp;grupy wg:
index_horder0=Przynale縩o禼i
index_horder1=Struktury pliku
index_horder2=Nazwy
index_horder3=Adresu sprz阾owego
index_horder4=Adresu IP
index_togroup=grupy
index_tosubnet=podsieci
index_toshared=sieci
index_ndisplay=Wy秝ietla sieci i&nbsp;podsieci wg:
index_norder0=Przynale縩o禼i
index_norder1=Struktury pliku
index_norder2=Nazwy/adresu IP

butt_save=Zachowaj
butt_eco=Zmie opcje stacji klienckiej
butt_vco=Poka opcje stacji klienckiej
butt_del=Usu
butt_create=Utw髍z

esub_crheader=Utw髍z podsie
esub_edheader=Zmie podsie
esub_tabhdr=Dane podsieci
esub_naddr=Adres sieci
esub_nmask=Maska sieci
esub_arange=Zakresy adres體
esub_dbooptpq=Dynamiczny BOOTP ?
esub_shnet=Sie wsp蟪dzielona
esub_hosts=Hosty nale勘ce bezpo秗ednio do tej podsieci
esub_groups=Grupy nale勘ce bezpo秗ednio do tej podsieci
esub_pools=Obszary adresowe dla podsieci
esub_pool=Obszar $1
esub_poolnone=Nie zdefiniowano obszar體 adresowych
esub_pooladd=Dodaj obszar adresowy
esub_none=縜dna
esub_return=listy podsieci
esub_retshar=sieci wsp蟪dzielonej

esh_crheader=Utw髍z sie wsp蟪dzielon
esh_eheader=Zmie sie wsp蟪dzielon
esh_tabhdr=Dane sieci wsp蟪dzielonej
esh_netname=Nazwa sieci
esh_hosts=Hosty nale勘ce bezpo秗ednio do tej sieci wsp蟪dzielonej
esh_groups=Grupy nale勘ce bezpo秗ednio do tej sieci wsp蟪dzielonej
esh_subn=Podsieci nale勘ce do tej sieci wsp蟪dzielonej
esh_return=listy podsieci

ehost_crheader=Utw髍z host
ehost_eheader=Zmie host
ehost_tabhdr=Dane hosta
ehost_hname=Nazwa hosta
ehost_nojavascr=Twoja przegl眃arka nie obs硊guje javascriptu. Musisz teraz wybra w砤禼iw pozycj z poni縮zej listy.
ehost_assign=Host przypisany do
ehost_toplevel=najwy縮zego poziomu
ehost_inshared=sieci wsp蟪dzielonej
ehost_insubnet=podsieci
ehost_ingroup=grupy
ehost_hwaddr=Adres sprz阾owy
ehost_fixedip=Sta硑 adres IP
ehost_subnet=W&nbsp;podsieci $1/$2
ehost_shared=W&nbsp;sieci wsp蟪dzielonej $1
ehost_in=w
ehost_return=listy host體
ehost_retgroup=grupy host體
ehost_retsubn=podsieci
ehost_retshar=sieci wsp蟪dzielonej

egroup_crheader=Utw髍z grup host體
egroup_eheader=Zmie grup host體
egroup_tblhdr=Dane grupy
egroup_assign=Grupa przypisana do
egroup_hosts=Hosty w&nbsp;tej grupie
egroup_nchoice=U縴wa nazw host體 jako nazw stacji klienckich?
egroup_return=listy host體
egroup_retsubn=podsieci
egroup_retshar=sieci wsp蟪dzielonej

default=Domy秎ne
secs=sek.
none=Brak

listl_header=Dzier縜wy DHCP
listl_lfnotexist=Plik dzier縜w DHCPd <tt>$1</tt> nie istnieje.
listl_lfnotcont=Plik dzier縜w DHCPd <tt>$1</tt> nie zawiera 縜dnych $2 dzier縜w.
listl_active=aktywmych
listl_ipaddr=Adres IP
listl_ether=Ethernetowy
listl_host=Nazwa hosta
listl_start=Data rozpocz阠ia
listl_end=Data zako馽zenia
listl_return=listy podsieci i host體
listl_all=Poka wszystkie dzier縜wy aktywne i przeterminowane
listl_delete=Naci秐ij na wydzier縜wiony adres IP z&nbsp;powy縮zej listy aby dzier縜w skasowa.

restart_errmsg1=Nie uda硂 si ponownie uruchomi dhcpd
restart_errmsg2=Nie uda硂 si wys砤 sygna硊 do procesu
start_failstart=Nie uda硂 si uruchomi dhcpd

sgroup_faildel=Nie uda硂 si usun辨 grupy
sgroup_failsave=Nie uda硂 si zachowa grupy
sgroup_invassign=grupa przypisana do niew砤禼iwej sekcji
sgroup_echanged=Plik konfiguracyjny zosta zmodyfikowany. Spr骲uj ponownie.

shost_faildel=Nie uda硂 si usun辨 hosta
shost_failsave=Nie uda硂 si zachowa hosta
shost_invalidhn=nie jest poprawn nazw hosta
shost_invalidhwa='$1' nie jest poprawnym adresem $2
shost_invalidaddr='$1' zawiera nieprawid硂w nazw hosta lub b酬dny adres IP
shost_invassign=host przypisany do niew砤禼iwej sekcji

sopt_failsave=Nie uda硂 si zachowa opcji stacji klienckiej
sopt_invalidip=nie jest poprawnym adresem IP
sopt_invalidint=nie jest liczb ca砶owit
sopt_invalidipp=nie jest poprawn par adres體 IP (jak 1.2.3.4,5.6.7.8)

sshared_faildel=Nie uda硂 si usun辨 sieci wsp蟪dzielonej
sshared_failsave=Nie uda硂 si zachowa sieci wsp蟪dzielonej
sshared_invalidsname=Nie podano lub niepoprawna nazwa sieci wsp蟪dzielonej.
sshared_nosubnet=Sie wsp蟪dzielona '$1' nie zawiera 縜dnej podsieci.

ssub_faildel=Nie uda硂 si usun辨 podsieci
ssub_failsave=Nie uda硂 si zachowa podsieci
ssub_invalidsubaddr=nie jest poprawnym adresem podsieci
ssub_invalidnmask=nie jest poprawn mask sieci
ssub_invalidipr=nie jest poprawnym zakresem adres體 IP
ssub_nosubnet=Sie wsp蟪dzielona '$1' nie zawiera 縜dnej podsieci.

plib_deflt=Domy秎ny czas dzier縜wy
plib_bfname=Nazwa pliku BOOTa
plib_maxlt=Maksymalny czas dzier縜wy
plib_bfserv=Nazwa serwera BOOTa
plib_thisserv=Ten serwer
plib_servname=Nazwa serwera
plib_llbc=Czas dzier縜wy dla klient體 BOOTP
plib_forever=Na zawsze
plib_lebc=Koniec dzier縜wy dla klient體 BOOTP
plib_never=Nigdy
plib_invalidlt=nie jest poprawnym czasem dzier縜wy
plib_invalidsn=nie jest poprawn nazw serwera
plib_invaliddom=$1 nie jest poprawn nazw domeny
plib_leformat=Data/czas wyga秐i阠ia dzier縜wy musi mie posta W YYYY/MM/DD HH:MM:SS
plib_copt=Opcje stacji klienckiej
plib_chname=Nazwa hosta klienta
plib_defrouters=Domy秎na bramka
plib_snmask=Maska podsieci
plib_babbr=Adres rozg硂szeniowy
plib_domname=Nazwa domeny
plib_dnsserv=Serwery DNS
plib_timeserv=Serwery czasu
plib_logserv=Serwery logowania
plib_swapserv=Serwer wymiany
plib_rdpath=ie縦a do dysku "root"
plib_nisdom=Domena NIS
plib_nisserv=Serwery NIS
plib_fontserv=Serwery czcionek
plib_xdmserv=Serwery XDM
plib_statrouters=Statyczny routing
plib_ntpserv=Serwery NTP
plib_nbns=Serwery nazw NetBIOS
plib_nbscope=Zasi阦 NetBIOS-u
plib_nbntype=Typ w陑砤 NetBIOS-u
plib_ddnsdom=Nazwa domeny dynamicznego DNS-u
plib_ddnsrevdom=Domena odwrotna dynamicznego DNS-u
plib_ddnsup=W潮czony dynamiczny DNS?
plib_ddnshost=Nazwa hosta w&nbsp;dynamicznym DNS-ie
plib_ddnshost_def=Od klienta

eopt_header=Opcje stacji klienckiej
eopt_subtitle=Dla podsieci $1
eopt_returnsub=podsieci
eopt_returnshsub=sieci wsp蟪dzielonej
eopt_snettitle=Dla sieci wsp蟪dzielonej $1
eopt_hosttitle=Dla hosta $1
eopt_returnhost=hosta
eopt_returngroup=grupy host體
eopt_grouptitle=Dla hosta w&nbsp;grupie $1
eopt_alltitle=Dla wszystkich podsieci, host體 i&nbsp;grup
eopt_returnindex=listy podsieci i host體
eopt_tabhdr=Opcje stacji klienckiej
eopt_chost=Nazwa hosta stacji klienckiej
eopt_defrouters=Domy秎ne bramki
eopt_smask=Maska podsieci
eopt_baddr=Adres rozg硂szeniowy
eopt_domname=Nazwa domeny
eopt_dnsserv=Serwery DNS
eopt_timeserv=Serwery czasu
eopt_logserv=Serwery logowania
eopt_swapserv=Serwer wymiany
eopt_rdpath=ie縦a do dysku "root"
eopt_nisdom=Domena NIS
eopt_nisserv=Serwery NIS
eopt_fontserv=Serwery czcionek
eopt_xdmserv=Serwery XDM
eopt_statrouters=Statyczny routing
eopt_ntpserv=Serwey NTP
eopt_nbns=Serwery nazw NetBIOS
eopt_nbs=Zasi阦 NetBIOS-u
eopt_nbntype=Typ w陑砤 NetBIOS-u
eopt_custom=Opcje dodatkowe
eopt_cnum=Numer
eopt_cval=Warto舵

log_apply=Zastosowano zmiany
log_start=Uruchomiono serwer DHCP
log_create_subnet=Utworzono podsie $1
log_delete_subnet=Usuni阾o podsie $1
log_modify_subnet=Zmieniono podsie $1
log_options_subnet=Zmieniono opcje dla podsieci $1
log_create_shared=Utworzono sie wsp蟪dzielon $1
log_delete_shared=Usuni阾o sie wsp蟪dzielon $1
log_modify_shared=Zmieniono sie wsp蟪dzielon $1
log_options_shared=Zmieniono opcje dla sieci wsp蟪dzielonej $1
log_create_host=Utworzono host $1
log_delete_host=Usuni阾o host $1
log_modify_host=Zmieniono host $1
log_options_host=Zmieniono opcje dla hosta $1
log_create_group=Utworzono grup $1 host體
log_delete_group=Usuni阾o grup $1 host體
log_modify_group=Zmieniono grup $1 host體
log_options_group=Zmieniono opcje dla grupy $1 host體
log_delete_lease=Skasowano dzier縜w dla $1

pool_edit=Zmie obszar adresowy
pool_create=Utworzono obszar adresowy
pool_header=Opcje obszaru adresowego
pool_allow=Dozwoleni klienci
pool_deny=Zabronieni klienci
pool_return=podsieci

cdel_header=Ostrze縠nie
cdel_shared1=sieci wsp蟪dzielonej
cdel_shared2=sie wsp蟪dzielon
cdel_subnet1=podsieci
cdel_subnet2=podsie
cdel_subnet=podsie
cdel_subnets=podsieci
cdel_group1=grupy
cdel_group2=grup
cdel_group=grupa
cdel_groups=grupy
cdel_host=host
cdel_hosts=hosty
cdel_txt=Usuni阠ie $1 '$2' spowoduje usuni阠ie r體nie jej zawarto禼i:
cdel_confirm=Czy na pewno chcesz usun辨 t $1&nbsp;?
cdel_eunknown=Nieokre秎ony b潮d
cdel_return=listy host體 i podsieci

eacl_aviol=Naruszenie kontroli dost阷u
eacl_np=Nie masz uprawnie do
eacl_pdh=usuni阠ia hosta
eacl_pih=dodawania nowych host體
eacl_puh=modyfikacji hosta
eacl_psh=wybrania hosta
eacl_pdg=usuni阠ia grupy
eacl_pig=dodawania nowych grup
eacl_pug=modyfikacji grupy
eacl_psg=wybrania grupy
eacl_pds=usuni阠ia podsieci
eacl_pis=dodawania nowych podsieci
eacl_pus=modyfikacji podsieci
eacl_pss=wybrania podsieci
eacl_pdn=usuni阠ia sieci wsp蟪dzielonej
eacl_pin=dodawania nowych sieci wsp蟪dzielonych
eacl_pun=modyfikacji sieci wsp蟪dzielonej
eacl_psn=wybrania sieci wsp蟪dzielonej
eacl_uniq=tworzenia duplikat體
eacl_pdl=kasowania dzier縜w
eacl_psl=przegl眃ania dzier縜w
eacl_pglob=zmiany opcji og髄nych
eacl_papply=restartu tej us硊gi

acl_apply=Mo縠 zastosowa zmiany?
acl_r_leases=Mo縠 przegl眃a dzier縜wy?
acl_w_leases=Mo縠 kasowa dzier縜wy?
acl_global=Mo縠 zmienia opcje og髄ne?
acl_uniq_hst=Unikalne nazwy host體?
acl_uniq_sub=Unikalne adresy IP podsieci?
acl_uniq_sha=Unikalne nazwy sieci wsp蟪dzielonych?
acl_seclevel=Zastosowa poziom bezpiecze駍twa:
acl_hide=Ukrywa niedost阷ne obiekty?
acl_ahst=Dost阷 do host體:
acl_agrp=Dost阷 do grup:
acl_asub=Dost阷 do podsieci:
acl_asha=Dost阷 do do sieci wsp蟪dzielonych:
acl_per_hst_acls=W潮czy ACL-e dla poszczeg髄nych host體?
acl_per_sub_acls=W潮czy ACL-e dla poszczeg髄nych podsieci?
acl_per_obj_acls=ACL-e dla poszczeg髄nych obiekt體...
acl_na=brak dost阷u
acl_r1=odczyt
acl_rw=odczyt/zapis
acl_c=tworzenie
acl_r=odczyt
acl_w=zapis
acl_err=B潮d podczas zachowywania listy ACL-i
acl_ernow=Je秎i chcesz w&nbsp;globalnych ACL-ach umo縧iwi dost阷 do pewnego rodzaju obiekt體 z&nbsp;prawem zapisu, to musisz r體nie nada prawo do odczytu dla tego rodzaju obiekt體.
acl_normal=zwyk硑
acl_paranoic=paranoiczny
  070701000340cb000081a40000000000000002000000013ac038a200001775000000200000000000000000000000000000001400000003reloc/dhcpd/lang/pt   index_title=Servidor DHCP
index_dhcpdnotfound=O servidor DHCP <i>$1</i> n鉶 foi encontrado no seu sistema. Poder n鉶 estar instalado, ou a <a href="$2">configura玢o do m骴ulo DHCP</a> est incorrecta.
index_return=韓dex
index_dhcpdver=O servidor DHCP <i>$1</i> n鉶 aparenta ser a vers鉶 correcta. O Webmin apenas suporta a vers鉶 2 do ISC DHCPD.
index_subtitle=Sub-redes e Redes Partilhadas
index_nosubdef=N鉶 foram definidas sub-redes ou redes partilhadas.
index_addsub=Adicionar nova sub-rede
index_addnet=Adicionar nova rede partilhada
index_nomemb=Sem membros
index_1memb=Membro 1
index_234memb=$1 membros
index_memb=$1 membros
index_hst=Anfitri鮡s e Grupos de Anfitri鉶
index_nohst=N鉶 foram definidos anfitri鮡s ou grupos.
index_addhst=Adicionar novo anfitri鉶
index_addhstg=Adicionar novo grupo de anfitri鉶
index_buttego=Editar Op珲es Gerais
index_ego=Editar op珲es de DHCP que se apliquem a todas as sub-redes, redes partilhadas, anfitri鮡s e grupos
index_buttlal=Listar Concess鮡s Activas
index_lal=Listar concess鮡s correntes deste servidor DHCP para atribuir endere鏾s IP din鈓icamente.
index_buttapply=Aplicar Altera珲es
index_apply=Clique neste bot鉶 para aplicar a configura玢o actual ao servidor DHCP em execu玢o atrav閟 da sua paragem e reiniciar.
index_buttstart=Iniciar Servidor
index_start=Clique neste bot鉶 para iniciar o servidor DHCP no seu sistema, usando a configura玢o actual.

butt_save=Guardar
butt_eco=Editar Op珲es de Cliente
butt_del=Apagar
butt_create=Criar

esub_crheader=Criar Sub-rede
esub_edheader=Editar Sub-rede
esub_tabhdr=Detalhes da Sub-rede
esub_naddr=Endere鏾 da rede
esub_nmask=M醩cara de rede
esub_arange=Alcance dos endere鏾s
esub_dbooptpq=BOOTP din鈓ico ?
esub_shnet=Rede partilhada
esub_return=lista de sub-redes

esh_crheader=Criar Rede Partilhada
esh_eheader=Editar Rede Partilhada
esh_tabhdr=Detalhes da Rede Partilhada
esh_netname=Nome da rede
esh_return=lista de sub-redes

ehost_crheader=Criar Anfitri鉶
ehost_eheader=Editar Anfitri鉶
ehost_tabhdr=Detalhes do Anfitri鉶
ehost_hname=Nome do anfitri鉶
ehost_fixedip=Endere鏾 IP fixo
ehost_return=lista de anfitri鮡s

egroup_crheader=Criar Grupo de Anfitri鮡s
egroup_eheader=Editar Grupo de Anfitri鮡s
egroup_tblhdr=Detalhes do Grupo
egroup_hosts=Anfitri鮡s neste grupo
egroup_nchoice=Use name as client hostname? Usar o nome como anfitri鉶 do cliente?
egroup_return=lista de anfitri鮡s

yes=Sim
no=N鉶
default=Predefinido
secs=segundos
none=Nenhum

listl_header=Concess鮡s DHCP
listl_lfnotexist=O ficheiro da concess鉶 DHCPd <tt>$1</tt> n鉶 existe.
listl_lfnotcont=O ficheiro da concess鉶 DHCPd <tt>$1</tt> n鉶 cont閙 nehuma concess鉶$2.
listl_active= activa
listl_ipaddr=Endere鏾 IP
listl_ether=Ethernet
listl_host=Nome do Anfitri鉶
listl_start=Come鏰r Data
listl_end=Terminar Data
listl_return=lista de sub-redes

restart_errmsg1=Erro ao reiniciar o servidor dhcpd
restart_errmsg2=Erro ao sinalizar processo
start_failstart=Erro ao iniciar o servidor dhcpd

sgroup_faildel=Erro ao apagar grupo
sgroup_failsave=Erro ao guardar grupo

shost_faildel=Erro ao apagar anfitri鉶
shost_failsave=Erro ao guardar anfitri鉶
shost_invalidhn=n鉶  um nome de anfitri鉶 v醠ido
shost_invalidhwa='$1' n鉶  um endere鏾 v醠ido $2

sopt_failsave=Erro ao guardar op珲es de cliente
sopt_invalidip=n鉶  um endere鏾 IP v醠ido
sopt_invalidint=n鉶  um n鷐ero inteiro
sopt_invalidipp=n鉶  um par de endere鏾 IP v醠ido (como 1.2.3.4,5.6.7.8)

sshared_faildel=Erro ao apagar rede partilhada
sshared_failsave=Erro ao guardar rede partilhada
sshared_invalidsname=Nome de rede partilhada inv醠ido ou em falta

ssub_faildel=Erro ao apagar sub-rede
ssub_failsave=Erro ao guardar sub-rede
ssub_invalidsubaddr=n鉶  um endere鏾 de sub-rede v醠ido
ssub_invalidnmask=n鉶  uma m醩cara de rede v醠ida
ssub_invalidipr=n鉶  um alcance de endere鏾 IP v醠ido

plib_deflt=Tempo de concess鉶 predefinido
plib_bfname=Carregar nome de ficheiro
plib_maxlt=Tempo m醲imo de concess鉶
plib_bfserv=Carregar servidor de ficheiros
plib_thisserv=Este servidor
plib_servname=Nome do servidor
plib_llbc=Tempo de concess鉶 para clientes BOOTP
plib_forever=Para sempre
plib_lebc=Final da concess鉶 para clientes BOOTP
plib_never=Nunca
plib_invalidlt=n鉶  um tempo v醠ido de concess鉶
plib_invalidsn=n鉶  um nome de servidor v醠ido
plib_leformat=A data final da concess鉶 necessita estar no formato W YYYY/MM/DD HH:MM:SS
plib_copt=Op珲es de Cliente
plib_chname=Nome do anfitri鉶 do cliente
plib_defrouters=Reencaminhadores predefinidos
plib_snmask=M醕ara de sub-rede
plib_babbr=Endere鏾 de emiss鉶
plib_domname=Nome do dom韓io
plib_dnsserv=Servidores DNS
plib_timeserv=Servidores de tempo
plib_logserv=Servidores de historial
plib_swapserv=Servidor Swap
plib_rdpath=Caminho do disco ra韟
plib_nisdom=Dom韓io NIS
plib_nisserv=Servidores NIS
plib_fontserv=Servidores de fontes
plib_xdmserv=Servidores XDM
plib_statrouters=Caminhos est醫icos
plib_ntpserv=Servidores NTP
plib_nbns=Servidores de nome NetBIOS
plib_nbscope=Alcance do NetBIOS
plib_nbntype=Tipo de nodo do NetBIOS

eopt_header=Op珲es de Cliente
eopt_subtitle=Para a sub-rede $1
eopt_returnsub=lista de sub-redes
eopt_snettitle=Paa a rede partilhada $1
eopt_hosttitle=Para o anfitri鉶 $1
eopt_returnhost=lista de anfitri鮡s
eopt_grouptitle=Para o grupo de membros $1
eopt_alltitle=Para todas as redes, anfitri鮡s e grupos
eopt_returnindex=韓dex
eopt_tabhdr=Op珲es de Cliente
eopt_chost=Nome do anfitri鉶 do cliente
eopt_defrouters=Reencaminhadores predefinidos
eopt_smask=M醕ara de sub-rede
eopt_baddr=Endere鏾 de emiss鉶
eopt_domname=Nome do dom韓io
eopt_dnsserv=Servidores DNS
eopt_timeserv=Servidores de tempo
eopt_logserv=Servidores de historial
eopt_swapserv=Servidor swap
eopt_rdpath=Caminho do disco ra韟
eopt_nisdom=Dom韓io NIS
eopt_nisserv=Servidores NIS
eopt_fontserv=Servidores de fontes
eopt_xdmserv=Servidores XDM
eopt_statrouters=Caminhos est醫icos
eopt_ntpserv=Servidores NTP
eopt_nbns=Servidores de nome NetBIOS
eopt_nbs=Alcance do NetBIOS
eopt_nbntype=Tipo de nodo do NetBIOS
   0707010003410c000081a40000000000000002000000013ac038a200001620000000200000000000000000000000000000001700000003reloc/dhcpd/lang/ru_RU    index_addsub=念徉忤螯 眍怏 镱漶弪
esub_crheader=杨玟囗桢 项漶弪
sopt_invalidipp=礤 怆弪 漕矬耱桁铋 镟痤 IP 噤疱耦 (蜩镟 1.2.3.4,5.6.7.8)
plib_forever=袜怦邈溧
eopt_nisserv=NIS 皴疴屦
plib_servname=褥 皴疴屦
yes=泥
sshared_failsave=硒栳赅 镳 耦躔囗屙梃 疣玟咫屐铋 皴蜩
ehost_eheader=绣溧牝桊钼囗桢 疹耱
eopt_swapserv=Swap 皴疴屦
eopt_alltitle=碾 怦艴 皴蝈, 躅耱钼  沭箫
eopt_logserv=Log 皴疴屦
plib_fontserv=Font 皴疴屦
esh_eheader=绣溧牝桊钼囗桢 朽玟咫屐铋 彦蜩
none=湾
esub_arange=蔫囡噻铐 噤疱耦
butt_del=愉嚯栩
butt_eco=绣溧牝桊钼囹 相疣戾蝠 孰桢眚
index_nomemb=湾 麟屙钼
plib_copt=相疣戾蝠 孰桢眚
eopt_subtitle=碾 镱漶弪 $1
eopt_timeserv=Time 皴疴屦
eopt_tabhdr=相疣戾蝠 孰桢眚
esub_shnet=朽玟咫屐 皴螯
egroup_tblhdr=相疣戾蝠 灭箫稃
index_subtitle=项漶弪  朽玟咫屐 彦蜩
listl_return=耧桉铌 镱漶弪彘
index_addnet=念徉忤螯 眍怏 疣玟咫屐簋 皴螯
index_ego=绣溧牝桊钼囗桢 镟疣戾蝠钼 DHCP, 觐蝾瘥 铗眍蝰 觐 怦屐 镱漶弪, 疣玟咫屐 皴, 躅耱囔  沭箫镟
listl_lfnotexist=脏殡 DHCPd 囵屙 <tt>$1</tt> 礤 耋耱怏弪.
esub_naddr=彦蝈忸 噤疱
eopt_defrouters=锑瘌痼蜩玎蝾瘥 镱 箪铍鬣龛
plib_babbr=罔痤觐忮. 噤疱
restart_errmsg1=硒栳赅 镳 疱耱囵蝈 dhcpd
index_start=袜骒栩 磬  觏铒牦 潆 耱囵蜞 DHCP 皴疴屦 桉镱朦珞 蝈牦 觐眙桡箴圉棹.
restart_errmsg2=硒栳赅 镳 铗覃腙 耔沩嚯 镳铞羼耋
ehost_hname=褥 躅耱
plib_chname=褥 躅耱 觌桢眚
eopt_fontserv=Font 皴疴屦
index_addhst=念徉忤螯 眍恹 躅耱
egroup_return=耧桉铌 躅耱钼
ssub_invalidnmask=礤 怆弪 漕矬耱桁铋 皴蝈忸 爨耜铋
esh_crheader=杨玟囗桢 朽玟咫屐铋 彦蜩
plib_dnsserv=DNS 皴疴屦
eopt_returnindex=汶噔眍 戾睨
sgroup_faildel=硒栳赅 镳 箐嚯屙梃 沭箫稃
plib_nbns=NetBIOS 皴疴屦 桁屙
index_title=彦疴屦 DHCP
index_1memb=1 麟屙
ehost_fixedip=澡犟桊钼囗睇 IP 噤疱
plib_maxlt=锑犟桁嚯铄 怵屐 囵邃
butt_save=杨躔囗栩
ssub_invalidipr=礤 怆弪 漕矬耱桁 滂囡噻铐铎 IP 噤疱耦
plib_nbscope=NetBIOS 狃囿珏
listl_header=鲤屙潲 DHCP
index_apply=袜骒栩 磬  觏铒牦 潆 嚓蜩忤玎鲨 皲咫囗 桤戾礤龛, 矬蝈 镥疱玎矬耜 DHCP 皴疴屦.
ehost_crheader=杨玟囗桢 疹耱
plib_llbc=橡钿铍骅蝈朦眍耱 囵屙潲 潆 BOOTP 觌桢眚钼
eopt_nbns=NetBIOS 皴疴屦 桁屙
esub_dbooptpq=蔫磬扈麇耜栝 BOOTP ?
index_return=汶噔眍 戾睨
eopt_xdmserv=XDM 皴疴屦
eopt_ntpserv=NTP 皴疴屦
sgroup_failsave=硒栳赅 镳 耦躔囗屙梃 沭箫稃
plib_nisserv=NIS 皴疴屦
listl_lfnotcont=脏殡 DHCPd 囵屙 <tt>$1</tt> 礤 耦溴疰栩 $2 囵屙.
plib_deflt=吗屐 囵邃 镱 箪铍鬣龛
eopt_domname=褥 漕戾磬
index_memb=$1 麟屙钼
plib_logserv=Log 皴疴屦
plib_invalidlt=礤 怆弪 漕矬耱桁 怵屐屙屐 囵屙潲
index_lal=项赅琨忄弪 耧桉铌 囵屙 DHCP 皴疴屦 潆 滂磬扈麇耜 镳桉忸屙睇 IP 噤疱耦.
eopt_snettitle=碾 疣玟咫屐铋 皴蜩 $1
eopt_header=相疣戾蝠 孰桢眚
plib_never=丸觐沅
shost_invalidhwa='$1' 礤 怆弪 漕矬耱桁 $2 噤疱耦
plib_leformat=泥蜞 铌铐鬣龛 囵屙潲 漕腈磬 猁螯  纛痨囹 W YYYY/MM/DD HH:MM:SS
index_buttstart=羊囵蝾忄螯 彦疴屦
esh_netname=褥 皴蜩
index_dhcpdnotfound=彦疴屦 DHCP <i>$1</i> 礤 磬殇屙 磬 忄 耔耱屐. 骂珈铈眍 铐 礤 桧耱嚯腓痤忄, 桦 <a href="$2">觐眙桡箴圉 祛潴 DHCP</a> 礤觐痧尻蝽.
plib_rdpath=象螯  觐痦邂铎 滂耜
index_dhcpdver=项躅驽, 黩 皴疴屦 DHCP <i>$1</i> 桁邋 礤觐痧尻蝽簋 忮瘃棹. Webmin 镱滗屦骅忄弪 蝾朦觐 ISC DHCPD 忮瘃梃 2.
index_buttego=绣溧牝桊钼囹 秒钺嚯 相疣戾蝠
listl_start=泥蜞 羊囵蜞
eopt_smask=锑耜 镱漶弪
eopt_hosttitle=碾 躅耱 $1
eopt_statrouters=羊囹梓羼觇 爨瘌痼螓
index_234memb=$1 麟屙
eopt_nbntype=NetBIOS 蜩 箸豚
eopt_nbs=NetBIOS 狃囿珏
shost_failsave=硒栳赅 镳 耦躔囗屙梃 躅耱
esub_tabhdr=相疣戾蝠 项漶弪
index_nohst=湾 铒疱溴脲睇 龛 躅耱, 龛 沭箫稃.
eopt_grouptitle=碾 沭箫稃 麟屙钼 $1
ssub_invalidsubaddr=礤 怆弪 漕矬耱桁 噤疱耦 镱漶弪
secs=皴.
plib_snmask=锑耜 镱漶弪
eopt_rdpath=象螯  觐痦邂铎 滂耜
index_buttapply=橡桧螯 如戾礤龛
listl_active=嚓蜩忭
listl_host=褥 躅耱
esub_nmask=锑耜 皴蜩
sshared_faildel=硒栳赅 镳 箐嚯屙梃 疣玟咫屐铋 皴蜩
no=湾
eopt_returnsub=耧桉铌 镱漶弪彘
egroup_hosts=疹耱  溧眄铋 沭箫镥
sshared_invalidsname=域屦眍 桦 礤忮痦 桁 疣玟咫屐铋 皴蜩
plib_invalidsn=礤 怆弪 漕矬耱桁 桁屙屐 皴疴屦
ehost_tabhdr=相疣戾蝠 疹耱
shost_invalidhn=礤 怆弪 漕矬耱桁 桁屙屐 躅耱
egroup_crheader=杨玟囗桢 灭箫稃 疹耱钼
start_failstart=硒栳赅 镳 耱囵蝈 dhcpd
plib_bfserv=彦疴屦  玎沭箸铟睇 羿殡铎
plib_xdmserv=XDM 皴疴屦
butt_create=杨玟囹
plib_ntpserv=NTP 皴疴屦
listl_end=泥蜞 侮铐鬣龛
sopt_invalidip=礤 怆弪 漕矬耱桁 IP 噤疱耦
esub_return=耧桉铌 镱漶弪彘
default=项 箪铍鬣龛
index_hst=疹耱  灭箫稃 疹耱钼
plib_domname=褥 漕戾磬
index_buttlal=扬桉铌 狸蜩忭 鲤屙
esh_tabhdr=相疣戾蝠 朽玟咫屐铋 彦蜩
plib_statrouters=羊囹梓羼觇 爨瘌痼螓
listl_ether=Ethernet
esub_edheader=绣溧牝桊钼囗桢 项漶弪
ssub_failsave=硒栳赅 镳 耦躔囗屙梃 镱漶弪
egroup_nchoice=锐镱朦珙忄螯 桁, 赅 桁 躅耱 觌桢眚?
ssub_faildel=硒栳赅 镳 箐嚯屙梃 镱漶弪
plib_bfname=褥 玎沭箸铟眍泐 羿殡
plib_nisdom=NIS 漕戾
index_addhstg=念徉忤螯 眍怏 沭箫矬 躅耱钼
listl_ipaddr=IP 冷疱
ehost_return=耧桉铌 躅耱钼
index_nosubdef=湾 铒疱溴脲睇 龛 镱漶弪, 龛 疣玟咫屐 皴蜩.
plib_lebc=侮铐鬣龛 囵屙潲 潆 BOOTP 觌桢眚钼
plib_swapserv=Swap 皴疴屦
eopt_returnhost=耧桉铌 躅耱钼
eopt_dnsserv=DNS 皴疴屦
plib_thisserv=泥眄 皴疴屦
eopt_nisdom=NIS 漕戾
plib_nbntype=NetBIOS 蜩 箸豚
sopt_failsave=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼 觌桢眚
sopt_invalidint=礤 怆弪 鲥臌 麒耠铎
eopt_chost=褥 躅耱 孰桢眚
egroup_eheader=绣溧牝桊钼囗桢 灭箫稃 疹耱钼
esh_return=耧桉铌 镱漶弪彘
shost_faildel=硒栳赅 镳 箐嚯屙梃 躅耱
plib_defrouters=锑瘌痼蜩玎蝾瘥 镱 箪铍鬣龛
eopt_baddr=罔痤觐忮蝈朦睇 噤疱
plib_timeserv=Time 皴疴屦
0707010003410d000081a40000000000000002000000013ac038a200001630000000200000000000000000000000000000001700000003reloc/dhcpd/lang/ru_SU    index_title=笈易乓 DHCP
index_dhcpdnotfound=笈易乓 DHCP <i>$1</i> 闻 瘟誓盼 瘟 琢叟 由釉磐. 飨谕现蜗 衔 闻 晌釉撂躺蚁琢, 商 <a href="$2">讼纹汕找撩裳 拖恼萄 DHCP</a> 闻讼乙潘晕.
index_return=翘磷蜗 团卫
index_dhcpdver=鹣认峙, 拊 优易乓 DHCP <i>$1</i> 赏排 闻讼乙潘晕绽 着矣衫. Webmin 邢哪乓稚琢旁 韵特讼 ISC DHCPD 着矣缮 2.
index_subtitle=鹣挠旁  蛄谀盘雅唾 笈陨
index_nosubdef=钆 闲遗呐膛钨 紊 邢挠旁, 紊 伊谀盘雅唾 优陨.
index_addsub=湎铝咨载 蜗渍 邢挠旁
index_addnet=湎铝咨载 蜗渍 伊谀盘雅驼 优载
index_nomemb=钆 尢盼献
index_1memb=1 尢盼
index_234memb=$1 尢盼
index_memb=$1 尢盼献
index_hst=柘釉  缫招匈 柘釉献
index_nohst=钆 闲遗呐膛钨 紊 认釉, 紊 且招匈.
index_addhst=湎铝咨载 蜗踪 认釉
index_addhstg=湎铝咨载 蜗渍 且招姓 认釉献
index_buttego=蚺牧嗽梢献猎 缣下撂匚倥 鹆伊团砸
index_ego=蚺牧嗽梢献廖膳 辛伊团砸献 DHCP, 讼韵屹 显蜗友杂 讼 子磐 邢挠旁淹, 伊谀盘雅唾 优匝, 认釉镣  且招辛
index_buttlal=笮捎纤 崴陨孜偃 嵋盼
index_lal=鹣肆谫琢旁 有捎纤 烈盼 DHCP 优易乓 奶 纳瘟蜕夼铀 幸捎紫盼钨 IP 聊遗酉.
index_buttapply=鹨晌言 橼团闻紊
index_apply=盍滞稍 瘟 茉 宋闲苏 奶 了陨咨诹蒙 幽盘廖偃 哨团闻紊, 姓耘 信遗诹姓铀 DHCP 优易乓.
index_buttstart=笤烈韵琢载 笈易乓
index_start=盍滞稍 瘟 茉 宋闲苏 奶 釉烈粤 DHCP 优易乓 捎邢特谡 耘苏菡 讼纹汕找撩衫.

butt_save=笙纫廖稍
butt_eco=蚺牧嗽梢献猎 鹆伊团砸 胩膳卧
butt_del=跄撂稍
butt_create=笙谀猎

esub_crheader=笙谀廖膳 鹣挠旁
esub_edheader=蚺牧嗽梢献廖膳 鹣挠旁
esub_tabhdr=鹆伊团砸 鹣挠旁
esub_naddr=笈耘紫 聊遗
esub_nmask=砹铀 优陨
esub_arange=渖列邻衔 聊遗酉
esub_dbooptpq=渖瘟蜕夼铀墒 BOOTP ?
esub_shnet=蛄谀盘雅土 优载
esub_return=有捎纤 邢挠旁攀

esh_crheader=笙谀廖膳 蛄谀盘雅拖 笈陨
esh_eheader=蚺牧嗽梢献廖膳 蛄谀盘雅拖 笈陨
esh_tabhdr=鹆伊团砸 蛄谀盘雅拖 笈陨
esh_netname=橥 优陨
esh_return=有捎纤 邢挠旁攀

ehost_crheader=笙谀廖膳 柘釉
ehost_eheader=蚺牧嗽梢献廖膳 柘釉
ehost_tabhdr=鹆伊团砸 柘釉
ehost_hname=橥 认釉
ehost_fixedip=嫔擞梢献廖钨 IP 聊遗
ehost_return=有捎纤 认釉献

egroup_crheader=笙谀廖膳 缫招匈 柘釉献
egroup_eheader=蚺牧嗽梢献廖膳 缫招匈 柘釉献
egroup_tblhdr=鹆伊团砸 缫招匈
egroup_hosts=柘釉  牧挝鲜 且招信
egroup_nchoice=橛邢特谙琢载 赏, 肆 赏 认釉 颂膳卧?
egroup_return=有捎纤 认釉献

yes=淞
no=钆
default=鹣 胀咸蘖紊
secs=优.
none=钆

listl_header=嵋盼馁 DHCP
listl_lfnotexist=媪侍 DHCPd 烈盼 <tt>$1</tt> 闻 诱菖釉渍旁.
listl_lfnotcont=媪侍 DHCPd 烈盼 <tt>$1</tt> 闻 酉呐抑稍 $2 烈盼.
listl_active=了陨孜偃
listl_ipaddr=IP 崮遗
listl_ether=Ethernet
listl_host=橥 认釉
listl_start=淞粤 笤烈粤
listl_end=淞粤 锼衔蘖紊
listl_return=有捎纤 邢挠旁攀

restart_errmsg1=镗陕肆 幸 遗釉烈耘 dhcpd
restart_errmsg2=镗陕肆 幸 显淤趟 由俏撂 幸厦庞诱
start_failstart=镗陕肆 幸 釉烈耘 dhcpd

sgroup_faildel=镗陕肆 幸 漳撂盼缮 且招匈
sgroup_failsave=镗陕肆 幸 酉纫廖盼缮 且招匈

shost_faildel=镗陕肆 幸 漳撂盼缮 认釉
shost_failsave=镗陕肆 幸 酉纫廖盼缮 认釉
shost_invalidhn=闻 炎萄旁友 南姓釉赏偻 赏盼磐 认釉
shost_invalidhwa='$1' 闻 炎萄旁友 南姓釉赏偻 $2 聊遗酉

sopt_failsave=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献 颂膳卧
sopt_invalidip=闻 炎萄旁友 南姓釉赏偻 IP 聊遗酉
sopt_invalidint=闻 炎萄旁友 门藤 奚犹贤
sopt_invalidipp=闻 炎萄旁友 南姓釉赏鲜 辛蚁 IP 聊遗酉 (陨辛 1.2.3.4,5.6.7.8)

sshared_faildel=镗陕肆 幸 漳撂盼缮 伊谀盘雅拖 优陨
sshared_failsave=镗陕肆 幸 酉纫廖盼缮 伊谀盘雅拖 优陨
sshared_invalidsname=踉乓盐 商 闻着椅 赏 伊谀盘雅拖 优陨

ssub_faildel=镗陕肆 幸 漳撂盼缮 邢挠旁
ssub_failsave=镗陕肆 幸 酉纫廖盼缮 邢挠旁
ssub_invalidsubaddr=闻 炎萄旁友 南姓釉赏偻 聊遗酉 邢挠旁
ssub_invalidnmask=闻 炎萄旁友 南姓釉赏鲜 优耘紫 土铀鲜
ssub_invalidipr=闻 炎萄旁友 南姓釉赏偻 纳列邻衔贤 IP 聊遗酉

plib_deflt=饕磐 烈拍 邢 胀咸蘖紊
plib_bfname=橥 诹且遮限蜗窍 屏侍
plib_maxlt=砹擞赏撂匚吓 滓磐 烈拍
plib_bfserv=笈易乓  诹且遮限钨 屏侍贤
plib_thisserv=淞挝偈 优易乓
plib_servname=橥 优易乓
plib_llbc=鹨夏咸稚耘特蜗釉 烈盼馁 奶 BOOTP 颂膳卧献
plib_forever=盍子徘牧
plib_lebc=锼衔蘖紊 烈盼馁 奶 BOOTP 颂膳卧献
plib_never=钌讼悄
plib_invalidlt=闻 炎萄旁友 南姓釉赏偻 滓磐盼磐 烈盼馁
plib_invalidsn=闻 炎萄旁友 南姓釉赏偻 赏盼磐 优易乓
plib_leformat=淞粤 纤衔蘖紊 烈盼馁 南讨瘟 沦载  葡彝猎 W YYYY/MM/DD HH:MM:SS
plib_copt=鹆伊团砸 胩膳卧
plib_chname=橥 认釉 颂膳卧
plib_defrouters=砹役艺陨诹韵屹 邢 胀咸蘖紊
plib_snmask=砹铀 邢挠旁
plib_babbr=蚁讼着萘. 聊遗
plib_domname=橥 南团瘟
plib_dnsserv=DNS 优易乓
plib_timeserv=Time 优易乓
plib_logserv=Log 优易乓
plib_swapserv=Swap 优易乓
plib_rdpath=鹫载  讼椅抛贤 纳铀
plib_nisdom=NIS 南团
plib_nisserv=NIS 优易乓
plib_fontserv=Font 优易乓
plib_xdmserv=XDM 优易乓
plib_statrouters=笤猎赊庞松 土役艺再
plib_ntpserv=NTP 优易乓
plib_nbns=NetBIOS 优易乓 赏盼
plib_nbscope=NetBIOS 乱琳谂
plib_nbntype=NetBIOS 陨 遮塘

eopt_header=鹆伊团砸 胩膳卧
eopt_subtitle=涮 邢挠旁 $1
eopt_returnsub=有捎纤 邢挠旁攀
eopt_snettitle=涮 伊谀盘雅拖 优陨 $1
eopt_hosttitle=涮 认釉 $1
eopt_returnhost=有捎纤 认釉献
eopt_grouptitle=涮 且招匈 尢盼献 $1
eopt_alltitle=涮 子湃 优耘, 认釉献  且招
eopt_returnindex=翘磷蜗 团卫
eopt_tabhdr=鹆伊团砸 胩膳卧
eopt_chost=橥 认釉 胩膳卧
eopt_defrouters=砹役艺陨诹韵屹 邢 胀咸蘖紊
eopt_smask=砹铀 邢挠旁
eopt_baddr=蚁讼着萘耘特钨 聊遗
eopt_domname=橥 南团瘟
eopt_dnsserv=DNS 优易乓
eopt_timeserv=Time 优易乓
eopt_logserv=Log 优易乓
eopt_swapserv=Swap 优易乓
eopt_rdpath=鹫载  讼椅抛贤 纳铀
eopt_nisdom=NIS 南团
eopt_nisserv=NIS 优易乓
eopt_fontserv=Font 优易乓
eopt_xdmserv=XDM 优易乓
eopt_statrouters=笤猎赊庞松 土役艺再
eopt_ntpserv=NTP 优易乓
eopt_nbns=NetBIOS 优易乓 赏盼
eopt_nbs=NetBIOS 乱琳谂
eopt_nbntype=NetBIOS 陨 遮塘

0707010003410e000081a40000000000000002000000013ac038a200002abf000000200000000000000000000000000000001400000003reloc/dhcpd/lang/sv   index_title=DHCP-server
index_dhcpdnotfound=Det g錼 inte att hitta DHCP-server <i>$1</i> p ditt system. Den 鋜 f鰎modligen inte installerad, eller ocks 鋜 dina <a href=\"$2">DHCP-modulinst鋖lningar</a> felaktiga.
index_return=index
index_dhcpdver=DHCP-server <i>$1</i> verkar inte ha r鋞t version. Webmin st鰀jer bara ISC DHCPD version 2.
index_subtitle=Deln鋞 och delade n鋞verk
index_nosubdef=Du har inte definierat n錱ra deln鋞 eller delade n鋞verk.
index_addsub=L鋑g till ett deln鋞
index_addnet=L鋑g till ett delat n鋞verk
index_nomemb=Inga medlemmar
index_1memb=1 medlem
index_234memb=$1 medlemmar
index_memb=$1 medlemmar
index_hst=Datorer och datorgrupper
index_nohst=Du har inte definierat n錱ra datorer eller grupper.
index_hostgroup=Dator/Grupp
index_parent=F鰎鋖der
index_hardware=H錼dvaruadress
index_group=Grupp:
index_nameip=Datornamn eller IP-nummer
index_net=N鋞verk
index_netmask=N鋞mask
index_addhst=L鋑g till en dator
index_addhstg=L鋑g till en datorgrupp
index_buttego=膎dra klientinst鋖lningar
index_ego=膎dra DHCP-klientinst鋖lningar som ska g鋖la f鰎 alla deln鋞, delade n鋞verk, datorer och datorgrupper
index_buttlal=R鋕na upp aktiva l錸
index_lal=Lista l錸 fr錸 denna DHCP-server f鰎 dynamiska IP-adresser.
index_buttapply=Genomf鰎 鋘dringar
index_apply=Tryck p denna knapp f鰎 att ta denna konfiguration i drift p aktiv DHCP-server genom att stanna och starta om den.
index_buttstart=Starta server
index_start=Tryck p denna knapp f鰎 att starta en DHCP-server med denna konfiguration p ditt system.
index_hdisplay=Ordna datorer och grupper efter:
index_horder0=Niv
index_horder1=Filstruktur
index_horder2=Namn
index_horder3=H錼dvaruadress
index_horder4=IP-adress
index_togroup=Grupp
index_tosubnet=Deln鋞
index_toshared=N鋞verk
index_ndisplay=Ordna n鋞 och deln鋞 efter:
index_norder0=Niv
index_norder1=Filstruktur
index_norder2=Namn/IP-adress

butt_save=Spara
butt_eco=膎dra klientinst鋖lningar
butt_vco=Visa klientinst鋖lningar
butt_del=Ta bort
butt_create=Skapa

esub_crheader=L鋑g till deln鋞
esub_edheader=膎dra deln鋞
esub_tabhdr=Uppgifter om deln鋞
esub_naddr=N鋞verksadress
esub_nmask=N鋞mask
esub_arange=Adressintervall
esub_dbooptpq=Dynamisk BOOTP?
esub_shnet=Delat n鋞verk
esub_hosts=Datorer direkt i detta deln鋞
esub_groups=Grupper direkt i detta deln鋞
esub_pools=Adresspooler f鰎 deln鋞
esub_pool=Pool $1
esub_poolnone=Du har inte angivit n錱on adresspool
esub_pooladd=L鋑g till en adresspool
esub_none=Ingen
esub_return=lista 鰒er deln鋞
esub_retshar=delat n鋞verk

esh_crheader=Skapa delat n鋞verk
esh_eheader=膎dra delat n鋞verk
esh_tabhdr=Uppgifter om delat n鋞verk
esh_netname=N鋞verksnamn
esh_hosts=Datorer direkt i detta delade n鋞verk
esh_groups=Grupper direkt i detta delade n鋞verk
esh_subn=Deln鋞 i detta delade n鋞verk
esh_return=lista 鰒er deln鋞

ehost_crheader=L鋑g till dator
ehost_eheader=膎dra dator
ehost_tabhdr=Uppgifter om dator
ehost_hname=Datornamn
ehost_nojavascr=Din webbl鋝are verkar inte st鰀a javascript. V鋖j r鋞t alternativ ur listan nedan.
ehost_assign=Dator p
ehost_toplevel=Toppniv
ehost_inshared=Delat n鋞verk
ehost_insubnet=Deln鋞
ehost_ingroup=Grupp
ehost_hwaddr=H錼dvaruadress
ehost_fixedip=Fast IP-adress
ehost_subnet=I deln鋞 $1/$2
ehost_shared=I det delade n鋞verket $1
ehost_in=i
ehost_return=datorlista
ehost_retgroup=grupp
ehost_retsubn=deln鋞
ehost_retshar=delat n鋞verk

egroup_crheader=L鋑g till datorgrupp
egroup_eheader=膎dra datorgrupp
egroup_tblhdr=Uppgifter om datorgrupp
egroup_assign=Gruppen avdelad till
egroup_hosts=Datorer i denna grupp
egroup_nchoice=Anv鋘da namnet som datornamn f鰎 klienter?
egroup_return=datorlista
egroup_retsubn=deln鋞
egroup_retshar=delat n鋞verk

default=Standard
secs=s
none=Inga

listl_header=DHCP-l錸
listl_lfnotexist=DHCPd-l錸efilen <tt>$1</tt> finns inte.
listl_lfnotcont=DHCPd-l錸efilen <tt>$1</tt> inneh錶ler inte n錱ot $2 l錸.
listl_active=aktivt
listl_ipaddr=IP-adress
listl_ether=Ethernet
listl_host=Datornamn
listl_start=Startdatum
listl_end=Slutdatum
listl_return=lista 鰒er n鋞verk och datorer
listl_all=Visa alla aktiva och utg錸gna l錸
listl_delete=Klicka p en l錸e-IP-adress i listan ovan f鰎 att ta bort den.

restart_errmsg1=Det gick inte att starta om dhcpd
restart_errmsg2=Det gick inte att skicka signal till process
start_failstart=Det gick inte att starta dhcpd

sgroup_faildel=Det gick inte att ta bort grupp
sgroup_failsave=Det gick inte att spara grupp
sgroup_invassign=gruppen har avdelats till en ogiltig sektion
sgroup_echanged=Inneh錶let i konfigurationsfilen har 鋘drats. F鰎s鰇 igen.

shost_faildel=Det gick inte att ta bort dator
shost_failsave=Det gick inte att spara dator
shost_invalidhn=鋜 inte ett giltigt datornamn
shost_invalidhwa='$1' 鋜 inte en giltig $2-adress
shost_invalidaddr='$1' inneh錶ler ett ogiltigt datornamn eller ogiltig IP-adress
shost_invassign=datorn har avdelats till en ogiltig sektion

sopt_failsave=Det gick inte att spara klientinst鋖lningar
sopt_invalidip=鋜 inte en giltig IP-adress
sopt_invalidint=鋜 inte ett heltal
sopt_invalidipp=鋜 inte ett giltigt IP-adresspar (t ex 1.2.3.4,5.6.7.8)

sshared_faildel=Det gick inte att ta bort det delade n鋞verket
sshared_failsave=Det gick inte att spara delat n鋞verk
sshared_invalidsname=Namnet p det delade n鋞verket saknas eller 鋜 inte ett giltigt namn.
sshared_nosubnet=Det delade n鋞verket '$1' inneh錶ler inget deln鋞.

ssub_faildel=Det gick inte att ta bort deln鋞et
ssub_failsave=Det gick inte att spara deln鋞et
ssub_invalidsubaddr=鋜 inte en giltig deln鋞sadress
ssub_invalidnmask=鋜 inte en giltig n鋞mask
ssub_invalidipr=鋜 inte ett giltigt IP-adressintervall
ssub_nosubnet=Det delade n鋞verket '$1' inneh錶ler inget deln鋞.

plib_deflt=Standardl錸etid
plib_bfname=Boot-filnamn
plib_maxlt=Maximal l錸etid
plib_bfserv=Boot-filserver
plib_thisserv=Denna server
plib_servname=Servernamn
plib_llbc=L錸etid f鰎 BOOTP-klienter
plib_forever=Alltid
plib_lebc=L錸et upph鰎 f鰎 BOOTP-klienter
plib_never=Aldrig
plib_invalidlt=鋜 inte en giltig l錸etid
plib_invalidsn=鋜 inte ett giltigt servernamn
plib_invaliddom=$1 鋜 inte ett giltigt dom鋘namn
plib_leformat=Datum f鰎 l錸ets upph鰎ande m錽te ha format W 排排/MM/DD TT:MM:SS
plib_copt=Klientinst鋖lningar
plib_chname=Datornamn f鰎 klient
plib_defrouters=Standardroutrar
plib_snmask=Deln鋞smask
plib_babbr=Broadcast-adress
plib_domname=Dom鋘namn
plib_dnsserv=DNS-servrar
plib_timeserv=Tidservrar
plib_logserv=Loggservrar
plib_swapserv=Swap-server
plib_rdpath=S鰇v鋑 till rotdisk
plib_nisdom=NIS-dom鋘
plib_nisserv=NIS-servrar
plib_fontserv=Typsnittsservrar
plib_xdmserv=XDM-servrar
plib_statrouters=Statiska v鋑ar
plib_ntpserv=NTP-servrar
plib_nbns=NetBIOS-namnservrar
plib_nbscope=NetBIOS-omr錮e
plib_nbntype=NetBIOS-nodtyp
plib_ddnsdom=Dynamiskt DNS-dom鋘namn
plib_ddnsrevdom=Dynamisk DNS-bak錿uppslagningsdom鋘
plib_ddnsup=Sl p dynamisk DNS?
plib_ddnshost=Datornamn f鰎 dynamisk DNS
plib_ddnshost_def=Fr錸 klient

eopt_header=Klientinst鋖lningar
eopt_subtitle=F鰎 deln鋞 $1
eopt_returnsub=deln鋞
eopt_returnshsub=delat n鋞verk
eopt_snettitle=F鰎 delat n鋞verk $1
eopt_hosttitle=F鰎 dator $1
eopt_returnhost=dator
eopt_returngroup=datorgrupp
eopt_grouptitle=F鰎 grupper i $1
eopt_alltitle=F鰎 alla n鋞verk, datorer och grupper
eopt_returnindex=n鋞verks- och datorlista
eopt_tabhdr=Klientinst鋖lningar
eopt_chost=Datornamn f鰎 klient
eopt_defrouters=Standardroutrar
eopt_smask=Deln鋞smask
eopt_baddr=Broadcast-adress
eopt_domname=Dom鋘namn
eopt_dnsserv=DNS-servrar
eopt_timeserv=Tidsservrar
eopt_logserv=Loggservrar
eopt_swapserv=Swap-server
eopt_rdpath=S鰇v鋑 till rotdisk
eopt_nisdom=NIS-dom鋘
eopt_nisserv=NIS-servrar
eopt_fontserv=Typsnittsservrar
eopt_xdmserv=XDM-servrar
eopt_statrouters=Statiska v鋑ar
eopt_ntpserv=NTP-servrar
eopt_nbns=NetBIOS-namnservrar
eopt_nbs=NetBIOS-omr錮e
eopt_nbntype=NetBIOS-nodtyp
eopt_custom=Egen inst鋖lning
eopt_cnum=Nummer
eopt_cval=V鋜de

log_apply=Tog 鋘dringarna i drift
log_start=Startade DHCP-server
log_create_subnet=Skapade deln鋞 $1
log_delete_subnet=Tog bort deln鋞 $1
log_modify_subnet=Modifierade deln鋞 $1
log_options_subnet=Modifierade inst鋖lningarna f鰎 deln鋞 $1
log_create_shared=Skapade delat n鋞verk $1
log_delete_shared=Tog bort delat n鋞verk $1
log_modify_shared=Modifierade delat n鋞verk $1
log_options_shared=Modifierade inst鋖lningarna f鰎 delat n鋞verk $1
log_create_host=Lade till dator $1
log_delete_host=Tog bort dator $1
log_modify_host=Modifierade dator $1
log_options_host=Modifierade inst鋖lningarna f鰎 dator $1
log_create_group=Skapade grupp med $1 datorer
log_delete_group=Tog bort grupp med $1 datorer
log_modify_group=Modifierade grupp med $1 datorer
log_options_group=Modifierade inst鋖lningarna f鰎 grupp med $1 datorer
log_delete_lease=Tog bort l錸et f鰎 $1

pool_edit=膎dra adresspool
pool_create=Skapad adresspool
pool_header=Inst鋖lningar f鰎 adresspool
pool_allow=Klienter som ska sl鋚pas fram
pool_deny=Klienter som ska sp鋜ras
pool_return=subnet

cdel_header=Varning
cdel_shared1=delat n鋞verk
cdel_shared2=delat n鋞verk
cdel_subnet1=deln鋞
cdel_subnet2=deln鋞
cdel_subnet=deln鋞
cdel_subnets=deln鋞
cdel_group1=grupp
cdel_group2=grupp
cdel_group=grupp
cdel_groups=grupper
cdel_host=dator
cdel_hosts=datorer
cdel_txt=Om du tar bort $1 '$2' kommer du ocks att ta bort dess inneh錶l:
cdel_confirm=Vill du verkligen ta bort den h鋜 $1?
cdel_eunknown=Ok鋘t fel
cdel_return=dator- och n鋞verkslista

eacl_aviol=講ertr鋎else av 錿komstr鋞tigheter
eacl_np=Du f錼 inte
eacl_pdh=ta bort en dator
eacl_pih=l鋑ga till datorer
eacl_puh=鋘dra en dator
eacl_psh=ange en dator
eacl_pdg=ta bort en grupp
eacl_pig=l鋑ga till grupper
eacl_pug=鋘dra en grupp
eacl_psg=ange en grupp
eacl_pds=ta bort deln鋞
eacl_pis=l鋑ga till deln鋞
eacl_pus=鋘dra ett deln鋞
eacl_pss=ange ett deln鋞
eacl_pdn=ta bort ett delat n鋞verk
eacl_pin=l鋑ga till delade n鋞verk
eacl_pun=鋘dra ett delat n鋞verk
eacl_psn=ange ett delat n鋞verk
eacl_uniq=skapa dubbletter
eacl_pdl=ta bort l錸
eacl_psl=se l錸
eacl_pglob=鋘dra globala inst鋖lningar
eacl_papply=starta om denna tj鋘st

acl_apply=Kunna ta 鋘dringar i drift?
acl_r_leases=Kunna se l錸?
acl_w_leases=Kunna ta bort l錸?
acl_global=Kunna 鋘dra globala inst鋖lningar?
acl_uniq_hst=Unika datornamn?
acl_uniq_sub=Unika IP-adresser f鰎 deln鋞?
acl_uniq_sha=Unika namn f鰎 delade n鋞?
acl_seclevel=S鋕erhetsniv:
acl_hide=G鰉ma objekt som inte g錼 att komma 錿?
acl_ahst=Kom 錿 datorer:
acl_agrp=Kom 錿 grupper:
acl_asub=Kom 錿 deln鋞:
acl_asha=Kom 錿 delade n鋞verk:
acl_per_hst_acls=M鰆ligg鰎a ACL:er per dator?
acl_per_sub_acls=M鰆ligg鰎a ACL:er per deln鋞?
acl_per_obj_acls=ACL:er per objekt ...
acl_na=ej till錿na
acl_r1=endast f鰎 l鋝ning
acl_rw=f鰎 l鋝ning och skrivning
acl_c=skapa
acl_r=l鋝
acl_w=skriv
acl_err=Ett fel uppstod n鋜 ACL:en skulle sparas.
acl_ernow=Om du vill m鰆ligg鰎a 錿komst f鰎 skrivning i globala ACL:er f鰎 n錱ot objekt, ms錽te du ocks sl p l鋝錿komst f鰎 denna typ av objekt.
acl_normal=normal
acl_paranoic=paranoid
 0707010003410f000081a40000000000000002000000013ac038a200001927000000200000000000000000000000000000001400000003reloc/dhcpd/lang/tr   index_title=DHCP Sunucusu
index_dhcpdnotfound=DHCP sunucusu <i>$1</i> sisteminizde bulunamad.Kurulmam ya da  <a href="$2">DHCP mod黮 ayarlar </a> yanl olabilir
index_return=indeks
index_dhcpdver=DHCP sunucusu <i>$1</i> do餽u versiyona sahip de餴ldir.Webmin sadece ISC DHCPD versiyon 2'yi destekler 
index_subtitle=Alt ve Paylalm A餷ar
index_nosubdef=Alt ya da paylalm a tan齧lanmam
index_addsub=Yeni bir alt a ekle
index_addnet=Yeni bir paylalm a ekle
index_nomemb=躽e yok
index_1memb=1 鼀e
index_234memb=$1 鼀eler
index_memb=$1 鼀eler
index_hst=Makineler ve Makine Gruplar
index_nohst=Makine ya da gruplar tan齧lanmam
index_addhst=Yeni bir makine ekle
index_addhstg=Yeni bir makine grubu ekle
index_buttego=Genel Se鏴nekleri de餴⺶ir
index_ego=B黷黱 alt a餷ar, paylalm a餷ar, makine ve gruplara uygulanan DHCP se鏴neklerini de餴⺶ir
index_buttlal=Aktif Kom⺷lar Listele
index_lal=DHCP sunucusu ile dinamik olarak tan齧lanm kom⺷lar listele
index_buttapply=De餴㱮klikleri Uygula
index_apply=Bu butonu t齥layarak 鏰lan DHCP sunucusunu durdurup tekrar baatabilirsiniz
index_buttstart=Sunucuyu Baat
index_start=Bu butonu t齥layarak varolan ayarlar ile DHCP sunucusunu 鏰lt齬abilirsiniz

butt_save=Kaydet
butt_eco=輘temci Se鏴neklerini De餴⺶ir
butt_del=Sil
butt_create=Olu⺶ur

esub_crheader=Alt A Olu⺶ur
esub_edheader=Alt A瘕 De餴⺶ir
esub_tabhdr=Alt A Ayr齨t齦ar
esub_naddr=A Adresleri
esub_nmask=Netmask
esub_arange=Adres Alanlar
esub_dbooptpq=Dinamik BOOTP ?
esub_shnet=Paylalm A ?
esub_return=alt a listesi

esh_crheader=Paylalm A Olu⺶ur
esh_eheader=Paylalm A瘕 De餴⺶ir
esh_tabhdr=Paylalm A Ayr齨t齦ar
esh_netname=A 輘mi
esh_return=alt a listesi

ehost_crheader=Makine Olu⺶ur
ehost_eheader=Makineyi De餴⺶ir
ehost_tabhdr=Makine Ayr齨t齦ar
ehost_hname=Makine ismi
ehost_fixedip=Sabitlenmi IP adresi
ehost_return=makine listesi

egroup_crheader=Makine Grubu Olu⺶ur
egroup_eheader=Makine Grubunu De餴⺶ir
egroup_tblhdr=Grup Ayr齨t齦ar
egroup_hosts=Bu gruptaki makineler
egroup_nchoice=輘imi istemci makine ad olarak kullan?
egroup_return=makine listesi

yes=Evet
no=Hay齬
default=謓tan齧l
secs=saniye
none=Hi鏱iri

listl_header=DHCP Gecikmeleri
listl_lfnotexist=The DHCPd gecikme dosyas <tt>$1</tt> mevcut de餴l
listl_lfnotcont=The DHCPd gecikme dosyas <tt>$1</tt> $2 gecikmeleri i鏴rmiyor
listl_active=aktif
listl_ipaddr=IP Adresi
listl_ether=Ethernet
listl_host=Makine Ad
listl_start=Baang Zaman
listl_end=Biti Zaman
listl_return=alt a listesi

restart_errmsg1=Dhcpd'nin Yeniden baat齦mas齨da hata olu⺶u
restart_errmsg2=蔺lem sinyalinde hata olu⺶u
start_failstart=dhcpd'nin baat齦mas齨da hata olu⺶u

sgroup_faildel=Grubun silinmesinde hata olu⺶u
sgroup_failsave=Grubun kaydedilmesinde hata olutu

shost_faildel=Makinenin silinmesinde hata olu⺶u
shost_failsave=Makinenin kaydedilmesinde hata olu⺶u
shost_invalidhn=ge鏴rli bir makine ad de餴l
shost_invalidhwa='$1' ge鏴rli $2 adresi de餴l

sopt_failsave=輘temci se鏴neklerinin kaydedilmesinde hata olu⺶u
sopt_invalidip=ge鏴rli bir IP adresi de餴l
sopt_invalidint=bir tam say de餴l
sopt_invalidipp=ge鏴rli bir IP adres 鏸fti de餴l (1.2.3.4,5.6.7.8 gibi)

sshared_faildel=Paylalm a瘕n silinmesinde hata olu⺶u
sshared_failsave=Paylalm a瘕n kaydedilmesinde hata olu⺶u
sshared_invalidsname=Kay齪 ya da yanl paylalm a ad

ssub_faildel=Alt a瘕n silinmesinde hata olu⺶u
ssub_failsave=Alt a瘕n kaydedilmesinde hata olu⺶u
ssub_invalidsubaddr=ge鏴rli bir alt a adresi de餴l
ssub_invalidnmask=ge鏴rli bir a maskesi de餴l
ssub_invalidipr=ge鏴rli bir IP adres alan de餴l

plib_deflt=謓tan齧l gecikme s黵esi
plib_bfname=A琮l dosya ismi
plib_maxlt=En b鼀黭 gecikme zaman
plib_bfserv=A琮l dosya sunucusu
plib_thisserv=Bu sunucu
plib_servname=Sunucu ismi
plib_llbc=BOOTP istemcileri i鏸n gecikme uzunlu饀
plib_forever=Daima
plib_lebc=BOOTP istemcileri i鏸n gecikme sonu 
plib_never=Asla
plib_invalidlt=ge鏴rli bir gecikme s黵esi de餴l
plib_invalidsn=ge鏴rli bir sunucu ismi de餴l
plib_leformat=Gecikme sonu zaman bu 㧐kilde olmal齞齬 W YYYY/MM/DD HH:MM:SS
plib_copt=輘temci Se鏴nekleri
plib_chname=輘temci Makine Ad
plib_defrouters=謓 tan齧l y鰊lendiriciler
plib_snmask=Alt a maskesi
plib_babbr=Yay齨(Broadcast) adresi
plib_domname=Alan ismi
plib_dnsserv=DNS sunucusu
plib_timeserv=Zaman sunucular
plib_logserv=Log sunucular
plib_swapserv=Takas(swap) sunucusu
plib_rdpath=Root disk yolu
plib_nisdom=NIS alan
plib_nisserv=NIS sunucular
plib_fontserv=Font sunucular
plib_xdmserv=XDM sunucular
plib_statrouters=Sabit routes
plib_ntpserv=NTP sunucular
plib_nbns=NetBIOS isim sunucular
plib_nbscope=NetBIOS sahas
plib_nbntype=NetBIOS d黰 tipi

eopt_header=輘temci Se鏴nekleri
eopt_subtitle=$1 alt a瘕 i鏸n
eopt_returnsub=alt a listesi
eopt_snettitle=Paylalm a $1 i鏸n
eopt_hosttitle=Makine $1 i鏸n
eopt_returnhost=makine listesi
eopt_grouptitle=$1 鼀e grubu i鏸n
eopt_alltitle=B黷黱 a餷ar, makineler ve gruplar i鏸n
eopt_returnindex=indeks
eopt_tabhdr=輘temci Se鏴nekleri
eopt_chost=輘temci Makine Ad
eopt_defrouters=謓 tan齧l y鰊lendiriciler
eopt_smask=Alt a maskesi
eopt_baddr=Yay齨 adresi
eopt_domname=Alan ad
eopt_dnsserv=DNS sunucular
eopt_timeserv=Zaman sunucular
eopt_logserv=Log sunucular
eopt_swapserv=Takas(swap) sunucusu
eopt_rdpath=Root disk yolu
eopt_nisdom=NIS alan
eopt_nisserv=NIS sunucular
eopt_fontserv=Font sunucular
eopt_xdmserv=XDM sunucular
eopt_statrouters=Sabit routes
eopt_ntpserv=NTP sunucular
eopt_nbns=NetBIOS isim sunucular
eopt_nbs=NetBIOS sahas
eopt_nbntype=NetBIOS d黰 tipi

log_apply=De餴㱮klikler uyguland
log_start=DHCP sunucusu baat齦d
log_create_subnet=Alt b鰈ge $1 olu⺶uruldu
log_delete_subnet=Alt b鰈ge $1 silindi
log_modify_subnet=Alt b鰈ge $1 de餴⺶irildi
log_options_subnet=Alt b鰈ge $1 i鏸n de鏴nekler de餴⺶irildi
log_create_shared=Paylalm a $1 olu⺶uruldu
log_delete_shared=Paylalm a $1 silindi
log_modify_shared=Paylalm a $1 de餴⺶irildi
log_options_shared=Paylalm a $1 i鏸n se鏴nekler de餴⺶irildi
log_create_host=$1 makinesi olu⺶uruldu
log_delete_host=$1 makinesi silindi
log_modify_host=$1 makinesi de餴⺶irildi
log_options_host=$1 makinesi i鏸n se鏴nekler de餴⺶irildi
log_create_group=$1 makine grubu olu⺶uruldu
log_delete_group=$1 makine grubu silindi
log_modify_group=$1 makine grubu de餴⺶irildi
log_options_group=$1 makine grubunun se鏴nekleri de餴⺶irildi

 07070100034110000081a40000000000000002000000013ac038a200001042000000200000000000000000000000000000001700000003reloc/dhcpd/lang/zh_CN    index_title=DHCP服务器
index_dhcpdnotfound=在你的系统上没找到DHCP子网<i>$1</i>. 可能是没安装,也可能是你的 <a href="$2">DHCP模块配置</a>不正确.
index_return=索引
index_dhcpdver=DHCP服务器<i>$1</i> 不是正确的版本. Webmin只支持ISC DHCPD版本2.
index_subtitle=子网和共享网络
index_nosubdef=没有定义子网或共享网络.
index_addsub=增加一个新的子网
index_addnet=增加一个新的共享网络
index_nomemb=没有成员
index_1memb=一个成员
index_234memb=$1 成员
index_memb=$1 成员
index_hst=主机和主机组
index_nohst=没有定义主机或主机组.
index_addhst=增加一个新的主机
index_addhstg=增加一个新的主机组
index_buttego=编辑全局选项
index_ego=编辑应用于所有子网、共享网络、主机或主机组的DHCP选项
index_buttlal= 列出活动的租赁
index_lal=列出当前被DHCP服务器动态分配地址的租赁.
index_buttapply=应用改变
index_apply=按这个按钮使当前的配置在运行、重启和停止DHCP服务器时起作用.
index_buttstart=启动服务器
index_start=按这个按钮在当前系统中用当前的配置启动DHCP服务器.

butt_save=保存
butt_eco=编辑客户选项
butt_del=删除
butt_create=创建

esub_crheader=创建子网
esub_edheader=编辑子网
esub_tabhdr=子网细节
esub_naddr=网络地址
esub_nmask=网络掩码
esub_arange=地址范围
esub_dbooptpq=动态BOOTP ?
esub_shnet=共享网络
esub_return=子网列表

esh_crheader=创建共享网络
esh_eheader=编辑共享网络
esh_tabhdr=共享网络细节
esh_netname=网络名
esh_return=子网列表

ehost_crheader=创建主机
ehost_eheader=编辑主机
ehost_tabhdr=主机细节
ehost_hname=主机名
ehost_fixedip=固定的IP地址
ehost_return=主机列表

egroup_crheader=创建主机组
egroup_eheader=编辑主机组
egroup_tblhdr=组细节
egroup_hosts=本组中的主机
egroup_nchoice=用户名是否作客户主机名?
egroup_return=主机列表

yes=是
no=不
default=缺省
secs=秒
none=没有

listl_header=DHCP租赁
listl_lfnotexist=DHCPd租赁文件<tt>$1</tt> 不存在 .
listl_lfnotcont=DHCPd租赁文件<tt>$1</tt> 不包含活动的租赁.
listl_ipaddr=IP地址
listl_ether=以太网
listl_host=主机名
listl_start=开始日期
listl_end=终止日期
listl_return=子网列表

restart_errmsg1=重启dhcpd失败
restart_errmsg2=发信号给进程失败
start_failstart=启动dhcpd失败

sgroup_faildel=删除组失败
sgroup_failsave=保存组失败

shost_faildel=删除主机失败
shost_failsave=保存主机失败
shost_invalidhn=不是一个合法的主机名
shost_invalidhwa='$1'不是一个合法的 $2 地址

sopt_failsave=保存客户选项失败
sopt_invalidip=不是一个合法的IP地址
sopt_invalidint=不是一个整数
sopt_invalidipp=不是一个合法的IP地址 (象 1.2.3.4,5.6.7.8)

sshared_faildel=删除共享网络失败
sshared_failsave=保存共享网络失败
sshared_invalidsname=缺少或非法的共享网络名

ssub_faildel=删除子网失败
ssub_failsave=保存子网失败
ssub_invalidsubaddr=不是一个合法的子网地址
ssub_invalidnmask=不是一个合法的掩码
ssub_invalidipr=不是一个合法的IP地址范围

plib_deflt=缺省租赁时间
plib_bfname=启动文件名
plib_maxlt=最大租赁时间
plib_bfserv=启动文件服务器
plib_thisserv=这个服务器
plib_servname=服务器名
plib_llbc=BOOTP客户的租赁时间
plib_forever=永久
plib_lebc=BOOTP客户租赁终止
plib_never=永不
plib_invalidlt=不是一个合法大租赁时间
plib_invalidsn=不是一个合法的服务器名
plib_leformat=租赁终止日期必须是这样格式: W YYYY/MM/DD HH:MM:SS
plib_copt=客户选项
plib_chname=客户机名
plib_defrouters=缺省路由
plib_snmask=子网掩码
plib_babbr=广播地址
plib_domname=域名
plib_dnsserv=DNS服务器
plib_timeserv=Time服务器
plib_logserv=Log服务器
plib_swapserv=Swap服务器
plib_rdpath=根盘路径
plib_nisdom=NIS域
plib_nisserv=NIS服务器
plib_fontserv=Font服务器
plib_xdmserv=XDM服务器
plib_statrouters=静态路由
plib_ntpserv=NTP服务器
plib_nbns=NetBIOS名字服务器
plib_nbscope=NetBIOS范围
plib_nbntype=NetBIOS节点类型

eopt_header=客户选项
eopt_subtitle=子网 $1
eopt_returnsub=子网列表
eopt_snettitle=共享网络 $1
eopt_hosttitle=主机 $1
eopt_returnhost=主机列表
eopt_grouptitle= $1 成员组
eopt_alltitle=全部网络、主机和组
eopt_returnindex=索引
eopt_tabhdr=客户选项
eopt_chost=客户机名
eopt_defrouters=缺省路由
eopt_smask=子网掩码
eopt_baddr=广播地址
eopt_domname=域名
eopt_dnsserv=DNS服务器
eopt_timeserv=Time服务器
eopt_logserv=Log服务器
eopt_swapserv=Swap服务器
eopt_rdpath=根盘路径
eopt_nisdom=NIS域
eopt_nisserv=NIS服务器
eopt_fontserv=Font服务器
eopt_xdmserv=XDM服务器
eopt_statrouters=静态路由
eopt_ntpserv=NTP服务器
eopt_nbns=NetBIOS名字服务器
eopt_nbs=NetBIOS范围
eopt_nbntype=NetBIOS节点类型


  07070100034111000081a40000000000000002000000013ac038a20000117c000000200000000000000000000000000000001c00000003reloc/dhcpd/lang/zh_TW.Big5   index_title=DHCP 狝竟
index_dhcpdnotfound=眤╰参тぃ DHCP 狝竟 <i>$1</i>. 琌﹟ゼ杆, ┪琌眤 <a href="$2">DHCP 家舱舱篈</a>Τ岿粇.
index_return=ま
index_dhcpdver=DHCP 狝竟 <i>$1</i> ぃ琌タ絋セ. Webmin や穿 ISC  DHCPD 材.
index_subtitle=呼隔籔ㄉ呼隔
index_nosubdef=﹟ゼ﹚竡呼隔┪ㄉ呼隔.
index_addsub=糤穝呼隔
index_addnet=糤穝ㄉ呼隔
index_nomemb=⊿ΤΘ
index_1memb=1 Θ
index_234memb=$1 Θ
index_memb=$1 Θ
index_hst=诀籔诀竤舱
index_nohst=﹟ゼ﹚竡诀┪竤舱.
index_addhst=糤穝诀
index_addhstg=糤穝诀竤舱
index_buttego=絪胯办匡兜
index_ego=絪胯 DHCP 匡甅ノ┮Τ呼隔, ㄉ呼隔, 诀籔竤舱
index_buttlal=ㄏノい
index_lal=ヘ玡 DHCP 狝竟祇倒笆篈﹚ IP .
index_buttapply=甅ノ跑
index_apply=硂秙竒パ氨ゎ穝币笆磅︽い DHCP 狝竟, 甅ノヘ玡舱篈.
index_buttstart=币笆狝竟
index_start=硂秙币笆 DHCP 狝竟, ㄏノヘ玡舱篈.

butt_save=纗
butt_eco=絪胯め狠匡兜
butt_del=埃
butt_create=ミ

esub_crheader=ミ呼隔
esub_edheader=絪胯呼隔
esub_tabhdr=呼隔冈灿戈
esub_naddr=呼隔
esub_nmask=呼隔綛竛
esub_arange=IP 絛瞅
esub_dbooptpq=琌ㄏノ笆篈 BOOTP?
esub_shnet=ㄉ呼隔
esub_return=呼隔

esh_crheader=ミㄉ呼隔
esh_eheader=絪胯ㄉ呼隔
esh_tabhdr=ㄉ呼隔冈灿戈
esh_netname=呼隔嘿
esh_return=呼隔

ehost_crheader=ミ诀
ehost_eheader=絪胯诀
ehost_tabhdr=诀冈灿戈
ehost_hname=诀嘿
ehost_fixedip=㏕﹚ IP 
ehost_return=诀

egroup_crheader=ミ诀竤舱
egroup_eheader=絪胯诀竤舱
egroup_tblhdr=竤舱冈灿戈
egroup_hosts=硂竤舱い诀
egroup_nchoice=琌ㄏノ嘿め狠诀嘿?
egroup_return=诀

yes=琌
no=
default=箇砞
secs=
none=礚

listl_header=DHCP 
listl_lfnotexist=DHCPd 郎 <tt>$1</tt> ぃ.
listl_lfnotcont=DHCPd 郎 <tt>$1</tt> ぃヴㄏノい.
listl_ipaddr=IP 
listl_ether=び呼隔
listl_host=诀嘿
listl_start=秨﹍ら戳
listl_end=挡ら戳
listl_return=呼隔

restart_errmsg1=穝币笆 dhcpd ア毖
restart_errmsg2=癳北癟腹倒祘ア毖
start_failstart=币笆 dhcpd ア毖

sgroup_faildel=埃竤舱ア毖
sgroup_failsave=纗竤舱ア毖

shost_faildel=埃诀ア毖
shost_failsave=纗诀ア毖
shost_invalidhn=ぃ琌Τ诀嘿
shost_invalidhwa='$1' ぃ琌Τ $2 

sopt_failsave=纗め狠匡兜ア毖
sopt_invalidip=ぃ琌Τ IP 
sopt_invalidint=ぃ琌俱计
sopt_invalidipp=ぃ琌Τ IP 癸 (ㄒ 1.2.3.4,5.6.7.8)

sshared_faildel=埃ㄉ呼隔ア毖
sshared_failsave=纗ㄉ呼隔ア毖
sshared_invalidsname=框ア┪岿粇ㄉ呼隔嘿

ssub_faildel=埃呼隔ア毖
ssub_failsave=纗呼隔ア毖
ssub_invalidsubaddr=ぃ琌Τ呼隔
ssub_invalidnmask=ぃ琌Τ呼隔綛竛
ssub_invalidipr=ぃ琌Τ IP 

plib_deflt=箇砞丁
plib_bfname=秨诀郎嘿
plib_maxlt=程丁
plib_bfserv=秨诀郎狝竟
plib_thisserv=硂狝竟
plib_servname=狝竟嘿
plib_llbc=ㄏノ BOOTP め狠
plib_forever=ッ环
plib_lebc=ㄏノ BOOTP め狠挡
plib_never=ッぃ
plib_invalidlt=ぃ琌Τ丁
plib_invalidsn=ぃ琌Τ狝竟嘿
plib_leformat=挡ら戳Αゲ斗琌 /る/ら :だ:
plib_copt=め狠匡兜
plib_chname=め狠诀嘿
plib_defrouters=箇砞隔パ竟
plib_snmask=呼隔綛竛
plib_babbr=約冀
plib_domname=呼办嘿
plib_dnsserv=DNS 狝竟
plib_timeserv=丁狝竟
plib_logserv=魁狝竟
plib_swapserv=ユ传郎狝竟
plib_rdpath=ヘ魁合盒隔畖
plib_nisdom=NIS 呼办嘿
plib_nisserv=NIS 狝竟
plib_fontserv=狝竟
plib_xdmserv=XDM 狝竟
plib_statrouters=繰篈隔パ
plib_ntpserv=NTP 狝竟
plib_nbns=NetBIOS 嘿狝竟
plib_nbscope=NetBIOS 絛瞅
plib_nbntype=NetBIOS 竊翴摸

eopt_header=め狠匡兜
eopt_subtitle=倒呼隔 $1
eopt_returnsub=呼隔
eopt_snettitle=倒ㄉ呼隔 $1
eopt_hosttitle=倒诀 $1
eopt_returnhost=诀
eopt_grouptitle=倒 $1 竤舱Θ
eopt_alltitle=倒┮Τ呼隔, 诀籔竤舱
eopt_returnindex=ま
eopt_tabhdr=め狠匡兜
eopt_chost=め狠诀嘿
eopt_defrouters=箇砞隔パ竟
eopt_smask=呼隔綛竛
eopt_baddr=約冀
eopt_domname=呼办嘿
eopt_dnsserv=DNS 狝竟
eopt_timeserv=丁狝竟
eopt_logserv=魁狝竟
eopt_swapserv=ユ传郎狝竟
eopt_rdpath=ヘ魁合盒隔畖
eopt_nisdom=NIS 呼办嘿
eopt_nisserv=NIS 狝竟
eopt_fontserv=狝竟
eopt_xdmserv=XDM 狝竟
eopt_statrouters=繰篈隔パ
eopt_ntpserv=NTP 狝竟
eopt_nbns=NetBIOS 嘿狝竟
eopt_nbs=NetBIOS 絛瞅
eopt_nbntype=NetBIOS 竊翴摸


0707010002fbfd000081e40000000000000002000000013ac038a200000dfd000000200000000000000000000000000000001c00000003reloc/dhcpd/list_leases.cgi   #!/usr/local/bin/perl
# list_leases.cgi
# List all active leases

require './dhcpd-lib.pl';
require 'timelocal.pl';
&ReadParse();
$timenow = time();

%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_psl'}") unless $access{'r_leases'};

&header($text{'listl_header'}, "");
print "<hr><p>\n";

if (!-r $config{'lease_file'}) {
	print "<b>";
	print(&text('listl_lfnotexist',$config{'lease_file'}));
	print "</b><p>\n";
	}
elsif (!&tokenize_file($config{'lease_file'}, \@tok)) {
	print "<b>",&text('listl_lfnotcont',$config{'lease_file'}),"</b><p>\n";
	}
else {
	$i = $j = 0;
	while($i < @tok) {
		$lease = &parse_struct(\@tok, \$i, $j++, $config{'lease_file'});
		next if (!$lease);
		local $mems = $lease->{'members'};
		local $starts = &find('starts', $mems);
		local $ends = &find('ends', $mems);
		$s = &lease_time($starts);
		$e = &lease_time($ends);
		if ($e < $timenow || $s > $timenow) {
			if ($in{'all'}) { $lease->{'expired'}++; }
			else { next; }
			}
		push(@leases, $lease);
		}
	if (@leases) {
		if ($config{'lease_sort'} == 1) {
			@leases = sort { &ip_compare($a, $b) } @leases;
			}
		elsif ($config{'lease_sort'} == 2) {
			@leases = sort { &hostname_compare($a, $b) } @leases;
			}
		print "<table border width=100%>\n";
		print "<tr $tb> <td><b>$text{'listl_ipaddr'}</b></td> ",
		      "<td><b>$text{'listl_ether'}</b></td> ",
		      "<td><b>$text{'listl_host'}</b></td> ",
		      "<td><b>$text{'listl_start'}</b></td> ",
		      "<td><b>$text{'listl_end'}</b></td> </tr>\n";
		foreach $lease (@leases) {
			local $mems = $lease->{'members'};
			local $starts = &find('starts', $mems);
			local $ends = &find('ends', $mems);
			print "<tr $cb>\n";
			local $ht = $lease->{'expired'} ? "i" : "tt";
			print "<td><$ht><a href='delete_lease.cgi?",
			      "idx=$lease->{'index'}&all=$in{all}'>",
			      "$lease->{'values'}->[0]</a></$ht></td>\n";
			local $hard = &find('hardware', $mems);
			print "<td><tt>",$hard->{'values'}->[1],"</tt></td>\n";
			local $client = &find('client-hostname', $mems);
			print "<td><tt>",$client ? $client->{'values'}->[0]
						 : "<br>","</tt></td>\n";
			print "<td><tt>",$starts->{'values'}->[1]," ",
					$starts->{'values'}->[2],"</tt></td>\n";
			print "<td><tt>",$ends->{'values'}->[1]," ",
					$ends->{'values'}->[2],"</tt></td>\n";
			print "</tr>\n";
			}
		print "</table>$text{'listl_delete'}<p>\n";
		}
	else {
		print "<b>",&text('listl_lfnotcont', $config{'lease_file'},
		      $in{'all'} ? "" : $text{'listl_active'}),
		      "</b><p>\n";
		}
	if (!$in{'all'}) {
		print "<form action=list_leases.cgi>\n";
		print "<input type=hidden name=all value=1>\n";
		print "<input type=submit value='$text{'listl_all'}'>\n";
		print "</form>\n";
		}
	}

print "<hr>\n";
&footer("", $text{'listl_return'});

sub lease_time
{
local @d = split(/\//, $_[0]->{'values'}->[1]);
local @t = split(/:/, $_[0]->{'values'}->[2]);
local $t;
eval { $t = timegm($t[2], $t[1], $t[0], $d[2], $d[1]-1, $d[0]-1900) };
return $@ ? undef : $t;
}

sub ip_compare
{
$a->{'values'}->[0] =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)/;
local ($a1, $a2, $a3, $a4) = ($1, $2, $3, $4);
$b->{'values'}->[0] =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)/;
return	$a1 < $1 ? -1 :
	$a1 > $1 ? 1 :
	$a2 < $2 ? -1 :
	$a2 > $2 ? 1 :
	$a3 < $3 ? -1 :
	$a3 > $3 ? 1 :
	$a4 < $4 ? -1 :
	$a4 > $4 ? 1 : 0;
}

sub hostname_compare
{
local $client_a = &find('client-hostname', $a->{'members'});
local $client_b = &find('client-hostname', $b->{'members'});
return $client_a cmp $client_b;
}

   0707010002fbfe000081a40000000000000002000000013ac038a200000321000000200000000000000000000000000000001a00000003reloc/dhcpd/log_parser.pl # log_parser.pl
# Functions for parsing this module's logs

require './dhcpd-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p) = @_;
if ($action eq 'apply') {
	return $text{'log_apply'};
	}
elsif ($action eq 'start') {
	return $text{'log_start'};
	}
elsif ($type eq 'subnet' || $type eq 'shared' || $type eq 'host') {
	return &text("log_${action}_${type}", "<tt>$object</tt>");
	}
elsif ($type eq 'group') {
	local @h = split(/,/, $object);
	return &text("log_${action}_group", scalar(@h));
	}
elsif ($type eq 'lease' && $action eq 'delete') {
	return &text('log_delete_lease', "<tt>$object</tt>");
	}
else {
	return undef;
	}
}

   0707010002fbff000081a40000000000000002000000013ac038a1000001e1000000200000000000000000000000000000001800000003reloc/dhcpd/module.info   desc_zh_CN=DHCP服务器
name=DHCPD
desc_pt=Servidor de DHCP
desc_tr=DHCP Sunucusu
desc_fr=Serveur DHCP
desc_es=Servidor de DHCP
desc_de=DHCP Server
desc_sv=DHCP-server
desc_ru_SU=DHCP 笈易乓
desc_pl=Serwer DHCP
category=servers
os_support=debian-linux freebsd osf1 redhat-linux slackware-linux solaris suse-linux unixware openserver open-linux turbo-linux openbsd corel-linux cobalt-linux irix
desc_zh_TW.Big5=DHCP 狝竟
desc=DHCP Server
risk=low medium high
desc_ru_RU=DHCP 彦疴屦
   0707010002fc01000081a40000000000000002000000013ac038a100001874000000200000000000000000000000000000001a00000003reloc/dhcpd/params-lib.pl # params-lib.pl
# Functions for editing parameters common to many kinds of directive

# display_params(&config)
sub display_params
{
print &opt_input($text{'plib_deflt'}, "default-lease-time",
		 $_[0], $text{'default'}, 8, $text{'secs'});
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'plib_bfname'}, "filename", $_[0], $text{'none'}, 20);
print &opt_input($text{'plib_maxlt'}, "max-lease-time",
		 $_[0], $text{'default'}, 8, $text{'secs'});
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'plib_bfserv'}, "next-server", $_[0], $text{'plib_thisserv'}, 15);
print &opt_input($text{'plib_servname'}, "server-name", $_[0], $text{'default'}, 15);
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'plib_llbc'}, "dynamic-bootp-lease-length",
		 $_[0], $text{'plib_forever'}, 8, $text{'secs'});
print &opt_input($text{'plib_lebc'}, "dynamic-bootp-lease-cutoff",
		 $_[0], $text{'plib_never'}, 21);
print "</tr>\n";

if ($config{'dhcpd_version'} >= 3) {
	# Inputs for DDNS
	print "<tr>\n";
	print &choice_input($text{'plib_ddnsup'}, "ddns-updates", $_[0], $text{'yes'}, 'on', $text{'no'}, 'off', $text{'default'}, '');
	print &opt_input($text{'plib_ddnsdom'}, "ddns-domainname", $_[0], $text{'default'}, 15);
	print "</tr>\n";

	print "<tr>\n";
	print &opt_input($text{'plib_ddnsrevdom'}, "ddns-rev-domainname", $_[0], $text{'default'}, 15);
	print &opt_input($text{'plib_ddnshost'}, "ddns-hostname", $_[0], $text{'plib_ddnshost_def'}, 15);
	print "</tr>\n";
	}
}

# parse_params(&parent, [&indent])
sub parse_params
{
&save_opt("default-lease-time", \&check_lease, $_[0], $_[1]);
&save_opt("filename", undef, $_[0], $_[1], 1);
&save_opt("max-lease-time", \&check_lease, $_[0], $_[1]);
&save_opt("next-server", \&check_server, $_[0], $_[1]);
&save_opt("server-name", \&check_server, $_[0], $_[1], 1);
&save_opt("dynamic-bootp-lease-length", \&check_lease, $_[0], $_[1]);
&save_opt("dynamic-bootp-lease-cutoff", \&check_ldate, $_[0], $_[1], 1);
if ($config{'dhcpd_version'} >= 3) {
	&save_opt("ddns-domainname", \&check_domain, $_[0], $_[1], 1);
	&save_opt("ddns-rev-domainname", \&check_domain, $_[0], $_[1], 1);
	&save_opt("ddns-hostname", \&check_server, $_[0], $_[1], 1);
	&save_choice("ddns-updates", $_[0], $_[1]);
	}
}

sub check_lease
{
return $_[0] =~ /^\d+$/ ? undef : "'$_[0]' $text{'plib_invalidlt'}";
}

sub check_server
{
return $_[0] =~ /^\S+$/ ? undef : "'$_[0]' $text{'plib_invalidsn'}";
}

sub check_ldate
{
return $_[0] =~ /^(\d) (\d\d\d\d)\/(\d\d)\/(\d\d) (\d\d):(\d\d):(\d\d)$/ ?
	undef : $text{'plib_leformat'};
}

sub check_domain
{
return $_[0] =~ /^[A-Za-z0-9\.\-]+$/ ? undef : &text('plib_invaliddom', $_[0]);
}

# display_options(&config)
# Display a table of DHCP options
sub display_options
{
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'plib_copt'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";
local @opts = &find("option", $_[0]);

print "<tr>\n";
print &p_option_input($text{'plib_chname'}, "host-name", \@opts, 3);
print &p_option_input($text{'plib_defrouters'}, "routers", \@opts, 2);
print "</tr>\n";

print "<tr>\n";
print &p_option_input($text{'plib_snmask'}, "subnet-mask", \@opts, 0);
print &p_option_input($text{'plib_babbr'}, "broadcast-address", \@opts, 0);
print "</tr>\n";

print "<tr>\n";
print &p_option_input($text{'plib_domname'}, "domain-name", \@opts, 3);
print &p_option_input($text{'plib_dnsserv'}, "domain-name-servers", \@opts, 2);
print "</tr>\n";

print "<tr>\n";
print &p_option_input($text{'plib_timeserv'}, "time-servers", \@opts, 2);
print &p_option_input($text{'plib_logserv'}, "log-servers", \@opts, 2);
print "</tr>\n";

print "<tr>\n";
print &p_option_input($text{'plib_swapserv'}, "swap-server", \@opts, 3);
print &p_option_input($text{'plib_rdpath'}, "root-path", \@opts, 3);
print "</tr>\n";

print "<tr>\n";
print &p_option_input($text{'plib_nisdom'}, "nis-domain", \@opts, 3);
print &p_option_input($text{'plib_nisserv'}, "nis-servers", \@opts, 2);
print "</tr>\n";

print "<tr>\n";
print &p_option_input($text{'plib_fontserv'}, "font-servers", \@opts, 2);
print &p_option_input($text{'plib_xdmserv'}, "x-display-manager", \@opts, 2);
print "</tr>\n";

print "<tr>\n";
print &p_option_input($text{'plib_statrouters'}, "static-routes", \@opts, 5);
print "</tr>\n";

print "<tr>\n";
print &p_option_input($text{'plib_ntpserv'}, "ntp-servers", \@opts, 2);
print &p_option_input($text{'plib_nbns'}, "netbios-name-servers", \@opts, 2);
print "</tr>\n";

print "<tr>\n";
print &p_option_input($text{'plib_nbscope'}, "netbios-scope", \@opts, 3);
print &p_option_input($text{'plib_nbntype'}, "netbios-node-type", \@opts, 1);
print "</tr>\n";

print "</table></td></tr></table>\n";
}

# p_option_input(text, name, &config, type)
# types values:	0  - IP address
#		1  - Integer
#		2  - IP address list
#		3  - String
#		4  - Yes/no flag
#		5  - IP address pairs
sub p_option_input
{
local($rv, $v, $i);
for($i=0; $i<@{$_[2]}; $i++) {
	if ($_[2]->[$i]->{'values'}->[0] eq $_[1]) {
		$v = $_[2]->[$i];
		last;
		}
	}
$rv = "<td><b>$_[0]</b></td>\n";
if ($_[3] == 5) { $rv .= "<td colspan=3>"; }
else { $rv .= "<td>"; }
$rv .= sprintf "<input type=radio name=$_[1]_def value=1 %s> $text{'default'}\n",
	$v ? "" : "checked";
$rv .= sprintf "<input type=radio name=$_[1]_def value=0 %s> ",
	$v ? "checked" : "";
local @vl = $v ? @{$v->{'values'}} : ();
@vl = @vl[1..$#vl];
if ($_[3] == 0) {
	$rv .= "<input name=$_[0] size=15 value=\"$vl[0]\">\n";
	}
elsif ($_[3] == 1) {
	$rv .= "<input name=$_[0] size=8 value=\"$vl[0]\">\n";
	}
elsif ($_[3] == 2) {
	@vl = grep { $_ ne "," } @vl;
	$rv .= "<input name=$_[0] size=25 value=\"".join(" ", @vl)."\">\n";
	}
elsif ($_[3] == 3) {
	local $str = $vl[0] =~ /^[0-9\:]+$/ ? &nvt_to_string($vl[0]) : $vl[0];
	$rv .= "<input name=$_[0] size=20 value=\"$str\">\n";
	}
elsif ($_[3] == 4) {
	$rv .= sprintf "<input name=$_[0] value=1 %s> $text{'yes'}\n",
			$vl[0] eq "1" ? "checked" : "";
	$rv .= sprintf "<input name=$_[0] value=0 %s> $text{'no'}\n",
			$vl[0] eq "0" ? "checked" : "";
	}
elsif ($_[3] == 5) {
	@vl = grep { $_ ne "," } @vl;
	$rv .= "<input name=$_[0] size=50 value=\"";
	for($i=0; $i<@vl; $i+=2) {
		$rv .= $vl[$i]."-".$vl[$i+1];
		}
	$rv .= "\">\n";
	}
$rv .= "</td>\n";
return $rv;
}

1;

0707010002fc02000081e40000000000000002000000013ac038a10000022b000000200000000000000000000000000000001800000003reloc/dhcpd/restart.cgi   #!/usr/local/bin/perl
# restart.cgi
# Restart the running dhcpd

require './dhcpd-lib.pl';
&ReadParse();
%access = &get_module_acl();
&error_setup($text{'eacl_aviol'});
&error("$text{'eacl_np'} $text{'eacl_papply'}") unless $access{'apply'};

$whatfailed = $text{'restart_errmsg1'};
&kill_logged('TERM', $in{'pid'}) ||
	&error("$text{'restart_errmsg2'} $in{'pid'} : $!");
$out = &backquote_logged("$config{'dhcpd_path'} -cf $config{'dhcpd_conf'} $config{'interfaces'} 2>&1");
if ($?) {
	&error("<pre>$out</pre>");
	}
&webmin_log("apply");
&redirect("");

 0707010002fc03000081e40000000000000002000000013ac038a100000fe1000000200000000000000000000000000000001b00000003reloc/dhcpd/save_group.cgi    #!/usr/local/bin/perl
# save_group.cgi
# Update, create or delete a group

require './dhcpd-lib.pl';
require './params-lib.pl';
&ReadParse();
&lock_file($config{'dhcpd_conf'});
($par, $group, $indent, $npar, $nindent) = get_branch('grp');
$parconf = $par->{'members'};

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if ($in{'delete'}) {
	&error("$text{'eacl_np'} $text{'eacl_pdg'}")
		if !&can('rw', \%access, $group, 1);
	}
elsif ($in{'options'}) {
	&error("$text{'eacl_np'} $text{'eacl_psg'}")
		if !&can('r', \%access, $group);
	}
elsif ($in{'new'}) {
	&error("$text{'eacl_np'} $text{'eacl_pig'}")
		unless &can('c', \%access, $group) && 
				&can('rw', \%access, $par) &&
				(!$npar || &can('rw', \%access, $npar));
	}
else {
	&error("$text{'eacl_np'} $text{'eacl_pug'}")
		unless !$npar || &can('rw', \%access, $npar);
	# for new and updated groups - per-host acls see below    
	}
# save
if ($in{'options'}) {
	# Redirect to client options
	&redirect("edit_options.cgi?sidx=$in{'sidx'}&uidx=$in{'uidx'}&idx=$in{'idx'}");
	exit;
	}
else {
	$whatfailed = $in{'delete'} ? $text{'sgroup_faildel'} :
				      $text{'sgroup_failsave'};

	# Move hosts into or out of this group
	@wasin = &find("host", $group->{'members'});
	foreach $hn (split(/\0/, $in{'hosts'})) {
		if ($hn =~ /(\d+),(\d+)/) {
			push(@nowin, $parconf->[$2]->{'members'}->[$1]);
			$nowpr{$parconf->[$2]->{'members'}->[$1]} =
				$parconf->[$2];
			}
		elsif ($hn =~ /(\d+),/) {
			push(@nowin, $parconf->[$1]);
			$nowpr{$parconf->[$1]} = $par;
			}
		if ($nowin[$#nowin]->{'name'} ne "host") {
			&error($text{'sgroup_echanged'});
			}
		}

	$whatfailed = "<blink><font color=red>$text{'eacl_aviol'}</font></blink>";
	foreach $h (&unique(@wasin, @nowin)) {
		$was = &indexof($h, @wasin) != -1;
		$now = &indexof($h, @nowin) != -1;

		# per-host ACLs for new or updated hosts
		if ($was != $now && !&can('rw', \%access, $h)) {
			&error("$text{'eacl_np'} $text{'eacl_pug'}");
			}
		if ($was && !$now) {
			# Move out of the group
			&save_directive($group, [ $h ], [ ], $indent);
			&save_directive($par, [ ], [ $h ], $indent);
			}
		elsif ($now && !$was) {
			# Move into the group (maybe from another group)
			&save_directive($nowpr{$h}, [ $h ], [ ], $indent);
			&save_directive($group, [ ], [ $h ], $indent + 1);
			}
		}

	if (!$in{'delete'}) {
		# Validate and save inputs
		&save_choice("use-host-decl-names", $group, $indent+1);
		&parse_params($group, $indent+1);

		$whatfailed = $text{'sgroup_failsave'};
		@partypes = ( "", "shared-network", "subnet" );
		if (!$npar || $in{'assign'} > 0 && $npar->{'name'} ne $partypes[$in{'assign'}]) {
			if ($in{'jsquirk'}) {
				&error($text{'sgroup_invassign'});
				}
			else {
				&redirect("edit_group.cgi?assign=".$in{'assign'}.
					"&idx=".$in{'idx'}."&uidx=".$in{'uidx'}.
					"&sidx=".$in{'sidx'});
				exit;
				}
			}
		if ($in{'new'}) {
			# create this new group
			&save_directive($npar, [ ], [ $group ], $nindent);
			}
		elsif ($par eq $npar) {
			# update this group - is it really necessary ?
			&save_directive($par, [ $group ], [ $group ], $nindent);
			}
		else {
			# move this group
			&save_directive($par, [ $group ], [ ], 0);
			&save_directive($npar, [ ], [ $group ], $nindent);
			}
		}
	}
&flush_file_lines();
if ($in{'delete'}) {
	# Delete this group
	if ($in{'hosts'} eq "") {
		&save_directive($par, [ $group ], [ ], 0);
		&flush_file_lines();
		}
	else {
		&unlock_file($config{'dhcpd_conf'});
		&redirect("confirm_delete.cgi?sidx=$in{'sidx'}&uidx=$in{'uidx'}".
			"&idx=$in{'idx'}=&type=2");
		}
	}
&unlock_file($config{'dhcpd_conf'});
@count = &find("host", $group->{'members'});
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
	    'group', join(",", map { $_->{'values'}->[0] } @count), \%in);
if ($in{'ret'} eq "subnet") {
	$retparms = "sidx=$in{'sidx'}&idx=$in{'uidx'}";
	}
elsif ($in{'ret'} eq "shared") {
	$retparms = "idx=$in{'sidx'}";
	}
&redirect( $in{'ret'} ? "edit_$in{'ret'}.cgi?$retparms" : "");
   0707010002fc04000081e40000000000000002000000013ac038a100000ed5000000200000000000000000000000000000001a00000003reloc/dhcpd/save_host.cgi #!/usr/local/bin/perl
# save_host.cgi
# Update, create or delete a host

require './dhcpd-lib.pl';
require './params-lib.pl';
&ReadParse();
&lock_file($config{'dhcpd_conf'});
($par, $host, $indent, $npar, $nindent) = get_branch('hst');

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if ($in{'delete'}) {
	&error("$text{'eacl_np'} $text{'eacl_pdh'}")
		if !&can('rw', \%access, $host, 1);
	}
elsif ($in{'options'}) {
	&error("$text{'eacl_np'} $text{'eacl_psh'}")
		if !&can('r', \%access, $host);
	}
elsif ($in{'new'}) {
	&error("$text{'eacl_np'} $text{'eacl_pih'}")
		unless &can('c', \%access, $host) && 
				&can('rw', \%access, $par) &&
				(!$npar || &can('rw', \%access, $npar));
	# restrict duplicates
	if ($access{'uniq_hst'}) {
		foreach $h (&get_hosts()) {
			&error("$text{'eacl_np'} $text{'eacl_uniq'}")
				if lc $h->{'values'}->[0] eq lc $in{'name'};
			}
		}
	}
else {
	&error("$text{'eacl_np'} $text{'eacl_puh'}")
		unless &can('rw', \%access, $host) &&
			(!$npar || &can('rw', \%access, $npar));
	}

# save
if ($in{'delete'}) {
	# Delete this host
	$whatfailed = $text{'shost_faildel'};
	&save_directive($par, [ $host ], [ ], 0);
	&drop_dhcpd_acl('hst', \%access, $host->{'values'}->[0]);
	}
elsif ($in{'options'}) {
	# Redirect to client options
	&redirect("edit_options.cgi?sidx=$in{'sidx'}&uidx=$in{'uidx'}&gidx=$in{'gidx'}&idx=$in{'idx'}");
	exit;
	}
else {
	$whatfailed = $text{'shost_failsave'};
	# Validate and save inputs
	$in{'name'} =~ /^[a-z0-9\.\-]+$/i ||
		&error("'$in{'name'}' $text{'shost_invalidhn'}");
	$host->{'values'} = [ $in{'name'} ];

	if ($in{'hardware'}) {
		$in{'hardware'} =~ /^([0-9a-f]{1,2}:)*[0-9a-f]{1,2}$/i ||
			&error(&text('shost_invalidhwa',$in{'hardware'},$in{'hardware_type'}) );
		@hard = ( { 'name' => 'hardware',
			    'values' => [ $in{'hardware_type'},
					  $in{'hardware'} ] } );
		}
	&save_directive($host, 'hardware', \@hard);

	if ($in{'fixed-address'}) {
		if ($in{'fixed-address'} !~ /^[\w\s\.\-,]+$/ ||
		    $in{'fixed-address'} =~ /(^|[\s,])[-_]/ ||
		    $in{'fixed-address'} =~ /\.([\s,\.]|$)/ ||
		    $in{'fixed-address'} =~ /(^|[\s,])\d+\.[\d\.]*[a-z_]/i) {
			&error(&text('shost_invalidaddr', $in{'fixed-address'}));	
			}
		@fixedip = split(/[,\s]+/, $in{'fixed-address'});
		@fixed = ( { 'name' => 'fixed-address',
			     'values' => [ join(" , ", @fixedip) ] } );
		}
	&save_directive($host, 'fixed-address', \@fixed);

	&parse_params($host);

	@partypes = ( "", "shared-network", "subnet", "group" );
	if (!$npar || $in{'assign'} > 0 && $npar->{'name'} ne $partypes[$in{'assign'}]) {
		if ($in{'jsquirk'}) {
			&error($text{'shost_invassign'});
			}
		else {
			&redirect("edit_host.cgi?assign=".$in{'assign'}.
				"&idx=".$in{'idx'}."&gidx=".$in{'gidx'}.
				"&uidx=".$in{'uidx'}."&sidx=".$in{'sidx'});
			exit;
			}
		}
	if ($in{'new'}) {
		# save acl for new host
		&save_dhcpd_acl('rw', 'hst', \%access, $in{'name'});
		# Add to the end of the parent structure
		&save_directive($npar, [ ], [ $host ], $nindent);
		}
	elsif ($par eq $npar) {
		# Update host
		&save_directive($par, [ $host ], [ $host ], $indent);
		}
	else {
		# Move this host
		&save_directive($par, [ $host ], [ ], 0);
		&save_directive($npar, [ ], [ $host ], $nindent);
		}
	}
&flush_file_lines();
&unlock_file($config{'dhcpd_conf'});
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
	    'host', $host->{'values'}->[0], \%in);
if ($in{'ret'} eq "group") {
	$retparms = "sidx=$in{'sidx'}&uidx=$in{'uidx'}&idx=$in{'gidx'}";
	}
elsif ($in{'ret'} eq "subnet") {
	$retparms = "sidx=$in{'sidx'}&idx=$in{'uidx'}";
	}
elsif ($in{'ret'} eq "shared") {
	$retparms = "idx=$in{'sidx'}";
	}

&redirect($in{'ret'} ? "edit_$in{'ret'}.cgi?$retparms" : "");
   0707010002fc05000081e40000000000000002000000013ac038a10000140a000000200000000000000000000000000000001d00000003reloc/dhcpd/save_options.cgi  #!/usr/local/bin/perl
# save_options.cgi
# Save client options for some subnet, shared net, group, host or global

require './dhcpd-lib.pl';
require './params-lib.pl';
&ReadParse();
&lock_file($config{'dhcpd_conf'});
$client = &get_parent_config();
foreach $i ($in{'sidx'}, $in{'uidx'}, $in{'gidx'}, $in{'idx'}) {
	if ($i ne '') {
		$client = $client->{'members'}->[$i];
		$indent++;
		}
	}

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if ($client->{'name'} eq 'subnet') {
	&error("$text{'eacl_np'} $text{'eacl_pus'}")
		if !&can('rw', \%access, $client);
	}
elsif ($client->{'name'} eq 'shared-network') {
	&error("$text{'eacl_np'} $text{'eacl_pun'}")
		if !&can('rw', \%access, $client);
	}
elsif ($client->{'name'} eq 'host') {
	&error("$text{'eacl_np'} $text{'eacl_puh'}")
		if !&can('rw', \%access, $client);
	}
elsif ($client->{'name'} eq 'group') {
	&error("$text{'eacl_np'} $text{'eacl_pug'}")
		if !&can('rw', \%access, $client);
	}
else {
	&error("$text{'eacl_np'} $text{'eacl_pglob'}")
		if !$access{'global'};
	}

# save
&error_setup($text{'sopt_failsave'});

&save_option("host-name", 3, $client, $indent);
&save_option("routers", 2, $client, $indent);
&save_option("subnet-mask", 0, $client, $indent);
&save_option("broadcast-address", 0, $client, $indent);
&save_option("domain-name", 3, $client, $indent);
&save_option("domain-name-servers", 2, $client, $indent);
&save_option("time-servers", 2, $client, $indent);
&save_option("log-servers", 2, $client, $indent);
&save_option("swap-server", 2, $client, $indent);
&save_option("root-path", 3, $client, $indent);
&save_option("nis-domain", 3, $client, $indent);
&save_option("nis-servers", 2, $client, $indent);
&save_option("font-servers", 2, $client, $indent);
&save_option("x-display-manager", 2, $client, $indent);
&save_option("static-routes", 5, $client, $indent);
&save_option("ntp-servers", 2, $client, $indent);
&save_option("netbios-name-servers", 2, $client, $indent);
&save_option("netbios-scope", 3, $client, $indent);
&save_option("netbios-node-type", 1, $client, $indent);
if ($in{'level'} eq "global") {
	# save params as well
	&save_choice("use-host-decl-names", $client, 0);
	&parse_params($client, 0);
	}
elsif ($in{'level'} eq "host") {
	$ret="edit_host.cgi?sidx=$in{'sidx'}&uidx=$in{'uidx'}&gidx=$in{'gidx'}&idx=$in{'idx'}";
	}
elsif ($in{'level'} eq "group") {
	$ret="edit_group.cgi?sidx=$in{'sidx'}&uidx=$in{'uidx'}&idx=$in{'idx'}";
	}
elsif ($in{'level'} eq "subnet") {
	$ret="edit_subnet.cgi?sidx=$in{'sidx'}&idx=$in{'idx'}";
	}
elsif ($in{'level'} eq "shared-network") {
	$ret="edit_shared.cgi?idx=$in{'idx'}";
	}

# save custom options
@custom = grep { $_->{'name'} eq 'option' &&
		 $_->{'values'}->[0] =~ /^option-(\d+)$/ }
	       @{$client->{'members'}};
for($i=0; defined($in{"cnum_$i"}); $i++) {
	next if (!$in{"cnum_$i"} || !$in{"cval_$i"});
	$in{"cnum_$i"} =~ /^\d+$/ ||
		&error(&text('sopt_invalidnum', $in{"cnum_$i"}));
	push(@newcustom, { 'name' => 'option',
			   'values' => [ 'option-'.$in{"cnum_$i"},
					 '"'.$in{"cval_$i"}.'"' ] } );
	}
&save_directive($client, \@custom, \@newcustom, $indent, 1);

&flush_file_lines();
&unlock_file($config{'dhcpd_conf'});
if ($client->{'name'} eq 'subnet') {
	&webmin_log("options", 'subnet',
		    "$client->{'values'}->[0]/$client->{'values'}->[2]", \%in);
	}
elsif ($client->{'name'} eq 'shared-network') {
	&webmin_log("options", 'subnet', $client->{'values'}->[0], \%in);
	}
elsif ($client->{'name'} eq 'host') {
	&webmin_log("options", 'host', $client->{'values'}->[0], \%in);
	}
elsif ($client->{'name'} eq 'group') {
	@count = &find("host", $client->{'members'});
	&webmin_log("options", 'group',
		    join(",", map { $_->{'values'}->[0] } @count), \%in);
	}
&redirect($ret);

# save_option(name, type, &config, indent)
sub save_option
{
local($v);
local $m = $_[2]->{'members'};
for($i=0; $i<@$m; $i++) {
	if ($m->[$i]->{'name'} eq 'option' &&
	    $m->[$i]->{'values'}->[0] eq $_[0]) {
		$v = $m->[$i];
		last;
		}
	}
if ($in{"$_[0]_def"}) {
	&save_directive($_[2], [ $v ], [ ], 0, 1) if ($v);
	}
else {
	local $nv = $in{$_[0]};
	local @nv = split(/\s+/, $nv);
	if ($_[1] == 0) {
		gethostbyname($nv) || &check_ipaddress($nv) ||
			&error("$_[0] '$nv' $text{'sopt_invalidip'}");
		}
	elsif ($_[1] == 1) {
		$nv =~ /^\d+$/ || &error("'$nv' $text{'sopt_invalidint'}");
		}
	elsif ($_[1] == 2) {
		local $ip;
		foreach $ip (@nv) {
			gethostbyname($ip) || &check_ipaddress($ip) ||
				&error("'$ip' $text{'sopt_invalidip'}");
			}
		$nv = join(" , ", @nv);
		}
	elsif ($_[1] == 3) {
		$nv = "\"$nv\"";
		}
	elsif ($_[1] == 5) {
		local($ipp, @nnv);
		foreach $ipp (@nv) {
			$ipp =~ /^(\S+)\s*,\s*(\S+)$/ ||
				&error("'$ipp' $text{'sopt_invalidipp'}");
			&check_ipaddress($1) ||
				&error("'$1' $text{'sopt_invalidip'}");
			&check_ipaddress($2) ||
				&error("'$2' $text{'sopt_invalidip'}");
			push(@nnv, "$1 $2");
			}
		$nv = join(" , ", @nnv);
		}
	local $dir = { 'name' => 'option',
		       'values' => [ $_[0], $nv ] };
	&save_directive($_[2], $v ? [ $v ] : [ ], [ $dir ], $_[3], 1);
	}
}

  0707010002fc06000081a40000000000000002000000013ac038a100000822000000200000000000000000000000000000001a00000003reloc/dhcpd/save_pool.cgi #!/usr/local/bin/perl
# save_pool.cgi
# Create, update or delete an address pool

require './dhcpd-lib.pl';
require './params-lib.pl';
&ReadParse();
&lock_file($config{'dhcpd_conf'});
$conf = &get_config();
if ($in{'sidx'} ne "") {
	$sha = $conf->[$in{'sidx'}]; 
	$sub = $sha->{'members'}->[$in{'uidx'}];
	$indent = 2;
	}
else {
	$sub = $conf->[$in{'uidx'}];
	$indent = 1;
	}
if ($in{'new'}) {
	$pool = { 'name' => 'pool',
		  'type' => 1,
		  'members' => [ ] };
	}
else {
	$pool = $sub->{'members'}->[$in{'idx'}];
	}

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pus'}") if !&can('rw', \%access, $sub);

# save
if ($in{'delete'}) {
	# Delete this pool from it's subnet
	&save_directive($sub, [ $pool ], [ ], 0);
	}
else {
	# Validate inputs
	for($i=0; defined($low = $in{"range_low_$i"}); $i++) {
		next if (!$low);
		$hi = $in{"range_hi_$i"}; $dyn = $in{"range_dyn_$i"};
		&check_ipaddress($low) ||
			&error("'$low' $text{'ssub_invalidipr'}");
		!$hi || &check_ipaddress($hi) ||
			&error("'$hi' $text{'ssub_invalidipr'}");
		$rng = { 'name' => 'range',
			 'values' => [ ($dyn ? "dynamic-bootp" : ()),
				       $low, ($hi ? $hi : ()) ] };
		push(@rng, $rng);
		}
	&save_directive($pool, "range", \@rng, 1);
	$in{'allow'} =~ s/\r//g;
	foreach $a (split(/\n/, $in{'allow'})) {
		push(@allow, { 'name' => 'allow', 'values' => [ $a ] });
		}
	&save_directive($pool, "allow", \@allow, 1);
	$in{'deny'} =~ s/\r//g;
	foreach $a (split(/\n/, $in{'deny'})) {
		push(@deny, { 'name' => 'deny', 'values' => [ $a ] });
		}
	&save_directive($pool, "deny", \@deny, 1);
	&parse_params($pool, 0);

	# Save or create the pool
	if ($in{'new'}) {
		&save_directive($sub, [ ], [ $pool ], $indent);
		}
	else {
		&save_directive($sub, [ $pool ], [ $pool ], $indent);
		}
	}
&flush_file_lines();
&unlock_file($config{'dhcpd_conf'});
&webmin_log('modify', 'subnet', "$sub->{'values'}->[0]/$sub->{'values'}->[2]",
	    \%in);
&redirect("edit_subnet.cgi?sidx=$in{'sidx'}&idx=$in{'uidx'}");

  0707010002fc07000081e40000000000000002000000013ac038a1000018c1000000200000000000000000000000000000001c00000003reloc/dhcpd/save_shared.cgi   #!/usr/local/bin/perl
# save_shared.cgi
# Update, create or delete a shared network

require './dhcpd-lib.pl';
require './params-lib.pl';
&ReadParse();
&lock_file($config{'dhcpd_conf'});
($par, $sha, $indent) = &get_branch('sha');
$parconf = $par->{'members'};

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if ($in{'delete'}) {
	&error("$text{'eacl_np'} $text{'eacl_pdn'}")
		if !&can('rw', \%access, $sha, 1);
	}
elsif ($in{'options'}) {
	&error("$text{'eacl_np'} $text{'eacl_psn'}")
		if !&can('r', \%access, $sha);
	}
elsif ($in{'new'}) {
	&error("$text{'eacl_np'} $text{'eacl_pin'}") 
		unless &can('c', \%access, $sha) && &can('rw', \%access, $par);
	# restrict duplicates
	if($access{'uniq_sha'}) {
		foreach $s (&find("shared-network", &get_config())) {
			&error("$text{'eacl_np'} $text{'eacl_uniq'}")
				if lc $s->{'values'}->[0] eq lc $in{'name'};
			}
		}
	}
else {
	&error("$text{'eacl_np'} $text{'eacl_pun'}")
		if !&can('rw', \%access, $sha);
	}

# save
if ($in{'options'}) {
	# Redirect to client options
	&redirect("edit_options.cgi?idx=$in{'idx'}");
	exit;
	}
else {
	if ($in{'delete'}) {
		$whatfailed = $text{'sshared_faildel'};
		}
	else {
		$whatfailed = $text{'sshared_failsave'};
		$in{'name'} =~ /^\S+$/ ||
			&error($text{'sshared_invalidsname'});
		$sha->{'values'} = [ $in{'name'} ];
	}

	# Move hosts, groups and subnets into or out of this shared network
	@wasin = &find("host", $sha->{'members'});
	foreach $hn (split(/\0/, $in{'hosts'})) {
		if ($hn =~ /(\d+),(\d+)/) {
			push(@nowin, $parconf->[$2]->{'members'}->[$1]);
			$nowpr{$parconf->[$2]->{'members'}->[$1]} =
				$parconf->[$2];
			}
		elsif ($hn =~ /(\d+),/) {
			push(@nowin, $parconf->[$1]);
			$nowpr{$parconf->[$1]} = $par;
			}
		if ($nowin[$#nowin]->{'name'} ne "host") {
			&error($text{'sgroup_echanged'});
			}
		}
	@wasgin = &find("group", $sha->{'members'});
	foreach $gn (split(/\0/, $in{'groups'})) {
		if ($gn =~ /(\d+),(\d+)/) {
			push(@nowgin, $parconf->[$2]->{'members'}->[$1]);
			$nowgpr{$parconf->[$2]->{'members'}->[$1]} =
				$parconf->[$2];
			}
		elsif ($gn =~ /(\d+),/) {
			push(@nowgin, $parconf->[$1]);
			$nowgpr{$parconf->[$1]} = $par;
			}
		if ($nowgin[$#nowgin]->{'name'} ne "group") {
			&error($text{'sgroup_echanged'});
			}
		}
	@wasuin = &find("subnet", $sha->{'members'});
	foreach $un (split(/\0/, $in{'subnets'})) {
		if ($un =~ /(\d+),(\d+)/) {
			push(@nowuin, $parconf->[$2]->{'members'}->[$1]);
			$nowupr{$parconf->[$2]->{'members'}->[$1]} =
				$parconf->[$2];
			}
		elsif ($un =~ /(\d+),/) {
			push(@nowuin, $parconf->[$1]);
			$nowupr{$parconf->[$1]} = $par;
			}
		if ($nowuin[$#nowuin]->{'name'} ne "subnet") {
			&error($text{'sgroup_echanged'});
			}
		}

	$whatfailed = "<blink><font color=red>$text{'eacl_aviol'}</font></blink>";
	foreach $h (&unique(@wasin, @nowin)) {
		$was = &indexof($h, @wasin) != -1;
		$now = &indexof($h, @nowin) != -1;

		# per-host ACLs for new or updated hosts
		if ($was != $now && !&can('rw', \%access, $h)) {
			&error("$text{'eacl_np'} $text{'eacl_pun'}");
			}
		if ($was && !$now) {
			# Move out of the shared network
			&save_directive($sha, [ $h ], [ ], 0);
			&save_directive($par, [ ], [ $h ], 0);
			}
		elsif ($now && !$was) {
			# Move into the shared network (maybe from another)
			&save_directive($nowpr{$h}, [ $h ], [ ], 0);
			&save_directive($sha, [ ], [ $h ], 1);
			}
		}
	foreach $g (&unique(@wasgin, @nowgin)) {
		$was = &indexof($g, @wasgin) != -1;
		$now = &indexof($g, @nowgin) != -1;

		# per-group ACLs for new or updated groups
		if ($was != $now && !&can('rw', \%access, $g)) {
			&error("$text{'eacl_np'} $text{'eacl_pun'}");
			}	
		if ($was && !$now) {
			# Move out of the shared network
			&save_directive($sha, [ $g ], [ ], 0);
			&save_directive($par, [ ], [ $g ], 0);
			}
		elsif ($now && !$was) {
			# Move into the shared network (maybe from another)
			&save_directive($nowgpr{$g}, [ $g ], [ ], 0);
			&save_directive($sha, [ ], [ $g ], 1);
			}
		}
	foreach $u (&unique(@wasuin, @nowuin)) {
		$was = &indexof($u, @wasuin) != -1;
		$now = &indexof($u, @nowuin) != -1;

		# per-subnet ACLs for new or updated subnetss
		if ($was != $now && !&can('rw', \%access, $u)) {
			&error("$text{'eacl_np'} $text{'eacl_pun'}");
			}		 
		if ($was && !$now) {
			# Move out of the shared network
			&save_directive($sha, [ $u ], [ ], 0);
			&save_directive($par, [ ], [ $u ], 0);
			if ($par->{'name'} eq "shared-network") {
				&fix_sequence($par);
				}
			}
		elsif ($now && !$was) {
			# Move into the shared network (maybe from another)
			&save_directive($nowupr{$u}, [ $u ], [ ], 0);
			&save_directive($sha, [ ], [ $u ], 1);
			if ($nowupr{$u}->{'name'} eq "shared-network") {
				&check_subnets($nowupr{$u});
				}
			}
		}
	&check_subnets($sha);
	&fix_sequence($sha);

	if (!$in{'delete'}) {
		&parse_params($sha);

		if ($in{'new'}) {
			# Add this shared net
			&save_directive($par, [ ], [ $sha ], 0);
			}
		else {
			# Update shared net
			&save_directive($par, [ $sha ], [ $sha ], 0);
			}
		}
	}
&flush_file_lines();
if ($in{'delete'}) {
	# Delete this net
	if ($in{'hosts'} eq "" && $in{'groups'} eq "" && $in{'subnets'} eq "") {
		&save_directive($par, [ $sha ], [ ], 0);
		&flush_file_lines();
		}
	else {
		&unlock_file($config{'dhcpd_conf'});
		&redirect("confirm_delete.cgi?idx=$in{'idx'}\&type=0");
		exit;
		}
	}
&unlock_file($config{'dhcpd_conf'});
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
	    'shared', $sha->{'values'}->[0], \%in);
&redirect("");

# check whether thist shared network contains any subnet
sub check_subnets
{
local(@subnets);
@subnets = &find("subnet", $_[0]->{'members'});
if (@subnets == 0) {
	$whatfailed = $text{'sshared_failsave'};
	&error(&text('sshared_nosubnet', $_[0]->{'values'}->[0]));
	}
}

# force hosts and groups to follow subnets
sub fix_sequence
{
local(@subnets, $max, $u, $i);
@subnets = &find("subnet", $_[0]->{'members'});
$max = -1;
foreach $u (@subnets) {
	$max = $u->{'index'} > $max ? $u->{'index'} : $max;
	}
for ($i = 0; $i < $max; $i++) {
	$u = $_[0]->{'members'}->[$i];
	if ($u->{'name'} eq "host" || $u->{'name'} eq "group") {
		# move to the end of list
		&save_directive($_[0], [ $u ], [ ], 0);
		&save_directive($_[0], [ ], [ $u ], 0);
		}
	}
}

   0707010002fc08000081e40000000000000002000000013ac038a1000018a1000000200000000000000000000000000000001c00000003reloc/dhcpd/save_subnet.cgi   #!/usr/local/bin/perl
# save_subnet.cgi
# Update, create or delete a subnet

require './dhcpd-lib.pl';
require './params-lib.pl';
&ReadParse();
&lock_file($config{'dhcpd_conf'});
($par, $sub, $indent, $npar, $nindent) = get_branch('sub');
$parconf = $par->{'members'};

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if ($in{'delete'}) {
	&error("$text{'eacl_np'} $text{'eacl_pds'}")
		if !&can('rw', \%access, $sub, 1);
	}
elsif ($in{'options'}) {
	&error("$text{'eacl_np'} $text{'eacl_pss'}") 
		if !&can('r', \%access, $sub);
	}
elsif ($in{'new'}) {
	&error("$text{'eacl_np'} $text{'eacl_pis'}")
		unless &can('c', \%access, $sub) && 
				&can('rw', \%access, $par) &&
				(!$npar || &can('rw', \%access, $npar));
	# restrict duplicates
	if ($access{'uniq_sub'}) {
		foreach $s (&get_subnets()) {
			&error("$text{'eacl_np'} $text{'eacl_uniq'}")
				if lc $s->{'values'}->[0] eq lc $in{'network'};
			}
		}
	}
# elsif (!($in{'host'} || $in{'group'})) {
else {
	&error("$text{'eacl_np'} $text{'eacl_pus'}")
		unless &can('rw', \%access, $sub) &&
			(!$npar || &can('rw', \%access, $npar));
	}

# save
if ($in{'options'}) {
	# Redirect to client options
	&redirect("edit_options.cgi?sidx=$in{'sidx'}&idx=$in{'idx'}");
	exit;
	}
else {
	if ($in{'delete'}) {
		$whatfailed = $text{'ssub_faildel'};
		if ($par->{'name'} eq "shared-network") {
			@subnets = &find("subnet", $par->{'members'});
			if (@subnets < 2) {
				&error(&text('ssub_nosubnet', $par->{'values'}->[0]));
				}
			}
		}
	else {
		$whatfailed = $text{'ssub_failsave'};
		# Validate and save inputs
		gethostbyname($in{'network'}) || &check_ipaddress($in{'network'}) ||
			&error("'$in{'network'}' $text{'ssub_invalidsubaddr'}");
		&check_ipaddress($in{'netmask'}) ||
			&error("'$in{'netmask'}' $text{'ssub_invalidnmask'}");
		$sub->{'values'} = [ $in{'network'}, "netmask", $in{'netmask'} ];
		}

	@wasin = &find("host", $sub->{'members'});
	foreach $hn (split(/\0/, $in{'hosts'})) {
		if ($hn =~ /(\d+),(\d+)/) {
			push(@nowin, $parconf->[$2]->{'members'}->[$1]);
			$nowpr{$parconf->[$2]->{'members'}->[$1]} =
				$parconf->[$2];
			}
		elsif ($hn =~ /(\d+),/) {
			push(@nowin, $parconf->[$1]);
			$nowpr{$parconf->[$1]} = $par;
			}
		if ($nowin[$#nowin]->{'name'} ne "host") {
			&error($text{'sgroup_echanged'});
			}
		}
	@wasgin = &find("group", $sub->{'members'});
	foreach $gn (split(/\0/, $in{'groups'})) {
		if ($gn =~ /(\d+),(\d+)/) {
			push(@nowgin, $parconf->[$2]->{'members'}->[$1]);
			$nowgpr{$parconf->[$2]->{'members'}->[$1]} =
				$parconf->[$2];
			}
		elsif ($gn =~ /(\d+),/) {
			push(@nowgin, $parconf->[$1]);
			$nowgpr{$parconf->[$1]} = $par;
			}
		if ($nowgin[$#nowgin]->{'name'} ne "group") {
			&error($text{'sgroup_echanged'});
			}
		}

	$whatfailed = "<blink><font color=red>$text{'eacl_aviol'}</font></blink>";
	foreach $h (&unique(@wasin, @nowin)) {
		$was = &indexof($h, @wasin) != -1;
		$now = &indexof($h, @nowin) != -1;

		# per-host ACLs for new or updated hosts
		if ($was != $now && !&can('rw', \%access, $h)) {
			&error("$text{'eacl_np'} $text{'eacl_pus'}");
			}
		if ($was && !$now) {
			# Move out of the subnet
			&save_directive($sub, [ $h ], [ ], $indent);
			&save_directive($par, [ ], [ $h ], $indent);
			}
		elsif ($now && !$was) {
			# Move into the subnet (maybe from another subnet)
			&save_directive($nowpr{$h}, [ $h ], [ ], $indent);
			&save_directive($sub, [ ], [ $h ], $indent + 1);
			}
		}
	foreach $g (&unique(@wasgin, @nowgin)) {
		$was = &indexof($g, @wasgin) != -1;
		$now = &indexof($g, @nowgin) != -1;

		# per-group ACLs for new or updated groups
		if ($was != $now && !&can('rw', \%access, $g)) {
			&error("$text{'eacl_np'} $text{'eacl_pus'}");
			}
		if ($was && !$now) {
			# Move out of the subnet
			&save_directive($sub, [ $g ], [ ], $indent);
			&save_directive($par, [ ], [ $g ], $indent);
			}
		elsif ($now && !$was) {
			# Move into the subnet (maybe from another subnet)
			&save_directive($nowgpr{$g}, [ $g ], [ ], $indent);
			&save_directive($sub, [ ], [ $g ], $indent + 1);
			}
		}

	if (!$in{'delete'}) {
		$whatfailed = $text{'ssub_failsave'};
		for($i=0; defined($low = $in{"range_low_$i"}); $i++) {
			next if (!$low);
			$hi = $in{"range_hi_$i"}; $dyn = $in{"range_dyn_$i"};
			&check_ipaddress($low) ||
				&error("'$low' $text{'ssub_invalidipr'}");
			!$hi || &check_ipaddress($hi) ||
				&error("'$hi' $text{'ssub_invalidipr'}");
			$rng = { 'name' => 'range',
				 'values' => [ ($dyn ? "dynamic-bootp" : ()),
					       $low, ($hi ? $hi : ()) ] };
			push(@rng, $rng);
			}
		&save_directive($sub, "range", \@rng, 1);
		&parse_params($sub, 0);

#		$npar = &get_parent_config();
#		$nindent = 0;
#		if ($in{'parent'} ne "") {
#			$nindent = 1;
#			if ($in{'parent'} < @{$npar->{'members'}}) {
#				$npar = $npar->{'members'}->[$in{'parent'}];
#				}
#			}
		if (!npar || $in{'assign'} > 0 && $npar->{'name'} ne "shared-network") {
			&error($text{'sgroup_echanged'});
			}
		if ($in{'new'}) {
			# save acl for new network
			&save_dhcpd_acl('rw','sub',\%access,$in{'network'});
			# Add to the end of the parent structure
			&save_directive($npar, [ ], [ $sub ], $nindent);
			}
		elsif ($par eq $npar) {
			# Update the subnet
			&save_directive($par, [ $sub ], [ $sub ], $nindent);
			}
		else {
			# Move the subnet
			if ($par->{'name'} eq "shared-network") {
				@subnets = &find("subnet", $par->{'members'});
				if (@subnets < 2) {
					&error(&text('ssub_nosubnet', $par->{'values'}->[0]));
					}
				}
			&save_directive($par, [ $sub ], [ ], 0);
			&save_directive($npar, [ ], [ $sub ], $nindent);
			}
		}
	}
&flush_file_lines();
if ($in{'delete'}) {
	# Delete this subnet
	if ($in{'hosts'} eq "" && $in{'groups'} eq "") {
		&drop_dhcpd_acl('sub', \%access, $sub->{'values'}->[0]);
		&save_directive($par, [ $sub ], [ ], 0);
		&flush_file_lines();
		}
	else {
		&unlock_file($config{'dhcpd_conf'});
		&redirect("confirm_delete.cgi?sidx=$in{'sidx'}&idx=$in{'idx'}"
			."\&type=1");
		exit;
		}
	}
&unlock_file($config{'dhcpd_conf'});
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
	    'subnet', "$sub->{'values'}->[0]/$sub->{'values'}->[2]", \%in);

&redirect($in{'ret'} eq "shared" ? "edit_shared.cgi?idx=$in{'sidx'}" : "");
   0707010002fc09000081e40000000000000002000000013ac038a1000002c0000000200000000000000000000000000000001600000003reloc/dhcpd/start.cgi #!/usr/local/bin/perl
# start.cgi
# Attempt to start dhcpd
require './dhcpd-lib.pl';
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_papply'}") unless $access{'apply'};

$whatfailed = $text{'start_failstart'};
if (!-r $config{'lease_file'}) {
	# first time.. need to create the lease file
	$config{'lease_file'} =~ /^(\S+)\/([^\/]+)$/;
	if (!-d $1) { mkdir($1, 0755); }
	open(LEASE, ">$config{'lease_file'}");
	close(LEASE);
	}
$out = &backquote_logged("$config{'dhcpd_path'} -cf $config{'dhcpd_conf'} $config{'interfaces'} 2>&1");
if ($?) {
	&error("<pre>$out</pre>");
	}
&webmin_log("start");
&redirect("");

0707010003554e000041ed0000000000000001000000053ac03bd800000000000000200000000000000000000000000000000f00000003reloc/dnsadmin    0707010003554f000081a40000000000000002000000013ac0388a00000b94000000200000000000000000000000000000001f00000003reloc/dnsadmin/acl_security.pl    
require './dns-lib.pl';

# acl_security_form(&options)
# Output HTML for editing security options for the dnsadmin module
sub acl_security_form
{
print "<tr> <td valign=top rowspan=5><b>Domains this user can edit</b></td>\n";
print "<td rowspan=5 valign=top>\n";
printf "<input type=radio name=zones_def value=1 %s> %s\n",
	$_[0]->{'zones'} eq '*' ? 'checked' : '', "All zones";
printf "<input type=radio name=zones_def value=0 %s> %s<br>\n",
	$_[0]->{'zones'} eq '*' ? '' : 'checked', "Selected..";
print "<select name=zones multiple size=5>\n";
local $conf = &get_config();
local @zones = ( &find_config("primary", $conf),
		 &find_config("secondary", $conf) );
local ($z, %zcan);
map { $zcan{$_}++ } split(/\s+/, $_[0]->{'zones'});
foreach $z (sort { $a->{'value'} cmp $b->{'value'} } @zones) {
	local $v = $z->{'values'}->[0];
	printf "<option value='%s' %s>%s\n",
		$v, $zcan{$v} ? "selected" : "",
		&arpa_to_ip($v);
	}
print "</select></td>\n";

print "<td><b>Can create master zones?</b></td> <td>\n";
printf "<input type=radio name=master value=1 %s> Yes\n",
	$_[0]->{'master'} ? "checked" : "";
printf "<input type=radio name=master value=0 %s> No</td> </tr>\n",
	$_[0]->{'master'} ? "" : "checked";

print "<tr> <td><b>Can create slave zones?</b></td> <td>\n";
printf "<input type=radio name=slave value=1 %s> Yes\n",
	$_[0]->{'slave'} ? "checked" : "";
printf "<input type=radio name=slave value=0 %s> No</td> </tr>\n",
	$_[0]->{'slave'} ? "" : "checked";

print "<tr> <td><b>Can edit master zone defaults?</b></td> <td>\n";
printf "<input type=radio name=defaults value=1 %s> Yes\n",
	$_[0]->{'defaults'} ? "checked" : "";
printf "<input type=radio name=defaults value=0 %s> No</td> </tr>\n",
	$_[0]->{'defaults'} ? "" : "checked";

print "<tr> <td><b>Can update reverse addresses in any domain?</b></td> <td>\n";
printf "<input type=radio name=reverse value=1 %s> Yes\n",
	$_[0]->{'reverse'} ? "checked" : "";
printf "<input type=radio name=reverse value=0 %s> No</td> </tr>\n",
	$_[0]->{'reverse'} ? "" : "checked";

print "<tr> <td><b>Can multiple addresses have the same IP?</b></td> <td>\n";
printf "<input type=radio name=multiple value=1 %s> Yes\n",
	$_[0]->{'multiple'} ? "checked" : "";
printf "<input type=radio name=multiple value=0 %s> No</td> </tr>\n",
	$_[0]->{'multiple'} ? "" : "checked";

print "<tr> <td><b>Restrict zone files to directory</b></td>\n";
printf "<td colspan=3><input name=dir size=30 value='%s'> %s</td> </tr>\n",
	$_[0]->{'dir'}, &file_chooser_button("dir", 1);
}

# acl_security_save(&options)
# Parse the form for security options for the dnsadmin module
sub acl_security_save
{
if ($in{'zones_def'}) {
	$_[0]->{'zones'} = "*";
	}
else {
	$_[0]->{'zones'} = join(" ", split(/\0/, $in{'zones'}));
	}
$_[0]->{'master'} = $in{'master'};
$_[0]->{'slave'} = $in{'slave'};
$_[0]->{'defaults'} = $in{'defaults'};
$_[0]->{'reverse'} = $in{'reverse'};
$_[0]->{'multiple'} = $in{'multiple'};
$_[0]->{'dir'} = $in{'dir'};
}

07070100035550000081e40000000000000002000000013ac0388800000465000000200000000000000000000000000000001e00000003reloc/dnsadmin/change_soa.cgi #!/usr/local/bin/perl
# change_soa.cgi
# Saves changes to the SOA record from edit_primary.cgi

require './dns-lib.pl';
$whatfailed = "Failed to save domain";
&ReadParse();
$d = $in{domain};

# Get the domain being edited
&get_primary($d);
for($i=0; $i<@name; $i++) {
	if ($type[$i] eq "SOA") { $soa = $i; last; }
	}

# Check user inputs
$in{serv} =~ /^[A-Za-z0-9\-\_\.]+$/ ||
	&error("$in{serv} is not a valid server hostname");
$in{serv} = &make_full($in{serv}, "$d.");
$in{mail} =~ /^[A-Za-z0-9\-\_\.]+\@[A-Za-z0-9\-\_\.]+$/ ||
	&error("$in{mail} doesn't look like a valid email address");
$in{mail} =~ s/\@/\./g; $in{mail} .= ".";
$in{refresh} =~ /^[0-9]+$/ ||
	&error("$in{refresh} is not a valid refresh period");
$in{retry} =~ /^[0-9]+$/ ||
	&error("$in{retry} is not a valid retry period");
$in{expire} =~ /^[0-9]+$/ ||
	&error("$in{expire} is not a valid expire time");
$in{min} =~ /^[0-9]+$/ ||
	&error("$in{min} is not a valid minumum TTL");

# Save and bounce back
$data[$soa] = "$in{serv} $in{mail} $in{serial} $in{refresh} $in{retry} $in{expire} $in{min}";
&save_primary($d);
&redirect("edit_primary.cgi?$d");

   0707010003555e000081a40000000000000002000000013ac0388a000000b3000000200000000000000000000000000000001a00000003reloc/dnsadmin/config-aix soa_style=0
show_list=0
nslookup_pathname=nslookup
named_pid_file=/etc/named.pid
named_pathname=/usr/sbin/named
ping_pathname=ping
named_boot_file=/etc/named.boot
records_order=0
 0707010003555f000081a40000000000000002000000013ac0388a000000bc000000200000000000000000000000000000002300000003reloc/dnsadmin/config-cobalt-linux    soa_style=0
show_list=0
nslookup_pathname=nslookup
named_pid_file=/var/run/named.pid
named_pathname=/usr/sbin/named
ping_pathname=ping -c 1
named_boot_file=/etc/named.boot
records_order=0
07070100035560000081a40000000000000002000000013ac03889000000bc000000200000000000000000000000000000002300000003reloc/dnsadmin/config-debian-linux    nslookup_pathname=nslookup
named_pid_file=/var/run/named.pid
named_pathname=/usr/sbin/named
ping_pathname=ping -c 1
named_boot_file=/etc/named.boot
show_list=0
soa_style=0
records_order=0
07070100035561000081a40000000000000002000000013ac0388a000000c1000000200000000000000000000000000000002700000003reloc/dnsadmin/config-debian-linux-2.2    nslookup_pathname=nslookup
named_pid_file=/var/run/named.pid
named_pathname=/usr/sbin/named
ping_pathname=ping -c 1
named_boot_file=/etc/bind/named.boot
show_list=0
soa_style=0
records_order=0
   07070100035562000081a40000000000000002000000013ac0388a000000bf000000200000000000000000000000000000001e00000003reloc/dnsadmin/config-freebsd soa_style=0
show_list=0
nslookup_pathname=nslookup
named_pid_file=/var/run/named.pid
named_pathname=/usr/sbin/named
ping_pathname=ping
named_boot_file=/etc/namedb/named.boot
records_order=0

 070701000355fb000081a40000000000000002000000013ac03889000000b7000000200000000000000000000000000000001b00000003reloc/dnsadmin/config-hpux    soa_style=0
show_list=0
nslookup_pathname=nslookup
named_pid_file=/var/run/named.pid
named_pathname=/usr/sbin/named
ping_pathname=ping
named_boot_file=/etc/named.boot
records_order=0
 07070100035692000081a40000000000000002000000013ac0388a000000b7000000200000000000000000000000000000001b00000003reloc/dnsadmin/config-irix    nslookup_pathname=nslookup
named_pid_file=/var/tmp/named.pid
named_pathname=/usr/sbin/named
soa_style=0
ping_pathname=ping
show_list=0
named_boot_file=/etc/named.boot
records_order=0
 07070100035693000081a40000000000000002000000013ac0388a000000bc000000200000000000000000000000000000002100000003reloc/dnsadmin/config-open-linux  soa_style=0
show_list=0
nslookup_pathname=nslookup
named_pid_file=/var/run/named.pid
named_pathname=/usr/sbin/named
ping_pathname=ping -c 1
named_boot_file=/etc/named.boot
records_order=0
07070100035694000081a40000000000000002000000013ac0388a000000be000000200000000000000000000000000000001e00000003reloc/dnsadmin/config-openbsd soa_style=0
show_list=0
nslookup_pathname=nslookup
named_pid_file=/var/run/named.pid
named_pathname=/usr/sbin/named
ping_pathname=ping
named_boot_file=/var/named/named.boot
records_order=0

  07070100035695000081a40000000000000002000000013ac0388a000000b6000000200000000000000000000000000000002100000003reloc/dnsadmin/config-openserver  soa_style=0
show_list=0
nslookup_pathname=nslookup
named_pid_file=/etc/named.pid
named_pathname=/usr/sbin/in.named
ping_pathname=ping
named_boot_file=/etc/named.boot
records_order=0
  07070100035696000081a40000000000000002000000013ac0388a000000be000000200000000000000000000000000000001b00000003reloc/dnsadmin/config-osf1    nslookup_pathname=nslookup
named_pid_file=/var/run/named.pid
named_pathname=/usr/sbin/named
soa_style=0
ping_pathname=ping
show_list=0
named_boot_file=/etc/namedb/named.boot
records_order=0
  07070100035697000081a40000000000000002000000013ac03889000000bc000000200000000000000000000000000000002300000003reloc/dnsadmin/config-redhat-linux    soa_style=0
show_list=0
nslookup_pathname=nslookup
named_pid_file=/var/run/named.pid
named_pathname=/usr/sbin/named
ping_pathname=ping -c 1
named_boot_file=/etc/named.boot
records_order=0
07070100035698000081a40000000000000002000000013ac03889000000bc000000200000000000000000000000000000002600000003reloc/dnsadmin/config-slackware-linux soa_style=0
show_list=0
nslookup_pathname=nslookup
named_pid_file=/var/run/named.pid
named_pathname=/usr/sbin/named
ping_pathname=ping -c 1
named_boot_file=/etc/named.boot
records_order=0
07070100035699000081a40000000000000002000000013ac03889000000b6000000200000000000000000000000000000001e00000003reloc/dnsadmin/config-solaris soa_style=0
show_list=0
nslookup_pathname=nslookup
named_pid_file=/etc/named.pid
named_pathname=/usr/sbin/in.named
ping_pathname=ping
named_boot_file=/etc/named.boot
records_order=0
  0707010003569a000081a40000000000000002000000013ac03889000000bc000000200000000000000000000000000000002100000003reloc/dnsadmin/config-suse-linux  soa_style=1
show_list=0
nslookup_pathname=nslookup
named_pid_file=/var/run/named.pid
named_pathname=/usr/sbin/named
ping_pathname=ping -c 1
named_boot_file=/etc/named.boot
records_order=0
0707010003569b000081a40000000000000002000000013ac0388a000000bc000000200000000000000000000000000000002200000003reloc/dnsadmin/config-turbo-linux soa_style=0
show_list=0
nslookup_pathname=nslookup
named_pid_file=/var/run/named.pid
named_pathname=/usr/sbin/named
ping_pathname=ping -c 1
named_boot_file=/etc/named.boot
records_order=0
0707010003569c000081a40000000000000002000000013ac0388a000000b6000000200000000000000000000000000000001f00000003reloc/dnsadmin/config-unixware    soa_style=0
show_list=0
nslookup_pathname=nslookup
named_pid_file=/etc/named.pid
named_pathname=/usr/sbin/in.named
ping_pathname=ping
named_boot_file=/etc/named.boot
records_order=0
  0707010003569d000081a40000000000000002000000013ac0388800000138000000200000000000000000000000000000001b00000003reloc/dnsadmin/config.info    named_boot_file=Primary configuration file,0
show_list=Display domains as,1,0-Icons,1-List
soa_style=Serial number style,1,0-Running number,1-Date based (YYYYMMDDnn)
records_order=Order to display records in,1,1-Alphabetical,0-As added
named_pid_file=Process ID file,0
named_pathname=Full path to <i>named</i>,0
0707010003569e000081a40000000000000002000000013ac0388a00000169000000200000000000000000000000000000001e00000003reloc/dnsadmin/config.info.de named_boot_file=Prim&auml;re Konfigurationsdatei,0
show_list=Zeige Domains als,1,0-Symbole,1-Liste
soa_style=Muster f&uuml;r Folge-Nummer,1,0-Laufende Zahl,1-Datumsbasiert (JJJJMMTTnn)
records_order=Reihenfolge um Eintr&auml;ge anzuzeigen,1,1-Alphabetisch,0-Wie hinzugef&uuml;gt
named_pid_file=ProZess ID Datei,0
named_pathname=Absoluter Pfad zu <i>named</i>,0
   0707010003569f000081a40000000000000002000000013ac0388800000179000000200000000000000000000000000000001e00000003reloc/dnsadmin/config.info.es named_boot_file=Archivo de configuraci髇 primaria,0
show_list=Mostrar dominios como,1,0-Iconos,1-Lista
soa_style=Estilo de N鷐ero serial,1,0-N鷐ero en ejecuci髇,1-Basado en fecha (AAAAMMDDnn)
records_order=Orden en que mostrar los registros,1,1-Alfab閠icamente,0-Seg鷑 se a馻dieron
named_pid_file=Archivo de ID de proceso,0
named_pathname=Trayectoria completa a <i>named</i>,0
   070701000356a0000081a40000000000000002000000013ac0388a00000177000000200000000000000000000000000000001e00000003reloc/dnsadmin/config.info.fr named_boot_file=Fichier de configuration primaire,0
show_list=Afficher les domaines comme,1,0-Ic鬾es,1-Liste
soa_style=Style des num閞os de s閞ie,1,0-Num閞o,1-Bas sur la date (AAAAMMJJnn)
records_order=Ordre d'affichage des enregistrements,1,1-Alphabetique,0-Comme ajout
named_pid_file=Fichier de num閞o de processus,0
named_pathname=Chemin complet de <i>named</i>,0
 070701000356a1000081a40000000000000002000000013ac0388a00000174000000200000000000000000000000000000001e00000003reloc/dnsadmin/config.info.pl named_boot_file=Podstawowy plik konfiguracyjny,0
show_list=Wy秝ietlaj domeny jako,1,0-Ikony,1-List
soa_style=Posta numeru seryjnego,1,0-Numer Kolejny,1-Oparty na dacie (RRRRMMDDnn)
records_order=Kolejno舵 wy秝ietlania rekord體,1,1-Alfabetycznie,0-W&nbsp;kolejno禼i dodawania
named_pid_file=Plik z&nbsp;numerem ID procesu,0
named_pathname=Pe硁a 禼ie縦a do <i>named</i>,0
070701000356a2000081a40000000000000002000000013ac0388a00000152000000200000000000000000000000000000002100000003reloc/dnsadmin/config.info.ru_RU  named_pid_file=ID 羿殡 镳铞羼襦,0
named_pathname=项腠 矬螯  <i>named</i>,0
soa_style=羊桦 皴痂轫钽 眍戾疣,1,0-项耠邃钼囹咫 眍戾疣,1-袜 铖眍忮 溧螓 (妹妹烫哪nn)
show_list=项赅琨忄螯 漕戾睇 赅,1,0-翔牝钽疣祆,1-扬桉铌
records_order=语铕漕麒螯 玎镨耔 镱,1,1-离羿忤蝮,0-湾箫铕漕麇眄
named_boot_file=襄疴梓睇 羿殡 觐眙桡箴圉梃,0
  070701000356a3000081a40000000000000002000000013ac0388a00000152000000200000000000000000000000000000002100000003reloc/dnsadmin/config.info.ru_SU  named_boot_file=鹋易赊钨 屏侍 讼纹汕找撩缮,0
show_list=鹣肆谫琢载 南团钨 肆,1,0-鹕嗽锨伊屯,1-笮捎纤
soa_style=笤商 优疑饰锨 蜗团伊,1,0-鹣犹拍献猎盘匚倥 蜗团伊,1-盍 嫌蜗着 牧再 (珑珑眄滗nn)
records_order=跣弦涯限稍 诹猩由 邢,1,1-崽屏咨哉,0-钆招弦涯限盼蜗
named_pid_file=ID 屏侍 幸厦庞恿,0
named_pathname=鹣涛偈 姓载  <i>named</i>,0
  070701000356a4000081a40000000000000002000000013ac0388a0000013a000000200000000000000000000000000000001e00000003reloc/dnsadmin/config.info.sv named_boot_file=Fil f鰎 prim鋜a inst鋖lningar,0
show_list=Visa dom鋘er som,1,0-Ikoner,1-Lista
soa_style=Serienummer,1,0-L鰌ande nummer,1-Datumbaserade (排排MMDDnn)
records_order=Visa poster ordnade,1,1-efter namn,0-kronologiskt
named_pid_file=Process-ID-fil,0
named_pathname=Fullst鋘dig s鰇v鋑 till <i>named</i>,0
  070701000356a5000081a40000000000000002000000013ac0388a00000154000000200000000000000000000000000000001e00000003reloc/dnsadmin/config.info.tr named_boot_file=Birincil yap齦and齬ma dosyas,0
show_list=Alanlar g鰎黱t黮eme 㧐kli,1,0-輐onlar,1-Liste
soa_style=Seri numaras tipi,1,0-莂lma numaras,1-Tarihe g鰎e (YYYYAAGGss)
records_order=Kay齮lar g鰎黱t黮eme 㧐kli,1,1-Alfabetik olarak,0-Eklenme s齬as齨a g鰎e
named_pid_file=PID dosyas,0
named_pathname=<i>named</i>'in tam yolu,0
070701000356a6000081a40000000000000002000000013ac0388a000000ed000000200000000000000000000000000000002100000003reloc/dnsadmin/config.info.zh_CN  named_boot_file=主配置文件,0
show_list=显示域的形式,1,0-图表,1-列表
soa_style=系列号风格,1,0-运行号码,1-基于日期 (YYYYMMDDnn)
records_order=显示记录的顺序,1,1-字母,0-添加
named_pid_file=进程号文件,0
named_pathname=<i>named</i>的全路径,0
   070701000356a7000081a40000000000000002000000013ac0388a00000109000000200000000000000000000000000000002600000003reloc/dnsadmin/config.info.zh_TW.Big5 named_boot_file=璶舱篈郎,0
show_list=呼办陪ボよΑ,1,0-瓜ボ,1-
soa_style=腹妓Α,1,0-患糤抖,1-ら戳膀娄 (YYYYMMDDnn)
records_order=陪ボ魁逼抖,1,1-ㄌ沮嘿,0-ㄌ沮糤丁
named_pid_file=祘絪腹郎,0
named_pathname= <i>named</i> Ч俱隔畖,0
   070701000356a8000081e40000000000000002000000013ac0388a00000b7b000000200000000000000000000000000000002100000003reloc/dnsadmin/create_master.cgi  #!/usr/local/bin/perl
# create_master.cgi
# Create a new master zone

require './dns-lib.pl';
&ReadParse();
$whatfailed = "Failed to create zone";
%access = &get_module_acl();
$access{'master'} || &error("You cannot create master zones");
&lock_file($config{'named_boot_file'});
$conf = &get_config();

# validate inputs
if ($in{'rev'}) {
	$in{'zone'} =~ /^[\d\.]+$/ ||
		&error("'$in{'zone'}' is not a valid network");
	$in{'zone'} = &ip_to_arpa($in{'zone'});
	}
else {
	$in{'zone'} =~ /^[A-Za-z0-9\-\.]+$/ ||
		&error("'$in{'zone'}' is not a valid domain name");
	$in{'zone'} !~ /^[0-9\.]+$/ ||
		&error("'$in{'zone'}' must be a domain, not a network");
	}
$in{'zone'} =~ s/\.$//g;
$in{'master'} =~ /^[A-Za-z0-9\-\.]+$/ ||
	&error("'$in{'master'}' is not a valid master server");
if ($in{'master'} !~ /\.$/) { $in{'master'} .= "."; }
$in{'email'} =~ /^\S+\@\S+$/ ||
	&error("'$in{'email'}' is not a valid email address");
$in{'email'} =~ s/\@/\./g;
if ($in{'email'} !~ /\.$/) { $in{'email'} .= "."; }
$in{'refresh'} =~ /^\S+$/ ||
        &error("'$in{'refresh'}' is not a valid refresh time");
$in{'retry'} =~ /^\S+$/ ||
        &error("'$in{'retry'}' is not a valid transfer retry time");
$in{'expiry'} =~ /^\S+$/ ||
        &error("'$in{'expiry'}' is not a valid expiry time");
$in{'minimum'} =~ /^\S+$/ ||
        &error("'$in{'minimum'}' is not a valid default TTL");
$base = $access{'dir'} eq '/' ? &base_directory($conf) : $access{'dir'};
if (!$in{'file_def'}) {
	$in{'file'} =~ /^\S+$/ ||
		&error("'$in{'file'}' is not a valid filename");
	if ($in{'file'} !~ /^\//) {
		$in{'file'} = $base."/".$in{'file'};
		}
	&allowed_zone_file(\%access, $in{'file'}) ||
		&error("'$in{'file'}' is not an allowable zone file");
	}
elsif ($in{'rev'}) {
	# create filename for reverse zone
	$in{'file'} = $base."/".&arpa_to_ip($in{'zone'}).".rev";
	}
else {
	# create filename for forward zone
	$in{'file'} = $base."/$in{'zone'}.hosts";
	}
&lock_file($in{'file'});
open(ZONE, ">$in{'file'}") || &error("Failed to create '$in{'file'}' : $?");
close(ZONE);

# create the SOA and NS records
if ($config{'soa_style'} == 1) {
	$serial = &date_serial()."00";
	}
else {
	$serial = time();
	}
$vals = "$in{'master'} $in{'email'} (\n".
        "\t\t\t$serial\n".
        "\t\t\t$in{'refresh'}\n".
        "\t\t\t$in{'retry'}\n".
        "\t\t\t$in{'expiry'}\n".
        "\t\t\t$in{'minimum'} )";
&create_record($in{'file'}, "$in{'zone'}.", undef, "IN", "SOA", $vals);
&create_record($in{'file'}, "$in{'zone'}.", undef, "IN", "NS", $in{'master'});
&unlock_file($in{'file'});

# create the zone directive
&create_zone({ 'name' => 'primary', 'values' => [ $in{'zone'}, $in{'file'} ]});
&unlock_file($config{'named_boot_file'});
&webmin_log("create", "master", $in{'zone'}, \%in);

# Add the new zone to the access list
if ($access{'zones'} ne '*') {
        $access{'zones'} .= " ".$in{'zone'};
        &save_module_acl(\%access);
        }
&redirect("");

 070701000356a9000081e40000000000000002000000013ac0388a00000811000000200000000000000000000000000000002000000003reloc/dnsadmin/create_slave.cgi   #!/usr/local/bin/perl
# create_slave.cgi
# Create a new slave zone

require './dns-lib.pl';
&ReadParse();
$whatfailed = "Failed to create slave zone";
%access = &get_module_acl();
$access{'slave'} || &error("You are not allowed to create slave zones");

# validate inputs
if ($in{'rev'}) {
        $in{'zone'} =~ /^[\d\.]+$/ ||
                &error("'$in{'zone'}' is not a valid network");
        $in{'zone'} = &ip_to_arpa($in{'zone'});
        }
else {
        $in{'zone'} =~ /^[A-z0-9\-\.]+$/ ||
                &error("'$in{'zone'}' is not a valid domain name");
        }
$in{'zone'} =~ s/\.$//g;
@masters = split(/\s+/, $in{'masters'});
foreach $m (@masters) {
        &check_ipaddress($m) ||
                &error("'$m' is not a valid master server address");
        }
if (!@masters) {
        &error("You must enter at least one master server");
        }
$base = $access{'dir'} eq '/' ? &base_directory($conf) : $access{'dir'};
if ($in{'file_def'} == 0) {
        $in{'file'} =~ /^\S+$/ ||
                &error("'$in{'file'}' is not a valid filename");
        if ($in{'file'} !~ /^\//) {
                $file = $base."/".$in{'file'};
                }
        else { $file = $in{'file'}; }
	&allowed_zone_file(\%access, $file) ||
		&error("'$file' is not an allowable zone file");
	if (!-r $file) {
		&lock_file($file);
		open(ZONE, "> $file") ||
			&error("Failed to create '$file' : $?");
		close(ZONE);
		&unlock_file($file);
		}
        }
elsif ($in{'file_def'} == 2) {
	if ($in{'rev'}) {
		$file = $base."/".&arpa_to_ip($in{'zone'}).".rev";
		}
	else {
		$file = $base."/".$in{'zone'}.".hosts";
		}
	}


@vals = ($in{'zone'}, @masters);
if ($file) { push(@vals, $file); }
&lock_file($config{'named_boot_file'});
&create_zone({ 'name' => 'secondary', 'values' => \@vals });
&unlock_file($config{'named_boot_file'});
&webmin_log("create", "slave", $in{'zone'}, \%in);

# Add the new zone to the access list
if ($access{'zones'} ne '*') {
        $access{'zones'} .= " ".$in{'zone'};
        &save_module_acl(\%access);
        }
&redirect("");

   070701000356aa000081a40000000000000002000000013ac0388900000ad1000000200000000000000000000000000000001800000003reloc/dnsadmin/db.cache   ;       This file holds the information on root name servers needed to
;       initialize cache of Internet domain name servers
;       (e.g. reference this file in the "cache  .  <file>"
;       configuration file of BIND domain name servers).
;
;       This file is made available by InterNIC registration services
;       under anonymous FTP as
;           file                /domain/named.root
;           on server           FTP.RS.INTERNIC.NET
;       -OR- under Gopher at    RS.INTERNIC.NET
;           under menu          InterNIC Registration Services (NSI)
;              submenu          InterNIC Registration Archives
;           file                named.root
;
;       last update:    Aug 22, 1997
;       related version of root zone:   1997082200
;
;
; formerly NS.INTERNIC.NET
;
.                        3600000  IN  NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
;
; formerly NS1.ISI.EDU
;
.                        3600000      NS    B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET.      3600000      A     128.9.0.107
;
; formerly C.PSI.NET
;
.                        3600000      NS    C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12
;
; formerly TERP.UMD.EDU
;
.                        3600000      NS    D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET.      3600000      A     128.8.10.90
;
; formerly NS.NASA.GOV
;
.                        3600000      NS    E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET.      3600000      A     192.203.230.10
;
; formerly NS.ISC.ORG
;
.                        3600000      NS    F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.      3600000      A     192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
.                        3600000      NS    G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET.      3600000      A     192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
.                        3600000      NS    H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.      3600000      A     128.63.2.53
;
; formerly NIC.NORDU.NET
;
.                        3600000      NS    I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET.      3600000      A     192.36.148.17
;
; temporarily housed at NSI (InterNIC)
;
.                        3600000      NS    J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET.      3600000      A     198.41.0.10
;
; housed in LINX, operated by RIPE NCC
;
.                        3600000      NS    K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET.      3600000      A     193.0.14.129 
;
; temporarily housed at ISI (IANA)
;
.                        3600000      NS    L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET.      3600000      A     198.32.64.12
;
; housed in Japan, operated by WIDE
;
.                        3600000      NS    M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33
; End of File
   070701000356ab000081a40000000000000002000000013ac0388a0000003f000000200000000000000000000000000000001a00000003reloc/dnsadmin/defaultacl zones=*
master=1
slave=1
defaults=1
reverse=1
multiple=1
dir=/
 070701000356ac000081e40000000000000002000000013ac0388a00000dcb000000200000000000000000000000000000001f00000003reloc/dnsadmin/delete_zone.cgi    #!/usr/local/bin/perl
# delete_zone.cgi
# Delete a master or slave zone

require './dns-lib.pl';
&ReadParse();
$conf = &get_config();
$zconf = $conf->[$in{'index'}];
%access = &get_module_acl();
&can_edit_zone(\%access, $zconf->{'values'}->[0]) ||
        &error("You are not allowed to delete this zone");

$rev = $zconf->{'values'}->[0] =~ /in-addr.arpa/i;
if (!$in{'confirm'}) {
	# Ask the user if he is sure ..
	&header("Delete Zone", "");
	print "<hr>\n";

	print "<center><p>Are you sure you want to delete the zone <tt>",
		&arpa_to_ip($zconf->{'values'}->[0]),"</tt> ? All records ",
		"and the zone file will  be deleted.<p>\n";
	print "<form action=delete_zone.cgi>\n";
	print "<input type=hidden name=index value=$in{'index'}>\n";
	print "<input type=submit name=confirm value='$text{'delete'}'><br>\n";
	print $rev ? "Delete forward records in other zones ?\n" :
		     "Delete reverse records in other zones ?\n";
	print "<input type=radio name=rev value=1 checked> $text{'yes'}\n";
	print "<input type=radio name=rev value=0> $text{'no'}\n";
	print "</form></center>\n";
	print "<hr>\n";
	&footer("", "record types");
	exit;
	}

if (!$rev && $in{'rev'} && $zconf->{'name'} eq 'primary') {
	# find and delete reverse records
	&lock_file($zconf->{'values'}->[1]);
	@recs = &read_zone_file($zconf->{'values'}->[1],
				$zconf->{'values'}->[0]);
	foreach $r (@recs) {
		next if ($r->{'type'} ne "A");
		($orevconf, $orevfile, $orevrec) =
			&find_reverse($r->{'values'}->[0]);
		if ($orevrec && &can_edit_reverse($orevconf) &&
		    $r->{'name'} eq $orevrec->{'values'}->[0] &&
		    $r->{'values'}->[0] eq &arpa_to_ip($orevrec->{'name'})) {
			&lock_file($orevrec->{'file'});
			&delete_record($orevrec->{'file'} , $orevrec);
			&lock_file($orevfile);
			@orrecs = &read_zone_file(
				$orevfile, $orevconf->{'values'}->[0]);
			&bump_soa_record($orevfile, \@orrecs);
			}
		}
	}
elsif ($rev && $in{'rev'} && $zconf->{'name'} eq 'primary') {
	# find and delete forward records
	&lock_file($zconf->{'values'}->[1]);
	@recs = &read_zone_file($zconf->{'values'}->[1],
			        $zconf->{'values'}->[0]);
	foreach $r (@recs) {
		next if ($r->{'type'} ne "PTR");
		($ofwdconf, $ofwdfile, $ofwdrec) =
			&find_forward($r->{'values'}->[0]);
		if ($ofwdrec && &can_edit_zone($ofwdconf->{'values'}->[0]) &&
		    &arpa_to_ip($r->{'name'}) eq $ofwdrec->{'values'}->[0] &&
		    $r->{'values'}->[0] eq $ofwdrec->{'name'}) {
			&lock_file($ofwdrec->{'file'});
			&delete_record($ofwdrec->{'file'} , $ofwdrec);
			&lock_file($ofwdfile);
			@ofrecs = &read_zone_file($ofwdfile,
						  $ofwdconf->{'value'});
			&bump_soa_record($ofwdfile, \@ofrecs);
			}
		}
	}

&lock_file($zconf->{'file'});
&delete_zone($zconf);
if ($zconf->{'name'} eq "primary") {
	&lock_file(&absolute_path($zconf->{'values'}->[1]));
	unlink(&absolute_path($zconf->{'values'}->[1]));
	}
&unlock_all_files();
&webmin_log("delete", $zconf->{'name'} eq "primary" ? "master" : "slave",
	    $zconf->{'values'}->[0], \%in);

# remove from acl files
&read_acl(undef, \%wusers);
foreach $u (keys %wusers) {
        %uaccess = &get_module_acl($u);
        if ($uaccess{'zones'} ne '*') {
                $uaccess{'zones'} =
			join(' ', grep { $_ ne $zconf->{'values'}->[0] }
                                  split(/\s+/, $uaccess{'zones'}));
                &save_module_acl(\%uaccess, $u);
                }
        }
&redirect("");

# can_edit_reverse(&zone)
sub can_edit_reverse
{
return $access{'reverse'} || &can_edit_zone(\%access, $_[0]->{'values'}->[0]);
}

 070701000356ad000081a40000000000000002000000013ac0388800001461000000200000000000000000000000000000001a00000003reloc/dnsadmin/dns-lib.pl # dnsadmin common functions

do '../web-lib.pl';
&init_config();
&foreign_require("bind8", "bind8-lib.pl");
do '../bind8/records-lib.pl';

# mapping between record types and names
%code_map = ("A", "Address", "NS", "Name Server", "CNAME", "Name Alias",
	     "MX", "Mail Server", "HINFO", "Host Information", "TXT", "Text",
	     "WKS", "Well Known Service", "RP", "Responsible Person",
	     "PTR", "Reverse Address");

# get_config()
# Returns the current bind4 configuration
sub get_config
{
if (!@get_config_cache) {
        @get_config_cache = &read_config_file($config{'named_boot_file'});
        }
return \@get_config_cache;
}

# read_config_file(filename, [dont expand includes])
# Read and parse a BIND4 format config file
sub read_config_file
{
# read primary config file
local $lnum = 0;
local $n = 0;
local($i, $j, @rv);
open(CONF, $_[0]);
while(<CONF>) {
	s/\r|\n//g;	# strip newline
	s/;.*$//g;	# strip comments
	s/\s+$//g;	# strip trailing spaces
	if (/^(\S+)\s*(.*)$/) {
		local(%dir);
		$dir{'name'} = $1;
		$dir{'value'} = $2;
		$dir{'values'} = [ split(/\s+/, $2) ];
		$dir{'line'} = $lnum;
		$dir{'file'} = $_[0];
		$dir{'index'} = $n++;
		push(@rv, \%dir);
		}
	$lnum++;
	}
close(CONF);

# expand include directives
for($i=0; $i<@rv; $i++) {
	if ($rv[$i]->{'name'} eq "include" && !$_[1]) {
		# replace this include directive
		$inc = $rv[$i]->{'value'};
		if ($inc !~ /^\//) {
			$inc = &base_directory(\@rv)."/".$inc;
			}
		@inc = &read_config_file($inc, 1);

		# update index of included structures
		for($j=0; $j<@inc; $j++) {
			$inc[$j]->{'index'} += $rv[$i]->{'index'};
			}

		# update index of directives after include
		for($j=$i+1; $j<@rv; $j++) {
			$rv[$j]->{'index'} += scalar(@inc) - 1;
			}

		splice(@rv, $i--, 1, @inc);
		}
	}
return @rv;
}

# find_config(name, &array)
sub find_config
{
local($c, @rv);
foreach $c (@{$_[1]}) {
        if ($c->{'name'} eq $_[0]) {
                push(@rv, $c);
                }
        }
return @rv ? wantarray ? @rv : $rv[0]
           : wantarray ? () : undef;
}

# base_directory([&config])
# Returns the base directory for include and domain files
sub base_directory
{
$conf = @_ ? $_[0] : &get_config();
$dir = &find_config("directory", $conf);
if ($dir) { return $dir->{'values'}->[0]; }
$config{'named_boot_file'} =~ /^(.*)\/[^\/]+$/;
return $1;
}

# create_zone(&details)
sub create_zone
{
local(@v) = @{$_[0]->{'values'}};
open(ZONE, ">> $config{'named_boot_file'}");
print ZONE $_[0]->{'name'}.(@v ? " ".join(" ", @v) : "")."\n";
close(ZONE);
}

# modify_zone(&old, &details)
sub modify_zone
{
local(@v) = @{$_[1]->{'values'}};
&replace_file_line($_[0]->{'file'}, $_[0]->{'line'},
		   $_[1]->{'name'}.(@v ? " ".join(" ", @v) : "")."\n");
}

# delete_zone(&old)
sub delete_zone
{
&replace_file_line($_[0]->{'file'}, $_[0]->{'line'});
}

# find_reverse(address)
# Returns the zone and record structures for the PTR record for some address
sub find_reverse
{
local($conf, @zl, $rev, $z, $revconf, $revfile, $revrec, @revrecs, @octs, $rr);

# find reverse domain
$conf = &get_config();
@zl = &find_config("primary", $conf);
@octs = split(/\./, $_[0]);
for($i=2; $i>=0; $i--) {
	$rev = &ip_to_arpa(join('.', @octs[0..$i]));
	$rev =~ s/\.$//g;
	foreach $z (@zl) {
		if (lc($z->{'values'}->[0]) eq $rev) {
			# found the reverse master domain
			$revconf = $z;
			last;
			}
		}
	}

# find reverse record
if ($revconf) {
        $revfile = $revconf->{'values'}->[1];
        @revrecs = &read_zone_file($revfile, $revconf->{'values'}->[0]);
        local $addr = &ip_to_arpa($_[0]);
        foreach $rr (@revrecs) {
                if ($rr->{'type'} eq "PTR" &&
                    lc($rr->{'name'}) eq lc($addr)) {
                        # found the reverse record
                        $revrec = $rr;
                        last;
                        }
                }
        }
return ($revconf, $revfile, $revrec);
}

# find_forward(address)
# Returns the zone and record structures for the A record for some address
sub find_forward
{
local($conf, @zl, $fwd, $z, $fwdconf, $fwdfile, $fwdrec, @fwdrecs, @octs, $rr);

# find reverse domain
local $host = $_[0]; $host =~ s/\.$//;
$conf = &get_config();
@zl = &find_config("primary", $conf);
local @parts = split(/\./, $host);
DOMAIN: for($i=1; $i<@parts; $i++) {
	local $fwd = join(".", @parts[$i .. @parts-1]);
	foreach $z (@zl) {
		local $typed;
		if (lc($z->{'values'}->[0]) eq $fwd) {
			# Found the forward master!
			$fwdconf = $z;
			last DOMAIN;
			}
		}
	}

# find forward record
if ($fwdconf) {
        $fwdfile = $fwdconf->{'values'}->[1];
        local @fwdrecs = &read_zone_file($fwdfile, $fwdconf->{'values'}->[0]);
        foreach $fr (@fwdrecs) {
                if ($fr->{'type'} eq 'A' &&
                    $fr->{'name'} eq $_[0]) {
                        # found the forward record
                        $fwdrec = $fr;
                        last;
                        }
                }
        }
return ($fwdconf, $fwdfile, $fwdrec);
}

# can_edit_zone(&access, zone)
sub can_edit_zone
{
local %zcan;
return 1 if ($access{'zones'} eq '*');
foreach (split(/\s+/, $access{'zones'})) {
        return 1 if ($_ eq $_[1]);
        }
return 0;
}

1;

   070701000356ae000081e40000000000000002000000013ac03888000004eb000000200000000000000000000000000000001c00000003reloc/dnsadmin/dns_boot.cgi   #!/usr/local/bin/perl
# dns_boot.cgi
# Create an empty named.boot file and start the name server

require './dns-lib.pl';
$whatfailed = "Download failed";
&ReadParse();
$config{'named_boot_file'} =~ /^(\/[^\/]+)/;
$named_boot_directory = $1;

&lock_file($config{'named_boot_file'});
&lock_file("$named_boot_directory/db.cache");
$boot_temp = &tempname("webmin.named.boot");
open(BOOT, "> $boot_temp");
print BOOT "directory $named_boot_directory\n";
if ($in{real} == 0) {
	# Create an empty root domain file... no need to do anything here
	}
elsif ($in{real} == 1) {
	# Try to download the root servers file from
	# ftp://rs.internic.net/domain/named.root
	&ftp_download("rs.internic.net", "/domain/named.root", 
		      "$named_boot_directory/db.cache");
	print BOOT "cache\t\t.\tdb.cache\n";
	}
elsif ($in{real} == 2) {
	# Use builtin db.cache
	system("cp ./db.cache $named_boot_directory/db.cache 2>/dev/null");
	print BOOT "cache\t\t.\tdb.cache\n";
	}
close(BOOT);
system("cp $boot_temp $config{'named_boot_file'} 2>/dev/null");
unlink($boot_temp);
&unlock_file($config{'named_boot_file'});
&unlock_file("$named_boot_directory/db.cache");
&system_logged("$config{'named_pathname'} >/dev/null 2>/dev/null </dev/null");
&webmin_log("boot");
redirect("");


 070701000356af000081e40000000000000002000000013ac0388900000f1d000000200000000000000000000000000000001f00000003reloc/dnsadmin/edit_master.cgi    #!/usr/local/bin/perl
# edit_master.cgi
# Display a form for editing a master domain

require './dns-lib.pl';
&ReadParse();
$conf = &get_config();
$zconf = $conf->[$in{'index'}];
$dom = $zconf->{'values'}->[0];
%access = &get_module_acl();
&can_edit_zone(\%access, $dom) ||
	&error("You are not allowed to edit this zone");
&header("Edit Master Zone", "");
print "<center><font size=+2>",&arpa_to_ip($dom),"</font></center>\n";

print "<hr><p>\n";
@recs = &read_zone_file($zconf->{'values'}->[1], $dom);
if ($dom =~ /in-addr.arpa/i) {
        @rcodes = ("PTR", "NS");
        }
else {
        @rcodes = ("A", "NS", "CNAME", "MX", "HINFO", "TXT", "WKS", "RP");
        }
foreach $c (@rcodes) { $rnum{$c} = 0; }
foreach $r (@recs) {
        $rnum{$r->{'type'}}++;
        if ($r->{'type'} eq "SOA") { $soa = $r; }
        }
if ($config{'show_list'}) {
        # display as list
        $mid = int((@rcodes+1)/2);
        print "<table width=100%> <tr><td width=50%>\n";
        &types_table(@rcodes[0..$mid-1]);
        print "</td><td width=50%>\n";
        &types_table(@rcodes[$mid..$#rcodes]);
        print "</td></tr> </table>\n";
        }
else {
        # display as icons
        for($i=0; $i<@rcodes; $i++) {
                push(@rlinks,
                     "edit_recs.cgi?index=$in{'index'}&type=$rcodes[$i]");
                push(@rtitles, "$code_map{$rcodes[$i]} ($rnum{$rcodes[$i]})");
                push(@ricons, "../bind8/images/$rcodes[$i].gif");
                }
        &icons_table(\@rlinks, \@rtitles, \@ricons);
        }
$file = &absolute_path($zconf->{'values'}->[1]);
print "<a href=\"edit_text.cgi?index=$in{'index'}\">Manually edit ",
      "records file</a><br>\n";

# form for editing SOA record
$v = $soa->{'values'};
print "<hr><a name=soa>\n";
print "<form action=save_master.cgi>\n";
print "<input type=hidden name=file value=\"$soa->{'file'}\">\n";
print "<input type=hidden name=num value=\"$soa->{'num'}\">\n";
print "<input type=hidden name=origin value=\"$dom\">\n";
print "<input type=hidden name=index value=\"$in{'index'}\">\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>Master Zone Parameters</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>Master server</b></td>\n";
print "<td><input name=master size=20 value=\"$v->[0]\"></td>\n";
$v->[1] =~ s/\./\@/; $v->[1] =~ s/\.$//;
print "<td><b>Email address</b></td>\n";
print "<td><input name=email size=20 value=\"$v->[1]\"></td> </tr>\n";

print "<tr> <td><b>Refresh time</b></td>\n";
print "<td><input name=refresh size=10 value=\"$v->[3]\"> secs</td>\n";
print "<td><b>Transfer retry time</b></td>\n";
print "<td><input name=retry size=10 value=\"$v->[4]\"> secs</td> </tr>\n";

print "<tr> <td><b>Expiry time</b></td>\n";
print "<td><input name=expiry size=10 value=\"$v->[5]\"> secs</td>\n";
print "<td><b>Default time-to-live</b></td>\n";
print "<td><input name=minimum size=10 value=\"$v->[6]\"> secs</td> </tr>\n";

print "</table></td></tr> </table>\n";
print "<table width=100%><tr><td valign=top align=left>\n";
print "<input type=submit value=Save></td></form>\n";
print "<form action=delete_zone.cgi>\n";
print "<input type=hidden name=index value=\"$in{'index'}\">\n";
print "<td align=right><input type=submit value=Delete>\n";
print "</td></form> </tr></table>\n";

print "<hr>\n";
&footer("", "zone list");

sub types_table
{
if ($_[0]) {
        local($i);
        print "<table border width=100%>\n";
        print "<tr $tb> <td><b>Type</b></td> <td><b>Records</b></td> </tr>\n";
        for($i=0; $_[$i]; $i++) {
                print "<tr $cb> <td><a href=\"edit_recs.cgi?",
                      "index=$in{'index'}&type=$_[$i]\">$code_map{$_[$i]}",
                      "</a></td>\n";
                print "<td>$rnum{$_[$i]}</td> </tr>\n";
                }
        print "</table>\n";
        }
}

   070701000356b0000081e40000000000000002000000013ac038890000031e000000200000000000000000000000000000001f00000003reloc/dnsadmin/edit_record.cgi    #!/usr/local/bin/perl
# edit_record.cgi
# Edit an existing record of some type

require './dns-lib.pl';
&ReadParse();
$conf = &get_config();
$zconf = $conf->[$in{'index'}];
$dom = $zconf->{'values'}->[0];
%access = &get_module_acl();
&can_edit_zone(\%access, $dom) ||
        &error("You are not allowed to edit records in this zone");
&header("Edit $code_map{$in{'type'}}", "");
print "<center><font size=+2>In ",&arpa_to_ip($dom),"</font></center>\n";
print "<hr>\n";

@recs = &read_zone_file($zconf->{'values'}->[1], $zconf->{'values'}->[0]);
&foreign_call("bind8", "record_input", $in{'index'}, $in{'type'},
	      $zconf->{'values'}->[1], $zconf->{'values'}->[0], $in{'num'},
	      $recs[$in{'num'}]);
print "<hr>\n";
&footer("edit_recs.cgi?index=$in{'index'}&type=$in{'type'}", "records");

  07070100036d20000041ed0000000000000001000000023ac03bd700000000000000200000000000000000000000000000001400000003reloc/dnsadmin/help   07070100036d2e000081a40000000000000002000000013ac0388800000f8a000000200000000000000000000000000000001f00000003reloc/dnsadmin/help/intro.html    <body bgcolor=#ffffff>
<center><img src=images/dnsadmin.gif></center>
<h2><i>This help page is incomplete</i></h2>

<hr>
<h3>Introduction</h3>
This module allows you to configure the BIND (Berkeley Internet Name Daemon)
DNS server installed on this machine. The DNS server is responsible for
converting hostnames like <i>www.foo.com</i> into IP addresses like
<i>10.1.2.3</i>, and IP addresses into hostnames.

<hr>
<h3>DNS Basics</h3>
Each DNS server manages a number of forward and reverse domains. A forward
domain is something like <i>foo.com</i>, and a reverse domain like
<i>204.165.66</i>. For each domain, the DNS server can either be the
primary server (the original source of data for the domain), or a secondary
server (a backup source for the domain). <p>

<dl>
<dt><b>Forward Domains</b>
<dd>If your DNS server manages a forward domain like <i>foo.com</i>, then
    it will be able to answer requests for hostnames within this domain.
    For domains for which this server is the primary, you can use this
    module to add hosts (and other records) to the domain. For secondary
    domains, you can specify the primary server(s) to download host
    information from. <p>

<dt><b>Reverse Domains</b>
<dd>Reverse domains map IP addresses (like <i>203.165.66.77</i>) into
    hostnames (like <i>www.foo.com</i>). A reverse domain provides hostnames
    for all the IP addresses in a network (like <i>203.165.66</i>). For
    domains for which this server is the primary, this module allows you to
    add IP to hostname records to the domain. For secondary domains, you can
    specify the DNS server(s) to download IP address mappings from. <p>
</dl>

<hr>
<h3>Setting up the DNS Server</h3>
If your system already has a running BIND DNS server, then you can ignore
this section. However, if the Webmin detects that the primary DNS server
configuration file (usually <tt>/etc/named.boot</tt>) is missing from your
system, it assumes that the server has not yet been setup. <p>

For normal internet use, a DNS server has to have a list of the root nameservers
so that it can answer DNS queries that are outside its domains. If your server
is not setup, Webmin can:
<ol>
<li>Download this list from the internic FTP server at <tt>rs.internic.net</tt>.
    Assuming the host Webmin in being run on is connected to the internet
    and is not blocked by any firewall, this is the best option. <p>
<li>Use a copy of the list that is distributed with Webmin. Because the
    root nameservers do not change very often, this should work fine. <p>
<li>Setup the nameserver for 'internal' use only. If you are on network that
    is not connected to the internet, then this is the option you want.<p>
</ol>

<hr>
<h3>Creating a Primary Domain</h3>
To create a new primary domain, fill in the form under <b>Add a new primary
domain</b> on the <a href=/dnsadmin/>DNS Server</a> page. The meaning of
the fields are:
<ul>
<li><b>Mapping</b><br>
    Determines if this is a forward or reverse domain<p>
<li><b>Domain/Net</b><br>
    For forward domains, the domain to be added (like <tt>foo.com</tt>). For
    reverse domains, the IP network to be added (like <tt>203.123.221</tt>). <p>
<li><b>Filename</b><br>
    The name of the file in which to store the domain information. If you
    leave this field blank, a suitable filename is automatically generated. <p>
<li><b>Contact email</b><br>
    Each DNS domain must have an associated email address, which should be
    the person responsible for the domain. <p>
<li><b>Nameserver</b><br>
    This must contain the fully qualified name of the nameserver responsible
    for this domain. This will almost always be the name of the host you
    are running Webmin on. <p>
</ul>

<hr>
<h3>Creating a Secondary Domain</h3>

<hr>
<h3>Editing a Primary Domain</h3>

<hr>
<h3>Editing Domain Records</h3>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Return to module</a><p>
 

  07070100036d38000081a40000000000000002000000013ac0388800000e7e000000200000000000000000000000000000002200000003reloc/dnsadmin/help/intro.sv.html <body bgcolor=#ffffff>
<center><img src=images/dnsadmin.gif></center>
<h2><i>Denna hj鋖psida 鋜 inte fullst鋘dig</i></h2>

<hr>
<h3>Introduktion</h3>
I denna modul kan du konfigurera BIND (Berkeley Internet Name Daemon)
DNS-servern p denna maskin. DNS-servern skriver om datornamn, t ex
<i>www.foo.com</i>, till IP-adresser, t ex <i>10.1.2.3</i>, och
IP-adresser till datornamn.

<hr>
<h3>Grundl鋑gande DNS</h3>
Varje DNS-server har hand om ett antal fram錿- och bak錿dom鋘er. En
fram錿dom鋘 鋜 ett namn, t ex <i>foo.com</i> och en bak錿dom鋘 鋜 ett
nummer, t ex <i>204.165.66</i>. F鰎 varje dom鋘 kan DNS-servern vara
prim鋜 server (huvudserver och ansvarig f鰎 data om dom鋘en) eller
sekund鋜 server (backup f鰎 dom鋘en).

<dl>
<dt><b>Fram錿dom鋘er</b>
<dd>Om DNS-servern har hand om en fram錿dom鋘, t ex <i>foo.com</i>, kan
    den svara p f鰎fr錱ningar om datornamn i denna dom鋘.
    F鰎 de dom鋘er som denna server 鋜 prim鋜 server kan du ocks l鋑ga
    till datorer och andra uppgifter till dom鋘en i denna modul.
    F鰎 dom鋘er d鋜 servern 鋜 sekund鋜 server kan du ange prim鋜 server
    (den som servern ska h鋗ta information fr錸).

<dt><b>Bak錿dom鋘er</b>
<dd>Bak錿dom鋘er kopplar ihop IP-adresser (t ex <i>203.165.66.77</i>) med
    datornamn (t ex <i>www.foo.com</i>). En bak錿dom鋘 inneh錶ler
    datornamn f鰎 alla IP-adresser i ett n鋞verk (t ex <i>203.165.66</i>).
    F鰎 de dom鋘er som denna server 鋜 prim鋜 server kan du ocks l鋑ga till
    poster med IP-adresser och datornamn i denna modul.
    F鰎 dom鋘er d鋜 servern 鋜 sekund鋜 server kan du ange prim鋜 server
    (den som servern ska h鋗ta information fr錸).
</dl>

<hr>
<h3>S鋞ta upp DNS-servern</h3>
Om du redan k鰎 en BIND DNS-server p systemet kan du hoppa 鰒er detta.
Om Webmin uppt鋍ker att inst鋖lningsfilen f鰎 den prim鋜a DNS-servern
(oftast <tt>/etc/named.boot</tt>) saknas p systemet, antar det att
du inte har satt upp n錱on DNS-server 鋘.

<p>En DNS-server beh鰒er en lista 鰒er rotnamnservrar f鰎 att svara p
DNS-f鰎fr錱ningar utanf鰎 den egna dom鋘en. Om din server inte redan 鋜
uppsatt kan Webmin

<ol>
<li>ladda ned en lista fr錸 FTP-servern p <tt>rs.internic.net</tt>.
    Om datorn som Webmin k鰎s p 鋜 kopplad till Internet - och inte
    sitter bakom en brandv鋑g - 鋜 detta det b鋝ta alternativet.
<li>anv鋘da den lista som skickas med Webmin. Eftersom rotservrar inte
    鋘dras s ofta, b鰎 detta fungera.
<li>s鋞ta upp namnserver endast f鰎 internt bruk. Om du jobbar p ett
    n鋞verk som inte 鋜 anslutet till Internet 鋜 detta det alternativ du
    b鰎 v鋖ja.
</ol>

<hr>
<h3>Skapa en prim鋜 dom鋘</h3>
Fyll i formul鋜et under <b>L鋑g till prim鋜 dom鋘</b> p
<a href=/dnsadmin/>DNS-serversidan</a> f鰎 att skapa en ny prim鋜 dom鋘.
F鋖ten har f鰈jande inneb鰎d:
<ul>
<li><b>Uppslagning</b>
    <br>Anger om detta 鋜 en fram錿- eller bak錿dom鋘.
<li><b>Dom鋘/n鋞</b>
    <br>F鰎 fram錿dom鋘er anges h鋜 dom鋘 (t ex <tt>foo.com</tt>).
    F鰎 bak錿dom鋘er anges h鋜 IP-n鋞et (t ex <tt>203.123.221</tt>).
<li><b>Filnamn</b>
    <br>Namn p den fil som dom鋘information ska lagras i. Om detta f鋖t
    l鋗nas tomt, kommer ett filnamn automatiskt att genereras.
<li><b>E-postadress</b>
    <br>Varje DNS-dom鋘 m錽te ha en e-postadress till den person som
    ansvarar f鰎 dom鋘en.
<li><b>Namnserver</b>
    <br>Detta f鋖t ska inneh錶la fullst鋘digt namn p den namnserver som
    hanterar dom鋘en. Det 鋜 oftast namnet p den dator du k鰎 Webmin p.
</ul>

<hr>
<h3>Skapa en sekund鋜 dom鋘</h3>

<hr>
<h3>膎dra en prim鋜 dom鋘</h3>

<hr>
<h3>膎dra dom鋘poster</h3>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Tillbaka till modul</a>
 

  07070100036d40000081a40000000000000002000000013ac0388800000aad000000200000000000000000000000000000002a00000003reloc/dnsadmin/help/intro.zh_TW.Big5.html <body bgcolor=#ffffff>
<center><img src=images/dnsadmin.gif></center>
<h2><i>硂弧﹟ゼЧΘ</i></h2>

<hr>
<h3>虏ざ</h3>
硂家舱琵眤舱篈眤╰参 bind (Berkely Internet Name Daemon) DNS 狝竟. DNS 狝竟琌盢诀嘿ㄒ <i>www.foo.com</i> 锣传Θ IP ㄒ <i>10.1.2.3</i>, ┪盢 IP 锣传Θ诀嘿.

<hr>
<h3>DNS 膀娄</h3>
– DNS 狝竟常穦恨瞶ㄇタ┪は呼办. 癸タ呼办琌钩 <i>foo.com</i>, τは呼办琌钩 <i>204.165.66</i>. 癸–呼办, DNS 狝竟琌北狝竟 (呼办﹍戈ㄓ方), ┪砆北狝竟 (呼办称戈). <p>

<dl>
<dt><b>タ呼办</b>
<dd>狦眤 DNS 恨瞶タ呼办ㄒ <i>foo.com</i>, 玥ウ盢氮癸ㄤ呼办い诀嘿琩高. 癸硂呼办τē, 硂琌北狝竟. 眤ㄏノ硂家舱糤诀 (┪ㄤ魁) 呼办い. 癸砆北狝竟τē, 眤﹚更戈ㄓ方北狝竟. <p>

<dt><b>は呼办</b>
<dd>は呼办琌舱 IP  (钩琌 <i>203.165.66.77</i>) 籔诀嘿 (钩琌 <i>www.foo.com</i>) 癸莱. 癸┮妮呼办北狝竟, 硂家舱琵眤糤 IP 诀嘿癸莱魁. 癸砆北狝竟τē, 眤﹚更戈ㄓ方北狝竟. <p>
</dl>

<hr>
<h3>砞﹚ DNS 狝竟</h3>
狦眤╰参竒磅︽ BIND DNS 狝竟, 玥眤┛菠硂竊. 礛τ, 狦 Webmin 粄眤╰参тぃ北 DNS 狝癬舱篈郎 (琌 <tt>/etc/named.boot</tt>), ウ穦安砞眤﹟ゼ砞﹚狝竟. <p>

癸┦呼悔呼隔ㄏノ, DNS 狝竟穦Τ╰嘿狝竟, ウ氮ぃ妮┮恨烈絛瞅ず呼办. 狦眤狝竟﹟ゼ砆砞﹚, Webmin :
<ol>
<li>眖 <tt>rs.internic.net</tt> 更硂. 安砞硂磅︽ Webmin 诀硈钡呼悔呼隔, ゼ砆ň鲤┮筳, 硂盢琌程ㄎ匡兜. <p>
<li>ㄏノ籔 Webmin 床. 嘿狝竟ぃび穦跑笆, ┮硂莱赣タ盽. <p>
<li>盢嘿狝竟砞﹚Θ 'ず场' ㄏノ. 狦眤呼隔⊿Τ硈钡呼悔呼隔, 硂莱赣琌眤┮稱璶. <p>
</ol>

<hr>
<h3>ミ北呼办</h3>
璶ミ北呼办, 眤ゲ斗恶糶<a href=/dnsadmin/>DNS 狝竟</a>い<b>糤穝北跋办</b>虫. ㄤ逆種竡:
<ul>
<li><b>跋办摸</b><br>
    ∕﹚硂琌タ┪は呼办<p>
<li><b>呼办嘿/呼隔</b><br>
    癸タ呼办τē, 硂娩璶璶恨瞶呼办嘿 (ㄒ <tt>foo.com</tt>).
    癸は呼办τē, 硂娩璶璶恨瞶 IP 呼隔 (ㄒ <tt>203.123.221</tt>). <p>
<li><b>魁郎</b><br>
    硂纗呼办戈癟魁郎郎. 狦眤ぃ恶硂逆, 盢穦笆玻ネ続ノ郎. <p>
<li><b>筿秎ン</b><br>
    – DNS 呼办常璶Τ妮筿秎ン, 硂琌璽砫硂呼办羛蹈. <p>
<li><b>北狝竟</b><br>
    硂ゲ斗琌璽砫呼办嘿狝竟Ч俱嘿. 硂碭ッ环琌眤磅︽ Webmin 诀. <p>
</ul>

<hr>
<h3>ミ砆北呼办</h3>

<hr>
<h3>絪胯北呼办</h3>

<hr>
<h3>絪胯呼办诀忱</h3>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">家舱</a><p>
 

   070701000356b1000081e40000000000000002000000013ac0388800000a39000000200000000000000000000000000000001d00000003reloc/dnsadmin/edit_recs.cgi  #!/usr/local/bin/perl
# edit_recs.cgi
# Display records of some type from some domain

require './dns-lib.pl';
&ReadParse();
$conf = &get_config();
$zconf = $conf->[$in{'index'}];
$dom = $zconf->{'values'}->[0];
%access = &get_module_acl();
&can_edit_zone(\%access, $dom) ||
        &error("You are not allowed to edit records in this zone");
&header("$code_map{$in{'type'}} Records", "");
print "<center><font size=+2>In ",&arpa_to_ip($dom),"</font></center>\n";
print "<hr><p>\n";

$file = $zconf->{'values'}->[1];
&foreign_call("bind8", "record_input", $in{'index'}, $in{'type'}, $file, $dom);
@recs = &read_zone_file($file, $dom);
@recs = grep { $_->{'type'} eq $in{'type'} } @recs;
if (@recs) {
	@recs = &sort_records(@recs);
        %hmap = ( "A", [ "Address" ],
                  "NS", [ "Name Server" ],
                  "CNAME", [ "Real Name" ],
                  "MX", [ "Priority", "Mail Server" ],
                  "HINFO", [ "Hardware", "Operating System" ],
                  "TXT", [ "Message" ],
                  "WKS", [ "Address", "Protocol", "Service" ],
                  "RP", [ "Email Address", "Text Record" ],
                  "PTR", [ "Hostname" ] );
        if ($in{'type'} =~ /HINFO|WKS|RP/) {
                &recs_table(@recs);
                }
        else {
                $mid = int((@recs+1)/2);
                print "<table width=100%><tr><td width=50% valign=top>\n";
                &recs_table(@recs[0 .. $mid-1]);
                print "</td><td width=50% valign=top>\n";
                if ($mid < @recs) { &recs_table(@recs[$mid .. $#recs]); }
                print "</td></tr></table><p>\n";
                }
        print "<p>\n";
        }
print "<hr>\n";
&footer("edit_master.cgi?index=$in{'index'}", "record types");

sub recs_table
{
print "<table border width=100%>\n";
print "<tr $tb> <td><b>",$in{'type'} eq "PTR" ? "Address" : "Name",
      "</b></td> <td><b>TTL</b></td>\n";
@hmap = @{$hmap{$in{'type'}}};
foreach $h (@hmap) {
        print "<td><b>$h</b></td>\n";
        }
print "</tr>\n";
for($i=0; $i<@_; $i++) {
        $r = $_[$i];
        $name = $in{'type'} eq "PTR" ? &arpa_to_ip($r->{'name'})
                                     : $r->{'name'};
        print "<tr $cb> <td><a href=\"edit_record.cgi?index=",
              "$in{'index'}&type=$in{'type'}&num=$r->{'num'}\">$name",
              "</a></td>\n";
        print "<td>",$r->{'ttl'} ? $r->{'ttl'} : "Default","</td>\n";
        for($j=0; $j<@hmap; $j++) {
                print "<td>$r->{'values'}->[$j]</td>\n";
                }
        print "</tr>\n";
        }
print "</table>\n";
}

   070701000356b2000081e40000000000000002000000013ac0388a00000688000000200000000000000000000000000000001e00000003reloc/dnsadmin/edit_slave.cgi #!/usr/local/bin/perl
# edit_slave.cgi
# Display options for an existing slave or stub zone

require './dns-lib.pl';
&ReadParse();
$conf = &get_config();
@v = @{$conf->[$in{'index'}]->{'values'}};
%access = &get_module_acl();
&can_edit_zone(\%access, $v[0]) ||
        &error("You are not allowed to edit this zone");
&header("Edit Slave Zone", "");
print "<center><font size=+2>",&arpa_to_ip($v[0]),"</font></center>\n";

print "<hr>\n";
print "<form action=save_slave.cgi>\n";
print "<input type=hidden name=index value=\"$in{'index'}\">\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>Slave Zone Options</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

for($i=1; $i<@v; $i++) {
	if (&check_ipaddress($v[$i])) { push(@mast, $v[$i]); }
	else { $file = $v[$i]; }
	}
print "<tr> <td valign=top><b>Master servers</b></td>\n";
print "<td><textarea name=masters rows=4 cols=30>",
      join("\n", @mast),"</textarea></td> </tr>\n";
print "<tr><td valign=top><b>Records file</b></td> <td valign=top>\n";
printf "<input type=radio name=file_def value=1 %s> None\n",
	$file ? "" : "checked";
printf "<input type=radio name=file_def value=0 %s>\n",
	$file ? "checked" : "";
print "<input name=file size=30 value=\"$file\">",
	&file_chooser_button("file"),"</td> </tr>\n";

print "</table></td></tr> </table>\n";
print "<table width=100%><tr><td align=left>\n";
print "<input type=submit value=Save></td></form>\n";
print "<form action=delete_zone.cgi>\n";
print "<input type=hidden name=index value=\"$in{'index'}\">\n";
print "<td align=right><input type=submit value=Delete></td></form>\n";
print "</tr></table>\n";
print "<hr>\n";
&footer("", "zone list");

070701000356b3000081e40000000000000002000000013ac0388900000441000000200000000000000000000000000000001d00000003reloc/dnsadmin/edit_text.cgi  #!/usr/local/bin/perl
# edit_text.cgi
# Display a form for manually editing a records file

require './dns-lib.pl';
&ReadParse();
%access = &get_module_acl();
$zconf = &get_config()->[$in{'index'}];
&can_edit_zone(\%access, $zconf->{'values'}->[0]) ||
	&error("You are not allowed to edit this zone");
$file = &absolute_path($zconf->{'values'}->[1]);
&header("Edit Records File", "");
print "<center><font size=+1>$file</font></center>\n";
print "<hr>\n";

open(FILE, $file);
@lines = <FILE>;
close(FILE);

print "This form allows you to manually edit the DNS records file\n";
print "<tt>$file</tt>. No syntax checking will be done by webmin,\n";
print "and the zone serial number will not be automatically incremented. <p>\n";

print "<form action=save_text.cgi method=post>\n";
print "<input type=hidden name=index value=\"$in{'index'}\">\n";
print "<textarea name=text rows=20 cols=80>",
	join("", @lines),"</textarea><p>\n";
print "<input type=submit value=Save> <input type=reset value=Undo></form>\n";

print "<hr>\n";
&footer("edit_master.cgi?index=$in{'index'}", "record types");

   070701000382db000041ed0000000000000001000000023ac03bd700000000000000200000000000000000000000000000001600000003reloc/dnsadmin/images 070701000382dc000081a40000000000000002000000013ac03888000008d0000000200000000000000000000000000000002300000003reloc/dnsadmin/images/dnsadmin.gif    GIF89at'      UUU帋999乔倾沣rrr      !Made with GIMP !    ,    t'  菼8胪`(庝C:$RfD疝xNB@趩+T偭f 碤楬嬉Y'需oJ╢簿a0C0h匔8瞢|^粆缗疁@wQ	r"凥fMD>z弚}%m嫈t灍v漍?jH儯?8Q#瑢¨洠 伐犉牱@qH?c暽>%肏┓R?校#棷饲韘>璒掾 薹%圦鐱靮誒翤鏼﹑餘錽G1蔷)%PavyI癝  岪尲槬"&QQ@&谅徆.1勠B繷 =**振餁e>Vh貦擸AD慂 珌珘痀胆磤U暧6HQr楆鮜g;I1授
2]$(嚪@T'7 逺贗Y&7歨挤t,#貾 刃X捤 ;壼H{-@飢n皻Z,a(螲99槪\Y溆 猩v8咙 栈]灛仦G齤}殀n濱狋鵼镼贯杧俧鱊=詆eTⅰ烃0UU^a$  >糾 R V~咍 躘韻TT鄭c @37~莥愐=$d剾;z繬)6冡唒箶=鎹ngC7~慡9g莻TBm@錦[娽E8鱟=?Hw聈-|P%p栻鞙xbs齗皳搧懄XU澷鈭n睂aN'v,冓=坣6f,$%0轥U&HH妨漄`杤"%B~fl@$*洆饤隸>`{`if藏U崹#[ 3y'a2鰫)檴AkF鈀=廧 覼厧{侸u惱N莒D蓕B雰n>V)傜兇E灩;翝uE墓[ng亃'咹$S屡m\贈蘥蚔+僚曶$}亐*R,,*am轸b蔳L仮 @v #宀 幸Eq!Q{p紾/肶<罫莲伓髳戝l^麐娈渠p优 ]秤& Y囊俘nHK jA塘1wY歁q簂零癡獎饔N=>|o窿傺磇郚G7釤>Uq!趎
莂欲悤>逼乳d珹衝-yo湏滽泑or:雲皁剉陭-搵 #,瘬`幪*4m蠟镏鈽LB忿瞳坏!S槁眠-髬|鳁Ue鳲!莛饌+kM3柹羿9G滈U^ 橔h*摘]>)〥e"冐䌷	`琁 !嘊3赓(輸n 耵
勖郠x懧昭n{銫w嚛Y0~塖寪谸鲬僸煡G&<,(4䙡@!A.W軃7朐6膶趣+6栰k筛i)Fv脗P濿7p鄭萘CLR拏听巤k4X)塳E鄳.0鎌芤x=理PLkBX爈3+c璔哼∪藲惆&葂">斳WYIOQm炘k訤翗L′5拮-魀qf痐釡:eV瞏A嗘"n袢d︱>櫵*`睒(:";d蘝p墮覛裉7
(扱鋱稿揾+"-	璋]哒@駹p"婠 墦5s濟逾适b*Z#D獬gEn!廱td2/.Z贖K{付x嶧<6?嘜迱>!)丧G綇竮哛糴鍊/w箒馵誠#H/A;馯
$H=St庫 U蚖T 斔X賢b8&彎W6厸齿祬訯Gz?璶Q&@J胫J谷垊C邮氜P摎,E粖1-萩]Nラ^艤锺L亇魝R9编]摑7豹(a∶gT枖謂kM洿+bid)M除6競U%注兀	誠 2PM0剹D剸嘥嗛G)嫕(爺僬Za储銿婯鋪榇 9悊QHx鶣D嗘摾穆; 憷YLz肢駊仒Db迾Zc航崈:鮤,oj+I+^e暓帋V绁湎
忛Z竳i=堧^岇䦛=z裰缩}1堵ZoS1啯9v萈,霧獂=┽幉*闒专苻扼w糂=z頜{5!F屩觼d符黭!隌嚢Cl窴塸8N鶌偕酩\軄#螹:4rQ+sC炲d釚_z席褾>"H Q8e幰柶P潽螃2ひ14	0}:0瑩v郉6學h衸睠"鋮孕A籞壈::	栋圐 菮,n% 2&R;N匶! ;0707010003832f000081a40000000000000002000000013ac03888000007ef000000200000000000000000000000000000001f00000003reloc/dnsadmin/images/icon.gif    GIF89a0 0   厒侣vDDⅱ.奃xbb苿粹獾儌tΖ屢訖fF\ldpb&T英膾拃HB`$$(膊攰j剷趑鈜v44膊S排拐韵獋淰VT黼諛T劒ùrrf殥都84D剟ZTT ＃\妭床f湒朙饴躸u?暾鋒h8洓p帊t烫竈V劒狣忖佻瑯苴适姾挰hTd汉敘V寊r",媻技h苴菷2D縲琕Nq>"<||XX:BB4濲刲l
驜4<祆鑯~dpnp巢甡\`寒附技妸<湝柆╘攣~'哪à4埰拒媬娞泥筰崓痄燧芏蜁紓Z|杺寱摌0,8敂$>>创o泹檂Vlsst@<J治錆!f^|jj$抖[渻$势劍<孞|驿葒厛罩︴躞破内忆蝾躹>lz2l诓蘶BlR>LB*<牅癦Z_拰ND宆{{TLL攙n斻蒌紁ㄙ媸菔毤诤詜Lp殠腖Dt:4nb\n@盯瑲歀坾碏=nbZ垀z斁姮伯碸^L66,欶劕K敤帬R.L獮蘊&D歂刏.LJ:<ⅱ剬孿:孷Rt汉劺贺ZZ$巖劼~毚XN巉f$rr,敂^jjP媼'FDL;;<枈籍R)%<报体邃技琑F尪殩戮t倊rn禾渮vn\l灃募丛82XvvT怂萠U毊甃挝欇蒇ZZL膔j瑍r$菉处あ(nBdrfl*&,ZT\拞悸緶vjt勃^溾薮殩湤$势坍r溡災赕靣n$~:l饩詁^$破}ff枛寲抖\!Made with GIMP !   ,    0 0   	H盃羶*\劝∶#J淗睜V9txD)婴Px@By
m鹑p視fxU狦嗆0u敎a拱栻U"i;c誼*<h(箼鬁:&J:4h%0X>繨乻薏<5bP2tL憭,|栽d⑻牀跳衿啚]Ay
渧`PL簹qt(綱坁BI牶J噁傫8漎sH:u螡&XfP%rdh顐]'E戀踼x#`
pzeH瘏齻=ⅴ壁+K>圊&>蝄虚鉪YxQx}喩8夋氖8躴	[daBZ	裛遾
%2V詯輸wz@3虁G啃	!x O|鸨(@$[?B*"擫cx鹭`嵼滅38r#"螯缼A~Y婶銔x c爫崟x4D"鰴 BО燝檉帒&擱:称?g&腜:鰑辛)燘橩"噤 ?q囫彌p@3I爞夽a渖膜e&儲| 馛k$蛩3?p摿帇轥3K\釥}~D霔鯌 )欯\鹇礈绖7/鈺茑OF靵' PD*yCX珖i爿	銪 眗歔A 呢GN<X`瓩,燘6	 @瘔$2,#蜞袬#蝺AXA)綾詘銌k鳻<薱n 嬝)b8BA}0e炆G\皠<w1%S`爌1鯮JA( 2	h肈	w岳6G蟒 -#鄅矌(d鄯6(22"@fΩ!祗,鑽洽<x5雀:釮馉'埕26 J涱 鹇荌@ 爍.牤6	晁3垮鞝錂肝 z勿N白 (!_匏蔂l_8rH际(塷n豧<窰*$3	楱烐9提5 鯙 p–o簰&8A	
繞4爬 韮JQ(H叀 5`A7<0籲台<2\騹D蔭取綼貎J淤1抋m擿纴彀 \廕@?灎 D,0訟刱]婌C$钿 N菷(鞝8袛饒fEC*0	8 k 6@厔`eHn 靾 怷IB耟kc   !黟/L
	惸坄+犪A4饒$b>h 鹐B黳卹\A	 ; 070701000356b4000081e40000000000000002000000013ac038880000182a000000200000000000000000000000000000001900000003reloc/dnsadmin/index.cgi  #!/usr/local/bin/perl

require './dns-lib.pl';

&header("BIND 4 DNS Server", "", undef, 1, 1);
print "<hr>\n";
%access = &get_module_acl();

# Check if named exists
if (!(-x $config{'named_pathname'})) {
	print "<p>The BIND 4 DNS server <i>$config{'named_pathname'}</i>\n";
	print "could not be found on your system. Maybe it is not installed,\n";
	print "or your <a href=\"/config.cgi?$module_name\">BIND 4 module\n";
	print "configuration</a> is incorrect. <p>\n";
	print "<hr>\n";
	&footer("/", "index");
	exit;
	}

# Check if BIND is the right version.. Only BIND 8 offers the -f option
# Is there a better way to do this?
$out = `$config{'named_pathname'} -help 2>&1`;
if ($out =~ /\[-f\]/) {
	print "<p>The server <i>$config{'named_pathname'}</i> appears to\n";
	print "be BIND 8. Maybe your should use the\n";
	print "<a href=/bind8/>BIND 8 server module</a> instead. <p>\n";
	print "<hr>\n";
	&footer("/", "index");
	exit;
	}

# If the named.boot file is empty or does not exist, offer to create it
if (!(-r $config{named_boot_file})) { $need_create++; }
else {
	$conf = &get_config();
	if (!@$conf) { $need_create++; }
	}

if ($need_create) {
	# There is no nameserver boot file.. offer to create
	print "<p>The primary configuration file\n";
	print "<i>$config{named_boot_file}</i> does not exist,\n";
	print "or is empty. Create it?<p>\n";
	print "<form action=\"dns_boot.cgi\">\n";
	print "<input type=radio name=real value=0> Setup nameserver for ",
	      "internal non-internet use only<p>\n";
	print "<input type=radio name=real value=1 checked> Setup as an ",
	      "internet name server, and download root server information<p>\n";
	print "<input type=radio name=real value=2> Setup as an internet name ",
	      "server, but use Webmin's older root server information<p>\n";
	print "<center><input type=submit value=\"Create Primary Configuration File and Start Nameserver\"></center>\n";
	print "</form>\n";
	print "<hr>\n";
	&footer("/", "index");
	exit;
	}

@zlist = (&find_config("primary", $conf), &find_config("secondary", $conf));
if (!@zlist) {
	# Nothing in named file..
	print "<b>There are no DNS zones defined for this name server</b><p>\n";
	}
else {
	print "<h3>Existing DNS Zones</h3>\n";
	foreach $z (@zlist) {
		next if (!&can_edit_zone(\%access, $z->{'values'}->[0]));
		if ($z->{'name'} eq "primary") {
			push(@zlinks, "edit_master.cgi?index=$z->{'index'}");
			push(@ztitles, &arpa_to_ip($z->{'values'}->[0]));
			push(@zicons, "../bind8/images/master.gif");
			push(@ztypes, "Master");
			}
		else {
			push(@zlinks, "edit_slave.cgi?index=$z->{'index'}");
			push(@ztitles, &arpa_to_ip($z->{'values'}->[0]));
			push(@zicons, "../bind8/images/slave.gif");
			push(@ztypes, "Slave");
			}
		$len++;
		}

	# sort list of zones
	@zorder = sort { $ztitles[$a] cmp $ztitles[$b] } (0 .. $len-1);
	@zlinks = map { $zlinks[$_] } @zorder;
	@ztitles = map { $ztitles[$_] } @zorder;
	@zicons = map { $zicons[$_] } @zorder;
	@ztypes = map { $ztypes[$_] } @zorder;

	if ($config{'show_list'}) {
		# display as list
		$mid = int((@zlinks+1)/2);
		print "<table width=100%><tr><td width=50% valign=top>\n";
		&zones_table([ @zlinks[0 .. $mid-1] ],
			     [ @ztitles[0 .. $mid-1] ],
			     [ @ztypes[0 .. $mid-1] ]);
		print "</td><td width=50% valign=top>\n";
		if ($mid < @zlinks) {
			&zones_table([ @zlinks[$mid .. $#zlinks] ],
				     [ @ztitles[$mid .. $#ztitles] ],
				     [ @ztypes[$mid .. $#ztypes] ]);
			}
		print "</td></tr></table>\n";
		}
	else {
		# display as icons
		&icons_table(\@zlinks, \@ztitles, \@zicons);
		}
	}
if ($access{'master'}) {
	print "<a href=\"master_form.cgi\">Create a new ",
	      "master zone</a>&nbsp;&nbsp;\n";
	}
if ($access{'slave'}) {
	print "<a href=\"slave_form.cgi\">Create a new ",
	      "slave zone</a>&nbsp;&nbsp;\n";
	}
print "<p>\n";

if ($access{'defaults'}) {
	# Display form to set the defaults for new zones
	&get_zone_defaults(\%zd);
	print "<hr>\n";
	print "<h3>New Master Zone Defaults</h3>\n";
	print "<form action=save_zonedef.cgi>\n";
	print "<table border>\n";
	print "<tr $tb> <td><b>Defaults for new master zones</b></td> </tr>\n";
	print "<tr $cb> <td><table cellpadding=5>\n";

	print "<tr> <td><b>Refresh time</b></td>\n";
	print "<td><input name=refresh size=10 value=$zd{'refresh'}> seconds</td>\n";
	print "<td><b>Transfer retry time</b></td>\n";
	print "<td><input name=retry size=10 value=$zd{'retry'}> seconds</td></tr>\n";

	print "<tr> <td><b>Expiry time</b></td>\n";
	print "<td><input name=expiry size=10 value=$zd{'expiry'}> seconds</td>\n";
	print "<td><b>Default time-to-live</b></td>\n";
	print "<td><input name=minimum size=10 value=$zd{'minimum'}> seconds</td>\n";
	print "</tr> </table></td></tr></table><br>\n";
	print "<input type=submit value=Update></form>\n";
	}

# Display a form to start or restart named
print "<hr>\n";
if (open(PID, $config{'named_pid_file'})) {
	<PID> =~ /(\d+)/;
	$pid = $1;
	close(PID);
	}
if ($pid && kill(0, $pid)) {
        # named is running
        print "<form action=restart.cgi>\n";
        print "<input type=hidden name=pid value=$pid>\n";
        print "<table width=100%><tr><td>\n";
        print "<input type=submit value=\"Apply Changes\"></td>\n";
        print "<td>Click this button to restart the running BIND 4 server.\n";
        print "This will cause the current configuration to become\n";
        print "active</td> </tr></table>\n";
        print "</form>\n";
        }
else {
        # named is not running
        print "<form action=start.cgi>\n";
        print "<table width=100%><tr><td>\n";
        print "<input type=submit value=\"Start Name Server\"></td>\n";
        print "<td>Click this button to start the BIND 4 server, and load\n";
        print "the current configuration</td> </tr></table>\n";
        print "</form>\n";
        }

print "<hr>\n";
&footer("/", "index");

sub zones_table
{
local($i);
print "<table border width=100%>\n";
print "<tr $tb> <td><b>Zone</b></td> <td><b>Type</b></td> </tr>\n";
for($i=0; $i<@{$_[0]}; $i++) {
	print "<tr $cb>\n";
	print "<td><a href=\"$_[0]->[$i]\">$_[1]->[$i]</a></td>\n";
	print "<td>$_[2]->[$i]</td>\n";
	print "</tr>\n";
	}
print "</table>\n";
}

  07070100039a02000041ed0000000000000001000000023ac03bd700000000000000200000000000000000000000000000001400000003reloc/dnsadmin/lang   07070100039a03000081a40000000000000002000000013ac0388a000003cf000000200000000000000000000000000000001700000003reloc/dnsadmin/lang/en    
log_servers=Changed other DNS servers
log_logging=Changed logging and errors
log_acls=Changed access control lists
log_files=Changed files and directories
log_forwarding=Changed forwarding and transfers
log_net=Changed addresses and topology
log_misc=Changed miscellaneous options
log_zonedef=Changed zone defaults
log_apply=Applied changes
log_start=Started DNS server
log_master=Created master zone $1
log_slave=Created slave zone $1
log_stub=Created stub zone $1
log_forward=Created forward zone $1
log_delete_master=Deleted master zone $1
log_delete_slave=Deleted slave zone $1
log_delete_stub=Deleted stub zone $1
log_delete_forward=Deleted forward zone $1
log_text=Manually edited records for $1
log_soa=Changed zone parameters for $1
log_opts=Changed zone options for $1
log_delete_record=Deleted $1 record $2 in zone $3
log_create_record=Created $1 record $2 in zone $3
log_modify_record=Modified $1 record $2 in zone $3
log_boot=Created primary configuration file

 07070100039a04000081a40000000000000002000000013ac0388a00000433000000200000000000000000000000000000001700000003reloc/dnsadmin/lang/es    
log_servers=Cambiados otros servidores DNS
log_logging=Cambiados historiales y errores
log_acls=Cmabiadas listas de control de acceso
log_files=Cambiados directorios y archivos
log_forwarding=Cambiados reenv韔s y transferencias
log_net=Cambiadas direcciones y topolog韆
log_misc=Cambiadas opciones varias
log_zonedef=Cambiados valores por defecto de zona
log_apply=Cambios aplicados
log_start=Servidor DNS arrancado
log_master=Creada zona maestra $1
log_slave=Creada zona esclava $1
log_stub=Creada zona de s髄o cach $1
log_forward=Creada zona de reenv韔 $1
log_delete_master=Borrada zona maestra $1
log_delete_slave=Borrada zona esclava $1
log_delete_stub=Borrada zona de s髄o cach $1
log_delete_forward=Borrada zona de reenv韔 $1
log_text=Editados manu醠mente registros de $1
log_soa=Cambiados par醡etros de zona de $1
log_opts=Cambiadas opciones de zona de $1
log_delete_record=Borrado $1 registro $2 en zona $3
log_create_record=Creado $1 registro $2 en zona $3
log_modify_record=Modificado $1 registro $2 en zona $3
log_boot=Creado archivo de configuraci髇 primario

 07070100039a05000081a40000000000000002000000013ac0388a0000042a000000200000000000000000000000000000001700000003reloc/dnsadmin/lang/pl    log_servers=Zmieniono inne serwery DNS
log_logging=Zmieniono logowanie i b酬dy
log_acls=Zmieniono listy kontroli dost阷u
log_files=Zmieniono pliki i katalogi
log_forwarding=Zmieniono przekazywanie i transfery
log_net=Zmieniono adresy i topologi
log_misc=Zmieniono opcje r罂ne
log_zonedef=Zmieniono domy渓ne ustawienia strefy
log_apply=Zastosowano zmiany
log_start=Uruchomiono serwer DNS
log_master=Utworzono stref podstawow $1
log_slave=Utworzono stref zapasow $1
log_stub=Utworzono stref wykarczowan $1
log_forward=Utworzono forward zone $1
log_delete_master=Usuni阾o stref podstawow $1
log_delete_slave=Usuni阾o stref zapasow $1
log_delete_stub=Usuni阾o stref wykarczowan $1
log_delete_forward=Usuni阾o stref przekazywania $1
log_text=R阠znie zmieniono rekordy w $1
log_soa=Zmieniono parametry strefy $1
log_opts=Zmieniono opcje strefy $1
log_delete_record=Usuni阾o $1 rekord $2 ze strefy $3
log_create_record=Utworzono $1 rekord $2 w strefie $3
log_modify_record=Zmieniono $1 rekord $2 w strefie $3
log_boot=Utworzono podstawowy plik konfiguracyjny
  07070100039a06000081a40000000000000002000000013ac0388a000003db000000200000000000000000000000000000001700000003reloc/dnsadmin/lang/sv    log_servers=膎drade 鰒riga DNS-servrar
log_logging=膎drade loggning och fel
log_acls=膎drade 錿komstkontrollistor
log_files=膎drade filer och kataloger
log_forwarding=膎drade efters鋘dning och 鰒erf鰎ingar
log_net=膎drade adresser och topologi
log_misc=膎drade blandade inst鋖lningar
log_zonedef=膎drade zonstandarder
log_apply=Tog 鋘dringar i drift
log_start=Startade DNS-server
log_master=Skapade master-zon $1
log_slave=Skapade slavzon $1
log_stub=Skapade 錿erv鋘dszon $1
log_forward=Skapade genomfartszon $1
log_delete_master=Tog bort master-zon $1
log_delete_slave=Tog bort slavzon $1
log_delete_stub=Tog bort 錿erv鋘dszon $1
log_delete_forward=Tog bort genomfartszon $1
log_text=膎drade poster f鰎 $1 f鰎 hand
log_soa=膎drade zonparametrar f鰎 $1
log_opts=膎drade zoninst鋖lningar f鰎 $1
log_delete_record=Tog borg $1 post $2 i zon $3
log_create_record=Lade till $1 post $2 i zon $3
log_modify_record=Modifierade $1 post $2 i zon $3
log_boot=Skapade fil f鰎 prim鋜a inst鋖lningar

 07070100039a07000081a40000000000000002000000013ac0388a000002c4000000200000000000000000000000000000001a00000003reloc/dnsadmin/lang/zh_CN log_servers=改变其它DNS服务器
log_logging=改变日志和错误
log_acls=改变存取控制列表
log_files=改变文件和目录
log_forwarding=改变转发和传输
log_net=改变地址和拓扑结构
log_misc=改变混和参数
log_zonedef=改变缺省域
log_apply=已应用的改变
log_start=启动DNS服务器	
log_master=创建主域 $1
log_slave=创建从属域 $1
log_stub=创建子域 $1
log_forward=创建转发域 $1
log_delete_master=删除主域 $1
log_delete_slave=删除从属域 $1
log_delete_stub=删除子域 $1
log_delete_forward=删除转发域 $1
log_text=手动编辑 $1 记录
log_soa=改变 $1 域参数
log_opts=改变 $1 域选项
log_delete_record=$3 域中已删除的 $1 记录 $2
log_create_record=$3 域中已创建的 $1 记录 $2
log_modify_record=$3 域中已修改的 $1 记录 $2
log_boot=创建主要配置文件
070701000356b5000081a40000000000000002000000013ac0388a000004ae000000200000000000000000000000000000001d00000003reloc/dnsadmin/log_parser.pl  # log_parser.pl
# Functions for parsing this module's logs

require './dns-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p) = @_;
if ($type eq 'record') {
	if ($p->{'type'} eq 'PTR') {
		return &text("log_${action}_record", $text{"type_$p->{'type'}"},
			     "<tt>".&arpa_to_ip($p->{'name'})."</tt>",
			     "<tt>".&arpa_to_ip($object)."</tt>");
		}
	else {
		$p->{'name'} =~ s/\.$object\.*$//;
		return &text("log_${action}_record", $text{"type_$p->{'type'}"},
			     "<tt>$p->{'name'}</tt>", "<tt>$object</tt>");
		}
	}
elsif ($action eq 'create') {
	return &text("log_${type}", "<tt>$object</tt>");
	}
elsif ($action eq 'delete') {
	return &text("log_delete_${type}", "<tt>$object</tt>");
	}
elsif ($action eq 'text') {
	return &text("log_text", "<tt>$object</tt>");
	}
elsif ($action eq 'soa') {
	return &text("log_soa", "<tt>$object</tt>");
	}
elsif ($action eq 'opts') {
	return &text("log_opts", "<tt>$object</tt>");
	}
elsif ($text{"log_${action}"}) {
	return $text{"log_${action}"};
	}
else {
	return undef;
	}
}

  070701000356b6000081e40000000000000002000000013ac0388a000007fa000000200000000000000000000000000000001f00000003reloc/dnsadmin/master_form.cgi    #!/usr/local/bin/perl
# master_form.cgi
# Form for creating a new master zone

require './dns-lib.pl';
&ReadParse();
&header("Create Master Zone", "");
%access = &get_module_acl();
$access{'master'} || &error("You cannot create master zones");
print "<hr>\n";

print "<form action=create_master.cgi>\n";
print "<table border width=100%>\n";
print "<tr> <td $tb><b>New master zone options</b></td> </tr>\n";
print "<tr> <td $cb><table width=100%>\n";

print "<tr> <td><b>Zone type</b></td>\n";
print "<td colspan=3><input type=radio name=rev value=0 checked>\n";
print "Forward (Names to Addresses)\n";
print "&nbsp;&nbsp;<input type=radio name=rev value=1>\n";
print "Reverse (Addresses to Names)</td> </tr>\n";

print "<tr> <td><b>Domain name / Network</b></td>\n";
print "<td colspan=3><input name=zone size=40></td> </tr>\n";

print "<tr> <td><b>Records file</b></td> <td colspan=3>\n";
print "<input type=radio name=file_def value=1 checked> Automatic\n";
print "<input type=radio name=file_def value=0>\n";
print "<input name=file size=30>",&file_chooser_button("file"),"</td> </tr>\n";

print "<tr> <td><b>Master server</b></td>\n";
printf "<td colspan=3><input name=master size=30 value=\"%s\"></td> </tr>\n",
        &get_system_hostname();

print "<tr> <td><b>Owner's email address</b></td>\n";
print "<td colspan=3><input name=email size=40></td> </tr>\n";

&get_zone_defaults(\%zd);
print "<tr> <td><b>Refresh time</b></td>\n";
print "<td><input name=refresh size=8 value=$zd{'refresh'}> seconds</td>\n";

print "<td><b>Transfer retry time</b></td>\n";
print "<td><input name=retry size=8 value=$zd{'retry'}> seconds</td> </tr>\n";

print "<tr> <td><b>Expiry time</b></td>\n";
print "<td><input name=expiry size=8 value=$zd{'expiry'}> seconds</td>\n";

print "<td><b>Default time-to-live</b></td>\n";
print "<td><input name=minimum size=8 value=$zd{'minimum'}> seconds</td> </tr>\n";

print "</table></td></tr></table><br>\n";
print "<input type=submit value=\"Create Zone\"></form>\n";

print "<hr>\n";
&footer("", "zone list");

  070701000356b7000081a40000000000000002000000013ac0388800000246000000200000000000000000000000000000001b00000003reloc/dnsadmin/module.info    name=DNSadmin
desc_pt=Servidor de DNS BIND 4
depends=bind8
desc_tr=BIND 4 DNS Sunucusu
desc_fr=Serveur de Noms de Domaine Bind 4
desc_es=Servidor DNS BIND 4
desc_de=BIND 4 DNS Server
desc_sv=BIND 4 DNS-server
desc_ru_SU=BIND 4 DNS 笈易乓
desc_pl=Serwer DNS BIND&nbsp;4
category=servers
os_support=slackware-linux redhat-linux solaris debian-linux suse-linux hpux freebsd osf1 irix unixware openserver turbo-linux openbsd aix cobalt-linux/2.2 aix
desc_zh_TW.Big5=BIND 4 DNS 狝竟
desc=BIND 4 DNS Server
risk=low medium high
desc_zh_CN=BIND 4 DNS 服务器
desc_ru_RU=BIND 4 DNS 彦疴屦
  070701000356b8000081e40000000000000002000000013ac038880000010e000000200000000000000000000000000000001b00000003reloc/dnsadmin/restart.cgi    #!/usr/local/bin/perl
# restart.cgi
# Restart the running named

require './dns-lib.pl';
&ReadParse();
$whatfailed = "Failed to restart named";
&kill_logged('HUP', $in{'pid'}) ||
	&error("Failed to signal process $in{'pid'} : $!");
&webmin_log("apply");
&redirect("");

  070701000356b9000081e40000000000000002000000013ac0388a00000695000000200000000000000000000000000000001f00000003reloc/dnsadmin/save_master.cgi    #!/usr/local/bin/perl
# save_master.cgi
# Save changes to an SOA record

require './dns-lib.pl';
&ReadParse();
$whatfailed = "Failed to update zone";
%access = &get_module_acl();
&can_edit_zone(\%access, $in{'origin'}) ||
        &error("You are not allowed to edit this zone");

# check inputs
$in{'master'} =~ /^[A-z0-9\-\.]+$/ ||
        &error("'$in{'master'}' is not a valid master server");
$in{'email'} =~ /^\S+\@\S+$/ ||
        &error("'$in{'email'}' is not a valid email address");
$in{'refresh'} =~ /^\S+$/ ||
        &error("'$in{'refresh'}' is not a valid refresh time");
$in{'retry'} =~ /^\S+$/ ||
        &error("'$in{'retry'}' is not a valid transfer retry time");
$in{'expiry'} =~ /^\S+$/ ||
        &error("'$in{'expiry'}' is not a valid expiry time");
$in{'minimum'} =~ /^\S+$/ ||
        &error("'$in{'minimum'}' is not a valid default TTL");
$in{'email'} =~ s/\@/\./; $in{'email'} .= ".";

@recs = &read_zone_file($in{'file'}, $in{'origin'});
$old = $recs[$in{'num'}];
if ($config{'soa_style'} == 1 && $old->{'values'}->[2] =~ /^(\d{8})(\d\d)$/) {
	if ($1 eq &date_serial()) { $serial = sprintf "%d%2.2d", $1, $2+1; }
	else { $serial = &date_serial()."00"; }
	}
else {
	$serial = $old->{'values'}->[2]+1;
	}
$vals = "$in{'master'} $in{'email'} (\n".
        "\t\t\t$serial\n".
        "\t\t\t$in{'refresh'}\n".
        "\t\t\t$in{'retry'}\n".
        "\t\t\t$in{'expiry'}\n".
        "\t\t\t$in{'minimum'} )";
&lock_file($in{'file'});
&modify_record($in{'file'}, $old, $old->{'name'},
	      $old->{'ttl'}, $old->{'class'}, "SOA", $vals);
&unlock_file($in{'file'});
&webmin_log("soa", undef, $in{'origin'}, \%in);
&redirect("edit_master.cgi?index=$in{'index'}");

   070701000356ba000081e40000000000000002000000013ac0388a0000237d000000200000000000000000000000000000001f00000003reloc/dnsadmin/save_record.cgi    #!/usr/local/bin/perl
# save_record.cgi
# Adds or updates a record of some type

require './dns-lib.pl';
&ReadParse();
%access = &get_module_acl();
&can_edit_zone(\%access, $in{'origin'}) ||
        &error("You are not allowed to edit records in this zone");
&lock_file($in{'file'});
@recs = &read_zone_file($in{'file'}, $in{'origin'});
$whatfailed = "Failed to save record";

# get the old record if needed
$r = $recs[$in{'num'}] if (defined($in{'num'}));

# check for deletion
if ($in{'delete'}) {
	&lock_file($r->{'file'});
	&delete_record($r->{'file'}, $r);
	&bump_soa_record($in{'file'}, \@recs);
	($orevconf, $orevfile, $orevrec) = &find_reverse($in{'oldvalue0'});
	if ($in{'rev'} && $orevrec && &can_edit_reverse($orevconf) &&
	    $in{'oldname'} eq $orevrec->{'values'}->[0] &&
	    $in{'oldvalue0'} eq &arpa_to_ip($orevrec->{'name'})) {
		&lock_file($orevrec->{'file'});
		&delete_record($orevrec->{'file'} , $orevrec);
		&lock_file($orevfile);
		@orrecs = &read_zone_file(
				$orevfile, $orevconf->{'values'}->[0]);
		&bump_soa_record($orevfile, \@orrecs);
		}

	($ofwdconf, $ofwdfile, $ofwdrec) = &find_forward($in{'oldvalue0'});
	if ($in{'fwd'} && $ofwdrec &&
	    &can_edit_zone($ofwdconf->{'values'}->[0]) &&
	    &arpa_to_ip($in{'oldname'}) eq $ofwdrec->{'values'}->[0] &&
	    $in{'oldvalue0'} eq $ofwdrec->{'name'}) {
		&lock_file($ofwdrec->{'file'});
		&delete_record($ofwdrec->{'file'}, $ofwdrec);
		&lock_file($ofwdfile);
		@ofrecs = &read_zone_file($ofwdfile,$ofwdconf->{'values'}->[0]);
		&bump_soa_record($ofwdfile, \@ofrecs);
		}

	&redirect("edit_recs.cgi?index=$in{'index'}&type=$in{'type'}");
	&unlock_all_files();
	&webmin_log('delete', 'record', $in{'origin'}, $r);
	exit;
	}

# parse inputs
if (!$in{'ttl_def'}) {
	$in{'ttl'} =~ /^\d+$/ ||
		&error("'$in{'ttl'}' is not a valid time-to-live");
	$ttl = $in{'ttl'};
	}
$vals = $in{'value0'};
for($i=1; defined($in{"value$i"}); $i++) {
	$vals .= " ".$in{"value$i"};
	}
if ($in{'type'} eq "PTR") {
	# a reverse address
	&check_ipaddress($in{'name'}) ||
		&error("'$in{'name'}' is not a valid IP address");
	$name = &ip_to_arpa($in{'name'});
	&valname($in{'value0'}) ||
		&error("'$vals[0]' is not a valid hostname");
	if ($in{'value0'} !~ /\.$/) { $vals .= "."; }
	}
else {
	# some other kind of record
	$in{'name'} eq "" || &valname($in{'name'}) ||
		&error("'$in{'name'}' is not a valid ",
		       lc($code_map{$in{'type'}})," record name");
	if ($in{'type'} eq "A") {
		&check_ipaddress($vals) ||
			&error("'$vals' is not a valid IP address");
		if (!$access{'multiple'}) {
			$conf = &get_config();
			@zl = &find_config("primary", $conf);
			foreach $z (@zl) {
				$file = $z->{'values'}->[1];
				@frecs = &read_zone_file($z->{'values'}->[1],
							 $z->{'values'}->[0]);
				foreach $fr (@frecs) {
					if ($fr->{'type'} eq "A" &&
					    $fr->{'values'}->[0] eq $vals &&
					    $fr->{'name'} ne $r->{'name'}) {
						&error("An address record for ",
						       "$vals already exists");
						}
					}
				}
			}
		}
	elsif ($in{'type'} eq "NS") {
		&valname($vals) ||
			&error("'$vals' is not a valid nameserver");
		}
	elsif ($in{'type'} eq "CNAME") {
		&valname($vals) ||
			&error("'$vals' is not a valid alias target");
		}
	elsif ($in{'type'} eq "MX") {
		$in{'value1'} =~ /^[A-z0-9\-\.\*]+$/ ||
			&error("'$in{'value1'}' is not a valid mail server");
		$in{'value0'} =~ /^\d+$/ ||
			&error("'$in{'value0'}' is not a valid priority");
		}
	elsif ($in{'type'} eq "HINFO") {
		$in{'value0'} =~ /^\S+$/ ||
			&error("'$in{'value0'}' is not a valid hardware type");
		$in{'value1'} =~ /^\S+$/ ||
			&error("'$in{'value1'}' is not a valid OS type");
		}
	elsif ($in{'type'} eq "TXT") {
		$vals = "\"$in{'value0'}\"";
		}
	elsif ($in{'type'} eq "WKS") {
		&check_ipaddress($in{'value0'}) ||
			&error("'$in{'value0'}' is not a valid IP address");
		if (!$in{'value2'}) {
			&error("You did not enter any well known services");
			}
		@ws = split(/[\r\n]+/, $in{'value2'});
		$vals = "$in{'value0'} $in{'value1'} (";
		foreach $ws (@ws) { $vals .= "\n\t\t\t\t\t$ws"; }
		$vals .= " )";
		}
	elsif ($in{'type'} eq "RP") {
		$in{'value0'} =~ /^(\S+)\@(\S+)$/ ||
			&error("'$in{'value0'}' is not a valid email address");
		&valname($in{'value1'}) ||
			&error("'$in{'value1'}' is not a valid text record");
		$in{'value0'} =~ s/\@/\./g;
		$vals = "$in{'value0'} $in{'value1'}";
		}
	$name = $in{'name'} eq "" ?    "$in{'origin'}." :
		$in{'name'} !~ /\.$/ ? "$in{'name'}.$in{'origin'}." :
				       $in{'name'};
	}

if ($in{'new'}) {
	# just adding a new record
	&create_record($in{'file'}, $name, $ttl, "IN", $in{'type'}, $vals);
	$r = { 'name' => $name, 'ttl' => $ttl, 'class' => 'IN',
	       'type' => $in{'type'}, 'values' => [ split(/\s+/, $vals) ] };
	($revconf, $revfile, $revrec) = &find_reverse($in{'value0'});
	if ($in{'rev'} && $revconf && !$revrec && &can_edit_reverse($revconf)) {
		# Add a reverse record if we are the master for the reverse
		# domain, and if there is not already a reverse record
		# for the address.
		&lock_file($revfile);
		&create_record($revfile,
			      &ip_to_arpa($in{'value0'}), $ttl,
			      "IN", "PTR", $name);
		@rrecs = &read_zone_file($revfile, $revconf->{'values'}->[0]);
		&bump_soa_record($revfile, \@rrecs);
		}

	($fwdconf, $fwdfile, $fwdrec) = &find_forward($vals);
	if ($in{'fwd'} && $fwdconf && !$fwdrec &&
	    &can_edit_zone($fwdconf->{'values'}->[0])) {
		# Add a forward record if we are the master for the forward
		# domain, and if there is not already an A record
		# for the address
		&lock_file($fwdfile);
		&create_record($fwdfile, $vals,
			       $ttl, "IN", "A", $in{'name'});
		@frecs = &read_zone_file($fwdfile, $fwdconf->{'values'}->[0]);
		&bump_soa_record($fwdfile, \@frecs);
		}
	}
else {
	# updating an existing record
	($orevconf, $orevfile, $orevrec) = &find_reverse($in{'oldvalue0'});
	($revconf, $revfile, $revrec) = &find_reverse($in{'value0'});
	&lock_file($r->{'file'});
	&modify_record($r->{'file'}, $r, $name, $ttl,
		       "IN", $in{'type'},$vals);

	if ($in{'rev'} && $orevrec && &can_edit_reverse($orevconf) &&
	    $in{'oldname'} eq $orevrec->{'values'}->[0] &&
	    $in{'oldvalue0'} eq &arpa_to_ip($orevrec->{'name'})) {
		# Updating the reverse record. Either the name, address
		# or both may have changed. Furthermore, the reverse record
		# may now be in a different file!
		&lock_file($orevfile);
		&lock_file($revfile);
		@orrecs = &read_zone_file($orevfile,$orevconf->{'values'}->[0]);
		@rrecs = &read_zone_file($revfile, $revconf->{'values'}->[0]);
		if ($revconf eq $orevconf && &can_edit_reverse($revconf)) {
			# old and new in the same file
			&modify_record($orevrec->{'file'} , $orevrec, 
				      &ip_to_arpa($in{'value0'}),
				      $orevrec->{'ttl'}, "IN", "PTR", $name);
			&bump_soa_record($orevfile, \@orrecs);
			}
		elsif ($revconf && &can_edit_reverse($revconf)) {
			# old and new in different files
			&delete_record($orevrec->{'file'} , $orevrec);
			&create_record($revfile, &ip_to_arpa($in{'value0'}),
				      $orevrec->{'ttl'}, "IN", "PTR", $name);
			&bump_soa_record($orevfile, \@orrecs);
			&bump_soa_record($revfile, \@rrecs);
			}
		else {
			# we don't handle the new reverse domain.. lose the
			# reverse record
			&delete_record($orevrec->{'file'}, $orevrec);
			&bump_soa_record($orevfile, \@orrecs);
			}
		}

	($ofwdconf, $ofwdfile, $ofwdrec) = &find_forward($in{'oldvalue0'});
	($fwdconf, $fwdfile, $fwdrec) = &find_forward($in{'value0'});
	if ($in{'fwd'} && $ofwdrec &&
	    &can_edit_zone($ofwdconf->{'values'}->[0]) &&
	    &arpa_to_ip($in{'oldname'}) eq $ofwdrec->{'values'}->[0] &&
	    $in{'oldvalue0'} eq $ofwdrec->{'name'}) {
		# Updating the forward record
		&lock_file($ofwdfile);
		&lock_file($fwdfile);
		@ofrecs = &read_zone_file($ofwdfile,$ofwdconf->{'values'}->[0]);
		@frecs = &read_zone_file($fwdfile, $fwdconf->{'values'}->[0]);
		if ($fwdconf eq $ofwdconf &&
		    &can_edit_zone($fwdconf->{'values'}->[0])) {
			# old and new are in the same file
			&modify_record($ofwdrec->{'file'} , $ofwdrec, $vals,
				       $ofwdrec->{'ttl'}, "IN", "A",
				       $in{'name'});
			&bump_soa_record($ofwdfile, \@ofrecs);
			}
		elsif ($fwdconf && &can_edit_zone($fwdconf->{'values'}->[0])) {
			# old and new in different files
			&delete_record($ofwdrec->{'file'} , $ofwdrec);
			&create_record($fwdfile, $vals, $ofwdrec->{'ttl'},
				       "IN", "A", $in{'name'});
			&bump_soa_record($ofwdfile, \@ofrecs);
			&bump_soa_record($fwdfile, \@frecs);
			}
		else {
			# lose the forward because it has been moved to
			# a zone not handled by this server
			&delete_record($ofwdrec->{'file'} , $ofwdrec);
			&bump_soa_record($ofwdfile, \@ofrecs);
			}
		}
	}
&bump_soa_record($in{'file'}, \@recs);
&unlock_all_files();
&webmin_log($in{'new'} ? 'create' : 'modify', 'record', $in{'origin'}, $r);
&redirect("edit_recs.cgi?index=$in{'index'}&type=$in{'type'}");

sub valname
{
return $_[0] =~ /[A-z0-9\-\.]+$/;
}

# can_edit_reverse(&zone)
sub can_edit_reverse
{
return $access{'reverse'} || &can_edit_zone(\%access, $_[0]->{'values'}->[0]);
}

   070701000356bb000081e40000000000000002000000013ac0388a000004b1000000200000000000000000000000000000001e00000003reloc/dnsadmin/save_slave.cgi #!/usr/local/bin/perl
# save_slave.cgi
# Save changes to slave zone options in named.boot

require './dns-lib.pl';
&ReadParse();
&lock_file($config{'named_boot_file'});
$zconf = &get_config()->[$in{'index'}];
$whatfailed = "Failed to save slave zone";
%access = &get_module_acl();
&can_edit_zone(\%access, $zconf->{'values'}->[0]) ||
        &error("You are not allowed to edit this zone");

@mast = split(/\s+/, $in{'masters'});
foreach $m (@mast) {
	&check_ipaddress($m) ||
		&error("'$m' is not a valid master server IP address");
	}
if (!@mast) { &error("You must enter at least one master server address"); }
$in{'file_def'} || $in{'file'} =~ /^\S+$/ ||
	&error("'$in{'file'}' is not a valid records filename");

push(@vals, $zconf->{'values'}->[0]);
push(@vals, @mast);
if (!$in{'file_def'}) {
	$file = $in{'file'};
	$file = &base_directory($conf)."/".$file if ($file !~ /^\//);
	&allowed_zone_file(\%access, $file) ||
		&error("'$in{'file'}' is not an allowable records file");
	push(@vals, $in{'file'});
	}
&modify_zone($zconf, { 'name' => 'secondary', 'values' => \@vals });
&unlock_file($config{'named_boot_file'});
&webmin_log("opts", undef, $zconf->{'values'}->[0], \%in);
&redirect("");

   070701000356bc000081e40000000000000002000000013ac0388900000244000000200000000000000000000000000000001d00000003reloc/dnsadmin/save_text.cgi  #!/usr/local/bin/perl
# save_text.cgi
# Save a manually edit zone file

require './dns-lib.pl';
&ReadParse();
%access = &get_module_acl();
$zconf = &get_config()->[$in{'index'}];
&can_edit_zone(\%access, $zconf->{'values'}->[0]) ||
	&error("You are not allowed to edit this zone");
$file = &absolute_path($zconf->{'values'}->[1]);

$in{'text'} =~ s/\r//g;
&lock_file($file);
open(FILE, ">$file");
print FILE $in{'text'};
close(FILE);
&unlock_file($file);
&webmin_log("text", undef, $zconf->{'values'}->[0], { 'file' => $file } );
&redirect("edit_master.cgi?index=$in{'index'}");

070701000356bd000081e40000000000000002000000013ac0388900000335000000200000000000000000000000000000002000000003reloc/dnsadmin/save_zonedef.cgi   #!/usr/local/bin/perl
# save_zonedef.cgi
# Save zone defaults

require './dns-lib.pl';
&ReadParse();
$whatfailed = "Failed to save zone defaults";
%access = &get_module_acl();
$access{'defaults'} || &error("You cannot edit zone defaults");

&lock_file("$module_config_directory/zonedef");
$in{'refresh'} =~ /^\S+$/ || &error("Invalid refresh time");
$in{'retry'} =~ /^\S+$/ || &error("Invalid transfer retry time");
$in{'expiry'} =~ /^\S+$/ || &error("Invalid expiry time");
$in{'minimum'} =~ /^\S+$/ || &error("Invalid default time-to-live");
%zonedef = ( 'refresh', $in{'refresh'},
	     'retry', $in{'retry'},
	     'expiry', $in{'expiry'},
	     'minimum', $in{'minimum'} );
&save_zone_defaults(\%zonedef);
&unlock_file("$module_config_directory/zonedef");
&webmin_log("zonedef", undef, undef, \%in);
&redirect("");

   070701000356be000081e40000000000000002000000013ac0388a000005d6000000200000000000000000000000000000001e00000003reloc/dnsadmin/slave_form.cgi #!/usr/local/bin/perl
# slave_form.cgi
# A form for creating a new slave zone

require './dns-lib.pl';
%access = &get_module_acl();
$access{'slave'} || &error("You are not allowed to create slave zones");
&header("Create Slave Zone", "");
print "<hr>\n";

print "<form action=create_slave.cgi>\n";
print "<input type=hidden name=type value=\"$lctype\">\n";
print "<table border width=100%>\n";
print "<tr> <td $tb><b>New slave zone options</b></td> </tr>\n";
print "<tr> <td $cb><table width=100%>\n";

print "<tr> <td><b>Zone type</b></td>\n";
print "<td colspan=3><input type=radio name=rev value=0 checked>\n";
print "Forward (Names to Addresses)\n";
print "&nbsp;&nbsp;<input type=radio name=rev value=1>\n";
print "Reverse (Addresses to Names)</td> </tr>\n";

print "<tr> <td><b>Domain name / Network</b></td>\n";
print "<td colspan=3><input name=zone size=40></td> </tr>\n";

print "<tr> <td><b>Records file</b></td> <td colspan=3>\n";
print "<input type=radio name=file_def value=1> None\n";
print "<input type=radio name=file_def value=2 checked> Automatic\n";
print "<input type=radio name=file_def value=0>\n";
print "<input name=file size=30>",&file_chooser_button("file"),"</td> </tr>\n";

print "<tr> <td valign=top><b>Master servers</b></td> <td colspan=3>\n";
print "<textarea name=masters rows=4 cols=30></textarea></td> </tr>\n";

print "</table></td></tr></table><br>\n";
print "<input type=submit value=\"Create Zone\"></form>\n";

print "<hr>\n";
&footer("", "zone list");

  070701000356bf000081e40000000000000002000000013ac03889000000b3000000200000000000000000000000000000001900000003reloc/dnsadmin/start.cgi  #!/usr/local/bin/perl
# start.cgi
# Start bind 4

require './dns-lib.pl';
system("$config{'named_pathname'} -b $config{'named_boot_file'} >/dev/null </dev/null");
&redirect("");

 0707010003b3b3000041ed0000000000000001000000053ac03bde00000000000000200000000000000000000000000000000e00000003reloc/exports 0707010003b3b4000081a40000000000000002000000013ac0388b0000009b000000200000000000000000000000000000001900000003reloc/exports/config-aix  restart_command=if (killall -HUP nfsd && killall -HUP rpc.mountd); then /bin/true; else (rmnfs -N ; mknfs -B) fi
exports_file=/etc/exports
nfs_server=nfsd
 0707010003b3b5000081a40000000000000002000000013ac0388b000000f6000000200000000000000000000000000000002200000003reloc/exports/config-cobalt-linux portmap_command=/etc/rc.d/init.d/portmap* start
restart_command=if (killall -HUP rpc.nfsd && killall -HUP rpc.mountd); then /bin/true; else (/etc/rc.d/init.d/nfs stop ; /etc/rc.d/init.d/nfs start) fi
exports_file=/etc/exports
nfs_server=rpc.nfsd
  0707010003b3b6000081a40000000000000002000000013ac0388b000000ca000000200000000000000000000000000000002100000003reloc/exports/config-corel-linux  restart_command=if (killall -HUP rpc.nfsd && killall -HUP rpc.mountd); then /bin/true; else (/etc/init.d/netstd_nfs stop ; /etc/init.d/netstd_nfs start) fi
exports_file=/etc/exports
nfs_server=rpc.nfsd
  0707010003b3b7000081a40000000000000002000000013ac0388a000000ca000000200000000000000000000000000000002200000003reloc/exports/config-debian-linux restart_command=if (killall -HUP rpc.nfsd && killall -HUP rpc.mountd); then /bin/true; else (/etc/init.d/netstd_nfs stop ; /etc/init.d/netstd_nfs start) fi
exports_file=/etc/exports
nfs_server=rpc.nfsd
  0707010003b3b8000081a40000000000000002000000013ac0388a000000ca000000200000000000000000000000000000002600000003reloc/exports/config-debian-linux-2.2 restart_command=if (killall -HUP rpc.nfsd && killall -HUP rpc.mountd); then /bin/true; else (/etc/init.d/nfs-server stop ; /etc/init.d/nfs-server start) fi
exports_file=/etc/exports
nfs_server=rpc.nfsd
  0707010003b3b9000081a40000000000000002000000013ac0388b000000c6000000200000000000000000000000000000002000000003reloc/exports/config-open-linux   restart_command=if (killall -HUP rpc.nfsd && killall -HUP rpc.mountd); then /bin/true; else (/etc/rc.d/init.d/nfs stop ; /etc/rc.d/init.d/nfs start) fi
exports_file=/etc/exports
nfs_server=rpc.nfsd
  0707010003b3ba000081a40000000000000002000000013ac0388a000000c6000000200000000000000000000000000000002200000003reloc/exports/config-redhat-linux restart_command=if (killall -HUP rpc.nfsd && killall -HUP rpc.mountd); then /bin/true; else (/etc/rc.d/init.d/nfs stop ; /etc/rc.d/init.d/nfs start) fi
exports_file=/etc/exports
nfs_server=rpc.nfsd
  0707010003b3bb000081a40000000000000002000000013ac0388a000000a5000000200000000000000000000000000000002500000003reloc/exports/config-slackware-linux  restart_command=if (killall -HUP rpc.nfsd && killall -HUP rpc.mountd); then /bin/true; else (rpc.nfsd ; rpc.mountd) fi
exports_file=/etc/exports
nfs_server=rpc.nfsd
   0707010003b3bc000081a40000000000000002000000013ac0388a000000cc000000200000000000000000000000000000002000000003reloc/exports/config-suse-linux   restart_command=if (killall -HUP rpc.nfsd && killall -HUP rpc.mountd); then /bin/true; else (/sbin/init.d/nfs*server stop ; /sbin/init.d/nfs*server start) fi
exports_file=/etc/exports
nfs_server=rpc.nfsd
0707010003b3bd000081a40000000000000002000000013ac0388b000000ca000000200000000000000000000000000000002400000003reloc/exports/config-suse-linux-7.1   restart_command=if (killall -HUP rpc.nfsd && killall -HUP rpc.mountd); then /bin/true; else (/etc/init.d/nfs*server stop ; /etc/init.d/nfs*server start) fi
exports_file=/etc/exports
nfs_server=rpc.nfsd
  0707010003b3be000081a40000000000000002000000013ac0388b000000be000000200000000000000000000000000000002100000003reloc/exports/config-turbo-linux  restart_command=if (killall -HUP nfsd && killall -HUP rpc.mountd); then /bin/true; else (/etc/rc.d/init.d/nfs stop ; /etc/rc.d/init.d/nfs start) fi
exports_file=/etc/exports
nfs_server=nfsd
  0707010003b3bf000081a40000000000000002000000013ac0388a0000005c000000200000000000000000000000000000001a00000003reloc/exports/config.info exports_file=Exported filesystems file,0
restart_command=Command to restart export server,0
0707010003b3c0000081a40000000000000002000000013ac0388b0000006f000000200000000000000000000000000000001d00000003reloc/exports/config.info.de  exports_file=Datei mit exportierten Dateisystemen,0
restart_command=Kommando zum Neustart des Export Servers,0
 0707010003b3c1000081a40000000000000002000000013ac0388b0000007b000000200000000000000000000000000000001d00000003reloc/exports/config.info.es  exports_file=Archivo de sistema de archivos exportado,0
restart_command=Comando para rearrancar servidor de exortaciones,0
 0707010003b3c2000081a40000000000000002000000013ac0388b0000006f000000200000000000000000000000000000001d00000003reloc/exports/config.info.fr  exports_file=Fichier des syst鑝es de fichier export,0
restart_command=Commande pour red閙arrer le serveur,0
 0707010003b3c3000081a40000000000000002000000013ac0388b0000004f000000200000000000000000000000000000001d00000003reloc/exports/config.info.pl  exports_file=Plik 'exports',0
restart_command=Polecenie restartu serwera NFS,0
 0707010003b3c4000081a40000000000000002000000013ac0388b00000073000000200000000000000000000000000000002000000003reloc/exports/config.info.ru_RU   restart_command=暑爨礓 潆 疱耱囵蜞 皴疴屦 NFS,0
exports_file=脏殡 耦 耧桉觐 耧铕蜩痤忄眄 羿殡钼 耔耱屐,0
 0707010003b3c5000081a40000000000000002000000013ac0388b00000073000000200000000000000000000000000000002000000003reloc/exports/config.info.ru_SU   exports_file=媪侍 酉 有捎讼 芩有弦陨蚁琢挝偃 屏侍献偃 由釉磐,0
restart_command=胂土文 奶 遗釉烈粤 优易乓 NFS,0
 0707010003b3c6000081a40000000000000002000000013ac0388b00000067000000200000000000000000000000000000001d00000003reloc/exports/config.info.sv  exports_file=Fil med exporterade filsystem,0
restart_command=Kommando f鰎 att starta om exportserver,0
 0707010003b3c7000081a40000000000000002000000013ac0388b00000067000000200000000000000000000000000000001d00000003reloc/exports/config.info.tr  exports_file=Sunulan dosya sistemleri dosyas,0
restart_command=NFS sunucusu yeniden baatma komutu,0
 0707010003b3c8000081a40000000000000002000000013ac0388b0000004d000000200000000000000000000000000000002000000003reloc/exports/config.info.zh_CN   exports_file=被输出的文件系统文件,0
restart_command=重新启动输出服务器命令,0
   0707010003b3c9000081a40000000000000002000000013ac0388b0000004f000000200000000000000000000000000000002500000003reloc/exports/config.info.zh_TW.Big5  exports_file=蹲郎╰参郎,0
restart_command=穝币笆蹲郎狝竟,0
 0707010003b3ca000081e40000000000000002000000013ac0388a00001c31000000200000000000000000000000000000001e00000003reloc/exports/edit_export.cgi #!/usr/local/bin/perl
# edit_export.cgi
# Allow editing of one export to a client

require './exports-lib.pl';
&ReadParse();
if ($in{'new'}) {
	&header($text{'create_title'}, "", "create_export");
	}
else {
	&header($text{'edit_title'}, "", "edit_export");
	@exps = &list_exports();
	$exp = $exps[$in{'idx'}];
	%opts = %{$exp->{'options'}};
	}
print "<hr>\n";

print "<form action=save_export.cgi>\n";
print "<input type=hidden name=new value='$in{'new'}'>\n";
print "<input type=hidden name=idx value='$in{'idx'}'>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'edit_details'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td>",&hlink("<b>$text{'edit_dir'}</b>","dir"),"</td>\n";
print "<td colspan=3><input name=dir size=40 value=\"$exp->{'dir'}\">",
	&file_chooser_button("dir", 1),"</td> </tr>\n";

print "<tr> <td>",&hlink("<b>$text{'edit_active'}</b>","active"),"</td>\n";
printf "<td colspan=3><input type=radio name=active value=1 %s> %s\n",
	$in{'new'} || $exp->{'active'} ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=active value=0 %s> %s</td> </tr>\n",
	$in{'new'} || $exp->{'active'} ? '' : 'checked', $text{'no'};

$h = $exp->{'host'};
if ($h eq "=public") { $mode = 0; }
elsif ($h =~ /^\@(.*)/) { $mode = 1; $netgroup = $1; }
elsif ($h =~ /^(\S+)\/(\S+)$/) { $mode = 2; $network = $1; $netmask = $2; }
elsif ($h eq "") { $mode = 3; }
else { $mode = 4; $host = $h; }

print "<tr> <td rowspan=3 valign=top>",
      &hlink("<b>$text{'edit_to'}</b>","client"),"</td>\n";
printf "<td><input type=radio name=mode value=3 %s> %s</td>\n",
	$mode == 3 ? "checked" : "", $text{'edit_all'};

printf "<td colspan=2><input type=radio name=mode value=4 %s> %s\n",
	$mode == 4 ? "checked" : "", $text{'edit_host'};
print "<input name=host size=35 value='$host'></td> </tr>\n";

printf "<td><input type=radio name=mode value=0 %s> %s</td>\n",
	$mode == 0 ? "checked" : "", $text{'edit_webnfs'};

printf "<td colspan=2><input type=radio name=mode value=1 %s> %s\n",
	$mode == 1 ? "checked" : "", $text{'edit_netgroup'};
print "<input name=netgroup size=25 value='$netgroup'></td> </tr>\n";

printf "<td colspan=3><input type=radio name=mode value=2 %s> %s\n",
	$mode == 2 ? "checked" : "", $text{'edit_network'};
print "<input name=network size=15 value='$network'>\n";
print "$text{'edit_netmask'} ",
      "<input name=netmask size=15 value='$netmask'></td> </tr>\n";

print "<tr> <td>",&hlink("<b>$text{'edit_relative'}</b>",
		         "link_relative"),"</td>\n";
printf "<td><input type=radio name=link_relative value=1 %s> $text{'yes'}\n",
	defined($opts{'link_relative'}) ? "checked" : "";
printf "<input type=radio name=link_relative value=0 %s> $text{'no'}</td>\n",
	defined($opts{'link_relative'}) ? "" : "checked";

if (!$access{'simple'}) {
	print "<td>",&hlink("<b>$text{'edit_insecure'}</b>",
			    "insecure"),"</td>\n";
	printf "<td><input type=radio name=insecure value=0 %s> $text{'yes'}\n",
		defined($opts{'insecure'}) ? "" : "checked";
	printf "<input type=radio name=insecure value=1 %s> $text{'no'}</td> </tr>\n",
		defined($opts{'insecure'}) ? "checked" : "";

	print "</table></td></tr></table><p>\n";
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'edit_security'}</b></td> </tr>\n";
	print "<tr $cb> <td><table width=100%>\n";
	}

if ($access{'simple'}) {
	print "<td>",&hlink("<b>$text{'edit_mode'}</b>","ro"),"</td>\n";
	printf "<td><input type=radio name=ro value=1 %s> $text{'edit_ro'}\n",
		defined($opts{'ro'}) ? "checked" : "";
	printf "<input type=radio name=ro value=0 %s> $text{'edit_rw'}</td> </tr>\n",
		defined($opts{'ro'}) ? "" : "checked";
	}
else {
	print "<tr> <td>",&hlink("<b>$text{'edit_mode'}</b>","ro"),"</td>\n";
	printf "<td><input type=radio name=ro value=1 %s> $text{'edit_ro'}\n",
		defined($opts{'ro'}) ? "checked" : "";
	printf "<input type=radio name=ro value=0 %s> $text{'edit_rw'}</td>\n",
		defined($opts{'ro'}) ? "" : "checked";

	print "<td>",&hlink("<b>$text{'edit_noaccess'}</b>","noaccess"),"</td>\n";
	printf "<td><input type=radio name=noaccess value=1 %s> $text{'yes'}\n",
		defined($opts{'noaccess'}) ? "checked" : "";
	printf "<input type=radio name=noaccess value=0 %s> $text{'no'}</td> </tr>\n",
		defined($opts{'noaccess'}) ? "" : "checked";
	}

print "<tr> <td>",&hlink("<b>$text{'edit_squash'}</b>","squash"),
      "</td> <td colspan=3>\n";
printf "<input type=radio name=squash value=0 %s> $text{'edit_everyone'}\n",
	defined($opts{'no_root_squash'}) ? "checked" : "";
printf "<input type=radio name=squash value=1 %s> $text{'edit_except'}\n",
	!defined($opts{'no_root_squash'}) &&
	!defined($opts{'all_squash'}) ? "checked" : "";
printf "<input type=radio name=squash value=2 %s> $text{'edit_nobody'}\n";
	defined($opts{'all_squash'}) ? "checked" : "";
print "</td> </tr>\n";

if (!$access{'simple'}) {
	print "<tr> <td>",&hlink("<b>$text{'edit_uids'}</b>","squash_uids"),
	      "</td> <td>\n";
	printf "<input type=radio name=squash_uids_def value=1 %s> %s\n",
		$opts{'squash_uids'} ? "" : "checked", $text{'edit_none'};
	printf "<input type=radio name=squash_uids_def value=0 %s>\n",
		$opts{'squash_uids'} ? "checked" : "";
	printf "<input name=squash_uids size=15 value=\"%s\"></td>\n",
		$opts{'squash_uids'};

	print "<td>",&hlink("<b>$text{'edit_gids'}</b>","squash_gids"),"</td> <td>\n";
	printf "<input type=radio name=squash_gids_def value=1 %s> %s\n",
		$opts{'squash_gids'} ? "" : "checked", $text{'edit_none'};
	printf "<input type=radio name=squash_gids_def value=0 %s>\n",
		$opts{'squash_gids'} ? "checked" : "";
	printf "<input name=squash_gids size=15 value=\"%s\"></td> </tr>\n",
		$opts{'squash_gids'};

	$anonu = $opts{'anonuid'} ? getpwuid($opts{'anonuid'}) : "";
	print "<tr> <td>",&hlink("<b>$text{'edit_anonuid'}</b>","anonuid"),
	      "</td> <td>\n";
	printf "<input type=radio name=anonuid_def value=1 %s> $text{'edit_default'}\n",
		defined($opts{'anonuid'}) ? "" : "checked";
	printf "<input type=radio name=anonuid_def value=0 %s>\n",
		defined($opts{'anonuid'}) ? "checked" : "";
	printf "<input name=anonuid size=8 value=\"%s\">\n",
		$anonu ? $anonu : $opts{'anonuid'};
	print &user_chooser_button("anonuid", 0),"</td>\n";

	$anong = $opts{'anongid'} ? getgrgid($opts{'anongid'}) : "";
	print "<td>",&hlink("<b>$text{'edit_anongid'}</b>","anongid"),
	      "</td> <td>\n";
	printf "<input type=radio name=anongid_def value=1 %s> $text{'edit_default'}\n",
		defined($opts{'anongid'}) ? "" : "checked";
	printf "<input type=radio name=anongid_def value=0 %s>\n",
		defined($opts{'anongid'}) ? "checked" : "";
	printf "<input name=anongid size=8 value=\"%s\">\n",
		$anong ? $anong : $opts{'anongid'};
	print &group_chooser_button("anongid", 0),"</td> </tr>\n";
	}

print "</table></td></tr></table>\n";
if (!$in{'new'}) {
	print "<table width=100%><tr>\n";
	print "<td><input type=submit value=\"$text{'save'}\"></td>\n";
	print "<td align=right><input type=submit name=delete ",
	      "value=\"$text{'delete'}\"></td>\n";
	print "</tr></table>\n";
	}
else {
	print "<input type=hidden name=new value=1>\n";
	print "<input type=submit value=\"$text{'create'}\">\n";
	}

print "<hr>\n";
&footer("", $text{'index_return'});

   0707010003b3cb000081a40000000000000002000000013ac0388a00000ff9000000200000000000000000000000000000001d00000003reloc/exports/exports-lib.pl  # export-lib.pl
# Common functions for the linux exports file

do '../web-lib.pl';
&init_config();
%access = &get_module_acl();

# list_exports()
# Returns a list of all exports
sub list_exports
{
local (@rv, $pos, $lnum, $h, $o, $line);
return @list_exports_cache if (@list_exports_cache);
open(EXP, $config{'exports_file'});
$lnum = 0;
while($line = <EXP>) {
	local $slnum = $lnum;
	$line =~ s/\s+$//g;
	while($line =~ /\\$/) {
		# continuation character!
		$line =~ s/\\$//;
		$line .= <EXP>;
		$line =~ s/\s+$//g;
		$lnum++;
		}
	if ($line =~ /^(#*)\s*(\/\S*)\s+(.*)$/) {
		local $active = !$1;
		local $dir = $2;
		local $rest = $3;
		next if ($dir =~ /^$config{'exports_file'}/);
		$pos = 0;
		while($rest =~ /^([^\s+\(\)]*)\(([^\)]*)\)\s*(.*)$/ ||
		      $rest =~ /^([^\s+\(\)]+)\s*()(.*)$/) {
			local %exp;
			$exp{'active'} = $active;
			$exp{'dir'} = $dir;
			$exp{'host'} = $1;
			local $ostr = $2;
			$rest = $3;
			while($ostr =~ /^([a-z_]+)=([0-9,\-]+)\s*,\s*(.*)$/ ||
			      $ostr =~ /^([a-z_]+)=([0-9,\-]+)(.*)$/ ||
			      $ostr =~ /^([a-z_]+)=([^,\s]+),(.*)$/ ||
			      $ostr =~ /^([a-z_]+)=([^,\s]+)(.*)$/ ||
			      $ostr =~ /^([a-z_]+)()\s*,\s*(.*)$/ ||
			      $ostr =~ /^([a-z_]+)()(.*)$/) {
				if ($2 ne "") { $exp{'options'}->{$1} = $2; }
				else { $exp{'options'}->{$1} = ""; }
				$ostr = $3;
				}
			$exp{'line'} = $slnum;
			$exp{'eline'} = $lnum;
			$exp{'pos'} = $pos++;
			$exp{'index'} = scalar(@rv);
			push(@rv, \%exp);
			}
		}
	$lnum++;
	}
close(EXP);
@list_exports_cache = @rv;
return @list_exports_cache;
}

# delete_export(&export)
# Delete an existing export
sub delete_export
{
local @exps = &list_exports();
local @same = grep { $_ ne $_[0] && $_->{'line'} eq $_[0]->{'line'} } @exps;
local $lref = &read_file_lines($config{'exports_file'});
if (@same) {
	# other exports on the same line.. cannot totally delete
	splice(@$lref, $_[0]->{'line'}, $_[0]->{'eline'}-$_[0]->{'line'}+1,
	       &make_exports_line(@same));
	map { $_->{'line'} = $_->{'eline'} = $_[0]->{'line'} } @same;
	}
else {
	# remove export line
	splice(@$lref, $_[0]->{'line'}, $_[0]->{'eline'}-$_[0]->{'line'}+1);
	}
@list_exports_cache = grep { $_ ne $_[0] } @list_exports_cache;
&flush_file_lines();
}

# create_export(&export)
sub create_export
{
open(EXP, ">>$config{'exports_file'}");
print EXP &make_exports_line($_[0]),"\n";
close(EXP);
}

# modify_export(&export, &old)
sub modify_export
{
local @exps = &list_exports();
local @same = grep { $_->{'line'} eq $_[1]->{'line'} } @exps;
local $lref = &read_file_lines($config{'exports_file'});
if ($_[0]->{'dir'} eq $_[1]->{'dir'} &&
    $_[0]->{'active'} == $_[1]->{'active'} || @same == 1) {
	# directory not changed, or on a line of it's own
	splice(@same, &indexof($_[1],@same), 1, $_[0]);
	splice(@$lref, $_[1]->{'line'}, $_[1]->{'eline'}-$_[1]->{'line'}+1,
	       &make_exports_line(@same));
	}
else {
	# move to a line of it's own
	splice(@same, &indexof($_[1],@same), 1);
	splice(@$lref, $_[1]->{'line'}, $_[1]->{'eline'}-$_[1]->{'line'}+1,
	       &make_exports_line(@same));
	push(@$lref, &make_exports_line($_[0]));
	}
&flush_file_lines();
}

# make_exports_line([&export]+)
sub make_exports_line
{
local ($e, @htxt);
foreach $e (@_) {
	local %opts = %{$e->{'options'}};
	if (%opts || !$e->{'host'}) {
		push(@htxt, $e->{'host'}."(".
			    join(",", map { $opts{$_} eq "" ? $_
							    : "$_=$opts{$_}" }
			    (keys %opts)).")");
		}
	else { push(@htxt, $e->{'host'}); }
	}
return ($_[0]->{'active'} ? "" : "#").
       $_[0]->{'dir'}."\t".join(" ", @htxt);
}

# describe_host(host)
# Given a host, regexp or netgroup return a human-readable version
sub describe_host
{
if ($_[0] eq "=public") { return $text{'exports_webnfs'}; }
elsif ($_[0] =~ /^\@(.*)/) { return &text('exports_ngroup', "<i>$1</i>"); }
elsif ($_[0] =~ /^(\S+)\/(\S+)$/) {
	return &text('exports_net', "<i>$1/$2</i>"); }
elsif ($_[0] eq "" || $_[0] eq "*") { return $text{'exports_all'}; }
elsif ($_[0] =~ /\*/) { return &text('exports_hosts', "<i>$_[0]</i>"); }
else { return &text('exports_host', "<i>$_[0]</i>"); }
}

1;

   0707010003cae0000041ed0000000000000001000000023ac03bdd00000000000000200000000000000000000000000000001300000003reloc/exports/help    0707010003cae1000081a40000000000000002000000013ac0388a000000ad000000200000000000000000000000000000002200000003reloc/exports/help/active.es.html <header>Activa?</header>

Controla si esta exportaci髇 NFS est activa o no. Si no lo est, la l韓ea del archivo
<tt>exports</tt> con dicha exportaci髇 es comentada. 
<hr>

   0707010003cae2000081a40000000000000002000000013ac0388a0000008e000000200000000000000000000000000000001f00000003reloc/exports/help/active.html    <header>Active?</header>

Controls whether this NFS export is active or not. If not, it is commented
out in the <tt>exports</tt> file. 
<hr>

  0707010003cae3000081a40000000000000002000000013ac0388a000000a5000000200000000000000000000000000000002200000003reloc/exports/help/active.pl.html <header>Aktywne?</header>

Okre秎a, czy to udost阷nianie po NFS jest aktywne, czy nie. Nieaktywno舵
polega na zakomentarzowaniu w&nbsp; pliku <tt>exports</tt>.
<hr>
   0707010003cae4000081a40000000000000002000000013ac0388a000000ad000000200000000000000000000000000000002200000003reloc/exports/help/active.sv.html <header>Aktiverad?</header>

Anger om denna NFS-exportering 鋜 aktiverad eller ej. Om den inte 鋜
aktiverad kommer den att kommenteras bort i <tt>exports</tt>-filen. 
<hr>

   0707010003cae5000081a40000000000000002000000013ac0388a00000073000000200000000000000000000000000000002a00000003reloc/exports/help/active.zh_TW.Big5.html <header>琌币笆?</header>

北 NFS 蹲琌璶币笆. 狦匡拒, 硂盢穦р <tt>exports</tt> い闽︽爹秆奔 
<hr>

 0707010003cae6000081a40000000000000002000000013ac0388a00000105000000200000000000000000000000000000002300000003reloc/exports/help/anongid.es.html    <header>Tratar grupos no fiables como</header>

Esta opci髇 determina como qu grupo local son tratados los clientes
no fiables. Puedes digitar una GID o seleccionar un grupo o escoger el valor
por defecto (t韕icamente el grupo <tt>ninguno (nobody)</tt>.
<hr>

   0707010003cae7000081a40000000000000002000000013ac0388a00000100000000200000000000000000000000000000002300000003reloc/exports/help/anongid.fr.html    <header>Trait les Groupes Ins閏ures Comme</header>

Cette option d閠ermine quel groupe local les groupes clients ins閏ure sont trait閟.  Vous pouvez entrer un num閞o de groupe ou en choisir un par d閒aut (g閚閞alement le groupe <tt>nobody</tt>).
<hr>
0707010003cae8000081a40000000000000002000000013ac0388a000000ee000000200000000000000000000000000000002000000003reloc/exports/help/anongid.html   <header>Treat untrusted groups as</header>

This option determines which local group untrusted client groups are treated
as. You may enter either a GID or select a group, or choose the default
(typically the group <tt>nobody</tt>).
<hr>

  0707010003cae9000081a40000000000000002000000013ac0388a00000101000000200000000000000000000000000000002300000003reloc/exports/help/anongid.pl.html    <header>Traktuj niewiarygodne grupy jako</header>

Ta opcja okre秎a jako jaka grupa lokalna s traktowane niewiarygodne grupy
stacji klienckiej. Mo縠sz poda numer GID, wybra nazw grupy lub warto舵
domy秎n (zazwyczaj jest to grupa <tt>nobody</tt>).
<hr>
   0707010003caea000081a40000000000000002000000013ac0388a000000ed000000200000000000000000000000000000002300000003reloc/exports/help/anongid.sv.html    <header>Behandla op錶itliga grupper som</header>

Denna inst鋖lning anger vilken lokal grupp som op錶itliga klientgrupper
ska behandlas som. Ange ett GID, en grupp eller v鋖j standardinst鋖lningen
(oftast gruppen <tt>nobody</tt>).
<hr>

   0707010003caeb000081a40000000000000002000000013ac0388a000000b0000000200000000000000000000000000000002b00000003reloc/exports/help/anongid.zh_TW.Big5.html    <header>盢ぃ獺ヴ竤舱讽Θ</header>

硂匡兜∕﹚璶盢ぃ獺ヴめ狠竤舱讽Θセ狠竤舱. 眤块 GID ┪匡拒竤舱, ┪匡拒箇砞竤舱 ( <tt>nobody</tt> 竤舱).
<hr>

0707010003caec000081a40000000000000002000000013ac0388a0000010d000000200000000000000000000000000000002300000003reloc/exports/help/anonuid.es.html    <header>Tratar usuarios no fiables como</header>

Esta opci髇 determina como qu usuario local son tratados los clientes
no fiables. Puedes digitar una UID o seleccionar un usuario o escoger el valor
por defecto (t韕icamente el usuario <tt>ninguno (nobody)</tt>.
<hr>

   0707010003caed000081a40000000000000002000000013ac0388a000000fe000000200000000000000000000000000000002300000003reloc/exports/help/anonuid.fr.html    <header>Trait les Usagers Ins閏ures Comme</header>

Cette option d閠ermine quel groupe local les usagers clients ins閏ure sont trait閟.  Vous pouvez entrer un num閞o d'usager ou en choisir un par d閒aut (g閚閞alement l'usager <tt>nobody</tt>).
<hr>
  0707010003caee000081a40000000000000002000000013ac0388a000000e9000000200000000000000000000000000000002000000003reloc/exports/help/anonuid.html   <header>Treat untrusted users as</header>

This option determines which local user untrusted client users are treated
as. You may enter either a UID or select a user, or choose the default
(typically the user <tt>nobody</tt>).
<hr>

   0707010003caef000081a40000000000000002000000013ac0388a00000121000000200000000000000000000000000000002300000003reloc/exports/help/anonuid.pl.html    <header>Traktuj niewiarygodnych u縴tkownik體 jako</header>

Ta opcja okre秎a, jako jaki u縴tkownik lokalny s traktowani niewiarygodni
u縴tkownicy stacji klienckich. Mo縠sz poda numer UID, wybra nazw
u縴tkownika lub warto舵 domy秎n (zazwyczaj jest to u縴tkownik
<tt>nobody</tt>).
<hr>
   0707010003caf0000081a40000000000000002000000013ac0388a000000f5000000200000000000000000000000000000002300000003reloc/exports/help/anonuid.sv.html    <header>Behandla op錶itliga anv鋘dare som</header>

Denna inst鋖lning anger vilken lokal anv鋘dare som op錶itliga klienter
ska behandlas som. Ange ett UID, en anv鋘dare eller v鋖j standardinst鋖lningen
(oftast anv鋘daren <tt>nobody</tt>).
<hr>

   0707010003caf1000081a40000000000000002000000013ac0388a000000bc000000200000000000000000000000000000002b00000003reloc/exports/help/anonuid.zh_TW.Big5.html    <header>盢ぃ獺ヴㄏノ讽Θ</header>

硂匡兜∕﹚璶盢ぃ獺ヴめ狠ㄏノ讽Θセ狠ㄏノ. 眤块 UID ┪匡拒ㄏノ, ┪匡拒箇砞ㄏノ ( <tt>nobody</tt> ㄏノ).
<hr>

0707010003caf2000081a40000000000000002000000013ac0388a00000518000000200000000000000000000000000000002200000003reloc/exports/help/client.es.html <header>Exportar a...</header>

Las m醧uinas que tendr醤 acceso al directorio exportado. Se permiten cinco
formas para especificar qu m醧uinas est醩 autorizadas a montar el directorio:
<dl>
<dt><b>Cualquiera</b>
<dd>Cualquier m醧uina capaz de contactar con tu sistema tiene el acceso
    autorizado. Esta opci髇 deber韆 de ser usadas con mucho cuidado,
    especialmente si tu sistema est conectado a Internet.
<dt><b>M醧uina(s)</b>
<dd>蓅ta puede ser o una direcci髇 IP o un nombre de m醧uina o una expresi髇
    regular como <tt>*.foo.com</tt>. En el 鷏timo caso, cualquier m醧uina
    cuya b鷖queda en DNS al rev閟 por direcci髇 IP coincida con la expresi髇
    tendr permitido el acceso.
<dt><b>Clientes WebNFS</b>
<dd>Permite que aquellos clientes que usen el protocolo WebNFS de Sun puedan
    acceder a este directorio.
<dt><b>Grupo de Red</b>
<dd>Permite que todos los miembros del grupo de red NIS especificado accedan
    a esta exportaci髇.
<dt><b>Red</b> y <b>M醩cara de Red</b>
<dd>Cualquier m醧uina dentro de las subred especificada tiene permitido el
    acceso. Por ejemplo, si la red fuera <tt>10.1.2.0</tt> y la m醩cara
    de red <tt>255.255.255.0</tt>, todas las m醧uinas con direcciones IP
    desde la <tt>10.1.2.0</tt> a la <tt>10.1.2.255</tt> estar韆n autorizadas.
</dl>
<hr>

0707010003caf3000081a40000000000000002000000013ac0388a00000395000000200000000000000000000000000000002200000003reloc/exports/help/client.fr.html <header>Partag ...</header>

L'h魌e qui aura acc鑣 au r閜ertoire partag.  Cinq voies possibles de sp閏ifier quel h魌e sont autoris閑s  monter le r閜ertoire sont :
<dl>
<dt><b>Tous</b>
<dd>Tout h魌e capable de contacter le syst鑝e.  Cette option doit 阾re utilis閑 avec soin, sp閏ialement si votre syst鑝e est connect  Internet.
<dt><b>H魌es</b>
<dd>Ils peuvent 阾re une adresse IP, un nom d'h魌e, ou une expression r間uli鑢e comme <tt>*.foo.com</tt>.  Dans le dernier cas, tout h魌e auquel la v閞ification inverse de nom de domaine correspondra  l'adresse IP seront autoris.
<dt><b>WebNFS clients</b>
<dd>Alloue l'acc鑣 aux clients utilisant le protocole WebNFS de Sun
<dt><b>Groupe r閟eau</b>
<dd>Alloue  tous les membres d'un groupe r閟eau NIS sp閏ifi d'avoir acc鑣  ce partage
<dt><b>R閟eau</b> et <b>Masque de sous-r閟eau</b>
<dd>Tout h魌e dans le r閟eau sp閏ifi ont acc鑣.
</dl>
<hr>
   0707010003caf4000081a40000000000000002000000013ac0388a00000461000000200000000000000000000000000000001f00000003reloc/exports/help/client.html    <header>Export to..</header>

The hosts that will have access to the exported directory. Five ways of
specifying which hosts are allowed to mount the directory are available :
<dl>
<dt><b>Everyone</b>
<dd>Any host capable of contacting your system is allowed access. This option
    should be used with care, especially if your system is connected to the
    Internet.
<dt><b>Hosts(s)</b>
<dd>This can either be a single IP address, a single hostname, or a regular
    expression like <tt>*.foo.com</tt>. In the last case, any host whose
    reverse DNS lookup by IP address matches the expression will be allowed
    access.
<dt><b>WebNFS clients</b>
<dd>Allows clients using Sun's WebNFS protocol to access this directory.
<dt><b>Netgroup</b>
<dd>Allows all members of the specified NIS netgroup to access this export.
<dt><b>Network</b> and <b>Netmask</b>
<dd>Any host in the specified subnet is allowed access. For example, if the
    network was <tt>10.1.2.0</tt> and the netmask <tt>255.255.255.0</tt>,
    all hosts with IP addresses from <tt>10.1.2.0</tt> to <tt>10.1.2.255</tt>
    would be allowed.
</dl>
<hr>

   0707010003caf5000081a40000000000000002000000013ac0388a00000532000000200000000000000000000000000000002200000003reloc/exports/help/client.pl.html <header>Udost阷niaj dla..</header>

Komputery, kt髍e b阣 mia硑 dost阷 do wyeksportowanego katalogu. Jest pi赕
mo縧iwych sposob體 okre秎enia, kt髍ym komputerom wolno montowa ten
katalog&nbsp;:
<dl>
<dt><b>Wszystkim</b>
<dd>Dost阷 uzyzska dowolny komputer, kt髍y jest w&nbsp;stanie po潮czy si
    z&nbsp;twoim systemem. Ta opcja powinna by u縴wana ze szczeg髄n
    ostro縩o禼i zw砤szcza, je縠li tw骿 system jest pod潮czony do Internetu.
<dt><b>Komputerom</b>
<dd>Mo縠 to by pojedynczy adres IP, pojedyncza nazwa komputera lub
    wyra縠nie regularne takie, jak <tt>*.foo.com</tt>. W&nbsp;ostatnim
    przypadku dost阷 uzyska dowolny komputer, kt髍ego IP rozwi眤uje si
    w&nbsp;odwrotnym DNS-ie do nazwy pasuj眂ej do podanego wyra縠nia.
<dt><b>Klienci WebNFS</b>
<dd>Pozwala na dost阷 do katalogu klientom korzystaj眂ym z&nbsp;Sun-owskiego
    protoko硊 WebNFS.
<dt><b>Grupa sieciowa</b>
<dd>Pozwala uzyska dost阷 do tego zasobu wszystkim cz硂nkom podanej grupy
    sieciowej NIS-u.
<dt><b>Sieci</b> z&nbsp;<b>mask</b>
<dd>Pozwala na dost阷 z&nbsp;dowolnego komputera w&nbsp;okre秎onej sieci.
    Na przyk砤d, je秎i t sieci b阣zie <tt>10.1.2.0</tt> a&nbsp;jej mask
    <tt>255.255.255.0</tt>, to dost阷 uzyskaj wszystkie komputery o&nbsp;IP
    z&nbsp;zakresu od <tt>10.1.2.0</tt> do <tt>10.1.2.255</tt>.
</dl>
<hr>
  0707010003caf6000081a40000000000000002000000013ac0388a00000492000000200000000000000000000000000000002200000003reloc/exports/help/client.sv.html <header>Exportera till ...</header>

Datorer som ska ha tillg錸g till den exporterade katalogen. Det finns
fem s鋞t att ange de datorer som f錼 montera katalogen:
<dl>
<dt><b>Alla</b>
<dd>Alla datorer som kan komma 錿 systemet f錼 tillg錸g till katalogen.
    Detta alternativ ska du vara f鰎siktig med, s鋜skilt om ditt system
    鋜 kopplat till Internet.
<dt><b>Datorer(s)</b>
<dd>H鋜 kan du ange en IP-adress, ett datornamn eller ett regulj鋜t uttryck,
    t ex <tt>*.foo.com</tt>. Det senare alternativet inneb鋜 att alla
    datorer som vid bak錿uppslagning visar sig finnas i dom鋘en foo.com
    f錼 tillg錸g till katalogen.
<dt><b>WebNFS-klienter</b>
<dd>Klienter som anv鋘der Suns WebNFS-protokoll f錼 tillg錸g till katalogen.
<dt><b>N鋞verksgrupp</b>
<dd>Alla medlemmar i den angivna NIS-n鋞verksgruppen f錼 tillg錸g till katalogen.
<dt><b>N鋞verk</b> och <b>N鋞mask</b>
<dd>Alla datorer i det angivna deln鋞et f錼 tillg錸g till katalogen.
    Om du till exempel har angivit n鋞verket <tt>10.1.2.0</tt> och n鋞masken
    <tt>255.255.255.0</tt> f錼 alla datorer med IP-adresser fr錸
    <tt>10.1.2.0</tt> till <tt>10.1.2.255</tt> tillg錸g till den.
</dl>
<hr>

  0707010003caf7000081a40000000000000002000000013ac0388a0000031b000000200000000000000000000000000000002a00000003reloc/exports/help/client.zh_TW.Big5.html <header>蹲倒...</header>

硂穦诀. Τき贺ぃ﹚よ猭ノ硂よ:
<dl>
<dt><b>ヴ</b>
<dd>ヴ诀砆す砛眤穦. 硂匡兜莱赣璶みㄏノ, 疭琌讽眤╰参Τ硈钡呼悔呼隔.
<dt><b>诀</b>
<dd>硂琌 IP , 诀嘿, ┪タ砏ボ猭ㄒ <tt>*.foo.com</tt>. 程硂猵い, ヴ诀 DNS は琩挡狦璶才硂ボΑ常.
<dt><b>WebNFS め狠</b>
<dd>す砛め狠ㄏノ Sun  WebNFS 硄癟﹚ㄓ硂ヘ魁.
<dt><b>呼隔竤舱</b>
<dd>す砛┮Τ﹚ NIS 呼隔竤舱ず诀σ硂蹲.
<dt><b>呼隔</b>籔<b>呼隔綛竛</b>
<dd>ヴ﹚呼隔い诀常. 羭ㄒτē, 狦呼隔﹚ <tt>10.1.2.0</tt> τ呼隔綛竛﹚ <tt>255.255.255.0</tt>, 玥┮Τ IP 絛瞅 <tt>10.1.2.0</tt>  <tt>10.1.2.255</tt> ぇ丁诀常穦砆す砛.
</dl>
<hr>

 0707010003caf8000081a40000000000000002000000013ac0388a00000090000000200000000000000000000000000000002900000003reloc/exports/help/create_export.es.html  <header>Crear Exportaci髇</header>

Esta p醙ina te permite especificar un directorio a ser exportado y el
cliente al cual ser exportado.
<hr>

0707010003caf9000081a40000000000000002000000013ac0388a00000082000000200000000000000000000000000000002900000003reloc/exports/help/create_export.fr.html  <header>Cr閑r un Partage</header>

Cette page vous permet de sp閏ifier quel r閜ertoire partag et quel client y a acc鑣.
<hr>
  0707010003cafa000081a40000000000000002000000013ac0388a00000089000000200000000000000000000000000000002600000003reloc/exports/help/create_export.html <header>Create Export</header>

This page allows you to specify a directory for exporting, and the client
to which it is exported.
<hr>

   0707010003cafb000081a40000000000000002000000013ac0388a000000a2000000200000000000000000000000000000002900000003reloc/exports/help/create_export.pl.html  <header>Nowe udost阷nianie</header>

Ta strona pozwala ci na okre秎enie katalogu, kt髍y chcesz udost阷nia oraz
klienta, dla kt髍ego ma on by udost阷niony.
<hr>
  0707010003cafc000081a40000000000000002000000013ac0388a00000091000000200000000000000000000000000000002900000003reloc/exports/help/create_export.sv.html  <header>L鋑g till exportering</header>

P denna sida anger du en katalog som ska exporteras och den klient
som katalogen exporteras till.
<hr>

   0707010003cafd000081a40000000000000002000000013ac0388a0000005b000000200000000000000000000000000000003100000003reloc/exports/help/create_export.zh_TW.Big5.html  <header>ミ蹲</header>

硂す砛眤﹚璶蹲ヘ魁, 籔め狠闽舦.
<hr>

 0707010003cafe000081a40000000000000002000000013ac0388a0000018a000000200000000000000000000000000000001f00000003reloc/exports/help/dir.es.html    <header>Directorio a exportar</header>

Este es el directorio que es exportado a los clientes listados en la
secci髇 <a href=client>Exportar a...</a>. Al contrario que otros servidores
NFS, Linux soporta la reexportaci髇 de un directorio que ha sido montado
mediante NFS desde otra m醧uina y la exportaci髇 de un directorio que
contiene puntos de montaje para otros sistemas de archivos.
<hr>

  0707010003caff000081a40000000000000002000000013ac0388a00000159000000200000000000000000000000000000001f00000003reloc/exports/help/dir.fr.html    <header>R閜ertoire  Partager</header>

Ceci est le r閜ertoire qui sera partag aux clients list閟 dans la section <a href=client>Partag </a>.  Contrairement aux autres serveurs NFS, Linux supporte le repartage de r閜ertoire qui a d閖 閠 mont par un autre h魌e et de repartager  son tour du contenu de d'autre syst鑝e de fichier.
<hr>
   0707010003cb00000081a40000000000000002000000013ac0388a0000015f000000200000000000000000000000000000001c00000003reloc/exports/help/dir.html   <header>Directory to export</header>

This is the directory being exported to the clients listed in the
<a href=client>Export to..</a> section. Unlike other NFS servers, Linux
supports the re-exporting of a directory that has been NFS mounted from
another host, and the exporting of a directory that contains mount points
for other filesystems.
<hr>

 0707010003cb01000081a40000000000000002000000013ac0388a0000015c000000200000000000000000000000000000001f00000003reloc/exports/help/dir.pl.html    <header>Udost阷niany katalog</header>

To jest nazwa katalogu udost阷nianego klientom wymienionym w&nbsp;pozycji
<a href=client>Udost阷niaj dla..</a>. W&nbsp;odr罂nieniu od innych sewrer體
NFS-u, Linux potrafi udost阷nia katalog podmontowany po NFS-ie
z&nbsp;innego komputera, jak te katalog, kt髍y zawiera podmontowane inne
systemy plik體.
<hr>
0707010003cb02000081a40000000000000002000000013ac0388a00000156000000200000000000000000000000000000001f00000003reloc/exports/help/dir.sv.html    <header>Katalog att exportera</header>

Detta 鋜 den katalog som exporteras till de klienter som anges i
<a href=client>Exportera till ...</a>-stycket. Till skillnad fr錸
andra NFS-servrar g錼 det i Linux att exportera en katalog som redan
har NFS-monterats av en annan dator eller som inneh錶ler
monteringspunkter f鰎 andra filsystem.
<hr>

  0707010003cb03000081a40000000000000002000000013ac0388a000000f1000000200000000000000000000000000000002700000003reloc/exports/help/dir.zh_TW.Big5.html    <header>璶蹲ヘ魁</header>


硂琌盢璶蹲倒<a href=client>蹲倒...</a>い诀ヘ魁. ぃ钩ㄤ NFS 狝竟, Linux や穿р眖ㄤ诀本更眔ヘ魁Ω蹲; τ蹲ヘ魁盢┮Τヘ魁, ㄏ琌ㄤ郎╰参い.
<hr>

   0707010003cb04000081a40000000000000002000000013ac0388a000000a3000000200000000000000000000000000000002700000003reloc/exports/help/edit_export.es.html    <header>Editar Exportaci髇</header>

Esta p醙ina te permite cambiar las opciones para un directorio ya exportado
para alg鷑 cliente o borrar la exportaci髇.
<hr>

 0707010003cb05000081a40000000000000002000000013ac0388a000000a3000000200000000000000000000000000000002700000003reloc/exports/help/edit_export.fr.html    <header>蒬iter un Partage</header>

Cette page vous permet de changer les options d'un r閜ertoire partag pour certain client ou de supprimer ce partage.
<hr>
 0707010003cb06000081a40000000000000002000000013ac0388a0000009c000000200000000000000000000000000000002400000003reloc/exports/help/edit_export.html   <header>Edit Export</header>

This page allows you to change the options for a currently exported
directory for some client, or to delete the export.
<hr>

0707010003cb07000081a40000000000000002000000013ac0388a000000ba000000200000000000000000000000000000002700000003reloc/exports/help/edit_export.pl.html    <header>Zmie udost阷nianie</header>

Ta strona pozwala ci na zmian parametr體 udost阷niania dla pewnego klienta
dla aktualnie udost阷nianego katalogu lub zako馽zy udost阷nianie.
<hr>
  0707010003cb08000081a40000000000000002000000013ac0388a0000008a000000200000000000000000000000000000002700000003reloc/exports/help/edit_export.sv.html    <header>膎dra exportering</header>

P denna sida kan du 鋘dra inst鋖lningarna f鰎 en exporterad katalog
och ta bort exporteringen.
<hr>

  0707010003cb09000081a40000000000000002000000013ac0388a00000069000000200000000000000000000000000000002f00000003reloc/exports/help/edit_export.zh_TW.Big5.html    <header>絪胯蹲</header>

硂す砛眤э跑ヘ玡蹲倒琘ㄇ诀ぇヘ魁闽匡兜, ┪埃硂蹲.
<hr>

   0707010003cb0a000081a40000000000000002000000013ac0388a00000137000000200000000000000000000000000000002400000003reloc/exports/help/insecure.es.html   <header>縇os Clientes deben de estar en puerto seguro?</header>

Si esta opci髇 es seleccionada, los clientes NFS deben de utilizar un puerto
UDP inferior a 1024. Esto hace posible que haya seguridad adicional para
los clientes Unix pero puede interferir con algunas implementaciones de NFS
para Windows.
<hr>

 0707010003cb0b000081a40000000000000002000000013ac0388a00000119000000200000000000000000000000000000002400000003reloc/exports/help/insecure.fr.html   <header>Les clients Doivent 阾re sur un Port S閏ure?</header>

Si cette option est choisie, les clients NFS doivent 阾re sur un port UDP plus petit que 1024.  Ceci procure une s閏urit additionnelle aux clients Unix mais peut interf閞er avec quelques clients NFS Windows.
<hr>
   0707010003cb0c000081a40000000000000002000000013ac0388a000000f0000000200000000000000000000000000000002100000003reloc/exports/help/insecure.html  <header>Clients must be on secure port?</header>

If this option is chosen, NFS clients must used a UDP port less than 1024.
This provides additional security for Unix clients, but may interfere with
some Windows NFS implementations.
<hr>

0707010003cb0d000081a40000000000000002000000013ac0388a00000125000000200000000000000000000000000000002400000003reloc/exports/help/insecure.pl.html   <header>Tylko klienci na bezpiecznych portach?</header>

Je秎i ta opcja jest w潮czona, klienci NFS musz u縴wa port體 poni縠j 1024.
Zapewnia to wi阫sze bezpiecze駍two w&nbsp;przypadku klient體 uniksowych, ale
mo縠 nie wsp蟪dzia砤 z&nbsp;niekt髍ymi implementacjami NFS-u
w&nbsp;Windows.
<hr>
   0707010003cb0e000081a40000000000000002000000013ac0388a00000101000000200000000000000000000000000000002400000003reloc/exports/help/insecure.sv.html   <header>Endast klienter fr錸 s鋕ra portar?</header>

Om du v鋖jer denna inst鋖lning m錽te NFS-klienterna anv鋘da en UDP-port
l鋑re 鋘 1024. Detta ger 鰇ad s鋕erhet f鰎 Unix-klienter men kan trassla
till det f鰎 en del Windows-implementationer av NFS.
<hr>

   0707010003cb0f000081a40000000000000002000000013ac0388a000000b6000000200000000000000000000000000000002c00000003reloc/exports/help/insecure.zh_TW.Big5.html   <header>め狠琌ゲ斗ㄏノ硄癟梆?</header>

狦匡拒硂匡兜, NFS ゲ斗ㄏノ 1024  UDP 硄癟梆. 硂盢癸 Unix め狠糤ㄇ┦, 紇臫ㄇ跌怠 NFS ╰参笲.
<hr>

  0707010003cb10000081a40000000000000002000000013ac0388a000003f0000000200000000000000000000000000000002100000003reloc/exports/help/intro.es.html  <header>Introducci髇 a Comparticiones NFS</header>

<include nfs.es>

<h3>NFS para Linux</h3>
Este m骴ulo te permite configurar directorios (llamados <i>exportaciones</i>
en Linux) compartidos en tu sistema a trav閟 de NFS. La primera p醙ina te
muestra una lista de directorios y de clientes a los que aquellos han sido
exportados, permiti閚dote hacer click en el cliente para editar sus opciones
o empezar a exportar un nuevo directorio. <p>

Bajo la lista de comparticiones en la primera p醙ina hay un bot髇 que hace
posible que la configuraci髇 en curso quede activa. Esto se realiza mediante
la parada y rearranque de los procesos actuales del servidor NFS. <p>

Si alg鷑 directorio y uno de sus subdirectorios es exportado, las opciones
para el directorio m醩 espec韋ico se aplicar醤 a los clientes. Por ejemplo,
si <tt>/usr</tt> y <tt>/usr/local</tt> son exportados, un cliente que acceda
a <tt>/usr/local/bin</tt> se ver afectado por las opciones de la exportaci髇
de <tt>/usr/local</tt>. <p>

<hr>

0707010003cb11000081a40000000000000002000000013ac0388a000003b5000000200000000000000000000000000000002100000003reloc/exports/help/intro.fr.html  <header>Introduction Au Partage NFS</header>

<include nfs>

<h3>NFS sous Linux</h3>
Ce module vous permet de configurer les r閜ertoires (appel <i>partages</i>) dans Linux) d'阾re partag via NFS depuis votre syst鑝e.  Cette premi鑢e page affiche la liste des r閜ertoires et les clients  qui ils sont partag閟, vous permettant de cliquer sur le client pour 閐iter les options ou pour commencer le partage d'un nouveau r閜ertoire. <p>

Sous la liste de partages de la premi鑢e page se trouve un bouton qui active la configuration.  Ce qui est fait en arr阾ant et red閙arrant le processus du serveur NFS.<p>

Si certain r閜ertoire et un de ses sous-r閜ertoire sont partag, les options du r閜ertoire le plus sp閏ifique s'applique aux clients.  Par exemple, si <tt>/usr</tt> et <tt>/usr/local</tt> sont tous les deux partag, un client acc鑔ant  <tt>/usr/local/bin</tt> sera affect par les options du partage de <tt>/usr</tt>.<p>

<hr>
   0707010003cb12000081a40000000000000002000000013ac0388a0000036d000000200000000000000000000000000000001e00000003reloc/exports/help/intro.html <header>Introduction to NFS Shares</header>

<include nfs>

<h3>Linux NFS</h3>
This module allows you to configure directories (called <i>exports</i>
in Linux) shared via NFS from your system. The first page
shows a list of directories and the clients they are exported to, allowing
you to click on the client to edit its options or start exporting
a new directory. <p>

Below the list of shares on the first page is a button which will
make the current configuration active. This is done by stopping and
starting the running NFS server processes. <p>

If some directory and one of its sub-directories is exported, the options
for the most specific directory will apply to clients. For example, if
<tt>/usr</tt> and <tt>/usr/local</tt> are both exported, a client accessing
<tt>/usr/local/bin</tt> will be effected by the options for the
<tt>/usr/local</tt> export. <p>

<hr>

   0707010003cb13000081a40000000000000002000000013ac0388a000003bb000000200000000000000000000000000000002100000003reloc/exports/help/intro.pl.html  <header>Udost阷nianie po NFS</header>

<include nfs>

<h3>NFS w Linuksie</h3>

Ten modu pozwala ci skonfigurowa udost阷niane przez tw骿 system po NFS-ie
katalogi (nazywane w&nbsp;Linuksie <i>exports</i>). Pierwsza strona ukazuje
list katalog體 oraz klient體, kt髍ym s udost阷niane. Je秎i naci秐iesz na
klienta, mo縠sz zmieni parametry udost阷nianego zasobu. Mo縠sz te
udost阷ni nowy katalog. <p>

Poni縠j listy zasob體 na pierwszej stronie znajduje si przycisk, kt髍y
s硊縴 do zastosowania bie勘cej konfiguracji. Dzieje si to poprzez
zatrzymanie i&nbsp;uruchomienie procesu serwera NFS-u. <p>

Je秎i pewien katalog oraz jeden z&nbsp;jego podkatalog體 jest udost阷niany,
dla klient體 maj zastosowanie opcje dla g酬bszego katalogu. Na przyk砤d,
je縠li s udost阷niane zar體no <tt>/usr</tt> jak i&nbsp;<tt>/usr/local</tt>,
dla klienta usi硊j眂ego uzyska dost阷 do <tt>/usr/local/bin</tt> istotne s
opcje dla zasobu <tt>/usr/local</tt>. <p>

<hr>
 0707010003cb14000081a40000000000000002000000013ac0388a00000365000000200000000000000000000000000000002100000003reloc/exports/help/intro.sv.html  <header>Introduktion till NFS-resurser</header>

<include nfs>

<h3>Linux NFS</h3>
I denna modul kan du g鰎a inst鋖lningar f鰎 kataloger (kallas
<i>exports</i> i Linux) som ska delas fr錸 ditt system via NFS.
F鰎stasidan visar en lista 鰒er kataloger samt de klienter som katalogerna
exporteras till. Om du klickar p en klient kan du 鋘dra inst鋖lningarna
f鰎 den samt exportera nya kataloger.

<p>Under listan finns en knapp som aktiverar inst鋖lningarna. Detta genomf鰎s
genom att alla NFS-serverprocesser stannas och startas om.

<p>Om en katalog och n錱on underkatalog till denna exporteras kommer
inst鋖lningarna att h鋗tas fr錸 den l鋑sta katalogen. Om exempelvis b錮e
<tt>/usr</tt> och <tt>/usr/local</tt> exporteras, kommer en klient som
monterar <tt>/usr/local/bin</tt> att p鍁erkas av de inst鋖lningar som gjorts
f鰎 <tt>/usr/local</tt>-exporteringen.
<hr>

   0707010003cb15000081a40000000000000002000000013ac0388a0000025f000000200000000000000000000000000000002900000003reloc/exports/help/intro.zh_TW.Big5.html  <header>NFS 蹲虏ざ</header>

<include nfs>

<h3>Linux NFS</h3>
硂家舱琵眤眖眤╰参竒パ NFS だㄉ╰参ヘ魁 ( Linux い嘿<i>蹲</i>). 材陪ボだㄉヘ魁籔だㄉめ狠, す砛眤竒パ翴匡め狠絪胯ㄤだㄉ匡兜┪秨﹍穝だㄉ. <p>

材だㄉ秙ㄏヘ玡跑ネ. 硂琌竒パ氨ゎ穝币笆ヘ玡磅︽い NFS 狝竟祘┮笷Θ. <p>

狦ヘ魁籔ウヘ魁常砆だㄉ, 癸璶ヘ魁匡兜盢穦甅ノ┮Τめ狠. 羭ㄒτē, 狦 <tt>/usr</tt> 籔 <tt>/usr/local</tt> 常砆だㄉ, め狠 <tt>/usr/local/bin</tt> , 盢穦 <tt>/usr/local</tt> 匡兜┮紇臫. <p>

<hr>

 0707010003cb16000081a40000000000000002000000013ac0388a000001b1000000200000000000000000000000000000002900000003reloc/exports/help/link_relative.es.html  <header>縃ago relativos los enlaces simb髄icos?</header>

Convierte los enlaces simb髄icos absolutos vistos por el cliente en enlaces
relativos. Por ejemplo, si el directorio <tt>/usr</tt> fue exportado, un
enlace desde <tt>/usr/local/bin</tt> a <tt>/usr/X11R6/bin</tt> ser韆
convertido a <tt>../X11R6/bin</tt>. Esto tiene especial sentido si el
cliente est montando el directorio en alg鷑 otro sitio que no es <tt>/usr</tt>.
<hr>

   0707010003cb17000081a40000000000000002000000013ac0388a0000008b000000200000000000000000000000000000002900000003reloc/exports/help/link_relative.fr.html  <header>Les Liens Symboliques Sont Relatifs?</header>

Tous liens symboliques absolu converti semble au client des liens relatif.
<hr>
 0707010003cb18000081a40000000000000002000000013ac0388a0000018a000000200000000000000000000000000000002600000003reloc/exports/help/link_relative.html <header>Make symbolic links relative?</header>

Converts absolute symbolic links seem by the client to relative links.
For example, if the directory <tt>/usr</tt> was exported, a link from
<tt>/usr/local/bin</tt> to <tt>/usr/X11R6/bin</tt> would be converted to
<tt>../X11R6/bin</tt>. This makes a lot more sense if the client is
mounting the directory somewhere else than <tt>/usr</tt>.
<hr>

  0707010003cb19000081a40000000000000002000000013ac0388a000001b9000000200000000000000000000000000000002900000003reloc/exports/help/link_relative.pl.html  <header>Wzgl阣ne dowi眤ania symboliczne?</header>

Okre秎a, czy przetwarza bezwzgl阣ne dowi眤ania symboliczne, tak by klient
je widzia jako dowi眤ania wzgl阣ne. Na przyk砤d, je秎i katalog
<tt>/usr</tt> zosta udost阷niony, to dowi眤anie
z&nbsp;<tt>/usr/local/bin</tt> do <tt>/usr/X11R6/bin</tt> b阣zie zamienione
na <tt>../X11R6/bin</tt>. Ma to du縪 wi阠ej sensu, je縠li klient montuje
katalog gdzie indziej ni w&nbsp;<tt>/usr</tt>.
<hr>
   0707010003cb1a000081a40000000000000002000000013ac0388a00000170000000200000000000000000000000000000002900000003reloc/exports/help/link_relative.sv.html  <header>Relativa symboliska l鋘kar?</header>

G鰎 om absoluta symboliska l鋘kar s att klienten ser dem som relativa.
Om exempelvis katalogen <tt>/usr</tt> exporteras kommer en l鋘k fr錸
<tt>/usr/local/bin</tt> till <tt>/usr/X11R6/bin</tt> att skrivas om till
<tt>../X11R6/bin</tt>. Detta 鋜 praktiskt om klienten inte skulle montera
katalogen p <tt>/usr</tt>.
<hr>

0707010003cb1b000081a40000000000000002000000013ac0388a00000139000000200000000000000000000000000000003100000003reloc/exports/help/link_relative.zh_TW.Big5.html  <header>琌盢才腹硈挡跑Θ癸硈挡?</header>

锣传荡癸隔畖才腹硈挡Θ癸隔畖才腹硈挡. 羭ㄒτē, 狦蹲ヘ魁 <tt>/usr</tt>, 眖 <tt>/usr/local/bin</tt>  <tt>/usr/X11R6/bin</tt> 硈挡盢穦砆锣传Θ <tt>../X11R6/bin</tt>. 硂ㄏ眔め狠ぃрだㄉ本 <tt>/usr</tt> , 隔畖ぃ穦睹奔.
<hr>

   0707010003cb1c000081a40000000000000002000000013ac0388a0000050f000000200000000000000000000000000000001f00000003reloc/exports/help/nfs.es.html    <h3>Introducci髇 a NFS</h3>

NFS es el protocolo est醤dar para compartir archivos utilizado por los sistemas
Unix. NFS permite a un sistema exportar un directorio a trav閟 de la red a
una o m醩 m醧uinas, permitiendo a los usuarios y a los programas de esas
m醧uinas acceder a los archivos exportados como si fueran locales. <p>

Un servidor NFS es un sistema que exporta uno o m醩 directorios, mientras que
un cliente NFS es un sistema que monta uno o m醩 directorios del servidor.
Una m醧uina puede ser a la vez servidor NFS y cliente de otros servidores. <p>

Un servidor controla qu clientes pueden montar un directorio exportado
mediante el chequeo de la direcci髇 IP del cliente contra una lista de
m醧uinas autorizadas a acceder al directorio requerido. El servidor puede
tambien designar una exportaci髇 como de s髄o-lectura o de s髄o-lectura para
ciertos clientes. <p>

Al contrario que otros sistemas de archivos de red, un cliente NFS no tiene
porqu hacer login en el servidor cuando monta un directorio exportado. El
servidor conf韆 en el cliente para autentificar a los usuario y para que
suministre la ID del usuario en curso cuando acceda a los archivos exportados.
De esta manera, s髄o deber韆s permitir montar directorios exportados a
m醧uinas cliente en las que conf韊s. <p>

 0707010003cb1d000081a40000000000000002000000013ac0388a000004ae000000200000000000000000000000000000001f00000003reloc/exports/help/nfs.fr.html    <header>Introduction  NFS</header>

NFS est un protocole de partage de fichier standard utilis sur les syst鑝es Unix.  NFS permet  un syst鑝e de partager un r閜ertoire sur un r閟eau  un autre h魌e, permettant aux usagers et applications de l'h魌e d'avoir acc鑣 aux fichiers partag.<p>

Un serveur NFS est un syst鑝e qui partage un ou plusieurs r閜ertoire, tandis qu'un client NFS est un syst鑝e qui monte un ou plusieurs r閜ertoire d'un serveur.  Un h魌e peut autant 阾re client que serveur NFS d'un autre h魌e.<p>

Un serveur contr鬺e quels clients peut monter un r閜ertoire partag en v閞ifiant l'adresse IP du client avec la liste des h魌es autoris pour le r閜ertoire demand.  Le serveur peu aussi partag en lecture seule ou d閟igner certains clients en lecture seulement.<p>

Contrairement aux autres syst鑝es de fichiers, un client NFS ne n閏essite pas d'ouverture de session au serveur pour monter un r閜ertoire partag.  Le serveur fait confiant au client et authentifie les usagers en leurs donnant un num閞o lors de l'acc鑣 au fichier partag.  Ainsi, vous pouvez allouer seulement certain h魌e client que vous faites confiance pour monter un r閜ertoire partag.<p>
<hr>
  0707010003cb1e000081a40000000000000002000000013ac0388a00000445000000200000000000000000000000000000001c00000003reloc/exports/help/nfs.html   <h3>Introduction to NFS</h3>

NFS is the standard file-sharing protocol used by Unix systems. NFS allows
one system to export a directory across the network to one or more other
hosts, allowing users and programs on those hosts to access exported files
as though they were local. <p>

An NFS server is a system which exports one or more directories, while an NFS
client is a system that mounts one or more directories from a server. A
host can be both an NFS server and a client of other servers. <p>

A server controls which clients can mount an exported directory by checking
the IP address of the client against a list of allowed hosts for the
requested directory. The server can also designate an export read-only,
or read-only for certain clients. <p>

Unlike other network filesystems, an NFS client does not have to login to
the server when mounting an exported directory. The server trusts the client
to authenticate users and provide the ID of the current user when accessing
exported files.  Thus you should only allow client hosts that you trust to
mount exported directories. <p>

   0707010003cb1f000081a40000000000000002000000013ac0388a0000050c000000200000000000000000000000000000001f00000003reloc/exports/help/nfs.pl.html    <h3>Wprowadzenie do NFS-u</h3>

NFS jest standardowym protoko砮m wsp蟪dzielenia plik體 u縴wanym przez
systemy uniksowe. Pozwala on systemowi udost阷ni ("wyeksportowa") pewien
katalog poprzez sie dla jednego lub wi阠ej komputer體, pozwalaj眂
u縴tkownikom i&nbsp;programom na tych komputerach uzyska dost阷 do
udost阷nionych plik體 tak, jakby by硑 one lokalne. <p>

Serwerem NFS-u jest system, kt髍y udost阷nia jeden lub wi阠ej katalog體,
podczas gdy klientem jest system, kt髍y montuje jeden lub wi阠ej katalog體
z&nbsp;serwera. Komputer mo縠 by jednocze秐ie serwerem oraz klientem innych
serwer體. <p>

Serwer okre秎a, kt髍zy klienci mog montowa udost阷niony katalog poprzez
por體nanie adresu IP klienta z&nbsp;list komputer體 dopuszczonych do
勘danego katalogu. Serwer mo縠 r體nie okre秎i zas骲 jako tylko do odczytu
lub tylko do odczytu dla pewnych klient體. <p>

W odr罂nieniu od innych sieciowych system體 plik體, klient NFS-u nie musi
si logowa do serwera podczas montowania udost阷nionego katalogu. Serwer
wierzy, 縠 klient autoryzowa u縴tkownik體 i&nbsp;okre秎i prawid硂wy numer
ID aktualnego u縴tkownika podczas dost阷u do udost阷nianych przez serwer
plik體. Wobec tego powiniene pozwoli na montowanie udost阷nianych zasob體
jedynie zaufanym komputerom klienckim. <p>
0707010003cb20000081a40000000000000002000000013ac0388a00000476000000200000000000000000000000000000001f00000003reloc/exports/help/nfs.sv.html    <h3>Introduktion till NFS</h3>

NFS 鋜 standardprotokollet f鰎 fildelning i Unix-system. Med NFS kan
ett system exportera en katalog 鰒er n鋞verket till en eller flera datorer,
s att anv鋘dare och program p dessa datorer kan komma 錿 filer som om
de fanns p de lokala datorerna.

<p>En NFS-server 鋜 ett system som exporterar en eller flera kataloger
och en NFS-klient 鋜 ett system som monterar en eller flera kataloger
fr錸 en server. Samma dator kan vara b錮e NFS-server och klient.

<p>Servern best鋗mer om en klient f錼 montera en exporterad katalog
genom att kontrollera IP-adressen f鰎 klienten mot en lista 鰒er
datorer som till錿s montera katalogen i fr錱a. Servern kan ocks g鰎a
s att en katalog exporteras med enbart l鋝r鋞tigheter, f鰎 alla klienter
eller vissa, namngivna.

<p>NFS-klienter beh鰒er, till skillnad fr錸 andra filsystem 鰒er n鋞verk,
inte logga in p servern d en exporterad katalog ska monteras. Servern
litar p att klienten har kontrollerat anv鋘darens identitet och att denna
identitet bifogas f鰎fr錱ningar. D鋜f鰎 kan det vara dumt att till錿a
montering fr錸 klienter som du inte fullst鋘digt litar p.
  0707010003cb21000081a40000000000000002000000013ac0388a0000029c000000200000000000000000000000000000002700000003reloc/exports/help/nfs.zh_TW.Big5.html    <h3>NFS 虏ざ</h3>

NFS 琌 Unix ╰参┮ㄏノ夹非郎だㄉ硄癟﹚. NFS す砛╰参盢ㄤヘ魁硓筁呼隔だㄉ倒ㄤ诀, す砛ㄤ诀ㄏノ┪祘Α砆蹲郎, 粄赣郎琌セ狠╰参. <p>

 NFS 狝竟琌盢┪ヘ魁蹲╰参, NFS め狠玥琌眖狝竟本更┪ヘ魁╰参. 诀琌 NFS 狝竟籔ㄤ狝竟め狠. <p>

狝竟竒パ浪琩め狠 IP 竚琌い, ∕﹚赣め狠琌本更蹲ヘ魁. 狝竟匡拒斑弄よΑ┪弄糶よΑ蹲倒疭﹚め狠. <p>

ぃ钩ㄤ呼隔郎╰参, NFS め狠本更ヘ魁, ぃ惠璶祅狝竟い. 狝竟盢獺ヴめ狠╰参ㄏノ蹲ヘ魁.┮眤莱赣盢ヘ魁蹲倒獺ヴ╰参. <p>

0707010003cb22000081a40000000000000002000000013ac0388a00000118000000200000000000000000000000000000002400000003reloc/exports/help/noaccess.es.html   <header>緿enegar acceso al directorio?</header>

Si se elige esta opci髇, los clientes especificados no tendr醤 acceso a
nada de este directorio. Esta opci髇 es s髄o realmente 鷗il si est醩
exportando un directorio padre pero deseas denegar el acceso a alg鷑
subdirectorio.
<hr>

0707010003cb23000081a40000000000000002000000013ac0388a0000011e000000200000000000000000000000000000002400000003reloc/exports/help/noaccess.fr.html   <header>Refuser l'Acc鑣 Au R閜ertoire?</header>

Si cette option est choisie, le client sp閏ifi n'aura pas acc鑣  aucun contenu de ce r閜ertoire.  Cette option est seulement utile si vous partag un r閜ertoire parent, mais que voulez refuser acc鑣  certain sous-r閜ertoire.
<hr>
  0707010003cb24000081a40000000000000002000000013ac0388a00000115000000200000000000000000000000000000002100000003reloc/exports/help/noaccess.html  <header>Deny access to directory?</header>

If this option is chosen, the specified clients will not be allowed access
to anything in this directory. This option is only really useful if you
are exporting a parent directory, but what to deny access to some subdirectory.
<hr>

   0707010003cb25000081a40000000000000002000000013ac0388a00000133000000200000000000000000000000000000002400000003reloc/exports/help/noaccess.pl.html   <header>Zablokowa dost阷 do katalogu?</header>

Je秎i ta opcja zostanie w潮czona, okre秎eni klienci nie b阣 mieli prawa
dost阷u do czegokolwiek w&nbsp;tym katalogu. Tak naprawd ta opcja jest
u縴teczna jedynie, gdy udost阷niasz katalog nadrz阣ny, ale chcesz zablokowa
dost阷 do pewnego podkatalogu.
<hr>
 0707010003cb26000081a40000000000000002000000013ac0388a000000ff000000200000000000000000000000000000002400000003reloc/exports/help/noaccess.sv.html   <header>Neka tillg錸g till katalog?</header>

Med denna inst鋖lning kommer angivna klienter inte att f tillg錸g till
n錱ot i denna katalog. Inst鋖lningen 鋜 mest anv鋘dbar om du exporterar
en katalog och vill neka tillg錸g till n錱on underkatalog.
<hr>

 0707010003cb27000081a40000000000000002000000013ac0388a000000b8000000200000000000000000000000000000002c00000003reloc/exports/help/noaccess.zh_TW.Big5.html   <header> 琌┶荡ヘ魁? </header>

狦砞﹚硂匡兜, ﹚め狠盢ぃ砆す砛硂ヘ魁いヴ狥﹁. 眤蹲璶ヘ魁ぃ辨ㄤい场だヘ魁砆, 硂盢穦Τノ.
<hr>

0707010003cb28000081a40000000000000002000000013ac0388a000000cb000000200000000000000000000000000000001e00000003reloc/exports/help/ro.es.html <header>Modo de Accesso</header>

Si esta opci髇 es puesta a <i>S髄o lectura</i>, los cliente no podr醤 crear,
modificar o borrar ning鷑 archivo a pesar de que seg鷑 los permisos de Unix
se pueda.
<hr>

 0707010003cb29000081a40000000000000002000000013ac0388a000000d7000000200000000000000000000000000000001e00000003reloc/exports/help/ro.fr.html <header>Lecture Seule</header>

Si cette option est mise  <i>Lecture seulement</i>, les clients ne seront plus capables de cr閑r, modifier ou supprimer un fichier, quelles que soient les permissions Unix.
<hr>
 0707010003cb2a000081a40000000000000002000000013ac0388a000000af000000200000000000000000000000000000001b00000003reloc/exports/help/ro.html    <header>Access mode</header>

If this option is set to <i>Read only</i>, clients will not be able to create,
modify or delete any files, regardless of Unix permissions.
<hr>

 0707010003cb2b000081a40000000000000002000000013ac0388a000000c9000000200000000000000000000000000000001e00000003reloc/exports/help/ro.pl.html <header>Tryb dost阷u</header>

Je秎i ta opcja jest ustawiona na <i>Tylko do odczytu</i>, to klienci nie
b阣 mogli tworzy, modyfikowa, ani usuwa plik體, niezale縩ie od
uniksowych praw dost阷u.
<hr>
   0707010003cb2c000081a40000000000000002000000013ac0388a000000b3000000200000000000000000000000000000001e00000003reloc/exports/help/ro.sv.html <header>R鋞tigheter</header>

Om du v鋖jer <i>Endast l鋝bart</i> h鋜 kommer klienter inte att kunna
skapa, 鋘dra eller ta bort filer, oavsett vilka Unix-r鋞tigheter de har.
<hr>

 0707010003cb2d000081a40000000000000002000000013ac0388a00000082000000200000000000000000000000000000002600000003reloc/exports/help/ro.zh_TW.Big5.html <header>家Α</header>

狦硂匡兜砞﹚Θ<i>斑弄</i>, ぃ阶 Unix 龟悔舦, め狠盢ぃミ, э┪埃ヴ郎.
<hr>

  0707010003cb2e000081a40000000000000002000000013ac0388a000002d7000000200000000000000000000000000000002200000003reloc/exports/help/squash.es.html <header>Confiar en los usuario remotos</header>

Determina qu usuarios de Unix en el cliente son fiables para el servidor.
Hay tres opciones disponibles:
<dl>
<dt><b>Cualquiera</b>
<dd>Todos los usuarios del cliente ser醤 tratados igual por el servidor
<dt><b>Cualquiera menos root</b>
<dd>El usuario <tt>root</tt> del cliente es tratado como el
    <a href=anonuid>usuario no fiable</a> por el servidor, pero los dem醩
    son considerados como fiables.
<dt><b>Nadie</b>
<dd>Todos los usuarios del cliente son tratados como el <a href=anonuid>
    usuario no fiable</a>. Esta opci髇 es buen韘ima cuando se exporta a
    un sistema que no controlas (como un PC mono-usuario) o cuando exportas
    a todo el mundo.
</dl>
<hr>

 0707010003cb2f000081a40000000000000002000000013ac0388a000002f0000000200000000000000000000000000000002200000003reloc/exports/help/squash.fr.html <header>Faire Confiance Aux Usagers Distants</header>

D閠ermine quels usagers Unix comme client peut 阾re fait confiance par le serveur.  Trois options sont disponibles :
<dl>
<dt><b>Tous</b>
<dd>Tous les usagers d'un client sont trait閟 comme le m阭e par le serveur
<dt><b>Tout le monde sauf 'root'</b>
<dd>L'usager <tt>root</tt> sur le client est trait comme un <a href=anonuid>usager ins閏ure</a> par le serveur, mais la confiance est faite  tous les autres usagers.
<dt><b>Nobody</b>
<dd>Tous les usagers du client sont trait閟 comme un <a href=anonuid>usager ins閏ure</a>.  Cette option est la meilleur quand elle est utilis閑 pour partager un syst鑝e que vous ne pouvez contr鬺er ou quand c'est partag  tout le monde.
</dl>
<hr>
0707010003cb30000081a40000000000000002000000013ac0388a00000293000000200000000000000000000000000000001f00000003reloc/exports/help/squash.html    <header>Trust remote users</header>

Determines which Unix users on the client are trusted by the server.
Three options are available :
<dl>
<dt><b>Everyone</b>
<dd>All client users will be treated the same by the server
<dt><b>Everyone except root</b>
<dd>The <tt>root</tt> user on the client is treated as the
    <a href=anonuid>untrusted user</a> by the server, but all other users
    are trusted.
<dt><b>Nobody</b>
<dd>All users on the client are treated as the <a href=anonuid>untrusted
    user</a>. This option is best used when exporting to a system that you
    do not control (such as a single-user PC), or when exporting to everyone.
</dl>
<hr>

 0707010003cb31000081a40000000000000002000000013ac0388a0000031b000000200000000000000000000000000000002200000003reloc/exports/help/squash.pl.html <header>Zaufani u縴tkownicy zdalni</header>

Okre秎a, kt髍zy u縴tkownicy stacji klienckich s wiarygodni dla serwera.
Dost阷ne s trzy mo縧iwo禼i&nbsp;:
<dl>
<dt><b>Wszyscy</b>
<dd>Wszyscy u縴tkownicy stacji klienckiej b阣 traktowani tak samo przez
    serwer.
<dt><b>Wszyscy opr骳z roota</b>
<dd>U縴tkownik <tt>root</tt> stacji klienckiej b阣zie traktowany przez
    serwer jako <a href=anonuid>u縴tkownik niewiarygodny</a>, za wszyscy
    pozostali jako wiarygodni.
<dt><b>Nikt</b>
<dd>Wszyscy u縴tkownicy stacji klienckiej b阣 traktowani jak
    <a href=anonuid>u縴tkownik niewiarygodny</a>. Ta opcja ma zastosowanie
    g丑wnie, gdy udost阷niasz zasoby systemowi, nad kt髍ym nie masz kontroli
    (na przyk砤d jednou縴tkownikowemu PC), lub gdy udost阷niasz dla
    wszystkich.
</dl>
<hr>
 0707010003cb32000081a40000000000000002000000013ac0388a000002be000000200000000000000000000000000000002200000003reloc/exports/help/squash.sv.html <header>Lita p anv鋘dare</header>

H鋜 anger du de Unix-anv鋘dare p klienten som servern ska lita p.
Det finns tre alternativ:
<dl>
<dt><b>Alla</b>
<dd>Alla anv鋘dare p klienten kommer att behandlas likadant av servern
<dt><b>Alla utom root</b>
<dd><tt>root</tt>-anv鋘dare p klienten behandlas som en
    <a href=anonuid>op錶itlig anv鋘dare</a> av servern, medan den litar
    p 鰒riga anv鋘dare.
<dt><b>Ingen</b>
<dd>Alla anv鋘dare p klienten behandlas som en <a href=anonuid>op錶itlig
    anv鋘dare</a> av servern. Detta alternativ 鋜 att f鰎edra om du exporterar
    till ett system som du inte har kontroll 鰒er (exempelvis en PC) eller
    om du exporterar katalogen till alla.
</dl>
<hr>

  0707010003cb33000081a40000000000000002000000013ac0388a000001ff000000200000000000000000000000000000002a00000003reloc/exports/help/squash.zh_TW.Big5.html <header>獺ヴ环狠ㄏノ</header>

∕﹚め狠ㄇㄏノ砆狝竟┮獺ヴ. ノ贺匡兜:
<dl>
<dt><b>ヴ</b>
<dd>┮Τめ狠ㄏノ常穦籔狝竟癸莱ㄏノΤ舦
<dt><b>埃 root ヴ</b>
<dd>め狠 <tt>root</tt> ㄏノ盢穦砆狝竟讽<a href=anonuid>ぃ獺ヴㄏノ</a>, ㄤㄏノ常Τ癸莱舦.
<dt><b>⊿Τ</b>
<dd>め狠┮Τㄏノ常穦砆讽<a href=anonuid>ぃ獺ヴㄏノ</a>. 硂匡兜琌眤蹲倒ぃ妮眤恨瞶╰参 (ㄒ PC) ┪蹲倒ヴ程匡兜.
</dl>
<hr>

 0707010003cb34000081a40000000000000002000000013ac0388a00000149000000200000000000000000000000000000002700000003reloc/exports/help/squash_gids.es.html    <header>GIDs no fiables</header>

Al igual que las <a href=squash_uids>UIDs no fiables</a>, esta opci髇
te permite especificar una lista de GIDs de cliente a ser tratados como el
<a href=anongid_es>grupo no fiable</a>. Debes de digitar una lista separada por
comas de GIDs o rangos de GID como <tt>1,10,20-25,100-150</tt>.
<hr>

   0707010003cb35000081a40000000000000002000000013ac0388a0000019a000000200000000000000000000000000000002700000003reloc/exports/help/squash_gids.fr.html    <header>Ne Pas Faire Confiance Aux Num閞os De Groupe</header>

Comme <a href=squash_uids>Ne pas faire confiance aux num閞os de groupe</a>, cette option vous permet de sp閏ifier une liste de groupe de client qui seront trait comme <a href=anonuid>usager ins閏ure</a>. Vous devez entrer une liste s閜ar閑 par des virgules des num閞os de groupe ou des zones de num閞o comme <tt>1,10,20-25,100-150</tt>.
<hr>
  0707010003cb36000081a40000000000000002000000013ac0388a00000128000000200000000000000000000000000000002400000003reloc/exports/help/squash_gids.html   <header>Don't trust GIDs</header>

Like <a href=squash_uids>Don't trust UIDs</a>, this option
allows you to specify a list of client GIDs to be treated as the
<a href=anongid>untrusted group</a>. You must enter a comma-separated list
of GIDs or GID ranges like <tt>1,10,20-25,100-150</tt>.
<hr>

0707010003cb37000081a40000000000000002000000013ac0388a00000141000000200000000000000000000000000000002700000003reloc/exports/help/squash_gids.pl.html    <header>Nie ufaj GID-om</header>

Podobnie jak <a href=squash_uids>Nie ufaj UID-om</a>, ta opcja pozwala ci
okre秎i list numer體 GID, kt髍e maj by traktowane jak
<a href=anongid>grupa niewiarygodna</a>. Musisz poda rozdzielon
przecinkami list GID-體 lub ich zakres體, na przyk砤d
<tt>1,10,20-25,100-150</tt>.
<hr>
   0707010003cb38000081a40000000000000002000000013ac0388a0000012b000000200000000000000000000000000000002700000003reloc/exports/help/squash_gids.sv.html    <header>Lita inte p GID</header>

Precis som <a href=squash_uids>Lita inte p UID</a> kan du h鋜 ange en
lista 鰒er klient-GID som ska behandlas som en <a href=anongid>op錶itlig
grupp</a>. Dessa ska ange som en kommaseparerad lista av
GID och GID-intervall, t ex <tt>1,10,20-25,100-150</tt>.
<hr>

 0707010003cb39000081a40000000000000002000000013ac0388a000000ef000000200000000000000000000000000000002f00000003reloc/exports/help/squash_gids.zh_TW.Big5.html    <header>ぃ獺ヴ GID</header>

碞钩琌 <a href=squash_uids>ぃ獺ヴ UID</a>, 硂匡兜琵眤﹚め狠ㄇ竤舱絪腹璶砆讽<a href=anongid>ぃ獺ヴ竤舱</a>. 眤块ノ硆腹 ',' 筳秨, ㄒ <tt>1,10,20-25,100-150</tt>.
<hr>

 0707010003cb3a000081a40000000000000002000000013ac0388a00000153000000200000000000000000000000000000002700000003reloc/exports/help/squash_uids.es.html    <header>UIDs no fiables</header>

Adem醩 de la secci髇 <a href=squash>Confiar en usuarios remotos</a>, esta
opci髇 te permite especificar una lista de UIDs de cliente a ser tratados
como el <a href=anonuid>usuario no fiable</a>. Debes de digitar una lista
separada por comas de UIDs o rangos de UID como <tt>1,10,20-25,100-150</tt>.
<hr>

 0707010003cb3b000081a40000000000000002000000013ac0388a00000197000000200000000000000000000000000000002700000003reloc/exports/help/squash_uids.fr.html    <header>Ne Pas Faire Confiance Aux Num閞os d'Usager</header>

Comme <a href=squash_uids>Ne pas faire confiance aux num閞os d'usager</a>, cette option vous permet de sp閏ifier une liste d'usager de client qui seront trait comme <a href=anongid>groupe ins閏ure</a>. Vous devez entrer une liste s閜ar閑 par des virgules des num閞os de groupe ou des zones de num閞o comme <tt>1,10,20-25,100-150</tt>.
<hr>
 0707010003cb3c000081a40000000000000002000000013ac0388a0000013a000000200000000000000000000000000000002400000003reloc/exports/help/squash_uids.html   <header>Don't trust UIDs</header>

In addition to the <a href=squash>Trust remote users</a> section, this option
allows you to specify a list of client UIDs to be treated as the
<a href=anonuid>untrusted user</a>. You must enter a comma-separated list
of UIDs or UID ranges like <tt>1,10,20-25,100-150</tt>.
<hr>

  0707010003cb3d000081a40000000000000002000000013ac0388a00000156000000200000000000000000000000000000002700000003reloc/exports/help/squash_uids.pl.html    <header>Nie ufaj UID-om</header>

Jako dalsza cz甓 opcji <a href=squash>Zaufani u縴tkownicy zdalni</a> ta
opcja pozwala ci okre秎i list numer體 UID, kt髍e maj by traktowane jak
<a href=anonuid>u縴tkownik niewiarygodni</a>. Musisz poda rozdzielon
przecinkami list UID-體 lub ich zakres體, na przyk砤d
<tt>1,10,20-25,100-150</tt>.
<hr>
  0707010003cb3e000081a40000000000000002000000013ac0388a00000127000000200000000000000000000000000000002700000003reloc/exports/help/squash_uids.sv.html    <header>Lita inte p UID</header>

Ut鰒er <a href=squash>Lita p anv鋘dare</a> kan du h鋜 ange en
lista 鰒er klient-UID som ska behandlas som en <a href=anonuid>op錶itlig
anv鋘dare</a>. Dessa ska ange som en kommaseparerad lista av
UID och UID-intervall, t ex <tt>1,10,20-25,100-150</tt>.
<hr>

 0707010003cb3f000081a40000000000000002000000013ac0388a000000ef000000200000000000000000000000000000002f00000003reloc/exports/help/squash_uids.zh_TW.Big5.html    <header>ぃ獺ヴ UID</header>

癸莱<a href=squash>獺ヴ环狠ㄏノ</a>跋办, 硂匡兜琵眤﹚め狠ㄇㄏノ絪腹璶砆讽<a href=anonuid>ぃ獺ヴㄏノ</a>. 眤块ノ硆腹 ',' 筳秨, ㄒ <tt>1,10,20-25,100-150</tt>.
<hr>

 0707010003f752000041ed0000000000000001000000023ac03bdd00000000000000200000000000000000000000000000001500000003reloc/exports/images  0707010003f753000081a40000000000000002000000013ac0388a0000061d000000200000000000000000000000000000002000000003reloc/exports/images/export.gif   GIF89a0 0      			


   !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~亖亗倐儍儎剟厖厗唵噰噲垐墘墛妸媼媽寣崓崕帋弿彁悙憫憭拻摀摂敂晻晼枛棗棙槝櫃櫄殮洓洔湝潩潪灋煙煚牋　、ⅱ＃￥いゥウΖЁЖè┅┆鞍北辈膊吵炒创档刀抖贩犯父构购汉换患技浇骄揪靠坷览亮谅侣妹媚哪排牌破乔侨热缮墒适怂颂烫屯臀挝舷闲行蜒岩乙佑釉栽照罩种鬃棕刎儋仝谮圹圮苘葺蒉揶哌哙噜後徕忖沣沅滗邋彐骀珑玷梃殚殛觋腚腱祆眄眍铑镲镳痧耨耱蝌篌篝趑貂貊鲻鼢鼬!Made with GIMP ,    0 0   	H盃羶*\劝∶#J淗裛綂晔w1鉊g疣b絒螠!m澐oK"琖/*f訕ツ閶OG<豵b趽諀	q@	<簻m-[璣7<,8擼>{5E嶓"8炀唁h6煶宺/f浢増-m濁u4i瓽峛Wq霧潬慉@
7恶⒍m躡孽#翘E):
6,蝄5婦x853L污磇侔 	mr|K!矛Y畖輮R檍謒6f力燖8肂$ X班亐Y猏!嵮4g勱櫼Z3f眷
{' 9SH `I&è2. 兤3蚿I=0笏.堤F` )9$	奝@
+嘲'唗.	 猟DRt 恖鈊勏砺/?蘼
+甽矆e酿羾|D凟鹉"沝騞嵁<&+1偛 蜆聡H魩_ @搷8I&瑎B+	*灅`
 u!FH!A4B%iB	v炋忍丗
6|M?H10I%媥	!7@+唣Qe#9c2F8b"  / AD
HD%PR酪	"1+	繝迸e^4转旳囗線)l3恲態!<Pe {TG蹳&懥鋁fHa認蘌 HP嬈	橻1蛏1ｒ,缝蛩0超P&4譴笸8绗sT绦l
鯗上@#$4袳$t澎词8?泶蜹Wm跽X雔F諹涐踝`-蹲=鲑b'趌讽鯜 ;   0707010003f754000081a40000000000000002000000013ac0388a000000f5000000200000000000000000000000000000001e00000003reloc/exports/images/icon.gif GIF89a0 0   櫃櫶烫fff!    ,    0 0  苿彥隧蹿[冝<`	釮
圩:l踰!,灍︺<$d,91賠uM2荞l*扸泳篈(镴駔吰ii3薴汒\撸6鶟#(鯂6ˇx8W7H颧HTt5墿x郔殸5腨定戟`[饫Zk[腙4:∷+猁
,K|jx惶莒\3鹛:@]m}峂崜蜐-.>⺌  ;   0707010003b3cc000081e40000000000000002000000013ac0388a00000833000000200000000000000000000000000000001800000003reloc/exports/index.cgi   #!/usr/local/bin/perl
# index.cgi
# Display a list of directories and their client(s)

$| = 1;
require './exports-lib.pl';
&header($text{'index_title'}, "", "intro", 1, 1);
print "<hr>\n";

if (!&has_command("rpc.nfsd") && !&has_command("nfsd") &&
    !&has_command("rpc.knfsd")) {
	print "<p>",$text{'index_eprog'},"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

@exps = &list_exports();
if (@exps) {
	@dirs = &unique(map { $_->{'dir'} } @exps);
	if ($access{'icons'}) {
		# Display icons for exports
		foreach $d (@dirs) {
			@cl = grep { $_->{'dir'} eq $d } @exps;
			foreach $c (@cl) {
				push(@icons, "images/export.gif");
				local $desc = &describe_host($c->{'host'});
				if ($c->{'active'}) {
					push(@titles, $d.'<br>'.$desc);
					}
				else {
					push(@titles, '<font color=#ff0000>'.
					     $d.'<br>'.$desc.'</font>');
					}
				push(@links,
				     "edit_export.cgi?idx=$c->{'index'}");
				}
			}
		&icons_table(\@links, \@titles, \@icons);
		}
	else {
		# Display table of exports and clients
		print "<table border width=100%>\n";
		print "<tr $tb> <td><b>$text{'index_dir'}</b></td> ",
		      "<td><b>$text{'index_to'}</b></td> </tr>\n";
		foreach $d (@dirs) {
			print "<tr $cb> <td valign=top>$d</td>\n";
			print "<td>\n";
			@cl = grep { $_->{'dir'} eq $d } @exps;
			$ccount = 0;
			foreach $c (@cl) {
				print "&nbsp;|&nbsp; " if ($ccount++);
				print "<a href=\"edit_export.cgi?idx=$c->{'index'}\">",&describe_host($c->{'host'}),"</a>\n";
				print "<font color=#ff0000>($text{'index_inactive'})","</font>\n" if (!$c->{'active'});
				}
			print "</td> </tr>\n";
			}
		print "</table>\n";
		}
	}
else {
	print "<b>$text{'index_none'}</b> <p>\n";
	}
print "<a href=\"edit_export.cgi?new=1\">$text{'index_add'}</a> <p>\n";

print "<hr>\n";
print "<table width=100%> <tr>\n";
print "<td><form action=restart_mountd.cgi>\n";
print "<input type=submit value=\"$text{'index_apply'}\">\n";
print "</form></td>\n";
print "<td valign=top>$text{'index_applymsg'}</td>\n";
print "</tr> <tr> </table>\n";

print "<hr>\n";
&footer("/", $text{'index'});

 07070100040de6000041ed0000000000000001000000023ac03bde00000000000000200000000000000000000000000000001300000003reloc/exports/lang    07070100040de7000081a40000000000000002000000013ac0388a000007a1000000200000000000000000000000000000001600000003reloc/exports/lang/de index_title=NFS Exporte
index_dir=Verzeichnis
index_inactive=Inaktiv
index_to=Exportiert zu..
index_none=Sie exportieren bis jetzt keine Verzeichnisse
index_add=Einen neuen Export hinzuf&uuml;gen
index_apply=&Auml;nderungen anwenden
index_applymsg=Klicken Sie auf diesen Button, um die aktuelle Export-Konfiguration anzuwenden. Dies wird alle oben angegebenen Verzeichnisse mit den jeweiligen Einstellungen verf&uuml;gbar machen.
index_return=Export-Liste
index_eprog=Die ausf&uuml;hrbare Datei des NFS-Servers konnte nicht gefunden werden auf dem System. Es scheint, als w&auml;re das NFS Paket nicht installiert

edit_title=Export bearbeiten
create_title=Export erstellen
edit_details=Export Details
edit_dir=Zu exportierendes Verzeichnis
edit_active=Aktiv?
edit_to=Exportiere zu..
edit_all=Jedem
edit_host=Host(s)
edit_webnfs=WebNFS Clients
edit_netgroup=Netzgruppe
edit_network=Netzwerk
edit_netmask=Netzmaske
edit_relative=Mache symbolische Links relativ?
edit_insecure=Clients m&uuml;ssen sicheren Port benutzen?
edit_mode=Zugriffs-Modus
edit_ro=Nur Lesen
edit_rw=Lesen/Schreiben
edit_noaccess=Verweigere Zugriff auf Verzeichnis?
edit_squash=Vertraue Fern-Benutzern
edit_everyone=Jedem
edit_except=Jedem ausser root
edit_nobody=Niemandem
edit_uids=Traue nicht den UIDs
edit_none=Keine
edit_gids=Traue nicht den GIDs
edit_anonuid=Behandle nicht-vertraute Benutzer als
edit_default=Standard
edit_anongid=Behandle nicht-vertraute Gruppen als

save_err=Fehler beim Speichern der Exporte
save_edir=Verzeichnis '$1' existiert nicht
save_enetgroup=Fehlende oder ung&uuml;ltige Netzgruppe
save_enetwork='$1' ist kein g&uuml;ltiges Netzwerk
save_enetmask='$1' ist keine g&uuml;ltige Netzmaske
save_ehost='$1' ist kein g&uuml;ltiger Hostname
save_euids=UIDs denen nicht getraut wird, muss eine Komma-separierte Liste mit Nummern oder Bereichen sein
save_egids=GIDs denen nicht getraut wird, muss eine Komma-separierte Liste mit Nummern oder Bereichen sein

   07070100040de8000081a40000000000000002000000013ac0388a0000083a000000200000000000000000000000000000001600000003reloc/exports/lang/en index_title=NFS Exports
index_dir=Directory
index_inactive=Inactive
index_to=Exported to..
index_none=You are not exporting any directories yet.
index_add=Add a new export
index_apply=Apply Changes
index_applymsg=Click this button to apply the current file exports configuration. This will make all the directories listed above available with the options specified.
index_return=exports list
index_eprog=The NFS server executable was not found on your system. The NFS package does not appear to be installed.

edit_title=Edit Export
create_title=Create Export
edit_details=Export details
edit_dir=Directory to export
edit_active=Active?
edit_to=Export to..
edit_all=Everyone
edit_host=Host(s)
edit_webnfs=WebNFS clients
edit_netgroup=Netgroup
edit_network=Network
edit_netmask=Netmask
edit_relative=Make symbolic links relative?
edit_insecure=Clients must be on secure port?
edit_security=Export security
edit_mode=Access mode
edit_ro=Read only
edit_rw=Read/write
edit_noaccess=Deny access to directory?
edit_squash=Trust remote users
edit_everyone=Everyone
edit_except=Everyone except root
edit_nobody=Nobody
edit_uids=Don't trust UIDs
edit_none=None
edit_gids=Don't trust GIDs
edit_anonuid=Treat untrusted users as
edit_default=Default
edit_anongid=Treat untrusted groups as

save_err=Failed to save export
save_edir=Directory '$1' does not exist
save_enetgroup=Invalid or missing netgroup
save_enetwork='$1' is not a valid network
save_enetmask='$1' is not a valid netmask
save_ehost='$1' is not a valid hostname
save_euids=UIDs not to trust must be a comma-separated list of numbers or ranges
save_egids=GIDs not to trust must be a comma-separated list of numbers or ranges

exports_webnfs=WebNFS&nbsp;clients
exports_ngroup=Netgroup&nbsp;$1
exports_net=Network&nbsp;$1
exports_all=Everyone
exports_hosts=Hosts&nbsp;$1
exports_host=Host&nbsp;$1

log_modify=Modified NFS export $1
log_modify_l=Modified NFS export $1 to $2
log_delete=Deleted NFS export $1
log_delete_l=Deleted NFS export $1 to $2
log_create=Created NFS export $1
log_create_l=Created NFS export $1 to $2
log_apply=Applied configuration
  07070100040de9000081a40000000000000002000000013ac0388a00000948000000200000000000000000000000000000001600000003reloc/exports/lang/es index_title=Exportaciones de NFS
index_dir=Directorio
index_inactive=Inactiva
index_to=Exportado a...
index_none=A鷑 no est醩 exportando directorios.
index_add=A馻dir una nueva exportaci髇
index_apply=Aplicar Cambios
index_applymsg=Haz click en este bot髇 para aplicar las configuraciones actuales de exportaci髇 de archivos. Esto har que todos los directorios listados arriba est閚 disponibles con las opciones especificadas.
index_return=lista de exportaciones
index_eprog=El ejecutable del servidor NFS no ha sido encontrado en tu sistema. El paquete NFS no parece haber sido instalado.

edit_title=Editar Exportaci髇
create_title=Crear Exportaci髇
edit_details=Detalles de Exportaci髇
edit_dir=Directorio a exportar
edit_active=緼ctivo?
edit_to=Exportar a...
edit_all=Todo el mundo
edit_host=M醧uina(s)
edit_webnfs=Clientes WebNFS
edit_netgroup=Grupo de Red
edit_network=Red
edit_netmask=M醩cara de Red
edit_relative=縃acer enlaces simb髄icos relativos?
edit_insecure=縇os clientes deben de estar en puerto seguro?
edit_security=Exportar seguridad
edit_mode=Modo de Acceso
edit_ro=S髄o lectura
edit_rw=Lectura/Escritura
edit_noaccess=緿enegar acceso al directorio?
edit_squash=Confiar en usuarios remotos
edit_everyone=Todo el mundo
edit_except=Todo el mundo excepto root
edit_nobody=Nadie
edit_uids=No confiar en UIDs
edit_none=Ninguno
edit_gids=No confiar en GIDs
edit_anonuid=Tratar usuarios no fiables como
edit_default=Por defecto
edit_anongid=Tratar grupos no fiables como

save_err=Error al salvar exportaci髇
save_edir=Directorio '$1' no existe
save_enetgroup=Grupo de Red inv醠ido o perdido
save_enetwork='$1' no es una red v醠ida
save_enetmask='$1' no es una m醩cara de red v醠ida
save_ehost='$1' no es una m醧uina v醠ida
save_euids=UIDs no fiables deben de ser una lista de n鷐eros o rangos separados por comas
save_egids=GIDs no fiables deben de ser una lista de n鷐eros o rangos separados por comas

exports_webnfs=WebNFS&nbsp;clientes
exports_ngroup=Netgroup&nbsp;$1
exports_net=Network&nbsp;$1
exports_all=Cada uno
exports_hosts=Hosts&nbsp;$1
exports_host=Host&nbsp;$1

log_modify=Modificada exportaci髇 NFS $1
log_modify_l=Modificada exportaci髇 NFS $1 a $2
log_delete=Borrada exportaci髇 NFS $1
log_delete_l=Borrada exportaci髇 NFS $1 a $2
log_create=Creada exportaci髇 NFS $1
log_create_l=Creada exportaci髇 NFS $1 a $2
log_apply=Aplicada configuraci髇
07070100040dea000081a40000000000000002000000013ac0388a0000073c000000200000000000000000000000000000001600000003reloc/exports/lang/fr index_title=Partage NFS
index_dir=R閜ertoire
index_inactive=Inactif
index_to=Partager 
index_none=Aucun r閜ertoire encore partag
index_add=Ajouter un nouveau partage
index_apply=Appliquer tous Changements
index_applymsg=Cliquer sur ce bouton pour appliquer la configuration.  Ceci va mettre tous r閜ertoires list閟 disponibles avec les options sp閏ifi閑s.
index_return=liste des partages
index_eprog=L'ex閏utable du serveur NFS n'a pas 閠 trouv sur votre syst鑝e.  Le composant NFS ne semble pas avoir 閠 install.

edit_title=蒬iter un Partage
create_title=Cr閑r un Partage
edit_details=D閠ails du partage
edit_dir=R閜ertoire partager
edit_active=Actif?
edit_to=Partager 
edit_all=Tous
edit_host=H魌es
edit_webnfs=Clients WebNFS
edit_netgroup=Groupe r閟eau
edit_network=R閟eau
edit_netmask=Masque de sous-r閟eau
edit_relative=Les liens symboliques sont relatifs?
edit_insecure=Les clients doivent 阾re sur un port s閏ure?
edit_mode=Mode d'acc鑣
edit_ro=Lecture seule
edit_rw=Lecture/閏riture
edit_noaccess=Refuser l'acc鑣 au r閜ertoire?
edit_squash=Faire confiance aux usagers distants
edit_everyone=Tous
edit_except=Tout except root
edit_nobody=Aucun
edit_uids=Ne pas faire confiance aux UID
edit_none=Aucun
edit_gids=Ne pas faire confiance aux GID
edit_anonuid=Les usagers ins閏ure sont trait閟 comme
edit_default=D閒aut
edit_anongid=Les groupes ins閏ure sont trait閟 comme

save_err=Impossible d'enregistrer le partage
save_edir=Le r閜ertoire $1 n'existe pas
save_enetgroup=Groupe de r閟eau manquant ou invalide
save_enetwork=$1 est un r閟eau invalide
save_enetmask=$1 est un masque de sous-r閟eau invalide
save_ehost=$1 est un nom d'h魌e invalide
save_euids=La liste ou la plage des num閞os d'usager ins閏ure doit 阾re s閜ar par des virgules
save_egids=La liste ou la plage des num閞os de groupe ins閏ure doit 阾re s閜ar par des virgules
07070100040deb000081a40000000000000002000000013ac0388b0000091a000000200000000000000000000000000000001600000003reloc/exports/lang/pl index_title=Udost阷nianie po NFS
index_dir=Katalog
index_inactive=Nieaktywne
index_to=Wyeksportowane do..
index_none=Nie wyeksportowa砮 jeszcze 縜dnego katalogu.
index_add=Dodaj nowy zas骲
index_apply=Zastosuj zmiany
index_applymsg=Naci秐ij ten przycisk, aby zastosowa bie勘c konfiguracj udost阷niania. Spowoduje to dost阷no舵 wymienionych powy縠j katalog體 z ustawionymi opcjami.
index_return=udost阷niania po NFS
index_eprog=Program serwera NFS nie zosta znaleziony. Prawdopodobnie nie zosta zainstalowany.

edit_title=Zmie udost阷nianie
create_title=Udost阷nij
edit_details=Dane udost阷niania
edit_dir=Udost阷niany katalog
edit_active=Aktywne?
edit_to=Udost阷niaj dla..
edit_all=Wszystkich
edit_host=Tylko dla host體
edit_webnfs=Klienci WebNFS
edit_netgroup=Grupa sieciowa
edit_network=Sie
edit_netmask=Maska
edit_relative=Wzgl阣ne dowiazania symboliczne?
edit_insecure=Tylko klienci na bezpiecznych portach?
edit_security=Zabezpieczenia udost阷niania
edit_mode=Tryb dost阷u
edit_ro=Tylko do odczytu
edit_rw=Odczyt i&nbsp;zapis
edit_noaccess=Zablokowa dost阷 do katalogu?
edit_squash=Zaufani u縴tkownicy zdalni
edit_everyone=Wszyscy
edit_except=Wszyscy opr骳z roota
edit_nobody=Nikt
edit_uids=Nie ufaj UID-om
edit_none=痑dnemu
edit_gids=Nie ufaj GID-om
edit_anonuid=Traktuj niewiarygodnych u縴tkownik體 jako
edit_default=Domy秎ne
edit_anongid=Traktuj niewiarygodne grupy jako

save_err=Nie uda硂 sie zachowa parametr體 udost阷niania
save_edir=Katalog '$1' nie istnieje
save_enetgroup=Niepoprawna lub nie istniej眂a grupa sieciowa
save_enetwork='$1' nie jest poprawn sieci
save_enetmask='$1' nie jest poprawn mask sieci
save_ehost='$1' nie jest poprawn nazw komputera
save_euids=Niewiarygodne UID-y musz by rozdzielon przecinkami list liczb lub zakres體
save_egids=Niewiarygodne GID-y musz by rozdzielon przecinkami list liczb lub zakres體

exports_webnfs=Klient體&nbsp;eWebNFS
exports_ngroup=Grupy&nbsp;sieciowej&nbsp;$1
exports_net=Sieci&nbsp;$1
exports_all=Wszystkich
exports_hosts=Host體&nbsp;$1
exports_host=Hosta&nbsp;$1

log_modify=Zmieniono eksport NFS $1
log_modify_l=Zmieniono eksport NFS $1 do $2
log_delete=Zmieniono eksport NFS $1
log_delete_l=Zmmieniono eksport NFS $1 do $2
log_create=Utworzono eksport NFS $1
log_create_l=Utworzono eksport NFS $1 do $2
log_apply=Zastosowano konfiguracj
  07070100040dec000081a40000000000000002000000013ac0388a000006e7000000200000000000000000000000000000001600000003reloc/exports/lang/pt index_title=Exporta珲es NFS
index_dir=Direct髍io
index_to=Exportado para..
index_none=Voc ainda n鉶 est a exportar quaisquer direct髍ios.
index_add=Adicionar nova exporta玢o
index_apply=Aplicar Altera珲es
index_applymsg=Clique neste bot鉶 para aplicar a configura玢o de exporta玢o de ficheiros actual. Desta forma, todos os direct髍ios abaixo listados estar鉶 disponiveis com as op珲es especificadas.
index_return=lista de exporta珲es

edit_title=Editar Exporta玢o
create_title=Criar Exporta玢o
edit_details=Detalhes da exporta玢o
edit_dir=Direct髍io a exportar
edit_to=Exportar para..
edit_all=Toda a gente
edit_host=Anfitri鉶(s)
edit_webnfs=Clientes WebNFS
edit_netgroup=Grupo de Rede
edit_network=Grupo de Trabalho
edit_netmask=M醩cara de Rede
edit_relative=Fazer as liga珲es simb髄icas relativas?
edit_insecure=Os clientes dever鉶 estar numa porta segura?
edit_mode=Modo de acesso
edit_ro=Leirura apenas
edit_rw=Leitura/escrita
edit_noaccess=Negar o acesso ao direct髍io?
edit_squash=Confiar nos utilizadores remotos
edit_everyone=Toda a gente
edit_except=Toda a gente excepto root
edit_nobody=Ningu閙
edit_uids=N鉶 confiar em UIDs
edit_none=Nenhum
edit_gids=N鉶 confiar em GIDs
edit_anonuid=Tratar utilizadores n鉶 fi醰eis como
edit_default=Predefinido
edit_anongid=Tratar grupos n鉶 fi醰eis como

save_err=Erro ao guardar exporta玢o
save_edir=O direct髍io '$1' n鉶 existe
save_enetgroup=Grupo de rede inv醠ido ou em falta
save_enetwork='$1' n鉶  uma rede v醠ida
save_enetmask='$1' n鉶  uma m醩cara de rede v醠ida
save_ehost='$1' n鉶  um nome de anfitri鉶 v醠ido
save_euids=Os UIDs n鉶 fi醰eis devem ser uma lista de n鷐eros ou alcances separadas por virgulas
save_egids=Os GIDs n鉶 fi醰eis devem ser uma lista de n鷐eros ou alcances separadas por virgulas
 07070100040ded000081a40000000000000002000000013ac0388b000006ce000000200000000000000000000000000000001900000003reloc/exports/lang/ru_RU  edit_dir=枢蜞腩 潆 耧铕蜞
edit_mode=绣骅 漕耱箫
save_err=硒栳赅 镳 耦躔囗屙梃 疱耋瘃
edit_host=疹耱()
edit_gids=湾 漕忮螯 GID囔
edit_netgroup=彦蝈忄 沭箫镟
edit_network=彦螯
edit_insecure=孰桢眚 漕腈睇 猁螯 磬 玎眄铎 镱痱?
edit_except=枢驿铎, 牮铎 root
save_ehost='$1' 礤 怆弪 漕矬耱桁 桁屙屐 躅耱
save_egids=湾漕耱钼屦睇 GID 漕腈睇 猁螯 耧桉觐 疣玟咫屙睇 玎螓扈 桦 滂囡噻铐铎 眍戾痤
index_none=蔓 礤 耧铕蜩痼弪 龛 钿眍泐 赅蜞腩汔.
index_dir=枢蜞腩
edit_netmask=彦蝈忄 爨耜
index_title=蓐耧铕 绣耋瘃钼 NFS
index_apply=橡桧螯 如戾礤龛
edit_noaccess=青镳弪栩 漕耱箫  赅蜞腩泱?
index_return=耧桉铌 疱耋瘃钼
edit_uids=湾 漕忮螯 UID囔
edit_none=湾
index_to=蓐耧铕蜩痤忄 潆..
save_euids=湾漕耱钼屦睇 UID 漕腈睇 猁螯 耧桉觐 疣玟咫屙睇 玎螓扈 桦 滂囡噻铐铎 眍戾痤
save_enetwork='$1' 礤 怆弪 漕矬耱桁铋 皴螯
edit_default=项 箪铍鬣龛
edit_details=相疣戾蝠 疱耋瘃
edit_nobody=丸觐祗
save_edir=枢蜞腩 '$1' 礤 耋耱怏弪
edit_anonuid=痒栩囹 礤漕耱钼屦睇 镱朦珙忄蝈脲 赅
create_title=杨玟囗桢 绣耋瘃
save_enetmask='$1' 礤 怆弪 漕矬耱桁铋 皴蝈忸 沭箫镱
edit_webnfs=孰桢眚 WebNFS
edit_everyone=枢驿铎
edit_relative=唁咫囹 耔焘铍梓羼觇 耨觇 铗眍耔蝈朦睇扈?
index_applymsg=袜骒栩 磬  觏铒牦 潆 镳桧蜩 桤戾礤龛  羿殡 觐眙桡箴圉梃 耧铕蜩痤忄眄 疱耋瘃钼. 蒡 溴轳蜮桢 皲咫噱 怦 恹镥疱麒耠屙睇 赅蜞腩汨 漕耱箫睇 镱 NFS  耦铗忮蝰蜮梃  箨噻囗睇扈 镟疣戾蝠囔
edit_anongid=痒栩囹 礤漕耱钼屦睇 沭箫稃 赅
edit_ro=翌朦觐 黩屙桢
edit_rw=昨屙桢/玎镨顸
index_add=念徉忤螯 眍恹 疱耋瘃
edit_to=蓐耧铕蜩痤忄螯 潆..
edit_all=枢驿钽
save_enetgroup=湾忮痦 桦 镱蝈眄 皴蝈忄 沭箫镟
edit_title=绣溧牝桊钼囗桢 绣耋瘃
edit_squash=念忮螯 箐嚯屙睇 镱朦珙忄蝈
  07070100040dee000081a40000000000000002000000013ac0388a000006d1000000200000000000000000000000000000001900000003reloc/exports/lang/ru_SU  index_title=有弦 蚺诱矣献 NFS
index_dir=肓粤滔
index_to=有弦陨蚁琢 奶..
index_none=髻 闻 芩有弦陨艺旁 紊 夏蜗窍 肆粤滔橇.
index_add=湎铝咨载 蜗踪 遗诱矣
index_apply=鹨晌言 橼团闻紊
index_applymsg=盍滞稍 瘟 茉 宋闲苏 奶 幸晌言裳 哨团闻紊  屏侍 讼纹汕找撩缮 芩有弦陨蚁琢挝偃 遗诱矣献.  呐视宰膳 幽盘僚 子 踪叟信遗奚犹盼钨 肆粤滔巧 南釉招钨 邢 NFS  酉显着杂宰缮  账邻廖钨蜕 辛伊团砸镣
index_return=有捎纤 遗诱矣献

edit_title=蚺牧嗽梢献廖膳 蚺诱矣
create_title=笙谀廖膳 蚺诱矣
edit_details=鹆伊团砸 遗诱矣
edit_dir=肓粤滔 奶 芩有弦粤
edit_to=有弦陨蚁琢载 奶..
edit_all=肓帜锨
edit_host=柘釉()
edit_webnfs=胩膳卧 WebNFS
edit_netgroup=笈耘琢 且招辛
edit_network=笈载
edit_netmask=笈耘琢 土铀
edit_relative=竽盘猎 由妥咸赊庞松 佑偬松 显蜗由耘特钨蜕?
edit_insecure=胩膳卧 南讨钨 沦载 瘟 诹萆菖挝贤 邢以?
edit_mode=蚺稚 南釉招
edit_ro=粝特讼 拊盼膳
edit_rw=盼膳/诹猩迂
edit_noaccess=幸旁稍 南釉招  肆粤滔钦?
edit_squash=湎着已载 漳撂盼钨 邢特谙琢耘萄
edit_everyone=肓帜贤
edit_except=肓帜贤, 艘贤 root
edit_nobody=钌讼驼
edit_uids=钆 南着已载 UID镣
edit_none=钆
edit_gids=钆 南着已载 GID镣
edit_anonuid=筠稍猎 闻南釉献乓钨 邢特谙琢耘膛 肆
edit_default=鹣 胀咸蘖紊
edit_anongid=筠稍猎 闻南釉献乓钨 且招匈 肆

save_err=镗陕肆 幸 酉纫廖盼缮 遗诱矣
save_edir=肓粤滔 '$1' 闻 诱菖釉渍旁
save_enetgroup=钆着椅裂 商 邢耘已挝裂 优耘琢 且招辛
save_enetwork='$1' 闻 炎萄旁友 南姓釉赏鲜 优载
save_enetmask='$1' 闻 炎萄旁友 南姓釉赏鲜 优耘紫 且招邢
save_ehost='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 认釉
save_euids=钆南釉献乓钨 UID 南讨钨 沦载 有捎讼 伊谀盘盼钨 诹醒再蜕 商 纳列邻衔贤 蜗团蚁
save_egids=钆南釉献乓钨 GID 南讨钨 沦载 有捎讼 伊谀盘盼钨 诹醒再蜕 商 纳列邻衔贤 蜗团蚁

   07070100040def000081a40000000000000002000000013ac0388a00000905000000200000000000000000000000000000001600000003reloc/exports/lang/sv index_title=NFS-exportering
index_dir=Katalog
index_inactive=Inaktiv
index_to=Exportera till ...
index_none=Du exporterar inga kataloger 鋘.
index_add=L鋑g till exportering
index_apply=Genomf鰎 鋘dringar
index_applymsg=Tryck p denna knapp f鰎 att anv鋘da dessa filexporteringsinst鋖lningar. Detta kommer att g鰎a de ovan listade katalogerna tillg鋘gliga med de inst鋖lningar du har angivit.
index_return=exporteringslista
index_eprog=Den exekverbara NFS-serverfilen fanns inte p ditt system. NFS-paketet verkar inte vara installerat.

edit_title=膎dra exportering
create_title=L鋑g till exportering
edit_details=Uppgifter om exportering
edit_dir=Exporterad katalog
edit_active=Aktiverad?
edit_to=Exportera till ...
edit_all=Alla
edit_host=Datorer
edit_webnfs=WebNFS-klienter
edit_netgroup=N鋞verksgrupp
edit_network=N鋞verk
edit_netmask=N鋞mask
edit_relative=Ska symboliska l鋘kar vara relativa?
edit_insecure=M錽te klienter anv鋘da en s鋕er port?
edit_security=S鋕erhet f鰎 exporteringar
edit_mode=R鋞tigheter
edit_ro=Endast l鋝bart
edit_rw=L鋝- och skrivbart
edit_noaccess=Neka tillg錸g till katalog?
edit_squash=Lita p anv鋘dare
edit_everyone=Alla
edit_except=Alla utom root
edit_nobody=Ingen
edit_uids=Lita inte p UID
edit_none=Inget
edit_gids=Lita inte p GID
edit_anonuid=Behandla icke betrodda anv鋘dare som
edit_default=Standard
edit_anongid=Behandla icke betrodda grupper som

save_err=Det gick inte att spara exportering
save_edir=Katalogen '$1' finns inte
save_enetgroup=N鋞gruppen finns inte eller 鋜 inte en giltig n鋞grupp
save_enetwork='$1' 鋜 inte ett giltigt n鋞verk
save_enetmask='$1' 鋜 inte en giltig n鋞mask
save_ehost='$1' 鋜 inte ett giltigt v鋜dnamn
save_euids=Ej betrodda UID:n m錽te vara en kommaseparerad lista med nummer eller intervall
save_egids=Ej betrodda GID:n m錽te vara en kommaseparerad lista med nummer eller intervall

exports_webnfs=WebNFS-klienter
exports_ngroup=N鋞grupp $1
exports_net=N鋞verk $1
exports_all=Alla
exports_hosts=Datorer $1
exports_host=Dator $1

log_modify=膎drade NFS-exportering $1
log_modify_l=膎drade NFS-exportering $1 till $2
log_delete=Tog bort NFS-exportering $1
log_delete_l=Tog bort NFS-exportering $1 till $2
log_create=Lade till NFS-exportering $1
log_create_l=Lade till NFS-exportering $1 till $2
log_apply=Tog inst鋖lningarna i drift
   07070100040dfd000081a40000000000000002000000013ac0388a0000077f000000200000000000000000000000000000001600000003reloc/exports/lang/tr index_title=NFS Sunumlar
index_dir=Dizin
index_inactive=Aktif de餴l
index_to=Aktif Ba餷ant Durumu..
index_none=Herhangi bir dizinde hen鼁 ba餷ant yap齦mad
index_add=Yeni bir ba餷ant ekle
index_apply=De餴㱮klikleri Uygula
index_applymsg=Bu dmeyi t齥layarak mevcut dosya ba餷ant ayarlar齨 uygulayabilirsiniz.
index_return=ba餷ant齦ar listesi
index_eprog=NFS sunucusu 鏰ltr齦abilir dosyas bulunamad. NFS paketi y黭lenmemi olabilir

edit_title=Ba餷ant齳 De餴⺶ir
create_title=Ba餷ant Olu⺶ur
edit_details=Ba餷ant Ayarlar
edit_dir=Ba餷ant Dizini
edit_active=Aktif?
edit_to=Ba餷ant yap ...
edit_all=Tamam
edit_host=Makine(ler)
edit_webnfs=WebNFS istemcileri
edit_netgroup=A grubu
edit_network=A
edit_netmask=A maskesi
edit_relative=Sembolik ba yap齦s齨 m?
edit_insecure=輘temciler g黺enli portta olsun mu?
edit_mode=Giri modu
edit_ro=Salt okunur
edit_rw=Oku/Yaz
edit_noaccess=Dizine girier engellensin mi?
edit_squash=Uzak kullan齝齦ar onayla
edit_everyone=Herbiri
edit_except=Root d齨da herkes
edit_nobody=Hi鏺imse
edit_uids=UID onayla
edit_none=Hi鏱iri
edit_gids=GID onayla
edit_anonuid=Onaylanmam kullan齝齦ar ara⺶齬
edit_default=謓tan齧l
edit_anongid=Onaylanmam gruplar ara⺶齬

save_err=Ba餷ant齨齨 kaydedilmesinde hata olu⺶u
save_edir='$1' dizini mevcut de餴l
save_enetgroup=Yanl ya da kay齪 netgroup
save_enetwork='$1' ge鏴rli bir a ad de餴l
save_enetmask='$1' ge鏴rli bir a maskesi de餴l
save_ehost='$1' ge鏴rli bir mak⺪e ad de餴l
save_euids=Say ya da alan listesinin virg黮le ayr齦m olan UID'leri onaylanmaz
save_egids=Sayy ya da alan listesinin virg黮le ayrylmy olan GID'leri onaylanmaz

log_modify=NFS sunumu $1 de餴⺶irildi
log_modify_l=$2'de NFS sunumu $1 de餴⺶irildi
log_delete=NFS sunumu $1 silindi
log_delete_l=$2'de NFS sunumu $1 silindi
log_create=NFS sunumu $1 olu⺶uruldu
log_create_l=$2'de NFS sunumu $1 olu⺶uruldu
log_apply=Yap齦and齬ma uyguland
 
 07070100040dfe000081a40000000000000002000000013ac0388a000005d6000000200000000000000000000000000000001900000003reloc/exports/lang/zh_CN  index_title=NFS输出
index_dir=目录
index_inactive=不活动的
index_to=输出到..
index_none=你还不能输出任何目录.
index_add=增加一个新的输出
index_apply=应用改变
index_applymsg=按这个按钮使当前的文件输出配置起作用. 这将使上面列出的所有目录及指定的选项起作用.
index_return=输出列表
index_eprog=在你的系统中没发现NFS服务器程序. 没安装NFS包.

edit_title=编辑输出
create_title=创建输出
edit_details=输出的细节
edit_dir=输出目录
edit_active=活动的?
edit_to=输出到..
edit_all=每个
edit_host=主机
edit_webnfs=WebNFS客户
edit_netgroup=网络组
edit_network=网络
edit_netmask=网络掩码
edit_relative=产生符号连接吗?
edit_insecure=客户必须在一个安全端口上?
edit_mode=访问方式
edit_ro=只读
edit_rw=读写
edit_noaccess=拒绝访问目录?
edit_squash=信任远端用户
edit_everyone=每个人
edit_except=除了root外的每个人
edit_nobody=没人
edit_uids=不信任用户ID
edit_none=没有
edit_gids=不信任组ID
edit_anonuid=对待不可信用户方式
edit_default=缺省
edit_anongid=对待不可信组方式

save_err=保存输出失败
save_edir=目录'$1' 不存在
save_enetgroup=非法或缺少网络组
save_enetwork='$1'不是一个合法的网络
save_enetmask='$1'不是一个合法的网络掩码
save_ehost='$1'不是一个合法的主机名
save_euids=不信任的UIDs必须是一个逗号分隔的数字序列或范围序列
save_egids=不信任的GIDs必须是一个逗号分隔的数字序列或范围序列

log_modify=已更新的 NFS 输出 $1
log_modify_l=已更新到 $2 的 NFS 输出 $1
log_delete=删除  NFS 输出 $1
log_delete_l=删除到 $2 的 NFS 输出 $1
log_create=创建 NFS 输出 $1
log_create_l=创建到 $2 的 NFS 输出 $1
log_apply=已应用的配置
  07070100040dff000081a40000000000000002000000013ac0388a0000056c000000200000000000000000000000000000001e00000003reloc/exports/lang/zh_TW.Big5 index_title=NFS 蹲
index_dir=ヘ魁
index_inactive=ぃノ
index_to=蹲倒...
index_none=眤ヘ玡⊿Τ蹲ヴヘ魁.
index_add=糤穝蹲
index_apply=甅ノ跑
index_applymsg=硂秙甅ノヘ玡郎蹲舱篈. 硂盢穦ㄏヘ魁ㄌ沮﹚匡兜蹲.
index_return=蹲
index_eprog=眤╰参тぃ NFS 狝竟磅︽郎. NFS 甅ン﹟ゼ杆.

edit_title=絪胯蹲
create_title=ミ蹲
edit_details=蹲冈灿戈
edit_dir=璶蹲ヘ魁
edit_active=琌璶币笆?
edit_to=蹲倒...
edit_all=ヴ
edit_host=诀
edit_webnfs=WebNFS め狠
edit_netgroup=呼隔竤舱
edit_network=呼隔
edit_netmask=呼隔綛竛
edit_relative=琌盢才腹硈挡跑Θ癸硈挡?
edit_insecure=め狠琌ゲ斗ㄏノ硄癟梆?
edit_mode=家Α
edit_ro=斑弄
edit_rw=弄糶
edit_noaccess=琌┶荡ヘ魁?
edit_squash=獺ヴ环狠ㄏノ
edit_everyone=ヴ
edit_except=埃 root ヴ
edit_nobody=⊿Τ
edit_uids=ぃ獺ヴㄏノ絪腹 (UID)
edit_none=礚
edit_gids=ぃ獺ヴ竤舱絪腹 (GID)
edit_anonuid=盢ぃ獺ヴㄏノ讽Θ
edit_default=箇砞
edit_anongid=盢ぃ獺ヴ竤舱讽Θ

save_err=纗蹲ア毖
save_edir=ヘ魁 '$1' ぃ
save_enetgroup=岿粇┪框ア呼隔竤舱
save_enetwork='$1' ぃ琌Τ呼隔
save_enetmask='$1' ぃ琌Τ呼隔綛竛
save_ehost='$1' ぃ琌Τ诀嘿
save_euids=ぃ獺ヴㄏノ絪腹 (UID) ゲ斗琌硆腹 ',' だ秨计┪絛瞅
save_egids=ぃ獺ヴ竤舱絪腹 (GID) ゲ斗琌硆腹 ',' だ秨计┪絛瞅
0707010003b3cd000081a40000000000000002000000013ac0388b0000035e000000200000000000000000000000000000001c00000003reloc/exports/log_parser.pl   # log_parser.pl
# Functions for parsing this module's logs

require './exports-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params, [long])
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p, $long) = @_;
$p->{'host'} = '*' if (!$p->{'host'});
if ($action eq 'modify') {
	return &text($long ? 'log_modify_l' : 'log_modify',
		     "<tt>$object</tt>", "<tt>$p->{'host'}</tt>");
	}
elsif ($action eq 'create') {
	return &text($long ? 'log_create_l' : 'log_create',
		     "<tt>$object</tt>", "<tt>$p->{'host'}</tt>");
	}
elsif ($action eq 'delete') {
	return &text($long ? 'log_delete_l' : 'log_delete',
		     "<tt>$object</tt>", "<tt>$p->{'host'}</tt>");
	}
elsif ($action eq 'apply') {
	return $text{'log_apply'};
	}
else {
	return undef;
	}
}

  0707010003b3ce000081a40000000000000002000000013ac0388b0000000b000000200000000000000000000000000000001700000003reloc/exports/low.risk    noconfig=1
 0707010003b3cf000081a40000000000000002000000013ac0388b00000011000000200000000000000000000000000000001800000003reloc/exports/low.skill   icons=1
simple=1
   0707010003b3d0000081a40000000000000002000000013ac0388b0000000b000000200000000000000000000000000000001a00000003reloc/exports/medium.risk noconfig=1
 0707010003b3d1000081a40000000000000002000000013ac0388b00000009000000200000000000000000000000000000001b00000003reloc/exports/medium.skill    simple=1
   0707010003b3d2000081a40000000000000002000000013ac0388a000001c4000000200000000000000000000000000000001a00000003reloc/exports/module.info desc_zh_CN=NFS 输出
name=Export Manager
desc_pt=Exporta珲es de NFS
desc_tr=NFS Sunumlar
desc_fr=Partage NFS
desc_es=Exportaciones de NFS
desc_de=NFS Exporte
desc_sv=NFS-exportering
desc_ru_SU=NFS 蚺诱矣
desc_pl=Udost阷nianie po NFS
category=system
os_support=slackware-linux redhat-linux debian-linux suse-linux open-linux turbo-linux corel-linux cobalt-linux aix
desc_zh_TW.Big5=NFS 蹲
desc=NFS Exports
risk=low medium high
desc_ru_RU=NFS 绣耋瘃
0707010003b3d3000081e40000000000000002000000013ac0388a0000020a000000200000000000000000000000000000002100000003reloc/exports/restart_mountd.cgi  #!/usr/local/bin/perl
# restart_mountd.cgi
# Do whatever is needed to apply changes to the exports file

require './exports-lib.pl';
$whatfailed = "Failed to apply changes";
&system_logged("$config{'portmap_command'} >/dev/null 2>&1 </dev/null")
	if ($config{'portmap_command'});
$temp = &tempname();
$rv = &system_logged("($config{'restart_command'}) </dev/null >$temp 2>&1");
$out = `cat $temp`;
unlink($temp);
if ($rv) {
	# something went wrong.. display an error
	&error($out);
	}
&webmin_log('apply');
&redirect("");
  0707010003b3d4000081e40000000000000002000000013ac0388a00000c84000000200000000000000000000000000000001e00000003reloc/exports/save_export.cgi #!/usr/local/bin/perl
# save_export.cgi
# Save, create or delete an export

require './exports-lib.pl';
&ReadParse();
&lock_file($config{'exports_file'});
@exps = &list_exports();

if ($in{'delete'}) {
	# Deleting some export
	$exp = $exps[$in{'idx'}];
	&delete_export($exp);
	}
else {
	if (!$in{'new'}) {
		# Get old export
		$oldexp = $exps[$in{'idx'}];
		%opts = %{$oldexp->{'options'}};
		}

	# Validate and parse inputs
	&error_setup($text{'save_err'});
	-d $in{'dir'} || &error(&text('save_edir', $in{'dir'}));
	$exp{'dir'} = $in{'dir'};
	$exp{'active'} = $in{'active'};

	if ($in{'mode'} == 0) { $exp{'host'} = "=public"; }
	elsif ($in{'mode'} == 1) {
		$in{'netgroup'} =~ /^\S+$/ ||
			&error($text{'save_enetgroup'});
		$exp{'host'} = '@'.$in{'netgroup'};
		}
	elsif ($in{'mode'} == 2) {
		&check_ipaddress($in{'network'}) ||
			&error(&text('save_enetwork', $in{'network'}));
		&check_ipaddress($in{'netmask'}) ||
			&error(&text('save_enetmask', $in{'netmask'}));
		$exp{'host'} = $in{'network'}."/".$in{'netmask'};
		}
	elsif ($in{'mode'} == 3) { $exp{'host'} = ""; }
	else {
		$in{'host'} =~ /\*/ || gethostbyname($in{'host'}) ||
			&error(&text('save_ehost', $in{'host'}));
		$exp{'host'} = $in{'host'};
		}

	# validate and parse options
	delete($opts{'link_relative'}); delete($opts{'link_absolute'}); 
	$opts{'link_relative'} = "" if ($in{'link_relative'});

	if (!$access{'simple'}) {
		delete($opts{'secure'}); delete($opts{'insecure'});
		$opts{'insecure'} = "" if ($in{'insecure'});
		}

	if ($in{'ro'}) {
		delete($opts{'rw'});
		$opts{'ro'} = '';
		}
	else {
		delete($opts{'ro'});
		$opts{'rw'} = '';
		}

	if (!$access{'simple'}) {
		delete($opts{'noaccess'});
		$opts{'noaccess'} = "" if ($in{'noaccess'});
		}

	delete($opts{'root_squash'}); delete($opts{'no_root_squash'});
	delete($opts{'all_squash'}); delete($opts{'no_all_squash'});
	$opts{'no_root_squash'} = "" if ($in{'squash'} == 0);
	$opts{'all_squash'} = "" if ($in{'squash'} == 2);

	if (!$access{'simple'}) {
		if ($in{'squash_uids_def'}) { delete($opts{'squash_uids'}); }
		elsif ($in{'squash_uids'} !~ /^[\d+\-\,]+$/) {
			&error($text{'save_euids'});
			}
		else { $opts{'squash_uids'} = $in{'squash_uids'}; }

		if ($in{'squash_gids_def'}) { delete($opts{'squash_gids'}); }
		elsif ($in{'squash_gids'} !~ /^[\d+\-\,]+$/) {
			&error($text{'save_egids'});
			}
		else { $opts{'squash_gids'} = $in{'squash_gids'}; }

		if ($in{'anonuid_def'}) { delete($opts{'anonuid'}); }
		elsif ($in{'anonuid'} =~ /^[0-9\-]+$/)
			{ $opts{'anonuid'} = $in{'anonuid'}; }
		else { $opts{'anonuid'} = getpwnam($in{'anonuid'}); }

		if ($in{'anongid_def'}) { delete($opts{'anongid'}); }
		elsif ($in{'anongid'} =~ /^[0-9\-]+$/)
			{ $opts{'anongid'} = $in{'anongid'}; }
		else { $opts{'anongid'} = getgrnam($in{'anongid'}); }
		}

	$exp{'options'} = \%opts;
	if ($in{'new'}) {
		&create_export(\%exp);
		}
	else {
		&modify_export(\%exp, $oldexp);
		}
	}
&unlock_file($config{'exports_file'});
if ($in{'delete'}) {
	&webmin_log("delete", "export", $exp->{'dir'}, $exp);
	}
elsif ($in{'new'}) {
	&webmin_log("create", "export", $exp{'dir'}, \%exp);
	}
else {
	&webmin_log("modify", "export", $exp{'dir'}, \%exp);
	}
&redirect("");

070701000425a0000041ed0000000000000001000000053ac03be500000000000000200000000000000000000000000000000c00000003reloc/fdisk   070701000425a1000081a40000000000000002000000013ac0389000000462000000200000000000000000000000000000001c00000003reloc/fdisk/acl_security.pl   
require './fdisk-lib.pl';

# acl_security_form(&options)
# Output HTML for editing security options for the fdisk module
sub acl_security_form
{
local @dlist = &list_disks();
local ($d, %dcan);
map { $dcan{$_}++ } split(/\s+/, $_[0]->{'disks'});
print "<tr> <td valign=top><b>$text{'acl_disks'}</b></td> <td>\n";
printf "<input type=radio name=disks_def value=1 %s> %s\n",
	$_[0]->{'disks'} eq '*' ? 'checked' : '', $text{'acl_dall'};
printf "<input type=radio name=disks_def value=0 %s> %s<br>\n",
	$_[0]->{'disks'} eq '*' ? '' : 'checked', $text{'acl_dsel'};
print "<select name=disks size=4 multiple>\n";
foreach $d (@dlist) {
	printf "<option value='%s' %s>%s\n",
		$d->{'device'},
		$dcan{$d->{'device'}} ? "selected" : "",
		&text('select_device', uc($d->{'type'}), uc(substr($d->{'device'}, -1))).($d->{'model'} ? " ($d->{'model'})" : "");
	}
print "</select></td> </tr>\n";
}

# acl_security_save(&options)
# Parse the form for security options for the fdisk module
sub acl_security_save
{
if ($in{'disks_def'}) {
	$_[0]->{'disks'} = "*";
	}
else {
	$_[0]->{'disks'} = join(" ", split(/\0/, $in{'disks'}));
	}
}

  070701000425a2000081e40000000000000002000000013ac0389100000507000000200000000000000000000000000000001d00000003reloc/fdisk/apply_hdparm.cgi  #!/usr/local/bin/perl

require "./fdisk-lib.pl";

&ReadParse();

if( $in{ 'action' } eq $text{ 'hdparm_apply' } ) 
{
	&header( $text{ 'hdparm_apply' }, "");
	print "<hr>\n";

	local $command = "hdparm ";
	local $key;
	foreach $key ( 'a', 'd', 'r', 'k', 'u', 'm', 'c', 'A', 'K', 'P', 'X', 'W', 'S' )
	{
		$command .= "-".$key." ".$in{ $key }." " if( $in{ $key } ne "" );
	}
	$command .= $in{ 'drive' }."\n";

	local $out = "<p>". $text{ 'hdparm_performing' }. " : <b>". $command. "</b><i>". &backquote_logged($command). "</i><p>";
	$out =~ s/\n/<br>/g;
	&webmin_log("hdparm", undef, $in{'drive'}, \%in);

	print( $out );
} else {
	&header( $text{'hdparm_speed'}, "");
	print "<hr>\n";

	local ( $_, $_, $buffered, $buffer_cache ) = split( /\n/, `hdparm -t -T $in{ 'drive' }` );
	( $_, $buffered ) = split( /=/, $buffered );
	( $_, $buffer_cache ) = split( /=/, $buffer_cache );

	print "<p><table border cellpadding=2>\n";
	print "<tr $tb> <td colspan=2>",
	      "<b>$text{'hdparm_speedres'}</b></td> </tr>\n";
	print "<tr $cb> <td><b>$text{'hdparm_buf1'}</b></td> ",
	      "<td>$buffered</td> </tr>\n";
	print "<tr $cb> <td><b>$text{'hdparm_buf2'}</b></td> ",
	      "<td>$buffer_cache</td> </tr>\n";
	print "</table><p>\n";
}

print "<hr>\n";
&footer( "", $text{ 'index_return' } );

 070701000425a3000081a40000000000000002000000013ac0389000000000000000200000000000000000000000000000001300000003reloc/fdisk/config    070701000425a4000081a40000000000000002000000013ac0389000000013000000200000000000000000000000000000001700000003reloc/fdisk/defaultacl    noconfig=0
disks=*
 070701000425a5000081e40000000000000002000000013ac03890000010a5000000200000000000000000000000000000001c00000003reloc/fdisk/edit_hdparm.cgi   #!/usr/local/bin/perl
# edit_hdparm.cgi
# Edit an IDE parameters for some disk

require './fdisk-lib.pl';
&ReadParse();
@dlist = &list_disks();
$d = $dlist[$in{'disk'}];
&can_edit_disk($dinfo->{'device'}) ||
	&error($text{'edit_ecannot'});

&header($text{'hdparm_title'}, "");
print "<hr>\n";
if ( ! &has_command( "hdparm" ) ) {
	print "<p>$text{ 'edit_ehdparm' }<p> <hr>\n";
	&footer( "", $text{ 'index_return' } );
	exit;
	}

%hdparm = ( 'A', "1", 'K', "0", 'P', "0", 'X', "0", 'W', "0", 'S', "0" );
@yesno = ( "1", $text{ 'hdparm_on' }, "0", $text{ 'hdparm_off' } );

foreach $argument ( 'a', 'd', 'r', 'k', 'u', 'm', 'c' )
{
    $out = `hdparm -$argument $d->{'device'}`;
    if ($out =~ /\s+=\s+(\S+)/) {
	$hdparm{ $argument } = $1;
	}
    #( $_, $line ) = split( /=/, `hdparm -$argument $d->{'device'}` );
    #$line =~ s/ {1,}//;
    #( $hdparm{ $argument } ) = split( / /, $line );
}

print(
"<form action=apply_hdparm.cgi><table border cols=1 width=\"100%\"><input type=hidden name=drive value=", $d -> { 'device' }, ">",
    "<tr ", $tb, ">",
    	"<td><b>", $text{ 'hdparm_label' }, "</b></td>",
    "</tr><tr ", $cb, "><td>",
	"<table width=\"100%\">",
	    "<tr>",
    		"<td>", &hlink( "<b>". $text{ 'hdparm_conf_X' }. "</b>", 'X' ), &p_select_wdl( "X", $hdparm{ 'X' }, ( "0", $text{ 'hdparm_conf_X_defaut' }, "1", $text{ 'hdparm_conf_X_disable' }, "9", "PIO mode 1", "10", "PIO mode 2", "11", "PIO mode 3", "12", "PIO mode 4", "32", "Multimode DMA 0", "33", "Multimode DMA 1", "34", "Multimode DMA 2", "64", "Ultra DMA 0", "65", "Ultra DMA 1", "66", "Ultra DMA 2" ) ), "</td>",
		"<td>", &l_radio( $text{ 'hdparm_conf_d' }, 'd', @yesno ), "</td>",
	    "</tr><tr>",
		"<td>", &hlink( "<b>". $text{ 'hdparm_conf_a' }. "</b>", "a" ), " ", &p_entry( "a", 2, $hdparm{ 'a' } ), "</td>",
		"<td>", &l_radio( $text{ 'hdparm_conf_A' }, 'A', @yesno ), "</td>",
	    "</tr><tr>",
		"<td>", &l_radio( $text{ 'hdparm_conf_W' }, 'W', @yesno ), "</td>",
		"<td>", &l_radio( $text{ 'hdparm_conf_u' }, 'u', @yesno ), "</td>",
	    "</tr><tr>",
		"<td>", &l_radio( $text{ 'hdparm_conf_k' }, 'k', @yesno ), "</td>",
		"<td>", &l_radio( $text{ 'hdparm_conf_K' }, 'K', @yesno ), "</td>",
	    "</tr><tr>",
		"<td>", &l_radio( $text{ 'hdparm_conf_r' }, 'r', @yesno ), "</td>",
		"<td>", &l_radio( $text{ 'hdparm_conf_P' }, 'P', @yesno ), "</td>",
	    "</tr><tr>",
		"<td>", &hlink( "<b>". $text{ 'hdparm_conf_S' }. "</b>", "S" ), " ", &p_entry( "S", 6, $hdparm{ 'S' } ), "</td>",
	    "</tr>",
	"</table><table>",
	    "<tr><td>", &l_radio( $text{ 'hdparm_conf_c' }, 'c', ( "0", $text{ 'hdparm_disable' }, "1", $text{ 'hdparm_enable' }, "3", $text{ 'hdparm_enable_special' } ) ), "</td></tr>",
	    "<tr><td>", &l_radio( $text{ 'hdparm_conf_m' }, 'm', ( "0", $text{ 'hdparm_disable' }, "2", "2", "4", "4", "8", "8", "16", "16", "32", "32" ) ), "<td><tr>",
	"</table></td>",
    "</tr>",
"</table><table cols=3 width=\"100%\" nosave>",
    "<tr>",
	"<td align=left><input type=submit name=action value=\"", $text{ 'hdparm_apply' }, "\"></td>",
	"<td align=right><input type=submit name=action value=\"", $text{ 'hdparm_speed' }, "\"></td>",
    "</tr>",
"</table></form>" );

print "<hr>\n";
&footer( "", $text{ 'index_return' } );

sub l_radio
{
    my ( $label, $flag, @items ) = @_;
    return &hlink( "<b>".$label."</b>", $flag )."</td> <td>".
	   &p_radio( $flag, $hdparm{ $flag }, @items );
}

sub p_radio
{
    my ( $name, $checked, @list ) = @_;
    local $out, $size = @list, $i = 0;

    do
    {
	$out .= " <input type=radio name=".$name." value=".$list[$i];
	$out .= " checked" if( $checked eq $list[$i++] );
	$out .="> ".$list[$i++];
    } while( $i < $size );

    return $out;
}

sub p_entry
{
    my ( $name, $size, $value ) = @_;

    $size ? return "</td> <td><input name=". $name. " size=". $size." value=\"". $value."\">" : return "</td> <td><input name=". $name. " value=\"". $value."\">";
}

sub p_select_wdl
{
    my ( $name, $selected, @list ) = @_;
    local $size = @list, $i = 0, $out = "</td> <td><select name=".$name.">";
    do
    {
	$out .= "<option name=".$name." value=".$list[$i];
	$out .= " selected" if( $selected eq $list[$i++] );
	$out .= ">".$list[$i++];
    } while( $i < $size );
    $out .= "</select>";

    return $out;
}
   070701000425a6000081e40000000000000002000000013ac0389000001cfe000000200000000000000000000000000000001a00000003reloc/fdisk/edit_part.cgi #!/usr/local/bin/perl
# edit_part.cgi
# Edit an existing partition, or create a new one

require './fdisk-lib.pl';
&ReadParse();
@dlist = &list_disks();
$dinfo = $dlist[$in{'disk'}];
&can_edit_disk($dinfo->{'device'}) ||
	&error($text{'edit_ecannot'});
if ($in{'new'}) {
	&header($text{'create_title'}, "");
	}
else {
	&header($text{'edit_title'}, "");
	}
print "<hr>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'edit_details'}</b></td> </tr>\n";
print "<form action=save_part.cgi><tr $cb><td><table width=100%>\n";
print "<input type=hidden name=disk value=$in{'disk'}>\n";
print "<input type=hidden name=part value=$in{'part'}>\n";
print "<input type=hidden name=new value=$in{'new'}>\n";
@plist = &list_partitions($dinfo->{'device'});
if ($in{'new'}) {
	if ($in{'new'} == 1 || $in{'new'} == 3) {
		# Adding a new primary or extended partition
		$np = 1;
		for($i=0; $i<@plist; $i++) {
			if ($plist[$i]->{'number'} == $np) { $np++; }
			push(@start, $plist[$i]->{'start'});
			push(@end, $plist[$i]->{'end'});
			}
		$min = 1;
		$max = $dinfo->{'cylinders'};
		}
	else {
		# Adding a new logical partition (inside the extended partition)
		$np = 5;
		for($i=0; $i<@plist; $i++) {
			if ($plist[$i]->{'number'} == $np) { $np++; }
			if ($plist[$i]->{'extended'}) {
				$min = $plist[$i]->{'start'};
				$max = $plist[$i]->{'end'};
				}
			else {
				push(@start, $plist[$i]->{'start'});
				push(@end, $plist[$i]->{'end'});
				}
			}
		}
	print "<input type=hidden name=newpart value=$np>\n";
	print "<input type=hidden name=min value=$min>\n";
	print "<input type=hidden name=max value=$max>\n";

	# find a gap in the partition map
	for($start=$min; $start<=$max; $start++) {
		$found = 1;
		for($i=0; $i<@start; $i++) {
			if ($start >= $start[$i] && $start <= $end[$i]) {
				$found = 0;
				last;
				}
			}
		if ($found) { last; }
		}
	if ($found) {
		# starting place found.. find the end
		$found = 0;
		for($end=$start; $end<=$max; $end++) {
			for($i=0; $i<@start; $i++) {
				if ($end >= $start[$i] && $end <= $end[$i]) {
					$found = 1;
					last;
					}
				}
			if ($found) { last; }
			}
		$end--;
		}
	else {
		# no place for new partition!
		$start = $end = 0;
		}
	}
else { 
	# Just editing an existing partition
	$pinfo = $plist[$in{'part'}];
	$np = $pinfo->{'number'};
	}
print "<input type=hidden name=np value=$np>\n";

print "<tr> <td valign=top><b>$text{'edit_location'}</b></td>\n";
print "<td>",$dinfo->{'device'} =~ /^\/dev\/(s|h)d([a-z])$/ ?
		&text('select_part', $1 eq 's' ? 'SCSI' : 'IDE', uc($2), $np) :
	     $dinfo->{'device'} =~ /rd\/c(\d+)d(\d+)$/ ?
		&text('select_mpart', "$1", "$2", $np) :
		$dinfo->{'device'},"</td>\n";

print "<td><b>$text{'edit_device'}</b></td>\n";
$dev = $dinfo->{'prefix'}.$np;
print "<td>$dev</td> </tr>\n";

print "<tr> <td><b>$text{'edit_type'}</b></td>\n";
if ($pinfo->{'extended'} || $in{'new'} == 3) {
	print "<td>$text{'extended'}</td>\n";
	}
else {
	print "<td><select name=type>\n";
	foreach $t (sort { &tag_name($a) cmp &tag_name($b) } &list_tags()) {
		printf "<option value=$t %s> %s\n",
			($in{'new'} && $t eq "83" ||
			 !$in{'new'} && $t eq $pinfo->{'type'}) ? "selected"
								: "",
			&tag_name($t);
		}
	print "</select></td>\n";
	}

print "<td><b>$text{'edit_extent'}</b></td>\n";
if ($in{'new'}) {
	print "<td><input name=start size=4 value=$start> - \n";
	print "<input name=end size=4 value=$end>\n";
	}
else {
	print "<td><tt>$pinfo->{'start'}</tt> - <tt>$pinfo->{'end'}</tt>\n";
	}
print $text{'edit_of'}," $dinfo->{'cylinders'}</td> </tr>\n";

print "<tr> <td><b>$text{'edit_status'}</b></td>\n";
if ($pinfo->{'extended'}) {
	foreach $p (@plist) {
		$ecount++ if ($p->{'number'} > 4);
		}
	if ($ecount == 1) {
		print "<td>", $text{'edit_cont1'}, "</td>\n";
		}
	else {
		if ($ecount > 4) {
			print "<td>", &text('edit_cont5', $ecount), "</td>\n";
			}
		else {
			print "<td>", &text('edit_cont234', $ecount), "</td>\n";
			}
		}
	}
else {
	@stat = &device_status($dev);
	if (@stat) {
		$msg = $stat[2] ? 'edit_mount' : 'edit_umount';
		$msg .= 'vm' if ($stat[1] eq 'swap');
		$msg .= 'raid' if ($stat[1] eq 'raid');
		print "<td>",&text($msg, "<tt>$stat[0]</tt>",
		      "<tt>$stat[1]</tt></td>"),"</td>\n";
		}
	elsif ($in{'new'}) { print "<td>$text{'edit_notexist'}</td>\n"; }
	else { print "<td>$text{'edit_notused'}</td>\n"; }
	}

print "<td><b>$text{'edit_size'}</b></td>\n";
if ($in{'new'}) { print "<td>$text{'edit_notexist'}</td> </tr>\n"; }
else { print "<td>",&text('edit_blocks', $pinfo->{'blocks'}),"</td> </tr>\n"; }

if (&has_command("e2label") && ($pinfo->{'type'} eq '83' || $in{'new'})) {
	local $label;
	chop($label = `e2label $pinfo->{'device'} 2>/dev/null`)
		if (!$in{'new'});
	print "<tr> <td><b>$text{'edit_label'}</b></td> <td>\n";
	if (@stat) {
		print $label ? "<tt>$label</tt>" : $text{'edit_none'};
		}
	else {
		print "<input name=label size=16 value='$label'>\n";
		}
	print "</td> </tr>\n";
	}

print "</table></td></tr></table><p>\n";
if (@stat) { print "<b>$text{'edit_inuse'}</b>.\n"; }
elsif ($in{'new'}) {
	print "<input type=submit value=\"$text{'create'}\">\n";
	}
else {
	if (!$pinfo->{'extended'}) {
		print "<input type=submit value=\"$text{'save'}\">\n";
		}
	print "<input name=delete type=submit value=\"$text{'delete'}\">\n";
	}
print "</form>\n";

if (!$in{'new'} && !$pinfo->{'extended'}) {
	if (!$in{'new'} && (!@stat || $stat[2] == 0) &&
	    &conv_type($pinfo->{'type'})) {
		print "<hr><table width=100%>\n" if (!$donehead++);
		print "<tr> <form action=mkfs_form.cgi>\n";
		print "<td valign=top>\n";
		print "<input type=hidden name=dev value=$dev>\n";
		print "<input type=hidden name=type value=",
		      &conv_type($pinfo->{'type'}),">\n";
		print "<input type=submit value=\"$text{'edit_mkfs'}\"></td>\n";
		print "<td>",&text('edit_mkfsmsg',
		      "<b>".$fstypes{&conv_type($pinfo->{'type'})}."</b>"),
		      "</td>\n";
		print "</form> </tr>\n";
		if ($pinfo->{'type'} eq '83' && &has_command("mkreiserfs")) {
			print "<tr> <form action=mkfs_form.cgi>\n";
			print "<td valign=top>\n";
			print "<input type=hidden name=dev value=$dev>\n";
			print "<input type=hidden name=type value=reiserfs>\n";
			print "<input type=submit value=\"$text{'edit_mkfs'}\"></td>\n";
			print "<td>",&text('edit_mkfsmsg',
			      "<b>".$fstypes{'reiserfs'}."</b>"),"</td>\n";
			print "</form> </tr>\n";
			}
		}

	if (!$in{'new'} && @stat && $stat[2] == 0 && &can_fsck($stat[1])) {
		print "<hr><table width=100%>\n" if (!$donehead++);
		print "<tr> <form action=fsck_form.cgi>\n";
		print "<td valign=top>\n";
		print "<input type=hidden name=dev value=$dev>\n";
		print "<input type=hidden name=type value=$stat[1]>\n";
		print "<input type=submit value=\"$text{'edit_fsck'}\"></td>\n";
		print "<td>",&text('edit_fsckmsg', "<tt>fsck</tt>"),"</td>\n";
		print "</form> </tr>\n";
		}

	if (!$in{'new'} && @stat && $stat[2] == 0 && &can_tune($stat[1])) {
		print "<hr><table width=100%>\n" if (!$donehead++);
		print "<tr> <form action=tunefs_form.cgi>\n";
		print "<td valign=top>\n";
		print "<input type=hidden name=dev value=$dev>\n";
		print "<input type=hidden name=type value=$stat[1]>\n";
		print "<input type=submit value=\"", $text{'edit_tune'}, "\"></td>\n";
		print "<td>$text{'edit_tunemsg'}</td> </tr>\n";
		print "</form> </tr>\n";
		}
	print "</table><p>\n" if ($donehead);
	}

print "<hr>\n";
&footer("", $text{'index_return'});

  070701000425a7000081a40000000000000002000000013ac0389000004f97000000200000000000000000000000000000001900000003reloc/fdisk/fdisk-lib.pl  # fdisk-lib.pl
# Functions for disk management under linux

do '../web-lib.pl';
&init_config();
&foreign_require("mount", "mount-lib.pl");
&foreign_require("raid", "raid-lib.pl") if (&foreign_check("raid"));
&foreign_require("proc", "proc-lib.pl");
%access = &get_module_acl();
$| = 1;

# list_disks()
# Returns a list of structures, one per disk
sub list_disks
{
return @list_disks_cache if (defined(@list_disks_cache));
local (@rv, $f, $i);
local $idx = 0;
if ((-d "/proc/ide" || -d "/proc/scsi") && -r "/proc/partitions") {
	# Get the list of IDE disks from the kernel
	opendir(IDE, "/proc/ide");
	foreach $f (sort { $a cmp $b } readdir(IDE)) {
		next if ($f !~ /hd(\S)$/);
		local $disk = { "device" => "/dev/$f",
				"prefix" => "/dev/$f",
				"type" => "ide" };
		open(MEDIA, "/proc/ide/$f/media");
		local $media = <MEDIA>;
		close(MEDIA);
		next if ($media !~ /^disk/);
		open(GEOM, "/proc/ide/$f/geometry");
		while(<GEOM>) {
			if (/logical\s+(\d+)\/(\d+)\/(\d+)/) {
				$disk->{'cylinders'} = $1;
				$disk->{'heads'} = $2;
				$disk->{'sectors'} = $3;
				}
			}
		close(GEOM);
		open(MODEL, "/proc/ide/$f/model");
		chop($disk->{'model'} = <MODEL>);
		close(MODEL);
		$disk->{'index'} = $idx++;
		$disk->{'desc'} = &text('select_device', 'IDE',
					uc(substr($disk->{'device'}, -1)));
		push(@rv, $disk);
		}
	closedir(IDE);

	# Get the list of SCSI disks from the kernel and fdisk
	local @scsi;
	open(PARTS, "/proc/partitions");
	while(<PARTS>) {
		if (/\d+\s+\d+\s+\d+\s+sd(\S)\s/) {
			push(@scsi, "/dev/sd$1");
			}
		elsif (/\d+\s+\d+\s+\d+\s+(rd\/c(\d+)d\d+)\s/) {
			local ($d, $c) = ("/dev/$1", $2);
			push(@scsi, $d);
			open(RD, "/proc/rd/c$c/current_status");
			while(<RD>) {
				if (/^Configuring\s+(.*)/i) {
					$dac{$d} = $1;
					}
				elsif (/\s+(\S+):\s+([^, ]+)/ && $1 eq $d) {
					$raid{$d} = $2;
					}
				}
			close(RD);
			}
		}
	close(PARTS);
	local @pscsi;
	open(SCSI, "/proc/scsi/scsi");
	while(<SCSI>) {
		s/\s/ /g;
		if (/^Host:/) {
			push(@pscsi, $_);
			}
		elsif (/^\s+\S/) {
			$pscsi[$#pscsi] .= $_;
			}
		}
	close(SCSI);
	@pscsi = grep { /Type:\s+Direct-Access/i } @pscsi;
	for($i=0; $i<@scsi; $i++) {
		next if ($pscsi[$i] =~ /USB-FDU/i);     # skip USB floppies!
		&open_fdisk("-l", $scsi[$i]);
		while(<$fh>) {
			if (/Disk\s+([^ :]+):\s+(\d+)\s+\S+\s+(\d+)\s+\S+\s+(\d+)/) {
				local @st = stat($1);
				local $disk = { 'device' => $1,
						'heads' => $2,
						'sectors' => $3,
						'cylinders' => $4,
						'index' => $idx++,
						'type' => 'scsi' };
				if ($pscsi[$i] =~ /Vendor:\s+(\S+).*Model:\s+(.*)\s+Rev:/i) {
					$disk->{'model'} = "$1 $2";
					}
				if ($pscsi[$i] =~ /Host:\s+scsi(\d+).*Id:\s+(\d+)/i) {
					$disk->{'controller'} = int($1);
					$disk->{'scsiid'} = int($2);
					}
				if ($dac{$disk->{'device'}}) {
					$disk->{'model'} = $dac{$disk->{'device'}};
					$disk->{'raid'} = $raid{$disk->{'device'}};
					$disk->{'device'} =~ /c(\d+)d(\d+)$/;
					$disk->{'desc'} = &text('select_mylex', "$1", "$2");
					$disk->{'prefix'} = $disk->{'device'}.'p';
					}
				else {
					$disk->{'desc'} = &text('select_device', 'SCSI',
								uc(substr($disk->{'device'}, -1)));
					$disk->{'prefix'} = $disk->{'device'};
					}
				push(@rv, $disk);
				}
			}
		&close_fdisk();
		}
	}
else {
	# Get the list from fdisk -l
	local @cdstat = stat("/dev/cdrom");
	&open_fdisk("-l");
	while(<$fh>) {
		if (/Disk\s+([^ :]+):\s+(\d+)\s+\S+\s+(\d+)\s+\S+\s+(\d+)/) {
			local @st = stat($1);
			if ($st[1] != $cdstat[1]) {
				local $disk = { 'device' => $1,
						'prefix' => $1,
						'heads' => $2,
						'sectors' => $3,
						'cylinders' => $4,
						'index' => $idx++ };
				$disk->{'type'} =
				    $disk->{'device'} =~ /hd.$/ ? 'ide'
								: 'scsi';
				$disk->{'desc'} = &text('select_device', uc($disk->{'type'}),
							uc(substr($disk->{'device'}, -1)));
				push(@rv, $disk);
				}
			}
		}
	}
@list_disks_cache = @rv;
return @rv;
}

# list_partitions(disk)
# Returns a list of structures, one per partition
sub list_partitions
{
return @{$list_partitions_cache{$_[0]}}
	if (defined($list_partitions_cache{$_[0]}));
local(@rv, $wf);
local $idx = 0;
&open_fdisk($_[0]);
&wprint("p\nq\n");
&wait_for($fh, 'System\r');
while(1) {
	$wf = &wait_for($fh,
	  '\n(\/dev\/\S+?(\d+))[ \t*]+\d+\s+(\d+)\s+(\d+)\s+(\S+)\s+(\S{1,2})\s+(.*)\r',
	  '\n(\/dev\/\S+?(\d+))[ \t*]+(\d+)\s+(\d+)\s+(\S+)\s+(\S{1,2})\s+(.*)\r');
	last if ($wf < 0);
	$matches[4] =~ s/\+$//g;
	push(@rv, { 'number' => $matches[2],
		    'device' => $matches[1],
		    'type' => $matches[6],
		    'start' => $matches[3],
		    'end' => $matches[4],
		    'blocks' => $matches[5],
		    'extended' => $matches[6] eq '5' || $matches[6] eq 'f' ? 1 : 0,
		    'desc' => $matches[1] =~ /(.)d(\S)(\d+)$/ ?
			      &text('select_part', $1 eq 's' ? 'SCSI' : 'IDE', uc($2), "$3") :
			      $matches[1] =~ /rd\/c(\d+)d(\d+)p(\d+)$/ ? 
			      &text('select_mpart', "$1", "$2", "$3") : "???",
		    'index' => $idx++ });
	}
&close_fdisk();
$list_partitions_cache{$_[0]} = \@rv;
return @rv;
}

# change_type(disk, partition, type)
# Changes the type of an existing partition
sub change_type
{
&open_fdisk("$_[0]");
&wprint("t\n");
&wait_for($fh, 'Partition.*:');
&wprint("$_[1]\n");
&wait_for($fh, 'Hex.*:');
&wprint("$_[2]\n");
&wait_for($fh, 'Command.*:');
&wprint("w\n"); sleep(1);
&close_fdisk();
}

# delete_partition(disk, partition)
# Delete an existing partition
sub delete_partition
{
&open_fdisk("$_[0]");
&wprint("d\n");
&wait_for($fh, 'Partition.*:');
&wprint("$_[1]\n");
&wait_for($fh, 'Command.*:');
&wprint("w\n");
&wait_for($fh, 'Syncing'); sleep(3);
&close_fdisk();
}

# create_partition(disk, partition, start, end, type)
# Create a new partition with the given extent and type
sub create_partition
{
&open_fdisk("$_[0]");
&wprint("n\n");
local $wf = &wait_for($fh, 'primary.*\r\n', 'First.*:');
if ($_[1] > 4) {
	&wprint("l\n");
	}
else {
	&wprint("p\n");
	&wait_for($fh, 'Partition.*:');
	&wprint("$_[1]\n");
	}
&wait_for($fh, 'First.*:') if ($wf != 1);
&wprint("$_[2]\n");
&wait_for($fh, 'Last.*:');
&wprint("$_[3]\n");
&wait_for($fh, 'Command.*:');

&wprint("t\n");
&wait_for($fh, 'Partition.*:');
&wprint("$_[1]\n");
&wait_for($fh, 'Hex.*:');
&wprint("$_[4]\n");
&wait_for($fh, 'Command.*:');
&wprint("w\n");
&wait_for($fh, 'Syncing'); sleep(3);
&close_fdisk();
}

# create_extended(disk, partition, start, end)
sub create_extended
{
&open_fdisk("$_[0]");
&wprint("n\n");
&wait_for($fh, 'primary.*\r\n');
&wprint("e\n");
&wait_for($fh, 'Partition.*:');
&wprint("$_[1]\n");
&wait_for($fh, 'First.*:');
&wprint("$_[2]\n");
&wait_for($fh, 'Last.*:');
&wprint("$_[3]\n");
&wait_for($fh, 'Command.*:');

&wprint("w\n");
&wait_for($fh, 'Syncing'); sleep(3);
&close_fdisk();
}

# list_tags()
# Returns a list of known partition tag numbers
sub list_tags
{
return sort { hex($a) <=> hex($b) } (keys %tags);
}

# tag_name(tag)
# Returns a human-readable version of a tag
sub tag_name
{
return $tags{$_[0]} ? $tags{$_[0]}
		    : $hidden_tags{$_[0]};
}

# conv_type(tag)
# Given a partition tag, returns the filesystem type (assuming it is supported)
sub conv_type
{
if ($_[0] eq "4" || $_[0] eq "6" ||
    $_[0] eq "1" || $_[0] eq "e") { $rv = "msdos"; }
elsif ($_[0] eq "b" || $_[0] eq "c") { return "vfat"; }
elsif ($_[0] eq "83") { $rv = "ext2"; }
elsif ($_[0] eq "81") { $rv = "minix"; }
else { return undef; }
if (&has_command("mkfs.$rv")) { return $rv; }
return undef;
}

# fstype_name(type)
# Returns a readable name for a filesystem type
sub fstype_name
{
return $fstypes{$_[0]};
}

sub mkfs_options
{
if ($_[0] eq "ext2") {
	&opt_input("ext2_b", $text{'bytes'}, 1);
	&opt_input("ext2_f", $text{'bytes'}, 0);
	&opt_input("ext2_i", "", 1);
	&opt_input("ext2_m", "%", 0);
	&opt_input("ext2_g", "", 1);
	print "<td align=right><b>$text{'ext2_c'}</b></td>\n";
	print "<td><input type=radio name=ext2_c value=1> $text{'yes'}\n";
	print "<input type=radio name=ext2_c value=0 checked> $text{'no'}",
	      "</td> </tr>\n";
	}
elsif ($_[0] eq "msdos" || $_[0] eq "vfat") {
	&opt_input("msdos_f", "", 1);
	&opt_input("msdos_F", "bits", 0);
	&opt_input("msdos_i", "", 1);
	&opt_input("msdos_n", "", 0);
	&opt_input("msdos_r", "", 1);
	&opt_input("msdos_s", "sectors", 0);
	print "<tr> <td align=right><b>$text{'msdos_c'}</b></td>\n";
	print "<td><input type=radio name=msdos_c value=1> $text{'yes'}\n";
	print "<input type=radio name=msdos_c value=0 checked> $text{'no'}",
	      "</td> </tr>\n";
	}
elsif ($_[0] eq "minix") {
	&opt_input("minix_n", "", 1);
	&opt_input("minix_i", "", 0);
	&opt_input("minix_b", "", 1);
	print "<td align=right><b>$text{'minix_c'}</b></td>\n";
	print "<td><input type=radio name=msdos_c value=1> $text{'yes'}\n";
	print "<input type=radio name=msdos_c value=0 checked> $text{'no'}",
	      "</td> </tr>\n";
	}
elsif ($_[0] eq "reiserfs") {
	print "<tr> <td><b>$text{'reiserfs_force'}</b></td>\n";
	print "<td><input type=radio name=reiserfs_f value=1> $text{'yes'}\n";
	print "<input type=radio name=reiserfs_f value=0 checked> ",
	      "$text{'no'}</td>\n";

	print "<td><b>$text{'reiserfs_hash'}</b></td>\n";
	print "<td><select name=reiserfs_h>\n";
	print "<option value='' checked>$text{'default'}\n";
	print "<option>rupasov\n";
	print "<option>tea\n";
	print "</select></td> </tr>\n";
	}
}

# mkfs_parse(type, device)
# Returns a command to build a new filesystem of the given type on the
# given device. Options are taken from %in.
sub mkfs_parse
{
local($cmd);
if ($_[0] eq "ext2") {
	$cmd = "mkfs -t ext2";
	$cmd .= &opt_check("ext2_b", '\d+', "-b");
	$cmd .= &opt_check("ext2_f", '\d+', "-f");
	$cmd .= &opt_check("ext2_i", '\d{4,}', "-i");
	$cmd .= &opt_check("ext2_m", '\d+', "-m");
	$cmd .= &opt_check("ext2_g", '\d+', "-g");
	$cmd .= $in{'ext2_c'} ? " -c" : "";
	$cmd .= " $_[1]";
	}
elsif ($_[0] eq "msdos" || $_[0] eq "vfat") {
	$cmd = "mkfs -t $_[0]";
	$cmd .= &opt_check("msdos_f", '[1-2]', "-f");
	$cmd .= &opt_check("msdos_F", '\d+', "-F");
	$cmd .= &opt_check("msdos_i", '[0-9a-f]{8}', "-i");
	$cmd .= &opt_check("msdos_n", '\S{1,11}', "-n");
	$cmd .= &opt_check("msdos_r", '\d+', "-r");
	$cmd .= &opt_check("msdos_s", '\d+', "-s");
	$cmd .= $in{'msdos_c'} ? " -c" : "";
	$cmd .= " $_[1]";
	}
elsif ($_[0] eq "minix") {
	local(@plist, $disk, $part, $i, @pinfo);
	$cmd = "mkfs -t minix";
	$cmd .= &opt_check("minix_n", '14|30', "-n ");
	$cmd .= &opt_check("minix_i", '\d+', "-i ");
	$cmd .= $in{'minix_c'} ? " -c" : "";
	$cmd .= &opt_check("minix_b", '\d+', " ");
	$cmd .= " $_[1]";
	}
elsif ($_[0] eq "reiserfs") {
	$cmd = "yes | mkreiserfs";
	$cmd .= " -f" if ($in{'reiserfs_f'});
	$cmd .= " -h $in{'reiserfs_h'}" if ($in{'reiserfs_h'});
	$cmd .= " $_[1]";
	}
return $cmd;
}

# can_tune(type)
# Returns 1 if this filesystem type can be tuned
sub can_tune
{
return ($_[0] eq "ext2");
}

# tunefs_options(type)
# Output HTML for tuning options for some filesystem type
sub tunefs_options
{
if ($_[0] eq "ext2") {
	&opt_input("tunefs_c", "", 1);

	print "<td align=right><b>$text{'tunefs_e'}</b></td> <td>\n";
	print "<input type=radio name=tunefs_e_def value=1 checked> ",
	      "$text{'opt_default'}\n";
	print "&nbsp; <input type=radio name=tunefs_e_def value=0>\n";
	print "<select name=tunefs_e>\n";
	print "<option value=continue> $text{'tunefs_continue'}\n";
	print "<option value=remount-ro> $text{'tunefs_remount'}\n";
	print "<option value=panic> $text{'tunefs_panic'}\n";
	print "</select></td> </tr>\n";

	print "<tr> <td align=right><b>$text{'tunefs_u'}</b></td> <td>\n";
	print "<input type=radio name=tunefs_u_def value=1 checked> ",
	      "$text{'opt_default'}\n";
	print "&nbsp; <input type=radio name=tunefs_u_def value=0>\n";
	print "<input name=tunefs_u size=8> ",
	      &user_chooser_button("tunefs_u", 0),"</td>\n";

	print "<td align=right><b>$text{'tunefs_g'}</b></td> <td>\n";
	print "<input type=radio name=tunefs_g_def value=1 checked> ",
	      "$text{'opt_default'}\n";
	print "&nbsp; <input type=radio name=tunefs_g_def value=0>\n";
	print "<input name=tunefs_g size=8> ",
	      &group_chooser_button("tunefs_g", 0),"</td> </tr>\n";

	&opt_input("tunefs_m", "%", 1);
	$tsel = "<select name=tunefs_i_unit>\n".
		"<option value=d> $text{'tunefs_days'}\n".
		"<option value=w> $text{'tunefs_weeks'}\n".
		"<option value=m> $text{'tunefs_months'}\n".
		"</select>\n";
	&opt_input("tunefs_i", $tsel, 0);
	}
}

# tunefs_parse(type, device)
# Returns the tuning command based on user inputs
sub tunefs_parse
{
if ($_[0] eq "ext2") {
	$cmd = "tune2fs";
	$cmd .= &opt_check("tunefs_c", '\d+', "-c");
	$cmd .= $in{'tunefs_e_def'} ? "" : " -e$in{'tunefs_e'}";
	$cmd .= $in{'tunefs_u_def'} ? "" : " -u".getpwnam($in{'tunefs_u'});
	$cmd .= $in{'tunefs_g_def'} ? "" : " -g".getgrnam($in{'tunefs_g'});
	$cmd .= &opt_check("tunefs_m",'\d+',"-m");
	$cmd .= &opt_check("tunefs_i", '\d+', "-i").
		($in{'tunefs_i_def'} ? "" : $in{'tunefs_i_unit'});
	$cmd .= " $_[1]";
	}
return $cmd;
}

# need_reboot(disk)
# Returns 1 if a reboot is needed after changing the partitions on some disk
sub need_reboot
{
local $un = `uname -r`;
return $un =~ /^2\.0\./ || $un =~ /^1\./ || $un =~ /^0\./;
}

# device_status(device)
# Returns an array of  directory, type, mounted
sub device_status
{
@mounted = &foreign_call("mount", "list_mounted") if (!@mounted);
@mounts = &foreign_call("mount", "list_mounts") if (!@mounts);
local $label = `e2label $_[0] 2>/dev/null`;
chop($label);

local ($mounted) = grep { $_->[1] eq $_[0] ||
			  $_->[1] eq "LABEL=$label" } @mounted;
local ($mount) = grep { $_->[1] eq $_[0] ||
			$_->[1] eq "LABEL=$label" } @mounts;
if ($mounted) { return ($mounted->[0], $mounted->[2], 1,
			&indexof($mount, @mounts),
			&indexof($mounted, @mounted)); }
elsif ($mount) { return ($mount->[0], $mount->[2], 0,
			 &indexof($mount, @mounts)); }
elsif (&foreign_check("raid")) {
	$raidconf = &foreign_call("raid", "get_raidtab") if (!$raidconf);
	foreach $c (@$raidconf) {
		if (&indexof($_[0], @{$c->{'devices'}}) >= 0) {
			return ( $c->{'value'}, "raid", 1 );
			}
		}
	}
return ();
}

# can_fsck(type)
# Returns 1 if some filesystem type can fsck'd
sub can_fsck
{
return ($_[0] eq "ext2" && &has_command("fsck.ext2") ||
	$_[0] eq "minix" && &has_command("fsck.minix"));
}

# fsck_command(type, device)
# Returns the fsck command to unconditionally check a filesystem
sub fsck_command
{
if ($_[0] eq "ext2") {
	return "fsck -t ext2 -p $_[1]";
	}
elsif ($_[0] eq "minix") {
	return "fsck -t minix -a $_[1]";
	}
}

# fsck_error(code)
# Returns a description of an exit code from fsck
sub fsck_error
{
return $text{"fsck_err$_[0]"} ? $text{"fsck_err$_[0]"}
			      : &text("fsck_unknown", $_[0]);
}

# partition_select(name, value, mode, &found)
# Returns HTML for selecting a disk or partition
# mode 0 = floppies and disk partitions
#      1 = disks
#      2 = floppies and disks and disk partitions
#      3 = disk partitions
sub partition_select
{
local $rv = "<select name=$_[0]>\n";
local ($found, $d, $p);
if ($_[2] == 0 || $_[2] == 2) {
	$rv .= sprintf "<option %s value=/dev/fd0>%s\n",
		$_[1] eq "/dev/fd0" ? "selected" : "",
		&text('select_fd', 0);
	$rv .= sprintf "<option %s value=/dev/fd1>%s\n",
		$_[1] eq "/dev/fd1" ? "selected" : "",
		&text('select_fd', 1);
	$found++ if ($_[1] =~ /^\/dev\/fd[01]$/);
	}
local @dlist = &list_disks();
foreach $d (@dlist) {
	local $dev = $d->{'device'};
	if ($_[2] == 1 || $_[2] == 2) {
		local $name = $d->{'desc'};
		$name .= " ($d->{'model'})" if ($d->{'model'});
		$rv .= sprintf "<option value=%s %s>%s\n",
			$dev, $_[1] eq $dev ? "selected" : "", $name;
		$found++ if ($dev eq $_[1]);
		}
	if ($_[2] == 0 || $_[2] == 2 || $_[2] == 3) {
		local @parts = &list_partitions($dev);
		foreach $p (@parts) {
			next if ($p->{'extended'});
			local $name = $p->{'desc'};
			$name .= " (".&tag_name($p->{'type'}).")"
				if (&tag_name($p->{'type'}));
			$rv .= sprintf "<option %s value=%s>%s\n",
				  $_[1] eq $p->{'device'} ? "selected" : "",
				  $p->{'device'}, $name;
			$found++ if ($_[1] eq $p->{'device'});
			}
		}
	}
if (!$found && $_[1] && !$_[3]) {
	$rv .= "<option selected>$_[1]\n";
	}
if ($_[3]) {
	${$_[3]} = $found;
	}
$rv .= "</select>\n";
return $rv;
}

# label_select(name, value, &found)
sub label_select
{
local $rv = "<select name=$_[0]>\n";
local @dlist = &list_disks();
local $any;
foreach $d (@dlist) {
	local $dev = $d->{'device'};
	local @parts = &list_partitions($dev);
	foreach $p (@parts) {
		next if ($p->{'type'} ne '83');
		local $label = `e2label $p->{'device'} 2>&1`;
		next if ($? || $label !~ /\S/);
		chop($label);
		$rv .= sprintf "<option %s value=%s>%s (%s)\n",
			  $_[1] eq $label ? "selected" : "",
			  $label, $label, $p->{'desc'};
		${$_[2]}++ if ($_[1] eq $label);
		$any++;
		}
	}
if (!$found && $_[1] && !$_[2]) {
	$rv .= "<option selected>$_[1]\n";
	}
$rv .= "</select>\n";
return $any ? $rv : undef;
}

#############################################################################
# Internal functions
#############################################################################
sub open_fdisk
{
local $fpath = &check_fdisk();
($fh, $fpid) = &foreign_call("proc", "pty_process_exec", $fpath, @_);
}

sub check_fdisk
{
local $fpath = &has_command("fdisk");
&error(&text('open_error', "<tt>fdisk</tt>")) if (!$fpath);
return $fpath;
}

sub close_fdisk
{
close($fh); kill('TERM', $fpid);
}

sub wprint
{
syswrite($fh, $_[0], length($_[0]));
}

sub opt_input
{
print $_[2] ? "<tr>" : "";
print "<td align=right><b>$text{$_[0]}</b></td>\n";
print "<td nowrap><input type=radio name=$_[0]_def value=1 checked> ",
      $text{'opt_default'},"\n";
print "&nbsp; <input type=radio name=$_[0]_def value=0>\n";
print "<input name=$_[0] size=6> $_[1]</td>";
print $_[2] ? "\n" : "</tr>\n";
}

sub opt_check
{
if ($in{"$_[0]_def"}) { return ""; }
elsif ($in{$_[0]} !~ /^$_[1]$/) {
	&error(&text('opt_error', $in{$_[0]}, $text{$_[0]}));
	}
else { return " $_[2] $in{$_[0]}"; }
}

%tags = ('0', 'Empty',
	 '1', 'FAT12',
	 '2', 'XENIX root',
	 '3', 'XENIX usr',
	 '4', 'FAT16 <32M',
	 '6', 'FAT16',
	 '7', 'HPFS/NTFS',
	 '8', 'AIX',
	 '9', 'AIX bootable',
	 'a', 'OS/2 boot manager',
	 'b', 'Win95 FAT32',
	 'c', 'Win95 FAT32 LBA',
	 'e', 'Win95 FAT16 LBA',
	'10', 'OPUS',
	'11', 'Hidden FAT12',
	'12', 'Compaq diagnostic',
	'14', 'Hidden FAT16 < 32M',
	'16', 'Hidden FAT16',
	'17', 'Hidden HPFS/NTFS',
	'18', 'AST Windows swapfile',
	'1b', 'Hidden Win95 FAT (1b)',
	'1c', 'Hidden Win95 FAT (1c)',
	'1e', 'Hidden Win95 FAT (1e)',
	'24', 'NEC DOS',
	'3c', 'PartitionMagic recovery',
	'40', 'Venix 80286',
	'41', 'PPC PReP boot',
	'42', 'SFS',
	'4d', 'QNX 4.x',
	'4e', 'QNX 4.x 2nd partition',
	'4f', 'QNX 4.x 3rd partition',
	'50', 'OnTrack DM',
	'51', 'OnTrack DM6 Aux1',
	'52', 'CP/M',
	'53', 'OnTrack DM6 Aux3',
	'54', 'OnTrack DM6',
	'55', 'EZ-Drive',
	'56', 'Golden Bow',
	'5c', 'Priam Edisk',
	'61', 'SpeedStor',
	'63', 'GNU HURD or SysV',
	'64', 'Novell Netware 286',
	'65', 'Novell Netware 386',
	'70', 'DiskSecure Multi-Boot',
	'75', 'PC/IX',
	'80', 'Old Minix',
	'81', 'Minix / Old Linux / Solaris',
	'82', 'Linux swap',
	'83', 'Linux',
	'84', 'OS/2 hidden C: drive',
	'85', 'Linux extended',
	'86', 'NTFS volume set (86)',
	'87', 'NTFS volume set (87)',
	'8e', 'Linux LVM',
	'93', 'Amoeba',
	'94', 'Amoeba BBT',
	'a0', 'IBM Thinkpad hibernation',
	'a5', 'BSD/386',
	'a6', 'OpenBSD',
	'a7', 'NeXTSTEP',
	'b7', 'BSDI filesystem',
	'b8', 'BSDI swap',
	'c1', 'DRDOS/sec FAT12',
	'c4', 'DRDOS/sec FAT16 <32M',
	'c6', 'DRDOS/sec FAT16',
	'c7', 'Syrinx',
	'db', 'CP/M / CTOS',
	'e1', 'DOS access',
	'e3', 'DOS read-only',
	'e4', 'SpeedStor',
	'eb', 'BeOS',
	'f1', 'SpeedStor',
	'f4', 'SpeedStor large partition',
	'f2', 'DOS secondary',
	'fd', 'Linux raid',
	'fe', 'LANstep',
	'ff', 'BBT'
	);

%hidden_tags = (
	 '5', 'Extended',
	 'f', 'Win95 extended LBA',
	);
	
%fstypes = ("ext2","Linux Native",
	    "minix","Minix",
	    "msdos","MS-DOS",
	    "vfat","Windows 95",
	    "reiserfs","ReiserFS");

@space_type = ( '1', '4', '5', '6', 'b', 'c', 'e', '83' );

# can_edit_disk(device)
sub can_edit_disk
{
foreach (split(/\s+/, $access{'disks'})) {
        return 1 if ($_ eq "*" || $_ eq $_[0]);
        }
return 0;
}

# disk_space(device)
# Returns the amount of total and free space for some filesystem, or an
# empty array if not appropriate.
sub disk_space
{
`df -k $_[0]` =~ /Mounted on\n\S+\s+(\S+)\s+\S+\s+(\S+)/ || return ();
return ($1, $2);
}

 070701000425a8000081e40000000000000002000000013ac0389000000227000000200000000000000000000000000000001500000003reloc/fdisk/fsck.cgi  #!/usr/local/bin/perl
# fsck.cgi
# Where the fsck command actually gets run

require './fdisk-lib.pl';
&ReadParse();
&can_edit_disk($in{'dev'}) || &error($text{'fsck_ecannot'});
&header($text{'fsck_title'}, "");
print "<hr>\n";

print &text('fsck_exec', "<tt>$cmd</tt>"),"<p>\n";
print "<pre>\n";
&foreign_call("proc", "safe_process_exec_logged",
	      $in{'cmd'}, 0, 0, STDOUT, undef, 1);
print "</pre>\n";
print "... ",&fsck_error($?/256),"<p>\n"; 
&webmin_log("fsck", undef, $in{'dev'}, \%in);

print "<hr>\n";
&footer("", $text{'index_return'});
 070701000425a9000081e40000000000000002000000013ac038900000035c000000200000000000000000000000000000001a00000003reloc/fdisk/fsck_form.cgi #!/usr/local/bin/perl
# fsck_form.cgi
# Ask questions before running fsck on a filesystem

require './fdisk-lib.pl';
&ReadParse();
&can_edit_disk($in{'dev'}) || &error($text{'fsck_ecannot'});
&header($text{'fsck_title'}, "");
print "<hr>\n";

@stat = &device_status($in{dev});
print &text('fsck_desc1', &fstype_name($stat[1]), "<tt>$in{dev}</tt>",
	    "<tt>$stat[0]</tt>"),"<p>\n";
$cmd = &fsck_command($stat[1], $in{dev});
print &text('fsck_desc2', "<tt>$cmd</tt>", "<tt>fsck</tt>"),"<p>\n";

print "<form action=fsck.cgi>\n";
print "<input type=hidden name=cmd value=\"$cmd\">\n";
print "<input type=hidden name=dev value=\"$in{'dev'}\">\n";
print "<input type=hidden name=type value=\"$in{'type'}\">\n";
print "<center><input type=submit value=\"$text{'fsck_repair'}\"></center>\n";
print "</form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

07070100046ba8000041ed0000000000000001000000023ac03be400000000000000200000000000000000000000000000001100000003reloc/fdisk/help  07070100046ba9000081a40000000000000002000000013ac0389000000098000000200000000000000000000000000000001b00000003reloc/fdisk/help/A.es.html    <header>Lectura-adelantada</header>
Desactiva/activa la catarter韘tica del conductor IDE de lectura adelantada
(Norm醠mente activada por defecto).
<hr>
07070100046baa000081a40000000000000002000000013ac038900000005b000000200000000000000000000000000000001b00000003reloc/fdisk/help/A.fr.html    <header>Option 'read-lookahead'</header>
Option du disque qui est g閚閞alement activ.
<hr> 07070100046bab000081a40000000000000002000000013ac0389000000073000000200000000000000000000000000000001800000003reloc/fdisk/help/A.html   <header>Read-lookahead</header>
Disable/enable the IDE drive's read-lookahead feature (usually ON by default).
<hr> 07070100046bac000081a40000000000000002000000013ac0389000000080000000200000000000000000000000000000001b00000003reloc/fdisk/help/A.hu.html    <header>El鮮eolvas醩</header>
Let韑tja/enged閘yezi az IDE meghajt髃 el鮮eolvas funkci骿醫 (醠tal醔an
ez be van kapcsolva).
<hr>07070100046bad000081a40000000000000002000000013ac0389000000076000000200000000000000000000000000000001b00000003reloc/fdisk/help/A.sv.html    <header>Read-lookahead</header>
Deaktivera/aktivera IDE-diskens read-lookahead-egenskap (oftast P som standard).
<hr>  07070100046bae000081a40000000000000002000000013ac0389000000054000000200000000000000000000000000000002300000003reloc/fdisk/help/A.zh_TW.Big5.html    <header>箇弄</header>
闽超/币笆 IDE 砞称箇弄 (箇砞硄盽 '秨').
<hr>07070100046baf000081a40000000000000002000000013ac03890000001f0000000200000000000000000000000000000001b00000003reloc/fdisk/help/K.es.html    <header>Mantener caracter韘ticas al reiniciar</header>
Pone la bandera <i>mantener_caracter韘ticas_al_reiniciar</i>.<p>

Poner esto permite que el conductor retenga los valores para <b>Leer mirar-por delante</b>, <b>Reprogramas mejor modo PIO</b>, <b>Tiempo de espera quieto</b>, <b>Cach de escritura</b> y <b>Modo de Transferencia</b> al producirse un reinicio por soft (como sucede durante la secuencia de recuperaci髇 de error).<p>
No todos los conductores soportan esta caracter韘tica.
<hr>
07070100046bb0000081a40000000000000002000000013ac0389000000218000000200000000000000000000000000000001b00000003reloc/fdisk/help/K.fr.html    <header>Garder la configuration au red閙arrage</header>
Configure l'option <i>keep_features_over_reset</i> du disque.<p>

Ceci permet au disque de garder la configuration d'<b>Activer l'option 'read-lookahead'</b>, <b>Reprogrammer le meilleur PIO</b>, <b>Temps d'inactivit avant la mise en attente</b>, <b>Cache en 閏riture</b> et <b>Mode de transfert</b> durant un red閙arrage  chaud (comme ceux effectu durant une s閝uence de recouvrement d'erreur du disque).<p>
Ce ne sont pas tout les disques qui supportent cette fonctions.
<hr>07070100046bb1000081a40000000000000002000000013ac038900000018d000000200000000000000000000000000000001800000003reloc/fdisk/help/K.html   <header>Keep features over reset</header>
Set the drive's <i>keep_features_over_reset</i> flag.<p>

Setting this enables the drive to retain the settings for <b>Read look-readahead</b>, <b>Reprogram best PIO mode</b>, <b>Standby timeout</b>, <b>Write caching</b> and <b>Transfert Mode</b> over a soft reset (as done during the error recovery sequence).<p>
Not all drives support this feature.
<hr>   07070100046bb2000081a40000000000000002000000013ac03890000001be000000200000000000000000000000000000001b00000003reloc/fdisk/help/K.hu.html    <header>Jellegzetess間ek meg鮮z閟e reset-el閟 ut醤</header>
Be醠l韙ja a meghajt <i>keep_features_over_reset</i> jelz閟閠.<p>

Be醠l韙ott 醠lapotban a meghajt meg鮮zi az <b>El鮮eolvas醩</b>, <b>Legjobb 
PIO 醫programoz醩a</b>, <b>K閟zenl閠i id鮰鷏l閜閟</b>,
<b>蛂醩gyors韙醩</b> 閟 <b>羣viteli m骴</b> 閞t閗eit meleg 鷍raind韙醩
sor醤 (ami a hiba ut醤i vissza醠l韙醩 sor醤 is megt鰎t閚ik). Nem minden 
meghajt t醡ogatja ezt a funkci髏.<p>
<hr>
  07070100046bb3000081a40000000000000002000000013ac0389000000195000000200000000000000000000000000000001b00000003reloc/fdisk/help/K.sv.html    <header>Spara inst鋖lningar vid omstart</header>
S鋞ter diskens <i>keep_features_over_reset</i>-flagga.

<p>N鋜 du v鋖jer detta kommer disken att spara inst鋖lningarna f鰎
<b>Read-lookahead</b>, <b>Programmera b鋝ta PIO-mod</b>, <b>Tid f鰎 standby</b>, <b>Skriv-cache</b> och <b>講erf鰎ingsmod</b> 鰒er en mjukomstart
(liksom vid en 錿erskapningssekvens efter fel).
<p>Alla diskar st鰀jer inte detta.
<hr>   07070100046bb4000081a40000000000000002000000013ac0389000000102000000200000000000000000000000000000002300000003reloc/fdisk/help/K.zh_TW.Big5.html    <header>砞玂痙砞﹚</header>
砞﹚合盒 <i>keep_settings_over_reset</i> 篨夹.<p>

砞﹚硂ㄏ合盒砞 (┪岿粇確祘い) 玂痙<b>ㄏノ钡癘拘砰</b>, <b>い耞綛竛</b>, 籔<b>合跋块合跋璸计</b>砞﹚.<p>

ぃ琌┮Τ合盒常や穿硂.
<hr>  07070100046bb5000081a40000000000000002000000013ac03890000003d4000000200000000000000000000000000000001b00000003reloc/fdisk/help/P.es.html    <header>Reprogramar mejor PIO</header>
Intenta reprogramar el conjunto de chips de la interfaz IDE para el modo PIO especificado o intenta autosintonizar para el "mejor" modo PIO soportado por el conductor.<p>

Esta caracter韘tica es soportada en el kernel para s髄o unos pocos conjuntos de chips "conocidos" e, incluso entonces, el soporte es dudoso como poco. Algunos conjuntos de chips IDE son incapaces de alterar el modo PIO de un solo conductor, en cuyo caso esta bandera puede causar que se ponga el modo PIO para ambos conductores. Muchos conjuntos de chip IDE soportan o menos o m醩 del est醤dar de seis (0 a 5) modos PIO, por ello el valor de la velocidad exacta que se implementa actu醠mente variar seg鷑a ls sofisticaci髇 del conjunto de chips/conductor.<p>

<i>sar con extrema precauci髇!</i><br>
Esta caracter韘tica incluye protecci髇 cero para los que no sepan y un manejo fracasado puede resultar en una <i>orrupci髇 severa del sistema de archivos!</i>.
<hr>
07070100046bb6000081a40000000000000002000000013ac0389000000307000000200000000000000000000000000000001b00000003reloc/fdisk/help/P.fr.html    <header>Reprogrammer le meilleur PIO</header>
Tente de reprogrammer la puce du contr鬺eur IDE pour configurer le mode PIO sp閏ifi ou essait de trouver le meilleur mode PIO support par ce disque.<p>

Cette option est support dans le noyau que pour certaine puce connue et seulement si ce support est stable.  Certaine puce IDE sont incapable de modifier le mode PIO d'un seul disque, dans ce cas cette option peut changer le mode PIO des deux disques.  Plusieurs puce IDE supporte entre autres les six (0  5) modes, alors la vitesse exacte varie selon le niveau de sophistication de la puce et du pilote.<p>

<i>!Utiliser avec une extr鑝e prudence!</i><br>
Cette option inclut aucune protection, une erreur peut causer une corruption s関鑢e du syst鑝e de fichier!</i>
<hr> 07070100046bb7000081a40000000000000002000000013ac0389000000332000000200000000000000000000000000000001800000003reloc/fdisk/help/P.html   <header>Reprogram best PIO</header>
Attempt to reprogram the IDE interface chipset for the specified PIO mode, or attempt to auto-tune for the "best" PIO mode supported by the drive.<p>

This feature is supported in the kernel for only a few "known" chipsets, and even then the support is iffy at best.  Some IDE chipsets are unable to alter the PIO mode for a single drive, in which case this flag may cause the PIO mode for both drives to be set.  Many IDE chipsets support either fewer or more than the standard six (0 to 5) PIO modes, so the exact speed setting that is actually implemented will vary by chipset/driver sophistication.<p>

<i>!Use with extreme caution!</i><br>
This feature includes zero protection for the unwary, and an unsuccessful outcome may result in <i>severe filesystem corruption!</i>
<hr>  07070100046bd0000081a40000000000000002000000013ac038900000035f000000200000000000000000000000000000001b00000003reloc/fdisk/help/P.hu.html    <header>Legjobb PIO 醫programoz醩a</header>
Megk韘閞li 醫programozni az IDE csatlakoz chipset-et a megadott
PIO m骴ra, vagy megpr骲醠ja automatikusan 醫hangolni a meghajt 醠tal
t醡ogatott "legjobb" PIO m骴ra.<p>

Ezt a lehet鮯間et csak n閔醤y "ismert" chipset sz醡醨a t醡ogatja a kernel,
閟 eset黭ben a t醡ogat醩 t鯾b-kev閟b t鰇閘etes. N閔醤y IDE chipset
nem tudja csak egy meghajt髍a megv醠toztatni a PIO m骴ot, mely esetben
a PIO m骴 az 鰏szes eszk鰖re megv醠tozik. Sz醡os IDE chipset
t醡ogat valamennyit a szabv醤y hat (0-t髄 5-ig) PIO m骴 k鰖黮, 韌y
a pontos sebess間be醠l韙醩 - amelyet t閚ylegesen implement醠tak - f黦geni fog
a chipset/meghajt k閚ye-kedv閠鮨.<p>

<i>!Haszn醠ja fokozott figyelemmel!</i><br>
Ez a szolg醠tat醩 semmilyen k鰊nyelm鹲間t鮨 sincs v閐ve, 閟 egy
balszerencs閟 kimenetel <i>sz醡os f醞lrendszer s閞黮閟t</i> eredm閚yezhet!
<hr>
 07070100046bd6000081a40000000000000002000000013ac03890000002e0000000200000000000000000000000000000001b00000003reloc/fdisk/help/P.sv.html    <header>Programmera b鋝ta PIO</header>
F鰎s鰇 att 錿er programmera IDE-interfacechipsetet f鰎 angiven PIO-mod, eller
f鰎s鰇 att automatiskt st鋖la in "b鋝ta" PIO-mod som st鰀s av disken.

<p>K鋜nan st鰀jer endast detta f鰎 ett f錿al "k鋘da" chipset och 鋠en f鰎
dessa 鋜 st鰀et skakigt. En del IDE-chipset kan inte 鋘dra PIO-mod f鰎 en
enstaka disk, vilket medf鰎 att b錮a diskarnas PIO-mod 鋘dras. M錸ga
IDE-chipset st鰀er antingen fler eller f鋜re 鋘 de standardiserade sex
(0 till 5) PIO-moderna, s den hastighet som verkligen st鋖ls in beror
p chipset och drivrutin.

<p><i>Var f鰎siktig med denna inst鋖lning!</i>
<br>Det finns inget "drulleskydd" och om inst鋖lningarna blir fel kan det
orsaka <i>ett trasigt filsystem!</i>
<hr>07070100046bd7000081a40000000000000002000000013ac03890000001ff000000200000000000000000000000000000002300000003reloc/fdisk/help/P.zh_TW.Big5.html    <header>穝砞﹚程ㄎ PIO</header>
刚帝穝砞﹚ IDE 北竟Θ﹚ PIO 家Α, ┪刚帝笆秸俱Θ合盒┮や穿"程ㄎ" PIO 家Α.<p>

硂砆ぶ计み┮笵北竟┮や穿, τ琌程ㄎ礚猭絋﹚. Τㄇ IDE 北竟ぃ虫合盒秸俱 PIO 家Α, ウ穦秸俱繵笵合盒. 计 IDE 北竟や穿场だ PIO 家Ατぃ琌场 6 贺 (0  5), ┮龟悔硉穦北竟/合盒俱砰紇臫τ狡馒て.<p>

<i>!ㄏノ璶疭み!</i><br>
硂⊿Τヴ玂臔惫琁, τア毖矪瞶穦旧璓<i>狝竟郎╰参穕反!</i>
<hr> 07070100046bd8000081a40000000000000002000000013ac03890000003ce000000200000000000000000000000000000001b00000003reloc/fdisk/help/S.es.html    <header>Tiempo de espera quieto</header>
Pone el tiempo de espera quieto (no da vueltas) para el conductor.<p>

Este valor se usa por el dispositivo para determinar cu醤to esperar (sin actividad de disco) antes de para el motor para ahorrar energ韆<br>
Bajo esas circustancias, el conductor puede tardar tanto como 30 segundos en responder a subsecuentes accesos de disco, aunque la mayor韆 de los conductores son mucho m醩 r醦idos.<p>

La codificaci髇 del valor de tiempo de espera es en alguna manera peculiar. Un valor de cero indica "desactivado". Los valores de 1 a 240 especifican m鷏tiplos de 5 segundos, para tiempos de espera desde 5 segundos a 20 minutos.<br>
Los valores desde 241 a 251 especifican desde 1 a 11 unidades de 30 minutos, para tiempos de espera desde 30 minutos a 5,5 horas. Un valor de 252 indica un tiempo de espera de 21 minutos, 253 pone un tiempo de espera definido por el fabricante y 255 es interpretado como 12 minutos m醩 15 segundos.
<hr>
  07070100046bd9000081a40000000000000002000000013ac0389000000413000000200000000000000000000000000000001b00000003reloc/fdisk/help/S.fr.html    <header>Temps d'inactivit avant la mise en attente</header>
D閒ini le temps d'inactivit avant que le disque se place dans un 閠at d'attente (le disque cesse de tourner).<p>

Cette valeur est utiliser par le disque pour d閠erminer combien de temps d'attente (sans activit du disque) avant d'arr阾er le moteur du disque, et ainsi 閏onomiser l'閚ergie.<br>
Dans certaine circonstances, le disque peut prendre jusqu' 30 secondes pour red閙arrer et r閜ondre  a un acc鑣 au disque, mais la majorit des disques sont plus rapide.<p>

L'encodage de la valeur est particuli鑢e.  Une valeur de 0 signifie que cette option est inutilis.  Une valeur entre 1 et 240 sp閏ifie le multiple de 5 secondes d'attente.  Ainsi le temps d'attente va de 5 secondes  20 minutes.<br>
Les valeurs entre 241 et 251 repr閟ente les unit閟 de 1  11 de bloc de 30 minutes d'attente, ce qui va de 30 minutes  5 heures et demi.  Une valeur de 252 ram鑞e le temps  21 minutes, 253 une valeur sp閏ifi par le fabriquant du disque et 255 21 minutes et 15 secondes.
<hr> 07070100046bda000081a40000000000000002000000013ac0389000000330000000200000000000000000000000000000001800000003reloc/fdisk/help/S.html   <header>Standby timeout</header>
Set the standby (spindown) timeout for the drive.<p>

This value is used by the drive to determine how long to wait (with no disk activity) before turning off the spindle motor to save power.<br>
Under such circumstances, the drive may take as long as 30 seconds to respond to a subsequent disk access, though most drives are much quicker.<p>

The encoding of the timeout value is somewhat peculiar.  A value of zero means "off".  Values from 1 to 240 specify multiples of 5 seconds, for timeouts from 5 seconds to 20 minutes.<br>
Values from 241 to 251 specify from 1 to 11 units of 30 minutes, for timeouts from 30 minutes to 5.5 hours.  A value of 252 signifies a timeout of 21 minutes, 253 sets a vendor-defined timeout, and 255 is interpreted as 21 minutes plus 15 seconds.
<hr>07070100046bdb000081a40000000000000002000000013ac0389000000315000000200000000000000000000000000000001b00000003reloc/fdisk/help/S.sv.html    <header>Tid f鰎 standby</header>
S鋞ter tidsintervall f鰎 standby (spindown) f鰎 disken.<p>

Detta v鋜de anger hur l鋘ge disken ska v鋘ta (utan diskaktivitet) innan
motorn sl錽 av f鰎 att spara str鰉.
<br>N鋜 detta har skett kan svarstiden f鰎 disken ligga upp錿 30 sekunder
(de flesta diskar 鋜 dock mycket snabbare).

<p>V鋜det anges p ett speciellt s鋞t. V鋜det noll betyder "av". V鋜den
mellan 1 och 240 tolkas som ett antal femsekundersmultipler och anger
tidsintervall fr錸 fem sekunder till tjugo minuter.

<br>V鋜den mellan 241 och 251 tolkas som mellan 1 och 11 30-minutersenheter
och anger tidsintervall fr錸 30 minuter till 5,5 timmar. 252 betyder 21
minuter, 253 s鋞ter tiden till det av tillverkaren f鰎definierade intervallet
och 255 betyder 21 minuter och 15 sekunder.
<hr>   07070100046bdc000081a40000000000000002000000013ac03890000001ea000000200000000000000000000000000000002300000003reloc/fdisk/help/S.zh_TW.Big5.html    <header>㏑筄</header>
砞﹚硂合盒㏑ (氨ゎ皑笷) 筄.<p>

硂计∕﹚合盒⊿Τ笆璶秈闽超皑笷㏑篈竊筿方.<br>
硂篈, 合盒惠璶 30 確タ盽家Α.<p>

硂计絪絏よΑΤㄇ疭. 0 ボ "闽超". τ 1  240 丁计 5 牧计, 碞琌眖 5 牧 1200  (5 だ牧).<br>
 241  251 ぇ丁计玥琌 30 だ牧虫, 碞琌眖 30 だ牧 330 だ牧 (5.5 ). 525 玥 21 だ牧, 253 紅坝﹚竡丁, 255  21 だ牧 15 .
<hr>  07070100046bdd000081a40000000000000002000000013ac0389000000097000000200000000000000000000000000000001b00000003reloc/fdisk/help/W.es.html    <header>Cach de Escritura</header>
Desactiva/activa la caracter韘tica de cach de escritura del conductor
(norm醠mente DESACTIVADA por defecto).
<hr>
 07070100046bde000081a40000000000000002000000013ac0389000000080000000200000000000000000000000000000001b00000003reloc/fdisk/help/W.fr.html    <header>Cache en 閏riture</header>
Configure l'option de cacher les acc鑣 en 閏riture du disque.<p>
G閚閞alement d閟activ.
<hr>07070100046bdf000081a40000000000000002000000013ac0389000000072000000200000000000000000000000000000001800000003reloc/fdisk/help/W.html   <header>Write caching</header>
Disable/enable the IDE drive's write-caching feature (usually OFF by default).
<hr>  07070100046be0000081a40000000000000002000000013ac0389000000083000000200000000000000000000000000000001b00000003reloc/fdisk/help/W.pl.html    <header>Buforowanie zapisu</header>

W潮cza/wy潮cza buforowanie zapisu przez urz眃zenie IDE (zazwyczaj inicjalnie
WY！CZONE).

<hr> 07070100046be1000081a40000000000000002000000013ac0389000000067000000200000000000000000000000000000001b00000003reloc/fdisk/help/W.sv.html    <header>Skriv-cache</header>
Deaktivera/aktivera IDE-diskens skriv-cache (oftast AV som standard).
<hr> 07070100046be2000081a40000000000000002000000013ac0389000000053000000200000000000000000000000000000002300000003reloc/fdisk/help/W.zh_TW.Big5.html    <header>糶е</header>
闽超/币笆 IDE 合盒糶е (箇砞硄盽琌"闽").
<hr> 07070100046be3000081a40000000000000002000000013ac038900000023a000000200000000000000000000000000000001b00000003reloc/fdisk/help/X.es.html    <header>Modo de Transferencia</header>
Pone el modo de transferencia IDE para los nuevos conductores (E)IDE/ATA2.<p>

Esto es usado t韕icamente en combinaci髇 con <b>Usando DMA</b> al activar DMA a/desde un conductor en un conjunto de chips de interfaz soportados.<p>

Adem醩 de por esto, el uso de esta bandera es rara vez necesaria ya que la mayor韆 de los conductores IDE modernos por defecto lo hacen a sus modos de transferencia m醩 r醦idos cuando arrancan. Jugar con esto puede ser adem醩 de innecesario, arriesgado.<p>

<i>≮salo con extrema precauci髇!</i>
<hr>
  07070100046be4000081a40000000000000002000000013ac0389000000295000000200000000000000000000000000000001b00000003reloc/fdisk/help/X.fr.html    <header>Mode de transfert</header>
Configure le mode de transfert IDE pour les disques r閏ent (E)IDE/ATA2.<p>

Typiquement utilis en combinaison avec <b>Utiliser DMA</b> pour activer le transfert DMA avec un disque et une puce qui le supporte.<p>

En g閚閞al, l'utilisation de cet options est rarement n閏essaire, car la quasi-totalit des disques r閏ents utilise par d閒aut le mode de transfert le plus rapide au d閙arrage.  Des changements peuvent s'av閞er risqu et inutile.<p>

Sur les disques qui supporte les modes de transfert alternatif, cette option peut 阾re utilis pour changer le mode du disque seulement.<p>

<i> utiliser avec prudence!</i>
<hr>   07070100046be5000081a40000000000000002000000013ac03890000001d3000000200000000000000000000000000000001800000003reloc/fdisk/help/X.html   <header>Transfer mode</header>
Set the IDE transfer mode for newer (E)IDE/ATA2 drives.<p>

This is typically used in combination with <b>Using DMA</b> when enabling DMA to/from a drive on a supported interface chipset.<p>

Apart from that, use of this flag is .I seldom necessary since most/all modern IDE drives default to their fastest PIO transfer mode at power-on.  Fiddling with this can be both needless and risky.<p>

<i>Use this with extreme caution!</i>
<hr> 07070100046be6000081a40000000000000002000000013ac03890000001f1000000200000000000000000000000000000001b00000003reloc/fdisk/help/X.sv.html    <header>講erf鰎ingsmod</header>
S鋞ter IDE-鰒erf鰎ingsmod f鰎 nyare (E)IDE/ATA2-diskar.

<p>Detta anv鋘ds oftast kombinerad med <b>Anv鋘da DMA</b> n鋜 DMA ska
anv鋘das till/fr錸 en disk p ett interface-chipset som st鰀s.

<p>F鰎utom detta anv鋘ds flaggan n鋝tan aldrig eftersom (n鋝tan) alla
moderna IDE-diskar k鰎 sin snabbaste PIO-鰒erf鰎ingsmod som standard vid
start. Det kan vara s鍁鋖 on鰀igt som riskabelt att anv鋘da den.

<p><i>Var mycket f鰎siktig med att anv鋘da denna flagga!</i>
<hr>   07070100046be7000081a40000000000000002000000013ac038900000014b000000200000000000000000000000000000002300000003reloc/fdisk/help/X.zh_TW.Big5.html    <header>肚块家Α</header>
砞﹚ IDE 肚块家Α倒耕穝 (E)IDE/ATA2 合盒.<p>

硂硄盽籔<b>ㄏノ癘拘砰钡</b>ㄏノ, 币笆闽 DMA や穿.<p>

埃硂ぇ, 硄盽琌ぃ惠璶ㄏノ硂篨夹. 碭场穝 IDE 合盒常穦币笆箇砞ㄏノ程ㄎて PIO 肚块家Α. 秸俱硂匡兜硄盽琌ぃ惠璶τ糤繧.<p>

<i>ㄏノ璶み!</i>
<hr> 07070100046be8000081a40000000000000002000000013ac038900000028b000000200000000000000000000000000000001b00000003reloc/fdisk/help/a.fr.html    <header>D閏ompte de Secteur</header>
D閒init le d閏ompte de secteur pour le 'read-ahead' du syst鑝e de fichier.<p>

Ceci est utilis pour am閘iorer les performances dans la lecture de grand fichier s閝uentiel en lisant d'avance des blocs additionels qui seront demand par la t鈉he.  Le noyau 2.0.x a comme valeur par d閒aut 8 secteurs (4kb) qui semble 阾re une bonne valeur pour la majorit des utilisations, mais un syst鑝e o les acc鑣 aux fichiers sont fait au hasard, une plus petite valeur peut am閘iorer les performances.  De plus, plusieurs disques IDE ont une fonction similiaire interne qui soulage le syst鑝e de fichier de cette t鈉he.
<hr> 07070100046be9000081a40000000000000002000000013ac038900000027a000000200000000000000000000000000000001800000003reloc/fdisk/help/a.html   <header>Sector Count</header>
Set sector count for filesystem read-ahead.<p>

This is used to improve performance in sequential reads of large files, by prefetching additional blocks in anticipation of them being needed by the running task.  In the current kernel version (2.0.10) this has a default setting of 8 sectors (4 kB).  This value seems good for most purposes, but in a system where most file accesses are random seeks, a smaller setting might provide better performance.  Also, many IDE drives also have a separate built-in read-ahead function, which alleviates the need for a filesystem read-ahead in many situations.
<hr>  07070100046bea000081a40000000000000002000000013ac038900000026c000000200000000000000000000000000000001b00000003reloc/fdisk/help/a.sv.html    <header>Sektorantal</header>
St鋖ler in sektorantal f鰎 filsystem read-ahead.

<p>Detta anv鋘ds f鰎 att f鰎b鋞tra sekventiell l鋝ning av stora filer genom
att h鋗ta tillh鰎ande block i f鰎v鋑 f鰎 att de troligen kommer att beh鰒as
f鰎 den p錱錯nde uppgiften. I denna k鋜nversion (2.0.10) 鋜
standardinst鋖lningen 8 sektorer (4 kB). Detta v鋜de 鋜 lagom f鰎
de flesta till鋗pningar, men i filsystem d鋜 huvuddelen av fil錿komsterna
鋜 slumps鰇ningar medf鰎 ett l鋑re v鋜de b鋞tre prestanda. M錸ga IDE-diskar
har ocks en separat, inbyggd read-ahead-funktion som underl鋞tar f鰎
filsystemets read-ahead i m錸ga fall.
<hr>
07070100046beb000081a40000000000000002000000013ac038900000018b000000200000000000000000000000000000002300000003reloc/fdisk/help/a.zh_TW.Big5.html    <header>合跋璸计</header>
郎╰参箇弄合跋璸计.<p>

硂糤尿┦郎弄瞯, 竒パ瞦代盢璶弄跋遏τ箇弄硂ㄇ跋遏癘拘砰い. ヘ玡みセ (2.0.10) いm 硂砞﹚琌 8 跋遏 (4 kB). 硂计癸计猵笲▆; 琌狦╰参计猵常琌妮繦诀┦弄, 耕砞﹚穦Τ耕ㄎ. , 砛 IDE 砞称Τ縒ミず箇弄, 硄盽硂竒才计惠―.
<hr> 07070100046bec000081a40000000000000002000000013ac0389000000183000000200000000000000000000000000000001b00000003reloc/fdisk/help/c.fr.html    <header>Support d'entr閑/sortie 32 bits</header>
Configure le support d'entr閑/sortie 32 bits (E)IDE.<p>

Cette configuration fonctionne sur pratiquement toutes les puces mais augmente l間鑢ement la charge du disque.  Noter que le terme "32 bits" r閒鑢e au transfert de donn閑 sur le bus PCI ou VLB, car les disques (E)IDE ont toujours un ruban 16 bits qui les relies au contr鬺eur.
<hr> 07070100046bed000081a40000000000000002000000013ac038900000016e000000200000000000000000000000000000001800000003reloc/fdisk/help/c.html   <header>32-bit I/O support</header>
Set the (E)IDE 32-bit I/O support.<p>

This value works with nearly all 32-bit IDE chipsets, but incurs slightly more overhead.  Note that "32-bit" refers to data transfers across a PCI or VLB bus to the interface card only; all (E)IDE drives still have only a 16-bit connection over the ribbon cable from the interface card.
<hr>  07070100046bee000081a40000000000000002000000013ac0389000000165000000200000000000000000000000000000001b00000003reloc/fdisk/help/c.sv.html    <header>32-bitars I/O-st鰀</header>
S鋞ter (E)IDE 32-bitars I/O-st鰀.

<p>Detta fungerar med n鋝tan alla 32-bitars chip, men ger lite mer spill.
Observera att "32-bitars" endast g鋖ler data鰒erf鰎ingar via PCI- eller
VLB-buss till n鋞verkskortet; samtliga (E)IDE-diskar har fortfarande bara
en 16-bitarsf鰎bindelse 鰒er bandkabeln fr錸 n鋞verkskortet.

<hr>   07070100046bef000081a40000000000000002000000013ac0389000000112000000200000000000000000000000000000002300000003reloc/fdisk/help/c.zh_TW.Big5.html    <header>32 じ I/O や穿</header>
砞﹚ (E)IDE  32 じ I/O や穿.<p>

硂计籔计 32 じ IDE 北竟, 琌穦ㄏノ耕戈方. 猔種硂 "32 じ"琌ボ戈硓筁 PCI ┪ VLB 蹲瑈逼北ざよΑ; ┮Τ (E)IDE 祑盒ご礛常Τㄏノ 16 じ籔ざ硈钡.
<hr>  07070100046bf0000081a40000000000000002000000013ac038900000024b000000200000000000000000000000000000001b00000003reloc/fdisk/help/d.fr.html    <header>Utiliser DMA</header>
Configure l'utilisation de l'option <i>using_dma</i> de ce disque.<p>

Cette option fonctionne seulement sur certaine combinaison de disques et contr鬺eur qui supporte le transfert DMA et qui est support par le pilote IDE.<br>

Il s'av鑢e 阾re aussi une bonne id閑 d'utiliser en combinaison l'option <b>Mode de Transfert</b> pour s'assurer que le disque lui m阭e est programm pour le meilleur mode DMA.<p>

Utiliser le DMA n'am閘iore pas n閏essairement les performances du syst鑝e, mais plusieurs ne jure que par 鏰.  Vos performances peuvent varier.
<hr> 07070100046bf1000081a40000000000000002000000013ac03890000002ad000000200000000000000000000000000000001800000003reloc/fdisk/help/d.html   <header>Using DMA</header>
Disable/enable the <i>using_dma</i> flag for this drive.<p>

This option only works with a few combinations of drives and interfaces which support DMA and which are known to the IDE driver (and with all supported XT interfaces).<br>
In particular, the Intel Triton chipset is supported for bus-mastered DMA operation with many drives (experimental).<p>

It is also a good idea to use the <b>Transfert Mode</b> option in combination with to ensure that the drive itself is programmed for the best DMA mode.<p>

Using DMA does not necessarily provide any improvement in throughput or system performance, but many folks swear by it.  Your mileage may vary.
<hr>   07070100046bf2000081a40000000000000002000000013ac03890000002a0000000200000000000000000000000000000001b00000003reloc/fdisk/help/d.sv.html    <header>Anv鋘d DMA</header>
Aktivera/deaktivera flaggan <i>using_dma</i> f鰎 denna disk.

<p>Denna inst鋖lning fungerar bara f鰎 ett f錿al kombinationer av diskar
och n鋞verkskort som st鰀jer DMA och som IDE-drivern k鋘ner till (med alla
st鰀da XT-kort).

<br>Intel Triton st鰀s f鰎 DMA-bussoperationer f鰎 m錸ga diskar
(experimentellt).

<p>Det 鋜 ocks l鋗pligt att kombinera detta med inst鋖lningen
<b>講erf鰎ingsmod</b> f鰎 att vara s鋕er p att disken i sig 鋜 programmerad
f鰎 b鋝ta DMA-mod.

<p>講erf鰎ingshastighet och systemprestanda f鰎b鋞tras inte n鰀v鋘digtvis av
att man anv鋘der DMA, men m錸ga
h鋠dar att s 鋜 fallet. Det varierar fr錸 fall till fall.

<hr>07070100046bf3000081a40000000000000002000000013ac038900000019b000000200000000000000000000000000000002300000003reloc/fdisk/help/d.zh_TW.Big5.html    <header>ㄏノ钡癘拘砰</header>
闽超/秨币 硂杆竚 <i>using_dma</i> 篨夹.<p>

硂匡兜ぶ计や穿甧砞称籔ざ.<br>
疭﹚薄猵, Intel Triton 北竟籔计砞称皌や穿蹲瑈逼北钡癘拘砰 (bus-mastered DMA) 巨 (龟喷い). <p>

ㄏノ<b>肚块家Α</b>匡兜絋﹚砞称砞﹚Θ程ㄎ DMA 家Α琌種.<p>

ㄏノ DMA ぃ﹚糤╰参, 瘤礛计弧. 
<hr> 07070100046bf4000081a40000000000000002000000013ac038900000017c000000200000000000000000000000000000001e00000003reloc/fdisk/help/edit.fr.html <header>Editer un disque</header>
Utiliser cette page pour configurer le disque.<p>

Le bouton <b>Synchroniser</b> synchronise et 関acue le tampon du cache de ce disque.<p>

<b>Attente</b>, met le disque dans un mode d'attente et de faible consomation d'閚ergie.<p>

<b>Arr阾er</b>, tant qu' lui, utilise le moin d'閚ergie possible, le disque cesse compl鑤ement de tourner.

<hr>07070100046bf5000081a40000000000000002000000013ac0389000000128000000200000000000000000000000000000001b00000003reloc/fdisk/help/edit.html    <header>Edit drive</header>
Use this form to configure the drive.<p>

The button <b>Sync/flush</b> the buffer cache for the device on exit.<p>

<b>Standby</b>, put the drive in low power mode.<p>

<b>Sleep mode</b>, put the drive in the lowest power mode, the drive is completely shut down.

<hr>07070100046bf6000081a40000000000000002000000013ac038900000011a000000200000000000000000000000000000001e00000003reloc/fdisk/help/edit.sv.html <header>膎dra disk</header>
I detta formul鋜 kan du konfigurera disken.

<p>Knappen <b>Synk</b> g錼 igenom cachen f鰎 disken n鋜 man l鋗nar den.

<p><b>Standby</b> f鰎s鋞ter disken i l錱energil鋑e.

<p><b>Vilol鋑e</b> f鰎s鋞ter disken i l鋑sta energil鋑e; disken stannas helt.

<hr>  07070100046bf7000081a40000000000000002000000013ac03890000000eb000000200000000000000000000000000000002600000003reloc/fdisk/help/edit.zh_TW.Big5.html <header>絪胯砞称</header>
ㄏノ硂虫舱篈硂砞称.<p>

秙<b>˙/睲埃</b>瞒秨睲埃絯侥跋е.<p>

<b>单</b>, ㄏ硂砞称秈筿方ノ家Α.<p>

<b>何痸家Α</b>, ㄏ砞称秈程筿方ノ家Α, 硂穦ㄏ硂砞称Ч闽超.

<hr> 07070100046bf8000081a40000000000000002000000013ac0389000000552000000200000000000000000000000000000001f00000003reloc/fdisk/help/index.fr.html    <header>Hdparm</header>
Aide  configurer plusieurs options des disque (E)IDE support par le pilote IDE/ST-506 de Linux.<p>

N閏essite un noyau de version 1.2.13 ou plus r閏ent.  Certaines options ne pourrait pas fonctionner correctement sur de plus vieux noyau.  De plus, certaines options n閏essite un kernel plus r閏ent avec le nouveau pilote (E)IDE, comme dans la version 2.0.<p>

La colonne <b>Disque(s)</b> affiche tout les disques IDE.  Cliquer sur un pour le configurer et 閐iter ou ajouter sa configuration dans le fichier de script.<p>

<b>蓆at d'alimentation</b> affiche l'閠at d'alimentation d'閚ergie du disque, que ce soit <i>Normal</i>, <i>En attente</i> quand le disque est en attente et la consommation 閘ectrique moindre ou <i>Compl鑤ement arr阾</i> o le moteur cesse compl鑤ement de tourner.
display the state of the drive, if it's <i>standby</i> low power mode, drive has spun down, <i<>sleep mode</i> lowest power mode, drive is completely shut down or <i>active/idle</i> normal operation.<br>
Si le disque est dans un des modes d'閏onomies d'閚ergie, vous n'avez qu'a cliquer sur l'閠at pour r関eiller le disque et red閙arrer le moteur.<p>

Deux test de vitesse sont aussi fait pour voir d'関entuels fluctuations dans les peformances apr鑣 des changements.  Si le disque est dans un mode d'閏onomie d'閚ergie ces tests sont ignor.

<hr>  07070100046bf9000081a40000000000000002000000013ac03890000003ec000000200000000000000000000000000000001c00000003reloc/fdisk/help/index.html   <header>Hdparm</header>
Help to configure various hard disk ioctls supported by the stock Linux IDE/ST-506 device driver.<p>

Requires Linux kernel version 1.2.13 or later.  Some options may not work correctly with earlier kernels.  In addition, several options are supported only for kernels which include the new (E)IDE device driver, such as version 2.0.10 or later.<p>

The <b>Drive</b> column show all IDE drive.  Click to configure them and/or edit the entry in the script file.<p>

<b>Power Status</b> display the state of the drive, if it's <i>standby</i> low power mode, drive has spun down, <i<>sleep mode</i> lowest power mode, drive is completely shut down or <i>active/idle</i> normal operation.<br>
If the status of the drive is one kind of power save mode, click on the status to restart the drive spin.<p>

Two speed test is done, they perform timings of cache read and drive reads for benchmark and comparison purposes.  If the drive is in an power safe mode those test is ignored.

<hr>07070100046bfa000081a40000000000000002000000013ac03890000003f2000000200000000000000000000000000000001f00000003reloc/fdisk/help/index.sv.html    <header>Hdparm</header>
H鋜 hittar du hj鋖p f鰎 att konfigurera olika h錼ddisk-ioctl:er som st鰀s av drivrutinen Linux IDE/ST-506.

<p>Detta kr鋠er att systemet har en Linuxk鋜na av version 1.2.13 eller senare.
En del inst鋖lningar fungerar inte som de ska ihop med tidigare k鋜nor.
Dessutom st鰀s m錸ga inst鋖lningar endast f鰎 k鋜nor med den nya
(E)IDE-drivrutinen, dvs version 2.0.10 och senare.

<p><b>Disk</b>-kolumnen visar alla IDE-diskar. Klicka d鋜 f鰎 att konfigurera
dem och/eller 鋘dra en post i scriptfilen.

<p><b>Energil鋑e</b> visar diskens status; om den 鋜 <i>standby</i> har disken
saktat ned, i <i>vilol鋑e</i>, det l鋑sta energil鋑et, har den stannat helt,
och i <i>aktiv/v鋘tar</i> 鋜 den i normalt arbetsl鋑e.
<br>Om disken 鋜 i n錱ot energisparl鋑e kan man klicka p statustexten f鰎 att
s鋞ta ig錸g disken igen.

Tv hastighetstester g鰎s som utf鰎 cache- och diskl鋝ningar som sedan
j鋗f鰎s med standardv鋜den. Om disken 鋜 i ett energisparl鋑e kommer
testerna inte att utf鰎as.

<hr>  07070100046bfb000081a40000000000000002000000013ac0389000000299000000200000000000000000000000000000002700000003reloc/fdisk/help/index.zh_TW.Big5.html    <header>祑盒把计</header>
腊眤舱篈 Linux IDE.ST-506 祑盒块北舱篈.<p>

硂惠璶 Linux み 1.2.13 ┪穝. ぃだ匡兜礚猭更耕Νみタ盽. , 场だ匡兜砆穝Α (E)IDE 臱笆祘Αみ (2.0.10 ┪穝) ┮や穿.<p>

<b>合盒</b>逆陪ボ┮Τ IDE 合盒. ウ舱篈籔/┪絪胯闽絑郎.<p>

<b>筿方篈</b>陪ボヘ玡合盒篈. 狦<i>㏑</i>筿方家Α, 合盒盢氨ゎ笲锣; <i>何痸家Α</i>玥琌程筿方ノ篈, 合盒Ч氨ゎ; <i>币笆/盯竚</i>玥琌矪笲篈.<br>
狦合盒ヴ筿家Α, 篈穝ㄏ合盒笲锣.<p>

硉代刚竒ЧΘ, ウ矗ㄑе弄籔合盒弄丁ゑ耕. 狦合盒筿家Αぇい, 硂ㄇ代刚穦砆┛菠.

<hr>   07070100046bfc000081a40000000000000002000000013ac03890000001d0000000200000000000000000000000000000001b00000003reloc/fdisk/help/k.fr.html    <header>Garder les options au red閙arrage</header>
Configure l'option <i>keep_settings_over_reset</i> du disque.<p>

Ceci permet au disque de garder la configuration d'<b>Utiliser DMA</b>, <b>D閙asquage d'interruption</b> et <b>D閏ompte de secteur pour les entr閑/sortie multiple</b> durant un red閙arrage  chaud (comme ceux effectu durant une s閝uence de recouvrement d'erreur du disque).<p>

Ce ne sont pas tout les disques qui supportent cette fonctions.
<hr>07070100046bfd000081a40000000000000002000000013ac038900000016e000000200000000000000000000000000000001800000003reloc/fdisk/help/k.html   <header>Keep settings over reset</header>
Set the <i>keep_settings_over_reset</i> flag for the drive.<p>

When this flag is set, the driver will preserve the options <b>Using DMA</b>, <b>Interrupt unmask</b> and <b>Sector count for multiple sector I/O</b> over a soft reset, (as done during the error recovery sequence).<p>

Not all drives support this feature.
<hr>  07070100046bfe000081a40000000000000002000000013ac038900000017c000000200000000000000000000000000000001b00000003reloc/fdisk/help/k.sv.html    <header>Spara inst鋖lningar vid omstart</header>
S鋞ter flaggan <i>keep_settings_over_reset</i> f鰎 disken.

<p>N鋜 denna flagga 鋜 satt kommer disken att spara inst鋖lningarna <b>Anv鋘d DMA</b>, <b>Avbrottsbortmaskning</b> och <b>Sektorsteg f鰎 I/O med flera sektorer</b> vid en mjuk omstart (som vid en felkorrigeringsrutin).

<p>Alla diskar st鰀jer inte denna inst鋖lning.
<hr>07070100046bff000081a40000000000000002000000013ac0389000000111000000200000000000000000000000000000002300000003reloc/fdisk/help/k.zh_TW.Big5.html    <header>砞玂痙</header>
砞﹚合盒 <i>keep_features_over_reset</i> 篨夹.<p>

砞﹚硂ㄏ合盒砞 (┪岿粇確祘い) 玂痙<b>箇弄</b>, <b>砞﹚程ㄎ PIO</b>, <b>㏑筄</b>, <b>糶е</b>, 籔<b>肚块家Α</b>砞﹚.<p>
ぃ琌┮Τ合盒常や穿硂.
<hr>   07070100046c00000081a40000000000000002000000013ac03890000004e5000000200000000000000000000000000000001b00000003reloc/fdisk/help/m.fr.html    <header>D閏ompte de secteur pour les entr閑/sortie multiple</header>
D閒init le d閏ompte de secteur pour les entr閑/sortie multiple d'un disque.<p>

Le mode de secteur multiple (Mode bloc IDE), est une option de la majorit des disque IDE moderne qui permet le transfert de plusieurs secteurs par interruption d'entr閑/sortie contrairement  un seul g閚閞alement.

Cette option reduit g閚閞alement la charge d'entr閑/sortie du disque de 30  50%.  Sur plusieurs syst鑝e, ceci augment aussi la vitesse de transfert de 5  50%.  Quelques disques (comme la s閞ie WD Caviar) semble rouler moin rapidement avec cette option.  Vos performance peuvent varier.

La majorit des disques supporte un nombre de secteurs de 2, 4, 8 ou 16.  Certain disque offre 32 secteurs.  Un nombre de 16 ou 32 secteurs est optimal pour la majorit des syst鑝es.<p>

Western Digital recommande un nombre de secteur de 4 ou 8 sur plusieurs de leurs disques, d  une petite quantit de tampon dans le disque (32kb) et aucun algorythme d'optimisation du tampon.<p>

Certain disque disent supporter cette option, mais perdent des donn閑s avec certain nombre de secteurs.<br>
Dans de rare circonstance, une tel perte de donn閑 am鑞e une corruption massive du syst鑝e de fichier.
<hr>   07070100046c01000081a40000000000000002000000013ac038900000047f000000200000000000000000000000000000001800000003reloc/fdisk/help/m.html   <header>Sector count for multiple sector I/O</header>
Set sector count for multiple sector I/O on the drive.<p>

Multiple sector mode (aka IDE Block Mode), is a feature of most modern IDE hard drives, permitting the transfer of multiple sectors per I/O interrupt, rather than the usual one sector per interrupt.<p>

When this feature is enabled, it typically reduces operating system overhead for disk I/O by 30-50%.  On many systems, it also provides increased data throughput of anywhere from 5% to 50%.  Some drives, however (most notably the WD Caviar series), seem to run slower with multiple mode enabled.  Your mileage may vary.<p>

Most drives support the minimum settings of 2, 4, 8, or 16 (sectors).  Larger settings may also be possible, depending on the drive.  A setting of 16 or 32 seems optimal on many systems.<p>

Western Digital recommends lower settings of 4 to 8 on many of their drives, due tiny (32kB) drive buffers and non-optimized buffering algorithms.<p>

Some drives claim to support multiple mode, but lose data at some settings.<br>
Under rare circumstances, such failures can result in massive filesystem corruption.
<hr> 07070100046c16000081a40000000000000002000000013ac03890000004e9000000200000000000000000000000000000001b00000003reloc/fdisk/help/m.sv.html    <header>Sektorantal f鰎 I/O med flera sektorer</header>
H鋜 st鋖ler du in sektorantalet f鰎 multipelsektors-I/O p disken.

<p>Multipelsektorsmod (鋠en kallat IDE-blockmod) 鋜 en egenskap som de flesta
moderna IDE-diskar har och som g鰎 det m鰆ligt att f鰎a 鰒er flera sektorer
varje I/O-avbrott, till skillnad fr錸 standardmoden, d鋜 man f鰎 鰒er en
sektor per avbrott.

<p>N鋜 denna inst鋖lning aktiverats minskas vanligen operativsystemsoverheaden
f鰎 l鋝ning och skrivning till disk med 30-50 %. P m錸ga system 鰇as ocks
datafl鰀et med 5-50 %. En del diskar (s鋜skilt WD Caviar-serien) verkar dock
g l錸gsammare d multipelsektorsmoden aktiverats. Det varierar fr錸 fall till
fall.

<p>De flesta diskar st鰀jer minimiinst鋖lningar p 2, 4, 8 eller 16 (sektorer).
Det kan 鋠en g att st鋖la in st鰎re antal beroende p vilken disk man har.
F鰎 m錸ga system 鋜 16 eller 32 sektorer optimalt.

<p>Western Digital rekommenderar en l鋑re inst鋖lning, 4-8 sektorer, f鰎
m錸ga av sina diskar, beroende p sm (32 kB) buffrar och icke-optimerade
buffringsalgoritmer.

<p>En del diskar st鰀jer till viss del multipelmod, men tappar data vid
vissa inst鋖lningskombinationer.
<br>Vid vissa omst鋘digheter kan detta orsaka ett totalt s鰊dertrasat
filsystem.
<hr>   07070100046c17000081a40000000000000002000000013ac038900000030e000000200000000000000000000000000000002300000003reloc/fdisk/help/m.zh_TW.Big5.html    <header>合跋块合跋璸计</header>
砞﹚硂合盒合跋块合跋璸计.<p>

勉合跋家Α ( IDE 跋遏家Α), 琌计穝 IDE 祑盒常Τ, 硂–Ω I/O い耞い肚癳合跋, τぃ琌–合跋常惠璶い耞.<p>

讽硂币笆, 硄盽常搭ぶ穨╰参单合盒 I/O 丁 30-50%. 砛╰参, 硂穦糤戈肚块秖 5-50%. 礛τ, 癸琘ㄇ合盒 (硄盽琌 WD Caviar ╰) 币笆硂穦跑ゑ耕篊.<p>

砞合盒や穿耕砞﹚ 2, 4, 8, ┪ 16 (合跋). 耕砞﹚ㄏノ, ㄌ沮合盒τぃ. 16 ┪ 32 琌计╰参程ㄎ砞﹚.<p>

合盒絯侥 (32kB) 籔ゼ程ㄎて絯侥笲衡よΑ, WD 某ウ合盒ㄏノ耕砞﹚ 4 ┪ 8.<p>

Τㄇ合盒嘿や穿硂家Αm 琘ㄇ砞﹚玱穦框ア戈.<br>
琘ㄇ╱ǎ薄猵ぇ, 硂妓岿粇盢旧璓腨郎╰参穕反.
<hr>  07070100046c27000081a40000000000000002000000013ac03890000000a2000000200000000000000000000000000000001b00000003reloc/fdisk/help/r.fr.html    <header>Lecture seule</header>
Configure l'option de lecture seule du disque.  Une fois d閒ini les op閞ations d'閏ritures ne sont plus permise sur ce disque.
<hr>  07070100046c52000081a40000000000000002000000013ac038900000007b000000200000000000000000000000000000001800000003reloc/fdisk/help/r.html   <header>Read only</header>
Set read-only flag for device.  When set, write operations are not permitted on the device.
<hr> 07070100046c53000081a40000000000000002000000013ac0389000000085000000200000000000000000000000000000001b00000003reloc/fdisk/help/r.sv.html    <header>Endast l鋝bart</header>
S鋞ter flaggan read-only f鰎 disken. N鋜 denna flagga 鋜 satt g錼
det inte att skriva p disken.
<hr>   07070100046c54000081a40000000000000002000000013ac0389000000056000000200000000000000000000000000000002300000003reloc/fdisk/help/r.zh_TW.Big5.html    <header>斑弄</header>
砞﹚合盒斑弄篨夹. 讽砞﹚, 硂合盒盢ぃ钡ヴ糶笆.
<hr>  07070100046c55000081a40000000000000002000000013ac0389000000294000000200000000000000000000000000000001b00000003reloc/fdisk/help/u.fr.html    <header>D閙asquage d'interruption</header>
Configure le d閙asquage d'interruption de ce disque.<p>

Permet au pilote de d閙asquer les autres interruptions durant le processus d'interruption, ce qui am閘iore beaucoup le temps de r閜onse de Linux et 閘imine l'erreur "serial port overrun".<p>

<u>Utiliser avec prudence</u>: certaine combinaison de disque et contr鬺eur ne tol鑢e pas d'augmenter les entr閑s/sorties ce qui pourrait amener  <i>une corruption massive du syst鑝e de fichier</i>.<br>
En particulier les contr鬺eurs CMD-640B et RZ1000 (E)IDE (d  un d閒aut mat閞iel) quand cette option est utilis avec des kernel plus vieux que le 2.0.13.<br>
<hr>07070100046c56000081a40000000000000002000000013ac0389000000280000000200000000000000000000000000000001800000003reloc/fdisk/help/u.html   <header>Interrupt unmask</header>
Set interrupt-unmask flag for the drive.<p>

Enabled the driver to unmask other interrupts during processing of a disk interrupt, which greatly improves Linux's responsiveness and eliminates "serial port overrun" errors.<p>

<u>Use this feature with caution</u>: some drive/controller combinations do not tolerate the increased I/O latencies possible when this feature is enabled, resulting in <i>massive filesystem corruption</i>.<br>
In particular CMD-640B and RZ1000 (E)IDE interfaces can be unreliable (due to a hardware flaw) when this option is used with kernel versions earlier than 2.0.13.<br>
<hr>07070100046c57000081a40000000000000002000000013ac038900000029e000000200000000000000000000000000000001b00000003reloc/fdisk/help/u.sv.html    <header>Avbrottsbortmaskning</header>
S鋞ter flaggan interrupt-unmask f鰎 disken.

<p>Detta g鰎 att disken kan maska bort andra avbrott d ett diskavbrott
bearbetas, vilket f鰎b鋞trar Linux' svarstid och eliminerar fel av typen
"serial port overrun".

<p><u>Var f鰎siktig med att anv鋘da denna egenskap</u>: vissa
disk/kontroller-kombinationer accepterar inte de 鰇ade tidsf鰎dr鰆ningar
som kan uppkomma d bortmaskningen 鋜 aktiverad, vilket kan orsaka ett
<i>totalt s鰊dertrasat filsystem</i>.

<br>I synnerhet kan CMD-640B och RZ1000 (E)IDE vara op錶itliga (beroende p
brister i h錼dvaran) d bortmaskning anv鋘ds tillsammans med k鋜nversioner
鋖dre 鋘 2.0.13.

<hr>  07070100046c58000081a40000000000000002000000013ac0389000000193000000200000000000000000000000000000002300000003reloc/fdisk/help/u.zh_TW.Big5.html    <header>い耞綛竛</header>
砞﹚合盒い耞綛竛篨夹.<p>

币笆合盒い耞綛竛磷矪瞶Τㄤい耞祇ネ, 硂碩糤 Linux は莱┦, 磷"梆筁更"岿粇祇ネ.<p>

<u>みㄏノ硂</u>: Τㄇ合盒/北竟舱币笆硂, ぃす砛糤 I/O ┑筐. 硂盢旧璓<i>腨郎╰参穕反</i>.<br>
疭琌 2.0.13 ぇ玡みㄏノ CMD-640B 籔 RZ1000 (E)IDE ざ琌ぃ獺苦 (祑砰峰搏).<br>
<hr> 0707010004828d000041ed0000000000000001000000023ac03be400000000000000200000000000000000000000000000001300000003reloc/fdisk/images    0707010004828e000081a40000000000000002000000013ac0389000000024000000200000000000000000000000000000001b00000003reloc/fdisk/images/ext.gif    GIF87a 
       ,     
  剰 ;0707010004828f000081a40000000000000002000000013ac038900000002c000000200000000000000000000000000000001b00000003reloc/fdisk/images/gap.gif    GIF89a 
      !   ,     
  審 ;07070100048290000081a40000000000000002000000013ac0389000000134000000200000000000000000000000000000001c00000003reloc/fdisk/images/icon.gif   GIF89a0 0   fff櫃櫶烫!    ,    0 0  ⻊彥隧4≮ΖV
祖T釅+葛Ez'KP6$鎡掊鯰}稍$暩蒝9嬊忻&穾g$蠇e衡[脓'趋别2ㄗ鯣鸳╢重橱県i8IIv3V枳忤蓹嘿7抸	電J鹤Y速7
妧桘|[\yLqu鲑c%=蛨+噲)+蜌璊h+84^LMC_絹_胼<翉>I賑Q朽@偹9牣呖{熘-|堗;:(  ;07070100048291000081a40000000000000002000000013ac0389000000024000000200000000000000000000000000000001b00000003reloc/fdisk/images/use.gif    GIF87a 
        ,     
  剰 ;070701000425aa000081e40000000000000002000000013ac03890000010da000000200000000000000000000000000000001600000003reloc/fdisk/index.cgi #!/usr/local/bin/perl
# index.cgi
# Display a list of known disks and partitions

require './fdisk-lib.pl';
&error_setup($text{'index_err'});
&check_fdisk();
&header($text{'index_title'}, "", undef, 0, 1);
print "<hr>\n";
$extwidth = 250;

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'index_disk'}</b></td> ",
      "<td><b>$text{'index_parts'}</b></td> </tr>\n";
foreach $d (&list_disks()) {
	next if (!&can_edit_disk($d->{'device'}));
	print "<tr $cb> <td valign=top><table>\n";
	print "<tr> <td><b>$text{'index_location'}</b></td> ";
	print "<td>$d->{'desc'}</td>\n";
	print "<tr> <td><b>$text{'index_cylinders'}</b></td> ",
	      "<td>$d->{'cylinders'}</td> </tr>\n";
	if ($d->{'model'}) {
		print "<tr> <td><b>$text{'index_model'}</b></td> ",
		      "<td>$d->{'model'}</td> </tr>\n";
		}
	if (defined($d->{'scsiid'}) && defined($d->{'controller'})) {
		print "<tr> <td><b>$text{'index_controller'}</b></td> ",
		      "<td>$d->{'controller'}</td> </tr>\n";
		print "<tr> <td><b>$text{'index_scsiid'}</b></td> ",
		      "<td>$d->{'scsiid'}</td> </tr>\n";
		}
	if ($d->{'raid'}) {
		print "<tr> <td><b>$text{'index_raid'}</b></td> ",
		      "<td>$d->{'raid'}</td> </tr>\n";
		}
	if ($d->{'type'} eq 'ide') {
		# Display link to IDE params form
		print "<tr> <td colspan=2><a href='edit_hdparm.cgi?disk=",
		      $d->{'index'},"'>$text{'index_hdparm'}</a></td> </tr>\n";
		}
	print "</table></td> <td valign=top>\n";

	@parts = &list_partitions($d->{'device'});
	local $extended = 0;
	local $usedpri = 0;
	if (!@parts) {
		print "<b>$text{'index_none'}</b><p>\n";
		}
	else {
		print "<table width=100%> ",
		      "<tr> <td><b>$text{'index_num'}</b></td> ",
		      "<td><b>$text{'index_type'}</b></td> ",
                      "<td><b>$text{'index_extent'}</b></td> ",
                      "<td><b>$text{'index_start'}</b></td> ",
                      "<td><b>$text{'index_end'}</b></td> ",
                      "<td><b>$text{'index_use'}</b></td> ",
                      "<td><b>$text{'index_free'}</b></td> </tr>\n";
		foreach $p (@parts) {
			if ($p->{'extended'}) {
				print "<tr> <td><a href=\"edit_part.cgi?",
				      "disk=$d->{'index'}&part=$p->{'index'}\">",
				      "$p->{'number'}</a></td>\n";
				$extended++;
				}
			else {
				print "<tr> <td><a href=\"edit_part.cgi?",
				      "disk=$d->{'index'}&part=$p->{'index'}\">",
				      "$p->{'number'}</a></td>\n";
				}
			$usedpri++ if ($p->{'number'} <= 4);
			print "<td>",$p->{'extended'} ? $text{'extended'}
						      : &tag_name($p->{'type'}),
			      "</td> <td>\n";
			printf "<img src=images/gap.gif height=10 width=%d>",
				$extwidth*($p->{'start'} - 1) /
				$d->{'cylinders'};
			printf "<img src=images/%s.gif height=10 width=%d>",
				$p->{'extended'} ? "ext" : "use",
				$extwidth*($p->{'end'} - $p->{'start'}) /
				$d->{'cylinders'};
			printf "<img src=images/gap.gif height=10 width=%d>",
			  $extwidth*($d->{'cylinders'} - ($p->{'end'} - 1)) /
				    $d->{'cylinders'};
			print "</td> <td>$p->{'start'}</td> ",
			      "<td>$p->{'end'}</td> <td>\n";
			@stat = &device_status($p->{'device'});
			if ($stat[1] eq 'raid') {
				print "<tt>$stat[0]</tt>\n";
				}
			elsif ($stat[0] && $stat[3] == -1) {
				print "<tt><a href=/mount/edit_mount.cgi?index=$stat[4]&temp=1&return=/$module_name/>$stat[0]</a></tt>\n";
				}
			elsif ($stat[0]) {
				print "<tt><a href=/mount/edit_mount.cgi?index=$stat[3]&return=/$module_name/>$stat[0]</a></tt>\n";
				}
			print "</td> <td>\n";
			if (!$p->{'extended'} && $stat[2] &&
			    &indexof($p->{'type'}, @space_type) >= 0 &&
			    (@space = &disk_space($p->{'device'})) &&
			    $space[0]) {
				printf "%d %%\n", 100 * $space[1] / $space[0];
				}
			print "</td> </tr>\n";
			}
		print "</table>\n";
		}
	if ($usedpri != 4) {
		print "<a href=\"edit_part.cgi?",
		      "disk=$d->{'index'}&new=1\">",
		      $text{'index_addpri'},"</a>&nbsp;&nbsp;\n";
		}
	if ($extended) {
		print "<a href=\"edit_part.cgi?",
		      "disk=$d->{'index'}&new=2\">",
		      $text{'index_addlog'},"</a>\n";
		}
	elsif ($usedpri != 4) {
		print "<a href=\"edit_part.cgi?",
		      "disk=$d->{'index'}&new=3\">",
		      $text{'index_addext'},"</a>\n";
		}
	print "</td> </tr>\n";
	}
print "</table><p>\n";

print "<hr>\n";
&footer("/", $text{'index'});

  070701000497fb000041ed0000000000000001000000023ac03be500000000000000200000000000000000000000000000001100000003reloc/fdisk/lang  070701000497fe000081a40000000000000002000000013ac0389100001ba5000000200000000000000000000000000000001400000003reloc/fdisk/lang/de   index_title=Partitions-Manager
index_err=Fehler beim Auflisten der Platten
index_disk=Festplatte
index_parts=Partition
index_location=Ort
index_cylinders=Zylinder
index_model=Modell
index_raid=RAID Level
index_controller=Controller
index_scsiid=Ziel
index_none=Keine Partitionen gefunden
index_num=Nr.
index_type=Typ
index_extent=Ausmass
index_start=Start
index_end=Ende
index_addpri=Prim&auml;re Partition hinzuf&uuml;gen
index_addlog=Logische Partition hinzuf&uuml;gen
index_addext=Erweiterte Partition hinzuf&uuml;gen
index_hdparm=Bearbeite IDE Parameter
index_use=Benutzen
index_return=Festplatten Liste

extended=Erweiterte
opt_default=Standard
opt_error='$1' ist keine g&uuml;ltige $2
select_device=$1 Festplatte $2
select_part=$1 Festplatte $2 Partition $3
select_fd=Floppy Laufwerk $1
select_mylex=Mylex RAID $1 Laufwerk $2
select_mpart=Mylex RAID $1 Laufwerk $2 Partition $3

edit_title=Partition bearbeiten
create_title=Partition erstellen
edit_ecannot=Sie haben keine Berechtigung, diese Festplatte zu bearbeiten
edit_details=Partitions-Details
edit_location=Ort
edit_device=Ger&auml;te Datei
edit_type=Typ
edit_extent=Ausmass
edit_status=Status
edit_mount=Mounted auf $1 als $2
edit_umount=Zum mounten auf $1 als $2
edit_mountvm=Mounted als virtueller Speicher
edit_umountvm=Zum mounten als virtueller Speicher
edit_mountraid=Teil von RAID Laufwerk $1
edit_notexist=Noch nicht erstellt
edit_notused=Nicht in Gebrauch
edit_size=Gr&ouml;sse
edit_blocks=$1 Blocks
edit_inuse=Diese Partition kann nicht ge&auml;ndert werden, da sie gerade in Benutzung ist
edit_mkfs=Neues Dateisystem erstellen
edit_mkfsmsg=Erstellt ein neues $1 Dateisystem auf dieser Partition. Dies f&uuml;hrt zu einer permanenten L&ouml;schung aller exitierenden Dateien. Sie m&uuml;ssen dies tun nach dem Erstellen einer Partition oder der &Auml;nderung einer bestenden.
edit_fsck=Repariere Dateisystem
edit_fsckmsg=Ruft das Programm $1 auf, um das Dateisystem zu reparieren, so dass es gemountet werden kann. Dies ist n&ouml;tig falls ihr System nicht korrekt heruntergefahren worden ist.
edit_tune=Bearbeite Dateisystem
edit_tunemsg=Gestattet ihnen verschiedene Parameter eines exitisierenden Dateisystems zu bearbeiten.

mkfs_title=Neues Dateisystem
mkfs_ecannot=Sie haben keiner Berechtigung, auf dieser Festplatte ein neues Dateisystem anzulegen
mkfs_desc1=Wenn Sie den Button ganz unten bei diesem Formular klicken wird ein neues $1 Dateisystem auf der Festplatte $2 erstellt. Alle Daten auf dieser Partition gehen dadurch unwiderruflich verloren.
mkfs_desc2=Diese Partition ist gemounted auf $1 als $2. Wenn Sie ein neues Dateisystem erstellen, werden alle Dateien, die vorher unter diesem Verzeichnis verf&uuml;gbar waren gel&ouml;scht
mkfs_options=Filesystem Options
mkfs_create=Create Filesystem
mkfs_err=Failed to create filesystem
mkfs_exec=Executing command $1 ..
mkfs_failed=.. command failed!
mkfs_ok=.. command complete.

fsck_title=Repariere Dateisystem
fsck_ecannot=Sie haben keine Berechtigung, fsck auf diese Festplatte anzuwenden
fsck_desc1=Wenn Sie auf den <tt>Repariere Dateisystem</tt> Button klicken, wird versucht werden, das besch&auml;digte $1 Dateisystem auf $2 zu reparieren, um es auf $3 zu mounten.
fsck_desc2=Dateisystem Reparaturen werden erledigt mit dem Kommando $1, welches automatisch versuchen wird, jegliche auftretenden Probleme zu beheben. F&uuml;r eine gr&ouml;ssere Kontrolle &uuml;ber die Dateisystem-Reparattur f&uuml;hren Sie das $2 Kommando manue鲻 im interaktiven Modus von der Konsole aus auf.
fsck_repair=Repariere Dateisystem
fsck_exec=F&uuml;hre Kommando $1 aus ..
fsck_err0=Es wurden keine Fehler gefunden
fsck_err1=Es wurden Fehler gefunden und korrigiert
fsck_err3=Es wurden Fehler gefunden und korrigiert - es ist jetzt ein Neustart des Systems notwendig
fsck_err4=Es wurden Fehler gefunende, aber NICHT korrigiert
fsck_err16=Kommandozeilen-Fehler
fsck_unknown=Unbekannter R&uuml;ckgabewert $1

tunefs_title=Bearbeite Dateisystem
tunefs_ecannot=Sie haben keine Berechtigung, das Dateisystem zu bearbeiten
tunefs_desc=Dieses Formular gestattet es Ihnen, verschiedene Parameter des $1 Dateisystems auf $2 zum mounten auf $3 zu bearbeiten. Existierende Dateien auf dem Dateisystem sind nicht betroffen.
tunefs_params=Tuning Parameter
tunefs_tune=Bearbeite Dateisystem
tunefs_c=Gaps zwischen Checks
tunefs_e=Aktion bei Fehler
tunefs_continue=Weitermachen
tunefs_remount=Mount nur-lesen
tunefs_panic=Panik
tunefs_u=Reservierter User
tunefs_g=Reservierte Gruppe
tunefs_m=Reservierte Blocks
tunefs_i=Zwischt zwischen &Uuml;berprf&uuml;fungen
tunefs_days=Tage
tunefs_weeks=Wochen
tunefs_months=Monate
tunefs_err=Fehler beim bearbeiten des Dateisystems
tunefs_exec=F&uuml;hre Kommando $1 aus ..
tunefs_failed=.. Kommando schlug fehl!
tunefs_ok=.. Kommando erfolgreich ausgef&uuml;hrt.

reboot_title=Neustart
reboot_msg=Starte jetzt neu ..
reboot_ok=Jetzt Neustart
reboot_why=Sie haben die Partitionstabelle auf $1 ge&auml;ndert. Damit die &Auml;nderungen wirksam werden, muss das System neu gestartet werden.

save_err=Fehler beim Speichern der Partition
save_ecannot=Sie haben keine Berechtigung, diese Festplatte zu bearbeiten
save_estart='$1' ist kein g&uuml;ltiger Start-Zylinder
save_eend='$1' ist kein g&uuml;ltiger End-Zylinder
save_emin=Der Start-Zylinder muss >= $1 sein
save_emax=Der End-Zylinder muss <= $1 sein
save_eminmax=Der Start-Zylinder muss kleiner als das Ende sein
save_eoverlap=&Uuml;berlappung festgestellt mit Partition $1 ($2 bis $3)

ext2_b=Block Gr&ouml;sse
ext2_f=Fragment Gr&ouml;sse
ext2_i=Bytes pro inode
ext2_m=Reservierte blocks
ext2_g=Blocks pro Gruppe
ext2_c=&Uuml;berpr&uuml;fe auf fehlerhafte Bl&ouml;cke?

msdos_f=Aznahl FATs
msdos_F=FAT Gr&ouml;sse
msdos_i=Volume ID
msdos_n=Volume Name
msdos_r=Root Eintr&auml;ge
msdos_s=Cluster Gr&ouml;sse
msdos_c=&Uuml;berpr&uuml;fe auf fehlerhafte Bl&ouml;cke?

minix_n=Dateinamen L&auml;nge
minix_i=Anzahl Inodes
minix_b=Anzahl Bl&ouml;cke
minix_c=&Uuml;berpr&uuml;fe auf fehlerhafte Bl&ouml;cke?

acl_disks=Festplatten, die dieser Benutzer partitionieren und formatieren darf

hdparm_title=IDE Parameter bearbeiten
hdparm_on=An
hdparm_off=Aus
hdparm_label=IDE Laufwerkseinstellungen
hdparm_conf_X=Transfer Modus
hdparm_conf_X_defaut=Standard Modus
hdparm_conf_X_disable=IORDY deaktivieren
hdparm_conf_d=DMA benutzen
hdparm_conf_a=Sektor Anzahl
hdparm_conf_A=Vorausschauendes Lesen
hdparm_conf_W=Schreib Cache
hdparm_conf_u=De-maskiere Interrupt
hdparm_conf_k=Behalte Merkmale &uuml;ber (Warm-)Start
hdparm_conf_K=Behalte Einstellungen &uuml;ber (Warm-)Start
hdparm_conf_r=Nur Lesen
hdparm_conf_P=Stelle besten PIO neu ein
hdparm_conf_S=Standby Timeout
hdparm_conf_c=32-bit I/O Unterst&uuml;tzung
hdparm_conf_m=Sektor Anzahl f&uuml;r merfache Sektor I/O
hdparm_disable=Deaktivieren
hdparm_enable=Aktivieren
hdparm_enable_special=Aktiviere mit spezieller Sync Sequenz
hdparm_apply=Wende auf Laufwerk an
hdparm_speed=Test Geschwindigkeit
hdparm_performing=F&uuml;hre durch
hdparm_buf1=Gepuffert:
hdparm_buf2=Puffer Cache:
hdparm_speedres=Ergebnisse des Geschwindigkeitstest
   070701000497ff000081a40000000000000002000000013ac038910000198b000000200000000000000000000000000000001400000003reloc/fdisk/lang/en   index_title=Partition Manager
index_err=Failed to list disks
index_disk=Disk
index_parts=Partitions
index_location=Location
index_cylinders=Cylinders
index_model=Model
index_raid=RAID level
index_controller=Controller
index_scsiid=Target
index_none=No partitions found
index_num=No.
index_type=Type
index_extent=Extent
index_start=Start
index_end=End
index_addpri=Add primary partition
index_addlog=Add logical partition
index_addext=Add extended partition
index_hdparm=Edit IDE parameters
index_use=Use
index_free=Free
index_return=disk list

bytes=bytes
extended=Extended
opt_default=Default
opt_error='$1' is not a valid $2
open_error=$1 command not found
select_device=$1 device $2
select_part=$1 device $2 partition $3
select_fd=Floppy disk $1
select_mylex=Mylex RAID $1 drive $2
select_mpart=Mylex RAID $1 drive $2 partition $3

edit_title=Edit Partition
create_title=Create Partition
edit_ecannot=You are not allowed to edit this disk
edit_ehdparm=The <tt>hdparm</tt> executable could not be found in your system
edit_details=Partition Details
edit_location=Location
edit_device=Device file
edit_type=Type
edit_extent=Extent
edit_of=of
edit_status=Status
edit_cont1=Contains 1 partition
edit_cont234=Contains $1 partitions
edit_cont5=Contains $1 partitions
edit_mount=Mounted on $1 as $2
edit_umount=For mounting on $1 as $2
edit_mountvm=Mounted as virtual memory
edit_umountvm=For mounting as virtual memory
edit_mountraid=Part of RAID device $1
edit_notexist=Not created yet
edit_notused=Not in use
edit_size=Size
edit_label=Partition label
edit_blocks=$1 blocks
edit_inuse=This partition cannot be changed as it is currently in use or configured to use
edit_mkfs=Create New Filesystem
edit_mkfsmsg=Builds a new $1 filesystem on this partition, permanently erasing any existing files. You must do this after creating a new partition or changing an existing one.
edit_fsck=Repair Filesystem
edit_fsckmsg=Calls the $1 program to repair a filesystem so that it can be mounted. This may be necessary if your system was not shut down properly.
edit_tune=Tune Filesystem
edit_tunemsg=Allows you to modify various parameters of an existing filesystem.
edit_none=None

mkfs_title=New Filesystem
mkfs_ecannot=You are not allowed to build a new filesystem on this disk
mkfs_desc1=Clicking the button at the bottom of this form will build a new $1 filesystem on the device $2. All data on this partition will be permanently erased.
mkfs_desc2=This partition has been mounted on $1 as a $2. Creating a new filesystem will erase all files that were previously accesible under this directory.
mkfs_options=Filesystem Options
mkfs_create=Create Filesystem
mkfs_err=Failed to create filesystem
mkfs_exec=Executing command $1 ..
mkfs_failed=.. command failed!
mkfs_ok=.. command complete.

fsck_title=Repair Filesystem
fsck_ecannot=You are not allowed to fsck this disk
fsck_desc1=Clicking the <tt>Repair Filesystem</tt> button will attempt to repair the damaged $1 filesystem on $2 for mounting on $3. If the filesystem is not damaged, no changes will be made.
fsck_desc2=Filesystem repairs will be done using the command $1, which will automatically attempt to fix any problems encountered. For more control over filesystem repairs, use the $2 command manually in interactive mode from the Unix prompt.
fsck_repair=Repair Filesystem
fsck_exec=Executing command $1 ..
fsck_err0=no errors detected
fsck_err1=errors found and corrected
fsck_err3=errors found and corrected - reboot needed
fsck_err4=errors found but NOT corrected
fsck_err16=command line error
fsck_unknown=unknown return code $1

tunefs_title=Tune Filesystem
tunefs_ecannot=You are not allowed to tune this filesystem
tunefs_desc=This form allows you to adjust various parameters of the $1 filesystem on $2 for mounting on $3. Existing files on this filesystem will not be affected.
tunefs_params=Tuning Parameters
tunefs_tune=Tune Filesystem
tunefs_c=Gaps between checks
tunefs_e=Action on error
tunefs_continue=Continue
tunefs_remount=Mount read-only
tunefs_panic=Panic
tunefs_u=Reserved user
tunefs_g=Reserved group
tunefs_m=Reserved blocks
tunefs_i=Time between checks
tunefs_days=Days
tunefs_weeks=Weeks
tunefs_months=Months
tunefs_err=Failed to tune filesystem
tunefs_exec=Executing command $1 ..
tunefs_failed=.. command failed!
tunefs_ok=.. command complete.

reboot_title=Reboot
reboot_msg=Rebooting now ..
reboot_ok=Reboot Now
reboot_why=You have changed the partition table on $1. For this change to take effect properly, your system must be rebooted.

save_err=Failed to save partition
save_ecannot=You are not allowed to edit this disk
save_estart='$1' is not a valid starting cylinder
save_eend='$1' is not a valid ending cylinder
save_emin=The starting cylinder must be >= $1
save_emax=The ending cylinder must be <= $1
save_eminmax=The starting cylinder must be less than the ending
save_eoverlap=Overlap detected with partition $1 ($2 to $3)

ext2_b=Block size
ext2_f=Fragment size
ext2_i=Bytes per inode
ext2_m=Reserved blocks
ext2_g=Blocks per group
ext2_c=Check for bad blocks?

msdos_f=Number of FATs
msdos_F=FAT size
msdos_i=Volume ID
msdos_n=Volume name
msdos_r=Root entries
msdos_s=Cluster size
msdos_c=Check for bad blocks?

minix_n=Filename length
minix_i=Number of inodes
minix_b=Number of blocks
minix_c=Check for bad blocks?

reiserfs_force=Force filesystem creation
reiserfs_hash=Hash function

acl_disks=Disks this user can partition and format
acl_dall=All disks
acl_dsel=Selected..

hdparm_title=Edit IDE Parameters
hdparm_on=On
hdparm_off=Off
hdparm_label=IDE Drive Settings
hdparm_conf_X=Transfer mode
hdparm_conf_X_defaut=Default mode
hdparm_conf_X_disable=Disable IORDY
hdparm_conf_d=Using DMA
hdparm_conf_a=Sector count
hdparm_conf_A=Read-lookahead
hdparm_conf_W=Write caching
hdparm_conf_u=Interrupt unmask
hdparm_conf_k=Keep settings over reset
hdparm_conf_K=Keep features over reset
hdparm_conf_r=Read only
hdparm_conf_P=Reprogram best PIO
hdparm_conf_S=Standby timeout
hdparm_conf_c=32-bit I/O support
hdparm_conf_m=Sector count for multiple sector I/O
hdparm_disable=Disable
hdparm_enable=Enable
hdparm_enable_special=Enable with special sync sequence
hdparm_apply=Apply to Drive
hdparm_speed=Test Speed
hdparm_performing=Performing
hdparm_buf1=Buffer cache:
hdparm_buf2=Buffered:
hdparm_speedres=Speed test results

log_modify=Modified $1
log_create=Created $1
log_delete=Deleted $1
log_mkfs=Created $1 filesystem on $2
log_tunefs=Tuned $1 filesystem on $2
log_fsck=Repaired $1 filesystem on $2
log_hdparm=Modified IDE parameters for $1
 07070100049800000081a40000000000000002000000013ac0389100001dfa000000200000000000000000000000000000001400000003reloc/fdisk/lang/es   index_title=Gestor de Particiones
index_err=Error al listar discos
index_disk=Disco
index_parts=Particiones
index_location=Localizaci髇
index_cylinders=Cilindros
index_model=Modelo
index_raid=Nivel de RAID
index_controller=Controladora
index_scsiid=Blanco
index_none=No se han encontrado particiones
index_num=N鷐.
index_type=Tipo
index_extent=Extensi髇
index_start=Inicio
index_end=Fin
index_addpri=A馻dir partici髇 primaria
index_addlog=A馻dir partici髇 l骻ica
index_addext=A馻dir partici髇 extendida
index_hdparm=Editar par醡etros IDE
index_use=Usar
index_free=Libre
index_return=lista de discos

bytes=octetos
extended=Extendida
opt_default=Por defecto
opt_error='$1' no es una $2 v醠ida
open_error=comando $1 no hallado
select_device=$1 dispositivo $2
select_part=$1 dispositivo $2 partici髇 $3
select_fd=Diskette $1
select_mylex=RAID Mylex $1 controlador $2
select_mpart=RAID Mylex $1 controlador $2 partici髇 $3

edit_title=Editar Partici髇
create_title=Crear Partici髇
edit_ecannot=No est醩 autorizado a editar este disco
edit_ehdparm=El ejecutable <tt>hdparm</tt> no pudo ser hallado en tu sistema
edit_details=Detalles de la Partici髇
edit_location=Localizaci髇
edit_device=Archivo de Dispositivo
edit_type=Tipo
edit_extent=Extensi髇
edit_of=de
edit_status=Estado
edit_cont1=Contiene 1 partici髇
edit_cont234=Contiene $1 particiones
edit_cont5=Contiene $1 particiones
edit_mount=Montada en $1 como $2
edit_umount=Para ser montada en $1 como $2
edit_mountvm=Montada como memoria virtual
edit_umountvm=Para ser montada como memoria virtual
edit_mountraid=Componente de dispositivo RAID $1
edit_notexist=Todav韆 no creada
edit_notused=No est en uso
edit_size=Medida
edit_label=Etiqueta de partici髇
edit_blocks=$1 bloques
edit_inuse=Esta partici髇 no puede ser cambiada ya que est en este momento en uso.
edit_mkfs=Crear Nuevo Sistema de Archivos
edit_mkfsmsg=Construye un nuevo $1 sistema de archivos en esta partici髇 borrando perman閚temente cualquier archivo que ya exista. Debes de hacer esto tras crear una nueva partici髇 o tras modificar una que ya exista.
edit_fsck=Reparar Sistema de Archivos
edit_fsckmsg=Llama al programa $1 para reparar un sistema de archivos de tal manera que pueda ser montado. Esto puede ser necesario si tu sistema no fue cerrado apropiadamente.
edit_tune=Sintonizar Sistema de Archivos
edit_tunemsg=Te permite modificar varios par醡etros de un sistema de archivos existente.
edit_none=Ninguna

mkfs_title=Nuevo Sistema de Archivos
mkfs_ecannot=No est醩 autorizado a construir un nuevo sistema de archivos en este disco
mkfs_desc1=Haciendo click en el bot髇 inferior de este formulario puedes crear un nuevo sistema de archivos $1 en el dispositivo $2. Todos los datos de esta partici髇 ser醤 borrados de forma permanente.
mkfs_desc2=Esta partici髇 ha sido montada en $1 como $2. Si creas un nuevo sistema de archivos se borrar醤 todos los archivos que estaban previamente accesibles bajo este directorio.
mkfs_options=Opciones de Sistema de Archivos
mkfs_create=Crear Sistema de Archivos
mkfs_err=Error al crear sistema de archivos
mkfs_exec=Ejecutando comando $1 ...
mkfs_failed=... rror en comando!
mkfs_ok=... comando completado.

fsck_title=Reparar Sistema de Archivos
fsck_ecannot=No est醩 autorizado a chequear este disco
fsck_desc1=Haciendo click en el bot髇 <tt>Reparar Sistema de Archivos</tt> se intentar reparar el sistema de archivos da馻do $1 en $2 para ser montado en $3. Si el sistema de archivos no est da馻do, no se realizar cambio alguno.
fsck_desc2=Las reparaciones de los sistemas de archivos se har醤 mediante el comando $1 que autom醫icamente intentar solucionar cualquier problema que encuentre. Para m醩 control sobre la reparaci髇 de los sistemas de archivos, use el comando $2 manualmente en modo interactivo desde el modo comando de Unix.
fsck_repair=Reparar Sistema de Archivos
fsck_exec=Ejecutando comando $1 ...
fsck_err0=no se han detectado errores
fsck_err1=errores encontrados y corregidos
fsck_err3=errores encontrados y corregidos - es necesario rearrancar
fsck_err4=errores encontrados pero NO corregidos
fsck_err16=error en l韓ea de comando
fsck_unknown=c骴igo de retorno $1 desconocido

tunefs_title=Sintonizar Sistema de Archivos
tunefs_ecannot=Tu no est醩 autorizado a sintonizar este sistema de archivos
tunefs_desc=Este formulario te permite ajustar varios par醡etros del sistema de archivos $1 en $2 para ser montado en $3. Los archivos que ya existan en este sistema de archivos no se ver醤 afectados.
tunefs_params=Par醡etros de Sintonizaci髇
tunefs_tune=Sintonizar Sistema de Archivos
tunefs_c=Intervalos entre chequeos
tunefs_e=Acci髇 cuando haya error
tunefs_continue=Continuar
tunefs_remount=Montar de s髄o-lectura
tunefs_panic=P醤ico
tunefs_u=Usuario Reservado
tunefs_g=Grupo Reservado
tunefs_m=Bloques Reservados
tunefs_i=Tiempo entre chequeos
tunefs_days=D韆s
tunefs_weeks=Semanas
tunefs_months=Meses
tunefs_err=Error al sintonizar sistema de archivos
tunefs_exec=Ejecutando comando $1 ...
tunefs_failed=... rror en comando!
tunefs_ok=... comando completado.

reboot_title=Rearrancar
reboot_msg=Rearrancando ahora...
reboot_ok=Rearrancar Ahora
reboot_why=Has cambiado la tabla de partici髇 en $1. Para que este cambio sea efectivo tu sistema debe de ser rearrancado.

save_err=Error al salvar partici髇
save_ecannot=No est醩 autorizado a editar este disco
save_estart='$1' no es un cilindro de inicio v醠ido
save_eend='$1' no es un cilindro de fin v醠ido
save_emin=El cilindro de inicio debe de ser >= $1
save_emax=El cilindro de fin debe de ser <= $1
save_eminmax=El cilindro de inicio debe de ser menor que el de fin
save_eoverlap=Solapamiento detectado en la partici髇 $1 ($2 a $3)

ext2_b=Medida de Bloque
ext2_f=Medida de Fragmento
ext2_i=Octetos por i-nodo
ext2_m=Bloques Reservados
ext2_g=Bloque por Grupo
ext2_c=縍eviso por si hay bloques malos?

msdos_f=N鷐ero de FATs
msdos_F=Medida de FAT
msdos_i=ID de Volumen
msdos_n=Nombre de Volumen
msdos_r=Entradas de Root
msdos_s=Medida de Cl鷖ter
msdos_c=縍eviso por si hay bloques malos?

minix_n=Tama駉 de Nombre de Archivo
minix_i=N鷐ero de i-nodos
minix_b=N鷐ero de bloques
minix_c=縍eviso por si hay bloques malos?

reiserfs_force=Forzar la creaci髇 del sistema de archivos
reiserfs_hash=Funci髇 de hash

acl_disks=Discos que este usuario puede particionar y formatear
acl_dall=Todos los discos
acl_dsel=Los seleccionados...

hdparm_title=Editar Par醡etros IDE
hdparm_on=Activado
hdparm_off=Desactivado
hdparm_label=Configuraci髇 de Controlador IDE
hdparm_conf_X=Modo de Transferencia
hdparm_conf_X_defaut=Modo por Defecto
hdparm_conf_X_disable=Disactivar IORDY
hdparm_conf_d=Usando DMA
hdparm_conf_a=Contador de Sectores
hdparm_conf_A=Lectura-previa
hdparm_conf_W=Cach de escritura
hdparm_conf_u=Desenmascarar Interrupci髇
hdparm_conf_k=Mantener caracter韘ticas al hacer reset
hdparm_conf_K=Mantener configuraci髇 al hacer reset
hdparm_conf_r=S髄o lectura
hdparm_conf_P=Reprogramar mejor PIO
hdparm_conf_S=Tiempo de espera de Estar Quieto
hdparm_conf_c=Soporte de E/S de 32-bit
hdparm_conf_m=Contador de Sector para E/S de sector m鷏tiple
hdparm_disable=Desactivar
hdparm_enable=Activar
hdparm_enable_special=Activar con secuencia especial de sincronismo
hdparm_apply=Aplicar a Controlador
hdparm_speed=Prueba de Velocidad
hdparm_performing=Realizando
hdparm_buf1=En B鷉er:
hdparm_buf2=Cach de B鷉er:
hdparm_speedres=Resultados de prueba de Velocidad

log_modify=Modificado $1
log_create=Creado $1
log_delete=Borrado $1
log_mkfs=Creado sistema de archivos $1 en $2
log_tunefs=Sintonizado sistema de archivos $1 en $2
log_fsck=Reparado sistema de archivos $1 en $2
log_hdparm=Modificados par醡etros IDE para $1
  0707010004980b000081a40000000000000002000000013ac0389100001af1000000200000000000000000000000000000001400000003reloc/fdisk/lang/fr   index_title=Gestionnaire de Partitions
index_err=Impossible de lire la liste de disques
index_disk=Disques
index_parts=Partitions
index_location=Endroit
index_cylinders=Cylindres
index_model=Mod鑜e
index_controller=Contr鬺eur
index_scsiid=Cible
index_none=Aucune partition trouv閑
index_num=Num閞o
index_type=Type
index_extent=蓆endue
index_start=D閎ut
index_end=Fin
index_addpri=Ajouter une partition primaire
index_addlog=Ajouter une partition logique
index_addext=Ajouter une partition 閠endue
index_hdparm=蒬iter les param鑤res IDE
index_return=liste de disques

extended=蓆endue
opt_default=D閒aut
opt_error=$1 n'est pas un(e) valide $2
select_device=$1 p閞iph閞ique $2
select_part=$1 p閞iph閞ique $2 partition $3
select_fd=Lecteur de disquette $1

edit_title=蒬iter une Partition
create_title=Cr閑r une Partition
edit_ecannot=Vous n'阾es pas autoris  閐iter ce disque
edit_details=D閠ails sur la Partition
edit_location=Endroit
edit_device=Fichier de p閞iph閞ique
edit_type=Type
edit_extent=蓆endue
edit_status=蓆at
edit_mount=Monter sur $1 en $2
edit_umount=Pour monter sur $1 comme $2
edit_mountvm=Monter comme m閙oire virtuel
edit_umountvm=Pour monter comme m閙oire virtuel
edit_notexist=Pas encore cr殚
edit_notused=Inutilis
edit_size=Taille
edit_blocks=$1 blocs
edit_inuse=Cette partition ne peut 阾re chang閑 car elle est utilis閑 en ce moment
edit_mkfs=Cr閑r un Nouveau Syst鑝e de Fichier
edit_mkfsmsg=Cr閑r un nouveau $1 syst鑝e de fichier sur cette partition va effacer de fa鏾n permanente son contenu.  Vous devez faire cela apr鑣 avoir cr閑r une nouvelle partition ou avoir changer celle qui existe d閖.
edit_fsck=R閜aration du Syst鑝e de Fichier
edit_fsckmsg=Appelle le programme '$1' pour r閜arer un syst鑝e de fichier pour qu'il soit ensuite mont.  Ceci peut 阾re n閏essaire si votre syst鑝e n'a pas 閠 arr阾 correctement.
edit_tune=Configurer un Syst鑝e de Fichier
edit_tunemsg=Vous permet d'ajuster certains param鑤res sur un syst鑝e de fichier existant

mkfs_title=Nouveau Syst鑝e de Fichier
mkfs_ecannot=Vous n'阾es pas autoris de faire un nouveau syst鑝e de fichier sur ce disque
mkfs_desc1=Cliquer sur le bouton au bas de cette page va cr閑r un nouveau syst鑝e de fichier $1 sur le p閞iph閞ique $2.  Tout contenu sur cette partition sera effac de fa鏾n permanente.
mkfs_desc2=Cette partition a 閠 mont閑 sur $1 comme $2.  Cr閑r un syst鑝e de fichier va effacer tout le contenu qui 閠ait au pr閍lable accessible dans ce r閜ertoire.
mkfs_options=Options du Syst鑝e de Fichier
mkfs_create=Cr閑r un Syst鑝e de Fichier
mkfs_err=Impossible de cr閑r un syst鑝e de fichier
mkfs_exec=Ex閏uter la commande '$1'
mkfs_failed=ex閏ution de la commande rat閑!
mkfs_ok=commande compl閠閑.

fsck_title=R閜arer un Syst鑝e de Fichier
fsck_ecannot=Vous n'阾es pas autoris  r閜arer ce disque
fsck_desc1=Cliquer le bouton <tt>R閜arer un Syst鑝e de Fichier</tt> va tenter de r閜arer le syst鑝e endommag $1 sur $2 pour le monter sur $3.  Si le syst鑝e de fichier n'est pas endommag, aucun changement va 阾re fait.
fsck_desc2=La r閜aration du syst鑝e de fichier va 阾re faite en utilisant la commande '$1', qui va automatiquement essayer de fixer n'importe quel probl鑝e rencontr.  Pour plus de contr鬺e sur les r閜arations du syst鑝e de fichier utiliser la commande '$2' manuellement en mode interactif de l'interpr閠eur de commande Unix.
fsck_repair=R閜arer le Syst鑝e de Fichier
fsck_exec=Ex閏uter la commande '$1'
fsck_err0=aucune erreurs d閠ect閑s
fsck_err1=erreurs trouv閑s et corrig閑s
fsck_err3=erreurs trouv閑s et corrig閑s - un red閙arrage est n閏essaire
fsck_err4=erreurs trouv閑s mais PAS corrig閑s
fsck_err16=erreur dans la ligne de commande
fsck_unknown=code de sortie inconnue $1

tunefs_title=Ajuster le Syst鑝e de Fichier
tunefs_ecannot=Vous n'阾es pas autoris  ajuster ce syst鑝e de fichier
tunefs_desc=Cette page vous permet d'ajuster certains param鑤res du syst鑝e de fichier $1 sur $2 pour monter sur $3.  Tout le contenu de ce syst鑝e de fichier ne sera pas affect.
tunefs_params=Ajuster les Param鑤res
tunefs_tune=Ajuster le Syst鑝e de Fichier
tunefs_c=Montage/D閙ontage entre v閞ification
tunefs_e=Action sur erreur
tunefs_continue=Continuer
tunefs_remount=Monter en lecture seulement
tunefs_panic=Paniquer
tunefs_u=Usager r閟erv
tunefs_g=Groupe r閟erv
tunefs_m=Blocs r閟erv閟
tunefs_i=Temps entre v閞ification
tunefs_days=Jour(s)
tunefs_weeks=Semaine(s)
tunefs_months=Mois
tunefs_err=Impossible d'ajuster le syst鑝e de fichier
tunefs_exec=Ex閏ute la commande '$1'
tunefs_failed=ex閏ution rat閑 de la commande!
tunefs_ok=commande compl閠閑.

reboot_title=Red閙arrer
reboot_msg=Red閙arrer maintenant
reboot_ok=Red閙arrage
reboot_why=Vous avez chang la table de la partition sur le disque $1.  Pour que les changements prennent effet correctement vous devez red閙arrer votre syst鑝e.

save_err=Impossible d'enregistrer la partition
save_ecannot=Vous n'阾es pas autoris  閐iter ce disque
save_estart=$1 n'est pas un cylindre de d閜art valide
save_eend=$1 n'est pas un cylindre de fin valide
save_emin=Le cylindre de d閜art doit 阾re >=$1
save_emax=Le cylindre de fin doit 阾re <=$1
save_eminmax=Le cylindre de d閜art doit 阾re plus petit que celui de la fin
save_eoverlap=Une superposition a 閠 d閠ect閑 avec la partition $1 ($2  $3)

ext2_b=Taille des blocs
ext2_f=Taille des fragments
ext2_i=Bytes par inode
ext2_m=Blocs r閟erv閟
ext2_g=Blocs par groupe
ext2_c=V閞ifier les mauvais blocs?

msdos_f=Nombre de table d'allocation de fichier
msdos_F=Taille de table d'allocation de fichier
msdos_i=Num閞o du volume
msdos_n=Nom de volume
msdos_r=Entr閑 racine
msdos_s=Taille des clusters
msdos_c=V閞ifier les mauvais blocs?

minix_n=Taille des noms de fichier
minix_i=Nombre d'inodes
minix_b=Nombre de blocs
minix_c=V閞ifier les mauvais blocs?

acl_disks=Disque que cet usager peut partitionner ou formater

hdparm_title=Configurer un Disque
hdparm_on=Oui
hdparm_off=Non
hdparm_label=Configuration Disque IDE
hdparm_conf_X=Mode de transfert
hdparm_conf_X_defaut=Mode par d閒aut
hdparm_conf_X_disable=Ne pas utiliser IORDY
hdparm_conf_d=Utiliser DMA
hdparm_conf_a=D閏ompte de secteur
hdparm_conf_A=Activer l'option 'read-lookahead'
hdparm_conf_W=Cache en 閏riture
hdparm_conf_u=D閙asquage d'interruption
hdparm_conf_k=Garder les caract閞istiques au red閙arage
hdparm_conf_K=Garder la configuration au red閙arrage
hdparm_conf_r=Lecture seule
hdparm_conf_P=Reprogrammer le meilleur PIO
hdparm_conf_S=Temps d'inactivit avant la mise en attente
hdparm_conf_c=Support d'entr閑/sortie 32 bits
hdparm_conf_m=D閏ompte de secteur pour les entr閑/sortie multiple
hdparm_disable=Non
hdparm_enable=Oui
hdparm_enable_special=Oui, avec une s閝uence de synchronisation sp閏iale
hdparm_apply=Appliquer au Disque
hdparm_speed=Tester la vitesse
hdparm_performing=Test de vitesse
hdparm_buf1=Tampon
hdparm_buf2=Cache tamponn
hdparm_speedres=R閟ultats du test de vitesse
   0707010004980e000081a40000000000000002000000013ac03891000018ef000000200000000000000000000000000000001400000003reloc/fdisk/lang/hu   index_title=Part韈i menedzser
index_err=A lemezek kilist醶醩a nem siker黮t.
index_disk=Lemez
index_parts=Part韈i髃
index_location=Elhelyezked閟
index_cylinders=Cilinderek
index_model=Modell
index_controller=Vez閞l
index_scsiid=C閘
index_none=Nem tal醠hat part韈i.
index_num=Sorsz醡
index_type=T韕us
index_extent=Kiterjed閟
index_start=Kezdet
index_end=V間
index_addpri=Els鮠leges part韈i hozz醓d醩a
index_addlog=Logikai part韈i hozz醓d醩a
index_addext=Kiterjesztett part韈i hozz醓d醩a
index_hdparm=IDE param閠erek szerkeszt閟e
index_return=lemezek list醞醜oz

extended=Kiterjesztett
opt_default=Alap閞telmezett
opt_error=A(z) '$1' egy 閞v閚ytelen $2
select_device=$1 eszk鰖 $2
select_part=$1 eszk鰖 $2 part韈i $3
select_fd=Floppy lemez $1

edit_title=Part韈i szerkeszt閟e
create_title=Part韈i l閠rehoz醩a
edit_ecannot=謓nek nincs jogosults醙a a lemez szerkeszt閟閔ez.
edit_details=Partit韈i r閟zletei
edit_location=Elhelyezked閟
edit_device=Eszk鰖f醞l
edit_type=T韕us
edit_extent=Kiterjed閟
edit_status=羖lapot
edit_mount=$1 -k閚t csatolva; form醫um: $2 
edit_umount=Csatol醩 $1 -k閚t; form醫um: $2
edit_mountvm=Virtu醠is mem髍iak閚t csatolva
edit_umountvm=Csatol醩 virtu醠is mem髍iak閚t
edit_notexist=M間 nincs elk閟z韙ve
edit_notused=Nincs haszn醠atban
edit_size=M閞et
edit_blocks=$1 blokk
edit_inuse=Ennek a part韈i髇ak a v醠toztat醩a nem lehets間es, mert haszn醠atban van.
edit_mkfs=趈 f醞lrendszer l閠rehoz醩a
edit_fsck=F醞lrendszer jav韙醩
edit_fsckmsg=Megh韛ja a(z) $1 programot, hogy megjav韙sa a f醞lrendszert, ami csatolt 醠lapotban is lehets間es. Ezt aj醤lott megtenni, ha a g閜 szab醠ytalanul lett le醠l韙va.
edit_tune=F醞lrendszer tuning
edit_tunemsg=Lehet鮯間et ny鷍t egy l閠ez f醞lrendszer k黮鰊f閘e param閠ereinek m骴os韙醩醜oz.

mkfs_title=趈 f醞lrendszer
mkfs_ecannot=謓nek nincs jogosults醙a ezen a lemezen 鷍 f醞lrendszert telep韙eni.
mkfs_desc1=Az 鹯lap alj醤 l関 nyom骻ombra kattintva l閠rej鰊 egy 鷍 $1 f醞lrendszer a $2 eszk鰖鰊. A part韈i髇 minden adat v間legesen le fog t鰎l鮠ni.
mkfs_desc2=Ez a part韈i a $1 k鰊yvt醨ba van csatolva, mint $2. Egy 鷍 f醞lrendszer l閠rehoz醩akor minden olyan f醞l let鰎l鮠ik, amely kor醔ban ebb鮨 a k鰊yvt醨b髄 el閞het volt.
mkfs_options=F醞lrendszer kapcsol髃
mkfs_create=F醞lrendszer l閠rehoz醩a
mkfs_err=A f醞lrendszer l閠rehoz醩a nem siker黮t.
mkfs_exec=A(z) $1 parancs futtat醩a...
mkfs_failed=... parancs megszakadt!
mkfs_ok=.. parancs v間rehajt醩a befejez鮠鰐t.

fsck_title=F醞lrendszer jav韙醩a
fsck_ecannot=謓nek nincs jogosults醙a fsck-zni ezt a lemezt.
fsck_desc1=A <tt>F醞lrendszer jav韙醩a</tt> gombra kattintva a program megpr骲醠ja megjav韙ani a $2 $1 f醞lrendszer閠, melynek csatol醩i helye a $3. Ha a f醞lrendszer nem s閞黮t, akkor semmi sem fog megv醠tozni.
fsck_desc2=A f醞lrendszer jav韙醩醫 a(z) $1 parancs fogja elv間ezni, amely megpr骲醠ja a tal醠t hib醟at automatikusan kijav韙ani. A f醞lrendszer jav韙醩a feletti nagyobb ellen鮮z閟 閞dek閎en haszn醠ja  manu醠isan, Unix parancssorban a(z) $2 parancs interkat韛 m骴j醫.
fsck_repair=F醞lrendszer jav韙醩a
fsck_exec=A(z) $1 parancs v間rehajt醩a...
fsck_err0=nem t鰎t閚t hiba
fsck_err1=hib醟 閟zlelve 閟 kijav韙va
fsck_err3=hib醟 閟zlelve 閟 kijav韙va - a g閜 鷍raind韙醩a sz黭s間es
fsck_err4=hib醟 閟zlelve, de kijav韙醩uk NEM t鰎t閚t meg
fsck_err16=parancssori hiba
fsck_unknown=ismeretlen visszat閞閟i k骴: $1

tunefs_title=F醞lrendszer hangol醩a
tunefs_ecannot=謓nek nincs jogosults醙a ennek a f醞lrendszernek a hangol醩醜oz.
tunefs_desc=Ezzel az 鹯lappal $3 k鰊yvt醨ba csatolt $2 eszk鰖 $1 f醞lrendszer k黮鰊f閘e param閠ereit szab醠yozhatja. A f醞lrendszeren l関 f醞lokra ez nincs kihat醩sal.
tunefs_params=Tuning param閠erek
tunefs_tune=F醞lrendszer hangol醩a
tunefs_c=Ellen鮮z閟ek k鰖ti sz黱etek
tunefs_e=Cselekv閟 hiba eset閚
tunefs_continue=Folytat醩
tunefs_remount=Csatol醩 csak olvashat髃閚t
tunefs_panic=P醤ik
tunefs_u=Fenntartott felhaszn醠
tunefs_g=Fenntartott csoport
tunefs_m=Fenntartott blokkok
tunefs_i=Ellen鰎z閟ek k鰖ti id
tunefs_days=Napok
tunefs_weeks=Hetek
tunefs_months=H髇apok
tunefs_err=A f醞lrendszer be醠l韙醩a nem siker黮t.
tunefs_exec=A(z) $1 parancs v間rehajt醩a...
tunefs_failed=... a parancs megakadt!
tunefs_ok=... a parancs v間rehajt醩a befejez鮠鰐t.

reboot_title=Rendszer-鷍raind韙醩
reboot_msg=趈raind韙醩 most...
reboot_ok=趈raind韙醩 most
reboot_why=謓 megv醠toztatta a $1 part韈i髎 t醔l醞醫. Hogy ennek a hat醩a 閞z閗elhet legyen, a g閜閠 鷍ra kell ind韙ani.

save_err=A part韈i elment閟e nem siker黮t
save_ecannot=謓nek nincs jogosults醙a szerkeszteni ezt a lemezt.
save_estart=A(z) '$1' egy 閞v閚ytelen kezd cilinder.
save_eend=A(z) '$1' egy 閞v閚ytelen befejez cilinder.
save_emin=A kezd cilindernek >= kell lennie, mint $1.
save_emax=A befejez cilindernek <= kell lennie $1.
save_eminmax=A kezd cilindernek kisebbnek kell lennie a befejez鮪閘.
save_eoverlap=羣fed閟 mutathat ki a(z) $1 part韈i髇醠 ($2 - $3).

ext2_b=Blokkm閞et
ext2_f=T鰎edezetts間 m閞ete
ext2_i=b醞t/I-b鰃
ext2_m=Fenntartott blokkok
ext2_g=Blokk/csoport
ext2_c=Hib醩 blokkok figyel閟e?

msdos_f=FAT-ek sz醡a
msdos_F=FAT m閞et
msdos_i=K鰐eg ID
msdos_n=K鰐eg neve
msdos_r=Root bejegyz閟ek
msdos_s=Klaszter m閞et
msdos_c=Hib醩 blokkok figyel閟e?

minix_n=F醞ln関hossz
minix_i=I-b鰃鰇 sz醡a
minix_b=Blokkok sz醡a
minix_c=Hib醩 blokkok figyel閟e?

acl_disks=Ez a felhaszn醠 part韈ion醠hat 閟 form醶hat ezen a lemezen.

hdparm_title=IDE param閠erek szerkeszt閟e
hdparm_on=Be
hdparm_off=Ki
hdparm_label=IDE meghajt-be醠l韙醩ok
hdparm_conf_X=羣viteli m骴
hdparm_conf_X_defaut=Alap閞telmezett m骴
hdparm_conf_X_disable=IORDY t韑t醩a
hdparm_conf_d=DMA haszn醠ata
hdparm_conf_a=Szektorsz醡ol醩
hdparm_conf_A=El鮮eolvas醩
hdparm_conf_W=蛂醩gyors韙醩
hdparm_conf_u=羖arcfelfed閟 megszak韙醩a
hdparm_conf_k=Jellegzetess間ek meg鮮z閟e reset-en kereszt黮
hdparm_conf_K=Be醠l韙醩ok meg鮮z閟e reset-en kereszt黮
hdparm_conf_r=Csak olvashat
hdparm_conf_P=Legjobb PIO 醫programoz醩a
hdparm_conf_S=K閟zenl閠i id鮰鷏l閜閟
hdparm_conf_c=32-bites I/O t醡ogat醩
hdparm_conf_m=T鯾bsz鰎鰏 I/O szektorokn醠 azok sz醡ol醩a
hdparm_disable=Let韑t
hdparm_enable=Enged閘yez
hdparm_enable_special=Enged閘yez閟 speci醠is szinkroniz醕i髎 szekvenci醰al
hdparm_apply=Alkalmaz a meghajt髇
hdparm_speed=Sebess間 tesztel閟e
hdparm_performing=Teljes韙m閚y
hdparm_buf1=Bufferelt:
hdparm_buf2=Buffer gyors韙:
hdparm_speedres=a sebess間teszt eredm閚yeihez
 0707010004984e000081a40000000000000002000000013ac0389100001c72000000200000000000000000000000000000001400000003reloc/fdisk/lang/pl   index_title=Zarz眃ca partycji
index_err=Nie uda硂 si utworzy listy dysk體
index_disk=Dysk
index_parts=Partycje
index_location=Lokalizacja
index_cylinders=Liczba cylindr體
index_model=Model
index_raid=Poziom RAID
index_controller=Kontroler
index_scsiid=Urz眃zenie
index_none=Nie znaleziono partycji
index_num=Nr
index_type=Typ
index_extent=Umiejscowienie
index_start=Pocz眛ek
index_end=Koniec
index_addpri=Dodaj partycj podstawow
index_addlog=Dodaj partycj logiczn
index_addext=Dodaj partycj rozszerzon
index_hdparm=Zmie parametry IDE
index_use=U縴wana przez
index_free=Wolne
index_return=listy dysk體

bytes=bajt體
extended=Rozszerzona
opt_default=Domy秎ne
opt_error='$1' nie jest poprawnym $2
open_error=Nie znaleziono polecenia $1
select_device=Urz眃zenie $1 $2
select_part=Partycja $3 na dysku $1 $2
select_fd=Dyskietka $1
select_mylex=Urz眃zenie Mylex RAID $1 $2
select_mpart=Partycja $3 urz眃zenia Mylex RAID $1 $2

edit_title=Zmie partycj
create_title=Utw髍z partycj
edit_ecannot=Nie masz uprawnie do zmian tego dysku
edit_ehdparm=Nie znaleziono w systemie programu <tt>hdparm</tt>
edit_details=Dane partycji
edit_location=Lokalizacja
edit_device=Plik urz眃zenia
edit_type=Typ
edit_extent=Obejmuje cylindry
edit_of=z
edit_status=Stan
edit_cont1=Zawiera 1 partycj
edit_cont234=Zawiera $1 partycje
edit_cont5=Zawiera $1 partycji
edit_mount=Zamontowana na $1 jako $2
edit_umount=Do zamontowania na $1 jako $2
edit_mountvm=Zamontowana jako pami赕 wirtualna
edit_umountvm=Do zamontowania jako pami赕 wirtualna
edit_mountraid=Cz甓 urz眃zenia RAID $1
edit_notexist=Jeszcze nie utworzono
edit_notused=Nie u縴wana
edit_size=Rozmiar
edit_label=Etykieta partycji
edit_blocks=$1 blok體
edit_inuse=Nie mo縩a dokonywa zmian tej partycji, gdy jest ona aktualnie u縴wana lub skonfigurowana do u縴wania
edit_mkfs=Utw髍z nowy system plik體
edit_fsck=Napraw system plik體
edit_fsckmsg=Wywo硊je program $1 w&nbsp;celu naprawy systemu plik體 tak, by m骻 on by zamontowany. Mo縠 to by konieczne po nieprawid硂wym zamkni阠iu systemu.
edit_tune=Dostosuj system plik體
edit_tunemsg=Pozwala zmieni r罂ne parametry istniej眂ego systemu plik體.
edit_none=痑den

mkfs_title=Nowy system plik體
mkfs_ecannot=Nie masz uprawnie do tworzenia nowych system體 plik體 na tym dysku.
mkfs_desc1=Naci秐i阠ie przycisku w&nbsp;dolnej cz甓ci tego formularza spowoduje utworzenie nowego systemu plik體 $1 na urz眃zeniu $2. Wszystkie dane na tej partycji zostan nieodwracalnie zniszczone.
mkfs_desc2=Ta partycja jest zamontowana na $1 jako $2. Utworzenie nowego systemu plik體 spowoduje usuni阠ie wszystkich plik體, kt髍e by硑 uprzednio dost阷ne w&nbsp;tym katalogu.
mkfs_options=Opcje systemu plik體
mkfs_create=Utworzy system plik體
mkfs_err=Nie uda硂 si utworzy systemu plik體
mkfs_exec=Wykonywanie polecenia $1 ..
mkfs_failed=.. nie powiod硂 si!
mkfs_ok=.. zako馽zono.

fsck_title=Napraw system plik體
fsck_ecannot=Nie masz uprawnie do uruchomienia <tt>fsck</tt> dla tego dysku.
fsck_desc1=Naciskaj眂 na przycisk <tt>Napraw system plik體</tt> podejmiesz pr骲 naprawienia uszkodzonego systemu plik體 $1 na $2 w&nbsp;celu zamontowania go na $3. Je秎i system nie jest uszkodzony, 縜dne zmiany nie b阣 wykonanae.
fsck_desc2=Naprawa systemu plik體 b阣zie wykonana za pomoc polecenia $1, kt髍e automatycznie podejmie pr骲 usuni阠ia wszystkich wyst阷uj眂ych problem體. Je秎i chcesz mie wi阫sz kontrol nad tym co si dzieje podczas naprawy systemu plik體 wydaj polecenie $2 r阠znie w&nbsp;trybie interakcyjnym z&nbsp;linii polecen Uniksa.
fsck_repair=Napraw system plik體
fsck_exec=Wykonywanie polecenia $1 ..
fsck_err0=nie znaleziono b酬d體
fsck_err1=znaleziono i&nbsp;naprawiono b酬dy
fsck_err3=znaleziono i&nbsp;naprawiono b酬dy - niezb阣ny restart
fsck_err4=znaleziono b酬dy, ale ich NIE naprawiono
fsck_err16=b潮d polecenia
fsck_unknown=nieznany kod powrotu $1

tunefs_title=Dostosuj system plik體
tunefs_ecannot=Nie masz uprawnie do dostosowania tego systemu plik體.
tunefs_desc=Za pomoc tego formularza mo縠sz dostroi r罂ne parametry systemu plik體 $1 na $2 montowanego na $3. Nie naruszy to istniej眂ych na tym systemie plik體.
tunefs_params=Parametry dostosowania
tunefs_tune=Dostosuj system plik體
tunefs_c=Liczba montowa mi阣zy sprawdzeniami
tunefs_e=Dzialanie w&nbsp;razie b酬du
tunefs_continue=Kontynuuj
tunefs_remount=Montuj tylko do odczytu
tunefs_panic=Wpadnij w panik
tunefs_u=U縴tkownik obszaru zarezerwowanego
tunefs_g=Grupa obszaru zarezerwowanego
tunefs_m=Zarezerwowane bloki
tunefs_i=Okres pomi阣zy sprawdzeniami
tunefs_days=Dni
tunefs_weeks=Tygodni
tunefs_months=Miesi阠y
tunefs_err=Nie uda硂 si dostosowa systemu plik體
tunefs_exec=Wykonywanie polecenia $1 ..
tunefs_failed=.. nie powiod硂 si!
tunefs_ok=.. zako馽zono.

reboot_title=Restartuj
reboot_msg=Restartuj teraz ..
reboot_ok=Restartuj teraz
reboot_why=Zmieni砮 tablic partycji na $1. Aby ta zmiana odnios砤 w砤禼iwy skutek trzeba zrestartowa system.

save_err=Nie uda硂 si zachowa partycji
save_ecannot=Nie masz uprawnie do zmian tego dysku.
save_estart='$1' nie jest poprawnym cylindrem pocz眛kowym.
save_eend='$1' nie jest poprawnym cylindrem ko馽owym.
save_emin=Cylinder pocz眛kowy musi by &gt;= $1.
save_emax=Cylinder ko馽owy musi by &lt;= $1.
save_eminmax=Cylinder pocz眛kowy musi by mniejszy ni ko馽owy.
save_eoverlap=Stwierdzono nak砤danie si z&nbsp;partycj $1 ($2 do $3).

ext2_b=Rozmiar bloku
ext2_f=Rozmiar fragmentu
ext2_i=Bajt體 na i-w陑e
ext2_m=Blok體 zarezerwowanych
ext2_g=Blok體 na grup
ext2_c=Sprawdza poprawno舵 no秐ika?

msdos_f=Liczba FAT-體
msdos_F=Rozmiar FAT-u
msdos_i=Nr ID wolumenu
msdos_n=Nazwa wolumenu
msdos_r=Wpis體 w&nbsp;katalogu g丑wnym
msdos_s=Rozmiar klastra
msdos_c=Sprawdza poprawno舵 no秐ika?

minix_n=Rozmiar systemu plik體
minix_i=Liczba i-w陑丑w
minix_b=Liczba blok體
minix_c=Sprawdza poprawno舵 no秐ika?

reiserfs_force=Wymusi utworzenie systemu plik體
reiserfs_hash=Funkcja haszy

acl_disks=Dyski, kt髍e u縴tkownik mo縠 partycjonowa i&nbsp;formatowa
acl_dall=Wszystkie dyski
acl_dsel=Wybrane..

hdparm_title=Zmie ustawienia IDE
hdparm_on=W潮czone
hdparm_off=Wy潮czone
hdparm_label=Ustawienia dla urz眃zenia IDE
hdparm_conf_X=Tryb transmisji
hdparm_conf_X_defaut=Tryb domy秎ny
hdparm_conf_X_disable=Wy潮cz IORDY
hdparm_conf_d=Korzystanie z&nbsp;DMA
hdparm_conf_a=Liczba sektor體 odczytu wyprzedzaj眂ego
hdparm_conf_A=Odczyt wyprzedzaj眂y
hdparm_conf_W=Buforowanie zapisu
hdparm_conf_u=Niemaskowanie przerwa
hdparm_conf_k=Zachowaj ustawienia podczas restartu
hdparm_conf_K=Zachowaj w砤禼iwo禼i podczas restartu
hdparm_conf_r=Tylko do odczytu
hdparm_conf_P=Ustaw optymalny tryb PIO
hdparm_conf_S=Maks. czas gotowo禼i
hdparm_conf_c=32-bitowy dost阷
hdparm_conf_m=Odczyty i&nbsp;zapisy wielosektorowe
hdparm_disable=Wy潮cz
hdparm_enable=W潮cz
hdparm_enable_special=W潮cz ze specjalnym poleceniem zrzutu bufor體
hdparm_apply=Zastosuj do dysku
hdparm_speed=Test szybko禼i
hdparm_performing=Trwa
hdparm_buf1=Odczyt samych bufor體:
hdparm_buf2=Odczyt bufowany:
hdparm_speedres=Wyniki testu szybko禼i

log_modify=Zmieniono $1
log_create=Utworzono $1
log_delete=Usuni阾o $1
log_mkfs=Utworzono system plik體 $1 na $2
log_tunefs=Dostosowano system plik體 $1 na $2
log_fsck=Naprawiono system plik體 $1 na $2
log_hdparm=Zmieniono parametry IDE dla $1
  07070100049890000081a40000000000000002000000013ac0389100001625000000200000000000000000000000000000001400000003reloc/fdisk/lang/pt   index_title=Administrador de Parti珲es
index_err=Erro ao listar discos
index_disk=Disco
index_parts=Parti珲es
index_location=Localiza玢o
index_cylinders=Cilindros
index_model=Modelo
index_controller=Controlador
index_scsiid=Alvo
index_none=N鉶 foram encontradas parti珲es
index_num=N
index_type=Tipo
index_extent=Exten玢o
index_start=Inicio
index_end=Fim
index_addpri=Adicionar parti玢o prim醨ia
index_addlog=Adicionar parti玢o l骻ica
index_addext=Adicionar parti玢o extendida
index_return=lista de discos

extended=Extendida
opt_default=Predefinido
opt_error='$1' n鉶  uma $2 v醠ida
select_device=$1 dispositivo $2
select_part=$1 dispositivo $2 parti玢o $3
select_fd=Disquete $1

edit_title=Editar Parti玢o
create_title=Criar Parti玢o
edit_ecannot=Voc n鉶 est autorizado para editar este disco
edit_details=Detalhes da Parti玢o
edit_location=Localiza玢o
edit_device=Ficheiro de dispositivos
edit_type=Tipo
edit_extent=Extens鉶
edit_status=Estado
edit_mount=Montado em $1 como $2
edit_umount=Para ser montado em $1 como $2
edit_mountvm=Montado como mem髍ia virtual
edit_umountvm=Para ser montado como mem髍ia virtual
edit_notexist=Ainda n鉶 foi criada
edit_notused=N鉶 est em uso
edit_size=Tamanho
edit_blocks=$1 blocos
edit_inuse=Esta parti玢o n鉶 pode ser alterada porque est actualmente em uso
edit_mkfs=Criar Novo Sistema de Ficheiros
edit_mkfsmsg=Constroi um novo $1 de sistema de ficheiros nesta parti玢o, apagando permanentemente qualquer ficheiro. Dever fazer isto depois de criar uma nova parti玢o ou alterar uma existente.
edit_fsck=Reparar Sistema de Ficheiros
edit_fsckmsg=Chama o programa $1 para reparar o sistema de ficheiros para que possa ser montado. Isto pode ser necess醨io se o sistema n鉶 encerrou correctamente.
edit_tune=Afinar o Sistema de Ficheiros
edit_tunemsg=Permite que voc modifique par鈓etros de um sistema de ficheiros existente.

mkfs_title=Novo Sistema de Ficheiros
mkfs_ecannot=Voc n鉶 est autorizado para construir um novo sistema de ficheiros neste disco
mkfs_desc1=Ao clicar no bot鉶 no fundo do formul醨io, ir construir um novo sistema de ficheiros $1 no dispositivo $2. Todos os dados nesta parti玢o ser鉶 permanentemente apagados.
mkfs_desc2=Esta parti玢o foi montada em $1 como $2. Se criar um novo sistema de ficheiros ir apagar todos os ficheiros que eram anteriormente acess韛eis dentro deste direct髍io.
mkfs_options=Op珲es do Sistema de Ficheiros
mkfs_create=Criar Sistema de Ficheiros
mkfs_err=Erro ao criar sistema de ficheiros
mkfs_exec=A executar comando $1 ..
mkfs_failed=.. erro no comando!
mkfs_ok=.. comando completo.

fsck_title=Reparar Sistema de Ficheiros
fsck_ecannot=Voc n鉶 est autorizado para verificar (fsck) este disco
fsck_desc1=Ao clicar no bot鉶 <tt>Reparar Sistema de Ficheiros</tt>, ir tentar reparar o sistema de ficheiros danificado $1 em $2 para ser montado em $3. Se o sistema de ficheiros n鉶 estiver danificado, nenhumas altera珲es ser鉶 feitas.
fsck_desc2=A repara玢o do sistema de ficheiros ser feita utilizando o comando $1, que autom醫icamente tentar corrigir quisquer problemas encontrados. Para maior controle na repara玢o de sistema de ficheiros, utilize manualmente o comando $2 no modo interactivo na linha de comandos do Unix.
fsck_repair=Reparar Sistema de Ficheiros
fsck_exec=A executar o comando $1 ..
fsck_err0=n鉶 foram encontrados erros
fsck_err1=erros encontrados e corrigidos
fsck_err3=erros encontrados e corrigidos -  necess醨io reiniciar
fsck_err4=erros encontrados mas N肙 corrigidos
fsck_err16=erro na linha de comando
fsck_unknown=c骴igo de retorno $1 desconhecido

tunefs_title=Afinar Sistema de Ficheiros
tunefs_ecannot=Voc n鉶 est autorizado para afinar este sistema de ficheiros
tunefs_desc=Este formul醨io permite-lhe ajustar v醨ios par鈓etros do sistema de ficheiros $1 em $2 para ser montado em $3. Os ficheiros existentes neste sistema de ficheiros n鉶 ser鉶 afectados.
tunefs_params=Par鈓etros de Afina玢o
tunefs_tune=Afinar Sistema de Ficheiros
tunefs_c=Intervalo entre verifica珲es
tunefs_e=Ac玢o caso haja erro
tunefs_continue=Continuar
tunefs_remount=Montar em modo de leitura apenas
tunefs_panic=P鈔ico
tunefs_u=Utilizador reservado
tunefs_g=Grupo reservado
tunefs_m=Blocos reservados
tunefs_i=Tempo entre verifica珲es
tunefs_days=Dias
tunefs_weeks=Semanas
tunefs_months=Meses
tunefs_err=Erro ao afinar sistema de ficheiros
tunefs_exec=A executar comando $1 ..
tunefs_failed=.. erro no comando!
tunefs_ok=.. comando completo.

reboot_title=Reiniciar Sistema
reboot_msg=A reiniciar sistema neste momento ..
reboot_ok=Reiniciar Sistema J
reboot_why=Voc alterou a tabela da parti玢o em $1. Para que esta altera玢o seja efectiva neste sistema, ter de reiniciar o sistema.

save_err=Erro ao guardar parti玢o
save_ecannot=Voc n鉶 est autorizado para editar este disco
save_estart='$1' n鉶  um cilindro de in韈io v醠ido
save_eend='$1' n鉶  um cilindro final v醠ido
save_emin=O cilindro inicial tem de ser >= $1
save_emax=O cilindro final tem de ser <= $1
save_eminmax=O cilindro inicial tem de ser menor que o final
save_eoverlap=Sobreposi玢o detectada com a parti玢o $1 ($2 a $3)

ext2_b=Tamanho do bloco
ext2_f=Tamanho do fragmento
ext2_i=Bytes por i-node
ext2_m=Blocos reservados
ext2_g=Blocos por grupo
ext2_c=Verificar se h blocos danificados?

msdos_f=N鷐ero de FATs
msdos_F=Tamanho da FAT
msdos_i=ID do volume
msdos_n=Nome do volume
msdos_r=Entradas de root
msdos_s=Tamanho do cluster
msdos_c=Verificar se h blocos danificados?

minix_n=Tamanho do nome do ficheiro
minix_i=N鷐ero de i-nodes
minix_b=N鷐ero de blocos
minix_c=Verificar se h blocos danificados?

acl_disks=Discos que este utilizador pode particionar e formatar
   07070100049891000081a40000000000000002000000013ac0389100001514000000200000000000000000000000000000001700000003reloc/fdisk/lang/ru_RU    edit_blocks=$1 犭铌钼
fsck_title=骂耨蜞眍怆屙桢 脏殡钼铋 谚耱屐
save_err=硒栳赅 镳 耦躔囗屙梃 疣玟咫
tunefs_err=硒栳赅 镳 磬耱痤殛 羿殡钼铋 耔耱屐
tunefs_remount=鸯铐蜩痤忄螯 蝾朦觐 潆 黩屙
index_disk=蔫耜
reboot_why=蔓 桤戾龛腓 蜞犭桷 疣玟咫钼 磬 $1. 碾 怦蝮镫屙 桤戾礤龛  耔塍, 忄 耔耱屐 漕腈磬 猁螯 疱耱囵蝾忄磬.
tunefs_months=体鲥
edit_umountvm=碾 祛眚桊钼囗 赅 忤痱筻朦磬 镟螯
tunefs_days=捻彘
fsck_unknown=礤桤忮耱睇 觐 忸玮疣蜞 $1
index_scsiid=SCSI 噤疱
tunefs_params=相疣戾蝠 袜耱痤殛
tunefs_failed=.. 觐爨礓 玎忮瘌桦囫 礤箐圜眍!
mkfs_title=皖忄 羿殡钼 耔耱屐
tunefs_desc=蒡 纛痨 镱玮铍弪 忄 镱漶蝠噼忄螯 疣珉梓睇 镟疣戾蝠 羿殡钼铋 耔耱屐 $1 磬 $2 潆 祛眚桊钼囗 磬 $3. 洋耱怏桢 羿殡 磬 溧眄铋 羿殡钼铋 耔耱屐 礤 狍潴 玎蝠铐篁.
select_fd=噪铒镨 滂耜 $1
msdos_F=朽珈屦 FAT
reboot_title=绣耱囵 谚耱屐
opt_default=项 箪铍鬣龛
index_parts=朽玟咫
index_none=朽玟咫 礤 磬殇屙
msdos_c=橡钼屦栩 磬 磬腓麒 镫铛桴 犭铌钼?
edit_tunemsg=项玮铍弪 忄 桤戾螯 疣珉梓睇 镟疣戾蝠 耋耱怏 羿殡钼铋 耔耱屐.
msdos_f=暑腓麇耱忸 FAT
msdos_i=ID 蝾爨
msdos_n=褥 蝾爨
edit_device=脏殡 篑蝠铋耱忄
fsck_desc1=橡 磬驵蜩 磬 觏铒牦 <tt>骂耨蜞眍怆屙桢 脏殡钼铋 谚耱屐</tt> 狍溴 镳邃镳桧蜞 镱稃蜿 忸耨蜞眍怆屙 镱怵彐溴眄铋 羿殡钼铋 耔耱屐 $1 磬 $2 潆 蝾麝 祛眚桊钼囗 $3. 篷腓 羿殡钼 耔耱屐 礤 镱怵彐溴磬, 龛赅觇 桤戾礤龛 礤 狍溴 皲咫囗.
msdos_r=暑-忸 觐痦邂 赅.
fsck_desc2=锐镳噔脲龛 羿殡钼铋 耔耱屐 狍潴 铖簌羼蜮蝰 觐爨礓铋 $1, 觐蝾疣 狍溴 噔蝾爨蜩麇耜 稃蜞螯 桉镳噔栩 膻猁 镳钺脲禧. 碾 犷脲 蝾黻钽 觐眚痤 玎 桉镳噔脲龛屐 羿殡钼铋 耔耱屐 桉镱朦珞轵 觐爨礓 $2  桧蝈疣牝桠眍 疱骅戾, 玎矬耜 澹 桤 觐爨礓眍 耱痤觇.
msdos_s=朽珈屦 觌囫蝈疣
edit_mountvm=鸯铐蜩痤忄 赅 忤痱筻朦磬 镟螯
index_start=袜鬣腩
index_num=N.
select_device=$1 篑蝠铋耱忸 $2
index_addext=念徉忤螯 疣聒桊屙睇 疣玟咫
save_emin=袜鬣朦睇 鲨腓礓 漕腈屙 猁螯 >= $1
tunefs_ecannot=锣 礤 疣琊屮屙 磬耱疣桠囹  羿殡钼簋 耔耱屐
select_part=$1 篑蝠铋耱忸 $2 疣玟咫 $3
save_eoverlap=吾磬痼驽眍 镥疱牮桢  疣玟咫铎 $1 ($2 漕 $3)
index_title=体礤滏屦 朽玟咫钼
ext2_b=朽珈屦 犭铌
ext2_c=橡钼屦栩 磬 磬腓麒 镫铛桴 犭铌钼?
edit_notused=湾 桉镱朦珞弪
ext2_f=朽珈屦 麴嚆戾眚
ext2_g=岭铌钼 磬 沭箫矬
ext2_i=拎轵 磬 inode
ext2_m=绣珏疴睇 犭铌
tunefs_continue=橡钿铍骅螯
mkfs_desc1=橡 磬驵蜩 磬 觏铒牦 忭桤 溧眄铋 纛痨, 狍溴 耦玟囗 眍忄 $1 羿殡钼 耔耱屐 磬 篑蝠铋耱忮 $2. 埋 溧眄 磬 铎 疣玟咫 狍潴 徨玮铉怵囹眍 篁屦睇.
mkfs_desc2=泥眄 疣玟咫 耢铐蜩痤忄 磬 $1 赅 $2. 杨玟囗桢 眍忸 羿殡钼铋 耔耱屐 镳桠邃弪  镱蝈疱 怦艴 羿殡钼, 觐蝾瘥 疣睃 猁腓 漕耱箫睇  溧眄铎 赅蜞腩沐.
edit_inuse=蒡铗 疣玟咫 礤 祛驽 猁螯 桤戾礤, 镱耜铍 铐 桉镱朦珞弪  磬耱 祛戾眚
edit_umount=碾 祛眚桊钼囗 磬 $1 赅 $2
index_return=耧桉铌 滂耜钼
edit_tune=袜耱痤殛 脏殡钼铋 谚耱屐
index_addlog=念徉忤螯 腩汨麇耜栝 疣玟咫
reboot_ok=绣耱囵蝾忄螯 皴轺囫
index_end=暑礤
edit_fsckmsg=蔓琨忄弪 镳钽疣祆 $1 潆 忸耨蜞眍怆屙 羿殡钼铋 耔耱屐 蜞, 黩 铐 祛驽 猁螯 耢铐蜩痤忄眄. 蒡 祛驽 猁螯 镱脲珥, 羼腓 忄 耔耱屐 猁豚 礤镳噔桦 铖蜞眍怆屙.
mkfs_options=相疣戾蝠 脏殡钼铋 谚耱屐
save_estart='$1' 礤 怆弪 漕矬耱桁 磬鬣朦睇 鲨腓礓痤
index_type=诣
save_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 溧眄 滂耜
index_cylinders=骤腓礓瘥
tunefs_tune=袜耱痤栩 脏殡钼簋 谚耱屐
mkfs_failed=.. 觐爨礓 玎忮瘌桦囫 礤箐圜眍!
mkfs_ecannot=锣 礤 疣琊屮屙 耦玟噔囹 眍怏 羿殡钼簋 耔耱屐 磬 铎 滂耜
save_eminmax=袜鬣朦睇 鲨腓礓 漕腈屙 猁螯 戾睃 觐礤黜钽
index_err=硒栳赅 纛痨桊钼囗 耧桉赅 滂耜钼
edit_details=相疣戾蝠 朽玟咫
edit_fsck=骂耨蜞眍忤螯 脏殡钼簋 谚耱屐
index_extent=蓐耱屙
tunefs_title=袜耱痤殛 脏殡钼铋 谚耱屐
index_controller=暑眚痤腚屦
fsck_repair=骂耨蜞眍忤螯 脏殡钼簋 谚耱屐
tunefs_weeks=湾溴朦
mkfs_create=杨玟囹 脏殡钼簋 谚耱屐
minix_b=暑腓麇耱忸 犭铌钼
minix_c=橡钼屦栩 磬 磬腓麒 镫铛桴 犭铌钼s?
minix_i=暑腓麇耱忸 inode
minix_n=碾桧 桁屙 羿殡钼
mkfs_exec=蔓镱腠屙桢 觐爨礓 $1 ..
create_title=杨玟囗桢 朽玟咫
tunefs_c=橡铒篑觇 戾驿 镳钼屦赅扈
tunefs_e=绣嚓鲨 磬 铠栳牦
tunefs_g=青疱珏疴桊钼囗磬 沭箫镟
tunefs_i=吗屐 戾驿 镳钼屦赅扈
edit_extent=蓐耱屙
tunefs_m=青疱珏疴桊钼囗睇 犭铌
edit_type=诣
tunefs_u=青疱珏疴桊钼囗睇 镱朦珙忄蝈朦
edit_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 溧眄 滂耜
opt_error='$1' 礤 怆弪 漕矬耱桁 $2
edit_location=朽珈妁屙桢
index_addpri=念徉忤螯 镥疴梓睇 疣玟咫
index_location=朽珈妁屙桢
index_model=填溴朦
edit_status=羊囹篑
reboot_msg=谚耱屐 疱耱囵蝮弪 ..
acl_disks=蔫耜, 觐蝾瘥 溧眄 镱朦珙忄蝈朦 祛驽 疣玑桠囹 磬 疣玟咫  纛痨囹桊钼囹
fsck_ecannot=锣 礤 疣琊屮屙 玎矬耜囹 fsck 磬 溧眄铎 滂耜
edit_mount=鸯铐蜩痤忄 磬 $1 赅 $2
mkfs_ok=.. 觐爨礓 玎忮瘌桦囫 篑镥
edit_mkfs=杨玟囹 皖怏 脏殡钼簋 谚耱屐
mkfs_err=硒栳赅 镳 耦玟囗梃 羿殡钼铋 耔耱屐
tunefs_panic=相龛赅
fsck_err0=铠栳铌 礤 钺磬痼驽眍
fsck_err1=铠栳觇 钺磬痼驽睇  篑蝠囗屙
fsck_err3=铠栳觇 钺磬痼驽睇  篑蝠囗屙 - 礤钺躅滂 疱耱囵 耔耱屐
fsck_err4=铠栳觇 钺磬痼驽睇, 眍 团 篑蝠囗屙
edit_notexist=湾 耦玟囗
fsck_exec=蔓镱腠屙桢 觐爨礓 $1 ..
save_eend='$1' 礤 怆弪 漕矬耱桁 觐礤黜 鲨腓礓痤
tunefs_ok=.. 觐爨礓 玎忮瘌桦囫 篑镥
extended=朽聒桊屙睇
fsck_err16=铠栳赅 觐爨礓眍 耱痤觇
edit_size=朽珈屦
edit_title=绣溧牝桊钼囗桢 朽玟咫
save_emax=暑礤黜 鲨腓礓 漕腈屙 猁螯 <= $1
tunefs_exec=蔓镱腠屙桢 铎囗潲 $1 ..
07070100049892000081a40000000000000002000000013ac038900000151f000000200000000000000000000000000000001700000003reloc/fdisk/lang/ru_SU    index_title=砼闻闹乓 蛄谀盘献
index_err=镗陕肆 葡彝梢献廖裳 有捎肆 纳铀献
index_disk=渖铀
index_parts=蛄谀盘
index_location=蛄谕泡盼膳
index_cylinders=闵躺文屹
index_model=硐呐特
index_controller=胂卧蚁烫乓
index_scsiid=SCSI 聊遗
index_none=蛄谀盘 闻 瘟誓盼
index_num=N.
index_type=羯
index_extent=釉盼
index_start=盍蘖滔
index_end=胂闻
index_addpri=湎铝咨载 信易赊钨 伊谀盘
index_addlog=湎铝咨载 滔巧夼铀墒 伊谀盘
index_addext=湎铝咨载 伊盂梢盼钨 伊谀盘
index_return=有捎纤 纳铀献

extended=蛄盂梢盼钨
opt_default=鹣 胀咸蘖紊
opt_error='$1' 闻 炎萄旁友 南姓釉赏偻 $2
select_device=$1 沼砸鲜釉紫 $2
select_part=$1 沼砸鲜釉紫 $2 伊谀盘 $3
select_fd=嫣闲猩 纳铀 $1

edit_title=蚺牧嗽梢献廖膳 蛄谀盘
create_title=笙谀廖膳 蛄谀盘
edit_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 牧挝偈 纳铀
edit_details=鹆伊团砸 蛄谀盘
edit_location=蛄谕泡盼膳
edit_device=媪侍 沼砸鲜釉琢
edit_type=羯
edit_extent=釉盼
edit_status=笤猎沼
edit_mount=笸衔陨蚁琢 瘟 $1 肆 $2
edit_umount=涮 拖卧梢献廖裳 瘟 $1 肆 $2
edit_mountvm=笸衔陨蚁琢 肆 咨以樟特瘟 辛脱载
edit_umountvm=涮 拖卧梢献廖裳 肆 咨以樟特瘟 辛脱载
edit_notexist=钆 酉谀廖
edit_notused=钆 捎邢特谡旁友
edit_size=蛄谕乓
edit_blocks=$1 绿纤献
edit_inuse=显 伊谀盘 闻 拖峙 沦载 哨团闻, 邢铀咸厮 衔 捎邢特谡旁友  瘟釉涎萆 拖团卧
edit_mkfs=笙谀猎 钕渍 媪侍献绽 笊釉磐
edit_fsck=飨佑粤蜗咨载 媪侍献绽 笊釉磐
edit_fsckmsg=髻谫琢旁 幸锨伊屯 $1 奶 紫佑粤蜗滋盼裳 屏侍献鲜 由釉磐 粤, 拊 衔 拖峙 沦载 油衔陨蚁琢挝.  拖峙 沦载 邢膛谖, 庞躺 琢哿 由釉磐 沦塘 闻幸磷商匚 嫌粤蜗滋盼.
edit_tune=盍釉蚁仕 媪侍献鲜 笊釉磐
edit_tunemsg=鹣谧咸雅 琢 哨团窝载 伊谔赊钨 辛伊团砸 诱菖釉渍滥菖 屏侍献鲜 由釉磐.

mkfs_title=钕琢 屏侍献裂 由釉磐
mkfs_ecannot=髁 闻 伊谝袍盼 酉谀磷猎 蜗渍 屏侍献绽 由釉磐 瘟 茉贤 纳铀
mkfs_desc1=鹨 瘟至陨 瘟 宋闲苏 孜哨 牧挝鲜 葡彝, 抡呐 酉谀廖 蜗琢 $1 屏侍献裂 由釉磐 瘟 沼砸鲜釉着 $2. 饔 牧挝倥 瘟 茉贤 伊谀盘 抡恼 屡谧馅滓猎蜗 赵乓盐.
mkfs_desc2=淞挝偈 伊谀盘 油衔陨蚁琢 瘟 $1 肆 $2. 笙谀廖膳 蜗紫 屏侍献鲜 由釉磐 幸勺拍旁  邢耘遗 子湃 屏侍献, 讼韵屹 伊呜叟 沦躺 南釉招钨  牧挝贤 肆粤滔桥.
mkfs_options=鹆伊团砸 媪侍献鲜 笊釉磐
mkfs_create=笙谀猎 媪侍献绽 笊釉磐
mkfs_err=镗陕肆 幸 酉谀廖缮 屏侍献鲜 由釉磐
mkfs_exec=髻邢涛盼膳 讼土文 $1 ..
mkfs_failed=.. 讼土文 诹着役商劣 闻漳赁蜗!
mkfs_ok=.. 讼土文 诹着役商劣 沼信畚

fsck_title=飨佑粤蜗滋盼膳 媪侍献鲜 笊釉磐
fsck_ecannot=髁 闻 伊谝袍盼 诹姓铀猎 fsck 瘟 牧挝贤 纳铀
fsck_desc1=鹨 瘟至陨 瘟 宋闲苏 <tt>飨佑粤蜗滋盼膳 媪侍献鲜 笊釉磐</tt> 抡呐 幸拍幸晌言 邢匈运 紫佑粤蜗滋盼裳 邢滓胖呐挝鲜 屏侍献鲜 由釉磐 $1 瘟 $2 奶 韵匏 拖卧梢献廖裳 $3. 逵躺 屏侍献裂 由釉磐 闻 邢滓胖呐瘟, 紊肆松 哨团闻紊 闻 抡呐 幽盘廖.
fsck_desc2=橛幸磷膛紊 屏侍献鲜 由釉磐 抡恼 嫌蛰庞宰萄杂 讼土文鲜 $1, 讼韵伊 抡呐 磷韵土陨夼铀 匈粤载友 捎幸磷稍 汤沦 幸下膛唾. 涮 孪膛 韵嗡锨 讼卧蚁萄 诹 捎幸磷膛紊磐 屏侍献鲜 由釉磐 捎邢特谡试 讼土文 $2  晌耘伊嗽勺蜗 遗稚团, 诹姓铀裂 牛 哨 讼土文蜗 釉蚁松.
fsck_repair=飨佑粤蜗咨载 媪侍献绽 笊釉磐
fsck_exec=髻邢涛盼膳 讼土文 $1 ..
fsck_err0=羡陕纤 闻 下瘟艺峙蜗
fsck_err1=羡陕松 下瘟艺峙钨  沼砸廖盼
fsck_err3=羡陕松 下瘟艺峙钨  沼砸廖盼 - 闻下认纳 遗釉烈 由釉磐
fsck_err4=羡陕松 下瘟艺峙钨, 蜗 铄 沼砸廖盼
fsck_err16=羡陕肆 讼土文蜗 釉蚁松
fsck_unknown=闻哨着釉钨 讼 紫谧伊粤 $1

tunefs_title=盍釉蚁仕 媪侍献鲜 笊釉磐
tunefs_ecannot=髁 闻 伊谝袍盼 瘟釉伊勺猎 茉 屏侍献绽 由釉磐
tunefs_desc= 葡彝 邢谧咸雅 琢 邢挠砸辽琢载 伊谔赊钨 辛伊团砸 屏侍献鲜 由釉磐 $1 瘟 $2 奶 拖卧梢献廖裳 瘟 $3. 笳菖釉渍垒膳 屏侍 瘟 牧挝鲜 屏侍献鲜 由釉磐 闻 抡恼 诹砸衔赵.
tunefs_params=鹆伊团砸 盍釉蚁仕
tunefs_tune=盍釉蚁稍 媪侍献绽 笊釉磐
tunefs_c=鹨闲沼松 团帜 幸献乓肆蜕
tunefs_e=蚺了蒙 瘟 羡陕苏
tunefs_continue=鹨夏咸稚载
tunefs_remount=笸衔陨蚁琢载 韵特讼 奶 拊盼裳
tunefs_panic=鹆紊肆
tunefs_u=遗谂易梢献廖钨 邢特谙琢耘特
tunefs_g=遗谂易梢献廖瘟 且招辛
tunefs_m=遗谂易梢献廖钨 绿纤
tunefs_i=饕磐 团帜 幸献乓肆蜕
tunefs_days=湮攀
tunefs_weeks=钆呐特
tunefs_months=砼友门
tunefs_err=镗陕肆 幸 瘟釉蚁仕 屏侍献鲜 由釉磐
tunefs_exec=髻邢涛盼膳 贤廖馁 $1 ..
tunefs_failed=.. 讼土文 诹着役商劣 闻漳赁蜗!
tunefs_ok=.. 讼土文 诹着役商劣 沼信畚

reboot_title=蚺釉烈 笊釉磐
reboot_msg=笊釉磐 遗釉烈哉旁 ..
reboot_ok=蚺釉烈韵琢载 优兽劣
reboot_why=髻 哨团紊躺 粤绿擅 伊谀盘献 瘟 $1. 涮 子哉刑盼裳 哨团闻紊  由陶, 琢哿 由釉磐 南讨瘟 沦载 遗釉烈韵琢瘟.

save_err=镗陕肆 幸 酉纫廖盼缮 伊谀盘
save_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 牧挝偈 纳铀
save_estart='$1' 闻 炎萄旁友 南姓釉赏偻 瘟蘖特钨 蒙躺文蚁
save_eend='$1' 闻 炎萄旁友 南姓釉赏偻 讼闻尬偻 蒙躺文蚁
save_emin=盍蘖特钨 蒙躺文 南讨盼 沦载 >= $1
save_emax=胂闻尬偈 蒙躺文 南讨盼 沦载 <= $1
save_eminmax=盍蘖特钨 蒙躺文 南讨盼 沦载 团呜叟 讼闻尬锨
save_eoverlap=锫瘟艺峙蜗 信遗艘僭膳  伊谀盘贤 $1 ($2 南 $3)

ext2_b=蛄谕乓 绿纤
ext2_f=蛄谕乓 埔燎团卧
ext2_i=饬试 瘟 inode
ext2_m=蚺谂易钨 绿纤
ext2_g=馓纤献 瘟 且招姓
ext2_c=鹨献乓稍 瘟 瘟躺奚 刑先扇 绿纤献?

msdos_f=胂躺夼釉紫 FAT
msdos_F=蛄谕乓 FAT
msdos_i=ID 韵土
msdos_n=橥 韵土
msdos_r=胂-紫 讼椅抛偃 肆.
msdos_s=蛄谕乓 颂劣耘伊
msdos_c=鹨献乓稍 瘟 瘟躺奚 刑先扇 绿纤献?

minix_n=涮晌 赏盼 屏侍献
minix_i=胂躺夼釉紫 inode
minix_b=胂躺夼釉紫 绿纤献
minix_c=鹨献乓稍 瘟 瘟躺奚 刑先扇 绿纤献s?

acl_disks=渖铀, 讼韵屹 牧挝偈 邢特谙琢耘特 拖峙 伊诼勺猎 瘟 伊谀盘  葡彝猎梢献猎
 07070100049893000081a40000000000000002000000013ac0389100001adf000000200000000000000000000000000000001400000003reloc/fdisk/lang/sv   index_title=Partitionshanterare
index_err=Det gick inte att lista diskarna
index_disk=Disk
index_parts=Partitioner
index_location=Plats
index_cylinders=Cylindrar
index_model=Modell
index_controller=Controller
index_scsiid=M錶
index_none=Hittade inga partitioner
index_num=Nr.
index_type=Typ
index_extent=Omfattning
index_start=B鰎jan
index_end=Slut
index_addpri=L鋑g till prim鋜 partition
index_addlog=L鋑g till logisk partition
index_addext=L鋑g till ut鰇ad partition
index_hdparm=膎dra IDE-parametrar
index_raid=RAID-niv
index_use=Anv鋘d
index_free=Ledig
index_return=disklista

bytes=bytes
extended=Ut鰇ad
opt_default=Standard
opt_error='$1' 鋜 inte en giltig $2
open_error=Kommandot $1 finns inte
select_device=$1 disk $2
select_part=$1 disk $2 partition $3
select_fd=Diskettstation $1
select_mylex=Mylex-RAID $1 disk $2
select_mpart=Mylex-RAID $1 disk $2 partition $3

edit_title=膎dra partition
create_title=Skapa partition
edit_ecannot=Du f錼 inte 鋘dra p denna disk
edit_ehdparm=Det k鰎bara programmet <tt>hdparm</tt> finns inte i systemet.
edit_details=Uppgifter om partition
edit_location=Plats
edit_device=Diskfil
edit_type=Typ
edit_extent=Omfattning
edit_of=f鰎
edit_status=Status
edit_cont1=Inneh錶ler 1 partition
edit_cont234=Inneh錶ler $1 partitioner
edit_cont5=Inneh錶ler $1 partitioner
edit_mount=Monterad p $1 som $2
edit_umount=Att monteras p $1 som $2
edit_mountvm=Monterat som virtuellt minne
edit_umountvm=Att monteras som virtuellt minne
edit_mountraid=Del av RAID-disk $1
edit_notexist=膎nu ej skapad
edit_notused=Anv鋘ds inte
edit_size=Storlek
edit_label=Partitionsm鋜kning
edit_blocks=$1 block
edit_inuse=Denna partition kan inte 鋘dras, eftersom den anv鋘ds eller 鋜 konfigurerad att anv鋘das
edit_mkfs=Skapa nytt filsystem
edit_mkfsmsg=Bygger ett nytt $1-filsystem p denna partition, vilket tar bort alla befintliga filer permanent. Detta m錽te g鰎as n鋜 en ny partition skapas eller en befintlig 鋘dras.
edit_fsck=Reparera filsystem
edit_fsckmsg=Anv鋘der programmet $1 f鰎 att reparera filsystemet s att det kan monteras. Detta kan vara n鰀v鋘digt att g鰎a om systemet togs ned p ett ol鋗pligt s鋞t.
edit_tune=Tune filsystem
edit_tunemsg=Detta till錿er dig att justera diverse parametrar p ett existerande filsystem.
edit_none=Inget

mkfs_title=Nytt filsystem
mkfs_ecannot=Du f錼 inte bygga upp ett nytt filsystem p denna disk
mkfs_desc1=N鋜 du trycker p knappen l鋘gst ned kommer ett nytt $1-filsystem att byggas p disk $2. Alla data p denna partition kommer att raderas permanent.
mkfs_desc2=Denna partition har monterats p $1 som $2. N鋜 du skapar ett nytt filsystem kommer alla filer som tidigare funnits i denna katalog att tas bort.
mkfs_options=Filsysteminst鋖lningar
mkfs_create=Skapa filsystem
mkfs_err=Det gick inte att skapa filsystem
mkfs_exec=Utf鰎 kommando $1 ...
mkfs_failed=... kommandot gick inte att utf鰎a!
mkfs_ok=... kommandot utf鰎t.

fsck_title=Reparera filsystem
fsck_ecannot=Du f錼 inte fsck:a denna disk
fsck_desc1=N鋜 du trycker p <tt>Reparera filsystem</tt>-knappen kommer det skadade $1-filsystemet p $2 f鰎 montering p $3 att repareras. Om filsystemet inte 鋜 skadat kommer inget att 鋘dras.
fsck_desc2=Filsystemet kommer att repareras med kommandot $1, som automatiskt f鰎s鰇er ta hand om de problem det st鰐er p. Om du vill reparera filsystemet p ett mer kontrollerat s鋞t kan du ist鋖let anv鋘da kommandot $2 i interaktiv mod fr錸 Unix-prompten.
fsck_repair=Reparera filsystem
fsck_exec=Utf鰎 kommando $1 ...
fsck_err0=inga fel uppt鋍ktes
fsck_err1=fel uppt鋍ktes och r鋞tades till
fsck_err3=fel uppt鋍ktes och r鋞tades till - nu m錽te du starta om
fsck_err4=fel uppt鋍ktes MEN de r鋞tades inte till
fsck_err16=fel i kommandoraden
fsck_unknown=ok鋘d returkod $1

tunefs_title=Justera filsystem
tunefs_ecannot=Du f錼 inte justera detta filsystem
tunefs_desc=I detta formul鋜 kan du justera diverse parametrar p $1-filsystemet p $2 f鰎 montering p $3. Filer som redan finns p detta filsystem kommer inte att p鍁erkas.
tunefs_params=Justeringsparametrar
tunefs_tune=Justera filsystem
tunefs_c=Skillnader mellan kontroller
tunefs_e=舤g鋜d vid fel
tunefs_continue=Forts鋞t
tunefs_remount=Montera enbart f鰎 l鋝ning
tunefs_panic=Panik
tunefs_u=Reserverad anv鋘dare
tunefs_g=Reserverad grupp
tunefs_m=Reserverade block
tunefs_i=Tidsintervall mellan kontroller
tunefs_days=Dagar
tunefs_weeks=Veckor
tunefs_months=M錸ader
tunefs_err=Misslyckades att justera filsystem
tunefs_exec=Utf鰎 kommando $1 ...
tunefs_failed=... kommandot gick inte att utf鰎a!
tunefs_ok=... kommandot utf鰎t.

reboot_title=Omstart
reboot_msg=Startar om nu ...
reboot_ok=Starta om nu
reboot_why=Du har 鋘drat partitionstabellen f鰎 $1. F鰎 att denna 鋘dring ska tas i drift p ett korrekt s鋞t m錽te du starta om systemet.

save_err=Det gick inte att spara partitionen
save_ecannot=Du f錼 inte 鋘dra p denna disk
save_estart='$1' 鋜 inte en giltig startcylinder
save_eend='$1' 鋜 inte en giltig slutcylinder
save_emin=Startcylindern m錽te vara >= $1
save_emax=Slutcylindern m錽te vara <= $1
save_eminmax=Startcylindern m錽te vara ett mindre tal 鋘 slutcylindern
save_eoverlap=Detta 鰒erlappar med partition $1 ($2 - $3)

ext2_b=Blockstorlek
ext2_f=Fragmentstorlek
ext2_i=Bytes per inode
ext2_m=Reserverade block
ext2_g=Block per grupp
ext2_c=S鰇a efter skadade block?

msdos_f=Antal FATs
msdos_F=FAT-storlek
msdos_i=Volym-ID
msdos_n=Volymnamn
msdos_r=Root-poster
msdos_s=Klusterstorlek
msdos_c=S鰇a efter skadade block?

minix_n=Filnamnsl鋘gd
minix_i=Antal inoder
minix_b=Antal block
minix_c=S鰇a efter skadade block?

reiserfs_force=Forcera skapande av filsystem
reiserfs_hash=Hash-funktion

acl_disks=Diskar som denna anv鋘dare f錼 partitionera och formatera
acl_dall=Alla diskar
acl_dsel=Angivna ...

hdparm_title=膎dra IDE-parametrar
hdparm_on=P
hdparm_off=Av
hdparm_label=IDE-diskinst鋖lningar
hdparm_conf_X=講erf鰎ingsmod
hdparm_conf_X_defaut=Standardmod
hdparm_conf_X_disable=Deaktivera IORDY
hdparm_conf_d=Anv鋘d DMA
hdparm_conf_a=Sektorantal
hdparm_conf_A=Read-lookahead
hdparm_conf_W=Skriv-cache
hdparm_conf_u=Avbrottsbortmaskning
hdparm_conf_k=Spara inst鋖lningar vid omstart
hdparm_conf_K=Spara egenskaper vid omstart
hdparm_conf_r=Endast l鋝bart
hdparm_conf_P=Programmera b鋝ta PIO
hdparm_conf_S=Tid f鰎 standby
hdparm_conf_c=32-bitars I/O-st鰀
hdparm_conf_m=Sektorantal f鰎 I/O med flera sektorer
hdparm_disable=Deaktivera
hdparm_enable=Aktivera
hdparm_enable_special=Aktivera med speciell synksekvens
hdparm_apply=Utf鰎 inst鋖lningarna p disken
hdparm_speed=Testa hastighet
hdparm_performing=Utf鰎
hdparm_buf1=Buffert-cache:
hdparm_buf2=Buffrat:
hdparm_speedres=Resultat fr錸 hastighetstest

log_modify=膎drade $1
log_create=Skapade $1
log_delete=Tog bort $1
log_mkfs=Skapade $1 filsystem p $2
log_tunefs=Tunade $1 filsystem p $2
log_fsck=Reparerade $1 filsystem p $2
log_hdparm=膎drade IDE-parametrar f鰎 $1
 07070100049894000081a40000000000000002000000013ac0389100001910000000200000000000000000000000000000001400000003reloc/fdisk/lang/tr   index_title=Disk B鰈黰leme Y鰊eticisi
index_err=Disklerin listelenmesinde hata olu⺶u
index_disk=Disk
index_parts=B鰈黰ler
index_location=Yer
index_cylinders=Silindirler
index_model=Model
index_raid=RAID seviyesi
index_controller=Kontrol Edici
index_scsiid=Hedef
index_none=B鰈黰ler Bulunamad
index_num=Numara.
index_type=Tip
index_extent=Yeri
index_start=Baang
index_end=Biti
index_addpri=Birincil B鰈黰 Ekle
index_addlog=Mant齥sal B鰈黰 Ekle
index_addext=Uzat齦m B鰈黰 Ekle
index_hdparm=IDE parametrelerini de餴⺶ir
index_use=Kullan齦an
index_free=Bo
index_return=disk listesi

extended=Uzat齦m
opt_default=謓tan齧l
opt_error='$1' ge鏴rli bir $2 de餴ldir
select_device=$1 ara $2
select_part=$1 arac $2 b鰈黰 $3
select_fd=Floppy disk $1
select_mylex=Mylex RAID $1 s黵點 $2
select_mpart=Mylex RAID $1 s黵點 $2 disk b鰈黰 $3

edit_title=B鰈黰 De餴⺶ir
create_title=B鰈黰 Olu⺶ur
edit_ecannot=Bu diski de餴⺶irmenize izin verilmedi
edit_details=B鰈黰 Ayr齨tlar
edit_location=Yer
edit_device=Ara dosyas
edit_type=Tip
edit_extent=Yeri
edit_status=Durum
edit_mount=$1 'de $2 olarak ba餷and
edit_umount=$1 'de $2 olarak ba餷amak i鏸n
edit_mountvm=Sanal bellek olarak ba餷an齦d
edit_umountvm=Sanal bellek olarak ba餷amak i鏸n
edit_mountraid=RAID arac $1'in b鰈黰
edit_notexist=Hen鼁 olu⺶urulmad
edit_notused=Kullan齧da de餴l
edit_size=B鼀黭l黭
edit_blocks=$1 blok
edit_inuse=Bu b鰈黰 kullan齧da oldu饀ndan de餴⺶irilemedi
edit_mkfs=Yeni dosya sistemi olu⺶ur
edit_fsck=Dosya Sistemini Tamir Et
edit_fsckmsg=$1 program bir dosya sistemini tamir etmek i鏸n 鏰瘕r齦d齨da program ba餷ayabilmelidir.E餰r sisteminiz d鼁g黱 olarak kapat齦mam ise bu zorunlu olabilir
edit_tune=Dosya Sistemi D鼁enle
edit_tunemsg=Mevcut dosya sisteminin farkl parametrelerini de餴⺶irmeye izin vermelisiniz

mkfs_title=Yeni Dosya Sistemi
mkfs_ecannot=Bu diskte yeni dosya sistei olu⺶urman齴 izin verilmedi
mkfs_desc1=Yeni bir $1 dosya sistemini $1 ayg齮 olu⺶urmak i鏸n formun 鼁erindeki butonu tiklayiniz. Bu b鰈黰deki b黷黱 bilgiler silinecektir.
mkfs_desc2=Bu b鰈黰 $1'de $2 olarak ba餷and. Olu⺶urulan yeni dosya sistemi bu dizin alt齨daki b黷黱 dosyalar silecektir.
mkfs_options=Dosya Sistemi Se鏴nekleri
mkfs_create=Dosya Sistemi Olu⺶ur
mkfs_err=Dosya sistemi olu⺶urulmas齨da hata olu⺶u
mkfs_exec=$1 komutu 鏰lt齬齦齳or ..
mkfs_failed=.. komutu olu⺶uruldu!
mkfs_ok=.. komut tamamland.

fsck_title=Dosya Sistemini Tamir Et
fsck_ecannot=Bu diski kontrol etmenize izin verilmedi
fsck_desc1=<tt>Dosya Sistemini Tamir Et</tt> butonu t齥land齨da belirtilen dosya sistemi tamir i鏸n kontrol edilmeye baanacakt齬. E餰r dosya sistemi hasarl de餴lse hi鏱ir de餴㱮klik yap齦mayacakt齬
fsck_desc2=Dosya sisteminin tamir edilmesi i鏸n kullan齦an $1 komutu bitti餴nde bulunan problemler otomatik olarak tamir edilmi olacakt齬.Dosya sistemi tamirlerini daha 鏾k kontrol etmek isterseniz $2 komutunu Unix komut sat齬齨dan uygulamal齭齨齴.
fsck_repair=Dosya Sistemini Tamir Et
fsck_exec=$1 komutu 鏰lt齬齦齳or ..
fsck_err0=hata bulunmad
fsck_err1=hata bulundu ve d鼁eltildi
fsck_err3=hata bulundu ve d鼁eltildi - makine yeniden baat齦mal
fsck_err4=hata bulundu ama D躗ELT軱EMED
fsck_err16=komut sat齬 hatas
fsck_unknown=bilinmeyen d鰊 kodu $1

tunefs_title=Dosya Sistemi D鼁enleme
tunefs_ecannot=Bu dosya sitemini d鼁enlemeye hakk齨齴 yoktur
tunefs_desc=Bu form ba餷an齦an dosya sisteminin 鏴㱮tli parametrelierini de餴⺶irmek i鏸n kullan齦齬.Bu dosya sisteminde varolan dosyalar etkilenmemi olmal齞齬
tunefs_params=D鼁enleme Parametreleri
tunefs_tune=Dosya Sisteni D鼁enle
tunefs_c=Kontrol aras a琮kl齥
tunefs_e=Hatadaki etki
tunefs_continue=Devam
tunefs_remount=Sadece okunur olarak ba餷a
tunefs_panic=Panik
tunefs_u=Ay齬齦m Kullan齝
tunefs_g=Ay齬齦m Grup
tunefs_m=Ay齮齦m Bloklar
tunefs_i=Kontrol Aras S黵e
tunefs_days=G黱ler
tunefs_weeks=Haftalar
tunefs_months=Aylar
tunefs_err=Dosya sistemi d鼁enlemede hata olu⺶u
tunefs_exec=$1 komutu 鏰lt齬齦齳or..
tunefs_failed=.. komutunda hata olu⺶u
tunefs_ok=.. komutu tamamland

reboot_title=Yeniden Baat
reboot_msg=Yeniden Baat齦齳or ..
reboot_ok=辤mdi Yeniden Baat
reboot_why=$1'deki disk b鰈黰 tablosunu de餴⺶irdiniz.Bu de餴㱮kliklerin aktif hale gelmesi i鏸n sistemin yeniden baat齦mas gerekiyor.

save_err=Disk b鰈黰黱黱 kaydedilmesinde hata olu⺶u
save_ecannot=Bu diski de餴⺶irilmenize izin verilmedi
save_estart='$1' ge鏴rli bir baang silindiri de餴ldir
save_eend='$1' ge鏴rli bir biti silindiri de餴ldir
save_emin=Baang silindiri >= $1 olmal齞齬
save_emax=Biti silindiri <= $1 olmal齞齬
save_eminmax=Baang silindirinin numaras son silindir numaras齨dan daha k黭 olmal齞齬
save_eoverlap=$1 'de 黶t黶te binme tespit edildi ($2 to $3)

ext2_b=Blok boyutu
ext2_f=Par鏰 boyutu
ext2_i=D黰 bana byte
ext2_m=Ay齮齦m bloklar
ext2_g=Grup bana blok
ext2_c=K鰐 bloklar s齨ans齨 m?

msdos_f=FAT'lar齨 say齭
msdos_F=FAT boyutu
msdos_i=Boyut ID'si
msdos_n=Boyut ismi
msdos_r=K鰇 girieri
msdos_s=Cluster boyutu
msdos_c=K鰐 bloklar s齨ans齨 m?

minix_n=Dosya ismi uzunlu饀
minix_i=D黰lerin say齭
minix_b=Blok say齭
minix_c=K鰐 bloklar s齨ans齨 m?

acl_disks=Bu kullan齝 diskleri b鰈ebilir ve bi鏸mlendirebilir

hdparm_title=IDE parametrelerini de餴⺶ir
hdparm_on=A琮k
hdparm_off=Kapal
hdparm_label=IDE S黵點 謟ellikleri
hdparm_conf_X=Tama tarz
hdparm_conf_X_defaut=謓tan齧l Tarz
hdparm_conf_X_disable=IORDY'yi 鏰lt齬ma
hdparm_conf_d=DMA kullan齳or
hdparm_conf_a=Sekt鰎 say齭
hdparm_conf_A=Okunabilir kafa
hdparm_conf_W=Yazma 鰊belle餴
hdparm_conf_u=Kesme a鏼as
hdparm_conf_k=Reset'ten 鰊ce yap齳 sakla
hdparm_conf_K=Reset'ten 鰊ce ayarlar sakla
hdparm_conf_r=Sadece okunabilir
hdparm_conf_P=Tekrar programlanabilr PIO
hdparm_conf_S=Bekleme s黵esi
hdparm_conf_c=32-bit G/ deste餴
hdparm_conf_m=莖k y鰊l sekt鰎 G/ i鏸n sekt鰎 say齭
hdparm_disable=莂lt齬ma
hdparm_enable=莂lt齬
hdparm_enable_special=謟el s齬al e zamanlama ile 鏰lt齬
hdparm_apply=S黵點鼀e Uygula
hdparm_speed=Test H齴
hdparm_performing=Yerine Getirme
hdparm_buf1=Tamponland:
hdparm_buf2=Tamponlanan 鰊 bellek:
hdparm_speedres=H齴 testi sonu鏻ar

log_modify=$1 de餴⺶irildi
log_create=$1 olu⺶uruldu
log_delete=$1 silindi
log_mkfs=$2'de $1 dosya sistemi olu⺶uruldu
log_tunefs=$2'de $1 dosya sistemi d鼁enlendi
log_fsck=$2'de $1 dosya sistemi tamir edildi
log_hdparm=$1 i鏸n IDE parametreleri de餴⺶irildi

07070100049895000081a40000000000000002000000013ac03891000013cd000000200000000000000000000000000000001700000003reloc/fdisk/lang/zh_CN    index_title=分区管理器
index_err=磁盘列表错误
index_disk=磁盘
index_parts=分区
index_location=位置
index_cylinders=柱面数
index_model=型号
index_raid=磁盘阵列种类
index_controller=控制器
index_scsiid=目标
index_none=分区不存在
index_num=标号
index_type=分区类型
index_extent=范围
index_start=开始于
index_end=结束于
index_addpri=添加主分区
index_addlog=添加逻辑分区
index_addext=添加扩展分区
index_hdparm=编辑IDE硬盘参数
index_use=用途
index_free=剩余
index_return=分区列表

extended=扩展
opt_default=缺省
opt_error='$1'不是一个有效的'$2'
select_device=$1设备$2
select_part=$1 设备 $2 分区 $3
select_fd=软盘$1
select_mylex=Mylex 磁盘阵列 $1 驱动器 $2
select_mpart=Mylex 磁盘阵列 $1 驱动器 $2 分区 $3

edit_title=编辑分区
create_title=创建分区
edit_ecannot=你没有编辑该分区的权限
edit_details=分区信息
edit_location=位置
edit_device=设备文件
edit_type=类型
edit_extent=范围
edit_status=状态
edit_mount=以$2的类型安装到文件系统$1上
edit_umount=为了以$2的类型安装到文件系统$1上
edit_mountvm=以虚拟的文件系统类型安装到文件系统上
edit_umountvm=为了以虚拟的文件系统类型安装到文件系统上
edit_mountraid=磁盘阵列 $1 的一部分
edit_notexist=还没有创建
edit_notused=没有被使用
edit_size=大小
edit_label=分区卷标
edit_blocks=$1 块
edit_inuse=分区正在使用，不能修改
edit_mkfs=创建新文件系统
edit_mkfsmsg=在创建新的分区或者改变已经存在的分区后，您必须在上面建立新的文件系统,同时将彻底的删除上面存在的文件.
edit_fsck=修复文件系统
edit_fsckmsg=如果您的系统不是正常关闭,可调用$1程序来修复文件系统，从而使该文件系统能够被安装上.
edit_tune=调整文件系统
edit_tunemsg=允许您修改已有文件系统的各种参数

mkfs_title=新文件系统
mkfs_ecannot=你没有在该磁盘上建立新的文件系统的权限
mkfs_desc1=点击框下的按钮将在设备$2上建立一个新的$1文件系统.分区上的所有数据都会被彻底删除.  
 
mkfs_desc2=分区已经以 $2 方式安装到$1上，创建一个新的文件系统将会删除当前可存取目录下面的所有文件.
 
mkfs_options=文件系统选项
mkfs_create=创建文件系统
mkfs_err=创建文件系统失败
mkfs_exec=执行命令$1...
mkfs_failed=..命令运行错误!
mkfs_ok=..命令运行结束.

fsck_title=修复文件系统
fsck_ecannot=你没有用fsck修复该磁盘的权限
fsck_desc1=点击<tt>修复文件系统</tt>按钮可以尽量修复 $2 上已损坏的文件系统 $1, 它将要安装到 $3 上.如果文件系统没有遭到损坏，系统将不会有任何改变.
fsck_desc2=使用命令 $1 可以进行文件系统修复,该命令将试着修复每一个发现的问题.要想进一步控制文件系统,使用命令 $2 ,在 UNIX 提示符下以交互模式手工恢复.
fsck_repair=修复文件系统
fsck_exec=执行命令 $1..
fsck_err0=没有发现任何错误
fsck_err1=发现错误并纠正
fsck_err3=发现错误并纠正--需要从新启动机器
fsck_err4=发现错误但没有纠正
fsck_err16=命令行错误
fsck_unknown=未知的返回代码$1

tunefs_title=调整文件系统	
tunefs_ecannot=你没有调整该文件系统的权限
tunefs_desc=该窗口允许你调整将要加载在 $3上的 $2 上文件系统 $1 的不同参数.$1上的任何文件不会受到影响.
tunefs_params=调整参数
 
tunefs_tune=调整文件系统
tunefs_c=测试间隙
tunefs_e=调整错误
tunefs_continue=继续
tunefs_remount=只读安装
tunefs_panic=不可理解的错误
tunefs_u=保留用户
tunefs_g=保留组
tunefs_m=保留块
tunefs_i=测试间隔时间
tunefs_days=天
tunefs_weeks=星期
tunefs_months=月
tunefs_err=调整文件系统失败
tunefs_exec=执行命令 $1...
tunefs_failed=..命令失败!
tunefs_ok=..命令结束.

reboot_title=重启计算机
reboot_msg=现在正在重启..
reboot_ok=现在重启
reboot_why=你已经修改了$1上的分区表.为使修改生效，你的系统必需重新启动.
save_err=保存分区失败
save_ecannot=你没有修改该文件系统的权限
save_estart='$1'不是一个有效的开始柱面
save_eend='$1'不是一个有效的结束柱面
save_emin=开始柱面大小必须大于或者等于$1
save_emax=结束柱面大小必须小于或者等于$1
save_eminmax=开始柱面大小必须小于结束柱面
save_eoverlap=用分区 $1( $2 到 $3)交替检测
ext2_b=块大小
ext2_f=碎片大小
ext2_i=每个inode字节数
ext2_m=保留块
ext2_g=每组块数
ext2_c=是否检测坏块?

msdos_f=FAT文件系统数目
msdos_F=FAT大小
msdos_i=卷标标识号
msdos_n=卷标名称
msdos_r=根项数
msdos_s=簇大小
msdos_c=是否检测坏块?

minix_n=文件名长度
minix_i=节点数目
minix_b=块数目
minix_c=是否检测坏块?

acl_disks=该用户能够分区和格式化磁盘
acl_dall=所有磁盘
acl_dsel=选择..

hdparm_title=修改 IDE 参数
hdparm_on=开
hdparm_off=关
hdparm_label=IDE 驱动器设置
hdparm_conf_X=传输模式
hdparm_conf_X_defaut=缺省模式
hdparm_conf_X_disable=关闭 IORDY
hdparm_conf_d=使用内存直接存取(DMA)	
hdparm_conf_a=扇区计数
hdparm_conf_A=预读(Read-lookahead)
hdparm_conf_W=写缓存
hdparm_conf_u=中断掩码
hdparm_conf_k=复位后保留特性
hdparm_conf_K=复位后保留设置
hdparm_conf_r=只读
hdparm_conf_P=可编程的最佳 PIO
hdparm_conf_S=待命超时
hdparm_conf_c=32位 I/O 支持
hdparm_conf_m=多扇区 I/O 的扇区计算
hdparm_disable=禁用
hdparm_enable=允许
hdparm_enable_special=使磁盘同步序列号有效
hdparm_apply=应用于驱动器
hdparm_speed=测试速度
hdparm_performing=执行
hdparm_buf1=缓存:
hdparm_buf2=磁盘缓存:
hdparm_speedres=速度测试结果

log_modify=修改 $1
log_create=创建 $1
log_delete=删除 $1
log_mkfs=在 $2 上创建文件系统 $1
log_tunefs=在 $2 上调整文件系统 $1
log_fsck=修复 $2 上的文件系统 $1
log_hdparm=修改 $1 的 IDE 参数
   07070100049896000081a40000000000000002000000013ac038910000125d000000200000000000000000000000000000001c00000003reloc/fdisk/lang/zh_TW.Big5   index_title=合盒だ澄跋恨瞶
index_err=合盒ア毖
index_disk=合盒
index_parts=だ澄跋
index_location=竚
index_cylinders=Cylinders
index_model=腹
index_raid=合盒皚单 (RAID)
index_controller=北竟
index_scsiid=ヘ夹
index_none=тぃだ澄跋
index_num=絪腹
index_type=摸
index_extent=絛瞅
index_start=癬翴
index_end=沧翴
index_addpri=糤璶だ澄跋 (primary)
index_addlog=糤呸胯だ澄跋 (logical)
index_addext=糤┑だ澄跋 (extended)
index_hdparm=絪胯 IDE 把计
index_return=合盒

extended=┑だ澄跋
opt_default=箇砞
opt_error='$1' ぃ琌Τ $2
select_device=$1 合盒 $2
select_part=$1 合盒 $2 だ澄跋 $3
select_fd=硁盒 $1
select_mylex=Mylex 合盒皚 $1 合盒 $2
select_mpart=Mylex 合盒皚 $1 合盒 $2 だ澄跋 $3

edit_title=絪胯だ澄跋
create_title=ミだ澄跋
edit_ecannot=眤ぃ砆す砛絪胯硂合盒
edit_details=だ澄跋冈灿戈
edit_location=竚
edit_device=砞称北郎
edit_type=摸
edit_extent=絛瞅
edit_status=篈
edit_mount=本更 $1  $2
edit_umount=ノ本更 $1  $2
edit_mountvm=店览癘拘砰本更
edit_umountvm=ノ本更Θ店览癘拘砰
edit_mountraid=合盒皚 $1 场だ
edit_notexist=﹟ゼミ
edit_notused=ぃㄏノい
edit_size=
edit_blocks=$1 跋遏
edit_inuse=硂だ澄跋礚猭砆跑, ウタ砆ㄏノい
edit_mkfs=ミ穝郎╰参
edit_fsck=確郎╰参
edit_fsckmsg=㊣ $1 祘Α確硂郎╰参, 礛硂郎╰参砆本更. 狦眤⊿Τタ絋闽诀杠, 硂笆盢琌ゲ璶.
edit_tune=秸俱郎╰参
edit_tunemsg=す砛眤跑郎╰参闽把计.

mkfs_title=穝糤郎╰参
mkfs_ecannot=眤ぃ砆す砛硂合盒ミ穝郎╰参
mkfs_desc1=硂虫┏场秙盢穦ミ穝 $1 郎╰参合盒 $2 . ┮Τ硂郎╰参郎盢穦砆ッ埃.
mkfs_desc2=硂だ澄跋竒砆本更 $1  $2. ミ穝郎╰参盢穦埃┮Τぇ玡郎.
mkfs_options=郎╰参匡兜
mkfs_create=ミ郎╰参
mkfs_err=ミ郎╰参ア毖
mkfs_exec=磅︽㏑ $1 い...
mkfs_failed=... ㏑ア毖!
mkfs_ok=... ЧΘ.

fsck_title=確郎╰参
fsck_ecannot=眤ぃ砆す砛硂合盒磅︽ fsck
fsck_desc1=<tt>確郎╰参</tt>秙盢穦確穕胊 $1 郎╰参 $2 , ノ本更 $3. 狦郎╰参⊿Τ穕胊, 盢ぃ穦Τヴ跑.
fsck_desc2=郎╰参確盢穦パ㏑ $1 ЧΘ, 硂盢笆確ヴ祇瞷拜肈. 狦眤辨︽北郎╰参確, 叫 Unix ╰弗ずも笆磅︽ $2 ㏑.
fsck_repair=確郎╰参
fsck_exec=磅︽㏑ $1 い...
fsck_err0=⊿Τтヴ岿粇
fsck_err1=т岿粇タЧ拨
fsck_err3=т岿粇タЧ拨 - 惠璶穝秨诀
fsck_err4=т岿粇, 礚猭確
fsck_err16=㏑︽岿粇
fsck_unknown=ゼ肚 $1

tunefs_title=秸俱郎╰参
tunefs_ecannot=眤ぃ砆す砛秸俱郎╰参
tunefs_desc=硂虫琵眤秸俱$1 郎╰参 $2 , ノ本更 $3 闽匡兜. 瞷郎╰参郎盢ぃ穦紇臫.
tunefs_params=秸俱把计
tunefs_tune=秸俱郎╰参
tunefs_c=浪琩丁禯
tunefs_e=祇ネ岿粇笆
tunefs_continue=膥尿ㄏノ
tunefs_remount=斑弄本更
tunefs_panic=牡
tunefs_u=玂痙ㄏノ
tunefs_g=玂痙竤舱
tunefs_m=玂痙跋遏
tunefs_i=浪琩丁丁筳
tunefs_days=ら
tunefs_weeks=㏄
tunefs_months=る
tunefs_err=秸俱郎╰参ア毖
tunefs_exec=磅︽㏑ $1 い...
tunefs_failed=... ㏑ア毖!
tunefs_ok=... ㏑ЧΘ.

reboot_title=穝币笆╰参
reboot_msg=穝币笆い...
reboot_ok=ミㄨ穝币笆╰参
reboot_why=眤竒跑 $1 だ澄跋. 璶琵硂跑タ絋玻ネ狦, 眤ゲ斗璶穝币笆╰参.

save_err=纗だ澄跋ア毖
save_ecannot=眤ぃ砆す砛絪胯硂合盒
save_estart='$1' ぃ琌Τ癬翴 cylinder 
save_eend='$1' ぃ琌Τ沧翴 cylinder 
save_emin=癬翴 cylinder ゲ斗 >= $1
save_emax=沧翴 cylinder ゲ斗 <= $1
save_eminmax=癬翴 cylinder ゲ斗ゑ沧翴 cylinder 
save_eoverlap=だ澄跋 $1 祇瞷舼($2 籔 $3)

ext2_b=跋遏
ext2_f=窰
ext2_i=–竊翴じ舱
ext2_m=玂痙跋遏
ext2_g=–竤舱跋遏
ext2_c=琌浪琩穕胊跋遏?

msdos_f=FAT 计ヘ
msdos_F=FAT 
msdos_i=纗砰絪腹
msdos_n=纗砰嘿
msdos_r=ヘ魁秈翴
msdos_s=Cluster 
msdos_c=琌浪琩穕胊跋遏?

minix_n=郎
minix_i=竊翴计
minix_b=跋遏计
minix_c=琌浪琩穕胊跋遏?

acl_disks=硂ㄏノだ澄籔Αて合盒

hdparm_title=絪胯 IDE 把计
hdparm_on=秨
hdparm_off=闽
hdparm_label=IDE 砞称砞﹚
hdparm_conf_X=肚块家Α
hdparm_conf_X_defaut=箇砞家Α
hdparm_conf_X_disable=闽超 IORDY
hdparm_conf_d=ㄏノ钡癘拘砰
hdparm_conf_a=合跋璸计
hdparm_conf_A=箇弄
hdparm_conf_W=糶е
hdparm_conf_u=い耞綛竛
hdparm_conf_k=砞玂痙
hdparm_conf_K=砞玂痙砞﹚
hdparm_conf_r=斑弄
hdparm_conf_P=穝砞﹚程ㄎ PIO
hdparm_conf_S=㏑筄
hdparm_conf_c=32 じ I/O や穿
hdparm_conf_m=合跋块合跋璸计
hdparm_disable=闽超
hdparm_enable=ㄏノ
hdparm_enable_special=ㄏノ疭˙抖
hdparm_apply=甅ノ砞称
hdparm_speed=代刚硉
hdparm_performing=箇Αて
hdparm_buf1=絯侥戈:
hdparm_buf2=絯侥跋е:
hdparm_speedres=硉代刚挡狦
   070701000425ab000081a40000000000000002000000013ac0389100000535000000200000000000000000000000000000001a00000003reloc/fdisk/log_parser.pl # log_parser.pl
# Functions for parsing this module's logs

require './fdisk-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p) = @_;
if ($type eq 'part') {
	return &text("log_${action}", &part_name2($object, $p->{'np'}));
	}
elsif ($action eq 'mkfs' || $action eq 'tunefs' || $action eq 'fsck') {
	return &text("log_${action}", "<tt>".uc($p->{'type'})."</tt>",
		     &part_name($object));
	}
elsif ($action eq 'hdparm') {
	return &text('log_hdparm', &device_name($object));
	}
else {
	return undef;
	}
}

sub part_name2
{
return $_[0] =~ /^\/dev\/(s|h)d([a-z])$/ ?
	&text('select_part', $1 eq 's' ? 'SCSI' : 'IDE', uc($2), $_[1]) :
       $_[0] =~ /rd\/c(\d+)d(\d+)$/ ?
	&text('select_mpart', "$1", "$2", $_[1]) :
	$_[0];
}

sub part_name
{
return $_[0] =~ /^\/dev\/(s|h)d([a-z])(\d+)$/ ?
	&text('select_part', $1 eq 's' ? 'SCSI' : 'IDE', uc($2), "$3") :
       $_[0] =~ /rd\/c(\d+)d(\d+)p(\d+)$/ ?
	&text('select_mpart', "$1", "$2", "$3") :
	$_[0];
}

sub device_name
{
return $_[0] =~ /^\/dev\/(s|h)d([a-z])$/ ?
	&text('select_device', $1 eq 's' ? 'SCSI' : 'IDE', uc($2)) :
       $_[0] =~ /rd\/c(\d+)d(\d+)$/ ?
	&text('select_mylex', "$1", "$2") :
	$_[0];
}
   070701000425ac000081e40000000000000002000000013ac03890000000d2000000200000000000000000000000000000001900000003reloc/fdisk/make_tags.pl  #!/usr/bin/perl

while(<STDIN>) {
	s/\s/ /g;
	$list .= $_;
	}

while($list =~ /^\s*([a-z0-9]{1,2})\s+(.{15})(.*)$/) {
	$code = $1; $name = $2; $list = $3;
	$name =~ s/\s+$//;
	print "'$code' => '$name',\n";
	}
  070701000425ad000081e40000000000000002000000013ac03890000003a6000000200000000000000000000000000000001500000003reloc/fdisk/mkfs.cgi  #!/usr/local/bin/perl
# mkfs.cgi
# Where the new filesystem actually gets created.

require './fdisk-lib.pl';
&foreign_require("proc", "proc-lib.pl");
$has_e2label = &has_command("e2label");

&ReadParse();
&can_edit_disk($in{'dev'}) || &error($text{'mkfs_ecannot'});
&error_setup($text{'mkfs_err'});
$cmd = &mkfs_parse($in{type}, $in{dev});
&header($text{'mkfs_title'}, "");
print "<hr>\n";

if (&has_command("e2label") && $in{type} eq 'ext2') {
	chop($label = `e2label $in{dev} 2>/dev/null`);
	}

print &text('mkfs_exec', "<tt>$cmd</tt>"),"<p>\n";
print "<pre>\n";
&foreign_call("proc", "safe_process_exec_logged",
	      $cmd, 0, 0, STDOUT, undef, 1, 1);
print "</pre>\n";

if ($?) { print "<b>$text{'mkfs_failed'}</b> <p>\n"; }
else { print "$text{'mkfs_ok'} <p>\n"; }
if ($label) {
	&system_logged("e2label $in{dev} '$label'");
	}
&webmin_log("mkfs", undef, $in{'dev'}, \%in);

print "<hr>\n";
&footer("", $text{'index_return'});
  070701000425ae000081e40000000000000002000000013ac038900000041e000000200000000000000000000000000000001a00000003reloc/fdisk/mkfs_form.cgi #!/usr/local/bin/perl
# newfs_form.cgi
# Display a form asking for the parameters of a new filesystem

require './fdisk-lib.pl';
&ReadParse();
&can_edit_disk($in{'dev'}) || &error($text{'mkfs_ecannot'});
&header($text{'mkfs_title'}, "");
print "<hr>\n";

print "<form action=mkfs.cgi>\n";
print "<input type=hidden name=dev value=\"$in{dev}\">\n";
print "<input type=hidden name=type value=\"$in{type}\">\n";

print &text('mkfs_desc1', "<b>".&fstype_name($in{type})."</b>",
	    "<b><tt>$in{dev}</tt></b>"),"<p>\n";

if ((@stat = &device_status($in{dev})) && $stat[1] ne "swap") {
	print &text('mkfs_desc2', "<tt>$stat[0]</tt>",
		    &fstype_name($in{type})),"<p>\n";
	}

print "<table border width=100%>\n";
print "<tr $tb><td><b>$text{'mkfs_options'}</b></td> </tr>\n";
print "<tr $cb><td><table width=100%>\n";
&mkfs_options($in{type});
print "</table></td></tr></table><br>\n";

print "<div align=right>\n";
print "<input type=submit value=\"$text{'mkfs_create'}\"></form>\n";
print "</div>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

  070701000425af000081a40000000000000002000000013ac038900000023b000000200000000000000000000000000000001800000003reloc/fdisk/module.info   name=Partition Manager
desc_pt=Parti珲es em Discos Locais
depends=mount proc raid
desc_tr=Yerel Diskteki B鰈黰ler
desc_fr=Partition sur Disque Local
desc_es=Particiones en Discos Locales
desc_de=Festplatten-Partitionen
desc_sv=Partitionshanterare
desc_ru_SU=砼闻闹乓 蛄谀盘献
desc_pl=Partycje na lokalnych dyskach
category=hardware
os_support=redhat-linux slackware-linux debian-linux suse-linux open-linux turbo-linux corel-linux cobalt-linux
desc_zh_TW.Big5=合盒だ澄跋恨瞶
desc=Partitions on Local Disks
risk=high
desc_zh_CN=本地磁盘分区
desc_ru_RU=体礤滏屦 朽玟咫钼
 070701000425b0000081e40000000000000002000000013ac038900000010f000000200000000000000000000000000000001700000003reloc/fdisk/reboot.cgi    #!/usr/local/bin/perl
# reboot.cgi
# Reboot the system after changing partitions

require './fdisk-lib.pl';
&header($text{'reboot_title'}, "");
print "<hr>\n";
print "<h3>$text{'reboot_msg'}</h3>\n";
print "<hr>\n";
&footer("", $text{'index_return'});
system("reboot");

 070701000425b1000081e40000000000000002000000013ac0389000000a87000000200000000000000000000000000000001a00000003reloc/fdisk/save_part.cgi #!/usr/local/bin/perl
# save_part.cgi
# Save changes to an existing or new partition

require './fdisk-lib.pl';
&error_setup($text{'save_err'});
&ReadParse();

@dlist = &list_disks();
$dinfo = $dlist[$in{'disk'}];
&can_edit_disk($dinfo->{'device'}) ||
	&error($text{'save_ecannot'});
@plist = &list_partitions($dinfo->{'device'});
if ($in{'delete'}) {
	# deleting a partition
	$pinfo = $plist[$in{'part'}];
	&delete_partition($dinfo->{'device'}, $pinfo->{'number'});
	&webmin_log("delete", "part", $dinfo->{'device'}, \%in);
	&redirect("");
	}
elsif (!$in{'new'}) {
	# changing existing partition
	$pinfo = $plist[$in{'part'}];
	&change_type($dinfo->{'device'}, $pinfo->{'number'}, $in{'type'});
	if (defined($in{'label'}) && $in{'type'} eq '83') {
		&system_logged("e2label $pinfo->{'device'} '$in{'label'}'");
		}
	&webmin_log("modify", "part", $dinfo->{'device'}, \%in);
	&redirect("");
	}
else {
	# Adding new partition
	$in{start} =~ /^\d+$/ ||
		&error(&text('save_estart', $in{'start'}));
	$in{end} =~ /^\d+$/ ||
		&error(&text('save_eend', $in{'end'}));
	$in{start} >= $in{'min'} ||
		&error(&text('save_emin', $in{'min'}));
	$in{end} <= $in{'max'} ||
		&error(&text('save_emax', $in{'max'}));
	$in{start} < $in{end} ||
		&error($text{'save_eminmax'});

	# Check for partition overlap..
	foreach $pinfo (@plist) {
		if (($in{'start'} >= $pinfo->{'start'} &&
		     $in{'start'} <= $pinfo->{'end'} ||
		     $in{'end'} >= $pinfo->{'start'} &&
		     $in{'end'} <= $pinfo->{'end'}) &&
		     !($in{'new'}==2 && $pinfo->{'extended'})) {
			&error(&text('save_eoverlap', $pinfo->{'number'},
				     $pinfo->{'start'}, $pinfo->{'end'}));
			}
		}
	if ($in{'new'} == 3) {
		&create_extended($dinfo->{'device'}, $in{'newpart'},
				$in{'start'}, $in{'end'});
		&webmin_log("create", "part", $dinfo->{'device'}, \%in);
		}
	else {
		&create_partition($dinfo->{'device'}, $in{'newpart'},
				  $in{'start'}, $in{'end'}, $in{'type'});
		if ($in{'label'} && $in{'type'} eq '83') {
			local $dev = $dinfo->{'prefix'}.$in{'newpart'};
			&system_logged("e2label $dev '$in{'label'}'");
			}
		&webmin_log("create", "part", $dinfo->{'device'}, \%in);
		}
	if (&need_reboot($dinfo)) { &ask_reboot($dinfo); }
	else { &redirect(""); }
	}

# ask_reboot(disk)
# Display a form asking for a reboot
sub ask_reboot
{
&header($text{'reboot_title'}, "");
print "<hr>\n";
local $what = &text('select_device', uc($_[0]->{'type'}),
		    uc(substr($_[0]->{'device'}, -1)));
print "<b>",&text('reboot_why', $what),"</b> <p>\n";
print "<form action=reboot.cgi>\n";
print "<center><input type=submit value=\"$text{'reboot_ok'}\"></center>\n";
print "</form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});
}

 070701000425b2000081e40000000000000002000000013ac03890000002ac000000200000000000000000000000000000001700000003reloc/fdisk/tunefs.cgi    #!/usr/local/bin/perl
# tunefs.cgi
# Do the tuning of a filesystem

require './fdisk-lib.pl';
&ReadParse();
&can_edit_disk($in{'dev'}) || &error($text{'tunefs_ecannot'});
&error_setup($text{'tunefs_err'});
$cmd = &tunefs_parse($in{type}, $in{dev});
&header($text{'tunefs_title'}, "");
print "<hr>\n";

print &text('tunefs_exec', "<tt>$cmd</tt>"),"<p>\n";
print "<pre>\n";
&foreign_call("proc", "safe_process_exec_logged",
	      $cmd, 0, 0, STDOUT, undef, 1);
print "</pre>\n";
if ($?) { print "<b>$text{'tunefs_failed'}</b><p>\n"; }
else { print "<b>$text{'tunefs_ok'}</b><p>\n"; }
&webmin_log("tunefs", undef, $in{'dev'}, \%in);

print "<hr>\n";
&footer("", $text{'index_return'});
070701000425b3000081e40000000000000002000000013ac03890000003aa000000200000000000000000000000000000001c00000003reloc/fdisk/tunefs_form.cgi   #!/usr/local/bin/perl
# tunefs_form.cgi
# Display a form asking for filesystem tuning parameters

require './fdisk-lib.pl';
&can_edit_disk($in{'dev'}) || &error($text{'tunefs_ecannot'});
&header($text{'tunefs_title'}, "");
print "<hr>\n";
&ReadParse();

print "<form action=tunefs.cgi>\n";
print "<input type=hidden name=dev value=\"$in{dev}\">\n";
print "<input type=hidden name=type value=\"$in{type}\">\n";

@stat = &device_status($in{dev});
print &text('tunefs_desc', &fstype_name($in{type}), "<tt>$in{dev}</tt>",
	    "<tt>$stat[1]</tt>"),"<p>\n";

print "<table border width=100%>\n";
print "<tr $tb><td><b>$text{'tunefs_params'}</b></td> </tr>\n";
print "<tr $cb><td><table width=100%>\n";
&tunefs_options($in{type});
print "</table></td></tr></table><br>\n";

print "<div align=right>\n";
print "<input type=submit value=\"$text{'tunefs_tune'}\"></form>\n";
print "</div>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

  0707010004afb2000041ed0000000000000001000000043ac03beb00000000000000200000000000000000000000000000000b00000003reloc/file    0707010004afcb000081a40000000000000002000000013ac038a0000005a6000000200000000000000000000000000000001d00000003reloc/file/BorderPanel.class  漱壕  - J - > ? @ A B C D
  
  	  	  	  	  
  	  
  
  
   	  !	  " , % , ' 7 4 8 2 9 4 : 4 ; ' < 2 E + F ) G # H 4 I 2 ()Ljava/awt/Dimension; ()Ljava/awt/Insets; ()V (I)V (IIII)V $(ILjava/awt/Color;Ljava/awt/Color;)V (Ljava/awt/Color;)V #(Ljava/awt/Color;Ljava/awt/Color;)V (Ljava/awt/Graphics;)V <init> BorderPanel BorderPanel.java Code ConstantValue 
Exceptions I LineNumberTable Ljava/awt/Color; LocalVariables 
SourceFile black border col1 col2 drawLine height insets java/awt/Color java/awt/Component java/awt/Container java/awt/Dimension java/awt/Graphics java/awt/Insets java/awt/Panel paint setColor size white width          8 2     9 4     : 4      , %  /   @     * 	* *  *      3       	   	     	   , &  /   I     * 	* *  *  *     3          	          , (  /   W     '* 	* *  *  * *, *-     3          	        &    , *  /   N     "* 	* *  *  *+ *,     3          	      !   = $  /   8       Y* `* `* `* ` 
    3         E +  /        *+ *  d=*  d>+*  6 "+d +d * +*  6 *+ddd +ddd * 颖    3   6    $  %  & ! ' ' ( 5 ) C ' O + W , ] - o .  ,  "  6    .  0707010004afcd000081e40000000000000002000000013ac038a0000002fd000000200000000000000000000000000000001c00000003reloc/file/BorderPanel.java   import java.awt.*;

class BorderPanel extends Panel
{
	int border = 5;	// size of border
	Color col1 = Color.white;
	Color col2 = Color.black;

	BorderPanel()
	{
	}

	BorderPanel(int w)
	{
	border = w;
	}

	BorderPanel(int w, Color c1, Color c2)
	{	
	border = w;
	col1 = c1; col2 = c2;
	}

	BorderPanel(Color c1, Color c2)
	{
	col1 = c1; col2 = c2;
	}

	public Insets insets()
	{
	return new Insets(border+2, border+2, border+2, border+2);
	}

	public void paint(Graphics g)
	{
	super.paint(g);
	int w = size().width-1, h = size().height-1;
	g.setColor(col1);
	for(int i=0; i<border; i++) {
		g.drawLine(i,i,w-i,i);
		g.drawLine(i,i,i,h-i);
		}
	g.setColor(col2);
	for(int i=0; i<border; i++) {
		g.drawLine(w-i,h-i, w-i,i);
		g.drawLine(w-i,h-i, i,h-i);
		}
	}
}

   0707010004b0a8000081a40000000000000002000000013ac038a0000012fd000000200000000000000000000000000000001a00000003reloc/file/CbButton.class 漱壕  -                         
 	 E
  F
 
 G
  H
  I	 
 J	  K  L	 
 M
  N
  O
  P	  Q
  R	  S
  T
  U
  V
  W	  X	  Y	  Z	  [	  \	  ]	  ^
  _	  `	  a	  b	  c	  d	  e	  f	 
 g
  h
  i	  j
  k	  l
  m
  n
  o	  p
  q
  r
  s	  t
  u	  v	  w	 
 x	  y  |                              z  z                    ~                  }      {    |  |          {             ()I ()Ljava/awt/Dimension; ()V (II)I (II)Ljava/awt/Dimension; (II)V (III)V (IIII)V (LCbButton;)V (LCbButtonGroup;)V (Ljava/awt/Color;)V (Ljava/awt/Event;II)Z (Ljava/awt/Font;)V (Ljava/awt/Graphics;)V (Ljava/awt/Image;)I (Ljava/awt/Image;)V 5(Ljava/awt/Image;IIIILjava/awt/image/ImageObserver;)Z %(Ljava/awt/Image;LCbButtonCallback;)V &(Ljava/awt/Image;Ljava/lang/String;I)V 8(Ljava/awt/Image;Ljava/lang/String;ILCbButtonCallback;)V (Ljava/lang/String;)I (Ljava/lang/String;)V (Ljava/lang/String;II)V '(Ljava/lang/String;LCbButtonCallback;)V <init> ABOVE BELOW CbButton CbButton.java CbButtonCallback CbButtonGroup Code ConstantValue 
Exceptions I LCbButtonCallback; LCbButtonGroup; LEFT LineNumberTable Ljava/awt/Color; Ljava/awt/Font; Ljava/awt/FontMetrics; Ljava/awt/Image; Ljava/lang/String; LocalVariables RIGHT 
SourceFile Util Z add black callback click darkGray 	drawImage drawLine 
drawString f fillRect fnm 
getDescent 	getHeight getWidth group hc1 hc2 hc3 height iheight image imgSize imode indent inside iwidth java/awt/Canvas java/awt/Color java/awt/Component java/awt/Dimension java/awt/FontMetrics java/awt/Graphics java/lang/Math lc1 lc2 lc3 	lightGray max minimumSize 	mouseDown 
mouseEnter 	mouseExit mouseUp paint pheight preferredSize pwidth repaint select selected setColor setFont setGroup setImage setImageText setText size string stringWidth theight twidth update white width !  	                                                                                                                                                                        %     	*+,        
              %     	*+,        
                  :* * C /* 2 0*  1* C $* 
Y   曳  %*  &*+ )*, ?* +* * ) ** ) " .** ) ! (* ? * * ? @ B*    A* ) p* ? i* +                    @   @** .* B`` 7** (* A 3` 5** .* B 3` 7** (* A`` 5* ) ** .` 7** (` 5* ? ** B` 7** A` 5       z    #     4  ; % @ & E ' J ( P ) W * b + m - t .  /  1  2  5  6  7  :  ;  <  ? @ A ? C# D. E9 #        .     *+ #* #*            N  O  L   |     0     * # * #* :           V  W  T        S     '*+ ?* )* * ? @ B*    A* 8           ^  _ 
 `  a " b & \        Q     %* ?*+ )** ) " .** ) ! (* 8           i  j 
 k  l   m $ g        z     B*+ )*, ?* +* * ? @ B*    A** ) " .** ) ! (* 8       & 	   t  u 
 v  w  x ' y 2 z = { A r       2  
  V* - 
* $ * /M* - 
* % * 0N* - 
* & * 1:* > D6* > '6* , 
* ;  ,:* , 
* ; , :+- <+dd + <+d +d + <+ddd +ddd * - ++ <+ddd +ddd + <+  =* ) * ? * + x** Bddd *:	+* )	 Dd* Bddl	 'dl	 D	 '* W+* ?	 Dd* Bddl	 D``* A`  dl * + * + +* )* .dl* (d* Addl* .* (* W+* ?* Bdl* (   `` * ) :*dd *:	+* )	 Ddl	 'dl	 D	 '* W* ? $+* ?* Bdl* A`  dl         2      &  :  L  b  x  }                            4 J _ c h                ( , - 4 B R U ~             *+ 4                   +     * -* 8              	         +     * -* 8              	         +     * ,* 8              	         n     > 2 .* > D #* > ' *  * *  * 9* ,* 8              %  /  3  8  <    {     (      Y* 7* 5               {          * 6              ~     n     F* .唍F* (唍8%枩 % 8暈 8 Y* .j* (j嫹             	    "  ,          0707010004b0da000081a40000000000000002000000013ac038a000001543000000200000000000000000000000000000001900000003reloc/file/CbButton.java  import java.awt.*;
import java.util.*;

public class CbButton extends Canvas
{
	public static final int LEFT = 0;
	public static final int RIGHT = 1;
	public static final int ABOVE = 2;
	public static final int BELOW = 3;

	Image image;
	String string;
	CbButtonCallback callback;
	int imode;
	int iwidth, iheight, pwidth, pheight, twidth, theight;
	boolean inside, indent;

	CbButtonGroup group;
	boolean selected;

	Color lc1 = Color.white, lc2 = Color.lightGray, lc3 = Color.black;
	Color hc1 = Color.white, hc2 = new Color(210, 210, 210),
	      hc3 = Color.darkGray;

	public CbButton(Image i, CbButtonCallback cb)
	{
	this(i, null, LEFT, cb);
	}

	public CbButton(String s, CbButtonCallback cb)
	{
	this(null, s, LEFT, cb);
	}

	public CbButton(Image i, String s, int im, CbButtonCallback cb)
	{
	image = i;
	string = s;
	imode = im;
	callback = cb;
	if (image != null) {
		iwidth = Util.getWidth(image);
		iheight = Util.getHeight(image);
		}
	if (string != null) {
		twidth = Util.fnm.stringWidth(string);
		theight = Util.fnm.getHeight();
		}
	if (image != null && string != null) {
		switch(imode) {
		case LEFT:
		case RIGHT:
			pwidth = iwidth + twidth + 6;
			pheight = Math.max(iheight , theight) + 4;
			break;
		case ABOVE:
		case BELOW:
			pwidth = Math.max(iwidth, twidth) + 4;
			pheight = iheight + theight + 6;
			break;
			}
		}
	else if (image != null) {
		pwidth = iwidth + 4;
		pheight = iheight + 4;
		}
	else if (string != null) {
		pwidth = twidth + 8;
		pheight = theight + 8;
		}
	}

	/**Make this button part of a mutual-exclusion group. Only one such
	 * button can be indented at a time
	 */
	public void setGroup(CbButtonGroup g)
	{
	group = g;
	group.add(this);
	}

	/**Make this button the selected one in it's group
	 */
	public void select()
	{
	if (group != null)
		group.select(this);
	}

	/**Display the given string
	 */
	public void setText(String s)
	{
	string = s;
	image = null;
	twidth = Util.fnm.stringWidth(string);
	theight = Util.fnm.getHeight();
	repaint();
	}

	/**Display the given image
	 */
	public void setImage(Image i)
	{
	string = null;
	image = i;
	iwidth = Util.getWidth(image);
	iheight = Util.getHeight(image);
	repaint();
	}

	/**Display the given image and text, with the given alignment mode
	 */
	public void setImageText(Image i, String s, int m)
	{
	image = i;
	string = s;
	imode = m;
	twidth = Util.fnm.stringWidth(string);
	theight = Util.fnm.getHeight();
	iwidth = Util.getWidth(image);
	iheight = Util.getHeight(image);
	repaint();
	}

	public void paint(Graphics g)
	{
	Color c1 = inside ? hc1 : lc1,
	      c2 = inside ? hc2 : lc2,
	      c3 = inside ? hc3 : lc3;
	int w = size().width, h = size().height;
	Color hi = indent||selected ? c3 : c1,
	      lo = indent||selected ? c1 : c3;
	g.setColor(c2);
	g.fillRect(0, 0, w-1, h-1);
	g.setColor(hi);
	g.drawLine(0, 0, w-2, 0);
	g.drawLine(0, 0, 0, h-2);
	g.setColor(lo);
	g.drawLine(w-1, h-1, w-1, 1);
	g.drawLine(w-1, h-1, 1, h-1);
	if (inside) {
		/* g.setColor(hi);
		g.drawLine(1, 1, w-3, 1);
		g.drawLine(1, 1, 1, h-3); */
		g.setColor(lo);
		g.drawLine(w-2, h-2, w-2, 2);
		g.drawLine(w-2, h-2, 2, h-2);
		}

	g.setColor(c3);
	g.setFont(Util.f);
	if (image != null && string != null) {
		if (imode == LEFT) {
			Dimension is = imgSize(w-twidth-6, h-4);
			g.drawImage(image, (w - is.width - twidth - 2)/2,
				    (h-is.height)/2, is.width, is.height, this);
			g.drawString(string,
				     (w - is.width - twidth - 2)/2 +is.width +2,
				     (h + theight - Util.fnm.getDescent())/2);
			}
		else if (imode == RIGHT) {
			}
		else if (imode == ABOVE) {
			//Dimension is = imgSize(w-4, h-theight-6);
			g.drawImage(image, (w - iwidth)/2, 
				    (h - iheight - theight - 2)/2,
				    iwidth, iheight, this);
			g.drawString(string, (w - twidth)/2, iheight+Util.fnm.getHeight()+2);
			}
		else if (imode == BELOW) {
			}
		}
	else if (image != null) {
		Dimension is = imgSize(w-4, h-4);
		g.drawImage(image, (w - is.width)/2, (h-is.height)/2,
			    is.width, is.height, this);
		}
	else if (string != null) {
		g.drawString(string, (w - twidth)/2,
		                     (h+theight-Util.fnm.getDescent())/2);
		}
	}

	public void update(Graphics g) { paint(g); }

	public boolean mouseEnter(Event e, int x, int y)
	{
	inside = true;
	repaint();
	return true;
	}

	public boolean mouseExit(Event e, int x, int y)
	{
	inside = false;
	repaint();
	return true;
	}

	public boolean mouseDown(Event e, int x, int y)
	{
	indent = true;
	repaint();
	return true;
	}

	public boolean mouseUp(Event e, int x, int y)
	{
	if (x >= 0 && y >= 0 && x < size().width && y < size().height) {
		if (callback != null)
			callback.click(this);
		select();
		}
	indent = false;
	repaint();
	return true;
	}

	public Dimension preferredSize()
	{
	return new Dimension(pwidth, pheight);
	}

	public Dimension minimumSize()
	{
	return preferredSize();
	}

	private Dimension imgSize(int mw, int mh)
	{
	float ws = (float)mw/(float)iwidth,
	      hs = (float)mh/(float)iheight;
	float s = ws < hs ? ws : hs;
	if (s > 1) s = 1;
	return new Dimension((int)(iwidth*s), (int)(iheight*s));
	}
}


interface CbButtonCallback
{
	void click(CbButton b);
}


class CbButtonGroup
{
	Vector buttons = new Vector();

	void add(CbButton b)
	{
	buttons.addElement(b);
	}

	void select(CbButton b)
	{
	for(int i=0; i<buttons.size(); i++) {
		CbButton but = (CbButton)buttons.elementAt(i);
		but.selected = (b == but);
		but.repaint();
		}
	}
}

 0707010004b0db000081a40000000000000002000000013ac038a0000000f1000000200000000000000000000000000000002200000003reloc/file/CbButtonCallback.class 漱壕  -    	  (LCbButton;)V CbButton CbButton.java CbButtonCallback CbButtonGroup Code ConstantValue 
Exceptions LineNumberTable LocalVariables 
SourceFile click java/lang/Object                     0707010004b0dc000081a40000000000000002000000013ac038a0000002eb000000200000000000000000000000000000001f00000003reloc/file/CbButtonGroup.class    漱壕  - 3    , - .
  
  
  	  
  
  	  
     )  * $ +  /  1 ' 2  ()I ()V (I)Ljava/lang/Object; (LCbButton;)V (Ljava/lang/Object;)V <init> CbButton CbButton.java CbButtonCallback CbButtonGroup Code ConstantValue 
Exceptions LineNumberTable Ljava/util/Vector; LocalVariables 
SourceFile Z add 
addElement buttons 	elementAt java/awt/Component java/lang/Object java/util/Vector repaint select selected size          * $      (       %     	* 
+ 	    #   
         0       ^     2= $* 
  N-+-   - * 
 妆    #          # 1           0     * * Y  
    #             &     0707010004b0dd000081a40000000000000002000000013ac038a0000006fc000000200000000000000000000000000000001f00000003reloc/file/CbColorButton.class    漱壕  - q T Z o ] ^ m F E _ c < l @ Y X
  .
  5	  %	  -	  +
 
 1
  )
  3	  $
  ,
  4
  1
  '
  &	  2	  (
  /
  *	  0
  1 P i Q ? h p M L W ? k a f g O n = U B : \ J ; G d A k J R N 6 V k [ k I fillRect LineNumberTable ConstantValue CbColorButton.java 
LCbButton; createImage java/awt/Color add 
Exceptions Ljava/awt/Color; CbColorWindow LCbColorWindow; but 
SourceFile click CbButton java/awt/BorderLayout (II)Ljava/awt/Image; "(LCbColorWindow;Ljava/awt/Color;)V %(Ljava/awt/Image;LCbButtonCallback;)V ()V palette ()Ljava/awt/Graphics; getGraphics Ljava/awt/Image; pal g black swatch (LCbButton;)V Center <(Ljava/lang/String;Ljava/awt/Component;)Ljava/awt/Component; (IIII)V col CbColorWindowCallback java/awt/Panel java/awt/Component *(Ljava/awt/Color;LCbColorWindowCallback;)V repaint java/awt/Container Util CbButtonCallback Code %(Ljava/awt/Color;Ljava/util/Vector;)V LocalVariables java/util/Vector win #(LCbColorWindow;)Ljava/util/Vector; 	setLayout (Ljava/awt/LayoutManager;)V setColor Ljava/awt/Graphics; chosen <init> java/awt/Graphics java/awt/Image Ljava/util/Vector; CbColorButton (Ljava/awt/Color;)V     	     W ?     B :     O n     R N     P i     d A      k p  `   )     *+ 
Y      7   
         k a  `        c* *    **   +  L*+ * *  *   * Y # !** Y* * Z  W    7   & 	          "  '  ?  J  b   D S  `   8     * " * Y* *  "    7          !    j H  `   Z     ., '*, * *  *   *  * "    7       &  ' 	 ( ! ) ( + - $  K e  `        *     7       0  C    90707010004b0de000081a40000000000000002000000013ac038a0000003b3000000200000000000000000000000000000001e00000003reloc/file/CbColorButton.java import java.awt.*;
import java.util.*;

/**A component for choosing a color
 */
public class CbColorButton extends Panel implements CbButtonCallback,
                                                    CbColorWindowCallback
{
	Color col;
	CbButton but;
	Vector pal;
	Image swatch = Util.createImage(32, 16);
	Graphics g = swatch.getGraphics();
	CbColorWindow win;

	CbColorButton(Color c)
	{
	this(c, new Vector());
	}

	CbColorButton(Color c, Vector p)
	{
	if (c == null) c = Color.black;
	col = c;
	g.setColor(col); g.fillRect(0, 0, 32, 16);
	setLayout(new BorderLayout());
	add("Center", but = new CbButton(swatch, this));
	}

	public void click(CbButton b)
	{
	if (win == null)
		win = new CbColorWindow(col, this);
	}

	public void chosen(CbColorWindow w, Color c)
	{
	if (c != null) {
		col = c;
		g.setColor(col); g.fillRect(0, 0, 32, 16);
		but.repaint();
		}
	win = null;
	}

	public Vector palette(CbColorWindow w)
	{
	return pal;
	}
}

 0707010004b0df000081a40000000000000002000000013ac038a000000f72000000200000000000000000000000000000001f00000003reloc/file/CbColorWindow.class    漱壕  -                            
  y
  	 
 o	 
 	 
 s
  
  `
  
  n
  q
  	 
 z
  
  	 
 
 	 i
 
 
  m	  {	 
 
  
    ^	  |	 
 	  e
  l	 
 
  _	  ~
  
  
  	  	  f	  	  g	  h  
  	  c	  b
  w
  k
  	  
  p
  	  }
 
 `
  t
  u	  
  r
  
  x
  w	  	 
 v
  	  	 
 a
  d
  j          
   
 
 
 
                                   

 
 
               
 
   
   
       	           java/awt/Color 
FixedFrame (IIII)V LCbColorWindowCube; <init> java/awt/Container 
addElement callback #(LCbColorWindow;)Ljava/util/Vector; 
SourceFile getRed darkGray *(Ljava/awt/Component;)Ljava/awt/Component; Cancel 
LCbButton; red %(Ljava/awt/Image;LCbButtonCallback;)V CbColorWindowSwatch 
Exceptions LineNumberTable pal black size 	updatePal repaint java/awt/GridLayout palbut equals palette CbSlider java/awt/Window "(LCbColorWindow;Ljava/awt/Color;)V java/util/Vector South getGraphics CbColorWindowCallback blue ccube *(Ljava/awt/Color;LCbColorWindowCallback;)V (LCbButton;)V (I)V dispose Util '(Ljava/lang/String;LCbButtonCallback;)V white (Ljava/lang/Object;)Z add (Ljava/awt/Color;)V (Ljava/lang/Object;)V isResizable magenta java/awt/Frame yellow (LCbColorWindow;)V setGroup curpal palimg click createImage North java/awt/Component ()Ljava/awt/Graphics; ()Z ()V (Ljava/awt/LayoutManager;)V show CbColorWindowCube CbColorWindow.java getGreen swatch java/awt/BorderLayout ()I orange setPosition pack Ok 
LCbSlider; getBlue 	setLayout CbButtonGroup (LCbButtonGroup;)V gray <(Ljava/lang/String;Ljava/awt/Component;)Ljava/awt/Component; Choose Color... col pink Center ok Ljava/util/Vector; CbButtonCallback 	GrayPanel [LCbButton; setColor select BorderPanel LCbColorWindowCallback; defpal java/awt/Graphics green java/awt/Image fillRect (Ljava/lang/String;)V (II)Ljava/awt/Image; CbButton ConstantValue java/awt/FlowLayout I LCbColorWindowSwatch; Code CbColorWindow setTitle cyan 	elementAt LocalVariables [Ljava/awt/Image; Ljava/awt/Color; (I)Ljava/lang/Object; <clinit> chosen cancel   
    
         
                	                                        
  * Y* 	 6*  ,* !*+ 9*, X** X* D   *   * 1   )*   I > *   1 + :> * 6 &S* .* Y *  Y <: Y H * Y* >Z ) /W* Y* >Z " /W* QW Y V: Y *  Y <: Y \  Y E:6 /* , Y* 62* U[S /W* ,2 26	 )+*  	 + 3 *	 !* ,	2 % 		 QW* Y* ]Z [ QW* QW* P* L* 8        .   #        %   & % ) 3 * : + A * D , N - S . a - j 1 o 2 | 3  1  7  8  9  :  ;  <  =  >  ?  @ A B C: DF BP FV Gf Hl Iv Jy F L M N P Q R #        ^     6* 62 -M,*   +  =, T* ,2 * ,2 (           W 
 X  Y # Z 5 U            +* ) * X** 9 4 * $+* " * O= e+* ,2 X* !**   +  9* [ Z* 9 S '* [ G* 9 J '* [ R* 9 M '* [ A* 9 洷       F    _  `  a  _  c # d ' c ( f - g 7 h < i K j \ k m l ~ m  f  ]       0     * $* X* 4            t  u  r                       x            w Y # 1 1 F : 1 0 : 1 5 : 1 N : 1 ; : 1 K : 1 7 : 1 @ : 1 B : 1 C : 1 W : 1 ? :       :     
      %  .  7  @  I  R  [  d  m   v         0707010004b0e0000081a40000000000000002000000013ac038a000001489000000200000000000000000000000000000001e00000003reloc/file/CbColorWindow.java import java.awt.*;
import java.util.*;

/**A window for choosing a colour, either from a pre-set palette
 * or from a color cube
 */
class CbColorWindow extends FixedFrame implements CbButtonCallback
{
	CbColorWindowCallback callback;
	Color col;
	Vector pal;
	static Vector defpal = new Vector();
	Image palimg[] = new Image[12];
	CbButton palbut[] = new CbButton[12];
	int curpal = -1;
	CbButton ok, cancel;
	CbColorWindowCube ccube;

	static
	{
	defpal.addElement(Color.black);
	defpal.addElement(Color.blue);
	defpal.addElement(Color.cyan);
	defpal.addElement(Color.gray);
	defpal.addElement(Color.green);
	defpal.addElement(Color.darkGray);
	defpal.addElement(Color.magenta);
	defpal.addElement(Color.orange);
	defpal.addElement(Color.pink);
	defpal.addElement(Color.red);
	defpal.addElement(Color.white);
	defpal.addElement(Color.yellow);
	}

	CbColorWindow(Color c, CbColorWindowCallback cb)
	{
	col = c;
	callback = cb;

	// Setup color vector
	pal = callback.palette(this);
	if (pal == null)
		pal = defpal;
	else if (pal.size() == 0)
		for(int i=0; i<12; i++)
			pal.addElement(defpal.elementAt(i));

	// Create palette images
	for(int i=0; i<12; i++) {
		palimg[i] = Util.createImage(16, 16);
		updatePal(i);
		}

	// create UI
	setLayout(new BorderLayout());
	Panel bot = new GrayPanel();
	bot.setLayout(new FlowLayout(FlowLayout.RIGHT));
	bot.add(ok = new CbButton("Ok", this));
	bot.add(cancel = new CbButton("Cancel", this));
	add("South", bot);
	Panel mid = new BorderPanel(1);
	mid.setLayout(new BorderLayout());
	Panel midbot = new GrayPanel();
	midbot.setLayout(new GridLayout(2, 6, 4, 4));
	CbButtonGroup g = new CbButtonGroup();
	for(int i=0; i<12; i++) {
		midbot.add(palbut[i] = new CbButton(palimg[i], this));
		palbut[i].setGroup(g);
		}
	for(int i=0; i<12; i++)
		if (c.equals(pal.elementAt(i))) {
			curpal = i;
			palbut[i].select();
			break;
			}
	mid.add("South", midbot);
	mid.add("North", ccube = new CbColorWindowCube(this));
	add("Center", mid);

	pack();
	show();
	setTitle("Choose Color...");
	}

	void updatePal(int i)
	{
	Graphics g = palimg[i].getGraphics();
	g.setColor((Color)pal.elementAt(i));
	g.fillRect(0, 0, 16, 16);
	if (palbut[i] != null) palbut[i].repaint();
	}

	public void click(CbButton b)
	{
	if (b == ok) {
		callback.chosen(this, col);
		super.dispose();
		}
	else if (b == cancel)
		dispose();
	else {
		for(int i=0; i<12; i++)
			if (b == palbut[i]) {
				curpal = i;
				col = (Color)pal.elementAt(i);
				ccube.red.setPosition(col.getRed());
				ccube.blue.setPosition(col.getBlue());
				ccube.green.setPosition(col.getGreen());
				ccube.swatch.setColor(col);
				}
		}
	}

	public void dispose()
	{
	super.dispose();
	callback.chosen(this, null);
	}

	public boolean isResizable() { return false; }
}

/**Displays 3 sliders, for red green and blue plus a block to show the
 * current color
 */
class CbColorWindowCube extends BorderPanel implements CbSliderCallback
{
	CbColorWindow parent;
	CbSlider red, green, blue;
	CbColorWindowSwatch swatch;

	CbColorWindowCube(CbColorWindow p)
	{
	super(1, Color.lightGray, Color.lightGray);
	parent = p;
	setLayout(new BorderLayout());
	Panel sl = new GrayPanel();
	sl.setLayout(new GridLayout(3, 1));
	sl.add(red = new CbSlider(0, 0, 255, p.col.getRed(), this));
	sl.add(green = new CbSlider(0, 0, 255, p.col.getBlue(), this));
	sl.add(blue = new CbSlider(0, 0, 255, p.col.getGreen(), this));
	add("Center", sl);
	add("East", swatch = new CbColorWindowSwatch(p.col));
	}

	public void moved(CbSlider s, int p)
	{
	moving(s, p);
	}

	public void moving(CbSlider s, int p)
	{
	parent.col = new Color(red.getPosition(), green.getPosition(),
	                       blue.getPosition());
	swatch.setColor(parent.col);
	if (parent.curpal != -1) {
		parent.pal.setElementAt(parent.col, parent.curpal);
		parent.updatePal(parent.curpal);
		}
	}
}


interface CbColorWindowCallback
{
	/**This method will be called when the user chooses a colour. If
	 * the user cancels the dialog, then this method will also be chosen
	 * but with null for the color.
	 */
	public void chosen(CbColorWindow w, Color c);

	/**The chooser keeps a palette of colors that the user can modify,
	 * stored in a vector. The callback class should provide this vector
	 * so as to maintain the palette between color window calls.
	 * If an empty vector is returned, it will be filled with the default
	 * color table (which can be then modified).
	 * If null is returned, the chooser will use it's own internal
	 * vector.
	 */
	public Vector palette(CbColorWindow w);
}


class CbColorWindowSwatch extends BorderPanel
{
	Color col = Color.black;
	String txt;

	CbColorWindowSwatch(Color c)
	{
	super(1);
	setColor(c);
	}

	void setColor(Color c)
	{
	col = c;
	txt = col.getRed()+","+col.getGreen()+","+col.getBlue();
	repaint();
	}

	public void paint(Graphics g)
	{
	super.paint(g);
	g.setColor(col);
	g.fillRect(1, 1, size().width-2, size().height-2);
	g.setColor(Color.white);
	g.setXORMode(Color.black);
	g.setFont(Util.f);
	g.drawString(txt, 3, Util.fnm.getHeight()+1);
	g.setPaintMode();
	}

	public void upate(Graphics g) { paint(g); }

	public Dimension preferredSize()
	{
	return new Dimension(60, 60);
	}

	public Dimension minimumSize()
	{
	return preferredSize();
	}
}

   0707010004b0e1000081a40000000000000002000000013ac038a00000016b000000200000000000000000000000000000002700000003reloc/file/CbColorWindowCallback.class    漱壕  -       ConstantValue CbColorWindowCube 
Exceptions CbColorWindow.java LineNumberTable 
SourceFile LocalVariables Code java/lang/Object chosen #(LCbColorWindow;)Ljava/util/Vector; CbColorWindowCallback CbColorWindowSwatch CbColorWindow palette "(LCbColorWindow;Ljava/awt/Color;)V                      	 0707010004b0e2000081a40000000000000002000000013ac038a000000727000000200000000000000000000000000000002300000003reloc/file/CbColorWindowCube.class    漱壕  -  h W r n O U T j H V w I Q p t	 	 B	 	 ;
  1
  >
  2
  D
  .
 
 <
  9
  =	  C	 	 :
  @	  3	  8	  0
  5	 	 4
  -
  7	 	 +
 	 ,
  6
  A
  ?
  ?
 
 / ]  [ e _ c k ^ ~  N q  y  | l P s  g ^ `  z { d  L i f } X    b ^  \  Z L J  m Y R x P o ^ LineNumberTable ConstantValue (LCbColorWindow;)V CbColorWindowCube java/awt/Color *(Ljava/awt/Component;)Ljava/awt/Component; CbColorWindow.java add 
Exceptions curpal CbSlider Ljava/awt/Color; CbColorWindow LCbColorWindow; 
SourceFile java/awt/BorderLayout 	GrayPanel CbColorWindowSwatch East red parent ()V moving $(ILjava/awt/Color;Ljava/awt/Color;)V green ()I setElementAt 	updatePal moved getRed (Ljava/lang/Object;I)V pal (LCbSlider;I)V swatch getPosition Center <(Ljava/lang/String;Ljava/awt/Component;)Ljava/awt/Component; CbSliderCallback getGreen col (III)V java/awt/GridLayout getBlue CbColorWindowCallback I java/awt/Container blue BorderPanel Code LocalVariables java/util/Vector 	lightGray (IIIILCbSliderCallback;)V 	setLayout (Ljava/awt/LayoutManager;)V (II)V LCbColorWindowSwatch; setColor (I)V <init> 
LCbSlider; Ljava/util/Vector; (Ljava/awt/Color;)V   	       Y R     X      ]      s      f }       G  u    	    *   *+ * Y ) # Y (M, Y  #,* Y +  * Z  W,* Y +  * Z $ W,* Y +  * Z ! W*, W** 
Y+  Z  W    E   .           #  0  N  l         a e  u   #     *+ %    E   
        [ e  u        c*  Y*   * $  * !   ' * *   **   )*  *  *   "* *   &    E   "         #  1  <  T  b   S    K 0707010004b0e3000081a40000000000000002000000013ac038a0000006fe000000200000000000000000000000000000002500000003reloc/file/CbColorWindowSwatch.class  漱壕  -  ~  s w j b P \ Q  X q x
  <	  0	 	 2	  .
 	 G
  :
 
 F	  ?
 	 1
  8
 
 /
 	 >
  E
 
 3
  ;
  -	  7	 	 5	  9
 
 @
  D
 
 C
  ,
 
 4
  ;
  A
  6	  =
  4
  B L f R Z K t  M U t m f i W N z    W   n W c _ ^ O o Z | e v d k r g f h a `   d u  T d c }   H l p f fillRect LineNumberTable ConstantValue width 	getHeight (Ljava/awt/Font;)V 
drawString Ljava/lang/String; CbColorWindowCube java/awt/Color size CbColorWindow.java setPaintMode height 
Exceptions Ljava/awt/Color; CbColorWindow 
SourceFile ()Ljava/awt/Dimension; minimumSize CbColorWindowSwatch upate txt (I)Ljava/lang/StringBuffer; 
setXORMode Ljava/awt/Font; java/awt/Dimension append ()V (Ljava/awt/Graphics;)V ()I getRed f black java/awt/FontMetrics fnm (IIII)V getGreen col preferredSize getBlue CbColorWindowCallback Ljava/awt/FontMetrics; java/awt/Component I toString repaint Util BorderPanel Code (Ljava/lang/String;II)V LocalVariables paint ,(Ljava/lang/String;)Ljava/lang/StringBuffer; , setFont java/lang/StringBuffer white ()Ljava/lang/String; (II)V setColor <init> java/awt/Graphics (I)V (Ljava/awt/Color;)V          n W     ^ O         y   6     * *  *+ *    I                   y   d     @*+ * Y '*    "*    "*    +  *     I          ;  ?   | e  y        P*+ &+*  %+*  d*  d +  %+  !+  +*   ) $` + #    I   & 	        %  ,  3  :  K  O   ] e  y        *+     I         o Z  y   $      Y<< (    I         [ Z  y        *     I         Y    S  0707010004b0e4000081a40000000000000002000000013ac038a000000505000000200000000000000000000000000000002000000003reloc/file/CbImageChooser.class   漱壕  - S = R 2 C D N F 4 5 E @	  %
  !
 	 	  #
 	 
  
  &
  
  "
 	 $
  	  	   
  & Q P + * G P Q : M O / , ; 9 - > Q ? 0 ) G 7 A K Q 6 LineNumberTable ConstantValue 
LCbButton; Ljava/lang/String; imgsrc (Ljava/lang/String;)V add 
Exceptions setText but 
SourceFile Choose.. click java/awt/BorderLayout CbButton ()V (Ljava/awt/Image;)V CbImageChooser.java Ljava/awt/Image; '(Ljava/lang/String;LCbButtonCallback;)V img (LCbButton;)V Center <(Ljava/lang/String;Ljava/awt/Component;)Ljava/awt/Component; (LCbImageChooser;)V java/awt/Panel filewin I java/awt/Container CbImageFileWindow CbButtonCallback ScrollImage setImage Code LocalVariables imgw LCbImageFileWindow; imgh 	setLayout CbImageChooser (Ljava/awt/LayoutManager;)V %(Ljava/awt/Image;Ljava/lang/String;)V <init>        
    ; 9     + *     J B     L B     0 )     A K      Q 7  H   #     *+     '   
         Q P  H   ]     5* * Y  ** 	Y* Z  W*+,  ,     '            %  4    G P  H   O     '*+ *, *  * *  *      '          
    &   3 <  H   7     +*  *  
 *     '       #  $  !  1    8   0707010004b0e5000081a40000000000000002000000013ac038a00000125c000000200000000000000000000000000000001f00000003reloc/file/CbImageChooser.java    import java.awt.*;
import java.net.*;

class CbImageChooser extends Panel implements CbButtonCallback
{
	Image img;
	String imgsrc;
	int imgw, imgh;
	CbButton but;
	CbImageFileWindow filewin;
	//CbImageChooserCallback callback;

	CbImageChooser(Image i)
	{
	this(i, null);
	}

	CbImageChooser(Image i, String s)
	{
	setLayout(new BorderLayout());
	add("Center", but = new CbButton("Choose..", this));
	setImage(i, s==null ? "" : s);
	}

	void setImage(Image i, String s)
	{
	img = i;
	imgsrc = s;
	if (img != null) but.setImage(img);
	else but.setText("Choose..");
	}

	public void click(CbButton b)
	{
	if (b == but && filewin == null)
		new CbImageFileWindow(this);
	}
}


class CbImageFileWindow extends FixedFrame implements CbButtonCallback
{
	CbImageChooser parent;
	ScrollImage imgp;
	TextField url;
	CbButton browse, ok, cancel;
	FileDialog filedlog;
	String lastfile = "";

	CbImageFileWindow(CbImageChooser p)
	{
	parent = p;
	parent.filewin = this;
	setLayout(new BorderLayout());
	add("Center", imgp = new ScrollImage(parent.img, 200, 200));
	Panel bot = new GrayPanel();
	bot.setLayout(new FlowLayout(FlowLayout.LEFT));
	bot.add(new Label("URL:"));
	bot.add(url = new TextField(parent.imgsrc, 20));
	bot.add(browse = new CbButton("Browse..", this));
	bot.add(new Label("  "));
	bot.add(ok = new CbButton("Ok", this));
	bot.add(cancel = new CbButton("Cancel", this));
	add("South", bot);

	pack();
	show();
	setTitle("Choose Image..");
	Util.recursiveBackground(this, Color.lightGray);
	}

	public void click(CbButton b)
	{
	if (b == ok)
		parent.setImage(imgp.img, lastfile);
	if (b == ok || b == cancel)
		dispose();
	else if (b == browse) {
		// Open file chooser here!
		FileDialog filedlog =
		  new FileDialog(this, "Choose Image",FileDialog.LOAD);
		filedlog.show();
		if (filedlog.getFile() != null) {
			// file chosen.. load it in
			String fn = filedlog.getDirectory()+filedlog.getFile();
			url.setText(fn);
			loadFile(fn);
			}
		}
	}

	public void dispose()
	{
	super.dispose();
	parent.filewin = null;
	}

	public boolean action(Event evt, Object obj)
	{
	if (evt.target == url) {
		String ut = url.getText();
		if (ut.startsWith("http:") || ut.startsWith("ftp:"))
			loadURL(ut);
		else
			loadFile(ut);
		return true;
		}
	return false;
	}

	private void loadFile(String f)
	{
	Image i = Util.tk.getImage(f);
	if (i == null || !Util.waitForImage(i))
		new ErrorWindow("Failed to load image "+f);
	else {
		imgp.setImage(i);
		lastfile = f;
		}
	}

	private void loadURL(String u)
	{
	try {
		Image i = Util.tk.getImage(new URL(u));
		if (i == null || !Util.waitForImage(i))
			new ErrorWindow("Failed to load image from "+u);
		else {
			imgp.setImage(i);
			lastfile = u;
			}
		}
	catch(MalformedURLException e) {
		new ErrorWindow(u+" is not a valid URL");
		}
	}
}


class ScrollImage extends Panel implements CbScrollbarCallback
{
	Image img;
	int imgw, imgh;
	int pw, ph;
	CbScrollbar vsc, hsc;
	boolean compute_scrollbars = true;

	ScrollImage(Image i)
	{
	this(i, Util.getWidth(i), Util.getHeight(i));
	}

	ScrollImage(Image i, int w, int h)
	{
	pw = w; ph = h;
	setLayout(new BorderLayout());
	add("East", vsc = new CbScrollbar(CbScrollbar.VERTICAL, this));
	add("South", hsc = new CbScrollbar(CbScrollbar.HORIZONTAL, this));
	setImage(i);
	}

	void setImage(Image i)
	{
	img = i;
	if (img != null) {
		imgw = Util.getWidth(img);
		imgh = Util.getHeight(img);
		}
	compute_scrollbars = true;
	repaint();
	}

	public void paint(Graphics g)
	{
	int w = size().width-vsc.size().width,
	    h = size().height-hsc.size().height;
	if (compute_scrollbars) {
		if (img == null) {
			hsc.setValues(0, 1, 1);
			vsc.setValues(0, 1, 1);
			}
		else {
			if (imgw < w) hsc.setValues(0, 1, 1);
			else hsc.setValues(0, w, imgw);
			if (imgh < h) vsc.setValues(0, 1, 1);
			else vsc.setValues(0, h, imgh);
			}
		compute_scrollbars = false;
		}

	g.setColor(Color.lightGray);
	g.fillRect(0, 0, w, h);
	if (img != null) {
		if (imgw < w && imgh < h)
			g.drawImage(img, (w-imgw)/2, (h-imgh)/2, this);
		else
			g.drawImage(img, -hsc.getValue(), -vsc.getValue(),this);
		}
	else {
		g.setFont(Util.f);
		g.setColor(Color.black);
		String s = "<None>";
		g.drawString(s, (w-Util.fnm.stringWidth(s))/2,
		                (h-Util.fnm.getHeight())/2);
		}
	}

	public void update(Graphics g) { paint(g); }

	public void reshape(int nx, int ny, int nw, int nh)
	{
	super.reshape(nx, ny, nw, nh);
	compute_scrollbars = true;
	repaint();
	}

	public void moved(CbScrollbar s, int p)
	{
	repaint();
	}

	public void moving(CbScrollbar s, int p) { }

	public Dimension minimumSize()
	{
	return new Dimension(pw, ph);
	}

	public Dimension preferredSize()
	{
	return minimumSize();
	}
}
0707010004b0e6000081a40000000000000002000000013ac038a000000e73000000200000000000000000000000000000002300000003reloc/file/CbImageFileWindow.class    漱壕  -                                         	 ( 
  s
 $ q	 % 
  \
  
  p	  i
  a	 % _	  f
  o
  ~	  r
  |
 $ c	  u
  ~	  Z
  b
 & 	 % g
 ' ~
   y
 ( t
  [	  
  `
  z
  v
  m
  
  e
 ( ^
  k
  j
 $ l
  ]	 " n
  \
 # 
  x
  ~
 % {	  
  w	  h
  }	  d                                                                                        java/awt/Color 
FixedFrame Ljava/awt/Toolkit; <init> java/awt/Container target parent '(Ljava/awt/Component;Ljava/awt/Color;)V action java/awt/FileDialog 
SourceFile 	lightGray *(Ljava/awt/Component;)Ljava/awt/Component; Cancel 
LCbButton; CbImageChooser ftp: LScrollImage; 
startsWith toString Ljava/awt/TextField; recursiveBackground $(Ljava/lang/String;)Ljava/awt/Image; 
Exceptions %(Ljava/awt/Image;Ljava/lang/String;)V java/awt/Toolkit LineNumberTable CbImageChooser.java tk (Ljava/awt/Image;II)V LCbImageFileWindow; Choose Image.. Ljava/awt/FileDialog; waitForImage java/net/MalformedURLException Failed to load image from  java/awt/Window java/lang/String South ,(Ljava/lang/String;)Ljava/lang/StringBuffer; (LCbButton;)V (I)V dispose ()Ljava/lang/String; Ljava/lang/Object; browse Util '(Ljava/lang/String;LCbButtonCallback;)V add Browse.. java/awt/Frame lastfile setImage click getImage URL: ErrorWindow java/awt/TextField java/lang/StringBuffer ()V (Ljava/awt/LayoutManager;)V show ScrollImage java/awt/TextComponent java/awt/BorderLayout pack Ok %(Ljava/awt/Event;Ljava/lang/Object;)Z  is not a valid URL java/awt/Label Choose Image 	setLayout getText Ljava/awt/Image; <(Ljava/lang/String;Ljava/awt/Component;)Ljava/awt/Component; Center ok getFile img CbButtonCallback 	GrayPanel filewin Failed to load image  loadURL http: getDirectory filedlog CbImageFileWindow Ljava/lang/String; imgsrc &(Ljava/awt/Frame;Ljava/lang/String;I)V (Ljava/awt/Image;)Z (Ljava/awt/Image;)V (Ljava/lang/String;)Z (Ljava/lang/String;)V CbButton ConstantValue java/awt/FlowLayout append url java/awt/Event Code java/net/URL LCbImageChooser; loadFile  (Ljava/net/URL;)Ljava/awt/Image; setTitle (Ljava/lang/String;I)V setText LocalVariables Ljava/awt/Color; (LCbImageChooser;)V cancel imgp                                                                  J     * S* W*+ Y* Y* 2* Y 5 +** Y* Y ,  确 HZ U MW 'Y ?M, Y G +, Y . 8W,* Y* Y > BZ 3 8W,*  Y* @Z 9 8W, Y . 8W,*  Y* @Z 6 8W,*  Y* @Z 0 8W*, MW* L* I* <* O J       R    2  0 
 4  5  6 " 7 B 8 J 9 V : d ; ~ <  =  >  ?  @  B  C  D  E  2             u+* 6 * Y* U C* W T+* 6 +* 0 * P+* 9 @ Y* XM, I, F ) Y :, N 7, F 7 *N* 3- 1*- K       :    J  K  L * M . L / N 7 Q B P C R G S N U g V o W t H        -     * -* Y 2           ^  _  \        j     6+ ;* 3 ,* 3 /N-
 D - D *- E *- K       "    d  e  f % g * f - i 2 j 4 l        k     ; )+ VM, 
, A  # Y :	 7+ 7 * Q* U, 4*+ W           q  r  s , r - u 5 v : o             ] ) &Y+ = RM, 
, A  # Y : 7+ 7 * Q* U, 4*+ W盬 # Y :+ 7 7 * Q    A B !     .    |   }  ~   3 ~ 4  <  A | B  C  \ z       0707010004dd73000041ed0000000000000001000000023ac03be900000000000000200000000000000000000000000000001200000003reloc/file/images 0707010004dd74000081a40000000000000002000000013ac038a000000061000000200000000000000000000000000000001d00000003reloc/file/images/binary.gif  GIF89a    烫蘤ff   !    ,       2﹝琷
2N}A"錎烒晿妕瑷櫌L冻砶澖t|麜|9腏稩
 ;   0707010004dd75000081a40000000000000002000000013ac038a00000006b000000200000000000000000000000000000001d00000003reloc/file/images/cancel.gif  GIF89a      !    ,       B剰┧俛R	h=z楚h煥5贅絉ais2F{|飇憊и
WBU7c1H1$嫣i穩 ; 0707010004dd76000081a40000000000000002000000013ac038a000000071000000200000000000000000000000000000001b00000003reloc/file/images/copy.gif    GIF87a    烫虣櫃   ,       J剰┧睝ALⅪ烲G垊^y*郻V茈禜爨楅樨)>Q
蕁J/y\sH嶶A]a詇芼F ;   0707010004dd77000081a40000000000000002000000013ac038a000000077000000200000000000000000000000000000001a00000003reloc/file/images/cut.gif GIF87a    烫蘤ff   ,       P剰┧>
鈛s甿嘆((B&+]緈^5q驪"艔樃'󟪛^徶zr`9グ酻$鎸N ; 0707010004dd78000081a40000000000000002000000013ac038a00000005a000000200000000000000000000000000000001d00000003reloc/file/images/device.gif  GIF89a    櫃檉ff   !    ,       +剰y睔3,趇.) '%r聑6T善S蘮鬸叱:颚2
 ;  0707010004dd79000081a40000000000000002000000013ac038a000000058000000200000000000000000000000000000001a00000003reloc/file/images/dir.gif GIF89a    烫虣櫃fff!    ,       )剰i-j劀秼]牅忀卂($5灗
i氩贳页;潸綜>P  ;0707010004dd7a000081a40000000000000002000000013ac038a00000008a000000200000000000000000000000000000001b00000003reloc/file/images/edit.gif    GIF87a      獐喬烫櫃         ,       W很0使B燪X鼊C(巸	`	昰:民:c鰜<7)裛@廽i-y>Y ↖瀷0"n"迴b9)+HpgN$  ;  0707010004dd7b000081a40000000000000002000000013ac038a0000006da000000200000000000000000000000000000001b00000003reloc/file/images/file.gif    GIF89a /   UUU   沣闱乔rrr999帋!Made with GIMP !    ,     /  劷81s楻厑di炶燳_
-*蟭m選甇碾_!s e护H3-=扫tJ繅
A'*啻z=b_J 赹鞊Jy亗僽o/1b$vh剓(>創攋b櫄洓hG$bA搵=,'n+H暚;b6吵#攡c|附3禫q攂%E曝 jfc3碩聦箠諏2:7翊8岜9达:硡裯$鄑訷@里茟EN瑝i榾\皢!64`駙=匎餒#!!>傕▉鋲仜&T塍嘐.狆$<薫0 R@E 勔姦% p硛0f!2腝3	^啉欰*AP歂T{tT譆皶詼'`礚峑翪慚,nE醡垱$kX黵蜜[諶滲+NoTP 淙h嗀@ec及糳PI僒 陌2 婉膫富"痀tobu黾r疉嚌@J7氉屭i'摪惒V19GQ阦yS螮6@z挋娎m偆讫"爼U箚df	aQi腯e歴钑瀖 婤傾綧僄(:6Axd0 亓 Bl弝W誨'甡蟡璄V-扡+	
^呚稭-b鄽O哚茣妑}6T劼A稡奡Jy*:揉t%旅l&p#媝-罫Y"")7鄌3抡鄧Qz剐	)Au頼壜r+4糙t"E弛Zf中#z@t娑	?彷萪豣 A%怑)茫u}$:2(@2j|閬b.覅Uv)Q芬豬D橥 "焬5gＪJ#柊_踡хX3&怔逍J L(㖞1嫢S祬烅k熭*酹*bv脯珄陴E腐u裲狏C堺^Q镴u囼;!cL烀5|)菌糣獛叓帳犤#扲!墰)爧(lBx2枭3旣砻齘LW眴;M^	-b傥賢q貚" 吮脫庑抓潇\(牗玣更t)傅Q梈gn辔撾厡$鹒m(_藸.裖咒L粉裿B衆,Mxh励幤<渁㤘k	仨-忭	p闌鞭d<w嶊:R味$J9B&%籺6Lu曄幃%x蘯皶閊d饁Mw盨T/9 笗;_婢'?珂2炲$/s<GmO劎x暖Ｎj蚢覬銸摑欢翖OB鴢^@呙浲幋祏9#袧~岖桎魋葱R摡AGBv: 旰(-皐~r`,X?
l仳矧骼夼i"7`忛1Gl識臞w敛"膧p弒儯AwЩき(#3V%*卝+&貉7柃誘 <綶"鸝埆-qe/堁蟨谆	嫣!2g
+]};H瀛*9黟!投魽8"糬マ伶釜8倖JY1丿U洷(A5頜V蝏 У孕Wq?蛯1′((爴7$%TJ执▊燂擨+t`Zc塮}1n=虘 c蓹 6詳梫智榰*鵅Jq伫+w諥;冪*8{&繥=蕫昸#t+,SU滘牫牕6{巖L鄼8T磎E臛 8\%a橦 G'室柡
y㎜gJS4裚Mw视楘,gъ㏄嘮	1疳DM猂+褤耛&]猅*Z.尓X完,yE瓃醌m0
植z鮏 +%"  ;  0707010004dd7c000081a40000000000000002000000013ac038a00000010a000000200000000000000000000000000000001b00000003reloc/file/images/icon.gif    GIF89a0 0   烫虣櫃fff            !    ,    0 0  很0蔍8帅 貚Nf炴FRA杈檬爵薘[脁倔=堫K膼袢&桳厯峃U鎢E〧倎xL./w
j塯I蹐@浅糊9痏鈘t儎1[5x厡噣a}{Tz杦>棟af倊i牗毆9'_AhGll窰煢揦┕悩4崊徖 薂勇\目溋泑邽拶い墉嫥蒕	 ;  0707010004dd7d000081a40000000000000002000000013ac038a00000007c000000200000000000000000000000000000001c00000003reloc/file/images/image.gif   GIF89a    烫             !    ,       A頺9A!俉/嶰@y熌%SY$慖]雮<(∵L倔洰痍]~t)棐	eL┡Mh獺  ;0707010004dd7e000081a40000000000000002000000013ac038a00000007f000000200000000000000000000000000000001f00000003reloc/file/images/makelink.gif    GIF87a    烫虣櫃fff,       X剰Vj膉o~IO2濈V婌鄫璬轓枢慌@D哮簰嘽sQ48柙+^!惲r堉轉y霆説臍菸啤髊 ; 0707010004dd7f000081a40000000000000002000000013ac038a00000006a000000200000000000000000000000000000001c00000003reloc/file/images/mkdir.gif   GIF87a    烫虣櫃fff,       C剰┧磉倻0侒ㄧf紂親枔`x呤ji胹]吒擋 4<
孏&-元鮶録奋G ;  0707010004dd80000081a40000000000000002000000013ac038a000000055000000200000000000000000000000000000001a00000003reloc/file/images/new.gif GIF87a    烫,       4剰┧*U偻瀫貒y$鏸#㈧
梠邮L磙*诫笋喠戌x(検 ;   0707010004dd81000081a40000000000000002000000013ac038a000000072000000200000000000000000000000000000001b00000003reloc/file/images/open.gif    GIF87a    烫虣櫃fff,       K剰┧A+fj4勨H杻a亩n$刓G遵0埴濓u棂:'狃R<趻J硥yB-оc0*匙嬦
其蚋  ;  0707010004dd82000081a40000000000000002000000013ac038a000000098000000200000000000000000000000000000001c00000003reloc/file/images/paste.gif   GIF87a    烫蘤ff   櫃         ,       e很 菼a𙜓髱荩	i0鮁*雫:榦解4`輒%獂LrrFdK;6トhH撃{惱L2翜<'36m@迭.Y紫|}V{w	 ;0707010004dd83000081a40000000000000002000000013ac038a00000006b000000200000000000000000000000000000001b00000003reloc/file/images/pipe.gif    GIF89a    fff烫   櫃         !    ,       0很91F扱KpBH宆宧)漢l滠崨逢衼l聤艶 ; 0707010004dd84000081a40000000000000002000000013ac038a000000075000000200000000000000000000000000000001c00000003reloc/file/images/props.gif   GIF87a    烫蘤ff   ,       N剰┧裆苣x!貰 x孞墵3唹&睜邪!辐Kr鑲WM8碁岣l畼)碫m詢筚绽J
鰧  ;   0707010004dd85000081a40000000000000002000000013ac038a00000005c000000200000000000000000000000000000001e00000003reloc/file/images/refresh.gif GIF87a    櫃,       ;剰┧I邬瑠橲鎪[餧H鑘歜Y(蹪$L蚽筋嶎酓6鈎笭㈱ 觟孞 ;0707010004dd86000081a40000000000000002000000013ac038a000000090000000200000000000000000000000000000001d00000003reloc/file/images/rename.gif  GIF87a    fff櫃櫶烫            ,       ]很0书偨8k〈髀@I冐\ oL<迟侮嗎ｍj1刷▋贁φc玼Z罐n諙姑鑩e9hジ|N囎飔穨逪  ;0707010004dd87000081a40000000000000002000000013ac038a000000082000000200000000000000000000000000000001a00000003reloc/file/images/run.gif GIF89a       QQ@!    ,       S剰┧M槾V勣\蠑ub 怗(r缓蕸5)%?}迱x4DfPx97蚮Q
E祧E槁秥农榨;P  ;  0707010004dd88000081a40000000000000002000000013ac038a00000005c000000200000000000000000000000000000001b00000003reloc/file/images/save.gif    GIF89a      !    ,       3剰┧tANfz鏽T葋Qi婃9j*:繑腟趟XO S<$瑻 ;0707010004dd89000081a40000000000000002000000013ac038a0000000b4000000200000000000000000000000000000001b00000003reloc/file/images/sdir.gif    GIF89a    烫虣櫃垐坒ff333   wwwUUU"""!Made with GIMP !   ,       O鹕I8+棈0:溸@1/h戳A0.!壜R縓Pp %杹溓\ジY!牲U\v舗9餑 ;0707010004dd8a000081a40000000000000002000000013ac038a000000083000000200000000000000000000000000000001d00000003reloc/file/images/search.gif  GIF87a    倘槝   `d`         ,       P很* +"i[葘諩魎g暁ペ仓斫3^7陰蜝2 櫳G0 嶩懧鶆:ㄖ3劾r/ %s	E"璣$  ; 0707010004dd8b000081a40000000000000002000000013ac038a000000084000000200000000000000000000000000000001c00000003reloc/file/images/share.gif   GIF89a    櫃櫶烫fff!Made with GIMP ,       K剰┧!.2 UQN妗鏧
訇秓3S3侮鲯愒g;rぅq冨挗蚽f圊Z卿玻  ;0707010004dd8c000081a40000000000000002000000013ac038a000000057000000200000000000000000000000000000001e00000003reloc/file/images/symlink.gif GIF89a    烫蘤ff   !    ,       (剰y痢殁C竔埻961!_z岫嵺縅 ; 0707010004dd8d000081a40000000000000002000000013ac038a00000005b000000200000000000000000000000000000001b00000003reloc/file/images/text.gif    GIF89a    烫虣櫃   !    ,       ,﹝\⒅貣湙9'倵"c茷*糿鬶5+9扪h ; 0707010004dd8e000081a40000000000000002000000013ac038a00000004f000000200000000000000000000000000000001e00000003reloc/file/images/unknown.gif GIF89a    烫!    ,       &﹝\0%绁谡~H(fy栦遣U尪黾a楺  ; 0707010004dd8f000081a40000000000000002000000013ac038a00000009a000000200000000000000000000000000000001d00000003reloc/file/images/upload.gif  GIF87a    烫   fff@烫櫃   ,       g0查劷貑蒵奷〾c牃,惇4蘣鱷蘩彂d嗳)!蚦l
>%"缯A *岔c(樝h9n栽鳽<~廇亖pr厗	 ;  0707010004dd90000081a40000000000000002000000013ac038a00000008a000000200000000000000000000000000000001b00000003reloc/file/images/view.gif    GIF87a       烫虣櫃         ,       W很.:ㄨ摳乣ICih(埄S"fP覦0x)弽來v{詖爌$qC`閐f勀酼漃Z瘊駧2齅薒鸶鵆痮 ;  0707010004b0e7000081a40000000000000002000000013ac038a0000010ea000000200000000000000000000000000000001d00000003reloc/file/CbScrollbar.class  漱壕  -         { } ~      
  <
 	 =
  >
  ?
  @
  A	  B	  C
  D	  E	  F	  G
  H	  I	  J
 
 K
 
 L	  M	  N	  O	 	 P	  Q	  R	  R	  S	  T	  U	  V	  W	  X  Y  Z	  [	  \
  ]
  ^
  _
 
 `
  a
  b
  c	  d	  e	 	 f	  g	  h	  i	  j z m z o z p z r z t  v      n        m      q  q                          t  t      l  m  q  u  y  p  l               ()I ()Ljava/awt/Dimension; ()V (I)V (II)V (III)V (IIII)V (IIIILCbScrollbarCallback;)V (ILCbScrollbarCallback;)V (LCbScrollbar;I)V (Ljava/awt/Color;)V *(Ljava/awt/Component;)Ljava/awt/Component; (Ljava/awt/Event;II)Z (Ljava/awt/Graphics;)V (Ljava/awt/LayoutManager;)V <init> CbScrollbar CbScrollbar.java CbScrollbarArrow CbScrollbarCallback Code ConstantValue 
Exceptions 
HORIZONTAL I LCbScrollbarArrow; LCbScrollbarCallback; LineNumberTable Ljava/awt/Color; LocalVariables 
SourceFile VERTICAL Z add arrow1 arrow2 
arrowClick bc black callback 
checkValue darkGray drag drawLine fillRect getValue hc1 hc2 hc3 height indent inside java/awt/Color java/awt/Component java/awt/Container java/awt/Dimension java/awt/Graphics java/awt/Panel lc1 lc2 lc3 	lightGray lineinc lvisible minimumSize 	mouseDown 	mouseDrag mouseUp moved moving num orient paint preferredSize repaint reshape setColor 	setLayout setValue 	setValues size value white width x1 x2 y1 y2 !                                                                                                                                                               z s     &     
*,        
     	    z r         * * (* 6 $* ' %*  &* 6 * Y   曳  *  * Y   柗  * 3* -* * 2* - *** Y* Z  W** Y* Z  W** Y* Z  W** Y* Z  W       F    $   	    9  @  T & \ ' a ( g ) l * s +  ,  *  /  0  $   p     [     +* 5* )* ,* )* , ** , )* * /           ;  < 
 =  > " ? & @ * 9   k          * 5           C   n     2     * 5* * /           G  H 	 I  E   m     K     +* 5 	* 5* 5* ,* )d ** ,* )d 5           N  O * L   x    ]  	  * , * 4 7=* 4  >* " *  # *  #  6 
*  * $: 
*  * %: 
*  * &:+*  1+ + 1+d +d + 1+ddd +ddd * - hd6** 5h* ,l` :** 5* )`h* ,l`d ;+ 1+* :d* ;* :d +* !   1+* :d* : +* :* ;d +* !   1+d* ;dd* : +d* ;d* ;d +d* ;dd* :` +d* ;d* ;d * - hd6** 5h* ,l` 8** 5* )`h* ,l`d 9+ 1+* 8* 9* 8dd +* !   1+* 8* 8d +* 8* 9d +* !   1+* 9dd* 8d +* 9dd* 9d  -+* 9dd* 8`d +* 9dd* 9d         +   T  U  V : W ^ X p Y x Z  [  \  ]  ^  `  a  b  c  d  e f" g2 hB iT jh k| l m n ` q r s t u v w x# y3 zE {Y |m }r ~  R    n     ^     .* 5=*Y 5` 5* * 5 * ** 5 * * /                    )  -    q          b* 0* - )* dd 0* dddd 0 ** dd 0* dddd 0* /       & 	    	      3  6  G  ]  a    l     ?     * -  	Yd 盎 	Yd                   l          * .              w          * - @* : ** )t  f* ; ** )  S* !** :d * / =* 8 ** )t  )* 9 ** )  * !** 8d * /       6         .  3  =  A  D  X  k  p  z  ~    w       	   * ! * 4 76* 4  6* 56* - (hd6* dd6** ,hl 5 %hd6* dd6** ,hl 5* * 5 * ** 5 + * /* !       :           &  :  H  K  _  m  q  z        w     N     "* ! * !* /* ** 5 *                             |  0707010004b0e8000081a40000000000000002000000013ac038a000001e8c000000200000000000000000000000000000001c00000003reloc/file/CbScrollbar.java   // CbScrollbar.java
// A drop-in replacement for the AWT scrollbar class, with callbacks
// and a nicer look. This scrollbar is typically used to display some
// fraction of a list of items, with values ranging from min to max.
// The lvisible parameter determines how many of the list are lvisible
// at any one time. The value of the scrollbar ranges from min to
// max-lvisible+1 (the highest position in the list to start displaying)
import java.awt.*;

public class CbScrollbar extends Panel
{
	static final int VERTICAL = 0;
	static final int HORIZONTAL = 1;
	CbScrollbarCallback callback;		// who to call back to
	boolean inside, indent;
	int orient;			// horizontal or vertical?
	int value;			// position
	int lvisible;			// the number of lines lvisible
	int num;			// total number of lines
	int lineinc = 1;		// how much the arrow buttons move by
	Color lc1 = Color.white, lc2 = Color.lightGray, lc3 = Color.black;
	Color hc1 = Color.white, hc2 = new Color(210, 210, 210),
	      hc3 = Color.darkGray;
	Color bc = new Color(150, 150, 150);
	int y1, y2, x1, x2, drag;

	CbScrollbarArrow arrow1, arrow2;

	CbScrollbar(int o, CbScrollbarCallback cb)
	{
	this(o, 0, 1, 1, cb);
	}

	/**Create a new scrollbar
	 */
	CbScrollbar(int o, int v, int vis, int n, CbScrollbarCallback cb)
	{
	setValues(v, vis, n);
	orient = o;
	callback = cb;
	setLayout(null);
	if (orient == VERTICAL) {
		add(arrow1 = new CbScrollbarArrow(this, 0));
		add(arrow2 = new CbScrollbarArrow(this, 1));
		}
	else {
		add(arrow1 = new CbScrollbarArrow(this, 2));
		add(arrow2 = new CbScrollbarArrow(this, 3));
		}
	}

	/**Set the current scrollbar parameters
	 * @param v		Current position
	 * @param vis		Number of lines lvisible
	 * @param n		Total number of lines
	 */
	public void setValues(int v, int vis, int n)
	{
	value = v;
	lvisible = vis;
	num = n;
	if (lvisible > num) lvisible = num;
	checkValue();
	repaint();
	}

	public int getValue() { return value; }

	public void setValue(int v)
	{
	value = v;
	checkValue();
	repaint();
	}

	private void checkValue()
	{
	if (value < 0) value = 0;
	else if (value > num-lvisible) value = num-lvisible;
	}

	public void paint(Graphics g)
	{
	if (num == 0) return;
	int w = size().width, h = size().height;
	boolean ins = inside && !(arrow1.inside || arrow2.inside);
	Color c1 = ins ? hc1 : lc1, c2 = ins ? hc2 : lc2,
	      c3 = ins ? hc3 : lc3;
	g.setColor(bc);
	g.fillRect(0, 0, w, h);
	g.setColor(c3);
	g.drawLine(0, 0, w-1, 0); g.drawLine(0, 0, 0, h-1);
	g.setColor(c1);
	g.drawLine(w-1, h-1, w-1, 0); g.drawLine(w-1, h-1, 0, h-1);

	if (orient == VERTICAL) {
		int va = h-w*2;
		y1 = w+va*value/num;
		y2 = w+va*(value+lvisible)/num-1;
		g.setColor(c2);
		g.fillRect(1, y1, w-2, y2-y1);
		g.setColor(indent ? c3 : c1);
		g.drawLine(1, y1, w-2, y1);
		g.drawLine(1, y1, 1, y2-1);
		g.setColor(indent ? c1 : c3);
		g.drawLine(w-2, y2-1, w-2, y1);
		g.drawLine(w-2, y2-1, 1, y2-1);
		if (ins) {
			g.drawLine(w-3, y2-2, w-3, y1+1);
			g.drawLine(w-3, y2-2, 2, y2-2);
			}
		}
	else if (orient == HORIZONTAL) {
		int va = w-h*2;
		x1 = h+va*value/num;
		x2 = h+va*(value+lvisible)/num-1;
		g.setColor(c2);
		g.fillRect(x1, 1, x2-x1, h-2);
		g.setColor(indent ? c3 : c1);
		g.drawLine(x1, 1, x1, h-2);
		g.drawLine(x1, 1, x2-1, 1);
		g.setColor(indent ? c1 : c3);
		g.drawLine(x2-1, h-2, x1, h-2);
		g.drawLine(x2-1, h-2, x2-1, 1);
		if (ins) {
			g.drawLine(x2-2, h-3, x1+1, h-3);
			g.drawLine(x2-2, h-3, x2-2, 2);
			}
		}
	}

	/**Called by arrows to move the slider
	 */
	void arrowClick(int d)
	{
	int oldvalue = value;
	value += d;
	checkValue();
	if (value != oldvalue) {
		callback.moved(this, value);
		repaint();
		}
	}

	public void reshape(int nx, int ny, int nw, int nh)
	{
	super.reshape(nx, ny, nw, nh);
	if (orient == VERTICAL) {
		arrow1.reshape(1, 1, nw-2, nw-1);
		arrow2.reshape(1, nh-nw-1, nw-2, nw-1);
		}
	else {
		arrow1.reshape(1, 1, nh-1, nh-2);
		arrow2.reshape(nw-nh-1, 1, nh-1, nh-2);
		}
	repaint();
	}

	public Dimension preferredSize()
	{
	return orient==VERTICAL ? new Dimension(16, 100)
				: new Dimension(100, 16);
	}

	public Dimension minimumSize()
	{
	return preferredSize();
	}

	public boolean mouseDown(Event e, int mx, int my)
	{
	if (orient == VERTICAL) {
		// move up/down one page, or start dragging
		if (my < y1) arrowClick(-lvisible);
		else if (my > y2) arrowClick(lvisible);
		else {
			indent = true;
			drag = my-y1;
			repaint();
			}
		}
	else {
		// move left/right one page, or start dragging
		if (mx < x1) arrowClick(-lvisible);
		else if (mx > x2) arrowClick(lvisible);
		else {
			indent = true;
			drag = mx-x1;
			repaint();
			}
		}
	return true;
	}

	public boolean mouseDrag(Event e, int mx, int my)
	{
	if (indent) {
		int w = size().width, h = size().height;
		int oldvalue = value;
		if (orient == VERTICAL) {
			int va = h-w*2, ny = my-drag-w;
			value = ny*num/va;
			}
		else {
			int va = w-h*2, nx = mx-drag-h;
			value = nx*num/va;
			}
		checkValue();
		if (value != oldvalue) {
			callback.moving(this, value);
			repaint();
			}
		}
	return indent;
	}

	public boolean mouseUp(Event e, int mx, int my)
	{
	if (indent) {
		indent = false;
		repaint();
		callback.moved(this, value);
		return true;
		}
	return false;
	}

/*
	public boolean mouseEnter(Event e, int mx, int my)
	{
	inside = true;
	repaint();
	return true;
	}

	public boolean mouseExit(Event e, int mx, int my)
	{
	inside = false;
	repaint();
	return true;
	}
*/
}

class CbScrollbarArrow extends Canvas implements Runnable
{
	int mode;
	CbScrollbar scrollbar;
	boolean inside, indent;
	Thread th;

	CbScrollbarArrow(CbScrollbar p, int m)
	{
	scrollbar = p;
	mode = m;
	}

	public void paint(Graphics g)
	{
	int w = size().width, h = size().height;
	Color c1 = inside ? scrollbar.hc1 : scrollbar.lc1,
	      c2 = inside ? scrollbar.hc2 : scrollbar.lc2,
	      c3 = inside ? scrollbar.hc3 : scrollbar.lc3;
	g.setColor(scrollbar.bc);
	g.fillRect(0, 0, w, h);
	int xp[] = new int[3], yp[] = new int[3];
	// blank, dark, light
	if (mode == 0) {
		// up arrow
		xp[0] = w/2; xp[1] = w-1; xp[2] = 0;
		yp[0] = 0;   yp[1] = h-1; yp[2] = h-1;
		}
	else if (mode == 1) {
		// down arrow
		xp[0] = 0;   xp[1] = w/2; xp[2] = w-1;
		yp[0] = 0;   yp[1] = h-1; yp[2] = 0;
		}
	else if (mode == 2) {
		// left arrow
		xp[0] = 0;   xp[1] = w-1; xp[2] = w-1; 
		yp[0] = h/2; yp[1] = h-1; yp[2] = 0;
		}
	else if (mode == 3) {
		// right arrow
		xp[0] = 0;   xp[1] = w-1; xp[2] = 0;
		yp[0] = 0;   yp[1] = h/2; yp[2] = h-1;
		}
	g.setColor(c2);
	g.fillPolygon(xp, yp, 3);
	g.setColor(indent ? c1 : c3);
	g.drawLine(xp[1], yp[1], xp[2], yp[2]);
	g.setColor(indent ? c3 : c1);
	g.drawLine(xp[0], yp[0], xp[2], yp[2]);
	}

	public boolean mouseDown(Event e, int mx, int my)
	{
	indent = true;
	repaint();
	(th = new Thread(this)).start();
	return true;
	}

	public boolean mouseUp(Event e, int mx, int my)
	{
	indent = false;
	repaint();
	if (th != null) th.stop();
	return true;
	}

	/**Thread for doing repeated scrolling
	 */
	public void run()
	{
	int stime = 500;
	while(true) {
		scrollbar.arrowClick(mode%2 == 0 ? -1 : 1);
		try { Thread.sleep(stime); } catch(Exception e) { }
		stime = 100;
		}
	}
}


// CbScrollbarCallback
// Methods for reporting the movement of the scrollbar to another object
interface CbScrollbarCallback
{
	/**Called when the scrollbar stops moving. This happens when an
	 * arrow is clicked, the scrollbar is moved by a page, or the user
	 * lets go of the scrollbar after dragging it.
	 * @param sb	The scrollar that has been moved
	 * @param v	The new value
	 */
	void moved(CbScrollbar sb, int v);

	/**Called upon every pixel movement of the scrollbar when it is
	 * being dragged, but NOT when moved() is called.
	 * @param sb	The scrollar that has been moved
	 * @param v	The new value
	 */
	void moving(CbScrollbar sb, int v);
}


0707010004b0e9000081a40000000000000002000000013ac038a0000007ec000000200000000000000000000000000000002200000003reloc/file/CbScrollbarArrow.class 漱壕  - } K M N e f g h i j k
  %
 
 &
  '	  (
  )
  *
  +	  ,	  -	  .	  /	  0	  1	  2	  3	  4	  5
  6	  7
  8
  9
 
 :
 
 ;
 
 <	  =	  > J @ J H Z A [ U \ B ] I ^ B _ U ` U a U b R c Y d Y l U m U n U o R s @ u S v E w ? x C y @ z @ { V | R ()Ljava/awt/Dimension; ()V (I)V (IIII)V (J)V (LCbScrollbar;I)V (Ljava/awt/Color;)V (Ljava/awt/Event;II)Z (Ljava/awt/Graphics;)V (Ljava/lang/Runnable;)V ([I[II)V <init> CbScrollbar CbScrollbar.java CbScrollbarArrow CbScrollbarCallback Code ConstantValue 
Exceptions I LCbScrollbar; LineNumberTable Ljava/awt/Color; Ljava/lang/Thread; LocalVariables 
SourceFile Z 
arrowClick bc drawLine fillPolygon fillRect hc1 hc2 hc3 height indent inside java/awt/Canvas java/awt/Component java/awt/Dimension java/awt/Graphics java/lang/Exception java/lang/Runnable java/lang/Thread lc1 lc2 lc3 mode 	mouseDown mouseUp paint repaint run 	scrollbar setColor size sleep start stop th width      	    o R     u S     d Y     c Y     { V      J D  O   3     * *+ *     T          	     r G  O    	  *  $=*  >*  *   
*  :*  *   
*  :*  *   
*  :+*   + 
:
:*  ,lOdOOOdOdO *  *OlOdOOdOO `*  ,OdOdOlOdOO /*  'OdOOOlOdO+ + +*    +.... +*    +....     T   v     * D ^ i	 q
 {          $7 =!F"X#l$~%  p F  O   ?     * * * 
Y* Z # !    T      * + 	, -  q F  O   =     * * * # 
* # "    T      2 3 	4 5  t @  O   X     (<* * p   吀   Wd<    !   T      < > ? "@ %=  X    L0707010004b0ea000081a40000000000000002000000013ac038a000000112000000200000000000000000000000000000002500000003reloc/file/CbScrollbarCallback.class  漱壕  -    	  (LCbScrollbar;I)V CbScrollbar CbScrollbar.java CbScrollbarArrow CbScrollbarCallback Code ConstantValue 
Exceptions LineNumberTable LocalVariables 
SourceFile java/lang/Object moved moving                        0707010004b0eb000081a40000000000000002000000013ac038a000000e94000000200000000000000000000000000000001a00000003reloc/file/CbSlider.class 漱壕  -   p | U   	  H	  B
  7	  G	  1
  ;
  Q	  M	  0  R	  =	  ?	  @	  5
  9
  2
  J	  S
  N	  6	  E
  P  L	  4	  K	  :	  /	  <
  F
  .
  8	  O	  D	  >
  3	  A
  I	  C Z q \      l  n Y k    u  Z r `  h  o  Z  b  v      ^  }  [         Y   ]  g   T c  i     { y  Z  m  X  _ z (Ljava/awt/Graphics;)V java/awt/Color 
setMinimum 
setMaximum moved (IIII)V <init> dragging hc3 hc2 hc1 callback checkPos 
SourceFile 	lightGray darkGray CbSlider.java setTicks 
Exceptions fillPolygon preferredSize moving LineNumberTable black size repaint drawLine max CbSlider (IIIILCbSliderCallback;)V (III)V 	mouseExit (I)V ticks inside 
mouseEnter getPosition white LCbSliderCallback; (Ljava/awt/Color;)V java/awt/Canvas dragx minimumSize CbSliderCallback java/awt/Component 
getMinimum ()V py px ()I min setPosition lc3 java/awt/Dimension lc2 (II)V lc1 ([I[II)V setColor java/awt/Graphics 	mouseDrag update width Z fillRect (Ljava/awt/Event;II)Z 	mouseDown ()Ljava/awt/Dimension; paint dir ConstantValue I mouseUp Code height pos 
getMaximum (LCbSlider;I)V LocalVariables Ljava/awt/Color;                      o            _ z                                   ^      ]      \      u      v      [      }      Z Y     '     * %    j   
     
   Z q          a* * ' * # *  )* ' * Y   曳 
 *   "* * 	* -* (* !* *     j   & 	   !    	 4 
 ;  E # T $ Z % ` !  e t     *     
* *     j       -  . 	 +  x           *     j       3   t     6     *  * *     j       9  :  ;  7             * (    j       A  V t     2     * (* &*     j       H  I 	 J  F             * !    j       O  W t     2     * !* &*     j       V  W 	 X  T   T    #  
  s*  
*  * M*  
*  * N*  
* " * ):*  6*  6+- + $+ +ldl *+, +l`dl` *+, +d *+d *+ +ddd *+ddd **  %+ddd *+ddd **  M* !* (d66 5dhl`6	+ +	l	ld ** `6*d* h* !* (dl` *l +- 
Y* dOY* dOY* OY* `OY* `O:
Y* `OY* dOY* dOY* dOY* `O:+ ,+* 	  , +* d* `* d* d *+* d* d* * d *+* 	 ,  +* d* `* `* ` *+* `* `* `* d *    j    '   ]  ^ & _ : b L c Q d [ e a f t g y h  k  l  m  n  o  p  q  r  s  w x y z$ {* |= yM h p u      ) : V r [   T          *+     j         w      +     * *     j          	              z*  * !* (d
l * 6* d *Y d  ** ` *Y `  * 	** d +* &*  * **   *     j   :       &  1  4  >  I  L  Q  [  _  f  t  x              S* 	 J** +d ** d* !* (dh*  dl * &*  * **   * * 	    j   "         1  5  <  J  N         Y     )* 	 #* 	*  * **   *     j              !  %  '   s      +     * *     j          	   `      H     (* * ( ** ( * * ! ** !     j          '   h      $      Yd     j         ~           *     j         a    d0707010004b0ec000081a40000000000000002000000013ac038a00000120e000000200000000000000000000000000000001900000003reloc/file/CbSlider.java  import java.awt.*; 

class CbSlider extends Canvas
{
	int dir, min, max, pos;
	CbSliderCallback callback;
	int px, py;
	Color lc1 = Color.white, lc2 = Color.lightGray, lc3 = Color.black;
	Color hc1 = Color.white, hc2 = new Color(210, 210, 210),
	      hc3 = Color.darkGray;
	int ticks = 0;
	boolean inside = false, dragging = false;
	int dragx;

	/**Create a new slider
	 * @param d		0=horizontal, 1=vertical
	 * @param mi	Minimum value
	 * @param ma	Maximum value
	 * @param p		Current value
	 */
	public CbSlider(int d, int mi, int ma, int p)
	{
	this(d, mi, ma, p, null);
	}

	/**Create a new slider
	 * @param d		0=horizontal, 1=vertical
	 * @param mi	Minimum value
	 * @param ma	Maximum value
	 * @param p		Current value
	 * @param cb	Object to call back to
	 */
	public CbSlider(int d, int mi, int ma, int p, CbSliderCallback cb)
	{
	dir = d; min = mi; max = ma;
	pos = p;
	callback = cb;
	}

	/**Toggle drawing of tick-marks on the slider track
	 * @param t		The number of units/tick, or 0 to disable
	 */
	public void setTicks(int t)
	{
	ticks = t;
	repaint();
	}

	/**Returns the current slider position
	 */
	public int getPosition() { return pos; }

	/**Sets the current slider position
	 */
	public void setPosition(int p)
	{
	if (pos != p) {
		pos = p;
		repaint();
		}
	}

	/**Returns the current minimum slider value
	 */
	public int getMinimum() { return min; }

	/**Sets the minimum slider value
	 * @param mi	The new minimum
	 */
	public void setMinimum(int mi)
	{
	min = mi;
	checkPos();
	repaint();
	}

	/**Returns the current maximum slider value
	 */
	public int getMaximum() { return max; }

	/**Sets the maximum slider value
	 * @param mx	The new maximum
	 */
	public void setMaximum(int mx)
	{
	max = mx;
	checkPos();
	repaint();
	}

	public void paint(Graphics g)
	{
	Color c1 = inside ? hc1 : lc1,
	      c2 = inside ? hc2 : lc2,
	      c3 = inside ? hc3 : lc3;

	// draw slider track
	int w = size().width, h = size().height;
	g.setColor(c2);
	g.fillRect(0, 0, w, h);
	g.setColor(c3);
	g.drawLine(8, h/2, w-8, h/2);
	g.setColor(c1);
	g.drawLine(8, h/2+1, w-8, h/2+1);

	// draw border
	g.setColor(c1);
	g.drawLine(0, 0, w-1, 0);
	g.drawLine(0, 0, 0, h-1);
	g.setColor(c3);
	g.drawLine(w-1, h-1, w-1, 0);
	g.drawLine(w-1, h-1, 0, h-1);
	if (inside) {
		g.drawLine(w-2, h-2, w-2, 0);
		g.drawLine(w-2, h-2, 0, h-2);
		}

	// draw tick marks
	if (ticks != 0) {
		int mm = max-min;
		for(int i=0; i<=mm; i+=ticks) {
			int tx = ((w-16)*i / mm) + 8;
			g.setColor(c3);
			g.drawLine(tx, h/2, tx, h/2-6);
			}
		}

	// draw slider
	px = ((w-16)*pos / (max - min)) + 8;
	py = h/2;
	g.setColor(c2);
	int xpt[] = { px-3, px-3, px, px+3, px+3 };
	int ypt[] = { py+5, py-4, py-6, py-4, py+5 };
	g.fillPolygon(xpt, ypt, 5);
	g.setColor(dragging ? c3 : c1);
	g.drawLine(px-3, py+5, px-3, py-4);
	g.drawLine(px-3, py-4, px, py-6);
	g.setColor(dragging ? c1 : c3);
	g.drawLine(px-3, py+5, px+3, py+5);
	g.drawLine(px+3, py+5, px+3, py-4);
	}

	public void update(Graphics g) { paint(g); }

	public boolean mouseEnter(Event e, int x, int y)
	{
	inside = true;
	repaint();
	return true;
	}

	public boolean mouseDown(Event e, int x, int y)
	{
	int step = ticks==0 ? (max-min)/10 : ticks;
	if (x < px-3) {
		// move one tick to the left
		pos -= step;
		}
	else if (x > px+3) {
		// move one tick to the right
		pos += step;
		}
	else {
		// start dragging
		dragging = true;
		dragx = x-px;
		}
	checkPos();
	if (callback != null)
		callback.moved(this, pos);
	repaint();
	return true;
	}

	public boolean mouseDrag(Event e, int x, int y)
	{
	if (dragging) {
		px = x-dragx;
		pos = (px-8)*(max - min) / (size().width-16);
		checkPos();
		if (callback != null)
			callback.moving(this, pos);
		repaint();
		}
	return dragging;
	}

	public boolean mouseUp(Event e, int x, int y)
	{
	if (dragging) {
		dragging = false;
		if (callback != null)
			callback.moved(this, pos);
		repaint();
		return true;
		}
	return false;
	}

	public boolean mouseExit(Event e, int x, int y)
	{
	inside = false;
	repaint();
	return true;
	}

	protected void checkPos()
	{
	if (pos < min) pos = min;
	else if (pos > max) pos = max;
	}

	public Dimension preferredSize()
	{
	return new Dimension(100, 20);
	}

	public Dimension minimumSize() { return preferredSize(); }
}

interface CbSliderCallback
{
	/**Callled back when the slider stops at a new position
	 * @param s		The slider being moved
	 * @param p		New position
	 */
	public void moved(CbSlider s, int p);

	/**Callled back whenever the slider is being dragged
	 * @param s		The slider being moved
	 * @param p		New position
	 */
	public void moving(CbSlider s, int p);
}
  0707010004b0ed000081a40000000000000002000000013ac038a0000000f0000000200000000000000000000000000000002200000003reloc/file/CbSliderCallback.class 漱壕  -     moved ConstantValue CbSlider.java 
Exceptions LineNumberTable 
SourceFile LocalVariables Code java/lang/Object moving (LCbSlider;I)V CbSliderCallback CbSlider                  	    0707010004b0ee000081a40000000000000002000000013ac038a1000006db000000200000000000000000000000000000002000000003reloc/file/DFSAdminExport.class   漱壕  - u : ; < = > n L M N P R T U X Y Z [ \ ] ^ _ ` a c g h i j
  ,
  -
  .
  /
  0
  1	  2
  3
  3	  4	  5	  6	  7
  8
 
 9 I A I D I F I G d C e ? f V k @ m V o V p V q V s @ t B   &desc= &ro= &root= &rw= ()I ()Ljava/lang/String; ()V &(Ljava/lang/String;)Ljava/lang/String; ,(Ljava/lang/String;)Ljava/lang/StringBuffer; (Ljava/lang/String;)V '(Ljava/lang/String;)[Ljava/lang/String; (Ljava/lang/String;C)V '(Ljava/lang/String;Ljava/lang/String;)V ](Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V <init> Code ConstantValue DFSAdminExport DeleteWindow EditorWindow 
Exceptions FileManager FileManager.java FileNode LineNumberTable 
LinkWindow LinuxExport Ljava/lang/String; LocalVariables MkdirWindow 
MultiLabel OverwriteWindow PermissionsPanel PropertiesWindow 
RemoteFile RenameWindow 
SambaShare SearchWindow SharingWindow 
SourceFile StringSplitter append countTokens desc java/lang/Object java/lang/String java/lang/StringBuffer java/util/StringTokenizer 	nextToken params path path= ro root rw split toString urlize          m V     f V     o V     q V     p V      I D  J   l     8*  Y+: M*, $ &*, $ '*, $ )*, $ (*, $ #    S   "   b d e f g 'h /i 7b   I H  J   P      * *+ &*, #*- '* )* (    S      l n 	o p q r l   r E  J   Y     - Y+  M, " N6 -, %S-尽-    S      w x y z !y +{   l @  J        S Y * & + ! !* ' + ! !* ) + ! !* ( + ! !* # + ! *    S        " 1 @ R  b    Q 0707010004b0ef000081a40000000000000002000000013ac038a000000c7a000000200000000000000000000000000000001e00000003reloc/file/DeleteWindow.class 漱壕  -                                              
  V
 $ V
 ( V
 & W
  X
  Y
 + Y
  Z
 % [
 % \
 + ]	  ^	  _
  `	  a	  b	  c
 ' d	  e	  f
 , g
  h
  i
 * j	  k
 ) l	  m
  n
 - o
 % p
 ' q
 ) r
  s	  t
  u
  v
  w
 + x	  y
  z  }  ~                          }            {    }    }        }            |     ()I ()Ljava/lang/String; ()V (I)V (LCbButton;)V (LFileManager;LRemoteFile;)V (LRemoteFile;)V (LRemoteFile;)Z *(Ljava/awt/Component;)Ljava/awt/Component; 8(Ljava/awt/Image;Ljava/lang/String;ILCbButtonCallback;)V (Ljava/awt/LayoutManager;)V &(Ljava/lang/Object;)Ljava/lang/Object; (Ljava/lang/Object;)Z $(Ljava/lang/String;)Ljava/awt/Image; &(Ljava/lang/String;)Ljava/lang/String; ,(Ljava/lang/String;)Ljava/lang/StringBuffer; (Ljava/lang/String;)V '(Ljava/lang/String;)[Ljava/lang/String; (Ljava/lang/String;I)V <(Ljava/lang/String;Ljava/awt/Component;)Ljava/awt/Component; 8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; J(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; <init> CbButton CbButtonCallback Center Code ConstantValue DFSAdminExport DeleteWindow EditorWindow ErrorWindow 
Exceptions FileManager FileManager.java FileNode 
FixedFrame 	Hierarchy HierarchyNode I 
LCbButton; LFileManager; LHierarchy; LRemoteFile; LineNumberTable 
LinkWindow LinuxExport Ljava/lang/String; Ljava/util/Hashtable; Ljava/util/Vector; LocalVariables MkdirWindow 
MultiLabel OverwriteWindow PermissionsPanel PropertiesWindow 
RemoteFile RenameWindow 
SambaShare SearchWindow SharingWindow 
SourceFile South add append cancel 
cancel.gif cancel_b ch click delete delete.cgi?file= delete_b delete_ddesc delete_dtitle delete_efailed delete_fdesc delete_ftitle 	directory dirs dispose file filemgr get 	get_image get_text java/awt/BorderLayout java/awt/Container java/awt/FlowLayout java/awt/Frame java/awt/Panel java/awt/Window java/lang/String java/lang/StringBuffer java/util/Hashtable java/util/Vector length nodemap pack path redraw removeElement save.gif 	setLayout setTitle show 
show_files showing_files text toString type urlize                                        >     * .*+ A*, @** A, T   P L* $Y / K* Y* A, T  
, H Q# 5 7W (Y 0N- &Y 1 K-* Y* A C* A P* 2Z < 6W-* Y* A C* A P* 2Z 9 6W*- 7W* G* M       b     	  ' 2 = O R T [ c o ~                 1     +* < * A +Y 4* @ H U 8 S DM,2 E  * A	* @ H,2 R 3 d* @ =N-* @ ;* A O- * A- NW* A F* @ B :* A F- B :  : JW* A > I* ?+* 9 * ?       ^      " ) 2 ; E K N V ^  i r   	 
             0707010004b0f0000081a40000000000000002000000013ac038a000001583000000200000000000000000000000000000001e00000003reloc/file/EditorWindow.class 漱壕  -}    #$'(,01234defo  	 !CDEFGHIJKLMNOPQRSTUVWX
 + 
 2 
 5 
 . 
  
 3 
 % 
  
  
  
 1 
 ; 
 / 
 > 
 : 
 % 
 - 
 - 
 ; 
 ; 	  
  
 7 
 < 
 0 	  
 : 	  	  
 % 
  
 : 
 ? 
 * 
 ? 
 ? 
 4 
  
  	 % 
 : 
 : 
  	 % 	  
 > 
 6 	 % 	 % 
 = 
 7 	  
 4 
 ? 
 , 
 - 
 4 
 0 
 6 
  	  	 % 
 : 
 : 
  
  
 ; 
  	  	 % 
  	 % 
 : 
 8                     % % % & & )+ - . /5 678 9 : ; < = > ? @ A BY Z [ \]^ _ `a
b c gh i j k l m n p qr
s s t t u v wx
y z{ |  &trust= ()I ()J ()Ljava/io/InputStream; ()Ljava/io/OutputStream; ()Ljava/lang/String; ()Ljava/net/URL; ()Ljava/net/URLConnection; ()V (I)I (I)Ljava/lang/String; (I)V (II)Ljava/lang/String; (II)V (II[BI)V (J)Ljava/lang/StringBuffer; (LCbButton;)V .(LFileManager;Ljava/lang/String;LRemoteFile;)V (LRemoteFile;)V (LRemoteFile;)Z (LRemoteFile;LFileManager;)V *(Ljava/awt/Component;)Ljava/awt/Component; (Ljava/awt/Font;)V 8(Ljava/awt/Image;Ljava/lang/String;ILCbButtonCallback;)V (Ljava/awt/LayoutManager;)V (Ljava/io/InputStream;)V &(Ljava/lang/Object;)Ljava/lang/String; (Ljava/lang/Object;)Z  (Ljava/lang/String;)LRemoteFile; $(Ljava/lang/String;)Ljava/awt/Image; &(Ljava/lang/String;)Ljava/lang/String; ,(Ljava/lang/String;)Ljava/lang/StringBuffer; (Ljava/lang/String;)V (Ljava/lang/String;II)V "(Ljava/lang/String;LFileManager;)V <(Ljava/lang/String;Ljava/awt/Component;)Ljava/awt/Component; 8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; !(Ljava/lang/String;Z)LRemoteFile; #(Ljava/net/URL;Ljava/lang/String;)V (Z)V ([B)V ([BI)V ([BII)I / <init> ?rand= CbButton CbButtonCallback Center Code ConstantValue DFSAdminExport DeleteWindow EditorWindow ErrorWindow 
Exceptions FileManager FileManager.java FileNode 
FixedFrame I J 
LCbButton; LFileManager; LRemoteFile; LineInputStream LineNumberTable 
LinkWindow LinuxExport Ljava/awt/TextArea; Ljava/awt/TextField; Ljava/lang/String; LocalVariables MkdirWindow 
MultiLabel North OverwriteWindow PermissionsPanel PropertiesWindow 
RemoteFile RenameWindow 
SambaShare SearchWindow SharingWindow 
SourceFile South West add append cancel 
cancel.gif cancel_b click close courier currentTimeMillis dispose edit 
edit_eover 
edit_esave edit_filename 
edit_title edit_title2 equals file filemgr find find_directory getBytes getContentLength getDocumentBase getInputStream getOutputStream getText 	get_image gets group java/applet/Applet java/awt/BorderLayout java/awt/Component java/awt/Container java/awt/FlowLayout java/awt/Font java/awt/Frame java/awt/Label java/awt/Panel java/awt/TextArea java/awt/TextComponent java/awt/TextField java/awt/Window java/io/InputStream java/io/OutputStream java/lang/Exception java/lang/String java/lang/StringBuffer java/lang/System java/lang/Throwable java/net/URL java/net/URLConnection lastIndexOf length makeUI modified name openConnection pack path perms printStackTrace read save save.cgi save.gif save_b select setDoOutput setFont 	setLayout setText setTitle show show.cgi 
show_files showing_files size 	substring text toString 	trim_path trust type urlize user valueOf write         ]    /    g    )    6    7           F     *, D*+ [*, \* j** \* [ o 伓 y >Y* \ a ;Y K* [ o 喍 S S W R S* \ 劧 S 偡 MN- m: `: b:6 d r`6尽* Y :Y N x V* [镜 }盢- q  -   9    ^   N 
O P Q -T -U 8V NW YX kU oY uZ ~[ \ ] ^ ] _ ` a T c L              d*, D*, \* j** \  y* l+ Z +  ;Y+ 埛 K S 偠 x* l* l d i* l d i t         i 
j k l !m Hn cg  [     ]     * +Y @ w H 2Y AM, +Y @ w, 1Y* \  J QW,* 5Y BZ l QW*, QW** 3YP EZ Y QW* Y /Y
 L v 2Y AM, .Y C w,* Y* \ e* \ * GZ s PW,* Y* \	 e* \ * GZ T PW*, QW* n* z      ^   s t u v "w 9x Ly T{ k| ~} ~            q *         +* sMN* [ e* \* l d :/ h6* \  ^M, ,` ~ ]N- -- 厵 -   * \ 伔 I* [ o:* Y d: >Y* \ a ;Y K 喍 S S W R S* \ 劧 S 偡 M: m: u c:	 i:


 _	
 壔 Y b H: f: i  * \ 伔 I U f: U : q* [ i* %Y* \, F [- H-* [ 叺 -* [ 嚨 -* [ g g-* [ } }-* [ p p-* [ k k $,* [ O * [ i }* [ W k* \* \ | {W* X* X  58 9     ?      # , 0 9 = B P T c f q t u ~               
 #()058@GY]hs~ "    0707010004b0f1000081a40000000000000002000000013ac038a00000052b000000200000000000000000000000000000001d00000003reloc/file/ErrorWindow.class  漱壕  - d A D N P > ? @ E H I Q U V W X Y Z [ \
 	 %
 
 %
  %
  &
  &
  '
  (
  )
  *
  +
  ,	  -
  .
  /
  0
  1
  2 = 3 = 4 = 5 = : = ; R 7 R < T 3 ] L _ 3 ` 8 a 9 b : c 3 ()V (I)V (II)V (LCbButton;)V *(Ljava/awt/Component;)Ljava/awt/Component; '(Ljava/awt/Component;Ljava/awt/Color;)V (Ljava/awt/LayoutManager;)V (Ljava/lang/String;)V '(Ljava/lang/String;LCbButtonCallback;)V <(Ljava/lang/String;Ljava/awt/Component;)Ljava/awt/Component; <init> BorderPanel CbButton CbButtonCallback Center Code ConstantValue Error ErrorWindow ErrorWindow.java 
Exceptions 
FixedFrame 	GrayPanel 
LCbButton; LineNumberTable Ljava/awt/Color; LocalVariables Ok 
SourceFile South Util add click dispose java/awt/BorderLayout java/awt/Color java/awt/Container java/awt/FlowLayout java/awt/Frame java/awt/GridLayout java/awt/Label java/awt/Window 	lightGray ok pack recursiveBackground 	setLayout setTitle show    	      ^ J      = :  B        {* * Y  " Y M, Y  ", Y+  W*, W 
Y N- Y  "- Y*  W*- W*  * $* #*  !    K   >      	  
   %  2  :  B  N  ]  e  i  m  s  z   S 6  B   !     *     K   
        O    F 0707010004b0f2000081a40000000000000002000000013ac038a00000022d000000200000000000000000000000000000001c00000003reloc/file/ErrorWindow.java   import java.awt.*;

class ErrorWindow extends FixedFrame implements CbButtonCallback
{
	CbButton ok;

	ErrorWindow(String m)
	{
	setLayout(new BorderLayout());
	Panel cen = new BorderPanel(1);
	cen.setLayout(new GridLayout(1, 1));
	cen.add(new Label(m));
	add("Center", cen);
	Panel bot = new GrayPanel();
	bot.setLayout(new FlowLayout(FlowLayout.CENTER));
	bot.add(new CbButton("Ok", this));
	add("South", bot);
	pack();
	show();
	setTitle("Error");
	Util.recursiveBackground(this, Color.lightGray);
	}

	public void click(CbButton b)
	{
	dispose();
	}
}

   0707010004b0f3000081a40000000000000002000000013ac038a000003cbe000000200000000000000000000000000000001d00000003reloc/file/FileManager.class  漱壕  -O=廫)>櫄> B@1234589:;<@DIRSTefklmv	#$23456789:;<=>?BDEGLN=>?CEFGJLMNOZ\]ghijnopqrstuw|
 F
 F
 F
 F
 F
 F
 F
 bG
 H
 I
 J
 fK
 yK
 uL
 xM
 kN
 jO
 gP
 wP
 }P
 zQ
 cR
 nS
 eT
 hT
 pT
 {T
 T
 T
 gU
 oU
 qU
 |U
 V
 W
 rX	 iY
 jZ
 x[
 \
 ]
 ^
 r_
 `
 a
 b
 c
 d	 me
 f
 rg
 nh
 i	 ij
 k
 l	 im	 in	 io
 xp	 iq	 xr	 is	 it
 u
 v	 jw	 ix
 jy
 xz
 i{
 |
 }
 ~
 
 
 
 
 
 
 
 
 
 
 i
 i
 n	 x
 
 
 
 	 j	 i
 	 r
 
 x	 x
 i	 i	 i	 x	 i	 x	 i
 	 i	 i	 i	 m
 	 i
 i
 	 i
 i	 e	 p	 x	 {	 i	 x
 	 i
 
 k	 i
 	 i	 i	 i	 i
 k
 r
 k
 r
 
 
 r	 i
 x
   
 i
 i	 i
 	 x
 i	 i
 
 	 
 i
 i
 i
 i	 x
 
 
 	 i	 x	 i
 i	 x
 
 	 i?3333337777777 7777	77777 7$7+7/}{!0'c.UUayUYWUYX&*ayb^z"UUQ{aUPbbyUU 
a_PU
UUVyU,- U!"%)%+&'(Y**P+,b--.`//#/%/(0{11@BaCPFUIJaKKMU      B  MB  kB $ % &rand= &to= &trust= "&type=application%2Foctet%2Dstream ()I ()J ()LHierarchyNode; ()Ljava/applet/AppletContext; ()Ljava/io/InputStream; ()Ljava/lang/String; ()Ljava/net/URL; ()V ()Z ()[LRemoteFile; (C)Ljava/lang/StringBuffer; (C)Z (I)C (I)I (I)Ljava/lang/String; (I)Ljava/lang/StringBuffer; (I)V (II)Ljava/lang/String; (II)V (III)V (J)Ljava/lang/StringBuffer; (J)V (LCbButton;)V (LFileManager;LRemoteFile;)V ((LFileManager;LRemoteFile;LRemoteFile;)V .(LFileManager;Ljava/lang/String;LRemoteFile;)V (LFileNode;)V (LHierarchy;LHierarchyNode;)V (LHierarchyNode;)V %(LHierarchyNode;LHierarchyCallback;)V (LMultiColumn;I)V (LRemoteFile;)V (LRemoteFile;)Z (LRemoteFile;LFileManager;)V 9(LRemoteFile;LRemoteFile;Ljava/lang/String;LRemoteFile;)V (LRemoteFile;Z)V 4(Ljava/applet/Applet;)Lnetscape/javascript/JSObject; *(Ljava/awt/Component;)Ljava/awt/Component; ,(Ljava/awt/Component;Ljava/awt/Component;D)V %(Ljava/awt/Event;Ljava/lang/Object;)Z 8(Ljava/awt/Image;Ljava/lang/String;ILCbButtonCallback;)V (Ljava/awt/LayoutManager;)V (Ljava/io/InputStream;)V &(Ljava/lang/Object;)Ljava/lang/Object; &(Ljava/lang/Object;)Ljava/lang/String; (Ljava/lang/Object;)V (Ljava/lang/Object;)Z 8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; (Ljava/lang/String;)I  (Ljava/lang/String;)LRemoteFile; $(Ljava/lang/String;)Ljava/awt/Image; &(Ljava/lang/String;)Ljava/lang/String; ,(Ljava/lang/String;)Ljava/lang/StringBuffer; (Ljava/lang/String;)V (Ljava/lang/String;)Z '(Ljava/lang/String;)[Ljava/lang/String; "(Ljava/lang/String;LFileManager;)V <(Ljava/lang/String;Ljava/awt/Component;)Ljava/awt/Component; 0(Ljava/lang/String;Ljava/lang/String;)LCbButton; 8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; '(Ljava/lang/String;Ljava/lang/String;)V J(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; !(Ljava/lang/String;Z)LRemoteFile; 9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object; 9(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String; (Ljava/net/URL;)V 2(Ljava/net/URL;Ljava/lang/String;)Ljava/awt/Image; #(Ljava/net/URL;Ljava/lang/String;)V (Z)V ([F)V ([Ljava/lang/Object;)V +([Ljava/lang/String;LMultiColumnCallback;)V ([[Ljava/lang/Object;)V .. / 0 1 : <clinit> <init> ??? ?from= ?rand= Apr Aug BorderPanel CbButton CbButtonCallback Center Code ConstantValue DFSAdminExport Dec DeleteWindow EditorWindow ErrorWindow 
Exceptions Feb FileManager FileManager.java FileNode 	Hierarchy HierarchyCallback HierarchyNode I J Jan Jul Jun 
LCbButton; 
LFileNode; LHierarchy; LMultiColumn; LRemoteFile; LineInputStream LineNumberTable 
LinkWindow LinuxExport Ljava/awt/Event; Ljava/awt/TextField; Ljava/lang/Object; Ljava/lang/String; Ljava/util/Hashtable; Ljava/util/Vector; LocalVariables Mar May MkdirWindow MultiColumn MultiColumnCallback 
MultiLabel North Nov Oct OverwriteWindow PermissionsPanel PropertiesWindow 
RemoteFile RenameWindow ResizePanel 
SambaShare SearchWindow Sep SharingWindow 
SourceFile Z [LRemoteFile; [Ljava/lang/String; [[Ljava/lang/Object; accroot action add 
addElement addItems append call 
cancel.gif ch charAt clear click 	clickNode close 	closeNode copy.cgi copy.gif copyInto copy_b countTokens currentTimeMillis cut.gif cut_b 
cut_buffer cut_mode delete delete_b dir.gif 	directory dirs doubleClick 
doubleNode edit.gif edit_b edit_enormal endsWith equals file files fill find find_directory find_eaccess 	find_edir find_eexist follow get getAppletContext getDate getDocumentBase getHours getImage 
getMessage 
getMinutes getMonth getParameter getText 	getWindow getYear 	get_image get_text gets group hasMoreTokens images/ indexOf init isLetterOrDigit java/applet/Applet java/applet/AppletContext java/awt/BorderLayout java/awt/Container java/awt/Event java/awt/FlowLayout java/awt/GridLayout java/awt/Label java/awt/Panel java/awt/TextComponent java/awt/TextField java/io/EOFException java/lang/Character java/lang/Exception java/lang/Integer java/lang/Object java/lang/String java/lang/StringBuffer java/lang/System java/lang/Throwable java/net/URL java/util/Date java/util/Hashtable java/util/StringTokenizer java/util/Vector known lang lang.cgi lastIndexOf 
last_event length list list_exports.cgi list_shares.cgi make_button makelink.gif 
makelink_b 	mkdir.gif mkdir_b modified monmap move.cgi name netscape/javascript/JSObject new.gif new_b 	nextToken nfsmode nodemap ntab open open.gif openNode 
openStream open_b pad parseInt 	paste.gif paste_b paste_ecfailed paste_ecopy paste_egone paste_emfailed 
paste_file path pathname perms printStackTrace 	props.gif props_b put redraw refresh.gif 	refresh_b removeElement 
rename.gif rename_b 
right_date right_group 
right_name 
right_size 
right_user root root.cgi 	sambamode sdir.gif 
search.gif search_b select selected setDrawLines 	setLayout setText 	setWidths 	share.gif share_b shared 	shiftDown show show.cgi showDocument 	show_file 
show_files showing_files singleClick size spad stab 	substring target text tmap toString top_copy top_cut 
top_delete top_edit top_info top_new top_open 	top_paste top_refresh 
top_rename 
top_search 	top_share 
top_upload top_view trim 	trim_path trust type upload 
upload.gif upload_b upload_efailed upload_notify urlize user valueOf view.gif view_b view_enormal ! i   d l s    U    MU    U    
U    U    U    U    U    U    U    FU    U    U    U     U    U    W    V    b    X    _    (Y    a    y   {    }{    b    ,b    b    y    P    Ba     A  ?    * 乊 毝" 朰*G  篖*+ 辖 彽 = * +S+ 駳**\ 榈<*2 頝6 .-2= 6* -22-2`1W-尽*4 :2 跈 66 # {Y2 :*0W尽**3 :*練  
2* a6 S* # pY2 :*W (*   eY2 :*W尽 bY : 刌 ⒍" 嘫 : 匶 《"**9*T4 黌	 繵**`*[4 黌C 繵**+*Q4 黌 囟 繵**@*V4 黌 繵**?*R4 黌 繵**J*X4 黌 繵 繵 哬 炊 繵 嘫 :		 匶 《"	**&*P4 黌 斩 繵	**8*S4 黌 繵	**^*Z4 黌> 繵	**6*S4 黌  繵*0  跉 	**5*S4 黌  繵	**A*W4 黌 繵* 
* 	**K*Y4 黌% 繵	 繵 哬 炊 繵 嘫 :

 匶 《"
**(*N4 黌 味 繵
**)*O4 黌 讯 繵
**:*U4 黌 繵
 繵*" 罻 bY : 乊 毝"* jY xY**H 2 Х ┑* kY** ╖ 锥 罻** 莼 bY : 乊 毝""* 塝 淶 罻 廦SY*D4SY*E4SY*F4SY*C4SY*B4S:YQYQYQYQYQYQ:* rY* 糧 芏 罻* $* !** 鄱+W zYD :* 罻* 2 跉 ** 2 遅   [  j Z   .  /  0 & 1 + 2 5 1 ? 3 I 6 P 7 V 8 a 9 ~ 7  =  >  ?  @  A  ?  C  G  H  I  J  K M N K! P) R7 SF JQ Y[ Zj \s ] ^ _ ` a b c d e" g+ h9 iP jg k~ l m n o n p q r s t v w$ x; yR zi {q |z          " % + . 4 7 [ r {       ,  " A   (      cY*+ ,*    [          A   1     ** 慊 怸1 + 嵌9 灏   [          A  )     礁 蠥+? 驗  怸+B    贫9L  怸+B    贫9L 怸+B  *< 嵌9L 揧* + : 梇 : nY : 锒 搂鯳  - : 癕, 廦, 鍿N-           [   J          (  @  [  i  r                       ' A   
 
  ?+ 鶰, * 芏 ,` ~N 7- 嶴-2** 鞸-2S-2-2-2-2[S[S[SS 擸 :6-` 嶽S:,2& *I 鞸 *8,2=2 鞸,2S,2.琚 ( 怸*,2./B  嵌9S ],2. , 怸*,2.鑜/B 	 嵌9S ( 怸*,2.l/B  嵌9S,2@S,2 餝 擸,2  :	 	 鉅 M 	 锠 @ 	 鞝 3 怸*	 
B  *	 
 嵌9S n 	 鞝 2 怸*	 
B  遣 	 2 嵌9S 2 怸 	 2B  *	 dp
 嵌9S,尽﨎* - *+,*+#   [    /               (  3  :  S  ^  d  r  |                   3 > I Y f s              % - 2 =    A   K     #AN  怸 - 嵌9N- -   [              !   + A   K     #AN  怸 - 嵌9N- -   [          !  A A   >      ++ d2L+ 贇+   [           A   *     
, jN- 荼   [        	  A            [        A   >     , jN*,- 邾 *- 鄱+W   [      $ % & "  A            [      +  A      * 芏=  *, d2N* 锥  j:+* 卅 -- -= -=  h*,4 北 g-* +*C +- -= -=  h*a4 北*-*+*	 "   * 锥+* "    * 鄱+W+* - 被 w-* +* 桅 - *- * 颖+* 薛 - *- * 颖+* * 仪  h*<4 北* / 6* `1:* 2:* :  轞:	  h*=5 北*, :
*,: 跈  怸B  嵌9  怸B   嵌9:
  u*
	 Ρ*	*,+* 咋 - 被 f*- け+*  g*,* 侗+*> 8* : 廦*,S:] 萕: h*_ 娑5 北+*   q*,* 副+*   o*,* 繁+* - 被 y*- ケ+*% - 
-= 被 }-* +*  |*,* 贡 3ST  [   a  2 3 4 )5 17 68 E9 Q8 R; Z5 [= c? h@ wA @ C = E G H I E K M N O P K R T U R W Y Z[	W
]_`a$]%c-e4f@gAiLjYkelnmsnoptuvwvxz{c*+339ISTVghp~0  & A  P    x+ >66 c* 2 6* 2 跈 	6 ? +2* 2 跈 	6  * 22+ 跈 6* 骄  h*-+5 *: : 朰+ : :		 跉  :

   66  
2	 跈 
2:6
尽  h*/	+6 =  h*.	+6  * 嗬 j: 駳^ '*+  * * 锥   [    1       ) , / I L O h k x }                  	"137EMQZ_enu ~ A   X     ,+3* "* 甓;N- 跈 *- 遅   [         ! ( * ) A            [        A  )      H*, 制 =**, 嗬 j**, 侄+W* **, 嗬 j* 锥*, d2N-= O**, 嗬 j: *- 嗬 j:*-+ 3 * * 锥-= *-+ '*   [   Z         , A H I U \
 l q w           & A         L 揧* 慊 怸M +?  歉 卸   *< 嵌9 籒* -( 被 揧* 慊 怸M +?  歉 卸  *< 嵌9 籒* -L) 盬       [   N         ! *" /# > B$ L M' U( h) s* ' +  .  I A        S 怸 滾= <* > 魵 &/  + 怸 : 嵌9 荳 	+ 腤* +9   [   & 	  3 4 5 8  9 :8 =; C4 N= H$ A        M+/ >+2:+`1:* : :  xY*, : **,+W   [   * 
  B C D E !F *G /H <I CK L@ /( A        k* + 嗬 廚- N6 L- 怸
 ` 哦9 6 * 怸-2B ,2 -`1 嵌9N,尽-   [   "   P Q R S 2T 8U _R iW / A   (      廙*+,7   [   
   \ ] /# A   ,      廦,SN*+-7   [   
   b 	c /% A   2      廦,SY-S:*+7   [   
   h i   
 A    
  O* 怸* 訖 7 'B  * 腋?  -? 嵌9 :2 鶠   h** 訖 > ;25 北 xY*2, : , 咖 C==@@ 鸬 ..  :* 訖 + + += a**, 嗬 j: jY ┒ * 訖 5*+ 侄 嗬 j:*+ 嗬 j:	 	  	W* 锥**,+W* 訖 * *- 冶   [    +  p q (r 7p <s Ft Ju Vv \t bw cy rz w| }z               	"')-4=DINl 7 A   ]     1* * 昚 灥* 昚 灥 * 昚 灥0* 昚 灥   [           %  & % ' 0  6 A         K 廦SYSY SYSY!SYSYSYSY%SY	$SY
#SYS    [   J    !  "  !   " " ! & " ( ! , " . ! 2 # 4 ! 8 # : ! > # @ ! D # F ! J  x   K  0707010004b0f4000081a40000000000000002000000013ac038a00000ed77000000200000000000000000000000000000001c00000003reloc/file/FileManager.java   import java.awt.*;
import java.io.*;
import java.applet.*;
import java.net.*;
import java.util.*;
import netscape.javascript.JSObject;

// A java filemanager that allows the user to manipulate files on the
// Webmin server. Layout is similar to the windows explorer - directory
// tree on the left, files on the right, action buttons on the top.
public class FileManager extends Applet
	implements CbButtonCallback, HierarchyCallback, MultiColumnCallback
{
	// top buttons
	CbButton open_b, view_b, edit_b, refresh_b, props_b,
		 copy_b, cut_b, paste_b, delete_b, new_b, upload_b, mkdir_b,
		 makelink_b, rename_b, share_b, search_b;

	// Directory tree
	Hierarchy dirs;
	FileNode root;
	Hashtable nodemap = new Hashtable();

	// File list
	MultiColumn files;
	TextField pathname;
	RemoteFile showing_files;

	// Copying and pasting
	String cut_buffer;
	boolean cut_mode;

	static final String monmap[] = { "Jan", "Feb", "Mar", "Apr",
					 "May", "Jun", "Jul", "Aug",
					 "Sep", "Oct", "Nov", "Dec" };
	String accroot[];
	Hashtable lang = new Hashtable();
	Hashtable stab = new Hashtable(),
		  ntab = new Hashtable();
	boolean sambamode;
	int nfsmode;
	String trust;

	public void init()
	{
	setLayout(new BorderLayout());
	StringTokenizer tok = new StringTokenizer(getParameter("root"), " ");
	accroot = new String[tok.countTokens()];
	for(int i=0; tok.hasMoreTokens(); i++)
		accroot[i] = tok.nextToken();
	trust = getParameter("trust");

	// download language strings
	String l[] = get_text("lang.cgi");
	for(int i=0; i<l.length; i++) {
		int eq = l[i].indexOf('=');
		lang.put(l[i].substring(0, eq), l[i].substring(eq+1));
		}

	// list samba file shares
	String s[] = get_text("list_shares.cgi");
	if (s[0].equals("1")) {
		for(int i=1; i<s.length; i++) {
			SambaShare ss = new SambaShare(s[i]);
			stab.put(ss.path, ss);
			}
		sambamode = true;
		}

	// list NFS exports
	String e[] = get_text("list_exports.cgi");
	nfsmode = e.length == 0 ? 0 : Integer.parseInt(e[0]);
	if (nfsmode != 0) {
		for(int i=1; i<e.length; i++) {
			if (nfsmode == 1) {
				// Linux export
				LinuxExport le = new LinuxExport(e[i]);
				ntab.put(le.path, le);
				}
			else if (nfsmode == 2) {
				// Solaris share
				DFSAdminExport de = new DFSAdminExport(e[i]);
				ntab.put(de.path, de);
				}
			}
		}

	// create button panel
	BorderPanel top = new BorderPanel(2);
	top.setLayout(new FlowLayout(FlowLayout.LEFT, 2, 2));

	Panel top1 = new Panel();
	top1.setLayout(new GridLayout(1, 0));
	top1.add(open_b = make_button("open.gif", text("top_open")));
	top1.add(view_b = make_button("view.gif", text("top_view")));
	top1.add(edit_b = make_button("edit.gif", text("top_edit")));
	top1.add(refresh_b = make_button("refresh.gif", text("top_refresh")));
	top1.add(props_b = make_button("props.gif", text("top_info")));
	top1.add(search_b = make_button("search.gif", text("top_search")));
	top.add(top1);
	top.add(new Label(""));
	
	Panel top2 = new Panel();
	top2.setLayout(new GridLayout(1, 0));
	top2.add(delete_b = make_button("cancel.gif", text("top_delete")));
	top2.add(new_b = make_button("new.gif", text("top_new")));
	top2.add(upload_b = make_button("upload.gif", text("top_upload")));
	top2.add(mkdir_b = make_button("mkdir.gif", text("top_new")));
	if (!getParameter("follow").equals("1"))
		top2.add(makelink_b = make_button("makelink.gif",
					text("top_new")));
	top2.add(rename_b = make_button("rename.gif", text("top_rename")));
	if (sambamode || nfsmode != 0)
		top2.add(share_b = make_button("share.gif", text("top_share")));
	top.add(top2);
	top.add(new Label(""));

	Panel top3 = new Panel();
	top3.setLayout(new GridLayout(1, 0));
	top3.add(copy_b = make_button("copy.gif", text("top_copy")));
	top3.add(cut_b = make_button("cut.gif", text("top_cut")));
	top3.add(paste_b = make_button("paste.gif", text("top_paste")));
	top.add(top3);
	add("North", top);

	// create directory tree
	BorderPanel left = new BorderPanel(2);
	left.setLayout(new BorderLayout());
	root = new FileNode(new RemoteFile(this, get_text("root.cgi")[0],null));
	left.add("Center", dirs = new Hierarchy(root, this));
	root.open = true; root.fill();

	// create file window
	BorderPanel right = new BorderPanel(2);
	right.setLayout(new BorderLayout());
	right.add("North", pathname = new TextField());
	//pathname.setFont(new Font("courier", Font.PLAIN, 8));
	String cols[] = { "", text("right_name"), text("right_size"),
			  text("right_user"), text("right_group"),
			  text("right_date") };
	float widths[] = { .07f, .33f, .15f, .15f, .15f, .15f };
	right.add("Center", files = new MultiColumn(cols, this));
	files.setWidths(widths);
	files.setDrawLines(false);
	show_files(root.file);

	ResizePanel mid = new ResizePanel(left, right, .3);
	add("Center", mid);

	// Go to the restricted directory
	if (!accroot[0].equals("/"))
		find_directory(accroot[0], true);
	}

	CbButton make_button(String f, String t)
	{
	return new CbButton(get_image(f), t, CbButton.ABOVE, this);
	}

	// Gets an image from the images directory
	Image get_image(String img)
	{
	return getImage(getDocumentBase(), "images/"+img);
	}

	String[] get_text(String url)
	{
	try {
		long now = System.currentTimeMillis();
		if (url.indexOf('?') > 0) url += "&rand="+now;
		else url += "?rand="+now;
		url += "&trust="+trust;
		URL u = new URL(getDocumentBase(), url);
		Vector lv = new Vector();
		LineInputStream is = new LineInputStream(u.openStream());
		while(true)
			try { lv.addElement(is.gets()); }
			catch(EOFException eof) { break; }
		is.close();
		String rv[] = new String[lv.size()];
		lv.copyInto(rv);
		return rv;
		}
	catch(Exception e) {
		e.printStackTrace();
		//return null;
		String err[] = { e.getMessage() };
		return err;
		}
	}

	// Fill the multicolumn list with files from some directory
	boolean show_files(RemoteFile f)
	{
	RemoteFile fl[] = f.list();
	if (fl == null) return false;
	files.clear();
	Object rows[][] = new Object[fl.length+1][];
	long now = System.currentTimeMillis();

	// Create parent directory rows
	rows[0] = new Object[6];
	rows[0][0] = get_image("dir.gif");
	rows[0][1] = "..";
	rows[0][2] = rows[0][3] = rows[0][4] = rows[0][5] = "";

	// Create file rows
	Date n = new Date(now);
	for(int i=0; i<fl.length; i++) {
		Object row[] = rows[i+1] = new Object[6];
		if (fl[i].shared())
			row[0] = get_image("sdir.gif");
		else
			row[0] = get_image(RemoteFile.tmap[fl[i].type]);
		row[1] = fl[i].name;
		if (fl[i].size < 1000)
			row[2] = spad(fl[i].size, 5)+" B";
		else if (fl[i].size < 1000000)
			row[2] = spad(fl[i].size/1000, 5)+" kB";
		else
			row[2] = spad(fl[i].size/1000000, 5)+" MB";
		row[3] = fl[i].user;
		row[4] = fl[i].group;
		Date d = new Date(fl[i].modified);
		//if (now - fl[i].modified < 24*60*60*1000) {
		if (n.getDate() == d.getDate() &&
		    n.getMonth() == d.getMonth() &&
		    n.getYear() == d.getYear()) {
			// show as hour:min
			row[5] = pad(d.getHours(),2)+":"+
				 pad(d.getMinutes(),2);
			}
		//else if (now - fl[i].modified < 24*60*60*365*1000) {
		else if (n.getYear() == d.getYear()) {
			// show as day/mon
			row[5] = pad(d.getDate(),2)+"/"+
				 monmap[d.getMonth()];
			}
		else {
			// show as mon/year
			row[5] = monmap[d.getMonth()]+"/"+
				 pad(d.getYear()%100, 2);
			}
		}
	files.addItems(rows);
	showing_files = f;
	pathname.setText(f.path);
	return true;
	}

	String pad(int n, int s)
	{
	String rv = String.valueOf(n);
	while(rv.length() < s)
		rv = "0"+rv;
	return rv;
	}

	String spad(int n, int s)
	{
	String rv = String.valueOf(n);
	while(rv.length() < s)
		rv = " "+rv;
	return rv;
	}

	String trim_path(String p)
	{
	while(p.endsWith("/"))
		p = p.substring(0, p.length()-1);
	return p;
	}

	// openNode
	// Called when a node with children is opened
	public void openNode(Hierarchy h, HierarchyNode n)
	{
	FileNode fn = (FileNode)n;
	fn.fill();
	}

	// closeNode
	// Called when a node is closed
	public void closeNode(Hierarchy h, HierarchyNode n)
	{
	}

	// clickNode
	// Called when the user clicks on a node
	public void clickNode(Hierarchy h, HierarchyNode n)
	{
	FileNode fn = (FileNode)n;
	if (showing_files != fn.file)
		show_files(fn.file);
	}

	// doubleNode
	// Called when a user double-clicks on a node
	public void doubleNode(Hierarchy h, HierarchyNode n)
	{
	}

	// Called when a button is clicked
	public void click(CbButton b)
	{
	int s = files.selected();
	RemoteFile f = s < 1 ? null : (showing_files.list())[s-1];
	FileNode d = (FileNode)dirs.selected();
	if (b == edit_b) {
		// Open a window for editing the selected file
		if (f == null) return;
		if (f.type == 0 || f.type > 4)
			new ErrorWindow(text("edit_enormal"));
		else
			new EditorWindow(f, this);
		}
	else if (b == view_b) {
		// View the selected file in the browser
		if (f == null) return;
		if (f.type == 0 || f.type > 4)
			new ErrorWindow(text("view_enormal"));
		else
			show_file(f, false);
		}
	else if (b == open_b) {
		// Open the selected directory
		d.open = !d.open;
		d.fill();
		dirs.redraw();
		}
	else if (b == refresh_b) {
		// Refesh the selected directory (and thus any subdirs)
		d.known = false;
		d.file.list = null;
		d.fill();
		show_files(d.file);
		}
	else if (b == props_b) {
		// Display the properties window
		if (f == null) return;
		new PropertiesWindow(f, this);
		}
	else if (b == copy_b) {
		// Copy the selected file
		if (f == null) return;
		cut_buffer = f.path;
		cut_mode = false;
		}
	else if (b == cut_b) {
		// Cut the selected file
		if (f == null) return;
		cut_buffer = f.path;
		cut_mode = true;
		}
	else if (b == paste_b) {
		// Paste the copied file
		if (cut_buffer == null) {
			new ErrorWindow(text("paste_ecopy"));
			return;
			}
		int sl = cut_buffer.lastIndexOf('/');
		String cut_name = cut_buffer.substring(sl+1),
		       cut_dir = cut_buffer.substring(0, sl);
		RemoteFile cut_par = find_directory(cut_dir, false), cut_file;
		if (cut_par == null ||
		    (cut_file = cut_par.find(cut_name)) == null) {
			new ErrorWindow(text("paste_egone", cut_name));
			return;
			}

		// Check for an existing file
		RemoteFile already = showing_files.find(cut_name);
		String sp = showing_files.path;
		String dest_path = sp.equals("/") ? sp+cut_name
						  : sp+"/"+cut_name;
		if (already != null) {
			// File exists .. offer to rename
			new OverwriteWindow(this, already, cut_file);
			return;
			}
		
		// do the move or copy
		paste_file(cut_file, showing_files, dest_path, null);
		}
	else if (b == delete_b) {
		// Delete the selected file
		if (f == null) return;
		new DeleteWindow(this, f);
		}
	else if (b == new_b) {
		// Open a window for creating a file
		new EditorWindow(showing_files.path, this);
		}
	else if (b == upload_b) {
		// Call javascript to open an upload window
		try {
			JSObject win = JSObject.getWindow(this);
			String params[] = { showing_files.path };
			win.call("upload", params);
			}
		catch(Exception e) {
			new ErrorWindow(text("upload_efailed", e.getMessage()));
			}
		}
	else if (b == mkdir_b) {
		// Prompt for new directory
		new MkdirWindow(showing_files.path, this);
		}
	else if (b == makelink_b) {
		// Prompt for a new symlink
		new LinkWindow(showing_files.path, this);
		}
	else if (b == rename_b) {
		// Prompt for new filename
		if (f == null) return;
		new RenameWindow(this, f);
		}
	else if (b == share_b) {
		// Open a window for editing sharing options
		if (f == null || f.type != RemoteFile.DIR) return;
		new SharingWindow(f, this);
		}
	else if (b == search_b) {
		// Open window for finding a file
		new SearchWindow(showing_files.path, this);
		}
	}

	// Returns the object for some directory, or null if not found.
	RemoteFile find_directory(String p, boolean fill)
	{
	int l = p.length();
	boolean can = false;
	for(int r=0; r<accroot.length; r++) {
		int rl = accroot[r].length();
		if (accroot[r].equals("/"))
			can = true;
		else if (l >= rl && p.substring(0, rl).equals(accroot[r]))
			can = true;
		else if (l < rl && accroot[r].substring(0, l).equals(p))
			can = true;
		}
	if (!can) {
		new ErrorWindow(text("find_eaccess", p));
		return null;
		}
	FileNode posnode = root;
	RemoteFile pos = posnode.file;
	StringTokenizer tok = new StringTokenizer(p, "/");
	while(tok.hasMoreTokens()) {
		String fn = tok.nextToken();
		if (fn.equals("")) continue;
		RemoteFile fl[] = pos.list();
		if (fl == null) return null;
		if (fill) {
			posnode.open = true;
			posnode.fill();
			}
		boolean found = false;
		for(int i=0; i<fl.length; i++)
			if (fl[i].name.equals(fn)) {
				pos = fl[i];
				found = true;
				}
		if (!found) {
			new ErrorWindow(text("find_eexist", fn, p));
			return null;
			}
		if (pos.type != 0) {
			new ErrorWindow(text("find_edir", fn, p));
			return null;
			}
		if (fill)
			posnode = (FileNode)nodemap.get(pos);
		}
	if (fill) {
		if (show_files(pos)) {
			posnode.fill();
			posnode.open = true;
			dirs.select(posnode);
			dirs.redraw();
			}
		}
	return pos;
	}

	public boolean action(Event e, Object o)
	{
	if (e.target == pathname) {
		// A new path was entered.. cd to it
		String p = pathname.getText().trim();
		if (p.equals("")) return true;
		find_directory(p, true);
		return true;
		}
	return false;
	}

        // singleClick
        // Called on a single click on a list item
        public void singleClick(MultiColumn list, int num)
	{
	}

        // doubleClick
        // Called upon double-clicking on a list item
        public void doubleClick(MultiColumn list, int num)
	{
	if (num == 0) {
		// Go to parent directory
		if (showing_files.directory != null) {
			((FileNode)nodemap.get(showing_files)).open = false;
			show_files(showing_files.directory);
			dirs.select((FileNode)nodemap.get(showing_files));
			dirs.redraw();
			}
		return;
		}
	RemoteFile d = (showing_files.list())[num-1];
	if (d.type == 0) {
		// Open this directory
		FileNode pn = (FileNode)nodemap.get(showing_files);
		pn.fill();
		pn.open = true;
		FileNode fn = (FileNode)nodemap.get(d);
		if (show_files(d)) {
			fn.fill();
			fn.open = true;
			dirs.select(fn);
			dirs.redraw();
			}
		}
	else if (d.type <= 4) {
		// Direct the browser to this file
		show_file(d, list.last_event.shiftDown());
		}
	}

	void show_file(RemoteFile f, boolean download)
	{
	try {
		if (download) {
			URL u = new URL(getDocumentBase(),
					"show.cgi"+urlize(f.path)+
					"?rand="+System.currentTimeMillis()+
					"&type=application%2Foctet%2Dstream"+
					"&trust="+trust);
			getAppletContext().showDocument(u);
			}
		else {
			URL u = new URL(getDocumentBase(),
					"show.cgi"+urlize(f.path)+
					"?rand="+System.currentTimeMillis()+
					"&trust="+trust);
			getAppletContext().showDocument(u, "show");
			}
		}
	catch(Exception e) { }
	}

	static String urlize(String s)
	{
	StringBuffer rv = new StringBuffer();
	for(int i=0; i<s.length(); i++) {
		char c = s.charAt(i);
		//if (c == '%' || c == '+' || c == '&' || c == '?' || c == ' ' ||
		//   c == '#' || c == '<' || c == '>')
		if (!Character.isLetterOrDigit(c) && c != '/')
			rv.append("%"+Integer.toString(c, 16));
		else
			rv.append(c);
		}
	return rv.toString();
	}

	public void upload_notify(String path_str, String info)
	{
	int sl = path_str.lastIndexOf('/');
	String par_str = path_str.substring(0, sl),
	       file_str = path_str.substring(sl+1);
	RemoteFile par = find_directory(par_str, false);
	RemoteFile upfile = par.find(file_str);
	if (upfile == null) {
		upfile = new RemoteFile(this, info, par);
		par.add(upfile);
		}
	show_files(showing_files);
	}

	public String text(String k, String p[])
	{
	String rv = (String)lang.get(k);
	if (rv == null) rv = "???";
	for(int i=0; i<p.length; i++) {
		int idx = rv.indexOf("$"+(i+1));
		if (idx != -1)
			rv = rv.substring(0, idx)+p[i]+rv.substring(idx+2);
		}
	return rv;
	}

	public String text(String k)
	{
	String p[] = { };
	return text(k, p);
	}

	public String text(String k, String p1)
	{
	String p[] = { p1 };
	return text(k, p);
	}

	public String text(String k, String p1, String p2)
	{
	String p[] = { p1, p2 };
	return text(k, p);
	}

	void paste_file(RemoteFile src, RemoteFile dir,
			String dest, RemoteFile already)
	{
	// Move or copy the actual file
	String[] rv = get_text((cut_mode ? "move.cgi" : "copy.cgi")+
			       "?from="+urlize(cut_buffer)+
			       "&to="+urlize(dest));
	if (rv[0].length() > 0) {
		new ErrorWindow(text(
			cut_mode ? "paste_emfailed"
				 : "paste_ecfailed", rv[0]));
		return;
		}
	RemoteFile file = new RemoteFile(this, rv[1], dir);
	if (already == null) {
		// Add to the parent directory
		dir.add(file);
		}
	else {
		// Update the existing file
		already.type = file.type;
		already.user = file.user;
		already.group = file.group;
		already.size = file.size;
		already.perms = file.perms;
		already.modified = file.modified;
		file = already;
		}
	if (cut_mode) {
		// Delete the old file
		src.directory.delete(src);
		}
	if (src.type == 0) {
		// Moving or copying a directory.. update the tree
		FileNode dest_par_node =
			(FileNode)nodemap.get(showing_files);
		dest_par_node.add(new FileNode(file));
		if (cut_mode) {
			FileNode cut_par_node =
				(FileNode)nodemap.get(src.directory);
			FileNode cut_file_node =
				(FileNode)nodemap.get(src);
			if (cut_par_node != null &&
			    cut_file_node != null)
				cut_par_node.ch.removeElement(
							cut_file_node);
			}
		dirs.redraw();
		}
	show_files(showing_files);
	if (cut_mode) {
		// Paste from the destination path from now on
		cut_mode = false;
		cut_buffer = dest;
		}

	}
}

// A node in the directory tree
class FileNode extends HierarchyNode
{
	FileManager parent;
	RemoteFile file;
	boolean known;

	FileNode(RemoteFile file)
	{
	this.file = file;
	parent = file.parent;
	im = parent.get_image(file.shared() ? "sdir.gif" : "dir.gif");
	ch = new Vector();
	text = file.name;
	parent.nodemap.put(file, this);
	}

	// Create the nodes for subdirectories
	void fill()
	{
	if (!known) {
		RemoteFile l[] = file.list();
		if (l == null) return;
		ch.removeAllElements();
		for(int i=0; i<l.length; i++)
			if (l[i].type == 0)
				ch.addElement(new FileNode(l[i]));
		parent.dirs.redraw();
		known = true;
		}
	}

	void add(FileNode n)
	{
	for(int i=0; i<=ch.size(); i++) {
		FileNode ni = i==ch.size() ? null : (FileNode)ch.elementAt(i);
		if (ni == null || ni.text.compareTo(n.text) > 0) {
			ch.insertElementAt(n, i);
			break;
			}
		}
	}

}

class RemoteFile
{
	static final int DIR = 0;
	static final int TEXT = 1;
	static final int IMAGE = 2;
	static final int BINARY = 3;
	static final int UNKNOWN = 4;
	static final int SYMLINK = 5;
	static final int DEVICE = 6;
	static final int PIPE = 7;
	static final String[] tmap = { "dir.gif", "text.gif", "image.gif",
				       "binary.gif", "unknown.gif",
				       "symlink.gif", "device.gif",
				       "pipe.gif" };

	FileManager parent;
	String path, name;
	int type;
	String user, group;
	int size;
	int perms;
	long modified;
	String linkto;
	RemoteFile list[];
	RemoteFile directory;

	// Parse a line of text to a file object
	RemoteFile(FileManager parent, String line, RemoteFile d)
	{
	this.parent = parent;
	StringTokenizer tok = new StringTokenizer(line, "\t");
	path = tok.nextToken();
	type = Integer.parseInt(tok.nextToken());
	user = tok.nextToken();
	group = tok.nextToken();
	size = Integer.parseInt(tok.nextToken());
	perms = Integer.parseInt(tok.nextToken());
	modified = Long.parseLong(tok.nextToken())*1000;
	if (type == 5) linkto = tok.nextToken();
	directory = d;
	if (path.equals("/")) name = "/";
	else name = path.substring(path.lastIndexOf('/')+1);
	}

	// Create a new, empty file object
	RemoteFile() { }

	// Returns a list of files in this directory
	RemoteFile[] list()
	{
	if (list == null) {
		String l[] = parent.get_text("list.cgi?dir="+
					     parent.urlize(path));
		if (l[0].length() > 0) {
			//list = new RemoteFile[0];
			// Error reading the remote directory!
			new ErrorWindow(parent.text("list_edir", path, l[0]));
			list = null;
			}
		else {
			list = new RemoteFile[l.length-3];
			for(int i=3; i<l.length; i++)
				list[i-3] = new RemoteFile(parent, l[i], this);
			}
		}
	return list;
	}

	RemoteFile find(String n)
	{
	RemoteFile l[] = list();
	if (l != null) {
		for(int i=0; i<l.length; i++)
			if (l[i].name.equals(n))
				return l[i];
		}
	return null;
	}

	void add(RemoteFile f)
	{
	RemoteFile nlist[] = new RemoteFile[list.length+1];
	int offset = 0;
	for(int i=0; i<list.length; i++) {
		if (list[i].name.compareTo(f.name) > 0 && offset == 0) {
			nlist[i] = f;
			offset++;
			}
		nlist[i+offset] = list[i];
		}
	if (offset == 0) nlist[list.length] = f;
	list = nlist;
	}

	void delete(RemoteFile f)
	{
	RemoteFile nlist[] = new RemoteFile[list.length-1];
	for(int i=0,j=0; i<list.length; i++)
		if (list[i] != f)
			nlist[j++] = list[i];
	list = nlist;
	}

	boolean shared()
	{
	return type == DIR &&
	       (parent.stab.get(path) != null ||
	        parent.ntab.get(path) != null);
	}
}

class EditorWindow extends FixedFrame implements CbButtonCallback
{
	TextField name;
	TextArea edit;
	CbButton save_b, cancel_b;
	RemoteFile file;
	FileManager filemgr;

	// Editing an existing file
	EditorWindow(RemoteFile f, FileManager p)
	{
	super(500, 300);
	file = f; filemgr = p;
	makeUI(false);
	setTitle(filemgr.text("edit_title", file.path));

	// Load the file
	try {
		URL u = new URL(filemgr.getDocumentBase(),
				"show.cgi"+filemgr.urlize(file.path)+
				"?rand="+System.currentTimeMillis()+
				"&trust="+filemgr.trust);
		URLConnection uc = u.openConnection();
		byte buf[] = new byte[uc.getContentLength()];
		InputStream is = uc.getInputStream();
		int got = 0;
		while(got < buf.length)
			got += is.read(buf, got, buf.length-got);
		edit.setText(new String(buf, 0));
		is.close();
		file.size = buf.length;
		}
	catch(Exception e) { e.printStackTrace(); }
	}

	// Creating a new file
	EditorWindow(String f, FileManager p)
	{
	super(500, 300);
	filemgr = p;
	makeUI(true);
	setTitle(filemgr.text("edit_title2"));
	name.setText(f.equals("/") ? f : f+"/");
	name.select(name.getText().length(), name.getText().length());
	}

	void makeUI(boolean add_name)
	{
	setLayout(new BorderLayout());
	if (add_name) {
		Panel np = new Panel();
		np.setLayout(new BorderLayout());
		np.add("West", new Label(filemgr.text("edit_filename")));
		np.add("Center", name = new TextField());
		add("North", np);
		}
	add("Center", edit = new TextArea(20, 80));
	edit.setFont(new Font("courier", Font.PLAIN, 14));
	Panel bot = new Panel();
	bot.setLayout(new FlowLayout(FlowLayout.RIGHT));
	bot.add(save_b = new CbButton(filemgr.get_image("save.gif"),
				      filemgr.text("save"),
				      CbButton.LEFT, this));
	bot.add(cancel_b = new CbButton(filemgr.get_image("cancel.gif"),
					filemgr.text("cancel"),
					CbButton.LEFT, this));
	add("South", bot);
	pack();
	show();
	}

	public void click(CbButton b)
	{
	if (b == save_b) {
		RemoteFile par = null, already = null;
		String save_path;
		if (file == null) {
			// Locate the filemgr directory
			save_path = filemgr.trim_path(name.getText());
			int sl = save_path.lastIndexOf('/');
			par = filemgr.find_directory(
					save_path.substring(0, sl), false);
			if (par == null) return;
			already = par.find(save_path.substring(sl+1));
			if (already != null &&
			    (already.type == 0 || already.type == 5)) {
				new ErrorWindow(
					filemgr.text("edit_eover", save_path));
				return;
				}
			}
		else save_path = file.path;

		// Save the file back again
		String s = edit.getText(), line;
		try {
			URL u = new URL(filemgr.getDocumentBase(),
					"save.cgi"+filemgr.urlize(save_path)+
					"?rand="+System.currentTimeMillis()+
					"&trust="+filemgr.trust);
			URLConnection uc = u.openConnection();
			uc.setDoOutput(true);
			OutputStream os = uc.getOutputStream();
			byte buf[] = new byte[s.length()];
			s.getBytes(0, buf.length, buf, 0);
			os.write(buf);
			LineInputStream is = new LineInputStream(
							uc.getInputStream());
			String err = is.gets();
			if (err.length() > 0) {
				new ErrorWindow(
					filemgr.text("edit_esave", err));
				is.close();
				return;
				}
			line = is.gets();
			is.close();
			}
		catch(Exception e) { e.printStackTrace(); return; }

		if (file == null) {
			// Create and insert or replace the file object
			file = new RemoteFile(filemgr, line, par);
			if (already != null) {
				// A file with this name exists
				already.type = file.type;
				already.user = file.user;
				already.group = file.group;
				already.size = file.size;
				already.perms = file.perms;
				already.modified = file.modified;
				}
			else {
				// Add to the list
				par.add(file);
				}
			}
		else {
			file.size = s.length();
			file.modified = System.currentTimeMillis();
			}
		filemgr.show_files(filemgr.showing_files);
		dispose();
		}
	else {
		// Just close
		dispose();
		}
	}
}

class PropertiesWindow extends FixedFrame implements CbButtonCallback
{
	RemoteFile file;
	FileManager filemgr;
	CbButton save_b, cancel_b;

	TextField linkto;
	TextField user, group;
	Checkbox setuid, setgid;
	PermissionsPanel user_p, group_p, other_p;
	Checkbox sticky;
	Choice rec_mode;

	PropertiesWindow(RemoteFile f, FileManager p)
	{
	file = f;
	filemgr = p;

	// Create UI
	setTitle(f.path);
	setLayout(new BorderLayout());
	Panel bot = new Panel();
	bot.setLayout(new FlowLayout(FlowLayout.RIGHT));
	bot.add(save_b = new CbButton(filemgr.get_image("save.gif"),
				      filemgr.text("save"),
				      CbButton.LEFT, this));
	bot.add(cancel_b = new CbButton(filemgr.get_image("cancel.gif"),
					filemgr.text("cancel"),
					CbButton.LEFT, this));
	add("South", bot);
	Panel mid = new Panel();
	mid.setLayout(new BorderLayout());
	add("Center", mid);

	// Create file details section
	Panel det = new LinedPanel(filemgr.text("info_file")),
	      dl = new Panel(), dr = new Panel();
	setup_leftright(det, dl, dr);
	add_item(filemgr.text("info_path"),
		new Label(file.path), dl, dr);
	add_item(filemgr.text("info_type"),
		new Label(filemgr.text("file_type"+file.type)), dl, dr);
	add_item(filemgr.text("info_size"),
		new Label(String.valueOf(file.size)),dl,dr);
	add_item(filemgr.text("info_mod"),
		new Label(String.valueOf(new Date(file.modified))), dl, dr);
	if (file.type == 5)
		add_item(filemgr.text("info_link"),
			 linkto = new TextField(file.linkto, 30), dl, dr);
	mid = add_panel(mid, det);

	// Create permissions section
	Panel per = new LinedPanel(filemgr.text("info_perms")),
	      pl = new Panel(), pr = new Panel();
	setup_leftright(per, pl, pr);
	add_item(filemgr.text("info_user"),
		 user_p = new PermissionsPanel(file, 64, filemgr), pl, pr);
	add_item(filemgr.text("info_group"),
		 group_p = new PermissionsPanel(file, 8, filemgr), pl, pr);
	add_item(filemgr.text("info_other"),
		 other_p = new PermissionsPanel(file, 1, filemgr), pl,pr);
	if (file.type == 0) {
		add_item(filemgr.text("info_sticky"), sticky = new Checkbox(
					filemgr.text("info_sticky2")), pl,pr);
		sticky.setState((file.perms&01000) != 0);
		}
	mid = add_panel(mid, per);

	// Create ownership section
	Panel own = new LinedPanel(filemgr.text("info_own")),
	      ol = new Panel(), or = new Panel();
	setup_leftright(own, ol, or);
	add_item(filemgr.text("info_user"),
		 user = new TextField(file.user, 10), ol, or);
	if (file.type != 0) {
		add_item(filemgr.text("info_setuid"),
			 setuid = new Checkbox(filemgr.text("info_setuid2")),
			 ol, or);
		setuid.setState((file.perms & 0x800) != 0);
		}
	add_item(filemgr.text("info_group"),
		 group = new TextField(file.group, 10), ol, or);
	if (file.type == 0)
		add_item(filemgr.text("info_setgid"),
		  setgid = new Checkbox(filemgr.text("info_setgid2")), ol, or);
	else
		add_item(filemgr.text("info_setgid"),
		  setgid = new Checkbox(filemgr.text("info_setgid3")), ol, or);
	setgid.setState((file.perms & 0x400) != 0);
	mid = add_panel(mid, own);

	if (file.type == 0) {
		// Create recursion section
		Panel rec = new LinedPanel(filemgr.text("info_apply"));
		rec.setLayout(new BorderLayout());
		rec_mode = new Choice();
		for(int i=1; i<=3; i++)
			rec_mode.addItem(filemgr.text("info_apply"+i));
		rec.add("Center", rec_mode);
		mid = add_panel(mid, rec);
		}

	pack();
	show();
	}

	Panel add_panel(Panel p, Component c)
	{
	p.add("North", c);
	Panel np = new Panel();
	np.setLayout(new BorderLayout());
	p.add("Center", np);
	return np;
	}

	public void click(CbButton b)
	{
	if (b == save_b) {
		// Update the file
		int perms = 0;
		if (setuid == null)
			perms |= (file.perms & 0x800);
		else
			perms |= (setuid.getState() ? 0x800 : 0);
		perms |= (setgid.getState() ? 0x400 : 0);
		perms |= user_p.getPerms();
		perms |= group_p.getPerms();
		perms |= other_p.getPerms();
		if (sticky == null)
			perms |= (file.perms & 01000);
		else
			perms |= (sticky.getState() ? 01000 : 0);
		int rec = 0;
		if (file.type == 0)
			rec = rec_mode.getSelectedIndex();
		String rv[] = filemgr.get_text(
			"chmod.cgi?path="+filemgr.urlize(file.path)+
			"&perms="+perms+"&user="+user.getText()+
			"&group="+group.getText()+"&rec="+rec+
			(linkto==null ? "" : "&linkto="+linkto.getText()));
		if (rv[0].length() > 0) {
			// Something went wrong
			new ErrorWindow(filemgr.text("info_efailed",
					file.path, rv[0]));
			}
		else {
			// Update all changed file objects
			if (linkto != null)
				file.linkto = linkto.getText();
			else if (rec == 0)
				update_file(file, perms, false);
			else if (rec == 1) {
				// Update files in this directory
				update_file(file, perms, false);
				recurse_files(file, perms, false);
				}
			else if (rec == 2) {
				// Update files and subdirs
                                update_file(file, perms, false);
				recurse_files(file, perms, true);
				}

			// Update directory list
			int os = filemgr.files.selected();
			filemgr.show_files(filemgr.showing_files);
			filemgr.files.select(os);
			dispose();
			}
		}
	else {
		// Just close
		dispose();
		}
	}

	void update_file(RemoteFile f, int perms, boolean perms_only)
	{
	f.user = user.getText();
	f.group = group.getText();
	if (perms_only)
		f.perms = (perms & 0777) | (f.perms & 037777777000);
	else
		f.perms = perms;
	}

	void recurse_files(RemoteFile f, int perms, boolean do_subs)
	{
	if (f.list == null) return;
	for(int i=0; i<f.list.length; i++) {
		RemoteFile ff = f.list[i];
		if (ff.type == 5) continue;
		else if (ff.type == 0) {
			if (do_subs) {
				update_file(ff, perms, false);
				recurse_files(ff, perms, true);
				}
			}
		else update_file(ff, perms, true);
		}
	}

	void setup_leftright(Panel m, Panel l, Panel r)
	{
	m.setLayout(new BorderLayout());
	Panel p = new Panel();
	p.setLayout(new BorderLayout());
	p.add("West", l);
	p.add("Center", r);
	l.setLayout(new GridLayout(0, 1));
	r.setLayout(new GridLayout(0, 1));
	m.add("North", p);
	}

	void add_item(String t, Component c, Panel l, Panel r)
	{
	l.add(new Label(t));
	Panel p = new Panel();
	p.setLayout(new BorderLayout());
	p.add("West", c);
	r.add(p);
	}
}

class PermissionsPanel extends Panel
{
	Checkbox read, write, exec;
	int base;

	PermissionsPanel(RemoteFile file, int base, FileManager filemgr)
	{
	int perms = file.perms;
	this.base = base;
	setLayout(new GridLayout(1, 3));
	add(read = new Checkbox(filemgr.text("info_read")));
	read.setState((perms&(base<<2)) != 0);
	add(write = new Checkbox(filemgr.text("info_write")));
	write.setState((perms&(base<<1)) != 0);
	add(exec = new Checkbox(
		filemgr.text(file.type==0 ? "info_list" : "info_exec")));
	exec.setState((perms&base) != 0);
	}

	int getPerms()
	{
	int rv = 0;
	rv |= (read.getState() ? (base<<2) : 0);
	rv |= (write.getState() ? (base<<1) : 0);
	rv |= (exec.getState() ? base : 0);
	return rv;
	}
}

class DeleteWindow extends FixedFrame implements CbButtonCallback
{
	CbButton delete_b, cancel_b;
	FileManager filemgr;
	RemoteFile file;

	DeleteWindow(FileManager p, RemoteFile f)
	{
	filemgr = p;
	file = f;
	setTitle(filemgr.text(f.type == 0 ? "delete_dtitle" : "delete_ftitle"));

	setLayout(new BorderLayout());
	add("Center", new MultiLabel(filemgr.text(
		f.type == 0 ? "delete_ddesc" : "delete_fdesc", f.path), 35));
	Panel bot = new Panel();
	bot.setLayout(new FlowLayout(FlowLayout.CENTER));
	bot.add(delete_b = new CbButton(filemgr.get_image("save.gif"),
				        filemgr.text("delete"),
					CbButton.LEFT, this));
	bot.add(cancel_b = new CbButton(filemgr.get_image("cancel.gif"),
					filemgr.text("cancel"),
					CbButton.LEFT, this));
	add("South", bot);

	pack();
	show();
	}

	public void click(CbButton b)
	{
	if (b == delete_b) {
		// Delete the file or directory
		String rv[] = filemgr.get_text("delete.cgi?file="+
					       filemgr.urlize(file.path));
		if (rv[0].length() > 0)
			new ErrorWindow(filemgr.text("delete_efailed",
					file.path, rv[0]));
		else {
			// done the deed.. update data structures
			RemoteFile pf = file.directory;
			pf.delete(file);
			if (filemgr.showing_files == pf) {
				// Need to refresh the list as well..
				filemgr.show_files(pf);
				}

			FileNode node = (FileNode)filemgr.nodemap.get(file);
			FileNode pnode = (FileNode)filemgr.nodemap.get(pf);
			if (node != null) {
				// Take the directory out of the tree..
				pnode.ch.removeElement(node);
				filemgr.dirs.redraw();
				}
			}
		dispose();
		}
	else if (b == cancel_b)
		dispose();
	}
}

class MkdirWindow extends FixedFrame implements CbButtonCallback
{
	FileManager filemgr;
	TextField dir;
	CbButton create_b, cancel_b;

	MkdirWindow(String d, FileManager p)
	{
	filemgr = p;
	setTitle(filemgr.text("mkdir_title"));
	setLayout(new BorderLayout());
	add("West", new Label(filemgr.text("mkdir_dir")));
	add("Center", dir = new TextField(d.equals("/") ? "/" : d+"/", 40));
	dir.select(dir.getText().length(), dir.getText().length());
	Panel bot = new Panel();
	bot.setLayout(new FlowLayout(FlowLayout.CENTER));
	bot.add(create_b = new CbButton(filemgr.get_image("save.gif"),
				        filemgr.text("create"),
					CbButton.LEFT, this));
	bot.add(cancel_b = new CbButton(filemgr.get_image("cancel.gif"),
					filemgr.text("cancel"),
					CbButton.LEFT, this));
	add("South", bot);
	pack();
	show();
	}

	public void click(CbButton b)
	{
	if (b == create_b) {
		// Find the filemgr directory
		String path = dir.getText();
		path = filemgr.trim_path(path);
		int sl = path.lastIndexOf('/');
		RemoteFile par = filemgr.find_directory(
					path.substring(0, sl), false);
		if (par.find(path.substring(sl+1)) != null) {
			new ErrorWindow(filemgr.text("mkdir_eexists", path));
			return;
			}
		String rv[] = filemgr.get_text("mkdir.cgi?dir="+
					       filemgr.urlize(path));
		if (rv[0].length() > 0) {
			new ErrorWindow(filemgr.text("mkdir_efailed", rv[0]));
			return;
			}
		RemoteFile file = new RemoteFile(filemgr, rv[1], par);
		par.add(file);
		FileNode parnode = (FileNode)filemgr.nodemap.get(par);
		if (parnode != null) {
			// Update the tree
			parnode.add(new FileNode(file));
			filemgr.dirs.redraw();
			}
		filemgr.show_files(filemgr.showing_files);
		dispose();
		}
	else dispose();
	}
}

class LinkWindow extends FixedFrame implements CbButtonCallback
{
	FileManager filemgr;
	TextField from, to;
	CbButton create_b, cancel_b;

	LinkWindow(String d, FileManager p)
	{
	filemgr = p;
	setLayout(new BorderLayout());
	setTitle(filemgr.text("link_title"));
	Panel l = new Panel(), r = new Panel();
	l.setLayout(new GridLayout(0, 1));
	l.add(new Label(filemgr.text("link_from")));
	l.add(new Label(filemgr.text("link_to")));
	r.setLayout(new GridLayout(0, 1));
	r.add(from = new TextField(d.equals("/") ? "/" : d+"/", 40));
	from.select(from.getText().length(), from.getText().length());
	r.add(to = new TextField());
	add("West", l); add("Center", r);
	Panel bot = new Panel();
	bot.setLayout(new FlowLayout(FlowLayout.CENTER));
	bot.add(create_b = new CbButton(filemgr.get_image("save.gif"),
				        filemgr.text("create"),
					CbButton.LEFT, this));
	bot.add(cancel_b = new CbButton(filemgr.get_image("cancel.gif"),
					filemgr.text("cancel"),
					CbButton.LEFT, this));
	add("South", bot);
	pack();
	show();
	}

	public void click(CbButton b)
	{
	if (b == create_b) {
		// Check inputs
		String from_str = from.getText().trim();
		int sl = from_str.lastIndexOf('/');
		String par_str = from_str.substring(0, sl),
		       file_str = from_str.substring(sl+1);
		RemoteFile par = filemgr.find_directory(par_str, false);
		if (par == null) return;
		if (par.find(file_str) != null) {
			new ErrorWindow(filemgr.text("link_eexists", from_str));
			return;
			}

		// Create the actual link
		String rv[] = filemgr.get_text("makelink.cgi?from="+
					       filemgr.urlize(from_str)+"&to="+
					       filemgr.urlize(to.getText()));
		if (rv[0].length() > 0) {
			new ErrorWindow(filemgr.text("link_efailed", rv[0]));
			return;
			}
		RemoteFile file = new RemoteFile(filemgr, rv[1], par);
		par.add(file);
		filemgr.show_files(filemgr.showing_files);
		dispose();
		}
	else if (b == cancel_b)
		dispose();
	}
}

class RenameWindow extends FixedFrame implements CbButtonCallback
{
	FileManager filemgr;
	RemoteFile file;
	TextField oldname, newname;
	CbButton rename_b, cancel_b;

	RenameWindow(FileManager p, RemoteFile f)
	{
	filemgr = p; file = f;
	setLayout(new BorderLayout());
	setTitle(filemgr.text("rename_title", file.path));
	Panel l = new Panel(), r = new Panel();
	l.setLayout(new GridLayout(0, 1));
	l.add(new Label(filemgr.text("rename_old")));
	l.add(new Label(filemgr.text("rename_new")));
	r.setLayout(new GridLayout(0, 1));
	r.add(oldname = new TextField(file.name, 20));
	oldname.setEditable(false);
	r.add(newname = new TextField(file.name, 20));
	newname.select(file.name.length(), file.name.length());
	add("West", l); add("Center", r);

	Panel bot = new Panel();
	bot.setLayout(new FlowLayout(FlowLayout.CENTER));
	bot.add(rename_b = new CbButton(filemgr.get_image("save.gif"),
				        filemgr.text("rename_ok"),
					CbButton.LEFT, this));
	bot.add(cancel_b = new CbButton(filemgr.get_image("cancel.gif"),
					filemgr.text("cancel"),
					CbButton.LEFT, this));
	add("South", bot);
	pack();
	show();
	}

	public void click(CbButton b)
	{
	if (b == rename_b) {
		// Check for an existing file
		String newstr = newname.getText().trim();
		if (newstr.length() == 0) return;
		RemoteFile already = file.directory.find(newstr);
		if (already != null) {
			new ErrorWindow(filemgr.text("rename_eexists", newstr));
			return;
			}

		// Rename the real file
		int sl = file.path.lastIndexOf('/');
		String newpath = file.path.substring(0, sl)+"/"+newstr;
		String rv[] = filemgr.get_text(
				"rename.cgi?old="+filemgr.urlize(file.path)+
				"&new="+filemgr.urlize(newpath));
		if (rv[0].length() > 0) {
			new ErrorWindow(filemgr.text("rename_efailed", rv[0]));
			return;
			}

		// Update data structures
		file.name = newstr;
		file.path = newpath;
		file.directory.delete(file);
		file.directory.add(file);
		FileNode parnode = (FileNode)filemgr.nodemap.get(file.directory);
		FileNode filenode = (FileNode)filemgr.nodemap.get(file);
		if (parnode != null && filenode != null) {
			filenode.text = file.name;
			parnode.ch.removeElement(filenode);
			parnode.add(filenode);
			dispose();
			filemgr.dirs.redraw();
			}
		filemgr.show_files(filemgr.showing_files);
		dispose();
		}
	else if (b == cancel_b)
		dispose();
	}
}

class MultiLabel extends BorderPanel
{
	public MultiLabel(String s, int max)
	{
	this(s, max, 1);
	}

	public MultiLabel(String s, int max, int b)
	{
	super(b);
	Vector v = new Vector();
	StringTokenizer tok = new StringTokenizer(s.trim(), " \t");
	String line = null;
	while(tok.hasMoreTokens()) {
		String w = tok.nextToken();
		line = (line == null ? w : line+" "+w);
		if (line.length() > max || !tok.hasMoreTokens()) {
			v.addElement(line);
			line = null;
			}
		}
	setLayout(new GridLayout(v.size(), 0, 0, 0));
	for(int i=0; i<v.size(); i++)
		add(new Label((String)v.elementAt(i), Label.CENTER));
	}
}

class OverwriteWindow extends FixedFrame implements CbButtonCallback
{
	FileManager filemgr;
	RemoteFile src, already;
	TextField newname;
	CbButton ok, cancel;

	OverwriteWindow(FileManager p, RemoteFile a, RemoteFile s)
	{
	filemgr = p; src = s; already = a;
	setLayout(new BorderLayout());
	setTitle(filemgr.text("over_title"));
	add("North",
	    new MultiLabel(filemgr.text("over_msg", already.path), 30, 0));
	add("West", new Label(filemgr.text("over_new")));
	add("East", newname = new TextField(a.name, 30));

	Panel bot = new Panel();
	bot.setLayout(new FlowLayout(FlowLayout.RIGHT));
	bot.add(ok = new CbButton(filemgr.get_image("save.gif"),
				  filemgr.text("over_ok"),
				  CbButton.LEFT, this));
	bot.add(cancel = new CbButton(filemgr.get_image("cancel.gif"),
				  filemgr.text("cancel"),
				  CbButton.LEFT, this));
	add("South", bot);
	pack();
	show();
	}

	public void click(CbButton b)
	{
	if (b == cancel)
		dispose();
	else if (b == ok && newname.getText().length() > 0) {
		// paste the file, but with a new name
		RemoteFile ap = already.directory;
		RemoteFile newalready = ap.find(newname.getText());
		if (newalready == src) {
			new ErrorWindow(filemgr.text("paste_eself"));
			return;
			}
		if (newalready != null && (newalready.type == 0 ||
					   newalready.type == 5)) {
			new ErrorWindow(
				filemgr.text("paste_eover", newalready.path));
			return;
			}
		String dpath = (ap.path.equals("/") ? "/" :
				ap.path+"/")+newname.getText();
		filemgr.paste_file(src, already.directory, dpath, newalready);
		dispose();
		}
	}
}

class SambaShare
{
	String path;
	boolean available;
	boolean writable;
	int guest;
	String comment;

	SambaShare(String l)
	{
	StringSplitter tok = new StringSplitter(l, ':');
	path = tok.nextToken();
	available = tok.nextToken().equals("1");
	writable = tok.nextToken().equals("1");
	guest = Integer.parseInt(tok.nextToken());
	comment = tok.nextToken();
	}

	SambaShare(String p, boolean a, boolean w, int g, String c)
	{
	path = p;
	available = a;
	writable = w;
	guest = g;
	comment = c;
	}

	String params()
	{
	return "path="+FileManager.urlize(path)+
	       "&available="+(available ? 1 : 0)+
	       "&writable="+(writable ? 1 : 0)+
	       "&guest="+guest+
	       "&comment="+FileManager.urlize(comment);
	}
}

class DFSAdminExport
{
	String path;
	String desc;
	String ro, rw, root;

	DFSAdminExport(String l)
	{
	StringSplitter tok = new StringSplitter(l, ':');
	path = tok.nextToken();
	ro = tok.nextToken();
	rw = tok.nextToken();
	root = tok.nextToken();
	desc = tok.nextToken();
	}

	DFSAdminExport(String p, String d, String ro, String rw, String root)
	{
	path = p;
	desc = d;
	this.ro = ro;
	this.rw = rw;
	this.root = root;
	}

	String[] split(String s)
	{
	StringTokenizer stok = new StringTokenizer(s, " ");
	String rv[] = new String[stok.countTokens()];
	for(int i=0; i<rv.length; i++)
		rv[i] = stok.nextToken();
	return rv;
	}

	String params()
	{
	return "path="+FileManager.urlize(path)+
	       "&ro="+FileManager.urlize(ro)+
	       "&rw="+FileManager.urlize(rw)+
	       "&root="+FileManager.urlize(root)+
	       "&desc="+FileManager.urlize(desc);
	}
}

class LinuxExport
{
	String path;
	String host[];
	boolean ro[];
	int squash[];

	LinuxExport(String l)
	{
	StringSplitter tok = new StringSplitter(l, ':');
	path = tok.nextToken();
	int c = tok.countTokens() / 3;
	host = new String[c];
	ro = new boolean[c];
	squash = new int[c];
	for(int i=0; tok.hasMoreTokens(); i++) {
		host[i] = tok.nextToken();
		ro[i] = tok.nextToken().equals("1");
		squash[i] = Integer.parseInt(tok.nextToken());
		}
	}

	LinuxExport(String p, String h[], String r[], String s[])
	{
	path = p;
	}

	String params()
	{
	String rv = "path="+FileManager.urlize(path)+
		    "&count="+host.length;
	for(int i=0; i<host.length; i++) {
		rv += "&host"+i+"="+FileManager.urlize(host[i]);
		rv += "&ro"+i+"="+(ro[i] ? 1 : 0);
		rv += "&squash"+i+"="+squash[i];
		}
	return rv;
	}
}

class SharingWindow extends FixedFrame implements CbButtonCallback
{
	CbButton save_b, cancel_b;
	RemoteFile file;
	FileManager filemgr;
	SambaShare sshare;
	DFSAdminExport dexport;
	LinuxExport lexport;
	Checkbox samba_on, samba_off;
	Checkbox writable_on, writable_off;
	Checkbox available_on, available_off;
	Checkbox guest_on, guest_off, guest_only;
	TextField comment;

	TextField desc;
	Checkbox nfs_on, nfs_off;
	TextField rwhosts, rohosts, roothosts;
	Checkbox rw[] = new Checkbox[3], ro[] = new Checkbox[3],
		 root[] = new Checkbox[3];

	TextField host[];
	Choice lro[], squash[];

	SharingWindow(RemoteFile f, FileManager p)
	{
	file = f; filemgr = p;
	setTitle(filemgr.text("share_title", file.path));
	sshare = (SambaShare)filemgr.stab.get(file.path);
	Object nshare = filemgr.ntab.get(file.path);
	if (filemgr.nfsmode == 1)
		lexport = (LinuxExport)nshare;
	else if (filemgr.nfsmode == 2)
		dexport = (DFSAdminExport)nshare;

	// setup UI
	setLayout(new BorderLayout());
	Panel samba = new Panel(), sl = new Panel(), sr = new Panel();
	samba.setLayout(new BorderLayout());
	Panel st = new Panel();
	st.setLayout(new GridLayout(2, 1));
	CheckboxGroup sg = new CheckboxGroup();
	st.add(samba_off = new Checkbox(filemgr.text("share_soff"), sg, 
				       sshare == null));
	st.add(samba_on = new Checkbox(filemgr.text("share_son"), sg,
					sshare != null));
	samba.add("North", st);

	Panel stop = new LinedPanel(filemgr.text("share_sheader"));
	setup_leftright(stop, sl, sr);

	comment = new TextField(sshare == null ? "" : sshare.comment, 25);
	add_item(filemgr.text("share_comment"), comment, sl, sr);

	Panel ap = new Panel();
	ap.setLayout(new GridLayout(1, 0));
	CheckboxGroup ag = new CheckboxGroup();
	ap.add(available_on = new Checkbox(filemgr.text("yes"), ag,
					  sshare == null || sshare.available));
	ap.add(available_off = new Checkbox(filemgr.text("no"), ag,
					  sshare != null && !sshare.available));
	add_item(filemgr.text("share_available"), ap, sl, sr);

	Panel wp = new Panel();
	wp.setLayout(new GridLayout(1, 0));
	CheckboxGroup wg = new CheckboxGroup();
	wp.add(writable_on = new Checkbox(filemgr.text("yes"), wg,
					  sshare == null || sshare.writable));
	wp.add(writable_off = new Checkbox(filemgr.text("no"), wg,
					   sshare != null && !sshare.writable));
	add_item(filemgr.text("share_writable"), wp, sl, sr);

	Panel gp = new Panel();
	gp.setLayout(new GridLayout(1, 0));
	CheckboxGroup gg = new CheckboxGroup();
	gp.add(guest_only = new Checkbox(filemgr.text("share_only"), gg,
				sshare != null && sshare.guest == 2));
	gp.add(guest_on = new Checkbox(filemgr.text("yes"), gg,
				sshare == null || sshare.guest == 1));
	gp.add(guest_off = new Checkbox(filemgr.text("no"), gg,
			 	sshare != null && sshare.guest == 0));
	add_item(filemgr.text("share_guest"), gp, sl, sr);

	samba.add("Center", stop);

	// Setup NFS UI
	Panel nfs = new Panel(), nl = new Panel(), nr = new Panel();
	nfs.setLayout(new BorderLayout());
	Panel nt = new Panel();
	nt.setLayout(new GridLayout(2, 1));
	CheckboxGroup ng = new CheckboxGroup();
	nt.add(nfs_off = new Checkbox(filemgr.text("share_noff"), ng, 
				      nshare == null));
	nt.add(nfs_on = new Checkbox(filemgr.text("share_non"), ng,
				     nshare != null));
	nfs.add("North", nt);

	Panel ntop = new LinedPanel(filemgr.text("share_nheader"));
	setup_leftright(ntop, nl, nr);
	if (filemgr.nfsmode == 1) {
		// Linux export mode
		nl.setLayout(new GridLayout(0, 1, 2, 2));
		nr.setLayout(new GridLayout(0, 1, 2, 2));
		nl.add(new Label(filemgr.text("share_host")));
		nr.add(new Label(filemgr.text("share_opts")));
		int c = lexport==null ? 0 : lexport.host.length;
		host = new TextField[c+1];
		lro = new Choice[c+1];
		squash = new Choice[c+1];
		for(int i=0; i<c; i++) {
			host[i] = new TextField(lexport.host[i], 20);
			lro[i] = robox(lexport.ro[i]);
			squash[i] = squashbox(lexport.squash[i]);
			nl.add(host[i]);
			nr.add(opts_panel(lro[i], squash[i]));
			}
		host[c] = new TextField("", 20);
		lro[c] = robox(false);
		squash[c] = squashbox(1);
		nl.add(host[c]);
		nr.add(opts_panel(lro[c], squash[c]));
		}
	else if (filemgr.nfsmode == 2) {
		// Solaris share mode
		desc = new TextField(dexport == null ? "" : dexport.desc, 25);
		add_item(filemgr.text("share_desc"), desc, nl, nr);

		rohosts = add_hosts(filemgr.text("share_ro"),
				    dexport == null ? "-" : dexport.ro,
				    ro, nl, nr);
		rwhosts = add_hosts(filemgr.text("share_rw"),
				    dexport == null ? "-" : dexport.rw,
				    rw, nl, nr);
		roothosts = add_hosts(filemgr.text("share_root"),
				    dexport == null ? "-" : dexport.root,
				    root, nl, nr);
		root[1].getParent().remove(root[1]);
		}
	else if (filemgr.nfsmode == 3) {
		}
	nfs.add("Center", ntop);

	// Add the appropriate tabs
	if (filemgr.sambamode && filemgr.nfsmode != 0) {
		TabbedPanel tab = new TabbedPanel();
		tab.addItem(filemgr.text("share_samba"), samba);
		tab.addItem(filemgr.text("share_nfs"), nfs);
		add("Center", tab);
		}
	else if (filemgr.sambamode)
		add("Center", samba);
	else if (filemgr.nfsmode != 0)
		add("Center", nfs);

	// Create save and cancel buttons
	Panel bot = new Panel();
	bot.setLayout(new FlowLayout(FlowLayout.RIGHT));
	bot.add(save_b = new CbButton(filemgr.get_image("save.gif"),
				      filemgr.text("save"),
				      CbButton.LEFT, this));
	bot.add(cancel_b = new CbButton(filemgr.get_image("cancel.gif"),
					filemgr.text("cancel"),
					CbButton.LEFT, this));
	add("South", bot);
	pack();
	show();
	}

	public void click(CbButton b)
	{
	if (b == save_b) {
		// Update samba settings on server
		if (sshare != null && samba_on.getState()) {
			// Updating share
			sshare.available = available_on.getState();
			sshare.writable = writable_on.getState();
			sshare.guest = guest_only.getState() ? 2 :
				       guest_on.getState() ? 1 : 0;
			sshare.comment = comment.getText();
			String rv[] = filemgr.get_text(
				"save_share.cgi?"+sshare.params());
			}
		else if (sshare != null) {
			// Deleting share
			String rv[] = filemgr.get_text(
				"save_share.cgi?delete=1&"+sshare.params());
			filemgr.stab.remove(sshare.path);
			}
		else if (samba_on.getState()) {
			// Creating share
			sshare = new SambaShare(file.path,
						available_on.getState(),
						writable_on.getState(),
						guest_only.getState() ? 2 :
						guest_on.getState() ? 1 : 0,
						comment.getText());
			filemgr.stab.put(sshare.path, sshare);
			String rv[] = filemgr.get_text(
				"save_share.cgi?new=1&"+sshare.params());
			}

		// Update NFS settings on server
		if (filemgr.nfsmode == 1) {
			if (lexport != null && nfs_on.getState()) {
				// Updating export
				export_options(lexport);
				String rv[] = filemgr.get_text(
					"save_export.cgi?"+lexport.params());
				}
			else if (lexport != null) {
				// Deleting export
				String rv[] = filemgr.get_text(
				  "save_export.cgi?delete=1&"+lexport.params());
				filemgr.ntab.remove(lexport.path);
				}
			else if (nfs_on.getState()) {
				// Creating export
				lexport = new LinuxExport(file.path, null,
							  null, null);
				export_options(lexport);
				String rv[] = filemgr.get_text(
				  "save_export.cgi?new=1&"+lexport.params());
				filemgr.ntab.put(lexport.path, lexport);
				}
			}
		else if (filemgr.nfsmode == 2) {
			if (dexport != null && nfs_on.getState()) {
				// Updating share
				dexport.desc = desc.getText();
				dexport.ro = ro[0].getState() ? "-" :
					     ro[1].getState() ? "" :
					     rohosts.getText();
				dexport.rw = rw[0].getState() ? "-" :
					     rw[1].getState() ? "" :
					     rwhosts.getText();
				dexport.root = root[0].getState() ? "-" :
					       roothosts.getText();
				String rv[] = filemgr.get_text(
					"save_export.cgi?"+dexport.params());
				}
			else if (dexport != null) {
				// Deleting share
				String rv[] = filemgr.get_text(
				  "save_export.cgi?delete=1&"+dexport.params());
				filemgr.ntab.remove(dexport.path);
				}
			else if (nfs_on.getState()) {
				// Creating new share
				dexport = new DFSAdminExport(file.path,
					desc.getText(),
					ro[0].getState() ? "-" :
					ro[1].getState() ? "" :
					rohosts.getText(),
					rw[0].getState() ? "-" :
					rw[1].getState() ? "" :
					rwhosts.getText(),
					root[0].getState() ? "-" :
					roothosts.getText());
				String rv[] = filemgr.get_text(
				    "save_export.cgi?new=1&"+dexport.params());
				filemgr.ntab.put(dexport.path, dexport);
				}
			}
		else if (filemgr.nfsmode == 3) {
			}

		filemgr.show_files(filemgr.showing_files);
		dispose();
		}
	else if (b == cancel_b)
		dispose();
	}

	void setup_leftright(Panel m, Panel l, Panel r)
	{
	m.setLayout(new BorderLayout());
	Panel p = new Panel();
	p.setLayout(new BorderLayout());
	p.add("West", l);
	p.add("Center", r);
	l.setLayout(new GridLayout(0, 1));
	r.setLayout(new GridLayout(0, 1));
	m.add("North", p);
	}

	void add_item(String t, Component c, Panel l, Panel r)
	{
	l.add(new Label(t));
	Panel p = new Panel();
	p.setLayout(new BorderLayout());
	p.add("West", c);
	r.add(p);
	}

	TextField add_hosts(String name, String v, Checkbox cb[],
			    Panel l, Panel r)
	{
	Panel p = new Panel();
	p.setLayout(new GridLayout(1, 3));
	CheckboxGroup g = new CheckboxGroup();
	p.add(cb[0] = new Checkbox(filemgr.text("share_none"), g,
				   v.equals("-")));
	p.add(cb[1] = new Checkbox(filemgr.text("share_all"), g,
				   v.length() == 0));
	p.add(cb[2] = new Checkbox(filemgr.text("share_listed"), g,
				   v.length() > 1));
	add_item(name, p, l, r);
	TextField t = new TextField(v.equals("-") ? "" : v, 25);
	add_item("", t, l, r);
	return t;
	}

	Choice squashbox(int s)
	{
	Choice rv = new Choice();
	rv.addItem(filemgr.text("share_s0"));
	rv.addItem(filemgr.text("share_s1"));
	rv.addItem(filemgr.text("share_s2"));
	rv.select(s);
	return rv;
	}

	Choice robox(boolean r)
	{
	Choice rv = new Choice();
	rv.addItem(filemgr.text("share_lrw"));
	rv.addItem(filemgr.text("share_lro"));
	rv.select(r ? 1 : 0);
	return rv;
	}

	Panel opts_panel(Component ro, Component squash)
	{
	Panel p = new Panel();
	p.setLayout(new BorderLayout());
	System.out.println("adding "+ro+" "+squash);
	p.add("West", ro);
	p.add("East", squash);
	return p;
	}

	void export_options(LinuxExport e)
	{
	int c = 0;
	for(int i=0; i<host.length; i++)
		if (host[i].getText().length() > 0)
			c++;
	e.host = new String[c];
	e.ro = new boolean[c];
	e.squash = new int[c];
	for(int i=0,j=0; i<host.length; i++) {
		if (host[i].getText().trim().length() > 0) {
			e.host[j] = host[i].getText();
			e.ro[j] = lro[i].getSelectedIndex() == 1;
			e.squash[j] = squash[i].getSelectedIndex();
			j++;
			}
		}
	}

}

class SearchWindow extends FixedFrame
	implements CbButtonCallback,MultiColumnCallback
{
	TabbedPanel tab;
	MultiColumn list;
	CbButton search_b, cancel_b;
	FileManager filemgr;
	TextField dir, match, user, group;
	Checkbox uany, usel, gany, gsel;
	Choice type;
	Checkbox sany, smore, sless;
	TextField more, less;
	Checkbox xon, xoff;
	String types[] = { "", "f", "d", "l", "p" };
	RemoteFile results[];

	SearchWindow(String d, FileManager p)
	{
	filemgr = p;
	setTitle(filemgr.text("search_title"));

	// setup UI
	setLayout(new BorderLayout());
	tab = new TabbedPanel();
	Panel search = new Panel();
	search.setLayout(new BorderLayout());
	tab.addItem(filemgr.text("search_crit"), search);
	Panel l = new Panel(), r = new Panel();
	l.setLayout(new GridLayout(0, 1));
	r.setLayout(new GridLayout(0, 1));

	String cols[] = { "", filemgr.text("right_name"),
			  filemgr.text("right_size") };
	float widths[] = { .07f, .78f, .15f };
	list = new MultiColumn(cols, this);
	list.setWidths(widths);
	list.setDrawLines(false);
	tab.addItem(filemgr.text("search_list"), list);

	add_item(filemgr.text("search_dir"), dir = new TextField(d, 30), l, r);

	add_item(filemgr.text("search_match"), match = new TextField(20), l, r);

	Panel up = new Panel();
	up.setLayout(new FlowLayout(FlowLayout.LEFT, 1, 1));
	CheckboxGroup ug = new CheckboxGroup();
	up.add(uany = new Checkbox(filemgr.text("search_any"), ug, true));
	up.add(usel = new Checkbox("", ug, false));
	up.add(user = new TextField(10));
	add_item(filemgr.text("search_user"), up, l, r);

	Panel gp = new Panel();
	gp.setLayout(new FlowLayout(FlowLayout.LEFT, 1, 1));
	CheckboxGroup gg = new CheckboxGroup();
	gp.add(gany = new Checkbox(filemgr.text("search_any"), gg, true));
	gp.add(gsel = new Checkbox("", gg, false));
	gp.add(group = new TextField(10));
	add_item(filemgr.text("search_group"), gp, l, r);

	type = new Choice();
	for(int i=0; i<types.length; i++)
		type.addItem(filemgr.text("search_types_"+types[i]));
	add_item(filemgr.text("search_type"), type, l, r);

	CheckboxGroup sg = new CheckboxGroup();
	add_item(filemgr.text("search_size"),
		 sany = new Checkbox(filemgr.text("search_any"), sg, true),
		 l, r);
	Panel mp = new Panel();
	mp.setLayout(new FlowLayout(FlowLayout.LEFT, 1, 1));
	mp.add(smore = new Checkbox(filemgr.text("search_more"), sg, false));
	mp.add(more = new TextField(10));
	add_item("", mp, l, r);
	Panel lp = new Panel();
	lp.setLayout(new FlowLayout(FlowLayout.LEFT, 1, 1));
	lp.add(sless = new Checkbox(filemgr.text("search_less"), sg, false));
	lp.add(less = new TextField(10));
	add_item("", lp, l, r);

	CheckboxGroup xg = new CheckboxGroup();
	Panel xp = new Panel();
	xp.setLayout(new FlowLayout(FlowLayout.LEFT, 1, 1));
	xp.add(xoff = new Checkbox(filemgr.text("yes"), xg, true));
	xp.add(xon = new Checkbox(filemgr.text("no"), xg, false));
	add_item(filemgr.text("search_xdev"), xp, l, r);

	search.add("West", l); search.add("East", r);
	add("Center", tab);

	// Create search and cancel buttons
	Panel bot = new Panel();
	bot.setLayout(new FlowLayout(FlowLayout.RIGHT));
	bot.add(search_b = new CbButton(filemgr.get_image("save.gif"),
				      filemgr.text("search_ok"),
				      CbButton.LEFT, this));
	bot.add(cancel_b = new CbButton(filemgr.get_image("cancel.gif"),
					filemgr.text("cancel"),
					CbButton.LEFT, this));
	add("South", bot);
	pack();
	show();
	}

	void add_item(String t, Component c, Panel l, Panel r)
	{
	l.add(new Label(t));
	Panel p = new Panel();
	p.setLayout(new BorderLayout());
	p.add("West", c);
	r.add(p);
	}

	public void click(CbButton b)
	{
	if (b == cancel_b)
		dispose();
	else if (b == search_b) {
		// validate inputs and build search URL
		String url = "search.cgi";
		String d = dir.getText().trim();
		if (d.length() == 0 || d.charAt(0) != '/') {
			new ErrorWindow(filemgr.text("search_edir"));
			return;
			}
		url += "?dir="+filemgr.urlize(d);
		String mt = match.getText().trim();
		if (mt.length() == 0) {
			new ErrorWindow(filemgr.text("search_ematch"));
			return;
			}
		url += "&match="+filemgr.urlize(mt);
		if (type.getSelectedIndex() > 0)
			url += "&type="+types[type.getSelectedIndex()];
		if (usel.getState()) {
			String u = user.getText().trim();
			if (u.length() == 0) {
				new ErrorWindow(filemgr.text("search_euser"));
				return;
				}
			url += "&user="+filemgr.urlize(u);
			}
		if (gsel.getState()) {
			String g = group.getText().trim();
			if (g.length() == 0) {
				new ErrorWindow(filemgr.text("search_egroup"));
				return;
				}
			url += "&group="+filemgr.urlize(g);
			}
		if (smore.getState()) {
			String m = more.getText().trim();
			try { Integer.parseInt(m); }
			catch(Exception e) {
				new ErrorWindow(filemgr.text("search_esize"));
				return;
				}
			url += "&size=%2B"+m+"c";
			}
		else if (sless.getState()) {
			String l = less.getText().trim();
			try { Integer.parseInt(l); }
			catch(Exception e) {
				new ErrorWindow(filemgr.text("search_esize"));
				return;
				}
			url += "&size=%2D"+l+"c";
			}
		if (xon.getState())
			url += "&xdev=1";

		// send off the search
		setCursor(WAIT_CURSOR);
		String f[] = filemgr.get_text(url);
		if (f[0].length() > 0) {
			new ErrorWindow(f[0]);
			return;
			}
		Object rows[][] = new Object[f.length-1][];
		results = new RemoteFile[f.length-1];
		for(int i=1; i<f.length; i++) {
			RemoteFile r = new RemoteFile(filemgr, f[i], null);
			results[i-1] = r;
			Object row[] = rows[i-1] = new Object[3];
			row[0] = filemgr.get_image(RemoteFile.tmap[r.type]);
			row[1] = r.path;
			if (r.size < 1000)
				row[2] = filemgr.spad(r.size, 5)+" B";
			else if (r.size < 1000000)
				row[2] = filemgr.spad(r.size/1000, 5)+" kB";
			else
				row[2] = filemgr.spad(r.size/1000000, 5)+" MB";
			}
		list.clear();
		list.addItems(rows);
		tab.select(filemgr.text("search_list"));
		setCursor(DEFAULT_CURSOR);
		}
	}

	public void singleClick(MultiColumn list, int num)
	{
	}

	// go to the directory of the double-clicked file
	public void doubleClick(MultiColumn list, int num)
	{
	RemoteFile f = results[num];
	int sl = f.path.lastIndexOf('/');
	String dir = sl == 0 ? "/" : f.path.substring(0, sl);
	filemgr.find_directory(dir, true);
	RemoteFile l[] = filemgr.showing_files.list();
	for(int i=0; i<l.length; i++) {
		if (l[i].name.equals(f.name)) {
			// select the file in the list
			filemgr.files.select(i+1);
			filemgr.files.scrollto(i+1);
			break;
			}
		}
	dispose();
	}
}

 0707010004b0f5000081a40000000000000002000000013ac038a000000767000000200000000000000000000000000000001a00000003reloc/file/FileNode.class 漱壕  -  }  X Y Z \ ^ _ ` f g m n o p q r s t u v   
 	 2
  2
  3
  4	 	 5
  6	  7
  8	  9
  :	 	 ;
  <	  =
  >	  ?	  @	  A	  A
  B
  C
  D
  E
  F	 	 G	  H U J U O z P { k | S ~ c  M  d  T  h  Q  x  L  i  j  b  R  J  J  K  I  i  a ()I ()V ()Z ()[LRemoteFile; (I)Ljava/lang/Object; (LFileNode;)V (LRemoteFile;)V (Ljava/lang/Object;)V (Ljava/lang/Object;I)V 8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; (Ljava/lang/String;)I $(Ljava/lang/String;)Ljava/awt/Image; <init> Code ConstantValue DFSAdminExport DeleteWindow EditorWindow 
Exceptions FileManager FileManager.java FileNode 	Hierarchy HierarchyNode I LFileManager; LHierarchy; LRemoteFile; LineNumberTable 
LinkWindow LinuxExport Ljava/awt/Image; Ljava/lang/String; Ljava/util/Hashtable; Ljava/util/Vector; LocalVariables MkdirWindow 
MultiLabel OverwriteWindow PermissionsPanel PropertiesWindow 
RemoteFile RenameWindow 
SambaShare SearchWindow SharingWindow 
SourceFile Z add 
addElement ch 	compareTo dir.gif dirs 	elementAt file fill 	get_image im insertElementAt java/lang/String java/util/Hashtable java/util/Vector known list name nodemap parent put redraw removeAllElements sdir.gif shared size text type    	       b      d      x      U O  V        K* *+ !*+ * )** )+ .   " #* Y  *+ ' 0* ) (+* +W    e   "     	  * 5 = J    J  V        S* % N* ! &L+ *  -=  +2 1 *  Y+2  +尽* )  ,* %    e   .          ) : C M R   y N  V   {     K= =*  /  *    N- - 0+ 0  * + $眲*  /颈    e          2 ; < J  w    ] 0707010004b0f6000081a40000000000000002000000013ac038a000000357000000200000000000000000000000000000001c00000003reloc/file/FixedFrame.class   漱壕  - 7 # - . / 0 1
  
  
  
  
  	  	  
  
  	  	       *  +  , % 2 % 3  4 % 6 ' ()Ljava/awt/Dimension; ()V (II)V (Ljava/awt/Event;)Z <init> Code ConstantValue 
Exceptions 
FixedFrame FixedFrame.java I LineNumberTable Ljava/lang/Object; LocalVariables 
SourceFile dispose handleEvent id java/awt/Component java/awt/Container java/awt/Dimension java/awt/Event java/awt/Frame mh minimumSize mw preferredSize target !        4 %     2 %                 *     &                /     * * *     &             +       B     + * +  蔂 	* 
*+     &               3       ?     #*  *   Y* *  	*     &   
    "  #  5            *     &       (  )    $ 0707010004b0f7000081a40000000000000002000000013ac038a0000002b8000000200000000000000000000000000000001b00000003reloc/file/FixedFrame.java    import java.awt.*;
import java.io.*;

public class FixedFrame extends Frame
{
	int mw = 0, mh = 0;

	public FixedFrame()
	{
	/*
	Image im = Util.tk.getImage("icons"+File.separator+"jshock.gif");
	if (im != null && Util.waitForImage(im))
		setIconImage(im);
	*/
	}

	public FixedFrame(int w, int h)
	{
	this();
	mw = w; mh = h;
	}

	public boolean handleEvent(Event evt)
	{
	if (evt.target == this && evt.id == Event.WINDOW_DESTROY) {
		dispose();
		return true;
		}
	return super.handleEvent(evt);
	}

	public Dimension minimumSize()
	{
	if (mw != 0 && mh != 0) return new Dimension(mw, mh);
	else return super.minimumSize();
	}

	public Dimension preferredSize()
	{
	return minimumSize();
	}
}

0707010004b0f8000081a40000000000000002000000013ac038a000000278000000200000000000000000000000000000001b00000003reloc/file/GrayPanel.class    漱壕  - 1  ' ( ) * +
  
  	  	  
  
  	     %  &   , " .  /  0   ()Ljava/awt/Dimension; ()V (IIII)V (Ljava/awt/Color;)V (Ljava/awt/Graphics;)V <init> Code ConstantValue 
Exceptions 	GrayPanel GrayPanel.java I LineNumberTable Ljava/awt/Color; LocalVariables 
SourceFile fillRect height java/awt/Color java/awt/Component java/awt/Dimension java/awt/Graphics java/awt/Panel 	lightGray paint setColor size width !         -      <     + 
 +*  *  	     !                        *     !         $    0707010004b0f9000081a40000000000000002000000013ac038a0000000b1000000200000000000000000000000000000001a00000003reloc/file/GrayPanel.java import java.awt.*;;

public class GrayPanel extends Panel
{
	public void paint(Graphics g)
	{
	g.setColor(Color.lightGray);
	g.fillRect(0, 0, size().width, size().height);
	}
}
   0707010004b0fa000081a40000000000000002000000013ac038a000001670000000200000000000000000000000000000001b00000003reloc/file/Hierarchy.class    漱壕  -?  !      	

  e
 
 f
  g
  h
  i
  j
  k	  l	  m	 
 n	  o	  p	  q	 	 r  s  t
  u
  v
  w  x
  y
  z
  {
  |
  }	  ~
  
  
  
  
  
  
  	  	 	 	  
  	  	  	 
 
  
  
  
  	 	   
  
  
  
  
  
  
  
  	  	  	  	  	  
  
  
  
  
  
  
  	 	 	  	  	  	 
 	  	  	 	 	 	                                                                                  " # $ % & ' ( ) * + , / 0 1 3 4 5 6 7 8 : ; < = >  ()I ()LHierarchyNode; ()Ljava/awt/Dimension; ()Ljava/awt/FontMetrics; ()Ljava/awt/Graphics; ()Ljava/awt/Insets; ()V (I)Ljava/lang/Object; (II)I (II)Ljava/awt/Image; (III)V (IIII)V (ILCbScrollbarCallback;)V $(ILjava/awt/Color;Ljava/awt/Color;)V (LCbScrollbar;I)V (LHierarchy;LHierarchyNode;)V (LHierarchyCallback;)V (LHierarchyNode;)I (LHierarchyNode;)V "(LHierarchyNode;II)LHierarchyNode; (LHierarchyNode;IIII)I %(LHierarchyNode;LHierarchyCallback;)V (Ljava/awt/Color;)V *(Ljava/awt/Component;)Ljava/awt/Component; (Ljava/awt/Event;II)Z (Ljava/awt/Font;)V (Ljava/awt/Graphics;)V 3(Ljava/awt/Image;IILjava/awt/image/ImageObserver;)Z (Ljava/awt/LayoutManager;)V (Ljava/lang/String;)I &(Ljava/lang/String;)Ljava/lang/String; (Ljava/lang/String;)Z (Ljava/lang/String;II)V <clinit> <init> BorderPanel CbScrollbar CbScrollbarCallback Code ConstantValue 
Exceptions 	Hierarchy Hierarchy.java HierarchyCallback HierarchyNode I J LCbScrollbar; LHierarchyCallback; LHierarchyNode; LineNumberTable Ljava/awt/Color; Ljava/awt/FontMetrics; Ljava/awt/Graphics; Ljava/awt/Image; Ljava/awt/Insets; Ljava/lang/String; Ljava/util/Vector; LocalVariables 
SourceFile Windows Z add bg bim black bottom 
broken_awt callback ch 	clickNode 	closeNode 
compscroll count courier createImage 
doubleNode 	drawImage drawLine 
drawString 	elementAt fillRect fnm 	getAscent getFontMetrics getGraphics 	getHeight getProperty getValue height im in insets java/awt/Color java/awt/Component java/awt/Container java/awt/Dimension java/awt/Event java/awt/Font java/awt/FontMetrics java/awt/Graphics java/awt/Image java/awt/Insets java/lang/Math java/lang/String java/lang/System java/util/Vector last left 	lightGray min minimumSize 	mouseDown moved moving nodeat open openNode os.name paint recurse redraw render repaint reshape right root sb sbwidth sel select selected setColor setFont 	setLayout setRoot 	setValues size 
startsWith stringWidth text top update when white width x y !       )     *     <          +                             8                ,                       *     
* *+ O              	          +     *+ *, $           %  & 
 #         f     >* 
Y222  
Y   芊  * U* Y*  P** P W           , " / ' 0 4 1 = *         *     
* *+ $           8  9 	 6  $      @     * 1 * J** 4 G* (           A  B  C  D  ?  2      *     
*+ O* I           L  M 	 J  .           * R           T  -      "     *+ R       
    [  Y '           ** < ;** P A ` Q** Qd* ; >* ; N`d _** ; \* ; "`d 9* P* _* ; >`* ; \* Q* 9 L*  * K* (* M       * 
   b  c  d 0 e F f h i m j q k u m ~ ` 9      *     
* J*+ G           t  u 	 r "           f*+ F*   D*** _* 9 *  **   5 *  Y  T**  3 1* J* (+*  * ; >* ; \* ,W       * 
   |  }     '  :  E  I  M  e z      e     * O ** Oll* [` C: * R* K6+ ]* =e c敎 * R 	6 *+ ] =* R V* R % L* R* R D   D* $ Z* R D * $** R E  ?* $** R '  .* $ ' * $** R +  * $** R & * (* K       f       	     %  *  .  0  3  L  O  R  Z  `  o                            #     *+ B       
             8     ** P 8 [* (* K                  %           K* 1 6<* 1 2=*  ^ S* * _* 9 0* O *  ! S** O HW       & 	          +  2  3  =  J  #         h6* [dh66+ a+ b* 1+ Z Y6	 k* 9 b+ : * + :* ,W* R+ -*  ? S* ``	` 0*  ! S* + Z`` .+ % + D * 9 * ```	`` -6
 *+ %
 / 	`` H6* ```` -
+ % Wd * ``` -  * ``h`d -`6h`6

+ % W * 9\       v             +  9  @  Q  Y  c  y                     4 7 T [ e }         l     @* 1 * O ** O ) <* 9ld @=* P* [   V                 * ?         c     7=+ D /+ % (> *+ % / 	 )`=+ % W              ' 5            U+ b + a ++ % 
+ D 6 "*+ % / 	 C: 皠+ % W       & 	       " ( < D S        2       7 X #              
         0707010004b0fb000081a40000000000000002000000013ac038a000001dab000000200000000000000000000000000000001a00000003reloc/file/Hierarchy.java // Hierarchy
// An AWT component for displaying a tree-like heirachy, with each node
// having an icon and a name. This heirachy can be expanded or contracted
// by the user.
import java.awt.*;
import java.util.Vector;

public class Hierarchy extends BorderPanel implements CbScrollbarCallback
{
	HierarchyNode root;		// the root of the tree
	CbScrollbar sb;			// scrollbar at right
	int width, height;		// usable drawing area
	int sbwidth;			// size of scrollbar
	HierarchyCallback callback;	// who to call on open / close
	Image bim;			// double-buffer image
	FontMetrics fnm;		// size of font used
	Graphics bg;			// back-images graphics
	int top = 0;			// top-most row displayed
	int count = 0;			// total rows in the tree
	Insets in;			// insets from border
	HierarchyNode sel;		// selected node
	long last;			// time of last mouse click
	static boolean broken_awt = System.getProperty("os.name").
				    startsWith("Windows");

	// Create a new Hierarchy object with the given root
	Hierarchy(HierarchyNode r)
	{
	this();
	root = r;
	}

	// Create a new Hierarchy object that calls back to the given object
	// when nodes are clicked on.
	Hierarchy(HierarchyNode r, HierarchyCallback c)
	{
	this(r);
	callback = c;
	}

	// Create an empty hierarchy object, with no callback
	Hierarchy()
	{
	super(3, new Color(50,50,50), new Color(220,220,220));

	// Create UI
	setLayout(null);
	sb = new CbScrollbar(CbScrollbar.VERTICAL, this);
	add(sb);
	}

	// Create an empty hierarchy object, set to report user actions to
	// the given object.
	Hierarchy(HierarchyCallback c)
	{
	this();
	callback = c;
	}

	// redraw
	// Called by the using class when the tree passed to this object
	// changes, to force a redraw and resizing of the scrollbar
	void redraw()
	{
	if (fnm != null) {
		render();
		paint(getGraphics());
		compscroll();
		}
	}

	// setRoot
	// Set the root node for this hierarchy
	void setRoot(HierarchyNode r)
	{
	root = r;
	redraw();
	}

	// selected
	// Return the currently selected node, or null
	HierarchyNode selected()
	{
	return sel;
	}

	// select
	// Send the given node
	void select(HierarchyNode s)
	{
	sel = s;
	}

	// reshape
	// Called when this component gets resized
	public void reshape(int nx, int ny, int nw, int nh)
	{
	in = insets();
	sbwidth = sb.minimumSize().width;
	width = nw-sbwidth - (in.left + in.right);
	height = nh - (in.top + in.bottom);
	sb.reshape(width+in.left, in.top, sbwidth, height);

	// force creation of a new backing images
	bim = null;
	repaint();
	compscroll();

	super.reshape(nx, ny, nw, nh);
	}

	// update
	// Called sometime after repaint()
	public void update(Graphics g)
	{
	render();
	paint(g);
	}

	// paint
	// Blit the backing image to the front
	public void paint(Graphics g)
	{
	super.paint(g);
	if (bim == null) {
		// This is the first rendering
		bim = createImage(width, height);
		bg = bim.getGraphics();
		bg.setFont(new Font("courier", Font.PLAIN, 12));
		fnm = bg.getFontMetrics();
		render();
		compscroll();
		}
	g.drawImage(bim, in.left, in.top, this);
	}

	// mouseDown
	// Called upon a mouseclick
	public boolean mouseDown(Event evt, int x, int y)
	{
	if (root == null)
		return false;		// nothing to do
	HierarchyNode s = nodeat(root, x/16, (y/16)+top);
	if (s == null) {
		// Just deselect
		sel = null;
		repaint();
		return true;
		}

	// Check for double-click
	boolean dc = false;
	if (evt.when-last < 500 && sel == s)
		dc = true;
	else
		last = evt.when;
	sel = s;

	if (dc && sel.ch != null) {
		// Open or close this node
		sel.open = !sel.open;
		if (callback != null) {
			// Notify callback, which MAY do something to change
			// the structure of the tree
			if (sel.open) callback.openNode(this, sel);
			else	      callback.closeNode(this, sel);
			}
		}
	else if (callback != null) {
		// Single click on a node or double-click on leaf node
		if (dc) callback.doubleNode(this, sel);
		else    callback.clickNode(this, sel);
		}
	compscroll();
	repaint();
	return true;
	}

	public void moved(CbScrollbar s, int v)
	{
	moving(s, v);
	}

	public void moving(CbScrollbar s, int v)
	{
	top = sb.getValue();
	compscroll();
	repaint();
	}

	// render
	// Draw the current tree view into the backing image
	private void render()
	{
	int fh = fnm.getHeight(),	// useful font metrics
	    fa = fnm.getAscent();
	bg.setColor(Color.white);
	bg.fillRect(0, 0, width, height);
	if (root == null)
		return;		// nothing to do
	bg.setColor(Color.black);
	recurse(root, 0, 0, fh, fa);
	}

	// recurse
	// Render a node in the tree at the given location, maybe followed
	// by all it's children. Return the number of rows this node took
	// to display.
	private int recurse(HierarchyNode n, int x, int y, int fh, int fa)
	{
	int xx = x*16, yy = (y-top)*16;
	int len = 1;

	n.x = x;
	n.y = y;
	int tw = fnm.stringWidth(n.text);
	if (yy >= 0 && yy <= height) {
		// Draw this node
		if (n.im != null)
			bg.drawImage(n.im, xx, yy, this);
		if (sel == n) {
			// Select this node
			bg.setColor(Color.lightGray);
			bg.fillRect(xx+17, yy+2, tw+2, 13);
			bg.setColor(Color.black);
			}
		bg.drawString(n.text, xx+18, yy+12);
		}
	if (n.ch != null && n.open && yy <= height) {
		// Mark this node
		bg.drawLine(xx+18, yy+14, xx+17+tw, yy+14);

		// Draw subnodes
		yy += 16;
		for(int i=0; i<n.ch.size() && yy<=height; i++) {
			int l=recurse((HierarchyNode)n.ch.elementAt(i),
				      x+1, y+len, fh, fa);
			bg.drawLine(xx+7, yy+7, xx+15, yy+7);
			if (i == n.ch.size()-1)
				bg.drawLine(xx+7, yy, xx+7, yy+7);
			else
				bg.drawLine(xx+7, yy, xx+7,yy+(l*16)-1);
			len += l;
			yy += l*16;
			}
		}
	return len;
	}

	// compscroll
	// Re-compute scrollbar size
	private void compscroll()
	{
	if (fnm == null)
		return;
	int ct = root!=null ? count(root) : 1;
	int r = Math.min(ct, height/16 - 1);
	int c = ct - r;
	//sb.setValues(top, r==0?1:r, c<0?0:c);
	sb.setValues(top, r==0?1:r, ct);
	}

	// count
	// Returns the number of visible rows from a node
	private int count(HierarchyNode n)
	{
	int l = 1;
	if (n.open && n.ch != null)
		for(int i=0; i<n.ch.size(); i++)
			l += count((HierarchyNode)n.ch.elementAt(i));
	return l;
	}

	// nodeat
	// Is the given node at the given position? If not, check its
	// children too.
	private HierarchyNode nodeat(HierarchyNode n, int x, int y)
	{
	if (y == n.y && x >= n.x)
		return n;
	if (n.ch == null || !n.open)
		return null;
	for(int i=0; i<n.ch.size(); i++) {
		HierarchyNode c = nodeat((HierarchyNode)n.ch.elementAt(i),x,y);
		if (c != null) return c;
		}
	return null;
	}
}

// HierarchyNode
// One node in the tree displayed by the Hierarchy object.
class HierarchyNode
{
	boolean open;		// is this node open?
	Image im;		// icon for this node (assumed to be 16x16!)
	Vector ch;		// sub-nodes of this one, or null
	String text;		// name of this node
	int x, y;		// row/column in list

	HierarchyNode() { }

	HierarchyNode(boolean o, Image i, Vector c, String t)
	{
	open = o;
	im = i;
	ch = c;
	text = t;
	}
}

// HierarchyCallback
// Programmers using the Hierarchy class pass an object that implements the
// HierarchyCallback interface to its constructor, to receive information
// about user actions.
interface HierarchyCallback
{
	// openNode
	// Called when a node with children is opened
	void openNode(Hierarchy h, HierarchyNode n);

	// closeNode
	// Called when a node is closed
	void closeNode(Hierarchy h, HierarchyNode n);

	// clickNode
	// Called when the user clicks on a node
	void clickNode(Hierarchy h, HierarchyNode n);

	// doubleNode
	// Called when a user double-clicks on a node
	void doubleNode(Hierarchy h, HierarchyNode n);
}

 0707010004b0fc000081a40000000000000002000000013ac038a000000144000000200000000000000000000000000000002300000003reloc/file/HierarchyCallback.class    漱壕  -  	    (LHierarchy;LHierarchyNode;)V Code ConstantValue 
Exceptions 	Hierarchy Hierarchy.java HierarchyCallback HierarchyNode LineNumberTable LocalVariables 
SourceFile 	clickNode 	closeNode 
doubleNode java/lang/Object openNode                              
0707010004b0fd000081a40000000000000002000000013ac038a000000264000000200000000000000000000000000000001f00000003reloc/file/HierarchyNode.class    漱壕  - (    #
  
	  	  	  	     !  "  $   %  ()V 8(ZLjava/awt/Image;Ljava/util/Vector;Ljava/lang/String;)V <init> Code ConstantValue 
Exceptions 	Hierarchy Hierarchy.java HierarchyCallback HierarchyNode I LineNumberTable Ljava/awt/Image; Ljava/lang/String; Ljava/util/Vector; LocalVariables 
SourceFile Z ch im java/lang/Object open text x y          $       "      !      %      &      '                  *           -         F     * * *, *- * 	          / 1 	2 3 4 /      0707010004b0fe000081a40000000000000002000000013ac038a00000072e000000200000000000000000000000000000002100000003reloc/file/LineInputStream.class  漱壕  - [ > L M N O P Q
  
  
  
  
  
   
  !	  "
  #
  $
  %
  &
  '
  '
  (
  )
  )
  *
  +
  ,
  - : 0 D 2 E . F 4 G 0 J A K 3 R . S 5 T 1 U . U 8 U 9 W 0 X 5 Y 6 Z / ()I ()Ljava/lang/String; ()V ()Z (C)Ljava/lang/StringBuffer; (C)Z (I)C (I)V (J)J (Ljava/io/InputStream;)V ([B)I ([BII)I <init> Code ConstantValue 
Exceptions LineInputStream LineInputStream.java LineNumberTable Ljava/io/InputStream; LocalVariables 
SourceFile append 	available charAt close gets getw in isSpace java/io/EOFException java/io/IOException java/io/InputStream java/lang/Character java/lang/Object java/lang/StringBuffer length mark markSupported read readdata reset 	setLength skip toString !        J A      : 7  ;   *     
* 	*+     @          	    : 0  ;        * 	    @         U .  ;         *      @        =       U 8  ;   !     	* +     @        =       U 9  ;   #     * +     @        =       Y 6  ;   !     	*      @        =       E .  ;         *      @        =       G 0  ;   $     *      @   
       =      ! S 5  ;   %     	*      @   
       ! W 0  ;   $     *      @   
    !    =       T 1  ;         *      @       #   H /  ;        O Y 
L   Y +挾 W* Y=
+  ++ d  ++ d +     @   "    )  +  ,  -  + * / @ 0 J 1 =         I /  ;   x     H Y 
L* Y=  Y 捀 +挾 W* Y=  Y 捀 +     @       8  <  = " @ ) A ; B C C =        V 8  ;   C     = *++d `=+尽+粳    @       K  L  M  L  N =        C    ?  0707010004b0ff000081e40000000000000002000000013ac038a00000084f000000200000000000000000000000000000002000000003reloc/file/LineInputStream.java   // LineInputStream
// A stream with some useful stdio-like methods. Can be used either for
// inheriting those methods into your own input stream, or for adding them
// to some input stream.
import java.io.InputStream;
import java.io.IOException;
import java.io.EOFException;

public class LineInputStream 
{
	InputStream in;

	LineInputStream(InputStream i)
		{ in = i; }
	LineInputStream()
		{ }

	public int read() throws IOException
		{ return in.read(); }
	public int read(byte b[]) throws IOException
		{ return in.read(b); }
	public int read(byte b[], int o, int l) throws IOException
		{ return in.read(b, o, l); }
	public long skip(long n) throws IOException
		{ return in.skip(n); }
	public int available() throws IOException
		{ return in.available(); }
	public void close() throws IOException
		{ in.close(); }
	public synchronized void mark(int readlimit)
		{ in.mark(readlimit); }
	public synchronized void reset() throws IOException
		{ in.reset(); }
	public boolean markSupported()
		{ return in.markSupported(); }

	// gets
	// Read a line and return it (minus the \n)
	String gets() throws IOException, EOFException
	{
	StringBuffer buf = new StringBuffer();
	int b;
	while((b = read()) != '\n') {
		if (b == -1) throw new EOFException();
		buf.append((char)b);
		}
	if (buf.length() != 0 && buf.charAt(buf.length()-1) == '\r')
		buf.setLength(buf.length()-1);	// lose \r
	return buf.toString();
	}

	// getw
	// Read a single word, surrounded by whitespace
	String getw() throws IOException, EOFException
	{
	StringBuffer buf = new StringBuffer();
	// skip spaces
	int b;
	do {
		if ((b = read()) == -1) throw new EOFException();
		} while(Character.isSpace((char)b));
	// add characters
	do {
		buf.append((char)b);
		if ((b = read()) == -1) throw new EOFException();
		} while(!Character.isSpace((char)b));
	return buf.toString();
	}

	// readdata
	// Fill the given array completely, even if read() only reads
	// some max number of bytes at a time.
	public int readdata(byte b[]) throws IOException, EOFException
	{
	int p = 0;
	while(p < b.length)
		p += read(b, p, b.length-p);
	return b.length;
	}
}

 0707010004b100000081a40000000000000002000000013ac038a000000548000000200000000000000000000000000000001c00000003reloc/file/LinedPanel.class   漱壕  - Y < J K L M N O P Q
 	 
  	  
  
  
  
   
  !	  "
  #
  $
  %
  &	  '	  (	  ) 6 / 6 0 B > C 0 D 5 E * F , G - H : R 2 S 1 T + U 3 V ? W > X : ()I ()Ljava/awt/Dimension; ()Ljava/awt/Font; ()Ljava/awt/FontMetrics; ()Ljava/awt/Insets; ()V (IIII)V (Ljava/awt/Color;)V (Ljava/awt/Graphics;)V (Ljava/lang/String;)I (Ljava/lang/String;)V (Ljava/lang/String;II)V <init> Code ConstantValue 
Exceptions I LineNumberTable 
LinedPanel LinedPanel.java Ljava/awt/Color; Ljava/lang/String; LocalVariables 
SourceFile black drawLine 
drawString 	getAscent getFont getFontMetrics height insets java/awt/Color java/awt/Component java/awt/Container java/awt/Dimension java/awt/FontMetrics java/awt/Graphics java/awt/Insets java/awt/Panel paint setColor size stringWidth title white width    	      V ?      6 4  7   *     
* 
*+     ;         	 	   R 2  7       *+ + W+ M*  d>*  d6,*  6+  +d +ddd +ddd +	`d +  +d +ddd +ddd +d	` +* ,      ;   F       
    $  .  5  @  P  _  m  t             I .  7   (      Y


     ;       $  A    =0707010004b101000081a40000000000000002000000013ac038a0000002c8000000200000000000000000000000000000001b00000003reloc/file/LinedPanel.java    import java.awt.*;

class LinedPanel extends Panel
{
	String title;

	LinedPanel(String t)
	{
	title = t;
	}

	public void paint(Graphics g)
	{
	super.paint(g);
	Font f = g.getFont();
	FontMetrics fnm = g.getFontMetrics();
	int w = size().width-1, h = size().height - 1;
	int tl = fnm.stringWidth(title);

	g.setColor(Color.white);
	g.drawLine(5, 5, 5, h-5);
	g.drawLine(5, h-5, w-5, h-5);
	g.drawLine(w-5, h-5, w-5, 5);
	g.drawLine(tl+9, 5, w-5, 5);

	g.setColor(Color.black);
	g.drawLine(4, 4, 4, h-6);
	g.drawLine(6, h-6, w-6, h-6);
	g.drawLine(w-6, h-6, w-6, 6);
	g.drawLine(w-6, 4, tl+9, 4);
	g.drawString(title, 7, fnm.getAscent());
	}

	public Insets insets()
	{
	return new Insets(15, 10, 10, 10);
	}
}

0707010004b102000081a40000000000000002000000013ac038a000000ddc000000200000000000000000000000000000001c00000003reloc/file/LinkWindow.class   漱壕  -                                                 
  ^
 % ^
 + ^
 - ^
 ' _
 ) `
   a
  b
  c
 * c
 0 c
 - d
   e
 & f
 & g
 0 h	  i	  j
 ( k
 / l	  m
   n
  o	  p
 , q
  r
  s
 / t
 / u
 . v
 , w
 & x
 ( y
 . z
  {	  |
 / }
 / ~
  
  	  
 0 
 / 
  
 /                                                                                  &to= ()I ()Ljava/lang/String; ()V (I)I (I)Ljava/lang/String; (I)V (II)Ljava/lang/String; (II)V (LCbButton;)V .(LFileManager;Ljava/lang/String;LRemoteFile;)V (LRemoteFile;)V (LRemoteFile;)Z *(Ljava/awt/Component;)Ljava/awt/Component; 8(Ljava/awt/Image;Ljava/lang/String;ILCbButtonCallback;)V (Ljava/awt/LayoutManager;)V &(Ljava/lang/Object;)Ljava/lang/String; (Ljava/lang/Object;)Z  (Ljava/lang/String;)LRemoteFile; $(Ljava/lang/String;)Ljava/awt/Image; &(Ljava/lang/String;)Ljava/lang/String; ,(Ljava/lang/String;)Ljava/lang/StringBuffer; (Ljava/lang/String;)V '(Ljava/lang/String;)[Ljava/lang/String; (Ljava/lang/String;I)V "(Ljava/lang/String;LFileManager;)V <(Ljava/lang/String;Ljava/awt/Component;)Ljava/awt/Component; 8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; !(Ljava/lang/String;Z)LRemoteFile; / <init> CbButton CbButtonCallback Center Code ConstantValue DFSAdminExport DeleteWindow EditorWindow ErrorWindow 
Exceptions FileManager FileManager.java FileNode 
FixedFrame 
LCbButton; LFileManager; LRemoteFile; LineNumberTable 
LinkWindow LinuxExport Ljava/awt/TextField; LocalVariables MkdirWindow 
MultiLabel OverwriteWindow PermissionsPanel PropertiesWindow 
RemoteFile RenameWindow 
SambaShare SearchWindow SharingWindow 
SourceFile South West add append cancel 
cancel.gif cancel_b click create create_b dispose equals filemgr find find_directory from getText 	get_image get_text java/awt/BorderLayout java/awt/Container java/awt/FlowLayout java/awt/Frame java/awt/GridLayout java/awt/Label java/awt/Panel java/awt/TextComponent java/awt/TextField java/awt/Window java/lang/String java/lang/StringBuffer lastIndexOf length link_eexists link_efailed 	link_from 
link_title link_to makelink.cgi?from= pack save.gif select 	setLayout setTitle show 
show_files showing_files 	substring text to toString trim urlize valueOf                                                  ^* 1*, E* %Y 2 P** E W Q +Y 3N +Y 3:- )Y 6 P- *Y* E W : >W- *Y* E W : >W )Y 6 P* -Y+ D   0Y+ ] ; @ Z( <Z H >W* H* H I M* H I M O* -Y 4Z Y >W*- ?W* ?W +Y 3: 'Y 5 P* Y* E J* E W* 8Z B >W* Y* E J* E W* 8Z A >W* ?W* N* R       n   W Y 	Z [ !\ 2] ?^ T_ i` wa b c d e f ghig&j6k?lAjLmUnYo]W       [  	   +* B * H I [M,/ L>, V:,` U:* E G:  F  * E	, X 9* E 0Y ;, \ @ @* Y I \ @ Z K:2 M  * E
2 X 9被  Y* E2 7: =* E* E T SW* C+* A * C       j   t v w x "y +z 7{ =| G} W~ X e q ~         t   r      0707010004b103000081a40000000000000002000000013ac038a100000774000000200000000000000000000000000000001d00000003reloc/file/LinuxExport.class  漱壕  -  @ A B C Q S ~ V W X Z \ ^ _ b c d e f g h i j k m v w x y
  /
  0
  1
  2
  3
  4
  5
  6	  7
  8
  9	  :	  ;	  <
  =
  >
  ? R F R N R O q H q M r D s J t G u o z E | K } `  p  n  E  L  I &count= &host &ro &squash ()I ()Ljava/lang/String; ()V ()Z (I)Ljava/lang/StringBuffer; &(Ljava/lang/Object;)Ljava/lang/String; (Ljava/lang/Object;)Z (Ljava/lang/String;)I &(Ljava/lang/String;)Ljava/lang/String; ,(Ljava/lang/String;)Ljava/lang/StringBuffer; (Ljava/lang/String;)V (Ljava/lang/String;C)V N(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V 1 <init> = Code ConstantValue DFSAdminExport DeleteWindow EditorWindow 
Exceptions FileManager FileManager.java FileNode LineNumberTable 
LinkWindow LinuxExport Ljava/lang/String; LocalVariables MkdirWindow 
MultiLabel OverwriteWindow PermissionsPanel PropertiesWindow 
RemoteFile RenameWindow 
SambaShare SearchWindow SharingWindow 
SourceFile StringSplitter [I [Ljava/lang/String; [Z append countTokens equals hasMoreTokens host java/lang/Integer java/lang/Object java/lang/String java/lang/StringBuffer 	nextToken params parseInt path path= ro squash toString urlize valueOf          } `     u o      p      n      R N  T        n*  Y+:  M*, ' ), #l>*  &* **
 +6 /* &, 'S* *, ' $T* +, ' (O, %斜    ]   6        & - 4 : E U c m   R P  T   *     
* *+ )    ]        	   { E  T        椿 Y * ) - " "* &径 ! ,L= 兓 Y+ .  " ! "* &2 - " ,L Y+ .  " ! "* *3   ! ,L Y+ .  " ! "* +. ! ,L* &尽z+    ]   & 	    # $ ) R     l    [0707010004b104000081a40000000000000002000000013ac038a00000007a000000200000000000000000000000000000001400000003reloc/file/Makefile   FileManager.class:	FileManager.java
			CLASSPATH=/usr/local/lib/netscape/java/classes/java40.jar:. javac FileManager.java
  0707010004b105000081a40000000000000002000000013ac038a000000dfe000000200000000000000000000000000000001d00000003reloc/file/MkdirWindow.class  漱壕  -                                               
  `
 $ `
 ) `
 & a
  b
  c
  d
  e
 ( e
 . e
 + f
  g
  h
 % i
 % j
 . k	  l	  m	  n	  o
 ' p
 - q	  r
  s
  t
 / u
 * v
  w
  x
 - y
 - z	  {
 , |
  }
 * ~
 % 
 ' 
 , 
  	  
 - 
 - 
  
  
 . 
  
  
 -                                                                                 ()I ()Ljava/lang/String; ()V (I)I (I)Ljava/lang/String; (I)V (II)Ljava/lang/String; (II)V (LCbButton;)V .(LFileManager;Ljava/lang/String;LRemoteFile;)V (LFileNode;)V (LRemoteFile;)V (LRemoteFile;)Z *(Ljava/awt/Component;)Ljava/awt/Component; 8(Ljava/awt/Image;Ljava/lang/String;ILCbButtonCallback;)V (Ljava/awt/LayoutManager;)V &(Ljava/lang/Object;)Ljava/lang/Object; &(Ljava/lang/Object;)Ljava/lang/String; (Ljava/lang/Object;)Z  (Ljava/lang/String;)LRemoteFile; $(Ljava/lang/String;)Ljava/awt/Image; &(Ljava/lang/String;)Ljava/lang/String; ,(Ljava/lang/String;)Ljava/lang/StringBuffer; (Ljava/lang/String;)V '(Ljava/lang/String;)[Ljava/lang/String; (Ljava/lang/String;I)V "(Ljava/lang/String;LFileManager;)V <(Ljava/lang/String;Ljava/awt/Component;)Ljava/awt/Component; 8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; !(Ljava/lang/String;Z)LRemoteFile; / <init> CbButton CbButtonCallback Center Code ConstantValue DFSAdminExport DeleteWindow EditorWindow ErrorWindow 
Exceptions FileManager FileManager.java FileNode 
FixedFrame 	Hierarchy 
LCbButton; LFileManager; LHierarchy; LRemoteFile; LineNumberTable 
LinkWindow LinuxExport Ljava/awt/TextField; Ljava/util/Hashtable; LocalVariables MkdirWindow 
MultiLabel OverwriteWindow PermissionsPanel PropertiesWindow 
RemoteFile RenameWindow 
SambaShare SearchWindow SharingWindow 
SourceFile South West add append cancel 
cancel.gif cancel_b click create create_b dir dirs dispose equals filemgr find find_directory get getText 	get_image get_text java/awt/BorderLayout java/awt/Container java/awt/FlowLayout java/awt/Frame java/awt/Label java/awt/Panel java/awt/TextComponent java/awt/TextField java/awt/Window java/lang/String java/lang/StringBuffer java/util/Hashtable lastIndexOf length mkdir.cgi?dir= 	mkdir_dir mkdir_eexists mkdir_efailed mkdir_title nodemap pack redraw save.gif select 	setLayout setTitle show 
show_files showing_files 	substring text toString 	trim_path urlize valueOf                                        `     * 0*, F** F Z T* $Y 1 S* (Y* F	 Z 8 >W** +Y+ E   .Y+ _ 9 ? \( :Z B >W* B* B J N* B J N R )Y 2N- &Y 3 S-* Y* F K* F Z* 6Z A =W-* Y* F K* F Z* 6Z @ =W*- >W* P* U       V     	  ! 8  n! " # $ % & $ ' ( ) ' * + ,        k     +* A * B JM* F, ]M,/ M>* F, Y H:,` X G  * F
, [ 7* F .Y 9, ^ ? \ L:2 N  * F2 [ 7被 Y* F2 4: <* F O I :  Y 5 ;* F C Q* F* F W VW* D* D       n   1 3 4 5  6 $7 +6 08 ?9 O: P< ]= d< l> v? @ B C D E G H J K 1 M /        0707010004b106000081a40000000000000002000000013ac038a000001f1f000000200000000000000000000000000000001d00000003reloc/file/MultiColumn.class  漱壕  -s l     23456789:;<=>?
  p
  q
 	 r
  s
  t
  u
  v
  w
  x
  y
  z	  {	  |	  }	 	 ~	  	  	  	  
  	  
 
 	  
 
   
  
  
  	  
  
 
 	  
  	  
  
  
  
  
  
 
 
  	  	  
  	  	  	  
  	 	 	  
  
  
  
  
  
  
 
 
  
  
  
 
 
  
 
 
  	  	  
  	  	  	  
  
  
  
  
    
  
  
  	  	  	  	  	  	 	 	  	                        	 
                !" # $% & ' ( ) * + - . / 0 1 @ A B C D EF G K L M O P Q R S T U V W X Y [ _ b c d e g h i j k mn p q r  ()I ()Ljava/awt/Container; ()Ljava/awt/Dimension; ()Ljava/awt/FontMetrics; ()Ljava/awt/Graphics; ()Ljava/awt/Insets; ()V (I)I (I)Ljava/lang/Object; (I)V (I)[Ljava/lang/Object; (II)I (II)Ljava/awt/Image; (II)Ljava/lang/String; (II)V (III)V (IIII)V (ILCbScrollbarCallback;)V $(ILjava/awt/Color;Ljava/awt/Color;)V (LCbScrollbar;I)V (LMultiColumn;I)V (Ljava/awt/Color;)V *(Ljava/awt/Component;)Ljava/awt/Component; (Ljava/awt/Event;)Z (Ljava/awt/Event;II)Z (Ljava/awt/Font;)V (Ljava/awt/Graphics;)V 3(Ljava/awt/Image;IILjava/awt/image/ImageObserver;)Z (Ljava/awt/LayoutManager;)V (Ljava/lang/Object;)V ((Ljava/lang/Object;ILjava/lang/Object;)V (Ljava/lang/String;)I (Ljava/lang/String;II)V (Z)V ([F)V ([Ljava/lang/Object;)V ([Ljava/lang/String;)V +([Ljava/lang/String;LMultiColumnCallback;)V ([[Ljava/awt/Color;)V ([[Ljava/lang/Object;)V <init> BorderPanel CbScrollbar CbScrollbarCallback Code ConstantValue Double 
Exceptions I J LCbScrollbar; LMultiColumnCallback; LineNumberTable Ljava/awt/Color; Ljava/awt/Event; Ljava/awt/FontMetrics; Ljava/awt/Graphics; Ljava/awt/Image; Ljava/awt/Insets; LocalVariables MultiColumn MultiColumn.java MultiColumnCallback Single 
SourceFile Z [F [I [Ljava/lang/String; [Ljava/util/Vector; [[Ljava/awt/Color; abs add 
addElement addItem addItems 
adjustable bg bim black bottom callback clear coldrag colors 
compscroll cpos createImage cwidth 
deleteItem disable doubleClick 	drawImage drawLine 
drawString 	drawlines 	elementAt enable enabled fillRect fnm 	getAscent 
getDescent getFontMetrics getGraphics 	getHeight getItem 	getParent getValue height in insets java/awt/Color java/awt/Component java/awt/Container java/awt/Dimension java/awt/Event java/awt/Font java/awt/FontMetrics java/awt/Graphics java/awt/Image java/awt/Insets java/lang/Math java/lang/Object java/lang/String java/util/Vector last 
last_event left length 	lightGray list min minimumSize 	mouseDown 	mouseDrag moved moving paint 	postEvent preferredSize removeAllElements removeElementAt render repaint reshape respace right rowh rows sb sbwidth scrollto sel select selected setAdjustable setColor 	setColors setDrawLines setFont 	setLayout setValue 	setValues 	setWidths singleClick size stringWidth 	substring th 
timesRoman title top update when white width !            m        !        $            E    X     r     /     0     Y     k               &          [     n     @     V     A            C     * 	Y222  	Y   芊  * "* 3* 6* (* \* X*+窘  g= * g+2S+尽*+窘  H> * H Y S+尽*+炯 -6 * -+締nQ+尽*+`
 +* _* Y*  Z** Z  W       b    # " 
 '  ,  1  6  ;  A $ J % O & X % a ' j ( o ) | (  *  +  ,  +  -  .  /  0  !         +     *+ *, '           7  8 
 5        R     &= * H2+2 !* g尽* S* *           ?  @  ?  A ! B % =        j     6= %> * H2+22 !* g尽閯+尽* S* *       "    I  J 
 K  J $ I - L 1 M 5 G  ,      Q     )* g窘 M> ,* H2 4S* g尽,           T 	 U  V  U ' W  ]           * \           ^  \      *     
* \* S           e  f 	 c  Z           O* Y=* h * h` :*d h* h* H2 cd ** H2 cd h* Z* h `* S       "    m  n  o  p 0 q ? r J s N k        a     1= * H2 Q* g尽* \ * \* S* *           {  |  {  } ( ~ ,  0 y        g     3< * H2 P* g尽* \* h* S* Z a       "             $  (  2   f      O     #= * -+0Q* g尽* V* S                    "   ^      "     * "       
        a      "     * 3       
        `      *     
*+ )* S              	  #      5     * 6* Z 5* S                        5     * 6* Z .* S                  S           * l* [` * @ |** B A** Z J m [** [d* A E* A W`d l** A i* A &`d @* Z* l* A E`* A i* [* @ T* V* $* S* ** U       2         ,  F  \  ~             T      ]     5* +O< "* +`* +.* l* -0j媊O* g尽郾                (  4  L           s*+ M* $ Q*** l* @ , $** $ < #* # Y  ^** # ; 8** 8 =` f* R* *+* $* A E* A i* 0W       .           '  :  E  R  V  Z  r  o      5     * 8 * R*+ N                   Q       
   * 8 =W* 8 :<* 8 9W* h* Y`d* H2 cd I=* # G ]* #* l* f 7* # k ]* #* f* l* @* fd 7* 6 C* \* h 8* \ 0* # G ]* #* f* \* hd* Xh`* l* X 7>=* +.6* +`.dd6* # k ]* #` 1* #`d 1* #* fd 1* #``* fd 1* # % ]* #* fd`* fd 1* #* fd`d* fd 1* #`* fd` 1* #`d* fd`d 1* 8* g2 d6d "* #* g2dl`* fdd 2* 3 M* # G ]* #`d* f`d* @ 1* # % ]* #`* f`* @ 1* h6 * H2 4:  | :	 		 Fd e:	* 8	 dd* 6 * # G ] * ) * #* )22 ]* #	`* f`* hd* Xh`d 2 2  * :	* #	`* f* hd* Xh`* 0W=* g尽        4          2 < M W p w
        '1Kg !$%&'($*-+:,B.I/L0[/k1r2|1345,79:*  H         * 6 * A Ed=* A id>* (* f 66 #* " * +.d  	* (* g尽侑 * fd* Xl* h`6* H2 c 6+ j* Ce n敎 * \ 	6 *+ j C* \* S*+ D* ' & * '* /  1* '* b  "* > Y*    OW           D E 	G H I "J *L 0M GO ML ZJ ]T oU }W X Y X [ ] ^ _ ` b c ` g h i j h g n I           * 6 * A Ed=* A id>* ( * +* (d.` n* +* (`.d ]* +* (O* -* (d* +* (.* +* (d.d* l唍Q* -* (* +* (`.* +* (.d* l唍Q* S       >   u v 	x y z %{ G| Q} q~ v} x     J      #     *+ L       
     K      8     ** Z ? h* ** S                    a     5* 8 * Y<* H2 cW* Z* h  * H2 c a               4 W      0     * @* Xld* H2 c I           G      %      Yd            N           * K                0707010004b107000081a40000000000000002000000013ac038a00000259e000000200000000000000000000000000000001c00000003reloc/file/MultiColumn.java   // MultiColumn
// A List box that supports multiple columns.
import java.awt.*;
import java.util.Vector;

public class MultiColumn extends BorderPanel implements CbScrollbarCallback
{
	MultiColumnCallback callback;	// what to call back to 
	String title[];			// column titles
	boolean adjustable = true;
	boolean drawlines = true;
	Color colors[][] = null;
	boolean enabled = true;
	int cpos[];			// column x positions
	float cwidth[];			// proportional column widths
	Vector list[];			// columns of the list
	CbScrollbar sb;			// scrollbar at the right side
	int width, height;		// size, minus the scrollbar
	Insets in;			// used space around the border
	int sbwidth;			// width of the scrollbar
	int th;				// height of title bar
	Image bim;			// backing image
	Graphics bg;			// backing graphics
	FontMetrics fnm;		// drawing font size
	int coldrag = -1;		// column being resized
	int sel = -1;			// selected row
	int top = 0;			// first row displayed
	long last;			// last mouse click time
	int rowh = 16;			// row height
	Event last_event;		// last event that triggered callback

	// Create a new list with the given column titles
	MultiColumn(String t[])
	{
	super(3, new Color(50,50,50), new Color(220,220,220));
	title = new String[t.length];
	for(int i=0; i<t.length; i++)
		title[i] = t[i];
	list = new Vector[t.length];
	for(int i=0; i<t.length; i++)
		list[i] = new Vector();
	cwidth = new float[t.length];
	for(int i=0; i<t.length; i++)
		cwidth[i] = 1.0f/t.length;
	cpos = new int[t.length+1];
	setLayout(null);
	sb = new CbScrollbar(CbScrollbar.VERTICAL, this);
	add(sb);
	}

	// Create a new list that calls back to the given object on
	// single or double clicks.
	MultiColumn(String t[], MultiColumnCallback c)
	{
	this(t);
	callback = c;
	}

	// addItem
	// Add a row to the list
	void addItem(Object item[])
	{
	for(int i=0; i<title.length; i++)
		list[i].addElement(item[i]);
	repaint();
	compscroll();
	}

	// addItems
	// Add several rows to the list
	void addItems(Object item[][])
	{
	for(int i=0; i<item.length; i++)
		for(int j=0; j<title.length; j++)
			list[j].addElement(item[i][j]);
	repaint();
	compscroll();
	}

	// getItem
	// Returns the contents of a given row
	Object []getItem(int n)
	{
	Object r[] = new Object[title.length];
	for(int i=0; i<title.length; i++)
		r[i] = list[i].elementAt(n);
	return r;
	}

	// selected
	// Return the selected row
	int selected()
	{
	return sel;
	}

	// select
	// Select some row
	void select(int s)
	{
	sel = s;
	repaint();
	}

	// scrollto
	// Scroll to make some row visible
	void scrollto(int s)
	{
	int r = rows();
	if (s < top || s >= top+r) {
		top = s-1;
		if (top > list[0].size() - r)
			top = list[0].size() - r;
		sb.setValue(top);
		repaint();
		}
	}

	// deleteItem
	// Remove one row from the list
	void deleteItem(int n)
	{
	for(int i=0; i<title.length; i++)
		list[i].removeElementAt(n);
	if (n == sel) sel = -1;
	repaint();
	compscroll();
	}

	// clear
	// Remove everything from the list
	void clear()
	{
	for(int i=0; i<title.length; i++)
		list[i].removeAllElements();
	sel = -1;
	top = 0;
	repaint();
	sb.setValues(0, 1, 0);
	}

	// setWidths
	// Set the proportional widths of each column
	void setWidths(float w[])
	{
	for(int i=0; i<title.length; i++)
		cwidth[i] = w[i];
	respace();
	repaint();
	}

	/**Turns on or off the user's ability to adjust column widths
	 * @param a	Can adjust or not?
	 */
	void setAdjustable(boolean a)
	{
	adjustable = a;
	}

	/**Turns on or off the drawing of column lines
	 * @param d	Draw lines or not?
	 */
	void setDrawLines(boolean d)
	{
	drawlines = d;
	}

	/**Sets the array of colors used to draw text items.
	 * @param c	The color array (in row/column order), or null to
	 *		use the default
	 */
	void setColors(Color c[][])
	{
	colors = c;
	repaint();
	}

	public void enable()
	{
	enabled = true;
	sb.enable();
	repaint();
	}

	public void disable()
	{
	enabled = false;
	sb.disable();
	repaint();
	}

	// reshape
	// Called when this component gets resized
	public void reshape(int nx, int ny, int nw, int nh)
	{
	if (nw != width+sbwidth || nh != height) {
		in = insets();
		sbwidth = sb.minimumSize().width;
		width = nw-sbwidth - (in.left + in.right);
		height = nh - (in.top + in.bottom);
		sb.reshape(width+in.left, in.top, sbwidth, height);
		respace();

		// Force creation of a new backing image and re-painting
		bim = null;
		repaint();
		compscroll();
		}
	super.reshape(nx, ny, nw, nh);
	}

	// respace
	// Compute pixel column widths from proportional widths
	void respace()
	{
	cpos[0] = 0;
	for(int i=0; i<title.length; i++)
		cpos[i+1] = cpos[i] + (int)(width*cwidth[i]);
	}

	// paint
	// Blit the backing image to the front
	public void paint(Graphics g)
	{
	super.paint(g);
	if (bim == null) {
		// This is the first rendering
		bim = createImage(width, height);
		bg = bim.getGraphics();
		bg.setFont(new Font("timesRoman", Font.PLAIN, 12));
		fnm = bg.getFontMetrics();
		th = fnm.getHeight() + 4;
		render();
		compscroll();
		}
	g.drawImage(bim, in.left, in.top, this);
	}

	// update
	// Called sometime after repaint()
	public void update(Graphics g)
	{
	if (fnm != null) {
		render();
		paint(g);
		}
	}

	// render
	// Re-draw the list into the backing image
	void render()
	{
	int fh = fnm.getHeight(),	// useful font metrics
	    fd = fnm.getDescent(),
	    fa = fnm.getAscent();
	int bot = Math.min(top+rows()-1, list[0].size()-1);

	// Clear title section and list
	bg.setColor(Color.lightGray);
	bg.fillRect(0, 0, width, th);
	bg.setColor(Color.white);
	bg.fillRect(0, th, width, height-th);

	if (enabled) {
		// Mark the selected row
		if (sel >= top && sel <= bot) {
			bg.setColor(Color.lightGray);
			bg.fillRect(0, th+(sel-top)*rowh, width, rowh);
			}
		}

	// Draw each column
	for(int i=0; i<title.length; i++) {
		int x = cpos[i], w = cpos[i+1]-x-1;

		// Column title
		bg.setColor(Color.white);
		bg.drawLine(x, 0, x+w, 0);
		bg.drawLine(x, 1, x+w-1, 1);
		bg.drawLine(x, 0, x, th-1);
		bg.drawLine(x+1, 0, x+1, th-2);
		bg.setColor(Color.black);
		bg.drawLine(x, th-1, x+w, th-1);
		bg.drawLine(x, th-2, x+w-1, th-2);
		bg.drawLine(x+w, th-1, x+w, 0);
		bg.drawLine(x+w-1, th-1, x+w-1, 1);
		int tw = fnm.stringWidth(title[i]);
		if (tw < w-6)
			bg.drawString(title[i], x+(w-tw)/2, th-fd-2);

		// Column items
		if (drawlines) {
			bg.setColor(Color.lightGray);
			bg.drawLine(x+w-1, th, x+w-1, height);
			bg.setColor(Color.black);
			bg.drawLine(x+w, th, x+w, height);
			}
		for(int j=top; j<=bot; j++) {
			Object o = list[i].elementAt(j);
			if (o instanceof String) {
				// Render string in column
				String s = (String)o;
				while(fnm.stringWidth(s) > w-3)
					s = s.substring(0, s.length()-1);
				if (!enabled)
					bg.setColor(Color.lightGray);
				else if (colors != null)
					bg.setColor(colors[j][i]);
				bg.drawString(s, x+1, th+(j+1-top)*rowh-fd);
				}
			else if (o instanceof Image) {
				// Render image in column
				Image im = (Image)o;
				bg.drawImage(im, x+1, th+(j-top)*rowh, this);
				}
			}
		}
	}

	// mouseDown
	// Select a list item or a column to drag
	public boolean mouseDown(Event e, int x, int y)
	{
	if (!enabled) {
		return true;
		}
	x -= in.left;
	y -= in.top;
	coldrag = -1;
	if (y < th) {
		// Click in title bar
		for(int i=1; i<title.length; i++)
			if (adjustable && Math.abs(cpos[i] - x) < 3) {
				// clicked on a column separator
				coldrag = i;
				}
		}
	else {
		// Item chosen from list
		int row = (y-th)/rowh + top;
		if (row < list[0].size()) {
			// Double-click?
			boolean dclick = false;
			if (e.when-last < 1000 && sel == row)
				dclick = true;
			else
				last = e.when;

			sel = row;
			repaint();
			last_event = e;
			if (callback != null) {
				// Callback the right function
				if (dclick) callback.doubleClick(this, row);
				else	    callback.singleClick(this, row);
				}
			else {
				// Send an event
				getParent().postEvent(
					new Event(this,
						  Event.ACTION_EVENT,
						  dclick?"Double":"Single"));
				}
			}
		}
	return true;
	}

	// mouseDrag
	// If a column is selected, change it's width
	public boolean mouseDrag(Event e, int x, int y)
	{
	if (!enabled) {
		return true;
		}
	x -= in.left;
	y -= in.top;
	if (coldrag != -1) {
		if (x > cpos[coldrag-1]+3 && x < cpos[coldrag+1]-3) {
			cpos[coldrag] = x;
			cwidth[coldrag-1] = (cpos[coldrag]-cpos[coldrag-1]) /
					    (float)width;
			cwidth[coldrag] = (cpos[coldrag+1]-cpos[coldrag]) /
					    (float)width;
			repaint();
			}
		}
	return true;
	}

	public void moved(CbScrollbar s, int v)
	{
	moving(s, v);
	}

	public void moving(CbScrollbar s, int v)
	{
	top = sb.getValue();
	compscroll();
	repaint();
	}

	// compscroll
	// Re-compute the size of the scrollbar
	private void compscroll()
	{
	if (fnm == null)
		return;		// not visible
	int r = rows();
	int c = list[0].size() - r;
	sb.setValues(top, r==0?1:r, list[0].size());
	}

	// rows
	// Returns the number of rows visible in the list
	private int rows()
	{
	return Math.min(height/rowh - 1, list[0].size());
	}

	public Dimension minimumSize()
	{
	return new Dimension(400, 100);
	}

	public Dimension preferredSize()
	{
	return minimumSize();
	}
}

// MultiColumnCallback
// Objects implementing this interface can be passed to the MultiColumn
// class, to have their singleClick() and doubleClick() functions called in
// response to single or double click in the list.
interface MultiColumnCallback
{
	// singleClick
	// Called on a single click on a list item
	void singleClick(MultiColumn list, int num);

	// doubleClick
	// Called upon double-clicking on a list item
	void doubleClick(MultiColumn list, int num);
}

  0707010004b108000081a40000000000000002000000013ac038a000000107000000200000000000000000000000000000002500000003reloc/file/MultiColumnCallback.class  漱壕  -  
   (LMultiColumn;I)V Code ConstantValue 
Exceptions LineNumberTable LocalVariables MultiColumn MultiColumn.java MultiColumnCallback 
SourceFile doubleClick java/lang/Object singleClick                       0707010004b109000081a40000000000000002000000013ac038a00000068d000000200000000000000000000000000000001c00000003reloc/file/MultiLabel.class   漱壕  -  B C U X Y Z \ ^ ` a c d e f g h i j k l s t u v w x y
  /
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
  :
  ;
  <
  =
  >
  ?
  @
  A T F T I T J T P T Q T R T S n K o N p O q H r G z D { E | L } D ~ E  E  M    	 ()I ()Ljava/lang/String; ()V ()Z (I)Ljava/lang/Object; (I)V (IIII)V *(Ljava/awt/Component;)Ljava/awt/Component; (Ljava/awt/LayoutManager;)V &(Ljava/lang/Object;)Ljava/lang/String; (Ljava/lang/Object;)V ,(Ljava/lang/String;)Ljava/lang/StringBuffer; (Ljava/lang/String;)V (Ljava/lang/String;I)V (Ljava/lang/String;II)V '(Ljava/lang/String;Ljava/lang/String;)V <init> BorderPanel Code ConstantValue DFSAdminExport DeleteWindow EditorWindow 
Exceptions FileManager FileManager.java FileNode LineNumberTable 
LinkWindow LinuxExport LocalVariables MkdirWindow 
MultiLabel OverwriteWindow PermissionsPanel PropertiesWindow 
RemoteFile RenameWindow 
SambaShare SearchWindow SharingWindow 
SourceFile add 
addElement append 	elementAt hasMoreTokens java/awt/Container java/awt/GridLayout java/awt/Label java/lang/String java/lang/StringBuffer java/util/StringTokenizer java/util/Vector length 	nextToken 	setLayout size toString trim valueOf           T Q  V   $     *+ !    _   
      T R  V       *  Y : Y+ - ":: J ):   Y .  % % ,: (  '  $: '* Y +  *6 * Y &    #W +弑    _   B         # * O ` g j r      m    ]   0707010004b10a000081a40000000000000002000000013ac038a0000019e3000000200000000000000000000000000000001d00000003reloc/file/MyFlowLayout.java  /*
 * @(#)MyFlowLayout.java	1.18 95/12/14 Arthur van Hoff
 *
 * Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * and its documentation for NON-COMMERCIAL purposes and without
 * fee is hereby granted provided that this copyright notice
 * appears in all copies. Please refer to the file "copyright.html"
 * for further important copyright and licensing information.
 *
 * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
 * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
 * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
 * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
 * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
 * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
 */
package java.awt;

/**
 * Flow layout is used to layout buttons in a panel. It will arrange
 * buttons left to right until no more buttons fit on the same line.
 * Each line is centered.
 *
 * @version 	1.18, 14 Dec 1995
 * @author 	Arthur van Hoff
 * @author 	Sami Shaio
 */
public class MyFlowLayout implements LayoutManager {

    /**
     * The left alignment variable. 
     */
    public static final int LEFT 	= 0;

    /**
     * The right alignment variable. 
     */
    public static final int CENTER 	= 1;

    /**
     * The right alignment variable.
     */
    public static final int RIGHT 	= 2;

    int align;
    int hgap;
    int vgap;

    /**
     * Constructs a new Flow Layout with a centered alignment.
     */
    public MyFlowLayout() {
	this(CENTER, 5, 5);
    }

    /**
     * Constructs a new Flow Layout with the specified alignment.
     * @param align the alignment value
     */
    public MyFlowLayout(int align) {
	this(align, 5, 5);
    }

    /**
     * Constructs a new Flow Layout with the specified alignment and gap
     * values.
     * @param align the alignment value
     * @param hgap the horizontal gap variable
     * @param vgap the vertical gap variable
     */
    public MyFlowLayout(int align, int hgap, int vgap) {
	this.align = align;
	this.hgap = hgap;
	this.vgap = vgap;
    }

    /**
     * Adds the specified component to the layout. Not used by this class.
     * @param name the name of the component
     * @param comp the the component to be added
     */
    public void addLayoutComponent(String name, Component comp) {
    }

    /**
     * Removes the specified component from the layout. Not used by
     * this class.  
     * @param comp the component to remove
     */
    public void removeLayoutComponent(Component comp) {
    }

    /**
     * Returns the preferred dimensions for this layout given the components
     * in the specified target container.
     * @param target the component which needs to be laid out
     * @see Container
     * @see #minimumLayoutSize
     */
    public Dimension preferredLayoutSize(Container target) {
	Dimension dim = new Dimension(0, 0);
	int nmembers = target.countComponents();

	for (int i = 0 ; i < nmembers ; i++) {
	    Component m = target.getComponent(i);
	    if (m.visible) {
		Dimension d = m.preferredSize();
		dim.height = Math.max(dim.height, d.height);
		if (i > 0) {
		    dim.width += hgap;
		}
		dim.width += d.width;
	    }
	}
	Insets insets = target.insets();
	dim.width += insets.left + insets.right + hgap*2;
	dim.height += insets.top + insets.bottom + vgap*2;
	return dim;
    }

    /**
     * Returns the minimum dimensions needed to layout the components
     * contained in the specified target container.
     * @param target the component which needs to be laid out 
     * @see #preferredLayoutSize
     */
    public Dimension minimumLayoutSize(Container target) {
	Dimension dim = new Dimension(0, 0);
	int nmembers = target.countComponents();

	for (int i = 0 ; i < nmembers ; i++) {
	    Component m = target.getComponent(i);
	    if (m.visible) {
		Dimension d = m.minimumSize();
		dim.height = Math.max(dim.height, d.height);
		if (i > 0) {
		    dim.width += hgap;
		}
		dim.width += d.width;
	    }
	}
	Insets insets = target.insets();
	dim.width += insets.left + insets.right + hgap*2;
	dim.height += insets.top + insets.bottom + vgap*2;
	return dim;
    }

    /** 
     * Centers the elements in the specified row, if there is any slack.
     * @param target the component which needs to be moved
     * @param x the x coordinate
     * @param y the y coordinate
     * @param width the width dimensions
     * @param height the height dimensions
     * @param rowStart the beginning of the row
     * @param rowEnd the the ending of the row
     */
    private void moveComponents(Container target, int x, int y, int width, int height, int rowStart, int rowEnd) {
	switch (align) {
	case LEFT:
	    break;
	case CENTER:
	    x += width / 2;
	    break;
	case RIGHT:
	    x += width;
	    break;
	}
	for (int i = rowStart ; i < rowEnd ; i++) {
	    Component m = target.getComponent(i);
	    if (m.visible) {
		m.move(x, y + (height - m.height) / 2);
		x += hgap + m.width;
	    }
	}
    }

    /**
     * Lays out the container. This method will actually reshape the
     * components in the target in order to satisfy the constraints of
     * the BorderLayout object. 
     * @param target the specified component being laid out.
     * @see Container
     */
    public void layoutContainer(Container target) {
	Insets insets = target.insets();
	int maxwidth = target.width - (insets.left + insets.right + hgap*2);
	int nmembers = target.countComponents();
	int x = 0, y = insets.top + vgap;
	int rowh = 0, start = 0;

	for (int i = 0 ; i < nmembers ; i++) {
	    Component m = target.getComponent(i);
	    if (m.visible) {
		Dimension d = m.preferredSize();
		m.resize(d.width, d.height);
	
		if ((x == 0) || ((x + d.width) <= maxwidth)) {
		    if (x > 0) {
			x += hgap;
		    }
		    x += d.width;
		    rowh = Math.max(rowh, d.height);
		} else {
		    moveComponents(target, insets.left + hgap, y, maxwidth - x, rowh, start, i);
		    x = d.width;
		    y += vgap + rowh;
		    rowh = d.height;
		    start = i;
		}
	    }
	}
	moveComponents(target, insets.left + hgap, y, maxwidth - x, rowh, start, nmembers);
    }
    
    /**
     * Returns the String representation of this MyFlowLayout's values.
     */
    public String toString() {
	String str = "";
	switch (align) {
	  case LEFT:    str = ",align=left"; break;
	  case CENTER:  str = ",align=center"; break;
	  case RIGHT:   str = ",align=right"; break;
	}
	return getClass().getName() + "[hgap=" + hgap + ",vgap=" + vgap + str + "]";
    }
}
 0707010004b10b000081a40000000000000002000000013ac038a100000c27000000200000000000000000000000000000002100000003reloc/file/OverwriteWindow.class  漱壕  -                                               
  U
 $ U
 ) U
 & V
  W
  X
 ( X
 . X
 + Y
  Z
 % [
 % \	  ]
 . ^	  _	  `
 ' a
 - b	  c
  d
 * e
  f
 - g	  h	  i	  j
 , k
  l	  m
 % n
 ' o
 , p	  q
  r
  s
 . t	  u
 - v  y  z          ~            y        x    w        y  }        y        x     ()I ()Ljava/lang/String; ()V (I)V (LCbButton;)V ((LFileManager;LRemoteFile;LRemoteFile;)V 9(LRemoteFile;LRemoteFile;Ljava/lang/String;LRemoteFile;)V *(Ljava/awt/Component;)Ljava/awt/Component; 8(Ljava/awt/Image;Ljava/lang/String;ILCbButtonCallback;)V (Ljava/awt/LayoutManager;)V &(Ljava/lang/Object;)Ljava/lang/String; (Ljava/lang/Object;)Z  (Ljava/lang/String;)LRemoteFile; $(Ljava/lang/String;)Ljava/awt/Image; &(Ljava/lang/String;)Ljava/lang/String; ,(Ljava/lang/String;)Ljava/lang/StringBuffer; (Ljava/lang/String;)V (Ljava/lang/String;I)V (Ljava/lang/String;II)V <(Ljava/lang/String;Ljava/awt/Component;)Ljava/awt/Component; 8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; / <init> CbButton CbButtonCallback Code ConstantValue DFSAdminExport DeleteWindow East EditorWindow ErrorWindow 
Exceptions FileManager FileManager.java FileNode 
FixedFrame I 
LCbButton; LFileManager; LRemoteFile; LineNumberTable 
LinkWindow LinuxExport Ljava/awt/TextField; Ljava/lang/String; LocalVariables MkdirWindow 
MultiLabel North OverwriteWindow PermissionsPanel PropertiesWindow 
RemoteFile RenameWindow 
SambaShare SearchWindow SharingWindow 
SourceFile South West add already append cancel 
cancel.gif click 	directory dispose equals filemgr find getText 	get_image java/awt/BorderLayout java/awt/Container java/awt/FlowLayout java/awt/Frame java/awt/Label java/awt/Panel java/awt/TextComponent java/awt/TextField java/awt/Window java/lang/String java/lang/StringBuffer length name newname ok over_msg over_new over_ok 
over_title pack paste_eover paste_eself 
paste_file path save.gif 	setLayout setTitle show src text toString type valueOf                                                |    `     * /*+ A*- O*, ;* $Y 0 L** A P M* Y* A* ; K Q 8 :W* (Y* A	 P 5 :W** +Y, F 7Z G :W )Y 1: &Y 2 L* Y* A D* A
 P* 3Z H 9W* Y* A D* A P* 3Z = 9W* :W* I* N       ^     	 
 + . H L c |                {    ?     +* = * ?+* H * G C E * ; >M,* G C BN-* O  * A P 4- &- S - S  * A- K Q 4被 .Y, K @   .Y, K T 6 < R T 6* G C < R:* A* O* ; >- J* ?       ^       ! "# *$ 6% >& M' N) Y* a+ d, q+ t- u/ 0 / 0 / 1 2        0707010004b10c000081a40000000000000002000000013ac038a0000005d1000000200000000000000000000000000000002200000003reloc/file/PermissionsPanel.class 漱壕  - o ` a b c C D E G I L M P Q R S T U V W X Y d e f g
  (
  )
  *
  +	  ,	  -
  .	  /	  0
  1
  2
  3	  4	  5 @ 7 @ 9 @ > [ ; \ J ] N _ 8 h J i N j < k ? l = m J n N ()I ()V ()Z (II)V (LRemoteFile;ILFileManager;)V *(Ljava/awt/Component;)Ljava/awt/Component; (Ljava/awt/LayoutManager;)V &(Ljava/lang/String;)Ljava/lang/String; (Ljava/lang/String;)V (Z)V <init> Code ConstantValue DFSAdminExport DeleteWindow EditorWindow 
Exceptions FileManager FileManager.java FileNode I LineNumberTable 
LinkWindow LinuxExport Ljava/awt/Checkbox; LocalVariables MkdirWindow 
MultiLabel OverwriteWindow PermissionsPanel PropertiesWindow 
RemoteFile RenameWindow 
SambaShare SearchWindow SharingWindow 
SourceFile add base exec getPerms getState 	info_exec 	info_list 	info_read 
info_write java/awt/Checkbox java/awt/Container java/awt/GridLayout java/awt/Panel perms read 	setLayout setState text type write          i N     n N     ] N     \ J      @ :  A        * + !6* * Y  #** Y- % Z " W* "x~   $** Y- % Z ' W* 'x~   $** Y-+ &   % Z  W* ~   $    K   6     
   3 H _ t z      ^ 6  A   o     G<* "   * x <* '   * x <*    
*  <    K         0 E  Z    H   0707010004b10d000081a40000000000000002000000013ac038a000001a6f000000200000000000000000000000000000002200000003reloc/file/PropertiesWindow.class 漱壕  -       $%,-/3>?@ABCDEFGHIJKLMNOPQkl      !"RSTUVWXYZ[\]^_`
 - 
 < 
 > 
 D 
 @ 
 B 
 J 
 5 
 % 
 * 
 . 
 = 
 C 
 I 
 F 
 ? 
 ? 
 > 
 6 
 6 
 I 
 I 	 6 
 A 	 6 	 6 	 + 
 5 
 > 
 = 
 E 
 + 
 + 	 6 	 7 	 6 
 H 	 6 	 7 	 7 	 7 	 6 
 G 	 7 	 7 	 6 
 6 	 6 
 2 
 2 
 ? 
 = 
 A 	 6 	 6 
 6 
 G 
 + 	 + 	 7 	 6 
 + 
 + 
 I 	 7 
 6 
 + 	 6 	 7 	 6 
 H 
 H                 ' ' ( ) * + + .	1 24
56 7 8 9 : ; <<=a bbc&def ghij m	n o p q r stu v w xyz{ { | }~       &group= &linkto= &perms= &rec= &user= ()I ()Ljava/lang/String; ()V ()Z (I)Ljava/lang/String; (I)Ljava/lang/StringBuffer; (I)V (II)V (J)V (LCbButton;)V (LRemoteFile;)Z (LRemoteFile;ILFileManager;)V (LRemoteFile;IZ)V (LRemoteFile;LFileManager;)V *(Ljava/awt/Component;)Ljava/awt/Component; 8(Ljava/awt/Image;Ljava/lang/String;ILCbButtonCallback;)V (Ljava/awt/LayoutManager;)V 6(Ljava/awt/Panel;Ljava/awt/Component;)Ljava/awt/Panel; 3(Ljava/awt/Panel;Ljava/awt/Panel;Ljava/awt/Panel;)V &(Ljava/lang/Object;)Ljava/lang/String; $(Ljava/lang/String;)Ljava/awt/Image; &(Ljava/lang/String;)Ljava/lang/String; ,(Ljava/lang/String;)Ljava/lang/StringBuffer; (Ljava/lang/String;)V '(Ljava/lang/String;)[Ljava/lang/String; (Ljava/lang/String;I)V <(Ljava/lang/String;Ljava/awt/Component;)Ljava/awt/Component; I(Ljava/lang/String;Ljava/awt/Component;Ljava/awt/Panel;Ljava/awt/Panel;)V J(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; (Z)V <init> CbButton CbButtonCallback Center Code ConstantValue DFSAdminExport DeleteWindow EditorWindow ErrorWindow 
Exceptions FileManager FileManager.java FileNode 
FixedFrame I J 
LCbButton; LFileManager; LMultiColumn; LPermissionsPanel; LRemoteFile; LineNumberTable 
LinedPanel 
LinkWindow LinuxExport Ljava/awt/Checkbox; Ljava/awt/Choice; Ljava/awt/TextField; Ljava/lang/String; LocalVariables MkdirWindow MultiColumn 
MultiLabel North OverwriteWindow PermissionsPanel PropertiesWindow 
RemoteFile RenameWindow 
SambaShare SearchWindow SharingWindow 
SourceFile South West [LRemoteFile; add addItem add_item 	add_panel append cancel 
cancel.gif cancel_b chmod.cgi?path= click dispose file 	file_type filemgr files getPerms getSelectedIndex getState getText 	get_image get_text group group_p 
info_apply info_efailed 	info_file 
info_group 	info_link info_mod 
info_other info_own 	info_path 
info_perms info_setgid info_setgid2 info_setgid3 info_setuid info_setuid2 	info_size info_sticky info_sticky2 	info_type 	info_user java/awt/BorderLayout java/awt/Checkbox java/awt/Choice java/awt/Container java/awt/FlowLayout java/awt/Frame java/awt/GridLayout java/awt/Label java/awt/Panel java/awt/TextComponent java/awt/TextField java/awt/Window java/lang/String java/lang/StringBuffer java/util/Date length linkto list modified other_p pack path perms rec_mode recurse_files save save.gif save_b select selected 	setLayout setState setTitle setgid setuid setup_leftright show 
show_files showing_files size sticky text toString type update_file urlize user user_p valueOf   6 -  &   2    4
    m	    .	    b        <    t    s        =    e    z    i               d* K*+ c*, d*+ v * <Y L } DY NN- @Y O }-* %Y* d$ j* d# * SZ z ZW-* %Y* d j* d * SZ a ZW*	- [W DY N: <Y L }* [W .Y* d 埛 U: DY N: DY N:* ** d 埢 CY* c v W ]** d! 埢 CY* d IY X* c 嫸 _ 姸 埛 W ]** d 埢 CY* c 喐 懛 W ]** d 埢 CY JY* c s Q 挿 W ]* c  )** d * FY* c q YZ p ]* ^: .Y* d 埛 U: DY N:	 DY N:
*	
 ** d" * 5Y* c@* d RZ 	
 ]** d * 5Y* c* d RZ n	
 ]** d * 5Y* c* d RZ t	
 ]* c 嫐 C** d * =Y* d  埛 VZ 	
 ]* * c w ~   ~* ^: .Y* d 埛 U: DY N: DY N:* ** d" * FY* c 
 YZ  ]* c 嫏 C** d * =Y* d 埛 VZ  ]* * c w ~   ~** d * FY* c m
 YZ l ]* c 嫐 ,** d * =Y* d 埛 VZ  ] )** d * =Y* d 埛 VZ  ]* * c w ~   ~* ^:* c 嫐 p .Y* d 埛 U: <Y L }* >Y M x6 %* x* d IY X _ 姸 埗 \* x [W* ^:* u* 儽      `    	   ! ) 5 D M O Z i r t              $'1FISor}	
	&)3LOYhqx| !"#"$%& '$%'(A*K+d*g,q-{.-,0102357 89:;<:E<Q=[@_Ac  *      M     %+, [W DY NN- <Y L }+- [W-         F G H I #J 0         +* z=* 伹 * c w ~= * 伓 h 	  =*  h 	  =* 惗 f=* n f=* t f=* 嚽 * c w ~= * 嚩 h 	  =>* c 嫐 * x g>* d IY X* c v 嵍 ` ` _ `* 幎 i ` `* l i ` ` _* p   IY X* p i ` 姸 ` 姸 k:2 o  ** d* c v2 壏 T* p * c* p i q I ** c 導 8 ** c ** c y  ** c ** c y* d e |6* d* d 叾 刉* d e {* b* b       1  O Q 
R S R "U 6V JW TX ^Y hZ o[ }Z ] ^ _ ` a b c d edaf)h2i=hCfDmKnYm\o`pjomqrs|tqvxy}~OM  ~      c     3+* 幎 i +* l i m +~+ w ~ w+ w             , - 2  j           X+ r 6 B+ r2:   * 嫐  * * y * 寗+ r尽罕      2       # + / 7 ? B J W  u           V+ <Y L } DY N: <Y L }
, [W- [W, BY P }- BY P }+ [W      & 	       ) 2 ? L U  )      `     4- CY+ W ZW DY N: <Y L }
, [W ZW            " + 3 #    0707010004b10e000081a40000000000000002000000013ac038a000000e40000000200000000000000000000000000000001c00000003reloc/file/RemoteFile.class   漱壕  -                           u                                    
 ) S
 " T
  U
 + U
 - V
 + W
 * X	 " Y
 * Z
 , [
  \	 " ]
 * ^
 * _	 " `
 " a	 " b	 " c	 " d
 - e	  f	 " g
 ' h
 ( i	 " j	 " k	 " l	  m
 * n
  o	 " p
 + q	 " r
  s	 " t        x  }                    {  v    z        w                  |      w       	 ()I ()Ljava/lang/String; ()V ()Z ()[LRemoteFile; (I)I (I)Ljava/lang/String; .(LFileManager;Ljava/lang/String;LRemoteFile;)V (LRemoteFile;)V &(Ljava/lang/Object;)Ljava/lang/Object; (Ljava/lang/Object;)Z (Ljava/lang/String;)I (Ljava/lang/String;)J  (Ljava/lang/String;)LRemoteFile; &(Ljava/lang/String;)Ljava/lang/String; ,(Ljava/lang/String;)Ljava/lang/StringBuffer; (Ljava/lang/String;)V '(Ljava/lang/String;)[Ljava/lang/String; '(Ljava/lang/String;Ljava/lang/String;)V J(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; / <clinit> <init> BINARY Code ConstantValue DEVICE DFSAdminExport DIR DeleteWindow EditorWindow ErrorWindow 
Exceptions FileManager FileManager.java FileNode I IMAGE J LFileManager; LRemoteFile; LineNumberTable 
LinkWindow LinuxExport Ljava/lang/String; Ljava/util/Hashtable; LocalVariables MkdirWindow 
MultiLabel OverwriteWindow PIPE PermissionsPanel PropertiesWindow 
RemoteFile RenameWindow SYMLINK 
SambaShare SearchWindow SharingWindow 
SourceFile TEXT UNKNOWN [LRemoteFile; [Ljava/lang/String; add append 
binary.gif 	compareTo delete 
device.gif dir.gif 	directory equals find get get_text group 	image.gif java/lang/Integer java/lang/Long java/lang/Object java/lang/String java/lang/StringBuffer java/util/Hashtable java/util/StringTokenizer lastIndexOf length linkto list list.cgi?dir= 	list_edir modified name 	nextToken ntab parent parseInt 	parseLong path perms pipe.gif shared size stab 	substring symlink.gif text text.gif tmap toString type unknown.gif urlize user   " )                                                                                                                                                             }          * .*+ C -Y,	 2:* A F* A D N* A P* A 9* A D H* A D G* A E Qi ?* N * A <*- 5* F
 6 
*
 @** F* F/ :` J @       >     	   * 3 < H T d u z      x          * .              z          * > x* C +Y 1* F O 3 M 8L+2 ; ! * C* F+2 K 0* > 3*+d " >= * >d "Y* C+2* /S+尽* >       6       %	 . D I	 L W \ s |         Z     ** =M, "> ,2 @+ 6 ,2皠,尽            	    (     ~          _* >` "M>6 3* >2 @+ @ 4  ,+S,`* >2S* >尽 ,* >+S*, >       .   % & ' ( +) 0* 3, @' M. Y/ ^#    ~     l     <* >d "M>6 * >2+ ,* >2S* >尽*, >          4 5 6 7 *5 68 ;2    y     Q     -* N %* C I* F 7 * C B* F 7           = > ? )=   x     w      3 *YSYSYSYSYSYSYSYS L       2          " & ( , . 2      0707010004b10f000081a40000000000000002000000013ac038a000000fc8000000200000000000000000000000000000001e00000003reloc/file/RenameWindow.class 漱壕  -%                                        
  k
 ' k
 - k
 ) l
 + m
  n
  o
 , o
 2 o
 / p
  q
 " r
 ( s
 ( t
 2 u	 # v	  w
 " x	 " y	  z
 * {	 # |	 # }
 " ~
 3 
 . 
  
  
 1 
 1 	 " 	 # 	  	 # 
 0 	 " 
  
 4 	 # 
 . 
 . 
 ( 
 * 
 0 
  	  
 1 
  
  	  
 2 
 1 
  
 1                                                     	 
                    ! " # $  &new= ()I ()Ljava/lang/String; ()V (I)I (I)V (II)Ljava/lang/String; (II)V (LCbButton;)V (LFileManager;LRemoteFile;)V (LFileNode;)V (LRemoteFile;)V (LRemoteFile;)Z *(Ljava/awt/Component;)Ljava/awt/Component; 8(Ljava/awt/Image;Ljava/lang/String;ILCbButtonCallback;)V (Ljava/awt/LayoutManager;)V &(Ljava/lang/Object;)Ljava/lang/Object; &(Ljava/lang/Object;)Ljava/lang/String; (Ljava/lang/Object;)Z  (Ljava/lang/String;)LRemoteFile; $(Ljava/lang/String;)Ljava/awt/Image; &(Ljava/lang/String;)Ljava/lang/String; ,(Ljava/lang/String;)Ljava/lang/StringBuffer; (Ljava/lang/String;)V '(Ljava/lang/String;)[Ljava/lang/String; (Ljava/lang/String;I)V <(Ljava/lang/String;Ljava/awt/Component;)Ljava/awt/Component; 8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; (Z)V / <init> CbButton CbButtonCallback Center Code ConstantValue DFSAdminExport DeleteWindow EditorWindow ErrorWindow 
Exceptions FileManager FileManager.java FileNode 
FixedFrame 	Hierarchy HierarchyNode 
LCbButton; LFileManager; LHierarchy; LRemoteFile; LineNumberTable 
LinkWindow LinuxExport Ljava/awt/TextField; Ljava/lang/String; Ljava/util/Hashtable; Ljava/util/Vector; LocalVariables MkdirWindow 
MultiLabel OverwriteWindow PermissionsPanel PropertiesWindow 
RemoteFile RenameWindow 
SambaShare SearchWindow SharingWindow 
SourceFile South West add append cancel 
cancel.gif cancel_b ch click delete 	directory dirs dispose file filemgr find get getText 	get_image get_text java/awt/BorderLayout java/awt/Container java/awt/FlowLayout java/awt/Frame java/awt/GridLayout java/awt/Label java/awt/Panel java/awt/TextComponent java/awt/TextField java/awt/Window java/lang/String java/lang/StringBuffer java/util/Hashtable java/util/Vector lastIndexOf length name newname nodemap oldname pack path redraw removeElement rename.cgi?old= rename_b rename_eexists rename_efailed 
rename_new 	rename_ok 
rename_old rename_title save.gif select setEditable 	setLayout setTitle show 
show_files showing_files 	substring text toString trim urlize valueOf   #                  
                                a* 5*+ K*, J* 'Y 6 ^** K* J X e _ -Y 7N -Y 7:- +Y 9 ^- ,Y* K d < AW- ,Y* K d < AW +Y 9 ^* /Y* J S >Z V AW* V ]* /Y* J S >Z T AW* T* J S R* J S R \*- BW* BW -Y 7: )Y 8 ^* Y* K O* K d* :Z [ AW* Y* K O* K d* :Z D AW* BW* W* `       r       - > K ` u       )9BDOX\`         	  i+* [W* T N hM, R * J G, LN-  * K	, e ;* J X/ Q6 2Y* J X c j = C, C g:* K 2Y =* J X i C C i C g P:2 R  * K
2 e ;* J, S* J X* J G* J F* J G* J @* K U* J G M :* K U* J M : 4 /* J S f E ZW ?* I* K H Y* K* K b aW* I+* D * I        "      ' + ; < J o s           (3:>HW[\dh      0707010004b110000081a40000000000000002000000013ac038a000000947000000200000000000000000000000000000001d00000003reloc/file/ResizePanel.class  漱壕  - v O Z [ \ ] ^ _ `
   
  !
  "	  #	  $	  %
  &	  '
  (
  )	  *
  +
  ,	  -	  .
  /
  0	  1
  2
  3
  4	  5	  6 E 8 E 9 S < U L V J W R X : Y J a 8 b @ c M d ? e 7 j J l H n 8 o : p M q ; r C s 7 t L u J ()Ljava/awt/Dimension; ()V (II)V (IIII)V (Ljava/awt/Color;)V *(Ljava/awt/Component;)Ljava/awt/Component; (Ljava/awt/Component;)V ,(Ljava/awt/Component;Ljava/awt/Component;D)V *(Ljava/awt/Container;)Ljava/awt/Dimension; (Ljava/awt/Container;)V (Ljava/awt/Event;II)Z (Ljava/awt/Graphics;)V (Ljava/awt/LayoutManager;)V )(Ljava/lang/String;Ljava/awt/Component;)V <init> Code ConstantValue D 
Exceptions I LineNumberTable Ljava/awt/Color; Ljava/awt/Component; LocalVariables ResizePanel ResizePanel.java 
SourceFile Z add addLayoutComponent black border dragging drawLine height java/awt/Color java/awt/Component java/awt/Container java/awt/Dimension java/awt/Graphics java/awt/LayoutManager java/awt/Panel layout layoutContainer left minimumLayoutSize minimumSize 	mouseDown 	mouseDrag mouseUp paint pos preferredLayoutSize ratio removeLayoutComponent repaint reshape right setColor 	setLayout size white width !        c M     p M     j J     l H     W R     V J   
  E >  F   r     6* 	* *d *+ *, *) ** **  W**  W    K   * 
     	 	          #  ,  5   i B  F        * M*, * k幍 +  +* d* ` +* d* d, d +  +* `, d* d, d +* `, d* `     K   & 	          -  D  K   g ! ~   f A  F   H     $* :* d * ` * *     K       &  (  *  ,  g A  F        b*  Y* :*  **   ' * d * * d  * **  噊 ** * *     K   & 	   1  2  3   4 ? 5 D 6 T 7 Y 8 ] :  h A  F   .     * 6*     K       ?  @  A  T D  F             K       D  b @  F        S+ M*, * k幍 * * d,  *  * * `, * dd,  *      K       J  K  L ' M . N K O R H  d ?  F   _     7*  M*  N Y, - `, -  
,  -  
    K       T  U  V  W 3 V  k ?  F        *+     K       \  m =  F             K       _  Q    P 0707010004b111000081a40000000000000002000000013ac038a0000007f4000000200000000000000000000000000000001c00000003reloc/file/ResizePanel.java   // ResizePanel
// A panel with left and right parts, whose midpoint is adjustable
import java.awt.*;
import java.util.Vector;

public class ResizePanel extends Panel implements LayoutManager
{
	Component left, right;
	int pos = -1;
	double ratio;
	boolean dragging;
	int border = 100;

	public ResizePanel(Component l, Component r, double rt)
	{
	left = l;
	right = r;
	ratio = rt;
	setLayout(this);
	add(left);
	add(right);
	}

	public void paint(Graphics g)
	{
	Dimension s = size();
	pos = (int)(s.width * ratio);
	g.setColor(Color.white);
	g.drawLine(pos-2, 0, pos+1, 0);
	g.drawLine(pos-2, 0, pos-2, s.height-2);
	g.setColor(Color.black);
	g.drawLine(pos+2, s.height-1, pos-1, s.height-1);
	g.drawLine(pos+2, s.height-1, pos+2, 1);
	}

	public boolean mouseDown(Event evt, int x, int y)
	{
	Dimension s = size();
	int sh = s.height - 50;
	if (x >= pos-2 && x <= pos+2) {
		// Started dragging
		dragging = true;
		}
	return dragging;
	}

	public boolean mouseDrag(Event evt, int x, int y)
	{
	if (dragging) {
		Dimension s = size();
		if (x < border) pos = border;
		else if (x > s.width-border) pos = s.width - border;
		else pos = x;
		ratio = (double)pos / (double)s.width;
		layoutContainer(this);
		repaint();
		}
	return dragging;
	}

	public boolean mouseUp(Event evt, int x, int y)
	{
	boolean o = dragging;
	dragging = false;
	return o;
	}

	public void addLayoutComponent(String name, Component comp)
	{
	}

	public void layoutContainer(Container parent)
	{
	Dimension s = parent.size();
	pos = (int)(s.width * ratio);
	left.reshape(0, 0, pos-3, s.height);
	left.layout();
	right.reshape(pos+3, 0, s.width-pos-5, s.height);
	right.layout();
	}

	public Dimension minimumLayoutSize(Container parent)
	{
	Dimension l = left.minimumSize(),
		  r = right.minimumSize();
	return new Dimension(l.width + r.width,
			     l.height > r.height ? l.height : r.height);
	}

	public Dimension preferredLayoutSize(Container parent)
	{
	return minimumLayoutSize(parent);
	}

	public void removeLayoutComponent(Component comp)
	{
	}
}

0707010004b112000081a40000000000000002000000013ac038a10000066e000000200000000000000000000000000000001c00000003reloc/file/SambaShare.class   漱壕  - x ; < = > I t M N O Q S V W Z [ \ ] ^ _ ` a b c e l m n o
  ,
  -
  .
  /
  0	  1	  2
  3	  4
  5
  6	  7
  8
 
 9	  : J @ J F J G g A g E h f i X j B k T p ? r C s X u ? v D w f &available= 	&comment= &guest= 
&writable= ()Ljava/lang/String; ()V (I)Ljava/lang/StringBuffer; (Ljava/lang/Object;)Z (Ljava/lang/String;)I &(Ljava/lang/String;)Ljava/lang/String; ,(Ljava/lang/String;)Ljava/lang/StringBuffer; (Ljava/lang/String;)V (Ljava/lang/String;C)V *(Ljava/lang/String;ZZILjava/lang/String;)V 1 <init> Code ConstantValue DFSAdminExport DeleteWindow EditorWindow 
Exceptions FileManager FileManager.java FileNode I LineNumberTable 
LinkWindow LinuxExport Ljava/lang/String; LocalVariables MkdirWindow 
MultiLabel OverwriteWindow PermissionsPanel PropertiesWindow 
RemoteFile RenameWindow 
SambaShare SearchWindow SharingWindow 
SourceFile StringSplitter Z append 	available comment equals guest java/lang/Integer java/lang/Object java/lang/String java/lang/StringBuffer 	nextToken params parseInt path path= toString urlize writable          s X     h f     w f     k T     i X      J F  K   y     E*  Y+: M*, & (*, & $ "*, & $ +*, & ' %*, & #    U   "   ? A B C $D 1E <F D?   J H  K   P      * *+ (* "* +* %* #    U      I K 	L M N O I   q ?  K        Z Y * ( * ! !* "     !* +     !* %   !* # * ! )    U      T U 'V ;W GX YT  d    R  0707010004b113000081a40000000000000002000000013ac038a000000b31000000200000000000000000000000000000001d00000003reloc/file/ScrollImage.class  漱壕  -  w u   v   | ^  d h   }  
  M
  T
  @	  D
  G
  [
  K
  Y
  X	  U	  ;	  N
  :
  A	  V	  9	  F
  W
  S	  Z
  P
  =	 	 B
  \	  <	  L
  Q
  H	 	 J
  R
  O	  I
  ?
 
 X
  >
  C	  E
  8       _        r  c  s  p  { b       c  ~   y g     y     `     x  b    ]    i   c  t    z k c q (Ljava/awt/Graphics;)V java/awt/Color imgh getValue moved (IIII)V <init> java/awt/Container (LCbScrollbar;I)V 
SourceFile 	lightGray CbImageChooser Ljava/awt/Font; 
Exceptions 3(Ljava/awt/Image;IILjava/awt/image/ImageObserver;)Z preferredSize moving LineNumberTable CbImageChooser.java black (Ljava/awt/Image;II)V 
drawString size repaint <None> CbScrollbarCallback South (III)V LCbScrollbar; 	drawImage reshape CbScrollbar Util add (Ljava/awt/Color;)V vsc minimumSize setImage compute_scrollbars java/awt/FontMetrics hsc java/awt/Component ()V (Ljava/awt/LayoutManager;)V pw ScrollImage java/awt/BorderLayout ()I stringWidth setFont getWidth ph (Ljava/lang/String;II)V 	setLayout java/awt/Dimension (II)V Ljava/awt/Image; East <(Ljava/lang/String;Ljava/awt/Component;)Ljava/awt/Component; 	setValues fnm img 	getHeight Ljava/awt/FontMetrics; setColor java/awt/Graphics update CbImageFileWindow width f (ILCbScrollbarCallback;)V Z fillRect (Ljava/awt/Image;)V ()Ljava/awt/Dimension; paint (Ljava/awt/Image;)I ConstantValue I (Ljava/lang/String;)I Code height (Ljava/awt/Font;)V java/awt/Panel LocalVariables Ljava/awt/Color; imgw    
                  _                   y      y         
   c      *     *++ 7+ & )    n   
         c q          N* 3* "* * 6* Y  ** Y* Z 1 -W** Y* Z + -W*+     n   2       	      &  '  3  ;  <  H  M          \     ,*+ %* % ** % 7 !** % & * "*     n              "  '  +    ]        *  * 1  d=*  * +  d>* " j* % * + ,* 1 , G* ! * + , * +* ! ,*  * 1 , * 1*  ,* "+ . #+ /* % I* ! &*  +* %* !dl* dl* W+* %* + 0t* 1 0t* W+   + ( #:+ * 4dl * $dl 2    n   n       &  -  4  >  H  K  `  m                                  ]          *+     n         { b     7     * 5* "*     n        	       a e     !     *     n   
        m e               n               (      Y* * 6     n         l           * '    n         f    o   0707010004b114000081a40000000000000002000000013ac038a100001ded000000200000000000000000000000000000001e00000003reloc/file/SearchWindow.class 漱壕  -=廫)>櫄?G B@	
57:?bdmnoty89=>@ACEFNOUVWXYZ[\]^_`cg
 ? 
 N 
 P 
 R 
 S 
 Y 
 U 
 [ 
 W 
 U 
 I 
 7 
 < 
 X 
 a 
 [ 
 Q 
 C 
 T 
 T 
 S 
 N 
 C 
 L 
 a 	 L 
 ` 
 C 	 L 
 V 
 ` 	 L 	 = 
 = 	 L 
 S 
 Q 
 Z 
 = 
 = 	 L 	 L 
 ` 
 ` 	 L 
 I 	 L 	 L 	 L 	 I 
 \ 
 ^ 	 I 	 L 	 L 
 C 	 L 
 C 
 N 
 V 
 C 
 T 
 V 
 C 
 \ 	 = 	 I 	 L 	 L 
 = 
 ` 	 L 
 = 	 I 
 a 
 ` 	 I 	 L 	 L 	 L 
 = 	 L	 L
 `	 L	 L666666 6(6*6,63hh-i(i.j4k/l'pHqruRvx#zI{J|0}P~%)RPRJRRS$SePH(1!(2KGPPL&fGQfP&PR"PP    B  MB  kB &group= &match= 	&size=%2B 	&size=%2D &type= &user= &xdev=1 ()I ()Ljava/lang/String; ()V ()Z ()[LRemoteFile; (I)C (I)I (I)V (II)Ljava/lang/String; (II)V (III)V (LCbButton;)V .(LFileManager;Ljava/lang/String;LRemoteFile;)V (LMultiColumn;I)V *(Ljava/awt/Component;)Ljava/awt/Component; 8(Ljava/awt/Image;Ljava/lang/String;ILCbButtonCallback;)V (Ljava/awt/LayoutManager;)V &(Ljava/lang/Object;)Ljava/lang/String; (Ljava/lang/Object;)Z (Ljava/lang/String;)I $(Ljava/lang/String;)Ljava/awt/Image; &(Ljava/lang/String;)Ljava/lang/String; ,(Ljava/lang/String;)Ljava/lang/StringBuffer; (Ljava/lang/String;)V '(Ljava/lang/String;)[Ljava/lang/String; (Ljava/lang/String;I)V "(Ljava/lang/String;LFileManager;)V .(Ljava/lang/String;Ljava/awt/CheckboxGroup;Z)V <(Ljava/lang/String;Ljava/awt/Component;)Ljava/awt/Component; )(Ljava/lang/String;Ljava/awt/Component;)V I(Ljava/lang/String;Ljava/awt/Component;Ljava/awt/Panel;Ljava/awt/Panel;)V !(Ljava/lang/String;Z)LRemoteFile; (Z)V ([F)V +([Ljava/lang/String;LMultiColumnCallback;)V ([[Ljava/lang/Object;)V / <init> ?dir= CbButton CbButtonCallback Center Code ConstantValue DFSAdminExport DeleteWindow East EditorWindow ErrorWindow 
Exceptions FileManager FileManager.java FileNode 
FixedFrame I 
LCbButton; LFileManager; LMultiColumn; LRemoteFile; LTabbedPanel; LineNumberTable 
LinkWindow LinuxExport Ljava/awt/Checkbox; Ljava/awt/Choice; Ljava/awt/TextField; Ljava/lang/String; LocalVariables MkdirWindow MultiColumn MultiColumnCallback 
MultiLabel OverwriteWindow PermissionsPanel PropertiesWindow 
RemoteFile RenameWindow 
SambaShare SearchWindow SharingWindow 
SourceFile South TabbedPanel West [LRemoteFile; [Ljava/lang/String; [[Ljava/lang/Object; add addItem addItems add_item append c cancel 
cancel.gif cancel_b charAt clear click d dir dispose doubleClick equals f filemgr files find_directory gany getSelectedIndex getState getText 	get_image get_text group gsel java/awt/BorderLayout java/awt/Checkbox java/awt/CheckboxGroup java/awt/Choice java/awt/Container java/awt/FlowLayout java/awt/Frame java/awt/GridLayout java/awt/Label java/awt/Panel java/awt/TextComponent java/awt/TextField java/awt/Window java/lang/Exception java/lang/Integer java/lang/Object java/lang/String java/lang/StringBuffer l lastIndexOf length less list match more name no p pack parseInt path results 
right_name 
right_size sany save.gif scrollto 
search.cgi 
search_any search_b search_crit 
search_dir search_edir search_egroup search_ematch search_esize search_euser search_group search_less search_list search_match search_more 	search_ok search_size search_title search_type search_types_ search_user search_xdev select 	setCursor setDrawLines 	setLayout setTitle 	setWidths show showing_files singleClick size sless smore spad 	substring tab text tmap toString trim type types uany urlize usel user valueOf xoff xon yes   L ?  8 D   L    J    H    pH    zI    uR    R    R    R    P    P    }P    P    Q    P    P    P    R    R    P    P    f    e     6+ ;      x* b* `YSYSYSYSYS *, ** 1  * PY d * NY c ┗ YY gN- PY d * * # - w YY g: YY g: WY j  WY j  `YSY*  猄Y*  猄:YQYQYQ:* CY* s *  *  * * , * 惗 w** $ * [Y+ qZ ~ y** - * [Y iZ  y YY g: UY k 熁 RY e:	* QY* " 	 rZ 倍 tW* QY	 rZ 扯 tW* [Y
 iZ 炊 tW** 4  y YY g:

 UY k 熁 RY e:
* QY* "  rZ 劧 tW
* QY rZ 嫸 tW
* [Y
 iZ 姸 tW** * 
 y* SY f 6 ** * 伝 aY3 p* 2 z   v* 熬** 2 *  y RY e:** 0 * QY* "  rZ  y YY g: UY k * QY* .  rZ Χ tW* [Y
 iZ 挾 tW* y YY g: UY k * QY* +  rZ ザ tW* [Y
 iZ 幎 tW* y RY e: YY g: UY k * QY* 6  rZ 抖 tW* QY*   rZ 范 tW** 5  y- uW- uW** ┒ uW YY g: UY h * 7Y*   * / * mZ 毝 tW* 7Y*  *  * mZ { tW* uW* * ⒈   M  : N  ) & %+ *, 7/ B0 M1 U2 `3 q4 5 6 8 9 8 : ; < = >	@)BHDQE`FiGHIJLMNOPQ/RBTMUSVwUWYZ[\Z]^_`a!b*c9dWekfwhijklmopstu*v3w5u@xPyYz[xf{o|s}w)  k/ ;   `     4- XY+ o tW YY g: PY d , uW tW   M         " + 3 s ;    
  c+* { * +* 殾P!M* ~ 嚩 璑- 崣 - |/  <* %  n被 aY, 捣 p z- 捕 z 琈* 懚 嚩 : 崥  <* '  n被 aY, 捣 p
 z 捕 z 琈*  厼 & aY, 捣 p z* *  2 z 琈* 扯 啓 C* 炊 嚩 : 崥  <* )  n被 aY, 捣 p z 捕 z 琈* 嫸 啓 C* 姸 嚩 : 崥  <* &  n被 aY, 捣 p	 z 捕 z 琈* Χ 啓 J* 挾 嚩 : 昗 W <* (  n被 aY, 捣 p z z z 琈 Q* ザ 啓 G* 幎 嚩 : 昗 W <* (  n被 aY, 捣 p z z z 琈* 范 啓  aY, 捣 p z 琈* * , :2 崬  <2 nd O:*d I 6 诨 IY* 2 l:* dSd _[S:		* 伈  2 圫	 朣 琚 )	 aY*   Ц 捣 p z 琒 ]  -	 aY*  鑜 Ц 捣 p z 琒 )	 aY*  l Ц 捣 p z 琒尽$* 惗 }*  x* * ,  * 澅 v| ] ] M  " H        # 4 C D _ k s           ,4CD`jv	",6@ALX^q|	2=DM]b  ;            M       w ;        * 2N- / 6  -  :*  僕* 伌 ６ :6 72 - 摱  "* 伌 ` * 伌 ` 櫑 尽*    M   6      ( 3 ? E W e s v   a   D   0707010004b115000081a40000000000000002000000013ac038a1000029ce000000200000000000000000000000000000001f00000003reloc/file/SharingWindow.class    漱壕  -'(PTYs}RSWXZ\^_hijqrtuvwxyz{~
 9 
 G 
 H 
 J 
 K 
 R 
 N 
 P 
 P 
 2 
 : 
 Q 
 X 
 T 
 I 
 4 
 D 
 < 
 M 
 M 
 K 
 G 
 F 
 F 
 X 
 X 	 D 	 F 	 F 	 F 	 F 	 D 	 F 	 4 	 F 
 O 
 W 
 F 	 F 	 F 
 Z 
 L 
 K 
 I 
 S 
 7 
 7 	 D 	 F 	 F 	 F 	 F 	 < 
 W 	 F 	 F 	 F 	 F 	 7 	 7 
 F 	 Y 
 U 
 4 
 < 
 D 	 4 	 < 	 B 	 D 
 V
 Z
 M
 Z	 4	 F	 <
 F	 F		 4
	 F	 F	 4	 F	 F	 F	 F	 7	 F
 K
 M
 O
 F
 U
 7	 7	 <	 F
 F	 F	 7
 7 
 7!
 X"
 W#	 D$	 F%	 F&Q,Q/Q0Q1Q9QCQEQFQKQMQN6GCHLI=Bkkalnlnb,>3ec<*)-+@D`kkk)dkk`o8m,+nC?7<nOlnlnlkka/:C;,4 e.foAJ++	k
k     ()I ()Ljava/awt/Container; ()Ljava/lang/String; ()V ()Z (I)Ljava/awt/Choice; (I)V (II)V (IIII)V (LCbButton;)V (LLinuxExport;)V (LRemoteFile;)Z (LRemoteFile;LFileManager;)V *(Ljava/awt/Component;)Ljava/awt/Component; (Ljava/awt/Component;)V :(Ljava/awt/Component;Ljava/awt/Component;)Ljava/awt/Panel; 8(Ljava/awt/Image;Ljava/lang/String;ILCbButtonCallback;)V (Ljava/awt/LayoutManager;)V 3(Ljava/awt/Panel;Ljava/awt/Panel;Ljava/awt/Panel;)V &(Ljava/lang/Object;)Ljava/lang/Object; ,(Ljava/lang/Object;)Ljava/lang/StringBuffer; (Ljava/lang/Object;)Z 8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; $(Ljava/lang/String;)Ljava/awt/Image; &(Ljava/lang/String;)Ljava/lang/String; ,(Ljava/lang/String;)Ljava/lang/StringBuffer; (Ljava/lang/String;)V '(Ljava/lang/String;)[Ljava/lang/String; (Ljava/lang/String;I)V .(Ljava/lang/String;Ljava/awt/CheckboxGroup;Z)V <(Ljava/lang/String;Ljava/awt/Component;)Ljava/awt/Component; )(Ljava/lang/String;Ljava/awt/Component;)V I(Ljava/lang/String;Ljava/awt/Component;Ljava/awt/Panel;Ljava/awt/Panel;)V 8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; ](Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V n(Ljava/lang/String;Ljava/lang/String;[Ljava/awt/Checkbox;Ljava/awt/Panel;Ljava/awt/Panel;)Ljava/awt/TextField; *(Ljava/lang/String;ZZILjava/lang/String;)V N(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V (Z)Ljava/awt/Choice; - <init> CbButton CbButtonCallback Center Code ConstantValue DFSAdminExport DeleteWindow East EditorWindow 
Exceptions FileManager FileManager.java FileNode 
FixedFrame I 
LCbButton; LDFSAdminExport; LFileManager; LLinuxExport; LRemoteFile; LSambaShare; LineNumberTable 
LinedPanel 
LinkWindow LinuxExport Ljava/awt/Checkbox; Ljava/awt/TextField; Ljava/io/PrintStream; Ljava/lang/String; Ljava/util/Hashtable; LocalVariables MkdirWindow 
MultiLabel North OverwriteWindow PermissionsPanel PropertiesWindow 
RemoteFile RenameWindow 
SambaShare SearchWindow SharingWindow 
SourceFile South TabbedPanel West Z [I [Ljava/awt/Checkbox; [Ljava/awt/Choice; [Ljava/awt/TextField; [Ljava/lang/String; [Z add addItem 	add_hosts add_item adding  append 	available available_off available_on cancel 
cancel.gif cancel_b click comment desc dexport dispose equals export_options file filemgr get 	getParent getSelectedIndex getState getText 	get_image get_text guest 	guest_off guest_on 
guest_only host java/awt/BorderLayout java/awt/Checkbox java/awt/CheckboxGroup java/awt/Choice java/awt/Component java/awt/Container java/awt/FlowLayout java/awt/Frame java/awt/GridLayout java/awt/Label java/awt/Panel java/awt/TextComponent java/awt/TextField java/awt/Window java/io/PrintStream java/lang/String java/lang/StringBuffer java/lang/System java/util/Hashtable length lexport lro nfs_off nfs_on nfsmode no ntab 
opts_panel out pack params path println put remove ro robox rohosts root 	roothosts rw rwhosts 	samba_off samba_on 	sambamode save save.gif save_b save_export.cgi? save_export.cgi?delete=1& save_export.cgi?new=1& save_share.cgi? save_share.cgi?delete=1& save_share.cgi?new=1& select 	setLayout setTitle setup_leftright 	share_all share_available share_comment 
share_desc share_guest 
share_host share_listed 	share_lro 	share_lrw 	share_nfs share_nheader 
share_noff 	share_non 
share_none 
share_only 
share_opts share_ro 
share_root share_rw share_s0 share_s1 share_s2 share_samba share_sheader 
share_soff 	share_son share_title share_writable show 
show_files showing_files squash 	squashbox sshare stab text toString trim writable writable_off writable_on yes   F 9  3   a    a    e    c    f    b    d    k    k    
k    	k    k    k    k    k    k    l    l    k    k    l    l    l                           	  Q5 U  	    m* [* I * I * I *+ *, ** /* 伌 煻 炼 ** 偞 * 伌 煻 兝 D * 偞 * 伌 煻 僋* 偞  *- < 懅 * 偞  *- 4 }* HY ] 祷 RY `: RY `: RY `: HY ] 祷 RY `: PY b 祷 JY ^:* IY* - * 酒   iZ 岸 mW* IY* . * 厩   iZ 倍 mW nW :Y* , 婪 e:	*	 * TY* 厩  
* 敬 z h y**  * y r RY `:

 PY b 祷 JY ^:
* IY* 1 * 酒 * 敬 u   iZ w mW
* IY*  * 酒 * 敬 u   iZ v mW**  
 r RY `: PY b 祷 JY ^:* IY* 1 * 酒 * 敬 臍   iZ 贫 mW* IY*  * 酒 * 敬 臋   iZ 哦 mW** 0  r RY `: PY b 祷 JY ^:* IY* # * 酒 * 敬    iZ 嵍 mW* IY* 1 * 酒 * 敬    iZ 尪 mW* IY*  * 酒 * 敬 姍   iZ 嫸 mW**   r	 nW RY `: RY `: RY `: HY ] 祷 RY `: PY b 祷 JY ^:* IY*   -   iZ 摱 mW* IY* ! -   iZ 敹 mW nW :Y*  婪 e:* * 偞 P PY c  PY c  QY*  婪 f mW QY* $ 婪 f mW* 懬  * 懘 従6*` T *` K *` K 6 o*  TY* 懘 2 hS* ** 懘 3 ⊿* ** 懘 . 絊* 2 mW** 2* 2 椂 mW*  TY hS* * ⊿* * 絊* 2 mW** 2* 2 椂 mW * 偞  * TY* }  
* } | h {**  * { r*** % * }  
* } *  q *** ' * }  
* } *  q *** & * }  
* } *  q * 2 * 2  nW* 偞 矙 B* 偞 暀 8 GY \:* +  p*   p* nW ,* 偞 矙 * nW * 偞 暀 * nW RY `: NY a * 2Y*  *  * dZ 扯 mW* 2Y*  * 
 * dZ x mW* nW* * 副   g  6       & : R d o w z          &1;MWw%.<EWmx$;FXny 	

)3EOZjz& 3!KU#g$s%&')+,./0.121391?4J5]6e4k7};>?@AB>DEDFGJKLM(N*L5OEPNQPO[RdShTl 2 U   	   +* 肠* 酒 |* 倍 啓 r* * w 喌 u* * 贫 喌 * * 嵍 啓  * 尪 啓   * * y 嚨 z* 偦 XY g* 径 湺 t 露 塛 * 酒 6* 偦 XY g* 径 湺 t 露 塛* 偞 * 敬 牰  * 倍 啓 {* DY* 伌 * w * 贫 * 嵍 啓  * 尪 啓  * y 嚪 k * 偞 * 敬 * 径 * 偦 XY g* 径 湺 t 露 塛* 偞  * 懫 6* 敹 啓 ,** 懚 * 偦 XY g* 懚 浂 t 露 塛`* 懫 6* 偦 XY g* 懚 浂 t 露 塛* 偞 * 懘 灦 &* 敹 啓* <Y* 伌  l ** 懚 * 偦 XY g* 懚 浂 t 露 塛* 偞 * 懘 * 懚 * 偞 * } * 敹 啓 * }* { 嚨 |* }* 2 啓  * 2 啓  
* ┒ 嚨 * }* 2 啓  * 2 啓  
*  嚨 * }* 2 啓  
*  嚨 * 偦 XY g* } 毝 t 露 塛 * } 6* 偦 XY g* } 毝 t 露 塛* 偞 * } 澏  * 敹 啓 * 4Y* 伌 * { * 2 啓  * 2 啓  
* ┒ * 2 啓  * 2 啓  
*  * 2 啓  
*  嚪 j }* 偦 XY g* } 毝 t 露 塛* 偞 * } * } * * 偞 憾 筗* ~+* x * ~   g   c  Y [ ] '^ 5_ G` V_ Ya gb kc b [ e g h g i e k m n o p qr
ms&t*u@tDyOz`|h}l~}zy!,=K`qx{"%/;BSdk|YW  ; U        V+ HY ] 祷 RY `: HY ] , nW- nW, PY b - PY b + nW   g   & 	       ) 2 ? L U  I U   `     4- QY+ f mW RY `: HY ] , nW mW   g         " + 3  L U   	 	   腔 RY `: PY b 祷 JY ^:- IY* " ,  i[S mW- IY*  , 悪   i[S mW- IY*  ,    i[S mW*+ r TY,   , h:* r   g   B    	    3 9 B U a j }       . U   b     6 KY _M,* ( 蓝 o,* ) 蓝 o,* * 蓝 o, ,   g         " / 4  O U   Y     1 KY _M,*  蓝 o,*  蓝 o,   ,   g         " /  8 U   p     D RY `N- HY ] 挡 樆 XY	 g+ s t, s 露 -+ nW-, nW-   g         2 :  B  3 U        => * 2 嚩 悶 * 幘+ W + +
 66 X* 2 嚩 枚 悶 B+ * 2 嘢+ * 2   T+ * 2 匫* 幘け   g   B      	  %
 - 4 ; D W h     |   ]  0707010004b116000081a40000000000000002000000013ac038a0000001fc000000200000000000000000000000000000002100000003reloc/file/StaticTextField.class  漱壕  -    
  

  	
  
           StaticTextField.java ConstantValue 
Exceptions LineNumberTable 
SourceFile java/awt/TextField LocalVariables Code setEditable (Ljava/lang/String;)V <init> (Z)V StaticTextField java/awt/TextComponent (Ljava/lang/String;I)V ()V                  *     
* *            	  
 	          +     *+ *               
          ,     *+ *                      0707010004b117000081a40000000000000002000000013ac038a000000152000000200000000000000000000000000000002000000003reloc/file/StaticTextField.java   import java.awt.*;

// StaticTextField
// A text field that is set to be non-editable by default
class StaticTextField extends TextField
{
	StaticTextField()
	{
	super();
	setEditable(false);
	}

	StaticTextField(String s)
	{
	super(s);
	setEditable(false);
	}

	StaticTextField(String s, int i)
	{
	super(s,i);
	setEditable(false);
	}
}
  0707010004b118000081a40000000000000002000000013ac038a100000348000000200000000000000000000000000000001e00000003reloc/file/StringJoiner.class 漱壕  - 6 ( ) / 0 1
  
  
  
  	  
  	  	  
     ,  -  . # 2  3  4 % 5  ()I ()Ljava/lang/String; ()V (C)Ljava/lang/StringBuffer; (C)V (I)C (Ljava/lang/String;)V <init> C Code ConstantValue 
Exceptions I LineNumberTable Ljava/lang/StringBuffer; LocalVariables 
SourceFile StringJoiner StringSplitter StringSplitter.java add append charAt count java/lang/Object java/lang/String java/lang/StringBuffer length sep str toString          3      4 %     . #             9     * * Y  *     $       H  D  J  H   +            U* 
 * *  W= -+ 	>*  	\ * \ W*  W+ *Y 
` 
    $   & 	   Q  R  S  T  U 6 V ? S J X T O  5             *      $       _  '    *0707010004b119000081a40000000000000002000000013ac038a1000004aa000000200000000000000000000000000000002000000003reloc/file/StringSplitter.class   漱壕  - D 0 1 : ; < =
  
  
  
  
  
  
  
  	  	  
  
   '   3 % 4 " 5 # 7 $ >  @ - A + B  C  ()I ()Ljava/lang/String; ()Ljava/util/Vector; ()V ()Z (C)Ljava/lang/StringBuffer; (I)C (I)Ljava/lang/Object; (Ljava/lang/Object;)V (Ljava/lang/String;C)V <init> Code ConstantValue 
Exceptions I LineNumberTable Ljava/util/Vector; LocalVariables 
SourceFile StringJoiner StringSplitter StringSplitter.java 
addElement append charAt countTokens 	elementAt 	gettokens hasMoreTokens java/lang/Object java/lang/String java/lang/StringBuffer java/util/Vector length 	nextToken parts pos size toString !        @ -     A +      ' &  (        }* * Y 	 *  Y YN 
6 Q+ 6\ + d -+  W # *  Y YN 
 
- W+     ,   :      	     %  -  ?  M  P  V  f  i  p  |    6   (   %     *  * d    ,           9 !  (   *     * *       ,       '   ?   (   I     )* *   * *Y Z`        ,       .  / ' 1   8   (        *     ,       8  /    2  0707010004b11a000081a40000000000000002000000013ac038a1000007b2000000200000000000000000000000000000001f00000003reloc/file/StringSplitter.java    import java.util.Vector;

// StringSplitter
// A stringsplitter object splits a string into a number of substrings,
// each separated by one separator character. Separator characters can be
// included in the string by escaping them with a \
public class StringSplitter
{
	Vector parts = new Vector();
	int pos = 0;

	StringSplitter(String str, char sep)
	{
	StringBuffer current;

	parts.addElement(current = new StringBuffer());
	for(int i=0; i<str.length(); i++) {
		char c = str.charAt(i);
		if (c == '\\' && i != str.length()-1)
			current.append(str.charAt(++i));
		else if (c == sep)
			parts.addElement(current = new StringBuffer());
		else
			current.append(c);
		}
	}

	// countTokens
	// The number of tokens left in the string
	int countTokens()
	{
	return parts.size() - pos;
	}

	// hasMoreTokens
	// Can we call nextToken?
	boolean hasMoreTokens()
	{
	return pos < parts.size();
	}

	// nextToken
	// Returns the string value of the next token
	String nextToken()
	{
	if (pos < parts.size())
		return ((StringBuffer)parts.elementAt(pos++)).toString();
	else
		return null;
	}

	// gettokens
	// Returns a vector of strings split from the given input string
	Vector gettokens()
	{
	return parts;
	}
}


// StringJoiner
// The complement of StringSplitter. Takes a number of substrings and adds
// them to a string, separated by some character. If the separator character
// appears in one of the substrings, escape it with a \
class StringJoiner
{
	char sep;
	StringBuffer str = new StringBuffer();
	int count = 0;

	// Create a new StringJoiner using the given separator
	StringJoiner(char s)
	{
	sep = s;
	}

	// add
	// Add one string, and a separator
	void add(String s)
	{
	if (count != 0)
		str.append(sep);
	for(int i=0; i<s.length(); i++) {
		char c = s.charAt(i);
		if (c == sep || c == '\\') str.append('\\');
		str.append(c);
		}
	count++;
	}

	// toString
	// Get the resulting string
	public String toString()
	{
	return str.toString();
	}
}

  0707010004b11b000081a40000000000000002000000013ac038a000000b02000000200000000000000000000000000000001d00000003reloc/file/TabSelector.class  漱壕  -   k l m        
  -
  -
  .
  /
  0	  1	  2
  3	  4
 
 5
 
 6
  7
  8
 
 9	  :
 
 ;
  <
 	 =
  >
  ?	  @	  A	  B
  C	  D
  E
 
 F
 
 G
  H
  I
 	 J	  K ` R ` T ` _ o [ q f r g t ^ u d v U w _ x S y \ z U { g | O } P ~ L  Q  M  d  f  f  N  h  Z  V  Y  L  N  ]  d ()I ()Ljava/awt/Container; ()Ljava/awt/Dimension; ()Ljava/awt/FontMetrics; ()Ljava/awt/Graphics; ()Ljava/lang/String; ()V (I)Ljava/lang/Object; (II)V (IIII)V (Ljava/awt/Color;)V 3(Ljava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;)V (Ljava/awt/Event;II)Z (Ljava/awt/Font;)V (Ljava/awt/Graphics;)V (Ljava/lang/Object;)V (Ljava/lang/Object;)Z (Ljava/lang/String;)I (Ljava/lang/String;)V (Ljava/lang/String;II)V <init> Code ConstantValue 
Exceptions I LineNumberTable Ljava/awt/Color; Ljava/awt/Font; Ljava/util/Vector; LocalVariables 
SourceFile TabSelector TabbedDisplayPanel TabbedPanel TabbedPanel.java 
addElement addItem bk chfont choose chose chosen drawLine 
drawString 	elementAt equals fillRect font getFontMetrics getGraphics 	getHeight getName 	getParent height hi java/awt/Canvas java/awt/Component java/awt/Dimension java/awt/Font java/awt/FontMetrics java/awt/Graphics java/lang/String java/util/Vector lo minimumSize 	mouseDown name paint preferredSize setColor setFont size stringWidth 
timesRoman width           f      f     q f      h     u d     { g     r g      ` W  a   p     D* * Y  %* Y  * Y*    *+ "*, #*-     e       :  5  7  8 4 < C :   p ^  a   1     * %+ **  &    e       A  B  ?   s ^  a   _     3= %* %  +  * **  &* % )直    e       G  H  I  J $ G 2 E   Z  a    	  + * % ) +*  '+* * ,* * ! * * ,* % )l=* * !>6h6*  +* # '+`d`dd +`d`dd +* " '+d +``d +`d +`d +`dd`dd +`dd`dd  +* # '+`d`dd +`d`dd +* " '+d +``d +`d +`d +d`dd +d`dd +* # '*  +*  ( +*  (* %  :+  +6+  6d +dl`dl` * % )〓H    e    (   P  Q  R  S + T ; U C V I W O X X Y ` Z t [  \  ]  ^  _  `  a  b  X  e  f g) h1 i= jM k[ lk m} n p q r s t u v w V N   X  a   k     C* % ) ** * ,* % )ll **  &*   * %*        e       }  ~ !  )  A    N  a   $      Y2     e          N  a        * $    e         j    n  0707010004b11c000081a40000000000000002000000013ac038a00000062c000000200000000000000000000000000000002400000003reloc/file/TabbedDisplayPanel.class   漱壕  - Z ? @ A L M N O P Q R
  
 
 
 	 
  	  
  
  	   	  !	  "
  #
  $
  %
  &	  ' 5 + 5 , C 3 E ; G , H * I 9 J < S < U - V 1 W / X ( Y 9 ()Ljava/awt/Dimension; ()Ljava/awt/Insets; ()Ljava/awt/LayoutManager; ()V (IIII)V (Ljava/awt/Color;)V #(Ljava/awt/Color;Ljava/awt/Color;)V )(Ljava/awt/Container;Ljava/lang/String;)V (Ljava/awt/Graphics;)V (Ljava/awt/LayoutManager;)V (Ljava/lang/String;)V <(Ljava/lang/String;Ljava/awt/Component;)Ljava/awt/Component; )(Ljava/lang/String;Ljava/awt/Component;)V <init> Code ConstantValue 
Exceptions I LineNumberTable Ljava/awt/CardLayout; Ljava/awt/Color; LocalVariables 
SourceFile TabSelector TabbedDisplayPanel TabbedPanel TabbedPanel.java add addItem card choose drawLine 	getLayout height hi insets java/awt/CardLayout java/awt/Component java/awt/Container java/awt/Dimension java/awt/Graphics java/awt/Insets java/awt/Panel lo paint setColor 	setLayout show size width    
      J <     S <     E ;      5 .  6   C     * *+ *, ** Y Z      :                D 4  6   $     *+, W    :   
         F 2  6   )     *  *+     :   
        K )  6   $      	Y     :         T 0  6        +*  +*  d +*  d +*  +*  d*  d*  d +*  d*  d*  d +*  d*  d*  d +*  d*  d*  d     :   & 	        (  0  P  p       >    B0707010004b11d000081a40000000000000002000000013ac038a000000540000000200000000000000000000000000000001d00000003reloc/file/TabbedPanel.class  漱壕  - Q 2 < > ? @ H I J K L
  
  
 
 
  
  
  
  
 	  
  !
  "	  #
  $
  $	  %	  &
 	 '	  ( 1 ) 1 * 1 + 1 , B / C . C 0 D 9 E . G 7 M : O - P 6 ()V (III)V #(Ljava/awt/Color;Ljava/awt/Color;)V 3(Ljava/awt/Color;Ljava/awt/Color;Ljava/awt/Color;)V (Ljava/awt/LayoutManager;)V (Ljava/lang/String;)V <(Ljava/lang/String;Ljava/awt/Component;)Ljava/awt/Component; )(Ljava/lang/String;Ljava/awt/Component;)V <init> Center Code ConstantValue 
Exceptions LTabSelector; LTabbedDisplayPanel; LineNumberTable Ljava/awt/CardLayout; Ljava/awt/Color; LocalVariables North 
SourceFile TabSelector TabbedDisplayPanel TabbedPanel TabbedPanel.java add addItem card choose chose disp java/awt/BorderLayout java/awt/CardLayout java/awt/Color java/awt/Container java/awt/Panel 	lightGray select 	setLayout tab !  
      P 6     G 7     D 9      1 )  3   A     %* Y   娣  Y222       8   
     $    1 ,  3   z     N* * Y  ** Y+,- Z  W** Y+, Z  W* * Y Z      8            %  :  M    C 0  3   2     * + * +,     8              N .  3   1     * + * +     8       &  '  $   F .  3   %     	* +     8   
    .  ,  =    A0707010004b11e000081a40000000000000002000000013ac038a00000100f000000200000000000000000000000000000001c00000003reloc/file/TabbedPanel.java   // TabbedPanel
// A panel capable of displaying one of many components at a time. The
// component to display is chosen by a row of tab buttons.
import java.awt.*;
import java.util.Vector;

public class TabbedPanel extends Panel
{
	TabSelector tab;		// component for choosing panel
	TabbedDisplayPanel disp;	// where other panels are displayed
	CardLayout card;

	TabbedPanel()
	{
	this(new Color(230,230,230), new Color(50,50,50), Color.lightGray);
	}

	TabbedPanel(Color hi, Color lo, Color bk)
	{
	setLayout(new BorderLayout());
	add("North",tab = new TabSelector(hi, lo, bk));
	add("Center",disp = new TabbedDisplayPanel(hi, lo));
	disp.setLayout(card = new CardLayout());
	}

	// addItem
	// Add a component to be chosen by a tab with the given name
	void addItem(String n, Component c)
	{
	tab.addItem(n);
	disp.addItem(n, c);
	}

	// select
	// Display a component in the panel
	void select(String n)
	{
	tab.choose(n);
	disp.choose(n);
	}

	// chose
	// Called back by a TabSelector object when the user clicks on a tab
	void chose(String n)
	{
	disp.choose(n);
	}
}

class TabSelector extends Canvas
{
	Color hi, lo, bk;
	Vector name = new Vector();
	int chosen = 0;
	Font font = new Font("timesRoman", Font.PLAIN, 12),
	     chfont = new Font(font.getName(), Font.BOLD, 13);

	TabSelector(Color h, Color l, Color b)
	{
	hi = h; lo = l; bk = b;
	}

	void addItem(String n)
	{
	name.addElement(n);
	paint(getGraphics());
	}

	void choose(String n)
	{
	for(int i=0; i<name.size(); i++)
		if (((String)name.elementAt(i)).equals(n)) {
			chosen = i;
			paint(getGraphics());
			}
	}

	public void paint(Graphics g)
	{
	if (g == null || name.size() == 0)
		return;
	g.setColor(bk);
	g.fillRect(0, 0, size().width, size().height);
	int tw = size().width / name.size(),
	    th = size().height;
	for(int i=0; i<name.size(); i++) {
		int x = tw*i;
		if (i == chosen) {
			g.setColor(lo);
			g.drawLine(x+tw-3, 1, x+tw-3, th-1);
			g.drawLine(x+tw-4, 2, x+tw-4, th-1);
			g.setColor(hi);
			g.drawLine(x, 0, x, th-1);
			g.drawLine(x+1, 0, x+1, th-1);
			g.drawLine(x, 0, x+tw-4, 0);
			g.drawLine(x, 1, x+tw-5, 1);
			g.drawLine(x+tw-3, th-1, x+tw-1, th-1);
			g.drawLine(x+tw-3, th-2, x+tw-1, th-2);
			}
		else {
			g.setColor(lo);
			g.drawLine(x+tw-3, 6, x+tw-3, th-1);
			g.drawLine(x+tw-4, 7, x+tw-4, th-1);
			g.setColor(hi);
			g.drawLine(x, 5, x, th-1);
			g.drawLine(x+1, 5, x+1, th-1);
			g.drawLine(x, 5, x+tw-4, 5);
			g.drawLine(x, 6, x+tw-5, 6);
			g.drawLine(x, th-1, x+tw-1, th-1);
			g.drawLine(x, th-2, x+tw-1, th-2);
			}
		g.setColor(lo);
		if (i == chosen) g.setFont(chfont);
		else g.setFont(font);
		String str = (String)name.elementAt(i);
		int textw = g.getFontMetrics().stringWidth(str);
		int texth = g.getFontMetrics().getHeight();
		if (textw < tw-5)
			g.drawString(str, x+(tw-textw)/2, (th-texth)/2+texth);
		}
	}

	public boolean mouseDown(Event evt, int x, int y)
	{
	if (name.size() == 0) return false;
	chosen = x / (size().width / name.size());
	paint(getGraphics());
	((TabbedPanel)getParent()).chose((String)name.elementAt(chosen));
	return true;
	}

	public Dimension minimumSize()
	{
	return new Dimension(50,25);
	}

	public Dimension preferredSize()
	{
	return minimumSize();
	}
}

class TabbedDisplayPanel extends Panel
{
	Color hi, lo;
	CardLayout card;

	TabbedDisplayPanel(Color h, Color l)
	{
	hi = h; lo = l;
	setLayout(card = new CardLayout());
	}

	// addItem
	// Add one component to the set of possibles to be shown
	void addItem(String n, Component c)
	{
	add(n, c);
	}

	// choose
	// Display the named panel
	void choose(String n)
	{
	((CardLayout)getLayout()).show(this, n);
	}

	public Insets insets()
	{
	return new Insets(5,5,5,5);
	}

	public void paint(Graphics g)
	{
	g.setColor(hi);
	g.drawLine(0, 0, 0, size().height-1);
	g.drawLine(1, 0, 1, size().height-1);
	g.setColor(lo);
	g.drawLine(0, size().height-1, size().width-1, size().height-1);
	g.drawLine(0, size().height-2, size().width-1, size().height-2);
	g.drawLine(size().width-1, size().height-1, size().width-1, 0);
	g.drawLine(size().width-2, size().height-1, size().width-2, 0);
	}
}

 0707010004b11f000081a40000000000000002000000013ac038a100000647000000200000000000000000000000000000001e00000003reloc/file/ThirdsLayout.class 漱壕  - a 6 7 8 : < ? @ C D E F G H I J K L N R S T U V
  !
  "
  #	  $
  %
  &
  '
  (	  ) 3 + 3 - P , Q = Y 0 Z * ] . _ * ` = ()Ljava/awt/Dimension; ()V ()[Ljava/awt/Component; (II)V (IIII)V (Ljava/awt/Component;)V *(Ljava/awt/Container;)Ljava/awt/Dimension; (Ljava/awt/Container;)V )(Ljava/lang/String;Ljava/awt/Component;)V <init> Code ConstantValue DFSAdminExport DeleteWindow EditorWindow 
Exceptions FileManager FileManager.java FileNode I LineNumberTable 
LinkWindow LinuxExport Ljava/awt/Component; LocalVariables MkdirWindow 
MultiLabel OverwriteWindow PermissionsPanel PropertiesWindow 
RemoteFile RenameWindow 
SambaShare SearchWindow SharingWindow 
SourceFile ThirdsLayout addLayoutComponent getComponents height java/awt/Component java/awt/Container java/awt/Dimension java/awt/LayoutManager java/lang/Object layoutContainer left minimumLayoutSize minimumSize preferredLayoutSize removeLayoutComponent reshape right size width          X A     ^ A     O 2  4             >      	  W 1  4        S+ M+ N- /-2,  l,  -2,  l,  hl,  - -2,  ,      >   & 	  	 		 
	
 	 "	 ;	
 <	 B	 R	  Y 0  4        [+ M, <,2 N,2 : Y-    `-   
-    , 
,2 盎 Y     >   * 
  	 	 	 	 	 (	 @	 D	 J	 Q	   [ 0  4        *+     >      	&  \ /  4             >      	)   3 +  4        *     >        M    ; 0707010004b120000081a40000000000000002000000013ac038a000000eb2000000200000000000000000000000000000001600000003reloc/file/Util.class 漱壕  -  e                  
 	 =
  =
  >
  ?
  @
  A
  B
 	 C
  D
  E
  F
  G
  H
 
 I	  J
  K	  L	  M
  N	  O	  P
  Q
  R
  S
 
 T
  U
  V
  W
  X
  Y
  Z
  [
  \
  ]
  ^
  _
 
 `	  a
  b
  c
  d  m  t      {  }  m      f  q    r    p            j  o  i  g  h  ~  l  ~  n  m  k    u  v  s  w    l  m  z  :  ()I ()Ljava/awt/FontMetrics; ()Ljava/awt/Graphics; ()Ljava/awt/Toolkit; ()Ljava/lang/Class; ()Ljava/lang/Object; ()Ljava/lang/String; ()V ()Z (I)Ljava/awt/Component; (I)V (II)Ljava/awt/Image; (IIII)V (Ljava/awt/Color;)V (Ljava/awt/Component;)V '(Ljava/awt/Component;Ljava/awt/Color;)V (Ljava/awt/Container;)V (Ljava/awt/Font;)V (Ljava/awt/Graphics;IIIII)V (Ljava/awt/Image;)I (Ljava/awt/Image;)Z (Ljava/awt/Image;I)V (Ljava/awt/Image;II)Z (Ljava/awt/Image;III)V !(Ljava/awt/image/ImageObserver;)I 0(Ljava/awt/image/ImageProducer;)Ljava/awt/Image; &(Ljava/lang/Object;)Ljava/lang/Object; ,(Ljava/lang/Object;)Ljava/lang/StringBuffer; %(Ljava/lang/String;)Ljava/lang/Class; &(Ljava/lang/String;)Ljava/lang/Object; ,(Ljava/lang/String;)Ljava/lang/StringBuffer; (Ljava/lang/String;)V (Ljava/lang/String;II)V <clinit> <init> Code ConstantValue 
Exceptions Failed to create object  Failed to reproduce object  LineNumberTable Ljava/awt/Font; Ljava/awt/FontMetrics; Ljava/awt/Frame; Ljava/awt/Graphics; Ljava/awt/Toolkit; Ljava/io/PrintStream; LocalVariables 
SourceFile 
TimesRoman Util 	Util.java addImage 	addNotify append countComponents createImage createObject 
dottedRect drawLine err exit f fnm forName fr g getClass getComponent getDefaultToolkit getFontMetrics getGraphics 	getHeight getName getWidth 
isErrorAny java/awt/Component java/awt/Container java/awt/Font java/awt/Frame java/awt/Graphics java/awt/Image java/awt/MediaTracker java/awt/Toolkit java/io/PrintStream java/lang/Class java/lang/Exception java/lang/Object java/lang/StringBuffer java/lang/System layout newInstance println recursiveBackground recursiveLayout setBackground setFont tk toString 
waitForAll waitForImage                                    z     R     & Y ' L+* + ; W+ 1                        |     T     ( Y ' N-* - ; W- 1                  !  "  #   y     )     * <W* ' 0       
    (  )   y     )     * <W* ' .       
    .  /   q     !     	 '            4               '*             9        v     6* &L+ 3癓 " Y *  + ) /  : 4 #    
 
      & 	   >   ?  @ 
 B  C   D * C 0 E 4 G        l     4* ) 3癓 " Y *  + ) /  : 4 #               N  O 	 P  Q ( P . R 2 T   x    2  	   h6 6<> 6=66 $*`  ` !`66 &*`  ` !`66 &*d  d !d66 $*d  d !d6鼙       B    [  \  ] # ^ ) _ C ^ P ` V a r `  b  c  b  d  e  d  X   v     Y     )* 2< * *M,  
,  6* 浔           j  k 	 l  m  n  k ( h   u     [     +*+ 7*  !* M> , *+ 5, 锉           t  u  v  w  x  w * r    m          *               m     o      ? 	Y  ' '  ' - ( ( Y
 Y $ 8 ( , % + 9            
      /  8  >         0707010004b121000081a40000000000000002000000013ac038a000000a26000000200000000000000000000000000000001500000003reloc/file/Util.java  import java.awt.*;
import java.awt.image.*;

class Util
{
	static Frame fr;
	static Graphics g;
	static Font f;
	static FontMetrics fnm;
	static Toolkit tk;

	static
	{
	fr = new Frame();
	fr.addNotify();
	g = fr.getGraphics();
	g.setFont(f = new Font("TimesRoman", Font.PLAIN, 10));
	fnm = g.getFontMetrics();
	tk = Toolkit.getDefaultToolkit();
	}

	static boolean waitForImage(Image i)
	{
	MediaTracker mt = new MediaTracker(fr);
	mt.addImage(i, 0);
	try { mt.waitForAll(); } catch(Exception e) { return false; }
	return !mt.isErrorAny();
	}

	static boolean waitForImage(Image i, int w, int h)
	{
	MediaTracker mt = new MediaTracker(fr);
	mt.addImage(i, w, h, 0);
	try { mt.waitForAll(); } catch(Exception e) { return false; }
	return !mt.isErrorAny();
	}

	static int getWidth(Image i)
	{
	waitForImage(i);
	return i.getWidth(fr);
	}

	static int getHeight(Image i)
	{
	waitForImage(i);
	return i.getHeight(fr);
	}

	static Image createImage(int w, int h)
	{
	return fr.createImage(w, h);
	}

	static Image createImage(ImageProducer p)
	{
	return fr.createImage(p);
	}

	static Object createObject(String name)
	{
	try {
		Class c = Class.forName(name);
		return c.newInstance();
		}
	catch(Exception e) {
		System.err.println("Failed to create object "+name+" : "+
				   e.getClass().getName());
		System.exit(1);
		}
	return null;
	}

	/**Create a new instance of some object
	 */
	static Object createObject(Object o)
	{
	try { return o.getClass().newInstance(); }
	catch(Exception e) {
		System.err.println("Failed to reproduce object "+o+" : "+
	                         e.getClass().getName());
		System.exit(1);
		}
	return null;
	}


	static void dottedRect(Graphics g, int x1, int y1,
	                       int x2, int y2, int s)
	{
	int i, s2 = s*2, t;
	if (x2 < x1) { t = x1; x1 = x2; x2 = t; }
	if (y2 < y1) { t = y1; y1 = y2; y2 = t; }
	for(i=x1; i<=x2; i+=s2)
		g.drawLine(i, y1, i+s > x2 ? x2 : i+s, y1);
	for(i=y1; i<=y2; i+=s2)
		g.drawLine(x2, i, x2, i+s > y2 ? y2 : i+s);
	for(i=x2; i>=x1; i-=s2)
		g.drawLine(i, y2, i-s < x1 ? x1 : i-s, y2);
	for(i=y2; i>=y1; i-=s2)
		g.drawLine(x1, i, x1, i-s < y1 ? y1 : i-s);
	}

	static void recursiveLayout(Container c)
	{
	c.layout();
	for(int i=0; i<c.countComponents(); i++) {
		Component cc = c.getComponent(i);
		if (cc instanceof Container)
			recursiveLayout((Container)cc);
		}
	}

	static void recursiveBackground(Component c, Color b)
	{
	c.setBackground(b);
	if (c instanceof Container) {
		Container cn = (Container)c;
		for(int i=0; i<cn.countComponents(); i++)
			recursiveBackground(cn.getComponent(i), b);
		}
	}
}

  0707010004b122000081a40000000000000002000000013ac038a000000535000000200000000000000000000000000000001b00000003reloc/file/acl_security.pl    
require './file-lib.pl';

# acl_security_form(&options)
# Output HTML for editing security options for the file module
sub acl_security_form
{
print "<tr> <td><b>$text{'acl_user'}</b></td>\n";
local $u = getpwuid($_[0]->{'uid'});
print "<td><input name=uid size=8 value='$u'> ",
	&user_chooser_button("uid", 0),"</td> </tr>\n";

print "<tr> <td><b>$text{'acl_umask'}</b></td>\n";
print "<td><input name=umask size=3 value='$_[0]->{'umask'}'></td> </tr>\n";

print "<tr> <td><b>$text{'acl_follow'}</b></td> <td>\n";
printf "<input type=radio name=follow value=1 %s> $text{'yes'}\n",
	$_[0]->{'follow'} ? "checked" : "";
printf "<input type=radio name=follow value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'follow'} ? "" : "checked";

print "<tr> <td valign=top><b>$text{'acl_dirs'}</b></td>\n";
print "<td><textarea name=root rows=3 cols=30>",
	join("\n", split(/\s+/, $_[0]->{'root'})),"</textarea></td></tr>\n";
}

# acl_security_save(&options)
# Parse the form for security options for the file module
sub acl_security_save
{
$_[0]->{'uid'} = getpwnam($in{'uid'});
local @root = split(/\s+/, $in{'root'});
map { s/\/+/\//g } @root;
map { s/([^\/])\/+$/$1/ } @root;
$_[0]->{'root'} = join(" ", @root);
$_[0]->{'follow'} = $in{'follow'};
$in{'umask'} =~ /^[0-7]{3}$/ || &error("Invalid umask");
$_[0]->{'umask'} = $in{'umask'};
}

   0707010004b123000081e40000000000000002000000013ac038a0000007e8000000200000000000000000000000000000001500000003reloc/file/chmod.cgi  #!/usr/local/bin/perl
# chmod.cgi
# Change the ownership and permissions on a file

require './file-lib.pl';
&ReadParse();
&switch_acl_uid();
print "Content-type: text/plain\n\n";
&can_access($in{'path'}) ||
	&failure(&text('chmod_eaccess', $in{'path'}));

$uid = $in{'user'} =~ /^\d+$/ ? $in{'user'}
			      : getpwnam($in{'user'});
&failure(&text('chmod_euser', $in{'user'})) if (!defined($uid));
$gid = $in{'group'} =~ /^\d+$/ ? $in{'group'}
			       : getgrnam($in{'group'});
&failure(&text('chmod_egroup', $in{'group'})) if (!defined($gid));

if ($in{'linkto'}) {
	# Just changing the link target
	&lock_file($in{'path'});
	unlink($in{'path'});
	symlink($in{'linkto'}, $in{'path'}) ||
		&failure(&text('chmod_elink', $1));
	&unlock_file($in{'path'});
	&webmin_log("relink", undef, $in{'path'}, \%in);
	}
elsif ($in{'rec'} == 0) {
	# Just this file
	&update($in{'path'}, 0);
	&webmin_log("chmod", undef, $in{'path'}, \%in);
	}
elsif ($in{'rec'} == 1) {
	# This directory and all its files
	&update($in{'path'}, 0);
	opendir(DIR, $in{'path'});
	foreach $f (readdir(DIR)) {
		next if ($f eq "." || $f eq "..");
		next if (-l $full);
		&update("$in{'path'}/$f", 1) if (!-d $full);
		}
	closedir(DIR);
	&webmin_log("chmod", undef, $in{'path'}, \%in);
	}
elsif ($in{'rec'} == 2) {
	# Directory and all subdirectories
	&update($in{'path'}, 0);
	&recurse($in{'path'});
	&webmin_log("chmod", undef, $in{'path'}, \%in);
	}
print "\n";

sub recurse
{
local(@files, $f, $full);
opendir(DIR, $_[0]);
@files = readdir(DIR);
closedir(DIR);
foreach $f (@files) {
	$full = "$_[0]/$f";
	next if ($f eq "." || $f eq "..");
	next if (-l $full);
	&update($full, !-d $full);
	&recurse($full) if (-d $full);
	}
}

sub failure
{
print @_,"\n";
exit;
}
 
# update(file, perms_only)
sub update
{
local $perms = $in{'perms'};
if ($_[1]) {
	@st = stat($_[0]);
	$perms = ($perms & 0777) | ($st[2] & 037777777000);
	}
chown($uid, $gid, $_[0]) || &failure(&text('chmod_echown', $!));
chmod($perms, $_[0]) || &failure(&text('chmod_echmod', $!));
}

0707010004b124000081e40000000000000002000000013ac038a000000425000000200000000000000000000000000000001400000003reloc/file/copy.cgi   #!/usr/local/bin/perl
# copy.cgi
# Copy some file or directory

require './file-lib.pl';
&ReadParse();
&switch_acl_uid();
print "Content-type: text/plain\n\n";
if (!&can_access($in{'from'})) {
	print &text('copy_efrom', $in{'from'}),"\n";
	exit;
	}
if (!&can_access($in{'to'})) {
	print &text('copy_eto', $in{'to'}),"\n";
	exit;
	}
if (-l $in{'from'}) {
	# Remake the link
	&lock_file($in{'to'});
	if (!symlink(readlink($in{'from'}), $in{'to'})) {
		print &text('copy_elink', $!),"\n";
		exit;
		}
	&unlock_file($in{'to'});
	}
elsif (-d $in{'from'}) {
	# Recursively copy with tar
	unlink($in{'to'});
	mkdir($in{'to'}, 0755);
	$out = &backquote_logged("(cd \"$in{'from'}\" ; tar cf - . | (cd \"$in{'to'}\" ; tar xf -)) 2>&1");
	}
else {
	# Simple copy using cp
	unlink($in{'to'});
	$out = &backquote_logged("cp -p \"$in{'from'}\" \"$in{'to'}\" 2>&1");
	}
if ($?) { print $out,"\n"; }
else {
	print "\n";
	print &file_info_line($in{'to'}),"\n";
	&webmin_log("copy", undef, $in{'from'}, \%in);
	}

sub split_dir
{
$_[0] =~ /^(.*\/)([^\/]+)$/;
return ($1, $2);
}

   0707010004b125000081a40000000000000002000000013ac038a00000002c000000200000000000000000000000000000001600000003reloc/file/defaultacl noconfig=0
user=0
root=/
follow=0
umask=022
0707010004b126000081e40000000000000002000000013ac038a00000019c000000200000000000000000000000000000001600000003reloc/file/delete.cgi #!/usr/local/bin/perl
# delete.cgi
# Delete some file or directory

require './file-lib.pl';
&ReadParse();
&switch_acl_uid();
print "Content-type: text/plain\n\n";
if (!&can_access($in{'file'})) {
	print &text('delete_eaccess', $in{'file'}),"\n";
	exit;
	}
$out = &backquote_logged("rm -rf \"$in{'file'}\" 2>&1");
if ($?) { print $out; }
else {
	print "\n";
	&webmin_log("delete", undef, $in{'file'}, \%in);
	}

0707010004b127000081a40000000000000002000000013ac038a0000006d0000000200000000000000000000000000000001700000003reloc/file/file-lib.pl    # file-lib.pl
# Common functions for file manager CGIs

do '../web-lib.pl';
&ReadParse(\%prein, 'GET');
if ($prein{'trust'}) {
	dbmopen(%trustdb, "$ENV{'WEBMIN_CONFIG'}/file/trust", 0700);
	if ($trustdb{$prein{'trust'}}) {
		$trust_unknown_referers = 1;
		$trustdb{$prein{'trust'}} = time();
		}
	dbmclose(%trustdb);
	}
&init_config();
%access = &get_module_acl();

$icon_map = (	"c", 1,    "txt", 1,
		"pl", 1,   "cgi", 1,
		"html", 1, "htm", 1,
		"gif", 2,  "jpg", 2,
		"tar", 3
		);

# file_info_line(path)
# Returns a line of text containing encoded details of some file
sub file_info_line
{
local @st = $access{'follow'} ? stat($_[0]) : lstat($_[0]);
local $ext = $_[0] =~ /\S+\.([^\.\/]+)$/ ? $1 : undef;
local $user = getpwuid($st[4]); $user = $st[4] if (!$user);
local $group = getgrgid($st[5]); $group = $st[5] if (!$group);
local $rl = readlink($_[0]);
return sprintf ("%s\t%d\t%s\t%s\t%d\t%d\t%d\t%s",
		$_[0],
		(-l $_[0] && !$access{'follow'} ? 5 :
		 -d $_[0] ? 0 :
		 -b $_[0] ? 6 :
		 -c $_[0] ? 6 :
		 -p $_[0] ? 7 :
		 -S $_[0] ? 7 :
		 defined($icon_map{$ext}) ? $icon_map{$ext} : 4),
		$user, $group,
		$st[7], $st[2], $st[9], -l $_[0] && !$rl ? "???" : $rl);
}

# switch_acl_uid()
sub switch_acl_uid
{
if ($access{'uid'}) {
	local @u = getpwuid($access{'uid'});
	$( = $u[3]; $) = "$u[3] ".join(" ", $u[3], &other_groups($u[0]));
	$< = $> = $u[2];
	umask(oct($access{'umask'}));
	}
}

# can_access(file)
sub can_access
{
local @f = grep { $_ ne '' } split(/\//, $_[0]);
DIR: foreach $r (split(/\s+/, $access{'root'})) {
	return 1 if ($r eq '/' || $_[0] eq '/');
	local @a = grep { $_ ne '' } split(/\//, $r);
	local $i;
	for($i=0; $i<@a && $i<@f; $i++) {
		next DIR if ($a[$i] ne $f[$i]);
		}
	return 1;
	}
return 0;
}

1;

0707010004b128000081e40000000000000002000000013ac038a000000450000000200000000000000000000000000000001500000003reloc/file/index.cgi  #!/usr/local/bin/perl
# index.cgi
# Output HTML for the file manager applet

require './file-lib.pl';
&header($text{'index_title'});
if ($gconfig{'referers_none'}) {
	# Because java applet HTTP requests don't always include a referer:
	# header, we need to use a DBM of trust keys to identify trusted applets
	if (defined(&seed_random)) { &seed_random(); }
	else { srand(time() ^ $$); }
	$trust = int(rand(1000000000));
	local $now = time();
	dbmopen(%trustdb, "$config_directory/file/trust", 0700);
	foreach $k (keys %trustdb) {
		if ($now - $trustdb{$k} > 30*24*60*60) {
			delete($trustdb{$k});
			}
		}
	$trustdb{$trust} = $now;
	dbmclose(%trustdb);
	}


print <<EOF;
<script>
function upload(dir)
{
open("upform.cgi?dir="+dir+"&trust=$trust", "upload", "toolbar=no,menubar=no,scrollbar=no,width=450,height=200");
}
</script>

<applet code=FileManager name=FileManager width=100% height=90% MAYSCRIPT>
<param name=root value="$access{'root'}">
<param name=follow value="$access{'follow'}">
<param name=trust value="$trust">
$text{'index_nojava'} <p>
</applet>
<hr>
EOF
&footer("/", $text{'index'});

0707010004b129000081e40000000000000002000000013ac038a1000000c2000000200000000000000000000000000000001400000003reloc/file/lang.cgi   #!/usr/local/bin/perl
# lang.cgi
# Return language translation values

require './file-lib.pl';
print "Content-type: text/plain\n\n";
foreach $k (keys %text) {
	print $k,"=",$text{$k},"\n";
	}

  0707010004f45d000041ed0000000000000001000000023ac03bea00000000000000200000000000000000000000000000001000000003reloc/file/lang   0707010004f45e000081a40000000000000002000000013ac038a0000012e2000000200000000000000000000000000000001300000003reloc/file/lang/de    index_title=Datei-Manager
index_nojava=Diese Modul ben&ouml;tigt Java, aber Ihr Browser unterst&uuml;tzt kein Java

top_open=Oeffnen
top_view=Anzeigen
top_edit=Bearbeiten
top_refresh=Refresh
top_info=Info
top_delete=Loeschen
top_new=Neu
top_upload=Upload
top_rename=Umben.
top_copy=Kopieren
top_cut=Ausschn.
top_paste=Einf黦en

right_name=Name
right_size=Groesse
right_user=Benutzer
right_group=Gruppe
right_date=Datum

edit_enormal=Nur normale Dateien koennen bearbeitet werden
edit_title=Bearbeite $1
edit_title2=Erstelle Datei
edit_filename=Dateiname:
edit_eover=$1 kann nicht 黚erschrieben werden
edit_esave=Fehler beim Speichern der Datei : $1
edit_eaccess=Sie haben keine Berechtigung die Datei '$1' zu speichern

info_file=Datei
info_path=Pfad:
info_type=Typ:
info_size=Gr鰏e:
info_mod=Ver鋘dert:
info_link=Link zu:
info_perms=Rechte
info_user=Benutzer:
info_group=Gruppe:
info_other=Andere:
info_sticky=Sticky:
info_sticky2=Nur Besitzer darf Datei l鰏chen
info_own=Besitzer
info_setuid=Setuid:
info_setuid2=F黨re aus als Benutzer
info_setgid=Setgid:
info_setgid2=Dateien erben Gruppen
info_setgid3=F黨re aus als Gruppe
info_apply=Wende 膎derungen auf auf
info_apply1=Nur dieses Verzeichnis
info_apply2=Dieses Verzeichnisse und seine Dateien
info_apply3=Dieses Verzeichnis und alle Unterverzeichnisse
info_efailed=Fehler beim Update von $1 : $2
info_read=Lesen
info_write=Schreiben
info_list=Liste
info_exec=Exec

delete_dtitle=Loesche Verzeichnis
delete_ftitle=Loesche Datei
delete_ddesc=Sind Sie sicher, dass sie das Verezichnis $1 und alle Unterverzeichnisse unwiderruflich loeschen wollen?
delete_fdesc=Sind Sie sicher, dass sie die Datei $1 unwiderruflich l鯿hen wollen?
delete_efailed=Fehler beim Loeschen von $1 : $2

mkdir_title=Neues Verzeichnis
mkdir_dir=Neues Verzeichnis:
mkdir_eexists=$1 existiert bereits
mkdir_efailed=Erstellen des Verzeichnisses schlug fehl : $1
mkdir_eaccess=Sie haben keine Berechtigung, '$1' anzulegen

link_title=Erstelle Link
link_from=Link von:
link_to=Link zu:
link_eexists=$1 existiert bereits
link_efailed=Link schlug fehl : $1
link_efrom=Sie haben keine Berechtigung von '$1' zu verknuepfen
link_efollow=Sie habe meine Berechtigung symbolische Links anzulegen

rename_title=Umbennenen von $1
rename_old=Alter Name:
rename_new=Neuer Name:
rename_ok=Umbenennen
rename_eexists=Es existiert bereits eine Datei mit dem Namen $1
rename_efailed=Umbennen schlug fehl : $1
rename_eold=Sie haben keine Berechtigung, '$1' umzubennenen
rename_enew=Sie habe keine Berechtigung zu '$1' umzubennenen

file_type0=Verzeichnis
file_type1=Text Datei
file_type2=Bild Datei
file_type3=Binaere Datei
file_type4=Datei
file_type5=Symbolischer Link
file_type6=Ger鋞e Datei
file_type7=Pipe

view_enormal=Nur normale Dateien duerfen betrachtet werden
view_eaccess=Sie haben kein Berechtigung zum Zugriff auf $1
view_eopen=Fehler beim 謋fnen von $1 : $2

paste_ecopy=Sie muessen Kopieren oder Ausschneiden vor dem Einfuegen
paste_egone=Kopierte Datei $1 existiert nicht mehr
paste_eover=$1 kann nicht ueberschrieben werden
paste_eself=Sie koennen keine Datei auf sich selber einf黦en
paste_emfailed=Verschieben schlug fehl : $1
paste_ecfailed=Kopieren schlug fehl : $1

over_title=Datei existiert
over_msg=Die Datei $1 existiert berits. Benutze Sie das Feld unten um einen anderen Namen fuer die neue Datei anzugeben.
over_new=Neuer Dateiname:
over_ok=Ok

upload_efailed=Fehler beim Oeffnen von Upload : $1
upload_title=Datei Upload
upload_file=Datei zum uploaden
upload_dir=Upload zu Verzeichnis
upload_ok=Upload
upload_conv=Konvertiere DOS Zeilenvorsch&uuml;be?
upload_efile=Keine Datei fuer Upload ausgew&auml;hlt.
upload_edir=Upload Verzeichnis exitiert nicht.
upload_eperm=Sie haben keine Berechtigung $1 zu erstellen
upload_ewrite=Fehler beim schreiben von $1 : $2.

find_eaccess=Sie haben kein Berechtigung zum Zugriff auf $1
find_eexist=$1 existiert nicht in $2
find_edir=$1 ist kein Verzeichnis in $2

cancel=Abbrechen

chmod_eaccess=Sie haben keine Berechtigung zum Zugriff auf '$1'
chmod_euser=$1 : Benutzer nicht gefunden
chmod_egroup=$1 : Gruppe nicht gefunden
chmod_elink=Symbolischer Link schlug fehl : $1
chmod_echown=chown schlug fehl : $1
chmod_echmod=chmod schlug fehl : $1

copy_efrom=Sie haben kein Berechtigung aus '$1' zu kopieren
copy_eto=Sie haben keine Berechtigung zu '$1' zu kopieren
copy_elink=Symbolischer Link schlug fehl : $1

delete_eaccess=Sie haben keine Berechtigung '$1' zu l鰏chen

list_eaccess=Sie haben keine Berechtigung zum Zugriff auf dieses Verzeichnis

move_eto=Sie haben keine Berechtigung, Dateien zu '$1' zu verschieben
move_afrom=Sie haben keine Berechtigung '$1' zu verschieben

acl_user=Greife auf Dateien auf dem Server zu als Benutzer
acl_umask=Umask fuer neue Dateien
acl_follow=Folge immer symbolischen Links?
acl_dirs=Erlaube nur Zugriff auf Verzeichnisse
  0707010004f45f000081a40000000000000002000000013ac038a0000017b4000000200000000000000000000000000000001300000003reloc/file/lang/en    index_title=File Manager
index_nojava=This module requires java to function, but your browser does not support java

top_open=Open
top_view=View
top_edit=Edit
top_refresh=Refresh
top_info=Info
top_delete=Delete
top_new=New
top_upload=Upload
top_rename=Rename
top_copy=Copy
top_cut=Cut
top_paste=Paste
top_share=Sharing
top_search=Find

right_name=Name
right_size=Size
right_user=User
right_group=Group
right_date=Date

edit_enormal=Only normal files can be edited
edit_title=Editing $1
edit_title2=Creating file
edit_filename=Filename:
edit_eover=$1 cannot be overwritten
edit_esave=Failed to save file : $1
edit_eaccess=You are not allowed to save '$1'

info_file=File
info_path=Path:
info_type=Type:
info_size=Size:
info_mod=Modified:
info_link=Link to:
info_perms=Permissions
info_user=User:
info_group=Group:
info_other=Other:
info_sticky=Sticky:
info_sticky2=Only owners can delete files
info_own=Ownership
info_setuid=Setuid:
info_setuid2=Execute as user
info_setgid=Setgid:
info_setgid2=Files inherit group
info_setgid3=Execute as group
info_apply=Apply changes to
info_apply1=This directory only
info_apply2=This directory and its files
info_apply3=This directory and all subdirectories
info_efailed=Failed to update $1 : $2
info_read=Read
info_write=Write
info_list=List
info_exec=Exec

delete_dtitle=Delete directory
delete_ftitle=Delete file
delete_ddesc=Are you sure you want to permanently delete the directory $1 and all its contents?
delete_fdesc=Are you sure you want to permanently delete the file $1 ?
delete_efailed=Failed to delete $1 : $2

mkdir_title=New Directory
mkdir_dir=New directory:
mkdir_eexists=$1 already exists
mkdir_efailed=Create directory failed : $1
mkdir_eaccess=You are not allowed to create '$1'

link_title=Create Link
link_from=Link from:
link_to=Link to:
link_eexists=$1 already exists
link_efailed=Link failed : $1
link_efrom=You are not allowed to link from '$1'
link_efollow=You are not allowed to create symlinks

rename_title=Rename $1
rename_old=Old name:
rename_new=New name:
rename_ok=Rename
rename_eexists=A file called $1 already exists
rename_efailed=Rename failed : $1
rename_eold=You are not allowed to rename '$1'
rename_enew=You are not allowed to rename to '$1'

file_type0=Directory
file_type1=Text file
file_type2=Image file
file_type3=Binary file
file_type4=File
file_type5=Symbolic link
file_type6=Device file
file_type7=Pipe

view_enormal=Only normal files can be viewed
view_eaccess=You are not allowed to access $1
view_eopen=Failed to open $1 : $2

paste_ecopy=You must cut or copy before pasting
paste_egone=Copied file $1 no longer exists
paste_eover=$1 cannot be overwritten
paste_eself=You cannot paste a file over itself
paste_emfailed=Move failed : $1
paste_ecfailed=Copy failed : $1

over_title=File Exists
over_msg=The file $1 already exists. Use the field below to enter a new filename for the pasted file.
over_new=New filename:
over_ok=Ok

upload_efailed=Failed to open upload : $1
upload_title=Upload File
upload_file=File to upload
upload_dir=Upload to directory
upload_ok=Upload
upload_conv=Convert DOS newlines?
upload_efile=No file selected to upload.
upload_edir=Upload directory does not exist.
upload_eperm=You are not allowed to create $1
upload_ewrite=Failed to write to $1 : $2.

find_eaccess=You are not allowed to access $1
find_eexist=$1 does not exist in $2
find_edir=$1 is not a directory in $2

cancel=Cancel

chmod_eaccess=You are not allowed to access '$1'
chmod_euser=$1 : no such user
chmod_egroup=$1 : no such group
chmod_elink=symlink failed : $1
chmod_echown=chown failed : $1
chmod_echmod=chmod failed : $1

copy_efrom=You are not allowed to copy from '$1'
copy_eto=You are not allowed to copy to '$1'
copy_elink=symlink failed : $1

delete_eaccess=You are not allowed to delete '$1'

list_eaccess=You are not allowed to access this directory
list_edir=Failed to list $1 : $2

move_eto=You are not allowed to move to '$1'
move_afrom=You are not allowed to move '$1'

acl_user=Access files on server as user
acl_umask=Umask for new files
acl_follow=Always follow symlinks?
acl_dirs=Only allow access to directories

share_title=Sharing
share_samba=Windows
share_nfs=NFS
share_son=Windows file sharing enabled
share_soff=Windows file sharing disabled
share_writable=Writable?
share_available=Currently active?
share_sheader=Sharing options
share_only=Only
share_guest=Guest access?
share_comment=Comment
share_nheader=NFS export options
share_non=NFS file sharing enabled
share_noff=NFS file sharing disabled
share_desc=Description
share_ro=Read-only hosts
share_rw=Read-write hosts
share_root=Root access hosts
share_none=None
share_all=All
share_listed=Listed..
share_host=Hosts
share_opts=Options
share_s0=Trust nobody
share_s1=Trust non-root
share_s2=Trust everybody
share_lro=Read-only
share_lrw=Read-write

log_create_export=Created NFS export $1
log_modify_export=Modified NFS export $1
log_delete_export=Deleted NFS export $1
log_create_share=Created Samba share $1
log_modify_share=Modified Samba share $1
log_delete_share=Deleted Samba share $1
log_save=Saved file $1
log_chmod=Changed permissions on file $1
log_mkdir=Created directory $1
log_upload=Uploaded file $1
log_link=Created symbolic link $1 to $2
log_relink=Modified symbolic link $1 to $2
log_copy=Copied file $1 to $2
log_move=Moved file $1 to $2
log_delete=Deleted file $1

search_eaccess=You are not allowed to search this directory
search_title=Find files
search_ok=Search Now
search_dir=Search directory
search_match=For files matching
search_user=Owned by user
search_group=Owned by group
search_any=Any
search_type=File type
search_types_=Any
search_types_f=File
search_types_d=Directory
search_types_l=Symbolic link
search_types_p=Named pipe
search_size=File size
search_more=More than
search_less=Less than
search_xdev=Search past mounts?
search_edir=Missing or invalid search directory
search_ematch=Missing matching regexp
search_euser=Missing username
search_egroup=Missing group name
search_esize=File size must be an integer
search_crit=Search criteria
search_list=Search results

0707010004f460000081a40000000000000002000000013ac038a000001adf000000200000000000000000000000000000001300000003reloc/file/lang/es    index_title=Gestor de Archivos
index_nojava=Este m骴ulo necesita de java para funcionar pero tu navegador no soporta java

top_open=Abrir
top_view=Ver
top_edit=Editar
top_refresh=Refrescar
top_info=Informaci髇
top_delete=Borrar
top_new=Nuevo
top_upload=Cargar
top_rename=Renombrar
top_copy=Copiar
top_cut=Cortar
top_paste=Pegar
top_share=Compartir
top_search=Hallar

right_name=Nombre
right_size=Medida
right_user=Usuario
right_group=Grupo
right_date=Fecha

edit_enormal=S髄o se pueden editar los archivos normales
edit_title=Editando $1
edit_title2=Creando archivo
edit_filename=Nombre de Archivo:
edit_eover=$1 no puede ser sobreescrito
edit_esave=No puedo salvar archivo: $1
edit_eaccess=No est醩 autorizado a salvar '$1'

info_file=Archivo
info_path=Trayectoria:
info_type=Tipo:
info_size=Medida:
info_mod=Modificado:
info_link=Enlaza con:
info_perms=Permisos
info_user=Usuario:
info_group=Grupo:
info_other=Otros:
info_sticky=Restricci髇:
info_sticky2=S髄o los propietarios pueden borrar archivos
info_own=Propiedad
info_setuid=PonerUid:
info_setuid2=Ejecutar como usuario
info_setgid=PonerGid:
info_setgid2=Los Archivos heredan grupo
info_setgid3=Ejecutar como grupo
info_apply=Aplicar cambios a
info_apply1=Este directorio solamente
info_apply2=Este directorio y sus archivos
info_apply3=Este directorio y todos los subdirectorios
info_efailed=No puedo actualizar $1 : $2
info_read=Lectura
info_write=Escritura
info_list=Lista
info_exec=Ejecuci髇

delete_dtitle=Borrar directorio
delete_ftitle=Borrar archivo
delete_ddesc=縀st醩 seguro de querer borrar permanentemente el directorio $1 y todo su contenido?
delete_fdesc=縀st醩 seguro de querer borrar permanentemente el archivo $1?
delete_efailed=No pude borrar $1 : $2

mkdir_title=Nuevo Directorio
mkdir_dir=Nuevo Directorio:
mkdir_eexists=$1 ya existe
mkdir_efailed=No pude crear directorio: $1
mkdir_eaccess=No est醩 autorizado a crear '$1'

link_title=Crear Enlace
link_from=Enlace de:
link_to=Enlaza con:
link_eexists=$1 ya existe
link_efailed=Error en enlace: $1
link_efrom=No est醩 autorizado a enlazar desde '$1'
link_efollow=No est醩 autorizado a crear enlaces simb髄icos

rename_title=Renombrar $1
rename_old=Nombre antiguo:
rename_new=Nombre nuevo:
rename_ok=Renombrar
rename_eexists=Ya existe un archivo llamado $1
rename_efailed=Error en cambio de nombre: $1
rename_eold=No est醩 autorizado a renombrar '$1'
rename_enew=No est醩 autorizado a renombrar a '$1'

file_type0=Directorio
file_type1=Archivo de texto
file_type2=Archivo de Imagen
file_type3=Archivo binario
file_type4=Archivo
file_type5=Enlace simb髄ico
file_type6=Archivo de dispositivo
file_type7=Tuber韆

view_enormal=S髄o se pueden ver los archivos normales
view_eaccess=No est醩 autorizado a acceder a $1
view_eopen=No pude abrir $1 : $2

paste_ecopy=Debes de cortar o copiar antes de pegar
paste_egone=El archivo copiado $1 ya no existe
paste_eover=$1 no puede ser sobreescrito
paste_eself=No puedes pegar un archivo sobre s mismo
paste_emfailed=No pude Mover: $1
paste_ecfailed=No pude Copiar: $1

over_title=El archivo ya Existe
over_msg=El archivo $1 ya existe. Usa el campo debajo para digitar un nuevo nombre de archivo para el archivo a ser pegado.
over_new=Nuevo nombre de archivo:
over_ok=Ok

upload_efailed=No pude abrir la Carga: $1
upload_title=Cargar Archivo
upload_file=Archivo a Cargar
upload_dir=Cargar en directorio
upload_ok=Carga
upload_conv=緾onvierto l韓eas de DOS?
upload_efile=No se ha seleccionado archivo para cargar.
upload_edir=Directorio de Carga no existe.
upload_eperm=No est醩 autorizado a crear $1
upload_ewrite=No pude escribir en $1 : $2.

find_eaccess=No est醩 autorizado a acceder a $1
find_eexist=$1 no existe en $2
find_edir=$1 no es un directorio de $2

cancel=Cancelar

chmod_eaccess=No est醩 autorizado a acceder a '$1'
chmod_euser=$1 : no exite tal usuario
chmod_egroup=$1 : no exite tal grupo
chmod_elink=error en enlace simb髄ico: $1
chmod_echown=No pude cambiar propietario: $1
chmod_echmod=No pude cambiar permisos: $1

copy_efrom=No est醩 autorizado a copiar desde '$1'
copy_eto=No est醩 autorizado a copiar en '$1'
copy_elink=error en enlace simb髄ico: $1

delete_eaccess=No est醩 autorizado a borrar '$1'

list_eaccess=No est醩 autorizado a acceder a este directorio
list_edir=No pude listar $1 : $2

move_eto=No est醩 autorizado a mover a '$1'
move_afrom=No est醩 autorizado a mover '$1'

acl_user=Acceder a archivo en servidor como usuario
acl_umask=M醩cara de Usario para Nuevos archivos
acl_follow=縎igo siempre enlaces simb髄icos?
acl_dirs=S髄o permitir acceso a directorios

share_title=Compartir
share_samba=Windows
share_nfs=NFS
share_son=Activada compartici髇 de archivos de Windows
share_soff=Desactivada compartici髇 de archivos de Windows
share_writable=縀scribible?
share_available=緼ctu醠mente activa?
share_sheader=Opciones de compartici髇
share_only=S髄amente
share_guest=緼cceso a invitado?
share_comment=Comentario
share_nheader=Opciones de exportaci髇 de NFS
share_non=Compartici髇 de archivos NFS activada
share_noff=Compartici髇 de archivos NFS desactivada
share_desc=Descripci髇
share_ro=M醧uinas S髄o-lectura
share_rw=M醧uinas Lectura-escritura
share_root=M醧uinas de acceso Root
share_none=Ninguna
share_all=Todas
share_listed=Listadas...
share_host=M醧uinas
share_opts=Opciones
share_s0=No fiarse de nadie
share_s1=Fiarse de no-root
share_s2=Fiarse de todos
share_lro=S髄o-lectura
share_lrw=Lectura-escritura

log_create_export=Creada exportaci髇 NFS $1
log_modify_export=Modificada exportaci髇 NFS $1
log_delete_export=Borrada exportaci髇 NFS $1
log_create_share=Creada compartici髇 Samba $1
log_modify_share=Modificada compartici髇 Samba $1
log_delete_share=Borrada compartici髇 Samba $1
log_save=Salvado archivo $1
log_chmod=Cambiado permisos en archivo $1
log_mkdir=Creado directorio $1
log_upload=Descargado archivo $1
log_link=Creado enlace simb髄ico $1 a $2
log_relink=Modificado enlace simb髄ico $1 a $2
log_copy=Copiado archivo $1 a $2
log_move=Movido archivo $1 a $2
log_delete=Borrado archivo $1

search_eaccess=No est醩 autorizado a buscar este directorio
search_title=Hallar archivos
search_ok=Buscar Ahora
search_dir=Buscar directorio
search_match=por archivos que coincidan con
search_user=Perteneciente al usuario
search_group=Perteneciente al grupo
search_any=Cualquiera
search_type=Tipo de archivo
search_types_=Cualquiera
search_types_f=Archivo
search_types_d=Directorio
search_types_l=Enlace simb髄ico
search_types_p=Tuber韆 nombrada
search_size=Medida de archivo
search_more=M醩 de
search_less=Menos de
search_xdev=緽usco montajes pasados?
search_edir=Directorio de b鷖queda sin poner o inv醠ido
search_ematch=Regexp coincidente sin poner
search_euser=Nombre de usuario sin poner
search_egroup=Nombre de grupo sin poner
search_esize=La medida de archivo debe de ser un entero
search_crit=Criterio de b鷖queda
search_list=Resultados de la b鷖queda

 0707010004f461000081a40000000000000002000000013ac038a000001247000000200000000000000000000000000000001300000003reloc/file/lang/fr    index_title=Gestionnaire de Fichier
index_nojava=Ce module n閏essite que java soit en fonction, mais votre fureteur ne le supporte pas

top_open=Ouvrir
top_view=Voir
top_edit=蒬iter
top_refresh=Rafra頲hir
top_info=Information
top_delete=Supprimer
top_new=Nouveau
top_upload=Envoyer
top_rename=Renommer
top_copy=Copier
top_cut=Couper
top_paste=Coller

right_name=Nom
right_size=Taille
right_user=Usager
right_group=Groupe
right_date=Date

edit_enormal=Seulement les fichiers normaux peuvent 阾re 閐iter
edit_title=蒬iter '$1'
edit_title2=Cr閑r un fichier
edit_filename=Nom de fichier:
edit_eover='$1' ne peut 阾re 閏rit par-dessus
edit_esave=Impossible d'ouvrir le fichier '$1'
edit_eaccess=Vous n'阾es pas autoris  sauver '$1'

info_file=Fichier
info_path=Chemin:
info_type=Type:
info_size=Taille:
info_mod=Modifi:
info_link=Liens vers:
info_perms=Permissions
info_user=Usager:
info_group=Groupe:
info_other=Autre:
info_sticky=Collant:
info_sticky2=Seulement son propri閠aire peut effacer un fichier
info_own=Propri閠aire
info_setuid=SUID:
info_setuid2=Ex閏uter comme usager
info_setgid=SGID:
info_setgid2=Les fichiers h閞ite du groupe
info_setgid3=Ex閏uter comme groupe
info_apply=Appliquer les changements 
info_apply1=Ce r閜ertoire seulement
info_apply2=Ce r閜ertoire et  ses fichiers
info_apply3=Ce r閜ertoire et tout ses sous-r閜ertoires
info_efailed=Impossible de mettre  jour '$1' : $2
info_read=Lire
info_write=蒫rire
info_list=Lister
info_exec=Ex閏uter

delete_dtitle=Supprimer un r閜ertoire
delete_ftitle=Supprimer un fichier
delete_ddesc=Vous 阾es sur que vous voulez supprimer d閒initivement le r閜ertoire '$1' et tout son contenu?
delete_fdesc=Vous 阾es sur que vous voulez supprimer d閒initivement le fichier $1?
delete_efailed=Impossible de supprimer '$1' : $2

mkdir_title=Nouveau R閜ertoire
mkdir_dir=Nouveau r閜ertoire:
mkdir_eexists='$1' existe d閖
mkdir_efailed=Impossible de cr閑r le r閜ertoire : $1
mkdir_eaccess=Vous n'阾es pas autoris  cr閑r '$1'

link_title=Cr閑r un Lien Symbolique
link_from=Lien de:
link_to=Lien vers:
link_eexists='$1' Existe d閖
link_efailed=Impossible de faire le lien symbolique '$1'
link_efrom=Vous n'阾es pas autoris  cr閑r aucun lien symbolique de '$1'
link_efollow=Vous n'阾es pas autoris  cr閑r aucun lien symbolique

rename_title=Renommer '$1'
rename_old=Ancien nom:
rename_new=Nouveau nom:
rename_ok=Renommer
rename_eexists=Un fichier appel '$1' existe d閖
rename_efailed=Impossible de renommer '$1'
rename_eold=Vous n'阾es pas autoris  renommer '$1'
rename_enew=Vous n'阾es pas autoris  renommer pour '$1'

file_type0=R閜ertoire
file_type1=Fichier texte
file_type2=Fichier image
file_type3=Fichier binaire
file_type4=Fichier
file_type5=Lien symbolique
file_type6=Fichier de p閞iph閞ique
file_type7=Tuyau

view_enormal=Seulement un fichier normal peut 阾re visionn
view_eaccess=Vous n'阾es pas autoris d'acc閐er  '$1'
view_eopen=Impossible d'ouvrir '$1' : $2

paste_ecopy=Vous devez copier ou couper avant de coller
paste_egone=Le fichier copi '$1' n'existe plus
paste_eover='$1' ne peut 阾re 閏ras
paste_eself=Vous ne pouvez coller un fichier par-dessus lui-m阭e
paste_emfailed=Impossible de d閜lacer '$1'
paste_ecfailed=Impossible de copier '$1'

upload_efailed=Impossible d'ouvrir l'envoie '$1'
upload_title=Envoie de Fichier
upload_file=Fichier  envoyer
upload_dir=Envoyer dans un r閜ertoire
upload_ok=Envoie
upload_conv=Convertir les retours de chariot en format DOS?
upload_efile=Aucun fichier n'ont 閠 s閘ectionn pour envoyer.
upload_edir=Le r閜ertoire d'envoi n'existe pas.
upload_eperm=Vous n'阾es pas autoris  cr閑r '$1'
upload_ewrite=Impossible d'閏rire dans '$1' : $2

find_eaccess=Vous n'阾es pas autoris d'acc閐er  '$1'
find_eexist='$1' n'existe pas dans '$2'
find_edir='$1' n'est pas un r閜ertoire dans '$2'

cancel=Annuler

chmod_eaccess=Vous n'阾es pas autoris d'acc閐er  '$1'
chmod_euser=$1 : usager inexistant
chmod_egroup=$1 : groupe inexistant
chmod_elink=lien symbolique impossible : $1
chmod_echown=Impossible de changer de propri閠aire : $1
chmod_echmod=Impossible de changer de permission : $1

copy_efrom=Vous n'阾es pas autoris  copier de '$1'
copy_eto=Vous n'阾es pas autoris  copier vers '$1'
copy_elink=lien symbolique impossible : $1

delete_eaccess=Vous n'阾es pas autoris  supprimer '$1'

list_eaccess=Vous n'阾es pas autoris d'acc閐er ce r閜ertoire

move_eto=Vous n'阾es pas autoris  d閜lacer vers '$1'
move_afrom=Vous n'阾es pas autoris  d閜lacer '$1'

acl_user=Acc閐er au syst鑝e de fichier en 閠ant un usager
acl_umask=D閙asquer tout nouveau fichier
acl_follow=Toujours suivre les liens symboliques?
acl_dirs=Seulement acc鑣 aux r閜ertoires

 0707010004f462000081a40000000000000002000000013ac038a000001102000000200000000000000000000000000000001300000003reloc/file/lang/it    index_title=File Manager
index_nojava=Questo modulo richiede java per funzionare, ma il tuo browser
non supporta java

top_open=Apri
top_view=Visualizza
top_edit=Modifica
top_refresh=Aggiorna
top_info=Info
top_delete=Elimina
top_new=Nuovo
top_upload=Upload
top_rename=Rinomina
top_copy=Copia
top_cut=Taglia
top_paste=Incolla

right_name=Nome
right_size=Dimensione
right_user=Utente
right_group=Gruppo
right_date=Data

edit_enormal=Solo i file normali possono essere modificati
edit_title=Modifica di $1
edit_title2=Creazione file
edit_filename=Nome file:
edit_eover=$1 non puo' essere sovrascritto
edit_esave=Errore nel salvataggio del file : $1
edit_eaccess=Non hai i permessi per salvare '$1'

info_file=File
info_path=Percorso:
info_type=Tipo:
info_size=Dimensione:
info_mod=Modificato:
info_link=Collegamento a:
info_perms=Permessi
info_user=Utente:
info_group=Gruppo:
info_other=Altro:
info_sticky=Sticky:
info_sticky2=Solo i possessori possono eliminare i files
info_own=Possesso
info_setuid=Setuid:
info_setuid2=Esegui come utente
info_setgid=Setgid:
info_setgid2=Files inherit group
info_setgid3=Esegui come gruppo
info_apply=Applica le modifiche a
info_apply1=Solo questa directory
info_apply2=Questa directory ed i suoi files
info_apply3=Questa directory e tutte le sottodirectory
info_efailed=Errore nell'aggiornamento di $1 : $2
info_read=Lettura
info_write=Scrittura
info_list=Sfoglia
info_exec=Esecuzione

delete_dtitle=Elimina directory
delete_ftitle=Elimina file
delete_ddesc=Sei sicuro di voler eliminare permanentemente la directory $1 e
tutto il suo contenuto?
delete_fdesc=Sei sicuro di voler eliminare permanentemente il file $1 ?
delete_efailed=Errore nell'eliminazione di $1 : $2

mkdir_title=Nuova Directory
mkdir_dir=Nuova directory:
mkdir_eexists=$1 esiste gia'
mkdir_efailed=Creazione della directory fallita: $1
mkdir_eaccess=Non hai i permessi per creare '$1'

link_title=Crea collegamento
link_from=Collegamento da:
link_to=Collegamento a:
link_eexists=$1 esiste gia'
link_efailed=Collegamento fallito : $1
link_efrom=Non hai i permessi per fare un collegamento da '$1'
link_efollow=Non hai i permessi per creare collegamenti simbolici

rename_title=Rinomina $1
rename_old=Vecchio nome:
rename_new=Nuovo nome:
rename_ok=Rinomina
rename_eexists=Un file chiamato $1 esiste gia'
rename_efailed=Rinomina fallita: $1
rename_eold=Non hai i permessi per rinominare '$1'
rename_enew=Non hai i permessi per rinominare in '$1'

file_type0=Directory
file_type1=File di testo
file_type2=File di immagine
file_type3=File binario
file_type4=File
file_type5=Collegamento simbolico
file_type6=File di periferica
file_type7=Pipe

view_enormal=Solo i file normali possono essere visualizzati
view_eaccess=Non hai i permessi per accedere a $1
view_eopen=Errore nell'apertura di $1 : $2

paste_ecopy=Devi tagliare o copiare, prima di incollare
paste_egone=Il file copiato $1 non esiste piu'
paste_eover=$1 non puo' essere sovrascritto
paste_eself=Non puoi incollare un file su se stesso
paste_emfailed=Spostamento fallito: $1
paste_ecfailed=Copia fallita: $1

upload_efailed=Errore nell'apertura dell'upload : $1
upload_title=Upload File
upload_file=File da trasferire
upload_dir=Upload nella directory
upload_ok=Upload
upload_conv=Converti i 'tornaacapo' DOS?
upload_efile=Non hai selezionato il file da trasferire.
upload_edir=La directory di trasferimento non esiste.
upload_eperm=Non hai i permessi per creare $1
upload_ewrite=Errore nella scrittura di $1 : $2.

find_eaccess=Non hai i permessi per accedere a $1
find_eexist=$1 non esiste in $2
find_edir=$1 non e' una directory in $2

cancel=Annulla

chmod_eaccess=Non hai i permessi per accedere a '$1'
chmod_euser=$1 : utente inesistente
chmod_egroup=$1 : gruppo inesistente
chmod_elink=symlink fallito : $1
chmod_echown=chown fallito : $1
chmod_echmod=chmod fallito : $1

copy_efrom=Non hai i permessi per copiare da '$1'
copy_eto=Non hai i permessi per copiare su '$1'
copy_elink=symlink fallito : $1

delete_eaccess=Non hai i permessi per eliminare '$1'

list_eaccess=Non hai i permessi per accedere a questa directory

move_eto=Non hai i permessi per spostare su '$1'
move_afrom=Non hai i permessi per spostare '$1'

acl_user=Accedi ai file sul server come utente
acl_umask=Umask per i nuovi files
acl_follow=Segui sepre i symlinks?
acl_dirs=Permetti solo l'accesso alle directory


  0707010004f463000081a40000000000000002000000013ac038a000002c11000000200000000000000000000000000000001300000003reloc/file/lang/pl    index_title=Zarz眃ca plik體
index_nojava=Ten modu wymaga do swojego dzia砤nia javy, natomiast Twoja przegl眃arka javy nie obs硊guje

# top_open=Otw髍z
top_open=Otworz
top_view=Obejrzyj
top_edit=Modyfikuj
# top_refresh=Od秝ie
top_refresh=Odswiez
top_info=Informacje
# top_delete=Usu
top_delete=Usun
top_new=Nowy
# top_upload=Prze秎ij
top_upload=Przeslij
# top_rename=Zmie nazw
top_rename=Zmien nazwe
top_copy=Kopiuj
top_cut=Wytnij
top_paste=Wklej
# top_share=Udost阷nianie
top_share=Udostepnianie
top_search=Szukaj

right_name=Nazwa
right_size=Rozmiar
# right_user=W砤禼iciel
right_user=Wlasciciel
right_group=Grupa
right_date=Data

# edit_enormal=Modyfikowa mo縩a tylko zwyk砮 pliki
edit_enormal=Modyfikowac mozna tylko zwykle pliki
edit_title=Modyfikacja $1
edit_title2=Tworzenie pliku
edit_filename=Nazwa pliku:
# edit_eover=$1 nie mo縠 by nadpisany
edit_eover=$1 nie moze byc nadpisany
# edit_esave=Nie uda硂 si zachowa pliku : $1
edit_esave=Nie udalo sie zachowac pliku : $1
# edit_eaccess=Nie masz uprawnie do zachowania '$1'
edit_eaccess=Nie masz uprawnien do zachowania '$1'

info_file=Plik
# info_path=ie縦a:
info_path=Sciezka:
info_type=Typ:
info_size=Rozmiar:
info_mod=Zmieniony:
# info_link=Dowi眤anie do:
info_link=Dowiazanie do:
info_perms=Uprawnienia
# info_user=W砤禼iciel:
info_user=Wlasciciel:
info_group=Grupa:
info_other=Inni:
info_sticky=Sticky:
# info_sticky2=Tylko w砤禼iciele mog usuwa pliki
info_sticky2=Tylko wlasciciele moga usuwac pliki
# info_own=Prawa w砤sno禼i
info_own=Prawa wlasnosci
info_setuid=Setuid:
# info_setuid2=Uruchom jako u縴tkownik
info_setuid2=Uruchom jako uzytkownik
info_setgid=Setgid:
# info_setgid2=Pliki dziedzicz grup
info_setgid2=Pliki dziedzicza grupe
info_setgid3=Uruchom jako grupa
info_apply=Zastosuj zmiany do
info_apply1=tylko katalogu
# info_apply2=katalogu i zawartych w nim plik體
info_apply2=katalogu i zawartych w nim plikow
info_apply3=katalogu wraz z podkatalogami
# info_efailed=Nie uda硂 sie zaktualizowa $1 : $2
info_efailed=Nie udalo sie zaktualizowac $1 : $2
info_read=Odczyt
info_write=Zapis
# info_list=Przegl眃anie
info_list=Przegladanie
info_exec=Uruchamianie

delete_dtitle=Usu katalog
delete_ftitle=Usu plik
# delete_ddesc=Czy jeste pewien, 縠 chcesz nieodwracalnie usun辨 katalog $1 wraz z ca潮 zawarto禼i?
delete_ddesc=Czy jestes pewien, ze chcesz nieodwracalnie usunac katalog $1 wraz z cala zawartoscia?
# delete_fdesc=Czy jeste pewien, 縠 chcesz nieodwracalnie usun辨 plik $1 ?
delete_fdesc=Czy jestes pewien, ze chcesz nieodwracalnie usunac plik $1 ?
# delete_efailed=Nie uda硂 si usun辨 $1 : $2
delete_efailed=Nie udalo sie usunac $1 : $2

mkdir_title=Nowy katalog
mkdir_dir=Nowy katalog:
# mkdir_eexists=$1 ju istnieje
mkdir_eexists=$1 juz istnieje
# mkdir_efailed=Nie uda硂 sie utworzy katalogu : $1
mkdir_efailed=Nie udalo sie utworzyc katalogu : $1
# mkdir_eaccess=Nie masz uprawnie do utworzenia '$1'
mkdir_eaccess=Nie masz uprawnien do utworzenia '$1'

link_title=Utw髍z dowi眤anie
link_from=Nazwa dowi眤ania:
link_to=Dowi眤anie do:
# link_eexists=$1 ju istnieje
link_eexists=$1 juz istnieje
# link_efailed=Nie uda硂 si utworzy dowi眤ania : $1
link_efailed=Nie udalo sie utworzyc dowiazania : $1
# link_efrom=Nie masz uprawnie do utworzenia dowi眤ania '$1'
link_efrom=Nie masz uprawnien do utworzenia dowiazania '$1'
# link_efollow=Nie masz uprawnie do tworzenia dowi眤a symbolicznych
link_efollow=Nie masz uprawnien do tworzenia dowiazan symbolicznych

rename_title=Zmie nazw $1
rename_old=Stara nazwa:
rename_new=Nowa nazwa:
# rename_ok=Zmie nazw
rename_ok=Zmien nazwe
# rename_eexists=Plik o nazwie $1 ju istnieje
rename_eexists=Plik o nazwie $1 juz istnieje
# rename_efailed=Nie uda硂 si zmieni nazwy : $1
rename_efailed=Nie udalo sie zmienic nazwy : $1
# rename_eold=Nie masz uprawnie do zmiany nazwy '$1'
rename_eold=Nie masz uprawnien do zmiany nazwy '$1'
# rename_enew=Nie masz uprawnie do zmiany nazwy na '$1'
rename_enew=Nie masz uprawnien do zmiany nazwy na '$1'

file_type0=Katalog
file_type1=Plik tekstowy
file_type2=Plik Image
file_type3=Plik binarny
file_type4=Plik
# file_type5=Dowi眤anie symboliczne
file_type5=Dowiazanie symboliczne
# file_type6=Plik urz眃zenia
file_type6=Plik urzadzenia
file_type7=plik FIFO

# view_enormal=Mo縩a ogl眃a tylko zwyk砮 pliki
view_enormal=Mozna ogladac tylko zwykle pliki
# view_eaccess=Nie masz prawa dost阷u do $1
view_eaccess=Nie masz prawa dostepu do $1
# view_eopen=Nie uda硂 si otworzy $1 : $2
view_eopen=Nie udalo sie otworzyc $1 : $2

# paste_ecopy=Aby wklei musisz wcze秐iej co skopiowa lub wyci辨
paste_ecopy=Aby wkleic musisz wczesniej cos skopiowac lub wyciac
# paste_egone=Kopiowany plik $1 ju nie istnieje
paste_egone=Kopiowany plik $1 juz nie istnieje
# paste_eover=Nie mo縩a nadpisa $1
paste_eover=Nie mozna nadpisac $1
# paste_eself=Nie mo縠sz wklei pliku w miejsce jego samego
paste_eself=Nie mozesz wkleic pliku w miejsce jego samego
# paste_emfailed=Nie uda硂 si przesun辨 : $1
paste_emfailed=Nie udalo sie przesunac : $1
# paste_ecfailed=Nie uda硂 si skopiowa : $1
paste_ecfailed=Nie udalo sie skopiowac : $1

over_title=Plik istnieje
# over_msg=Plik $1 ju istnieje. Podaj now nazw dla tworzonego pliku korzystaj眂 z pola poni縠j.
over_msg=Plik $1 juz istnieje. Podaj nowa nazwe dla tworzonego pliku korzystajac z pola ponizej.
over_new=Nowa nazwa pliku:
over_ok=OK

# upload_efailed=Nie uda硂 si otworzy przesy砤nia : $1
upload_efailed=Nie udalo sie otworzyc przesylania : $1
# upload_title=Prze秎ij plik
upload_title=Przeslij plik
# upload_file=Plik do przes砤nia
upload_file=Plik do przeslania
# upload_dir=Prze秎ij do katalogu
upload_dir=Przeslij do katalogu
# upload_ok=Prze秎ij
upload_ok=Przeslij
# upload_conv=Przekszta砪i DOS-owe ko馽e linii?
upload_conv=Przekszta砪ic DOS-owe konce linii?
# upload_efile=Nie podano pliku do przes砤nia.
upload_efile=Nie podano pliku do przeslania.
# upload_edir=Katalog, do kt髍ego ma nast眕i przes砤nie nie istnieje.
upload_edir=Katalog, do ktorego ma nastapic przeslanie nie istnieje.
# upload_eperm=Nie masz uprawnie do utworzenia $1
upload_eperm=Nie masz uprawnien do utworzenia $1
# upload_ewrite=Nie uda硂 si zapisa w $1 : $2.
upload_ewrite=Nie udalo sie zapisac w $1 : $2.

# find_eaccess=Nie masz prawa dost阷u do $1
find_eaccess=Nie masz prawa dostepu do $1
find_eexist=$1 nie istnieje w $2
find_edir=$1 nie jest podkatalogiem $2

cancel=Rezygnuj

# chmod_eaccess=Nie masz prawa dost阷u do '$1'
chmod_eaccess=Nie masz prawa dostepu do '$1'
# chmod_euser=$1 : nie ma takiego u縴tkownika
chmod_euser=$1 : nie ma takiego uzytkownika
chmod_egroup=$1 : nie ma takiej grupy
# chmod_elink=nie uda硂 si utworzy dowi眤ania symbolicznego : $1
chmod_elink=nie udalo sie utworzyc dowiazania symbolicznego : $1
# chmod_echown=nie uda硂 si zmieni w砤禼iciela : $1
chmod_echown=nie udalo sie zmienic w砤sciciela : $1
# chmod_echmod=nie uda硂 si zmieni uprawnie : $1
chmod_echmod=nie udalo sie zmienic uprawnien : $1

# copy_efrom=Nie masz uprawnie do kopiowania '$1'
copy_efrom=Nie masz uprawnien do kopiowania '$1'
# copy_eto=Nie masz uprawnie do kopiowania do '$1'
copy_eto=Nie masz uprawnien do kopiowania do '$1'
# copy_elink=nie uda硂 si utworzy dowi眤ania symbolicznego : $1
copy_elink=nie udalo sie utworzyc dowiazania symbolicznego : $1

# delete_eaccess=Nie masz uprawnie do usuni阠ia '$1'
delete_eaccess=Nie masz uprawnien do usuniecia '$1'

# list_eaccess=Nie masz prawa dost阷u do tego katalogu
list_eaccess=Nie masz prawa dostepu do tego katalogu
# list_edir=Nie uda硂 si przejrze $1 : $2
list_edir=Nie udalo sie przejrzec $1 : $2

# move_eto=Nie masz uprawnie do przenoszenia do '$1'
move_eto=Nie masz uprawnien do przenoszenia do '$1'
# move_afrom=Nie masz uprawnie do przeniesienia '$1'
move_afrom=Nie masz uprawnien do przeniesienia '$1'

acl_user=Dost阷 do plik體 na serwerze z prawami u縴tkownika
acl_umask=Umaska dla nowych plik體
acl_follow=Zawsze 秎edzi dowi眤ania symboliczne?
acl_dirs=Pozwoli jedynie na dost阷 do katalog體

share_title=Udost阷nianie
share_samba=Windows
share_nfs=NFS
# share_son=Udost阷nianie plik體 dla Windows w潮czone
share_son=Udostepnianie plikow dla Windows wlaczone
# share_soff=Udost阷nianie plik體 dla Windows wy潮czone
share_soff=Udostepnianie plikow dla Windows wylaczone
share_writable=Prawa zapisu?
share_available=Aktualnie czynne?
# share_sheader=Opcje wsp蟪dzielenia
share_sheader=Opcje wspoldzielenia
# share_only=Wy潮cznie
share_only=Wylacznie
# share_guest=Dost阷 go禼inny?
share_guest=Dostep goscinny?
share_comment=Uwagi
# share_nheader=Opcje udost阷niania NFS
share_nheader=Opcje udostepniania NFS
# share_non=Udost阷nianie NFS w潮czone
share_non=Udostepnianie NFS wlaczone
# share_noff=Udost阷nianie NFS wy潮czone
share_noff=Udostepnianie NFS wylaczone
share_desc=Opis
# share_ro=Hosty z dost阷em tylko do odczytu
share_ro=Hosty z dostepem tylko do odczytu
# share_rw=Hosty z dost阷em do zapisu
share_rw=Hosty z dostepem do zapisu
# share_root=Hosty z dost阷em roota
share_root=Hosty z dostepem roota
share_none=Brak
share_all=Wszystkie
share_listed=Wymienione..
share_host=Hosty
share_opts=Opcje
share_s0=Nie ufaj nikomu
# share_s1=Ufaj wszystkim pr骳z roota
share_s1=Ufaj wszystkim procz roota
share_s2=Ufaj wszystkim
share_lro=Tylko do odczytu
share_lrw=Odczyt i zapis

log_create_export=Utworzono udost阷nianie NFS $1
log_modify_export=Zmieniono udost阷nianie NFS $1
log_delete_export=Usuni阾o udost阷nianie NFS $1
log_create_share=Utworzono zas骲 Samby $1
log_modify_share=Zmieniono zas骲 Samby $1
log_delete_share=Usuni阾o zas骲 Samby $1
log_save=Zachowano plik $1
log_chmod=Zmieniono uprawnienia dla pliku $1
log_mkdir=Utworzono katalog $1
log_upload=Przes砤no plik $1
log_link=Utworzono dowi眤anie symboliczne $1 do $2
log_relink=Zmieniono dowi眤anie symboliczne $1 do $2
log_copy=Skopiowano plik $1 jako $2
log_move=Przeniesiono plik $1 do $2
log_delete=Usuni阾o plik $1

# search_eaccess=Nie masz uprawnie do przeszukiwania tego katalogu
search_eaccess=Nie masz uprawnien do przeszukiwania tego katalogu
search_title=Szukaj plik體
search_ok=Szukaj teraz
search_dir=Szukaj w katalogu
# search_match=Plik體 wg wzorca
search_match=Plikow wg wzorca
# search_user=Nale勘cych do u縴tkownika
search_user=Nalezacych do uzytkownika
# search_group=Nale勘cych do grupy
search_group=Nalezacych do grupy
search_any=Dowolny
search_type=Rodzaj pliku
search_types_=Dowolny
# search_types_f=Zwyk硑 plik
search_types_f=Zwykly plik
search_types_d=Katalog
# search_types_l=Dowi眤anie symboliczne
search_types_l=Dowiazanie symboliczne
search_types_p=Nazwane FIFO
search_size=Rozmiar pliku
# search_more=Wi阫szy ni
search_more=Wiekszy niz
# search_less=Mniejszy ni
search_less=Mniejszy niz
# search_xdev=Przeszukiwa inne systemy plik體?
search_xdev=Przeszukiwac inne systemy plikow?
search_edir=Nie podany lub niepoprawny katalog przeszukiwania
# search_ematch=Brak wyra縠nia regularnego do dopasowania
search_ematch=Brak wyrazenia regularnego do dopasowania
# search_euser=Nie podano nazwy u縴tkownika
search_euser=Nie podano nazwy uzytkownika
search_egroup=Nie podano nazwy grupy
# search_esize=Rozmiar pliku musi by liczb ca砶owit
search_esize=Rozmiar pliku musi byc liczba calkowita
search_crit=Kryteria szukania
search_list=Wyniki szukania
   0707010004f48f000081a40000000000000002000000013ac038a0000011ac000000200000000000000000000000000000001300000003reloc/file/lang/pt    index_title=Administrador de Ficheiros
index_nojava=Este m骴ulo requer java para funcionar, mas o seu navegador n鉶 suporta java

top_open=Abrir
top_view=Ver
top_edit=Editar
top_refresh=Refrescar
top_info=Informa珲es
top_delete=Apagar
top_new=Novo
top_upload=Carregar
top_rename=Renomear
top_copy=Copiar
top_cut=Cortar
top_paste=Colar

right_name=Nome
right_size=Tamanho
right_user=Utilizador
right_group=Grupo
right_date=Data

edit_enormal=Apenas ficheiros normais podem ser editados
edit_title=A editar $1
edit_title2=A criar ficheiro
edit_filename=Nome do ficheiro:
edit_eover=$1 n鉶 pode ser sobrescrito
edit_esave=Erro ao guardar ficheiro : $1
edit_eaccess=Voc n鉶 est autorizado para guardar '$1'

info_file=Ficheiro
info_path=Caminho:
info_type=Tipo:
info_size=Tamanho:
info_mod=Modificado:
info_link=Enlace com:
info_perms=Permiss鮡s
info_user=Utilizador:
info_group=Grupo:
info_other=Outro:
info_sticky=Restri玢o:
info_sticky2=Apenas os propriet醨ios podem apagar ficheiros
info_own=Propriedade
info_setuid=Colocar UID:
info_setuid2=Executar como utilizador
info_setgid=Colocar GID:
info_setgid2=Ficheiros herdados do grupo
info_setgid3=Executar como grupo
info_apply=Aplicar altera珲es a
info_apply1=Este direct髍io apenas
info_apply2=Este direct髍io e os seus ficheiros
info_apply3=Este direct髍io e todos os subdirect髍ios
info_efailed=Erro ao actualizar $1 : $2
info_read=Leitura
info_write=Escrita
info_list=Lista
info_exec=Execu玢o

delete_dtitle=Apagar direct髍io
delete_ftitle=Apagar ficheiro
delete_ddesc=Tem a certeza que quer permanentemente apagar o direct髍io $1 e todo o seu conte鷇o?
delete_fdesc=Tem a certeza que quer apagar permanentemente o ficheiro $1 ?
delete_efailed=Erro ao apagar $1 : $2

mkdir_title=Novo Direct髍io
mkdir_dir=Novo direct髍io:
mkdir_eexists=$1 j existe
mkdir_efailed=Erro na cria玢o de direct髍io : $1
mkdir_eaccess=Voc n鉶 est autorizado para criar '$1'

link_title=Criar Enlace
link_from=Enlace de:
link_to=Enlace com:
link_eexists=$1 j existe
link_efailed=Erro no enlace : $1
link_efrom=Voc n鉶 est autorizado para criar enlaces de '$1'
link_efollow=Voc n鉶 est autorizado para criar enlaces simb髄icos

rename_title=Renomear $1
rename_old=Nome antigo:
rename_new=Nome novo:
rename_ok=Renomear
rename_eexists=J existe um ficheiro denominado $1
rename_efailed=Erro na renomea玢o : $1
rename_eold=Voc n鉶 est autorizado para renomear '$1'
rename_enew=Voc n鉶 est autorizado para renomear para '$1'

file_type0=Direct髍io
file_type1=Ficheiro de texto
file_type2=Ficheiro de imagem
file_type3=Ficheiro bin醨io
file_type4=Ficheiro
file_type5=Enlace simb髄ico
file_type6=Ficheiro de dispositivo
file_type7=Tubo

view_enormal=Apenas ficheiros normais podem ser vistos
view_eaccess=Voc n鉶 est autorizado para aceder a $1
view_eopen=Erro ao abrir $1 : $2

paste_ecopy=Tem de cortar ou copiar primeiro antes de colar
paste_egone=O ficheiro cpoiado $1 j n鉶 existe
paste_eover=$1 n鉶 pode ser sobrescrito
paste_eself=N鉶 pode colar um ficheiro sobre si mesmo
paste_emfailed=Erro ao mover : $1
paste_ecfailed=Erro ao copiar : $1

upload_efailed=Erro ao abrir ficheiro carregado : $1
upload_title=Carregar Ficheiro
upload_file=Ficheiro paa carregar
upload_dir=Carregar para o direct髍io
upload_ok=Carregar
upload_conv=Converter linhas de DOS?
upload_efile=N鉶 foram seleccionados ficheiros para carregar.
upload_edir=Direct髍io de carga n鉶 existe.
upload_eperm=Voc n鉶 est autorizado para criar $1
upload_ewrite=Erro ao escrever para $1 : $2.

find_eaccess=Voc n鉶 est autorizado para aceder a $1
find_eexist=$1 n鉶 existe em $2
find_edir=$1 n鉶  um direct髍io de $2

cancel=Cancelar

chmod_eaccess=Voc n鉶 est autorizado para aceder a '$1'
chmod_euser=$1 : n鉶 existe tal utilizador
chmod_egroup=$1 : n鉶 existe tal grupo
chmod_elink=erro no enlace simb髄ico : $1
chmod_echown=erro na altera玢o de propriet醨io : $1
chmod_echmod=erro na altera玢o de permiss鮡s : $1

copy_efrom=Voc n鉶 est autorizado para copiar de '$1'
copy_eto=Voc n鉶 est autorizado para copiar para '$1'
copy_elink=erro no enlace simb髄ico : $1

delete_eaccess=Voc n鉶 est autorizado para apagar '$1'

list_eaccess=Voc n鉶 est autorizado para aceder a este direct髍io

move_eto=Voc n鉶 est autorizado para mover para '$1'
move_afrom=Voc n鉶 est autorizado para mover '$1'

acl_user=Aceder a ficheiros no servidor como utilizador
acl_umask=M醩cara de utilizador para novos ficheiros
acl_follow=Seguir sempre enlaces simb髄icos?
acl_dirs=Apenas permitir acesso a direct髍ios
0707010004f490000081a40000000000000002000000013ac038a0000010d1000000200000000000000000000000000000001600000003reloc/file/lang/ru_RU top_delete=愉嚯栩
info_apply=橡桧螯 桤戾礤龛 潆
info_perms=橡噔
info_file=脏殡
view_enormal=翌朦觐 钺睇 羿殡 祛骓 镳铖爨蝠桠囹
top_upload=青沭箸栩
edit_esave=湾 祛泱 耦躔囗栩 羿殡  : $1
upload_ewrite=硒栳赅 镳 玎镨耔  $1 : $2.
chmod_elink=铠栳赅 镳 耦玟囗梃 耔焘铍梓羼觐 耨觇 : $1
upload_ok=青沭箸栩
view_eaccess=锣 礤 疣琊屮屙 漕耱箫  $1
info_group=灭箫镟:
edit_title2=杨玟囗桢 羿殡
top_info=软纛
move_afrom=锣 礤 疣琊屮屙 镥疱戾螯 '$1'
link_efailed=硒栳赅 镳 耦玟囗梃 耨觇 : $1
info_setuid2=蔓镱腠螯 赅 镱朦珙忄蝈朦
chmod_euser=$1 : 礤 蜞觐泐 镱朦珙忄蝈
link_efrom=锣 礤 疣琊屮屙 耦玟噔囹 耨牦 铗 '$1'
info_mod=如戾腭:
right_date=泥蜞
copy_efrom=锣 礤 疣琊屮屙 觐镨痤忄龛 桤 '$1'
info_sticky2=翌朦觐 怆噤咫 祛泱 箐嚯螯 羿殡
rename_old=羊囵铄 桁:
find_eaccess=锣 礤 疣琊屮屙 漕耱箫  $1
mkdir_eexists=$1 箧 耋耱怏弪
upload_dir=青沭箧囹  赅蜞腩
rename_enew=锣 礤 疣琊屮屙 镥痂戾眍恹忄螯  '$1'
find_edir=$1 礤 怆弪 赅蜞腩泐  $2
upload_efile=湾 恹狃囗 羿殡 潆 玎沭箸觇
info_type=诣:
info_setuid=Setuid:
right_group=灭箫镟
upload_efailed=硒栳赅 镳 铗牮梃 玎沭箸觇 : $1
top_cut=蔓疱玎螯
info_read=昨屙桢
acl_user=念耱箫  羿殡囔 磬 皴疴屦 赅 镱朦珙忄蝈朦
paste_ecopy=蔓 漕腈睇 恹疱玎螯 桦 觐镨痤忄螯 镥疱 怦蜞怅铋
info_exec=蔓镱腠屙桢
delete_ddesc=蔓 筲屦屙, 黩 恹 躅蜩蝈 徨玮铉怵囹眍 箐嚯栩 赅蜞腩 $1  怦 邈 耦溴疰桁铄?
info_link=疡赅 磬:
link_to=疡赅 潆:
info_size=朽珈屦:
info_path=象螯:
copy_eto=锣 礤 疣琊屮屙 觐镨痤忄龛  '$1'
rename_ok=襄疱桁屙钼囹
chmod_egroup=$1 : 礤 蜞觐 沭箫稃
info_own=码噤咫弼
upload_conv=暑礅屦蜩痤忄螯 镥疱忸潲 耱痤 DOS?
cancel=橡屦忄螯
info_list=扬桉铌
index_nojava=泥眄 祛潴朦 蝠遽箦 镱滗屦骊 java 潆 疣犷螓, 眍 忄 狃囿珏 礤 镱滗屦骅忄弪 java
paste_eover=$1 礤 祛驽 猁螯 镥疱镨襦
info_user=项朦珙忄蝈朦:
delete_fdesc=蔓 筲屦屙, 黩 恹 躅蜩蝈 徨玮铉怵囹眍 箐嚯栩 羿殡 $1 ?
top_open=悟牮
edit_title=绣溧牝桊钼囗桢 $1
paste_egone=暑镨痼屐 羿殡 $1 犷朦 礤 耋耱怏弪
top_paste=埋蜞忤螯
chmod_echmod=铠栳赅 镳 耢屙 疱骅爨 漕耱箫 : $1
edit_filename=褥 羿殡:
link_eexists=$1 箧 耋耱怏弪
edit_enormal=翌朦觐 钺睇 羿殡 祛泱 猁螯 铗疱溧牝桊钼囗
info_setgid2=脏殡 磬耠邃簋 沭箫矬
info_setgid3=蔓镱腠螯 赅 沭箫镟
top_copy=暑镨痤忄螯
edit_eaccess=锣 礤 疣琊屮屙 耦躔囗螯  '$1'
right_name=褥
rename_efailed=硒栳赅 镳 镥痂戾眍忄龛 : $1
upload_edir=枢蜞腩 潆 玎沭箸觇 礤 耋耱怏弪.
rename_new=皖忸 桁:
top_view=橡铖祛蝠
delete_dtitle=愉嚯栩 赅蜞腩
link_from=疡赅 铗:
index_title=脏殡钼 体礤滏屦
file_type0=枢蜞腩
file_type1=义犟蝾恹 羿殡
file_type2=灭圄梓羼觇 羿殡
file_type3=凌磬痦 羿殡
file_type4=脏殡
file_type5=谚焘铍梓羼赅 耨赅
file_type6=脏殡 篑蝠铋耱忄
file_type7=枢磬
info_sticky=髓矬麝:
upload_title=青沭箸栩 脏殡
top_edit=绣溧牝
upload_eperm=锣 礤 疣琊屮屙 耦玟噔囹  $1
move_eto=锣 礤 疣琊屮屙 镥疱戾螯  '$1'
paste_eself=蔓 礤 祛驽蝈 怦蜞忤螯 羿殡 镱忮瘐 襦祛泐 皴
copy_elink=铠栳赅 镳 耦玟囗梃 耔焘铍梓羼觐 耨觇 : $1
chmod_echown=铠栳赅 镳 耢屙 怆噤咫 : $1
acl_umask=Umask 潆 眍恹 羿殡钼
mkdir_dir=皖恹 赅蜞腩:
info_other=橡铟桢:
mkdir_title=皖恹 枢蜞腩
delete_ftitle=愉嚯栩 羿殡
find_eexist=$1 礤 耋耱怏弪  $2
right_size=朽珈屦
edit_eover=$1 礤 祛驽 猁螯 镥疱镨襦
paste_emfailed=硒栳赅 镳 镥疱戾龛 : $1
link_title=杨玎龛 疡觇
info_apply1=蒡钽 赅蜞腩汔
info_apply2=蒡钽 赅蜞腩汔  邈 羿殡钼
info_apply3=蒡钽 赅蜞腩汔  怦艴 镱潢囹嚯钽钼
info_efailed=硒栳赅 镳 钺眍怆屙梃 $1 : $2
acl_follow=埋邈溧 耠邃钼囹 耔焘铍梓羼觇 耨赅?
upload_file=脏殡 潆 玎沭箸觇
info_setgid=Setgid:
paste_ecfailed=硒栳赅 镳 觐镨痤忄龛 : $1
mkdir_eaccess=锣 礤 疣琊屮屙 耦玟噔囹 '$1'
right_user=项朦珙忄蝈朦
rename_eold=锣 礤 疣琊屮屙 镥痂戾眍恹忄螯 '$1'
link_efollow=锣 礤 疣琊屮屙 耦玟噔囹 耔焘铍梓羼觇 耨觇
rename_title=襄疱桁屙钼囗桢 $1
top_new=皖恹
mkdir_efailed=硒栳赅 镳 耦玟囗梃 赅蜞腩汔 : $1
info_write=青镨顸
rename_eexists=脏殡  桁屙屐 $1 箧 耋耱怏弪
acl_dirs=朽琊屮栩 漕耱箫 蝾朦觐  赅蜞腩汔
chmod_eaccess=锣 礤 疣琊屮屙 漕耱箫  '$1'
top_refresh=吾眍忤螯
delete_eaccess=锣 礤 疣琊屮屙 箐嚯螯 '$1'
view_eopen=硒栳赅 镳 铗牮梃 $1 : $2
top_rename=襄疱桁屙.
list_eaccess=锣 礤 疣琊屮屙 漕耱箫  溧眄铎 赅蜞腩泱
delete_efailed=硒栳赅 镳 箐嚯屙梃 $1 : $2
   0707010004f491000081a40000000000000002000000013ac038a0000010e6000000200000000000000000000000000000001600000003reloc/file/lang/ru_SU index_title=媪侍献偈 砼闻闹乓
index_nojava=淞挝偈 拖恼特 砸怕张 邢哪乓炙 java 奶 伊孪再, 蜗 琢 乱琳谂 闻 邢哪乓稚琢旁 java

top_open=镌艘僭
top_view=鹨嫌拖砸
top_edit=蚺牧嗽
top_refresh=锫蜗咨载
top_info=槲葡
top_delete=跄撂稍
top_new=钕踪
top_upload=且遮稍
top_rename=鹋遗赏盼.
top_copy=胂猩蚁琢载
top_cut=髻遗诹载
top_paste=饔粤咨载

right_name=橥
right_size=蛄谕乓
right_user=鹣特谙琢耘特
right_group=缫招辛
right_date=淞粤

edit_enormal=粝特讼 下俎钨 屏侍 拖钦 沦载 显遗牧嗽梢献廖
edit_title=蚺牧嗽梢献廖膳 $1
edit_title2=笙谀廖膳 屏侍
edit_filename=橥 屏侍:
edit_eover=$1 闻 拖峙 沦载 信遗猩恿
edit_esave=钆 拖钦 酉纫廖稍 屏侍  : $1
edit_eaccess=髁 闻 伊谝袍盼 酉纫廖言  '$1'

info_file=媪侍
info_path=鹫载:
info_type=羯:
info_size=蛄谕乓:
info_mod=橼团窝逃:
info_link=笥偬肆 瘟:
info_perms=鹨磷
info_user=鹣特谙琢耘特:
info_group=缫招辛:
info_other=鹨限膳:
info_sticky=焐姓匏:
info_sticky2=粝特讼 滋聊盘孛 拖钦 漳撂言 屏侍
info_own=魈聊盘琶
info_setuid=Setuid:
info_setuid2=髻邢涛言 肆 邢特谙琢耘特
info_setgid=Setgid:
info_setgid2=媪侍 瘟犹拍绽 且招姓
info_setgid3=髻邢涛言 肆 且招辛
info_apply=鹨晌言 哨团闻紊 奶
info_apply1=锨 肆粤滔橇
info_apply2=锨 肆粤滔橇  徘 屏侍献
info_apply3=锨 肆粤滔橇  子湃 邢乃猎撂锨献
info_efailed=镗陕肆 幸 下蜗滋盼缮 $1 : $2
info_read=盼膳
info_write=猩迂
info_list=笮捎纤
info_exec=髻邢涛盼膳

delete_dtitle=跄撂稍 肆粤滔
delete_ftitle=跄撂稍 屏侍
delete_ddesc=髻 兆乓盼, 拊 踪 认陨耘 屡谧馅滓猎蜗 漳撂稍 肆粤滔 $1  子 徘 酉呐抑赏吓?
delete_fdesc=髻 兆乓盼, 拊 踪 认陨耘 屡谧馅滓猎蜗 漳撂稍 屏侍 $1 ?
delete_efailed=镗陕肆 幸 漳撂盼缮 $1 : $2

mkdir_title=钕踪 肓粤滔
mkdir_dir=钕踪 肆粤滔:
mkdir_eexists=$1 罩 诱菖釉渍旁
mkdir_efailed=镗陕肆 幸 酉谀廖缮 肆粤滔橇 : $1
mkdir_eaccess=髁 闻 伊谝袍盼 酉谀磷猎 '$1'

link_title=笙诹紊 笥偬松
link_from=笥偬肆 显:
link_to=笥偬肆 奶:
link_eexists=$1 罩 诱菖釉渍旁
link_efailed=镗陕肆 幸 酉谀廖缮 佑偬松 : $1
link_efrom=髁 闻 伊谝袍盼 酉谀磷猎 佑偬苏 显 '$1'
link_efollow=髁 闻 伊谝袍盼 酉谀磷猎 由妥咸赊庞松 佑偬松

rename_title=鹋遗赏盼献廖膳 $1
rename_old=笤烈吓 赏:
rename_new=钕紫 赏:
rename_ok=鹋遗赏盼献猎
rename_eexists=媪侍  赏盼磐 $1 罩 诱菖釉渍旁
rename_efailed=镗陕肆 幸 信疑团蜗琢紊 : $1
rename_eold=髁 闻 伊谝袍盼 信疑团蜗踪琢载 '$1'
rename_enew=髁 闻 伊谝袍盼 信疑团蜗踪琢载  '$1'

file_type0=肓粤滔
file_type1=襞擞韵踪 屏侍
file_type2=缫疗赊庞松 屏侍
file_type3=馍瘟椅偈 屏侍
file_type4=媪侍
file_type5=笊妥咸赊庞肆 佑偬肆
file_type6=媪侍 沼砸鲜釉琢
file_type7=肓瘟

view_enormal=粝特讼 下俎钨 屏侍 拖治 幸嫌土砸勺猎
view_eaccess=髁 闻 伊谝袍盼 南釉招  $1
view_eopen=镗陕肆 幸 显艘僭缮 $1 : $2

paste_ecopy=髻 南讨钨 踪遗诹载 商 讼猩蚁琢载 信遗 子粤姿鲜
paste_egone=胂猩艺磐偈 屏侍 $1 孪特叟 闻 诱菖釉渍旁
paste_eover=$1 闻 拖峙 沦载 信遗猩恿
paste_eself=髻 闻 拖峙耘 子粤咨载 屏侍 邢着胰 恿拖窍 优卵
paste_emfailed=镗陕肆 幸 信遗团菖紊 : $1
paste_ecfailed=镗陕肆 幸 讼猩蚁琢紊 : $1

upload_efailed=镗陕肆 幸 显艘僭缮 诹且遮松 : $1
upload_title=且遮稍 媪侍
upload_file=媪侍 奶 诹且遮松
upload_dir=且罩猎  肆粤滔
upload_ok=且遮稍
upload_conv=胂巫乓陨蚁琢载 信遗紫馁 釉蚁 DOS?
upload_efile=钆 踪乱廖 屏侍 奶 诹且遮松
upload_edir=肓粤滔 奶 诹且遮松 闻 诱菖釉渍旁.
upload_eperm=髁 闻 伊谝袍盼 酉谀磷猎  $1
upload_ewrite=镗陕肆 幸 诹猩由  $1 : $2.

find_eaccess=髁 闻 伊谝袍盼 南釉招  $1
find_eexist=$1 闻 诱菖釉渍旁  $2
find_edir=$1 闻 炎萄旁友 肆粤滔窍  $2

cancel=鹨乓琢载

chmod_eaccess=髁 闻 伊谝袍盼 南釉招  '$1'
chmod_euser=$1 : 闻 粤讼窍 邢特谙琢耘萄
chmod_egroup=$1 : 闻 粤讼 且招匈
chmod_elink=羡陕肆 幸 酉谀廖缮 由妥咸赊庞讼 佑偬松 : $1
chmod_echown=羡陕肆 幸 油盼 滋聊盘孛 : $1
chmod_echmod=羡陕肆 幸 油盼 遗稚土 南釉招 : $1

copy_efrom=髁 闻 伊谝袍盼 讼猩蚁琢紊 哨 '$1'
copy_eto=髁 闻 伊谝袍盼 讼猩蚁琢紊  '$1'
copy_elink=羡陕肆 幸 酉谀廖缮 由妥咸赊庞讼 佑偬松 : $1

delete_eaccess=髁 闻 伊谝袍盼 漳撂言 '$1'

list_eaccess=髁 闻 伊谝袍盼 南釉招  牧挝贤 肆粤滔钦

move_eto=髁 闻 伊谝袍盼 信遗团萘载  '$1'
move_afrom=髁 闻 伊谝袍盼 信遗团萘载 '$1'

acl_user=湎釉招  屏侍镣 瘟 优易乓 肆 邢特谙琢耘特
acl_umask=Umask 奶 蜗踪 屏侍献
acl_follow=饔徘牧 犹拍献猎 由妥咸赊庞松 佑偬肆?
acl_dirs=蛄谝袍稍 南釉招 韵特讼  肆粤滔橇

  0707010004f492000081a40000000000000002000000013ac038a0000010a5000000200000000000000000000000000000001300000003reloc/file/lang/sv    index_title=Filhanterare
index_nojava=Denna modul beh鰒er java f鰎 att fungera, men din l鋝are st鰀jer inte java

top_open=謕pna
top_view=Visa
top_edit=膎dra
top_refresh=Uppdatera
top_info=Info
top_delete=Ta bort
top_new=Ny
top_upload=Ladda in
top_rename=Byt namn
top_copy=Kopiera
top_cut=Klipp ut
top_paste=Klistra in

right_name=Namn
right_size=Storlek
right_user=Anv鋘dare
right_group=Grupp
right_date=Datum

edit_enormal=Du kan bara 鋘dra standardfiler
edit_title=膎drar i $1
edit_title2=Skapar fil
edit_filename=Filnamn:
edit_eover=$1 f錼 inte skrivas 鰒er
edit_esave=Det gick inte att spara filen: $1
edit_eaccess=Du f錼 inte spara filen '$1'

info_file=Fil
info_path=S鰇v鋑:
info_type=Typ:
info_size=Storlek:
info_mod=膎drad:
info_link=L鋘k till:
info_perms=R鋞tigheter
info_user=Anv鋘dare:
info_group=Grupp:
info_other=講riga:
info_sticky=Sticky:
info_sticky2=Det 鋜 bara 鋑are som f錼 ta bort filer
info_own=膅are
info_setuid=Setuid:
info_setuid2=Utf鰎 som anv鋘dare
info_setgid=Setgid:
info_setgid2=Filer 鋜ver grupp
info_setgid3=Utf鰎 som grupp
info_apply=Utf鰎 鋘dringarna p
info_apply1=Endast denna katalog
info_apply2=Denna katalog och filerna i den
info_apply3=Denna katalog och dess underkataloger
info_efailed=Det gick inte att uppdatera $1 : $2
info_read=L鋝
info_write=Skriv
info_list=Lista
info_exec=Exec

delete_dtitle=Ta bort katalog
delete_ftitle=Ta bort fil
delete_ddesc=Vill du verkligen ta bort katalogen $1 med inneh錶l permanent?
delete_fdesc=Vill du verkligen ta bort filen $1 permanent?
delete_efailed=Det gick inte att ta bort $1 : $2

mkdir_title=Ny katalog
mkdir_dir=Ny katalog:
mkdir_eexists=$1 finns redan
mkdir_efailed=Det gick inte att skapa katalogen: $1
mkdir_eaccess=Du f錼 inte skapa '$1'

link_title=Skapa l鋘k
link_from=L鋘k fr錸:
link_to=L鋘k till:
link_eexists=$1 finns redan
link_efailed=Det gick inte att l鋘ka: $1
link_efrom=Du f錼 inte l鋘ka fr錸 '$1'
link_efollow=Du f錼 inte skapa symboliska l鋘kar

rename_title=Byt namn p $1
rename_old=Gammalt namn:
rename_new=Nytt namn:
rename_ok=Byt namn
rename_eexists=Det finns redan en fil som heter $1
rename_efailed=Det gick inte att byta namn: $1
rename_eold=Du f錼 inte byta namn p '$1'
rename_enew=Du f錼 inte byta namn till '$1'

file_type0=Katalog
file_type1=Textfil
file_type2=Bildfile
file_type3=Bin鋜fil
file_type4=Fil
file_type5=Symbolisk l鋘k
file_type6=Device-fil
file_type7=Pipe

view_enormal=Endast normala filer kan visas
view_eaccess=Du f錼 inte komma 錿 $1
view_eopen=Det gick inte att 鰌pna $1: $2

paste_ecopy=N錱ot m錽te klippas ut eller kopieras f鰎 att du ska kunna klistra in
paste_egone=Den kopierade filen $1 finns inte l鋘gre
paste_eover=$1 f錼 inte skrivas 鰒er
paste_eself=En fil f錼 inte klistras in 鰒er sig sj鋖v
paste_emfailed=Det gick inte att flytta: $1
paste_ecfailed=Det gick inte att kopiera: $1

over_title=Filen finns
over_msg=Filen $1 finns redan. Skriv in ett nytt filnamn f鰎 den inklistrade filen i f鋖tet nedan.
over_new=Nytt filnamn:
over_ok=OK

upload_efailed=Det gick inte att s鋞ta ig錸g nedladdningen: $1
upload_title=Ladda ned fil
upload_file=Fil att ladda ned
upload_dir=Ladda ned till katalog
upload_ok=Ladda ned
upload_conv=Konvertera DOS-radbrytningar?
upload_efile=Du har inte valt n錱on fil som ska laddas ned.
upload_edir=Du har inte valt n錱on katalog att ladda ned till.
upload_eperm=Du f錼 inte skapa $1
upload_ewrite=Det gick inte att skriva till $1: $2.

find_eaccess=Du f錼 inte komma 錿 $1
find_eexist=$1 finns inte i $2
find_edir=$1 鋜 inte en katalog i $2

cancel=Avbryt

chmod_eaccess=Du f錼 inte komma 錿 '$1'
chmod_euser=$1 :anv鋘daren finns inte
chmod_egroup=$1 :gruppen finns inte
chmod_elink=symlink misslyckades: $1
chmod_echown=chown misslyckades: $1
chmod_echmod=chmod misslyckades: $1

copy_efrom=Du f錼 inte kopiera fr錸 '$1'
copy_eto=Du f錼 inte kopiera till '$1'
copy_elink=symlink misslyckades: $1

delete_eaccess=Du f錼 inte ta bort '$1'

list_eaccess=Du f錼 inte komma 錿 denna katalog
list_edir=Det gick inte att lista $1: $2

move_eto=Du f錼 inte flytta filer till '$1'
move_afrom=Du f錼 inte flytta p '$1'

acl_user=Kom 錿 filer p servern som anv鋘dare
acl_umask=Umask f鰎 nya filer
acl_follow=Ska symboliska l鋘kar alltid f鰈jas?
acl_dirs=Till錿 endast 錿komst till kataloger

   0707010004f493000081a40000000000000002000000013ac038a00000167f000000200000000000000000000000000000001300000003reloc/file/lang/tr    index_title=Dosya Y鰊eticisi
index_nojava=Bu mod黮 java gerektirir, fakat sizin taray齝齨齴 java'yi desteklemiyor

top_open=A
top_view=G鰏ter
top_edit=De餴⺶ir
top_refresh=Yenile
top_info=Bilgi
top_delete=Sil
top_new=Yeni
top_upload=Y黭leme(Upload)
top_rename=Yeniden Adland齬
top_copy=Kopyala
top_cut=Kes
top_paste=Yapt齬 
top_share=Payla⺶齬

right_name=Ad
right_size=Boyut
right_user=Kullan齝
right_group=Grup
right_date=Tarih

edit_enormal=Sadece normal dosyalar de餴⺶irilebilir
edit_title=$1 de餴⺶iriliyor
edit_title2=Dosya olu⺶uruluyor
edit_filename=Dosya 輘mi:
edit_eover=$1 鼁erine yaz齦amaz
edit_esave=Dosyan齨 kaydedilmesinde hata olu⺶u : $1
edit_eaccess='$1' kaydedilmesine izininiz yoktur

info_file=Dosya
info_path=Yol:
info_type=Tip:
info_size=Boyut:
info_mod=De餴⺶irildi:
info_link=Link to:#####
info_perms=Haklar
info_user=Kullan齝:
info_group=Grup:
info_other=Di餰rleri:
info_sticky=Sticky:
info_sticky2=Dosyalar sadece sahipleri silebilir
info_own=Sahiplik
info_setuid=Uid'yi belirt:
info_setuid2=Kullan齝 Olarak 莂lt齬
info_setgid=Gid'yi Olu⺶ur:
info_setgid2=Dosyalar grubun olsun
info_setgid3=Grup olarak 鏰lt齬
info_apply=De餴㱮klikleri uygula ...
info_apply1=Sadece bu dizine
info_apply2=Bu dizin ve dosyalar齨a
info_apply3=Bu dizin ve alt dizinlerine
info_efailed=G黱cellemede hata olu⺶u $1 : $2
info_read=Oku
info_write=Yaz
info_list=Listele
info_exec=莂lt齬

delete_dtitle=Dizin Sil
delete_ftitle=Dosya Sil
delete_ddesc=$1 dizinini ve i鏸ndekileri silmek istedi餴nizden eminmisiniz?
delete_fdesc=$1 dizinini silmek istediinizden eminmisiniz? 
delete_efailed=Silme ieminde hata olu⺶u $1 : $2

mkdir_title=Yeni Dizin
mkdir_dir=Yeni dizin:
mkdir_eexists=$1 dizini mevcut
mkdir_efailed=Dizin olu⺶urmada hata olu⺶u : $1
mkdir_eaccess='$1' dizini olu⺶urmaya hakk齨齴 yok

link_title=Link Olu⺶ur
link_from=Link buradan:
link_to=Link buraya:
link_eexists=$1 her zaman mevcut
link_efailed=Link olu⺶urulurken hata olu⺶u : $1
link_efrom='$1' den link olu⺶urmaya hakk齨齴 yoktur
link_efollow=Sembolik linkler olu⺶urmaya hakk齨齴 yoktur

rename_title=Yeniden Adland齬 $1
rename_old=Eski 輘mi:
rename_new=Yeni 輘mi:
rename_ok=Yeniden Adland齬
rename_eexists=$1 dosyas her zaman mevcut
rename_efailed=Yeniden adland齬mada hata olu⺶u : $1
rename_eold='$1'i yeniden adland齬maya hakk齨齴 yoktur
rename_enew='$1' olarak yeniden adlandyrmaya hakkynyz yoktur

file_type0=Dizin
file_type1=Yaz Dosyas
file_type2=Resim Dosyas
file_type3=輐ili Dosya
file_type4=Dosya
file_type5=Sembolik Link
file_type6=Ara Dosyas
file_type7=Boru

view_enormal=Sadece normal dosyalar g鰎黱t黮enebilir
view_eaccess=$1'e eri㱮me hakk齨齴 yoktur
view_eopen=A鏼a ieminde hata olu⺶u $1 : $2

paste_ecopy=Yapt齬madan 鰊ce kopyalamal veya kesmelisiniz
paste_egone=Kopyalanan dosya $1 art齥 yok
paste_eover=$1 鼁erine yaz齦amaz
paste_eself=Dosyay kendi 鼁erine yapt齬amazs齨齴
paste_emfailed=Tamada hata olu⺶u : $1
paste_ecfailed=Kopyalamada hata olutu : $1

over_title=Dosya Mevcut
over_msg=$1 dosyas her zaman mevcut. Yapt齬齦an dosyaya yeni bir isim girmek i鏸n bo formu kullan齨齴.
over_new=Yeni dosya ismi
over_ok=Tamam

upload_efailed=Dosyan齨 y黭lenmesinde hata olu⺶u : $1
upload_title=Dosyay Y黭le
upload_file=Y黭lecek Dosya
upload_dir=Dizine Y黭leme
upload_ok=Y黭le
upload_conv=DOS sat齬lar 鏴virilsin mi?
upload_efile=Y黭lenecek dosya se鏸lmedi.
upload_edir=Y黭leme dizini mevcut de餴l
upload_eperm=$1 olu⺶urman齴a izin verilmedi
upload_ewrite=$1'i yazmada hata olu⺶u : $2.

find_eaccess=$1'e eri㱮m izininiz yoktur
find_eexist=$1, $2 i鏸nde mevcut de餴l
find_edir=$1, $2'de bir dizin de餴l

cancel=輕tal

chmod_eaccess='$1'e eriim izininiz yoktur 
chmod_euser=$1 : Kullanc yok
chmod_egroup=$1 : Grup yok
chmod_elink=Sembolik linkte hata olu⺶u : $1
chmod_echown=chown'da hata olu⺶u : $1
chmod_echmod=chmod'da hata olustu  : $1

copy_efrom='$1'den kopyalaman齴a izin verilmemi⺶ir
copy_eto='$1'e kopyalaman齴a izin verilmemi⺶ir 
copy_elink=Sembolik linkte hata olu⺶u : $1

delete_eaccess='$1'i silmede hata olu⺶u

list_eaccess=Bu dizine giri izininiz yoktur

move_eto='$1'e tamaya hakk齨齴 yoktur
move_afrom='$1'i tamaya hakkynyz yoktur 

acl_user=Sunucuda kullan齝 olarak dosyalara ula 
acl_umask=Yeni dosyalar i鏸n umask
acl_follow=Sembolik linkleri her zaman takip et.
acl_dirs=Sadece dizinlere giriere izin ver.

share_title=Payla⺶齬ma
share_samba=Windows
share_nfs=NFS
share_son=Windows dosya paylam a琮k
share_soff=Windows dosya paylam kapal
share_writable=Yaz齦abilir?
share_available=Aktif mi?
share_sheader=Paylam se鏴nekleri
share_only=Sadece
share_guest=Ziyaret鏸 girieri?
share_comment=A琮klama
share_nheader=NFS sunum se鏴nekleri
share_non=NFS dosya paylam a琮k
share_noff=NFS dosya paylam kapal
share_desc=A琮klama
share_ro=Sadece okuma izinli makineler
share_rw=Okuma-yazma izinli makineler
share_root=Root girii makineler
share_none=Hi鏱iri
share_all=Hepsi
share_listed=Listeli...
share_host=Makineler
share_opts=Se鏴nekler
share_s0=Hi鏺imseye g黺enme
share_s1=Root d齨dakilere g黺en
share_s2=Herkese g黺en
share_lro=Sadece okunur
share_lrw=Okunur-yaz齦齬

log_create_export=NFS sunumu $1 olu⺶uruldu
log_modify_export=NFS sunumu $1 de餴⺶irildi
log_delete_export=NFS sunumu $1 silindi
log_create_share=Samba paylam $1 olu⺶uruldu
log_modify_share=Samba paylam $1 de餴⺶irildi
log_delete_share=Samba paylam $1 silindi
log_save=$1 dosyas kaydedildi
log_chmod=$1 dosyas齨齨 haklar de餴⺶irildi
log_mkdir=$1 dizini olu⺶uruldu
log_upload=$1 dosyas y黭lendi
log_link=$2'ye sembolik link $1 olu⺶uruldu
log_relink=$2'ye sembolik link $1 de餴⺶irildi
log_copy=$1 dosyas $2'ye kopyaland
log_move=$1 dosyas $2'ye tand
log_delete=$1 dosyas silindi

 0707010004f494000081a40000000000000002000000013ac038a0000012d7000000200000000000000000000000000000001600000003reloc/file/lang/zh_CN index_title=文件管理器
index_nojava=本模块需要java功能,但是浏缆器不支持

top_open=打开
top_view=查看
top_edit=编辑
top_refresh=刷新
top_info=信息
top_delete=删除
top_new=新建
top_upload=上传
top_rename=重命名
top_copy=拷贝
top_cut=剪切
top_paste=粘贴
top_share=共享
top_search=查找

right_name=名称
right_size=大小
right_user=用户
right_group=组
right_date=日期

edit_enormal=只有普通属性的文件才能修改
edit_title=正在编辑 $1
edit_title2=建立文件
edit_filename=文件名:
edit_eover=不能覆盖: $1
edit_esave=存盘失败: $1
edit_eaccess=没有对文件'$1'保存的权利

info_file=文件
info_path=路径:
info_type=类型:
info_size=大小:
info_mod=修改:
info_link=联结到:
info_perms=许可
info_user=用户:
info_group=小组:
info_other=其它:
info_sticky=严格:
info_sticky2=只有所由者才能删除文件
info_own=所有权
info_setuid=设置用户id:
info_setuid2=执行时当做用户是
info_setgid=设置小组id:
info_setgid2=文件继承小组
info_setgid3=执行时当做小组是:
info_apply=保存变化大值
info_apply1=仅是本目录
info_apply2=本目录和其下面大文件
info_apply3=本目录和它下面大所有子目录
info_efailed=对 $1 : $2 的更改失败
info_read=读取
info_write=写入
info_list=列表
info_exec=执行

delete_dtitle=目录删除
delete_ftitle=文件删除
delete_ddesc=确认永久删除目录及其下面的子目录?
delete_fdesc=确认永久删除文件 $1 ?
delete_efailed=删除 $1: $2 失败

mkdir_title=新建目录
mkdir_dir=新建目录:
mkdir_eexists=$1 已经存在
mkdir_efailed=建立 $1 目录失败
mkdir_eaccess=没有足够的权利建立 '$1'

link_title=建立联接
link_from=联接自:
link_to=联接到:
link_eexists=$1 已经存在
link_efailed= $1 的联接失败
link_efrom=不允许联接 '$1'
link_efollow=不允许建立符号联接

rename_title=重命名$1
rename_old=原名:
rename_new=新名:
rename_ok=重命名
rename_eexists= $1 的文件已经存在
rename_efailed=$1:重命名失败: 
rename_eold=不允许重命名 '$1'
rename_enew=不允许重命名 '$1'

file_type0=目录
file_type1=文本文件
file_type2=映象文件
file_type3=二进制文件
file_type4=文件
file_type5=符号联接
file_type6=设备文件
file_type7=管道

view_enormal=只能查看普通文件
view_eaccess=没有对 $1 操作的许可
view_eopen=打开 $1: $2 失败

paste_ecopy=在粘贴之前必须剪切或拷贝
paste_egone=拷贝的文件 $1 已经不存在
paste_eover=$1 不能覆盖
paste_eself=不能对文件自给进行粘贴
paste_emfailed= $1 移动失败
paste_ecfailed= $1 拷贝失败

over_title=文件存在
over_msg=文件 $1 已经存在.请为要粘贴的文件输入一个新名.
over_new=新名:
over_ok=确认

upload_efailed= $1 上传失败
upload_title=上传文件
upload_file=文件上传
upload_dir=上传到目录
upload_ok=上传
upload_conv=是否转换DOS换行符号?
upload_efile=没有选定上传文件.
upload_edir=上传目录不存在.
upload_eperm=不能创建 $1
upload_ewrite=写入 $1 : $2. 失败

find_eaccess=不能对 $1 进行操作
find_eexist=在$2中不存在$1
find_edir=在$2中的$1不是目录

cancel=取消

chmod_eaccess=不能对'$1'进行操作
chmod_euser=$1 : 无此用户
chmod_egroup=$1 : 无此用户组
chmod_elink=符号联接失败 : $1
chmod_echown=改变所有者失败: $1
chmod_echmod=改变权限失败 : $1

copy_efrom=不能从 '$1' 拷贝
copy_eto=不允许拷贝到 '$1'
copy_elink=符号联接失败 '$1'

delete_eaccess=不允许删除 '$1'

list_eaccess=不允许对本目录操作

move_eto=不允许移动到 '$1'
move_afrom=不允许移动 '$1'

acl_user=在服务器上操作作为用户
acl_umask=对新文件去除掩码
acl_follow=总是允许符号联接吗?
acl_dirs=仅允许对目录操作

share_title=共享
share_samba=窗口
share_nfs=NFS
share_son=Windows 文件能够共享
share_soff=Windows 文件不能共享
share_writable=可写吗?
share_available=现在可用吗?
share_sheader=共享选项
share_only=只有
share_guest=Guest 访问?
share_comment=内容
share_nheader=NFS 输出选项
share_non=NFS 文件可以共享
share_noff=NFS 文件不能共享
share_desc=描述
share_ro=只读客户
share_rw=读-写客户
share_root=Root 访问客户
share_none=无
share_all=所有
share_listed=已列出的..
share_host=客户
share_opts=选项
share_s0=不信任任何人
share_s1=信任非 Root 用户
share_s2=信任所有人
share_lro=只读
share_lrw=读-写

log_create_export=创建 NFS 输出 $1
log_modify_export=更新 NFS 输出 $1
log_delete_export=删除 NFS 输出 $1
log_create_share=创建 Samba 共享 $1
log_modify_share=更新 Samba 共享 $1
log_delete_share=删除 Samba 共享 $1
log_save=保存文件 $1
log_chmod=改变文件 $1 的权限
log_mkdir=创建目录 $1
log_upload=上载文件 $1
log_link=创建符号连接 $1 到 $2
log_relink=更改符号连接 $1 到 $2
log_copy=拷贝文件 $1 到 $2
log_move=移动文件 $1 到 $2
log_delete=删除文件 $1

search_eaccess=您无权搜索该目录
search_title=找到文件
search_ok=现在搜索
search_dir=搜索路径
search_match=文件匹配
search_user=被用户所有
search_group=组所有
search_any=任意
search_type=文件类型
search_types_=任意
search_types_f=文件
search_types_d=目录
search_types_l=符号连接
search_types_p=命名管道
search_size=文件大小
search_more=多于
search_less=少于
search_xdev=搜索以前的加载?
search_edir=丢失或无效的搜索目录
search_ematch=丢失匹配的正则表达式
search_euser=丢失用户名
search_egroup=丢失组名
search_esize=文件大小值必须是整数
search_crit=搜索标准
search_list=搜索结果

 0707010004f495000081a40000000000000002000000013ac038a000000c7d000000200000000000000000000000000000001b00000003reloc/file/lang/zh_TW.Big5    index_title=郎恨瞶
index_nojava=硂家舱惠璶 Java タ絋笲, 琌眤聅凝竟ぃや穿 Java

top_open=秨币
top_view=浪跌
top_edit=絪胯
top_refresh=弄
top_info=戈癟
top_delete=埃
top_new=糤
top_upload=肚
top_rename=э
top_copy=狡籹
top_cut=芭
top_paste=禟

right_name=嘿
right_size=
right_user=ㄏノ
right_group=竤舱
right_date=ら戳

edit_enormal=絪胯郎
edit_title=絪胯 $1 い
edit_title2=ミ郎い
edit_filename=郎嘿:
edit_eover=$1 礚猭砆籠糶
edit_esave=礚猭纗郎 : $1
edit_eaccess=眤ぃ砆す砛纗 '$1'

info_file=郎
info_path=隔畖:
info_type=摸:
info_size=:
info_mod=э丁:
info_link=硈挡:
info_perms=舦
info_user=ㄏノ:
info_group=竤舱:
info_other=ㄤ:
info_sticky=砞﹚じ:
info_sticky2=Τ局Τ埃郎
info_own=┮Τ舦
info_setuid=砞﹚ UID:
info_setuid2=ㄏノ舦磅︽
info_setgid=砞﹚ GID:
info_setgid2=郎膥┯竤舱
info_setgid3=竤舱舦磅︽
info_apply=甅ノ跑
info_apply1=Τ硂ヘ魁
info_apply2=硂ヘ魁籔ㄤい郎
info_apply3=硂ヘ魁籔┮Τヘ魁
info_efailed=礚猭弄 $1 : $2
info_read=弄
info_write=糶
info_list=
info_exec=磅︽

delete_dtitle=埃ヘ魁
delete_ftitle=埃郎
delete_ddesc=眤絋﹚璶ッ埃ヘ魁 $1 籔ㄤ┮Τず甧盾?
delete_fdesc=眤絋﹚璶ッ埃郎 $1 盾?
delete_efailed=礚猭埃 $1 : $2

mkdir_title=糤ヘ魁
mkdir_dir=ヘ魁:
mkdir_eexists=$1 竒
mkdir_efailed=ミヘ魁ア毖 : $1
mkdir_eaccess=眤ぃ砆す砛ミ '$1'

link_title=ミ硈挡
link_from=硈挡:
link_to=硈挡:
link_eexists=$1 竒
link_efailed=硈挡ア毖 : $1
link_efrom=眤ぃ砆す砛硈挡 '$1'
link_efollow=眤ぃ砆す砛ミ才腹硈挡

rename_title=跑嘿 $1
rename_old=侣郎:
rename_new=跑:
rename_ok=э
rename_eexists=暗 $1 郎竒
rename_efailed=эア毖 : $1
rename_eold=眤ぃ砆す砛э '$1'
rename_enew=眤ぃ砆す砛эΘ '$1'

file_type0=ヘ魁
file_type1=ゅ郎
file_type2=紇钩郎
file_type3=秈郎
file_type4=郎
file_type5=才腹硈挡
file_type6=砞称北郎
file_type7=恨絬

view_enormal=Τ郎砆浪跌
view_eaccess=眤ぃ砆す砛 $1
view_eopen=礚猭秨币n $1 : $2

paste_ecopy=眤禟璶芭┪狡籹
paste_egone=狡籹郎 $1 竒ぃ
paste_eover=$1 礚猭砆籠糶
paste_eself=眤ぃр郎禟セō
paste_emfailed=簿笆ア毖 : $1
paste_ecfailed=īア毖 : $1

upload_efailed=秨币肚ア毖 : $1
upload_title=肚郎
upload_file=璶肚郎
upload_dir=肚ヘ魁
upload_ok=肚
upload_conv=琌璶э跑 DOS 传︽才腹?
upload_efile=⊿Τ匡拒璶肚郎.
upload_edir=肚ヘ魁ぃ.
upload_eperm=眤ぃ砆す砛ミ $1
upload_ewrite=礚猭糶 $1 : $2.

find_eaccess=眤ぃ砆す砛 $1
find_eexist=$1 ぃ $2
find_edir=$1 ぃ琌ヘ魁 $2

cancel=

chmod_eaccess=眤ぃ砆す砛 '$1'
chmod_euser=$1 : ⊿Τ硂ㄏノ
chmod_egroup=$1 : ⊿Τ硂竤舱
chmod_elink=才腹硈挡ア毖d : $1
chmod_echown=跑局Τア毖 : $1
chmod_echmod=跑舦ア毖 : $1

copy_efrom=眤ぃ砆す砛ī '$1'
copy_eto=眤ぃ砆す砛ī '$1'
copy_elink=才腹硈挡ア毖 : $1

delete_eaccess=眤ぃ砆す砛埃 '$1'

list_eaccess=眤ぃ砆す砛硂ヘ魁

move_eto=眤ぃ砆す砛簿笆 '$1'
move_afrom=眤ぃ砆す砛簿笆 '$1'

acl_user=ㄏノ舦狝竟郎
acl_umask=ミ郎綛竛
acl_follow=琌蛤繦才腹硈挡?
acl_dirs=す砛ヘ魁

   0707010004b12a000081e40000000000000002000000013ac038a000000256000000200000000000000000000000000000001400000003reloc/file/list.cgi   #!/usr/local/bin/perl
# list.cgi
# Return a list of files in some directory

require './file-lib.pl';
&ReadParse();
&switch_acl_uid();
print "Content-type: text/plain\n\n";
$d = $in{'dir'} eq "/" ? "" : $in{'dir'};
if (!&can_access($in{'dir'})) {
	print $text{'list_eaccess'},"\n";
	}
elsif (!opendir(DIR, $in{'dir'})) {
	print "$!\n";
	}
else {
	print "\n";
	@files = sort { $a cmp $b } readdir(DIR);
	@files = grep { $_ ne "." && $_ ne ".." } @files;
	@files = grep { &can_access("$d/$_") } @files;
	closedir(DIR);
	foreach $f (".", "..", @files) {
		print &file_info_line("$d/$f"),"\n";
		}
	}

  0707010004b12b000081e40000000000000002000000013ac038a100000939000000200000000000000000000000000000001c00000003reloc/file/list_exports.cgi   #!/usr/local/bin/perl
# list_exports.cgi
# Output info about NFS exports

require './file-lib.pl';
print "Content-type: text/plain\n\n";
if ($access{'user'}) {
	# User has no access to NFS
	print "0\n";
	exit;
	}

&read_acl(\%acl, undef);
%einfo = &get_module_info("exports");
%dinfo = &get_module_info("dfsadmin");
#%binfo = &get_module_info("bsdexports");	# too hard

if (%einfo && &check_os_support(\%einfo)) {
	# Linux NFS exports
	&module_check("exports");
	if (!&has_command("rpc.nfsd") && !&has_command("nfsd")) {
		print "0\n";
		exit;
		}
	print "1\n";
	&foreign_require("exports", "exports-lib.pl");
	foreach $e (&foreign_call("exports", "list_exports")) {
		push(@{$exp{$e->{'dir'}}}, $e)
			if ($e->{'dir'} !~ /:/ && $e->{'host'} !~ /:/);
		}
	foreach $d (keys %exp) {
		local $host;
		foreach $e (@{$exp{$d}}) {
			local $o = $e->{'options'};
			$host .= sprintf ":%s:%d:%d",
				$e->{'host'} ? $e->{'host'} : '*',
				defined($o->{'ro'}),
				defined($o->{'all_squash'}) ? 0 :
				defined($o->{'no_root_squash'}) ? 2 : 1;
			}
		print $d,$host,"\n";
		}
	}
elsif (%dinfo && &check_os_support(\%dinfo)) {
	# Solaris NFS shares
	&module_check("dfsadmin");
	print "2\n";
	&foreign_require("dfsadmin", "dfs-lib.pl");
	foreach $s (&foreign_call("dfsadmin", "list_shares")) {
		$opts = &foreign_call("dfsadmin", "parse_options",$s->{'opts'});
		$opts->{'ro'} = '-' if (!defined($opts->{'ro'}));
		$opts->{'ro'} =~ s/:/ /g;
		$opts->{'rw'} = '-' if (!defined($opts->{'rw'}));
		$opts->{'rw'} =~ s/:/ /g;
		$opts->{'root'} = '-' if (!defined($opts->{'root'}));
		$opts->{'root'} =~ s/:/ /g;
		printf "%s:%s:%s:%s:%s\n",
			$s->{'dir'}, $opts->{'ro'}, $opts->{'rw'},
			$opts->{'root'}, $s->{'desc'};
		}
	}
elsif (%binfo && &check_os_support(\%binfo)) {
	# BSD NFS exports
	&module_check("bsdexports");
	print "3\n";
	&foreign_require("bsdexports", "bsdexports-lib.pl");
	foreach $e (&foreign_call("bsdexports", "list_exports")) {
		foreach $d (@{$e->{'dirs'}}) {
			printf "%s:%s", $d, $e->{'ro'} ? 1 : 0;
			if ($e->{'network'}) {
				printf ":%s/%s\n",
					$e->{'network'}, $e->{'mask'};
				}
			else {
				foreach $h (@{$e->{'hosts'}}) {
					print ":$h";
					}
				print "\n";
				}
			}
		}
	}
else {
	# No NFS modules installed or supported
	print "0\n";
	}

sub module_check
{
if (!$acl{$ENV{'REMOTE_USER'},$_[0]}) {
	print "0\n";
	exit;
	}
}

   0707010004b12c000081e40000000000000002000000013ac038a1000004b4000000200000000000000000000000000000001b00000003reloc/file/list_shares.cgi    #!/usr/local/bin/perl
# list_shares.cgi
# Output info about samba shares

require './file-lib.pl';
print "Content-type: text/plain\n\n";
if ($access{'user'}) {
	# User has no access to samba
	print "0\n";
	exit;
	}

%minfo = &get_module_info("samba");
&read_acl(\%acl, undef);
if (!%minfo || !&check_os_support(\%minfo) ||
    !$acl{$ENV{'REMOTE_USER'},'samba'}) {
	# Samba module not installed or supported
	print "0\n";
	exit;
	}

&foreign_require("samba", "samba-lib.pl");
%sconfig = &foreign_config("samba");
if (!-r $sconfig{'smb_conf'} || !&has_command($sconfig{'samba_server'})) {
	# Samba not installed
	print "0\n";
	exit;
	}

print "1\n";
foreach $s (&foreign_call("samba", "list_shares")) {
	&foreign_call("samba", "get_share", $s);
	if ($s ne 'global' && $s ne 'homes' && $s ne 'printers' &&
	    $samba::share{'path'} =~ /^\/[^\%\s]*$/ &&
	    $samba::share{'printable'} !~ /true|yes/i) {
		printf "%s:%s:%s:%s:%s\n",
			$samba::share{'path'},
			$samba::share{'available'} =~ /no|false/i ? 0 : 1,
			$samba::share{'writable'} =~ /yes|true/i ? 1 : 0,
			$samba::share{'guest only'} =~ /yes|true/i ? 2 :
			$samba::share{'public'} =~ /yes|true/i ? 1 : 0,
			$samba::share{'comment'};
		}
	}

0707010004b12d000081a40000000000000002000000013ac038a1000003e2000000200000000000000000000000000000001900000003reloc/file/log_parser.pl  # log_parser.pl
# Functions for parsing this module's logs

require './file-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p) = @_;
if ($type eq 'export' || $type eq 'share') {
	return &text("log_${action}_${type}", "<tt>$object</tt>");
	}
elsif ($action eq 'save' || $action eq 'chmod' || $action eq 'mkdir' ||
       $action eq 'upload' || $action eq 'delete') {
	return &text("log_${action}", "<tt>$object</tt>");
	}
elsif ($action eq 'link' || $action eq 'move' || $action eq 'copy') {
	return &text("log_${action}",
		     "<tt>$object</tt>", "<tt>$p->{'to'}</tt>");
	}
elsif ($action eq 'relink') {
	return &text('log_relink',
		     "<tt>$object</tt>", "<tt>$p->{'linkto'}</tt>");
	}
elsif ($action eq 'rename') {
	return &text('log_move', "<tt>$object</tt>", "<tt>$p->{'new'}</tt>");
	}
else {
	return undef;
	}
}

  0707010004b12e000081e40000000000000002000000013ac038a000000217000000200000000000000000000000000000001800000003reloc/file/makelink.cgi   #!/usr/local/bin/perl
# makelink.cgi
# Create a symbolic link

require './file-lib.pl';
&ReadParse();
&switch_acl_uid();
print "Content-type: text/plain\n\n";
&lock_file($in{'from'});
if (!&can_access($in{'from'})) {
	print &text('link_efrom', $in{'from'}),"\n";
	}
elsif ($access{'follow'}) {
	print $text{'link_efollow'},"\n";
	}
elsif (!symlink($in{'to'}, $in{'from'})) {
	print "$!\n";
	}
else {
	print "\n";
	print &file_info_line($in{'from'}),"\n";
	&unlock_file($in{'from'});
	&webmin_log("link", undef, $in{'from'}, \%in);
	}

 0707010004b12f000081e40000000000000002000000013ac038a0000001c5000000200000000000000000000000000000001500000003reloc/file/mkdir.cgi  #!/usr/local/bin/perl
# mkdir.cgi
# Create a directory

require './file-lib.pl';
&ReadParse();
&switch_acl_uid();
print "Content-type: text/plain\n\n";
&lock_file($in{'dir'});
if (!&can_access($in{'dir'})) {
	print &text('mkdir_eaccess', $in{'dir'}),"\n";
	}
elsif (!mkdir($in{'dir'}, 0777)) {
	print "$!\n";
	}
else {
	print "\n";
	print &file_info_line($in{'dir'}),"\n";
	&unlock_file($in{'dir'});
	&webmin_log("mkdir", undef, $in{'dir'}, \%in);
	}


   0707010004b130000081a40000000000000002000000013ac038a000000153000000200000000000000000000000000000001700000003reloc/file/module.info    desc_zh_CN=文件管理器
name=FileManager
desc_pt=Administrador de Ficheiros
desc_tr=Dosya Y鰊eticisi
desc_fr=Gestionnaire de Fichiers
desc_es=Gestor de Archivos
desc_de=Datei Manager
desc_sv=Filhanterare
desc_ru_SU=砼闻闹乓 媪侍献
desc_pl=Zarz眃zanie plikami
desc_zh_TW.Big5=郎恨瞶
desc=File Manager
risk=high
desc_ru_RU=体礤滏屦 脏殡钼
 0707010004b131000081e40000000000000002000000013ac038a000000255000000200000000000000000000000000000001400000003reloc/file/move.cgi   #!/usr/local/bin/perl
# move.cgi
# Move some file or directory

require './file-lib.pl';
&ReadParse();
&switch_acl_uid();
print "Content-type: text/plain\n\n";
unlink($in{'to'}); # in case we are moving a directory
if (!&can_access($in{'to'})) {
	print &text('move_eto', $in{'to'}),"\n";
	exit;
	}
if (!&can_access($in{'from'})) {
	print &text('move_efrom', $in{'from'}),"\n";
	exit;
	}
$out = &backquote_logged("mv \"$in{'from'}\" \"$in{'to'}\" 2>&1");
if ($?) {
	print $out,"\n";
	}
else {
	print "\n";
	print &file_info_line($in{'to'}),"\n";
	&webmin_log("move", undef, $in{'from'}, \%in);
	}

   0707010004b132000081e40000000000000002000000013ac038a0000001ca000000200000000000000000000000000000001600000003reloc/file/rename.cgi #!/usr/local/bin/perl
# rename.cgi
# Rename some file

require './file-lib.pl';
&ReadParse();
&switch_acl_uid();
print "Content-type: text/plain\n\n";
if (!&can_access($in{'old'})) {
	print &text('rename_eold', $in{'old'}),"\n";
	}
elsif (!&can_access($in{'new'})) {
	print &text('rename_enew', $in{'new'}),"\n";
	}
elsif (!&rename_logged($in{'old'}, $in{'new'})) {
	print "$!\n";
	}
else {
	print "\n";
	&webmin_log("rename", undef, $in{'old'}, \%in);
	}


  0707010004b133000081e40000000000000002000000013ac038a0000000b0000000200000000000000000000000000000001400000003reloc/file/root.cgi   #!/usr/local/bin/perl
# root.cgi
# Return information about the root directory

require './file-lib.pl';
print "Content-type: text/plain\n\n";
print &file_info_line("/"),"\n";
0707010004b134000081e40000000000000002000000013ac038a0000001dc000000200000000000000000000000000000001400000003reloc/file/save.cgi   #!/usr/local/bin/perl
# save.cgi
# Write data to a file

require './file-lib.pl';
$p = $ENV{'PATH_INFO'};
&switch_acl_uid();
print "Content-type: text/plain\n\n";
read(STDIN, $buf, $ENV{'CONTENT_LENGTH'});
&lock_file($p);
if (!&can_access($p)) {
	print &text('edit_eaccess', $p),"\n";
	}
elsif (!open(FILE, ">$p")) {
	print "$!\n";
	}
else {
	print FILE $buf;
	close(FILE);
	&unlock_file($p);
	print "\n";
	print &file_info_line($p),"\n";
	&webmin_log("save", undef, $p);
	}

0707010004b135000081e40000000000000002000000013ac038a100000f5d000000200000000000000000000000000000001b00000003reloc/file/save_export.cgi    #!/usr/local/bin/perl
# save_export.cgi
# Update, create or delete an NFS export

require './file-lib.pl';
&ReadParse();
print "Content-type: text/plain\n\n";
if ($access{'user'}) {
	# User has no access to NFS
	print "0\n";
	exit;
	}

&read_acl(\%acl, undef);
%einfo = &get_module_info("exports");
%dinfo = &get_module_info("dfsadmin");
%binfo = &get_module_info("bsdexports");

if (%einfo && &check_os_support(\%einfo)) {
	# Linux NFS exports
	&module_check("exports");
	&foreign_require("exports", "exports-lib.pl");
	%econfig = &foreign_config("exports");
	&lock_file($econfig{'exports_file'});
	foreach $e (&foreign_call("exports", "list_exports")) {
		push(@{$exp{$e->{'dir'}}}, $e);
		}
	if ($in{'delete'}) {
		# Delete all exports for some dir
		foreach $e (reverse(@{$exp{$in{'path'}}})) {
			&foreign_call("exports", "delete_export", $e);
			}
		}
	else {
		# Adding or updating an export
		if (!$in{'new'}) {
			# Updating, so delete old exports first
			foreach $e (reverse(@{$exp{$in{'path'}}})) {
				$host{$e->{'host'}} = $e;
				&foreign_call("exports", "delete_export", $e);
				}
			}
		for($i=0; $in{"host$i"}; $i++) {
			$h = $in{"host$i"} eq '*' ? '' : $in{"host$i"};
			$e = $host{$h};
			$e = { 'active' => 1,
			       'host' => $h,
			       'dir' => $in{'path'} } if (!$e);
			delete($e->{'options'}->{'ro'});
			if ($in{"ro$i"}) {
				$e->{'options'}->{'ro'} = '';
				}
			delete($e->{'options'}->{'all_squash'});
			delete($e->{'options'}->{'no_root_squash'});
			if ($in{"squash$i"} == 0) {
				$e->{'options'}->{'all_squash'} = '';
				}
			elsif ($in{"squash$i"} == 2) {
				$e->{'options'}->{'no_root_squash'} = '';
				}
			&foreign_call("exports", "create_export", $e);
			}
		}
	&unlock_file($econfig{'exports_file'});
	&system_logged("$econfig{'portmap_command'} >/dev/null 2>&1 </dev/null")
		if ($econfig{'portmap_command'});
	&system_logged("($econfig{'restart_command'}) </dev/null >/dev/null 2>&1");
	&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
		    'export', $in{'path'});
	print "1\n";
	}
elsif (%dinfo && &check_os_support(\%dinfo)) {
	# Solaris NFS shares
	&module_check("dfsadmin");
	&foreign_require("dfsadmin", "dfs-lib.pl");
	%iconfig = &foreign_config("dfsadmin");
	&lock_file($iconfig{'dfstab_file'});
	@shlist = &foreign_call("dfsadmin", "list_shares");
	foreach $s (@shlist) {
		$share = $s if ($s->{'dir'} eq $in{'path'});
		}
	if ($in{'delete'}) {
		# Delete existing share
		&foreign_call("dfsadmin", "delete_share", $share);
		}
	elsif ($in{'new'}) {
		# Create new share
		foreach $r ('ro', 'rw', 'root') {
			if ($in{$r} ne '-') {
				$in{$r} =~ s/\s+/:/g;
				$opts->{$r} = $in{$r};
				}
			}
		$share->{'dir'} = $in{'path'};
		$share->{'desc'} = $in{'desc'};
		$share->{'opts'} =
			&foreign_call("dfsadmin", "join_options", $opts);
		&foreign_call("dfsadmin", "create_share", $share);
		}
	else {
		# Update existing share
		$opts = &foreign_call("dfsadmin", "parse_options",
				      $share->{'opts'});
		foreach $r ('ro', 'rw', 'root') {
			if ($in{$r} eq '-') { delete($opts->{$r}); }
			else {
				$in{$r} =~ s/\s+/:/g;
				$opts->{$r} = $in{$r};
				}
			}
		$share->{'dir'} = $in{'path'};
		$share->{'desc'} = $in{'desc'};
		$share->{'opts'} =
			&foreign_call("dfsadmin", "join_options", $opts);
		&foreign_call("dfsadmin", "modify_share", $share);
		}
	&unlock_file($iconfig{'dfstab_file'});

	# Apply changes to NFS daemon
	&system_logged("$iconfig{'unshare_all_command'} >/dev/null 2>&1");
	&system_logged("$iconfig{'share_all_command'} >/dev/null 2>&1");
	&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
		    'export', $in{'path'});
	print "1\n";
	}
elsif (%binfo && &check_os_support(\%binfo)) {
	# BSD NFS exports
	&module_check("bsdexports");
	}
else {
	# No NFS modules installed or supported
	print "0\n";
	}

sub module_check
{
if (!$acl{$ENV{'REMOTE_USER'},$_[0]}) {
	print "0\n";
	exit;
	}
}

   0707010004b136000081e40000000000000002000000013ac038a1000009e9000000200000000000000000000000000000001a00000003reloc/file/save_share.cgi #!/usr/local/bin/perl
# save_share.cgi
# Create, update or delete a samba share

require './file-lib.pl';
&ReadParse();
print "Content-type: text/plain\n\n";
if ($access{'user'}) {
	# User has no access to samba
	print "0\n";
	exit;
	}

%minfo = &get_module_info("samba");
&read_acl(\%acl, undef);
if (!%minfo || !&check_os_support(\%minfo) ||
    !$acl{$ENV{'REMOTE_USER'},'samba'}) {
	# Samba module not installed or supported
	print "0\n";
	exit;
	}

&foreign_require("samba", "samba-lib.pl");
%sconfig = &foreign_config("samba");
&lock_file($sconfig{'smb_conf'});
@shares = &foreign_call("samba", "list_shares");

if ($in{'delete'}) {
	# Deleting an old share
	foreach $s (@shares) {
		&foreign_call("samba", "get_share", $s);
		if ($samba::share{'path'} &&
		    $samba::share{'path'} eq $in{'path'}) {
			&foreign_call("samba", "delete_share", $s);
			last;
			}
		}
	print "1\n";
	}
elsif ($in{'new'}) {
	# Creating a new share
	map { $taken{$_}++ } @shares;
	if ($in{'path'} =~ /\/([^\/]+)$/) {
		$base = $1;
		}
	else {
		$base = "root";
		}
	if ($taken{$base}) {
		for($i=2; $taken{$base.$i}; $i++) { }
		$base = $base.$i;
		}
	$samba::share{'path'} = $in{'path'};
	$samba::share{'available'} = $in{'available'} ? 'yes' : 'no';
	$samba::share{'writable'} = $in{'writable'} ? 'yes' : 'no';
	$samba::share{'comment'} = $in{'comment'};
	if ($in{'guest'} == 2) {
		$samba::share{'public'} = 'yes';
		$samba::share{'guest only'} = 'yes';
		}
	elsif ($in{'guest'} == 1) {
		$samba::share{'public'} = 'yes';
		}
	&foreign_call("samba", "create_share", $base);
	print "1\n";
	}
else {
	# Updating an existing share
	foreach $s (@shares) {
		&foreign_call("samba", "get_share", $s);
		if ($samba::share{'path'} &&
		    $samba::share{'path'} eq $in{'path'}) {
			# found the share to update
			$samba::share{'available'} = $in{'available'} ? 'yes'
								      : 'no';
			$samba::share{'writable'} = $in{'writable'} ? 'yes'
								    : 'no';
			$samba::share{'comment'} = $in{'comment'};
			if ($in{'guest'} == 2) {
				$samba::share{'public'} = 'yes';
				$samba::share{'guest only'} = 'yes';
				}
			elsif ($in{'guest'} == 1) {
				$samba::share{'public'} = 'yes';
				delete($samba::share{'guest only'});
				}
			else {
				delete($samba::share{'public'});
				delete($samba::share{'guest only'});
				}
			&foreign_call("samba", "modify_share", $s, $s);
			last;
			}
		}
	print "1\n";
	}
&unlock_file($sconfig{'smb_conf'});
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
	    'share', $in{'path'});

   0707010004b137000081e40000000000000002000000013ac038a1000002ed000000200000000000000000000000000000001600000003reloc/file/search.cgi #!/usr/local/bin/perl
# search.cgi
# Find files under some directory

require './file-lib.pl';
&ReadParse();
&switch_acl_uid();
print "Content-type: text/plain\n\n";
if (!&can_access($in{'dir'})) {
	print $text{'search_eaccess'},"\n";
	}

$in{'dir'} =~ s/^\/+/\//g;
if ($in{'dir'} eq '/') {
	$in{'dir'} =~ s/\/$//;
	}
$cmd = "find $in{'dir'} -name \"$in{'match'}\"";
if ($in{'type'}) {
	$cmd .= " -type $in{'type'}";
	}
if ($in{'user'}) {
	$cmd .= " -user $in{'user'}";
	}
if ($in{'group'}) {
	$cmd .= " -group $in{'group'}";
	}
if ($in{'size'}) {
	$cmd .= " -size $in{'size'}";
	}
if ($in{'xdev'}) {
	$cmd .= " -xdev";
	}

print "\n";
open(CMD, "$cmd 2>/dev/null |");
while($f = <CMD>) {
	chop($f);
	print &file_info_line($f),"\n";
	}
close(CMD);

   0707010004b138000081e40000000000000002000000013ac038a00000048d000000200000000000000000000000000000001400000003reloc/file/show.cgi   #!/usr/local/bin/perl
# show.cgi
# Output some file for the browser

require './file-lib.pl';
&ReadParse();
use POSIX;
$p = $ENV{'PATH_INFO'};
if ($in{'type'}) {
	# Use the supplied content type
	$type = $in{'type'};
	}
else {
	# Try to guess type from filename
	if ($p =~ /\.([^\.\/]+)$/) {
		$ext = lc($1);
		&get_miniserv_config(\%miniserv);
		open(MIME, $miniserv{'mimetypes'});
		while(<MIME>) {
			s/#.*//g;
			if (/(\S+)\s+(.*)/) {
				foreach $e (split(/\s+/, $2)) {
					if ($ext eq $e) {
						$type = $1;
						last;
						}
					}
				}
			}
		close(MIME);
		}
	if (!$type) {
		# No idea .. use the 'file' command
		if (`file "$p"` =~ /text|script/) {
			$type = "text/plain";
			}
		else {
			$type = "application/octet-stream";
			}
		}
	}

# Dump the file
&switch_acl_uid();
if (!&can_access($p)) {
	print "Content-type: text/plain\n\n";
	print &text('view_eaccess', $p),"\n";
	}
elsif (!open(FILE, $p)) {
	print "Content-type: text/plain\n\n";
	print &text('view_eopen', $p, $!),"\n";
	}
else {
	@st = stat($p);
	print "Content-length: $st[7]\n";
	print "Content-type: $type\n\n";
	while(read(FILE, $buf, 1024)) {
		print $buf;
		}
	close(FILE);
	}
   0707010004b139000081e40000000000000002000000013ac038a000000373000000200000000000000000000000000000001600000003reloc/file/upform.cgi #!/usr/local/bin/perl
# upform.cgi
# Display the upload form

require './file-lib.pl';
&ReadParse();
&header($text{'upload_title'});
print "<form action=upload.cgi enctype=multipart/form-data method=post>\n";
print "<table width=100% border>\n";
print "<tr $tb> <td><b>$text{'upload_title'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";
print "<tr> <td><b>$text{'upload_file'}</b></td>\n";
print "<td><input type=file name=file size=20></td> </tr>\n";
print "<tr> <td><b>$text{'upload_dir'}</b></td>\n";
print "<td><input name=dir size=20 value='$in{'dir'}'>\n",
      "<input type=submit value=\"$text{'upload_ok'}\"></td> </tr>\n";
print "<tr> <td><b>$text{'upload_conv'}</b></td>\n";
print "<td><input type=radio name=dos value=1> $text{'yes'}\n";
print "<input type=radio name=dos value=0 checked> $text{'no'}</td> </tr>\n";
print "</table></td></tr></table>\n";
 0707010004b13a000081e40000000000000002000000013ac038a000000399000000200000000000000000000000000000001600000003reloc/file/upload.cgi #!/usr/local/bin/perl
# upload.cgi
# Upload a file

require './file-lib.pl';
&header();
&ReadParseMime();

if (!$in{'file'}) {
	print "<p><b>$text{'upload_efile'}</b><p>\n";
	}
elsif (!-d $in{'dir'}) {
	print "<p><b>$text{'upload_edir'}</b><p>\n";
	}
else {
	&switch_acl_uid();
	$in{'file_filename'} =~ /([^\\\/]+)$/;
	$path = "$in{'dir'}/$1";
	&lock_file($path);
	if (!&can_access($path)) {
		print "<p><b>",&text('upload_eperm', $path),"</b><p>\n";
		}
	elsif (!open(FILE, ">$path")) {
		print "<p><b>",&text('upload_ewrite', $path, $!),"</b><p>\n";
		}
	else {
		if ($in{'dos'}) {
			$in{'file'} =~ s/\r\n/\n/g;
			}
		print FILE $in{'file'};
		close(FILE);
		&unlock_file($path);
		&webmin_log("upload", undef, $path);
		$info = &file_info_line($path);
		print "<script>\n";
		print "opener.document.FileManager.",
		      "upload_notify(\"$path\", \"$info\");\n";
		print "close();\n";
		print "</script>\n";
		}
	}
   07070100050b17000041ed0000000000000001000000053ac03bed00000000000000200000000000000000000000000000000d00000003reloc/format  07070100050b18000081a40000000000000002000000013ac038910000042e000000200000000000000000000000000000001d00000003reloc/format/acl_security.pl  
require './format-lib.pl';

# acl_security_form(&options)
# Output HTML for editing security options for the format module
sub acl_security_form
{
local @dlist = &list_disks();
local ($d, %dcan);
map { $dcan{$_}++ } split(/\s+/, $_[0]->{'disks'});
print "<tr> <td valign=top><b>$text{'acl_disks'}</b></td> <td>\n";
printf "<input type=radio name=disks_def value=1 %s> %s\n",
	$_[0]->{'disks'} eq '*' ? 'checked' : '', $text{'acl_dall'};
printf "<input type=radio name=disks_def value=0 %s> %s<br>\n",
	$_[0]->{'disks'} eq '*' ? '' : 'checked', $text{'acl_dsel'};
print "<select name=disks size=4 multiple>\n";
foreach $d (@dlist) {
	$d->{'device'} =~ s/^.*\///;
	printf "<option value='%s' %s>%s\n",
		$d->{'device'},
		$dcan{$d->{'device'}} ? "selected" : "",
		"$d->{'desc'} ($d->{'type'})";
	}
print "</select></td> </tr>\n";
}

# acl_security_save(&options)
# Parse the form for security options for the format module
sub acl_security_save
{
if ($in{'disks_def'}) {
	$_[0]->{'disks'} = "*";
	}
else {
	$_[0]->{'disks'} = join(" ", split(/\0/, $in{'disks'}));
	}
}

  07070100050b19000081a40000000000000002000000013ac0389100000054000000200000000000000000000000000000001400000003reloc/format/config   metastat_path=/usr/opt/SUNWmd/sbin/metastat
metadb_path=/usr/opt/SUNWmd/sbin/metadb
07070100050b1a000081a40000000000000002000000013ac038910000005a000000200000000000000000000000000000001900000003reloc/format/config.info  metastat_path=Full path to <tt>metastat</tt>,0
metadb_path=Full path to <tt>metadb</tt>,0
  07070100050b1b000081a40000000000000002000000013ac0389100000064000000200000000000000000000000000000001c00000003reloc/format/config.info.de   metastat_path=Absoluter Pfad zu <tt>metastat</tt>,0
metadb_path=Absoluter Pfad zu <tt>metadb</tt>,0
07070100050b1c000081a40000000000000002000000013ac038910000006e000000200000000000000000000000000000001c00000003reloc/format/config.info.es   metastat_path=Trayectoria completa a <tt>metastat</tt>,0
metadb_path=Trayectoria completa a <tt>metadb</tt>,0
  07070100050b1d000081a40000000000000002000000013ac0389100000068000000200000000000000000000000000000001c00000003reloc/format/config.info.fr   metastat_path=Chemin complet pour <tt>metastat</tt>,0
metadb_path=Chemin complet pour <tt>metadb</tt>,0
07070100050b1e000081a40000000000000002000000013ac0389100000062000000200000000000000000000000000000001c00000003reloc/format/config.info.pl   metastat_path=Pe硁a 禼ie縦a do <tt>metastat</tt>,0
metadb_path=Pe硁a 禼ie縦a do <tt>metadb</tt>,0
  07070100050b1f000081a40000000000000002000000013ac0389100000070000000200000000000000000000000000000001c00000003reloc/format/config.info.sv   metastat_path=Fullst鋘dig s鰇v鋑 till <tt>metastat</tt>,0
metadb_path=Fullst鋘dig s鰇v鋑 till <tt>metadb</tt>,0
07070100050b20000081a40000000000000002000000013ac0389100000059000000200000000000000000000000000000001c00000003reloc/format/config.info.tr   metastat_path=<tt>metastat</tt>'齨 tam yolu,0
metadb_path=<tt>metadb</tt>'nin tam yolu,0
   07070100050b21000081a40000000000000002000000013ac0389100000052000000200000000000000000000000000000001f00000003reloc/format/config.info.zh_CN    metastat_path=<tt>metastat</tt> 的全路径,0
metadb_path=<tt>metadb</tt> 的全路径,0
  07070100050b22000081a40000000000000002000000013ac038910000005c000000200000000000000000000000000000002400000003reloc/format/config.info.zh_TW.Big5   metastat_path= <tt>metastat</tt> Ч俱隔畖,0
metadb_path= <tt>metadb</tt> Ч俱隔畖,0
07070100050b23000081e40000000000000002000000013ac0389100000aa7000000200000000000000000000000000000002000000003reloc/format/copy_part_form.cgi   #!/usr/local/bin/perl
# copy_part_form.cgi
# Display a form for copying the partitions map of this disk to otthers

require './format-lib.pl';
&ReadParse();
&header("Copy Partition Map", "");
print "<hr>\n";
$extwidth = 400;

print "This form allows you to copy the partition map from this disk\n";
print "to others of the same size. This is useful for setting up disks\n";
print "for use as parts of a RAID or mirrored MetaDisk.<p>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>Partition</b></td> <td><b>Tag</b></td>\n";
print "<td><b>Extent</b></td> <td><b>Start</b></td> <td><b>End</b></td></tr>\n";
@dlist = &list_disks();
@dinfo = split(/\s+/, $dlist[$in{disk}]); $cyl = $dinfo[2];
@plist = &list_partitions($in{disk});
for($i=0; $i<@plist; $i++) {
	@p = split(/\s+/, $plist[$i]);
	print "<tr $cb> <td>$i</td> <td>$p[0]</td>\n";
	if ($p[3]) {
		printf "<td><img src=images/gap.gif height=10 width=%d>",
			$extwidth*$p[2]/$cyl;
		printf "<img src=images/use.gif height=10 width=%d>",
			$extwidth*($p[3]-$p[2])/$cyl;
		printf "<img src=images/gap.gif height=10 width=%d></td>\n",
			$extwidth*($cyl-$p[3])/$cyl;
		print "<td>$p[2]</td> <td>$p[3]</td> </tr>\n";
		}
	else { print "<td colspan=3><br></td>\n"; }
	print "</tr>\n";
	}
print "</table><p>\n";

# find all disks that are not in use
print "Select the disks to copy this partition map to..<br>\n";
print "<form action=copy_part.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb><td></td> <td><b>Disk Type</b></td> <td><b>Cylinders</b></td>\n";
print "     <td><b>Controller</b></td> <td><b>Target</b></td>\n";
print "     <td><b>Unit</b></td> <td><b>Device</b></td> <td><br></td> </tr>\n";
for($i=0; $i<@dlist; $i++) {
	print "<tr $cb> <td width=20>";
	@d = split(/\s+/, $dlist[$i]);
	undef($err);
	if ($d[2] ne $cyl) { $err = "Different disk size"; }
	elsif ($i == $in{disk}) { $err = "Source disk"; }
	else {
		@plist = split(/\s+/, &list_partitions($i));
		for($j=0; $j<@plist; $j++) {
			$dev = "/dev/dsk/$d[0]s$j";
			if (&device_status($dev)) {
				$err = "Currently in use";
				}
			}
		}

	if (!$err) { print "<input type=checkbox name=disk$i>\n"; }
	else { print "<br>"; }
	print "</td>\n";

	print "<td>$d[1]</td> <td>$d[2]</td>\n";
	$d[0] =~ /c(\d+)t(\d+)d(\d+)/;
	print "<td>$1</td> <td>$2</td> <td>$3</td> <td>$d[0]</td>\n";
	if ($err) { print "<td><font color=#ff0000>$err</font></td> </tr>\n"; }
	else { print "<td><font color=#00ff00>Possible target</font></td> </tr>\n"; }
	if (!$err) { $foundone = 1; }
	}
print "</table><p>\n";
if ($foundone) { print "<input type=submit value=Copy>\n"; }
else { print "No disks are possible targets for copying.\n"; }
print "</form>\n";

print "<hr>\n";
&footer("", "disk list");

 07070100050b24000081a40000000000000002000000013ac0389100000013000000200000000000000000000000000000001800000003reloc/format/defaultacl   noconfig=0
disks=*
 07070100050b25000081e40000000000000002000000013ac0389100000a67000000200000000000000000000000000000001b00000003reloc/format/edit_disk.cgi    #!/usr/local/bin/perl
# edit_disk.cgi
# Display information about a disk, with links to low-level format,
# repair and other dangerous options

require './format-lib.pl';
&header("Edit Disk", "");
print "<hr>\n";
print "<table width=100%><tr> <td valign=top>\n";
$d = $ARGV[0];

@dlist = &list_disks();
@dinfo = split(/\s+/, $dlist[$d]);
print "<table border width=100%>\n";
print "<tr $tb> <td><b>Disk Details</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";
print "<tr> <td><b>Disk Type:</b></td> <td>$dinfo[1]</td> </tr>\n";
print "<tr> <td><b>Device:</b></td> <td><tt>/dev/dsk/$dinfo[0]</tt></td> </tr>\n";

print "<tr> <td valign=top><b>SCSI:</b></td>\n";
$dinfo[0] =~ /c(\d+)t(\d+)d(\d+)/;
print "<td><table>\n";
print "<tr> <td>Controller</td> <td>$1</td> </tr>\n";
print "<tr> <td>Target</td> <td>$2</td> </tr>\n";
print "<tr> <td>Unit</td> <td>$3</td> </tr></table></td> </tr>\n";

print "<tr> <td valign=top><b>Vendor:</b></td>\n";
@inq = &disk_info($d);
print "<td><table>\n";
print "<tr> <td>Name</td> <td>$inq[0]</td> </tr>\n";
print "<tr> <td>Product</td> <td>$inq[1]</td> </tr>\n";
print "<tr> <td>Revision</td> <td>$inq[2]</td> </tr></table></td> </tr>\n";
print "</table></td></tr></table>\n";

print "</td> <td valign=top>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td colspan=2><b>Disk Tasks</b></td> </tr>\n";
@plist = &list_partitions($d);
for($i=0; $i<@plist; $i++) {
	@stat = &device_status("/dev/dsk/$dinfo[0]s$i");
	if (@stat) { $inuse = 1; }
	if ($stat[2]) { $mounted = 1; }
	}

print "<tr $cb> <form action=format_form.cgi>\n";
print "<td valign=top><b>Format Disk</b><br>\n";
if (!$inuse) {
	print "<input type=hidden name=disk value=$d>\n";
	print "<input type=submit value=\"Format\"></td>\n";
	print "<td>Does a low level format of the disk, permanently erasing\n";
	print "all data. This is only necessary if the disk has not been\n";
	print "formatted by the vendor.</td> </tr>\n";
	}
else {
	print "</td> <td>You cannot format this disk because it contains\n";
	print "filesystems that are in the system mount list.</td> </tr>\n";
	}
print "</form> </tr>\n";

print "<tr $cb> <form action=copy_part_form.cgi>\n";
print "<td valign=top><b>Copy Partitions</b><br>\n";
print "<input type=hidden name=disk value=$d>\n";
print "<input type=submit value=\"Copy\"></td>\n";
print "<td>Copy the partition map from this disk to other disks. This\n";
print "is useful if you have a large number of disks that need the same\n";
print "partition layout, such as for a MetaDisk array.</td> </tr>\n";
print "</form> </tr>\n";

print "</table>\n";

print "</td> </tr></table><p>\n";
print "<hr>\n";
&footer("", "disk list");

 07070100050b26000081e40000000000000002000000013ac03891000012e3000000200000000000000000000000000000001b00000003reloc/format/edit_part.cgi    #!/usr/local/bin/perl
# edit_part.cgi
# Edit an existing partition

require './format-lib.pl';
$d = $ARGV[0]; $p = $ARGV[1];
@dlist = &list_disks();
$dinfo = $dlist[$d];
&can_edit_disk($dinfo->{'device'}) || &error($text{'edit_ecannot'});
&header($text{'edit_title'}, "");
print "<hr>\n";
print "<table width=100%><tr> <td valign=top>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'edit_header'}</b></td> </tr>\n";
print "<form action=save_part.cgi><tr $cb><td><table>\n";
print "<input type=hidden name=disk value=$d>\n";
print "<input type=hidden name=part value=$p>\n";
@plist = &list_partitions($dinfo->{'device'});
$pinfo = $plist[$p];
$new = !$pinfo->{'end'};

$dinfo->{'device'} =~ /c(\d+)t(\d+)d(\d+)/;
print "<tr> <td><b>$text{'edit_location'}</b></td>\n";
print "<td>$pinfo->{'desc'}</td> </tr>\n";

$dev = $pinfo->{'device'};
print "<tr> <td><b>$text{'edit_dev'}</b></td> <td><tt>$dev</tt></td> </tr>\n";

print "<tr> <td><b>$text{'edit_type'}</b></td> <td><select name=tag>\n";
foreach $t (&list_tags()) {
	printf "<option %s>$t\n", $t eq $pinfo->{'tag'} ? "selected" : "";
	}
print "</select></td> </tr>\n";

print "<tr> <td><b>$text{'edit_flags'}</b></td>\n";
printf "<td nowrap><input type=checkbox name=writable value=1 %s> %s\n",
	$pinfo->{'flag'} =~ /^w.$/ ? "checked" : "", $text{'edit_w'};
printf "<input type=checkbox name=mountable value=1 %s> %s</td> </tr>\n",
	$pinfo->{'flag'} =~ /^.m$/ ? "checked" : "", $text{'edit_m'};

print "<tr> <td><b>$text{'edit_extent'}</b></td>\n";
printf "<td nowrap><input name=start size=6 value=\"%s\"> - \n",
	$pinfo->{'end'} ? $pinfo->{'start'} : "";
printf "<input name=end size=6 value=\"%s\">\n",
	$pinfo->{'end'} ? $pinfo->{'end'} : "";
print "of $dinfo->{'cyl'}</td> </tr>\n";

if ($pinfo->{'end'}) {
	print "<tr> <td><b>$text{'edit_stat'}</b></td>\n";
	@stat = &device_status($dev);
	if ($stat[1] eq "meta") {
		print "<td>$text{'edit_meta'}</td> </tr>\n";
		}
	elsif ($stat[1] eq "metadb") {
		print "<td>$text{'edit_metadb'}</td> </tr>\n";
		}
	elsif (@stat) {
		local $msg = $stat[2] ? 'edit_mount' : 'edit_umount';
		$msg .= 'vm' if ($stat[1] eq 'swap');
		print "<td>",&text($msg, "<tt>$stat[0]</tt>",
				   "<tt>$stat[1]</tt>"),"</td> </tr>\n";
		}
	else { print "<td>$text{'edit_nouse'}</td> </tr>\n"; }

	if ($stat[1] !~ /^meta/) {
		print "<tr> <td><b>$text{'edit_fs'}</b></td>\n";
		$fs = &filesystem_type($dev);
		printf "<td>%s</td> </tr>\n", $fs ? &fstype_name($fs) : "None";
		}
	}

print "</table></td></tr></table><p>\n";
if (@stat) { print "<b>$text{'edit_inuse'}</b>.\n"; }
elsif ($new) {
	print "<input type=submit value=\"$text{'edit_setup'}\">\n";
	}
else {
	print "<input type=submit value=\"$text{'edit_change'}\">\n";
	print "<input type=submit name=delete value=\"$text{'delete'}\">\n";
	}
print "</form>\n";

print "</td> <td valign=top>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td colspan=2><b>$text{'edit_tasks'}</b></td> </tr>\n";

print "<tr $cb> <form action=newfs_form.cgi>\n";
print "<td valign=top nowrap><b>$text{'edit_newfs'}</b><br>\n";
if (!$new && (!@stat || $stat[2] == 0)) {
	print "<input type=hidden name=dev value=$dev>\n";
	print "<input type=submit value=\"$text{'create'}\"></td>\n";
	print "<td>$text{'edit_newdesc1'}</td>\n";
	}
elsif ($new) {
	print "</td> <td>$text{'edit_newdesc2'}</td>\n";
	}
else {
	print "</td> <td>$text{'edit_newdesc3'}</td>\n";
	}
print "</form> </tr>\n";


print "<tr $cb> <form action=fsck_form.cgi>\n";
print "<td valign=top><b>$text{'edit_fsckfs'}</b><br>\n";
if (!$new && (!@stat || $stat[2] == 0) && $fs eq "ufs") {
	print "<input type=hidden name=dev value=$dev>\n";
	print "<input type=submit value=\"$text{'edit_fsck'}\"></td>\n";
	print "<td>$text{'edit_fsckdesc1'}</td>\n";
	}
elsif ($new) {
	print "</td> <td>$text{'edit_fsckdesc2'}</td>\n";
	}
elsif (@stat && $stat[2]) {
	print "</td> <td>$text{'edit_fsckdesc3'}</td>\n";
	}
elsif (!$fs) {
	print "</td> <td>$text{'edit_fsckdesc4'}</td>\n";
	}
else {
	print "</td> <td>$text{'edit_fsckdesc5'}</td>\n";
	}
print "</form> </tr>\n";

print "<tr $cb> <form action=tunefs_form.cgi>\n";
print "<td valign=top><b>$text{'edit_tunefs'}</b><br>\n";
if (!$new && (!@stat || $stat[2] == 0) && $fs eq "ufs") {
	print "<input type=hidden name=dev value=$dev>\n";
	print "<input type=submit value=\"$text{'edit_tune'}\"></td>\n";
	print "<td>$text{'edit_tunedesc1'}</td>\n";
	}
elsif ($new) {
	print "</td> <td>$text{'edit_tunedesc2'}</td>\n";
	}
elsif (@stat && $stat[2]) {
	print "</td> <td>$text{'edit_tunedesc3'}</td>\n";
	}
elsif (!$fs) {
	print "</td> <td>$text{'edit_tunedesc4'}</td>\n";
	}
elsif ($fs ne "ufs") {
	print "</td> <td>$text{'edit_tunedesc5'}</td>\n";
	}
print "</form> </tr>\n";

print "</table>\n";
print "</td></tr></table>\n";
print "<hr>\n";
&footer("", $text{'index_return'});

 07070100050b27000081a40000000000000002000000013ac0389100002350000000200000000000000000000000000000001b00000003reloc/format/format-lib.pl    # format-lib.pl
# Common functions for partitioning and formatting disks under solaris

do '../web-lib.pl';
&init_config();
&foreign_require("mount", "mount-lib.pl");
&foreign_require("proc", "proc-lib.pl");

%access = &get_module_acl();
$| = 1;

# list_disks()
# Returns a list of structures, one per disk
sub list_disks
{
local(@rv);
local $temp = &tempname();
open(TEMP, ">$temp");
print TEMP "disk\n";
close(TEMP);
open(FORMAT, "format -f $temp |");
while(1) {
	local $rv = &wait_for(FORMAT, 'Specify', '\s+\d+\. (\S+) <(.*) cyl (\d+) alt (\d+) hd (\d+) sec (\d+)>\s*(\S*)', '\s+\d+\. (\S+) <drive type unknown>', 'space for more');
	if ($rv == 0) { last; }
	elsif ($rv == 1) {
		local $disk = { 'device' => "/dev/dsk/$matches[1]",
			    	'type' => $matches[2] eq 'DEFAULT' ?
					  undef : $matches[2],
			    	'cyl' => $matches[3],
			    	'alt' => $matches[4],
			    	'hd' => $matches[5],
			    	'sec' => $matches[6],
			    	'volume' => $matches[7] };
		if ($matches[1] =~ /c(\d+)t(\d+)d(\d+)$/) {
			$disk->{'desc'} = &text('select_device',
						"$1", "$2", "$3");
			}
		elsif ($matches[1] =~ /c(\d+)d(\d+)$/) {
			$disk->{'desc'} = &text('select_idedevice',
					    	chr($1*2 + $2 + 65));
			}
		push(@rv, $disk);
		}
	}
close(FORMAT);
unlink($temp);
return @rv;
}

# disk_info(disk)
# Returns an array containing a disks vendor, product and revision
sub disk_info
{
local(@rv);
&open_format();
&choose_disk($_[0]);
&fast_wait_for($fh, 'format>');
&wprint("inquiry\n");
&wait_for($fh, 'Vendor:\s+(.*)\r\nProduct:\s+(.*)\r\nRevision:\s+(.*)\r\n');
@rv = ($matches[1],$matches[2],$matches[3]);
&wait_for($fh, 'format>');
return @rv;
}

# list_partitions(device)
# Returns a list of structures, one per partition
sub list_partitions
{
local(@rv, $secs, $i);
local @tag = &list_tags();
open(VTOC, "prtvtoc $_[0]s0 |");
while(<VTOC>) {
	if (/(\d+)\s+sectors\/cylinder/) {
		$secs = $1;
		}
	if (/^\s+(\d+)\s+(\S+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/) {
		local $n = $1;
		local $part = { 'tag' => $tag[$2],
				'flag' => $3 eq "00" ? "wm" :
					  $3 eq "01" ? "wu" :
					  $3 eq "10" ? "rm" : "ru",
				'start' => int($4 / $secs),
				'end' => int($6 / $secs),
				'device' => $_[0]."s$n" };
		$rv[$n] = $part;
		}
	}
close(VTOC);
for($i=0; $i<8 || $i<@rv; $i++) {
	$rv[$i] = { 'tag' => 'unassigned',
		    'flag' => 'wm',
		    'device' => $_[0]."s$i" } if (!$rv[$i]);
	if ($_[0] =~ /c(\d+)t(\d+)d(\d+)$/) {
		$rv[$i]->{'desc'} = &text('select_part',
					  "$1", "$2", "$3", $i);
		}
	elsif ($_[0] =~ /c(\d+)d(\d+)$/) {
		$rv[$i]->{'desc'} = &text('select_idepart',
				    	  chr($1*2 + $2 + 65), $i);
		}
	}
return @rv;

#&open_format();
#&choose_disk($_[0]);
#if (!&wait_for($fh, 'unformatted', 'formatted')) { return (); }
#&wait_for($fh, 'format>');
#&wprint("partition\n");
#&wait_for($fh, 'partition>');
#&wprint("print\n");
#&wait_for($fh, 'Blocks\r\n');
#while(&wait_for($fh, 'partition>', '\s+\d+\s+(\S+)\s+(\S+)\s+(\d+)(\s+-\s+(\d+))?.*\r\n')) {
#	local $part = { 'tag' => $matches[1],
#			'flag' => $matches[2],
#			'start' => $matches[3],
#			'end' => $matches[5] ? $matches[5] : $matches[3] };
#	if ($matches[1] =~ /c(\d+)t(\d+)d(\d+)s(\d+)$/) {
#		$part->{'desc'} = &text('select_part', "$1", "$2", "$3", "$4");
#		}
#	push(@rv, $part);
#	}
#&wprint("quit\n");
#&wait_for($fh, 'format>');
#return @rv[0..7];
}

# modify_partition(disk, partition, tag, flag, start, end)
# Changes an existing partition
sub modify_partition
{
`uname -m` =~ /sun/i || &error($text{'esun'});
local(@rv);
&open_format();
&choose_disk($_[0]);
&wait_for($fh, 'format>');
&wprint("partition\n");
&wait_for($fh, 'partition>');
&wprint("$_[1]\n");
&wait_for($fh, 'Enter.*:'); &wprint("$_[2]\n");
&wait_for($fh, 'Enter.*:'); &wprint("$_[3]\n");
&wait_for($fh, 'Enter.*:'); &wprint("$_[4]\n");
&wait_for($fh, 'Enter.*:');
if ($_[4] || $_[5]) { &wprint(($_[5]-$_[4]+1)."c\n"); }
else {
	# deleting this partition..
	&wprint("0\n");
	}
&wait_for($fh, 'partition>');
&wprint("label\n");
if (&wait_for($fh, 'continue', 'Cannot')) {
	&error($text{'emounted'});
	}
&wprint("y\n");
if (&wait_for($fh, 'partition>', 'no backup labels')) {
	&error($text{'elast'});
	}
&wprint("quit\n");
&wait_for($fh, 'format>');
}

# list_tags()
# Returns a list of all known tags
sub list_tags
{
return ("unassigned", "boot", "root", "swap",
	"usr", "backup", "stand", "var", "home", "alternates", "cache");

}

# device_status(device)
# Returns the mount point, type and status of some device. Uses the mount module
# to query the list of known and mounted filesystems
sub device_status
{
@mounted = &foreign_call("mount", "list_mounted") if (!@mounted);
@mounts = &foreign_call("mount", "list_mounts") if (!@mounts);
local ($mounted) = grep { $_->[1] eq $_[0] } @mounted;
local ($mount) = grep { $_->[1] eq $_[0] } @mounts;
if ($mounted) { return ($mounted->[0], $mounted->[2], 1,
			&indexof($mount, @mounts),
			&indexof($mounted, @mounted)); }
elsif ($mount) { return ($mount->[0], $mount->[2], 0,
			 &indexof($mount, @mounts)); }
else {
	&metamap_init();
	if ($metastat{$_[0]}) { return ("meta", "meta", 1); }
	if ($metadb{$_[0]}) { return ("meta", "metadb", 1); }
	return ();
	}
}


# fstype_name(type)
# Returns a human-readable filesystem name
sub fstype_name
{
return $text{"fstype_$_[0]"} ? $text{"fstype_$_[0]"}
			     : $text{'fstype_unknown'};
}

# filesystem_type(device)
# Calls fstyp to get the filesystem on some device
sub filesystem_type
{
local($out);
chop($out = `fstyp $_[0] 2>&1`);
if ($out =~ /^\S+$/) { return $out; }
return undef;
}

# fsck_error(code)
# Translate an error code from fsck
sub fsck_error
{
return $text{"fsck_$_[0]"} ? $text{"fsck_$_[0]"} : $text{'fsck_unknown'};
}


#############################################################################
# Internal functions
#############################################################################
# open_format()
# Internal function to run the 'format' command
sub open_format
{
return if ($format_already_open);
($fh, $fpid) = &foreign_call("proc", "pty_process_exec", "format");
while(1) {
	local $rv = &wait_for($fh, 'Specify.*:', 'no disks found', 'space for more');
	if ($rv == 0) { last; }
	elsif ($rv == 1) { &error($text{'eformat'}); }
	else { &wprint(" "); }
	}
&wprint("0\n");
&wait_for($fh, 'format>');
$format_already_open++;
}

sub wprint
{
syswrite($fh, $_[0], length($_[0]));
}

sub opt_input
{
print $_[2] ? "<tr>" : "";
print "<td align=right><b>$text{$_[0]}</b></td> <td nowrap>\n";
print "<input type=radio name=$_[0]_def value=1 checked> $text{'default'}\n";
print "&nbsp; <input type=radio name=$_[0]_def value=0>\n";
print "<input name=$_[0] size=6> $_[1]</td>";
print $_[2] ? "\n" : "</tr>\n";
}

sub opt_check
{
if ($in{"$_[0]_def"}) { return ""; }
elsif ($in{$_[0]} !~ /^$_[1]$/) {
	&error(&text('opt_error', $in{$_[0]}, $text{$_[0]}));
	}
else { return " $_[2] $in{$_[0]}"; }
}

# metamap_init()
# internal function to build %metastat and %metadb arrays
sub metamap_init
{
if ($done_metamap_init) { return; }
$done_metamap_init = 1;
if (-x $config{metastat_path} && -x $config{metadb_path}) {
	open(METASTAT, "$config{metastat_path} 2>&1 |");
	while(<METASTAT>) {
		if (/(c\d+t\d+d\d+s\d+)/) { $metastat{"/dev/dsk/$1"}++; }
		}
	close(METASTAT);
	open(METADB, "$config{metadb_path} -i 2>&1 |");
	while(<METADB>) {
		if (/(c\d+t\d+d\d+s\d+)/) { $metadb{"/dev/dsk/$1"}++; }
		}
	close(METADB);
	}
}

sub choose_disk
{
&wprint("disk\n");
while(&wait_for($fh, 'Specify.*:', 'space for more')) {
	&wprint(" ");
	}
&wprint("$_[0]\n");
}

# can_edit_disk(device)
sub can_edit_disk
{
$_[0] =~ /(c\d+t\d+d\d+)/;
foreach (split(/\s+/, $access{'disks'})) {
	return 1 if ($_ eq "*" || $_ eq $1);
	}
return 0;
}

# partition_select(name, value, mode, &found)
# Returns HTML for selecting a disk or partition
# mode 0 = disk partitions
#      1 = disks
#      2 = disks and disk partitions
sub partition_select
{
local $rv = "<select name=$_[0]>\n";
local ($found, $d, $p);
local @dlist = &list_disks();
foreach $d (@dlist) {
	if ($_[0] > 2) {
		local $name = $d->{'desc'};
		$name .= " ($d->{'type'})" if ($d->{'type'});
		$rv .= sprintf "<option value=%s %s>%s\n",
			$d->{'device'},
			$_[1] eq $d->{'device'} ? "selected" : "", $name;
		$found++ if ($_[1] eq $d->{'device'});
		}
	if ($_[0] != 1) {
		local @parts = &list_partitions($d->{'device'});
		foreach $p (@parts) {
			local $name = $p->{'desc'};
			next if (!$p->{'end'});
			$name .= " ($p->{'tag'})" if ($p->{'tag'});
			$rv .= sprintf "<option %s value=%s>%s\n",
				$_[1] eq $p->{'device'} ? "selected" : "",
				$p->{'device'}, $name;
			$found++ if ($_[1] eq $p->{'device'});
			}
		}
	}
if (!$found && $_[1] && !$_[3]) {
	$rv .= "<option selected>$_[1]\n";
	}
if ($_[3]) {
	${$_[3]} = $found;
	}
$rv .= "</select>\n";
return $rv;
}

# disk_space(device)
# Returns the amount of total and free space for some filesystem, or an
# empty array if not appropriate.
sub disk_space
{
local $out = `df -k $_[0] 2>&1`;
$out =~ /(\/dev\/\S+)\s+(\d+)\s+\S+\s+(\d+)/ || return ();
return ($2, $3);
}

07070100050b28000081e40000000000000002000000013ac0389100000229000000200000000000000000000000000000001600000003reloc/format/fsck.cgi #!/usr/local/bin/perl
# fsck.cgi
# Do the actual checking of a filesystem

require './format-lib.pl';
&ReadParse();
&can_edit_disk($in{'dev'}) || &error($text{'fsck_ecannot'});
&header($text{'fsck_title'}, "");
print "<hr>\n";
$in{dev} =~ s/dsk/rdsk/g;
$cmd = "fsck -F ufs $in{mode} $in{dev}";

print &text('fsck_exec', "<tt>$cmd</tt>"),"<p>\n";
print "<pre>\n";
open(FSCK, "$cmd 2>&1 </dev/null |");
while(<FSCK>) { print; }
close(FSCK);
print "</pre>\n";
print "... ",&fsck_error($?/256),"<p>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

   07070100050b29000081e40000000000000002000000013ac0389100000376000000200000000000000000000000000000001b00000003reloc/format/fsck_form.cgi    #!/usr/local/bin/perl
# fsck_form.cgi
# Display a form asking for fsck options

require './format-lib.pl';
&ReadParse();
&can_edit_disk($in{'dev'}) || &error($text{'fsck_ecannot'});
&header($text{'fsck_title'}, "");
print "<hr>\n";

$fs = &filesystem_type($in{'dev'});
print "<form action=fsck.cgi>\n";
print "<input type=hidden name=dev value=\"$in{dev}\">\n";
print &text('fsck_desc', &fstype_name($fs), "<tt>$in{'dev'}</tt>"),"<p>\n";

print "<input type=radio name=mode value=\"-m\">\n";
print "$text{'fsck_mode0'}<br>\n";

print "<input type=radio name=mode value=\"-n\">\n";
print "$text{'fsck_mode1'}<br>\n";

print "<input type=radio name=mode value=\"-y\" checked>\n";
print "$text{'fsck_mode2'}<br><p>\n";

print "<div align=center><input type=submit ",
      "value=\"$text{'fsck_repair'}\"></div>\n";
print "</form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

  070701000521d9000041ed0000000000000001000000023ac03bec00000000000000200000000000000000000000000000001200000003reloc/format/help 070701000521da000081a40000000000000002000000013ac03891000000cd000000200000000000000000000000000000001f00000003reloc/format/help/help.es.html    <body bgcolor=#ffffff>
<h1>La Ayuda para este m骴ulo a鷑 no est hecha</h1>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Volver a m骴ulo</a><p>
 

   070701000521db000081a40000000000000002000000013ac03891000000c7000000200000000000000000000000000000001c00000003reloc/format/help/help.html   <body bgcolor=#ffffff>
<h1>Help for this module is not done yet</h1>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Return to module</a><p>
 

 070701000521dc000081a40000000000000002000000013ac03891000000cc000000200000000000000000000000000000001f00000003reloc/format/help/help.sv.html    <body bgcolor=#ffffff>
<h1>Det finns ingen hj鋖p till denna modul 鋘</h1>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Tillbaka till modul</a>
 

070701000521dd000081a40000000000000002000000013ac03891000000b1000000200000000000000000000000000000002700000003reloc/format/help/help.zh_TW.Big5.html    <body bgcolor=#ffffff>
<h1>硂家舱弧﹟ゼЧΘ</h1>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">家舱</a><p>
 

   07070100053b16000041ed0000000000000001000000023ac03bec00000000000000200000000000000000000000000000001400000003reloc/format/images   07070100053b17000081a40000000000000002000000013ac038910000002c000000200000000000000000000000000000001c00000003reloc/format/images/gap.gif   GIF89a 
      !   ,     
  審 ;07070100053b18000081a40000000000000002000000013ac0389100000134000000200000000000000000000000000000001d00000003reloc/format/images/icon.gif  GIF89a0 0   fff櫃櫶烫!    ,    0 0  ⻊彥隧4≮ΖV
祖T釅+葛Ez'KP6$鎡掊鯰}稍$暩蒝9嬊忻&穾g$蠇e衡[脓'趋别2ㄗ鯣鸳╢重橱県i8IIv3V枳忤蓹嘿7抸	電J鹤Y速7
妧桘|[\yLqu鲑c%=蛨+噲)+蜌璊h+84^LMC_絹_胼<翉>I賑Q朽@偹9牣呖{熘-|堗;:(  ;07070100053b19000081a40000000000000002000000013ac0389100000024000000200000000000000000000000000000001c00000003reloc/format/images/use.gif   GIF87a 
        ,     
  剰 ;07070100050b2a000081e40000000000000002000000013ac0389100000b8a000000200000000000000000000000000000001700000003reloc/format/index.cgi    #!/usr/local/bin/perl
# index.cgi
# Display a list of known disks and partitions

require './format-lib.pl';
&header($text{'index_title'}, "", undef, 1, 1);
print "<hr>\n";
$extwidth = 250;

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'index_disk'}</b></td> ",
      "<td><b>$text{'index_parts'}</b></td> </tr>\n";
@dlist = &list_disks();
for($i=0; $i<@dlist; $i++) {
	$dl = $dlist[$i];
	next if (!&can_edit_disk($dl->{'device'}));
	print "<tr $cb> <td valign=top><table>\n";
	print "<tr> <td><b>$text{'index_location'}</b></td> ";
	print "<td>$dl->{'desc'}</td> </tr>\n";
	print "<tr> <td><b>$text{'index_cyl'}</b></td>\n";
	print "<td>$dl->{'cyl'}</td> </tr>\n";
	print "<tr> <td><b>$text{'index_model'}</b></td> ";
	print "<td>",$dl->{'type'} ? $dl->{'type'} : $text{'index_unknown'},
	      "</td> </tr>\n";
	print "</table></td> <td valign=top>\n";
	if (!$dl->{'device'}) {
		# Drive type unknown..
		print "<b>$text{'index_unknown2'}</b>\n";
		}
	elsif (@parts = &list_partitions($dl->{'device'})) {
		# Known and formatted..
		print "<table width=100%>\n";
		print "<tr> <td><b>$text{'index_no'}</b></td> ",
		      "<td><b>$text{'index_type'}</b></td> ",
		      "<td><b>$text{'index_extent'}</b></td> ",
		      "<td><b>$text{'index_start'}</b></td> ",
		      "<td><b>$text{'index_end'}</b></td> ",
		      "<td><b>$text{'index_use'}</b></td> ",
		      "<td><b>$text{'index_free'}</b></td> </tr>\n";
		for($j=0; $j<@parts; $j++) {
			$p = $parts[$j];
			print "<tr> <td><a href=\"edit_part.cgi?$i+$j\">$j</a>",
			      "</td> <td>$p->{'tag'}</td> <td>\n";
			if ($p->{'end'} != 0) {
				printf
				  "<img src=images/gap.gif height=10 width=%d>",
				  $extwidth*$p->{'start'}/$dl->{'cyl'};
				printf
				  "<img src=images/use.gif height=10 width=%d>",
				  $extwidth*($p->{'end'}-$p->{'start'})/
				  $dl->{'cyl'};
				printf
				  "<img src=images/gap.gif height=10 width=%d>",
				  $extwidth*($dl->{'cyl'}-$p->{'end'})/
				  $dl->{'cyl'};
				print "</td> <td>$p->{'start'}</td> ",
				      "<td>$p->{'end'}</td> <td>\n";
				@stat = &device_status($p->{'device'});
				if ($stat[1] =~ /^meta/) {
					print "MetaDisk\n";
					}
				elsif ($stat[0] && $stat[3] == -1) {
					print "<tt><a href=/mount/edit_mount.cgi?index=$stat[4]&temp=1&return=/$module_name/>$stat[0]</a></tt>\n";
					}
				elsif ($stat[0]) {
					print "<tt><a href=/mount/edit_mount.cgi?index=$stat[3]&return=/$module_name/>$stat[0]</a></tt>\n";
					}
				print "</td> <td>\n";
				if ($stat[0] ne 'swap' &&
				    (@space = &disk_space($p->{'device'})) &&
				    $space[0]) {
					printf "%d %%\n",
					       100 * $space[1] / $space[0];
					}
				print "</td> </tr>\n";
				}
			else { print "<td colspan=5></td>\n"; }
			}
		print "</table>\n";
		}
	else {
		# Disk is not formatted.. 
		print "<b>$text{'index_format'}</b>\n";
		}
	print "</td> </tr>\n";
	}
print "</table><p>\n";

print "<hr>\n";
&footer("/", $text{'index'});

  07070100056697000041ed0000000000000001000000023ac03bec00000000000000200000000000000000000000000000001200000003reloc/format/lang 07070100056698000081a40000000000000002000000013ac0389100000079000000200000000000000000000000000000001500000003reloc/format/lang/de  select_device=SCSI Controller $1 Ziel $2 Ger&auml;t $3
select_part=SCSI Controller $1 Ziel $2 Ger&auml;t $3 Partition $4
   07070100056699000081a40000000000000002000000013ac038910000178e000000200000000000000000000000000000001500000003reloc/format/lang/en  index_title=Partitions on Local Disks
index_disk=Disk
index_parts=Partitions
index_location=Location
index_model=Model
index_unknown=Unknown
index_cyl=Cylinders
index_unknown2=Disk type unknown
index_no=No.
index_type=Type
index_extent=Extent
index_start=Start
index_end=End
index_use=Use
index_free=Free
index_format=This disk is not formatted
index_return=disk list

edit_ecannot=You are not allowed to edit this disk
edit_title=Edit Partition
edit_header=Partition Details
edit_location=Location
edit_dev=Device
edit_type=Type
edit_flags=Flags
edit_w=Writable
edit_m=Mountable
edit_extent=Extent
edit_stat=Status
edit_meta=Part of MetaDisk
edit_metadb=Part of MetaDisk database
edit_mount=Mounted on $1 as $2
edit_mountvm=Mounted as virtual memory
edit_umount=For mounting on $1 as $2
edit_umountvm=For mounting as virtual memory
edit_nouse=Not in use
edit_fs=Filesystem
edit_inuse=This partition cannot be changed as it is currently in use
edit_setup=Setup
edit_change=Change
edit_tasks=Partition Tasks
edit_newfs=New Filesystem
edit_newdesc1=Builds a new filesystem on this partition, permanently erasing any existing files. You must do this after creating a new partition or changing an existing one.
edit_newdesc2=You cannot build a new filesysten on this partition as it has not been been setup yet.
edit_newdesc3=You cannot build a new filesystem on this partition as it is currently mounted. Use the <a href=/mount/>filesystems module</a> to unmount this partition first.
edit_fsckfs=Repair Filesystem
edit_fsck=Repair
edit_fsckdesc1=Calls the <tt>fsck</tt> program to repair a filesystem so that it can be mounted. This may be necessary if your system was not shut down properly.
edit_fsckdesc2=You cannot check the filesystem on this partition because it has not been setup yet.
edit_fsckdesc3=You cannot check the filesystem on this partition because it is currently mounted. Use the <a href=/mount/>filesystems module</a> to unmount it first.
edit_fsckdesc4=You cannot check the filesystem on this partition because it does not have a filesystem.
edit_fsckdesc5=You cannot check the filesystem on this partition because only <tt>UFS</tt> filesystems can be checked.
edit_tunefs=Tune Filesystem
edit_tune=Tune
edit_tunedesc1=Allows you to modify various parameters of an existing filesystem
edit_tunedesc2=You cannot tune the filesystem on this partition because it has not been setup yet.
edit_tunedesc3=You cannot tune the filesystem on this partition because it is currently mounted. Use the <a href=/mount/>filesystems module</a> to unmount it first.
edit_tunedesc4=You cannot tune the filesystem on this partition because it does not have a filesystem.
edit_tunedesc5=You cannot tune the filesystem on this partition because only <tt>UFS</tt> filesystems can be tuned.

save_ecannot=You are not allowed to edit this disk
save_edelete=Failed to delete partition
save_esave=Failed to save partition
save_estart='$1' is not a valid starting cylinder
save_eend='$1' is not a valid ending cylinder
save_estartmin=The starting cylinder must be > 0
save_eendmax=The ending cylinder must be < $1
save_estartend=The starting cylinder must be less than the ending

newfs_title=Create Filesystem
newfs_ecannot=You are not allowed to format this disk
newfs_desc=Clicking the button at the bottom of this form will build a new $1 on the device $2. All data on this partition will be permanently erased.
newfs_warn=This partition has been mounted on $1. Creating a new filesystem will erase all files that were previously accesible under this directory.
newfs_header=Filesystem Options
ufs_a=Spare blocks / cylinder
ufs_b=Logical block size
ufs_c=Cylinders / group
ufs_d=Rotational delay
ufs_f=Fragment size
ufs_i=Inode size
ufs_m=Reserved space
ufs_n=Rotational positions
ufs_o=Optimize for
newfs_space=Space
newfs_time=Time
ufs_r=Disk speed
ufs_s=Filesystem size
ufs_t=Tracks / cylinder
ufs_cb=Max contiguous blocks
newfs_create=Create Filesystem
newfs_err=Failed to create filesystem
newfs_exec=Executing command $1 ..
newfs_failed=.. command failed!
newfs_ok=.. command complete.

fsck_title=Repair Filesystem
fsck_ecannot=You are not allowed to repair this disk
fsck_desc=Clicking the <b>Repair</b> button will check and optionally repair the $1 on $2. The level of checking and repair is determined by your choice below.
fsck_mode0=Only report the filesystem status.
fsck_mode1=Check the entire filesystem for errors, but do not fix any errors found.
fsck_mode2=Check for and fix any errors found on the entire filesystem.
fsck_repair=Repair
fsck_exec=Executing command $1 ..
fsck_0=no errors detected
fsck_1=incorrect parameters
fsck_32=filesystem needs checking
fsck_34=cannot open device
fsck_36=uncorrectable errors detected
fsck_37=process killed during checking
fsck_39=uncorrectable errors detected!
fsck_40=no errors detected
fsck_unknown=unknown error

tunefs_title=Tune Filesystem
tunefs_ecannot=You are not allowed to tune this disk
tunefs_desc=This form allows you to adjust various parameters of the $1 on $2. Existing files on this filesystem will not be harmed.
tunefs_header=Tuning Parameters
tunefs_opt=Optimize for
tunefs_space=Space
tunefs_time=Time
tunefs_tune=Tune Filesystem
tunefs_a=Max contiguous blocks
tunefs_d=Rotational delay
tunefs_e=Max file blocks per cylinder group
tunefs_m=Reserved space
tunefs_err=Failed to tune filesystem
tunefs_exec=Executing command $1 ..
tunefs_failed=.. command failed!
tunefs_ok=.. command complete.

select_device=SCSI controller $1 target $2 unit $3
select_idedevice=IDE device $1
select_part=SCSI controller $1 target $2 unit $3 partition $4
select_idepart=IDE device $1 partition $2
opt_error='$1' is not a valid $2
esun=Partitions can only be modified on Sun hardware
emounted=Disk has mounted partitions
elast=The last partition cannot be removed
eformat=<tt>format</tt> didn't find any disks!

fstype_ufs=Solaris Unix Filesystem
fstype_unknown=Unknown Filesystem

acl_disks=Disks this user can partition and format
acl_dall=All disks
acl_dsel=Selected..
  0707010005669a000081a40000000000000002000000013ac03891000017d1000000200000000000000000000000000000001500000003reloc/format/lang/es  index_title=Particiones en Discos Locales
index_disk=Disco
index_parts=Particiones
index_location=Localizaci髇
index_type=Modelo
index_unknown=Desconocido
index_cyl=Cilindros
index_unknown2=Tipo de disco desconocido
index_no=N鷐.
index_type=Tipo
index_extent=Extensi髇
index_start=Inicio
index_end=Fin
index_use=Uso
index_free=Libre
index_format=Este disco no est formateado
index_return=lista de discos

edit_ecannot=You are not allowed to edit this disk
edit_title=Edit Partition
edit_header=Partition Details
edit_location=Location
edit_dev=Device
edit_type=Type
edit_flags=Flags
edit_w=Writable
edit_m=Mountable
edit_extent=Extent
edit_stat=Status
edit_meta=Part of MetaDisk
edit_metadb=Part of MetaDisk database
edit_mount=Mounted on $1 as $2
edit_mountvm=Mounted as virtual memory
edit_umount=For mounting on $1 as $2
edit_umountvm=For mounting as virtual memory
edit_nouse=Not in use
edit_fs=Filesystem
edit_inuse=This partition cannot be changed as it is currently in use
edit_setup=Setup
edit_change=Change
edit_tasks=Partition Tasks
edit_newfs=New Filesystem
edit_newdesc1=Builds a new filesystem on this partition, permanently erasing any existing files. You must do this after creating a new partition or changing an existing one.
edit_newdesc2=You cannot build a new filesysten on this partition as it has not been been setup yet.
edit_newdesc3=You cannot build a new filesystem on this partition as it is currently mounted. Use the <a href=/mount/>filesystems module</a> to unmount this partition first.
edit_fsckfs=Repair Filesystem
edit_fsck=Repair
edit_fsckdesc1=Calls the <tt>fsck</tt> program to repair a filesystem so that it can be mounted. This may be necessary if your system was not shut down properly.
edit_fsckdesc2=You cannot check the filesystem on this partition because it has not been setup yet.
edit_fsckdesc3=You cannot check the filesystem on this partition because it is currently mounted. Use the <a href=/mount/>filesystems module</a> to unmount it first.
edit_fsckdesc4=You cannot check the filesystem on this partition because it does not have a filesystem.
edit_fsckdesc5=You cannot check the filesystem on this partition because only <tt>UFS</tt> filesystems can be checked.
edit_tunefs=Tune Filesystem
edit_tune=Tune
edit_tunedesc1=Allows you to modify various parameters of an existing filesystem
edit_tunedesc2=You cannot tune the filesystem on this partition because it has not been setup yet.
edit_tunedesc3=You cannot tune the filesystem on this partition because it is currently mounted. Use the <a href=/mount/>filesystems module</a> to unmount it first.
edit_tunedesc4=You cannot tune the filesystem on this partition because it does not have a filesystem.
edit_tunedesc5=You cannot tune the filesystem on this partition because only <tt>UFS</tt> filesystems can be tuned.

save_ecannot=You are not allowed to edit this disk
save_edelete=Failed to delete partition
save_esave=Failed to save partition
save_estart='$1' is not a valid starting cylinder
save_eend='$1' is not a valid ending cylinder
save_estartmin=The starting cylinder must be > 0
save_eendmax=The ending cylinder must be < $1
save_estartend=The starting cylinder must be less than the ending

newfs_title=Create Filesystem
newfs_ecannot=You are not allowed to format this disk
newfs_desc=Clicking the button at the bottom of this form will build a new $1 on the device $2. All data on this partition will be permanently erased.
newfs_warn=This partition has been mounted on $1. Creating a new filesystem will erase all files that were previously accesible under this directory.
newfs_header=Filesystem Options
ufs_a=Spare blocks / cylinder
ufs_b=Logical block size
ufs_c=Cylinders / group
ufs_d=Rotational delay
ufs_f=Fragment size
ufs_i=Inode size
ufs_m=Reserved space
ufs_n=Rotational positions
ufs_o=Optimize for
newfs_space=Space
newfs_time=Time
ufs_r=Disk speed
ufs_s=Filesystem size
ufs_t=Tracks / cylinder
ufs_cb=Max contiguous blocks
newfs_create=Create Filesystem
newfs_err=Failed to create filesystem
newfs_exec=Executing command $1 ..
newfs_failed=.. command failed!
newfs_ok=.. command complete.

fsck_title=Repair Filesystem
fsck_ecannot=You are not allowed to repair this disk
fsck_desc=Clicking the <b>Repair</b> button will check and optionally repair the $1 on $2. The level of checking and repair is determined by your choice below.
fsck_mode0=Only report the filesystem status.
fsck_mode1=Check the entire filesystem for errors, but do not fix any errors found.
fsck_mode2=Check for and fix any errors found on the entire filesystem.
fsck_repair=Repair
fsck_exec=Executing command $1 ..
fsck_0=no errors detected
fsck_1=incorrect parameters
fsck_32=filesystem needs checking
fsck_34=cannot open device
fsck_36=uncorrectable errors detected
fsck_37=process killed during checking
fsck_39=uncorrectable errors detected!
fsck_40=no errors detected
fsck_unknown=unknown error

tunefs_title=Tune Filesystem
tunefs_ecannot=You are not allowed to tune this disk
tunefs_desc=This form allows you to adjust various parameters of the $1 on $2. Existing files on this filesystem will not be harmed.
tunefs_header=Tuning Parameters
tunefs_opt=Optimize for
tunefs_space=Space
tunefs_time=Time
tunefs_tune=Tune Filesystem
tunefs_a=Max contiguous blocks
tunefs_d=Rotational delay
tunefs_e=Max file blocks per cylinder group
tunefs_m=Reserved space
tunefs_err=Failed to tune filesystem
tunefs_exec=Executing command $1 ..
tunefs_failed=.. command failed!
tunefs_ok=.. command complete.

select_device=SCSI controller $1 target $2 unit $3
select_idedevice=IDE device $1
select_part=SCSI controller $1 target $2 unit $3 partition $4
select_idepart=IDE device $1 partition $2
opt_error='$1' is not a valid $2
esun=Partitions can only be modified on Sun hardware
emounted=Disk has mounted partitions
elast=The last partition cannot be removed
eformat=<tt>format</tt> didn't find any disks!

fstype_ufs=Solaris Unix Filesystem
fstype_unknown=Unknown Filesystem

acl_disks=Discos que este usuario puede particionar y formatear
acl_dall=Todos los discos
acl_dsel=Los seleccionados...
   0707010005669b000081a40000000000000002000000013ac03891000018ad000000200000000000000000000000000000001500000003reloc/format/lang/sv  index_title=Partitioner p lokala diskar
index_disk=Disk
index_parts=Partitioner
index_location=Plats
index_model=Modell
index_unknown=Ok鋘d
index_cyl=Cylindrar
index_unknown2=Ok鋘d disktyp
index_no=Nr
index_type=Typ
index_extent=Omfattning
index_start=Start
index_end=Slut
index_use=Anv鋘t
index_free=Ledigt
index_format=Den h鋜 disken 鋜 inte formaterad
index_return=disklista

edit_ecannot=Du f錼 inte 鋘dra n錱ot f鰎 den h鋜 disken
edit_title=膎dra partition
edit_header=Uppgifter om partition
edit_location=Plats
edit_dev=Disk
edit_type=Typ
edit_flags=Flaggor
edit_w=Skrivbar
edit_m=Monteringsbar
edit_extent=Omfattning
edit_stat=Status
edit_meta=Del av MetaDisk
edit_metadb=Del av MetaDisk-databas
edit_mount=Monterad p $1 som $2
edit_mountvm=Monterad som virtuellt minne
edit_umount=F鰎 montering p $1 som $2
edit_umountvm=F鰎 montering som virtuellt minne
edit_nouse=Anv鋘ds inte
edit_fs=Filsystem
edit_inuse=Denna partition f錼 inte 鋘dras, eftersom den anv鋘ds just nu
edit_setup=S鋞ta upp
edit_change=膎dra
edit_tasks=Partitionens syfte
edit_newfs=Nytt filsystem
edit_newdesc1=Skapar ett nytt filsystem p denna partition och raderar d鋜med alla befintliga filer permanent. Detta m錽te g鰎as n鋜 en ny partition skapats eller en befintlig 鋘drats.
edit_newdesc2=Det g錼 inte att skapa ett nytt filsystem p denna partition eftersom den inte satts upp 鋘.
edit_newdesc3=Det g錼 inte att skapa ett nytt filsystem p denna partition eftersom den just nu monteras av n錱on klient. Anv鋘d <a href=/mount/>filsystemsmodulen</a> f鰎 att montera av partitionen f鰎st.
edit_fsckfs=Reparera filsystem
edit_fsck=Reparera
edit_fsckdesc1=Anv鋘der programmet <tt>fsck</tt> f鰎 att reparera ett filsystem s att det g錼 att montera. Detta kan bli n鰀v鋘digt om systemet inte togs ned p r鋞t s鋞t.
edit_fsckdesc2=Det g錼 inte att kontrollera filsystemet p denna partition eftersom det inte har satts upp 鋘.
edit_fsckdesc3=Det g錼 inte att kontrollera filsystemet p denna partition eftersom den just nu monteras av en klient. Anv鋘d <a href=/mount/>filsystemsmodulen</a> f鰎 att montera av den f鰎st.
edit_fsckdesc4=Det g錼 inte att kontrollera filsystemet p denna partition eftersom den inte har n錱ot.
edit_fsckdesc5=Det g錼 inte att kontrollera filsystemet p denna partition eftersom endast <tt>UFS</tt>-filsystem kan kontrolleras.
edit_tunefs=Trimma filsystem
edit_tune=Trimma
edit_tunedesc1=G鰎 att det g錼 att 鋘dra diverse parametrar f鰎 ett befintligt filsystem
edit_tunedesc2=Det g錼 inte att trimma filsystemet p denna partition eftersom det inte har satts upp 鋘.
edit_tunedesc3=Det g錼 inte att trimma filsystemet p denna partition eftersom den just nu monsteras av en klient. Anv鋘d <a href=/mount/>filsystemsmodulen</a> f鰎 att montera av den f鰎st.
edit_tunedesc4=Det g錼 inte att trimma filsystemet p denna partition eftersom den inte har n錱ot.
edit_tunedesc5=Det g錼 inte att trimma filsystemet p denna partition eftersom endast <tt>UFS</tt>-filsystem kan trimmas.

save_ecannot=Du f錼 inte 鋘dra n錱ot f鰎 denna disk
save_edelete=Det gick inte att ta bort partitionen
save_esave=Det gick inte att spara partitionen
save_estart='$1' 鋜 inte en giltig startcylinder
save_eend='$1' 鋜 inte en giltig slutcylinder
save_estartmin=Startcylindern m錽te vara > 0
save_eendmax=Slutcylindern m錽te vara < $1
save_estartend=Startcylindern m錽te ha ett l鋑re v鋜de 鋘 slutcylindern

newfs_title=Skapa filsystem
newfs_ecannot=Du f錼 inte formatera denna disk
newfs_desc=Skapa en ny $1 p disk $2 genom att trycka p knappen l鋘gst ned. Alla data p denna partition kommer att raderas permanent.
newfs_warn=Denna partition har monterats p $1. N鋜 ett nytt filsystem skapas kommer alla tidigare tillg鋘gliga filer under denna katalog att raderas.
newfs_header=Filsystemsinst鋖lningar
ufs_a=Reservblock/cylinder
ufs_b=Logisk blockstorlek
ufs_c=Cylindrar/grupp
ufs_d=Rotationsintervall
ufs_f=Fragmentstorlek
ufs_i=Inode-storlek
ufs_m=Reserverat utrymme
ufs_n=Rotationspositioner
ufs_o=Optimera med avseende p
newfs_space=Utrymme
newfs_time=Tid
ufs_r=Diskhastighet
ufs_s=Filsystemsstorlek
ufs_t=Sp錼/cylinder
ufs_cb=Maximalt antal intilliggande block
newfs_create=Skapa filsystem
newfs_err=Det gick inte att skapa filsystem
newfs_exec=Utf鰎 kommando $1 ...
newfs_failed=... det gick inte!
newfs_ok=... klart.

fsck_title=Reparera filsystem
fsck_ecannot=Du f錼 inte reparera denna disk
fsck_desc=Om du trycker p knappen <b>Reparera</b> kommer $1 p $2 att kontrolleras och repareras. Ange niv f鰎 kontroll och reparation nedan.
fsck_mode0=Rapportera endast filsystemets status.
fsck_mode1=Felkontrollera hela filsystemet, men r鋞ta inte de fel som hittas.
fsck_mode2=Felkontrollera och r鋞ta felen i hela filsystemet.
fsck_repair=Reparera
fsck_exec=Utf鰎 kommando $1 ...
fsck_0=inga fel hittades
fsck_1=felaktiga parametrar
fsck_32=filsystemet beh鰒er kontrolleras
fsck_34=kunde inte l鋝a disken
fsck_36=hittade fel som inte g錼 att r鋞ta till
fsck_37=processen slogs ihj鋖 under kontrollen
fsck_39=hittade fel som inte g錼 att r鋞ta till!
fsck_40=inga fel hittades
fsck_unknown=ok鋘t fel

tunefs_title=Trimma filsystem
tunefs_ecannot=Du f錼 inte trimma denna disk
tunefs_desc=Med detta formul鋜 kan du justera diverse parametrar f鰎 $1 p $2. Befintliga filer p detta filsystem kommer inte att p鍁erkas.
tunefs_header=Trimningsparametrar
tunefs_opt=Optimera med avseende p
tunefs_space=Utrymme
tunefs_time=Tid
tunefs_tune=Trimma filsystem
tunefs_a=Maximalt antal intilliggande block
tunefs_d=Rotationsintervall
tunefs_e=Maximalt antal filblock per cylindergrupp
tunefs_m=Reserverat utrymme
tunefs_err=Det gick inte att trimma filsystemet
tunefs_exec=Utf鰎 kommando $1 ...
tunefs_failed=... det gick inte!
tunefs_ok=... klart.

select_device=SCSI-kontroller $1 m錶 $2 disk $3
select_idedevice=IDE-disk $1
select_part=SCSI-kontroller $1 m錶 $2 disk $3 partition $4
select_idepart=IDE-disk $1 partition $2
opt_error='$1' 鋜 inte en giltig $2
esun=Partitioner kan endast modifieras p Sun-h錼dvara
emounted=Disken har monterade partitioner
elast=Den sista partitionen f錼 inte tas bort
eformat=<tt>format</tt> hittade inga diskar!

fstype_ufs=Solaris Unix-filsystem
fstype_unknown=Ok鋘t filsystem

acl_disks=Diskar som denna anv鋘dare f錼 partitionera och formatera
acl_dall=Alla diskar
acl_dsel=Angivna ...
   0707010005669c000081a40000000000000002000000013ac038910000007d000000200000000000000000000000000000001500000003reloc/format/lang/tr  select_device=SCSI kontrol edicisi $1 hedef $2 b鰈黰 $3
select_part=SCSI kontrol edicisi $1 hedef $2 b鰈黰 $3 disk b鰈黰 $4
   0707010005669d000081a40000000000000002000000013ac0389100001185000000200000000000000000000000000000001800000003reloc/format/lang/zh_CN   index_title=分区和本地磁盘
index_disk=磁盘
index_parts=分区
index_location=位置
index_model=模型
index_unknown=未知
index_cyl=柱面
index_unknown2=磁盘类型未知
index_no=标号
index_type=类型
index_extent=范围
index_start=开始
index_end=结束
index_use=使用
index_free=空的
index_format=磁盘未格式化
index_return=磁盘列表

edit_ecannot=你没有编辑磁盘的权限
edit_title=编辑分区
edit_header=分区信息
edit_location=位置
edit_dev=设备
edit_type=类型
edit_flags=标记
edit_w=可写
edit_m=可安装
edit_extent=范围
edit_stat=状态
edit_meta=MetaDisk的一部分
edit_metadb=MetaDisk数据库的一部分
edit_mount=以$2的类型安装到文件系统$1上
edit_mountvm=以虚拟的文件系统类型安装
edit_umount=将以$2的类型安装到文件系统$1上
edit_umountvm=将以虚拟的文件系统类型安装
edit_nouse=不在使用当中
edit_fs=文件系统
edit_inuse=分区正在使用中，不能够修改
edit_setup=安装
edit_change=改变
edit_tasks=分区任务
edit_newfs=新的文件系统
edit_newdesc1=在创建新的分区或者改变已经存在的分区后，您必须在上面建立新的文件系统,上面存在的文件将被永久的删除.
edit_newdesc2=你不能够在分区上建立新的文件系统，因为分区还没有安装.
edit_newdesc3=你不能够在分区上建立新的文件系统，因为分区当前已经被加载.你可以先使用<a href=/mount/>文件系统模块</a>卸下分区.
edit_fsckfs=修复文件系统
edit_fsck=修复	
edit_fsckdesc1=如果你没有正确的关闭系统,可调用<tt>fsck</tt>程序来修复文件系统，从而使该文件系统能够被加载.
edit_fsckdesc2=你不能够检测分区上的文件系统,因为分区还没有安装.
edit_fsckdesc3=你不能够检测分区上的文件系统，因为分区当前已经被加载.你可以先使用<a href=/mount/>文件系统模块</a>卸下分区.
edit_fsckdesc4=你不能够检测分区上的文件系统，因为分区上没有文件系统.
edit_fsckdesc5=你不能够检测分区上的文件系统，因为只能够检测<tt>UFS</tt>类型的文件系统.
edit_tunefs=调整文件系统
edit_tune=调整
edit_tunedesc1=你有修改已经存在文件系统不同参数的权限
edit_tunedesc2=你不能够调整分区上的文件系统,因为分区还没有安装.
edit_tunedesc3=你不能够调整分区上的文件系统，因为分区当前已经被加载.你可以先使用<a href=/mount/>文件系统模块</a>卸下分区.
edit_tunedesc4=你不能够调整在该分区上的文件系统，因为该分区不存在任何文件系统.
edit_tunedesc5=你不能够调整在该分区上的文件系统，因为只能够调整<tt>UFS</tt>文件系统.

save_ecannot=你没有编辑该磁盘的权限
save_edelete=删除分区失败
save_esave=保存分区失败
save_estart='$1'不是一个有效的起始柱面
save_eend='$1'不是一个有效的结束柱面
save_estartmin=起始柱面必须大于0
save_eendmax=结束柱面必须小于$1
save_estartend=起始柱面必须小于结束柱面

newfs_title=创建文件系统
newfs_ecannot=你没有格式化磁盘的权限
newfs_desc=点击窗底的按钮将在设备 $2 上建立一个新的 $1,分区上的所有数据将会被彻底删除.

newfs_warn=分区已经安装到 $1,创建一个新的文件系统将会删除该目录下以前可以存取的所有文件.
newfs_header=文件系统选项
ufs_a=空闲块/柱面
ufs_b=逻辑块大小
ufs_c=柱面/组
ufs_d=转动延迟
ufs_f=碎片大小
ufs_i=Inode大小
ufs_m=预留空间
ufs_n=转动位置
ufs_o=优化
newfs_space=空间
newfs_time=时间
ufs_r=磁盘速度
ufs_s=文件系统大小
ufs_t=磁道/扇区
ufs_cb=最临近块
newfs_create=创建文件系统
newfs_err=创建文件系统失败
newfs_exec=执行命令$1..
newfs_failed=..命令失败!
newfs_ok=..命令结束.

fsck_title=修复文件系统
fsck_ecannot=你没有修复该磁盘的权限.
fsck_desc=点击<b>修复</b>按钮将会检测和有选择地修复$2上的$1.检测和修复标准由你下面作出的选择而确定.

fsck_mode0=仅报告文件系统状态.
fsck_mode1=检测整个文件系统中的错误，但不修复发现的任何错误.
fsck_mode2=检测整个文件系统,并修复发现的任何错误.
fsck_repair=修复
fsck_exec=执行命令 $1 ..
fsck_0=没有检测到错误
fsck_1=参数错误
fsck_32=文件系统需要检查
fsck_34=设备不能打开
fsck_36=检测到无法修复的错误
fsck_37=在检测中进程被杀
fsck_39=检测到无法修复的错误!
fsck_40=未发现任何错误.
fsck_unknown=不认识的错误

tunefs_title=调整文件系统 
tunefs_ecannot=你没有调整该磁盘的权限
tunefs_desc=该窗口允许你调整$2上$1的不同参数,文件系统上存在的文件将不会受到破坏.
tunefs_header=调整参数
tunefs_opt=优化
tunefs_space=空间
tunefs_time=时间
tunefs_tune=调整文件系统
tunefs_a=最大的临近块
tunefs_d=转动延迟
tunefs_e=每柱面组的最大文件块数
tunefs_m=保留空间
tunefs_err=调整文件系统失败
tunefs_exec=执行命令$1..
tunefs_failed=..命令失败!
tunefs_ok=..命令结束

select_device=SCSI控制器$1 目标$2 单元$3
select_idedevice=IDE设备 $1
select_part=SCSI控制器$1 目标$2 单元$3 分区$4
select_idepart=IDE设备$1 分区$2
opt_error='$1'不是一个有效的$2    
esun=分区仅能够在SUN硬件平台下进行修改
emounted=磁盘上的分区已经安装
elast=最后的分区不能移去
eformat=<tt>format</tt> 没有发现任何磁盘!  

fstype_ufs=Solaris Unix文件系统
fstype_unknown=未知文件系统

acl_disks=该用户不能够分区和格式化磁盘
acl_dall=所有磁盘
acl_dsel=选择..
   07070100050b2b000081a40000000000000002000000013ac038910000019d000000200000000000000000000000000000001900000003reloc/format/module.info  name=Partition Manager
desc_pt=Parti珲es em Discos Locais
depends=mount proc
desc_tr=Yerel Diskteki B鰈黰ler
desc_fr=Partition sur Disque Local
desc_es=Particiones en Discos Locales
desc_de=Festplatten-Partitionen
desc_sv=Partitionshanterare
desc_pl=Partycje na dyskach lokalnych
category=hardware
os_support=solaris
desc_zh_TW.Big5=合盒だ澄跋恨瞶
desc=Partitions on Local Disks
risk=high
desc_zh_CN=分区管理器
   07070100050b2c000081e40000000000000002000000013ac0389100000494000000200000000000000000000000000000001700000003reloc/format/newfs.cgi    #!/usr/local/bin/perl
# newfs.cgi
# Create a new filesystem 

require './format-lib.pl';
&ReadParse();
&can_edit_disk($in{'dev'}) || &error($text{'newfs_ecannot'});
&error_setup($text{'newfs_err'});
$cmd = "newfs";
$cmd .= &opt_check("ufs_a", '\d+', "-a");
$cmd .= &opt_check("ufs_b", '\d+', "-b");
$cmd .= &opt_check("ufs_c", '\d+', "-c");
$cmd .= &opt_check("ufs_d", '\d+', "-d");
$cmd .= &opt_check("ufs_f", '\d+', "-f");
$cmd .= &opt_check("ufs_i", '\d+', "-i");
$cmd .= &opt_check("ufs_m", '\d+', "-m");
$cmd .= &opt_check("ufs_n", '\d+', "-n");
$cmd .= $in{ufs_o} ? " -o $in{ufs_o}" : "";
$cmd .= &opt_check("ufs_r", '\d+', "-r");
$cmd .= &opt_check("ufs_s", '\d+', "-s");
$cmd .= &opt_check("ufs_t", '\d+', "-t");
$cmd .= &opt_check("ufs_cb", '\d+', "-C");
$in{dev} =~ s/dsk/rdsk/g;
$cmd .= " $in{dev}";

&header($text{'newfs_title'}, "");
print "<hr>\n";

print &text('newfs_exec', "<tt>$cmd</tt>"),"<p>\n";
print "<pre>\n";
open(MKFS, "$cmd 2>&1 </dev/null |");
while(<MKFS>) { print; }
close(MKFS);
print "</pre>\n";
if ($?) { print "$text{'newfs_failed'} <p>\n"; }
else { print "$text{'newfs_ok'} <p>\n"; }

print "<hr>\n";
&footer("", $text{'index_return'});

07070100050b2d000081e40000000000000002000000013ac038910000062b000000200000000000000000000000000000001c00000003reloc/format/newfs_form.cgi   #!/usr/local/bin/perl
# newfs_form.cgi
# Display a form asking for new filesystem details

require './format-lib.pl';
&ReadParse();
&can_edit_disk($in{'dev'}) || &error("You are not allowed to format this disk");
&header("Create Filesystem", "");
print "<hr>\n";

print "<form action=newfs.cgi>\n";
print "<input type=hidden name=dev value=\"$in{dev}\">\n";
print &text('newfs_desc', "<b>".&fstype_name("ufs")."</b>",
			  "<b><tt>$in{dev}</tt></b>"),"<p>\n";

if ((@stat = &device_status($in{dev})) && $stat[1] ne "swap") {
	print &text('newfs_warn', "<tt>$stat[0]</tt>"),"<p>\n";
	}

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'newfs_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";
&opt_input("ufs_a", "", 1);
&opt_input("ufs_b", "bytes", 0);
&opt_input("ufs_c", "", 1);
&opt_input("ufs_d", "ms", 0);
&opt_input("ufs_f", "bytes", 1);
&opt_input("ufs_i", "bytes", 0);
&opt_input("ufs_m", "%", 1);
&opt_input("ufs_n", "", 0);
print "<tr> <td align=right><b>$text{'ufs_o'}</b></td>\n";
print "<td><select name=ufs_o>\n";
print "<option value=''> $text{'default'}\n";
print "<option value=space> $text{'newfs_space'}\n";
print "<option value=time> $text{'newfs_time'}\n";
print "</select></td>\n";
&opt_input("ufs_r", "rpm", 0);
&opt_input("ufs_s", "sectors", 1);
&opt_input("ufs_t", "", 0);
&opt_input("ufs_cb", "", 1);
print "</table></td></tr></table><br>\n";

print "<div align=right>\n";
print "<input type=submit value=\"$text{'newfs_create'}\"></form>\n";
print "</div>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

 07070100050b2e000081e40000000000000002000000013ac038910000040a000000200000000000000000000000000000001b00000003reloc/format/save_part.cgi    #!/usr/local/bin/perl
# save_part.cgi
# Save an existing partition

require './format-lib.pl';
&ReadParse();

# check start and end
@dlist = &list_disks();
$dinfo = $dlist[$in{'disk'}];
&can_edit_disk($dinfo->{'device'}) ||
	&error($text{'save_ecannot'});
if ($in{delete}) {
	# unassigning a partition
	&error_setup($text{'save_edelete'});
	&modify_partition($in{'disk'}, $in{'part'}, "unassigned", "wu", "", "");
	&redirect("");
	}
else {
	# changing an existing partition
	&error_setup($text{'save_esave'});
	$in{start} =~ /^\d+$/ ||
		&error(&text('save_estart', $in{start}));
	$in{end} =~ /^\d+$/ ||
		&error(&text('save_eend', $in{end}));
	$in{start} >= 0 ||
		&error($text{'save_estartmin'});
	$in{end} < $dinfo->{'cyl'} ||
		&error(&text('save_eendmax', $dinfo->{'cyl'}));
	$in{start} < $in{end} ||
		&error($text{'save_estartend'});

	# make the change
	$flag = ($in{writable} ? "w" : "r").($in{mountable} ? "m" : "u");
	&modify_partition($in{disk}, $in{part}, $in{tag}, $flag,
			  $in{start}, $in{end});
	&redirect("");
	}

  07070100050b2f000081e40000000000000002000000013ac038910000037c000000200000000000000000000000000000001800000003reloc/format/tunefs.cgi   #!/usr/local/bin/perl
# tunefs.cgi
# You can tune a filesystem, but you can't tuna fish

require './format-lib.pl';
&ReadParse();
&can_edit_disk($in{'dev'}) || &error($text{'tunefs_ecannot'});
&error_setup($text{'tunefs_err'});

$cmd = "tunefs";
$cmd .= &opt_check("tunefs_a", '\d+', "-a");
$cmd .= &opt_check("tunefs_d", '\d+', "-d");
$cmd .= &opt_check("tunefs_e", '\d+', "-e");
$cmd .= &opt_check("tunefs_m", '\d+', "-m");
$cmd .= $in{tunefs_o} ? " -o $in{tunefs_o}" : "";
$in{dev} =~ s/dsk/rdsk/g;
$cmd .= " $in{dev}";

&header($text{'tunefs_title'}, "");
print "<hr>\n";

print &text('tunefs_exec', "<tt>$cmd</tt>"),"<p>\n";
print "<pre>\n";
open(TUNEFS, "$cmd 2>&1 </dev/null |");
while(<TUNEFS>) { print; }
close(TUNEFS);
print "</pre>\n";
if ($?) { print "$text{'tunefs_failed'}<p>\n"; }
else { print "$text{'tunefs_ok'}<p>\n"; }

print "<hr>\n";
&footer("", $text{'index_return'});

07070100050b30000081e40000000000000002000000013ac03891000004ed000000200000000000000000000000000000001d00000003reloc/format/tunefs_form.cgi  #!/usr/local/bin/perl
# tunefs_form.cgi
# Display a form for entering filesystem tuning options

require './format-lib.pl';
&ReadParse();
&can_edit_disk($in{'dev'}) || &error($text{'tunefs_ecannot'});
&header($text{'tunefs_title'}, "");
print "<hr>\n";

@stat = &device_status($in{dev});
$fs = &filesystem_type($in{dev});
print "<form action=tunefs.cgi>\n";
print "<input type=hidden name=dev value=\"$in{dev}\">\n";
print &text('tunefs_desc', &fstype_name($fs), "<tt>$in{'dev'}</tt>"),"<p>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'tunefs_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";
&opt_input("tunefs_a", "", 1);
&opt_input("tunefs_d", "ms", 0);
&opt_input("tunefs_e", "", 1);
&opt_input("tunefs_m", "%", 0);
print "<tr> <td align=right><b>$text{'tunefs_opt'}</b></td>\n";
print "<td><select name=tunefs_o>\n";
print "<option value=''> $text{'default'}\n";
print "<option value=space> $text{'tunefs_space'}\n";
print "<option value=time> $text{'tunefs_time'}\n";
print "</select></td>\n";
print "</table></td></tr></table><br>\n";

print "<div align=right>\n";
print "<input type=submit value=\"$text{'tunefs_tune'}\"></form>\n";
print "</div>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

   0707010000bb47000081e40000000000000002000000013ac0388600001252000000200000000000000000000000000000001800000003reloc/group_chooser.cgi   #!/usr/local/bin/perl
# group_chooser.cgi
# This CGI generated the HTML for choosing a group or list of groups.

require './web-lib.pl';
&init_config();
&ReadParse();
%access = &get_module_acl();

# Build list of primary groups
setpwent();
while(@uinfo = getpwent()) {
	push(@{$members{$uinfo[3]}}, $uinfo[0]);
	}
endpwent();

if ($in{'multi'}) {
	# selecting multiple groups.
	if ($in{'frame'} == 0) {
		# base frame
		&PrintHeader();
		print "<script>\n";
		@ul = split(/\s+/, $in{'group'});
		$len = @ul;
		print "sel = new Array($len);\n";
		print "selr = new Array($len);\n";
		for($i=0; $i<$len; $i++) {
			print "sel[$i] = \"$ul[$i]\";\n";
			@ginfo = getgrnam($ul[$i]);
			if (@ginfo) {
				@mems = &unique( split(/ /, $ginfo[3]),
						 @{$members{$ginfo[2]}} );
				if (@mems > 3) { @mems = (@mems[0..1], "..."); }
				print "selr[$i] = \"",join(' ', @mems),"\";\n";
				}
			else { print "selr[$i] = \"???\";\n"; }
			}
		print "</script>\n";
		print "<title>$text{'groups_title1'}</title>\n";
		print "<frameset cols='50%,50%'>\n";
		print "<frame src=\"/group_chooser.cgi?frame=1&multi=1\">\n";
		print "<frameset rows='*,50' frameborder=no>\n";
		print " <frame src=\"/group_chooser.cgi?frame=2&multi=1\">\n";
		print " <frame src=\"/group_chooser.cgi?frame=3&multi=1\" scrolling=no>\n";
		print "</frameset>\n";
		print "</frameset>\n";
		}
	elsif ($in{'frame'} == 1) {
		# list of all groups to choose from
		&header();
		print "<script>\n";
		print "function addgroup(u, r)\n";
		print "{\n";
		print "top.sel[top.sel.length] = u\n";
		print "top.selr[top.selr.length] = r\n";
		print "top.frames[1].location = top.frames[1].location\n";
		print "return false;\n";
		print "}\n";
		print "</script>\n";
		print "<font size=+1>$text{'groups_all'}</font>\n";
		print "<table width=100%>\n";
		foreach $u (&get_groups_list()) {
			if ($in{'group'} eq $u->[0]) { print "<tr $cb>\n"; }
			else { print "<tr>\n"; }
			print "<td width=20%><a href=\"\" onClick='return addgroup(\"$u->[0]\", \"$u->[3]\")'>$u->[0]</a></td>\n";
			print "<td>$u->[3]</td> </tr>\n";
			}
		print "</table>\n";
		}
	elsif ($in{'frame'} == 2) {
		# show chosen groups
		&header();
		print "<font size=+1>$text{'groups_sel'}</font>\n";
		print <<'EOF';
<table width=100%>
<script>
function sub(j)
{
sel2 = new Array(); selr2 = new Array();
for(k=0,l=0; k<top.sel.length; k++) {
	if (k != j) {
		sel2[l] = top.sel[k];
		selr2[l] = top.selr[k];
		l++;
		}
	}
top.sel = sel2; top.selr = selr2;
location = location;
return false;
}
for(i=0; i<top.sel.length; i++) {
	document.write("<tr>\n");
	document.write("<td><a href=\"\" onClick='return sub("+i+")'>"+top.sel[i]+"</a></td>\n");
	document.write("<td>"+top.selr[i]+"</td>\n");
	}
</script>
</table>
EOF
		}
	elsif ($in{'frame'} == 3) {
		# output OK and Cancel buttons
		&header();
		print "<form>\n";
		print "<input type=button value=\"$text{'groups_ok'}\" ",
		      " onClick='top.ifield.value = top.sel.join(\" \"); ",
		      "top.close()'>\n";
		print "<input type=button value=\"$text{'groups_cancel'}\" ",
		      "onClick='top.close()'>\n";
		print "&nbsp;&nbsp;<input type=button value=\"$text{'groups_clear'}\" onClick='top.sel = new Array(); top.selr = new Array(); top.frames[1].location = top.frames[1].location'>\n";
		print "</form>\n";
		}
	}
else {
	# selecting just one group .. display a list of all groups to choose from
	&header();
	print "<script>\n";
	print "function select(f)\n";
	print "{\n";
	print "ifield.value = f;\n";
	print "top.close();\n";
	print "return false;\n";
	print "}\n";
	print "</script>\n";
	print "<title>$text{'groups_title2'}</title>\n";
	print "<table width=100%>\n";
	foreach $u (&get_groups_list()) {
		if ($in{'group'} eq $u->[0]) { print "<tr $cb>\n"; }
		else { print "<tr>\n"; }
		print "<td width=20%><a href=\"\" onClick='return select(\"$u->[0]\")'>$u->[0]</a></td>\n";
		print "<td>$u->[3]</td> </tr>\n";
		}
	print "</table>\n";
	}

sub get_groups_list
{
local(@ginfo, @groups, \%gcan);
if ($access{'gedit_mode'} == 2 || $access{'gedit_mode'} == 3) {
	map { $gcan{$_}++ } split(/\s+/, $access{'gedit'});
	}
setgrent();
while(@ginfo = getgrent()) {
	@mems = &unique( split(/ /, $ginfo[3]), @{$members{$ginfo[2]}} );
	if (@mems > 3) { @mems = (@mems[0..1], "..."); }
	$ginfo[3] = join(' ', @mems);
	if ($access{'gedit_mode'} == 0 ||
	    $access{'gedit_mode'} == 2 && $gcan{$ginfo[0]} ||
	    $access{'gedit_mode'} == 3 && !$gcan{$ginfo[0]} ||
	    $access{'gedit_mode'} == 4 &&
		(!$access{'gedit'} || $ginfo[2] >= $access{'gedit'}) &&
		(!$access{'gedit2'} || $ginfo[2] <= $access{'gedit2'})) {
		push(@groups, [ @ginfo ]);
		}
	}
endgrent();
return sort { $a->[0] cmp $b->[0] } @groups;
}

  0707010000bb48000081e40000000000000002000000013ac0388600000850000000200000000000000000000000000000000f00000003reloc/help.cgi    #!/usr/local/bin/perl
# help.cgi
# Displays help HTML for some module, with substitutions

require './web-lib.pl';
&init_config();
&error_setup($text{'help_err'});
$ENV{'PATH_INFO'} !~ /[\\\&\;\`\'\"\|\*\?\~\<\>\^\(\)\[\]\{\}\$\n\r]/ ||
	&error($text{'help_epath'});
$ENV{'PATH_INFO'} =~ /^\/(\S+)\/(\S+)$/ || &error($text{'help_epath'});
$module = $1; $file = $2;

# if it ends with .gif assume it is a direct URL
if ($file =~ /\.gif$/) {
	&redirect("$module/$file");
	exit;
}

# read the help file
$path = &help_file($module, $file);
@st = stat($path);
open(HELP, $path) || &helperror(&text('help_efile', $path));
read(HELP, $help, $st[7]);
close(HELP);

# find and replace the <header> section
if ($help =~ s/<header>([^<]+)<\/header>/<center><h1>$1<\/h1><\/center><hr>/) {
	&header($1);
	}
else {
	&helperror($text{'help_eheader'});
	}

# find and replace <include> directives
$help =~ s/<include\s+(\S+)>/inchelp($1)/ge;

# find and replace <if><else> directives
$help =~ s/<if\s+([^>]*)>([\000-\177]*?)<else>([\000-\177]*?)<\/if>/ifhelp($1, $2, $3)/ge;

# find and replace <if> directives
$help =~ s/<if\s+([^>]*)>([\000-\177]*?)<\/if>/ifhelp($1, $2)/ge;

# find and replace <exec> directives
$help =~ s/<exec\s+([^>]*)>/exechelp($1)/ge;

# output the HTML
print $help;
&footer();

# inchelp(path)
sub inchelp
{
if ($_[0] =~ /^\/(\S+)\/(\S+)$/) {
	# including something from another module..
	}
else {
	# including from this module
	local $ipath = &help_file($module, $_[0]);
	@st = stat($ipath);
	open(INC, $ipath) ||
		return "<i>".&text('help_einclude', $_[0])."</i><br>\n";
	read(INC, $inc, $st[7]);
	close(INC);
	return $inc;
	}
}

# ifhelp(perl, text, [elsetext])
sub ifhelp
{
local $rv = eval $_[0];
if ($@) { return "<i>".&text('help_eif', $_[0], $@)."</i><br>\n"; }
elsif ($rv) { return $_[1]; }
else { return $_[2]; }
}

# exechelp(perl)
sub exechelp
{
local $rv = eval $_[0];
if ($@) { return "<i>".&text('help_eexec', $_[0], $@)."</i><br>\n"; }
else { return $rv; }
}

sub helperror
{
&header($text{'error'});
print "<center><h2>$text{'error'}</h2></center>\n";
print "<hr><p><b>",@_,"</b><p><hr>\n";
exit;
}

07070100057ccb000041ed0000000000000001000000043ac03bee00000000000000200000000000000000000000000000001200000003reloc/hpuxexports 07070100057d0d000081a40000000000000002000000013ac038a00000005b000000200000000000000000000000000000001e00000003reloc/hpuxexports/config-hpux export_all_command=exportfs -a
unexport_all_command=exportfs -au
exports_file=/etc/exports
 07070100057d62000081a40000000000000002000000013ac038a00000009b000000200000000000000000000000000000001e00000003reloc/hpuxexports/config.info exports_file=NFS exports file location,0
export_all_command=Command to export all directories,0
unexport_all_command=Command to unexport all directories,0
 07070100057d63000081a40000000000000002000000013ac038a0000000ae000000200000000000000000000000000000002100000003reloc/hpuxexports/config.info.de  exports_file=NFS Export Datei,0
export_all_command=Kommando zum exportieren aller Verzeichnisse,0
unexport_all_command=Kommando zum Stoppen des Exports aller Verzeichnisse,0
  07070100057d7c000081a40000000000000002000000013ac038a0000000c9000000200000000000000000000000000000002100000003reloc/hpuxexports/config.info.es  exports_file=Localizaci髇 de archivo de exportaciones NFS,0
export_all_command=Comando para exportar todos los directorios,0
unexport_all_command=Comando para dejar de exportar todos los directorios,0
   07070100057d7e000081a40000000000000002000000013ac038a0000000b7000000200000000000000000000000000000002100000003reloc/hpuxexports/config.info.fr  exports_file=Chemin du fichier de partage NFS,0
export_all_command=Commande pour partager les r閜ertoires,0
unexport_all_command=Commande pour arr阾er le partage des r閜ertoires,0
 07070100057d7f000081a40000000000000002000000013ac038a0000000c4000000200000000000000000000000000000002100000003reloc/hpuxexports/config.info.pl  exports_file=Lokalizacja pliku 'exports' dla NFS,0
export_all_command=Polecenie udost阷niaj眂e wszystkie katalogi,0
unexport_all_command=Polecenie wy潮czaj眂e udost阷nianie wszystkich katalog體,0
07070100057d80000081a40000000000000002000000013ac038a0000000a4000000200000000000000000000000000000002400000003reloc/hpuxexports/config.info.ru_RU   export_all_command=暑爨礓 潆 耧铕蜞 怦艴 赅蜞腩泐,0
unexport_all_command=暑爨礓 潆 溴耧铕蜞 怦艴 赅蜞腩泐,0
exports_file=朽镱腩驽龛 羿殡 疱耋瘃钼 NFS,0
07070100057d81000081a40000000000000002000000013ac038a0000000a4000000200000000000000000000000000000002400000003reloc/hpuxexports/config.info.ru_SU   exports_file=蛄邢滔峙紊 屏侍 遗诱矣献 NFS,0
export_all_command=胂土文 奶 芩有弦粤 子湃 肆粤滔窍,0
unexport_all_command=胂土文 奶 呐芩有弦粤 子湃 肆粤滔窍,0
07070100057d82000081a40000000000000002000000013ac038a0000000ad000000200000000000000000000000000000002100000003reloc/hpuxexports/config.info.sv  exports_file=Plats f鰎 NFS-exportfil,0
export_all_command=Kommando f鰎 att exportera alla kataloger,0
unexport_all_command=Kommando f鰎 att sluta exportera alla kataloger,0
   07070100057d83000081a40000000000000002000000013ac038a00000009b000000200000000000000000000000000000002100000003reloc/hpuxexports/config.info.tr  exports_file=NFS sunum dosyas yeri,0
export_all_command=B黷黱 dizinleri sunuma a鏼a komutu,0
unexport_all_command=B黷黱 dizinleri sunuma kapatma komutu,0
 07070100057d84000081a40000000000000002000000013ac038a000000080000000200000000000000000000000000000002400000003reloc/hpuxexports/config.info.zh_CN   exports_file=NFS exports 文件的位置,0
export_all_command=export 所有文件的命令,0
unexport_all_command=unexport 所有文件的路径,0
07070100057d85000081a40000000000000002000000013ac038a000000076000000200000000000000000000000000000002900000003reloc/hpuxexports/config.info.zh_TW.Big5  exports_file=NFS 蹲郎竚,0
export_all_command=蹲┮Τヘ魁,0
unexport_all_command=蹲┮Τヘ魁,0
  07070100057d86000081e40000000000000002000000013ac038a000000099000000200000000000000000000000000000002400000003reloc/hpuxexports/delete_export.cgi   #!/usr/local/bin/perl
# delete_share.cgi
# Delete a share

require './hpuxexports-lib.pl';
&ReadParse();
&delete_export($in{directory});
&redirect("");

   07070100057d87000081e40000000000000002000000013ac038a000000eac000000200000000000000000000000000000002200000003reloc/hpuxexports/edit_export.cgi #!/usr/local/bin/perl
# edit_export.cgi
# Edit an existing exported directory, or create a new one.

require './hpuxexports-lib.pl';
$e = $ARGV[0];

if ($e) { &header("Edit Export", ""); }
else { &header("Create Export", ""); }
print "<hr>\n";

print "<form action=\"save_export.cgi\">\n";
if ($e) {
	print "<input type=hidden name=old value=\"$e\">\n";
	@einfo = &get_exports($e);
	}
print "<table border width=100%><tr $cb><td><table width=100%>\n";

print "<tr> <td><b>Directory</b></td>\n";
print "<td><input size=40 name=directory value=\"$einfo[0]\">\n";
print &file_chooser_button("directory", 1);
print "</td>\n";

print "</table></td></tr></table><p>\n";
print "<table width=100% border>\n";
&parse_options($einfo[1]);
print "<tr $tb> <td><b>User Access</b></td>\n";
print "<td><b>Root Access</b></td> </tr>\n";

$fn = "<font size=-1>"; $efn = "</font>";
printf "<tr $cb><td><input type=radio name=user value=1 %s> Listed hosts read access<br>\n",
	defined($options{"ro"}) && $options{"access"} ne "" ? "checked" : "";
printf "<input type=radio name=user value=2 %s> All hosts read access<br>\n",
	defined($options{"ro"}) && !defined($options{"access"}) ? "checked" : "";
printf "<input type=radio name=user value=3 %s> All hosts read access, listed hosts write access<br>\n",
	$options{"rw"} ne "" ? "checked" : "";
printf "<input type=radio name=user value=4 %s> Listed hosts write access<br>\n",
	!defined($options{"ro"}) && $options{"access"} ne "" ? "checked" : "";
printf "<input type=radio name=user value=5 %s> All hosts write accesss<br>\n",
	!defined($options{"ro"}) && !defined($options{"rw"}) && !defined($options{"access"}) ? "checked" : "";
print "$fn<textarea name=ualist rows=6 cols=40 >";
 	if ($options{"rw"} ne "") {
 		$list = join("\n", split(/:/, $options{"rw"}));
 		}
	if ($options{"access"} ne "") {
		$list = join("\n", split(/:/, $options{"access"}));
		}
        print $list;
print "</textarea>$efn</td>\n";

printf "<td><input type=radio name=root value=1 %s> None<br>\n",
	defined($options{"root"}) ? "" : "checked";
print "<br>";
print "<br>";
print "<br>";
printf "<input type=radio name=root value=2 %s> Listed hosts<br>\n",
	$options{"root"} ne "" ? "checked" : "";
printf "$fn<textarea name=rtlist rows=6 cols=40 >%s</textarea>$efn</td></tr>\n",
	join("\n", split(/:/, $options{"root"}));
print "</table><p>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td><b>Export Options</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

if ($e eq "") { $options{"anon"} = 65534; }
print "<tr> <td><b>Anonymous User</b></td>\n";
print "<td><select name=anon>\n";
printf "<option value=\"65534\" %s> Default access\n",
	$options{"anon"} == 65534 ? "selected" : "";
printf "<option value=\"\" %s> No access\n",
	!defined($options{"anon"}) ? "selected" : "";
setpwent();
while(@uinfo = getpwent()) {
	printf "<option value=\"$uinfo[2]\" %s>$uinfo[0]\n",
		$options{"anon"} == $uinfo[2] ? "selected" : "";
	}
endpwent();
print "</select></td>\n";

print "<td><b>Asynchronous Writes</b></td>\n";
printf "<td nowrap><input type=radio name=async value=1 %s> Yes\n",
	defined($options{"async"}) ? "checked" : "";
printf "<input type=radio name=nfs_bg value=0 %s> No</td> </tr>\n",
	defined($options{"async"}) ? "" : "checked";

print "</table></td> </tr></table><p>\n";

if ($e ne "") {
	print "<table width=100%>\n";
	print "<tr> <td><input type=submit value=Save></td>\n";
	print "</form><form action=\"delete_export.cgi\">\n";
	print "<input type=hidden name=directory value=\"$e\">\n";
	print "<td align=right><input type=submit value=Delete></td> </tr>\n";
	print "</form></table><p>\n";
	}
else {
	print "<input type=submit value=Create></form><p>\n";
	}
print "<hr>\n";
&footer("", "exports list");

07070100059488000041ed0000000000000001000000023ac03bee00000000000000200000000000000000000000000000001700000003reloc/hpuxexports/help    07070100059489000081a40000000000000002000000013ac038a0000000d1000000200000000000000000000000000000002400000003reloc/hpuxexports/help/help.es.html   <body bgcolor=#ffffff>
<h1>La ayuda de este m骴ulo a鷑 no est disponible</h1>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Volver al m骴ulo</a><p>
 

   0707010005948a000081a40000000000000002000000013ac038a0000000c8000000200000000000000000000000000000002100000003reloc/hpuxexports/help/help.html  <body bgcolor=#ffffff>
<h1>Help for this module is not available</h1>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Return to module</a><p>
 

0707010005948b000081a40000000000000002000000013ac038a0000000c9000000200000000000000000000000000000002400000003reloc/hpuxexports/help/help.sv.html   <body bgcolor=#ffffff>
<h1>Det finns ingen hj鋖p till denna modul</h1>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Tillbaka till modul</a>
 

   0707010005948c000081a40000000000000002000000013ac038a0000000af000000200000000000000000000000000000002c00000003reloc/hpuxexports/help/help.zh_TW.Big5.html   <body bgcolor=#ffffff>
<h1>硂家舱弧ぃ</h1>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">家舱</a><p>
 

 07070100057d88000081a40000000000000002000000013ac038a000000a3c000000200000000000000000000000000000002500000003reloc/hpuxexports/hpuxexports-lib.pl  # hpuxexports-lib.pl
# Common functions for managing exports files

do '../web-lib.pl';
&init_config();

# list_exports()
# Return a list of all the directories currently being exported
sub list_exports
{
local(@rv);
open(EXP, $config{exports_file});
while(<EXP>) {
	chop; s/#.*//g;
	if (!/\S/) { next; }
	/(\/\S*)\s*/; push(@rv, $1);
	}
close(EXP);
return @rv;
}


# get_exports(directory)
# Return an array containing the following for some directory
#  directory, options
sub get_exports
{
local(@rv);
open(EXP, $config{exports_file});
while(<EXP>) {
	chop; s/#.*//g;
	if (!/\S/) { next; }
	if (/(\/\S*)\s+-(.*)/ && $1 eq $_[0]) {
		# found matching exports with options
		$rv[0] = $1;
                $rv[1] = $2;
		}
	elsif (/(\/\S*)\s+-(.*)/ && $1 eq $_[0]) {
		# found matching exports with options
		$rv[0] = $1;
                $rv[1] = $2;
		}
	}
close(EXP);
return @rv;
}


# create_export(directory, options)
# Add a new exports to the exports file
sub create_export
{
open(EXP, ">> $config{exports_file}");
print EXP "$_[0] ";
if ($_[1]) { print EXP "-$_[1]\n" };
close(EXP);
}


# modify_export(old_directory, directory, options)
# Modify an existing exports
sub modify_export
{
local(@exp);
open(EXP, $config{exports_file});
@exp = <EXP>;
close(EXP);
open(EXP, "> $config{exports_file}");
foreach (@exp) {
	chop; ($line = $_) =~ s/#.*//g;
	if ($line =~ /(\/\S+)\s*/ && $1 eq $_[0]) {
		# found exports to change..
		/\s*(\S+)/;
		print EXP "$_[1] ";
		if ($_[2]) { print EXP "-$_[2]\n" };
		}
	else {
		# leave this line alone
		print EXP "$_\n";
		}
	}
close(EXP);
}


# delete_export(directory)
# Delete the export for a particular directory
sub delete_export
{
local(@exp);
open(EXP, $config{exports_file});
@exp = <EXP>;
close(EXP);
open(EXP, "> $config{exports_file}");
foreach (@exp) {
	chop; ($line = $_) =~ s/#.*//g;
	if ($line !~ /(\/\S+)\s*/ || $1 ne $_[0]) {
		# Leave this line alone
		print EXP "$_\n";
		}
	}
close(EXP);
}


# parse_options(string)
# Parse a mount options string like rw=foo,nosuid,... into the associative
# array %options. Parts with no value are given an empty string as the value
sub parse_options
{
local($opt);
undef(%options);
foreach $opt (split(/,/, $_[0])) {
	if ($opt =~ /^([^=]+)=(.*)$/) {
		$options{$1} = $2;
		}
	else {
		$options{$opt} = "";
		}
	}
}

# join_options()
# Returns a list of options from the %options array, in the form used in
# the exports file
sub join_options
{
local(@list, $k);
foreach $k (keys %options) {
	if ($options{$k} eq "") {
		push(@list, $k);
		}
	else {
		push(@list, "$k=$options{$k}");
		}
	}
return join(',', @list);
}

1;

0707010005abc8000041ed0000000000000001000000023ac03bee00000000000000200000000000000000000000000000001900000003reloc/hpuxexports/images  0707010005abc9000081a40000000000000002000000013ac038a0000000f5000000200000000000000000000000000000002200000003reloc/hpuxexports/images/icon.gif GIF89a0 0   櫃櫶烫fff!    ,    0 0  苿彥隧蹿[冝<`	釮
圩:l踰!,灍︺<$d,91賠uM2荞l*扸泳篈(镴駔吰ii3薴汒\撸6鶟#(鯂6ˇx8W7H颧HTt5墿x郔殸5腨定戟`[饫Zk[腙4:∷+猁
,K|jx惶莒\3鹛:@]m}峂崜蜐-.>⺌  ;   07070100057d89000081e40000000000000002000000013ac038a00000061f000000200000000000000000000000000000001c00000003reloc/hpuxexports/index.cgi   #!/usr/local/bin/perl
# index.cgi

require './hpuxexports-lib.pl';

&header("NFS Exports", "", undef, 1, 1);
print "<hr>\n";

@exp = &list_exports();
if (@exp) {
	print "<table border width=100%>\n";
	print "<tr $tb><td><b>Directory</b></td> <td><b>Clients</b></td> </tr>\n";
	foreach $e (&list_exports()) {
		print "<tr $cb>\n";
		print "<td><a href=\"edit_export.cgi?$e\">$e</a></td>\n";
		@einfo = &get_exports($e);
		&parse_options($einfo[1]);
		undef(%clients);
		foreach (split(/:/, $options{"access"})) { $clients{$_}++; }
		foreach (split(/:/, $options{"rw"})) { $clients{$_}++; }
		foreach (split(/:/, $options{"root"})) { $clients{$_}++; }
		if (%clients) {
			$clients = join(' ' , sort { $a cmp $b } (keys %clients));
			if (length($clients) > 80) {
				$clients = substr($clients, 0, 80)."...";
				}
			}
		else { $clients = "Everyone"; }
		print "<td>$clients</td>\n";
		print "</tr>\n";
		}
	print "</table>\n";
	}
else {
	print "<b>No directories are currently being exported on ",
	      "this system</b>. <p>\n";
	}
print "<a href=\"edit_export.cgi\">Export a new directory</a>. <p>\n";

print "<hr>\n";
print "<table width=100%> <tr>\n";
print "<td><form action=restart_exporting.cgi>\n";
print "<input type=submit value=\"Apply Changes\">\n";
print "</form></td>\n";
print "<td valign=top> Click this button to apply the current file exports\n";
print "configuration. This will make all the directories listed above\n";
print "available with the options specified.</td>\n";
print "</tr> <tr> </table>\n";

print "<hr>\n";
&footer("/", "index");

 07070100057d8a000081a40000000000000002000000013ac038a00000015e000000200000000000000000000000000000001e00000003reloc/hpuxexports/module.info name=HPUXexports 
desc_pt=Exporta珲es de NFS
desc_tr=NFS Sunumlar
desc_fr=Partage NFS
desc_es=Exportaciones de NFS
desc_de=NFS Exporte
desc_sv=NFS-exportering
desc_ru_SU=蚺诱矣 NFS
desc_pl=Udost阷nianie po NFS
category=system
os_support=hpux
desc_zh_TW.Big5=NFS 蹲
desc=NFS Exports
risk=low medium high
desc_zh_CN=NFS 输出
desc_ru_RU=绣耋瘃 NFS
  07070100057d8b000081e40000000000000002000000013ac038a00000024f000000200000000000000000000000000000002800000003reloc/hpuxexports/restart_exporting.cgi   #!/usr/local/bin/perl
# restart_exporting.cgi
# Call unexportall and exportall to stop and re-start file exporting

require './hpuxexports-lib.pl';
$whatfailed = "Failed to apply changes";

$temp = &tempname();
system("$config{unexport_all_command} >/dev/null 2>$temp");
$why = `/bin/cat $temp`;
unlink($temp);
#if ($why =~ /\S+/) {
#	&error("Unexport failed : </h2><pre>$why</pre>");
#	}
system("$config{export_all_command} >/dev/null 2>$temp");
$why = `/bin/cat $temp`;
unlink($temp);
if ($why =~ /\S+/) {
	&error("Export failed : </h2><pre>$why</pre>");
	}
unlink($temp);
&redirect("");

 07070100057d8c000081e40000000000000002000000013ac038a000000a19000000200000000000000000000000000000002200000003reloc/hpuxexports/save_export.cgi #!/usr/local/bin/perl
# save_export.cgi
# Save changes to a exported directory

require './hpuxexports-lib.pl';
$whatfailed = "Failed to save export";
use Socket;
&ReadParse();

# check inputs
if ($in{directory} !~ /^\/.*/) {
	&error("$in{directory} is not a valid directory name");
	}
if (!(-d $in{directory})) {
	&error("The directory $in{directory} does not exist");
	}
@ualist = split(/\s+/, $in{ualist}); &check_hosts(@ualist);
@rtlist = split(/\s+/, $in{rtlist}); &check_hosts(@rtlist);
if (($in{user} == 1 || $in{user} == 3 || $in{user} == 4) && !@ualist) {
	&error("You did not list any hosts to export read-write with");
	}
if ($in{root} == 2 && !@rtlist) {
	&error("You did not list any hosts to export root with");
	}

# Remove from the root list any hosts which not in the user list as well
if (($in{user} == 1 || $in{user} == 3 || $in{user} == 4) && $in{root} == 2) {
	@tmplist = @rtlist;
	foreach $rth (@tmplist) {
		if (($idx = &indexof($rth, @ualist)) == -1) {
			splice(@rtlist, &indexof($rth, @rtlist), 1);
			}
		}
	if (@rtlist == 0) {
		$in{root} = 1;
		}
	}

if ($in{old}) {
	# Changing an existing export 
	if ($in{old} ne $in{directory} && &get_exports($in{directory})) {
		&error("The directory $in{directory} is already being exported");
		}
	@oinfo = &get_exports($in{old});	# keep unknown options
	&parse_options($oinfo[3]);
	&set_options();
	&modify_export($in{old}, $in{directory}, &join_options());
	}
else {
	# Creating a new export 
	if (&get_exports($in{directory})) {
		&error("The directory $in{directory} is already being exported");
		}
	&set_options();
	&create_export($in{directory}, &join_options());
	}
&redirect("");


# set_options()
# Fill in the options associative array
sub set_options
{
delete($options{"ro"});
delete($options{"rw"});
delete($options{"access"});
if ($in{user} == 1) { $options{"ro"} = ""; $options{"access"} = join(':', @ualist); }
elsif ($in{user} == 2) { $options{"ro"} = ""; }
elsif ($in{user} == 3) { $options{"rw"} = join(':', @ualist); }
elsif ($in{user} == 4) { $options{"access"} = join(':', @ualist); }
elsif ($in{user} == 5) { ; }

if ($in{root} == 1) { delete($options{"root"}); }
elsif ($in{root} == 2) { $options{"root"} = join(':', @rtlist); }

if ($in{async} == 1) { $options{"async"} = ""; }
else { delete($options{"async"}); }

if ($in{anon} eq "") { delete($options{"anon"}); }
else { $options{"anon"} = $in{anon}; }
}

# check_hosts(host, host, ...)
# Die if any of the listed hosts does not exist
sub check_hosts
{
foreach (@_) {
	if (!inet_aton($_)) { &error("The host $_ does not exist"); }
	}
}


   07070100001a10000041ed0000000000000001000000053ac03c1300000000000000200000000000000000000000000000000a00000003reloc/man 07070100001a11000081a40000000000000002000000013ac038af0000005a000000200000000000000000000000000000001500000003reloc/man/config-aix  search_cmd=man -k PAGE
man_dir=/usr/man
man_cmd_sect=man -s SECTION PAGE
man_cmd=man PAGE
  07070100001a12000081a40000000000000002000000013ac038af000000de000000200000000000000000000000000000001e00000003reloc/man/config-cobalt-linux search_cmd=man -k PAGE
man_dir=/usr/man
man_cmd_sect=man SECTION PAGE
man_cmd=man PAGE
list_cmd_sect=man -w SECTION PAGE
list_cmd=man -w PAGE
man2html_path=man2html
doc_dir=/usr/doc
kernel_dir=/usr/src/linux/Documentation
  07070100001a13000081a40000000000000002000000013ac038af0000010e000000200000000000000000000000000000001d00000003reloc/man/config-corel-linux  search_cmd=man -k PAGE
man_dir=/usr/man
man_cmd_sect=man SECTION PAGE
man_cmd=man PAGE
list_cmd_sect=man -w SECTION PAGE
list_cmd=man -w PAGE
man2html_path=man2html
doc_dir=/usr/share/doc
kernel_dir=/usr/src/linux/Documentation
kde_dir=/usr/X11R6/share/doc/HTML/default
  07070100001a14000081a40000000000000002000000013ac038af000000e4000000200000000000000000000000000000001e00000003reloc/man/config-debian-linux search_cmd=man -k PAGE
man_dir=/usr/man
man_cmd_sect=man SECTION PAGE
man_cmd=man PAGE
list_cmd_sect=man -w SECTION PAGE
list_cmd=man -w PAGE
man2html_path=man2html
doc_dir=/usr/share/doc
kernel_dir=/usr/src/linux/Documentation
07070100001a15000081a40000000000000002000000013ac038af0000005d000000200000000000000000000000000000001900000003reloc/man/config-freebsd  search_cmd=man -k PAGE
man_dir=/usr/share/man
man_cmd_sect=man SECTION PAGE
man_cmd=man PAGE
   07070100001a16000081a40000000000000002000000013ac038b000000081000000200000000000000000000000000000001600000003reloc/man/config-hpux search_cmd=man -k PAGE
man_dir=/usr/man
man_cmd_sect=man - SECTION PAGE
man_cmd=man PAGE
list_cmd=
man2html_path=
list_cmd_sect=
   07070100001a17000081a40000000000000002000000013ac038af000000a6000000200000000000000000000000000000001600000003reloc/man/config-irix search_cmd=man -k PAGE
man_dir=/usr/share/catman/a_man /usr/share/catman/u_man /usr/share/catman/p_man
man_cmd_sect=man SECTION PAGE
man_cmd=man PAGE
strip_letters=1
  07070100001a18000081a40000000000000002000000013ac038af000000cd000000200000000000000000000000000000001b00000003reloc/man/config-lfs-linux    search_cmd=man -k PAGE
man_dir=/usr/man
man_cmd_sect=man SECTION PAGE
man_cmd=man PAGE
list_cmd_sect=man -w SECTION PAGE
list_cmd=man -w PAGE
man2html_path=man2html
kernel_dir=/usr/src/linux/Documentation
   07070100001a19000081a40000000000000002000000013ac038af00000074000000200000000000000000000000000000001700000003reloc/man/config-macos    search_cmd=man -k PAGE
man_dir=/usr/share/man
man_cmd_sect=man SECTION PAGE
man_cmd=man PAGE
man2html_path=man2html
07070100001a1a000081a40000000000000002000000013ac038af00000133000000200000000000000000000000000000001c00000003reloc/man/config-open-linux   search_cmd=man -k PAGE
man_dir=/usr/man
man_cmd_sect=man SECTION PAGE
man_cmd=man PAGE
list_cmd_sect=man -w SECTION PAGE
list_cmd=man -w PAGE
man2html_path=man2html
doc_dir=/usr/doc
howto_dir=/usr/doc/HOWTO /usr/doc/HOWTO/mini
kernel_dir=/usr/src/linux/Documentation
kde_dir=/opt/kde/share/doc/HTML/default
 07070100001a1b000081a40000000000000002000000013ac038b0000001bc000000200000000000000000000000000000002100000003reloc/man/config-open-linux-3.1e  search_cmd=man -k PAGE
man_dir=/usr/man
man_cmd_sect=man SECTION PAGE
man_cmd=man PAGE
list_cmd_sect=man -w SECTION PAGE
list_cmd=man -w PAGE
man2html_path=man2html
doc_dir=/usr/share/doc/packages
howto_dir=/usr/share/doc/packages/HOWTO /usr/share/doc/packages/HOWTO/mini /usr/share/doc/packages/HOWTO/unmaintained /usr/share/doc/packages/HOWTO/unmaintained/mini
kernel_dir=/usr/src/linux/Documentation
kde_dir=/opt/kde2/share/doc/HTML/default
07070100001a1c000081a40000000000000002000000013ac038af0000005d000000200000000000000000000000000000001900000003reloc/man/config-openbsd  search_cmd=man -k PAGE
man_dir=/usr/share/man
man_cmd_sect=man SECTION PAGE
man_cmd=man PAGE
   07070100001a1d000081a40000000000000002000000013ac038af0000012d000000200000000000000000000000000000001e00000003reloc/man/config-redhat-linux search_cmd=man -k PAGE
man_dir=/usr/man
man_cmd_sect=man SECTION PAGE
man_cmd=man PAGE
list_cmd_sect=man -w SECTION PAGE
list_cmd=man -w PAGE
man2html_path=man2html
doc_dir=/usr/doc
howto_dir=/usr/doc/HOWTO /usr/doc/HOWTO/mini
kernel_dir=/usr/src/linux/Documentation
kde_dir=/usr/doc/kde/HTML/default
   07070100001a1e000081a40000000000000002000000013ac038b00000014a000000200000000000000000000000000000002200000003reloc/man/config-redhat-linux-7.0 search_cmd=man -k PAGE
man_dir=/usr/man
man_cmd_sect=man SECTION PAGE
man_cmd=man PAGE
list_cmd_sect=man -w SECTION PAGE
list_cmd=man -w PAGE
man2html_path=man2html
doc_dir=/usr/share/doc /usr/doc
kernel_dir=/usr/src/linux/Documentation
kde_dir=/usr/share/doc/HTML/default
howto_dir=/usr/share/doc/HOWTO /usr/share/doc/HOWTO/mini
  07070100001a1f000081a40000000000000002000000013ac038b00000014a000000200000000000000000000000000000002200000003reloc/man/config-redhat-linux-7.1 search_cmd=man -k PAGE
man_dir=/usr/man
man_cmd_sect=man SECTION PAGE
man_cmd=man PAGE
list_cmd_sect=man -w SECTION PAGE
list_cmd=man -w PAGE
man2html_path=man2html
doc_dir=/usr/share/doc /usr/doc
kernel_dir=/usr/src/linux/Documentation
kde_dir=/usr/share/doc/HTML/default
howto_dir=/usr/share/doc/HOWTO /usr/share/doc/HOWTO/mini
  07070100001a20000081a40000000000000002000000013ac038af00000126000000200000000000000000000000000000002100000003reloc/man/config-slackware-linux  search_cmd=man -k PAGE
man_dir=/usr/man
man_cmd_sect=man SECTION PAGE
man_cmd=man PAGE
list_cmd_sect=man -w SECTION PAGE
list_cmd=man -w PAGE
man2html_path=man2html
doc_dir=/usr/doc
howto_dir=/usr/doc/Linux-HOWTOs
kernel_dir=/usr/src/linux/Documentation
kde_dir=/opt/kde/share/doc/HTML/default
  07070100001a21000081a40000000000000002000000013ac038af0000005a000000200000000000000000000000000000001900000003reloc/man/config-solaris  search_cmd=man -k PAGE
man_dir=/usr/man
man_cmd_sect=man -s SECTION PAGE
man_cmd=man PAGE
  07070100001a22000081a40000000000000002000000013ac038af0000012b000000200000000000000000000000000000001c00000003reloc/man/config-suse-linux   search_cmd=man -k PAGE
man_dir=/usr/man
man_cmd_sect=man SECTION PAGE
man_cmd=man PAGE
list_cmd_sect=man -w SECTION PAGE
list_cmd=man -w PAGE
man2html_path=man2html
doc_dir=/usr/doc/packages
howto_dir=/usr/doc/howto/en
kernel_dir=/usr/src/linux/Documentation
kde_dir=/opt/kde/share/doc/HTML/default
 07070100001a23000081a40000000000000002000000013ac038b000000155000000200000000000000000000000000000002000000003reloc/man/config-suse-linux-7.1   search_cmd=man -k PAGE
man_dir=/usr/man
man_cmd_sect=man SECTION PAGE
man_cmd=man PAGE
list_cmd_sect=man -w SECTION PAGE
list_cmd=man -w PAGE
man2html_path=man2html
doc_dir=/usr/share/doc/packages
howto_dir=/usr/share/doc/howto/en /usr/share/doc/howto/en/mini
kernel_dir=/usr/src/linux/Documentation
kde_dir=/opt/kde2/share/doc/HTML/default
   07070100001a24000081a40000000000000002000000013ac038af00000162000000200000000000000000000000000000001d00000003reloc/man/config-turbo-linux  search_cmd=man -k PAGE
man_dir=/usr/man
man_cmd_sect=man SECTION PAGE
man_cmd=man PAGE
list_cmd_sect=man -w SECTION PAGE
list_cmd=man -w PAGE
man2html_path=man2html
doc_dir=/usr/share/doc/packages
howto_dir=/usr/share/doc/HOWTO/english/txt /usr/share/doc/HOWTO/english/txt/mini
kernel_dir=/usr/src/linux/Documentation
kde_dir=/usr/share/doc/HTML/default
  07070100001a25000081a40000000000000002000000013ac038af00000226000000200000000000000000000000000000001600000003reloc/man/config.info man_cmd=Command to display manual page,0
man_cmd_sect=Command to display manual page from a section,0
search_cmd=Command to search pages,0
man_dir=Manual pages directories (MANPATH),0
list_cmd=Command to display the manual page filepath,0
list_cmd_sect=Command to display the manual page filepath from a section,0
man2html_path=Path to man2html,3,Do not use man2html
doc_dir=Package documentation directory,3,None
howto_dir=HOWTO document directories,3,None
kernel_dir=Kernel documentation directory,3,None
kde_dir=KDE documentation directory,3,None
  07070100001a26000081a40000000000000002000000013ac038af000000d5000000200000000000000000000000000000001900000003reloc/man/config.info.de  man_cmd=Kommando zum Anzeigen der Hilfeseite (man page),0
man_cmd_sect=Kommando zum Anzeigen der Hilfe Seite einer Sektion,0
search_cmd=Kommando zum Durchsuchen der Seiten,0
man_dir=Verzeichnis der Hilfeseiten,0

   07070100001a27000081a40000000000000002000000013ac038af0000027c000000200000000000000000000000000000001900000003reloc/man/config.info.es  man_cmd=Comando para mostrar p醙ina del manual,0
man_cmd_sect=Comando para mostrar p醙ina de una secci髇,0
search_cmd=Comando para buscar p醙inas,0
man_dir=Directorio de p醙inas del manual,0
list_cmd=Comando que muestra la trayectoria de p醙ina del manual,0
list_cmd_sect=Comando que muestra la trayectoria de p醙ina del manual de una secci髇,0
man2html_path=Trayectoria a man2html,3,No usar man2html
doc_dir=Directorio de documentaci髇 del paquete,3,Ninguno
howto_dir=Directorios de documento COMO-HACER (HOWTO),3,Ninguno
kernel_dir=Directorio de documentaci髇 del kernel,3,Ninguno
kde_dir=Directorio de documentaci髇 de KDE,3,Ninguno
07070100001a6b000081a40000000000000002000000013ac038af000000d3000000200000000000000000000000000000001900000003reloc/man/config.info.fr  man_cmd=Commande pour afficher la page du manuel,0
man_cmd_sect=Commande pour afficher la page du manuel d'une section,0
search_cmd=Commande pour chercher dans les pages,0
man_dir=R閜ertoire des pages manuel,0

 07070100001a6c000081a40000000000000002000000013ac038af000000f8000000200000000000000000000000000000001900000003reloc/man/config.info.hu  man_cmd=Egy programle韗醩t megjelen韙 parancs,0
man_cmd_sect=Adott kateg髍i醔a tartoz dokumentumot megjelen韙 parancs,0
search_cmd=A dokumentumok k鰖ti keres閟re szolg醠 parancs,0
man_dir=A programdokument醕i髏 tartalmaz katal骻us(ok),0

07070100001a6d000081a40000000000000002000000013ac038b000000294000000200000000000000000000000000000001900000003reloc/man/config.info.pl  man_cmd=Polecenie wy秝ietlaj眂e stron podr阠znika,0
man_cmd_sect=Polecenie wy秝ietlaj眂e stron podr阠znika z&nbsp;rozdzia硊,0
search_cmd=Polecenie przeszukuj眂e strony,0
man_dir=Katalogi zawieraj眂e strony podr阠znika (MANPATH),0
list_cmd=Polecenie zwracaj眂e scie縦 do pliku strony podr阠znika,0
list_cmd_sect=Polecenie zwracaj眂e scie縦 do pliku strony podr阠znika z&nbsp;rozdzia硊,0
man2html_path=ie縦a do <tt>man2html</tt>,3,Nie korzystaj z&nbsp;<tt>man2html</tt>
doc_dir=Katalog dokumentacji pakiet體,3,Brak
howto_dir=Katalog dokument體 &quot;HOWTO&quot;,3,Brak
kernel_dir=Katalog dokumentacji kernela,3,Brak
kde_dir=Katalog dokumentacji KDE,3,Brak
07070100001a6e000081a40000000000000002000000013ac038b0000000d3000000200000000000000000000000000000001c00000003reloc/man/config.info.ru_RU   search_cmd=暑爨礓 潆 镱桉赅 耱疣龛,0
man_dir=枢蜞腩 耱疣龛 痼觐忸漶蜮,0
man_cmd_sect=暑爨礓 潆 铗钺疣驽龛 耱疣龛 痼觐忸漶蜮 桤 恹狃囗眍 皴牿梃,0
man_cmd=暑爨礓 潆 铗钺疣驽龛 耱疣龛 痼觐忸漶蜮,0
 07070100001a6f000081a40000000000000002000000013ac038af000000d4000000200000000000000000000000000000001c00000003reloc/man/config.info.ru_SU   man_cmd=胂土文 奶 显下伊峙紊 釉伊紊 艺讼紫挠宰,0
man_cmd_sect=胂土文 奶 显下伊峙紊 釉伊紊 艺讼紫挠宰 哨 踪乱廖蜗 优嗣缮,0
search_cmd=胂土文 奶 邢捎肆 釉伊紊,0
man_dir=肓粤滔 釉伊紊 艺讼紫挠宰,0

07070100001a70000081a40000000000000002000000013ac038af0000025a000000200000000000000000000000000000001900000003reloc/man/config.info.sv  man_cmd=Kommando f鰎 att visa manualsida,0
man_cmd_sect=Kommando f鰎 att visa manualsida ur en speciell avdelning,0
search_cmd=Kommando f鰎 att leta efter sidor,0
man_dir=Katalog f鰎 manualsidor (MANPATH),0
list_cmd=Kommando f鰎 att visa s鰇v鋑 till manualsida,0
list_cmd_sect=Kommando f鰎 att visa s鰇v鋑 till manualsida ur en speciell avdelning,0
man2html_path=S鰇v鋑 till man2html,3,Anv鋘d inte man2html
doc_dir=Katalog f鰎 paketdokumentation,3,Ingen
howto_dir=Katalog(er) f鰎 HOWTO-dokument,3,Ingen
kernel_dir=Katalog f鰎 k鋜nans dokumentation,3,Ingen
kde_dir=Katalog f鰎 KDE-dokumentation,3,Ingen
  07070100001a71000081a40000000000000002000000013ac038b0000000c4000000200000000000000000000000000000001900000003reloc/man/config.info.tr  man_cmd=Yard齧 sayfas齨 g鰎黱t黮eme komutu,0
man_cmd_sect=Bir b鰈黰deki yard齧 sayfas齨 g鰎黱t黮eme komutu,0
search_cmd=Sayfa aramak i鏸n kullan齦acak komut,0
man_dir=Yard齧 sayfalar dizini,0

07070100001a72000081a40000000000000002000000013ac038af00000117000000200000000000000000000000000000001c00000003reloc/man/config.info.zh_CN   man_cmd=显示 manual page 的命令,0
man_cmd_sect=从某段显示 manual page 的命令,0
search_cmd=搜索 pages 的命令,0
man_dir=Manual pages 目录,0
list_cmd=显示 manual page 文件路径的命令,0
list_cmd_sect=显示某段 manual page 文件路径的命令,0
man2html_path=man2html 的路径,3,不使 man2html
 07070100001a73000081a40000000000000002000000013ac038af00000079000000200000000000000000000000000000002100000003reloc/man/config.info.zh_TW.Big5  man_cmd=陪ボも,0
man_cmd_sect=陪ボ疭﹚も彻竊,0
search_cmd=穓碝も,0
man_dir=も隔畖,0

   07070100003209000041ed0000000000000001000000023ac03c1100000000000000200000000000000000000000000000000f00000003reloc/man/help    0707010000320a000081a40000000000000002000000013ac038af000002a6000000200000000000000000000000000000001d00000003reloc/man/help/intro.es.html  <header>P醙inas del Manual</header>

Este m骴ulo te permite buscar p醙inas de manual en tu sistema, igual
que har韆s mediante el comando <tt>man</tt>. S髄o digita el comando
o funci髇 que deseas buscar, selecciona si la b鷖queda se realizar por
coincidencia exacta del nombre del comando o una palabra de la
descripci髇, selecciona la secci髇 del manual donde buscar y haz click
en el bot髇 de <tt>Buscar</tt>.<p>

Si est醩 buscando una coincidencia exacta, la p醙ina del manual del
comando o de la funci髇 ser mostrada, si es encontrada. Si buscas por
descripci髇, una lista de p醙inas de manual coincidentes te ser mostrada
para que selecciones cual deseas ver. <p>

<hr>

  0707010000320b000081a40000000000000002000000013ac038af000002d2000000200000000000000000000000000000001d00000003reloc/man/help/intro.fr.html  <header>Pages du manuel</header>

Ce module vous permet de chercher dans les pages du manuel
de votre syst鑝e comme si vous utilisiez la commande <tt>man</tt>.
Vous n'avez qu' entrer la commande ou la fonction que vous
voulez rechercher, choisir si vous d閟irez que la recherche
soit exacte  sur la commande ou s'applique sur un mot dans la
description, la section dans laquelle vous voulez appliquer
la recherche et cliquer sur le bouton <tt>Rehercher</tt>. <p>

Si vous faites une recherche exacte, la page du manuel va 阾re
automatiquement affich閑 si elle est trouv閑. Si c'est dans les
descriptions, une liste de toute les pages correspondantes va 阾re
affich閑 et vous pourrez choisir la commande  voir. <p>

<hr>
  0707010000320c000081a40000000000000002000000013ac038af0000026e000000200000000000000000000000000000001a00000003reloc/man/help/intro.html <header>Manual Pages</header>

This module allows you to search your system's manual pages, just
as you would using the <tt>man</tt> command. Just enter the command
or function you want to search for, select whether the search will be
for exact match on the command name or a word in the description, select
the manual section to query, and click the <tt>Search</tt> button. <p>

If searching for an exact match, the manual page for the command or
function will be displayed if it is found. If searching by description,
a list of matching manual pages will be displayed for you to select
commands from to view. <p>

<hr>

  0707010000320d000081a40000000000000002000000013ac038af0000030c000000200000000000000000000000000000001d00000003reloc/man/help/intro.hu.html  <header>Programdokument醕i</header>

Ez a modul hozz醘閞het鮲 teszi sz醡odra az oper醕i髎 rendszerhez
adott dokument醕i髏, amit egy 醫lagos felhaszn醠 a <tt>man</tt>
paranccsal n閦egethet. A keres閟hez megadhatod a kilist醶and
dokumentum pontos c韒閠 (programnevet, f黦gv閚ynevet, file-nevet, stb.)
vagy k閞heted az 鰏szes dokumentumot, melyeknek egysoros 鰏szefoglal骿醔an
szerepel a keresend sz鰒eg.
<p>

El鮞bi esetben lesz鹝韙heted a keresend dokumentumok k鰎閠 egy kateg髍i醨a
is. Ennek akkor van jelent鮯間e, ha ugyanolyan nev dokumentum t鯾b
kateg髍醔an is el鮢ordul. (P閘d醬l <tt>printf(1), printf(3)</tt> vagy
<tt>kill(1), kill(2)</tt>.) Az egyes kateg髍i醟 felsorol醩醫 閟 r鰒id
le韗醩醫 a <tt>man(1)</tt> dokumentumban tal醠od meg.
<p>

<hr>

0707010000320e000081a40000000000000002000000013ac038af00000296000000200000000000000000000000000000001d00000003reloc/man/help/intro.pl.html  <header>Strony podr阠znika</header>

Ten modu pozwala ci przeszuka strony podr阠znika twojego systemu tak,
jakby u縴wa polecenia <tt>man</tt>. Po prostu wprowad polecenie lub
funkcj, kt髍ej szukasz, zaznacz, czy szukasz dok砤dnie tego polecenia,
czy s硂wa w&nbsp;jego opisie, wybierz rozdzia, kt髍y ci interesuje oraz 
naci秐ij przycisk <tt>Szukaj</tt>. <p>

Je秎i poszukiwanie dok砤dnego tytu硊 zako馽zy si sukcesem, wy秝ietlona
zostanie strona podr阠znika dla polecenia lub funkcji. Je秎i przeszukujesz
opisy polece i&nbsp;funkcji, zostanie wy秝ietlona lista odpowiednich stron
podr阠znika, aby m骻 z&nbsp;niej t, kt髍 chcesz obejrze. <p>

<hr>
  0707010000320f000081a40000000000000002000000013ac038af00000270000000200000000000000000000000000000002000000003reloc/man/help/intro.ru_RU.html   <header>羊疣龛鳆 畜觐忸漶蜮</header>

泥眄 祛潴朦 镱玮铍弪 忄 铖簌羼蜮螯 镱桉  耱疣龛鲟 痼觐忸漶蜮 忄 耔耱屐, 赅 羼腓 猁 恹 桉镱朦珙忄腓 觐爨礓 <tt>man</tt>. 橡铖蝾 忖邃栩 桁 觐爨礓 桦 趔黻鲨, 觐蝾痼 恹 躅蜩蝈 磬轵, 恹徨痂蝈 赅 狍溴 镳铊玮钿栩 镱桉 - 镱 镱腠铎 耦铗忮蝰蜮棹 桁屙 觐爨礓 桦 耠钼  铒桉囗梃, 恹徨痂蝈 皴牿棹 痼觐忸漶蜮 潆 玎镳铖  磬骒栩 磬 觏铒牦 <tt>项桉</tt>. <p>

橡 镱桉赍 镱 镱腠铎 耦铗忮蝰蜮棹, 狍溴 镱赅玎磬 磬殇屙磬 耱疣龛鲟 痼觐忸漶蜮. 橡 镱桉赍 镱 铒桉囗棹, 狍溴 镱赅玎 耧桉铌 耦铗忮蝰怏桴 耱疣龛 痼觐忸漶蜮 潆 溧朦礤轼邈 镳铖祢疣. <p>  

<hr>

07070100003210000081a40000000000000002000000013ac038af00000270000000200000000000000000000000000000002000000003reloc/man/help/intro.ru_SU.html   <header>笤伊紊觅 蛘讼紫挠宰</header>

淞挝偈 拖恼特 邢谧咸雅 琢 嫌蛰庞宰萄载 邢捎  釉伊紊昧 艺讼紫挠宰 琢叟 由釉磐, 肆 庞躺 沦 踪 捎邢特谙琢躺 讼土文 <tt>man</tt>. 鹨嫌韵 鬃拍稍 赏 讼土文 商 普嗡蒙, 讼韵艺 踪 认陨耘 瘟试, 踪屡疑耘 肆 抡呐 幸仙谧夏稍赜 邢捎 - 邢 邢涛贤 酉显着杂宰衫 赏盼 讼土文 商 犹献  闲捎廖缮, 踪屡疑耘 优嗣衫 艺讼紫挠宰 奶 诹幸嫌  瘟滞稍 瘟 宋闲苏 <tt>鹣捎</tt>. <p>

鹨 邢捎伺 邢 邢涛贤 酉显着杂宰衫, 抡呐 邢肆诹瘟 瘟誓盼瘟 釉伊紊昧 艺讼紫挠宰. 鹨 邢捎伺 邢 闲捎廖衫, 抡呐 邢肆诹 有捎纤 酉显着杂渍垒扇 釉伊紊 艺讼紫挠宰 奶 牧特闻售徘 幸嫌驮伊. <p>  

<hr>

07070100003211000081a40000000000000002000000013ac038af00000277000000200000000000000000000000000000001d00000003reloc/man/help/intro.sv.html  <header>Manualsidor</header>

Med denna modul kan du s鰇a igenom manualsidorna f鰎 ditt system p
samma s鋞t som om du anv鋘de <tt>man</tt>-kommandot. Skriv in det
kommando eller den funktion du vill s鰇a efter, v鋖j om du vill s鰇a
efter exakt detta kommandonamn eller om du vill s鰇a efter ord i
beskrivningen, v鋖j avsnitt att s鰇a i och tryck p <tt>S鰇</tt>-knappen.

Om du v鋖jer att s鰇a efter exakt detta kommandonamn kommer manualsidan
f鰎 kommandot eller funktionen att visas om den finns. Om du s鰇er i
beskrivningarna kommer du att f upp en lista 鰒er manualsidor d鋜 du
kan v鋖ja vilken sida du vill titta p.

<hr>

 070701000048ea000041ed0000000000000001000000023ac03c1100000000000000200000000000000000000000000000001100000003reloc/man/images  070701000048eb000081a40000000000000002000000013ac038af00000468000000200000000000000000000000000000001a00000003reloc/man/images/icon.gif GIF89a0 0               览繭e}儥\麯孌$葎剟H,攧T4谼DDt$+嬖Dd (,L'$i(L$宒'd.$$$,哪哪&D匋4麯$()4*x楧4Lddd$t/,T鬞惔
X$TいF$4豥dd77(滗6<鐋$t<<87x|h%4t<ht$袱8j<4$t黅湻贆D賅	l祠H$t梎橖L,t8敂擳TT444栽源创ttt趑T,淒$攊yt8$皒 凾9$糄 $,l4t|@U)z l黒|P$D<4鼒\|$擥,,T淭岦T<旚4\D|t4寣寣D4弻LLLL,,,烫<(擻\琹ll,綮祆D湝湝\\\<<<苘芗技|||麹<	yT麹擫烫D,)鑜$(4D*,i*,飕(l1$,虦(L岦<鵏*<,y滛,|,4\袅藤牋         !Made with GIMP !   ,  ! !   	H盃羶 惏 -|H慲+V紙憽F;~T竝!F=,9aDO	q!緭4S枩)S >6a,i矜藰=獢塓i7%FE轱'>劄椽抋L圸Q)褦0蘘繳榚酊rm直o檉=jG>輶针+毯z踁褪xh司j吠[VjW縶[ヌT疕O~嫷3Q疩k啘蘗︾胠*-x燸覴徘$肓=鱹Yu駾2=;voK1W柌砫位鱲躰4b镛"W蜣窏D|⑼聸蓮G燂w開L螨|Q刔}笉磼z9hQ ;07070100001a74000081e40000000000000002000000013ac038af00000824000000200000000000000000000000000000001400000003reloc/man/index.cgi   #!/usr/local/bin/perl
# index.cgi
# Display the manual pages search form

require './man-lib.pl';
&header($text{'index_title'}, "", "intro", 1, 1);
print "<hr>\n";

print "<form action=search.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'index_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'index_for'}</b></td>\n";
print "<td><input name=for size=30></td> </tr>\n";

print "<tr> <td><b>$text{'index_type'}</b></td>\n";
print "<td><input type=radio name=exact value=1 checked> $text{'index_name'}\n";
print "<input type=radio name=exact value=0> $text{'index_data'}</td> </tr>\n";

print "<tr> <td valign=top><b>$text{'index_where'}</b></td> <td>\n";
print "<input type=checkbox name=section value=man checked> ",
      "$text{'index_man'}<br>\n";
print "<input type=checkbox name=section value=help> ",
      "$text{'index_help'}<br>\n";
foreach $d (split(/\s+/, $config{'doc_dir'})) {
	$doc_dir++ if (-d $d);
	}
if ($doc_dir) {
	print "<input type=checkbox name=section value=doc> ",
	      "$text{'index_doc'}<br>\n";
	}
foreach $h (split(/\s+/, $config{'howto_dir'})) {
	$howto_dir++ if (-d $h);
	}
if ($howto_dir) {
	print "<input type=checkbox name=section value=howto> ",
	      "$text{'index_howto'}<br>\n";
	}
if (-d $config{'kde_dir'}) {
	print "<input type=checkbox name=section value=kde> ",
	      "$text{'index_kde'}<br>\n";
	}
if (-d $config{'kernel_dir'}) {
	print "<input type=checkbox name=section value=kernel> ",
	      "$text{'index_kernel'}<br>\n";
	}
if ($perl_doc) {
	print "<input type=checkbox name=section value=perl> ",
	      "$text{'index_perl'}<br>\n";
	}
print "</td> </tr>\n";

print "<tr> <td colspan=2 align=right>",
      "<input type=reset value=\"$text{'index_reset'}\">\n",
      "<input type=submit value=\"$text{'index_search'}\"></td> </tr>\n";
print "</table></td></tr></table></form>\n";

print "<hr>\n";
&footer("/", $text{'index'});

sub contains_files
{
opendir(MANDIR, $_[0]);
local $rv = readdir(MANDIR) && readdir(MANDIR) && readdir(MANDIR);
closedir(MANDIR);
return $rv;
}

07070100005f11000041ed0000000000000001000000023ac03c1300000000000000200000000000000000000000000000000f00000003reloc/man/lang    07070100005f58000081a40000000000000002000000013ac038af0000021a000000200000000000000000000000000000001200000003reloc/man/lang/de index_title=Anleitungen (Manual Pages)
index_header=Suche in Anleitungen des Systems
index_for=Suche nach
index_exact=Exakte &Uuml;bereinstimmung?
index_section=Sektion
index_all=Alle
index_reset=R&uuml;cksetzen
index_search=Suche
index_return=Such Formular

search_efor=Es wurde keine Anleitung angegeben, nach der gesucht werden soll
search_title=Suchergebnis
search_noentry=Kein Anleitung f&uuml;r '$1' gefunden
search_page=Anleitung
search_section=Sektion
search_desc=Beschreibung
search_none=Keine Anleitung passend zu '$1' gefunden
  07070100005f59000081a40000000000000002000000013ac038af0000060d000000200000000000000000000000000000001200000003reloc/man/lang/en index_title=System Documentation
index_header=System manual pages search
index_for=Search for
index_where=Search in
index_alldoc=All documentation
index_man=Manual pages
index_doc=Package documentation
index_kernel=Kernel documentation
index_info=Info pages
index_howto=HOWTO documents
index_kde=KDE documentation
index_perl=Perl module documentation
index_help=Webmin Help
index_reset=Reset
index_search=Search
index_return=search form
index_type=Match
index_name=Name only
index_data=Name and contents

search_efor=No manual page to search for entered
search_title=Search Results
search_desc=Description
search_type=Type
search_file=Page or file
search_man=Manual page
search_howto=HOWTO document
search_doc=Package documentation
search_kernel=Kernel documentation
search_kde=KDE documentation
search_perl=Perl module
search_help=Webmin help
search_none=No documentation matching $1 found.
search_for=For $1

howto_title=HOWTO Document
howto_header=HOWTO document file $1
howto_epath=Invalid HOWTO document path

doc_title=Package Documentation
doc_header=Package document file $1
doc_epath=Invalid package documentation path

man_title=Manual Page
man_header=Manual page for $1($2)
man_noentry=Manual page for $1 does not exist!

kernel_title=Kernel Document
kernel_header=Kernel document file $1
kernel_epath=Invalid kernel document path

kde_title=KDE Documentation
kde_header=KDE document file $1
kde_epath=Invalid KDE documentation path

perl_title=Perl Module
perl_header=Documentation for Perl module $1
perl_emod=Invalid Perl module name

   07070100005f5a000081a40000000000000002000000013ac038af00000771000000200000000000000000000000000000001200000003reloc/man/lang/es index_title=P醙inas del Manual
index_header=B鷖queda de p醙inas del manual del Sistema
index_for=Buscar el texto...
index_where=Buscar en
index_alldoc=Toda la documentaci髇
index_man=P醙inas del manual
index_doc=Documentaci髇 del paquete
index_kernel=Documentaci髇 del kernel
index_info=P醙inas info
index_howto=Documentos COMO-HACER (HOWTO)
index_kde=Documentaci髇 de KDE
index_perl=Documentaci髇 del m骴ulo de Perl
index_help=Ayuda de Webmin
index_reset=Reiniciar
index_search=Buscar
index_return=formulario de b鷖queda
index_type=Que coincida con
index_name=S髄o el nombre
index_data=Nombre y contenido

search_efor=No se ha digitado p醙ina de manual a buscar
search_title=Resultados de la B鷖queda
search_desc=Descripci髇
search_type=Tipo
search_file=P醙ina o archivo
search_man=P醙ina del manual
search_howto=Documento COMO-HACER (HOWTO)
search_doc=Documentaci髇 del paquete
search_kernel=Documentaci髇 del kernel
search_kde=Documentaci髇 de KDE
search_perl=M骴ulo de Perl
search_help=Ayuda de Webmin
search_none=No se ha hallado documentaci髇 que coincida con $1.
search_for=Para $1

howto_title=Documento COMO-HACER (HOWTO)
howto_header=Archivo $1 de documento de COMO-HACER (HOWTO)
howto_epath=Trayectoria a documento COMO-HACER (HOWTO) inv醠ida

doc_title=Documentaci髇 de Paquete
doc_header=Archivo de documentaci髇 de paquete $1
doc_epath=Trayectoria a documentati髇 de paquete inv醠ida

man_title=P醙ina de Manual
man_header=P醙ina de manual para $1($2)
man_noentry=a p醙ina de manual para $1 no existe!

kernel_title=Documento de Kernel
kernel_header=Archivo $1 de documento de kernel
kernel_epath=Trayectoria a documento de kernel inv醠ida

kde_title=Documentaci髇 de KDE
kde_header=Archivo $1 de documento de KDE
kde_epath=Trayectoria a documentaci髇 de KDE inv醠ida

perl_title=M骴ulo de Perl
perl_header=Documentaci髇 para m骴ulo de Perl $1
perl_emod=Nombre de m骴ulo de Perl inv醠ido

   07070100005f5f000081a40000000000000002000000013ac038af00000379000000200000000000000000000000000000001200000003reloc/man/lang/fr index_title=Pages de manuel
index_header=Recherche dans les pages de manuel
index_for=Rechercher
index_man=Pages des manuel
index_where=Chercher dans
index_alldoc=Toutes les documentations
index_exact=Correspondance exacte?
index_section=Section(s) du manuel
index_all=Toutes
index_reset=Annuler
index_search=Rechercher
index_return=formulaire de recherche
index_type=Correspondance
index_name=Nom seul
index_data=Nom et contenu
index_perl=Documentation des modules Perl
index_help=Aide de Webmin
index_doc=Documentation des packages

search_efor=Aucune page du manuel  rechercher
search_title=R閟ultats de la recherche
search_noentry=Aucune page de manuel pour $1 n'a 閠 trouv閑.
search_page=Page du manuel
search_section=Section
search_desc=Description
search_none=Aucune page correspondant  $1 n'a 閠 trouv閑.
search_perl=Module Perl
search_help=Aide de Webmin
search_for=Pour $1


   07070100005f61000081a40000000000000002000000013ac038af00000286000000200000000000000000000000000000001200000003reloc/man/lang/hu # webmin-0.81/man/lang/hu
# Translated by <kissg@sztaki.hu>

index_title=Programdokument醕i
index_header=Keres閟 az op.rendszerhez adott dokument醕i骲an
index_for=Keresend sz鰒eg
index_exact=Ez egy dokumentum pontos c韒e?
index_section=Kateg髍ia
index_all=Mind
index_reset=T鰎l閟
index_search=Keres閟
index_return=a keres閟hez

search_efor=Nem adtad, hogy mit kell keresni
search_euser=Nincs $1 azonos韙骿 felhaszn醠
search_title=A keres閟 eredm閚ye
search_noentry='$1' cimmel nincs dokumentum
search_page=Dokumentum
search_section=Kateg髍ia
search_desc=Egysoros magyar醶at
search_none=A '$1' sz鰒eg sehol nem fordul el
  07070100005f66000081a40000000000000002000000013ac038af0000022b000000200000000000000000000000000000001200000003reloc/man/lang/it index_title=Pagine di Manuale
index_header=Ricerca nelle pagine di manuale del sistema
index_for=Cosa cercare
index_exact=Valore esatto?
index_section=Sezione del manuale
index_all=Tutto
index_reset=Azzera
index_search=Trova
index_return=Pagina di ricerca

search_efor=Non hai inserito nessun valore di ricerca
search_title=Risultati della Ricerca
search_noentry=Non sono state trovate pagine di manuale per $1
search_page=Pagina di Manuale
search_section=Sezione
search_desc=Descrizione
search_none=Non sono state trovate pagine di manuale contenenti $1
 07070100005fb3000081a40000000000000002000000013ac038af000006ca000000200000000000000000000000000000001200000003reloc/man/lang/pl index_title=Dokumentacja systemu
index_header=System przeszukiwania stron podr阠znika
index_for=Szukaj
index_where=Przeszukuj
index_alldoc=Ca潮 dokumentacj
index_man=Strony podr阠znika
index_doc=Dokumentacj pakiet體
index_kernel=Dokumentacj kernela
index_info=Strony &quot;info&quot;
index_howto=Dokumenty &quot;HOWTO&quot;
index_kde=Dokumentacj KDE
index_perl=Dokumentacj modu丑w Perla
index_help=Pomoc Webmina
index_reset=Od pocz眛ku
index_search=Szukaj
index_return=formularza poszukiwania
index_type=Dopasuj do
index_name=Tylko nazwy
index_data=Nazwy i&nbsp;zawarto禼i

search_efor=Nie podano poszukiwanej strony
search_title=Wyniki poszukiwania
search_desc=Opis
search_type=Rodzaj
search_file=Strona lub plik
search_man=Strona podr阠znika
search_howto=Dokument &quot;HOWTO&quot;
search_doc=Dokumentacja pakietu
search_kernel=Dokumentacja kernela
search_kde=Dokumentacja KDE
search_perl=Modu Perla
search_help=Pomoc Webmina
search_none=Nie znaleziono 縜dnej strony pasuj眂ej do $1.
search_for=$1

howto_title=Dokument &quot;HOWTO&quot;
howto_header=Plik dokumentu &quot;HOWTO&quot; $1
howto_epath=Niew砤禼iwa 禼ie縦a dokumentu &quot;HOWTO&quot;

doc_title=Dokumentacja pakiet體
doc_header=Plik dokumentacji pakietu $1
doc_epath=Niew砤禼iwa 禼ie縦a dokumentacji pakiet體

man_title=Strona podr阠znika
man_header=Strona podr阠znika dla $1($2)
man_noentry=Strona podr阠znika $1 nie istnieje!

kernel_title=Dokument kernela
kernel_header=Plik dokumentu kernela $1
kernel_epath=Niew砤禼iwa 秙ie縦a dokumentacji kernela

kde_title=Dokumentacja KDE
kde_header=Plik dokumentu KDE $1
kde_epath=Niew砤禼iwa 秙ie縦a dokumentacji KDE

perl_title=Modu Perla
perl_header=Dokumentacja modu硊 Perla $1
perl_emod=Niew砤禼iwa nazwa modu硊 Perla
  07070100005fb4000081a40000000000000002000000013ac038af000001f3000000200000000000000000000000000000001500000003reloc/man/lang/ru_RU  index_search=项桉
search_page=羊疣龛鲟 痼觐忸漶蜮
search_section=彦牿
index_return=纛痨 镱桉赅
index_for=袜轵:
index_section=朽玟咫 痼觐忸漶蜮
search_none=湾 磬殇屙 耱疣龛 耦铗忮蝰蜮簋 $1.
search_title=绣珞朦蜞螓 项桉赅
index_all=埋
index_title=羊疣龛鳆 畜觐忸漶蜮
index_exact=项腠铄 耦铗忮蝰蜮桢?
search_noentry=湾 磬殇屙 耱疣龛鲟 潆 $1.
index_reset=厌痤
index_header=项桉 耱疣龛 耔耱屐眍泐 痼觐忸漶蜮
search_desc=物桉囗桢
search_efor=湾 忖邃屙 耱疣龛鲟 痼觐忸漶蜮 潆 镱桉赅
 07070100005fb5000081a40000000000000002000000013ac038af000001f4000000200000000000000000000000000000001500000003reloc/man/lang/ru_SU  index_title=笤伊紊觅 蛘讼紫挠宰
index_header=鹣捎 釉伊紊 由釉磐蜗窍 艺讼紫挠宰
index_for=盍试:
index_exact=鹣涛吓 酉显着杂宰膳?
index_section=蛄谀盘 艺讼紫挠宰
index_all=饔
index_reset=舐蚁
index_search=鹣捎
index_return=葡彝 邢捎肆

search_efor=钆 鬃拍盼 釉伊紊昧 艺讼紫挠宰 奶 邢捎肆
search_title=蚺谡特粤再 鹣捎肆
search_noentry=钆 瘟誓盼 釉伊紊昧 奶 $1.
search_page=笤伊紊昧 艺讼紫挠宰
search_section=笈嗣裳
search_desc=镄捎廖膳
search_none=钆 瘟誓盼 釉伊紊 酉显着杂宰绽萆 $1.
07070100005fb6000081a40000000000000002000000013ac038af00000622000000200000000000000000000000000000001200000003reloc/man/lang/sv index_title=Systemdokumentation
index_header=S鰇ning i systemets manualsidor
index_for=S鰇 efter
index_where=S鰇 i
index_alldoc=All dokumentation
index_man=Manualsidor
index_doc=Paketdokumentation
index_kernel=K鋜nans dokumentation
index_info=Info-sidor
index_howto=HOWTO-dokument
index_kde=KDE-dokumentation
index_perl=Perl-moduldokumentation
index_help=Webmin-hj鋖p
index_reset=舤erst鋖l
index_search=S鰇
index_return=s鰇formul鋜
index_type=Matcha
index_name=Endast namn
index_data=Namn och inneh錶l

search_efor=Det fanns ingen manualsida f鰎 detta
search_title=S鰇resultat
search_desc=Beskrivning
search_type=Typ
search_file=Sida eller fil
search_man=Manualsida
search_howto=HOWTO-dokument
search_doc=Paketdokumentation
search_kernel=K鋜nans dokumentation
search_kde=KDE-dokumentation
search_perl=Perl-modul
search_help=Webmin-hj鋖p
search_none=Det fanns ingen dokumentation som passade $1.
search_for=efter $1

howto_title=HOWTO-dokument
howto_header=HOWTO-dokumentfil $1
howto_epath=Ogiltig s鰇v鋑 till HOWTO-dokument

doc_title=Paketdokumentation
doc_header=Paketdokumentfil $1
doc_epath=Ogiltig s鰇v鋑 till paketdokumentation

man_title=Manualsida
man_header=Manualsida f鰎 $1 ($2)
man_noentry=Det finns ingen manualsida f鰎 $1.

kernel_title=K鋜nans dokumentation
kernel_header=K鋜ndokumentfil $1
kernel_epath=Ogiltig s鰇v鋑 till k鋜nans dokumentation

kde_title=KDE-dokumentation
kde_header=KDE-dokumentfil $1
kde_epath=Ogiltig s鰇v鋑 till KDE-dokumentation

perl_title=Perl-modul
perl_header=Dokumentation f鰎 Perl-modul $1
perl_emod=Ogiltigt Perl-modulnamn

  07070100005fb7000081a40000000000000002000000013ac038af00000217000000200000000000000000000000000000001200000003reloc/man/lang/tr index_title=K齦avuz Sayfalar
index_header=Sistem yard齧c sayfalar arama
index_for=Ara
index_exact=Birebir eeme yap齦s齨 m?
index_section=K齦avuz s齨齠
index_all=T黰
index_reset=Temizle
index_search=Ara
index_return=arama formu

search_efor=Aramada girilen yard齧c sayfa bulunamad
search_euser=$1 kullan齝齭 mevcut de餴l
search_title=Arama sonu鏻ar
search_noentry=$1 i鏸n yard齧c sayfa bulunamad
search_page=Yard齧c sayfa
search_section=B鰈黰
search_desc=A琮klama
search_none=Karlalan $1 yard齧c sayfas bulunamad 

 07070100005fb8000081a40000000000000002000000013ac038af0000019c000000200000000000000000000000000000001500000003reloc/man/lang/zh_CN  index_title=参考材料
index_header=系统参考材料搜索
index_for=搜索
index_exact=得到相应帮助信息?
index_section=手册分区
index_all=所有
index_reset=重置
index_search=搜索
index_return=搜索方式

search_efor=没有键入要搜索的参考材料
search_euser=拥护 $1 不存在!
search_title=搜索结果
search_noentry=$1 的参考材料没找到
search_page=参考材料
search_section=分区
search_desc=描述
search_none=没找到与 $1 匹配的参考材料
07070100005fb9000081a40000000000000002000000013ac038af00000178000000200000000000000000000000000000001a00000003reloc/man/lang/zh_TW.Big5 index_title=も
index_header=╰参も穓碝竟
index_for=穓碝
index_exact=琌Ч才?
index_section=も彻竊
index_all=场
index_reset=砞
index_search=穓碝
index_return=穓碝

search_efor=⊿Τ块璶穓碝も
search_title=穓碝挡狦
search_noentry=⊿Τт闽 $1 も.
search_page=も
search_section=彻竊
search_desc=磞瓃
search_none=⊿Τт才 $1 も.
07070100001a75000081a40000000000000002000000013ac038af0000018c000000200000000000000000000000000000001500000003reloc/man/man-lib.pl  # man-lib.pl

do '../web-lib.pl';
&init_config();

# Get the paths to perl and perldoc
open(PERL, "$config_directory/perl-path");
chop($perl_path = <PERL>);
close(PERL);
if (&has_command("perldoc")) {
	$perl_doc = "perldoc";
	}
else {
	$perl_path =~ /^(.*)\/[^\/]+$/;
	if (-x "$1/perldoc") {
		$perl_doc = "$1/perldoc";
		}
	}
if ($perl_doc && $] >= 5.006) {
	$perl_doc = "$perl_doc -U";
	}

1;

07070100001a76000081a40000000000000002000000013ac038af00000218000000200000000000000000000000000000001600000003reloc/man/module.info name=Man
desc_pt=P醙inas do Manual
desc_tr=K齦avuz Sayfalar
desc_fr=Pages de manuel
desc_es=P醙inas del Manual
desc_sv=Systemdokumentation
desc_hu=Programle韗醩ok
desc_ru_SU=笤伊紊觅 蛘讼紫挠宰
desc_pl=Dokumentacja systemu
category=system
os_support=solaris corel-linux debian-linux open-linux redhat-linux slackware-linux solaris suse-linux turbo-linux freebsd openbsd cobalt-linux lfs-linux irix aix hpux macos
desc_zh_TW.Big5=も
desc=System Documentation
risk=low medium high
desc_zh_CN=使用手册
desc_ru_RU=羊疣龛鳆 畜觐忸漶蜮
07070100001a77000081e40000000000000002000000013ac038af0000203e000000200000000000000000000000000000001500000003reloc/man/search.cgi  #!/usr/local/bin/perl
# search.cgi
# Search for manual pages, and display a list of matches or an exact page

require './man-lib.pl';
use Config;
&ReadParse();
$in{'for'} || &error($text{'search_efor'});
&header($text{'search_title'}, "");

@for = split(/\s+/, $in{'for'});
@howto = split(/\s+/, $config{'howto_dir'});
@doc = split(/\s+/, $config{'doc_dir'});
map { $section{$_}++ } split(/\0/, $in{'section'});

if ($section{'doc'}) {
	# Look in the system documentation directory (usually /usr/doc)
	foreach $d (@doc) {
		push(@rv, map { [ $text{'search_doc'},
				   "view_doc.cgi?file=".&urlize($_->[0]),
				   substr($_->[0], length($d)+1),
				   $_->[1], $_->[3] ? 1 : .1 ] }
			     &find_contents($d, \@for,
					    $howto[0], 1, $in{'exact'}));
		}
	}
if ($section{'howto'}) {
	# Look in the HOWTO directory
	foreach $h (@howto) {
		push(@rv, map { [ $text{'search_howto'},
			      "view_howto.cgi?file=".&urlize($_->[0]),
			      $_->[2], $_->[1],
			      $_->[3] ? 2 : .2 ] }
		     &find_contents($h, \@for, undef, 0, $in{'exact'}));
		}
	@rv = grep { $_->[2] !~ /^index/i } @rv;
	}
if ($section{'kernel'}) {
	# Look in the linux kernel Documentation directory
	 push(@rv, map { [ $text{'search_kernel'},
			   "view_kernel.cgi?file=".&urlize($_->[0]),
			   substr($_->[0], length($config{'kernel_dir'})+1),
			   $_->[1], $_->[3] ? 1 :.1 ] }
		     &find_contents($config{'kernel_dir'}, \@for,
				    undef, 1, $in{'exact'}));
	}
if ($section{'kde'}) {
	# Look in the KDE documentation directory
	 push(@rv, map { [ $text{'search_kde'},
			   "view_kde.cgi?file=".&urlize($_->[0]),
			   substr($_->[0], length($config{'kde_dir'})+1),
			   $_->[1], $_->[3] ? 1 : .1 ] }
		     &find_contents($config{'kde_dir'}, \@for,
				    undef, 1, $in{'exact'}));
	}
if ($section{'perl'}) {
	if ($in{'exact'}) {
		# Check for an exact module name match
		chop($out = `$perl_doc -l $for[0] 2>/dev/null`);
		if ($out) {
			local $doc = &parse_perl_module($out);
			$doc->{'name'} =~ s/^\s*(\S+)\s+-\s+//;
			push(@rv, [ $text{'search_perl'},
				    "view_perl.cgi?mod=$for[0]",
				    $for[0], $doc->{'name'}, 1 ]);
			}
		}
	else {
		# Search the text of all perl modules
		foreach $d ($Config{'sitelib'}, $Config{'privlib'}) {
			open(FIND, "find $d -name '*.pm' -print |");
			PATH: while($path = <FIND>) {
				chop($path);
				local $doc = &parse_perl_module($path);
				foreach $f (@for) {
					next PATH if ($doc->{'name'} !~ /$f/i &&
					        $doc->{'description'} !~ /$f/i);
					}
				$doc->{'name'} =~ s/^\s*(\S+)\s+-\s+//;
				local $modfile =
				   `$perl_doc -l $doc->{'package'} 2>/dev/null`;
				local $exact = 1;
				foreach $f (@for) {
					$exact = .1
					    if ($doc->{'package'} !~ /$f/i);
					}
				if ($doc->{'package'} && $modfile) {
					push(@rv, [ $text{'search_perl'},
					  "view_perl.cgi?mod=$doc->{'package'}",
					  $doc->{'package'}, $doc->{'name'},
					  $exact ]);
					}
				}
			close(FIND);
			}
		}
	}
if ($section{'help'}) {
	# Look in the webmin module help pages
	opendir(DIR, "..");
	foreach $m (readdir(DIR)) {
		# Is this a module with help
		local $dir = "../$m/help";
		next if (!-d $dir || $m =~ /^\./ || -l "../$m");
		local %minfo = &get_module_info($m);
		next if (!%minfo || !&check_os_support(\%minfo));

		# Check the help pages
		local @pfx;
		opendir(DIR, $dir);
		while($f = readdir(DIR)) {
			push(@pfx, $1) if ($f =~ /^([^\.]+)\.html$/);
			}
		closedir(DIR);
		HELP: foreach $p (&unique(@pfx)) {
			local $file = &help_file($m, $p);
			open(HELP, $file);
			local @st = stat($file);
			read(HELP, $help, $st[7]);
			close(HELP);
			if ($help =~ /<header>([^<]+)<\/header>/) {
				$header = $1;
				}
			else { next; }
			$help =~ s/<include\s+(\S+)>/inchelp($1)/ge;
			$help =~ s/<[^>]+>//g;
			local $exact = 1;
			foreach $f (@for) {
				next HELP if ($help !~ /$f/i);
				$exact = 0 if ($header !~ /$f/i);
				}
			if (!$in{'exact'} || $exact) {
				push(@rv, [ $text{'search_help'},
					    "/help.cgi/$m/$p?x=1",
					    "$m/$p", $header,
					    $exact ? 2 : .2 ]);
				}
			}
		}
	}
if ($section{'man'}) {
	# Look in manual pages
	$cmd = $config{'search_cmd'};
	$cmd =~ s/PAGE/"$for[0]"/;
	open(MAN, "$cmd |");
	LINE: while(<MAN>) {
		if (/(([^,\s]+).*)\s*\((\S+)\)\s+-\s+(.*)/ &&
		    !$done{$2,$3,$4}++) {
			local ($page, $sect, $desc) = ($1, $3, $4);
			local @pp = split(/[\s+,]/, $page);
			local $ex = 1;
			foreach $f (@for) {
				$ex = 0 if (&indexof($f, @pp) < 0);
				}
			if ($in{'exact'}) {
				# All keywords must be in page names
				next if (!$ex);
				}
			else {
				# Keywords must be page name or desc
				foreach $f (@for) {
					next LINE if ($desc !~ /$f/i &&
						      &indexof($f, @pp) < 0);
					}
				}
			push(@rv, [ $text{'search_man'},
				    "view_man.cgi?page=$pp[0]&sec=$3",
				    "$pp[0] ($sect)", $desc,
				    $ex ? 3 : .3 ]);
			}
		}
	close(MAN);
	}

if (@rv == 1) {
	# redirect to the exact page
	&redirect($in{'exact'} ? $rv[0]->[1]
			       : "$rv[0]->[1]&for=".&urlize($in{'for'}));
	exit;
	}

# Display search results
print "<center><font size=+1>",&text('search_for', "<tt>$in{'for'}</tt>"),
      "</font></center>\n";
print "<hr>\n";
if (@rv) {
	@rv = sort { $b->[4] <=> $a->[4] } @rv;
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'search_file'}</b></td> ",
	      "<td><b>$text{'search_type'}</b></td> ",
	      "<td><b>$text{'search_desc'}</b></td> </tr>\n";
	foreach $r (@rv) {
		print "<tr $cb>\n";
		print "<td><a href='$r->[1]&for=".&urlize($in{'for'})."'>",
		      "$r->[2]</a></td>\n";
		print "<td nowrap>$r->[0]</td>\n";
		print "<td>",$r->[3] ? $r->[3] : "<br>","</td>\n";
		print "</tr>\n";
		}
	print "</table><p>\n";
	}
else {
	print "<p><b>",&text('search_none', "<tt>$in{'for'}</tt>"),"</b><p>\n";
	}

print "<hr>\n";
&footer("", $text{'index_return'});

# find_contents(directory, &strings, [exclude], [descend], [nameonly])
# Find some string in a directory of files
sub find_contents
{
opendir(DIR, $_[0]);
local @f = readdir(DIR);
closedir(DIR);
local @rv;
foreach $f (@f) {
	next if ($f =~ /^\./);
	local $p = "$_[0]/$f";
	next if ($p eq $_[2]);
	if (-d $p) {
		# go into subdirectory
		push(@rv, &find_contents($p, $_[1], $_[2], $_[3], $_[4]))
			if ($_[3]);
		}
	else {
		# Skip non-text or HTML files
		local $ff = $f;
		$ff =~ s/\.gz$//i;
		next if ($ff !~ /\.(txt|htm|html|doc)$/ &&
			 $ff =~ /\.[A-Za-z0-9]+$/);

		local $matches = 0;
		foreach $s (@{$_[1]}) {
			$matches++ if ($p =~ /$s/i);
			}
		if ($_[4]) {
			# just compare filename
			if ($matches == @{$_[1]}) {
				local ($desc, $data) = &read_doc_file($p);
				if ($desc !~ /^#!/) {
					push(@rv, [ $p, $desc, $f, $matches ]);
					}
				}
			}
		else {
			# compare file contents
			local ($desc, $data) = &read_doc_file($p);
			local $all = 1;
			foreach $s (@{$_[1]}) {
				$all = 0 if ($data !~ /$s/i);
				}
			if ($all && $first !~ /^#!/) {
				push(@rv, [ $p, $desc, $f, $matches ]);
				}
			}
		}
	}
return @rv;
}

# read_doc_file(filename)
# Returns desc, data
sub read_doc_file
{
local ($two, $first, $title, $data);
open(FILE, $_[0]);
read(FILE, $two, 2);
if ($two eq "\037\213") {
	close(FILE);
	open(FILE, "gunzip -c $p |");
	}
seek(FILE, 0, 0);
while(<FILE>) {
	$data .= $_;
	if (/[A-Za-z0-9]/ && !/\$\S+:/ && !$first) {
		chop($first = $_);
		}
	}
close(FILE);
if ($data =~ /<\s*title\s*>([\000-\177]{0,200})<\s*\/\s*title\s*>/i) {
	$title = $1;
	}
return ($title ? $title : $first =~ /<.*>/ ? undef : $first, $data);
}

# parse_perl_module(file)
sub parse_perl_module
{
local (%doc, $inside);
open(MOD, $_[0]);
while(<MOD>) {
	if (/^\s*package\s+(\S+)\s*;/ && !$doc{'package'}) {
		$doc{'package'} = $1;
		}
	elsif (/^=head1\s+(\S+)/i) {
		$inside = $1;
		}
	elsif (/^=cut/i) {
		undef($inside);
		}
	elsif ($inside) {
		$doc{lc($inside)} .= $_;
		}
	}
close(MOD);
return \%doc;
}

# help_file(dir, prefix)
sub help_file
{
local $lang = "$_[0]/$_[1].$current_lang.html";
local $def = "$_[0]/$_[1].html";
return -r $lang ? $lang : $def;
}

# inchelp(path)
sub inchelp
{
local $inc;
local $ipath = &help_file($dir, $_[0]);
open(INC, $ipath) || return "<i>".&text('search_einclude', $_[0])."</i><br>\n";
local @st = stat(INC);
read(INC, $inc, $st[7]);
close(INC);
return $inc;
}


  07070100001a78000081e40000000000000002000000013ac038b0000005ce000000200000000000000000000000000000001700000003reloc/man/view_doc.cgi    #!/usr/local/bin/perl
# view_doc.cgi
# View some package doc file

require './man-lib.pl';
&ReadParse();

$in{'file'} !~ /\.\./ ||
	&error($text{'doc_epath'});
$in{'file'} !~ /[\\\&\;\`\'\"\|\*\?\~\<\>\^\(\)\[\]\{\}\$\n\r]/ ||
	&error($text{'doc_epath'});
foreach $d (split(/\s+/, $config{'doc_dir'})) {
	$ok++ if (substr($in{'file'}, 0, length($d)) eq $d);
	}
$ok || &error($text{'doc_epath'});
-r $in{'file'} ||
	&error($text{'doc_epath'});

&header($text{'doc_title'}, "");
print "<hr>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td><b>",&text('doc_header', $in{'file'}),"</b></td> </tr>\n";
print "<tr $cb> <td>";
open(FILE, $in{'file'});
read(FILE, $two, 2);
if ($two eq "\037\213") {
	close(FILE);
	open(FILE, "gunzip -c $in{'file'} |");
	}
seek(FILE, 0, 0);
if ($in{'file'} =~ /\.htm/i) {
	# Display HTML documentation
	($dir = $in{'file'}) =~ s/\/[^\/]+$//;
	while($line = <FILE>) {
		$line =~ s/href="([^"]+)"/href="view_doc.cgi?file=$dir\/$1"/ig;
		$line =~ s/href='([^']+)'/href='view_doc.cgi?file=$dir\/$1'/ig;
		$line =~ s/href=([^'"\s>]+)/href='view_doc.cgi?file=$dir\/$1'/ig;
		print $line;
		}
	}
else {
	# Display text file
	print "<pre>";
	@for = split(/\s+/, $in{'for'});
	while($line = <FILE>) {
		$line = &html_escape($line);
		foreach $f (@for) {
			$line =~ s/.\010//g;
			$line =~ s/($f)/<b>$1<\/b>/ig;
			}
		print $line;
		}
	print "</pre>";
	}
close(FILE);
print "</td></tr></table><p>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

  07070100001a79000081e40000000000000002000000013ac038b00000043f000000200000000000000000000000000000001900000003reloc/man/view_howto.cgi  #!/usr/local/bin/perl
# view_doc.cgi
# View some HOWTO doc file

require './man-lib.pl';
&ReadParse();

$in{'file'} !~ /\.\./ ||
	&error($text{'howto_epath'});
$in{'file'} !~ /[\\\&\;\`\'\"\|\*\?\~\<\>\^\(\)\[\]\{\}\$\n\r]/ ||
	&error($text{'howto_epath'});
foreach $h (split(/\s+/, $config{'howto_dir'})) {
	$ok++ if (substr($in{'file'}, 0, length($h)) eq $h);
	}
$ok || &error($text{'howto_epath'});
-r $in{'file'} || &error($text{'howto_epath'});

&header($text{'howto_title'}, "");
print "<hr>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td><b>",&text('howto_header', $in{'file'}),"</b></td> </tr>\n";
print "<tr $cb> <td><pre>";
open(FILE, $in{'file'});
read(FILE, $two, 2);
if ($two eq "\037\213") {
	close(FILE);
	open(FILE, "gunzip -c $in{'file'} |");
	}
seek(FILE, 0, 0);
@for = split(/\s+/, $in{'for'});
while($line = <FILE>) {
	$line = &html_escape($line);
	foreach $f (@for) {
		$line =~ s/.\010//g;
		$line =~ s/($f)/<b>$1<\/b>/ig;
		}
	print $line;
	}
close(FILE);
print "</pre></td></tr></table><p>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

 07070100001a7a000081e40000000000000002000000013ac038b0000005fd000000200000000000000000000000000000001700000003reloc/man/view_kde.cgi    #!/usr/local/bin/perl
# view_kde.cgi
# View some HTML KDE documentation

require './man-lib.pl';
&ReadParse();

$in{'file'} !~ /\.\./ ||
	&error($text{'kde_epath'});
$in{'file'} !~ /[\\\&\;\`\'\"\|\*\?\~\<\>\^\(\)\[\]\{\}\$\n\r]/ ||
	&error($text{'kde_epath'});
substr($in{'file'}, 0, length($config{'kde_dir'})) eq $config{'kde_dir'} ||
	&error($text{'kde_epath'});
-r $in{'file'} ||
	&error($text{'kde_epath'});

if ($in{'file'} =~ /\.(gif|jpg|jpeg|tif|png)$/i) {
	printf "Content-type: %s\n\n",
		$1 eq "gif" ? "image/gif" :
		$1 eq "jpg" || $1 eq "jpeg" ? "image/jpeg" :
		$1 eq "tif" ? "image/tiff" : "image/png";
	open(FILE, $in{'file'});
	while(read(FILE, $buf, 1024)) {
		print $buf;
		}
	close(FILE);
	}
else {
	&header($text{'kde_title'}, "");
	print "<hr>\n";

	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>",&text('kde_header', $in{'file'}),
	      "</b></td> </tr>\n";
	print "<tr $cb> <td>";
	($dir = $in{'file'}) =~ s/\/[^\/]+$//;
	open(FILE, $in{'file'});
	while($line = <FILE>) {
		$line =~ s/href="([^"]+)"/href="view_kde.cgi?file=$dir\/$1"/ig;
		$line =~ s/href='([^']+)'/href='view_kde.cgi?file=$dir\/$1'/ig;
		$line =~ s/href=([^'"\s>]+)/href='view_kde.cgi?file=$dir\/$1'/ig;
		$line =~ s/src="([^"]+)"/src="view_kde.cgi?file=$dir\/$1"/ig;
		$line =~ s/src='([^']+)'/src='view_kde.cgi?file=$dir\/$1'/ig;
		$line =~ s/src=([^'"\s>]+)/src='view_kde.cgi?file=$dir\/$1'/ig;
		print $line;
		}
	close(FILE);
	print "</td></tr></table><p>\n";

	print "<hr>\n";
	&footer("", $text{'index_return'});
	}

   07070100001a7b000081e40000000000000002000000013ac038b0000005d5000000200000000000000000000000000000001a00000003reloc/man/view_kernel.cgi #!/usr/local/bin/perl
# view_kernel.cgi
# View some kernel doc file

require './man-lib.pl';
&ReadParse();

$in{'file'} !~ /\.\./ ||
	&error($text{'kernel_epath'});
$in{'file'} !~ /[\\\&\;\`\'\"\|\*\?\~\<\>\^\(\)\[\]\{\}\$\n\r]/ ||
	&error($text{'kernel_epath'});
foreach $h (split(/\s+/, $config{'kernel_dir'})) {
	$ok++ if (substr($in{'file'}, 0, length($h)) eq $h);
	}
$ok || &error($text{'kernel_epath'});
-r $in{'file'} || &error($text{'kernel_epath'});

&header($text{'kernel_title'}, "");
print "<hr>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td><b>",&text('kernel_header', $in{'file'}),
      "</b></td> </tr>\n";
print "<tr $cb> <td>";
open(FILE, $in{'file'});
read(FILE, $two, 2);
if ($two eq "\037\213") {
	close(FILE);
	open(FILE, "gunzip -c $in{'file'} |");
	}
seek(FILE, 0, 0);
if ($in{'file'} =~ /\.htm/i) {
	# Display HTML documentation
	($dir = $in{'file'}) =~ s/\/[^\/]+$//;
	while($line = <FILE>) {
		$line =~ s/href="([^"]+)"/href="view_doc.cgi?file=$dir\/$1"/ig;
		$line =~ s/href='([^']+)'/href='view_doc.cgi?file=$dir\/$1'/ig;
		$line =~ s/href=([^'"\s>]+)/href='view_doc.cgi?file=$dir\/$1'/ig;
		print $line;
		}
	}
else {
	# Display text file
	print "<pre>";
	@for = split(/\s+/, $in{'for'});
	while($line = <FILE>) {
		$line = &html_escape($line);
		foreach $f (@for) {
			$line =~ s/($f)/<b>$1<\/b>/ig;
			}
		print $line;
		}
	print "</pre>";
	}
close(FILE);
print "</td></tr></table><p>\n";



print "<hr>\n";
&footer("", $text{'index_return'});

   07070100001a7c000081e40000000000000002000000013ac038b0000007c6000000200000000000000000000000000000001700000003reloc/man/view_man.cgi    #!/usr/local/bin/perl
# view_man.cgi
# Display a single manual page

require './man-lib.pl';
&ReadParse();
&header($text{'man_title'}, "");
print "<hr>\n";

if (&has_command($config{'man2html_path'})) {
	$cmd = $in{'sec'} ? $config{'list_cmd_sect'}
			  : $config{'list_cmd'};
	}
else {
	$cmd = $in{'sec'} ? $config{'man_cmd_sect'}
			  : $config{'man_cmd'};
	}
$cmd =~ s/PAGE/"$in{'page'}"/;
if ($config{'strip_letters'}) {
	$in{'sec'} =~ s/^(\d+).*$/$1/;
	}
$cmd =~ s/SECTION/"$in{'sec'}"/;
$out = `$cmd 2>&1`;
if ($out =~ /^.*no manual entry/i || $out =~ /^.*no entry/i ||
    $out =~ /^.*nothing appropriate/i) {
	print "<p><b>",&text('man_noentry', "<tt>$in{'page'}</tt>"),
	      "</b><p>\n";
	}
else {
	if (&has_command($config{'man2html_path'})) {
		$out =~ s/ .*//;
		$out =~ s/\n//;
		if( $out =~ /^.*\.gz/i ) {
			$cmd = "gunzip -c";
			}
		elsif ($out =~ /^.*\.bz2/i) {
			$cmd = "bunzip2 -c";
			}
		else {
			$cmd = "cat";
			}
		$cmd .= " $out | $config{'man2html_path'} -H \"\" -M \"view_man.cgi\"";
		$out = `$cmd 2>&1`;
		$out =~ s/^.*Content-type:.*\n//i;
		$out =~ s/http:\/\///ig;
		$out =~ s/\?/\?section=/ig;
		$out =~ s/\+/&exact=1&page=/ig;
		$out =~ s/<HTML>.*<BODY>//isg;
		$out =~ s/<\/HTML>//ig;
		$out =~ s/<\/BODY>//ig;
		$out =~ s/<A HREF="file:[^"]+">([^<]+)<\/a>/$1/ig;
		$out =~ s/<A HREF="view_man.cgi">/<A HREF=\"\">/i;
		print "<table border width=100%>\n";
		print "<tr $tb> <td><b>",&text('man_header', $in{'page'},
					       $in{'sec'}),"</b></td> </tr>\n";
		print "<tr $cb> <td>",$out,"</td> </tr>\n";
		print "</table>\n";
	} else {
		$out =~ s/.\010//g;
		$out =~ s/^(re)?formatting.*//i;
		$out =~ s/&/&amp;/g;
		$out =~ s/</&lt;/g;
		$out =~ s/>/&gt;/g;
		print "<table border width=100%>\n";
		print "<tr $tb> <td><b>",&text('man_header', $in{'page'},
					       $in{'sec'}),"</b></td> </tr>\n";
		print "<tr $cb> <td><pre>",$out,"</pre></td> </tr>\n";
		print "</table><p>\n";
		}
	}

print "<hr>\n";
&footer("", $text{'index_return'});

  07070100001a7d000081e40000000000000002000000013ac038b0000002c4000000200000000000000000000000000000001800000003reloc/man/view_perl.cgi   #!/usr/local/bin/perl
# view_perl.cgi
# View perl module documentation

require './man-lib.pl';
&ReadParse();

$in{'mod'} !~ /[\\\&\;\`\'\"\|\*\?\~\<\>\^\(\)\[\]\{\}\$\n\r]/ ||
	&error($text{'perl_emod'});

&header($text{'perl_title'}, "");
print "<hr>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td><b>",&text('perl_header', $in{'mod'}),"</b></td> </tr>\n";
print "<tr $cb> <td><pre>";
@for = split(/\s+/, $in{'for'});
open(DOC, "$perl_doc -t $in{'mod'} |");
while($line = <DOC>) {
	$line = &html_escape($line);
	foreach $f (@for) {
		$line =~ s/($f)/<b>$1<\/b>/ig;
		}
	print $line;
	}
close(DOC);
print "</pre></td></tr></table><p>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

0707010005d8bf000041ed0000000000000001000000033ac03bf800000000000000200000000000000000000000000000000d00000003reloc/images  0707010005d8c0000081a40000000000000002000000013ac0388500000029000000200000000000000000000000000000001600000003reloc/images/back.gif GIF87a
 
      ,    
 
  剰┧c+ ;   0707010005d8c1000081a40000000000000002000000013ac0388500000086000000200000000000000000000000000000001800000003reloc/images/binary.gif   GIF89a       @   !    ,       W剰┧M槾V@藓4y"渶ji豂踤毜进葶﹖罢钃f$滂豉t(伏Q彙"Q偌峚)恔＂纇(廏寮 ;  0707010005d8c2000081a40000000000000002000000013ac0388500000073000000200000000000000000000000000000001500000003reloc/images/dir.gif  GIF89a           !    ,       D剰┧S4乻x7P8潎⑧櫠缕%]玿庉?_/酨4$顎葲蜷 ╰J蔞LZ挕  ; 0707010005d8c3000081a40000000000000002000000013ac03885000000e7000000200000000000000000000000000000001700000003reloc/images/image.gif    GIF89a       3      3                       !    ,       菼8胪e鴃Z0Q&鶸乹R  妨燻0 y (T	柅=O郃+!獳s忒罋V 崂v斢儬Vj<鞾 9l75剚uCE塂yLNPMOV)Y榃d`b燼)c mk5╫qBw v@xg碶<档 ; 0707010005d8c4000081a40000000000000002000000013ac038850000002a000000200000000000000000000000000000001500000003reloc/images/lc1.gif  GIF87a    鴺橒,       	嫑螤\ ;  0707010005d8c5000081a40000000000000002000000013ac038850000002a000000200000000000000000000000000000001500000003reloc/images/lc2.gif  GIF87a    倘,       	嫑螤\ ;  0707010005d8c9000081a40000000000000002000000013ac0388500000076000000200000000000000000000000000000001600000003reloc/images/left.gif GIF89a      !   ,         M審┧`N-腬7辻
Y歨戥祁(譧b缳╃|o k竌宖D-捠逖dxB砳磇部W[鶠匿铲(  ;  0707010005f269000041ed0000000000000001000000023ac03bf700000000000000200000000000000000000000000000001500000003reloc/images/letters  0707010005f26a000081a40000000000000002000000013ac0388500000117000000200000000000000000000000000000001d00000003reloc/images/letters/100.gif  GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  酿菼8S;朽醬6rev~榈额	[锛 HU_	罥@橖(釆%埩#&验(餞j繑膖('^ 佷.鲍A镶Vl岕Z颰3wWi?x 圵}(O,V#!揊's崅'E&|'bW+?嚔僉{寔':禵S奥o缚绰P熜Xeey6蒉哙徕沅彐巛 ; 0707010005f26b000081a40000000000000002000000013ac0388500000107000000200000000000000000000000000000001d00000003reloc/images/letters/101.gif  GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  答菼8胪`(巇i&DJ b! pIGrl鐯貭g僀崛Xp纮+P
袹sN^9羺$`H杕嵨藮潁:墤增}Gg丂儏L噈R實帉5u1w!p2V"i9$e 擹弉挀d:bhA*AD皥2瀩^▓Ic凣<	`5+&闲岩釉罩 ; 0707010005f26c000081a40000000000000002000000013ac03885000000c9000000200000000000000000000000000000001d00000003reloc/images/letters/102.gif  GIF89a 0      UUU獛帋rrr沣闱乔                     !   ,     0  v腥9嚱囄S罓 偄f瀇Z报拉
A巋p6J斑$!鋐琧`@褸佹uN针'姼.($#4%槽犟<?子黪﹎髍{p倀唙坸妟 |彁憭摂晼棙? ;   0707010005f26d000081a40000000000000002000000013ac0388500000141000000200000000000000000000000000000001d00000003reloc/images/letters/103.gif  GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  铕菼8胪`(巇ib	&d p<S茗e募癁%仉腦%Y	 J姅kspTa-亽6'掴瘋0坒?v4z橏xX@E4uoPcv岴=s寖~<俹<;rtThM{|}Tk	iyn_U煾Й0{C糋<Gぃ6=査o#	E$1浺Nt葐<1,凵81瓤0m=馹帧虦蓟a 
  ;   0707010005f26e000081a40000000000000002000000013ac03885000000f4000000200000000000000000000000000000001d00000003reloc/images/letters/104.gif  GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  ○菼鐼疅佴u奷i潨z保粖盠罖j竛倫0裷拕8(蘦D渉惛	儯*羍堤"L哄Dk$[T.mG鷻莗wFPc儌(剣-@W@/彃O嚂攺岺榁優 殔摖洢棫枊獧Δ珟爱┏焿;购患骄坷谅媚. ;0707010005f26f000081a40000000000000002000000013ac038850000006f000000200000000000000000000000000000001d00000003reloc/images/letters/105.gif  GIF89a
 0      UUU!   ,    
 0  @湈2戆苨q秊裨/哹@G1櫤睗汮爷[|;⺶ 裌螏陇	Iг娡.
 ; 0707010005f270000081a40000000000000002000000013ac03885000000bc000000200000000000000000000000000000001d00000003reloc/images/letters/106.gif  GIF89a 0      UUU999獛帋rrr沣闱乔                     !   ,     0  i蠬3s偼A6栟嚍彖緋t!揲②9郚厮瑘&d束c滳hQ婴>璔T錨結饢%蚢豇(M稐阡8P佷/祚 (7!~6 ;0707010005f271000081a40000000000000002000000013ac0388500000108000000200000000000000000000000000000001d00000003reloc/images/letters/107.gif  GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  叼菼 kp{輾'`6z%wb迨偖暺_KO-bg )89Y侳檱繱圃拱F嬜%3,) *0J}~)	")`x|倆墣d%armW m 5iIn!	e&F~濺[K~凞降:蜗醒矣哉肿. ;0707010005f272000081a40000000000000002000000013ac0388500000068000000200000000000000000000000000000001d00000003reloc/images/letters/108.gif  GIF89a	 0      UUU!   ,    	 0  91蕱僸F.皸总請%墶洐j揲搏!-譻岟巹癭丩*椞	  ;0707010005f273000081a40000000000000002000000013ac0388500000145000000200000000000000000000000000000001d00000003reloc/images/letters/109.gif  GIF89a( 0      UUU999獛帋rrr沣闱乔                  !   ,    ( 0  蝠菼8胪`(巇i瀐獤Z&X茗D@圝a嚯AJ犡,橢UBO獜栒搉-腲J,哗偐Vpk梣5;)!x|h zL|pT>	TRh廻T:P橮T~L︰瘧==> 拦臒ǜ 滤}犖蠾毷值丌贚E嵬俪劢獠迫箱>姘贼M诅揲帑餍筍Wl趭*\劝∶#J ;   0707010005f274000081a40000000000000002000000013ac03885000000ea000000200000000000000000000000000000001d00000003reloc/images/letters/110.gif  GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  楌菼8胪`(巇iNZ嗑臫@m蒭哿佇籤 Q	咢鉵P
斒弈槃s+`鸩π,K@y轎-	v潙:c郐便-~zu倃剏A{5}M坰亼; 嫅摉儦唨尅帪厰ē|惁暛'渤吹斗腹& ;  0707010005f275000081a40000000000000002000000013ac0388500000117000000200000000000000000000000000000001d00000003reloc/images/letters/111.gif  GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  酿菼8胪`(巇i— 侠`$逰锎衝o(#h膁揚:!o↗wKa8N俛~0栆溽0垺桌l<矿b;Coq<儓C;扖h抝4~={yt4朡<~C;柈4[<嘢+0D礜Dz|拢魄 eIc36	U(哙徕沅彐& ; 0707010005f276000081a40000000000000002000000013ac0388500000127000000200000000000000000000000000000001d00000003reloc/images/letters/112.gif  GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  责菼8胪`(巇ir[嗑臫@m	f哿佇籤 a	咢鉵@P慫嵄甚鐹| xm侔襭A(Z#SP6曢嫆-XJO傿噠<妼媺5=;梽丄Yvg |k	69QAs5濧l圧*5`[赂筀虏dJㄇ磁6e[|NF	 cz	/訟%#"! +$ ; 0707010005f277000081a40000000000000002000000013ac0388500000125000000200000000000000000000000000000001d00000003reloc/images/letters/113.gif  GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  茵菼8胪`(巇ib$b@,垟x瀀,1`Q膜奾撃A9A@【_Sp舚疎碄A瓼$2UJ2CdY5L慢	6pAj?rgu圸2,巶嘥慳搲昅檭D唖T}2nw@ym (畺?矕+晫刞`毠I畾改18kU峭娤箚9氋"! 鞃藻	++5 ;   0707010005f278000081a40000000000000002000000013ac03885000000c1000000200000000000000000000000000000001d00000003reloc/images/letters/114.gif  GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  n鹑I8胪`(NaJI牣墑@H,Gm嚣垇忔#|<澩L6懩.4*瘦諕2輼&,|N壑0"w随6[m忈眤q乼儁|{o#妺實帍悜 ;   0707010005f279000081a40000000000000002000000013ac038850000010e000000200000000000000000000000000000001d00000003reloc/images/letters/115.gif  GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  火菼8胪`(巇h嗑$18<蠾0倕 ,簞耐P
笰1I磖葍谦\a伾搱姳楾猵	矟颫F鑒犔W`姂T~pKGi[N	夽@a	j(J9a/liD88l?vx\1讥:I晪.v寖篗桿綫'郊&棕仝圮蒉 ;  0707010005f27a000081a40000000000000002000000013ac03885000000cf000000200000000000000000000000000000001d00000003reloc/images/letters/116.gif  GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  |鹑I8篛Y $掑&&酡57瑎W琶i\帓劏g@斲鉸砠M寭匽g3尲e耻邏鰨^浊鞑'李廔K	S<	VQ~枟槞殯湞灍 ; 0707010005f27b000081a40000000000000002000000013ac03885000000f0000000200000000000000000000000000000001d00000003reloc/images/letters/117.gif  GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  濔菼8胪`(巇i^E牣I柈j tMdsM吖~c=!该閵D里掍暺烱K驤b筕/u+稈欉6-諘-"oＧv藔},`OPInB乊IE	 {?攷楤嚈:v棛v~獃0-'购患骄坷 ;0707010005f27c000081a40000000000000002000000013ac038850000010a000000200000000000000000000000000000001d00000003reloc/images/letters/118.gif  GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  佛菼8胪`(巇i琹鞪	`呃!鴿H缾!1%5!#L'a	*∷㈧m)<%刍R馗_E剓蠅抱承+M=LRA8c{8}]7}7坵7He87y6rBr6[6/=_槮i櫏VpΜ擴 g盎7n=▅"#8菭(矣哉肿刭谮 ;  0707010005f27d000081a40000000000000002000000013ac038850000016d000000200000000000000000000000000000001d00000003reloc/images/letters/119.gif  GIF89a( 0      UUU999獛帋rrr沣闱乔                  !   ,    ( 0  菼8胪`(巇i瀐f紁怽1<[E ,俠PP,%鄆慛
N$攤	QiiZ+剽Q2P
)m閧b迾蕌O
?]QET凴唟@妺i>E?sIEtv摂[Es >su>a_E砵嘆矕T皏>慘c?紷侾J3?溑n◤x椱@楬辞俱董聖傽 飒糜>软Y@頳(霎羗鈾e(喳!'l|>紊噳+lBfY╘刹ニ0c蕼I& ;   0707010005f27e000081a40000000000000002000000013ac0388500000109000000200000000000000000000000000000001d00000003reloc/images/letters/120.gif  GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  娥菼8胪`(巇i咲牣*rガjH`呃l崭滺夀虴)s肣@A餻冚'Q
	枲0z@k痯l鐤p膄谿!x圕噫楞suGx^Gd b=\Zq:OqT宷恵H6> 	垗咢G:Fr6h瞸僣w7f癩祡8X8L'岩釉罩棕" ;   0707010005f27f000081a40000000000000002000000013ac0388500000127000000200000000000000000000000000000001d00000003reloc/images/letters/121.gif  GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  责菼8胪`(巇i咥塅q@mZ`鄄臂歘瓡俻0↓d遱"1/aK0".薐鯳(蓵W妖緮獯	癇銬+[許;panv6[B~g}EoA?wU5l媠c6z;Hu潛 孏5獴PC|?6W!5  晒? 5抻 鄪淇婢氶F5!	0 ; 0707010005f280000081a40000000000000002000000013ac03885000000d3000000200000000000000000000000000000001d00000003reloc/images/letters/122.gif  GIF89a 0      UUU獛帋rrr沣闱乔                     !   ,     0  腥I8胪`(巇I"Al婬 蟭m碍锔锢Y嬃轪纋:;'<T[絭<敝銓i逋yV簚n搘揆y棲鮮5[5/kH4r垑2媿;彁u>摂實v&洔潪煚、 ; 0707010005f281000081a40000000000000002000000013ac03886000000e6000000200000000000000000000000000000001d00000003reloc/images/letters/123.gif  GIF87a 2      UUU999獛帋rrr沣闱乔                  ,     2  涴菼8K聐蔋 宒d
獤尊聲H&v$8j ツ 洍鐞9MA-#Uk5圵儛.r4煁m$(h鎬仭輾%蒵f]\$>/qK儖_凟^悘揥Y崚檾洊楴*>*|	3瑅X~+h*,/礹j ;  0707010005f282000081a40000000000000002000000013ac038860000005d000000200000000000000000000000000000001d00000003reloc/images/letters/124.gif  GIF87a 2         ,     2  6攺)荼軏睯潟`惬e8r^Hv炲g.夫m珲(蠼偰夆圠*椞&  ;   0707010005f283000081a40000000000000002000000013ac03886000000d6000000200000000000000000000000000000001d00000003reloc/images/letters/125.gif  GIF87a 2      UUU999獛帋rrr沣闱乔                  ,     2  嬸菼鴲絊濦('濦悺抱%阥鸌洦葆
鷮罁悎a緪E錛燡姲尝岬ef簠A訶7P皴-&EKPM侽TQS!亞儙厞噷Nk#渱",'~0y湯zBB ;  0707010005f284000081a40000000000000002000000013ac03886000000b3000000200000000000000000000000000000001d00000003reloc/images/letters/126.gif  GIF87a 2      UUU999獛帋rrr沣闱乔                  ,     2  h鹑I8胪`(巇i瀐l刖皻tP RT A3Pz冷`w啢70
儫A2鞱$ @
粿$酳SQ痆R爬	3＋p1亗儎厗噲墛  ; 0707010005f285000081a40000000000000002000000013ac0388600000129000000200000000000000000000000000000002800000003reloc/images/letters/177.iso-8859-2.gif   GIF87a 0      UUU999獛帋rrr沣闱乔                  ,     0  摒菼8胪`(巇i&D" b@,sI枥櫷=J鈞T姾4 &纮 9鏓狊俫T纨 狟"祹_*3謻$葅9}8乪凣vKAWu ^2iD@I渹g2bc潳1Zw]:榣~oA^A并垍穥:秔A:W1歑QsS	 59-采"#2!%1&鉵缩$.&4D  ;   0707010005f286000081a40000000000000002000000013ac0388600000084000000200000000000000000000000000000002800000003reloc/images/letters/179.iso-8859-2.gif   GIF87a 2      UUU,     2  ]湉┧m蔋暯9鞾]X(v7j"@&师
p=蝇7椨u~;4! l)x拃wZ!僗#礽瓇砤鹭坼嗜gu褱v如艉龓想 ;0707010005f287000081a40000000000000002000000013ac0388600000124000000200000000000000000000000000000002800000003reloc/images/letters/182.iso-8859-2.gif   GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  兖菼8胪`(巇i扝牣A
@,!!!2 <葀倂8乪89焺4T馼冎唨简蠯,2<雪J:( &	+弣呗zI^	t^|RR塣倀so3v暅w牅]1K琗	珚d4	峇nA}Wi8刹<憴a Y+dq帽吮ē	~矍Q,罯貊鼬 ;0707010005f288000081a40000000000000002000000013ac03886000000f3000000200000000000000000000000000000002800000003reloc/images/letters/188.iso-8859-2.gif   GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  菼8胪`(巇i扝牣A
@,!!!2 <葀倂8乪89煝kJズ$D瀡 L曹p+.{眅聩 N笾倈N梥 爒y|~[\km21 M:[F朲欰722W抧=h矖吹焞笡坊1>眓淧呐魄壬仕 ; 0707010005f289000081a40000000000000002000000013ac03886000000df000000200000000000000000000000000000002800000003reloc/images/letters/191.iso-8859-2.gif   GIF87a ;      UUU獛帋rrr沣闱乔                     ,     ;  斝菼8胪`(巇i炪牣0嗥風15D`H,張蓘苐耑挜s鶷R疨凈晏n固靵E^9燖Sp檒骱!t?遆枔痾/M儏L剢坰rpto4q4I`S媭 煛嶼Q4＊0婡氨渤吹斗 ; 0707010005f28a000081a40000000000000002000000013ac0388500000158000000200000000000000000000000000000001d00000003reloc/images/letters/192.gif  GIF87a# ;      UUU999獛帋rrr沣闱乔                  ,    # ;  菼鴨 F d	 aJ&翚_溛鋩!糩+靧扭r蒷J|%$S*殘獕,hＳon搄E儥鬔证d:x沸6u藸7祔v[sUA-Z<Um-<Z5P'11弤%*ew+Z;!^ZR T-焎!&〤é禶 仩&W唦颂%\}pb姓Z哨_x赞Z鉷4$Z℃U!贃悍0膽纔郵	z 簯鮧~(䲡 ˙  E缳P@煋 CI菠蓳(S趫  ;0707010005f28b000081a40000000000000002000000013ac038850000015e000000200000000000000000000000000000001d00000003reloc/images/letters/193.gif  GIF87a# ;      UUU999獛帋rrr沣闱乔                  ,    # ;  菼8c&V`灹膲#2窣
m遈腩<天靰扭r蒷N|4 瞃M匁Z鼎┎号*礰AiH泙肌;檲洄u癕3Ex&	uQA4V<9:.<VzP.0'0慏怮*h4z&#_Vbd&f.4]繕' 锤?釉 ni剌砚`苕[p婋蝚帆#&填4㱮榔昀紽3戰"-揱踢=罼慍tB菠蓳(S猏刹  ;  0707010005f28c000081a40000000000000002000000013ac0388500000165000000200000000000000000000000000000001d00000003reloc/images/letters/194.gif  GIF87a# ;      UUU999獛帋rrr沣闱乔                  ,    # ;  菼8O'Zh@i墾9 猇搐)腦HkDZ 燚啖Z0 劣塏詿r隧z繕c3莯C桼邫P顬輏o{Hr焲 E]C|]:4%~@'&僇(-['hJ,-儬'7@hIbP88%"{'尙&V2hhuw磇矾r-p'&#c%y9h徕S(憗s彘c揞閷W耖躅坏TC#韨&衐覲
4濼+馌@ 岬(E悊Rl絷b=甕刹ニ0c蕼I砯 ;   0707010005f28d000081a40000000000000002000000013ac0388500000165000000200000000000000000000000000000001d00000003reloc/images/letters/195.gif  GIF87a# ;      UUU999獛帋rrr沣闱乔                  ,    # ;  菼8胪g
`怲`,0#矚)e磝n訰&飌3刌0<寱淅$@as隧z<p~`惺- M洚堫Lnt4[	9-yC{,&~M,	9M8?CJ,悶TC?yb9Z5*9)w,-n?qs痷礟8l毯 挗&-X'巵c滂?揿x琊9惪翳,!贚:
.w?fQH榖*h,8u'焉弮轪洣搬暐爃 :俌刹ニ0c蕼I虫 ;   0707010005f28e000081a40000000000000002000000013ac038850000015b000000200000000000000000000000000000001d00000003reloc/images/letters/196.gif  GIF87a# ;      UUU999獛帋rrr沣闱乔                  ,    # ;  菼8胪 ! 豗'dzV)岸錕舠lO飮p槓$咰爎蒷:/Z >'
*6礽g欅皧iP虂L蛟j诪鯧p@y%	v?6.1;1亸);W91QW7/拃 izR `<1ce%)^% 儯 g墍矣蒥sa综朽\{阡W0閚H驝!礧泷鞊' bt邴燨? 鮷0羷6h碢 +I菠蓳(S猏H ; 0707010005f28f000081a40000000000000002000000013ac0388500000173000000200000000000000000000000000000001d00000003reloc/images/letters/197.gif  GIF87a# ;      UUU999獛帋rrr沣闱乔                  ,    # ;  菼i 圧R悕@ 灋1bf牥垊Y僁芃aRz!褍(n賗	勮撌膽 4	︹漬s慱浪-壠鬋3>J袃|.tv|xm{丗ie%m^ i	w#JT#&\	攓\2q?D-$煭fT|Jp$l'#|0盀;$91|s(劺聠'#$~'#坟'∶襚'МX頧 )戹r 蝼禧伹&t鐡3倯:$永ⅰ脝閽P鉺-.類7湉)瑠X褍?'64醲溃%!9怽r騖灈8s贶沙烜凃  ; 0707010005f290000081a40000000000000002000000013ac0388500000157000000200000000000000000000000000000001d00000003reloc/images/letters/198.gif  GIF87a1 ;      UUU999獛帋rrr沣闱乔                  ,    1 ;  菼8胪`(巇i瀐l刖p,[`選9%紶p玢喨aqSK:u酙臙1仾鰖!澿K.浰圡A<涉畃至Y圿Z馄軼k9}7*M8tuo,@:{|v,G崉+7W匷 \S:漑挒Dか9r~蛋6竬P紓g膁7X'6矣蚁 #彴"曐(諹 ⒔垛';c臽#杀堂钆	8殛罇2簦rG/~I莂8趐h樞o8!瑇n喦 CI菠蓳(OF  ; 0707010005f291000081a40000000000000002000000013ac0388500000159000000200000000000000000000000000000001d00000003reloc/images/letters/199.gif  GIF87a" ;      UUU999獛帋rrr沣闱乔                  ,    " ;  菼8胪`(巇i瀐WR A@ d1蘾/$犇瓽	pCq#l惕虊QJJ"*(鑢墎!&*呭;CX +L闐E|3~2x3=8刪)拀桬Y& j%*)('&qD%楽)[_穇HE=嚊1>綟=K2jV瀦旹Bv苃^`泌濿<肩閏鑂d醀s衝锶 pEb琹,憤墙U蚏 I惻>' 8硁默婙足$8 ;   0707010005f292000081a40000000000000002000000013ac03885000000f3000000200000000000000000000000000000001d00000003reloc/images/letters/200.gif  GIF87a ;      UUU999猺rr沣闱乔                     ,     ;  ㄐ菼呁昧` d)劏4$憿k9|/揂 ③T韪喨y!盀(腓擹ピ欇z籢-8l璐zU熖7+眇ゼ劅肷V9{%剠 墔寧悐P揚l榡>僽w瀥J墋|爚猏櫘h垟R辈煈姶祣穮购$L谅媚牌侨墒 ; 0707010005f293000081a40000000000000002000000013ac03885000000d2000000200000000000000000000000000000001d00000003reloc/images/letters/201.gif  GIF87a ;      UUU猺rr沣闱乔,     ;  焁很0嶡k圶;xB鶟!&雽^,3|?別锢爌豍彜4*蚳)昍+喟x>,尶毟秴颼8Wo徟1'覃 個 _d奱噄7u*2悢抣梟檖況*墜K:P5え%&+D刀犯购患骄	 ;  0707010005f294000081a40000000000000002000000013ac038850000010a000000200000000000000000000000000000001d00000003reloc/images/letters/202.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  筐菼x毨股燿 d	|酔,慥;叭;庭p鎌乛#^Vb抈B荅!H禑v隧^偓癤,徬d z*尺 7|-煙9倊巷篑F^j,G^f%匽噥哸塡 廩憮Z憊$T儥-槞洜vaウ&&~畖Y湀倳磶秳&?祶箍缓yKG蓈拴诽s蜗卵p紓仝圮蒉哙徕 ;  0707010005f295000081a40000000000000002000000013ac03885000000d9000000200000000000000000000000000000001d00000003reloc/images/letters/203.gif  GIF87a ;      UUU獛帋沣闱乔   ,     ;  很0J)+\Κ悈n鉜N'狦碫z瓛禳2鸹乴H,徣"-膌^
滿朐r罐5樝梏e&邸氛薯蹑];q[~ 侻剠$亊噲7奙j抙恡Ix榺殫H櫈洜滸煠憮╢p(s媴"当俽患骄坷谅媚
	 ;   0707010005f296000081a40000000000000002000000013ac03885000000a7000000200000000000000000000000000000001d00000003reloc/images/letters/204.gif  GIF87a ;      UUU獛帋rrr沣,     ;  th禾癜4%絛瀦8w摫u繮灄P" 緓jM=
A擰$.;螷糇<2捫*箨詅怪V%兎忸鶝+圃倒崀l慧 /栥xszu|w儁厈};實帍悜挀;	 ; 0707010005f297000081a40000000000000002000000013ac03885000000a2000000200000000000000000000000000000001d00000003reloc/images/letters/205.gif  GIF87a ;      UUU999猺rr沣,     ;  oh很|!枢笜2俿;ChL 住K9腡8tm叨*骡坯縘C	=臭!丱&賂F廠hV殺^檁壅柟
"x>撚^敦輪涰h儂脬t|w儁8噲墛媽崕	 ;  0707010005f298000081a40000000000000002000000013ac03885000000d5000000200000000000000000000000000000001d00000003reloc/images/letters/206.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  婐菼=(鐼@(屻X
夿暊騿丏牆 E1燰酮樐y炐ㄔ驝燯謟}fG[kX脲幜eq歀5mu渳鶌西w~鵾~r倀v!x坺妧寗}弫憙晠嘳崨搸棎檼SぅΗī ;   0707010005f299000081a40000000000000002000000013ac03885000000b2000000200000000000000000000000000000001d00000003reloc/images/letters/207.gif  GIF87a ;      UUU獛帋乔      ,     ;  H很09芒T壄聯芉"X瀒w佢腆靶t韡@`H饎裴1┸!揔f阣玆,,N絑0%枦鉲z毭锏窶啠閖<坩倔雛qzsy厈}W亊墍儌噭巻@枟槞殯湞濦	 ;  0707010005f29a000081a40000000000000002000000013ac0388500000127000000200000000000000000000000000000001d00000003reloc/images/letters/208.gif  GIF87a% ;      UUU999獛帋rrr沣闱乔                  ,    % ;  莛菼8胪`(巇i瀐lp,像菺< $潪pf0A.僁
4Md#`Ax﹏糶梖/'皼ι腘鼮9Z谪1)fpQ2r4噭0媢崕{憣崗姃摍;嫇 灉3	2w倈1~4h焹x;暡q牸0蛋绷墇 mTy堆	闲注2P哙5彐鏙F/\.貊鼬  ; 0707010005f29b000081a40000000000000002000000013ac0388600000161000000200000000000000000000000000000002800000003reloc/images/letters/208.iso-8859-9.gif   GIF89a# 0      UUU999獛帋rrr沣闱乔                  !   ,    # 0  菼%1aB(I%bph
I歫凨!毈o亇 蠀{"淣@伄V9N!T2$憢jM*丱NO1腪bMM
1眉＂Sr{?剠1j6@*z.)T#u(仈"16P厽燤*婩惂=獹━癇=x*揨?}.	览*=p)b{m(Hd彇C)f{台*^{菲罩>绍垅巨,#0:轻1懅]貔+判铢0@N絚" 蠥^檝- z0%撉 CI菠蓳(S獪 ;   0707010005f29c000081a40000000000000002000000013ac0388500000152000000200000000000000000000000000000001d00000003reloc/images/letters/209.gif  GIF87a  ;      UUU999獛帋rrr沣闱乔                  ,      ;  菼8雧	`a	 `pQ甧@H批	k*憌埓晪`篊 $P 涩v隧8]O緷8鉉鶈@呷> r揯甙歾淚?y~vazg噣m妰7<,s婤K,x-F,M攺6H3況;69殺56S〒lМBf6p+櫟+ゴ簻%,"6窖,蘩膓怜伸桀勧攒>砘骠嵺鉕殕u,
娵 /〖PxOC^2j苋保菑 CIrB ;  0707010005f29d000081a40000000000000002000000013ac038850000017e000000200000000000000000000000000000001d00000003reloc/images/letters/210.gif  GIF87a% ;      UUU999獛帋rrr沣闱乔                  ,    % ;  菼8Ю{@Y@i
bz慺I臍胹躴$<\k<r,&
崜\"
儢多枲獴H描挕淢粀!D埤土乣8a俛da6圸D)慲a"_[p榋k1w&>%)焃d~'<孾厸礎:碯U=[(-*-E抹盟A%蔥绦 终羡<任-緽Z路Z1 ‰1`丢 !.亻)в0畋獲I寠*刱!亊 蘍(8d/-4Mh"蠟>4iJ]怌囄粦KLAR%腥褸銈<壜0 亃M
J川眩H*]4 ;  0707010005f29e000081a40000000000000002000000013ac038850000017e000000200000000000000000000000000000001d00000003reloc/images/letters/211.gif  GIF87a% ;      UUU999獛帋rrr沣闱乔                  ,    % ;  菼8隒&V` 1瓽*+o*嬋鹌锋⒓&n牋q蒷厐4({垈$鋏!︺碼擪!M巆垛@丂0犈b僢_$b4\/#5b#a5v\k,x(?/+/'2%5\,&q礒7(,5B'腬脱/姨允7&凶7上緻=耫湺=紁擘+&"0 "п5阤盖嶣%6岵I8R 囡%B|u'>4~詃楥g袒CK鯾搾NhQK刉n@1 塏
J川眩H*]$ ;  0707010005f29f000081a40000000000000002000000013ac038860000017e000000200000000000000000000000000000002800000003reloc/images/letters/211.iso-8859-2.gif   GIF87a% ;      UUU999獛帋rrr沣闱乔                  ,    % ;  菼8隒&V` 1瓽*+o*嬋鹌锋⒓&n牋q蒷厐4({垈$鋏!︺碼擪!M巆垛@丂0犈b僢_$b4\/#5b#a5v\k,x(?/+/'2%5\,&q礒7(,5B'腬脱/姨允7&凶7上緻=耫湺=紁擘+&"0 "п5阤盖嶣%6岵I8R 囡%B|u'>4~詃楥g袒CK鯾搾NhQK刉n@1 塏
J川眩H*]$ ;  0707010005f2a0000081a40000000000000002000000013ac0388500000185000000200000000000000000000000000000001d00000003reloc/images/letters/212.gif  GIF87a% ;      UUU999獛帋rrr沣闱乔                  ,    % ;  菼8[篏Zx%@i儴J萷灹*
rf糎&雇 	訞A炙@睍I壛`R 1薯zU塀Vt遁烍u >盾鋿!润<j 1~klxr8;r攔oWsH5*s!q/↘9%Fl"'湊OA肁縼Jlh2竚'*&蟫Q姓弊I俣踠剀 忉/Q赃率I蛅膌2菄鯥& 袗'9
玍 剈燭<$Ru肋歝锽<;*4报#=|,*攪∈,]z匇'噣刓憠鎿eQ聦仭赔棧H*]蚀┯  ;   0707010005f2a1000081a40000000000000002000000013ac0388500000185000000200000000000000000000000000000001d00000003reloc/images/letters/213.gif  GIF87a% ;      UUU999獛帋rrr沣闱乔                  ,    % ;  菼8胪q	爜T 輩f艠癅怹传簧M暬嗨G剛 8垨S傴碊O*拹韟縛K獬4@躱5'|鯙丽N痤 蕆×挝m+~~}:HxAB態uQASB:(燗Bq.:{7 A-u&>:敨;򻠁TAi>:贸.&-Y苴睞掴;沔:珀.Y俑P螼.萌芆虆鸒醅鶂 enU`^れuH〣1D&竨廈D;揟|鋋HN蘚訰qk俓#摉彂yúc牓=h]h&c槪H*]蚀┯  ;   0707010005f2a2000081a40000000000000002000000013ac0388500000179000000200000000000000000000000000000001d00000003reloc/images/letters/214.gif  GIF87a% ;      UUU999獛帋rrr沣闱乔                  ,    % ;  菼8胪+`8}!豜d9栨楸朗猴,"-7琌墍p趣r稍$
Ah $0&H 0BH舎C秢g卺@丂0溍a僡^a8%,!a`0v=0j.x<[',!𝤈[. v,V:,礆 .<荋:涎4覽巫匈:9%4膿澐?絬瑁.% 崆񜵴糸(X"!"Fy黁 爋虆%
]@$哠厗%麴駬&:/h豈2`抯L潃8g圥
椾I攲(l鲁烜
J川%  ;   0707010005f2a3000081a40000000000000002000000013ac0388600000179000000200000000000000000000000000000002800000003reloc/images/letters/214.iso-8859-9.gif   GIF87a% ;      UUU999獛帋rrr沣闱乔                  ,    % ;  菼8胪+`8}!豜d9栨楸朗猴,"-7琌墍p趣r稍$
Ah $0&H 0BH舎C秢g卺@丂0溍a僡^a8%,!a`0v=0j.x<[',!𝤈[. v,V:,礆 .<荋:涎4覽巫匈:9%4膿澐?絬瑁.% 崆񜵴糸(X"!"Fy黁 爋虆%
]@$哠厗%麴駬&:/h豈2`抯L潃8g圥
椾I攲(l鲁烜
J川%  ;   0707010005f2a4000081a40000000000000002000000013ac03885000000f2000000200000000000000000000000000000001d00000003reloc/images/letters/215.gif  GIF87a ;      UUU999獛帋rrr沣                     ,     ;  ю菼8胪`(巇i瀐l刖p,OX_@x鵡燨R龄4
弯蚏岤愌羣Rmj'X锒淈 39绖藞5牆y9菫э驣~|l!r: 嘚奐寑hKTyxY[rZ朾揾f湢c擺殬瓀疦璮礙⒍韩苛3牌侨墒+ ;  0707010005f2a5000081a40000000000000002000000013ac038850000019d000000200000000000000000000000000000001d00000003reloc/images/letters/216.gif  GIF87a% ;      UUU999獛帋rrr沣闱乔                  ,    % ;  菼8胪`(巇i瀐)!D 4 E!C倸p80(A!熛-槧Z1原xH 徬凋%凚*$禙昖扗jvNPWwP:圦s5<[P拕ZP揢淥>^.5uSO|B54洤|Pj 蔷O蔀曄陶晒詃周屭跙芆用勧淖4範葿G6饐麮.抾裛<H>A6FZi(貗竌]縪Z蘣XU脧-KS性但★ (%嘭!n嗳OK4OV 卻嬑
劕LD# 鍋n娧H釤#s0闛賻sn鋢立痐脢K冬Y
  ;   0707010005f2a6000081a40000000000000002000000013ac0388500000133000000200000000000000000000000000000001d00000003reloc/images/letters/217.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  桊菼8呁聽 d)勮4$懄k9|o揂嵽@③/d韪喨	d慯g肜{ΒRW 崔n緕罵鞹池,w	^扥扶/9m沱k{mo俼剆唘坵e(X廹奦搤!悈挌敐 泬|棏櫋煫キR>(敶R0e B!^\!^9[ 	芧	兰蟐*赞N哌沐廊闍G!	铄?E%酟 
H盃羶&  ; 0707010005f2a7000081a40000000000000002000000013ac038850000012d000000200000000000000000000000000000001d00000003reloc/images/letters/218.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  怵菼8KZx @i劏g櫔癣0韀[飑飻Dx1|~膜r蓴鬦*,<Eg椽:=hK茚鰕眅-拪!穣渧漡,\#W摺mXkx乚t卭剄V坰{}v噵啈1寱|殬搝姕棦挐枆-	"尡3"嚑!$pX X N娇	罼B蒟c劫7俎&葸矫-H	桎;F8&跰 
H0C ;   0707010005f2a8000081a40000000000000002000000013ac0388500000143000000200000000000000000000000000000001d00000003reloc/images/letters/219.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  菼貟;枢 d	!`瞗WFmrKA榼`垨丅#	n哊`IAH脽v隧迠- ,俒0垃Ng揫o魓inb圌%~hwj俽刼z$$唟坹v!x}u悤奲榿杻搮瀲爥 敐殞k棷櫐◢瓔湻博毒j>!<o-6!寄(*j覶1j/D	2"'X遤氣忧+祚 譛M-9%Y 	雠徐(8p绁∶#J淗雹艐!"  ; 0707010005f2a9000081a40000000000000002000000013ac038850000013a000000200000000000000000000000000000001d00000003reloc/images/letters/220.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  镳菼8-	_纔'︽楗+賠/凅V囈(焽D`H埫p蒷:熜FK}嚛璲舑y:++v壣Vs7[姒性瘊玶撪[鶝澏凁`;|q俫厃噑mzw墎僕恥巹t j{櫅彎~敔棦崑湨拡＇煩揷暁〔	埡VJ牨bb3 	薭	 觔呜溟珀9$X	蜿綤鑠(P-娏*\劝∶#  ;  0707010005f2aa000081a40000000000000002000000013ac038860000013a000000200000000000000000000000000000002800000003reloc/images/letters/220.iso-8859-9.gif   GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  镳菼8-	_纔'︽楗+賠/凅V囈(焽D`H埫p蒷:熜FK}嚛璲舑y:++v壣Vs7[姒性瘊玶撪[鶝澏凁`;|q俫厃噑mzw墎僕恥巹t j{櫅彎~敔棦崑湨拡＇煩揷暁〔	埡VJ牨bb3 	薭	 觔呜溟珀9$X	蜿綤鑠(P-娏*\劝∶#  ;  0707010005f2ab000081a40000000000000002000000013ac0388500000128000000200000000000000000000000000000001d00000003reloc/images/letters/221.gif  GIF87a" ;      UUU999獛帋rrr沣闱乔                  ,    " ;  蒺菼8[&R`灹'獛刃+smgl塞埲	L蘊荙醝BHJT昿=8褀6╡v █鰁躂W诲鼣W-~oyxd-j`&bhwT!"k$O0t'#|lWO?"13V6姠D ';=p礖筎籑&侤8pzH畗L'薐幭T屩刂譕傧圳捃徉汊3週咫珂殇铐疖貊鼬"  ;0707010005f2ac000081a40000000000000002000000013ac03886000003af000000200000000000000000000000000000002800000003reloc/images/letters/221.iso-8859-9.gif   GIF87a ;      UUU獛帋乔                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !     ,     ;   	H盃羶*( 脟6|0b聣-"Q"艎9`∩(Qr|桉#aR斏颌藯6]襱缙=冩9tf褮?u骞早習L昷*咬@
玆甆B[p霽疭裋U{UlV)闶滽樊莼x& ; 0707010005f2ad000081a40000000000000002000000013ac03885000000ef000000200000000000000000000000000000001d00000003reloc/images/letters/222.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  ゐ菼8胪`(巇i瀐猨@匇簈95y抿潖粻K鳸勅掷(I:珞(M(珍 11	 xm4厺爗v熨棐%蘲歝踸亖v|4o7q}7P8bA9YH檱崫.e煚ⅲYwQ凘m:脖y6"肮!+坷谅媚牌锹 ; 0707010005f2ae000081a40000000000000002000000013ac0388600000469000000200000000000000000000000000000002800000003reloc/images/letters/222.iso-8859-9.gif   GIF89a 0      UUU999獛帋rrr沣闱乔                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !   ,     0   (  (T垚 #H `∨ $AE x羳( 亳d蕯+#~|2 !(悁y
L垜 D/
 诣Q I釺鷗 袇N	`碮鮻伃=1.須 ≠ 耣d賃"湺晉这 騨薅oi.糩璂瓊/0` 饽E蜞	9鍿8繑gR敇机D)Wo嬗"]K&l 瓱>巬洿j盎U苇0碓媆?7X梐陦,r襁6圁}秂昹M~F/Q黿吂3O,喙隥jt≥ 一Y6D ュ_f镔5燚P8昚C
jg梹f!G ;   0707010005f2af000081a40000000000000002000000013ac038850000013d000000200000000000000000000000000000001d00000003reloc/images/letters/223.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  蝠菼8胪`(巇i(A	`吒oM郍CqiX惕n2,(菾誈侢0!鼫橊-q箥~般z S~7j?匨q@媜Y5> x7hu憽ESmL嚉淨G	┋	JD;漖ò=娏黄俵紹?围>衣>1塪蕧偫軄DＧu擪a軅忛餏愖6鵣橬P蕛,X@劝∶#JD ;   0707010005f2b0000081a40000000000000002000000013ac038850000011f000000200000000000000000000000000000001d00000003reloc/images/letters/224.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  责菼8胪`(巇i扞牣2@,$,荄}凔顏扢&+wj:%劏4斱EB`Z睦腠Y膁2瞓H2薑篖署Ψ孪]};>"wV	\*n2c;[槒梚漨]y]Yq塒Vk弡1 y⒑几珡劚^vエ煗褱|虡;坕7A	3Y7	K蒓瘃蝮趱鲼 ; 0707010005f2b1000081a40000000000000002000000013ac038850000012c000000200000000000000000000000000000001d00000003reloc/images/letters/225.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  狃菼8胪`(巇i灒琹1@,垐rL廇"哄!帽6B癡L攖 X	QA嗨	
-荒錿,鶟躚媖唙F>lev0ym]"9Vs|tJtc	梌Yw>噚2搼2q糼匽噲e澖>歉 坑豦W賷i熯i?鍳1夜L鎚*+馭 
x" ;0707010005f2b2000081a40000000000000002000000013ac038850000013c000000200000000000000000000000000000001d00000003reloc/images/letters/226.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  耩菼8胪`(巇i,1@,I腆|OW@/p. G1鄓k厺禜攛 樛掳Q嵳M07т鱶wC{A~z[m3itMOnq3SP2x"J焜f_媧}	槄爆U2q剮X1q1聕t蔘1枟⒁oF謓琶畉馓t3qs村鋮莕a瘾89i*z翘醲D諙纹(\劝∶#j  ;0707010005f2b3000081a40000000000000002000000013ac0388500000132000000200000000000000000000000000000001d00000003reloc/images/letters/227.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  琊菼8胪`(巇i(El乀 k 還@H n8Ldb膁N僷8xa7+t*+鉸(裊F赥y)&漽?澉ntn,,J*IdmC怐XD揅}I#	s8 z3xク畫H僆彔~Iq嚇烼翍7晼藾0袰蟲J篋Uht蒚縌豆涑慈8鄑竨=媞7覽浳H盃羶SD  ;  0707010005f2b4000081a40000000000000002000000013ac0388500000134000000200000000000000000000000000000001d00000003reloc/images/letters/228.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  轲菼8胪`(巇i瀐l;-[l`逽p桔筥OSw肔qw%1K淒囓 仂$懪&R嘁蝶繚爛8`蹮敤=m咐鱲myr-hqtM7UqixiP$TX悷0噣xq猳	瑽ez O東繭7}盲q∟抜绚涣嗓6Y猡挡rx鎞還6?傛P-顓H盃羶* ;0707010005f2b5000081a40000000000000002000000013ac0388500000143000000200000000000000000000000000000001d00000003reloc/images/letters/229.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  菼8胪`(巇iD	@+4h倘懤'6$f $E閬'GA求-6!垲(店則跍5 3g皷@}撶鶂x>zu**o[lu~(p`[敀[7Zi牃寍	檮t祊⒏|2擰f▆繢稄p ~7棙29撥松冔は{妤脊想pb鳀醄8B@嵸HV)
P@趬#J淗雹艐"  ; 0707010005f2b6000081a40000000000000002000000013ac038850000017a000000200000000000000000000000000000001d00000003reloc/images/letters/230.gif  GIF87a+ ;      UUU999獛帋rrr沣闱乔                  ,    + ;  菼8胪`(巇i瀐l刖p,蟭m選%DO$/0 $RP$$砪圸&睦屔J鎴n粵晜{R窝A`逧
fW	WprUVv奿kV}I橦Z W#xIVltsj叀紅盵懒bs黄巸対z|刭豈兊淨 抇#蘃∵軻贎蒞瞅H 囧焺餛8啴L脶wH鑖UD:0桒褖袓K"p'柈P囜=>Z罆 K@
J川眩#"  ;  0707010005f2b7000081a40000000000000002000000013ac0388600000120000000200000000000000000000000000000002800000003reloc/images/letters/230.iso-8859-2.gif   GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  震菼8胪`(巇i琹 "@,蘱88]6A挕eD9K	倲﹝盄 bg俲犒mNx洳桛亄%(绒`;AxqD3oyIXu33c8.h3!=嶤=f29#>6= 2	-+帎2p8淴瑌2| 2x_R2泼mnk抑 ~冖拗偈Q躉耱篝貊鼬 ;0707010005f2b8000081a40000000000000002000000013ac0388500000125000000200000000000000000000000000000001d00000003reloc/images/letters/231.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  陴菼8胪`(巇i瀐l刖餓坛狅繾 o3l膜n  旿* (C2袛碋L湝塭J.a螽' 扬"^CqI$#"!I!~:\`v;<MoC;iD	IF泈4;q烾D哎篒R耑睠l\O"=3:贒!M<"ω剘腼郳规帅8畸 ;   0707010005f2b9000081a40000000000000002000000013ac0388600000125000000200000000000000000000000000000002800000003reloc/images/letters/231.iso-8859-9.gif   GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  陴菼8胪`(巇i瀐l刖餓坛狅繾 o3l膜n  旿* (C2袛碋L湝塭J.a螽' 扬"^CqI$#"!I!~:\`v;<MoC;iD	IF泈4;q烾D哎篒R耑睠l\O"=3:贒!M<"ω剘腼郳规帅8畸 ;   0707010005f2ba000081a40000000000000002000000013ac038850000011a000000200000000000000000000000000000001d00000003reloc/images/letters/232.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  橡菼8胪`(巇i扞牣2@,$,荄}凔顏扢&+wj:%	倲;櫋!操杅搋0洳:!ㄟ仁細g綊八X;~8`z@nYq7LhYiojE洔`9煚;ⅳ湨@,*E2 7x";4# )氨哬剦eSel围紶埔g叄al	偸\,TO腱眍镳耱 ;  0707010005f2bb000081a40000000000000002000000013ac038850000011d000000200000000000000000000000000000001d00000003reloc/images/letters/233.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  茵菼8胪`(巇i灒琹1@,垐rL廇"哄!帽6B癡L攖z X璏西+D7J.抓1娕亴鶎启豯%q柏邇@Lɡ竢b	B\9i{>}o9悊9\p3煝、灓3O,棃$2y2d"tCz\H>穻W9[2挥 匹	覟醼絡*-擳铒瘃蝮趱 ;   0707010005f2bc000081a40000000000000002000000013ac038860000012c000000200000000000000000000000000000001d00000003reloc/images/letters/234.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  狃菼8胪`(巇i,1@,I腆|OW@/p. G1鄓k厺禜攛 	礟鈫	拇鞬g閤 简蹄J~yvVt+smA)t:*tv=>l3M2巑t25F8歸P}儍HyM辈t炊~8塠究$$1] 嚺椏i奈1芍gK3C筎豌债暜鎚郆Z[hc 
! ;0707010005f2be000081a40000000000000002000000013ac0388600000125000000200000000000000000000000000000001d00000003reloc/images/letters/235.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  陴菼8胪`(巇i灗琹"%,tMHD]:pO陠6\倀姁 τ攙斃VC翏fpq僸/鹋糟A或喦鏙粃`I廦~K	5|b=塏Vc卥y:K嫍DuGv.ウj7┆Kv発1刀+.烮"F5"K$>0夯慘彅cSjs直:纽伪r璲l	峧f1x[鼬 ;   0707010005f2bd000081a40000000000000002000000013ac038860000011d000000200000000000000000000000000000002800000003reloc/images/letters/234.iso-8859-2.gif   GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  茵菼8胪`(巇i瀐l刖皦4憟I 禳.劆GnBq^斕〒D墎)咾u9@Pu舕8罓{	7 |嫱惠塹IE@PW 厙Qq媽K帎W扗]^槞歗p$Eb#s<f"[{汬煚|;mrd5VE	揇┚ Y眹uk孏耫	 6 BD"#紽"嬌 ;$UE%=10 ;   0707010005f2bf000081a40000000000000002000000013ac03886000000a9000000200000000000000000000000000000001d00000003reloc/images/letters/236.gif  GIF87a ;      UUU999猺rr沣闱乔                     ,     ;  ^腥I8胪 宒pX牣聲*崧纏+裁僉$;%覅24(L孩6-LU媫v＿i:綱槽t檣龆羙q<7S衚u潁禧亖 ;   0707010005f2c0000081a40000000000000002000000013ac0388600000091000000200000000000000000000000000000001d00000003reloc/images/letters/237.gif  GIF87a ;      UUU獛帋rrr沣,     ;  ^h很0蔍X柪#@(
!垺p4
ㄍ嗦寜襆q痚邱 喷q窧# yd簻(℉46璒lT;錠J暌;_蚘鬡輊a瞲.秫紐蟝$  ;   0707010005f2c1000081a40000000000000002000000013ac03886000000c1000000200000000000000000000000000000001d00000003reloc/images/letters/238.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  v鹑I8胪`(zF`殕f l嵛剠堂孴y+讇=V@R%&塝醦2(勱r腻jM+,&咸.tK=謭l富<?子鱱緷y{r}t僾厁噝墊~亐媯]摂晼棙 ;   0707010005f2c2000081a40000000000000002000000013ac03886000000a2000000200000000000000000000000000000001d00000003reloc/images/letters/239.gif  GIF87a ;      UUU獛帋沣闱乔   ,     ;  oH很0蔍8M2這@.仛2屖磌薂8EKG(幦y4pRH码Qy搄{F碷字筭蛎\F氛鲒=7鋛z尬肋|~}厒P墛媽崕	 ;  0707010005f2c3000081a40000000000000002000000013ac0388600000148000000200000000000000000000000000000001d00000003reloc/images/letters/240.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  菼8胪`(巇i瀐Z儊氡@b魼p炌&渼衕 =ν痨钖蘝'恌9lM衑4坆%)新YJaf(詋		L:^QF{J圖L彆 y枅Zt殢僐o█nFb5H攝禙?奀R?甼 羅徘耗_释F/R6p68滷s6g=對尘猑~^屲瀡須糓昵
*/w渹"哀ⅱ艐3j苋1c ;0707010005f2c4000081a40000000000000002000000013ac038860000044d000000200000000000000000000000000000002800000003reloc/images/letters/240.iso-8859-9.gif   GIF89a 0      UUU999獛帋rrr沣闱乔                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !   ,     0   H盃羶*\劝∶  00"E J苋懀茙 <rc茋(& 2A蕘	``` 8s糥r 2;ZR"-
@繰6櫸Ip@O漼R`%f 癟 Y 嶷I
Mj术d蛣o>韸n邘紁1榷
唔7徂.KT葥秐
孁`]&?.{ 榇袹-JP箪O5LP鱂熂k祟梵3l7;
l魉(蘾)P跗释9
p;|衒_o*tY齤N稺絔挼莱霮D為 ]蟐9錮  ;   0707010005f2c5000081a40000000000000002000000013ac0388600000117000000200000000000000000000000000000001d00000003reloc/images/letters/241.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  甜菼8胪`(巇i R,a	 d還慔彭^減8壤咹@摳剙m8敏 
羛,3	E.3%羓襽]勪+8~8W>}D8E匟,GH;悕jHK1uS83 ?rB4T彵煯返甫卜幢嚎钩毫爬剖v镁认悸记松凶襈卉治胀藤嘬f栝觌祉铒 ; 0707010005f2c6000081a40000000000000002000000013ac0388600000103000000200000000000000000000000000000002800000003reloc/images/letters/241.iso-8859-2.gif   GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  葛菼8胪`(巇i嶥牣A pa 4H艹;9怣$#玿j:	4両癟吕R軈(錁磡3L襢6/瞾.lT|vYC7g|`w2-|L\7抅u槜<湋灊洟·ぇ1牤0俺 捶陡-ō瑵剑ε壤事赡翁袿哉肿刭谯 ; 0707010005f2c7000081a40000000000000002000000013ac038860000012d000000200000000000000000000000000000001d00000003reloc/images/letters/242.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  怵菼8胪`(巇i瀋牣Q@,;莵	弋=5熖p谏E舕V刪敂躣侭悡\縆嶀K 32鵯霫,X暶颱皶_[sW9`n?_7_Hi3.F2798 ォ嘩2挅W悮17 =繶21訝{R1zod驹砚鎜妎镖",-}N 
H0D ;   0707010005f2c8000081a40000000000000002000000013ac0388600000131000000200000000000000000000000000000001d00000003reloc/images/letters/243.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  骛菼8胪`(巇i瀐El  A磍廌^脙躰劊E	∩:aJH
,嘣俍跔[Ad泌F1m骰b@肺Z$5旊>Jyq2~x3jI>=94jZE4:3dΔ?6爆>69Z摍39Z剰4欣	2TXa|ra*鋃胯f 致軞zL-≒ 
H盃羶"  ;   0707010005f2c9000081a40000000000000002000000013ac0388600000131000000200000000000000000000000000000002800000003reloc/images/letters/243.iso-8859-2.gif   GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  骛菼8胪`(巇i瀐El  A磍廌^脙躰劊E	∩:aJH
,嘣俍跔[Ad泌F1m骰b@肺Z$5旊>Jyq2~x3jI>=94jZE4:3dΔ?6爆>69Z摍39Z剰4欣	2TXa|ra*鋃胯f 致軞zL-≒ 
H盃羶"  ;   0707010005f2ca000081a40000000000000002000000013ac0388600000143000000200000000000000000000000000000001d00000003reloc/images/letters/244.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  菼8胪`(巇i炶f,k 侠;tN圚>鋱衞&8hP DeO!棙$r⑴赒蹳0E&午1橡DD,GB划余鴢 ^W亖{3-2ISt	GtY墦x楬匱=t僺4EK9644Qup苛胻繜3碊333葲}紅舟鉖9hl|閱u姻撰z黫關姥#6$ 氓兰2#J淗雹艐#  ; 0707010005f2cb000081a40000000000000002000000013ac038860000013e000000200000000000000000000000000000001d00000003reloc/images/letters/245.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  箴菼8胪`(巇i瀐*%FI 4tr +洐qI骾p\6(Ah嘆vh桳&%狥A蠐2u鬪-p|}{侳~	w.丒yvE_Ff婩J悈DF:KbK 6:澆E付94窚c泼 枪?9W汦砂謄5j禂Rd;搰Fb[弩Wj鱸唡阨@饛潏)嶾 敠∶#J(1 ;  0707010005f2cc000081a40000000000000002000000013ac038860000013a000000200000000000000000000000000000001d00000003reloc/images/letters/246.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  镳菼8胪`(巇i瀐琹"%,tMHD]:pO陠6\倀姁 τ6暲篎翏鴘
僸o` 年q 僅钦髬龓,pc_VjK=m{55y	cUF5J=ycK橬⿵癉疜矷巩>=捕挙滰K淧c帤瘟:刳;瓪Sa唸|w犽≠铕唑o	:<\1美-*\劝∶ "  ;  0707010005f2cd000081a40000000000000002000000013ac038860000013a000000200000000000000000000000000000002800000003reloc/images/letters/246.iso-8859-9.gif   GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  镳菼8胪`(巇i瀐琹"%,tMHD]:pO陠6\倀姁 τ6暲篎翏鴘
僸o` 年q 僅钦髬龓,pc_VjK=m{55y	cUF5J=ycK橬⿵癉疜矷巩>=捕挙滰K淧c帤瘟:刳;瓪Sa唸|w犽≠铕唑o	:<\1美-*\劝∶ "  ;  0707010005f2ce000081a40000000000000002000000013ac03886000000d9000000200000000000000000000000000000001d00000003reloc/images/letters/247.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  庰菼8胪`(巇i瀐l刖0殸`<悆O 	m牛礴)("泥X@	Q槺V侤.浵栩跳l祃.鑦7>詭觻`a+[X6$<U!NGIJ q=J"Gl&d劖氨 ;   0707010005f2cf000081a40000000000000002000000013ac0388600000140000000200000000000000000000000000000001d00000003reloc/images/letters/248.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  躔菼8胪`(巇i瀐l刖p&DM$h _@!椔 
@ |同pZ滺掂#2k8榔f勚PA蕽侪竷pe@ts	Y匞MHFL; ;Y旳凟B?D欯}悶橫ⅸ y！癟嫰劧腹|x 娔L壟薒`{@摬Y螦h躈蛨侤~ZC5=嘨fa廣漤G鈅騆诳7耒庳曛扩`葲匕1P曷@#J淗眀 ;0707010005f2d0000081a40000000000000002000000013ac0388600000105000000200000000000000000000000000000001d00000003reloc/images/letters/249.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  吼菼8胪`(巇ijE牣唸@,.,R這0<孪悁仓oヒ潪蠴偐佔薼y撅蛧寺\蚺C兘籟幭諙<^臌c{og倎刴唴圿kv|弤憏悆拋帟摋77Ns]\t﹖D7がt煿紘焕9:攔7N	LBQ肿刭谯茌 ;   0707010005f2d1000081a40000000000000002000000013ac038860000010a000000200000000000000000000000000000001d00000003reloc/images/letters/250.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  筐菼8胪`(巇i扝牣A
@,!!!2 <葀倂8乪89煛K迓H. 彁艳竈巵y癀>罢柗錮鷟壅阕~zy|q亅僟{妷b嫀峟彃憁卾噷剛H妉h杊昺搸	 焸繁簃70贡D:4菒虜K+UP圮蒉哙徕 ;  0707010005f2d2000081a40000000000000002000000013ac0388600000110000000200000000000000000000000000000001d00000003reloc/images/letters/251.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  硼菼8胪`(巇i,"&@,C聦!(B 	鳿D蜙+@ &jL迉W汅N拫i趢	栕3s?/}亄{9t媧峾噮儜弳張3寷帩悧拤敓02PF1A7}=9眪Cp絅pnЮ磨撑22萌*扟骏肥3H英[秂忏溴骁栝 ;0707010005f2d3000081a40000000000000002000000013ac038860000010e000000200000000000000000000000000000001d00000003reloc/images/letters/252.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  灭菼8胪`(巇i瀆T発@mO乚砠>嗘陝⑽hCZ7I顦AI{M牼`
悏慑t獇 ge粐p]N氽﹛n~乀僆yMm厛剨哋垚s拲噦枒榳棇湚瀫潖>>pu敵BW揣柯裁:劲疗泞S绿赋焃0a噌忏溴驷 ;  0707010005f2d4000081a40000000000000002000000013ac038860000010e000000200000000000000000000000000000002800000003reloc/images/letters/252.iso-8859-9.gif   GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  灭菼8胪`(巇i瀆T発@mO乚砠>嗘陝⑽hCZ7I顦AI{M牼`
悏慑t獇 ge粐p]N氽﹛n~乀僆yMm厛剨哋垚s拲噦枒榳棇湚瀫潖>>pu敵BW揣柯裁:劲疗泞S绿赋焃0a噌忏溴驷 ;  0707010005f2d5000081a40000000000000002000000013ac038860000013d000000200000000000000000000000000000001d00000003reloc/images/letters/253.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  蝠菼8胪`(巇i琹 "@,蘱88]6A挕eD9煗+I 螘!伟@#"{	7榟繕0+懴A*侕=xz8k3=\^2~8o1yh=峴倫81|2媑3摜╱[玞2i蠢畺 鄙v1胋娶蝱暒 抠≤ 2冟=tC!乳 骷 痘諜2Zq  鰍伥L!R
 ;   0707010005f2d6000081a40000000000000002000000013ac038860000038f000000200000000000000000000000000000002800000003reloc/images/letters/253.iso-8859-9.gif   GIF87a ;      UUU獛帋沣闱乔                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !     ,     ;  l 	H盃羶*\劝∶#J淗雹艐3j躕0菑I葤#OY%I)檖3a蕃鏙-伨J滺夘4趽鏞昛羿Q砵菔祂艀 ; 0707010005f2d7000081a40000000000000002000000013ac0388600000135000000200000000000000000000000000000001d00000003reloc/images/letters/254.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  牮菼8胪`(巇i瀐@$攵(系x狂L骶\h鞒 BYI	筒0膃z \彯俥 揔磷<O杔砎wx多m'rtfQ`僗G{]`s[`3憪Ak.3G烱>Ε牉\檌eG3>弍埣8.卽4O|q 綤蛁BS雷\訿时E嘸~摏ox╟g@8<F:鼽 铙護?" ;   0707010005f2d8000081a40000000000000002000000013ac0388600000153000000200000000000000000000000000000001d00000003reloc/images/letters/255.gif  GIF87a ;      UUU999獛帋rrr沣闱乔                  ,     ;  菼8胪`(巇i灗T,[Lm沨`哿t9兴詖撩皥9迴KR鱟^刲v&裫┌c埞43隸4勧鄲p[+螞A2&-n\m?sWruC\C{C/y6?Cnq?慤;`寏7爠煉M＋粃0}; `;6=橭庞晈7J?蘻?課D趪邘 肮业 挫!76! 廈惎r dq繠 B 青敾翃每-NT鲠"4	離0c 泦 ; 0707010005f2d9000081a40000000000000002000000013ac038860000006c000000200000000000000000000000000000001c00000003reloc/images/letters/32.gif   GIF89a 0      UUU999獛帋rrr!Made with GIMP !   ,     0  x很0蔍8胪`(巇i瀐l刖p,蟅 ;0707010005f2da000081a40000000000000002000000013ac03885000000a5000000200000000000000000000000000000001c00000003reloc/images/letters/33.gif   GIF87a
 2      UUU999獛帋rrr沣闱乔                  ,    
 2  Z鹑I拃9Z穧#坺*z涵w瘻瑝碞4垈I@'YF9cI斠T啗"蠳Cヴ翗香^┏D掸k螞蒈狅~舷G  ;   0707010005f2db000081a40000000000000002000000013ac0388600000091000000200000000000000000000000000000001c00000003reloc/images/letters/34.gif   GIF89a 2      UUU獛帋乔      !Made with GIMP ,     2  LH很0.*觀B-V]厖◢g鎞┕瞂7汉64煆厐20X$桵塼J璟瑅隧z苦皒L.浵鑙 ;   0707010005f2dc000081a40000000000000002000000013ac0388600000122000000200000000000000000000000000000001c00000003reloc/images/letters/35.gif   GIF87a 2      UUU999獛帋rrr沣闱乔                  ,     2  尊菼8胪 5孊 B眮蔙	鉆卌少炄JV#譌(P悽搙缐t+8P@臱)蝸m舰0kNg)跫精飶&om osoN,Tdac^2A,塃(;dZ#\(儳D	~璤L璾瞫梤稕,)=湌#O3S蕯K綋Q| "j剼?$5铒瘃蝮趱鲼 ;  0707010005f2dd000081a40000000000000002000000013ac0388600000150000000200000000000000000000000000000001c00000003reloc/images/letters/36.gif   GIF87a 2      UUU999獛帋rrr沣闱乔                  ,     2  菼O
￡	 \竬(&D |憳U1|t=垑瑄_!奶Gdqx"0V/拾V8$_f掟$W壛G哨&;y侄謴捶<竔鸫坑衦0{=Uq%0$剢俲E<cI -侭攛QAS;59!	HΗ滿寜I&$	>俛榙垇D_舙_~瑉 蘬`纼5_uz%]>f/a翠=N蓿爅鰴_谨鐳愖#)繞縃A瑺gbD琣磤aＧ C ;0707010005f2de000081a40000000000000002000000013ac03886000001a2000000200000000000000000000000000000001c00000003reloc/images/letters/37.gif   GIF87a, 2      UUU999獛帋rrr沣闱乔                  ,    , 2  菼8胪鄶AP`R@,燃, 泟脔`鏂嶱 髮6垼郿%0冐再#Ja撺
yAで潪粧禫2Jy<] WY1 =7~1 B<倻!2坴<ML!塟"蔼疩1┆哘Il埅=w}<弆{+翂+醒碽莳姞宜G 绲嚾煔甑L俵蕑帙鹕虂e舦9
慘60'喠奲掷qM贔9X赡鑶Q奆q<t|'"弶D錍鴪%珀%;蛳簛軄夌N０话/=K-4:N释%禕Lcq諞庄`脢K冬俪h营][! ;  0707010005f2df000081a40000000000000002000000013ac0388600000155000000200000000000000000000000000000001c00000003reloc/images/letters/38.gif   GIF87a" 2      UUU999獛帋rrr沣闱乔                  ,    " 2  菼8胪豢I  $dHJn盠埸 # 爯*B佸騷F蛙X搑lD
碋簲@鼙*L頖\CIv1o	R詺纇sB5g2iByA儎l=~: N櫃Y悂圸灁_|6唈	}.]$85篶u7阿<=稏a w3恳觼嵶57 <d[/崭弴絺n	顰鋳西$B晖 榳藠侫!U9蕚<O欞%谌保菑 CI菠蓯  ;   0707010005f2e0000081a40000000000000002000000013ac038860000005d000000200000000000000000000000000000001c00000003reloc/images/letters/39.gif   GIF87a 2      UUU獛帋乔      ,     2  *H很 A牑6b9+邨f	j"j糀崽tm選| / ;   0707010005f2e1000081a40000000000000002000000013ac03886000000e2000000200000000000000000000000000000001c00000003reloc/images/letters/40.gif   GIF87a 2      UUU999獛帋rrr沣闱乔                  ,     2  楌菼笟 C唽b	h墔▕mf爛l8傒ˊ唵鶿
8
'拣dHf扢K"ix%崠*\3+&‐/祀w銝w犄房罓NXC8f# Ihv#:@#[S,1攽#"Y >O"]R#AD"牎h ;  0707010005f2e2000081a40000000000000002000000013ac03886000000e2000000200000000000000000000000000000001c00000003reloc/images/letters/41.gif   GIF87a 2      UUU999獛帋rrr沣闱乔                  ,     2  楌菼2h嶐	@"唲g淐w'壄g偭⑧	'`_劄芋a@1L扮辤hA灁艛ey2{2g3__:g=睑]ハ沭S揜|Y/Ea\"PEjl~eI8"r墍R"^扙{棝dL	= -=嚛S父 ;  0707010005f2e3000081a40000000000000002000000013ac03886000000b9000000200000000000000000000000000000001c00000003reloc/images/letters/42.gif   GIF87a 2      UUU999獛帋rrr沣闱乔                  ,     2  n鹑I8:財鱽扝朸萪J墤LA'癰<t+亜 ,zf嚂纇cY3雏	4礲顱$Q錋嫆圭扏!
謀K崮稃亗儎厗噲墛媽崕彁 ;   0707010005f2e4000081a40000000000000002000000013ac038860000009a000000200000000000000000000000000000001c00000003reloc/images/letters/43.gif   GIF87a 2      UUU999沣闱乔,     2  gX很0蔍8胪`(~a歗 琸识濟簊4浢湰5!@,72 転Ph3J峃3浗r
胕l苋d姀穀銆哭m鳀踫8[亗儎厗	 ;  0707010005f2e5000081a40000000000000002000000013ac038860000008f000000200000000000000000000000000000001c00000003reloc/images/letters/44.gif   GIF87a	 2      UUU999獛帋rrr沣闱乔                  ,    	 2  D鹑I8胪`(巇i濻B琹r@,<6@鸣炿8洴W嵫(俋亗惞&嗀B-塪渲u  ; 0707010005f2e6000081a40000000000000002000000013ac0388600000067000000200000000000000000000000000000001c00000003reloc/images/letters/45.gif   GIF87a 2      UUU沣闱乔      ,     2  48很0蔍8胪`(`炶)恑k浡蛱株k! 0*徣蒷z ; 0707010005f2e7000081a40000000000000002000000013ac038860000004f000000200000000000000000000000000000001c00000003reloc/images/letters/46.gif   GIF87a
 2      沣,    
 2  (攺┧蹿嫵撄&恎
+韹歧菸鱃 ; 0707010005f2e8000081a40000000000000002000000013ac03886000000c5000000200000000000000000000000000000001c00000003reloc/images/letters/47.gif   GIF87a 2      UUU999獛帋rrr沣闱乔                  ,     2  z鹑I8 zO氫uCx$#`楩J楥j`)垽!U0qF絇嶸≈妽f)[7z卾W餏4騆鉬
9z+	[c寰2q}[;IiNl pKt唙]0y&敃枟槞殯湞 ;   0707010005f2e9000081a40000000000000002000000013ac038850000012c000000200000000000000000000000000000001c00000003reloc/images/letters/48.gif   GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  兖菼棓 dY
	8fk觇蜙t^XH#肔)f0
矀s%M撪rl$2忧抪$3PkM10Z鷁窑洈[4类 [^}6唡剫7.嘗恵-姂寳厵&6}WzZ 媇沨.)c.U&eR+.u%u&O%&@瞗>3挏匝<胸 母>*w9戒啼瘃蝮趱鲼 ;0707010005f2ea000081a40000000000000002000000013ac03885000000c5000000200000000000000000000000000000001c00000003reloc/images/letters/49.gif   GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  r鹑I)h.@4坈yh璠!F"D禜陆/(< >#E蔿灖挭k懞鮜揬k8;{粭,嵍映XN賡|]w+oq|k~y厈噠*媽崕彁憭摂 ;   0707010005f2eb000081a40000000000000002000000013ac038850000010e000000200000000000000000000000000000001c00000003reloc/images/letters/50.gif   GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  火菼:!@i欰Jy(!l梼l征漌啚0@A厤l 
罠,M吽6眳lL
繞覹鮞~kK]Y爒嫎洴餘d}s'Y&47uv/侫7q!-=啇'Mv[T:v塼偋%ア棁{gW&弝眳炒B U窘Di怜Ｅp埲薉	哉肿刭谯茌 ;  0707010005f2ec000081a40000000000000002000000013ac0388500000121000000200000000000000000000000000000001c00000003reloc/images/letters/51.gif   GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  勿菼:IXX@iN	y捐J来`I%:e凘鞦Q緲勲U	.氿恾0?飫x
9O_	賒啣WS蹑曻k牃:anxgV}x匫[s墏園 o+	H0噧<湠U0嫗峣rmbS&挗/B峸zT筯R0P]vB	5嬈4W渴/9媳;譾!S病玷殛腱眍镳瘛 ;   0707010005f2ed000081a40000000000000002000000013ac0388500000105000000200000000000000000000000000000001c00000003reloc/images/letters/52.gif   GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  拆菼槖纚(Y6 d	醗&歊劬 .M8-嵓搊U蝆1SA貸珘憭k/e蔡$恏I訨矂03O抋rVM兌{*Rjc X|k$	uiqv匞$z揾]s寢,煚焸d爦uAA(Ж7疊=渤/>柗汗簕捒韭膯縛侨颂臀闲岩釉罩 ;   0707010005f2ee000081a40000000000000002000000013ac0388500000117000000200000000000000000000000000000001c00000003reloc/images/letters/53.gif   GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  酿菼8郍TDh#U,怤A司R,涺!躼(膒>嗏e迳)蘊釿眣T刲
 !A!丑,饴CY凇殇 '褟 纆%y j\v||k哛T=怐晛槖殨P!D墛|r!ce"?F&&hz)_&u俇2N5m	&\|螢捱噌忏溴骁 ; 0707010005f2ef000081a40000000000000002000000013ac0388500000139000000200000000000000000000000000000001c00000003reloc/images/letters/54.gif   GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  骛菼!	`灖亪20J圖l煶遛|X暭蹱RB驣槰纉 揇l0a倝!V纓螡	裟鞬啀W娌-t)E0IAuoA&\唹<噸7a悞<919V(敊Q'+&k&3╬fo亂x'p翻4瞋祌d"'e 敜19c0N6Y[ㄋ萚>&丫&跁洎啼‵郠	橤~v 
H盃羶#  ;   0707010005f2f0000081a40000000000000002000000013ac03885000000eb000000200000000000000000000000000000001c00000003reloc/images/letters/55.gif   GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  橉菼8g`''i㈧X0犉鞮Ｄ+紫HC嬹3%)丳釯	v
訧$萅 g62x%K相|(劙鐃g}v冟^9畹餣z ld fg`Sg!|YV 嘵9q!!H^悞Y朸!bY"l╣悰彋┍渤吹斗腹夯 ; 0707010005f2f1000081a40000000000000002000000013ac0388500000136000000200000000000000000000000000000001c00000003reloc/images/letters/56.gif   GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  沭菼8懤A@i欳R砰omi8呾纴EE*埩9I訞曋婤榖j\<楹遱錴1仒"ua5AB拹秽m@N!u !J@wP唶 巪/&H%B%=4/=燣燭?[Z0n&T.祍c倍%妇罀!Vj5{'笭 =	でt/邲9銙攅>6)+>~婉 
H班 ;  0707010005f2f2000081a40000000000000002000000013ac0388500000138000000200000000000000000000000000000001c00000003reloc/images/letters/57.gif   GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  屦菼:IXX@iNy&pc喘怅祦奲A蚉啲%w^
0! +剘ダD鶄Z腐4D5赘~i梮5'^&~|Uq0~	Nfv`&H剗Q@渵h淔燖 ]	%L怹C恴+W0!H呕=0L尵&5係0z 獭/厢V:蓿鎺u/)	铙 
H盃羶  ;0707010005f2f3000081a40000000000000002000000013ac038860000006c000000200000000000000000000000000000001c00000003reloc/images/letters/58.gif   GIF87a	 2      UUU獛帋乔      ,    	 2  9H很0蔍#=H `x柪*殲鍢mZw輝7呧榠俍,銒8t峷楔磼  ;0707010005f2f4000081a40000000000000002000000013ac038860000009d000000200000000000000000000000000000001c00000003reloc/images/letters/59.gif   GIF87a
 2      UUU獛帋rrr沣闱乔                     ,    
 2  R腥I8胪[ "h
矄.,
摚	爌3(嘰&c謹砐姄>+耸!暏P U8殐M萞妠H  ;   0707010005f2f5000081a40000000000000002000000013ac03886000000d7000000200000000000000000000000000000001c00000003reloc/images/letters/60.gif   GIF87a 2      UUU999獛帋rrr沣闱乔                  ,     2  岎菼8胪`(巇i瀐憸H1 D@N弲犽0=墍q贼朏B3,B偮&y^N_wP榝猐lSH?赚*0嚭邜8p觨h]`Oce~81Vtk{P7W怓旼'殸#v,┆* ; 0707010005f2f6000081a40000000000000002000000013ac038860000006f000000200000000000000000000000000000001c00000003reloc/images/letters/61.gif   GIF87a 2      UUU   ,     2  H攺┧蹿嫵藜哹 鎵﹃
庙赚k缋|k崋腷T龗J硥|殩药砵5j奋 ; 0707010005f2f7000081a40000000000000002000000013ac03886000000da000000200000000000000000000000000000001c00000003reloc/images/letters/62.gif   GIF87a 2      UUU999獛帋rrr沣闱乔                  ,     2  忦菼8胪`(巇i瀐獀	繮 '蹻R邝-"^&劽^顑0$焸 x#+`tDa絮I徴2V薸杘"jw凥'C	钴#/贜o_	vVkbd~g	乪哋HI?G]K HE#<; &l+辈' ;  0707010005f2f8000081a40000000000000002000000013ac03886000000f6000000200000000000000000000000000000001c00000003reloc/images/letters/63.gif   GIF87a 2      UUU999獛帋rrr沣闱乔                  ,     2  菼8隠哼W! dIF&冮陆碔\D瓝7曥@賒D-歛騵T擝Mh	+襑/餤bZ锫u/M賢>x"dA堥归奯浖xI.|95Pt圢 寗xY.c杶$$//mО辈硱%暗ⅶ 4絠壕晾撑魄壬仕掏 ;  0707010005f2f9000081a40000000000000002000000013ac03886000001c8000000200000000000000000000000000000001c00000003reloc/images/letters/64.gif   GIF87a' 2      UUU999獛帋rrr沣闱乔                  ,    ' 2  菼8胪鸌E  $鈏1攑,k掌8>5矜@楡1銹	
!#pю+93PX`吶枅朆熠.坬".(Ｒ稈佷A瑙 tf6q80inp0o圓$^g^	墥$Us$F%専j0z d皳DT8z匴1歈`8^N 柟1s脩r0 愊症謉%$m%栥嘌洆翩蝂磐甯嫁吇 垖猻`%2n鵋囹7m<鈌阢裴N~錠檆v∈=&E昊愇8Ib@瞏r倲$h4犔=d銠*ND蜾殯3-PU 獊 Y呭槺;<鳳y1,殾|'k08!洙奂L赴崦+^谈q ;0707010005f2fa000081a40000000000000002000000013ac038850000013a000000200000000000000000000000000000001c00000003reloc/images/letters/65.gif   GIF89a# 0      UUU999獛帋rrr沣闱乔                  !   ,    # 0  琊菼8K猴&R瞒銏榝抝麉/VZ[+粖羚	)㈢(II841鶬8Y钳I"+,-$师O实u枹鞔S=Rus#1`24"7{}9*x-"枀<"\~6ObYウ.XJD8４>SB腐Z娂剘牌桥啟2w,訚2袡f)"# s/摒嵯; 闘 
H盃羶F  ;  0707010005f2fb000081a40000000000000002000000013ac0388500000117000000200000000000000000000000000000001c00000003reloc/images/letters/66.gif   GIF89a  0      UUU999獛帋rrr沣闱乔                  !   ,      0  酿菼柰;A乣噂灇0Zh+k05厦*莩a{ 0~澿$`覚S槤橛婂h伹	<莌鶄0
HN`NMヒ;p1Sj~妵^憭b&	Vgy;k$n`[P棢IVTY^瓪V	R猐+F櫢緒偘i啡喨琿虄樢<s"圮蒉哙徕沅彐玷 ; 0707010005f2fc000081a40000000000000002000000013ac038850000013c000000200000000000000000000000000000001c00000003reloc/images/letters/67.gif   GIF89a" 0      UUU999獛帋rrr沣闱乔                  !   ,    " 0  轲菼O*AB H%嶳1ph*$$櫆i
a;r鐯弰嚂PP 寇燜伵	"3T
9o嫄薢Q仦OV槓c!L辅蠙滬ro)!tW=儁6夿-|Y $棛#洔灍w2`1HJ噥N砃52q仹)（*3r)z9-E綉2i2掏_@MO恐欶A搞浞貭)Sr落b)诇	PV 
H盃羶* ;0707010005f2fd000081a40000000000000002000000013ac038850000011e000000200000000000000000000000000000001c00000003reloc/images/letters/68.gif   GIF89a! 0      UUU999獛帋rrr沣闱乔                  !   ,    ! 0  损菼晙突鏐@`擌潹乣&陃胔祇m扛わ瓺頓J(琉C (財@?)硓@燰+1
Z箋
;r+巁誥*冱肿b#d亂['倆\厓寜唜d'+嶶wp憵ds0ok^n洝搻k`擷%磭	K3|'R燖m/Y朗`臀3 胖裶噌忏溴骁栝觌祉頤 ;  0707010005f2fe000081a40000000000000002000000013ac03885000000c0000000200000000000000000000000000000001c00000003reloc/images/letters/69.gif   GIF89a 0      UUU沣闱乔      !   ,     0  8很﨡IVD帖詢鋶(挙墷:稒 蟭=硗Y窭&润Q;	Q'葬tM尓恍焊9,彸鎠ck
h4n櫽0>/蜅雫}|C乴n2zix^b妺K怗挀O晸~殯湞灍牎ⅲ	 ;0707010005f2ff000081a40000000000000002000000013ac03885000000b9000000200000000000000000000000000000001c00000003reloc/images/letters/70.gif   GIF89a 0      UUU999沣闱乔   !   ,     0  ~H很菼珴伳藋轢坕b	|J	C,蟭l怳鲮8<烡|O泡憳d,妠债盉弖lW3櫏FS9猄*Rπg<荏憑zu俽凾唝t亰儗厧噽~摂晼棙櫄洔漸	 ;   0707010005f300000081a40000000000000002000000013ac0388500000161000000200000000000000000000000000000001c00000003reloc/images/letters/71.gif   GIF89a# 0      UUU999獛帋rrr沣闱乔                  !   ,    # 0  菼%1aB(I%bph
I歫凨!毈o亇 蠀{"淣@伄V9N!T2$憢jM*丱NO1腪bMM
1眉＂Sr{?剠1j6@*z.)T#u(仈"16P厽燤*婩惂=獹━癇=x*揨?}.	览*=p)b{m(Hd彇C)f{台*^{菲罩>绍垅巨,#0:轻1懅]貔+判铢0@N絚" 蠥^檝- z0%撉 CI菠蓳(S獪 ;   0707010005f301000081a40000000000000002000000013ac03885000000c0000000200000000000000000000000000000001c00000003reloc/images/letters/72.gif   GIF89a 0      UUU!   ,     0  憸彥{S娽獪H儧U\辺x*v秓得8+0 稘╓Y兩_R 岼忰鷔b%麟齨免+H*僬緳襻(虓躻窫轌鱣!鴓喿D榅罻笚$╄88x蓯閣h*:JZjz姎授贲Z  ;0707010005f302000081a40000000000000002000000013ac0388500000068000000200000000000000000000000000000001c00000003reloc/images/letters/73.gif   GIF89a	 0      UUU   !   ,    	 0  9!蕱僸F.皸总請%墶洐j揲搏!-譻岟巹癭丩*椞	  ;0707010005f303000081a40000000000000002000000013ac03885000000ea000000200000000000000000000000000000001c00000003reloc/images/letters/74.gif   GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  楌菼;荣鎞 &庡uz6-祐秉~4鸣庽窚.(	":&(eS叢╓+M鑪﹀豺郐螭麶釐祭鸋0)7x	7n7sq7啌y槂z	憮-媇 廏辈炒刀犯购- ;  0707010005f304000081a40000000000000002000000013ac0388500000122000000200000000000000000000000000000001c00000003reloc/images/letters/75.gif   GIF89a" 0      UUU999獛帋rrr沣闱乔                  !   ,    " 0  橡菼'z挩慱bn璞2琞鮺2绘.7K靉啍襢t奕I3D謘竍Y摥╇h洳1孽N^毂=F祥4撪^石瑆~4	亗&s唌n~4峷y塛vq"j"ib煒MESK"g+{G癐U胆*PB4埦惓腨Q剎蔠脈i谢y>|彐玷殛腱眍镳耱 ;  0707010005f305000081a40000000000000002000000013ac03885000000a8000000200000000000000000000000000000001c00000003reloc/images/letters/76.gif   GIF89a 0      UUU乔         !   ,     0  m8很	瀍懯顺鏃G仏8憦埂峑睒堵奒/=7O0 K"拰 dG鲫1u户N:ePj生紺p)(浵2!蔿l穦w蚭觖=瘲篼oP們剠唶垑妺	 ;0707010005f306000081a40000000000000002000000013ac038850000016d000000200000000000000000000000000000001c00000003reloc/images/letters/77.gif   GIF89a% 0      UUU999獛帋rrr沣闱乔                  !   ,    % 0  菼阑俅yd爲h(╣-G˙探6g9鐐,鏊絙囧Id7旘V2鬞B.1	茵苪1美豔^"HPXO兮死C胺蓅&$l~ZACA~巹^d%yU2厀倷 ;p洠a.獝坉N+W瞇柟{3粫竉o┉暢  m娒qs犛平灺诒纃⒄_胎C戌摷锇l"[榈-猴嗰-符8U痄* 	沃-沧瘣巺"C蝋簈-釶X祄铌SA菠蓳(S猏刹ニ0c蕼I肠 ;   0707010005f307000081a40000000000000002000000013ac0388500000135000000200000000000000000000000000000001c00000003reloc/images/letters/78.gif   GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  怵菼3蛠裮痢峓N釾灗癑m鳍1总树+瑇$訌 !倪髮⺄棯r箲e囒 コha筿'h7r撁汚搑#PS,v#e({4e#^.xp(X}jl檴9r#t殝oz爳o #Б#禂巄化柍〖滽V拾‐P撍采孕肺󱨦3绵󽽨+铜w3杂咒铛鲼 
H餈 ;   0707010005f308000081a40000000000000002000000013ac0388500000154000000200000000000000000000000000000001c00000003reloc/images/letters/79.gif   GIF89a$ 0      UUU999獛帋rrr沣闱乔                  !   ,    $ 0  菼%1a-侷U(R壉(j ci痬Ehr~Dm锧T疎7肞8 +剫	@JAn*>槵P┆|q;)Zm,〧a崴X`")r(lc^1,n)S唲s)卽攓z {櫆洕煓！)Ζ牜洜'{(厠()=紹櫣'S}櫛' >y╩菻f'dh&1l9-1'W"	$LNP鎣#肎2I"貊'鹝齖薴鼙u!
;mI淗雹艐3j苋保  ;0707010005f309000081a40000000000000002000000013ac03885000000f4000000200000000000000000000000000000001c00000003reloc/images/letters/80.gif   GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  ○菼柰^i甞牪版Rq]5< 櫁V	偫t摂~桞I须 /丷擉$J	4荬嶾璖L摱1梹%{肣OWSグ[s@ 4齬:8&Yy E唨墛1 /jf`櫄h湕e煚o灔nt▊～i洰脖Ж串购患骄坷谅媚# ;0707010005f30a000081a40000000000000002000000013ac0388500000175000000200000000000000000000000000000001c00000003reloc/images/letters/81.gif   GIF89a% 0      UUU999獛帋rrr沣闱乔                  !   ,    % 0  菼e*A=B U(VH1lh
设J*遂Kjs秳満&`	 .Wr僯q偷H9釫嚭狝颬瀩'柜:&SJ*轟翷Q3r{t*oS+{3Z寜嘋>3 *w仐剘l3灑2湨瀤—(が*ゲ灎2枑)6P}扞E柣*嵖)俒LDh)蒋 $前q":v貓"2o3黼(Y")锲AN燞	$B蹋p.: 漏y%#舨q!C
5I*" -赡淚肠蜎8s贶3Q ;   0707010005f30b000081a40000000000000002000000013ac0388500000116000000200000000000000000000000000000001c00000003reloc/images/letters/82.gif   GIF89a! 0      UUU999獛帋rrr沣闱乔                  !   ,    ! 0  灭菼柰{A乣噂灈1fh+o,透P醲{!a8~潬餈8!9蔱雁棐)号Z摀甒\篵&YX灈(	1Qv<.z-ze6a媉峆,U宍}&Gx t&橞M6khf憅c畤揦k恫$功B即K堪X~煛:樌BSΨê^棕仝圮蒉哙徕沅彐 ;  0707010005f30c000081a40000000000000002000000013ac038850000014a000000200000000000000000000000000000001c00000003reloc/images/letters/83.gif   GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  黟)	h	x$耭瀫悎 R|,2母6许濈恍霔1Aa%!|($"該砠0R麧@7^蔢>諱远澙8娮!`^}"g&o?噳}D|"j'槞'W尃摑C燗_?NY8╩N8倞┓2" F 絖熈谴簆:儱yc'l痌# 1洀1摩:|6颱!蝮嫂詸	鹥儭 	[劝∶#J淗雹EE  ;  0707010005f30d000081a40000000000000002000000013ac03885000000b3000000200000000000000000000000000000001c00000003reloc/images/letters/84.gif   GIF89a 0      UUU999乔      !   ,     0  xH很+I8壔鲘VH炧啟鍶j 洗p	t>#`洧
摙眹(棌趷R!肢#徽/xX+.w氛b骩;恐﹚h~7鰪ql乶僷ef*噐厛崕彁憭摂晼梈	 ; 0707010005f30e000081a40000000000000002000000013ac0388500000125000000200000000000000000000000000000001c00000003reloc/images/letters/85.gif   GIF89a  0      UUU999獛帋rrr沣闱乔                  !   ,      0  茵菼稭㈡}SX掑.s3W(暆棨mv"纇聙虪PE^ǹ{ Z-\殽峎e軾>畄礞斳瘴製鬂漌镝}n>乺/av噒b僂qR妜@Nt%B孫%/@ 	 堡降Ｄ摩壬@樜欱用薔7邹栝觌祉铒瘃蝮趱N ;   0707010005f30f000081a40000000000000002000000013ac0388500000129000000200000000000000000000000000000001c00000003reloc/images/letters/86.gif   GIF89a! 0      UUU999獛帋rrr沣闱乔                  !   ,    ! 0  逐菼祤虯裶2nX'HB玆)L跈虈y~呷浪峖撠62-$;曡$M濺 烛b歙j*迨賋貨.E!挓橋唅qp.Q*tY[|y_bjo'hrnAx3zp寏<0'帿妵=瘣冬(槐:p埗p÷┝恕'苹#薧-胸业胤 哔菰刂鉺咫铒瘃蝮趱鲼  ;   0707010005f310000081a40000000000000002000000013ac03885000001b5000000200000000000000000000000000000001c00000003reloc/images/letters/87.gif   GIF89a/ 0      UUU999獛帋rrr沣闱乔                  !   ,    / 0  菼8K咑}尷p$(dlK堣{碄F圉彸	UQ*5Y1\s&圴"-Th%+恐笒%R8(勁┙;g山鬂拉#F5-UU rQO W\w}--l#w{摕nMO#[bo#re惃[奅橪J+m痾澤倧椢#＿浢i杩闲婷鏪3{樦$7啶庬欱o吆>騖慒颻;蒵x缿 #団qc*閆e疲.kR}8 E栒寀醙LF谩駶Vb !1Ufr`愯湴頥淍=禜wH芓鸍冬俪h营]硕穚闶滽. ;   0707010005f311000081a40000000000000002000000013ac0388500000141000000200000000000000000000000000000001c00000003reloc/images/letters/88.gif   GIF89a! 0      UUU999獛帋rrr沣闱乔                  !   ,    ! 0  铕菼晙头2t'	$噣噾*!/鬕T顩`ㄔ2J	.墯瑨_P5^G\漧;?5U曯H&!=銱e酢橞LS;%_50K]w俌! 剰c/i擽JtB湚倅檊5q弌嚇l慳枒 巖ー塲7唘r$2~  墳佳35$匈謓梢% 鍒襉/2峦jY纱 渷H盃羶*\劝  ;   0707010005f312000081a40000000000000002000000013ac0388500000114000000200000000000000000000000000000001c00000003reloc/images/letters/89.gif   GIF89a! 0      UUU999獛帋rrr沣闱乔                  !   ,    ! 0  琉菼諃蛍聲衠聛孿 N	闕殝珿<脏忄)S`啽ux
i选垟窒\b敺3V|蠆tTX9堂v3爜G7玣a6M鈩沑{.ev$k m}c%B#悧r.枟x欳巜噡i獎a#悍.緝懒巧 嗣咎(夜南貉勤圮蒉哙徕沅  ;0707010005f313000081a40000000000000002000000013ac03885000000f6000000200000000000000000000000000000001c00000003reloc/images/letters/90.gif   GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  ｐ菼攢突撙乨箟fJｊ㈩似騺x鳣 
1堭}%F饟^找$H	4I巡
掅}鑦緅D2]>凐eXmtq xevtzc[~	tZo$嘸dyNPt<;45*&$渤+洞t患骄坷谅媚牌 ;  0707010005f314000081a40000000000000002000000013ac03886000000a0000000200000000000000000000000000000001c00000003reloc/images/letters/91.gif   GIF87a 2      UUU999獛帋沣闱乔,     2  mX很菼)柰A繻鴈!7&	誆n燇jq3{蟏3z揄嫗扃K6Vd.iM7*処$O檜vj鬲騨礎钯淔_誱鲔]q黒^/漃P7"}噲	 ;0707010005f315000081a40000000000000002000000013ac03886000000a0000000200000000000000000000000000000001c00000003reloc/images/letters/93.gif   GIF87a 2      UUU999獛帋沣闱乔,     2  mX很菼)柰晾]鴈!7杅QB9漩663调澉嘛.`
$iE梔.}M鑃3蕜W徽昙=jT<暙蔿夯胒礢.韖鰘錕'(|俒噲	 ;0707010005f316000081a40000000000000002000000013ac03886000000d2000000200000000000000000000000000000001c00000003reloc/images/letters/94.gif   GIF87a 2      UUU999獛帋rrr沣闱乔                  ,     2  囸菼8胪户 7!鉞楪槖;_!嬄7躡屹踪㏄)(*(2H/鍏)BLxd漙S^藋旫κ晀誃x弹 椚R\ mk={p乕y Z/},晼棙櫄洔潪煚、￥ウЖ┆ ;  0707010005f317000081a40000000000000002000000013ac0388600000070000000200000000000000000000000000000001c00000003reloc/images/letters/95.gif   GIF87a 2      UUU乔         ,     2  =8很0怅突`(巇i瀐l刖p,蟭m選|_
罓pH$蒷6+獎 ;0707010005f318000081a40000000000000002000000013ac0388600000069000000200000000000000000000000000000001c00000003reloc/images/letters/96.gif   GIF87a 2      UUU猺rr沣闱乔,     2  6X杭06嚼PlC+7m槧駚鼙懞蝨m選|罓pH,廐澦鎍&熁 ;   0707010005f319000081a40000000000000002000000013ac0388500000118000000200000000000000000000000000000001c00000003reloc/images/letters/97.gif   GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  硼菼8胪`(巇i&D" b@,sI枥櫷=J鈞T姾4 &纮 9鏓狊俫T纨 狟"祹_*3謻$葅9}8乪凣vKAWu ^2iD@I渹g2bc潳1Zw]:榣~oA^A并垍穥:秔A:W1歑QsS&噌忏溴骁  ;0707010005f31a000081a40000000000000002000000013ac038850000011d000000200000000000000000000000000000001c00000003reloc/images/letters/98.gif   GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  署菼哀荟崱6~ewb槭栴掌誏O秳<A聮偁$H糂0	 ,)膧<A 5$╩縺(O欁訍>!眃}AS埼KrG>j!mZqHY#弲憮晻!挅M槤"r~p)	㎜FKUyz\<i`_究Vc菏紈勎k+	ee7沅彐玷殛腱' ;   0707010005f31b000081a40000000000000002000000013ac0388500000108000000200000000000000000000000000000001c00000003reloc/images/letters/99.gif   GIF89a 0      UUU999獛帋rrr沣闱乔                  !   ,     0  叼菼8胪`(巇%DJ ! p	r,F枥狎剄9鐸罙  &	酄6A鄑揥甶申惱*S泂櫌,p惽!僋藧 ~B"0 墄 v0	Sn@Nz9|@嶪_2\ |]l1XA)0禓\购^瞔(枟&醒矣哉肿 ;0707010005d8ca000081a40000000000000002000000013ac0388600001ab3000000200000000000000000000000000000001900000003reloc/images/newlogo.gif  GIF89a4P   &&&VVVvvvⅱ⒑汉适授谮觋222倐铑頽nnFFF瀶妸鼎bb殮毑膊蝌>>>乙


侣脉鲻JJJ抖畮帋^^^拻扲RR纹揪懂...井畘~~jjj666潞治妻拗径掇种"""猌ZZrrr贫抖忖鈠zz甆NN***灋瀎ff枛:::懂瓸BB破締唵种挝纹铌軎Ζ潞何破揪舵骀种治挝揪酒破治无揶︱蝌抖镀揪凭镀侣戮菌鲻!Made with GIMP !
  ,    4P  䜣們剠唶垑妺實帍悜挀敃枟槞殯湞灍牎ⅲ嶪ぇīR9	炒刀燲9L芳骄考OC'琅魄葰))S晌闲袳99MOρ仝郗P99X避溴鏅NY2'CX3沌篝鮿	O)''頧幦矴癭E&湴`b	畈0I0袪艐类"煽B/N;龄	E(S畆$E?!za笁'U贶箟b<6<4G!) 罻懅缨2H洧喖+I)辕O燑0	矉湗蜌C	(﨤s额'-殥bW)8j襐
'&)""c嗇清滀{y彋'憥`侙/卐,X 伮d权滇=悡劽艙4葿'rT丳%迷罒崴攼鐌G汱缮媆鸑8N^贖曪聥G塉嗴P╛縜$(?A焇療渌G鄜8`C	PB`p4O@懧i魈0H褵\q5饍%耡JT`(  QDBB黀	F╬
@P'Ql<p87H憵
9v L
:Ｑ?G CL癆<责	$|餉\(HCXp	霡 (I霡@斝D<`PAQ銦@j8@CHOF橪RLC!採脛P\q'	溹YL罆奺i@  !
$A 胒陚4燻D*P鼱 
>d+  80)dA蹳C H>IuU@aA漩* ;8`耺瀴$bP@≌蛛 FPB龄墛(B	6磮	+<\o 欜悓d5HS'P餈2@D%8!Yp柭泼C@ 銪怖 4 猯饋 秽ぶ0K尊駾$b煹 U捘Y>乓kF 褋B椥粲YФXm1肐WH)+?癙D惾'x H衇8勄爦宬xjt >`弞虾'T9R y('"鬐紌揠 @妈K蹨帤D(纖熘11佹䦆Ka來凞衩H/H-湫B;Pa@萑 H 4
襑吩t >]媮樁桀d/PHS6`#@璣圓xAII@6p>K
$楙帘	t诈8提 P|$ず	L>)@\pD!
L 1捫5晪虋瘤%;Dd鄖呫*
p-:蟲B憾" 臞鵃/H ,9(坈;僁:滁W0- 佉勂
垕唄DF& 櫖〆刣汘 惤玻厁5pB讛E.勦^"箘D@栦2*> 0Ld慏F帎dBD鍤2爯綯x饛8"罻Z`""@!劤t槍@b惛襐粑CA0X`Q<q '-灎?釄'!檝PeqX`闵幇茾 +垿慭4暡J 繰 h4 R匾墇1憢liKWh
(寠@峊 瑎 A葊#T`儨4蓤F*屶8F\aQb計*P "
^耲妌繴%BJp擻爞?9`X凙u"?3 *VU@X鈢@0悞暗(`<嵤枑b>
$>2趧晳N'+B汝	X@K_
?,韇!j皜鄴 D旔2蝉F 羳p 斷 #4澆8楼PD O%P
繴 P 2P諉 ".V皞
rT'; 皁! ︷R A4礼1`BX  倛 l褉朽,荚,V:翺堷-ˋ郖;2H`饛' @剥 偃<T嗦#唴o' +X訝朰 鳣  q"nP +ap顏祪 26堭)鄝
 ]蔠	b-煃t!j皑 薡
 <"8+A.z衋遤X	:虃欟	豘hy@!$D謐奕$2[鄴臕A!菍1瀩﹣i S5l錀襽1v矐C#鐃瞝[偬覇u坘}kA8 匆@	岕9`袪trB 鏑-@坙jA%
娄(m 窣(`A劵疏p暪郈薫皘@劍黗(@樑- z25l@釻燐堶 迤悹恌躰*滑7咢诀}繿NnD6*"亓慮ID釲CTP媟 .u+兄8氛C 
阪:愮躟稴C0澜@羗-䦅 b3@ D0D孭1ik瀌63J 曈VW;憖MD 檛虳 6冃<r+茑0d
 7h矒iInf2薬u廨嘀 >@ 剙徚z 凨  軕cAP葇另P`| F﹙#<&呐飀x=爎 \=(磡,WP&s"J 溆APocs XP帒E@ %PcD蕍A +莖㑳鏥喞1皐$@:衜 @l盕失} 恉 }襢G1K蘂凚鑔0 *pJ4~B@(@QXC#崖縝凱gG+T* 3酕O瓋KSx p啽v	(嗩<螦U3儀b测9P`J#!+0Q劎|	0`+`d0 俻{噭儼 +賤dTt(峰2oKT儐pn唳|PG劦葏荅O冟%杏l杛h貗磮)(咷&f@鄦)r驸 :qP漳鋱"戆'HL: o/W印'`.ep0豍穣Vrn
 [饖匓怌6@	GD皨inF'-虙B溢7砋 t-wd,怌4(,鐁 0y9筳t磘K葇:;b↖NN00卲魋苨z1( 04岰夾6,: u%练wI&#eu`V卲 亽XR)m68姄貄q9旅*-S揥嬾[u,爾勷C宂 RZ賣6U);賚罔:酾槅7衦hhSj坧'衁喞=G嶥櫷鯦UQY0豯! u睻)聎d7暍H剏 r扗@稇 笅G&縄*羾椄$}, m劺[@淕Rpp{wd緣w8朑   嚉鍣炾i妱礉 鄘暐Ct!l H 塏鮎1  Cb=燛5 1遒傪+0Z烔0蒞皽叻 聓馡+鄵殲沟儯$-Xj?X5墷槀J 2z潅+@炴9z鍓拪`濎y3Mi舃個幜 !, K.餔W@牪bR5猭嵐瀱皭'  @Z棄悈廡鰊D
 1w笳戦)}
桱@M%J*!P2
!@ず剨@)悾;簯^$>淜*& @tm勑驉 腝@@J~澵D'鸥 擹6( ~j〾@@ 糦p;"r悆	-,p, w2毀䝼鄆}湁總& 赨 餣▏p 牄'`s卲0袔+ &po雜/槨J)@血A6傪曌跒{gS载\尸q
 %桪z"冓!`掹W[檞pB  蠘瀺,@潢燷
安, 纜*磬伅啺/粣2T悐z棡*爁a)0 +D矗矁v氛怓`倷棝崘p必8楆﹤lM袀.0UW;娰硍F@(牫2箕1Z⒐榉酃穻@=@枌@{^/P N 偘8籈Yzx90)@ p'!傂趢0 9K`隊瓍 s眾b棬 'R4呗唍J@u鑚穽uǔ 0
 悰_坿陑A焺紝0MZ 獋Y剳N )燪)： @z8	繺 6o  x/&b?W侀牘&椚)熣6+趡箉q嫬綃 6粁 .竷喱袥>:0氘幮'uOIH=1R凹隀!p`抄C觿>冒h2JJ跨瞷G爧%J4P|V^B_鋮"瓧y退戧'7hm*l鉰3唌%*潓┒闄(p}2
羾5c鑘珕P喨1-冁J&pòSl1PaKP牥鉆y[+瘅柊汚裷6 aеP(zΚ20墱6 K	 g'j炻lL紜餾WZ@秋V聝 4惵|\g叁篎欝Sp/廴!秠屽蓜;丞0鰐铺 QB )[,稤r我:*
悇毛灥ㄋvD牫lyv蹋壔r蝗夹;/媫蟣毜5庭0脙 +L磬$捞$〢抃蜬$2榗I/,  蕶偶ｉ﹢
垏倍,zC藪PAP*}卉?茐1璽-*磺弍qu黄0 脜;p落,訕⒕Ew抉毈J婡怞> 娜J俐皩<絴y(兀~搥苑4p厑 ?+辙抦  _垃~]匑吸欥襄榱辿D;m#I3桇讵@	笑 ZD46& 镉H荚汄撙穮`I
<}&:６潛0jua6糡章藼HＱ婐偑h虥=j陾沕趲'翜灕]疒竍個晿L診子櫼嘉咬NG<氒优;皾]t W6	炧
摏})<	蒪+ 0x喛`澼W賳+%*碂L竷p哱檰炚HI簞/6z鹰=紻p 处-G叛%jG<`Y;吾榾O[⒌|]§<FP[濁夃尖垹軥K裊^」,廨}搂Zf0,8矘m毄5@撳 RY卵1潪5p 蕜惵	<鎺*⿷灑 矵n=鼈  唥官╘錆y缃(V楥﹪Q泄'鄗a豶*K鐕綟4﹂)藌簬珶+)\綀(_豌`'*(<閮(5k撖嵿,绣個%z8G~頎幑	H肬PE;愴k	 BS9皓俙惾頎*V 2J|忦&安隒; zl錥NN+援吸.'p浶^	(妳 !矀;镢p 儘竌'0涽袊`雉图ｙN *w=;惽O怘ｓ綥褛.莭淹薹	<驸儉蚍令-3當!!1齗+響鯮Q!蠲崋瀤1P璠X亏烎M??透杸磫褋&崞囙颖-罛Y+"癬蟮_y柌6u)湧帆P 镻綛g恢I&2副 \鳭熆彴j膑嬂-騤0稃域s喩觲 鉋嚝L伴2~魈ㄥ 侊P+P
渳_邿窕餇嚕麑P)繌p阤;墣 e嫌劄軃鲤7HX槰坔鉚鳫e湫C腵寐Q"皹円C耨Xh淅 毴驢0惇K瞏*毇鸋B醩黽沊C▽,渏D佱滿(srA鑔!#滒的猬垵澁xｐ瘪xDp#d(a廱鼉チvT0 J5*Y"F(X!R伆uL ;母&蛳芇J-櫝"Ur押敽`热BhF┤A2$G紇 hf蝘*PEi鴃 ;T鞗詠臕 B!珢嫳hp∴A.0>N*C鮤碀>L颢3鍑-5淁X櫾h{癊D樼'揀麵錎態O1魟 ,:ee$Pztx菺6姫M屲?览B@UXBt罺桖汛j.礒(8馣茹%k^!腉Nu毜%9hI鏏F变赽F鵷歡+劣u案鍌1x:"杽P薢,h3"v)-袃b鯽'搚20@@脠复'<袂D厎'!z扔j k瑓嘹#镠裰ZJ.意悗塂 4d楬v叏 (--阞辱%0鋚#渻01DjM鉄3飄圃"Y9eB杼y鶯4>\F;h9&y)毄 V4F#C2だDX偀B8# 
尓e2痊礊犾変@\v櫼B凱⿰棽) W睙F3脈d瘢Sh3(*毼4牮*鸷(xv
砲w 佖曏8Z锆镽y("XJ餙洘N7/薩{2;R,瞰!穻d6綣-Dj陈'蒪孩繗&p Lc湴D6唿i7斃.%责.惟岳(% 呅J/蛅訁 ; 0707010005d8cb000081a40000000000000002000000013ac038850000002b000000200000000000000000000000000000001500000003reloc/images/rc1.gif  GIF87a    槝,       
D~牗綘憼  ; 0707010005d969000081a40000000000000002000000013ac038850000002b000000200000000000000000000000000000001500000003reloc/images/rc2.gif  GIF87a    忍萨,       
D~牗綘憼  ; 0707010005d96a000081a40000000000000002000000013ac0388500000087000000200000000000000000000000000000001700000003reloc/images/right.gif    GIF89a      !Made with GIMP !   ,         L審┧`N-腬;辻Y殜l{简;6ㄜzv顉锘艂6 憰8覓J抝-熑ㄔi铰L噩ak瓁卿9Q  ; 0707010005d96b000081a40000000000000002000000013ac03886000012bb000000200000000000000000000000000000001b00000003reloc/images/smalllogo.gif    GIF89a V   !!!)))111999BBBJJJRRRZZZccckkksss{{{剟剬寣敂敎湝ゥキ档到浇破莆挝种洲揶珑顼镲鼢黠珑黠鼢纹浦挝拗昼揶降淡ゥ淡浇攲寽敂湆剟{ssskk剓{kcc江档ZRR单ZZRJJJBBB99911scckZZZJJ)!!J99B11!9))1!!)!    平单湐剓scZRB91!治平淡淡攲攲剓skskcZRJRJB91)1)! 纹江kcZJB9)!镲琪黠挝浦治揶昼甾浇档淡破綌攲寣剟剓kkcccZRRJ99111)))!!! 揎黠溄鏲斨B{!c J轿搠s溵R勚1k螌R平物   ,     V   H盃羶*\劝∶#JD琛C3j苋便D8敻璞ど(偰0eC蕳0cn麴!e贶蓳`E(诔≦e騜危P>0f蛿)i4斷@R;p0E閿Br 
-TX歑bB
$襔|甓疞4:R)踏迨织c鉔慴聥嗧.盇o浊5>傿F壝O;DX剢蝄?嚍瓛2 !茧炲{/_谌逘 -鬇bF菀)^l<9r竼S鬇8A4欗辵輽籗 |+诀~T瑔孟岌悅&凚%靪
ST柫v芭fQH漸@逹?&辺# 侲)DF	^藹殌{贾Y#楡聝FuXP溻U&h袛l唨嚿@c
)`PF"e=仱Ax}
灂WS鍹	e&	_0檛H搷!#d世
i寪 	侌A	Q丐f峚颏d]Q牧TA)淍*T甭
pEd嚔0B抁@A"^牘匇S2 倢伣纼.1A.酓:倝TV	D`;@纮< \ 蠽P菾獳%F
攴搵gf啛/\C-@餈8l雅脵柁Pp邵n`駙(`@ L%@撩谾p,>)g滖隔\0A.54鬇醇@>E廥塸 'b ;酿=醇r埱a梆等+L0y ┐0垕T蒵")H`Z鋩l  L郋]&H檺焒爞<酿FZ钀磊mtI0>砝銖[媘qn抵f9禩kTr]`噔搣燗 Fa @ ; Q,翚5tIN睦 pp`囱
4詠G 鋸7 諶皃C\K@鵌 鄕hpHF!'L%宍5斿$0@ ]@朕w捡)`溂	T[娓饭	痙揧袬袆*)/隒扏@"痢纮府\p濢辸聟`藌蠐牴Y!䱷k5g=Ny0HF*ㄩ\崂鷮$唷X妕7<廦纼0@,.虥阵 粜{蔀國@痲DI\40癉倢AI0@H- M	Iひ0樴
,D 寒剣恄B0階:d%@亝Hp侰d;2 姉 椁4盌@惵#擛H<怭侎Vi^墕睦 !*珊譨騵a=闡 s尝Z碐荙n#煋俷歨偸){bP傪埀K#鸩Y0伌Xr邤 o(樭!F#\搱是I{锄鍭鋱J:J渉Z儦灑5&5仼 3nv 篅)|!K湓$`捤gH@l挃散f@A胭 檍(9'7@P4熇(@BYG腹.	*0R
r鈦魛 炑拃覕?$让(嗉	周*睲娚u= 23}$:/啹#挬 pH &茩b襤4菮=*爴翎A2G嘺嫈C劆D芓鴩|H䜩歏K3╥EH趙V*RfB郴l`般馬 8臌抔,.,c偎`"T{5日&8d篮艹R2貸	丵{廊6棛"M駙^狜
e悜h厳鄕x杪 犥	 ﹀,藛 P牕潕G鶂
t 紃昛D#楛尿>孳`
鋋8鹨欬`>])X嵍[  嘥頞@	,俺0E(@-設墁')'T蒊爏U[/SE缭<e絸匫*A怭 坧>IY竵&K.霼9>鈆O俁H@8Z	(T W蹫\滦L萈JVHa)/宍玊慐u2阘8%	鶏"皜`哴(們4pH6縊Il皜j犎r舗ANY-m) 踐(\"u/L┢&嫞鸦l8 	$i|@&!Y评p 槑沱o3K8夼鵻鴿rk∫z@'萔x峜B艝LIqiz營罶pRH#)PP爜9E*kHA賲#詠xlN -
0O(獩0>b<瑚I*  仹萉hg炇	鞓|k
朠Й w^
蘲暳.=矉@"罍烰h聾X+:狓d>傽&鸷#o `渹,溘澻xN9	<嗳Zn&P摫衡棙鴕ji塭"_2X	$爊漰恒@>!袄^紝	蛃膏鄧(-p$;,=A ?)	(c嵙" 0C]>`嗼YB .t亐]聻扊檭-琻.0Rp 貕䎬礋9秊絛孳'泻鬣BZ} 谸WC啘苾aR妗|3^h`4繬俤Ho b鄒3dH骁j"wk$=u矖9 A誄3鲋gP6$ 3@[173珣e硴v馫羶m喣b 嗣 	` P`VF 8~衼45 z秡l;	怴'T繡QZ]u疎插 吵u:刣噋bp,9@\繹F 1e髐c qGP袳 Qo;9繮=剓63'x面s褑  禖1ua撫 C疌H\`b` 	鄗Hp(j 7C@ 鸵8矲w7wt"T"-4h袽2^g!#HK廟.3`*倾>$<>P  r靤IB6|>葀>0 v,o粓亀蹸-椮=Qf▊FdP嚰1幥Rp!%*".wHIHG U5 痛[P儭m鱋皳 烈屢u D)豈风 hh煒Z鐘)p蜧Kp1pvT鬳2兆>1棓.B6岠w?]薆]
69A菂蔘揵鑬A藈@O"?b HHfb@ @仄嘗賓髪jRp屒S 餭:鋸
 h9D~xeXs8rDQP"0^ #( \ @~	rw H|HH,|Q+>熍~nV37栒儃需壺鴇!e噯>Q毉実~Y ~)捓 b4HJ@Iヒci諞痼;2
 &x峂t >Q欇摀癖e%  7"‐凾H&s鉧浓袠鹬z爾羬69/奝#gP颽"鄕" @蜹`嚢[]pb'烧:0=5J sG^c鵀熲5酇i[$N7*x<佋阾GMb糀r# 訉襍0僀礵l毄a扼恷亰t1 颯VCVA@奷!馹O貥腴袎	1<憪浻鮰Gid $>Q2癓_f媣0<9  寡y@0o蝎A砎*wd6*w旉胓忊9@(z`辀s`婣嗒*挜磤穮應囆,? 回灝乏#1鬦儫1JSQQ敐2" rq";p郕<闘銉$髣/c 槐 蜌m礢"+3╒4#K岍黙䦅!)鈨D0F*;蛄 QK!GX3碭@碒{惔D珝1|[U5R0#[TuA瓓鰥猎-#怍q'(憄r馫猄Wlyti>跉郒6玿巉+!8乽K禇槖qX$:A>XB3`窹z"槀i %W$ }'SF)螱oh驳1)牠Q*JW0;誮皌%"iR[;セP攁篜Z)鞍4券浖_#Jr榞偢"dS%嫿b;#Q@癳Gk# 芥 2b@嫺v"Nq9砍1b#	w+u忡哭〗AA&BEr'讒罓憄&P  p斯!@J!L咷u駵#$	刣#)痟# /!A9[谩q晬ッ,2#陜> `朇|腍| ; 0707010005d96c000081a40000000000000002000000013ac0388500000082000000200000000000000000000000000000001600000003reloc/images/text.gif GIF89a       QQ@!    ,       S剰┧M槾V勣\蠑ub 怗(r缓蕸5)%?}迱x4DfPx97蚮Q
E祧E槁秥农榨;P  ;  0707010005d96d000081a40000000000000002000000013ac0388500000084000000200000000000000000000000000000001900000003reloc/images/unknown.gif  GIF89a       QQ@!    ,       U剰┧M槾V勣\蠑mH(:L瀟刯;&\zt篺枆r馴瀇g(銹:52塼>*(雍<m7狹A玍秎枂Э霪鋷
 ;0707010005d96e000081a40000000000000002000000013ac0388500000210000000200000000000000000000000000000001d00000003reloc/images/webmin-mini.xpm  /* XPM */
static char * webmin_mini_xpm[] = {
"16 16 10 1",
" 	c None",
".	c #020204",
"+	c #8E8E8C",
"@	c #565654",
"#	c #E2E2E4",
"$	c #3A3A3C",
"%	c #C6C6C4",
"&	c #1E1E1C",
"*	c #AAAAAC",
"=	c #727274",
"                ",
"                ",
"  ..   ..   ..* ",
"  ..  %..   ..  ",
"  ..  ...  @.&  ",
"  ..  ...  ..   ",
"  .. %. .  ..   ",
"  .. .. . @.*   ",
"  .. .$ . ..    ",
"  @.%.  . .&    ",
"  @...  .@.     ",
"  *..@  ...     ",
"  %..   ..%     ",
"   ..   ..      ",
"                ",
"                "};
0707010005d96f000081a40000000000000002000000013ac0388500000762000000200000000000000000000000000000001800000003reloc/images/webmin.gif   GIF89a;   乔仟帋   UUU沣rrr999!Made with GIMP !   ,    ;  処8雿\竲!瀐JVf昃p,薉m逥0镝 拈hE[7K謳台t妑妯;儠0@Z槐5亝Y″蹿霥疩k!蝐+鈣:~"yVa[CVB儚扴憮bVK)哰^I暊/[n'D墿" r牔こ!矑獻w.5{/>N`摱磁蠢I.u壓)窫殢钠持佄I!樇l耍僮比磓(湁跕晶赍鼬幊荫.}+*箊iB&/蠨腁阘聥鏈盚C8﨨"J矆$赑icW糨C繻z 邿 x谲`  O煶t魟"翨盎a碒S,o0 鍠9 ]秄)烵S
离Y[坻悃Qf亐U*$妷 .!f=驤 VC 抇FS黥嬙嘠7D:傣!y"2S霺D@V忐 @魿詂A$A辳紜D涡輍J\,s睟蜯怌V訆嗿Q~92?剚莙犤馩姳(/恸擌E|Qx~嗰_m為対}堗@g鴳橇yh棒P 倪]"䦃鎰c嚰郶"!膭蒯杹l?Lb 趠歶pa奕l
(&&崈N竎[>&鋵B驋J廞辠:U闍,ge ]檄?$怬bC.7贆 鏦W墯N瀎漰処@7預觛i薛gx9~5#W"w緌@M亁?A.\塡\暆搑fE啛a豩oC┦))@}t閧俙
#^耒4b*.谝%β龊蕁措磧B敌輭18nfpI﹂Q牉Qk樂E 鳕篥帩.瓳(蒻h]be焝5鹤	 @n|1靂!q蝞Qc[塬.燚俵c气YZ|m(C煖f釯k'舂K7湌痜釅qK~鉆*@嵞L蛱".稿+u.5菦\筃還殦懈孒騢)脠P靯粼W媽长0-:识*贿孥梌苻孲3砗蹈X3]8掌&M曃l彔泊3脉涘G㧏縷髦嚪鐩#颈+19Q絘&l偠 b厲gIz<->麽oGk割!椪建騿Z霼螢钝:矶疐C嶜
乥A菳䞍O菺﹟鞸;燐M;c樋A膝#vB后:瀍';蘾鶏|赚:aM5(嚮	i|;滬襴:=m}_譶0
闥諆_浯3钃<&
Rpz"	侥$ㄜ腦1盄&╟喴C_aX悼澂`j僓烑,Mt>[IF- n悆k銤 服q燴鐨烥n!p0卣91t焘褏'J󐂌"茞/概焉褝T軕KL9J羈1a樊,"矋剬)葼÷懧b抵P`	[癱讶?B蠏,b鯓X蛇吺枱A咭卮&_塊b袠q別'S+N壁;板K+暕r$%'yLQBqq,!厛荷绖M(媛癈漥G6筃e摉躄f1綑n耋哰P鯤鋯 鳶疛 * 6凋凿,䦶x蟣◆2* 7墀F魧^H黹M}v硸.$4I篅8!"簡H蝍3惾,ば乒LON违縝⿴XF蒀^OGZ詇01埁MU镋S燉l*6i债6騫 ;d繭淾&XE奍8Fr	&蠑僾XC庠激+KzWq畷8敵l5酄ga7楀燫s}琱弄<蚏V. 葥B,踮T暕'E韆Qj倚殼@)j蘐@%3薿  ;  0707010005d970000081a40000000000000002000000013ac038850000054b000000200000000000000000000000000000001800000003reloc/images/webmin.xpm   /* XPM */
static char * webmin_xpm[] = {
"32 32 10 1",
" 	c None",
".	c #020204",
"+	c #8E8E8C",
"@	c #565654",
"#	c #E2E2E4",
"$	c #3A3A3C",
"%	c #C6C6C4",
"&	c #1E1E1C",
"*	c #AAAAAC",
"=	c #727274",
"                                ",
"                                ",
"                                ",
"                                ",
"    ....*     &....     *....   ",
"    ....*    =.....     ....&   ",
"    @...*    &.....    *....=   ",
"    @...*    ......    ....$    ",
"    @...*    ......    ....*    ",
"    =...*   =......    ....     ",
"    *...*   &......   *....     ",
"    *...*  =...@...   ....*     ",
"    *...*  &...@...  *...&      ",
"    #...*  ...=@...  ....#      ",
"     ...*  ...%@...  ....       ",
"     ...* =..= @...  ...&       ",
"     ...* &..% @... *...=       ",
"     ...*=...  @... ...@        ",
"     ...*&...  @...*...%        ",
"     ...*...+  @.......         ",
"     ...*...#  @.......         ",
"     ...&..*   @......%         ",
"     ......    @.....&          ",
"     ......    @.....#          ",
"     ......    @.....           ",
"     .....%    @....&           ",
"     ....&     +....+           ",
"     ....%     *...@            ",
"     ****      #***#            ",
"                                ",
"                                ",
"                                "};
 0707010000bb49000081e40000000000000002000000013ac0388600001b5d000000200000000000000000000000000000001000000003reloc/index.cgi   #!/usr/local/bin/perl

require './web-lib.pl';
&init_config();
$hostname = &get_system_hostname();
$ver = &get_webmin_version();
&get_miniserv_config(\%miniserv);
if ($gconfig{'real_os_type'}) {
	$ostr = "$gconfig{'real_os_type'} $gconfig{'real_os_version'}";
	}
else {
	$ostr = "$gconfig{'os_type'} $gconfig{'os_version'}";
	}

# Build a list of all modules
&read_acl(\%acl);
opendir(DIR, ".");
$user = $ENV{'REMOTE_USER'};
$risk = $gconfig{'risk_'.$user};
foreach $d (readdir(DIR)) {
	local %minfo;
	if ($d !~ /^config-/ && (%minfo = &get_module_info($d))) {
		if (!&check_os_support(\%minfo)) {
			# This OS is not supported!
			next;
			}
		if ($risk) {
			# Check module risk level
			next if ($risk ne 'high' && $minfo{'risk'} &&
				 $minfo{'risk'} !~ /$risk/);
			}
		else {
			# Check specific ACL
			next if (!$acl{$user,$d} && !$acl{$user,"*"});
			}
		push(@modules, \%minfo);
		}
	}
closedir(DIR);
@modules = sort { $a->{'desc'} cmp $b->{'desc'} } @modules;
if (@modules == 1 && $gconfig{'gotoone'}) {
	# Redirect into a single module
	&redirect($modules[0]->{'dir'}.'/');
	exit;
	}

$gconfig{'sysinfo'} = 0;
if ($gconfig{'alt_startpage'}) {
	# Tim's webmin header
	&header(&text('main_title', $ver, $hostname, $ostr));
	print "<TABLE BORDER=0 WIDTH=100%>\n";
	print "<TR><TD WIDTH=20% ALIGN=left>\n";
	print "Version $ver<BR>$hostname<BR>$ostr</TD>";
	print "<TD WIDTH=60% ALIGN=center>\n";
	print "<IMG SRC=\"images/newlogo.gif\" BORDER=0>";
	print "</TD><TD WIDTH=20% ALIGN=right>";
	print "<a href=http://www.webmin.com/>$text{'main_homepage'}</a><br>";
	print "<a href=mailto:support\@webmin.com>$text{'main_feedback'}</a>";
	if ($miniserv{'logout'} && !$ENV{'SSL_USER'} && !$ENV{'LOCAL_USER'} &&
	    $ENV{'HTTP_USER_AGENT'} !~ /webmin/i) {
		print "<br><br>\n";
		if ($ENV{'SESSION_ID'}) {
			print "<a href='session_login.cgi?logout=1'>",
			      "$text{'main_logout'}</a>";
			}
		else {
			print "<a href=switch_user.cgi>$text{'main_switch'}</a>";
			}
		}
	print "</TD></TR></TABLE><HR><P>\n\n";
	}
else {
	# Standard webmin header
	&header(&text('main_title', $ver, $hostname, $ostr),
		"images/newlogo.gif", undef, undef, 1, 1,
		$tconfig{'brand'} ? 
		"<a href=$tconfig{'brand_url'}>$tconfig{'brand'}</a>" :
		$gconfig{'brand'} ? 
		"<a href=$gconfig{'brand_url'}>$gconfig{'brand'}</a>" :
		"<a href=http://www.webmin.com/>$text{'main_homepage'}</a><br>".
		"<a href=mailto:jcameron\@webmin.com>$text{'main_feedback'}</a>"
		);
	print "<center><font size=+1>",
	    &text('main_version', $ver, $hostname, $ostr),"</font></center>\n";
	print "<hr><p>\n";
	}

if (!@modules) {
	# use has no modules!
	print "<p><b>$text{'main_none'}</b><p>\n";
	}
elsif ($gconfig{"notabs_$user"} == 2 ||
    $gconfig{"notabs_$user"} == 0 && $gconfig{'notabs'}) {
	# Generate main menu with all modules on one page
	print "<center><table cellpadding=5>\n";
	$pos = 0;
	$cols = $gconfig{'nocols'} ? $gconfig{'nocols'} : 4;
	$per = 100.0 / $cols;
	foreach $m (@modules) {
		if ($pos % $cols == 0) { print "<tr>\n"; }
		print "<td valign=top align=center width=$per\%>\n";
		print "<table border><tr><td><a href=/$m->{'dir'}/>",
		      "<img src=$m->{'dir'}/images/icon.gif border=0 ",
		      "width=48 height=48></a></td></tr></table>\n";
		print "<a href=/$m->{'dir'}/>$m->{'desc'}</a></td>\n";
		if ($pos % $cols == $cols - 1) { print "</tr>\n"; }
		$pos++;
		}
	print "</table></center><p><hr>\n";
	}
else {
	# Display under categorised tabs
	&ReadParse();
	&read_file("$config_directory/webmin.catnames", \%catnames);
	foreach $m (@modules) {
		$c = $m->{'category'};
		next if ($cats{$c});
		if ($catnames{$c}) {
			$cats{$c} = $catnames{$c};
			}
		elsif ($text{"category_$c"}) {
			$cats{$c} = $text{"category_$c"};
			}
		else {
			# try to get category name from module ..
			local %mtext = &load_language($m->{'dir'});
			if ($mtext{"category_$c"}) {
				$cats{$c} = $mtext{"category_$c"};
				}
			else {
				$c = $m->{'category'} = "";
				$cats{$c} = $text{"category_$c"};
				}
			}
		}
	@cats = sort { $b cmp $a } keys %cats;
	$cats = @cats;
	$per = $cats ? 100.0 / $cats : 100;
	if (!defined($in{'cat'})) {
		# Use default category
		if (defined($gconfig{'deftab'}) &&
		    &indexof($gconfig{'deftab'}, @cats) >= 0) {
			$in{'cat'} = $gconfig{'deftab'};
			}
		else {
			$in{'cat'} = $cats[0];
			}
		}
	elsif (!$cats{$in{'cat'}}) {
		$in{'cat'} = "";
		}
	print "<table border=0 cellpadding=0 cellspacing=0 height=20><tr>\n";
	$usercol = defined($gconfig{'cs_header'}) ||
		   defined($gconfig{'cs_table'}) ||
		   defined($gconfig{'cs_page'});
	foreach $c (@cats) {
		$t = $cats{$c};
		if ($in{'cat'} eq $c) {
			print "<td valign=top $cb>", $usercol ? "<br>" :
			  "<img src=images/lc2.gif alt=\"\">","</td>\n";
			print "<td $cb>&nbsp;<b>$t</b>&nbsp;</td>\n";
			print "<td valign=top $cb>", $usercol ? "<br>" :
			  "<img src=images/rc2.gif alt=\"\">","</td>\n";
			}
		else {
			print "<td valign=top $tb>", $usercol ? "<br>" :
			  "<img src=images/lc1.gif alt=\"\">","</td>\n";
			print "<td $tb>&nbsp;",
			      "<a href=/?cat=$c><b>$t</b></a>&nbsp;</td>\n";
			print "<td valign=top $tb>", $usercol ? "<br>" :
			  "<img src=images/rc1.gif alt=\"\">","</td>\n";
			}
		print "<td width=10></td>\n";
		}
	print "</tr></table> <table border=0 cellpadding=0 cellspacing=0 ",
              "width=100% $cb>\n";
	print "<tr><td><table width=100% cellpadding=5>\n";

	# Display the modules in this category
	$pos = 0;
	$cols = $gconfig{'nocols'} ? $gconfig{'nocols'} : 4;
	$per = 100.0 / $cols;
	foreach $m (@modules) {
		next if ($m->{'category'} ne $in{'cat'});

		if ($pos % $cols == 0) { print "<tr>\n"; }
		print "<td valign=top align=center width=$per\%>\n";
		print "<table border bgcolor=#ffffff><tr><td><a href=/$m->{'dir'}/>",
		      "<img src=$m->{'dir'}/images/icon.gif alt=\"\" border=0></a>",
		      "</td></tr></table>\n";
		print "<a href=/$m->{'dir'}/>$m->{'desc'}</a></td>\n";
		if ($pos++ % $cols == $cols - 1) { print "</tr>\n"; }
		}
	while($pos++ % $cols) {
		print "<td width=$per\%></td>\n";
		}
	print "</table></td></tr></table><p><hr>\n";
	}

if ($miniserv{'logout'} && !$gconfig{'alt_startpage'} &&
    !$ENV{'SSL_USER'} && !$ENV{'LOCAL_USER'} &&
    $ENV{'HTTP_USER_AGENT'} !~ /webmin/i) {
	print "<table width=100% cellpadding=0 cellspacing=0><tr>\n";
	if ($gconfig{'skill_'.$user}) {
		print "<td><b>$text{'main_skill'}:</b>\n";
		foreach $s ('high', 'medium', 'low') {
			print "&nbsp;|&nbsp;" if ($done_first_skill++);
			if ($gconfig{'skill_'.$user} eq $s) {
				print $text{'skill_'.$s};
				}
			else {
				print "<a href='switch_skill.cgi?skill=$s&",
				   "cat=$in{'cat'}'>",$text{'skill_'.$s},"</a>";
				}
			}
		print "</td>\n";
		}
	if ($ENV{'SESSION_ID'}) {
		print "<td align=right><a href='session_login.cgi?logout=1'>",
		      "$text{'main_logout'}</a></div><br>\n";
		}
	else {
		print "<td align=right><a href=switch_user.cgi>",
		      "$text{'main_switch'}</a></div><br>\n";
		}
	print "</tr></table>\n";
	}
&footer();

   0707010007a835000041ed0000000000000001000000053ac03bfc00000000000000200000000000000000000000000000000c00000003reloc/inetd   0707010007a836000081a40000000000000002000000013ac0388b00000114000000200000000000000000000000000000001700000003reloc/inetd/config-aix    show_empty=1
rpc_inetd=1
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp
restart_command=ps -ef | grep inetd | head -1 | awk '{ print $2 }' | xargs kill -HUP
services_file=/etc/services
protocols_file=/etc/protocols
rpc_file=/etc/rpc
extended_inetd=0
sort_mode=0
ipv6=1
0707010007a837000081a40000000000000002000000013ac0388b00000131000000200000000000000000000000000000002000000003reloc/inetd/config-cobalt-linux   show_empty=1
services_file=/etc/services
extended_inetd=1
restart_command=killall -HUP inetd
rpc_file=/etc/rpc
protocols_file=/etc/protocols
tcpd_path=/usr/sbin/tcpd
rpc_inetd=1
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp
allow_file=/etc/hosts.allow
deny_file=/etc/hosts.deny
sort_mode=0
ipv6=0
   0707010007a838000081a40000000000000002000000013ac0388b00000131000000200000000000000000000000000000001f00000003reloc/inetd/config-corel-linux    show_empty=1
services_file=/etc/services
extended_inetd=1
restart_command=killall -HUP inetd
rpc_file=/etc/rpc
protocols_file=/etc/protocols
tcpd_path=/usr/sbin/tcpd
rpc_inetd=1
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp
allow_file=/etc/hosts.allow
deny_file=/etc/hosts.deny
sort_mode=0
ipv6=0
   0707010007a839000081a40000000000000002000000013ac0388b00000131000000200000000000000000000000000000002000000003reloc/inetd/config-debian-linux   show_empty=1
services_file=/etc/services
extended_inetd=1
restart_command=killall -HUP inetd
rpc_file=/etc/rpc
protocols_file=/etc/protocols
tcpd_path=/usr/sbin/tcpd
rpc_inetd=1
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp
allow_file=/etc/hosts.allow
deny_file=/etc/hosts.deny
sort_mode=0
ipv6=0
   0707010007a83a000081a40000000000000002000000013ac0388b000000e2000000200000000000000000000000000000001b00000003reloc/inetd/config-freebsd    show_empty=0
rpc_inetd=0
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp
restart_command=killall -HUP inetd
services_file=/etc/services
protocols_file=/etc/protocols
rpc_file=/etc/rpc
extended_inetd=2
sort_mode=0
ipv6=0
  0707010007a83b000081a40000000000000002000000013ac0388b000000e2000000200000000000000000000000000000001f00000003reloc/inetd/config-freebsd-2.1    show_empty=0
rpc_inetd=0
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp
restart_command=killall -HUP inetd
services_file=/etc/services
protocols_file=/etc/protocols
rpc_file=/etc/rpc
extended_inetd=0
sort_mode=0
ipv6=0
  0707010007a83c000081a40000000000000002000000013ac0388b000000e2000000200000000000000000000000000000001f00000003reloc/inetd/config-freebsd-2.2    show_empty=0
rpc_inetd=0
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp
restart_command=killall -HUP inetd
services_file=/etc/services
protocols_file=/etc/protocols
rpc_file=/etc/rpc
extended_inetd=0
sort_mode=0
ipv6=0
  0707010007a83d000081a40000000000000002000000013ac0388b000000d8000000200000000000000000000000000000001800000003reloc/inetd/config-hpux   show_empty=1
rpc_inetd=1
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp
restart_command=inetd -c
extended_inetd=1
services_file=/etc/services
protocols_file=/etc/protocols
rpc_file=/etc/rpc
sort_mode=0
ipv6=0
0707010007a83e000081a40000000000000002000000013ac0388b00000131000000200000000000000000000000000000001d00000003reloc/inetd/config-lfs-linux  restart_command=killall -HUP inetd
services_file=/etc/services
protocols_file=/etc/protocols
rpc_file=/etc/rpc
extended_inetd=1
tcpd_path=/usr/sbin/tcpd
inetd_conf_file=/etc/inetd.conf
rpc_inetd=1
rpc_protocols=tcp udp
allow_file=/etc/hosts.allow
deny_file=/etc/hosts.deny
show_empty=1
sort_mode=0
ipv6=0
   0707010007a83f000081a40000000000000002000000013ac0388b000001bb000000200000000000000000000000000000001900000003reloc/inetd/config-macos  get_services_command=nidump services . >/etc/services.ni
restart_command=ps ax | grep inetd | head -1 | awk '{ print $1 }' | xargs kill -HUP
services_file=/etc/services.ni
extended_inetd=0
protocols_file=/etc/protocols
rpc_file=/etc/rpc
tcpd_path=/usr/libexec/tcpd
inetd_conf_file=/etc/inetd.conf
rpc_inetd=0
rpc_protocols=tcp udp
put_services_command=niload services . </etc/services.ni
allow_file=
deny_file=
show_empty=1
sort_mode=0
ipv6=0
 0707010007a840000081a40000000000000002000000013ac0388b00000131000000200000000000000000000000000000001e00000003reloc/inetd/config-open-linux show_empty=1
services_file=/etc/services
extended_inetd=1
restart_command=killall -HUP inetd
rpc_file=/etc/rpc
protocols_file=/etc/protocols
tcpd_path=/usr/sbin/tcpd
rpc_inetd=1
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp
allow_file=/etc/hosts.allow
deny_file=/etc/hosts.deny
sort_mode=0
ipv6=0
   0707010007a841000081a40000000000000002000000013ac0388b00000147000000200000000000000000000000000000002300000003reloc/inetd/config-open-linux-3.1e    show_empty=1
services_file=/etc/services
extended_inetd=1
restart_command=killall -HUP inetd
rpc_file=/etc/rpc
protocols_file=/etc/protocols
tcpd_path=/usr/sbin/tcpd
rpc_inetd=1
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp
allow_file=/etc/hosts.allow
deny_file=/etc/hosts.deny
sort_mode=0
ipv6=0
inetd_dir=/etc/inet.d
 0707010007a842000081a40000000000000002000000013ac0388b000000d1000000200000000000000000000000000000001b00000003reloc/inetd/config-openbsd    show_empty=0
rpc_inetd=0
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp
restart_command=killall -HUP inetd
services_file=/etc/services
protocols_file=/etc/protocols
rpc_file=/etc/rpc
sort_mode=0
ipv6=0
   0707010007a843000081a40000000000000002000000013ac0388b00000129000000200000000000000000000000000000001e00000003reloc/inetd/config-openserver show_empty=1
rpc_inetd=1
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp datagram_v circuit_v
restart_command=ps -ef | grep inetd | head -1 | awk '{ print $2 }' | xargs kill -HUP
services_file=/etc/services
protocols_file=/etc/protocols
rpc_file=/etc/rpc
extended_inetd=0
sort_mode=0
ipv6=0
   0707010007a844000081a40000000000000002000000013ac0388b00000114000000200000000000000000000000000000001800000003reloc/inetd/config-osf1   show_empty=1
rpc_inetd=1
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp
restart_command=ps -ef | grep inetd | head -1 | awk '{ print $2 }' | xargs kill -HUP
services_file=/etc/services
protocols_file=/etc/protocols
rpc_file=/etc/rpc
extended_inetd=0
sort_mode=0
ipv6=0
0707010007a845000081a40000000000000002000000013ac0388b00000150000000200000000000000000000000000000002000000003reloc/inetd/config-redhat-linux   show_empty=1
services_file=/etc/services
extended_inetd=1
restart_command=killall -HUP inetd || /etc/rc.d/init.d/inet start
rpc_file=/etc/rpc
protocols_file=/etc/protocols
tcpd_path=/usr/sbin/tcpd
rpc_inetd=1
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp
allow_file=/etc/hosts.allow
deny_file=/etc/hosts.deny
sort_mode=0
ipv6=0
0707010007a846000081a40000000000000002000000013ac0388b00000100000000200000000000000000000000000000002300000003reloc/inetd/config-slackware-linux    show_empty=1
extended_inetd=1
rpc_inetd=1
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp
restart_command=/bin/killall -HUP inetd
services_file=/etc/services
protocols_file=/etc/protocols
rpc_file=/etc/rpc
tcpd_path=/usr/sbin/tcpd
sort_mode=0
ipv6=0
0707010007a847000081a40000000000000002000000013ac0388b00000147000000200000000000000000000000000000001b00000003reloc/inetd/config-solaris    show_empty=1
rpc_inetd=1
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp datagram_v circuit_v rawip ticlts ticotsord ticots
restart_command=ps -ef | grep inetd | head -1 | awk '{ print $2 }' | xargs kill -HUP
services_file=/etc/services
protocols_file=/etc/protocols
rpc_file=/etc/rpc
extended_inetd=0
sort_mode=0
ipv6=0
 07070100060720000041ed0000000000000001000000023ac03bfb00000000000000200000000000000000000000000000001100000003reloc/inetd/help  07070100060721000081a40000000000000002000000013ac0388b00001790000000200000000000000000000000000000001e00000003reloc/inetd/help/help.es.html <body bgcolor=#ffffff>
<title>Servicios de Internet</title>
<center><img src="images/inetd.gif"></center><br>
<h2><i>Esta p醙ina de ayuda est incompleta</i></h2>
<hr>
<h3>Introducci髇</h3>
Este m骴ulo te permite gestionar y configurar servicios de internet como
<tt>telnet</tt>, <tt>ftp</tt> y <tt>finger</tt>. Cada servicio de internet
tiene un nombre, n鷐ero de puerto y protocolo (como <tt>telnet</tt> en
puerto <tt>tcp</tt> 23). Muchos servicios tambi閚 tienen un programa servidor
para manejar conexiones de red para esos servicios. <p>

Los servicios con un programa asociado son controlados por un daemon
<tt>inetd</tt> de Unix, que escucha por conexiones de red en nombre de
todos sus servicios. Cuando se recibe una conexi髇, el programa servidor es
arrancado para manejar los datos de la nueva conexi髇. <p>

No todos los servicios de internet son gestionados por este m髎ulo. Los
servidores que reciben muchas conexiones como HTTPD, SMB o NFS son ejecutados
de forma separada para evitar el tener que arrancar un nuevo proceso para
cada requerimiento. Estos servicios pueden ser configurados mediante otros
m骴ulos de Qebmin, como <a href=/samba/>Samba</a> o <a href=/apache/>Apache</a>. <p>

La p醙ina principal de este m骴ulo lista todos los servicios de internet
y de RPC de tu sistema. Los servicios con un programa asignado se
muestran en negrita. La lista de servicios de internet, servicios de RPC
y de programas se recoge de los archivos <tt>/etc/services</tt>, <tt>/etc/rpc</tt> y
<tt>/etc/inetd.conf</tt>. <p>

<hr>
<h3>Creando un Nuevo Servicio</h3>
Para crear un nuevo servicio de internet, haz click en el enlace
<tt>Crear un Nuevo Servicio</tt> bajo la lista de servicios activos.
Esto te llevar a un formumario en el cual se puede suministrar los
detalles del nuevo servicio:
	<ul>
	<li><b>Nombre del Servicio</b><br>
	    Cada servicio debe de tener un par de nombre 鷑ico y protocolo.
	    Esto quiere decir que dos servicios pueden tener el mismo
	    nombre s髄amente si utilizan protocolos diferentes. <p>
	<li><b>Protocolo</b><br>
	    El protocolo de comunicaciones usado por este servicio. Casi
	    todos los servicios de internet usan el protocolo <tt>TCP</tt>
	    y el resto usan <tt>UDP</tt>. <p>
	<li><b>Puerto</b><br>
	    Cada servicio tiene un n鷐ero de puerto que debe de ser 鷑ico
	    dentro del protocolo usado por el servicio. El n鷐ero de puerto
	    debe de estar entre 0 y 65535 tanto para <tt>TCP</tt> como para <tt>UDP</tt>. <p>
	<li><b>Aliases</b><br>
	    Una lista de nombres alternativos usados para referirse a este
	    servicio. No se puede usar un alias que ya exista o poner alias
	    a un servicio ya existente con el mismo protocolo. <p>
	</ul><p>
Los nombres de servicio de internet se pueden utilizar en lugar de los
nombres de m醧uina en comandos como <tt>telnet</tt>. Por ejemplo, puedes
digitar <tt>telnet foo.bar.com smtp</tt> para conectarte al puerto 25
en la m醧uina <tt>foo.bar.com</tt>, asumiendo que el servicio de internet
<tt>smtp</tt> se defina corr閏tamente. <p>

Para servicios con un programa asociado, debes de seleccionar la opci髇
<tt>Usar el programa inferior</tt>.
	<ul>
	<li><b>Programa</b><br>
	    Algunos raros servicios son manejados int閞namente por <tt>inetd</tt>.
	    Sin embargo, para casi todos los nuevos servicios que crees,
	    la trayectoria completa al programa a ejecutar para el servicio
	    deber韆 de suministrarse aqu.<p>
	<li><b>Argumentos</b><br>
	    Argumentos de l韓ea de comando a pasar al programa superior. El
	    primer argumento deber韆 de ser el nombre del programa, y el
	    resto otros par醡etros a pasar.<p>
	<li><b>Modo de Espera</b><br>
	    蓅te determina si <tt>inetd</tt> esperar hasta que el programa
	    se complete antes de arrancar cualquier otro o no. Para la mayor韆
	    de los servicios, 閟te deber韆 de ser <tt>No esperar</tt>. <p>
	<li><b>Ejecutar como</b><br>
	    El nombre de usuario bajo el que deber韆 de ejecutarse el programa
	    servidor. La mayor韆 de servidores necesitar醤 ser ejecutados
	    como <tt>root</tt>. <p>
	</ul><p>
When a new service is added, it will not take effect immediately. You must
click the <tt>Restart Inetd</tt> button on the main page for the addition
to be applied. <p>

<hr>
<h3>Editing an Existing Service</h3>
To edit a service, click on the service name from the list on the main page.
This will display the same form used for creating a service to allow you
to edit the service details. You can also click on the <tt>Delete</tt>
button at the bottom of the page to delete the service. <p>

Be careful when editing or deleting existing system services such as
<tt>telnet</tt> or <tt>ftp</tt>. Changing these may make it impossible
to login to your machine (or worse). <p>

When a service is modified, it will not take effect immediately. You must
click the <tt>Restart Inetd</tt> button on the main page for the changes
to be applied. <p>

<hr>
<h3>Creating and Editing RPC Programs</h3>
In general, you will never need to create or edit RPC programs on your
system. However, if you do the procedure is similar to creating and
editing internet services. <p>
 
The form for editing and creating RPC programs will always contain at
least the following fields :
	<ul>
	<li><b>Program Name</b><br>
	    A unique name for this RPC program (within the same protocol). <p>
	<li><b>Number</b><br>
	    Every RPC program has a unique program number, determined when
	    the program is written. <p>
	<li><b>Aliases</b><br>
	    Other names that can be used to refer to this RPC program. <p>
	</ul><p>

Some operating systems (such as Solaris) allow a server program to be
associated with an RPC service. This program will be run by <tt>inetd</tt>
when it receives a request for the program. <p>
If your system supports RPC server programs started by inetd, the following
fields will also be visible :
	<ul>
	<li>???
	</ul>
 
<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Return to module</a><p>
 
07070100060722000081a40000000000000002000000013ac0388b000015ca000000200000000000000000000000000000001b00000003reloc/inetd/help/help.html    <body bgcolor=#ffffff>
<title>Internet Services</title>
<center><img src="images/inetd.gif"></center><br>
<h2><i>This help page is incomplete</i></h2>
<hr>
<h3>Introduction</h3>
This module allows you to manage and setup internet services such as
<tt>telnet</tt>, <tt>ftp</tt> and <tt>finger</tt>. Every internet service
has a name, port number and protocol (such as <tt>telnet</tt> on
<tt>tcp</tt> port 23). Many services also have a server program to handle
network connections to that services. <p>

Services with an associated program are controlled by the Unix 
<tt>inetd</tt> daemon, which listens for network connections on behalf of
all its services. When a connection is received, the server program is
started to handle data from the new connection. <p>

Not all internet services are managed by this module. Servers that receive
many connections such as HTTPD, SMB or NFS are run separately to avoid
having to start a new process for each request. These services can be
configured using other Webmin modules, such as <a href=/samba/>Samba</a>
or <a href=/apache/>Apache</a>. <p>

The main page for this module lists all the internet and RPC services
on your system. Services with a program assigned are displayed in bold.
The list of internet services, RPC services and programs are taken from
the files <tt>/etc/services</tt>, <tt>/etc/rpc</tt> and 
<tt>/etc/inetd.conf</tt>. <p>

<hr>
<h3>Creating a New Service</h3>
To create a new internet service, click on the <tt>Create New Service</tt>
link below the list of active services. This will take you to a form
in which the details of the new service can be entered :
	<ul>
	<li><b>Service Name</b><br>
	    Every service must have a unique name and protocol pair.
	    This means that two services can have the same name only
	    if they use different protocols. <p>
	<li><b>Protocol</b><br>
	    The communications protocol used by this service. Almost all
	    internet services use the <tt>TCP</tt> protocol, and the rest
	    use <tt>UDP</tt>. <p>
	<li><b>Port</b><br>
	    Every service has a port number which must be unique within
	    the protocol used by the service. The port number must be between
	    0 and 65535 for both <tt>TCP</tt> and <tt>UDP</tt>. <p>
	<li><b>Aliases</b><br>
	    A list of alternative names used to refer to this service. An
	    alias cannot be already used as the name or alias of an existing
	    service with the same protocol. <p>
	</ul><p>
Internet service names can be used instead of hostnames in commands
such as <tt>telnet</tt>. For example, you can type <tt>telnet foo.bar.com smtp</tt> to connect to port 25 on the host <tt>foo.bar.com</tt>, assuming
the <tt>smtp</tt> internet service is defined correctly. <p>

For services with an associated program, you must choose the <tt>Use the
program below</tt> option ???
	<ul>
	<li><b>Program</b><br>
	    Some rare services are handled internally by <tt>inetd</tt>.
	    However, for almost all new services that you create the full
	    path to the program to execute for the service should be given
	    here. <p>
	<li><b>Arguments</b><br>
	    Command line arguments to pass to the program above. The first
	    argument should be the program name, and the rest other parameters
	    to pass. <p>
	<li><b>Wait mode</b><br>
	    This determines if <tt>inetd</tt> will wait until the program
	    is complete before starting any others or not. For most services,
	    this should be <tt>Don't wait</tt>. <p>
	<li><b>Execute as</b><br>
	    The username of the user the server program should be run as.
	    Most servers will need to be run as <tt>root</tt>. <p>
	</ul><p>
When a new service is added, it will not take effect immediately. You must
click the <tt>Restart Inetd</tt> button on the main page for the addition
to be applied. <p>

<hr>
<h3>Editing an Existing Service</h3>
To edit a service, click on the service name from the list on the main page.
This will display the same form used for creating a service to allow you
to edit the service details. You can also click on the <tt>Delete</tt>
button at the bottom of the page to delete the service. <p>

Be careful when editing or deleting existing system services such as
<tt>telnet</tt> or <tt>ftp</tt>. Changing these may make it impossible
to login to your machine (or worse). <p>

When a service is modified, it will not take effect immediately. You must
click the <tt>Restart Inetd</tt> button on the main page for the changes
to be applied. <p>

<hr>
<h3>Creating and Editing RPC Programs</h3>
In general, you will never need to create or edit RPC programs on your
system. However, if you do the procedure is similar to creating and
editing internet services. <p>
 
The form for editing and creating RPC programs will always contain at
least the following fields :
	<ul>
	<li><b>Program Name</b><br>
	    A unique name for this RPC program (within the same protocol). <p>
	<li><b>Number</b><br>
	    Every RPC program has a unique program number, determined when
	    the program is written. <p>
	<li><b>Aliases</b><br>
	    Other names that can be used to refer to this RPC program. <p>
	</ul><p>

Some operating systems (such as Solaris) allow a server program to be
associated with an RPC service. This program will be run by <tt>inetd</tt>
when it receives a request for the program. <p>
If your system supports RPC server programs started by inetd, the following
fields will also be visible :
	<ul>
	<li>???
	</ul>
 
<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Return to module</a><p>
 
  07070100060723000081a40000000000000002000000013ac0388b000014f3000000200000000000000000000000000000001e00000003reloc/inetd/help/help.sv.html <body bgcolor=#ffffff>
<title>Internettj鋘ster</title>
<center><img src="images/inetd.gif"></center><br>
<h2><i>Denna hj鋖psida 鋜 inte f鋜dig</i></h2>
<hr>
<h3>Introduktion</h3>
Med denna modul kan du s鋞ta upp och administrera internettj鋘ster som
<tt>telnet</tt>, <tt>ftp</tt> och <tt>finger</tt>. Varje internettj鋘st
har ett namn, ett portnummer och ett protokoll (t ex <tt>telnet</tt> 鰒er
<tt>tcp</tt>, port 23). Flera tj鋘ster har ocks serverprogram som
hanterar uppkopplingar till tj鋘sten.

<p>Tj鋘ster som har ett s錮ant program kontrolleras av Unix-demonen
<tt>inetd</tt>, som lyssnar efter uppkopplingar f鰎 alla sina tj鋘ster.
N鋜 en uppkoppling sker startas serverprogrammet f鰎 att hantera data fr錸
den nya uppkopplingen.

<p>Alla internettj鋘ster hanteras inte av denna modul. Servrar som tar
emot m錸ga uppkopplingar, t ex HTTPD, SMB och NFS, k鰎s separat f鰎 att
inetd inte ska beh鰒a starta en ny process f鰎 varje uppkoppling till dem.
F鰎 dessa tj鋘ster g鰎s inst鋖lningar i respektive Webmin-modul, t ex
<a href=/samba/>Samba</a> och <a href=/apache/>Apache</a>.

<p>P startsidan f鰎 denna modul listas alla internet- och RPC-tj鋘ster
p ditt system. Tj鋘ster som har tillh鰎ande program visas med fetstil.
Listan genereras fr錸 filerna <tt>/etc/services</tt>, <tt>/etc/rpc</tt>
och <tt>/etc/inetd.conf</tt>.

<hr>
<h3>L鋑ga till tj鋘st</h3>
F鰎 att l鋑ga till en tj鋘st klickar du p l鋘ken <tt>L鋑ga till tj鋘st</tt>
nedanf鰎 listan 鰒er tj鋘ster. D kommer du till ett formul鋜 d鋜 du kan
skriva in uppgifter om den nya tj鋘sten.

	<ul>
	<li><b>Namn p tj鋘sten</b>
	    <br>Varje tj鋘st m錽te ha ett unikt par av namn och protokoll.
	    Detta betyder att tv tj鋘ster kan heta samma sak om de anv鋘der
	    olika protokoll.
	<li><b>Protokoll</b>
	    <br>Kommunikationsprotokollen som tj鋘sten anv鋘der sig av.
	    De flesta internettj鋘ster anv鋘der <tt>TCP</tt>-protokollet
	    och resten anv鋘der <tt>UDP</tt>.
	<li><b>Port</b>
	    <br>Varje tj鋘st har ett portnummer som m錽te vara unikt inom
	    protokollet som anv鋘ds. Portnumret m錽te ligga i intervallet
	    0-65535 b錮e f鰎 <tt>TCP</tt> och <tt>UDP</tt>.
	<li><b>Alias</b>
	    <br>H鋜 kan du skriva in fler namn som tj鋘sten kan anropas med.
	    Du f錼 inte anv鋘da namn eller alias som redan 鋜 upptagna inom
	    protokollet.
	</ul>

<p>Du kan anv鋘da tj鋘stenamnet ist鋖let f鰎 datornamnet i t ex
<tt>telnet</tt>-kommandon. Du kan exempelvis skriva <tt>telnet
foo.bar.com smtp</tt> f鰎 att koppla upp dig mot port 25 p datorn
<tt>foo.bar.com</tt>, under f鰎uts鋞tning att tj鋘sten <tt>smtp</tt>
har definierats p r鋞t s鋞t.

<p>F鰎 tj鋘ster med tillh鰎ande program m錽te du v鋖ja <tt>Anv鋘d programmet
nedan</tt> n鋜 du skriver in uppgifterna.
	<ul>
	<li><b>Program</b>
	    <br>Vissa tj鋘ster hanteras internt av <tt>inetd</tt>.
	    Du b鰎 dock h鋜 ange fullst鋘dig s鰇v鋑 till det program som ska
	    utf鰎as n鋜 du l鋑ger till en tj鋘st.
	<li><b>Argument</b>
	    <br>Kommandoradsargument som ska skickas till det program du
	    angivit ovan. Det f鰎sta argumentet b鰎 vara programnamnet och
	    鰒riga argument parametrar till programmet.
	<li><b>V鋘tel鋑e</b>
	    <br>H鋜 best鋗mer du om <tt>inetd</tt> ska v鋘ta tills
	    programmet 鋜 klart innan det ska k鰎a ig錸g n錱ot annat.
	    F鰎 de flesta tj鋘ster b鰎 du v鋖ja <tt>V鋘ta inte</tt>.
	<li><b>K鰎 som</b>
	    <br>Anv鋘darnamnet f鰎 den anv鋘dare som serverprogrammet ska
	    k鰎as som. De flesta servrar m錽te k鰎as som <tt>root</tt>.
	</ul>

<p>N鋜 du har lagt till en tj鋘st kommer den inte att vara tillg鋘glig
direkt. Du m錽te trycka p knappen <tt>Starta om inetd</tt> p startsidan
f鰎 att tj鋘sten ska g att anv鋘da.

<hr>
<h3>膎dra en tj鋘st</h3>
F鰎 att 鋘dra i en tj鋘st klickar du p tj鋘stenamnet i listan p
startsidan. Du f錼 d upp samma formul鋜 som n鋜 du l鋑ger till en
tj鋘st, och kan 鋘dra de uppgifter du vill. Du kan ocks trycka p
<tt>Ta bort</tt>-knappen l鋘gst ned p sidan f鰎 att ta bort tj鋘sten.

<p>Var f鰎siktig n鋜 du 鋘drar i eller tar bort systemtj鋘ster som
<tt>telnet</tt> och <tt>ftp</tt>. Om du 鋘drar i dem kan du f problem
med inloggning (eller v鋜re).

<p>N鋜 du har 鋘drat i en tj鋘st kommer detta inte att tas i drift p
en g錸g, utan du m錽te trycka p <tt>Starta om inetd</tt>-knappen f鰎
att 鋘dringarna ska g igenom.

<hr>
<h3>Skapa och 鋘dra RPC-program</h3>
Normalt kommer du inte att beh鰒a skapa eller 鋘dra RPC-program p
ditt system. Om du skulle vilja g鰎a det 鋘d g錼 det till p ungef鋜
samma s鋞t som f鰎 internettj鋘ster.

<p>Formul鋜et f鰎 RPC-program inneh錶ler alltid 錿minstone dessa f鋖t:
	<ul>
	<li><b>Programnamn</b>
	    <br>Ett unikt namn (inom protokollet) p RPC-programmet.
	<li><b>Nummer</b>
	    <br>Varje RPC-program har ett unikt programnummer som best鋗s
	    n鋜 programmet skrivs.
	<li><b>Alias</b>
	    <br>H鋜 kan du skriva in fler namn som RPC-programmet kan
	    anropas med.
	</ul>

<p>En del operativsystem (t ex Solaris) st鰀jer att RPC-tj鋘ster kan
ha tillh鰎ande serverprogram. Dessa program kommer att k鰎as av <tt>inetd</tt>
n鋜 programmet anropas.

<p>Om ditt system st鰀jer RPC-serverprogram via inetd, kommer f鰈jande
f鋖t ocks att finnas:
	<ul>
	<li>???
	</ul>
 
<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Tillbaka till modul</a>
 
 07070100060724000081a40000000000000002000000013ac0388b00000f19000000200000000000000000000000000000002600000003reloc/inetd/help/help.zh_TW.Big5.html <body bgcolor=#ffffff>
<title>呼悔呼隔狝叭</title>
<center><img src="images/inetd.gif"></center><br>
<h2><i>硂弧﹟ゼЧΘ</i></h2>
<hr>
<h3>玡ē</h3>
硂家舱す砛眤恨瞶砞﹚窖 <tt>telnet</tt>, <tt>ftp</tt> 籔 <tt>finger</tt> 单单呼悔呼隔狝叭. –呼悔呼隔狝叭常璶Τ嘿, 硄癟梆絪腹籔硄獺﹚砞﹚ (ㄒ <tt>telnet</tt> 
<tt>tcp</tt> 硄癟梆 23). 砛狝叭常璶Τ狝竟祘Αㄓ矪瞶硈硂狝叭硈挡. <p>

狝叭籔闽祘Α常琌砆 Unix <tt>inetd</tt> 臔竟┮北, ウ菏钮┮Τ呼隔硈絬, 钡┮Τ璶―. 讽钡璶―, 痷龟狝竟祘Α盢穦砆币笆矪瞶硂硈絬戈. <p>

ぃ琌┮Τ呼悔呼隔常琌パ硂家舱┮恨瞶. ㄇ矪瞶秖硈絬狝叭ㄒ HTTPD, SMB, NFS 常琌︽矪瞶, 磷璶–璶―常币笆穝祘. 硂ㄇ狝叭砆 Webmin ㄤ家舱┮舱篈, ㄒ <a href=/samba/>Samba</a> ┪ <a href=/apache/>Apache</a>. <p>

璶硂眤╰参┮Τ呼悔呼隔籔 RPC 狝叭. Τ﹚北祘Α狝叭盢<b>彩砰</b>瞷. 硂ボㄓ郎 <tt>/etc/services</tt>, <tt>/etc/rpc</tt> 籔 <tt>/etc/inetd.conf</tt>. <p>

<hr>
<h3>ミ穝狝叭</h3>
璶ミ穝呼悔呼隔狝叭, 狝叭狠<tt>ミ穝狝叭</tt>硈挡. 硂穦盢眤盿虫, τ眤ゲ斗璶矗ㄑ筁Τ穝狝叭ゲ斗灿竊:
	<ul>
	<li><b>狝叭嘿</b><br>
	    –狝叭常ゲ斗Τ盡嘿籔硄癟﹚癸. 硂ボ埃獶ㄏノぃ硄癟﹚, 玥ぃㄏノ嘿. <p>
	<li><b>硄癟﹚</b><br>
	    硂狝叭ㄏノ硄癟﹚. 碭┮Τ呼悔呼隔狝叭常ㄏノ <tt>TCP</tt> 硄癟﹚, ぶ计ㄏノ <tt>UDP</tt>. <p>
	<li><b>硄癟梆</b><br>
	    –狝叭常Τ硄癟梆絪腹, 癸–ㄏノ硄癟﹚狝叭τē, 硂ゲ斗琌ぃ. 癸 <tt>TCP</tt> 籔 <tt>UDP</tt> τē, 硄癟梆絪腹琌 0  65535 丁俱计. <p>
	<li><b></b><br>
	    ㄤ硂狝叭嘿. ぃ琌ㄤㄏノ硄癟﹚狝叭嘿┪ウ. <p>
	</ul><p>
呼悔呼隔嘿ㄏノ㏑いㄒ <tt>telnet</tt>. 羭ㄒㄓ弧, 眤块 <tt>telnet foo.bar.com smtp</tt> 硈钡诀 <tt>foo.bar.com</tt> 材 25 腹硄癟梆. <p>

癸狝叭籔闽祘Α, 眤ゲ砛匡拒<tt>ㄏノ祘Α</tt>匡兜?
	<ul>
	<li><b>祘Α</b><br>
	    ぶ计祘Α琌砆 <tt>inetd</tt> ず场┮矪瞶. 礛τ, 碭┮Τ眤ミ穝狝叭常ゲ斗璶硂娩﹚痷龟狝祘ΑЧ俱隔畖. <p>
	<li><b>把计</b><br>
	    癳倒玡祘Α㏑把计. 材把计莱赣琌祘Α嘿, 礛琌璶癳筁把计. <p>
	<li><b>单家Α</b><br>
	    硂∕﹚ <tt>inetd</tt> 琌璶秨﹍穝狝叭ぇ玡单祘Α挡. 癸计狝叭τē, 莱赣琌<tt>ぃ单</tt>. <p>
	<li><b>...磅︽</b><br>
	    硂狝竟祘Α磅︽┮ㄏノㄏノ嘿. 计狝竟常琌 <tt>root</tt> ōだ磅︽. <p>
	</ul><p>
讽糤穝狝叭ぇ, ウ盢ぃ穦ミ玻ネ紇臫. 眤ゲ斗璶礶┏狠<tt>穝币笆 inetd</tt> 秙甅ノ跑. <p>

<hr>
<h3>絪胯瞷狝叭</h3>
璶絪胯狝叭, 礶い狝叭嘿. 硂盢穦陪ボ籔ミ穝狝叭虫, す砛眤絪胯硂狝叭冈灿戈. 眤┏耞<tt>埃</tt>秙埃硂狝叭. <p>

讽絪胯┪埃窖 <tt>telnet</tt> ┪ <tt>ftp</tt> 单瞷╰参狝叭璶疭み. э跑硂ㄇ穦硑Θ眤ぃ祅眤╰参 (┪罺). <p>

讽狝叭砆跑, ウぃ穦ミㄨネ. 眤ゲ斗礶狠<tt>穝币笆 inetd</tt> ㄏ硂ㄇ跑砆甅ノ. <p>

<hr>
<h3>ミ籔絪胯 RPC 祘Α</h3>
τē, 眤ッ环ぃ惠璶眤╰参ミ┪絪胯 RPC 祘Α. 礛τ, 狦眤Τ硂惠璶, 硂籔ミ┪絪胯呼悔呼隔狝叭讽摸. <p>
 
琵眤絪胯┪ミ RPC 祘Α虫ぶ逆:
	<ul>
	<li><b>祘Α嘿</b><br>
	    硂 RPC 祘Α盡Τ嘿 (硄癟﹚い). <p>
	<li><b>絪腹</b><br>
	    – RPC 祘Α常Τ盡Τ祘Α絪腹, 硂琌祘Α糶砆∕﹚. <p>
	<li><b></b><br>
	    ㄤ把酚硂 RPC 祘Α嘿. <p>
	</ul><p>

Τㄇ穨╰参 (ㄒ Solaris) す砛狝竟祘Α把酚 RPC 狝叭. 硂祘Α盢穦钡Μ璶―パ <tt>inetd</tt> 磅︽. <p>
狦眤╰参や穿 inetd 币笆 RPC 狝竟, 逆盢琌ǎ:
	<ul>
	<li>???
	</ul>
 
<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Return to module</a><p>
 
   0707010007a848000081a40000000000000002000000013ac0388b00000147000000200000000000000000000000000000001d00000003reloc/inetd/config-solaris-8  show_empty=1
rpc_inetd=1
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp datagram_v circuit_v rawip ticlts ticotsord ticots
restart_command=ps -ef | grep inetd | head -1 | awk '{ print $2 }' | xargs kill -HUP
services_file=/etc/services
protocols_file=/etc/protocols
rpc_file=/etc/rpc
extended_inetd=0
sort_mode=0
ipv6=1
 0707010007a849000081a40000000000000002000000013ac0388b00000131000000200000000000000000000000000000001e00000003reloc/inetd/config-suse-linux show_empty=1
services_file=/etc/services
extended_inetd=1
restart_command=killall -HUP inetd
rpc_file=/etc/rpc
protocols_file=/etc/protocols
tcpd_path=/usr/sbin/tcpd
rpc_inetd=1
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp
allow_file=/etc/hosts.allow
deny_file=/etc/hosts.deny
sort_mode=0
ipv6=0
   0707010007a84a000081a40000000000000002000000013ac0388b00000131000000200000000000000000000000000000002200000003reloc/inetd/config-suse-linux-6.3 show_empty=0
services_file=/etc/services
extended_inetd=1
restart_command=killall -HUP inetd
rpc_file=/etc/rpc
protocols_file=/etc/protocols
tcpd_path=/usr/sbin/tcpd
rpc_inetd=1
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp
allow_file=/etc/hosts.allow
deny_file=/etc/hosts.deny
sort_mode=0
ipv6=0
   0707010007a84b000081a40000000000000002000000013ac0388b00000131000000200000000000000000000000000000002200000003reloc/inetd/config-suse-linux-6.4 show_empty=0
services_file=/etc/services
extended_inetd=1
restart_command=killall -HUP inetd
rpc_file=/etc/rpc
protocols_file=/etc/protocols
tcpd_path=/usr/sbin/tcpd
rpc_inetd=1
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp
allow_file=/etc/hosts.allow
deny_file=/etc/hosts.deny
sort_mode=0
ipv6=0
   0707010007a84c000081a40000000000000002000000013ac0388b00000131000000200000000000000000000000000000002200000003reloc/inetd/config-suse-linux-7.0 show_empty=0
services_file=/etc/services
extended_inetd=1
restart_command=killall -HUP inetd
rpc_file=/etc/rpc
protocols_file=/etc/protocols
tcpd_path=/usr/sbin/tcpd
rpc_inetd=1
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp
allow_file=/etc/hosts.allow
deny_file=/etc/hosts.deny
sort_mode=0
ipv6=0
   0707010007a84d000081a40000000000000002000000013ac0388b00000131000000200000000000000000000000000000002200000003reloc/inetd/config-suse-linux-7.1 show_empty=0
services_file=/etc/services
extended_inetd=1
restart_command=killall -HUP inetd
rpc_file=/etc/rpc
protocols_file=/etc/protocols
tcpd_path=/usr/sbin/tcpd
rpc_inetd=1
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp
allow_file=/etc/hosts.allow
deny_file=/etc/hosts.deny
sort_mode=0
ipv6=0
   0707010007a84e000081a40000000000000002000000013ac0388b00000131000000200000000000000000000000000000001f00000003reloc/inetd/config-turbo-linux    show_empty=1
services_file=/etc/services
extended_inetd=1
restart_command=killall -HUP inetd
rpc_file=/etc/rpc
protocols_file=/etc/protocols
tcpd_path=/usr/sbin/tcpd
rpc_inetd=1
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp
allow_file=/etc/hosts.allow
deny_file=/etc/hosts.deny
sort_mode=0
ipv6=0
   0707010007a84f000081a40000000000000002000000013ac0388b00000129000000200000000000000000000000000000001c00000003reloc/inetd/config-unixware   show_empty=1
rpc_inetd=1
inetd_conf_file=/etc/inetd.conf
rpc_protocols=tcp udp datagram_v circuit_v
restart_command=ps -ef | grep inetd | head -1 | awk '{ print $2 }' | xargs kill -HUP
services_file=/etc/services
protocols_file=/etc/protocols
rpc_file=/etc/rpc
extended_inetd=0
sort_mode=0
ipv6=0
   0707010007a850000081a40000000000000002000000013ac0388b000002a7000000200000000000000000000000000000001800000003reloc/inetd/config.info   inetd_conf_file=Inetd configuration file,0
inetd_dir=Inetd configuration directory,3,None
extended_inetd=Extended inetd support,1,0-Original,1-Basic,2-Enhanced
show_empty=Show services with no program,1,1-Yes,0-No
rpc_inetd=Inetd supports RPC programs,1,1-Yes,0-No
ipv6=Supports IPv6 services,1,1-Yes,0-No
sort_mode=Sort services and programs by,1,0-Order in file,1-Name,2-Assignment
services_file=Network services file,0
rpc_file=RPC services file,0
protocols_file=Network protocols file,0
rpc_protocols=RPC subprotocols,0
restart_command=Command to restart inetd,0
tcpd_path=Full path to tcpd,3
allow_file=Full path to tcpd allow file,3
deny_file=Full path to tcpd deny file,3
 0707010007a851000081a40000000000000002000000013ac0388b000002ac000000200000000000000000000000000000001b00000003reloc/inetd/config.info.de    inetd_conf_file=Inetd Konfigurationsdatei,0
extended_inetd=Erweiterte Inetd Unterst&uuml;tzung,1,0-Nein,1-Normal,2-Erweitert
show_empty=Zeige Dienste ohne Programm,1,1-Ja,0-Nein
rpc_inetd=Inetd unterst&uuml;tzt RPC Programme,1,1-Ja,0-Nein
sort_mode=Sortiere Dienste und Programme nach,1,0-Reihenfolge in Datei,1-Name,2-Zuweisung
services_file=Datei mit Netzwerkdiensten,0
rpc_file=Datei mit RPC Diensten,0
protocols_file=Datei mit Netzwerk-Protokollen,0
rpc_protocols=RPC Unterprotokolle,0
restart_command=Kommando zum Neustarten des inetd,0
tcpd_path=Absoluter Pfad zu tcpd,3
allow_file=Absoluter Pfad zur tcpd Erlaubnisdatei,3
deny_file=Absoluter Pfad zur tcpd Verweigerungsdatei,3
0707010007a852000081a40000000000000002000000013ac0388b00000331000000200000000000000000000000000000001b00000003reloc/inetd/config.info.es    inetd_conf_file=Archivo de configuraci髇 de inetd,0
inetd_dir=Directorio de configuraci髇 de Inetd,3,Ninguno
extended_inetd=Soporte extendido de inetd,1,0-No,1-B醩ico,2-Mejorado
show_empty=Mostrar servicios que no tengan programa,1,1-S,0-No
rpc_inetd=Inetd sporta programas RPC,1,1-S,0-No
ipv6=Soporta servicios de IPv6,1,1-S,0-No
sort_mode=Clasificar servicios y programas por,1,0-Orden en el archivo,1-Nombre,2-Asignaci髇
services_file=Archivo de servicios de Red,0
rpc_file=Archivo de servicios RPC,0
protocols_file=Archivo de protocolos de Red,0
rpc_protocols=Subprotocolos RPC,0
restart_command=Comando para rearrancar inetd,0
tcpd_path=Trayectoria completa a tcpd,3
allow_file=Trayectoria completa a archivo de autorizaciones de tcpd,3
deny_file=Trayectoria completa a archivo de no autorizaciones de tcpd,3
   0707010007a853000081a40000000000000002000000013ac0388b00000259000000200000000000000000000000000000001b00000003reloc/inetd/config.info.fr    inetd_conf_file=Fichier de configuration inetd,0
extended_inetd=Support 閠endu d'inetd,1,0-Non,1-De base,2-Am閘ior
show_empty=Afficher les serveurs sans programmes,1,1-Oui,0-Non
rpc_inetd=Inetd supporte les services RPC,1,1-Oui,0-Non
services_file=Fichier de services r閟eau,0
rpc_file=Fichier de services RPC,0
protocols_file=Fichier de protocoles r閟eau,0
rpc_protocols=Sous-protocole RPC,0
restart_command=Commande pour red閙arrer inetd,0
tcpd_path=Chemin de l'ex閏utable tcpd,3
allow_file=Chemin du fichier d'autorisation tcpd,3
deny_file=Chemin du fichier de non-autorisation tcpd,3
   0707010007a854000081a40000000000000002000000013ac0388b000002c5000000200000000000000000000000000000001b00000003reloc/inetd/config.info.hu    inetd_conf_file=Inetd konfigur醕i髎 file,0
extended_inetd=Kib鮲韙ett inetd fut?,1,0-Nem,1-Kiss,2-Nagyon
show_empty=A program n閘k黮i szolg醠tat醩ok l醫sszanak?,1,1-Igen,0-Nem
rpc_inetd=Az inetd t醡ogatja az RPC-t?,1,1-Igen,0-Nem
ipv6=IPv6 szolg醠tat醩ok t醡ogatva?,1,1-Igen,0-Nem
sort_mode=Sorbarendez閟 szempontja,1,0-File,1-ABC,2-St醫usz
services_file=A h醠髗ati szolg醠tat醩ok list醞a,0
rpc_file=Az RPC szolg醠tat醩ok list醞a,0
protocols_file=A h醠髗ati protokollok list醞a,0
rpc_protocols=RPC alprotokollok,0
restart_command=Az inetd-t 鷍raind韙 parancs,0
tcpd_path=<tt>tcpd</tt> teljes 鰏v閚nyel,3
allow_file=tcpd allow file teljes 鰏v閚nyel,3
deny_file=tcpd deny file teljes 鰏v閚nyel,3
   0707010007a855000081a40000000000000002000000013ac0388b000002f5000000200000000000000000000000000000001b00000003reloc/inetd/config.info.pl    inetd_conf_file=Plik konfiguracyjny inetd,0
inetd_dir=Katalog konfiguracyjny inetd,3,Brak
extended_inetd=Rozszerzona obs硊ga inetd,1,0-Pierwotna,1-Podstawowa,2-Wzbogacona
show_empty=Pokazywa us硊gi bez programu,1,1-Tak,0-Nie
rpc_inetd=Inetd obs硊guje programy RPC,1,1-Tak,0-Nie
ipv6=Wspomaganie dla us硊g IPv6,1,1-Tak,0-Nie
sort_mode=Porz眃ek us硊g i&nbsp;program體,1,0-Porz眃ek w&nbsp;plku,1-Wg nazwy,2-Assignment
services_file=Plik us硊g sieciowych,0
rpc_file=Plik us硊g RPC,0
protocols_file=Plik protoko丑w sieciowych,0
rpc_protocols=Podprotoko硑 RPC,0
restart_command=Polecenie restartuj眂e inetd,0
tcpd_path=Pe硁a 禼ie縦a do tcpd,3
allow_file=Pe硁a 禼ie縦a do pliku <tt>allow</tt> dla tcpd,3
deny_file=Pe硁a 禼ie縦a do pliku <tt>deny</tt> dla tcpd,3

   0707010007a856000081a40000000000000002000000013ac0388b0000023c000000200000000000000000000000000000001e00000003reloc/inetd/config.info.ru_RU restart_command=暑爨礓 潆 镥疱玎矬耜 inetd,0
services_file=脏殡  皴蝈恹扈 皴疴桉囔,0
protocols_file=脏殡  皴蝈恹扈 镳铗铌铍囔,0
rpc_file=脏殡  RPC 皴疴桉囔,0
extended_inetd=项滗屦骊 疣聒桊屙眍泐 inetd,1,0-湾,1-拎珙恹,2-与篦眄
tcpd_path=项腠 矬螯  tcpd,3
inetd_conf_file=暑眙桡箴圉桀眄 羿殡 inetd,0
rpc_inetd=项滗屦骊 RPC 镳钽疣祆  inetd,1,1-泥,0-湾
rpc_protocols=RPC 耋犸痤蝾觐臌,0
allow_file=项腠 矬螯  羿殡 疣琊屮屙 漕耱箫 tcpd,3
deny_file=项腠 矬螯  羿殡 玎镳弪 漕耱箫 tcpd,3
show_empty=项赅琨忄螯 皴疴桉 徨 镳钽疣祆,1,1-泥,0-湾
0707010007a857000081a40000000000000002000000013ac0388b0000023c000000200000000000000000000000000000001e00000003reloc/inetd/config.info.ru_SU inetd_conf_file=胂纹汕找撩上挝偈 屏侍 inetd,0
extended_inetd=鹣哪乓炙 伊盂梢盼蜗窍 inetd,1,0-钆,1-饬谙踪,2-跆辙叟挝偈
show_empty=鹣肆谫琢载 优易捎 屡 幸锨伊屯,1,1-淞,0-钆
rpc_inetd=鹣哪乓炙 RPC 幸锨伊屯  inetd,1,1-淞,0-钆
services_file=媪侍  优耘踪蜕 优易捎镣,0
rpc_file=媪侍  RPC 优易捎镣,0
protocols_file=媪侍  优耘踪蜕 幸显纤咸镣,0
rpc_protocols=RPC 诱滦蚁韵讼藤,0
restart_command=胂土文 奶 信遗诹姓铀 inetd,0
tcpd_path=鹣涛偈 姓载  tcpd,3
allow_file=鹣涛偈 姓载  屏侍 伊谝袍盼裳 南釉招 tcpd,3
deny_file=鹣涛偈 姓载  屏侍 诹幸旁 南釉招 tcpd,3
0707010007a858000081a40000000000000002000000013ac0388b000002d9000000200000000000000000000000000000001b00000003reloc/inetd/config.info.sv    inetd_conf_file=Inetd-inst鋖lningsfil,0
inetd_dir=Inetd-inst鋖lningskatalog,3,Ingen
extended_inetd=inetd-st鰀,1,0-Original,1-Basst鰀,2-Ut鰇at st鰀
show_empty=Visa tj鋘ster som inte har n錱ot program,1,1-Ja,0-Nej
rpc_inetd=Inetd st鰀jer RPCprogram,1,1-Ja,0-Nej
ipv6=St鰀jer IPv6-tj鋘ster,1,1-Ja,0-Nej
sort_mode=Sortera tj鋘ster och program efter,1,0-Filordning,1-Namn,2-Uppgift
services_file=Fil f鰎 n鋞verkstj鋘ster,0
rpc_file=Fil f鰎 RPC-tj鋘ster,0
protocols_file=Fil f鰎 n鋞verksprotokoll,0
rpc_protocols=Underprotokoll till RPC,0
restart_command=Kommando f鰎 att starta om inetd,0
tcpd_path=Fullst鋘dig s鰇v鋑 till tcpd,3
allow_file=Fullst鋘dig s鰇v鋑 till tcpd allow file,3
deny_file=Fullst鋘dig s鰇v鋑 till tcpd deny file,3
   0707010007a859000081a40000000000000002000000013ac0388b0000028d000000200000000000000000000000000000001b00000003reloc/inetd/config.info.tr    inetd_conf_file=Inetd yap齦and齬ma dosyas,0
extended_inetd=Uzat齦m inetd deste餴,1,0-Hay齬,1-Temel,2-Enhanced
show_empty=Program olmadan servisleri g鰏ter,1,1-Evet,0-Hay齬
rpc_inetd=Inetd, RPC programlar齨 desteklesin,1,1-Evet,0-Hay齬
sort_mode=Servisleri ve programlar s齬alama ,1,0-Dosyadaki 㧐kliyle,1-Ada g鰎e,2-Assignment
services_file=A servisleri dosyas,0
rpc_file=RPC servisleri dosyas,0
protocols_file=A protokolleri dosyas,0
rpc_protocols=RPC alt protokulleri,0
restart_command=Inetd'yi yeniden baatma komutu,0
tcpd_path=tcpd'nin tam yolu,3
allow_file=tcpd kabul dosyas齨齨 tam yeri,3
deny_file=tcpd reddetme dosyas齨齨 tam yeri,3
   0707010007a85a000081a40000000000000002000000013ac0388b000001f4000000200000000000000000000000000000001e00000003reloc/inetd/config.info.zh_CN inetd_conf_file=Inetd配置文件,0
extended_inetd=扩展inetd支持,1,0-无,1-基本,2-增强
show_empty=显示没有程序的服务,1,1-是,0-否
rpc_inetd=Inetd支持RPC程序,1,1-是,0-否
ipv6=支持 IPv6 服务,1,1-是,0-否
sort_mode=排序服务和程序按照,1,0-按照文件,1-名称,2-指定
services_file=网络服务文件,0
rpc_file=RPC服务文件,0
protocols_file=网络协议文件,0
rpc_protocols=RPC子协议,0
restart_command=重新启动inetd的命令,0
tcpd_path=tcpd的完整路径,3
allow_file=tcpd allow 文件的完整路径,3
deny_file=tcpd deny 文件的完整路径,3
0707010007a85b000081a40000000000000002000000013ac0388b000001e9000000200000000000000000000000000000002300000003reloc/inetd/config.info.zh_TW.Big5    inetd_conf_file=Inetd 舱篈郎,0
extended_inetd=┑ inetd や穿,1,0-礚,1-膀セ,2-眏
show_empty=琌陪ボ⊿Τ癸莱祘Α狝叭?,1,1-琌,0-
rpc_inetd=Inetd 琌や穿 RPC 祘Α?,1,1-琌,0-
services_file=呼隔狝叭郎,0
rpc_file=RPC 狝叭郎,0
protocols_file=呼隔﹚郎,0
rpc_protocols=RPC ﹚,0
restart_command=穝币笆 inetd ㏑,0
tcpd_path= tcpd (TCP wrapper) Ч俱隔畖,3
allow_file= tcpd (TCP wrapper) す砛郎Ч俱隔畖,3
deny_file= tcpd (TCP wrapper) ┶荡郎Ч俱隔畖,3
   0707010007a85c000081e40000000000000002000000013ac0388b00000233000000200000000000000000000000000000001b00000003reloc/inetd/delete_rpc.cgi    #!/usr/local/bin/perl
# delete_rpc.cgi
# Delete an RPC program

require './inetd-lib.pl';
&ReadParse();

&lock_inetd_files();
@rpcs = &list_rpcs();
@rpc = @{$rpcs[$in{'rpos'}]};
&delete_rpc($rpc[0]);
if ($in{'ipos'} =~ /\d/) {
	@inets = &list_inets();
	@inet = @{$inets[$in{'ipos'}]};
	&delete_inet($inet[0]);
	}
&unlock_inetd_files();
&webmin_log("delete", "rpc", $rpc[1],
	    { 'name' => $rpc[1], 'number' => $rpc[2],
	      'active' => $inet[1],
	      'user' => $inet[7], 'wait' => $inet[6],
	      'prog' => join(" ", @inet[8..@inet-1]) } );
&redirect("");
 0707010007a85d000081e40000000000000002000000013ac0388b0000025d000000200000000000000000000000000000001c00000003reloc/inetd/delete_serv.cgi   #!/usr/local/bin/perl
# delete_inet.cgi
# Delete an internet service

require './inetd-lib.pl';
&ReadParse();

&lock_inetd_files();
@servs = &list_services();
@serv = @{$servs[$in{'spos'}]};
&delete_service($serv[0]);
if ($in{'ipos'} =~ /\d/) {
	@inets = &list_inets();
	@inet = @{$inets[$in{'ipos'}]};
	&delete_inet($inet[0]);
	}
&unlock_inetd_files();
&webmin_log("delete", "serv", $serv[1],
	    { 'name' => $serv[1], 'port' => $serv[2],
	      'proto' => $serv[3], 'active' => $inet[1],
	      'user' => $inet[7], 'wait' => $inet[6],
	      'prog' => join(" ", @inet[8..@inet-1]) } );
&redirect("");

   0707010007a85e000081e40000000000000002000000013ac0388b00001627000000200000000000000000000000000000001900000003reloc/inetd/edit_rpc.cgi  #!/usr/local/bin/perl
# edit_rpc.cgi
# Display a form for editing a RPC service

require './inetd-lib.pl';
&ReadParse();

if ($in{'new'}) {
	&header($text{'editrpc_title1'}, "");
	}
else {
	&header($text{'editrpc_title2'}, "");
	@rpc = @{(&list_rpcs())[$in{'rpos'}]};
	if ($in{'ipos'} =~ /\d/) {
		@inet = @{(&list_inets())[$in{'ipos'}]};
		}
	}
print "<hr>\n";

print "<form action=\"save_rpc.cgi\">\n";
if (@rpc) {
	print "<input type=hidden name=rpos value=$in{'rpos'}>\n";
	print "<input type=hidden name=ipos value=$in{'ipos'}>\n";
	}
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'editrpc_detail'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td nowrap><b>$text{'editrpc_prgname'}</b></td>\n";
print "<td><input size=10 name=name value=\"$rpc[1]\"></td>\n";

print "<td><b>$text{'editrpc_prgnum'}</b></td>\n";
print "<td><input size=7 name=number value=\"$rpc[2]\"></td> </tr>\n";

print "<tr> <td><b>$text{'editrpc_aliase'}</b></td> <td colspan=3>\n";
print "<input size=40 name=aliases value=\"$rpc[3]\"></td> </tr>\n";

print "</table></td></tr></table><p>\n";

if ($config{'rpc_inetd'}) {
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'editrpc_server'}</b></td> </tr>\n";
	print "<tr $cb> <td><table width=100%>\n";

	print "<tr> <td colspan=4>\n";
	printf "<input type=radio name=act value=0 %s> $text{'editrpc_noassigned'}\n",
		@inet ? "" : "checked";
	printf "<input type=radio name=act value=1 %s> $text{'editrpc_disable'}\n",
		@inet && !$inet[1] ? "checked" : "";
	printf "<input type=radio name=act value=2 %s> $text{'editrpc_enable'}\n",
		$inet[1] ? "checked" : "";
	print "</td> </tr>\n";

	print "<td><b>$text{'editrpc_version'}</b></td>\n";
	if ($inet[3] =~ /^[^\/]+\/([0-9]+)\-([0-9]+)$/) {
		$vfrom = $1; $vto = $2;
		}
	elsif ($inet[3] =~ /^[^\/]+\/([0-9]+)$/) {
		$vfrom = $1; $vto = $1;
		}
	else { $vfrom = $vto = ""; }
	print "<td><input size=1 name=vfrom value=\"$vfrom\"> -\n";
	print "<input size=1 name=vto value=\"$vto\"></td>\n";

	print "<td><b>$text{'editrpc_socket'}</b></td>\n";
	print "<td><select name=type>\n";
	printf "<option value=stream %s>Stream\n",
		$inet[4] eq "stream" || !@inet ? "selected" : "";
	printf "<option value=dgram %s>Datagram\n",
		$inet[4] eq "dgram" ? "selected" : "";
	printf "<option value=tli %s>TLI\n",
		$inet[4] eq "tli" ? "selected" : "";
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'editrpc_protocol'}</b></td>\n";
	$inet[5] =~ /^[^\/]+\/(.*)$/;
	if ($1 eq "*") { @usedpr = split(/\s+/, $config{'rpc_protocols'}); }
	else { @usedpr = split(/,/, $1); }
	print "<td colspan=3>\n";
	foreach $upr (split(/\s+/, $config{rpc_protocols})) {
		printf "<input name=protocols type=checkbox value=\"$upr\" %s>".
		       " $upr\n", &indexof($upr,@usedpr)<0?"":"checked";
		}
	print "</td> </tr>\n";

	print "<tr> <td nowrap><b>$text{'editrpc_server'}</b></td>\n";
	printf "<td colspan=3><input type=radio name=internal value=1 %s> $text{'editrpc_internal'}\n",
		$inet[8] eq "internal" ? "checked" : "";
	printf "<input type=radio name=internal value=0 %s>\n",
		$inet[8] ne "internal" || !@inet ? "checked" : "";
	printf "<input name=program size=40 value=\"%s\">\n",
		$inet[8] ne "internal" || !@inet ? $inet[8] : "";
	print &file_chooser_button("program", 0);
	print "</td> </tr>\n";

	print "<tr> <td nowrap><b>$text{'editrpc_command'}</b></td> <td colspan=3>\n";
	printf "<input name=args size=40 value=\"%s\"></td> </tr>\n",
		$inet[8] eq "internal" ? "" : $inet[9];

	if ($inet[6] =~ /^(\S+)\.(\d+)$/) { $waitmode = $1; $permin = $2; }
	else { $waitmode = $inet[6]; $permin = -1; }
	if ($inet[7] =~ /^(\S+)\.(\S+)$/) { $user = $1; $group = $2; }
	else { $user = $inet[7]; undef($group); }

	print "<tr> <td nowrap><b>$text{'editrpc_waitmode'}</b></td>\n";
	printf "<td nowrap><input type=radio name=wait value=wait %s> $text{'editrpc_wait'}\n",
		$waitmode eq "wait" || !@inet ? "checked" : "";
	printf "<input type=radio name=wait value=nowait %s> $text{'editrpc_nowait'}</td>\n",
		$waitmode eq "nowait" ? "checked" : "";

	print "<td nowrap><b>$text{'editrpc_execasuser'}</b></td>\n";
	print "<td nowrap><input name=user size=8 value=\"$user\"> ",
	      &user_chooser_button("user", 0),"</td> </tr>\n";

	if ($config{extended_inetd}) {
		print "<tr> <td nowrap><b>$text{'editrpc_max'}</b></td> <td nowrap>\n";
		printf "<input type=radio name=permin_def value=1 %s> $text{'editrpc_default'}\n",
			$permin<0 ? "checked" : "";
		printf "&nbsp; <input type=radio name=permin_def value=0 %s>\n",
			$permin<0 ? "" : "checked";
		printf "<input name=permin size=5 value=\"%s\"></td>\n",
			$permin<0 ? "" : $permin;

		print "<td nowrap><b>$text{'editrpc_execasgrp'}</b></td>\n";
		print "<td nowrap><select name=group>\n";
		printf "<option value=\"\" %s> $text{'editrpc_default'}",
			$group ? "" : "selected";
		setgrent();
		while(@ginfo = getgrent()) {
			printf "<option value=\"$ginfo[0]\" %s>$ginfo[0]\n",
				$ginfo[0] eq $group ? "selected" : "";
			}
		print "</select></td> </tr>\n";
		endgrent();
		}

	print "</table></td></tr></table><p>\n";
	}

if (@rpc) {
	print "<table width=100%>\n";
	print "<tr> <td><input type=submit value=$text{'index_save'}></td>\n";
	print "</form><form action=\"delete_rpc.cgi\">\n";
	print "<input type=hidden name=rpos value=\"$in{'rpos'}\">\n";
	print "<input type=hidden name=ipos value=\"$in{'ipos'}\">\n";
	print "<td align=right><input type=submit value=$text{'index_delete'}></td> </tr>\n";
	print "</form></table><p>\n";
	}
else {
	print "<input type=submit value=$text{'index_create'}></form><p>\n";
	}

printf "<hr>\n";
&footer("", $text{'index_list'});

 0707010007a85f000081e40000000000000002000000013ac0388b00001a73000000200000000000000000000000000000001a00000003reloc/inetd/edit_serv.cgi #!/usr/local/bin/perl
# edit_inet.cgi
# Display a form for editing or creating an internet service

require './inetd-lib.pl';
&ReadParse();

if ($in{'new'}) {
	&header($text{'editserv_title1'}, "");
	}
else {
	&header($text{'editserv_title2'}, "");
	@serv = @{(&list_services())[$in{'spos'}]};
	if ($in{'ipos'} =~ /\d/) {
		@inet = @{(&list_inets())[$in{'ipos'}]};
		}
	}
print "<hr>\n";

print "<form action=\"save_serv.cgi\">\n";
if (@serv) {
	print "<input type=hidden name=spos value=$in{'spos'}>\n";
	print "<input type=hidden name=ipos value=$in{'ipos'}>\n";
	}
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'editserv_detail'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td nowrap><b>$text{'editserv_name'}</b></td>\n";
print "<td><input size=20 name=name value=\"$serv[1]\"></td>\n";

print "<td nowrap><b>$text{'editserv_port'}</b></td>\n";
print "<td nowrap><input size=10 name=port value=\"$serv[2]\"></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'editrpc_protocol'}</b></td>\n";
print "<td valign=top><select name=protocol>\n";
foreach $p (&list_protocols()) {
	printf "<option value=$p %s>%s %s\n",
		$serv[3] eq $p || (!@serv && $p eq "tcp") ? "selected" : "",
		uc($p), $prot_name{$p} ? "($prot_name{$p})" : "";
	}
print "</select></td>\n";

print "<td valign=top><b>$text{'editrpc_aliase'}</b></td>\n";
printf "<td valign=top><textarea name=aliases ".
       "rows=3 cols=20>%s</textarea></td> </tr>\n",
	join("\n", split(/\s+/, $serv[4]));

print "</table></td> </tr></table><p>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'editrpc_server'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td colspan=4>\n";
	printf "<input type=radio name=act value=0 %s> $text{'editrpc_noassigned'}\n",
		@inet ? "" : "checked";
	printf "<input type=radio name=act value=1 %s> $text{'editrpc_disable'}\n",
		@inet && !$inet[1] ? "checked" : "";
	printf "<input type=radio name=act value=2 %s> $text{'editrpc_enable'}\n",
		$inet[1] ? "checked" : "";
print "</td> </tr>\n";

print "<tr> <td><b>$text{'editserv_program'}</b></td>\n";
printf "<td colspan=3><input type=radio name=serv value=1 %s>\n",
	$inet[8] eq "internal" ? "checked" : "";
print "$text{'editserv_inetd'}</td> </tr>\n";

$tcpd = (-x $config{'tcpd_path'} && $inet[8] eq $config{'tcpd_path'});
print "<tr> <td></td>\n";
printf "<td colspan=3><input type=radio name=serv value=2 %s> $text{'editrpc_command'}\n",
	$inet[8] ne "internal" && !$tcpd ? "checked" : "";
printf "<input name=program size=30 value=\"%s\">\n",
	$inet[8] ne "internal" && !$tcpd ? $inet[8] : "";
print &file_chooser_button("program", 0);
printf "$text{'editserv_args'} <input name=args size=30 value=\"%s\"></td> </tr>\n",
	$inet[5] ne "internal" && !$tcpd ? $inet[9] : "";

if (-x $config{'tcpd_path'}) {
	print "<tr> <td></td>\n";
	printf "<td colspan=3><input type=radio name=serv value=3 %s>\n",
		$tcpd ? "checked" : "";
 	print "$text{'editserv_wrapper'}\n";
	$inet[9] =~ /^(\S+)\s*(.*)$/;
	printf "<input name=tcpd size=15 value=\"%s\">\n", $tcpd ? $1 : "";
	printf "$text{'editserv_args'} <input name=args2 size=30 value=\"%s\"></td> </tr>\n",
		$tcpd ? $2 : "";
	}

@op1 = split(/[:\.\/]/, $inet[6]);
@op2 = split(/[:\.\/]/, $inet[7]);
if ($inet[7] =~ /\// && $inet[7] !~ /:/) {
	# class but no group!
	splice(@op2, 1, 0, undef);
	}
print "<tr> <td nowrap><b>$text{'editrpc_waitmode'}</b></td> <td nowrap>\n";
printf "<input type=radio name=wait value=wait %s> $text{'editrpc_wait'}\n",
	$op1[0] eq "wait" ? "checked" : "";
printf "<input type=radio name=wait value=nowait %s> $text{'editrpc_nowait'}</td>\n",
	$op1[0] eq "nowait" || !@inet ? "checked" : "";

print "<td nowrap><b>$text{'editrpc_execasuser'}</b></td>\n";
print "<td nowrap><input name=user size=8 value=\"$op2[0]\"> ",
      &user_chooser_button("user", 0),"</td> </tr>\n";

if ($config{'extended_inetd'} == 1) {
	# Display max per minute and group options
	# This is for systems like Linux
	print "<tr> <td nowrap><b>$text{'editrpc_max'}</b></td> <td nowrap>\n";
	printf "<input type=radio name=permin_def value=1 %s> $text{'editrpc_default'}\n",
		@op1 < 2 ? "checked" : "";
	printf "&nbsp; <input type=radio name=permin_def value=0 %s>\n",
		@op1 < 2 ? "" : "checked";
	printf "<input name=permin size=5 value=\"%s\"></td>\n",
		@op1 < 2 ? "" : $op1[1];

	print "<td nowrap><b>$text{'editrpc_execasgrp'}</b></td>\n";
	print "<td nowrap><select name=group>\n";
	printf "<option value=\"\" %s> $text{'editrpc_default'}",
		$op2[1] ? "" : "selected";
	setgrent();
	while(@ginfo = getgrent()) {
		printf "<option value=\"$ginfo[0]\" %s>$ginfo[0]\n",
			$ginfo[0] eq $op2[1] ? "selected" : "";
		}
	print "</select></td> </tr>\n";
	endgrent();
	}
elsif ($config{'extended_inetd'} == 2) {
	# Display max child, max per minute, group and login class options
	# This is for systems like FreeBSD
	print "<tr> <td nowrap><b>$text{'editrpc_max'}</b></td> <td nowrap>\n";
	printf "<input type=radio name=permin_def value=1 %s> $text{'editrpc_default'}\n",
		@op1 < 3 ? "checked" : "";
	printf "&nbsp; <input type=radio name=permin_def value=0 %s>\n",
		@op1 < 3 ? "" : "checked";
	printf "<input name=permin size=5 value=\"%s\"></td>\n",
		@op1 < 3 ? "" : $op1[2];

	print "<td nowrap><b>$text{'editrpc_execasgrp'}</b></td>\n";
	print "<td nowrap><select name=group>\n";
	printf "<option value=\"\" %s> $text{'editrpc_default'}",
		$op2[1] ? "" : "selected";
	setgrent();
	while(@ginfo = getgrent()) {
		printf "<option value=\"$ginfo[0]\" %s>$ginfo[0]\n",
			$ginfo[0] eq $op2[1] ? "selected" : "";
		}
	print "</select></td> </tr>\n";
	endgrent();

	print "<tr> <td nowrap><b>$text{'editserv_maxchild'}</b></td> <td nowrap>\n";
	printf "<input type=radio name=child_def value=1 %s> $text{'editrpc_default'}\n",
		@op1 < 2 ? "checked" : "";
	printf "&nbsp; <input type=radio name=child_def value=0 %s>\n",
		@op1 < 2 ? "" : "checked";
	printf "<input name=child size=5 value=\"%s\"></td>\n",
		@op1 < 2 ? "" : $op1[1];

	print "<td nowrap><b>$text{'editserv_execlogin'}</b></td>\n";
	print "<td><input name=class size=10 value=\"$op2[2]\"></td> </tr>\n";
	}

print "</table></td></tr></table>\n";
if (!$in{'new'}) {
	print "<table width=100%>\n";
	print "<tr> <td><input type=submit value=$text{'index_save'}></td>\n";
	print "</form><form action=\"delete_serv.cgi\">\n";
	print "<input type=hidden name=spos value=\"$in{'spos'}\">\n";
	print "<input type=hidden name=ipos value=\"$in{'ipos'}\">\n";
	print "<td align=right><input type=submit value=$text{'index_delete'}></td> </tr>\n";
	print "</form></table><p>\n";
	}
else {
	print "<input type=submit value=$text{'index_create'}></form><p>\n";
	}

printf "<hr>\n";
&footer("", $text{'index_list'});
 07070100061ee5000041ed0000000000000001000000023ac03bfb00000000000000200000000000000000000000000000001300000003reloc/inetd/images    07070100061ee6000081a40000000000000002000000013ac0388b00000112000000200000000000000000000000000000001c00000003reloc/inetd/images/icon.gif   GIF89a0 0   烫   烫櫃檉ff      !    ,    0 0  0噬P柰{嘩=^Y俠殭瑔︶跉/l沙W櫉髹靹 bQp*婱摅礛sU豼朥鶘 茬 s孩m麣倜墊.+<}_敷}vd俈咮y實寠c帓6摋彆坱晉瀦m槝瑮7挸殮è)究懒旅墓茊仁偺晌H锌惢仑嫩茌捱嘬彐玷殄
殃铋玉蝮趱鰵	 ;  0707010007a860000081e40000000000000002000000013ac0388b00000c0c000000200000000000000000000000000000001600000003reloc/inetd/index.cgi #!/usr/local/bin/perl
# index.cgi
# Display a list of known services, built from those handled by inetd and
# from the services file

require './inetd-lib.pl';
&header($text{'index_title'}, "", undef, 1, 1);
print "<hr>\n";

# break down into rpc and internet services
$j = 0;
foreach $i (&list_inets()) {
	if ($i->[2]) {
		# rpc service
		$i->[3] =~ /^(\S+)\//;
		if ($i->[1]) { $rpc_active{$1} = $j; }
		else { $rpc_disabled{$1} = $j; }
		}
	else {
		# internet service
		if ($i->[1]) { $int_active{$i->[3],$i->[5]} = $j; }
		else { $int_disabled{$i->[3],$i->[5]} = $j; }
		}
	$j++;
	}

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'index_service'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";
$i = 0;
@slist = &list_services();
if ($config{'sort_mode'} == 1) {
	@slist = sort { uc($a->[1]) cmp uc($b->[1]) } @slist;
	}
elsif ($config{'sort_mode'} == 2) {
	@slist = sort { (defined($int_active{$b->[1],$b->[3]}) ? 2 :
			 defined($int_disabled{$b->[1],$b->[3]}) ? 1 : 0) <=>
			(defined($int_active{$a->[1],$a->[3]}) ? 2 :
			 defined($int_disabled{$a->[1],$a->[3]}) ? 1 : 0) }
		      @slist;
	}
foreach $s (@slist) {
	$ia = $int_active{$s->[1],$s->[3]};
	$id = $int_disabled{$s->[1],$s->[3]};
	if ($ia =~ /\d/) { $op = "<b>"; $cl = "</b>"; $ip = $ia; }
	elsif ($id =~ /\d/) { $op = "<i><b>"; $cl = "</b></i>"; $ip = $id; }
	elsif (!$config{'show_empty'}) { next; }
	else { $op = $cl = $ip = ""; }
	if ($i%4 == 0) { print "<tr>\n"; }
	print "<td>$op";
	print "<a href=\"edit_serv.cgi?spos=$s->[5]&ipos=$ip\">$s->[1]</a>",
	      "($s->[3])";
	print "$cl</td>\n";
	if ($i++%4 == 3) { print "</tr>\n"; }
	}
print "</table></td></tr></table>\n";
print "<a href=\"edit_serv.cgi?new=1\">$text{'index_newservice'}</a>.<p>\n";

print "<hr>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'index_rpc'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";
$i = 0;
@rlist = &list_rpcs();
if ($config{'sort_mode'} == 1) {
	@rlist = sort { uc($a->[1]) cmp uc($b->[1]) } @rlist;
	}
elsif ($config{'sort_mode'} == 2) {
	@rlist = sort { ($rpc_active{$b->[1]} ? 2 :
			 $rpc_disabled{$b->[1]} ? 1 : 0) <=>
			($rpc_active{$a->[1]} ? 2 :
			 $rpc_disabled{$a->[1]} ? 1 : 0) } @rlist;
	}
foreach $r (@rlist) {
	if ($i%4 == 0) { print "<tr $cb>\n"; }
	$ra = $rpc_active{$r->[1]};
	$rd = $rpc_disabled{$r->[1]};
	if ($ra =~ /\d/) { $op = "<b>"; $cl = "</b>"; $rp = $ra; }
	elsif ($rd =~ /\d/) { $op = "<i>"; $cl = "</i>"; $rp = $rd; }
	else { $op = $cl = $rp = ""; }
	print "<td>$op";
	print "<a href=\"edit_rpc.cgi?rpos=$r->[4]&ipos=$rp\">$r->[1]</a>";
	print "$cl</td>\n";
	if ($i++%4 == 3) { print "</tr>\n"; }
	}
print "</table></td></tr></table>\n";
print "<a href=\"edit_rpc.cgi?new=1\">$text{'index_newrpc'}</a>. <p>\n";

print "<hr>\n";
print "<form action=restart_inetd.cgi>\n";
print "<table width=100%> <tr>\n";
print "<td><input type=submit value=\"$text{'index_apply'}\"></td>\n";
print "<td valign=top> $text{'index_applymsg'}</td>\n";
print "</tr> </table> </form>\n";

print "<hr>\n";
&footer("/", $text{'index'});

0707010007a861000081a40000000000000002000000013ac0388b000016c1000000200000000000000000000000000000001900000003reloc/inetd/inetd-lib.pl  # inetd-lib.pl
# Common functions for managing inetd.conf and services files

do '../web-lib.pl';
&init_config();

# list_services()
# Returns a list of services from the services file, each being an array of
#  line name port protocol aliases index
sub list_services
{
local(@rv, $l);
$l = 0;
system("$config{'get_services_command'}") if ($config{'get_services_command'});
open(SERVICES, $config{services_file});
while(<SERVICES>) {
	chop; s/#.*$//g;
	if (/^(\S+)\s+([0-9]+)\/(\S+)\s*(.*)$/) {
		push(@rv, [ $l, $1, $2, $3, $4, scalar(@rv) ]);
		if ($config{'ipv6'}) {
			push(@rv, [ $l, $1, $2, $3.'6', $4, scalar(@rv) ]);
			}
		}
	$l++;
	}
close(SERVICES);
return @rv;
}

# create_service(name, port, proto, aliases)
# Add a new service to the list
sub create_service
{
local $p = $_[2];
if ($config{'ipv6'} && $p =~ /^(\S+)6$/) {
	# don't add the service if it is already there
	foreach $s (&list_services()) {
		return if ($s->[1] eq $_[0] && $s->[2] == $_[1] &&
			   $s->[3] eq $1);
		}
	$p =~ s/6$//;
	}
open(SERVICES, ">> $config{services_file}");
print SERVICES "$_[0]\t$_[1]/$p",$_[3] ? "\t$_[3]\n" : "\n";
close(SERVICES);
system("$config{'put_services_command'}") if ($config{'put_services_command'});
}


# modify_service(line, name, port, proto, aliases)
# Change an existing service
sub modify_service
{
local(@serv);
open(SERVICES, $config{services_file});
@serv = <SERVICES>;
close(SERVICES);
$serv[$_[0]] = "$_[1]\t$_[2]/$_[3]".($_[4] ? "\t$_[4]\n" : "\n");
open(SERVICES, "> $config{services_file}");
print SERVICES @serv;
close(SERVICES);
system("$config{'put_services_command'}") if ($config{'put_services_command'});
}


# delete_service(line)
sub delete_service
{
local(@serv);
open(SERVICES, $config{services_file});
@serv = <SERVICES>;
close(SERVICES);
splice(@serv, $_[0], 1);
open(SERVICES, "> $config{services_file}");
print SERVICES @serv;
close(SERVICES);
system("$config{'put_services_command'}") if ($config{'put_services_command'});
}

# list_inets()
# Returns a list of service details handled by inetd. RPC services
# will have a name like foo/1 or bar/1-3, where the thing after the / is
# the version or versions supported. For each service, the list contains
#  line active? rpc? name type protocol wait user path|internal args file
sub list_inets
{
# build list of inetd files
local (@files, @rv, $l);
@files = ( $config{'inetd_conf_file'} );
opendir(DIR, $config{'inetd_dir'});
foreach $f (readdir(DIR)) {
	next if ($f =~ /^\./);
	push(@files, "$config{'inetd_dir'}/$f");
	}
closedir(DIR);

# parse each file
foreach $f (@files) {
	$l = 0;
	open(INET, $f);
	while(<INET>) {
		chop;
		if (/^(#+|#<off>#)?\s*(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\/\S+|internal)\s*(.*)$/) {
			push(@rv, [ $l, !$1, 0, $2, $3, $4,
				    $5, $6, $7, $8, $f ]);
			$rv[$#rv]->[2] = ($2 =~ /\//);
			}
		$l++;
		}
	close(INET);
	}
return @rv;
}

# create_inet(enabled, name, type, protocol, wait, user, program, args)
# Add a new service to the main inetd config file
sub create_inet
{
open(INET, ">> $config{inetd_conf_file}");
print INET ($_[0] ? "" : "#")."$_[1]\t$_[2]\t$_[3]\t$_[4]\t$_[5]\t$_[6]".
	   ($_[7] ? "\t$_[7]\n" : "\n");
close(INET);
}


# modify_inet(line, enabled, name, type, protocol,
#	      wait, user, program, args, file)
# Modify an existing inetd service
sub modify_inet
{
local(@inet);
open(INET, $_[9]);
@inet = <INET>;
close(INET);
$inet[$_[0]] = ($_[1] ? "" : "#")."$_[2]\t$_[3]\t$_[4]\t$_[5]\t$_[6]\t$_[7]".
	       ($_[8] ? "\t$_[8]\n" : "\n");
open(INET, ">$_[9]");
print INET @inet;
close(INET);
}


# delete_inet(line, file)
# Delete an internet service at some line
sub delete_inet
{
local(@inet);
open(INET, $_[1]);
@inet = <INET>;
close(INET);
splice(@inet, $_[0], 1);
open(INET, ">$_[1]");
print INET @inet;
close(INET);
}


# list_rpcs()
# Returns a list of rpc services, in the format
#  line name number aliases index
sub list_rpcs
{
local(@rv, $l);
$l = 0;
open(RPC, $config{rpc_file});
while(<RPC>) {
	chop; s/#.*$//g;
	if (/^(\S+)\s+(\d+)\s*(.*)$/) {
		push(@rv, [ $l, $1, $2, $3, scalar(@rv) ]);
		}
	$l++;
	}
close(RPC);
return @rv;
}
	
# create_rpc(name, number, aliases)
# Create a new rpc file entry
sub create_rpc
{
open(RPC, ">> $config{rpc_file}");
print RPC "$_[0]\t$_[1]",($_[2] ? "\t$_[2]\n" : "\n");
close(RPC);
}


# modify_rpc(line, name, number, aliases)
# Change an existing rpc program
sub modify_rpc
{
local(@rpcs);
open(RPC, $config{rpc_file});
@rpcs = <RPC>;
close(RPC);
$rpcs[$_[0]] = "$_[1]\t$_[2]".($_[3] ? "\t$_[3]\n" : "\n");
open(RPC, "> $config{rpc_file}");
print RPC @rpcs;
close(RPC);
}


# delete_rpc(line)
# Delete an entry from the rpc file
sub delete_rpc
{
local(@rpcs);
open(RPC, $config{rpc_file});
@rpcs = <RPC>;
close(RPC);
splice(@rpcs, $_[0], 1);
open(RPC, "> $config{rpc_file}");
print RPC @rpcs;
close(RPC);
}


# list_protocols()
# Returns a list of supported protocols on this system
sub list_protocols
{
local(@rv);
open(PROT, $config{protocols_file});
while(<PROT>) {
	chop; s/#.*$//g;
	if (!/\S/) { next; }
	/^(\S+)\s+/;
	push(@rv, $1);
	if ($config{'ipv6'}) {
		if ($1 eq 'tcp') { push(@rv, 'tcp6'); }
		elsif ($1 eq 'udp') { push(@rv, 'udp6'); }
		}
	}
close(PROT);
return &unique(@rv);
}

sub lock_inetd_files
{
&lock_file($config{'inetd_conf_file'}, 0, 1);
&lock_file($config{'services_file'}, 0, 1);
&lock_file($config{'protocols_file'}, 0, 1);
&lock_file($config{'rpc_file'}, 0, 1);
}

sub unlock_inetd_files
{
&unlock_file($config{'inetd_conf_file'});
&unlock_file($config{'services_file'});
&unlock_file($config{'protocols_file'});
&unlock_file($config{'rpc_file'});
}

%prot_name = ("ip", "Internet Protocol",
	      "tcp", "Transmission Control Protocol",
	      "udp", "User Datagram Protocol",
	      "tcp6", "Transmission Control Protocol IPv6",
	      "udp6", "User Datagram Protocol IPv6");

1;
   070701000636da000041ed0000000000000001000000023ac03bfb00000000000000200000000000000000000000000000001100000003reloc/inetd/lang  070701000636db000081a40000000000000002000000013ac0388b00000f66000000200000000000000000000000000000001400000003reloc/inetd/lang/en   index_title=Internet Services
index_list=service list
index_save=Save
index_delete=Delete
index_create=Create

index_service=Internet Services
index_newservice=Create a new internet service
index_rpc=RPC Programs
index_newrpc=Create a new RPC program
index_apply=Apply Changes
index_applymsg=Click this button to apply the current configuration by sending a SIGHUP signal to the running <tt>inetd</tt> process

error_restart=Failed to restart Inetd
error_saverpc=Failed to save RPC program
error_invalidprgname='$1' is not a valid program name
error_invalidprgnum='$1' is not a valid program number
error_invalidver='$1' is not a valid RPC version
error_noprotocol=You must choose at least one protocol
error_notexist='$1' does not exist
error_notexecutable='$1' is not executable
error_invalidcmd='$1' is not a valid command
error_nouser=You must select a user
error_prgexist=An RPC program called $1 already exists
error_prginuse=The RPC program number $1 is already in use
error_saveservice=Failed to save internet service
error_invalidport='$1' is not a valid port number
error_invalidservice='$1' is not a valid service name
error_portnum=Port number $1 must be >0 and <65536
error_invalidprg='$1' is not a valid program
error_invalidarg='$1' is not a valid arg list
error_invalidwrapper='$1' is not a valid TCP-wrappers service
error_invalidpermin='$1' is not a valid maximum per minute
error_invalidchildnum='$1' is not a valid number of child processes
error_childnum=If a maximum per minute is given, so must a number of child processes
error_serviceexist=A service using port $1 and protocol $2 already exists
error_nameexist=A service with name $1 and protocol $2 already exists
error_inetservice=An internet service with name $1 and protocol $2 already exists

editrpc_title1=Create RPC Program
editrpc_title2=Edit RPC Program
editrpc_detail=RPC Program Details
editrpc_prgname=Program Name
editrpc_prgnum=Program Number
editrpc_aliase=Aliases
editrpc_server=Server Program
editrpc_noassigned=No program assigned
editrpc_disable=Program disabled..
editrpc_enable=Program enabled..
editrpc_socket=Socket Type
editrpc_version=RPC Versions
editrpc_protocol=Protocols
editrpc_internal=Internal
editrpc_command=Command
editrpc_waitmode=Wait Mode
editrpc_wait=Wait until complete
editrpc_nowait=Don't wait
editrpc_execasuser=Execute As User
editrpc_max=Max per Minute
editrpc_default=Default
editrpc_execasgrp=Execute as Group

editserv_title1=Create Internet Service
editserv_title2=Edit Internet Service
editserv_detail=Internet Service Details
editserv_name=Service Name
editserv_port=Port Number
editserv_program=Program
editserv_args=Args
editserv_maxchild=Max Child Processes
editserv_execlogin=Execute As Login Class
editserv_wrapper=TCP-Wrapper
editserv_inetd=Internal to <tt>inetd</tt>

log_apply=Applied changes
log_create_serv=Created service $1
log_modify_serv=Modified service $1
log_delete_serv=Deleted service $1
log_create_prog=Created service and program $1
log_modify_prog=Modified service and program $1
log_delete_prog=Deleted service and program $1
log_create_serv_l=Created service $1 on port $2
log_modify_serv_l=Modified service $1 on port $2
log_delete_serv_l=Deleted service $1 on port $2
log_create_prog_l=Created service $1 on port $2 for program $3
log_modify_prog_l=Modified service $1 on port $2 for program $3
log_delete_prog_l=Deleted service $1 on port $2 for program $3

log_create_rpc=Created RPC $1
log_modify_rpc=Modified RPC $1
log_delete_rpc=Deleted RPC $1
log_create_rprog=Created RPC and program $1
log_modify_rprog=Modified RPC and program $1
log_delete_rprog=Deleted RPC and program $1
log_create_rpc_l=Created RPC $1 number $2
log_modify_rpc_l=Modified RPC $1 number $2
log_delete_rpc_l=Deleted RPC $1 number $2
log_create_rprog_l=Created RPC $1 number $2 for program $3
log_modify_rprog_l=Modified RPC $1 number $2 for program $3
log_delete_rprog_l=Deleted RPC $1 number $2 for program $3

  070701000636dc000081a40000000000000002000000013ac0388b00001086000000200000000000000000000000000000001400000003reloc/inetd/lang/es   index_title=Servicios de Internet
index_list=lista de sercicios
index_save=Salvar
index_delete=Borrar
index_create=Crear

index_service=Servicios de Internet
index_newservice=Crear un nuevo servicio de internet
index_rpc=Programas RPC
index_newrpc=Crear un nuevo programa RPC
index_apply=Aplicar Cambios
index_applymsg=Haz click en este bot髇 para aplicar la configuraci髇 en curso mediante en env韔 de una se馻l SIGHUP al proceso <tt>inetd</tt> en ejecuci髇

error_restart=No pude rearrancar Inetd
error_saverpc=No pude salvar programa RPC
error_invalidprgname='$1' no es un nombre de programa v醠ido
error_invalidprgnum='$1' no es un n鷐ero de programa v醠ido
error_invalidver='$1' no es una versi髇 RPC v醠ida
error_noprotocol=Debes de seleccionar al menos un protocolo
error_notexist='$1' no existe
error_notexecutable='$1' no es ejecutable
error_invalidcmd='$1' no es un comando v醠ido
error_nouser=Debes de seleccionar un usuario
error_prgexist=Ya existe un programa RPC llamado $1
error_prginuse=El n鷐ero $1 de programa RPC ya est en uso
error_saveservice=No pude salvar servicio de internet
error_invalidport='$1' no es un n鷐ero v醠ido de puerto
error_invalidservice='$1' no es un nombre v醠ido de servicio
error_portnum=El n鷐ero de puerto $1 debe de ser >0 y <65536
error_invalidprg='$1' no es un programa v醠ido
error_invalidarg='$1' no es una lista v醠ida de argumentos
error_invalidwrapper='$1' no es un servicio v醠ido de arropadores-TCP
error_invalidpermin='$1' no es un m醲imo por minuto v醠ido
error_invalidchildnum='$1' no es un n鷐ero v醠ido de procesos hijo
error_childnum=Si se digita un m醲imo por minuto, se debe de hacer lo mismo con el n鷐ero de procesos hijo
error_serviceexist=Ya existe un servicio que usa el puerto $1 y protocolo $2
error_nameexist=Ya existe un servicio llamado $1 y protocolo $2
error_inetservice=Ya existe un servicio de internet llamado $1 con protocolo $2

editrpc_title1=Crear Programa RPC
editrpc_title2=Editar Programa RPC
editrpc_detail=Detalles de Programa RPC
editrpc_prgname=Nombre de Programa
editrpc_prgnum=N鷐ero de Programa
editrpc_aliase=Aliases
editrpc_server=Programa de Servidor
editrpc_noassigned=No se ha asignado programa
editrpc_disable=Programa desactivado...
editrpc_enable=Programa activado...
editrpc_socket=Tipo de Socket
editrpc_version=Versiones RPC
editrpc_protocol=Protocolos
editrpc_internal=Interno
editrpc_command=Comando
editrpc_waitmode=Modo de Espera
editrpc_wait=Esperar hasta que se complete
editrpc_nowait=No esperar
editrpc_execasuser=Ejecutar Como Usuario
editrpc_max=M醲. por Minuto
editrpc_default=Por defecto
editrpc_execasgrp=Ejecutar como Grupo

editserv_title1=Crar Servicio de Internet
editserv_title2=Editar Servicio de Internet
editserv_detail=Detalles de Servicio de Internet
editserv_name=Nombre de Servicio
editserv_port=N鷐ero de Puerto
editserv_program=Programa
editserv_args=Argumentoss
editserv_maxchild=M醲. Procesos Hijo
editserv_execlogin=Ejecutar Como Clase de Login
editserv_wrapper=Arropador-TCP
editserv_inetd=Interno a <tt>inetd</tt>

log_apply=Cambios aplicados
log_create_serv=Creado servicio $1
log_modify_serv=Modificado servicio $1
log_delete_serv=Borrado servicio $1
log_create_prog=Creado servicio y programa $1
log_modify_prog=Modificado servicio y programa $1
log_delete_prog=Borrado servicio y programa $1
log_create_serv_l=Creado servicio $1 en puerto $2
log_modify_serv_l=Modificado servicio $1 en puerto $2
log_delete_serv_l=Borrado servicio $1 en puerto $2
log_create_prog_l=Creado servicio $1 en puerto $2 para programa $3
log_modify_prog_l=Modificado servicio $1 en puerto $2 para programa $3
log_delete_prog_l=Borrado servicio $1 en puerto $2 para programa $3

log_create_rpc=Creado RPC $1
log_modify_rpc=Modificado RPC $1
log_delete_rpc=Borrado RPC $1
log_create_rprog=Creado RPC y programa $1
log_modify_rprog=Modificado RPC y programa $1
log_delete_rprog=Borrado RPC y programa $1
log_create_rpc_l=Creado RPC $1 n鷐ero $2
log_modify_rpc_l=Modificado RPC $1 n鷐ero $2
log_delete_rpc_l=Borrado RPC $1 n鷐ero $2
log_create_rprog_l=Creado RPC $1 n鷐ero $2 para programa $3
log_modify_rprog_l=Modificad RPC $1 n鷐ero $2 para programa $3
log_delete_rprog_l=Borrado RPC $1 n鷐ero $2 para programa $3

  070701000636dd000081a40000000000000002000000013ac0388b000011f7000000200000000000000000000000000000001400000003reloc/inetd/lang/fr   index_title=Services internet
index_list=list des services
index_save=Enregistrer
index_delete=Supprimer
index_create=Cr閑r

index_service=Services internet
index_newservice=Cr閑r un nouveau service internet
index_rpc=Programmes RPC
index_newrpc=Cr閑r un nouveau programme RPC
index_apply=Mettre  jour
index_applymsg=Cliquer sur ce bouton pour prendre en compte la configuration courante en envoyant un signal <tt>SIGHUP</tt> au processus <tt>inetd</tt> en cours.

error_restart=Impossible de red閙arrer <tt>inetd</tt>
error_saverpc=Impossible de cr閑r le programme RPC
error_invalidprgname='$1' n'est pas un nom de programme valide
error_invalidprgnum='$1' n'est pas un num閞o de programme valide
error_invalidver='$1' n'est pas une version de RPC valide
error_noprotocol=Vous devez choisir au moins un protocole
error_notexist='$1' n'existe pas
error_notexecutable='$1' n'est pas ex閏utable
error_invalidcmd='$1' n'est pas une commande valide
error_nouser=Vous devez choisir un utilisateur
error_prgexist=Un programme RPC du nom de $1 existe d閖
error_prginuse=Le num閞o de programme RPC $1 est d閖 utilis
error_saveservice=Impossible de cr閑r le service internet
error_invalidport='$1' n'est pas un num閞o de port valide
error_invalidservice='$1' n'est pas un nom de service valide
error_portnum=Le num閞o de port $1 doit 阾re >0 et <65536
error_invalidprg='$1' n'est pas un programme valide
error_invalidarg='$1' n'est pas une liste d'arguments valide
error_invalidwrapper='$1' n'est pas un service des TCP-wrappers valide
error_invalidpermin='$1' n'est pas un maximum valide d'ex閏utions par minutes
error_invalidchildnum='$1' n'est pas un nombre valide de processus fils
error_childnum=Il faut sp閏ifier un nombre de processus fils si le maximum d'ex閏utions par minute est sp閏ifi
error_serviceexist=Un service utilisant le port $1 et le protocole $2 existe d閖
error_nameexist=Un service du nom de $1 et utilisant le protocole $2 existe d閖
error_inetservice=Un service internet du nom de $1 et utilisant le protocole $2 existe d閖

editrpc_title1=Cr閍tion d'un programme RPC
editrpc_title2=Modification d'un programme RPC
editrpc_detail=Details du programme RPC
editrpc_prgname=Nom du programme
editrpc_prgnum=Num閞o du programme
editrpc_aliase=Synonymes
editrpc_server=Serveur
editrpc_noassigned=Aucun programme assign
editrpc_disable=Programme arr阾
editrpc_enable=Programme en fonctionnement
editrpc_socket=Type de socket
editrpc_version=Version de RPC
editrpc_protocol=Protocole
editrpc_internal=Interne
editrpc_command=Commande
editrpc_waitmode=Mode d'attente
editrpc_wait=Attend d'avoir termin
editrpc_nowait=N'attend pas
editrpc_execasuser=Ex閏ute en tant qu'utilisateur
editrpc_max=Maximum par minute
editrpc_default=D閒aut
editrpc_execasgrp=Ex閏ute en tant que groupe

editserv_title1=Cr閍tion d'un service internet
editserv_title2=Modification d'un service internet
editserv_detail=D閠ails du service internet
editserv_name=Nom du service
editserv_port=Num閞o de port
editserv_program=Programme
editserv_args=Arguments
editserv_maxchild=Nombre maximum de processus fils
editserv_execlogin=Ex閏ute en tant que classe de connexion
editserv_wrapper=TCP-Wrapper
editserv_inetd=Interne  <tt>inetd</tt>

log_apply=Changements effectu閟
log_create_serv=Cr閍tion du service $1
log_modify_serv=Modification du service $1
log_delete_serv=Suppression du service $1
log_create_prog=Cr閍tion du service et du programme $1
log_modify_prog=Modification du service et du programme $1
log_delete_prog=Suppression du service et du programme $1
log_create_serv_l=Cr閍tion du service $1 sur le port $2
log_modify_serv_l=Modification du service $1 sur le port $2
log_delete_serv_l=Suppression du service $1 sur le port $2
log_create_prog_l=Cr閍tion du service $1 sur le port $2 pour le programme $3
log_modify_prog_l=Modification du service $1 sur le port $2 pour le programme $3
log_delete_prog_l=Suppression du service $1 sur le port $2 pour le programme $3

log_create_rpc=Cr閍tion du RPC $1
log_modify_rpc=Modification du RPC $1
log_delete_rpc=Suppression RPC $1
log_create_rprog=Cr閍tion du RPC et du programme $1
log_modify_rprog=Modification du RPC et du programme $1
log_delete_rprog=Suppression du RPC et du programme $1
log_create_rpc_l=Cr閍tion du RPC $1 num閞o $2
log_modify_rpc_l=Modification du RPC $1 num閞o $2
log_delete_rpc_l=Suppression du RPC $1 num閞o $2
log_create_rprog_l=Cr閍tion du RPC $1 num閞o $2 pour le programme $3
log_modify_rprog_l=Modification du RPC $1 num閞o $2 pour le programme $3
log_delete_rprog_l=Suppression du RPC $1 num閞o $2 pour le programme $3
 070701000636de000081a40000000000000002000000013ac0388b000012fd000000200000000000000000000000000000001400000003reloc/inetd/lang/hu   # webmin-0.82inetd/lang/hu
# Translated by <kissg@sztaki.hu>

index_title=Internet szolg醠tat醩ok
index_list=szolg醠tat醩lista
index_save=M骴os韙醩
index_delete=Megsz黱tet閟
index_create=L閠rehoz醩

index_service=Internet szolg醠tat醩ok (az inetd-n kereszt黮)
index_newservice=趈 szolg醠tat醩 bekonfigur醠醩a
index_rpc=RPC programok
index_newrpc=趈 RPC program bekonfigur醠醩a
index_apply=V醠toztat醩ok 閘etbe l閜tet閟e
index_applymsg=Ezt a gombot megnyomva egy SIGHUP jelz閟t k黮dhetsz az <tt>inetd</tt> programnak, aminek k鰒etkezt閎en az im閚t be醠l韙ott konfigur醕i azonnal 閘etbe l閜. Ellenkez esetben csak a k鰒etkez rendszerind韙醩t髄 lesz csak hat醩a v醠toztat醩oknak.

error_restart=Nem siker黮t az <tt>inetd</tt>-t 鷍raind韙ani
error_saverpc=Nem siker黮t bekonfigur醠ni az 鷍 RPC programot
error_invalidprgname=A '$1' programn関 rossz
error_invalidprgnum=A '$1' azonos韙髎z醡 rossz
error_invalidver=A '$1' hib醩 RPC verzi髎z醡
error_noprotocol=Nem v醠asztott醠 ki egy protokollt sem
error_notexist=A '$1' program nem l閠ezik
error_notexecutable=A '$1' program nem v間rehajthat
error_invalidcmd='$1' hib醩 parancs
error_nouser=Nem adt醠 meg felhaszn醠髏
error_prgexist='$1' nev RPC program m醨 van
error_prginuse=A '$1' azonos韙 sz醡 foglalt
error_saveservice=Nem siker黮t elmenteni az internet szolg醠tat醩t
error_invalidport=A '$1' portsz醡 rossz
error_invalidservice=A '$1' szolg醠tat醩n関 rossz
error_portnum=A $1 portsz醡 nem 1 閟 65535 k鰖 esik
error_invalidprg=A '$1' programn関 hib醩
error_invalidarg=A '$1' argumentumlista hib醩
error_invalidwrapper='$1' nem lehet a TCP wrapper neve
error_invalidpermin='$1' nem lehet a percenk閚ti ind韙醩ok maxim醠is sz醡a
error_invalidchildnum='$1' nem lehet a gyerekprocesszek sz醡a
error_childnum=Ha a percenk閚ti korl醫ot megadtad, akkor limit醠no kell a gyerekprocesszek sz醡醫 is
error_serviceexist=A $1. $2 porton m醨 van egy szolg醠tat醩
error_nameexist=M醨 van egy $1 nev szolg醠tat醩 $2 protokollal
error_inetservice=M醨 van egy $1 nev szolg醠tat醩 $2 protokollal

editrpc_title1=趈 RPC program bekonfigur醠醩a
editrpc_title2=RPC program m骴os韙醩a
editrpc_detail=Az RPC szolg醠tat醩 azonos韙醩a
editrpc_prgname=Neve
editrpc_prgnum=Azonos韙髎z醡
editrpc_aliase=M醩odlagos nevei
editrpc_server=Kiszolg醠髉rogram
editrpc_noassigned=Nincs program
editrpc_disable=Program letiltva
editrpc_enable=Program enged閘yezve
editrpc_socket=Socket t韕usa
editrpc_version=Megengedett RPC verzi髃
editrpc_protocol=Protokoll
editrpc_internal=Bels<br>
editrpc_command=K黮s parancs
editrpc_waitmode=V醨junk m韌 lefut?
editrpc_wait=Igen
editrpc_nowait=Nem
editrpc_execasuser=Mely felhaszn醠<br> nev閎en fusson?
editrpc_max=Percenk閚t lefut醩ok<br>maxim醠is sz醡a?
editrpc_default=Szok醩os
editrpc_execasgrp=Mely csoport<br> nev閎en fusson?

editserv_title1=趈 IP szolg醠tat醩 megad醩a
editserv_title2=Internet szolg醠tat醩 m骴os韙醩a
editserv_detail=Internet szolg醠tat醩 azonos韙醩a
editserv_name=N関
editserv_port=Portsz醡
editserv_program=Progra&#109;
editserv_args=<br>Argumentumok
editserv_maxchild=Gyerekek<br> maxim醠is sz醡a
editserv_execlogin=Felhaszn醠骾 oszt醠y
editserv_wrapper=TCP Wrapper
editserv_inetd=Az <tt>inetd</tt> be閜韙ett szolg醠tat醩a

log_apply=V醠toz醩ok 閘etbe l閜tet閟e
log_create_serv=A $1 szolg醠tat醩 l閠rehoz醩a
log_modify_serv=A $1 szolg醠tat醩 m骴os韙醩a
log_delete_serv=A $1 szolg醠tat醩 t鰎l閟e
log_create_prog=A $1 szolg醠tat醩 閟 program l閠rehoz醩a
log_modify_prog=A $1 szolg醠tat醩 閟 program m骴os韙醩a
log_delete_prog=A $1 szolg醠tat醩 閟 program t鰎l閟e
log_create_serv_l=A $1 szolg醠tat醩 l閠rehoz醩a a $2. porton
log_modify_serv_l=A $1 szolg醠tat醩 m骴os韙醩a a $2. porton
log_delete_serv_l=A $1 szolg醠tat醩 t鰎l閟e a $2. porton
log_create_prog_l=A $3 program 醠tal ny鷍tott $1 szolg醠tat醩 l閠rehoz醩a a $2. porton
log_modify_prog_l=A $3 program 醠tal ny鷍tott $1 szolg醠tat醩 m骴os韙醩a a $2. porton
log_delete_prog_l=A $3 program 醠tal ny鷍tott $1 szolg醠tat醩 t鰎l閟e a $2. porton

log_create_rpc=A $1 RPC szolg醠tat醩 l閠rehoz醩a
log_modify_rpc=A $1 RPC szolg醠tat醩 m骴os韙醩a
log_delete_rpc=A $1 RPC szolg醠tat醩 t鰎l閟e
log_create_rprog=A $1 RPC szolg醠tat醩 閟 program l閠rehoz醩a
log_modify_rprog=A $1 RPC szolg醠tat醩 閟 program m骴os韙醩a
log_delete_rprog=A $1 RPC szolg醠tat醩 閟 program t鰎l閟e
log_create_rpc_l=A $1 RPC szolg醠tat醩 l閠rehoz醩a $2 sz醡mal
log_modify_rpc_l=A $1 RPC szolg醠tat醩 m骴os韙醩a $2 sz醡mal
log_delete_rpc_l=A $1 RPC szolg醠tat醩 t鰎l閟e $2 sz醡mal
log_create_rprog_l=A $3 program 醠tal ny鷍tott $1 RPC szolg醠tat醩 l閠rehoz醩a $2 sz醡mal
log_modify_rprog_l=A $3 program 醠tal ny鷍tott $1 RPC szolg醠tat醩 m骴os韙醩a $2 sz醡mal
log_delete_rprog_l=A $3 program 醠tal ny鷍tott $1 RPC szolg醠tat醩 t鰎l閟e $2 sz醡mal
   070701000636df000081a40000000000000002000000013ac0388b000010ab000000200000000000000000000000000000001400000003reloc/inetd/lang/pl   index_title=Us硊gi internetowe
index_list=listy us硊g
index_save=Zachowaj
index_delete=Usu
index_create=Utw髍z

index_service=Us硊gi internetowe
index_newservice=Utw髍z now us硊g internetow
index_rpc=Programy RPC
index_newrpc=Utw髍z nowy program RPC
index_apply=Zastosuj zmiany
index_applymsg=Naci秐ij ten przycisk, aby zastosowa bie勘c konfiguracj poprzez wys砤nie sygna硊 SIGHUP do procesu <tt>inetd</tt>

error_restart=Nie uda硂 sie zrestartowa Inetd
error_saverpc=Nie uda硂 sie zachowac programu RPC
error_invalidprgname='$1' nie jest poprawn nazw programu
error_invalidprgnum='$1' nie jest poprawnym numerem programu
error_invalidver='$1' nie jest poprawn wersj RPC
error_noprotocol=Musisz wybra co najmniej jeden protok蟪
error_notexist='$1' nie istnieje
error_notexecutable='$1' nie jest uruchamialny
error_invalidcmd='$1' nie jest poprawnym poleceniem
error_nouser=Musisz wybra u縴tkownika
error_prgexist=Program RPC o&nbsp;nazwie $1 ju istnieje
error_prginuse=Numer programu RPC $1 jest ju u縴wany
error_saveservice=Nie uda硂 si zapisa us硊gi internetowej
error_invalidport='$1' nie jest poprawnym numerem portu
error_invalidservice='$1' nie jest poprawn nazw us硊gi
error_portnum=Numer portu $1 musi by >0 i&nbsp;<65536
error_invalidprg='$1' nie jest poprawnym programem
error_invalidarg='$1' nie jest poprawn list argument體
error_invalidwrapper='$1' nie jest poprawn us硊g TCP-wrappers
error_invalidpermin='$1' nie jest poprawn maksymaln liczb po潮cze na minut
error_invalidchildnum='$1' nie jest poprawn liczba proces體 potomnych
error_childnum=Je秎i podano maksymaln liczb po潮cze na minut, musi by tak縠 podana liczba proces體 potomnych
error_serviceexist=Us硊ga korzystaj眂a z&nbsp;portu $1 po protokole $2 ju istnieje
error_nameexist=Us硊ga o&nbsp;nazwie $1 po protokole $2 ju istnieje
error_inetservice=Us硊ga internetowa o&nbsp;nazwie $1 po protokole $2 ju istnieje

editrpc_title1=Utw髍z program RPC
editrpc_title2=Zmie program RPC
editrpc_detail=Dane programu RPC
editrpc_prgname=Nazwa programu
editrpc_prgnum=Numer programu
editrpc_aliase=Aliasy
editrpc_server=Program serwera
editrpc_noassigned=Nie przypisano programu
editrpc_disable=Program wy潮czony..
editrpc_enable=Program w潮czony..
editrpc_socket=Typ gniazda
editrpc_version=Wersje RPC
editrpc_protocol=Protok蟪
editrpc_internal=Wewn阾rznie
editrpc_command=Polecenie
editrpc_waitmode=Tryb czekania
editrpc_wait=Czekaj na zako馽zenie
editrpc_nowait=Nie czekaj
editrpc_execasuser=Uruchom jako u縴tkownik
editrpc_max=Maks. na minut
editrpc_default=Domy秎ne
editrpc_execasgrp=Uruchom jako grupa

editserv_title1=Utw髍z us硊g internetow
editserv_title2=Zmie us硊g internetow
editserv_detail=Dane us硊gi internetowej
editserv_name=Nazwa us硊gi
editserv_port=Numer portu
editserv_program=Program
editserv_args=Argumenty
editserv_maxchild=Maks. liczba potomnych
editserv_execlogin=Uruchom w&nbsp;klasie logowania
editserv_wrapper=TCP-Wrapper
editserv_inetd=Wewn阾rzne polecenie <tt>inetd</tt>

log_apply=Zastosowano zmiany
log_create_serv=Utworzono us硊g $1
log_modify_serv=Zmieniono us硊g $1
log_delete_serv=Wy潮czono us硊g $1
log_create_prog=Utworzono us硊g i&nbsp;program $1
log_modify_prog=Zmieniono us硊g i&nbsp;program $1
log_delete_prog=Wy潮czono us硊g i&nbsp;program $1
log_create_serv_l=Utworzono us硊g $1 na porcie $2
log_modify_serv_l=Zmieniono us硊g $1 na porcie $2
log_delete_serv_l=Wy潮czono us硊g $1 na porcie $2
log_create_prog_l=Utworzono us硊g $1 na porcie $2 dla programu $3
log_modify_prog_l=Zmieniono us硊g $1 na porcie $2 dla programu $3
log_delete_prog_l=Wy潮czono us硊g $1 na porcie $2 dla programu $3

log_create_rpc=Utworzono RPC $1
log_modify_rpc=Zmieniono RPC $1
log_delete_rpc=Wy潮czono RPC $1
log_create_rprog=Utworzono RPC i&nbsp;program $1
log_modify_rprog=Zmieniono RPC i&nbsp;program $1
log_delete_rprog=Wy潮czono RPC i&nbsp;program $1
log_create_rpc_l=Utworzono RPC $1 o&nbsp;numerze $2
log_modify_rpc_l=Zmieniono RPC $1 o&nbsp;numerze $2
log_delete_rpc_l=Wy潮czono RPC $1 o&nbsp;numerze $2
log_create_rprog_l=Utworzono RPC $1 o&nbsp;numerze $2 dla programu $3
log_modify_rprog_l=Zmieniono RPC $1 o&nbsp;numerze $2 dla programu $3
log_delete_rprog_l=Wy潮czono RPC $1 o&nbsp;numerze $2 dla programu $3

 070701000636e0000081a40000000000000002000000013ac0388b0000106b000000200000000000000000000000000000001400000003reloc/inetd/lang/sv   index_title=Internettj鋘ster
index_list=tj鋘stelista
index_save=Spara
index_delete=Ta bort
index_create=L鋑g till

index_service=Internettj鋘ster
index_newservice=L鋑g till en internettj鋘st
index_rpc=RPC-program
index_newrpc=L鋑g till ett RPC-program
index_apply=Utf鰎 鋘dringarna
index_applymsg=Tryck p denna knapp f鰎 att anv鋘da dessa inst鋖lningar genom att en SIGHUP-signal skickas till den <tt>inetd</tt>-process som k鰎s just nu.

error_restart=Det gick inte att starta om Inetd
error_saverpc=Det gick inte att spara RPC-program
error_invalidprgname='$1' 鋜 inte ett giltigt programnamn
error_invalidprgnum='$1' 鋜 inte ett giltigt programnummer
error_invalidver='$1' 鋜 inte en giltig RPC-version
error_noprotocol=Du m錽te ange minst ett protokoll
error_notexist='$1' finns inte
error_notexecutable='$1' 鋜 inte k鰎bart
error_invalidcmd='$1' 鋜 inte ett giltigt kommando
error_nouser=Du m錽te ange en anv鋘dare
error_prgexist=Det finns redan ett RPC-program med namnet $1
error_prginuse=RPC-program nummer $1 anv鋘ds redan
error_saveservice=Det gick inte att spara internettj鋘st
error_invalidport='$1' 鋜 inte ett giltigt portnummer
error_invalidservice='$1' 鋜 inte ett giltigt tj鋘stenamn
error_portnum=Portnumret $1 m錽te ligga mellan 0 och 65536
error_invalidprg='$1' 鋜 inte ett giltigt program
error_invalidarg='$1' 鋜 inte en giltig argumentlista
error_invalidwrapper='$1' 鋜 inte en giltig TCP-wrappers-tj鋘st
error_invalidpermin='$1' 鋜 inte ett giltigt maximum per minut
error_invalidchildnum='$1' 鋜 inte ett giltigt antal underprocesser
error_childnum=Om du har angivit ett maximum per minut m錽te du ocks ange ett antal underprocesser
error_serviceexist=Det finns redan en tj鋘st som anv鋘der port $1 och protokoll $2
error_nameexist=Det finns redan en tj鋘st med namnet $1 och som anv鋘der protokoll $2
error_inetservice=Det finns redan en internettj鋘st med namnet $1 och som anv鋘der protokoll $2

editrpc_title1=L鋑g till ett RPC-program
editrpc_title2=膎dra RPC-program
editrpc_detail=Uppgifter om RPC-program
editrpc_prgname=Programnamn
editrpc_prgnum=Programnummer
editrpc_aliase=Alias
editrpc_server=Serverprogram
editrpc_noassigned=Inget program tilldelat
editrpc_disable=Programmet deaktiverat ...
editrpc_enable=Programmet aktiverat ...
editrpc_socket=Sockettyp
editrpc_version=RPC-versioner
editrpc_protocol=Protokoll
editrpc_internal=Internt
editrpc_command=Kommando
editrpc_waitmode=V鋘tel鋑e
editrpc_wait=V鋘ta tills det 鋜 klart
editrpc_nowait=V鋘ta inte
editrpc_execasuser=K鰎 som anv鋘dare
editrpc_max=Max per minut
editrpc_default=Standard
editrpc_execasgrp=K鰎 som grupp

editserv_title1=L鋑g till internettj鋘st
editserv_title2=膎dra internettj鋘st
editserv_detail=Uppgifter om internettj鋘st
editserv_name=Tj鋘stenamn
editserv_port=Portnummer
editserv_program=Program
editserv_args=Argument
editserv_maxchild=Maximalt antal underprocesser
editserv_execlogin=K鰎 som inloggningsklass
editserv_wrapper=TCP-Wrapper
editserv_inetd=Internt till <tt>inetd</tt>

log_apply=Tog 鋘dringarna i drift
log_create_serv=Skapade tj鋘sten $1
log_modify_serv=Modifierade tj鋘sten $1
log_delete_serv=Tog bort tj鋘sten $1
log_create_prog=Skapade tj鋘sten och programmet $1
log_modify_prog=Modifierade tj鋘sten och programmet $1
log_delete_prog=Tog bort tj鋘sten och programmet $1
log_create_serv_l=Skapade tj鋘sten $1 p port $2
log_modify_serv_l=Modifierade tj鋘sten $1 p port $2
log_delete_serv_l=Tog bort tj鋘sten $1 p port $2
log_create_prog_l=Skapade tj鋘sten $1 p port $2 f鰎 program $3
log_modify_prog_l=Modifierade tj鋘sten $1 p port $2 f鰎 program $3
log_delete_prog_l=Tog bort tj鋘sten $1 p port $2 f鰎 program $3

log_create_rpc=Skapade RPC $1
log_modify_rpc=Modifierade RPC $1
log_delete_rpc=Tog bort RPC $1
log_create_rprog=Skapade RPC och program $1
log_modify_rprog=Modifierade RPC och program $1
log_delete_rprog=Tog bort RPC och program $1
log_create_rpc_l=Skapade RPC $1 nummer $2
log_modify_rpc_l=Modifierade RPC $1 nummer $2
log_delete_rpc_l=Tog bort RPC $1 nummer $2
log_create_rprog_l=Skapade RPC $1 nummer $2 f鰎 program $3
log_modify_rprog_l=Modifierade RPC $1 nummer $2 f鰎 program $3
log_delete_rprog_l=Tog bort RPC $1 nummer $2 f鰎 program $3
 070701000636e1000081a40000000000000002000000013ac0388b0000108e000000200000000000000000000000000000001400000003reloc/inetd/lang/tr   index_title=Internet Servisleri
index_list=servis listesi
index_save=Kaydet
index_delete=Sil
index_create=Olu⺶ur

index_service=Internet Servisleri
index_newservice=Yeni bir internet servisi olu⺶ur
index_rpc=RPC Programlar
index_newrpc=Yeni bir RPC program olu⺶ur
index_apply=De餴㱮klikleri Uygula
index_applymsg=Bu butonu t齥lad齨齴da 鏰lan inetd iemine SIGHUP sinyali g鰊derilerek mevcut yap齦and齬ma uygulanacakt齬.

error_restart=Inetd'nin tekrar baat齦mas齨da hata olu⺶u
error_saverpc=RPC program齨齨 kaydedilmesinde hata olu⺶u
error_invalidprgname='$1' ge鏴rli bir program ismi de餴l
error_invalidprgnum='$1' ge鏴rli bir program numaras de餴ldir
error_invalidver='$1' ge鏴rli bir RPC s黵黰 de餴ldir
error_noprotocol=En az bir protokol se鏼elisiniz
error_notexist='$1' mevcut de餴l
error_notexecutable='$1' 鏰lt齬齦abilir de餴ldir
error_invalidcmd='$1' ge鏴rli bir komut de餴ldir
error_nouser=Bir kullan齝 se鏼elisiniz
error_prgexist=$1 RPC program her zaman mevcuttur
error_prginuse=RPC program numaras $1 her zaman kullan齧dad齬
error_saveservice=輓ternet servisinin kaydedilmesinde hata olu⺶u
error_invalidport='$1' ge鏴rli bir port numaras de餴ldir
error_invalidservice='$1' ge鏴rli bir servis ismi de餴ldir
error_portnum=Port numaras $1  >0 ve <65536 olmal齞齬
error_invalidprg='$1' ge鏴rli bir program de餴ldir
error_invalidarg='$1' ge鏴rli bir arg黰an listesi de餴ldir
error_invalidwrapper='$1' ge鏴rli bir TCP-g鰊derim servisi de餴ldir
error_invalidpermin='$1' ge鏴rli bir en 鏾k dakika bana de餴ldir
error_invalidchildnum='$1' ge鏴rli bir 鏾cuk iem say齭 de餴ldir
error_childnum=En 鏾k dakika bana girildiyse , bir 鏾cuk iem say齭 girmelisiniz
error_serviceexist=Servisin kulland port $1 ve protokol $2 her zaman mevcuttur
error_nameexist=Servis $1 ve protokol $2 her zaman mevcuttur.
error_inetservice=輓ternet servisi $1 ve protokol $2 her zaman mevcuttur.

editrpc_title1=RPC Program Olu⺶ur
editrpc_title2=RPC Program De餴⺶ir
editrpc_detail=RPC Program Ayr齨t齦ar
editrpc_prgname=Program 輘mi
editrpc_prgnum=Program Numaras
editrpc_aliase=Takma 輘imler
editrpc_server=Sunucu Program
editrpc_noassigned=Belirlenen program yok
editrpc_disable=Program kapal..
editrpc_enable=Program aktif..
editrpc_socket=Soket Tipi
editrpc_version=RPC S黵黰leri
editrpc_protocol=Protokoller
editrpc_internal=葭
editrpc_command=Komut
editrpc_waitmode=Bekleme Modu
editrpc_wait=Tamamlanana kadar bekle
editrpc_nowait=Bekleme
editrpc_execasuser=Kullan齝 Olarak 莂lt齬
editrpc_max=En 鏾k dakika bana
editrpc_default=謓tan齧l
editrpc_execasgrp=Grup olarak 鏰lt齬

editserv_title1=輓ternet Servisi Olu⺶ur
editserv_title2=輓ternet Servisi De餴⺶ir
editserv_detail=輓ternet Service Ayr齨t齦ar
editserv_name=Servis 輘mi
editserv_port=Port Numaras
editserv_program=Program
editserv_args=Arg黰anlar
editserv_maxchild=En 鏾k 鏾cuk iem
editserv_execlogin=Giri S齨齠 Olarak 莂lt齬
editserv_wrapper=TCP-G鰊derimi
editserv_inetd=<tt>inetd</tt>'ye dahil et

log_apply=De餴㱮klikler uyguland
log_create_serv=$1 servisi olu⺶uruldu
log_modify_serv=$1 servisi de餴⺶irildi
log_delete_serv=$1 servisi silindi
log_create_prog=$1 program ve servisi olu⺶uruldu
log_modify_prog=$1 program ve servisi de餴⺶irildi
log_delete_prog=$1 program ve servisi silindi
log_create_serv_l=Port $2'deki $1 servisi olu⺶uruldu
log_modify_serv_l=Port $2'deki $1 servisi de餴⺶irildi
log_delete_serv_l=Port $2'deki $1 servisi silindi
log_create_prog_l=Program $3 i鏸n port $2'deki $1 servisi olu⺶uruldu
log_modify_prog_l=Program $3 i鏸n port $2'deki $1 servisi de餴⺶irildi
log_delete_prog_l=Program $3 i鏸n port $2'deki $1 servisi silindi

log_create_rpc=RPC $1 olu⺶uruldu
log_modify_rpc=RPC $1 de餴⺶irildi
log_delete_rpc=RPC $1 silindi
log_create_rprog=$1 program ve RPC olu⺶uruldu
log_modify_rprog=$1 program ve RPC de餴⺶irildi
log_delete_rprog=$1 program ve RPC silindi
log_create_rpc_l=RPC $1 numara $2 olu⺶uruldu
log_modify_rpc_l=RPC $1 numara $2 de餴⺶irildi
log_delete_rpc_l=RPC $1 numara $2 silindi
log_create_rprog_l=$3 program i鏸n RPC $1 numara $2 olu⺶uruldu
log_modify_rprog_l=$3 program i鏸n RPC $1 numara $2 de餴⺶irildi
log_delete_rprog_l=$3 program i鏸n RPC $1 numara $2 silindi


  070701000636e2000081a40000000000000002000000013ac0388b00000cac000000200000000000000000000000000000001700000003reloc/inetd/lang/zh_CN    index_title=Internet服务
index_list=服务列表
index_save=保存
index_delete=删除
index_create=新建

index_service=Internet服务
index_newservice=新建一个internet服务
index_rpc=RPC程序
index_newrpc=新建一个RPC服务
index_apply=应用
index_applymsg=点击此按钮, 发送 SIGHUP 信号给正在运行的<tt>inetd</tt>程序, 以应用当前的配置

error_restart=重启Inetd失败
error_saverpc=保存RPC程序失败
error_invalidprgname='$1'不是一个有效的程序名 
error_invalidprgnum='$1'不是一个有效的程序编号
error_invalidver='$1' 不是一个有效的RPC版本号
error_noprotocol=你至少要选择一种协议
error_notexist='$1'不存在
error_notexecutable='$1'不可执行
error_invalidcmd='$1'不是一个有效命令
error_nouser=你必须选择一个用户
error_prgexist=名为'$1'的RPC程序已经存在
error_prginuse=RPC程序编号 $1 正被使用
error_saveservice=保存internet服务失败
error_invalidport='$1' 不是一个有效的端口号
error_invalidservice='$1' 不是一个有效的服务名
error_portnum=端口号$1必须大于且小于65536
error_invalidprg='$1' 不是一个有效的程序
error_invalidarg='$1' 不是有效的参数
error_invalidwrapper='$1' 不是有效的TCP-wrappers服务
error_invalidpermin='$1' 不是有效的每分钟最大值
error_invalidchildnum='$1' 不是有效的子进程数目
error_childnum=假如给定了每分钟最大值, 必须给出子进程数目
error_serviceexist=已存在一个使用端口 $1 和协议 $2 的服务
error_nameexist=已存在一个名称为 $1 协议为 $2 的服务
error_inetservice=已存在一个名称为 $1 协议为 $2 的internet服务

editrpc_title1=新建RPC程序
editrpc_title2=编辑RPC程序
editrpc_detail=RPC程序细节
editrpc_prgname=程序名
editrpc_prgnum=程序编号
editrpc_aliase=别名
editrpc_server=服务程序
editrpc_noassigned=没有关联的程序
editrpc_disable=程序被禁止..
editrpc_enable=程序被允许..
editrpc_socket=Socket类型
editrpc_version=RPC版本
editrpc_protocol=协议
editrpc_internal=内部
editrpc_command=命令
editrpc_waitmode=等待模式
editrpc_wait=等待直到完成
editrpc_nowait=不等待
editrpc_execasuser=作为..用户运行
editrpc_max=每分钟最大值
editrpc_default=缺省
editrpc_execasgrp=作为..组运行

editserv_title1=新建Internet服务
editserv_title2=编辑Internet服务
editserv_detail=Internet服务细节
editserv_name=服务名
editserv_port=端口号
editserv_program=程序
editserv_args=参数
editserv_maxchild=最多子进程数
editserv_execlogin=执行在登录级别
editserv_wrapper=TCP-Wrapper
editserv_inetd=<tt>inetd</tt>内部提供

log_apply=已应用了改变值
log_create_serv=创建了服务 $1
log_modify_serv=更新了服务 $1
log_delete_serv=删除了服务 $1
log_create_prog=创建了服务和程序 $1
log_modify_prog=更新了服务和程序 $1
log_delete_prog=删除了服务和程序 $1
log_create_serv_l=在端口 $2 创建了服务 $1
log_modify_serv_l=在端口 $2 更新了服务 $1
log_delete_serv_l=在端口 $2 删除了服务 $1
log_create_prog_l=在端口 $2 创建了程序 $3 服务 $1
log_modify_prog_l=在端口 $2 更新了程序 $3 服务 $1
log_delete_prog_l=在端口 $2 删除了程序 $3 服务 $1

log_create_rpc=创建了 RPC $1
log_modify_rpc=更新了 RPC $1
log_delete_rpc=删除了 RPC $1
log_create_rprog=创建了 RPC 和程序 $1
log_modify_rprog=更新了 RPC 和程序 $1
log_delete_rprog=删除了 RPC 和程序 $1
log_create_rpc_l=创建了 RPC $1 号码 $2
log_modify_rpc_l=更新了 RPC $1 号码 $2
log_delete_rpc_l=删除了 RPC $1 号码 $2
log_create_rprog_l=创建了程序 $3的 RPC $1 号码 $2
log_modify_rprog_l=更新了程序 $3的 RPC $1 号码 $2
log_delete_rprog_l=删除了程序 $3的 RPC $1 号码 $2
0707010007a862000081a40000000000000002000000013ac0388b0000035f000000200000000000000000000000000000001a00000003reloc/inetd/log_parser.pl # log_parser.pl
# Functions for parsing this module's logs

require './inetd-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p, $long) = @_;
if ($action eq 'apply') {
	return $text{'log_apply'};
	}
elsif ($type eq 'serv') {
	local $msg = $p->{'prog'} ? "log_${action}_prog"
				  : "log_${action}_serv";
	$msg .= "_l" if ($long);
	return &text($msg, "<tt>$object</tt>", "<tt>$p->{'port'}</tt>",
		     "<tt>$p->{'prog'}</tt>");
	}
elsif ($type eq 'rpc') {
	local $msg = $p->{'prog'} ? "log_${action}_rprog"
				  : "log_${action}_rpc";
	$msg .= "_l" if ($long);
	return &text($msg, "<tt>$object</tt>", "<tt>$p->{'number'}</tt>",
		     "<tt>$p->{'prog'}</tt>");
	}
else {
	return undef;
	}
}

 0707010007a863000081a40000000000000002000000013ac0388b000003d0000000200000000000000000000000000000001800000003reloc/inetd/module.info   desc_zh_CN=inetd 服务配置
name=Inetd Admin
desc_pt=Servi鏾s e Protocolos de Internet
desc_tr=Internet Servisleri ve Protokoller
desc_fr=Services et Protocoles Internet
desc_es=Servicios y Protocolos de Internet
desc_de=Internet Dienste und Protokolle
desc_sv=Internettj鋘ster och -protokoll
desc_hu=Internet szolg醠tat醩ok 閟 protokollok
desc_ru_SU=笈易捎  鹨显纤咸 Internet
desc_pl=Us硊gi i&nbsp;protoko硑 internetowe
category=servers
os_support=slackware-linux redhat-linux/4.0 redhat-linux/4.1 redhat-linux/4.2 redhat-linux/5.0 redhat-linux/5.1 redhat-linux/5.2 redhat-linux/6.0 redhat-linux/6.1 redhat-linux/6.2 redhat-linux/7.0{-r "/etc/inetd.conf"} redhat-linux/7.1{-r "/etc/inetd.conf"} solaris debian-linux suse-linux hpux freebsd unixware openserver osf1 macos open-linux turbo-linux openbsd corel-linux cobalt-linux lfs-linux aix
desc_zh_TW.Big5=呼悔呼隔狝叭籔﹚
desc=Internet Services and Protocols
risk=low medium high
desc_ru_RU=彦疴桉  橡铗铌铍 Internet
0707010007a864000081e40000000000000002000000013ac0388b0000012e000000200000000000000000000000000000001e00000003reloc/inetd/restart_inetd.cgi #!/usr/local/bin/perl
# restart_inetd.cgi
# Send a HUP signal to the inetd process

require './inetd-lib.pl';
$whatfailed = $text{'error_restart'};

$out = &backquote_logged("$config{'restart_command'} 2>&1");
if ($?) {
	# Failed to signal inetd
	&error($out);
	}
&webmin_log("apply");
&redirect("");

  0707010007a865000081e40000000000000002000000013ac0388b00000dd3000000200000000000000000000000000000001900000003reloc/inetd/save_rpc.cgi  #!/usr/local/bin/perl
# save_rpc.cgi

require './inetd-lib.pl';
&error_setup($text{'error_saverpc'});
&ReadParse();

# Check inputs
$in{name} =~ /^[A-z][A-z0-9\_\-]+$/ ||
	&error(&text('error_invalidprgname', $in{name}));
$in{number} =~ /^[0-9]+$/ ||
	&error(&text('error_prgnum', $in{number}));
if ($in{'act'}) {
	$in{vfrom} =~ /^[0-9]+$/ ||
		&error("$in{vfrom} ");
	if ($in{vto} eq "") { $in{vto} = $in{vfrom}; }
	$in{vto} =~ /^[0-9]+$/ ||
		&error(&text('error_invalidver', $in{vto}));
	if ($in{vto} < $in{vfrom}) {
		$tmp = $in{vfrom}; $in{vfrom} = $in{vto}; $in{vto} = $tmp;
		}
	if ($in{protocols} eq "") {
		&error(&text('error_noprotocol'));
		}
	if (!$in{internal}) {
		$in{program} =~ /^\/.*/ ||
			&error(&text('error_invalidname', $in{program}));
		if ($in{'act'} == 2) {
			(-r $in{program}) ||
				&error(&text('error_notexist', $in{program}));
			(-x $in{program}) ||
				&error(&text('error_ntexecutable',$in{program}));
			}
		$in{args} =~ /^\S+/ ||
			&error(&text('error_invalidcmd', $in{args}));
		}
	$in{'user'} || &error(&text('error_nouser'));
	}

@rargs = ($in{'name'}, $in{'number'}, $in{'aliases'});
$vers = ($in{vfrom} == $in{vto} ? $in{vfrom} : "$in{vfrom}-$in{vto}");
$prots = join(',', split(/\0/, $in{protocols}));
@iargs = ($in{'act'} == 2, "$in{name}/$vers", $in{type}, "rpc/$prots");
if ($config{extended_inetd}) {
	push(@iargs, ($in{permin_def} ? $in{wait} : "$in{wait}.$in{permin}"));
	push(@iargs, ($in{group} ? "$in{user}.$in{group}" : $in{user}));
	}
else {
	push(@iargs, $in{wait});
	push(@iargs, $in{user});
	}
if ($in{internal}) { push(@iargs, "internal", undef); }
else {
	push(@iargs, $in{program});
	push(@iargs, $in{args});
	}

&lock_inetd_files();
@rpcs = &list_rpcs();
@inets = &list_inets();
foreach $r (@rpcs) {
	if ($r->[1] eq $rargs[0]) { $same_name = $r; }
	if ($r->[2] == $rargs[1]) { $same_prog = $r; }
	}

if ($in{'rpos'} =~ /\d/) {
	# Changing a program (and maybe inetd entry)
	@old_rpc = @{$rpcs[$in{'rpos'}]};
        if ($in{'ipos'} =~ /\d/) {
		@old_inet = @{$inets[$in{'ipos'}]};
		}
	if ($same_name && $old_rpc[1] ne $rargs[0]) {
		&error(&text('error_prgexist', $rargs[0]));
		}
	if ($same_prog && $old_rpc[2] ne $rargs[1]) {
		&error(&text('error_prginuse', $rargs[1]));
		}
	&modify_rpc($old_rpc[0], @rargs);
	if ($in{'act'} && @old_inet) {
		# modify inetd
		&modify_inet($old_inet[0], @iargs, $old_inet[10]);
		}
	elsif ($in{'act'} && !@old_inet) {
		# add to inetd
		&create_inet(@iargs);
		}
	elsif (!$in{'act'} && @old_inet) {
		# remove from inetd
		&delete_inet($old_inet[0], $old_inet[10]);
		}
	&unlock_inetd_files();
	&webmin_log("modify", "rpc", $rargs[0],
		    { 'name' => $rargs[0], 'number' => $rargs[1],
		      'active' => $iargs[0],
		      'user' => $iargs[5], 'wait' => $iargs[4],
		      'prog' => $in{'act'} ? join(" ", @iargs[6..@iargs-1])
					   : undef } );
	}
else {
	# Creating a new program
	if ($same_name) {
		&error(&text('error_prgexist', $rargs[0]));
		}
	if ($same_prog) {
		&error(&text('error_prginuse', $rargs[1]));
		}
	if ($in{'act'}) {
		foreach $i (@inets) {
			if ($i->[2] && $i->[3] eq $rargs[0]) {
				&error(&text('error_prgexist', $rargs[0]));
				}
			}
		}
	&create_rpc(@rargs);
	if ($in{'act'}) { &create_inet(@iargs); }
	&unlock_inetd_files();
	&webmin_log("create", "rpc", $rargs[0],
		    { 'name' => $rargs[0], 'number' => $rargs[1],
		      'active' => $iargs[0],
		      'user' => $iargs[5], 'wait' => $iargs[4],
		      'prog' => $in{'act'} ? join(" ", @iargs[6..@iargs-1])
					   : undef } );
	}
&redirect("");

 0707010007a866000081e40000000000000002000000013ac0388b0000132c000000200000000000000000000000000000001a00000003reloc/inetd/save_serv.cgi #!/usr/local/bin/perl
# save_serv.cgi
# Save or create an internet service. This can be called N ways
#  - create a new services file entry
#  - create a new inetd.conf entry (and maybe update or add to services file)
#  - update inetd.conf (and maybe services)
#  - remove an entry from inetd.conf (and maybe change services)

require './inetd-lib.pl';
&error_setup($text{'error_saveservice'});
&ReadParse();

# Check inputs
$in{'name'} =~ /^[A-z][A-z0-9\_\-]+$/ ||
	&error(&text('error_invalidservice' ,$in{'name'}));
$in{'port'} =~ /^[0-9]*$/ || &error(&text('error_invalidport', $in{'port'}));
if ($in{'port'} <= 0 || $in{'port'} > 65535) {
	&error(&text('error_portnum', $in{'port'}));
	}
if ($in{'act'} && $in{'serv'} == 2) {
	$in{'program'} =~ /^\/\S+$/ ||
		&error(&text('error_invalidprg', $in{program}));
	if ($in{'act'} == 2) {
		(-r $in{'program'}) ||
			&error(&text('error_notexist', $in{'program'}));
		(-x $in{'program'}) ||
			&error(&text('error_notexecutable', $in{'program'}));
		}
	$in{'args'} =~ /^\S+/ ||&error(&text('error_invalidarg', $in{'args'}));
	}
elsif ($in{'act'} && $in{serv} == 3) {
	$in{tcpd} =~ /^\S+$/ ||
		&error(&text('error_invalidwrapper', $in{tcpd}));
	}
if ($in{'act'}) {
	$in{'user'} || &error($text{'error_no_user'});
	}
if ($config{'extended_inetd'} && !$in{'permin_def'} && $in{'permin'}!~/^\d+$/) {
	&error(&text('error_invalidpermin', $in{'permin'}));
	}
if ($config{'extended_inetd'} == 2 &&
    !$in{'child_def'} && $in{'child'} !~ /^\d+$/) {
	&error(&text('error_invalidchildnum', $in{'child'}));
	}

# Build argument list
@sargs = ($in{'name'}, $in{'port'}, $in{'protocol'},
	  join(' ', split(/\s+/, $in{'aliases'})) );
@iargs = ($in{'act'} == 2, $in{'name'},
	  $in{'protocol'} eq "tcp" ? "stream" : "dgram", $in{'protocol'});
$wait = $in{'wait'}; $user = $in{'user'};
if ($config{'extended_inetd'} == 1) {
	if (!$in{'permin_def'}) { $wait .= ".$in{'permin'}"; }
	if ($in{'group'}) { $user .= ".$in{'group'}"; }
	}
elsif ($config{'extended_inetd'} == 2) {
	if (!$in{'child_def'}) { $wait .= "/$in{'child'}"; }
	if (!$in{'permin_def'} && $in{'child_def'}) {
		&error($text{'error_childnum'});
		}
	if (!$in{'permin_def'}) { $wait .= "/$in{'permin'}"; }
	if ($in{'group'}) { $user .= ":$in{'group'}"; }
	if ($in{'class'}) { $user .= "/$in{'class'}"; }
	}
push(@iargs, $wait);
push(@iargs, $user);
if ($in{'serv'} == 1) { push(@iargs, "internal", undef); }
elsif ($in{serv} == 2) {
	push(@iargs, $in{'program'});
	push(@iargs, $in{'args'});
	}
elsif ($in{serv} == 3) {
	push(@iargs, $config{'tcpd_path'});
	push(@iargs, $in{'tcpd'});
	$iargs[$#iargs] .= " $in{'args2'}" if ($in{'args2'});
	}

&lock_inetd_files();
@servs = &list_services();
@inets = &list_inets();
foreach $s (@servs) {
	if ($s->[1] eq $sargs[0] && $s->[3] eq $sargs[2]) { $same_name = $s; }
	if ($s->[2] == $sargs[1] && $s->[3] eq $sargs[2]) { $same_port = $s; }
	}

if ($in{'spos'} =~ /\d/) {
	# Changing a service..
	@old_serv = @{$servs[$in{'spos'}]};
	if ($in{'ipos'} =~ /\d/) {
		@old_inet = @{$inets[$in{'ipos'}]};
		}
	if ($old_serv[1] ne $sargs[0] || $old_serv[2] != $sargs[1] ||
	    $old_serv[3] ne $sargs[2]) {
		if ($same_name && $same_name->[2] != $old_serv[2]) {
			&error(&text('error_nameexist', $sargs[0], $sargs[2]));
			}
		if ($same_port && $same_port->[1] ne $old_serv[1]) {
			&error(&text('error_serviceexist', $sargs[1], $sargs[2]));
			}
		}
	&modify_service($old_serv[0], @sargs);
	if ($in{'act'} && @old_inet) {
		# modify inetd
		&modify_inet($old_inet[0], @iargs, $old_inet[10]);
		}
	elsif ($in{'act'} && !@old_inet) {
		# add to inetd
		&create_inet(@iargs);
		}
	elsif (!$in{'act'} && @old_inet) {
		# remove from inetd
		&delete_inet($old_inet[0], $old_inet[10]);
		@iargs = ();
		}
	&unlock_inetd_files();
	&webmin_log("modify", "serv", $sargs[0],
		    { 'name' => $sargs[0], 'port' => $sargs[1],
		      'proto' => $sargs[2], 'active' => $iargs[0],
		      'user' => $iargs[5], 'wait' => $iargs[4],
		      'prog' => $in{'act'} ? join(" ", @iargs[6..@iargs-1])
					   : undef } );
	}
else {
	# Creating a new service...
	# Check for a service with the same name or port and protocol
	if ($same_name) {
		&error(&text('error_nameexist', $sargs[0], $sargs[2]));
		}
	if ($same_port) {
		&error(&text('error_serviceexist', $sargs[1], $sargs[2]));
		}
	# Check for an existing internet service
	if ($in{'act'}) {
		foreach $i (@inets) {
			if ($i->[3] eq $iargs[1] && $i->[5] eq $iargs[3]) {
				&error(&text('error_inetservice', $i->[3], $i->[5]));
				}
			}
		}
	&create_service(@sargs);
	if ($in{'act'}) { &create_inet(@iargs); }
	&unlock_inetd_files();
	&webmin_log("create", "serv", $sargs[0],
		    { 'name' => $sargs[0], 'port' => $sargs[1],
		      'proto' => $sargs[2], 'active' => $iargs[0],
		      'user' => $iargs[5], 'wait' => $iargs[4],
		      'prog' => $in{'act'} ? join(" ", @iargs[6..@iargs-1])
					   : undef } );
	}
&redirect("");

07070100064d24000041ed0000000000000001000000053ac03bff00000000000000200000000000000000000000000000000b00000003reloc/init    07070100064d25000081a40000000000000002000000013ac0388b00000514000000200000000000000000000000000000001b00000003reloc/init/acl_security.pl    
require './init-lib.pl';

# acl_security_form(&options)
# Output HTML for editing security options for the init module
sub acl_security_form
{
if ($config{'local_script'}) {
	print "<tr> <td><b>$text{'acl_script'}</b></td> <td>\n";
	}
else {
	print "<tr> <td><b>$text{'acl_actions'}</b></td><td>\n";
	}
printf "<input type=radio name=bootup value=1 %s> $text{'yes'}\n",
	$_[0]->{'bootup'} ? "checked" : "";
printf "<input type=radio name=bootup value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'bootup'} ? "" : "checked";

print "<tr> <td><b>$text{'acl_reboot'}</b></td> <td>\n";
printf "<input type=radio name=reboot value=1 %s> $text{'yes'}\n",
	$_[0]->{'reboot'} ? "checked" : "";
printf "<input type=radio name=reboot value=0 %s> $text{'no'}</td>\n",
	$_[0]->{'reboot'} ? "" : "checked";

print "<td><b>$text{'acl_shutdown'}</b></td> <td>\n";
printf "<input type=radio name=shutdown value=1 %s> $text{'yes'}\n",
	$_[0]->{'shutdown'} ? "checked" : "";
printf "<input type=radio name=shutdown value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'shutdown'} ? "" : "checked";
}

# acl_security_save(&options)
# Parse the form for security options for the init module
sub acl_security_save
{
$_[0]->{'bootup'} = $in{'bootup'};
$_[0]->{'reboot'} = $in{'reboot'};
$_[0]->{'shutdown'} = $in{'shutdown'};
}

07070100064d26000081e40000000000000002000000013ac0388b000008bc000000200000000000000000000000000000001500000003reloc/init/atboot.pl  #!/usr/local/bin/perl
# atboot.pl
# Called by setup.sh to have webmin started at boot time

$no_acl_check++;
require './init-lib.pl';
if (!$config{'init_base'}) {
	# Add to the boot time rc script
	open(LOCAL, ">>$config{'local_script'}");
	print LOCAL "$config_directory/start	# Start webmin\n";
	close(LOCAL);
	print "Added to bootup script $config{'local_script'}\n";
	}
else {
	# Create a bootup action
	$fn = &action_filename("webmin");
	open(ACTION,">$fn");
	print ACTION "#!/bin/sh\n";
	print ACTION ($config{'chkconfig'} ? "# description: " : "# "),
		     "Start/stop Webmin\n";
	$start_order = "9" x $config{'order_digits'};
	$stop_order = "9" x $config{'order_digits'};
	if ($config{'chkconfig'}) {
		print ACTION "# chkconfig: $config{'chkconfig'} ",
			     "$start_order $stop_order\n";
		}
	print ACTION "\n";
	print ACTION "case \"\$1\" in\n";

	print ACTION "'start')\n";
	print ACTION "\t$config_directory/start\n";
	print ACTION "\ttouch $config{'subsys'}/webmin\n"
		if ($config{'subsys'});
	print ACTION "\t;;\n";

	print ACTION "'stop')\n";
	print ACTION "\t$config_directory/stop\n";
	print ACTION "\trm -f $config{'subsys'}/webmin\n"
		if ($config{'subsys'});
	print ACTION "\t;;\n";

	print ACTION "'status')\n";
	print ACTION "\tif [ -s /var/webmin/miniserv.pid ]; then\n";
	print ACTION "\t\tpid=`cat /var/webmin/miniserv.pid`\n";
	print ACTION "\t\tkill -0 \$pid >/dev/null 2>&1\n";
	print ACTION "\t\tif [ \"\$?\" = \"0\" ]; then\n";
	print ACTION "\t\t\techo webmin (pid \$pid) is running\n";
	print ACTION "\t\telse\n";
	print ACTION "\t\t\techo webmin is stopped\n";
	print ACTION "\t\tfi\n";
	print ACTION "\telse\n";
	print ACTION "\t\techo webmin is stopped\n";
	print ACTION "\tfi\n";
	print ACTION "\t;;\n";

	print ACTION "'restart')\n";
	print ACTION "\t/etc/webmin/stop && /etc/webmin/start\n";
	print ACTION "\t;;\n";

	print ACTION "*)\n";
	print ACTION "\techo \"Usage: \$0 { start | stop }\"\n";
	print ACTION "\t;;\n";
	print ACTION "esac\n";
	print ACTION "exit 0\n";
	close(ACTION);
	chmod(0755, $fn);
	($initrl) = &get_inittab_runlevel();
	&add_rl_action("webmin", $initrl, "S", $start_order);
	&add_rl_action("webmin", $initrl, "K", $stop_order);
	print "Created init script $fn\n";
	}

07070100064d27000081a40000000000000002000000013ac0388c000000d3000000200000000000000000000000000000001600000003reloc/init/config-aix show_opts=0
inittab_id=init
expert=0
start_stop_msg=0
reboot_command=reboot
shutdown_command=shutdown -Fh
soft_links=1
init_base=
order_digits=2
desc=0
init_dir=
daemons_dir=
local_script=/etc/rc
status_check=0
 07070100064d28000081a40000000000000002000000013ac0388b000000e5000000200000000000000000000000000000002300000003reloc/init/config-cobalt-linux-2.2    soft_links=1
show_opts=0
init_base=/etc/rc.d
init_dir=/etc/rc.d/init.d
reboot_command=reboot
shutdown_command=halt
order_digits=2
inittab_id=id
extra_init=/etc/rc.d/rc.local
subsys=/var/lock/subsys
expert=0
desc=1
status_check=0
   07070100064d29000081a40000000000000002000000013ac0388b000000f4000000200000000000000000000000000000002300000003reloc/init/config-cobalt-linux-5.0    soft_links=1
show_opts=0
init_base=/etc/rc.d
init_dir=/etc/rc.d/init.d
reboot_command=reboot
shutdown_command=halt
order_digits=2
inittab_id=id
extra_init=/etc/rc.d/rc.local
chkconfig=2345
subsys=/var/lock/subsys
expert=0
desc=1
status_check=0
07070100064d2a000081a40000000000000002000000013ac0388c000000a6000000200000000000000000000000000000001e00000003reloc/init/config-corel-linux soft_links=1
show_opts=0
init_base=/etc/
init_dir=/etc/init.d
reboot_command=reboot
shutdown_command=halt
order_digits=2
inittab_id=id
expert=0
desc=1
status_check=0
  07070100064d2b000081a40000000000000002000000013ac0388b000000a6000000200000000000000000000000000000001f00000003reloc/init/config-debian-linux    soft_links=1
show_opts=0
init_base=/etc/
init_dir=/etc/init.d
reboot_command=reboot
shutdown_command=halt
order_digits=2
inittab_id=id
expert=0
desc=1
status_check=0
  07070100064d2c000081a40000000000000002000000013ac0388b00000056000000200000000000000000000000000000001a00000003reloc/init/config-freebsd reboot_command=reboot
shutdown_command=halt
local_script=/etc/rc.local
status_check=0
  07070100064d2d000081a40000000000000002000000013ac0388b000000bf000000200000000000000000000000000000001700000003reloc/init/config-hpux    start_stop_msg=1
soft_links=1
show_opts=0
init_base=/sbin
init_dir=/sbin/init.d
reboot_command=reboot
shutdown_command=reboot -h
order_digits=3
inittab_id=init
desc=0
expert=0
status_check=0
 07070100064d2e000081a40000000000000002000000013ac0388c000000b7000000200000000000000000000000000000001700000003reloc/init/config-irix    soft_links=1
show_opts=0
init_base=/etc/
init_dir=/etc/init.d
reboot_command=reboot
shutdown_command=shutdown -i 0 -g 0 -y
order_digits=2
inittab_id=is
desc=0
expert=0
status_check=0
 07070100064d2f000081a40000000000000002000000013ac0388c00000050000000200000000000000000000000000000001800000003reloc/init/config-macos   reboot_command=reboot
shutdown_command=halt
local_script=/etc/rc
status_check=0
07070100064d30000081a40000000000000002000000013ac0388c000000e6000000200000000000000000000000000000001d00000003reloc/init/config-open-linux  soft_links=1
show_opts=0
init_base=/etc/rc.d
init_dir=/etc/rc.d/init.d
reboot_command=shutdown -r now
shutdown_command=shutdown -h now
order_digits=2
inittab_id=id
desc=1
expert=0
daemons_dir=/etc/sysconfig/daemons
status_check=0
  07070100064d31000081a40000000000000002000000013ac0388c00000056000000200000000000000000000000000000001a00000003reloc/init/config-openbsd reboot_command=reboot
shutdown_command=halt
local_script=/etc/rc.local
status_check=0
  07070100064d32000081a40000000000000002000000013ac0388b000000b7000000200000000000000000000000000000001d00000003reloc/init/config-openserver  soft_links=1
show_opts=0
init_base=/etc/
init_dir=/etc/init.d
reboot_command=reboot
shutdown_command=shutdown -i 5 -g 0 -y
order_digits=2
inittab_id=is
desc=0
expert=0
status_check=0
 07070100064d33000081a40000000000000002000000013ac0388c000000d5000000200000000000000000000000000000001700000003reloc/init/config-osf1    daemons_dir=
show_opts=0
inittab_id=is
expert=0
start_stop_msg=1
reboot_command=reboot
shutdown_command=init 0
soft_links=1
init_base=/sbin
local_script=
desc=0
order_digits=2
init_dir=/sbin/init.d
status_check=0
   07070100064d34000081a40000000000000002000000013ac0388b00000108000000200000000000000000000000000000001f00000003reloc/init/config-redhat-linux    soft_links=1
show_opts=0
init_base=/etc/rc.d
init_dir=/etc/rc.d/init.d
reboot_command=shutdown -r now
shutdown_command=shutdown -h now
order_digits=2
inittab_id=id
extra_init=/etc/rc.d/rc.local
chkconfig=2345
subsys=/var/lock/subsys
expert=0
desc=1
status_check=1
07070100064d35000081a40000000000000002000000013ac0388b0000005b000000200000000000000000000000000000002200000003reloc/init/config-slackware-linux reboot_command=reboot
shutdown_command=halt
local_script=/etc/rc.d/rc.local
status_check=0
 07070100064d36000081a40000000000000002000000013ac0388b000000c8000000200000000000000000000000000000001a00000003reloc/init/config-solaris soft_links=1
show_opts=0
init_base=/etc/
init_dir=/etc/init.d
reboot_command=reboot
shutdown_command=shutdown -i 5 -g 0 -y
order_digits=2
inittab_id=is
desc=0
expert=0
inittab_rl_3=3,2
status_check=0
07070100064d37000081a40000000000000002000000013ac0388b000000ae000000200000000000000000000000000000001d00000003reloc/init/config-suse-linux  soft_links=1
show_opts=0
init_base=/sbin/init.d
init_dir=/sbin/init.d
reboot_command=reboot
shutdown_command=halt
order_digits=2
inittab_id=id
expert=0
desc=0
status_check=0
  07070100064d38000081a40000000000000002000000013ac0388c000000b8000000200000000000000000000000000000002100000003reloc/init/config-suse-linux-7.1  soft_links=1
show_opts=0
init_base=/etc/init.d
init_dir=/etc/init.d
reboot_command=reboot
shutdown_command=halt
order_digits=2
inittab_id=id
expert=0
desc=1
status_check=0
init_info=1
07070100064d39000081a40000000000000002000000013ac0388c000000f4000000200000000000000000000000000000001e00000003reloc/init/config-turbo-linux soft_links=1
show_opts=0
init_base=/etc/rc.d
init_dir=/etc/rc.d/init.d
reboot_command=reboot
shutdown_command=halt
order_digits=2
inittab_id=id
extra_init=/etc/rc.d/rc.local
chkconfig=2345
subsys=/var/lock/subsys
desc=1
expert=0
status_check=0
07070100064d3a000081a40000000000000002000000013ac0388b000000b7000000200000000000000000000000000000001b00000003reloc/init/config-unixware    soft_links=1
show_opts=0
init_base=/etc/
init_dir=/etc/init.d
reboot_command=reboot
shutdown_command=shutdown -i 5 -g 0 -y
order_digits=2
inittab_id=is
desc=0
expert=0
status_check=0
 07070100064d3b000081a40000000000000002000000013ac0388b000002e3000000200000000000000000000000000000001700000003reloc/init/config.info    expert=Allow selection of individual runlevels,1,1-Yes,0-No
desc=Display actions with descriptions,1,1-Yes,0-No
init_base=Directory in which runlevel directories are located,0
init_dir=Directory containing master init scripts,0
soft_links=Link type to use for runlevel files,1,0-Hard,1-Soft
order_digits=Number of digits in action order,0
local_script=Local startup commands script,3
reboot_command=Command to reboot the system,0
shutdown_command=Command to shutdown the system,0
start_stop_msg=System supports bootup/shutdown messages,1,0-No,1-Yes
inittab_id=inittab ID for bootup runlevel,0
daemons_dir=Caldera daemons directory,3,None
status_check=Show current status of actions,1,2-On index and action pages,1-On action page only,0-No
 07070100064d3c000081a40000000000000002000000013ac0388c000002bd000000200000000000000000000000000000001a00000003reloc/init/config.info.de expert=Erlaube die Auswahl einzelner Runlevel,1,1-Ja,0-Nein
desc=Zeige Aktionen mit Beschreibung,1,1-Ja,0-Nein
init_base=Verzeichnis, in dem die Runlevel Verzeichnisse liegen,0
init_dir=Verzeichnis in dem das Haupt-Script liegt,0
soft_links=Link Typ, der bei Runlevel Dateien verwendet werden soll,1,0-Hard,1-Soft
order_digits=Anzahl Ziffern in Aktionsreihenfolge,0
local_script=Lokales Startup Script,3
reboot_command=Kommando zum Reboot des Systems,0
shutdown_command=Kommando zum Herunterfahren des Systems,0
start_stop_msg=System unterst&uuml;tzt Bootup/Shutdown Nachrichten,1,0-Nein,1-Ja
inittab_id=inittab ID f&uuml;r Bootup Runlevel,0
daemons_dir=Caldere Verzeichnis f&uuml;r Daemonen,3,Keines
   07070100064d3d000081a40000000000000002000000013ac0388c000002fa000000200000000000000000000000000000001a00000003reloc/init/config.info.es expert=Permitir selecci髇 de niveles individuales de ejecuci髇,1,1-S,0-No
desc=Mostrar acciones con descripciones,1,1-S,0-No
init_base=Directorio en el cual est醤 localizados los directorios de nivel de ejecuci髇,0
init_dir=Directorio que contiene los guiones maestros de inicio,0
soft_links=Tipo de enlace a usar en los archivos de nivel de ejecuci髇,1,0-Hard,1-Soft
order_digits=N鷐ero de d韌itos en el orden de acci髇,0
local_script=Guiones de comandos para arranque local,3
reboot_command=Comando para rearrancar el sitema,0
shutdown_command=Comando para parar el sistema,0
start_stop_msg=El sistema soporta mensajes de arranque/parada,1,0-No,1-S
inittab_file=Trayectoria a archivo inittab,0
inittab_id=ID de inittab para nivel de ejecuci髇 en arranque,0
  07070100064d3e000081a40000000000000002000000013ac0388c00000247000000200000000000000000000000000000001a00000003reloc/init/config.info.fr init_base=R閜ertoire dans lequel les r閜ertoires des niveaux d'ex閏ution sont situ閟,0
init_dir=R閜ertoire qui contient les scripts de d閙arrage,0
soft_links=Type de liens utilis閟 pour les niveaux d'ex閏ution,1,0-Dur,1-Symboliques
order_digits=Nombre de chiffre dans l'ordre d'action,0
local_script=Script local de d閙arrage,3
reboot_command=Commande pour red閙arrer le syst鑝e,0
shutdown_command=Commande pour arr阾er le syst鑝e,0
start_stop_msg=Le syst鑝e supporte les messages de d閙arrage et d'arr阾,1,0-Non,1-Oui
inittab_id=Num閞o du niveau d'ex閏ution du d閙arrage,0
 07070100064d3f000081a40000000000000002000000013ac0388c00000344000000200000000000000000000000000000001a00000003reloc/init/config.info.pl expert=Pozwala na wyb髍 poszczeg髄nych poziom體 pracy systemu,1,1-Tak,0-Nie
desc=Wy秝ietla dzia砤nia wraz z&nbsp;opisami,1,1-Tak,0-Nie
init_base=Katalog zawieraj眂y podkatalogi poziom體 pracy,0
init_dir=Katalog zawieraj眂y nadrz阣ne skrypty startowe,0
soft_links=Stosowany rodzaj dowi眤a do plik體 poziom體 pracy,1,0-Twarde,1-Mi阫kie
order_digits=Liczba cyfr okre秎aj眂ych kolejno舵 uruchamiania,0
local_script=Lokalny skrypt polece startowych,3
reboot_command=Polecenie restartuj眂e system,0
shutdown_command=Polecenie zamykaj眂e system,0
start_stop_msg=System wspomaga komunikaty startowe/zamykaj眂e,1,0-Nie,1-Tak
inittab_id=ID inicjalnego poziomu pracy w&nbsp;inittab-ie,0
daemons_dir=Katalog demon體 Caldery,3,Brak
status_check=Pokazywa bie勘cy stan akcji,1,2-Na stronach indeksowej i&nbsp;akcji,1-Tylko na stronie akcji,0-Nie
07070100064d40000081a40000000000000002000000013ac0388c00000240000000200000000000000000000000000000001d00000003reloc/init/config.info.ru_RU  start_stop_msg=项滗屦骅忄弪 腓 耔耱屐 耱囵蝾恹/耱铒钼 耦钺龛,1,0-湾,1-泥
reboot_command=暑爨礓 潆 镥疱玎矬耜 耔耱屐,0
shutdown_command=暑爨礓 潆 铖蜞眍怅 耔耱屐,0
init_dir=枢蜞腩 耦溴疰帙栝 汶噔睇 聆屙囵梃 桧桷栲腓玎鲨,0
soft_links=诣 腓黻钼 潆 羿殡钼 耦 聆屙囵扈 箴钼礤 桉镱腠屙,1,0-棋耱觇,1-谚焘铍梓羼觇
init_base=枢蜞腩  疣珈妁屙睇扈  礤 镱潢囹嚯钽囔 箴钼礤 桉镱腠屙,0
inittab_id=inittab ID 潆 耱囵蝾忸泐 箴钼 桉镱腠屙,0
local_script=祟赅朦睇 聆屙囵栝 耱囵蝾恹 觐爨礓,3
order_digits=暑-忸 鲨麴  嚓蜩忄鲨铐眍 眍戾疱 聆屙囵桢,0
07070100064d41000081a40000000000000002000000013ac0388c00000240000000200000000000000000000000000000001d00000003reloc/init/config.info.ru_SU  init_base=肓粤滔  伊谕泡盼钨蜕  闻 邢乃猎撂锨镣 找献闻 捎邢涛盼裳,0
init_dir=肓粤滔 酉呐抑凛墒 翘磷钨 用盼烈缮 晌擅闪躺诹蒙,0
soft_links=羯 躺嗡献 奶 屏侍献 酉 用盼烈裳蜕 找献闻 捎邢涛盼裳,1,0-雠釉松,1-笊妥咸赊庞松
order_digits=胂-紫 蒙埔  了陨琢蒙衔蜗 蜗团遗 用盼烈膳,0
local_script=煜肆特钨 用盼烈墒 釉烈韵踪 讼土文,3
reboot_command=胂土文 奶 信遗诹姓铀 由釉磐,0
shutdown_command=胂土文 奶 嫌粤蜗姿 由釉磐,0
start_stop_msg=鹣哪乓稚琢旁 躺 由釉磐 釉烈韵踪/釉闲献倥 酉下菖紊,1,0-钆,1-淞
inittab_id=inittab ID 奶 釉烈韵紫窍 找献窝 捎邢涛盼裳,0
07070100064d42000081a40000000000000002000000013ac0388c000002c9000000200000000000000000000000000000001a00000003reloc/init/config.info.sv expert=Till錿 individuella k鰎niv錯r,1,1-Ja,0-Nej
desc=Visa funktioner med beskrivningar,1,1-Ja,0-Nej
init_base=Katalog f鰎 k鰎niv-kataloger,0
init_dir=Katalog f鰎 master-init-script,0
soft_links=L鋘ktyp f鰎 k鰎niv-filer,1,0-H錼d,1-Mjuk
order_digits=Antal siffror i utf鰎andeordning,0
local_script=Lokalt startkommandoscript,3
reboot_command=Kommando f鰎 att starta om systemet,0
shutdown_command=Kommando f鰎 att st鋘ga av systemet,0
start_stop_msg=Systemet st鰀jer omstarts-/avst鋘gningsmeddelanden,1,0-Nej,1-Ja
inittab_id=inittab-ID f鰎 startk鰎niv,0
daemons_dir=Katalog f鰎 Caldera-demoner,3,Ingen
status_check=Visa aktuell funktionsstatus,1,2-P index- och funktionssidor,1-Endast p funktionssidor,0-Nej
   07070100064d43000081a40000000000000002000000013ac0388c000002ac000000200000000000000000000000000000001a00000003reloc/init/config.info.tr expert=Ki㱮sel 鏰lma seviyesinin se鏸mine izin verilsin,1,1-Evet,0-Hay齬
desc=蔺lemleri a琮klamalar ile g鰎黱t黮e,1,1-Evet,0-Hay齬
init_base=莂lma seviyelerinin oldu饀 dizin,0
init_dir=Directory containing master init scripts,0
soft_links=A琮l seviyeleri dosyas i鏸n kullan齦acak link tipi,1,0-Hard,1-Soft
order_digits=蔺lem s齬alamas齨daki rakam say齭,0
local_script=Yerel baang komutlar beti餴,3
reboot_command=Sistemi yeniden baatma komutu,0
shutdown_command=Sistemi kapatma komutu,0
start_stop_msg=Sistem a琮l/kapan mesajlar齨 desteklesin,1,0-Hay齬,1-Evet
inittab_id=A琮l 鏰lma seviyesi i鏸n inittab ID ,0
daemons_dir=Caldera daemon'lar dizini,3,Hi鏱iri
07070100064d44000081a40000000000000002000000013ac0388c000001c0000000200000000000000000000000000000001d00000003reloc/init/config.info.zh_CN  expert=允许选择单独的运行级别,1,1-是,0-否
desc=显示 descriptions 的动作,1,1-是,0-否
init_base=运行级别目录被定位的目录,0
init_dir=包含主初始化脚本的目录,0
soft_links=运行级别文件的连接类型,1,0-硬,1-软
order_digits=执行顺序的数字个数,0
local_script=本地启动命令脚本,3
reboot_command=重启系统命令,0
shutdown_command=关机命令,0
start_stop_msg=系统支持启动/关机信息,1,0-不,1-是
inittab_id=引导级别的inittab ID,0
daemons_dir=Caldera 守护进程目录,3,None
07070100064d45000081a40000000000000002000000013ac0388c000001f0000000200000000000000000000000000000002200000003reloc/init/config.info.zh_TW.Big5 expert=琌す砛匡拒磅︽糷,1,1-琌,0-
desc=陪ボ笆琌陪ボ弧,1,1-琌,0-
init_base=磅︽糷ヘ魁竚隔畖,0
init_dir=璶癬﹍て㏑絑隔畖,0
soft_links=硈挡璶㏑絑摸,1,0-祑硈挡,1-硁硈挡 (才腹硈挡)
order_digits=㏑抖竚,0
local_script=セ狠币笆絑,3
reboot_command=穝秨诀㏑,0
shutdown_command=闽超╰参㏑,0
start_stop_msg=╰参琌や穿 秨诀/闽诀 癟,1,0-,1-琌
inittab_id=秨诀磅︽顶糷 inittab い絪腹,0
daemons_dir=Caldera 臔竟ヘ魁,3,None
07070100064d46000081a40000000000000002000000013ac0388b00000028000000200000000000000000000000000000001600000003reloc/init/defaultacl bootup=1
reboot=1
shutdown=1
noconfig=0
07070100064d47000081e40000000000000002000000013ac0388b00000349000000200000000000000000000000000000001600000003reloc/init/delboot.pl #!/usr/local/bin/perl
# delboot.pl
# Called by uninstall.sh to stop webmin being started at boot time

$no_acl_check++;
require './init-lib.pl';
if (!$config{'init_base'}) {
	# Remove from boot time rc script
	open(LOCAL, $config{'local_script'});
	@local = <LOCAL>;
	close(LOCAL);
	$start = "$config_directory/start";
	open(LOCAL, ">$config{'local_script'}");
	print LOCAL grep { !/^$start/ } @local;
	close(LOCAL);
	print "Deleted from bootup script $config{'local_script'}\n";
	}
else {
	# Delete bootup action
	foreach (&action_levels('S', "webmin")) {
		/^(\S+)\s+(\S+)\s+(\S+)$/;
		&delete_rl_action($in{action}, $1, 'S');
		}
	foreach (&action_levels('K', "webmin")) {
		/^(\S+)\s+(\S+)\s+(\S+)$/;
		&delete_rl_action($in{action}, $1, 'K');
		}
	$fn = &action_filename("webmin");
	unlink($fn);
	print "Deleted init script $fn\n";
	}

   07070100064d48000081e40000000000000002000000013ac0388b00000340000000200000000000000000000000000000001d00000003reloc/init/delete_action.cgi  #!/usr/local/bin/perl
# delete_action.cgi
# Delete an existing action and remove it from all the runlevels

require './init-lib.pl';
&ReadParse();
%access = &get_module_acl();
$access{'bootup'} || &error($text{'save_ecannot'});

if ($in{type} == 0) {
	# Deleting a normal action
	foreach (&action_levels('S', $in{action})) {
		/^(\S+)\s+(\S+)\s+(\S+)$/;
		&delete_rl_action($in{action}, $1, 'S');
		}
	foreach (&action_levels('K', $in{action})) {
		/^(\S+)\s+(\S+)\s+(\S+)$/;
		&delete_rl_action($in{action}, $1, 'K');
		}
	$file = &action_filename($in{action});
	}
elsif ($in{type} == 1) {
	# deleting an odd action
	$file = &runlevel_filename($in{runlevel}, $in{startstop},
				   $in{number}, $in{action});
	}
&lock_file($file);
unlink($file);
&unlock_file($file);
&webmin_log('delete', 'action', $in{'action'});
&redirect("");

07070100064d49000081e40000000000000002000000013ac0388b00001e5f000000200000000000000000000000000000001b00000003reloc/init/edit_action.cgi    #!/usr/local/bin/perl
# edit_action.cgi
# Edit or create a bootup action. Existing actions can either be in the
# init.d directory (and linked to from the appropriate runlevels), or
# just plain runlevel files

require './init-lib.pl';
%access = &get_module_acl();
$access{'bootup'} || &error($text{'edit_ecannot'});

$ty = $ARGV[0];
if ($ty == 0) {
	# Editing an action in init.d, linked to from various runlevels
	$ac = $ARGV[1];
	&header($text{'edit_title'}, "");
	$file = &action_filename($ac);
	open(FILE, $file);
	while(<FILE>) {
		$data .= $_;
		if (/^\s*(['"]?)([a-z]+)\1\)/i) {
			$hasarg{$2}++;
			}
		}
	close(FILE);
	}
elsif ($ty == 1) {
	# Editing an action in one of the runlevels
	$rl = $ARGV[1];
	$num = $ARGV[2];
	$ac = $ARGV[3];
	$inode = $ARGV[4];
	$ss = $ARGV[5];
	&header($text{'edit_title'}, "");
	$file = &runlevel_filename($rl, $ss, $num, $ac);
	$data = `cat $file`;
	}
else {
	# Creating a new action in init.d
	&header($text{'create_title'}, "");
	}

print "<hr>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'edit_details'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";
print "<form method=post action=save_action.cgi>\n";
print "<input type=hidden name=type value=$ty>\n";
if ($ty != 2) {
	print "<input type=hidden name=old value=\"$ac\">\n";
	if ($ty == 1) {
		print "<input type=hidden name=runlevel value=\"$rl\">\n";
		print "<input type=hidden name=startstop value=\"$ss\">\n";
		print "<input type=hidden name=number value=\"$num\">\n";
		}
	}
print "<tr> <td><b>$text{'edit_name'}</b></td>\n";
if ($ac =~ /^\//) {
	print "<td><tt>$ac</tt></td> </tr>\n";
	print "<input type=hidden name=name value=\"$ac\">\n";
	print "<input type=hidden name=extra value=1>\n";
	}
else {
	print "<td><input size=20 name=name value=\"$ac\"></td> </tr>\n";
	}

$fs = "<font size=-1>"; $fe = "</font>";
if ($ty == 2) {
	# Display fields for a template
	print "<tr> <td valign=top><b>$text{'edit_desc'}</b></td>\n";
	print "<td>$fs<textarea rows=2 cols=80 name=desc>",
	      "</textarea>$fe</td> </tr>\n";

	if ($config{'start_stop_msg'}) {
		print "<tr> <td><b>$text{'edit_startmsg'}</b></td>\n";
		print "<td><input name=start_msg size=40></td> </tr>\n";

		print "<tr> <td><b>$text{'edit_stopmsg'}</b></td>\n";
		print "<td><input name=stop_msg size=40></td> </tr>\n";
		}

	print "<tr> <td valign=top><b>$text{'edit_start'}</b></td>\n";
	print "<td>$fs<textarea rows=5 cols=80 name=start>",
	      "</textarea>$fe</td> </tr>\n";

	print "<tr> <td valign=top><b>$text{'edit_stop'}</b></td>\n";
	print "<td>$fs<textarea rows=5 cols=80 name=stop>",
	      "</textarea>$fe</td> </tr>\n";
	}
else {
	# Allow direct editing of the script
	print "<tr> <td valign=top><b>$text{'edit_script'}</b></td>\n";
	print "<td>$fs<textarea rows=15 cols=80 name=data>",$data,
	      "</textarea>$fe</td> </tr>\n";
	}

if ($ty == 1) {
	# Display a message
	print "</table></td></tr></table><p>\n";
	print "<b>",&text("edit_bad$ss", $rl),"</b><br>\n";
	print "<a href=\"fix_action.cgi?$rl+$ss+$num+$ac\">",
	      "$text{'edit_fix'}</a>. <p>\n";
	}
elsif (!$config{'expert'}) {
	# Just tell the user if this action is started at boot time
	local $boot = 0;
	print "<tr> <td><b>$text{'edit_boot'}</b></td>\n";
	if ($ty == 0) {
		local @boot = &get_inittab_runlevel();
		foreach $s (&action_levels('S', $ac)) {
			local ($l, $p) = split(/\s+/, $s);
			$boot = 1 if (&indexof($l, @boot) >= 0);
			}
		if ($boot && $config{'daemons_dir'} &&
		    &read_env_file("$config{'daemons_dir'}/$ac", \%daemon)) {
			$boot = lc($daemon{'ONBOOT'}) eq 'yes' ? 1 : 0;
			}
		print "<input type=hidden name=oldboot value='$boot'>\n";
		}
	printf "<td><input name=boot type=radio value=1 %s> %s\n",
		$boot || $ty == 2 ? 'checked' : '', $text{'yes'};
	printf "<input name=boot type=radio value=0 %s> %s\n",
		$boot || $ty == 2 ? '' : 'checked', $text{'no'};
	if ($hasarg{'status'} && $config{'status_check'}) {
		# Show if action is currently running
		$out = `$file status`;
		print "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;",
		      "<b>$text{'edit_status'}</b>&nbsp;&nbsp;\n";
		if ($out =~ /running/i) {
			print $text{'yes'};
			}
		elsif ($out =~ /stopped/i) {
			print "<font color=#ff0000>$text{'no'}</font>";
			}
		else {
			print "<i>$text{'edit_unknown'}</i>";
			}
		}
	print "</td></tr> </table></td></tr></table>\n";
	}
else {
	if ($config{'daemons_dir'} && $ac &&
	    &read_env_file("$config{'daemons_dir'}/$ac", \%daemon)) {
		# Display onboot flag from daemons file
		$boot = lc($daemon{'ONBOOT'}) eq 'yes';
		print "<tr> <td><b>$text{'edit_boot'}</b></td>\n";
		printf "<td><input name=boot type=radio value=1 %s> %s\n",
			$boot ? 'checked' : '', $text{'yes'};
		printf "<input name=boot type=radio value=0 %s> %s</td></tr>\n",
			$boot ? '' : 'checked', $text{'no'};
		}

	# Display which runlevels the action is started/stopped in
	print "</table></td></tr></table><p>\n";

	print "<table border>\n";
	print "<tr $tb> <td><b>$text{'edit_levels'}</b></td> </tr>\n";
	print "<tr $cb> <td><b><table>\n";
	if ($ac) {
		foreach $s (&action_levels('S', $ac)) {
			@s = split(/\s+/, $s);
			$spri{$s[0]} = $s[1];
			}
		foreach $k (&action_levels('K', $ac)) {
			@k = split(/\s+/, $k);
			$kpri{$k[0]} = $k[1];
			}
		}
	@boot = &get_inittab_runlevel();
	foreach $rl (&list_runlevels()) {
		print "<tr>\n" if (!$sw);
		if (&indexof($rl, @boot) == -1) {
			print "<td><b>",&text('edit_rl', $rl),"</b></td>\n";
			}
		else {
			print "<td><b><i>",&text('edit_rl', $rl),
			      "</i></b></td>\n";
			}

		$od = $config{'order_digits'};
		printf "<td><input type=checkbox name=S$rl value=1 %s>\n",
			defined($spri{$rl}) ? "checked" : "";
		print $text{'edit_startat'},"\n";
		print "<input name=pri_S$rl size=$od value=$spri{$rl}></td>\n";

		printf "<td><input type=checkbox name=K$rl value=1 %s>\n",
			defined($kpri{$rl}) ? "checked" : "";
		print $text{'edit_stopat'},"\n";
		print "<input name=pri_K$rl size=$od value=$kpri{$rl}></td>\n";
		print "</tr>\n" if ($sw);
		$sw = !$sw;
		}
	print "<td colspan=3><br></td> </tr>\n" if ($sw);
	print "</table></td></tr></table>\n";
	}

if ($ty != 2) {
	print "<table width=100%>\n";
	print "<tr> <td><input type=submit value=\"$text{'save'}\"></td>\n";

	print "</form><form action=\"start_stop.cgi\">\n";
	print "<input type=hidden name=file value=\"$file\">\n";
	print "<input type=hidden name=name value=\"$ac\">\n";
	$args = join("+", @ARGV);
	print "<input type=hidden name=back value=\"edit_action.cgi?$args\">\n";
	print "<td align=center>\n";
	print "<input type=submit name=start value=\"$text{'edit_startnow'}\">\n";
	if ($hasarg{'restart'}) {
		print "<input type=submit name=restart value=\"$text{'edit_restartnow'}\">\n";
		}
	if ($hasarg{'condrestart'}) {
		print "<input type=submit name=condrestart value=\"$text{'edit_condrestartnow'}\">\n";
		}
	if ($hasarg{'reload'}) {
		print "<input type=submit name=reload value=\"$text{'edit_reloadnow'}\">\n";
		}
	if ($hasarg{'status'}) {
		print "<input type=submit name=status value=\"$text{'edit_statusnow'}\">\n";
		}
	print "<input type=submit name=stop value=\"$text{'edit_stopnow'}\">\n";
	print "</td>\n";

	print "</form><form action=\"delete_action.cgi\">\n";
	print "<input type=hidden name=type value=\"$ty\">\n";
	print "<input type=hidden name=action value=\"$ac\">\n";
	if ($ty == 1) {
		print "<input type=hidden name=runlevel value=\"$rl\">\n";
		print "<input type=hidden name=startstop value=\"$ss\">\n";
		print "<input type=hidden name=number value=\"$num\">\n";
		}
	print "<td align=right><input type=submit ",
	      "value=\"$text{'delete'}\"></td> </tr>\n";
	print "</form></table><p>\n";
	}
else {
	print "<input type=submit value=\"$text{'create'}\"></form><p>\n";
	}

print "<hr>\n";
&footer("", $text{'index_return'});


 07070100064d4a000081e40000000000000002000000013ac0388b00000276000000200000000000000000000000000000001a00000003reloc/init/fix_action.cgi #!/usr/local/bin/perl
# fix_action.cgi
# Convert an action from a run-level file to a proper action in init.d

require './init-lib.pl';
%access = &get_module_acl();
$access{'bootup'} || &error("You are not allowed to edit bootup actions");
$rl = $ARGV[0];
$ss = $ARGV[1];
$num = $ARGV[2];
$ac = $ARGV[3];

$oldfile = &runlevel_filename($rl, $ss, $num, $ac);
$newfile = &action_filename($ac);
while(-r $newfile) {
	if ($ac =~ /^(.*)_([0-9]+)$/) { $ac = "$1_".($2+1); }
	else { $ac = $ac."_1"; }
	$newfile = &action_filename($ac);
	}
`mv $oldfile $newfile`;
&add_rl_action($ac, $rl, $ss, $num);
&redirect("edit_action.cgi?0+$ac");

  07070100045538000041ed0000000000000001000000023ac03bfe00000000000000200000000000000000000000000000001000000003reloc/init/help   07070100045539000081a40000000000000002000000013ac0388c000000d4000000200000000000000000000000000000001d00000003reloc/init/help/help.es.html  <body bgcolor=#ffffff>
<h1>A鷑 no existe ayuda disponible para este m骴ulo</h1>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Regresar al m骴ulo</a><p>
 

0707010004553a000081a40000000000000002000000013ac0388c000000c7000000200000000000000000000000000000001a00000003reloc/init/help/help.html <body bgcolor=#ffffff>
<h1>Help for this module is not done yet</h1>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Return to module</a><p>
 

 0707010004553b000081a40000000000000002000000013ac0388c000000cc000000200000000000000000000000000000001d00000003reloc/init/help/help.sv.html  <body bgcolor=#ffffff>
<h1>Det finns ingen hj鋖p till denna modul 鋘</h1>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Tillbaka till modul</a>
 

0707010004553c000081a40000000000000002000000013ac0388c0000004e000000200000000000000000000000000000001d00000003reloc/init/help/proc.es.html  <body bgcolor=#ffffff>
<h1>A鷑 no hay ayuda disponible para este m骴ulo</h1>

  0707010004553d000081a40000000000000002000000013ac0388c00000046000000200000000000000000000000000000001a00000003reloc/init/help/proc.html <body bgcolor=#ffffff>
<h1>Help for this module is not done yet</h1>

  0707010004553e000081a40000000000000002000000013ac0388c0000004c000000200000000000000000000000000000001d00000003reloc/init/help/proc.sv.html  <body bgcolor=#ffffff>
<h1>Det finns ingen hj鋖p till denna modul 鋘</h1>


0707010006661e000041ed0000000000000001000000023ac03bfe00000000000000200000000000000000000000000000001200000003reloc/init/images 0707010006661f000081a40000000000000002000000013ac0388b00000185000000200000000000000000000000000000001b00000003reloc/init/images/icon.gif    GIF89a0 0   烫   烫H睲z櫃櫘裁fff                    !    ,    0 0  菼8永&^`Y庤	l刖棪+l瞅<7滊^硝b凜\ 2n蒞Q襯"揝娎xf道n瀴o2阬K獷l递欘顆彑誹'NT@厗唫僷| @{厡1st.A嚈:U殭巚牎啠壀媽彞瀔腹夯iM旅眉y皨聊钠敶釉#葅颜宰粂妚凛栝徕椾彗殍隩贠钶8([&l?X惛ル羾郎9j"搬CWU+濭y3W蓃1嗳Y%-J9庠 朑N喸h奞3Ebr9 劳湭:痨	& <Q ;   07070100064d4b000081e40000000000000002000000013ac0388b000012cb000000200000000000000000000000000000001500000003reloc/init/index.cgi  #!/usr/local/bin/perl
# index.cgi
# Display a list of run-levels and the actions that are run at boot and
# shutdown time for each level

require './init-lib.pl';
&header($text{'index_title'}, "", undef, 1, 1);
%access = &get_module_acl();
print "<hr>\n";

if ($config{'init_base'} && $access{'bootup'}) {
	# build list of normal and broken actions
	@iacts = &list_actions();
	foreach $a (@iacts) {
		@ac = split(/\s+/, $a);
		$nodemap{$ac[1]} = $ac[0];
		push(@acts, $ac[0]);
		push(@actsl, "0+$ac[0]");
		push(@actsf, $ac[0] =~ /^\// ? $ac[0]
					     : "$config{'init_dir'}/$ac[0]");
		}
	foreach $r (&list_runlevels()) {
		foreach $w ("S", "K") {
			foreach $a (&runlevel_actions($r, $w)) {
				@ac = split(/\s+/, $a);
				if (!$nodemap{$ac[2]}) {
					push(@acts, $ac[1]);
					push(@actsl,
					     "1+$r+$ac[0]+$ac[1]+$ac[2]+$w");
					push(@actsf, "$config{'init_base'}/rc$r.d/$w$ac[0]$ac[1]");
					}
				}
			}
		}

	if (!$config{'desc'}) {
		# Display actions by name only
		print "<table width=100% border>\n";
		print "<tr $tb> <td><b>$text{'index_title'}</b></td> </tr>\n";
		print "<tr $cb> <td><table width=100%>\n";
		$len = @acts; $len = int(($len+3)/4)*4;
		for($i=0; $i<$len; $i++) {
			if ($i%4 == 0) { print "<tr>\n"; }
			print "<td width=25%>";
			if ($acts[$i]) {
				print "<a href=\"edit_action.cgi?$actsl[$i]\">",
				      "$acts[$i]</a>\n";
				}
			print "</td>\n";
			if ($i%4 == 3) { print "</tr>\n"; }
			}
		print "</table></td></tr></table>\n";
		}
	else {
		# Display actions and descriptions
		if ($access{'bootup'} == 2) {
			# With form for changing boot mode
			print "<form action=save_bootup.cgi>\n";
			}
		print "<table border width=100%>\n";
		print "<tr $tb> <td><b>$text{'index_action'}</b></td> ",
		      "<td nowrap><b>$text{'index_boot'}</b></td> ";
		if ($config{'status_check'} == 2) {
			print "<td nowrap><b>$text{'index_status'}</b></td> ";
			}
		print "<td><b>$text{'index_desc'}</b></td> </tr>\n";
		local @boot = &get_inittab_runlevel();
		for($i=0; $i<@acts; $i++) {
			local ($boot, %daemon);
			foreach $s (&action_levels('S', $acts[$i])) {
				local ($l, $p) = split(/\s+/, $s);
				$boot = 1 if (&indexof($l, @boot) >= 0);
				}
			if ($boot && $config{'daemons_dir'} &&
			    &read_env_file("$config{'daemons_dir'}/$acts[$i]",
					   \%daemon)) {
				$boot = lc($daemon{'ONBOOT'}) eq 'yes' ? 1 : 0;
				}
			print "<tr $cb>\n";
			if ($access{'bootup'} == 2) {
				print "<td>$acts[$i]</td>\n";
				}
			else {
				print "<td><a href=\"edit_action.cgi?",
				      "$actsl[$i]\">$acts[$i]</a></td>\n";
				}
			local %has;
			$d = &html_escape(&init_description($actsf[$i],
				 $config{'status_check'} == 2 ? \%has : undef));
			if ($access{'bootup'} == 2 && $actsl[$i] =~ /^0/) {
				printf "<td><input type=radio name=$acts[$i] value=1 %s> %s\n", $boot ? 'checked' : '', $text{'yes'};
				printf "<input type=radio name=$acts[$i] value=0 %s> %s</td>\n", $boot ? '' : 'checked', $text{'no'};
				}
			else {
				print "<td>", $boot ? $text{'yes'} :
				      "<font color=#ff0000>$text{'no'}</font>",
				      "</td>\n";
				}
			if ($config{'status_check'} == 2) {
				print "<td>\n";
				local $out =
				    $has{'status'} ? `$actsf[$i] status` : '';
				if ($out =~ /running/i) {
					print $text{'yes'};
					}
				elsif ($out =~ /stopped/i) {
					print "<font color=#ff0000>",
					      "$text{'no'}</font>";
					}
				else {
					print "<br>";
					}
				print "</td>\n";
				}
			print "<td>",$d ? $d : "<br>","</td>\n";
			print "</tr>\n";
			}
		print "</table>\n";
		}
	if ($access{'bootup'} == 2) {
		print "<input type=submit value='$text{'save'}'></form>\n";
		}
	else {
		print "<a href='edit_action.cgi?2'>$text{'index_add'}</a><p>\n";
		}
	print "<hr>\n";
	}
elsif ($config{'local_script'} && $access{'bootup'}) {
	# Display local bootup script
	print &text('index_script',
		    "<tt>$config{'local_script'}</tt>"),"<br>\n";
	print "<form action=save_local.cgi method=post>\n";
	print "<textarea name=local rows=20 cols=80>";
	open(LOCAL, $config{'local_script'});
	while(<LOCAL>) { print; }
	close(LOCAL);
	print "</textarea><br>\n";
	print "<input type=submit value='$text{'save'}'></form>\n";
	print "<hr>\n";
	}

# reboot/shutdown buttons
print "<table cellpadding=5 width=100%>\n";
if ($access{'reboot'}) {
	print "<form action=reboot.cgi>\n";
	print "<tr> <td><input type=submit ",
	      "value=\"$text{'index_reboot'}\"></td>\n";
	print "</form>\n";
	print "<td>$text{'index_rebootmsg'}</td> </tr>\n";
	}

if ($access{'shutdown'}) {
	print "<form action=shutdown.cgi>\n";
	print "<tr> <td><input type=submit ",
	      "value=\"$text{'index_shutdown'}\"></td>\n";
	print "</form>\n";
	print "<td>$text{'index_shutdownmsg'}</td> </tr>\n";
	}
print "</table>\n";

print "<hr>\n";
&footer("/", $text{'index'});

 07070100064d4c000081e40000000000000002000000013ac0388b00001e7a000000200000000000000000000000000000001700000003reloc/init/init-lib.pl    # init-lib.pl
# Common functions for SYSV-style boot/shutdown sequences.
# These functions assume that under a directory (like /etc/ or /etc/rc.d/)
# there is a directory called rcX.d for each runlevel X. In each runlevel
# directory is a list of files with names like S64foobar or K99smeg, where
# the first letter is S (for commands run at boot time) or K (shutdown time),
# the next 2 digits the execution order and the rest the action name.
#
# Typically, each runlevel file is linked (hard or soft) to a file in
# the directory init.d. Each file in init.d may have several links to it from
# different runlevels (for startup and shutdown). However, some runlevel
# files may not be links at all.

do '../web-lib.pl';
&init_config();

# runlevel_actions(level, S|K)
# Return a list of actions started or stopped in some run-level, each in
# the format:
#  number name inode
sub runlevel_actions
{
local($dir, $f, @stbuf, @rv);
$dir = "$config{init_base}/rc$_[0].d";
opendir(DIR, $dir);
foreach $f (readdir(DIR)) {
	if ($f !~ /^([A-Z])(\d+)(.*)$/ || $1 ne $_[1]) { next; }
	if (!(@stbuf = stat("$dir/$f"))) { next; }
	push(@rv, "$2 $3 $stbuf[1]");
	}
closedir(DIR);
@rv = sort { @a = split(/\s/,$a); @b = split(/\s/,$b); $a[0] <=> $b[0]; } @rv;
return $_[1] eq "S" ? @rv : reverse(@rv);
}


# list_runlevels()
# Returns a list of known runlevels
sub list_runlevels
{
local(@rv);
opendir(DIR, $config{init_base});
foreach (readdir(DIR)) {
	if (/^rc([A-z0-9])\.d$/) {
		#if (!$config{show_opts} && $1 < 1) { next; }
		push(@rv, $1);
		}
	}
closedir(DIR);
return sort(@rv);
}


# list_actions()
# List boot time actions from init.d
sub list_actions
{
local($dir, $f, @stbuf, @rv);
$dir = $config{init_dir};
opendir(DIR, $dir);
foreach $f (sort { $a cmp $b } readdir(DIR)) {
	if ($f eq "." || $f eq ".." || $f =~ /\.bak$/ || $f eq "functions" ||
	    $f eq "core" || $f eq "README" || $f eq "rc" || $f eq "rcS" ||
	    -d "$dir/$f" || $f =~ /\.swp$/ || $f eq "skeleton" ||
	    $f =~ /\.lock$/) { next; }
	if (@stbuf = stat("$dir/$f")) {
		push(@rv, "$f $stbuf[1]");
		}
	}
closedir(DIR);
foreach $f (split(/\s+/, $config{'extra_init'})) {
	if (@stbuf = stat($f)) {
		push(@rv, "$f $stbuf[1]");
		}
	}
return @rv;
}


# action_levels(S|K, action)
# Return a list of run levels in which some action (from init.d) is started
# or stopped. Each item is in the format:
#  level order name
sub action_levels
{
local(@stbuf, $rl, $dir, $f, @stbuf2, @rv);
@stbuf = stat(&action_filename($_[1]));
foreach $rl (&list_runlevels()) {
	$dir = "$config{init_base}/rc$rl.d";
	opendir(DIR, $dir);
	foreach $f (readdir(DIR)) {
		if ($f =~ /^([A-Z])(\d+)(.*)$/ && $1 eq $_[0]) {
			@stbuf2 = stat("$dir/$f");
			if ($stbuf[1] == $stbuf2[1]) {
				push(@rv, "$rl $2 $3");
				last;
				}
			}
		}
	closedir(DIR);
	}
return @rv;
}


# action_filename(name)
# Returns the name of the file in init.d for some action
sub action_filename
{
return $_[0] =~ /^\// ? $_[0] : "$config{init_dir}/$_[0]";
}


# runlevel_filename(level, S|K, order, name)
sub runlevel_filename
{
local $n = $_[3];
$n =~ s/^(.*)\///;
return "$config{init_base}/rc$_[0].d/$_[1]$_[2]$n";
}


# add_rl_action(action, runlevel, S|K, order)
# Add some existing action to a runlevel
sub add_rl_action
{
$file = &runlevel_filename($_[1], $_[2], $_[3], $_[0]);
while(-r $file) {
	if ($file =~ /^(.*)_(\d+)$/) { $file = "$1_".($2+1); }
	else { $file = $file."_1"; }
	}
&lock_file($file);
if ($config{soft_links}) {
	symlink(&action_filename($_[0]), $file);
	}
else {
	link(&action_filename($_[0]), $file);
	}
&unlock_file($file);
}


# delete_rl_action(name, runlevel, S|K)
# Delete some action from a runlevel
sub delete_rl_action
{
local(@stbuf, $dir, $f, @stbuf2);
@stbuf = stat(&action_filename($_[0]));
$dir = "$config{init_base}/rc$_[1].d";
opendir(DIR, $dir);
foreach $f (readdir(DIR)) {
	if ($f =~ /^([A-Z])(\d+)(.+)$/ && $1 eq $_[2]) {
		@stbuf2 = stat("$dir/$f");
		if ($stbuf[1] == $stbuf2[1]) {
			# found file to delete.. unlink
			&lock_file("$dir/$f");
			unlink("$dir/$f");
			&unlock_file("$dir/$f");
			last;
			}
		}
	}
closedir(DIR);
}


# reorder_rl_action(name, runlevel, S|K, new_order)
sub reorder_rl_action
{
local(@stbuf, $dir, $f, @stbuf2);
@stbuf = stat(&action_filename($_[0]));
$dir = "$config{init_base}/rc$_[1].d";
opendir(DIR, $dir);
foreach $f (readdir(DIR)) {
	if ($f =~ /^([A-Z])(\d+)(.+)$/ && $1 eq $_[2]) {
		@stbuf2 = stat("$dir/$f");
		if ($stbuf[1] == $stbuf2[1]) {
			# Found file that needs renaming
			$file = "$config{init_base}/rc$_[1].d/$1$_[3]$3";
			while(-r $file) {
				if ($file =~ /^(.*)_(\d+)$/)
					{ $file = "$1_".($2+1); }
				else { $file = $file."_1"; }
				}
			&rename_logged("$dir/$f", $file);
			last;
			}
		}
	}
closedir(DIR);
}


# rename_action(old, new)
# Change the name of an action in init.d, and re-direct all soft links
# to it from the runlevel directories
sub rename_action
{
local($file, $idx, $old);
foreach (&action_levels('S', $_[0])) {
	/^(\S+)\s+(\S+)\s+(\S+)$/;
	$file = "$config{init_base}/rc$1.d/S$2$3";
	if (readlink($file)) {
		# File is a symbolic link.. change it
		&lock_file($file);
		unlink($file);
		symlink("$config{init_dir}/$_[1]", $file);
		&unlock_file($file);
		}
	if (($idx = index($file, $_[0])) != -1) {
		$old = $file;
		substr($file, $idx, length($_[0])) = $_[1];
		&rename_logged($old, $file);
		}
	}
foreach (&action_levels('K', $_[0])) {
	/^(\S+)\s+(\S+)\s+(\S+)$/;
	$file = "$config{init_base}/rc$1.d/K$2$3";
	if (readlink($file)) {
		# File is a symbolic link.. change it
		&lock_file($file);
		unlink($file);
		symlink("$config{init_dir}/$_[1]", $file);
		&unlock_file($file);
		}
	if (($idx = index($file, $_[0])) != -1) {
		$old = $file;
		substr($file, $idx, length($_[0])) = $_[1];
		&rename_logged($old, $file);
		}
	}
&rename_logged("$config{init_dir}/$_[0]", "$config{init_dir}/$_[1]");
}


# rename_rl_action(runlevel, S|K, order, old, new)
# Change the name of a runlevel file
sub rename_rl_action
{
&rename_logged("$config{init_base}/rc$_[0].d/$_[1]$_[2]$_[3]",
               "$config{init_base}/rc$_[0].d/$_[1]$_[2]$_[4]");
}

# get_inittab_runlevel()
# Returns the runlevels entered at boot time
sub get_inittab_runlevel
{
local %iconfig = &foreign_config("inittab");
local @rv;
local $id = $config{'inittab_id'};
open(TAB, $iconfig{'inittab_file'});
while(<TAB>) {
	if (/^$id:(\d+):/) { @rv = ( $1 ); }
	}
close(TAB);
if ($config{"inittab_rl_$rv[0]"}) {
	@rv = split(/,/, $config{"inittab_rl_$rv[0]"});
	}
return @rv;
}

# init_description(file, \%hasargs)
sub init_description
{
open(FILE, $_[0]);
local @lines = <FILE>;
close(FILE);
if ($_[1]) {
	foreach (@lines) {
		if (/^\s*(['"]?)([a-z]+)\1\)/i) {
			$_[1]->{$2}++;
			}
		}
	}

local $desc;
if ($config{'daemons_dir'}) {
	# First try the daemons file
	local %daemon;
	if ($_[0] =~ /\/([^\/]+)$/ &&
	    &read_env_file("$config{'daemons_dir'}/$1", \%daemon) &&
	    $daemon{'DESCRIPTIVE'}) {
		return $daemon{'DESCRIPTIVE'};
		}
	}
if ($config{'chkconfig'}) {
	# Find the redhat-style description: section
	foreach (@lines) {
		s/\r|\n//g;
		s/\\$//;
		if (/^#+\s*description:(.*)/) {
			$desc = $1;
			}
		elsif ((!/^#/ || /^#+\s*(\S+):/) && $desc) {
			last;
			}
		elsif (/#+\s*(.*)/ && $desc && $1) {
			$desc .= "\n".$1;
			}
		}
	}
elsif ($config{'init_info'}) {
	# Find the suse-style Description: line
	foreach (@lines) {
		s/\r|\n//g;
		if (/^#\s*Description:\s*(.*)/) {
			$desc = $1;
			}
		}
	}
else {
	# Use the first comments
	foreach (@lines) {
		s/\r|\n//g;
		next if (/^#!\s*\/(bin|sbin|usr)\// || /\$id/i || /^#+\s+@/ ||
			 /source function library/i || /^#+\s*copyright/i);
		if (/^#+\s*(.*)/) {
			last if ($desc && !$1);
			$desc .= $1."\n" if ($1);
			}
		elsif (/\S/) { last; }
		}
	$_[0] =~ /\/([^\/]+)$/;
	$desc =~ s/^\s*$1\s+//;
	}
return $desc;
}

1;

  07070100067b98000041ed0000000000000001000000023ac03bff00000000000000200000000000000000000000000000001000000003reloc/init/lang   07070100067b99000081a40000000000000002000000013ac0388b00000b1b000000200000000000000000000000000000001300000003reloc/init/lang/de    index_title=Bootup und Shutdown Dienste
index_add=Einen neuen Start- oder Stop-Dienst erstellen
index_reboot=System neu starten
index_rebootmsg=Klicken Sie auf diesen Button, um das System jetzt sofort neu zu starten. Allen im Moment eingeloggten Benutzer werden vom System getrennt und alle Dienste werden neu gestartet.
index_shutdown=System herunterfahren
index_shutdownmsg=Klick Sie auf diesen Button, um das System jetzt sofort herunterzufahren. Alle Dienste werden gestoppt, alle Benutzer getrennt und das die Maschine abgeschaltet (wenn Ihre Hardware dies unterst&uuml;tzt).
index_script=Das unten angezeigte Script $1 wird beim Starten des Systems ausgef&uuml;hrt. Sie k&ouml;nnen eigene Kommandos hinzuf&uuml;gen, um Daemonen oder Server neu zu starten beim Reboot.
index_return=Bootup und Shutdown Scripts
index_action=Aktion
index_desc=Beschreibung

edit_title=Dienst bearbeiten
create_title=Dienst erstellen
edit_ecannot=Sie haben keine Berechtigung, Startdienste zu bearbeiten
edit_details=Dienst-Details
edit_name=Name
edit_desc=Beschreibung
edit_startmsg=Bootup Nachricht
edit_stopmsg=Shutdown Nachricht
edit_start=Bootup Kommandos
edit_stop=Shutdown Kommandos
edit_script=Script
edit_boot=Start beim Booten?
edit_badS=Weil dieser Dienst nicht richtig erstellt wurde, wird er nur in Runlevel $1 gestartet.
edit_badK=Weil dieser Dienst nicht richtig erstellt wurde, wrid er nur in Runlevel $1 gestoppt.
edit_fix=Klicken Sie hier, um den Dienst auch in anderen Runleveln verf&uuml;gbar zu machen.
edit_levels=Runlevels in denen gestartet bzw. gestoppt werden soll
edit_rl=Runlevel $1
edit_startat=Start bei
edit_stopat=Stop bei
edit_startnow=Starte jetzt
edit_stopnow=Stoppe jetzt
edit_return=Dienst

save_err=Fehler beim Speichern des Dienstes
save_ecannot=Sie haben keine Berechtigung, Startdienste zu bearbeiten
save_ealready=Es existiert bereits ein Dienst mit dem Namen '$1'
save_ewrite=Fehler beim Schreiben zu $1 : $2

ss_ecannot=Sie haben keine Berechtigung, Startdienste zu starten/stoppen
ss_start=Starte Dienst
ss_stop=Stoppe Dienst
ss_exec=F&uuml;hre $1 aus ..

shutdown_ecannot=Sie haben keine Berechtigung, das System herunterzufahren
shutdown_title=Shutdown
shutdown_rusure=Sind Sie sicher, dass Sie das System mit dem Kommando $1 herunterfahren wollen?
shutdown_ok=System herunterfahren
shutdown_exec=Fahre das System herunter mit dem Kommando $1 ..

reboot_ecannot=Sie haben keine Berechtigung, das System neu zu starten
reboot_title=Neustart
reboot_rusure=Sind Sie sicher, dass sie das System mit dem Kommando $1 neu starten wollen?
reboot_ok=System neu starten
reboot_exec=Start System neu mit dem Kommando $1 ..

acl_script=darf Startdienst-Scripts bearbeiten?
acl_actions=Darf Dienste bearbeiten, anlegen und l&ouml;schen?
acl_reboot=Darf das System neu starten?
acl_shutdown=Darf das System herunterfahren?

 07070100067b9a000081a40000000000000002000000013ac0388b00000be7000000200000000000000000000000000000001300000003reloc/init/lang/en    index_title=Bootup and Shutdown
index_add=Create a new bootup or shutdown action
index_reboot=Reboot System
index_rebootmsg=Click on this button to immediately reboot the system. All currently logged in users will be disconnected and all services will be re-started.
index_shutdown=Shutdown System
index_shutdownmsg=Click on this button to immediately shutdown the system. All services will be stopped, all users disconnected and the system powered off (if your hardware supports it).
index_script=The script $1 listed below will be run at bootup time. You may add your own commands to have daemons or servers re-started when the system is re-booted.
index_return=bootup and shutdown actions
index_action=Action
index_desc=Description
index_boot=Start at boot?
index_status=Started now?

edit_title=Edit Action
create_title=Create Action
edit_ecannot=You are not allowed to edit bootup actions
edit_details=Action Details
edit_name=Name
edit_desc=Description
edit_startmsg=Bootup message
edit_stopmsg=Shutdown message
edit_start=Bootup commands
edit_stop=Shutdown commands
edit_script=Action Script
edit_boot=Start at boot time?
edit_badS=Because this action was not created properly, it is started only in runlevel $1.
edit_badK=Because this action was not created properly, it is stopped only in runlevel $1.
edit_fix=Click here to make this action available to other runlevels
edit_levels=Runlevels to start and stop in
edit_rl=Runlevel $1
edit_startat=Start at
edit_stopat=Stop at
edit_startnow=Start Now
edit_stopnow=Stop Now
edit_restartnow=Restart Now
edit_condrestartnow=Restart If Needed
edit_reloadnow=Reload Now
edit_statusnow=Show Status
edit_return=action
edit_status=Started now?
edit_unknown=Unknown

save_err=Failed to save action
save_ecannot=You are not allowed to edit bootup actions
save_ealready=An action called '$1' already exists
save_ewrite=Failed to write to $1 : $2

ss_ecannot=You are not allowed to start or stop bootup actions
ss_start=Start Action
ss_stop=Stop Action
ss_restart=Restart Action
ss_reload=Reloading Action
ss_status=Action Status
ss_exec=Executing $1 ..

shutdown_ecannot=You are not allowed to shutdown the system
shutdown_title=Shutdown
shutdown_rusure=Are you sure you want to shutdown the system with the command $1 ?
shutdown_ok=Shutdown System
shutdown_exec=Shutting down with command $1 ..

reboot_ecannot=You are not allowed to reboot the system
reboot_title=Reboot
reboot_rusure=Are you sure you want to reboot the system with the command $1 ?
reboot_ok=Reboot System
reboot_exec=Rebooting with command $1 ..

acl_script=Can edit the bootup script?
acl_actions=Can edit, create and delete actions?
acl_reboot=Can reboot the system?
acl_shutdown=Can shutdown the system?

log_rename=Renamed action $1 to $2
log_modify=Modified action $1
log_create=Created action $1
log_delete=Deleted action $1
log_start=Started bootup action $1
log_stop=Stopped shutdown action $1
log_reboot=Rebooted system
log_shutdown=Shutdown system
log_local=Modified bootup script
log_bootup=Changed boot action for $1
 07070100067b9b000081a40000000000000002000000013ac0388b00000c03000000200000000000000000000000000000001300000003reloc/init/lang/es    index_title=Arranque y Parada
index_add=Crear una nueva acci髇 de arranque y parada
index_reboot=Rearrancar Sistema
index_rebootmsg=Haz click en este bot髇 para rearrancar el sistema de forma inmediata. Todos los usuario conectados ser醤 desconectados y todos los servicios ser醤 rearrancados.
index_shutdown=Apagar Sistema
index_shutdownmsg=Haz click en este bot髇 para apagar el sistema de forma inmediata. Se parar醤 todos los servicios, todos los usuarios ser醤 desconectados y el sistema apagado de la corriente (si tu hardware lo soporta).
index_script=El gui髇 $1 listado debajo ser ejecutado al arrancar. Puedes a馻dir tus propios comandos como demonios o rearrancar servidores cuando el sistema rearranque.
index_return=acciones de arranque y parada
index_action=Acci髇
index_desc=Descripci髇
index_boot=緼rranco con la m醧uina?

edit_title=Editar Acci髇
create_title=Crear Acci髇
edit_ecannot=No est醩 autorizado a editar acciones de arranque
edit_details=Detalle de Acciones
edit_name=Nombre
edit_desc=Descripci髇
edit_startmsg=Mensaje de Arranque
edit_stopmsg=Mensaje de Parada
edit_start=Comandos de Arranque
edit_stop=Comandos de Parada
edit_script=Gui髇 de Acci髇
edit_boot=緼rranco al arrancar el sistema?
edit_badS=A causa de que esta acci髇 no ha sido creada convenientemente, s髄o se iniciar en nivel de ejecuci髇 $1.
edit_badK=A causa de que esta acci髇 no ha sido creada convenientemente, s髄o se iniciar en nivel de ejecuci髇 $1.
edit_fix=Haz click aqu para hacer que esta acci髇 est disponible en otros niveles de ejecuci髇
edit_levels=Niveles de ejecuci髇 en que se debe iniciar y parar
edit_rl=Nivel $1
edit_startat=Iniciar en
edit_stopat=Parar en
edit_startnow=Iniciar Ahora
edit_stopnow=Para Ahora
edit_return=acci髇

save_err=Error al salvar acci髇
save_ecannot=No est醩 autorizao a editar acciones de arranque
save_ealready=Una acci髇 llamada '$1' ya existe
save_ewrite=Error al escribir a $1 : $2

ss_ecannot=No est醩 autorizado a iniciar o parar acciones de arranque
ss_start=Acci髇 de Inicio
ss_stop=Acci髇 de Parada
ss_exec=Ejecutando $1 ...

shutdown_ecannot=No est醩 autorizado a parar el sistema
shutdown_title=Parada
shutdown_rusure=縀st醩 seguro de querer parar el sistema con el comando $1?
shutdown_ok=Parada del Sistema
shutdown_exec=Parando con el comando $1 ...

reboot_ecannot=No est醩 autorizado a rearrancar el sisema
reboot_title=Rearranque
reboot_rusure=縀st醩 seguro de querer rearrancar el sistema con el comando $1?
reboot_ok=Rearrancar Sistema
reboot_exec=Rearrancando con comando $1 ...

acl_script=縋uedo editar el gui髇 de arranque?
acl_actions=縋uedo editar, crear y borrar acciones?
acl_reboot=縋uedo rearrancar el sistema?
acl_shutdown=縋uedo parar el sistema?

log_rename=Renombrada acci髇 $1 por $2
log_modify=Modificada acci髇 $1
log_create=Creada acci髇 $1
log_delete=Borrada acci髇 $1
log_start=Iniciada acci髇 de arranque $1
log_stop=Parada acci髇 de cierre $1
log_reboot=Sistema rearrancado
log_shutdown=Sistema parado
log_local=Modificado gui髇 de arranque
log_bootup=Cambiada acci髇 de arranque para $1
 07070100067b9c000081a40000000000000002000000013ac0388b00000aad000000200000000000000000000000000000001300000003reloc/init/lang/fr    index_title=Actions de d閙arrage et d'arr阾
index_add=Cr閑r une nouvelle action de d閙arrage ou d'arr阾
index_reboot=Red閙arrer le Syst鑝e
index_rebootmsg=Cliquer sur ce bouton va imm閐iatement red閙arrer le syst鑝e.  Tout utilisateur avec une session ouverte va 阾re d閏onnect et tout les services seront red閙arr閟.
index_shutdown=Arr阾er le syst鑝e
index_shutdownmsg=Cliquer sur ce bouton va imm閐iatement arr阾er le syst鑝e.  Tous les services vont 阾re stopp閟, tous les utilisateurs d閏onnect閟 et le syst鑝e mis hors tension (si le mat閞iel le supporte).
index_script=Le script '$1' list ci-dessous va 阾re ex閏ut au d閙arrage.  Vous pouvez ajouter vos propres commandes pour avoir vos services et processus ex閏ut閟 de nouveau quand le syst鑝e va red閙arrer.
index_return=l'action de d閙arrage et d'arr阾

edit_title=蒬iter une action
create_title=Cr閑r une action
edit_ecannot=Vous n'阾es pas autoris  閐iter une action
edit_details=D閠ails de l'action
edit_name=Nom
edit_desc=Description
edit_startmsg=Message au d閙arrage
edit_stopmsg=Message  l'arr阾
edit_start=Commande au d閙arrage
edit_stop=Commande  l'arr阾
edit_script=Script de l'action
edit_badS=Cette action ayant 閠 cr殚 incorrectement, elle ne va s'ex閏uter qu'au niveau d'ex閏ution $1.
edit_badK=Cette action ayant 閠 cr殚 incorrectement, elle  ne va s'arr阾er qu'au niveau d'ex閏ution $1.
edit_fix=Cliquer ici pour permettre  cette action d'阾re disponible  d'autres niveaux d'ex閏ution
edit_levels=Niveaux d'ex閏ution auxquels d閙arrer et arr阾er
edit_rl=Niveau $1
edit_startat=D閙arre 
edit_stopat=Arr阾e 
edit_startnow=Ex閏uter maintenant
edit_stopnow=Arr阾er maintenant
edit_return=action

save_err=Impossible d'enregistrer l'action
save_ecannot=Vous n'阾es pas autoris  閐iter une action de d閙arrage
save_ealready=Une action appel閑 $1 existe d閖
save_ewrite=Impossible d'閏rire sur '$1' : $2

ss_ecannot=Vous n'阾es pas autoris  d閙arrer et arr阾er la moindre action
ss_start=D閙arrer action
ss_stop=Arr阾er action
ss_exec=Ex閏ution '$1'

shutdown_ecannot=Vous n'阾es pas autoris  arr阾er le syst鑝e
shutdown_title=Arr阾 du Syst鑝e
shutdown_rusure=蕋es-vous s鹯 de vouloir arr阾er le syst鑝e avec la commande '$1' ?
shutdown_ok=Arr阾 du syst鑝e
shutdown_exec=Arr阾 du syst鑝e avec la commande '$1'

reboot_ecannot=Vous n'阾es pas autoris  red閙arrer le syst鑝e
reboot_title=Red閙arrer
reboot_rusure=蕋es-vous s鹯 de vouloir red閙arrer le syst鑝e avec la commande '$1' ?
reboot_ok=Red閙arrer le syst鑝e
reboot_exec=Red閙arrer avec la commande '$1'

acl_script=Peut 閐iter le script de d閙arrage?
acl_actions=Peut 閐iter, cr閑r et supprimer des actions?
acl_reboot=Peut red閙arrer le syst鑝e?
acl_shutdown=Peut arr阾er le syst鑝e?

   07070100067b9d000081a40000000000000002000000013ac0388b00000942000000200000000000000000000000000000001300000003reloc/init/lang/it    index_title=Avvio e Spegnimento
index_add=Crea una nuova azione di avvio o spegnimento
index_reboot=Riavvia Sistema
index_rebootmsg=Clicca questo pulsante per riavviare immediatamente il
sistema. Tutti gli utenti saranno disconnessi e tutti i servizi riavviati.
index_shutdown=Spegni Sistema
index_shutdownmsg=Clicca questo pulsante per spegnere immediatamente il
sistema. Tutti i servizi verranno bloccati, tutti gli utenti disconnessi ed
il computer verr&agrave; spento (se l'hardware lo supporta).
index_script=Lo script $1 verr&agrave; lanciato all'avvio. Puoi aggiungere i
tuoi comandi per riavviare i demoni o i server quando il sistema viene
riavviato.
index_return=azioni di avvio e spegnimento

edit_title=Edit Action
create_title=Create Action
edit_ecannot=You are not allowed to edit bootup actions
edit_details=Action Details
edit_name=Name
edit_desc=Description
edit_startmsg=Bootup message
edit_stopmsg=Shutdown message
edit_start=Bootup commands
edit_stop=Shutdown commands
edit_script=Action Script
edit_badS=Because this action was not created properly, it is started only in runlevel $1.
edit_badK=Because this action was not created properly, it is stopped only in runlevel $1.
edit_fix=Click here to make this action available to other runlevels
edit_levels=Runlevels to start and stop in
edit_rl=Runlevel $1
edit_startat=Start at
edit_stopat=Stop at
edit_startnow=Start Now
edit_stopnow=Stop Now
edit_return=action

save_err=Failed to save action
save_ecannot=You are not allowed to edit bootup actions
save_ealready=An action called '$1' already exists
save_ewrite=Failed to write to $1 : $2

ss_ecannot=You are not allowed to start or stop bootup actions
ss_start=Start Action
ss_stop=Stop Action
ss_exec=Executing $1 ..

shutdown_ecannot=You are not allowed to shutdown the system
shutdown_title=Shutdown
shutdown_rusure=Are you sure you want to shutdown the system with the command $1 ?
shutdown_ok=Shutdown System
shutdown_exec=Shutting down with command $1 ..

reboot_ecannot=You are not allowed to reboot the system
reboot_title=Reboot
reboot_rusure=Are you sure you want to reboot the system with the command $1 ?
reboot_ok=Reboot System
reboot_exec=Rebooting with command $1 ..

acl_script=Can edit the bootup script?
acl_actions=Can edit, create and delete actions?
acl_reboot=Can reboot the system?
acl_shutdown=Can shutdown the system?

  07070100067b9e000081a40000000000000002000000013ac0388b00000b7c000000200000000000000000000000000000001300000003reloc/init/lang/pl    index_title=Start i zamykanie systemu
index_add=Utw髍z now akcj startu lub zamykania
index_reboot=Restartuj system
index_rebootmsg=Naci秐ij przycisk by natychmiast zrestartowa system. 
index_shutdown=Zamknij system
index_shutdownmsg=Naci秐ij przycisk by natychmiast zamkn辨 system.
index_script=Skrypt $1 (pokazany poni縠j) b阣zie uruchomiony podczas startu systemu. Mo縠sz doda w砤sne komendy startuj眂e demony i serwery podczas startu systemu.
index_return=listy akcji startu i&nbsp;zamykania
index_action=Akcja
index_desc=Opis
index_boot=Uruchomi przy starcie?
index_status=Dzia砤 obecnie?

edit_title=Zmie akcj
create_title=Utw髍z akcj
edit_ecannot=Nie masz uprawnie do zmiany akcji
edit_details=Szczeg蟪y akcji
edit_name=Nazwa
edit_desc=Opis
edit_startmsg=Komunikat startu
edit_stopmsg=Komunikat zatrzymania
edit_start=Komenda startu
edit_stop=Komenda zatrzymania
edit_script=Skrypt akcji
edit_boot=Uruchomi przy starcie?
edit_badS=Poniewa akcja nie zostala utworzona poprawnie, zostanie uruchomiona tylko na poziomie $1.
edit_badK=Poniewa akcja nie zostala utworzona poprawnie, zostanie zatrzymana tylko na poziomie $1.
edit_fix=Naci秐ij tutaj by udost阷ni akcj na innych poziomach.
edit_levels=Poziomy na kt髍ych akcj uruchomi i&nbsp;zatrzyma
edit_rl=Poziom $1
edit_startat=Uruchom na
edit_stopat=Zatrzymaj na
edit_startnow=Uruchom teraz
edit_stopnow=Zatrzymaj teraz
edit_restartnow=Restartuj teraz
edit_condrestartnow=Restartuj, je秎i trzeba
edit_reloadnow=Prze砤duj teraz
edit_statusnow=Poka stan
edit_return=akcji
edit_status=Dzia砤 obecnie?
edit_unknown=Nieznany

save_err=Nie uda硂 si zachowa akcji
save_ecannot=Nie masz uprawnie do poprawiania akcji startowych
save_ealready=Akcja o&nbsp;nazwie '$1' ju istnieje
save_ewrite=Nie uda硂 si zapisa $1 : $2

ss_ecannot=Nie masz prawa uruchamia ani zatrzymywa akcji
ss_start=Uruchom akcj
ss_stop=Zatrzymaj akcj
ss_restart=Restartuj akcj
ss_reload=Prze砤dowanie akcji
ss_status=Stan akcji
ss_exec=Wykonywanie $1 ..

shutdown_ecannot=Nie masz prawa zatrzyma systemu
shutdown_title=Zatrzymaj
shutdown_rusure=Czy na pewno chcesz zatrzyma system komend $1 ?
shutdown_ok=Zatrzymanie systemu
shutdown_exec=Zatrzymywanie systemu komend $1 ..

reboot_ecannot=Nie masz prawa restartowa systemu
reboot_title=Restart
reboot_rusure=Czy na pewno chcesz zrestartowac system komend $1 ?
reboot_ok=Restart systemu
reboot_exec=Restart systemu komend $1 ..

acl_script=Mo縠 poprawia skrypt startuj眂y?
acl_actions=Mo縠 poprawia, tworzy i&nbsp;usuwa akcje?
acl_reboot=Mo縠 restartowa system?
acl_shutdown=Mo縠 zamkn辨 system?

log_rename=Zmieniono nazw $1 na $2
log_modify=Zmodyfikowano akcj $1
log_create=Utworzono akcj $1
log_delete=Usuni阾o akcj $1
log_start=Wystartowano akcj $1
log_stop=Zatrzymano akcj $1
log_reboot=Restartowano system
log_shutdown=Zatrzymano system
log_local=Zmodyfikowano skrypt startowy
log_bootup=Zmieniono akcj startow dla $1
07070100067b9f000081a40000000000000002000000013ac0388b00000a26000000200000000000000000000000000000001300000003reloc/init/lang/pt    index_title=Iniciar e Encerrar
index_add=Criar nova ac玢o de iniciar ou encerrar
index_reboot=Reiniciar o Sistema
index_rebootmsg=Clique neste bot鉶 para reiniciar imediatamente o sistema. Todos os utilizadores ligados ser鉶 desconectados e todos os servi鏾s ser鉶 reiniciados.
index_shutdown=Encerrar Sistema
index_shutdownmsg=Clique neste bot鉶 para encerrar imediatamente o sistema. Todos os servi鏾s ser鉶 terminados, todos os utilizadores desconectados e o sistema ser desligado (se o seu hardware o suportar).
index_script=O script $1 abaixo listado ser executado ao iniciar do sistema. Poder adicionar comandos personalizados para que programas daemons ou servidores se iniciem quando reiniciar o sistema.
index_return=ac珲es de iniciar e encerrar

edit_title=Editar Ac玢o
create_title=Criar Ac玢o
edit_ecannot=Voc n鉶 est autorizado para editar ac珲es de iniciar
edit_details=Detalhes de Ac玢o
edit_name=Nome
edit_desc=Descri玢o
edit_startmsg=Mensagem ao iniciar
edit_stopmsg=Mensagem ao encerrar
edit_start=Commandos de iniciar
edit_stop=Comandos de encerrar
edit_script=Script de Ac玢o
edit_badS=Devido ao facto desta ac玢o n鉶 ter sido criada correctamente, ser iniciada apenas no runlevel $1.
edit_badK=Devido ao facto desta ac玢o n鉶 ter sido criada correctamente, ser terminada apenas no runlevel $1.
edit_fix=Clique aqui de modo a fazer com que esta ac玢o esteja dispon韛el para outros runlevels
edit_levels=Runlevels para iniciar e parar em
edit_rl=Runlevel $1
edit_startat=Iniciar em
edit_stopat=Parar em
edit_startnow=Iniciar j
edit_stopnow=Parar j
edit_return=ac玢o

save_err=Erro ao guardar ac玢o
save_ecannot=Voc n鉶 est autorizado para editar ac珲es de iniciar
save_ealready=Um ac玢o denominada de '$1' j existe
save_ewrite=Erro ao escrever para $1 : $2

ss_ecannot=Voc n鉶 est autorizado para come鏰r ou parar ac珲es de iniciar
ss_start=Iniciar Ac玢o
ss_stop=Parar Ac玢o
ss_exec=A executar $1 ..

shutdown_ecannot=Voc n鉶 est autorizado para encerrar o sistema
shutdown_title=Encerrar
shutdown_rusure=Tem a certeza que quer encerrar o sistema com o comando $1 ?
shutdown_ok=Encerrar Sistema
shutdown_exec=A encerrar sistema com o comando $1 ..

reboot_ecannot=Voc n鉶 est autorizado para reiniciar o sistema
reboot_title=Reiniciar
reboot_rusure=Tem a certeza que quer reiniciar o sistema com o comando $1 ?
reboot_ok=Reiniciar Sistema
reboot_exec=A reiniciar sistema com o comando $1 ..

acl_script=Pode editar o script de inicia玢o?
acl_actions=Pode editar, criar e apagar ac珲es?
acl_reboot=Pode reiniciar o sistema?
acl_shutdown=Pode encerrar o sistema?
  07070100067ba0000081a40000000000000002000000013ac0388b00000a6c000000200000000000000000000000000000001600000003reloc/init/lang/ru_RU save_err=硒栳赅 镳 耦躔囗屙梃 聆屙囵
edit_badK=项耜铍 溧眄 聆屙囵栝 猁 耦玟囗 礤镳噔桦, 铐 狍溴 恹玮囗 镳 镳 铖蜞眍怅, 蝾朦觐 磬 箴钼礤 恹镱腠屙 $1.
edit_badS=项耜铍 溧眄 聆屙囵栝 猁 耦玟囗 礤镳噔桦, 铐 狍溴 恹玮囗 镳 耱囵蝈 蝾朦觐 磬 箴钼礤 恹镱腠屙 $1.
index_rebootmsg=袜骒栩 磬  觏铒牦 潆 疱耱囵蜞 耔耱屐. 埋 镱潢膻麇眄 镱朦珙忄蝈腓 狍潴 铗觌屙  怦 皴疴桉 狍潴 疱耱囵蝾忄睇.
ss_ecannot=锣 礤 疣琊屮屙 玎矬耜囹 桦 铖蜞磬怆桠囹 耱囵蝾恹 聆屙囵梃
shutdown_rusure=蔓 筲屦屙, 黩 躅蜩蝈 铖蜞眍忤螯 耔耱屐 觐爨礓铋 $1 ?
shutdown_ecannot=锣 礤 疣琊屮屙 铖蜞磬怆桠囹 耔耱屐
reboot_title=绣耱囵 谚耱屐
edit_stopat=羊铒 
index_reboot=绣耱囵蝾忄螯 谚耱屐
shutdown_exec=务蜞眍怅 耔耱屐 觐爨礓铋 $1 ..
ss_exec=蔓镱腠屙桢 $1 ..
ss_start=羊囵蝾恹 仰屙囵栝
edit_startat=羊囵 
edit_startnow=羊囵钼囹 湾戾潆屙眍
index_return=耧桉铌 聆屙囵桢
edit_script=义犟 仰屙囵
acl_actions=填驽 疱溧牝桊钼囹, 耦玟噔囹  箐嚯螯 聆屙囵梃?
acl_reboot=填驽 疱耱囵蝾忄螯 耔耱屐?
edit_details=相疣戾蝠 仰屙囵
create_title=杨玟囗桢 仰屙囵
edit_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 聆屙囵梃 耱囵蜞
edit_rl=羽钼屙 $1
index_shutdownmsg=袜骒栩 磬  觏铒牦 潆 礤戾潆屙眍泐 磬鬣豚 镳铞羼襦 铖蜞眍怅 耔耱屐. 埋 皴疴桉 狍潴 铖蜞眍怆屙, 怦 镱朦珙忄蝈腓 铗耦邃屙屙  镨蜞龛 耔耱屐 铗觌屙 (羼腓 忄 囡镟疣蝮疣 镱滗屦骅忄弪 溧眄簋 忸珈铈眍耱).
index_add=杨玟囹 眍恹 聆屙噼 潆 耱囵蜞 桦 铖蜞眍怅
edit_start=羊囵蝾恹 觐爨礓
edit_title=绣溧牝桊钼囗桢 仰屙囵
edit_desc=物桉囗桢
edit_stopmsg=羊铒钼铄 耦钺龛
shutdown_title=务蜞眍怅 谚耱屐
acl_shutdown=填驽 铖蜞磬怆桠囹 耔耱屐?
edit_fix=旗栩 颃溧, 黩钺 皲咫囹 溧眄 聆屙囵栝 漕耱箫睇 潆 漯筱桴 箴钼礤 恹镱腠屙
reboot_ecannot=锣 礤 疣琊屮屙 疱耱囵蝾忄螯 耔耱屐
edit_stop=羊铒钼 觐爨礓
index_script=仰屙囵栝 $1 箨噻囗睇 龛驽 狍溴 镳铊沭囹 忸 怵屐 耱囵蜞. 蔓 祛驽蝈 漕徉忤螯 忄 耦狁蜮屙睇 觐爨礓 潆 疱耱囵蜞 溴祛眍 桦 皴疴屦钼 镳 疱耱囵蝈 耔耱屐.
index_shutdown=务蜞眍忤螯 谚耱屐
index_title=羊囵  务蜞眍 谚耱屐
save_ewrite=硒栳赅 镳 玎镨耔  $1 : $2
edit_startmsg=羊囵蝾忸 耦钺龛
reboot_ok=绣耱囵蝾忄螯 谚耱屐
edit_return=聆屙囵栝
save_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 耱囵蝾恹 聆屙囵梃
edit_name=褥
edit_levels=羽钼龛 恹镱腠屙 镳 觐蝾瘥 铖簌羼蜮弪 耱囵  铖蜞眍怅
acl_script=填驽 疱溧牝桊钼囹 蝈犟螓 耱囵蝾恹蹂 聆屙囵桢忤?
ss_stop=仰屙囵栝 务蜞眍怅
shutdown_ok=务蜞眍忤螯 谚耱屐
reboot_rusure=蔓 筲屦屙, 黩 躅蜩蝈 疱耱囵蝾忄螯 耔耱屐 觐爨礓铋 $1 ?
reboot_exec=绣耱囵 耔耱屐 觐爨礓铋 $1 ..
save_ealready=仰屙囵栝  桁屙屐 '$1' 箧 耋耱怏弪
edit_stopnow=务蜞眍忤螯 湾戾潆屙眍
07070100067ba1000081a40000000000000002000000013ac0388b00000a72000000200000000000000000000000000000001600000003reloc/init/lang/ru_SU index_title=笤烈  镉粤蜗 笊釉磐
index_add=笙谀猎 蜗踪 用盼辽 奶 釉烈粤 商 嫌粤蜗姿
index_reboot=蚺釉烈韵琢载 笊釉磐
index_rebootmsg=盍滞稍 瘟 茉 宋闲苏 奶 遗釉烈粤 由釉磐. 饔 邢乃汤夼挝倥 邢特谙琢耘躺 抡恼 显颂擂盼  子 优易捎 抡恼 遗釉烈韵琢钨.
index_shutdown=镉粤蜗咨载 笊釉磐
index_shutdownmsg=盍滞稍 瘟 茉 宋闲苏 奶 闻团奶盼蜗窍 瘟蘖塘 幸厦庞恿 嫌粤蜗姿 由釉磐. 饔 优易捎 抡恼 嫌粤蜗滋盼, 子 邢特谙琢耘躺 显酉拍盼盼  猩粤紊 由釉磐 显颂擂盼 (庞躺 琢哿 列辛伊哉伊 邢哪乓稚琢旁 牧挝绽 紫谕现蜗釉).
index_script=竺盼烈墒 $1 账邻廖钨 紊峙 抡呐 幸仙且僮猎赜 紫 滓磐 釉烈粤. 髻 拖峙耘 南铝咨载 琢凵 酉掠宰盼钨 讼土文 奶 遗釉烈粤 呐拖蜗 商 优易乓献 幸 遗釉烈耘 由釉磐.
index_return=有捎纤 用盼烈膳

edit_title=蚺牧嗽梢献廖膳 竺盼烈裳
create_title=笙谀廖膳 竺盼烈裳
edit_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 用盼烈缮 釉烈粤
edit_details=鹆伊团砸 竺盼烈裳
edit_name=橥
edit_desc=镄捎廖膳
edit_startmsg=笤烈韵紫 酉下菖紊
edit_stopmsg=笤闲献吓 酉下菖紊
edit_start=笤烈韵踪 讼土文
edit_stop=笤闲献倥 讼土文
edit_script=襞擞 竺盼烈裳
edit_badS=鹣铀咸厮 牧挝偈 用盼烈墒 沦 酉谀廖 闻幸磷商匚, 衔 抡呐 踪谧廖 幸 釉烈耘 韵特讼 瘟 找献闻 踪邢涛盼裳 $1.
edit_badK=鹣铀咸厮 牧挝偈 用盼烈墒 沦 酉谀廖 闻幸磷商匚, 衔 抡呐 踪谧廖 幸 幸 嫌粤蜗姿, 韵特讼 瘟 找献闻 踪邢涛盼裳 $1.
edit_fix=鐾稍 永牧, 拊下 幽盘猎 牧挝偈 用盼烈墒 南釉招钨 奶 囊涨扇 找献闻 踪邢涛盼裳
edit_levels=跻献紊 踪邢涛盼裳 幸 讼韵屹 嫌蛰庞宰萄旁友 釉烈  嫌粤蜗姿
edit_rl=跻献盼 $1
edit_startat=笤烈 
edit_stopat=笤闲 
edit_startnow=笤烈献猎 钆团奶盼蜗
edit_stopnow=镉粤蜗咨载 钆团奶盼蜗
edit_return=用盼烈墒

save_err=镗陕肆 幸 酉纫廖盼缮 用盼烈裳
save_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 釉烈韵踪 用盼烈缮
save_ealready=竺盼烈墒  赏盼磐 '$1' 罩 诱菖釉渍旁
save_ewrite=镗陕肆 幸 诹猩由  $1 : $2

ss_ecannot=髁 闻 伊谝袍盼 诹姓铀猎 商 嫌粤瘟滋勺猎 釉烈韵踪 用盼烈缮
ss_start=笤烈韵踪 竺盼烈墒
ss_stop=竺盼烈墒 镉粤蜗姿
ss_exec=髻邢涛盼膳 $1 ..

shutdown_ecannot=髁 闻 伊谝袍盼 嫌粤瘟滋勺猎 由釉磐
shutdown_title=镉粤蜗姿 笊釉磐
shutdown_rusure=髻 兆乓盼, 拊 认陨耘 嫌粤蜗咨载 由釉磐 讼土文鲜 $1 ?
shutdown_ok=镉粤蜗咨载 笊釉磐
shutdown_exec=镉粤蜗姿 由釉磐 讼土文鲜 $1 ..

reboot_ecannot=髁 闻 伊谝袍盼 遗釉烈韵琢载 由釉磐
reboot_title=蚺釉烈 笊釉磐
reboot_rusure=髻 兆乓盼, 拊 认陨耘 遗釉烈韵琢载 由釉磐 讼土文鲜 $1 ?
reboot_ok=蚺釉烈韵琢载 笊釉磐
reboot_exec=蚺釉烈 由釉磐 讼土文鲜 $1 ..

acl_script=硐峙 遗牧嗽梢献猎 耘擞再 釉烈韵踪扰 用盼烈膳咨?
acl_actions=硐峙 遗牧嗽梢献猎, 酉谀磷猎  漳撂言 用盼烈缮?
acl_reboot=硐峙 遗釉烈韵琢载 由釉磐?
acl_shutdown=硐峙 嫌粤瘟滋勺猎 由釉磐?
  07070100067ba2000081a40000000000000002000000013ac0388b00000cb4000000200000000000000000000000000000001300000003reloc/init/lang/sv    index_title=Start och avst鋘gning
index_add=Skapa en ny start- eller avst鋘gningsfunktion
index_reboot=Starta om systemet
index_rebootmsg=Tryck p denna knapp f鰎 att omedelbart starta om systemet. Alla inloggade anv鋘dare kommer att loggas ut och alla tj鋘ster startas om.
index_shutdown=St鋘g av systemet
index_shutdownmsg=Tryck p denna knapp f鰎 att omedelbart st鋘ga av systemet. Alla tj鋘ster kommer att st鋘gas av, alla anv鋘dare kommer att loggas ut och maskinen kommer att st鋘gas av (om din h錼dvara st鰀jer detta).
index_script=Scriptet $1 som visas nedan kommer att k鰎as n鋜 systemet startar. Du kan l鋑ga till egna kommandon f鰎 att starta demoner eller servrar n鋜 systemet startas om.
index_return=start- och avst鋘gningsfunktioner
index_action=Funktion
index_desc=Beskrivning
index_boot=Starta vid systemstart?
index_status=Startad nu?

edit_title=膎dra funtion
create_title=Skapa funktion
edit_ecannot=Du f錼 inte 鋘dra startfunktioner
edit_details=Uppgifter om funktionen
edit_name=Namn
edit_desc=Beskrivning
edit_boot=Starta vid systemstart?
edit_startmsg=Startmeddelande
edit_stopmsg=Avst鋘gningsmeddelande
edit_start=Startkommandon
edit_stop=Avst鋘gningskommandon
edit_script=Funktionsscript
edit_badS=Eftersom denna funktion inte definierats p ett korrekt s鋞t, kommer den bara att k鰎as p k鰎niv $1.
edit_badK=Eftersom denna funktion inte definierats p ett korrekt s鋞t, kommer den bara att avslutas p k鰎niv $1.
edit_fix=Tryck h鋜 f鰎 att g鰎a funktionen tillg鋘glig f鰎 andra k鰎niv錯r
edit_levels=K鰎niv錯r att k鰎a och avsluta p
edit_rl=K鰎niv $1
edit_startat=Starta
edit_stopat=Avsluta
edit_startnow=Starta nu
edit_stopnow=Avsluta nu
edit_restartnow=Starta om nu
edit_condrestartnow=Starta om ifall det beh鰒s
edit_reloadnow=Ladda om nu
edit_statusnow=Visa status
edit_return=funktion
edit_status=Startad nu?
edit_unknown=Ok鋘d

save_err=Det gick inte att spara funktion
save_ecannot=Du f錼 inte 鋘dra startfunktioner
save_ealready=Det finns redan en funktion som heter '$1'
save_ewrite=Det gick inte att skriva till $1: $2

ss_ecannot=Du f錼 inte starta eller avsluta startfunktioner
ss_start=Startfunktion
ss_stop=Avst鋘gningsfunktion
ss_restart=Omstartsfunktion
ss_reload=Omladdningsfunktion
ss_status=Funktionsstatus
ss_exec=Utf鰎 $1 ...

shutdown_ecannot=Du f錼 inte st鋘ga av systemet
shutdown_title=St鋘g av
shutdown_rusure=Vill du verkligen st鋘ga av systemet med kommandot $1?
shutdown_ok=St鋘g av systemet
shutdown_exec=St鋘ger av med kommando $1 ...

reboot_ecannot=Du f錼 inte starta om systemet
reboot_title=Starta om
reboot_rusure=Vill du verkligen starta om systemet med kommandot $1?
reboot_ok=Starta om systemet
reboot_exec=Startar om med kommando $1 ...

acl_script=Kunna 鋘dra startscriptet?
acl_actions=Kunna 鋘dra, skapa och ta bort funktioner?
acl_reboot=Kunna starta om systemet?
acl_shutdown=Kunna st鋘ga av systemet?

log_rename=Bytte namn p funktion $1 till $2
log_modify=Modifierade funktion $1
log_create=Lade till funktion $1
log_delete=Tog bort funktion $1
log_start=Startade systemstartsfunktion $1
log_stop=Stannade systemstoppsfunktion $1
log_reboot=Startade om systemet
log_shutdown=Ta ned systemet
log_local=Modifierade systemstartsscript
log_bootup=膎drade startfunktion f鰎 $1
07070100067ba3000081a40000000000000002000000013ac0388b00000bd4000000200000000000000000000000000000001300000003reloc/init/lang/tr    index_title=A琮l ve Kapan
index_add=Yeni bir a琮l veya kapan komutu ekle
index_reboot=Sistemi Yeniden Baat
index_rebootmsg=Bu butonu t齥ayarak makineyi hemen yeniden baatabilirsiniz.Sistemdeki b黷黱 kullan齝齦ar齨 ba餷ant齭 kesilecek ve b黷黱 servisler yeniden baat齦acakt齬.
index_shutdown=Sistemi kapat
index_shutdownmsg=Bu butonu t齥layarak makineyi hemen kapatabilirsiniz.Sistemdeki b鼀黱 servisler durdurulup, b黷黱 kullan齝齦ar齨 ba餷ant齭 kesilecek ve sistem kapat齦acakt齬(e餰r donan齧 destekliyor ise)
index_script=$1 programc a琮lta 鏰lacak olan programlar listelemi⺶ir. Sistem yeniden baat齦d齨da yeniden baat齦an daemon ya da sunuculara kendi komutlar齨齴 ekleyebilirsiniz.
index_return=a琮l ve kapan hareketi
index_action=Servis
index_desc=A琮klama
index_boot=A琮lta baas齨 m?

edit_title=Servis De餴⺶ir
create_title=Servis Olu⺶ur
edit_ecannot=A琮l servisleri de餴⺶irmeye hakk齨齴 yotur
edit_details=Servis Ayarlar
edit_name=輘im
edit_desc=A琮klama
edit_startmsg=A琮l mesaj
edit_stopmsg=Kapan mesaj
edit_start=A琮l komutlar
edit_stop=Kapan komutlar
edit_boot=A琮lta baat齦s齨 m?
edit_script=Servis Programc 
edit_badS=屈nk bu servis d鼁g黱 olarak olu⺶urulamad,bu sadece 鏰lma seviyesi $1 olarak baat齦abilir.
edit_badK=屈nk bu servis d鼁g黱 olarak olu⺶urulamad,bu sadece 鏰lma seviyesi $1 olarak durdurulabilir.  
edit_fix=Butonu t齥layarak bu servisi di餰r 鏰lma seviyelerine uygun hale getirebilirsiniz.
edit_levels= Baatma ve durdurmadaki 鏰lma seviyeleri 
edit_rl=莂lma seviyesi $1
edit_startat=Baa
edit_stopat=Dur
edit_startnow=辤mdi Baat
edit_stopnow=辤mdi Durdur
edit_return=servis

save_err=Servisi kaydetmede hata olu⺶u
save_ecannot=A琮l servislerini de餴⺶irmeye hakk齨齴 yoktur
save_ealready='$1' servisi her zaman mevcut.
save_ewrite=$1'e yazmada hata olu⺶u : $2

ss_ecannot=A琮l servislerini baatma ya da durdurmaya izininiz yoktur.
ss_start=Servis Baat 
ss_stop=Servis Durdur
ss_exec=$1 莂lt齬齦齳or ..

shutdown_ecannot=Sistemi kapatmaya izininiz yoktur
shutdown_title=Kapan
shutdown_rusure=$1 komutu ile sistemi kapatmak istedi餴niza eminmisiniz?
shutdown_ok=Sistemi Kapat
shutdown_exec=$1 komutu ile kapat齦齳or ..

reboot_ecannot=Sistemi tekrar baatmaya izininiz yoktur
reboot_title=Tekrar Baat
reboot_rusure=Sisteminizi $1komutu ile tekrar baatman istedi餴nizden eminmisiniz ?
reboot_ok=Sistemi Tekrar Baat
reboot_exec=$1 komutu ile yeniden baat齦齳or ..

acl_script=A琮l programc齨 de餴⺶irebilsin?
acl_actions=De餴⺶irme, olu⺶urma ya da silme servislerini yapabilsin?
acl_reboot=Sistemi yeniden baatabilsin?
acl_shutdown=Sistemi kapatabilsin?

log_rename=蔺lem $1, $2 olarak yeniden isimlendirildi
log_modify=蔺lem $1 de餴⺶irildi
log_create=蔺lem $1 olu⺶uruldu
log_delete=蔺lem $1 silindi
log_start=A琮l iemi $1 baat齦d
log_stop=Kapan iemi $1 durduruldu
log_reboot=Sistem yeniden baat齦d
log_shutdown=Sistem kapat齦d
log_local=A琮l beti餴 de餴⺶irildi
07070100067bb0000081a40000000000000002000000013ac0388b000007a0000000200000000000000000000000000000001600000003reloc/init/lang/zh_CN index_title=引导和关机
index_add=创建一个新的引导或关机操作
index_reboot=重启系统
index_rebootmsg=按该按钮将立即重启系统.当前所有注册用户将被断掉,所有服务将被重启.
index_shutdown=关机
index_shutdownmsg=按该按钮将立即关闭系统.当前所有注册用户将被断掉,所有服务将被中止,电源被关掉(如果你的硬件支持的话).
index_script=启动时运行下面的脚本 $1 . 你可以加入自己的命令使系统重启时重启守护进程或服务起器.  
index_return=引导或关机动作
index_action=操作
index_desc=描述
index_boot=开始引导?

edit_title=编辑操作
create_title=创建操作
edit_ecannot=你可以编辑启动操作
edit_details=操作细节
edit_name=名字
edit_desc=描述
edit_startmsg=启动信息
edit_stopmsg=关机信息
edit_start=启动命令
edit_stop=关机命令
edit_script=操作脚本
edit_boot=在引导时启动?
edit_badS=因为这个操作创建的不正确, 系统只能以级别$1启动.
edit_badK=因为这个操作创建的不正确, 系统只能以级别$1停止.
edit_fix=点击这里使这个操作对其它运行级别起作用.
edit_levels=开始和停止的运行级别
edit_rl=运行级别 $1
edit_startat=开始在
edit_stopat=停止在
edit_startnow=现在开始
edit_stopnow=现在停止
edit_return=操作

save_err=保存操作失败
save_ecannot=你不能编辑启动操作
save_ealready=操作'$1' 已存在
save_ewrite=写$1 : $2失败

ss_ecannot=你不能开始或停止启动操作
ss_start=开始操作
ss_stop=停止操作
ss_exec=执行 $1 ..

shutdown_ecannot=你不能关闭系统
shutdown_title=关机
shutdown_rusure=你能确定你用这个命令关闭系统 $1 ?
shutdown_ok=关闭系统
shutdown_exec=用命令 $1 ..关闭系统

reboot_ecannot=你不能重新启动系统
reboot_title=重启
reboot_rusure=你能确定你用这个命令重启系统 $1 ?
reboot_ok=重新启动系统
reboot_exec=用命令 $1 ..重启系统

acl_script=能编辑启动脚本?
acl_actions=能编辑,创建和删除操作?
acl_reboot=能重新启动系统?
acl_shutdown=能关闭系统?

log_rename=将操作 $1 改名为$2
log_modify=更新操作 $1
log_create=创建操作 $1
log_delete=删除操作 $1
log_start=引导时启动操作$1
log_stop=关闭系统时停止操作 $1
log_reboot=重新引导系统
log_shutdown=关闭系统
log_local=更新系统引导脚本
log_bootup=为 $1 改变了引导操作
07070100067bb1000081a40000000000000002000000013ac0388b0000075a000000200000000000000000000000000000001b00000003reloc/init/lang/zh_TW.Big5    index_title=秨诀籔闽诀
index_add=ミ穝秨诀┪闽诀笆
index_reboot=穝币笆╰参
index_rebootmsg=硂秙ミㄨ穝币笆硂╰参. ┮Τヘ玡祅ㄏノ常穦耞絬, τ┮Τ狝叭常穦穝币笆.
index_shutdown=闽超╰参
index_shutdownmsg=硂秙ミㄨ闽超硂╰参. ┮Τ狝叭常穦氨ゎ, ┮Τㄏノ常穦耞絬τ╰参筿方穦闽超 (狦眤祑砰や穿杠).
index_script=㏑絑 $1 盢穦秨诀磅︽. 眤眤ㄏ狝竟┪臔竟╰参穝币笆蛤帝穝币笆.
index_return=秨诀籔闽诀笆
index_action=笆
index_desc=弧

edit_title=絪胯笆
create_title=ミ笆
edit_ecannot=眤ぃ砆す砛絪胯笆
edit_details=笆冈灿戈
edit_name=嘿
edit_desc=弧
edit_startmsg=币笆癟
edit_stopmsg=氨ゎ癟
edit_start=币笆
edit_stop=氨ゎ
edit_script=笆㏑絑
edit_boot=琌秨诀币笆?
edit_badS=硂笆⊿Τタ絋ミ, ┮穦磅︽顶糷 $1 い币笆.
edit_badK=硂笆⊿Τタ絋ミ, ┮穦磅︽顶糷 $1 い氨ゎ.
edit_fix=硂ㄏ眔硂笆ㄤ磅︽顶糷いㄏノ
edit_levels=璶币笆籔氨ゎ磅︽顶糷
edit_rl=磅︽顶糷 $1
edit_startat=币笆抖
edit_stopat=氨ゎ抖
edit_startnow=ミㄨ币笆
edit_stopnow=ミㄨ氨ゎ
edit_return=笆

save_err=礚猭纗笆
save_ecannot=眤ぃ砆す砛絪胯秨诀笆
save_ealready=暗 '$1' 笆竒
save_ewrite=礚猭糶 $1 : $2

ss_ecannot=眤ぃ砆す砛币笆┪氨ゎ秨诀笆
ss_start=秨﹍笆
ss_stop=氨ゎ笆
ss_exec=磅︽ $1 い...

shutdown_ecannot=眤ぃ砆す砛闽超硂╰参
shutdown_title=闽诀
shutdown_rusure=眤琌絋﹚璶 $1 闽超硂╰参?
shutdown_ok=闽超╰参
shutdown_exec=㏑ $1 闽超╰参い...

reboot_ecannot=眤ぃ砆す砛穝币笆硂╰参
reboot_title=穝币笆
reboot_rusure=眤琌絋﹚璶 $1 穝币笆硂╰参?
reboot_ok=穝币笆╰参
reboot_exec=㏑ $1 穝币笆╰参い...

acl_script=琌絪胯秨诀㏑絑?
acl_actions=琌絪胯, ミ籔埃笆?
acl_reboot=琌穝币笆硂╰参?
acl_shutdown=琌闽超硂╰参?

  07070100064d4d000081a40000000000000002000000013ac0388c0000048f000000200000000000000000000000000000001900000003reloc/init/log_parser.pl  # log_parser.pl
# Functions for parsing this module's logs

require './init-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p) = @_;
if ($action eq 'modify') {
	if ($p->{'old'} ne $p->{'name'}) {
		return &text('log_rename', "<tt>$p->{'old'}</tt>",
					   "<tt>$p->{'name'}</tt>");
		}
	else {
		return &text('log_modify', "<tt>$object</tt>");
		}
	}
elsif ($action eq 'create') {
	return &text('log_create', "<tt>$object</tt>");
	}
elsif ($action eq 'delete') {
	return &text('log_delete', "<tt>$object</tt>");
	}
elsif ($action eq 'start') {
	return &text('log_start', "<tt>$object</tt>");
	}
elsif ($action eq 'stop') {
	return &text('log_stop', "<tt>$object</tt>");
	}
elsif ($action eq 'reboot') {
	return $text{'log_reboot'};
	}
elsif ($action eq 'shutdown') {
	return $text{'log_shutdown'};
	}
elsif ($action eq 'local') {
	return $text{'log_local'};
	}
elsif ($action eq 'bootup') {
	return &text('log_bootup', join(" , ", map { "<tt>$_</tt>" } keys %$p));
	}
else {
	return undef;
	}
}

 07070100064d4e000081a40000000000000002000000013ac0388c00000014000000200000000000000000000000000000001400000003reloc/init/low.risk   bootup=0
noconfig=1
07070100064d4f000081a40000000000000002000000013ac0388c00000014000000200000000000000000000000000000001700000003reloc/init/medium.risk    bootup=2
noconfig=1
07070100064d50000081a40000000000000002000000013ac0388b00000270000000200000000000000000000000000000001700000003reloc/init/module.info    desc_zh_CN=引导和关机
name=Boot Manager
desc_pt=Iniciar e Encerrar
depends=proc
desc_tr=A琮l ve Kapan
desc_fr=Actions de d閙arrage et d'arr阾
desc_es=Arranque y Parada
desc_de=System Start und Stop
desc_sv=Start och avst鋘gning
desc_ru_SU=笤烈  镉粤蜗 笊釉磐
desc_pl=Start i&nbsp;zamykanie systemu
category=system
os_support=solaris redhat-linux debian-linux suse-linux hpux slackware-linux freebsd unixware openserver open-linux turbo-linux openbsd corel-linux cobalt-linux cobalt-linux osf1 irix aix macos
desc_zh_TW.Big5=秨诀籔闽诀
desc=Bootup and Shutdown
risk=low medium high
desc_ru_RU=羊囵  务蜞眍 谚耱屐
07070100064d51000081e40000000000000002000000013ac0388b000002f8000000200000000000000000000000000000001600000003reloc/init/reboot.cgi #!/usr/local/bin/perl
# reboot.cgi
# Reboot the system immediately..

require './init-lib.pl';
&ReadParse();
%access = &get_module_acl();
$access{'reboot'} || &error($text{'reboot_ecannot'});
&header($text{'reboot_title'}, "");
print "<hr><p>\n";
$ttcmd = "<tt>$config{'reboot_command'}</tt>";
if ($in{'confirm'}) {
	print "<font size=+1>",&text('reboot_exec', $ttcmd),"</fomt><p>\n";
	&system_logged("$config{'reboot_command'} >/dev/null 2>/dev/null");
	&webmin_log("reboot");
	}
else {
	print "<font size=+1>",&text('reboot_rusure', $ttcmd),"</font>\n";
	print "<center><form action=reboot.cgi>\n";
	print "<input type=submit value=\"$text{'reboot_ok'}\" name=confirm>\n";
	print "</form></center>\n";
	}
print "<hr>\n";
&footer("", $text{'index_return'});

07070100064d52000081e40000000000000002000000013ac0388b00001b98000000200000000000000000000000000000001b00000003reloc/init/save_action.cgi    #!/usr/local/bin/perl
# save_action.cgi
# Save or create an action

require './init-lib.pl';
&error_setup($text{'save_err'});
%access = &get_module_acl();
$access{'bootup'} || &error($text{'save_ecannot'});
&ReadParse();

# Check inputs
$in{'extra'} || $in{name} =~ /^[A-z0-9\_\-\.]+$/ ||
	&error("$in{name} is not a valid action name");
$dig = $config{'order_digits'};
foreach $rl (&list_runlevels()) {
	# If no priority was given for start/stop, make it 99
	if ($in{"S$rl"}) {
		if (!$in{"pri_S$rl"}) {
			$in{"pri_S$rl"} = "9" x $dig;
			}
		else {
			$in{"pri_S$rl"} = sprintf "%${dig}.${dig}d",
						  $in{"pri_S$rl"};
			}
		}
	if ($in{"K$rl"}) {
		if (!$in{"pri_K$rl"}) {
			$in{"pri_K$rl"} = "9" x $dig;
			}
		else {
			$in{"pri_K$rl"} = sprintf "%${dig}.${dig}d",
						  $in{"pri_K$rl"};
			}
		}
	}

if ($in{'old'} && $in{'type'} == 0) {
	# Changing a 'sane' action
	local $dd = $config{'daemons_dir'};
	$in{data} =~ s/\r//g;
	if ($in{old} ne $in{name}) {
		# Need to rename the action..
		if (-r &action_filename($in{name})) {
			&error(&text('save_ealready', $in{name}));
			}
		&rename_action($in{old}, $in{name});
		if ($dd) {
			# Need to rename the caldera daemons file too
			&rename_logged("$dd/$in{old}", "$dd/$in{name}");
			&lock_file("$dd/$in{'name'}");
			&read_env_file("$dd/$in{name}", \%daemon);
			$daemon{'IDENT'} = $in{'name'}
				if ($daemon{'IDENT'} eq $in{'old'});
			&write_env_file("$dd/$in{name}", \%daemon);
			}
		}
	&lock_file("$dd/$in{'name'}") if ($dd);
	$file = &action_filename($in{name});
	&lock_file($file);
	foreach (&action_levels('S', $in{name})) {
		/^(\S+)\s+(\S+)\s+(\S+)$/;
		$slvl{$1} = $2;
		}
	foreach (&action_levels('K', $in{name})) {
		/^(\S+)\s+(\S+)\s+(\S+)$/;
		$klvl{$1} = $2;
		}
	if ($config{'expert'}) {
		# Update all runlevels
		foreach $rl (&list_runlevels()) {
			if ($in{"S$rl"} && !$slvl{$rl}) {
				&add_rl_action($in{name}, $rl,
					       'S', $in{"pri_S$rl"});
				}
			elsif (!$in{"S$rl"} && $slvl{$rl}) {
				&delete_rl_action($in{name}, $rl, 'S');
				}
			elsif ($in{"pri_S$rl"} != $slvl{$rl}) {
				&reorder_rl_action($in{name}, $rl,
						   'S', $in{"pri_S$rl"});
				}
			if ($in{"K$rl"} && !$klvl{$rl}) {
				&add_rl_action($in{name}, $rl,
					       'K', $in{"pri_K$rl"});
				}
			elsif (!$in{"K$rl"} && $klvl{$rl}) {
				&delete_rl_action($in{name}, $rl, 'K');
				}
			elsif ($in{"pri_K$rl"} != $klvl{$rl}) {
				&reorder_rl_action($in{name}, $rl,
						   'K',$in{"pri_K$rl"});
				}
			}

		if (defined($in{'boot'}) && $dd) {
			# Update onboot flag in daemons file
			&read_env_file("$dd/$in{'name'}", \%daemon);
			$daemon{'ONBOOT'} = $in{'boot'} ? 'yes' : 'no';
			&write_env_file("$dd/$in{'name'}", \%daemon);
			}
		}
	else {
		# Just change whether it gets started or not
		@boot = &get_inittab_runlevel();
		if ($in{'boot'} && !$in{'oldboot'}) {
			# Start at boot time
			&add_rl_action($in{'name'}, $boot[0], 'S', "9" x $dig);
			if ($dd && &read_env_file("$dd/$in{'name'}",\%daemon)) {
				$daemon{'ONBOOT'} = 'yes';
				&write_env_file("$dd/$in{'name'}", \%daemon);
				}
			}
		elsif (!$in{'boot'} && $in{'oldboot'}) {
			# Don't start at boot time
			if ($dd && &read_env_file("$dd/$in{'name'}",\%daemon)) {
				# Just update the daemons file
				$daemon{'ONBOOT'} = 'no';
				&write_env_file("$dd/$in{'name'}", \%daemon);
				}
			else {
				# Remove the S links
				foreach (&action_levels('S', $in{name})) {
					/^(\S+)\s+(\S+)\s+(\S+)$/;
					&delete_rl_action($in{name}, $1, 'S');
					}
				}
			}
		}
	open(ACTION, ">$file");
	print ACTION $in{data};
	close(ACTION);
	&unlock_file($file);
	&unlock_file("$dd/$in{'name'}") if ($dd);
	delete($in{'data'});
	&webmin_log("modify", "action", $in{'name'}, \%in);
	}
elsif ($in{'old'} && $in{'type'} == 1) {
	# Changing an odd action
	$in{data} =~ s/\r//g;
	$file = &runlevel_filename($in{runlevel}, $in{startstop},
				   $in{number}, $in{name});
	&lock_file($file);
	if ($in{old} ne $in{name}) {
		if (-r &action_filename($in{name})) {
			&error("An action called $in{name} already exists");
			}
		&rename_rl_action($in{runlevel}, $in{startstop}, $in{number},
				  $in{old}, $in{name});
		}
	open(ACTION, "> $file");
	print ACTION $in{data};
	close(ACTION);
	&unlock_file($file);
	delete($in{'data'});
	&webmin_log("modify", "action", $in{'name'}, \%in);
	}
else {
	# Creating a new action, and add it to multiple runlevels
	if (-r &action_filename($in{name})) {
		&error(&text('save_ealready', $in{name}));
		}
	@boot = &get_inittab_runlevel();
	&lock_file(&action_filename($in{name}));
	$in{desc} =~ s/\r//g; $in{start} =~ s/\r//g; $in{stop} =~ s/\r//g;
	$data = "#!/bin/sh\n";
	if ($config{'chkconfig'}) {
		# Redhat-style description: and chkconfig: lines
		$desc = "description:";
		foreach (split(/\n/, $in{desc})) {
			$data .= "# $desc $_\n";
			$desc = " " x length($desc);
			}
		$startorder = "9" x $dig;
		$stoporder = "0" x $dig;
		foreach $rl (&list_runlevels()) {
			$startorder = $in{"pri_S$rl"} if ($in{"S$rl"});
			$stoporder = $in{"pri_K$rl"} if ($in{"K$rl"});
			}
		$data .= "# chkconfig: $config{'chkconfig'} ".
			 "$startorder $stoporder\n";
		}
	elsif ($config{'init_info'}) {
		# Suse-style init info section
		$data .= "### BEGIN INIT INFO\n".
			 "# Provides: $in{'name'}\n".
			 "# Default-Start: $boot[0]\n".
			 "# Description: $in{'desc'}\n".
			 "### END INIT INFO\n";
		}
	else {
		foreach (split(/\n/, $in{'desc'})) {
			$data .= "# $_\n";
			}
		}
	$data .= "\ncase \"\$1\" in\n";
	if ($config{'start_stop_msg'}) {
		$data .= "'start_msg')\n";
		$data .= "\techo \"$in{'start_msg'}\"\n";
		$data .= "\t;;\n";
		$data .= "'stop_msg')\n";
		$data .= "\techo \"$in{'stop_msg'}\"\n";
		$data .= "\t;;\n";
		}
	$subsys = $config{'subsys'};
	$data .= "'start')\n";
	foreach (split(/\n/, $in{start})) {
		$data .= "\t$_\n";
		}
	if ($subsys) {
		$data .= "\ttouch $subsys/$in{'name'}\n";
		}
	$data .= "\t;;\n";
	$data .= "'stop')\n";
	foreach (split(/\n/, $in{stop})) {
		$data .= "\t$_\n";
		}
	if ($subsys) {
		$data .= "\trm -f $subsys/$in{'name'}\n";
		}
	$data .= "\t;;\n";
	$data .= "*)\n";
	if ($config{'start_stop_msg'}) {
		$data .= "\techo \"Usage: \$0 { start | stop | start_msg | stop_msg }\"\n";
		}
	else {
		$data .= "\techo \"Usage: \$0 { start | stop }\"\n";
		}
	$data .= "\t;;\n";
	$data .= "esac\n";
	$data .= "exit 0\n";
	$file = &action_filename($in{name});
	open(ACTION, "> $file") || &error(&text('save_ewrite', $file, $!));
	print ACTION $data;
	close(ACTION);
	chmod(0755, $file);

	if ($config{'expert'}) {
		# Make links from runlevels
		foreach $rl (&list_runlevels()) {
			if ($in{"S$rl"}) {
				&add_rl_action($in{name}, $rl, 'S',
					       $in{"pri_S$rl"});
				}
			if ($in{"K$rl"}) {
				&add_rl_action($in{name}, $rl, 'K',
					       $in{"pri_K$rl"});
				}
			}
		}
	else {
		# Just make one runlevel link
		if ($in{'boot'}) {
			&add_rl_action($in{'name'}, $boot[0], 'S', "9" x $dig);
			}
		}
	&unlock_file(&action_filename($in{name}));
	delete($in{'data'});
	&webmin_log("create", "action", $in{'name'}, \%in);
	}
&redirect("");

07070100064d53000081a40000000000000002000000013ac0388c000005b7000000200000000000000000000000000000001b00000003reloc/init/save_bootup.cgi    #!/usr/local/bin/perl
# save_bootup.cgi
# Change whether lots of actions are run at boot or not

require './init-lib.pl';
&ReadParse();

@iacts = &list_actions();
foreach $a (@iacts) {
	local @ac = split(/\s+/, $a);
	$acts{$ac[0]} = \@ac;
	}
@boot = &get_inittab_runlevel();
$dd = $config{'daemons_dir'};
$dig = $config{'order_digits'};

# Go through all the changed actions
foreach $a (keys %in) {
	next if (!$acts{$a});

	# Get current status
	local ($boot, $rlboot, %daemon, $daemon);
	foreach $s (&action_levels('S', $a)) {
		local ($l, $p) = split(/\s+/, $s);
		$rlboot = $boot = 1 if (&indexof($l, @boot) >= 0);
		}
	if ($dd && &read_env_file("$dd/$a", \%daemon)) {
		$daemon = 1;
		}
	if ($boot && $daemon) {
		$boot = lc($daemon{'ONBOOT'}) eq 'yes' ? 1 : 0;
		}

	if (!$boot && $in{$a}) {
		# Change to start at boot
		&add_rl_action($a, $boot[0], 'S', "9" x $dig) if (!$rlboot);
		if ($daemon) {
			&lock_file("$dd/$a");
			$daemon{'ONBOOT'} = 'yes';
			&write_env_file("$dd/$a", \%daemon);
			&unlock_file("$dd/$a");
			}
		$done{$a} = 1;
		}
	elsif ($boot && !$in{$a}) {
		# Change to stop at boot
		if ($daemon) {
			&lock_file("$dd/$a");
			$daemon{'ONBOOT'} = 'no';
			&write_env_file("$dd/$a", \%daemon);
			&unlock_file("$dd/$a");
			}
		else {
			foreach (&action_levels('S', $a)) {
				/^(\S+)\s+(\S+)\s+(\S+)$/;
				&delete_rl_action($a, $1, 'S');
				}
			}
		$done{$a} = 0;
		}
	}
&webmin_log("bootup", undef, undef, \%done);
&redirect("");

 07070100064d54000081e40000000000000002000000013ac0388b000001cb000000200000000000000000000000000000001a00000003reloc/init/save_local.cgi #!/usr/local/bin/perl
# save_local.cgi
# Save the local startup script

require './init-lib.pl';
%access = &get_module_acl();
$access{'bootup'} || &error("You are not allowed to edit the bootup script");
&ReadParse();
$in{'local'} =~ s/\r//g;
&lock_file($config{'local_script'});
open(LOCAL, "> $config{'local_script'}");
print LOCAL $in{'local'};
close(LOCAL);
&unlock_file($config{'local_script'});
&webmin_log("local", undef, undef, \%in);
&redirect("");

 07070100064d55000081e40000000000000002000000013ac0388b0000031b000000200000000000000000000000000000001800000003reloc/init/shutdown.cgi   #!/usr/local/bin/perl
# shutdown.cgi
# Shutdown the system immediately..

require './init-lib.pl';
&ReadParse();
%access = &get_module_acl();
$access{'shutdown'} || &error($text{'shutdown_ecannot'});
&header($text{'shutdown_title'}, "");
print "<hr><p>\n";
$ttcmd = "<tt>$config{'shutdown_command'}</tt>";
if ($in{'confirm'}) {
	print "<font size=+1>",&text('shutdown_exec', $ttcmd),"</font><p>\n";
	&system_logged("$config{'shutdown_command'} >/dev/null 2>/dev/null");
	&webmin_log("shutdown");
	}
else {
	print "<font size=+1>",&text('shutdown_rusure', $ttcmd),"</font>\n";
	print "<center><form action=shutdown.cgi>\n";
	print "<input type=submit value=\"$text{'shutdown_ok'}\" ",
	      "name=confirm>\n";
	print "</form></center>\n";
	}
print "<hr>\n";
&footer("", $text{'index_return'});

 07070100064d56000081e40000000000000002000000013ac0388b0000046d000000200000000000000000000000000000001a00000003reloc/init/start_stop.cgi #!/usr/local/bin/perl
# start_stop.cgi
# Start or stop a boot-time action

require './init-lib.pl';
&foreign_require("proc", "proc-lib.pl");
%access = &get_module_acl();
$access{'bootup'} || &error($text{'ss_ecannot'});
&ReadParse();

$| = 1;
if (defined($in{'start'})) {
	&header($text{'ss_start'}, "");
	$cmd = "$in{'file'} start";
	}
elsif (defined($in{'restart'})) {
	&header($text{'ss_restart'}, "");
	$cmd = "$in{'file'} restart";
	}
elsif (defined($in{'condrestart'})) {
	&header($text{'ss_restart'}, "");
	$cmd = "$in{'file'} condrestart";
	}
elsif (defined($in{'reload'})) {
	&header($text{'ss_reload'}, "");
	$cmd = "$in{'file'} reload";
	}
elsif (defined($in{'status'})) {
	&header($text{'ss_status'}, "");
	$cmd = "$in{'file'} status";
	}
else {
	&header($text{'ss_stop'}, "");
	$cmd = "$in{'file'} stop";
	}
print "<hr><p>\n";
print &text('ss_exec', "<tt>$cmd</tt>"),"<p>\n";
print "<pre>";
&foreign_call("proc", "safe_process_exec_logged", $cmd, 0, 0, STDOUT, undef, 1);
print "</pre>\n";
&webmin_log($in{'start'} ? 'start' : 'stop', 'action', $in{'name'});
print "<hr>\n";
&footer($in{'back'}, $text{'edit_return'});

   070701000692fb000041ed0000000000000001000000053ac03c0200000000000000200000000000000000000000000000000e00000003reloc/inittab 070701000692fc000081a40000000000000002000000013ac038b00000001a000000200000000000000000000000000000001500000003reloc/inittab/config  inittab_file=/etc/inittab
  070701000692fd000081a40000000000000002000000013ac038b000000024000000200000000000000000000000000000001a00000003reloc/inittab/config.info inittab_file=Path to inittab file,0
070701000692fe000081a40000000000000002000000013ac038b100000023000000200000000000000000000000000000001d00000003reloc/inittab/config.info.de  inittab_file=Pfad zur inittab Datei 070701000692ff000081a40000000000000002000000013ac038b00000002d000000200000000000000000000000000000001d00000003reloc/inittab/config.info.es  inittab_file=Trayectoria a archivo inittab,0
   07070100069300000081a40000000000000002000000013ac038b000000029000000200000000000000000000000000000001d00000003reloc/inittab/config.info.fr  inittab_file=Chemin du fichier inittab,0
   07070100069301000081a40000000000000002000000013ac038b100000028000000200000000000000000000000000000001d00000003reloc/inittab/config.info.pl  inittab_file=ie縦a do pliku inittab,0
07070100069302000081a40000000000000002000000013ac038b100000024000000200000000000000000000000000000002000000003reloc/inittab/config.info.ru_RU   inittab_file=象螯  羿殡 inittab,0
07070100069303000081a40000000000000002000000013ac038b000000024000000200000000000000000000000000000002000000003reloc/inittab/config.info.ru_SU   inittab_file=鹫载  屏侍 inittab,0
07070100069304000081a40000000000000002000000013ac038b000000027000000200000000000000000000000000000001d00000003reloc/inittab/config.info.sv  inittab_file=S鰇v鋑 till inittab-fil,0
 07070100069305000081a40000000000000002000000013ac038b100000024000000200000000000000000000000000000001d00000003reloc/inittab/config.info.tr  inittab_file=inittab dosyas yolu,0
07070100069306000081a40000000000000002000000013ac038b100000022000000200000000000000000000000000000002000000003reloc/inittab/config.info.zh_CN   inittab_file=inittab 文件的路径,0
  07070100069307000081a40000000000000002000000013ac038b000000029000000200000000000000000000000000000002500000003reloc/inittab/config.info.zh_TW.Big5  inittab_file= inittab 郎Ч俱隔畖,0
   07070100069308000081a40000000000000002000000013ac038b00000000a000000200000000000000000000000000000001900000003reloc/inittab/defaultacl  inittab=1
  07070100069309000081e40000000000000002000000013ac038b000000a74000000200000000000000000000000000000001f00000003reloc/inittab/edit_inittab.cgi    #!/usr/local/bin/perl

require "./inittab-lib.pl";

&ReadParse();

&header( &text( 'edit_inittab_title', $in{ 'id' } ), "", "index", 1, 1, undef );
print "<hr>\n";

print(
    "<form action=save_inittab.cgi><p><table border width=\"100%\">",
	"<tr ", $tb, ">",
	    "<td><b>", $text{ 'edit_inittab_details' }, "</b></td>",
	"</tr><tr ", $cb, "><td><table width=\"100%\">" );

open( INITTAB, $config{ 'inittab_file' } );
foreach ( <INITTAB> )
{
    s/\r|\n//g;
    s/#.*$//g;
    s/\/\/.*$//g;

    if( $_ )
    {
	local ( $id, $raw_runlevels, $action, $process ) = split( /:/ );

	if( $id eq $in{ 'id' } )
	{
    	    $process = $text{ 'inittab_none' } if( !$process );

    	    print(
		"<tr>",
		    "<td>", &hlink( $text{ 'inittab_id' }, "id" ), "</td>",
		    "<td>", &p_entry( "id", $id, $config{ 'inittab_size' } ), "<input type=hidden name=oldid value=", $id, "></td>",
		"</tr><tr>",
		    "<td>", &hlink( $text{ 'inittab_runlevels' }, "runlevels" ), "</td><td>" );

	    foreach $checkbox ( 0..6, "a", "b", "c" )
	    {
		local $runlevels;

		print( "<input type=checkbox name=", $checkbox, " value=1" );
		foreach $runlevel ( split( //, $raw_runlevels ) )
		{
		    print( " checked" ) if( $runlevel eq $checkbox );
		}
		print( ">", $checkbox, " " );
	    }

	    $process = "" if( $process eq $text{ 'inittab_none' } );
	    $action = "kbdrequest" if ($action eq "kbrequest");
	    print( 
		"</td></tr><tr>",
		    "<td>", &hlink( $text{ 'inittab_action' }, "action" ), "</td>",
		    "<td>", &p_select_wdl( "action", $action, ( "respawn", $text{ 'inittab_respawn' }, "wait", $text{ 'inittab_wait' }, "once", $text{ 'inittab_once' }, "wait", $text{ 'inittab_wait' }, "ondemand", $text{ 'inittab_ondemand' }, "initdefault", $text{ 'inittab_initdefault' }, "sysinit", $text{ 'inittab_sysinit' }, "powerwait", $text{ 'inittab_powerwait' }, "powerfail", $text{ 'inittab_powerfail' }, "powerokwait", $text{ 'inittab_powerokwait' }, "powerfailnow", $text{ 'inittab_powerfailnow' }, "ctrlaltdel", $text{ 'inittab_ctrlaltdel' }, "kbdrequest", $text{ 'inittab_kbdrequest' }, "bootwait", $text{'inittab_bootwait'}, "boot", $text{'inittab_boot'} ) ), "</td>",
		"</tr><tr>",
		    "<td>", &hlink( $text{ 'inittab_process' }, "process" ), "</td>\n",
		    "<td>", &p_entry( "process", $process, 50 ), "</td>",
		"</tr>" );
	}
    }
}

print( "</td></tr></table></table>",
	"<table width=\"100%\">",
	    "<tr>",
		"<td align=left>", &p_button( "button", $text{ 'edit_inittab_save' } ), "</td>",
		"<td align=right>", &p_button( "button", $text{ 'edit_inittab_del' } ), "</td>",
	    "</tr>",
	"</table></form>" );

print "<hr>\n";
&footer( "", $text{ 'inittab_return' } );

0707010006a811000041ed0000000000000001000000023ac03c0100000000000000200000000000000000000000000000001300000003reloc/inittab/help    0707010006a812000081a40000000000000002000000013ac038b000000ca0000000200000000000000000000000000000002200000003reloc/inittab/help/action.es.html <header>Acci髇</header>

Describe qu acci髇 deber韆 tomarse.<p>

Las acciones v醠idas para este campo son:<p>

<b>Reengendrar</b><br>
El proceso ser rearrancado cuando termine (p.ej. getty).<p>

<b>Esperar</b><br>
El proceso ser arrancado una vez cuando se entre en el nivel de ejecuci髇 especificado e <i>init</i> esperar hasta que termine.<p>

<b>Una vez por nivel</b><br>
El proceso ser ejecutado una vez cuando se entre en el nivel de ejecuci髇 especificado.<p>

<b>En momento de arranque</b><br>
El proceso ser ejecutado durante el arranque de sistema. El campo de niveles de ejecuci髇 ser ignorado.<p>

<b>En momento de arranque, esperar hasta que termine</b><br>
El proceso ser ejecutado durante el arranque de sistema e <i>init</i> esperar hasta que termine (p.ej. /etc/rc). El campo de niveles de ejecuci髇 es ignorado.<p>

<b>No hacer nada</b><br>
Esto no hace nada.<p>

<b>Siempre que sea A, B, C</b><br>
Un proceso marcado con un nivel de ejecuci髇 <tt>seg鷑 demanda (ondemand)</tt> ser ejecutado cuando el nivel de ejecuci髇 <tt>seg鷑 demanda (ondemand)</tt> sea llamado. Sin embargo, no ocurrir cambio en nivel de ejecuci髇 (los niveles de seg鷑 demanda son 'a', 'b' y 'c').<p> 

<b>En nivel por defecto</b><br>
Una entrada <tt>por defecto de init (initdefault)</tt> especifica el nivel de ejecuci髇 en que deber韆 de entrarse tras el arranque del sistema.  Si no existe ninguna, init te preguntar por un nivel de ejecuci髇 en la consola. El campo de proceso es ignorado.<p>

<b>Durante el arranque de sistema</b><br>
El proceso ser ejecutado durante el arranque del sistema. Ser ejecutado antes de cualquier entrada <tt><b>En momento de aranque</b></tt> o <tt><b>En momento de arranque, esperar hasta que termine</b></tt>. El campo de niveles de ejecuci髇 ser ignorado.<p>

<b>Se va la corriente</b><br>
El proceso ser ejecutado cuando la corriente se vaya. Init es informado normalmente acerca de esto por un proceso que conversa con la UPS conectada al ordenador. <i>Init</i> esperar hasta que el proceso acabe antes de seguir.<p>

<b>Se va la corriente sin espera</b><br>
Igual que con <tt><b>Se va la corriente</b></tt>, excepto que <i>init</i> no espera hasta que el proceso termine.<p>

<b>Vuelve la corriente</b><br>
Este proceso es ejecutado tan pronto como <i>init</i> es informado de que la corriente ha sido restaurada.<p>

<b>Fallo de corriente</b><br>
Este proceso ser ejecutado cuando <i>init</i> es informado de que la bater韆 de la UPS externa est casi vac韆 y la corriente est fallando (suponiendo que la UPS externa y que el proceso de monitorizaci髇 son capaces de detectar esta condici髇).<p>

<b>Ctrl-Alt-Supr</b><br>
El proceso ser ejecutado cuando <i>init</i> recibe la se馻l <i>SIGINT</i>. Esto quiere decir que alguien desde la consola del sistema ha presionado la combinaci髇 de teclas CTRL-ALT-SUPR. Norm醠mente uno siempre quiere ejecutar alguna clase de <tt>apagado</tt> o entrar en nivel de mono-usuario o rearrancar la m醧uina.<p>

<b>Combinaci髇 especial de teclas</b><br>
El proceso ser ejecutado cuando <i>init</i> reciba una se馻l desde el manejador de teclado de que una combinaci髇 especial de teclas ha sido presionada en el teclado de la consola.<p>

<hr>
0707010006a813000081a40000000000000002000000013ac038b000000b22000000200000000000000000000000000000002200000003reloc/inittab/help/action.fr.html <header>Action</header>

Decrit quel action doit 阾re faite.<p>

Les actions valides pour ce champ sont :<p>

<b>Red閙arrer apr鑣 阾re termin</b><br>
Le processus est red閙arr une fois qu'il est termin.  (exemple getty).<p>

<b>Attend son ex閏ution dans le niveau</b><br>
Le processus est d閙arr quand le niveau d'ex閏ution est atteint.  <i>Init</i> attend qu'il se termine.<p>

<b>Une seule fois dans le niveau</b><br>
Le processus sera ex閏ut une seule et unique fois, quand le niveau d'ex閏ution est entr.<p>

<b>Au d閙arrage</b><br>
Le processus est ex閏ut durant le d閙arrage, les niveaux d'ex閏ution sont ignor閟.<p>

<b>Au d閙arrage pendant et init l'attend</b><br>
Le processus est ex閏ut durant le d閙arrage, et <i>init</i> attend qu'il ai termin de s'ex閏uter avant de continuer (exemple./etc/rc).  Le niveau d'ex閏ution est ignor.<p>

<b>Rien faire</b><br>
Fait rien.<p>

<b>Au niveau A, B ou C</b><br>
Au processus marqu de cet action, <i>init</i> l'ex閏ute quand un des niveaux d'ex閏ution A, B ou C sont appel.  Par contre, aucun r閑l changement de niveau sont fait quand un de ses niveaux (a, b ou c) sont appel.<p>

<b>Au niveau par d閒aut</b><br>
Une entr閑 contient le niveau d'ex閏ution par d閒aut apr鑣 que le syst鑝e ai d閙arr.  C'est  ce niveau par d閒aut que s'ex閏ute ce processus, ainsi les niveaux d'ex閏ution sont ignor閟.<p>

<b>Durant le d閙arrage</b><br>
Le processus sera execut durant le d閙arrage du syst鑝e   Il s'ex閏utera apr鑣 toutes entr閑 <tt><b>Au d閙arrage</b></tt> et <tt><b>Au d閙arrage sans qu'init l'attende</b></tt> entries. Les niveaux d'ex閏ution sont ignor.<p>

<b>Quand l'alimentation d閒aille</b><br>
Le processus est ex閏uter quand l'UPS connect  l'ordinateur informe que l'alimentation va manquer.  <i>Init</i> va attendre que le processus soit termin avant de continuer.<p>

<b>Quand l'alimentation d閒aille, sans attendre</b><br>
As for <tt><b>Quand l'alimentation d閒aille</b></tt>, except that <i>init</i> does not wait for the process's completion.<p>

<b>Quand l'alimentation reviens</b><br>
Ce processus sera ex閏uter aussitot qu'<i>init</i> est inform que l'alimentation est revenue.<p>

<b>Quand l'alimentation s'arr阾e</b><br>
Le processus s'ex閏ute quand <i>init</i> constate que la batterie externe de l'UPS est presque vide et que l'alimentation va manquer.<p>

<b>Ctrl-Alt-Del</b><br>
Le processus sera ex閏ut quand <i>init</i> recoit le signal <i>SIGINT</i> pour qu'il se termine.  Ceci signifie que quelqu'un sur la console a appuy sur les touches CTRL-ALT-DEL.  En g閚閞al, cel signifie qu'il souhaite red閙arrer le syst鑝e.<p>

<b>Combinaisons sp閏iales de touches</b><br>
Le processus est ex閏ut quand <i>init</i> recoit un signal du gestionnaire de clavier qui dit qu'une combinaison sp閏iale de touches  閠 press du clavier de la console.<p>

<hr>
  0707010006a814000081a40000000000000002000000013ac038b000000afa000000200000000000000000000000000000001f00000003reloc/inittab/help/action.html    <header>Action</header>

Describes which action should be taken.<p>

Valid actions for this field are :<p>

<b>Respawn</b><br>
The process will be restarted whenever it terminates (e.g. getty).<p>

<b>Wait</b><br>
The process will be started once when the specified runlevel is entered and <i>init</i> will wait for its termination.<p>

<b>Once time at level</b><br>
The process will be executed once when the specified runlevel is entered.<p>

<b>Boot time</b><br>
The process will be executed during system boot.  The runlevels field is ignored.<p>

<b>Boot time, wait until termination</b><br>
The process will be executed during system boot, while <i>init</i> waits for its termination (e.g./etc/rc).  The runlevels field is ignored.<p>

<b>Do nothing</b><br>
This does nothing.<p>

<b>Whenever in A, B, C</b><br>
A process marked with an <tt>ondemand</tt> runlevel will be executed whenever the specified <tt>ondemand</tt> runlevel is called.  However, no runlevel change will occur (ondemand runlevels are `a', `b', and `c').<p>

<b>At default level</b><br>
An <tt>initdefault</tt> entry specifies the runlevel which should be entered after system boot.  If none exists, init will ask for a runlevel on the console. The process field is ignored.<p>

<b>During system boot</b><br>
The process will be executed during system boot. It will be executed before any <tt><b>Boot time</b></tt> or <tt><b>Boot time, wait until termination</b></tt> entries. The runlevels field is ignored.<p>

<b>Power goes down</b><br>
The process will be executed when the power goes down. Init is usually informed about this by a process talking to a UPS connected to the computer.  <i>Init</i> will wait for the process to finish before continuing.<p>

<b>Power goes down without waiting</b><br>
As for <tt><b>Power goes down</b></tt>, except that <i>init</i> does not wait for the process's completion.<p>

<b>Power is restored</b><br>
This process will be executed as soon as <i>init</i> is informormed that the power has been restored.<p>

<b>Power fail</b><br>
This process will be executed when <i>init</i> is told that the battery of the external UPS is almost empty and the power is failing (provided that the external UPS and the monitoring process are able to detect this condition).<p>

<b>Ctrl-Alt-Del</b><br>
The process will be executed when <i>init</i> receives the <i>SIGINT</i> signal.  This means that someone on the system console has pressed the CTRL-ALT-DEL key combination. Typically one wants to execute some sort of <tt>shutdown</tt> either to get into single-user level or to reboot the machine.<p>

<b>Special key combination</b><br>
The process will be executed when <i>init</i> receives a signal from the keyboard handler that a special key combination was pressed on the console keyboard.<p>

<hr>
  0707010006a815000081a40000000000000002000000013ac038b000000c24000000200000000000000000000000000000002200000003reloc/inittab/help/action.pl.html <header>Akcja</header>

Okre秎a, jaka akcja powinna by podj阾a. <p>

Dopuszczalnymi warto禼iami tego pola s&nbsp;: <p>

<b>Odtw髍z po zako馽zeniu</b><br>
Proces zostanie uruchomiony ponownie, gdy tylko si zako馽zy (np. getty). <p>

<b>Czekaj</b><br>
Proces zostanie uruchomiony raz podczas wchodzenia na okre秎ony poziom
i&nbsp;<i>init</i> b阣zie czeka na jego zako馽zenie. <p>

<b><p>Jednorazowo na poziomie</b><br>
Proces zostanie uruchomiony raz podczas wchodzenia na okre秎ony poziom. <p>

<b>Podczas startu</b><br>
Proces zostanie uruchomiony raz podczas startu systemu. Pole poziomu
uruchamiania jest ignorowane. <p>

<b>Podczas startu, czekaj na zako馽zenie</b><br>
Proces zostanie uruchomiony raz podczas startu systemu, a&nbsp;<i>init</i>
b阣zie czeka na jego zako馽zenie (np. /etc/rc). Pole poziomu uruchamiania
jest ignorowane. <p>

<b>Nic nie r骲</b><br>
Nic si nie stanie. <p>

<b>Kiedykolwiek na poziomie A, B, C</b><br>
Proces oznaczony przez poziom uruchamiania <tt>na 勘danie</tt> zostanie
uruchomiony podczas wywo砤nia okre秎onego poziomu <tt>na 勘danie</tt>.
Jednak縠, nie nast眕i zmaina bie勘cego poziomu uruchamiania (poziomami na
勘danie s `a', `b', i&nbsp;`c'). <p>

<b>Domy秎ny poziom</b><br>
Wpis <tt>domy秎ny poziom</tt> (<tt>initdefault</tt>) okre秎a, na jaki poziom
uruchamiania system powinien wej舵 po starcie. Je秎i go nie podano, init
zapyta o&nbsp;ten poziom na konsoli. Pole procesu jest ignorowane. <p>

<b>Podczas startu systemu</b><br>
Ten proces b阣zie uruchomiony podczas startu systemu przed jakimkolwiek
z&nbsp;proces體 <tt><b>Podczas startu</b></tt> czy <tt><b>Podczas startu,
czekaj na zako馽zenie</b></tt>. Pole poziom體 uruchamiania jest ignorowane.
<p>

<b>Zanik zasilania</b><br>
Proces b阣zie uruchomiony gdy wyst眕i zanik zasilania. Init jest zazwyczaj
o&nbsp;tym informowany przez proces monitoruj眂y po潮czenie UPS-a
z&nbsp;komputerem. <i>Init</i> b阣zie czeka na zako馽zenie dzia砤nia tego
procesu przed kontynuacj. <p>

<b>Zanik zasilania, nie czeka</b><br>
Tak jak dla <tt><b>Zanik zasilania</b></tt>, lecz <i>init</i> nie czeka na
zako馽zenie procesu. <p>

<b>Powr髏 zasilania</b><br>
Ten proces zostanie uruchomiony natychmiast po powiadomieniu <i>init</i>-a
o&nbsp;przywr骳eniu zasilania. <p>

<b>Brak zasilania</b><br>
Ten proces zostanie uruchomiony, gdy <i>init</i> zostanie powiadomiony, 縠
akumulatory zewn阾rznego UPS-a s niemal ca砶owicie roz砤dowane
a&nbsp;zasilania nadal nie ma (pod warunkiem, 縠 zewn阾rzny UPS oraz proces
monitoruj眂y jego stan s w&nbsp;stanie wykry t sytuacj). <p>

<b>Ctrl-Alt-Del</b><br>
Proces zostanie uruchomiony, gdy <i>init</i> otrzyma sygna <i>SIGINT</i>.
Oznacza to, 縠 kto nacisn背 kombinacj klawiszy CTRL-ALT-DEL przy konsoli.
Najprawdopodobniej kto chce uruchomi pewien rodzaj <tt>shutdown</tt>-a,
aby uzyska poziom jednou縴tkownikowy lub wykona restart maszyny. <p>

<b>Specjalna kombinacja klawiszy</b><br>
Proces zostanie uruchomiony, gdy <i>init</i> otrzyma sygna od procedur
obs硊gi klawiatury, 縠 na klawiaturze konsoli zosta砤 naci秐i阾a specjalna
kombinacja klawiszy. <p>

<hr>
0707010006a816000081a40000000000000002000000013ac038b000000be5000000200000000000000000000000000000002500000003reloc/inittab/help/action.ru_RU.html  <header>腻轳蜮桢</header>

物桉噱, 赅觇 溴轳蜮 礤钺躅滂祛 镳邃镳桧螯.<p>

念矬耱桁 珥圜屙 潆 溧眄钽 镱 :<p>

<b>襄疱玎矬耜</b><br>
橡铞羼 狍溴 疱耱囵蝾忄 镳 邈 玎忮瘌屙梃 (镳桁屦: getty).<p>

<b>捂桎囗桢</b><br>
橡铞羼 狍溴 玎矬 邃桧铈潲 镳 怩钿  耦铗忮蝰蜮簋 箴钼屙 恹镱腠屙  <i>init</i> 狍溴 驿囹 邈 玎忮瘌屙.<p>

<b>配桧铈潲 磬 箴钼礤</b><br>
橡铞羼 狍溴 恹镱腠屙 邃桧铈潲 镳 怩钿  耦铗忮蝰蜮簋 箴钼屙 恹镱腠屙.<p>

<b>橡 耱囵蝈</b><br>
橡铞羼 狍溴 恹镱腠屙 镳 玎沭箸觇 耔耱屐. 杨溴疰桁铄 镱 箴钼礤 恹镱腠屙 桡眍痂痼弪.<p>

<b>橡 耱囵蝈, 驿囹 铌铐鬣龛</b><br>
橡铞羼 狍溴 恹镱腠屙 镳 玎沭箸觇 耔耱屐, <i>init</i> 狍溴 驿囹 邈 玎忮瘌屙 (磬镳桁屦 /etc/rc).杨溴疰桁铄 镱 箴钼礤 恹镱腠屙 桡眍痂痼弪.<p>

<b>丸麇泐 礤 溴豚螯</b><br>
蒡 珥圜栩 龛麇泐 礤 溴豚螯.<p>

<b>橡 磬骖驿屙梃  A, B, C</b><br>
橡铞羼 桁妣 箴钼屙 恹镱腠屙 <tt>ondemand</tt> 狍溴 恹镱腠蝰, 觐沅 恹琨忄弪 箨噻囗睇 箴钼屙 恹镱腠屙 <tt>ondemand</tt>. 武磬觐 桤戾礤龛 箴钼  恹镱腠屙 礤 镳铊珙殇弪 (`a', `b'  `c' - 箴钼龛 恹镱腠屙 <tt>ondemand</tt>).<p>

<b>袜 箴钼礤 恹镱腠屙 镱 箪铍鬣龛</b><br>
羽钼屙 <tt>initdefault</tt> 怆弪 箴钼礤 恹镱腠屙  觐蝾瘥 耔耱屐 怩钿栩 镱耠 玎沭箸觇. 篷腓 礤 耋耱怏弪, init 镱镳铖栩 忖羼蜩 铗 箴钼屙  觐眈铍 镱耠 玎沭箸觇. 杨溴疰桁铄 镱 镳铞羼襦 桡眍痂痼弪.<p>

<b>骂 怵屐 耱囵蜞 耔耱屐</b><br>
橡铞羼 狍溴 恹镱腠屙  蝈麇龛 玎沭箸觇 耔耱屐. 雾 狍溴 恹镱腠屙 <b>漕</b> 膻犷泐 <tt><b>橡 耱囵蝈</b></tt> 桦 <tt><b>橡 耱囵蝈, 驿囹 铌铐鬣龛</b></tt> 镳铞羼耦. 杨溴疰桁铄 镱 箴钼礤 恹镱腠屙 桡眍痂痼弪.<p>

<b>悟觌屙桢 镨蜞龛</b><br>
橡铞羼 狍溴 恹镱腠屙 镳 铗觌屙桢 镨蜞龛. 吾眍 init 箸磬弪 钺 铎 铗 镳钽疣祆 箫疣怆彘 攘 (UPS), 觐蝾瘥 镱潢膻麇  觐祜蝈痼. <i>Init</i> 狍溴 驿囹 铌铐鬣龛 溧眄钽 镳铞羼襦 镥疱 蝈, 赅 镳钿铍骅螯 疋铄 溧朦礤轼邋 恹镱腠屙桢.<p>

<b>悟觌屙桢 镨蜞龛 徨 铈桎囗</b><br>
理嚯钽梓眍, 赅 <tt><b>悟觌屙桢 镨蜞龛</b></tt> 玎 桉觌屙桢 蝾泐, 黩 <i>init</i> 礤 驿弪 玎忮瘌屙 镳铞羼襦.<p>

<b>骂耨蜞眍怆屙桢 镨蜞龛</b><br>
泥眄 镳铞羼 狍溴 恹镱腠屙, 赅 蝾朦觐 <i>init</i> 箸磬弪  蝾, 黩 镨蜞龛 忸耨蜞眍怆屙.<p>

<b>厌铋 镨蜞龛</b><br>
泥眄 镳铞羼 狍溴 恹镱腠屙, 觐沅 <i>init</i> 箸磬弪  蝾, 黩 疱耋瘃 嚓牦祗蝾痦 徉蝌囵彘 忭屮礤泐 攘 磬 桉躅溴  镨蜞龛 耜铕 桉麇珥弪 (镳邃镱腩汔弪, 黩 忭屮龛 攘  镳钽疣祆 邈 祛龛蝾痂磴 耧铖钺睇 钺磬痼骅螯 溧眄簋 耔蝮圉棹).<p>

<b>Ctrl-Alt-Del</b><br>
泥眄 镳铞羼 狍溴 恹镱腠屙, 觐沅 <i>init</i> 镱塍麒 耔沩嚯 <i>SIGINT</i>. 蒡 铉磬鬣弪, 黩 礤牝 磬驵 觐灬桧圉棹 觌噔桫 CTRL-ALT-DEL 磬 觐眈铍. 吾眍 磬 Desktop 耔耱屐圊 溧眄 镳铞羼 铖簌羼蜮弪 礤觇 忤 玎忮瘌屙 疣犷螓 (磬镳桁屦 镥疱躅  钿眍镱腌钼囹咫觇 疱骅 桦 镥疱玎沭箸赅 爨睇).<p>

<b>扬弼栲朦磬 觐灬桧圉 觌噔桫</b><br>
泥眄 镳铞羼 狍溴 恹镱腠屙, 觐沅 <i>init</i> 镱塍麒 耔沩嚯 铗 钺疣犷蝼桕 觌噔栲蝮瘥  蝾, 黩 猁豚 磬驵蜞 耧弼栲朦磬 觐灬桧圉 觌噔桫 磬 觐眈铍.<p>

<hr>
   0707010006a817000081a40000000000000002000000013ac038b000000be5000000200000000000000000000000000000002500000003reloc/inittab/help/action.ru_SU.html  <header>渑视宰膳</header>

镄捎僮僚, 肆松 呐视宰裳 闻下认纳拖 幸拍幸晌言.<p>

湎姓釉赏倥 谖赁盼裳 奶 牧挝锨 邢萄 :<p>

<b>鹋遗诹姓铀</b><br>
鹨厦庞 抡呐 遗釉烈韵琢 幸 徘 诹着役盼缮 (幸赏乓: getty).<p>

<b>镏赡廖膳</b><br>
鹨厦庞 抡呐 诹姓菖 拍晌现馁 幸 兹夏  酉显着杂宰绽萆 找献盼 踪邢涛盼裳  <i>init</i> 抡呐 帜猎 徘 诹着役盼裳.<p>

<b>迥晌现馁 瘟 找献闻</b><br>
鹨厦庞 抡呐 踪邢涛盼 拍晌现馁 幸 兹夏  酉显着杂宰绽萆 找献盼 踪邢涛盼裳.<p>

<b>鹨 釉烈耘</b><br>
鹨厦庞 抡呐 踪邢涛盼 幸 诹且遮松 由釉磐. 笙呐抑赏吓 邢萄 找献闻 踪邢涛盼裳 汕蜗疑艺旁友.<p>

<b>鹨 釉烈耘, 帜猎 纤衔蘖紊</b><br>
鹨厦庞 抡呐 踪邢涛盼 幸 诹且遮松 由釉磐, <i>init</i> 抡呐 帜猎 徘 诹着役盼裳 (瘟幸赏乓 /etc/rc).笙呐抑赏吓 邢萄 找献闻 踪邢涛盼裳 汕蜗疑艺旁友.<p>

<b>钌夼窍 闻 呐塘载</b><br>
 谖赁稍 紊夼窍 闻 呐塘载.<p>

<b>鹨 瘟窒帜盼缮  A, B, C</b><br>
鹨厦庞 赏爬萆 找献盼 踪邢涛盼裳 <tt>ondemand</tt> 抡呐 踪邢涛言友, 讼悄 踪谫琢旁友 账邻廖钨 找献盼 踪邢涛盼裳 <tt>ondemand</tt>. 锬瘟讼 哨团闻紊 找献窝  踪邢涛盼裳 闻 幸仙谙誓旁 (`a', `b'  `c' - 找献紊 踪邢涛盼裳 <tt>ondemand</tt>).<p>

<b>盍 找献闻 踪邢涛盼裳 邢 胀咸蘖紊</b><br>
跻献盼 <tt>initdefault</tt> 炎萄旁友 找献闻 踪邢涛盼裳  讼韵屹 由釉磐 兹夏稍 邢犹 诹且遮松. 逵躺 闻 诱菖釉渍旁, init 邢幸嫌稍 鬃庞陨 茉显 找献盼  讼斡咸 邢犹 诹且遮松. 笙呐抑赏吓 邢萄 幸厦庞恿 汕蜗疑艺旁友.<p>

<b>飨 滓磐 釉烈粤 由釉磐</b><br>
鹨厦庞 抡呐 踪邢涛盼  耘夼紊 诹且遮松 由釉磐. 镂 抡呐 踪邢涛盼 <b>南</b> 汤孪窍 <tt><b>鹨 釉烈耘</b></tt> 商 <tt><b>鹨 釉烈耘, 帜猎 纤衔蘖紊</b></tt> 幸厦庞酉. 笙呐抑赏吓 邢萄 找献闻 踪邢涛盼裳 汕蜗疑艺旁友.<p>

<b>镌颂擂盼膳 猩粤紊</b><br>
鹨厦庞 抡呐 踪邢涛盼 幸 显颂擂盼膳 猩粤紊. 锫俎蜗 init 遮瘟旁 下 茉贤 显 幸锨伊屯 招伊滋牙菖 殁 (UPS), 讼韵屹 邢乃汤夼  讼托呃耘艺. <i>Init</i> 抡呐 帜猎 纤衔蘖紊 牧挝锨 幸厦庞恿 信遗 耘, 肆 幸夏咸稚载 幼吓 牧特闻售排 踪邢涛盼膳.<p>

<b>镌颂擂盼膳 猩粤紊 屡 现赡廖裳</b><br>
嵛撂锨赊蜗, 肆 <tt><b>镌颂擂盼膳 猩粤紊</b></tt> 诹 捎颂擂盼膳 韵窍, 拊 <i>init</i> 闻 帜旁 诹着役盼裳 幸厦庞恿.<p>

<b>飨佑粤蜗滋盼膳 猩粤紊</b><br>
淞挝偈 幸厦庞 抡呐 踪邢涛盼, 肆 韵特讼 <i>init</i> 遮瘟旁  韵, 拊 猩粤紊 紫佑粤蜗滋盼.<p>

<b>舐鲜 猩粤紊</b><br>
淞挝偈 幸厦庞 抡呐 踪邢涛盼, 讼悄 <i>init</i> 遮瘟旁  韵, 拊 遗诱矣 了苏驼萄韵椅偃 铝栽烈攀 孜袍闻窍 殁 瘟 捎认呐  猩粤紊 铀弦 捎夼谖旁 (幸拍邢滔橇旁友, 拊 孜袍紊 殁  幸锨伊屯 徘 拖紊韵疑吻 有嫌下钨 下瘟艺稚载 牧挝绽 由哉撩衫).<p>

<b>Ctrl-Alt-Del</b><br>
淞挝偈 幸厦庞 抡呐 踪邢涛盼, 讼悄 <i>init</i> 邢陶奚 由俏撂 <i>SIGINT</i>.  馅瘟蘖旁, 拊 闻嗽 瘟至 讼吐晌撩衫 颂磷邵 CTRL-ALT-DEL 瘟 讼斡咸. 锫俎蜗 瘟 Desktop 由釉磐寥 牧挝偈 幸厦庞 嫌蛰庞宰萄旁 闻松 咨 诹着役盼裳 伊孪再 (瘟幸赏乓 信遗认  夏蜗邢腾献猎盘赜松 遗稚 商 信遗诹且遮肆 土凵钨).<p>

<b>笮琶闪特瘟 讼吐晌撩裳 颂磷邵</b><br>
淞挝偈 幸厦庞 抡呐 踪邢涛盼, 讼悄 <i>init</i> 邢陶奚 由俏撂 显 下伊孪赞伤 颂磷闪哉屹  韵, 拊 沦塘 瘟至粤 有琶闪特瘟 讼吐晌撩裳 颂磷邵 瘟 讼斡咸.<p>

<hr>
   0707010006a819000081a40000000000000002000000013ac038b000000a43000000200000000000000000000000000000002200000003reloc/inittab/help/action.sv.html <header>舤g鋜d</header>

Talar om vilken 錿g鋜d som ska vidtas.

<p>Giltiga 錿g鋜der 鋜:

<h4>Forts鋞t</h4>
Processen startas om s fort den av n錱on anledning avslutats (t ex getty).

<h4>V鋘ta</h4>
Processen startas n鋜 den angivna k鰎niv錸 n錽 och <i>init</i> v鋘tar p att
den ska avslutas.

<h4>En g錸g p niv</h4>
Processen kommer att k鰎as en g錸g n鋜 den angivna k鰎niv錸 n錽.

<h4>Vid start</h4>a
Processen kommer att k鰎as n鋜 systemet startas. K鰎niv錰鋖tet ignoreras.

<h4>Vid start, v鋘ta p avslutning</h4>
Processen kommer att k鰎as n鋜 systemet startas och <i>init</i> v鋘tar p att
den ska avslutas (t ex /etc/rc). K鰎niv錰鋖tet ignoreras.

<h4>G鰎 ingenting</h4>
G鰎 ingenting.

<h4>Alltid vid A, B, C</h4>
En process som markerats med en <tt>p beg鋜an</tt>-k鰎niv kommer att k鰎as
varje g錸g den specificerade <tt>p beg鋜an</tt>-k鰎niv錸 anropas. K鰎niv錸
kommer dock inte att 鋘dras (p beg鋜an-k鰎niv錯r 鋜 'a', 'b' och 'c').

<h4>P standardniv</h4>
<tt>Initdefault</tt>-posten anger den k鰎niv som ska g鋖la vid systemstart.
Om du inte angivit n錱on standardniv kommer init att fr錱a efter k鰎niv
via konsolen. Processf鋖tet ignoreras.

<h4>Under systemstart</h4>
Processen kommer att k鰎as under systemstart, f鰎e alla processer som
angivits under <tt><b>Vid start</b></tt> och <tt><b>Vid start, v鋘ta p
avslutning</b></tt>. K鰎niv錰鋖tet ignoreras.

<h4>Vid str鰉avbrott</h4>
Processen kommer att k鰎as vid str鰉avbrott. Init f錼 vanligen reda p
detta via en process som kommunicerar med en UPS anslutet till datorn.
<i>Init</i> v鋘tar p att processen ska avslutas innan den forts鋞ter.

<h4>Vid str鰉avbrott, utan v鋘tetid</h4>
Likadant som <tt><b>Vid str鰉avbrott</b></tt> utom att <i>init</i> inte
v鋘tar p att processen ska avslutas.

<h4>D str鰉men kommer tillbaka</h4>
Processen kommer att k鰎as d <i>init</i> f錼 veta att str鰉men kommit
tillbaka.

<h4>Vid UPS-svikt</h4>
Processen kommer att k鰎as d <i>init</i> f錼 veta att UPS-batteriet 鋜
n鋝tan slut och sp鋘ningen kommer att f鰎svinna (f鰎utsatt att den externa
UPSen och den 鰒ervakande processen kan uppt鋍ka detta).

<h4>Ctrl-Alt-Del</h4>
Processen kommer att k鰎as d <i>init</i> f錼 signalen <i>SIGINT</i>. Detta
betyder att n錱on vid systemkonsolen har tryckt CTRL-ALT-DEL. Vanligen vill
man d k鰎a n錱on slags <tt>shutdown</tt>, antingen f鰎 att g 鰒er i
single-user eller f鰎 att starta om maskinen.

<h4>Speciell tangentkombination</h4>
Processen kommer att k鰎as d <i>init</i> tar emot en signal fr錸
tangentbordshanteraren som betyder att en speciell tangentkombination
skrevs in p konsoltangentbordet.

<hr>
 0707010006a81b000081a40000000000000002000000013ac038b0000001ed000000200000000000000000000000000000001e00000003reloc/inittab/help/id.es.html <header>Nombre de Proceso</header>

La Id (nombre de proceso) es una secuencia 鷑ica de 1 a 4 caracteres que identifica una entrada en el archivo inittab (para versiones de sysvinit compiladas con librer韆s menores a 5.2.18 o librer韆s a.out el l韒ite es de 2 caracteres).<p>

Nota: Para procesos gettys u otros login, el campo deber韆 de ser el sufijo tty de el correspondiente tty, p.ej. 1 para tty1. De otra forma, el control de cuentas de login podr韆 no funcionar corr閏tamente.<p>

<hr>
   0707010006a81c000081a40000000000000002000000013ac038b000000214000000200000000000000000000000000000001e00000003reloc/inittab/help/id.fr.html <header>Nom de Processus</header>

Le nom de processus est une s閝uence unique de 1  4 caract鑢es qui identifie une entr閑 dans le fichier inittab (pour les versions de sysvinit compil avec les librairies plus vieilles que 5.2.18 ou a.out la limite est de 2 caract鑢es).<p>

Note: pour gettys et autre processus d'ouverture de session, ce champs peut 阾re le suffix de tty du tty correspondant, par exemple pour le tty1 le champ pourrait 阾re 1.  Sinon les ouvertures de sessions ne pourrait pas 阾re faite correctement.<p>

<hr>
0707010006a81d000081a40000000000000002000000013ac038b0000001b0000000200000000000000000000000000000001b00000003reloc/inittab/help/id.html    <header>Process Name</header>

The Id (process name) is a unique sequence of 1-4 characters which identifies an entry in inittab file (for versions of sysvinit compiled with libraries < 5.2.18 or a.out libraries the limit is 2 characters).<p>

Note: For gettys or other login processes, the field should be the tty suffix of the corresponding tty, e.g.1 for tty1.  Otherwise, the login accounting might not work correctly.<p>

<hr>
0707010006a81e000081a40000000000000002000000013ac038b00000020c000000200000000000000000000000000000001e00000003reloc/inittab/help/id.pl.html <header>Nazwa</header>

Ten identyfikator (nazwa procesu) jest unikalnym ci眊iem zawieraj眂ym 1-4
znak體, kt髍y identyfikuje wpis w&nbsp;pliku inittab (dla wersji inita SysV
skompilowanych z&nbsp;bibliotekami libc <&nbsp;5.2.18 lub a.out ograniczenie
d硊go禼i wynosi 2 znaki). <p>

Uwaga: Dla getty-體 oraz innych proces體 s硊勘cych logowaniu polem tym
powinna by ko馽體ka nazwy tty-ka, na kt髍ym odbywa sie logowanie, np. 1 dla
tty1. W&nbsp;przeciwnym razie rejestrowanie logowa mo縠 nie odbywa si
poprawnie. <p>

<hr>
0707010006a81f000081a40000000000000002000000013ac038b0000001c7000000200000000000000000000000000000002100000003reloc/inittab/help/id.ru_RU.html  <header>褥 橡铞羼襦</header>

Id (桁 镳铞羼襦)  箜桕嚯 镱耠邃钼囹咫铖螯 1-4 耔焘铍钼 桎屙蜩翳鲨痼桴 玎镨顸  羿殡 inittab (潆 忮瘃栝 sysvinit 耜铎镨腓痤忄眄  徼犭桀蝈赅扈 忮瘃梃 < 5.2.18 桦  徼犭桀蝈赅扈 a.out - 溧眄 腓扈 2 耔焘铍).<p>

橡桁鬻囗桢: 碾 getty  漯筱桴 login 镳铞羼耦  镱脲 漕腈眍 猁螯 耋趑桕耦 耦铗忮蝰蜮簋泐 tty .. 1 潆 tty1. 软圜 骟痦嚯桤圉 疱汨耱疣鲨  耔耱屐 祛驽 疣犷蜞螯 礤觐痧尻蝽.<p>

<hr>
 0707010006a820000081a40000000000000002000000013ac038b0000001c7000000200000000000000000000000000000002100000003reloc/inittab/help/id.ru_SU.html  <header>橥 鹨厦庞恿</header>

Id (赏 幸厦庞恿) 茉 瘴伤撂匚裂 邢犹拍献猎盘匚嫌载 1-4 由妥咸献 赡盼陨粕蒙艺垒扇 诹猩迂  屏侍 inittab (奶 着矣墒 sysvinit 铀贤猩躺蚁琢挝偃  律绿上耘肆蜕 着矣缮 < 5.2.18 商  律绿上耘肆蜕 a.out - 牧挝偈 躺蜕 2 由妥咸).<p>

鹨赏呸廖膳: 涮 getty  囊涨扇 login 幸厦庞酉 茉 邢膛 南讨蜗 沦载 诱破伤酉 酉显着杂宰绽菖窍 tty .. 1 奶 tty1. 槲赁 终椅撂哨撩裳 遗巧釉伊蒙  由釉磐 拖峙 伊孪粤载 闻讼乙潘晕.<p>

<hr>
 0707010006a821000081a40000000000000002000000013ac038b00000019a000000200000000000000000000000000000001e00000003reloc/inittab/help/id.sv.html <header>Processnamn</header>

ID (processnamn) 鋜 en unik f鰈jd av 1-4 tecken som symboliserar en post
i inittab-filen (f鰎 sysvinit-versioner kompilerade med bibliotek < 5.2.18
eller a.out-bibliotek 鋜 f鰈jden begr鋘sad till tv tecken).

Obs: F鰎 getty och andra inloggningsprocesser b鰎 f鋖tet inneh錶la
tty-suffixet f鰎 motsvarande tty, t ex 1 f鰎 tty1, annars kan
inloggningshanteringen f problem.

<hr>
  0707010006a822000081a40000000000000002000000013ac038b000000112000000200000000000000000000000000000002100000003reloc/inittab/help/index.es.html  <header>Inittab</header>

Archivo inittab usado por procesos de init compatibles con sysv.<p>

El archivo inittab describe qu procesos son arrancados en el arranque de sistema y durante las operaciones normales (p.ej. /etc/init.d/boot, /etc/init.d/rc, gettys...).<p>

<hr>
  0707010006a823000081a40000000000000002000000013ac038b00000010b000000200000000000000000000000000000002100000003reloc/inittab/help/index.fr.html  <header>Inittab</header>

Inittab est un fichier utilis par les programmes d'initialisation compatible sysv.<p>

Il d閏rit quel processus sont ex閏ut au d閙arrage et durant certaine op閞ation normale (exemple: /etc/init.d/boot, /etc/init.d/rc, gettys...).<p>

<hr>
 0707010006a824000081a40000000000000002000000013ac038b0000000ee000000200000000000000000000000000000001e00000003reloc/inittab/help/index.html <header>Inittab</header>

Inittab file used by the sysv-compatible init process.<p>

The inittab file describes which processes are started at bootup and during normal operation (e.g./etc/init.d/boot, /etc/init.d/rc, gettys...).<p>

<hr>
  0707010006a825000081a40000000000000002000000013ac038b00000010e000000200000000000000000000000000000002100000003reloc/inittab/help/index.pl.html  <header>Inittab</header>

Plik inittab jest u縴wany przez zgodny z Systemem V proces init.<p>

Plik inittab okre秎a, kt髍e procesy s uruchamiane podczas startu systemu,
jak te podczas normalnej jego pracy. (np. /etc/init.d/boot, /etc/init.d/rc,
getty-ki...). <p>
<hr>
  0707010006a826000081a40000000000000002000000013ac038b0000000f9000000200000000000000000000000000000002400000003reloc/inittab/help/index.ru_RU.html   <header>Inittab</header>

Inittab 羿殡 桉镱朦珞弪 sysv-耦忪羼蜩禧 镳铞羼耦 init.<p>

脏殡 inittab 铒桉噱 赅觇 镳铞羼覃 耱囵蝮 镳 玎沭箸赍  镳 眍痨嚯铎 趔黻鲨铐桊钼囗梃 (磬镳桁屦: /etc/init.d/boot, /etc/init.d/rc, getty...).<p>

<hr>
   0707010006a827000081a40000000000000002000000013ac038b0000000f9000000200000000000000000000000000000002400000003reloc/inittab/help/index.ru_SU.html   <header>Inittab</header>

Inittab 屏侍 捎邢特谡旁友 sysv-酉淄庞陨唾 幸厦庞酉 init.<p>

媪侍 inittab 闲捎僮僚 肆松 幸厦庞淤 釉烈哉涝 幸 诹且遮伺  幸 蜗彝撂匚贤 普嗡蒙衔梢献廖缮 (瘟幸赏乓: /etc/init.d/boot, /etc/init.d/rc, getty...).<p>

<hr>
   0707010006a828000081a40000000000000002000000013ac038b0000000f5000000200000000000000000000000000000002100000003reloc/inittab/help/index.sv.html  <header>Inittab</header>

Inittab-fil som anv鋘ds av den sysv-kompatibla init-processen.

<p>Inittab-filen beskriver vilka processer som ska k鰎as ig錸g vid start
och under normal drift (t ex /etc/init.d/boot, /etc/init.d/rc, gettys ...).

<hr>
   0707010006a829000081a40000000000000002000000013ac038b0000001c3000000200000000000000000000000000000002300000003reloc/inittab/help/process.es.html    <header>Proceso</header>

Este campo contiene la l韓ea de comando del programa que deber韆 de ser
ejecutado en el nivel de ejecuci髇 especificado (p.ej. /etc/init.d/rc, /sbin/getty...).<br>

Si el campo de proceso comienza con un caracter '+', <i>init</i> no har
control de cuentas con utmp y wtmp para ese proceso. Esto es necesario para
gettys que insisten en realizar su propio control de utmp y wtmp. Este es
tambi閚 un error hist髍ico.<p>

<hr>
 0707010006a82a000081a40000000000000002000000013ac038b000000121000000200000000000000000000000000000002300000003reloc/inittab/help/process.fr.html    <header>Processus</header>

Sp閏ifie quel processus ex閏uter.<br>
Si le champ du processus commence par le caract鑢e '+', init ne fera pas de journal sur ce processus.  Ceci est n閏essaire pour gettys qui insiste pour faire ses propres journaux.  C'est aussi un bogue historique.<p>

<hr>
   0707010006a82b000081a40000000000000002000000013ac038b000000199000000200000000000000000000000000000002000000003reloc/inittab/help/process.html   <header>Process</header>

This field contains the command line of the program which should be executed
on the specified runlevel (e.g. /etc/init.d/rc, /sbin/getty...).<br>

If the process field starts with a `+' character, <i>init</i> will not do
utmp and wtmp accounting for that process. This is needed for gettys that
insist on doing their own utmp/wtmp housekeeping. This is also a historic
bug.<p>

<hr>
   0707010006a82c000081a40000000000000002000000013ac038b00000018f000000200000000000000000000000000000002300000003reloc/inittab/help/process.pl.html    <header>Proces</header>

To pole zawiera polecenie uruchamiaj眂e program na zadanym poziomie
uruchamiania (np. /etc/init.d/rc, /sbin/getty...). <br>

Je秎i zaczyna si ono znakiem `+', <i>init</i> nie b阣zie logowa tego
procesu w&nbsp;plikach utmp i&nbsp;wtmp. Jest to potrzebne w&nbsp;przypadku
getty-體, kt髍e same zarz眃zaja wpisami w&nbsp;utmp/wtmp. Jest to te
zasz硂舵 historyczna. <p>

<hr>
 0707010006a82d000081a40000000000000002000000013ac038b0000000b6000000200000000000000000000000000000002600000003reloc/inittab/help/process.ru_RU.html <header>橡铞羼</header>

 铎 镱脲 磬躅滂蝰 觐爨漤 耱痤赅 镳钽疣祆, 觐蝾疣 狍溴 恹玮囗 溧眄 镳铞羼耦 桧桷栲腓玎鲨 (磬镳桁屦: /etc/init.d/rc, /sbin/getty ...).<p>

<hr>
  0707010006a82e000081a40000000000000002000000013ac038b0000000b6000000200000000000000000000000000000002600000003reloc/inittab/help/process.ru_SU.html <header>鹨厦庞</header>

 茉贤 邢膛 瘟认纳杂 讼土奈裂 釉蚁肆 幸锨伊屯, 讼韵伊 抡呐 踪谧廖 牧挝偻 幸厦庞酉 晌擅闪躺诹蒙 (瘟幸赏乓: /etc/init.d/rc, /sbin/getty ...).<p>

<hr>
  0707010006a82f000081a40000000000000002000000013ac038b000000164000000200000000000000000000000000000002300000003reloc/inittab/help/process.sv.html    <header>Process</header>

I detta f鋖t finns kommandoraden f鰎 det program som ska k鰎as p den
angivna niv錸 (t ex /etc/init.d/rc, /sbin/getty ...).

<br>Om processf鋖tet b鰎jar med ett '+'-tecken kommer <i>init</i> inte
att utf鰎a utmp eller wtmp f鰎 processen. Detta beh鰒s f鰎 gettys som
sk鰐er sin egen utmp/wtmp. Det 鋜 ocks en klassisk bugg.

<hr>
0707010006a830000081a40000000000000002000000013ac038b0000001ca000000200000000000000000000000000000002500000003reloc/inittab/help/runlevels.es.html  <header>Niveles de Ejecuci髇</header>

El campo puede contener m鷏tiples caracteres para diferentes niveles de ejecuci髇. Por ejemplo, <tt>123</tt> especifica que el proceso deber韆 de ser arrancado en los niveles de ejecuci髇 1, 2, y 3.<p>

Cuando se cambia el nivel de ejecuci髇 del sistema, cualquier proceso que est en ejecuci髇 que no se haya especificado en el nuevo nivel es matado, primero con <tt>SIGTERM</tt>, luego con <tt>SIGKILL</tt>.<p>

<hr>
  0707010006a831000081a40000000000000002000000013ac038b0000001b9000000200000000000000000000000000000002500000003reloc/inittab/help/runlevels.fr.html  <header>Niveaux d'Ex閏ution</header>

Le champ du niveau d'ex閏ution peut contenir les caract鑢es des diff閞ents niveaux.  Par exemple <tt>123</tt> sp閏ifie que le processus doit 阾re d閙arr au niveau d'ex閏ution 1, 2 et 3.<p>

Quand le syst鑝e change de niveau, tout les processus qui ne sont pas sp閏ifi dans le nouveau niveau sont tu, pour commencer avec le signal <tt>SIGTERM</tt> et ensuite avec le signal <tt>SIGKILL</tt>.<p>

<hr>
   0707010006a832000081a40000000000000002000000013ac038b00000017a000000200000000000000000000000000000002200000003reloc/inittab/help/runlevels.html <header>Runlevels</header>

The field may contain multiple characters for different runlevels.  For example, <tt>123</tt> specifies that the process should be started in runlevels 1, 2, and 3.<p>

When the system runlevel is changed, any running processes that are not specified for the new runlevel are killed, first with <tt>SIGTERM</tt>, then with <tt>SIGKILL</tt>.<p>

<hr>
  0707010006a833000081a40000000000000002000000013ac038b0000001d5000000200000000000000000000000000000002500000003reloc/inittab/help/runlevels.pl.html  <header>Poziomy</header>

To pole mo縠 zawiera kilka znak體 okre秎aj眂ych r罂ne poziomy uruchomienia
systemu. Na przyk砤d, <tt>123</tt> okre秎a, 縠 proces powinien by
uruchomiony na poziomach 1, 2 i&nbsp;3. <p>

Gdy poziom uruchomienia systemu ulega zmianie, wszystkie dzia砤j眂e,
a&nbsp;nie wyszczeg髄nione dla nowego poziomu uruchomienia procesy, s
zabijane. Najpierw poprzez wys砤nie do nich sygna硊 <tt>SIGTERM</tt>,
a&nbsp;nast阷nie <tt>SIGKILL</tt>. <p>

<hr>
   0707010006a834000081a40000000000000002000000013ac038b000000190000000200000000000000000000000000000002800000003reloc/inittab/help/runlevels.ru_RU.html   <header>羽钼龛 恹镱腠屙</header>

泥眄铄 镱脲 祛驽 耦溴疰囹 礤耜铍觐 耔焘铍钼 潆 疣珥 箴钼礤 恹镱腠屙. 袜镳桁屦 <tt>123</tt> 铉磬鬣弪, 黩 镳铞羼 漕腈屙 耱囵蝾忄螯  箴钼 恹镱腠屙 1, 2,  3.<p>

橡 耢屙 箴钼 恹镱腠屙 膻猁 镳铞羼覃, 觐蝾瘥 礤 镳邃磬珥圜屙 潆 眍忸泐 箴钼 恹镱腠屙 镳栳桠帼蝰 耥圜嚯 耔沩嚯铎 <tt>SIGTERM</tt>,  玎蝈 耔沩嚯铎 <tt>SIGKILL</tt>.<p>

<hr>
0707010006a835000081a40000000000000002000000013ac038b000000190000000200000000000000000000000000000002800000003reloc/inittab/help/runlevels.ru_SU.html   <header>跻献紊 踪邢涛盼裳</header>

淞挝吓 邢膛 拖峙 酉呐抑猎 闻铀咸讼 由妥咸献 奶 伊谖偃 找献闻 踪邢涛盼裳. 盍幸赏乓 <tt>123</tt> 馅瘟蘖旁, 拊 幸厦庞 南讨盼 釉烈韵琢载  找献窝 踪邢涛盼裳 1, 2,  3.<p>

鹨 油盼 找献窝 踪邢涛盼裳 汤沦 幸厦庞淤, 讼韵屹 闻 幸拍瘟谖赁盼 奶 蜗紫窍 找献窝 踪邢涛盼裳 幸陕勺晾杂 游赁撂 由俏撂贤 <tt>SIGTERM</tt>,  诹耘 由俏撂贤 <tt>SIGKILL</tt>.<p>

<hr>
0707010006a836000081a40000000000000002000000013ac038b000000175000000200000000000000000000000000000002500000003reloc/inittab/help/runlevels.sv.html  <header>K鰎niv錯r</header>

F鋖tet f錼 inneh錶la flera tecken, som motsvarar olika k鰎niv錯r. Exempelvis
betyder <tt>123</tt> att processen ska k鰎as ig錸g vid k鰎niv錯rna 1, 2 och 3.

<p>N鋜 k鰎niv錸 f鰎 systemet 鋘dras kommer alla processer som inte har
definierats f鰎 den nya k鰎niv錸 att sl錽 ihj鋖, f鰎st med <tt>SIGTERM</tt>
och d鋜efter med <tt>SIGKILL</tt>.

<hr>
   0707010006c0ea000041ed0000000000000001000000023ac03c0100000000000000200000000000000000000000000000001500000003reloc/inittab/images  0707010006c0eb000081a40000000000000002000000013ac038b000000128000000200000000000000000000000000000001e00000003reloc/inittab/images/icon.gif GIF89a0 0      !By Gimp Ostie! !
  ,    0 0  鐢彥隧蹿嫵藜嗏 鎵f膔籞<,琰y狨b篲@xlBd捳S&廜慗刡(牾m窱D磑EyJ_涭pu鉁;閱宑分脟gWw(戺孺茦&gYb预!呎筆塂趐(櫊f釜	J(奻*媸&0槴麤rU7z$W17h\漹9h椼9=8斮i}銫藏v线0犂侟
  ;0707010006930a000081e40000000000000002000000013ac038b0000005fe000000200000000000000000000000000000001800000003reloc/inittab/index.cgi   #!/usr/local/bin/perl
# index.cgi
# Display a list of run-levels and the actions that are run at boot and
# shutdown time for each level

require './inittab-lib.pl';
&header( $text{'inittab_title'}, "", "index", 1, 1, undef );
%access = &get_module_acl();

print(
"<p><hr><p><table border width=\"100%\">",
  "<tr ", $tb, ">",
	"<td><b>", &hlink( $text{ 'inittab_id' }, "id" ), "</b></td>",
	"<td><b>", &hlink( $text{ 'inittab_runlevels' }, "runlevels" ), "</b></td>",
	"<td><b>", &hlink( $text{ 'inittab_action' }, "action" ), "</b></td>",
	"<td><b>", &hlink( $text{ 'inittab_process' }, "process" ), "</b></td>",
  "</tr>" );

open( INITTAB, $config{ 'inittab_file' } );
foreach ( <INITTAB> )
{
  s/\r|\n//g;
  s/#.*$//g;
  s/\/\/.*$//g;

  if( $_ )
  {
	local ( $id, $raw_runlevels, $action, $process ) = split( /:/ ), $runlevels = "";
	$process = $text{ 'inittab_none' } if( !$process );
    if( $raw_runlevels )
	{
	  foreach $runlevel ( split( //, $raw_runlevels ) )
	  {
		    $runlevels .= $runlevel. ", ";
	  }
	  chop( $runlevels ); chop( $runlevels );
	} else {
	  $runlevels = $text{ 'inittab_none' };
	}

	$action = "kbdrequest" if ($action eq "kbrequest");
	$action = "inittab_". $action;
	print(
  "<tr ", $cb, ">",
	"<td><a href=\"edit_inittab.cgi?id=", $id, "\">", $id, "</a></td>",
	"<td>", $runlevels, "</td>",
	"<td>", $text{ $action }, "</td>",
	"<td>", $process, "</td>",
  "</tr>" );
  }
}
print(
"</table>",
"<a href=new_inittab.cgi>", $text{ 'inittab_new' }, "</a><p><hr>" );

&footer( "/", $text{'index'} );
  0707010006930b000081e40000000000000002000000013ac038b000000592000000200000000000000000000000000000001d00000003reloc/inittab/inittab-lib.pl  #!/usr/local/bin/perl

do "../web-lib.pl";

&init_config();
%access = &get_module_acl();
$| = 1;

sub p_link
{
    my ( $dest, $text ) = @_;
    return "<a href=\"". $dest. "\">". $text. "</a>";
}

sub p_radio
{
    my ( $name, $checked, @list ) = @_;
    local ($out, $size, $i);
    $size = @list; $i = 0;

    do
    {
	$out .= " <input type=radio name=".$name." value=".$list[$i];
	$out .= " checked" if( $checked eq $list[$i++] );
	$out .="> ".$list[$i++];
    } while( $i < $size );

    return $out;
}

sub p_entry
{
    my ( $name, $value, $size ) = @_;
    my $q = $_[1] =~ /'/ ? "\"" : "'";

    $size ? return "<input name=". $name. " size=". $size." value=$q". $value."$q>" : return "<input name=". $name. " value=$q". $value."$q>";
}

sub p_select_wdl
{
    my ( $name, $selected, @list ) = @_;
    local $size = @list, $i = 0, $out = " <select name=".$name.">";
    do
    {
	$out .= "<option name=".$name." value=".$list[$i];
	$out .= " selected" if( $selected eq $list[$i++] );
	$out .= ">".$list[$i++];
    } while( $i < $size );
    $out .= "</select>";

    return $out;
}

sub p_select
{
    my ( $name, $selected, @list ) = @_;
    local (@newlist, $item);

    foreach $item ( @list )
    {
	push( @newlist, $item, $item );
    }

    p_select_wdl( $name, $selected, @newlist );
}

sub p_button
{
    my ( $name, $value ) = @_;
    return "<input type=submit name=". $name. " value=\"". $value. "\">";
}
  0707010006d68f000041ed0000000000000001000000023ac03c0200000000000000200000000000000000000000000000001300000003reloc/inittab/lang    0707010006d690000081a40000000000000002000000013ac038b000000539000000200000000000000000000000000000001600000003reloc/inittab/lang/de inittab_title=SysV Init Konfiguration
inittab_new=Erstellen einen neuen Init Prozess
inittab_id=Name
inittab_runlevels=Ausf&uuml;hrungs Level
inittab_action=Aktion
inittab_process=Prozess
inittab_none=Keiner
inittab_respawn=Neu starten
inittab_wait=Warten
inittab_once=Einmal im Level
inittab_boot=Beim Booten
inittab_bootwait=Beim Booten, warte bis Beendigung
inittab_off=Tue nichts
inittab_ondemand=Immer wenn in A, B, C
inittab_initdefault=Nach dem Booten
inittab_sysinit=W&auml;hrend des Bootens
inittab_powerwait=Beim Stromausfall
inittab_powerfail=Beim Stromausfall ohne warten
inittab_powerokwait=Stromversorgung ist wiederhergestellt
inittab_powerfailnow=Stromversagen
inittab_ctrlaltdel=Strg-Alt-Entf
inittab_kbdrequest=Spezieller Tastenkombination
inittab_return=Inittab Index

edit_inittab_err=Sie haben keine Berechtigung, einen Prozess zu bearbeiten
edit_inittab_title=Prozess $1 bearbeiten
edit_inittab_details=Prozess Details
edit_inittab_del=L&ouml;schen
edit_inittab_save=Speichern

new_inittab_err=Sie haben keine Berechtigung, einen neuen Prozess anzulegen
new_inittab_title=Neuer Prozess

save_inittab_err=Sie haben keine Berechtigung, einen Prozess zu speichern
save_inittab_noid=Fehler, es wurde kein Name f&uuml;r den Prozess eingegeben
save_inittab_already=Fehler, der angegebene Prozessname ist bereits vergeben
   0707010006d691000081a40000000000000002000000013ac038b000000513000000200000000000000000000000000000001600000003reloc/inittab/lang/en inittab_title=SysV Init Configuration
inittab_new=Create a new init process
inittab_id=Name
inittab_runlevels=Execution Level
inittab_action=Action
inittab_process=Process
inittab_none=None
inittab_respawn=Respawn
inittab_wait=Wait
inittab_once=Once time at level
inittab_boot=Boot time
inittab_bootwait=Boot time, wait until termination
inittab_off=Do nothing
inittab_ondemand=Whenever in A, B, C
inittab_initdefault=After system boot
inittab_sysinit=During system boot
inittab_powerwait=Power goes down
inittab_powerfail=Power goes down whitout waiting
inittab_powerokwait=Power is restored
inittab_powerfailnow=Power fail
inittab_ctrlaltdel=Ctrl-Alt-Del
inittab_kbdrequest=Special key combination
inittab_return=inittab index

edit_inittab_err=Your not allowed to edit a process
edit_inittab_title=Edit Process $1
edit_inittab_details=Process Details
edit_inittab_del=Delete
edit_inittab_save=Save

new_inittab_err=Your not allowed to create a new process
new_inittab_title=New Process

save_inittab_err=Your not allowed to save a process
save_inittab_noid=Error, no name process entered
save_inittab_already=Error, the name process already exist

log_modify=Modified init process $1
log_rename=Renamed init process $1 to $2
log_create=Created init process $1
log_delete=Deleted init process $1

 0707010006d692000081a40000000000000002000000013ac038b0000005b7000000200000000000000000000000000000001600000003reloc/inittab/lang/es inittab_title=Configuraci髇 Init de SysV
inittab_new=Crear un nuevo proceso de init
inittab_id=Nombre
inittab_runlevels=Nivel de Ejecuci髇
inittab_action=Acci髇
inittab_process=Proceso
inittab_none=Ninguno
inittab_respawn=Reproducir
inittab_wait=Esperar
inittab_once=Una vez por nivel
inittab_boot=En el arranque
inittab_bootwait=En el arranque, esperar hasta que termine
inittab_off=No hacer nada
inittab_ondemand=Cuando sea dentro de A, B, C
inittab_initdefault=Tras el arranque del sistema
inittab_sysinit=Durante el arranque del sistema
inittab_powerwait=Apagado de Corriente
inittab_powerfail=Apagado de Corriente sin esperar
inittab_powerokwait=Restauraci髇 de Corriente
inittab_powerfailnow=Fallo de Corriente
inittab_ctrlaltdel=Ctrl-Alt-Supr
inittab_kbrequest=Combinaci髇 especial de tecla
inittab_return=韓dice de inittab

edit_inittab_err=No est醩 autorizado a editar un proceso
edit_inittab_title=Editar Proceso $1
edit_inittab_details=Detalles del Proceso
edit_inittab_del=Borrar
edit_inittab_save=Salvar

new_inittab_err=No est醩 autorizado a crear un nuevo proceso
new_inittab_title=Nuevo Proceso

save_inittab_err=No est醩 autorizado a salvar un proceso
save_inittab_noid=Error, no se ha digitado nombre de proceso
save_inittab_already=Error, ya existe el nombre del poceso

log_modify=Modificado proceso $1 de inicio
log_rename=Renombrado proceso de inicio $1 por $2
log_create=Creado proceso de inicio $1
log_delete=Borrado proceso de inicio $1

 0707010006d693000081a40000000000000002000000013ac038b00000058b000000200000000000000000000000000000001600000003reloc/inittab/lang/fr inittab_title=Processus d'Initialisation
inittab_new=Cr閑r un nouveau processus
inittab_id=Nom (unique)
inittab_runlevels=Niveau(x) d'ex閏ution
inittab_action=Action
inittab_process=Processus
inittab_none=Aucun
inittab_respawn=Red閙arre apr鑣 阾re termin
inittab_wait=Attend son ex閏ution dans le niveau
inittab_once=Une seule fois dans le niveau
inittab_boot=Au d閙arrage
inittab_bootwait=Au d閙arrage et init l'attend
inittab_off=Rien faire
inittab_ondemand=N'importe quand dans le niveau
inittab_initdefault=Apr鑣 le d閙arrage
inittab_sysinit=Durant le d閙arrage
inittab_powerwait=Quand l'alimentation d閒aille
inittab_powerfail=Quand l'alimentation d閒aille, sans attendre
inittab_powerokwait=Quand l'alimentation revient
inittab_powerfailnow=Quand l'alimentation s'arr阾e
inittab_ctrlaltdel=Ctrl-Alt-Del
inittab_kbdrequest=Combinaison sp閏iale de touches
inittab_return=index de l'action de d閙arrage et d'arr阾

edit_inittab_err=Vous n'阾es pas autoris  editer un processus
edit_inittab_title=蒬iter le Processus $1
edit_inittab_details=D閠ails du Processus
edit_inittab_del=Supprimer
edit_inittab_save=Enregistrer

new_inittab_err=Vous n'阾es pas autoris  cr閑r un nouveau processus
new_inittab_title=Nouveau Processus

save_inittab_err=Vous n'阾es pas autoris  enregistrer un processus
save_inittab_noid=Erreur, aucun nom de processus d'entr
save_inittab_already=Erreur, le nom de processus existe d閖
 0707010006d694000081a40000000000000002000000013ac038b000000560000000200000000000000000000000000000001600000003reloc/inittab/lang/pl inittab_title=Konfiguracja inita (System V)
inittab_new=Utw髍z nowy proces inita
inittab_id=Nazwa
inittab_runlevels=Poziom
inittab_action=Akcja
inittab_process=Proces
inittab_none=痑den
inittab_respawn=Odtw髍z po zako馽zeniu
inittab_wait=Czekaj
inittab_once=Jednorazowo na poziomie
inittab_boot=Podczas startu
inittab_bootwait=Podczas startu, czekaj na zako馽zenie
inittab_off=Nic nie r骲
inittab_ondemand=Kiedykolwiek na poziomie A, B, C
inittab_initdefault=Domy秎ny poziom
inittab_sysinit=Podczas startu systemu
inittab_powerwait=Zanik zasilania
inittab_powerfail=Zanik zasilania, nie czeka
inittab_powerokwait=Powr髏 zasilania
inittab_powerfailnow=Brak zasilania
inittab_ctrlaltdel=Ctrl-Alt-Del
inittab_kbdrequest=Specjalna kombinacja klawiszy
inittab_return=tablicy inittaba

edit_inittab_err=Nie masz uprawnie do zmiany proces體
edit_inittab_title=Zmie proces $1
edit_inittab_details=Dane procesu
edit_inittab_del=Usu
edit_inittab_save=Zachowaj

new_inittab_err=Nie masz uprawnie do tworzenia nowych proces體
new_inittab_title=Nowy proces

save_inittab_err=Nie masz uprawnie do zachowania procesu
save_inittab_noid=B潮d, nie podano nazwy procesu
save_inittab_already=B潮d, ta nazwa procesu ju istnieje

log_modify=Zmieniono proces inita $1
log_rename=Zmieniono nazw procesu inita $1 na $2
log_create=Utworzono proces inita $1
log_delete=Usuni阾o proces inita $1

0707010006d695000081a40000000000000002000000013ac038b0000004f4000000200000000000000000000000000000001900000003reloc/inittab/lang/ru_RU  inittab_powerfailnow=厌铋 镨蜞龛
inittab_runlevels=羽钼屙 蔓镱腠屙
inittab_process=橡铞羼
inittab_powerwait=悟觌屙桢 镨蜞龛
inittab_ondemand=橡 磬骖驿屙梃  A, B, C
inittab_none=湾
new_inittab_title=皖恹 镳铞羼
inittab_return=戾睨 桧桷栲腓玎蝾疣
edit_inittab_save=杨躔囗栩
edit_inittab_title=绣溧牝桊钼囗桢 橡铞羼襦 $1
inittab_sysinit=骂 怵屐 耱囵蜞 耔耱屐
save_inittab_already=硒栳赅, 镳铞羼  蜞觇 桁屙屐 箧 耋耱怏弪
inittab_wait=捂桎囗桢
inittab_powerokwait=骂耨蜞眍怆屙桢 镨蜞龛
save_inittab_err=锣 礤 疣琊屮屙 耦躔囗螯 镳铞羼
inittab_kbdrequest=扬弼栲朦磬 觐灬桧圉 觌噔桫
inittab_bootwait=橡 耱囵蝈, 驿囹 铌铐鬣龛
inittab_once=配桧铈潲 磬 箴钼礤
edit_inittab_del=愉嚯栩
inittab_ctrlaltdel=Ctrl-Alt-Del
inittab_new=杨玟囹 眍恹 镳铞羼 桧桷栲腓玎鲨
inittab_respawn=襄疱玎矬耜
inittab_action=腻轳蜮桢
save_inittab_noid=硒栳赅, 礤 忖邃屙 桁 镳铞羼襦
new_inittab_err=锣 礤 疣琊屮屙 耦玟噔囹 眍恹 镳铞羼
edit_inittab_details=相疣戾蝠 镳铞羼襦 桧桷栲腓玎鲨
inittab_initdefault=项耠 耱囵蜞 耔耱屐
inittab_title=暑眙桡箴圉 SysV 软桷栲腓玎蝾疣 (Init)
inittab_id=褥
inittab_boot=橡 耱囵蝈
inittab_powerfail=悟觌屙桢 镨蜞龛 徨 铈桎囗
inittab_off=丸麇泐 礤 溴豚螯
edit_inittab_err=锣 礤 疣琊屮屙 疱溧牝桊钼囹 镳铞羼
0707010006d696000081a40000000000000002000000013ac038b0000004f7000000200000000000000000000000000000001900000003reloc/inittab/lang/ru_SU  inittab_title=胂纹汕找撩裳 SysV 槲擅闪躺诹韵伊 (Init)
inittab_new=笙谀猎 蜗踪 幸厦庞 晌擅闪躺诹蒙
inittab_id=橥
inittab_runlevels=跻献盼 髻邢涛盼裳
inittab_action=渑视宰膳
inittab_process=鹨厦庞
inittab_none=钆
inittab_respawn=鹋遗诹姓铀
inittab_wait=镏赡廖膳
inittab_once=迥晌现馁 瘟 找献闻
inittab_boot=鹨 釉烈耘
inittab_bootwait=鹨 釉烈耘, 帜猎 纤衔蘖紊
inittab_off=钌夼窍 闻 呐塘载
inittab_ondemand=鹨 瘟窒帜盼缮  A, B, C
inittab_initdefault=鹣犹 釉烈粤 由釉磐
inittab_sysinit=飨 滓磐 釉烈粤 由釉磐
inittab_powerwait=镌颂擂盼膳 猩粤紊
inittab_powerfail=镌颂擂盼膳 猩粤紊 屡 现赡廖裳
inittab_powerokwait=飨佑粤蜗滋盼膳 猩粤紊
inittab_powerfailnow=舐鲜 猩粤紊
inittab_ctrlaltdel=Ctrl-Alt-Del
inittab_kbdrequest=笮琶闪特瘟 讼吐晌撩裳 颂磷邵
inittab_return=团卫 晌擅闪躺诹韵伊

edit_inittab_err=髁 闻 伊谝袍盼 遗牧嗽梢献猎 幸厦庞
edit_inittab_title=蚺牧嗽梢献廖膳 鹨厦庞恿 $1
edit_inittab_details=鹆伊团砸 幸厦庞恿 晌擅闪躺诹蒙
edit_inittab_del=跄撂稍
edit_inittab_save=笙纫廖稍

new_inittab_err=髁 闻 伊谝袍盼 酉谀磷猎 蜗踪 幸厦庞
new_inittab_title=钕踪 幸厦庞

save_inittab_err=髁 闻 伊谝袍盼 酉纫廖言 幸厦庞
save_inittab_noid=镗陕肆, 闻 鬃拍盼 赏 幸厦庞恿
save_inittab_already=镗陕肆, 幸厦庞  粤松 赏盼磐 罩 诱菖釉渍旁
 0707010006d697000081a40000000000000002000000013ac038b000000543000000200000000000000000000000000000001600000003reloc/inittab/lang/sv inittab_title=Startinst鋖lningar f鰎 SysV
inittab_new=Skapa en ny init-process
inittab_id=Processnamn
inittab_runlevels=Niv f鰎 utf鰎ande
inittab_action=Agera
inittab_process=Process
inittab_none=Ingen
inittab_respawn=Forts鋞t
inittab_wait=V鋘ta
inittab_once=En g錸g p niv
inittab_boot=Vid start
inittab_bootwait=Vid start, v鋘ta p avslutning
inittab_off=G鰎 ingenting
inittab_ondemand=Alltid vid A, B, C
inittab_initdefault=P standardniv
inittab_sysinit=Under systemstart
inittab_powerwait=Vid str鰉avbrott
inittab_powerfail=Vid str鰉avbrott, utan dr鰆sm錶
inittab_powerokwait=D str鰉men kommer tillbaka
inittab_powerfailnow=Vid UPS-svikt
inittab_ctrlaltdel=Ctrl-Alt-Del
inittab_kbdrequest=Speciell tangentkombination
inittab_return=inittab-index

edit_inittab_err=Du f錼 inte 鋘dra processer
edit_inittab_title=膎dra process $1
edit_inittab_details=Uppgifter om process
edit_inittab_del=Ta bort
edit_inittab_save=Spara

new_inittab_err=Du f錼 inte skapa en ny process
new_inittab_title=Ny process

save_inittab_err=Du f錼 inte spara processer
save_inittab_noid=Fel! Du har inte angivit n錱ot namn f鰎 processen
save_inittab_already=Fel! Det finns redan en process med detta namn

log_modify=Modifierade init-process $1
log_rename=Bytte namn p init-process $1 till $2
log_create=Skapadeinit-process $1
log_delete=Tog bort init-process $1
 0707010006d698000081a40000000000000002000000013ac038b0000005b8000000200000000000000000000000000000001600000003reloc/inittab/lang/tr inittab_title=SysV A琮l Yap齦and齬mas
inittab_new=Yeni bir a琮l iemi olu⺶ur
inittab_id=輘im
inittab_runlevels=莂lma Seviyesi
inittab_action=Ne zaman yap齦s齨
inittab_process=蔺lem
inittab_none=Hi鏱iri
inittab_respawn=莖k say齞a 黵etildi餴nde(respawn)
inittab_wait=Bekleme
inittab_once=Seviyede bir kere
inittab_boot=A琮lta
inittab_bootwait=A琮lta, yok edilinceye kadar
inittab_off=Hi鏱ir㧐y yapma
inittab_ondemand=A, B, C'de her zaman
inittab_initdefault=Sistem a琮ld齥tan sonra
inittab_sysinit=Sistem a琮l s齬as齨da
inittab_powerwait=G kapat齦齬ken
inittab_powerfail=G beklemeden kapat齦d齨da
inittab_powerokwait=G yeniden d鼁enlendi餴nde
inittab_powerfailnow=G dt黱de
inittab_ctrlaltdel=Ctrl-Alt-Del
inittab_kbdrequest=謟el tu kombinasyonu
inittab_kbrequest=謟el tu kombinasyonu
inittab_return=inittab indeksi

edit_inittab_err=Bir iemi de餴⺶irmek i鏸n izininiz yoktur
edit_inittab_title=蔺lem $1'i De餴⺶ir
edit_inittab_details=蔺lem Ayr齨t齦ar
edit_inittab_del=Sil
edit_inittab_save=Kaydet

new_inittab_err=Yeni bir iem olu⺶urmak i鏸n izininiz yoktur
new_inittab_title=Yeni 蔺lem

save_inittab_err=bir iem kaydetmek i鏸n izininiz yoktur
save_inittab_noid=Hata, iem ismi girilmedi
save_inittab_already=Hata, iem ismi her zaman mevcut

log_modify=A琮l iemi $1 de餴⺶irildi
log_rename=A琮l iemi $1, $1 olarak yeniden isimlendirildi
log_create=A琮l iemi $1 olu⺶uruldu
log_delete=A琮l iemi $1 silindi

0707010006d699000081a40000000000000002000000013ac038b00000041f000000200000000000000000000000000000001900000003reloc/inittab/lang/zh_CN  inittab_title=SysV 初始化配置
inittab_new=创建一个新的初始化过程
inittab_id=名字
inittab_runlevels=运行等级
inittab_action=操作
inittab_process=过程
inittab_none=无
inittab_respawn=重新产生
inittab_wait=等待
inittab_once=一次计时,在等级
inittab_boot=引导时间
inittab_bootwait= 引导时间,等待到结束
inittab_off=取消
inittab_ondemand=无论何时在A,B,C中
inittab_initdefault=系统引导后
inittab_sysinit=系统引导期间
inittab_powerwait=关闭电源
inittab_powerfail=无等待地关闭电源
inittab_powerokwait=电源恢复
inittab_powerfailnow=电源失败
inittab_ctrlaltdel=Ctrl-Alt-Del
inittab_kbdrequest=特殊组合键
inittab_return=inittab 检索

edit_inittab_err=您不能编辑过程
edit_inittab_title=编辑过程 $1
edit_inittab_details=过程详述
edit_inittab_del=删除
edit_inittab_save=存储

new_inittab_err=您不能创建新过程
new_inittab_title=新过程

save_inittab_err=您不能存储一个过程
save_inittab_noid=错误,没输入过程名
save_inittab_already=错误,过程名已存在

log_modify=已更新的初始化过程 $1
log_rename=已将过程 $1 该名为 $2
log_create=创建初始化过程 $1
log_delete=删除初始化过程 $1
 0707010006d69a000081a40000000000000002000000013ac038b0000003c9000000200000000000000000000000000000001e00000003reloc/inittab/lang/zh_TW.Big5 inittab_title=SysV ╰参币笆舱篈
inittab_new=ミ穝币笆祘
inittab_id=嘿
inittab_runlevels=磅︽糷
inittab_action=笆よΑ
inittab_process=币笆祘
inittab_none=礚
inittab_respawn=璴ネ
inittab_wait=单
inittab_once=磅︽Ω
inittab_boot=秨诀
inittab_bootwait=秨诀, 单挡
inittab_off=ぃ暗ㄆ
inittab_ondemand=ぃ阶 A, B, C
inittab_initdefault=╰参秨诀
inittab_sysinit=秨诀祘い
inittab_powerwait=ア筿方
inittab_powerfail=ア筿方, ぃ单
inittab_powerokwait=筿方確
inittab_powerfailnow=筿方ア
inittab_ctrlaltdel=穢秨诀 (Ctrl-Alt-Del)
inittab_kbdrequest=疭龄舱
inittab_return=inittab ま

edit_inittab_err=眤ぃ砆す砛絪胯祘
edit_inittab_title=絪胯祘 $1
edit_inittab_details=祘冈灿戈
edit_inittab_del=埃
edit_inittab_save=纗

new_inittab_err=眤ぃ砆す砛ミ穝祘
new_inittab_title=穝祘

save_inittab_err=眤ぃ砆す砛纗祘
save_inittab_noid=岿粇, ⊿Τ块祘嘿
save_inittab_already=岿粇, 祘嘿竒
   0707010006930c000081a40000000000000002000000013ac038b0000002d0000000200000000000000000000000000000001c00000003reloc/inittab/log_parser.pl   # log_parser.pl
# Functions for parsing this module's logs

require './inittab-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p) = @_;
if ($action eq 'modify' && $p->{'oldid'} ne $object) {
	return &text('log_modify', "<tt>$p->{'oldid'}</tt>",
				   "<tt>$object</tt>");
	}
elsif ($action eq 'modify') {
	return &text('log_modify', "<tt>$object</tt>");
	}
elsif ($action eq 'create') {
	return &text('log_create', "<tt>$object</tt>");
	}
elsif ($action eq 'delete') {
	return &text('log_delete', "<tt>$object</tt>");
	}
else {
	return undef;
	}
}

0707010006930d000081a40000000000000002000000013ac038b000000239000000200000000000000000000000000000001a00000003reloc/inittab/module.info name=Inittab
desc_fr=Processus d'initialisation SysV
desc_pt=Configura玢o de Inicializa玢o SysV
desc_tr=SysV A琮l Yap齦and齬mas
desc_es=Configuraci髇 Init de SysV
desc_sv=Startinst鋖lningar f鰎 SysV
desc_ru_SU=胂纹汕找撩裳 SysV 槲擅闪躺诹韵伊
desc_pl=Konfiguracja inita (System&nbsp;V)
category=system
os_support=solaris redhat-linux debian-linux suse-linux hpux slackware-linux unixware openserver open-linux turbo-linux
desc_zh_TW.Big5=SysV ╰参币笆舱篈
desc=SysV Init Configuration
risk=high
desc_zh_CN=SysV 初始化配置
desc_ru_RU=暑眙桡箴圉 SysV 软桷栲腓玎蝾疣
   0707010006930e000081e40000000000000002000000013ac038b000000808000000200000000000000000000000000000001e00000003reloc/inittab/new_inittab.cgi #!/usr/local/bin/perl

require "./inittab-lib.pl";

&ReadParse();

&header( &text( 'new_inittab_title', $in{ 'id' } ), "", "index", 1, 1, undef );

print(
"<form action=save_inittab.cgi><p>",
"<table border width=\"100%\">",
    "<tr ", $tb, ">",
        "<td><b>", $text{ 'edit_inittab_details' }, "</b></td>",
    "</tr><tr ", $cb, ">",
	"<td>",
	    "<table width=\"100%\">",
    		"<tr>",
        	    "<td>", &hlink( $text{ 'inittab_id' }, "id" ), "</td>",
        	    "<td>", &p_entry( "id", "", 4 ), "</td>",
    		"</tr><tr>",
		    "<td>", $text{ 'inittab_runlevels' }, "</td>",
		    "<td><input type=checkbox name=0 value=1>0 <input type=checkbox name=1 value=1>1 <input type=checkbox name=2 value=1>2 <input type=checkbox name=3 value=1>3 <input type=checkbox name=4 value=1>4 <input type=checkbox name=5 value=1>5 <input type=checkbox name=6 value=1>6 <input type=checkbox name=a value=1>A <input type=checkbox name=b value=1>B <input type=checkbox name=c value=1>C</td>",
		"</tr><tr>",
    		    "<td>", $text{ 'inittab_action' }, "</td>",
    		    "<td>", &p_select_wdl( "action", "", ( "respawn", $text{ 'inittab_respawn' }, "wait", $text{ 'inittab_wait' }, "once", $text{ 'inittab_once' }, "wait", $text{ 'inittab_wait' }, "ondemand", $text{ 'inittab_ondemand' }, "initdefault", $text{ 'inittab_initdefault' }, "sysinit", $text{ 'inittab_sysinit' }, "powerwait", $text{ 'inittab_powerwait' }, "powerfail", $text{ 'inittab_powerfail' }, "powerokwait", $text{ 'inittab_powerokwait' }, "powerfailnow", $text{ 'inittab_powerfailnow' }, "ctraltdel", $text{ 'inittab_ctrlaltdel' }, "kbdrequest", $text{ 'inittab_kbdrequest' } ) ), "</td>",
		"</tr><tr>",
    		    "<td>", $text{ 'inittab_process' }, "</td>",
    		    "<td>", &p_entry( "process", "" ), "</td>",
		"</tr>",
	    "</table>",
	"</td>",
    "</tr>",
"</table>",
"<table width=\"100%\">",
    "<tr>",
	"<td align=left>", &p_button( "button", $text{ 'edit_inittab_save' } ), "</td>",
    "</tr>",
"</table></form>" );

&footer( "/inittab/index.cgi", $text{ 'inittab_return' } );
0707010006930f000081e40000000000000002000000013ac038b0000005c1000000200000000000000000000000000000001f00000003reloc/inittab/save_inittab.cgi    #!/usr/local/bin/perl

require "./inittab-lib.pl";

&ReadParse();

&error( $text{ 'save_inittab_err' } ) if( !$access{ 'inittab' } );
&error( $text{ 'save_inittab_noid' } ) if( !$in{ 'id' } );

&lock_file($config{ 'inittab_file' });
local $file = &read_file_lines( $config{ 'inittab_file' } ), $number = -1, $i = 0;

foreach ( @{ $file } )
{
    $line = $_;
    $line =~ s/\r|\n//g;
    $line =~ s/#.*$//g;
    $line =~ s/\/\/.*$//g;

    if( $_ )
    {
        local ( $id ) = split( /:/ );
        $number = $i if( $id eq $in{ 'oldid' } );

	if( $in{ 'id' } ne $in{ 'oldid' } && $id eq $in{ 'id' } )
	{
	    &error( $text{ 'save_inittab_already' } );
	}
    }
    $i++;
}

if( $in{ 'button' } eq $text{ 'edit_inittab_del' } )
{
    splice( @$file, $number, 1 );
} elsif( $in{ 'button' } eq $text{ 'edit_inittab_save' } )
{
    local $new = $in{ 'id' }. ":";
    foreach ( 0..6, "a", "b", "c" )
    {
	$new .= $_ if( $in{ $_ } eq "1" );
    }
    $new .= ":". $in{ 'action' }. ":". $in{ 'process' };

    if( $number == -1 )
    {
	push( @$file, $new );
    }
    else
    {
	$file -> [$number] = $new;
    }
}

&flush_file_lines();
&unlock_file($config{ 'inittab_file' });
if ( $in{ 'button' } eq $text{ 'edit_inittab_del' }) {
	&webmin_log("delete", "inittab", $in{ 'oldid' }, \%in);
	}
elsif ( $number == -1 ) {
	&webmin_log("create", "inittab", $in{ 'id' }, \%in);
	}
else {
	&webmin_log("modify", "inittab", $in{ 'id' }, \%in);
	}

&redirect( "/inittab/index.cgi" );
   0707010000bb4a000081e40000000000000002000000013ac0388600000af0000000200000000000000000000000000000001800000003reloc/install-module.pl   #!/usr/local/bin/perl
# install-module.pl
# Installs a webmin module in a .wbm file

# Check arguments
if (@ARGV > 2 || !@ARGV) {
	die "usage: install-module.pl <module.wbm> [config_directory]";
	}
$file = $ARGV[0];
$config = $ARGV[1] ? $ARGV[1] : "/etc/webmin";
-r $file || die "$file does not exist";
&read_file("$config/config", \%gconfig) ||
	die "$config is not a webmin config directory";
&read_file("$config/miniserv.conf", \%miniserv) ||
	die "Failed to read $config/miniserv.conf";
$root = $miniserv{'root'};
-d $root || die "Webmin directory $root does not exist";

# Check if the module file is valid
open(MOD, $file);
read(MOD, $buf, 2);
close(MOD);
if ($buf eq "\037\235") {
	$pre = "uncompress -c $file";
	}
elsif ($buf eq "\037\213") {
	$pre = "gunzip -c $file";
	}
else {
	$pre = "cat $file";
	}
$tar = `$pre | tar tf - 2>&1`;
die "Failed to untar $file : $tar" if ($?);
foreach $f (split(/\n/, $tar)) {
	if ($f =~ /^\.\/([^\/]+)\/(.*)$/ || $f =~ /^([^\/]+)\/(.*)$/) {
		$mods{$1}++;
		$hasfile{$1,$2}++;
		}
	}
foreach $m (keys %mods) {
	$hasfile{$m,"module.info"} || die "Mising module.info file in $file";
	}
%mods || die "$file contains no modules!";

# Delete existing modules
foreach $m (keys %mods) {
	system("rm -rf $root/$m 2>&1 >/dev/null") if ($m ne 'webmin');
	}

# Extract all the modules and update perl paths
$out = `$pre | (cd $root ; tar xf - 2>&1)`;
die "Failed to extract modules from $file : $out" if ($?);
open(PERL, "$config/perl-path");
chop($perl = <PERL>);
close(PERL);
@st = stat("$root/index.cgi");
foreach $m (keys %mods) {
	system("find $root/$m -name '*.cgi' | $perl $root/perlpath.pl $perl -");
	system("find $root/$m -name '*.pl' | $perl $root/perlpath.pl $perl -");
	system("chown -R $st[4]:$st[5] $root/$m");
	local %minfo;
	&read_file("$root/$m/module.info", \%minfo);
	$desc .= "Installed $minfo{'desc'} in $root/$m\n";
	}

# Copy module config files
$mods = join(' ', keys %mods);
system("$perl $root/copyconfig.pl $gconfig{'os_type'} $gconfig{'os_version'} $root $config $mods");

# Update ACL for the root user, or the first user in the ACL file
open(ACL, "$config/webmin.acl");
chop(@acl = <ACL>);
close(ACL);
foreach $a (@acl) {
	if ($a =~ /^(\S+):/ && ($1 eq 'root' || $1 eq 'admin')) {
		$a .= " $mods";
		$found = 1;
		last;
		}
	}
if (!$found) {
	$acl[0] .= " $mods";
	}
open(ACL, "> $config/webmin.acl");
foreach $a (@acl) {
	print ACL "$a\n";
	}
close(ACL);

# All done!
print $desc;

# read_file(file, &assoc, [&order], [lowercase])
# Fill an associative array with name=value pairs from a file
sub read_file
{
open(ARFILE, $_[0]) || return 0;
while(<ARFILE>) {
	s/\r|\n//g;
        if (!/^#/ && /^([^=]+)=(.*)$/) {
		$_[1]->{$_[3] ? lc($1) : $1} = $2;
		push(@{$_[2]}, $1) if ($_[2]);
        	}
        }
close(ARFILE);
return 1;
}
 
0707010000bb4b000081a40000000000000002000000013ac03af40000000c000000200000000000000000000000000000001300000003reloc/install-type    solaris-pkg
0707010006ee04000041ed0000000000000001000000023ac03c0400000000000000200000000000000000000000000000000b00000003reloc/lang    0707010006ee05000081a40000000000000002000000013ac0388600000c88000000200000000000000000000000000000000e00000003reloc/lang/de main_return=Zur&uuml;ck zu $1
main_homepage=Home Page
main_feedback=Feedback..
main_switch=Benutzer wechseln..
main_logout=Abmelden
main_version=Version $1 auf $2 ($3)
main_title=Webmin $1 auf $2 ($3)
main_none=Sie haben f&uuml;r kein Webmin Modul Zugriffsrechte.

category_servers=Server
category_hardware=Hardware
category_system=System
category_webmin=Webmin
category_net=Netzwerk
category_=Andere

header_webmin=Webmin Index
header_module=Modul Index
header_help=Hilfe..
header_config=Modul Konfiguration
header_servers=Webmin Server

index=Startseite
yes=Ja
no=Nein
save=Speichern
create=Erstellen
delete=L&ouml;schen
find=Finden
error=Fehler
modify=Modifizieren
reset=Reset
ok=OK
cancel=Abbruch

chooser_title1=W&auml;hle Datei..
chooser_title2=W&auml;hle Verzeichnis..
chooser_dir=Verzeichnis von $1
chooser_ok=Ok

users_title1=W&auml;hle Benutzer..
users_title2=W&auml;hle Benutzer..
users_sel=Gew&auml;hlte Benutzer
users_all=Alle Benutzer
users_ok=Ok
users_cancel=Abbrechen
users_clear=L鰏chen

groups_title1=W&auml;hle Gruppen..
groups_title2=W&auml;hle Gruppe..
groups_all=Alle Gruppen
groups_sel=Gew&auml;hlte Gruppen
groups_ok=Ok
groups_cancel=Abbrechen
groups_clear=L鰏chen

config_ecannot=Sie haben nicht die Berechtigung, die Konfiguration dieses Moduls zu &auml;ndern
config_title=Konfiguration
config_dir=F&uuml;r Modul $1
config_header=Konfigurierbare Einstellungen f&uuml;r $1
config_none=Keine
config_eaccess=Sie haben keine Berechtigung zum Zugriff auf dieses Modul

help_err=Fehler beim Anzeigen der Hilfe
help_epath=Fehlender Hilfe Pfad
help_efile=Fehler beim Lesen der Hilfe Datei $1
help_eheader=Fehlender &lt;header&gt; Teil
help_einclude=Fehler beim Einbinden von $1
help_eif=$1 schlug fehl : $2
help_eexec=$1 schlug fehl : $2

referer_title=Sicherheits-Warnung
referer_warn=<b>Warnung!</b> Webmin hat entdeckt, dass auf das Programm $2 von der URL $1 verwiesen wurde, welche ausserhalb des Webmin Server zu liegen scheint. Dies kann ein Versuch sein, ihren Server auszutricksen, um ein gef&auml;hrliches Kommando auszuf&uuml;hren.
referer_ok=Weitermachen mit dem Ausf&uuml;hren
referer_again=Diese Warnmeldung in der Zukunft nicht mehr anzeigen

session_header=Anmelden bei Webmin
session_mesg=Sie m&uuml;ssen einen Benutzernamen und ein Passwort zur Anmeldung am Webmin Server auf $1 eingeben.
session_user=Benutzername
session_pass=Passwort
session_login=Anmelden
session_clear=Zur&uuml;cksetzen
session_failed=Anmeldung fehlgeschlagen. Bitte versuchen Sie es noch einmal.
session_logout=Abmeldung erfolgreich. Benutzen Sie das nachfolgende Formular um sich ernneut anzumelden.
session_timed_out=Sitzung abgebrochen nach $1 Minuten ohne Aktivit&auml;t.

month_1=Januar
month_2=Februar
month_3=M&auml;rz
month_4=April
month_5=Mai
month_6=Juni
month_7=Juli
month_8=August
month_9=September
month_10=Oktober
month_11=November
month_12=Dezember

day_0=Sonntag
day_1=Montag
day_2=Dienstag
day_3=Mittwoch
day_4=Donnerstag
day_5=Freitag
day_6=Samstag

smonth_1=Jan
smonth_2=Feb
smonth_3=M鋜
smonth_4=Apr
smonth_5=Mai
smonth_6=Jun
smonth_7=Jul
smonth_8=Aug
smonth_9=Sep
smonth_10=Okt
smonth_11=Nov
smonth_12=Dez

sday_0=So
sday_1=Mo
sday_2=Di
sday_3=Mi
sday_4=Do
sday_5=Fr
sday_6=Sa

0707010006ee06000081a40000000000000002000000013ac0388600000ec2000000200000000000000000000000000000000e00000003reloc/lang/en main_return=Return to $1
main_homepage=Home Page
main_feedback=Feedback..
main_switch=Switch user..
main_logout=Logout
main_version=Version $1 on $2 ($3)
main_title=Webmin $1 on $2 ($3)
main_none=You do not have access to any Webmin modules.
main_skill=Skill level

category_servers=Servers
category_hardware=Hardware
category_system=System
category_webmin=Webmin
category_net=Networking
category_syslet=Syslets
category_=Others

header_webmin=Webmin Index
header_module=Module Index
header_help=Help..
header_config=Module Config
header_servers=Webmin Servers

index=index
yes=Yes
no=No
save=Save
create=Create
delete=Delete
find=Find
error=Error
default=Default
modify=Modify
reset=Reset
ok=OK
cancel=Cancel

chooser_title1=Choose File..
chooser_title2=Choose Directory..
chooser_dir=Directory of $1
chooser_ok=Ok

users_title1=Select Users..
users_title2=Select User..
users_sel=Selected Users
users_all=All Users
users_ok=Ok
users_cancel=Cancel
users_clear=Clear

groups_title1=Select Groups..
groups_title2=Select Group..
groups_all=All Groups
groups_sel=Selected Groups
groups_ok=Ok
groups_cancel=Cancel
groups_clear=Clear

config_ecannot=You are not allowed to configure this module
config_title=Configuration
config_dir=For module $1
config_header=Configurable options for $1
config_none=None
config_eaccess=You are not allowed to access this module

help_err=Failed to display help
help_epath=Missing or invalid help path
help_efile=Failed to read help file $1
help_eheader=Missing &lt;header&gt; section
help_einclude=Failed to include $1
help_eif=$1 failed : $2
help_eexec=$1 failed : $2

referer_title=Security Warning
referer_warn=<b>Warning!</b> Webmin has detected that the program $2 was linked to from the URL $1, which appears to be outside the Webmin server. This may be an attempt to trick your server into executing a dangerous command.
referer_warn_unknown=<b>Warning!</b> Webmin has detected that the program $1 was linked to from an unknown URL, which appears to be outside the Webmin server. This may be an attempt to trick your server into executing a dangerous command.
referer_ok=Continue executing Webmin program
referer_again=Don't show this warning in future.

session_header=Login to Webmin
session_mesg=You must enter a username and password to login to the Webmin server on $1.
session_user=Username
session_pass=Password
session_login=Login
session_clear=Clear
session_failed=Login failed. Please try again.
session_logout=Logout successful. Use the form below to login again.
session_timed_out=Session timed out after $1 minutes of inactivity.
session_save=Remember login permanently?

acl_root=Root directory for file chooser
acl_uedit=Users visible in user chooser
acl_uedit_all=All users
acl_uedit_none=No users
acl_uedit_only=Only users
acl_uedit_except=All except users
acl_uedit_uid=Users with UIDs in range
acl_uedit_group=Users with group
acl_gedit=Groups visible in group chooser
acl_gedit_all=All groups
acl_gedit_none=No groups
acl_gedit_only=Only groups
acl_gedit_except=All except groups
acl_gedit_gid=Groups with GIDs in range

month_1=January
month_2=February
month_3=March
month_4=April
month_5=May
month_6=June
month_7=July
month_8=August
month_9=September
month_10=October
month_11=November
month_12=December

day_0=Sunday
day_1=Monday
day_2=Tuesday
day_3=Wednesday
day_4=Thursday
day_5=Friday
day_6=Saturday

smonth_1=Jan
smonth_2=Feb
smonth_3=Mar
smonth_4=Apr
smonth_5=May
smonth_6=Jun
smonth_7=Jul
smonth_8=Aug
smonth_9=Sep
smonth_10=Oct
smonth_11=Nov
smonth_12=Dec

sday_0=Su
sday_1=Mo
sday_2=Tu
sday_3=We
sday_4=Th
sday_5=Fr
sday_6=Sa

emodule=Access denied : User $1 is not allowed to use the $2 module
elock_tries=Failed to lock file $1 after $2 minutes

skill_high=Expert
skill_medium=Intermediate
skill_low=Novice

  0707010006ee07000081a40000000000000002000000013ac038860000101f000000200000000000000000000000000000000e00000003reloc/lang/es main_return=Volver a $1
main_homepage=P醙ina Inicial
main_feedback=Comentarios...
main_switch=Cambiar usuario...
main_logout=Salir de login
main_version=Versi髇 $1 en $2 ($3)
main_title=Webmin $1 en $2 ($3)
main_none=No tienes acceso a ning鷑 m骴ulo de Webmin.
main_skill=Nivel de inteligencia

category_servers=Servidores
category_hardware=Hardware
category_system=Sistema
category_webmin=Webmin
category_net=Trabajando en Red
category_syslet=Conectores de Sistema
category_=Otros

header_webmin=蚽dice de Webmin
header_module=蚽dice de M骴ulo
header_help=Ayuda...
header_config=Configurar M骴ulo
header_servers=Servidores de Webmin

index=韓dice
yes=S
no=No
save=Salvar
create=Crear
delete=Borrar
find=Hallar
error=Error
default=Por defecto
modify=Modificar
reset=Limpiar
ok=Ok
cancel=Cancelar

chooser_title1=Seleccionar Archivo...
chooser_title2=Seleccionar Directorio...
chooser_dir=Directorio de $1
chooser_ok=Ok

users_title1=Seleccionar Usuarios...
users_title2=Seleccionar Usuario...
users_sel=Usuarios Seleccionados
users_all=Todos los Usuarios
users_ok=Ok
users_cancel=Cancelar
users_clear=Limpiar

groups_title1=Seleccionar Grupos...
groups_title2=Seleccionar Grupo...
groups_all=Todos los Grupos
groups_sel=Grupos Seleccionados
groups_ok=Ok
groups_cancel=Cancelar
groups_clear=Limpiar

config_ecannot=No est醩 autorizado a configurar este m骴ulo
config_title=Configuraci髇
config_dir=Para el m骴ulo $1
config_header=Opciones configurables para $1
config_none=Ninguna
config_eaccess=No est醩 autorizado a acceder a este m骴ulo

help_err=No puedo mostrar la ayuda
help_epath=Trayectoria de ayuda sin poner o inv醠ida
help_efile=No puedo leer archivo de ayuda $1
help_eheader=Secci髇 de &lt;cabecera&gt; perdida
help_einclude=No puedo incluir $1
help_eif=$1 fall : $2
help_eexec=$1 fall : $2

referer_title=Aviso de Seguridad
referer_warn=<b>viso!</b> Webmin ha detectado que el programa $2 fue enlazado desde la direcci髇 (URL) $1, la cual parece estar fuera del servidor Webmin. Esto puede ser un intento de enga馻r a tu servidor y hacerle ejecutar un comando peligroso.
referer_warn_unknown=<b>viso!</b> Webmin ha detectado que el programa $1 fue enlazado desde una direcci髇 (URL) desconocida, la cual parece estar fuera del servidor Webmin. Esto puede ser un intento de enga馻r a tu servidor para que ejecute un comando peligroso.
referer_ok=Continuar ejecutando el programa Webmin
referer_again=No mostrar este aviso en el futuro.

session_header=Hacer login a Webmin
session_mesg=Debes de digitar un nombre de usuario y una clave de accesp para hacer login al servidor de en $1.
session_user=Nombre de usuario
session_pass=Clave de acceso
session_login=Hacer login
session_clear=Limpiar
session_failed=Fall el login. Por favor, prueba otra vez.
session_logout=Salida de login OK. Usa el formulario inferior para hacer login otra vez.
session_timed_out=La sesi髇 se termin tras $1 minutos de inactividad.

acl_root=Directorio ra韟 para selector de archivos
acl_uedit=Usuarios visibles en selector de usuarios
acl_uedit_all=Todos los usuarios
acl_uedit_only=S髄o los usuarios
acl_uedit_except=Todos excepto los usuarios
acl_uedit_uid=Usuarios con UIDs en rango
acl_uedit_group=Usuarios con grupo
acl_gedit=Grupos visibles en selector de grupo
acl_gedit_all=Todos los grupos
acl_gedit_only=S髄o los grupos
acl_gedit_except=Todos excepto los grupos
acl_gedit_gid=Grupos con GIDs en rango

month_1=Enero
month_2=Febrero
month_3=Marzo
month_4=Abril
month_5=Mayo
month_6=Junio
month_7=Julio
month_8=Agosto
month_9=Septiembre
month_10=Octubre
month_11=Noviembre
month_12=Diciembre

day_0=Domingo
day_1=Lunes
day_2=Martes
day_3=Mi閞coles
day_4=Jueves
day_5=Viernes
day_6=S醔ado

smonth_1=Ene
smonth_2=Feb
smonth_3=Mar
smonth_4=Abr
smonth_5=May
smonth_6=Jun
smonth_7=Jul
smonth_8=Ago
smonth_9=Sep
smonth_10=Oct
smonth_11=Nov
smonth_12=Dic

sday_0=Do
sday_1=Lu
sday_2=Ma
sday_3=Mi
sday_4=Ju
sday_5=Vi
sday_6=S

emodule=Acceso denegado: El usuario $1 no est autorizado a usar el m骴ulo $2
elock_tries=No pude bloquear el archivo $1 tras $2 minutos

skill_high=Experto
skill_medium=Intermedio
skill_low=Novicio

 0707010006ee08000081a40000000000000002000000013ac03886000008d6000000200000000000000000000000000000000e00000003reloc/lang/fr main_return=Retourner  $1
main_homepage=Site internet de :
main_homepage_webmin=Webmin
main_homepage_idealx=Idealx
main_contact:Ecrire  l'auteur:
main_feedback_webmin=Webmin
main_feedback_idealx=Idealx
main_switch=Changer d'utilisateur
main_version=Version $1 sur $2 ($3)
main_title=Webmin $1 sur $2 ($3)

category_servers=Serveurs
category_hardware=Mat閞iel
category_system=Syst鑝e
category_webmin=Webmin
category_=Autres

header_webmin=Index de Webmin
header_module=Index du Module
header_help=Aide
header_config=Configuration du Module
header_servers=Serveurs Webmin

index=l'index
yes=Oui
no=Non
save=Sauvegarder
create=Cr閑r
delete=Supprimer
find=Trouver
error=Erreur
default=D閒aut
modify=Modifier
reset=Reset
ok=OK
cancel=Annuler

chooser_title1=Choisir un fichier
chooser_title2=Choisir un r閜ertoire
chooser_dir=R閜ertoire de $1
chooser_ok=OK

users_title1=Choisir les utilisateurs
users_title2=Choisir l'utilisateur
users_sel=Utilisateurs choisis
users_all=Tous les utilisateurs
users_ok=OK
users_cancel=Annuler
users_clear=Effacer

groups_title1=Choisir les groupes
groups_title2=Choisir un groupe
groups_all=Tous les  groupes
groups_sel=Groupes choisis
groups_ok=OK
groups_cancel=Annuler
groups_clear=Effacer

config_ecannot=Vous n'阾es pas autoris  configurer ce module
config_title=Configuration
config_dir=du module $1
config_header=Options configurables de $1
config_none=Aucun
config_eaccess=Vous n'avez pas acc鑣  ce module

help_err=Impossible d'afficher l'aide
help_epath=Chemin d'aide manquant
help_efile=Impossible de lire le fichier d'aide $1
help_eheader=Section &lt;header&gt; manquante
help_einclude=Impossible d'inclure $1
help_eif=$1 impossible : $2
help_eexec=$1 impossible : $2

month_1=Janvier
month_2=F関rier
month_3=Mars
month_4=Avril
month_5=Mai
month_6=Juin
month_7=Juillet
month_8=Ao鹴
month_9=Septembre
month_10=Octobre
month_11=Novembre
month_12=D閏embre

day_0=Dimanche
day_1=Lundi
day_2=Mardi
day_3=Mercredi
day_4=Jeudi
day_5=Vendredi
day_6=Samedi

smonth_1=Janvier
smonth_2=F関rier
smonth_3=Mars
smonth_4=Avril
smonth_5=Mai
smonth_6=Juin
smonth_7=Juillet
smonth_8=Ao鹴
smonth_9=Septembre
smonth_10=Octobre
smonth_11=Novembre
smonth_12=D閏embre

sday_0=Di
sday_1=Lu
sday_2=Ma
sday_3=Me
sday_4=Je
sday_5=Ve
sday_6=Sa

  0707010006ee09000081a40000000000000002000000013ac0388600000847000000200000000000000000000000000000000e00000003reloc/lang/he main_return=珂屮 囔  $1
main_homepage=泱 
main_feedback=铢遽..
main_switch=溏祠 铢..
main_version=忾 $1 蜢 $2 ($3)
main_title=Webmin $1 蜢 $2 ($3)
main_none=嚅 礻 忾 祛邈屐轫  webmin.

category_servers=
category_hardware=珏铠
category_system=铗
category_webmin=Webmin
category_net=
category_=疱

header_webmin=Webmin Index
header_module=嚅疸黢 铄沐扉
header_help=蜴..
header_config=溻泺妃 铄沐扉
header_servers=Webmin 

index=嚅疸黢
yes=腼
no=爨
save=屮
create=鲥
delete=铉
find=玺
error=狎殇
default=狲轼 铉沆
modify=
reset=Reset
ok=OK
cancel=衢桢

chooser_title1=徵 麇狨..
chooser_title2=徵 鏖..
chooser_dir=轭 澉狯轫   $1
chooser_ok=嚅

users_title1=徵 铢..
users_title2=徵 铢..
users_sel=铢 疳瑛轫
users_all=腱 漕铢轫
users_ok=猷祆
users_cancel=衢桢
users_clear=瘅

groups_title1=徵 麽弼妃..
groups_title2=徵 麽弼..
groups_all=腱 澉徨鲥
groups_sel=Selected Groups
groups_ok=猷祆
groups_cancel=Cancel
groups_clear=Clear

config_ecannot=嚅 礻 澍 禊疱 帔 潸鲥  漕邈屐轫
config_title=屮
config_dir=祛邈屐  $1
config_header=圄彘妃 屮 祛邈屐  $1
config_none=祆
config_eaccess=囫屮 礻 焘 祛邈屐 

help_err=Failed to display help
help_epath=Missing help path
help_efile=Failed to read help file $1
help_eheader=Missing &lt;header&gt; section
help_einclude=Failed to include $1
help_eif=$1 failed : $2
help_eexec=$1 failed : $2

referer_title=噫澍 徼殓妃
referer_warn=<b>驿轼妃!</b> Webmin has detected that the program $2 was linked to from the URL $1, which appears to be outside the Webmin server. This may be an attempt to trick your server into executing a dangerous command.
referer_ok=Continue executing Webmin program
referer_again=囔 灬 扉 帔 漕彗 .

month_1=轲遴
month_2=翎帏
month_3=铠
month_4=圄
month_5=钹
month_6=殄痖
month_7=殄扉
month_8=噱忮耔
month_9=囔屐
month_10=噱麒遽
month_11=疱犷狲
month_12=珏

smonth_1=轲遴
smonth_2=翎帏
smonth_3=铠
smonth_4=圄
smonth_5=钹
smonth_6=殄痖
smonth_7=殄扉
smonth_8=噱忮耔
smonth_9=囔屐
smonth_10=噱麒遽
smonth_11=疱犷狲
smonth_12=珏

 0707010006ee0a000081a40000000000000002000000013ac0388600000d38000000200000000000000000000000000000000e00000003reloc/lang/hu # webmin-0.82/lang/hu
# Translated by <kissg@sztaki.hu>

main_return=Vissza $1
main_homepage=Webmin h醠髎zem
main_feedback=Visszajelz閟...
main_switch=Felhaszn醠髒醠t醩...
main_logout=Kil閜閟
main_version=Verzi髎z醡: $1. G閜: $2 ($3)
main_title=Webmin $1 a $2 ($3) g閜en
main_none=Egyetlen Webmin modulhoz sincs hozz醘閞閟ed

category_servers=Kiszolg醠髃
category_hardware=Hardver
category_system=Rendszer
category_webmin=Webmi&#110;
category_net=H醠髗at
category_=Egy閎

header_webmin=Webmin index
header_module=Modul index
header_help=Help...
header_config=Modul konfigur醠醩
header_servers=Webmin szerverek

index=az indexhez
yes=Igen
no=Nem
save=Ment閟
create=L閠rehoz醩
delete=T鰎l閟
find=Keres閟
error=Hiba
default=Szok醩os
modify=M骴os韙醩
# Nor 'ok' neither 'reset' is used in any situation
reset=Reset
ok=OK
cancel=M間sem

chooser_title1=V醠assz egy file-t
chooser_title2=V醠assz egy katal骻ust
chooser_dir=A $1 katal骻us
chooser_ok=Rendben

users_title1=Jel鰈j meg felhaszn醠髃at
users_title2=V醠assz egy felhaszn醠髏
users_sel=Kiv醠asztott felhaszn醠髃
users_all=Minden felhaszn醠
users_ok=Rendben
users_cancel=M間sem
users_clear=T鰎l閟

groups_title1=Jel鰈j meg csoportokat
groups_title2=V醠assz egy csoportot
groups_all=Minden csoport
groups_sel=Kiv醠asztott csoportok
groups_ok=Rendben
groups_cancel=M間sem
groups_clear=T鰎l閟

config_ecannot=Nincs jogod konfigur醠ni ezt a modult
config_title=Konfigur醕i
config_dir=A "$1" modul sz醡醨a
config_header=A "$1" modul konfigur醠hat opci骾
config_none=Nincs
config_eaccess=Nincs jogod hozz醘閞ni ehhez a modulhoz

help_err=Nem siker黮t megjelen韙eni a helpet
help_epath=Nincs be醠l韙va a PATH_INFO v醠toz
help_efile=Nem siker黮t olvasni a $1 file-t
help_eheader=Hi醤yzik a &lt;header&gt; r閟z
help_einclude=Nem siker黮t beilleszteni a $1 file-t
help_eif=$1 nem siker黮t: $2
help_eexec=$1 nem siker黮t: $2

referer_title=Biztons醙i riad
referer_warn=<b>Figyelem!</b> A Webmin 閟zrevette, hogy a $2 programot a $1 URL-en l関 dokumentumba b鷍tatott link r関閚 akarj醟 ind韙ani, ami kicsit gyan鷖, mert nem ezen a Webmin szerveren van. Meglehet, hogy ez valami tr黭k鰏 k韘閞let arra, hogy egy vesz閘yes program induljon el a szerveren.
referer_ok=Hajtsd v間re a k韛醤t programot!
referer_again=M醩kor nem k閞em ezt a figyelmeztet閟t

session_header=Bel閜閟 a Webminbe
session_mesg=Add meg az azonos韙骴at 閟 a jelszavadat a $1 Webmin szerverbe val bel閜閟hez
session_user=Azonos韙
session_pass=Jelsz
session_login=Bel閜閟
session_clear=T鰎l閟
session_failed=Sikertelen bel閜閟i k韘閞let. Pr骲醠d meg 鷍ra!
session_logout=Kil閜tet閟 v間rehajtva. 趈abb bel閜閟hez haszn醠d az al醔bi 鹯lapot!
session_timed_out=$1 perces t閠lens間 ut醤 a munkafolyamat megszak韙va.

acl_root=A file-men黚en l醫hat r閟zfa gy鰇ere
acl_uedit=A felhaszn醠髃 men黬閎en ki szerepljen?
acl_uedit_all=Minden felhaszn醠
acl_uedit_only=Csak a felsoroltak:
acl_uedit_except=Mindenki, kiv関e a felsoroltak:
acl_uedit_uid=A megadott UID tartom醤yba es felhaszn醠髃:
acl_uedit_group=A megadott csoportba tartoz felhaszn醠髃:
acl_gedit=A csoportok men黬閎en mi szerepeljen?
acl_gedit_all=Minden csoport
acl_gedit_only=Csak a felsoroltak:
acl_gedit_except=Mindegyik, kiv関e a felsoroltak:
acl_gedit_gid=A megadott GID tartom醤yba es felhaszn醠髃:
0707010006ee0b000081a40000000000000002000000013ac0388600000785000000200000000000000000000000000000000e00000003reloc/lang/it main_return=Ritorna a $1
main_homepage=Home Page
main_feedback=Feedback..
main_switch=Cambia utente..
main_version=Versione $1 su  $2 ($3)
main_title=Webmin $1 su $2 ($3)

category_servers=Servers
category_hardware=Hardware
category_system=Sistema
category_webmin=Webmin
category_net=Rete
category_=Altro

header_webmin=Indice Webmin
header_module=Indice dei Moduli
header_help=Aiuto..
header_config=Configurazione Moduli
header_servers=Webmin Servers

index=indice
yes=Si
no=No
save=Salva
create=Crea
delete=Elimina
find=Trova
error=Errore
default=Default
modify=Modifica
reset=Ripristina
ok=OK
cancel=Annulla

chooser_title1=Seleziona File..
chooser_title2=Seleziona Directory..
chooser_dir=Directory di $1
chooser_ok=Ok

users_title1=Seleziona Utenti..
users_title2=Seleziona Utente..
users_sel=Seleziona Utenti
users_all=Tutti gli Utenti
users_ok=Ok
users_cancel=Annulla
users_clear=Pulisci

groups_title1=Seleziona Gruppi..
groups_title2=Seleziona Gruppo..
groups_all=Tutti i Gruppi
groups_sel=Gruppi Selezionati
groups_ok=Ok
groups_cancel=Annulla
groups_clear=Pulisci

config_ecannot=Non hai i permessi per configurare questo modulo
config_title=Configurazione
config_dir=Per il modulo $1
config_header=Opzioni Configurabili per $1
config_none=Nessuno
config_eaccess=Non hai i permessi per accedere a questo modulo

help_err=Errore nella Visualizzazione dell'Help
help_epath=Percorso Help Mancante
help_efile=Errore nella lettura del file di help $1 
help_eheader=Manca la sezione &lt;header&gt;
help_einclude=Errore nell'inclusione di $1
help_eif=$1 Errore : $2
help_eexec=$1 Errore : $2

month_1=Gennaio
month_2=Febbraio
month_3=Marzo
month_4=Aprile
month_5=Maggio
month_6=Giugno
month_7=Luglio
month_8=Agosto
month_9=Settembre
month_10=Ottobre
month_11=Novembre
month_12=Dicembre

day_0=Domenica
day_1=Luned&igrave;
day_2=Marted&igrave;
day_3=Mercoled&igrave;
day_4=Gioved&igrave;
day_5=Venerd&igrave;
day_6=Sabato

   0707010006ee0c000081a40000000000000002000000013ac0388600000ed8000000200000000000000000000000000000001500000003reloc/lang/ja_JP.euc  main_return=$1に提る
main_homepage=ホ〖ムペ〖ジ
main_feedback=フィ〖ドバック..
main_switch=ユ〖ザの磊り仑え..
main_logout=ログアウト
main_version=Version $1 on $2 ($3)
main_title=Webmin $1 on $2 ($3)
main_none=あなたはどのWebminモジュ〖ルにもアクセスできません。
main_skill=祷窖レベル

category_servers=サ〖バ
category_hardware=ハ〖ドウェア
category_system=システム
category_webmin=Webmin
category_net=ネットワ〖ク
category_syslet=Syslets
category_=その戮

header_webmin=Webminインデックス
header_module=モジュ〖ルインデックス
header_help=ヘルプ..
header_config=モジュ〖ルの肋年
header_servers=Webminサ〖バ

index=インデックス
yes=はい
no=いいえ
save=瘦赂
create=侯喇
delete=猴近
find=浮瑚
error=エラ〖
default=デフォルト
modify=饯赖
reset=リセット
ok=OK
cancel=艰久

chooser_title1=ファイルの联买..
chooser_title2=ディレクトリの联买..
chooser_dir=$1のディレクトリ
chooser_ok=OK

users_title1=ユ〖ザの联买..
users_title2=ユ〖ザの联买..
users_sel=联买されているユ〖ザ
users_all=すべてのユ〖ザ
users_ok=OK
users_cancel=艰久
users_clear=久殿

groups_title1=グル〖プの联买..
groups_title2=グル〖プの联买..
groups_all=すべてのグル〖プ
groups_sel=联买されているグル〖プ
groups_ok=OK
groups_cancel=艰久
groups_clear=久殿

config_ecannot=あなたはこのモジュ〖ルを肋年することはできません
config_title=肋年
config_dir=モジュ〖ル$1脱
config_header=$1に簇して肋年材墙なオプション
config_none=なし
config_eaccess=あなたはこのモジュ〖ルにはアクセスできません

help_err=ヘルプを山绩できません
help_epath=ヘルプのパスが赂哼しないか、痰跟です
help_efile=ヘルプファイル$1が粕めません
help_eheader=&lt;header&gt;セクションがありません
help_einclude=$1をインクル〖ドできません
help_eif=$1は己窃しました : $2
help_eexec=$1は己窃しました : $2

referer_title=セキュリティに簇する焚桂
referer_warn=<b>焚桂!</b> Webminは、プログラム$2がWebminサ〖バ嘲のURL $1からリンクされていることを浮叫しました。あなたのサ〖バを褓して错副なコマンドを悸乖するように慌羹けようとしている悼いがあります。
referer_warn_unknown=<b>焚桂!</b> Webminは、プログラム$1がWebminサ〖バ嘲の稍汤なURLからリンクされていることを浮叫しました。あなたのサ〖バを褓して错副なコマンドを悸乖するように慌羹けようとしている悼いがあります。
referer_ok=このままWebminプログラムを悸乖する。
referer_again=肌搀からはこの焚桂を山绩しない。

session_header=Webminへのログイン
session_mesg=$1のWebminサ〖バにログインするには、ユ〖ザ叹とパスワ〖ドを掐蜗する涩妥があります。
session_user=ユ〖ザ叹
session_pass=パスワ〖ド
session_login=ログイン
session_clear=久殿
session_failed=ログインに己窃しました。もう办刨やりなおしてください。
session_logout=赖撅にログアウトしました。もう办刨ログインするには布のフォ〖ムを蝗ってください。
session_timed_out=$1尸粗拎侯しなかったため、セッションはタイムアウトしました。

acl_root=ファイル联买のル〖トディレクトリ
acl_uedit=ユ〖ザ联买箕に山绩されるユ〖ザ
acl_uedit_all=すべてのユ〖ザ
acl_uedit_only=ユ〖ザを嘎年:
acl_uedit_except=近嘲するユ〖ザ:
acl_uedit_uid=UID认跋:
acl_uedit_group=グル〖プで嘎年:
acl_gedit=グル〖プ联买箕に山绩されるグル〖プ
acl_gedit_all=すべてのグル〖プ
acl_gedit_only=グル〖プを嘎年:
acl_gedit_except=近嘲するグル〖プ:
acl_gedit_gid=GID认跋:

month_1=1奉
month_2=2奉
month_3=3奉
month_4=4奉
month_5=5奉
month_6=6奉
month_7=7奉
month_8=8奉
month_9=9奉
month_10=10奉
month_11=11奉
month_12=12奉

day_0=泣退泣
day_1=奉退泣
day_2=残退泣
day_3=垮退泣
day_4=腾退泣
day_5=垛退泣
day_6=炮退泣

smonth_1=1奉
smonth_2=2奉
smonth_3=3奉
smonth_4=4奉
smonth_5=5奉
smonth_6=6奉
smonth_7=7奉
smonth_8=8奉
smonth_9=9奉
smonth_10=10奉
smonth_11=11奉
smonth_12=12奉

sday_0=泣
sday_1=奉
sday_2=残
sday_3=垮
sday_4=腾
sday_5=垛
sday_6=炮

emodule=アクセスは雕容されました : ユ〖ザ$1は$2モジュ〖ルを网脱できません
elock_tries=$2尸沸册しましたが、ファイル$1をロックできませんでした

skill_high=较锡
skill_medium=面甸
skill_low=介看荚

0707010006ee1b000081e40000000000000002000000013ac0388600001015000000200000000000000000000000000000000e00000003reloc/lang/nl main_return=Terug naar $1
main_homepage=Thuis Page
main_feedback=Terugkoppeling..
main_switch=Wisselen gebruiker..
main_logout=Uitloggen
main_version=Versie $1 on $2 ($3)
main_title=Webmin $1 on $2 ($3)
main_none=U heeft geen toegang tot enige Webmin modules.
main_skill=Ervarings niveau

category_servers=Servers
category_hardware=Hardware
category_system=Systeem
category_webmin=Webmin
category_net=Netwerk
category_syslet=Syslets
category_=Overige

header_webmin=Webmin Index
header_module=Module Index
header_help=Help..
header_config=Module Configuratie
header_servers=Webmin Servers

index=index
yes=Ja
no=Nee
save=Opslaan
create=Maak aan
delete=Verwijder
find=Zoek
error=Fout
default=Standaard
modify=Wijzig
reset=Reset
ok=OK
cancel=Annuleren

chooser_title1=Kies Bestand..
chooser_title2=Kies Directory..
chooser_dir=Directory van $1
chooser_ok=Ok

users_title1=Selecteer Gebruikers..
users_title2=Selecteer Gebruiker..
users_sel=Geselecteerde Gebruikers
users_all=Alle Gebruikers
users_ok=Ok
users_cancel=Annuleer
users_clear=Maak Leeg

groups_title1=Selecteer Groepen..
groups_title2=Selecteer Groep..
groups_all=Alle Groepen
groups_sel=Geselecteerde Groepen
groups_ok=Ok
groups_cancel=Annuleer
groups_clear=Maak leeg

config_ecannot=U bent niet gemachtigd om deze module te configureren
config_title=Configuratie
config_dir=Voor module $1
config_header=Configureerbare opties voor $1
config_none=Geen
config_eaccess=U bent niet gemachtigd om deze module te gebruiken

help_err=Fout bij het tonen van de help
help_epath=missend of ongeldig help pad
help_efile=bout bij het lezen van het belpbestand $1
help_eheader=Missend &lt;header&gt; sectie
help_einclude=Fout bij het invoegen van $1
help_eif=Fout bij $1: $2
help_eexec=Fout bij $1: $2

referer_title=Beveiligings Waarschuwing
referer_warn=<b>Waarschuwing!</b> Webmin heeft ontdekt dat het programma $2 werd aangeroepen vanaf de URL $1, welke zich blijkbaar buiten de Webmin server bevind. Dit kan een poging zijn om uw server een mogelijk gevaarlijk commando te laten uitvoeren.
referer_warn_unknown=<b>Waarschuwing!</b> Webmin heeft ontdekt dat het programma $1 werdt aangeroepen vanaf een onbekende URL, welke zich blijkbaar buiten de Webmin server bevind. Dit kan een poging zijn om uw server een mogelijk gevaarlijk commando te laten uitvoeren.
referer_ok=Ga verder met het uitvoeren van het Webmin programma
referer_again=Toon mij deze waarschuwing in het vervolg niet meer.

session_header=Aanmelden bij Webmin
session_mesg=U moet een gebruikersnaam en een wachtwoord invoeren om u aan te melden bij de Webmin server op $1.
session_user=Gebruikersnaam
session_pass=Wachtwoord
session_login=Aanmelden
session_clear=Wissen
session_failed=Aanmelden mislukt. Probeer opnieuw.
session_logout=Afmelden succesvol. Gebruik het onderstaande formulier om u opnieuw aan te melden.
session_timed_out=Sessie beeindigd na $1 minuten zonder activiteit.

acl_root=Root directory voor bestandskiezer
acl_uedit=Gebruikers onzichtbaar in gebruikerskiezer
acl_uedit_all=Alle gebruikers
acl_uedit_only=Alleen gebruikers
acl_uedit_except=Alle behalve de gebruikers
acl_uedit_uid=Gebruikers met UIDs in bereik
acl_uedit_group=gebruikers met groep
acl_gedit=Groepen onzichtbaar in groepenkiezer
acl_gedit_all=Alle groepen
acl_gedit_only=Alleen de groepen
acl_gedit_except=Alle behalve de groepen
acl_gedit_gid=Groepen met GIDs in bereik

month_1=januari
month_2=februari
month_3=maart
month_4=april
month_5=mei
month_6=juni
month_7=juli
month_8=august
month_9=september
month_10=oktober
month_11=november
month_12=december

day_0=zondag
day_1=maandag
day_2=dinsdag
day_3=woensdag
day_4=donderdag
day_5=vrijdag
day_6=zaterdag

smonth_1=jan
smonth_2=febr
smonth_3=mrt
smonth_4=apr
smonth_5=mei
smonth_6=jun
smonth_7=jul
smonth_8=aug
smonth_9=sep
smonth_10=okt
smonth_11=nov
smonth_12=dec

sday_0=zo
sday_1=ma
sday_2=di
sday_3=wo
sday_4=do
sday_5=vr
sday_6=za

emodule=Toegang geweigerd : Gebruiker $1 is niet bevoegd om module $2 te gebruiken
elock_tries=Fout bij het vesleutelen van bestand $1 na $2 minuten

skill_high=Expert
skill_medium=Gevorderde
skill_low=Beginner

   0707010006ee1c000081a40000000000000002000000013ac03886000007d6000000200000000000000000000000000000000e00000003reloc/lang/no main_return=G tillbake til $1
main_homepage=Hjemeside
main_feedback=Bytte bruker ...
main_switch=Bytt bruker ...
main_version=Versjon $1 p $2 ($3)
main_title=Webmin $1 p $2 ($3)
main_none=Du har ikke tilgang til noen Webminmoduler.

category_servers=Servere
category_hardware=Maskinvare
category_system=System
category_webmin=Webmin
category_net=Nettverk
category_=Andre

header_webmin=Webmin Index
header_module=Modulindex
header_help=Hjelp ...
header_config=Modulkonfigurering
header_servers=Webminservere

index=index
yes=Ja
no=Nei
save=Lagre
create=Opprett
delete=Slett
find=S鴎
error=Feil
default=Default
modify=Endre
reset=Nullstill
ok=OK
cancel=Avbryt

chooser_title1=Velg fil ...
chooser_title2=Velg katalog ...
chooser_dir=Katalog for $1
chooser_ok=OK

users_title1=Velg brukere ...
users_title2=Velg bruker ...
users_sel=Valgte brukere
users_all=Alle brukere
users_ok=OK
users_cancel=Avbryt
users_clear=Nullstill

groups_title1=Velg grupper ...
groups_title2=Velg grupp ...
groups_all=Alle grupper
groups_sel=Valgte grupper
groups_ok=OK
groups_cancel=Avbryt
groups_clear=Nullstill

config_ecannot=Du f錼 ikke lov til  konfigurere dette modul
config_title=Konfigurering
config_dir=For modul $1
config_header=Konfigurerbar instillninger for $1
config_none=Ingen
config_eaccess=Du f錼 ingen tilgang til denne modul

help_err=Hjelp kunne ikke vises
help_epath=Manglende eller ugyldige hjelpbane
help_efile=Kunne ikke lese hjelpfilen for $1
help_eheader=Seksjon &lt;header&gt; mangler
help_einclude=Det gick ikke  ta med $1
help_eif=$1 misslykket : $2
help_eexec=$1 misslykket : $2

referer_title=Sikkerhetsadvarsel
referer_warn=<b>Advarsel!</b> Webmin har oppdaget at URL $1 linken til programmet $2, seer ut til  vare utenf鴕 Webminserveren. Dette kan vare ett fors鴎 p  lure din server til  utf鴕e ett farligt kommando. 
referer_ok=Fortsetter  kj鴕e Webminprogrammet
referer_again=Ikke vise dette advarsel igjen.
  0707010006ee1d000081a40000000000000002000000013ac0388600000ff4000000200000000000000000000000000000000e00000003reloc/lang/pl main_return=Powr髏 do $1
main_homepage=Strona g丑wna
main_feedback=Poczta do serwisu..
main_switch=Prze潮cz u縴tkownika..
main_logout=Wyloguj si
main_version=Wersja $1 na $2 ($3)
main_title=Webmin $1 na $2 ($3)
main_none=Nie masz prawa dost阷u do 縜dnego z modu丑w Webmina.
main_skill=Poziom umiej阾no禼i

category_servers=Serwery
category_hardware=Sprz阾
category_system=System
category_webmin=Webmin
category_net=Sie
category_syslet=Syslet
category_=Inne

header_webmin=Indeks Webmina
header_module=Indeks modu硊
header_help=Pomoc..
header_config=Konfiguracja modu硊
header_servers=Serwery Webmina

index=indeksu
yes=Tak
no=Nie
save=Zachowaj
create=Utw髍z
delete=Usu
find=Znajd
error=B潮d
default=Domy秎nie
modify=Modyfikuj
reset=Kasuj
ok=OK
cancel=Rezygnuj

chooser_title1=Wybierz zbi髍..
chooser_title2=Wybierz kartotek..
chooser_dir=Zawarto舵 $1
chooser_ok=OK

users_title1=Wybierz u縯kownik體..
users_title2=Wybierz u縴tkownika..
users_sel=Wybrani u縴tkownicy
users_all=Wszyscy u縴tkownicy
users_ok=OK
users_cancel=Rezygnuj
users_clear=Czy舵

groups_title1=Wybierz grupy..
groups_title2=Wybierz grup..
groups_all=Wszystkie grupy
groups_sel=Wybrane grupy
groups_ok=OK
groups_cancel=Rezygnuj
groups_clear=Czy舵

config_ecannot=Nie masz uprawnie do konfiguracji tego modu硊
config_title=Konfiguracja
config_dir=modu硊 $1
config_header=Konfigurowalne opcje modu硊 $1
config_none=Brak
config_eaccess=Nie masz uprawnie dost阷u do tego modu硊

help_err=Nie mog wy秝ietli pomocy
help_epath=Nie podano lub podano niopoprawn 禼ie縦 dost阷u do pomocy
help_efile=Nie mog przeczyta zbioru pomocy $1
help_eheader=Brak sekcji &lt;header&gt;
help_einclude=Nie moge w潮czy $1
help_eif=$1 b潮d : $2
help_eexec=$1 b潮d : $2

referer_title=Uwaga niebezpiecze駍two!
referer_warn=<b>Uwaga!</b> Webmin wykry, 縠 program $2 jest dowi眤any do URL-a $1 znajduj眂ego si poza serwerem Webmina. Mo縠 to by pr骲a podst阷nego zmuszenia twojego serwera do wykonania niebezpiecznego polecenia.
referer_warn_unknown=<b>Uwaga!</b> Webmin wykry, 縠 program $1 jest dowi眤any do nieznanego URL-a znajduj眂ego si poza serwerem Webmina. Mo縠 to by pr骲a podst阷nego zmuszenia twojego serwera do wykonania niebezpiecznego polecenia.
referer_ok=Kontynuuj wykonywanie programu Webmin
referer_again=Nie pokazuj tego ostrze縠nia w&nbsp;przysz硂禼i.

session_header=Logowanie do Webmina
session_mesg=Musisz poda nazw u縴tkownika i&nbsp;has硂, aby zalogowa si do serwera Webmina na $1.
session_user=Nazwa u縴tkownika
session_pass=Has硂
session_login=Zaloguj si
session_clear=Wyczy舵
session_failed=Nie uda硂 si zalogowa. Spr骲uj ponownie.
session_logout=Logowanie zako馽zone pomy秎nie. U縴j poni縮zego formularza, aby zalogowa si ponownie.
session_timed_out=Sesja przeterminowana po $1 minutach braku aktywno禼i.
session_save=Pami阾a logowanie ca硑 czas?

acl_root=Katalog g丑wny dla wyboru pliku
acl_uedit=U縴tkownicy widoczni przy wyborze u縴tkownika
acl_uedit_all=Wszyscy
acl_uedit_none=痑den
acl_uedit_only=Wybrani
acl_uedit_except=Wszyscy opr骳z
acl_uedit_uid=U縴tkownicy o&nbsp;UID-ach z&nbsp;zakresu
acl_uedit_group=U縴tkownicy o&nbsp;grupie
acl_gedit=Grupy widoczne przy wyborze grupy
acl_gedit_all=Wszystkie
acl_gedit_none=痑dna
acl_gedit_only=Wybrane
acl_gedit_except=Wszystkie opr骳z
acl_gedit_gid=Grupy o&nbsp;GID-ach z&nbsp;zakresu

month_1=Stycze
month_2=Luty
month_3=Marzec
month_4=Kwiecie
month_5=Maj
month_6=Czerwiec
month_7=Lipiec
month_8=Sierpie
month_9=Wrzesie
month_10=Pa糳ziernik
month_11=Listopad
month_12=Grudzie

day_0=Niedziela
day_1=Poniedzia砮k
day_2=Wtorek
day_3=oda
day_4=Czwartek
day_5=Pi眛ek
day_6=Sobota

smonth_1=Sty
smonth_2=Lut
smonth_3=Mar
smonth_4=Kwi
smonth_5=Maj
smonth_6=Cze
smonth_7=Lip
smonth_8=Sie
smonth_9=Wrz
smonth_10=Pa
smonth_11=Lis
smonth_12=Gru

sday_0=Ni
sday_1=Po
sday_2=Wt
sday_3=
sday_4=Cz
sday_5=Pi
sday_6=So

emodule=Dost阷 zabroniony&nbsp;: U縴tkownik $1 nie ma praw do korzystania z&nbsp;modu硊 $2
elock_tries=Przez $2 minut nie uda硂 si zablokowa pliku $1

skill_high=Ekspert
skill_medium=Przeci阾ny
skill_low=Nowicjusz

0707010006ee42000081a40000000000000002000000013ac03886000006e0000000200000000000000000000000000000000e00000003reloc/lang/pt main_return=Voltar a $1
main_homepage=Home Page
main_feedback=Coment醨ios..
main_switch=Trocar utilizador..
main_version=Vers鉶 $1 em servidor $2 ($3)
main_title=Webmin $1 em servidor $2 ($3)

header_webmin=蚽dex do Webmin
header_module=蚽dex do M骴ulo
header_help=Ajuda..
header_config=Configura玢o do M骴ulo
header_servers=Servidores Webmin

index=韓dex
yes=Sim
no=N鉶
save=Guardar
create=Criar
delete=Apagar
find=Procurar
error=Erro

chooser_title1=Escolher Ficheiro..
chooser_title2=Escolher Direct髍io..
chooser_dir=Direct髍io de $1
chooser_ok=Ok

users_title1=Seleccionar Utilizadores..
users_title2=Seleccionar Utilizador..
users_sel=Utilizadores Seleccionados
users_all=Todos os Utilizadores
users_ok=Ok
users_cancel=Cancelar
users_clear=Limpar

groups_title1=Seleccionar Grupos..
groups_title2=Seleccionar Grupo..
groups_all=Todos os Grupos
groups_sel=Grupos Seleccionados
groups_ok=Ok
groups_cancel=Cancelar
groups_clear=Limpar

config_ecannot=Voc n鉶 est autorizado para configurar este m骴ulo
config_title=Configura玢o
config_dir=Para o m骴ulo $1
config_header=Op珲es configur醰eis para $1
config_none=Nenhum
config_eaccess=Voc n鉶 est autorizado para aceder a este m骴ulo

help_err=Erro ao mostrar a ajuda
help_epath=Falta o caminho para o ficheiro de ajuda
help_efile=Erro ao ler o ficheiro de ajuda $1
help_eheader=Falta a  &lt;header&gt; sec玢o
help_einclude=Erro ao incluir $1
help_eif=$1 falhou : $2
help_eexec=$1 falhou : $2

month_1=Janeiro
month_2=Fevereiro
month_3=Mar鏾
month_4=Abril
month_5=Maio
month_6=Junho
month_7=Julho
month_8=Agosto
month_9=Setembro
month_10=Outubro
month_11=Novembro
month_12=Dezembro

day_0=Domingo
day_1=Segunda-Feira
day_2=Ter鏰-Feira
day_3=Quarta-Feira
day_4=Quinta-Feira
day_5=Sexta-Feira
day_6=S醔ado

0707010006ee43000081a40000000000000002000000013ac0388600000f53000000200000000000000000000000000000001100000003reloc/lang/ru_RU  groups_sel=蔓狃囗睇 灭箫稃
groups_clear=西桉蜩螯
main_feedback=翔蝈..
chooser_dir=枢蜞腩 $1
header_servers=彦疴屦 Webmin
config_dir=碾 祛潴 $1
main_switch=襄疱觌栩 磬 镱朦珙忄蝈..
users_cancel=悟戾龛螯
no=湾
header_config=暑眙桡箴圉 填潴
users_title1=蔓徨痂蝈 项朦珙忄蝈脲..
users_title2=蔓徨痂蝈 项朦珙忄蝈..
month_10=侮狃
month_11=皖狃
month_12=腻赅狃
main_homepage=念爨 羊疣龛鲟
config_eaccess=锣 礤 疣琊屮屙 漕耱箫  溧眄铎 祛潴膻
chooser_ok=橡钿铍骅螯
help_err=硒栳赅 镳 恹珙忮 镱祛
yes=泥
delete=愉嚯栩
month_1=唔忄瘘
month_2=藻怵嚯
month_3=锑痱
month_4=里疱朦
groups_ok=橡钿铍骅螯
month_5=锑
help_epath=悟耋蝰蜮箦 矬螯  镱祛
month_6=叁睃
month_7=叁朦
month_8=棱泱耱
month_9=彦眚狃
main_return=骂玮疣  $1
config_none=湾
main_version=洛瘃 $1 磬 $2 ($3)
error=硒栳赅
users_all=埋 项朦珙忄蝈腓
day_0=骂耜疱皴睃
header_module=体睨 填潴
day_1=项礤溴朦龛
save=杨躔囗栩
day_2=买铕龛
day_3=佯邃
day_4=族蜮屦
header_help=项祛..
help_einclude=硒栳赅 镳 怅膻麇龛 $1
day_5=蝽桷
day_6=洋後铗
groups_all=埋 灭箫稃
config_ecannot=锣 礤 疣琊屮屙 磬耱疣桠囹 溧眄 祛潴朦
find=袜轵
chooser_title1=蔓徨痂蝈 脏殡..
groups_cancel=悟戾龛螯
chooser_title2=蔓徨痂蝈 枢蜞腩..
main_title=Webmin $1 磬 $2 ($3)
header_webmin=秒噔眍 体睨
users_ok=橡钿铍骅螯
help_efile=硒栳赅 镳 黩屙梃 羿殡 镱祛 $1
groups_title1=蔓徨痂蝈 灭箫稃..
help_eexec=$1 铠栳赅 : $2
groups_title2=蔓徨痂蝈 灭箫矬..
create=杨玟囹
users_sel=蔓狃囗睇 项朦珙忄蝈腓
help_eheader=悟耋蝰蜮箦 皴牿 &lt;header&gt;
config_title=暑眙桡箴圉
users_clear=西桉蜩螯
index=汶噔眍 戾睨
help_eif=$1 铠栳赅 : $2
config_header=袜耱疣桠噱禧 镟疣戾蝠 潆 $1
category_syslet=谚耠弪
category_system=谚耱屐
category_servers=彦疴屦
referer_again=湾 镱赅琨忄螯  镳邃箫疱驿屙桢  狍潴.
acl_gedit_all=埋 沭箫稃
acl_gedit=灭箫稃 忤滂禧  皴脲牝铕 沭箫
referer_warn=<b>峦忍劳扰!</b> Webmin 钺磬痼骅, 黩 镳钽疣祆 $2 猁豚 恹玮囗  URL $1, 觐蝾瘥 磬躅滂蝰 玎 镳邃咫囔 溧眄钽 皴疴屦. 蒡 祛驽 猁螯 镱稃蜿铋  玎耱噔栩 锣 皴疴屦 恹镱腠栩 铒囫眢 觐爨礓.
acl_uedit_all=埋 镱朦珙忄蝈腓
default=项 箪铍鬣龛
acl_uedit=项朦珙忄蝈腓 忤滂禧  皴脲牝铕 镱朦珙忄蝈脲
session_header=迈钿 磬 Webmin
acl_gedit_gid=灭箫稃  GID  滂囡噻铐
skill_low=皖忤鳎
elock_tries=硒栳赅 犭铌桊钼囗 羿殡 $1 镱 桉蝈麇龛 $2 扈眢
acl_uedit_group=项朦珙忄蝈腓  沭箫镱
acl_gedit_except=埋 沭箫稃, 牮铎
smonth_1=唔
smonth_2=藻
session_clear=西桉蜩螯
smonth_3=锑
smonth_4=里
smonth_5=锑
smonth_6=叁
smonth_7=叁
smonth_8=棱
smonth_9=彦
main_none=锣 礤 疣琊屮屙 漕耱箫 龛  钿眍祗 桤 祛潴脲 Webmin.
reset=厌痤
cancel=悟戾磬
session_login=迈钿
category_=橡铟邋
skill_high=蓐耧屦
main_logout=蔓躅
session_user=褥 镱朦珙忄蝈
referer_ok=橡钿铍骅螯 恹镱腠屙桢
emodule=念耱箫 玎镳妁屙: 项朦珙噔囹咫 $1 礤朦 桉镱朦珙忄螯 祛潴朦 $2
referer_title=橡邃箫疱驿屙桢  磬痼龛 徨珙镟耥铖蜩
referer_warn_unknown=<b>峦忍劳扰!</b> Webmin 钺磬痼骅, 黩 镳钽疣祆 $2 猁豚 恹玮囗  礤珥嚓铎钽 URL $1, 觐蝾瘥 磬躅滂蝰 玎 镳邃咫囔 溧眄钽 皴疴屦. 蒡 祛驽 猁螯 镱稃蜿铋 玎耱噔栩 锣 皴疴屦 恹镱腠栩 铒囫眢 觐爨礓.
acl_uedit_except=埋 镱朦珙忄蝈腓, 牮铎
smonth_10=侮
smonth_11=皖
smonth_12=腻
sday_0=埋
sday_1=享
sday_2=买
sday_3=佯
sday_4=昨
sday_5=向
sday_6=厌
modify=如戾龛螯
acl_uedit_only=翌朦觐 镱朦珙忄蝈腓
session_mesg=蔓 漕腈睇 忖羼蜩 桁 镱朦珙忄蝈  镟痤朦 潆 怩钿 疱汨耱疣鲨 磬 皴疴屦 Webmin, 磬 $1.
ok=橡钿铍骅螯
category_webmin=Webmin
skill_medium=扬弼栲腓耱
category_net=彦螯
acl_uedit_uid=项朦珙忄蝈腓  UID  滂囡噻铐
acl_root=暑痦邂铋 赅蜞腩 潆 皴脲牝铕 羿殡钼
session_pass=相痤朦
acl_gedit_only=翌朦觐 沭箫稃
session_logout=蔓躅 镳铠咫 篑镥. 骂耧铍箝蝈顸 纛痨铋 龛驽 潆 镱怛铕眍泐 忸溧.
main_skill=羽钼屙 铒
session_failed=硒栳赅 镳 疱汨耱疣鲨. 项镳钺箝蝈 妁.
category_hardware=吾铕箐钼囗桢
session_timed_out=亦殪囿 皴耨梃 镱耠 $1 扈眢 徨玟彘耱忤.
 0707010006ee44000081a40000000000000002000000013ac0388600000f65000000200000000000000000000000000000001100000003reloc/lang/ru_SU  main_return=飨谧伊  $1
main_homepage=湎土畚蜒 笤伊紊昧
main_feedback=鹕凵耘..
main_switch=鹋遗颂擂稍赜 瘟 邢特谙琢耘萄..
main_version=髋矣裳 $1 瘟 $2 ($3)
main_title=Webmin $1 瘟 $2 ($3)

header_webmin=缣磷蜗 砼卫
header_module=砼卫 硐恼萄
header_help=鹣拖葚..
header_config=胂纹汕找撩裳 硐恼萄
header_servers=笈易乓 Webmin

index=翘磷蜗 团卫
yes=淞
no=钆
save=笙纫廖稍
create=笙谀猎
delete=跄撂稍
find=盍试
error=镗陕肆

chooser_title1=髻屡疑耘 媪侍..
chooser_title2=髻屡疑耘 肓粤滔..
chooser_dir=肓粤滔 $1
chooser_ok=鹨夏咸稚载

users_title1=髻屡疑耘 鹣特谙琢耘膛..
users_title2=髻屡疑耘 鹣特谙琢耘萄..
users_sel=髻乱廖钨 鹣特谙琢耘躺
users_all=饔 鹣特谙琢耘躺
users_ok=鹨夏咸稚载
users_cancel=镌团紊载
users_clear=镛捎陨载

groups_title1=髻屡疑耘 缫招匈..
groups_title2=髻屡疑耘 缫招姓..
groups_all=饔 缫招匈
groups_sel=髻乱廖钨 缫招匈
groups_ok=鹨夏咸稚载
groups_cancel=镌团紊载
groups_clear=镛捎陨载

config_ecannot=髁 闻 伊谝袍盼 瘟釉伊勺猎 牧挝偈 拖恼特
config_title=胂纹汕找撩裳
config_dir=涮 拖恼萄 $1
config_header=盍釉伊勺僚唾 辛伊团砸 奶 $1
config_none=钆
config_eaccess=髁 闻 伊谝袍盼 南釉招  牧挝贤 拖恼汤

help_err=镗陕肆 幸 踪谙着 邢拖萆
help_epath=镌诱杂宰张 姓载  邢拖萆
help_efile=镗陕肆 幸 拊盼缮 屏侍 邢拖萆 $1
help_eheader=镌诱杂宰张 优嗣裳 &lt;header&gt;
help_einclude=镗陕肆 幸 姿汤夼紊 $1
help_eif=$1 羡陕肆 : $2
help_eexec=$1 羡陕肆 : $2

month_1=裎琢邑
month_2=媾滓撂
month_3=砹以
month_4=嵝遗特
month_5=砹
month_6=槔呜
month_7=槔特
month_8=嶙钦釉
month_9=笈卧崖邑
month_10=锼匝乱
month_11=钕崖邑
month_12=渑肆乱

day_0=飨铀遗优呜
day_1=鹣闻呐特紊
day_2=髟弦紊
day_3=笠拍
day_4=宰乓
day_5=鹧晕擅
day_6=笳侣显

acl_gedit=缫招匈 咨纳唾  优膛嗽弦 且招
acl_gedit_all=饔 且招匈
acl_gedit_except=饔 且招匈, 艘贤
acl_gedit_gid=缫招匈  GID  纳列邻衔
acl_gedit_only=粝特讼 且招匈
acl_root=胂椅抛鲜 肆粤滔 奶 优膛嗽弦 屏侍献
acl_uedit=鹣特谙琢耘躺 咨纳唾  优膛嗽弦 邢特谙琢耘膛
acl_uedit_all=饔 邢特谙琢耘躺
acl_uedit_except=饔 邢特谙琢耘躺, 艘贤
acl_uedit_group=鹣特谙琢耘躺  且招邢
acl_uedit_only=粝特讼 邢特谙琢耘躺
acl_uedit_uid=鹣特谙琢耘躺  UID  纳列邻衔
cancel=镌团瘟

category_=鹨限排
category_hardware=锫弦漳献廖膳
category_net=笈载
category_servers=笈易乓
category_syslet=笊犹旁
category_system=笊釉磐
category_webmin=Webmin

default=鹣 胀咸蘖紊
elock_tries=镗陕肆 绿纤梢献廖裳 屏侍 $1 邢 捎耘夼紊 $2 蜕握
emodule=湎釉招 诹幸泡盼: 鹣特谙磷猎盘 $1 闻特谘 捎邢特谙琢载 拖恼特 $2

main_logout=髻认
main_none=髁 闻 伊谝袍盼 南釉招 紊  夏蜗驼 哨 拖恼膛 Webmin.
main_skill=跻献盼 闲僭
modify=橼团紊载
ok=鹨夏咸稚载

referer_again=钆 邢肆谫琢载 茉 幸拍招遗帜盼膳  抡恼菖.
referer_ok=鹨夏咸稚载 踪邢涛盼膳
referer_title=鹨拍招遗帜盼膳  瘟艺叟紊 屡谙辛游嫌陨
referer_warn=<b>黝轫犷殄!</b> Webmin 下瘟艺稚, 拊 幸锨伊屯 $2 沦塘 踪谧廖  URL $1, 讼韵屹 瘟认纳杂 诹 幸拍盘镣 牧挝锨 优易乓.  拖峙 沦载 邢匈运鲜  诹釉磷稍 髁 优易乓 踪邢涛稍 闲劣握 讼土文.
referer_warn_unknown=<b>黝轫犷殄!</b> Webmin 下瘟艺稚, 拊 幸锨伊屯 $2 沦塘 踪谧廖  闻谖了贤锨 URL $1, 讼韵屹 瘟认纳杂 诹 幸拍盘镣 牧挝锨 优易乓.  拖峙 沦载 邢匈运鲜 诹釉磷稍 髁 优易乓 踪邢涛稍 闲劣握 讼土文.
reset=舐蚁

sday_0=饔
sday_1=鹞
sday_2=髟
sday_3=笠
sday_4=
sday_5=鹪
sday_6=舐

session_clear=镛捎陨载
session_failed=镗陕肆 幸 遗巧釉伊蒙. 鹣幸下帐耘 泡.
session_header=魅夏 瘟 Webmin
session_login=魅夏
session_logout=髻认 幸羡盘 沼信畚. 飨有咸刳帐耘迂 葡彝鲜 紊峙 奶 邢自弦蜗窍 紫牧.
session_mesg=髻 南讨钨 鬃庞陨 赏 邢特谙琢耘萄  辛蚁特 奶 兹夏 遗巧釉伊蒙 瘟 优易乓 Webmin, 瘟 $1.
session_pass=鹆蚁特
session_timed_out=袅释琳 优佑缮 邢犹 $1 蜕握 屡谀攀釉咨.
session_user=橥 邢特谙琢耘萄

skill_high=有乓
skill_low=钕咨蓿
skill_medium=笮琶闪躺釉

smonth_10=锼
smonth_11=钕
smonth_12=渑
smonth_1=裎
smonth_2=媾
smonth_3=砹
smonth_4=嵝
smonth_5=砹
smonth_6=槔
smonth_7=槔
smonth_8=嶙
smonth_9=笈
   0707010006ee45000081a40000000000000002000000013ac0388600000976000000200000000000000000000000000000000e00000003reloc/lang/sv main_return=G tillbaka till $1
main_homepage=Hemsida
main_feedback=Tyck till ...
main_switch=Ny anv鋘dare ...
main_version=Version $1 p $2 ($3)
main_title=Webmin $1 p $2 ($3)
main_none=Du har inte 錿komstr鋞tighet till n錱ra Webmin-moduler

category_servers=Servrar
category_hardware=H錼dvara
category_system=System
category_webmin=Webmin
category_net=N鋞verk
category_=講rigt

header_webmin=Webmin Index
header_module=Modulindex
header_help=Hj鋖p ...
header_config=Modulkonfigurering
header_servers=Webminservrar

index=index
yes=Ja
no=Nej
save=Spara
create=Skapa
delete=Radera
find=S鰇
error=Fel
default=Standard
modify=膎dra
reset=舤erst鋖l
ok=OK
cancel=Avbryt

chooser_title1=V鋖j fil ...
chooser_title2=V鋖j katalog ...
chooser_dir=Katalog f鰎 $1
chooser_ok=OK

users_title1=V鋖j anv鋘dare ...
users_title2=V鋖j anv鋘dare ...
users_sel=Valda anv鋘dare
users_all=Alla anv鋘dare
users_ok=OK
users_cancel=Avbryt
users_clear=Nollst鋖l

groups_title1=V鋖j grupper ...
groups_title2=V鋖j grupp ...
groups_all=Alla grupper
groups_sel=Valda grupper
groups_ok=OK
groups_cancel=Avbryt
groups_clear=Nollst鋖l

config_ecannot=Du f錼 inte konfigurera denna modul
config_title=Konfigurering
config_dir=F鰎 modul $1
config_header=Konfigurerbara inst鋖lningar f鰎 $1
config_none=Inga
config_eaccess=Du f錼 inte komma 錿 denna modul

help_err=Hj鋖p kunde inte visas
help_epath=Ingen s鰇v鋑 till hj鋖p
help_efile=Kunde inte l鋝a hj鋖pfilen f鰎 $1
help_eheader=Sektion &lt;header&gt; saknas
help_einclude=Det gick inte att ta med $1
help_eif=$1 misslyckades : $2
help_eexec=$1 misslyckades : $2

referer_title=S鋕erhetsvarning
referer_warn=<b>Varning!</b> Webmin har uppt鋍kt att URL $1 l鋘kar till programmet $2, som verkar vara utanf鰎 Webminservern. Detta kan vara ett f鰎s鰇 att lura din server att utf鰎a ett farligt kommando. 
referer_ok=Forts鋞t att k鰎a Webminprogrammet
referer_again=Visa inte denna varning igen

month_1=januari
month_2=februari
month_3=mars
month_4=april
month_5=maj
month_6=juni
month_7=juli
month_8=augusti
month_9=september
month_10=oktober
month_11=november
month_12=december

day_0=s鰊dag
day_1=m錸dag
day_2=tisdag
day_3=onsdag
day_4=torsdag
day_5=fredag
day_6=l鰎dag

smonth_1=jan
smonth_2=feb
smonth_3=mar
smonth_4=apr
smonth_5=maj
smonth_6=jun
smonth_7=jul
smonth_8=aug
smonth_9=sep
smonth_10=okt
smonth_11=nov
smonth_12=dec

sday_0=s
sday_1=m
sday_2=ti
sday_3=on
sday_4=to
sday_5=fr
sday_6=l

  0707010006ee46000081a40000000000000002000000013ac0388600000aee000000200000000000000000000000000000000e00000003reloc/lang/tr main_return=Geri D鰊 ($1) 
main_homepage=Ana Sayfa
main_feedback=Feedback..
main_switch=Kullan齝 De餴⺶ir..
main_logout=驱k
main_version=$2'de S黵黰 $1 ($3)
main_title=$2'de Webmin $1 ($3)
main_none=Herhangi bir webmin mod黮黱e ulaak i鏸n izininiz yoktur.

category_servers=Sunucular
category_hardware=Donan齧
category_system=Sistem
category_webmin=Webmin
category_net=A
category_=Di餰r

header_webmin=Webmin Indeksi
header_module=Mod黮 Indeksi
header_help=Yard齧..
header_config=Mod黮 Ayarlar
header_servers=Webmin Sunucular

index=Ana Sayfa
yes=Evet
no=Hay齬
save=Kaydet
create=Olu⺶ur
delete=Sil
find=Ara
error=Hata
default=Default
modify=De餴⺶ir
reset=Reset
ok=Tamam
cancel=輕tal

chooser_title1=Dosya Se..
chooser_title2=Dizin Se..
chooser_dir=$1'deki Dizin
chooser_ok=Tamam

users_title1=Kullan齝齦ar Se..
users_title2=Kullan齝 Se..
users_sel=Se鏸len Kullan齝齦ar
users_all=B黷黱 Kullan齝齦ar
users_ok=Tamam
users_cancel=輕tal
users_clear=Temizle

groups_title1=Gruplar Se..
groups_title2=Grubu Se..
groups_all=B黷黱 Gruplar
groups_sel=Se鏸len Gruplar
groups_ok=Tamam
groups_cancel=輕tal
groups_clear=Temizle

config_ecannot=Bu mod黮 ayarlamak i鏸n izin verilmedi
config_title=Ayarlama
config_dir=For module $1
config_header=$1'deki ayarlanabilir se鏴nekler
config_none=None
config_eaccess=Bu mod黮 ayarlamak i鏸n izin verilmedi

help_err=Yard齧齨 g鰎黱t黮enmesinde hata olu⺶u
help_epath=Yard齧 dosyas bulunamad
help_efile=$1'in yad齧 dosyas齨齨 okunmas齨da hata olu⺶u
help_eheader=Aranan &lt;ba齥&gt; b鰈黰
help_einclude=$1'in i鏴ri餴nde hata olu⺶u
help_eif=$1'de hata olu⺶u : $2
help_eexec=$1'de hata olu⺶u : $2

referer_title=G黺enlik Uyar齭
referer_warn=<b>Uyar!!!<b> Webmin program $2 program齨齨 $1 URL'sinden link ald齨 tespit etti.Bu makinenize dar齞an bir sald齬 giri㱮mi olabilir.
referer_ok=Webmin program齨 鏰lt齬maya devam et.
referer_again=Gelecekte bu uyar齳 bir daha g鰏terme.

session_header=Webmin'e Giri
session_mesg=$1'deki Webmin sunucusuna girmek i鏸n bir kullan齝 ad ve 㱮fre girmelisiniz.
session_user=Kullan齝 Ad
session_pass=辤fre
session_login=Giri
session_clear=Temizle
session_failed=Giri Bar齭齴. L黷fen tekrar deneyiniz.
session_logout=驱k bar齦. Takip eden formu doldurarak tekrar girebilirsiniz.
session_timed_out=Oturum $1 dakika iem yap齦mad齨da inaktif olacakt齬.

month_1=Ocak
month_2=辵bat
month_3=Mart
month_4=Nisan
month_5=May齭
month_6=Haziran
month_7=Temmuz
month_8=A饀stos
month_9=Eyl黮
month_10=Ekim
month_11=Kasim
month_12=Aralik

day_0=Pazar
day_1=Pazartesi
day_2=Sal
day_3=莂rmba
day_4=Per㧐mbe
day_5=Cuma
day_6=Cumartesi

smonth_1=Oca
smonth_2=辵b
smonth_3=Mar
smonth_4=Nis
smonth_5=May
smonth_6=Haz
smonth_7=Tem
smonth_8=A饀
smonth_9=Eyl
smonth_10=Eki
smonth_11=Kas
smonth_12=Ara

  0707010006ee47000081a40000000000000002000000013ac0388600000b35000000200000000000000000000000000000001100000003reloc/lang/zh_CN  main_return=回到$1
main_homepage=Webmin 网站
main_feedback=意见反馈..
main_switch=切换用户..
main_logout=退出
main_version=版本 $1 - 主机 $2 ($3)
main_title=Webmin $1 在 $2 ($3)
main_none=您没有权限访问任何 Webmin 模块
main_skill=技术等级

category_servers=服务
category_hardware=硬件
category_system=系统
category_webmin=Webmin
category_net=网络
category_syslet=Syslets
category_=其他

header_webmin=Webmin 管理首页
header_module=当前模块首页
header_help=帮助信息..
header_config=当前模块配置..
header_servers=Webmin服务器

index=首页
yes=是
no=否
save=保存
create=新建
delete=删除
find=查找
error=错误
default=默认值
modify=修改
reset=复原
ok=确认
cancel=取消

chooser_title1=选择文件..
chooser_title2=选择目录..
chooser_dir=$1 目录
chooser_ok=确认

users_title1=选择用户..
users_title2=选择用户..
users_sel=已选择的用户
users_all=所有用户
users_ok=确认
users_cancel=取消
users_clear=清除

groups_title1=选择组..
groups_title2=选择组..
groups_all=所有组
groups_sel=已选择的组
groups_ok=确认
groups_cancel=取消
groups_clear=清除

config_ecannot=你没有配置这个模块的权限
config_title=模块配置
config_dir=模块: $1
config_header=$1的配置选项
config_none=无
config_eaccess=你没有访问这个模块的权限

help_err=无法显示帮助
help_epath=丢失帮助路径
help_efile=无法读取帮助文件 $1
help_eheader=丢失 &lt;标题 &gt;章节 
help_einclude=包含 $1 失败
help_eif=$1 失败 : $2
help_eexec=$1 失败 : $2

referer_title=安全警告
referer_warn=<b>警告!</b> Webmin 探测到,程序 $2 已通过URL $1 联接,$1将作为外部的Webmin 服务器,这将试图引导您的服务器运行一个危险指令.
referer_ok=i继续运行 Webmin 程序
referer_again=将来不再显示该警告信息.

session_header=登录到 Webmin
session_mesg=在登陆 $1 上的 Webmin 服务器时您必须输入正确的用户名和口令.
session_user=用户名
session_pass=口令
session_login=登录
session_clear=清除
session_failed=登录失败.请再试一次.
session_logout=成功退出.如想再次登录,请使用下面的表单.
session_timed_out=对话已经超时(时间为 $1 分钟).

acl_root=文件选择器的根目录
acl_uedit=用户选择器中的现有用户
acl_uedit_all=所有用户
acl_uedit_only=特有的用户
acl_uedit_except=所有例外用户
acl_uedit_uid=范围内有 UID 的用户
acl_uedit_group=为组成员的用户
acl_gedit=组选择器中的现有组
acl_gedit_all=所有组
acl_gedit_only=特有的组
acl_gedit_except=所有例外组
acl_gedit_gid=范围内有 GID 的组

month_1=一月
month_2=二月
month_3=三月
month_4=四月
month_5=五月
month_6=六月
month_7=七月
month_8=八月
month_9=九月
month_10=十月
month_11=十一月
month_12=十二月

day_0=星期日
day_1=星期一
day_2=星期二
day_3=星期三
day_4=星期四
day_5=星期五
day_6=星期六

smonth_1=一月
smonth_2=二月
smonth_3=三月
smonth_4=四月
smonth_5=五月
smonth_6=六月
smonth_7=七月
smonth_8=八月
smonth_9=九月
smonth_10=十月
smonth_11=十一月
smonth_12=十二月

sday_0=日
sday_1=一
sday_2=二
sday_3=三
sday_4=四
sday_5=五
sday_6=六

emodule=拒绝访问 : 用户 $1 不允许用模块 $2

skill_high=专家
skill_medium=一般
skill_low=初学者
   0707010006ee48000081a40000000000000002000000013ac0388600000714000000200000000000000000000000000000001600000003reloc/lang/zh_TW.Big5 main_return= $1
main_homepage=
main_feedback=鮔...
main_switch=ち传ㄏノ...
main_version=セ $1  $2 ($3)
main_title=Webmin $1  $2 ($3)

category_servers=狝竟
category_hardware=祑砰
category_system=╰参
category_webmin=Webmin
category_net=呼隔
category_=ㄤ

header_webmin=Webmin ま
header_module=家舱ま
header_help=弧...
header_config=家舱舱篈
header_servers=Webmin 狝竟

index=ま
yes=琌
no=
save=纗
create=ミ
delete=埃
find=т碝
error=岿粇
default=箇砞
modify=э
reset=砞
ok=絋﹚
cancel=

chooser_title1=匡拒郎...
chooser_title2=匡拒ヘ魁...
chooser_dir=$1 ヘ魁
chooser_ok=絋﹚

users_title1=匡拒ㄏノ...
users_title2=匡拒ㄏノ...
users_sel=匡拒ㄏノ
users_all=场ㄏノ
users_ok=絋﹚
users_cancel=
users_clear=睲埃

groups_title1=匡拒竤舱...
groups_title2=匡拒竤舱...
groups_all=场竤舱
groups_sel=匡拒竤舱
groups_ok=絋﹚
groups_cancel=
groups_clear=睲埃

config_ecannot=眤ぃ砆す砛舱篈硂家舱
config_title=舱篈砞﹚
config_dir=倒家舱 $1
config_header=倒 $1 舱篈匡兜
config_none=礚
config_eaccess=眤ぃ砆す砛硂家舱

help_err=礚猭陪ボ弧
help_epath=框ア弧郎隔畖
help_efile=礚猭弄弧郎 $1
help_eheader=框ア &lt;夹繷&gt; 跋琿
help_einclude=礚猭ま $1
help_eif=$1 ア毖 : $2
help_eexec=$1 ア毖 : $2

month_1=る
month_2=る
month_3=る
month_4=る
month_5=きる
month_6=せる
month_7=る
month_8=る
month_9=る
month_10=る
month_11=る
month_12=る

day_0=琍戳ら
day_1=琍戳
day_2=琍戳
day_3=琍戳
day_4=琍戳
day_5=琍戳き
day_6=琍戳せ

smonth_1=る
smonth_2=る
smonth_3=る
smonth_4=る
smonth_5=きる
smonth_6=せる
smonth_7=る
smonth_8=る
smonth_9=る
smonth_10=る
smonth_11=る
smonth_12=る

sday_0=琍戳ら
sday_1=琍戳
sday_2=琍戳
sday_3=琍戳
sday_4=琍戳
sday_5=琍戳き
sday_6=琍戳せ

0707010000bb4c000081a40000000000000002000000013ac038860000026c000000200000000000000000000000000000001400000003reloc/lang_list.txt   lang=en,titles=1	English
lang=de,titles=1	German
lang=ru_SU,charset=koi8-r,titles=0	Russian KOI8
lang=ru_RU,charset=windows-1251,titles=0	Russian CP1251
lang=es,titles=1	Spanish
lang=fr,titles=1	French
lang=pt,titles=1	Portuguese
lang=zh_TW.Big5,charset=Big5,titles=0	Traditional Chinese
lang=zh_CN,titles=0,charset=GB2312	Simplified Chinese
lang=sv,titles=1	Swedish
lang=it,titles=1	Italian
lang=hu,titles=1	Hungarian
lang=he,titles=0,charset=iso-8859-8	Hebrew
lang=tr,titles=1,charset=iso-8859-9	Turkish
lang=pl,charset=iso-8859-2,titles=1	Polish
lang=nl,titles=1	Dutch
lang=ja_JP.euc,charset=EUC-JP,titles=0	Japanese
070701000703a0000041ed0000000000000001000000043ac03c0700000000000000200000000000000000000000000000000b00000003reloc/lilo    070701000703a1000081e40000000000000002000000013ac038a3000001d3000000200000000000000000000000000000001500000003reloc/lilo/apply.cgi  #!/usr/local/bin/perl
# apply.cgi
# Call lilo to apply the current config

require './lilo-lib.pl';
&foreign_require("proc", "proc-lib.pl");
$| = 1;
&header($text{'apply_title'}, "");
print "<hr><p>\n";
$cmd = "$config{'lilo_cmd'} -v";
print &text('apply_exec', "<tt>$cmd</tt>"),"<p>\n";
print "<pre>";
&foreign_call("proc", "safe_process_exec_logged", $cmd, 0, 0, STDOUT);
&webmin_log("apply");
print "</pre>\n";
print "<hr>\n";
&footer("", $text{'index_return'});

 070701000703a2000081a40000000000000002000000013ac038a30000002d000000200000000000000000000000000000001200000003reloc/lilo/config lilo_cmd=/sbin/lilo
lilo_conf=/etc/lilo.conf
   070701000703a3000081a40000000000000002000000013ac038a30000002d000000200000000000000000000000000000001c00000003reloc/lilo/config-lfs-linux   lilo_cmd=/sbin/lilo
lilo_conf=/etc/lilo.conf
   070701000703a4000081a40000000000000002000000013ac038a300000054000000200000000000000000000000000000001700000003reloc/lilo/config.info    lilo_conf=Path to LILO config file,0
lilo_cmd=Command to apply LILO configuration,0
070701000703a5000081a40000000000000002000000013ac038a300000061000000200000000000000000000000000000001a00000003reloc/lilo/config.info.de lilo_conf=Pfad zur LILO Konfigurationsdatei,0
lilo_cmd=Kommando zum Anwenden der Konfiguration,0
   070701000703a6000081a40000000000000002000000013ac038a30000006e000000200000000000000000000000000000001a00000003reloc/lilo/config.info.es lilo_conf=Trayectoria a archivo de configuraci髇 de LILO,0
lilo_cmd=Comando para aplicar configuraci髇 LILO,0
  070701000703a7000081a40000000000000002000000013ac038a300000072000000200000000000000000000000000000001a00000003reloc/lilo/config.info.fr lilo_conf=Chemin du fichier de configuration de LILO,0
lilo_cmd=Commande pour appliquer la configuration LILO,0
  070701000703a8000081a40000000000000002000000013ac038a300000072000000200000000000000000000000000000001a00000003reloc/lilo/config.info.hu lilo_conf=A LILO konfigur醕i髎 醠lom醤y醤ak el閞閟i 鷗vonala,0
lilo_cmd=A LILO be醠l韙醩ait 閞v閚yes韙 parancs,0
  070701000703a9000081a40000000000000002000000013ac038a300000064000000200000000000000000000000000000001a00000003reloc/lilo/config.info.pl lilo_conf=ie縦a do pliku konfiguracyjnego LILO,0
lilo_cmd=Polecenie aktywacji konfiguracji LILO,0
070701000703aa000081a40000000000000002000000013ac038a300000059000000200000000000000000000000000000001d00000003reloc/lilo/config.info.ru_RU  lilo_cmd=暑爨礓 潆 嚓蜩忄鲨 觐眙桡箴圉梃 LILO,0
lilo_conf=象螯  羿殡 觐眙桡箴圉梃,0
   070701000703ab000081a40000000000000002000000013ac038a300000059000000200000000000000000000000000000001d00000003reloc/lilo/config.info.ru_SU  lilo_conf=鹫载  屏侍 讼纹汕找撩缮,0
lilo_cmd=胂土文 奶 了陨琢蒙 讼纹汕找撩缮 LILO,0
   070701000703ac000081a40000000000000002000000013ac038a300000069000000200000000000000000000000000000001a00000003reloc/lilo/config.info.sv lilo_conf=S鰇v鋑 till LILO-inst鋖lningsfil,0
lilo_cmd=Kommando f鰎 att ta LILO-konfigurationen i drift,0
   070701000703ad000081a40000000000000002000000013ac038a30000005c000000200000000000000000000000000000001a00000003reloc/lilo/config.info.tr lilo_conf=LILO yap齦and齬ma dosyas yolu,0
lilo_cmd=LILO yap齦and齬mas齨 uygulama komutu,0
070701000703ae000081a40000000000000002000000013ac038a300000044000000200000000000000000000000000000001d00000003reloc/lilo/config.info.zh_CN  lilo_conf=LILO 配置文件的全路径,0
lilo_cmd=使 LILO 配置生效的命令,0
070701000703af000081a40000000000000002000000013ac038a300000041000000200000000000000000000000000000002200000003reloc/lilo/config.info.zh_TW.Big5 lilo_conf= LILO 舱篈郎隔畖,0
lilo_cmd=甅ノ LILO 舱篈,0
   070701000703b0000081e40000000000000002000000013ac038a3000011fb000000200000000000000000000000000000001b00000003reloc/lilo/edit_global.cgi    #!/usr/local/bin/perl
# edit_global.cgi
# Display options that apply to all sections

require './lilo-lib.pl';
&foreign_require("fdisk", "fdisk-lib.pl");

&header($text{'global_title'}, "");
print "<hr>\n";
$conf = &get_lilo_conf();

print "<form action=save_global.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'global_desc'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

$boot = &find_value("boot", $conf);
print "<tr> <td><b>$text{'global_boot'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=bootmode value=0 %s> $text{'global_root'}\n",
	$boot ? "" : "checked";
printf "<input type=radio name=bootmode value=1 %s>\n",
	$boot ? "checked" : "";
print &foreign_call("fdisk", "partition_select", "boot", $boot, 2);
print "</td> </tr>\n";

$default = &find_value("default", $conf);
print "<tr> <td><b>$text{'global_default'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=defaultmode value=0 %s> $text{'global_first'}\n",
	$default ? "" : "checked";
printf "<input type=radio name=defaultmode value=1 %s>\n",
	$default ? "checked" : "";
print "<select name=default>\n";
@images = sort { $a->{'index'} <=> $b->{'index'} }
	       ( &find("image", $conf), &find("other", $conf) );
foreach $i (@images) {
	$l = &find_value("label", $i->{'members'});
	if ($l) {
		printf "<option %s>$l\n",
			$default eq $l ? "selected" : "";
		}
	}
print "</select></td> </tr>\n";

$prompt = &find("prompt", $conf);
print "<tr> <td><b>$text{'global_prompt'}</b></td> <td>\n";
printf "<input type=radio name=prompt value=1 %s> $text{'yes'}\n",
	$prompt ? "checked" : "";
printf "<input type=radio name=prompt value=0 %s> $text{'no'}</td>\n",
	$prompt ? "" : "checked";

$timeout = &find_value("timeout", $conf);
print "<td><b>$text{'global_timeout'}</b></td> <td>\n";
printf "<input type=radio name=timeout_def value=1 %s> %s\n",
	$timeout ? "" : "checked", $text{'global_forever'};
printf "<input type=radio name=timeout_def value=0 %s>\n",
	$timeout ? "checked" : "";
printf "<input name=timeout size=5 value='%s'> $text{'global_secs'}</td> </tr>\n",
	$timeout ? $timeout / 10.0 : "";

$lock = &find("lock", $conf);
print "<tr> <td><b>$text{'global_lock'}</b></td> <td>\n";
printf "<input type=radio name=lock value=1 %s> $text{'yes'}\n",
	$lock ? "checked" : "";
printf "<input type=radio name=lock value=0 %s> $text{'no'}</td>\n",
	$lock ? "" : "checked";

$delay = &find_value("delay", $conf);
print "<td><b>$text{'global_delay'}</b></td> <td>\n";
printf "<input type=radio name=delay_def value=1 %s> $text{'global_imm'}\n",
	$delay ? "" : "checked";
printf "<input type=radio name=delay_def value=0 %s>\n",
	$delay ? "checked" : "";
printf "<input name=delay size=5 value='%s'> $text{'global_secs'}</td> </tr>\n",
	$delay ? $delay / 10.0 : "";

$compact = &find("compact", $conf);
print "<tr> <td><b>$text{'global_compact'}</b></td> <td>\n";
printf "<input type=radio name=compact value=1 %s> $text{'yes'}\n",
	$compact ? "checked" : "";
printf "<input type=radio name=compact value=0 %s> $text{'no'}</td>\n",
	$compact ? "" : "checked";

$optional = &find("optional", $conf);
print "<td><b>$text{'global_optional'}</b></td> <td>\n";
printf "<input type=radio name=optional value=1 %s> $text{'yes'}\n",
	$optional ? "checked" : "";
printf "<input type=radio name=optional value=0 %s> $text{'no'}</td> </tr>\n",
	$optional ? "" : "checked";

$password = &find_value("password", $conf);
print "<tr> <td><b>$text{'global_password'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=passmode value=0 %s> $text{'global_none'}\n",
	$password ? "" : "checked";
printf "<input type=radio name=passmode value=1 %s>\n",
	$password ? "checked" : "";
print "<input name=password size=25 value=\"$password\"></td> </tr>\n";

$restricted = &find("restricted", $conf);
printf "<tr> <td><b>$text{'global_restricted'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=restricted value=1 %s> %s\n",
	$restricted ? "checked" : "", $text{'global_extra'};
printf "<input type=radio name=restricted value=0 %s> %s</td> </tr>\n",
	$restricted ? "" : "checked", $text{'global_any'};

if ($lilo_version >= 21.3) {
	$lba = &find("lba32", $conf);
	print "<tr> <td><b>$text{'global_lba'}</b></td> <td>\n";
	printf "<input type=radio name=lba value=1 %s> $text{'yes'}\n",
		$lba ? "checked" : "";
	printf "<input type=radio name=lba value=0 %s> $text{'no'}</td></tr>\n",
		$lba ? "" : "checked";
	}

print "</table></td></tr></table><br>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

 070701000703b1000081e40000000000000002000000013ac038a300001503000000200000000000000000000000000000001a00000003reloc/lilo/edit_image.cgi #!/usr/local/bin/perl
# edit_image.cgi
# Edit or create a boot partition

require './lilo-lib.pl';
&foreign_require("fdisk", "fdisk-lib.pl");

&ReadParse();
if ($in{'new'}) {
	&header($text{'image_title1'}, "");
	$members = [ ];
	}
else {
	&header($text{'image_title2'}, "");
	$conf = &get_lilo_conf();
	$image = $conf->[$in{'idx'}];
	$members = $image->{'members'};
	}
print "<hr>\n";

print "<form action=save_image.cgi>\n";
print "<input type=hidden name=idx value='$in{'idx'}'>\n";
print "<input type=hidden name=new value='$in{'new'}'>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'image_options'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'image_name'}</b></td>\n";
printf "<td><input name=label size=15 value='%s'></td>\n",
	&find_value("label", $members);

print "<td><b>$text{'image_kernel'}</b></td>\n";
printf "<td><input name=image size=25 value='%s'> %s</td> </tr>\n",
	$image->{'value'}, &file_chooser_button("image", 0);

print "<tr> <td><b>$text{'image_opts'}</b></td> <td colspan=3>\n";
$append = &find_value("append", $members);
$literal = &find_value("literal", $members);
$append =~ s/^"(.*)"$/$1/g;
$literal =~ s/^"(.*)"$/$1/g;
printf "<input type=radio name=opts value=0 %s> $text{'image_default'}\n",
	$append || $literal ? "" : "checked";
printf "<input type=radio name=opts value=1 %s> $text{'image_add'}\n",
	$append ? "checked" : "";
printf "<input type=radio name=opts value=2 %s> $text{'image_replace'}\n",
	$literal ? "checked" : "";
printf "&nbsp; <input name=append size=20 value='%s'></td> </tr>\n",
	$append ? $append : $literal;

print "<tr> <td><b>$text{'image_root'}</b></td> <td colspan=3>\n";
$root = &find_value("root", $members);
printf "<input type=radio name=rmode value=0 %s> $text{'image_fromkern'}\n",
	$root ? "" : "checked";
printf "<input type=radio name=rmode value=1 %s> $text{'image_rcurr'}\n",
	$root eq "current" ? "checked" : "";
printf "<input type=radio name=rmode value=2 %s> $text{'image_rdev'}\n",
	$root && $root ne "current" ? "checked" : "";
print &foreign_call("fdisk", "partition_select",
		    "root", $root eq "current" ? undef : $root, 0);
print "</td> </tr>\n";

print "<tr> <td><b>$text{'image_initrd'}</b></td> <td colspan=3>\n";
$initrd = &find_value("initrd", $members);
printf "<input type=radio name=initrd_def value=1 %s> $text{'default'}\n",
	$initrd ? '' : 'checked';
printf "<input type=radio name=initrd_def value=0 %s>\n",
	$initrd ? 'checked' : '';
printf "<input name=initrd size=30 value='%s'> %s</td> </tr>\n",
	$initrd, &file_chooser_button("initrd");

$readonly = &find("read-only", $members);
$readwrite = &find("read-write", $members);
print "<tr> <td><b>$text{'image_mode'}</b></td> <td><select name=ro>\n";
printf "<option value=0 %s>$text{'image_fromkern'}\n",
	$readonly || $readwrite ? "" : "selected";
printf "<option value=1 %s>$text{'image_ro'}\n",
	$readonly ? "selected" : "";
printf "<option value=2 %s>$text{'image_rw'}\n",
	$readwrite ? "selected" : "";
print "</select></td>\n";

$vga = lc(&find_value("vga", $members));
print "<td><b>$text{'image_vga'}</b></td>\n";
print "<td><select name=vga>\n";
printf "<option value='' %s>$text{'image_fromkern'}\n",
	$vga ? "" : "selected";
printf "<option value=normal %s>80x25\n",
	$vga eq "normal" ? "selected" : "";
printf "<option value=ext %s>80x50\n",
	$vga eq "ext" || $vga eq "extended" ? "selected" : "";
printf "<option value=ask %s>$text{'image_ask'}\n",
	$vga eq "ask" ? "selected" : "";
printf "<option value=other %s>$text{'image_other'}\n",
	$vga =~ /\d/ ? "selected" : "";
printf "</select><input name=vgaother size=6 value='%s'></td> </tr>\n",
	$vga =~ /\d/ ? $vga : "";

$lock = &find("lock", $members);
print "<tr> <td><b>$text{'image_lock'}</b></td> <td>\n";
printf "<input type=radio name=lock value=1 %s> $text{'yes'}\n",
	$lock ? "checked" : "";
printf "<input type=radio name=lock value=0 %s> $text{'no'}</td>\n",
	$lock ? "" : "checked";

$optional = &find("optional", $members);
print "<td><b>$text{'image_optional'}</b></td> <td>\n";
printf "<input type=radio name=optional value=1 %s> $text{'yes'}\n",
	$optional ? "checked" : "";
printf "<input type=radio name=optional value=0 %s> $text{'no'}</td> </tr>\n",
	$optional ? "" : "checked";

$password = &find_value("password", $members);
print "<tr> <td><b>$text{'image_password'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=passmode value=0 %s> $text{'image_none'}\n",
	$password ? "" : "checked";
printf "<input type=radio name=passmode value=1 %s>\n",
	$password ? "checked" : "";
print "<input name=password size=25 value=\"$password\"></td> </tr>\n";

$restricted = &find("restricted", $members);
printf "<tr> <td><b>$text{'image_restricted'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=restricted value=1 %s> %s\n",
	$restricted ? "checked" : "", $text{'image_extra'};
printf "<input type=radio name=restricted value=0 %s> %s</td> </tr>\n",
	$restricted ? "" : "checked", $text{'image_any'};

print "</table></td></tr></table>\n";

print "<table width=100%><tr>\n";
print "<td align=left><input type=submit value=\"$text{'save'}\"></td>\n";
if (!$in{'new'}) {
	print "<td align=right>",
	      "<input type=submit name=delete value=\"$text{'delete'}\"></td>\n";
	}
print "</tr></table></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

 070701000703b2000081e40000000000000002000000013ac038a30000085e000000200000000000000000000000000000001a00000003reloc/lilo/edit_other.cgi #!/usr/local/bin/perl
# edit_other.cgi
# Edit or create a boot partition

require './lilo-lib.pl';
&foreign_require("fdisk", "fdisk-lib.pl");

&ReadParse();
if ($in{'new'}) {
	&header($text{'other_title1'}, "");
	$members = [ ];
	}
else {
	&header($text{'other_title2'}, "");
	$conf = &get_lilo_conf();
	$other = $conf->[$in{'idx'}];
	$members = $other->{'members'};
	}
print "<hr>\n";

print "<form action=save_other.cgi>\n";
print "<input type=hidden name=idx value='$in{'idx'}'>\n";
print "<input type=hidden name=new value='$in{'new'}'>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'other_details'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'other_name'}</b></td>\n";
printf "<td valign=top><input name=label size=15 value='%s'></td>\n",
	&find_value("label", $members);

print "<td><b>$text{'other_part'}</b></td> <td>\n";
print &foreign_call("fdisk", "partition_select", "other", $other->{'value'}, 0);
print "</td> </tr>\n";

$table = &find_value("table", $members);
print "<tr> <td><b>$text{'other_pass'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=tablemode value=0 %s> $text{'no'}\n",
	$table ? "" : "checked";
printf "<input type=radio name=tablemode value=1 %s> $text{'other_yes'}\n",
	$table ? "checked" : "";
print &foreign_call("fdisk", "partition_select", "table", $table, 1);
print "</td> </tr>\n";

$password = &find_value("password", $members);
print "<tr> <td><b>$text{'other_password'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=passmode value=0 %s> $text{'other_none'}\n",
	$password ? "" : "checked";
printf "<input type=radio name=passmode value=1 %s>\n",
	$password ? "checked" : "";
print "<input name=password size=25 value=\"$password\"></td> </tr>\n";

print "</table></td></tr></table>\n";

print "<table width=100%><tr>\n";
print "<td align=left><input type=submit value=\"$text{'save'}\"></td>\n";
if (!$in{'new'}) {
	print "<td align=right>",
	      "<input type=submit name=delete value=\"$text{'delete'}\"></td>\n";
	}
print "</tr></table></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

  07070100071d8e000041ed0000000000000001000000023ac03c0700000000000000200000000000000000000000000000001200000003reloc/lilo/images 07070100071d8f000081a40000000000000002000000013ac038a30000073f000000200000000000000000000000000000001b00000003reloc/lilo/images/icon.gif    GIF87a0 0   鼽茌墼茉黹牿右&" +2:&&:%+,RL@NJT(&'9-/0*,噍!	"&(俽\h]TicW勃ZH谖剔蚀nf\smg塾溜赀揪2&
翰|VZT

葩&笜L編渱0移劚璒#抶L趣,鹇锞籼夂畩L昶."璩懋鸬雎\嫫昊猹啸哴镲鹧'鼍馄嗦薏蔻茪$R2<",杍舛昢$摘骏Or^LTTTND<赕谊蘧潜|妀~j爩T沟滎湔种浙葸嬗琉眄赳贽陟贽早驽耦泓鲷鲻骩ed破台〝鲫潋篁蛭稳痿&*<殛腌廛伯斺怃934垡袵:7_\\ZVD,唵t!*+' 枂4鲵淦緞
zjT揖/窈GC?嫖l#(殲屢,蚰>*46纹L兀聤杺\锝hVT跒葝聠$譂饩\$趾岞~侺唍睛t茢液4坔4櫃
J.蠜鸲揖\   之D緬钼靆Bl娈窊$Z訊墌d歾D艆	秱,硔$唞T眿 緙哵4殇                                                                                                                                                            ,    0 0   H盃羶*T@ XH"A$P皜C&4蠤亙((Aに 燚)崃
*紎Y缆儦3/`葼郂藵5l業sHCɡ丆x█瞙詩| $:饡庠&N<@態艎(Y碷X燘Z竫脜*寔@F4jx`V`慍=| rqfB#H(A灌袅%4qJ)S═伇 韨KXY磍嵋E仐5X&寴1d漱槈侐虃茝皜&崥5_L╝cM@趎觍3n酿q1tB钦w虂噭xL樓丩q犃D姤伬zP協郠3癖刡K0郂%攁b鯔褔1|袂3u类^pp*T(f!@斓丣p鋋".i" <CV柙朓()af肮r"e!%h0沠1莵Z蕅a拑d5 Q	 勪qp9a拑歈HS惂K饫!H殘J&射杧淧"(%Kit "擷ň檇}L.2SMH {,檇o^:x0襀y182HJ(ǒJh<"$慔"$ij(:#攧¤昘移N楕bdR渹阫唩pD	Ml	"傺4酑d█闁鮍烉J@qE|扙B4!	M侱M↑z鄟I饏(R屸	)a)*4DH"蒰8J2'皉
盜!8*'TR撩蜔a翵M4朙_拰粹漱B2養m纑耐M嗵N馉f虽 !,碙畒,-mnPD梳;附$F蘌寴- p9 虀嬵 鴢闺^{Acq/瀤H洧穗r J恍 勽饮塹疋I)D"B`"I)8rH徱/励}韮爵#/ゐ0甈:Zx嶺8 t`琵
驴衼O e 1孮僣鋌菻2P閛	檧<1A俆P+ !f0僥P衶渻a9髀*D (k譈庑"贉鎣弶Ht	恙H伙Q駣"v ; 07070100071d90000081a40000000000000002000000013ac038a30000064e000000200000000000000000000000000000001c00000003reloc/lilo/images/image.gif   GIF89a0 0   櫃櫶烫fff%+,RL@(&'9-/	"&(&" h]TicW勃ZH右泻瞸VZT

!笜L渱0杯O#."懋鸬嫫昊猹哴鼍嗦薏蔻R2<",編舛昢$摘r^LTTT赕爿哝恿奘答眄陟葩甄驽耦泓鲷[ed种瘴稳鲻篁痿&*<+2:谖填湔殛腙蘧篁蜮怃934G:7茌蹎唗nf\!*+' 攒詵4黹昵眧zjT揖/~jGC?嫖l妀殲岕耜尧,夂鹇>*4纹L鳄钚窈锝hVT跒葝聠$譂饩\锞$鲵滂趣,
蠜smg之D聤娈蚰窊$訊墌d歾D秱,硔$畣唞T眿 緬艆	哵4镲饞r4!Made with GIMP !
  ,    0 0   	H盃羶*\劝∶#@雹艐%(牐菑 8"葥(P0颌C)c~嫣	溶⿸ 1q迨烡e槰烮y.%梏┫玐8u`V琔+"礩传腊d峧5バ砿薺梜拧*滽鳏杉x;䲡蕳頔羪威k薗-坡坲綸,礿崃~'胼蓈 (p 1`獩鱂= 亖
綤5颲異堇晧'挹 :瞓茋_0亗
敆^洺濞.㤘葼aCj<L0鹆 堎腺蟿B%榩
 窞~侫 
)ò-笭軙刞俀3腀C6p胠麻W\G鄲;淅C 鹄碮x釅(0? =!з坄qDHPG q=魀刪$夓K0袰Q6駜O習 L2)擰豨haQ	H!X拗Y8,(F麴&F1卹P(q?aP@N DBy\a Y 﨑@犈R1@蔈kt醞犈@纈じJ)喃懐~Fb窎jd`Z*:h=闇F1"繤涷D(紒&G=怞,藺Gv1Qj'1i鄟B旈R	n鞍G
`谢0暊/(ЮH%}鴣G
(D睟N4&梹G$t e袵(H溒脌D銽 u H{R!O<嶷n厰;LKABG 2"<馌@ A"rR"c哪"0覉#廆釨$E'鈭$嗕眸A ;  07070100071d91000081a40000000000000002000000013ac038a300000823000000200000000000000000000000000000001c00000003reloc/lilo/images/other.gif   GIF89a0 0   ))镲  敂种鼢櫃ssBBJJ烫RRfff珑揶!!浇湝{{寣11cc剟ゥ破湧謱斊{劷ks礪k礡c璕Z璊Z璟c午寽蜝RZ{渐沃鐪ノs{綌溛JR屍揶9Js灯歧牏み哌qrs捶亥敂Z9J渼岝谙羰氮擩R挝苳BJ../种謠19R19Z191B颔戭铑VVV|~傊鬃ZBR1B凧ZR)1Z)1礏B瑽J)1篌篚nP猩糲fi   &''!!!	拗諦9Rk)Bs1919淶kkRZ雉貂S増墛988+     CDD频絼Zc壬邵峾隬13 -剓刢191Bc珑鐜摌a8.f3R&鼢鲃)1浦11R9B骜狺线鞆弿)+. (g!)湐攕s屬稃蒴112灜!1)1k9B敪饯误豸飽nkJR瓄凧BJRRs{尌fш


!)镧鏐))浻接猱咒)趋墮獳KT 3b!
B11篪忪节桀嵉堋瓦my*堚 A僄9  !刢s揶搡⑹茶8=C 犷壙0,*I嵾\羣] 瀿壛
W\bg J9BZJRcZcMNO B99ZJkkBR溄谓挝黶ks剆s1!1午鐒湹敪违湝瓬拗辳Zc)!!1))99Z9c擝k{祵寽111宬s黠锝到寗919剓屍破淡!Made with GIMP !
  ,    0 0   	H盃羶啊脟$ 雹(x"B C奃@ 伻
.`囫逪b蕼sD(0 CJ蠢t 2翿 塉夽聙	 h皵9祃虦朢h爞K蟸舙a琘&E4眯1#悺 Y/C T鲤ul鈵I3k~ r佷荢汊,腹鬳8垶乎訃夋剦繠飑 _邥往l餀<| B$D(!愽砘8!萐孭眰吿躹妣>椱B
#咬G醾*N熆絲)⒁0t(躻!_s谎T潃#澉踾r闁郘/垚鰨 C2鶰X	/窹Bu(藹5|w燢.庣al硩動/蔳#Q6$ U978漯輳逧轑:写4踵C?漯僶2網Y|41TB4D= 魣d扐蔜1qF葯凩c6爠K芾DL噜剷6黗CO堢烲PD!SP慏BXq匧Rb慐Z麴\t崤]F]堮-倮㩳攁g膭Fi趣啚>l(慍nx崤p!╲A菛4GSn4癉J寜皔 y琛.{饋jNSS鳴k鳤F C尗=鄟b簈1!顅罞!岩D "墱q"4P岠爡Zh褕#oか#]@2忍6馜乓^GLaD扡BI%9X胰梡]缕聀`23臀f伋LHD殙&g1&}4繧'	(\竌#,程3J[蕏洈丏(⒇1
)Y攂"7軄C*r粍LI7pI]２I*獢牙*見+rG,,炒N獦繻K8+澄j-4p.颁⑺.技騄/線0訁0胻燎鋌躠{LT 酖&腜Q1? p,葮.伸B0<-,程'r燡艝uSS93LS"蝡3.DC~驝碻DU谺r蕜L烉 @0)斞/悸}硺4 d<ぶ嘱#2	op5`T蚵2粌劏讟V蠋崱]h%鲟G犑狘>ⷉD(r氂剱繮t鴤6q
f耎0籂!
G郌皟烅;)嶵鄤3岣8A^@劚.貭!月80r\~(7s/"H8朻8Α(H*襾G仺cE;荞x#蜞<Z驈p軄	▕WAx0z\<饍=顏廞\#魻>鯝L俤救佌"塹魜蒴~饎$  ; 070701000703b3000081e40000000000000002000000013ac038a300000959000000200000000000000000000000000000001500000003reloc/lilo/index.cgi  #!/usr/local/bin/perl
# index.cgi
# Display all the boot partitions

require './lilo-lib.pl';
&header($text{'index_title'}, "", undef, 1, 1);
print "<hr>\n";

# Check for non-intel architecture
if (`uname -m 2>&1` !~ /i.86/i) {
	print "<p><b>$text{'index_earch'}</b><p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

# Get the lilo version
$out = `$config{'lilo_cmd'} -V 2>&1`;
if ($out =~ /lilo\s+version\s+([0-9\.]+)/i) {
	$lilo_version = $1;
	}
else {
	$lilo_version = 1;
	}
open(VERSION, ">$module_config_directory/version");
print VERSION $lilo_version,"\n";
close(VERSION);

$conf = &get_lilo_conf();
@images = sort { $a->{'index'} <=> $b->{'index'} }
	       ( &find("image", $conf), &find("other", $conf) );

$default = &find_value("default", $conf);
foreach $i (@images) {
	local $n = $i->{'name'};
	push(@icons, $n eq "image" ? "images/image.gif" : "images/other.gif");
	$l = &find_value("label", $i->{'members'});
	push(@titles, !$default && $i eq $images[0] ? "<b>$l</b>" :
		      $default && $default eq $l ? "<b>$l</b>" : $l);
	push(@links, "edit_$n.cgi?idx=$i->{'index'}");
	}
&icons_table(\@links, \@titles, \@icons, 4);
print "<a href='edit_image.cgi?new=1'>$text{'index_addk'}</a> &nbsp;\n";
print "<a href='edit_other.cgi?new=1'>$text{'index_addp'}</a><p>\n";
print "<hr>\n";

print "<table width=100%>\n";
print "<form action=edit_global.cgi>\n";
print "<tr><td><input type=submit value=\"$text{'index_global'}\"></td>\n";
print "<td>$text{'index_globalmsg'}</td></tr></form>\n";

%flang = &load_language('fdisk');
$text{'select_part'} = $flang{'select_part'};
$text{'select_device'} = $flang{'select_device'};
$text{'select_fd'} = $flang{'select_fd'};
$dev = &find_value("boot", $conf);
print "<form action=apply.cgi>\n";
print "<tr><td><input type=submit value=\"$text{'index_apply'}\"></td> <td>\n";
if ($dev) {
	print &text('index_applymsg1',
	  $dev =~ /fd(\d+)$/ ? &text('select_fd', $1) :
	  $dev =~ /hd([a-z])(\d+)$/ ? &text('select_part', 'IDE', uc($1), $2) :
	  $dev =~ /sd([a-z])(\d+)$/ ? &text('select_part', 'SCSI', uc($1), $2) :
	  $dev =~ /hd([a-z])$/ ? &text('select_device', 'IDE', uc($1)) :
	  $dev =~ /sd([a-z])$/ ? &text('select_device', 'SCSI', uc($1)) : $dev);
	}
else {
	print $text{'index_applymsg2'};
	}
print "\n",$text{'index_applymsg3'},"</td></tr></form>\n";
print "</table>\n";

print "<hr>\n";
&footer("/", $text{'index'});

   0707010007328d000041ed0000000000000001000000023ac03c0700000000000000200000000000000000000000000000001000000003reloc/lilo/lang   0707010007328e000081a40000000000000002000000013ac038a300000b3c000000200000000000000000000000000000001300000003reloc/lilo/lang/de    index_title=Linux Bootup Konfiguration
index_addk=Einen neuen Boot Kernel erstellen
index_addp=Eine neue Boot Partiation erstellen
index_global=Globale Einstellungen bearbeiten
index_globalmsg=Globale Einstellungen, die alle Kernel und Partitionen betreffen bearbeiten
index_apply=Konfiguration anwenden
index_applymsg1=Aktuelle Konfiguration auf den Boot-Sektor auf $1 anwenden
index_applymsg2=Aktuelle Konfiguration auf den Bootsektor der aktuellen Root Festplatte anwenden
index_applymsg3=Stellen Sie sicher, dass die Konfiguration korrekt ist, bevor Sie das System neu starten!
index_return=Kernel und Partitionen

global_title=Globale Einstellungen
global_desc=Globale Boot Einstellungen
global_boot=Schreibe Bootlader auf
global_root=Root Festplatte (erste Platte)
global_default=Standard Kernel/Partition
global_first=Erster in Liste
global_prompt=LILO Eingabezeile anzeigen?
global_timeout=Zeit zu warten am LILO Eingabezeile
global_forever=F&uuml;r immer
global_lock=Merke Benutzer Kernel Optionen?
global_delay=Zeit zu warten vor dem booten
global_imm=Sofort
global_compact=Fasse Lese-Anfragen zusammen?
global_optional=&Uuml;berspringe Kernel, die nicht existieren?
global_password=Standard Boot Passwort
global_none=Keines
global_restricted=Passwort ben&ouml;tigt f&uuml;r
global_extra=Boote Kernel mit extra Einstellungen
global_any=Jegliches Booten
global_secs=Sekunden
global_err=Fehler beim Speichern der globalen Einstellungen

apply_title=Konfiguration anwenden
apply_exec=Wende LILO Konfiguration an mit dem Kommando $1 ..

image_title1=Boot Kernel erstellen
image_title2=Boot Kernel bearbeiten
image_options=Boot Kernel Einstellungen
image_name=Name
image_kernel=Zu bootender Kernel
image_opts=Kernel Parameter
image_default=Standard
image_add=F&uuml;ge Parameter zu Standard hinzu..
image_replace=Ersetze Standard-Parameter..
image_root=Root Festplatte
image_fromkern=Von Kernel
image_rcurr=Aktuelles Stammverzeichnis
image_rdev=Ger&auml;t ..
image_initrd=Anf&auml;ngliche RAM Disk Datei
image_mode=Root Mount Modus
image_ro=Nur-Lesen
image_rw=Lesen und Schreiben
image_vga=VGA Text Modus
image_ask=Frage Benutzer
image_other=Anderer
image_lock=Merke Benutzer Kernel Optionen?
image_optional=&Uuml;berspringe Kernel, die nicht existieren?
image_password=Boot Passwort
image_restricted=Passwort ben&ouml;tigt f&uuml;r
image_extra=Boot mit extra Einstellungen
image_any=Jegliches Booten
image_none=Keines
image_ename=Fehlender Name f&uuml;r diesen Kernel
image_ekernel=Kernel Image '$1' existiert nicht

other_title1=Boot Partition erstellen
other_title2=Boot Partition bearbeiten
other_details=Partitions-Details
other_name=Name
other_part=Zu bootende Partition
other_pass=&Uuml;bergebe die Partitions-Tabelle an das Betriebsystem?
other_yes=Ja, von
other_password=Boot passwort
other_none=Keins
other_ename=Es fehlt der Name f&uuml;r diese Boot-Partition
0707010007328f000081a40000000000000002000000013ac038a300000cbb000000200000000000000000000000000000001300000003reloc/lilo/lang/en    index_title=Linux Bootup Configuration
index_addk=Create a new boot kernel
index_addp=Create a new boot partition
index_global=Edit Global Options
index_globalmsg=Edit global bootup options that apply to all kernels and partitions.
index_apply=Apply Configuration
index_applymsg1=Apply the current configuration to the boot sector on $1.
index_applymsg2=Apply the current configuration to the boot sector on the current root device.
index_applymsg3=Make sure your configuration is correct before rebooting!
index_return=kernels and partitions
index_earch=LILO is only supported on x86 architecture systems

global_title=Global Options
global_desc=Global Boot Options
global_boot=Write boot loader to
global_root=Root device
global_default=Default kernel/partition
global_first=First in list
global_prompt=Display LILO prompt?
global_timeout=Time to wait at LILO prompt
global_forever=Forever
global_lock=Remember user kernel options?
global_delay=Time to wait before booting
global_imm=Immediate
global_compact=Merge read requests?
global_optional=Skip kernels that do not exist?
global_password=Default boot password
global_none=None
global_restricted=Password needed for
global_extra=Booting kernels with extra options
global_any=Any booting
global_secs=seconds
global_lba=Allow booting from beyond 1024 cylinders?
global_err=Failed to save global options

apply_title=Apply Configuration
apply_exec=Applying LILO configuration with command $1 ..

image_title1=Create Boot Kernel
image_title2=Edit Boot Kernel
image_options=Boot Kernel Options
image_name=Name
image_kernel=Kernel to boot
image_opts=Kernel options
image_default=Default
image_add=Add options..
image_replace=Replace options..
image_root=Root device
image_fromkern=From kernel
image_rcurr=Current root
image_rdev=Device ..
image_initrd=Initial ramdisk file
image_mode=Root mount mode
image_ro=Read-only
image_rw=Read-write
image_vga=VGA text mode
image_ask=Ask user
image_other=Other
image_lock=Remember user kernel options?
image_optional=Skip kernels that do not exist?
image_password=Boot password
image_restricted=Password needed for
image_extra=Booting kernels with extra options
image_any=Any booting
image_none=None
image_ename=Missing name for this boot kernel
image_ekernel=Kernel image '$1' does not exist
image_einitrd=Initial ramdisk file '$1' does not exist

other_title1=Create Boot Partition
other_title2=Edit Boot Partition
other_details=Partition Details
other_name=Name
other_part=Partition to boot
other_pass=Pass partition table to OS?
other_yes=Yes, from
other_password=Boot password
other_none=None
other_ename=Missing name for this boot partition

log_create_image=Created boot kernel $1
log_modify_image=Modified boot kernel $1
log_delete_image=Deleted boot kernel $1
log_create_image_l=Created boot kernel $1 for $2
log_modify_image_l=Modified boot kernel $1 for $2
log_delete_image_l=Deleted boot kernel $1 for $2
log_create_other=Created boot partition $1
log_modify_other=Modified boot partition $1
log_delete_other=Deleted boot partition $1
log_create_other_l=Created boot partition $1 on $2
log_modify_other_l=Modified boot partition $1 on $2
log_delete_other_l=Deleted boot partition $1 on $2
log_apply=Applied configuration
log_global=Changed global options


 07070100073290000081a40000000000000002000000013ac038a300000eda000000200000000000000000000000000000001300000003reloc/lilo/lang/es    index_title=Configuraci髇 de Arranque de Linux
index_addk=Crear un nuevo kernel de arranque
index_addp=Crear una nueva partici髇 de arranque
index_global=Editar Opciones Globales
index_globalmsg=Editar opciones de arranque globales que se aplican a todos los kernels y particiones
index_apply=Aplicar Configuraci髇
index_applymsg1=Aplicar la configuraci髇 actual al sector de arranque en $1.
index_applymsg2=Aplicar la configuraci髇 actual al sector de arranque en el dispositivo raiz actual.
index_applymsg3=seg鷕ate de que tu configuraci髇 es correcta antes de rearrancar!
index_return=kernels y particiones
index_earch=LILO es soportado s髄amente en sistemas con arquitectura x86

global_title=Opciones Globales
global_desc=Opciones Globales de Arranque
global_boot=Escribir cargador de arranque en
global_root=Dispositivo raiz
global_default=Kernel/partici髇 por defecto
global_first=Primero en la lista
global_prompt=縈uestro el prompt de LILO?
global_timeout=Tiempo de espera en el prompt de LILO
global_forever=Por siempre
global_lock=縍ecuerdo las opciones de usuario del kernel?
global_delay=Tiempo de espera antes de arrancar
global_imm=Inmediato
global_compact=縈ezclo requerimientos de lectura?
global_optional=縈e salto los kernels que no existan?
global_password=Clave de acceso de arranque por defecto
global_none=Ninguna
global_restricted=Clave de acceso necesitada para
global_extra=Arrancar kernels con opciones extra
global_any=Cualquier arranque
global_secs=segundos
global_err=Error al salvar opciones globales

apply_title=Aplicar Configuraci髇
apply_exec=Aplicar configuraci髇 LILO con el comando $1 ...

image_title1=Crear Kernel de Arranque
image_title2=Editar Kernel de Arranque
image_options=Opciones de Kernel de Arranque
image_name=Nombre
image_kernel=Kernel a arrancar
image_opts=Opciones del Kernel
image_default=Por defecto
image_add=A馻dir opciones...
image_replace=Reemplazar opciones...
image_root=Dispositivo raiz
image_fromkern=Desde el kernel
image_rcurr=Ra韟 actual
image_rdev=Dispositivo...
image_initrd=Archivo de disco de memoria inicial
image_mode=Modo de montaje del Ra韟
image_ro=S髄o-lectura
image_rw=Lectura-escritura
image_vga=modo de texto VGA
image_ask=Preguntar al usuario
image_other=Otros
image_lock=縍ecuerdo las opciones de kernel del usuario?
image_optional=縈e salto los kernels que no existan?
image_password=Clave de Acceso de arranque
image_restricted=Se necesita clave de acceso para
image_extra=Arrancando kernels con opciones extra
image_any=Cualquier arranque
image_none=Ninguno
image_ename=Nombre para este kernel de arranque sin poner
image_ekernel=La Imagen del Kernel '$1' no existe
image_einitrd=El archivo de disco de memoria inicial '$1' no existe

other_title1=Crear Partici髇 de Arranque
other_title2=Editar Partici髇 de Arranque
other_details=Detalles de la Partici髇
other_name=Nombre
other_part=Partici髇 a arrancar
other_pass=縋aso la tabla de partici髇 al SO?
other_yes=S, desde
other_password=Clave de acceso de arranque
other_none=Ninguna
other_ename=Nombre para esta partici髇 de arranque sin poner

log_create_image=Creado kernel de arranque $1
log_modify_image=Modificado kernel de arranque $1
log_delete_image=Borrado kernel de arranque $1
log_create_image_l=Creado kernel de arranque $1 para $2
log_modify_image_l=Modificado kernel de arranque $1 para $2
log_delete_image_l=Borrado kernel de arranque $1 para $2
log_create_other=Creada partici髇 de arranque $1
log_modify_other=Modificada partici髇 de arranque $1
log_delete_other=Borrada partici髇 de arranque $1
log_create_other_l=Creada partici髇 de arranque $1 en $2
log_modify_other_l=Modificada partici髇 de arranque $1 en $2
log_delete_other_l=Borrada partici髇 de arranque $1 en $2
log_apply=Aplicada configuraci髇
log_global=Cambiadas opciones globales


  07070100073291000081a40000000000000002000000013ac038a300000bc4000000200000000000000000000000000000001300000003reloc/lilo/lang/fr    index_title=Configuration du d閙arrage de Linux
index_addk=Cr閑r un nouveau noyau de d閙arrage
index_addp=Cr閑r une nouvelle partition de d閙arrage
index_global=蒬iter les Options Globale
index_globalmsg=蒬iter les options globales de d閙arrage qui s'applique  tous les noyaux et partitions
index_apply=Appliquer la Configuration
index_applymsg1=Appliquer la configuration courante au secteur de d閙arrage sur $1.
index_applymsg2=Appliquer la configuration courante au secteur de d閙arrage du p閞iph閞ique racine courant
index_applymsg3=S'assurer que votre configuration est correcte avant de red閙arrer!
index_return=noyaux et partitions
index_earch=LILO est seulement support sur les architectures x86

global_title=Options Globale
global_desc=Options Globale de D閙arrage
global_boot=蒫rire le chargeur de d閙arrage sur
global_root=P閞iph閞ique racine
global_default=Partition ou noyau par d閒aut
global_first=Premier de la liste
global_prompt=Afficher l'indicatif LILO?
global_timeout=Temps d'attente  l'indicatif LILO
global_forever=Infini
global_lock=Se souvient des options usager du noyau?
global_delay=Temps d'attente avant de d閙arrer
global_imm=Imm閐iat
global_compact=Joindre les requ阾es de lecture?
global_optional=Passer le noyau s'il n'existe pas?
global_password=Mot de passe de d閙arrage par d閒aut
global_none=Aucun
global_restricted=Mot de passe n閏essaire pour
global_extra=D閙arrer le noyau avec des options suppl閙entaires
global_any=Tout d閙arrage
global_secs=secondes
global_err=Impossible de sauvegarder les options globales

apply_title=Appliquer la Configuration
apply_exec=Appliquer la configuration LILO avec la commande '$1'

image_title1=Cr閑r un Noyau de D閙arrage
image_title2=蒬iter un Noyau de D閙arrage
image_options=Options du Noyau de D閙arrage
image_name=Nom
image_kernel=Noyau  d閙arrer
image_opts=Options du noyau
image_default=D閒aut
image_add=Ajouter des options
image_replace=Remplacer des options
image_root=P閞iph閞ique racine
image_fromkern= partir du noyau
image_rcurr=Racine courante
image_rdev=P閞iph閞ique
image_mode=Mode de montage racine
image_ro=Lecture seule
image_rw=Lecture et 閏riture
image_vga=Mode texte VGA
image_ask=Demander  l'usager
image_other=Autre
image_lock=Se souvenir des options usager du noyau?
image_optional=Passer le noyau s'il n'existe pas?
image_password=Mot de passe de d閙arrage
image_restricted=Mot de passe n閏essaire pour
image_extra=D閙arrer le noyau avec des options suppl閙entaires
image_any=Tout d閙arrage
image_none=Aucun
image_ename=Nom introuvable pour ce noyau de d閙arrage
image_ekernel=Image du noyau '$1' introuvable

other_title1=Cr閑r une Partition de D閙arrage
other_title2=蒬iter une Partition de D閙arrage
other_details=D閠ails sur la Partition
other_name=Nom
other_part=Partition  d閙arrer
other_pass=Passer la table de partition au syst鑝e d'exploitation?
other_yes=Oui,  partir de
other_password=Mot de passe au d閙arrage
other_none=Aucune
other_ename=Nom introuvable pour cette partition de d閙arrage
07070100073292000081a40000000000000002000000013ac038a300000b17000000200000000000000000000000000000001300000003reloc/lilo/lang/hu    index_title=Linux Bootup be醠l韙醩ok
index_addk=趈 boot kernel k閟z韙閟e
index_addp=趈 part韈i k閟z韙閟e
index_global=羖tal醤os opci髃 szerkeszt閟e
index_globalmsg=羖tal醤os bootol醩i opci髃 szerkeszt閟e, ahol be醠l韙hat髃 a kernelek 閟 a part韈i髃.
index_apply=Be醠l韙醩ok 閞v閚yes韙閟e
index_applymsg1=A jelenlegi be醠l韙醩ok 閞v閚yes韙閟e $1 eszk鰖鰊.
index_applymsg2=A jelenlegi be醠l韙醩ok 閞v閚yes韙閟e a jelenlegi root eszk鰖 boot szektor醔a.
index_applymsg3=趈raind韙醩 el鮰t gy鮶鮠j鰊 meg arr髄, hogy a be醠l韙醩ok megfelel鮡k!
index_return=q kernelekhez 閟 part韈i髃hoz
index_earch=LILO csak az x86-os architekt鷕醟at t醡ogatja

global_title=羖tal醤os opci髃
global_desc=羖tal醤os boot opci髃
global_boot=Boot-bet鰈t ki韗醩a
global_root=root eszk鰖-re
global_default=Alap閞telmezett kernel/part韈i
global_first=Els a list醔an
global_prompt=A LILO parancssort megjelen韙se?
global_timeout=A LILO parancssor v醨akoz醩i ideje
global_forever=謗鰇k
global_lock=Eml閗ezzen a felhaszn醠骾 kernel kapcsol骾ra?
global_delay=V醨akoz醩 bootol醩 el鮰t
global_imm=Azonnal
global_compact=Olvas醩i k閞閟ek 鰏szef閟黮閟e?
global_optional=Kihagyja azokat a kerneleket, amelyek nem l閠eznek?
global_password=Alap閞telmezett boot jelsz
global_none=Nincs
global_restricted=Jelsz kell
global_extra=az extra kapcsol髃kal beh鷝ott kernelekhez
global_any=minden rendszerindul醩 eset閚
global_secs=m醩odpercek
global_err=Az 醠tal醤os be醠l韙醩ok elment閟e nem siker黮t.

apply_title=Be醠l韙醩ok 閞v閚yes韙閟e
apply_exec=LILO be醠l韙醩ok 閞v閚yes韙閟e a(z) $1 paranccsal...

image_title1=Boot kernel l閠rehoz醩al
image_title2=Boot kernel szerkeszt閟e
image_options=Boot Kernel kapcsol髃
image_name=N関
image_kernel=Boot-oland kernel
image_opts=Kernel kapcsol髃
image_default=Alap閞telmezett
image_add=Kapcsol髃 hozz醓d醩a...
image_replace=Kapcsol髃 kicser閘閟e...
image_root=Root eszk鰖
image_fromkern=A kernelb鮨
image_rcurr=Jelenlegi root
image_rdev=Eszk鰖 ..
image_mode=Root csatol醩i m骴
image_ro=Csak olvashat
image_rw=蛂hat-olvashat
image_vga=VGA sz鰒eges k閜erny
image_ask=Megk閞ez閟 a felhaszn醠髏髄
image_other=Egy閎
image_lock=Eml閗ezzen a felhaszn醠骾 kernel kapcsol骾ra?
image_optional=Kihagyja azokat a kerneleket, amelyek nem l閠eznek?
image_password=Boot jelsz
image_restricted=Jelsz kell
image_extra=az extra kapcsol髃kal beh鷝ott kernelekhez
image_any=minden rendszerind韙醩 eset閚
image_none=Nincs
image_ename=Nincs neve ennek a boot kernelnek.
image_ekernel=A(z) '$1' kernel image nem l閠ezik

other_title1=Boot part韈i l閠rehoz醩a
other_title2=Boot part韈i szerkeszt閟e
other_details=Part韈i be醠l韙醩ok Details
other_name=N関
other_part=Boot-oland part韈i
other_pass=Part韈i髎 t醔la 醫ad醩a az OS-nek?
other_yes=Igen, innen
other_password=Boot jelsz
other_none=Nincs
other_ename=Nincs neve ennek a boot kernelnek.
 07070100073293000081a40000000000000002000000013ac038a300000e07000000200000000000000000000000000000001300000003reloc/lilo/lang/pl    index_title=Konfiguracja startu Linuksa
index_addk=Okre秎 kernel startowy
index_addp=Okre秎 partycj startow
index_global=Zmie opcje og髄ne
index_globalmsg=Zmiany opcje og髄nych, kt髍e maj zastosowanie do wszystkich kerneli i&nbsp;partycji. 
index_apply=Zastosuj konfiguracj
index_applymsg1=Zastosowanie bie勘cej konfiguracji do sektora BOOT na $1. 
index_applymsg2=Zastosowanie bie勘cej konfiguracji do sektora BOOT na bie勘cym urz眃zeniu <tt>root</tt>.
index_applymsg3=Upewnij si, 縠 konfiguracja jest prawid硂wa zanim zrestartujesz system!
index_return=kerneli i&nbsp;partycji
index_earch=LILO obs硊guje jedynie systemy o&nbsp;architekturze x86.

global_title=Opcje og髄ne
global_desc=Og髄ne opcje startowe
global_boot=Zapisz bootloader na
global_root=Urz眃zeniu <tt>root</tt>
global_default=Domy秎ny kernel/partycja
global_first=Pierwszy na li禼ie
global_prompt=Wy秝ietli zg硂szenie LILO?
global_timeout=Czas oczekiwania po zg硂szeniu LILO
global_forever=Nieograniczony
global_lock=Zapami阾a dodatkowe opcje dla kernela?
global_delay=Czas oczekiwania przed startem
global_imm=Nie czeka
global_compact=Po潮czy przyleg砮 odczyty?
global_optional=Pomin辨 nieistniej眂e kernele?
global_password=Domy秎ne has硂 startowe
global_none=Brak
global_restricted=Has硂 potrzebne przy
global_extra=Podawaniu opcji startowych dla kerneli
global_any=Ka縟ym starcie
global_secs=sekund
global_lba=Umo縧iwi start z&nbsp;obszaru powy縠j 1024 cylindra?
global_err=Nie uda硂 si zachowa opcji og髄nych

apply_title=Zastosuj konfiguracj
apply_exec=Zastosowanie konfiguracji LILO popraez wydanie polecenia $1 ..

image_title1=Okre秎 kernel startowy
image_title2=Zmie kernel startowy
image_options=Opcje kernela startowego
image_name=Nazwa
image_kernel=Kernel do wystartowania
image_opts=Opcje kernela
image_default=Domy秎ne
image_add=Doda opcje..
image_replace=Zast眕i opcje..
image_root=Urz眃zenie <tt>root</tt>
image_fromkern=Z kernela
image_rcurr=Aktualne
image_rdev=Urz眃zenie ..
image_initrd=Plik inicjalnego ramdysku
image_mode=Tryb montowania <tt>root</tt>
image_ro=Tylko do odczytu
image_rw=Odczyt i&nbsp;zapis
image_vga=Tryb tekstowy VGA
image_ask=Spyta u縴tkownika
image_other=Inny
image_lock=Zapami阾a dodatkowe opcje dla kernela?
image_optional=Pomin辨 nieistniej眂e kernele?
image_password=Has硂 startowe
image_restricted=Has硂 potrzebne przy
image_extra=Podawaniu opcji startowych dla kerneli
image_any=Ka縟ym starcie
image_none=Brak
image_ename=Nie podano nazwy dla tego kernela.
image_ekernel=Obraz kernela '$1' nie istnieje.
image_einitrd=Plik inicjalnego ramdysku '$1' nie istnieje.

other_title1=Okre秎 partycj startow
other_title2=Zmie partycj startow
other_details=Dane partycji
other_name=Nazwa
other_part=Partycja startowa
other_pass=Przekaza OS tablic partycji?
other_yes=Tak, z
other_password=Has硂 startowe
other_none=Brak
other_ename=Nie podano nazwy dla tej partycji startowej.

log_create_image=Okre秎ono kernel startowy $1
log_modify_image=Zmieniono kernel startowy $1
log_delete_image=Usuni阾o kernel startowy $1
log_create_image_l=Okre秎ono kernel startowy $1 dla $2
log_modify_image_l=Zmieniono kernel startowy $1 dla $2
log_delete_image_l=Usuni阾o kernel startowy $1 dla $2
log_create_other=Okre秎ono partycj startow $1
log_modify_other=Zmieniono partycj startow $1
log_delete_other=Usuni阾o partycj startow $1
log_create_other_l=Okre秎ono partycj startow $1 na $2
log_modify_other_l=Zmieniono partycj startow $1 na $2
log_delete_other_l=Usuni阾o partycj startow $1 na $2
log_apply=Zastosowano konfiguracj
log_global=Zmieniono opcje og髄ne
 07070100073294000081a40000000000000002000000013ac038a300000acc000000200000000000000000000000000000001300000003reloc/lilo/lang/pt    index_title=Configura玢o de Arranque do Linux
index_addk=Criar novo kernel de arranque
index_addp=Criar nova parti玢o de arranque
index_global=Editar Op珲es Gerais
index_globalmsg=Editar op珲es gerais de arranque que se apliquem a todos os kernels e parti珲es.
index_apply=Aplicar Configura玢o
index_applymsg1=Aplicar a configura玢o corrente ao sector de arranque $1.
index_applymsg2=Aplicar a configura玢o corrente ao sector de arranque no dispositivo root corrente.
index_applymsg3=Certifique-se que a sua configura玢o est correcta antes de reiniciar o sistema!
index_return=kernels e parti珲es

global_title=Op珲es Gerais
global_desc=Op珲es Gerais de Arranque
global_boot=Escrever o carregador de arranque para
global_root=Dispositivo root
global_default=kernel/parti玢o predefinida
global_first=Primeira da lista
global_prompt=Mostrar a prompt do LILO?
global_timeout=Tempo de espera na prompt do LILO
global_forever=Para sempre
global_lock=Lembrar op珲es de kernel do utilizador?
global_delay=Tempo de espera antes do arranque
global_imm=Imediato
global_compact=Misturar pedidos de leitura?
global_optional=Omitir kernels que n鉶 existam?
global_password=Password de arranque predefinida
global_none=Nenhuma
global_restricted=Password necess醨ia para
global_extra=Iniciar kernels com op珲es extra
global_any=Qualquer arranque
global_secs=segundos
global_err=Falha ao guardar as op珲es gerais

apply_title=Aplicar Configura玢o
apply_exec=A aplicar configura玢o do LILO com o comando $1 ..

image_title1=Criar Kernel de Arranque
image_title2=Editar Kernel de Arranque
image_options=Op珲es do Kernel de Arranque
image_name=Nome
image_kernel=Kernel a iniciar
image_opts=Op珲es de Kernel
image_default=Predefinido
image_add=Adicionar op珲es..
image_replace=Substituir op珲es..
image_root=Dispositivo root
image_fromkern=Do kernel
image_rcurr=Root corrente
image_rdev=Dispositivo ..
image_mode=Modo de montagem em root
image_ro=Leitura apenas
image_rw=Leitura-escrita
image_vga=Modo de texto VGA
image_ask=Perguntar ao utilizador
image_other=Outro
image_lock=Lembrar op珲es de kernel do utilizador?
image_optional=Omitir kernels que n鉶 existam?
image_password=Password de arranque
image_restricted=Password necess醨ia para
image_extra=Iniciar kernels com op珲es extra
image_any=Qualquer arranque
image_none=Nenhum
image_ename=Falta o nome para este kernel de arranque
image_ekernel=A imagem do kernel '$1' n鉶 existe

other_title1=Criar Parti玢o de Arranque
other_title2=Editar Parti玢o de Arranque
other_details=Detalhes da Parti玢o
other_name=Nome
other_part=Parati玢o para arrancar
other_pass=Passar a tabela de parti玢o para o SO?
other_yes=Sim, de
other_password=Password de arranque
other_none=Nenhum
other_ename=Falta o nome para esta parti玢o de arranque
07070100073295000081a40000000000000002000000013ac038a300000ab7000000200000000000000000000000000000001600000003reloc/lilo/lang/ru_RU image_opts=相疣戾蝠 漯
global_desc=秒钺嚯 相疣戾蝠 青沭箸觇
image_rdev=玉蝠铋耱忸 ..
global_err=硒栳赅 镳 耦躔铐屙梃 汶钺嚯 镟疣戾蝠钼
image_root=暑痦邂铄 篑蝠铋耱忸
other_details=相疣戾蝠 朽玟咫
apply_title=橡桧螯 暑眙桡箴圉棹
other_ename=湾 箨噻囗 桁 潆 玎沭箸铟眍泐 疣玟咫
global_imm=湾戾潆屙眍
image_mode=绣骅 祛眚桊钼囗 觐痦
global_restricted=相痤朦 礤钺躅滂 潆
image_title1=杨玟囗桢 青沭箸铟眍泐 咪疣
image_title2=绣溧牝桊钼囗桢 青沭箸铟眍泐 咪疣
image_any=塔犷 玎沭箸觇
index_apply=橡桧螯 相疣戾蝠
image_password=青沭箸铟睇 镟痤朦
index_return=漯  疣玟咫
image_kernel=咪痤 潆 玎沭箸觇
global_title=秒钺嚯 相疣戾蝠
image_vga=义犟蝾恹 疱骅 VGA
other_name=褥
global_boot=青镨襦螯 玎沭箸麒 磬
image_ask=扬痤耔螯 镱朦珙忄蝈
image_ekernel=吾疣 漯 '$1' 礤 耋耱怏弪
image_options=相疣戾蝠 青沭箸铟眍泐 咪疣
image_other=酿筱铄
image_rcurr=义牦 觐疱睃
global_default=咪痤/疣玟咫 镱 箪铍鬣龛
global_first=襄疴  耧桉赍
image_name=褥
index_globalmsg=绣溧牝桊钼囗桢 汶钺嚯 玎沭箸铟睇 镟疣戾蝠钼, 觐蝾瘥 溴轳蜮簋 磬 怦 漯  疣玟咫.
other_part=朽玟咫 潆 玎沭箸觇
global_compact=吾滂龛螯 玎镳铖 磬 黩屙桢?
other_pass=襄疱溧忄螯 蜞犭桷 疣玟咫钼  窝?
image_extra=青沭箸觇 溴  漕镱腠栩咫 镟疣戾蝠囔
other_title1=杨玟囗桢 青沭箸铟眍泐 朽玟咫
other_title2=绣溧牝桊钼囗桢 青沭箸铟眍泐 朽玟咫
index_applymsg1=橡桧螯 蝈牦 镟疣戾蝠 潆 玎沭箸铟眍泐 皴牝铕 磬 $1.
index_applymsg2=橡桧螯 蝈牦 镟疣戾蝠 潆 玎沭箸铟眍泐 皴牝铕 磬 蝈牦 觐痦邂铎 篑蝠铋耱忮.
index_applymsg3=俞邃栩羼  镳噔桦铖蜩 忄 觐眙桡箴圉梃 镥疱 镥疱玎沭箸觐!
global_lock=青镱扈磬螯 镱朦珙忄蝈朦耜桢 镟疣戾蝠 漯?
apply_exec=狸蜩忄鲨 觐眙桡箴圉梃 LILO 镳 镱祛 觐爨礓 $1 ..
global_optional=橡铒篑赅螯 礤耋耱怏桢 漯?
global_extra=青沭箸觇 溴  漕镱腠栩咫 镟疣戾蝠囔
image_lock=青镱祉栩 镱朦珙忄蝈朦耜桢 镟疣戾蝠 漯
global_delay=亦殪囿 镥疱 玎沭箸觐
image_ro=翌朦觐-黩屙桢
image_fromkern=如 漯
image_rw=昨屙桢-青镨顸
other_yes=泥, 桤
index_global=绣溧牝桊钼囹 秒钺嚯 相疣戾蝠
index_title=青沭箸铟磬 暑眙桡箴圉 Linux
other_none=湾
global_forever=铃耜铐鬻眍
global_timeout=亦殪囿 磬 镳桡豚龛 LILO
global_none=湾
image_optional=橡铒篑赅螯 礤耋耱怏桢 漯?
global_prompt=项赅琨忄螯 镳桡豚龛 LILO?
image_default=项 箪铍鬣龛
image_ename=湾 玎溧眍 桁 潆 钽 玎沭箸铟眍泐 漯
image_none=湾
global_any=塔犷 玎沭箸觇
image_restricted=相痤朦 礤钺躅滂 潆
other_password=青沭箸铟睇 镟痤朦
image_replace=青戾龛螯 镟疣戾蝠..
global_root=暑痦邂铄 篑蝠铋耱忸
global_password=青沭箸铟睇 镟痤朦 镱 箪铍鬣龛
index_addk=杨玟囹 眍忸 玎沭箸铟眍 漯
index_addp=杨玟囹 眍恹 玎沭箸铟睇 疣玟咫
image_add=念徉忤螯 镟疣戾蝠..
global_secs=皴.
 07070100073298000081a40000000000000002000000013ac038a300000abb000000200000000000000000000000000000001600000003reloc/lilo/lang/ru_SU index_title=且遮限瘟 胂纹汕找撩裳 Linux
index_addk=笙谀猎 蜗紫 诹且遮限蜗 涯蚁
index_addp=笙谀猎 蜗踪 诹且遮限钨 伊谀盘
index_global=蚺牧嗽梢献猎 缣下撂匚倥 鹆伊团砸
index_globalmsg=蚺牧嗽梢献廖膳 翘下撂匚偃 诹且遮限钨 辛伊团砸献, 讼韵屹 呐视宰绽 瘟 子 涯伊  伊谀盘.
index_apply=鹨晌言 鹆伊团砸
index_applymsg1=鹨晌言 耘苏萆 辛伊团砸 奶 诹且遮限蜗窍 优嗽弦 瘟 $1.
index_applymsg2=鹨晌言 耘苏萆 辛伊团砸 奶 诹且遮限蜗窍 优嗽弦 瘟 耘苏菖 讼椅抛贤 沼砸鲜釉着.
index_applymsg3=趼拍稍庞  幸磷商匚嫌陨 琢叟 讼纹汕找撩缮 信遗 信遗诹且遮讼!
index_return=涯伊  伊谀盘

global_title=缣下撂匚倥 鹆伊团砸
global_desc=缣下撂匚倥 鹆伊团砸 且遮松
global_boot=猩恿载 诹且遮奚 瘟
global_root=胂椅抛吓 沼砸鲜釉紫
global_default=衲蚁/伊谀盘 邢 胀咸蘖紊
global_first=鹋易偈  有捎伺
global_prompt=鹣肆谫琢载 幸汕塘叟紊 LILO?
global_timeout=袅释琳 瘟 幸汕塘叟紊 LILO
global_forever=馀铀衔呸蜗
global_secs=优.
global_lock=邢蜕瘟载 邢特谙琢耘特铀膳 辛伊团砸 涯伊?
global_delay=袅释琳 信遗 诹且遮讼
global_imm=钆团奶盼蜗
global_compact=锫吲纳紊载 诹幸嫌 瘟 拊盼膳?
global_optional=鹨闲沼肆载 闻诱菖釉渍垒膳 涯伊?
global_password=且遮限钨 辛蚁特 邢 胀咸蘖紊
global_none=钆
global_restricted=鹆蚁特 闻下认纳 奶
global_extra=且遮松 涯乓  南邢涛稍盘匚偻 辛伊团砸镣
global_any=炖孪 诹且遮松
global_err=镗陕肆 幸 酉纫衔盼缮 翘下撂匚偃 辛伊团砸献

apply_title=鹨晌言 胂纹汕找撩衫
apply_exec=崴陨琢蒙 讼纹汕找撩缮 LILO 幸 邢拖萆 讼土文 $1 ..

image_title1=笙谀廖膳 且遮限蜗窍 衲伊
image_title2=蚺牧嗽梢献廖膳 且遮限蜗窍 衲伊
image_options=鹆伊团砸 且遮限蜗窍 衲伊
image_name=橥
image_kernel=衲蚁 奶 诹且遮松
image_opts=鹆伊团砸 涯伊
image_default=鹣 胀咸蘖紊
image_add=湎铝咨载 辛伊团砸..
image_replace=团紊载 辛伊团砸..
image_root=胂椅抛吓 沼砸鲜釉紫
image_fromkern=橼 涯伊
image_rcurr=襞苏萆 讼遗呜
image_rdev=跤砸鲜釉紫 ..
image_mode=蚺稚 拖卧梢献廖裳 讼椅
image_ro=粝特讼-拊盼膳
image_rw=盼膳-猩迂
image_vga=襞擞韵踪 遗稚 VGA
image_ask=笮蚁由载 邢特谙琢耘萄
image_other=湟涨吓
image_lock=邢臀稍 邢特谙琢耘特铀膳 辛伊团砸 涯伊
image_optional=鹨闲沼肆载 闻诱菖釉渍垒膳 涯伊?
image_password=且遮限钨 辛蚁特
image_restricted=鹆蚁特 闻下认纳 奶
image_extra=且遮松 涯乓  南邢涛稍盘匚偻 辛伊团砸镣
image_any=炖孪 诹且遮松
image_none=钆
image_ename=钆 诹牧蜗 赏 奶 茉锨 诹且遮限蜗窍 涯伊
image_ekernel=锫伊 涯伊 '$1' 闻 诱菖釉渍旁

other_title1=笙谀廖膳 且遮限蜗窍 蛄谀盘
other_title2=蚺牧嗽梢献廖膳 且遮限蜗窍 蛄谀盘
other_details=鹆伊团砸 蛄谀盘
other_name=橥
other_part=蛄谀盘 奶 诹且遮松
other_pass=鹋遗牧琢载 粤绿擅 伊谀盘献  矬?
other_yes=淞, 哨
other_password=且遮限钨 辛蚁特
other_none=钆
other_ename=钆 账邻廖 赏 奶 诹且遮限蜗窍 伊谀盘
 0707010007329a000081a40000000000000002000000013ac038a300000cf2000000200000000000000000000000000000001300000003reloc/lilo/lang/sv    index_title=Linux startinst鋖lningar
index_addk=Skapa en ny startk鋜na
index_addp=Skapa en ny startpartition
index_global=膎dra globala inst鋖lningar
index_globalmsg=膎dra globala inst鋖lningar f鰎 alla k鋜nor och partitioner.
index_apply=Ta inst鋖lningarna i drift
index_applymsg1=Anv鋘d dessa inst鋖lningar p startsektorn p $1.
index_applymsg2=Anv鋘d dessa inst鋖lningar p startsektorn p aktuell rotdisk.
index_applymsg3=Kontrollera inst鋖lningarna innan du startar om!
index_return=k鋜nor och partitioner
index_earch=LILO st鰀s endast av system med x86-arkitektur

global_title=Globala inst鋖lningar
global_desc=Globala startinst鋖lningar
global_boot=Skriv boot loader till
global_root=Rotdisk
global_default=Standardk鋜na/-partition
global_first=F鰎st i listan
global_prompt=Visa LILO-prompt?
global_timeout=V鋘tetid vid LILO-prompt
global_forever=I evighet
global_lock=Spara k鋜ninst鋖lningar f鰎 anv鋘dare?
global_delay=V鋘tetid f鰎e start
global_imm=Omedelbart
global_compact=S鋞ta ihop l鋝f鰎fr錱ningar?
global_optional=Hoppa 鰒er k鋜nor som inte finns?
global_password=Standardl鰏enord f鰎 start
global_none=Inget
global_restricted=L鰏enord kr鋠s f鰎
global_extra=Startar k鋜nor med extrainst鋖lningar
global_any=Startar allt
global_secs=sekunder
global_err=Det gick inte att spara globala inst鋖lningar

apply_title=Ta inst鋖lningarna i drift
apply_exec=Tar LILO-inst鋖lningarna i drift med kommando $1 ...

image_title1=Skapa startk鋜na
image_title2=膎dra startk鋜na
image_options=Inst鋖lningar f鰎 startk鋜na
image_name=Namn
image_kernel=Startk鋜na
image_opts=Inst鋖lningar f鰎 k鋜na
image_default=Standard
image_add=L鋑g till inst鋖lningar ...
image_replace=Byt ut inst鋖lningar ...
image_root=Rotdisk
image_fromkern=Fr錸 k鋜na
image_rcurr=Aktuell root
image_rdev=Disk ...
image_mode=Rootmonteringsl鋑e
image_ro=Endast l鋝bar
image_rw=L鋝- och skrivbar
image_vga=VGA-textmod
image_ask=Fr錱a anv鋘dare
image_other=講riga
image_initrd=Initial RAM-diskfil
image_lock=Spara k鋜ninst鋖lningar f鰎 anv鋘dare?
image_optional=Hoppa 鰒er k鋜nor som inte finns?
image_password=Startl鰏enord
image_restricted=L鰏enord kr鋠s f鰎 att
image_extra=starta k鋜nor med extrainst鋖lningar
image_any=starta alla
image_none=Inget
image_ename=Namn saknas f鰎 denna startk鋜na
image_ekernel=K鋜n-image '$1' finns inte
image_einitrd=Initial RAM-diskfil '$1' finns inte

other_title1=Skapa startpartition
other_title2=膎dra startpartition
other_details=Uppgifter om partition
other_name=Namn
other_part=Partition att starta fr錸
other_pass=Ge partitionstabellen till OS?
other_yes=Ja, fr錸
other_password=Startl鰏enord
other_none=Inget
other_ename=Namn saknas f鰎 denna startpartition

log_create_image=Skapade startk鋜na $1
log_modify_image=Modifierade startk鋜na $1
log_delete_image=Tog bort startk鋜na $1
log_create_image_l=Skapade startk鋜na $1 f鰎 $2
log_modify_image_l=Modifierade startk鋜na $1 f鰎 $2
log_delete_image_l=Tog bort startk鋜na $1 f鰎 $2
log_create_other=Skapade startpartition $1
log_modify_other=Modifierade startpartition $1
log_delete_other=Tog bort startpartition $1
log_create_other_l=Skapade startpartition $1 p $2
log_modify_other_l=Modifierade startpartition $1 p $2
log_delete_other_l=Tog bort startpartition $1 p $2
log_apply=Tog 鋘dringar i drift
log_global=膎drade globala inst鋖lningar
  0707010007329b000081a40000000000000002000000013ac038a300000e29000000200000000000000000000000000000001300000003reloc/lilo/lang/tr    index_title=Linux A琮l Yap齦and齬mas
index_addk=Yeni bir a琮l 鏴kirde餴 olu⺶ur
index_addp=Yeni bir a琮l disk b鰈黰 olu⺶ur
index_global=Genel Se鏴nekleri De餴⺶ir
index_globalmsg=B黷黱 鏴kirdek ve disk b鰈黰lerine uygulanacak olan de餴㱮klikleri de餴⺶irmek i鏸n t齥lay齨齴.
index_apply=Yap齦and齬may Uygula
index_applymsg1=A琮l sekt鰎 $1'e mevcut yap齦and齬may uygula.
index_applymsg2=Mevcut root ayg齮齨齨 a琮l sekt鰎黱e mevcut yap齦and齬may uygula.
index_applymsg3=Makineyi yeniden baatmadan 鰊ce yap齦and齬man齴齨 do餽u oldu饀na emin olunuz!
index_return=鏴kirdek ve disk b鰈黰leri
index_earch=LILO sadece x86 mimarisindeki sistemleri destekler

global_title=Genel Se鏴nekler
global_desc=Genel A琮l Se鏴nekleri
global_boot=A琮l y黭leyicisini buraya yaz
global_root=Root ayg齮
global_default=謓tan齧l 鏴kirdek/disk_b鰈黰
global_first=Listenin bandaki
global_prompt=LILO komut sat齬 g鰎黱t黮ensin mi?
global_timeout=LILO komut sat齬齨daki bekleme s黵esi
global_forever=Daima
global_lock=Kullan齝 鏴kirdek se鏴nekleri hat齬lans齨 m?
global_delay=A琮ltan 鰊ceki bekleme s黵esi
global_imm=Hemen a
global_compact=Okuma istekleri birle⺶irilsin mi?
global_optional=E餰r yoksa 鏴kirdek ge鏸lsin mi?
global_password=謓tan齧l a琮l parolas
global_none=Hi鏱iri
global_restricted=Parolan齨 kullan齧 rt: 
global_extra=莈kirdekler ekstra se鏴nekler ile a琮l齳orsa
global_any=Her a琮lta
global_secs=saniye
global_err=Genel se鏴neklerin kaydedilmesinde hata olu⺶u

apply_title=Yap齦and齬may Uygula
apply_exec=LILO yap齦and齬mas $1 komutu ile uygulan齳or..

image_title1=A琮l 鏴kirde餴 olu⺶ur
image_title2=A琮l 鏴kirde餴ni de餴⺶ir
image_options=A琮l 鏴kirde餴 se鏴nekleri
image_name=輘im
image_kernel=A琮l 鏴kirde餴
image_opts=莈kirdek Se鏴nekleri
image_default=謓tan齧l
image_add=Se鏴nekleri ekle..
image_replace=Se鏴nekleri de餴⺶ir..
image_root=Root ayg齮
image_fromkern=莈kirdekten
image_rcurr=Mevcut root
image_rdev=Ayg齮 ..
image_initrd=輑k ramdisk dosyas
image_mode=Root ba餷ama modu
image_ro=Sadece okunur
image_rw=Okunur-yaz齦齬
image_vga=VGA modu
image_ask=Kullan齝齳a sor
image_other=Di餰r
image_lock=Kullan齝 鏴kirdek se鏴nekleri hat齬lans齨 m?
image_optional=E餰r yoksa 鏴kirdek ge鏸lsin mi?
image_password=A琮l parolas
image_restricted=Parolan齨 kullan齧 rt
image_extra=莈kirdek ekstra se鏴neklerle a琮l齳orsa
image_any=Her a琮lta
image_none=Hi鏱iri
image_ename=Bu 鏴kirde餴n ismi bulunamad
image_ekernel=莈kirdek dosyas '$1' mevcut de餴l
image_einitrd=輑k ramdisk dosyas '$1' mevcut de餴l

other_title1=A琮l Disk B鰈黰 olu⺶ur
other_title2=A琮l Disk B鰈黰leriin De餴⺶ir
other_details=Disk B鰈黰 Ayr齨t齦ar
other_name=輘im
other_part=A琮l disk b鰈黰黱
other_pass=OS'un disk b鰈黰 tablosunu ge?
other_yes=Evet, buradadan
other_password=A琮l parolas
other_none=Hi鏱iri
other_ename=Bu a琮l disk b鰈黰黱黱 ismi bulunamad

log_create_image=A琮l 鏴kirde餴 $1 olu⺶uruldu
log_modify_image=A琮l 鏴kirde餴 $1 de餴⺶irildi
log_delete_image=A琮l 鏴kirde餴 $1 silindi
log_create_image_l=$2 i鏸n a琮l 鏴kirde餴 $1 olu⺶uruldu
log_modify_image_l=$2 i鏸n a琮l 鏴kirde餴 $1 de餴⺶irildi
log_delete_image_l=$2 i鏸n a琮l 鏴kirde餴 $1 silindi
log_create_other=$A琮l disk b鰈黰 $1 olu⺶uruldu
log_modify_other=A琮l disk b鰈黰 $1 de餴⺶irildi
log_delete_other=A琮l disk b鰈黰 $1 silindi
log_create_other_l=$2'de a琮l disk b鰈黰 $1 olu⺶uruldu
log_modify_other_l=$2'de a琮l disk b鰈黰 $1 de餴⺶irildi
log_delete_other_l=$2'de a琮l disk b鰈黰 $1 silindi
log_apply=Yap齦and齬ma uyguland
log_global=Genel se鏴nekler de餴⺶irildi

   0707010007329d000081a40000000000000002000000013ac038a300000a1f000000200000000000000000000000000000001600000003reloc/lilo/lang/zh_CN index_title=Linux 启动管理器
index_addk=增加一个新的启动内核
index_addp=增加一个新的启动分区
index_global=编辑全局参数
index_globalmsg=编辑全局启动选项，应用到所有内核和分区.
index_apply=应用
index_applymsg1=在$1的引导扇区应用当前配置.
index_applymsg2=在根设备的引导扇区应用当前配置
index_applymsg3=在重新启动机器前, 请确认你的配置是否正确!
index_return=内核和分区列表
index_earch=LILO仅支持X86的体系结构的系统

global_title=全局参数
global_desc=全局参数配置
global_boot=将启动管理器(LILO)安装到
global_root=根(root)设备
global_default=默认的启动内核或分区
global_first=列表中的第一个配置
global_prompt=显示LILO提示符吗?
global_timeout=LILO提示符的超时时间
global_forever=不超时
global_lock=是否记住用户的内核选项?
global_delay=引导前的延迟
global_imm=立即
global_compact=紧凑模式?
global_optional=跳过不存在的内核?
global_password=默认的引导口令
global_none=无
global_restricted=需要口令
global_extra=仅当内核带启动参数的时候
global_any=任何时候
global_secs=秒
global_err=保存全局选项失败

apply_title=应用
apply_exec=使用$1命令使配置立即生效..

image_title1=添加引导内核
image_title2=添加引导内核
image_options=添加引导内核选项
image_name=启动标识
image_kernel=内核文件
image_opts=内核选项
image_default=缺省
image_add=添加选项
image_replace=替换选项..
image_root=根(root)设备
image_fromkern=内核默认值
image_rcurr=当前根设备
image_rdev=指定设备..
image_initrd=初始化虚盘文件(initrd)
image_mode=根设备安装模式
image_ro=只读
image_rw=读写
image_vga=VGA 文本模式
image_ask=询问用户
image_other=其它
image_lock=是否记住用户的内核选项?
image_optional=跳过不存在的内核?
image_password=引导口令
image_restricted=需要口令
image_extra=带额外选项的内核引导
image_any=自由引导
image_none=无
image_ename=引导内核名错误
image_ekernel=内核镜像文件'$1'不存在
image_einitrd=初始化虚盘(initrd)文件 '$1' 不存在

other_title1=添加启动分区
other_title2=编辑启动分区
other_details=分区信息
other_name=启动标识
other_part=启动分区
other_pass=指定分区表所在设备?
other_yes=是,从
other_password=启动口令
other_none=无
other_ename=引导分区名称错误

log_create_image=创建引导内核$1
log_modify_image=修改引导内核$1
log_delete_image=删除引导内核$1
log_create_image_l=为$2创建引导内核$1
log_modify_image_l=为$2修改引导内核$1
log_delete_image_l=为$2删除引导内核$1
log_create_other=创建引导分区$1
log_modify_other=修改引导分区$1
log_delete_other=删除引导分区$1
log_create_other_l=在$2上创建引导分区$1
log_modify_other_l=在$2上修改引导分区$1
log_delete_other_l=在$2上删除引导分区$1
log_apply=配置应用
log_global=改变全局选项

 0707010007329e000081a40000000000000002000000013ac038a300000846000000200000000000000000000000000000001b00000003reloc/lilo/lang/zh_TW.Big5    index_title=Linux 秨诀舱篈
index_addk=ミ穝秨诀み
index_addp=ミ穝秨诀だ澄跋
index_global=絪胯办匡兜
index_globalmsg=絪胯办秨诀匡兜盢穦甅ノ场み籔だ澄跋ぇ.
index_apply=甅ノ舱篈
index_applymsg1=甅ノヘ玡舱篈 $1 秨诀合跋.
index_applymsg2=甅ノヘ玡舱篈ヘ玡ヘ魁砞称秨诀合跋.
index_applymsg3=穝秨诀玡渡絋粄眤舱篈琌タ絋!
index_return=み籔だ澄跋
index_earch=LILO ぇや穿 x86 ╰参

global_title=办匡兜
global_desc=办秨诀匡兜
global_boot=盢秨诀更竟糶
global_root=ヘ魁砞称
global_default=箇砞み/だ澄跋
global_first=い材
global_prompt=琌陪ボ LILO 矗ボ才腹?
global_timeout= LILO 矗ボ才腹单丁
global_forever=ッ环
global_lock=琌癘拘ㄏノみ匡兜?
global_delay=穝币笆ぇ玡单丁
global_imm=ミㄨ
global_compact=琌ㄖ弄璶―?
global_optional=琌斌ぃみ?
global_password=箇砞秨诀盞絏
global_none=礚
global_restricted=惠璶盞絏倒
global_extra=Τ肂匡兜秨诀み
global_any=ヴ币笆
global_secs=
global_err=礚猭纗办匡兜

apply_title=甅ノ舱篈
apply_exec=㏑ $1 甅ノ LILO 舱篈郎い...

image_title1=ミ秨诀み
image_title2=絪胯秨诀み
image_options=秨诀み匡兜
image_name=嘿
image_kernel=秨诀璶ノみ
image_opts=み匡兜
image_default=箇砞
image_add=糤匡兜...
image_replace=匡兜...
image_root=ヘ魁砞称
image_fromkern=眖み
image_rcurr=ヘ玡ヘ魁
image_rdev=砞称...
image_initrd=癬﹍癘拘砰合盒郎
image_mode=ヘ魁本更家Α
image_ro=斑弄
image_rw=弄糶
image_vga=VGA ゅ家Α
image_ask=高拜ㄏノ
image_other=ㄤ
image_lock=琌璶癘拘ㄏノみ匡兜?
image_optional=琌斌ぃみ?
image_password=秨诀盞絏
image_restricted=惠璶盞絏倒
image_extra=Τ肂匡兜秨诀み
image_any=ヴ币笆
image_none=礚
image_ename=框ア倒硂秨诀み嘿
image_ekernel=み紇钩郎 '$1' ぃ
image_einitrd=癬﹍癘拘砰合盒郎 '$1' ぃ

other_title1=ミ秨诀だ澄跋
other_title2=絪胯秨诀だ澄跋
other_details=だ澄跋冈灿戈
other_name=嘿
other_part=秨诀ㄏノだ澄跋
other_pass=琌肚患だ澄跋倒穨╰参?
other_yes=琌, 眖
other_password=秨诀盞絏
other_none=礚
other_ename=框ア硂秨诀だ澄跋嘿
  070701000703b4000081a40000000000000002000000013ac038a300001305000000200000000000000000000000000000001700000003reloc/lilo/lilo-lib.pl    # lilo-lib.pl
# Common functions for lilo.conf

do '../web-lib.pl';
&init_config("lilo");

map { $member{$_}++ } ('range', 'loader', 'table', 'unsafe', 'label',
		       'alias', 'lock', 'optional', 'password', 'restricted',
		       'append', 'literal', 'ramdisk', 'read-only',
		       'read-write', 'root', 'vga', 'initrd');

# read the lilo version
if (open(VERSION, "$module_config_directory/version")) {
	chop($lilo_version = <VERSION>);
	close(VERSION);
	}

# get_lilo_conf()
# Parses lilo.conf and returns a list of directives
sub get_lilo_conf
{
return @lilo_conf_cache if (defined(@lilo_conf_cache));
open(CONF, $config{'lilo_conf'});
local $lnum = -1;
local ($image, $line);
while($line = <CONF>) {
	$lnum++;
	$line =~ s/\r|\n//g;
	$line =~ s/#.*$//g;
	local %dir;
	if ($line =~ /^\s*([^=\s]+)\s*=\s*(.*)$/) {
		$dir{'name'} = $1;
		$dir{'value'} = $2;
		$dir{'line'} = $lnum;
		if ($dir{'value'} =~ s/\\$//) {
			# multi-line directive!
			while($line = <CONF>) {
				$line =~ s/\r|\n//g;
				$line =~ s/^\s+//;
				local $cont = ($line =~ s/\\$//g);
				$dir{'value'} .= ' '.$line;
				$lnum++;
				last if (!$cont);
				}
			}
		$dir{'eline'} = $lnum;
		}
	elsif ($line =~ /^\s*(\S+)/) {
		$dir{'name'} = $1;
		$dir{'eline'} = $dir{'line'} = $lnum;
		}
	else { next; }
	if ($dir{'name'} eq 'image' || $dir{'name'} eq 'other') {
		$dir{'index'} = scalar(@rv);
		$image = \%dir;
		push(@rv, \%dir);
		}
	elsif ($member{$dir{'name'}} && $image) {
		$dir{'index'} = scalar(@{$image->{'members'}});
		push(@{$image->{'members'}}, \%dir);
		$image->{'eline'} = $lnum;
		}
	else {
		$dir{'index'} = scalar(@rv);
		push(@rv, \%dir);
		$image = undef;
		}
	}
close(CONF);
@lilo_conf_cache = @rv;
return \@rv;
}

# save_directive(&config, &old|name, &new)
# Given a directive, either update it in the config file or add it at the
# correct position.
sub save_directive
{
local $lref = &read_file_lines($config{'lilo_conf'});
local $old = ref($_[1]) ? $_[1] : &find($_[1], $_[0]);
local @lines = $_[2] ? &directive_lines($_[2]) : undef;
if ($_[2] && $old) {
	# updating some directive, possibly multi-line
	local $len = $old->{'eline'} - $old->{'line'} + 1;
	splice(@$lref, $old->{'line'}, $len, @lines);
	&renumber($_[0], $old->{'eline'}+1, @lines - $len);
	$_[2]->{'eline'} = $_[2]->{'line'} + @lines - 1;
	$_[0]->[$old->{'index'}] = $_[2];
	}
elsif ($old) {
	# deleting an existing directive
	local $len = $old->{'eline'} - $old->{'line'} + 1;
	splice(@$lref, $old->{'line'}, $len);
	&renumber($_[0], $old->{'line'}, -1);
	splice(@{$_[0]}, $old->{'index'}, 1);
	&renumber_index($_[0], $old->{'index'}, -1);
	}
elsif ($_[2] && $_[2]->{'members'}) {
	# adding a multi-line directive at the end
	local $last = $_[0]->[@{$_[0]} - 1];
	$_[2]->{'line'} = $last->{'eline'} + 1;
	$_[2]->{'eline'} = $last->{'eline'} + @lines;
	push(@$lref, @lines);
	$_[2]->{'index'} = scalar(@{$_[0]});
	push(@{$_[0]}, $_[2]);
	}
elsif ($_[2]) {
	# adding a single-line directive at the top
	$_[2]->{'line'} = $_[2]->{'eline'} = 0;
	$_[2]->{'index'} = 0;
	splice(@$lref, 0, 0, @lines);
	&renumber($_[0], $_[2]->{'line'}, 1);
	&renumber_index($_[0], 0, 1);
	splice(@{$_[0]}, 0, 0, $_[2]);
	}
}

# directive_lines(&directive, indent)
sub directive_lines
{
if ($_[0]->{'members'}) {
	local @rv = ( $_[1].$_[0]->{'name'}."=".$_[0]->{'value'} );
	local $m;
	foreach $m (@{$_[0]->{'members'}}) {
		push(@rv, &directive_lines($m, $_[1]."\t"));
		}
	return @rv;
	}
elsif ($_[0]->{'value'} ne "") {
	return ( $_[1].$_[0]->{'name'}."=".$_[0]->{'value'} );
	}
else {
	return ( $_[1].$_[0]->{'name'} );
	}
}

# renumber(&config, line, offset)
# Add offset to the start and end of any directive after the line
sub renumber
{
return if (!$_[2]);
local $c;
foreach $c (@{$_[0]}) {
	$c->{'line'} += $_[2] if ($c->{'line'} >= $_[1]);
	$c->{'eline'} += $_[2] if ($c->{'eline'} >= $_[1]);
	if ($c->{'members'}) {
		&renumber($c->{'members'}, $_[1], $_[2]);
		}
	}
}

# renumber_index(&config, pos, offset)
sub renumber_index
{
return if (!$_[2]);
local $c;
foreach $c (@{$_[0]}) {
	$c->{'index'} += $_[2] if ($c->{'index'} >= $_[1]);
	}
}

# find(name, &array)
sub find
{
local($c, @rv);
foreach $c (@{$_[1]}) {
	if ($c->{'name'} eq $_[0]) {
		push(@rv, $c);
		}
	}
return @rv ? wantarray ? @rv : $rv[0]
           : wantarray ? () : undef;
}

# find_value(name, &array)
sub find_value
{
local(@v);
@v = &find($_[0], $_[1]);
if (!@v) { return undef; }
elsif (wantarray) { return map { $_->{'value'} } @v; }
else { return $v[0]->{'value'}; }
}

# save_subdirective(&image, name, value)
sub save_subdirective
{
local $mems = $_[0]->{'members'};
local $old = &find($_[1], $mems);
if ($old && defined($_[2])) {
	$old->{'value'} = $_[2];
	}
elsif (defined($_[2])) {
	push(@$mems, { 'name' => $_[1], 'value' => $_[2] });
	}
elsif ($old) {
	local $idx = &indexof($old, @$mems);
	splice(@$mems, $idx, 1);
	}
}

1;
   070701000703b5000081a40000000000000002000000013ac038a300000349000000200000000000000000000000000000001900000003reloc/lilo/log_parser.pl  # log_parser.pl
# Functions for parsing this module's logs

require './lilo-lib.pl';
&foreign_require("mount", "mount-lib.pl");

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p, $long) = @_;
local $ll = $long ? "_l" : "";
if ($type eq 'image') {
	return &text("log_${action}_image${ll}", "<tt>$object</tt>",
		     "<tt>$p->{'image'}</tt>");
	}
elsif ($type eq 'other') {
	local $other = &foreign_call("mount", "device_name", $p->{'other'})
		if ($long);
	return &text("log_${action}_other${ll}", "<tt>$object</tt>", $other);
	}
elsif ($action eq 'apply') {
	return $text{'log_apply'};
	}
elsif ($action eq 'global') {
	return $text{'log_global'};
	}
else {
	return undef;
	}
}

   070701000703b6000081a40000000000000002000000013ac038a30000025b000000200000000000000000000000000000001700000003reloc/lilo/module.info    name=LILO
desc_pt=Configura玢o de Arranque do Linux
desc_tr=Linux A琮l Yap齦and齬mas
desc_fr=Configuration du D閙arrage de Linux
desc_es=Configuraci髇 del Arranque de Linux
desc_sv=Inst鋖lningar f鰎 start av Linux
desc_de=Linux Boot Konfiguration
desc_hu=Linux BOOT be醠l韙醩ok
desc_ru_SU=且遮奚 矬 Linux
desc_pl=Konfiguracja startu Linuksa
category=hardware
os_support=redhat-linux slackware-linux suse-linux debian-linux open-linux turbo-linux corel-linux lfs-linux
desc_zh_TW.Big5=Linux 秨诀舱篈
desc=Linux Bootup Configuration
risk=high
desc_zh_CN=Linux 启动管理
desc_ru_RU=青沭箸麒 窝 Linux
 070701000703b7000081e40000000000000002000000013ac038a3000005b9000000200000000000000000000000000000001b00000003reloc/lilo/save_global.cgi    #!/usr/local/bin/perl
# save_global.cgi
# Save global options

require './lilo-lib.pl';
&ReadParse();
&lock_file($config{'lilo_conf'});
$conf = &get_lilo_conf();
&error_setup($text{'global_err'});

&save_directive($conf, "boot",
		$in{'bootmode'} ? { 'name' => 'boot', 'value' => $in{'boot'} }
				: undef);
&save_directive($conf, "default",
		$in{'defaultmode'} ? { 'name' => 'default',
				       'value' => $in{'default'} } : undef);
&save_directive($conf, "prompt",
		$in{'prompt'} ? { 'name' => 'prompt' } : undef);
&save_directive($conf, "timeout",
		$in{'timeout_def'} ? undef :
		{ 'name' => 'timeout', 'value' => $in{'timeout'}*10 });
&save_directive($conf, "lock",
		$in{'lock'} ? { 'name' => 'lock' } : undef);
&save_directive($conf, "delay",
		$in{'delay_def'} ? undef :
		{ 'name' => 'delay', 'value' => $in{'delay'}*10 });
&save_directive($conf, "compact",
		$in{'compact'} ? { 'name' => 'compact' } : undef);
&save_directive($conf, "optional",
		$in{'optional'} ? { 'name' => 'optional' } : undef);
&save_directive($conf, "password",
		$in{'passmode'} ? { 'name' => 'password',
				    'value' => $in{'password'} } : undef);
&save_directive($conf, "restricted",
		$in{'restricted'} ? { 'name' => 'restricted' } : undef);
if ($lilo_version >= 21.3) {
	&save_directive($conf, "lba32",
			$in{'lba'} ? { 'name' => 'lba32' } : undef);
	}
&flush_file_lines();
&unlock_file($config{'lilo_conf'});
&webmin_log("global", undef, undef, \%in);
&redirect("");

   070701000703b8000081e40000000000000002000000013ac038a300000a78000000200000000000000000000000000000001a00000003reloc/lilo/save_image.cgi #!/usr/local/bin/perl
# save_image.cgi

require './lilo-lib.pl';
&ReadParse();

&lock_file($config{'lilo_conf'});
$conf = &get_lilo_conf();
if ($in{'delete'}) {
	# deleting an existing image
	$image = $conf->[$in{'idx'}];
	&save_directive($conf, $image);
	&flush_file_lines();
	&unlock_file($config{'lilo_conf'});
	&webmin_log("delete", "image",
		    &find_value("label", $image->{'members'}), \%in);
	&redirect("");
	exit;
	}
elsif ($in{'new'}) {
	# creating a new kernel image
	$image = { 'name' => 'image',
		   'members' => [ ] };
	}
else {
	# updating an existing image
	$oldimage = $image = $conf->[$in{'idx'}];
	}

# Validate and store inputs
$in{'label'} =~ /\S+/ || &error($text{'image_ename'});
&save_subdirective($image, "label", $in{'label'});
$in{'optional'} || -r $in{'image'} ||
	&error(&text('image_ekernel', $in{'image'}));
$image->{'value'} = $in{'image'};
if ($in{'opts'} == 0) {
	&save_subdirective($image, "append");
	&save_subdirective($image, "literal");
	}
elsif ($in{'opts'} == 1) {
	&save_subdirective($image, "append", "\"$in{'append'}\"");
	&save_subdirective($image, "literal");
	}
else {
	&save_subdirective($image, "append");
	&save_subdirective($image, "literal", "\"$in{'append'}\"");
	}
if ($in{'rmode'} == 0) {
	&save_subdirective($image, "root");
	}
elsif ($in{'rmode'} == 1) {
	&save_subdirective($image, "root", "current");
	}
elsif ($in{'rmode'} == 2) {
	&save_subdirective($image, "root", $in{'root'});
	}
if ($in{'initrd_def'}) {
	&save_subdirective($image, "initrd");
	}
else {
	-r $in{'initrd'} || &error(&text('image_einitrd', $in{'initrd'}));
	&save_subdirective($image, "initrd", $in{'initrd'});
	}
&save_subdirective($image, "read-only", $in{'ro'} == 1 ? "" : undef);
&save_subdirective($image, "read-write", $in{'ro'} == 2 ? "" : undef);
if ($in{'vga'} eq "") {
	&save_subdirective($image, "vga");
	}
elsif ($in{'vga'} eq "other") {
	$in{'vgaother'} =~ /^\d+$/ ||
		&error("VGA text mode must be an integer");
	&save_subdirective($image, "vga", $in{'vgaother'});
	}
else {
	&save_subdirective($image, "vga", $in{'vga'});
	}
if ($in{'passmode'} == 0) {
	&save_subdirective($image, "password");
	}
else {
	&save_subdirective($image, "password", $in{'password'});
	}
&save_subdirective($image, "restricted", $in{'restricted'} ? "" : undef);
&save_subdirective($image, "lock", $in{'lock'} ? "" : undef);
&save_subdirective($image, "optional", $in{'optional'} ? "" : undef);

# Save the actual image structure
&save_directive($conf, $oldimage, $image);
&flush_file_lines();
&unlock_file($config{'lilo_conf'});
&webmin_log($in{'new'} ? 'create' : 'modify', "image",
	    &find_value("label", $image->{'members'}), \%in);
&redirect("");

070701000703b9000081e40000000000000002000000013ac038a300000536000000200000000000000000000000000000001a00000003reloc/lilo/save_other.cgi #!/usr/local/bin/perl
# save_other.cgi

require './lilo-lib.pl';
&ReadParse();

&lock_file($config{'lilo_conf'});
$conf = &get_lilo_conf();
if ($in{'delete'}) {
	# deleting an existing partition
	$other = $conf->[$in{'idx'}];
	&save_directive($conf, $other);
	&flush_file_lines();
	&unlock_file($config{'lilo_conf'});
	&webmin_log("delete", "other",
		    &find_value("label", $other->{'members'}), \%in);
	&redirect("");
	exit;
	}
elsif ($in{'new'}) {
	# creating a new boot partition
	$other = { 'name' => 'other',
		   'members' => [ ] };
	}
else {
	# updating an existing image
	$oldother = $other = $conf->[$in{'idx'}];
	}

# Validate and store inputs
$in{'label'} =~ /\S+/ || &error($text{'other_ename'});
&save_subdirective($other, "label", $in{'label'});
$other->{'value'} = $in{'other'};
if ($in{'tablemode'} == 0) {
	&save_subdirective($other, "table");
	}
else {
	&save_subdirective($other, "table", $in{'table'});
	}
if ($in{'passmode'} == 0) {
	&save_subdirective($other, "password");
	}
else {
	&save_subdirective($other, "password", $in{'password'});
	}

# Save the actual partition structure
&save_directive($conf, $oldother, $other);
&flush_file_lines();
&unlock_file($config{'lilo_conf'});
&webmin_log($in{'new'} ? 'create' : 'modify', "other",
	    &find_value("label", $other->{'members'}), \%in);
&redirect("");

  07070100074ba9000041ed0000000000000001000000043ac03c0c00000000000000200000000000000000000000000000000e00000003reloc/lpadmin 07070100074baa000081a40000000000000002000000013ac0389a00000c6b000000200000000000000000000000000000001e00000003reloc/lpadmin/acl_security.pl 
require './lpadmin-lib.pl';

# acl_security_form(&options)
# Output HTML for editing security options for the lpadmin module
sub acl_security_form
{
print "<tr> <td valign=top><b>$text{'acl_printers'}</b></td>\n";
print "<td colspan=3>\n";
printf "<input name=printers_def type=radio value=1 %s> %s\n",
	$_[0]->{'printers'} eq '*' ? 'checked' : '', $text{'acl_pall'};
printf "<input name=printers_def type=radio value=0 %s> %s<br>\n",
	$_[0]->{'printers'} eq '*' ? '' : 'checked', $text{'acl_psel'};
print "<select name=printers multiple size=4 width=15>\n";
local @plist = &list_printers();
local ($p, %pcan);
map { $pcan{$_}++ } split(/\s+/, $_[0]->{'printers'});
foreach $p (@plist) {
	local $prn = &get_printer($p);
	printf "<option value=%s %s>%s (%s)\n",
		$p, $pcan{$p} ? 'selected' : '',
		$prn->{'desc'}, $p;
	}
print "</select></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'acl_cancel'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=cancel value=0 %s> $text{'no'}\n",
	$_[0]->{'cancel'} == 0 ? "checked" : "";
printf "<input type=radio name=cancel value=1 %s> $text{'yes'}\n",
	$_[0]->{'cancel'} == 1 ? "checked" : "";
printf "<input type=radio name=cancel value=2 %s> $text{'acl_listed'}<br>\n",
	$_[0]->{'cancel'} == 2 ? "checked" : "";
print "<select name=jobs multiple size=4 width=15>\n";
map { $jcan{$_}++ } split(/\s+/, $_[0]->{'jobs'});
foreach $p (@plist) {
	local $prn = &get_printer($p);
	printf "<option value=%s %s>%s (%s)\n",
		$p, $jcan{$p} ? 'selected' : '',
		$prn->{'desc'}, $p;
	}
print "</select></td> </tr>\n";

print "<tr> <td><b>$text{'acl_add'}</b></td>\n";
printf "<td><input type=radio name=add value=1 %s> $text{'yes'}\n",
	$_[0]->{'add'} ? "checked" : "";
printf "<input type=radio name=add value=0 %s> $text{'no'}</td>\n",
	$_[0]->{'add'} ? "" : "checked";

print "<td><b>$text{'acl_stop'}</b></td>\n";
printf "<td><input type=radio name=stop value=1 %s> $text{'yes'}\n",
	$_[0]->{'stop'} == 1 ? "checked" : "";
printf "<input type=radio name=stop value=2 %s> $text{'acl_restart'}\n",
	$_[0]->{'stop'} == 2 ? "checked" : "";
printf "<input type=radio name=stop value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'stop'} == 0 ? "checked" : "";

print "<tr> <td><b>$text{'acl_view'}</b></td>\n";
printf "<td><input type=radio name=view value=1 %s> $text{'yes'}\n",
	$_[0]->{'view'} ? "checked" : "";
printf "<input type=radio name=view value=0 %s> $text{'no'}</td>\n",
	$_[0]->{'view'} ? "" : "checked";

print "<td><b>$text{'acl_test'}</b></td>\n";
printf "<td><input type=radio name=test value=1 %s> $text{'yes'}\n",
	$_[0]->{'test'} ? "checked" : "";
printf "<input type=radio name=test value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'test'} ? "" : "checked";
}

# acl_security_save(&options)
# Parse the form for security options for the lpadmin module
sub acl_security_save
{
if ($in{'printers_def'}) {
	$_[0]->{'printers'} = '*';
	}
else {
	$_[0]->{'printers'} = join(" ", split(/\0/, $in{'printers'}));
	}
$_[0]->{'cancel'} = $in{'cancel'};
$_[0]->{'jobs'} = $in{'cancel'} == 2 ? join(" ", split(/\0/, $in{'jobs'})) : "";
$_[0]->{'add'} = $in{'add'};
$_[0]->{'stop'} = $in{'stop'};
$_[0]->{'view'} = $in{'view'};
}

 07070100074bab000081a40000000000000002000000013ac0389a000010c3000000200000000000000000000000000000001800000003reloc/lpadmin/ascii.txt   
                         Webmin Printer Test Page
                         ------------------------

This is the printer test page for the Webmin Printer Administration module.
If you can read this, your printer is probably working properly.

Below should be a table of all the printable ASCII characters.

Oct  Hex  Dec    Character              Oct  Hex  Dec    Character
---  ---  ---    ---------              ---  ---  ---    ---------
 40   20   32                            41   21   33    !                      
 42   22   34    "                       43   23   35    #                      
 44   24   36    $                       45   25   37    %                      
 46   26   38    &                       47   27   39    '                      
 50   28   40    (                       51   29   41    )                      
 52   2a   42    *                       53   2b   43    +                      
 54   2c   44    ,                       55   2d   45    -                      
 56   2e   46    .                       57   2f   47    /                      
 60   30   48    0                       61   31   49    1                      
 62   32   50    2                       63   33   51    3                      
 64   34   52    4                       65   35   53    5                      
 66   36   54    6                       67   37   55    7                      
 70   38   56    8                       71   39   57    9                      
 72   3a   58    :                       73   3b   59    ;                      
 74   3c   60    <                       75   3d   61    =                      
 76   3e   62    >                       77   3f   63    ?                      
100   40   64    @                      101   41   65    A                      
102   42   66    B                      103   43   67    C                      
104   44   68    D                      105   45   69    E                      
106   46   70    F                      107   47   71    G                      
110   48   72    H                      111   49   73    I                      
112   4a   74    J                      113   4b   75    K                      
114   4c   76    L                      115   4d   77    M                      
116   4e   78    N                      117   4f   79    O                      
120   50   80    P                      121   51   81    Q                      
122   52   82    R                      123   53   83    S                      
124   54   84    T                      125   55   85    U                      
126   56   86    V                      127   57   87    W                      
130   58   88    X                      131   59   89    Y                      
132   5a   90    Z                      133   5b   91    [                      
134   5c   92    \                      135   5d   93    ]                      
136   5e   94    ^                      137   5f   95    _                      
140   60   96    `                      141   61   97    a                      
142   62   98    b                      143   63   99    c                      
144   64  100    d                      145   65  101    e                      
146   66  102    f                      147   67  103    g                      
150   68  104    h                      151   69  105    i                      
152   6a  106    j                      153   6b  107    k                      
154   6c  108    l                      155   6d  109    m                      
156   6e  110    n                      157   6f  111    o                      
160   70  112    p                      161   71  113    q                      
162   72  114    r                      163   73  115    s                      
164   74  116    t                      165   75  117    u                      
166   76  118    v                      167   77  119    w                      
170   78  120    x                      171   79  121    y                      
172   7a  122    z                      173   7b  123    {                      
174   7c  124    |                      175   7d  125    }                      
176   7e  126    ~                      

 07070100074bac000081e40000000000000002000000013ac0389a00000230000000200000000000000000000000000000001f00000003reloc/lpadmin/base_coas_driver    #!/bin/sh
source /etc/sysconfig/printers/XXX
if [ "$PAPERSIZE" = "a4" ]; then
  T=A4
else
  T=Letter
fi

enscript -M $T -Z -p - |

if [ "$DOUBLEPAGE" = "true" ]; then
  psnup -d -b0.6cm -p$PAPERSIZE -2
else
  cat -
fi |

if [ "$GSDEVICE" = "PostScript" ]; then
	cat -
elif [ "$GSDEVICE" = "uniprint" ]; then
	exec 3>&1 1>&2
	gs @$UPP.upp -q -sOutputFile="|cat 1>&3"
else
	gs -q $GSOPTIONS -sDEVICE=$GSDEVICE \
		-r$RESOLUTION \
		-sPAPERSIZE=$PAPERSIZE \
		-dNOPAUSE \
		-dSAFER \
		-sOutputFile=- -
fi

if [ "$SENDEOF" != "" ]; then
	printf "\004"
fi

exit 0
07070100074bad000081a40000000000000002000000013ac0389a00000afb000000200000000000000000000000000000001500000003reloc/lpadmin/bw.fig  #FIG 3.2
Portrait
Center
Inches
A4      
100.00
Single
-2
1200 2
0 32 #8e8e8e
0 33 #8e8e8e
0 34 #8e8e8e
0 35 #8e8e8e
0 36 #8e8e8e
0 37 #8e8e8e
0 38 #414541
0 39 #8e8e8e
0 40 #414541
0 41 #8e8e8e
0 42 #414541
0 43 #8e8e8e
0 44 #414541
0 45 #8e8e8e
0 46 #414541
0 47 #8e8e8e
0 48 #414541
0 49 #8e8e8e
0 50 #414541
0 51 #8e8e8e
0 52 #414541
0 53 #8e8e8e
0 54 #414541
0 55 #8e8e8e
0 56 #414541
0 57 #8e8e8e
0 58 #414541
0 59 #8e8e8e
0 60 #8e8e8e
0 61 #8e8e8e
0 62 #8e8e8e
0 63 #8e8e8e
0 64 #8e8e8e
0 65 #8e8e8e
0 66 #8e8e8e
0 67 #8e8e8e
0 68 #8e8e8e
0 69 #414541
6 600 1800 9600 6000
2 1 0 1 0 7 100 0 -1 0.000 0 0 -1 0 0 2
	 900 2100 9300 5700
2 1 0 2 0 7 100 0 -1 0.000 0 0 -1 0 0 2
	 900 2700 9300 5100
2 1 0 3 0 7 100 0 -1 0.000 0 0 -1 0 0 2
	 900 3300 9300 4500
2 1 0 4 0 7 100 0 -1 0.000 0 0 -1 0 0 2
	 900 3900 9300 3900
2 1 0 5 0 7 100 0 -1 0.000 0 0 -1 0 0 2
	 900 4500 9300 3300
2 1 0 6 0 7 100 0 -1 0.000 0 0 -1 0 0 2
	 900 5100 9300 2700
2 1 0 7 0 7 100 0 -1 0.000 0 0 -1 0 0 2
	 900 5700 9300 2100
-6
6 900 6300 9300 7800
4 0 0 100 0 0 24 0.0000 4 330 7545 900 6600 This is the printer test page for the Webmin Printer\001
4 0 0 100 0 0 24 0.0000 4 330 8340 900 7020 Administration module. If you can read this, your printer\001
4 0 0 100 0 0 24 0.0000 4 330 4260 900 7440 is probably working properly.\001
-6
6 900 8100 5100 11700
2 2 0 0 0 7 100 0 17 0.000 0 0 -1 0 0 5
	 1500 8100 2100 8100 2100 11700 1500 11700 1500 8100
2 2 0 0 0 7 100 0 15 0.000 0 0 -1 0 0 5
	 2100 8100 2700 8100 2700 11700 2100 11700 2100 8100
2 2 0 0 0 7 100 0 13 0.000 0 0 -1 0 0 5
	 2700 8100 3300 8100 3300 11700 2700 11700 2700 8100
2 2 0 0 0 7 100 0 11 0.000 0 0 -1 0 0 5
	 3300 8100 3900 8100 3900 11700 3300 11700 3300 8100
2 2 0 0 0 7 100 0 9 0.000 0 0 -1 0 0 5
	 3900 8100 4500 8100 4500 11700 3900 11700 3900 8100
2 2 0 0 0 7 100 0 19 0.000 0 0 -1 0 0 5
	 1500 8100 900 8100 900 11700 1500 11700 1500 8100
2 2 0 0 0 7 100 0 7 0.000 0 0 -1 0 0 5
	 4500 8100 5100 8100 5100 11700 4500 11700 4500 8100
-6
6 5100 8100 9300 11700
2 2 0 0 0 7 100 0 17 0.000 0 0 -1 0 0 5
	 8700 8100 8100 8100 8100 11700 8700 11700 8700 8100
2 2 0 0 0 7 100 0 15 0.000 0 0 -1 0 0 5
	 8100 8100 7500 8100 7500 11700 8100 11700 8100 8100
2 2 0 0 0 7 100 0 13 0.000 0 0 -1 0 0 5
	 7500 8100 6900 8100 6900 11700 7500 11700 7500 8100
2 2 0 0 0 7 100 0 11 0.000 0 0 -1 0 0 5
	 6900 8100 6300 8100 6300 11700 6900 11700 6900 8100
2 2 0 0 0 7 100 0 9 0.000 0 0 -1 0 0 5
	 6300 8100 5700 8100 5700 11700 6300 11700 6300 8100
2 2 0 0 0 7 100 0 19 0.000 0 0 -1 0 0 5
	 8700 8100 9300 8100 9300 11700 8700 11700 8700 8100
2 2 0 0 0 7 100 0 7 0.000 0 0 -1 0 0 5
	 5700 8100 5100 8100 5100 11700 5700 11700 5700 8100
-6
4 0 0 100 0 0 72 0.0000 4 960 8250 900 1500 Webmin Test Page\001
4 0 0 100 0 0 72 0.0000 4 960 8250 900 13200 Webmin Test Page\001
 07070100074bae000081a40000000000000002000000013ac03899000019d7000000200000000000000000000000000000001400000003reloc/lpadmin/bw.ps   %!PS-Adobe-2.0
%%Title: bw.ps
%%Creator: fig2dev Version 3.2 Patchlevel 1
%%CreationDate: Mon Dec  4 16:12:32 2000
%%For: jcameron@vaio.home (Jamie Cameron)
%%Orientation: Portrait
%%BoundingBox: 49 32 568 799
%%Pages: 1
%%BeginSetup
%%IncludeFeature: *PageSize A4
%%EndSetup
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
/col32 {0.557 0.557 0.557 srgb} bind def
/col33 {0.557 0.557 0.557 srgb} bind def
/col34 {0.557 0.557 0.557 srgb} bind def
/col35 {0.557 0.557 0.557 srgb} bind def
/col36 {0.557 0.557 0.557 srgb} bind def
/col37 {0.557 0.557 0.557 srgb} bind def
/col38 {0.255 0.271 0.255 srgb} bind def
/col39 {0.557 0.557 0.557 srgb} bind def
/col40 {0.255 0.271 0.255 srgb} bind def
/col41 {0.557 0.557 0.557 srgb} bind def
/col42 {0.255 0.271 0.255 srgb} bind def
/col43 {0.557 0.557 0.557 srgb} bind def
/col44 {0.255 0.271 0.255 srgb} bind def
/col45 {0.557 0.557 0.557 srgb} bind def
/col46 {0.255 0.271 0.255 srgb} bind def
/col47 {0.557 0.557 0.557 srgb} bind def
/col48 {0.255 0.271 0.255 srgb} bind def
/col49 {0.557 0.557 0.557 srgb} bind def
/col50 {0.255 0.271 0.255 srgb} bind def
/col51 {0.557 0.557 0.557 srgb} bind def
/col52 {0.255 0.271 0.255 srgb} bind def
/col53 {0.557 0.557 0.557 srgb} bind def
/col54 {0.255 0.271 0.255 srgb} bind def
/col55 {0.557 0.557 0.557 srgb} bind def
/col56 {0.255 0.271 0.255 srgb} bind def
/col57 {0.557 0.557 0.557 srgb} bind def
/col58 {0.255 0.271 0.255 srgb} bind def
/col59 {0.557 0.557 0.557 srgb} bind def
/col60 {0.557 0.557 0.557 srgb} bind def
/col61 {0.557 0.557 0.557 srgb} bind def
/col62 {0.557 0.557 0.557 srgb} bind def
/col63 {0.557 0.557 0.557 srgb} bind def
/col64 {0.557 0.557 0.557 srgb} bind def
/col65 {0.557 0.557 0.557 srgb} bind def
/col66 {0.557 0.557 0.557 srgb} bind def
/col67 {0.557 0.557 0.557 srgb} bind def
/col68 {0.557 0.557 0.557 srgb} bind def
/col69 {0.255 0.271 0.255 srgb} bind def

end
save
0.0 842.0 translate
1 -1 scale

/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
  bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
  4 -2 roll mul srgb} bind def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
%%EndProlog

$F2psBegin
10 setmiterlimit
n -1000 14488 m -1000 -1000 l 10453 -1000 l 10453 14488 l cp clip
 0.06000 0.06000 sc
%%Page: 1 1
% Polyline
7.500 slw
n 900 2100 m 9300 5700 l gs col0 s gr 
% Polyline
15.000 slw
n 900 2700 m 9300 5100 l gs col0 s gr 
% Polyline
30.000 slw
n 900 3300 m 9300 4500 l gs col0 s gr 
% Polyline
45.000 slw
n 900 3900 m 9300 3900 l gs col0 s gr 
% Polyline
60.000 slw
n 900 4500 m 9300 3300 l gs col0 s gr 
% Polyline
75.000 slw
n 900 5100 m 9300 2700 l gs col0 s gr 
% Polyline
90.000 slw
n 900 5700 m 9300 2100 l gs col0 s gr 
/Times-Roman ff 360.00 scf sf
900 6600 m
gs 1 -1 sc (This is the printer test page for the Webmin Printer) col0 sh gr
/Times-Roman ff 360.00 scf sf
900 7020 m
gs 1 -1 sc (Administration module. If you can read this, your printer) col0 sh gr
/Times-Roman ff 360.00 scf sf
900 7440 m
gs 1 -1 sc (is probably working properly.) col0 sh gr
% Polyline
0.000 slw
n 1500 8100 m 2100 8100 l 2100 11700 l 1500 11700 l cp gs col7 0.85 shd ef gr 
% Polyline
n 2100 8100 m 2700 8100 l 2700 11700 l 2100 11700 l cp gs col7 0.75 shd ef gr 
% Polyline
n 2700 8100 m 3300 8100 l 3300 11700 l 2700 11700 l cp gs col7 0.65 shd ef gr 
% Polyline
n 3300 8100 m 3900 8100 l 3900 11700 l 3300 11700 l cp gs col7 0.55 shd ef gr 
% Polyline
n 3900 8100 m 4500 8100 l 4500 11700 l 3900 11700 l cp gs col7 0.45 shd ef gr 
% Polyline
n 1500 8100 m 900 8100 l 900 11700 l 1500 11700 l cp gs col7 0.95 shd ef gr 
% Polyline
n 4500 8100 m 5100 8100 l 5100 11700 l 4500 11700 l cp gs col7 0.35 shd ef gr 
% Polyline
n 8700 8100 m 8100 8100 l 8100 11700 l 8700 11700 l cp gs col7 0.85 shd ef gr 
% Polyline
n 8100 8100 m 7500 8100 l 7500 11700 l 8100 11700 l cp gs col7 0.75 shd ef gr 
% Polyline
n 7500 8100 m 6900 8100 l 6900 11700 l 7500 11700 l cp gs col7 0.65 shd ef gr 
% Polyline
n 6900 8100 m 6300 8100 l 6300 11700 l 6900 11700 l cp gs col7 0.55 shd ef gr 
% Polyline
n 6300 8100 m 5700 8100 l 5700 11700 l 6300 11700 l cp gs col7 0.45 shd ef gr 
% Polyline
n 8700 8100 m 9300 8100 l 9300 11700 l 8700 11700 l cp gs col7 0.95 shd ef gr 
% Polyline
n 5700 8100 m 5100 8100 l 5100 11700 l 5700 11700 l cp gs col7 0.35 shd ef gr 
/Times-Roman ff 1080.00 scf sf
900 1500 m
gs 1 -1 sc (Webmin Test Page) col0 sh gr
/Times-Roman ff 1080.00 scf sf
900 13200 m
gs 1 -1 sc (Webmin Test Page) col0 sh gr
$F2psEnd
rs
showpage
 07070100074baf000081a40000000000000002000000013ac0389a000030b7000000200000000000000000000000000000002000000003reloc/lpadmin/caldera-driver.pl   # caldera-driver.pl
# Functions for printer drivers as generated by COAS

%paper_sizes = ( 'a4', 'A4',
		 'a3', 'A3',
		 'a5', 'A5',
		 'letter', 'US Letter',
		 'legal', 'Legal',
		 'ledger', 'Ledger' );
$driver_dir = "/etc/sysconfig/printers";
$base_driver = "/usr/libexec/printers/genericfilter";
open(BASE, $base_driver);
$base_driver_text = join(<BASE>);
close(BASE);
$webmin_windows_driver = 1;

# is_windows_driver(path)
# Returns the server, share, username, password, workgroup, program
# if path is a webmin windows driver
sub is_windows_driver
{
return &is_webmin_windows_driver(@_);
}

# is_driver(path, &printer)
# Returns the driver name and dpi if some path is a webmin driver, or undef
sub is_driver
{
if (!$_[0]) {
	return { 'mode' => 0,
		 'desc' => "$text{'caldera_none'}" };
	}
open(DRV, $_[0]);
local @lines = <DRV>;
close(DRV);
local %conf;
if ($lines[1] =~ /^source ($driver_dir\/\S+)/) {
	# Looks like a 2.3 caldera driver! Read the sysconfig file
	&read_env_file($1, \%conf);
	if ($conf{'GSDEVICE'} eq 'NET' || $conf{'GSDEVICE'} eq 'RAW') {
		# Driver isn't even used
		return { 'mode' => 0,
			 'desc' => 'None' };
		}
	elsif ($conf{'GSDEVICE'} eq 'uniprint') {
		# Uniprint driver
		foreach $u (&list_uniprint()) {
			$desc = $u->[1] if ($u->[0] eq $conf{'UPP'});
			}
		$desc =~ s/,.*$//g;
		return { 'mode' => 3,
			 'upp' => $conf{'UPP'},
			 'paper' => $conf{'PAPERSIZE'},
			 'double' => lc($conf{'DOUBLEPAGE'}),
			 'eof' => lc($conf{'SENDEOF'}),
			 'desc' => $desc ? $desc : $conf{'UPP'} };
		}
	else {
		# A caldera printer driver
		open(COAS, $config{'coas_printers'});
		local $plist = &parse_coas(COAS);
		close(COAS);
		local ($prn, $p);
		foreach $p (values %$plist) {
			$prn = $p
				if ($p->{'type'}->{'0'} eq $conf{'GSDEVICE'} &&
				    !$desc);
			}
		return { 'mode' => 1,
			 'gsdevice' => $conf{'GSDEVICE'},
			 'gsname' => $conf{'GSNAME'},
			 'res' => $conf{'RESOLUTION'},
			 'paper' => $conf{'PAPERSIZE'},
			 'eof' => lc($conf{'SENDEOF'}),
			 'double' => lc($conf{'DOUBLEPAGE'}),
			 'gsopts' => $conf{'GSOPTS'},
			 'ddesc' => $prn->{'description'},
			 'desc' => $conf{'GSNAME'} ? $conf{'GSNAME'}
						   : $prn->{'description'} };
		}
	}
elsif (join(@lines) eq $base_driver_text) {
	# Looks like a 2.4 caldera driver!
	&read_env_file("$driver_dir/$_[1]->{'name'}", \%conf);
	if ($conf{'GSDEVICE'} eq 'NET' || $conf{'GSDEVICE'} eq 'RAW') {
		# Driver isn't even used
		return { 'mode' => 0,
			 'desc' => 'None' };
		}
	else {
		# A new caldera printer driver
		open(COAS, $config{'coas_printers'});
		local $plist = &parse_coas(COAS);
		close(COAS);
		local ($prn, $p, $type);
		foreach $p (values %$plist) {
			$type = ref($p->{'type'}) ? $p->{'type'}->{'0'}
						  : $p->{'type'};
			$prn = $p if ($type eq $conf{'GSDEVICE'} && !$prn &&
				($p->{'description'} eq $conf{'DESC'} ||
				 $p->{'description'} eq $conf{'GSNAME'}));
			}
		if (!$prn) {
			foreach $p (values %$plist) {
				$type = ref($p->{'type'}) ? $p->{'type'}->{'0'}
							  : $p->{'type'};
				$prn = $p if ($type eq $conf{'GSDEVICE'} &&
					      !$prn);
				}
			}
		return { 'mode' => 1,
			 'gsdevice' => $conf{'GSDEVICE'},
			 'gsname' => $conf{'GSNAME'},
			 'res' => $conf{'RESOLUTION'},
			 'paper' => $conf{'PAPERSIZE'},
			 'eof' => lc($conf{'SENDEOF'}),
			 'double' => lc($conf{'DOUBLEPAGE'}),
			 'gsopts' => $conf{'GSOPTS'},
			 'upp' => $conf{'UPP'},
			 'ddesc' => $prn->{'description'},
			 'desc' => $conf{'GSNAME'} ? $conf{'GSNAME'}
						   : $prn->{'description'} };
		}
	}
else {
	# A driver of some kind, but not caldera's
	return { 'mode' => 2,
		 'file' => $_[0],
		 'desc' => $_[0] };
	}
}

# create_windows_driver(&printer, &driver)
sub create_windows_driver
{
return &create_webmin_windows_driver(@_);
}

# create_driver(&printer, &driver)
sub create_driver
{
&lock_file("$driver_dir/$_[0]->{'name'}");
if ($_[1]->{'mode'} == 0) {
	unlink("$driver_dir/$_[0]->{'name'}");
	&unlock_file("$driver_dir/$_[0]->{'name'}");
	return undef;
	}
elsif ($_[1]->{'mode'} == 2) {
	unlink("$driver_dir/$_[0]->{'name'}");
	&unlock_file("$driver_dir/$_[0]->{'name'}");
	return $_[1]->{'file'};
	}
else {
	# Create or update the parameters file
	local %conf;
	&read_env_file("$driver_dir/$_[0]->{'name'}", \%conf);
	$conf{'GSDEVICE'} = $_[1]->{'gsdevice'};
	$conf{'GSNAME'} = $_[1]->{'gsname'};
	$conf{'NAME'} = $_[0]->{'name'};
	$conf{'RESOLUTION'} = $_[1]->{'res'};
	$conf{'PAPERSIZE'} = $_[1]->{'paper'};
	$conf{'DESC'} = $_[0]->{'desc'};
	$conf{'SENDEOF'} = $_[1]->{'eof'};
	$conf{'DOUBLEPAGE'} = $_[1]->{'double'};
	$conf{'GSOPTS'} = $_[1]->{'gsopts'};
	$conf{'UPP'} = $_[1]->{'upp'};
	&write_env_file("$driver_dir/$_[0]->{'name'}", \%conf);
	&unlock_file("$driver_dir/$_[0]->{'name'}");

	&lock_file("$config{'spool_dir'}/$_[0]->{'name'}");
	mkdir("$config{'spool_dir'}/$_[0]->{'name'}", 0755);
	&unlock_file("$config{'spool_dir'}/$_[0]->{'name'}");
	local $drv = "$config{'spool_dir'}/$_[0]->{'name'}/printfilter";
	&lock_file($drv);
	if ($gconfig{'os_version'} >= 2.4) {
		# Create the 2.4 driver program
		system("cp $base_driver $drv");
		}
	else {
		# Create the 2.3 driver program
		open(DRIVER, $base_driver);
		local @lines = <DRIVER>;
		close(DRIVER);
		open(DRV, ">$drv");
		print DRV "#!/bin/bash\n";
		print DRV "source $driver_dir/$_[0]->{'name'}\n";
		print DRV @lines;
		close(DRV);
		}
	&unlock_file($drv);
	return $drv;
	}
}

# delete_driver(name)
sub delete_driver
{
&delete_webmin_driver($_[0]);
&lock_file("$driver_dir/$_[0]");
unlink("$driver_dir/$_[0]");
&unlock_file("$driver_dir/$_[0]");
}

# driver_input(&printer, &driver)
sub driver_input
{
local $mode = $_[1]->{'mode'};
printf "<tr> <td><input type=radio name=mode value=0 %s> %s</td>\n",
	$mode == 0 ? 'checked' : '', $text{'caldera_none'};
print "<td>($text{'caldera_nonemsg'})</td> </tr>\n";
printf "<tr> <td><input type=radio name=mode value=2 %s> %s</td>",
	$mode == 2 ? 'checked' : '', $text{'caldera_prog'};
printf "<td><input name=program size=40 value='%s'></td> </tr>\n",
	$mode == 2 ? $_[0]->{'iface'} : '';

# Normal driver options
printf "<tr> <td valign=top><input type=radio name=mode value=1 %s> %s</td>\n",
	$mode == 1 ? 'checked' : '', $text{'caldera_coas'};
print "<td><table width=100%>\n";

local $sels = $gconfig{'os_version'} < 2.4 ? 5 : 10;
print "<tr> <td valign=top><b>$text{'caldera_printer'}</b></td>\n";
print "<td colspan=3><select size=$sels name=gsdevice onChange='setres(0)'>\n";
open(COAS, $config{'coas_printers'});
local $plist = &parse_coas(COAS);
close(COAS);
local ($i, $j, $p, $k, $found, $select_res);
foreach $p (values %$plist) {
	if ($p->{'description'} eq $_[1]->{'gsname'} &&
	    $p->{'type'}->{'0'} ne $_[1]->{'gsdevice'}) {
		# COAS has changed the device
		$_[1]->{'gsname'} = undef;
		}
	}
foreach $k (sort { $a <=> $b } keys %$plist) {
	$p = $plist->{$k};
	local $type = ref($p->{'type'}) ? $p->{'type'}->{'0'}
					: $p->{'type'};
	next if ($type =~ /NET|RAW/);
	local @thisres = values %{$p->{'resolution'}};
	#local $got = ($_[1]->{'gsname'} eq $p->{'description'} &&
	#	      $_[1]->{'gsdevice'} eq $type) ||
	#	     (!$_[1]->{'gsname'} && !$found &&
	#	      $_[1]->{'gsdevice'} eq $type);
	local $got = $_[1]->{'ddesc'} eq $p->{'description'};
	printf "<option %s value='%s'>%s\n",
		$got ? 'selected' : '',
		$p->{'description'}.";".join(";", @thisres),
		$p->{'description'};
	$found = $p if ($got);
	$select_res = &indexof($_[1]->{'res'}, @thisres) if ($got);
	map { $gotres{$_}++ } @thisres;
	}
print "</select><select name=res size=$sels>\n";
foreach $r (sort { $a <=> $b} keys %gotres) {
	printf "<option %s>%s\n",
		$_[1]->{'res'} eq $r ? 'selected' : '', $r;
	}
print "</select></td> </tr>\n";

print "<tr> <td><b>$text{'caldera_eof'}</b></td>\n";
printf "<td><input type=radio name=eof value=true %s> $text{'yes'}\n",
	$_[1]->{'eof'} eq 'true' ? 'checked' : '';
printf "<input type=radio name=eof value=false %s> $text{'no'}</td>\n",
	$_[1]->{'eof'} eq 'true' ? '' : 'checked';

print "<td><b>$text{'caldera_paper'}</b></td> <td><select name=paper>\n";
foreach $p (sort { $a cmp $b } keys %paper_sizes) {
	printf "<option value='%s' %s>%s\n",
		$p, $_[1]->{'paper'} eq $p ? 'selected' : '',
		$paper_sizes{$p};
	}
print "</select></td> </tr>\n";

print "<tr> <td><b>$text{'caldera_double'}</b></td>\n";
printf "<td><input type=radio name=double value=true %s> $text{'yes'}\n",
	$_[1]->{'double'} eq 'true' ? 'checked' : '';
printf "<input type=radio name=double value=false %s> $text{'no'}</td>\n",
	$_[1]->{'double'} eq 'true' ? '' : 'checked';

if ($found) {
	$_[1]->{'gsopts'} =~ s/\s*$found->{'gsoptions'}\s*//;
	}
print "<td><b>$text{'caldera_gsopts'}</b></td>\n";
printf "<td><input name=gsopts size=30 value='%s'></td> </tr>\n",
	$_[1]->{'gsopts'};

print "</table></td></tr>\n";

if ($gconfig{'os_version'} < 2.4) {
	# Uniprint driver options
	printf "<tr> <td valign=top><input type=radio name=mode value=3 %s> %s</td>\n",
		$mode == 3 ? 'checked' : '', $text{'caldera_uniprint'};
	print "<td><table width=100%>\n";

	print "<tr> <td valign=top><b>$text{'caldera_printer'}</b></td>\n";
	print "<td colspan=3><select name=uniprint size=5>\n";
	foreach $u (&list_uniprint()) {
		printf "<option value=%s %s>%s\n",
			$u->[0], $u->[0] eq $_[1]->{'upp'} ? 'selected' : '',
			$u->[1];
		}
	closedir(DIR);
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'caldera_eof'}</b></td>\n";
	printf "<td><input type=radio name=ueof value=true %s> $text{'yes'}\n",
		$_[1]->{'eof'} eq 'true' ? 'checked' : '';
	printf "<input type=radio name=ueof value=false %s> $text{'no'}</td>\n",
		$_[1]->{'eof'} eq 'true' ? '' : 'checked';

	print "<td><b>$text{'caldera_paper'}</b></td> <td><select name=upaper>\n";
	foreach $p (sort { $a cmp $b } keys %paper_sizes) {
		printf "<option value='%s' %s>%s\n",
			$p, $_[1]->{'paper'} eq $p ? 'selected' : '',
			$paper_sizes{$p};
		}
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'caldera_double'}</b></td>\n";
	printf "<td><input type=radio name=udouble value=true %s> $text{'yes'}\n",
		$_[1]->{'double'} eq 'true' ? 'checked' : '';
	printf "<input type=radio name=udouble value=false %s> $text{'no'}</td>\n",
		$_[1]->{'double'} eq 'true' ? '' : 'checked';

	print "</table></td></tr>\n";
	}

return <<EOF;
<script>
function setres(sel)
{
var idx = document.forms[0].gsdevice.selectedIndex;
var v = new String(document.forms[0].gsdevice.options[idx].value);
var vv = v.split(";");
var res = document.forms[0].res;
res.length = 0;
for(var i=1; i<vv.length; i++) {
	res.options[i-1] = new Option(vv[i], vv[i]);
	}
if (res.length > 0) {
	res.options[sel].selected = true;
	}
}
setres($select_res);
</script>
EOF
}

# parse_driver()
# Parse driver selection from %in and return a driver structure
sub parse_driver
{
if ($in{'mode'} == 0) {
	return { 'mode' => 0 };
	}
elsif ($in{'mode'} == 2) {
	$in{'program'} =~ /^(\S+)/ && -x $1 ||
		&error(&text('caldera_eprog', $in{'program'}));
	return { 'mode' => 2,
		 'file' => $in{'program'} };
	}
elsif ($in{'mode'} == 1) {
	# Normal ghostscript driver
	open(COAS, $config{'coas_printers'});
	local $plist = &parse_coas(COAS);
	close(COAS);
	$in{'gsdevice'} || &error($text{'caldera_edriver'});
	$in{'gsdevice'} =~ s/;(.*)$//;
	local ($p, $prn);
	foreach $p (values %$plist) {
		$prn = $p if ($p->{'description'} eq $in{'gsdevice'});
		}
	local $gsdevice = ref($prn->{'type'}) ? $prn->{'type'}->{'0'}
					      : $prn->{'type'},
	$gsdevice eq 'PostScript' || $in{'res'} ||
		&error($text{'caldera_eres'});
	if ($prn->{'gsoptions'}) {
		$in{'gsopts'} .= " ".$prn->{'gsoptions'};
		}
	return { 'mode' => 1,
		 'gsdevice' => $gsdevice,
		 'upp' => $prn->{'uniprint'},
		 'gsname' => $in{'gsdevice'},
		 'res' => $in{'res'},
		 'paper' => $in{'paper'},
		 'eof' => $in{'eof'},
		 'double' => $in{'double'},
		 'gsopts' => $in{'gsopts'} };
	}
else {
	# Uniprint ghostscript driver under 2.3
	$in{'uniprint'} || &error($text{'caldera_edriver'});
	return { 'mode' => 3,
		 'gsdevice' => 'uniprint',
		 'upp' => $in{'uniprint'},
		 'paper' => $in{'upaper'},
		 'eof' => $in{'ueof'},
		 'double' => $in{'udouble'} };
	}
}

# parse_coas(handle)
sub parse_coas
{
local $h = $_[0];
local (%rv, $_);
while(<$h>) {
	s/#.*$//g;
	s/\r|\n//g;
	if (/^\s*(\S+)\s+{/) {
		# start of a section
		local $k = $1;
		$rv{$k} = &parse_coas($h);
		}
	elsif (/^\s*}/) {
		# end of a section
		last;
		}
	elsif (/^\s*(\S+)\s+(.*)/) {
		# a value in a section
		$rv{$1} = $2;
		}
	}
return \%rv;
}

1;

 07070100074bb0000081e40000000000000002000000013ac0389900000196000000200000000000000000000000000000001d00000003reloc/lpadmin/cancel_all.cgi  #!/usr/local/bin/perl
# cancel_all.cgi
# Cancel all print jobs on some printer

require './lpadmin-lib.pl';
&ReadParse();
&can_edit_jobs($in{'name'}) || &error($text{'cancel_ecannot'});
&error_setup($text{'cancel_err'});

@jobs = &get_jobs($in{'name'});
foreach $j (@jobs) {
	&cancel_job($in{'name'}, $j->{'id'});
	}
&webmin_log("cancel", "all", $in{'name'});
&redirect("list_jobs.cgi?name=$in{'name'}");

  07070100074bb1000081e40000000000000002000000013ac0389900000226000000200000000000000000000000000000001d00000003reloc/lpadmin/cancel_job.cgi  #!/usr/local/bin/perl
# cancel_job.cgi
# Cancel an existing print job

require './lpadmin-lib.pl';
&ReadParse();
&can_edit_jobs($in{'name'}) || &error($text{'cancel_ecannot'});
&error_setup($text{'cancel_err'});

@jobs = &get_jobs($in{'name'});
foreach $j (@jobs) {
	if ($j->{'id'} == $in{'id'}) { $found++; }
	}
if ($found) {
	# print job exists.. cancel it
	&cancel_job($in{'name'}, $in{'id'});
	&webmin_log("cancel", "job", $in{'name'}, \%in);
	&redirect("list_jobs.cgi?name=$in{'name'}");
	}
else {
	&error(&text('cancel_egone', $in{'id'}));
	}

  07070100074bb2000081a40000000000000002000000013ac0389a00003161000000200000000000000000000000000000001e00000003reloc/lpadmin/catalog.devices x11             X Windows version 11, release >=4   [Unix and VMS only]
x11alpha        X Windows masquerading as a device with alpha capability
x11cmyk         X Windows masquerading as a 1-bit-per-plane CMYK device
x11cmyk2        X Windows as a 2-bit-per-plane CMYK device
x11cmyk4        X Windows as a 4-bit-per-plane CMYK device
x11cmyk8        X Windows as an 8-bit-per-plane CMYK device
x11gray2        X Windows as a 2-bit gray-scale device
x11gray4        X Windows as a 4-bit gray-scale device
x11mono         X Windows masquerading as a black-and-white device
lvga256         Linux vgalib, 256-color VGA modes  [Linux only]
vgalib          Linux PC with VGALIB   [Linux only]
sxlcrt          CRT sixels, e.g. for VT240-like terminals
appledmp        Apple Dot Matrix Printer (should also work with Imagewriter)
iwhi            Apple Imagewriter in high-resolution mode
iwlo            Apple Imagewriter in low-resolution mode
iwlq            Apple Imagewriter LQ in 320 x 216 dpi mode
t4693d2         Tektronix 4693d color printer, 2 bits per R/G/B component
t4693d4         Tektronix 4693d color printer, 4 bits per R/G/B component
t4693d8         Tektronix 4693d color printer, 8 bits per R/G/B component
tek4696         Tektronix 4695/4696 inkjet plotter
ap3250          Epson AP3250 printer
epson           Epson-compatible dot matrix printers (9- or 24-pin)
eps9mid         Epson-compatible 9-pin, interleaved lines (intermediate resolution)
eps9high        Epson-compatible 9-pin, interleaved lines (triple resolution)
epsonc          Epson LQ-2550 and Fujitsu 3400/2400/1200 color printers
lp8000          Epson LP-8000 laser printer
lq850           Epson LQ850 printer at 360 x 360 DPI resolution; also good for Canon BJ300 with LQ850 emulation
st800           Epson Stylus 800 printer
stcolor         Epson Stylus Color
hl7x0           Brother HL 720 and HL 730 (HL 760 is PCL compliant)
uniprint        Unified printer driver -- Configurable Color ESC/P-, ESC/P2-, HP-RTL/PCL mono/color driver
cdeskjet        H-P DeskJet 500C with 1 bit/pixel color
cdjcolor        H-P DeskJet 500C with 24 bit/pixel color and high-quality color (Floyd-Steinberg) dithering; also good for DeskJet 540C and Citizen Projet IIc (-r200x300)
cdjmono         H-P DeskJet 500C printing black only; also good for DeskJet 510, 520, and 540C (black only)
cdj500          H-P DeskJet 500C (same as cdjcolor)
cdj550          H-P DeskJet 550C/560C/660C/660Cse
cdj670          H-P DeskJet 670 (supports also hp690; experimental driver of hp8xx package)
cdj850          H-P DeskJet 850 (supports also hp855, hp870, and hp1100; experimental driver of hp8xx package)
cdj880          H-P DeskJet 880 (experimental driver of patched hp8xx package)
cdj890          H-P DeskJet 890 (experimental driver of hp8xx package)
cdj970          H-P 970Cxi Driver under development
cdj1600         H-P DeskJet 1600 (experimental driver of hp8xx package)
djet820c        H-P DeskJet 820c, EXPERIMENTAL: NO COLOR, HARDCODED PAPER SIZES (A4, letter)
deskjet         H-P DeskJet and DeskJet Plus
djet500         H-P DeskJet 500; use -r600 for DJ 600 series
djet500c        H-P DeskJet 500C alternate driver (does not work on 550C or 560C)
dnj650c         H-P DesignJet 650C
paintjet        alternate H-P PaintJet color printer
pj              H-P PaintJet XL driver
pjetxl          alternate H-P PaintJet XL driver
pjxl            H-P PaintJet XL color printer
pjxl300         H-P PaintJet XL300 color printer; also good for PaintJet 1200C and CopyJet
hpdj            printers (e.g. H-P DeskJets) understanding PCL-3 (black and colour)
stp             STP driver -- Configurable Color ESC/P-, ESC/P2-, HP-RTL/PCL mono/color driver
laserjet        H-P LaserJet
ljet2p          H-P LaserJet IId/IIp/III* with TIFF compression
ljet3           H-P LaserJet III* with Delta Row compression
ljet3d          H-P LaserJet IIID with duplex capability
ljet4           H-P LaserJet 4 (defaults to 600 dpi)
lj4dith         H-P LaserJet 4 with Floyd-Steinberg dithering
ljetplus        H-P LaserJet Plus
lj5mono         H-P LaserJet 5 & 6 family (PCL XL), bitmap: see below for restrictions & advice
lj5gray         H-P LaserJet 5 & 6 family, gray-scale bitmap; see below for restrictions & advice
cljet5          H-P Color LaserJet 5/5M
lp2563          H-P 2563B line printer
bj10e           Canon BubbleJet BJ10e
bj200           Canon BubbleJet BJ200
bjc600          Canon Color BubbleJet BJC-600, BJC-4000 and BJC-70 also good for Apple printers like the StyleWriter 2x00
bjc800          Canon Color BubbleJet BJC-800
lbp8            Canon LBP-8II laser printer
lips3           Canon LIPS III laser printer in English (CaPSL) mode
lxm5700m        LexMark 5700 printer
lex7000         Lexmark 7000 printer
lex5700         Lexmark 5700 printer
lex3200         Lexmark 3200 printer
lex2050         Lexmark 2050 printer
declj250        alternate DEC LJ250 driver
dl2100          DEC DEClaser 2100 printer
la50            DEC LA50 printer
la70            DEC LA70 printer
la75            DEC LA75 printer
la75plus        DEC LA75plus printer
ln03            DEC LN03 printer
lj250           DEC LJ250 Companion color printer
ccr             CalComp Raster format
cp50            Mitsubishi CP50 color printer
ibmpro          IBM 9-pin Proprinter
imagen          Imagen ImPress printers
jetp3852        IBM Jetprinter ink-jet color printer (Model #3852)
m8510           C.Itoh M8510 printer
necp6           NEC P6/P6+/P60 printers at 360 x 360 DPI resolution
oce9050         OCE 9050 printer
oki182          Okidata MicroLine 182
oki4w           Okidata OkiPage 4w+ LED printer
okiibm          Okidata MicroLine IBM-compatible printers
r4081           Ricoh 4081 laser printer
sj48            StarJet 48 inkjet printer
xes             Xerox XES printers (2700, 3700, 4045, etc.)
pbm             Portable Bitmap (plain format)
pbmraw          Portable Bitmap (raw format)
pgm             Portable Graymap (plain format)
pgmraw          Portable Graymap (raw format)
pgnm            Portable Graymap (plain format), optimizing to PBM if possible
pgnmraw         Portable Graymap (raw format), optimizing to PBM if possible
pnm             Portable Pixmap (plain format) (RGB), optimizing to PGM or PBM if possible
pnmraw          Portable Pixmap (raw format) (RGB), optimizing to PGM or PBM if possible
ppm             Portable Pixmap (plain format) (RGB)
ppmraw          Portable Pixmap (raw format) (RGB)
pkm             Portable inKmap (plain format) (4-bit CMYK => RGB)
pkmraw          Portable inKmap (raw format) (4-bit CMYK => RGB)
plan9bm         Plan 9 bitmap format
inferno         Inferno bitmaps
dfaxhigh        DigiBoard, Inc.'s DigiFAX software format (high resolution)
dfaxlow         DigiFAX low (normal) resolution
faxg3           Group 3 fax, with EOLs but no header or EOD
faxg32d         Group 3 2-D fax, with EOLs but no header or EOD
faxg4           Group 4 fax, with EOLs but no header or EOD
tiffcrle        TIFF "CCITT RLE 1-dim" (= Group 3 fax with no EOLs)
tiffg3          TIFF Group 3 fax (with EOLs)
tiffg32d        TIFF Group 3 2-D fax
tiffg4          TIFF Group 4 fax
tiff12nc        TIFF 12-bit RGB, no compression
tiff24nc        TIFF 24-bit RGB, no compression (NeXT standard format)
tifflzw         TIFF LZW (tag = 5) (monochrome)
tiffpack        TIFF PackBits (tag = 32773) (monochrome)
psmono          PostScript (Level 1) monochrome image
psgray          PostScript (Level 1) 8-bit gray image
psrgb           PostScript (Level 2) 24-bit color image
bit             Plain bits, monochrome
bitrgb          Plain bits, RGB
bitcmyk         Plain bits, CMYK
mgrmono         1-bit monochrome MGR devices
mgrgray2        2-bit gray scale MGR devices
mgrgray4        4-bit gray scale MGR devices
mgrgray8        8-bit gray scale MGR devices
mgr4            4-bit (VGA) color MGR devices
mgr8            8-bit color MGR devices
pcxmono         PCX file format, monochrome (1-bit black and white)
pcxgray         PCX file format, 8-bit gray scale
pcx16           PCX file format, 4-bit planar (EGA/VGA) color
pcx256          PCX file format, 8-bit chunky color
pcx24b          PCX file format, 24-bit color (3 8-bit planes)
pcxcmyk         PCX file format, 4-bit chunky CMYK color
pngmono         Monochrome Portable Network Graphics (PNG)
pnggray         8-bit gray Portable Network Graphics (PNG)
png16           4-bit color Portable Network Graphics (PNG)
png256          8-bit color Portable Network Graphics (PNG)
png16m          24-bit color Portable Network Graphics (PNG)
sgirgb          SGI RGB pixmap format
bmpmono         Monochrome MS Windows .BMP file format
bmp16           4-bit (EGA/VGA) .BMP file format
bmp256          8-bit (256-color) .BMP file format
bmp16m          24-bit .BMP file format
cgmmono         Monochrome (black-and-white) CGM -- LOW LEVEL OUTPUT ONLY
cgm8            8-bit (256-color) CGM -- DITTO
cgm24           24-bit color CGM -- DITTO
cif             CIF file format for VLSI
jpeg            JPEG format, RGB output
jpeggray        JPEG format, gray output
miff24          ImageMagick MIFF format, 24-bit direct color, RLE compressed
pdfwrite        PDF output (like Adobe Acrobat Distiller)
pswrite         PostScript output (like PostScript Distillery)
epswrite        EPS output (like PostScript Distillery)
pxlmono         Black-and-white PCL XL
pxlcolor        Color PCL XL
bjc6000a1.upp   Canon BJC 6000, 360x360DpI, plain paper, color, rendered
bjc6000b1.upp   Canon BJC 6000, 720x720DpI, plain paper, color, rendered
bjc610a0.upp    Canon BJC 610, 360x360DpI, plain paper high speed, color, rendered
bjc610a1.upp    Canon BJC 610, 360x360DpI, plain paper, color, rendered
bjc610a2.upp    Canon BJC 610, 360x360DpI, coated paper, color, rendered
bjc610a3.upp    Canon BJC 610, 360x360DpI, transparency film, color, rendered
bjc610a4.upp    Canon BJC 610, 360x360DpI, back print film, color, rendered
bjc610a5.upp    Canon BJC 610, 360x360DpI, fabric sheet, color, rendered
bjc610a6.upp    Canon BJC 610, 360x360DpI, glossy paper, color, rendered
bjc610a7.upp    Canon BJC 610, 360x360DpI, high gloss film, color, rendered
bjc610a8.upp    Canon BJC 610, 360x360DpI, high resolution paper, color, rendered
bjc610b1.upp    Canon BJC 610, 720x720DpI, plain paper, color, rendered
bjc610b2.upp    Canon BJC 610, 720x720DpI, coated paper, color, rendered
bjc610b3.upp    Canon BJC 610, 720x720DpI, transparency film, color, rendered
bjc610b4.upp    Canon BJC 610, 720x720DpI, back print film, color, rendered
bjc610b6.upp    Canon BJC 610, 720x720DpI, glossy paper, color, rendered
bjc610b7.upp    Canon BJC 610, 720x720DpI, high gloss paper, color, rendered
bjc610b8.upp    Canon BJC 610, 720x720DpI, high resolution paper, color, rendered
cdj550.upp      HP Deskjet 550c, 300x300DpI, Gamma=2
necp2x.upp      NEC Prinwriter 2X, 360x360DpI, Plain Paper
necp2x6.upp     NEC Prinwriter 2X, 360x360DpI, Plain Paper
ras1.upp        SUN rasterfile, 1 Bit, 2 Colors (Ghostscript-Rendering)
ras24.upp       SUN rasterfile, 24 Bit, 7 Colors (RGB-Error-Diffusion)
ras3.upp        SUN rasterfile, 3 Bit, 7 Colors (RGB-Ghostscript)
ras32.upp       SUN rasterfile, 32 Bit, 6+1 Colors (CMYK-Error-Diffusion)
ras4.upp        SUN rasterfile, 4 Bit, 6+1 Colors (CMYK-Ghostscript)
ras8m.upp       SUN rasterfile, 8 Bit, 2 Colors (Error-Diffusion)
stc.upp         Epson Stylus Color I (and PRO Series), 360x360DpI, Plain Paper
stc1520h.upp    Epson Stylus Color 1520, 1440x720DpI, Inkjet Paper
stc2.upp        Epson Stylus Color II / IIs, 360x360DpI, Plain Paper
stc2_h.upp      Epson Stylus Color II, 720x720DpI, Special Paper
stc2s_h.upp     Epson Stylus Color IIs, 720x720DpI, Special Paper
stc500p.upp     Epson Stylus Color 500, 360x360DpI, not Weaved, Plain Paper
stc500ph.upp    Epson Stylus Color 500, 720x720DpI, not Weaved, Plain Paper
stc600ih.upp    Epson Stylus Color 600, 1440x720DpI, Inkjet Paper
stc600p.upp     Epson Stylus Color 600, 720x720DpI, Plain Paper
stc600pl.upp    Epson Stylus Color 600, 360x360DpI, Plain Paper
stc740ih.upp    Epson Stylus Color 740, 1440x720DpI, Inkjet Paper
stc740p.upp     Epson Stylus Color 740, 720x720DpI, Plain Paper
stc740pl.upp    Epson Stylus Color 740, 360x360DpI, Plain Paper
stc800ih.upp    Epson Stylus Color 800, 1440x720DpI, Inkjet Paper
stc800p.upp     Epson Stylus Color 800, 720x720DpI, Plain Paper
stc800pl.upp    Epson Stylus Color 800, 360x360DpI, Plain Paper
stc_h.upp       Epson Stylus Color I (and PRO Series), 720x720DpI, Special Paper
stc_l.upp       Epson Stylus Color I (and PRO Series), 360x360DpI, noWeave
stcany.upp      Any Epson Stylus Color, 360x360DpI
   07070100074bb3000081a40000000000000002000000013ac0389a00000ba8000000200000000000000000000000000000001900000003reloc/lpadmin/colour.fig  #FIG 3.2
Portrait
Flush left
Inches
A4      
100.00
Single
-2
1200 2
0 32 #8e8e8e
0 33 #8e8e8e
0 34 #8e8e8e
0 35 #8e8e8e
0 36 #8e8e8e
0 37 #8e8e8e
0 38 #414541
0 39 #8e8e8e
0 40 #414541
0 41 #8e8e8e
0 42 #414541
0 43 #8e8e8e
0 44 #414541
0 45 #8e8e8e
0 46 #414541
0 47 #8e8e8e
0 48 #414541
0 49 #8e8e8e
0 50 #414541
0 51 #8e8e8e
0 52 #414541
0 53 #8e8e8e
0 54 #414541
0 55 #8e8e8e
0 56 #414541
0 57 #8e8e8e
0 58 #414541
0 59 #8e8e8e
0 60 #8e8e8e
0 61 #8e8e8e
0 62 #8e8e8e
0 63 #8e8e8e
0 64 #8e8e8e
0 65 #8e8e8e
0 66 #8e8e8e
0 67 #8e8e8e
0 68 #8e8e8e
0 69 #414541
6 900 6300 9300 7800
4 0 0 100 0 0 24 0.0000 4 330 7545 900 6600 This is the printer test page for the Webmin Printer\001
4 0 0 100 0 0 24 0.0000 4 330 8340 900 7020 Administration module. If you can read this, your printer\001
4 0 0 100 0 0 24 0.0000 4 330 4260 900 7440 is probably working properly.\001
-6
6 900 8100 5100 11700
2 2 0 0 0 4 100 0 20 0.000 0 0 -1 0 0 5
	 900 8100 1500 8100 1500 11700 900 11700 900 8100
2 2 0 0 0 4 100 0 20 0.000 0 0 -1 0 0 5
	 900 8100 1500 8100 1500 11700 900 11700 900 8100
2 2 0 0 0 31 100 0 20 0.000 0 0 -1 0 0 5
	 1500 8100 2100 8100 2100 11700 1500 11700 1500 8100
2 2 0 0 0 6 100 0 20 0.000 0 0 -1 0 0 5
	 2100 8100 2700 8100 2700 11700 2100 11700 2100 8100
2 2 0 0 0 2 100 0 20 0.000 0 0 -1 0 0 5
	 2700 8100 3300 8100 3300 11700 2700 11700 2700 8100
2 2 0 0 0 1 100 0 20 0.000 0 0 -1 0 0 5
	 3300 8100 3900 8100 3900 11700 3300 11700 3300 8100
2 2 0 0 0 5 100 0 20 0.000 0 0 -1 0 0 5
	 3900 8100 4500 8100 4500 11700 3900 11700 3900 8100
2 2 0 0 0 23 100 0 20 0.000 0 0 -1 0 0 5
	 4500 8100 5100 8100 5100 11700 4500 11700 4500 8100
-6
6 5100 8100 9300 11700
2 2 0 0 0 4 100 0 20 0.000 0 0 -1 0 0 5
	 9300 8100 8700 8100 8700 11700 9300 11700 9300 8100
2 2 0 0 0 4 100 0 20 0.000 0 0 -1 0 0 5
	 9300 8100 8700 8100 8700 11700 9300 11700 9300 8100
2 2 0 0 0 31 100 0 20 0.000 0 0 -1 0 0 5
	 8700 8100 8100 8100 8100 11700 8700 11700 8700 8100
2 2 0 0 0 6 100 0 20 0.000 0 0 -1 0 0 5
	 8100 8100 7500 8100 7500 11700 8100 11700 8100 8100
2 2 0 0 0 2 100 0 20 0.000 0 0 -1 0 0 5
	 7500 8100 6900 8100 6900 11700 7500 11700 7500 8100
2 2 0 0 0 1 100 0 20 0.000 0 0 -1 0 0 5
	 6900 8100 6300 8100 6300 11700 6900 11700 6900 8100
2 2 0 0 0 5 100 0 20 0.000 0 0 -1 0 0 5
	 6300 8100 5700 8100 5700 11700 6300 11700 6300 8100
2 2 0 0 0 23 100 0 20 0.000 0 0 -1 0 0 5
	 5700 8100 5100 8100 5100 11700 5700 11700 5700 8100
-6
2 1 0 3 2 7 100 0 -1 0.000 0 0 -1 0 0 2
	 900 3300 9300 4500
2 1 0 4 1 7 100 0 -1 0.000 0 0 -1 0 0 2
	 900 3900 9300 3900
2 1 0 5 5 7 100 0 -1 0.000 0 0 -1 0 0 2
	 900 4500 9300 3300
2 1 0 7 0 7 100 0 -1 0.000 0 0 -1 0 0 2
	 900 5700 9300 2100
2 1 0 1 4 7 100 0 -1 0.000 0 0 -1 0 0 2
	 900 2100 9300 5700
2 1 0 2 6 7 100 0 -1 0.000 0 0 -1 0 0 2
	 900 2700 9300 5100
2 1 0 6 21 7 100 0 -1 0.000 0 0 -1 0 0 2
	 900 5100 9300 2700
4 0 0 100 0 0 72 0.0000 4 960 8250 900 1500 Webmin Test Page\001
4 0 0 100 0 0 72 0.0000 4 960 8250 900 13200 Webmin Test Page\001
07070100074bb4000081a40000000000000002000000013ac0389a00001a88000000200000000000000000000000000000001800000003reloc/lpadmin/colour.ps   %!PS-Adobe-2.0
%%Title: colour.ps
%%Creator: fig2dev Version 3.2 Patchlevel 1
%%CreationDate: Mon Dec  4 16:16:30 2000
%%For: jcameron@vaio.home (Jamie Cameron)
%%Orientation: Portrait
%%BoundingBox: 49 32 568 799
%%Pages: 1
%%BeginSetup
%%IncludeFeature: *PageSize A4
%%EndSetup
%%Magnification: 1.0000
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
$F2psDict /mtrx matrix put
/col-1 {0 setgray} bind def
/col0 {0.000 0.000 0.000 srgb} bind def
/col1 {0.000 0.000 1.000 srgb} bind def
/col2 {0.000 1.000 0.000 srgb} bind def
/col3 {0.000 1.000 1.000 srgb} bind def
/col4 {1.000 0.000 0.000 srgb} bind def
/col5 {1.000 0.000 1.000 srgb} bind def
/col6 {1.000 1.000 0.000 srgb} bind def
/col7 {1.000 1.000 1.000 srgb} bind def
/col8 {0.000 0.000 0.560 srgb} bind def
/col9 {0.000 0.000 0.690 srgb} bind def
/col10 {0.000 0.000 0.820 srgb} bind def
/col11 {0.530 0.810 1.000 srgb} bind def
/col12 {0.000 0.560 0.000 srgb} bind def
/col13 {0.000 0.690 0.000 srgb} bind def
/col14 {0.000 0.820 0.000 srgb} bind def
/col15 {0.000 0.560 0.560 srgb} bind def
/col16 {0.000 0.690 0.690 srgb} bind def
/col17 {0.000 0.820 0.820 srgb} bind def
/col18 {0.560 0.000 0.000 srgb} bind def
/col19 {0.690 0.000 0.000 srgb} bind def
/col20 {0.820 0.000 0.000 srgb} bind def
/col21 {0.560 0.000 0.560 srgb} bind def
/col22 {0.690 0.000 0.690 srgb} bind def
/col23 {0.820 0.000 0.820 srgb} bind def
/col24 {0.500 0.190 0.000 srgb} bind def
/col25 {0.630 0.250 0.000 srgb} bind def
/col26 {0.750 0.380 0.000 srgb} bind def
/col27 {1.000 0.500 0.500 srgb} bind def
/col28 {1.000 0.630 0.630 srgb} bind def
/col29 {1.000 0.750 0.750 srgb} bind def
/col30 {1.000 0.880 0.880 srgb} bind def
/col31 {1.000 0.840 0.000 srgb} bind def
/col32 {0.557 0.557 0.557 srgb} bind def
/col33 {0.557 0.557 0.557 srgb} bind def
/col34 {0.557 0.557 0.557 srgb} bind def
/col35 {0.557 0.557 0.557 srgb} bind def
/col36 {0.557 0.557 0.557 srgb} bind def
/col37 {0.557 0.557 0.557 srgb} bind def
/col38 {0.255 0.271 0.255 srgb} bind def
/col39 {0.557 0.557 0.557 srgb} bind def
/col40 {0.255 0.271 0.255 srgb} bind def
/col41 {0.557 0.557 0.557 srgb} bind def
/col42 {0.255 0.271 0.255 srgb} bind def
/col43 {0.557 0.557 0.557 srgb} bind def
/col44 {0.255 0.271 0.255 srgb} bind def
/col45 {0.557 0.557 0.557 srgb} bind def
/col46 {0.255 0.271 0.255 srgb} bind def
/col47 {0.557 0.557 0.557 srgb} bind def
/col48 {0.255 0.271 0.255 srgb} bind def
/col49 {0.557 0.557 0.557 srgb} bind def
/col50 {0.255 0.271 0.255 srgb} bind def
/col51 {0.557 0.557 0.557 srgb} bind def
/col52 {0.255 0.271 0.255 srgb} bind def
/col53 {0.557 0.557 0.557 srgb} bind def
/col54 {0.255 0.271 0.255 srgb} bind def
/col55 {0.557 0.557 0.557 srgb} bind def
/col56 {0.255 0.271 0.255 srgb} bind def
/col57 {0.557 0.557 0.557 srgb} bind def
/col58 {0.255 0.271 0.255 srgb} bind def
/col59 {0.557 0.557 0.557 srgb} bind def
/col60 {0.557 0.557 0.557 srgb} bind def
/col61 {0.557 0.557 0.557 srgb} bind def
/col62 {0.557 0.557 0.557 srgb} bind def
/col63 {0.557 0.557 0.557 srgb} bind def
/col64 {0.557 0.557 0.557 srgb} bind def
/col65 {0.557 0.557 0.557 srgb} bind def
/col66 {0.557 0.557 0.557 srgb} bind def
/col67 {0.557 0.557 0.557 srgb} bind def
/col68 {0.557 0.557 0.557 srgb} bind def
/col69 {0.255 0.271 0.255 srgb} bind def

end
save
0.0 842.0 translate
1 -1 scale

/cp {closepath} bind def
/ef {eofill} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth} bind def
/tr {translate} bind def
/tnt {dup dup currentrgbcolor
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add
  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
  bind def
/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
  4 -2 roll mul srgb} bind def
/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
/$F2psEnd {$F2psEnteredState restore end} def
%%EndProlog

$F2psBegin
10 setmiterlimit
n -1000 14488 m -1000 -1000 l 10453 -1000 l 10453 14488 l cp clip
 0.06000 0.06000 sc
%%Page: 1 1
/Times-Roman ff 360.00 scf sf
900 6600 m
gs 1 -1 sc (This is the printer test page for the Webmin Printer) col0 sh gr
/Times-Roman ff 360.00 scf sf
900 7020 m
gs 1 -1 sc (Administration module. If you can read this, your printer) col0 sh gr
/Times-Roman ff 360.00 scf sf
900 7440 m
gs 1 -1 sc (is probably working properly.) col0 sh gr
% Polyline
n 900 8100 m 1500 8100 l 1500 11700 l 900 11700 l cp gs col4 1.00 shd ef gr 
% Polyline
n 900 8100 m 1500 8100 l 1500 11700 l 900 11700 l cp gs col4 1.00 shd ef gr 
% Polyline
n 1500 8100 m 2100 8100 l 2100 11700 l 1500 11700 l cp gs col31 1.00 shd ef gr 
% Polyline
n 2100 8100 m 2700 8100 l 2700 11700 l 2100 11700 l cp gs col6 1.00 shd ef gr 
% Polyline
n 2700 8100 m 3300 8100 l 3300 11700 l 2700 11700 l cp gs col2 1.00 shd ef gr 
% Polyline
n 3300 8100 m 3900 8100 l 3900 11700 l 3300 11700 l cp gs col1 1.00 shd ef gr 
% Polyline
n 3900 8100 m 4500 8100 l 4500 11700 l 3900 11700 l cp gs col5 1.00 shd ef gr 
% Polyline
n 4500 8100 m 5100 8100 l 5100 11700 l 4500 11700 l cp gs col23 1.00 shd ef gr 
% Polyline
n 9300 8100 m 8700 8100 l 8700 11700 l 9300 11700 l cp gs col4 1.00 shd ef gr 
% Polyline
n 9300 8100 m 8700 8100 l 8700 11700 l 9300 11700 l cp gs col4 1.00 shd ef gr 
% Polyline
n 8700 8100 m 8100 8100 l 8100 11700 l 8700 11700 l cp gs col31 1.00 shd ef gr 
% Polyline
n 8100 8100 m 7500 8100 l 7500 11700 l 8100 11700 l cp gs col6 1.00 shd ef gr 
% Polyline
n 7500 8100 m 6900 8100 l 6900 11700 l 7500 11700 l cp gs col2 1.00 shd ef gr 
% Polyline
n 6900 8100 m 6300 8100 l 6300 11700 l 6900 11700 l cp gs col1 1.00 shd ef gr 
% Polyline
n 6300 8100 m 5700 8100 l 5700 11700 l 6300 11700 l cp gs col5 1.00 shd ef gr 
% Polyline
n 5700 8100 m 5100 8100 l 5100 11700 l 5700 11700 l cp gs col23 1.00 shd ef gr 
% Polyline
30.000 slw
n 900 3300 m 9300 4500 l gs col2 s gr 
% Polyline
45.000 slw
n 900 3900 m 9300 3900 l gs col1 s gr 
% Polyline
60.000 slw
n 900 4500 m 9300 3300 l gs col5 s gr 
% Polyline
90.000 slw
n 900 5700 m 9300 2100 l gs col0 s gr 
% Polyline
7.500 slw
n 900 2100 m 9300 5700 l gs col4 s gr 
% Polyline
15.000 slw
n 900 2700 m 9300 5100 l gs col6 s gr 
% Polyline
75.000 slw
n 900 5100 m 9300 2700 l gs col21 s gr 
/Times-Roman ff 1080.00 scf sf
900 1500 m
gs 1 -1 sc (Webmin Test Page) col0 sh gr
/Times-Roman ff 1080.00 scf sf
900 13200 m
gs 1 -1 sc (Webmin Test Page) col0 sh gr
$F2psEnd
rs
showpage
07070100074bb5000081a40000000000000002000000013ac0389a000000bd000000200000000000000000000000000000002100000003reloc/lpadmin/config-corel-linux  printcap_file=/etc/printcap
gs_lib=
iface_arg=
gs_path=gs
spool_dir=/var/spool/lpd
gs_fontpath=
smbclient_path=smbclient
print_style=linux
iface_perms=755
driver_style=webmin
show_status=0
   07070100074bb6000081a40000000000000002000000013ac0389a000000bd000000200000000000000000000000000000002200000003reloc/lpadmin/config-debian-linux printcap_file=/etc/printcap
gs_lib=
iface_arg=
gs_path=gs
spool_dir=/var/spool/lpd
gs_fontpath=
smbclient_path=smbclient
print_style=linux
iface_perms=755
driver_style=webmin
show_status=0
   07070100074bb7000081a40000000000000002000000013ac0389a000000bf000000200000000000000000000000000000001d00000003reloc/lpadmin/config-freebsd  iface_perms=755
printcap_file=/etc/printcap
gs_lib=
iface_arg=
gs_path=gs
spool_dir=/var/spool/lpd
gs_fontpath=
smbclient_path=smbclient
print_style=freebsd
driver_style=webmin
show_status=0
 07070100074bb8000081a40000000000000002000000013ac0389a0000011c000000200000000000000000000000000000001a00000003reloc/lpadmin/config-hpux iface_perms=711
gs_lib=
iface_arg=6
model_path=/usr/spool/lp/model
scheduler_stop=lpshut
gs_path=gs
scheduler_start=lpsched
smbclient_path=/usr/local/samba/bin/smbclient
print_style=hpux
gs_fontpath=
hpnp_path=/usr/lib/hpnp/bin/hpnpf
iface_owner=lp:lp
driver_style=hpux
show_status=0
07070100074bb9000081a40000000000000002000000013ac0389a000000ac000000200000000000000000000000000000001a00000003reloc/lpadmin/config-irix gs_lib=
printcap_file=
show_status=1
gs_path=
driver_style=irix
print_style=irix
model_path=/var/spool/lp/model
smbclient_path=
gs_fontpath=
hpnp_path=/usr/lib/print/hpnpf
07070100074bba000081a40000000000000002000000013ac0389a000000bf000000200000000000000000000000000000001b00000003reloc/lpadmin/config-macos    gs_lib=
printcap_file=/etc/printcap
iface_arg=
spool_dir=/var/spool/lpd
print_style=freebsd
smbclient_path=smbclient
gs_fontpath=
gs_path=gs
iface_perms=755
driver_style=webmin
show_status=0
 07070100074bbb000081a40000000000000002000000013ac0389a0000010e000000200000000000000000000000000000002000000003reloc/lpadmin/config-open-linux   iface_perms=755
printcap_file=/etc/printcap
gs_lib=/usr/share/ghostscript/5.10
iface_arg=
gs_path=gs
spool_dir=/var/spool/lpd
gs_fontpath=
smbclient_path=smbclient
print_style=lprng
driver_style=caldera
coas_printers=/usr/lib/coas/repository/printermodels
show_status=0
  07070100074bbc000081a40000000000000002000000013ac0389a000000c8000000200000000000000000000000000000002500000003reloc/lpadmin/config-open-linux-3.1e  show_status=0
smbclient_path=smbclient
spool_dir=/var/spool/cups
driver_style=cups
print_style=cups
iface_arg=
gs_fontpath=
model_path=/usr/share/cups/model
hpnp_path=
gs_lib=
printcap_file=
gs_path=
07070100074bbd000081a40000000000000002000000013ac03899000000bf000000200000000000000000000000000000001d00000003reloc/lpadmin/config-openbsd  iface_perms=755
printcap_file=/etc/printcap
gs_lib=
iface_arg=
gs_path=gs
spool_dir=/var/spool/lpd
gs_fontpath=
smbclient_path=smbclient
print_style=freebsd
driver_style=webmin
show_status=0
 07070100074bd6000081a40000000000000002000000013ac0389800001491000000200000000000000000000000000000001600000003reloc/lpadmin/drivers appledmp  Apple Dot Matrix Printer
appledmp  Apple Imagewriter
iwlq    Apple Imagewriter LQ in 320 x 216 dpi mode
iwhi    Apple Imagewriter in high-resolution mode
iwlo    Apple Imagewriter in low-resolution mode
bjc600   Apple StyleWriter 2x00
m8510   C.Itoh M8510
ccr     CalComp Raster format
hl7x0  Brother HL-720
hl7x0  Brother HL-730
lq850   Canon BJ300
bj10e   Canon BubbleJet BJ10e
bj10e   Canon BubbleJet BJ20
bj200   Canon BubbleJet BJ200
bj200   Canon BubbleJet BJC-210 (black and white)
bj200   Canon BubbleJet BJC-240 (black and white)
bj200   Canon BubbleJet BJC-250 (black and white)
bj200   Canon BubbleJet BJC-70 (black and white)
bjc600   Canon Color BubbleJet BJC-4000
bjc600   Canon Color BubbleJet BJC-4100
bjc600   Canon Color BubbleJet BJC-4200
bjc600   Canon Color BubbleJet BJC-4300
bjc600   Canon Color BubbleJet BJC-4550
bjc600   Canon Color BubbleJet BJC-600
bjc600   Canon Color BubbleJet BJC-610
bjc600   Canon Color BubbleJet BJC-70
bjc600   Canon Color BubbleJet BJC-210
bjc600   Canon Color BubbleJet BJC-240
bjc800   Canon Color BubbleJet BJC-800
bjc800   Canon Color BubbleJet BJC-7000
lbp8    Canon LBP-8II
lips3   Canon LIPS III in English (CaPSL) mode
la50    DEC LA50
la70    DEC LA70
la70t   DEC LA70 with low-resolution text enhancement
la75    DEC LA75
la75plus DEC LA75plus
declj250  DEC LJ250
lj250   DEC LJ250 Companion
ln03    DEC LN03
dl2100	DEC DEClaser 2100
ap3250  Epson AP3250 printer
lp8000  Epson LP-8000
epsonc  Epson LQ-2550
lq850   Epson LQ850
st800   Epson Stylus 800
stcolor Epson Stylus Color
stcolor Epson Stylus Color II
stcolor Epson Stylus Color 400
stcolor Epson Stylus Color 500
stcolor Epson Stylus Color 600
stcolor Epson Stylus Color 800
eps9mid  Epson-compatible 9-pin (intermediate resolution)
eps9high  Epson-compatible 9-pin (triple resolution)
epson   Epson-compatible dot matrix printers (9- or 24-pin)
epsonc  Fujitsu 1200
epsonc  Fujitsu 2400
epsonc  Fujitsu 3400
lp2563  HP 2563B
dnj650c  HP DesignJet 650C
deskjet  HP DeskJet
deskjet  HP DeskJet Plus
djet500  HP DeskJet 500
djet500  HP DeskJet 500 Portable
djet500  HP OfficeJet 590
cdjmono  HP DeskJet 400 (black and white)
cdjmono  HP DeskJet 500C (black and white)
cdjmono  HP DeskJet 510 (black and white)
cdjmono  HP DeskJet 520 (black and white)
cdjmono  HP DeskJet 540C (black and white)
cdjmono  HP DeskJet 690C (black and white)
cdjmono  HP DeskJet 693C (black and white)
cdeskjet  HP DeskJet 400 with 3 bit/pixel color
cdeskjet  HP DeskJet 500C with 3 bit/pixel color
cdeskjet  HP DeskJet 540C with 3 bit/pixel color
cdeskjet  HP DeskJet 590C with 3 bit/pixel color
cdeskjet  HP DeskJet 690C with 3 bit/pixel color
cdeskjet  HP DeskJet 693C with 3 bit/pixel color
cdjcolor  HP DeskJet 400 with 24 bit/pixel color
cdjcolor  HP DeskJet 500C with 24 bit/pixel color
cdjcolor  HP DeskJet 540C with 24 bit/pixel color
cdjcolor  HP DeskJet 690C with 24 bit/pixel color
cdjcolor  HP DeskJet 693C with 24 bit/pixel color
cdjcolor  Citizen Projet IIc 
cdj550  HP DeskJet 550C
cdj550  HP DeskJet 560C
cdj550  HP DeskJet 660C
cdj550  HP DeskJet 660Cse
cdj550  HP DeskJet 682
cdj550  HP DeskJet 683
cdj550  HP DeskJet 693
cdj550  HP DeskJet 694
cdj550  HP DeskJet 695
cdj550  HP DeskJet 850
cdj550  HP DeskJet 870Cse
cdj550  Xerox XJ6C
cdj850  HP DeskJet 855
cdj850  HP DeskJet 870Cxi
cdj850  HP DeskJet 890C
cdj850  HP DeskJet 672C
cdj850  HP DeskJet 680
cdj850  HP DeskJet 1100C
cdj1600	HP DeskJet 1600
cdj670	HP DeskJet 670
cdj670	HP DeskJet 690
djet820c	HP DeskJet 820C
cdj880	HP DeskJet 880
cdj890	HP DeskJet 890
cdj970	HP DeskJet 970Cxi
laserjet  HP LaserJet
ljet4   HP LaserJet 4
ljet4   HP LaserJet 5
ljet4   HP LaserJet 5L
ljet4   HP LaserJet 6L
ljet4   HP LaserJet 1100
ljet4   Lexmark Optra E+
ljet4   Oki OL410ex LED
ljet4   Brother HL-660
ljet4   Brother HL-670
ljet4   Brother HL-760
cljet5	HP Color LaserJet 5
cljet5	HP Color LaserJet 5M
lj4dith  HP LaserJet 4 with Floyd-Steinberg dithering
lj5mono  HP LaserJet 5 (black and white)
lj5gray  HP LaserJet 5 (gray-scale)
lj5mono  HP LaserJet 6 (black and white)
lj5gray  HP LaserJet 6 (gray-scale)
ljet3   HP LaserJet III* with Delta Row compression
ljet3d  HP LaserJet IIID with duplex capability
ljet2p  HP LaserJet IId/IIp/III* with TIFF compression
ljetplus  HP LaserJet Plus
ljetplus  NEC SuperScript 860
pjxl300  HP PaintJet 1600C color
pjxl300  HP PaintJet 1200C color
pjxl300  HP PaintJet XL300 color
pj      HP PaintJet XL
pjxl    HP PaintJet XL color
ibmpro  IBM 9-pin Proprinter
jetp3852  IBM Jetprinter ink-jet (Model #3852)
imagen  Imagen ImPress
cp50    Mitsubishi CP50 color printer
necp6   NEC P6
necp6   NEC P6+
necp6   NEC P60
oce9050  OCE 9050
oki182  Okidata MicroLine 182
okiibm  Okidata MicroLine IBM-compatible printers
oki4w	Okidata OkiPage 4w+ LED
r4081   Ricoh 4081
r4081   Ricoh 6000
sparc   SPARCprinter
nwp533  Sony Microsystems NWP533
sj48    StarJet 48
t4693d2  Tektronix 4693d (2 bits per color)
t4693d4  Tektronix 4693d (4 bits per color)
t4693d8  Tektronix 4693d (8 bits per color)
tek4696  Tektronix 4695/4696 plotter
xes     Xerox XES 2700
xes     Xerox XES 3700
xes     Xerox XES 4505
lxm5700m	LexMark 5700
lex7000	Lexmark 7000
lex5700	Lexmark 5700
lex3200	Lexmark 3200
lex2050	Lexmark 2050
stp	Configurable Canon/Epson/HP/Lexmark Driver
   07070100074bbe000081a40000000000000002000000013ac0389a000000bd000000200000000000000000000000000000002200000003reloc/lpadmin/config-redhat-linux iface_perms=755
printcap_file=/etc/printcap
gs_lib=
iface_arg=
gs_path=gs
spool_dir=/var/spool/lpd
gs_fontpath=
smbclient_path=smbclient
print_style=linux
driver_style=redhat
show_status=0
   07070100074bbf000081a40000000000000002000000013ac03899000000cf000000200000000000000000000000000000002600000003reloc/lpadmin/config-redhat-linux-7.0 iface_perms=755
printcap_file=/etc/printcap
gs_lib=
iface_arg=
gs_path=gs
spool_dir=/var/spool/lpd
gs_fontpath=
smbclient_path=smbclient
print_style=lprng
driver_style=redhat
show_status=0
iface_owner=lp:lp
 07070100074bc0000081a40000000000000002000000013ac0389a000000d2000000200000000000000000000000000000002600000003reloc/lpadmin/config-redhat-linux-7.1 iface_perms=755
printcap_file=/etc/printcap
gs_lib=
iface_arg=
gs_path=gs
spool_dir=/var/spool/lpd
gs_fontpath=
smbclient_path=smbclient
print_style=lprng
driver_style=printconf
show_status=0
iface_owner=lp:lp
  07070100074bc1000081a40000000000000002000000013ac03899000000bd000000200000000000000000000000000000002500000003reloc/lpadmin/config-slackware-linux  iface_perms=755
printcap_file=/etc/printcap
gs_lib=
iface_arg=
gs_path=gs
spool_dir=/var/spool/lpd
gs_fontpath=
smbclient_path=smbclient
print_style=linux
driver_style=webmin
show_status=0
   07070100074bc2000081a40000000000000002000000013ac0389900000136000000200000000000000000000000000000001d00000003reloc/lpadmin/config-solaris  iface_perms=711
gs_lib=/usr/openwin/lib/X11/fonts/Type1:/usr/openwin/lib/X11/fonts/Type3
gs_fontpath=/usr/openwin/lib/X11/fonts/Type1/outline
print_style=solaris
gs_path=gs
smbclient_path=/usr/local/samba/bin/smbclient
iface_arg=6
driver_style=webmin
default_interface=/usr/lib/lp/model/standard
show_status=0
  07070100074bc3000081a40000000000000002000000013ac0389a000000bb000000200000000000000000000000000000002000000003reloc/lpadmin/config-suse-linux   iface_perms=755
printcap_file=/etc/printcap
gs_lib=
iface_arg=
gs_path=gs
spool_dir=/var/spool/lpd
gs_fontpath=
smbclient_path=smbclient
print_style=linux
driver_style=suse
show_status=0
 07070100074bc4000081a40000000000000002000000013ac0389a000000bd000000200000000000000000000000000000002100000003reloc/lpadmin/config-turbo-linux  iface_perms=755
printcap_file=/etc/printcap
gs_lib=
iface_arg=
gs_path=gs
spool_dir=/var/spool/lpd
gs_fontpath=
smbclient_path=smbclient
print_style=linux
driver_style=redhat
show_status=0
   07070100074bc5000081a40000000000000002000000013ac0389a00000107000000200000000000000000000000000000001e00000003reloc/lpadmin/config-unixware iface_perms=711
gs_lib=/usr/X/lib/X11/fonts/Type1:/usr/X/lib/X11/fonts/Type3
gs_fontpath=/usr/X/lib/X11/fonts/Type1/outline
print_style=unixware
gs_path=/usr/local/bin/gs
smbclient_path=/usr/local/samba/bin/smbclient
iface_arg=6
driver_style=webmin
show_status=0
 07070100074bc6000081a40000000000000002000000013ac03898000002f1000000200000000000000000000000000000001a00000003reloc/lpadmin/config.info print_style=Printer configuration style,1,solaris-Solaris,linux-Linux,freebsd-FreeBSD,hpux-HPUX,lprng-LPRng,unixware-UnixWare,cups-CUPS,irix-IRIX
driver_style=Printer driver style,1,webmin-Webmin,caldera-Caldera,redhat-Redhat,hpux-HPUX,suse-SuSE,cups-CUPS,irix-IRIX,printconf-Redhat Printconf
printcap_file=Printers file,3,None
model_path=Directory containing interface programs,3,None
smbclient_path=Path to smbclient,3,None
gs_path=Path to ghostscript,3,None
gs_fontpath=Ghostscript font directories,3,Default
gs_lib=Ghostscript library directories,3,Default
hpnp_path=Path to hpnp program,3,None
show_status=Show enabled and accepting status instead of driver?,1,1-Yes,0-No
queue_refresh=Seconds to wait before refreshing print queue,3,Don't refresh
   07070100074bc7000081a40000000000000002000000013ac0389a00000251000000200000000000000000000000000000001d00000003reloc/lpadmin/config.info.de  print_style=Typ der Druckerkonfiguration,1,solaris-Solaris,linux-Linux,freebsd-FreeBSD,hpux-HPUX,lprng-LPRng,unixware-UnixWare
driver_style=Typ der Druckertreiber,1,webmin-Webmin,caldera-Caldera,redhat-Redhat,hpux-HPUX
printcap_file=Datei mit Druckern,3,Keine
model_path=Verzeichnis, das Schnittstellen Programme enth&auml;lt,3,Keines
smbclient_path=Pfad zu smbclient,3,Nicht vorhanden
gs_path=Pfad zu ghostscript,3,Nicht vorhanden
gs_fontpath=Ghostscript Schriftenverzeichnis,3,Standard
gs_lib=Ghostscript Bibliothekverzeichnisse,3,Standard
hpnp_path=Pfad zum hpnp Programm,3,Nicht vorhanden
   07070100074bc8000081a40000000000000002000000013ac0389a000002e0000000200000000000000000000000000000001d00000003reloc/lpadmin/config.info.es  print_style=Estilo de configuraci髇 de impresoras,1,solaris-Solaris,linux-Linux,freebsd-FreeBSD,hpux-HPUX,lprng-LPRng,unixware-UnixWare
driver_style=Estilo de controlador de Impresoras,1,webmin-Webmin,caldera-Caldera,redhat-Redhat,hpux-HPUX,suse-SuSE
printcap_file=Archivo de impresoras,3,Ninguno
model_path=Directorio que contiene los programas de interfaz,3,Ninguno
smbclient_path=Trayectoria de smbclient,3,Ninguna
gs_path=Trayectoria de ghostscript,3,Ninguna
gs_fontpath=Directorios de tipos de letra de Ghostscript,3,Por defecto
gs_lib=Directorios de biblioteca de Ghostscript,3,Por defecto
hpnp_path=Trayectoria de programa hpnp,3,Ninguna
show_status=縈ostrar estado de activada y de aceptando en vez del controlador?,1,1-S,0-No
07070100074bc9000081a40000000000000002000000013ac0389a0000022d000000200000000000000000000000000000001d00000003reloc/lpadmin/config.info.fr  print_style=Style de configuration d'imprimante,1,solaris-Solaris,linux-Linux,freebsd-FreeBSD,hpux-HPUX,lprng-LPRng,unixware-UnixWare
driver_style=Style de pilote d'imprimante,1,webmin-Webmin,caldera-Caldera,redhat-Redhat,hpux-HPUX,suse-SuSE
model_path=R閜ertoire qui contient les applications d'interface,3,Aucun
smbclient_path=Chemin pour smbclient,3,Aucun
gs_path=Chemin pour ghostscript,3,Aucun
gs_fontpath=R閜ertoire de polices Ghostscript,3,D閒aut
gs_lib=R閜ertoire de librairie Ghostscript,3,D閒aut
hpnp_path=Chemin du programme hpnp,3,Aucun
   07070100074bca000081a40000000000000002000000013ac03899000002ad000000200000000000000000000000000000001d00000003reloc/lpadmin/config.info.hu  print_style=A&nbsp;nyomtat骯lrendszer fajt醞a,1,solaris-Solaris,linux-Linux,freebsd-FreeBSD,hpux-HPUX,lprng-LPRng,unixware-UnixWare
driver_style=A nyomtat髆eghajt fajt醞a,1,webmin-Webmin,caldera-Caldera,redhat-Redhat,hpux-HPUX,suse-SuSE
printcap_file=A nyomtat髃 list醞醫 tartalmaz file,3,Nincs
model_path=Az illeszt鮬rogramok katal骻usa,3,Nincs
smbclient_path=Az <tt>smbclient</tt> program,3,Nincs
gs_path=A <tt>ghostscript</tt> program,3,Nincs
gs_fontpath=A Ghostscript fontok katal骻usa,3,Szok醩os
gs_lib=A Ghostscript k鰊yvt醨ak katal骻usa,3,Szok醩os
hpnp_path=A <tt>hpnp</tt> program,3,Nincs
show_status=A nyomtat 醠lapota megjelenjen a f鮰醔l醶atban?,1,1-Igen,0-Nem
   07070100074bcb000081a40000000000000002000000013ac038990000030d000000200000000000000000000000000000001d00000003reloc/lpadmin/config.info.pl  print_style=Styl konfiguracji drukarek,1,solaris-Solaris,linux-Linux,freebsd-FreeBSD,hpux-HPUX,lprng-LPRng,unixware-UnixWare,irix-IRIX
driver_style=Typ sterownik體 drukarek,1,webmin-Webmin,caldera-Caldera,redhat-Redhat,hpux-HPUX,suse-SuSE,irix-IRIX
printcap_file=Plik opisu drukarek,3,Brak
model_path=Katalog zawieraj眂y filtry programowe,3,Brak
smbclient_path=ie縦a do programu smbclient,3,Brak
gs_path=ie縦a do programu ghostscript,3,Brak
gs_fontpath=Katalogi czcionek ghostscripta,3,Domy秎ne
gs_lib=Katalogi bibliotek Ghostscripta,3,Domy秎ne
hpnp_path=ie縦a do programu hpnp,3,Brak
show_status=Pokazywa stan w潮czenia i&nbsp;przyjmowania po潮cze zamiast sterownika?,1,1-Tak,0-Nie
queue_refresh=Liczba sekund oczekiwania na od秝ie縠nie kolejki drukowania,3,Nie od秝ie縜j
   07070100074bcc000081a40000000000000002000000013ac0389a000001ee000000200000000000000000000000000000002000000003reloc/lpadmin/config.info.ru_RU   gs_lib=枢蜞腩汨 徼犭桀蝈 潆 Ghostscript,3,项 箪铍鬣龛
hpnp_path=象螯  镳钽疣祆 hpnp,3,湾
gs_path=象螯  ghostscript,3,湾
driver_style=诣 漯嚅忮痤 镥鬣蜩,1,webmin-Webmin,caldera-Caldera,redhat-Redhat,hpux-HPUX,suse-SuSE
print_style=诣 耔耱屐 镥鬣蜩,1,solaris-Solaris,linux-Linux,freebsd-FreeBSD,hpux-HPUX,lprng-LPRng,unixware-UnixWare
model_path=枢蜞腩 潆 桧蝈痿彘耥 镳钽疣祆,3,湾
smbclient_path=象螯  smbclient,3,湾
gs_fontpath=枢蜞腩汨 梏蝾 潆 Ghostscript,3,项 箪铍鬣龛
  07070100074bcd000081a40000000000000002000000013ac0389a000001ee000000200000000000000000000000000000002000000003reloc/lpadmin/config.info.ru_SU   print_style=羯 由釉磐 信蘖陨,1,solaris-Solaris,linux-Linux,freebsd-FreeBSD,hpux-HPUX,lprng-LPRng,unixware-UnixWare
driver_style=羯 囊潦着蚁 信蘖陨,1,webmin-Webmin,caldera-Caldera,redhat-Redhat,hpux-HPUX,suse-SuSE
model_path=肓粤滔 奶 晌耘移攀游偃 幸锨伊屯,3,钆
smbclient_path=鹫载  smbclient,3,钆
gs_path=鹫载  ghostscript,3,钆
gs_fontpath=肓粤滔巧 垡善韵 奶 Ghostscript,3,鹣 胀咸蘖紊
gs_lib=肓粤滔巧 律绿上耘 奶 Ghostscript,3,鹣 胀咸蘖紊
hpnp_path=鹫载  幸锨伊屯 hpnp,3,钆
  07070100074bce000081a40000000000000002000000013ac0389a00000280000000200000000000000000000000000000001d00000003reloc/lpadmin/config.info.sv  print_style=Skrivarinst鋖lningar,1,solaris-Solaris,linux-Linux,freebsd-FreeBSD,hpux-HPUX,lprng-LPRng,unixware-UnixWare,cups-CUPS
driver_style=Skrivardrivrutin,1,webmin-Webmin,caldera-Caldera,redhat-RedHat,hpux-HPUX,suse-SuSE,cups-CUPS
printcap_file=Skrivarfil,3,Ingen
model_path=Katalog med interface-program,3,Ingen
smbclient_path=S鰇v鋑 till smbclient,3,Ingen
gs_path=S鰇v鋑 till ghostscript,3,Ingen
gs_fontpath=Typsnittskatalog f鰎 ghostscript,3,Standard
gs_lib=Lib-katalog f鰎 ghostscript,3,Standard
hpnp_path=S鰇v鋑 till hpnp-program,3,Ingen
show_status=Visa aktiverad och mottagningsstatus ist鋖let f鰎 skrivardrivrutin?,1,1-Ja,0-Nej
07070100074bcf000081a40000000000000002000000013ac038980000021d000000200000000000000000000000000000001d00000003reloc/lpadmin/config.info.tr  print_style=Yaz齝 yap齦and齬ma stili,1,solaris-Solaris,linux-Linux,freebsd-FreeBSD,hpux-HPUX,lprng-LPRng,unixware-UnixWare
driver_style=Yaz齝 s黵點 stili,1,webmin-Webmin,caldera-Caldera,redhat-Redhat,hpux-HPUX,suse-SuSE
printcap_file=Yaz齝 dosyas,3,Hi鏱iri
model_path=Aray鼁 programlar齨 i鏴ren dizin,3,Hi鏱iri
smbclient_path=smbclient komutu yolu,3,Hi鏱iri
gs_path=ghostscript komutu yolu,3,Hi鏱iri
gs_fontpath=Ghostscript font dizini,3,謓tan齧l
gs_lib=Ghostscript k黷黳hane dizini,3,謓tan齧l
hpnp_path=hpnp program yolu,3,Hi鏱iri
   07070100074bd0000081a40000000000000002000000013ac0389a000001f0000000200000000000000000000000000000002000000003reloc/lpadmin/config.info.zh_CN   print_style=打印机配置类型,1,solaris-Solaris,linux-Linux,freebsd-FreeBSD,hpux-HPUX,lprng-LPRng,unixware-UnixWare
driver_style=打印机驱动类型,1,webmin-Webmin,caldera-Caldera,redhat-Redhat,hpux-HPUX
printcap_file=打印机文件,3,无
model_path=接口程序所在目录,3,空
smbclient_path=smbclient的路径,3,空
gs_path=ghostscript的路径,3,空
gs_fontpath=Ghostscript字体所在目录,3,缺省
gs_lib=Ghostscript库所在目录,3,缺省
hpnp_path=hpnp程序的路径,3,空
show_status=显示允许运行和接受的状态而不是驱动?,1,1-是,0-否
07070100074bee000081a40000000000000002000000013ac03899000009d0000000200000000000000000000000000000001200000003reloc/lpadmin/stp bjc-30	Canon BJC 30
bjc-1000	Canon BJC 1000
bjc-2000	Canon BJC 2000
bjc-3000	Canon BJC 3000
bjc-4300	Canon BJC 4300
bjc-4400	Canon BJC 4400 photo
bjc-6000	Canon BJC 6000
bjc-6100	Canon BJC 6100
bjc-7000	Canon BJC 7000
bjc-7100	Canon BJC 7100
bjc-8200	Canon BJC 8200
escp2	Epson Stylus Color
escp2-pro	Epson Stylus Color Pro
escp2-pro-xl	Epson Stylus Color Pro XL
escp2-400	Epson Stylus Color 400
escp2-440	Epson Stylus Color 440
escp2-460	Epson Stylus Color 460
escp2-500	Epson Stylus Color 500
escp2-600	Epson Stylus Color 600
escp2-640	Epson Stylus Color 640
escp2-660	Epson Stylus Color 660
escp2-670	Epson Stylus Color 670
escp2-680	Epson Stylus Color 680
escp2-740	Epson Stylus Color 740
escp2-760	Epson Stylus Color 760
escp2-777	Epson Stylus Color 777
escp2-800	Epson Stylus Color 800
escp2-850	Epson Stylus Color 850
escp2-860	Epson Stylus Color 860
escp2-880	Epson Stylus Color 880
escp2-900	Epson Stylus Color 900
escp2-980	Epson Stylus Color 980
escp2-1160	Epson Stylus Color 1160
escp2-1500	Epson Stylus Color 1500
escp2-1520	Epson Stylus Color 1520
escp2-3000	Epson Stylus Color 3000
escp2-photo	Epson Stylus Photo
escp2-700	Epson Stylus Photo 700
escp2-ex	Epson Stylus Photo EX
escp2-720	Epson Stylus Photo 720
escp2-750	Epson Stylus Photo 750
escp2-790	Epson Stylus Photo 790
escp2-870	Epson Stylus Photo 870
escp2-1200	Epson Stylus Photo 1200
escp2-1270	Epson Stylus Photo 1270
escp2-2000	Epson Stylus Photo 2000P
pcl-340	HP DeskJet 340
pcl-400	HP DeskJet 400
pcl-500	HP DeskJet 500
pcl-501	HP DeskJet 500C
pcl-520	HP DeskJet 520
pcl-540	HP DeskJet 540C
pcl-550	HP DeskJet 550C
pcl-560	HP DeskJet 560C
pcl-600	HP DeskJet 600/600C (Single Cartridge)
pcl-601	HP DeskJet 600 series (2 Cartridge)
pcl-690	HP DeskJet 690 series (Photo-Ink capable)
pcl-810	HP DeskJet 810C
pcl-812	HP DeskJet 812C
pcl-840	HP DeskJet 840C
pcl-842	HP DeskJet 842C
pcl-850	HP DeskJet 850C
pcl-855	HP DeskJet 855C
pcl-870	HP DeskJet 870C
pcl-890	HP DeskJet 890C
pcl-895	HP DeskJet 895C
pcl-900	HP DeskJet 900 series
pcl-P1000	HP PhotoSmart P1000
pcl-1100	HP DeskJet 1100C
pcl-P1100	HP PhotoSmart P1100
pcl-1120	HP DeskJet 1120C
pcl-1200	HP DeskJet 1200C
pcl-1220	HP DeskJet 1220C
pcl-1600	HP DeskJet 1600C
pcl-2000	HP DeskJet 2000 series
pcl-2500	HP DeskJet 2500 series
pcl-2	HP LaserJet II series
pcl-3	HP LaserJet III series
pcl-4	HP LaserJet 4 series
pcl-4v	HP LaserJet 4V, 4Si
pcl-5	HP LaserJet 5 series
pcl-5si	HP LaserJet 5Si
pcl-6	HP LaserJet 6 series
lexmark-4076	Lexmark 4076 (PCL printer)
lexmark-z52	Lexmark Z52
07070100074bd1000081a40000000000000002000000013ac0389a000001ea000000200000000000000000000000000000002500000003reloc/lpadmin/config.info.zh_TW.Big5  print_style=诀舱篈妓Α,1,solaris-Solaris,linux-Linux,freebsd-FreeBSD,hpux-HPUX,lprng-LPRng,unixware-UnixWare
driver_style=诀臱笆祘Α妓Α,1,webmin-Webmin,caldera-Caldera,redhat-Redhat,hpux-HPUX,suse-SuSE
printcap_file=诀郎,3,None
model_path=ざ祘Αヘ魁,3,None
smbclient_path= smbclient Ч俱隔畖,3,None
gs_path= ghostscript Ч俱隔畖,3,None
gs_fontpath=Ghostscript ヘ魁,3,Default
gs_lib=Ghostscript ㄧ计畐ヘ魁,3,Default
hpnp_path= hpnp 祘ΑЧ俱隔畖,3,None
  07070100074bd2000081a40000000000000002000000013ac0389a0000121c000000200000000000000000000000000000001d00000003reloc/lpadmin/cups-driver.pl  # cups-driver.pl
# Functions for CUPS printer drivers

$webmin_windows_driver = 0;
$cups_ppd_dir = "/etc/cups/ppd";

# is_windows_driver(path, &printer)
# Returns the server, share, username, password, workgroup, program
# if path is a webmin windows driver
sub is_windows_driver
{
if ($_[1]->{'dev'} =~ /^smb:\/\/(\S*):(\S*)\@(\S*)\/(\S*)\/(\S*)$/) {
	return { 'user' => $1,
		 'pass' => $2,
		 'workgroup' => $3,
		 'server' => $4,
		 'share' => $5,
		 'program' => $_[0] };
	}
elsif ($_[1]->{'dev'} =~ /^smb:\/\/(\S*):(\S*)\@(\S*)\/(\S*)$/) {
	return { 'user' => $1,
		 'pass' => $2,
		 'server' => $3,
		 'share' => $4,
		 'program' => $_[0] };
	}
elsif ($_[1]->{'dev'} =~ /^smb:\/\/(\S*)\/(\S*)\/(\S*)$/) {
	return { 'workgroup' => $1,
		 'server' => $2,
		 'share' => $3,
		 'program' => $_[0] };
	}
elsif ($_[1]->{'dev'} =~ /^smb:\/\/(\S*)\/(\S*)$/) {
	return { 'server' => $1,
		 'share' => $2,
		 'program' => $_[0] };
	}
else {
	return undef;
	}
}

# is_driver(path, &printer)
# Returns the driver name if some path is a CUPS driver, or undef
sub is_driver
{
if (!$_[0] || !-r $_[0]) {
	return { 'mode' => 0,
		 'desc' => $text{'cups_none'} };
	}
local $ppd = &parse_cups_ppd($_[0]);
if ($ppd->{'NickName'}) {
	# Looks like a CUPS PPD file!
	return { 'mode' => 1,
		 'manuf' => $ppd->{'Manufacturer'},
		 'model' => $ppd->{'ModelName'},
		 'nick' => $ppd->{'NickName'},
		 'desc' => "$ppd->{'Manufacturer'} $ppd->{'ModelName'}" };
	}
else {
	# Some other kind of interface file
	return { 'mode' => 2,
		 'file' => $_[0],
		 'desc' => $_[0] };
	}
}

# create_windows_driver(&printer, &driver)
sub create_windows_driver
{
if ($_[1]->{'workgroup'} && $_[1]->{'user'}) {
	$_[0]->{'dev'} = "smb://$_[1]->{'user'}:$_[1]->{'pass'}\@$_[1]->{'workgroup'}/$_[1]->{'server'}/$_[1]->{'share'}";
	}
elsif ($_[1]->{'workgroup'}) {
	$_[0]->{'dev'} = "smb://$_[1]->{'workgroup'}/$_[1]->{'server'}/$_[1]->{'share'}";
	}
elsif ($_[1]->{'user'}) {
	$_[0]->{'dev'} = "smb://$_[1]->{'user'}:$_[1]->{'pass'}\@$_[1]->{'server'}/$_[1]->{'share'}";
	}
else {
	$_[0]->{'dev'} = "smb://$_[1]->{'server'}/$_[1]->{'share'}";
	}
return $_[1]->{'program'};
}

# create_driver(&printer, &driver)
sub create_driver
{
local $drv = "$cups_ppd_dir/$_[0]->{'name'}.ppd";
if ($_[1]->{'mode'} == 0) {
	&system_logged("rm -f \"$drv\"") if (-r $drv);
	return undef;
	}
elsif ($_[1]->{'mode'} == 2) {
	&system_logged("rm -f \"$drv\"") if (-r $drv);
	return $_[1]->{'file'};
	}
else {
	# Copy the driver into place
	&system_logged("cp $_[1]->{'ppd'} $drv");
	return $drv;
	}
}

# delete_driver(name)
sub delete_driver
{
&system_logged("rm -f \"$cups_ppd_dir/$_[0].ppd\"");
}

# driver_input(&printer, &driver)
sub driver_input
{
printf "<tr> <td><input type=radio name=mode value=0 %s> %s</td>\n",
	$_[1]->{'mode'} == 0 ? 'checked' : '', $text{'cups_none'};
print "<td>($text{'cups_nonemsg'})</td> </tr>\n";
printf "<tr> <td><input type=radio name=mode value=2 %s> %s</td>",
	$_[1]->{'mode'} == 2 ? 'checked' : '', $text{'cups_prog'};
printf "<td><input name=program size=40 value='%s'></td> </tr>\n",
	$_[1]->{'mode'} == 2 ? $_[0]->{'iface'} : '';

# Display all the CUPS drivers
printf "<tr> <td valign=top><input type=radio name=mode value=1 %s> %s</td>\n",
	$_[1]->{'mode'} == 1 ? 'checked' : '', $text{'cups_driver'};
print "<td><select name=ppd size=10>\n";
opendir(DIR, $config{'model_path'});
foreach $d (readdir(DIR)) {
	next if ($d =~ /^\./);
	next if (!opendir(DIR2, "$config{'model_path'}/$d"));
	foreach $f (readdir(DIR2)) {
		next if ($f =~ /^\./);
		local $p = "$config{'model_path'}/$d/$f";
		local $ppd = &parse_cups_ppd($p);
		next if (!$ppd->{'NickName'});
		printf "<option value=%s %s>%s\n",
			$p, $_[1]->{'nick'} eq $ppd->{'NickName'} ?
			'selected' : '', $ppd->{'NickName'};
		}
	closedir(DIR2);
	}
closedir(DIR);
print "</select></td> </tr>\n";
return undef;
}

# parse_driver()
# Parse driver selection from %in and return a driver structure
sub parse_driver
{
if ($in{'mode'} == 0) {
	return { 'mode' => 0 };
	}
elsif ($in{'mode'} == 2) {
	$in{'program'} =~ /^(\S+)/ && -x $1 ||
		&error(&text('cups_eprog', $in{'program'}));
	return { 'mode' => 2,
		 'file' => $in{'program'} };
	}
elsif ($in{'mode'} == 1) {
	# CUPS printer driver
	local $ppd = &parse_cups_ppd($in{'ppd'});
	return { 'mode' => 1,
		 'ppd' => $in{'ppd'},
		 'nick' => $ppd->{'NickName'},
		 'manuf' => $ppd->{'Manufacturer'},
		 'model' => $ppd->{'ModelName'} };
	}
}

# parse_cups_ppd(file)
sub parse_cups_ppd
{
local %ppd;
open(PPD, $_[0]);
while(<PPD>) {
	if (/^\s*\*(\S+):\s*"(.*)"/ || /^\s*\*(\S+):\s*(\S+)/) {
		$ppd{$1} = $2;
		}
	}
close(PPD);
return \%ppd;
}

1;

07070100074bd3000081a40000000000000002000000013ac0389a00001940000000200000000000000000000000000000001a00000003reloc/lpadmin/cups-lib.pl # solaris-lib.pl
# Functions for solaris/hpux-style printer management

# list_printers()
# Returns an array of known printer names
sub list_printers
{
return () if (!&sched_running());
local(@rv, $_);
open(STAT, "lpstat -v |");
while(<STAT>) {
	if (/\s+for\s+(\S+):/i) { push(@rv, $1); }
	}
close(STAT);
return &unique(@rv);
}

# get_printer(name, [nostatus])
# Returns a reference to an associative array of printer details
sub get_printer
{
local($stat, @rv, $body, $avl, $con, $sys, %prn, $_, $out);
$out = `lpstat -l -p $_[0]`;
if ($out =~ /^printer\s+(\S+)\s+(\S+).*\n([\000-\177]*)$/) {
	# printer exists..
	$prn{'name'} = $1;
	$prn{'enabled'} = $2 ne "disabled";
	$body = $3;
	}
else {
	# no printer found
	return undef;
	}
if (!$prn{'enabled'} && $body =~ /^\s+(.*)/) {
	$prn{'enabled_why'} = lc($1) eq "paused" || lc($1) eq "reason unknown" ?
			      "" : $1;
	}
if ($body =~ /Description: (.*)/) { $prn{'desc'} = $1; }
if ($body =~ /Printer types: (.*)/) { $prn{'ptype'} = $1; }
if ($body =~ /Interface: (.*)/ && $1 ne $config{'default_interface'})
	{ $prn{'iface'} = $1; }
if ($body =~ /Banner not required/) { $prn{'banner'} = 0; }
else { $prn{'banner'} = 1; }

if (!$_[1]) {
	# request availability
	$avl = `lpstat -a $prn{'name'} 2>&1`;
	if ($avl =~ /^\S+\s+not accepting.*\n\s*(.*)/) {
		$prn{'accepting'} = 0;
		$prn{'accepting_why'} = lc($1) eq "reason unknown" ? "" : $1;
		}
	else { $prn{'accepting'} = 1; }
	}

# request connection
$con = `lpstat -v $prn{'name'} 2>&1`;
if ($con =~ /^device for \S+:\s+(lpd|ipp):\/\/(\S+)\/(\S+)/) {
	$prn{'rhost'} = $2;
	$prn{'rqueue'} = $3;
	if ($1 eq 'ipp') {
		$prn{'rtype'} = 'ipp';
		$prn{'rhost'} =~ s/:631//;
		}
	}
elsif ($con =~ /^device for \S+:\s+socket:\/\/(\S+):(\d+)/) {
	$prn{'dhost'} = $1;
	$prn{'dport'} = $2;
	}
elsif ($con =~ /^device for \S+:\s+(file|serial|parallel):([^\s\?]+)/) {
	$prn{'dev'} = $2;
	}
elsif ($con =~ /^device for \S+:\s+(\S+)/) {
	$prn{'dev'} = $1;
	}

# Check if this is the default printer
`lpstat -d 2>&1` =~ /destination: (\S+)/;
if ($1 eq $prn{'name'}) { $prn{'default'} = 1; }

return \%prn;
}

# get_jobs(printer)
sub get_jobs
{
local (@jobs, $htype);
open(LPQ, "lpq -P$_[0] |");
while(<LPQ>) {
	chop;
	if (/^(\S+)\s+(\S+)\s+(\d+)\s+(.*\S)\s+(\d+)\s+(\S+)$/) {
		# Normal lpq output
		local(%job, $f, @pq);
		$job{'id'} = $3;
		$job{'user'} = $2;
		$job{'size'} = $5;
		$job{'file'} = $4;
		$job{'printing'} = ($1 eq "active");
		local $d = $config{'spool_dir'};
		opendir(DIR, $d);
		while($f = readdir(DIR)) {
			if ($f =~ /^d(\d+)\-(\d+)$/ && $1 == $job{'id'}) {
				push(@pq, "$d/$f");
				}
			}
		closedir(DIR);
		$job{'printfile'} = @pq ? \@pq : undef;
		push(@jobs, \%job);
		}
	}
close(LPQ);
return @jobs;
}

# printer_support(option)
sub printer_support
{
return $_[0] !~ /^(msize|alias|rnoqueue|ctype|sysv|allow)$/;
}

# list_classes()
# Returns an associative array of print classes
sub list_classes
{
local($stat, %rv);
$stat = `lpstat -c 2>&1`;
while($stat =~ /^members of class (\S+):\n((\s+\S+\n)+)([\000-\177]*)$/) {
	$stat = $4;
	$rv{$1} = [ grep { $_ ne "" } split(/\s+/, $2) ];
	}
return \%rv;
}

# create_printer(&details)
# Create a new printer
sub create_printer
{
&modify_printer($_[0]);
}

# modify_printer(&details)
# Change an existing printer
sub modify_printer
{
local(%prn, $cmd, $out);
%prn = %{$_[0]};

# call lpadmin
$cmd = "lpadmin -p $prn{'name'} -D \"$prn{'desc'}\"";
if ($prn{'dev'} =~ /\/dev\/tty/) {
	$cmd .= " -v serial:$prn{'dev'}";
	}
elsif ($prn{'dev'} =~ /\/dev\/lp/) {
	$cmd .= " -v parallel:$prn{'dev'}";
	}
elsif ($prn{'dev'}) {
	$cmd .= " -v $prn{'dev'}";
	}
elsif ($prn{'rhost'}) {
	if ($prn{'rtype'} eq 'ipp') {
		$cmd .= " -v ipp://$prn{'rhost'}/$prn{'rqueue'}";
		}
	else {
		$cmd .= " -v lpd://$prn{'rhost'}/$prn{'rqueue'}";
		}
	}
else {
	$cmd .= " -v socket://$prn{'dhost'}:$prn{'dport'}";
	}
if ($prn{'iface'}) {
	$cmd .= " -m $prn{'iface'}";
	}
$out = &backquote_logged("cd / ; $cmd 2>&1");
if ($?) { &error("lpadmin failed : <pre>$out ($cmd)</pre>"); }

# make the default
if ($prn{'default'}) {
	$out = &backquote_logged("cd / ; lpadmin -d $prn{'name'} 2>&1");
	if ($?) { &error("Failed to set default : <pre>$out</pre>"); }
	}

# enable or disable
local $enable = &has_command("enable");
if ($prn{'enabled'}) { $cmd = "$enable $prn{'name'}"; }
elsif ($prn{'enabled_why'})
	{ $cmd = "$enable $prn{'name'} ; disable -r \"$prn{'enabled_why'}\" $prn{'name'}"; }
else { $cmd = "$enable $prn{'name'} ; disable $prn{'name'}"; }
$out = &backquote_logged("$cmd 2>&1");

# accepting or rejecting requests
if ($prn{'accepting'}) { $cmd = "accept $prn{'name'}"; }
elsif ($prn{'accepting_why'}) {
	$cmd = "accept $prn{'name'} ; ".
	       "reject -r \"$prn{'accepting_why'}\" $prn{'name'}";
	}
else { $cmd = "accept $prn{'name'} ; reject $prn{'name'}"; }
$out = &backquote_logged("$cmd 2>&1");
}

# delete_printer(name)
# Deletes some existing printer
sub delete_printer
{
local($out);
$out = &backquote_logged("lpadmin -x $_[0] 2>&1");
if ($?) { &error("lpadmin failed : <pre>$out</pre>"); }
}

# cancel_job(printer, id)
# Cancels some print job
sub cancel_job
{
local($out);
$out = &backquote_logged("lprm -P$_[0] $_[1] 2>&1");
if ($?) { &error("lprm failed : <pre>$out</pre>"); }
sleep(1);
}

# sched_running()
# Returns the pid if lpsched is running, 0 if not, -1 if cannot be stopped
sub sched_running
{
@pid = &find_byname("cups");
if (@pid) { return $pid[0]; }
return 0;
}

# start_sched()
# Start lpsched
sub start_sched
{
local $out = &backquote_logged("cupsd 2>&1");
if ($?) { &error("failed to start cups : <tt>$out</tt>"); }
sleep(3);
}

# stop_sched(pid)
# Stop the running lpsched process
sub stop_sched
{
&kill_logged('TERM', $_[0]) || &error("Failed to stop cups : $!");
}

# print_command(printer, file)
# Returns the command to print some file on some printer
sub print_command
{
return "lpr -P$_[0] $_[1]";
}

if (-r "/dev/lp0") {
	@device_files = ("/dev/lp0", "/dev/lp1",
			 "/dev/ttyS0", "/dev/ttyS1", "/dev/null");
	}
else {
	@device_files = ("/dev/lp1", "/dev/lp2",
			 "/dev/ttyS0", "/dev/ttyS1", "/dev/null");
	}
if (-r "/dev/usblp0") {
	push(@device_files, "/dev/usblp0", "/dev/usblp1",
			    "/dev/usblp2", "/dev/usblp3");
	}
@device_names = (&text('linux_paralel', "1"), &text('linux_paralel', "2"),
		 &text('linux_serial', "1"), &text('linux_serial', "2"),
		 $text{'linux_null'},  &text('linux_usb', 1),
		 &text('linux_usb', 2), &text('linux_usb', 3),
		 &text('linux_usb', 4));

07070100074bd4000081a40000000000000002000000013ac0389a0000002f000000200000000000000000000000000000001900000003reloc/lpadmin/defaultacl  printers=*
add=1
cancel=1
stop=1
view=1
test=1
 07070100074bd5000081e40000000000000002000000013ac03899000002c1000000200000000000000000000000000000002100000003reloc/lpadmin/delete_printer.cgi  #!/usr/local/bin/perl
# delete_printer.cgi
# Delete an existing printer

require './lpadmin-lib.pl';
&ReadParse();
&can_edit_printer($in{'name'}) || &error($text{'save_eedit'});
$prn = &get_printer($in{'name'});
$info = &log_info($prn);
&delete_printer($in{'name'});
&delete_driver($in{'name'});
&delete_webmin_driver($in{'name'});
&webmin_log("delete", "printer", $prn->{'name'}, $info);

# remove from acl files
&read_acl(undef, \%wusers);
foreach $u (keys %wusers) {
	%uaccess = &get_module_acl($u);
	if ($uaccess{'printers'} ne '*') {
		$uaccess{'printers'} =
			join(' ', grep { $_ ne $in{'name'} }
				  split(/\s+/, $uaccess{'printers'}));
		&save_module_acl(\%uaccess, $u);
		}
	}
&redirect("");

   07070100074bd7000081e40000000000000002000000013ac0389800002874000000200000000000000000000000000000001f00000003reloc/lpadmin/edit_printer.cgi    #!/usr/local/bin/perl
# edit_printer.cgi
# Edit or create a printer

require './lpadmin-lib.pl';
&ReadParse();

if ($in{'new'}) {
	$access{'add'} || &error($text{'edit_eadd'});
	&header($text{'edit_add'}, "");
	$prn{'accepting'}++;
	$prn{'enabled'}++;
	$prn{'allow_all'}++;
	$prn{'dev'} = $device_files[0];
	$prn{'ctype'} = [ "postscript" ];
	}
else {
	&can_edit_printer($in{'name'}) || &error($text{'edit_eedit'});
	&header($text{'edit_edit'}, "");
	%prn = %{&get_printer($in{'name'})};
	}
print "<hr>\n";

print "<form action=save_printer.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'edit_conf'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'edit_name'}</b></td>\n";
if ($in{'new'}) {
	print "<td><input name=name size=15></td>\n";
	print "<input type=hidden name=new value=1>\n";
	}
else {
	print "<td>$prn{'name'}</td>\n";
	print "<input type=hidden name=name value=\"$prn{'name'}\">\n";
	}

print "<td align=right><b>$text{'edit_acc'}</b></td>\n";
printf "<td><input type=radio name=accepting value=1 %s> $text{'yes'}\n",
	$prn{'accepting'} ? "checked" : "";
if (&printer_support('why')) {
	printf "<input type=radio name=accepting value=0 %s> %s\n",
		$prn{'accepting'} ? "" : "checked", $text{'edit_why'};
	printf "<input name=accepting_why size=15 value=\"%s\"></td> </tr>\n",
		$prn{'accepting_why'};
	}
else {
	printf "<input type=radio name=accepting value=0 %s> $text{'no'}\n",
		$prn{'accepting'} ? "" : "checked";
	}

if (&printer_support('desc')) {
	print "<tr> <td><b>$text{'edit_desc'}</b></td>\n";
	print "<td><input name=desc size=20 value=\"$prn{'desc'}\"></td>\n";
	}
else { print "<tr> <td colspan=2></td>\n"; }

print "<td align=right><b>$text{'edit_ena'}</b></td>\n";
printf "<td><input type=radio name=enabled value=1 %s> $text{'yes'}\n",
	$prn{'enabled'} ? "checked" : "";
if (&printer_support('why')) {
	printf "<input type=radio name=enabled value=0 %s> %s\n",
		$prn{'enabled'} ? "" : "checked", $text{'edit_why'};
	printf "<input name=enabled_why size=15 value=\"%s\"></td> </tr>\n",
		$prn{'enabled_why'};
	}
else {
	printf "<input type=radio name=enabled value=0 %s> $text{'no'}\n",
		$prn{'enabled'} ? "" : "checked";
	}

if (&printer_support('allow')) {
	print "<tr> <td valign=top><b>$text{'edit_acl'}</b></td>\n";
	print "<td colspan=3><table><tr><td valign=top>\n";
	printf "<input type=radio name=access value=0 %s> %s<br>\n",
		$prn{'allow_all'} ? "checked" : "", $text{'edit_allow'};
	printf "<input type=radio name=access value=1 %s> %s<br>\n",
		$prn{'deny_all'} ? "checked" : "", $text{'edit_deny'};
	printf "<input type=radio name=access value=2 %s> %s<br>\n",
		$prn{'allow'} ? "checked" : "", $text{'edit_allowu'};
	printf "<input type=radio name=access value=3 %s> %s\n",
		$prn{'deny'} ? "checked" : "", $text{'edit_denyu'};
	print "</td> <td valign=top>\n";
	print "<textarea wrap=auto name=users rows=5 cols=30>",
	      join(" ", (@{$prn{'allow'}}, @{$prn{'deny'}})),
	      "</textarea></td>\n";
	print "<td valign=top>",&user_chooser_button("users",1),"</td>\n";
	print "</tr></table></td> </tr>\n";
	}

if (&printer_support('banner')) {
	print "<tr> <td valign=top><b>$text{'edit_banner'}</b></td> ",
	      "<td valign=top>\n";
	printf "<input type=radio name=banner value=1 %s> $text{'yes'}\n",
		$prn{'banner'} ? "checked" : "";
	printf "<input type=radio name=banner value=0 %s> %s</td>\n",
		$prn{'banner'} ? "" : "checked", $text{'edit_opt'};
	}
else { print "<tr>\n"; }

if (&printer_support('default')) {
	print "<td align=right><b>$text{'edit_default'}</b></td> <td>\n";
	if (!$prn{'default'}) {
		printf "<input type=radio name=default value=1 %s> $text{'yes'}\n", $prn{'default'} ? "checked" : "";
		printf "<input type=radio name=default value=0 %s> $text{'no'}</td></tr>\n", $prn{'default'} ? "" : "checked";
		}
	else {
		print "<i>$text{'edit_already'}</i> </td> </tr>\n";
		}
	}
elsif (&printer_support('msize')) {
	print "<td align=right><b>$text{'edit_max'}</b></td> <td>\n";
	printf "<input type=radio name=msize_def value=1 %s> %s\n",
		defined($prn{'msize'}) ? "" : "checked", $text{'default'};
	printf "<input type=radio name=msize_def value=2 %s> %s\n",
		$prn{'msize'} eq '0' ? "checked" : "", $text{'edit_unlimited'};
	printf "<input type=radio name=msize_def value=0 %s>\n",
		$prn{'msize'} ? "checked" : "";
	printf "<input name=msize size=6 value=\"%s\"> %s</td> </tr>\n",
		$prn{'msize'} ? $prn{'msize'} : "", $text{'blocks'};
	}
else { print "<td colspan=2></tr>\n"; }

if (&printer_support('ctype')) {
	@ctype = @{$prn{'ctype'}};
	print "<tr> <td><b>$text{'edit_dacc'}</b></td> <td colspan=3>\n";
	printf "<input type=checkbox name=ctype_simple %s> %s &nbsp;\n",
		&indexof("simple", @ctype) < 0 ? "" : "checked",
		$text{'edit_dtext'};
	printf "<input type=checkbox name=ctype_postscript %s> %s &nbsp;\n",
		&indexof("postscript", @ctype) < 0 ? "" : "checked",
		$text{'edit_dpost'};
	@ctypeo = grep { !/^(simple|postscript)$/ } @ctype;
	printf "<input type=checkbox name=ctype_other %s> %s\n",
		@ctypeo ? "checked" : "", $text{'edit_dother'};
	printf "<input name=ctype_olist size=20 value=\"%s\">\n",
		join(' ', @ctypeo);
	print "</td> </tr>\n";
	}

if (&printer_support('alias')) {
	@alias = @{$prn{'alias'}};
	print "<tr> <td><b>$text{'edit_alt'}</b></td> <td colspan=3>\n";
	printf "<input name=alias size=40 value=\"%s\"></td> </tr>\n",
		join(' ', @alias);
	}

print "</table></td></tr></table><p>\n";

if ($in{'new'} || &printer_support('editdest')) {
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'edit_dest'}</b></td> </tr>\n";
	print "<tr $cb> <td><table>\n";

	$isdev = &indexof($prn{'dev'}, @device_files) >= 0;
	if (!$webmin_windows_driver) {
		$wdrv = &is_webmin_windows_driver($prn{'iface'}, \%prn);
		$webmin++ if ($wdrv);
		}
	$wdrv = &is_windows_driver($prn{'iface'}, \%prn) if (!$wdrv);
	$hdrv = &is_hpnp_driver($prn{'iface'}, \%prn);
	if ($wdrv) { $prn{'iface'} = $wdrv->{'program'}; }
	elsif ($hdrv) { $prn{'iface'} = $hdrv->{'program'}; }

	printf "<tr> <td><input type=radio name=dest value=0 %s> %s</td>\n",
		$prn{'dev'} && $isdev && !$wdrv && !$hdrv ? "checked" : "",
		$text{'edit_dev'};
	print "<td><select name=dev>\n";
	for($i=0; $i<@device_files; $i++) {
		$d = $device_files[$i];
		printf "<option value=\"$d\" %s>$device_names[$i]\n",
			$d eq $prn{'dev'} ? "selected" : "";
		}
	print "</select></td> </tr>\n";

	printf "<tr> <td><input type=radio name=dest value=1 %s> %s</td>\n",
		$prn{'dev'} && !$isdev && !$wdrv && !$hdrv ? "checked" : "",
		$text{'edit_file'};
	printf "<td><input name=file size=25 value=\"%s\"></td> </tr>\n",
		$isdev || $wdrv || $hdrv ? "" : $prn{'dev'};

	printf "<tr> <td><input type=radio name=dest value=2 %s>\n",
		$prn{'rhost'} ? "checked" : "";
	print "$text{'edit_remote'}</td>\n";
	print "<td><input name=rhost size=25 value=\"$prn{'rhost'}\"></td>\n";
	print "<td>$text{'edit_rqueue'} ",
	      "<input name=rqueue size=15 value=\"$prn{'rqueue'}\">\n";
	if (&printer_support('sysv')) {
		print "$text{'edit_type'} <select name=rtype>\n";
		printf "<option value=bsd %s>BSD\n",
			$prn{'rtype'} eq "bsd" ? "selected" : "";
		printf "<option value=s5 %s>SysV\n",
			$prn{'rtype'} eq "s5" ? "selected" : "";
		print "</select>\n";
		}
	elsif (&printer_support('ipp')) {
		print "$text{'edit_type'} <select name=rtype>\n";
		printf "<option value=bsd %s>BSD\n",
			$prn{'rtype'} eq "bsd" ? "selected" : "";
		printf "<option value=ipp %s>IPP\n",
			$prn{'rtype'} eq "ipp" ? "selected" : "";
		print "</select>\n";
		}
	print "</td> </tr>\n";

	if (&printer_support("direct")) {
		printf "<tr> <td><input type=radio name=dest value=5 %s>\n",
			$prn{'dhost'} ? "checked" : "";
		print "$text{'edit_direct'}</td>\n";
		print "<td><input name=dhost size=25 ",
		      "value=\"$prn{'dhost'}\"></td>\n";
		print "<td>$text{'edit_dport'} ",
		      "<input name=dport size=5 value=\"$prn{'dport'}\">\n";
		print "</td> </tr>\n";
		}

	if (&has_smbclient()) {
		printf "<tr> <td><input type=radio name=dest value=3 %s>\n",
			$wdrv ? "checked" : "";
		printf "$text{'edit_smb'}</td> ".
		      "<td><input name=server size=25 value=\"%s\"></td>\n",
			$wdrv->{'server'};
		printf "<td>$text{'edit_share'} ".
		       "<input name=share size=15 value=\"%s\"></td>\n",
			$wdrv->{'share'};
		print "</tr><tr> <td align=right>$text{'edit_user'}</td>\n";
		printf "<td colspan=2><input name=user size=10 value=\"%s\">\n",
			$wdrv->{'user'};
		printf "$text{'edit_pass'} ".
		       "<input type=password name=pass size=10 value=\"%s\">\n",
			$wdrv->{'pass'};
		printf "$text{'edit_wgroup'} ".
		       "<input name=wgroup size=10 value=\"%s\">\n",
			$wdrv->{'workgroup'};
		print "</td> </tr>\n";
		}

	if (&has_hpnp()) {
		printf "<tr> <td><input type=radio name=dest value=4 %s>\n",
			$hdrv ? "checked" : "";
		print "$text{'edit_hpnp'}</td>\n";
		printf "<td><input name=hpnp size=25 value=\"%s\"></td>\n",
			$hdrv->{'server'};
		printf "<td>$text{'edit_port'} ".
		       "<input name=port size=15 value=\"%s\"></td> </tr>\n",
			$hdrv->{'port'};
		}

	print "<tr> <td>&nbsp;&nbsp;&nbsp;&nbsp;",
	      "<input type=checkbox name=check value=1> ",
	      "$text{'edit_check'}</td> </tr>\n";

	print "</table></td></tr></table><p>\n";

	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'edit_driver'}</b></td> </tr>\n";
	print "<tr $cb> <td><table width=100%>\n";
	if (!$webmin_print_driver) {
		$drv = &is_webmin_driver($prn{'iface'}, \%prn);
		}
	if ($drv->{'mode'} != 0 && $drv->{'mode'} != 2 || $webmin) {
		$webmin++;
		$after = &webmin_driver_input(\%prn, $drv);
		}
	else {
		$drv = &is_driver($prn{'iface'}, \%prn);
		$after = &driver_input(\%prn, $drv);
		}
	print "</table></td></tr></table><p>\n";
	}
print "<input type=hidden name=webmin value=\"$webmin\">\n";

if ($in{'new'}) {
	print "<input type=submit value=\"$text{'create'}\"></form><p>\n";
	}
else {
	print "<table width=100%>\n";
	print "<tr> <td><input type=submit value=\"$text{'save'}\"></td>\n";
	print "</form><form action=\"delete_printer.cgi\">\n";
	print "<input type=hidden name=name value=\"$in{'name'}\">\n";
	print "<td align=right><input type=submit ",
	      "value=\"$text{'delete'}\"></td> </tr>\n";
	print "</form></table><p>\n";
	}
print $after;

print "<hr>\n";
&footer("", $text{'index_return'});

07070100074bd8000081a40000000000000002000000013ac03898000019d3000000200000000000000000000000000000001d00000003reloc/lpadmin/freebsd-lib.pl  # freebsd-lib.pl
# Functions for printcap-style printer management

# list_printers()
# Returns a list of known printer names
sub list_printers
{
local($l, @rv);
foreach $l (&list_printcap()) {
	$l->{'name'} =~ /^([^\|]+)/;
	push(@rv, $1);
	}
return @rv;
}

# get_printer(name, [nostatus])
sub get_printer
{
local($l, %prn, @w, @n, $w, %cap, @jobs);
foreach $l (&list_printcap()) {
	@n = split(/\|/, $l->{'name'});
	if ($n[0] eq $_[0]) {
		# found the printer.. get info from printcap
		$prn{'name'} = $n[0];
		if (@n > 2) { $prn{'alias'} = [ @n[1..$#n-1] ]; }
		if (@n > 1) { $prn{'desc'} = $n[$#n]; }
		$prn{'iface'} = $l->{'if'};
		$prn{'banner'} = !defined($l->{'sh'});
		$prn{'dev'} = $l->{'lp'};
		$prn{'rhost'} = $l->{'rm'};
		$prn{'rqueue'} = $l->{'rp'};
		$prn{'msize'} = $l->{'mx'};

		if (!$_[1]) {
			# call lpc to get status
			$out = `lpc status $prn{'name'} 2>&1`;
			$prn{'accepting'} = ($out =~ /queuing is enabled/);
			$prn{'enabled'} = ($out =~ /printing is enabled/);
			}

		return \%prn;
		}
	}
return undef;
}

sub get_jobs
{
local @jobs;
open(LPQ, "lpq -P$_[0] |");
while(<LPQ>) {
	chop;
	if (/^Rank\s+Owner\s+/) { $doneheader++; }
	elsif ($doneheader && /^(\S+)\s+(\S+)\s+(\d+)\s+(.*\S)\s+(\d+)\s+(\S+)$/) {
		local(%job);
		$job{'id'} = $3;
		$job{'user'} = $2;
		$job{'size'} = $5;
		$job{'file'} = $4;
		$job{'printing'} = ($1 eq "active");
		push(@jobs, \%job);
		}
	}
close(LPQ);
return @jobs;
}

sub printer_support
{
return $_[0] !~ /^(why|allow|default|ctype|riface|sysv|direct|rnoqueue|ipp)$/;
}


# create_printer(&details)
# Create a new printer in /etc/printcap
sub create_printer
{
local(%cap);
$cap{'sd'} = "$config{'spool_dir'}/$_[0]->{'name'}";
&lock_file($cap{'sd'});
mkdir($cap{'sd'}, 0755);
&unlock_file($cap{'sd'});
&lock_file($config{'printcap_file'});
open(CAP, ">> $config{'printcap_file'}");
print CAP &make_printcap($_[0], \%cap),"\n";
close(CAP);
&unlock_file($config{'printcap_file'});
&apply_status($_[0]);
}

# modify_printer(&details)
sub modify_printer
{
local(@old, $o, $old, @cap);
&lock_file($config{'printcap_file'});
@old = &list_printcap();
foreach $o (@old) {
	$o->{'name'} =~ /^([^\|]+)/;
	if ($1 eq $_[0]->{'name'}) {
		# found current details
		$old = $o;
		last;
		}
	}
if (!$old) { &error("Printer '$_[0]->{'name'}' no longer exists"); }
open(CAP, $config{'printcap_file'});
@cap = <CAP>;
close(CAP);
splice(@cap, $old->{'line'},
       $old->{'eline'} - $old->{'line'} + 1, &make_printcap($_[0], $old)."\n");
open(CAP, "> $config{'printcap_file'}");
print CAP @cap;
close(CAP);
&unlock_file($config{'printcap_file'});
&apply_status($_[0]);
}

# delete_printer(name)
sub delete_printer
{
local(@old, $o, $old, @cap);
&lock_file($config{'printcap_file'});
@old = &list_printcap();
foreach $o (@old) {
	$o->{'name'} =~ /^([^\|]+)/;
	if ($1 eq $_[0]) {
		# found current details
		$old = $o;
		last;
		}
	}
if (!$old) { &error("Printer '$_[0]' no longer exists"); }
open(CAP, $config{'printcap_file'});
@cap = <CAP>;
close(CAP);
splice(@cap, $old->{'line'}, $old->{'eline'} - $old->{'line'} + 1);
open(CAP, "> $config{'printcap_file'}");
print CAP @cap;
close(CAP);
&unlock_file($config{'printcap_file'});
}

# cancel_job(printer, job)
# Calls lprm to remove some job
sub cancel_job
{
local($out);
$out = &backquote_logged("lprm -P$_[0] $_[1] 2>&1");
if ($?) { &error("lprm failed : $out"); }
}

# make_printcap(&details, &old)
# Updates or creates a printcap line
sub make_printcap
{
local(%prn, %cap, $a, $rv, $c);
%prn = %{$_[0]}; %cap = %{$_[1]};
$cap{'if'} = $prn{'iface'} ? $prn{'iface'} : undef;
$cap{'sh'} = $prn{'banner'} ? undef : "";
$cap{'lp'} = $prn{'dev'} ? $prn{'dev'} : undef;
$cap{'rm'} = $prn{'rhost'} ? $prn{'rhost'} : undef;
$cap{'rp'} = $prn{'rqueue'} ? $prn{'rqueue'} : undef;
$cap{'mx'} = defined($prn{'msize'}) ? $prn{'msize'} : undef;
$rv = $prn{'name'};
foreach $a (@{$prn{'alias'}}) { $rv .= "|$a"; }
$rv .= "|$prn{'desc'}";
foreach $c (keys %cap) {
	if (length($c) == 2 && defined($cap{$c})) {
		if ($cap{$c} eq "") { $rv .= ":$c"; }
		elsif ($cap{$c} =~ /^\d+$/) { $rv .= ":$c#$cap{$c}"; }
		else { $rv .= ":$c=$cap{$c}"; }
		}
	}
$rv .= ":";
return $rv;
}

# list_printcap()
# Returns an array of associative arrays containing printcap fields
sub list_printcap
{
local(@rv, @line, $line, $cont, $lnum, $i);
open(CAP, $config{'printcap_file'});
$lnum = 0;
while($line = <CAP>) {
	$line =~ s/^#.*$//g;	# remove comments
	$line =~ s/\s+$//g;	# remove trailing spaces
	$line =~ s/^\s+//g;	# remove leading spaces
	if ($line =~ /\S/) {
		$ncont = ($line =~ s/\\$//g);
		if ($cont) {
			$line[$#line] .= $line;
			$eline[@line - 1] = $lnum;
			}
		else {
			push(@line, $line);
			$eline[@line - 1] = $sline[@line - 1] = $lnum;
			}
		$cont = $ncont;
		}
	$lnum++;
	}
close(CAP);
for($i=0; $i<@line; $i++) {
	local(%cap);
	@w = split(/:+/, $line[$i]);
	$cap{'name'} = $w[0];
	$cap{'line'} = $sline[$i];
	$cap{'eline'} = $eline[$i];
	foreach $w (@w[1..$#w]) {
		if ($w =~ /^([A-z0-9]+)[=#](.*)$/) { $cap{$1} = $2; }
		elsif ($w =~ /^([A-z0-9]+)$/) { $cap{$w} = ""; }
		}
	push(@rv, \%cap);
	}
return @rv;
}

# apply_status(&details)
# Calls lpc to enable or disable a printer.
# Restarting lpd doesn't seem to be necessary?
sub apply_status
{
local($out);
$out = `lpc status $prn{'name'} 2>&1`;
if ($prn{'enabled'} && $out !~ /printing is enabled/)
	{ &backquote_logged("lpc up $prn{'name'}"); }
elsif (!$prn{'enabled'} && $out =~ /printing is enabled/)
	{ &backquote_logged("lpc down $prn{'name'}"); }
if ($prn{'accepting'} && $out !~ /queuing is enabled/)
	{ &backquote_logged("lpc enable $prn{'name'}"); }
elsif (!$prn{'accepting'} && $out =~ /queuing is enabled/)
	{ &backquote_logged("lpc disable $prn{'name'}"); }
}

# sched_running()
# Returns the pid if lpsched is running, 0 if not, -1 if cannot be stopped
sub sched_running
{
@pid = &find_byname("lpd");
if (@pid) { return $pid[0]; }
return 0;
}

# start_sched()
# Start lpsched
sub start_sched
{
local $out = &backquote_logged("lpd 2>&1");
if ($?) { &error("failed to start lpd : <tt>$out</tt>"); }
}

# stop_sched(pid)
# Stop the running lpsched process
sub stop_sched
{
&kill_logged('TERM', $_[0]) || &error("Failed to stop lpd : $!");
}

# print_command(printer, file)
# Returns the command to print some file on some printer
sub print_command
{
return "lpr -P$_[0] $_[1]";
}

if ($gconfig{'os_type'} eq 'openbsd') {
	@device_files = ("/dev/lpt0", "/dev/cua00", "/dev/cua01");
	}
else {
	@device_files = ("/dev/lpt0", "/dev/cuaa0", "/dev/cuaa1");
	}
@device_names = ($text{'freebsd_paralel'}, &text('freebsd_serial', "1"),
		 &text('freebsd_serial', "2"));

 07070100074bd9000081a40000000000000002000000013ac0389a00000c4d000000200000000000000000000000000000001d00000003reloc/lpadmin/hpux-driver.pl  # hpux-driver.pl
# Functions for webmin print and smb drivers.
# Very similar to the webmin driver, but with a different interface
# program selector

$webmin_windows_driver = 1;
$webmin_print_driver = 1;

# is_windows_driver(path)
# Returns a driver structure if some path is a windows driver
sub is_windows_driver
{
return &is_webmin_windows_driver(@_);
}

# is_driver(path)
# Returns a structure containing the details of a driver
sub is_driver
{
return &is_webmin_driver(@_);
}

# create_windows_driver(&printer, &driver)
# Creates a new windows printer driver
sub create_windows_driver
{
return &create_webmin_windows_driver(@_);
}

# create_driver(&printer, &driver)
# Creates a new local printer driver and returns the path
sub create_driver
{
return &create_webmin_driver(@_);
}

# delete_driver(name)
sub delete_driver
{
&delete_webmin_driver(@_);
}

# driver_input(&printer, &driver)
sub driver_input
{
local ($prn, $drv) = @_;

printf "<tr> <td><input type=radio name=drv value=0 %s> %s</td>\n",
	$drv->{'mode'} == 0 ? "checked" : "", $text{'webmin_none'};
print "<td>($text{'webmin_remotemsg'})</td> </tr>\n";

printf "<tr> <td><input type=radio name=drv value=2 %s> %s</td>\n",
	$drv->{'mode'} == 2 ? "checked" : "", $text{'webmin_model'};
print "<td><select name=iface>\n";
opendir(DIR, $config{'model_path'});
while($f = readdir(DIR)) {
	if ($f =~ /^\./) { next; }
	$path = "$config{'model_path'}/$f";
	printf "<option value=\"$path\" %s>$f\n",
		$path eq $prn{'iface'} ? "selected" : "";
	}
closedir(DIR);
print "</select></td> </tr>\n";

if (&has_ghostscript()) {
	local $out = `$config{'gs_path'} -help 2>&1`;
	if ($out =~ /Available devices:\n((\s+.*\n)+)/) {
		print "<tr> <td valign=top>\n";
		printf "<input type=radio name=drv value=1 %s>\n",
			$drv->{'mode'} == 1 ? "checked" : "";
		print "$text{'webmin_driver'}</td> <td valign=top>";
		foreach $d (split(/\s+/, $1)) { $drvsupp{$d}++; }
		print "<select name=driver size=7>\n";
		foreach $d (&list_webmin_drivers()) {
			if ($drvsupp{$d->[0]}) {
				printf "<option %s>%s\n",
				    $d->[1] eq $drv->{'type'} ? "selected" : "",
				    $d->[1];
				}
			}
		print "</select>&nbsp;&nbsp;";
		print "<select name=dpi size=7>\n";
		printf "<option value=\"\" %s>Default\n",
			$drv->{'dpi'} ? "" : "selected";
		foreach $d (75, 100, 150, 200, 300, 600) {
			printf "<option value=\"$d\" %s>$d DPI\n",
				$drv->{'dpi'} == $d ? "selected" : "";
			}
		print "</select></td> </tr>\n";
		}
	else {
		print "<tr> <td colspan=2>",
		      &text('webmin_edrivers', "<tt>$config{'gs_path'}</tt>"),
		      "</td> </tr>\n";
		}
	}
else {
	print "<tr> <td colspan=2>",
	      &text('webmin_egs', "<tt>$config{'gs_path'}</tt>"),
	      "</td> </tr>\n";
	}
return undef;
}

# parse_driver()
# Parse driver selection from %in and return a driver structure
sub parse_driver
{
if ($in{'drv'} == 0) {
	return { 'mode' => 0 };
	}
elsif ($in{'drv'} == 2) {
	(-x $in{'iface'}) || &error("'$in{'iface'}' does not exist");
	return { 'mode' => 2,
		 'program' => $in{'iface'} };
	}
elsif ($in{'drv'} == 1) {
	return { 'mode' => 1,
		 'type' => $in{'driver'},
		 'dpi' => $in{'dpi'} };
	}
}

1;

   07070100074bda000081a40000000000000002000000013ac0389900002454000000200000000000000000000000000000001a00000003reloc/lpadmin/hpux-lib.pl # hpux-lib.pl
# Functions for hpux-style printer management

$hpux_iface_path = "/usr/spool/lp/interface";

# list_printers()
# Returns an array of known printer names
sub list_printers
{
local(@rv, $_);
open(STAT, "lpstat -p |");
while(<STAT>) {
	if (/^printer\s+(\S+)/) { push(@rv, $1); }
	}
close(STAT);

# make models executable
`chmod 755 $config{'model_path'}/*`;

return &unique(@rv);
}

# get_printer(name, [nostatus])
# Returns a reference to an associative array of printer details
sub get_printer
{
local($stat, @rv, $body1, $body2, $avl, $con, $sys, %prn, $_, $out);
$out = `lpstat -p$_[0]`;
if ($out =~ /^printer\s+(\S+)\s+(.*)\n(.*)\n(.*)$/) {
	# printer exists
	$prn{'name'} = $1;
	if ($2 =~ /enabled/) {$prn{'enabled'} = "enabled"};
        $body1 = $3;
        $body2 = $4;
	}
else {
	# no printer found
	return undef;
	}

# Interface
$prn{'iface'} = "$hpux_iface_path/$prn{'name'}";

# Description
local $wdrv = &is_windows_driver($prn{'iface'});
local $hdrv = &is_hpnp_driver($prn{'iface'});
$prn{'desc'} = $wdrv ? &grep_interface($wdrv->{'program'}) :
	       $hdrv ? &grep_interface($hdrv->{'program'}) :
		       &grep_interface($prn{'iface'});

# printer enabled?
if (!$prn{'enabled'} && $body1 =~ /^\s+(.*)/) {
	$prn{'enabled_why'} = $1 eq "reason unknown" ? "" : $1;
	}

if (!$_[1]) {
	# request availability
	$avl = `lpstat -a$prn{'name'} 2>&1`;
	if ($avl =~ /^\S+\s+not accepting.*\n\s+(.*)/) {
		$prn{'accepting'} = 0;
		$prn{'accepting_why'} = $1;
		if ($prn{'accepting_why'} eq "reason unknown") {
			$prn{'accepting_why'} = "";
			}
		}
	else { $prn{'accepting'} = 1; }
	}

# request connection
$con = `lpstat -v$prn{'name'} 2>&1`;
if ($con =~ /^device for \S+:\s+(\S+)\n\s+(remote to:)\s+(\S+)\s+(on)\s+(\S+)/) {
	$prn{'rhost'} = $5;
	$prn{'rqueue'} = $3;
	}
elsif ($con =~ /^device for \S+:\s+(\S+)/) { $prn{'dev'} = $1; }

# Check if this is the default printer
`lpstat -d 2>&1` =~ /destination: (\S+)/;
if ($1 eq $prn{'name'}) { $prn{'default'} = 1; }

return \%prn;
}

sub get_jobs
{
open(STAT, "lpstat -o$_[0] |");
local($id, $user, $prio, $when, $printing);
while(<STAT>) {
	if (/^(\S+-\d+)\s+(\S+)\s+priority\s+(\S+)\s+(\S+.*\d+ \d+:\d+)\s+(.*)/) {
		$id = $1;
		$user = $2;
		$prio = $3;
 		$when = $4;
		$printing = ($5 =~ /^on /);
		}
	elsif (/^(\S+-\d+)\s+(\S+)\s+priority\s+(\S+)\s+from\s+(\S+)\s+(.*)/) {
		$id = $1;
		$user = "$2\@$4";
		$prio = $3;
		$when = "?";
		$printing = ($5 =~ /^on /);
		}
	elsif (/^(.*)\s+(\d+) bytes/) {
		local(%job);
		$job{'id'} = $id;
		$job{'user'} = $user;
		$job{'prio'} = $prio;
	 	$job{'when'} = $when;
		$job{'printing'} = $printing;
		$job{'file'} = $1;
 		$job{'size'} = $2;
		push(@jobs, \%job);
		}
	}
close(STAT);
return @jobs;
}

# grep_interface($iface)
# try to find a description in the interface/model
sub grep_interface
{
local($iface, $desc, $out);
$iface = $_[0];

local $drv = &is_driver($iface);
if ($drv->{'mode'} == 1) {
	$desc = $drv->{'desc'};
	}
elsif ($drv->{'mode'} == 2) {
	$out = `head $drv->{'prog'} | grep -e interface  -e Printer -e /model/`;
	if ($out =~ /interface for\s+(.*)/) { $desc = $1; }
	elsif ($out =~ /\s+(\S.*)interface/) { $desc = $1; }
	elsif ($out =~ /Printer Command Language level\s+(\S+)/) { $desc = "PCL$1"; }
	elsif ($out =~ /\/model\/(\S+).*/) { $desc = $1; }
	elsif ($out =~ /^#\s+(.*)/) { $desc = $1; }
	else { $desc = "None"; }
	}
else {
	$desc = "None";
	}
return $desc;
}

# printer_support(option)
sub printer_support
{
return $_[0] !~ /^(allow|alias|ctype|banner|desc|editdest|msize|direct|rnoqueue|ipp)$/;
}

# list_classes()
# Returns an associative array of print classes
sub list_classes
{
local($stat, %rv);
$stat = `lpstat -c 2>&1`;
while($stat =~ /^members of class (\S+):\n((\s+\S+\n)+)([\000-\177]*)$/) {
	$stat = $4;
	$rv{$1} = [ grep { $_ ne "" } split(/\s+/, $2) ];
	}
return \%rv;
}

# create_printer(&details)
# Create a new printer
sub create_printer
{
local(%prn, $cmd, $out, $model, $dummy, $scheduler);
%prn = %{$_[0]};
local $wdrv = &is_windows_driver($prn{'iface'});
local $hdrv = &is_hpnp_driver($prn{'iface'});
$scheduler = &sched_running();
$dummy = "webmin.tmp"; `touch $config{'model_path'}/$dummy`;

# create lpadmin command
$cmd = "lpadmin -p$prn{'name'}";

## remote unix printer
if ($prn{'rhost'}) {
	if ($prn{'iface'}) {
		&error("lpadmin failed : <pre>No model allowed for remote unix printer.</pre>");
	}
	$cmd .= " -orm$prn{'rhost'}";
	$cmd .= " -orp$prn{'rqueue'}";
	$cmd .= " -mrmodel";
	$cmd .= " -ocmrcmodel";
	$cmd .= " -osmrsmodel";
	$cmd .= " -v/dev/null";
	$cmd .= " -orc";
	if ($prn{'rtype'} =~ /^BSD$/) {
		$cmd .= " -ob3";
		}
	}

## remote windows printer
elsif ($wdrv) {
	$cmd .= " -m$dummy";
	$cmd .= " -v/dev/null";
	$cmd .= " -g0";
	}

## remote HPNP printer
elsif ($hdrv) {
	$cmd .= " -m$dummy";
	$cmd .= " -v/dev/null";
	$cmd .= " -g0";
	}

## local printer with webmin driver
elsif ($prn{'iface'} eq "$drivers_directory/$prn{'name'}") {
	$cmd .= " -m$dummy";
	$cmd .= " -v$prn{'dev'}";
	$cmd .= " -g0";
	}

## local printer with HP-UX model
elsif ($prn{'iface'} =~ $config{'model_path'}) {
	$model = substr($prn{'iface'}, length($config{'model_path'}) + 1);
	$cmd .= " -m$model";
	$cmd .= " -v$prn{'dev'}";
	$cmd .= " -g0";
	}
else {
	&error("lpadmin failed : <pre>Action not supported.</pre>");
	}

# stop scheduler
$out = &backquote_logged("lpshut 2>&1");

# call lpadmin
$out = &backquote_logged("$cmd 2>&1");
if ($?) { &error("lpsched failed : <pre>$out</pre>"); }

## Link to windows webmin driver
&lock_file("$hpux_iface_path/$prn{'name'}");
if ($wdrv) {
	`rm $hpux_iface_path/$prn{'name'}`;
	`ln -s $drivers_directory/$prn{'name'}.smb $hpux_iface_path/$prn{'name'}`;
	}

## Link to webmin hpnp driver
if ($hdrv) {
	`rm $hpux_iface_path/$prn{'name'}`;
	`ln -s $drivers_directory/$prn{'name'}.hpnp $hpux_iface_path/$prn{'name'}`;
	}

## Link to webmin driver
if ($prn{'iface'} eq "$drivers_directory/$prn{'name'}" && !$wdrv) {
	`rm $hpux_iface_path/$prn{'name'}`;
	`ln -s $drivers_directory/$prn{'name'} $hpux_iface_path/$prn{'name'}`;
	}
&unlock_file("$hpux_iface_path/$prn{'name'}");
&lock_file("$config{'model_path'}/$dummy");
`rm $config{'model_path'}/$dummy`;
&unlock_file("$config{'model_path'}/$dummy");

# start scheduler
if ($scheduler) {
	$out = &backquote_logged("lpsched 2>&1");
	if ($?) { &error("lpsched failed : <pre>$out</pre>"); }
	}

&modify_printer($_[0]);
}

# modify_printer(&details)
# Change an existing printer
sub modify_printer
{
local(%prn, $cmd, $out);
%prn = %{$_[0]};

# make the default
if ($prn{'default'}) {
	$out = &backquote_logged("lpadmin -d$prn{'name'} 2>&1");
	if ($?) { &error("Failed to set default : <pre>$out</pre>"); }
	}

# enable or disable
if ($prn{'enabled'}) { $cmd = "enable $prn{'name'}"; }
elsif ($prn{'enabled_why'})
	{ $cmd = "enable $prn{'name'} ; disable -r\"$prn{'enabled_why'}\" $prn{'name'}"; }
else { $cmd = "enable $prn{'name'} ; disable $prn{'name'}"; }
$out = &backquote_logged("$cmd 2>&1");

# accepting or rejecting requests
if ($prn{'accepting'}) { $cmd = "accept $prn{'name'}"; }
elsif ($prn{'accepting_why'})
	{ $cmd = "accept $prn{'name'} ; reject -r\"$prn{'accepting_why'}\" $prn{'name'}"; }
else { $cmd = "accept $prn{'name'} ; reject $prn{'name'}"; }
$out = &backquote_logged("$cmd 2>&1");
}

# delete_printer(name)
# Deletes some existing printer
sub delete_printer
{
local($out, $scheduler);
$scheduler = &sched_running();

# delete print jobs
$out = &backquote_logged("cancel $_[0] -a 2>1");
if ($?) { &error("cancel failed : <pre>$out</pre>"); }

# stop scheduler
$out = &backquote_logged("lpshut 2>&1");

# call lpadmin
$out = &backquote_logged("lpadmin -x$_[0] 2>&1");
if ($?) { &error("lpadmin failed : <pre>$out</pre>"); }

# start scheduler
if ($scheduler) {
	$out = &backquote_logged("lpsched 2>&1");
	if ($?) { &error("lpsched failed : <pre>$out</pre>"); }
	}
}

# cancel_job(printer, id)
# Cancels some print job
sub cancel_job
{
local($out);
$out = &backquote_logged("cancel $_[1] 2>&1");
if ($?) { &error("cancel failed : <pre>$out</pre>"); }
sleep(1);
}

# sched_running()
# Returns 1 if running and 0 if not running
sub sched_running
{
local $out = `lpstat -r 2>&1`;
if ($out =~ /not/) { return 0; }
else { return 1; }
}

# start_sched()
# Start lpsched
sub start_sched
{
local $out = &backquote_logged("lpsched 2>&1");
if ($?) { &error("failed to start lpsched : <tt>$out</tt>"); }
}

# stop_sched(pid)
# Stop the running lpsched process
sub stop_sched
{
local $out = &backquote_logged("lpshut 2>&1");
if ($?) { &error("lpshut failed : <tt>$out</tt>"); }
}

# print_command(printer, file)
# Returns the command to print some file on some printer
sub print_command
{
return "lpr -P$_[0] $_[1]";
}

@device_files = ("/dev/c1t0d0_lp", "/dev/c2t0d0_lp",
		 "/dev/c0p0_lp", "/dev/c0p1_lp",
		 "/dev/c0p2_lp", "/dev/c0p3_lp",
		 "/dev/c0p4_lp", "/dev/c0p4_lp",
		 "/dev/c0p5_lp", "/dev/c0p5_lp",
		 "/dev/c1p0_lp",
		 "/dev/null");
@device_names = (&text('hpux_paralel', "c1t0d0"), &text('hpux_paralel', "c2t0d0"),
		 &text('hpux_serial', "c0p0"), &text('hpux_serial', "c0p1"),
		 &text('hpux_serial', "c0p2"), &text('hpux_serial', "c0p3"),
		 &text('hpux_serial', "c0p4"), &text('hpux_serial', "c0p5"),
		 &text('hpux_serial', "c0p6"), &text('hpux_serial', "c0p7"),
		 &text('hpux_serial', "c1p0"), $text{'hpux_null'});
07070100075ff5000041ed0000000000000001000000023ac03c0a00000000000000200000000000000000000000000000001500000003reloc/lpadmin/images  07070100075ff6000081a40000000000000002000000013ac038980000014a000000200000000000000000000000000000001e00000003reloc/lpadmin/images/icon.gif GIF89a0 0   烫虣櫃fff            !    ,    0 0  很0蔍8溡}_葘@V&*刯'7[濔遥黕耫1瞔	擯bJm2y摘9蓏瓕鳮瀳4xqǹErc.利鮷Pw~x>亗}剟H儕0噽憭tj枟7Od湞牎U￥ЖI琣壊鲍w夯犯劆懒0@颧蕏形尰事0傩猜淘逸澾犥8忤哨闾隧衩7媵耋q/<#D@緑+め)x爨l帣獦頱5I菠蓳  ;  07070100074bdb000081e40000000000000002000000013ac0389800000f23000000200000000000000000000000000000001800000003reloc/lpadmin/index.cgi   #!/usr/local/bin/perl
# index.cgi
# Display a list of all known printers

require './lpadmin-lib.pl';
&header($text{'index_title'}, "", undef, 1, 1);
print "<hr><p>\n";
@plist = &list_printers();

if (@plist) {
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'index_name'}</b></td> ",
	      "<td><b>$text{'index_desc'}</b></td> ",
	      "<td><b>$text{'index_to'}</b></td> ";
	if ($config{'show_status'}) {
        	print "<td><b>$text{'index_enabled'}</b></td> ",
		      "<td><b>$text{'index_accepting'}</b></td> ";
		}
	else {
        	print "<td><b>$text{'index_driver'}</b></td> ";
		}
	print "<td><b>$text{'index_jobs'}</b></td> </tr>\n";
	for($i=0; $i<@plist; $i++) {
		local ($wdrv, $hdrv, $drv);
		local $ed = &can_edit_printer($plist[$i]);
		local $jb = &can_edit_jobs($plist[$i]);
		next if (!$ed && !$jb && !$access{'view'});
		$p = &get_printer($plist[$i], !$config{'show_status'});

		print "<tr $cb>\n";
		if ($ed) {
			print "<td><a href=\"edit_printer.cgi?",
			      "name=$p->{'name'}\">$p->{'name'}</a></td>\n";
			}
		else {
			print "<td>$p->{'name'}</td>\n";
			}
		print "<td>",$p->{'desc'} ? $p->{'desc'} : "<br>","</td>\n";
		if (!$webmin_windows_driver) {
			$wdrv = &is_webmin_windows_driver($p->{'iface'}, $p);
			}
		$wdrv = &is_windows_driver($p->{'iface'}, $p) if (!$wdrv);
		$hdrv = &is_hpnp_driver($p->{'iface'}, $p);
		if ($wdrv) {
			print "<td><tt>\\\\$wdrv->{'server'}",
			      "\\$wdrv->{'share'}</tt></td>\n";
			$p->{'iface'} = $wdrv->{'program'};
			}
		elsif ($hdrv) {
			print "<td><tt>HPNP $hdrv->{'server'}:",
			      "$hdrv->{'port'}</tt></td>\n";
			$p->{'iface'} = $hdrv->{'program'};
			}
		elsif ($p->{'rhost'}) {
			local $qu = $p->{'rqueue'} ? $p->{'rqueue'}
						   : $p->{'name'};
			print"<td><tt>$p->{'rhost'}:$qu</tt></td>\n";
			}
		elsif ($p->{'dhost'}) {
			print"<td><tt>$p->{'dhost'}:$p->{'dport'}</tt></td>\n";
			}
		else {
			print "<td>",&dev_name($p->{'dev'}),"</td>\n";
			}
		if (!$webmin_print_driver) {
			$drv = &is_webmin_driver($p->{'iface'}, $p);
			}
		$drv = &is_driver($p->{'iface'}, $p)
			if ($drv->{'mode'} == 0 || $drv->{'mode'} == 2);
		if ($config{'show_status'}) {
			printf "<td>%s</td>\n",
				$p->{'enabled'} ? $text{'yes'} : $text{'no'};
			printf "<td>%s</td>\n",
				$p->{'accepting'} ? $text{'yes'} : $text{'no'};
			}
		else {
			print "<td>$drv->{'desc'}</td>\n";
			}
		print "<td><a href=\"list_jobs.cgi?name=",
		      "$p->{'name'}\">$text{'index_list'}</a></td> </tr>\n";
		}
	print "</table>\n";
	}
else { print "<h3>$text{'index_none'}</h3>\n"; }
print "<a href=edit_printer.cgi?new=1>$text{'index_add'}</a>\n"
	if ($access{'add'});
print "<p>\n";

# display button to start or stop the scheduler (lpd, lpsched, etc..)
$pid = &sched_running();
if ($pid < 0 || !$access{'stop'}) {
	# cannot stop or start..
	}
elsif ($pid && $access{'stop'} == 2) {
	# can only restart
	print "<hr>\n";
	print "<form action=restart.cgi>\n";
        print "<input type=hidden name=pid value=$pid>\n";
        print "<table width=100%><tr><td>\n";
        print "<input type=submit value=\"$text{'index_restart'}\"></td>\n";
	print "<td>$text{'index_restartmsg'}</td> </tr></table>\n";
        print "</form>\n";
	}
elsif ($pid) {
	print "<hr>\n";
	print "<form action=stop.cgi>\n";
        print "<input type=hidden name=pid value=$pid>\n";
        print "<table width=100%><tr><td>\n";
        print "<input type=submit value=\"$text{'index_stop'}\"></td>\n";
	print "<td>$text{'index_stopmsg'}</td> </tr></table>\n";
        print "</form>\n";
	}
else {
	print "<hr>\n";
	print "<form action=start.cgi>\n";
        print "<table width=100%><tr><td>\n";
        print "<input type=submit value=\"$text{'index_start'}\"></td>\n";
	print "<td>$text{'index_startmsg'}</td> </tr></table>\n";
        print "</form>\n";
	}

print "<hr>\n";
&footer("/", $text{'index'});

 07070100074bdc000081a40000000000000002000000013ac0389a00000c4d000000200000000000000000000000000000001d00000003reloc/lpadmin/irix-driver.pl  # irix-driver.pl
# Functions for webmin print and smb drivers.
# Very similar to the webmin driver, but with a different interface
# program selector

$webmin_windows_driver = 1;
$webmin_print_driver = 1;

# is_windows_driver(path)
# Returns a driver structure if some path is a windows driver
sub is_windows_driver
{
return &is_webmin_windows_driver(@_);
}

# is_driver(path)
# Returns a structure containing the details of a driver
sub is_driver
{
return &is_webmin_driver(@_);
}

# create_windows_driver(&printer, &driver)
# Creates a new windows printer driver
sub create_windows_driver
{
return &create_webmin_windows_driver(@_);
}

# create_driver(&printer, &driver)
# Creates a new local printer driver and returns the path
sub create_driver
{
return &create_webmin_driver(@_);
}

# delete_driver(name)
sub delete_driver
{
&delete_webmin_driver(@_);
}

# driver_input(&printer, &driver)
sub driver_input
{
local ($prn, $drv) = @_;

printf "<tr> <td><input type=radio name=drv value=0 %s> %s</td>\n",
	$drv->{'mode'} == 0 ? "checked" : "", $text{'webmin_none'};
print "<td>($text{'webmin_remotemsg'})</td> </tr>\n";

printf "<tr> <td><input type=radio name=drv value=2 %s> %s</td>\n",
	$drv->{'mode'} == 2 ? "checked" : "", $text{'webmin_model'};
print "<td><select name=iface>\n";
opendir(DIR, $config{'model_path'});
while($f = readdir(DIR)) {
	if ($f =~ /^\./) { next; }
	$path = "$config{'model_path'}/$f";
	printf "<option value=\"$path\" %s>$f\n",
		$path eq $prn{'iface'} ? "selected" : "";
	}
closedir(DIR);
print "</select></td> </tr>\n";

if (&has_ghostscript()) {
	local $out = `$config{'gs_path'} -help 2>&1`;
	if ($out =~ /Available devices:\n((\s+.*\n)+)/) {
		print "<tr> <td valign=top>\n";
		printf "<input type=radio name=drv value=1 %s>\n",
			$drv->{'mode'} == 1 ? "checked" : "";
		print "$text{'webmin_driver'}</td> <td valign=top>";
		foreach $d (split(/\s+/, $1)) { $drvsupp{$d}++; }
		print "<select name=driver size=7>\n";
		foreach $d (&list_webmin_drivers()) {
			if ($drvsupp{$d->[0]}) {
				printf "<option %s>%s\n",
				    $d->[1] eq $drv->{'type'} ? "selected" : "",
				    $d->[1];
				}
			}
		print "</select>&nbsp;&nbsp;";
		print "<select name=dpi size=7>\n";
		printf "<option value=\"\" %s>Default\n",
			$drv->{'dpi'} ? "" : "selected";
		foreach $d (75, 100, 150, 200, 300, 600) {
			printf "<option value=\"$d\" %s>$d DPI\n",
				$drv->{'dpi'} == $d ? "selected" : "";
			}
		print "</select></td> </tr>\n";
		}
	else {
		print "<tr> <td colspan=2>",
		      &text('webmin_edrivers', "<tt>$config{'gs_path'}</tt>"),
		      "</td> </tr>\n";
		}
	}
else {
	print "<tr> <td colspan=2>",
	      &text('webmin_egs', "<tt>$config{'gs_path'}</tt>"),
	      "</td> </tr>\n";
	}
return undef;
}

# parse_driver()
# Parse driver selection from %in and return a driver structure
sub parse_driver
{
if ($in{'drv'} == 0) {
	return { 'mode' => 0 };
	}
elsif ($in{'drv'} == 2) {
	(-x $in{'iface'}) || &error("'$in{'iface'}' does not exist");
	return { 'mode' => 2,
		 'program' => $in{'iface'} };
	}
elsif ($in{'drv'} == 1) {
	return { 'mode' => 1,
		 'type' => $in{'driver'},
		 'dpi' => $in{'dpi'} };
	}
}

1;

   07070100074bdd000081a40000000000000002000000013ac0389a000027c0000000200000000000000000000000000000001a00000003reloc/lpadmin/irix-lib.pl # irix-lib.pl
# Functions for irix-style printer management

$irix_iface_path = "/var/spool/lp/interface";

# list_printers()
# Returns an array of known printer names
sub list_printers
{
local(@rv, $_);
open(STAT, "/usr/bin/lpstat -p |");
while(<STAT>) {
	if (/^printer\s+(\S+)/) { push(@rv, $1); }
	}
close(STAT);
return &unique(@rv);
}

# get_printer(name, [nostatus])
# Returns a reference to an associative array of printer details
sub get_printer
{
local($stat, @rv, $body, $body, $avl, $con, $sys, %prn, $_, $out);
$out = `/usr/bin/lpstat -p$_[0]`;
if ($out =~ /^printer\s+(\S+)\s*(.*)\s+(enabled|disabled)\s+since\s+(.+?)\n?(.*)?$/) {
	# printer exists
	$prn{'name'} = $1;
	$prn{'enabled'} = $3 eq "enabled";
	$body = $5;
	}
else {
	# no printer found
	return undef;
	}

# Interface
$prn{'iface'} = "$irix_iface_path/$prn{'name'}";

# Description
local $wdrv = &is_windows_driver($prn{'iface'});
local $hdrv = &is_hpnp_driver($prn{'iface'});
$prn{'desc'} = $wdrv ? &grep_interface($wdrv->{'program'}) :
	            $hdrv ? &grep_interface($hdrv->{'program'}) :
		         &grep_interface($prn{'iface'});

# printer enabled?
if (!$prn{'enabled'} && $body =~ /^\s+(.*)/) {
	$prn{'enabled_why'} = $1 eq "reason unknown" ? "" : $1;
	}

if (!$_[1]) {
	# request availability
	$avl = `/usr/bin/lpstat -a$prn{'name'} 2>&1`;
	if ($avl =~ /^\S+\s+not accepting.*\n\s+(.*)/) {
		$prn{'accepting'} = 0;
		$prn{'accepting_why'} = $1;
		if ($prn{'accepting_why'} eq "reason unknown") {
			$prn{'accepting_why'} = "";
			}
		}
	else { $prn{'accepting'} = 1; }
	}

# request connection
$con = `/usr/bin/lpstat -v$prn{'name'} 2>&1`;
if ($con =~ /^device for \S+:\s+(\S+)\n\s+(remote to:)\s+(\S+)\s+(on)\s+(\S+)/) {
	$prn{'rhost'} = $5;
	$prn{'rqueue'} = $3;
	}
elsif ($con =~ /^device for \S+:\s+(\S+)/) { $prn{'dev'} = $1; }

# Check if this is the default printer
`/usr/bin/lpstat -d 2>&1` =~ /destination: (\S+)/;
if ($1 eq $prn{'name'}) { $prn{'default'} = 1; }

return \%prn;
}

sub get_jobs
{
local @jobs;
open(STAT, "/usr/bin/lpstat -o$_[0] |");
while(<STAT>) {
	if (/^(\S+-\d+)\s+(\S+)\s+(\d+)\s+(\S+ \d+ \d+:\d+)\s+(.*)/) {
		local(%job, $d, $f, @pf);
		$job{'id'} = $1;
#		local $id = $2;
		$job{'user'} = $2;
		$job{'size'} = $3;
		$job{'when'} = $4;
		$job{'printing'} = ($5 =~ /^on /);
#		if ($job{'user'} =~ /(\S+)\!/ &&
#		    -d ($d="/var/spool/lp/tmp/$1")) {
#			opendir(DIR, $d);
#			foreach $f (readdir(DIR)) {
#				push(@pf, "$d/$f") if ($f =~ /^$id-[1-9]/);
#				}
#			closedir(DIR);
#			$job{'printfile'} = @pf ? \@pf : undef;
#			}

   	push(@jobs, \%job);
		}
	}
close(STAT);
return @jobs;
}

# grep_interface($iface)
# try to find a description in the interface/model
sub grep_interface
{
local($iface, $desc, $out);
$iface = $_[0];

local $drv = &is_driver($iface);
if ($drv->{'mode'} == 1) {
	$desc = $drv->{'desc'};
	}
elsif ($drv->{'mode'} == 2) {
	$out = `head $drv->{'prog'} | grep -e interface  -e Printer -e /model/`;
	if ($out =~ /interface for\s+(.*)/) { $desc = $1; }
	elsif ($out =~ /\s+(\S.*)interface/) { $desc = $1; }
	elsif ($out =~ /Printer Command Language level\s+(\S+)/) { $desc = "PCL$1"; }
	elsif ($out =~ /\/model\/(\S+).*/) { $desc = $1; }
	elsif ($out =~ /^#\s+(.*)/) { $desc = $1; }
	else { $desc = "None"; }
	}
else {
	$desc = "None";
	}
return $desc;
}

# printer_support(option)
sub printer_support
{
return $_[0] !~ /^(allow|alias|ctype|banner|desc|editdest|msize|direct|rnoqueue)$/;
}

# list_classes()
# Returns an associative array of print classes
sub list_classes
{
local($stat, %rv);
$stat = `/usr/bin/lpstat -c 2>&1`;
while($stat =~ /^members of class (\S+):\n((\s+\S+\n)+)([\000-\177]*)$/) {
	$stat = $4;
	$rv{$1} = [ grep { $_ ne "" } split(/\s+/, $2) ];
	}
return \%rv;
}

# create_printer(&details)
# Create a new printer
sub create_printer
{
local(%prn, $cmd, $out, $model, $dummy, $scheduler);
%prn = %{$_[0]};
#local $wdrv = &is_windows_driver($prn{'iface'});
#local $hdrv = &is_hpnp_driver($prn{'iface'});
#$scheduler = &sched_running();
#$dummy = "webmin.tmp"; `touch $config{'model_path'}/$dummy`;

# create lpadmin command
$cmd = "/usr/lib/lpadmin -p$prn{'name'}";

## remote unix printer
if ($prn{'rhost'}) {
	if ($prn{'iface'}) {
		&error("lpadmin failed : <pre>No model allowed for remote unix printer.</pre>");
	}
   &copy_netface_driver($_[0]);
	$cmd .= " -i$irix_iface_path/$prn{'name'}.tmp";
	$cmd .= " -v/dev/null";
	}

## remote windows printer
#elsif ($wdrv) {
#	$cmd .= " -m$dummy";
#	$cmd .= " -v/dev/null";
#	}

## remote HPNP printer
#elsif ($hdrv) {
#	$cmd .= " -m$dummy";
#	$cmd .= " -v/dev/null";
#	}

## local printer with webmin driver
#elsif ($prn{'iface'} eq "$drivers_directory/$prn{'name'}") {
#	$cmd .= " -m$dummy";
#	$cmd .= " -v$prn{'dev'}";
#	}

## local printer with IRIX model
elsif ($prn{'iface'} =~ $config{'model_path'}) {
	$model = substr($prn{'iface'}, length($config{'model_path'}) + 1);
	$cmd .= " -m$model";
	$cmd .= " -v$prn{'dev'}";
	}
else {
	&error("lpadmin failed : <pre>Action not supported.</pre>");
	}

# stop scheduler
#$out = &backquote_logged("/usr/lib/lpshut 2>&1");

# call lpadmin
&webmin_log ("lpadmin", $cmd);
$out = &backquote_logged("$cmd 2>&1");
if ($?) { &error("lpadmin failed : <pre>$out</pre>"); }

if ($prn{'rhost'}) {
  `rm $irix_iface_path/$prn{'name'}.tmp`;
}

## Link to windows webmin driver
#&lock_file("$irix_iface_path/$prn{'name'}");
#if ($wdrv) {
#	`rm $irix_iface_path/$prn{'name'}`;
#	`ln -s $drivers_directory/$prn{'name'}.smb $irix_iface_path/$prn{'name'}`;
#	}

## Link to webmin hpnp driver
#if ($hdrv) {
#	`rm $irix_iface_path/$prn{'name'}`;
#	`ln -s $drivers_directory/$prn{'name'}.hpnp $irix_iface_path/$prn{'name'}`;
#	}

## Link to webmin driver
#if ($prn{'iface'} eq "$drivers_directory/$prn{'name'}" && !$wdrv) {
#	`rm $irix_iface_path/$prn{'name'}`;
#	`ln -s $drivers_directory/$prn{'name'} $irix_iface_path/$prn{'name'}`;
#	}
#&unlock_file("$irix_iface_path/$prn{'name'}");
#&lock_file("$config{'model_path'}/$dummy");
#`rm $config{'model_path'}/$dummy`;
#&unlock_file("$config{'model_path'}/$dummy");

# start scheduler
#if ($scheduler) {
#	$out = &backquote_logged("/usr/lib/lpsched 2>&1");
#	if ($?) { &error("lpsched failed : <pre>$out</pre>"); }
#	}

#change printer parameters
&modify_printer($_[0]);
}

# copy_netface_driver(&prn)
# Copies netface driver to interfaces directory and changes
# remote host address, name and type of remote printer.
sub copy_netface_driver {
  local (%prn);
%prn = %{$_[0]};
  my ($cmd, $rname, $rtype, $nettype, $driver_file ) = ();

  if ( $prn{'rtype'} eq "s5" ) {
    $nettype = "sgi";
    $cmd = "/usr/bsd/rsh -l lp $prn{'rhost'} "
         . "\'grep \"^NAME\" $irix_iface_path/$prn{'rqueue'}\'";
    $rname = &backquote_logged("$cmd");
    if ($?) { &error("Failed to read remote printer's name : <pre>$rname</pre>"); }
    $cmd = "/usr/bsd/rsh -l lp $prn{'rhost'} "
         . "\'grep \"^TYPE\" $irix_iface_path/$prn{'rqueue'}\'";
    $rtype = &backquote_logged("$cmd");
    if ($?) { &error("Failed to read remote printer's type : <pre>$rtype</pre>"); }
  } else {
    $nettype = "bsd";
    $rname = "BSD Printer";
    $rtype = "PostScript";
  }  
  undef local $/;
  open (NETFACE,"<$config{'model_path'}/netface") or &error("Failed to open netface driver."); 
  $driver_file = <NETFACE>;
  close (NETFACE);

  $driver_file =~ s/^TYPE=unknown/$rtype/m;
  $driver_file =~ s/^NAME=/$rname/m;
  $driver_file =~ s/^NETTYPE=/NETTYPE=$nettype/m;
  $driver_file =~ s/^HOSTNAME=/HOSTNAME=$prn{'rhost'}/m;
  $driver_file =~ s/^HOSTPRINTER=/HOSTPRINTER=$prn{'rqueue'}/m;
  
  open (INTERFACE,">$irix_iface_path/$prn{'name'}.tmp") or &error("Failed to open interface for $prn{'name'}."); 
  print INTERFACE $driver_file;
  close (INTERFACE);  
}




# modify_printer(&details)
# Change an existing printer
sub modify_printer
{
local(%prn, $cmd, $out);
%prn = %{$_[0]};

# make the default
if ($prn{'default'}) {
	$out = &backquote_logged("/usr/lib/lpadmin -d$prn{'name'} 2>&1");
	if ($?) { &error("Failed to set default : <pre>$out</pre>"); }
	}

# enable or disable
if ($prn{'enabled'}) { $cmd = "/usr/bin/enable $prn{'name'}"; }
elsif ($prn{'enabled_why'})
	{ $cmd = "/usr/bin/enable $prn{'name'} ; /usr/bin/disable -r\"$prn{'enabled_why'}\" $prn{'name'}"; }
else { $cmd = "/usr/bin/enable $prn{'name'} ; /usr/bin/disable $prn{'name'}"; }
$out = &backquote_logged("$cmd 2>&1");

# accepting or rejecting requests
if ($prn{'accepting'}) { $cmd = "/usr/lib/accept $prn{'name'}"; }
elsif ($prn{'accepting_why'})
	{ $cmd = "/usr/lib/accept $prn{'name'} ; /usr/lib/reject -r\"$prn{'accepting_why'}\" $prn{'name'}"; }
else { $cmd = "/usr/lib/accept $prn{'name'} ; /usr/lib/reject $prn{'name'}"; }
$out = &backquote_logged("$cmd 2>&1");
}

# delete_printer(name)
# Deletes some existing printer
sub delete_printer
{
local($out, $scheduler);
#$scheduler = &sched_running();

# delete print jobs
$out = &backquote_logged("/usr/bin/cancel -a $_[0]  2>&1");
if ($?) { &error("cancel failed : <pre>$out</pre>"); }

# call lpadmin
$out = &backquote_logged("/usr/lib/lpadmin -x$_[0] 2>&1");
if ($?) { &error("lpadmin failed : <pre>$out</pre>"); }
}

# cancel_job(printer, id)
# Cancels some print job
sub cancel_job
{
local($out);
$out = &backquote_logged("/usr/bin/cancel $_[1] 2>&1");
if ($?) { &error("cancel failed : <pre>$out</pre>"); }
sleep(1);
}

# sched_running()
# Returns 1 if running and 0 if not running
sub sched_running
{
local $out = `lpstat -r 2>&1`;
if ($out =~ /not/) { return 0; }
else { return 1; }
}

# start_sched()
# Start lpsched
sub start_sched
{
my $cmd = "/usr/lib/lpshut > /dev/null 2>&1;"
        . "/sbin/killall lpautoenable;"
        . "rm -f /var/spool/lp/SCHEDLOCK /var/spool/lp/FIFO;"
        . "/usr/lib/lpsched 2>&1";
local $out = &backquote_logged($cmd);
if ($?) { &error("failed to start lpsched : <tt>$out</tt>"); }
}

# stop_sched(pid)
# Stop the running lpsched process
sub stop_sched
{
local $out = &backquote_logged("/usr/lib/lpshut 2>&1");
if ($?) { &error("lpshut failed : <tt>$out</tt>"); }
}

@device_files = ("/dev/plp", 
       "/dev/ttyd1", "/dev/ttyd2",
		 "/dev/null");
@device_names = ("Parallel", 
		 "Serial 1", "Serial 2",
		 "Null Device");
07070100077857000041ed0000000000000001000000023ac03c0b00000000000000200000000000000000000000000000001300000003reloc/lpadmin/lang    07070100077858000081a40000000000000002000000013ac0389a000016f6000000200000000000000000000000000000001600000003reloc/lpadmin/lang/de index_title=Drucker Verwaltung
index_name=Drucker
index_desc=Beschreibung
index_to=Drucken auf
index_driver=Treiber
index_jobs=Auftr&auml;ge
index_none=Es konnten keine installierten Drucker gefunden werden
index_add=Einen neuen Drucker hinzuf&uuml;gen
index_stop=Stoppe Warteschlange
index_stopmsg=Klicken Sie diesen Button, um den laufenden Verwaltungsprozess f&uuml;r Drucker zu stoppen. Dies wird verhindern, dass lokale oder &uuml;ber ein Netzwerk verbundene Benutzer auf Ihrem System drucken.
index_start=Starte Warteschlange
index_startmsg=Klicken Sie auf diesen Button, um den Verwaltungsprozess f&uuml;r Drucker zu starten. Dies wird lokalen und &uuml;ber ein Netzwerk verbundenen Benutzern gestatten, auf Ihrem System zu drucken.
index_return=Drucker Liste

edit_eedit=Sie haben keine Berechtigung, diesen Drucker zu bearbeiten
edit_eadd=Sie haben keine Berechtigung, Drucker hinzuzuf&uuml;gen
edit_add=Drucker installieren
edit_edit=Drucker bearbeiten
edit_conf=Drucker Konfiguration
edit_name=Name
edit_acc=Akzeptiert Anfragen?
edit_why=Nein - Warum nicht
edit_desc=Beschreibung
edit_ena=Drucken aktiviert?
edit_acl=Zugriffskontrolle
edit_allow=Erlaube jedem
edit_deny=Verweigere jedem
edit_allowu=Erlaube den aufgelisteten Benutzern..
edit_denyu=Verweigere den aufgelisteten Benutzern..
edit_banner=Drucke Kopfzeile?
edit_opt=Optional
edit_default=Standard Drucker?
edit_already=Ist bereits Standard Drucker
edit_max=Maximale Gr&ouml;sse eines Druckauftrags
edit_dacc=So viele, wie der Treiber akzeptiert
edit_dtext=Text
edit_dpost=Postscript
edit_dother=Anderes
edit_alt=Alternative Druckernamen
edit_dest=Druck-Ziel
edit_dev=Lokales Ger鋞
edit_file=Lokale datei
edit_remote=Anderer Unix Server &uuml;ber Netzwerk
edit_rqueue=Drucker
edit_type=Typ
edit_smb=Anderer Windows Server &uuml;ber Netzwerk
edit_share=Drucker
edit_user=Benutzer
edit_pass=Passwort
edit_wgroup=Arbeitsgruppe
edit_hpnp=Anderer HPNP Server &uuml;ber Netzwerk
edit_port=Port
edit_direct=Direkte TCP Verbindung
edit_dport=Port
edit_driver=Drucker Treiber

blocks=Blocks

save_err=Fehler beim Speichern der Drucker Einstellungen
save_eadd=Sie haben keine Berechtigung, Drucker hinzuzuf黦en
save_eedit=Sie haben keine Berechtigung, diesen Drucker zu bearbeiten
save_ename='$1' ist kein g&uuml;ltiger Drucker Name
save_edup=Es existiert bereits ein Drucker mit dem Namen '$1'
save_eallow=Es wurden keine Benutzer eingegeben, denen der Zugriff gestattet werden soll.
save_edeny=Es wurden keine Benutzer eingegeben, denen der Zugriff verweigert werden soll.
save_euser=Benuzter '$1' existiert nicht
save_etype=Sie m黶sen mindestens einen Typ ausw&auml;hlen, den dieser Treiber akzeptiert
save_emax=Maximale Anzahl Druck-Auftr&auml;ge muss eine Ganzzahl sein
save_efile='$1' existiert nicht
save_erhost=Server '$1' existiert nicht
save_erqueue='$1' ist kein g&uuml;ltiger Name f&uuml;r eine Warteschlange auf einem Server
save_eremote=Treiber k&ouml;nnen nicht zusammen mit Druckern auf Unix Servern verwendet werden
save_edhost=Der Host '$1' f&uuml;r eine direkte Verbindung existiert nicht
save_edport=Fehlender oder ung&uuml;ltiger Port zur direkten Verbindung

jobs_title=Druck-Auftr鋑e
jobs_header=Druck-Auftr&auml;ge auf $1
jobs_id=Auftrag ID
jobs_size=Gr&ouml;sse
jobs_by=&Uuml;bertragen von
jobs_when=&Uuml;bertragen um
jobs_file=Dateiname
jobs_cancel=Klicken Sie auf eine Auftrags ID, um den Auftrag abzubrechen
jobs_none=Keine Auftr&auml;ge auf $1

cancel_ecannot=Sie haben keine Berechtigung, Druck-Auftr&auml;ge abzubrechen
cancel_err=Fehler beim abbrechen des Druck-Auftrags
cancel_egone=Druck-Auftrag $1 existiert nicht l&auml;nger

view_ecannot=Sie k&ouml;nnen diesen Durckauftrag nicht einsehen
view_egone=Dieser Druckauftrag existiert nicht mehr

start_ecannot=Sie haben keine Berechtigung, die Druck-Verwaltung zu starten
start_err=Fehler beim Starten der Druck-Verwaltung

stop_ecannot=Sie haben keine Berechtigung, die Druck-Verwaltung zu stoppen
stop_err=Fehler beim Stoppen der Druck-Verwaltung

webmin_none=Keiner
webmin_nonemsg=Postscript oder Text Drucker
webmin_remotemsg=Ferner Drucker auf Server
webmin_model=Modell
webmin_prog=Programm
webmin_driver=Webmin Treiber
webmin_edrivers=Fehler beim holen der Treiber von $1. Webmin Treiber, die Ghostscript benutzen, sind nicht verf&uuml;gbar
webmin_egs=Das Kommando $1 wurde nicht gefunden. Webmin Treiber, die Ghostscript benutzen, sind nicht verf&uuml;gbar
webmin_edriver='$1' existiert nicht

caldera_none=Keiner
caldera_nonemsg=Ferner oder roher Drucker
caldera_prog=Programm
caldera_coas=COAS Treiber
caldera_printer=Drucker und Aufl&ouml;sung
caldera_eof=Sende EOF?
caldera_paper=Papier Gr&ouml;sse
caldera_double=Drucke doppel-seitig?
caldera_gsopts=Zus&auml;tzliche GS Einstellungen
caldera_eprog='$1' existiert nicht
caldera_edriver=Es wurde kein Treiber gew&auml;hlt
caldera_eres=Es wurde keine Aufl&ouml;sung gew&auml;hlt

redhat_none=keiner
redhat_nonemsg=Postscript oder Text Drucker
redhat_prog=Programm
redhat_driver=Redhat Treiber
redhat_printer=Drucker und Aufl&ouml;sung
redhat_eof=Sende EOF?
redhat_paper=Papier Gr&ouml;sse
redhat_pages=Seiten pro Ausgabeseite
redhat_gsopts=Zus&auml;tzliche GS Einstellungen
redhat_hmargin=Rechter/linker Rand
redhat_vmargin=Oberer/unterer Rand
redhat_crlf=Gl&auml;tte Treppchen-Effekte von Text?
redhat_eprog='$1' existiert nicht
redhat_edriver=Es wurde keine Drucker Treiber gew&auml;hlt
redhat_ehmargin=Fehlender oder ung&uuml;ltiger rechter/linker Rand
redhat_evmargin=Fehlender oder ung&uuml;ltiger oberer/unterer Rand
redhat_eres=Es wurde keine Aufl&ouml;sung gew&auml;hlt

acl_printers=Drucker, die dieser Benutzer konfigurieren darf
acl_add=Darf neue Drucker hinzuf&uuml;gen?
acl_cancel=Darf Druck Auftr&auml;ge einsehen und abbrechen?
acl_stop=Darf Druck-Verwaltung starten oder stoppen?
acl_all=Auf allen Druckern
acl_listed=Nur auf ausgew&auml;hlten Druckern ..
  07070100077859000081a40000000000000002000000013ac0389a00001d0f000000200000000000000000000000000000001600000003reloc/lpadmin/lang/en index_title=Printer Administration
index_name=Printer
index_desc=Description
index_to=Print to
index_driver=Driver
index_enabled=Enabled?
index_accepting=Accepting?
index_jobs=Jobs
index_none=No printers installed on this system
index_list=list..
index_add=Add a new printer
index_stop=Stop Scheduler
index_stopmsg=Click this button to stop the running print scheduler process. This will prevent any local or remote users from printing on your system.
index_start=Start Scheduler
index_startmsg=Click this button to start the print scheduler process. This will allow local and remote users to print on your system.
index_restart=Restart Scheduler
index_restartmsg=Click this button to restart the print scheduler process. This will force the current print configuration to be applied.
index_return=printer list

edit_eedit=You are not allowed to edit this printer
edit_eadd=You are not allowed to add printers
edit_add=Create Printer
edit_edit=Edit Printer
edit_conf=Printer Configuration
edit_name=Name
edit_acc=Accepting requests?
edit_why=No - Why not
edit_desc=Description
edit_ena=Printing enabled?
edit_acl=Access control
edit_allow=Allow everyone
edit_deny=Deny everyone
edit_allowu=Allow listed users..
edit_denyu=Deny listed users..
edit_banner=Print banner?
edit_opt=Optional
edit_default=Default printer?
edit_already=Already the default printer
edit_max=Max print job size
edit_unlimited=Unlimited
edit_dacc=Driver accepts
edit_dtext=Text
edit_dpost=Postscript
edit_dother=Other
edit_alt=Alternate printer names
edit_dest=Print Destination
edit_dev=Local device
edit_file=Local file
edit_remote=Remote Unix server
edit_rqueue=Printer
edit_type=Type
edit_smb=Remote Windows server
edit_share=Printer
edit_user=User
edit_pass=Password
edit_wgroup=Workgroup
edit_hpnp=Remote HPNP server
edit_port=Port
edit_direct=Direct TCP connection
edit_dport=Port
edit_driver=Printer Driver
edit_check=Check if remote server is up?

blocks=blocks

save_err=Failed to save printer
save_eadd=You are not allowed to add printers
save_eedit=You are not allowed to edit this printer
save_ename='$1' is not a valid printer name
save_edup=A printer called '$1' already exists
save_eallow=No users to allow entered
save_edeny=No users to deny entered
save_euser=User '$1' does not exist
save_etype=You must select at least one type for this driver to accept
save_emax=Max print job size must be an integer
save_efile='$1' does not exist
save_erhost=Remote host '$1' does not exist
save_erqueue='$1' is not a valid remote queue name
save_eremote=Drivers cannot be used with remote Unix printers
save_edhost=Direct host '$1' does not exist
save_edport=Missing or invalid direct port

jobs_title=Print Jobs
jobs_header=Print jobs on $1
jobs_id=Job ID
jobs_size=Size
jobs_by=Submitted By
jobs_when=Submitted At
jobs_file=Filename
jobs_cancel=Click on a job ID from the list above to cancel.
jobs_cancelview=Click on a job ID from the list above to cancel, or click on the job size to view it.
jobs_none=No print jobs on $1
jobs_all=Cancel all print jobs
jobs_bytes=bytes
jobs_test=Print Test Page

cancel_ecannot=You are not allowed to cancel print jobs
cancel_err=Failed to cancel print job
cancel_egone=Print job $1 no longer exists

view_ecannot=You cannot view this print job
view_egone=This print job no longer exists

start_ecannot=You are not allowed to start the scheduler
start_err=Failed to start scheduler

stop_ecannot=You are not allowed to stop the scheduler
stop_err=Failed to stop scheduler

restart_ecannot=You are not allowed to restart the scheduler
restart_err=Failed to restart scheduler

webmin_none=None
webmin_nonemsg=Postscript or text printer
webmin_remotemsg=Remote printer
webmin_model=Model
webmin_prog=Program
webmin_driver=Webmin driver
webmin_uniprint=Uniprint driver
webmin_edrivers=Failed to get drivers from $1. Webmin printer drivers using ghostscript are not available
webmin_egs=The command $1 was not found. Webmin printer drivers using ghostscript are not available
webmin_edriver='$1' does not exist

caldera_none=None
caldera_nonemsg=Remote or raw printer
caldera_prog=Program
caldera_coas=COAS driver
caldera_printer=Printer and resolution
caldera_eof=Send EOF?
caldera_paper=Paper size
caldera_double=Print double-sided?
caldera_gsopts=Additional GS options
caldera_uniprint=Uniprint driver
caldera_eprog='$1' does not exist
caldera_edriver=No printer driver selected
caldera_eres=No resolution selected

redhat_none=None
redhat_nonemsg=Postscript or text printer
redhat_prog=Program
redhat_driver=Redhat driver
redhat_printer=Printer and resolution
redhat_eof=Send EOF?
redhat_paper=Paper size
redhat_pages=Pages per output page
redhat_gsopts=Additional GS options
redhat_hmargin=Right/left margin
redhat_vmargin=Top/bottom margin
redhat_crlf=Fix stair-stepping text?
redhat_eprog='$1' does not exist
redhat_edriver=No printer driver selected
redhat_ehmargin=Missing or invalid right/left margin
redhat_evmargin=Missing or invalid top/bottom margin
redhat_eres=No resolution selected
redhat_printer2=Printer model and driver

suse_none=None
suse_nonemsg=Postscript or text printer
suse_prog=Program
suse_driver=APSfilter driver
suse_printer=Printer type
suse_res=Resolution in DPI
suse_colour=Colour printer?
suse_paper=Paper size
suse_method=Filter method
suse_auto=Automatic
suse_ascii=ASCII
suse_raw=Raw
suse_extra=Extra ghostscript options
suse_yast2=YAST2 driver
suse_edriver=No printer type selected
suse_eres=Missing or invalid resolution

estop=Failed to stop lpd : $1

acl_printers=Printers this user can configure
acl_add=Can add new printers?
acl_cancel=Can cancel print jobs?
acl_stop=Can stop or start scheduler?
acl_restart=Restart only
acl_listed=Only on selected printers ..
acl_pall=All printers
acl_psel=Selected..
acl_view=Show non-configurable printers?
acl_test=Can print test pages?

log_stop=Stopped print scheduler
log_start=Started print scheduler
log_restart=Restarted print scheduler
log_cancel_job=Cancelled print job $2 on $1
log_cancel_all=Cancelled all print jobs on $1
log_create=Created printer $1 on $2
log_modify=Modified printer $1 on $2
log_delete=Deleted printer $1 on $2
log_create_l=Created $3 printer $1 on $2
log_modify_l=Modified $3 printer $1 on $2
log_delete_l=Deleted $3 printer $1 on $2

linux_paralel=Parallel Port $1
linux_serial=Serial Port $1 (COM$1)
linux_null=Null Device
linux_usb=USB printer $1

freebsd_paralel=Parallel Port
freebsd_serial=Serial Port $1 (COM$1)

openbsd_paralel=Parallel Port
openbsd_serial=Serial Port $1 (COM$1)

unixware_paralel=Parallel Port $1
unixware_serial=Serial Port $1
unixware_null=Null Device

hpux_paralel=Parallel $1
hpux_serial=Serial $1
hpux_null=Null Device

lprng_paralel=Parallel Port $1
lprng_serial=Serial Port $1 (COM$1)
lprng_null=Null Device

solaris_paralel=Parallel Port
solaris_uparalel=Ultra 5/10 Parallel Port
solaris_serial=Serial Port $1
solaris_null=Null Device

test_title=Print Test Page
test_ecannot=You are not allowed to print test pages
test_desc=This form allows you to print a test page for printer $1. Select the type of page that you want to print :
test_0=Black and white Postscript page
test_1=Colour Postscript page
test_2=Plain ASCII text
test_3=Any uploaded file
test_print=Print page
test_exec=Printing test page with command $1 ..
test_failed=.. command failed!
test_ok=.. command complete.

cups_none=None
cups_nonemsg=Remote or raw printer
cups_prog=Program
cups_driver=CUPS driver

 0707010007785a000081a40000000000000002000000013ac0389a00002172000000200000000000000000000000000000001600000003reloc/lpadmin/lang/es index_title=Administraci髇 de Impresoras
index_name=Impresora
index_desc=Descripci髇
index_to=Imprime en
index_driver=Filtro (Controlador)
index_enabled=緼ctivado?
index_accepting=緼ceptando?
index_jobs=Tareas
index_none=No hay impresoras instaladas en este sistema
index_list=relaci髇...
index_add=A馻dir una nueva impresora
index_stop=Parar Planificador
index_stopmsg=Haz click en este bot髇 para parar el proceso en curso del planificador de impresi髇. Esto har prevenir que cualquier usuario local o remoto impriman en tu sistema.
index_start=Arrancar Planificador
index_startmsg=Haz click en este bot髇 para arrancar el proceso del planificador de impresi髇. Esto permitir que los usuarios locales y remotos impriman en tu sistema.
index_restart=Rearrancar Planificador
index_restartmsg=Haz click en este bot髇 para rearrancar el proceso del planificador de impresi髇. Esto forzar la aplicaci髇 de la configuraci髇 en curso.
index_return=Lista de impresoras

edit_eedit=No est醩 autorizado a editar esta impresora
edit_eadd=No est醩 autorizado a a馻dir impresoras
edit_add=Crear Impresora
edit_edit=Editar Impresora
edit_conf=Configuraci髇 de Impresora
edit_name=Nombre
edit_acc=緼ceptando requerimientos?
edit_why=No - Por qu no
edit_desc=Descripci髇
edit_ena=縄mpresi髇 activada?
edit_acl=Control de Acceso
edit_allow=Permitir a todos
edit_deny=Denegar a todos
edit_allowu=Permitir a usuarios listados...
edit_denyu=Denegar a usuarios listados...
edit_banner=縄mprimo p醙ina de cabecera?
edit_opt=Opcional
edit_default=縀s la impresora por Defecto?
edit_already=Ya es la impresora por defecto
edit_max=Medida m醲ima de tarea de impresi髇
edit_unlimited=Ilimitado
edit_dacc=El controlador acepta
edit_dtext=Texto
edit_dpost=Postscript
edit_dother=Otros
edit_alt=Nombres alternativos de impresora
edit_dest=Destino de la impresi髇
edit_dev=Dispositivo local
edit_file=Archivo local
edit_remote=Servidor Unix remoto
edit_rqueue=Impresora
edit_type=Tipo
edit_smb=Servidor Windows remoto
edit_share=Impresora
edit_user=Usuario
edit_pass=Clave de Acceso
edit_wgroup=Grupo de Trabajo
edit_hpnp=Servidor HPNP remoto
edit_port=Puerto
edit_direct=Conexi髇 TCP directa
edit_dport=Puerto
edit_driver=Controlador de Impresora
edit_check=縍eviso si el servidor remoto est activo?

blocks=bloques

save_err=Error al salvar impresora
save_eadd=No est醩 autorizado a a馻dir impresoras
save_eedit=No est醩 autorizado a editar esta impresora
save_ename='$1' no es un nombre v醠ido de impresora
save_edup=Ya existe una impresora llamada '$1'
save_eallow=No se han digitado usuarios a autorizar
save_edeny=No se han digitado usuarios a denegar
save_euser=El usuario '$1' no existe
save_etype=Debes de seleccionar al menos un tipo para que sea aceptado por este controlador
save_emax=La medida m醲ima de tareas de impresi髇 debe de ser un entero
save_efile='$1' no existe
save_erhost=La m醧uina remota '$1' no existe
save_erqueue='$1' no es un nombre de cola remota v醠ido
save_eremote=Los controladores no pueden ser usados con impresoras Unix remotas
save_edhost=La m醧uina directa '$1' no existe
save_edport=Puerto directo inv醠ido o sin poner

jobs_title=Tareas de impresi髇
jobs_header=Imprimir tareas en $1
jobs_id=ID de Tarea
jobs_size=Medida
jobs_by=Puesto Por
jobs_when=Puesto a las
jobs_file=Nombre de Archivo
jobs_cancel=Haz click en una ID de tarea de la lista superior para cancelarla.
jobs_cancelview=Haz click en una ID de tarea de la lista superior para cancelarla o haz click en la medida de la tarea para verla.
jobs_none=No hay tareas de impresi髇 en $1
jobs_all=Cancelar todas las tareas de impresi髇
jobs_bytes=octetos
jobs_test=Imprimir P醙ina de Prueba

cancel_ecannot=No est醩 autorizado a cancelar tareas de impresi髇
cancel_err=Error al cancelar tarea de impresi髇
cancel_egone=La tarea de impresi髇 $1 ya no existe

view_ecannot=No puedes ver esta tarea de impresi髇
view_egone=Esta tarea de impresi髇 ya no existe

start_ecannot=No est醩 autorizado a arrancar el planificador
start_err=Error al arrancar planificador

stop_ecannot=No est醩 autorizado a parar el planificador
stop_err=Error al parar planificador

restart_ecannot=No est醩 autorizado a rearrancar el planificador de impresi髇
restart_err=No pude rearrancar el planificador de impresi髇

webmin_none=Ninguno
webmin_nonemsg=Impresora Postscript o de texto
webmin_remotemsg=Impresora remota
webmin_model=Modelo
webmin_prog=Programa
webmin_driver=Controlador de Webmin
webmin_uniprint=Controlador Uniprint
webmin_edrivers=Error al obtener los controladores desde $1. Los controladores de impresoras de Webmin que utilicen ghostscript no estar醤 disponibles
webmin_egs=El comando $1 no fue encontrado. Los controladores de impresora de Webmin que utilicen ghostscript no estar醤 disponibles
webmin_edriver='$1' no existe

caldera_none=Ninguno
caldera_nonemsg=Impresora remota o sin buffer
caldera_prog=Programa
caldera_coas=Controlador COAS
caldera_printer=Impresora y resoluci髇
caldera_eof=縀nv韔 Fin-de-Archivo (EOF)?
caldera_paper=Medida del papel
caldera_double=縄mprimo por ambas caras?
caldera_gsopts=Opciones GS adicionales
caldera_uniprint=Controlador Uniprint
caldera_eprog='$1' no existe
caldera_edriver=No se ha seleccionado controlador de impresora
caldera_eres=No se ha seleccionado resoluci髇

redhat_none=Ninguno
redhat_nonemsg=Impresora postscript o de texto
redhat_prog=Programa
redhat_driver=Controlador Redhat
redhat_printer=Impresora y resoluci髇
redhat_eof=縀nv韔 Fin-de-Archivo (EOF)?
redhat_paper=Medida del papel
redhat_pages=P醙ina por p醙ina de salida
redhat_gsopts=Opciones GS adicionales
redhat_hmargin=M醨gen Derecho/Izquierdo
redhat_vmargin=M醨gen Superior/Inferior
redhat_crlf=縁ijo el texto en modo escalonando-escalera?
redhat_eprog='$1' no existe
redhat_edriver=No se ha seleccionado controlador de impresora
redhat_ehmargin=M醨gen derecho/izquierdo sin poner o inv醠ido
redhat_evmargin=M醨gen superior/inferior sin poner o inv醠ido
redhat_eres=No se ha seleccionado resoluci髇

suse_none=Ninguna
suse_nonemsg=Impresora postscript o de texto
suse_prog=Programa
suse_driver=Controlador APSfilter
suse_printer=Tipo de impresora
suse_res=Resoluci髇 en DPI
suse_colour=縄mpresora a color?
suse_paper=Medida del papel
suse_method=M閠odo de filtrado
suse_auto=Autom醫ico
suse_ascii=ASCII

estop=No pude parar lpd: $1

acl_printers=Impresoras que este usuario puede configurar
acl_add=縋uedo a馻dir impresoras nuevas?
acl_cancel=縋uedo ver y cancelar tareas de impresi髇?
acl_stop=縋uedo parar o arrancar el planificador?
acl_restart=S髄o rearrancar
acl_listed=S髄o en las impresoras seleccionadas...
acl_pall=Todas las impresoras
acl_psel=Las seleccionadas...
acl_view=縈ostrar impresoras no configurables?
acl_test=縋uedo imprimir p醙inas de prueba?

log_stop=Parado Gestor de impresi髇
log_start=Arrancado gestor de impresi髇
log_restart=Rearrancado planificador de impresi髇
log_cancel_job=Cancelada tarea de impresi髇 $2 en $1
log_cancel_all=Canceladas todas las tareas de impresi髇 en $1
log_create=Creada impresora $1 en $2
log_modify=Modificada impresora $1 en $2
log_delete=Borrada impresora $1 en $2
log_create_l=Creada $3 impresora $1 en $2
log_modify_l=Modificada $3 impresora $1 en $2
log_delete_l=Borrada $3 impresora $1 en $2

linux_paralel=Puerto Paralelo $1
linux_serial=Puerto Serial $1 (COM$1)
linux_null=Dispositivo Nulo
linux_usb=Impresora USB $1

freebsd_paralel=Puerto Paralelo
freebsd_serial=Puerto Serial $1 (COM$1)

openbsd_paralel=Puerto Paralelo
openbsd_serial=Puerto Serial $1 (COM$1)

unixware_paralel=Puerto Paralelo $1
unixware_serial=Puerto Serial $1
unixware_null=Dispositivo Nulo

hpux_paralel=Paralelo $1
hpux_serial=Serial $1
hpux_null=Dispositivo Nulo

lprng_paralel=Puerto Paralelo $1
lprng_serial=Puerto Serial $1 (COM$1)
lprng_null=Dispositivo Nulo

solaris_paralel=Puerto Paralelo
solaris_uparalel=Puerto Paralelo Ultra 5/10
solaris_serial=Puerto Serial $1
solaris_null=Dispositivo Nulo

test_title=Imprimir P醙ina de Prueba
test_ecannot=No est醩 autorizado a imprimir p醙inas de prueba
test_desc=Este formulario te permite imprimir una p醙ina de prueba en la impresora $1. Selecciona el tipo de p醙ina que deseas imprimir:
test_0=P醙ina Postcript en blanco y negro
test_1=P醙ina Postscript en color
test_2=Texto ASCII
test_3=Cualquier fichero cargado
test_print=Imprimir p醙ina
test_exec=Imprimiendo p醙ina de prueba con el comando $1...
test_failed=... all el comando!
test_ok=... comando completado.

cups_none=Ninguno
cups_nonemsg=Impresora remota o directa
cups_prog=Programa
cups_driver=Controlador CUPS

  0707010007785b000081a40000000000000002000000013ac0389a00001516000000200000000000000000000000000000001600000003reloc/lpadmin/lang/fr index_title=Administration de l'Imprimante
index_name=Imprimante
index_desc=Description
index_to=Imprimer 
index_driver=Pilote
index_jobs=T鈉hes
index_none=Aucune imprimante install閑 sur ce syst鑝e
index_list=liste
index_add=Ajouter une nouvelle imprimante
index_stop=Arr阾er le Gestionnaire
index_stopmsg=Cliquer sur ce bouton pour arr阾er le gestionnaire d'impression.  Ceci va pr関enir les usagers local et distant d'imprimer sur votre syst鑝e.
index_start=D閙arrer le Gestionnaire
index_startmsg=Cliquer sur ce bouton pour d閙arrer le gestionnaire d'impression.  Ceci va permettre aux usagers local et distant d'imprimer sur votre syst鑝e.
index_return=liste d'imprimantes

edit_eedit=Vous n'阾es pas autoris  閐iter cette imprimante
edit_eadd=Vous n'阾es pas autoris  ajouter une imprimante
edit_add=Cr閑r une imprimante
edit_edit=蒬iter une imprimante
edit_conf=Configuration de l'Imprimante
edit_name=Nom
edit_acc=Accepte des requ阾es?
edit_why=Non - Pourquoi pas
edit_desc=Description
edit_ena=Impression active?
edit_acl=Contr鬺e d'acc鑣
edit_allow=Autoris n'importe qui
edit_deny=Refuser tout le monde
edit_allowu=Autoriser les usagers list閟
edit_denyu=Refuser les usagers list閟
edit_banner=Imprimer une banni鑢e?
edit_opt=Optionnel
edit_default=Imprimante par d閒aut?
edit_already=D閖 l'imprimante par d閒aut
edit_max=Taille maximum de la t鈉he d'impression
edit_dacc=Pilote accepte
edit_dtext=Texte
edit_dpost=Postscript
edit_dother=Autre
edit_alt=Autres noms  l'imprimante
edit_dest=Destination de l'impression
edit_dev=P閞iph閞ique local
edit_file=Fichier local
edit_remote=Serveur Unix distant
edit_rqueue=Imprimante
edit_type=Type
edit_smb=Serveur Windows distant
edit_share=Imprimante
edit_user=Nom d'usager
edit_pass=Mot de passe
edit_wgroup=Groupe de travail
edit_hpnp=Serveur HPNP distant
edit_port=Port
edit_driver=Pilote d'Impression

blocks=blocs

save_err=Impossible d'enregistrer l'imprimante
save_eadd=Vous n'阾es pas autoris  ajouter une imprimante
save_eedit=Vous n'阾es pas autoris  閐iter cette imprimante
save_ename=$1 n'est pas un nom d'imprimante valide
save_edup=Une imprimante appel閑 $1 existe d閖
save_eallow=Aucun usager autoris d'entr閑
save_edeny=Aucun usager refus d'entr閑
save_euser=L'usager $1 n'existe pas
save_etype=Vous devez choisir au moins un type pour ce pilote
save_emax=La taille maximum des t鈉hes d'impressions doit 阾re un entier
save_efile=$1 n'existe pas
save_erhost=L'h魌e distant $1 ne semble pas exister
save_erqueue=$1 n'est pas un nom valide de file d'attente distante
save_eremote=Les pilotes ne peuvent 阾re utilis閟 sur les imprimantes Unix distante

jobs_title=T鈉hes d'Impression
jobs_header=T鈉hes d'impression pour $1
jobs_id=Num閞o de la t鈉he
jobs_size=Taille
jobs_by=Soumit Par
jobs_when=Soumit 
jobs_file=Nom de fichier
jobs_cancel=Cliquer sur un num閞o de t鈉he pour l'annuler
jobs_none=Aucune t鈉he d'impression sur $1

cancel_ecannot=Vous n'阾es pas autoris  annuler une t鈉he d'impression
cancel_err=Impossible d'annuler la t鈉he d'impression
cancel_egone=La t鈉he d'impression $1 n'existe plus

view_ecannot=Vous ne pouvez voir cette t鈉he d'impression
view_egone=Cette t鈉he d'impression n'existe plus

start_ecannot=Vous n'阾es pas autoris  d閙arrer le gestionnaire d'impression
start_err=Impossible d'arr阾er le gestionnaire d'impression

stop_ecannot=Vous n'阾es pas autoris  arr阾er le gestionnaire
stop_err=Impossible d'arr阾er le gestionnaire

webmin_none=Aucune
webmin_nonemsg=Imprimante Postscript ou texte
webmin_remotemsg=Imprimante distante
webmin_model=Mod鑜e
webmin_prog=Programme
webmin_driver=Pilote Webmin
webmin_uniprint=Pilote Uniprint
webmin_edrivers=Impossible de prendre les pilotes de $1.  Les pilotes Webmin utilisant Ghostscript ne seront pas disponible
webmin_egs=La commande $1 n'a pas 閠 trouv.  Les pilotes Webmin utilisant Ghostscript ne seront pas disponible
webmin_edriver=$1 n'existe pas

caldera_none=Aucune
caldera_nonemsg=Imprimante distante ou directe
caldera_prog=Programme
caldera_coas=Pilote COAS
caldera_printer=Imprimante et r閟olution
caldera_eof=Envoyer le signal de fin de fichier?
caldera_paper=Taille du papier
caldera_double=Imprimer des deux cot閟 du papier?
caldera_gsopts=Options Ghostscript additionnel
caldera_uniprint=Pilote Uniprint
caldera_eprog=$1 n'existe pas
caldera_edriver=Aucun pilote d'imprimante s閘ectionn
caldera_eres=Aucune r閟olution s閘ectionn閑

redhat_none=Aucune
redhat_nonemsg=Imprimante texte ou Postscript
redhat_prog=Programme
redhat_driver=Pilote de RedHat
redhat_printer=Imprimante et r閟olution
redhat_eof=Envoyer le signal de fin de fichier?
redhat_paper=Taille du papier
redhat_pages=Pages par page de sortie
redhat_gsopts=Options Ghostscript additionnel
redhat_hmargin=Marge Droite/Gauche
redhat_vmargin=Marge Haut/Bas
redhat_crlf=Fixer l'effet escalier du texte?
redhat_eprog=$1 n'existe pas
redhat_edriver=Aucun pilote d'imprimante de s閘ectionn
redhat_ehmargin=Marge Droite/Gauche manquante ou invalide
redhat_evmargin=Marge Haut/Bas manquante ou invalide
redhat_eres=Aucune r閟olution de s閘ectionn

acl_printers=Imprimantes que cet usager peut configurer
acl_add=Peut ajouter de nouvelle imprimante?
acl_cancel=Peut annuler une t鈉he d'impression?
acl_stop=Peut arr阾er ou d閙arrer le gestionnaire d'impression?
acl_all=Sur toutes les imprimantes
acl_listed=Seulement sur les imprimantes s閘ectionn閑s
  0707010007785c000081a40000000000000002000000013ac0389a00001c3e000000200000000000000000000000000000001600000003reloc/lpadmin/lang/hu # webmin-0.82/acl/lang/hu
# Translated by <kissg@sztaki.hu>
# Some Caldera/RedHat/SuSe/HPUX related strings remained untranslated due to
# their specific nature. Further volunteers wanted.

index_title=Nyomtat髃
index_name=Nyomtat
index_desc=Megnevez閟
index_to=Kimenet
index_driver=Meghajt
index_enabled=Enged-<br>lyezve?
index_accepting=Fogad-<br>k閜es?
index_jobs=Feladatok
index_none=Egyetlen nyomtat sincs a rendszerben
index_list=lista...
index_add=趈 nyomtat rendszerbe 醠l韙醩a
index_stop=躷emez le醠l韙醩a
index_stopmsg=Ha megnyomod ezt a gombot, meg醠l a nyomtat醩 黷emez閟閟t v間z processz, 閟 se a helyi, se a t醰oli felhaszn醠髃 nem tudnak nyomtatni a rendszereden.
index_start=躷emez ind韙醩a
index_startmsg=Ha megnyomod ezt a gombot, elindul a nyomtat醩 黷emez閟閟t v間z processz, 閟 a helyi illetve t醰oli felhaszn醠髃 elk黮dhetik a nyomtatnival骿ukat.
index_return=a nyomtat髃 list醞醜oz

edit_eedit=Nem m骴os韙hatod ennek a nyomtat髇ak a be醠l韙醩ait
edit_eadd=Nem vehetsz fel 鷍 nyomtat髏 a rendszerbe
edit_add=趈 nyomtat felv閠ele
edit_edit=Nyomtat m骴os韙醩a
edit_conf=Nyomtat髎or konfigur醕i骿a
edit_name=Azonos韙
edit_acc=Elfogadjon 鷍 feladatokat?
edit_why=Nem, mert
edit_desc=Megnevez閟
edit_ena=Nyomtat醩 enged閘yezve?
edit_acl=Ki nyomtathat ide?
edit_allow=B醨ki
edit_deny=Senki
edit_allowu=Csak a felsoroltak
edit_denyu=B醨ki,&nbsp;kiv関e&nbsp;a&nbsp;felsoroltakat
edit_banner=C韒lap nyomtat醩a?
edit_opt=V醠aszthat
edit_default=Ez az alap-<br>nyomtat?
edit_already=Igen, kor醔ban m醨 annak jel鰈ted ki
edit_max=A nyomtatnival maxim醠is&nbsp;m閞ete (kB)
edit_dacc=Elfogadhat nyomtatnival
edit_dtext=Sz鰒eg (text)
edit_dpost=Postscrip&#116;
edit_dother=Egy閎
edit_alt=Alternat韛 azonos韙髃
edit_dest=Kimenet
edit_dev=Helyi interf閟z
edit_file=Helyi file
edit_remote=T醰oli Unixos g閜
edit_rqueue=Nyomtat
edit_type=t韕usa:
edit_smb=T醰oli Windows-os g閜
edit_share=Nyomtat
edit_user=Felhaszn醠
edit_pass=Jelsz
edit_wgroup=Munkacsoport
edit_hpnp=T醰oli HPNP szerver
edit_port=Por&#116;
edit_direct=K鰖vetlen TCP kapcsolat
edit_dport=Por&#116;
edit_driver=Meghajt

save_err=Nem siker黮t elmenteni a konfigur醕i髏
save_eadd=Nincs jogod 鷍 printer felv閠el閔ez
save_eedit=Nincs jogod v醠toztatni ezen a nyomtat髇
save_ename=A(z) '$1' n関 hib醩
save_edup=M醨 van egy '$1' nev nyomtat
save_eallow=Nem adtad meg, kik nyomtathatnak ide
save_edeny=Nem adtad meg, kik nem nyomtathatnak ide
save_euser=Nincs '$1' nev felhaszn醠
save_etype=Nem adtad meg, hogy milyen fajta nyomtatnival j鰄et ide
save_emax=A nyomtatand anyag maxim醠is m閞ete eg閟z sz醡 kell legyen
save_efile=Nincs '$1' nev file
save_erhost=Nincs '$1' nev t醰oli g閜
save_erqueue='$1' is not a valid remote queue name
save_eremote=T醰oli unixos g閜re csak driver n閘k黮 nyomtathatsz
save_edhost='$1' nev g閜 nincs
save_edport=Nem adtad meg a portot

jobs_title=Nyomtat髎or
jobs_header=Nyomtat醩ra v醨 anyagok a(z) $1 nyomtat髇
jobs_id=Azonos韙
jobs_size=M閞et
jobs_by=Felad
jobs_when=D醫um
jobs_file=Filen関
jobs_cancel=Az azonos韙髍a kattintva t鰎鰈heted az anyagot a sorb髄.
jobs_cancelview=Az azonos韙髍a kattintva t鰎鰈heted az anyagot a sorb髄, a m閞etre kattintva pedig megn閦heted a tartalm醫.
jobs_none=Nincs v醨akoz nyomtatnival a(z) $1 sor醔an
jobs_all=Minden v醨akoz anyag t鰎l閟e
jobs_bytes=byte

cancel_ecannot=Nincs jogod t鰎鰈ni a nyomtat髎orb髄
cancel_err=Nem siker黮t t鰎鰈ni az anyagot
cancel_egone=A $1 jel nyomtatnival m醨 nem l閠ezik

view_ecannot=Nem n閦heted meg a nyomtatand file-t
view_egone=Ez a nyomtatnival m醨 nem l閠ezik

start_ecannot=Nincs jogod az 黷emez ind韙醩醜oz
start_err=Nem siker黮t elind韙ani az 黷emez鮰

stop_ecannot=Nincs jogod az 黷emez le醠l韙醩醜oz
stop_err=Nem siker黮t le醠l韙ani az 黷emez鮰

webmin_none=Nem kell
webmin_nonemsg=Postscript vagy karakteres nyomtat
webmin_remotemsg=T醰oli nyomtat
webmin_model=Model
webmin_prog=Progra&#109;
webmin_driver=Webmin meghajt
webmin_uniprint=Uniprint meghajt
webmin_edrivers=Nem der黮t ki, hogy a $1 milyen nyomtat髃at t醡ogat. A <tt>ghostscript</tt>et haszn醠 meghajt髃at n閘k黮鰖n鰀 kell.
webmin_egs=Hi醤yzik a $1 program. A <tt>ghostscript</tt>et haszn醠 meghajt髃at n閘k黮鰖n鰀 kell.
webmin_edriver='$1' nem l閠ezik

caldera_none=None
caldera_nonemsg=Remote or raw printer
caldera_prog=Program
caldera_coas=COAS driver
caldera_printer=Printer and resolution
caldera_eof=Send EOF?
caldera_paper=Pap韗m閞et
caldera_double=K閠oldalas nyomtat醩?
caldera_gsopts=Additional GS options
caldera_uniprint=Uniprint driver
caldera_eprog='$1' does not exist
caldera_edriver=No printer driver selected
caldera_eres=No resolution selected

redhat_none=None
redhat_nonemsg=Postscript or text printer
redhat_prog=Program
redhat_driver=Redhat driver
redhat_printer=Printer and resolution
redhat_eof=Send EOF?
redhat_paper=Pap韗m閞et
redhat_pages=Pages per output page
redhat_gsopts=Additional GS options
redhat_hmargin=Jobb/bal marg
redhat_vmargin=Fels/als marg
redhat_crlf=Fix stair-stepping text?
redhat_eprog='$1' does not exist
redhat_edriver=No printer driver selected
redhat_ehmargin=Missing or invalid right/left margin
redhat_evmargin=Missing or invalid top/bottom margin
redhat_eres=No resolution selected

suse_none=None
suse_nonemsg=Postscript or text printer
suse_prog=Program
suse_driver=APSfilter driver
suse_printer=Printer type
suse_res=Resolution in DPI
suse_colour=Colour printer?
suse_paper=Pap韗m閞et
suse_method=Filter method
suse_auto=Automatic
suse_ascii=ASCII

estop=Nem siker黮t le醠l韙ani az <tt>lpd<tt>-t: $1

acl_printers=Mely nyomtat髃at konfigur醠hatja?
acl_add=Felvehet 鷍 nyomtat髃at?
acl_cancel=Megn閦heti 閟 t鰎鰈heti a nyomtatand anyagokat?
acl_stop=Le醠l韙hatja/elind韙hatja az 黷emez鮰?
acl_listed=Csak a megjel鰈t nyomtat髃on:
acl_pall=Mindegyiket
acl_psel=A megjel鰈teket:

log_stop=Nyomtat骴閙on le醠l韙醩a
log_start=Nyomtat骴閙on elind韙醩a
log_cancel_job=A(z) $2 jel anyag t鰎l閟e a(z) $1 nyomtat髎orb髄
log_cancel_all=Minden anyag t鰎l閟e a(z) $1 nyomtat髎orb髄
log_create=A(z) $1 nyomtat l閠rehoz醩a
log_modify=A(z) $1 nyomtat m骴os韙醩a
log_delete=A(z) $1 nyomtat t鰎l閟e
log_create_l=A(z) $1 jel "$3" nyomtat l閠rehoz醩a
log_modify_l=A(z) $1 jel "$3" nyomtat m骴os韙醩a
log_delete_l=A(z) $1 jel "$3" nyomtat t鰎l閟e

linux_paralel=$1. p醨huzamos csatol
linux_serial=$1. soros csatol (COM$1)
linux_null="Null" eszk鰖
linux_usb=USB nyomtat $1

freebsd_paralel=P醨huzamos csatol
freebsd_serial=$1. soros csatol (COM$1)

openbsd_paralel=P醨huzamos csatol
openbsd_serial=$1. soros csatol (COM$1)

unixware_paralel=$1. p醨huzamos csatol
unixware_serial="$1" soros csatol (COM$1)
unixware_null="Null" eszk鰖

hpux_paralel="$1" p醨huzamos csatol
hpux_serial="$1" soros csatol
hpux_null="Null" eszk鰖

lprng_paralel=$1. p醨huzamos csatol
lprng_serial=$1. soros csatol (COM$1)
lprng_null="Null" eszk鰖

solaris_paralel=P醨huzamos csatol
solaris_uparalel=Ultra 5/10 p醨huzamos csatol
solaris_serial="$1" soros csatol
solaris_null="Null" eszk鰖
  0707010007785d000081a40000000000000002000000013ac0389a000014ea000000200000000000000000000000000000001600000003reloc/lpadmin/lang/it index_title=Amministrazione Stampanti
index_name=Stampante
index_desc=Descrizione
index_to=Stampa in
index_driver=Driver
index_jobs=Jobs
index_none=Nessuna stampante installata nel sistema
index_list=lista..
index_add=Aggiungi una nuova stampante
index_stop=Ferma lo Scheduling
index_stopmsg=Seleziona il pulsante per fermare il processo di stampa. 
Questo blocca la stampa a utenti locali e remoti.
index_start=Inizia lo Scheduling
index_startmsg=Seleziona il pulsante per iniziare il processo di stampa. 
Questo permette a utenti locali e remoti di stampare sul tuo sistema
index_return=lista stampante

edit_eedit=Non sei autorizzato a modificare la stampante
edit_eadd=Non sei autorizzato ad aggiungere stampanti
edit_add=Crea una Stampante
edit_edit=Modifica una Stampante
edit_conf=Configurazione Stampante
edit_name=Nome
edit_acc=Accetta richieste?
edit_why=No - Perche' no
edit_desc=Descrizione
edit_ena=Stampante Abilitata?
edit_acl=Controllo Accessi
edit_allow=Autorizza tutti
edit_deny=Non Autorizzare nessuno
edit_allowu=Autorizza gli utenti elencati...
edit_denyu=Non autorizza gli utenti elencati...
edit_banner=Stampa una intestazione?
edit_opt=Opzionale
edit_default=Stampante di Default?
edit_already=La stampante e' gia' di default
edit_max=Massima grandezza del processo di stampa
edit_dacc=Driver accettati
edit_dtext=Testo
edit_dpost=Postscript
edit_dother=Altri
edit_alt=Nomi alternativi della stampante
edit_dest=Destinazione Stampa
edit_dev=Dispositivo Locale
edit_file=File Locale
edit_remote=Server Unix Remoto
edit_rqueue=Stampante
edit_type=Tipo
edit_smb=Server Windows remoto
edit_share=Stampante
edit_user=Utente
edit_pass=Password
edit_wgroup=Gruppo di Lavoro
edit_hpnp=Server remoto HPNP
edit_port=Porta
edit_driver=Driver della Stampante

blocks=blocchi

save_err=Errore nel salvataggio della stampante
save_eadd=Non sei autorizzato ad aggiungere stampanti
save_eedit=on sei autorizzato a modificare questa stampante
save_ename='$1' non e' un nome valido per la stampante
save_edup=La stampante '$1' e' gia' presente
save_eallow=Nessun utente autorizzato inserito
save_edeny=Nessun utente non autorizzato inserito
save_euser=L'utente '$1' non esiste
save_etype=Devi selezionare almeno un tipo di driver per accettare
save_emax=La dimensione massima per un processo di stampa deve essere un 
numero intero
save_efile='$1' non esiste
save_erhost=L'host remoto '$1' non esiste
save_erqueue='$1' non e' un nome valido di coda remota di stampa
save_eremote=Il driver non puo' essere usato con una stampante remota Unix

jobs_title=Processi di Stampa
jobs_header=Processi di Stampa in $1
jobs_id=ID Processo
jobs_size=Dimensione
jobs_by=Inviato da
jobs_when=Inviato alle
jobs_file=Nome del file
jobs_cancel=Seleziona l'ID del processo per eliminarlo
jobs_cancelview=Seleziona l'ID del processo per eliminarlo, o seleziona la 
dimensione del processo per vederlo.
jobs_none=Nessun processo di stampa in $1

cancel_ecannot=Non sei autorizzato ad eliminare i processi di stampa
cancel_err=Errore nella cancellazione del processo di stampa
cancel_egone=Il processo di stampa $1 non esiste

view_ecannot=Non puoi vedere questo processo di stampa
view_egone=Questo processo di stampa non esiste

start_ecannot=Non sei autorizzato a far partire lo scheduler
start_err=Errore nell'esecuzione dello scheduler

stop_ecannot=Non sei autorizzato a bloccare lo scheduler
stop_err=Errore nel bloccare lo scheduler

webmin_none=Nessuno
webmin_nonemsg=Stampante Postscript o di testo
webmin_remotemsg=Stampante remota
webmin_model=Modello
webmin_prog=Programma
webmin_driver=Driver Webmin
webmin_uniprint=Driver Uniprint
webmin_edrivers=Errore nell'utilizzare il driver da $1. I driver Webmin 
della stampante che usano il ghostscript non sono disponibili
webmin_egs=Il comando $1 non e' stato trovato. I driver Webmin della 
stampante che usano il ghostscript non sono disponibili
webmin_edriver='$1' non esiste

caldera_none=Nessuno
caldera_nonemsg=Stampante remota o di tipo raw
caldera_prog=Programma
caldera_coas=Driver COAS
caldera_printer=Stampante e risoluzione
caldera_eof=Invia EOF (Fine File)?
caldera_paper=Dimensione della carta
caldera_double=Stampa su entrambi i lati?
caldera_gsopts=Opzione GS aggiuntiva
caldera_uniprint=Driver Uniprint
caldera_eprog='$1' non esiste
caldera_edriver=Driver della stampante non selezionato
caldera_eres=Nessuna risoluzione selezionata

redhat_none=Nessuno
redhat_nonemsg=Stampante Postscript o di testo
redhat_prog=Programma
redhat_driver=Driver RedHat
redhat_printer=Stampante e risoluzione
redhat_eof=Invia EOF (Fine File)?
redhat_paper=Dimensione della carta
redhat_pages=Pages per output page
redhat_gsopts=Opzione GS aggiuntiva
redhat_hmargin=margine Destro/Sinistro
redhat_vmargin=margine Superiore/inferiore
redhat_crlf=Fix stair-stepping text?
redhat_eprog='$1' non esiste
redhat_edriver=Driver della stampante non selezionato
redhat_ehmargin=Margine sinistro/destro errato o invalido
redhat_evmargin=Margine superiore/inferiore errato o invalido
redhat_eres=Nessuna risoluzione selezionata

acl_printers=Stampanti che questo utente puo' configurare
acl_add=Puo' aggiungere nuove stampanti?
acl_cancel=Puo' vedere o annullare i processi della stampante ?
acl_stop=Puo' bloccare o far partire lo scheduler ?
acl_all=Su tutte le stampanti
acl_listed=Solo sulle stampanti selezionate..



  0707010007785e000081a40000000000000002000000013ac0389a000020ec000000200000000000000000000000000000001600000003reloc/lpadmin/lang/pl index_title=Zarz眃zanie drukarkami
index_name=Drukarka
index_desc=Opis
index_to=Drukuj do
index_driver=Sterownik
index_enabled=Aktywny?
index_accepting=Przyjmuje po潮czenia?
index_jobs=Zadania
index_none=W&nbsp;tym systemie nie zainstalowano 縜dnej drukarki
index_list=lista..
index_add=Dodaj now drukark
index_stop=Zatrzymaj zarz眃c
index_stopmsg=Naci秐ij ten przycisk, aby zatrzyma dzia潮j眂y proces zarz眃cy wydruk體. Uniemo縧iwi to lokalnym i&nbsp;zdalnym u縴tkownikom drukowanie w&nbsp;Twoim systemie.
index_start=Uruchom zarz眃c
index_startmsg=Naci秐ij ten przycisk, aby uruchomi proces zarz眃cy wydruk體. Umo縧iwi to lokalnym i&nbsp;zdalnym u縴tkownikom drukowanie w&nbsp;Twoim systemie.
index_restart=Restartuj zarz眃c
index_restartmsg=Naci秐ij ten przycisk, aby zrestartowa proces zarz眃cy wydruk體. Wymusi to zastosowanie bie勘cej konfiguracji drukarek.
index_return=listy drukarek

edit_eedit=Nie masz uprawnie do zmian tej drukarki
edit_eadd=Nie masz uprawnie do dodawania drukarek
edit_add=Utw髍z drukark
edit_edit=Zmie drukark
edit_conf=Konfiguracja drukarki
edit_name=Nazwa
edit_acc=Przyjmuje zadania?
edit_why=Nie - Dlaczego
edit_desc=Opis
edit_ena=Drukowanie w潮czone?
edit_acl=Kontrola dost阷u
edit_allow=Pozw髄 wszystkim
edit_deny=Zabro wszystkim
edit_allowu=Pozw髄 wymienionym u縴tkownikom..
edit_denyu=Zabro wymienionym u縴tkownikom..
edit_banner=Drukowa nag丑wek?
edit_opt=Warunkowo
edit_default=Drukarka domy秎na?
edit_already=Ju jest drukark domy秎n
edit_max=Maks. rozmiar zadania
edit_unlimited=Nieograniczony
edit_dacc=Sterownik przyjmuje
edit_dtext=Tekst
edit_dpost=Postscript
edit_dother=Inne
edit_alt=Alternatywne nazwy drukarki
edit_dest=Drukowanie do
edit_dev=Urz眃zenia lokalnego
edit_file=Pliku lokalnego
edit_remote=Zdalnego serwera Unix
edit_rqueue=Drukarka
edit_type=Typ
edit_smb=Zdalnego serwera Windows
edit_share=Drukarka
edit_user=U縴tkownik
edit_pass=Has硂
edit_wgroup=Grupa robocza
edit_hpnp=Zdalnego serwera HPNP
edit_port=Port
edit_direct=Bezpo秗ednie po潮czenie TCP
edit_dport=Port
edit_driver=Sterownik drukarki
edit_check=Sprawdza, czy zdalny serwer dzia砤?

blocks=blok體

save_err=Nie uda硂 si zachowa drukarki
save_eadd=Nie masz uprawnie do dodawania drukarek
save_eedit=Nie masz uprawnie do zmian tej drukarki
save_ename='$1' nie jest poprawn nazw drukarki
save_edup=Drukarka o&nbsp;nazwie '$1' ju istnieje
save_eallow=Nie podano u縴tkownik體, kt髍ym pozwolono
save_edeny=Nie podano u縴tkownik體, kt髍ym zabroniono
save_euser=U縴tkownik '$1' nie istnieje
save_etype=Musisz poda przynajmniej jeden typ zada, kt髍e ten sterownik przyjmuje
save_emax=Maksymalny rozmiar zadania musi by liczb ca砶owit
save_efile='$1' nie istnieje
save_erhost=Host zdalny '$1' nie istnieje
save_erqueue='$1' nie jest poprawn nazw kolejki
save_eremote=Nie mo縩a u縴wa sterownik體 w&nbsp;przypadku zdalnych drukarek uniksowych
save_edhost=Host bezpo秗edni '$1' nie istnieje
save_edport=Nie podany lub niepoprawny port bezpo秗edni

jobs_title=Zadania do wydrukowania
jobs_header=Zadania do wydrukowania na $1
jobs_id=Nr ID zadania
jobs_size=Rozmiar
jobs_by=Zlecone przez
jobs_when=Zlecone o
jobs_file=Nazwa pliku
jobs_cancel=Naci秐ij na numer ID zadania z&nbsp;powy縮zej listy, aby je anulowa.
jobs_cancelview=Naci秐ij na numer ID zadania z&nbsp;powy縮zej listy, aby je anulowa, lub naci秐ij na rozmiar zadania, aby je obejrze.
jobs_none=Brak zada do wydrukowania na $1
jobs_all=Anuluj wszystkie zadania do wydrukowania
jobs_bytes=bajt體
jobs_test=Drukuj stron testow

cancel_ecannot=Nie masz uprawnie do anulowania zada
cancel_err=Nie uda硂 si anulowa zadania
cancel_egone=Zadanie $1 ju nie istnieje

view_ecannot=Nie masz uprawnie do ogl眃ania tego zadania
view_egone=To zadanie ju nie istnieje

start_ecannot=Nie masz uprawnie do uruchamiania zarz眃cy
start_err=Nie uda硂 si uruchomi zarz眃cy

stop_ecannot=Nie masz uprawnie do zatrzymywania zarz眃cy
stop_err=Nie uda硂 si zatrzyma zarz眃cy

restart_ecannot=Nie masz uprawnie do restartu zarz眃cy
restart_err=Nie uda硂 si zrestartowa zarz眃cy

webmin_none=Brak
webmin_nonemsg=Drukarka postscriptowa lub tekstowa
webmin_remotemsg=Drukarka zdalna
webmin_model=Model
webmin_prog=Program
webmin_driver=Sterownik Webmina
webmin_uniprint=Sterownik Uniprint
webmin_edrivers=Nie uda硂 si uzyska sterownika $1. Brak sterownik體 Webmina u縴waj眂ych ghostscripta.
webmin_egs=Komenda $1 nie znaleziona. Brak sterownik體 Webmina u縴waj眂ych ghostscripta.
webmin_edriver='$1' nie istnieje.

caldera_none=Brak
caldera_nonemsg=Drukarka zdalna lub nie przetwarzaj眂a
caldera_prog=Program
caldera_coas=Sterownik COAS
caldera_printer=Drukarka i&nbsp;rozdzielczo舵
caldera_eof=Wysy砤 EOF?
caldera_paper=Rozmiar papieru
caldera_double=Druk dwustronny?
caldera_gsopts=Dodatkowe parametry dla GS
caldera_uniprint=Sterownik Uniprint
caldera_eprog='$1' nie istnieje
caldera_edriver=Nie wybrano sterownika drukarki
caldera_eres=Nie wybrano rozdzielczo禼i

redhat_none=Brak
redhat_nonemsg=Drukarka postscriptowa lub tekstowa
redhat_prog=Program
redhat_driver=Sterownik Redhata
redhat_printer=Drukarka i&nbsp;rozdzielczo舵
redhat_eof=Wysy砤 EOF?
redhat_paper=Rozmiar papieru
redhat_pages=Liczba stron na stronie wydruku
redhat_gsopts=Dodatkowe parametry dla GS
redhat_hmargin=Prawy/lewy margines
redhat_vmargin=G髍ny/dolny margines
redhat_crlf=Usun辨 'schodki' w&nbsp;tek禼ie?
redhat_eprog='$1' nie istnieje
redhat_edriver=Nie wybrano sterownika drukarki
redhat_ehmargin=Nie podany lub niepoprawny prawy/lewy margines
redhat_evmargin=Nie podany lub niepoprawny g髍ny/dolny margines
redhat_eres=Nie wybrano rozdzielczo禼i

suse_none=Brak 
suse_nonemsg=Drukarka postscriptowa lub tekstowa
suse_prog=Program
suse_driver=Sterownik filtru APS
suse_printer=Typ drukarki
suse_res=Rozdzielczo舵 w&nbsp;DPI
suse_colour=Drukarka kolorowa?
suse_paper=Rozmiar papieru
suse_method=Rodzaj filtru
suse_auto=Automatyczny
suse_ascii=ASCII
suse_raw=Brak
suse_extra=Dodatkowe opcje dla ghostscripta
suse_yast2=sterownik YAST2
suse_edriver=Nie wybrano rodzaju drukarki
suse_eres=Nie podana lub niepoprawna rozdzielczo舵

estop=Nie uda硂 si zatrzyma lpd&nbsp;: $1

acl_printers=Drukarki, kt髍e ten u縴tkownik mo縠 konfigurowa
acl_add=Mo縠 dodawa nowe drukarki?
acl_cancel=Mo縠 anulowa zadania do drukowania?
acl_stop=Mo縠 zatrzymywa i&nbsp;uruchamia zarz眃c?
acl_restart=Tylko restart
acl_listed=Tylko na zaznaczonych drukarkach ..
acl_pall=Wszystkie drukarki
acl_psel=Wybrane..
acl_view=Pokazywa niekonfigurowalne drukarki?
acl_test=Mo縠 drukowa strony testowe?

log_stop=Zatrzymano zarz眃c kolejek drukowania
log_start=Uruchomiono zarz眃c kolejek drukowania
log_restart=Zrestartowano zarz眃c kolejek drukowania
log_cancel_job=Anulowano zadanie drukowania $2 na $1
log_cancel_all=Anulowano wszystkie zadania drukowania na $1
log_create=Utworzono drukark $1 na $2
log_modify=Usuni阾o drukark $1 na $2
log_delete=Deleted drukark $1 na $2
log_create_l=Utworzono drukark $3 $1 na $2
log_modify_l=Zmieniono drukark $3 $1 na $2
log_delete_l=Usuni阾o drukark $3 $1 na $2

linux_paralel=Port r體noleg硑 $1
linux_serial=Port szeregowy $1 (COM$1)
linux_null=Urz眃zenie null
linux_usb=Drukarka USB $1

freebsd_paralel=Port r體noleg硑
freebsd_serial=Port szeregowy $1 (COM$1)

openbsd_paralel=Port r體noleg硑
openbsd_serial=Port szeregowy $1 (COM$1)

unixware_paralel=Port r體noleg硑 $1
unixware_serial=Port szeregowy $1
unixware_null=Urz眃zenie null

hpux_paralel=Port r體noleg硑 $1
hpux_serial=Port szeregowy $1
hpux_null=Urz眃zenie null

lprng_paralel=Port r體noleg硑 $1
lprng_serial=Port szeregowy $1 (COM$1)
lprng_null=Urz眃zenie null

solaris_paralel=Port r體noleg硑
solaris_uparalel=Port r體noleg硑 Ultra 5/10
solaris_serial=Port szeregowy $1
solaris_null=Urz眃zenie null

test_title=Druk strony testowej
test_ecannot=Nie masz uprawnie do drukowania stron testowych
test_desc=Za pomoc tego formularza mo縠sz wydrukowa stron testow na drukarce $1. Wybierz rodzaj drukowanej strony&nbsp;:
test_0=Czarno-bia砤 strona postscriptowa
test_1=Kolorowa strona postscriptowa
test_2=Strona tekstowa ASCII
test_3=Dowolny przes砤ny plik
test_print=Drukuj stron
test_exec=Trwa drukowanie strony testowej za pomoc polecenia $1 ..
test_failed=.. polecenie zako馽zy硂 si niepowodzeniem!
test_ok=.. polecenie wykonano.

cups_none=Brak
cups_nonemsg=Drukarka zdalna lub nie przetwarzaj眂a
cups_prog=Program
cups_driver=Sterownik CUPS
0707010007785f000081a40000000000000002000000013ac0389a0000150a000000200000000000000000000000000000001600000003reloc/lpadmin/lang/pt index_title=Administra玢o de Impressoras
index_name=Impressora
index_desc=Descri玢o
index_to=Imprimir para
index_driver=Controlador
index_jobs=Tarefas
index_none=N鉶 est鉶 instaladas impressoras neste sistema
index_list=lista..
index_add=Adicionar nova impressora
index_stop=Parar Catalogador
index_stopmsg=Clique neste bot鉶 para parar o processo em curso do catalogador da impressora. Isto prevenir que qualquer utilizador local ou remoto imprima no seu sistema.
index_start=Iniciar Catalogador
index_startmsg=Clique neste bot鉶 para iniciar o processo do catalogador da impressora. Isto permitir que qualquer utilizador local ou remoto imprima no seu sistema.
index_return=lista de impressoras

edit_eedit=Voc n鉶 est autorizado para editar esta impressora
edit_eadd=Voc n鉶 est autorizado para adicionar impressoras
edit_add=Criar Impressora
edit_edit=Editar Impressora
edit_conf=Configura玢o da Impressora
edit_name=Nome
edit_acc=Aceitar requerimentos?
edit_why=N鉶 - Porque n鉶
edit_desc=Descri玢o
edit_ena=Impress鉶 activada?
edit_acl=Controlo de acesso
edit_allow=Permitir a todos
edit_deny=Negar a todos
edit_allowu=Permitir a utilizadores listados..
edit_denyu=Negar a utilizadores listados..
edit_banner=Imprimir p醙ina de cabe鏰lho?
edit_opt=Opcional
edit_default=Impressora predefinida?
edit_already=Esta j  a impressora predefinida
edit_max=Tamanho m醲imo das tarefas de impress鉶
edit_dacc=O controlador aceita
edit_dtext=Texto
edit_dpost=Postscript
edit_dother=Outros
edit_alt=Nomes alternativos da impressora
edit_dest=Destino da impress鉶
edit_dev=Dispositivo local
edit_file=Ficheiro local
edit_remote=Servidor Unix remoto
edit_rqueue=Impressora
edit_type=Tipo
edit_smb=Servidor Windows remoto
edit_share=Impressora
edit_user=Utilizador
edit_pass=Password
edit_wgroup=Grupo de Trabalho
edit_hpnp=Servidor HPNP remoto
edit_port=Porta
edit_driver=Controlador da impressora

blocks=blocos

save_err=Erro ao guardar impressora
save_eadd=Voc n鉶 est autorizado para adicionar impressoras
save_eedit=Voc n鉶 est autorizado para editar esta impressora
save_ename='$1' n鉶 um nome de impressora v醠ido
save_edup=J existe uma impressora denominada '$1'
save_eallow=N鉶 foram intruduzidos utilizadorores para autorizar
save_edeny=N鉶 foram intruduzidos utilizadorores para negar
save_euser=O utilizador '$1' n鉶 existe
save_etype=Voc deve introduzir pelos menos um tipo para ser aceite por este controlador
save_emax=O tamanho m醲imo da tarefa de impress鉶 tem de ser um inteiro
save_efile='$1' n鉶 existe
save_erhost=O anfitri鉶 remoto '$1' n鉶 existe
save_erqueue='$1' n鉶  um nome de fila de trabalho remota v醠ida
save_eremote=Os controladores n鉶 podem ser usados um impressoras Unix remotas

jobs_title=Tarefas de Impress鉶
jobs_header=Tarefas de impress鉶 em $1
jobs_id=ID da tarefa
jobs_size=Tamanho
jobs_by=Submetido Por
jobs_when=Submetido 鄐
jobs_file=Nome do Ficheiro
jobs_cancel=Clique num ID de tarefa da lista acima para cancelar.
jobs_none=N鉶 h tarefas de impress鉶 em $1

cancel_ecannot=Voc n鉶 est autorizado para cancelar tarefas de impress鉶
cancel_err=Erro ao cancelar a tarefa de impress鉶
cancel_egone=A tarefa de impress鉶 $1 j n鉶 existe

start_ecannot=Voc n鉶 est autorizado para iniciar o catalogador
start_err=Erro ao iniciar o catalogador

stop_ecannot=Voc n鉶 est autorizado para parar o catalogador
stop_err=Erro ao parar o catalogador

webmin_none=Nenhum
webmin_nonemsg=Impressora postscript ou de texto
webmin_remotemsg=Impressora remota
webmin_model=Modelo
webmin_prog=Programa
webmin_driver=Controlador do Webmin
webmin_uniprint=Controlador de uni-impress鉶
webmin_edrivers=Erro ao obter controladores de $1. Os controladores de impress鉶 do Webmin que utilizem ghostscript n鉶 estar鉶 dispon韛eis
webmin_egs=O comando $1 n鉶 foi encontrado. Os controladores de impress鉶 do Webmin que utilizem ghostscript n鉶 estar鉶 dispon韛eis
webmin_edriver='$1' n鉶 existe

caldera_none=Nenhum
caldera_nonemsg=Impressora remota ou sem buffer
caldera_prog=Programa
caldera_coas=Controlador COAS
caldera_printer=Impressora e resolu玢o
caldera_eof=Enviar fim-de-ficheiro (EOF)?
caldera_paper=Dimens鮡s do papel
caldera_double=Imprimir nos dois lados?
caldera_gsopts=Op珲es GS adicionais
caldera_uniprint=Controlador de uni-impress鉶
caldera_eprog='$1' n鉶 existe
caldera_edriver=N鉶 foi seleccionado nenhum controlador de impress鉶
caldera_eres=N鉶 seleccionada nenhuma resolu玢o

redhat_none=Nenhum
redhat_nonemsg=Impressora postscript ou de texto
redhat_prog=Programa
redhat_driver=Controlador do Redhat
redhat_printer=Impressora e resolu玢o
redhat_eof=Enviar fim-de-ficheiro (EOF)?
redhat_paper=Dimens鮡s do papel
redhat_pages=P醙inas por p醙ina de sa韉a
redhat_gsopts=Op珲es GS adicionais
redhat_hmargin=Margem direita/esquerda
redhat_vmargin=Margem superior/inferior
redhat_crlf=Corrigir o texto em modo avan鏾-escalonado (stair-stepping)?
redhat_eprog='$1' n鉶 existe
redhat_edriver=N鉶 foi seleccionado nenhum controlador de impress鉶
redhat_ehmargin=Margem direita/esquerda inv醠ida ou em falta
redhat_evmargin=Margem superior/inferior inv醠ida ou em falta
redhat_eres=No resolution selected N鉶 foi seleccionada nehuma resolu玢o

acl_printers=Impressoras que este utilizador pode configuar
acl_add=Pode adicionar novas impressoras?
acl_cancel=Pode cancelar tarefas de impres鉶?
acl_stop=Pode para ou iniciar o catalogador?
  07070100077860000081a40000000000000002000000013ac0389a000012b0000000200000000000000000000000000000001900000003reloc/lpadmin/lang/ru_RU  redhat_driver=酿嚅忮 Redhat
save_err=硒栳赅 镳 耦躔囗屙梃 镳桧蝈疣
edit_banner=襄鬣蜞螯 玎泐腩忸?
edit_wgroup=朽犷鬣 沭箫镟
redhat_eof=项覃豚螯 EOF?
save_edup=橡桧蝈  桁屙屐 '$1' 箧 耋耱怏弪
edit_user=项朦珙忄蝈朦
cancel_egone=青溧龛 磬 镥鬣螯 $1 犷滕 礤 耋耱怏弪
save_erhost=愉嚯屙睇 躅耱 '$1' 礤 耋耱怏弪
webmin_edrivers=硒栳赅 镳 篑镟眍怅 漯嚅忮疣  $1. 酿嚅忮瘥 镳桧蝈痤 铗 Webmin 桉镱朦珞桢 ghostscript 礤 漕耱箫睇.
jobs_size=朽珈屦
caldera_none=湾
save_erqueue='$1' 礤 怆弪 漕矬耱桁 桁屙屐 箐嚯屙眍 铟屦邃
redhat_nonemsg=Postscript 桦 蝈犟蝾恹 镳桧蝈
redhat_paper=朽珈屦 狍爨汨
save_euser=项朦珙忄蝈朦 '$1' 礤 耋耱怏弪
jobs_id=ID 玎溧龛
index_none=湾 镳桧蝈痤 篑蜞眍怆屙睇 磬 溧眄铋 耔耱屐
edit_ena=襄鬣螯 疣琊屮屙?
edit_dacc=酿嚅忮 镳桧桁噱
edit_dother=酿筱铄
save_eadd=锣 礤 疣琊屮屙 漕徉怆螯 镳桧蝈瘥
edit_max=锑犟. 疣珈屦 玎溧龛
index_return=耧桉铌 镳桧蝈痤
caldera_nonemsg=愉嚯屙睇 桦 '覃痤' 镳桧蝈
edit_conf=暑眙桡箴圉 橡桧蝈疣
webmin_model=填溴朦
index_driver=酿嚅忮
webmin_edriver='$1' 礤 耋耱怏弪
save_eremote=酿嚅忮瘥 礤 祛泱 桉镱朦珙忄蝰  箐嚯屙睇扈 Unix 镳桧蝈疣扈
index_stopmsg=袜骒栩 磬  觏铒牦 潆 铖蜞眍怅 疣犷蜞邈 耧箅屦 镥鬣蜩. 蒡 玎镳弪栩 腩赅朦睇  箐嚯屙睇 镱朦珙忄蝈 镥鬣蜞螯 磬 忄 耔耱屐.
webmin_none=湾
redhat_ehmargin=域屦 桦 礤忮痦 镳噔/脲恹 铗耱箫
redhat_pages=羊疣龛 磬 恹躅漤簋 耱疣龛鲶
caldera_eprog='$1' 礤 耋耱怏弪
redhat_hmargin=橡噔/脲恹 铗耱箫
jobs_none=湾 玎溧龛 磬 $1
edit_denyu=青镳弪栩 镥疱麒耠屙睇 镱朦珙忄蝈..
start_ecannot=锣 礤 疣琊屮屙 耱囵蝾忄螯 耧箅屦
edit_allowu=朽琊屮栩 镥疱麒耠屙睇 镱朦珙忄蝈..
edit_edit=绣溧牝桊钼囗桢 橡桧蝈疣
jobs_when=项耱噔脲眍
edit_port=项痱
index_desc=物桉囗桢
cancel_err=硒栳赅 镳 铗戾礤 玎溧龛 磬 镥鬣螯
webmin_nonemsg=Postscript 桦 蝈犟蝾恹 镳桧蝈
save_eedit=锣 礤 疣琊屮屙 疱溧牝桊钼囹 溧眄 镳桧蝈
index_add=念徉忤螯 眍恹 镳桧蝈
redhat_eres=湾 恹狃囗 疣琊屮屙桢
caldera_gsopts=念镱腠栩咫 镟疣戾蝠 GS
edit_deny=青镳弪栩 怦屐
redhat_crlf=锐镳噔螯 蝈犟-脲皴黻铋?
edit_dev=祟赅朦眍 篑蝠铋耱忸
stop_err=硒栳赅 镳 铖蜞眍怅 耧箅屦
acl_add=填驽 漕徉怆螯 眍恹 镳桧蝈瘥?
edit_opt=湾钺玎蝈朦眍
edit_hpnp=愉嚯屙睇 皴疴屦 HPNP
save_edeny=湾 忖邃屙 龛 钿眍泐 玎镳妁屙眍泐 镱朦珙忄蝈
save_emax=锑犟. 疣珈屦 玎溧龛 磬 镥鬣螯 漕腈屙 猁螯 鲥臌
edit_desc=物桉囗桢
save_eallow=湾 忖邃屙 龛 钿眍泐 疣琊屮屙眍泐 镱朦珙忄蝈
edit_dest=玉蝠铋耱忸 镥鬣蜩
index_stop=务蜞眍忤螯 扬箅屦
edit_smb=愉嚯屙睇 皴疴屦 Windows
caldera_paper=朽珈屦 狍爨汨
cancel_ecannot=锣 礤 疣琊屮屙 铗戾螯 玎溧龛 磬 镥鬣螯
edit_rqueue=橡桧蝈
redhat_evmargin=域屦 桦 礤忮痦 忮瘐龛/龛骓栝 铗耱箫
jobs_cancel=袜骒栩 磬 ID 玎溧龛 桤 耧桉赅 龛驽 潆 箐嚯屙 邈 桤 铟屦邃.
caldera_eres=湾 恹狃囗 疣琊屮屙桢
edit_why=湾 - 项麇祗
redhat_prog=橡钽疣祆
webmin_egs=暑爨礓 $1 礤 磬殇屙. 酿嚅忮瘥 镳桧蝈痤 铗 Webmin 桉镱朦珞桢 ghostscript 礤 漕耱箫睇.
edit_file=祟赅朦睇 羿殡
index_start=羊囵蝾忄螯 扬箅屦
stop_ecannot=锣 礤 疣琊屮屙 铖蜞磬怆桠囹 耧箅屦
redhat_printer=橡桧蝈  疣琊屮屙桢
redhat_vmargin=洛瘐龛/龛骓栝 铗耱箫
webmin_remotemsg=愉嚯屙睇 镳桧蝈
redhat_gsopts=念镱腠栩咫 镟疣戾蝠 GS
index_name=橡桧蝈
caldera_double=襄鬣蜞螯  溻篚 耱铕铐?
jobs_header=青溧龛 潆 镥鬣蜩 磬 $1
index_title=语疣怆屙桢 橡桧蝈疣扈
save_efile='$1' 礤 耋耱怏弪
webmin_driver=酿嚅忮 Webmin
edit_eadd=锣 礤 疣琊屮屙 漕徉怆螯 镳桧蝈瘥
start_err=硒栳赅 镳 耱囵蝈 耧箅屦
blocks=犭铌钼
index_startmsg=袜骒栩 磬  觏铒牦 潆 耱囵蜞 耧箅屦 镥鬣蜩. 蒡 镱玮铍栩 腩赅朦睇  箐嚯屙睇 镱朦珙忄蝈 镥鬣蜞螯 磬 忄 耔耱屐.
jobs_file=褥 脏殡
jobs_title=青溧龛 潆 襄鬣蜩
index_jobs=青溧龛
acl_printers=橡桧蝈瘥 漕耱箫睇 潆 磬耱痤殛 溧眄铎 镱朦珙忄蝈膻
edit_dtext=义犟
caldera_printer=橡桧蝈  疣琊屮屙桢
edit_allow=朽琊屮栩 怦屐
edit_already=渔 怆弪 镳桧蝈痤 镱 箪铍鬣龛
edit_remote=愉嚯屙睇 皴疴屦 Unix
index_to=襄鬣蜞弪 磬
edit_name=褥
edit_driver=酿嚅忮 橡桧蝈疣
caldera_prog=橡钽疣祆
edit_dpost=Postscript
edit_default=橡桧蝈 镱 箪铍鬣龛?
edit_acc=橡桧桁噱 玎镳铖?
edit_eedit=锣 礤 疣琊屮屙 疱溧牝桊钼囹 溧眄 镳桧蝈
save_ename='$1' 礤 怆弪 漕矬耱桁 桁屙屐 镳桧蝈疣
edit_acl=语疣怆屙桢 漕耱箫铎
edit_add=杨玟囗桢 橡桧蝈疣
redhat_eprog='$1' 礤 耋耱怏弪
caldera_coas=酿嚅忮 COAS
edit_type=诣
acl_cancel=填驽 镳屦囹 玎溧龛 磬 镥鬣螯?
edit_share=橡桧蝈
caldera_eof=项覃豚螯 EOF?
redhat_edriver=湾 恹狃囗 漯嚅忮 镳桧蝈疣
redhat_none=湾
index_list=耧桉铌..
save_etype=蔓 漕腈睇 恹狃囹 躅猁 钿桧 蜩 耦溴疰桁钽 镳桧桁噱祛泐 溧眄 漯嚅忮痤
acl_stop=填驽 铖蜞磬怆桠囹 桦 耱囵蝾忄螯 耧箅屦?
edit_pass=相痤朦
edit_alt=离屦磬蜩忭 桁屙 镳桧蝈疣
webmin_prog=橡钽疣祆
caldera_edriver=湾 恹狃囗 漯嚅忮 镳桧蝈疣
jobs_by=项耱噔桦
07070100077861000081a40000000000000002000000013ac0389a000012bc000000200000000000000000000000000000001900000003reloc/lpadmin/lang/ru_SU  index_title=跣伊滋盼膳 鹨晌耘伊蜕
index_name=鹨晌耘
index_desc=镄捎廖膳
index_to=鹋蘖粤旁 瘟
index_driver=湟潦着
index_jobs=牧紊
index_none=钆 幸晌耘蚁 沼粤蜗滋盼钨 瘟 牧挝鲜 由釉磐
index_list=有捎纤..
index_add=湎铝咨载 蜗踪 幸晌耘
index_stop=镉粤蜗咨载 笮仗乓
index_stopmsg=盍滞稍 瘟 茉 宋闲苏 奶 嫌粤蜗姿 伊孪粤垒徘 有仗乓 信蘖陨.  诹幸旁稍 滔肆特钨  漳撂盼钨 邢特谙琢耘萄 信蘖粤载 瘟 琢叟 由釉磐.
index_start=笤烈韵琢载 笮仗乓
index_startmsg=盍滞稍 瘟 茉 宋闲苏 奶 釉烈粤 有仗乓 信蘖陨.  邢谧咸稍 滔肆特钨  漳撂盼钨 邢特谙琢耘萄 信蘖粤载 瘟 琢叟 由釉磐.
index_return=有捎纤 幸晌耘蚁

edit_eedit=髁 闻 伊谝袍盼 遗牧嗽梢献猎 牧挝偈 幸晌耘
edit_eadd=髁 闻 伊谝袍盼 南铝滋言 幸晌耘屹
edit_add=笙谀廖膳 鹨晌耘伊
edit_edit=蚺牧嗽梢献廖膳 鹨晌耘伊
edit_conf=胂纹汕找撩裳 鹨晌耘伊
edit_name=橥
edit_acc=鹨晌赏僚 诹幸嫌?
edit_why=钆 - 鹣夼驼
edit_desc=镄捎廖膳
edit_ena=鹋蘖载 伊谝袍盼?
edit_acl=跣伊滋盼膳 南釉招贤
edit_allow=蛄谝袍稍 子磐
edit_deny=幸旁稍 子磐
edit_allowu=蛄谝袍稍 信遗奚犹盼钨 邢特谙琢耘萄..
edit_denyu=幸旁稍 信遗奚犹盼钨 邢特谙琢耘萄..
edit_banner=鹋蘖粤载 诹窍滔紫?
edit_opt=钆下掩猎盘匚
edit_default=鹨晌耘 邢 胀咸蘖紊?
edit_already=踔 炎萄旁友 幸晌耘蚁 邢 胀咸蘖紊
edit_max=砹擞. 伊谕乓 诹牧紊
edit_dacc=湟潦着 幸晌赏僚
edit_dtext=襞擞
edit_dpost=Postscript
edit_dother=湟涨吓
edit_alt=崽卦乓瘟陨孜倥 赏盼 幸晌耘伊
edit_dest=跤砸鲜釉紫 信蘖陨
edit_dev=煜肆特蜗 沼砸鲜釉紫
edit_file=煜肆特钨 屏侍
edit_remote=跄撂盼钨 优易乓 Unix
edit_rqueue=鹨晌耘
edit_type=羯
edit_smb=跄撂盼钨 优易乓 Windows
edit_share=鹨晌耘
edit_user=鹣特谙琢耘特
edit_pass=鹆蚁特
edit_wgroup=蛄孪蘖 且招辛
edit_hpnp=跄撂盼钨 优易乓 HPNP
edit_port=鹣以
edit_driver=湟潦着 鹨晌耘伊

blocks=绿纤献

save_err=镗陕肆 幸 酉纫廖盼缮 幸晌耘伊
save_eadd=髁 闻 伊谝袍盼 南铝滋言 幸晌耘屹
save_eedit=髁 闻 伊谝袍盼 遗牧嗽梢献猎 牧挝偈 幸晌耘
save_ename='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 幸晌耘伊
save_edup=鹨晌耘  赏盼磐 '$1' 罩 诱菖釉渍旁
save_eallow=钆 鬃拍盼 紊 夏蜗窍 伊谝袍盼蜗窍 邢特谙琢耘萄
save_edeny=钆 鬃拍盼 紊 夏蜗窍 诹幸泡盼蜗窍 邢特谙琢耘萄
save_euser=鹣特谙琢耘特 '$1' 闻 诱菖釉渍旁
save_etype=髻 南讨钨 踪乱猎 认匝沦 夏晌 陨 酉呐抑赏锨 幸晌赏僚拖窍 牧挝偻 囊潦着蚁
save_emax=砹擞. 伊谕乓 诹牧紊 瘟 信蘖载 南讨盼 沦载 门藤
save_efile='$1' 闻 诱菖釉渍旁
save_erhost=跄撂盼钨 认釉 '$1' 闻 诱菖釉渍旁
save_erqueue='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 漳撂盼蜗 限乓拍
save_eremote=湟潦着屹 闻 拖钦 捎邢特谙琢杂  漳撂盼钨蜕 Unix 幸晌耘伊蜕

jobs_title=牧紊 奶 鹋蘖陨
jobs_header=牧紊 奶 信蘖陨 瘟 $1
jobs_id=ID 诹牧紊
jobs_size=蛄谕乓
jobs_by=鹣釉磷商
jobs_when=鹣釉磷膛蜗
jobs_file=橥 媪侍
jobs_cancel=盍滞稍 瘟 ID 诹牧紊 哨 有捎肆 紊峙 奶 漳撂盼裳 徘 哨 限乓拍.
jobs_none=钆 诹牧紊 瘟 $1

cancel_ecannot=髁 闻 伊谝袍盼 显团窝载 诹牧紊 瘟 信蘖载
cancel_err=镗陕肆 幸 显团闻 诹牧紊 瘟 信蘖载
cancel_egone=牧紊 瘟 信蘖载 $1 孪疼 闻 诱菖釉渍旁

start_ecannot=髁 闻 伊谝袍盼 釉烈韵琢载 有仗乓
start_err=镗陕肆 幸 釉烈耘 有仗乓

stop_ecannot=髁 闻 伊谝袍盼 嫌粤瘟滋勺猎 有仗乓
stop_err=镗陕肆 幸 嫌粤蜗姿 有仗乓

webmin_none=钆
webmin_nonemsg=Postscript 商 耘擞韵踪 幸晌耘
webmin_remotemsg=跄撂盼钨 幸晌耘
webmin_model=硐呐特
webmin_prog=鹨锨伊屯
webmin_driver=湟潦着 Webmin
webmin_edrivers=镗陕肆 幸 沼辛蜗姿 囊潦着伊  $1. 湟潦着屹 幸晌耘蚁 显 Webmin 捎邢特谡垒膳 ghostscript 闻 南釉招钨.
webmin_egs=胂土文 $1 闻 瘟誓盼. 湟潦着屹 幸晌耘蚁 显 Webmin 捎邢特谡垒膳 ghostscript 闻 南釉招钨.
webmin_edriver='$1' 闻 诱菖釉渍旁

caldera_none=钆
caldera_nonemsg=跄撂盼钨 商 '淤蚁' 幸晌耘
caldera_prog=鹨锨伊屯
caldera_coas=湟潦着 COAS
caldera_printer=鹨晌耘  伊谝袍盼膳
caldera_eof=鹣淤塘载 EOF?
caldera_paper=蛄谕乓 抡土巧
caldera_double=鹋蘖粤载  淖杖 釉弦衔?
caldera_gsopts=湎邢涛稍盘匚倥 辛伊团砸 GS
caldera_eprog='$1' 闻 诱菖釉渍旁
caldera_edriver=钆 踪乱廖 囊潦着 幸晌耘伊
caldera_eres=钆 踪乱廖 伊谝袍盼膳

redhat_none=钆
redhat_nonemsg=Postscript 商 耘擞韵踪 幸晌耘
redhat_prog=鹨锨伊屯
redhat_driver=湟潦着 Redhat
redhat_printer=鹨晌耘  伊谝袍盼膳
redhat_eof=鹣淤塘载 EOF?
redhat_paper=蛄谕乓 抡土巧
redhat_pages=笤伊紊 瘟 踪认奈绽 釉伊紊谜
redhat_gsopts=湎邢涛稍盘匚倥 辛伊团砸 GS
redhat_hmargin=鹨磷偈/膛踪 显釉招
redhat_vmargin=髋胰紊/紊治墒 显釉招
redhat_crlf=橛幸磷萄载 耘擞-膛优嗡鲜?
redhat_eprog='$1' 闻 诱菖釉渍旁
redhat_edriver=钆 踪乱廖 囊潦着 幸晌耘伊
redhat_ehmargin=踉乓盐 商 闻着椅偈 幸磷偈/膛踪 显釉招
redhat_evmargin=踉乓盐 商 闻着椅偈 着胰紊/紊治墒 显釉招
redhat_eres=钆 踪乱廖 伊谝袍盼膳

acl_printers=鹨晌耘屹 南釉招钨 奶 瘟釉蚁仕 牧挝贤 邢特谙琢耘汤
acl_add=硐峙 南铝滋言 蜗踪 幸晌耘屹?
acl_cancel=硐峙 幸乓僮猎 诹牧紊 瘟 信蘖载?
acl_stop=硐峙 嫌粤瘟滋勺猎 商 釉烈韵琢载 有仗乓?

07070100077862000081a40000000000000002000000013ac0389a00001ea7000000200000000000000000000000000000001600000003reloc/lpadmin/lang/sv index_title=Skrivaradministration
index_name=Skrivare
index_desc=Beskrivning
index_to=Skriv till
index_driver=Drivrutin
index_enabled=Aktiverad?
index_accepting=Tar emot jobb?
index_jobs=Jobb
index_none=Ingen skrivare har installerats p detta system
index_list=lista ...
index_add=L鋑g till skrivare
index_stop=Stanna skrivarservern
index_stopmsg=Tryck p denna knapp f鰎 att stanna den aktiva skrivarserverprocessen. Detta hindrar alla lokala och fj鋜rinloggade anv鋘dare att skriva ut p ditt system.
index_start=Starta skrivarservern
index_startmsg=Tryck p denna knapp f鰎 att starta skrivarserverprocessen. Detta till錿er lokala och fj鋜rinloggade anv鋘dare att skriva ut p ditt system.
index_restart=Starta om skrivarservern
index_restartmsg=Tryck p denna knapp f鰎 att starta om skrivarserverprocessen. Detta g鰎 s att de aktuella skrivarinst鋖lningarna tas i drift.
index_return=skrivarlista

edit_eedit=Du f錼 inte 鋘dra n錱ot f鰎 denna skrivare
edit_eadd=Du f錼 inte l鋑ga till skrivare
edit_add=Ny skrivare
edit_edit=膎dra inst鋖lningar f鰎 skrivare
edit_conf=Skrivarinst鋖lningar
edit_name=Namn
edit_acc=Till錿a f鰎fr錱ningar?
edit_why=Nej - varf鰎 inte
edit_desc=Beskrivning
edit_ena=Utskrift m鰆lig?
edit_acl=舤komstkontroll
edit_allow=Till錿 alla
edit_deny=F鰎bjud alla
edit_allowu=Till錿 f鰈jande anv鋘dare ...
edit_denyu=F鰎bjud f鰈jande anv鋘dare ...
edit_direct=Direkt TCP-f鰎bindelse
edit_dport=Port
edit_banner=Skriva ut f鰎s鋞tsblad?
edit_opt=Valfritt
edit_default=Standardskrivare?
edit_already=Den 鋜 redan standardskrivare
edit_max=Maximal utskriftstorlek
edit_unlimited=Obegr鋘sad
edit_dacc=S mycket som drivrutinen till錿er
edit_dtext=Text
edit_dpost=Postscript
edit_dother=Annat
edit_alt=Alternativa skrivarnamn
edit_dest=Skriv till
edit_dev=Lokal enhet
edit_file=Lokal fil
edit_remote=Annan Unix-server
edit_rqueue=Skrivare
edit_type=Typ
edit_smb=Annan Windows-server
edit_share=Skrivare
edit_user=Anv鋘dare
edit_pass=L鰏enord
edit_wgroup=Grupp
edit_hpnp=Annan HPNP-server
edit_port=Port
edit_driver=Skrivardrivrutin
edit_check=Kontrollera om servern 鋜 uppe?

blocks=block

save_err=Det gick inte att spara skrivaren
save_eadd=Du f錼 inte l鋑ga till skrivare
save_eedit=Du f錼 inte 鋘dra n錱ot f鰎 denna skrivare
save_ename='$1' 鋜 inte ett giltigt skrivarnamn
save_edup=Det finns redan en skrivare som heter '$1'
save_eallow=Du har inte angivit n錱ra anv鋘dare som till錿s skriva ut
save_edeny=Du har inte angivit n錱ra anv鋘dare som f鰎bjuds skriva ut
save_euser=Anv鋘dare '$1' finns inte
save_etype=Du m錽te v鋖ja minst en typ som drivrutinen klarar av
save_emax=Maximal utskriftstorlek ska anges som ett heltal
save_efile='$1' finns inte
save_erhost=Server '$1' finns inte
save_edhost=Datorn '$1' finns inte
save_edport=Port f鰎 direkt f鰎bindelse saknas eller 鋜 ogiltig
save_erqueue='$1' 鋜 inte ett giltigt serverk鰊amn
save_eremote=Det g錼 inte att anv鋘da drivrutiner tillsammans med andra Unix-skrivare

jobs_title=Visa utskriftsjobb
jobs_header=Visa utskriftsjobb f鰎 $1
jobs_id=Jobb-ID
jobs_size=Storlek
jobs_by=Skickat av
jobs_when=Skickat
jobs_file=Filnamn
jobs_cancel=V鋖j ett jobb-ID fr錸 listan f鰎 att avbryta det.
jobs_cancelview=V鋖j ett jobb-ID fr錸 listan f鰎 att avbryta det eller klicka p jobbstorleken f鰎 att visa jobbet.
jobs_none=Inga utskriftsjobb p $1
jobs_all=Avbryt alla utskriftsjobb
jobs_bytes=bytes
jobs_test=G鰎 testutskrift

cancel_ecannot=Du f錼 inte avbryta utskriftsjobb
cancel_err=Det gick inte att avbryta utskriftsjobb
cancel_egone=Utskriftsjobb $1 finns inte l鋘gre

view_ecannot=Du f錼 inte titta p detta utskriftsjobb
view_egone=Detta utskriftsjobb finns inte l鋘gre

start_ecannot=Du f錼 inte starta skrivarservern
start_err=Det gick inte att starta skrivarservern

stop_ecannot=Du f錼 inte stoppa skrivarservern
stop_err=Det gick inte att stoppa skrivarservern

restart_ecannot=Du f錼 inte starta om skrivarservern
restart_err=Det gick inte att starta om skrivarservern

webmin_none=Ingen
webmin_nonemsg=Postscript eller textskrivare
webmin_remotemsg=Annan skrivare
webmin_model=Modell
webmin_prog=Program
webmin_driver=Webmin-drivrutin
webmin_uniprint=Uniprint-drivrutin
webmin_edrivers=Det gick inte att h鋗ta drivrutiner fr錸 $1. Det finns ingen tillg鋘glig Webmin-skrivardrivrutin som k鰎 ghostscript
webmin_egs=Kommandot $1 kunde inte hittas. Det finns ingen tillg鋘glig Webmin-skrivardrivrutin som k鰎 ghostscript
webmin_edriver='$1' finns inte

caldera_none=Ingen
caldera_nonemsg=Fj鋜r- eller r skrivare
caldera_prog=Program
caldera_coas=COAS-drivrutin
caldera_printer=Skrivare och uppl鰏ning
caldera_eof=Skicka EOF?
caldera_paper=Pappersstorlek
caldera_double=Dubbelsidig utskrift?
caldera_gsopts=Fler GS-inst鋖lningar
caldera_uniprint=Uniprint-drivrutin
caldera_eprog='$1' finns inte
caldera_edriver=Du har inte angivit n錱on skrivardrivrutin
caldera_eres=Du har inte angivit n錱on uppl鰏ning

redhat_none=Ingen
redhat_nonemsg=Postscript eller textskrivare
redhat_prog=Program
redhat_driver=Redhat-drivrutin
redhat_printer=Skrivare och uppl鰏ning
redhat_eof=Skicka EOF?
redhat_paper=Pappersstorlek
redhat_pages=Sidor per utskriven sida
redhat_gsopts=Fler GS-inst鋖lningar
redhat_hmargin=H鰃er/v鋘stermarginal
redhat_vmargin=Marginal 鰒er/under
redhat_crlf=Inte 錿erg till b鰎jan av raden vid ny rad?
redhat_eprog='$1' finns inte
redhat_edriver=Du har inte angivit n錱on skrivardrivrutin
redhat_ehmargin=H鰃er/v鋘stermarginal saknas eller 鋜 ogiltig
redhat_evmargin=Marginal 鰒er/under saknas eller 鋜 ogiltig
redhat_eres=Du har inte angivit n錱on uppl鰏ning

suse_none=Ingen
suse_nonemsg=Postscript eller textskrivare
suse_prog=Program
suse_driver=APSfilter-drivrutin
suse_printer=Skrivartyp
suse_res=Uppl鰏ning i DPI
suse_colour=F鋜gskrivare?
suse_paper=Pappersstorlek
suse_method=Filtermetod
suse_auto=Automatisk
suse_ascii=ASCII

estop=Det gick inte att stoppa lpd: $1

acl_printers=Denna anv鋘dare f錼 konfigurera f鰈jande skrivare
acl_add=Kunna l鋑ga till skrivare?
acl_cancel=Kunna stoppa utskriftsjobb?
acl_stop=Kunna stoppa och starta skrivarservern?
acl_restart=Endast starta om
acl_listed=Endast p f鰈jande skrivare ...
acl_pall=Alla skrivare
acl_psel=Angivna ...
acl_view=Visa skrivare som inte kan konfigureras?
acl_test=Kunna g鰎a testutskrifter?

log_stop=Stoppade skrivarservern
log_start=Startade skrivarservern
log_restart=Startade om skrivarservern
log_cancel_job=Tog bort utskriftsjobb $2 p $1
log_cancel_all=Tog bort alla utskriftsjobb p $1
log_create=Lade till skrivare $1 p $2
log_modify=Modifierade skrivare $1 p $2
log_delete=Tog bort skrivare $1 p $2
log_create_l=Lade till $3 skrivare $1 p $2
log_modify_l=Modifierade $3 skrivare $1 p $2
log_delete_l=Tog bort $3 skrivare $1 p $2

linux_paralel=Parallellport $1
linux_serial=Serieport $1 (COM$1)
linux_null=Nollutg錸g
linux_usb=USB-skrivare $1

freebsd_paralel=Parallellport
freebsd_serial=Serieport $1 (COM$1)

openbsd_paralel=Parallellport
openbsd_serial=Serieport $1 (COM$1)

unixware_paralel=Parallellport $1
unixware_serial=Serieport $1
unixware_null=Nollutg錸g

hpux_paralel=Parallell $1
hpux_serial=Seriell $1
hpux_null=Nollutg錸g

lprng_paralel=Parallellport $1
lprng_serial=Serieport $1 (COM$1)
lprng_null=Nollutg錸g

solaris_paralel=Parallellport
solaris_uparalel=Ultra 5/10-parallellport
solaris_serial=Serieport $1
solaris_null=Nollutg錸g

test_title=G鰎 testutskrift
test_ecannot=Du f錼 inte g鰎a testutskrifter
test_desc=Med detta formul鋜 kan du g鰎a en testutskrift p skrivare $1. Ange vilken typ av utskrift du vill g鰎a:
test_0=Svartvit Postscript-sida
test_1=F鋜g-Postscript-sida
test_2=Ren ASCII-text
test_3=En nedladdad fil
test_print=Skriv ut
test_exec=Skriver ut testsidan med kommandot $1 ...
test_failed=... det gick inte.
test_ok=... klart.

cups_none=Ingen
cups_nonemsg=Remote or raw printer
cups_prog=Program
cups_driver=CUPS-drivrutin
 07070100077863000081a40000000000000002000000013ac0389a00001737000000200000000000000000000000000000001600000003reloc/lpadmin/lang/tr index_title=Yaz齝 Y鰊etimi
index_name=Yaz齝
index_desc=A琮klama
index_to=Yaz
index_driver=S黵點
index_enabled=Aktif mi?
index_accepting=Kabul ediyor mu?
index_jobs=蔺ler
index_none=Bu sistemde yaz齝 kurulmam
index_list=liste..
index_add=Yeni yaz齝 ekle
index_stop=Listeleyiciyi durdur
index_stopmsg=Bu butonu t齥layarak 鏰lan yaz齧 listeleme iemini durdurabilirsiniz.Bu sisteminizde yazd齬ma yapan yerel ya da uzak kullanc齦ar齨 yaz齧 ierini kesecektir
index_start=Listelemeyi Baat
index_startmsg=Bu butonu t齥layarak yaz齧 listeleme iemini baatabilirsiniz.Yerel ya da uzak kullan齝齦ar齨 sisteminizde yaz齧 iemi yapmas齨a izin verilecektir 
index_return=yaz齝 listesi

edit_eedit=Bu yaz齝齳 de餴⺶irmenize izininiz yoktur
edit_eadd=Yaz齝 eklemeye izininiz yoktur
edit_add=Yaz齝 Olu⺶ur
edit_edit=Yaz齝 De餴⺶ir
edit_conf=Yaz齝 Ayarlar
edit_name=輘im
edit_acc=輘tekler kabul edilsin?
edit_why=Hay齬 - Why not
edit_desc=A琮klama
edit_ena=Yazma yapabilsin?
edit_acl=輟in kontrol
edit_allow=Herbirine izin ver
edit_deny=Herbirini reddet
edit_allowu=Listlenmi kullan齝齦ar kabul et..
edit_denyu=Listlenmi kullan齝齦ar reddet..
edit_banner=Ba齥 yaz?
edit_opt=Se鏸me Ba餷
edit_default=謓tan齧l Yaz齝?
edit_already=Her zaman 鰊tan齧l yaz齝
edit_max=En 鏾k yaz齧 iem boyutu
edit_dacc=S黵點 kabulleri
edit_dtext=Yaz
edit_dpost=Postscript
edit_dother=Di餰r
edit_alt=Di餰r yaz齝 isimleri
edit_dest=Yaz齧 Hedefi
edit_dev=Yerel Ayg齮
edit_file=Yerel Dosya
edit_remote=Uzak Unix sunucusu
edit_rqueue=Yaz齝
edit_type=Tip
edit_smb=Uzak Windows sunucusu
edit_share=Yaz齝
edit_user=Kullan齝
edit_pass=Parola
edit_wgroup=Workgroup
edit_hpnp=Uzak HPNP sunucusu
edit_port=Port
edit_direct=Do餽udan TCP ba餷ant齭
edit_dport=Port
edit_driver=Yaz齝 S黵點黶

blocks=blok

save_err=Yaz齝齨齨 kaydedilesinde hata olu⺶u
save_eadd=Yaz齝 eklemenize izin verilmedi
save_eedit=Yaz齝 silmenize izin verilmedi
save_ename='$1' ge鏴rli bir yaz齝 ismi de餴l
save_edup='$1' yaz齝齭 her zaman mevcut
save_eallow=Giri㧐 izin verilecek kullan齝 yok
save_edeny=Giri㱮 reddedilecek kullan齝 yok
save_euser='$1' kullan齝齭 mevcut de餴l
save_etype=輟in verilecek s黵點 i鏸n en az bir tip se鏼elisiniz
save_emax=En 鏾k yazma i㱮 say齭 tamsay olarak verilmelidir
save_efile='$1' mevcu de餴l
save_erhost=Uzak makine '$1' mevcut de餴l
save_erqueue='$1' ge鏴rli bir uzak kuyruk ismi de餴l
save_eremote=S黵點黮er uzak Uni yaz齝齦ar ile kullan齦amazlar
save_edhost=Makine '$1' mevcut de餴l
save_edport=Kay齪 ya da yanl do餽udan port

jobs_title=Yazma 蔺leri
jobs_header=$1'deki Yazma 蔺leri
jobs_id=蔺 numaras
jobs_size=Boyut
jobs_by=G鰊derildi
jobs_when=G鰊derildi
jobs_file=Dosya 輘mi
jobs_cancel=Listeden iptal etmek i鏸n  i numaras se鏸niz
jobs_cancelview=Listeden iptal etmek i鏸n i numaras齨 ya da g鰎黱t黮emek i鏸n i boyutunu se鏸niz 
jobs_none=$1'de yazma i㱮 bulunamad
jobs_all=B黷黱 yazma iemleri iptal et

cancel_ecannot=Yazma ierini durdurmaya izininiz yoktur
cancel_err=Yazma i㱮nin durdurulmas齨da hata olu⺶u
cancel_egone=Yazma i㱮 $1 varolandan daha b鼀黭

view_ecannot=Bu yazma i㱮ni g鰎黱t黮emeye izininiz yoktur
view_egone=Yazma i㱮 varolandan daha b鼀黭

start_ecannot=Listeleyiciyi baatmaya izininiz yoktur
start_err=Listeleyicinin baat齦mas齨da hata olu⺶u

stop_ecannot=Listeleyiciyi durdurman齴a izininiz yoktur
stop_err=Listeleyicinin durdurulmas齨da hata olu⺶u

webmin_none=Hi鏱iri
webmin_nonemsg=Postscript ya da yaz yaz齝齭
webmin_remotemsg=Uzak yaz齝
webmin_model=Model
webmin_prog=Program
webmin_driver=Webmin s黵點黶
webmin_uniprint=Uniprint s黵點黶
webmin_edrivers=$1'den s黵點黮erin al齨mas齨da hata olu⺶u.Webmin yaz齝 s黵點黮erinin kulland postscript kullan齦abilir de餴ldir
webmin_egs=$1 komutu bulunamad.Webmin yaz齝 s黵點黮erinin kulland postscript kullan齦abilir de餴ldir
webmin_edriver='$1' mevcut de餴l

caldera_none=Hi鏱iri
caldera_nonemsg=Uzak ya da standart yaz齝
caldera_prog=Program
caldera_coas=COAS s黵點黶
caldera_printer=Yaz齝 ve 琏z黱黵l黭
caldera_eof=Dosya Sonu g鰊der?
caldera_paper=Ka瘕t boyu
caldera_double=Yaz齧 鏸ft tarafl?
caldera_gsopts=Eklenebilir GS se鏴nekleri
caldera_uniprint=Uniprint s黵點黶
caldera_eprog='$1' mevcut de餴l
caldera_edriver=Yaz齝 s黵點黶 se鏸lmedi
caldera_eres=泅z黱黵l黭 se鏸lmedi

redhat_none=Hi鏱iri
redhat_nonemsg=Postscript ya da yaz yaz齝齭
redhat_prog=Program
redhat_driver=Redhat s黵點黶
redhat_printer=Yaz齝 ve 琏z黱黵l黭
redhat_eof=Dosya Sonu g鰊der?
redhat_paper=Ka瘕t boyutu
redhat_pages=驱kt bana sayfa
redhat_gsopts=Eklenebilir GS se鏴nekleri
redhat_hmargin=Sa/sol bouk
redhat_vmargin=躶t/alt bouk
redhat_crlf=Basamak ad齧l yaz齦ar doldur
redhat_eprog='$1' mevcut de餴l
redhat_edriver=Yaz齝 s黵點黶 se鏸lmedi
redhat_ehmargin=Kay齪 ya da yanl sa/sol bouk
redhat_evmargin=Kay齪 ya da yanl 黶t/alt bouk
redhat_eres=泅z黱黵l黭 se鏸lmedi

suse_none=Hi鏱iri
suse_nonemsg=Postscript ya da d鼁 metin yaz齝齭
suse_prog=Program
suse_driver=APSFilter s黵點黶
suse_printer=Yaz齝 tipi
suse_res=DPI olarak 琏z黱黵l黭
suse_colour=Renkli yaz齝 m?
suse_paper=Ka瘕t boyutu
suse_method=Filtre metodu
suse_auto=Otomatik
suse_ascii=ASCII

estop=lpd'nin durdurulmas齨da hata olu⺶u: $1

acl_printers=Bu kullan齝 yaz齝齦ar ayarlayabilir
acl_add=Yeni yaz齝齦ar ekleyebilir?
acl_cancel=Yaz齧 ierini g鰎黱t黮eyebilir ya da durdurabilir?
acl_stop=Listelemeyi baat齪 durdurabilir?
acl_all=B黷黱 yaz齝齦arda
acl_listed=Sadece se鏸li yaz齝齦arda ..

log_stop=Yaz齝 planlay齝齭 durduruldu
log_start=Yaz齝 planlay齝齭 鏰lt齬齦d
log_cancel_job=$1'deki yaz齧 i㱮 $2 iptal edildi
log_cancel_all=$1'deki b黷黱 yaz齧 ieri iptal edildi
log_create=$2'de $1 yaz齝齭 olu⺶uruldu
log_modify=$2'de $1 yaz齝齭 de餴⺶irildi
log_delete=$2'de $1 yaz齝齭 silindi
log_create_l=$2'de $1 yaz齝齭 $3 olu⺶uruldu
log_modify_l=$2'de $1 yaz齝齭 $3 de餴⺶irildi
log_delete_l=$2'de $1 yaz齝齭 $3 silindi

 07070100077864000081a40000000000000002000000013ac0389a000013fd000000200000000000000000000000000000001900000003reloc/lpadmin/lang/zh_CN  index_title=打印机管理
index_name=打印机
index_desc=描述
index_to=打印到
index_driver=驱动
index_enabled=激活?
index_accepting=接受?
index_jobs=任务
index_none=这个系统没有安装打印机
index_list=列表..
index_add=添加一台新的打印机
index_stop=停止打印服务
index_stopmsg=点击这个按钮停止正在运行的打印服务. 这样会阻止任何本机和远程的用户在你的系统进行打印操作.
index_start=启动打印服务
index_startmsg=点击这个按钮启动打印服务.这样会允许本机和远程的用户在你的系统进行打印操作.
index_return=打印机列表

edit_eedit=你没有修改这台打印机的权限
edit_eadd=你没有添加打印机的权限
edit_add=创建打印机
edit_edit=修改打印机
edit_conf=打印机配置
edit_name=名字
edit_acc=接受请求吗?
edit_why=不-为什么不呢
edit_desc=描述
edit_ena=允许打印吗?
edit_acl=访问控制
edit_allow=允许任何人访问
edit_deny=禁止任何人访问
edit_allowu=允许列表中的用户访问..
edit_denyu=禁止列表中的用户访问..
edit_banner=打印横幅吗?
edit_opt=选项
edit_default=设为缺省打印机吗?
edit_already=已经是缺省打印机
edit_max=最大的打印任务容量
edit_dacc=接受驱动
edit_dtext=文本
edit_dpost=Postscript
edit_dother=其它
edit_alt=打印机别名
edit_dest=打印目标
edit_dev=本地设备
edit_file=本地文件
edit_remote=远程Unix服务器
edit_rqueue=打印机
edit_type=类型
edit_smb=远程Windows服务器
edit_share=打印机
edit_user=用户名
edit_pass=密  码
edit_wgroup=工作组
edit_hpnp=远程HPNP服务器
edit_port=端口
edit_direct=直接 TCP 联接
edit_dport=端口
edit_driver=打印机驱动

save_err=保存打印机配置失败
save_eadd=你没有添加打印机的权限
save_eedit=你没有修改打印机的权限
save_ename='$1'不是一个有效的打印机名
save_edup=已经存在一个名为'$1'的打印机
save_eallow=没有允许进入的用户
save_edeny=没有禁止进入的用户
save_euser=用户'$1'不存在
save_etype=你必须选择至少一个能被这个驱动所接受的类型
save_emax=最大的打印任务容量必须为整数
save_efile='$1'不存在
save_erhost=远程主机'$1'不存在
save_erqueue='$1'不是一个有效的远程队列名
save_eremote=这些驱动不能被远程Unix打印机所使用
save_edhost=直接联接的客户 '$1' 不存在
save_edport=丢失或无效的直接相连端口

jobs_title=打印任务
jobs_header=打印任务在$1
jobs_id=任务ID
jobs_size=大小
jobs_by=被提交
jobs_when=提交在
jobs_file=文件名
jobs_cancel=点击以上列表中的任务ID取消该任务.
jobs_cancelview=点击以上列表中的任务ID取消该任务,或者点击任务大小去查看具体内容.
jobs_none=在$1没有打印任务
jobs_all=取消所有的打印任务
jobs_bytes=字节

cancel_ecannot=你没有取消打印任务的权限
cancel_err=取消打印任务失败
cancel_egone=打印任务$1已不存在

view_ecannot=你不能观看这个打印任务
view_egone=这个打印任务已不存在

start_ecannot=你没有启动打印服务的权限
start_err=启动打印服务失败

stop_ecannot=你没有停止打印服务的权限
stop_err=停止打印服务失败

webmin_none=空
webmin_nonemsg=Postscripte或文本打印机
webmin_remotemsg=远程打印机
webmin_model=模型
webmin_prog=程序
webmin_driver=Webmin驱动
webmin_uniprint=统一打印驱动
webmin_edrivers=在$1得不到驱动,使用ghostscript的Webmin打印机驱动无效
webmin_egs=没有找到命令$1,使用ghostscript的Webmin打印机驱动无效
webmin_edriver='$1'不存在

caldera_none=空
caldera_nonemsg=远程或原始打印机
caldera_prog=程序
caldera_coas=COAS驱动
caldera_printer=打印机和分辨率
caldera_eof=发送EOF吗?
caldera_paper=纸张大小
caldera_double=打印double-sided吗?
caldera_gsopts=额外的GS选项
caldera_uniprint=统一打印驱动
caldera_eprog='$1'不存在
caldera_edriver=没有选择打印机驱动
caldera_eres=没有选择分辨率

redhat_none=空
redhat_nonemsg=Postscript或文本打印机
redhat_prog=程序
redhat_driver=Redhat驱动
redhat_printer=打印机和分辨率
redhat_eof=发送EOF吗?
redhat_paper=纸张大小
redhat_pages=每次输出的页面数量
redhat_gsopts=额外的GS选项
redhat_hmargin=左右缩进
redhat_vmargin=上下缩进
redhat_crlf=整理stair-stepping文本吗?
redhat_eprog='$1'不存在
redhat_edriver=没有选择打印机驱动
redhat_ehmargin=没有或无效的左右缩进
redhat_evmargin=没有或无效的上下缩进
redhat_eres=没有选择分辨率

suse_none=无
suse_nonemsg=Postscript 或文本打印机
suse_prog=程序
suse_driver=APS 过滤器驱动器
suse_printer=打印机类型
suse_res=DPI 分辨率
suse_colour=彩色打印机?
suse_paper=纸张大小
suse_method=过滤方式
suse_auto=自动
suse_ascii=ASCII

estop=停止 lpd : $1 失败

acl_printers=该用户可以配置打印机
acl_add=可以添加新的打印机?
acl_cancel=可以查看和取消打印任务?
acl_stop=可以停止或启动打印服务吗?
acl_listed=只对选定的打印机有效..
acl_pall=所有打印机
acl_psel=已选择的..
acl_view=显示不能配置的打印机?

log_stop=中断了打印队列
log_start=启动了打印队列
log_cancel_job=取消了 $1 上的打印任务 $2队列 $2
log_cancel_all=取消了 $1 上的所有打印任务
log_create=在 $2 上安装了创建打印机 $1
log_modify=在 $2 上更新了打印机 $1
log_delete=在 $2 上删除了打印机 $1
log_create_l=在 $2 上安装了 $3 打印机 $1
log_modify_l=在 $2 上更新了 $3 打印机 $1
log_delete_l=在 $2 上删除了 $3 打印机 $1

linux_paralel=并口 $1
linux_serial=串口 $1(COM$1)
linux_null=空设备
linux_usb=USB 打印机 $1

freebsd_paralel=并口
freebsd_serial=串口 $1(COM$1)

openbsd_paralel=并口
openbsd_serial=串口 $1(COM$1)

unixware_paralel=并口 $1
unixware_serial=串口 $1
unixware_null=空设备

hpux_paralel=并口 $1
hpux_serial=串口 $1
hpux_null=空设备

lprng_paralel=并口 $1
lprng_serial=串口 $1
lprng_null=空设备

solaris_paralel=并口 $1
solaris_uparalel=Ultra 5/10 并口
solaris_serial=串口 $1
solaris_null=空设备
   07070100077865000081a40000000000000002000000013ac0389a00000fda000000200000000000000000000000000000001e00000003reloc/lpadmin/lang/zh_TW.Big5 index_title=诀恨瞶
index_name=诀
index_desc=磞瓃
index_to=
index_driver=臱笆祘Α
index_jobs=
index_none=╰参⊿Τ杆诀
index_list=...
index_add=糤穝诀
index_stop=氨ゎ逼祘竟
index_stopmsg=硂秙氨ゎ磅︽い诀逼祘竟祘. 硂盢ňゎヴセ狠┪环狠ㄏノ眤╰参.
index_start=币笆逼祘竟
index_startmsg=硂秙竟笆诀逼祘竟祘. 硂盢す砛セ狠┪环狠ㄏノ眤╰参.
index_return=诀

edit_eedit=眤ぃ砆す砛絪胯硂诀
edit_eadd=眤ぃ砆す砛ミ诀
edit_add=ミ诀
edit_edit=絪胯诀
edit_conf=诀舱篈
edit_name=嘿
edit_acc=琌钡璶―?
edit_why= - ぃ
edit_desc=磞瓃
edit_ena=琌币笆?
edit_acl=北
edit_allow=す砛ヴ
edit_deny=┶荡ヴ
edit_allowu=す砛ㄏノ...
edit_denyu=┶荡ㄏノ...
edit_banner=琌夹肈?
edit_opt=獶眏┦
edit_default=琌箇砞诀?
edit_already=竒琌箇砞诀
edit_max=程
edit_dacc=钡臱笆祘Α
edit_dtext=ゅ
edit_dpost=Postscript
edit_dother=ㄤ
edit_alt=蠢诀嘿
edit_dest=ヘ夹
edit_dev=セ狠砞称
edit_file=セ狠郎
edit_remote=环狠 Unix 狝竟
edit_rqueue=诀
edit_type=摸
edit_smb=环狠 Windows 狝竟
edit_share=诀
edit_user=ㄏノ
edit_pass=盞絏
edit_wgroup=竤舱
edit_hpnp=环狠 HPNP 狝竟
edit_port=硄癟梆
edit_direct=钡 TCP 硈絬
edit_dport=硄癟梆
edit_driver=诀臱笆祘Α

blocks=跋遏

save_err=纗诀ア毖
save_eadd=眤ぃ砆す砛糤诀
save_eedit=眤ぃ砆す砛絪胯硂诀
save_ename='$1' ぃ琌Τ诀嘿
save_edup=诀嘿 '$1' 竒
save_eallow=⊿Τ块す砛ㄏノ
save_edeny=⊿Τ块┶荡ㄏノ
save_euser=ㄏノ '$1' ぃ
save_etype=眤ぶゲ斗块臱笆祘Α钡摸
save_emax=程ゲ斗琌俱计
save_efile='$1' ぃ
save_erhost=环狠诀 '$1' ぃ
save_erqueue='$1' ぃ琌Τ环狠诀︻嘿
save_eremote=臱笆祘Αぃノ环狠 Unix 诀
save_edhost=钡硈絬诀 '$1' ぃ
save_edport=框ア┪岿粇钡硈絬硄癟梆

jobs_title=诀
jobs_header= $1 
jobs_id=絪腹
jobs_size=
jobs_by=癳
jobs_when=癳
jobs_file=郎嘿
jobs_cancel=い絪腹
jobs_cancelview=い絪腹, ┪浪跌.
jobs_none=⊿Τ $1 

cancel_ecannot=眤ぃ砆す砛
cancel_err=礚猭
cancel_egone= $1 竒ぃ

view_ecannot=眤礚猭浪跌硂
view_egone=硂竒ぃ

start_ecannot=眤ぃ砆す砛币笆逼祘竟
start_err=礚猭币笆逼祘竟

stop_ecannot=眤ぃ砆す砛氨ゎ逼祘竟
stop_err=礚猭氨ゎ逼祘竟

webmin_none=礚
webmin_nonemsg=Postscript ┪ゅ诀
webmin_remotemsg=环狠诀
webmin_model=腹
webmin_prog=祘Α
webmin_driver=Webmin 臱笆祘Α
webmin_uniprint=Uniprint 臱笆祘Α
webmin_edrivers=礚猭パ $1 眔臱笆祘Α. ㄏノ ghostscript  Webmin 诀臱笆祘Αぃ
webmin_egs=тぃ㏑ $1 . ㄏノ ghostscript  Webmin 诀臱笆祘Αぃ
webmin_edriver='$1' ぃ

caldera_none=礚
caldera_nonemsg=环狠┪﹍ (raw) 戈诀Remote or raw printer
caldera_prog=祘Α
caldera_coas=COAS 臱笆祘Α
caldera_printer=诀籔秆猂
caldera_eof=琌癳 EOF じ?
caldera_paper=眎
caldera_double=琌蛮?
caldera_gsopts=肂 GS 匡兜
caldera_uniprint=Uniprint 臱笆祘Α
caldera_eprog='$1' ぃ
caldera_edriver=⊿Τ匡拒诀臱笆祘Α
caldera_eres=⊿Τ匡拒秆猂

redhat_none=礚
redhat_nonemsg=Postscript ┪ゅ诀
redhat_prog=祘Α
redhat_driver=Redhat 臱笆祘Α
redhat_printer=诀籔秆猂
redhat_eof=琌癳 EOF じ?
redhat_paper=眎
redhat_pages=–眎计
redhat_gsopts=肂 GS 匡兜
redhat_hmargin=オ/ 娩
redhat_vmargin=/ 娩
redhat_crlf=琌干亏睛疾ゅ?
redhat_eprog='$1' ぃ
redhat_edriver=⊿Τ匡拒诀臱笆祘Α
redhat_ehmargin=框ア┪岿粇 オ/ 娩
redhat_evmargin=框ア┪岿粇 / 娩
redhat_eres=⊿Τ匡拒秆猂

acl_printers=硂ㄏノ舱篈诀
acl_add=琌糤穝诀?
acl_cancel=琌浪跌籔埃诀?
acl_stop=琌氨ゎ┪币笆逼祘竟?
acl_all=癸┮Τ诀
acl_listed=癸┮匡拒诀...

  07070100074bde000081a40000000000000002000000013ac0389a00001f57000000200000000000000000000000000000001b00000003reloc/lpadmin/linux-lib.pl    # linux-lib.pl
# Functions for printcap-style printer management

# list_printers()
# Returns a list of known printer names
sub list_printers
{
local($l, @rv);
foreach $l (&list_printcap()) {
	$l->{'name'} =~ /^([^\|]+)/;
	push(@rv, $1);
	}
return @rv;
}

# get_printer(name, [nostatus])
sub get_printer
{
local($l, %prn, @w, @n, $w, %cap, @jobs);
foreach $l (&list_printcap()) {
	@n = split(/\|/, $l->{'name'});
	if ($n[0] eq $_[0]) {
		# found the printer.. get info from printcap
		$prn{'name'} = $n[0];
		if (@n > 2) { $prn{'alias'} = [ @n[1..$#n-1] ]; }
		if (@n > 1) { $prn{'desc'} = $n[$#n]; }
		$prn{'iface'} = $l->{'if'};
		$prn{'banner'} = !defined($l->{'sh'});
		$prn{'dev'} = $l->{'lp'};
		$prn{'rhost'} = $l->{'rm'};
		$prn{'rqueue'} = $l->{'rp'};
		$prn{'msize'} = $l->{'mx'};
		$prn{'comment'} = $l->{'comment'};

		if (!$_[1]) {
			# call lpc to get status
			$out = `lpc status $prn{'name'} 2>&1`;
			$prn{'accepting'} = ($out =~ /queuing is enabled/);
			$prn{'enabled'} = ($out =~ /printing is enabled/);
			}

		return \%prn;
		}
	}
return undef;
}

# get_jobs(printer)
sub get_jobs
{
local (@jobs, $htype);
open(LPQ, "lpq -P$_[0] |");
while(<LPQ>) {
	chop;
	if (/^\s*Rank\s+Owner\s+\S+\s+Job/) { $htype = 2; }
	elsif (/^Rank\s+Owner\s+/) { $htype = 1; }
	elsif ($htype == 1 &&
	       /^(\S+)\s+(\S+)\s+(\d+)\s+(.*\S)\s+(\d+)\s+(\S+)$/) {
		# Normal lpq output
		local(%job, $f, @pq);
		$job{'id'} = $3;
		$job{'user'} = $2;
		$job{'size'} = $5;
		$job{'file'} = $4;
		$job{'printing'} = ($1 eq "active");
		local $d = "$config{'spool_dir'}/$_[0]";
		opendir(DIR, $d);
		while($f = readdir(DIR)) {
			if ($f =~ /df.(\d+)/ && $1 == $job{'id'}) {
				push(@pq, "$d/$f");
				}
			}
		closedir(DIR);
		$job{'printfile'} = @pq ? \@pq : undef;
		push(@jobs, \%job);
		}
	elsif ($htype == 2 &&
	       /^\s*(\S+)\s+(\S+)\s+(\S+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(\d*)\s+(\S+)\s+(\S+)\s+(\S+)$/) {
		# PLP lpq output
		local(%job);
		$job{'id'} = $4;
		$job{'user'} = $2;
		$job{'size'} = $4;
		$job{'file'} = $6;
		push(@jobs, \%job);
		}
	}
close(LPQ);
return @jobs;
}

sub printer_support
{
return $_[0] !~ /^(why|allow|default|ctype|sysv|direct|ipp)$/;
}


# create_printer(&details)
# Create a new printer in /etc/printcap
sub create_printer
{
local(%cap);
$cap{'sd'} = "$config{'spool_dir'}/$_[0]->{'name'}";
&lock_file($cap{'sd'});
mkdir($cap{'sd'}, 0755);
&unlock_file($cap{'sd'});
&lock_file($config{'printcap_file'});
open(CAP, ">> $config{'printcap_file'}");
print CAP &make_printcap($_[0], \%cap),"\n";
close(CAP);
&unlock_file($config{'printcap_file'});
&apply_status($_[0]);
}

# modify_printer(&details)
sub modify_printer
{
local(@old, $o, $old, @cap);
&lock_file($config{'printcap_file'});
@old = &list_printcap();
foreach $o (@old) {
	$o->{'name'} =~ /^([^\|]+)/;
	if ($1 eq $_[0]->{'name'}) {
		# found current details
		$old = $o;
		last;
		}
	}
if (!$old) { &error("Printer '$_[0]->{'name'}' no longer exists"); }
open(CAP, $config{'printcap_file'});
@cap = <CAP>;
close(CAP);
splice(@cap, $old->{'line'},
       $old->{'eline'} - $old->{'line'} + 1, &make_printcap($_[0], $old)."\n");
open(CAP, "> $config{'printcap_file'}");
print CAP @cap;
close(CAP);
&unlock_file($config{'printcap_file'});
&apply_status($_[0]);
}

# delete_printer(name)
sub delete_printer
{
local(@old, $o, $old, @cap);
&lock_file($config{'printcap_file'});
@old = &list_printcap();
foreach $o (@old) {
	$o->{'name'} =~ /^([^\|]+)/;
	if ($1 eq $_[0]) {
		# found current details
		$old = $o;
		last;
		}
	}
if (!$old) { &error("Printer '$_[0]' no longer exists"); }
open(CAP, $config{'printcap_file'});
@cap = <CAP>;
close(CAP);
splice(@cap, $old->{'line'}, $old->{'eline'} - $old->{'line'} + 1);
open(CAP, "> $config{'printcap_file'}");
print CAP @cap;
close(CAP);
&unlock_file($config{'printcap_file'});
if ($old->{'sd'} eq "$config{'spool_dir'}/$_[0]") {
	system("rm -rf $old->{'sd'}");
	}
}

# cancel_job(printer, job)
# Calls lprm to remove some job
sub cancel_job
{
local($out);
$out = &backquote_logged("lprm -P$_[0] $_[1] 2>&1");
if ($?) { &error("lprm failed : $out"); }
}

# make_printcap(&details, &old)
# Updates or creates a printcap line
sub make_printcap
{
local(%prn, %cap, $a, $rv, $c);
%prn = %{$_[0]}; %cap = %{$_[1]};
$cap{'if'} = $prn{'iface'} ? $prn{'iface'} : undef;
$cap{'sh'} = $prn{'banner'} ? undef : "";
$cap{'lp'} = $prn{'dev'} ? $prn{'dev'} : undef;
$cap{'rm'} = $prn{'rhost'} ? $prn{'rhost'} : undef;
$cap{'rp'} = $prn{'rqueue'} ? $prn{'rqueue'} : undef;
$cap{'mx'} = defined($prn{'msize'}) ? $prn{'msize'} : undef;
$rv = $prn{'comment'}."\n" if ($prn{'comment'});
$rv .= $prn{'name'};
foreach $a (@{$prn{'alias'}}) { $rv .= "|$a"; }
$rv .= "|$prn{'desc'}" if ($prn{'desc'});
foreach $c (keys %cap) {
	if ($c =~ /^(\S\S)(#?)$/ && defined($cap{$c})) {
		if ($cap{$c} eq "") { $rv .= ":$c"; }
		elsif ($cap{$c} =~ /^\d+$/) { $rv .= ":$c#$cap{$c}"; }
		else { $rv .= ":$c=$cap{$c}"; }
		}
	}
$rv .= ":";
return $rv;
}

# list_printcap()
# Returns an array of associative arrays containing printcap fields
sub list_printcap
{
local(@rv, @line, @comment, @eline, @sline, $line, $cont, $lnum, $i);
open(CAP, $config{'printcap_file'});
$lnum = 0;
while($line = <CAP>) {
	$line =~ s/\s+$//g;	# remove trailing spaces/newline
	if ($line =~ /^(##.*)/) {
		# special commented line .. keep it
		$comment[@line] = $line;
		}
	else {
		$line =~ s/^#.*$//g;	# remove comments
		$line =~ s/^\s+//g;	# remove leading spaces
		if ($line =~ /\S/) {
			local $ncont = ($line =~ s/\\$//g);
			if ($cont) {
				$line[$#line] .= $line;
				$eline[@line - 1] = $lnum;
				}
			else {
				push(@line, $line);
				$eline[@line - 1] = $sline[@line - 1] = $lnum;
				}
			$cont = $ncont;
			}
		else {
			# only keep comments immediately before an entry
			$comment[@line] = undef;
			}
		}
	$lnum++;
	}
close(CAP);
for($i=0; $i<@line; $i++) {
	local(%cap);
	@w = split(/:+/, $line[$i]);
	$cap{'name'} = $w[0];
	$cap{'line'} = $sline[$i] - ($comment[$i] ? 1 : 0);
	$cap{'eline'} = $eline[$i];
	$cap{'comment'} = $comment[$i];
	foreach $w (@w[1..$#w]) {
		if ($w =~ /^([A-z0-9]+)[=#](.*)$/) { $cap{$1} = $2; }
		elsif ($w =~ /^([A-z0-9]+)$/) { $cap{$w} = ""; }
		}
	push(@rv, \%cap);
	}
return @rv;
}

# apply_status(&details)
# Calls lpc to enable or disable a printer.
# Restarting lpd doesn't seem to be necessary?
sub apply_status
{
local($out);
$out = `lpc status $prn{'name'} 2>&1`;
if ($prn{'enabled'} && $out !~ /printing is enabled/)
	{ &backquote_logged("lpc up $prn{'name'}"); }
elsif (!$prn{'enabled'} && $out =~ /printing is enabled/)
	{ &backquote_logged("lpc down $prn{'name'}"); }
if ($prn{'accepting'} && $out !~ /queuing is enabled/)
	{ &backquote_logged("lpc enable $prn{'name'}"); }
elsif (!$prn{'accepting'} && $out =~ /queuing is enabled/)
	{ &backquote_logged("lpc disable $prn{'name'}"); }
}

# sched_running()
# Returns the pid if lpsched is running, 0 if not, -1 if cannot be stopped
sub sched_running
{
@pid = &find_byname("lpd");
if (@pid) { return $pid[0]; }
return 0;
}

# start_sched()
# Start lpsched
sub start_sched
{
local $out = &backquote_logged("lpd 2>&1");
if ($?) { &error("failed to start lpd : <tt>$out</tt>"); }
}

# stop_sched(pid)
# Stop the running lpsched process
sub stop_sched
{
&kill_logged('TERM', $_[0]) || &error("Failed to stop lpd : $!");
}

# print_command(printer, file)
# Returns the command to print some file on some printer
sub print_command
{
return "lpr -P$_[0] $_[1]";
}

if (-r "/dev/lp0") {
	@device_files = ("/dev/lp0", "/dev/lp1",
			 "/dev/ttyS0", "/dev/ttyS1", "/dev/null");
	}
else {
	@device_files = ("/dev/lp1", "/dev/lp2",
			 "/dev/ttyS0", "/dev/ttyS1", "/dev/null");
	}
if (-r "/dev/usblp0") {
	push(@device_files, "/dev/usblp0", "/dev/usblp1",
			    "/dev/usblp2", "/dev/usblp3");
	}
@device_names = (&text('linux_paralel', "1"), &text('linux_paralel', "2"),
		 &text('linux_serial', "1"), &text('linux_serial', "2"),
		 $text{'linux_null'}, &text('linux_usb', 1),
		 &text('linux_usb', 2), &text('linux_usb', 3),
		 &text('linux_usb', 4));

 07070100074bdf000081e40000000000000002000000013ac0389900000855000000200000000000000000000000000000001c00000003reloc/lpadmin/list_jobs.cgi   #!/usr/local/bin/perl
# list_jobs.cgi
# List all print jobs on some printer

require './lpadmin-lib.pl';
&ReadParse();
print "Refresh: $config{'queue_refresh'}\r\n"
	if ($config{'queue_refresh'});
&header($text{'jobs_title'}, "");
print "<hr>\n";

@jobs = &get_jobs($in{'name'});
if (@jobs) {
	print "<h3>",&text('jobs_header', "<tt>$in{'name'}</tt>"),"</h3>\n";
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'jobs_id'}</b></td>\n";
	print "<td><b>$text{'jobs_size'}</b></td>\n";
	print "<td><b>$text{'jobs_by'}</b></td>\n";
	if ($jobs[0]->{'when'}) {
		print "<td><b>$text{'jobs_when'}</b></td>\n";
		}
	if ($jobs[0]->{'file'}) {
		print "<td><b>$text{'jobs_file'}</b></td>\n";
		}
	foreach $j (@jobs) {
		print "<tr $cb>\n";
		if (&can_edit_jobs($in{'name'})) {
			print "<td><a href=\"cancel_job.cgi?name=$in{'name'}&",
			      "id=$j->{'id'}\">$j->{'id'}</a></td>\n";
			}
		else {
			print "<td>$j->{'id'}</td>\n";
			}
		if ($j->{'printfile'} && &can_edit_jobs($in{'name'})) {
			print "<td><a href='view_job.cgi?name=$in{'name'}",
			      "&id=$j->{'id'}'>$j->{'size'} ",
			      $text{'jobs_bytes'}, "</a></td>\n";
			$printfile++;
			}
		else {
			print "<td>$j->{'size'} ", $text{'jobs_bytes'},
			      "</td>\n";
			}
		if ($j->{'user'} =~ /^(\S+)\!(\S+)$/) {
			print "<td>$2\@$1</td>\n";
			}
		else { print "<td>$j->{'user'}</td>\n"; }
		if ($j->{'when'}) { print "<td>$j->{'when'}</td>\n"; }
		if ($j->{'file'}) { print "<td>$j->{'file'}</td>\n"; }
		print "</tr>\n";
		}
	print "</table>\n";
	if ($access{'cancel'}) {
		print "<table width=100%><tr><td>\n";
		print $printfile ? $text{'jobs_cancelview'}
				 : $text{'jobs_cancel'},"<br>\n";
		print "</td> <td align=right>",
		      "<a href='cancel_all.cgi?name=$in{'name'}'>",
		      "$text{'jobs_all'}</a></td> </tr></table>\n";
		}
	}
else { print "<h3>",&text('jobs_none', "<tt>$in{'name'}</tt>"),"</h3>\n"; }

print "<form action=test_form.cgi>\n";
print "<input type=hidden name=name value='$in{'name'}'>\n";
print "<input type=submit value='$text{'jobs_test'}'></form><p>\n";

print "<hr>\n";
&footer("", $text{'index_return'});


   07070100074be0000081a40000000000000002000000013ac0389800000335000000200000000000000000000000000000001c00000003reloc/lpadmin/log_parser.pl   # log_parser.pl
# Functions for parsing this module's logs

require './lpadmin-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p, $long) = @_;
if ($action eq 'cancel') {
	return &text("log_cancel_${type}",
		     "<tt>$object</tt>", "<tt>$p->{'id'}</tt>");
	}
elsif ($action eq 'stop') {
	return $text{'log_stop'};
	}
elsif ($action eq 'start') {
	return $text{'log_start'};
	}
elsif ($action eq 'restart') {
	return $text{'log_restart'};
	}
elsif ($type eq 'printer') {
	return &text($long && $p->{'mode'} ? "log_${action}_l" : "log_$action",
		     "<tt>$object</tt>", "<tt>$p->{'dest'}</tt>",
		     $p->{'driver'});
	}
else {
	return undef;
	}
}

   07070100074be1000081a40000000000000002000000013ac03898000035fd000000200000000000000000000000000000001d00000003reloc/lpadmin/lpadmin-lib.pl  # lpadmin-lib.pl
# Functions for configuring and adding printers

do '../web-lib.pl';
&init_config();
do "./$config{'print_style'}-lib.pl";
do "./$config{'driver_style'}-driver.pl";
%access = &get_module_acl();

$drivers_directory = "$module_config_directory/drivers";

# dev_name(file)
sub dev_name
{
local($i);
for($i=0; $i<@device_files; $i++) {
	if ($device_files[$i] eq $_[0]) { return $device_names[$i]; }
	}
return $_[0];
}

# has_ghostscript()
# Does this system have ghostscript installed?
sub has_ghostscript
{
return &has_command($config{'gs_path'});
}

# has_smbclient()
# Does this system have smbclient installed?
sub has_smbclient
{
return &has_command($config{'smbclient_path'});
}

# has_hpnp()
# Does this system have hpnp installed?
sub has_hpnp
{
return &has_command($config{'hpnp_path'});
}

# create_webmin_driver(&printer, &driver)
# lpadmin drivers are files in /etc/webmin/lpadmin/drivers. Each is a
# dynamically generated shell script which calls GS
sub create_webmin_driver
{
# check for non-driver
if ($_[1]->{'mode'} == 0) {
	return undef;
	}
elsif ($_[1]->{'mode'} == 2) {
	return $_[1]->{'program'};
	}

local($drv, $d, $gsdrv, $res, $perl);
&lock_file($drivers_directory);
mkdir($drivers_directory, 0755);
&unlock_file($drivers_directory);
$drv = "$drivers_directory/$_[0]->{'name'}";

# Find ghostscript driver
if ($_[1]->{'mode'} == 3) {
	$gsdrv = 'uniprint';
	}
else {
	foreach $d (&list_webmin_drivers()) {
		if ($d->[1] eq $_[1]->{'type'}) {
			$gsdrv = $d->[0];
			}
		}
	}

# Create script to call GS
&lock_file($drv);
open(DRV, ">$drv");
print DRV "#!/bin/sh\n";
print DRV "# Name: $_[0]->{'name'}\n";
print DRV "# Type: ",$_[1]->{'upp'} ? 'uniprint' : $_[1]->{'type'},"\n";
print DRV "# DPI: ",$_[1]->{'upp'} ? $_[1]->{'upp'} : $_[1]->{'dpi'},"\n";
if ($gconfig{'ld_env'}) {
	print DRV "$gconfig{'ld_env'}=$gconfig{'ld_path'}\n";
	}
print DRV "PATH=$gconfig{'path'}\n";
if ($config{'gs_fontpath'}) {
	print DRV "GS_FONTPATH=$config{'gs_fontpath'}\n";
	}
if ($config{'gs_lib'}) {
	print DRV "GS_LIB=$config{'gs_lib'}\n";
	}
print DRV "export $gconfig{'ld_env'} PATH GS_FONTPATH GS_LIB\n";
$res = $_[1]->{'upp'} ? "\@$_[1]->{'upp'}.upp" :
       $_[1]->{'dpi'} ? "-r$_[1]->{'dpi'}" : "";
open(PERL, "$config_directory/perl-path");
chop($perl = <PERL>);
close(PERL);
if ($config{'iface_arg'}) {
	for($i=0; $i<$config{'iface_arg'}-1; $i++) {
		print DRV "shift\n";
		}
	print DRV "cat \$* | $perl -e 'while(<STDIN>) { print if (!/^\\s*#####/); }' >/tmp/\$\$.gsin\n";
	}
else {
	print DRV "$perl -e 'while(<STDIN>) { print if (!/^\\s*#####/); }' >/tmp/\$\$.gsin\n";
	}
print DRV "$config{'gs_path'} -sOutputFile=/tmp/\$\$.gs -dSAFER -sDEVICE=$gsdrv $res -dNOPAUSE /tmp/\$\$.gsin </dev/null >/dev/null 2>&1\n";
print DRV "rm /tmp/\$\$.gsin\n";
print DRV "cat /tmp/\$\$.gs\n";
print DRV "rm /tmp/\$\$.gs\n";
close(DRV);
&unlock_file($drv);
&system_logged("chmod $config{'iface_perms'} $drv >/dev/null 2>&1");
if ($config{'iface_owner'}) {
	&system_logged("chown $config{'iface_owner'} $drv >/dev/null 2>&1");
	}
return $drv;
}

# create_webmin_windows_driver(&printer, &driver)
# Create an interface program that can print to a remote windows printer
# using some printer driver
sub create_webmin_windows_driver
{
local($drv, $prog);
&lock_file($drivers_directory);
mkdir($drivers_directory, 0755);
&unlock_file($drivers_directory);
$drv = "$drivers_directory/$_[0]->{'name'}.smb";

# Create script to call smbclient
&lock_file($drv);
open(DRV, ">$drv");
print DRV "#!/bin/sh\n";
print DRV "# Name: $_[0]->{'name'}\n";
print DRV "# Server: $_[1]->{'server'}\n";
print DRV "# Share: $_[1]->{'share'}\n";
print DRV "# User: $_[1]->{'user'}\n";
print DRV "# Password: $_[1]->{'pass'}\n";
print DRV "# Workgroup: $_[1]->{'workgroup'}\n";
print DRV "# Program: $_[1]->{'program'}\n";
if ($gconfig{'ld_env'}) {
	print DRV "$gconfig{'ld_env'}=$gconfig{'ld_path'}\n";
	}
print DRV "PATH=$gconfig{'path'}\n";
print DRV "export $gconfig{'ld_env'} PATH\n";
if (!$_[1]->{'program'}) {
	if ($config{'iface_arg'}) {
		for($i=0; $i<$config{'iface_arg'}-1; $i++) {
			print DRV "shift\n";
			}
		print DRV "cat \$* >/tmp/\$\$.smb\n";
		}
	else { print DRV "cat >/tmp/\$\$.smb\n"; }
	}
else {
	print DRV "$_[1]->{'program'} \"\$1\" \"\$2\" \"\$3\" \"\$4\" ",
		  "\"\$5\" \"\$6\" \"\$7\" \"\$8\" \"\$9\" ",
		  "\"\$10\" \"\$11\" \"\$12\" \"\$13\" >/tmp/\$\$.smb\n";
	system("chmod a+rx $_[1]->{'program'}");
	}
print DRV "$config{'smbclient_path'} '\\\\$_[1]->{'server'}\\$_[1]->{'share'}' ",
	  $_[1]->{'pass'} ? $_[1]->{'pass'} : "-N",
	  $_[1]->{'user'} ? " -U $_[1]->{'user'}" : "",
	  $_[1]->{'workgroup'} ? " -W $_[1]->{'workgroup'}" : "",
	  " -c \"print /tmp/\$\$.smb\" -P\n";
print DRV "rm /tmp/\$\$.smb\n";
close(DRV);
&unlock_file($drv);
&system_logged("chmod $config{'iface_perms'} $drv >/dev/null 2>&1");
if ($config{'iface_owner'}) {
	&system_logged("chown $config{'iface_owner'} $drv >/dev/null 2>&1");
	}
return $drv;
}

# create_hpnp_driver(&printer, &driver)
# Create an interface program that can print to a hpnp server using some
# interface program
sub create_hpnp_driver
{
local($drv, $prog);
&lock_file($drivers_directory);
mkdir($drivers_directory, 0755);
&unlock_file($drivers_directory);
$drv = "$drivers_directory/$_[0]->{'name'}.hpnp";

# Create script to call hpnp
&lock_file($drv);
open(DRV, ">$drv");
print DRV "#!/bin/sh\n";
print DRV "# Name: $_[0]->{'name'}\n";
print DRV "# Server: $_[1]->{'server'}\n";
print DRV "# Port: $_[1]->{'port'}\n";
print DRV "# Program: $_[1]->{'program'}\n";
if ($gconfig{'ld_env'}) {
	print DRV "$gconfig{'ld_env'}=$gconfig{'ld_path'}\n";
	}
print DRV "PATH=$gconfig{'path'}\n";
print DRV "export $gconfig{'ld_env'} PATH\n";
if (!$_[1]->{'program'}) {
	if ($config{'iface_arg'}) {
		for($i=0; $i<$config{'iface_arg'}-1; $i++) {
			print DRV "shift\n";
			}
		print DRV "cat \$* >/tmp/\$\$.hpnp\n";
		}
	else { print DRV "cat >/tmp/\$\$.hpnp\n"; }
	}
else {
	print DRV "$_[1]->{'program'} \"\$1\" \"\$2\" \"\$3\" \"\$4\" ",
		  "\"\$5\" \"\$6\" \"\$7\" \"\$8\" \"\$9\" ",
		  "\"\$10\" \"\$11\" \"\$12\" \"\$13\" >/tmp/\$\$.hpnp\n";
	system("chmod a+rx $_[1]->{'program'}");
	}
print DRV "$config{'hpnp_path'} -x $_[1]->{'server'}",
	  $_[1]->{'port'} ? " -p $_[1]->{'port'}" : "",
	  " /tmp/\$\$.hpnp\n";
print DRV "rm /tmp/\$\$.hpnp\n";
close(DRV);
&system_logged("chmod $config{'iface_perms'} $drv >/dev/null 2>&1");
if ($config{'iface_owner'}) {
	&system_logged("chown $config{'iface_owner'} $drv >/dev/null 2>&1");
	}
&unlock_file($drv);
return $drv;
}

# is_webmin_driver(path)
# Returns a structure of driver information
sub is_webmin_driver
{
local($l, $i, $u, $desc);
if (!$_[0]) {
	return { 'mode' => 0,
		 'desc' => 'None' };
	}
if (&has_ghostscript()) {
	open(DRV, $_[0]);
	for($i=0; $i<4; $i++) { $l .= <DRV>; }
	close(DRV);
	if ($l =~ /# Name: (.*)\n# Type: (.*)\n# DPI: (.*)\n/) {
		if ($2 eq 'uniprint') {
			local $upp = $3;
			foreach $u (&list_uniprint()) {
				$desc = $u->[1] if ($u->[0] eq $upp);
				}
			$desc =~ s/,.*$//;
			return { 'mode' => 3,
				 'upp' => $upp,
				 'desc' => $desc ? $desc : $upp };
			}
		else {
			return { 'type' => $2,
				 'dpi' => $3,
				 'mode' => 1,
				 'desc' => $3 ? "$2 ($3 DPI)" : $2 };
			}
		}
	}
return { 'desc' => $_[0],
	 'prog' => $_[0],
	 'mode' => 2 };
}

# is_webmin_windows_driver(path)
# Returns a structure containing information about a windows driver, or undef
# Returns the server, share, username, password, workgroup, program
# if path is a webmin windows driver
sub is_webmin_windows_driver
{
local($i, $l);
if (!&has_smbclient()) { return undef; }
open(DRV, $_[0]);
for($i=0; $i<8; $i++) { $l .= <DRV>; }
close(DRV);
if ($l =~ /# Name: (.*)\n# Server: (.*)\n# Share: (.*)\n# User: (.*)\n# Password: (.*)\n# Workgroup: (.*)\n# Program: (.*)\n/) {
	return { 'server' => $2,
		 'share' => $3,
		 'user' => $4,
		 'pass' => $5,
		 'workgroup' => $6,
		 'program' => $7 };
	}
elsif ($l =~ /# Name: (.*)\n# Server: (.*)\n# Share: (.*)\n# User: (.*)\n# Password: (.*)\n# Program: (.*)\n/) {
	return { 'server' => $2,
		 'share' => $3,
		 'user' => $4,
		 'pass' => $5,
		 'program' => $7 };
	}
else { return undef; }
}

# delete_webmin_driver(name)
# Delete the drivers for some printer
sub delete_webmin_driver
{
&lock_file("$drivers_directory/$_[0]");
&lock_file("$drivers_directory/$_[0].smb");
&lock_file("$drivers_directory/$_[0].hpnp");
unlink("$drivers_directory/$_[0]");
unlink("$drivers_directory/$_[0].smb");
unlink("$drivers_directory/$_[0].hpnp");
&unlock_file("$drivers_directory/$_[0]");
&unlock_file("$drivers_directory/$_[0].smb");
&unlock_file("$drivers_directory/$_[0].hpnp");
}

# is_hpnp_driver(path, &printer)
# Returns a structure of hpnp details if path is a webmin hpnp driver
sub is_hpnp_driver
{
local($i, $l);
if (!&has_hpnp()) { return undef; }
open(DRV, $_[0]);
for($i=0; $i<5; $i++) { $l .= <DRV>; }
close(DRV);
if ($l =~ /# Name: (.*)\n# Server: (.*)\n# Port: (.*)\n# Program: (.*)\n/) {
	return { 'server' => $2,
		 'port' => $3,
		 'program' => $4 };
	}
else { return undef; }
}

# webmin_driver_input(&printer, &driver)
sub webmin_driver_input
{
local ($prn, $drv) = @_;

printf "<tr> <td><input type=radio name=drv value=0 %s> %s</td>\n",
	$drv->{'mode'} == 0 ? "checked" : "", $text{'webmin_none'};
print "<td>($text{'webmin_nonemsg'})</td> </tr>\n";

printf "<tr> <td><input type=radio name=drv value=2 %s> %s</td>\n",
	$drv->{'mode'} == 2 ? "checked" : "", $text{'webmin_prog'};
printf "<td><input name=iface value=\"%s\" size=35></td> </tr>\n",
	$drv->{'mode'} == 2 ? $drv->{'prog'} : "";

if (&has_ghostscript()) {
	local $out = `$config{'gs_path'} -help 2>&1`;
	if ($out =~ /Available devices:\n((\s+.*\n)+)/i) {
		print "<tr> <td valign=top>\n";
		printf "<input type=radio name=drv value=1 %s>\n",
			$drv->{'mode'} == 1 ? "checked" : "";
		print "$text{'webmin_driver'}</td> <td valign=top>";
		foreach $d (split(/\s+/, $1)) { $drvsupp{$d}++; }
		print "<select name=driver size=7>\n";
		foreach $d (&list_webmin_drivers()) {
			if ($drvsupp{$d->[0]}) {
				printf "<option %s>%s\n",
				    $d->[1] eq $drv->{'type'} ? "selected" : "",
				    $d->[1];
				}
			}
		print "</select>&nbsp;&nbsp;";
		print "<select name=dpi size=7>\n";
		printf "<option value=\"\" %s>Default\n",
			$drv->{'dpi'} ? "" : "selected";
		foreach $d (75, 100, 150, 200, 300, 600, 720, 1440) {
			printf "<option value=\"$d\" %s>$d DPI\n",
				$drv->{'dpi'} == $d ? "selected" : "";
			}
		print "</select></td> </tr>\n";

		if ($drvsupp{'uniprint'}) {
			print "<tr> <td valign=top>\n";
			printf "<input type=radio name=drv value=3 %s>\n",
				$drv->{'mode'} == 3 ? "checked" : "";
			print "$text{'webmin_uniprint'}</td> <td valign=top>";
			print "<select name=uniprint size=5>\n";
			foreach $u (&list_uniprint()) {
				printf "<option value=%s %s>%s\n",
				    $u->[0],
				    $u->[0] eq $drv->{'upp'} ? 'selected' : '',
				    $u->[1];
				}
			print "</select></td> </tr>\n";
			}
		}
	else {
		print "<tr> <td colspan=2>",
		      &text('webmin_edrivers', "<tt>$config{'gs_path'}</tt>"),
		      "</td> </tr>\n";
		}
	}
elsif ($config{'gs_path'}) {
	print "<tr> <td colspan=2>",
	      &text('webmin_egs', "<tt>$config{'gs_path'}</tt>"),
	      "</td> </tr>\n";
	}
return undef;
}

# parse_webmin_driver()
# Parse driver selection from %in and return a driver structure
sub parse_webmin_driver
{
if ($in{'drv'} == 0) {
	return { 'mode' => 0 };
	}
elsif ($in{'drv'} == 2) {
	(-x $in{'iface'}) || &error(&text('webmin_edriver', $in{'iface'}));
	return { 'mode' => 2,
		 'program' => $in{'iface'} };
	}
elsif ($in{'drv'} == 1) {
	return { 'mode' => 1,
		 'type' => $in{'driver'},
		 'dpi' => $in{'dpi'} };
	}
elsif ($in{'drv'} == 3) {
	return { 'mode' => 3,
		 'upp' => $in{'uniprint'} };
	}
}



# list_webmin_drivers()
sub list_webmin_drivers
{
local(@rv, $_);
open(DRIVERS, "drivers");
while(<DRIVERS>) {
	/^(\S+)\s+(.*)/;
	push(@rv, [ $1, $2 ]);
	}
close(DRIVERS);
return @rv;
}

# can_edit_printer(printer)
sub can_edit_printer
{
foreach $p (split(/\s+/, $access{'printers'})) {
	return 1 if ($p eq '*' || $p eq $_[0]);
	}
return 0;
}

# can_edit_jobs(printer)
sub can_edit_jobs
{
return 1 if ($access{'cancel'} == 1);
return 0 if ($access{'cancel'} == 0);
foreach $p (split(/\s+/, $access{'jobs'})) {
	return 1 if ($p eq $_[0]);
	}
return 0;
}

# list_uniprint()
# Returns a list of uniprint drivers support by the installed ghostscript
sub list_uniprint
{
local (@rv, $f, $d);
local $out = `$config{'gs_path'} -help 2>&1`;
if ($out =~ /Search path:\n((\s+.*\n)+)/i) {
	foreach $d (split(/\s+/, $1)) {
		next if ($d !~ /^\//);
		opendir(DIR, $d);
		while($f = readdir(DIR)) {
			next if ($f !~ /^(.*)\.upp$/);
			local $upp = $1;
			open(UPP, "$d/$f");
			local $line = <UPP>;
			close(UPP);
			next if ($line !~ /upModel="(.*)"/i);
			push(@rv, [ $upp, $1 ]);
			}
		closedir(DIR);
		}
	}
return sort { $a->[0] cmp $b->[0] } @rv;
}

sub log_info
{
local ($drv, $wdrv, $hdrv);
if (!$webmin_windows_driver) {
	$wdrv = &is_webmin_windows_driver($_[0]->{'iface'}, $_[0]);
	}
$wdrv = &is_windows_driver($_[0]->{'iface'}, $_[0]) if (!$wdrv);
$hdrv = &is_hpnp_driver($_[0]->{'iface'}, $_[0]);
local $iface = $wdrv ? $wdrv->{'program'} :
	       $hdrv ? $hdrv->{'program'} : $_[0]->{'iface'};

if (!$webmin_print_driver) {
	$drv = &is_webmin_driver($iface, $_[0]);
	}
$drv = &is_driver($iface, $_[0])
	if ($drv->{'mode'} == 0 || $drv->{'mode'} == 2);
$drv->{'desc'} =~ s/\([^\)]+\)$//;

return { 'driver' => $drv->{'desc'},
	 'mode' => $drv->{'mode'},
	 'dest' => $wdrv ? "\\\\$wdrv->{'server'}\\$wdrv->{'share'}" :
		   $hdrv ? "HPNP $hdrv->{'server'}:$hdrv->{'port'}" :
		   $_[0]->{'rhost'} ? "$_[0]->{'rhost'}:$_[0]->{'rqueue'}" :
		   $_[0]->{'dhost'} ? "$_[0]->{'dhost'}:$_[0]->{'dport'}" :
		   &dev_name($_[0]->{'dev'}) };
}

   07070100074be2000081a40000000000000002000000013ac0389a00002491000000200000000000000000000000000000001b00000003reloc/lpadmin/lprng-lib.pl    # lprng-lib.pl
# Functions for lprng-style printer management

# list_printers()
# Returns a list of known printer names
sub list_printers
{
local($l, @rv);
foreach $l (&list_printcap()) {
	$l->{'name'} =~ /^([^\|]+)/;
	push(@rv, $1);
	}
return @rv;
}

# get_printer(name, [nostatus])
sub get_printer
{
local($l, %prn, @w, @n, $w, %cap, @jobs);
foreach $l (&list_printcap()) {
	@n = split(/\|/, $l->{'name'});
	if ($n[0] eq $_[0]) {
		# found the printer.. get info from printcap
		$prn{'name'} = $n[0];
		if (@n > 2) { $prn{'alias'} = [ @n[1..$#n-1] ]; }
		if (@n > 1) { $prn{'desc'} = $n[$#n]; }
		$prn{'desc'} = $l->{'cm'} if ($l->{'cm'});
		$prn{'iface'} = $l->{'if'};
		$prn{'banner'} = !defined($l->{'sh'});
		if ($l->{'rm'}) {
			$prn{'rhost'} = $l->{'rm'};
			$prn{'rqueue'} = $l->{'rp'};
			}
		elsif ($l->{'lp'} =~ /^(\S+)\%(\d+)$/) {
			$prn{'dhost'} = $1;
			$prn{'dport'} = $2;
			}
		else {
			$prn{'dev'} = $l->{'lp'};
			}
		$prn{'msize'} = $l->{'mx'};
		$prn{'comment'} = $l->{'comment'};

		if (!$_[1]) {
			# call lpc to get status
			$out = `lpc -P$prn{'name'} status 2>&1`;
			if ($out =~ /\n(\S+)\s+(\S+)\s+(\S+)/) {
				$prn{'accepting'} = $3 eq 'enabled';
				$prn{'enabled'} = $2 eq 'enabled';
				}
			}

		return \%prn;
		}
	}
return undef;
}

# get_jobs(printer)
sub get_jobs
{
local @jobs;
open(LPQ, "lpq -P$_[0] |");
while(<LPQ>) {
	chop;
	if (/^\s+Rank\s+Owner/i) { $doneheader++; }
	elsif ($doneheader && /^(\S+)\s+(\S+)\s+\S+\s+(\d+)\s+(.*\S)\s+(\d+)\s+(\S+)$/) {
		# Local print queue
		local(%job, $f, @pq);
		$job{'id'} = $3;
		$job{'user'} = $2;
		$job{'size'} = $5;
		$job{'file'} = $4;
		$job{'printing'} = ($1 eq "active");
		$job{'user'} =~ s/\+\d+$//g;
		local $d = "$config{'spool_dir'}/$_[0]";
		opendir(DIR, $d);
		while($f = readdir(DIR)) {
			if ($f =~ /df.(\d+)/ && $1 == $job{'id'}) {
				push(@pq, "$d/$f");
				}
			}
		closedir(DIR);
		$job{'printfile'} = @pq ? \@pq : undef;
		push(@jobs, \%job);
		}
	elsif (/^(\S+):\s+(\S+)\s+\[job\s+(\d+)/) {
		# remote print queue
		local(%job);
		$job{'id'} = $3;
		$job{'user'} = $1;
		if (<LPQ> =~ /^\s+(.*\S)\s+(\d+)/) {
			$job{'file'} = $1;
			$job{'size'} = $2;
			push(@jobs, \%job);
			}
		}
	}
close(LPQ);
return @jobs;
}

sub printer_support
{
return $_[0] !~ /^(why|allow|default|ctype|sysv|ipp)$/;
}


# create_printer(&details)
# Create a new printer in /etc/printcap
sub create_printer
{
local(%cap);
if (!-d $config{'spool_dir'}) {
	&lock_file($config{'spool_dir'});
	mkdir($config{'spool_dir'}, 0755);
	&unlock_file($config{'spool_dir'});
	&system_logged("chown $config{'iface_owner'} $config{'spool_dir'}");
	}
$cap{'sd'} = "$config{'spool_dir'}/$_[0]->{'name'}";
&lock_file($cap{'sd'});
mkdir($cap{'sd'}, 0755);
&unlock_file($cap{'sd'});
&lock_file("$cap{'sd'}/control.$_[0]->{'name'}");
open(TOUCH, ">$cap{'sd'}/control.$_[0]->{'name'}");
close(TOUCH);
&unlock_file("$cap{'sd'}/control.$_[0]->{'name'}");
&lock_file("$cap{'sd'}/status.$_[0]->{'name'}");
open(TOUCH, ">$cap{'sd'}/status.$_[0]->{'name'}");
close(TOUCH);
&unlock_file("$cap{'sd'}/status.$_[0]->{'name'}");
&lock_file("$cap{'sd'}/unspooler.$_[0]->{'name'}");
open(TOUCH, ">$cap{'sd'}/unspooler.$_[0]->{'name'}");
close(TOUCH);
&unlock_file("$cap{'sd'}/unspooler.$_[0]->{'name'}");
if ($config{'iface_owner'}) {
	&system_logged("chown -R $config{'iface_owner'} $cap{'sd'}");
	}
else {
	local @st = stat($config{'spool_dir'});
	&system_logged("chown -R $st[4]:$st[5] $cap{'sd'}");
	}
&system_logged("chmod 2700 $cap{'sd'}");
&system_logged("chmod 600 $cap{'sd'}/*");
&system_logged("chmod 700 $cap{'sd'}/printfilter")
	if (-r "$cap{'sd'}/printfilter");

&lock_file($config{'printcap_file'});
open(CAP, ">> $config{'printcap_file'}");
print CAP &make_printcap($_[0], \%cap),"\n";
close(CAP);
&unlock_file($config{'printcap_file'});
&system_logged("lpc reread all >/dev/null 2>&1");
&apply_status($_[0]);
}

# modify_printer(&details)
sub modify_printer
{
local(@old, $o, $old, @cap);
&lock_file($config{'printcap_file'});
@old = &list_printcap();
foreach $o (@old) {
	$o->{'name'} =~ /^([^\|]+)/;
	if ($1 eq $_[0]->{'name'}) {
		# found current details
		$old = $o;
		last;
		}
	}
if (!$old) { &error("Printer '$_[0]->{'name'}' no longer exists"); }
open(CAP, $config{'printcap_file'});
@cap = <CAP>;
close(CAP);
splice(@cap, $old->{'line'},
       $old->{'eline'} - $old->{'line'} + 1, &make_printcap($_[0], $old)."\n");
open(CAP, "> $config{'printcap_file'}");
print CAP @cap;
close(CAP);
&unlock_file($config{'printcap_file'});
&system_logged("lpc reread all >/dev/null 2>&1");
&apply_status($_[0]);
}

# delete_printer(name)
sub delete_printer
{
local(@old, $o, $old, @cap);
&lock_file($config{'printcap_file'});
@old = &list_printcap();
foreach $o (@old) {
	$o->{'name'} =~ /^([^\|]+)/;
	if ($1 eq $_[0]) {
		# found current details
		$old = $o;
		last;
		}
	}
if (!$old) { &error("Printer '$_[0]' no longer exists"); }
open(CAP, $config{'printcap_file'});
@cap = <CAP>;
close(CAP);
splice(@cap, $old->{'line'}, $old->{'eline'} - $old->{'line'} + 1);
open(CAP, ">$config{'printcap_file'}");
print CAP @cap;
close(CAP);
&unlock_file($config{'printcap_file'});
if ($old->{'sd'} =~ /$_[0]$/) {
	&system_logged("rm -rf $old->{'sd'}");
	}
&system_logged("lpc reread all >/dev/null 2>&1");
}

# cancel_job(printer, job)
# Calls lprm to remove some job
sub cancel_job
{
local($out);
$out = &backquote_logged("lprm -P$_[0] $_[1] 2>&1");
if ($?) { &error("lprm failed : $out"); }
}

# make_printcap(&details, &old)
# Updates or creates a printcap line
sub make_printcap
{
local(%prn, %cap, $a, $rv, $c);
%prn = %{$_[0]}; %cap = %{$_[1]};
$cap{'if'} = $prn{'iface'} ? $prn{'iface'} : undef;
$cap{'sh'} = $prn{'banner'} ? undef : "";
$cap{'lp'} = $prn{'dhost'} ? "$prn{'dhost'}%$prn{'dport'}" :
	     $prn{'dev'} ? $prn{'dev'} : undef;
$cap{'rm'} = $prn{'rhost'} ? $prn{'rhost'} : undef;
$cap{'rp'} = $prn{'rqueue'} ? $prn{'rqueue'} : undef;
$cap{'mx'} = defined($prn{'msize'}) ? $prn{'msize'} : undef;
$cap{'cm'} = $prn{'desc'} ? $prn{'desc'} : undef;
$rv = $prn{'comment'}."\n" if ($prn{'comment'});
$rv .= $prn{'name'};
foreach $a (@{$prn{'alias'}}) { $rv .= "|$a"; }
$rv .= "|$prn{'desc'}";
foreach $c (keys %cap) {
	if ($c =~ /^(\S\S)(#?)$/ && defined($cap{$c})) {
		if ($cap{$c} eq "") { $rv .= ":$c"; }
		elsif ($cap{$c} =~ /^\d+$/) { $rv .= ":$c#$cap{$c}"; }
		else { $rv .= ":$c=$cap{$c}"; }
		}
	}
$rv .= ":";
return $rv;
}

# list_printcap()
# Returns an array of associative arrays containing printcap fields
sub list_printcap
{
local(@rv, @line, @comment, $line, $cont, $lnum, $i);
open(CAP, $config{'printcap_file'});
$lnum = 0;
while($line = <CAP>) {
	$line =~ s/\s+$//g;	# remove trailing spaces
	if ($line =~ /^(##.*)/) {
		# special commented line .. keep it
		$comment[@line] = $line;
		}
	else {
		$line =~ s/^#.*$//g;    # remove comments
		$line =~ s/^\s+//g;     # remove leading spaces
		if ($line =~ /\S/) {
			$ncont = ($line =~ s/\\$//g);
			if ($cont || $line =~ /^\s+/) {
				$line[$#line] .= $line;
				$eline[@line - 1] = $lnum;
				}
			else {
				push(@line, $line);
				$eline[@line - 1] = $sline[@line - 1] = $lnum;
				}
			$cont = $ncont;
			}
		else {
			# only keep comments immediately before an entry
			$comment[@line] = undef;
			}
		}
	$lnum++;
	}
close(CAP);
for($i=0; $i<@line; $i++) {
	local(%cap);
	next if ($line[$i] =~ /^include\s+(\S+)/);
	@w = split(/:+/, $line[$i]);
	$cap{'name'} = $w[0];
	$cap{'line'} = $sline[$i] - ($comment[$i] ? 1 : 0);
	$cap{'eline'} = $eline[$i];
	$cap{'comment'} = $comment[$i];
	foreach $w (@w[1..$#w]) {
		if ($w =~ /^([A-z0-9]+)[=#](.*)$/) { $cap{$1} = $2; }
		elsif ($w =~ /^([A-z0-9]+)$/) { $cap{$w} = ""; }
		}
	push(@rv, \%cap);
	}
return @rv;
}

# apply_status(&details)
# Calls lpc to enable or disable a printer.
# Restarting lpd doesn't seem to be necessary?
sub apply_status
{
local $out;
if ($prn{'enabled'}) {
	$out = &backquote_logged("lpc -P$prn{'name'} start 2>&1");
	}
else {
	$out = &backquote_logged("lpc -P$prn{'name'} stop 2>&1");
	}
if ($prn{'accepting'}) {
	$out = &backquote_logged("lpc -P$prn{'name'} enable 2>&1");
	}
else {
	$out = &backquote_logged("lpc -P$prn{'name'} disable 2>&1");
	}
}

# sched_running()
# Returns the pid if lpsched is running, 0 if not, -1 if cannot be stopped
sub sched_running
{
local $out = `lpc lpd all 2>&1`;
return $out =~ /pid\s+(\d+)/ ? $1 : 0;
}

# start_sched()
# Start lpsched
sub start_sched
{
local $out = &backquote_logged("lpd 2>&1");
if ($? || $out =~ /error/i) { &error("<tt>$out</tt>"); }
}

# stop_sched(pid)
# Stop the running lpsched process
sub stop_sched
{
&kill_logged('INT', $_[0]) || &error(&text("estop", $!));
}

# print_command(printer, file)
# Returns the command to print some file on some printer
sub print_command
{
return "lpr -P$_[0] $_[1]";
}

if (-r "/dev/lp0") {
	@device_files = ("/dev/lp0", "/dev/lp1",
			 "/dev/ttyS0", "/dev/ttyS1", "/dev/null");
	}
else {
	@device_files = ("/dev/lp1", "/dev/lp2",
			 "/dev/ttyS0", "/dev/ttyS1", "/dev/null");
	}
if (-r "/dev/usblp0") {
	push(@device_files, "/dev/usblp0", "/dev/usblp1",
			    "/dev/usblp2", "/dev/usblp3");
	}
@device_names = (&text('lprng_paralel', "1"), &text('lprng_paralel', "2"),
		 &text('lprng_serial', "1"), &text('lprng_serial', "2"),
		 $text{'lprng_null'}, &text('linux_usb', 1),
		 &text('linux_usb', 2), &text('linux_usb', 3),
		 &text('linux_usb', 4));


   07070100074be3000081a40000000000000002000000013ac0389800000259000000200000000000000000000000000000001a00000003reloc/lpadmin/module.info desc_zh_CN=打印机管理
name=lpadmin
desc_pt=Administra玢o de Impressoras
depends=0.75
desc_tr=Yaz齝 Y鰊etimi
desc_fr=Administration de l'Imprimante
desc_es=Administraci髇 de Impresoras
desc_de=Drucker Verwaltung
desc_sv=Skrivaradministration
desc_ru_SU=跣伊滋盼膳 鹨晌耘伊蜕
desc_pl=Zarz眃zanie drukarkami
category=hardware
os_support=solaris redhat-linux slackware-linux suse-linux debian-linux freebsd hpux unixware macos open-linux turbo-linux openbsd corel-linux irix
desc_zh_TW.Big5=诀恨瞶
desc=Printer Administration
desc_hu=Nyomtat髃
risk=low medium high
desc_ru_RU=语疣怆屙桢 橡桧蝈疣扈
   07070100074be4000081a40000000000000002000000013ac03898000026a0000000200000000000000000000000000000002400000003reloc/lpadmin/old-caldera-driver.pl   # caldera-driver.pl
# Functions for printer drivers as generated by COAS

%paper_sizes = ( 'a4', 'A4',
		 'a3', 'A3',
		 'a5', 'A5',
		 'letter', 'US Letter',
		 'legal', 'Legal',
		 'ledger', 'Ledger' );
$driver_dir = "/etc/sysconfig/printers";
$base_driver = "base_coas_driver";
$webmin_windows_driver = 1;

# is_windows_driver(path)
# Returns the server, share, username, password, workgroup, program
# if path is a webmin windows driver
sub is_windows_driver
{
return &is_webmin_windows_driver(@_);
}

# is_driver(path)
# Returns the driver name and dpi if some path is a webmin driver, or undef
sub is_driver
{
if (!$_[0]) {
	return { 'mode' => 0,
		 'desc' => 'None' };
	}
open(DRV, $_[0]);
local @lines = <DRV>;
close(DRV);
if ($lines[1] =~ /^source ($driver_dir\/\S+)/) {
	# Looks like a caldera driver! Read the sysconfig file
	local %conf;
	&read_env_file($1, \%conf);
	if ($conf{'GSDEVICE'} eq 'NET' || $conf{'GSDEVICE'} eq 'RAW') {
		# Driver isn't even used
		return { 'mode' => 0,
			 'desc' => 'None' };
		}
	elsif ($conf{'GSDEVICE'} eq 'uniprint') {
		# Uniprint driver
		foreach $u (&list_uniprint()) {
			$desc = $u->[1] if ($u->[0] eq $conf{'UPP'});
			}
		$desc =~ s/,.*$//g;
		return { 'mode' => 3,
			 'upp' => $conf{'UPP'},
			 'paper' => $conf{'PAPERSIZE'},
			 'double' => lc($conf{'DOUBLEPAGE'}),
			 'eof' => lc($conf{'SENDEOF'}),
			 'desc' => $desc ? $desc : $conf{'UPP'} };
		}
	else {
		# A caldera printer driver
		open(COAS, $config{'coas_printers'});
		local $plist = &parse_coas(COAS);
		close(COAS);
		local ($desc, $p);
		foreach $p (values %$plist) {
			$desc = $p->{'description'}
				if ($p->{'type'}->{'0'} eq $conf{'GSDEVICE'} &&
				    !$desc);
			}
		return { 'mode' => 1,
			 'gsdevice' => $conf{'GSDEVICE'},
			 'gsname' => $conf{'GSNAME'},
			 'res' => $conf{'RESOLUTION'},
			 'paper' => $conf{'PAPERSIZE'},
			 'eof' => lc($conf{'SENDEOF'}),
			 'double' => lc($conf{'DOUBLEPAGE'}),
			 'gsopts' => $conf{'GSOPTS'},
			 'desc' => $conf{'GSNAME'} ? $conf{'GSNAME'} : $desc };
		}
	}
else {
	# A driver of some kind, but not caldera's
	return { 'mode' => 2,
		 'file' => $_[0],
		 'desc' => $_[0] };
	}
}

# create_windows_driver(&printer, &driver)
sub create_windows_driver
{
return &create_webmin_windows_driver(@_);
}

# create_driver(&printer, &driver)
sub create_driver
{
if ($_[1]->{'mode'} == 0) {
	return undef;
	}
elsif ($_[1]->{'mode'} == 2) {
	return $_[1]->{'file'};
	}
else {
	# Create or update the parameters file
	local %conf;
	&read_env_file("$driver_dir/$_[0]->{'name'}", \%conf);
	$conf{'GSDEVICE'} = $_[1]->{'gsdevice'};
	$conf{'GSNAME'} = $_[1]->{'gsname'};
	$conf{'NAME'} = $_[0]->{'name'};
	$conf{'RESOLUTION'} = $_[1]->{'res'};
	$conf{'PAPERSIZE'} = $_[1]->{'paper'};
	$conf{'DESC'} = $_[0]->{'desc'};
	$conf{'SENDEOF'} = $_[1]->{'eof'};
	$conf{'DOUBLEPAGE'} = $_[1]->{'double'};
	$conf{'GSOPTS'} = $_[1]->{'gsopts'};
	$conf{'UPP'} = $_[1]->{'upp'};
	&write_env_file("$driver_dir/$_[0]->{'name'}", \%conf);

	# Create the standard driver program
	open(DRIVER, $base_driver);
	local @lines = <DRIVER>;
	close(DRIVER);
	$lines[1] = "source $driver_dir/$_[0]->{'name'}\n";
	mkdir("$config{'spool_dir'}/$_[0]->{'name'}", 0755);
	local $drv = "$config{'spool_dir'}/$_[0]->{'name'}/printfilter";
	open(DRV, ">$drv");
	print DRV @lines;
	close(DRV);
	return $drv;
	}
}

# delete_driver(name)
sub delete_driver
{
&delete_webmin_driver($_[0]);
unlink("$driver_dir/$_[0]");
}

# driver_input(&printer, &driver)
sub driver_input
{
local $mode = $_[0]->{'rhost'} ? 0 : $_[1]->{'mode'};
printf "<tr> <td><input type=radio name=mode value=0 %s> %s</td>\n",
	$mode == 0 ? 'checked' : '', $text{'caldera_none'};
print "<td>($text{'caldera_nonemsg'})</td> </tr>\n";
printf "<tr> <td><input type=radio name=mode value=2 %s> %s</td>",
	$mode == 2 ? 'checked' : '', $text{'caldera_prog'};
printf "<td><input name=program size=40 value='%s'></td> </tr>\n",
	$mode == 2 ? $_[0]->{'iface'} : '';

# Normal driver options
printf "<tr> <td valign=top><input type=radio name=mode value=1 %s> %s</td>\n",
	$mode == 1 ? 'checked' : '', $text{'caldera_coas'};
print "<td><table width=100%>\n";

print "<tr> <td valign=top><b>$text{'caldera_printer'}</b></td>\n";
print "<td colspan=3><select size=5 name=gsdevice onChange='setres(0)'>\n";
open(COAS, $config{'coas_printers'});
local $plist = &parse_coas(COAS);
close(COAS);
local ($i, $j, $p, $k, $found, $select_res);
foreach $p (values %$plist) {
	if ($p->{'description'} eq $_[1]->{'gsname'} &&
	    $p->{'type'}->{'0'} ne $_[1]->{'gsdevice'}) {
		# COAS has changed the device
		$_[1]->{'gsname'} = undef;
		}
	}
foreach $k (sort { $a <=> $b } keys %$plist) {
	$p = $plist->{$k};
	next if ($p->{'type'}->{'0'} =~ /NET|RAW/);
	local @thisres = values %{$p->{'resolution'}};
	local $got = ($_[1]->{'gsname'} eq $p->{'description'} &&
		      $_[1]->{'gsdevice'} eq $p->{'type'}->{'0'}) ||
		     (!$_[1]->{'gsname'} && !$found &&
		      $_[1]->{'gsdevice'} eq $p->{'type'}->{'0'});
	printf "<option %s value='%s'>%s\n",
		$got ? 'selected' : '',
		$p->{'description'}.";".join(";", @thisres),
		$p->{'description'};
	$found++ if ($got);
	$select_res = &indexof($_[1]->{'res'}, @thisres) if ($got);
	map { $gotres{$_}++ } @thisres;
	}
print "</select><select name=res size=5>\n";
foreach $r (sort { $a <=> $b} keys %gotres) {
	printf "<option %s>%s\n",
		$_[1]->{'res'} eq $r ? 'selected' : '', $r;
	}
print "</select></td> </tr>\n";

print "<tr> <td><b>$text{'caldera_eof'}</b></td>\n";
printf "<td><input type=radio name=eof value=true %s> $text{'yes'}\n",
	$_[1]->{'eof'} eq 'true' ? 'checked' : '';
printf "<input type=radio name=eof value=false %s> $text{'no'}</td>\n",
	$_[1]->{'eof'} eq 'true' ? '' : 'checked';

print "<td><b>$text{'caldera_paper'}</b></td> <td><select name=paper>\n";
foreach $p (sort { $a cmp $b } keys %paper_sizes) {
	printf "<option value='%s' %s>%s\n",
		$p, $_[1]->{'paper'} eq $p ? 'selected' : '',
		$paper_sizes{$p};
	}
print "</select></td> </tr>\n";

print "<tr> <td><b>$text{'caldera_double'}</b></td>\n";
printf "<td><input type=radio name=double value=true %s> $text{'yes'}\n",
	$_[1]->{'double'} eq 'true' ? 'checked' : '';
printf "<input type=radio name=double value=false %s> $text{'no'}</td>\n",
	$_[1]->{'double'} eq 'true' ? '' : 'checked';

print "<td><b>$text{'caldera_gsopts'}</b></td>\n";
printf "<td><input name=gsopts size=30 value='%s'></td> </tr>\n",
	$_[1]->{'gsopts'};

print "</table></td></tr>\n";

# Uniprint driver options
printf "<tr> <td valign=top><input type=radio name=mode value=3 %s> %s</td>\n",
	$mode == 3 ? 'checked' : '', $text{'caldera_uniprint'};
print "<td><table width=100%>\n";

print "<tr> <td valign=top><b>$text{'caldera_printer'}</b></td>\n";
print "<td colspan=3><select name=uniprint size=5>\n";
foreach $u (&list_uniprint()) {
	printf "<option value=%s %s>%s\n",
		$u->[0], $u->[0] eq $_[1]->{'upp'} ? 'selected' : '', $u->[1];
	}
closedir(DIR);
print "</select></td> </tr>\n";

print "<tr> <td><b>$text{'caldera_eof'}</b></td>\n";
printf "<td><input type=radio name=ueof value=true %s> $text{'yes'}\n",
	$_[1]->{'eof'} eq 'true' ? 'checked' : '';
printf "<input type=radio name=ueof value=false %s> $text{'no'}</td>\n",
	$_[1]->{'eof'} eq 'true' ? '' : 'checked';

print "<td><b>$text{'caldera_paper'}</b></td> <td><select name=upaper>\n";
foreach $p (sort { $a cmp $b } keys %paper_sizes) {
	printf "<option value='%s' %s>%s\n",
		$p, $_[1]->{'paper'} eq $p ? 'selected' : '',
		$paper_sizes{$p};
	}
print "</select></td> </tr>\n";

print "<tr> <td><b>$text{'caldera_double'}</b></td>\n";
printf "<td><input type=radio name=udouble value=true %s> $text{'yes'}\n",
	$_[1]->{'double'} eq 'true' ? 'checked' : '';
printf "<input type=radio name=udouble value=false %s> $text{'no'}</td>\n",
	$_[1]->{'double'} eq 'true' ? '' : 'checked';

print "</table></td></tr>\n";

return <<EOF;
<script>
function setres(sel)
{
var idx = document.forms[0].gsdevice.selectedIndex;
var v = new String(document.forms[0].gsdevice.options[idx].value);
var vv = v.split(";");
var res = document.forms[0].res;
res.length = 0;
for(var i=1; i<vv.length; i++) {
	res.options[i-1] = new Option(vv[i], vv[i]);
	}
if (res.length > 0) {
	res.options[sel].selected = true;
	}
}
setres($select_res);
</script>
EOF
}

# parse_driver()
# Parse driver selection from %in and return a driver structure
sub parse_driver
{
if ($in{'mode'} == 0) {
	return { 'mode' => 0 };
	}
elsif ($in{'mode'} == 2) {
	$in{'program'} =~ /^(\S+)/ && -x $1 ||
		&error(&text('caldera_eprog', $in{'program'}));
	return { 'mode' => 2,
		 'file' => $in{'program'} };
	}
elsif ($in{'mode'} == 1) {
	# Normal ghostscript driver
	open(COAS, $config{'coas_printers'});
	local $plist = &parse_coas(COAS);
	close(COAS);
	$in{'gsdevice'} || &error($text{'caldera_edriver'});
	$in{'gsdevice'} =~ s/;(.*)$//;
	local ($p, $gsdevice);
	foreach $p (values %$plist) {
		$gsdevice = $p->{'type'}->{'0'}
			if ($p->{'description'} eq $in{'gsdevice'});
		}
	$gsdevice eq 'PostScript' || $in{'res'} ||
		&error($text{'caldera_eres'});
	return { 'mode' => 1,
		 'gsdevice' => $gsdevice,
		 'gsname' => $in{'gsdevice'},
		 'res' => $in{'res'},
		 'paper' => $in{'paper'},
		 'eof' => $in{'eof'},
		 'double' => $in{'double'},
		 'gsopts' => $in{'gsopts'} };
	}
else {
	# Uniprint ghostscript driver
	$in{'uniprint'} || &error($text{'caldera_edriver'});
	return { 'mode' => 3,
		 'gsdevice' => 'uniprint',
		 'upp' => $in{'uniprint'},
		 'paper' => $in{'upaper'},
		 'eof' => $in{'ueof'},
		 'double' => $in{'udouble'} };
	}
}

# parse_coas(handle)
sub parse_coas
{
local $h = $_[0];
local (%rv, $_);
while(<$h>) {
	s/#.*$//g;
	s/\r|\n//g;
	if (/^\s*(\S+)\s+{/) {
		# start of a section
		local $k = $1;
		$rv{$k} = &parse_coas($h);
		}
	elsif (/^\s*}/) {
		# end of a section
		last;
		}
	elsif (/^\s*(\S+)\s+(.*)/) {
		# a value in a section
		$rv{$1} = $2;
		}
	}
return \%rv;
}

1;

07070100074be5000081a40000000000000002000000013ac03898000019d3000000200000000000000000000000000000001d00000003reloc/lpadmin/openbsd-lib.pl  # freebsd-lib.pl
# Functions for printcap-style printer management

# list_printers()
# Returns a list of known printer names
sub list_printers
{
local($l, @rv);
foreach $l (&list_printcap()) {
	$l->{'name'} =~ /^([^\|]+)/;
	push(@rv, $1);
	}
return @rv;
}

# get_printer(name, [nostatus])
sub get_printer
{
local($l, %prn, @w, @n, $w, %cap, @jobs);
foreach $l (&list_printcap()) {
	@n = split(/\|/, $l->{'name'});
	if ($n[0] eq $_[0]) {
		# found the printer.. get info from printcap
		$prn{'name'} = $n[0];
		if (@n > 2) { $prn{'alias'} = [ @n[1..$#n-1] ]; }
		if (@n > 1) { $prn{'desc'} = $n[$#n]; }
		$prn{'iface'} = $l->{'if'};
		$prn{'banner'} = !defined($l->{'sh'});
		$prn{'dev'} = $l->{'lp'};
		$prn{'rhost'} = $l->{'rm'};
		$prn{'rqueue'} = $l->{'rp'};
		$prn{'msize'} = $l->{'mx'};

		if (!$_[1]) {
			# call lpc to get status
			$out = `lpc status $prn{'name'} 2>&1`;
			$prn{'accepting'} = ($out =~ /queuing is enabled/);
			$prn{'enabled'} = ($out =~ /printing is enabled/);
			}

		return \%prn;
		}
	}
return undef;
}

sub get_jobs
{
local @jobs;
open(LPQ, "lpq -P$_[0] |");
while(<LPQ>) {
	chop;
	if (/^Rank\s+Owner\s+/) { $doneheader++; }
	elsif ($doneheader && /^(\S+)\s+(\S+)\s+(\d+)\s+(.*\S)\s+(\d+)\s+(\S+)$/) {
		local(%job);
		$job{'id'} = $3;
		$job{'user'} = $2;
		$job{'size'} = $5;
		$job{'file'} = $4;
		$job{'printing'} = ($1 eq "active");
		push(@jobs, \%job);
		}
	}
close(LPQ);
return @jobs;
}

sub printer_support
{
return $_[0] !~ /^(why|allow|default|ctype|riface|sysv|direct|rnoqueue|ipp)$/;
}


# create_printer(&details)
# Create a new printer in /etc/printcap
sub create_printer
{
local(%cap);
$cap{'sd'} = "$config{'spool_dir'}/$_[0]->{'name'}";
&lock_file($cap{'sd'});
mkdir($cap{'sd'}, 0755);
&unlock_file($cap{'sd'});
&lock_file($config{'printcap_file'});
open(CAP, ">> $config{'printcap_file'}");
print CAP &make_printcap($_[0], \%cap),"\n";
close(CAP);
&unlock_file($config{'printcap_file'});
&apply_status($_[0]);
}

# modify_printer(&details)
sub modify_printer
{
local(@old, $o, $old, @cap);
&lock_file($config{'printcap_file'});
@old = &list_printcap();
foreach $o (@old) {
	$o->{'name'} =~ /^([^\|]+)/;
	if ($1 eq $_[0]->{'name'}) {
		# found current details
		$old = $o;
		last;
		}
	}
if (!$old) { &error("Printer '$_[0]->{'name'}' no longer exists"); }
open(CAP, $config{'printcap_file'});
@cap = <CAP>;
close(CAP);
splice(@cap, $old->{'line'},
       $old->{'eline'} - $old->{'line'} + 1, &make_printcap($_[0], $old)."\n");
open(CAP, "> $config{'printcap_file'}");
print CAP @cap;
close(CAP);
&unlock_file($config{'printcap_file'});
&apply_status($_[0]);
}

# delete_printer(name)
sub delete_printer
{
local(@old, $o, $old, @cap);
&lock_file($config{'printcap_file'});
@old = &list_printcap();
foreach $o (@old) {
	$o->{'name'} =~ /^([^\|]+)/;
	if ($1 eq $_[0]) {
		# found current details
		$old = $o;
		last;
		}
	}
if (!$old) { &error("Printer '$_[0]' no longer exists"); }
open(CAP, $config{'printcap_file'});
@cap = <CAP>;
close(CAP);
splice(@cap, $old->{'line'}, $old->{'eline'} - $old->{'line'} + 1);
open(CAP, "> $config{'printcap_file'}");
print CAP @cap;
close(CAP);
&unlock_file($config{'printcap_file'});
}

# cancel_job(printer, job)
# Calls lprm to remove some job
sub cancel_job
{
local($out);
$out = &backquote_logged("lprm -P$_[0] $_[1] 2>&1");
if ($?) { &error("lprm failed : $out"); }
}

# make_printcap(&details, &old)
# Updates or creates a printcap line
sub make_printcap
{
local(%prn, %cap, $a, $rv, $c);
%prn = %{$_[0]}; %cap = %{$_[1]};
$cap{'if'} = $prn{'iface'} ? $prn{'iface'} : undef;
$cap{'sh'} = $prn{'banner'} ? undef : "";
$cap{'lp'} = $prn{'dev'} ? $prn{'dev'} : undef;
$cap{'rm'} = $prn{'rhost'} ? $prn{'rhost'} : undef;
$cap{'rp'} = $prn{'rqueue'} ? $prn{'rqueue'} : undef;
$cap{'mx'} = defined($prn{'msize'}) ? $prn{'msize'} : undef;
$rv = $prn{'name'};
foreach $a (@{$prn{'alias'}}) { $rv .= "|$a"; }
$rv .= "|$prn{'desc'}";
foreach $c (keys %cap) {
	if (length($c) == 2 && defined($cap{$c})) {
		if ($cap{$c} eq "") { $rv .= ":$c"; }
		elsif ($cap{$c} =~ /^\d+$/) { $rv .= ":$c#$cap{$c}"; }
		else { $rv .= ":$c=$cap{$c}"; }
		}
	}
$rv .= ":";
return $rv;
}

# list_printcap()
# Returns an array of associative arrays containing printcap fields
sub list_printcap
{
local(@rv, @line, $line, $cont, $lnum, $i);
open(CAP, $config{'printcap_file'});
$lnum = 0;
while($line = <CAP>) {
	$line =~ s/^#.*$//g;	# remove comments
	$line =~ s/\s+$//g;	# remove trailing spaces
	$line =~ s/^\s+//g;	# remove leading spaces
	if ($line =~ /\S/) {
		$ncont = ($line =~ s/\\$//g);
		if ($cont) {
			$line[$#line] .= $line;
			$eline[@line - 1] = $lnum;
			}
		else {
			push(@line, $line);
			$eline[@line - 1] = $sline[@line - 1] = $lnum;
			}
		$cont = $ncont;
		}
	$lnum++;
	}
close(CAP);
for($i=0; $i<@line; $i++) {
	local(%cap);
	@w = split(/:+/, $line[$i]);
	$cap{'name'} = $w[0];
	$cap{'line'} = $sline[$i];
	$cap{'eline'} = $eline[$i];
	foreach $w (@w[1..$#w]) {
		if ($w =~ /^([A-z0-9]+)[=#](.*)$/) { $cap{$1} = $2; }
		elsif ($w =~ /^([A-z0-9]+)$/) { $cap{$w} = ""; }
		}
	push(@rv, \%cap);
	}
return @rv;
}

# apply_status(&details)
# Calls lpc to enable or disable a printer.
# Restarting lpd doesn't seem to be necessary?
sub apply_status
{
local($out);
$out = `lpc status $prn{'name'} 2>&1`;
if ($prn{'enabled'} && $out !~ /printing is enabled/)
	{ &backquote_logged("lpc up $prn{'name'}"); }
elsif (!$prn{'enabled'} && $out =~ /printing is enabled/)
	{ &backquote_logged("lpc down $prn{'name'}"); }
if ($prn{'accepting'} && $out !~ /queuing is enabled/)
	{ &backquote_logged("lpc enable $prn{'name'}"); }
elsif (!$prn{'accepting'} && $out =~ /queuing is enabled/)
	{ &backquote_logged("lpc disable $prn{'name'}"); }
}

# sched_running()
# Returns the pid if lpsched is running, 0 if not, -1 if cannot be stopped
sub sched_running
{
@pid = &find_byname("lpd");
if (@pid) { return $pid[0]; }
return 0;
}

# start_sched()
# Start lpsched
sub start_sched
{
local $out = &backquote_logged("lpd 2>&1");
if ($?) { &error("failed to start lpd : <tt>$out</tt>"); }
}

# stop_sched(pid)
# Stop the running lpsched process
sub stop_sched
{
&kill_logged('TERM', $_[0]) || &error("Failed to stop lpd : $!");
}

# print_command(printer, file)
# Returns the command to print some file on some printer
sub print_command
{
return "lpr -P$_[0] $_[1]";
}

if ($gconfig{'os_type'} eq 'openbsd') {
	@device_files = ("/dev/lpt0", "/dev/cua00", "/dev/cua01");
	}
else {
	@device_files = ("/dev/lpt0", "/dev/cuaa0", "/dev/cuaa1");
	}
@device_names = ($text{'freebsd_paralel'}, &text('freebsd_serial', "1"),
		 &text('freebsd_serial', "2"));

 07070100074be6000081a40000000000000002000000013ac0389a00001e81000000200000000000000000000000000000002200000003reloc/lpadmin/printconf-driver.pl # printconf-driver.pl
# Functions for printer drivers as created by redhat 7.1

$mf_wrapper = "/usr/share/printconf/mf_wrapper";
@overview_files = ( "/usr/share/printconf/foomatic/data/00-overview.foo",
		    "/usr/share/printconf/foomatic/rh-data/00-overview.foo" );
$mfomatic = "/usr/share/printconf/foomatic/mfomatic";
$smb_driver = "/usr/share/printconf/smbprint";

# is_windows_driver(path, &printer)
# Returns a driver structure if some path is a windows driver
sub is_windows_driver
{
local $sd = "$config{'spool_dir'}/$_[1]->{'name'}";
if ($_[1]->{'dev'} eq "|$smb_driver" && -r "$sd/account") {
	# Looks like a redhat SMB driver
	local %sconfig;
	&read_env_file("$sd/account", \%sconfig);
	$sconfig{'share'} =~ /^\\\\(.*)\\(.*)$/;
	return { 'server' => $1,
		 'share' => $2,
		 'user' => $sconfig{'user'},
		 'pass' => $sconfig{'password'},
		 'workgroup' => $sconfig{'workgroup'},
		 'program' => $_[0] };
	}
return undef;

}

# is_driver(path, &printer)
# Returns a structure containing the details of a driver
# XXX do we need to support old redhat drivers?
sub is_driver
{
if (!$_[0]) {
	return { 'mode' => 0,
		 'desc' => "$text{'redhat_none'}" };
	}
local $sd = "$config{'spool_dir'}/$_[1]->{'name'}";
if ($_[0] eq $mf_wrapper && -r "$sd/mf.cfg") {
	# Looks like a new printconf driver
	local %define;
	&read_m4_file("$sd/mf.cfg", \%define);
	if ($define{'PSfilter'} eq 'postscript') {
		return { 'mode' => 1,
			 'postscript' => 1,
			 'desc' => 'Postscript printer' };
		}
	elsif (!$define{'PSfilter'} && $define{'TEXTfilter'} eq 'text') {
		return { 'mode' => 1,
			 'text' => 1,
			 'desc' => 'Text printer' };
		}
	elsif ($define{'PSfilter'} =~ /\/([^\/\s]+)-(\d+)\.foo$/) {
		return { 'mode' => 1,
			 'driver' => $1,
			 'id' => $2,
			 'make' => $define{'MAKE'},
			 'model' => $define{'MODEL'},
			 'desc' => "$define{'MAKE'} $define{'MODEL'}" };
		}
	}

# Some other kind of driver
return { 'mode' => 2,
	 'file' => $_[0],
	 'desc' => $_[0] };
}

# read_m4_file(file, &hash)
sub read_m4_file
{
open(CFG, $_[0]);
while(<CFG>) {
	s/#.*$//; s/\r|\n//g;
	if (/^\s*define\(([A-Za-z0-9\_]+)\s*,\s*`([^']*)'\)/) {
		$_[1]->{$1} = $2;
		}
	}
close(CFG);
}

# create_windows_driver(&printer, &driver)
# Creates a new windows printer driver
sub create_windows_driver
{
local $sd = "$config{'spool_dir'}/$_[0]->{'name'}";

# Create the config file and driver
local %sconfig;
$sconfig{'share'} = "\\\\$_[1]->{'server'}\\$_[1]->{'share'}";
$sconfig{'hostip'} = $_[1]->{'server'} eq $config{'hostip'} ?
			$sconfig{'hostip'} : undef;
$sconfig{'user'} = $_[1]->{'user'};
$sconfig{'password'} = $_[1]->{'pass'};
$sconfig{'workgroup'} = $_[1]->{'workgroup'};
&lock_file($sd);
mkdir($sd, 0755);
&unlock_file($sd);
&lock_file("$sd/account");
open(ENV, ">$sd/account");
print ENV "share='$sconfig{'share'}'\n";
print ENV "hostip=$sconfig{'hostip'}\n";
print ENV "user='$sconfig{'user'}'\n";
print ENV "password='$sconfig{'password'}'\n";
print ENV "workgroup='$sconfig{'workgroup'}'\n";
close(ENV);
&unlock_file("$sd/account");

# Set the print device
$_[0]->{'dev'} = "|$smb_driver";
return $_[1]->{'program'};
}

# create_driver(&printer, &driver)
# Creates a new local printer driver and returns the path
sub create_driver
{
local ($prn, $drv) = @_;
if ($drv->{'mode'} == 0) {
	return undef;
	}
elsif ($drv->{'mode'} == 2) {
	return $drv->{'file'};
	}
else {
	# Create the config file
	local $sd = "$config{'spool_dir'}/$_[0]->{'name'}";
	&lock_file("$sd/mf.cfg");
	if ($drv->{'text'}) {
		%driver = ( 'TEXTfilter', 'text' );
		}
	elsif ($drv->{'postscript'}) {
		%driver = ( 'PSfilter', 'postscript' );
		}
	else {
		local $base = "$drv->{'driver'}-$drv->{'id'}.foo";
		local $path;
		foreach $f (@overview_files) {
			local $d = $f; $d =~ s/\/[^\/]+$//;
			$path = "$d/$base" if (-r "$d/$base");
			}
		&read_m4_file("$sd/mf.cfg", \%driver);
		$driver{'MAKE'} = $drv->{'make'};
		$driver{'MODEL'} = $drv->{'model'};
		$driver{'COLOR'} = 'true';	# ???
		$driver{'PSfilter'} = "filter $mfomatic -d $path"; 
		$driver{'TEXTfilter'} = 'text';
		$driver{'PCLfilter'} = 'cat';
		$driver{'PJLfilter'} = 'cat';
		}
	mkdir($sd, 0755);
	open(CFG, ">$sd/mf.cfg");
	foreach $d (keys %driver) {
		print CFG "define($d, `$driver{$d}')dnl\n";
		}
	close(CFG);
	&unlock_file("$sd/mf.cfg");
	return $mf_wrapper;
	}
}

# delete_driver(name)
sub delete_driver
{
local $sd = "$config{'spool_dir'}/$_[0]";
unlink("$sd/mf.cfg", "$sd/account");
}

# driver_input(&printer, &driver)
sub driver_input
{
local ($prn, $drv) = @_;

printf "<tr> <td><input type=radio name=mode value=0 %s> %s</td>\n",
	$drv->{'mode'} == 0 ? "checked" : "", $text{'redhat_none'};
print "<td>($text{'redhat_nonemsg'})</td> </tr>\n";

printf "<tr> <td><input type=radio name=mode value=2 %s> %s</td>\n",
	$drv->{'mode'} == 2 ? "checked" : "", $text{'redhat_prog'};
printf "<td><input name=iface value=\"%s\" size=35></td> </tr>\n",
	$drv->{'mode'} == 2 ? $drv->{'file'} : "";

printf "<tr> <td valign=top><input type=radio name=mode value=1 %s>\n",
	$drv->{'mode'} == 1 ? "checked" : "";
print "$text{'redhat_driver'}</td> <td><table width=100%>";

print "<tr> <td valign=top><b>$text{'redhat_printer2'}</b></td>\n";
print "<td><select name=printer size=10 onChange='setdriver(0)'>\n";
printf "<option value=%s %s>%s\n",
	'text', $drv->{'text'} ? 'selected' : '', "Text printer";
printf "<option value=%s %s>%s\n",
	'postscript', $drv->{'postscript'} ? 'selected' : '',
	"Postscript printer";

local $list = &list_printconf_drivers();
local $select_driver = 0;
foreach $k (sort { lc($a) cmp lc($b) } keys %$list) {
	foreach $m (@{$list->{$k}}) {
		next if (!@{$m->{'drivers'}});
		printf "<option value='%s' %s>%s\n",
			join(";", $m->{'id'}, @{$m->{'drivers'}}),
			$drv->{'make'} eq $k &&
			$drv->{'model'} eq $m->{'model'} ? 'selected' : '',
			"$k $m->{'model'}";
		if ($drv->{'make'} eq $k && $drv->{'model'} eq $m->{'model'}) {
			$select_driver = &indexof($drv->{'driver'},
						  @{$m->{'drivers'}});
			}
		}
	}
print "</select><select name=driver size=10 width=100></select></td> </tr>\n";

print "</table></td></tr>\n";
return <<EOF;
<script>
function setdriver(sel)
{
var idx = document.forms[0].printer.selectedIndex;
var v = new String(document.forms[0].printer.options[idx].value);
var vv = v.split(";");
var driver = document.forms[0].driver;
driver.length = 0;
for(var i=1; i<vv.length; i++) {
	driver.options[i-1] = new Option(vv[i], vv[i]);
	}
if (driver.length > 0) {
	driver.options[sel].selected = true;
	}
}
setdriver($select_driver);
</script>
EOF
}

# parse_driver()
# Parse driver selection from %in and return a driver structure
sub parse_driver
{
if ($in{'mode'} == 0) {
	return { 'mode' => 0 };
	}
elsif ($in{'mode'} == 2) {
	(-x $in{'iface'}) || &error(&text('redhat_eprog', $in{'iface'}));
	return { 'mode' => 2,
		 'file' => $in{'iface'} };
	}
else {
	$in{'printer'} || &error($text{'redhat_edriver'});
	if ($in{'printer'} eq 'text') {
		return { 'mode' => 1,
			 'text' => 1 };
		}
	elsif ($in{'printer'} eq 'postscript') {
		return { 'mode' => 1,
			 'postscript' => 1 };
		}
	else {
		$in{'driver'} || &error($text{'redhat_edriver'});
		local @p = split(/;/, $in{'printer'});
		local $list = &list_printconf_drivers();
		local ($make, $model);
		foreach $k (keys %$list) {
			foreach $m (@{$list->{$k}}) {
				if ($m->{'id'} == $p[0]) {
					$make = $k;
					$model = $m->{'model'};
					}
				}
			}
		return { 'mode' => 1,
			 'id' => $p[0],
			 'make' => $make,
			 'model' => $model,
			 'driver' => $in{'driver'} };
		}
	}
}

# list_printconf_drivers()
sub list_printconf_drivers
{
local %rv;
foreach $ov (@overview_files) {
	next if (!-r $ov);
	local $VAR1;
	eval { do $ov };
	next if ($@);
	foreach $k (keys %$VAR1) {
		foreach $m (@{$VAR1->{$k}}) {
			push(@{$rv{$k}}, $m);
			}
		}
	}
return \%rv;
}

   07070100074be7000081a40000000000000002000000013ac038990000316b000000200000000000000000000000000000001f00000003reloc/lpadmin/redhat-driver.pl    # redhat-driver.pl
# Functions for printer drivers as created by redhat

%paper_sizes = ( 'a4', 'A4',
		 'a3', 'A3',
		 'letter', 'US Letter',
		 'legal', 'Legal',
		 'ledger', 'Ledger' );
$rhs_drivers_file = "/usr/lib/rhs/rhs-printfilters/printerdb";
$base_driver = "/usr/lib/rhs/rhs-printfilters/master-filter";
$smb_driver = "/usr/lib/rhs/rhs-printfilters//smbprint";
$ncp_driver = "/usr/lib/rhs/rhs-printfilters//ncpprint";

# is_windows_driver(path, %driver)
# Returns a driver structure if some path is a windows driver
sub is_windows_driver
{
local $sd = "$config{'spool_dir'}/$_[1]->{'name'}";
if (($_[0] eq $smb_driver || $_[0] eq "$sd/filter") && -r "$sd/.config" &&
    $_[1]->{'comment'} =~ /^##PRINTTOOL3##\s+SMB/) {
	# Looks like a redhat SMB driver
	local %sconfig;
	&read_env_file("$sd/.config", \%sconfig);
	$sconfig{'share'} =~ /^\\\\(.*)\\(.*)$/;
	return { 'server' => $1,
		 'share' => $2,
		 'user' => $sconfig{'user'},
		 'pass' => $sconfig{'password'},
		 'workgroup' => $sconfig{'workgroup'},
		 'program' => $_[0] eq "$sd/filter" ? "$sd/filter" : undef };
	}
return undef;
}

# is_driver(path, &printer)
# Returns a structure containing the details of a driver
sub is_driver
{
if (!$_[0]) {
	return { 'mode' => 0,
		 'desc' => "$text{'redhat_none'}" };
	}
local $sd = "$config{'spool_dir'}/$_[1]->{'name'}";
if ($_[0] eq "$sd/filter" &&
    $_[1]->{'comment'} =~ /^##PRINTTOOL3##\s+(LOCAL|REMOTE|SMB)\s+(\S+)\s+(\S+)\s+(\S+)\s+\S+\s+(\S+)\s+(\S+)\s+/) {
	# Looks like a redhat driver ..
	local ($r, $rhs);
	foreach $r (&read_rhs_drivers()) {
		$rhs = $r if ($r->{'name'} eq $5);
		}
	local (%general, %postscript, %textonly);
	&read_env_file("$sd/general.cfg", \%general);
	&read_env_file("$sd/postscript.cfg", \%postscript);
	&read_env_file("$sd/textonly.cfg", \%textonly);
	return { 'mode' => 1,
		 'gsdevice' => $postscript{'GSDEVICE'},
		 'res' => $postscript{'RESOLUTION'},
		 'paper' => $postscript{'PAPERSIZE'},
		 'gsopts' => $postscript{'EXTRA_GS_OPTIONS'},
		 'eof' => lc($textonly{'TEXT_SEND_EOF'}),
		 'nup' => $postscript{'NUP'},
		 'hmargin' => $postscript{'RTLFTMAR'},
		 'vmargin' => $postscript{'TOPBOTMAR'},
		 'crlf' => $textonly{'CRLFTRANS'},
		 'bpp' => $postscript{'COLOR'} =~ /-dBitsPerPixel=(\d+)/ ? $1
				: $postscript{'COLOR'},
		 'rhsname' => $rhs->{'name'},
		 'desc' => $rhs->{'desc'} };
	}
else {
	# Some other kind of driver
	return { 'mode' => 2,
		 'file' => $_[0],
		 'desc' => $_[0] };
	}
}

# create_windows_driver(&printer, &driver)
# Creates a new windows printer driver
sub create_windows_driver
{
local $sd = "$config{'spool_dir'}/$_[0]->{'name'}";

# Create the config file and driver
local %sconfig;
&read_env_file("$sd/.config", \%sconfig);
$sconfig{'share'} = "\\\\$_[1]->{'server'}\\$_[1]->{'share'}";
$sconfig{'hostip'} = $_[1]->{'server'} eq $config{'hostip'} ?
			$sconfig{'hostip'} : undef;
$sconfig{'user'} = $_[1]->{'user'};
$sconfig{'password'} = $_[1]->{'pass'};
$sconfig{'workgroup'} = $_[1]->{'workgroup'};
&lock_file($sd);
mkdir($sd, 0755);
&unlock_file($sd);
&lock_file("$sd/.config");
open(ENV, ">$sd/.config");
print ENV "share='$sconfig{'share'}'\n";
print ENV "hostip=$sconfig{'hostip'}\n";
print ENV "user='$sconfig{'user'}'\n";
print ENV "password='$sconfig{'password'}'\n";
print ENV "workgroup='$sconfig{'workgroup'}'\n";
close(ENV);
&unlock_file("$sd/.config");

# Setup the comment and return the driver
local $drv = &is_driver($_[1]->{'program'}, $_[0]);
if ($drv->{'mode'} == 1) {
	local %general;
	&lock_file("$sd/general.cfg");
	&read_env_file("$sd/general.cfg", \%general);
	$general{'PRINTER_TYPE'} = 'SMB';
	&write_env_file("$sd/general.cfg", \%general, 1);
	&unlock_file("$sd/general.cfg");
	$_[0]->{'comment'} =~ s/\s+LOCAL\s+/ SMB /;
	return $_[1]->{'program'};
	}
else {
	$_[0]->{'comment'} = "##PRINTTOOL3## SMB";
	return $smb_driver;
	}
}

# create_driver(&printer, &driver)
# Creates a new local printer driver and returns the path
sub create_driver
{
local ($prn, $drv) = @_;
if ($drv->{'mode'} == 0) {
	$prn->{'comment'} =
		join(" ", "##PRINTTOOL3##",
			  $prn->{'rhost'} ? "REMOTE" : "LOCAL");
	return undef;
	}
elsif ($drv->{'mode'} == 2) {
	$prn->{'comment'} =
		join(" ", "##PRINTTOOL3##",
			  $prn->{'rhost'} ? "REMOTE" : "LOCAL");
	return $drv->{'file'};
	}
else {
	if (!-d $config{'spool_dir'}) {
		&lock_file($config{'spool_dir'});
		mkdir($config{'spool_dir'}, 0755);
		&unlock_file($config{'spool_dir'});
		&system_logged("chown $config{'iface_owner'} $config{'spool_dir'}");
		}
	local $sd = "$config{'spool_dir'}/$_[0]->{'name'}";

	# create the config files
	local (%general, %postscript, %textonly);
	&lock_file("$sd/general.cfg");
	&lock_file("$sd/postscript.cfg");
	&lock_file("$sd/textonly.cfg");
	&read_env_file("$sd/general.cfg", \%general);
	&read_env_file("$sd/postscript.cfg", \%postscript);
	&read_env_file("$sd/textonly.cfg", \%textonly);
	if (!%general) {
		# setup for the first time..
		%general = ( 'DESIRED_TO', 'ps',
			     'ASCII_TO_PS', 'NO' );
		}
	$general{'PAPERSIZE'} = $drv->{'paper'};
	$general{'PRINTER_TYPE'} = $_[0]->{'rhost'} ? "REMOTE" : "LOCAL";
	$postscript{'GSDEVICE'} = $drv->{'gsdevice'};
	$postscript{'RESOLUTION'} = $drv->{'res'} ? $drv->{'res'} : "NAxNA";
	$postscript{'COLOR'} = $drv->{'bpp'} =~ /^\d+$/ ?
			"-dBitsPerPixel=$drv->{'bpp'}" : $drv->{'bpp'};
	$postscript{'PAPERSIZE'} = $drv->{'paper'};
	$postscript{'EXTRA_GS_OPTIONS'} = $drv->{'gsopts'};
	$postscript{'PS_SEND_EOF'} = uc($drv->{'eof'});
	$postscript{'NUP'} = $drv->{'nup'};
	$postscript{'RTLFTMAR'} = $drv->{'hmargin'};
	$postscript{'TOPBOTMAR'} = $drv->{'vmargin'};
	$textonly{'TEXT_SEND_EOF'} = uc($drv->{'eof'});
	$textonly{'CRLFTRANS'} = $drv->{'crlf'};
	&lock_file($sd);
	mkdir($sd, 0755);
	&unlock_file($sd);
	&write_env_file("$sd/general.cfg", \%general, 1);
	&write_env_file("$sd/postscript.cfg", \%postscript);
	&write_env_file("$sd/textonly.cfg", \%textonly);
	&unlock_file("$sd/general.cfg");
	&unlock_file("$sd/postscript.cfg");
	&unlock_file("$sd/textonly.cfg");

	# create the comment
	$_[0]->{'comment'} =
		join(" ", "##PRINTTOOL3##",
			  $_[0]->{'rhost'} ? "REMOTE" : "LOCAL",
			  $drv->{'gsdevice'},
			  $drv->{'res'} ? $drv->{'res'} : "NAxNA",
			  $drv->{'paper'},
			  "{}",
			  $drv->{'rhsname'},
			  $drv->{'bpp'} ? $drv->{'bpp'} : "Default",
			  $drv->{'crlf'} ? 1 : "{}" );

	# copy the standard filter into place
	&lock_file("$sd/filter");
	unlink("$sd/filter");
	system("cp $base_driver $sd/filter");
	&unlock_file("$sd/filter");
	return "$sd/filter";
	}
}

# delete_driver(name)
sub delete_driver
{
local $sd = "$config{'spool_dir'}/$_[0]";
unlink("$sd/.config", "$sd/filter");
unlink("$sd/general.cfg", "$sd/postscript.cfg", "$sd/textonly.cfg");
}

# driver_input(&printer, &driver)
sub driver_input
{
local ($prn, $drv) = @_;

printf "<tr> <td><input type=radio name=mode value=0 %s> %s</td>\n",
	$drv->{'mode'} == 0 ? "checked" : "", $text{'redhat_none'};
print "<td>($text{'redhat_nonemsg'})</td> </tr>\n";

printf "<tr> <td><input type=radio name=mode value=2 %s> %s</td>\n",
	$drv->{'mode'} == 2 ? "checked" : "", $text{'redhat_prog'};
printf "<td><input name=iface value=\"%s\" size=35></td> </tr>\n",
	$drv->{'mode'} == 2 ? $drv->{'file'} : "";

printf "<tr> <td valign=top><input type=radio name=mode value=1 %s>\n",
	$drv->{'mode'} == 1 ? "checked" : "";
print "$text{'redhat_driver'}</td> <td><table width=100%>";

print "<tr> <td valign=top><b>$text{'redhat_printer'}</b></td>\n";
print "<td colspan=3><select size=5 name=gsdevice onChange='setres(0)'>\n";
local @rhs = &read_rhs_drivers();
local ($r, $select_res, $rr);
local $bpp = $drv->{'bpp'};
local $res = $drv->{'res'};
foreach $r (@rhs) {
	local @res;
	if ($r->{'res'} && $r->{'bpp'}) {
		foreach $rr (@{$r->{'res'}}) {
			push(@res, map { "$rr->[0]x$rr->[1], $_->[0] DPI, $_->[1]" } @{$r->{'bpp'}});
			}
		for($i=0; $i<@res; $i++) {
			$select_res = $i if ($res[$i] =~ /^$res, $bpp / &&
					     $drv->{'rhsname'} eq $r->{'name'});
			}
		}
	elsif ($r->{'res'}) {
		@res = map { "$_->[0]x$_->[1]" } @{$r->{'res'}};
		$select_res = &indexof($res, @res)
			if ($drv->{'rhsname'} eq $r->{'name'});
		}
	else {
		@res = map { "$_->[1], $_->[0]" } @{$r->{'bpp'}};
		for($i=0; $i<@res; $i++) {
			$select_res = $i if ($res[$i] =~ / $bpp$/ &&
					     $drv->{'rhsname'} eq $r->{'name'});
			}
		}
	printf "<option value='%s' %s>%s\n",
		$r->{'name'}.";".join(";", @res),
		$drv->{'rhsname'} eq $r->{'name'} ? 'selected' : '',
		$r->{'desc'};
	}
print "</select><select size=5 name=res width=250>\n";
print "</select></td> </tr>\n";

print "<tr> <td><b>$text{'redhat_eof'}</b></td>\n";
printf "<td><input type=radio name=eof value=yes %s> $text{'yes'}\n",
	$drv->{'eof'} eq 'yes' ? 'checked' : '';
printf "<input type=radio name=eof value=no %s> $text{'no'}</td>\n",
	$drv->{'eof'} eq 'yes' ? '' : 'checked';

print "<td><b>$text{'redhat_paper'}</b></td> <td><select name=paper>\n";
foreach $p (sort { $a cmp $b } keys %paper_sizes) {
	printf "<option value='%s' %s>%s\n",
		$p, $drv->{'paper'} eq $p ? 'selected' : '',
		$paper_sizes{$p};
	}
print "</select></td> </tr>\n";

print "<tr> <td><b>$text{'redhat_pages'}</b></td>\n";
print "<td><select name=nup>\n";
foreach $p (1, 2, 4, 8) {
	printf "<option %s>%s\n",
		$drv->{'nup'} == $p ? 'selected' : '', $p;
	}
print "</select></td>\n";

print "<td><b>$text{'redhat_gsopts'}</b></td>\n";
printf "<td><input name=gsopts size=30 value='%s'></td> </tr>\n",
	$drv->{'gsopts'};

print "<tr> <td><b>$text{'redhat_hmargin'}</b></td>\n";
printf "<td><input name=hmargin size=6 value='%s'></td>\n",
	$drv->{'hmargin'} ? $drv->{'hmargin'} : 18;

print "<td><b>$text{'redhat_vmargin'}</b></td>\n";
printf "<td><input name=vmargin size=6 value='%s'></td> </tr>\n",
	$drv->{'vmargin'} ? $drv->{'vmargin'} : 18;

print "<tr> <td><b>$text{'redhat_crlf'}</b></td>\n";
printf "<td><input type=radio name=crlf value=1 %s> $text{'yes'}\n",
	$drv->{'crlf'} ? 'checked' : '';
printf "<input type=radio name=crlf value=0 %s> $text{'no'}</td>\n",
	$drv->{'crlf'} ? '' : 'checked';

print "</table></td></tr>\n";

return <<EOF;
<script>
function setres(sel)
{
var idx = document.forms[0].gsdevice.selectedIndex;
var v = new String(document.forms[0].gsdevice.options[idx].value);
var vv = v.split(";");
var res = document.forms[0].res;
res.length = 0;
for(var i=1; i<vv.length; i++) {
	res.options[i-1] = new Option(vv[i], i-1);
	}
if (res.length > 0) {
	res.options[sel].selected = true;
	}
}
setres($select_res);
</script>
EOF

}

# parse_driver()
# Parse driver selection from %in and return a driver structure
sub parse_driver
{
if ($in{'mode'} == 0) {
	return { 'mode' => 0 };
	}
elsif ($in{'mode'} == 2) {
	(-x $in{'iface'}) || &error(&text('redhat_eprog', $in{'iface'}));
	return { 'mode' => 2,
		 'file' => $in{'iface'} };
	}
elsif ($in{'mode'} == 1) {
	$in{'gsdevice'} || &error($text{'redhat_edriver'});
	$in{'hmargin'} =~ /^\d+$/ ||
		&error($text{'redhat_ehmargin'});
	$in{'vmargin'} =~ /^\d+$/ ||
		&error($text{'redhat_evmargin'});
	local $drv = { 'mode' => 1,
		       'eof' => $in{'eof'},
		       'paper' => $in{'paper'},
		       'nup' => $in{'nup'},
		       'gsopts' => $in{'gsopts'},
		       'hmargin' => $in{'hmargin'},
		       'vmargin' => $in{'vmargin'},
		       'crlf' => $in{'crlf'} };

	local ($r, $rhs);
	$in{'gsdevice'} =~ s/;.*$//;
	foreach $r (&read_rhs_drivers()) {
		$rhs = $r if ($r->{'name'} eq $in{'gsdevice'});
		}
	if ($rhs->{'res'} && $rhs->{'bpp'}) {
		defined($in{'res'}) || &error($text{'redhat_eres'});
		local $bc = @{$rhs->{'bpp'}};
		local $rs = $rhs->{'res'}->[$in{'res'} / $bc];
		local $bp = $rhs->{'bpp'}->[$in{'res'} % $bc];
		$drv->{'res'} = $rs->[0].'x'.$rs->[1];
		$drv->{'bpp'} = $bp->[0];
		}
	elsif ($rhs->{'res'}) {
		defined($in{'res'}) || &error($text{'redhat_eres'});
		local $rs = $rhs->{'res'}->[$in{'res'}];
		$drv->{'res'} = $rs->[0].'x'.$rs->[1];
		}
	elsif ($rhs->{'bpp'}) {
		defined($in{'res'}) || &error($text{'redhat_eres'});
		$drv->{'bpp'} = $rhs->{'bpp'}->[$in{'res'}]->[0];
		}
	$drv->{'rhsname'} = $rhs->{'name'};
	$drv->{'gsdevice'} = $rhs->{'gsdriver'};
	return $drv;
	}
}

sub read_rhs_drivers
{
local (@rv, $drv);
open(DRV, $rhs_drivers_file);
while(<DRV>) {
	s/#.*$//g;
	s/\r|\n//g;
	if (/^\s*StartEntry:\s+(.*)/) {
		push(@rv, $drv = { 'name' => $1 });
		}
	elsif (/^\s*GSDriver:\s+(\S+)/) {
		$drv->{'gsdriver'} = $1;
		}
	elsif (/^\s*Description:\s+{(.*)}/) {
		$drv->{'desc'} = $1;
		}
	elsif (/^\s*Resolution:\s+{(\d+)}\s+{(\d+)}/) {
		push(@{$drv->{'res'}}, [ $1, $2 ]);
		}
	elsif (/^\s*BitsPerPixel:\s+{(\S+)}\s+{(.*)}/) {
		push(@{$drv->{'bpp'}}, [ $1, $2 ]);
		}
	}
close(DRV);
return @rv;
}

1;

 07070100074be8000081e40000000000000002000000013ac0389a0000012d000000200000000000000000000000000000001a00000003reloc/lpadmin/restart.cgi #!/usr/local/bin/perl
# restart.cgi
# Stop and start the print scheduler

require './lpadmin-lib.pl';
&ReadParse();
$access{'stop'} == 2 || &error($text{'restart_ecannot'});
&error_setup($text{'restart_err'});
&stop_sched($in{'pid'});
sleep(2);
&start_sched();
&webmin_log("restart");
&redirect("");

   07070100074be9000081e40000000000000002000000013ac038990000138e000000200000000000000000000000000000001f00000003reloc/lpadmin/save_printer.cgi    #!/usr/local/bin/perl
# save_printer.cgi
# Create or modify a printer

require './lpadmin-lib.pl';
&ReadParse();
&error_setup($text{'save_err'});

# Check ACL
if ($in{'new'}) {
	$access{'add'} || &error($text{'save_eadd'});
	}
else {
	&can_edit_printer($in{'name'}) ||
		&error($text{'save_eedit'});
	}

# validate and store printer details
$in{'name'} =~ /^[A-z0-9\-\_\.]+$/ ||
	&error(&text('save_ename', $in{'name'}));
if ($in{'new'} && &get_printer($in{'name'})) {
	&error(&text('save_edup', $in{'name'}));
	}
$prn{'name'} = $in{'name'};
$prn{'accepting'} = $in{'accepting'};
if (!$prn{'accepting'}) { $prn{'accepting_why'} = $in{'accepting_why'}; }
$prn{'enabled'} = $in{'enabled'};
if (!$prn{'enabled'}) { $prn{'enabled_why'} = $in{'enabled_why'}; }
$prn{'desc'} = $in{'desc'};
if (&printer_support('allow')) {
	@ul = split(/\s+/, $in{'users'});
	if ($in{'access'} == 0) { $prn{'allow_all'}++; }
	elsif ($in{'access'} == 1) { $prn{'deny_all'}++; }
	else {
		$w = $in{'access'} == 2 ? "allow" : "deny";
		if (!@ul) { &error($text{"save_e$w"}); }
		foreach $u (@ul) {
			if ($u !~ /^\S+\!\S+$/ && !(@dummy=getpwnam($u))) {
				&error(&text('save_euser', $u));
				}
			}
		$prn{$w} = \@ul;
		}
	}
if (&printer_support('ctype')) {
	$prn{'banner'} = $in{'banner'};
	if ($in{'ctype_simple'}) { push(@ctype, "simple"); }
	if ($in{'ctype_postscript'}) { push(@ctype, "postscript"); }
	if ($in{'ctype_other'}) {
		push(@ctype, split(/\s+/, $in{'ctype_olist'}));
		}
	&error($text{'save_etype'}) if (!@ctype);
	$prn{'ctype'} = \@ctype;
	}
$prn{'default'} = $in{'default'};
if (&printer_support('msize')) {
	if ($in{'msize_def'} == 2) {
		$prn{'msize'} = 0;
		}
	elsif ($in{'msize_def'} == 0) {
		$in{'msize'} =~ /^\d+$/ ||
			&error($text{'save_emax'});
		$prn{'msize'} = $in{'msize'};
		}
	}
if (&printer_support('alias')) {
	@alias = split(/\s+/, $in{'alias'});
	$prn{'alias'} = \@alias;
	}

if ($in{'new'} || &printer_support('editdest')) {
	if ($in{'webmin'}) {
		$drv = &parse_webmin_driver();
		$dfunc = \&create_webmin_driver;
		}
	else {
		$drv = &parse_driver();
		$dfunc = \&create_driver;
		}

	# validate and store destination section
	$SIG{'ALRM'} = \&connect_time_out;
	if ($in{'dest'} == 0) {
		# printing to some device
		$prn{'dev'} = $in{'dev'};
		$prn{'iface'} = &$dfunc(\%prn, $drv);
		}
	elsif ($in{'dest'} == 1) {
		# printing to some file
		(-r $in{'file'}) || ($in{'file'} =~ /^\|(.*)/ && -r $1) ||
			&error(&text('save_efile', $in{'file'}));
		$prn{'dev'} = $in{'file'};
		$prn{'iface'} = &$dfunc(\%prn, $drv);
		}
	elsif ($in{'dest'} == 2) {
		# printing to a unix host
		gethostbyname($in{'rhost'}) || &check_ipaddress($in{'rhost'}) ||
			&error(&text('save_erhost', $in{'rhost'}));
		$in{'rqueue'} =~ /^[A-z0-9\-\_\.]+$/ ||
			&printer_support('rnoqueue') ||
			&error(&text('save_erqueue', $in{'rqueue'}));
		$prn{'rhost'} = $in{'rhost'};
		$prn{'rqueue'} = $in{'rqueue'};
		$prn{'rtype'} = $in{'rtype'};
		if ($drv->{'mode'} && !&printer_support('riface')) {
			&error($text{'save_eremote'});
			}
		if ($in{'check'} && (!$in{'rtype'} || $in{'rtype'} eq 'bsd')) {
			# Try connecting to the LPR port
			alarm(10);
			&open_socket($prn{'rhost'}, 515, TEST);
			close(TEST);
			alarm(0);
			}
		$prn{'iface'} = &$dfunc(\%prn, $drv);
		}
	elsif ($in{'dest'} == 3) {
		# printing to windows
		$sdrv = { 'server' => $in{'server'},
			 'share' => $in{'share'},
			 'user' => $in{'user'},
			 'pass' => $in{'pass'},
			 'workgroup' => $in{'wgroup'},
			 'program' => &$dfunc(\%prn, $drv) };
		$prn{'dev'} = "/dev/null";
		$prn{'iface'} = $in{'webmin'} ? 
			&create_webmin_windows_driver(\%prn, $sdrv) :
			&create_windows_driver(\%prn, $sdrv);
		if ($in{'check'}) {
			# Try connecting to the SMB port
			alarm(10);
			&open_socket($sdrv->{'server'}, 139, TEST);
			close(TEST);
			alarm(0);
			}
		}
	elsif ($in{'dest'} == 4) {
		# printing to hpnp server
		$hdrv = { 'server' => $in{'hpnp'},
			  'port' => $in{'port'},
			  'program' => &$dfunc(\%prn, $drv) };
		$prn{'iface'} = &create_hpnp_driver(\%prn, $hdrv);
		$prn{'dev'} = "/dev/null";
		}
	elsif ($in{'dest'} == 5) {
		# direct connection printing
		gethostbyname($in{'dhost'}) || &check_ipaddress($in{'dhost'}) ||
			&error(&text('save_edhost', $in{'dhost'}));
		$in{'dport'} =~ /^\d+$/ || &error($text{'save_edport'});
		$prn{'dhost'} = $in{'dhost'};
		$prn{'dport'} = $in{'dport'};
		$prn{'iface'} = &$dfunc(\%prn, $drv);
		if ($in{'check'}) {
			# Try connecting to the port
			alarm(10);
			&open_socket($prn{'dhost'}, $prn{'dport'}, TEST);
			close(TEST);
			alarm(0);
			}
		}
	}

# Create the printer
if ($in{'new'}) {
	&create_printer(\%prn);
	&webmin_log("create", "printer", $prn{'name'}, &log_info(\%prn));
	}
else {
	&modify_printer(\%prn);
	&webmin_log("modify", "printer", $prn{'name'}, &log_info(\%prn));
	}

# Update ACL
if ($in{'new'} && $access{'printers'} ne '*') {
	$access{'printers'} .= " ".$in{'name'};
	&save_module_acl(\%access);
	}
&redirect("");

sub connect_time_out
{
$connect_timed_out++;
}

  07070100074bea000081a40000000000000002000000013ac0389800001b85000000200000000000000000000000000000001d00000003reloc/lpadmin/solaris-lib.pl  # solaris-lib.pl
# Functions for solaris/hpux-style printer management

# list_printers()
# Returns an array of known printer names
sub list_printers
{
return () if (!&sched_running());
local(@rv, $_);
open(STAT, "lpstat -v |");
while(<STAT>) {
	if (/\s+for\s+(\S+):/i) { push(@rv, $1); }
	}
close(STAT);
return &unique(@rv);
}

# get_printer(name, [nostatus])
# Returns a reference to an associative array of printer details
sub get_printer
{
local($stat, @rv, $body, $avl, $con, $sys, %prn, $_, $out);
$out = `lpstat -l -p $_[0]`;
if ($out =~ /^printer\s+(\S+)\s*(.*)\s+(enabled|disabled)\s+since\s+([^\.]*)\.\s+(.*)\.\n([\000-\177]*)$/) {
	# printer exists
	$prn{'name'} = $1;
	$prn{'enabled'} = $3 eq "enabled";
	$body = $6;
	}
elsif ($out =~ /^printer\s+(\S+)\s+waiting for auto-retry.\s+(\S+)\.\n([\000-\177]*)$/) {
	# printer has some problem
	$prn{'name'} = $1;
	$prn{'enabled'} = 1;
	$body = $3;
	}
else {
	# no printer found
	return undef;
	}
if (!$prn{'enabled'} && $body =~ /^\s+(.*)/) {
	$prn{'enabled_why'} = $1 eq "unknown reason" ? "" : $1;
	}
if ($body =~ /Description: (.*)/) { $prn{'desc'} = $1; }
if ($body =~ /Printer types: (.*)/) { $prn{'ptype'} = $1; }
if ($body =~ /Interface: (.*)/ && $1 ne $config{'default_interface'})
	{ $prn{'iface'} = $1; }
if ($body =~ /Banner not required/) { $prn{'banner'} = 0; }
else { $prn{'banner'} = 1; }
if ($body =~ /Content types: (.*)/) { $prn{'ctype'} = [ split(/[ ,]+/, $1) ]; }
if ($body =~ /Users (allowed|denied):\n((\s+\S+\n)+)/) {
	local(@l);
	@l = grep { $_ } split(/\s+/, $2);
	if ($1 eq "allowed") {
		if ($l[0] eq "(all)") { $prn{'allow_all'} = 1; }
		elsif ($l[0] eq "(none)") { $prn{'deny_all'} = 1; }
		else { $prn{'allow'} = \@l; }
		}
	else { $prn{'deny'} = \@l; }
	}

if (!$_[1]) {
	# request availability
	$avl = `lpstat -a $prn{'name'} 2>&1`;
	if ($avl =~ /^\S+\s+not accepting.*\n\s+(.*)/) {
		$prn{'accepting'} = 0;
		$prn{'accepting_why'} = $1;
		if ($prn{'accepting_why'} eq "unknown reason") {
			$prn{'accepting_why'} = "";
			}
		}
	else { $prn{'accepting'} = 1; }
	}

# request connection
$con = `lpstat -v $prn{'name'} 2>&1`;
if ($con =~ /^device for \S+:\s+(\S+)/) { $prn{'dev'} = $1; }
elsif ($con =~ /^system for \S+:\s+(\S+)\s+\(as printer (\S+)\)/) {
	$prn{'rhost'} = $1;
	$prn{'rqueue'} = $2;
	$sys = `lpsystem -l $prn{'rhost'} 2>&1`;
	$sys =~ /Type:\s+(\S+)/; $prn{'rtype'} = $1;
	}

# Check if this is the default printer
`lpstat -d 2>&1` =~ /destination: (\S+)/;
if ($1 eq $prn{'name'}) { $prn{'default'} = 1; }

return \%prn;
}

# get_jobs(printer)
sub get_jobs
{
local @jobs;
open(STAT, "lpstat -o $_[0] |");
while(<STAT>) {
	if (/^(\S+-(\d+))\s+(\S+)\s+(\d+)\s+(\S+ \d+ \d+:\d+)\s+(.*)/) {
		local(%job, $d, $f, @pf);
		$job{'id'} = $1;
		local $id = $2;
		$job{'user'} = $3;
		$job{'size'} = $4;
		$job{'when'} = $5;
		$job{'printing'} = ($6 =~ /^on /);
		if ($job{'user'} =~ /(\S+)\!/ &&
		    -d ($d="/var/spool/lp/tmp/$1")) {
			opendir(DIR, $d);
			foreach $f (readdir(DIR)) {
				push(@pf, "$d/$f") if ($f =~ /^$id-[1-9]/);
				}
			closedir(DIR);
			$job{'printfile'} = @pf ? \@pf : undef;
			}
		push(@jobs, \%job);
		}
	}
close(STAT);
return @jobs;
}

# printer_support(option)
sub printer_support
{
return $_[0] !~ /^(msize|alias|riface|direct|rnoqueue|ipp)$/;
}

# list_classes()
# Returns an associative array of print classes
sub list_classes
{
local($stat, %rv);
$stat = `lpstat -c 2>&1`;
while($stat =~ /^members of class (\S+):\n((\s+\S+\n)+)([\000-\177]*)$/) {
	$stat = $4;
	$rv{$1} = [ grep { $_ ne "" } split(/\s+/, $2) ];
	}
return \%rv;
}

# create_printer(&details)
# Create a new printer
sub create_printer
{
&modify_printer($_[0]);
}

# modify_printer(&details)
# Change an existing printer
sub modify_printer
{
local(%prn, $cmd, $out);
%prn = %{$_[0]};

# call lpsystem if needed
if ($prn{'rhost'}) {
	$out = &backquote_logged(
		"lpsystem -t $prn{'rtype'} $prn{'rhost'} 2>&1");
	if ($?) { &error("lpsystem failed : <pre>$out</pre>"); }
	}

# call lpadmin
$cmd = "lpadmin -p $prn{'name'} -D \"$prn{'desc'}\"";
if ($prn{'allow_all'}) { $cmd .= " -u allow:all"; }
elsif ($prn{'deny_all'}) { $cmd .= " -u deny:all"; }
elsif ($prn{'allow'}) {
	&system_logged("lpadmin -p $prn{'name'} -u deny:all >/dev/null 2>&1");
	$cmd .= " -u allow:".join(',', @{$prn{'allow'}});
	}
elsif ($prn{'deny'}) {
	&system_logged("lpadmin -p $prn{'name'} -u allow:all >/dev/null 2>&1");
	$cmd .= " -u deny:".join(',', @{$prn{'deny'}});
	}
if ($prn{'dev'}) {
	$cmd .= " -v $prn{'dev'}";
	if ($prn{'iface'}) {
		$cmd .= " -i \"$prn{'iface'}\"";
		}
	else {
		$cmd .= " -i \"$config{'default_interface'}\"";
		}
	if ($prn{'banner'}) { $cmd .= " -o banner"; }
	else { $cmd .= " -o nobanner"; }
	}
else { $cmd .= " -s $prn{'rhost'}!$prn{'rqueue'}"; }
@ctype = @{$prn{'ctype'}};
if (@ctype) { $cmd .= " -I ".join(',' , @ctype); }
$out = &backquote_logged("cd / ; $cmd 2>&1");
if ($?) { &error("lpadmin failed : <pre>$out ($cmd)</pre>"); }

# make the default
if ($prn{'default'}) {
	$out = &backquote_logged("cd / ; lpadmin -d $prn{'name'} 2>&1");
	if ($?) { &error("Failed to set default : <pre>$out</pre>"); }
	}

# enable or disable
if ($prn{'enabled'}) { $cmd = "enable $prn{'name'}"; }
elsif ($prn{'enabled_why'})
	{ $cmd = "enable $prn{'name'} ; disable -r \"$prn{'enabled_why'}\" $prn{'name'}"; }
else { $cmd = "enable $prn{'name'} ; disable $prn{'name'}"; }
$out = &backquote_logged("$cmd 2>&1");

# accepting or rejecting requests
if ($prn{'accepting'}) { $cmd = "accept $prn{'name'}"; }
elsif ($prn{'accepting_why'}) {
	$cmd = "accept $prn{'name'} ; ".
	       "reject -r \"$prn{'accepting_why'}\" $prn{'name'}";
	}
else { $cmd = "accept $prn{'name'} ; reject $prn{'name'}"; }
$out = &backquote_logged("$cmd 2>&1");
}

# delete_printer(name)
# Deletes some existing printer
sub delete_printer
{
local($out);
$out = &backquote_logged("lpadmin -x $_[0] 2>&1");
if ($?) { &error("lpadmin failed : <pre>$out</pre>"); }
}

# cancel_job(printer, id)
# Cancels some print job
sub cancel_job
{
local($out);
$out = &backquote_logged("cancel $_[1] 2>&1");
if ($?) { &error("cancel failed : <pre>$out</pre>"); }
sleep(1);
}

# sched_running()
# Returns the pid if lpsched is running, 0 if not, -1 if cannot be stopped
sub sched_running
{
@pid = &find_byname("lpsched");
if (@pid) { return $pid[0]; }
return 0;
}

# start_sched()
# Start lpsched
sub start_sched
{
local $out = &backquote_logged("/usr/lib/lp/lpsched 2>&1");
if ($?) { &error("failed to start lpsched : <tt>$out</tt>"); }
}

# stop_sched(pid)
# Stop the running lpsched process
sub stop_sched
{
local $out = &backquote_logged("lpshut 2>&1");
if ($?) { &error("lpshut failed : <tt>$out</tt>"); }
}

# print_command(printer, file)
# Returns the command to print some file on some printer
sub print_command
{
return "lp -d $_[0] $_[1]";
}

@device_files = ("/dev/bpp0", "/dev/ecpp0", "/dev/term/a",
		 "/dev/term/b", "/dev/null");
@device_names = ($text{'solaris_paralel'}, $text{'solaris_uparalel'},
		 &text('solaris_serial', "A"), &text('solaris_serial', "B"),
		 $text{'solaris_null'});

   07070100074beb000081e40000000000000002000000013ac03899000000ec000000200000000000000000000000000000001d00000003reloc/lpadmin/sortdrivers.pl  #!/usr/local/bin/perl

open(DRIVERS, "drivers.txt");
@dr = <DRIVERS>;
close(DRIVERS);

@dr = sort { $a =~ /^\S+\s+(.*)/; $x = $1; $b =~ /^\S+\s+(.*)/; $x cmp $1; } @dr;
open(DRIVERS, ">drivers.txt");
print DRIVERS @dr;
close(DRIVERS);

07070100074bec000081e40000000000000002000000013ac0389a000000f9000000200000000000000000000000000000001800000003reloc/lpadmin/start.cgi   #!/usr/local/bin/perl
# start.cgi
# Start the print scheduler

require './lpadmin-lib.pl';
&ReadParse();
$access{'stop'} == 1 || &error($text{'start_ecannot'});
&error_setup($text{'start_err'});
&start_sched();
&webmin_log("start");
&redirect("");

   07070100074bed000081e40000000000000002000000013ac03899000000fd000000200000000000000000000000000000001700000003reloc/lpadmin/stop.cgi    #!/usr/local/bin/perl
# stop.cgi
# Stop the print scheduler

require './lpadmin-lib.pl';
&ReadParse();
$access{'stop'} == 1 || &error($text{'stop_ecannot'});
&error_setup($text{'stop_err'});
&stop_sched($in{'pid'});
&webmin_log("stop");
&redirect("");

   07070100074bef000081a40000000000000002000000013ac0389a00002996000000200000000000000000000000000000001d00000003reloc/lpadmin/suse-driver.pl  # suse-driver.pl
# Functions for APS print filters, as used by SUSE

@paper_sizes = ( [ 'a4', 'A4' ],
		 [ 'a4dj', 'A4 inkjet' ],
		 [ 'a3', 'A3' ],
		 [ 'letter', 'US Letter' ],
		 [ 'letterdj', 'US Letter inkjet' ],
		 [ 'note', 'Note' ],
		 [ 'legal', 'Legal' ],
		 [ 'ledger', 'Ledger' ],
		 [ 'a0', 'A0' ],
		 [ 'a1', 'A1' ],
		 [ 'a2', 'A2' ],
		 [ 'a5', 'A5' ],
		 [ 'a6', 'A6' ],
		 [ 'a7', 'A7' ],
		 [ 'a8', 'A8' ],
		 [ 'a9', 'A9' ],
		 [ 'a10', 'A10' ],
		 [ 'b0', 'B0' ],
		 [ 'b1', 'B1' ],
		 [ 'b2', 'B2' ],
		 [ 'b3', 'B3' ],
		 [ 'b4', 'B4' ],
		 [ 'b5', 'B5' ],
		 [ 'archE', 'archE' ],
		 [ 'archD', 'archD' ],
		 [ 'archC', 'archC' ],
		 [ 'archB', 'archB' ],
		 [ 'archA', 'archA' ],
		 [ 'flsa', 'flsa' ],
		 [ 'flse', 'flse' ],
		 [ 'halfletter', 'Half Letter' ],
		 [ '11x17', '11x17' ] );
$apsfilter_dir = "/var/lib/apsfilter/bin";
$apsfilter_prog = "/var/lib/apsfilter/apsfilter";
$apsfilter_config = "/var/lib/apsfilter/template/apsfilterrc.gs_device_name";
$apsfilter_base = "/etc/apsfilterrc";
$driver_dir = "/etc/gs.upp";
$webmin_windows_driver = 1;

open(DRIVERS, "drivers");
while(<DRIVERS>) {
	if (/^(\S+)\s+(.*)/) {
		$driver{$1} = $2 if (!$driver{$1});
		}
	}
close(DRIVERS);
open(STP, "stp");
while(<STP>) {
	if (/^(\S+)\s+(.*)/) {
		$stp{$1} = $2 if (!$stp{$1});
		}
	}
close(STP);
foreach $u (&list_uniprint()) {
	$u->[1] =~ s/,.*$//;
	$driver{"$u->[0].upp"} = $u->[1];
	}

# is_windows_driver(path, %driver)
# Returns a driver structure if some path is a windows driver
sub is_windows_driver
{
return &is_webmin_windows_driver(@_);
}

# is_driver(path, &printer)
# Returns a structure containing the details of a driver
sub is_driver
{
if (!$_[0]) {
	return { 'mode' => 0,
		 'desc' => "$text{'suse_none'}" };
	}
elsif ($_[0] =~ /$apsfilter_dir\/([^-]+)-([^-]+)-([^-]+)-([^-]+)-([^-]+)$/) {
	# Looks like an APS driver from suse (old style)
	local $rv =  {	'mode' => 1,
			'device' => $1,
		 	'paper' => $2,
		 	'method' => $3,
			'colour' => $4,
			'res' => $5 };
	local $desc = $driver{$rv->{'device'}} ? $driver{$rv->{'device'}} :
		      $rv->{'device'} =~ /^PS_/ ? "Postscript"
						: $rv->{'device'};
	$rv->{'desc'} = $rv->{'res'} ? "$desc ($rv->{'res'} DPI)" : $desc;
	return $rv;
	}
#elsif ($_[0] =~ /$apsfilter_dir\/([^-]+)--([^-]+)-([^-]+)$/ &&
#       -r "$driver_dir/$1") {
#	# Looks like a new-style APS suse driver
#	local $rv = { 'mode' => 3,
#		      'method' => $2 };
#	open(GS, "$driver_dir/$1");
#	while(<GS>) {
#		s/\r|\n//g;
#		if (/^-sDEVICE=(\S+)/) { $rv->{'device'} = $1; }
#		elsif (/^-sPAPERSIZE=(\S+)/) { $rv->{'paper'} = $1; }
#		elsif (/^-sCOLOR=(\S+)/) { $rv->{'colour'} = $1; }
#		elsif (/^-r(\S+)/) { $rv->{'res'} = $1; }
#		elsif (/^-supModel="(.*)"/) { $rv->{'desc'} = $1; }
#		elsif (/^-sModel="(.*)"/) { $rv->{'model'} = $1; }
#		elsif (/^\@(\S+\.upp)/) { $rv->{'device'} = $1; }
#		else { push(@{$rv->{'extra'}}, $_); }
#		}
#	close(GS);
#	return $rv;
#	}
elsif ($_[0] =~ /$apsfilter_dir\/([^-]+)-([^-]+)-([^-]+)$/) {
	# Null APS driver?
	return { 'mode' => 0,
		 'desc' => 'None' };
	}
else {
	# Some other kind of driver
	return { 'mode' => 2,
		 'file' => $_[0],
		 'desc' => $_[0] };
	}
}

# create_windows_driver(&printer, &driver)
# Creates a new windows printer driver
sub create_windows_driver
{
return &create_webmin_windows_driver(@_);
}

# create_driver(&printer, &driver)
# Creates a new local printer driver and returns the path
sub create_driver
{
local ($prn, $drv) = @_;
if ($drv->{'mode'} == 0) {
	return undef;
	}
elsif ($drv->{'mode'} == 2) {
	return $drv->{'file'};
	}
else {
	local $device;
	if ($drv->{'device'} eq 'ps') {
		$device = "PS_$drv->{'res'}dpi";
		}
	else {
		$device = $drv->{'device'};
		}
	local $aps = "$apsfilter_dir/$device-$drv->{'paper'}-".
		     "$drv->{'method'}-$drv->{'colour'}-$drv->{'res'}";
	&lock_file($aps);
	symlink($apsfilter_prog, $aps);
	&unlock_file($aps);
	if (!-r "$apsfilter_base.$device") {
		&lock_file("$apsfilter_base.$device");
		local $conf = `cat $apsfilter_config`;
		$conf =~ s/<gs_device_name>/$device/g;
		open(CONF, ">$apsfilter_base.$device");
		print CONF $conf;
		close(CONF);
		&unlock_file("$apsfilter_base.$device");
		}
	return $aps;
	}
}

# delete_driver(name)
sub delete_driver
{
}

# driver_input(&printer, &driver)
sub driver_input
{
local ($prn, $drv) = @_;
local ($found, $d);

printf "<tr> <td><input type=radio name=mode value=0 %s> %s</td>\n",
	$drv->{'mode'} == 0 ? "checked" : "", $text{'suse_none'};
print "<td>($text{'suse_nonemsg'})</td> </tr>\n";

printf "<tr> <td><input type=radio name=mode value=2 %s> %s</td>\n",
	$drv->{'mode'} == 2 ? "checked" : "", $text{'suse_prog'};
printf "<td><input name=iface value=\"%s\" size=35></td> </tr>\n",
	$drv->{'mode'} == 2 ? $drv->{'file'} : "";

if ($drv->{'mode'} == 2 || 1) {
	# Show input for old-style suse printer
	printf "<tr> <td valign=top><input type=radio name=mode value=1 %s>\n",
		$drv->{'mode'} == 1 ? "checked" : "";
	print "$text{'suse_driver'}</td> <td><table width=100%>";

	print "<tr> <td valign=top><b>$text{'suse_printer'}</b></td>\n";
	print "<td colspan=3><select size=10 name=device>\n";
	printf "<option value=ps %s>Postscript\n",
		$drv->{'device'} =~ /^PS_/ ? 'selected' : '';
	$found++ if ($drv->{'device'} =~ /^PS_/);
	foreach $d (&list_uniprint()) {
		local $u = "$d->[0].upp";
		printf "<option value=%s %s>%s\n",
			$u, $drv->{'device'} eq $u ? 'selected' : '', $d->[1];
		$found++ if ($drv->{'device'} eq $u);
		}
	local $out = `$config{'gs_path'} -help 2>&1`;
	$out =~ /Available devices:\n((\s+.*\n)+)/i;
	foreach $d (split(/\s+/, $1)) {
		if ($driver{$d}) {
			printf "<option value=%s %s>%s\n",
				$d, $drv->{'device'} eq $d ? 'selected' : '',
				$driver{$d};
			$found++ if ($drv->{'device'} eq $d);
			}
		}
	print "<option selected value=$drv->{'device'}>$drv->{'device'}\n"
		if (!$found && $drv->{'device'});
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'suse_res'}</b></td>\n";
	print "<td><input name=res size=8 value='$drv->{'res'}'></td>\n";

	print "<td><b>$text{'suse_colour'}</b></td>\n";
	printf "<td><input name=colour type=radio value=color %s> %s\n",
		$drv->{'colour'} eq 'mono' ? '' : 'checked', $text{'yes'};
	printf "<input name=colour type=radio value=color %s> %s</td> </tr>\n",
		$drv->{'colour'} eq 'mono' ? 'checked' : '', $text{'no'};

	print "<tr> <td><b>$text{'suse_paper'}</b></td>\n";
	print "<td><select name=paper>\n";
	foreach $p (@paper_sizes) {
		printf "<option value=%s %s>%s\n",
			$p->[0], $drv->{'paper'} eq $p->[0] ? 'selected' : '',
			$p->[1];
		}
	print "</select></td>\n";

	print "<td><b>$text{'suse_method'}</b></td>\n";
	printf "<td><input type=radio name=method value=auto %s> %s\n",
		$drv->{'method'} eq 'ascii' ? '' : 'checked',
		$text{'suse_auto'};
	printf "<input type=radio name=method value=ascii %s> %s</td> </tr>\n",
		$drv->{'method'} eq 'ascii' ? 'checked' : '',
		$text{'suse_ascii'};

	print "</table></td> </tr>\n";
	}
else {
	# Show input for new-style suse printer (NOT DONE YET!)
	printf "<tr> <td valign=top><input type=radio name=mode value=3 %s>\n",
		$drv->{'mode'} == 3 ? "checked" : "";
	print "$text{'suse_yast2'}</td> <td><table width=100%>";

	print "<tr> <td valign=top><b>$text{'suse_printer'}</b></td>\n";
	print "<td colspan=3><select size=10 name=device>\n";
	printf "<option value=ps %s>Postscript\n",
		$drv->{'device'} eq 'PS' ? 'selected' : '';
	$found++ if ($drv->{'device'} eq 'PS');
	local $out = `$config{'gs_path'} -help 2>&1`;
	$out =~ /Available devices:\n((\s+.*\n)+)/i;
	foreach $d (split(/\s+/, $1)) {
		if ($d ne 'stp' && $driver{$d}) {
			printf "<option value=%s %s>%s\n",
				$d, $drv->{'device'} eq $d ? 'selected' : '',
				$driver{$d};
			$found++ if ($drv->{'device'} eq $d);
			}
		}
	foreach $d (&list_uniprint()) {
		local $u = "$d->[0].upp";
		printf "<option value=%s %s>%s\n",
			$u, $drv->{'device'} eq $u ? 'selected' : '', $d->[1];
		$found++ if ($drv->{'device'} eq $u);
		}
	foreach $s (sort { $a cmp $b } keys %stp) {
		printf "<option value=%s.stp %s>%s\n",
			$s, $drv->{'device'} eq 'stp' &&
			    $drv->{'model'} eq $s ? 'selected' : '', $stp{$s};
		$found++ if ($drv->{'device'} eq 'stp' &&
			     $drv->{'model'} eq $s);
		}
	print "<option selected value=$drv->{'device'}>$drv->{'device'}\n"
		if (!$found && $drv->{'device'});
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'suse_colour'}</b></td>\n";
	printf "<td><input name=colour type=radio value=color %s> %s\n",
		$drv->{'colour'} eq 'mono' ? '' : 'checked', $text{'yes'};
	printf "<input name=colour type=radio value=color %s> %s</td>\n",
		$drv->{'colour'} eq 'mono' ? 'checked' : '', $text{'no'};

	print "<td><b>$text{'suse_paper'}</b></td>\n";
	print "<td><select name=paper>\n";
	foreach $p (@paper_sizes) {
		printf "<option value=%s %s>%s\n",
			$p->[0], $drv->{'paper'} eq $p->[0] ? 'selected' : '',
			$p->[1];
		}
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'suse_res'}</b></td>\n";
	printf "<td><input type=radio name=res_def value=1 %s> %s\n",
		$drv->{'res'} ? '' : 'checked', $text{'suse_auto'};
	printf "<input type=radio name=res_def value=0 %s>\n",
		$drv->{'res'} ? 'checked' : '';
	print "<input name=res size=8 value='$drv->{'res'}'></td>\n";

	print "<td><b>$text{'suse_method'}</b></td>\n";
	print "<td><select name=method>\n";
	foreach $m ('auto', 'ascii', 'raw') {
		printf "<option value=%s %s>%s\n",
			$m, $drv->{'method'} eq $m ? 'selected' : '',
			$text{"suse_$m"};
		}
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'suse_extra'}</b></td>\n";
	print "<td colspan=3><input name=extra size=50 value='",
	      join(" ", @{$drv->{'extra'}}),"'></td> </tr>\n";

	print "</table></td> </tr>\n";
	}
}

# parse_driver()
# Parse driver selection from %in and return a driver structure
sub parse_driver
{
if ($in{'mode'} == 0) {
	return { 'mode' => 0 };
	}
elsif ($in{'mode'} == 2) {
	(-x $in{'iface'}) || &error(&text('suse_eprog', $in{'iface'}));
	return { 'mode' => 2,
		 'file' => $in{'iface'} };
	}
elsif ($in{'mode'} == 3) {
	# New suse printer (NOT DONE YET!)
	# All the other odd files created by yast2 need to be supported
	$in{'device'} || &error($text{'suse_edriver'});
	$in{'res_def'} || $in{'res'} =~ /^\d+$/ ||
		$in{'res'} =~ /^\d+x\d+$/ || &error($text{'suse_eres'});
	}
elsif ($in{'mode'} == 1) {
	# Old-style suse printer
	$in{'device'} || &error($text{'suse_edriver'});
	$in{'res'} =~ /^\d+$/ || &error(&text('suse_eres', $in{'res'}));
	return { 'mode' => 1,
		 'device' => $in{'device'},
		 'paper' => $in{'paper'},
		 'method' => $in{'method'},
		 'colour' => $in{'colour'},
		 'res' => $in{'res'} };
	}
}

1;

  07070100074bf0000081e40000000000000002000000013ac0389a0000035e000000200000000000000000000000000000001c00000003reloc/lpadmin/test_form.cgi   #!/usr/local/bin/perl
# test_form.cgi
# Display options for printing a test page

require './lpadmin-lib.pl';
&ReadParse();
$access{'test'} || &error($text{'test_ecannot'});
&header($text{'test_title'}, "");
print "<hr>\n";

print "<form action=test_print.cgi method=post enctype=multipart/form-data>\n";
print "<input type=hidden name=name value='$in{'name'}'>\n";
print &text('test_desc', "<tt>$in{'name'}</tt>"),"<p>\n";

print "<input type=radio name=mode value=0 checked> $text{'test_0'}<br>\n";
print "<input type=radio name=mode value=1> $text{'test_1'}<br>\n";
print "<input type=radio name=mode value=2> $text{'test_2'}<br>\n";
print "<input type=radio name=mode value=3> $text{'test_3'} ",
      "<input type=file name=file><p>\n";

print "<input type=submit value='$text{'test_print'}'></form>\n";
print "<hr>\n";
&footer("", $text{'index_return'});

  07070100074bf1000081a40000000000000002000000013ac0389a00000373000000200000000000000000000000000000001d00000003reloc/lpadmin/test_print.cgi  #!/usr/local/bin/perl
# test_print.cgi
# Print one of the test pages

require './lpadmin-lib.pl';
&foreign_require("proc", "proc-lib.pl");
&ReadParseMime();
$access{'test'} || &error($text{'test_ecannot'});
&header($text{'test_title'}, "");
print "<hr>\n";

if ($in{'mode'} == 0) {
	$file = "bw.ps";
	}
elsif ($in{'mode'} == 1) {
	$file = "colour.ps";
	}
elsif ($in{'mode'} == 2) {
	$file = "ascii.txt";
	}
else {
	$file = &tempname();
	open(FILE, ">$file");
	print FILE $in{'file'};
	close(FILE);
	}

$cmd = &print_command($in{'name'}, $file);
print &text('test_exec', "<tt>$cmd</tt>"),"<p>\n";
print "<pre>\n";
open(CMD, "$cmd 2>&1 |");
while(<CMD>) {
	print;
	}
close(CMD);
print "</pre>\n";

if ($?) { print "<b>$text{'test_failed'}</b> <p>\n"; }
else { print "$text{'test_ok'} <p>\n"; }

unlink($file) if ($in{'mode'} == 3);
print "<hr>\n";
&footer("", $text{'index_return'});

 07070100074bf2000081a40000000000000002000000013ac0389a00001d07000000200000000000000000000000000000001e00000003reloc/lpadmin/unixware-lib.pl # unixware-lib.pl
# Functions for UnixWare style printer management

$default_interface = "/usr/lib/lp/model/standard";

# list_printers()
# Returns an array of known printer names
sub list_printers
{
local(@rv, $_);
open(STAT, "lpstat -p |");
while(<STAT>) {
	if (/^printer\s+(\S+)/) { push(@rv, $1); }
	}
close(STAT);
return &unique(@rv);
}

# get_printer(name, [nostatus])
# Returns a reference to an associative array of printer details
sub get_printer
{
local($stat, @rv, $body, $avl, $con, $sys, %prn, @jobs, $_, $out);
$out = `lpstat -l -p $_[0]`;
if ($out =~ /^printer\s+(\S+)\s*(.*)\s+(enabled|disabled)\s+since\s+([^\.]*)\.\s+(.*)\.\n([\000-\177]*)$/) {
	# printer exists
	$prn{'name'} = $1;
	$prn{'enabled'} = $3 eq "enabled";
	$body = $6;
	}
elsif ($out =~ /^printer\s+(\S+)\s+waiting for auto-retry.\s+(\S+)\.\n([\000-\177]*)$/) {
	# printer has some problem
	$prn{'name'} = $1;
	$prn{'enabled'} = 1;
	$body = $3;
	}
else {
	# no printer found
	return undef;
	}
if (!$prn{'enabled'} && $body =~ /^\s+(.*)/) {
	$prn{'enabled_why'} = $1 eq "unknown reason" ? "" : $1;
	}
if ($body =~ /Description: (.*)/) { $prn{'desc'} = $1; }
if ($body =~ /Printer types: (.*)/) { $prn{'ptype'} = $1; }
if ($body =~ /Interface: (.*)/) { $prn{'iface'} = $1; }
if ($body =~ /Banner not required/) { $prn{'banner'} = 0; }
else { $prn{'banner'} = 1; }
if ($body =~ /Content types: (.*)/) { $prn{'ctype'} = [ split(/[ ,]+/, $1) ]; }
if ($body =~ /Users (allowed|denied):\n((\s+\S+\n)+)/) {
	local(@l);
	@l = grep { $_ } split(/\s+/, $2);
	if ($1 eq "allowed") {
		if ($l[0] eq "(all)") { $prn{'allow_all'} = 1; }
		elsif ($l[0] eq "(none)") { $prn{'deny_all'} = 1; }
		else { $prn{'allow'} = \@l; }
		}
	else { $prn{'deny'} = \@l; }
	}

if (!$_[1]) {
	# request availability
	$avl = `lpstat -a $prn{'name'} 2>&1`;
	if ($avl =~ /^\S+\s+not accepting.*\n\s+(.*)/) {
		$prn{'accepting'} = 0;
		$prn{'accepting_why'} = $1;
		if ($prn{'accepting_why'} eq "unknown reason") {
			$prn{'accepting_why'} = "";
			}
		}
	else { $prn{'accepting'} = 1; }
	}

# request connection
$con = `lpstat -v $prn{'name'} 2>&1`;
if ($con =~ /^device for \S+:\s+(\S+)/) { $prn{'dev'} = $1; }
elsif ($con =~ /^system for \S+:\s+(\S+)\s+\(as printer (\S+)\)/) {
	$prn{'rhost'} = $1;
	$prn{'rqueue'} = $2;
	$sys = `lpsystem -l $prn{'rhost'} 2>&1`;
	$sys =~ /Type:\s+(\S+)/; $prn{'rtype'} = $1;
	}

# Check if this is the default printer
`lpstat -d 2>&1` =~ /destination: (\S+)/;
if ($1 eq $prn{'name'}) { $prn{'default'} = 1; }

return \%prn;
}

sub get_jobs
{
local @jobs;

# Get used lang
local $lang = $gconfig{'lang'};

# Added 'env LANG=$lang'
open(STAT, "env LANG=$lang lpstat -o $_[0] |");
while(<STAT>) {
# original line which does not work
#	if (/^(\S+-\d+)\s+(\S+)\s+(\d+)\s+(\S+ \d+ \d+:\d+)\s+(.*)/) {
#

# lang=es
  if ( $lang eq 'es' ) {
	if (/^(\S+-\d+)\s+(\S+)\s+(\d+)\s+(\S+ \d+ \S+ \S+ \d+ \d+:\d+:\d+)\s+(.*)/) {
		local(%job);
		$job{'id'} = $1;
		$job{'user'} = $2;
		$job{'size'} = $3;
		$job{'when'} = $4;
		$job{'printing'} = ($5 =~ /^en /);
		push(@jobs, \%job);
	}
  }
# lang=C (us)
  elsif ( $lang eq 'us' ) {
	if (/^(\S+-\d+)\s+(\S+)\s+(\d+)\s+(\S+ \S+ \d+ \d+:\d+:\d+ \S+ \d+)\s+(.*)/) {
		local(%job);
		$job{'id'} = $1;
		$job{'user'} = $2;
		$job{'size'} = $3;
		$job{'when'} = $4;
		$job{'printing'} = ($5 =~ /^on /);
		push(@jobs, \%job);
	}
  }
# short string (any language)
  elsif (/^(\S+-\d+)\s+(\S+)\s+(\d+)\s+\s+(.*)/) {
		local(%job);
		$job{'id'} = $1;
		$job{'user'} = $2;
		$job{'size'} = $3;
		$job{'when'} = $4;
		$job{'printing'} = ($5 =~ /^on /);
		push(@jobs, \%job);
		}
  }
close(STAT);
return @jobs;
}

# printer_support(option)
sub printer_support
{
return $_[0] !~ /^(msize|alias|riface|direct|rnoqueue|ipp)$/;
}

# list_classes()
# Returns an associative array of print classes
sub list_classes
{
local($stat, %rv);
$stat = `lpstat -c 2>&1`;
while($stat =~ /^members of class (\S+):\n((\s+\S+\n)+)([\000-\177]*)$/) {
	$stat = $4;
	$rv{$1} = [ grep { $_ ne "" } split(/\s+/, $2) ];
	}
return \%rv;
}

# create_printer(&details)
# Create a new printer
sub create_printer
{
&modify_printer($_[0]);
}

# modify_printer(&details)
# Change an existing printer
sub modify_printer
{
local(%prn, $cmd, $out);
%prn = %{$_[0]};

# call lpsystem if needed
if ($prn{'rhost'}) {
	$out = &backquote_logged(
		"lpsystem -t $prn{'rtype'} $prn{'rhost'} 2>&1");
	if ($?) { &error("lpsystem failed : <pre>$out</pre>"); }
	}

# call lpadmin
$cmd = "lpadmin -p $prn{'name'} -D \"$prn{'desc'}\"";
if ($prn{'allow_all'}) { $cmd .= " -u allow:all"; }
elsif ($prn{'deny_all'}) { $cmd .= " -u deny:all"; }
elsif ($prn{'allow'}) {
	system("lpadmin -p $prn{'name'} -u deny:all >/dev/null 2>&1");
	$cmd .= " -u allow:".join(',', @{$prn{'allow'}});
	}
elsif ($prn{'deny'}) {
	system("lpadmin -p $prn{'name'} -u allow:all >/dev/null 2>&1");
	$cmd .= " -u deny:".join(',', @{$prn{'deny'}});
	}
if ($prn{'dev'}) {
	$cmd .= " -v $prn{'dev'}";
	$cmd .= " -i \"$prn{'iface'}\"";
	if ($prn{'banner'}) { $cmd .= " -o banner"; }
	else { $cmd .= " -o nobanner"; }
	}
else { $cmd .= " -s $prn{'rhost'}!$prn{'rqueue'}"; }
@ctype = @{$prn{'ctype'}};
if (@ctype) { $cmd .= " -I ".join(',' , @ctype); }
$out = &backquote_logged("$cmd 2>&1");
if ($?) { &error("lpadmin failed : <pre>$out</pre>"); }

# make the default
if ($prn{'default'}) {
	$out = &backquote_logged("lpadmin -d $prn{'name'} 2>&1");
	if ($?) { &error("Failed to set default : <pre>$out</pre>"); }
	}

# enable or disable
if ($prn{'enabled'}) { $cmd = "enable $prn{'name'}"; }
elsif ($prn{'enabled_why'})
	{ $cmd = "enable $prn{'name'} ; disable -r \"$prn{'enabled_why'}\" $prn{'name'}"; }
else { $cmd = "enable $prn{'name'} ; disable $prn{'name'}"; }
$out = &backquote_logged("$cmd 2>&1");

# accepting or rejecting requests
if ($prn{'accepting'}) { $cmd = "accept $prn{'name'}"; }
elsif ($prn{'accepting_why'})
	{ $cmd = "accept $prn{'name'} ; reject -r \"$prn{'accepting_why'}\" $prn{'name'}"; }
else { $cmd = "accept $prn{'name'} ; reject $prn{'name'}"; }
$out = &backquote_logged("$cmd 2>&1");
}

# delete_printer(name)
# Deletes some existing printer
sub delete_printer
{
local($out);
$out = &backquote_logged("lpadmin -x $_[0] 2>&1");
if ($?) { &error("lpadmin failed : <pre>$out</pre>"); }
}

# cancel_job(printer, id)
# Cancels some print job
sub cancel_job
{
local($out);
$out = &backquote_logged("cancel $_[1] 2>&1");
if ($?) { &error("cancel failed : <pre>$out</pre>"); }
sleep(1);
}

# sched_running()
# Returns the pid if lpsched is running, 0 if not, -1 if cannot be stopped
sub sched_running
{
#@pid = &find_byname("lpsched");
#if (@pid) { return $pid[0]; }
#return 0;
return -1;
}

# start_sched()
# Start lpsched
sub start_sched
{
local $out = &backquote_logged("/usr/lib/lp/lpsched 2>&1");
if ($?) { &error("failed to start lpsched : <tt>$out</tt>"); }
}

# stop_sched(pid)
# Stop the running lpsched process
sub stop_sched
{
local $out = &backquote_logged("lpshut 2>&1");
if ($?) { &error("lpshut failed : <tt>$out</tt>"); }
}

# print_command(printer, file)
# Returns the command to print some file on some printer
sub print_command
{
return "lp -d $_[0] $_[1]";
}

@device_files = ("/dev/lp0", "/dev/lp1", "/dev/lp2",
		 "/dev/tty1a", "/dev/tty2a", "/dev/null");
@device_names = (&text('unixware_paralel', "0"), &text('unixware_paralel', "1"),
		 &text('unixware_paralel', "2"), &text('unixware_serial', "A"),
		 &text('unixware_serial', "B"),	$text{'unixware_null'});

 07070100074bf3000081e40000000000000002000000013ac0389a00000345000000200000000000000000000000000000001b00000003reloc/lpadmin/view_job.cgi    #!/usr/local/bin/perl
# view_job.cgi
# View an existing print job

require './lpadmin-lib.pl';
&ReadParse();
&can_edit_jobs($in{'name'}) || &error($text{'view_ecannot'});

@jobs = &get_jobs($in{'name'});
foreach $j (@jobs) {
	$job = $j if ($j->{'id'} eq $in{'id'});
	}
if ($job) {
	# print job exists.. dump it
	@pf = @{$job->{'printfile'}};
	$type = `file $pf[0]`;
	if ($type =~ /postscript/i) {
		print "Content-type: application/postscript\n";
		}
	elsif ($type =~ /text/) {
		print "Content-type: text/plain\n";
		}
	else {
		print "Content-type: application/octet-stream\n";
		}
	foreach $pf (@pf) {
		@st = stat($pf);
		$total += $st[7];
		}
	print "Content-length: $total\n";
	print "\n";
	foreach $pf (@pf) {
		open(FILE, $pf);
		while(<FILE>) { print; }
		close(FILE);
		}
	}
else {
	&error(&text('view_egone', $in{'id'}));
	}

   07070100074bf4000081a40000000000000002000000013ac0389a00000429000000200000000000000000000000000000001f00000003reloc/lpadmin/webmin-driver.pl    # webmin-driver.pl
# Functions for webmin print and smb drivers.
# These are all just calls to the standard driver functions.

$webmin_windows_driver = 1;
$webmin_print_driver = 1;

# is_windows_driver(path)
# Returns a driver structure if some path is a windows driver
sub is_windows_driver
{
return &is_webmin_windows_driver(@_);
}

# is_driver(path)
# Returns a structure containing the details of a driver
sub is_driver
{
return &is_webmin_driver(@_);
}

# create_windows_driver(&printer, &driver)
# Creates a new windows printer driver
sub create_windows_driver
{
return &create_webmin_windows_driver(@_);
}

# create_driver(&printer, &driver)
# Creates a new local printer driver and returns the path
sub create_driver
{
return &create_webmin_driver(@_);
}

# delete_driver(name)
sub delete_driver
{
&delete_webmin_driver(@_);
}

# driver_input(&printer, &driver)
sub driver_input
{
return &webmin_driver_input(@_);
}

# parse_driver()
# Parse driver selection from %in and return a driver structure
sub parse_driver
{
return &parse_webmin_driver(@_);
}

1;

   0707010002723b000041ed0000000000000001000000043ac03c0f00000000000000200000000000000000000000000000001000000003reloc/majordomo   0707010002723c000081a40000000000000002000000013ac038a2000007b5000000200000000000000000000000000000002000000003reloc/majordomo/acl_security.pl   
require './majordomo-lib.pl';

# acl_security_form(&options)
# Output HTML for editing security options for the majordomo module
sub acl_security_form
{
local $conf = &get_config();
local @lists = &list_lists($conf);
print "<tr> <td valign=top rowspan=3><b>$text{'acl_lists'}</b></td>\n";
print "<td rowspan=3 valign=top>\n";
printf "<input type=radio name=lists_def value=1 %s> %s\n",
	$_[0]->{'lists'} eq '*' ? 'checked' : '', $text{'acl_lall'};
printf "<input type=radio name=lists_def value=0 %s> %s<br>\n",
	$_[0]->{'lists'} eq '*' ? '' : 'checked', $text{'acl_lsel'};
print "<select name=lists multiple size=3 width=150>\n";
local (%lcan, $l);
map { $lcan{$_}++ } split(/\s+/, $_[0]->{'lists'});
foreach $l (@lists) {
	printf "<option %s>%s\n",
		$lcan{$l} ? "selected" : "", $l;
	}
print "</select></td>\n";

print "<td><b>$text{'acl_global'}</b></td> <td>\n";
printf "<input type=radio name=global value=1 %s> $text{'yes'}\n",
	$_[0]->{'global'} ? "checked" : "";
printf "<input type=radio name=global value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'global'} ? "" : "checked";

print "<tr> <td><b>$text{'acl_create'}</b></td> <td>\n";
printf "<input type=radio name=create value=1 %s> $text{'yes'}\n",
	$_[0]->{'create'} ? "checked" : "";
printf "<input type=radio name=create value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'create'} ? "" : "checked";

print "<tr> <td><b>$text{'acl_edit'}</b></td> <td>\n";
printf "<input type=radio name=edit value=1 %s> $text{'yes'}\n",
	$_[0]->{'edit'} ? "checked" : "";
printf "<input type=radio name=edit value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'edit'} ? "" : "checked";
}

# acl_security_save(&options)
# Parse the form for security options for the majordomo module
sub acl_security_save
{
if ($in{'lists_def'}) {
	$_[0]->{'lists'} = "*";
	}
else {
	$_[0]->{'lists'} = join(" ", split(/\0/, $in{'lists'}));
	}
$_[0]->{'global'} = $in{'global'};
$_[0]->{'create'} = $in{'create'};
$_[0]->{'edit'} = $in{'edit'};
}

   0707010002723d000081e40000000000000002000000013ac038a2000002a6000000200000000000000000000000000000002000000003reloc/majordomo/alias_setup.cgi   #!/usr/local/bin/perl
# alias_setup.cgi
# Create the majordomo and majordomo-owner aliases

require './majordomo-lib.pl';
&ReadParse();
$aliases_files = &get_aliases_file();
$whatfailed = "Failed to setup aliases";
if ($in{'owner_a'}) {
	$in{'owner'} =~ /^\S+$/ || &error("Missing owner email address");
	$owner = { 'enabled' => 1,
		   'name' => $in{'owner_a'},
		   'values' => [ $in{'owner'} ] };
	&foreign_call("sendmail", "create_alias", $owner, $aliases_files);
	}
$email = { 'enabled' => 1,
	   'name' => $in{'email_a'},
	   'values' => [ "|$config{'program_dir'}/wrapper majordomo" ] };
&foreign_call("sendmail", "create_alias", $email, $aliases_files);
&redirect("");

  0707010002723e000081a40000000000000002000000013ac038a200000066000000200000000000000000000000000000001700000003reloc/majordomo/config    majordomo_cf=/usr/local/majordomo/majordomo.cf
program_dir=/usr/local/majordomo
dynamic=0
sort_mode=0
  0707010002723f000081a40000000000000002000000013ac038a200000050000000200000000000000000000000000000001b00000003reloc/majordomo/config-aix    majordomo_cf=/etc/majordomo.cf
program_dir=/usr/local/bin
dynamic=0
sort_mode=0
07070100027240000081a40000000000000002000000013ac038a200000062000000200000000000000000000000000000002800000003reloc/majordomo/config-debian-linux-2.2   majordomo_cf=/etc/majordomo.cf
aliases_file=
program_dir=/usr/lib/majordomo
dynamic=0
sort_mode=0
  07070100027241000081a40000000000000002000000013ac038a200000062000000200000000000000000000000000000002200000003reloc/majordomo/config-open-linux majordomo_cf=/etc/majordomo.cf
aliases_file=
program_dir=/usr/lib/majordomo
dynamic=0
sort_mode=0
  07070100027242000081a40000000000000002000000013ac038a200000055000000200000000000000000000000000000002600000003reloc/majordomo/config-suse-linux-6.1 majordomo_cf=/etc/majordomo.cf
program_dir=/usr/lib/majordomo
dynamic=0
sort_mode=0

   07070100027243000081a40000000000000002000000013ac038a200000055000000200000000000000000000000000000002600000003reloc/majordomo/config-suse-linux-6.2 majordomo_cf=/etc/majordomo.cf
program_dir=/usr/lib/majordomo
dynamic=0
sort_mode=0

   07070100027244000081a40000000000000002000000013ac038a200000055000000200000000000000000000000000000002600000003reloc/majordomo/config-suse-linux-6.3 majordomo_cf=/etc/majordomo.cf
program_dir=/usr/lib/majordomo
dynamic=0
sort_mode=0

   07070100027245000081a40000000000000002000000013ac038a200000055000000200000000000000000000000000000002600000003reloc/majordomo/config-suse-linux-6.4 majordomo_cf=/etc/majordomo.cf
program_dir=/usr/lib/majordomo
dynamic=0
sort_mode=0

   07070100027246000081a40000000000000002000000013ac038a200000055000000200000000000000000000000000000002600000003reloc/majordomo/config-suse-linux-7.0 majordomo_cf=/etc/majordomo.cf
program_dir=/usr/lib/majordomo
dynamic=0
sort_mode=0

   07070100027247000081a40000000000000002000000013ac038a200000055000000200000000000000000000000000000002600000003reloc/majordomo/config-suse-linux-7.1 majordomo_cf=/etc/majordomo.cf
program_dir=/usr/lib/majordomo
dynamic=0
sort_mode=0

   07070100027248000081a40000000000000002000000013ac038a200000160000000200000000000000000000000000000001c00000003reloc/majordomo/config.info   majordomo_cf=Full path to majordomo config file,0
program_dir=Directory containing majordomo programs,0
aliases_file=Sendmail-style aliases file,3,Get from sendmail.cf
dynamic=Use random number for list alias,1,1-Yes,0-No
sort_mode=Sort mailing lists by,1,1-Name,0-Order created
smrsh_program_dir=Directory containing sendmail safe programs,3,Anywhere
07070100027249000081a40000000000000002000000013ac038a2000000ca000000200000000000000000000000000000001f00000003reloc/majordomo/config.info.de    majordomo_cf=Absoluter Pfad zur Majordomo Konfigurationsdatei,0
program_dir=Verzeichnis, dass die Majordomo-Programme enth&auml;lt,0
aliases_file=Alias Datei in Sendmail-Form,3,Ermittle aus sendmail.cf
  0707010002724a000081a40000000000000002000000013ac038a2000001b8000000200000000000000000000000000000001f00000003reloc/majordomo/config.info.es    majordomo_cf=Trayectoria completa a archivo de configuraci髇 de majordomo,0
program_dir=Directorio que contiene los programas de majordomo,0
aliases_file=Archivo de alias con estilo-Sendmail,3,Obtener de sendmail.cf
dynamic=Usar n鷐ero al azar para listar alias,1,1-S,0-No
sort_mode=Clasificar las listas de correo por,1,1-Nombre,0-Orden de creaci髇
smrsh_program_dir=Directorio que contiene los programas seguros de sendmail,3,Cualquiera
0707010002724b000081a40000000000000002000000013ac038a2000000bc000000200000000000000000000000000000001f00000003reloc/majordomo/config.info.fr    majordomo_cf=Chemin du fichier de configuration de majordomo,0
program_dir=R閜ertoire du programme majordomo,0
aliases_file=Fichier d'aliases de style Sendmail,3,Prendre de sendmail.cf
0707010002724c000081a40000000000000002000000013ac038a200000182000000200000000000000000000000000000001f00000003reloc/majordomo/config.info.pl    majordomo_cf=Pe硁a 禼ie縦a do pliku konfiguracyjnego majordomo,0
program_dir=Katalog zawieraj眂y programy majordomo,0
aliases_file=Plik alias體 w stylu Sendmaila,3,Pobierz z sendmail.cf
dynamic=U縴wa losowych alias體 list,1,1-Tak,0-Nie
sort_mode=Porz眃kuj listy wed硊g,1,1-Nazwy,0-Kolejno禼i utworzenia
smrsh_program_dir=Katalog zawieraj眂y bezpieczne programy sendmail,3,Gdziekolwiek
  0707010002724d000081a40000000000000002000000013ac038a2000000ab000000200000000000000000000000000000002200000003reloc/majordomo/config.info.ru_RU majordomo_cf=项腠 矬螯  羿殡 觐眙桡箴圉梃,0
aliases_file=脏殡 锺邂漕龛祛  耱桦 Sendmail,3,络螯 桤 sendmail.cf
program_dir=枢蜞腩 耦溴疰帙栝 镳钽疣祆 majordomo,0
 0707010002724e000081a40000000000000002000000013ac038a2000000ab000000200000000000000000000000000000002200000003reloc/majordomo/config.info.ru_SU majordomo_cf=鹣涛偈 姓载  屏侍 讼纹汕找撩缮,0
program_dir=肓粤滔 酉呐抑凛墒 幸锨伊屯 majordomo,0
aliases_file=媪侍 杏抛南紊拖  釉商 Sendmail,3,髭言 哨 sendmail.cf
 0707010002724f000081a40000000000000002000000013ac038a200000177000000200000000000000000000000000000001f00000003reloc/majordomo/config.info.sv    majordomo_cf=Fullst鋘dig s鰇v鋑 till inst鋖lningsfil f鰎 majordomo,0
program_dir=Katalog f鰎 majordomo-program,0
aliases_file=Aliasfil f鰎 sendmail-style ,3,H鋗ta fr錸 sendmail.cf
dynamic=Anv鋘da slumptal f鰎 listalias,1,1-Ja,0-Nej
sort_mode=Sortera mailinglistor efter,1,1-Namn,0-Ordning de skapades i
smrsh_program_dir=Katalog med sendmail-s鋕erhetsprogram,3,Var som helst
 07070100027250000081a40000000000000002000000013ac038a200000196000000200000000000000000000000000000001f00000003reloc/majordomo/config.info.tr    majordomo_cf=Majordomo yap齦and齬ma dosyas齨齨 tam yolu,0
program_dir=Majordomo programlar齨 i鏴ren dizin,0
aliases_file=Sendmail stili takma adlar dosyas,3,sendmail.cf'den al
dynamic=Takma isimleri listemek i鏸n rastgele say齦ar kullan,1,1-Evet,0-Hay齬
sort_mode=Posta listelerini s齬alam,1,1-輘im,0-Olu⺶urulma s齬as齳la
smrsh_program_dir=Sendmail g黺enli programlar齨 i鏴ren dizin,3,Herhangi bir yer
  07070100027251000081a40000000000000002000000013ac038a200000111000000200000000000000000000000000000002200000003reloc/majordomo/config.info.zh_CN majordomo_cf=配置文件的全路径,0
program_dir=包含 majordomo 程序的目录,0
aliases_file=Sendmail-style 别名文件,3,从 sendmail.cf 获得
dynamic=列表别名使用随即数字,1,1-是,0-否
sort_mode=邮件列表排序按照,1,1-名称,0-建立顺序
smrsh_program_dir=包含 sendmail 安全程序的目录,3,任何
   07070100027252000081a40000000000000002000000013ac038a20000008f000000200000000000000000000000000000002700000003reloc/majordomo/config.info.zh_TW.Big5    majordomo_cf= Majordomo 砞﹚郎Ч俱隔畖,0
program_dir= Majordomo 祘Αヘ魁,0
aliases_file=Sendmail妓Α郎,3,パ sendmail.cf 眔
 07070100027253000081e40000000000000002000000013ac038a2000014c2000000200000000000000000000000000000002200000003reloc/majordomo/create_digest.cgi #!/usr/local/bin/perl
# create_digest.cgi
# Create a new digest list

require './majordomo-lib.pl';
require 'ctime.pl';
%access = &get_module_acl();
$access{'create'} || &error($text{'digest_ecannot'});
&ReadParse();
$conf = &get_config();
$ldir = &perl_var_replace(&find_value("listdir", $conf), $conf);
$program_dir = $config{'smrsh_program_dir'} ? $config{'smrsh_program_dir'}
				            : $config{'program_dir'};
&error_setup($text{'digest_err'});

# Validate inputs
$in{'name'} =~ /^\S+$/ || &error($text{'create_ename'});
$in{'name'} = lc($in{'name'});
if (&get_list($in{'name'}, $conf)) {
	&error(&text('create_eexists', $in{'name'}));
	}
$aliases_files = &get_aliases_file();
@aliases = &foreign_call("sendmail", "list_aliases", $aliases_files);
foreach $a (@aliases) {
	if ($a->{'enabled'} && lc($a->{'name'}) eq lc($in{'name'})) {
		&error(&text('create_ealias', $in{'name'}));
		}
	}
$in{'owner'} =~ /^\S+$/ ||
	&error($text{'create_eowner'});
$in{'password'} =~ /^\S+$/ ||
	&error($text{'create_epassword'});
$in{'mode'} != 0 || $in{'days'} =~ /^\d+$/ ||
	&error("Invalid or missing number of days");
$in{'mode'} != 1 || $in{'lines'} =~ /^\d+$/ ||
	&error("Invalid or missing number of lines");
$in{'info'} =~ s/\r//g;
$in{'footer'} =~ s/\r//g;

# Create list members file
&lock_file("$ldir/$in{'name'}");
open(MEMS, ">$ldir/$in{'name'}");
close(MEMS);
&set_permissions("$ldir/$in{'name'}");
&unlock_file("$ldir/$in{'name'}");

# Have majordomo create the new config file, by fooling the wrapper
# into thinking it has received an email with a config command
$lfile = "$ldir/$in{'name'}.config";
&lock_file($lfile);
open(WRAPPER, "|$program_dir/wrapper majordomo >/dev/null 2>&1");
print WRAPPER "From: root\n\n";
print WRAPPER "config $in{'name'} $in{'password'}\n\n";
close(WRAPPER);

# create the .info file
$list = &get_list_config($lfile);
chop($ctime = ctime(time()));
$updated = "[Last updated on: $ctime]\n";
&lock_file("$ldir/$in{'name'}.info");
open(INFO, ">$ldir/$in{'name'}.info");
if (&find_value("date_info", $list) eq "yes") {
	print INFO $updated;
	}
print INFO $in{'info'};
close(INFO);
&set_permissions("$ldir/$in{'name'}.info");
&unlock_file("$ldir/$in{'name'}.info");

# create the archive directory
$adir = &perl_var_replace(&find_value("filedir", $conf), $conf);
$aext = &perl_var_replace(&find_value("filedir_suffix", $conf), $conf);
if ($adir && $aext) {
	&lock_file("$adir/$in{'name'}$aext");
	mkdir("$adir/$in{'name'}$aext", 0755);
	&set_permissions("$adir/$in{'name'}$aext");
	&unlock_file("$adir/$in{'name'}$aext");
	}

# Create the digest directories if needed
$ddir = &perl_var_replace(&find_value("digest_work_dir", $conf), $conf);
$fdir = &perl_var_replace(&find_value("filedir", $conf), $conf);
$fpfx = &perl_var_replace(&find_value("filedir_suffix", $conf), $conf);
&mkdir_heir("$ddir/$in{'name'}");
&mkdir_heir("$fdir/$in{'name'}$fpfx");

# Create aliases for the new list
&foreign_call("sendmail", "lock_alias_files", $aliases_files);
&newlist_alias($in{'list'}."-digestify", "|$program_dir/wrapper digest -r -C -l $in{'name'} $in{'name'}-outgoing");
&newlist_alias($in{'name'}, $in{'list'});
&newlist_alias($in{'name'}."-outgoing", ":include:$ldir/$in{'name'}");
&newlist_alias("owner-".$in{'name'}, $in{'owner'});
&newlist_alias("owner-".$in{'name'}."-outgoing", $in{'owner'});
&newlist_alias($in{'name'}."-owner", $in{'owner'});
&newlist_alias($in{'name'}."-approval", $in{'owner'});
&newlist_alias($in{'name'}."-request", "|$program_dir/wrapper ".
				       "majordomo -l $in{'name'}", 1);

# Add the digestify alias for the source list
foreach $a (&foreign_call("sendmail", "list_aliases", $aliases_files)) {
	if ($a->{'name'} eq $in{'list'}) {
		push(@{$a->{'values'}}, $in{'list'}."-digestify");
		&foreign_call("sendmail", "modify_alias", $a, $a);
		}
	}
&foreign_call("sendmail", "unlock_alias_files", $aliases_files);

# Update the new config file
&save_list_directive($list, $lfile, "description", $in{'desc'});
&save_list_directive($list, $lfile, "digest_name", $in{'desc'});
&save_list_directive($list, $lfile, "digest_issue", 1);
&save_list_directive($list, $lfile, "digest_volume", 1);
&save_list_directive($list, $lfile, "admin_passwd", $in{'password'});
&save_list_directive($list, $lfile, "approve_passwd", $in{'password'});
&save_list_directive($list, $lfile, "message_footer", $in{'footer'}, 1);
if ($in{'mode'} == 0) {
	&save_list_directive($list, $lfile, "digest_maxdays", $in{'days'});
	&save_list_directive($list, $lfile, "digest_maxlines", "");
	}
else {
	&save_list_directive($list, $lfile, "digest_maxdays", "");
	&save_list_directive($list, $lfile, "digest_maxlines", $in{'lines'});
	}
&flush_file_lines();
&unlock_file($lfile);
&webmin_log("create", "digest", $in{'name'}, \%in);

# add to this user's ACL
if ($access{'lists'} ne '*') {
	$access{'lists'} .= " $in{'name'}";
	&save_module_acl(\%access);
	}
&redirect("edit_list.cgi?name=$in{'name'}");

# newlist_alias(name, value, last)
sub newlist_alias
{
local $al = { 'name' => $_[0],
	      'values' => [ $_[1] ],
	      'enabled' => 1 };
&foreign_call("sendmail", "create_alias", $al, $aliases_files, !$_[2]);
}

# mkdir_heir(dir)
sub mkdir_heir
{
if (!-d $_[0]) {
	local $d = $_[0];
	$d =~ s/\/[^\/]+$//;
	&mkdir_heir($d);
	mkdir($_[0], 0755);
	&set_permissions($_[0]);
	}
}
  07070100027254000081e40000000000000002000000013ac038a200000648000000200000000000000000000000000000002000000003reloc/majordomo/create_form.cgi   #!/usr/local/bin/perl
# create_form.cgi
# Display a form for creating a new mailing list

require './majordomo-lib.pl';
%access = &get_module_acl();
$access{'create'} || &error($text{'create_ecannot'});
&header($text{'create_title'}, "");
print "<hr>\n";

print <<EOF;
<form action=create_list.cgi method=post>
<table border width=100%>
<tr $tb> <td><b>$text{'create_header'}</b></td> </tr>
<tr $cb> <td><table width=100%>

<tr> <td><b>$text{'create_name'}</b></td>
     <td><input name=name size=15></td> </tr>
<tr> <td><b>$text{'create_owner'}</b></td>
     <td><input name=owner size=30></td> </tr>
<tr> <td><b>$text{'create_password'}</b></td>
     <td><input name=password type=password size=10></td> </tr>
<tr> <td><b>$text{'create_desc'}</b></td>
     <td><input name=desc size=50></td> </tr>
<tr> <td valign=top><b>$text{'create_info'}</b></td>
     <td><textarea name=info rows=5 cols=60></textarea></td> </tr>
<tr> <td valign=top><b>$text{'create_footer'}</b></td>
     <td><textarea name=footer rows=3 cols=60></textarea></td> </tr>

<tr> <td><b>$text{'create_moderate'}</b></td>
     <td><input type=radio name=moderate value=yes> $text{'yes'}
         <input type=radio name=moderate value=no checked> $text{'no'}
     </td> </tr>
<tr> <td><b>$text{'create_moderator'}</b></td>
     <td><input type=radio name=moderator_def value=1 checked>
	 $text{'create_same'}
         <input type=radio name=moderator_def value=0>
         <input name=moderator size=20></td> </tr>

</table></td></tr></table>
<input type=submit value="$text{'create'}"></form>
<hr>
EOF
&footer("", $text{'index_return'});

07070100027255000081e40000000000000002000000013ac038a200000fe0000000200000000000000000000000000000002000000003reloc/majordomo/create_list.cgi   #!/usr/local/bin/perl
# create_list.cgi
# Create a new mailing list

require './majordomo-lib.pl';
require 'ctime.pl';
%access = &get_module_acl();
$access{'create'} || &error($text{'create_ecannot'});
&ReadParse();
$conf = &get_config();
$ldir = &perl_var_replace(&find_value("listdir", $conf), $conf);
$program_dir = $config{'smrsh_program_dir'} ? $config{'smrsh_program_dir'}
				            : $config{'program_dir'};
&error_setup($text{'create_err'});

# Validate inputs
$in{'name'} =~ /^\S+$/ ||
	&error($text{'create_ename'});
$in{'name'} = lc($in{'name'});
if (&get_list($in{'name'}, $conf)) {
	&error(&text('create_eexists', $in{'name'}));
	}
$aliases_files = &get_aliases_file();
@aliases = &foreign_call("sendmail", "list_aliases", $aliases_files);
foreach $a (@aliases) {
	if ($a->{'enabled'} && lc($a->{'name'}) eq lc($in{'name'})) {
		&error(&text('create_ealias', $in{'name'}));
		}
	}
$in{'owner'} =~ /^\S+$/ ||
	&error($text{'create_eowner'});
$in{'password'} =~ /^\S+$/ ||
	&error($text{'create_epassword'});
$in{'moderator_def'} || $in{'moderator'} =~ /^\S+$/ ||
	&error($text{'create_emoderator'});
$in{'info'} =~ s/\r//g;
$in{'footer'} =~ s/\r//g;

# Create list members file
&lock_file("$ldir/$in{'name'}");
open(MEMS, ">$ldir/$in{'name'}");
close(MEMS);
&set_permissions("$ldir/$in{'name'}");
&unlock_file("$ldir/$in{'name'}");

# Have majordomo create the new config file, by fooling the wrapper
# into thinking it has received an email with a resend command
$lfile = "$ldir/$in{'name'}.config";
&lock_file($lfile);
open(WRAPPER, "|$program_dir/wrapper resend -l $in{'name'} nobody >/dev/null 2>&1");
print WRAPPER "config $in{'name'} $in{'password'}\n\n";
close(WRAPPER);

# create the .info file
$list = &get_list_config($lfile);
chop($ctime = ctime(time()));
$updated = "[Last updated on: $ctime]\n";
&lock_file("$ldir/$in{'name'}.info");
open(INFO, ">$ldir/$in{'name'}.info");
if (&find_value("date_info", $list) eq "yes") {
	print INFO $updated;
	}
print INFO $in{'info'};
close(INFO);
&set_permissions("$ldir/$in{'name'}.info");
&unlock_file("$ldir/$in{'name'}.info");

# create the archive directory
$adir = &perl_var_replace(&find_value("filedir", $conf), $conf);
$aext = &perl_var_replace(&find_value("filedir_suffix", $conf), $conf);
if ($adir && $aext) {
	&lock_file("$adir/$in{'name'}$aext");
	mkdir("$adir/$in{'name'}$aext", 0755);
	&set_permissions("$adir/$in{'name'}$aext");
	&unlock_file("$adir/$in{'name'}$aext");
	}

# Create aliases for the new list
&foreign_call("sendmail", "lock_alias_files", $aliases_files);
$lname = $config{'dynamic'} ? time()+$$ : "$in{'name'}-list";
&newlist_alias($in{'name'}, "|$program_dir/wrapper resend ".
		            "-l $in{'name'} $lname");
&newlist_alias($lname, ":include:$ldir/$in{'name'}");
&newlist_alias("owner-".$in{'name'}, $in{'owner'});
&newlist_alias($in{'name'}."-owner", $in{'owner'});
&newlist_alias($in{'name'}."-approval", $in{'owner'});
&newlist_alias($in{'name'}."-request", "|$program_dir/wrapper ".
				       "majordomo -l $in{'name'}", 1);
&foreign_call("sendmail", "unlock_alias_files", $aliases_files);

# Update the new config file
&save_list_directive($list, $lfile, "description", $in{'desc'});
&save_list_directive($list, $lfile, "admin_passwd", $in{'password'});
&save_list_directive($list, $lfile, "approve_passwd", $in{'password'});
&save_list_directive($list, $lfile, "message_footer", $in{'footer'}, 1);
&save_list_directive($list, $lfile, "moderate", $in{'moderate'});
&save_list_directive($list, $lfile, "moderator",
		     $in{'moderator_def'} ? "" : $in{'moderator'});
&flush_file_lines();
&unlock_file($lfile);
&webmin_log("create", "list", $in{'name'}, \%in);

# add to this user's ACL
if ($access{'lists'} ne '*') {
	$access{'lists'} .= " $in{'name'}";
	&save_module_acl(\%access);
	}
&redirect("edit_list.cgi?name=$in{'name'}");

# newlist_alias(name, value, last)
sub newlist_alias
{
local $al = { 'name' => $_[0],
	      'values' => [ $_[1] ],
	      'enabled' => 1 };
&foreign_call("sendmail", "create_alias", $al, $aliases_files, !$_[2]);
}

07070100027256000081a40000000000000002000000013ac038a20000002c000000200000000000000000000000000000001b00000003reloc/majordomo/defaultacl    lists=*
global=1
create=1
edit=1
noconfig=0
07070100027257000081e40000000000000002000000013ac038a200000c94000000200000000000000000000000000000002000000003reloc/majordomo/delete_list.cgi   #!/usr/local/bin/perl
# delete_list.cgi
# Delete a mailing list, after asking the user if he is sure

require './majordomo-lib.pl';
&ReadParse();
$name = $in{'name'};
%access = &get_module_acl();
&can_edit_list(\%access, $name) || &error($text{'delete_ecannot'});

# find aliases and files
$conf = &get_config();
$aliases_files = &get_aliases_file();
&foreign_call("sendmail", "lock_alias_files", $aliases_files)
	if ($in{'confirm'});
@aliases = &foreign_call("sendmail", "list_aliases", $aliases_files);
foreach $a (@aliases) {
	if ($a->{'name'} eq $name && $a->{'value'} =~ /-digestify/i) {
		&error($text{'delete_edigest'});
		}
	if ($a->{'name'} =~ /-digestify$/i && $a->{'value'} =~ /\s$name\s/i) {
		$digestify = $a;
		}
	if ($a->{'name'} eq $name) {
		foreach $v (@{$a->{'values'}}) {
			$real_list = $1
				if ($v =~ /^\|\S*wrapper\s+resend.*\s(\S+)$/);
			}
		}
	}
@daliases = grep { $_->{'name'} =~ /^$name$/i ||
		  $_->{'name'} eq $real_list ||
		  $_->{'name'} =~ /^$name-(list|owner|approval|outgoing|request)$/i ||
		  $_->{'name'} =~ /owner-$name-outgoing$/i ||
		  $_->{'name'} =~ /$name-outgoing-(list|owner|approval)$/i ||
		  $_ eq $digestify ||
		  $_->{'name'} =~ /^owner-$name$/i } @aliases;
$ldir = &perl_var_replace(&find_value("listdir", $conf), $conf);
opendir(LDIR, $ldir);
while($f = readdir(LDIR)) {
	if ($f eq $name || $f =~ /^$name\./) {
		push(@files, "$ldir/$f");
		}
	}
closedir(LDIR);

if ($in{'confirm'}) {
	# do the deletion
	foreach $f (@files) { &lock_file($f); }
	foreach $f (@files) {
		system("rm -rf \"$f\"");
		}
	foreach $f (@files) { &unlock_file($f); }
	@daliases = sort { $b->{'line'} <=> $a->{'line'} } @daliases;
	foreach $a (@daliases) {
		&foreign_call("sendmail", "delete_alias", $a, $aliases_file);
		}

	if ($digestify) {
		# delete the digestify alias from the 'parent' list
		foreach $a (@aliases) {
			$idx = &indexof($digestify->{'name'},@{$a->{'values'}});
			if ($idx >= 0) {
				splice(@{$a->{'values'}}, $idx, 1);
				&foreign_call("sendmail",
					      "modify_alias", $a, $a);
				}
			}
		}
	&foreign_call("sendmail", "unlock_alias_files", $aliases_files);

	# remove from ACLs
	&read_acl(undef, \%wusers);
	foreach $u (keys %wusers) {
		%uaccess = &get_module_acl($u);
		$uaccess{'lists'} = join(' ', grep { $_ ne $name }
					      split(/\s+/, $uaccess{'lists'}));
		&save_module_acl(\%uaccess, $u) if ($uaccess{'lists'} ne '*');
		}
	&webmin_log("delete", "list", $name);
	&redirect("");
	}
else {
	# ask the user if he is sure
	&header($text{'delete_title'}, "");
	print "<hr>\n";
	print "<form action=delete_list.cgi>\n";
	print "<input type=hidden name=name value=\"$name\">\n";
	print "<input type=hidden name=confirm value=1>\n";
	print "<b>",&text('delete_rusure', "<tt>$name</tt>"),"</b><br>\n";
	print "<ul>\n";
	foreach $f (@files) {
		print "<tt>$f</tt><br>\n";
		}
	print "</ul>\n";
	print "<b>$text{'delete_aliases'}</b><br>\n";
	print "<ul>\n";
	foreach $a (@daliases) {
		print "<tt>$a->{'name'}: $a->{'value'}</tt><br>\n";
		}
	print "</ul>\n";
	print "<center><input type=submit ",
	      "value='$text{'delete_ok'}'></center>\n";
	print "</form>\n";
	print "<hr>\n";
	&footer("edit_list.cgi?name=$name", $text{'edit_return'});
	}

07070100027258000081e40000000000000002000000013ac038a200000686000000200000000000000000000000000000002000000003reloc/majordomo/digest_form.cgi   #!/usr/local/bin/perl
# digest_form.cgi
# Display a form for creating a new disgest list

require './majordomo-lib.pl';
%access = &get_module_acl();
$access{'create'} || &error($text{'cdigest_ecannot'});
&header($text{'cdigest_title'}, "");
print "<hr>\n";

$lists = "<select name=list>\n";
foreach $l (&list_lists(&get_config())) {
	$lists .= "<option>$l\n";
	}
$lists .= "</select>\n";

$old = &text('cdigest_old', "<input name=days size=3>");
$lines = &text('cdigest_lines', "<input name=lines size=5>");

print <<EOF;
<form action=create_digest.cgi method=post>
<table border width=100%>
<tr $tb> <td><b>$text{'cdigest_header'}</b></td> </tr>
<tr $cb> <td><table width=100%>

<tr> <td><b>$text{'cdigest_name'}</b></td>
     <td><input name=name size=15></td> </tr>
<tr> <td><b>$text{'cdigest_list'}</b></td> <td>$lists</td> </tr>
<tr> <td><b>$text{'cdigest_owner'}</b></td>
     <td><input name=owner size=30></td> </tr>
<tr> <td><b>$text{'cdigest_password'}</b></td>
     <td><input name=password type=password size=10></td> </tr>
<tr> <td><b>$text{'cdigest_desc'}</b></td>
     <td><input name=desc size=50></td> </tr>
<tr> <td valign=top><b>$text{'cdigest_info'}</b></td>
     <td><textarea name=info rows=5 cols=60></textarea></td> </tr>
<tr> <td valign=top><b>$text{'cdigest_footer'}</b></td>
     <td><textarea name=footer rows=3 cols=60></textarea></td> </tr>
<tr> <td valign=top><b>$text{'cdigest_when'}</b></td>
     <td><input type=radio name=mode value=0 checked> $old<br>
	 <input type=radio name=mode value=1> $lines</td> </tr>

</table></td></tr></table>
<input type=submit value="$text{'create'}"></form>
<hr>
EOF
&footer("", $text{'index_return'});

  07070100027259000081e40000000000000002000000013ac038a200000e55000000200000000000000000000000000000002000000003reloc/majordomo/edit_access.cgi   #!/usr/local/bin/perl
# edit_access.cgi
# Edit access control options

require './majordomo-lib.pl';
&ReadParse();
%access = &get_module_acl();
&can_edit_list(\%access, $in{'name'}) || &error($text{'edit_ecannot'});
$list = &get_list($in{'name'}, &get_config());
$conf = &get_list_config($list->{'config'});
&header($text{'access_title'}, "");
print "<center><font size=+1>",&text('edit_for', "<tt>$in{'name'}</tt>"),
      "</font></center>\n";
print "<hr>\n";

print "<form action=save_access.cgi>\n";
print "<input type=hidden name=name value='$in{'name'}'>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'access_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr>\n";
print &choice_input("get_access", $text{'access_get'}, $conf,
		    "open",$text{'access_open'}, "list",$text{'access_list'},
		    "closed",$text{'access_closed'});
print &choice_input("index_access", $text{'access_index'}, $conf,
		    "open",$text{'access_open'}, "list",$text{'access_list'},
		    "closed",$text{'access_closed'});
print "</tr>\n";

print "<tr>\n";
print &choice_input("info_access", $text{'access_info'}, $conf,
		    "open",$text{'access_open'}, "list",$text{'access_list'},
		    "closed",$text{'access_closed'});
print &choice_input("intro_access", $text{'access_intro'}, $conf,
		    "open",$text{'access_open'}, "list",$text{'access_list'},
		    "closed",$text{'access_closed'});
print "</tr>\n";

print "<tr>\n";
print &choice_input("which_access", $text{'access_which'}, $conf,
		    "open",$text{'access_open'}, "list",$text{'access_list'},
		    "closed",$text{'access_closed'});
print &choice_input("who_access", $text{'access_who'}, $conf,
		    "open",$text{'access_open'}, "list",$text{'access_list'},
		    "closed",$text{'access_closed'});
print "</tr>\n";

$adv = &find_value("advertise", $conf);
$noadv = &find_value("noadvertise", $conf);
print "<tr>\n";
print "<td valign=top><b>$text{'access_adv'}</b></td> <td valign=top>\n";
printf "<input type=radio name=adv_mode value=0 %s> $text{'access_adv0'}<br>\n",
	$adv !~ /\S/ && $noadv !~ /\S/ ? "checked" : "";
printf "<input type=radio name=adv_mode value=1 %s> $text{'access_adv1'}<br>\n",
	$adv =~ /\S/ ? "checked" : "";
printf "<input type=radio name=adv_mode value=2 %s> $text{'access_adv2'}<br>\n",
	$noadv =~ /\S/ ? "checked" : "";
print "</td> <td valign=top colspan=2>\n";
printf "<textarea rows=4 cols=40 name=adv>%s</textarea></td> </tr>\n",
	$adv =~ /\S/ ? $adv : $noadv =~ /\S/ ? $noadv : "";

$res = &find_value("restrict_post", $conf);
$ldir = &perl_var_replace(&find_value("listdir", &get_config()),
			  &get_config());
$reslist = $res eq $in{'name'} || $res eq "$ldir/$in{'name'}";
print "<tr> <td><b>$text{'access_res'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=res_mode value=0 %s> $text{'access_res0'}\n",
	$res ? "" : "checked";
printf "<input type=radio name=res_mode value=1 %s> $text{'access_res1'}\n",
	$reslist ? "checked" : "";
printf "<input type=radio name=res_mode value=2 %s> $text{'access_res2'}\n",
	$res && !$reslist ? "checked" : "";
printf "<input name=res size=35 value=\"%s\">%s</td> </tr>\n",
	$res && !$reslist ? $res : "", &file_chooser_button("res", 0);

print "<tr>\n";
print &multi_input("taboo_body", $text{'access_tbody'}, $conf);
print "</tr>\n";

print "<tr>\n";
print &multi_input("taboo_headers", $text{'access_theader'}, $conf);
print "</tr>\n";

print "<tr> <td colspan=4>$text{'access_taboo'}</td> </tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("edit_list.cgi?name=$in{'name'}", $text{'edit_return'});

   0707010002725a000081e40000000000000002000000013ac038a2000005d0000000200000000000000000000000000000002000000003reloc/majordomo/edit_digest.cgi   #!/usr/local/bin/perl
# edit_digest.cgi
# Edit digest options

require './majordomo-lib.pl';
&ReadParse();
%access = &get_module_acl();
&can_edit_list(\%access, $in{'name'}) || &error($text{'edit_ecannot'});
$list = &get_list($in{'name'}, &get_config());
$conf = &get_list_config($list->{'config'});
&header("Digest Options", "");
print "<center><font size=+1>",&text('edit_for', "<tt>$in{'name'}</tt>"),
      "</font></center>\n";
print "<hr>\n";

print "<form action=save_digest.cgi>\n";
print "<input type=hidden name=name value='$in{'name'}'>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'digest_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr>\n";
print &opt_input("digest_name", $text{'digest_name'}, $conf,
	  	 $text{'default'}, 40);
print "</tr>\n";

print "<tr>\n";
print &opt_input("digest_maxdays", $text{'digest_maxdays'},
		 $conf, $text{'digest_unlimited'}, 5, $text{'digest_days'});
print &opt_input("digest_maxlines", $text{'digest_maxlines'},
		 $conf, $text{'digest_unlimited'}, 5, $text{'digest_lines'});
print "</tr>\n";

print "<tr>\n";
print &opt_input("digest_volume", $text{'digest_volume'},
		 $conf, $text{'default'}, 4);
print &opt_input("digest_issue", $text{'digest_issue'},
		 $conf, $text{'default'}, 4);
print "</tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("edit_list.cgi?name=$in{'name'}", $text{'edit_return'});

0707010002725b000081e40000000000000002000000013ac038a200000553000000200000000000000000000000000000002000000003reloc/majordomo/edit_global.cgi   #!/usr/local/bin/perl
# edit_global.cgi
# Edit global majordomo options

require './majordomo-lib.pl';
$conf = &get_config();
%access = &get_module_acl();
$access{'global'} || &error($text{'global_ecannot'});
&header($text{'global_title'}, "");
print "<hr>\n";

print "<form action=save_global.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'global_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

$whereami = &find_value("whereami", $conf);
print "<tr> <td><b>$text{'global_whereami'}</b></td>\n";
print "<td><input name=whereami size=30 value=\"$whereami\"></td> </tr>\n";

$whoami = &find_value("whoami", $conf);
print "<tr> <td><b>$text{'global_whoami'}</b></td>\n";
print "<td><input name=whoami size=40 value=\"$whoami\"></td> </tr>\n";

$whoami_o = &find_value("whoami_owner", $conf);
print "<tr> <td><b>$text{'global_owner'}</b></td>\n";
print "<td><input name=whoami_owner size=40 value=\"$whoami_o\"></td> </tr>\n";

$sendmail = &find_value("sendmail_command", $conf);
print "<tr> <td><b>$text{'global_sendmail'}</b></td>\n";
print "<td><input name=sendmail_command size=40 value=\"$sendmail\">",
	&file_chooser_button("sendmail_command", 0),"</td> </tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});
 0707010002725c000081e40000000000000002000000013ac038a20000049a000000200000000000000000000000000000001e00000003reloc/majordomo/edit_head.cgi #!/usr/local/bin/perl
# edit_head.cgi
# Edit headers and footers

require './majordomo-lib.pl';
&ReadParse();
%access = &get_module_acl();
&can_edit_list(\%access, $in{'name'}) || &error($text{'edit_ecannot'});
$list = &get_list($in{'name'}, &get_config());
$conf = &get_list_config($list->{'config'});
&header($text{'head_title'}, "");
print "<center><font size=+1>",&text('edit_for', "<tt>$in{'name'}</tt>"),
      "</font></center>\n";
print "<hr>\n";

print "<form action=save_head.cgi>\n";
print "<input type=hidden name=name value='$in{'name'}'>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'head_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr>\n";
print &multi_input("message_fronter", $text{'head_fronter'}, $conf);
print "</tr>\n";

print "<tr>\n";
print &multi_input("message_footer", $text{'head_footer'}, $conf);
print "</tr>\n";

print "<tr>\n";
print &multi_input("message_headers", $text{'head_headers'}, $conf);
print "</tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("edit_list.cgi?name=$in{'name'}", $text{'edit_return'});
  0707010002725d000081e40000000000000002000000013ac038a20000072c000000200000000000000000000000000000001e00000003reloc/majordomo/edit_info.cgi #!/usr/local/bin/perl
# edit_info.cgi
# Display a form for editing the intro message for a list

require './majordomo-lib.pl';
&ReadParse();
%access = &get_module_acl();
&can_edit_list(\%access, $in{'name'}) || &error($text{'edit_ecannot'});
$list = &get_list($in{'name'}, &get_config());
$conf = &get_list_config($list->{'config'});
&header($text{'info_title'}, "");
print "<center><font size=+1>",&text('edit_for', "<tt>$in{'name'}</tt>"),
      "</font></center>\n";
print "<hr>\n";

print "<form action=save_info.cgi method=post>\n";
print "<input type=hidden name=name value=$in{'name'}>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'info_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'info_desc'}</b></td>\n";
$desc = &find_value("description", $conf);
print "<td><input name=description size=40 value=\"$desc\"></td> </tr>\n";

print "<tr> <td valign=top><b>",&text('info_info', $in{'name'}),"</b></td>\n";
print "<td><textarea rows=5 cols=80 name=info>\n";
open(INFO, $list->{'info'});
while(<INFO>) {
	print if (!/^\[Last updated on:/);
	}
close(INFO);
print "</textarea></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'info_intro'}</b></td> <td>\n";
$intro = -r $list->{'intro'};
printf "<input type=radio name=intro_def value=1 %s> $text{'info_same'}\n",
	$intro ? "" : "checked";
printf "<input type=radio name=intro_def value=0 %s> $text{'info_below'}<br>\n",
	$intro ? "checked" : "";
print "<textarea rows=5 cols=80 name=intro>\n";
open(INTRO, $list->{'intro'});
while(<INTRO>) {
	print if (!/^\[Last updated on:/);
	}
close(INTRO);
print "</textarea></td> </tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("edit_list.cgi?name=$in{'name'}", $text{'edit_return'});

0707010002725e000081e40000000000000002000000013ac038a20000050e000000200000000000000000000000000000001e00000003reloc/majordomo/edit_list.cgi #!/usr/local/bin/perl
# edit_list.cgi
# Edit an existing mailing list

require './majordomo-lib.pl';
&ReadParse();
%access = &get_module_acl();
&can_edit_list(\%access, $in{'name'}) ||
	&error($text{'edit_ecannot'});
&header($text{'edit_title'}, "");
print "<center><font size=+1><tt>$in{'name'}</tt></font></center>\n";
print "<hr>\n";

@links = ( "edit_members.cgi", "edit_info.cgi", "edit_subs.cgi",
	   "edit_mesg.cgi", "edit_access.cgi", "edit_head.cgi",
	   "edit_misc.cgi" );
foreach $a (&foreign_call("sendmail", "list_aliases", &get_aliases_file())) {
	if ($a->{'name'} =~ /-digestify$/i &&
	    $a->{'value'} =~ /\s$in{'name'}\s/i) {
		$isdigest++;
		}
	}
if ($isdigest) {
	push(@links, "edit_digest.cgi");
	}
map { s/edit_(\S+).cgi/images\/$1.gif/ } (@icons = @links);
map { s/edit_(\S+).cgi/$text{"$1_title"}/ } (@titles = @links);
@links = map { $_."?name=".$in{'name'} } @links;
&icons_table(\@links, \@titles, \@icons);

print "<hr>\n";
print "<table>\n";
print "<form action=delete_list.cgi>\n";
print "<input type=hidden name=name value=\"$in{'name'}\">\n";
print "<tr> <td><input type=submit value=\"$text{'edit_delete'}\"></td>\n";
print "<td>$text{'edit_deletemsg'}</td> </tr>\n";
print "</form>\n";
print "</table>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

  0707010002725f000081e40000000000000002000000013ac038a200000877000000200000000000000000000000000000002100000003reloc/majordomo/edit_members.cgi  #!/usr/local/bin/perl
# edit_members.cgi
# Display a form for editing the members of some list

require './majordomo-lib.pl';
&ReadParse();
%access = &get_module_acl();
&can_edit_list(\%access, $in{'name'}) || &error($text{'edit_ecannot'});
$list = &get_list($in{'name'}, &get_config());
&header($text{'members_title'}, "");
print "<center><font size=+1>",&text('edit_for', "<tt>$in{'name'}</tt>"),
      "</font></center>\n";
print "<hr>\n";

if ($access{'edit'}) {
	print "$text{'members_desc'}<br>\n";
	}
else {
	print "$text{'members_rodesc'}<br>\n";
	}
print "<form action=save_members.cgi method=post>\n";
print "<input type=hidden name=name value='$in{'name'}'>\n";
print "<textarea rows=15 cols=60 name=members>\n";
open(MEMS, $list->{'members'});
while(<MEMS>) { print; }
close(MEMS);
print "</textarea>\n";
if (!$access{'edit'}) {
	print "<p>\n";
	}
else {
	print "<br><input type=submit value=\"$text{'save'}\" name=update>\n";
	print "<hr>\n";

	print "<table>\n";
	print "<tr> <td><b>$text{'members_sub'}</b></td>\n";
	print "<td><input name=addr_a size=40> ",
	      "<input type=submit name=add ",
	      "value=\"$text{'members_add'}\"></td> </tr>\n";

	print "<tr> <td><b>$text{'members_unsub'}</b></td>\n";
	print "<td><input name=addr_r size=40> ",
	      "<input type=submit name=remove ",
	      "value=\"$text{'members_rem'}\"></td> </tr>\n";
	print "</table></form>\n";

	print "<hr>\n";
	print "<form action=save_auto.cgi>\n";
	print "<input type=hidden name=name value='$in{'name'}'>\n";
	print "<table>\n";
	$sync = $config{"sync_$in{'name'}"};
	print "<tr> <td><b>$text{'members_sync'}</b></td> <td>\n";
	printf "<input type=radio name=sync value=1 %s> %s\n",
		$sync ? "checked" : "", $text{'yes'};
	printf "<input type=radio name=sync value=0 %s> %s</td> </tr>\n",
		$sync ? "" : "checked", $text{'no'};

	$shost = $config{"shost_$in{'name'}"};
	print "<tr><td><b>$text{'members_dom'}</b></td>\n";
	print "<td><input name=shost size=40 value='$shost'>\n";
	print "<input type=submit value=\"$text{'save'}\"></td> </tr>\n";

	print "</table></form>\n";
	}

print "<hr>\n";
&footer("edit_list.cgi?name=$in{'name'}", $text{'edit_return'});

 07070100027260000081e40000000000000002000000013ac038a20000071e000000200000000000000000000000000000001e00000003reloc/majordomo/edit_mesg.cgi #!/usr/local/bin/perl
# edit_mesg.cgi
# Edit subscription options

require './majordomo-lib.pl';
&ReadParse();
%access = &get_module_acl();
&can_edit_list(\%access, $in{'name'}) || &error($text{'edit_ecannot'});
$list = &get_list($in{'name'}, &get_config());
$conf = &get_list_config($list->{'config'});
&header($text{'mesg_title'}, "");
print "<center><font size=+1>",&text('edit_for', "<tt>$in{'name'}</tt>"),
      "</font></center>\n";
print "<hr>\n";

print "<form action=save_mesg.cgi>\n";
print "<input type=hidden name=name value='$in{'name'}'>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'mesg_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr>\n";
print &opt_input("reply_to", $text{'mesg_reply'},
		 $conf, $text{'mesg_none'}, 20);
print &opt_input("sender", $text{'mesg_sender'}, $conf,
		 $text{'default'}, 15);
print "</tr>\n";

print "<tr>\n";
print &opt_input("resend_host", $text{'mesg_host'}, $conf,
		 $text{'default'}, 15);
print &opt_input("subject_prefix", $text{'mesg_subject'},
		 $conf, $text{'default'}, 20);
print "</tr>\n";

print "<tr>\n";
print &select_input("precedence", $text{'mesg_precedence'}, $conf,
		    "first-class", $text{'mesg_first'},
		    "special-delivery", $text{'mesg_special'},
		    "list", $text{'mesg_list'},
		    "bulk", $text{'mesg_bulk'},
		    "junk", $text{'mesg_junk'});
print &choice_input("purge_received", $text{'mesg_purge'}, $conf,
		    "yes", $text{'yes'}, "no", $text{'no'});
print "</tr>\n";

print "<tr>\n";
print &opt_input("maxlength", $text{'mesg_maxlength'}, $conf,
		 $text{'default'}, 8, "bytes");
print "</tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("edit_list.cgi?name=$in{'name'}", $text{'edit_return'});

  07070100027261000081e40000000000000002000000013ac038a200000554000000200000000000000000000000000000001e00000003reloc/majordomo/edit_misc.cgi #!/usr/local/bin/perl
# edit_misc.cgi
# Edit miscellaneous options

require './majordomo-lib.pl';
&ReadParse();
%access = &get_module_acl();
&can_edit_list(\%access, $in{'name'}) || &error($text{'edit_ecannot'});
$list = &get_list($in{'name'}, &get_config());
$conf = &get_list_config($list->{'config'});
&header($text{'misc_title'}, "");
print "<center><font size=+1>",&text('edit_for', "<tt>$in{'name'}</tt>"),
      "</font></center>\n";
print "<hr>\n";

print "<form action=save_misc.cgi>\n";
print "<input type=hidden name=name value='$in{'name'}'>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'misc_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr>\n";
print &choice_input("mungedomain", $text{'misc_munge'},
		    $conf, "yes",$text{'yes'}, "no",$text{'no'});
print &choice_input("debug", $text{'misc_debug'}, $conf,
		    "yes",$text{'yes'}, "no",$text{'no'});
print "</tr>\n";

print "<tr>\n";
print &choice_input("date_info", $text{'misc_info'},
		    $conf, "yes",$text{'yes'}, "no",$text{'no'});
print &choice_input("date_intro", $text{'misc_intro'},
		    $conf, "yes",$text{'yes'}, "no",$text{'no'});
print "</tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("edit_list.cgi?name=$in{'name'}", $text{'edit_return'});

07070100027262000081e40000000000000002000000013ac038a200000f6f000000200000000000000000000000000000001e00000003reloc/majordomo/edit_subs.cgi #!/usr/local/bin/perl
# edit_subs.cgi
# Edit subscription options

require './majordomo-lib.pl';
&ReadParse();
%access = &get_module_acl();
&can_edit_list(\%access, $in{'name'}) || &error($text{'edit_ecannot'});
$list = &get_list($in{'name'}, &get_config());
$conf = &get_list_config($list->{'config'});
&header($text{'subs_title'}, "");
print "<center><font size=+1>",&text('edit_for', "<tt>$in{'name'}</tt>"),
      "</font></center>\n";
print "<hr>\n";

print "<form action=save_subs.cgi>\n";
print "<input type=hidden name=name value='$in{'name'}'>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'subs_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

$pol = &find_value("subscribe_policy", $conf);
if ($pol =~ /(\S+)\+confirm/) { $pol = $1; $confirm = 1; }
print "<tr> <td><b>$text{'subs_sub'}</b></td> <td colspan=3 nowrap>\n";
printf "<input name=subscribe_policy type=radio value=open %s> %s\n",
	$pol eq "open" ? "checked" : "", $text{'subs_sopen'};
printf "<input name=subscribe_policy type=radio value=auto %s> %s\n",
	$pol eq "auto" ? "checked" : "", $text{'subs_sauto'};
printf "<input name=subscribe_policy type=radio value=closed %s> %s\n",
	$pol eq "closed" ? "checked" : "", $text{'subs_closed'};
print "</td> </tr>\n";

$upol = &find_value("unsubscribe_policy", $conf);
print "<tr> <td><b>$text{'subs_unsub'}</b></td> <td colspan=3 nowrap>\n";
printf "<input name=unsubscribe_policy type=radio value=open %s> %s\n",
	$upol eq "open" ? "checked" : "", $text{'subs_uopen'};
printf "<input name=unsubscribe_policy type=radio value=auto %s> %s\n",
	$upol eq "auto" ? "checked" : "", $text{'subs_uauto'};
printf "<input name=unsubscribe_policy type=radio value=closed %s> %s\n",
	$upol eq "closed" ? "checked" : "", $text{'subs_closed'};
print "</td> </tr>\n";

print "<tr> <td><b>$text{'subs_confirm'}</b></td> <td>\n";
printf "<input name=subscribe_policy_c type=radio value='+confirm' %s> %s\n",
	$confirm ? "checked" : "", $text{'yes'};
printf "<input name=subscribe_policy_c type=radio value='' %s> %s</td>\n",
	$confirm ? "" : "checked", $text{'no'};
print &choice_input("welcome", $text{'subs_welcome'}, $conf,
		    "yes", $text{'yes'}, "no", $text{'no'});
print "</tr>\n";

print "<tr>\n";
print &choice_input("strip", $text{'subs_strip'}, $conf,
		    "yes", $text{'yes'}, "no", $text{'no'});
print &choice_input("announcements", $text{'subs_announcements'},
		    $conf, "yes", $text{'yes'}, "no", $text{'no'});
print "</tr>\n";

print "<tr>\n";
print &choice_input("administrivia", $text{'subs_administrivia'},
		    $conf, "yes", $text{'yes'}, "no", $text{'no'});
print &opt_input("admin_passwd", $text{'subs_passwd'}, $conf,
		 $text{'default'}, 10);
print "</tr>\n";

print "<tr> <td colspan=4><hr></td> </tr>\n";
print "<tr>\n";
print &choice_input("moderate", $text{'subs_moderate'}, $conf,
		    "yes", $text{'yes'}, "no", $text{'no'});
print &opt_input("moderator", $text{'subs_moderator'}, $conf,
		 $text{'subs_maint'}, 20);
print "</tr>\n";

print "<tr>\n";
print &opt_input("approve_passwd", $text{'subs_mpasswd'}, $conf,
		 $text{'default'}, 10);
print "</tr>\n";

print "<tr> <td colspan=4><hr></td> </tr>\n";
$aliases_files = &get_aliases_file();
@aliases = &foreign_call("sendmail", "list_aliases", $aliases_files);
foreach $a (@aliases) {
	$owner = $a->{'value'}
		if (lc($a->{'name'}) eq lc("$in{'name'}-owner") ||
		    lc($a->{'name'}) eq lc("owner-$in{'name'}"));
	$approval = $a->{'value'}
		if (lc($a->{'name'}) eq lc("$in{'name'}-approval"));
	}
print "<tr> <td><b>$text{'subs_owner'}</b></td>\n";
print "<td><input name=owner size=20 value='$owner'></td>\n";

print "<td><b>$text{'subs_approval'}</b></td>\n";
print "<td><input name=approval size=20 value='$approval'></td> </tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("edit_list.cgi?name=$in{'name'}", $text{'edit_return'});

 07070100078f6d000041ed0000000000000001000000023ac03c0f00000000000000200000000000000000000000000000001700000003reloc/majordomo/images    07070100078f6e000081a40000000000000002000000013ac038a200000113000000200000000000000000000000000000002200000003reloc/majordomo/images/access.gif GIF89a0 0   烫虣櫃fff            !    ,    0 0  很0蔍8死{讬'8yB俫B]z秮:渕}鲯嚨炩!鰧粻Ya倻MJ	酼礧捌 gu@鬡U?賍w咵/羆巷}y剕&z剢巻 憭弾崈棌晧殩瀧ぅⅲ洜~挱疁埓捣祲悎恫【聥炼拦贸皺橇幣派维泄氏斎已虆乇趰*徭乳 庄飶B蝮趱鲼	 ; 07070100078f6f000081a40000000000000002000000013ac038a200000179000000200000000000000000000000000000001f00000003reloc/majordomo/images/dig.gif    GIF89a0 0   烫  櫃檉ff       !    ,    0 0  很0睝Aj潵&>A 婀l8綣F崧，灒
P鮸訧"G$itDj鉿x苦7&.彿信YT旴彙PJ‐炡丌^励+7sL剓:x{.%vD ,6e/4寍垇oQ=凪uv@*L@j0ut簹l梄緩绤恌槥羪疪8忻}~暮ж 妼;1糂+-冠舤淯毕鈒８銠猬K}龆嬿镒2偂 |C5d陕DN嫨Z
沋IC?1F5轉)/偡-
d鶊传\$d.ナ<3椵lV"埦I<b:`Y虊小|幨L螲0MI  ;   07070100078f70000081a40000000000000002000000013ac038a2000009a2000000200000000000000000000000000000002200000003reloc/majordomo/images/digest.gif GIF89a0 0   ^矀將N\谅蕉bl "8枝膺菳X萊i詁y嗦廊&H$幄гr覀屧挊绮存蕴貰f2R轗q4篁筱r勪倫:D鈊{<擘挍岩呜6`虿纷Ja衤牟鲣厝Zp褚言j{:Z錃．v|荍a襷勡Zr4紊私&9蚴射豪<鋳柟,糝d蔮x$逬b糈倨+Q蕺姅銁嬳*?D
4P訸r倒达盱:D墒沏\w7蒻{投篂.<殛畿dy4Z鞌熧谥艚考躭:L鞙ハJ`鍪膴籈V輗冘|婋崥袰`覶m軅嵽Fi鋗傴酉砘疽*\瀣桥闹殰畛饵趑僬迂Mn週n雧屄*NO珏闶銻p阹勪啌>d髋奈[o%F裎蚻螔湠$蝨勞D蕣敎
z.L馕暮n|噍诓0綹t疘Y澜恍@
$9形淌敬$P
睳\蝯勱睦)2H
46<纃t輸涄颇輯楘祀趾搓谪;ZD蜼t#Q>.蝐u湮,V翫b*W婊"=^j妫┦8颏9d耉l@汉妇<蝚{缄n勣洡$HD=YL耲|蔉`馄特Fd6V鋠婁枱蛑茕灔躛v蒮q蹀拚^t袾h魑宪v嗈啍螽禋6P<晡砸.L.J0缕拟驿謋t猞v務啅槎粉Vp鲻纛Μ:\蠖恢Nd衿那^q觧|>X荖a諂団灸4鋷樇Vf釴d墚般~嬵.D?!Made with GIMP !   ,    0 0   	H盃羶狵劝!820赩暾脆尦&劽⿻x脧6!B圿)播A讆饆C\钢岵a)m蝬
T⑥t#J"鯽婼=枑f寵
=h瓺7#~瑂JjQBcf凞2Y玆.}Jk7B:][猯亾v`	[@DKP S#n襆m⒀鏩+睃柇"醽濽	忡O捐R峩}剳腢g '.	)蘉6唸9A洼>W磇c砃寴g>ts藼=翋G嚬箸it}hZ遛= -軚a:鮰幓3gP撀[霢篋.蟺pTe%愜%爠w8捙04`<淞C|瘃3e急3蠄R巚)√74憦朮L#兯{lQ苂蛧N$饜閷AcG7>4笄艷m$聊 L0職w0AN:	疳N塘f+	Ｃ鱜_T
驁xFs涑."PAE3扭饴B髛H3M8C殇1M4羶<﨓琤k癭围ヽo屏!C54 呷!咴aC.損 --荼鶕X!aC4$蠰v4蠱8#刬%和3+!a6誁怑釀/梆=.1rGHR0Bq($诚9&/剚袸1? BKG 缊8\Y00訾28+膕=*d	((蔄V瑞藱/S睲m戳DgB!:鴓b%堤R素崽翸靽?l 腁#?p磫雦鯢p堽	硺惺8勼蛇 覶#>,0魥#D;袘@p鋚,8I耙J喹80<(s婴愋5氪搯>k>慈@I誵鼙矻偺d匾L,N-勩3畜LB磍慒%埪A 2與,$
3r剽C1ㄘ鹕喹撏9 扨;$C x XX俫/鹈褹唟腃鄲2昀奜(@錉GB郹=%榾( 貓め
'RQW,f乩y孉X!!A	  j(: fhaC怐1帯)	S=残9葋c=M0层HpPAH滂0媝癇:P6鱤 GfH0(l`鲛:p梆) '鼉
d@B5dYx鎝vP! x*杚▋
#y<姥;枥坣gt@g葌5 \燨~衼!P(4(&诹弆(狆
鈶 l7pF刕*.Vb淅9`矌純歔袎4axA<吗M刟
~p*PH 7 E(@M⒓a C烤2d!瘌h5v,pa禓Bl 豶?築瑏U~e鋫d憪iLA+P垈兀@K @衊臻6Z@妜$@眕y!猵<!|J	 ;瑲喬l[q(Dz!魣G<灡dx奱(VH6`J丷"#伮郃
QD愠傩1侙C
鰥JL簃#@s謕僄pX 俅試怠k)R4:% 		$n琈<2蒌$a B0蠗 坭]念0\Mm鴧:@	牧V卩班氉 r跢#庌Ab 浇瘈 ;  07070100078f71000081a40000000000000002000000013ac038a2000000d7000000200000000000000000000000000000002000000003reloc/majordomo/images/head.gif   GIF89a0 0   櫃檉ff   !    ,    0 0  ▌彥隧蹿{冝納琱)牪隁灓a蔞鈎n"吀朘-$瑇6胧sg锼麑2泣氐峙(韤K39棉~rit骇暦鳁Pq8((讞y&I枞〨X9幅止豸夷c蕋厜y鐄闦j殙辅2鸜1针吮,<L\糤  ; 07070100078f72000081a40000000000000002000000013ac038a20000014f000000200000000000000000000000000000002000000003reloc/majordomo/images/icon.gif   GIF89a0 0   烫虣櫃fff         !    ,    0 0  很0蔍8胪;禠 V篓圕
HP殺g哔X浻l憩暿孂*;＠4 5湐髢Z晲嘡0Y50NTh睔;&躪洝浆瑼_Er[yvv坽}寔C僡mgi塽瀥!烞-劍槪e渽x煚Rご慯摤暪dX钞'櫮Joq钳斗7脄の-`/迸M萁篨虧凳<o鐔,&围]+瘊隗蟣窨	TPA $ㄏ?欜9*WkcFj>b@菠蓳(Sn\梢B ; 07070100078f73000081a40000000000000002000000013ac038a20000013e000000200000000000000000000000000000002000000003reloc/majordomo/images/info.gif   GIF89a0 0   烫虣櫃fff        !    ,    0 0  很!糏雽Qai{鎦喔&$,篂[m選顁q蒨 嘐焸纃 郔閕═SDz⿱&[馭{F鸶|.濉幡痕4峕
z
H~IR[僝~彁[}^_厤G亹汫媼檸噿H爼ftx#1,彧D◣痪糪劔圛杺T竸膱翍伨洭v蛊粨陕=蒋ぶ捶诃>ǐ)峨憋便蜍w箦鲷図`靬鹾*糅w綵)鑟a=!&滜班Dg鳞(g ;  07070100078f74000081a40000000000000002000000013ac038a20000014f000000200000000000000000000000000000002000000003reloc/majordomo/images/list.gif   GIF89a0 0   烫虣櫃fff         !    ,    0 0  很0蔍8胪;禠 V篓圕
HP殺g哔X浻l憩暿孂*;＠4 5湐髢Z晲嘡0Y50NTh睔;&躪洝浆瑼_Er[yvv坽}寔C僡mgi塽瀥!烞-劍槪e渽x煚Rご慯摤暪dX钞'櫮Joq钳斗7脄の-`/迸M萁篨虧凳<o鐔,&围]+瘊隗蟣窨	TPA $ㄏ?欜9*WkcFj>b@菠蓳(Sn\梢B ; 07070100078f75000081a40000000000000002000000013ac038a200000186000000200000000000000000000000000000002300000003reloc/majordomo/images/members.gif    GIF89a0 0      fff烫!    ,    0 0  ⻊彥隧&X
厧躲OG~J:"ㄘ芫涄-`愓坶8A醡5榈宐啽U(姖旿秺nRfF6#8_砪_踂TfJ力7@q坵 g(鰓@s羧w枛鴓t贅y'篱偃&h皯$宸:[v儤踄囀餣:瑳眤覉4琫滒!都鸆槣J扲e工骰M躪M編-{巆))㖞~J蚙_m 進u&)骔僪x,0麌/犅hN`瀀馺<朻LLn|t罧婽聶e%=螙塣嬜瓚'Y<喪張⑵- 萒Po:昮U4>燜佃幈d藲[  ;  07070100078f76000081a40000000000000002000000013ac038a200000102000000200000000000000000000000000000002000000003reloc/majordomo/images/mesg.gif   GIF89a0 0   烫虣櫃fff       !    ,    0 0  很0蔍8胪`(巇i瀐l刖p,薒燘B梦;a8, 箙-E,扦缕臊z "醂@陿汀W"隈磡>嫢%JKT?G
偹鱻>亗儁
~xAWW@剫V|X坃悂U厴憲A"7{檽摉獛8暆按
X嫨挤偔钉攄λ腿~矣哉肿刈僳茌捱噌忏溴	 ;  07070100078f77000081a40000000000000002000000013ac038a2000001cc000000200000000000000000000000000000002000000003reloc/majordomo/images/misc.gif   GIF89a0 0   櫃櫶烫   !    ,    0 0  ⻊	甲岒蛬T睼c陖耯箿c#槎+倂窝莞h%A 9洂舯@瀂
罧9=榍Z鈋/L瀨荾7&嬎[篡g制礸陞*U{ag&2鵂非%' XXSgGG(貴╱虏Y雎s)驋y赧9%33历:`
{  蓑z袺;;埴`{汸睖塥0 m潦郜 D-1离,卷,L:-蜰.l-峠觐n6<,唀#棌簝盞妗聢
5A瀴吼c灞hZi5r諭#+v躻蔅儇TⅰH幬B戞焯	1=c滗Y4MO倈*麻枽Nw蕠R,t怓吤顷濶^杰
uiY'QZ'3q昃w滼d硚祸羷遯簸唘p(EJ编槓n琷夊;)kV咘!葤1  ;07070100078f78000081a40000000000000002000000013ac038a20000014a000000200000000000000000000000000000001f00000003reloc/majordomo/images/mod.gif    GIF89a0 0   烫虣櫃fff         !    ,    0 0  很0J8:_栲"勌7溊9怐K #﹟睸躱,5c匼徸S~1誸$觠礟Q橵檂8靹蒑4rA膋熏lh{镂r.:y{噲墛媽彁搼s旹棛=洔$棙!。、 崌r !畧蔼 l骇腑醇槰钠排睘俏
衔亿偻戎挗珨劁1阚遢臻 腈竹蜢醲戻m毨Y v㈢頍&嗭.tw/aAt`/W!Κ'rd=摐  ;  07070100078f79000081a40000000000000002000000013ac038a20000014a000000200000000000000000000000000000002000000003reloc/majordomo/images/subs.gif   GIF89a0 0   櫃檉ff篍   忙喬烫!    ,    0 0  很0蔍8隴`(\鉸d⿶┲ 仉./M"[幦銷h饱t@Fog粳蓽0;(/膽8蜠眨 
&梗k晴{zL}s3lm儎a匟S:e墂$bF梈慭搤朑悗殻 -姇l琘)īb宑[+u燾噣2Ezt胇I*颂繂縩w蓩d=冎{稁G娹鈼P:炴q戢靟C翊邎賆7{嚸=d
攣`搯	q-斻蠺DU8<ΓGJ劶H菠蓳  ;  07070100027263000081e40000000000000002000000013ac038a200001087000000200000000000000000000000000000001a00000003reloc/majordomo/index.cgi #!/usr/local/bin/perl
# index.cgi
# Display all mailing lists and majordomo options

require './majordomo-lib.pl';
&header($text{'index_title'}, "", undef, 1, 1);
print "<hr>\n";
%access = &get_module_acl();

# Check for the majordomo config file
if (!-r $config{'majordomo_cf'}) {
	print "<p>",&text('index_econfig', "<tt>$config{'majordomo_cf'}</tt>",
			  "/config.cgi?$module_name"),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

# Check for the programs dir
if (!-d $config{'program_dir'}) {
	print "<p>",&text('index_eprograms', "<tt>$config{'program_dir'}</tt>",
			  "/config.cgi?$module_name"),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

# Check majordomo version
if (!-r "$config{'program_dir'}/majordomo_version.pl") {
	print "<p>$text{'index_eversion'}<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}
require "$config{'program_dir'}/majordomo_version.pl";
if ($majordomo_version < 1.94 || $majordomo_version >= 2) {
	print "<p>$text{'index_eversion'}<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

# Check $homedir in majordomo.cf
$conf = &get_config();
$homedir = &find_value("homedir", $conf);
if (!-d $homedir) {
	print "<p>",&text('index_ehomedir', "<tt>$homedir</tt>"),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

# Check $listdir in majordomo.cf
$listdir = &perl_var_replace(&find_value("listdir", $conf), $conf);
if (!-d $listdir) {
	print "<p>",&text('index_elistdir', "<tt>$listdir</tt>"),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

if ($config{'aliases_file'}) {
	# aliases file specified in config
	$aliases_files = [ $config{'aliases_file'} ];
	}
else {
	# Check if sendmail is setup
	%smconfig = &foreign_config("sendmail");
	if (!-r $smconfig{'sendmail_cf'}) {
		print "<p>",&text('index_esendmail',
				  "<tt>$smconfig{'sendmail_cf'}</tt>"),"<p>\n";
		print "<hr>\n";
		&footer("/", $text{'index'});
		exit;
		}

	# Check if sendmail is the right version for the sendmail module
	$sm_conf = &foreign_call("sendmail", "get_sendmailcf");
	if (!&foreign_call("sendmail", "check_sendmail_version", $sm_conf)) {
		print "<p>$text{'index_esendmailversion'}<p>\n";
		print "<hr>\n";
		&footer("/", $text{'index'});
		exit;
		}
	$aliases_files = &foreign_call("sendmail", "aliases_file", $sm_conf);
	}

# Check for the majordomo aliases
$email = &find_value("whoami", $conf); $email =~ s/\@.*$//g;
$owner = &find_value("whoami_owner", $conf); $owner =~ s/\@.*$//g;
@aliases = &foreign_call("sendmail", "list_aliases", $aliases_files);
foreach $a (@aliases) {
	if ($a->{'enabled'} && lc($a->{'name'}) eq lc($email)) {
		$majordomo_alias = 1;
		}
	if ($a->{'enabled'} && lc($a->{'name'}) eq lc($owner)) {
		$majordomo_owner = 1;
		}
	}

# Offer to setup aliases
if (!$majordomo_alias) {
	print "<p>$text{'index_setupdesc'}\n";
	print "<center><form action=alias_setup.cgi>\n";
	if (!$majordomo_owner) {
		print "<b>$text{'index_owner'}</b>\n";
		print "<input name=owner size=25>\n";
		print "<input type=hidden name=owner_a value='$owner'>\n";
		}
	print "<input type=hidden name=email_a value='$email'>\n";
	print "<input type=submit value=\"$text{'index_setup'}\">\n";
	print "</form></center>\n";
	print "<hr>\n";
	}

# Display active lists
@lists = &list_lists($conf);
@lists = sort { $a cmp $b } @lists if ($config{'sort_mode'});
map { $lcan{$_}++ } split(/\s+/, $access{'lists'});
foreach $l (grep { $lcan{$_} || $lcan{"*"} } @lists) {
	push(@links, "edit_list.cgi?name=$l");
	push(@titles, $l);
	push(@icons, "images/list.gif");
	}
if (@links) {
	&icons_table(\@links, \@titles, \@icons, 5);
	}
else {
	print "<b>$text{'index_none'}</b>.<p>\n";
	}
if ($access{'create'}) {
	print "<a href='create_form.cgi'>$text{'index_add'}</a>\n";
	if (@links) {
		print "&nbsp;&nbsp;\n";
		print "<a href='digest_form.cgi'>$text{'index_digest'}</a>\n";
		}
	print "<p>\n";
	}

if ($access{'global'}) {
	print "<hr>\n";
	print "<table> <tr>\n";
	print "<form action=edit_global.cgi>\n";
	print "<td><input type=submit value='$text{'index_global'}'></td>\n";
	print "<td>$text{'index_globaldesc'}</td> </tr> </form>\n";
	print "</table>\n";
	}

print "<hr>\n";
&footer("/", $text{'index'});

 07070100000176000041ed0000000000000001000000023ac03c0f00000000000000200000000000000000000000000000001500000003reloc/majordomo/lang  07070100000177000081a40000000000000002000000013ac038a20000263d000000200000000000000000000000000000001800000003reloc/majordomo/lang/en   index_title=Majordomo List Manager
index_econfig=The majordomo config file $1 does not exist. Maybe your <a href='$2'>module configuration</a> is incorrect, or majordomo is not installed.
index_eprograms=The majordomo directory $1 does not exist. Maybe your <a href='$2'>module configuration</a> is incorrect, or majordomo is not installed.
index_eversion=Your majordomo version is not supported by Webmin. Only versions 1.94 and above are supported.
index_ehomedir=The <tt>$homedir</tt> variable in your majordomo config file is set to $1, which does not exist.
index_elistdir=The <tt>$listdir</tt> variable in your majordomo config file is set to $1, which does not exist.
index_esendmail=The sendmail config file $1 does not exist. Check your <a href=/sendmail/>Sendmail module</a> configuration.
index_esendmailversion=Your sendmail config file does not appear to be for the latest sendmail version. Webmin only supports versions 8.8 and above.
index_setupdesc=Majordomo has been installed on your system, but not setup properly in the sendmail aliases file.
index_owner=Owner email address
index_setup=Setup Aliases
index_none=You have no mailing lists defined
index_add=Add a new mailing list
index_digest=Add a new digest list
index_global=Edit Majordomo Options
index_globaldesc=Edit global Majordomo options that apply to all mailing lists
index_return=mailing lists

global_title=Global Options
global_ecannot=You are not allowed to edit global options
global_header=Global Majordomo options
global_whereami=Mail server hostname (<tt>$whereami</tt>)
global_whoami=Majordomo master address
global_owner=Majordomo owner's address
global_sendmail=Sendmail command path
global_err=Failed to save global options
global_ewhereami=Missing or invalid mail server hostname
global_ewhoami=Missing or invalid Majordomo address
global_eowner=Missing or invalid owner's address
global_esendmail=Sendmail command '$1' does not exist

create_ecannot=You are not allowed to create new lists
create_title=Create Mailing List
create_header=New list details
create_name=List name
create_owner=List maintainer's address
create_password=Maintenance password
create_desc=Description
create_info=Introductory message
create_footer=Forwarded mail footer
create_moderate=Moderated list?
create_moderator=Moderator's address
create_same=Same as maintainer
create_err=Failed to create mailing list
create_ename=Invalid or missing list name
create_eexists=A mailing list called '$1' already exists
create_ealias=A mail alias for '$1' already exists
create_eowner=Invalid or missing owner's email address
create_epassword=Invalid or missing administration password
create_emoderator=Invalid or missing moderator's email address

cdigest_ecannot=You are not allowed to create new digest lists
cdigest_title=Create Digest List
cdigest_header=New digest list details
cdigest_name=List name
cdigest_list=Make disgest of list
cdigest_owner=List maintainer's address
cdigest_password=Maintenance password
cdigest_desc=Description
cdigest_info=Introductory message
cdigest_footer=Digest mail footer
cdigest_when=Send digest when
cdigest_old=Oldest message is $1 days old
cdigest_lines=Messages total $1 lines
cdigest_err=Failed to create digest list
cdigest_edays=Invalid or missing number of days
cdigest_elines=Invalid or missing number of lines

edit_title=Edit Mailing List
edit_ecannot=You are not allowed to edit this mailing list
edit_delete=Delete List
edit_deletemsg=Delete this list, including all associated files and mail aliases
edit_return=mailing list
edit_for=For list $1

delete_ecannot=You are not allowed to delete this mailing list
delete_edigest=This list cannot be deleted as it appears to have an associated digest list
delete_title=Delete List
delete_rusure=Are you sure you want to delete the mailing list $1? The following files will be deleted :
delete_aliases=The following mail aliases will also be deleted :
delete_ok=Delete List

members_title=List Members
members_desc=Use the text box below to edit the list of email addresses that will receive mail sent to this list.
members_rodesc=The text box below lists all email addresses that will receive mail sent to this list.
members_sub=Subscribe address to list
members_add=Add
members_unsub=Remove address from list
members_rem=Remove
members_sync=Synchronise Unix users with list?
members_dom=Domain name to append to usernames
members_eedit=You are not allowed to edit the members of this list
members_esub=You must choose a maintenance password before subscribing addresses to this list
members_esubaddr=The address to subscribe must have a full domain name, like <tt>foo@bar.com</tt>
members_eunsub=You must choose a maintenance password before unsubscribing addresses from this list
members_eunsubaddr=The address to unsubscribe must have a full domain name, like <tt>foo@bar.com</tt>

info_title=Messages and Description
info_header=Messages and description
info_desc=List description, to be included in the responsed to the <tt>lists</tt> command
info_info=Informative message, to be returned in response to the command <tt>info $1</tt>
info_intro=Introductory message, to be sent when someone subscribes to the list
info_same=Same as informative message
info_below=As entered below..

subs_title=Subscription and Moderation
subs_header=Subscription and moderation options
subs_sub=Subscribe policy
subs_sopen=Anyone can subscribe themself
subs_sauto=Anyone can subscribe anyone
subs_closed=Maintainer approval required
subs_unsub=Unsubscribe policy
subs_uopen=Anyone can unsubscribe themself
subs_uauto=Anyone can unsubscribe anyone
subs_confirm=Require subscribe confirmation?
subs_welcome=Send introductory message?
subs_strip=Add only raw address to list?
subs_announcements=Notify maintainer of subscribes and unsubscribes?
subs_administrivia=Forward subscribe/unsubscribe requests to maintainer?
subs_passwd=Maintenance password
subs_moderate=Moderated list?
subs_moderator=Moderator's address?
subs_maint=Maintainer
subs_mpasswd=Moderation password
subs_owner=Owner's email address
subs_approval=Approval email address
subs_eowner=Missing owner's email address
subs_eapproval=Missing approval email address
subs_emoderator=Missing or invalid moderator address
subs_epasswd=Missing or invalid password

mesg_title=Email Options
mesg_header=Outgoing email options
mesg_reply=Reply-To: address in resent email
mesg_none=None
mesg_sender=Sender: address in email
mesg_host=Hostname for resent email
mesg_subject=Subject: prefix for resent email
mesg_precedence=Resent email priority
mesg_first=First class
mesg_special=Special delivery
mesg_list=List
mesg_bulk=Bulk
mesg_junk=Junk
mesg_purge=Remove Recieved: headers from resent email
mesg_maxlength=Maximum allowable message size
mesg_ereply=Missing or invalid Reply-To: address
mesg_esender=Missing or invalid Sender: address
mesg_esender2=Sender: address must not include a hostname
mesg_ehost=Missing or invalid hostname
mesg_emaxlength=Missing or invalid maximum message size

access_title=Access Control
access_header=Access control for majordomo commands
access_open=Anyone
access_list=List members
access_closed=Nobody
access_get=Access to <tt>get</tt> command
access_index=Access to <tt>index</tt> command
access_info=Access to <tt>info</tt> command
access_intro=Access to <tt>intro</tt> command
access_which=Access to <tt>which</tt> command
access_who=Access to <tt>who</tt> command
access_adv=Include this list in response to <tt>lists</tt> command for..
access_adv0=Everyone
access_adv1=Addresses matching regexps..
access_adv2=Addresses not matching regexps..
access_res=Who can post to the list?
access_res0=Anyone
access_res1=List members
access_res2=Addresses in file
access_tbody=Taboo body regexps
access_theader=Taboo header regexps
access_taboo=Note: all taboo and address regexps must begin and end with <tt>/</tt> , like <tt>/foobar.com/</tt> or <tt>/obscene/</tt>.

head_title=Headers and Footers
head_header=Resent email headers and footers
head_fronter=Resent email header
head_footer=Resent email footer
head_headers=Extra SMTP headers for resent email

misc_title=Miscellaneous Options
misc_header=Miscellaneous list options
misc_munge=Use domain only when comparing addresses?
misc_debug=Debug mode?
misc_info=Include last modified date in informative message?
misc_intro=Include last modified date in introductory message?

digest_title=Digest Options
digest_header=Digest generation options
digest_name=Digest title
digest_maxdays=Oldest message age before sending
digest_days=days
digest_lines=lines
digest_maxlines=Max digest size before sending
digest_volume=Current volume number
digest_issue=Current issue number
digest_unlimited=Unlimited
digest_edays=Missing or invalid number of days
digest_elines=Missing or invalid number of lines
digest_evolume=Missing or invalid volume number
digest_eissue=Missing or invalid issue number

log_global=Changed global options
log_create_list=Created mailing list $1
log_create_digest=Created digest list $1
log_delete_list=Deleted mailing list $1
log_delete_digest=Deleted digest list $1
log_subscribe=Subscribed $2 to list $1
log_unsubscribe=Unsubscribed $2 from list $1
log_members=Updated members of list $1
log_auto=Updated synchronisation for list $1
log_info=Updated messages and description for list $1
log_subs=Updated subscription and moderation for list $1
log_mesg=Updated email options for list $1
log_access=Updated access control for list $1
log_head=Updated headers and footers for list $1
log_misc=Updated miscellaneous Options for list $1
log_digest=Updated digest options for list $1

acl_lists=Mailing lists this user can manage
acl_lall=All lists
acl_lsel=Selected..
acl_global=Can edit global options?
acl_create=Can create new mailing lists?
acl_edit=Can edit list membership?

   07070100000178000081a40000000000000002000000013ac038a200002bcd000000200000000000000000000000000000001800000003reloc/majordomo/lang/es   index_title=Gestor de Listas Majordomo
index_econfig=El archivo de configuraci髇 de majordomo $1 no existe. Quiz醩 tu <a href='$2'>configuraci髇 del m骴ulo</a> sea incorrecta o majordomo no est instalado.
index_eprograms=El directorio de majordomo $1 no existe. Quiz醩 tu <a href='$2'>configuraci髇 del m骴ulo</a> sea incorrecta o majordomo no est instalado.
index_eversion=Tu versi髇 de majordomo no est soportada por Webmin. S髄o las versiones 1.94 y superiores est醤 soportadas.
index_ehomedir=La variable <tt>$homedir</tt> de tu archivo de configuraci髇 de majordomo est configurada con el valor $1, el cual no existe.
index_elistdir=La variable <tt>$listdir</tt> de tu archivo de configuraci髇 de majordomo est configurada con el valor $1, el cual no existe.
index_esendmail=El archivo de configuraci髇 $1 no existe. Revisa tu <a href=/sendmail/>m骴ulo de configuraci髇 de Sendmail</a>.
index_esendmailversion=Tu archivo de configuraci髇 de sendmail no parece ser el de la 鷏tima versi髇 de sendmail. Webmin s髄o soporta versiones 8.8 y superiores.
index_setupdesc=Majordomo ha sido instalado en tu sistema, pero no est configurado adecu醖amente en los archivos de alias de sendmail.
index_owner=Direcci髇 de correo del propietario
index_setup=Configurar Aliases
index_none=No tienes definidas listas de correo
index_add=A馻dir una nueva lista de correo
index_digest=A馻dir una nueva lista de resumen
index_global=Editar Opciones de Majordomo
index_globaldesc=Editar opciones globales de Majordomo que se aplican a todas las listas de correo
index_return=listas de correo

global_title=Opciones Globales
global_ecannot=No est醩 autorizado a editar opciones globales
global_header=Opciones Globales de Majordomo
global_whereami=Nombre de m醧uina del servidor de Correo (<tt>$whereami</tt>)
global_whoami=Direcci髇 maestra de Majordomo
global_owner=Direcci髇 de propietario de Majordomo
global_sendmail=Trayectoria del comando Sendmail
global_err=No pude salvar opciones globales
global_ewhereami=Nombre de m醧uina de servidor de correo sin poner o inv醠ido
global_ewhoami=Direcci髇 de Majordomo sin poner o inv醠ida
global_eowner=Direcci髇 del propietario sin poner o inv醠ida
global_esendmail=El comando de Sendmail '$1' no existe

create_ecannot=No est醩 autorizado a crear nuevas listas
create_title=Crear Lista de Correo
create_header=Detalles de la nueva lista
create_name=Nombre de la lista
create_owner=Direcci髇 de mantenedores de la lista
create_password=Clave de acceso de Mantenimiento
create_desc=Descripci髇
create_info=Mensaje introductorio
create_footer=Pie de correo remitido
create_moderate=縇ista moderada?
create_moderator=Direcci髇 del moderador
create_same=La misma que la del mantenedor
create_err=No pude crear la lista de correo
create_ename=Nombre de lista inv醠ido o sin poner
create_eexists=Ya existe una lista de correo llamada '$1'
create_ealias=Ya existe un alias de correo para '$1'
create_eowner=Direcci髇 de correo de propietario sin poner o inv醠ida
create_epassword=Clave de acceso de administraci髇 inv醠ida o sin poner
create_emoderator=Direcci髇 de correo del moderador inv醠ida o sin poner

digest_ecannot=No est醩 autorizado a crear nuevas listas resumen
digest_title=Crear Listas Resumen
digest_header=Detalles de nueva lista resumen
digest_name=Nombre de lista
digest_list=Hacer resumen de lista
digest_owner=Lista de direcci髇 de mantenedor
digest_password=Clave de acceso de mantenimiento
digest_desc=Descripci髇
digest_info=Mensaje introductorio
digest_footer=Pie de correo resumen
digest_when=Enviar resumen cuando
digest_old=El mensaje m醩 viejo tiene $1 d韆s
digest_lines=Total $1 l韓eas en mensajes
digest_err=No pude crear lista resumen
digest_edays=N鷐ero de d韆s inv醠ido o sin poner
digest_elines=N鷐ero de l韓eas inv醠ido o sin poner

edit_title=Editar Lista de Correo
edit_ecannot=No est醩 autorizado a editar esta lista de correo
edit_delete=Borrar Lista
edit_deletemsg=Borrar esta lista, incluyendo todos sus archivos asociados y aliases de correo
edit_return=lista de correo
edit_for=Para la lista $1

delete_ecannot=No est醩 autorizado a borrar esta lista de correo
delete_edigest=Esta lista no puede ser borrada debido a que parece tener una lista resumen asociada
delete_title=Borrar Lista
delete_rusure=縀st醩 seguro de querer borrar la lista de correo $1?. Los siguientes archivos ser醤 borrados:
delete_aliases=Los siguientes aliases de correo ser醤 tambi閚 borrados:
delete_ok=Borrar Lista

members_title=Miembros de Lista
members_desc=Utiliza la caja de texto inferior para editar la lista de direcciones de correo que recibir醤 el correo enviado a esta lista.
members_rodesc=La caja de texto inferior lista todas las direcciones de correo que recibir醤 el correo enviado a esta lista.
members_sub=Subscribir direcci髇 a lista
members_add=A馻dir
members_unsub=Quitar direcci髇 de la lista
members_rem=Quitar
members_sync=縎incronizo usuarios Unix con la lista?
members_dom=Nombre de dominio a a馻dir a nombres de usuario
members_eedit=No est醩 autorizado a editar los miembros de esta lista
members_esub=Debes de seleccionar una clave de acceso de mantenimiento antes de suscribir direcciones a esta lista
members_esubaddr=La direcci髇 a suscribir debe de tener nombre completo de dominio, como <tt>foo@bar.com</tt>
members_eunsub=Debes de seleccionar una clave de acceso de mantenimiento antes de quitar suscripciones de direcciones de esta lista
members_eunsubaddr=La direcci髇 a dar de baja debe de tener un nombre completo de dominio, como <tt>foo@bar.com</tt>

info_title=Mensajes y Descripci髇
info_header=Mensajes y descripci髇
info_desc=Descripci髇 de lista, a ser inclu韉a en el comando de respuesta a las <tt>listas</tt>
info_info=Mensaje informativo, a devolver en respuesta al comando <tt>info $1</tt>
info_intro=Mensaje introductorio, a enviar cuando alguien se suscriba a la lista
info_same=El mismo que el mensaje informativo
info_below=Seg鷑 se digite debajo...

subs_title=Suscripci髇 y Moderaci髇
subs_header=Opciones de suscripci髇 y moderaci髇
subs_sub=Pol韙ica de suscripci髇
subs_sopen=Cualquiera se puede suscribir
subs_sauto=Cualquiera puede suscribir a cualquiera
subs_closed=Se requiere aprobaci髇 del mantenedor
subs_unsub=Pol韙ica de bajas
subs_uopen=Cualquiera puede dar de baja su suscripci髇
subs_uauto=Cualquiera puede dar de baja la suscripci髇 a cualquiera
subs_confirm=縍equiero confirmaci髇 de suscripci髇?
subs_welcome=縀nv韔 mensaje introductorio?
subs_strip=緼馻do s髄o direcci髇 tal cual a la lista?
subs_announcements=縉otifico al mantenedor las suscripciones y las bajas?
subs_administrivia=縍emito requerimientos de suscripci髇/baja al mantenedor?
subs_passwd=Clave de acceso de mantenimiento
subs_moderate=縇ista moderada?
subs_moderator=緿irecci髇 del moderador?
subs_maint=Mantenedor
subs_mpasswd=Clave de acceso de moderaci髇
subs_owner=Direcci髇 de correo del propietario
subs_approval=Direcci髇 de correo de aprobaci髇
subs_eowner=Direcci髇 de correo del propietario sin poner
subs_eapproval=Direcci髇 de correo de aprobaci髇 sin poner
subs_emoderator=Direcci髇 del moderador inv醠ida o sin poner
subs_epasswd=Clave de acceso inv醠ida o sin poner

mesg_title=Opciones de Correo
mesg_header=Opciones de correo saliente
mesg_reply=Responer-A: direcci髇 en correo reenviado
mesg_none=Ninguna
mesg_sender=Remitente: direcci髇 en correo
mesg_host=Nombre de m醧uina para correo reenviado
mesg_subject=Asunto: prefijo para correo reenviado
mesg_precedence=Prioridad de correo reenviado
mesg_first=Primera clase
mesg_special=Entrega especial
mesg_list=Lista
mesg_bulk=Enorme
mesg_junk=Restos
mesg_purge=Quitar recibidas: cabeceras de correo reenviado
mesg_maxlength=Medida m醲ima permitida de mensaje
mesg_ereply=Responder-A inv醠ido o sin poner: direcci髇
mesg_esender=Remitente inv醠ido o sin poner: direcci髇
mesg_esender2=Remitente: la direcci髇 no debe de incluir un nombre de m醧uina
mesg_ehost=Nombre de m醧uina inv醠ido o sin poner
mesg_emaxlength=Medida m醲ima de mensaje inv醠ida o sin poner

access_title=Control de Acceso
access_header=Control de acceso para los comandos de majordomo
access_open=Cualquiera
access_list=Miembros de la lista
access_closed=Ninguno
access_get=Acceso al comando <tt>get</tt>
access_index=Acceso al comando <tt>index</tt>
access_info=Acceso al comando <tt>info</tt>
access_intro=Acceso al comando <tt>intro</tt>
access_which=Acceso al comando <tt>which</tt>
access_who=Acceso al comando <tt>who</tt>
access_adv=Incluir esta lista en respuesta al comando <tt>lists</tt> para...
access_adv0=Cada uno
access_adv1=Las direcciones que coincidan con expresi髇...
access_adv2=Las direcciones que no coincidan con expresi髇...
access_res=縌ui閚 puede enviar correo a la lista?
access_res0=Cualquiera
access_res1=Miembros de la lista
access_res2=Direcciones en archivo
access_tbody=Expresiones en cuerpo que son tab
access_theader=Expresiones en cabecera que son tab
access_taboo=Nota: todas las expresiones de direcciones y de tab deben de comenzar y terminar con <tt>/</tt>, como <tt>/foobar.com/</tt> o <tt>/obsceno/</tt>.

head_title=Cabeceras y Pies
head_header=Cabeceras y pies de correo reenviado
head_fronter=Cabecera de correo reenviado
head_footer=Pie de correo reenviado
head_headers=Cabeceras extra de SMTP para correo reenviado

misc_title=Opciones Varias
misc_header=Lista de opciones varias
misc_munge=縐so s髄o el dominio cuando comparo las direcciones?
misc_debug=縈odo depuraci髇?
misc_info=縄ncluyo la fecha de 鷏tima modificaci髇 en mensaje informativo?
misc_intro=縄ncluyo la fecha de 鷏tima modificaci髇 en mensaje introductorio?

digest_title=Opciones de Resumen
digest_header=Opciones de generaci髇 de resumen
digest_name=T韙ulo de resumen
digest_maxdays=Edad de mensaje m醩 viejo antes de enviar
digest_days=d韆s
digest_lines=l韓eas
digest_maxlines=M醲 medida de resumen antes de enviar
digest_volume=N鷐ero de volumen en curso
digest_issue=N鷐ero de asunto en curso
digest_unlimited=Ilimitado
digest_edays=N鷐ero de d韆s inv醠ido o sin poner
digest_elines=N鷐ero de l韓eas inv醠ido o sin poner
digest_evolume=N鷐ero de volumen inv醠ido o sin poner
digest_eissue=N鷐ero de asunto inv醠ido o sin poner

log_global=Cambiadas opciones globales
log_create_list=Creada lista de correo $1
log_create_digest=Creada lista resumen $1
log_delete_list=Borrada lista de correo $1
log_delete_digest=Borrada lista resumen $1
log_subscribe=Suscrito $2 a lista $1
log_unsubscribe=Dado de baja $2 de la lista $1
log_members=Actualizados miembros de lista $1
log_auto=Actualizada sincronizaci髇 para lista $1
log_info=Actualizados mensajes y descripci髇 para lista $1
log_subs=Actualizada suscripci髇 y moderaci髇 para lista $1
log_mesg=Actualizadas opciones de correo para lista $1
log_access=Actualizado control de acceso para lista $1
log_head=Actualizadas cabeceras y pies para lista $1
log_misc=Actualizadas opciones varias para lista $1
log_digest=Actualizadas opciones de resumen para lista $1

acl_lists=Listas de correo que este usuario puede manejar
acl_lall=Todas las listas
acl_lsel=Las seleccionadas...
acl_global=縋uede editar opciones globales?
acl_create=縋uede crear nuevas listas de correo?
acl_edit=縋uede editar pertenecia a listas?

   0707010000017a000081a40000000000000002000000013ac038a200002a26000000200000000000000000000000000000001800000003reloc/majordomo/lang/sv   index_title=Majordomos listhanterare
index_econfig=Konfigurationsfilen $1 f鰎 majordomo finns inte. Dina <a href='$2'>modulinst鋖lningar</a> kanske 鋜 felaktiga, eller ocks har majordomo inte installerats.
index_eprograms=Majordomo-katalogen $1 finns inte. Dina <a href='$2'>modulinst鋖lningar</a> kanske 鋜 felaktiga, eller ocks har majordomo inte installerats.
index_eversion=Din version av majordomo st鰀s inte av Webmin. Endast versionerna 1.94 och h鰃re st鰀s.
index_ehomedir=Variabeln <tt>$homedir</tt> i din konfigurationsfil f鰎 majordomo 鋜 satt till $1, som inte finns.
index_elistdir=Variabeln <tt>$listdir</tt> i din konfigurationsfil f鰎 majordomo 鋜 satt till $1, som inte finns.
index_esendmail=Konfigurationsfilen $1 f鰎 sendmail finns inte. Kontrollera inst鋖lningarna f鰎 din <a href=/sendmail/>Sendmail-modul</a>.
index_esendmailversion=Din konfigurationsfil f鰎 sendmail verkar inte h鰎a till den senaste sendmail-versionen. Webmin st鰀jer endast version 8.8 och upp錿.
index_setupdesc=Majordomo 鋜 installerat p systemet, men har inte satts upp ordentligt i sendmails aliasfil.
index_owner=E-postadress till 鋑aren
index_setup=S鋞t upp alias
index_none=Inga e-postlistor har definierats
index_add=L鋑g till en e-postlista
index_digest=L鋑g till en sammanfattande e-postlista
index_global=膎dra inst鋖lningar f鰎 Majordomo
index_globaldesc=膎dra globala Majordomo-inst鋖lningar som g鋖ler f鰎 alla malilinglistor
index_return=e-postlistor
acl_lists=E-postlistor som denna anv鋘dare f錼 r錮a 鰒er
acl_global=Kunna 鋘dra globala inst鋖lningar?
acl_create=Kunna skapa nya e-postlistor?
acl_edit=Kunna redigera listmedlemskap?
yes=Ja
no=Nej

global_title=Globala inst鋖lningar
global_ecannot=Du f錼 inte 鋘dra globala inst鋖lningar
global_header=Globala inst鋖lningar f鰎 Majordomo
global_whereami=Namn p e-postserver (<tt>$whereami</tt>)
global_whoami=Adress till Majordomo-master
global_owner=Adress till Majordomo-鋑aren
global_sendmail=S鰇v鋑 till sendmail-kommando
global_err=Det gick inte att spara globala inst鋖lningar
global_ewhereami=Namn p e-postservern saknas eller 鋜 ogiltigt
global_ewhoami=Majordomo-adress saknas eller 鋜 ogiltig
global_eowner=膅aradress saknas eller 鋜 ogiltig
global_esendmail=Sendmail-kommandot '$1' finns inte

create_ecannot=Du f錼 inte skapa nya listor
create_title=Skapa e-postlista
create_header=Uppgifter om ny lista
create_name=Namn p listan
create_owner=Adress till listans administrat鰎
create_password=L鰏enord f鰎 administration
create_desc=Beskrivning
create_info=Introduktionsmeddelande
create_footer=Sidfot f鰎 efters鋘t e-postmeddelande
create_moderate=Modererad lista?
create_moderator=Moderatorns adress
create_same=Samma som administrat鰎en
create_err=Det gick inte att skapa e-postlistan
create_ename=Listnamn saknas eller 鋜 ogiltigt
create_eexists=Det finns redan en e-postlista som heter '$1'
create_ealias=Det finns redan ett mailalias f鰎 '$1'
create_eowner=膅aradress saknas eller 鋜 ogiltig
create_epassword=Administrationsl鰏enord saknas eller 鋜 ogiltigt
create_emoderator=Moderatorns adress saknas eller 鋜 ogiltig

digest_ecannot=Du f錼 inte skapa en ny sammanfattande e-postlista
digest_title=Skapa sammanfattande e-postlista
digest_header=Uppgifter om ny sammanfattande e-postlista
digest_name=Namn p listan
digest_list=Sammanfatta lista
digest_owner=Adress till administrat鰎
digest_password=L鰏enord f鰎 administration
digest_desc=Beskrivning
digest_info=Introduktionsmeddelande
digest_footer=Sidfot f鰎 sammanfattningsbrev
digest_when=Skicka sammanfattning n鋜
digest_old=Det 鋖dsta meddelandet 鋜 $1 dagar gammalt
digest_lines=Meddelandena totalt utg鰎 $1 rader
digest_err=Det gick inte att skapa sammanfattande e-postlista
digest_edays=Antalet dagar saknas eller 鋜 ogiltigt
digest_elines=Antalet rader saknas eller 鋜 ogiltigt

edit_title=膎dra e-postlista
edit_ecannot=Du f錼 inte 鋘dra denna e-postlista
edit_delete=Ta bort lista
edit_deletemsg=Tar bort denna lista inklusive tillh鰎ande filer och mailalias
edit_return=e-postlista
edit_for=F鰎 lista $1

delete_ecannot=Du f錼 inte ta bort denna e-postlista
delete_edigest=Det g錼 inte att ta bort denna lista eftersom den verkar ha en sammanfattande e-postlista kopplad till sig
delete_title=Ta bort listan
delete_rusure=Vill du verkligen ta bort e-postlistan $1? F鰈jande filer kommer att tas bort:
delete_aliases=F鰈jande mailalias kommer ocks att tas bort:
delete_ok=Ta bort listan

members_title=Listmedlemmar
members_desc=Anv鋘d textrutan nedan f鰎 att 鋘dra i listan 鰒er de e-postadresser som ska f e-post som skickas till denna lista.
members_rodesc=I textrutan nedan visas alla e-postadresser som f錼 e-post skickad till denna lista.
members_sub=L鋑g till en adress till listan
members_add=L鋑g till
members_unsub=Ta bort en adress fr錸 listan
members_rem=Ta bort
members_sync=Synkronisera Unix-anv鋘dare med listan?
members_dom=Dom鋘namn som ska l鋑gas till anv鋘darnamnen
members_eedit=Du f錼 inte 鋘dra n錱ra uppgifter om medlemmarna p listan
members_esub=Du m錽te ange ett administrationsl鰏enord innan du l鋑ger till adresser till listan
members_esubaddr=Adressen som ska l鋑gas till m錽te ha ett fullst鋘digt dom鋘namn, t ex <tt>foo@bar.com</tt>
members_eunsub=Du m錽te ange ett administrat鰎sl鰏enord innan du tar bort adresser fr錸 listan
members_eunsubaddr=Adressen som ska tas bort m錽te ha ett fullst鋘digt dom鋘namn, t ex <tt>foo@bar.com</tt>

info_title=Meddelanden och beskrivning
info_header=Meddelanden och beskrivning
info_desc=Listbeskrivning som ska bifogas i svaret till kommandot <tt>lists</tt>
info_info=Informativt meddelande som ska skickas som svar p kommandot <tt>info $1</tt>
info_intro=Introduktionsmeddelande som skickas n鋜 n錱on l鋑gs till listan
info_same=Samma som det informativa meddelandet
info_below=Angivet nedan

subs_title=Till鋑g och moderering
subs_header=Inst鋖lningar f鰎 till鋑g och moderering
subs_sub=Till鋑gspolicy
subs_sopen=Vem som helst kan l鋑ga till sig sj鋖v
subs_sauto=Vem som helst kan l鋑ga till vem som helst
subs_closed=Administrat鰎ens godk鋘nande kr鋠s
subs_unsub=Borttagningspolicy
subs_uopen=Vem som helst kan ta bort sig sj鋖v
subs_uauto=Vem som helst kan ta bort vem som helst
subs_confirm=Kr鋠a bekr鋐telse f鰎 till鋑g?
subs_welcome=Skicka introduktionsmeddelande?
subs_strip=Endast l鋑ga till adressen till listan?
subs_announcements=Meddela administrat鰎en om till鋑g och borttagningar?
subs_administrivia=Skicka vidare beg鋜an om till鋑g/borttagning till administrat鰎en?
subs_passwd=Administrationsl鰏enord
subs_moderate=Modererad lista?
subs_moderator=Moderatorns adress?
subs_maint=Administrat鰎en
subs_mpasswd=Moderationsl鰏enord
subs_owner=膅arens e-postadress
subs_approval=E-postadress f鰎 godk鋘nande
subs_eowner=膅arens e-postadress saknas
subs_eapproval=E-postadress f鰎 godk鋘nande saknas
subs_emoderator=Moderatorns adress saknas eller 鋜 ogiltig
subs_epasswd=L鰏enord saknas eller 鋜 ogiltigt

mesg_title=E-postinst鋖lningar
mesg_header=Inst鋖lningar f鰎 utg錯nde e-post
mesg_reply=Reply-To:-adress i vidareskickad e-post
mesg_none=Ingen
mesg_sender=Sender:-adress i e-postmeddelandet
mesg_host=Datornamn f鰎 錿ers鋘d e-post
mesg_subject=Subject:-prefix f鰎 錿ers鋘d e-post
mesg_precedence=Prioritet f鰎 錿ers鋘d e-post
mesg_first=F鰎sta klass
mesg_special=Specialleverans
mesg_list=Lista
mesg_bulk=Bulk
mesg_junk=Skr鋚
mesg_purge=Ta bort Recieved:-huvud fr錸 錿ers鋘d e-post
mesg_maxlength=Maximal storlek f鰎 meddelanden
mesg_ereply=Reply-To:-adress saknas eller 鋜 ogiltig
mesg_esender=Sender:-adress saknas eller 鋜 ogiltig
mesg_esender2=Sender:-adressen f錼 inte inneh錶la ett datornamn
mesg_ehost=Datornamn saknas eller 鋜 ogiltigt
mesg_emaxlength=Maximal meddelandestorlek saknas eller 鋜 ogiltig

access_title=Kontroll
access_header=Kontroll av tillg錸g till majordomo-kommandon
access_open=Vem som helst
access_list=Listmedlemmar
access_closed=Ingen
access_get=Tillg錸g till kommandot <tt>get</tt>
access_index=Tillg錸g till kommandot <tt>index</tt>
access_info=Tillg錸g till kommandot <tt>info</tt>
access_intro=Tillg錸g till kommandot <tt>intro</tt>
access_which=Tillg錸g till kommandot <tt>which</tt>
access_who=Tillg錸g till kommandot <tt>who</tt>
access_adv=Bifoga denna lista i svaret p kommandot <tt>lists</tt> f鰎 ...
access_adv0=Alla
access_adv1=Adresser som matchar regulj鋜t uttryck
access_adv2=Adresser som inte matchar regulj鋜t uttryck
access_res=Vem kan posta p listan?
access_res0=Vem som helst
access_res1=Listmedlemmar
access_res2=Adresser i filen
access_tbody=Regulj鋜a uttryck f鰎 tabubelagda saker i meddelandekroppen
access_theader=Regulj鋜a uttryck f鰎 tabubelagda saker i meddelandehuvudet
access_taboo=Obs: alla tabu- och adressuttryck (regulj鋜a) m錽te b鰎ja och sluta med <tt>/</tt>, t ex <tt>/foobar.com/</tt> eller <tt>/obscene/</tt>.

head_title=Huvuden och sidf鰐ter
head_header=E-posthuvuden och -f鰐ter f鰎 錿ers鋘d e-post
head_fronter=Huvud f鰎 錿ers鋘d e-post
head_footer=Sidfot f鰎 錿ers鋘d e-post
head_headers=Extra SMTP-huvuden f鰎 錿ers鋘d e-post

misc_title=Blandade inst鋖lningar
misc_header=Blandade inst鋖lningar f鰎 listor
misc_munge=Endast anv鋘da dom鋘en n鋜 adresser j鋗f鰎s?
misc_debug=Debugmod?
misc_info=S鋞ta in "鋘drad senast"-datum i det informativa meddelandet?
misc_intro=S鋞ta in "鋘drad senast"-datum i introduktionsmeddelandet?

digest_title=Inst鋖lningar f鰎 sammanfattningar
digest_header=Inst鋖lningar f鰎 generering av sammanfattningar
digest_name=Namn p sammanfattning
digest_maxdays=膌dsta meddelandets 錶der innan s鋘dning sker
digest_days=dagar
digest_lines=rader
digest_maxlines=Maximal sammanfattningsstorlek innan s鋘dning sker
digest_volume=Aktuellt nummer p volymen
digest_issue=Aktuellt nummer p utg鍁an
digest_unlimited=Obegr鋘sat
digest_edays=Antalet dagar saknas eller 鋜 ogiltigt
digest_elines=Antalet rader saknas eller 鋜 ogiltigt
digest_evolume=Volymnummer saknas eller 鋜 ogiltigt
digest_eissue=Utg鍁enummer saknas eller 鋜 ogiltigt

log_global=膎drade globala inst鋖lningar
log_create_list=Skapade e-postlista $1
log_create_digest=Skapade sammanfattande lista $1
log_delete_list=Tog bort e-postlista $1
log_delete_digest=Tog bort sammanfattande lista $1
log_subscribe=Lade till $2 till lista $1
log_unsubscribe=Tog bort $2 fr錸 lista $1
log_members=Uppdaterade medlemmarna p lista $1
log_auto=Uppdaterade synkroniseringen f鰎 lista $1
log_info=Uppdaterade meddelanden och beskrivning f鰎 lista $1
log_subs=Uppdaterade till鋑g och moderering f鰎 lista $1
log_mesg=Uppdaterade e-postinst鋖lningar f鰎 lista $1
log_access=Uppdaterade kommandotillg錸gskontroll f鰎 lista $1
log_head=Uppdaterade huvuden och sidf鰐ter f鰎 lista $1
log_misc=Uppdaterade blandade inst鋖lningar f鰎 lista $1
log_digest=Uppdaterade sammanfattningsinst鋖lningar f鰎 lista $1

  0707010000017b000081a40000000000000002000000013ac038a200002762000000200000000000000000000000000000001800000003reloc/majordomo/lang/tr   index_title=Majordomo Liste Y鰊eticisi
index_econfig=Majordomo yap齦and齬ma dosyas $1 mevcut de餴l. <a href='$2'>Mod黮 yap齦and齬mas</a> yanl ya da, majordomo kurulmam olabilir.
index_eprograms=Majordomo dizini $1 mevcut de餴l. <a href='$2'>Mod黮 yap齦and齬mas</a> yanl ya da, majordomo kurulmam olabilir.
index_eversion=Majordomo s黵黰黱鼁 Webmin taraf齨dan desteklenmemektedir. Sadece 1.94 ve 鼁eri s黵黰ler desteklenmektedir
index_ehomedir=Majordomo yap齦and齬ma dosyas齨daki <tt>$homedir</tt> de餴⺧eni olan $1 mevcut de餴ldir.
index_elistdir=Majordomo yap齦and齬ma dosyas齨daki <tt>$listdir</tt> de餴⺧eni olan $1 mevcut de餴ldir.
index_esendmail=Sendmail yap齦and齬ma dosyas $1 mevcut de餴ldir. <a href=/sendmail/>Sendmail mod黮</a> yap齦and齬man齴 kontrol ediniz.
index_esendmailversion=Sendmail yap齦and齬ma dosyan齴 en son s黵黰 sendmail'e sahip de餴lsiniz gibi g鰎黱鼀or. Webmin sadece 8.8 ve daha 黶t s黵黰leri desteklemektedir.
index_setupdesc=Majordomo sisteminizde kurulu fakat sendmail takma isimler dosyan齴 de餴⺶irilmemi.
index_owner=Majordomo y鰊eticisi e-posta adresi
index_setup=Takma 輘imleri Olu⺶ur
index_none=Tan齧l posta listeniz bulunmamaktad齬.
index_add=Yeni bir posta listesi olu⺶ur
index_digest=Yeni bir 鰖et liste olu⺶ur
index_global=Majordomo Se鏽eklerini De餴⺶ir
index_globaldesc=B黷黱 posta listelerine uygulanacak olan genel majordomo se鏴nkelerini de餴⺶ir
index_return=posta listeleri

global_title=Genel Se鏴nekler
global_ecannot=Genel se鏴nekleri de餴⺶irmek i鏸n izininiz yoktur.
global_header=Genel Majordomo se鏴nekleri
global_whereami=Posta sunucusu makine ad (<tt>$whereami</tt>)
global_whoami=Majordomo y鰊eticisi adresi
global_owner=Majordomo sahibinin adresi
global_sendmail=Sendmail komutu yolu
global_err=Genel se鏴neklerin kaydedilmesinde hata olu⺶ur
global_ewhereami=Kay齪 ya da yanl posta sunucusu makine ad
global_ewhoami=Kay齪 ya da yanl Majordomo adresi
global_eowner=Kay齪 ya da yanl sahip adresi
global_esendmail=Sendmail komutu '$1' mevcut de餴l

create_ecannot=Yeni liste olu⺶urmak i鏸n izininiz yoktur
create_title=Yeni posta listesi olu⺶ur
create_header=Yeni liste ayr齨t齦ar
create_name=Liste ad
create_owner=Liste y鰊eticisinin adresi
create_password=Y鰊etici 㱮fresi
create_desc=A琮klama
create_info=A琮klay齝 mesaj
create_footer=G鰊derilen posta dipnotu
create_moderate=Liste modere edilsin mi?
create_moderator=Moderator'黱 adresi
create_same=Y鰊etici ile ayn
create_err=Posta listesinin olu⺶urulmas齨da hata olu⺶u
create_ename=Kay齪 ya da yanl liste ad
create_eexists='$1' posta listesi her zaman mevcut
create_ealias=Posta takma ismi '$1' her zaman mevcut
create_eowner=Kay齪 ya da yanl sahip adresi
create_epassword=Kay齪 ya da yanl y鰊etici 㱮fresi
create_emoderator=Kay齪 ya da yanl moderat鰎 e-posta adresi

digest_ecannot=Yeni bir 鰖et liste olu⺶urmak i鏸n izininiz yoktur
digest_title=謟et liste olu⺶ur
digest_header=Yeni 鰖et liste ayr齨t齦ar
digest_name=Liste ad
digest_list=Listenin 鰖etini al
digest_owner=Liste y鰊eticisinin adresi
digest_password=Y鰊etici 㱮fresi
digest_desc=A琮klama
digest_info=A琮klay齝 mesaj
digest_footer=謟et posta dipnotu
digest_when=謟et g鰊derme zaman
digest_old=En eski mesaj $1 g黱 鰊cesine ait
digest_lines=Toplam $1 sat齬 mesaj
digest_err=謟et liste olu⺶urulmas齨da hata olu⺶u
digest_edays=Kay齪 ya da yanl g黱 say齭
digest_elines=Kay齪 ya da yanl sat齬 say齭

edit_title=Posta Listesi De餴⺶ir
edit_ecannot=Bu posta listesini de餴⺶irmek i鏸n izininiz yoktur
edit_delete=Listeyi Sil
edit_deletemsg=Bu listeyi ve beraberindeki postalarla, posta takma isimleri sil
edit_return=posta listesi
edit_for=$1 listesi i鏸n

delete_ecannot=Bu posta listesini silmek i鏸n izininiz yoktur
delete_edigest=Bu liste bir 鰖et listeye sahip oldu饀ndan silinemez
delete_title=Liste Sil
delete_rusure=Posta listesi $1 silmek istedi餴nizden emin misiniz? Takip eden dosyalar silenecektir : 
delete_aliases=Takip eden posta listeleri silinmi olabilir :
delete_ok=Listeyi Sil

members_title=Liste 躽eleri
members_desc=Takip eden d鼁 metin yaz齭 kutusundaki e-posta adreslerini de餴⺶irerek bu listeye posta g鰊derebilecek olan adresleri belirleyebilirsiniz.
members_rodesc=Takip eden d鼁 metin yaz齭 kutusundaki adresler bu listeden posta alacak olan adreslerdir.
members_sub=Listeye adres ekle
members_add=Ekle
members_unsub=Listeden adres sil
members_rem=Sil
members_sync=Liste ile Unix kullan齝齦ar齨 e zamanland齬?
members_dom=Kullan齝 isimlerine eklenecek olan alan ad
members_eedit=Bu listenin 鼀elerini de餴⺶irmek i鏸n izininiz yoktur.
members_esub=Listeye adres eklemeden 鰊ce y鰊etici 㱮fresini girmelisiniz.
members_esubaddr=Eklenecek adres tam alan ad齨a sahip olmal齞齬, 鰎ne餴n <tt>foo@bar.com</tt>
members_eunsub=Listeden adres silmeden 鰊ce y鰊etici 㱮fresini girmelisiniz.
members_eunsubaddr=Silinecek adres tam alan ad齨a sahip olmal齞齬, 鰎ne餴n <tt>foo@bar.com</tt>

info_title=Mesajlar ve A琮klama
info_header=Mesajlar ve a琮klama
info_desc=Liste a琮klamas, <tt>lists</tt> komutunda listenin kars齨da a琮klama olarak g鰎黮en k齭齧d齬
info_info=Bilgi verici mesaj, <tt>info $1</tt> komutunun 琮kt齭 olarak g鰎黮en mesajd齬
info_intro=Giri mesaj, biri listeye 鼀e oldu饀nda ona g鰊derilecek olan mesajd齬.
info_same=Bilgi verici mesajla ayn
info_below=A瘕da girildi餴 gibi..

subs_title=躽elik ve Moderasyon
subs_header=躽elik ve moderasyon se鏴nekleri
subs_sub=躽elik politikas
subs_sopen=Herkes kendi kendine 鼀e olabilir
subs_sauto=Herkes herkesi 鼀e yapabilir
subs_closed=Y鰊etici onay gereklidir
subs_unsub=躽eliktan 琮kma politikas
subs_uopen=Herkes kendisi 鼀elikten 琮kabilir
subs_uauto=Herkes herkesi 鼀elikten 琮karabilir
subs_confirm=Giri onaylamas gereksin mi?
subs_welcome=A琮klay齝 mesaj g鰊derilsin mi?
subs_strip=Listeye sadece ham adres eklensin mi?
subs_announcements=躽elikte ve 鼀elikten 琮k齦齬ken y鰊eticiye haber verilsin mi?
subs_administrivia=躽elik ve 鼀elikten 琮kma istekleri y鰊eticiye g鰊derilsin mi?
subs_passwd=Y鰊etici 㱮fresi
subs_moderate=Liste modere edilsin mi?
subs_moderator=Moderat鰎'黱 adresi?
subs_maint=Y鰊eticisi
subs_mpasswd=Moderasyon 㱮fresi
subs_owner=Sahibin e-posta adresi
subs_approval=Onaylama e-posta adresi
subs_eowner=Sahip e-posta adresi bulunmad
subs_eapproval=Onaylama e-posta adresi bulunmad
subs_emoderator=Kay齪 ya da yanl moderat鰎 adresi
subs_epasswd=Kay齪 ya da yanl 㱮fre

mesg_title=E-posta Se鏴nekleri
mesg_header=Da giden e-posta se鏴nekleri
mesg_reply=Reply-To: geri g鰊derilecek e-posta adresi
mesg_none=Hi鏱iri
mesg_sender=Sender: e-posta adresi
mesg_host=Geri g鰊derilecek olan e-posta adresi i鏸n makine ad
mesg_subject=Subject: geri g鰊derilecek e-posta adresi i鏸n ba齥
mesg_precedence=E-posta adresi 鰊celi餴ni geri g鰊der
mesg_first=Birinci s齨齠
mesg_special=謟el da瘕t齝
mesg_list=Liste
mesg_bulk=Hacme g鰎e
mesg_junk=Kalitesiz
mesg_purge=Remove Recieved: geri g鰊derilen postalar齨 ba齥lar
mesg_maxlength=G鰊derilebilen en 鏾k mesaj boyutu
mesg_ereply=Kay齪 ya da yanl Reply-To: adresi
mesg_esender=Kay齪 ya da yanl Sender: adresi
mesg_esender2=Sender: adres bir makine ad i鏴rmiyor.
mesg_ehost=Kay齪 ya da yanl makine ad
mesg_emaxlength=Kay齪 ya da yanl en 鏾k mesaj boyutu

access_title=Giri Kontrol
access_header=Majordomo komutlar i鏸n giri kontrol
access_open=Herkes
access_list=Liste 鼀eleri
access_closed=Hi鏺imse
access_get=<tt>get</tt> komutuna izin
access_index=<tt>index</tt> komutuna izin
access_info=<tt>info</tt> komutuna izin
access_intro=<tt>intro</tt> komutuna izin
access_which=<tt>which</tt> komutuna izin
access_who=<tt>who</tt> komutuna izin
access_adv=<tt>lists</tt> komutunun cevab齨da i鏴rilsin..
access_adv0=Herkes
access_adv1=Adresler d鼁enleme ifadeleri ile karla⺶齬齦齳or..
access_adv2=Adresler d鼁enleme ifadeleri ile karla⺶齬齦m齳or..
access_res=Listeye kim postalayabilsin?
access_res0=Herkes
access_res1=Liste 鼀eleri
access_res2=Dosyadaki adresler
access_tbody=Posta i鏴ri餴ndeki yasak kelimeler
access_theader=Posta ba齨daki yasak kelimeler
access_taboo=Not: b黷黱 yasak kelimeler ve adres tan齧lamalar <tt>/</tt> ile baamal ve bitmelidir, 鰎nek:<tt>/microsoft.com</tt> ya da <tt>/obscene/</tt>

head_title=Ba齥lar ve Dipnotlar
head_header=Eposta ba齥 ve dipnotlar齨 tekrar g鰊der
head_fronter=Eposta ba齥lar齨 tekrar g鰊der
head_footer=Eposta dipnotlar齨 tekrar g鰊der
head_headers=Tekrar g鰊derilen e-postalar i鏸n ek SMTP ba齥lar

misc_title=莈㱮tli Se鏴nekler
misc_header=莈㱮tli liste se鏴nekleri
misc_munge=Alan, yaln齴ca adresler karla⺶齬齦d齨da kullan?
misc_debug=Hatas齴la⺶齬ma modu?
misc_info=Bilgilendirici mesaj son de餴⺶irilme tarihini i鏴rsin mi?
misc_intro=Giri mesaj son de餴⺶irilme tarihini i鏴rsin mi?

digest_title=謟et Liste Se鏴nekleri
digest_header=謟et liste olu⺶urma se鏴nekleri
digest_name=謟et liste ba
digest_maxdays=Son 鰖et mesaj s黵esi
digest_days=g黱
digest_lines=sat齬
digest_maxlines=謟et mesaj齨 en b鼀黭 boyutu
digest_volume=辤mdiki e-posta numaras
digest_issue=辤mdiki konu numaras
digest_unlimited=limitsiz
digest_edays=Kay齪 ya da yanl g黱 say齭
digest_elines=Kay齪 ya da yanl sat齬 say齭
digest_evolume=Kay齪 ya da yanl e-posta numaras
digest_eissue=Kay齪 ya da yanl konu numaras

log_global=Genel se鏴nekler de餴⺶irildi
log_create_list=Posta listesi olu⺶uruldu $1
log_create_digest=Olu⺶urulan 鰖et listesi $1
log_delete_list=Silinen posta listesi $1
log_delete_digest=Silinen 鰖et listesi $1
log_subscribe=$2, $1 'e 鼀e oldu
log_unsubscribe=$2, $1 鼀eli餴nden ayr齦d
log_members=Liste $1'in kullan齝齦ar g黱cellendi
log_auto=Liste $1' in uyumlulu饀 g黱cellendi
log_info=Liste $1'in mesajlar ve a琮klamalar g黱cellendi
log_subs=Liste $1 i鏸n 鼀elik ve moderasyon g黱cellendi
log_mesg=Liste $1 i鏸n e-posta se鏴nekleri g黱cellendi
log_access=Liste $1 giri kontrol g黱cellendi
log_head=Liste $1 i鏸n ba齥 ve dipnotlar g黱cellendi
log_misc=Liste $1 i鏸n 鏴㱮tli se鏴nekler g黱cellendi
log_digest=Liste $1 i鏸n 鰖etleme se鏴nekleri g黱cellendi

  0707010000017c000081a40000000000000002000000013ac038a200001c2e000000200000000000000000000000000000001b00000003reloc/majordomo/lang/zh_CN    index_title=管理系统列表管理
index_econfig=Majordomo 配置文件 $1 不存在.可能您的<a href='$2'>模块配置</a>不正确,或者 Majordomo 没有安装.
index_eprograms=Majordomo 目录 $1 不存在.可能您的<a href='$2'>模块配置</a>不正确,或者 Majordomo 没有安装.
index_eversion=Webmin 不支持您的 Majordomo 版本,它能够支持1.94或更高版本的Majordomo.
index_ehomedir=您的 Majordomo 配置文件中的<tt>$homedir</tt>被设置到 $1,但它不存在.
index_elistdir=您的 Majordomo 配置文件中的<tt>$listdir</tt>被设置到 $1,但它不存>在.
index_esendmail=您的 sendmail 配置文件 $1不存在,请检查您的<a href=/sendmail/>Sendmail 模块</a> 配置.
index_esendmailversion=您的 sendmail 配置文件可能不是最新的版本, Webmin只能支持8.8或更高版本.
index_setupdesc=Majordomo 已经安装在您的系统上,但是不能在 sendmail aliase 文件中正确建立.
index_owner=所有者 E_mail 地址
index_setup=创建别名
index_none=您没有定义邮件列表
index_add=增加一新的邮件列表
index_digest=增加一新的文摘列表
index_global=编辑 Majordomo 选项
index_globaldesc=编辑适用于全部邮件列表的 Majordomo 选项
index_return=邮件列表

global_title=全局选项
global_ecannot=您不能编辑全局选项
global_header=全局 Majordomo 选项
global_whereami=邮件服务器的客户名(<tt>$whereami</tt>)
global_whoami=Majordomo 主地址
global_owner=Majordomo 所有者地址
global_sendmail=Sendmail 命令路径
global_err=存储全局选项失败
global_ewhereami=丢失或无效的邮件服务器客户名
global_ewhoami=丢失或无效的 Majordomo 地址
global_eowner=丢失或无效的所有者地址
global_esendmail=Sendmail 命令 '$1' 不存在

create_ecannot=您不能创建新列表
create_title=创建邮件列表
create_header=新列表概述
create_name=列表名称
create_owner=列出所有者的地址
create_password=管理口令
create_desc=描述
create_info=简介
create_footer=转运邮件注脚
create_moderate=仲裁列表?
create_moderator=仲裁者的地址
create_same=类似管理器
create_err=创建邮件列表失败
create_ename=丢失或无效的邮件列表名
create_eexists=已有一个名为 '$1' 的邮件列表
create_ealias='$1' 的邮件别名已经存在
create_eowner=丢失或无效的所有者的邮件地址
create_epassword=丢失或无效的管理口令
create_emoderator=丢失或无效的仲裁者邮件地址

cdigest_ecannot=您不能创建新的文摘列表
cdigest_title=创建文摘列表
cdigest_header=新文摘列表详述
cdigest_name=列表名称
cdigest_list=进行列表的文摘
cdigest_owner=列出文摘所有者的地址
cdigest_password=管理口令
cdigest_desc=描述
cdigest_info=简介
cdigest_footer=文摘邮件注脚
cdigest_when=发送文摘的时间
cdigest_old=最早的信息已经 $1 天
cdigest_lines=信息共 $1 行
cdigest_err=创建文摘列表失败
cdigest_edays=丢失或无效的的天数
cdigest_elines=丢失或无效的行数

edit_title=编辑邮件列表
edit_ecannot=您不能编辑邮件列表
edit_delete=删除列表
edit_deletemsg=删除这个列表,及其所包含的所有附件和邮件别名
edit_return=邮件列表
edit_for=为列表 $1

delete_ecannot=您不能删除该邮件列表
delete_edigest=该列表不能删除,是因为它可能有相关的文摘列表
delete_title=删除列表
delete_rusure=您确信要删除邮件列表 $1? 下面文件将被删除:
delete_aliases=下列邮件别名也将被删除:
delete_ok=删除列表

members_title=列出成员
members_desc=利用下表编辑邮件地址列表,这些地址将能收到发送到该列表中的邮件.
members_rodesc=下表列出了所有能从该列表中收到邮件的邮件地址.
members_sub=在表中签署地址
members_add=增加
members_unsub=从表中撤销地址
members_rem=删除
members_sync=用列表同步 Unix 用户
members_dom=要追加用户名的域名
members_eedit=您不能编辑该表中的成员
members_esub=在列表中签署地址之前,您必须选择管理口令
members_esubaddr=要签署的地址必须域名齐全,例如:<tt>foo@bar.com</tt>
members_eunsub=在列表中撤销地址之前,您必须选择维护口令
members_eunsubaddr=要撤销的地址必须域名齐全,例如:<tt>foo@bar.com</tt>

info_title=信息和描述
info_header=信息和描述
info_desc=列出描述,要被包含在<tt>lists</tt>命令的反馈中
info_info=有益信息,将由<tt>info $1</tt>命令负责返回
info_intro=简要信息,将在有人加入列表时发出
info_same=类似的有益信息
info_below=按照下面输入..

subs_title=签署和管理
subs_header=签署和管理选项
subs_sub=签署规定
subs_sopen=人人均可签署自己
subs_sauto=人人均可签署每个人
subs_closed=需要管理者同意
subs_unsub=撤销规定
subs_uopen=人人均可撤销自己
subs_uauto=人人均可撤销每个人
subs_confirm=确认需要撤销?
subs_welcome=发送简要信息?
subs_strip=只在表中增加原始地址?
subs_announcements=通知签署和撤销的管理器?
subs_administrivia=转送签署和撤销需求到管理器?
subs_passwd=维护口令
subs_moderate=已仲裁的列表?
subs_moderator=仲裁者的地址?
subs_maint=维护者
subs_mpasswd=仲裁口令
subs_owner=所有者的邮件地址
subs_approval=赞同者的邮件地址
subs_eowner=丢失所有者的邮件地址
subs_eapproval=丢失赞同者的邮件地址
subs_emoderator=丢失或无效的仲裁者地址
subs_epasswd=丢失或无效的口令

mesg_title=Email 选项
mesg_header=外发邮件选项
mesg_reply=回复到:地址在当前的邮件中
mesg_none=无
mesg_sender=发送者:地址在邮件中
mesg_host=当前邮件的客户
mesg_subject=主题:当前邮件的前缀
mesg_precedence=当前邮件的优先级
mesg_first=特快
mesg_special=专递
mesg_list=列表
mesg_bulk=邮件包
mesg_junk=废邮件
mesg_purge=删除邮件: 标题来自当前邮箱
mesg_maxlength=可允许的最大邮件的大小尺寸
mesg_ereply=丢失或无效的回复地址
mesg_esender=丢失或无效的发送者地址
mesg_esender2=发送者: 地址不必包括客户名
mesg_ehost=丢失或无效的客户名
mesg_emaxlength=丢失或无效的最大邮件的大小

access_title=访问控制
access_header=管理命令的访问控制
access_open=每个人
access_list=列出成员
access_closed=没有成员
access_get=执行<tt>get</tt>命令
access_index=执行<tt>index</tt>命令
access_info=执行<tt>info</tt>命令
access_intro=执行<tt>intro</tt>命令
access_which=执行<tt>which</tt>命令
access_who=执行<tt>who</tt>命令
access_adv=包含相应<tt>lists</tt>命令的列表..
access_adv0=每个人
access_adv1=地址匹配正则表达式..
access_adv2=地址不匹配正则表达式..
access_res=谁可以投递这个列表?
access_res0=每个人
access_res1=列出成员
access_res2=文件中的地址
access_tbody=禁用的正文正则表达式
access_theader=禁用的页首正则表达式
access_taboo=注意:所有禁用的和地址正则表达式均必须以<tt>/</tt>开头和结束,例如:<tt>/foobar.com/</tt> 或 <tt>/obscene/</tt>.

head_title=页首和注脚
head_header=当前邮件的页首和注脚
head_fronter=当前邮件的页首
head_footer=当前邮件的注脚
head_headers=当前邮件的 SMTP 页首

misc_title=其它选项
misc_header=其它列表选项
misc_munge=只有在比较地址时使用域名?
misc_debug=调试模式?
misc_info=在帮助信息中包括最后的更新日期?
misc_intro=在摘要信息中包括最后的更新日期?

digest_title=文摘选项
digest_header=产生文摘的选项
digest_name=文摘标题
digest_maxdays=未发送的最旧信息的时间
digest_days=天
digest_lines=行
digest_maxlines=未发送的最大文摘的大小
digest_volume=当前的卷数
digest_issue=当前期刊数
digest_unlimited=不限
digest_edays=丢失或无效的天数
digest_elines=丢失或无效的行数
digest_evolume=丢失或无效的卷数
digest_eissue=丢失或无效的期刊数

log_global=已改变全局选项
log_create_list=创建了邮件列表 $1
log_create_digest=创建了文摘列表 $1
log_delete_list=删除了邮件列表 $1
log_delete_digest=删除了文摘列表 $1
log_subscribe=在列表 $1 签署了 $2 
log_unsubscribe=从列表 $1 撤销了 $2
log_members=更新了列表 $1的成员
log_auto=同步了列表 $1 
log_info=更新了列表 $1 的信息和描述
log_subs=更新了列表 $1 的描述和仲裁
log_mesg=更新了列表 $1 的邮件选项
log_access=更新了列表 $1 的访问控制
log_head=更新了列表 $1 的页首和页脚
log_misc=更新了列表 $1 的其它选项
log_digest=更新了列表 $1 的文摘选项

acl_lists=投递这个用户能管理的列表
acl_lall=所有列表
acl_lsel=已选择..
acl_global=可以编辑全局选项?
acl_create=可以创建新的邮件列表?
acl_edit=可以编辑列表的关系?
  07070100027264000081a40000000000000002000000013ac038a200000393000000200000000000000000000000000000001e00000003reloc/majordomo/log_parser.pl # log_parser.pl
# Functions for parsing this module's logs

require './majordomo-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p) = @_;
if ($action eq 'global') {
	return $text{'log_global'};
	}
elsif ($action eq 'create') {
	return &text("log_create_${type}", "<tt>$object</tt>");
	}
elsif ($action eq 'delete') {
	return &text("log_delete_${type}", "<tt>$object</tt>");
	}
elsif ($action eq 'subscribe') {
	return &text('log_subscribe', "<tt>$object</tt>",
				      "<tt>$p->{'addr'}</tt>");
	}
elsif ($action eq 'unsubscribe') {
	return &text('log_unsubscribe', "<tt>$object</tt>",
				        "<tt>$p->{'addr'}</tt>");
	}
elsif ($text{"log_${action}"}) {
	return &text("log_${action}", "<tt>$object</tt>");
	}
else {
	return undef;
	}
}

 07070100027265000081a40000000000000002000000013ac038a200001f36000000200000000000000000000000000000002100000003reloc/majordomo/majordomo-lib.pl  # majordomo-lib.pl
# Common majordomo functions

do '../web-lib.pl';
&init_config();

&foreign_require("sendmail", "sendmail-lib.pl");
&foreign_require("sendmail", "aliases-lib.pl");

%MAJOR_ENV = ( 'HOME', $config{'program_dir'} );

# get_config()
# Parse and return the majordomo config file
sub get_config
{
local(@rv, $line);
open(CONF, $config{'majordomo_cf'});
while(<CONF>) {
	s/\r|\n//g;
	if (/^\s*\$(\S+)\s*=\s*"(.*)";\s*$/) {
		# static config option
		push(@rv, { 'name' => $1,
			    'value' => &perl_unescape($2),
			    'line' => $line,
			    'eline' => $line });
		}
	elsif (/^\s*\$(\S+)\s*=\s*<<\s*'(\S+)';\s*$/) {
		# multiline config option
		local $o = { 'name' => $1,
			     'line' => $2 };
		local $end = $3;
		while(<CONF>) {
			$line++;
			last if ($_ =~ /^$end[\r\n]+$/);
			$o->{'value'} .= $_;
			}
		$o->{'eline'} = $line;
		push(@rv, $o);
		}
#	elsif (/^\s*\$(\S+)\s*=\s*\$ENV\{['"]([^'"]+)['"]\};\s*$/) {
#		# from majordomo environment variable
#		push(@rv, { 'name' => $1,
#			    'value' => $MAJOR_ENV{$2},
#			    'line' => $line,
#			    'eline' => $line });
#		}
	elsif (/^\s*\$(\S+)\s*=\s*(.*);\s*$/) {
		# computed config option
		push(@rv, { 'name' => $1,
			    'value' => $2,
			    'computed' => 1,
			    'line' => $line,
			    'eline' => $line });
		}
	$line++;
	}
close(CONF);
return \@rv;
}

# save_directive(&config, name, value)
# Update some directive in the global config file
sub save_directive
{
local $old = &find($_[1], $_[0]);
local $lref = &read_file_lines($config{'majordomo_cf'});
local $olen = $old->{'eline'} - $old->{'line'} + 1;
local $v = $_[2];
$v =~ s/\n$//;
if ($v =~ /\n/) {
	splice(@$lref, $old->{'line'}, $olen,
	       ( "\$$_[1] = <<'END';", split(/\n/, $v, -1), "END" ));
	}
else {
	$v =~ s/\@/\\@/g;
	splice(@$lref, $old->{'line'}, $olen, "\$$_[1] = \"$v\";");
	}
}

# find(name, &array)
sub find
{
local($c, @rv);
foreach $c (@{$_[1]}) {
	if ($c->{'name'} eq $_[0]) {
		push(@rv, $c);
		}
	}
return @rv ? wantarray ? @rv : $rv[0]
           : wantarray ? () : undef;
}

# find_value(name, &array)
sub find_value
{
local(@v);
@v = &find($_[0], $_[1]);
@v = grep { !$_->{'computed'} } @v;
if (!@v) { return undef; }
elsif (wantarray) { return map { $_->{'value'} } @v; }
else { return $v[0]->{'value'}; }
}

# list_lists(&config)
# Returns a list of mailing list names
sub list_lists
{
local ($l, @rv);
local $ldir = &perl_var_replace(&find_value("listdir", $_[0]), $_[0]);
opendir(DIR, $ldir);
while($l = readdir(DIR)) {
	if ($l =~ /^(\S+)\.config$/ && $1 !~ /\.old$/) {
		push(@rv, $1);
		}
	}
closedir(DIR);
return @rv;
}
	
# get_list(name, &config)
# Returns the details of some list
sub get_list
{
local $ldir = &perl_var_replace(&find_value("listdir", $_[1]), $_[1]);
local %list;
return undef if (!-r "$ldir/$_[0].config");
$list{'name'} = $_[0];
$list{'members'} = "$ldir/$_[0]";
$list{'config'} = "$ldir/$_[0].config";
$list{'info'} = "$ldir/$_[0].info";
$list{'intro'} = "$ldir/$_[0].intro";
return \%list;
}

# get_list_config(file)
sub get_list_config
{
local(@rv, $line);
$lnum = 0;
open(CONF, $_[0]);
while(<CONF>) {
	s/\r|\n//g;
	s/#.*$//g;
	if (/^\s*(\S+)\s*=\s*(.*)$/) {
		# single value
		push(@rv, { 'name' => $1,
			    'value' => $2,
			    'index' => scalar(@rv),
			    'line' => $lnum,
			    'eline' => $lnum });
		}
	elsif (/^\s*(\S+)\s*<<\s*(\S+)/) {
		# multi-line value
		local $c = { 'name' => $1,
			     'index' => scalar(@rv),
			     'line' => $lnum };
		local $end = $2;
		while(<CONF>) {
			$lnum++;
			last if (/^$end[\r\n]+$/);
			s/^--/-/;
			s/^-\n/\n/;
			$c->{'value'} .= $_;
			}
		$c->{'eline'} = $lnum;
		push(@rv, $c);
		}
	$lnum++;
	}
return \@rv;
}

# save_list_directive(&config, file, name, value, multiline)
sub save_list_directive
{
local $old = &find($_[2], $_[0]);
local $lref = &read_file_lines($_[1]);
local ($pos, $olen, $nlen);
if ($old) {
	$olen = $old->{'eline'} - $old->{'line'} + 1;
	$pos = $old->{'line'};
	}
else {
	$olen = 0;
	$pos = @$lref;
	}
if ($_[4]) {
	local $ov = $old->{'value'};
	$ov =~ s/\n$//;
	local $v = $_[3];
	$v =~ s/\n$//;
	local @lines = split(/\n/, $v, -1);
	@lines = map { s/^-/--/; s/^$/-/; $_ } @lines;
	splice(@$lref, $pos, $olen, ("$_[2]        <<   END", @lines, "END"))
		if (!$old || $v ne $ov);
	$nlen = (!$old || $v ne $ov) ? @lines + 2 : $olen;
	}
else {
	splice(@$lref, $pos, $olen, "$_[2] = $_[3]")
		if (!$old || $_[3] ne $old->{'value'});
	$nlen = 1;
	}
if ($old && $nlen != $olen) {
	foreach $c (@{$_[0]}) {
		if ($c->{'line'} > $old->{'eline'}) {
			$c->{'line'} += ($nlen - $olen);
			$c->{'eline'} += ($nlen - $olen);
			}
		}
	}
}

# get_aliases_file()
# Returns the paths to the sendmail-style aliases files
sub get_aliases_file
{
return [ $config{'aliases_file'} ] if ($config{'aliases_file'});
local $sm_conf = &foreign_call("sendmail", "get_sendmailcf");
return &foreign_call("sendmail", "aliases_file", $sm_conf);
}

# perl_unescape(string)
# Converts a string like "hello\@there\\foo" to "hello@there\foo"
sub perl_unescape
{
local $v = $_[0];
$v =~ s/\\(.)/$1/g;
return $v;
}

# perl_var_replace(string, &config)
# Replaces variables like $foo in a string with their value from
# the config file
sub perl_var_replace
{
local $str = $_[0];
local %donevar;
while($str =~ /\$([A-z0-9\_]+)/ && !$donevar{$1}) {
	$donevar{$1}++;
	local $val = &find_value($1, $_[1]);
	$str =~ s/\$([A-z0-9\_]+)/$val/;
	}
return $str;
}

# set_permissions(file)
# Sets the ownership and permissions on some file or directory,
# based on the ownership of the lists directory
sub set_permissions
{
local $conf = &get_config();
local $ldir = &perl_var_replace(&find_value("listdir", $conf), $conf);
local @ldir = stat($ldir);
chown($ldir[4], $ldir[5], $_[0]);
chmod(-d $_[0] ? 0775 : 0664, $_[0]);
}

# choice_input(name, text, &config, [opt, display]+)
sub choice_input
{
local $v = &find_value($_[0], $_[2]);
local $rv = "<td><b>$_[1]</b></td> <td nowrap>";
for($i=3; $i<@_; $i+=2) {
	local $ch = $v eq $_[$i] ? "checked" : "";
	$rv .= "<input name=$_[0] type=radio value='$_[$i]' $ch> ".$_[$i+1];
	}
$rv .= "</td>\n";
return $rv;
}

# save_choice(&config, file, name)
sub save_choice
{
&save_list_directive($_[0], $_[1], $_[2], $in{$_[2]});
}

# opt_input(name, text, &config, default, size, [units])
sub opt_input
{
local $v = &find_value($_[0], $_[2]);
local $rv = "<td><b>$_[1]</b></td> <td nowrap ".
	    ($_[4] > 30 ? "colspan=3" : "").">";
$rv .= sprintf "<input type=radio name=$_[0]_def value=1 %s> $_[3]\n",
		$v eq "" ? "checked" : "";
$rv .= sprintf "<input type=radio name=$_[0]_def value=0 %s>\n",
		$v eq "" ? "" : "checked";
local $passwd = $_[0] =~ /passwd/ ? "type=password" : "";
$rv .= "<input $passwd name=$_[0] size=$_[4] value=\"$v\"> $_[5]</td>\n";
return $rv;
}

# save_opt(&config, file, name, [&func])
sub save_opt
{
if ($in{"$_[2]_def"}) { &save_list_directive($_[0], $_[1], $_[2], ""); }
elsif ($_[3] && ($err = &{$_[3]}($in{$_[2]}))) { &error($err); }
else { &save_list_directive($_[0], $_[1], $_[2], $in{$_[2]}); }
}

# select_input(name, text, &config, [opt, display]+)
sub select_input
{
local $v = &find_value($_[0], $_[2]);
local $rv = "<td><b>$_[1]</b></td> <td nowrap><select name=$_[0]>";
for($i=3; $i<@_; $i+=2) {
	local $ch = $v eq $_[$i] ? "selected" : "";
	$rv .= "<option value='$_[$i]' $ch> ".$_[$i+1];
	}
$rv .= "</select></td>\n";
return $rv;
}

# save_select(&config, file, name)
sub save_select
{
&save_list_directive($_[0], $_[1], $_[2], $in{$_[2]});
}

# multi_input(name, text, &config)
sub multi_input
{
local $v = &find_value($_[0], $_[2]);
local $rv = "<td valign=top><b>$_[1]</b></td> <td colspan=3>".
	    "<textarea rows=4 cols=80 name=$_[0]>\n$v</textarea></td>\n";
return $rv;
}

# save_multi(&config, file, name)
sub save_multi
{
$in{$_[2]} =~ s/\r//g;
&save_list_directive($_[0], $_[1], $_[2], $in{$_[2]}, 1);
}

# can_edit_list(&access, name)
sub can_edit_list
{
foreach (split(/\s+/, $_[0]->{'lists'})) {
	return 1 if ($_ eq "*" || $_ eq $_[1]);
	}
return 0;
}

1;

  07070100027266000081a40000000000000002000000013ac038a200000281000000200000000000000000000000000000001c00000003reloc/majordomo/module.info   category=servers
desc_ru_SU=笮捎松 蛄佑偬松 Majordomo
desc_zh_TW.Big5=Majordomo 秎患恨瞶
os_support=solaris redhat-linux debian-linux slackware-linux suse-linux aix hpux freebsd osf1 irix unixware openserver macos open-linux turbo-linux corel-linux cobalt-linux
desc=Majordomo List Manager
desc_sv=Listhanterare f鰎 Majordomo
desc_de=Majordomo Listenverwaltung
desc_es=Gestor de Listas Majordomo
desc_fr=Gestionnaire de Majordomo
name=Majordomo
depends=sendmail
desc_pt=Administrador de Listas Majordomo
desc_pl=Serwer list dyskusyjnych Majordomo
risk=low medium high
desc_zh_CN=Majordomo 列表管理
desc_ru_RU=扬桉觇 朽耨觇 Majordomo
   07070100027267000081e40000000000000002000000013ac038a200000590000000200000000000000000000000000000002000000003reloc/majordomo/save_access.cgi   #!/usr/local/bin/perl
# save_access.cgi
# Save access control options

require './majordomo-lib.pl';
&ReadParse();
%access = &get_module_acl();
&can_edit_list(\%access, $in{'name'}) || &error($text{'edit_ecannot'});
$list = &get_list($in{'name'}, &get_config());
&lock_file($list->{'config'});
$conf = &get_list_config($list->{'config'});
&save_choice($conf, $list->{'config'}, "get_access");
&save_choice($conf, $list->{'config'}, "index_access");
&save_choice($conf, $list->{'config'}, "info_access");
&save_choice($conf, $list->{'config'}, "intro_access");
&save_choice($conf, $list->{'config'}, "which_access");
&save_choice($conf, $list->{'config'}, "who_access");
$in{'adv'} =~ s/\r//g;
if ($in{'adv_mode'} == 0) {
	$adv = $noadv = "";
	}
elsif ($in{'adv_mode'} == 1) {
	$adv = $in{'adv'};
	$noadv = "";
	}
else {
	$adv = "";
	$noadv = $in{'adv'};
	}
&save_list_directive($conf, $list->{'config'}, "advertise", $adv, 1);
&save_list_directive($conf, $list->{'config'}, "noadvertise", $noadv, 1);
&save_list_directive($conf, $list->{'config'}, "restrict_post",
		     $in{'res_mode'} == 0 ? "" :
		     $in{'res_mode'} == 1 ? $in{'name'} :
					    $in{'res'});
&save_multi($conf, $list->{'config'}, "taboo_body");
&save_multi($conf, $list->{'config'}, "taboo_headers");
&flush_file_lines();
&unlock_file($list->{'config'});
&webmin_log("access", undef, $in{'name'}, \%in);
&redirect("edit_list.cgi?name=$in{'name'}");

07070100027268000081e40000000000000002000000013ac038a20000025e000000200000000000000000000000000000001e00000003reloc/majordomo/save_auto.cgi #!/usr/local/bin/perl
# save_auto.cgi
# Update automatic sync options

require './majordomo-lib.pl';
&ReadParse();
%access = &get_module_acl();
&can_edit_list(\%access, $in{'name'}) || &error($text{'edit_ecannot'});
&lock_file("$module_config_directory/config");
if ($in{'sync'}) {
	$config{"sync_$in{'name'}"} = 1;
	}
else {
	delete($config{"sync_$in{'name'}"});
	}
$config{"shost_$in{'name'}"} = $in{'shost'};
&write_file("$module_config_directory/config", \%config);
&unlock_file("$module_config_directory/config");
&webmin_log("auto", undef, $in{'name'});
&redirect("edit_list.cgi?name=$in{'name'}");

  07070100027269000081e40000000000000002000000013ac038a200000468000000200000000000000000000000000000002000000003reloc/majordomo/save_digest.cgi   #!/usr/local/bin/perl
# save_digest.cgi
# Save digest options

require './majordomo-lib.pl';
&ReadParse();
%access = &get_module_acl();
&can_edit_list(\%access, $in{'name'}) || &error($text{'edit_ecannot'});
$list = &get_list($in{'name'}, &get_config());
&lock_file($list->{'config'});
$conf = &get_list_config($list->{'config'});

&save_opt($conf, $list->{'config'}, "digest_name");
&save_opt($conf, $list->{'config'}, "digest_maxdays", \&check_days);
&save_opt($conf, $list->{'config'}, "digest_maxlines", \&check_lines);
&save_opt($conf, $list->{'config'}, "digest_volume", \&check_volume);
&save_opt($conf, $list->{'config'}, "digest_issue", \&check_issue);

&flush_file_lines();
&unlock_file($list->{'config'});
&webmin_log("digest", undef, $in{'name'}, \%in);
&redirect("edit_list.cgi?name=$in{'name'}");

sub check_days
{
return $_[0] =~ /^\d+$/ ? undef : $text{'digest_edays'};
}

sub check_lines
{
return $_[0] =~ /^\d+$/ ? undef : $text{'digest_elines'};
}

sub check_volume
{
return $_[0] =~ /^\d+$/ ? undef : $text{'digest_evolume'};
}

sub check_issue
{
return $_[0] =~ /^\d+$/ ? undef : $text{'digest_eissue'};
}

0707010002726a000081e40000000000000002000000013ac038a2000003d8000000200000000000000000000000000000002000000003reloc/majordomo/save_global.cgi   #!/usr/local/bin/perl
# save_global.cgi
# Save global majordomo options

require './majordomo-lib.pl';
&ReadParse();
%access = &get_module_acl();
$access{'global'} || &error($text{'global_ecannot'});
&lock_file($config{'majordomo_cf'});
$conf = &get_config();
&error_setup($text{'global_err'});

# Check inputs
$in{'whereami'} =~ /^[A-z0-9\-\.]+$/ ||
	&error($text{'global_ewhereami'});
$in{'whoami'} =~ /^\S+$/ ||
	&error($text{'global_ewhoami'});
$in{'whoami_owner'} =~ /^\S+$/ ||
	&error($text{'global_eowner'});
-x $in{'sendmail_command'} ||
	&error(&text('global_esendmail', "<tt>$in{'sendmail_command'}</tt>"));

# Save inputs
&save_directive($conf, "whereami", $in{'whereami'});
&save_directive($conf, "whoami", $in{'whoami'});
&save_directive($conf, "whoami_owner", $in{'whoami_owner'});
&save_directive($conf, "sendmail_command", $in{'sendmail_command'});
&flush_file_lines();
&unlock_file($config{'majordomo_cf'});
&webmin_log("global", undef, undef, \%in);
&redirect("");

0707010002726b000081e40000000000000002000000013ac038a20000028e000000200000000000000000000000000000001e00000003reloc/majordomo/save_head.cgi #!/usr/local/bin/perl
# save_head.cgi
# Save headers and footers

require './majordomo-lib.pl';
&ReadParse();
%access = &get_module_acl();
&can_edit_list(\%access, $in{'name'}) || &error($text{'edit_ecannot'});
$list = &get_list($in{'name'}, &get_config());
&lock_file($list->{'config'});
$conf = &get_list_config($list->{'config'});
&save_multi($conf, $list->{'config'}, "message_fronter");
&save_multi($conf, $list->{'config'}, "message_footer");
&save_multi($conf, $list->{'config'}, "message_headers");
&flush_file_lines();
&unlock_file($list->{'config'});
&webmin_log("head", undef, $in{'name'}, \%in);
&redirect("edit_list.cgi?name=$in{'name'}");

  0707010002726c000081e40000000000000002000000013ac038a2000004ed000000200000000000000000000000000000001e00000003reloc/majordomo/save_info.cgi #!/usr/local/bin/perl
# save_info.cgi
# Store the info and intro message for a list

require './majordomo-lib.pl';
require 'ctime.pl';
&ReadParse();
%access = &get_module_acl();
&can_edit_list(\%access, $in{'name'}) || &error($text{'edit_ecannot'});
$list = &get_list($in{'name'}, &get_config());
&lock_file($list->{'config'});
&lock_file($list->{'info'});
&lock_file($list->{'intro'});
$conf = &get_list_config($list->{'config'});
chop($ctime = ctime(time()));
$updated = "[Last updated on: $ctime]\n";

$in{'info'} =~ s/\r//g;
open(INFO, ">$list->{'info'}");
if (&find_value("date_info", $conf) eq "yes") {
	print INFO $updated;
	}
print INFO $in{'info'};
print INFO "\n" if ($in{'info'} !~ /\n$/);
close(INFO);
if ($in{'intro_def'}) {
	unlink($list->{'intro'});
	}
else {
	$in{'intro'} =~ s/\r//g;
	open(INTRO, ">$list->{'intro'}");
	if (&find_value("date_intro", $conf) eq "yes") {
		print INTRO $updated;
		}
	print INTRO $in{'intro'};
	print INTRO "\n" if ($in{'intro'} !~ /\n$/);
	close(INTRO);
	&set_permissions($list->{'intro'});
	}
&save_list_directive($conf, $list->{'config'},
		     "description", $in{'description'});
&flush_file_lines();
&unlock_all_files();
&webmin_log("info", undef, $in{'name'});
&redirect("edit_list.cgi?name=$in{'name'}");

   0707010002726d000081e40000000000000002000000013ac038a20000085a000000200000000000000000000000000000002100000003reloc/majordomo/save_members.cgi  #!/usr/local/bin/perl
# save_members.cgi
# Store the members of some list

require './majordomo-lib.pl';
&ReadParse();
%access = &get_module_acl();
&can_edit_list(\%access, $in{'name'}) || &error($text{'edit_ecannot'});
$access{'edit'} || &error($text{'members_eedit'});
$list = &get_list($in{'name'}, &get_config());
$conf = &get_list_config($list->{'config'});
$pass = &find_value("admin_passwd", $conf);

# find the list owner's email address
$aliases_files = &get_aliases_file();
@aliases = &foreign_call("sendmail", "list_aliases", $aliases_files);
foreach $a (@aliases) {
	if ($a->{'name'} eq "owner-$in{'name'}" ||
	    $a->{'name'} eq "$in{'name'}-owner") {
		$owner = $a->{'values'}->[0];
		}
	}

&lock_file($list->{'members'});
if ($in{'update'}) {
	# save the new list of members
	$in{'members'} =~ s/\r//g;
	$in{'members'} =~ s/\n*$/\n/;
	open(MEMS, ">$list->{'members'}");
	print MEMS $in{'members'};
	close(MEMS);
	&unlock_file($list->{'members'});
	&webmin_log("members", undef, $in{'name'});
	}
elsif ($in{'add'}) {
	# call majordomo to subscribe an address
	$pass || &error($text{'members_esub'});
	$in{'addr_a'} =~ /^(\S+)\@(\S+)\.(\S+)$/ ||
		&error($text{'members_esubaddr'});
	open(WRAPPER, "|$config{'program_dir'}/wrapper majordomo");
	printf WRAPPER "From: %s\n\n",
		$owner ? $owner : $in{'addr_a'};
	print WRAPPER "approve $pass subscribe $in{'name'} $in{'addr_a'}\n\n";
	close(WRAPPER);
	sleep(1);
	&unlock_file($list->{'members'});
	&webmin_log("subscribe", undef, $in{'name'},
		    { 'addr' => $in{'addr_a'} });
	}
elsif ($in{'remove'}) {
	# call majordomo to unsubscribe an address
	$pass || &error($text{'members_eunsub'});
	$in{'addr_r'} =~ /^(\S+)\@(\S+)\.(\S+)$/ ||
		&error($text{'members_eunsubaddr'});
	open(WRAPPER, "|$config{'program_dir'}/wrapper majordomo");
	printf WRAPPER "From: %s\n\n",
		$owner ? $owner : $in{'addr_r'};
	print WRAPPER "approve $pass unsubscribe $in{'name'} $in{'addr_r'}\n\n";
	close(WRAPPER);
	sleep(1);
	&unlock_file($list->{'members'});
	&webmin_log("unsubscribe", undef, $in{'name'},
		    { 'addr' => $in{'addr_r'} });
	}
&redirect("edit_list.cgi?name=$in{'name'}");

  0707010002726e000081e40000000000000002000000013ac038a200000500000000200000000000000000000000000000001e00000003reloc/majordomo/save_mesg.cgi #!/usr/local/bin/perl
# save_mesg.cgi
# Save message options

require './majordomo-lib.pl';
&ReadParse();
%access = &get_module_acl();
&can_edit_list(\%access, $in{'name'}) || &error($text{'edit_ecannot'});
$list = &get_list($in{'name'}, &get_config());
&lock_file($list->{'config'});
$conf = &get_list_config($list->{'config'});
&save_opt($conf, $list->{'config'}, "reply_to", \&check_reply);
&save_opt($conf, $list->{'config'}, "sender", \&check_sender);
&save_opt($conf, $list->{'config'}, "resend_host", \&check_host);
&save_opt($conf, $list->{'config'}, "subject_prefix");
&save_select($conf, $list->{'config'}, "precedence");
&save_choice($conf, $list->{'config'}, "purge_received");
&save_opt($conf, $list->{'config'}, "maxlength", \&check_maxlength);
&flush_file_lines();
&unlock_file($list->{'config'});
&webmin_log("mesg", undef, $in{'name'}, \%in);
&redirect("edit_list.cgi?name=$in{'name'}");

sub check_reply
{
return $_[0] =~ /^\S+$/ ? undef : $text{'mesg_ereply'};
}

sub check_sender
{
return $_[0] =~ /\@/ ? $text{'mesg_esender2'} :
       $_[0] =~ /^\S+$/ ? undef : $text{'mesg_esender'};
}

sub check_host
{
return $_[0] =~ /^[A-z0-9\-\.]+$/ ? undef : $text{'mesg_ehost'};
}

sub check_maxlength
{
return $_[0] =~ /^\d+$/ ? undef : $text{'mesg_emaxlength'};
}

0707010002726f000081e40000000000000002000000013ac038a2000002b6000000200000000000000000000000000000001e00000003reloc/majordomo/save_misc.cgi #!/usr/local/bin/perl
# save_misc.cgi
# Save miscellaneous options

require './majordomo-lib.pl';
&ReadParse();
%access = &get_module_acl();
&can_edit_list(\%access, $in{'name'}) || &error($text{'edit_ecannot'});
$list = &get_list($in{'name'}, &get_config());
&lock_file($list->{'config'});
$conf = &get_list_config($list->{'config'});
&save_choice($conf, $list->{'config'}, "mungedomain");
&save_choice($conf, $list->{'config'}, "debug");
&save_choice($conf, $list->{'config'}, "date_info");
&save_choice($conf, $list->{'config'}, "date_intro");
&flush_file_lines();
&unlock_file($list->{'config'});
&webmin_log("misc", undef, $in{'name'}, \%in);
&redirect("edit_list.cgi?name=$in{'name'}");

  07070100027270000081e40000000000000002000000013ac038a20000096b000000200000000000000000000000000000001e00000003reloc/majordomo/save_subs.cgi #!/usr/local/bin/perl
# save_subs.cgi
# Save subscription options

require './majordomo-lib.pl';
&ReadParse();
%access = &get_module_acl();
&can_edit_list(\%access, $in{'name'}) || &error($text{'edit_ecannot'});
$list = &get_list($in{'name'}, &get_config());
&lock_file($list->{'config'});
$conf = &get_list_config($list->{'config'});
&save_list_directive($conf, $list->{'config'}, "subscribe_policy",
		     $in{'subscribe_policy'}.$in{'subscribe_policy_c'});
&save_list_directive($conf, $list->{'config'}, "unsubscribe_policy",
		     $in{'unsubscribe_policy'});
&save_choice($conf, $list->{'config'}, "welcome");
&save_choice($conf, $list->{'config'}, "strip");
&save_choice($conf, $list->{'config'}, "announcements");
&save_choice($conf, $list->{'config'}, "administrivia");
&save_opt($conf, $list->{'config'}, "admin_passwd", \&check_pass);
&save_choice($conf, $list->{'config'}, "moderate");
&save_opt($conf, $list->{'config'}, "moderator", \&check_email);
&save_opt($conf, $list->{'config'}, "approve_passwd", \&check_pass);

$in{'owner'} =~ /^\S+$/ || &error($text{'subs_eowner'});
$in{'approval'} =~ /^\S+$/ || &error($text{'subs_eapproval'});
$aliases_files = &get_aliases_file();
&foreign_call("sendmail", "lock_alias_files", $aliases_files);
@aliases = &foreign_call("sendmail", "list_aliases", $aliases_files);
foreach $a (@aliases) {
	$listowner = $a if (lc($a->{'name'}) eq lc("$in{'name'}-owner"));
	$ownerlist = $a if (lc($a->{'name'}) eq lc("owner-$in{'name'}"));
	$approval = $a if (lc($a->{'name'}) eq lc("$in{'name'}-approval"));
	}
&foreign_call('sendmail', 'modify_alias', $listowner,
	      { 'name' => "$in{'name'}-owner",
		'values' => [ $in{'owner'} ],
		'enabled' => 1 }) if ($listowner);
&foreign_call('sendmail', 'modify_alias', $ownerlist,
	      { 'name' => "owner-$in{'name'}",
		'values' => [ $in{'owner'} ],
		'enabled' => 1 }) if ($ownerlist);
&foreign_call('sendmail', 'modify_alias', $approval,
	      { 'name' => "$in{'name'}-approval",
		'values' => [ $in{'approval'} ],
		'enabled' => 1 }) if ($approval);
&foreign_call("sendmail", "unlock_alias_files", $aliases_files);

&flush_file_lines();
&unlock_file($list->{'config'});
&webmin_log("subs", undef, $in{'name'});
&redirect("edit_list.cgi?name=$in{'name'}");

sub check_email
{
return $_[0] =~ /^\S+$/ ? undef : $text{'subs_emoderator'};
}

sub check_pass
{
return $_[0] =~ /^\S+$/ ? undef : $text{'subs_epasswd'};
}
 07070100027271000081a40000000000000002000000013ac038a2000005ce000000200000000000000000000000000000002400000003reloc/majordomo/useradmin_update.pl   
do './majordomo-lib.pl';
$conf = &get_config();
@lists = &list_lists($conf);

# useradmin_create_user(&details)
# Add a user to the mailing list
sub useradmin_create_user
{
foreach $l (@lists) {
	if ($config{"sync_$l"}) {
		local $dom = $config{"shost_$l"};
		$dom = &get_system_hostname() if (!$dom);
		local $list = &get_list($l, $conf);
		local $pass = &find_value("admin_passwd",
			   &get_list_config($list->{'config'}));
		&lock_file($list->{'members'});
		open(WRAPPER, "|$config{'program_dir'}/wrapper majordomo");
		print WRAPPER "From: $_[0]->{'user'}\@$dom\n\n";
		print WRAPPER "approve $pass subscribe $l ",
			      "$_[0]->{'user'}\@$dom\n\n";
		close(WRAPPER);
		sleep(1);
		&unlock_file($list->{'members'});
		}
	}
}

# useradmin_delete_user(&details)
# Delete a user from the mailing list
sub useradmin_delete_user
{
foreach $l (@lists) {
	if ($config{"sync_$l"}) {
		local $dom = $config{"shost_$l"};
		$dom = &get_system_hostname() if (!$dom);
		local $list = &get_list($l, $conf);
		local $pass = &find_value("admin_passwd",
			   &get_list_config($list->{'config'}));
		&lock_file($list->{'members'});
		open(WRAPPER, "|$config{'program_dir'}/wrapper majordomo");
		print WRAPPER "From: $_[0]->{'user'}\@$dom\n\n";
		print WRAPPER "approve $pass unsubscribe $l ",
			      "$_[0]->{'user'}\@$dom\n\n";
		close(WRAPPER);
		sleep(1);
		&unlock_file($list->{'members'});
		}
	}
}

# useradmin_modify_user(&details)
# Does nothing
sub useradmin_modify_user
{
}

1;

  0707010000bb4d000081e40000000000000002000000013ac0388600000def000000200000000000000000000000000000001100000003reloc/mime.types  # This is a comment. I love comments.

application/webmin-module	wbm
application/octet-stream	exe
application/activemessage
application/andrew-inset                       
application/applefile
application/atomicmail                         
application/dca-rft                            
application/dec-dx                             
application/mac-binhex40
application/macwriteii
application/msword		doc
application/news-message-id                    
application/news-transmission                  
application/octet-stream       bin             
application/oda                oda
application/pdf                pdf
application/postscript         ai eps ps       
application/remote-printing                    
application/rtf                rtf             
application/slate                              
application/x-mif      mif
application/wita                               
application/wordperfect5.1
application/x-csh              csh             
application/x-dvi              dvi             
application/x-hdf              hdf             
application/x-latex            latex           
application/x-netcdf           nc cdf          
application/x-sh               sh              
application/x-tcl              tcl             
application/x-tex              tex             
application/x-texinfo          texinfo texi   
application/x-troff            t tr roff       
application/x-troff-man        man             
application/x-troff-me         me              
application/x-troff-ms         ms              
application/x-wais-source      src             
application/x-zip-compressed   zip             
application/x-bcpio            bcpio           
application/x-cpio             cpio            
application/x-gtar             gtar            
application/x-shar             shar            
application/x-sv4cpio          sv4cpio         
application/x-sv4crc           sv4crc          
application/x-tar              tar             
application/x-ustar            ustar           
audio/basic                    au snd          
audio/x-aiff                   aif aiff aifc
audio/x-wav                    wav             
audio/midi		       mid
image/gif                      gif             
image/ief                      ief             
image/jpeg                     jpeg jpg jpe
image/tiff                     tiff tif        
image/x-cmu-raster             ras
image/x-portable-anymap        pnm             
image/x-portable-bitmap        pbm             
image/x-portable-graymap       pgm             
image/x-portable-pixmap        ppm             
image/x-rgb                    rgb
image/x-xbitmap                xbm             
image/x-xpixmap                xpm             
image/x-xwindowdump            xwd             
message/external-body
message/news
message/partial
message/rfc822
multipart/alternative
multipart/appledouble
multipart/digest
multipart/mixed
multipart/parallel
text/html                      html htm
text/x-sgml		       sgml sgm
text/plain                     txt
text/richtext                  rtx             
text/tab-separated-values      tsv             
text/x-setext                  etx             
video/mpeg                     mpeg mpg mpe    
video/quicktime                qt mov          
video/x-fli		       fli
video/x-msvideo                avi             
video/x-sgi-movie              movie           
application/x-director         dcr dir dxr
video/vdo		       vdo
application/x-javascript       js
application/photobubble	       bub
model/vrml		       wrl vrml
 0707010000bb4e000081a40000000000000002000000013ac03886000003ce000000200000000000000000000000000000001300000003reloc/miniserv.pem    -----BEGIN RSA PRIVATE KEY-----
MIIBOgIBAAJBANaRBV7X6DWUbTm8KBjjHx4CAHVSQCmei8QIwruVPngwOkEhsgzf
IT1IY6jyY3QM6a4ASl7xokoy5U4QZ8E/q40CAwEAAQJBAIwMLA0zr4UJVCGTBjj4
RZ84f0QUY3zG10Mk1LXLO/MFlRol+640x/PB76fPKP+Gx+88s8F6lcx7uV+jB0bM
F6ECIQD3aYxjgxLinAmTjZf5gJDm/5LeEogML7nJ+aXJs8oAFwIhAN4DnKUfjiim
pOowhaRqy8b9fjXG8L+SG/+KcZDsWzP7AiBO2gXTRVgEfwSSUUNJUo9b/8I4IqHX
eHJ3C6ip8zIC+wIgdhsVygHvblC4ip0le0IVBdb0vUcH6+GeY2MS5zXVjuECIEP0
GLnMXcQ02f8rQz0eeBYVHTNXKRMesgo3ZNcpDB2k
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIBNTCB4AIBADANBgkqhkiG9w0BAQQFADAmMRgwFgYDVQQKEw9XZWJtaW4gU29m
dHdhcmUxCjAIBgNVBAMUASowHhcNOTgwMTAzMTAzNDUwWhcNMDcxMDAzMTAzNDUw
WjAmMRgwFgYDVQQKEw9XZWJtaW4gU29mdHdhcmUxCjAIBgNVBAMUASowXDANBgkq
hkiG9w0BAQEFAANLADBIAkEA1pEFXtfoNZRtObwoGOMfHgIAdVJAKZ6LxAjCu5U+
eDA6QSGyDN8hPUhjqPJjdAzprgBKXvGiSjLlThBnwT+rjQIDAQABMA0GCSqGSIb3
DQEBBAUAA0EAFCoYeLlWcClpv2sSc7zIchsMR3DKeH/O1ZtfEezzkaonre78HeYV
wSQvuoVleb7A497TFcSB6+FON6azoVqPyQ==
-----END CERTIFICATE-----
  0707010000bb4f000081e40000000000000002000000013ac038860000b1ef000000200000000000000000000000000000001200000003reloc/miniserv.pl #!/usr/local/bin/perl
# A very simple perl web server used by Webmin

# Require basic libraries
package miniserv;
use Socket;
use POSIX;
use Sys::Hostname;

# Find and read config file
if (@ARGV != 1) {
	die "Usage: miniserv.pl <config file>";
	}
if ($ARGV[0] =~ /^\//) {
	$conf = $ARGV[0];
	}
else {
	chop($pwd = `pwd`);
	$conf = "$pwd/$ARGV[0]";
	}
open(CONF, $conf) || die "Failed to open config file $conf : $!";
while(<CONF>) {
	s/\r|\n//g;
	if (/^#/ || !/\S/) { next; }
	/^([^=]+)=(.*)$/;
	$name = $1; $val = $2;
	$name =~ s/^\s+//g; $name =~ s/\s+$//g;
	$val =~ s/^\s+//g; $val =~ s/\s+$//g;
	$config{$name} = $val;
	}
close(CONF);

# Check is SSL is enabled and available
if ($config{'ssl'}) {
	eval "use Net::SSLeay";
	if (!$@) {
		$use_ssl = 1;
		# These functions only exist for SSLeay 1.0
		eval "Net::SSLeay::SSLeay_add_ssl_algorithms()";
		eval "Net::SSLeay::load_error_strings()";
		if (defined(&Net::SSLeay::X509_STORE_CTX_get_current_cert) &&
		    defined(&Net::SSLeay::CTX_load_verify_locations) &&
		    defined(&Net::SSLeay::CTX_set_verify)) {
			$client_certs = 1;
			}
		}
	}

# Check if the syslog module is available to log hacking attempts
if ($config{'syslog'}) {
	eval "use Sys::Syslog qw(:DEFAULT setlogsock)";
	if (!$@) {
		$use_syslog = 1;
		}
	}

# check if the PAM module is available to authenticate
eval "use Authen::PAM";
if (!$@) {
	# check if the PAM authentication can be used by opening a handle
	if (! ref($pamh = new Authen::PAM("webmin", "root", \&pam_conv_func))) {
		print STDERR "PAM module available, but error during init !\n";
		print STDERR "Disabling PAM functions.\n";
		}
	else {
		$use_pam = 1;
		}
	}

# Get miniserv's perl path and location
$miniserv_path = $0;
open(SOURCE, $miniserv_path);
<SOURCE> =~ /^#!(\S+)/; $perl_path = $1;
close(SOURCE);
@miniserv_argv = @ARGV;

# Check vital config options
%vital = ("port", 80,
	  "root", "./",
	  "server", "MiniServ/0.01",
	  "index_docs", "index.html index.htm index.cgi",
	  "addtype_html", "text/html",
	  "addtype_txt", "text/plain",
	  "addtype_gif", "image/gif",
	  "addtype_jpg", "image/jpeg",
	  "addtype_jpeg", "image/jpeg",
	  "realm", "MiniServ",
	  "session_login", "/session_login.cgi"
	 );
foreach $v (keys %vital) {
	if (!$config{$v}) {
		if ($vital{$v} eq "") {
			die "Missing config option $v";
			}
		$config{$v} = $vital{$v};
		}
	}
if (!$config{'sessiondb'}) {
	$config{'pidfile'} =~ /^(.*)\/[^\/]+$/;
	$config{'sessiondb'} = "$1/sessiondb";
	}
die "Session authentication cannot be used in inetd mode"
	if ($config{'inetd'} && $config{'session'});

# init days and months for http_date
@weekday = ( "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" );
@month = ( "Jan", "Feb", "Mar", "Apr", "May", "Jun",
	   "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" );

# Change dir to the server root
chdir($config{'root'});
$user_homedir = (getpwuid($<))[7];

# Read users file
if ($config{'userfile'}) {
	open(USERS, $config{'userfile'});
	while(<USERS>) {
		s/\r|\n//g;
		local @user = split(/:/, $_);
		$users{$user[0]} = $user[1];
		$certs{$user[0]} = $user[3] if ($user[3]);
		if ($user[4] =~ /^allow\s+(.*)/) {
			$allow{$user[0]} = [ &to_ipaddress(split(/\s+/, $1)) ];
			}
		elsif ($user[4] =~ /^deny\s+(.*)/) {
			$deny{$user[0]} = [ &to_ipaddress(split(/\s+/, $1)) ];
			}
		}
	close(USERS);
	}

# Setup SSL if possible and if requested
if ($use_ssl) {
	$ssl_ctx = Net::SSLeay::CTX_new() ||
		die "Failed to create SSL context : $!";
	$client_certs = 0 if (!$config{'ca'} || !%certs);
	if ($client_certs) {
		Net::SSLeay::CTX_load_verify_locations(
			$ssl_ctx, $config{'ca'}, "");
		Net::SSLeay::CTX_set_verify(
			$ssl_ctx, &Net::SSLeay::VERIFY_PEER, \&verify_client);
		}

	Net::SSLeay::CTX_use_RSAPrivateKey_file(
		$ssl_ctx, $config{'keyfile'},
		&Net::SSLeay::FILETYPE_PEM) || die "Failed to open SSL key";
	Net::SSLeay::CTX_use_certificate_file(
		$ssl_ctx, $config{'keyfile'},
		&Net::SSLeay::FILETYPE_PEM);
	}

# Setup syslog support if possible and if requested
if ($use_syslog) {
	openlog("webmin", "cons,pid,ndelay", "daemon");
	}

# Read MIME types file and add extra types
if ($config{"mimetypes"} ne "") {
	open(MIME, $config{"mimetypes"});
	while(<MIME>) {
		chop; s/#.*$//;
		if (/^(\S+)\s+(.*)$/) {
			$type = $1; @exts = split(/\s+/, $2);
			foreach $ext (@exts) {
				$mime{$ext} = $type;
				}
			}
		}
	close(MIME);
	}
foreach $k (keys %config) {
	if ($k !~ /^addtype_(.*)$/) { next; }
	$mime{$1} = $config{$k};
	}
	
# get the time zone
if ($config{'log'}) {
	local(@gmt, @lct, $days, $hours, $mins);
	@make_date_marr = ("Jan", "Feb", "Mar", "Apr", "May", "Jun",
		 	   "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
	@gmt = gmtime(time());
	@lct = localtime(time());
	$days = $lct[3] - $gmt[3];
	$hours = ($days < -1 ? 24 : 1 < $days ? -24 : $days * 24) +
		 $lct[2] - $gmt[2];
	$mins = $hours * 60 + $lct[1] - $gmt[1];
	$timezone = ($mins < 0 ? "-" : "+"); $mins = abs($mins);
	$timezone .= sprintf "%2.2d%2.2d", $mins/60, $mins%60;
	}

if ($config{'inetd'}) {
	# We are being run from inetd - go direct to handling the request
	$SIG{'HUP'} = 'IGNORE';
	$SIG{'TERM'} = 'DEFAULT';
	$SIG{'PIPE'} = 'DEFAULT';
	open(SOCK, "+>&STDIN");

	# Check if it is time for the logfile to be cleared
	if ($config{'logclear'}) {
		local $write_logtime = 0;
		local @st = stat("$config{'logfile'}.time");
		if (@st) {
			if ($st[9]+$config{'logtime'}*60*60 < time()){
				# need to clear log
				$write_logtime = 1;
				unlink($config{'logfile'});
				}
			}
		else { $write_logtime = 1; }
		if ($write_logtime) {
			open(LOGTIME, ">$config{'logfile'}.time");
			print LOGTIME time(),"\n";
			close(LOGTIME);
			}
		}

	# Initialize SSL for this connection
	if ($use_ssl) {
		$ssl_con = Net::SSLeay::new($ssl_ctx);
		Net::SSLeay::set_fd($ssl_con, fileno(SOCK));
		#Net::SSLeay::use_RSAPrivateKey_file(
		#	$ssl_con, $config{'keyfile'},
		#	&Net::SSLeay::FILETYPE_PEM);
		#Net::SSLeay::use_certificate_file(
		#	$ssl_con, $config{'keyfile'},
		#	&Net::SSLeay::FILETYPE_PEM);
		Net::SSLeay::accept($ssl_con) || exit;
		}

	# Work out the hostname for this web server
	if (!$config{'host'}) {
		($myport, $myaddr) =
			unpack_sockaddr_in(getsockname(SOCK));
		$myname = gethostbyaddr($myaddr, AF_INET);
		if ($myname eq "") {
			$myname = inet_ntoa($myaddr);
			}
		$host = $myname;
		}
	else { $host = $config{'host'}; }
	$port = $config{'port'};

	while(&handle_request(getpeername(SOCK), getsockname(SOCK))) { }
	close(SOCK);
	exit;
	}

# Open main socket
$proto = getprotobyname('tcp');
socket(MAIN, PF_INET, SOCK_STREAM, $proto) ||
	die "Failed to open main socket : $!";
setsockopt(MAIN, SOL_SOCKET, SO_REUSEADDR, pack("l", 1));
$baddr = $config{"bind"} ? inet_aton($config{"bind"}) : INADDR_ANY;
for($i=0; $i<5; $i++) {
	last if (bind(MAIN, sockaddr_in($config{port}, $baddr)));
	sleep(1);
	}
die "Failed to bind port $config{port} : $!" if ($i == 5);
listen(MAIN, SOMAXCONN);

if ($config{'listen'}) {
	# Open the socket that allows other webmin servers to find this one
	$proto = getprotobyname('udp');
	if (socket(LISTEN, PF_INET, SOCK_DGRAM, $proto)) {
		setsockopt(LISTEN, SOL_SOCKET, SO_REUSEADDR, pack("l", 1));
		bind(LISTEN, sockaddr_in($config{'listen'}, INADDR_ANY));
		listen(LISTEN, SOMAXCONN);
		}
	else {
		print STDERR "Failed to open listening socket : $!\n";
		$config{'listen'} = 0;
		}
	}


# Split from the controlling terminal
if (fork()) { exit; }
setsid();

# write out the PID file
open(PIDFILE, "> $config{'pidfile'}");
printf PIDFILE "%d\n", getpid();
close(PIDFILE);

# Start the log-clearing process, if needed. This checks every minute
# to see if the log has passed its reset time, and if so clears it
if ($config{'logclear'}) {
	if (!($logclearer = fork())) {
		while(1) {
			local $write_logtime = 0;
			local @st = stat("$config{'logfile'}.time");
			if (@st) {
				if ($st[9]+$config{'logtime'}*60*60 < time()){
					# need to clear log
					$write_logtime = 1;
					unlink($config{'logfile'});
					}
				}
			else { $write_logtime = 1; }
			if ($write_logtime) {
				open(LOGTIME, ">$config{'logfile'}.time");
				print LOGTIME time(),"\n";
				close(LOGTIME);
				}
			sleep(5*60);
			}
		exit;
		}
	push(@childpids, $logclearer);
	}

# Setup the logout time dbm if needed
if ($config{'session'}) {
	eval "use SDBM_File";
	dbmopen(%sessiondb, $config{'sessiondb'}, 0700);
	eval { $sessiondb{'1111111111'} = 'foo bar' };
	if ($@) {
		dbmclose(%sessiondb);
		eval "use NDBM_File";
		dbmopen(%sessiondb, $config{'sessiondb'}, 0700);
		}
	}

# Run the main loop
$SIG{'HUP'} = 'miniserv::trigger_restart';
$SIG{'TERM'} = 'miniserv::term_handler';
$SIG{'PIPE'} = 'IGNORE';
@deny = &to_ipaddress(split(/\s+/, $config{"deny"}));
@allow = &to_ipaddress(split(/\s+/, $config{"allow"}));
$p = 0;
while(1) {
	# wait for a new connection, or a message from a child process
	undef($rmask);
	vec($rmask, fileno(MAIN), 1) = 1;
	if ($config{'passdelay'} || $config{'session'}) {
		for($i=0; $i<@passin; $i++) {
			vec($rmask, fileno($passin[$i]), 1) = 1;
			}
		}
	vec($rmask, fileno(LISTEN), 1) = 1 if ($config{'listen'});

	local $sel = select($rmask, undef, undef, 10);
	if ($need_restart) { &restart_miniserv(); }
	local $time_now = time();

	# Clean up finished processes
	local($pid);
	do {	$pid = waitpid(-1, WNOHANG);
		@childpids = grep { $_ != $pid } @childpids;
		} while($pid > 0);

	# run the unblocking procedure to check if enough time has passed to
	# unblock hosts that heve been blocked because of password failures
	if ($config{'blockhost_failures'}) {
		$i = 0;
		while ($i <= $#deny) {
			if ($blockhosttime{$deny[$i]} && $config{'blockhost_time'} != 0 &&
			    ($time_now - $blockhosttime{$deny[$i]}) >= $config{'blockhost_time'}) {
				# the host can be unblocked now
				$hostfail{$deny[$i]} = 0;
				splice(@deny, $i, 1);
				}
			$i++;
			}
		}

	if ($config{'session'}) {
		# Remove sessions with more than 7 days of inactivity
		foreach $s (keys %sessiondb) {
			local ($user, $ltime) = split(/\s+/, $sessiondb{$s});
			if ($time_now - $ltime > 7*24*60*60) {
				delete($sessiondb{$s});
				}
			}
		}
	next if ($sel <= 0);
	if (vec($rmask, fileno(MAIN), 1)) {
		# got new connection
		$acptaddr = accept(SOCK, MAIN);
		if (!$acptaddr) { next; }

		# create pipes
		if ($config{'passdelay'} || $config{'session'}) {
			$PASSINr = "PASSINr$p"; $PASSINw = "PASSINw$p";
			$PASSOUTr = "PASSOUTr$p"; $PASSOUTw = "PASSOUTw$p";
			$p++;
			pipe($PASSINr, $PASSINw);
			pipe($PASSOUTr, $PASSOUTw);
			select($PASSINw); $| = 1; select($PASSINr); $| = 1;
			select($PASSOUTw); $| = 1; select($PASSOUTw); $| = 1;
			}
		select(STDOUT);

		# Check username of connecting user
		local ($peerp, $peera) = unpack_sockaddr_in($acptaddr);
		$localauth_user = undef;
		if ($config{'localauth'} && inet_ntoa($peera) eq "127.0.0.1") {
			if (open(TCP, "/proc/net/tcp")) {
				# Get the info direct from the kernel
				while(<TCP>) {
					s/^\s+//;
					local @t = split(/[\s:]+/, $_);
					if ($t[1] eq '0100007F' &&
					    $t[2] eq sprintf("%4.4X", $peerp)) {
						$localauth_user = getpwuid($t[11]);
						last;
						}
					}
				close(TCP);
				}
			else {
				# Call lsof for the info
				local $lsofpid = open(LSOF,
					"$config{'localauth'} -i TCP\@127.0.0.1:$peerp |");
				while(<LSOF>) {
					if (/^(\S+)\s+(\d+)\s+(\S+)/ &&
					    $2 != $$ && $2 != $lsofpid) {
						$localauth_user = $3;
						}
					}
				close(LSOF);
				}
			}

		# fork the subprocess
		if (!($handpid = fork())) {
			# setup signal handlers
			$SIG{'TERM'} = 'DEFAULT';
			$SIG{'PIPE'} = 'DEFAULT';
			#$SIG{'CHLD'} = 'IGNORE';
			$SIG{'HUP'} = 'IGNORE';

			# Initialize SSL for this connection
			if ($use_ssl) {
				$ssl_con = Net::SSLeay::new($ssl_ctx);
				Net::SSLeay::set_fd($ssl_con, fileno(SOCK));
				#Net::SSLeay::use_RSAPrivateKey_file(
				#	$ssl_con, $config{'keyfile'},
				#	&Net::SSLeay::FILETYPE_PEM);
				#Net::SSLeay::use_certificate_file(
				#	$ssl_con, $config{'keyfile'},
				#	&Net::SSLeay::FILETYPE_PEM);
				Net::SSLeay::accept($ssl_con) || exit;
				}

			# close useless pipes
			if ($config{'passdelay'} || $config{'session'}) {
				foreach $p (@passin) { close($p); }
				foreach $p (@passout) { close($p); }
				close($PASSINr); close($PASSOUTw);
				}
			close(MAIN);

			# Work out the hostname for this web server
			if (!$config{'host'}) {
				($myport, $myaddr) =
					unpack_sockaddr_in(getsockname(SOCK));
				$myname = gethostbyaddr($myaddr, AF_INET);
				if ($myname eq "") {
					$myname = inet_ntoa($myaddr);
					}
				$host = $myname;
				}
			else { $host = $config{'host'}; }
			$port = $config{'port'};

			local $switched = 0;
			if ($config{'remoteuser'} && $localauth_user && !$<) {
				# Switch to the UID of the remote user
				local @u = getpwnam($localauth_user);
				if (@u) {
					$( = $u[3]; $) = "$u[3] $u[3]";
					$< = $> = $u[2];
					$switched = 1;
					}
				}
			if ($config{'switchuser'} && !$< && !$switched) {
				# Switch to the UID of server user
				local @u = getpwnam($config{'switchuser'});
				if (@u) {
					$( = $u[3]; $) = "$u[3] $u[3]";
					$< = $> = $u[2];
					}
				}

			while(&handle_request($acptaddr, getsockname(SOCK))) { }
			shutdown(SOCK, 1);
			close(SOCK);
			close($PASSINw); close($PASSOUTw);
			exit;
			}
		push(@childpids, $handpid);
		if ($config{'passdelay'} || $config{'session'}) {
			close($PASSINw); close($PASSOUTr);
			push(@passin, $PASSINr); push(@passout, $PASSOUTw);
			}
		close(SOCK);
		}

	if ($config{'listen'} && vec($rmask, fileno(LISTEN), 1)) {
		# Got UDP packet from another webmin server
		local $rcvbuf;
		local $from = recv(LISTEN, $rcvbuf, 1024, 0);
		next if (!$from);
		local $fromip = inet_ntoa((unpack_sockaddr_in($from))[1]);
		local $toip = inet_ntoa((unpack_sockaddr_in(
					 getsockname(LISTEN)))[1]);
		if ((!@deny || !&ip_match($fromip, $toip, @deny)) &&
		    (!@allow || &ip_match($fromip, $toip, @allow))) {
			send(LISTEN, "$config{'host'}:$config{'port'}:".
				     "$use_ssl", 0, $from);
			}
		}

	# check for password-timeout messages from subprocesses
	for($i=0; $i<@passin; $i++) {
		if (vec($rmask, fileno($passin[$i]), 1)) {
			# this sub-process is asking about a password
			$infd = $passin[$i]; $outfd = $passout[$i];
			$inline = <$infd>;
			if ($inline =~ /^delay\s+(\S+)\s+(\S+)\s+(\d+)/) {
				# Got a delay request from a subprocess.. for
				# valid logins, there is no delay (to prevent
				# denial of service attacks), but for invalid
				# logins the delay increases with each failed
				# attempt.
				if ($3) {
					# login OK.. no delay
					print $outfd "0 0\n";
					$hostfail{$2} = 0;
					}
				else {
					# login failed..
					$hostfail{$2}++;
					# add the host to the block list if necessary
 					if ($config{'blockhost_failures'} &&
					    $hostfail{$2} >= $config{'blockhost_failures'}) {
						push(@deny, $2);					
						$blockhosttime{$2} = $time_now;
						$blocked = 1;
						if ($use_syslog) {
							local $logtext = "Security alert: Host $2 ".
							  "blocked after $config{'blockhost_failures'} ".
							  "failed logins for user $1";
							syslog("crit", $logtext);
							}
						}
					else {
						$blocked = 0;
						}
					$dl = $userdlay{$1} -
					      int(($time_now - $userlast{$1})/50);
					$dl = $dl < 0 ? 0 : $dl+1;
					print $outfd "$dl $blocked\n";
					$userdlay{$1} = $dl;
					}
				$userlast{$1} = $time_now;
				}
			elsif ($inline =~ /^verify\s+(\S+)/) {
				# Verifying a session ID
				local $session_id = $1;
				if (!defined($sessiondb{$session_id})) {
					print $outfd "0 0\n";
					}
				else {
					local ($user, $ltime) = split(/\s+/, $sessiondb{$session_id});
					if ($config{'logouttime'} &&
					    $time_now - $ltime > $config{'logouttime'}*60) {
						print $outfd "1 ",$time_now - $ltime,"\n";
						delete($sessiondb{$session_id});
						}
					else {
						print $outfd "2 $user\n";
						$sessiondb{$session_id} = "$user $time_now";
						}
					}
				}
			elsif ($inline =~ /^new\s+(\S+)\s+(\S+)/) {
				# Creating a new session
				$sessiondb{$1} = "$2 $time_now";
				}
			elsif ($inline =~ /^delete\s+(\S+)/) {
				# Logging out a session
				print $outfd $sessiondb{$1} ? 1 : 0,"\n";
				delete($sessiondb{$1});
				}
			else {
				# close pipe
				close($infd); close($outfd);
				$passin[$i] = $passout[$i] = undef;
				}
			}
		}
	@passin = grep { defined($_) } @passin;
	@passout = grep { defined($_) } @passout;
	}

# handle_request(remoteaddress, localaddress)
# Where the real work is done
sub handle_request
{
$acptip = inet_ntoa((unpack_sockaddr_in($_[0]))[1]);
$localip = inet_ntoa((unpack_sockaddr_in($_[1]))[1]);
if ($config{'loghost'}) {
	$acpthost = gethostbyaddr(inet_aton($acptip), AF_INET);
	$acpthost = $acptip if (!$acpthost);
	}
else {
	$acpthost = $acptip;
	}
$datestr = &http_date(time());
$ok_code = 200;
$ok_message = "Document follows";

# Read the HTTP request and headers
($reqline = &read_line()) =~ s/\r|\n//g;
if (!($reqline =~ /^(GET|POST|HEAD)\s+(.*)\s+HTTP\/1\..$/)) {
	&http_error(400, "Bad Request");
	}
$method = $1; $request_uri = $page = $2;
%header = ();
while(1) {
	($headline = &read_line()) =~ s/\r|\n//g;
	if ($headline eq "") { last; }
	($headline =~ /^(\S+):\s+(.*)$/) || &http_error(400, "Bad Header");
	$header{lc($1)} = $2;
	}
if (defined($header{'host'})) {
	if ($header{'host'} =~ /^([^:]+):([0-9]+)$/) { $host = $1; $port = $2; }
	else { $host = $header{'host'}; }
	}
undef(%in);
if ($page =~ /^([^\?]+)\?(.*)$/) {
	# There is some query string information
	$page = $1;
	$querystring = $2;
	if ($querystring !~ /=/) {
		$queryargs = $querystring;
		$queryargs =~ s/\+/ /g;
    		$queryargs =~ s/%(..)/pack("c",hex($1))/ge;
		$querystring = "";
		}
	else {
		# Parse query-string parameters
		local @in = split(/\&/, $querystring);
		foreach $i (@in) {
			local ($k, $v) = split(/=/, $i, 2);
			$k =~ s/\+/ /g; $k =~ s/%(..)/pack("c",hex($1))/ge;
			$v =~ s/\+/ /g; $v =~ s/%(..)/pack("c",hex($1))/ge;
			$in{$k} = $v;
			}
		}
	}
$posted_data = undef;
if ($method eq 'POST' && $header{'content-type'} eq 'application/x-www-form-urlencoded') {
	# Read in posted query string information
	$posted_data = &read_data($header{'content-length'});
	local @in = split(/\&/, $posted_data);
	foreach $i (@in) {
		local ($k, $v) = split(/=/, $i, 2);
		$k =~ s/\+/ /g; $k =~ s/%(..)/pack("c",hex($1))/ge;
		$v =~ s/\+/ /g; $v =~ s/%(..)/pack("c",hex($1))/ge;
		$in{$k} = $v;
		}
	}

# replace %XX sequences in page
$page =~ s/%(..)/pack("c",hex($1))/ge;

# check address against access list
if (@deny && &ip_match($acptip, $localip, @deny) ||
    @allow && !&ip_match($acptip, $localip, @allow)) {
	&http_error(403, "Access denied for $acptip");
	return 0;
	}

# check for the logout flag file, and if existant deny authentication
if ($config{'logout'} && -r $config{'logout'}.$in{'miniserv_logout_id'}) {
	$deny_authentication++;
	open(LOGOUT, $config{'logout'}.$in{'miniserv_logout_id'});
	chop($count = <LOGOUT>);
	close(LOGOUT);
	$count--;
	if ($count > 0) {
		open(LOGOUT, ">$config{'logout'}$in{'miniserv_logout_id'}");
		print LOGOUT "$count\n";
		close(LOGOUT);
		}
	else {
		unlink($config{'logout'}.$in{'miniserv_logout_id'});
		}
	}

# Check for password if needed
if (%users) {
	$validated = 0;
	$blocked = 0;

	# Session authentication is never used for connections by
	# another webmin server
	if ($header{'user-agent'} =~ /webmin/i) {
		$config{'session'} = 0;
		}

	# check for SSL authentication
	if ($use_ssl && $verified_client) {
		$peername = Net::SSLeay::X509_NAME_oneline(
				Net::SSLeay::X509_get_subject_name(
					Net::SSLeay::get_peer_certificate(
						$ssl_con)));
		foreach $u (keys %certs) {
			if ($certs{$u} eq $peername) {
				$authuser = $u;
				$validated = 2;
				last;
				}
			}
		}

	# Check for normal HTTP authentication
	if (!$validated && !$deny_authentication && !$config{'session'} &&
	    $header{authorization} =~ /^basic\s+(\S+)$/i) {
		# authorization given..
		($authuser, $authpass) = split(/:/, &b64decode($1));
		$validated = &validate_user($authuser, $authpass);

		if ($config{'passdelay'} && !$config{'inetd'}) {
			# check with main process for delay
			print $PASSINw "delay $authuser $acptip $validated\n";
			<$PASSOUTr> =~ /(\d+) (\d+)/;
			$blocked = $2;
			sleep($1);
			}
		}

	# Check for new session validation
	if ($config{'session'} && !$deny_authentication && $page eq $config{'session_login'}) {
		local $ok = &validate_user($in{'user'}, $in{'pass'});

		# check with main process for delay
		if ($config{'passdelay'} && $in{'user'}) {
			print $PASSINw "delay $in{'user'} $acptip $ok\n";
			<$PASSOUTr> =~ /(\d+) (\d+)/;
			$blocked = $2;
			sleep($1);
			}

		if ($ok) {
			# Logged in OK! Tell the main process about the new SID
			local $sid = time();
			local $mul = 1;
			foreach $c (split(//, crypt($in{'pass'}, substr($$, -2)))) {
				$sid += ord($c) * $mul;
				$mul *= 3;
				}
			print $PASSINw "new $sid $in{'user'}\n";

			# Set cookie and redirect
			&write_data("HTTP/1.0 302 Moved Temporarily\r\n");
			&write_data("Date: $datestr\r\n");
			&write_data("Server: $config{'server'}\r\n");
			$portstr = $port == 80 && !$use_ssl ? "" :
				   $port == 443 && $use_ssl ? "" : ":$port";
			$prot = $use_ssl ? "https" : "http";
			if ($in{'save'}) {
				&write_data("Set-Cookie: sid=$sid; path=/; expires=\"Fri, 1-Jan-2038 00:00:01\"\r\n");
				}
			else {
				&write_data("Set-Cookie: sid=$sid; path=/\r\n");
				}
			&write_data("Location: $prot://$host$portstr$in{'page'}\r\n");
			&write_keep_alive(0);
			&write_data("\r\n");
			&log_request($acpthost, $authuser, $reqline, 302, 0);
			return 0;
			}
		elsif ($in{'logout'} && $header{'cookie'} =~ /sid=(\d+)/) {
			# Logout clicked .. remove the session
			print $PASSINw "delete $1\n";
			local $dummy = <$PASSINr>;
			$logout = 1;
			$already_session_id = undef;
			}
		else {
			# Login failed .. display the form again
			$failed_user = $in{'user'};
			$request_uri = $in{'page'};
			$already_session_id = undef;
			}
		}

	# Check for an existing session
	if ($config{'session'} && !$validated) {
		if ($already_session_id) {
			$session_id = $already_session_id;
			$authuser = $already_authuser;
			$validated = 1;
			}
		elsif (!$deny_authentication && $header{'cookie'} =~ /sid=(\d+)/) {
			$session_id = $1;
			print $PASSINw "verify $session_id\n";
			<$PASSOUTr> =~ /(\d+)\s+(\S+)/;
			if ($1 == 2) {
				# Valid session continuation
				$validated = 1;
				$authuser = $2;
				$already_session_id = $session_id;
				$already_authuser = $authuser;
				}
			elsif ($1 == 1) {
				# Session timed out
				$timed_out = $2;
				}
			else {
				# Invalid session ID .. don't set verified
				}
			}
		}

	# Check for local authentication
	if ($localauth_user) {
		if (defined($users{$localauth_user})) {
			$validated = 1;
			$authuser = $localauth_user;
			}
		else {
			$localauth_user = undef;
			}
		}

	if (!$validated) {
		if ($blocked == 0) {
			# No password given.. ask
			if ($config{'session'}) {
				# Force CGI for session login
				$validated = 1;
				if ($logout) {
					$querystring .= "&logout=1&page=/";
					}
				else {
					$querystring = "page=".&urlize($request_uri);
					}
				$querystring .= "&failed=$failed_user" if ($failed_user);
				$querystring .= "&timed_out=$timed_out" if ($timed_out);
				$queryargs = "";
				$page = $config{'session_login'};
				}
			else {
				# Ask for login with HTTP authentication
				&write_data("HTTP/1.0 401 Unauthorized\r\n");
				&write_data("Date: $datestr\r\n");
				&write_data("Server: $config{'server'}\r\n");
				&write_data("WWW-authenticate: Basic ".
					   "realm=\"$config{'realm'}\"\r\n");
				&write_keep_alive(0);
				&write_data("Content-type: text/html\r\n");
				&write_data("\r\n");
				&reset_byte_count();
				&write_data("<html>\n");
				&write_data("<head><title>Unauthorized</title></head>\n");
				&write_data("<body><h1>Unauthorized</h1>\n");
				&write_data("A password is required to access this\n");
				&write_data("web server. Please try again. <p>\n");
				&write_data("</body></html>\n");
				&log_request($acpthost, undef, $reqline, 401, &byte_count());
				return 0;
				}
			}
		else {
			# when the host has been blocked, give it an error message
			&http_error(403, "Access denied for $acptip. The host has been blocked "
				."because of too many authentication failures.");
			}
		}

	# Check per-user IP access control
	if ($deny{$authuser} && &ip_match($acptip, $localip, @{$deny{$authuser}}) ||
	    $allow{$authuser} && !&ip_match($acptip, $localip, @{$allow{$authuser}})) {
		&http_error(403, "Access denied for $acptip");
		return 0;
		}
	}

# Figure out what kind of page was requested
rerun:
$simple = &simplify_path($page, $bogus);
$simple =~ s/[\000-\037]//g;
if ($bogus) {
	&http_error(400, "Invalid path");
	}
undef($full);
if ($config{'preroot'}) {
	# Look in the template root directory first
	$is_directory = 1;
	$sofar = "";
	$full = $config{"preroot"} . $sofar;
	$scriptname = $simple;
	foreach $b (split(/\//, $simple)) {
		if ($b ne "") { $sofar .= "/$b"; }
		$full = $config{"preroot"} . $sofar;
		@st = stat($full);
		if (!@st) { undef($full); last; }

		# Check if this is a directory
		if (-d $full) {
			# It is.. go on parsing
			$is_directory = 1;
			next;
			}
		else { $is_directory = 0; }

		# Check if this is a CGI program
		if (&get_type($full) eq "internal/cgi") {
			$pathinfo = substr($simple, length($sofar));
			$pathinfo .= "/" if ($page =~ /\/$/);
			$scriptname = $sofar;
			last;
			}
		}
	if ($full) {
		if ($sofar eq '') {
			$cgi_pwd = $config{'root'};
			}
		else {
			"$config{'root'}$sofar" =~ /^(.*\/)[^\/]+$/;
			$cgi_pwd = $1;
			}
		if ($is_directory) {
			# Check for index files in the directory
			foreach $idx (split(/\s+/, $config{"index_docs"})) {
				$idxfull = "$full/$idx";
				if (-r $idxfull && !(-d $idxfull)) {
					$full = $idxfull;
					$is_directory = 0;
					$scriptname .= "/"
						if ($scriptname ne "/");
					last;
					}
				}
			}
		}
	}
if (!$full || $is_directory) {
	$sofar = "";
	$full = $config{"root"} . $sofar;
	$scriptname = $simple;
	foreach $b (split(/\//, $simple)) {
		if ($b ne "") { $sofar .= "/$b"; }
		$full = $config{"root"} . $sofar;
		@st = stat($full);
		if (!@st) { &http_error(404, "File not found"); }

		# Check if this is a directory
		if (-d $full) {
			# It is.. go on parsing
			next;
			}

		# Check if this is a CGI program
		if (&get_type($full) eq "internal/cgi") {
			$pathinfo = substr($simple, length($sofar));
			$pathinfo .= "/" if ($page =~ /\/$/);
			$scriptname = $sofar;
			last;
			}
		}
	$full =~ /^(.*\/)[^\/]+$/; $cgi_pwd = $1;
	}

# check filename against denyfile regexp
local $denyfile = $config{'denyfile'};
if ($denyfile && $full =~ /$denyfile/) {
	&http_error(403, "Access denied to $page");
	return 0;
	}

# Reached the end of the path OK.. see what we've got
if (-d $full) {
	# See if the URL ends with a / as it should
	if ($page !~ /\/$/) {
		# It doesn't.. redirect
		&write_data("HTTP/1.0 302 Moved Temporarily\r\n");
		$portstr = $port == 80 && !$use_ssl ? "" :
			   $port == 443 && $use_ssl ? "" : ":$port";
		&write_data("Date: $datestr\r\n");
		&write_data("Server: $config{server}\r\n");
		$prot = $use_ssl ? "https" : "http";
		&write_data("Location: $prot://$host$portstr$page/\r\n");
		&write_keep_alive(0);
		&write_data("\r\n");
		&log_request($acpthost, $authuser, $reqline, 302, 0);
		return 0;
		}
	# A directory.. check for index files
	foreach $idx (split(/\s+/, $config{"index_docs"})) {
		$idxfull = "$full/$idx";
		if (-r $idxfull && !(-d $idxfull)) {
			$cgi_pwd = $full;
			$full = $idxfull;
			$scriptname .= "/" if ($scriptname ne "/");
			last;
			}
		}
	}
if (-d $full) {
	# This is definately a directory.. list it
	&write_data("HTTP/1.0 $ok_code $ok_message\r\n");
	&write_data("Date: $datestr\r\n");
	&write_data("Server: $config{server}\r\n");
	&write_data("Content-type: text/html\r\n");
	&write_keep_alive(0);
	&write_data("\r\n");
	&reset_byte_count();
	&write_data("<h1>Index of $simple</h1>\n");
	&write_data("<pre>\n");
	&write_data(sprintf "%-35.35s %-20.20s %-10.10s\n",
			"Name", "Last Modified", "Size");
	&write_data("<hr>\n");
	opendir(DIR, $full);
	while($df = readdir(DIR)) {
		if ($df =~ /^\./) { next; }
		(@stbuf = stat("$full/$df")) || next;
		if (-d "$full/$df") { $df .= "/"; }
		@tm = localtime($stbuf[9]);
		$fdate = sprintf "%2.2d/%2.2d/%4.4d %2.2d:%2.2d:%2.2d",
				$tm[3],$tm[4]+1,$tm[5]+1900,
				$tm[0],$tm[1],$tm[2];
		$len = length($df); $rest = " "x(35-$len);
		&write_data(sprintf 
		 "<a href=\"%s\">%-${len}.${len}s</a>$rest %-20.20s %-10.10s\n",
		 $df, $df, $fdate, $stbuf[7]);
		}
	closedir(DIR);
	&log_request($acpthost, $authuser, $reqline, $ok_code, &byte_count());
	return 0;
	}

# CGI or normal file
local $rv;
if (&get_type($full) eq "internal/cgi") {
	# A CGI program to execute
	$envtz = $ENV{"TZ"};
	$envuser = $ENV{"USER"};
	$envpath = $ENV{"PATH"};
	foreach (keys %ENV) { delete($ENV{$_}); }
	$ENV{"PATH"} = $envpath if ($envpath);
	$ENV{"TZ"} = $envtz if ($envtz);
	$ENV{"USER"} = $envuser if ($envuser);
	$ENV{"HOME"} = $user_homedir;
	$ENV{"SERVER_SOFTWARE"} = $config{"server"};
	$ENV{"SERVER_NAME"} = $host;
	$ENV{"SERVER_ADMIN"} = $config{"email"};
	$ENV{"SERVER_ROOT"} = $config{"root"};
	$ENV{"SERVER_PORT"} = $port;
	$ENV{"REMOTE_HOST"} = $acpthost;
	$ENV{"REMOTE_ADDR"} = $acptip;
	$ENV{"REMOTE_USER"} = $authuser if (defined($authuser));
	$ENV{"SSL_USER"} = $peername if ($validated == 2);
	$ENV{"DOCUMENT_ROOT"} = $config{"root"};
	$ENV{"GATEWAY_INTERFACE"} = "CGI/1.1";
	$ENV{"SERVER_PROTOCOL"} = "HTTP/1.0";
	$ENV{"REQUEST_METHOD"} = $method;
	$ENV{"SCRIPT_NAME"} = $scriptname;
	$ENV{"REQUEST_URI"} = $request_uri;
	$ENV{"PATH_INFO"} = $pathinfo;
	$ENV{"PATH_TRANSLATED"} = "$config{root}/$pathinfo";
	$ENV{"QUERY_STRING"} = $querystring;
	$ENV{"MINISERV_CONFIG"} = $conf;
	$ENV{"HTTPS"} = "ON" if ($use_ssl);
	$ENV{"SESSION_ID"} = $session_id if ($session_id);
	$ENV{"LOCAL_USER"} = $localauth_user if ($localauth_user);
	if (defined($header{"content-length"})) {
		$ENV{"CONTENT_LENGTH"} = $header{"content-length"};
		}
	if (defined($header{"content-type"})) {
		$ENV{"CONTENT_TYPE"} = $header{"content-type"};
		}
	foreach $h (keys %header) {
		($hname = $h) =~ tr/a-z/A-Z/;
		$hname =~ s/\-/_/g;
		$ENV{"HTTP_$hname"} = $header{$h};
		}
	$ENV{"PWD"} = $cgi_pwd;
	foreach $k (keys %config) {
		if ($k =~ /^env_(\S+)$/) {
			$ENV{$1} = $config{$k};
			}
		}

	# Check if the CGI can be handled internally
	open(CGI, $full);
	local $first = <CGI>;
	close(CGI);
	$first =~ s/[#!\r\n]//g;
	$nph_script = ($full =~ /\/nph-([^\/]+)$/);
	if (!$config{'forkcgis'} && $first eq $perl_path && $] >= 5.004) {
		# setup environment for eval
		chdir($ENV{"PWD"});
		@ARGV = split(/\s+/, $queryargs);
		$0 = $full;
		if ($posted_data) {
			# Already read the post input
			$postinput = $posted_data;
			}
		elsif ($method eq "POST") {
			$clen = $header{"content-length"};
			while(length($postinput) < $clen) {
				$buf = &read_data($clen - length($postinput));
				if (!length($buf)) {
					&http_error(500, "Failed to read ".
							 "POST request");
					}
				$postinput .= $buf;
				}
			}
		$SIG{'CHLD'} = 'DEFAULT';
		eval {
			# Have SOCK closed if the perl exec's something
			use Fcntl;
			fcntl(SOCK, F_SETFD, FD_CLOEXEC);
			};
		shutdown(SOCK, 0);

		if ($config{'log'}) {
			open(MINISERVLOG, ">>$config{'logfile'}");
			chmod(0600, $config{'logfile'});
			}
		$doing_eval = 1;
		eval {
			package main;
			tie(*STDOUT, 'miniserv');
			tie(*STDIN, 'miniserv');
			do $miniserv::full;
			die $@ if ($@);
			};
		$doing_eval = 0;
		if ($@) {
			# Error in perl!
			&http_error(500, "Perl execution failed", $@);
			}
		elsif (!$doneheaders && !$nph_script) {
			&http_error(500, "Missing Headers");
			}
		#close(SOCK);
		$rv = 0;
		}
	else {
		# fork the process that actually executes the CGI
		pipe(CGIINr, CGIINw);
		pipe(CGIOUTr, CGIOUTw);
		pipe(CGIERRr, CGIERRw);
		if (!($cgipid = fork())) {
			chdir($ENV{"PWD"});
			close(SOCK);
			open(STDIN, "<&CGIINr");
			open(STDOUT, ">&CGIOUTw");
			open(STDERR, ">&CGIERRw");
			close(CGIINw); close(CGIOUTr); close(CGIERRr);
			exec($full, split(/\s+/, $queryargs));
			print STDERR "Failed to exec $full : $!\n";
			exit;
			}
		close(CGIINr); close(CGIOUTw); close(CGIERRw);

		# send post data
		if ($posted_data) {
			# already read the posted data
			print CGIINw $posted_data;
			}
		elsif ($method eq "POST") {
			$got = 0; $clen = $header{"content-length"};
			while($got < $clen) {
				$buf = &read_data($clen-$got);
				if (!length($buf)) {
					kill('TERM', $cgipid);
					&http_error(500, "Failed to read ".
							 "POST request");
					}
				$got += length($buf);
				print CGIINw $buf;
				}
			}
		close(CGIINw);
		shutdown(SOCK, 0);

		if (!$nph_script) {
			# read back cgi headers
			select(CGIOUTr); $|=1; select(STDOUT);
			$got_blank = 0;
			while(1) {
				$line = <CGIOUTr>;
				$line =~ s/\r|\n//g;
				if ($line eq "") {
					if ($got_blank || %cgiheader) { last; }
					$got_blank++;
					next;
					}
				($line =~ /^(\S+):\s+(.*)$/) ||
					&http_error(500, "Bad Header",
						    &read_errors(CGIERRr));
				$cgiheader{lc($1)} = $2;
				}
			if ($cgiheader{"location"}) {
				&write_data("HTTP/1.0 302 Moved Temporarily\r\n");
				&write_data("Date: $datestr\r\n");
				&write_data("Server: $config{'server'}\r\n");
				&write_keep_alive(0);
				# ignore the rest of the output. This is a hack, but
				# is necessary for IE in some cases :(
				close(CGIOUTr); close(CGIERRr);
				}
			elsif ($cgiheader{"content-type"} eq "") {
				&http_error(500, "Missing Content-Type Header",
					    &read_errors(CGIERRr));
				}
			else {
				&write_data("HTTP/1.0 $ok_code $ok_message\r\n");
				&write_data("Date: $datestr\r\n");
				&write_data("Server: $config{'server'}\r\n");
				&write_keep_alive(0);
				}
			foreach $h (keys %cgiheader) {
				&write_data("$h: $cgiheader{$h}\r\n");
				}
			&write_data("\r\n");
			}
		&reset_byte_count();
		while($line = <CGIOUTr>) {
			&write_data($line);
			}
		close(CGIOUTr); close(CGIERRr);
		$rv = 0;
		}
	}
else {
	# A file to output
	local @st = stat($full);
	open(FILE, $full) || &http_error(404, "Failed to open file");
	&write_data("HTTP/1.0 $ok_code $ok_message\r\n");
	&write_data("Date: $datestr\r\n");
	&write_data("Server: $config{server}\r\n");
	&write_data("Content-type: ".&get_type($full)."\r\n");
	&write_data("Content-length: $st[7]\r\n");
	&write_data("Last-Modified: ".&http_date($st[9])."\r\n");
	&write_keep_alive();
	&write_data("\r\n");
	&reset_byte_count();
	while(read(FILE, $buf, 1024) > 0) {
		&write_data($buf);
		}
	close(FILE);
	$rv = &check_keep_alive();
	}

# log the request
&log_request($acpthost, $authuser, $reqline,
	     $cgiheader{"location"} ? "302" : $ok_code, &byte_count());
return $rv;
}

# http_error(code, message, body, [dontexit])
sub http_error
{
close(CGIOUT);
local $eh = $error_handler_recurse ? undef :
	    $config{"error_handler_$_[0]"} ? $config{"error_handler_$_[0]"} :
	    $config{'error_handler'} ? $config{'error_handler'} : undef;
if ($eh) {
	# Call a CGI program for the error
	$page = "/$eh";
	$querystring = "code=$_[0]&message=".&urlize($_[1]).
		       "&body=".&urlize($_[2]);
	$error_handler_recurse++;
	$ok_code = $_[0];
	$ok_message = $_[1];
	goto rerun;
	}
else {
	# Use the standard error message display
	&write_data("HTTP/1.0 $_[0] $_[1]\r\n");
	&write_data("Server: $config{server}\r\n");
	&write_data("Date: $datestr\r\n");
	&write_data("Content-type: text/html\r\n");
	&write_keep_alive(0);
	&write_data("\r\n");
	&reset_byte_count();
	&write_data("<h1>Error - $_[1]</h1>\n");
	if ($_[2]) {
		&write_data("<pre>$_[2]</pre>\n");
		}
	}
&log_request($acpthost, $authuser, $reqline, $_[0], &byte_count())
	if ($reqline);
shutdown(SOCK, 1);
exit if (!$_[3]);
}

sub get_type
{
if ($_[0] =~ /\.([A-z0-9]+)$/) {
	$t = $mime{$1};
	if ($t ne "") {
		return $t;
		}
	}
return "text/plain";
}

# simplify_path(path, bogus)
# Given a path, maybe containing stuff like ".." and "." convert it to a
# clean, absolute form.
sub simplify_path
{
local($dir, @bits, @fixedbits, $b);
$dir = $_[0];
$dir =~ s/^\/+//g;
$dir =~ s/\/+$//g;
@bits = split(/\/+/, $dir);
@fixedbits = ();
$_[1] = 0;
foreach $b (@bits) {
        if ($b eq ".") {
                # Do nothing..
                }
        elsif ($b eq "..") {
                # Remove last dir
                if (scalar(@fixedbits) == 0) {
                        $_[1] = 1;
                        return "/";
                        }
                pop(@fixedbits);
                }
        else {
                # Add dir to list
                push(@fixedbits, $b);
                }
        }
return "/" . join('/', @fixedbits);
}

# b64decode(string)
# Converts a string from base64 format to normal
sub b64decode
{
    local($str) = $_[0];
    local($res);
    $str =~ tr|A-Za-z0-9+=/||cd;
    $str =~ s/=+$//;
    $str =~ tr|A-Za-z0-9+/| -_|;
    while ($str =~ /(.{1,60})/gs) {
        my $len = chr(32 + length($1)*3/4);
        $res .= unpack("u", $len . $1 );
    }
    return $res;
}

# ip_match(remoteip, localip, [match]+)
# Checks an IP address against a list of IPs, networks and networks/masks
sub ip_match
{
local(@io, @mo, @ms, $i, $j);
@io = split(/\./, $_[0]);
local $hn;
if (!defined($hn = $ip_match_cache{$_[0]})) {
	$hn = gethostbyaddr(inet_aton($_[0]), AF_INET);
	$hn = "" if ((&to_ipaddress($hn))[0] ne $_[0]);
	$ip_match_cache{$_[0]} = $hn;
	}
for($i=2; $i<@_; $i++) {
	local $mismatch = 0;
	if ($_[$i] =~ /^(\S+)\/(\S+)$/) {
		# Compare with network/mask
		@mo = split(/\./, $1); @ms = split(/\./, $2);
		for($j=0; $j<4; $j++) {
			if ((int($io[$j]) & int($ms[$j])) != int($mo[$j])) {
				$mismatch = 1;
				}
			}
		}
	elsif ($_[$i] =~ /^\*(\S+)$/) {
		# Compare with hostname regexp
		$mismatch = 1 if ($hn !~ /$1$/);
		}
	elsif ($_[$i] eq 'LOCAL') {
		# Compare with local network
		local @lo = split(/\./, $_[1]);
		if ($lo[0] < 128) {
			$mismatch = 1 if ($lo[0] != $io[0]);
			}
		elsif ($lo[0] < 192) {
			$mismatch = 1 if ($lo[0] != $io[0] ||
					  $lo[1] != $io[1]);
			}
		else {
			$mismatch = 1 if ($lo[0] != $io[0] ||
					  $lo[1] != $io[1] ||
					  $lo[2] != $io[2]);
			}
		}
	else {
		# Compare with IP or network
		@mo = split(/\./, $_[$i]);
		while(@mo && !$mo[$#mo]) { pop(@mo); }
		for($j=0; $j<@mo; $j++) {
			if ($mo[$j] != $io[$j]) {
				$mismatch = 1;
				}
			}
		}
	return 1 if (!$mismatch);
	}
return 0;
}

# restart_miniserv()
# Called when a SIGHUP is received to restart the web server. This is done
# by exec()ing perl with the same command line as was originally used
sub restart_miniserv
{
close(SOCK); close(MAIN);
foreach $p (@passin) { close($p); }
foreach $p (@passout) { close($p); }
if ($logclearer) { kill('TERM', $logclearer);	}
exec($perl_path, $miniserv_path, @miniserv_argv);
die "Failed to restart miniserv with $perl_path $miniserv_path";
}

sub trigger_restart
{
$need_restart = 1;
}

sub to_ipaddress
{
local (@rv, $i);
foreach $i (@_) {
	if ($i =~ /(\S+)\/(\S+)/ || $i =~ /^\*\S+$/ ||
	    $i eq 'LOCAL') { push(@rv, $i); }
	else { push(@rv, join('.', unpack("CCCC", inet_aton($i)))); }
	}
return @rv;
}

# read_line()
# Reads one line from SOCK or SSL
sub read_line
{
local($idx, $more, $rv);
if ($use_ssl) {
	while(($idx = index($read_buffer, "\n")) < 0) {
		# need to read more..
		if (!($more = Net::SSLeay::read($ssl_con))) {
			# end of the data
			$rv = $read_buffer;
			undef($read_buffer);
			return $rv;
			}
		$read_buffer .= $more;
		}
	$rv = substr($read_buffer, 0, $idx+1);
	$read_buffer = substr($read_buffer, $idx+1);
	return $rv;
	}
else { return <SOCK>; }
}

# read_data(length)
# Reads up to some amount of data from SOCK or the SSL connection
sub read_data
{
if ($use_ssl) {
	local($rv);
	if (length($read_buffer)) {
		$rv = $read_buffer;
		undef($read_buffer);
		return $rv;
		}
	else {
		return Net::SSLeay::read($ssl_con, $_[0]);
		}
	}
else {
	local($buf);
	read(SOCK, $buf, $_[0]) || return undef;
	return $buf;
	}
}

# write_data(data)
# Writes a string to SOCK or the SSL connection
sub write_data
{
if ($use_ssl) {
	Net::SSLeay::write($ssl_con, $_[0]);
	}
else {
	syswrite(SOCK, $_[0], length($_[0]));
	}
$write_data_count += length($_[0]);
}

# reset_byte_count()
sub reset_byte_count { $write_data_count = 0; }

# byte_count()
sub byte_count { return $write_data_count; }

# log_request(hostname, user, request, code, bytes)
sub log_request
{
if ($config{'log'}) {
	local(@tm, $dstr, $user, $ident, $headers);
	if ($config{'logident'}) {
		# add support for rfc1413 identity checking here
		}
	else { $ident = "-"; }
	@tm = localtime(time());
	$dstr = sprintf "%2.2d/%s/%4.4d:%2.2d:%2.2d:%2.2d %s",
			$tm[3], $make_date_marr[$tm[4]], $tm[5]+1900,
	                $tm[2], $tm[1], $tm[0], $timezone;
	$user = $_[1] ? $_[1] : "-";
	if (fileno(MINISERVLOG)) {
		seek(MINISERVLOG, 0, 2);
		}
	else {
		open(MINISERVLOG, ">>$config{'logfile'}");
		chmod(0600, $config{'logfile'});
		}
	foreach $h (split(/\s+/, $config{'logheaders'})) {
		$headers .= " $h=\"$header{$h}\"";
		}
	print MINISERVLOG "$_[0] $ident $user [$dstr] \"$_[2]\" ",
			  "$_[3] $_[4]$headers\n";
	close(MINISERVLOG);
	}
}

# read_errors(handle)
# Read and return all input from some filehandle
sub read_errors
{
local($fh, $_, $rv);
$fh = $_[0];
while(<$fh>) { $rv .= $_; }
return $rv;
}

sub write_keep_alive
{
local $mode;
if (@_) { $mode = $_[0]; }
else { $mode = &check_keep_alive(); }
&write_data("Connection: ".($mode ? "Keep-Alive" : "close")."\r\n");
}

sub check_keep_alive
{
return $header{'connection'} =~ /keep-alive/i;
}

sub term_handler
{
if (@childpids) {
	kill('TERM', @childpids);
	}
exit(1);
}

sub http_date
{
local @tm = gmtime($_[0]);
return sprintf "%s, %d %s %d %2.2d:%2.2d:%2.2d GMT",
		$weekday[$tm[6]], $tm[3], $month[$tm[4]], $tm[5]+1900,
		$tm[2], $tm[1], $tm[0];
}

sub TIEHANDLE
{
my $i; bless \$i, shift;
}
 
sub WRITE
{
$r = shift;
my($buf,$len,$offset) = @_;
&write_to_sock(substr($buf, $offset, $len));
}
 
sub PRINT
{
$r = shift;
$$r++;
&write_to_sock(@_);
}
 
sub PRINTF
{
shift;
my $fmt = shift;
&write_to_sock(sprintf $fmt, @_);
}
 
sub READ
{
$r = shift;
substr($_[0], $_[2], $_[1]) = substr($postinput, $postpos, $_[1]);
$postpos += $_[1];
}

sub OPEN
{
print STDERR "open() called - should never happen!\n";
}
 
sub READLINE
{
if ($postpos >= length($postinput)) {
	return undef;
	}
local $idx = index($postinput, "\n", $postpos);
if ($idx < 0) {
	local $rv = substr($postinput, $postpos);
	$postpos = length($postinput);
	return $rv;
	}
else {
	local $rv = substr($postinput, $postpos, $idx-$postpos+1);
	$postpos = $idx+1;
	return $rv;
	}
}
 
sub GETC
{
return $postpos >= length($postinput) ? undef
				      : substr($postinput, $postpos++, 1);
}
 
sub CLOSE { }
 
sub DESTROY { }

# write_to_sock(data, ...)
sub write_to_sock
{
foreach $d (@_) {
	if ($doneheaders || $miniserv::nph_script) {
		&write_data($d);
		}
	else {
		$headers .= $d;
		while(!$doneheaders && $headers =~ s/^(.*)(\r)?\n//) {
			if ($1 =~ /^(\S+):\s+(.*)$/) {
				$cgiheader{lc($1)} = $2;
				}
			elsif ($1 !~ /\S/) {
				$doneheaders++;
				}
			else {
				&http_error(500, "Bad Header");
				}
			}
		if ($doneheaders) {
			if ($cgiheader{"location"}) {
				&write_data(
					"HTTP/1.0 302 Moved Temporarily\r\n");
				&write_data("Date: $datestr\r\n");
				&write_data("Server: $config{server}\r\n");
				&write_keep_alive(0);
				}
			elsif ($cgiheader{"content-type"} eq "") {
				&http_error(500, "Missing Content-Type Header");
				}
			else {
				&write_data("HTTP/1.0 $ok_code $ok_message\r\n");
				&write_data("Date: $datestr\r\n");
				&write_data("Server: $config{server}\r\n");
				&write_keep_alive(0);
				}
			foreach $h (keys %cgiheader) {
				&write_data("$h: $cgiheader{$h}\r\n");
				}
			&write_data("\r\n");
			&reset_byte_count();
			&write_data($headers);
			}
		}
	}
}

sub verify_client
{
local $cert = Net::SSLeay::X509_STORE_CTX_get_current_cert($_[1]);
if ($cert) {
	local $errnum = Net::SSLeay::X509_STORE_CTX_get_error($_[1]);
	$verified_client = 1 if (!$errnum);
	}
return 1;
}

sub END
{
if ($doing_eval) {
	# A CGI program called exit! This is a horrible hack to 
	# finish up before really exiting
	close(SOCK);
	&log_request($acpthost, $authuser, $reqline,
		     $cgiheader{"location"} ? "302" : $ok_code, &byte_count());
	}
}

# urlize
# Convert a string to a form ok for putting in a URL
sub urlize {
  local($tmp, $tmp2, $c);
  $tmp = $_[0];
  $tmp2 = "";
  while(($c = chop($tmp)) ne "") {
	if ($c !~ /[A-z0-9]/) {
		$c = sprintf("%%%2.2X", ord($c));
		}
	$tmp2 = $c . $tmp2;
	}
  return $tmp2;
}

# validate_user(username, password)
sub validate_user
{
return 0 if (!$_[0] || !$users{$_[0]});
if ($users{$_[0]} eq 'x' && $use_pam) {
	$pam_username = $_[0];
	$pam_password = $_[1];
	local $pamh = new Authen::PAM("webmin", $pam_username, \&pam_conv_func);
	if (!ref($pamh)) {
		print STDERR "PAM init failed : $pamh\n";
		return 0;
		}
	local $pam_ret = $pamh->pam_authenticate();
	return $pam_ret == PAM_SUCCESS ? 1 : 0;
	}
else {
	return $users{$_[0]} eq crypt($_[1], $users{$_[0]}) ? 1 : 0;
	}
}

# the PAM conversation function for interactive logins
sub pam_conv_func
{
my @res;
while ( @_ ) {
	my $code = shift;
	my $msg = shift;
	my $ans = "";

	$ans = $pam_username if ($code == PAM_PROMPT_ECHO_ON() );
	$ans = $pam_password if ($code == PAM_PROMPT_ECHO_OFF() );

	push @res, PAM_SUCCESS();
	push @res, $ans;
	}
push @res, PAM_SUCCESS();
return @res;
}

 07070100007703000041ed0000000000000001000000053ac03c1b00000000000000200000000000000000000000000000000c00000003reloc/mount   07070100007704000081a40000000000000002000000013ac0388d00000000000000200000000000000000000000000000000f00000003reloc/mount/^1    07070100007705000081e40000000000000002000000013ac0388c0000dc44000000200000000000000000000000000000002000000003reloc/mount/cobalt-linux-lib.pl   # linux-lib.pl
# Mount table functions for linux

if (&has_command("amd")) {
	local $amd = &read_amd_conf();
	$amd_support = $amd =~ /\[\s*global\s*\]/i ? 2 : 1;
	}
$autofs_support = &has_command("automount");
if (&has_command("mount.smb")) {
	$smbfs_support = `mount.smb -v` =~ /username=/i ? 4 : 3;
	}
elsif (&has_command("mount.smbfs")) {
	$smbfs_support = `mount.smbfs -v` =~ /username=/i ? 4 : 3;
	}
elsif (&has_command("smbmount")) {
	$smbfs_support = `smbmount -v` =~ /Version\s+2/i ? 2 : 1;
	}
$swaps_support = -r "/proc/swaps";
if (&has_command("e2label") &&
    `mount --version 2>&1` =~ /(\d+)\.(\d+)/ && ($1 > 2 || $1==2 && $2 >= 10)) {
	$has_e2label = 1;
	}

# Return information about a filesystem, in the form:
#  directory, device, type, options, fsck_order, mount_at_boot
# If a field is unused or ignored, a - appears instead of the value.
# Swap-filesystems (devices or files mounted for VM) have a type of 'swap',
# and 'swap' in the directory field
sub list_mounts
{
return @list_mounts_cache if (@list_mounts_cache);
local(@rv, @p, @o, $_, $i, $j); $i = 0;

# Get /etc/fstab mounts
open(FSTAB, $config{fstab_file});
while(<FSTAB>) {
	local(@o, $at_boot);
	chop; s/#.*$//g;
	if (!/\S/ || /\signore\s/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "proc") { $p[0] = "proc"; }
	elsif ($p[2] eq "auto") { $p[2] = "*"; }
	elsif ($p[2] eq "swap") { $p[1] = "swap"; }
	elsif ($p[2] eq "smbfs") { $p[0] =~ s/\//\\/g; }
	$rv[$i] = [ $p[1], $p[0], $p[2] ];
	$rv[$i]->[5] = "yes";
	@o = split(/,/ , $p[3] eq "defaults" ? "" : $p[3]);
	if (($j = &indexof("noauto", @o)) >= 0) {
		# filesytem is not mounted at boot
		splice(@o, $j, 1);
		$rv[$i]->[5] = "no";
		}
	$rv[$i]->[3] = (@o ? join(',' , @o) : "-");
	$rv[$i]->[4] = (@p >= 5 ? $p[5] : 0);
	$i++;
	}
close(FSTAB);

if ($amd_support == 1) {
	# Get old automounter configuration, as used by redhat
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		@p = split(/\s+/, $1);
		for($j=0; $j<@p; $j+=2) {
			$rv[$i++] = [ $p[$j], $p[$j+1], "auto",
				      "-", 0, "yes" ];
			}
		}
	}
elsif ($amd_support == 2) {
	# Guess what? There's now a *new* amd config file format, introduced
	# in redhat 6.1 and caldera 2.3
	local @amd = &parse_amd_conf();
	local @sp = split(/:/, $amd[0]->{'opts'}->{'search_path'});
	local ($am, $sp);
	foreach $am (@amd) {
		local $mn = $am->{'opts'}->{'map_name'};
		if ($mn !~ /^\//) {
			foreach $sp (@sp) {
				if (-r "$sp/$mn") {
					$mn = "$sp/$mn";
					last;
					}
				}
			}
		$rv[$i++] = [ $am->{'dir'}, $mn,
			      "auto", $am->{'opts'}, 0, "yes" ]
			if ($am->{'dir'} ne 'global');
		}
	}

# Get kernel automounter configuration
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	while(<AUTO>) {
		chop;
		s/#.*$//g;
		if (/^\s*(\S+)\s+(\S+)\s*(.*)$/) {
			$rv[$i++] = [ $1, $2, "autofs",
				      ($3 ? &autofs_options($3) : "-"),
				      0, "yes" ];
			}
		}
	close(AUTO);
	}

@list_mounts_cache = @rv;
return @rv;
}


# create_mount(directory, device, type, options, fsck_order, mount_at_boot)
# Add a new entry to the fstab file, old or new automounter file
sub create_mount
{
local(@mlist, @amd, $_); local($opts);

if ($_[2] eq "auto") {
	if ($amd_support == 1) {
		# Adding an old automounter mount
		local $amd = &read_amd_conf();
		local $m = "$_[0] $_[1]";
		if ($amd =~ /MOUNTPTS=''/) {
			$amd =~ s/MOUNTPTS=''/MOUNTPTS='$m'/;
			}
		else {
			$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$1 $m'/;
			}
		&write_amd_conf($amd);
		}
	elsif ($amd_support == 2) {
		# Adding a new automounter mount
		open(AMD, ">>$config{'auto_file'}");
		print AMD "\n";
		print AMD "[ $_[0] ]\n";
		print AMD "map_name = $_[1]\n";
		close(AMD);
		}
	}
elsif ($_[2] eq "autofs") {
	# Adding a new automounter mount
	open(AUTO, ">> $config{'autofs_file'}");
	print AUTO "$_[0]  $_[1]";
	if ($_[3]) { print AUTO "  ",&autofs_args($_[3]); }
	print AUTO "\n";
	close(AUTO);
	}
else {
	# Adding a normal mount to the fstab file
	local $dev = $_[1];
	$dev =~ s/\\/\//g if ($_[2] eq 'smbfs');
	open(FSTAB, ">> $config{fstab_file}");
	print FSTAB "$dev  $_[0]  $_[2]";
	$opts = $_[3] eq "-" ? "" : $_[3];
	if ($_[5] eq "no") {
		$opts = join(',' , (split(/,/ , $opts) , "noauto"));
		}
	if ($opts eq "") { print FSTAB "  defaults"; }
	else { print FSTAB "  $opts"; }
	print FSTAB "  0  ";
	print FSTAB $_[4] eq "-" ? "0\n" : "$_[4]\n";
	close(FSTAB);
	}
undef(@list_mounts_cache);
}


# change_mount(num, directory, device, type, options, fsck_order, mount_at_boot)
# Change an existing permanent mount
sub change_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $line !~ /\signore\s/ && $i++ == $_[0]) {
		# Found the line to replace
		print FSTAB "$_[2]  $_[1]  $_[3]";
		$opts = $_[4] eq "-" ? "" : $_[4];
		if ($_[6] eq "no") {
			$opts = join(',' , (split(/,/ , $opts) , "noauto"));
			}
		if ($opts eq "") { print FSTAB "  defaults"; }
		else { print FSTAB "  $opts"; }
		print FSTAB "  0  ";
		print FSTAB $_[5] eq "-" ? "0\n" : "$_[5]\n";
		}
	else { print FSTAB $_,"\n"; }
	}
close(FSTAB);

if ($amd_support == 1) {
	# Update older amd configuration
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		# found mount points line..
		local @mpts = split(/\s+/, $1);
		for($j=0; $j<@mpts; $j+=2) {
			if ($i++ == $_[0]) {
				$mpts[$j] = $_[1];
				$mpts[$j+1] = $_[2];
				}
			}
		local $mpts = join(" ", @mpts);
		$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$mpts'/;
		}
	&write_amd_conf($amd);
	}
elsif ($amd_support == 2) {
	# Update new amd configuration
	local @amd = &parse_amd_conf();
	local $lref = &read_file_lines($config{'auto_file'});
	foreach $am (@amd) {
		next if ($am->{'dir'} eq 'global');
		if ($i++ == $_[0]) {
			local @nl = ( "[ $_[1] ]" );
			local %opts = %{$am->{'opts'}};
			$opts->{'map_name'} = $_[2];
			foreach $o (keys %opts) {
				push(@nl, "$o = $opts{$o}");
				}
			splice(@$lref, $am->{'line'},
			       $am->{'eline'} - $am->{'line'} + 1, @nl);
			}
		}
	&flush_file_lines();
	}

# Update autofs configuration
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	@auto = <AUTO>;
	close(AUTO);
	open(AUTO, "> $config{'autofs_file'}");
	foreach (@auto) {
		chop; ($line = $_) =~ s/#.*$//g;
		if ($line =~ /\S/ && $i++ == $_[0]) {
			print AUTO "$_[1]  $_[2]";
			if ($_[4]) { print AUTO "  ",&autofs_args($_[4]); }
			print AUTO "\n";
			}
		else { print AUTO $_,"\n"; }
		}
	close(AUTO);
	}
undef(@list_mounts_cache);
}


# delete_mount(index)
# Delete an existing permanent mount
sub delete_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line !~ /\S/ || $line =~ /\signore\s/ || $i++ != $_[0]) {
		# Don't delete this line
		print FSTAB $_,"\n";
		}
	}
close(FSTAB);

if ($amd_support == 1) {
	# Update older amd configuration
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		# found mount points line..
		local @mpts = split(/\s+/, $1);
		for($j=0; $j<@mpts; $j+=2) {
			if ($i++ == $_[0]) {
				splice(@mpts, $j, 2);
				}
			}
		local $mpts = join(" ", @mpts);
		$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$mpts'/;
		}
	&write_amd_conf($amd);
	}
elsif ($amd_support == 2) {
	# Update new amd configuration
	local @amd = &parse_amd_conf();
	local $lref = &read_file_lines($config{'auto_file'});
	foreach $am (@amd) {
		next if ($am->{'dir'} eq 'global');
		if ($i++ == $_[0]) {
			splice(@$lref, $am->{'line'},
			       $am->{'eline'} - $am->{'line'} + 1);
			}
		}
	&flush_file_lines();
	}

# Update AMD file
if ($amd_support) {
	open(AMD, $config{auto_file});
	@amd = <AMD>;
	close(AMD);
	open(AMD, "> $config{auto_file}");
	foreach (@amd) {
		if (/MOUNTPTS='(.*)'/) {
			# found mount points line..
			@mpts = split(/\s+/, $1);
			for($j=0; $j<@mpts; $j+=2) {
				if ($i++ != $_[0]) {
					push(@nmpts, $mpts[$j]);
					push(@nmpts, $mpts[$j+1]);
					}
				}
			print AMD "MOUNTPTS='".join(' ', @nmpts)."'\n";
			}
		else { print AMD $_; }
		}
	close(AMD);
	}

# Update autofs file
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	@auto = <AUTO>;
	close(AUTO);
	open(AUTO, "> $config{'autofs_file'}");
	foreach (@auto) {
		chop; ($line = $_) =~ s/#.*$//g;
		if ($line !~ /\S/ || $i++ != $_[0]) {
			# keep this line
			print AUTO $_,"\n";
			}
		}
	close(AUTO);
	}
undef(@list_mounts_cache);
}


# list_mounted()
# Return a list of all the currently mounted filesystems and swap files.
# The list is in the form:
#  directory device type options
sub list_mounted
{
return @list_mounted_cache if (@list_mounted_cache);
local(@rv, @p, @o, $mo, $_, %smbopts);
local @mounts = &list_mounts();

&read_smbopts();
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	chop;
	s/#.*$//g; if (!/\S/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "auto" || $p[0] =~ /^\S+:\(pid\d+\)$/) {
		# Automounter map.. turn the map= option into the device
		@o = split(/,/ , $p[3]);
		($mo) = grep {/^map=/} (@o);
		$mo =~ /^map=(.*)$/; $p[0] = $1;
		$p[3] = join(',' , grep {!/^map=/} (@o));
		$p[2] = "auto";
		}
	elsif ($p[2] eq "autofs") {
		# Kernel automounter map.. use the pid to find the map
		$p[0] =~ /automount\(pid(\d+)\)/ || next;
		$out = `ps hwwww $1`;
		$out =~ /automount\s+(.*)\s*(\S+)\s+(file|program|yp)(,\S+)?\s+(\S+)/ || next;
		$p[0] = $5;
		$p[3] = $1 ? &autofs_options($1) : "-";
		}
	elsif ($p[2] eq "smbfs") {
		# Change from //FOO/BAR to \\foo\bar
		$p[0] =~ s/\//\\/g;
		$p[0] = lc($p[0]);
		$p[3] = $smbopts{$p[1]};
		}
	elsif ($p[2] eq "proc") {
		# The source for proc mounts is always proc
		$p[0] = "proc";
		}
	if ($p[2] eq 'ext2' && $has_e2label) {
		# Check for a label on this partition, and there is one
		# and this filesystem is in fstab with the label, change
		# the device.
		local $label = `e2label $p[0] 2>^1`;
		if (!$?) {
			chop($label);
			foreach $m (@mounts) {
				if ($m->[0] eq $p[1] &&
				    $m->[1] eq "LABEL=$label") {
					$p[0] = "LABEL=$label";
					last;
					}
				}
			}
		}
	# check fstab for a mount on the same dir which is a symlink
	# to the device
	local @st = stat($p[0]);
	foreach $m (@mounts) {
		if ($m->[0] eq $p[1]) {
			local @fst = stat($m->[1]);
			if ($fst[0] == $st[0] && $fst[1] == $st[1]) {
				# symlink to the same place!
				$p[0] = $m->[1];
				last;
				}
			}
		}
	push(@rv, [ $p[1], $p[0], $p[2], $p[3] ]);
	}
close(MTAB);
open(SWAPS, "/proc/swaps");
while(<SWAPS>) {
	chop;
	if (/^(\/\S+)\s+/) {
		push(@rv, [ "swap", $1, "swap", "-" ]);
		}
	}
close(SWAPS);
@list_mounted_cache = @rv;
return @rv;
}


# mount_dir(directory, device, type, options)
# Mount a new directory from some device, with some options. Returns 0 if ok,
# or an error string if failed
sub mount_dir
{
local($out, $opts, $shar, %options, %smbopts);
if ($_[2] eq "swap") {
	# Use swapon to add the swap space..
	$out = &backquote_logged("swapon $_[1] 2>&1");
	if ($out =~ /Invalid argument/) {
		# looks like this swap partition isn't ready yet.. set it up
		$out = &backquote_logged("mkswap $_[1] 2>&1");
		if ($?) { return "mkswap failed : <pre>$out</pre>"; }
		$out = &backquote_logged("swapon $_[1] 2>&1");
		}
	if ($?) { return "<pre>$out</pre>"; }
	}
elsif ($_[2] eq "auto") {
	# Old automounter filesystem
	$out = &backquote_logged("amd $_[0] $_[1] >/dev/null 2>/dev/null");
	if ($?) { return $text{'linux_eamd'}; }
	}
elsif ($_[2] eq "autofs") {
	# New automounter filesystem
	$opts = &autofs_args($_[3]);
	$type = $_[1] !~ /^\// ? "yp" :
		(-x $_[1]) ? "program" : "file";
	$out = &backquote_logged("automount $opts $_[0] $type $_[1] 2>&1");
	if ($?) { return &text('linux_eauto', "<pre>$out</pre>"); }
	}
elsif ($_[2] eq "smbfs") {
	local $shar = $_[1];
	$shar =~ s/\\/\//g;
	if ($smbfs_support >= 3) {
		# SMB filesystem mounted with mount command
		$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
		$out = &backquote_logged("mount -t $_[2] $opts $shar $_[0] 2>&1");
		if ($? || $out =~ /failed/i) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "mount -t $_[2] $opts $shar $_[0] : <pre>$out</pre>";
			}
		}
	elsif ($smbfs_support == 2) {
		# SMB filesystem mounted with version 2.x smbmount
		&parse_options("smbfs", $_[3]);
		$opts =
		    ($options{'user'} ? "-U $options{'user'} " : "").
		    ($options{'passwd'} ? "" : "-N ").
		    ($options{'workgroup'} ? "-W $options{'workgroup'} " : "").
		    ($options{'clientname'} ? "-n $options{'clientname'} " : "").
		    ($options{'machinename'} ? "-I $options{'machinename'} " : "");
		&foreign_require("proc", "proc-lib.pl");
		local ($fh, $fpid) = &foreign_call(
			"proc", "pty_process_exec_logged", "sh", "-c",
			"smbmount $shar $_[0] -d 0 $opts");
		if ($options{'passwd'}) {
			local $w = &wait_for($fh, "word:");
			if ($w < 0) {
				&system_logged("umount $_[0] >/dev/null 2>&1");
				return $text{'linux_esmbconn'};
				}
			local $p = "$options{'passwd'}\n";
			syswrite($fh, $p, length($p));
			}
		local $got;
		while(<$fh>) {
			$got .= $_;
			}
		if ($got =~ /failed/) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "<pre>$got</pre>\n";
			}
		close($fh);
		}
	elsif ($smbfs_support == 1) {
		# SMB filesystem mounted with older smbmount
		&parse_options("smbfs", $_[3]);
		$shortname = &get_system_hostname();
		if ($shortname =~ /^([^\.]+)\.(.+)$/) { $shortname = $1; }
		$opts =
		   ($options{servername} ? "-s $options{servername} " : "").
		   ($options{clientname} ? "-c $options{clientname} "
					 : "-c $shortname ").
		   ($options{machinename} ? "-I $options{machinename} " : "").
		   ($options{user} ? "-U $options{user} " : "").
		   ($options{passwd} ? "-P $options{passwd} " : "-n ").
		   ($options{uid} ? "-u $options{uid} " : "").
		   ($options{gid} ? "-g $options{gid} " : "").
		   ($options{fmode} ? "-f $options{fmode} " : "").
		   ($options{dmode} ? "-d $options{dmode} " : "");
		$out = &backquote_logged("smbmount $shar $_[0] $opts 2>&1");
		if ($out) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "<pre>$out</pre>";
			}
		}
	&read_smbopts();
	$smbopts{$_[0]} = $_[3] eq "-" ? "dummy=1" : $_[3];
	&write_smbopts();
	}
else {
	# some filesystem supported by mount
	$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
	if ($_[1] =~ /LABEL=(.*)/) {
		$cmd = "mount -t $_[2] -L $1 $opts $_[0]";
		}
	else {
		$cmd = "mount -t $_[2] $opts $_[1] $_[0]";
		}
	$out = &backquote_logged("$cmd 2>&1");
	if ($?) { return "<pre>$cmd : $out</pre>"; }
	}
undef(@list_mounted_cache);
return 0;
}


# unmount_dir(directory, device, type)
# Unmount a directory that is currently mounted. Returns 0 if ok,
# or an error string if failed
sub unmount_dir
{
local($out, %smbopts, $dir);
if ($_[2] eq "swap") {
	# Use swapoff to remove the swap space..
	$out = &backquote_logged("swapoff $_[1]");
	if ($?) { return "<pre>$out</pre>"; }
	}
elsif ($_[2] eq "auto") {
	# Kill the amd process
	$dir = $_[0];
	if (`cat /etc/mtab` =~ /:\(pid([0-9]+)\)\s+$dir\s+(auto|nfs)\s+/) {
		&kill_logged('TERM', $1) || return $text{'linux_ekillamd'};
		}
	sleep(2);
	}
elsif ($_[2] eq "autofs") {
	# Kill the automount process
	$dir = $_[0];
	`cat /etc/mtab` =~ /automount\(pid([0-9]+)\)\s+$dir\s+autofs\s+/;
	&kill_logged('TERM', $1) || return $text{'linux_ekillauto'};
	sleep(2);
	}
else {
	$out = &backquote_logged("umount $_[0] 2>&1");
	if ($?) { return "<pre>$out</pre>"; }
	if ($_[2] eq "smbfs") {
		# remove options from list
		&read_smbopts();
		delete($smbopts{$_[0]});
		&write_smbopts();
		}
	}
undef(@list_mounted_cache);
return 0;
}


# mount_modes(type)
# Given a filesystem type, returns 4 numbers that determine how the file
# system can be mounted, and whether it can be fsck'd
#  0 - cannot be permanently recorded
#	(smbfs under linux before 2.2)
#  1 - can be permanently recorded, and is always mounted at boot
#	(swap under linux)
#  2 - can be permanently recorded, and may or may not be mounted at boot
#	(most normal filesystems)
# The second is:
#  0 - mount is always permanent => mounted when saved
#	(swap under linux before 2.2)
#  1 - doesn't have to be permanent
#	(normal fs types)
# The third is:
#  0 - cannot be fsck'd at boot time
#  1 - can be be fsck'd at boot
# The fourth is:
#  0 - can be unmounted
#  1 - cannot be unmounted
sub mount_modes
{
if ($_[0] eq "swap")
	{ return (1, $swaps_support ? 1 : 0, 0, 0); }
elsif ($_[0] eq "auto" || $_[0] eq "autofs")
	{ return (1, 1, 0, 0); }
elsif ($_[0] eq "smbfs")
	{ return ($smbfs_support >= 3 ? 2 : 0, 1, 0, 0); }
elsif ($_[0] eq "ext2" || $_[0] eq "minix" || $_[0] eq "xiafs")
	{ return (2, 1, 1, 0); }
else
	{ return (2, 1, 0, 0); }
}


# disk_space(type, directory)
# Returns the amount of total and free space for some filesystem, or an
# empty array if not appropriate.
sub disk_space
{
if (&get_mounted($_[1], "*") < 0) { return (); }
if ($_[0] eq "proc" || $_[0] eq "swap" ||
    $_[0] eq "auto" || $_[0] eq "autofs") { return (); }
`df -k $_[1]` =~ /Mounted on\n\S+\s+(\S+)\s+\S+\s+(\S+)/;
return ($1, $2);
}


# list_fstypes()
# Returns an array of all the supported filesystem types. If a filesystem is
# found that is not one of the supported types, generate_location() and
# generate_options() will not be called for it.
sub list_fstypes
{
local @sup = ("ext2", "minix", "msdos", "nfs", "iso9660", "ext", "xiafs",
	      "hpfs", "fat", "vfat", "umsdos", "sysv", "reiserfs");
push(@sup, "smbfs") if ($smbfs_support);
push(@sup, "auto") if ($amd_support);
push(@sup, "autofs") if ($autofs_support);
push(@sup, "swap");
return @sup;
}


# fstype_name(type)
# Given a short filesystem type, return a human-readable name for it
sub fstype_name
{
local(%fsmap);
%fsmap = ("ext2","Linux Native Filesystem",
	  "minix","Minix Filesystem",
	  "msdos","MS-DOS Filesystem",
	  "nfs","Network Filesystem",
	  "smbfs","Windows Networking Filesystem",
	  "iso9660","ISO9660 CD-ROM",
	  "ext","Old EXT Linux Filesystem",
	  "xiafs","Old XIAFS Linux Filesystem",
	  "hpfs","OS/2 Filesystem",
	  "fat","MS-DOS Filesystem",
	  "vfat","Windows 95 Filesystem",
	  "umsdos","Linux on top of MS-DOS Filesystem",
	  "sysv","System V Filesystem",
	  "swap","Virtual Memory",
	  "proc","Kernel Filesystem",
	  "devpts","PTS Filesystem",
	  "auto",($autofs_support ? "Old " : "")."Automounter Filesystem",
	  "reiserfs","Reiser Filesystem",
	  "autofs","New Automounter Filesystem",
	  "usbdevfs","USB Devices",
	  "shm","SysV Shared Memory");
return $config{long_fstypes} && $fsmap{$_[0]} ? $fsmap{$_[0]} : uc($_[0]);
}


# multiple_mount(type)
# Returns 1 if filesystems of this type can be mounted multiple times, 0 if not
sub multiple_mount
{
return ($_[0] eq "nfs" || $_[0] eq "auto" || $_[0] eq "autofs");
}


# generate_location(type, location)
# Output HTML for editing the mount location of some filesystem.
sub generate_location
{
if ($_[0] eq "nfs") {
	# NFS mount from some host and directory
	$_[1] =~ /^([^:]+):(.*)$/;
	print "<tr> <td><b>$text{'linux_nfshost'}</b></td>\n";
	print "<td><input name=nfs_host size=20 value=\"$1\">\n";
	&nfs_server_chooser_button("nfs_host");
	print "&nbsp;<b>$text{'linux_nfsdir'}</b>\n";
	print "<input name=nfs_dir size=20 value=\"$2\">\n";
	&nfs_export_chooser_button("nfs_host", "nfs_dir");
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "auto") {
	# Using some automounter map
	print "<tr> <td><b>$text{'linux_map'}</b></td>\n";
	print "<td><input name=auto_map size=20 value=\"$_[1]\">\n";
	print &file_chooser_button("auto_map", 0);
	print "</td> <td colspan=2></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	# Using some kernel automounter map
	print "<tr> <td><b>$text{'linux_map'}</b></td>\n";
	print "<td><input name=autofs_map size=20 value=\"$_[1]\">\n";
	print &file_chooser_button("autofs_map", 0);
	print "</td> <td colspan=2></td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swap file or device
	&foreign_require("fdisk", "fdisk-lib.pl");
	printf "<tr> <td valign=top><b>$text{'linux_swapfile'}</b></td>\n";
	print "<td colspan=3>\n";
	local $found;
	local $sel = &foreign_call("fdisk", "partition_select", "lnx_disk",
				   $_[1], 3, \$found);
	printf "<input type=radio name=lnx_dev value=0 %s> %s %s<br>\n",
		$found ? "checked" : "", $text{'linux_disk'}, $sel;
	printf "<input type=radio name=lnx_dev value=1 %s> %s\n",
		$found ? "" : "checked", $text{'linux_swapfile'};
	printf "<input name=lnx_other size=35 value='%s'><br>\n",
		$found ? "" : $_[1];
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "smbfs") {
	# Windows filesystem
	$_[1] =~ /^\\\\(.*)\\(.*)$/;
	print "<tr> <td><b>$text{'linux_smbserver'}</b></td>\n";
	print "<td><input name=smbfs_server value=\"$1\" size=20>\n";
	&smb_server_chooser_button("smbfs_server");
	print "</td>\n";
	print "<td><b>$text{'linux_smbshare'}</b></td>\n";
	print "<td><input name=smbfs_share value=\"$2\" size=20>\n";
	&smb_share_chooser_button("smbfs_server", "smbfs_share");
	print "</td> </tr>\n";
	}
else {
	# This is some linux disk-based filesystem
	&foreign_require("fdisk", "fdisk-lib.pl");
	printf "<tr> <td valign=top><b>%s</b></td>\n", &fstype_name($_[0]);
	print "<td colspan=3>\n";
	local ($found, $rfound, $lfound, $rsel, $c);
	local $sel = &foreign_call("fdisk", "partition_select", "lnx_disk",
				   $_[1], 0, \$found);
	printf "<input type=radio name=lnx_dev value=0 %s> %s %s<br>\n",
		$found ? "checked" : "", $text{'linux_disk'}, $sel;

	if (&foreign_check("raid")) {
		&foreign_require("raid", "raid-lib.pl");
		local $conf = &foreign_call("raid", "get_raidtab");
		foreach $c (@$conf) {
			if ($c->{'active'}) {
				$rsel .= sprintf "<option value=%s %s>%s\n",
					$c->{'value'},
					$_[1] eq $c->{'value'} ? 'selected' : '',
					&text('linux_rdev', substr($c->{'value'}, -1));
				$rfound++ if ($_[1] eq $c->{'value'});
				}
			}
		if ($rsel) {
			printf "<input type=radio name=lnx_dev value=2 %s> %s\n",
				$rfound ? "checked" : " ", $text{'linux_raid'};
			print "<select name=lnx_raid>\n",$rsel,"</select><br>\n";
			}
		}

	if ($has_e2label) {
		local $l = $_[1] =~ /LABEL=(.*)/ ? $1 : undef;
		local $esel = &foreign_call("fdisk", "label_select",
					    "lnx_label", $l, \$lfound);
		if ($esel) {
			printf "<input type=radio name=lnx_dev value=3 %s> %s %s<br>\n", $lfound ? "checked" : "", $text{'linux_lsel'}, $esel;
			}
		}

	printf "<input type=radio name=lnx_dev value=1 %s> %s\n",
		$found || $rfound || $lfound ? "" : "checked", $text{'linux_other'};
	printf "<input name=lnx_other size=35 value='%s'><br>\n",
		$found || $rfound || $lfound ? "" : $_[1];
	print "</td> </tr>\n";
	}
}


# generate_options(type, newmount)
# Output HTML for editing mount options for a particular filesystem 
# under this OS
sub generate_options
{
if ($_[0] ne "swap" && $_[0] ne "auto" &&
    $_[0] ne "autofs" && $_[0] ne "smbfs") {
	# Lots of options are common to all linux filesystems
	print "<tr> <td><b>$text{'linux_ro'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_ro value=1 %s> $text{'yes'}\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=lnx_ro value=0 %s> $text{'no'}</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>$text{'linux_sync'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_sync value=0 %s> $text{'yes'}\n",
		defined($options{"sync"}) ? "" : "checked";
	printf "<input type=radio name=lnx_sync value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"sync"}) ? "checked" : "";

	print "<tr> <td><b>$text{'linux_nodev'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_nodev value=0 %s> $text{'yes'}\n",
		defined($options{"nodev"}) ? "" : "checked";
	printf "<input type=radio name=lnx_nodev value=1 %s> $text{'no'}</td>\n",
		defined($options{"nodev"}) ? "checked" : "";

	print "<td><b>$text{'linux_noexec'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_noexec value=0 %s> $text{'yes'}\n",
		defined($options{"noexec"}) ? "" : "checked";
	printf "<input type=radio name=lnx_noexec value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"noexec"}) ? "checked" : "";

	print "<tr> <td><b>$text{'linux_nosuid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_nosuid value=1 %s> $text{'yes'}\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=lnx_nosuid value=0 %s> $text{'no'}</td>\n",
		defined($options{"nosuid"}) ? "" : "checked";

	print "<td><b>$text{'linux_user'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_user value=1 %s> $text{'yes'}\n",
		defined($options{"user"}) ? "checked" : "";
	printf "<input type=radio name=lnx_user value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"user"}) ? "" : "checked";
	}
	
if ($_[0] eq "ext2") {
	# Ext2 has lots more options..
	print "<tr> <td><b>$text{'linux_check'}</b></td>\n";
	print "<td><select name=ext2_check>\n";
	printf "<option value=normal %s> $text{'linux_normal'}\n",
		$options{"check"} eq "" || $options{"check"} eq "normal" ?
			"selected" : "";
	printf "<option value=strict %s> $text{'linux_strict'}\n",
		$options{"check"} eq "strict" ? "selected" : "";
	printf "<option value=none %s> $text{'linux_none'}\n",
		$options{"check"} eq "none" || defined($options{"nocheck"}) ?
			"selected" : "";
	print "</select></td>\n";

	print "<td><b>$text{'linux_errors'}</b></td>\n";
	print "<td><select name=ext2_errors>\n";
	printf "<option value=default %s> $text{'default'}\n",
		!defined($options{"errors"}) ? "selected" : "";
	printf "<option value=continue %s> $text{'linux_continue'}\n",
		$options{"error"} eq "continue" ? "selected" : "";
	printf "<option value=remount-ro %s> $text{'linux_remount_ro'}\n",
		$options{"error"} eq "remount-ro" ? "selected" : "";
	printf "<option value=panic %s> $text{'linux_panic'}\n",
		$options{"error"} eq "panic" ? "selected" : "";
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_grpid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=ext2_grpid value=0 %s> $text{'yes'}\n",
		defined($options{"grpid"}) || defined($options{"bsdgroups"}) ?
			"" : "checked";
	printf "<input type=radio name=ext2_grpid value=1 %s> $text{'no'}</td>\n",
		defined($options{"grpid"}) || defined($options{"bsdgroups"}) ?
			"checked" : "";

	print "<td><b>$text{'linux_quotas'}</b></td>\n";
	local $usrquota = defined($options{"usrquota"});
	local $grpquota = defined($options{"grpquota"});
	print "<td nowrap><select name=ext2_quota>\n";
	printf "<option value=0 %s> $text{'no'}\n",
		$usrquota || $grpquota ? "" : "selected";
	printf "<option value=1 %s> $text{'linux_usrquota'}\n",
		$usrquota && !$grpquota ? "selected" : "";
	printf "<option value=2 %s> $text{'linux_grpquota'}\n",
		$grpquota && !$usrquota ? "selected" : "";
	if (`uname -r` =~ /^2\.0\.(\d+)/ && $1 < 31) {
		printf "<option value=3 %s> $text{'linux_usrgrpquota2'}\n",
			$usrquota && $grpquota ? "selected" : "";
		}
	else {
		printf "<option value=3 %s> $text{'linux_usrgrpquota'}\n",
			$usrquota && $grpquota ? "selected" : "";
		}
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_resuid'}</b></td>\n";
	printf "<td><input name=ext2_resuid size=8 value=\"%s\">\n",
		defined($options{"resuid"}) ? getpwuid($options{"resuid"}) : "";
	print &user_chooser_button("ext2_resuid", 0),"</td>\n";

	print "<td><b>$text{'linux_resgid'}</b></td>\n";
	printf "<td><input name=ext2_resgid size=8 value=\"%s\">\n",
		defined($options{"resgid"}) ? getgrgid($options{"resgid"}) : "";
	print &group_chooser_button("ext2_resgid", 0),"</td> </tr>\n";
	}
elsif ($_[0] eq "nfs") {
	# Linux nfs has some more options...
	print "<tr> <td><b>$text{'linux_bg'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_bg value=1 %s> $text{'yes'}\n",
		defined($options{"bg"}) ? "checked" : "";
	printf "<input type=radio name=nfs_bg value=0 %s> $text{'no'}</td>\n",
		defined($options{"bg"}) ? "" : "checked";

	print "<td><b>$text{'linux_soft'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_soft value=1 %s> $text{'yes'}\n",
		defined($options{"soft"}) ? "checked" : "";
	printf "<input type=radio name=nfs_soft value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"soft"}) ? "" : "checked";

	print "<tr> <td><b>$text{'linux_timeo'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_timeo_def value=1 %s> $text{'default'}\n",
		defined($options{"timeo"}) ? "" : "checked";
	printf "<input type=radio name=nfs_timeo_def value=0 %s>\n",
		defined($options{"timeo"}) ? "checked" : "";
	printf "<input size=5 name=nfs_timeo value=$options{timeo}></td>\n";

	print "<td><b>$text{'linux_retrans'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_retrans_def value=1 %s> $text{'default'}\n",
		defined($options{"retrans"}) ? "" : "checked";
	printf "<input type=radio name=nfs_retrans_def value=0 %s>\n",
		defined($options{"retrans"}) ? "checked" : "";
	print "<input size=5 name=nfs_retrans value=$options{retrans}></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_vers'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_vers_def value=1 %s> $text{'linux_high'}\n",
		defined($options{"nfsvers"}) ? "" : "checked";
	printf "<input type=radio name=nfs_vers_def value=0 %s>\n",
		defined($options{"nfsvers"}) ? "checked" : "";
	print "<input size=1 name=nfsvers value=$options{nfsvers}></td>\n";

	print "<td><b>$text{'linux_port'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_port_def value=1 %s> $text{'default'}\n",
		defined($options{"port"}) ? "" : "checked";
	printf "<input type=radio name=nfs_port_def value=0 %s>\n",
		defined($options{"port"}) ? "checked" : "";
	print "<input size=5 name=nfs_port value=$options{port}></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_intr'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_intr value=1 %s> $text{'yes'}\n",
		defined($options{"intr"}) ? "checked" : "";
	printf "<input type=radio name=nfs_intr value=0 %s> $text{'no'}</td>\n",
		defined($options{"intr"}) ? "" : "checked";

	print "<td><b>$text{'linux_tcp'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_tcp value=1 %s> TCP\n",
		defined($options{"tcp"}) ? "checked" : "";
	printf "<input type=radio name=nfs_tcp value=0 %s> UDP</td> </tr>\n",
		defined($options{"tcp"}) ? "" : "checked";
	}
elsif ($_[0] eq "fat" || $_[0] eq "vfat" || $_[0] eq "msdos" || $_[0] eq "umsdos"){
	# All dos-based filesystems share some options
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=fat_uid size=8 value=\"%s\">\n",
		defined($options{'uid'}) ? getpwuid($options{'uid'}) : "";
	print &user_chooser_button("fat_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=fat_gid size=8 value=\"%s\">\n",
		defined($options{'gid'}) ? getgrgid($options{'gid'}) : "";
	print &group_chooser_button("fat_gid", 0),"</td> </tr>\n";

	print "<tr> <td><b>$text{'linux_rules'}</b></td>\n";
	print "<td><select name=fat_check>\n";
	printf "<option value=\"\" %s> $text{'default'}\n",
		defined($options{"check"}) ? "" : "selected";
	printf "<option value=r %s> $text{'linux_relaxed'}\n",
		$options{"check"} =~ /^r/ ? "selected" : "";
	printf "<option value=n %s> $text{'linux_normal'}\n",
		$options{"check"} =~ /^n/ ? "selected" : "";
	printf "<option value=s %s> $text{'linux_strict'}\n",
		$options{"check"} =~ /^s/ ? "selected" : "";
	print "</select></td>\n";

	print "<td><b>$text{'linux_conv'}</b></td>\n";
	print "<td><select name=fat_conv>\n";
	printf "<option value=\"\" %s> $text{'linux_none'}\n",
		$options{"conv"} =~ /^b/ || !defined($options{"conv"}) ?
		"selected" : "";
	printf "<option value=t %s> $text{'linux_allfiles'}\n",
		$options{"conv"} =~ /^t/ ? "selected" : "";
	printf "<option value=a %s> $text{'linux_textfiles'}\n",
		$options{"conv"} =~ /^a/ ? "selected" : "";
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_umask'}</b></td>\n";
	printf "<td><input type=radio name=fat_umask_def value=1 %s> $text{'default'}\n",
		defined($options{"umask"}) ? "" : "checked";
	printf "<input type=radio name=fat_umask_def value=0 %s>\n",
		defined($options{"umask"}) ? "checked" : "";
	print "<input size=5 name=fat_umask value=\"$options{umask}\"></td>\n";

	print "<td><b>$text{'linux_quiet'}</b></td>\n";
	printf "<td nowrap><input type=radio name=fat_quiet value=0 %s> $text{'yes'}\n",
		defined($options{"quiet"}) ? "" : "checked";
	printf "<input type=radio name=fat_quiet value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"quiet"}) ? "checked" : "";

	if ($_[0] eq "vfat") {
		# vfat has some extra options beyond fat
		print "<tr> <td><b>$text{'linux_uni_xlate'}</b></td>\n";
		printf "<td><input type=radio name=fat_uni_xlate value=1 %s> $text{'yes'}\n",
			defined($options{"uni_xlate"}) ? "checked" : "";
		printf "<input type=radio name=fat_uni_xlate value=0 %s> $text{'no'}</td>\n",
			defined($options{"uni_xlate"}) ? "" : "checked";

		print "<td><b>$text{'linux_posix'}</b></td>\n";
		printf "<td nowrap><input type=radio name=fat_posix value=1 %s> $text{'yes'}\n",
			defined($options{"posix"}) ? "checked" : "";
		printf "<input type=radio name=fat_posix value=0 %s> $text{'no'}</td> </tr>\n",
			defined($options{"posix"}) ? "" : "checked";
		}
	}
elsif ($_[0] eq "hpfs") {
	# OS/2 filesystems has some more options..
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=hpfs_uid size=8 value=\"%s\">\n",
		defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
	print &user_chooser_button("hpfs_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=hpfs_gid size=8 value=\"%s\">\n",
		defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
	print &group_chooser_button("hpfs_gid", 0),"</td> </tr>\n";

	print "<tr> <td><b>$text{'linux_umask'}</b></td>\n";
	printf"<td><input type=radio name=hpfs_umask_def value=1 %s> Default\n",
		defined($options{"umask"}) ? "" : "checked";
	printf "<input type=radio name=hpfs_umask_def value=0 %s>\n",
		defined($options{"umask"}) ? "checked" : "";
	print "<input size=5 name=hpfs_umask value=\"$options{umask}\"></td>\n";

	print "<td><b>$text{'linux_conv2'}</b></td>\n";
	print "<td><select name=hpfs_conv>\n";
	printf "<option value=b %s> $text{'linux_none'}\n",
		$options{"conv"} =~ /^b/ || !defined($options{"conv"}) ?
		"selected" : "";
	printf "<option value=t %s> $text{'linux_allfiles'}\n",
		$options{"conv"} =~ /^t/ ? "selected" : "";
	printf "<option value=a %s> $text{'linux_textfiles'}\n",
		$options{"conv"} =~ /^a/ ? "selected" : "";
	print "</select></td> </tr>\n";
	}
elsif ($_[0] eq "iso9660") {
	# CD-ROM filesystems have some more options..
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=iso9660_uid size=8 value=\"%s\">\n",
		defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
	print &user_chooser_button("iso9660_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=iso9660_gid size=8 value=\"%s\">\n",
		defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
	print &group_chooser_button("iso9660_gid", 0),"</td>\n";

	print "<tr> <td><b>$text{'linux_rock'}</b></td>\n";
	printf "<td><input type=radio name=iso9660_norock value=1 %s> $text{'yes'}\n",
		defined($options{"norock"}) ? "checked" : "";
	printf "<input type=radio name=iso9660_norock value=0 %s> $text{'no'}</td>\n",
		defined($options{"norock"}) ? "" : "checked";

	print "<td><b>$text{'linux_mode'}</b></td>\n";
	printf"<td><input size=10 name=iso9660_mode value=\"%s\"></td> </tr>\n",
		defined($options{"mode"}) ? $options{"mode"} : "444";
	}
elsif ($_[0] eq "auto") {
	# Don't know how to set options for auto filesystems yet..
	print "<tr> <td><i>$text{'linux_noopts'}</i></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	print "<tr> <td><b>$text{'linux_timeout'}</b></td> <td>\n";
	printf"<input type=radio name=autofs_timeout_def value=1 %s> $text{'default'}\n",
		defined($options{'timeout'}) ? "" : "checked";
	printf "<input type=radio name=autofs_timeout_def value=0 %s>\n",
		defined($options{'timeout'}) ? "checked" : "";
	printf "<input name=autofs_timeout size=5 value=\"%s\"> $text{'linux_secs'}</td>\n",
		$options{'timeout'};

	print "<td><b>$text{'linux_pid_file'}</b>?</td>\n";
	printf"<td><input type=radio name=autofs_pid-file_def value=1 %s> $text{'no'}\n",
		defined($options{'pid-file'}) ? "" : "checked";
	printf "<input type=radio name=autofs_pid-file_def value=0 %s> $text{'yes'}\n",
		defined($options{'pid-file'}) ? "checked" : "";
	printf "<input name=autofs_pid-file size=20 value=\"%s\">\n",
		$options{'pid-file'};
	print &file_chooser_button("autofs_pid-file", 1);
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swap has no options..
	print "<tr> <td><i>$text{'linux_noopts'}</i></td> </tr>\n";
	}
elsif ($_[0] eq "smbfs") {
	# SMB filesystems have a few options..
	if (keys(%options) == 0 && !$_[1]) {
		print "<tr> <td colspan=4><i>$text{'linux_smbwarn'}</i></td> </tr>\n";
		}

	print "<tr> <td><b>$text{'linux_username'}</b></td>\n";
	printf "<td><input name=smbfs_user size=15 value=\"%s\"></td>\n",
		$smbfs_support == 4 ? $options{'username'} : $options{'user'};

	print "<td><b>$text{'linux_password'}</b></td>\n";
	printf "<td><input type=password name=smbfs_passwd size=15 value=\"%s\"></td> </tr>\n",
		$smbfs_support == 4 ? $options{'password'} : $options{'passwd'};

	if ($smbfs_support != 2) {
		print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
		printf "<td><input name=smbfs_uid size=8 value=\"%s\">\n",
			defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
		print &user_chooser_button("smbfs_uid", 0),"</td>\n";

		print "<td><b>$text{'linux_gid'}</b></td>\n";
		printf "<td><input name=smbfs_gid size=8 value=\"%s\">\n",
			defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
		print &group_chooser_button("smbfs_gid", 0),"</td>\n";
		}

	if ($smbfs_support == 1) {
		print "<tr> <td><b>$text{'linux_sname'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_sname_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"servername"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_sname_def value=0 %s>\n",
			defined($options{"servername"}) ? "checked" : "";
		print "<input size=10 name=smbfs_sname value=\"$options{servername}\"></td>\n";
		}
	elsif ($smbfs_support == 2) {
		print "<tr> <td><b>$text{'linux_wg'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_wg_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"workgroup"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_wg_def value=0 %s>\n",
			defined($options{"workgroup"}) ? "checked" : "";
		print "<input size=10 name=smbfs_wg value=\"$options{'workgroup'}\"></td>\n";
		}

	if ($smbfs_support < 3) {
		print "<td><b>$text{'linux_cname'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_cname_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"clientname"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_cname_def value=0 %s>\n",
			defined($options{"clientname"}) ? "checked" : "";
		print "<input size=10 name=smbfs_cname value=\"$options{clientname}\"></td> </tr>\n";

		print "<tr> <td><b>$text{'linux_mname'}</b></td>\n";
		printf "<td colspan=3><input type=radio name=smbfs_mname_def value=1 %s> %s\n",
			defined($options{"machinename"}) ? "" : "checked", $text{'linux_auto'};
		printf "<input type=radio name=smbfs_mname_def value=0 %s>\n",
			defined($options{"machinename"}) ? "checked" : "";
		print "<input size=30 name=smbfs_mname value=\"$options{machinename}\"></td> </tr>\n";
		}

	if ($smbfs_support == 1) {
		print "<tr> <td><b>$text{'linux_fmode'}</b></td>\n";
		printf
		    "<td><input name=smbfs_fmode size=5 value=\"%s\"></td>\n",
		    defined($options{'fmode'}) ? $options{'fmode'} : "755";

		print "<td><b>$text{'linux_dmode'}</b></td>\n";
		printf
		    "<td><input name=smbfs_dmode size=5 value=\"%s\"></td>\n",
		    defined($options{'dmode'}) ? $options{'dmode'} : "755";
		print "</tr>\n";
		}
	elsif ($smbfs_support >= 3) {
		print "<tr> <td><b>$text{'linux_ro'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_ro value=1 %s> $text{'yes'}\n",
			defined($options{"ro"}) ? "checked" : "";
		printf "<input type=radio name=smbfs_ro value=0 %s> $text{'no'}</td>\n",
			defined($options{"ro"}) ? "" : "checked";

		print "<td><b>$text{'linux_user'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_user2 value=1 %s> $text{'yes'}\n",
			defined($options{"user"}) ? "checked" : "";
		printf "<input type=radio name=smbfs_user2 value=0 %s> $text{'no'}</td> </tr>\n",
			defined($options{"user"}) ? "" : "checked";
		}
	}
elsif ($_[0] eq "reiserfs") {
	# Reiserfs is a new super-efficient filesystem
	print "<tr> <td><b>$text{'linux_notail'}</b></td>\n";
	printf "<td><input type=radio name=lnx_notail value=1 %s> $text{'yes'}\n",
		defined($options{"notail"}) ? "checked" : "";
	printf "<input type=radio name=lnx_notail value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"notail"}) ? "" : "checked";
	}
}


# check_location(type)
# Parse and check inputs from %in, calling &error() if something is wrong.
# Returns the location string for storing in the fstab file
sub check_location
{
if ($_[0] eq "nfs") {
	local($out, $temp, $mout, $dirlist);

	if (&has_command("showmount")) {
		# Use ping and showmount to see if the host exists and is up
		if ($in{nfs_host} !~ /^\S+$/) {
			&error(&text('linux_ehost', $in{'nfs_host'}));
			}
		$out = `ping -c 1 '$in{nfs_host}' 2>&1`;
		if ($out =~ /unknown host/) {
			&error(&text('linux_ehost2', $in{'nfs_host'}));
			}
		elsif ($out =~ /100\% packet loss/) {
			&error(&text('linux_edown', $in{'nfs_host'}));
			}
		$out = `showmount -e '$in{nfs_host}' 2>&1`;
		if ($out =~ /Unable to receive/) {
			&error(&text('linux_enfs', $in{'nfs_host'}));
			}
		elsif ($?) {
			&error(&text('linux_elist', $out));
			}

		# Validate directory name
		foreach (split(/\n/, $out)) {
			if (/^(\/\S+)/) { $dirlist .= "$1\n"; }
			}
		if ($in{nfs_dir} !~ /^\/\S+$/) {
			&error(&text('linux_enfsdir', $in{'nfs_dir'},
				     $in{'nfs_host'}, "<pre>$dirlist</pre>"));
			}
		}

	# Try a test mount to see if filesystem is available
	$temp = &tempname();
	mkdir($temp, 0755);
	$mout = `mount $in{nfs_host}:$in{nfs_dir} $temp 2>&1`;
	if ($mout =~ /No such file or directory/i) {
		rmdir($temp);
		&error(&text('linux_enfsdir', $in{'nfs_dir'},
			     $in{'nfs_host'}, "<pre>$dirlist</pre>"));
		}
	elsif ($mout =~ /Permission denied/i) {
		rmdir($temp);
		&error(&text('linux_enfsperm', $in{'nfs_dir'}, $in{'nfs_host'}));
		}
	elsif ($?) {
		rmdir($temp);
		&error(&text('linux_enfsmount', "<tt>$mout</tt>"));
		}
	# It worked! unmount
	`umount $temp`;
	rmdir($temp);

	return "$in{nfs_host}:$in{nfs_dir}";
	}
elsif ($_[0] eq "auto") {
	# Check if the automounter map exists..
	(-r $in{auto_map}) || &error(&text('linux_eautomap', $in{'auto_map'}));
	return $in{auto_map};
	}
elsif ($_[0] eq "autofs") {
	# Check if the map exists (if it is a file)
	if ($in{'autofs_map'} =~ /^\// && !(-r $in{'autofs_map'})) {
		&error(&text('linux_eautomap', $in{'autofs_map'}));
		}
	return $in{autofs_map};
	}
elsif ($_[0] eq "smbfs") {
	# No checking done
	return "\\\\".lc($in{'smbfs_server'})."\\".lc($in{'smbfs_share'});
	}
else {
	# This is some kind of disk-based linux filesystem.. get the device name
	if ($in{'lnx_dev'} == 0) {
		$dv = $in{'lnx_disk'};
		}
	elsif ($in{'lnx_dev'} == 2) {
		$dv = $in{'lnx_raid'};
		}
	elsif ($in{'lnx_dev'} == 3) {
		$dv = "LABEL=".$in{'lnx_label'};
		}
	else {
		$dv = $in{'lnx_other'};
		$dv || &error($text{'linux_edev'});
		}

	# If the device entered is a symlink, follow it
	#if ($dvlink = readlink($dv)) {
	#	if ($dvlink =~ /^\//) { $dv = $dvlink; }
	#	else {	$dv =~ /^(.*\/)[^\/]+$/;
	#		$dv = $1.$dvlink;
	#		}
	#	}

	# Check if the device actually exists and uses the right filesystem
	if (!-r $dv && $dv !~ /LABEL=/) {
		if ($_[0] eq "swap" && $dv !~ /\/dev/) {
			&swap_form($dv);
			}
		else {
			&error(&text('linux_edevfile', $dv));
			}
		}
	return $dv;
	}
}

# check_options(type, device, directory)
# Read options for some filesystem from %in, and use them to update the
# %options array. Options handled by the user interface will be set or
# removed, while unknown options will be left untouched.
sub check_options
{
local($k, @rv);

# Parse the common options first..
if ($_[0] ne "swap" && $_[0] ne "auto" &&
    $_[0] ne "autofs" && $_[0] ne "smbfs") {
	delete($options{"ro"}); delete($options{"rw"});
	if ($in{lnx_ro}) { $options{"ro"} = ""; }

	delete($options{"sync"}); delete($options{"async"});
	if ($in{lnx_sync}) { $options{"sync"} = ""; }

	delete($options{"dev"}); delete($options{"nodev"});
	if ($in{lnx_nodev}) { $options{"nodev"} = ""; }

	delete($options{"exec"}); delete($options{"noexec"});
	if ($in{lnx_noexec}) { $options{"noexec"} = ""; }

	delete($options{"suid"}); delete($options{"nosuid"});
	if ($in{lnx_nosuid}) { $options{"nosuid"} = ""; }

	delete($options{"user"}); delete($options{"nouser"});
	if ($in{lnx_user}) { $options{"user"} = ""; }
	}

if ($_[0] eq "nfs") {
	# NFS has a few specific options..
	delete($options{"bg"}); delete($options{"fg"});
	if ($in{nfs_bg}) { $options{"bg"} = ""; }

	delete($options{"soft"}); delete($options{"hard"});
	if ($in{nfs_soft}) { $options{"soft"} = ""; }

	delete($options{"timeo"});
	if (!$in{nfs_timeo_def}) { $options{"timeo"} = $in{nfs_timeo}; }

	delete($options{"nfsvers"});
	if (!$in{nfs_vers_def}) { $options{"nfsvers"} = $in{nfs_vers}; }

	delete($options{"port"});
	if (!$in{nfs_port_def}) { $options{"port"} = $in{nfs_port}; }

	delete($options{"intr"}); delete($options{"nointr"});
	if ($in{nfs_intr}) { $options{"intr"} = ""; }

	delete($options{"tcp"}); delete($options{"udp"});
	if ($in{nfs_tcp}) { $options{"tcp"} = ""; }
	}
elsif ($_[0] eq "ext2") {
	# More options for ext2..
	delete($options{"check"}); delete($options{"nocheck"});
	if ($in{ext2_check} ne "normal") {
		$options{"check"} = $in{ext2_check};
		}

	delete($options{"errors"});
	if ($in{ext2_errors} ne "default") {
		$options{"errors"} = $in{ext2_errors};
		}

	delete($options{"grpid"}); delete($options{"bsdgroups"});
	delete($options{"sysvgroups"}); delete($options{"nogrpid"});
	if ($in{ext2_grpid}) {
		$options{"grpid"} = "";
		}

	delete($options{"resuid"}); delete($options{"resgid"});
	if ($in{'ext2_resuid'})
		{ $options{"resuid"} = getpwnam($in{'ext2_resuid'}); }
	if ($in{'ext2_resgid'})
		{ $options{"resgid"} = getgrnam($in{'ext2_resgid'}); }

	delete($options{"quota"}); delete($options{"noquota"});
	delete($options{"usrquota"}); delete($options{"grpquota"});
	if ($in{'ext2_quota'} == 1) { $options{'usrquota'} = ""; }
	elsif ($in{'ext2_quota'} == 2) { $options{'grpquota'} = ""; }
	elsif ($in{'ext2_quota'} == 3)
		{ $options{'usrquota'} = $options{'grpquota'} = ""; }
	}
elsif ($_[0] eq "fat" || $_[0] eq "vfat" ||
       $_[0] eq "msdos" || $_[0] eq "umsdos") {
	# All dos-based filesystems have similar options
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{fat_uid} ne "") { $options{"uid"} = getpwnam($in{'fat_uid'}); }
	if ($in{fat_gid} ne "") { $options{"gid"} = getgrnam($in{'fat_gid'}); }

	delete($options{"check"});
	if ($in{fat_check} ne "") { $options{"check"} = $in{fat_check}; }

	delete($options{"conv"});
	if ($in{fat_conv} ne "") { $options{"conv"} = $in{fat_conv}; }

	delete($options{"umask"});
	if (!$in{fat_umask_def}) {
		$in{fat_umask} =~ /^[0-7]{3}$/ ||
			&error(&text('linux_emask', $in{'fat_umask'}));
		$options{"umask"} = $in{fat_umask};
		}

	delete($options{"quiet"});
	if ($in{fat_quiet}) {
		$options{"quiet"} = "";
		}

	if ($_[0] eq "vfat") {
		# Parse extra vfat options..
		delete($options{"uni_xlate"});
		if ($in{fat_uni_xlate}) { $options{"uni_xlate"} = ""; }

		delete($options{"posix"});
		if ($in{fat_posix}) { $options{"posix"} = ""; }
		}
	}
elsif ($_[0] eq "hpfs") {
	# OS/2 filesystem options..
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{hpfs_uid} ne "") { $options{"uid"} = getpwnam($in{hpfs_uid}); }
	if ($in{hpfs_gid} ne "") { $options{"gid"} = getgrnam($in{hpfs_gid}); }

	delete($options{"umask"});
	if (!$in{hpfs_umask_def}) {
		$in{hpfs_umask} =~ /^[0-7]{3}$/ ||
			&error(&text('linux_emask', $in{'hpfs_umask'}));
		$options{"umask"} = $in{hpfs_umask};
		}

	delete($options{"conv"});
	if ($in{hpfs_conv} ne "") { $options{"conv"} = $in{hpfs_conv}; }
	}
elsif ($_[0] eq "iso9660") {
	# Options for iso9660 cd-roms
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{iso9660_uid} ne "")
		{ $options{"uid"} = getpwnam($in{iso9660_uid}); }
	if ($in{iso9660_gid} ne "")
		{ $options{"gid"} = getgrnam($in{iso9660_gid}); }

	delete($options{"norock"});
	if ($in{iso9660_norock}) { $options{"norock"} = ""; }

	delete($options{"mode"});
	$in{iso9660_mode} =~ /^[0-7]{3}$/ ||
		&error(&text('linux_emask', $in{'iso9660_mode'}));
	$options{"mode"} = $in{iso9660_mode};
	}
elsif ($_[0] eq "autofs") {
	# Options for automounter filesystems
	delete($options{'timeout'});
	if (!$in{'autofs_timeout_def'}) {
		$in{'autofs_timeout'} =~ /^\d+$/ ||
			&error(&text('linux_etimeout', $in{'autofs_timeout'}));
		$options{'timeout'} = $in{'autofs_timeout'};
		}
	delete($options{'pid-file'});
	if (!$in{'autofs_pid-file_def'}) {
		$in{'autofs_pid-file'} =~ /^\/\S+$/ ||
		       &error(&text('linux_epidfile', $in{'autofs_pid-file'}));
		$options{'pid-file'} = $in{'autofs_pid-file'};
		}
	}
elsif ($_[0] eq "smbfs") {
	# Options for smb filesystems..
	delete($options{'user'}); delete($options{'username'});
	if ($in{smbfs_user}) {
		$options{$smbfs_support == 4 ? 'username' : 'user'} = $in{smbfs_user};
		}

	delete($options{'passwd'}); delete($options{'password'});
	if ($in{smbfs_passwd}) {
		$options{$smbfs_support == 4 ? 'password' : 'passwd'} = $in{smbfs_passwd};
		}

	if ($smbfs_support != 2) {
		delete($options{uid});
		if ($in{smbfs_uid} ne "") { $options{uid} = getpwnam($in{smbfs_uid}); }

		delete($options{gid});
		if ($in{smbfs_gid} ne "") { $options{gid} = getgrnam($in{smbfs_gid}); }
		}

	if ($smbfs_support == 1) {
		delete($options{servername});
		if (!$in{smbfs_sname_def})
			{ $options{servername} = $in{smbfs_sname}; }
		}
	elsif ($smbfs_support == 2) {
		delete($options{workgroup});
		if (!$in{smbfs_wg_def})
			{ $options{workgroup} = $in{smbfs_wg}; }
		}

	if ($smbfs_support < 3) {
		delete($options{clientname});
		if (!$in{smbfs_cname_def})
			{ $options{clientname} = $in{smbfs_cname}; }

		delete($options{machinename});
		if (!$in{smbfs_mname_def})
			{ $options{machinename} = $in{smbfs_mname}; }
		elsif (!gethostbyname($in{'smbfs_server'})) {
			# No hostname found for the server.. try to guess
			local($out, $sname);
			$sname = $in{'smbfs_server'};
			$out = `$config{'nmblookup_path'} -d 0 $sname 2>&1`;
			if (!$? && $out =~ /^([0-9\.]+)\s+$sname\n/) {
				$options{machinename} = $1;
				}
			}
		}

	if ($smbfs_support == 1) {
		delete($options{fmode});
		if ($in{smbfs_fmode} !~ /^[0-7]{3}$/) {
			&error(&text('linux_efmode', $in{'smbfs_fmode'}));
			}
		elsif ($in{smbfs_fmode} ne "755")
			{ $options{fmode} = $in{smbfs_fmode}; }

		delete($options{dmode});
		if ($in{smbfs_dmode} !~ /^[0-7]{3}$/) {
			&error(&text('linux_edmode', $in{'smbfs_dmode'}));
			}
		elsif ($in{smbfs_dmode} ne "755")
			{ $options{dmode} = $in{smbfs_dmode}; }
		}
	elsif ($smbfs_support >= 3) {
		delete($options{'ro'}); delete($options{'rw'});
		if ($in{'smbfs_ro'}) { $options{'ro'} = ''; }

		delete($options{'user'});
		if ($in{'smbfs_user2'}) { $options{'user'} = ''; }
		}
	}
elsif ($_[0] eq "reiserfs") {
	# Save reiserfs options
	delete($options{'notail'});
	$options{'notail'} = "" if ($in{'lnx_notail'});
	}

# Add loop option if mounting a normal file
if ($_[0] ne "swap" && $_[0] ne "auto" && $_[0] ne "autofs" &&
    $_[0] ne "smbfs" && $_[0] ne "nfs") {
	local(@st);
	@st = stat($_[1]);
	if (@st && ($st[2] & 0xF000) == 0x8000) {
		# a regular file.. add the loop option
		if (!$options{'loop'}) {
			$options{'loop'} = "";
			}
		}
	}

# Return options string
foreach $k (keys %options) {
	if ($options{$k} eq "") { push(@rv, $k); }
	else { push(@rv, "$k=$options{$k}"); }
	}
return @rv ? join(',' , @rv) : "-";
}


# Get the smbfs options from 'smbfs_opts' file in the current directory. This
# is sadly necessary because there is no way to get the current options for
# an existing smbfs mount... so webmin has to save them in a file when
# mounting. Blech.
sub read_smbopts
{
local($_);
open(SMBOPTS, "$module_config_directory/smbfs");
while(<SMBOPTS>) {
	/^(\S+)\s+(\S+)$/;
	$smbopts{$1} = $2;
	}
close(SMBOPTS);
}

sub write_smbopts
{
local($_);
open(SMBOPTS, "> $module_config_directory/smbfs");
foreach (keys %smbopts) {
	print SMBOPTS "$_\t$smbopts{$_}\n";
	}
close(SMBOPTS);
}


# create_swap(file, size, units)
# Calls dd and mkswap to setup a swap file
sub create_swap
{
local($out, $bl);
$bl = $_[1] * ($_[2] eq "m" ? 1024 : 1);
$out = `dd if=/dev/zero of=$_[0] bs=1024 count=$bl 2>&1`;
if ($?) { return "dd failed : $out"; }
$out = `mkswap $_[0] $bl 2>&1`;
if ($?) { return "mkswap failed : $out"; }
system("sync >/dev/null 2>&1");
return 0;
}

# exports_list(host, dirarray, clientarray)
# Fills the directory and client array references with exports from some
# host. Returns an error string if something went wrong
sub exports_list
{
local($dref, $cref, $out, $_);
$dref = $_[1]; $cref = $_[2];
$out = `showmount -e $_[0] 2>&1`;
if ($?) { return $out; }
foreach (split(/\n/, $out)) {
	if (/^(\/\S*)\s+(.*)$/) {
		push(@$dref, $1); push(@$cref, $2);
		}
	}
return undef;
}

# broadcast_addr()
# Returns a useable broadcast address for finding NFS servers
sub broadcast_addr
{
local($out);
$out = `ifconfig -a 2>&1`;
if ($out =~ /(eth|tr)\d\s+.*\n.*Bcast:(\S+)\s+/) { return $2; }
return "255.255.255.255";
}

# autofs_options(string)
# Converts a string of options line --timeout 60 to something like timeout=60
sub autofs_options
{
local(@options);
if ($_[0] =~ /--timeout\s+(\d+)/ || $_[0] =~ /-t\s+(\d+)/) {
	push(@options, "timeout=$1");
	}
if ($_[0] =~ /--pid-file\s+(\S+)/ || $_[0] =~ /-p\s+(\d+)/) {
	push(@options, "pid-file=$1");
	}
return join(',', @options);
}

# autofs_args(string)
# Convert a comma-separated options string into args for automount
sub autofs_args
{
local(%options, $args);
&parse_options("autofs", $_[0]);
if (defined($options{'timeout'})) {
	$args .= " --timeout $options{'timeout'}";
	}
if (defined($options{'pid-file'})) {
	$args .= " --pid-file $options{'pid-file'}";
	}
return $args;
}

# read_amd_conf()
# Returns the entire amd config file as a string
sub read_amd_conf
{
local $sl = $/;
$/ = undef;
open(AMD, $config{'auto_file'});
local $rv = <AMD>;
close(AMD);
$/ = $sl;
return $rv;
}

# write_amd_conf(text)
sub write_amd_conf
{
open(AMD, ">$config{'auto_file'}");
print AMD $_[0];
close(AMD);
}

# parse_amd_conf()
# Parses a new-style amd.conf file into a hashtable
sub parse_amd_conf
{
local (@rv, $str, $lnum);
open(AMD, $config{'auto_file'});
while(<AMD>) {
	s/\r|\n//g;
	s/#.*$//g;
	if (/\[\s*(\S+)\s*\]/) {
		$str = { 'dir' => $1,
			 'line' => $lnum,
			 'eline' => $lnum };
		push(@rv, $str);
		}
	elsif (/(\S+)\s*=\s*"(.*)"/ || /(\S+)\s*=\s*(\S+)/) {
		$str->{'opts'}->{$1} = $2;
		$str->{'eline'} = $lnum;
		}
	$lnum++;
	}
close(AMD);
return @rv;
}

# device_name(device)
# Converts a device name to a human-readable form
sub device_name
{
if (!$text{'select_part'}) {
	local %flang = &load_language('fdisk');
	$text{'select_part'} = $flang{'select_part'};
	$text{'select_mpart'} = $flang{'select_mpart'};
	$text{'select_device'} = $flang{'select_device'};
	$text{'select_fd'} = $flang{'select_fd'};
	}
return $_[0] =~ /^\/dev\/(s|h)d([a-z])(\d+)$/ ?
	&text('select_part', $1 eq 's' ? 'SCSI' : 'IDE', uc($2), "$3") :
       $_[0] =~ /^\/dev\/(s|h)d([a-z])$/ ?
	&text('select_device', $1 eq 's' ? 'SCSI' : 'IDE', uc($2)) :
       $_[0] =~ /rd\/c(\d+)d(\d+)p(\d+)$/ ?
	&text('select_mpart', "$1", "$2", "$3") :
       $_[0] =~ /fd(\d+)$/ ?
	&text('select_fd', "$1") :
       $_[0] =~ /md(\d+)$/ ?
	&text('linux_rdev', "$1") :
       $_[0] =~ /LABEL=(\S+)/i ?
	&text('linux_label', "$1") :
       $_[0] eq '/dev/cdrom' ?
	$text{'linux_cddev'} :
	$_[0];
}

sub files_to_lock
{
return ( $config{'fstab_file'}, $config{'autofs_file'}, $config{'auto_file'} );
}

1;

07070100007706000081a40000000000000002000000013ac0388d00000057000000200000000000000000000000000000002000000003reloc/mount/config-cobalt-linux   long_fstypes=1
fstab_file=/etc/fstab
smbclient_path=smbclient
nmblookup_path=nmblookup
 07070100007707000081a40000000000000002000000013ac0388d00000072000000200000000000000000000000000000001f00000003reloc/mount/config-corel-linux    auto_file=/etc/auto.master
long_fstypes=1
fstab_file=/etc/fstab
smbclient_path=smbclient
nmblookup_path=nmblookup
  07070100007708000081a40000000000000002000000013ac0388c00000062000000200000000000000000000000000000002000000003reloc/mount/config-debian-linux   auto_file=
long_fstypes=1
fstab_file=/etc/fstab
smbclient_path=smbclient
nmblookup_path=nmblookup
  07070100007709000081a40000000000000002000000013ac0388c0000007e000000200000000000000000000000000000001b00000003reloc/mount/config-freebsd    autofs_file=
nmblookup_path=nmblookup
browse_server=
auto_file=
smbclient_path=smbclient
long_fstypes=1
fstab_file=/etc/fstab
  0707010000770a000081a40000000000000002000000013ac0388c0000007e000000200000000000000000000000000000001800000003reloc/mount/config-hpux   autofs_file=
nmblookup_path=nmblookup
browse_server=
auto_file=
smbclient_path=smbclient
long_fstypes=1
fstab_file=/etc/fstab
  0707010000770b000081a40000000000000002000000013ac0388c00000081000000200000000000000000000000000000001800000003reloc/mount/config-irix   nmblookup_path=/usr/local/samba/bin/nmblookup
smbclient_path=/usr/local/samba/bin/smbclient
long_fstypes=1
fstab_file=/etc/fstab
   0707010000770c000081a40000000000000002000000013ac0388d0000006c000000200000000000000000000000000000001d00000003reloc/mount/config-lfs-linux  browse_server=
auto_file=
autofs_file=
nmblookup_path=
long_fstypes=1
smbclient_path=
fstab_file=/etc/fstab
0707010000770d000081a40000000000000002000000013ac0388d00000070000000200000000000000000000000000000001e00000003reloc/mount/config-open-linux auto_file=/etc/am.d/conf
long_fstypes=1
fstab_file=/etc/fstab
smbclient_path=smbclient
nmblookup_path=nmblookup
0707010000770e000081a40000000000000002000000013ac0388c0000007e000000200000000000000000000000000000001b00000003reloc/mount/config-openbsd    autofs_file=
nmblookup_path=nmblookup
browse_server=
auto_file=
smbclient_path=smbclient
long_fstypes=1
fstab_file=/etc/fstab
  0707010000770f000081a40000000000000002000000013ac0388c000000b8000000200000000000000000000000000000001800000003reloc/mount/config-osf1   browse_server=
auto_file=
autofs_file=/etc/auto_master
nmblookup_path=/usr/local/samba/bin/nmblookup
long_fstypes=1
smbclient_path=/usr/local/samba/bin/smbclient
fstab_file=/etc/fstab
07070100007710000081a40000000000000002000000013ac0388c00000074000000200000000000000000000000000000002000000003reloc/mount/config-redhat-linux   auto_file=/etc/sysconfig/amd
long_fstypes=1
fstab_file=/etc/fstab
smbclient_path=smbclient
nmblookup_path=nmblookup
07070100007711000081a40000000000000002000000013ac0388c00000091000000200000000000000000000000000000002400000003reloc/mount/config-redhat-linux-5.0   auto_file=/etc/sysconfig/amd
autofs_file=/etc/auto.master
long_fstypes=1
fstab_file=/etc/fstab
smbclient_path=smbclient
nmblookup_path=nmblookup
   07070100007712000081a40000000000000002000000013ac0388c00000091000000200000000000000000000000000000002400000003reloc/mount/config-redhat-linux-5.1   auto_file=/etc/sysconfig/amd
autofs_file=/etc/auto.master
long_fstypes=1
fstab_file=/etc/fstab
smbclient_path=smbclient
nmblookup_path=nmblookup
   07070100007713000081a40000000000000002000000013ac0388c00000091000000200000000000000000000000000000002400000003reloc/mount/config-redhat-linux-5.2   auto_file=/etc/sysconfig/amd
autofs_file=/etc/auto.master
long_fstypes=1
fstab_file=/etc/fstab
smbclient_path=smbclient
nmblookup_path=nmblookup
   07070100007714000081a40000000000000002000000013ac0388c00000091000000200000000000000000000000000000002400000003reloc/mount/config-redhat-linux-6.0   auto_file=/etc/sysconfig/amd
autofs_file=/etc/auto.master
long_fstypes=1
fstab_file=/etc/fstab
smbclient_path=smbclient
nmblookup_path=nmblookup
   07070100007715000081a40000000000000002000000013ac0388d0000008c000000200000000000000000000000000000002400000003reloc/mount/config-redhat-linux-6.1   auto_file=/etc/amd.conf
autofs_file=/etc/auto.master
long_fstypes=1
fstab_file=/etc/fstab
smbclient_path=smbclient
nmblookup_path=nmblookup
07070100007716000081a40000000000000002000000013ac0388d0000008c000000200000000000000000000000000000002400000003reloc/mount/config-redhat-linux-6.2   auto_file=/etc/amd.conf
autofs_file=/etc/auto.master
long_fstypes=1
fstab_file=/etc/fstab
smbclient_path=smbclient
nmblookup_path=nmblookup
07070100007717000081a40000000000000002000000013ac0388d0000008c000000200000000000000000000000000000002400000003reloc/mount/config-redhat-linux-7.0   auto_file=/etc/amd.conf
autofs_file=/etc/auto.master
long_fstypes=1
fstab_file=/etc/fstab
smbclient_path=smbclient
nmblookup_path=nmblookup
07070100007718000081a40000000000000002000000013ac0388d0000008c000000200000000000000000000000000000002400000003reloc/mount/config-redhat-linux-7.1   auto_file=/etc/amd.conf
autofs_file=/etc/auto.master
long_fstypes=1
fstab_file=/etc/fstab
smbclient_path=smbclient
nmblookup_path=nmblookup
07070100007719000081a40000000000000002000000013ac0388c00000057000000200000000000000000000000000000002300000003reloc/mount/config-slackware-linux    fstab_file=/etc/fstab
long_fstypes=1
smbclient_path=smbclient
nmblookup_path=nmblookup
 0707010000771a000081a40000000000000002000000013ac0388c0000009f000000200000000000000000000000000000001b00000003reloc/mount/config-solaris    autofs_file=/etc/auto_master
fstab_file=/etc/vfstab
long_fstypes=1
smbclient_path=/usr/local/samba/bin/smbclient
nmblookup_path=/usr/local/samba/bin/nmblookup
 0707010000771b000081a40000000000000002000000013ac0388c00000074000000200000000000000000000000000000001e00000003reloc/mount/config-suse-linux long_fstypes=1
fstab_file=/etc/fstab
autofs_file=/etc/auto.master
smbclient_path=smbclient
nmblookup_path=nmblookup
0707010000771c000081a40000000000000002000000013ac0388d00000091000000200000000000000000000000000000001f00000003reloc/mount/config-turbo-linux    auto_file=/etc/sysconfig/amd
autofs_file=/etc/auto.master
long_fstypes=1
fstab_file=/etc/fstab
smbclient_path=smbclient
nmblookup_path=nmblookup
   0707010000771d000081a40000000000000002000000013ac0388d00000091000000200000000000000000000000000000002300000003reloc/mount/config-turbo-linux-4.0    auto_file=/etc/sysconfig/amd
autofs_file=/etc/auto.master
long_fstypes=1
fstab_file=/etc/fstab
smbclient_path=smbclient
nmblookup_path=nmblookup
   0707010000771e000081a40000000000000002000000013ac0388c0000009f000000200000000000000000000000000000001c00000003reloc/mount/config-unixware   autofs_file=/etc/auto_master
fstab_file=/etc/vfstab
long_fstypes=1
smbclient_path=/usr/local/samba/bin/smbclient
nmblookup_path=/usr/local/samba/bin/nmblookup
 0707010000771f000081a40000000000000002000000013ac0388c00000153000000200000000000000000000000000000001800000003reloc/mount/config.info   fstab_file=File listing filesystems mounted at boot time,0
auto_file=NFS automounts file,3
autofs_file=Kernel automounts file,3
long_fstypes=Use long filesystem types,1,1-Yes,0-No
smbclient_path=Full path to <tt>smbclient</tt>,3
nmblookup_path=Full path to <tt>nmblookup</tt>,3
browse_server=Server to request browse list from,3,localhost
 07070100007720000081a40000000000000002000000013ac0388c0000016f000000200000000000000000000000000000001b00000003reloc/mount/config.info.de    fstab_file=Datei mit Dateisystem die beim Booten gemounted werden,0
auto_file=NFS automounts Datei,3
autofs_file=Kernel automounts Datei,3
long_fstypes=Benutze lange Dateisystem Typen,1,1-Ja,0-Nein
smbclient_path=Absoluter Pfad zu <tt>smbclient</tt>,3
nmblookup_path=Absoluter Pfad zu <tt>nmblookup</tt>,3
browse_server=Server tvon dem Browse-Liste geholt werden soll 07070100007721000081a40000000000000002000000013ac0388c000001ad000000200000000000000000000000000000001b00000003reloc/mount/config.info.es    fstab_file=Archivo que contiene la lista de sistemas de archivo montados en el arranque,0
auto_file=Archivo de automontaje de NFS,3
autofs_file=Archivo de automontaje de Kernel,3
long_fstypes=Usar tipos de sistemas de archivo largos,1,1-S,0-No
smbclient_path=Trayectoria completa a <tt>smbclient</tt>,3
nmblookup_path=Trayectoria completa a <tt>nmblookup</tt>,3
browse_server=Servidor del que solicitar la lista,3,M醧uina local
   07070100007722000081a40000000000000002000000013ac0388d00000188000000200000000000000000000000000000001b00000003reloc/mount/config.info.fr    fstab_file=Fichier listant les syst鑝es de fichiers mont閟 au d閙arrage,0
auto_file=Fichier 'automount' NFS,3
autofs_file=Fichier 'automount' du noyau,3
long_fstypes=Utiliser les types de syst鑝e de fichier long,1,1-Oui,0-Non
smbclient_path=Chemin d'acc鑣 de <tt>smbclient</tt>,3
nmblookup_path=Chemin d'acc鑣 de <tt>nmblookup</tt>,3
browse_server=Serveur de requ阾e de la liste,3,h魌e local
07070100007723000081a40000000000000002000000013ac0388d000001c5000000200000000000000000000000000000001b00000003reloc/mount/config.info.pl    fstab_file=Plik zawiraj眂y list system體 plik體 montowanych przy starcie,0
auto_file=Plik automatycznych montowa po NFS,3
autofs_file=Plik automatycznych montowa kernela,3
long_fstypes=U縴waj d硊gich nazw typ體 system體 plik體,1,1-Tak,0-Nie
smbclient_path=Pe硁a 禼ie縦a do programu <tt>smbclient</tt>,3
nmblookup_path=Pe硁a 禼ie縦a do programu <tt>nmblookup</tt>,3
browse_server=Serwer, z&nbsp;kt髍ego pobierana jest <tt>browse list</tt>,3,localhost
   07070100007724000081a40000000000000002000000013ac0388d0000017d000000200000000000000000000000000000001e00000003reloc/mount/config.info.ru_RU browse_server=彦疴屦 潆 玎镳铖 耧桉赅 狃囿玷磴,3,localhost
auto_file=脏殡 噔蝾祛眚桊钼囗 NFS,3
autofs_file=脏殡 噔蝾祛眚桊钼囗 咪疣,3
nmblookup_path=项腠 矬螯  <tt>nmblookup</tt>,3
smbclient_path=项腠 矬螯  <tt>smbclient</tt>,3
long_fstypes=锐镱朦珙忄螯 '潆桧睇' 蜩稃 羿殡钼 耔耱屐,1,1-泥,0-湾
fstab_file=脏殡 耦 耧桉觐 羿殡钼 耔耱屐 祛眚桊箦禧 镳 玎沭箸赍,0
   07070100007725000081a40000000000000002000000013ac0388d0000017d000000200000000000000000000000000000001e00000003reloc/mount/config.info.ru_SU fstab_file=媪侍 酉 有捎讼 屏侍献偃 由釉磐 拖卧梢张唾 幸 诹且遮伺,0
auto_file=媪侍 磷韵拖卧梢献廖裳 NFS,3
autofs_file=媪侍 磷韵拖卧梢献廖裳 衲伊,3
long_fstypes=橛邢特谙琢载 '奶晌钨' 陨匈 屏侍献偃 由釉磐,1,1-淞,0-钆
smbclient_path=鹣涛偈 姓载  <tt>smbclient</tt>,3
nmblookup_path=鹣涛偈 姓载  <tt>nmblookup</tt>,3
browse_server=笈易乓 奶 诹幸嫌 有捎肆 乱琳谏吻,3,localhost
   07070100007726000081a40000000000000002000000013ac0388d00000166000000200000000000000000000000000000001b00000003reloc/mount/config.info.sv    fstab_file=Fil med filsystem som monteras vid start,0
auto_file=NFS automonterar fil,3
autofs_file=K鋜nan automonterar fil,3
long_fstypes=Anv鋘da l錸ga filsystemtyper,1,1-Ja,0-Nej
smbclient_path=Fullst鋘dig s鰇v鋑 till <tt>smbclient</tt>,3
nmblookup_path=Fullst鋘dig s鰇v鋑 till <tt>nmblookup</tt>,3
browse_server=Server som tillhandah錶ler s鰇lista,3,lokal
  07070100007727000081a40000000000000002000000013ac0388d00000186000000200000000000000000000000000000001b00000003reloc/mount/config.info.tr    fstab_file=A琮lta ba餷anacak olan dosya sistemlerinin bulundu饀 dosya,0
auto_file=NFS otomatik ba餷ant dosyas,3
autofs_file=莈kirdek otomatik ba餷ant dosyas,3
long_fstypes=Uzun dosya sistemi tiplerini kullan,1,1-Evet,0-Hay齬
smbclient_path=<tt>smbclient</tt>'in tam yolu,3
nmblookup_path=<tt>nmblookup</tt>'齨 tam yolu,3
browse_server=Tarama listesinin istenildi餴 sunucu,3,localhost
  07070100007728000081a40000000000000002000000013ac0388d00000127000000200000000000000000000000000000001e00000003reloc/mount/config.info.zh_CN fstab_file=在启动时Mount的文件系统列表,0
auto_file=NFS的automounts文件,3
autofs_file=内核的automounts文件,3
long_fstypes=使用长文件系统类型,1,1-是,0-否
smbclient_path=<tt>smbclient</tt>的完整路径,3
nmblookup_path=<tt>nmblookup</tt>的完整路径,3
browse_server=请求浏览列表的服务器来自,3,localhost
 07070100007729000081a40000000000000002000000013ac0388d00000151000000200000000000000000000000000000002300000003reloc/mount/config.info.zh_TW.Big5    fstab_file=秨诀本更郎╰参郎,0
auto_file=NFS 笆本更郎,3
autofs_file=み笆本更郎,3
long_fstypes=琌ㄏノ郎╰参摸,1,1-琌,0-
smbclient_path= <tt>smbclient</tt> Ч俱隔畖,3
nmblookup_path= <tt>nmblookup</tt> Ч俱隔畖,3
browse_server=璶―聅凝狝竟ㄓ方Server to request browse list from,3,localhost
   0707010000772a000081e40000000000000002000000013ac0388c0000dc44000000200000000000000000000000000000001f00000003reloc/mount/corel-linux-lib.pl    # linux-lib.pl
# Mount table functions for linux

if (&has_command("amd")) {
	local $amd = &read_amd_conf();
	$amd_support = $amd =~ /\[\s*global\s*\]/i ? 2 : 1;
	}
$autofs_support = &has_command("automount");
if (&has_command("mount.smb")) {
	$smbfs_support = `mount.smb -v` =~ /username=/i ? 4 : 3;
	}
elsif (&has_command("mount.smbfs")) {
	$smbfs_support = `mount.smbfs -v` =~ /username=/i ? 4 : 3;
	}
elsif (&has_command("smbmount")) {
	$smbfs_support = `smbmount -v` =~ /Version\s+2/i ? 2 : 1;
	}
$swaps_support = -r "/proc/swaps";
if (&has_command("e2label") &&
    `mount --version 2>&1` =~ /(\d+)\.(\d+)/ && ($1 > 2 || $1==2 && $2 >= 10)) {
	$has_e2label = 1;
	}

# Return information about a filesystem, in the form:
#  directory, device, type, options, fsck_order, mount_at_boot
# If a field is unused or ignored, a - appears instead of the value.
# Swap-filesystems (devices or files mounted for VM) have a type of 'swap',
# and 'swap' in the directory field
sub list_mounts
{
return @list_mounts_cache if (@list_mounts_cache);
local(@rv, @p, @o, $_, $i, $j); $i = 0;

# Get /etc/fstab mounts
open(FSTAB, $config{fstab_file});
while(<FSTAB>) {
	local(@o, $at_boot);
	chop; s/#.*$//g;
	if (!/\S/ || /\signore\s/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "proc") { $p[0] = "proc"; }
	elsif ($p[2] eq "auto") { $p[2] = "*"; }
	elsif ($p[2] eq "swap") { $p[1] = "swap"; }
	elsif ($p[2] eq "smbfs") { $p[0] =~ s/\//\\/g; }
	$rv[$i] = [ $p[1], $p[0], $p[2] ];
	$rv[$i]->[5] = "yes";
	@o = split(/,/ , $p[3] eq "defaults" ? "" : $p[3]);
	if (($j = &indexof("noauto", @o)) >= 0) {
		# filesytem is not mounted at boot
		splice(@o, $j, 1);
		$rv[$i]->[5] = "no";
		}
	$rv[$i]->[3] = (@o ? join(',' , @o) : "-");
	$rv[$i]->[4] = (@p >= 5 ? $p[5] : 0);
	$i++;
	}
close(FSTAB);

if ($amd_support == 1) {
	# Get old automounter configuration, as used by redhat
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		@p = split(/\s+/, $1);
		for($j=0; $j<@p; $j+=2) {
			$rv[$i++] = [ $p[$j], $p[$j+1], "auto",
				      "-", 0, "yes" ];
			}
		}
	}
elsif ($amd_support == 2) {
	# Guess what? There's now a *new* amd config file format, introduced
	# in redhat 6.1 and caldera 2.3
	local @amd = &parse_amd_conf();
	local @sp = split(/:/, $amd[0]->{'opts'}->{'search_path'});
	local ($am, $sp);
	foreach $am (@amd) {
		local $mn = $am->{'opts'}->{'map_name'};
		if ($mn !~ /^\//) {
			foreach $sp (@sp) {
				if (-r "$sp/$mn") {
					$mn = "$sp/$mn";
					last;
					}
				}
			}
		$rv[$i++] = [ $am->{'dir'}, $mn,
			      "auto", $am->{'opts'}, 0, "yes" ]
			if ($am->{'dir'} ne 'global');
		}
	}

# Get kernel automounter configuration
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	while(<AUTO>) {
		chop;
		s/#.*$//g;
		if (/^\s*(\S+)\s+(\S+)\s*(.*)$/) {
			$rv[$i++] = [ $1, $2, "autofs",
				      ($3 ? &autofs_options($3) : "-"),
				      0, "yes" ];
			}
		}
	close(AUTO);
	}

@list_mounts_cache = @rv;
return @rv;
}


# create_mount(directory, device, type, options, fsck_order, mount_at_boot)
# Add a new entry to the fstab file, old or new automounter file
sub create_mount
{
local(@mlist, @amd, $_); local($opts);

if ($_[2] eq "auto") {
	if ($amd_support == 1) {
		# Adding an old automounter mount
		local $amd = &read_amd_conf();
		local $m = "$_[0] $_[1]";
		if ($amd =~ /MOUNTPTS=''/) {
			$amd =~ s/MOUNTPTS=''/MOUNTPTS='$m'/;
			}
		else {
			$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$1 $m'/;
			}
		&write_amd_conf($amd);
		}
	elsif ($amd_support == 2) {
		# Adding a new automounter mount
		open(AMD, ">>$config{'auto_file'}");
		print AMD "\n";
		print AMD "[ $_[0] ]\n";
		print AMD "map_name = $_[1]\n";
		close(AMD);
		}
	}
elsif ($_[2] eq "autofs") {
	# Adding a new automounter mount
	open(AUTO, ">> $config{'autofs_file'}");
	print AUTO "$_[0]  $_[1]";
	if ($_[3]) { print AUTO "  ",&autofs_args($_[3]); }
	print AUTO "\n";
	close(AUTO);
	}
else {
	# Adding a normal mount to the fstab file
	local $dev = $_[1];
	$dev =~ s/\\/\//g if ($_[2] eq 'smbfs');
	open(FSTAB, ">> $config{fstab_file}");
	print FSTAB "$dev  $_[0]  $_[2]";
	$opts = $_[3] eq "-" ? "" : $_[3];
	if ($_[5] eq "no") {
		$opts = join(',' , (split(/,/ , $opts) , "noauto"));
		}
	if ($opts eq "") { print FSTAB "  defaults"; }
	else { print FSTAB "  $opts"; }
	print FSTAB "  0  ";
	print FSTAB $_[4] eq "-" ? "0\n" : "$_[4]\n";
	close(FSTAB);
	}
undef(@list_mounts_cache);
}


# change_mount(num, directory, device, type, options, fsck_order, mount_at_boot)
# Change an existing permanent mount
sub change_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $line !~ /\signore\s/ && $i++ == $_[0]) {
		# Found the line to replace
		print FSTAB "$_[2]  $_[1]  $_[3]";
		$opts = $_[4] eq "-" ? "" : $_[4];
		if ($_[6] eq "no") {
			$opts = join(',' , (split(/,/ , $opts) , "noauto"));
			}
		if ($opts eq "") { print FSTAB "  defaults"; }
		else { print FSTAB "  $opts"; }
		print FSTAB "  0  ";
		print FSTAB $_[5] eq "-" ? "0\n" : "$_[5]\n";
		}
	else { print FSTAB $_,"\n"; }
	}
close(FSTAB);

if ($amd_support == 1) {
	# Update older amd configuration
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		# found mount points line..
		local @mpts = split(/\s+/, $1);
		for($j=0; $j<@mpts; $j+=2) {
			if ($i++ == $_[0]) {
				$mpts[$j] = $_[1];
				$mpts[$j+1] = $_[2];
				}
			}
		local $mpts = join(" ", @mpts);
		$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$mpts'/;
		}
	&write_amd_conf($amd);
	}
elsif ($amd_support == 2) {
	# Update new amd configuration
	local @amd = &parse_amd_conf();
	local $lref = &read_file_lines($config{'auto_file'});
	foreach $am (@amd) {
		next if ($am->{'dir'} eq 'global');
		if ($i++ == $_[0]) {
			local @nl = ( "[ $_[1] ]" );
			local %opts = %{$am->{'opts'}};
			$opts->{'map_name'} = $_[2];
			foreach $o (keys %opts) {
				push(@nl, "$o = $opts{$o}");
				}
			splice(@$lref, $am->{'line'},
			       $am->{'eline'} - $am->{'line'} + 1, @nl);
			}
		}
	&flush_file_lines();
	}

# Update autofs configuration
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	@auto = <AUTO>;
	close(AUTO);
	open(AUTO, "> $config{'autofs_file'}");
	foreach (@auto) {
		chop; ($line = $_) =~ s/#.*$//g;
		if ($line =~ /\S/ && $i++ == $_[0]) {
			print AUTO "$_[1]  $_[2]";
			if ($_[4]) { print AUTO "  ",&autofs_args($_[4]); }
			print AUTO "\n";
			}
		else { print AUTO $_,"\n"; }
		}
	close(AUTO);
	}
undef(@list_mounts_cache);
}


# delete_mount(index)
# Delete an existing permanent mount
sub delete_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line !~ /\S/ || $line =~ /\signore\s/ || $i++ != $_[0]) {
		# Don't delete this line
		print FSTAB $_,"\n";
		}
	}
close(FSTAB);

if ($amd_support == 1) {
	# Update older amd configuration
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		# found mount points line..
		local @mpts = split(/\s+/, $1);
		for($j=0; $j<@mpts; $j+=2) {
			if ($i++ == $_[0]) {
				splice(@mpts, $j, 2);
				}
			}
		local $mpts = join(" ", @mpts);
		$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$mpts'/;
		}
	&write_amd_conf($amd);
	}
elsif ($amd_support == 2) {
	# Update new amd configuration
	local @amd = &parse_amd_conf();
	local $lref = &read_file_lines($config{'auto_file'});
	foreach $am (@amd) {
		next if ($am->{'dir'} eq 'global');
		if ($i++ == $_[0]) {
			splice(@$lref, $am->{'line'},
			       $am->{'eline'} - $am->{'line'} + 1);
			}
		}
	&flush_file_lines();
	}

# Update AMD file
if ($amd_support) {
	open(AMD, $config{auto_file});
	@amd = <AMD>;
	close(AMD);
	open(AMD, "> $config{auto_file}");
	foreach (@amd) {
		if (/MOUNTPTS='(.*)'/) {
			# found mount points line..
			@mpts = split(/\s+/, $1);
			for($j=0; $j<@mpts; $j+=2) {
				if ($i++ != $_[0]) {
					push(@nmpts, $mpts[$j]);
					push(@nmpts, $mpts[$j+1]);
					}
				}
			print AMD "MOUNTPTS='".join(' ', @nmpts)."'\n";
			}
		else { print AMD $_; }
		}
	close(AMD);
	}

# Update autofs file
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	@auto = <AUTO>;
	close(AUTO);
	open(AUTO, "> $config{'autofs_file'}");
	foreach (@auto) {
		chop; ($line = $_) =~ s/#.*$//g;
		if ($line !~ /\S/ || $i++ != $_[0]) {
			# keep this line
			print AUTO $_,"\n";
			}
		}
	close(AUTO);
	}
undef(@list_mounts_cache);
}


# list_mounted()
# Return a list of all the currently mounted filesystems and swap files.
# The list is in the form:
#  directory device type options
sub list_mounted
{
return @list_mounted_cache if (@list_mounted_cache);
local(@rv, @p, @o, $mo, $_, %smbopts);
local @mounts = &list_mounts();

&read_smbopts();
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	chop;
	s/#.*$//g; if (!/\S/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "auto" || $p[0] =~ /^\S+:\(pid\d+\)$/) {
		# Automounter map.. turn the map= option into the device
		@o = split(/,/ , $p[3]);
		($mo) = grep {/^map=/} (@o);
		$mo =~ /^map=(.*)$/; $p[0] = $1;
		$p[3] = join(',' , grep {!/^map=/} (@o));
		$p[2] = "auto";
		}
	elsif ($p[2] eq "autofs") {
		# Kernel automounter map.. use the pid to find the map
		$p[0] =~ /automount\(pid(\d+)\)/ || next;
		$out = `ps hwwww $1`;
		$out =~ /automount\s+(.*)\s*(\S+)\s+(file|program|yp)(,\S+)?\s+(\S+)/ || next;
		$p[0] = $5;
		$p[3] = $1 ? &autofs_options($1) : "-";
		}
	elsif ($p[2] eq "smbfs") {
		# Change from //FOO/BAR to \\foo\bar
		$p[0] =~ s/\//\\/g;
		$p[0] = lc($p[0]);
		$p[3] = $smbopts{$p[1]};
		}
	elsif ($p[2] eq "proc") {
		# The source for proc mounts is always proc
		$p[0] = "proc";
		}
	if ($p[2] eq 'ext2' && $has_e2label) {
		# Check for a label on this partition, and there is one
		# and this filesystem is in fstab with the label, change
		# the device.
		local $label = `e2label $p[0] 2>^1`;
		if (!$?) {
			chop($label);
			foreach $m (@mounts) {
				if ($m->[0] eq $p[1] &&
				    $m->[1] eq "LABEL=$label") {
					$p[0] = "LABEL=$label";
					last;
					}
				}
			}
		}
	# check fstab for a mount on the same dir which is a symlink
	# to the device
	local @st = stat($p[0]);
	foreach $m (@mounts) {
		if ($m->[0] eq $p[1]) {
			local @fst = stat($m->[1]);
			if ($fst[0] == $st[0] && $fst[1] == $st[1]) {
				# symlink to the same place!
				$p[0] = $m->[1];
				last;
				}
			}
		}
	push(@rv, [ $p[1], $p[0], $p[2], $p[3] ]);
	}
close(MTAB);
open(SWAPS, "/proc/swaps");
while(<SWAPS>) {
	chop;
	if (/^(\/\S+)\s+/) {
		push(@rv, [ "swap", $1, "swap", "-" ]);
		}
	}
close(SWAPS);
@list_mounted_cache = @rv;
return @rv;
}


# mount_dir(directory, device, type, options)
# Mount a new directory from some device, with some options. Returns 0 if ok,
# or an error string if failed
sub mount_dir
{
local($out, $opts, $shar, %options, %smbopts);
if ($_[2] eq "swap") {
	# Use swapon to add the swap space..
	$out = &backquote_logged("swapon $_[1] 2>&1");
	if ($out =~ /Invalid argument/) {
		# looks like this swap partition isn't ready yet.. set it up
		$out = &backquote_logged("mkswap $_[1] 2>&1");
		if ($?) { return "mkswap failed : <pre>$out</pre>"; }
		$out = &backquote_logged("swapon $_[1] 2>&1");
		}
	if ($?) { return "<pre>$out</pre>"; }
	}
elsif ($_[2] eq "auto") {
	# Old automounter filesystem
	$out = &backquote_logged("amd $_[0] $_[1] >/dev/null 2>/dev/null");
	if ($?) { return $text{'linux_eamd'}; }
	}
elsif ($_[2] eq "autofs") {
	# New automounter filesystem
	$opts = &autofs_args($_[3]);
	$type = $_[1] !~ /^\// ? "yp" :
		(-x $_[1]) ? "program" : "file";
	$out = &backquote_logged("automount $opts $_[0] $type $_[1] 2>&1");
	if ($?) { return &text('linux_eauto', "<pre>$out</pre>"); }
	}
elsif ($_[2] eq "smbfs") {
	local $shar = $_[1];
	$shar =~ s/\\/\//g;
	if ($smbfs_support >= 3) {
		# SMB filesystem mounted with mount command
		$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
		$out = &backquote_logged("mount -t $_[2] $opts $shar $_[0] 2>&1");
		if ($? || $out =~ /failed/i) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "mount -t $_[2] $opts $shar $_[0] : <pre>$out</pre>";
			}
		}
	elsif ($smbfs_support == 2) {
		# SMB filesystem mounted with version 2.x smbmount
		&parse_options("smbfs", $_[3]);
		$opts =
		    ($options{'user'} ? "-U $options{'user'} " : "").
		    ($options{'passwd'} ? "" : "-N ").
		    ($options{'workgroup'} ? "-W $options{'workgroup'} " : "").
		    ($options{'clientname'} ? "-n $options{'clientname'} " : "").
		    ($options{'machinename'} ? "-I $options{'machinename'} " : "");
		&foreign_require("proc", "proc-lib.pl");
		local ($fh, $fpid) = &foreign_call(
			"proc", "pty_process_exec_logged", "sh", "-c",
			"smbmount $shar $_[0] -d 0 $opts");
		if ($options{'passwd'}) {
			local $w = &wait_for($fh, "word:");
			if ($w < 0) {
				&system_logged("umount $_[0] >/dev/null 2>&1");
				return $text{'linux_esmbconn'};
				}
			local $p = "$options{'passwd'}\n";
			syswrite($fh, $p, length($p));
			}
		local $got;
		while(<$fh>) {
			$got .= $_;
			}
		if ($got =~ /failed/) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "<pre>$got</pre>\n";
			}
		close($fh);
		}
	elsif ($smbfs_support == 1) {
		# SMB filesystem mounted with older smbmount
		&parse_options("smbfs", $_[3]);
		$shortname = &get_system_hostname();
		if ($shortname =~ /^([^\.]+)\.(.+)$/) { $shortname = $1; }
		$opts =
		   ($options{servername} ? "-s $options{servername} " : "").
		   ($options{clientname} ? "-c $options{clientname} "
					 : "-c $shortname ").
		   ($options{machinename} ? "-I $options{machinename} " : "").
		   ($options{user} ? "-U $options{user} " : "").
		   ($options{passwd} ? "-P $options{passwd} " : "-n ").
		   ($options{uid} ? "-u $options{uid} " : "").
		   ($options{gid} ? "-g $options{gid} " : "").
		   ($options{fmode} ? "-f $options{fmode} " : "").
		   ($options{dmode} ? "-d $options{dmode} " : "");
		$out = &backquote_logged("smbmount $shar $_[0] $opts 2>&1");
		if ($out) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "<pre>$out</pre>";
			}
		}
	&read_smbopts();
	$smbopts{$_[0]} = $_[3] eq "-" ? "dummy=1" : $_[3];
	&write_smbopts();
	}
else {
	# some filesystem supported by mount
	$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
	if ($_[1] =~ /LABEL=(.*)/) {
		$cmd = "mount -t $_[2] -L $1 $opts $_[0]";
		}
	else {
		$cmd = "mount -t $_[2] $opts $_[1] $_[0]";
		}
	$out = &backquote_logged("$cmd 2>&1");
	if ($?) { return "<pre>$cmd : $out</pre>"; }
	}
undef(@list_mounted_cache);
return 0;
}


# unmount_dir(directory, device, type)
# Unmount a directory that is currently mounted. Returns 0 if ok,
# or an error string if failed
sub unmount_dir
{
local($out, %smbopts, $dir);
if ($_[2] eq "swap") {
	# Use swapoff to remove the swap space..
	$out = &backquote_logged("swapoff $_[1]");
	if ($?) { return "<pre>$out</pre>"; }
	}
elsif ($_[2] eq "auto") {
	# Kill the amd process
	$dir = $_[0];
	if (`cat /etc/mtab` =~ /:\(pid([0-9]+)\)\s+$dir\s+(auto|nfs)\s+/) {
		&kill_logged('TERM', $1) || return $text{'linux_ekillamd'};
		}
	sleep(2);
	}
elsif ($_[2] eq "autofs") {
	# Kill the automount process
	$dir = $_[0];
	`cat /etc/mtab` =~ /automount\(pid([0-9]+)\)\s+$dir\s+autofs\s+/;
	&kill_logged('TERM', $1) || return $text{'linux_ekillauto'};
	sleep(2);
	}
else {
	$out = &backquote_logged("umount $_[0] 2>&1");
	if ($?) { return "<pre>$out</pre>"; }
	if ($_[2] eq "smbfs") {
		# remove options from list
		&read_smbopts();
		delete($smbopts{$_[0]});
		&write_smbopts();
		}
	}
undef(@list_mounted_cache);
return 0;
}


# mount_modes(type)
# Given a filesystem type, returns 4 numbers that determine how the file
# system can be mounted, and whether it can be fsck'd
#  0 - cannot be permanently recorded
#	(smbfs under linux before 2.2)
#  1 - can be permanently recorded, and is always mounted at boot
#	(swap under linux)
#  2 - can be permanently recorded, and may or may not be mounted at boot
#	(most normal filesystems)
# The second is:
#  0 - mount is always permanent => mounted when saved
#	(swap under linux before 2.2)
#  1 - doesn't have to be permanent
#	(normal fs types)
# The third is:
#  0 - cannot be fsck'd at boot time
#  1 - can be be fsck'd at boot
# The fourth is:
#  0 - can be unmounted
#  1 - cannot be unmounted
sub mount_modes
{
if ($_[0] eq "swap")
	{ return (1, $swaps_support ? 1 : 0, 0, 0); }
elsif ($_[0] eq "auto" || $_[0] eq "autofs")
	{ return (1, 1, 0, 0); }
elsif ($_[0] eq "smbfs")
	{ return ($smbfs_support >= 3 ? 2 : 0, 1, 0, 0); }
elsif ($_[0] eq "ext2" || $_[0] eq "minix" || $_[0] eq "xiafs")
	{ return (2, 1, 1, 0); }
else
	{ return (2, 1, 0, 0); }
}


# disk_space(type, directory)
# Returns the amount of total and free space for some filesystem, or an
# empty array if not appropriate.
sub disk_space
{
if (&get_mounted($_[1], "*") < 0) { return (); }
if ($_[0] eq "proc" || $_[0] eq "swap" ||
    $_[0] eq "auto" || $_[0] eq "autofs") { return (); }
`df -k $_[1]` =~ /Mounted on\n\S+\s+(\S+)\s+\S+\s+(\S+)/;
return ($1, $2);
}


# list_fstypes()
# Returns an array of all the supported filesystem types. If a filesystem is
# found that is not one of the supported types, generate_location() and
# generate_options() will not be called for it.
sub list_fstypes
{
local @sup = ("ext2", "minix", "msdos", "nfs", "iso9660", "ext", "xiafs",
	      "hpfs", "fat", "vfat", "umsdos", "sysv", "reiserfs");
push(@sup, "smbfs") if ($smbfs_support);
push(@sup, "auto") if ($amd_support);
push(@sup, "autofs") if ($autofs_support);
push(@sup, "swap");
return @sup;
}


# fstype_name(type)
# Given a short filesystem type, return a human-readable name for it
sub fstype_name
{
local(%fsmap);
%fsmap = ("ext2","Linux Native Filesystem",
	  "minix","Minix Filesystem",
	  "msdos","MS-DOS Filesystem",
	  "nfs","Network Filesystem",
	  "smbfs","Windows Networking Filesystem",
	  "iso9660","ISO9660 CD-ROM",
	  "ext","Old EXT Linux Filesystem",
	  "xiafs","Old XIAFS Linux Filesystem",
	  "hpfs","OS/2 Filesystem",
	  "fat","MS-DOS Filesystem",
	  "vfat","Windows 95 Filesystem",
	  "umsdos","Linux on top of MS-DOS Filesystem",
	  "sysv","System V Filesystem",
	  "swap","Virtual Memory",
	  "proc","Kernel Filesystem",
	  "devpts","PTS Filesystem",
	  "auto",($autofs_support ? "Old " : "")."Automounter Filesystem",
	  "reiserfs","Reiser Filesystem",
	  "autofs","New Automounter Filesystem",
	  "usbdevfs","USB Devices",
	  "shm","SysV Shared Memory");
return $config{long_fstypes} && $fsmap{$_[0]} ? $fsmap{$_[0]} : uc($_[0]);
}


# multiple_mount(type)
# Returns 1 if filesystems of this type can be mounted multiple times, 0 if not
sub multiple_mount
{
return ($_[0] eq "nfs" || $_[0] eq "auto" || $_[0] eq "autofs");
}


# generate_location(type, location)
# Output HTML for editing the mount location of some filesystem.
sub generate_location
{
if ($_[0] eq "nfs") {
	# NFS mount from some host and directory
	$_[1] =~ /^([^:]+):(.*)$/;
	print "<tr> <td><b>$text{'linux_nfshost'}</b></td>\n";
	print "<td><input name=nfs_host size=20 value=\"$1\">\n";
	&nfs_server_chooser_button("nfs_host");
	print "&nbsp;<b>$text{'linux_nfsdir'}</b>\n";
	print "<input name=nfs_dir size=20 value=\"$2\">\n";
	&nfs_export_chooser_button("nfs_host", "nfs_dir");
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "auto") {
	# Using some automounter map
	print "<tr> <td><b>$text{'linux_map'}</b></td>\n";
	print "<td><input name=auto_map size=20 value=\"$_[1]\">\n";
	print &file_chooser_button("auto_map", 0);
	print "</td> <td colspan=2></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	# Using some kernel automounter map
	print "<tr> <td><b>$text{'linux_map'}</b></td>\n";
	print "<td><input name=autofs_map size=20 value=\"$_[1]\">\n";
	print &file_chooser_button("autofs_map", 0);
	print "</td> <td colspan=2></td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swap file or device
	&foreign_require("fdisk", "fdisk-lib.pl");
	printf "<tr> <td valign=top><b>$text{'linux_swapfile'}</b></td>\n";
	print "<td colspan=3>\n";
	local $found;
	local $sel = &foreign_call("fdisk", "partition_select", "lnx_disk",
				   $_[1], 3, \$found);
	printf "<input type=radio name=lnx_dev value=0 %s> %s %s<br>\n",
		$found ? "checked" : "", $text{'linux_disk'}, $sel;
	printf "<input type=radio name=lnx_dev value=1 %s> %s\n",
		$found ? "" : "checked", $text{'linux_swapfile'};
	printf "<input name=lnx_other size=35 value='%s'><br>\n",
		$found ? "" : $_[1];
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "smbfs") {
	# Windows filesystem
	$_[1] =~ /^\\\\(.*)\\(.*)$/;
	print "<tr> <td><b>$text{'linux_smbserver'}</b></td>\n";
	print "<td><input name=smbfs_server value=\"$1\" size=20>\n";
	&smb_server_chooser_button("smbfs_server");
	print "</td>\n";
	print "<td><b>$text{'linux_smbshare'}</b></td>\n";
	print "<td><input name=smbfs_share value=\"$2\" size=20>\n";
	&smb_share_chooser_button("smbfs_server", "smbfs_share");
	print "</td> </tr>\n";
	}
else {
	# This is some linux disk-based filesystem
	&foreign_require("fdisk", "fdisk-lib.pl");
	printf "<tr> <td valign=top><b>%s</b></td>\n", &fstype_name($_[0]);
	print "<td colspan=3>\n";
	local ($found, $rfound, $lfound, $rsel, $c);
	local $sel = &foreign_call("fdisk", "partition_select", "lnx_disk",
				   $_[1], 0, \$found);
	printf "<input type=radio name=lnx_dev value=0 %s> %s %s<br>\n",
		$found ? "checked" : "", $text{'linux_disk'}, $sel;

	if (&foreign_check("raid")) {
		&foreign_require("raid", "raid-lib.pl");
		local $conf = &foreign_call("raid", "get_raidtab");
		foreach $c (@$conf) {
			if ($c->{'active'}) {
				$rsel .= sprintf "<option value=%s %s>%s\n",
					$c->{'value'},
					$_[1] eq $c->{'value'} ? 'selected' : '',
					&text('linux_rdev', substr($c->{'value'}, -1));
				$rfound++ if ($_[1] eq $c->{'value'});
				}
			}
		if ($rsel) {
			printf "<input type=radio name=lnx_dev value=2 %s> %s\n",
				$rfound ? "checked" : " ", $text{'linux_raid'};
			print "<select name=lnx_raid>\n",$rsel,"</select><br>\n";
			}
		}

	if ($has_e2label) {
		local $l = $_[1] =~ /LABEL=(.*)/ ? $1 : undef;
		local $esel = &foreign_call("fdisk", "label_select",
					    "lnx_label", $l, \$lfound);
		if ($esel) {
			printf "<input type=radio name=lnx_dev value=3 %s> %s %s<br>\n", $lfound ? "checked" : "", $text{'linux_lsel'}, $esel;
			}
		}

	printf "<input type=radio name=lnx_dev value=1 %s> %s\n",
		$found || $rfound || $lfound ? "" : "checked", $text{'linux_other'};
	printf "<input name=lnx_other size=35 value='%s'><br>\n",
		$found || $rfound || $lfound ? "" : $_[1];
	print "</td> </tr>\n";
	}
}


# generate_options(type, newmount)
# Output HTML for editing mount options for a particular filesystem 
# under this OS
sub generate_options
{
if ($_[0] ne "swap" && $_[0] ne "auto" &&
    $_[0] ne "autofs" && $_[0] ne "smbfs") {
	# Lots of options are common to all linux filesystems
	print "<tr> <td><b>$text{'linux_ro'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_ro value=1 %s> $text{'yes'}\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=lnx_ro value=0 %s> $text{'no'}</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>$text{'linux_sync'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_sync value=0 %s> $text{'yes'}\n",
		defined($options{"sync"}) ? "" : "checked";
	printf "<input type=radio name=lnx_sync value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"sync"}) ? "checked" : "";

	print "<tr> <td><b>$text{'linux_nodev'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_nodev value=0 %s> $text{'yes'}\n",
		defined($options{"nodev"}) ? "" : "checked";
	printf "<input type=radio name=lnx_nodev value=1 %s> $text{'no'}</td>\n",
		defined($options{"nodev"}) ? "checked" : "";

	print "<td><b>$text{'linux_noexec'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_noexec value=0 %s> $text{'yes'}\n",
		defined($options{"noexec"}) ? "" : "checked";
	printf "<input type=radio name=lnx_noexec value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"noexec"}) ? "checked" : "";

	print "<tr> <td><b>$text{'linux_nosuid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_nosuid value=1 %s> $text{'yes'}\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=lnx_nosuid value=0 %s> $text{'no'}</td>\n",
		defined($options{"nosuid"}) ? "" : "checked";

	print "<td><b>$text{'linux_user'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_user value=1 %s> $text{'yes'}\n",
		defined($options{"user"}) ? "checked" : "";
	printf "<input type=radio name=lnx_user value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"user"}) ? "" : "checked";
	}
	
if ($_[0] eq "ext2") {
	# Ext2 has lots more options..
	print "<tr> <td><b>$text{'linux_check'}</b></td>\n";
	print "<td><select name=ext2_check>\n";
	printf "<option value=normal %s> $text{'linux_normal'}\n",
		$options{"check"} eq "" || $options{"check"} eq "normal" ?
			"selected" : "";
	printf "<option value=strict %s> $text{'linux_strict'}\n",
		$options{"check"} eq "strict" ? "selected" : "";
	printf "<option value=none %s> $text{'linux_none'}\n",
		$options{"check"} eq "none" || defined($options{"nocheck"}) ?
			"selected" : "";
	print "</select></td>\n";

	print "<td><b>$text{'linux_errors'}</b></td>\n";
	print "<td><select name=ext2_errors>\n";
	printf "<option value=default %s> $text{'default'}\n",
		!defined($options{"errors"}) ? "selected" : "";
	printf "<option value=continue %s> $text{'linux_continue'}\n",
		$options{"error"} eq "continue" ? "selected" : "";
	printf "<option value=remount-ro %s> $text{'linux_remount_ro'}\n",
		$options{"error"} eq "remount-ro" ? "selected" : "";
	printf "<option value=panic %s> $text{'linux_panic'}\n",
		$options{"error"} eq "panic" ? "selected" : "";
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_grpid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=ext2_grpid value=0 %s> $text{'yes'}\n",
		defined($options{"grpid"}) || defined($options{"bsdgroups"}) ?
			"" : "checked";
	printf "<input type=radio name=ext2_grpid value=1 %s> $text{'no'}</td>\n",
		defined($options{"grpid"}) || defined($options{"bsdgroups"}) ?
			"checked" : "";

	print "<td><b>$text{'linux_quotas'}</b></td>\n";
	local $usrquota = defined($options{"usrquota"});
	local $grpquota = defined($options{"grpquota"});
	print "<td nowrap><select name=ext2_quota>\n";
	printf "<option value=0 %s> $text{'no'}\n",
		$usrquota || $grpquota ? "" : "selected";
	printf "<option value=1 %s> $text{'linux_usrquota'}\n",
		$usrquota && !$grpquota ? "selected" : "";
	printf "<option value=2 %s> $text{'linux_grpquota'}\n",
		$grpquota && !$usrquota ? "selected" : "";
	if (`uname -r` =~ /^2\.0\.(\d+)/ && $1 < 31) {
		printf "<option value=3 %s> $text{'linux_usrgrpquota2'}\n",
			$usrquota && $grpquota ? "selected" : "";
		}
	else {
		printf "<option value=3 %s> $text{'linux_usrgrpquota'}\n",
			$usrquota && $grpquota ? "selected" : "";
		}
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_resuid'}</b></td>\n";
	printf "<td><input name=ext2_resuid size=8 value=\"%s\">\n",
		defined($options{"resuid"}) ? getpwuid($options{"resuid"}) : "";
	print &user_chooser_button("ext2_resuid", 0),"</td>\n";

	print "<td><b>$text{'linux_resgid'}</b></td>\n";
	printf "<td><input name=ext2_resgid size=8 value=\"%s\">\n",
		defined($options{"resgid"}) ? getgrgid($options{"resgid"}) : "";
	print &group_chooser_button("ext2_resgid", 0),"</td> </tr>\n";
	}
elsif ($_[0] eq "nfs") {
	# Linux nfs has some more options...
	print "<tr> <td><b>$text{'linux_bg'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_bg value=1 %s> $text{'yes'}\n",
		defined($options{"bg"}) ? "checked" : "";
	printf "<input type=radio name=nfs_bg value=0 %s> $text{'no'}</td>\n",
		defined($options{"bg"}) ? "" : "checked";

	print "<td><b>$text{'linux_soft'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_soft value=1 %s> $text{'yes'}\n",
		defined($options{"soft"}) ? "checked" : "";
	printf "<input type=radio name=nfs_soft value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"soft"}) ? "" : "checked";

	print "<tr> <td><b>$text{'linux_timeo'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_timeo_def value=1 %s> $text{'default'}\n",
		defined($options{"timeo"}) ? "" : "checked";
	printf "<input type=radio name=nfs_timeo_def value=0 %s>\n",
		defined($options{"timeo"}) ? "checked" : "";
	printf "<input size=5 name=nfs_timeo value=$options{timeo}></td>\n";

	print "<td><b>$text{'linux_retrans'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_retrans_def value=1 %s> $text{'default'}\n",
		defined($options{"retrans"}) ? "" : "checked";
	printf "<input type=radio name=nfs_retrans_def value=0 %s>\n",
		defined($options{"retrans"}) ? "checked" : "";
	print "<input size=5 name=nfs_retrans value=$options{retrans}></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_vers'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_vers_def value=1 %s> $text{'linux_high'}\n",
		defined($options{"nfsvers"}) ? "" : "checked";
	printf "<input type=radio name=nfs_vers_def value=0 %s>\n",
		defined($options{"nfsvers"}) ? "checked" : "";
	print "<input size=1 name=nfsvers value=$options{nfsvers}></td>\n";

	print "<td><b>$text{'linux_port'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_port_def value=1 %s> $text{'default'}\n",
		defined($options{"port"}) ? "" : "checked";
	printf "<input type=radio name=nfs_port_def value=0 %s>\n",
		defined($options{"port"}) ? "checked" : "";
	print "<input size=5 name=nfs_port value=$options{port}></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_intr'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_intr value=1 %s> $text{'yes'}\n",
		defined($options{"intr"}) ? "checked" : "";
	printf "<input type=radio name=nfs_intr value=0 %s> $text{'no'}</td>\n",
		defined($options{"intr"}) ? "" : "checked";

	print "<td><b>$text{'linux_tcp'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_tcp value=1 %s> TCP\n",
		defined($options{"tcp"}) ? "checked" : "";
	printf "<input type=radio name=nfs_tcp value=0 %s> UDP</td> </tr>\n",
		defined($options{"tcp"}) ? "" : "checked";
	}
elsif ($_[0] eq "fat" || $_[0] eq "vfat" || $_[0] eq "msdos" || $_[0] eq "umsdos"){
	# All dos-based filesystems share some options
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=fat_uid size=8 value=\"%s\">\n",
		defined($options{'uid'}) ? getpwuid($options{'uid'}) : "";
	print &user_chooser_button("fat_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=fat_gid size=8 value=\"%s\">\n",
		defined($options{'gid'}) ? getgrgid($options{'gid'}) : "";
	print &group_chooser_button("fat_gid", 0),"</td> </tr>\n";

	print "<tr> <td><b>$text{'linux_rules'}</b></td>\n";
	print "<td><select name=fat_check>\n";
	printf "<option value=\"\" %s> $text{'default'}\n",
		defined($options{"check"}) ? "" : "selected";
	printf "<option value=r %s> $text{'linux_relaxed'}\n",
		$options{"check"} =~ /^r/ ? "selected" : "";
	printf "<option value=n %s> $text{'linux_normal'}\n",
		$options{"check"} =~ /^n/ ? "selected" : "";
	printf "<option value=s %s> $text{'linux_strict'}\n",
		$options{"check"} =~ /^s/ ? "selected" : "";
	print "</select></td>\n";

	print "<td><b>$text{'linux_conv'}</b></td>\n";
	print "<td><select name=fat_conv>\n";
	printf "<option value=\"\" %s> $text{'linux_none'}\n",
		$options{"conv"} =~ /^b/ || !defined($options{"conv"}) ?
		"selected" : "";
	printf "<option value=t %s> $text{'linux_allfiles'}\n",
		$options{"conv"} =~ /^t/ ? "selected" : "";
	printf "<option value=a %s> $text{'linux_textfiles'}\n",
		$options{"conv"} =~ /^a/ ? "selected" : "";
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_umask'}</b></td>\n";
	printf "<td><input type=radio name=fat_umask_def value=1 %s> $text{'default'}\n",
		defined($options{"umask"}) ? "" : "checked";
	printf "<input type=radio name=fat_umask_def value=0 %s>\n",
		defined($options{"umask"}) ? "checked" : "";
	print "<input size=5 name=fat_umask value=\"$options{umask}\"></td>\n";

	print "<td><b>$text{'linux_quiet'}</b></td>\n";
	printf "<td nowrap><input type=radio name=fat_quiet value=0 %s> $text{'yes'}\n",
		defined($options{"quiet"}) ? "" : "checked";
	printf "<input type=radio name=fat_quiet value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"quiet"}) ? "checked" : "";

	if ($_[0] eq "vfat") {
		# vfat has some extra options beyond fat
		print "<tr> <td><b>$text{'linux_uni_xlate'}</b></td>\n";
		printf "<td><input type=radio name=fat_uni_xlate value=1 %s> $text{'yes'}\n",
			defined($options{"uni_xlate"}) ? "checked" : "";
		printf "<input type=radio name=fat_uni_xlate value=0 %s> $text{'no'}</td>\n",
			defined($options{"uni_xlate"}) ? "" : "checked";

		print "<td><b>$text{'linux_posix'}</b></td>\n";
		printf "<td nowrap><input type=radio name=fat_posix value=1 %s> $text{'yes'}\n",
			defined($options{"posix"}) ? "checked" : "";
		printf "<input type=radio name=fat_posix value=0 %s> $text{'no'}</td> </tr>\n",
			defined($options{"posix"}) ? "" : "checked";
		}
	}
elsif ($_[0] eq "hpfs") {
	# OS/2 filesystems has some more options..
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=hpfs_uid size=8 value=\"%s\">\n",
		defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
	print &user_chooser_button("hpfs_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=hpfs_gid size=8 value=\"%s\">\n",
		defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
	print &group_chooser_button("hpfs_gid", 0),"</td> </tr>\n";

	print "<tr> <td><b>$text{'linux_umask'}</b></td>\n";
	printf"<td><input type=radio name=hpfs_umask_def value=1 %s> Default\n",
		defined($options{"umask"}) ? "" : "checked";
	printf "<input type=radio name=hpfs_umask_def value=0 %s>\n",
		defined($options{"umask"}) ? "checked" : "";
	print "<input size=5 name=hpfs_umask value=\"$options{umask}\"></td>\n";

	print "<td><b>$text{'linux_conv2'}</b></td>\n";
	print "<td><select name=hpfs_conv>\n";
	printf "<option value=b %s> $text{'linux_none'}\n",
		$options{"conv"} =~ /^b/ || !defined($options{"conv"}) ?
		"selected" : "";
	printf "<option value=t %s> $text{'linux_allfiles'}\n",
		$options{"conv"} =~ /^t/ ? "selected" : "";
	printf "<option value=a %s> $text{'linux_textfiles'}\n",
		$options{"conv"} =~ /^a/ ? "selected" : "";
	print "</select></td> </tr>\n";
	}
elsif ($_[0] eq "iso9660") {
	# CD-ROM filesystems have some more options..
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=iso9660_uid size=8 value=\"%s\">\n",
		defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
	print &user_chooser_button("iso9660_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=iso9660_gid size=8 value=\"%s\">\n",
		defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
	print &group_chooser_button("iso9660_gid", 0),"</td>\n";

	print "<tr> <td><b>$text{'linux_rock'}</b></td>\n";
	printf "<td><input type=radio name=iso9660_norock value=1 %s> $text{'yes'}\n",
		defined($options{"norock"}) ? "checked" : "";
	printf "<input type=radio name=iso9660_norock value=0 %s> $text{'no'}</td>\n",
		defined($options{"norock"}) ? "" : "checked";

	print "<td><b>$text{'linux_mode'}</b></td>\n";
	printf"<td><input size=10 name=iso9660_mode value=\"%s\"></td> </tr>\n",
		defined($options{"mode"}) ? $options{"mode"} : "444";
	}
elsif ($_[0] eq "auto") {
	# Don't know how to set options for auto filesystems yet..
	print "<tr> <td><i>$text{'linux_noopts'}</i></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	print "<tr> <td><b>$text{'linux_timeout'}</b></td> <td>\n";
	printf"<input type=radio name=autofs_timeout_def value=1 %s> $text{'default'}\n",
		defined($options{'timeout'}) ? "" : "checked";
	printf "<input type=radio name=autofs_timeout_def value=0 %s>\n",
		defined($options{'timeout'}) ? "checked" : "";
	printf "<input name=autofs_timeout size=5 value=\"%s\"> $text{'linux_secs'}</td>\n",
		$options{'timeout'};

	print "<td><b>$text{'linux_pid_file'}</b>?</td>\n";
	printf"<td><input type=radio name=autofs_pid-file_def value=1 %s> $text{'no'}\n",
		defined($options{'pid-file'}) ? "" : "checked";
	printf "<input type=radio name=autofs_pid-file_def value=0 %s> $text{'yes'}\n",
		defined($options{'pid-file'}) ? "checked" : "";
	printf "<input name=autofs_pid-file size=20 value=\"%s\">\n",
		$options{'pid-file'};
	print &file_chooser_button("autofs_pid-file", 1);
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swap has no options..
	print "<tr> <td><i>$text{'linux_noopts'}</i></td> </tr>\n";
	}
elsif ($_[0] eq "smbfs") {
	# SMB filesystems have a few options..
	if (keys(%options) == 0 && !$_[1]) {
		print "<tr> <td colspan=4><i>$text{'linux_smbwarn'}</i></td> </tr>\n";
		}

	print "<tr> <td><b>$text{'linux_username'}</b></td>\n";
	printf "<td><input name=smbfs_user size=15 value=\"%s\"></td>\n",
		$smbfs_support == 4 ? $options{'username'} : $options{'user'};

	print "<td><b>$text{'linux_password'}</b></td>\n";
	printf "<td><input type=password name=smbfs_passwd size=15 value=\"%s\"></td> </tr>\n",
		$smbfs_support == 4 ? $options{'password'} : $options{'passwd'};

	if ($smbfs_support != 2) {
		print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
		printf "<td><input name=smbfs_uid size=8 value=\"%s\">\n",
			defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
		print &user_chooser_button("smbfs_uid", 0),"</td>\n";

		print "<td><b>$text{'linux_gid'}</b></td>\n";
		printf "<td><input name=smbfs_gid size=8 value=\"%s\">\n",
			defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
		print &group_chooser_button("smbfs_gid", 0),"</td>\n";
		}

	if ($smbfs_support == 1) {
		print "<tr> <td><b>$text{'linux_sname'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_sname_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"servername"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_sname_def value=0 %s>\n",
			defined($options{"servername"}) ? "checked" : "";
		print "<input size=10 name=smbfs_sname value=\"$options{servername}\"></td>\n";
		}
	elsif ($smbfs_support == 2) {
		print "<tr> <td><b>$text{'linux_wg'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_wg_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"workgroup"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_wg_def value=0 %s>\n",
			defined($options{"workgroup"}) ? "checked" : "";
		print "<input size=10 name=smbfs_wg value=\"$options{'workgroup'}\"></td>\n";
		}

	if ($smbfs_support < 3) {
		print "<td><b>$text{'linux_cname'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_cname_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"clientname"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_cname_def value=0 %s>\n",
			defined($options{"clientname"}) ? "checked" : "";
		print "<input size=10 name=smbfs_cname value=\"$options{clientname}\"></td> </tr>\n";

		print "<tr> <td><b>$text{'linux_mname'}</b></td>\n";
		printf "<td colspan=3><input type=radio name=smbfs_mname_def value=1 %s> %s\n",
			defined($options{"machinename"}) ? "" : "checked", $text{'linux_auto'};
		printf "<input type=radio name=smbfs_mname_def value=0 %s>\n",
			defined($options{"machinename"}) ? "checked" : "";
		print "<input size=30 name=smbfs_mname value=\"$options{machinename}\"></td> </tr>\n";
		}

	if ($smbfs_support == 1) {
		print "<tr> <td><b>$text{'linux_fmode'}</b></td>\n";
		printf
		    "<td><input name=smbfs_fmode size=5 value=\"%s\"></td>\n",
		    defined($options{'fmode'}) ? $options{'fmode'} : "755";

		print "<td><b>$text{'linux_dmode'}</b></td>\n";
		printf
		    "<td><input name=smbfs_dmode size=5 value=\"%s\"></td>\n",
		    defined($options{'dmode'}) ? $options{'dmode'} : "755";
		print "</tr>\n";
		}
	elsif ($smbfs_support >= 3) {
		print "<tr> <td><b>$text{'linux_ro'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_ro value=1 %s> $text{'yes'}\n",
			defined($options{"ro"}) ? "checked" : "";
		printf "<input type=radio name=smbfs_ro value=0 %s> $text{'no'}</td>\n",
			defined($options{"ro"}) ? "" : "checked";

		print "<td><b>$text{'linux_user'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_user2 value=1 %s> $text{'yes'}\n",
			defined($options{"user"}) ? "checked" : "";
		printf "<input type=radio name=smbfs_user2 value=0 %s> $text{'no'}</td> </tr>\n",
			defined($options{"user"}) ? "" : "checked";
		}
	}
elsif ($_[0] eq "reiserfs") {
	# Reiserfs is a new super-efficient filesystem
	print "<tr> <td><b>$text{'linux_notail'}</b></td>\n";
	printf "<td><input type=radio name=lnx_notail value=1 %s> $text{'yes'}\n",
		defined($options{"notail"}) ? "checked" : "";
	printf "<input type=radio name=lnx_notail value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"notail"}) ? "" : "checked";
	}
}


# check_location(type)
# Parse and check inputs from %in, calling &error() if something is wrong.
# Returns the location string for storing in the fstab file
sub check_location
{
if ($_[0] eq "nfs") {
	local($out, $temp, $mout, $dirlist);

	if (&has_command("showmount")) {
		# Use ping and showmount to see if the host exists and is up
		if ($in{nfs_host} !~ /^\S+$/) {
			&error(&text('linux_ehost', $in{'nfs_host'}));
			}
		$out = `ping -c 1 '$in{nfs_host}' 2>&1`;
		if ($out =~ /unknown host/) {
			&error(&text('linux_ehost2', $in{'nfs_host'}));
			}
		elsif ($out =~ /100\% packet loss/) {
			&error(&text('linux_edown', $in{'nfs_host'}));
			}
		$out = `showmount -e '$in{nfs_host}' 2>&1`;
		if ($out =~ /Unable to receive/) {
			&error(&text('linux_enfs', $in{'nfs_host'}));
			}
		elsif ($?) {
			&error(&text('linux_elist', $out));
			}

		# Validate directory name
		foreach (split(/\n/, $out)) {
			if (/^(\/\S+)/) { $dirlist .= "$1\n"; }
			}
		if ($in{nfs_dir} !~ /^\/\S+$/) {
			&error(&text('linux_enfsdir', $in{'nfs_dir'},
				     $in{'nfs_host'}, "<pre>$dirlist</pre>"));
			}
		}

	# Try a test mount to see if filesystem is available
	$temp = &tempname();
	mkdir($temp, 0755);
	$mout = `mount $in{nfs_host}:$in{nfs_dir} $temp 2>&1`;
	if ($mout =~ /No such file or directory/i) {
		rmdir($temp);
		&error(&text('linux_enfsdir', $in{'nfs_dir'},
			     $in{'nfs_host'}, "<pre>$dirlist</pre>"));
		}
	elsif ($mout =~ /Permission denied/i) {
		rmdir($temp);
		&error(&text('linux_enfsperm', $in{'nfs_dir'}, $in{'nfs_host'}));
		}
	elsif ($?) {
		rmdir($temp);
		&error(&text('linux_enfsmount', "<tt>$mout</tt>"));
		}
	# It worked! unmount
	`umount $temp`;
	rmdir($temp);

	return "$in{nfs_host}:$in{nfs_dir}";
	}
elsif ($_[0] eq "auto") {
	# Check if the automounter map exists..
	(-r $in{auto_map}) || &error(&text('linux_eautomap', $in{'auto_map'}));
	return $in{auto_map};
	}
elsif ($_[0] eq "autofs") {
	# Check if the map exists (if it is a file)
	if ($in{'autofs_map'} =~ /^\// && !(-r $in{'autofs_map'})) {
		&error(&text('linux_eautomap', $in{'autofs_map'}));
		}
	return $in{autofs_map};
	}
elsif ($_[0] eq "smbfs") {
	# No checking done
	return "\\\\".lc($in{'smbfs_server'})."\\".lc($in{'smbfs_share'});
	}
else {
	# This is some kind of disk-based linux filesystem.. get the device name
	if ($in{'lnx_dev'} == 0) {
		$dv = $in{'lnx_disk'};
		}
	elsif ($in{'lnx_dev'} == 2) {
		$dv = $in{'lnx_raid'};
		}
	elsif ($in{'lnx_dev'} == 3) {
		$dv = "LABEL=".$in{'lnx_label'};
		}
	else {
		$dv = $in{'lnx_other'};
		$dv || &error($text{'linux_edev'});
		}

	# If the device entered is a symlink, follow it
	#if ($dvlink = readlink($dv)) {
	#	if ($dvlink =~ /^\//) { $dv = $dvlink; }
	#	else {	$dv =~ /^(.*\/)[^\/]+$/;
	#		$dv = $1.$dvlink;
	#		}
	#	}

	# Check if the device actually exists and uses the right filesystem
	if (!-r $dv && $dv !~ /LABEL=/) {
		if ($_[0] eq "swap" && $dv !~ /\/dev/) {
			&swap_form($dv);
			}
		else {
			&error(&text('linux_edevfile', $dv));
			}
		}
	return $dv;
	}
}

# check_options(type, device, directory)
# Read options for some filesystem from %in, and use them to update the
# %options array. Options handled by the user interface will be set or
# removed, while unknown options will be left untouched.
sub check_options
{
local($k, @rv);

# Parse the common options first..
if ($_[0] ne "swap" && $_[0] ne "auto" &&
    $_[0] ne "autofs" && $_[0] ne "smbfs") {
	delete($options{"ro"}); delete($options{"rw"});
	if ($in{lnx_ro}) { $options{"ro"} = ""; }

	delete($options{"sync"}); delete($options{"async"});
	if ($in{lnx_sync}) { $options{"sync"} = ""; }

	delete($options{"dev"}); delete($options{"nodev"});
	if ($in{lnx_nodev}) { $options{"nodev"} = ""; }

	delete($options{"exec"}); delete($options{"noexec"});
	if ($in{lnx_noexec}) { $options{"noexec"} = ""; }

	delete($options{"suid"}); delete($options{"nosuid"});
	if ($in{lnx_nosuid}) { $options{"nosuid"} = ""; }

	delete($options{"user"}); delete($options{"nouser"});
	if ($in{lnx_user}) { $options{"user"} = ""; }
	}

if ($_[0] eq "nfs") {
	# NFS has a few specific options..
	delete($options{"bg"}); delete($options{"fg"});
	if ($in{nfs_bg}) { $options{"bg"} = ""; }

	delete($options{"soft"}); delete($options{"hard"});
	if ($in{nfs_soft}) { $options{"soft"} = ""; }

	delete($options{"timeo"});
	if (!$in{nfs_timeo_def}) { $options{"timeo"} = $in{nfs_timeo}; }

	delete($options{"nfsvers"});
	if (!$in{nfs_vers_def}) { $options{"nfsvers"} = $in{nfs_vers}; }

	delete($options{"port"});
	if (!$in{nfs_port_def}) { $options{"port"} = $in{nfs_port}; }

	delete($options{"intr"}); delete($options{"nointr"});
	if ($in{nfs_intr}) { $options{"intr"} = ""; }

	delete($options{"tcp"}); delete($options{"udp"});
	if ($in{nfs_tcp}) { $options{"tcp"} = ""; }
	}
elsif ($_[0] eq "ext2") {
	# More options for ext2..
	delete($options{"check"}); delete($options{"nocheck"});
	if ($in{ext2_check} ne "normal") {
		$options{"check"} = $in{ext2_check};
		}

	delete($options{"errors"});
	if ($in{ext2_errors} ne "default") {
		$options{"errors"} = $in{ext2_errors};
		}

	delete($options{"grpid"}); delete($options{"bsdgroups"});
	delete($options{"sysvgroups"}); delete($options{"nogrpid"});
	if ($in{ext2_grpid}) {
		$options{"grpid"} = "";
		}

	delete($options{"resuid"}); delete($options{"resgid"});
	if ($in{'ext2_resuid'})
		{ $options{"resuid"} = getpwnam($in{'ext2_resuid'}); }
	if ($in{'ext2_resgid'})
		{ $options{"resgid"} = getgrnam($in{'ext2_resgid'}); }

	delete($options{"quota"}); delete($options{"noquota"});
	delete($options{"usrquota"}); delete($options{"grpquota"});
	if ($in{'ext2_quota'} == 1) { $options{'usrquota'} = ""; }
	elsif ($in{'ext2_quota'} == 2) { $options{'grpquota'} = ""; }
	elsif ($in{'ext2_quota'} == 3)
		{ $options{'usrquota'} = $options{'grpquota'} = ""; }
	}
elsif ($_[0] eq "fat" || $_[0] eq "vfat" ||
       $_[0] eq "msdos" || $_[0] eq "umsdos") {
	# All dos-based filesystems have similar options
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{fat_uid} ne "") { $options{"uid"} = getpwnam($in{'fat_uid'}); }
	if ($in{fat_gid} ne "") { $options{"gid"} = getgrnam($in{'fat_gid'}); }

	delete($options{"check"});
	if ($in{fat_check} ne "") { $options{"check"} = $in{fat_check}; }

	delete($options{"conv"});
	if ($in{fat_conv} ne "") { $options{"conv"} = $in{fat_conv}; }

	delete($options{"umask"});
	if (!$in{fat_umask_def}) {
		$in{fat_umask} =~ /^[0-7]{3}$/ ||
			&error(&text('linux_emask', $in{'fat_umask'}));
		$options{"umask"} = $in{fat_umask};
		}

	delete($options{"quiet"});
	if ($in{fat_quiet}) {
		$options{"quiet"} = "";
		}

	if ($_[0] eq "vfat") {
		# Parse extra vfat options..
		delete($options{"uni_xlate"});
		if ($in{fat_uni_xlate}) { $options{"uni_xlate"} = ""; }

		delete($options{"posix"});
		if ($in{fat_posix}) { $options{"posix"} = ""; }
		}
	}
elsif ($_[0] eq "hpfs") {
	# OS/2 filesystem options..
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{hpfs_uid} ne "") { $options{"uid"} = getpwnam($in{hpfs_uid}); }
	if ($in{hpfs_gid} ne "") { $options{"gid"} = getgrnam($in{hpfs_gid}); }

	delete($options{"umask"});
	if (!$in{hpfs_umask_def}) {
		$in{hpfs_umask} =~ /^[0-7]{3}$/ ||
			&error(&text('linux_emask', $in{'hpfs_umask'}));
		$options{"umask"} = $in{hpfs_umask};
		}

	delete($options{"conv"});
	if ($in{hpfs_conv} ne "") { $options{"conv"} = $in{hpfs_conv}; }
	}
elsif ($_[0] eq "iso9660") {
	# Options for iso9660 cd-roms
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{iso9660_uid} ne "")
		{ $options{"uid"} = getpwnam($in{iso9660_uid}); }
	if ($in{iso9660_gid} ne "")
		{ $options{"gid"} = getgrnam($in{iso9660_gid}); }

	delete($options{"norock"});
	if ($in{iso9660_norock}) { $options{"norock"} = ""; }

	delete($options{"mode"});
	$in{iso9660_mode} =~ /^[0-7]{3}$/ ||
		&error(&text('linux_emask', $in{'iso9660_mode'}));
	$options{"mode"} = $in{iso9660_mode};
	}
elsif ($_[0] eq "autofs") {
	# Options for automounter filesystems
	delete($options{'timeout'});
	if (!$in{'autofs_timeout_def'}) {
		$in{'autofs_timeout'} =~ /^\d+$/ ||
			&error(&text('linux_etimeout', $in{'autofs_timeout'}));
		$options{'timeout'} = $in{'autofs_timeout'};
		}
	delete($options{'pid-file'});
	if (!$in{'autofs_pid-file_def'}) {
		$in{'autofs_pid-file'} =~ /^\/\S+$/ ||
		       &error(&text('linux_epidfile', $in{'autofs_pid-file'}));
		$options{'pid-file'} = $in{'autofs_pid-file'};
		}
	}
elsif ($_[0] eq "smbfs") {
	# Options for smb filesystems..
	delete($options{'user'}); delete($options{'username'});
	if ($in{smbfs_user}) {
		$options{$smbfs_support == 4 ? 'username' : 'user'} = $in{smbfs_user};
		}

	delete($options{'passwd'}); delete($options{'password'});
	if ($in{smbfs_passwd}) {
		$options{$smbfs_support == 4 ? 'password' : 'passwd'} = $in{smbfs_passwd};
		}

	if ($smbfs_support != 2) {
		delete($options{uid});
		if ($in{smbfs_uid} ne "") { $options{uid} = getpwnam($in{smbfs_uid}); }

		delete($options{gid});
		if ($in{smbfs_gid} ne "") { $options{gid} = getgrnam($in{smbfs_gid}); }
		}

	if ($smbfs_support == 1) {
		delete($options{servername});
		if (!$in{smbfs_sname_def})
			{ $options{servername} = $in{smbfs_sname}; }
		}
	elsif ($smbfs_support == 2) {
		delete($options{workgroup});
		if (!$in{smbfs_wg_def})
			{ $options{workgroup} = $in{smbfs_wg}; }
		}

	if ($smbfs_support < 3) {
		delete($options{clientname});
		if (!$in{smbfs_cname_def})
			{ $options{clientname} = $in{smbfs_cname}; }

		delete($options{machinename});
		if (!$in{smbfs_mname_def})
			{ $options{machinename} = $in{smbfs_mname}; }
		elsif (!gethostbyname($in{'smbfs_server'})) {
			# No hostname found for the server.. try to guess
			local($out, $sname);
			$sname = $in{'smbfs_server'};
			$out = `$config{'nmblookup_path'} -d 0 $sname 2>&1`;
			if (!$? && $out =~ /^([0-9\.]+)\s+$sname\n/) {
				$options{machinename} = $1;
				}
			}
		}

	if ($smbfs_support == 1) {
		delete($options{fmode});
		if ($in{smbfs_fmode} !~ /^[0-7]{3}$/) {
			&error(&text('linux_efmode', $in{'smbfs_fmode'}));
			}
		elsif ($in{smbfs_fmode} ne "755")
			{ $options{fmode} = $in{smbfs_fmode}; }

		delete($options{dmode});
		if ($in{smbfs_dmode} !~ /^[0-7]{3}$/) {
			&error(&text('linux_edmode', $in{'smbfs_dmode'}));
			}
		elsif ($in{smbfs_dmode} ne "755")
			{ $options{dmode} = $in{smbfs_dmode}; }
		}
	elsif ($smbfs_support >= 3) {
		delete($options{'ro'}); delete($options{'rw'});
		if ($in{'smbfs_ro'}) { $options{'ro'} = ''; }

		delete($options{'user'});
		if ($in{'smbfs_user2'}) { $options{'user'} = ''; }
		}
	}
elsif ($_[0] eq "reiserfs") {
	# Save reiserfs options
	delete($options{'notail'});
	$options{'notail'} = "" if ($in{'lnx_notail'});
	}

# Add loop option if mounting a normal file
if ($_[0] ne "swap" && $_[0] ne "auto" && $_[0] ne "autofs" &&
    $_[0] ne "smbfs" && $_[0] ne "nfs") {
	local(@st);
	@st = stat($_[1]);
	if (@st && ($st[2] & 0xF000) == 0x8000) {
		# a regular file.. add the loop option
		if (!$options{'loop'}) {
			$options{'loop'} = "";
			}
		}
	}

# Return options string
foreach $k (keys %options) {
	if ($options{$k} eq "") { push(@rv, $k); }
	else { push(@rv, "$k=$options{$k}"); }
	}
return @rv ? join(',' , @rv) : "-";
}


# Get the smbfs options from 'smbfs_opts' file in the current directory. This
# is sadly necessary because there is no way to get the current options for
# an existing smbfs mount... so webmin has to save them in a file when
# mounting. Blech.
sub read_smbopts
{
local($_);
open(SMBOPTS, "$module_config_directory/smbfs");
while(<SMBOPTS>) {
	/^(\S+)\s+(\S+)$/;
	$smbopts{$1} = $2;
	}
close(SMBOPTS);
}

sub write_smbopts
{
local($_);
open(SMBOPTS, "> $module_config_directory/smbfs");
foreach (keys %smbopts) {
	print SMBOPTS "$_\t$smbopts{$_}\n";
	}
close(SMBOPTS);
}


# create_swap(file, size, units)
# Calls dd and mkswap to setup a swap file
sub create_swap
{
local($out, $bl);
$bl = $_[1] * ($_[2] eq "m" ? 1024 : 1);
$out = `dd if=/dev/zero of=$_[0] bs=1024 count=$bl 2>&1`;
if ($?) { return "dd failed : $out"; }
$out = `mkswap $_[0] $bl 2>&1`;
if ($?) { return "mkswap failed : $out"; }
system("sync >/dev/null 2>&1");
return 0;
}

# exports_list(host, dirarray, clientarray)
# Fills the directory and client array references with exports from some
# host. Returns an error string if something went wrong
sub exports_list
{
local($dref, $cref, $out, $_);
$dref = $_[1]; $cref = $_[2];
$out = `showmount -e $_[0] 2>&1`;
if ($?) { return $out; }
foreach (split(/\n/, $out)) {
	if (/^(\/\S*)\s+(.*)$/) {
		push(@$dref, $1); push(@$cref, $2);
		}
	}
return undef;
}

# broadcast_addr()
# Returns a useable broadcast address for finding NFS servers
sub broadcast_addr
{
local($out);
$out = `ifconfig -a 2>&1`;
if ($out =~ /(eth|tr)\d\s+.*\n.*Bcast:(\S+)\s+/) { return $2; }
return "255.255.255.255";
}

# autofs_options(string)
# Converts a string of options line --timeout 60 to something like timeout=60
sub autofs_options
{
local(@options);
if ($_[0] =~ /--timeout\s+(\d+)/ || $_[0] =~ /-t\s+(\d+)/) {
	push(@options, "timeout=$1");
	}
if ($_[0] =~ /--pid-file\s+(\S+)/ || $_[0] =~ /-p\s+(\d+)/) {
	push(@options, "pid-file=$1");
	}
return join(',', @options);
}

# autofs_args(string)
# Convert a comma-separated options string into args for automount
sub autofs_args
{
local(%options, $args);
&parse_options("autofs", $_[0]);
if (defined($options{'timeout'})) {
	$args .= " --timeout $options{'timeout'}";
	}
if (defined($options{'pid-file'})) {
	$args .= " --pid-file $options{'pid-file'}";
	}
return $args;
}

# read_amd_conf()
# Returns the entire amd config file as a string
sub read_amd_conf
{
local $sl = $/;
$/ = undef;
open(AMD, $config{'auto_file'});
local $rv = <AMD>;
close(AMD);
$/ = $sl;
return $rv;
}

# write_amd_conf(text)
sub write_amd_conf
{
open(AMD, ">$config{'auto_file'}");
print AMD $_[0];
close(AMD);
}

# parse_amd_conf()
# Parses a new-style amd.conf file into a hashtable
sub parse_amd_conf
{
local (@rv, $str, $lnum);
open(AMD, $config{'auto_file'});
while(<AMD>) {
	s/\r|\n//g;
	s/#.*$//g;
	if (/\[\s*(\S+)\s*\]/) {
		$str = { 'dir' => $1,
			 'line' => $lnum,
			 'eline' => $lnum };
		push(@rv, $str);
		}
	elsif (/(\S+)\s*=\s*"(.*)"/ || /(\S+)\s*=\s*(\S+)/) {
		$str->{'opts'}->{$1} = $2;
		$str->{'eline'} = $lnum;
		}
	$lnum++;
	}
close(AMD);
return @rv;
}

# device_name(device)
# Converts a device name to a human-readable form
sub device_name
{
if (!$text{'select_part'}) {
	local %flang = &load_language('fdisk');
	$text{'select_part'} = $flang{'select_part'};
	$text{'select_mpart'} = $flang{'select_mpart'};
	$text{'select_device'} = $flang{'select_device'};
	$text{'select_fd'} = $flang{'select_fd'};
	}
return $_[0] =~ /^\/dev\/(s|h)d([a-z])(\d+)$/ ?
	&text('select_part', $1 eq 's' ? 'SCSI' : 'IDE', uc($2), "$3") :
       $_[0] =~ /^\/dev\/(s|h)d([a-z])$/ ?
	&text('select_device', $1 eq 's' ? 'SCSI' : 'IDE', uc($2)) :
       $_[0] =~ /rd\/c(\d+)d(\d+)p(\d+)$/ ?
	&text('select_mpart', "$1", "$2", "$3") :
       $_[0] =~ /fd(\d+)$/ ?
	&text('select_fd', "$1") :
       $_[0] =~ /md(\d+)$/ ?
	&text('linux_rdev', "$1") :
       $_[0] =~ /LABEL=(\S+)/i ?
	&text('linux_label', "$1") :
       $_[0] eq '/dev/cdrom' ?
	$text{'linux_cddev'} :
	$_[0];
}

sub files_to_lock
{
return ( $config{'fstab_file'}, $config{'autofs_file'}, $config{'auto_file'} );
}

1;

0707010000772b000081e40000000000000002000000013ac0388c000001b2000000200000000000000000000000000000001c00000003reloc/mount/create_swap.cgi   #!/usr/local/bin/perl
# create_swap.cgi
# Attempt to create a swap file, and then redirect the browser back to
# the mounting program to mount it

require './mount-lib.pl';
&ReadParse();
&error_setup($text{'swap_err'});
$in{cswap_size} =~ /^\d+$/ ||
	&error(&text('swap_esize', $in{'cswap_size'}));
if ($error = &create_swap($in{cswap_file}, $in{cswap_size}, $in{cswap_units})) {
	&error($error);
	}
&redirect("save_mount.cgi?$in");

  0707010000772c000081e40000000000000002000000013ac0388c0000dc44000000200000000000000000000000000000002000000003reloc/mount/debian-linux-lib.pl   # linux-lib.pl
# Mount table functions for linux

if (&has_command("amd")) {
	local $amd = &read_amd_conf();
	$amd_support = $amd =~ /\[\s*global\s*\]/i ? 2 : 1;
	}
$autofs_support = &has_command("automount");
if (&has_command("mount.smb")) {
	$smbfs_support = `mount.smb -v` =~ /username=/i ? 4 : 3;
	}
elsif (&has_command("mount.smbfs")) {
	$smbfs_support = `mount.smbfs -v` =~ /username=/i ? 4 : 3;
	}
elsif (&has_command("smbmount")) {
	$smbfs_support = `smbmount -v` =~ /Version\s+2/i ? 2 : 1;
	}
$swaps_support = -r "/proc/swaps";
if (&has_command("e2label") &&
    `mount --version 2>&1` =~ /(\d+)\.(\d+)/ && ($1 > 2 || $1==2 && $2 >= 10)) {
	$has_e2label = 1;
	}

# Return information about a filesystem, in the form:
#  directory, device, type, options, fsck_order, mount_at_boot
# If a field is unused or ignored, a - appears instead of the value.
# Swap-filesystems (devices or files mounted for VM) have a type of 'swap',
# and 'swap' in the directory field
sub list_mounts
{
return @list_mounts_cache if (@list_mounts_cache);
local(@rv, @p, @o, $_, $i, $j); $i = 0;

# Get /etc/fstab mounts
open(FSTAB, $config{fstab_file});
while(<FSTAB>) {
	local(@o, $at_boot);
	chop; s/#.*$//g;
	if (!/\S/ || /\signore\s/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "proc") { $p[0] = "proc"; }
	elsif ($p[2] eq "auto") { $p[2] = "*"; }
	elsif ($p[2] eq "swap") { $p[1] = "swap"; }
	elsif ($p[2] eq "smbfs") { $p[0] =~ s/\//\\/g; }
	$rv[$i] = [ $p[1], $p[0], $p[2] ];
	$rv[$i]->[5] = "yes";
	@o = split(/,/ , $p[3] eq "defaults" ? "" : $p[3]);
	if (($j = &indexof("noauto", @o)) >= 0) {
		# filesytem is not mounted at boot
		splice(@o, $j, 1);
		$rv[$i]->[5] = "no";
		}
	$rv[$i]->[3] = (@o ? join(',' , @o) : "-");
	$rv[$i]->[4] = (@p >= 5 ? $p[5] : 0);
	$i++;
	}
close(FSTAB);

if ($amd_support == 1) {
	# Get old automounter configuration, as used by redhat
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		@p = split(/\s+/, $1);
		for($j=0; $j<@p; $j+=2) {
			$rv[$i++] = [ $p[$j], $p[$j+1], "auto",
				      "-", 0, "yes" ];
			}
		}
	}
elsif ($amd_support == 2) {
	# Guess what? There's now a *new* amd config file format, introduced
	# in redhat 6.1 and caldera 2.3
	local @amd = &parse_amd_conf();
	local @sp = split(/:/, $amd[0]->{'opts'}->{'search_path'});
	local ($am, $sp);
	foreach $am (@amd) {
		local $mn = $am->{'opts'}->{'map_name'};
		if ($mn !~ /^\//) {
			foreach $sp (@sp) {
				if (-r "$sp/$mn") {
					$mn = "$sp/$mn";
					last;
					}
				}
			}
		$rv[$i++] = [ $am->{'dir'}, $mn,
			      "auto", $am->{'opts'}, 0, "yes" ]
			if ($am->{'dir'} ne 'global');
		}
	}

# Get kernel automounter configuration
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	while(<AUTO>) {
		chop;
		s/#.*$//g;
		if (/^\s*(\S+)\s+(\S+)\s*(.*)$/) {
			$rv[$i++] = [ $1, $2, "autofs",
				      ($3 ? &autofs_options($3) : "-"),
				      0, "yes" ];
			}
		}
	close(AUTO);
	}

@list_mounts_cache = @rv;
return @rv;
}


# create_mount(directory, device, type, options, fsck_order, mount_at_boot)
# Add a new entry to the fstab file, old or new automounter file
sub create_mount
{
local(@mlist, @amd, $_); local($opts);

if ($_[2] eq "auto") {
	if ($amd_support == 1) {
		# Adding an old automounter mount
		local $amd = &read_amd_conf();
		local $m = "$_[0] $_[1]";
		if ($amd =~ /MOUNTPTS=''/) {
			$amd =~ s/MOUNTPTS=''/MOUNTPTS='$m'/;
			}
		else {
			$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$1 $m'/;
			}
		&write_amd_conf($amd);
		}
	elsif ($amd_support == 2) {
		# Adding a new automounter mount
		open(AMD, ">>$config{'auto_file'}");
		print AMD "\n";
		print AMD "[ $_[0] ]\n";
		print AMD "map_name = $_[1]\n";
		close(AMD);
		}
	}
elsif ($_[2] eq "autofs") {
	# Adding a new automounter mount
	open(AUTO, ">> $config{'autofs_file'}");
	print AUTO "$_[0]  $_[1]";
	if ($_[3]) { print AUTO "  ",&autofs_args($_[3]); }
	print AUTO "\n";
	close(AUTO);
	}
else {
	# Adding a normal mount to the fstab file
	local $dev = $_[1];
	$dev =~ s/\\/\//g if ($_[2] eq 'smbfs');
	open(FSTAB, ">> $config{fstab_file}");
	print FSTAB "$dev  $_[0]  $_[2]";
	$opts = $_[3] eq "-" ? "" : $_[3];
	if ($_[5] eq "no") {
		$opts = join(',' , (split(/,/ , $opts) , "noauto"));
		}
	if ($opts eq "") { print FSTAB "  defaults"; }
	else { print FSTAB "  $opts"; }
	print FSTAB "  0  ";
	print FSTAB $_[4] eq "-" ? "0\n" : "$_[4]\n";
	close(FSTAB);
	}
undef(@list_mounts_cache);
}


# change_mount(num, directory, device, type, options, fsck_order, mount_at_boot)
# Change an existing permanent mount
sub change_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $line !~ /\signore\s/ && $i++ == $_[0]) {
		# Found the line to replace
		print FSTAB "$_[2]  $_[1]  $_[3]";
		$opts = $_[4] eq "-" ? "" : $_[4];
		if ($_[6] eq "no") {
			$opts = join(',' , (split(/,/ , $opts) , "noauto"));
			}
		if ($opts eq "") { print FSTAB "  defaults"; }
		else { print FSTAB "  $opts"; }
		print FSTAB "  0  ";
		print FSTAB $_[5] eq "-" ? "0\n" : "$_[5]\n";
		}
	else { print FSTAB $_,"\n"; }
	}
close(FSTAB);

if ($amd_support == 1) {
	# Update older amd configuration
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		# found mount points line..
		local @mpts = split(/\s+/, $1);
		for($j=0; $j<@mpts; $j+=2) {
			if ($i++ == $_[0]) {
				$mpts[$j] = $_[1];
				$mpts[$j+1] = $_[2];
				}
			}
		local $mpts = join(" ", @mpts);
		$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$mpts'/;
		}
	&write_amd_conf($amd);
	}
elsif ($amd_support == 2) {
	# Update new amd configuration
	local @amd = &parse_amd_conf();
	local $lref = &read_file_lines($config{'auto_file'});
	foreach $am (@amd) {
		next if ($am->{'dir'} eq 'global');
		if ($i++ == $_[0]) {
			local @nl = ( "[ $_[1] ]" );
			local %opts = %{$am->{'opts'}};
			$opts->{'map_name'} = $_[2];
			foreach $o (keys %opts) {
				push(@nl, "$o = $opts{$o}");
				}
			splice(@$lref, $am->{'line'},
			       $am->{'eline'} - $am->{'line'} + 1, @nl);
			}
		}
	&flush_file_lines();
	}

# Update autofs configuration
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	@auto = <AUTO>;
	close(AUTO);
	open(AUTO, "> $config{'autofs_file'}");
	foreach (@auto) {
		chop; ($line = $_) =~ s/#.*$//g;
		if ($line =~ /\S/ && $i++ == $_[0]) {
			print AUTO "$_[1]  $_[2]";
			if ($_[4]) { print AUTO "  ",&autofs_args($_[4]); }
			print AUTO "\n";
			}
		else { print AUTO $_,"\n"; }
		}
	close(AUTO);
	}
undef(@list_mounts_cache);
}


# delete_mount(index)
# Delete an existing permanent mount
sub delete_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line !~ /\S/ || $line =~ /\signore\s/ || $i++ != $_[0]) {
		# Don't delete this line
		print FSTAB $_,"\n";
		}
	}
close(FSTAB);

if ($amd_support == 1) {
	# Update older amd configuration
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		# found mount points line..
		local @mpts = split(/\s+/, $1);
		for($j=0; $j<@mpts; $j+=2) {
			if ($i++ == $_[0]) {
				splice(@mpts, $j, 2);
				}
			}
		local $mpts = join(" ", @mpts);
		$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$mpts'/;
		}
	&write_amd_conf($amd);
	}
elsif ($amd_support == 2) {
	# Update new amd configuration
	local @amd = &parse_amd_conf();
	local $lref = &read_file_lines($config{'auto_file'});
	foreach $am (@amd) {
		next if ($am->{'dir'} eq 'global');
		if ($i++ == $_[0]) {
			splice(@$lref, $am->{'line'},
			       $am->{'eline'} - $am->{'line'} + 1);
			}
		}
	&flush_file_lines();
	}

# Update AMD file
if ($amd_support) {
	open(AMD, $config{auto_file});
	@amd = <AMD>;
	close(AMD);
	open(AMD, "> $config{auto_file}");
	foreach (@amd) {
		if (/MOUNTPTS='(.*)'/) {
			# found mount points line..
			@mpts = split(/\s+/, $1);
			for($j=0; $j<@mpts; $j+=2) {
				if ($i++ != $_[0]) {
					push(@nmpts, $mpts[$j]);
					push(@nmpts, $mpts[$j+1]);
					}
				}
			print AMD "MOUNTPTS='".join(' ', @nmpts)."'\n";
			}
		else { print AMD $_; }
		}
	close(AMD);
	}

# Update autofs file
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	@auto = <AUTO>;
	close(AUTO);
	open(AUTO, "> $config{'autofs_file'}");
	foreach (@auto) {
		chop; ($line = $_) =~ s/#.*$//g;
		if ($line !~ /\S/ || $i++ != $_[0]) {
			# keep this line
			print AUTO $_,"\n";
			}
		}
	close(AUTO);
	}
undef(@list_mounts_cache);
}


# list_mounted()
# Return a list of all the currently mounted filesystems and swap files.
# The list is in the form:
#  directory device type options
sub list_mounted
{
return @list_mounted_cache if (@list_mounted_cache);
local(@rv, @p, @o, $mo, $_, %smbopts);
local @mounts = &list_mounts();

&read_smbopts();
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	chop;
	s/#.*$//g; if (!/\S/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "auto" || $p[0] =~ /^\S+:\(pid\d+\)$/) {
		# Automounter map.. turn the map= option into the device
		@o = split(/,/ , $p[3]);
		($mo) = grep {/^map=/} (@o);
		$mo =~ /^map=(.*)$/; $p[0] = $1;
		$p[3] = join(',' , grep {!/^map=/} (@o));
		$p[2] = "auto";
		}
	elsif ($p[2] eq "autofs") {
		# Kernel automounter map.. use the pid to find the map
		$p[0] =~ /automount\(pid(\d+)\)/ || next;
		$out = `ps hwwww $1`;
		$out =~ /automount\s+(.*)\s*(\S+)\s+(file|program|yp)(,\S+)?\s+(\S+)/ || next;
		$p[0] = $5;
		$p[3] = $1 ? &autofs_options($1) : "-";
		}
	elsif ($p[2] eq "smbfs") {
		# Change from //FOO/BAR to \\foo\bar
		$p[0] =~ s/\//\\/g;
		$p[0] = lc($p[0]);
		$p[3] = $smbopts{$p[1]};
		}
	elsif ($p[2] eq "proc") {
		# The source for proc mounts is always proc
		$p[0] = "proc";
		}
	if ($p[2] eq 'ext2' && $has_e2label) {
		# Check for a label on this partition, and there is one
		# and this filesystem is in fstab with the label, change
		# the device.
		local $label = `e2label $p[0] 2>^1`;
		if (!$?) {
			chop($label);
			foreach $m (@mounts) {
				if ($m->[0] eq $p[1] &&
				    $m->[1] eq "LABEL=$label") {
					$p[0] = "LABEL=$label";
					last;
					}
				}
			}
		}
	# check fstab for a mount on the same dir which is a symlink
	# to the device
	local @st = stat($p[0]);
	foreach $m (@mounts) {
		if ($m->[0] eq $p[1]) {
			local @fst = stat($m->[1]);
			if ($fst[0] == $st[0] && $fst[1] == $st[1]) {
				# symlink to the same place!
				$p[0] = $m->[1];
				last;
				}
			}
		}
	push(@rv, [ $p[1], $p[0], $p[2], $p[3] ]);
	}
close(MTAB);
open(SWAPS, "/proc/swaps");
while(<SWAPS>) {
	chop;
	if (/^(\/\S+)\s+/) {
		push(@rv, [ "swap", $1, "swap", "-" ]);
		}
	}
close(SWAPS);
@list_mounted_cache = @rv;
return @rv;
}


# mount_dir(directory, device, type, options)
# Mount a new directory from some device, with some options. Returns 0 if ok,
# or an error string if failed
sub mount_dir
{
local($out, $opts, $shar, %options, %smbopts);
if ($_[2] eq "swap") {
	# Use swapon to add the swap space..
	$out = &backquote_logged("swapon $_[1] 2>&1");
	if ($out =~ /Invalid argument/) {
		# looks like this swap partition isn't ready yet.. set it up
		$out = &backquote_logged("mkswap $_[1] 2>&1");
		if ($?) { return "mkswap failed : <pre>$out</pre>"; }
		$out = &backquote_logged("swapon $_[1] 2>&1");
		}
	if ($?) { return "<pre>$out</pre>"; }
	}
elsif ($_[2] eq "auto") {
	# Old automounter filesystem
	$out = &backquote_logged("amd $_[0] $_[1] >/dev/null 2>/dev/null");
	if ($?) { return $text{'linux_eamd'}; }
	}
elsif ($_[2] eq "autofs") {
	# New automounter filesystem
	$opts = &autofs_args($_[3]);
	$type = $_[1] !~ /^\// ? "yp" :
		(-x $_[1]) ? "program" : "file";
	$out = &backquote_logged("automount $opts $_[0] $type $_[1] 2>&1");
	if ($?) { return &text('linux_eauto', "<pre>$out</pre>"); }
	}
elsif ($_[2] eq "smbfs") {
	local $shar = $_[1];
	$shar =~ s/\\/\//g;
	if ($smbfs_support >= 3) {
		# SMB filesystem mounted with mount command
		$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
		$out = &backquote_logged("mount -t $_[2] $opts $shar $_[0] 2>&1");
		if ($? || $out =~ /failed/i) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "mount -t $_[2] $opts $shar $_[0] : <pre>$out</pre>";
			}
		}
	elsif ($smbfs_support == 2) {
		# SMB filesystem mounted with version 2.x smbmount
		&parse_options("smbfs", $_[3]);
		$opts =
		    ($options{'user'} ? "-U $options{'user'} " : "").
		    ($options{'passwd'} ? "" : "-N ").
		    ($options{'workgroup'} ? "-W $options{'workgroup'} " : "").
		    ($options{'clientname'} ? "-n $options{'clientname'} " : "").
		    ($options{'machinename'} ? "-I $options{'machinename'} " : "");
		&foreign_require("proc", "proc-lib.pl");
		local ($fh, $fpid) = &foreign_call(
			"proc", "pty_process_exec_logged", "sh", "-c",
			"smbmount $shar $_[0] -d 0 $opts");
		if ($options{'passwd'}) {
			local $w = &wait_for($fh, "word:");
			if ($w < 0) {
				&system_logged("umount $_[0] >/dev/null 2>&1");
				return $text{'linux_esmbconn'};
				}
			local $p = "$options{'passwd'}\n";
			syswrite($fh, $p, length($p));
			}
		local $got;
		while(<$fh>) {
			$got .= $_;
			}
		if ($got =~ /failed/) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "<pre>$got</pre>\n";
			}
		close($fh);
		}
	elsif ($smbfs_support == 1) {
		# SMB filesystem mounted with older smbmount
		&parse_options("smbfs", $_[3]);
		$shortname = &get_system_hostname();
		if ($shortname =~ /^([^\.]+)\.(.+)$/) { $shortname = $1; }
		$opts =
		   ($options{servername} ? "-s $options{servername} " : "").
		   ($options{clientname} ? "-c $options{clientname} "
					 : "-c $shortname ").
		   ($options{machinename} ? "-I $options{machinename} " : "").
		   ($options{user} ? "-U $options{user} " : "").
		   ($options{passwd} ? "-P $options{passwd} " : "-n ").
		   ($options{uid} ? "-u $options{uid} " : "").
		   ($options{gid} ? "-g $options{gid} " : "").
		   ($options{fmode} ? "-f $options{fmode} " : "").
		   ($options{dmode} ? "-d $options{dmode} " : "");
		$out = &backquote_logged("smbmount $shar $_[0] $opts 2>&1");
		if ($out) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "<pre>$out</pre>";
			}
		}
	&read_smbopts();
	$smbopts{$_[0]} = $_[3] eq "-" ? "dummy=1" : $_[3];
	&write_smbopts();
	}
else {
	# some filesystem supported by mount
	$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
	if ($_[1] =~ /LABEL=(.*)/) {
		$cmd = "mount -t $_[2] -L $1 $opts $_[0]";
		}
	else {
		$cmd = "mount -t $_[2] $opts $_[1] $_[0]";
		}
	$out = &backquote_logged("$cmd 2>&1");
	if ($?) { return "<pre>$cmd : $out</pre>"; }
	}
undef(@list_mounted_cache);
return 0;
}


# unmount_dir(directory, device, type)
# Unmount a directory that is currently mounted. Returns 0 if ok,
# or an error string if failed
sub unmount_dir
{
local($out, %smbopts, $dir);
if ($_[2] eq "swap") {
	# Use swapoff to remove the swap space..
	$out = &backquote_logged("swapoff $_[1]");
	if ($?) { return "<pre>$out</pre>"; }
	}
elsif ($_[2] eq "auto") {
	# Kill the amd process
	$dir = $_[0];
	if (`cat /etc/mtab` =~ /:\(pid([0-9]+)\)\s+$dir\s+(auto|nfs)\s+/) {
		&kill_logged('TERM', $1) || return $text{'linux_ekillamd'};
		}
	sleep(2);
	}
elsif ($_[2] eq "autofs") {
	# Kill the automount process
	$dir = $_[0];
	`cat /etc/mtab` =~ /automount\(pid([0-9]+)\)\s+$dir\s+autofs\s+/;
	&kill_logged('TERM', $1) || return $text{'linux_ekillauto'};
	sleep(2);
	}
else {
	$out = &backquote_logged("umount $_[0] 2>&1");
	if ($?) { return "<pre>$out</pre>"; }
	if ($_[2] eq "smbfs") {
		# remove options from list
		&read_smbopts();
		delete($smbopts{$_[0]});
		&write_smbopts();
		}
	}
undef(@list_mounted_cache);
return 0;
}


# mount_modes(type)
# Given a filesystem type, returns 4 numbers that determine how the file
# system can be mounted, and whether it can be fsck'd
#  0 - cannot be permanently recorded
#	(smbfs under linux before 2.2)
#  1 - can be permanently recorded, and is always mounted at boot
#	(swap under linux)
#  2 - can be permanently recorded, and may or may not be mounted at boot
#	(most normal filesystems)
# The second is:
#  0 - mount is always permanent => mounted when saved
#	(swap under linux before 2.2)
#  1 - doesn't have to be permanent
#	(normal fs types)
# The third is:
#  0 - cannot be fsck'd at boot time
#  1 - can be be fsck'd at boot
# The fourth is:
#  0 - can be unmounted
#  1 - cannot be unmounted
sub mount_modes
{
if ($_[0] eq "swap")
	{ return (1, $swaps_support ? 1 : 0, 0, 0); }
elsif ($_[0] eq "auto" || $_[0] eq "autofs")
	{ return (1, 1, 0, 0); }
elsif ($_[0] eq "smbfs")
	{ return ($smbfs_support >= 3 ? 2 : 0, 1, 0, 0); }
elsif ($_[0] eq "ext2" || $_[0] eq "minix" || $_[0] eq "xiafs")
	{ return (2, 1, 1, 0); }
else
	{ return (2, 1, 0, 0); }
}


# disk_space(type, directory)
# Returns the amount of total and free space for some filesystem, or an
# empty array if not appropriate.
sub disk_space
{
if (&get_mounted($_[1], "*") < 0) { return (); }
if ($_[0] eq "proc" || $_[0] eq "swap" ||
    $_[0] eq "auto" || $_[0] eq "autofs") { return (); }
`df -k $_[1]` =~ /Mounted on\n\S+\s+(\S+)\s+\S+\s+(\S+)/;
return ($1, $2);
}


# list_fstypes()
# Returns an array of all the supported filesystem types. If a filesystem is
# found that is not one of the supported types, generate_location() and
# generate_options() will not be called for it.
sub list_fstypes
{
local @sup = ("ext2", "minix", "msdos", "nfs", "iso9660", "ext", "xiafs",
	      "hpfs", "fat", "vfat", "umsdos", "sysv", "reiserfs");
push(@sup, "smbfs") if ($smbfs_support);
push(@sup, "auto") if ($amd_support);
push(@sup, "autofs") if ($autofs_support);
push(@sup, "swap");
return @sup;
}


# fstype_name(type)
# Given a short filesystem type, return a human-readable name for it
sub fstype_name
{
local(%fsmap);
%fsmap = ("ext2","Linux Native Filesystem",
	  "minix","Minix Filesystem",
	  "msdos","MS-DOS Filesystem",
	  "nfs","Network Filesystem",
	  "smbfs","Windows Networking Filesystem",
	  "iso9660","ISO9660 CD-ROM",
	  "ext","Old EXT Linux Filesystem",
	  "xiafs","Old XIAFS Linux Filesystem",
	  "hpfs","OS/2 Filesystem",
	  "fat","MS-DOS Filesystem",
	  "vfat","Windows 95 Filesystem",
	  "umsdos","Linux on top of MS-DOS Filesystem",
	  "sysv","System V Filesystem",
	  "swap","Virtual Memory",
	  "proc","Kernel Filesystem",
	  "devpts","PTS Filesystem",
	  "auto",($autofs_support ? "Old " : "")."Automounter Filesystem",
	  "reiserfs","Reiser Filesystem",
	  "autofs","New Automounter Filesystem",
	  "usbdevfs","USB Devices",
	  "shm","SysV Shared Memory");
return $config{long_fstypes} && $fsmap{$_[0]} ? $fsmap{$_[0]} : uc($_[0]);
}


# multiple_mount(type)
# Returns 1 if filesystems of this type can be mounted multiple times, 0 if not
sub multiple_mount
{
return ($_[0] eq "nfs" || $_[0] eq "auto" || $_[0] eq "autofs");
}


# generate_location(type, location)
# Output HTML for editing the mount location of some filesystem.
sub generate_location
{
if ($_[0] eq "nfs") {
	# NFS mount from some host and directory
	$_[1] =~ /^([^:]+):(.*)$/;
	print "<tr> <td><b>$text{'linux_nfshost'}</b></td>\n";
	print "<td><input name=nfs_host size=20 value=\"$1\">\n";
	&nfs_server_chooser_button("nfs_host");
	print "&nbsp;<b>$text{'linux_nfsdir'}</b>\n";
	print "<input name=nfs_dir size=20 value=\"$2\">\n";
	&nfs_export_chooser_button("nfs_host", "nfs_dir");
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "auto") {
	# Using some automounter map
	print "<tr> <td><b>$text{'linux_map'}</b></td>\n";
	print "<td><input name=auto_map size=20 value=\"$_[1]\">\n";
	print &file_chooser_button("auto_map", 0);
	print "</td> <td colspan=2></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	# Using some kernel automounter map
	print "<tr> <td><b>$text{'linux_map'}</b></td>\n";
	print "<td><input name=autofs_map size=20 value=\"$_[1]\">\n";
	print &file_chooser_button("autofs_map", 0);
	print "</td> <td colspan=2></td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swap file or device
	&foreign_require("fdisk", "fdisk-lib.pl");
	printf "<tr> <td valign=top><b>$text{'linux_swapfile'}</b></td>\n";
	print "<td colspan=3>\n";
	local $found;
	local $sel = &foreign_call("fdisk", "partition_select", "lnx_disk",
				   $_[1], 3, \$found);
	printf "<input type=radio name=lnx_dev value=0 %s> %s %s<br>\n",
		$found ? "checked" : "", $text{'linux_disk'}, $sel;
	printf "<input type=radio name=lnx_dev value=1 %s> %s\n",
		$found ? "" : "checked", $text{'linux_swapfile'};
	printf "<input name=lnx_other size=35 value='%s'><br>\n",
		$found ? "" : $_[1];
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "smbfs") {
	# Windows filesystem
	$_[1] =~ /^\\\\(.*)\\(.*)$/;
	print "<tr> <td><b>$text{'linux_smbserver'}</b></td>\n";
	print "<td><input name=smbfs_server value=\"$1\" size=20>\n";
	&smb_server_chooser_button("smbfs_server");
	print "</td>\n";
	print "<td><b>$text{'linux_smbshare'}</b></td>\n";
	print "<td><input name=smbfs_share value=\"$2\" size=20>\n";
	&smb_share_chooser_button("smbfs_server", "smbfs_share");
	print "</td> </tr>\n";
	}
else {
	# This is some linux disk-based filesystem
	&foreign_require("fdisk", "fdisk-lib.pl");
	printf "<tr> <td valign=top><b>%s</b></td>\n", &fstype_name($_[0]);
	print "<td colspan=3>\n";
	local ($found, $rfound, $lfound, $rsel, $c);
	local $sel = &foreign_call("fdisk", "partition_select", "lnx_disk",
				   $_[1], 0, \$found);
	printf "<input type=radio name=lnx_dev value=0 %s> %s %s<br>\n",
		$found ? "checked" : "", $text{'linux_disk'}, $sel;

	if (&foreign_check("raid")) {
		&foreign_require("raid", "raid-lib.pl");
		local $conf = &foreign_call("raid", "get_raidtab");
		foreach $c (@$conf) {
			if ($c->{'active'}) {
				$rsel .= sprintf "<option value=%s %s>%s\n",
					$c->{'value'},
					$_[1] eq $c->{'value'} ? 'selected' : '',
					&text('linux_rdev', substr($c->{'value'}, -1));
				$rfound++ if ($_[1] eq $c->{'value'});
				}
			}
		if ($rsel) {
			printf "<input type=radio name=lnx_dev value=2 %s> %s\n",
				$rfound ? "checked" : " ", $text{'linux_raid'};
			print "<select name=lnx_raid>\n",$rsel,"</select><br>\n";
			}
		}

	if ($has_e2label) {
		local $l = $_[1] =~ /LABEL=(.*)/ ? $1 : undef;
		local $esel = &foreign_call("fdisk", "label_select",
					    "lnx_label", $l, \$lfound);
		if ($esel) {
			printf "<input type=radio name=lnx_dev value=3 %s> %s %s<br>\n", $lfound ? "checked" : "", $text{'linux_lsel'}, $esel;
			}
		}

	printf "<input type=radio name=lnx_dev value=1 %s> %s\n",
		$found || $rfound || $lfound ? "" : "checked", $text{'linux_other'};
	printf "<input name=lnx_other size=35 value='%s'><br>\n",
		$found || $rfound || $lfound ? "" : $_[1];
	print "</td> </tr>\n";
	}
}


# generate_options(type, newmount)
# Output HTML for editing mount options for a particular filesystem 
# under this OS
sub generate_options
{
if ($_[0] ne "swap" && $_[0] ne "auto" &&
    $_[0] ne "autofs" && $_[0] ne "smbfs") {
	# Lots of options are common to all linux filesystems
	print "<tr> <td><b>$text{'linux_ro'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_ro value=1 %s> $text{'yes'}\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=lnx_ro value=0 %s> $text{'no'}</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>$text{'linux_sync'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_sync value=0 %s> $text{'yes'}\n",
		defined($options{"sync"}) ? "" : "checked";
	printf "<input type=radio name=lnx_sync value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"sync"}) ? "checked" : "";

	print "<tr> <td><b>$text{'linux_nodev'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_nodev value=0 %s> $text{'yes'}\n",
		defined($options{"nodev"}) ? "" : "checked";
	printf "<input type=radio name=lnx_nodev value=1 %s> $text{'no'}</td>\n",
		defined($options{"nodev"}) ? "checked" : "";

	print "<td><b>$text{'linux_noexec'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_noexec value=0 %s> $text{'yes'}\n",
		defined($options{"noexec"}) ? "" : "checked";
	printf "<input type=radio name=lnx_noexec value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"noexec"}) ? "checked" : "";

	print "<tr> <td><b>$text{'linux_nosuid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_nosuid value=1 %s> $text{'yes'}\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=lnx_nosuid value=0 %s> $text{'no'}</td>\n",
		defined($options{"nosuid"}) ? "" : "checked";

	print "<td><b>$text{'linux_user'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_user value=1 %s> $text{'yes'}\n",
		defined($options{"user"}) ? "checked" : "";
	printf "<input type=radio name=lnx_user value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"user"}) ? "" : "checked";
	}
	
if ($_[0] eq "ext2") {
	# Ext2 has lots more options..
	print "<tr> <td><b>$text{'linux_check'}</b></td>\n";
	print "<td><select name=ext2_check>\n";
	printf "<option value=normal %s> $text{'linux_normal'}\n",
		$options{"check"} eq "" || $options{"check"} eq "normal" ?
			"selected" : "";
	printf "<option value=strict %s> $text{'linux_strict'}\n",
		$options{"check"} eq "strict" ? "selected" : "";
	printf "<option value=none %s> $text{'linux_none'}\n",
		$options{"check"} eq "none" || defined($options{"nocheck"}) ?
			"selected" : "";
	print "</select></td>\n";

	print "<td><b>$text{'linux_errors'}</b></td>\n";
	print "<td><select name=ext2_errors>\n";
	printf "<option value=default %s> $text{'default'}\n",
		!defined($options{"errors"}) ? "selected" : "";
	printf "<option value=continue %s> $text{'linux_continue'}\n",
		$options{"error"} eq "continue" ? "selected" : "";
	printf "<option value=remount-ro %s> $text{'linux_remount_ro'}\n",
		$options{"error"} eq "remount-ro" ? "selected" : "";
	printf "<option value=panic %s> $text{'linux_panic'}\n",
		$options{"error"} eq "panic" ? "selected" : "";
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_grpid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=ext2_grpid value=0 %s> $text{'yes'}\n",
		defined($options{"grpid"}) || defined($options{"bsdgroups"}) ?
			"" : "checked";
	printf "<input type=radio name=ext2_grpid value=1 %s> $text{'no'}</td>\n",
		defined($options{"grpid"}) || defined($options{"bsdgroups"}) ?
			"checked" : "";

	print "<td><b>$text{'linux_quotas'}</b></td>\n";
	local $usrquota = defined($options{"usrquota"});
	local $grpquota = defined($options{"grpquota"});
	print "<td nowrap><select name=ext2_quota>\n";
	printf "<option value=0 %s> $text{'no'}\n",
		$usrquota || $grpquota ? "" : "selected";
	printf "<option value=1 %s> $text{'linux_usrquota'}\n",
		$usrquota && !$grpquota ? "selected" : "";
	printf "<option value=2 %s> $text{'linux_grpquota'}\n",
		$grpquota && !$usrquota ? "selected" : "";
	if (`uname -r` =~ /^2\.0\.(\d+)/ && $1 < 31) {
		printf "<option value=3 %s> $text{'linux_usrgrpquota2'}\n",
			$usrquota && $grpquota ? "selected" : "";
		}
	else {
		printf "<option value=3 %s> $text{'linux_usrgrpquota'}\n",
			$usrquota && $grpquota ? "selected" : "";
		}
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_resuid'}</b></td>\n";
	printf "<td><input name=ext2_resuid size=8 value=\"%s\">\n",
		defined($options{"resuid"}) ? getpwuid($options{"resuid"}) : "";
	print &user_chooser_button("ext2_resuid", 0),"</td>\n";

	print "<td><b>$text{'linux_resgid'}</b></td>\n";
	printf "<td><input name=ext2_resgid size=8 value=\"%s\">\n",
		defined($options{"resgid"}) ? getgrgid($options{"resgid"}) : "";
	print &group_chooser_button("ext2_resgid", 0),"</td> </tr>\n";
	}
elsif ($_[0] eq "nfs") {
	# Linux nfs has some more options...
	print "<tr> <td><b>$text{'linux_bg'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_bg value=1 %s> $text{'yes'}\n",
		defined($options{"bg"}) ? "checked" : "";
	printf "<input type=radio name=nfs_bg value=0 %s> $text{'no'}</td>\n",
		defined($options{"bg"}) ? "" : "checked";

	print "<td><b>$text{'linux_soft'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_soft value=1 %s> $text{'yes'}\n",
		defined($options{"soft"}) ? "checked" : "";
	printf "<input type=radio name=nfs_soft value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"soft"}) ? "" : "checked";

	print "<tr> <td><b>$text{'linux_timeo'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_timeo_def value=1 %s> $text{'default'}\n",
		defined($options{"timeo"}) ? "" : "checked";
	printf "<input type=radio name=nfs_timeo_def value=0 %s>\n",
		defined($options{"timeo"}) ? "checked" : "";
	printf "<input size=5 name=nfs_timeo value=$options{timeo}></td>\n";

	print "<td><b>$text{'linux_retrans'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_retrans_def value=1 %s> $text{'default'}\n",
		defined($options{"retrans"}) ? "" : "checked";
	printf "<input type=radio name=nfs_retrans_def value=0 %s>\n",
		defined($options{"retrans"}) ? "checked" : "";
	print "<input size=5 name=nfs_retrans value=$options{retrans}></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_vers'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_vers_def value=1 %s> $text{'linux_high'}\n",
		defined($options{"nfsvers"}) ? "" : "checked";
	printf "<input type=radio name=nfs_vers_def value=0 %s>\n",
		defined($options{"nfsvers"}) ? "checked" : "";
	print "<input size=1 name=nfsvers value=$options{nfsvers}></td>\n";

	print "<td><b>$text{'linux_port'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_port_def value=1 %s> $text{'default'}\n",
		defined($options{"port"}) ? "" : "checked";
	printf "<input type=radio name=nfs_port_def value=0 %s>\n",
		defined($options{"port"}) ? "checked" : "";
	print "<input size=5 name=nfs_port value=$options{port}></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_intr'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_intr value=1 %s> $text{'yes'}\n",
		defined($options{"intr"}) ? "checked" : "";
	printf "<input type=radio name=nfs_intr value=0 %s> $text{'no'}</td>\n",
		defined($options{"intr"}) ? "" : "checked";

	print "<td><b>$text{'linux_tcp'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_tcp value=1 %s> TCP\n",
		defined($options{"tcp"}) ? "checked" : "";
	printf "<input type=radio name=nfs_tcp value=0 %s> UDP</td> </tr>\n",
		defined($options{"tcp"}) ? "" : "checked";
	}
elsif ($_[0] eq "fat" || $_[0] eq "vfat" || $_[0] eq "msdos" || $_[0] eq "umsdos"){
	# All dos-based filesystems share some options
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=fat_uid size=8 value=\"%s\">\n",
		defined($options{'uid'}) ? getpwuid($options{'uid'}) : "";
	print &user_chooser_button("fat_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=fat_gid size=8 value=\"%s\">\n",
		defined($options{'gid'}) ? getgrgid($options{'gid'}) : "";
	print &group_chooser_button("fat_gid", 0),"</td> </tr>\n";

	print "<tr> <td><b>$text{'linux_rules'}</b></td>\n";
	print "<td><select name=fat_check>\n";
	printf "<option value=\"\" %s> $text{'default'}\n",
		defined($options{"check"}) ? "" : "selected";
	printf "<option value=r %s> $text{'linux_relaxed'}\n",
		$options{"check"} =~ /^r/ ? "selected" : "";
	printf "<option value=n %s> $text{'linux_normal'}\n",
		$options{"check"} =~ /^n/ ? "selected" : "";
	printf "<option value=s %s> $text{'linux_strict'}\n",
		$options{"check"} =~ /^s/ ? "selected" : "";
	print "</select></td>\n";

	print "<td><b>$text{'linux_conv'}</b></td>\n";
	print "<td><select name=fat_conv>\n";
	printf "<option value=\"\" %s> $text{'linux_none'}\n",
		$options{"conv"} =~ /^b/ || !defined($options{"conv"}) ?
		"selected" : "";
	printf "<option value=t %s> $text{'linux_allfiles'}\n",
		$options{"conv"} =~ /^t/ ? "selected" : "";
	printf "<option value=a %s> $text{'linux_textfiles'}\n",
		$options{"conv"} =~ /^a/ ? "selected" : "";
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_umask'}</b></td>\n";
	printf "<td><input type=radio name=fat_umask_def value=1 %s> $text{'default'}\n",
		defined($options{"umask"}) ? "" : "checked";
	printf "<input type=radio name=fat_umask_def value=0 %s>\n",
		defined($options{"umask"}) ? "checked" : "";
	print "<input size=5 name=fat_umask value=\"$options{umask}\"></td>\n";

	print "<td><b>$text{'linux_quiet'}</b></td>\n";
	printf "<td nowrap><input type=radio name=fat_quiet value=0 %s> $text{'yes'}\n",
		defined($options{"quiet"}) ? "" : "checked";
	printf "<input type=radio name=fat_quiet value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"quiet"}) ? "checked" : "";

	if ($_[0] eq "vfat") {
		# vfat has some extra options beyond fat
		print "<tr> <td><b>$text{'linux_uni_xlate'}</b></td>\n";
		printf "<td><input type=radio name=fat_uni_xlate value=1 %s> $text{'yes'}\n",
			defined($options{"uni_xlate"}) ? "checked" : "";
		printf "<input type=radio name=fat_uni_xlate value=0 %s> $text{'no'}</td>\n",
			defined($options{"uni_xlate"}) ? "" : "checked";

		print "<td><b>$text{'linux_posix'}</b></td>\n";
		printf "<td nowrap><input type=radio name=fat_posix value=1 %s> $text{'yes'}\n",
			defined($options{"posix"}) ? "checked" : "";
		printf "<input type=radio name=fat_posix value=0 %s> $text{'no'}</td> </tr>\n",
			defined($options{"posix"}) ? "" : "checked";
		}
	}
elsif ($_[0] eq "hpfs") {
	# OS/2 filesystems has some more options..
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=hpfs_uid size=8 value=\"%s\">\n",
		defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
	print &user_chooser_button("hpfs_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=hpfs_gid size=8 value=\"%s\">\n",
		defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
	print &group_chooser_button("hpfs_gid", 0),"</td> </tr>\n";

	print "<tr> <td><b>$text{'linux_umask'}</b></td>\n";
	printf"<td><input type=radio name=hpfs_umask_def value=1 %s> Default\n",
		defined($options{"umask"}) ? "" : "checked";
	printf "<input type=radio name=hpfs_umask_def value=0 %s>\n",
		defined($options{"umask"}) ? "checked" : "";
	print "<input size=5 name=hpfs_umask value=\"$options{umask}\"></td>\n";

	print "<td><b>$text{'linux_conv2'}</b></td>\n";
	print "<td><select name=hpfs_conv>\n";
	printf "<option value=b %s> $text{'linux_none'}\n",
		$options{"conv"} =~ /^b/ || !defined($options{"conv"}) ?
		"selected" : "";
	printf "<option value=t %s> $text{'linux_allfiles'}\n",
		$options{"conv"} =~ /^t/ ? "selected" : "";
	printf "<option value=a %s> $text{'linux_textfiles'}\n",
		$options{"conv"} =~ /^a/ ? "selected" : "";
	print "</select></td> </tr>\n";
	}
elsif ($_[0] eq "iso9660") {
	# CD-ROM filesystems have some more options..
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=iso9660_uid size=8 value=\"%s\">\n",
		defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
	print &user_chooser_button("iso9660_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=iso9660_gid size=8 value=\"%s\">\n",
		defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
	print &group_chooser_button("iso9660_gid", 0),"</td>\n";

	print "<tr> <td><b>$text{'linux_rock'}</b></td>\n";
	printf "<td><input type=radio name=iso9660_norock value=1 %s> $text{'yes'}\n",
		defined($options{"norock"}) ? "checked" : "";
	printf "<input type=radio name=iso9660_norock value=0 %s> $text{'no'}</td>\n",
		defined($options{"norock"}) ? "" : "checked";

	print "<td><b>$text{'linux_mode'}</b></td>\n";
	printf"<td><input size=10 name=iso9660_mode value=\"%s\"></td> </tr>\n",
		defined($options{"mode"}) ? $options{"mode"} : "444";
	}
elsif ($_[0] eq "auto") {
	# Don't know how to set options for auto filesystems yet..
	print "<tr> <td><i>$text{'linux_noopts'}</i></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	print "<tr> <td><b>$text{'linux_timeout'}</b></td> <td>\n";
	printf"<input type=radio name=autofs_timeout_def value=1 %s> $text{'default'}\n",
		defined($options{'timeout'}) ? "" : "checked";
	printf "<input type=radio name=autofs_timeout_def value=0 %s>\n",
		defined($options{'timeout'}) ? "checked" : "";
	printf "<input name=autofs_timeout size=5 value=\"%s\"> $text{'linux_secs'}</td>\n",
		$options{'timeout'};

	print "<td><b>$text{'linux_pid_file'}</b>?</td>\n";
	printf"<td><input type=radio name=autofs_pid-file_def value=1 %s> $text{'no'}\n",
		defined($options{'pid-file'}) ? "" : "checked";
	printf "<input type=radio name=autofs_pid-file_def value=0 %s> $text{'yes'}\n",
		defined($options{'pid-file'}) ? "checked" : "";
	printf "<input name=autofs_pid-file size=20 value=\"%s\">\n",
		$options{'pid-file'};
	print &file_chooser_button("autofs_pid-file", 1);
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swap has no options..
	print "<tr> <td><i>$text{'linux_noopts'}</i></td> </tr>\n";
	}
elsif ($_[0] eq "smbfs") {
	# SMB filesystems have a few options..
	if (keys(%options) == 0 && !$_[1]) {
		print "<tr> <td colspan=4><i>$text{'linux_smbwarn'}</i></td> </tr>\n";
		}

	print "<tr> <td><b>$text{'linux_username'}</b></td>\n";
	printf "<td><input name=smbfs_user size=15 value=\"%s\"></td>\n",
		$smbfs_support == 4 ? $options{'username'} : $options{'user'};

	print "<td><b>$text{'linux_password'}</b></td>\n";
	printf "<td><input type=password name=smbfs_passwd size=15 value=\"%s\"></td> </tr>\n",
		$smbfs_support == 4 ? $options{'password'} : $options{'passwd'};

	if ($smbfs_support != 2) {
		print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
		printf "<td><input name=smbfs_uid size=8 value=\"%s\">\n",
			defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
		print &user_chooser_button("smbfs_uid", 0),"</td>\n";

		print "<td><b>$text{'linux_gid'}</b></td>\n";
		printf "<td><input name=smbfs_gid size=8 value=\"%s\">\n",
			defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
		print &group_chooser_button("smbfs_gid", 0),"</td>\n";
		}

	if ($smbfs_support == 1) {
		print "<tr> <td><b>$text{'linux_sname'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_sname_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"servername"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_sname_def value=0 %s>\n",
			defined($options{"servername"}) ? "checked" : "";
		print "<input size=10 name=smbfs_sname value=\"$options{servername}\"></td>\n";
		}
	elsif ($smbfs_support == 2) {
		print "<tr> <td><b>$text{'linux_wg'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_wg_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"workgroup"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_wg_def value=0 %s>\n",
			defined($options{"workgroup"}) ? "checked" : "";
		print "<input size=10 name=smbfs_wg value=\"$options{'workgroup'}\"></td>\n";
		}

	if ($smbfs_support < 3) {
		print "<td><b>$text{'linux_cname'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_cname_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"clientname"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_cname_def value=0 %s>\n",
			defined($options{"clientname"}) ? "checked" : "";
		print "<input size=10 name=smbfs_cname value=\"$options{clientname}\"></td> </tr>\n";

		print "<tr> <td><b>$text{'linux_mname'}</b></td>\n";
		printf "<td colspan=3><input type=radio name=smbfs_mname_def value=1 %s> %s\n",
			defined($options{"machinename"}) ? "" : "checked", $text{'linux_auto'};
		printf "<input type=radio name=smbfs_mname_def value=0 %s>\n",
			defined($options{"machinename"}) ? "checked" : "";
		print "<input size=30 name=smbfs_mname value=\"$options{machinename}\"></td> </tr>\n";
		}

	if ($smbfs_support == 1) {
		print "<tr> <td><b>$text{'linux_fmode'}</b></td>\n";
		printf
		    "<td><input name=smbfs_fmode size=5 value=\"%s\"></td>\n",
		    defined($options{'fmode'}) ? $options{'fmode'} : "755";

		print "<td><b>$text{'linux_dmode'}</b></td>\n";
		printf
		    "<td><input name=smbfs_dmode size=5 value=\"%s\"></td>\n",
		    defined($options{'dmode'}) ? $options{'dmode'} : "755";
		print "</tr>\n";
		}
	elsif ($smbfs_support >= 3) {
		print "<tr> <td><b>$text{'linux_ro'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_ro value=1 %s> $text{'yes'}\n",
			defined($options{"ro"}) ? "checked" : "";
		printf "<input type=radio name=smbfs_ro value=0 %s> $text{'no'}</td>\n",
			defined($options{"ro"}) ? "" : "checked";

		print "<td><b>$text{'linux_user'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_user2 value=1 %s> $text{'yes'}\n",
			defined($options{"user"}) ? "checked" : "";
		printf "<input type=radio name=smbfs_user2 value=0 %s> $text{'no'}</td> </tr>\n",
			defined($options{"user"}) ? "" : "checked";
		}
	}
elsif ($_[0] eq "reiserfs") {
	# Reiserfs is a new super-efficient filesystem
	print "<tr> <td><b>$text{'linux_notail'}</b></td>\n";
	printf "<td><input type=radio name=lnx_notail value=1 %s> $text{'yes'}\n",
		defined($options{"notail"}) ? "checked" : "";
	printf "<input type=radio name=lnx_notail value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"notail"}) ? "" : "checked";
	}
}


# check_location(type)
# Parse and check inputs from %in, calling &error() if something is wrong.
# Returns the location string for storing in the fstab file
sub check_location
{
if ($_[0] eq "nfs") {
	local($out, $temp, $mout, $dirlist);

	if (&has_command("showmount")) {
		# Use ping and showmount to see if the host exists and is up
		if ($in{nfs_host} !~ /^\S+$/) {
			&error(&text('linux_ehost', $in{'nfs_host'}));
			}
		$out = `ping -c 1 '$in{nfs_host}' 2>&1`;
		if ($out =~ /unknown host/) {
			&error(&text('linux_ehost2', $in{'nfs_host'}));
			}
		elsif ($out =~ /100\% packet loss/) {
			&error(&text('linux_edown', $in{'nfs_host'}));
			}
		$out = `showmount -e '$in{nfs_host}' 2>&1`;
		if ($out =~ /Unable to receive/) {
			&error(&text('linux_enfs', $in{'nfs_host'}));
			}
		elsif ($?) {
			&error(&text('linux_elist', $out));
			}

		# Validate directory name
		foreach (split(/\n/, $out)) {
			if (/^(\/\S+)/) { $dirlist .= "$1\n"; }
			}
		if ($in{nfs_dir} !~ /^\/\S+$/) {
			&error(&text('linux_enfsdir', $in{'nfs_dir'},
				     $in{'nfs_host'}, "<pre>$dirlist</pre>"));
			}
		}

	# Try a test mount to see if filesystem is available
	$temp = &tempname();
	mkdir($temp, 0755);
	$mout = `mount $in{nfs_host}:$in{nfs_dir} $temp 2>&1`;
	if ($mout =~ /No such file or directory/i) {
		rmdir($temp);
		&error(&text('linux_enfsdir', $in{'nfs_dir'},
			     $in{'nfs_host'}, "<pre>$dirlist</pre>"));
		}
	elsif ($mout =~ /Permission denied/i) {
		rmdir($temp);
		&error(&text('linux_enfsperm', $in{'nfs_dir'}, $in{'nfs_host'}));
		}
	elsif ($?) {
		rmdir($temp);
		&error(&text('linux_enfsmount', "<tt>$mout</tt>"));
		}
	# It worked! unmount
	`umount $temp`;
	rmdir($temp);

	return "$in{nfs_host}:$in{nfs_dir}";
	}
elsif ($_[0] eq "auto") {
	# Check if the automounter map exists..
	(-r $in{auto_map}) || &error(&text('linux_eautomap', $in{'auto_map'}));
	return $in{auto_map};
	}
elsif ($_[0] eq "autofs") {
	# Check if the map exists (if it is a file)
	if ($in{'autofs_map'} =~ /^\// && !(-r $in{'autofs_map'})) {
		&error(&text('linux_eautomap', $in{'autofs_map'}));
		}
	return $in{autofs_map};
	}
elsif ($_[0] eq "smbfs") {
	# No checking done
	return "\\\\".lc($in{'smbfs_server'})."\\".lc($in{'smbfs_share'});
	}
else {
	# This is some kind of disk-based linux filesystem.. get the device name
	if ($in{'lnx_dev'} == 0) {
		$dv = $in{'lnx_disk'};
		}
	elsif ($in{'lnx_dev'} == 2) {
		$dv = $in{'lnx_raid'};
		}
	elsif ($in{'lnx_dev'} == 3) {
		$dv = "LABEL=".$in{'lnx_label'};
		}
	else {
		$dv = $in{'lnx_other'};
		$dv || &error($text{'linux_edev'});
		}

	# If the device entered is a symlink, follow it
	#if ($dvlink = readlink($dv)) {
	#	if ($dvlink =~ /^\//) { $dv = $dvlink; }
	#	else {	$dv =~ /^(.*\/)[^\/]+$/;
	#		$dv = $1.$dvlink;
	#		}
	#	}

	# Check if the device actually exists and uses the right filesystem
	if (!-r $dv && $dv !~ /LABEL=/) {
		if ($_[0] eq "swap" && $dv !~ /\/dev/) {
			&swap_form($dv);
			}
		else {
			&error(&text('linux_edevfile', $dv));
			}
		}
	return $dv;
	}
}

# check_options(type, device, directory)
# Read options for some filesystem from %in, and use them to update the
# %options array. Options handled by the user interface will be set or
# removed, while unknown options will be left untouched.
sub check_options
{
local($k, @rv);

# Parse the common options first..
if ($_[0] ne "swap" && $_[0] ne "auto" &&
    $_[0] ne "autofs" && $_[0] ne "smbfs") {
	delete($options{"ro"}); delete($options{"rw"});
	if ($in{lnx_ro}) { $options{"ro"} = ""; }

	delete($options{"sync"}); delete($options{"async"});
	if ($in{lnx_sync}) { $options{"sync"} = ""; }

	delete($options{"dev"}); delete($options{"nodev"});
	if ($in{lnx_nodev}) { $options{"nodev"} = ""; }

	delete($options{"exec"}); delete($options{"noexec"});
	if ($in{lnx_noexec}) { $options{"noexec"} = ""; }

	delete($options{"suid"}); delete($options{"nosuid"});
	if ($in{lnx_nosuid}) { $options{"nosuid"} = ""; }

	delete($options{"user"}); delete($options{"nouser"});
	if ($in{lnx_user}) { $options{"user"} = ""; }
	}

if ($_[0] eq "nfs") {
	# NFS has a few specific options..
	delete($options{"bg"}); delete($options{"fg"});
	if ($in{nfs_bg}) { $options{"bg"} = ""; }

	delete($options{"soft"}); delete($options{"hard"});
	if ($in{nfs_soft}) { $options{"soft"} = ""; }

	delete($options{"timeo"});
	if (!$in{nfs_timeo_def}) { $options{"timeo"} = $in{nfs_timeo}; }

	delete($options{"nfsvers"});
	if (!$in{nfs_vers_def}) { $options{"nfsvers"} = $in{nfs_vers}; }

	delete($options{"port"});
	if (!$in{nfs_port_def}) { $options{"port"} = $in{nfs_port}; }

	delete($options{"intr"}); delete($options{"nointr"});
	if ($in{nfs_intr}) { $options{"intr"} = ""; }

	delete($options{"tcp"}); delete($options{"udp"});
	if ($in{nfs_tcp}) { $options{"tcp"} = ""; }
	}
elsif ($_[0] eq "ext2") {
	# More options for ext2..
	delete($options{"check"}); delete($options{"nocheck"});
	if ($in{ext2_check} ne "normal") {
		$options{"check"} = $in{ext2_check};
		}

	delete($options{"errors"});
	if ($in{ext2_errors} ne "default") {
		$options{"errors"} = $in{ext2_errors};
		}

	delete($options{"grpid"}); delete($options{"bsdgroups"});
	delete($options{"sysvgroups"}); delete($options{"nogrpid"});
	if ($in{ext2_grpid}) {
		$options{"grpid"} = "";
		}

	delete($options{"resuid"}); delete($options{"resgid"});
	if ($in{'ext2_resuid'})
		{ $options{"resuid"} = getpwnam($in{'ext2_resuid'}); }
	if ($in{'ext2_resgid'})
		{ $options{"resgid"} = getgrnam($in{'ext2_resgid'}); }

	delete($options{"quota"}); delete($options{"noquota"});
	delete($options{"usrquota"}); delete($options{"grpquota"});
	if ($in{'ext2_quota'} == 1) { $options{'usrquota'} = ""; }
	elsif ($in{'ext2_quota'} == 2) { $options{'grpquota'} = ""; }
	elsif ($in{'ext2_quota'} == 3)
		{ $options{'usrquota'} = $options{'grpquota'} = ""; }
	}
elsif ($_[0] eq "fat" || $_[0] eq "vfat" ||
       $_[0] eq "msdos" || $_[0] eq "umsdos") {
	# All dos-based filesystems have similar options
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{fat_uid} ne "") { $options{"uid"} = getpwnam($in{'fat_uid'}); }
	if ($in{fat_gid} ne "") { $options{"gid"} = getgrnam($in{'fat_gid'}); }

	delete($options{"check"});
	if ($in{fat_check} ne "") { $options{"check"} = $in{fat_check}; }

	delete($options{"conv"});
	if ($in{fat_conv} ne "") { $options{"conv"} = $in{fat_conv}; }

	delete($options{"umask"});
	if (!$in{fat_umask_def}) {
		$in{fat_umask} =~ /^[0-7]{3}$/ ||
			&error(&text('linux_emask', $in{'fat_umask'}));
		$options{"umask"} = $in{fat_umask};
		}

	delete($options{"quiet"});
	if ($in{fat_quiet}) {
		$options{"quiet"} = "";
		}

	if ($_[0] eq "vfat") {
		# Parse extra vfat options..
		delete($options{"uni_xlate"});
		if ($in{fat_uni_xlate}) { $options{"uni_xlate"} = ""; }

		delete($options{"posix"});
		if ($in{fat_posix}) { $options{"posix"} = ""; }
		}
	}
elsif ($_[0] eq "hpfs") {
	# OS/2 filesystem options..
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{hpfs_uid} ne "") { $options{"uid"} = getpwnam($in{hpfs_uid}); }
	if ($in{hpfs_gid} ne "") { $options{"gid"} = getgrnam($in{hpfs_gid}); }

	delete($options{"umask"});
	if (!$in{hpfs_umask_def}) {
		$in{hpfs_umask} =~ /^[0-7]{3}$/ ||
			&error(&text('linux_emask', $in{'hpfs_umask'}));
		$options{"umask"} = $in{hpfs_umask};
		}

	delete($options{"conv"});
	if ($in{hpfs_conv} ne "") { $options{"conv"} = $in{hpfs_conv}; }
	}
elsif ($_[0] eq "iso9660") {
	# Options for iso9660 cd-roms
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{iso9660_uid} ne "")
		{ $options{"uid"} = getpwnam($in{iso9660_uid}); }
	if ($in{iso9660_gid} ne "")
		{ $options{"gid"} = getgrnam($in{iso9660_gid}); }

	delete($options{"norock"});
	if ($in{iso9660_norock}) { $options{"norock"} = ""; }

	delete($options{"mode"});
	$in{iso9660_mode} =~ /^[0-7]{3}$/ ||
		&error(&text('linux_emask', $in{'iso9660_mode'}));
	$options{"mode"} = $in{iso9660_mode};
	}
elsif ($_[0] eq "autofs") {
	# Options for automounter filesystems
	delete($options{'timeout'});
	if (!$in{'autofs_timeout_def'}) {
		$in{'autofs_timeout'} =~ /^\d+$/ ||
			&error(&text('linux_etimeout', $in{'autofs_timeout'}));
		$options{'timeout'} = $in{'autofs_timeout'};
		}
	delete($options{'pid-file'});
	if (!$in{'autofs_pid-file_def'}) {
		$in{'autofs_pid-file'} =~ /^\/\S+$/ ||
		       &error(&text('linux_epidfile', $in{'autofs_pid-file'}));
		$options{'pid-file'} = $in{'autofs_pid-file'};
		}
	}
elsif ($_[0] eq "smbfs") {
	# Options for smb filesystems..
	delete($options{'user'}); delete($options{'username'});
	if ($in{smbfs_user}) {
		$options{$smbfs_support == 4 ? 'username' : 'user'} = $in{smbfs_user};
		}

	delete($options{'passwd'}); delete($options{'password'});
	if ($in{smbfs_passwd}) {
		$options{$smbfs_support == 4 ? 'password' : 'passwd'} = $in{smbfs_passwd};
		}

	if ($smbfs_support != 2) {
		delete($options{uid});
		if ($in{smbfs_uid} ne "") { $options{uid} = getpwnam($in{smbfs_uid}); }

		delete($options{gid});
		if ($in{smbfs_gid} ne "") { $options{gid} = getgrnam($in{smbfs_gid}); }
		}

	if ($smbfs_support == 1) {
		delete($options{servername});
		if (!$in{smbfs_sname_def})
			{ $options{servername} = $in{smbfs_sname}; }
		}
	elsif ($smbfs_support == 2) {
		delete($options{workgroup});
		if (!$in{smbfs_wg_def})
			{ $options{workgroup} = $in{smbfs_wg}; }
		}

	if ($smbfs_support < 3) {
		delete($options{clientname});
		if (!$in{smbfs_cname_def})
			{ $options{clientname} = $in{smbfs_cname}; }

		delete($options{machinename});
		if (!$in{smbfs_mname_def})
			{ $options{machinename} = $in{smbfs_mname}; }
		elsif (!gethostbyname($in{'smbfs_server'})) {
			# No hostname found for the server.. try to guess
			local($out, $sname);
			$sname = $in{'smbfs_server'};
			$out = `$config{'nmblookup_path'} -d 0 $sname 2>&1`;
			if (!$? && $out =~ /^([0-9\.]+)\s+$sname\n/) {
				$options{machinename} = $1;
				}
			}
		}

	if ($smbfs_support == 1) {
		delete($options{fmode});
		if ($in{smbfs_fmode} !~ /^[0-7]{3}$/) {
			&error(&text('linux_efmode', $in{'smbfs_fmode'}));
			}
		elsif ($in{smbfs_fmode} ne "755")
			{ $options{fmode} = $in{smbfs_fmode}; }

		delete($options{dmode});
		if ($in{smbfs_dmode} !~ /^[0-7]{3}$/) {
			&error(&text('linux_edmode', $in{'smbfs_dmode'}));
			}
		elsif ($in{smbfs_dmode} ne "755")
			{ $options{dmode} = $in{smbfs_dmode}; }
		}
	elsif ($smbfs_support >= 3) {
		delete($options{'ro'}); delete($options{'rw'});
		if ($in{'smbfs_ro'}) { $options{'ro'} = ''; }

		delete($options{'user'});
		if ($in{'smbfs_user2'}) { $options{'user'} = ''; }
		}
	}
elsif ($_[0] eq "reiserfs") {
	# Save reiserfs options
	delete($options{'notail'});
	$options{'notail'} = "" if ($in{'lnx_notail'});
	}

# Add loop option if mounting a normal file
if ($_[0] ne "swap" && $_[0] ne "auto" && $_[0] ne "autofs" &&
    $_[0] ne "smbfs" && $_[0] ne "nfs") {
	local(@st);
	@st = stat($_[1]);
	if (@st && ($st[2] & 0xF000) == 0x8000) {
		# a regular file.. add the loop option
		if (!$options{'loop'}) {
			$options{'loop'} = "";
			}
		}
	}

# Return options string
foreach $k (keys %options) {
	if ($options{$k} eq "") { push(@rv, $k); }
	else { push(@rv, "$k=$options{$k}"); }
	}
return @rv ? join(',' , @rv) : "-";
}


# Get the smbfs options from 'smbfs_opts' file in the current directory. This
# is sadly necessary because there is no way to get the current options for
# an existing smbfs mount... so webmin has to save them in a file when
# mounting. Blech.
sub read_smbopts
{
local($_);
open(SMBOPTS, "$module_config_directory/smbfs");
while(<SMBOPTS>) {
	/^(\S+)\s+(\S+)$/;
	$smbopts{$1} = $2;
	}
close(SMBOPTS);
}

sub write_smbopts
{
local($_);
open(SMBOPTS, "> $module_config_directory/smbfs");
foreach (keys %smbopts) {
	print SMBOPTS "$_\t$smbopts{$_}\n";
	}
close(SMBOPTS);
}


# create_swap(file, size, units)
# Calls dd and mkswap to setup a swap file
sub create_swap
{
local($out, $bl);
$bl = $_[1] * ($_[2] eq "m" ? 1024 : 1);
$out = `dd if=/dev/zero of=$_[0] bs=1024 count=$bl 2>&1`;
if ($?) { return "dd failed : $out"; }
$out = `mkswap $_[0] $bl 2>&1`;
if ($?) { return "mkswap failed : $out"; }
system("sync >/dev/null 2>&1");
return 0;
}

# exports_list(host, dirarray, clientarray)
# Fills the directory and client array references with exports from some
# host. Returns an error string if something went wrong
sub exports_list
{
local($dref, $cref, $out, $_);
$dref = $_[1]; $cref = $_[2];
$out = `showmount -e $_[0] 2>&1`;
if ($?) { return $out; }
foreach (split(/\n/, $out)) {
	if (/^(\/\S*)\s+(.*)$/) {
		push(@$dref, $1); push(@$cref, $2);
		}
	}
return undef;
}

# broadcast_addr()
# Returns a useable broadcast address for finding NFS servers
sub broadcast_addr
{
local($out);
$out = `ifconfig -a 2>&1`;
if ($out =~ /(eth|tr)\d\s+.*\n.*Bcast:(\S+)\s+/) { return $2; }
return "255.255.255.255";
}

# autofs_options(string)
# Converts a string of options line --timeout 60 to something like timeout=60
sub autofs_options
{
local(@options);
if ($_[0] =~ /--timeout\s+(\d+)/ || $_[0] =~ /-t\s+(\d+)/) {
	push(@options, "timeout=$1");
	}
if ($_[0] =~ /--pid-file\s+(\S+)/ || $_[0] =~ /-p\s+(\d+)/) {
	push(@options, "pid-file=$1");
	}
return join(',', @options);
}

# autofs_args(string)
# Convert a comma-separated options string into args for automount
sub autofs_args
{
local(%options, $args);
&parse_options("autofs", $_[0]);
if (defined($options{'timeout'})) {
	$args .= " --timeout $options{'timeout'}";
	}
if (defined($options{'pid-file'})) {
	$args .= " --pid-file $options{'pid-file'}";
	}
return $args;
}

# read_amd_conf()
# Returns the entire amd config file as a string
sub read_amd_conf
{
local $sl = $/;
$/ = undef;
open(AMD, $config{'auto_file'});
local $rv = <AMD>;
close(AMD);
$/ = $sl;
return $rv;
}

# write_amd_conf(text)
sub write_amd_conf
{
open(AMD, ">$config{'auto_file'}");
print AMD $_[0];
close(AMD);
}

# parse_amd_conf()
# Parses a new-style amd.conf file into a hashtable
sub parse_amd_conf
{
local (@rv, $str, $lnum);
open(AMD, $config{'auto_file'});
while(<AMD>) {
	s/\r|\n//g;
	s/#.*$//g;
	if (/\[\s*(\S+)\s*\]/) {
		$str = { 'dir' => $1,
			 'line' => $lnum,
			 'eline' => $lnum };
		push(@rv, $str);
		}
	elsif (/(\S+)\s*=\s*"(.*)"/ || /(\S+)\s*=\s*(\S+)/) {
		$str->{'opts'}->{$1} = $2;
		$str->{'eline'} = $lnum;
		}
	$lnum++;
	}
close(AMD);
return @rv;
}

# device_name(device)
# Converts a device name to a human-readable form
sub device_name
{
if (!$text{'select_part'}) {
	local %flang = &load_language('fdisk');
	$text{'select_part'} = $flang{'select_part'};
	$text{'select_mpart'} = $flang{'select_mpart'};
	$text{'select_device'} = $flang{'select_device'};
	$text{'select_fd'} = $flang{'select_fd'};
	}
return $_[0] =~ /^\/dev\/(s|h)d([a-z])(\d+)$/ ?
	&text('select_part', $1 eq 's' ? 'SCSI' : 'IDE', uc($2), "$3") :
       $_[0] =~ /^\/dev\/(s|h)d([a-z])$/ ?
	&text('select_device', $1 eq 's' ? 'SCSI' : 'IDE', uc($2)) :
       $_[0] =~ /rd\/c(\d+)d(\d+)p(\d+)$/ ?
	&text('select_mpart', "$1", "$2", "$3") :
       $_[0] =~ /fd(\d+)$/ ?
	&text('select_fd', "$1") :
       $_[0] =~ /md(\d+)$/ ?
	&text('linux_rdev', "$1") :
       $_[0] =~ /LABEL=(\S+)/i ?
	&text('linux_label', "$1") :
       $_[0] eq '/dev/cdrom' ?
	$text{'linux_cddev'} :
	$_[0];
}

sub files_to_lock
{
return ( $config{'fstab_file'}, $config{'autofs_file'}, $config{'auto_file'} );
}

1;

0707010000772d000081e40000000000000002000000013ac0388c00001902000000200000000000000000000000000000001b00000003reloc/mount/edit_mount.cgi    #!/usr/local/bin/perl
# edit_mount.cgi
# Display a form for editing or creating a permanent or temporary mounting.

require './mount-lib.pl';
&error_setup($text{'edit_err'});
&ReadParse();
if (defined($in{index})) {
	if ($in{temp}) {
		# Edit a temporary mount, existing only in the mnttab
		@mlist = &list_mounted();
		@minfo = @{$mlist[$in{index}]};
		$mnow = 1; $msave = 0;
		}
	else {
		# Edit a permanent mount, which may or may not be currently
		# mounted.
		@mlist = &list_mounts();
		@minfo = @{$mlist[$in{index}]};
		$msave = 1; $mnow = (&get_mounted($minfo[0], $minfo[1]) >= 0);
		}
	if ($in{index} >= @mlist) {
		&error($text{'edit_egone'});
		}
	$type = $minfo[2];
	&header($text{'edit_title'}, "");
	print "<hr>\n";
	$newm = 0;
	}
else {
	# creating a new mount (temporary or permanent)
	$type = $in{type};
	&header($text{'create_title'}, "");
	print "<hr>\n";
	$newm = 1;
	}
@mmodes = &mount_modes($type);
$msave = ($mmodes[0]==0 ? 0 : $msave);
$mnow = ($mmodes[1]==0 ? $msave : $mnow);

print "<form action=\"save_mount.cgi\">\n";
print "<input name=return type=hidden value='$in{'return'}'>\n";
if (!$newm) {
	print "<input type=hidden name=old value=\"$in{index}\">\n";
	print "<input type=hidden name=temp value=\"$in{temp}\">\n";

	print "<input type=hidden name=oldmnow value=$mnow>\n";
	print "<input type=hidden name=oldmsave value=$msave>\n";
	}
print "<input type=hidden name=type value=\"$type\">\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>",&text('edit_header', &fstype_name($type)),
      "</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'edit_dir'}</b></td>\n";
if ($type eq "swap") {
	print "<td colspan=3><i>$text{'edit_swap'}</i></b>\n";
	}
else {
	print "<td colspan=3><input size=30 name=directory value=\"$minfo[0]\">\n";
	print &file_chooser_button("directory", 1);
	}
if (!$newm && (($size,$free) = &disk_space($type, $minfo[0]))) {
	print "&nbsp;" x 8;
	printf "<b>$text{'edit_size'}</b> <i>%d kB</i> / \n", $size;
	printf "<b>$text{'edit_free'}</b> <i>%d kB</i></td>\n", $free;
	}
print "</td> </tr>\n";

if ($mmodes[0] != 0 && !$access{'simple'}) {
	print "<tr> <td><b>$text{'edit_savemount'}</b></td> <td colspan=3>\n";
	printf "<input type=radio name=msave value=2 %s> $text{'edit_boot'}\n",
		$minfo[5] eq "yes" || $newm ? "checked" : "";
	if ($mmodes[0] != 1) {
		printf "<input type=radio name=msave value=1 %s> %s\n",
			$minfo[5] eq "no" ? "checked" : "", $text{'edit_save'};
		}
	if (!$newm && $mmodes[1] == 0) {
		printf "<input type=radio name=msave value=0 %s> %s\n",
			$minfo[5] eq "" && !$newm ? "checked" : "",
			$text{'edit_delete'};
		}
	else {
		printf "<input type=radio name=msave value=0 %s> %s\n",
			$minfo[5] eq "" && !$newm ? "checked" : "",
			$text{'edit_dont'};
		}
	print "</td> </tr>\n";
	}
if ($mmodes[1] == 1 && ($mmodes[3] == 0 || !$mnow) && !$access{'simple'}) {
	print "<tr> <td><b>$text{'edit_now'}</b></td> <td colspan=3>\n";
	printf "<input type=radio name=mmount value=1 %s> %s\n",
		$mnow || $newm ? "checked" : "", $text{'edit_mount'};
	if ($mmodes[0] == 0) {
		printf "<input type=radio name=mmount value=0 %s> %s\n",
			$mnow || $newm ? "" : "checked", $text{'edit_delete'};
		}
	else {
		printf "<input type=radio name=mmount value=0 %s> %s\n",
			$mnow || $newm ? "" : "checked",
			$newm ? $text{'edit_dont2'} : $text{'edit_unmount'};
		}
	print "</td> </tr>\n";
	}

if ($mmodes[2] && !$access{'simple'}) {
	print "<tr> <td><b>$text{'edit_order'}</b></td>\n";
	printf "<td colspan=3><input type=radio name=order value=0 %s> %s\n",
		$newm || $minfo[4] == 0 ? "checked" : "", $text{'no'};
	printf "<input type=radio name=order value=1 %s> %s\n",
		$minfo[4] == 1 ? "checked" : "", $text{'edit_first'};
	printf "<input type=radio name=order value=%s %s> %s</td\n",
		$minfo[4] > 1 ? $minfo[4] : 2 , $minfo[4] > 1 ? "checked" : "",
		$text{'edit_second'};
	print "</tr>\n";
	}
&generate_location($type, $minfo[1]);
print "</table></td> </tr></table><p>\n";

if (!$access{'simple'} || !defined($access{'opts'}) ||
    $access{'opts'} =~ /$type/) {
	# generate mount options
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'edit_adv'}</b></td> </tr>\n";
	print "<tr $cb> <td><table width=100%>\n";
	&parse_options($type, $minfo[3]);
	&generate_options($type, $newm);
	print "</table></td> </tr></table>\n";
	}

if ($access{'simple'}) {
	# buttons for mounting/unmounting
	print "<table width=100%><tr>\n";
	if ($newm) {
		print "<td><input type=submit ",
		      "value=\"$text{'edit_create'}\"></td>";
		}
	elsif ($msave && $mnow) {
		print "<td width=33%><input type=submit ",
		      "value=\"$text{'edit_save_apply'}\"></td>\n";
		if ($mmodes[1]) {
			print "<td align=center width=33%><input type=submit ",
			   "value=\"$text{'edit_umount'}\" name=umount></td>\n";
			}
		print "<td align=right width=33%><input type=submit ",
		      "value=\"$text{'edit_del_umount'}\" name=delete></td>\n";
		}
	elsif ($msave) {
		print "<td width=33%><input type=submit ",
		      "value=\"$text{'save'}\"></td>\n";
		print "<td align=center width=33%><input type=submit ",
		      "value=\"$text{'edit_mount'}\" name=mount></td>\n";
		print "<td align=right width=33%><input type=submit ",
		      "value=\"$text{'edit_delete'}\" name=delete></td>\n";
		}
	else {
		print "<td width=33%><input type=submit ",
		      "value=\"$text{'save'}\"></td>\n";
		if ($mmodes[0]) {
			print "<td align=middle width=33%><input type=submit ",
			      "value=\"$text{'edit_perm'}\" name=perm></td>\n";
			}
		print "<td align=right width=33%><input type=submit ",
		      "value=\"$text{'edit_umount'}\" name=umount></td>\n";
		}
	print "</tr></table></form>\n";
	}
else {
	# Save and other buttons
	print "<table width=100%><tr>\n";
	if ($newm) {
		print "<td><input type=submit value=\"$text{'create'}\"></td>";
		}
	elsif ($mnow && $minfo[2] ne "swap") {
		print "<td><input type=submit value=\"$text{'save'}\"></td>\n";
		print "</form><form action=../proc/index_search.cgi>\n";
		print "<input type=hidden name=mode value=3>\n";
		print "<input type=hidden name=fs value=$minfo[0]>\n";
		print "<td align=right><input type=submit ",
		      "value=\"$text{'edit_list'}\"></td>\n";
		}
	else {
		print "<td><input type=submit value=\"$text{'save'}\"></td>";
		}
	print "</tr></table></form>\n";
	}
print "<hr>\n";
&footer($in{'return'}, $text{'index_return'});

  0707010000772e000081e40000000000000002000000013ac0388c000068e3000000200000000000000000000000000000001b00000003reloc/mount/freebsd-lib.pl    # freebsd-lib.pl
# Mount table functions for freebsd

$uname_release = `uname -r`;

# Return information about a filesystem, in the form:
#  directory, device, type, options, fsck_order, mount_at_boot
# If a field is unused or ignored, a - appears instead of the value.
# Swap-filesystems (devices or files mounted for VM) have a type of 'swap',
# and 'swap' in the directory field
sub list_mounts
{
local(@rv, @p, @o, $_, $i, $j); $i = 0;

# Get /etc/fstab mounts
open(FSTAB, $config{'fstab_file'});
while(<FSTAB>) {
	local(@o, $at_boot);
	chop; s/#.*$//g;
	if (!/\S/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "proc" || $p[2] eq "procfs") { $p[2] = $p[0] = "proc"; }
	if ($p[2] eq "swap") { $p[1] = "swap"; }
	$rv[$i] = [ $p[1], $p[0], $p[2] ];
	$rv[$i]->[5] = "yes";
	@o = split(/,/ , $p[3] eq "defaults" ? "" : $p[3]);
	if (($j = &indexof("noauto", @o)) >= 0) {
		# filesytem is not mounted at boot
		splice(@o, $j, 1);
		$rv[$i]->[5] = "no";
		}
	$rv[$i]->[3] = (@o ? join(',' , @o) : "-");
	$rv[$i]->[4] = (@p >= 5 ? $p[5] : 0);
	$i++;
	}
close(FSTAB);
return @rv;
}


# create_mount(directory, device, type, options, fsck_order, mount_at_boot)
# Add a new entry to the fstab file, old or new automounter file
sub create_mount
{
local(@mlist, @amd, $_); local($opts);

# Adding a normal mount to the fstab file
open(FSTAB, ">> $config{'fstab_file'}");
print FSTAB "$_[1]  $_[0]  $_[2]";
$opts = $_[3] eq "-" ? "" : $_[3];
if ($_[5] eq "no") {
	$opts = join(',' , (split(/,/ , $opts) , "noauto"));
	}
if ($opts eq "") { print FSTAB "  defaults"; }
else { print FSTAB "  $opts"; }
print FSTAB "  0  ";
print FSTAB $_[4] eq "-" ? "0\n" : "$_[4]\n";
close(FSTAB);
}


# change_mount(num, directory, device, type, options, fsck_order, mount_at_boot)
# Change an existing permanent mount
sub change_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $i++ == $_[0]) {
		# Found the line to replace
		print FSTAB "$_[2]  $_[1]  $_[3]";
		$opts = $_[4] eq "-" ? "" : $_[4];
		if ($_[6] eq "no") {
			$opts = join(',' , (split(/,/ , $opts) , "noauto"));
			}
		if ($opts eq "") { print FSTAB "  defaults"; }
		else { print FSTAB "  $opts"; }
		print FSTAB "  0  ";
		print FSTAB $_[5] eq "-" ? "0\n" : "$_[5]\n";
		}
	else { print FSTAB $_,"\n"; }
	}
close(FSTAB);
}


# delete_mount(index)
# Delete an existing permanent mount
sub delete_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line !~ /\S/ || $i++ != $_[0]) {
		# Don't delete this line
		print FSTAB $_,"\n";
		}
	}
close(FSTAB);
}


# list_mounted()
# Return a list of all the currently mounted filesystems and swap files.
# The list is in the form:
#  directory device type options
# Under FreeBSD, there seems to be no way to get additional mount options
# used by filesystems like NFS etc. Even getting the full details of mounted
# filesystems requires C code! So we have to call a specially-written external
# program to get the mount list
sub list_mounted
{
# get the list of mounted filesystems
local(@rv, $_);
local $cmd = $uname_release =~ /^4\.[0-9]/ ? "./freebsd-mounts-4" :
	     $uname_release =~ /^3\.[1-9]/ ? "./freebsd-mounts-3" :
				             "./freebsd-mounts-2";
open(CMD, "$cmd |");
while(<CMD>) {
	local @p = split(/\t/, $_);
	if ($p[2] eq "procfs" || $p[1] eq "procfs") { $p[1] = $p[2] = "proc"; }
	push(@rv, \@p);
	}
close(CMD);

# add output from swapinfo
foreach (split(/\n/, `swapinfo`)) {
	if (/^(\/\S+)\s+\d+\s+\d+/) {
		push(@rv, [ "swap", $1, "swap", "-" ]);
		}
	}
return @rv;
}


# mount_dir(directory, device, type, options)
# Mount a new directory from some device, with some options. Returns 0 if ok,
# or an error string if failed
sub mount_dir
{
local($out, $opts, $shar, %options, %smbopts);
if ($_[2] eq "swap") {
	# Use swapon to add the swap space..
	$out = &backquote_logged("swapon $_[1] 2>&1");
	if ($?) { return "<pre>$out</pre>"; }
	}
else {
	# some disk-based filesystem
	$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
	$opts = join(',', grep { !/quota/ } split(/,/, $opts));
	$out = &backquote_logged("mount -t $_[2] $opts $_[1] $_[0] 2>&1");
	if ($?) { return "<pre>$out</pre>"; }
	}
return 0;
}


# unmount_dir(directory, device, type)
# Unmount a directory that is currently mounted. Returns 0 if ok,
# or an error string if failed
sub unmount_dir
{
local($out, %smbopts, $dir);
if ($_[2] eq "swap") {
	# Not possible!
	&error("Swap space cannot be removed");
	}
else {
	$out = &backquote_logged("umount $_[0] 2>&1");
	if ($?) { return "<pre>$out</pre>"; }
	}
return 0;
}


# mount_modes(type)
# Given a filesystem type, returns 4 numbers that determine how the file
# system can be mounted, and whether it can be fsck'd
# The first is:
#  0 - cannot be permanently recorded
#	(smbfs under linux)
#  1 - can be permanently recorded, and is always mounted at boot
#	(swap under linux)
#  2 - can be permanently recorded, and may or may not be mounted at boot
#	(most normal filesystems)
# The second is:
#  0 - mount is always permanent => mounted when saved
#	(swap under linux)
#  1 - doesn't have to be permanent
#	(normal fs types)
# The third is:
#  0 - cannot be fsck'd at boot time
#  1 - can be be fsck'd at boot
# The fourth is:
#  0 - can be unmounted
#  1 - cannot be unmounted
sub mount_modes
{
if ($_[0] eq "swap")
	{ return (2, 1, 0, 1); }
elsif ($_[0] eq "ufs")
	{ return (2, 1, 1, 0); }
else
	{ return (2, 1, 0, 0); }
}


# disk_space(type, directory)
# Returns the amount of total and free space for some filesystem, or an
# empty array if not appropriate.
sub disk_space
{
if (&get_mounted($_[1], "*") < 0) { return (); }
if ($_[0] eq "proc" || $_[0] eq "swap") { return (); }
`df -k $_[1]` =~ /Mounted on\n\S+\s+(\S+)\s+\S+\s+(\S+)/;
return ($1, $2);
}


# list_fstypes()
# Returns an array of all the supported filesystem types. If a filesystem is
# found that is not one of the supported types, generate_location() and
# generate_options() will not be called for it.
sub list_fstypes
{
local @rv = ("ufs", "nfs", "cd9660", "msdos", "swap");
push(@rv, "ext2fs") if (&has_command("mount_ext2fs"));
push(@rv, "ntfs") if (&has_command("mount_ntfs"));
return @rv;
}


# fstype_name(type)
# Given a short filesystem type, return a human-readable name for it
sub fstype_name
{
local(%fsmap);
%fsmap = ("ufs", "FreeBSD Unix Filesystem",
	  "nfs","Network Filesystem",
	  "cd9660","ISO9660 CD-ROM",
	  "msdos","MS-DOS Filesystem",
	  "ext2fs","Linux Filesystem",
	  "ntfs","Windows NT Filesystem",
	  "swap","Virtual Memory",
	  "proc","Process Image Filesystem");
return $config{long_fstypes} && $fsmap{$_[0]} ? $fsmap{$_[0]} : uc($_[0]);
}


# multiple_mount(type)
# Returns 1 if filesystems of this type can be mounted multiple times, 0 if not
sub multiple_mount
{
return $_[0] eq "nfs";
}


# generate_location(type, location)
# Output HTML for editing the mount location of some filesystem.
sub generate_location
{
if ($_[0] eq "nfs") {
	# NFS mount from some host and directory
	$_[1] =~ /^([^:]+):(.*)$/;
	print "<tr> <td><b>NFS Hostname</b></td>\n";
	print "<td><input name=nfs_host size=20 value=\"$1\">\n";
	&nfs_server_chooser_button("nfs_host");
	print "</td>\n";
	print "<td><b>NFS Directory</b></td>\n";
	print "<td><input name=nfs_dir size=20 value=\"$2\">\n";
	&nfs_export_chooser_button("nfs_host", "nfs_dir");
	print "</td> </tr>\n";
	}
else {
	if ($_[0] eq "swap") {
		# Swap file or device
		printf "<tr> <td valign=top><b>Swap File</b></td>\n";
		}
	else {
		# Disk-based filesystem
		printf "<tr> <td valign=top><b>%s Disk</b></td>\n",
			&fstype_name($_[0]);
		}
	print "<td colspan=3>\n";
	if ($_[1] =~ /^\/dev\/wd(\d)s(\d)([a-z]*)$/) {
		$disk_dev = 0; $ide_t = $1; $ide_s = $2; $ide_p = $3;
		}
	elsif ($_[1] =~ /^\/dev\/sd(\d)s(\d)([a-z]*)$/) {
		$disk_dev = 1; $scsi_t = $1; $scsi_s = $2; $scsi_p = $3;
		}
	else { $disk_dev = 2; }

	printf "<input type=radio name=disk_dev value=0 %s> IDE Hard Disk:\n",
		$disk_dev == 0 ? "checked" : "";
	print "Device <input name=ide_t size=3 value=\"$ide_t\">\n";
	print "Slice <input name=ide_s size=3 value=\"$ide_s\">\n";
	print "Partition <input name=ide_p size=3 value=\"$ide_p\"><br>\n";

	printf "<input type=radio name=disk_dev value=1 %s> SCSI Disk:\n",
		$disk_dev == 1 ? "checked" : "";
	print "Device <input name=scsi_t size=3 value=\"$scsi_t\">\n";
	print "Slice <input name=scsi_s size=3 value=\"$scsi_s\">\n";
	print "Partition <input name=scsi_p size=3 value=\"$scsi_p\"><br>\n";

	printf "<input type=radio name=disk_dev value=2 %s> Other Device:\n",
		$disk_dev == 2 ? "checked" : "";
	printf "<input size=20 name=dev_path value=\"%s\"><br>\n",
		$disk_dev == 2 ? $_[1] : "";
	print "</td> </tr>\n";
	}
}


# generate_options(type, newmount)
# Output HTML for editing mount options for a particular filesystem 
# under this OS
sub generate_options
{
if ($_[0] ne "swap") {
	# These options are common to all filesystems
	print "<tr> <td><b>Read-only?</b></td>\n";
	printf "<td nowrap><input type=radio name=bsd_ro value=1 %s> Yes\n",
		defined($options{"rdonly"}) || defined($options{"ro"})
			? "checked" : "";
	printf "<input type=radio name=bsd_ro value=0 %s> No</td>\n",
		defined($options{"rdonly"}) || defined($options{"ro"})
			? "" : "checked";

	print "<td><b>Buffer writes to filesystem?</b></td>\n";
	printf"<td nowrap><input type=radio name=bsd_sync value=0 %s> Yes\n",
		defined($options{"sync"}) ? "" : "checked";
	printf "<input type=radio name=bsd_sync value=1 %s> No</td> </tr>\n",
		defined($options{"sync"}) ? "checked" : "";

	print "<tr> <td><b>Allow device files?</b></td>\n";
	printf "<td nowrap><input type=radio name=bsd_nodev value=0 %s> Yes\n",
		defined($options{"nodev"}) ? "" : "checked";
	printf "<input type=radio name=bsd_nodev value=1 %s> No</td>\n",
		defined($options{"nodev"}) ? "checked" : "";

	print "<td><b>Allow execution of binaries?</b></td>\n";
	printf"<td nowrap><input type=radio name=bsd_noexec value=0 %s> Yes\n",
		defined($options{"noexec"}) ? "" : "checked";
	printf "<input type=radio name=bsd_noexec value=1 %s> No</td> </tr>\n",
		defined($options{"noexec"}) ? "checked" : "";

	print "<tr> <td><b>Disallow setuid programs?</b></td>\n";
	printf "<td nowrap><input type=radio name=bsd_nosuid value=1 %s> Yes\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=bsd_nosuid value=0 %s> No</td>\n",
		defined($options{"nosuid"}) ? "" : "checked";

	print "<td><b>Update access times?</b></td>\n";
	printf"<td nowrap><input type=radio name=bsd_noatime value=0 %s> Yes\n",
		defined($options{"noatime"}) ? "" : "checked";
	printf "<input type=radio name=bsd_noatime value=1 %s> No</td> </tr>\n",
		defined($options{"noatime"}) ? "checked" : "";

	if ($uname_release =~ /^[34]\./) {
		# FreeBSD 3.x has some more options
		print "<tr> <td><b>Follow symbolic links?</b></td>\n";
		printf "<td nowrap><input type=radio name=bsd_nosymfollow value=0 %s> Yes\n",
			defined($options{"nosymfollow"}) ? "" : "checked";
		printf "<input type=radio name=bsd_nosymfollow value=1 %s> No</td>\n",
			defined($options{"nosymfollow"}) ? "checked" : "";

		print "<td><b>Files inherit group from SUID directories?</b></td>\n";
		printf"<td nowrap><input type=radio name=bsd_suiddir value=1 %s> Yes\n",
			defined($options{"suiddir"}) ? "checked" : "";
		printf "<input type=radio name=bsd_suiddir value=0 %s> No</td> </tr>\n",
			defined($options{"suiddir"}) ? "" : "checked";
		}
	}

if ($_[0] eq "ufs") {
	# UFS filesystems support quotas
	print "<tr> <td><b>User quotas at boot</b></td> <td colspan=3>\n";
	printf "<input type=radio name=ufs_userquota value=0 %s> Disabled\n",
		defined($options{'userquota'}) ? "" : "checked";
	printf "<input type=radio name=ufs_userquota value=1 %s> Enabled\n",
		defined($options{'userquota'}) && $options{'userquota'} eq ""
			? "checked" : "";
	printf "<input type=radio name=ufs_userquota value=2 %s>\n",
		$options{'userquota'} ? "checked" : "";
	print "Enabled, use file\n";
	printf "<input name=ufs_userquota_file size=30 value=\"%s\">\n",
		$options{'userquota'};
	print "</td> </tr>\n";
		
	print "<tr> <td><b>Group quotas at boot</b></td> <td colspan=3>\n";
	printf "<input type=radio name=ufs_groupquota value=0 %s> Disabled\n",
		defined($options{'groupquota'}) ? "" : "checked";
	printf "<input type=radio name=ufs_groupquota value=1 %s> Enabled\n",
		defined($options{'groupquota'}) && $options{'groupquota'} eq ""
			? "checked" : "";
	printf "<input type=radio name=ufs_groupquota value=2 %s>\n",
		$options{'groupquota'} ? "checked" : "";
	print "Enabled, use file\n";
	printf "<input name=ufs_groupquota_file size=30 value=\"%s\">\n",
		$options{'groupquota'};
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "nfs") {
	# NFS filesystems have lots more options
	print "<tr> <td><b>Retry mounts in background?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_b value=1 %s> Yes\n",
		defined($options{"-b"}) ? "checked" : "";
	printf "<input type=radio name=nfs_b value=0 %s> No</td>\n",
		defined($options{"-b"}) ? "" : "checked";

	print "<td><b>Return error on timeouts?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_s value=1 %s> Yes\n",
		defined($options{"-s"}) ? "checked" : "";
	printf "<input type=radio name=nfs_s value=0 %s> No</td> </tr>\n",
		defined($options{"-s"}) ? "" : "checked";

	print "<tr> <td><b>Timeout</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_t_def value=1 %s> Default\n",
		defined($options{"-t"}) ? "" : "checked";
	printf "<input type=radio name=nfs_t_def value=0 %s>\n",
		defined($options{"-t"}) ? "checked" : "";
	printf "<input size=5 name=nfs_t value=\"$options{'-t'}\"></td>\n";

	print "<td><b>Number of Retransmissions</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_x_def value=1 %s> Default\n",
		defined($options{"-x"}) ? "" : "checked";
	printf "<input type=radio name=nfs_x_def value=0 %s>\n",
		defined($options{"-x"}) ? "checked" : "";
	print "<input size=5 name=nfs_x value=\"$options{'-x'}\"></td> </tr>\n";

	print "<tr> <td><b>NFS version</b></td> <td nowrap>\n";
	local $v = defined($options{"-2"}) ? 2 :
		   defined($options{"-3"}) ? 3 : 0;
	printf "<input type=radio name=nfs_ver value=0 %s> Auto\n",
		$v ? "" : "checked";
	printf "<input type=radio name=nfs_ver value=2 %s> V2\n",
		$v == 2 ? "checked" : "";
	printf "<input type=radio name=nfs_ver value=3 %s> V3</td>\n",
		$v == 3 ? "checked" : "";

	print "<td><b>Mount retries</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_r_def value=1 %s> Default\n",
		defined($options{"-R"}) ? "" : "checked";
	printf "<input type=radio name=nfs_r_def value=0 %s>\n",
		defined($options{"-R"}) ? "checked" : "";
	print "<input size=5 name=nfs_r value=\"$options{'-R'}\"></td> </tr>\n";

	print "<tr> <td><b>Read-ahead blocks</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_a_def value=1 %s> Default\n",
		defined($options{"-a"}) ? "" : "checked";
	printf "<input type=radio name=nfs_a_def value=0 %s>\n",
		defined($options{"-a"}) ? "checked" : "";
	print "<input size=5 name=nfs_a value=\"$options{'-a'}\"></td>\n";

	print "<td><b>RPC Protocol</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_t2 value=1 %s> TCP\n",
		defined($options{"-T"}) ? "checked" : "";
	printf "<input type=radio name=nfs_t2 value=0 %s> UDP</td> </tr>\n",
		defined($options{"-T"}) ? "" : "checked";
	}
elsif ($_[0] eq "msdos"){
	# MS-DOS filesystems options deal with filling in
	# missing unix functionality
	print "<tr> <td><b>User files are owned by</b></td>\n";
	printf "<td><input name=msdos_u size=8 value=\"%s\">\n",
		defined($options{"-u"}) ? getpwuid($options{"-u"}) : "";
	print &user_chooser_button("msdos_u", 0),"</td>\n";

	print "<td><b>Group files are owned by</b></td>\n";
	printf "<td><input name=msdos_g size=8 value=\"%s\">\n",
		defined($options{"-g"}) ? getgrgid($options{"-g"}) : "";
	print &group_chooser_button("msdos_g", 0),"</td>\n";

	print "<tr> <td><b>File permissions mask</b></td>\n";
	printf "<td><input type=radio name=msdos_m_def value=1 %s> Default\n",
		defined($options{"-m"}) ? "" : "checked";
	printf "<input type=radio name=msdos_m_def value=0 %s>\n",
		defined($options{"-m"}) ? "checked" : "";
	print "<input size=5 name=msdos_m value=\"$options{'-m'}\"></td>\n";
	}
elsif ($_[0] eq "cd9660") {
	# CDROM filesystem
	print "<tr> <td><b>Ignore Unix Attributes?</b></td>\n";
	printf "<td><input type=radio name=cd9660_r value=1 %s> Yes\n",
		defined($options{"-r"}) ? "checked" : "";
	printf "<input type=radio name=cd9660_r value=0 %s> No</td>\n",
		defined($options{"-r"}) ? "" : "checked";

	print "<td><b>Show version numbers?</b></td>\n";
	printf "<td><input type=radio name=cd9660_g value=1 %s> Yes\n",
		defined($options{"-g"}) ? "checked" : "";
	printf "<input type=radio name=cd9660_g value=0 %s> No</td> </tr>\n",
		defined($options{"-g"}) ? "" : "checked";

	print "<tr> <td><b>Use extended attributes?</b></td>\n";
	printf "<td><input type=radio name=cd9660_e value=1 %s> Yes\n",
		defined($options{"-e"}) ? "checked" : "";
	printf "<input type=radio name=cd9660_e value=0 %s> No</td> </tr>\n",
		defined($options{"-e"}) ? "" : "checked";
	}
elsif ($_[0] eq "ntfs") {
	# Windows NT filesystem
	print "<tr> <td><b>Display MSDOS 8.3 filenames?</b></td>\n";
	printf "<td><input type=radio name=ntfs_a value=1 %s> Yes\n",
		defined($options{"-a"}) ? "checked" : "";
	printf "<input type=radio name=ntfs_a value=0 %s> No</td>\n",
		defined($options{"-a"}) ? "" : "checked";

	print "<td><b>Case sensitive filenames?</b></td>\n";
	printf "<td><input type=radio name=ntfs_i value=0 %s> Yes\n",
		defined($options{"-i"}) ? "" : "checked";
	printf "<input type=radio name=ntfs_i value=1 %s> No</td> </tr>\n",
		defined($options{"-i"}) ? "checked" : "";

	print "<tr> <td><b>User files are owned by</b></td>\n";
	printf "<td><input type=radio name=ntfs_u_def value=1 %s> Default\n",
		defined($options{"-u"}) ? "" : "checked";
	printf "<input type=radio name=ntfs_u_def value=0 %s>\n",
		defined($options{"-u"}) ? "checked" : "";
	printf "<input name=ntfs_u size=8 value='%s'> %s</td>\n",
		defined($options{"-u"}) ? scalar(getpwuid($options{"-u"})) : "",
		&user_chooser_button("ntfs_u");

	print "<td><b>Group files are owned by</b></td>\n";
	printf "<td><input type=radio name=ntfs_g_def value=1 %s> Default\n",
		defined($options{"-u"}) ? "" : "checked";
	printf "<input type=radio name=ntfs_g_def value=0 %s>\n",
		defined($options{"-u"}) ? "checked" : "";
	printf "<input name=ntfs_g size=8 value='%s'> %s</td> </tr>\n",
		defined($options{"-g"}) ? scalar(getgrgid($options{"-g"})) : "",
		&group_chooser_button("ntfs_g");
	}
elsif ($_[0] eq "swap") {
	# Swap has no options..
	print "<tr> <td><i>No Options Available</i></td> </tr>\n";
	}
}


# check_location(type)
# Parse and check inputs from %in, calling &error() if something is wrong.
# Returns the location string for storing in the fstab file
sub check_location
{
if ($_[0] eq "nfs") {
	local($out, $temp, $mout, $dirlist);

	# Use ping and showmount to see if the host exists and is up
	if ($in{nfs_host} !~ /^\S+$/) {
		&error("'$in{nfs_host}' is not a valid hostname");
		}
	$out = `ping -c 1 '$in{nfs_host}' 2>&1`;
	if ($out =~ /unknown host/i) {
		&error("The host '$in{nfs_host}' does not exist");
		}
	elsif ($out =~ /100\% packet loss/) {
		&error("The host '$in{nfs_host}' is down");
		}
	$out = `showmount -e '$in{nfs_host}' 2>&1`;
	if ($out =~ /Unable to receive/) {
		&error("The host '$in{nfs_host}' does not support NFS");
		}
	elsif ($?) {
		&error("Failed to get mount list : $out");
		}

	# Validate directory name
	foreach (split(/\n/, $out)) {
		if (/^(\/\S+)/) { $dirlist .= "$1\n"; }
		}
	if ($in{nfs_dir} !~ /^\/\S+$/) {
		&error("'$in{nfs_dir}' is not a valid directory name. The ".
		       "available directories on $in{nfs_host} are:".
		       "<pre>$dirlist</pre>");
		}

	# Try a test mount to see if filesystem is available
	$temp = &tempname();
	mkdir($temp, 0755);
	$mout = `mount $in{nfs_host}:$in{nfs_dir} $temp 2>&1`;
	if ($mout =~ /No such file or directory/) {
		rmdir($temp);
		&error("The directory '$in{nfs_dir}' does not exist on the ".
		       "host $in{nfs_host}. The available directories are:".
		       "<pre>$dirlist</pre>");
		}
	elsif ($mout =~ /Permission denied/) {
		rmdir($temp);
		&error("This host is not allowed to mount the directory ".
		       "$in{nfs_dir} from $in{nfs_host}");
		}
	elsif ($?) {
		rmdir($temp);
		&error("NFS Error - $mout");
		}
	# It worked! unmount
	`umount $temp`;
	rmdir($temp);
	return "$in{nfs_host}:$in{nfs_dir}";
	}
else {
	# This is some kind of disk-based filesystem.. get the device name
	if ($in{'disk_dev'} == 0) {
		$in{'ide_t'} =~ /^\d+$/ ||
			&error("'$in{ide_t}' is not a valid device number");
		$in{'ide_s'} =~ /^\d+$/ ||
			&error("'$in{ide_s}' is not a valid slice number");
		$in{'ide_p'} =~ /^[a-z]*$/ ||
			&error("'$in{ide_p}' is not a valid partition letter");
		$dv = "/dev/wd$in{ide_t}s$in{ide_s}$in{ide_p}";
		}
	elsif ($in{'disk_dev'} == 1) {
		$in{'scsi_t'} =~ /^\d+$/ ||
			&error("'$in{scsi_t}' is not a valid device number");
		$in{'scsi_s'} =~ /^\d+$/ ||
			&error("'$in{scsi_s}' is not a valid slice number");
		$in{'scsi_p'} =~ /^[a-z]*$/ ||
			&error("'$in{scsi_p}' is not a valid partition letter");
		$dv = "/dev/sd$in{scsi_t}s$in{scsi_s}$in{scsi_p}";
		}
	else {
		$dv = $in{'dev_path'};
		}

	# If the device entered is a symlink, follow it
	if ($dvlink = readlink($dv)) {
		if ($dvlink =~ /^\//) { $dv = $dvlink; }
		else {	$dv =~ /^(.*\/)[^\/]+$/;
			$dv = $1.$dvlink;
			}
		}

	# Check if the device actually exists and uses the right filesystem
	(-r $dv) || &error("The device file '$dv' does not exist");
	return $dv;
	}
}

# check_options(type, device, directory)
# Read options for some filesystem from %in, and use them to update the
# %options array. Options handled by the user interface will be set or
# removed, while unknown options will be left untouched.
sub check_options
{
local($k, @rv);

# Parse the common options first..
if ($_[0] ne "swap") {
	delete($options{"ro"}); delete($options{"rw"});
	delete($options{"rdonly"});
	if ($in{'bsd_ro'}) { $options{'ro'} = ''; }
	else { $options{'rw'} = ""; }

	delete($options{"sync"}); delete($options{"async"});
	if ($in{'bsd_sync'}) { $options{'sync'} = ''; }

	delete($options{'nodev'});
	if ($in{'bsd_nodev'}) { $options{'nodev'} = ''; }

	delete($options{'noexec'});
	if ($in{'bsd_noexec'}) { $options{'noexec'} = ''; }

	delete($options{'nosuid'});
	if ($in{'bsd_nosuid'}) { $options{'nosuid'} = ''; }

	delete($options{'noatime'});
	if ($in{'bsd_noatime'}) { $options{'noatime'} = ''; }

	if ($uname_release =~ /^[34]\./) {
		delete($options{'nosymfollow'});
		$options{'nosymfollow'} = '' if ($in{'bsd_nosymfollow'});

		delete($options{'suiddir'});
		$options{'suiddir'} = '' if ($in{'bsd_suiddir'});
		}
	}
else {
	# Swap always has the sw option
	$options{'sw'} = "";
	}

if ($_[0] eq "ufs") {
	# Parse UFS quota options
	delete($options{'userquota'}) if ($in{'ufs_userquota'} == 0);
	$options{'userquota'} = "" if ($in{'ufs_userquota'} == 1);
	$options{'userquota'} = $in{'ufs_groupquota_file'}
		if ($in{'ufs_userquota'} == 2);

	delete($options{'groupquota'}) if ($in{'ufs_groupquota'} == 0);
	$options{'groupquota'} = "" if ($in{'ufs_groupquota'} == 1);
	$options{'groupquota'} = $in{'ufs_groupquota_file'}
		if ($in{'ufs_groupquota'} == 2);
	}
elsif ($_[0] eq "nfs") {
	# NFS has a few specific options..
	delete($options{'-b'});
	$options{'-b'} = "" if ($in{'nfs_b'});

	delete($options{'-s'});
	$options{'-s'} = "" if ($in{'nfs_s'});

	delete($options{'-t'});
	$options{'-t'} = $in{'nfs_t'} if (!$in{'nfs_t_def'});

	delete($options{'-x'});
	$options{'-x'} = $in{'nfs_x'} if (!$in{'nfs_x_def'});

	delete($options{'-2'}); delete($options{'-3'});
	$options{'-2'} = "" if ($in{'nfs_ver'} == 2);
	$options{'-3'} = "" if ($in{'nfs_ver'} == 3);

	delete($options{'-R'});
	$options{'-R'} = $in{'nfs_r'} if (!$in{'nfs_r_def'});

	delete($options{'-a'});
	$options{'-a'} = $in{'nfs_a'} if (!$in{'nfs_a_def'});

	delete($options{'-T'});
	$options{'-T'} = "" if ($in{'nfs_t2'});
	}
elsif ($_[0] eq "msdos") {
	# MSDOS options for file ownership/perms
	delete($options{"-u"}); delete($options{"-g"});
	if ($in{'msdos_u'} ne "") { $options{'-u'} = getpwnam($in{'msdos_u'}); }
	if ($in{'msdos_g'} ne "") { $options{'-g'} = getgrnam($in{'msdos_g'}); }

	delete($options{"-m"});
	if (!$in{'msdos_m_def'}) {
		$in{'msdos_m'} =~ /^[0-7]{3}$/ ||
			&error("'$in{'msdos_m'}' is not a valid octal mask");
		$options{'-m'} = $in{'msdos_m'};
		}
	}
elsif ($_[0] eq "cd9660") {
	# Options for iso9660 cd-roms
	delete($options{'-r'});
	$options{'-r'} = "" if ($in{'cd9660_r'});

	delete($options{'-g'});
	$options{'-g'} = "" if ($in{'cd9660_g'});

	delete($options{'-e'});
	$options{'-e'} = "" if ($in{'cd9660_e'});
	}
elsif ($_[0] eq "ntfs") {
	delete($options{"-u"}); delete($options{"-g"});
	if ($in{'ntfs_u'} ne "") { $options{'-u'} = getpwnam($in{'ntfs_u'}); }
	if ($in{'ntfs_g'} ne "") { $options{'-g'} = getgrnam($in{'ntfs_g'}); }

	delete($options{"-a"});
	$options{"-a"} = '' if ($in{'ntfs_a'});

	delete($options{"-i"});
	$options{"-i"} = '' if ($in{'ntfs_i'});
	}

# Return options string
foreach $k (keys %options) {
	if ($options{$k} eq "") { push(@rv, $k); }
	else { push(@rv, "$k=$options{$k}"); }
	}
return @rv ? join(',' , @rv) : "-";
}

# create_swap(file, size, units)
# Calls dd and mkswap to setup a swap file
sub create_swap
{
local($out, $bl);
$bl = $_[1] * ($_[2] eq "m" ? 1024 : 1);
$out = `dd if=/dev/zero of=$_[0] bs=1024 count=$bl 2>&1`;
if ($?) { return "dd failed : $out"; }
$out = `mkswap $_[0] $bl 2>&1`;
if ($?) { return "mkswap failed : $out"; }
system("sync >/dev/null 2>&1");
return 0;
}

# exports_list(host, dirarray, clientarray)
# Fills the directory and client array references with exports from some
# host. Returns an error string if something went wrong
sub exports_list
{
local($dref, $cref, $out, $_);
$dref = $_[1]; $cref = $_[2];
$out = `showmount -e $_[0] 2>&1`;
if ($?) { return $out; }
foreach (split(/\n/, $out)) {
	if (/^(\/\S*)\s+(.*)$/) {
		push(@$dref, $1); push(@$cref, $2);
		}
	}
return undef;
}

# broadcast_addr()
# Returns a useable broadcast address for finding NFS servers
sub broadcast_addr
{
local($out);
$out = `ifconfig -a 2>&1`;
if ($out =~ /broadcast\s+(\S+)\s+/) { return $1; }
return "255.255.255.255";
}

sub device_name
{
return $_[0];
}

sub files_to_lock
{
return ( $config{'fstab_file'} );
}

1;

 0707010000772f000081e40000000000000002000000013ac0388c000022d5000000200000000000000000000000000000001d00000003reloc/mount/freebsd-mounts-2   唨          t             U夊冹VS峕峴峉儃 t
悑兟吚u9w兟鼔T&  吚t ，   8 t悙8/u	岺   @8 u烨E    婨鼌纓枇   5T&  V3鐲  P栀  /usr/libexec/ld.so Couldn't open  .
 Failure reading ld.so
 Bad magic: ld.so
 Cannot map ld.so (text)
 Cannot map ld.so (data)
 Cannot map ld.so (bss)
 ld.so failed :  
   U夊冹DVSj j h  j3  塃鋬凐u?jh  jj  jh  jj  兡 jh  jj桴  jj桁  兡j 峌糝u鋔栀  兡凐wjh  jj枇  jj韪  兡婾紗蛄嗱f侜t$f亇继 tjh  jj鑼  jj鑳  兡荅婨沸侜  t4        侜   t壜嗱潦嗱f侜t
        壥壻悙       QRj u鋔ju纉 h     塃軆$凐ujh  jj桫  jj栾  兡婾仿=  t!=   t嗱潦嗱芬侜  t侜   uK婱缷E沸侜  t*侜   t壜嗱潦嗱f侜t
崙  悙崙  崙  佲 ,悙婱=  t壦=   t侜  t峐 壼悙崙   1蒕Rj u鋔ju膵UU繰h   (  兡$凐ujh  jj  jj  兡婾葏襱Ij j j u鄅  jR婾UU躌h   柝  兡$凐ujh  jj枥  jj璺  兡荅    T&  塙烨E饑     塙羟E鴾  荅    媢軆 峕躍j郑4!  婾鼔,!  兡凐u呉uSj郑4!     ,!  兡=4!  uyjh4  jj,  兡,!  呉t@婻覊脜踭5jhA  jj  壺兡; t	悙怈8 u鷫)赗Sjj桠   兡jhD  jj柘   jj杵   兡=4!   ~,!  r鑵  峞碵^擅  U夊,!  吚tuu 猩1郎肬夊,!  吚tu婡猩脨惛擅 U夊婾,!  吚u1郎脨=4!  Ru婡猩uRu婡猩肧ervice unavailable   U夊,!  吚t婡猩脨竍  擅YXQ     Qr酶         getmntinfo failed : %s
 %s	%s	%s	%s	%x
 U夊冹鑑  j岴黀瓒
  兡壚塃鴥} }0&  P钑
  兡壚Ph  h%  鑨
  兡j鐽
  兡悙悙荅    婨9E閺   悙悑E魤聣辛婾鼖D0P婨魤聣辛婾鼖D0P;  兡壚P婨魤聣辛婾鼖D,P瓒   兡壚P婨魤聣辛壜U鼚偊   P婨魤聣辛壜U鼚BLPh  枭	  兡E糸f悙擅tfs ext2fs devfs union cd9660 afs procfs kernfs umap null portal fdesc lofs lfs msdos mfs nfs ufs none ???    U夊儅 |儅悙惛9  愲悙婾暭    擅ro, noexec, nosuid, noatime, nodev, sync, async, quota, - U夊8!   婨冟吚thn  h8!  韫  兡婨冟吚thr  h8!  铦  兡婨冟吚thz  h8!  鑱  兡婨%   吚th  h8!  鑓  兡婨冟吚th  h8!  鐶  兡婨冟吚th  h8!  +  兡婨冟@吚th  h8!    兡婨%    吚th  h8!  桉  兡=8!   u	甫  "悙h8!  枋  兡壚苺7!   8!  悙惿      U夊S籃%  =@%   t悙兠袃; u魦]   U夊S%  凐u1纼=H%   t悙怈<匟%   u鯄脜踭悙悑滵%  蠯u鬶  .  媇 U夊=8%   u8%     铏擅               n     ,v     ,~   	  ,     ,     ,     ,L%    尀     ,     ,                                  	                   
         	      
                                                                                                                                                    
                !      $           -     x      6           I   	   <%      X            `   	   D%      o     |       w                                                   @                                                           !                                  	   T&          l       
             	   X&          t       #          )    ,      0     ,!      7  	   \&      <    D      __DYNAMIC _dlopen __exit_dummy_decl _dlclose _dlerror ___do_global_dtors ___DTOR_LIST__ _strcat ___CTOR_LIST__ _strlen ___do_global_ctors _printf ___progname _expand_flags _find_type start _type_name _strerror _fprintf __exit_dummy_ref ___sF _etext _environ _atexit _getmntinfo _errno _exit _main _dlsym _edata _end ___main            c                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (                                         `   d   p               D     H       愰  愯  愯 愯 愯 愯 愯 愯 愯 0!              4  0  ,  (  "                                  !                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !  (       1     x  :       M   	   <%  \   	   D%  k       ~                    @                       !       L%             	   T&     	   X&              ,        ,!     	   \&       D                 (       7       I     8!  P       Y     p  a  __DYNAMIC _dlopen __exit_dummy_decl _dlclose _dlerror ___do_global_dtors ___DTOR_LIST__ ___CTOR_LIST__ ___do_global_ctors ___progname _expand_flags _find_type start _type_name __exit_dummy_ref ___sF _etext _environ _errno _main _dlsym _edata _end ___main /usr/lib/crt0.o /var/tmp/ccLob2791.o gcc2_compiled. ___gnu_compiled_c _buf.8 __main.o _exit.o    07070100007730000081a40000000000000002000000013ac0388d00000527000000200000000000000000000000000000001f00000003reloc/mount/freebsd-mounts-2.c    #include <stdio.h>
#include <errno.h>
#include <sys/param.h>
#include <sys/ucred.h>
#include <sys/mount.h>

char *find_type(int t);
char *expand_flags(int f);

int main(void)
{
struct statfs *mntlist;
int n, i;

n = getmntinfo(&mntlist, MNT_NOWAIT);
if (n < 0) {
	fprintf(stderr, "getmntinfo failed : %s\n", strerror(errno));
	exit(1);
	}
for(i=0; i<n; i++) {
	printf("%s\t%s\t%s\t%s\t%x\n",
		mntlist[i].f_mntonname,
		mntlist[i].f_mntfromname,
		find_type(mntlist[i].f_type),
		expand_flags(mntlist[i].f_flags),
		mntlist[i].f_flags);
	}
}

char *type_name[] = { "none", "ufs", "nfs", "mfs", "msdos", "lfs",
		      "lofs", "fdesc", "portal", "null", "umap", "kernfs",
		      "procfs", "afs", "cd9660", "union", "devfs", "ext2fs",
		      "tfs" };

char *find_type(int t)
{
if (t < 0 || t > 18) return "???";
else return type_name[t];
}

char *expand_flags(int f)
{
static char buf[1024];
buf[0] = 0;
if (f & MNT_RDONLY) strcat(buf, "ro,");
if (f & MNT_NOEXEC) strcat(buf, "noexec,");
if (f & MNT_NOSUID) strcat(buf, "nosuid,");
if (f & MNT_NOATIME) strcat(buf, "noatime,");
if (f & MNT_NODEV) strcat(buf, "nodev,");
if (f & MNT_SYNCHRONOUS) strcat(buf, "sync,");
if (f & MNT_ASYNC) strcat(buf, "async,");
if (f & MNT_QUOTA) strcat(buf, "quota,");
if (buf[0] == 0) return "-";
buf[strlen(buf)-1] = 0;
return buf;
}

 07070100007731000081e40000000000000002000000013ac0388c00001269000000200000000000000000000000000000001d00000003reloc/mount/freebsd-mounts-3  ELF FreeBSD      4   
      4    (      4   44                  詟詟                                    笜笜                鼧鼧            /usr/libexec/ld-elf.so.1                              	                     
                                                                                                                 鼧        虡     *   鼉      0        
 6   d   "   >   +      E   D$      M   T       T   垯    Y   剟P      ^   笜     i   tt      p   攧       w   $         悶        4                 剻        剻        敒        敒      libc.so.3 _DYNAMIC _GLOBAL_OFFSET_TABLE_ _init _fini __error printf fprintf strcat __sF exit __progname atexit strlen strerror environ getmntinfo _etext _edata __bss_start _end end   垯	  貥  軜  鄻  錁  铇  鞓  饦  魳
  鴺      5袠%詷    %貥h    猷%軜h   樾%鄻h   槔%錁h   榘%铇h    闋%鞓h(   閻%饦h0   閫%魳h8   閜%鴺h@   閌U夊WVS壱峿媢峔悶咑~(儅 t"婨８8 t悁8/u	岺笜@8 u旄鼧吚t	R鑮兡h鑠梵SWV鑓   P鑝怳夊S焕=罉 t夦兠; u夦袃命侞紭w駤]肬夊S蝗=葮 t夦袃; u魦]脨悙U夊冹j岴黀璇兡壚塃鴥} }1杼壚R鑲兡壚Phh8鑽兡j杳兡惽E    婨9E閮   峷 婨魤聣辛婾鼖D0P婨魤聣辛婾鼖D0P鑋   兡壚P婨魤聣辛壜U鼚B<P婨魤聣辛壜U鼚偊   P婨魤聣辛壜U鼚BLPh7杳兡E糸p擅夦U夊悮 婨冟吚thGh悮柩兡婨冟吚thKh悮璧兡婨冟吚thSh悮铏兡婨%   吚th[h悮鑬兡婨冟吚thdh悮鑏兡婨冟吚thkh悮鐲兡婨冟@吚thqh悮'兡婨%    吚thxh悮	兡婨%  @ 吚thh悮桦兡婨%   吚th寛h悮柰兡婨冟 吚th晥h悮璞兡婨%   @吚th湀h悮钃兡婨%   吚th▓h悮鑥兡=悮 u	复"夦h悮钖兡壚苺彋 笎峷 擅悙/ getmntinfo failed : %s
 %s	%s	%s	%s	%x
 ro, noexec, nosuid, noatime, nodev, sync, async, quota, nosymfollow, suiddir, union, noclusterr, noclusterw, -           鼧        *:JZjz妱殑         鼉      饊   魝   攣
                      虡   H            磧   瑑                     GCC: (GNU) 2.7.2.3  GCC: (GNU) 2.7.2.3  GCC: (GNU) 2.7.2.3  GCC: (GNU) 2.7.2.3           01.01             01.01             01.01             01.01    .symtab .strtab .shstrtab .interp .hash .dynsym .dynstr .rel.bss .rel.plt .init .plt .text .fini .rodata .data .ctors .dtors .got .dynamic .bss .comment .note                                                  詟                     #         饊                   )         攣  `              1         魝                    9   	      瑑                 B   	      磧  H               K         鼉                    Q                            V           t                 \                             b                             j         笜                    p         紭                    w         臉                    ~         虡  0                          鼧                           剻	                                 	  P                            P   	  P                                $
                                  \                 	              |                                        詟          饊          攣          魝          瑑          磧          鼉                         	          
               笜          紭          臉          虡          鼧          剻                        P                                                                  t      	 #   悮     )   +      0   $      9   鼧     B        I   鼉      O   4      Z   悶     b   D$      j   T       q   敒     u   笜        t    	    d   "      垯       `   	    剻        t    	         
    tt         剻        虡        敒        剟P         攧        freebsd-mounts-3.c gcc2_compiled. buf.6 printf strerror _DYNAMIC _etext _init getmntinfo environ fprintf strcat end __progname _start __error __sF expand_flags __bss_start main _fini atexit _edata _GLOBAL_OFFSET_TABLE_ _end exit strlen    07070100007732000081a40000000000000002000000013ac0388d000004ee000000200000000000000000000000000000001f00000003reloc/mount/freebsd-mounts-3.c    #include <stdio.h>
#include <errno.h>
#include <sys/param.h>
#include <sys/ucred.h>
#include <sys/mount.h>

char *find_type(int t);
char *expand_flags(int f);

int main(void)
{
struct statfs *mntlist;
int n, i;

n = getmntinfo(&mntlist, MNT_NOWAIT);
if (n < 0) {
	fprintf(stderr, "getmntinfo failed : %s\n", strerror(errno));
	exit(1);
	}
for(i=0; i<n; i++) {
	printf("%s\t%s\t%s\t%s\t%x\n",
		mntlist[i].f_mntonname,
		mntlist[i].f_mntfromname,
		mntlist[i].f_fstypename,
		expand_flags(mntlist[i].f_flags),
		mntlist[i].f_flags);
	}
}

char *expand_flags(int f)
{
static char buf[1024];
buf[0] = 0;
if (f & MNT_RDONLY) strcat(buf, "ro,");
if (f & MNT_NOEXEC) strcat(buf, "noexec,");
if (f & MNT_NOSUID) strcat(buf, "nosuid,");
if (f & MNT_NOATIME) strcat(buf, "noatime,");
if (f & MNT_NODEV) strcat(buf, "nodev,");
if (f & MNT_SYNCHRONOUS) strcat(buf, "sync,");
if (f & MNT_ASYNC) strcat(buf, "async,");
if (f & MNT_QUOTA) strcat(buf, "quota,");
if (f & MNT_NOSYMFOLLOW) strcat(buf, "nosymfollow,");
if (f & MNT_SUIDDIR) strcat(buf, "suiddir,");
if (f & MNT_UNION) strcat(buf, "union,");
if (f & MNT_NOCLUSTERR) strcat(buf, "noclusterr,");
if (f & MNT_NOCLUSTERW) strcat(buf, "noclusterw,");
if (buf[0] == 0) return "-";
buf[strlen(buf)-1] = 0;
return buf;
}

  07070100007733000081e40000000000000002000000013ac0388d0000130e000000200000000000000000000000000000001d00000003reloc/mount/freebsd-mounts-4  ELF FreeBSD      4   h      4    (      4   44                  詟詟                     	  	           	                T	  TT            /usr/libexec/ld-elf.so.1                              	                     
                                                                                                                 T        $     *   鼉      0   p     
 6   d   "   >   1      E   D*      M   T       T   鄼    Y   剟[      ^        i   tp      p   攧       w   $                  4         p        軝        軝                      libc.so.4 _DYNAMIC _GLOBAL_OFFSET_TABLE_ _init _fini __error printf fprintf strcat __sF exit __progname atexit strlen strerror environ getmntinfo _etext _edata __bss_start _end end   鄼	  0  4  8  <  @  D  H  L
  P  '    5(%,    %0h    猷%4h   樾%8h   槔%<h   榘%@h    闋%Dh(   閻%Hh0   閫%Lh8   閜%Ph@   閌U夊冹WVS壱島媈鼚|= 呟~)儅 t#婨8 t夦8/u	岺@8 u旄T吚t兡鬜鑦兡兡鬶p鑖栝兡魞狞WVS鑗   P鑍怳夊冹S= t峷 兠; u夦袃命侞w馵擅夦U夊冹S =  t峷 袃; u鬧擅怳夊冹兡鴍岴黀铇兡壚塃鴥} }:兡鼉聂璇壚R鑕兡壚Phwh悮鑠兡兡鬸瑁兡惽E    婨;E鴟閶   峷 兡鴭E魤聣辛婾鼖D0P兡魦E魤聣辛婾鼖D0P鑍   兡壚P婨魤聣辛壜U鼚B<P婨魤聣辛壜U鼚偊   P婨魤聣辛壜U鼚BLPh張铦兡 E糸j夦擅夦U夊冹  婨冟吚t兡鴋焾h 瑁兡婨冟吚t兡鴋h 鑴兡婨冟吚t兡鴋珗h 鑕兡婨%   吚t兡鴋硤h 鐳兡婨冟吚t兡鴋紙h %兡婨冟吚t兡鴋脠h 兡婨冟@吚t兡鴋蓤h 桤兡婨%    吚t兡鴋袌h 杵兡婨%  @ 吚t兡鴋讏h 瑗兡婨%   吚t兡鴋鋱h 鑴兡婨冟 吚t兡鴋韴h 鑕兡婨%   @吚t兡鴋魣h 鐳兡婨%   吚t兡鴋 h #兡=  u(兡鬶 鐲兡壚峆   峷 擅悙桦 getmntinfo failed : %s
 %s	%s	%s	%s	%x
 ro, noexec, nosuid, noatime, nodev, sync, async, quota, nosymfollow, suiddir, union, noclusterr, noclusterw, -   v        T        *:JZjz妱殑         鼉   p   饊   魝   攣
                      $   H            磧   瑑                         GCC: (GNU) 2.95.2 19991024 (release)  GCC: (GNU) 2.95.2 19991024 (release)  GCC: (GNU) 2.95.2 19991024 (release)  GCC: (GNU) 2.95.2 19991024 (release)           01.01             01.01             01.01             01.01    .symtab .strtab .shstrtab .interp .hash .dynsym .dynstr .rel.bss .rel.plt .init .plt .text .fini .rodata .data .ctors .dtors .got .dynamic .bss .comment .note                                                  詟                     #         饊                   )         攣  `              1         魝                    9   	      瑑                 B   	      磧  H               K         鼉                    Q                            V                            \         pp                    b         vv                    j         	                    p         	                    w         	                    ~         $$	  0                          TT	                           鄼	  $                                	                                 x
  P                                
                                                    	                                                       詟          饊          攣          魝          瑑          磧          鼉                         	     p     
     v                                        $          T          鄼                                                                                          垍      	 #         *   1      1   $      :   T     C   p     J   鼉      P   4      [         c   D*      k   T       r        v               	    d   "      鄼       垎   	    軝        垍    	    p     
    tp         軝        $                剟[         攧        freebsd-mounts-4.c gcc2_compiled. buf.12 printf strerror _DYNAMIC _etext _init getmntinfo environ fprintf strcat end __progname _start __error __sF expand_flags __bss_start main _fini atexit _edata _GLOBAL_OFFSET_TABLE_ _end exit strlen   07070100007734000081a40000000000000002000000013ac0388d000004ee000000200000000000000000000000000000001f00000003reloc/mount/freebsd-mounts-4.c    #include <stdio.h>
#include <errno.h>
#include <sys/param.h>
#include <sys/ucred.h>
#include <sys/mount.h>

char *find_type(int t);
char *expand_flags(int f);

int main(void)
{
struct statfs *mntlist;
int n, i;

n = getmntinfo(&mntlist, MNT_NOWAIT);
if (n < 0) {
	fprintf(stderr, "getmntinfo failed : %s\n", strerror(errno));
	exit(1);
	}
for(i=0; i<n; i++) {
	printf("%s\t%s\t%s\t%s\t%x\n",
		mntlist[i].f_mntonname,
		mntlist[i].f_mntfromname,
		mntlist[i].f_fstypename,
		expand_flags(mntlist[i].f_flags),
		mntlist[i].f_flags);
	}
}

char *expand_flags(int f)
{
static char buf[1024];
buf[0] = 0;
if (f & MNT_RDONLY) strcat(buf, "ro,");
if (f & MNT_NOEXEC) strcat(buf, "noexec,");
if (f & MNT_NOSUID) strcat(buf, "nosuid,");
if (f & MNT_NOATIME) strcat(buf, "noatime,");
if (f & MNT_NODEV) strcat(buf, "nodev,");
if (f & MNT_SYNCHRONOUS) strcat(buf, "sync,");
if (f & MNT_ASYNC) strcat(buf, "async,");
if (f & MNT_QUOTA) strcat(buf, "quota,");
if (f & MNT_NOSYMFOLLOW) strcat(buf, "nosymfollow,");
if (f & MNT_SUIDDIR) strcat(buf, "suiddir,");
if (f & MNT_UNION) strcat(buf, "union,");
if (f & MNT_NOCLUSTERR) strcat(buf, "noclusterr,");
if (f & MNT_NOCLUSTERW) strcat(buf, "noclusterw,");
if (buf[0] == 0) return "-";
buf[strlen(buf)-1] = 0;
return buf;
}

  07070100008e7a000041ed0000000000000001000000023ac03c1600000000000000200000000000000000000000000000001100000003reloc/mount/help  07070100008e7b000081a40000000000000002000000013ac0388c00005073000000200000000000000000000000000000001b00000003reloc/mount/help/help.html    <title>Filesystem Manager</title>
<body bgcolor=#ffffff>
<center><img src="images/mount.gif"></center><p>
<h2><i>This help page is incomplete</i></h2>

<hr>
<h3>Introduction</h3>
The purpose of this module is to simplify mounting of local disks, 
remote file shares and virtual memory. Before a Unix system can access
files on any hard disk, CDROM, Jaz drive, floppy disk or file server 
it must be <tt>mounted</tt> at some point in the filesystem. The system
keeps a list of filesystems that it knows about, typically to mount at
bootup time. Filesystems can also be mounted temporarily, to be forgotten
about when they are unmounted or the system is rebooted. <p>

All Unix systems when installed will mount at least one filesystem
at bootup time, and almost certainly more. There will always be one
filesystem mounted as the root directory <tt>/</tt>, and maybe others
as <tt>/usr</tt>, <tt>/proc</tt> or <tt>/net</tt>. Unless your Unix
system is a diskless workstation, the root directory will be mounted
from a local hard disk. Others filesystems may be mounted from file
servers, local disks or even be 'magic' filesystems like <tt>/proc</tt>
that do not contain real files. <p>

One special case is virtual memory. Your system should always have at
least one virtual memory swap file, which is used by the OS as an
extension of physical memory. A swap file can either be a normal file
in some filesystem, or a dedicated partition on a local disk. <p>

This module works by reading and updating the file <tt>/etc/fstab</tt> or
<tt>/etc/vfstab</tt> to manage known filesystems. Currently mounted
filesystems are found by reading the file <tt>/etc/mtab</tt> or 
<tt>/etc/mnttab</tt>. Webmin will totally ignore any comments in the
known filesystems table. <p>

<hr>
<h3>Listing Current Filesystems</h3>
The main page of the <tt>Filesystem Manager</tt> module lists all the
known filesystems. For each filesystem, the following details will be
displayed :
	<ul>
	<li><b>Mount point</b><br>
	    The directory at which this filesystem is mounted, or
	    <i>Virtual Memory</i> if this is a swap file. Only one
	    filesystem can be mounted at one mount point. <p>

	<li><b>Filesystem type</b><br>
	    The full name of this filesystem type. This depends on the
	    type of mount (local or remote) and how the disk was formatted.
	    Mounts from local disks have types like <tt>Linux Native
	    Filesystem</tt>, <tt>MS-DOS Filesystem</tt> or <tt>Solaris Unix
	    Filesystem</tt>. Remote mounts will almost always have the
	    type <tt>Network Filesytem</tt>. <p>
	    If you want to use the short names for filesystem types
	    (such as <tt>ext2fs</tt> instead of <tt>Linux Native
	    Filesystem</tt>), change the <tt>Use long filesystem types</tt>
	    option in the <a href="../config.cgi?mount">module options</a>.<p>

	<li><b>Mounted from</b><br>
	    The device file or remote system name and directory that this
	    filesystem was mounted from. Under Unix, all local disks have
	    a device file in the <tt>/dev/</tt> directory that is used
	    to access that disk. Device files have pathnames like
	    <tt>/dev/dsk/c0t1d0s3</tt> or <tt>/dev/hda1</tt>. When you
	    edit or create a mount, Webmin will covert the device file name
	    to a disk and partition number automatically. <p>

	<li><b>In use?</b><br>
	    Yes if this filesystem is currently mounted, No if not. <p>

	<li><b>Permanent?</b><br>
	    Yes if this filesystem is permanently recorded, no if it will
	    be forgotten when unmounted. <p>
	</ul><p>

<hr>
<h3>Adding a New Filesystem</h3>
To add a new mount, choose the filesystem type from the selector
below the list of existing mounts. This will display a form for entering
the mount point, mount source and other options for the new mount. Each
filesystem type for each Unix version has a different set of options,
and many types have different possibilities for mount sources. <p>

No matter what filesystem type you choose, some inputs will be the same
on the <tt>Create Mount</tt> form. The most important is the mount
point, which is the directory at which the filesystem is to be mounted.
All filesystem types except virtual memory require you to enter this.
If the directory you enter does not exist, Webmin will attempt to create
it for you. <p>

For most types of filesystem you will have 3 options for saving the mount :
	<ul>
	<li><b>Save and mount at boot</b><br>
	    The mount will be recorded permanently, and mounted at bootup
	    time when the system is started. <p>
	<li><b>Save</b><br>
	    The mount will be permanent, but not mounted at boot time. <p>
	<li><b>Don't save</b><br>
	    The mount will only be temporary. <p>
	</ul><p>

For most filesystem types, you can also choose whether to mount now or
not. Choosing not to mount or save a new filesystem is pointless, and
will display an error. <p>

There are however some types of filesystem which will not present all the
options listed above. Some examples are :
	<ul>
	<li><tt>Virtual Memory</tt> under Linux<br>
	    Whenever this type is mounted it is saved, and whenever it is
	    unmounted it is deleted. Saved VM mounts are always added at
	    bootup time. <p>
	<li><tt>Windows Networking</tt> under Linux<br>
	    This filesystem type can only be mounted using the 
	    <tt>smbmount</tt> command, so cannot be saved. <p>
	<li><tt>Automounter Filesystems</tt><br>
	    Permanent Automounter filesystems are always mounted at boot
	    time. <p>
	</ul><p>

All filesystem types require you to choose the mount source and mount
options. Because the source and options differ significantly between
different Unix flavours and filesystem types they are described
individually in the list below :
	<ul>
	<li><b>Redhat Linux 4.0+</b> and <b>Slackware Linux 3.0+</b><br>
		For most Linux filesystem types, the mount source can be
		one of the following :
		<ul>
		<li><b>IDE device</b><br>
			For this choice you must enter the IDE device letter
			and partition. The device letter is typically <tt>a</tt>
			for the 1st internal hard disk, <tt>b</tt> for the 2nd
			internal disk, and <tt>c</tt> for the CD-ROM. The
			partition number depends on which partition you want
			to mount. Use the <tt>fdisk</tt> command to see the
			available partitionson your disks. <p>
		<li><b>SCSI device</b><br>
			For this option you must enter the SCSI device letter
			and partition. The device letter does NOT correspond
			to the SCSI target number - each SCSI device is assigned
			a letter by Linux in the order they are found by the OS.
			<p>
		<li><b>Floppy disk</b><br>
			This choice only requires you to enter the floppy device
			number. This will be <tt>0</tt> for your primary drive
			or <tt>1</tt> for the secondary. <p>
		<li><b>Other device</b><br>
			If you choose this option, you can type in any device
			pathname that you want to mount. This is useful for
			mounting other RAOD devices, PCMCIA cards and other paths
			that Webmin doesn't know about. <p>
		</ul><p>
		Before a filesystem on a local IDE or SCSI disk partition
		can be mounted, the partition must have been created and a
		filesystem built on it. The <a href=/fdisk/>Partition
		Manager</a> module can be used to do this, or you can use
		the Linux <tt>fdisk</tt> and <tt>mkfs</tt> commands. <p>

    		The <tt>Network Filesystem (nfs)</tt>, <tt>Windows Networking
		Filesystem (smbfs)</tt>, <tt>Automounter Filesystem (auto)</tt>
		and <tt>Virtual Memory (swap)</tt> mount types use a different
		form for the mount source. See the section about that filesystem
		type below for more details. <p>

		Once you have chosen the mount source, you can also set various
		filesystem-specific options. Some options however are common
		to almost all Linux filesystems. They are : <br>
		<table border>
		<tr> <td><b>Read-only</b></td>
		<td>If yes, then nobody can write, create, delete or change
		anything on this filesystem</td> </tr>
		<tr> <td><b>Allow SUID files</b></td>
		<td>If no, then setuid programs on this filesystem will not
		be run as their owner. Useful when mounting remote filesystems
		that you don't trust</td> </tr>
		</table><p>

		The filesystem-specific options are :
		<ul>
		<li><b>Linux Native Filesystem (ext2fs)</b><br>
			This is the latest filesystem type for local hard
			disks on Linux. <br>
			The following additional options are available :
			<table border>
			</table><p>

		<li><b>Network Filesystem (nfs)</b><br>
			NFS is the standard Unix way of sharing files between
			systems. For NFS, the mount source is not a local disk
			but instead a hostname and remote directory. The hostname
			is the name (or IP address) of the system you want to
			mount from. The remote directory is a directory on the
			remote system that is exported to your system. <br>

			NFS filesystems have the following additional options :
			<table border>
			<tr> <td><b>NFS version</b></td>
			<td>The version of NFS (1-3) to use</td> </tr>
			</table><p>
		
		<li><b>Virtual Memory (swap)</b><br>
			The mount source for virtual memory can be a local IDE
			disk, SCSI disk or normal file. If you enter a filename
			that does not exist, Webmin will ask for the size of
			the swap file to create and then add it as swap.
			Unless your Linux
			kernel has been configured to allow it, a swap cannot be
			on an NFS mounted filesystem. <br>
			There are no options for virtual memory mounts. <p>

		<li><b>Windows Networking Filesystem (smbfs)</b><br>
			Windows networking refers to the file sharing protocol
			used by Samba, Windows 95 and NT (also known as SMB
			or LANManager). If a Windows fileserver is sharing a
			directory, you can mount it under Linux and access the
			contents as normal files. <p>

			The mount source for a Windows networking filesystem
			is a share name like <tt>\\ntbox\somedir</tt>. The first
			part is the NetBIOS name of the server, and the second
			the name of a share on the server. Ideally a server's
			NetBIOS name should be the same as its TCP/IP hostname,
			but if not you can use the mount options to specify
			the correct hostname or IP address to connect to.<br>
			The following options are available :
			<table border>
			<tr> <td><b>Username</b></td>
			<td>The username to login to the fileserver with. Not
			needed for public shares</td> </tr>
			<tr> <td><b>Password</b></td>
			<td>The password used with the username. If you do not
			have a valid username and password on the server then	the
			mount will fail. Not needed for public shares</td> </tr>
			</table><p>

		<li><b>MS-DOS Filesystem (fat)</b><br>
			Floppy or hard disks formatted under Windows 3.1 and
			versions of MS-DOS before 7.0 use this filesystem type.
			Files in this filesystem are limited to the 8.3 filename
			standard used by DOS. If you try to create a file with
			a longer name, it will be truncated to the 8.3 format.
			Because DOS has no concept of file ownership or real
			file permissions, all files in the mounted directory
			will have the same owner and access mode. The ownership
			or rights of individual files cannot be changed. <br>
			The following options are available :
			<table border>
			</table><p>
			
		<li><b>Windows 95 Filesystem (vfat)</b><br>
			This filesystem is found on disks formatted by Windows 95
			and possibly NT. Like the MS-DOS filesystem above it has
			no concept of file ownership or permissions. However, it
			can support long filenames. <br>
			Available options are :
			<table border>
			</table><p>

		<li><b>ISO9660 Filesystem (iso9660)</b><br>
			This is the standard format for CD-ROMs. The basic format
			only supports 8.3 filenames like <tt>fat</tt>, but there
			is an extended format called Rock Ridge that allows
			files to have long names and Unix permissions.<br>
			The options for this filesystem are :
			<table border>
			</table><p>

		<li><b>OS/2 Filesystem (hpfs)</b><br>
			Hard disks formatted by OS/2 use this filesystem format.
			Long filenames are supported, but Unix permissions and
			file ownership are not.<br>
			Available options are :
			<table border>
			</table><p>

		<li><b>Linux on MS-DOS Filesystem (umsdos)</b><br>
			This filesystem is used only for installing Linux
			on a system has only an MS-DOS filesystem, and cannot
			be re-partitioned. It works by using the directory
			\linux on the DOS filesystem as the root for the
			Linux filesystem. When mounted under Linux, long
			filenames, file ownership and permissions are supported.
			This filesystem is not supported by default in
			RedHat Linux, and should only be used if you have no
			other option as performance is poor. <br>
			The valid options for <tt>umsdos</tt> are :
			<table border>
			</table><p>

		</ul><p>
	
	<li><b>Solaris 2.5+</b><br>
		For disk-based Solaris filesystems, the mount source can
		be one of :
			<ul>
			<li><b>SCSI Disk</b><br>
				Under Solaris, every SCSI disk is identified
				by 4 numbers:
				<ul>
				<li><b>Controller</b> - The SCSI controller the
				    disk is connected to. Always 0 for the built-in
				    controller on Sparc boxes.<br>
				<li><b>Target</b> - The SCSI unit number. For
				    internal hard drives this is 0 or 1. For
				    external drives it is typically settable by
				    a selector on the drive box.<br>
				<li><b>Unit</b> - Almost always 0.<br>
				<li><b>Partition</b> - The number of the partition
				    to mount.<br>
				</ul><p>
			<li><b>MetaDisk Device</b><br>
				If you have striped, mirrored or RAIDed devices
				created using Sun's Metadevice software, choose
				this option and enter the Metadevice number. <p>
			<li><b>Other Device</b><br>
				This choice requires you to enter the full path
				to the device file to mount. <p>
			</ul><p>
		Before a filesystem on a local SCSI disk can be mounted,
		the partition must be setup and a filesystem built on it.
		The <a href=/format/>Partition Manager</a> module can be
		used to do this, or you can use the <tt>format</tt> and
		<tt>newfs</tt> Unix commands. <p>

		Under Solaris, CDROMs and floppy disks are mounted automatically
		by the volume manager. Unless this has been disabled, floppies
		and CDROMs never need to be manually mounted. Devices mounted
		by the volume manager are not displayed in the list of mounted
		filesystems on the main page. This may also apply to removable
		SCSI devices (such a Jaz or Syquest drives), depending on
		how volume management is set up on your system. <p>

		Once the filesystem mount source has been chosen, you can also
		set a number of filesystem-specific options :
		<ul>
		<li><b>Solaris Unix Filesystem (ufs)</b><br>
			This is the standard filesystem type used by Solaris
			for local disks. <br>
			The available options are :
			<table border>
			<tr> <td><b>Read-only</b></td>
			<td>If yes, then nobody can write, create, delete or 
			chmod anything on this filesystem</td> </tr>
			</table><p>

		<li><b>Network Filesystem (nfs)</b><br>
			NFS is the standard Unix way of sharing files between
			systems. For NFS, the mount source is not a local disk
			but instead a hostname and remote directory. The hostname
			is the name (or IP address) of the system you want to
			mount from. The remote directory is a directory on the
			remote system that is exported to your system. <br>

			NFS filesystems have the following additional options :
			<table border>
			</table><p>

		<li><b>Virtual Memory (swap)</b><br>
			The mount source for virtual memory can be a SCSI disk,
			MetaDisk device or normal file. If you enter a filename
			that does not exist, Webmin will ask you for the size of
			the swap file to create. Once the file is created, it
			will be mounted as swap. <br>
			There are no options for Virtual Memory mounts. <p>

		<li><b>Caching Filesystem (cachefs)</b><br>
			This filesystem uses space on a local disk to cache
			files from another filesystem, typically NFS. This
			means that commonly accessed files from an NFS server
			are kept locally, resulting in a significant speedup.
			When you create a new Caching Filesystem mount, Webmin
			assumes that the back filesystem is of type NFS. <p>

			The mount source for <tt>cachefs</tt> filesystems is the
			NFS server and directory to cache. ??? 
			When you mount a Caching filesystem, two mounts are
			really made - the back mount and the <tt>cachefs</tt>
			mount on the actual directory. Webmin does not show back
			mounts on the list of mounted filesystems. <p> 

			<tt>cachefs</tt> uses a cache directory to store
			cached files, specified in the mount options. You can
			either use the <tt>cfsadmin</tt> Unix command to create
			a cache directory with the parameters you want, or let
			Webmin set it up automatically. In the latter case, the
			cache will be limit to 10% of the size of the filesystem
			it is on. <br>
			Valid options for this filesystem are:
			<table border>
			</table><p>

		<li><b>Ram Disk Filesystem (tmpfs)</b><br>
			Files stored in a filesystem of this type exist only
			in RAM, and are lost when unmounted or the system is
			rebooted. The <tt>/tmp</tt> directory in Solaris uses
			this filesystem type. Because it is stored only in
			memory, there is no mount source section of the
			filesystem form. <br>
			The only option is :
			<table border>
			</table><p>

		<li><b>Automounter Filesystem (autofs)</b><br>
			The Automounter does automatic mounting and unmounting
			of NFS directories on demand. A subdirectory under an
			automounter directory will come into existance and
			mount a file server when the user first refers to it,
			such as by cd'ing into the subdirectory. After some idle
			time, the subdirectory will be unmounted an disappear. <p> 

			The mount source for filesystems of this type has 3
			different options :
				<ul>
				<li><b>All NFS Servers (-net)</b><br>
					When the user cd's into a subdirectory, it is
					taken as the hostname of an NFS server. If
					this server exists, all the available exports
					from the server will be mounted under the
					new subdirectory. <br>
					Solaris by default has the <tt>/net</tt>
					directory mounted with this source, so a user
					can do something like<br>
					<tt>cd /net/bar.foo.com/usr/local/bin</tt><br>
					<tt>ls -l</tt><p>
				<li><b>XFN Server (-xfn)</b><br>
					No idea??? <p>
				<li><b>Automounter map</b><br>
					For this option, the name of an NIS map or
					local file containing an automounter map
					must be given. The configuration of which
					servers and directories to mount is specified
					in this map. For more information, see the
					<tt>automount</tt> man page. <p>
				</ul><p>
			The options for automounter filesystems are the same
			as those for NFS. These options apply to the automatically
			mounted subdirectories inside the automount directory. <p>

		<li><b>MS-DOS Filesystem (pcfs)</b><br>
			Disks formatted under MS-DOS use this filesystem. Files
			in are limited to 8.3 filenames, and have no Unix
			ownership or permissions. Typically, you will never
			need to use Webmin to mount <tt>pcfs</tt> filesystem
			floppy, as they are handled automatically by the volume
			management system. <br>
			The options available for MS-DOS filesystems are :
			<table border>
			</table><p>

		<li><b>CDROM Filesystem (hsfs)</b><br>
			

		</ul><p>
	</ul><p>

<hr>
<h3>Editing an Existing Filesystem</h3>
To edit an existing mount, click on the mount point from the list on 
the main page. This will display the form used for creating a new 
mount with the current mount point, source and options filled in. You can
now change any of these on the form, in the same way as you would create
a new mount (described above). <p>

An existing mount will be either permanently saved, currently mounted or
both. If you change the mount to be not saved or mounted, then it will be
deleted from the mount list. Note that some filesystem types will not
have both these options. <p>

Under Unix a directory cannot be unmounted if it is currently in use,
either by a process having a file in the directory open or by a user having
some subdirectory as his current directory. 
Similarly, a swap file cannot be unmounted if the amount of free memory
is less than the size of the swap file. When you change the directory,
source or options of an existing mount, Webmin will unmount and remount
it to apply the changes. This will fail if the directory or swap file
is in use, and an error displayed. <p>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Return to module</a><p>
 

 07070100008e7c000081a40000000000000002000000013ac0388c000050e0000000200000000000000000000000000000001e00000003reloc/mount/help/help.sv.html <title>Filsystemshanterare</title>
<body bgcolor=#ffffff>
<center><img src="images/mount.gif"></center><p>
<h2><i>Denna hj鋖psida 鋜 inte f鋜dig</i></h2>

<hr>
<h3>Introduktion</h3>
Syftet med denna modul 鋜 att f鰎enkla montering av lokala diskar,
filresurser fr錸 andra datorer och virtuellt minne. Innan ett Unix-system
kan komma 錿 filer p n錱on h錼ddisk, CD-ROM, Jaz-skiva, diskett eller
filserver m錽te den <tt>monteras</tt> vid n錱on punkt i filsystemet.
Systemet f鰎 lista 鰒er de filsystem det k鋘ner till, oftast f鰎
montering vid start. Filsystem kan ocks monteras tillf鋖ligt och systemet
gl鰉mer d bort dem n鋜 de monterats av eller n鋜 systemet startas om.

<p>Alla installerade Unix-system monterar minst ett, och troligen flera,
filsystem vid start. Det kommer alltid att finnas ett filsystem som
monterats som rotkatalog, <tt>/</tt>, och f鰎modligen fler som
<tt>/usr</tt>, <tt>/proc</tt> och <tt>/net</tt>. F鰎utsatt att ditt
Unix-system inte 鋜 en arbetsstation utan h錼ddisk kommer rotkatalogen
att monteras fr錸 en lokal h錼ddisk. Andra filsystem kan monteras fr錸
filservrar, lokala diskar och till och med "magiska" filsystem som
<tt>/proc</tt>, som inte inneh錶ler n錱ra riktiga filer.

<p>Ett specialfall 鋜 virtuellt minne. Du b鰎 alltid ha minst en
swap-fil f鰎 virtuellt minne p systemet, som anv鋘ds av OS:et som
en utvidgning av det fysiska minnet. En swap-fil kan antingen vara en
vanlig fil i ett filsystem eller en partition p en lokal disk som
reserverats som swap-partition.

<p>Denna modul l鋝er och uppdaterar filen <tt>/etc/fstab</tt> eller
<tt>/etc/vfstab</tt> f鰎 att hantera k鋘da filsystem. De filsystem som
f鰎 tillf鋖let 鋜 monterade finns i filen <tt>/etc/mtab</tt> eller
<tt>/etc/mnttab</tt>. Webmin struntar i kommentarer i tabellen 鰒er
k鋘da filsystem.

<hr>
<h3>Lista aktiva filsystem</h3>
Startsidan f鰎 <tt>Filsystemshanteraren</tt>-modulen listar alla k鋘da
filsystem. F鰎 varje filsystem visas f鰈jande uppgifter:
	<ul>
	<li><b>Monteringspunkt</b>
	    <br>Katalogen d鋜 detta filsystem monteras eller
	    <i>Virtuellt minne</i> om detta 鋜 en swap-fil. P varje
	    monteringspunkt kan h鰃st ett filsystem monteras.

	<li><b>Filsystemstyp</b>
	    <br>Fullst鋘digt namn p denna filsystemstyp. Detta beror p
	    monteringen (lokal eller fj鋜r-) och hur disken 鋜 formaterad.
	    Filsystemstyper f鰎 monteringar fr錸 lokal disk kan vara
	    <tt>Linux Native Filesystem</tt>, <tt>MS-DOS Filesystem</tt>
	    och <tt>Solaris Unix Filesystem</tt>. Fj鋜rmonteringar kommer
	    n鋝tan alltid att vara av typen <tt>Network Filesytem</tt>.

	    <p>Om du vill anv鋘da kortnamn f鰎 filsystemstyper (t ex
	    <tt>ext2fs</tt> ist鋖let f鰎 <tt>Linux Native Filesystem</tt>),
	    kan du 鋘dra inst鋖lningen <tt>Anv鋘d l錸ga filsystemstyper</tt>
	    i <a href="../config.cgi?mount">modulinst鋖lningar</a>.

	<li><b>Monterad fr錸</b>
	    <br>Filen eller systemnamn och -katalog som detta filsystem
	    monterats fr錸. Under Unix har alla lokala diskar i
	    <tt>/dev/</tt>-katalogen varsin diskfil som anv鋘ds f鰎 att
	    komma 錿 disken i fr錱a. Diskfiler har s鰇v鋑ar som
	    <tt>/dev/dsk/c0t1d0s3</tt> och <tt>/dev/hda1</tt>. N鋜 du
	    鋘drar eller skapar en montering kommer Webmin automatiskt
	    att omvandla diskfilsnamnet till disk och partition.

	<li><b>Anv鋘ds?</b>
	    <br>Ja om filsystemet 鋜 monterat f鰎 tillf鋖let, Nej om det
	    inte 鋜 det.

	<li><b>Permanent?</b>
	    <br>Ja om filsystemet 鋜 uppskrivet i listan 鰒er permanenta
	    monteringar, Nej om det ska gl鰉mas bort n鋜 det monterats av.
	</ul>

<hr>
<h3>L鋑ga till filsystem</h3>
N鋜 du l鋑ger till en montering v鋖jer du filsystemstyp nedanf鰎 listan
鰒er befintliga monteringar. Du f錼 d upp ett formul鋜 d鋜 du skriver in
monteringspunkt, monteringsursprung och 鰒riga uppgifter om den nya
monteringen. Varje filsystemstyp och varje Unix-version har olika
upps鋞tning inst鋖lningar och m錸ga typer har olika m鰆ligheter f鰎
olika monteringsursprung.

<p>Oavsett vilket filsystem du v鋖jer kommer en del inmatningar att bli
likadana i <tt>Skapa montering</tt>-formul鋜et. Den viktigaste 鋜
monteringspunkten, dvs katalogen d鋜 filsystemet ska monteras. Denna
uppgift m錽te fyllas i f鰎 alla filsystemstyper utom virtuellt minne.
Om du skriver in en katalog som inte finns kommer Webmin att f鰎s鰇a
skapa den 錿 dig.

<p>F鰎 de flesta filsystemstyper kommer du att ha tre alternativ f鰎 att
spara monteringen:
	<ul>
	<li><b>Spara och montera vid start</b>
	    <br>Monteringen kommer att sparas permanent och monteras
	    n鋜 systemet startas.
	<li><b>Spara</b>
	    <br>Monteringen kommer att sparas, men inte monteras vid start.
	<li><b>Spara inte</b>
	    <br>Monteringen 鋜 bara tillf鋖lig.
	</ul>

<p>F鰎 de flesta filsystemstyper kan du ocks v鋖ja mellan att montera
nu eller ej. Det 鋜 ganska meningsl鰏t att v鋖ja att inte montera eller
spara ett nytt filsystem, s om du f鰎s鰇er att g鰎a detta kommer du att
f ett felmeddelande.

<p>N錱ra filsystemstyper har inte alla de ovan angivna alternativen.
Exempel p s錮ana 鋜:
	<ul>
	<li><tt>Virtuellt minne</tt> under Linux
	    <br>N鋜 denna typ monteras sparas den, och n鋜 den monteras
	    av raderas den. Sparade VM-monteringar monteras vid start.
	<li><tt>Windows-n鋞verk</tt> under Linux
	    <br>Denna filsystemstyp kan endast monteras med kommandot
	    <tt>smbmount</tt> och kan d鋜f鰎 inte sparas.
	<li><tt>Automounter-filsystem</tt>
	    <br>Permanenta Automounter-filsystem monteras alltid vid start.
	</ul>

<p>F鰎 alla filsystemstyper m錽te du ange monteringsursprung och
monteringsinst鋖lningar. Eftersom ursprung och inst鋖lningar skiljer sig
markant mellan olika Unix-smaker och filsystemstyper beskrivs de i listan
nedan:
	<ul>
	<li><b>Redhat Linux 4.0+</b> och <b>Slackware Linux 3.0+</b>
		<br>F鰎 de flesta Linux-filsystemtyper kan monteringsursprung
		vara n錱ot av nedanst錯nde:
		<ul>
		<li><b>IDE-disk</b>
			<br>F鰎 detta alternativ m錽te du ange IDE-diskens
			bokstav och partition. Bokstaven 鋜 vanligen <tt>a</tt>
			f鰎 den f鰎sta interna h錼ddisken, <tt>b</tt> f鰎 den
			andra interna disken och <tt>c</tt> f鰎 CD-ROM.
			Partitionsnumret beror p vilken partition du vill
			montera. Anv鋘d kommandot <tt>fdisk</tt> f鰎 att se
			tillg鋘gliga partitioner p diskarna.
		<li><b>SCSI-disk</b>
			<br>F鰎 detta alternativ m錽te du ange SCSI-diskens
			bokstav och partition. Bokstaven f鰎 disken har
			<i>inget</i> med SCSI-numret att g鰎a - varje
			SCSI-disk f錼 en bokstav av Linux i den ordning
			operativsystemet hittar dem.
		<li><b>Diskett</b>
			<br>F鰎 detta alternativ beh鰒er du endast ange
			diskettstationens nummer, dvs <tt>0</tt> f鰎 den
			prim鋜a diskettstationen och <tt>1</tt> f鰎 den
			sekund鋜a.
		<li><b>Annan enhet</b>
			<br>Om du v鋖jer detta alternativ kan du ange en
			s鰇v鋑 till den enhet du vill montera. Detta
			anv鋘ds exempelvis f鰎 RAOD-diskar, PCMCIA-kort
			och andra s鰇v鋑ar som Webmin inte k鋘ner till.
		</ul>
		<p>Innan det g錼 att montera ett filsystem fr錸 en lokal
		IDE- eller SCSI-diskpartition m錽te partitionen och
		filsystemet finnas. Du kan anv鋘da
		<a href=/fdisk/>Partitionshanterar</a>-modulen eller
		Linux-kommandona <tt>fdisk</tt> och <tt>mkfs</tt> f鰎 att
		g鰎a detta.

		F鰎 monteringstyperna <tt>Network Filesystem (nfs)</tt>,
		<tt>Windows n鋞verksfilsystem (smbfs)</tt>,
		<tt>Automounter-filsystem (auto)</tt> och <tt>Virtuellt
		minne (swap)</tt> ska monteringsursprunget anges p en
		annan form. Se avsnittet nedan f鰎 respektive filsystemstyp.

		N鋜 du har angivit monteringsursprung kan du ocks g鰎a
		inst鋖lningar f鰎 detta filsystem. En del inst鋖lningar 鋜
		dock gemensamma f鰎 n鋝tan alla Linux-filsystem. Dessa 鋜:

		<table border>
		<tr> <td><b>Endast l鋝bart</b></td>
		<td>Om <i>Ja</i> kan ingen skriva, skapa, radera eller 鋘dra
		n錱onting p detta filsystem</td> </tr>
		<tr> <td><b>Till錿 SUID-filer</b></td>
		<td>Om <i>Nej</i> kommer setuid-program p detta filsystem
		inte att k鰎as som sina 鋑are. Detta 鋜 anv鋘dbart n鋜 man
		fj鋜rmonterar filsystem som man inte litar p.</td> </tr>
		</table>

		Filsystemsspecifika inst鋖lningar 鋜:
		<ul>
		<li><b>Linux Native Filesystem (ext2fs)</b>
			<br>Detta 鋜 det senaste filsystemet f鰎 lokala
			h錼ddiskar i Linux.
			F鰈jande inst鋖lningar finns ocks:
			<table border>
			</table>

		<li><b>Network Filesystem (nfs)</b>
			<br>NFS 鋜 standard-Unix-metoden f鰎 att dela filer
			mellan olika system. F鰎 NFS 鋜 monteringsursprunget
			inte en lokal disk utan ett datornamn och en katalog
			p denna dator. Datornamnet (eller IP-adressen) ska
			ange den dator du vill montera fr錸. Katalogen du
			anger 鋜 den katalog som ska exporteras till ditt
			system.
			<br>NFS-filsystem har 鋠en f鰈jande inst鋖lningar:
			<table border>
			<tr> <td><b>NFS-version</b></td>
			<td>Den version av NFS (1-3) som ska anv鋘das</td> </tr>
			</table>
		
		<li><b>Virtuellt minne (swap)</b>
			<br>Virtuellt minne kan ha en lokal IDE-disk, SCSI-disk
			eller en vanlig fil som monteringsursprung. Om man
			anger ett filnamn som inte finns kommer Webmin att
			fr錱a efter filstorlek f鰎 swap-filen och sedan
			skapa den. Om Linuxk鋜nan inte har konfigurerats f鰎
			det kan en swap-fil inte finnas p ett NFS-monterat
			filsystem.
			<br>Monteringar av virtuellt minne har inga
			ytterligare inst鋖lningar.

		<li><b>Windows n鋞verksfilsystem (smbfs)</b>
			<br>Windows n鋞verk 鋜 det fildelningsprotokoll som
			Samba, Windows 95 och NT anv鋘der (鋠en k鋘t som SMB
			eller LANManager). Om en Windows-filserver delar en
			katalog kan man montera den under Linux och komma
			錿 inneh錶let som vanliga filer.

			<p>Monteringsursprunget f鰎 ett Windows
			n鋞verksfilsystem 鋜 ett resursnamn, t ex
			<tt>\\ntbox\somedir</tt>. F鰎sta delen 鋜 serverns
			NetBIOS-namn och andra delen namnet p en resurs p
			servern. I idealfallet 鋜 serverns NetBIOS-namn
			detsamma som dess TCP/IP-datornamn, men om s inte
			鋜 fallet kan man i inst鋖lningarna ange korrekt
			datornamn eller IP-adress som uppkopplingar ska ske
			mot.
			<br>F鰈jande inst鋖lningar ska g鰎as:
			<table border>
			<tr> <td><b>Anv鋘darnamn</b></td>
			<td>Anv鋘darnamn som ska anv鋘das vid inloggning p
			filservern. Detta beh鰒s ej f鰎 鰌pna resurser.</td> </tr>
			<tr> <td><b>L鰏enord</b></td>
			<td>L鰏enord f鰎 det angivna anv鋘darnamnet. Om man
			inte har angivit ett giltigt anv鋘darnamn och l鰏enord
			p servern kommer det inte g att montera resursen.
			Detta beh鰒s ej f鰎 鰌pna resurser.</td> </tr>
			</table>

		<li><b>MS-DOS-filsystem (fat)</b>
			<br>Disketter och h錼ddiskar som formaterats under
			Windows 3.1 med MS-DOS-version l鋑re 鋘 7.0 har denna
			filsystemstype. Filnamn p s錮ana filsystem m錽te vara
			p formen 8.3, dvs DOS-standard. Om man f鰎s鰇er skapa
			en fil med l鋘gre namn kommer namnet att klippas till
			8.3-format. Eftersom DOS inte anv鋘der begrepp som
			鋑are av filer och filr鋞tigheter kommer alla filer
			i en s錮an monterad katalog att ha samma 鋑are och
			r鋞tigheter. 膅ande och r鋞tigheter kan d inte
			鋘dras f鰎 enskilda filer.
			<br>F鰈jande inst鋖lningar kan g鰎as:
			<table border>
			</table>
			
		<li><b>Windows 95-filsystem (vfat)</b>
			<br>Detta filsystem finns p diskar som formaterats
			under Windows 95 och m鰆ligen NT. I likhet med
			MS-DOS-filsystemet ovan finns inte begreppen 鋑ande
			och r鋞tigheter, men till skillnad fr錸 MS-DOS kan
			filnamn f vara l鋘gre 鋘 8.3.
			<br>F鰈jande inst鋖lningar kan g鰎as:
			<table border>
			</table>

		<li><b>ISO9660-filsystem (iso9660)</b>
			<br>Detta 鋜 standardformatet f鰎 CD-ROM. Basformatet
			st鰀jer endast 8.3-filnamn (som <tt>fat</tt>), men
			det finns ett utvidgat format som heter Rock Ridge,
			d鋜 filer kan ha l錸ga namn och Unix-r鋞tigheter.
			<br>F鰈jande inst鋖lningar kan g鰎as:
			<table border>
			</table>

		<li><b>OS/2-filsystem (hpfs)</b>
			<br>H錼ddiskar som formaterats under OS/2 har detta
			filsystemsformat. Det st鰀jer l錸ga filnamn men inte
			Unix-r鋞tigheter och 鋑ande av filer.
			<br>F鰈jande inst鋖lningar kan g鰎as:
			<table border>
			</table>

		<li><b>Linux p MS-DOS-filsystem (umsdos)</b>
			<br>Detta filsystem anv鋘ds endast f鰎 att
			installera Linux p ett system som bara har ett
			MS-DOS-filsystem och inte kan partitioneras om.
			Det anv鋘der katalogen \linux p DOS-filsystemet
			som rotkatalog f鰎 Linux-filsystemet. N鋜 detta
			monteras under Linux st鰀jer det l錸ga filnamn,
			鋑ande av filer och filr鋞tigheter. Detta filsystem
			st鰀s normalt inte av RedHat Linux och b鰎 endast
			anv鋘das om man inte har n錱ot annat alternativ,
			eftersom prestandan f鰎 systemet blir d錶ig.
			<br>F鰈jande inst鋖lningar kan g鰎as f鰎 <tt>umsdos</tt>:
			<table border>
			</table>

		</ul>
	
	<li><b>Solaris 2.5+</b>
		<br>F鰎 diskbaserade Solaris-filsystem kan
		monteringsursprunget vara n錱ot av nedanst錯nde:
			<ul>
			<li><b>SCSI-disk</b>
				<br>Under Solaris identifieras en SCSI-disk
				av 4 siffror:
				<ul>
				<li><b>Controller</b> - SCSI-controllern som
				    disken 鋜 ansluten till. Denna 鋜 alltid
				    0 f鰎 den inbyggda controllern p
				    Sparcl錮or.
				<li><b>Target</b> - SCSI-enhetsnumret. F鰎
				    interna h錼ddiskar 鋜 detta 0 eller 1.
				    F鰎 externa diskar st鋖ls detta in p
				    diskl錮an.
				<li><b>Enhet</b> - N鋝tan alltid 0.
				<li><b>Partition</b> - Numret p den
				    partition som ska monteras.
				</ul>
			<li><b>MetaDisk-enhet</b>
				<br>Om du har stripade, speglade eller RAIDade
				enheter som skapats med Suns Metadevice-program
				ska du v鋖ja denna inst鋖lning och skriva in
				Metadevice-numret.
			<li><b>Annan enhet</b>
				<br>H鋜 m錽te du skriva in fullst鋘dig s鰇v鋑
				till diskfilen som ska monteras.
			</ul>

		<p>Innan det g錼 att montera ett filsystem fr錸 en lokal
		SCSI-disk m錽te partitionen och filsystemet finnas. Du kan
		 anv鋘da
		<a href=/fdisk/>Partitionshanterar</a>-modulen eller
		Unix-kommandona <tt>format</tt> och <tt>newfs</tt> f鰎 att
		g鰎a detta.

		<p>Under Solaris monteras CDROM och disketter automatiskt
		av enhetshanteraren. Om man inte st鋘gt av detta beh鰒er
		man inte alls montera disketter och CDROM manuellt. Enheter
		som monterats av enhetshanteraren visas inte i listan 鰒er
		monterade filsystem p startsidan. 膙en mobila SCSI-enheter
		(t ex Jaz- och Syquest-enheter) kan utel鋗nas beroende p
		hur enhetshanteraren 鋜 uppsatt p systemet.

		<p>N鋜 monteringsursprung f鰎 ett filsystem har angivits
		kan filsystemspecifika inst鋖lningar g鰎as:
		<ul>
		<li><b>Solaris Unix Filesystem (ufs)</b>
			<br>Detta 鋜 standardfilsystemet som Solaris anv鋘der
			f鰎 lokala diskar.
			<br>F鰈jande inst鋖lningar kan g鰎as:
			<table border>
			<tr> <td><b>Endast l鋝bart</b></td>
			<td>Om <i>Ja</i> kan ingen skriva, skapa, radera
			eller g鰎a chmod f鰎 n錱onting p detta filsystem</td> </tr>
			</table>

		<li><b>Network Filesystem (nfs)</b>
			<br>NFS 鋜 standard-Unix-metoden f鰎 att dela filer
			mellan olika system. F鰎 NFS 鋜 monteringsursprunget
			inte en lokal disk utan ett datornamn och en katalog
			p denna dator. Datornamnet (eller IP-adressen) ska
			ange den dator du vill montera fr錸. Katalogen du
			anger 鋜 den katalog som ska exporteras till ditt
			system.
			<br>F鰎 NFS-filsystem kan 鋠en f鰈jande inst鋖lningar
			g鰎as:
			<table border>
			</table>

		<li><b>Virtuellt minne (swap)</b>
			<br>Monteringsursprunget f鰎 virtuellt minne kan vara
			en SCSI-disk, en MetaDisk-enhet eller en vanlig fil.
			Om du anger namnet p en fil som inte finns kommer
			Webmin att fr錱a efter storlek p den swapfil som ska
			skapas. N鋜 filen har skapats kommer den att monteras
			som swap.
			<br>Inga ytterligare inst鋖lningar finns f鰎 montering
			av virtuellt minne.

		<li><b>Cachande filsystem (cachefs)</b>
			<br>Detta filsystem anv鋘der utrymme p lokal disk
			f鰎 att cacha filer fr錸 andra filsystem, vanligen
			NFS. Filer fr錸 en NFS-server som ofta anv鋘ds kommer
			allts att lagras lokalt med en betydande minskning
			av v鋘tetider som resultat. N鋜 du skapar en montering
			av ett cachande filsystem kommer Webmin att anta att
			filsystemet som man cachar ifr錸 鋜 av NFS-typ.

			<p>Monteringsursprung f鰎 <tt>cachefs</tt>-filsystem
			鋜 den NFS-server och den katalog som ska cachas.
			N鋜 man monterar ett cachande filsystem g鰎s egentligen
			tv monteringar - montering av den katalog som ska
			cachas (back mount) och <tt>cachefs</tt>-montering av
			cachekatalogen. Webmin visar inte dessa back mounts
			i listan 鰒er monterade filsystem.

			<p><tt>cachefs</tt> anv鋘der en cachekatalog d鋜 den
			lagrar cachade filer. Denna anges i inst鋖lningarna.
			F鰎 att skapa en cachekatalog med 鰊skade parametrar
			kan man antingen anv鋘da Unix-kommandot
			<tt>cfsadmin</tt> eller s鋞ta upp det automatiskt
			med Webmin. I det senare fallet kommer cachen att
			begr鋘sas till 10 % av storleken p det filsystem som
			cachekatalogen finns i.
			<br>F鰈jande inst鋖lningar kan g鰎as:
			<table border>
			</table>

		<li><b>Ram Disk Filesystem (tmpfs)</b>
			<br>Filer som lagras i denna sortens filsystem finns
			bara i RAM och f鰎svinner n鋜 filsystemet monteras av
			och n鋜 systemet startas om. Solaris
			<tt>tmp</tt>-katalog 鋜 av denna typ. Eftersom det
			endast finns i minnet finns det inget avsnitt f鰎
			monteringsursprung i formul鋜et.

			<br>Den enda inst鋖lning som kan g鰎as 鋜:
			<table border>
			</table>

		<li><b>Automounter Filesystem (autofs)</b>
			<br>Automounter monterar automatiskt p och av
			NFS-kataloger p beg鋜an. En underkatalog till en
			automonterad katalog monteras d anv鋘daren f鰎st
			refererar till den, exempelvis genom att g鰎a cd
			till underkatalogen. Om underkatalogen inte anv鋘ts
			p ett tag monteras den av och f鰎svinner ur
			listningarna.

			<p>Det finns tre alternativa monteringsursprung
			f鰎 denna filsystemstyp:
				<ul>
				<li><b>Alla NFS-servrar (-net)</b>
					<br>N鋜 anv鋘daren g鰎 cd till en
					underkatalog anv鋘ds namnet som namn
					p en NFS-server. Om denna server finns
					kommer alla tillg鋘gliga exporteringar
					p denna att monteras under den nya
					underkatalogen
					<br>Solaris har fr錸 b鰎jan
					<tt>/net</tt>-katalogen monterad med
					detta ursprung, s anv鋘daren kan g鰎a
					saker i stil med
					<br><tt>cd
					/net/bar.foo.com/usr/local/bin</tt>
					<br><tt>ls -l</tt>
				<li><b>XFN-server (-xfn)</b>
					<br>Ingen aning ...

				<li><b>Automounter map</b>
					<br>Namnet p en NIS-fil eller lokal
					automonter-fil m錽te anges. H鋜 anges
					de servrar och kataloger som ska
					monteras. Se
					<tt>automount</tt>-manualsidan f鰎
					mer information.
				</ul>

			<p>Inst鋖lningarna f鰎 automounter-filsystem 鋜
			likadana som f鰎 NFS. Dessa inst鋖lningar g鋖ler f鰎
			automatmonterade underkataloger inom
			automount-katalogen.

		<li><b>MS-DOS-filsystem (pcfs)</b>
			<br>Diskar som formaterats under MS-DOS har detta
			filsystem. Filnamnen 鋜 begr鋘sade till 8+3 bokst鋠er
			och filerna kan inte ges Unix-鋑ande eller
			-r鋞tigheter. Normalt anv鋘ds Webmin aldrig f鰎 att
			montera <tt>pcfs</tt>-filsystemsdisketter eftersom de
			automatiskt tas om hand av enhetshanteraren.
			<br>F鰈jande inst鋖lningar kan g鰎as:
			<table border>
			</table>

		<li><b>CDROM-filsystem (hsfs)</b>
			
		</ul>
	</ul>

<hr>
<h3>膎dra i ett filsystem</h3>
Klicka p en monteringspunkt i listan p startsidan f鰎 att 鋘dra i
motsvarande montering. Du f錼 d upp samma formul鋜 som d du skapar
nya monteringar, med aktuell monteringspunkt, -ursprung och inst鋖lningar
ifyllda och kan 鋘dra d鋜 du vill.

<p>En befintlig montering kommer att sparas permanent, monteras direkt
eller b錮a. Om du 鋘drar s att monteringen inte ska sparas eller monteras
kommer den att tas bort fr錸 monteringslistan. Observera att vissa
filsystemstyper inte har b錮a dessa alternativ.

<p>Under Unix g錼 det inte att montera av en katalog som anv鋘ds p n錱ot
s鋞t, antingen genom att en process har en fil i katalogen eller att n錱on
anv鋘dare har n錱on underkatalog som arbetskatalog.
Av liknande orsaker kan en swapfil inte monteras av om m鋘gden ledigt minne
鋜 mindre 鋘 swapfilens storlek. N鋜 man byter katalog, ursprung eller
鋘drar inst鋖lningar f鰎 en befintlig montering kommer Webmin att montera av
och p den f鰎 att 鋘dringarna ska tr鋎a i kraft. Detta kommer att misslyckas
om katalogen eller swapfilen anv鋘ds, vilket ger ett felmeddelande.

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Tillbaka till modul</a>
 

07070100008e7d000081a40000000000000002000000013ac0388c00003953000000200000000000000000000000000000002600000003reloc/mount/help/help.zh_TW.Big5.html <title>郎╰参恨瞶</title>
<body bgcolor=#ffffff>
<center><img src="images/mount.gif"></center><p>
<h2><i>硂弧﹟ゼЧΘ</i></h2>

<hr>
<h3>玡ē</h3>
硂家舱ノ虏虫本更セ狠合盒┪环狠郎だㄉ籔店览癘拘砰.  Unix ╰参合盒, 盒, Jaz 合, 硁盒┪郎狝竟郎ぇ玡, ウゲ斗砆<tt>本更</tt>更郎╰参琘本更翴. ╰参穦蝴┮笵郎╰参. 郎╰参琌既, 穝秨诀┪更碞а癘ウ. <p>

┮Τ Unix ╰参杆Ч拨ぶ常穦秨诀筁祘い本更郎郎╰参, τ计猵常穦Τ. ッ环ぶΤ砆本更ヘ魁 <tt>/</tt> 郎╰参, τㄤ琌 <tt>/usr</tt>, <tt>/proc</tt> ┪ <tt>/net</tt>. 埃獶眤 Unix ╰参琌礚合盒, ヘ魁╰参常琌本更セ狠合盒. ㄤ郎╰参玥琌ㄓ郎狝竟, セ狠合盒┪琌郎╰参ㄒ <tt>/proc</tt> ぃヴ痷龟郎. <p>

疭猵琌店览癘拘砰. 眤╰参ッ环莱赣ぶΤ店览癘拘砰ユ传郎, 硂砆╰参讽┑龟砰癘拘砰ㄏノ. ユ传郎琌郎琘郎╰参, ┪琌セ狠合盒ㄤいだ澄跋. <p>

硂家舱琌竒パ弄穝郎 <tt>/etc/fstab</tt> ┪ <tt>/etc/vfstab</tt> 郎恨瞶郎╰参. ヘ玡本更郎╰参竒パ弄郎 <tt>/etc/mtab</tt> ┪ <tt>/etc/mnttab</tt> ┮絋粄. Webmin 盢穦Ч┛跌ヴ郎╰参い爹秆. <p>

<hr>
<h3>ヘ玡郎╰参</h3>
<tt>郎╰参恨瞶</tt>璶礶琌┮Τ郎╰参. 癸–郎╰参, 冈灿戈盢穦砆陪ボ:
	<ul>
	<li><b>本更翴</b><br>
	    硂琌郎╰参砆本更ヘ魁, ┪琌<i>店览癘拘砰</i>狦硂琌ユ传郎. –本更翴本更郎╰参. <p>

	<li><b>郎╰参摸</b><br>
	    郎╰参摸Ч俱嘿. ㄌ沮本更よΑ (セ狠┪环狠) 籔合盒ΑてよΑ陪ボ. 眖セ狠合盒本更摸琌 <tt>Linux ネ郎╰参 (Linux Native Filesystem)</tt>, <tt>MS-DOS 郎╰参</tt> ┪ <tt>Solaris Unix 郎╰参</tt>单单. 环狠本更玥ッ环琌<tt>呼隔郎╰参</tt>. <p>
	    狦眤稱耕祏郎╰参嘿 (ㄒ <tt>ext2fs</tt> τぃ琌 <tt>Linux ネ郎╰参</tt>), 叫<a href="../config.cgi?mount">家舱舱篈</a>э跑<tt>琌ㄏノ郎╰参摸</tt>砞﹚. <p>

	<li><b>竚</b><br>
	    本更ㄓ方砞称郎┪环狠郎╰参嘿籔ヘ魁.  Unix , ┮Τセ狠合盒常Τ砞称北郎 <tt>/dev/</tt> ぇい, ノ龟悔合盒. 砞称郎籔隔畖钩琌 <tt>/dev/dsk/c0t1d0s3</tt> ┪ <tt>/dev/hda1</tt>. 讽眤絪胯┪ミ本更, Webmin 盢穦笆锣传Θ癸莱砞称絪腹. <p>

	<li><b>琌ㄏノい?</b><br>
	    狦郎╰参竒砆本更"琌". <p>

	<li><b>琌ッ?</b><br>
	    筁硂郎╰参琌ッ┦魁"琌". 癸""郎╰参更獽穦砆框а. <p>
	</ul><p>

<hr>
<h3>糤穝郎╰参</h3>
璶糤穝本更, よ匡拒続讽郎╰参摸. 硂穦陪ボ虫琵眤块本更翴竚, 本更ㄓ方籔ㄤゲ璶匡兜. –郎╰参摸ぃ Unix セ丁常穦Τぃ匡兜舱, τ–摸常穦Τ砛ぃ本更ㄓ方. <p>

ぃ阶眤匡贺郎╰参摸, <tt>ミ本更</tt>虫い常穦Τㄇ逆. 程璶琌"本更翴", 硂琌郎╰参盢璶砆本更竚. 埃店览癘拘砰ぇ–い郎╰参常惠璶硂把计. 狦眤块ヘ魁ぃ, Webmin 盢穦沽刚眤ミ. <p>

癸计郎╰参眤Τ 3 匡稱ノ纗本更:
	<ul>
	<li><b>秨诀纗本更 </b><br>
	    硂本更盢穦Τッ┦魁, τ╰参秨诀笆本更ぇ. <p>
	<li><b>纗</b><br>
	    硂本更盢穦Τッ┦魁, 琌更╰参秨诀ぃ穦笆本更ぇ. <p>
	<li><b>ぃ璶纗</b><br>
	    硂本更盢度琌既┦本更. <p>
	</ul><p>

癸计郎╰参摸, 眤匡拒琌璶ミㄨ本更. 匡拒"ぃ璶本更"籔"ぃ璶纗"琌⊿ΤΤ種竡, τ穦玻ネ岿粇癟. <p>

礛τΤㄇ郎╰参摸ぃ穦瞷匡兜, ㄒ:
	<ul>
	<li>Linux <tt>店览癘拘砰</tt><br>
	    硂摸琌竒本更纗, ┪更埃. 纗店览癘拘砰ッ环琌秨诀本更. <p>
	<li>Linux <tt>跌怠呼隔</tt><br>
	    硂郎╰参ノ <tt>smbmount</tt> ㏑本更, ┮礚猭纗. <p>
	<li><tt>笆本更竟郎╰参</tt><br>
	    ッ笆本更竟郎╰参ッ环琌秨诀本更. <p>
	</ul><p>

┮Τ郎╰参常惠璶眤匡拒本更ㄓ方籔本更匡兜. ㄓ方籔匡兜疭紉琌ㄌ沮穨╰参籔郎╰参ぃτ跑て, ┮だ弧:
	<ul>
	<li><b>Redhat Linux 4.0+</b> and <b>Slackware Linux 3.0+</b><br>
		癸计 Linux 郎╰参摸τē, 本更ㄓ方Τ碭贺:
		<ul>
		<li><b>IDE 砞称</b><br>
			癸硂匡拒, 眤ゲ斗块 IDE 砞称ダ籔だ澄跋. 砞称ダ癸 1st 合盒硄盽琌 <tt>a</tt>, 2nd 合盒硄盽琌 <tt>b</tt>, τ盒诀琌 <tt>c</tt>. τだ澄跋玥琌眤稱璶本更竚. 眤ㄏノ <tt>fdisk</tt> 浪跌合盒诀だ澄跋. <p>
		<li><b>SCSI 砞称</b><br>
			癸硂匡兜, 眤ゲ斗块 SCSI 砞称ダ籔だ澄跋. 砞称ダ<b>ぃ</b>琌 SCSI ヘ夹腹絏 - – SCSI 砞称琌ㄌ沮穨╰参т抖τ倒ぉダ. <p>
		<li><b>硁盒诀</b><br>
			硂匡兜惠璶眤块硁盒诀砞称絪腹. 癸材 (a 盒)  <tt>0</tt>, 材 (b 盒)  <tt>1</tt>. <p>
		<li><b>ㄤ砞称</b><br>
			狦眤匡硂匡兜, 眤块ヴ眤稱本更砞称隔畖嘿. 癸璶本更合盒皚砞称┪琌 PCMCIA 单 Webmin ぃ笵砞称, 硂琌Τノ. <p>
		</ul><p>
		セ狠 IDE ┪ SCSI 合盒だ澄跋砆本更ぇ玡, 硂だ澄跋ゲ斗竒砆ミ竒ЧΘΑて. 硂<a href=/fdisk/>だ澄跋恨瞶</a>礚猭ノㄓ暗硂ンㄆ. 眤ㄏノ Linux ╰参┮矗ㄑ <tt>fdisk</tt> 籔 <tt>mkfs</tt> ㏑ЧΘぇ. <p>

    		<tt>呼隔郎╰参 (NFS)</tt>, <tt>跌怠呼隔郎╰参 (smbfs)</tt>,  <tt>笆本更竟郎╰参 (auto)</tt> 籔 <tt>店览癘拘砰 (swap)</tt> 本更摸ㄏノぃ本更ㄓ方. 叫把酚闽郎╰参彻竊眔灿竊. <p>

		讽眤匡拒本更ㄓ方, 眤砞﹚ㄇ郎╰参盡Τ匡兜. Τㄇ匡兜琌癸碭┮Τ Linux 郎╰参常ㄏノ, ウ琌: <br>
		<table border>
		<tr> <td><b>斑弄</b></td>
		<td>
		狦匡拒"琌", 玥⊿Τ糶, ミ, 埃┪э跑硂郎╰参ヴ狥﹁
		</td> </tr>
		<tr> <td><b>す砛 SUID 郎</b></td>
		<td>
		狦匡拒"", 玥硂郎╰参 setuid 祘Α盢ぃ穦赣郎局Τ磅︽. 讽本更环狠郎╰参硂琌Τノ
		</td> </tr>
		</table><p>

		闽郎╰参匡兜:
		<ul>
		<li><b>Linux ネ郎╰参 (ext2fs)</b><br>
			硂琌ヘ玡程穝 Linux セ狠合盒郎╰参. <br>
			琌ノ硂郎╰参匡兜:
			<table border>
			</table><p>

		<li><b>呼隔郎╰参 (nfs)</b><br>
			NFS 琌夹非 Unix 郎だㄉよΑ. 癸 NFS τē, 本更ㄓ方ぃ琌セ狠郎╰参τ琌诀嘿籔环狠ヘ魁. 诀嘿琌眤璶ㄏノ NFS 狝竟嘿┪琌 IP . 环狠隔畖玥琌环狠诀す砛眤本更隔畖. <br>

			NFS 郎╰参Τ秈顶本更匡兜:
			<table border>
			<tr> <td><b>NFS セ</b></td>
			<td>璶ㄏノ NFS セ (1-3)</td> </tr>
			</table><p>
		
		<li><b>店览癘拘砰 (swap)</b><br>
			硂本更ㄓ方琌セ狠 IDE 合盒, SCSI 合盒┪琌郎. 狦眤块ぃ郎嘿, Webmin 穦高拜眤璶ミユ传郎, 腊眤ミ赣ユ传郎. 埃獶眤 Linux みΤ盢闽や穿絪亩秈, 玥眤ぃ盢 NFS 郎╰参本更Θユ传郎. <br>
			癸店览癘拘砰郎╰参⊿Τ闽匡兜. <p>

		<li><b>跌怠呼隔郎╰参 (smbfs)</b><br>
			跌怠呼隔╰参琌ㄏノ Samba 郎╰参, ノ跌怠 95/98/NT ぇ ( SMB ┪ LANManager). 狦跌怠郎狝竟琌ヘ魁よΑだㄉ, 眤盢ぇ本更 Linux ぇ, 讽郎. <p>

			跌怠呼隔郎╰参本更ㄓ方琌钩琌 <tt>\\ntbox\somedir</tt> だㄉ嘿. 材场だ琌狝竟 NetBIOS 嘿, 材场だ玥琌狝竟┮だㄉヘ魁嘿. 瞶稱狝竟 NetBIOS 嘿莱赣籔 TCP/IP 诀嘿; 狦ぃ, 眤ㄏノ本更匡兜﹚璶硈钡タ絋诀嘿┪ IP . 琌ㄏノ匡兜:
			<table border>
			<tr> <td><b>ㄏノ嘿</b></td>
			<td>
			祅郎狝竟┮璶ㄏノㄏノ嘿. 癸そ秨だㄉぃ惠璶
			</td> </tr>
			<tr> <td><b>盞絏</b></td>
			<td>
			硂ㄏノ嘿┮ㄏノ盞絏. 狦眤狝竟⊿ΤΤㄏノ嘿籔盞絏, 硂本更盢穦ア毖. 癸そ秨┦だㄉτē, ぃ惠璶硂ㄇ戈癟
			</td> </tr>
			</table><p>

		<li><b>MS-DOS 郎╰参 (fat)</b><br>
			跌怠 3.1 籔 MS-DOS 7.0 ぇ玡╰参┮ㄏノ硁盒┪祑盒郎╰参. 郎╰参い郎嘿砆 8.3 嘿夹非. 狦眤刚帝ミ郎郎, 郎盢穦砆玠搭Θ 8.3 Α.  DOS ⊿Τ矪瞶郎┮Τ舦┪痷龟郎舦诀, ┮Τ砆本更ヘ魁い郎常穦Τ局Τ籔家Α; τ眤ぃ縒ミ跑郎硂ㄇ妮┦. <br>
			The following options are available :
			<table border>
			</table><p>
			
		<li><b>跌怠 95 郎╰参 (vfat)</b><br>
			硂郎╰参琌竒パ跌怠 95 ┪ NT ┮ミ. 碞钩琌玡瓃 MS-DOS 郎╰参ㄌ妓, ウぃ穦矪瞶郎┮Τ舦籔闽妮┦. 礛τ, ウや穿郎. <br>
			Available options are :
			<table border>
			</table><p>

		<li><b>ISO9660 郎╰参 (iso9660)</b><br>
			硂琌盒夹非Α. 膀セΑや穿 8.3 郎Α, 碞钩琌 <tt>fat</tt> 妓, 琌眤ㄏノ Rock Ridge ┑Α, ㄏノ郎籔 Unix 舦.<br>
			The options for this filesystem are :
			<table border>
			</table><p>

		<li><b>OS/2 郎╰参 (hpfs)</b><br>
			OS/2 ノ郎╰参┮Αてㄓ祑盒. や穿郎, 琌ぃや穿 Unix 郎舦籔局Τ.<br>
			Available options are :
			<table border>
			</table><p>

		<li><b>Linux  MS-DOS 郎╰参 (umsdos)</b><br>
			硂郎╰参ぇ砆ノр Linux 杆Τ MS-DOS 郎╰参τ合盒パ礚猭砆穝だ澄猵. ウㄏノ DOS 郎╰参 \linux ヘ魁, 盢ぇ讽琌 Linux 郎╰参ヘ魁. 讽 Linux 本更, ウや穿郎, 郎舦籔局Τ癟.  RedHat Linux ぇい, 箇砞琌ぃや穿硂贺郎╰参, τ埃獶眤礚匡拒, 玥眤ぃ莱赣ㄏノウ, ㄤ瞯畉. <br>
			The valid options for <tt>umsdos</tt> are :
			<table border>
			</table><p>

		</ul><p>
	
	<li><b>Solaris 2.5+</b><br>
		癸合盒膀娄 Solaris 郎╰参, 本更ㄓ方琌:
			<ul>
			<li><b>SCSI 合盒</b><br>
				 Solaris , – SCSI 合盒砆 4 絪腹┮絋粄:
				<ul>
				<li><b>北竟</b> - 合盒┮硈钡 SCSI 北竟絪腹. 癸 Sparc ず北竟τē, ッ环琌 0.<br>
				<li><b>ヘ夹</b> - SCSI ヘ夹腹絏. 癸ず场砞称τē, ッ环琌 0 ┪ 1. 癸场砞称玥ノ砞称匡拒竟匡拒.<br>
				<li><b>虫</b> - 碭常琌 0.<br>
				<li><b>だ澄跋</b> - 璶本更だ澄跋絪腹.<br>
				</ul><p>
			<li><b>い膥合盒砞称</b><br>
				狦眤ㄏノ Sun い膥砞称硁砰ミユ岿Α, 琈甮┪琌合盒皚砞称, 叫匡拒硂匡兜块続讽絪腹. <p>
			<li><b>ㄤ砞称</b><br>
				硂匡拒惠璶眤块璶本更砞称Ч俱隔畖. <p>
			</ul><p>
		ミセ狠 SCSI 合盒郎╰参砆本更ぇ玡, 硂だ澄跋ゲ斗砆砞﹚ミ郎╰参. 硂<a href=/fdisk/>だ澄跋恨瞶</a>礚猭ノㄓ暗硂ンㄆ. 眤ㄏノ╰参┮矗ㄑ <tt>format</tt> 籔 <tt>newfs</tt> ㏑ЧΘぇ. <p>
		
		 Solaris , 硁盒诀籔盒诀常琌笆パ纗砰恨瞶┮本更. 獶硂竒砆闽超, 玥眤ぃ惠璶も笆本更ぇ. パ纗砰恨瞶笆本更郎╰参琌ぃ穦セ家舱璶礶い砆陪ボ. 硂穦祇ネㄤ簿笆 SCSI 纗砞称 (ㄒ Jaz ┪ Syquest 合盒), ㄌ沮眤╰参纗砰恨瞶砞﹚τ﹚. <p>

		讽郎╰参本更ㄓ方砆匡拒ぇ, 眤砞﹚郎╰参盡Τ匡兜:
		<ul>
		<li><b>Solaris Unix 郎╰参 (ufs)</b><br>
			硂琌 Solaris ノセ狠合盒夹非郎╰参摸. <br>
			ノ匡兜:
			<table border>
			<tr> <td><b>斑弄</b></td>
			<td>
			狦匡拒"琌", 玥⊿Τ糶, ミ, 埃┪э跑硂郎╰参ヴ狥﹁
			</td> </tr>
			</table><p>

		<li><b>呼隔郎╰参(nfs)</b><br>
			NFS 琌夹非 Unix 郎だㄉよΑ. 癸 NFS τē, 本更ㄓ方ぃ琌セ狠郎╰参τ琌诀嘿籔环狠ヘ魁. 诀嘿琌眤璶ㄏノ NFS 狝竟嘿┪琌 IP . 环狠隔畖玥琌环狠诀す砛眤本更隔畖. <br>
			
			NFS filesystems have the following additional options :
			<table border>
			</table><p>

		<li><b>店览癘拘砰 (swap)</b><br>
			店览癘拘砰本更ㄓ方琌 SCSI 合盒, い膥合盒砞称┪琌郎. 狦眤块ぃ郎嘿, Webmin 穦高拜眤璶ミユ传郎, 腊眤ミ赣ユ传郎. <br>
			癸店览癘拘砰本更⊿Τ闽匡兜. <p>

		<li><b>е郎╰参 (cachefs)</b><br>
			硂郎╰参ㄏノセ狠郎╰参丁е眖ㄤ郎╰参 (硄盽琌 NFS) ㄓ郎. 硂ボ竒パ NFS ┮眔郎穦砆玂セ狠, 糤ㄇ硉. 讽眤ミ穝е郎╰参本更, Webmin 穦рウ讽 NFS 璉郎╰参. <p>

			<tt>е郎╰参</tt>本更ㄓ方琌 NFS 狝竟籔еヘ魁. ??? 
			讽眤本更<tt>е郎╰参</tt>, 龟悔穦玻ネ本更笆 - 璉本更籔龟悔<tt>е郎╰参</tt>本更. Webmin ぃ穦盢璉硈挡陪ボ本更郎╰参い. <p> 

			<tt>е郎╰参</tt>ㄏノеヘ魁纗е郎, ﹚本更匡兜ぇい. 眤ㄏノ <tt>cfsadmin</tt> ㄏノ眤惠璶把计ミеヘ魁, ┪琵 Webmin 笆腊眤ミ. 猵い, е盢穦郎╰参 10%. <br>
			Valid options for this filesystem are:
			<table border>
			</table><p>

		<li><b>癘拘砰合盒郎╰参 (tmpfs)</b><br>
			纗硂贺郎╰参い郎龟悔癘拘砰い, τ更┪╰参穝币笆獽穦ア. <tt>/tmp</tt> ヘ魁硄盽ㄏノ硂贺本更家Α, ウ穦既戈. ウ盢戈癘拘砰ぇい, ┮硂娩⊿Τ本更ㄓ方. <br>
			The only option is :
			<table border>
			</table><p>

		<li><b>笆本更郎╰参 (autofs)</b><br>
			笆本更郎╰参穦笆ㄌ沮璶―本更籔更 NFS ヘ魁. Τㄏノ璶―笆本更ヘ魁ヘ魁, 赣ヘ魁穦笆砆本更瞷. τ琿砞﹚盯竚丁ぇ, 硂ヘ魁穦笆砆更ア. <p> 

			硂郎╰参本更ㄓ方Τ匡兜:
				<ul>
				<li><b>┮Τ NFS 狝竟 (-net)</b><br>
					讽ㄏノち传ヘ魁い, ウ穦眔 NFS 狝竟诀嘿. 狦硂狝竟, ┮Τ本更蹲常穦砆笆本更赣ヘ魁穝ヘ魁い. <br>
					Solaris 箇砞Τ <tt>/net</tt> ヘ魁本更硂ㄇ戈方, 璶ㄏノ摸璶―<br>
					<tt>cd /net/bar.foo.com/usr/local/bin</tt><br>
					<tt>ls -l</tt><p>
				<li><b>XFN 狝竟 (-xfn)</b><br>
					No idea??? <p>
				<li><b>笆本更癸莱</b><br>
					癸硂匡兜,倒ぉ NIS 癸莱嘿┪セ狠郎癸莱. 癸璶本更诀籔ヘ魁常﹚竡. 戈癟叫把酚 <tt>automount</tt> 弧. <p>
				</ul><p>
			癸笆本更郎╰参匡兜籔 NFS . 硂ㄇ匡兜常穦笆甅ノ┮Τ笆本更ぇい. <p>

		<li><b>MS-DOS 郎╰参 (pcfs)</b><br>
			跌怠 3.1 籔 MS-DOS 7.0 ぇ玡╰参┮ㄏノ硁盒┪祑盒郎╰参. 郎╰参い郎嘿砆 8.3 嘿夹非. τ郎常⊿Τ局Τ籔家Α. τē, 眤ぃ惠璶も笆本更 <tt>pcfs</tt> 硁盒, 硁盒穦パ纗砰恨瞶笆本更. <br>
			The options available for MS-DOS filesystems are :
			<table border>
			</table><p>

		<li><b>CDROM 郎╰参 (hsfs)</b><br>
			

		</ul><p>
	</ul><p>

<hr>
<h3>絪胯瞷郎╰参</h3>
璶絪胯瞷郎╰参, 礶い本更翴. 硂穦陪ボ籔ノミ穝本更虫. 眤ミ穝本更妓跑虫いヴ狥﹁. (磞瓃玡). <p>

瞷本更琌ッ纗, ヘ玡砆本更┪常琌. 狦眤э跑Θぃ纗┪本更, ウ盢穦眖本更い砆埃. 猔種Τㄇ郎╰参摸⊿Τ硂匡兜. <p>

 Unix ぇい, タ砆ㄏノヘ魁礚猭砆更, ぃ阶琌祘┪琌ㄏノヘ玡隔畖ㄤいヘ魁ぇい.

, 狦瞷癘拘砰丁ユ传, 硂ユ传郎礚猭砆更. 讽眤э跑ヘ魁, ㄓ方┪ヴ匡兜ぇ, Webmin 穦更穝本更硂ヘ魁甅ノ跑. 讽ヘ魁┪ユ传郎タ砆ㄏノいτ礚猭更, 硂盢穦ア毖τΤ岿粇癟玻ネ. <p>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">家舱</a><p>
 

 07070100007735000081a40000000000000002000000013ac0388c00008f97000000200000000000000000000000000000001800000003reloc/mount/hpux-lib.pl   # hpux-lib.pl
# Filesystem functions for HP-UX (works for me on 10.xx and 11.00)

# Return information about a filesystem, in the form:
#  directory, device, type, options, fsck_order, mount_at_boot
# If a field is unused or ignored, a - appears instead of the value.
# Swap-filesystems (devices or files mounted for VM) have a type of 'swap',
# and 'swap' in the directory field
sub list_mounts
{
local(@rv, @p, $_, $i); $i = 0;

# List normal filesystem mounts
open(FSTAB, $config{fstab_file});
while(<FSTAB>) {
	chop; s/#.*$//g;
	if (!/\S/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "ignore") { next; }
	if ($p[2] eq "swap") { $p[1] = "swap"; }
	$rv[$i++] = [ $p[1], $p[0], $p[2], $p[3], $p[5], "yes" ];
	}
close(FSTAB);

# List automount points
open(AUTOTAB, $config{autofs_file});
while(<AUTOTAB>) {
	chop; s/#.*$//g;
	if (!/\S/ || /^[+\-]/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "") { $p[2] = "-"; }
	else { $p[2] =~ s/^-//g; }
	$rv[$i++] = [ $p[0], $p[1], "autofs", $p[2], "-", "yes" ];
	}
close(AUTOTAB);

return @rv;
}


# create_mount(directory, device, type, options, fsck_order, mount_at_boot)
# Add a new entry to the fstab file, and return the index of the new entry
sub create_mount
{
local($len, @mlist, $fsck, $dir);
if ($_[2] eq "autofs") {
	# An autofs mount.. add to /etc/auto_master
	$len = grep { $_->[2] eq "autofs" } (&list_mounts());
	open(AUTOTAB, ">> $config{autofs_file}");
	print AUTOTAB "$_[0] $_[1]",($_[3] eq "-" ? "" : " -$_[3]"),"\n";
	close(AUTOTAB);
	}
else {
	# Add to the fstab file
	$len = grep { $_->[2] ne "autofs" } (&list_mounts());
        if ($_[4] eq "-") { 
		$fsck = "0";
		}
        else {
		$fsck = $_[4];
		}
	open(FSTAB, ">> $config{fstab_file}");
	print FSTAB "$_[1] $_[0] $_[2] $_[3] 0 $fsck\n";
	close(FSTAB);
	}
return $len;
}


# delete_mount(index)
# Delete some mount from the table
sub delete_mount
{
local(@fstab, $i, $line, $_);
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
$i = 0;

open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $i++ == $_[0]) {
		# found the line not to include
		}
	else { print FSTAB $_,"\n"; }
	}
close(FSTAB);

open(AUTOTAB, $config{autofs_file});
@autotab = <AUTOTAB>;
close(AUTOTAB);
open(AUTOTAB, "> $config{autofs_file}");
foreach (@autotab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $line !~ /^[+\-]/ && $i++ == $_[0]) {
		# found line not to include..
		}
	else { print AUTOTAB $_,"\n"; }
	}
close(AUTOTAB);
}


# change_mount(num, directory, device, type, options, fsck_order, mount_at_boot)
# Change an existing permanent mount
sub change_mount
{
local(@fstab, @autotab, $i, $line, $fsck, $dir, $_);
$i = 0;

open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $i++ == $_[0]) {
	        if ($_[5] eq "-") {
       	        	$fsck = "0";
                	}
        	else {
                	$fsck = $_[5];
                	}
		# Found the line to replace
		print FSTAB "$_[2] $_[1] $_[3] $_[4] 0 $fsck\n";
		}
	else { print FSTAB $_,"\n"; }
	}
close(FSTAB);

open(AUTOTAB, $config{autofs_file});
@autotab = <AUTOTAB>;
close(AUTOTAB);
open(AUTOTAB, "> $config{autofs_file}");
foreach (@autotab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $line !~ /^[+\-]/ && $i++ == $_[0]) {
		# Found the line to replace
		print AUTOTAB "$_[1]  $_[2]  ",
				($_[4] eq "-" ? "" : "-$_[4]"),"\n";
		}
	else { print AUTOTAB $_,"\n"; }
	}
close(AUTOTAB);
}


# list_mounted()
# Return a list of all the currently mounted filesystems and swap files.
# The list is in the form: directory device type options
# For swap files, the directory will be 'swap'
sub list_mounted
{
local(@rv, @p, $_, $i, $r);
foreach (split(/\n/, `swapinfo -a`)) {
	if (/^dev\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/) { push(@rv, [ "swap", $8, "swap", "pri=$7" ]); }
	}
foreach (split(/\n/, `cat /etc/mnttab`)) {
	s/#.*$//g; if (!/\S/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "ignore") { next; }
	push(@rv, [ $p[1], $p[0], $p[2], $p[3] ]);
	}
return @rv;
}


# mount_dir(directory, device, type, options)
# Mount a new directory from some device, with some options. Returns 0 if ok,
# or an error string if failed. If the directory is 'swap', then mount as
# virtual memory.
sub mount_dir
{
local($out, $opts);
if ($_[0] eq "swap") {
	# Adding a swap device
        local(%options, $opts);
        &parse_options("swap", $_[3]);
        if (defined($options{"pri"})) {
		$opts = "-p $options{'pri'}";
		}
	$out = &backquote_logged("swapon $opts $_[1] 2>&1");
	if ($? && !($out =~ /already enabled for paging/)) { return $out; }
	}
else {
	$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
	$out = &backquote_logged("mount -F $_[2] $opts -- $_[1] $_[0] 2>&1");
	if ($?) { return $out; }
	}
return 0;
}


# unmount_dir(directory, device, type)
# Unmount a directory (or swap device) that is currently mounted. Returns 0 if
# ok, or an error string if failed
sub unmount_dir
{
if ($_[0] eq "swap") {
        # Not possible!
        &error("Swap space cannot be removed");
        }
else {
	$out = &backquote_logged("umount $_[0] 2>&1");
	}
if ($?) { return $out; }
return 0;
}


# disk_space(type, directory)
# Returns the amount of total and free space for some filesystem, or an
# empty array if not appropriate.
sub disk_space
{
if (&get_mounted($_[1], "*") < 0) { return (); }
if ($_[0] eq "swap") {
	return ();
	}
`bdf $_[1]` =~ /Mounted on\n\S+\s+(\S+)\s+\S+\s+(\S+)/;
return ($1, $2);
}


# list_fstypes()
# Returns an array of all the supported filesystem types. If a filesystem is
# found that is not one of the supported types, generate_location() and
# generate_options() will not be called for it.
sub list_fstypes
{
return ("hfs", "vxfs", "swap", "cdfs", "nfs", "lofs");
}


# fstype_name(type)
# Given a short filesystem type, return a human-readable name for it
sub fstype_name
{
local(%fsmap);
%fsmap = ("hfs","HP Unix Filesystem",
	  "vxfs","HP Journaled Unix Filesystem",
	  "nfs","Network Filesystem",
	  "cdfs","ISO9660 CD-ROM",
	  "lofs","Loopback Filesystem",
	  "swapfs","Filesystem Swap Space",
	  "swap","Swap Space",
	  "autofs","Automounter Filesystem");
return $config{long_fstypes} && $fsmap{$_[0]} ? $fsmap{$_[0]} : uc($_[0]);
}


# mount_modes(type)
# Given a filesystem type, returns 4 numbers that determine how the file
# system can be mounted, and whether it can be fsck'd
#  0 - cannot be permanently recorded
#  1 - can be permanently recorded, and is always mounted at boot
#  2 - can be permanently recorded, and may or may not be mounted at boot
# The second is:
#  0 - mount is always permanent => mounted when saved
#  1 - doesn't have to be permanent
# The third is:
#  0 - cannot be fsck'd at boot time
#  1 - can be be fsck'd at boot time
# The fourth is:
#  0 - can be unmounted
#  1 - cannot be unmounted
sub mount_modes
{
if ($_[0] eq "hfs" || $_[0] eq "vxfs") {
	return (1, 1, 1, 0);
	}
elsif ($_[0] eq "swap") {
	return (1, 1, 0, 0);
	}
else { return (1, 1, 0, 0); }
}


# multiple_mount(type)
# Returns 1 if filesystems of this type can be mounted multiple times, 0 if not
sub multiple_mount
{
return ($_[0] eq "nfs" || $_[0] eq "lofs");
}


# generate_location(type, location)
# Output HTML for editing the mount location of some filesystem.
sub generate_location
{
if ($_[0] eq "nfs") {
	# NFS mount from some host and directory
	$onenfs = !$_[1] || $_[1] =~ /^([A-z0-9\-\.]+):([^,]+)$/;
	print "<tr> <td><b>NFS Hostname</b></td>\n";
	print "<td><input name=nfs_host size=20 value=\"$1\">\n";
	&nfs_server_chooser_button("nfs_host");
	print "</td>\n";
	print "<td><b>NFS Directory</b></td>\n";
	print "<td><input name=nfs_dir size=20 value=\"$2\">\n";
	&nfs_export_chooser_button("nfs_host", "nfs_dir");
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "hfs") {
	# Mounted from a normal disk, LVM device or from
	# somewhere else
	print "<tr> <td valign=top><b>HFS Device</b></td>\n";
	print "<td colspan=3>\n";
	if ($_[1] =~ /^\/dev\/dsk\/c([0-9]+)t([0-9]+)d([0-9]+)s([0-9]+)$/) {
		$hfs_dev = 0;
		$scsi_c = $1; $scsi_t = $2; $scsi_d = $3; $scsi_s = $4;
		}
	elsif ($_[1] eq "") {
		$hfs_dev = 0; $scsi_c = $scsi_t = $scsi_s = $scsi_d = 0;
		}
	elsif ($_[1] =~ /^\/dev\/vg([0-9]+)\/(\S+)/) {
		$hfs_dev = 1; $scsi_vg = $1; $scsi_lv = $2;
		}
	else {
		$hfs_dev = 2; $scsi_path = $_[1];
		}
	$scsi_path = $_[1];

	printf "<input type=radio name=hfs_dev value=0 %s> SCSI Disk:\n",
		$hfs_dev == 0 ? "checked" : "";
	print "Controller <input name=hfs_c size=3 value=\"$scsi_c\">\n";
	print "Target <input name=hfs_t size=3 value=\"$scsi_t\">\n";
	print "Unit <input name=hfs_d size=3 value=\"$scsi_d\">\n";
	print "Partition <input name=hfs_s size=3 value=\"$scsi_s\"><br>\n";

	printf "<input type=radio name=hfs_dev value=1 %s> LVM Device:\n",
		$hfs_dev == 1 ? "checked" : "";
	print "Volume Group <input name=hfs_vg size=2 value=\"$scsi_vg\">\n";
	print "Logical Volume <input name=hfs_lv size=20 value=\"$scsi_lv\"><br>\n";

	printf "<input type=radio name=hfs_dev value=2 %s> Other Device:\n",
		$hfs_dev == 2 ? "checked" : "";
	print "<input name=hfs_path size=20 value=\"$scsi_path\">";
        print &file_chooser_button("hfs_path", 0);
        print "<br>\n";
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "vxfs") {
	# Mounted from a normal disk, LVM device or from
	# somewhere else
	print "<tr> <td valign=top><b>VXFS Device</b></td>\n";
	print "<td colspan=3>\n";
	if ($_[1] =~ /^\/dev\/dsk\/c([0-9]+)t([0-9]+)d([0-9]+)s([0-9]+)$/) {
		$jfs_dev = 0;
		$scsi_c = $1; $scsi_t = $2; $scsi_d = $3; $scsi_s = $4;
		}
	elsif ($_[1] eq "") {
		$jfs_dev = 0; $scsi_c = $scsi_t = $scsi_s = $scsi_d = 0;
		}
	elsif ($_[1] =~ /^\/dev\/vg([0-9]+)\/(\S+)/) {
		$jfs_dev = 1; $scsi_vg = $1; $scsi_lv = $2;
		}
	else {
		$jfs_dev = 2; $scsi_path = $_[1];
		}
	$scsi_path = $_[1];

	printf "<input type=radio name=jfs_dev value=0 %s> SCSI Disk:\n",
		$jfs_dev == 0 ? "checked" : "";
	print "Controller <input name=jfs_c size=3 value=\"$scsi_c\">\n";
	print "Target <input name=jfs_t size=3 value=\"$scsi_t\">\n";
	print "Unit <input name=jfs_d size=3 value=\"$scsi_d\">\n";
	print "Partition <input name=jfs_s size=3 value=\"$scsi_s\"><br>\n";

	printf "<input type=radio name=jfs_dev value=1 %s> LVM Device:\n",
		$jfs_dev == 1 ? "checked" : "";
	print "Volume Group <input name=jfs_vg size=2 value=\"$scsi_vg\">\n";
	print "Logical Volume <input name=jfs_lv size=20 value=\"$scsi_lv\"><br>\n";

	printf "<input type=radio name=jfs_dev value=2 %s> Other Device:\n",
		$jfs_dev == 2 ? "checked" : "";
	print "<input name=jfs_path size=20 value=\"$scsi_path\">";
        print &file_chooser_button("jfs_path", 0);
        print "<br>\n";
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swapping to a disk partition or a file
	print "<tr> <td valign=top><b>Swap File</b></td>\n";
	print "<td colspan=3>\n";
	if ($_[1] =~ /^\/dev\/dsk\/c([0-9]+)t([0-9]+)d([0-9]+)s([0-9]+)$/) {
		$swap_dev = 0;
		$scsi_c = $1; $scsi_t = $2; $scsi_d = $3; $scsi_s = $4;
		}
	elsif ($_[1] =~ /^\/dev\/vg([0-9]+)\/(\S+)/) {
		$swap_dev = 1; $scsi_vg = $1; $scsi_lv = $2;
		}
	else {
		$swap_dev = 2; $scsi_path = $_[1];
		}
	$scsi_path = $_[1];
	printf "<input type=radio name=swap_dev value=0 %s> SCSI Disk:\n",
		$swap_dev == 0 ? "checked" : "";
	print "Controller <input name=swap_c size=3 value=\"$scsi_c\">\n";
	print "Target <input name=swap_t size=3 value=\"$scsi_t\">\n";
	print "Unit <input name=swap_d size=3 value=\"$scsi_d\">\n";
	print "Partition <input name=swap_s size=3 value=\"$scsi_s\"><br>\n";

	printf "<input type=radio name=swap_dev value=1 %s> LVM Device:\n",
		$swap_dev == 1 ? "checked" : "";
	print "Volume Group <input name=swap_vg size=2 value=\"$scsi_vg\">\n";
	print "Logical Volume <input name=swap_lv size=20 value=\"$scsi_lv\"><br>\n";

	printf "<input type=radio name=swap_dev value=2 %s> File:\n",
		$swap_dev == 2 ? "checked" : "";
	print "<input name=swap_path size=20 value=\"$scsi_path\">";
        print &file_chooser_button("swap_path", 0);
	print "<br>\n";
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "cdfs") {
	# Mounting a SCSI cdrom
	print "<tr> <td valign=top><b>CDROM Disk</b></td>\n";
	print "<td colspan=3>\n";
	if ($_[1] =~ /^\/dev\/dsk\/c([0-9]+)t([0-9]+)d([0-9]+)$/) {
		$cdfs_dev = 0;
		$scsi_c = $1; $scsi_t = $2; $scsi_d = $3;
		}
	else {
		$cdfs_dev = 1; $scsi_path = $_[1];
		}
	$scsi_path = $_[1];
	printf "<input type=radio name=cdfs_dev value=0 %s> SCSI Device:\n",
		$cdfs_dev == 0 ? "checked" : "";
	print "Controller <input name=cdfs_c size=3 value=\"$scsi_c\">\n";
	print "Target <input name=cdfs_t size=3 value=\"$scsi_t\">\n";
	print "Unit <input name=cdfs_d size=3 value=\"$scsi_d\">\n<BR>";

	printf "<input type=radio name=cdfs_dev value=1 %s> Other Device:\n",
		$cdfs_dev == 1 ? "checked" : "";
	print "<input name=cdfs_path size=20 value=\"$scsi_path\">";
        print &file_chooser_button("cdfs_path", 0);
	print "<br>\n";
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "lofs") {
	# Mounting some directory to another location
	print "<tr> <td><b>Original Directory</b></td>\n";
	print "<td><input name=lofs_src size=30 value=\"$_[1]\">\n";
	print &file_chooser_button("lofs_src", 1);
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "swapfs") {
	# Mounting a cached filesystem of some type.. need a location for
	# the source of the mount
	print "<tr> <td><b>Cache Source</b></td>\n";
	print "<td><input name=cfs_src size=20 value=\"$_[1]\"></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	# An automounter entry.. can be -hosts, -xfn or from some mapping
	print "<tr> <td valign=top><b>Automounter map</b></td>\n";
	printf "<td><input type=radio name=autofs_type value=0 %s>\n",
		$_[1] eq "-hosts" || $_[1] eq "-xfn" ? "" : "checked";
	printf "Use map <input name=autofs_map size=20 value=\"%s\"><br>\n",
		$_[1] eq "-hosts" || $_[1] eq "-xfn" ? "" : $_[1];
	printf "<input type=radio name=autofs_type value=1 %s>\n",
		$_[1] eq "-hosts" ? "checked" : "";
	print "All NFS exports map<br>\n";
	printf "<input type=radio name=autofs_type value=2 %s>\n",
		$_[1] eq "-xfn" ? "checked" : "";
	print "Federated  Naming  Service map</td> </tr>\n";
	}
}


# generate_options(type, newmount)
# Output HTML for editing mount options for a partilcar filesystem 
# under this OS
sub generate_options
{
if ($_[0] eq "nfs") {
	# NFS has many options, not all of which are editable here
	print "<tr> <td><b>Read-Only?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_ro value=1 %s> Yes\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=nfs_ro value=0 %s> No</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>Disallow setuid programs?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_nosuid value=1 %s> Yes\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=nfs_nosuid value=0 %s> No</td> </tr>\n",
		defined($options{"nosuid"}) ? "" : "checked";

	print "<tr> <td><b>Return error on timeouts?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_soft value=1 %s> Yes\n",
		defined($options{"soft"}) ? "checked" : "";
	printf "<input type=radio name=nfs_soft value=0 %s> No</td>\n",
		defined($options{"soft"}) ? "" : "checked";

	print "<td><b>Retry mounts in background?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_bg value=1 %s> Yes\n",
		defined($options{"bg"}) ? "checked" : "";
	printf "<input type=radio name=nfs_bg value=0 %s> No</td> </tr>\n",
		defined($options{"bg"}) ? "" : "checked";

	print "<tr> <td><b>Allow interrupts?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_nointr value=0 %s> Yes\n",
		defined($options{"nointr"}) ? "" : "checked";
	printf "<input type=radio name=nfs_nointr value=1 %s> No</td>\n",
		defined($options{"nointr"}) ? "checked" : "";

	print "<td><b>Allow Access to Local Devices?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_nodevs value=0 %s> Yes\n",
		defined($options{"nodevs"}) ? "" : "checked";
	printf "<input type=radio name=nfs_nodevs value=1 %s> No</td> </tr>\n",
		defined($options{"nodevs"}) ? "checked" : "";
	}
if ($_[0] eq "hfs") {
	print "<tr> <td><b>Read-Only?</b></td>\n";
	printf "<td nowrap><input type=radio name=hfs_ro value=1 %s> Yes\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=hfs_ro value=0 %s> No</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>Disallow setuid programs?</b></td>\n";
	printf "<td nowrap><input type=radio name=hfs_nosuid value=1 %s> Yes\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=hfs_nosuid value=0 %s> No</td> </tr>\n",
		defined($options{"nosuid"}) ? "" : "checked";

        print "<tr> <td><b>Enable quotas at boot time?</b></td>\n";
        printf "<td nowrap><input type=radio name=hfs_quota value=1 %s> Yes\n",
		defined($options{"quota"}) ? "checked" : "";
        printf "<input type=radio name=hfs_quota value=0 %s> No</td> </tr>\n",
		defined($options{"quota"}) ? "" : "checked";
	}
if ($_[0] eq "vxfs") {
	print "<tr> <td><b>Read-Only?</b></td>\n";
	printf "<td nowrap><input type=radio name=jfs_ro value=1 %s> Yes\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=jfs_ro value=0 %s> No</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>Disallow setuid programs?</b></td>\n";
	printf "<td nowrap><input type=radio name=jfs_nosuid value=1 %s> Yes\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=jfs_nosuid value=0 %s> No</td> </tr>\n",
		defined($options{"nosuid"}) ? "" : "checked";

	print "<tr> <td><b>Full integrity for all Metadata?</b></td>\n";
	printf "<td nowrap><input type=radio name=jfs_log value=1 %s> Yes\n",
		defined($options{"log"}) ? "checked" : "";
	printf "<input type=radio name=jfs_log value=0 %s> No</td>\n",
		defined($options{"log"}) ? "" : "checked";

	print "<td><b>Synchronous-write data logging?</b></td>\n";
	printf "<td nowrap><input type=radio name=jfs_syncw value=1 %s> Yes\n",
		!defined($options{"nodatainlog"}) ? "checked" : "";
	printf "<input type=radio name=jfs_syncw value=0 %s> No</td> </tr>\n",
		!defined($options{"nodatainlog"}) ? "" : "checked";

        print "<tr> <td><b>Enable quotas at boot time?</b></td>\n";
        printf "<td nowrap><input type=radio name=jfs_quota value=1 %s> Yes\n",
		defined($options{"quota"}) ? "checked" : "";
        printf "<input type=radio name=jfs_quota value=0 %s> No</td> </tr>\n",
		defined($options{"quota"}) ? "" : "checked";
	}
if ($_[0] eq "cdfs") {
	print "<tr> <td><b>Disallow setuid programs?</b></td>\n";
	printf"<td nowrap><input type=radio name=cdfs_nosuid value=1 %s> Yes\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=cdfs_nosuid value=0 %s> No</td> </tr>\n",
		defined($options{"nosuid"}) ? "" : "checked";
	}
if ($_[0] eq "lofs") {
	print "<tr> <td><b>Read-Only?</b></td>\n";
	printf "<td nowrap><input type=radio name=lofs_ro value=1 %s> Yes\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=lofs_ro value=0 %s> No</td> </tr>\n",
		defined($options{"ro"}) ? "" : "checked";
	}
if ($_[0] eq "swap") {
	local($i);
	print "<tr> <td><b>Priority</b></td>\n";
	print "<td><select name=swap_pri>\n";
	for ($i = 0; $i < 11; ++$i) {
		printf "<option value=\"%s\" %s>%s\n",
			$i, $options{"pri"} == $i ? "selected" : "", $i;
		}
	print "</select></td> </tr>\n";
	}
if ($_[0] eq "swapfs") {
	# The caching filesystem has lots of options.. cachefs mounts can
	# be of an existing 'manually' mounted back filesystem, or of a
	# back-filesystem that has been automatically mounted by the cache.
	# The user should never see the automatic mountings made by cachefs.
	print "<tr> <td><b>Real filesystem type</b></td>\n";
	print "<td nowrap><select name=cfs_backfstype>\n";
	if (!defined($options{backfstype})) { $options{backfstype} = "nfs"; }
	foreach (&list_fstypes()) {
		if ($_ eq "cachefs") { next; }
		printf "<option value=\"$_\" %s>$_\n",
			$_ eq $options{backfstype} ? "selected" : "";
		}
	print "</select></td>\n";

	print "<td><b>Real mount point</b></td>\n";
	printf"<td nowrap><input type=radio name=cfs_noback value=1 %s> Automatic\n",
		defined($options{"backpath"}) ? "" : "checked";
	printf "<input type=radio name=cfs_noback value=0 %s>\n",
		defined($options{"backpath"}) ? "checked" : "";
	print "<input size=10 name=cfs_backpath value=\"$options{backpath}\"></td> </tr>\n";

	print "<tr> <td><b>Cache directory</b></td>\n";
	printf "<td nowrap><input size=10 name=cfs_cachedir value=\"%s\"></td>\n",
		defined($options{"cachedir"}) ? $options{"cachedir"} : "/cache";

	print "<td><b>Write mode</b></td>\n";
	printf"<td nowrap><input type=radio name=cfs_wmode value=0 %s> Write-around\n",
		defined($options{"non-shared"}) ? "" : "checked";
	printf "<input type=radio name=cfs_wmode value=1 %s> Non-shared\n",
		defined($options{"non-shared"}) ? "checked" : "";
	print "</td> </tr>\n";

	print "<tr> <td><b>Consistency check</b></td>\n";
	print "<td><select name=cfs_con>\n";
	print "<option value=1> Periodically\n";
	printf "<option value=0 %s> Never\n",
		defined($options{"noconst"}) ? "selected" : "";
	printf "<option value=2 %s> On demand\n",
		defined($options{"demandconst"}) ? "selected" : "";
	print "</select></td>\n";

	print "<td><b>Check permissions in cache?</b></td>\n";
	printf "<td nowrap><input type=radio name=cfs_local value=1 %s> Yes\n",
		defined($options{"local-access"}) ? "checked" : "";
	printf "<input type=radio name=cfs_local value=0 %s> No</td> </tr>\n",
		defined($options{"local-access"}) ? "" : "checked";

	print "<tr> <td><b>Read-Only?</b></td>\n";
	printf "<td nowrap><input type=radio name=cfs_ro value=1 %s> Yes\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=cfs_ro value=0 %s> No</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>Disallow setuid programs?</b></td>\n";
	printf "<td nowrap><input type=radio name=cfs_nosuid value=1 %s> Yes\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=cfs_nosuid value=0 %s> No</td> </tr>\n",
		defined($options{"nosuid"}) ? "" : "checked";
	}
if ($_[0] eq "autofs") {
	# Autofs has lots of options, depending on the type of file
	# system being automounted.. the fstype options determines this
	local($fstype);
	$fstype = $options{fstype} eq "" ? "nfs" : $options{fstype};
	&generate_options($fstype);
	print "<input type=hidden name=autofs_fstype value=\"$fstype\">\n";
	}
}


# check_location(type)
# Parse and check inputs from %in, calling &error() if something is wrong.
# Returns the location string for storing in the fstab file
sub check_location
{
if ($_[0] eq "nfs") {
	local($out, $temp, $mout, $dirlist);

        # Use ping and showmount to see if the host exists and is up
        if ($in{nfs_host} !~ /^\S+$/) {
                &error("'$in{nfs_host}' is not a valid hostname");
                }
        $out = `ping '$in{nfs_host}' -n 1 2>&1`;
        if ($out =~ /unknown host/i) {
                &error("The host '$in{nfs_host}' does not exist");
                }
        elsif ($out =~ /100\% packet loss/) {
                &error("The host '$in{nfs_host}' is down");
                }
        $out = `showmount -e '$in{nfs_host}' 2>&1`;
        if ($out =~ /Unable to receive/) {
                &error("The host '$in{nfs_host}' does not support NFS");
                }
        elsif ($?) {
                &error("Failed to get mount list : $out");
                }

        # Validate directory name
        foreach (split(/\n/, $out)) {
                if (/^(\/\S+)/) { $dirlist .= "$1\n"; }
                }
        if ($in{nfs_dir} !~ /^\/\S+$/) {
                &error("'$in{nfs_dir}' is not a valid directory name. The ".
                       "available directories on $in{nfs_host} are:".
                       "<pre>$dirlist</pre>");
                }

	# Try a test mount to see if filesystem is available
	$temp = &tempname();
	mkdir($temp, 0755);
	$mout = `mount $in{nfs_host}:$in{nfs_dir} $temp 2>&1`;
	if ($mout =~ /No such file or directory/) {
		rmdir($temp);
		&error("The directory '$in{nfs_dir}' does not exist on the ".
		       "host $in{nfs_host}. The available directories are:".
		       "<pre>$dirlist</pre>");
		}
	elsif ($mout =~ /Permission denied/) {
		rmdir($temp);
		&error("This host is not allowed to mount the directory ".
		       "$in{nfs_dir} from $in{nfs_host}");
		}
	elsif ($?) {
		rmdir($temp);
		&error("NFS Error - $mout");
		}
	# It worked! unmount
	`umount $temp`;
	rmdir($temp);
	return "$in{nfs_host}:$in{nfs_dir}";
	}
elsif ($_[0] eq "hfs") {
	# Get the device name
	if ($in{hfs_dev} == 0) {
		$in{hfs_c} =~ /^[0-9]+$/ ||
			&error("'$in{hfs_c}' is not a valid SCSI controller");
		$in{hfs_t} =~ /^[0-9]+$/ ||
			&error("'$in{hfs_t}' is not a valid SCSI target");
		$in{hfs_d} =~ /^[0-9]+$/ ||
			&error("'$in{hfs_d}' is not a valid SCSI unit");
		$in{hfs_s} =~ /^[0-9]+$/ ||
			&error("'$in{hfs_s}' is not a valid SCSI partition");
		$dv = "/dev/dsk/c$in{hfs_c}t$in{hfs_t}d$in{hfs_d}s$in{hfs_s}";
		}
	elsif ($in{hfs_dev} == 1) {
		$in{hfs_vg} =~ /^[0-9]+$/ ||
			&error("'$in{hfs_vg}' is not a valid Volume Group");
		$in{hfs_lv} =~ /^\S+$/ ||
			&error("'$in{hfs_lv}' is not a valid Logical Volume");
		$dv = "/dev/vg$in{hfs_vg}/$in{hfs_lv}";
		}
	else {
		$in{hfs_path} =~ /^\/\S+$/ ||
			&error("'$in{hfs_path}' is not a valid pathname");
		$dv = $in{hfs_path};
		}

	&fstyp_check($dv, "hfs");
	return $dv;
	}
elsif ($_[0] eq "vxfs") {
	# Get the device name
	if ($in{jfs_dev} == 0) {
		$in{jfs_c} =~ /^[0-9]+$/ ||
			&error("'$in{jfs_c}' is not a valid SCSI controller");
		$in{jfs_t} =~ /^[0-9]+$/ ||
			&error("'$in{jfs_t}' is not a valid SCSI target");
		$in{jfs_d} =~ /^[0-9]+$/ ||
			&error("'$in{jfs_d}' is not a valid SCSI unit");
		$in{jfs_s} =~ /^[0-9]+$/ ||
			&error("'$in{jfs_s}' is not a valid SCSI partition");
		$dv = "/dev/dsk/c$in{jfs_c}t$in{jfs_t}d$in{jfs_d}s$in{jfs_s}";
		}
	elsif ($in{jfs_dev} == 1) {
		$in{jfs_vg} =~ /^[0-9]+$/ ||
			&error("'$in{jfs_vg}' is not a valid Volume Group");
		$in{jfs_lv} =~ /^\S+$/ ||
			&error("'$in{jfs_lv}' is not a valid Logical Volume");
		$dv = "/dev/vg$in{jfs_vg}/$in{jfs_lv}";
		}
	else {
		$in{jfs_path} =~ /^\/\S+$/ ||
			&error("'$in{jfs_path}' is not a valid pathname");
		$dv = $in{jfs_path};
		}

	&fstyp_check($dv, "vxfs");
	return $dv;
	}
elsif ($_[0] eq "lofs") {
	# Get and check the original directory
	$dv = $in{'lofs_src'};
	if (!(-r $dv)) { &error("'$in{lofs_src}' does not exist"); }
	if (!(-d $dv)) { &error("'$in{lofs_src}' is not a directory"); }
	return $dv;
	}
elsif ($_[0] eq "swap") {
	if ($in{swap_dev} == 0) {
		$in{swap_c} =~ /^[0-9]+$/ ||
			&error("'$in{swap_c}' is not a valid SCSI controller");
		$in{swap_t} =~ /^[0-9]+$/ ||
			&error("'$in{swap_t}' is not a valid SCSI target");
		$in{swap_d} =~ /^[0-9]+$/ ||
			&error("'$in{swap_d}' is not a valid SCSI unit");
		$in{swap_s} =~ /^[0-9]+$/ ||
			&error("'$in{swap_s}' is not a valid SCSI partition");
		$dv="/dev/dsk/c$in{swap_c}t$in{swap_t}d$in{swap_d}s$in{swap_s}";
		}
	elsif ($in{swap_dev} == 1) {
		$in{swap_vg} =~ /^[0-9]+$/ ||
			&error("'$in{swap_vg}' is not a valid Volume Group");
		$in{swap_lv} =~ /^\S+$/ ||
			&error("'$in{swap_lv}' is not a valid Logical Volume");
		$dv = "/dev/vg$in{swap_vg}/$in{swap_lv}";
		}
	else {
		$in{swap_path} =~ /^\/\S+$/ ||
			&error("'$in{swap_path}' is not a valid pathname");
		$dv = $in{swap_path};
		}
	&fstyp_check($dv, "swap");
	return $dv;
	}
elsif ($_[0] eq "cdfs") {
	# Get the device name
	if ($in{cdfs_dev} == 0) {
		$in{cdfs_c} =~ /^[0-9]+$/ ||
			&error("'$in{cdfs_c}' is not a valid SCSI controller");
		$in{cdfs_t} =~ /^[0-9]+$/ ||
			&error("'$in{cdfs_t}' is not a valid SCSI target");
		$in{cdfs_d} =~ /^[0-9]+$/ ||
			&error("'$in{cdfs_d}' is not a valid SCSI unit");
		$dv = "/dev/dsk/c$in{cdfs_c}t$in{cdfs_t}d$in{cdfs_d}";
		}
	else {
		$in{cdfs_path} =~ /^\/\S+$/ ||
			&error("'$in{cdfs_path}' is not a valid pathname");
		$dv = $in{cdfs_path};
		}

	&fstyp_check($dv, "cdfs");
	return $dv;
	}
elsif ($_[0] eq "swapfs") {
	# In order to check the location for the caching filesystem, we need
	# to check the back filesystem
	if (!$in{cfs_noback}) {
		# The back filesystem is manually mounted.. hopefully
		local($bidx, @mlist, @binfo);
		$bidx = &get_mounted($in{cfs_backpath}, "*");
		if ($bidx < 0) {
			&error("The back filesystem '$in{cfs_backpath}' is ".
			       "not mounted");
			}
		@mlist = &list_mounted();
		@binfo = @{$mlist[$bidx]};
		if ($binfo[2] ne $in{cfs_backfstype}) {
			&error("The back filesystem is '$binfo[2]', not ".
			       "'$in{cfs_backfstype}'");
			}
		}
	else {
		# Need to automatically mount the back filesystem.. check
		# it for sanity first.
		# But HOW?
		$in{cfs_src} =~ /^\S+$/ ||
			&error("'$in{cfs_src}' is not a valid cache source");
		}
	return $in{cfs_src};
	}
elsif ($_[0] eq "autofs") {
	# An autofs filesystem can be either mounted from the special
	# -hosts and -xfn maps, or from a normal map. The map can be a file
	# name (if it starts with /), or an NIS map (if it doesn't)
	if ($in{autofs_type} == 0) {
		# Normal map
		$in{autofs_map} =~ /\S/ ||
			&error("You did not enter an automount map name");
		if ($in{autofs_map} =~ /^\// && !(-r $in{autofs_map})) {
			&error("The map file '$in{autofs_map}' does not exist");
			}
		return $in{autofs_map};
		}
	elsif ($in{autofs_type} == 1) {
		# Special hosts map (automount all shares from some host)
		return "-hosts";
		}
	else {
		# Special FNS map (not sure what this does)
		return "-xfn";
		}
	}
}

# fstyp_check(device, type)
# Check if some device exists, and contains a filesystem of the given type,
# using the fstyp command.
sub fstyp_check
{
local($out, $part, $found);

# Check if the device/partition actually exists
if ($_[0] =~ /^\/dev\/dsk\/c(.)t(.)d(.)s(.)$/) {
	# a normal scsi device..
	if (!open(DEV, $_[0])) {
		if ($! =~ /No such file or directory/) {
                	&error("The SCSI target for '$_[0]' does not exist");
			}
		elsif ($! =~ /No such device or address/) {
                	&error("The SCSI target for '$_[0]' does not exist");
			}
		}
	close(DEV);
	}
elsif ($_[0] =~ /^\/dev\/vg([0-9]+)\/(\S+)$/) {
	# Logical Volume device..
	$out = `lvdisplay -v $_[0] 2>&1`;
	if ($out =~ /No such file or directory/) {
		&error("The Logical Volume device for '$_[0]' does not exist");
		}
	}
else {
	# Some other device
	if (!open(DEV, $_[0])) {
		if ($! =~ /No such file or directory/) {
			&error("The device file '$_[0]' does not exist");
			}
		elsif ($! =~ /No such device or address/) {
			&error("The device for '$_[0]' does not exist");
			}
		}
	close(DEV);
	}

# Check the filesystem type
if ($_[1] ne "cdfs" && $_[1] ne "swap") {
	$out = `fstyp $_[0] 2>&1`;
	if ($out =~ /^([A-z0-9]+)\n$/) {
		if ($1 eq $_[1]) { return; }
		else {
			# Wrong filesystem type
			&error("The device '$_[0]' is formatted as a ".
			       &fstype_name($1));
			}
		}
	else {
		&error("Failed to check filesystem type : $out");
		}
	}
}


# check_options(type)
# Read options for some filesystem from %in, and use them to update the
# %options array. Options handled by the user interface will be set or
# removed, while unknown options will be left untouched.
sub check_options
{
local($k, @rv);
delete($options{"defaults"});

if ($_[0] eq "nfs") {
	# NFS has lots of options to parse
	if ($in{'nfs_ro'}) {
		# Read-only
		$options{"ro"} = ""; delete($options{"rw"});
		}
	else {
		# Read-write
		$options{"rw"} = ""; delete($options{"ro"});
		}

	if ($in{hfs_nosuid}) {
		# nosuid
		$options{"nosuid"} = ""; delete($options{"suid"});
		}
	else {
		# suid
		$options{"suid"} = ""; delete($options{"nosuid"});
		}

	delete($options{"soft"}); delete($options{"hard"});
	if ($in{nfs_soft}) { $options{"soft"} = ""; }

	delete($options{"bg"}); delete($options{"fg"});
	if ($in{nfs_bg}) { $options{"bg"} = ""; }

	delete($options{"intr"}); delete($options{"nointr"});
	if ($in{nfs_nointr}) { $options{"nointr"} = ""; }

	delete($options{"devs"}); delete($options{"nodevs"});
	if ($in{nfs_nodevs}) { $options{"nodevs"} = ""; }
	}
elsif ($_[0] eq "hfs") {
	if ($in{hfs_ro}) {
		# read-only
		$options{"ro"} = ""; delete($options{"rw"});
		}
	else {
		# read-write
		$options{"rw"} = ""; delete($options{"ro"});
		}
	if ($in{hfs_nosuid}) {
		# nosuid
		$options{"nosuid"} = ""; delete($options{"suid"});
		}
	else {
		# suid
		$options{"suid"} = ""; delete($options{"nosuid"});
		}
	if ($in{hfs_quota}) {
		# quota
		$options{"quota"} = "";
		}
	else {
		# noquota
		delete($options{"quota"});
		}
	}
elsif ($_[0] eq "vxfs") {
	if ($in{jfs_ro}) {
		# read-only
		$options{"ro"} = ""; delete($options{"rw"});
		}
	else {
		# read-write
		$options{"rw"} = ""; delete($options{"ro"});
		}
	if ($in{jfs_nosuid}) {
		# nosuid
		$options{"nosuid"} = ""; delete($options{"suid"});
		}
	else {
		# suid
		$options{"suid"} = ""; delete($options{"nosuid"});
		}
	if ($in{jfs_log}) {
		# log
		$options{"log"} = ""; delete($options{"delaylog"});
		}
	else {
		# delaylog
		$options{"delaylog"} = ""; delete($options{"log"});
		}
	if ($in{jfs_syncw}) {
		# datainlog
		$options{"datainlog"} = ""; delete($options{"nodatainlog"});
		}
	else {
		# nodatainlog
		$options{"nodatainlog"} = ""; delete($options{"datainlog"});
		}
	if ($in{jfs_quota}) {
		# quota
		$options{"quota"} = "";
		}
	else {
		# noquota
		delete($options{"quota"});
		}
	}
elsif ($_[0] eq "lofs") {
	if ($in{lofs_ro}) {
		# read-only
		$options{"ro"} = "";
		}
	else {
		# read-write
		$options{"defaults"} = "";
		}
	}
elsif ($_[0] eq "swap") {
	$options{"pri"} = $in{swap_pri};
	}
elsif ($_[0] eq "cdfs") {
	# read-only
	$options{"ro"} = "";
	if ($in{cdfs_nosuid}) {
		# nosuid
		$options{"nosuid"} = ""; delete($options{"suid"});
		}
	else {
		# suid
		$options{"suid"} = ""; delete($options{"nosuid"});
		}
	}
elsif ($_[0] eq "tmpfs") {
	# Ram-disk filesystems have only one option
	delete($options{"size"});
	if (!$in{"tmpfs_size_def"}) {
		$options{"size"} = "$in{tmpfs_size}$in{tmpfs_unit}";
		}
	}
elsif ($_[0] eq "swapfs") {
	# The caching filesystem has lots of options
	$options{"backfstype"} = $in{"cfs_backfstype"};

	delete($options{"backpath"});
	if (!$in{"cfs_noback"}) {
		# A back filesystem was given..  (alreadys checked)
		$options{"backpath"} = $in{"cfs_backpath"};
		}

	if ($in{"cfs_cachedir"} !~ /^\/\S+/) {
		&error("'$in{cfs_cachedir}' is not a valid cache directory");
		}
	$options{"cachedir"} = $in{"cfs_cachedir"};

	delete($options{"write-around"}); delete($options{"non-shared"});
	if ($in{"cfs_wmode"}) {
		$options{"non-shared"} = "";
		}

	delete($options{"noconst"}); delete($options{"demandconst"});
	if ($in{"cfs_con"} == 0) { $options{"noconst"} = ""; }
	elsif ($in{"cfs_con"} == 2) { $options{"demandconst"} = ""; }

	delete($options{"ro"}); delete($options{"rw"});
	if ($in{"cfs_ro"}) { $options{"ro"} = ""; }

	delete($options{"suid"}); delete($options{"nosuid"});
	if ($in{"cfs_nosuid"}) { $options{"nosuid"} = ""; }
	}
elsif ($_[0] eq "autofs") {
	# The options for autofs depend on the type of the automounted
	# filesystem.. 
	$options{"fstype"} = $in{"autofs_fstype"};
	return &check_options($options{"fstype"});
	}

# Return options string
foreach $k (keys %options) {
	if ($options{$k} eq "") { push(@rv, $k); }
	else { push(@rv, "$k=$options{$k}"); }
	}
return @rv ? join(',' , @rv) : "-";
}


# create_swap(path, size, units)
# Attempt to create a swap file 
sub create_swap
{
local($out);
$out = `mkfile $_[1]$_[2] $_[0] 2>&1`;
if ($?) {
	unlink($_[0]);
	return "mkfile failed : $out";
	}
return 0;
}


# exports_list(host, dirarray, clientarray)
# Fills the directory and client array references with exports from some
# host. Returns an error string if something went wrong
sub exports_list
{
local($dref, $cref, $out, $_);
$dref = $_[1]; $cref = $_[2];
$out = `showmount -e $_[0] 2>&1`;
if ($?) { return $out; }
foreach (split(/\n/, $out)) {
	if (/^(\/\S*)\s+(.*)$/) {
		push(@$dref, $1); push(@$cref, $2);
		}
	}
return undef;
}

# broadcast_addr()
# Returns a useable broadcast address for finding NFS servers
sub broadcast_addr
{
local($out, $hostname, $broadcast, @tmp);
$hostname = get_system_hostname();
$out = `netstat -i 2>&1 | grep $hostname`;
if ($out =~ /\s+(\S*)\s+(\S*)\s+(.*)/) {
	$broadcast = "$2.255.255.255";
	@tmp = split(/\./,$broadcast);
	$broadcast = "$tmp[0].$tmp[1].$tmp[2].$tmp[3]";
	return $broadcast;
	}
return "255.255.255.255";
}

sub device_name
{
return $_[0];
}

sub files_to_lock
{
return ( $config{'fstab_file'} );
}

1;
 0707010000a382000041ed0000000000000001000000023ac03c1800000000000000200000000000000000000000000000001300000003reloc/mount/images    0707010000a383000081a40000000000000002000000013ac0388c000008c8000000200000000000000000000000000000001c00000003reloc/mount/images/auto.gif   GIF89a0 0   妿斊侍NV\.:D怄洫nrt众蹷JT"*4>>L蝣艉灸*24bfl灋溨翁6BL觐靱倓廒云炯6:<Z^d**,224Ζひ以抖磃nt种则铎破"$挅渧z凴RT>FT怃问您鲷6>DJJL妴屸掬拗話挃VV\赕燹谲".4.6<jflΒbd*.426<蜢&&,挝虋挃2>L伯>BD鳅袈炯灑て履竞嘉铺&,~~2:Lrv|.24fjl:FT铗靻妼孚6:L^bdΚ琻nl谥允颇z~凢FL:>DJNTVZ\揶..466<椅>BT帋2:<骀鋜rtFJL&*,鲻艟履忠:BL铑靻唽孚::D抑院杭鲱"",殮渮z|BFL鼕妼孓茆周觋&.4鲵舨泊倖劼履jjl瑤挏BBLⅱな履ZZ\适蘎V\蹿谲揪膄fl憾磈nt枛滄怃"&,以鼛妼铌*2<灋も谲凭6:DZ^l**422<乙苤周蝾羝铺",RR\问6>LJJT拗苻阡.6Dbbl*.<26D打螋挝圆>BL鳅绿竞.2<fjt^blnnt谥苁铺:>LJN\VZd揶..<66D椅$帋2:D骀靣r|FJT&*4鲻:BT铑魖z凚FT孓&.<ⅱ!Made with GIMP ,    0 0   OH <*\劝g}%33┾>豺4芨137nx 9罬&橜㈣偛B~|d>}L嫣d&Y硹萑*k淝&戅Dj袇y牗i涑qN樞'SJ8%>-h霗!<	瞞W783昹讓票y茇谒 ,歴徭Ln荼'犡:a+O尝mg嘿蕌傋泒 覍4韃[T脔蜃洊q4銐!{U<vC擌V竆'{绋M紨ユ骬5C閽,N7涉d&	H梟,轐URI濥躸詧m$l戰玊d5;刯驓咸榜E娜,nL氯 Bl馣-榄 md皚~ Bㄌ倞聟'灓覇坢瘩3	柔C桳b
煡賈^
劚+[锠'S倝奎駾	扡CyHU8&欼(2倗徣t笲垶賳&碼 1'i1 赥1
!駺彴訞 ,皌	'旇尃OD沉O┽鋼P"矊|杹,柖侺樋h塮殸,5硣@豅|翲蚶怇5鑀FP儲_異蕫Rb痬8c┌J|6(蘌趀+眏咬+tJ丣@Q叭彥仠0_栲钎5洧墻]nf牽(h韾:]虑jo|弢#硡'"1飵樖[L癘圦C襠"襞爃%,磱p58PC侯築鞎]!臥"椞す鑰.,"淐(w豎)`x 毷拥(掞緘%餓敿5,M 溙蠬K僪m*貟缾2鯒ヨ
瓅a@#卢"( 硠疂檴	f@u,裆D嬸yk.赕m-D鄠x1/痊恔OaC+EJMvK.巛J.	<癏02描.!b浭"攪QTDxB0骊j冭3p`B蒭,q*L? CPCSV}鐱瘥衂E"寣襀#l餽*o盇圫`*"爛}} D(褽=闥z啬1J奡3枧) 凾 CFC鷓擂燖:犧+爥Wh鈪x7B@$db䴙8艶茑>樍坥罍r悆a	辮临O膧PQ媀Oi禒貰/壤エ0^
&锯墘缻zq區e( d 羾烒E\覈 1`檰20a仞両r|"巰) c
8Dkd饋c鴄4HB@!,捙埨$賞岟筨挳#堚"嶾0C.鼱 ,2v$p4I攂/  "p0cLXbNfxS轑*愷JH蕭L罍6哊P卅@翆b2#i狓#憘r#>`缊䙡@屰lz URg@鶼0犅G餎沅i=  A4p墷偄!8Z翾厁! )@獓J@8袼2"M%扨`D&|蕬5衾" PG]r@:P^汝X攼K琧崃$ ;0707010000a384000081a40000000000000002000000013ac0388c000008c8000000200000000000000000000000000000001e00000003reloc/mount/images/autofs.gif GIF89a0 0   妿斊侍NV\.:D怄洫nrt众蹷JT"*4>>L蝣艉灸*24bfl灋溨翁6BL觐靱倓廒云炯6:<Z^d**,224Ζひ以抖磃nt种则铎破"$挅渧z凴RT>FT怃问您鲷6>DJJL妴屸掬拗話挃VV\赕燹谲".4.6<jflΒbd*.426<蜢&&,挝虋挃2>L伯>BD鳅袈炯灑て履竞嘉铺&,~~2:Lrv|.24fjl:FT铗靻妼孚6:L^bdΚ琻nl谥允颇z~凢FL:>DJNTVZ\揶..466<椅>BT帋2:<骀鋜rtFJL&*,鲻艟履忠:BL铑靻唽孚::D抑院杭鲱"",殮渮z|BFL鼕妼孓茆周觋&.4鲵舨泊倖劼履jjl瑤挏BBLⅱな履ZZ\适蘎V\蹿谲揪膄fl憾磈nt枛滄怃"&,以鼛妼铌*2<灋も谲凭6:DZ^l**422<乙苤周蝾羝铺",RR\问6>LJJT拗苻阡.6Dbbl*.<26D打螋挝圆>BL鳅绿竞.2<fjt^blnnt谥苁铺:>LJN\VZd揶..<66D椅$帋2:D骀靣r|FJT&*4鲻:BT铑魖z凚FT孓&.<ⅱ!Made with GIMP ,    0 0   OH <*\劝g}%33┾>豺4芨137nx 9罬&橜㈣偛B~|d>}L嫣d&Y硹萑*k淝&戅Dj袇y牗i涑qN樞'SJ8%>-h霗!<	瞞W783昹讓票y茇谒 ,歴徭Ln荼'犡:a+O尝mg嘿蕌傋泒 覍4韃[T脔蜃洊q4銐!{U<vC擌V竆'{绋M紨ユ骬5C閽,N7涉d&	H梟,轐URI濥躸詧m$l戰玊d5;刯驓咸榜E娜,nL氯 Bl馣-榄 md皚~ Bㄌ倞聟'灓覇坢瘩3	柔C桳b
煡賈^
劚+[锠'S倝奎駾	扡CyHU8&欼(2倗徣t笲垶賳&碼 1'i1 赥1
!駺彴訞 ,皌	'旇尃OD沉O┽鋼P"矊|杹,柖侺樋h塮殸,5硣@豅|翲蚶怇5鑀FP儲_異蕫Rb痬8c┌J|6(蘌趀+眏咬+tJ丣@Q叭彥仠0_栲钎5洧墻]nf牽(h韾:]虑jo|弢#硡'"1飵樖[L癘圦C襠"襞爃%,磱p58PC侯築鞎]!臥"椞す鑰.,"淐(w豎)`x 毷拥(掞緘%餓敿5,M 溙蠬K僪m*貟缾2鯒ヨ
瓅a@#卢"( 硠疂檴	f@u,裆D嬸yk.赕m-D鄠x1/痊恔OaC+EJMvK.巛J.	<癏02描.!b浭"攪QTDxB0骊j冭3p`B蒭,q*L? CPCSV}鐱瘥衂E"寣襀#l餽*o盇圫`*"爛}} D(褽=闥z啬1J奡3枧) 凾 CFC鷓擂燖:犧+爥Wh鈪x7B@$db䴙8艶茑>樍坥罍r悆a	辮临O膧PQ媀Oi禒貰/壤エ0^
&锯墘缻zq區e( d 羾烒E\覈 1`檰20a仞両r|"巰) c
8Dkd饋c鴄4HB@!,捙埨$賞岟筨挳#堚"嶾0C.鼱 ,2v$p4I攂/  "p0cLXbNfxS轑*愷JH蕭L罍6哊P卅@翆b2#i狓#憘r#>`缊䙡@屰lz URg@鶼0犅G餎沅i=  A4p墷偄!8Z翾厁! )@獓J@8袼2"M%扨`D&|蕬5衾" PG]r@:P^汝X攼K琧崃$ ;0707010000a385000081a40000000000000002000000013ac0388c00000920000000200000000000000000000000000000001f00000003reloc/mount/images/cachefs.gif    GIF89a0 0      			


   !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~亖亗倐儍儎剟厖厗唵噰噲垐墘墛妸媼媽寣崓崕帋弿彁悙憫憭拻摀摂敂晻晼枛棗棙槝櫃櫄殮洓洔湝潩潪灋煙煚牋　、ⅱ＃￥いゥウΖЁЖè┅┆鞍北辈膊吵炒创档刀抖贩犯父构购汉换患技浇骄揪靠坷览亮谅侣妹媚哪排牌破乔侨热缮墒适怂颂烫屯臀挝舷闲行蜒岩乙佑釉栽照罩种鬃棕刎儋仝谮圹圮苘葺蒉揶哌哙噜後徕忖沣沅滗邋彐骀珑玷梃殚殛觋腚腱祆眄眍铑镲镳痧耨耱蝌篌篝趑貂貊鲻鼢鼬!Made with GIMP ,    0 0   	H盃羴*\劝.B6淗憼3,!b艔
倥酺疺q<@($舲緉9s4f阎y垓停K	隕S艑費f3oN髸廜藷
)@h棷`婴dm瞶侨;後T凊<般4XOg衙h湴 ,Ajm  鑲偵<篺b匀盰,8粅"F"j渿)D4Y/%膠:膣憵翘>$ia@L42'陁ǹu7惩!菈H=跜媈谈衙4訬顉a6"倌⺌u偲%轰I觓霛l籷錁◎⑿]荰鈱=ぴAZk韕跮5輸覰邎#_霅4屿 B癏!{#)PS Be攖(錕-NA&!弈+鳧6侶榚)負亃U]曊V]}諼e粘634 P OH+P冣插\r训垊鸭碀^淄.硛'8.dW )d榒啒3|l賒SK3饺8賤躴聝新瑌瀍Ｘ冨f潁朆`t;扈i侏辑啛~⺗a垃鈿篜SI=鲐SGl痴 '犹8雦)p1+軈鮤h猟BI_	憚t0"耺S!ぉ5籡=载垼7睧/殜y妗桞
莛$/苙冹红0藳}GXJX |0 `0髬*詔58惆覮+驹#吱t瓳Y>~鈭)t Y8闶.虳蛲4跮	#芳菼3霕K752s
靬閝<@撙 A0,訁逘胰34矼7O$迓W謈@h% hDx2*儗0袲萌48CH=.轑3柳,譟-%貳/ヰ林<糕
)a3萈邮7苍参4"銒/狧J━榥!9SH X皯%[,洬<睈屍涀2-O !+z$	R(BP*ò⑹,R'璍矅"q貋!|玪頺0 62aK 厫   岺)X翃绊獔DP@坔郻st酺!轥劶zQ9Hq   A圡鴲鮴翄邼p防_g眽EHO泥a饊.饎L,b欚&陣?諁蛯鯯*@饊0  鄀┣;ゐ ! 崁&!拼m們燻,P
T8r尀X	L
@粤eC苼3犫",	T凚D渔奙"慶 x
= , E蕗0BQ嗄"AKX寵D&H酛O! 214 6K噸 (# Q	Q*3 n` 堗vS,$P哻g!	E7I!
x  袄	n纼  2(8寑km 嶬!1b,!Y 垈/$!@値~B(om8@* 緻0J9C"葃IA蔃"爞e3|	0脆H6
r蠅Hd9嗔$x  1轕怈H@~a)婜丝諅`啷2 藭ⅨHB嘙詀f z@幓%憖H0lE餈G)X*曥Gr H敌lC
)P ⅱ;4 ;0707010000a386000081a40000000000000002000000013ac0388c000007e0000000200000000000000000000000000000001b00000003reloc/mount/images/ext.gif    GIF89a0 0      			


   !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~亖亗倐儍儎剟厖厗唵噰噲垐墘墛妸媼媽寣崓崕帋弿彁悙憫憭拻摀摂敂晻晼枛棗棙槝櫃櫄殮洓洔湝潩潪灋煙煚牋　、ⅱ＃￥いゥウΖЁЖè┅┆鞍北辈膊吵炒创档刀抖贩犯父构购汉换患技浇骄揪靠坷览亮谅侣妹媚哪排牌破乔侨热缮墒适怂颂烫屯臀挝舷闲行蜒岩乙佑釉栽照罩种鬃棕刎儋仝谮圹圮苘葺蒉揶哌哙噜後徕忖沣沅滗邋彐骀珑玷梃殚殛觋腚腱祆眄眍铑镲镳痧耨耱蝌篌篝趑貂貊鲻鼢鼬!Made with GIMP ,    0 0   	H盃羶*\劝∶#J淗裛綂"旓b茍蝬HX癅噹矉茅V+^x鄨襝J傰|輗瞚挞跺蕸5）b(3濦是擎蛕 阱+4)2E蹎1r鯪xx柌灋v湗肷",W/; NX鲬Z  籂` .g| 笐-[璮絥xx班心z祢匐瓔╭Zとv炀諞輵滸gFRC9:趪$-屼D*_硄刖璠緉鲮骢緐h諣l徺鎼鉊$2[$}:r虧;O;a6"倌u偲Rpc6^4r藖]=吮39虪B∷18c)u@  3卡B蚗訉3;痛釱=猡w^4覮硟 "呾q4ばd釋+47觢3'屲釱-4硯y鋢#P,奥Q詍#囧餗
d惲程馐,:凌紶A
)<c妧蔌T0矻 R衊*叴" 怐x2*儗0袲萌48CH=.轑3柳菜.獝d	[⺌鬜R
斏+異拨00銒!琉5瓅#K-隠脫O绝
'<x  -軔[>銵!, `AI杽
こ湭
2h,騆3腁扴0 瀂,<亜銴)籡$	R(B燡&獱聤*嘲敪L矅"q靈/蘰uj毆!@I靝0%T7  犚葴ぐ率毣 $q燖H4笢+惇"@ 遭#噇袺AsH袳 	!汿M矢i査/亡妓-<&婬1拣羾R餫ax爧 Od踩&橳綁銡
(繥3︷a 郰A跫#( @#恖覉辳n"3(倞+〝痉'榒+詀F%)4f爎,b	$▌台<+洂炝*z  \4Ta"A,!朮倃&恉BJ駷虘 [ 尤h貝_4Dm  e0I%箛焿'凘 Kme饊蕄寛鴤~<  X7鄟` i倱BF`6PR!瓢p纻;(鴤^@R $pI"蜂攘袉,唸	B4l#悥3<BD *Tu$蘩 Cv竴lr袢0r纼I餈 "h\肌
0 #悁怋Rd褄嫪30=d y?鼒G抪&B腶u貍垁悆廻h;f@<&倗臝圁(拑8 @ㄅ*-B矵&渆C薧椑0 ;0707010000a387000081a40000000000000002000000013ac0388c000007e0000000200000000000000000000000000000001c00000003reloc/mount/images/ext2.gif   GIF89a0 0      			


   !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~亖亗倐儍儎剟厖厗唵噰噲垐墘墛妸媼媽寣崓崕帋弿彁悙憫憭拻摀摂敂晻晼枛棗棙槝櫃櫄殮洓洔湝潩潪灋煙煚牋　、ⅱ＃￥いゥウΖЁЖè┅┆鞍北辈膊吵炒创档刀抖贩犯父构购汉换患技浇骄揪靠坷览亮谅侣妹媚哪排牌破乔侨热缮墒适怂颂烫屯臀挝舷闲行蜒岩乙佑釉栽照罩种鬃棕刎儋仝谮圹圮苘葺蒉揶哌哙噜後徕忖沣沅滗邋彐骀珑玷梃殚殛觋腚腱祆眄眍铑镲镳痧耨耱蝌篌篝趑貂貊鲻鼢鼬!Made with GIMP ,    0 0   	H盃羶*\劝∶#J淗裛綂"旓b茍蝬HX癅噹矉茅V+^x鄨襝J傰|輗瞚挞跺蕸5）b(3濦是擎蛕 阱+4)2E蹎1r鯪xx柌灋v湗肷",W/; NX鲬Z  籂` .g| 笐-[璮絥xx班心z祢匐瓔╭Zとv炀諞輵滸gFRC9:趪$-屼D*_硄刖璠緉鲮骢緐h諣l徺鎼鉊$2[$}:r虧;O;a6"倌u偲Rpc6^4r藖]=吮39虪B∷18c)u@  3卡B蚗訉3;痛釱=猡w^4覮硟 "呾q4ばd釋+47觢3'屲釱-4硯y鋢#P,奥Q詍#囧餗
d惲程馐,:凌紶A
)<c妧蔌T0矻 R衊*叴" 怐x2*儗0袲萌48CH=.轑3柳菜.獝d	[⺌鬜R
斏+異拨00銒!琉5瓅#K-隠脫O绝
'<x  -軔[>銵!, `AI杽
こ湭
2h,騆3腁扴0 瀂,<亜銴)籡$	R(B燡&獱聤*嘲敪L矅"q靈/蘰uj毆!@I靝0%T7  犚葴ぐ率毣 $q燖H4笢+惇"@ 遭#噇袺AsH袳 	!汿M矢i査/亡妓-<&婬1拣羾R餫ax爧 Od踩&橳綁銡
(繥3︷a 郰A跫#( @#恖覉辳n"3(倞+〝痉'榒+詀F%)4f爎,b	$▌台<+洂炝*z  \4Ta"A,!朮倃&恉BJ駷虘 [ 尤h貝_4Dm  e0I%箛焿'凘 Kme饊蕄寛鴤~<  X7鄟` i倱BF`6PR!瓢p纻;(鴤^@R $pI"蜂攘袉,唸	B4l#悥3<BD *Tu$蘩 Cv竴lr袢0r纼I餈 "h\肌
0 #悁怋Rd褄嫪30=d y?鼒G抪&B腶u貍垁悆廻h;f@<&倗臝圁(拑8 @ㄅ*-B矵&渆C薧椑0 ;0707010000a388000081a40000000000000002000000013ac0388c000008f3000000200000000000000000000000000000001b00000003reloc/mount/images/fat.gif    GIF89a0 0   貂汉簞剟挝<<<祆靟qq湝湹档技揪痉贩热扔佑烫萄蜒腚朕揶[[[哌擢|||妸   换涣亮RRR櫃欅圹乔卿滗鲻'''舷蟴zz;;;鞍癘OO"""媼嬧忖镲栽詍mm]]](((LLLxxx777儋偻屯浇絿噰ⅱ€沣---)))YYY```葺IIIいssDDD＃444è╚^^晻晆uu靠:::厖厈{{乙耶憫憣寣+++倐999吵砲hh崓崷Ζ灋灺侣　dd唵啿膊SSS枛枲ⅳ悙怘HHFFF拻扻XX父怂藂rs捶篺ff敂旛谙羰氮珑鐩洓../壬赡哪aaa颔懽鬃VVV|~傊鬃___牋狌nP猩糲fi&''!!!	送S増墛988+     CDDeeeQQQ蹗|隬13 -???###揪粠摌a8.f3R&骜狺线鞆弿)+. (gccc後嵩卩亠酏112灜浻误qpn杗蜮桀fш


妹脫摀接猱咒)趋墮獳KT 3b!
兮旖邙嵉堋瓦my*堚 A僄9  ⑹茶8=C 000犷壙0,*I嵾\羣] 瀿壛
W\bg MNO 蝌!Made with GIMP ,    0 0   H盃羶*\劝∶#J淗裛
 郻茍
8p A値*X罓亙$鄨襝J D @@倓	*X竴!蕸5+h燖(濦'@ 傲嫱 : 崦!BT!!%L$82 *V槝愧E.紑燘L葊駋j馗q  0t取CG<r$Hq犌 
 旇X	2勅
2樰Q丟F蜙9築#@帉d缼2XXna鲮2h諣l:拹`犇垇%L汘x!]虧;O;%:`剉b馍&Y扖剤3 r藖] )	@B(!RPSPAEU 0Vh0肵;8 A 0^L Xd1UKA炖E0]D A靈亂$\ #P嗯Q詨饏噥慉T4袲a劚E:義垇c淍唨DaL蠥 <aX8`@恉F
[!T信[0@ i! L@鄟恡	[$5餚RE擸[ &P l d繤L罁O@$ @鋹 $!CIn湭b捡牧懹 炡@G鋴籡4 pPF槨A@Qa詀軕ypuj鑱@IG琾9牋@1茰H訯菤H繥鴳湭恓@4pA=`繡AIPf   T嵞竔| !1H3銰l DG!	@! HU諿仪! "x(搀~紤"dl醂A #6摹p 2F遱轡G#|8虑"廆褹$抰0	%圲"	$y敜qEe礼p@憜uX呧H<b%嗕両&慏⑸&渢	b|C犇QH劼c嗥 檮唋-鼠｀1'&*攤X"奌mL稴P犺?ぢ仒#Q坆昉咡羟塕瑐 $"eH@T
W鋩q儀EaG8毙D'蘠兀鬫"=犈j[尖溉C.`]の撹*.绷M圓靆CH 唌&窫x_L靝xD&r媉l皣?"+褋 :燩爌V 0\憗A唷娜呿&褖Nl ,dw-
`(1
 ^疴茾F21坋凘揱F3f撵"徬 "%d@04aHc蒆51	k\銠罔@6囱丷l儀圙屝?鴣o守0!nHC曡3熼mx胯b>!憢p咚堂#1宲#8票Nrt飫'b麳鑑毨C峚怐2仲O#″$F腊?劆E"4!t悆譎:矐PoPs袢lF 2黙!鐯"rH1隊B啭Hf#@	I#呢b貞崗f隌JA2皥叉奨G$銐l埃o隑卺,"F恔CP罜5貑疵 霡 ; 0707010000a389000081a40000000000000002000000013ac0388c000007e0000000200000000000000000000000000000001c00000003reloc/mount/images/hpfs.gif   GIF89a0 0      			


   !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~亖亗倐儍儎剟厖厗唵噰噲垐墘墛妸媼媽寣崓崕帋弿彁悙憫憭拻摀摂敂晻晼枛棗棙槝櫃櫄殮洓洔湝潩潪灋煙煚牋　、ⅱ＃￥いゥウΖЁЖè┅┆鞍北辈膊吵炒创档刀抖贩犯父构购汉换患技浇骄揪靠坷览亮谅侣妹媚哪排牌破乔侨热缮墒适怂颂烫屯臀挝舷闲行蜒岩乙佑釉栽照罩种鬃棕刎儋仝谮圹圮苘葺蒉揶哌哙噜後徕忖沣沅滗邋彐骀珑玷梃殚殛觋腚腱祆眄眍铑镲镳痧耨耱蝌篌篝趑貂貊鲻鼢鼬!Made with GIMP ,    0 0   	H盃羶*\劝∶#J淗裛綂"旓b茍蝬HX癅噹矉茅V+^x鄨襝J傰|輗瞚挞跺蕸5）b(3濦是擎蛕 阱+4)2E蹎1r鯪xx柌灋v湗肷",W/; NX鲬Z  籂` .g| 笐-[璮絥xx班心z祢匐瓔╭Zとv炀諞輵滸gFRC9:趪$-屼D*_硄刖璠緉鲮骢緐h諣l徺鎼鉊$2[$}:r虧;O;a6"倌u偲Rpc6^4r藖]=吮39虪B∷18c)u@  3卡B蚗訉3;痛釱=猡w^4覮硟 "呾q4ばd釋+47觢3'屲釱-4硯y鋢#P,奥Q詍#囧餗
d惲程馐,:凌紶A
)<c妧蔌T0矻 R衊*叴" 怐x2*儗0袲萌48CH=.轑3柳菜.獝d	[⺌鬜R
斏+異拨00銒!琉5瓅#K-隠脫O绝
'<x  -軔[>銵!, `AI杽
こ湭
2h,騆3腁扴0 瀂,<亜銴)籡$	R(B燡&獱聤*嘲敪L矅"q靈/蘰uj毆!@I靝0%T7  犚葴ぐ率毣 $q燖H4笢+惇"@ 遭#噇袺AsH袳 	!汿M矢i査/亡妓-<&婬1拣羾R餫ax爧 Od踩&橳綁銡
(繥3︷a 郰A跫#( @#恖覉辳n"3(倞+〝痉'榒+詀F%)4f爎,b	$▌台<+洂炝*z  \4Ta"A,!朮倃&恉BJ駷虘 [ 尤h貝_4Dm  e0I%箛焿'凘 Kme饊蕄寛鴤~<  X7鄟` i倱BF`6PR!瓢p纻;(鴤^@R $pI"蜂攘袉,唸	B4l#悥3<BD *Tu$蘩 Cv竴lr袢0r纼I餈 "h\肌
0 #悁怋Rd褄嫪30=d y?鼒G抪&B腶u貍垁悆廻h;f@<&倗臝圁(拑8 @ㄅ*-B矵&渆C薧椑0 ;0707010000a38a000081a40000000000000002000000013ac0388c00000637000000200000000000000000000000000000001c00000003reloc/mount/images/hsfs.gif   GIF89a0 0   竞稼拊铗煳翁觋燹以孓漩种云颇鲵糁姨蝾焘驿挹茆捃骀湟姨谠问搪履蝣絷铎适舔蜢椅剔衷衷势啮鲷鲱戽谲忖荜驿揪霓掬驸潸谝灶铎庵茭鲷揶茴螋挝灶觎鳅周破讨以蝾翕谲廪滏骒乙轧谮芷履蝌粢卧拗苴周势迢鳇鲱翩阡忖潢骒戮年怃铑!Made with GIMP ,    0 0  䜣9們剠唶垑妺9'H7E<'寴嚄)//ED灃櫃7牤/)/)棭'<<H<)H鲁∨/怐H簡<<瓾茸)DA9'久旅H鼙)%<杭0右影!{P+"r1Br 缫儠孾瞾騚艌C|0倈'-,vu裼嬾=|鋅惔澦x 妱H絔溹ta6kWo睵X		蘒0P0N5"℅ Z懧崽鷡%" @H.^xt(驉)d┉kG`2>亰梺'f2&+丁 孈vZ东罢!伬UAxZ镺 4L R罤
,~&绅$测d 0(l貑%$実铙甏8f湎O÷縔&詀鞚`肏篴穂0v嚸0C;鏴鬡
鮬燖"1iC4C蝷 H8q`x迉C H
`7扝
惼 4监犂8 0!$桊蕦蛠r8Ea
`'>-聾;霨 .嘈	8攆O
蚵
d9ぱ`趌;魫	e
聝i袰
攈v:rq養W喨脇g蚏~鉅=tj鼊^<彉)Ij;輍b勔	9 	% 懆凸$尌cMO禒06狝 濚郃2樠UfJP繱Y*鹆S<6J
T鄃		<r攑
聛B餻e栫ty)丄澲Z	?癈 %蜍繨lRDd誝'z    	$  l
/D(绰禬F鷭羘&CD":2lD蛎緶柫稓;S罺D肹-咅0梦9-滵萆
_%	l7攼Xt1n0凙R磈d{2痴払昏	%禓缞-sK	詗"	 -鯱f'嗊-髁 斎:衦釄䦛耭GRu'4镑")L v-曠-7鏄g靖-D"8塚远xn$峽9 〞C蠤电~$
3?A〩纼6~q況蚯3?'幥隸8'垁	q洜	7榖蚱飵籍K?韭癘DD  	8q腵E#满n> 蚕:抖繠H:`6p@4 舡儐 摍8 取"0喓(	.<駡 ; 0707010000a38b000081a40000000000000002000000013ac0388c00000159000000200000000000000000000000000000001c00000003reloc/mount/images/icon.gif   GIF89a0 0   櫃櫶烫   烫fff      !    ,    0 0  很0継珪8/*&:羐偭諌ΛX
V]啽6&渃-鲹蘬5Z(D-崸佀$R壁谽7瞍) Sd÷嗣i迒`#瑍锨v篐[whe}唦E剣妺 媦峿廗z 敃{?{殔渮濽洠Yb
В瑴甂皶睧磵#牳帀O檘.
撀&H儀':<T哉誁t!虅强7H詉Bo葜铈V_J镱Y髦颔耼剙瞚檯	A喯j楶貲U9	(#E艅4"o(?攍P牓藯0c蕼# ;   0707010000a38c000081a40000000000000002000000013ac0388c00000637000000200000000000000000000000000000001f00000003reloc/mount/images/iso9660.gif    GIF89a0 0   竞稼拊铗煳翁觋燹以孓漩种云颇鲵糁姨蝾焘驿挹茆捃骀湟姨谠问搪履蝣絷铎适舔蜢椅剔衷衷势啮鲷鲱戽谲忖荜驿揪霓掬驸潸谝灶铎庵茭鲷揶茴螋挝灶觎鳅周破讨以蝾翕谲廪滏骒乙轧谮芷履蝌粢卧拗苴周势迢鳇鲱翩阡忖潢骒戮年怃铑!Made with GIMP ,    0 0  䜣9們剠唶垑妺9'H7E<'寴嚄)//ED灃櫃7牤/)/)棭'<<H<)H鲁∨/怐H簡<<瓾茸)DA9'久旅H鼙)%<杭0右影!{P+"r1Br 缫儠孾瞾騚艌C|0倈'-,vu裼嬾=|鋅惔澦x 妱H絔溹ta6kWo睵X		蘒0P0N5"℅ Z懧崽鷡%" @H.^xt(驉)d┉kG`2>亰梺'f2&+丁 孈vZ东罢!伬UAxZ镺 4L R罤
,~&绅$测d 0(l貑%$実铙甏8f湎O÷縔&詀鞚`肏篴穂0v嚸0C;鏴鬡
鮬燖"1iC4C蝷 H8q`x迉C H
`7扝
惼 4监犂8 0!$桊蕦蛠r8Ea
`'>-聾;霨 .嘈	8攆O
蚵
d9ぱ`趌;魫	e
聝i袰
攈v:rq養W喨脇g蚏~鉅=tj鼊^<彉)Ij;輍b勔	9 	% 懆凸$尌cMO禒06狝 濚郃2樠UfJP繱Y*鹆S<6J
T鄃		<r攑
聛B餻e栫ty)丄澲Z	?癈 %蜍繨lRDd誝'z    	$  l
/D(绰禬F鷭羘&CD":2lD蛎緶柫稓;S罺D肹-咅0梦9-滵萆
_%	l7攼Xt1n0凙R磈d{2痴払昏	%禓缞-sK	詗"	 -鯱f'嗊-髁 斎:衦釄䦛耭GRu'4镑")L v-曠-7鏄g靖-D"8塚远xn$峽9 〞C蠤电~$
3?A〩纼6~q況蚯3?'幥隸8'垁	q洜	7榖蚱飵籍K?韭癘DD  	8q腵E#满n> 蚕:抖繠H:`6p@4 舡儐 摍8 取"0喓(	.<駡 ; 0707010000a38d000081a40000000000000002000000013ac0388c000004c3000000200000000000000000000000000000001c00000003reloc/mount/images/lofs.gif   GIF87a0 0      痧父竴热888梃鑠pp槝槹鞍èㄐ行刎豖XXxxx垐埨览PPP噜   HHHhhh(((000牋燻``@@@悙                                                                                             ,    0 0  兀pH,徣	8烶	璟D乣J絲Ｚ-阻%喿皒,	拦鑄嚽n⑨H$
rFvkRyB
q俿jVKQC侭[ZU卍O潬灎 sYPZI
簢G	mC籜HQN8酄缽6 蘖c呭 :\P癮,5牐s"見 d燨 \祋c菐  2т2^h!C
尠`ν8mB 殇鐕V0pH @" )颧j^竊鄟4Uc^u椰 嗔# 琞袞 砳/ 唒 濷O&C癆o	爕3`lhwz"l全F 帬亐( r)
篬Z郟	 ~X羿A Pxe犂 嗄8w狜蘍t蜐鳶9飦8 锓@	t癅V'b4p@WN0讍@忠 $S潀 爜p╱ &讜w7跄TOH`x鄡5釦00宊2鈦t4婺:O败- 琅Whm伬訰:駠@┣X NP@2/y蹞O搛鄪$zE怾Mp)@@ x)妝$婑厓_x`Az-犲=P `氢1"嫨a_x嗔q鵷A< (
逰褫樝d M 蹑Z 萈@A 4楲荚罀 l懒[>蓐L_*l0鶰╚Tp郆敕A 礩邋ZqTg(U瑕+xP捆8P!A$悂)䴙k:悁p
叆綢 连宛tF磒悑|Pot鸆@l餉寯	%/4G Bc繞涫A:膬s蒅t狉q噫蒐詥楸}@:J踆v縢s凘l]槶弟Bj>w縶髛 梱97U萄Qx;8缡}诬t~刨0涡eX7鎩k%瀲.z ; 0707010000a38f000081a40000000000000002000000013ac0388c000007e0000000200000000000000000000000000000001d00000003reloc/mount/images/minix.gif  GIF89a0 0      			


   !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~亖亗倐儍儎剟厖厗唵噰噲垐墘墛妸媼媽寣崓崕帋弿彁悙憫憭拻摀摂敂晻晼枛棗棙槝櫃櫄殮洓洔湝潩潪灋煙煚牋　、ⅱ＃￥いゥウΖЁЖè┅┆鞍北辈膊吵炒创档刀抖贩犯父构购汉换患技浇骄揪靠坷览亮谅侣妹媚哪排牌破乔侨热缮墒适怂颂烫屯臀挝舷闲行蜒岩乙佑釉栽照罩种鬃棕刎儋仝谮圹圮苘葺蒉揶哌哙噜後徕忖沣沅滗邋彐骀珑玷梃殚殛觋腚腱祆眄眍铑镲镳痧耨耱蝌篌篝趑貂貊鲻鼢鼬!Made with GIMP ,    0 0   	H盃羶*\劝∶#J淗裛綂"旓b茍蝬HX癅噹矉茅V+^x鄨襝J傰|輗瞚挞跺蕸5）b(3濦是擎蛕 阱+4)2E蹎1r鯪xx柌灋v湗肷",W/; NX鲬Z  籂` .g| 笐-[璮絥xx班心z祢匐瓔╭Zとv炀諞輵滸gFRC9:趪$-屼D*_硄刖璠緉鲮骢緐h諣l徺鎼鉊$2[$}:r虧;O;a6"倌u偲Rpc6^4r藖]=吮39虪B∷18c)u@  3卡B蚗訉3;痛釱=猡w^4覮硟 "呾q4ばd釋+47觢3'屲釱-4硯y鋢#P,奥Q詍#囧餗
d惲程馐,:凌紶A
)<c妧蔌T0矻 R衊*叴" 怐x2*儗0袲萌48CH=.轑3柳菜.獝d	[⺌鬜R
斏+異拨00銒!琉5瓅#K-隠脫O绝
'<x  -軔[>銵!, `AI杽
こ湭
2h,騆3腁扴0 瀂,<亜銴)籡$	R(B燡&獱聤*嘲敪L矅"q靈/蘰uj毆!@I靝0%T7  犚葴ぐ率毣 $q燖H4笢+惇"@ 遭#噇袺AsH袳 	!汿M矢i査/亡妓-<&婬1拣羾R餫ax爧 Od踩&橳綁銡
(繥3︷a 郰A跫#( @#恖覉辳n"3(倞+〝痉'榒+詀F%)4f爎,b	$▌台<+洂炝*z  \4Ta"A,!朮倃&恉BJ駷虘 [ 尤h貝_4Dm  e0I%箛焿'凘 Kme饊蕄寛鴤~<  X7鄟` i倱BF`6PR!瓢p纻;(鴤^@R $pI"蜂攘袉,唸	B4l#悥3<BD *Tu$蘩 Cv竴lr袢0r纼I餈 "h\肌
0 #悁怋Rd褄嫪30=d y?鼒G抪&B腶u貍垁悆廻h;f@<&倗臝圁(拑8 @ㄅ*-B矵&渆C薧椑0 ;0707010000a390000081a40000000000000002000000013ac0388c000008f3000000200000000000000000000000000000001d00000003reloc/mount/images/msdos.gif  GIF89a0 0   貂汉簞剟挝<<<祆靟qq湝湹档技揪痉贩热扔佑烫萄蜒腚朕揶[[[哌擢|||妸   换涣亮RRR櫃欅圹乔卿滗鲻'''舷蟴zz;;;鞍癘OO"""媼嬧忖镲栽詍mm]]](((LLLxxx777儋偻屯浇絿噰ⅱ€沣---)))YYY```葺IIIいssDDD＃444è╚^^晻晆uu靠:::厖厈{{乙耶憫憣寣+++倐999吵砲hh崓崷Ζ灋灺侣　dd唵啿膊SSS枛枲ⅳ悙怘HHFFF拻扻XX父怂藂rs捶篺ff敂旛谙羰氮珑鐩洓../壬赡哪aaa颔懽鬃VVV|~傊鬃___牋狌nP猩糲fi&''!!!	送S増墛988+     CDDeeeQQQ蹗|隬13 -???###揪粠摌a8.f3R&骜狺线鞆弿)+. (gccc後嵩卩亠酏112灜浻误qpn杗蜮桀fш


妹脫摀接猱咒)趋墮獳KT 3b!
兮旖邙嵉堋瓦my*堚 A僄9  ⑹茶8=C 000犷壙0,*I嵾\羣] 瀿壛
W\bg MNO 蝌!Made with GIMP ,    0 0   H盃羶*\劝∶#J淗裛
 郻茍
8p A値*X罓亙$鄨襝J D @@倓	*X竴!蕸5+h燖(濦'@ 傲嫱 : 崦!BT!!%L$82 *V槝愧E.紑燘L葊駋j馗q  0t取CG<r$Hq犌 
 旇X	2勅
2樰Q丟F蜙9築#@帉d缼2XXna鲮2h諣l:拹`犇垇%L汘x!]虧;O;%:`剉b馍&Y扖剤3 r藖] )	@B(!RPSPAEU 0Vh0肵;8 A 0^L Xd1UKA炖E0]D A靈亂$\ #P嗯Q詨饏噥慉T4袲a劚E:義垇c淍唨DaL蠥 <aX8`@恉F
[!T信[0@ i! L@鄟恡	[$5餚RE擸[ &P l d繤L罁O@$ @鋹 $!CIn湭b捡牧懹 炡@G鋴籡4 pPF槨A@Qa詀軕ypuj鑱@IG琾9牋@1茰H訯菤H繥鴳湭恓@4pA=`繡AIPf   T嵞竔| !1H3銰l DG!	@! HU諿仪! "x(搀~紤"dl醂A #6摹p 2F遱轡G#|8虑"廆褹$抰0	%圲"	$y敜qEe礼p@憜uX呧H<b%嗕両&慏⑸&渢	b|C犇QH劼c嗥 檮唋-鼠｀1'&*攤X"奌mL稴P犺?ぢ仒#Q坆昉咡羟塕瑐 $"eH@T
W鋩q儀EaG8毙D'蘠兀鬫"=犈j[尖溉C.`]の撹*.绷M圓靆CH 唌&窫x_L靝xD&r媉l皣?"+褋 :燩爌V 0\憗A唷娜呿&褖Nl ,dw-
`(1
 ^疴茾F21坋凘揱F3f撵"徬 "%d@04aHc蒆51	k\銠罔@6囱丷l儀圙屝?鴣o守0!nHC曡3熼mx胯b>!憢p咚堂#1宲#8票Nrt飫'b麳鑑毨C峚怐2仲O#″$F腊?劆E"4!t悆譎:矐PoPs袢lF 2黙!鐯"rH1隊B啭Hf#@	I#呢b貞崗f隌JA2皥叉奨G$銐l埃o隑卺,"F恔CP罜5貑疵 霡 ; 0707010000a391000081a40000000000000002000000013ac0388c0000061d000000200000000000000000000000000000001b00000003reloc/mount/images/nfs.gif    GIF89a0 0      			


   !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~亖亗倐儍儎剟厖厗唵噰噲垐墘墛妸媼媽寣崓崕帋弿彁悙憫憭拻摀摂敂晻晼枛棗棙槝櫃櫄殮洓洔湝潩潪灋煙煚牋　、ⅱ＃￥いゥウΖЁЖè┅┆鞍北辈膊吵炒创档刀抖贩犯父构购汉换患技浇骄揪靠坷览亮谅侣妹媚哪排牌破乔侨热缮墒适怂颂烫屯臀挝舷闲行蜒岩乙佑釉栽照罩种鬃棕刎儋仝谮圹圮苘葺蒉揶哌哙噜後徕忖沣沅滗邋彐骀珑玷梃殚殛觋腚腱祆眄眍铑镲镳痧耨耱蝌篌篝趑貂貊鲻鼢鼬!Made with GIMP ,    0 0   	H盃羶*\劝∶#J淗裛綂晔w1鉊g疣b絒螠!m澐oK"琖/*f訕ツ閶OG<豵b趽諀	q@	<簻m-[璣7<,8擼>{5E嶓"8炀唁h6煶宺/f浢増-m濁u4i瓽峛Wq霧潬慉@
7恶⒍m躡孽#翘E):
6,蝄5婦x853L污磇侔 	mr|K!矛Y畖輮R檍謒6f力燖8肂$ X班亐Y猏!嵮4g勱櫼Z3f眷
{' 9SH `I&è2. 兤3蚿I=0笏.堤F` )9$	奝@
+嘲'唗.	 猟DRt 恖鈊勏砺/?蘼
+甽矆e酿羾|D凟鹉"沝騞嵁<&+1偛 蜆聡H魩_ @搷8I&瑎B+	*灅`
 u!FH!A4B%iB	v炋忍丗
6|M?H10I%媥	!7@+唣Qe#9c2F8b"  / AD
HD%PR酪	"1+	繝迸e^4转旳囗線)l3恲態!<Pe {TG蹳&懥鋁fHa認蘌 HP嬈	橻1蛏1ｒ,缝蛩0超P&4譴笸8绗sT绦l
鯗上@#$4袳$t澎词8?泶蜹Wm跽X雔F諹涐踝`-蹲=鲑b'趌讽鯜 ;   0707010000a392000081a40000000000000002000000013ac0388c000008f3000000200000000000000000000000000000001c00000003reloc/mount/images/pcfs.gif   GIF89a0 0   貂汉簞剟挝<<<祆靟qq湝湹档技揪痉贩热扔佑烫萄蜒腚朕揶[[[哌擢|||妸   换涣亮RRR櫃欅圹乔卿滗鲻'''舷蟴zz;;;鞍癘OO"""媼嬧忖镲栽詍mm]]](((LLLxxx777儋偻屯浇絿噰ⅱ€沣---)))YYY```葺IIIいssDDD＃444è╚^^晻晆uu靠:::厖厈{{乙耶憫憣寣+++倐999吵砲hh崓崷Ζ灋灺侣　dd唵啿膊SSS枛枲ⅳ悙怘HHFFF拻扻XX父怂藂rs捶篺ff敂旛谙羰氮珑鐩洓../壬赡哪aaa颔懽鬃VVV|~傊鬃___牋狌nP猩糲fi&''!!!	送S増墛988+     CDDeeeQQQ蹗|隬13 -???###揪粠摌a8.f3R&骜狺线鞆弿)+. (gccc後嵩卩亠酏112灜浻误qpn杗蜮桀fш


妹脫摀接猱咒)趋墮獳KT 3b!
兮旖邙嵉堋瓦my*堚 A僄9  ⑹茶8=C 000犷壙0,*I嵾\羣] 瀿壛
W\bg MNO 蝌!Made with GIMP ,    0 0   H盃羶*\劝∶#J淗裛
 郻茍
8p A値*X罓亙$鄨襝J D @@倓	*X竴!蕸5+h燖(濦'@ 傲嫱 : 崦!BT!!%L$82 *V槝愧E.紑燘L葊駋j馗q  0t取CG<r$Hq犌 
 旇X	2勅
2樰Q丟F蜙9築#@帉d缼2XXna鲮2h諣l:拹`犇垇%L汘x!]虧;O;%:`剉b馍&Y扖剤3 r藖] )	@B(!RPSPAEU 0Vh0肵;8 A 0^L Xd1UKA炖E0]D A靈亂$\ #P嗯Q詨饏噥慉T4袲a劚E:義垇c淍唨DaL蠥 <aX8`@恉F
[!T信[0@ i! L@鄟恡	[$5餚RE擸[ &P l d繤L罁O@$ @鋹 $!CIn湭b捡牧懹 炡@G鋴籡4 pPF槨A@Qa詀軕ypuj鑱@IG琾9牋@1茰H訯菤H繥鴳湭恓@4pA=`繡AIPf   T嵞竔| !1H3銰l DG!	@! HU諿仪! "x(搀~紤"dl醂A #6摹p 2F遱轡G#|8虑"廆褹$抰0	%圲"	$y敜qEe礼p@憜uX呧H<b%嗕両&慏⑸&渢	b|C犇QH劼c嗥 檮唋-鼠｀1'&*攤X"奌mL稴P犺?ぢ仒#Q坆昉咡羟塕瑐 $"eH@T
W鋩q儀EaG8毙D'蘠兀鬫"=犈j[尖溉C.`]の撹*.绷M圓靆CH 唌&窫x_L靝xD&r媉l皣?"+褋 :燩爌V 0\憗A唷娜呿&褖Nl ,dw-
`(1
 ^疴茾F21坋凘揱F3f撵"徬 "%d@04aHc蒆51	k\銠罔@6囱丷l儀圙屝?鴣o守0!nHC曡3熼mx胯b>!憢p咚堂#1宲#8票Nrt飫'b麳鑑毨C峚怐2仲O#″$F腊?劆E"4!t悆譎:矐PoPs袢lF 2黙!鐯"rH1隊B啭Hf#@	I#呢b貞崗f隌JA2皥叉奨G$銐l埃o隑卺,"F恔CP罜5貑疵 霡 ; 0707010000a393000081a40000000000000002000000013ac0388c000007e0000000200000000000000000000000000000002000000003reloc/mount/images/reiserfs.gif   GIF89a0 0      			


   !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~亖亗倐儍儎剟厖厗唵噰噲垐墘墛妸媼媽寣崓崕帋弿彁悙憫憭拻摀摂敂晻晼枛棗棙槝櫃櫄殮洓洔湝潩潪灋煙煚牋　、ⅱ＃￥いゥウΖЁЖè┅┆鞍北辈膊吵炒创档刀抖贩犯父构购汉换患技浇骄揪靠坷览亮谅侣妹媚哪排牌破乔侨热缮墒适怂颂烫屯臀挝舷闲行蜒岩乙佑釉栽照罩种鬃棕刎儋仝谮圹圮苘葺蒉揶哌哙噜後徕忖沣沅滗邋彐骀珑玷梃殚殛觋腚腱祆眄眍铑镲镳痧耨耱蝌篌篝趑貂貊鲻鼢鼬!Made with GIMP ,    0 0   	H盃羶*\劝∶#J淗裛綂"旓b茍蝬HX癅噹矉茅V+^x鄨襝J傰|輗瞚挞跺蕸5）b(3濦是擎蛕 阱+4)2E蹎1r鯪xx柌灋v湗肷",W/; NX鲬Z  籂` .g| 笐-[璮絥xx班心z祢匐瓔╭Zとv炀諞輵滸gFRC9:趪$-屼D*_硄刖璠緉鲮骢緐h諣l徺鎼鉊$2[$}:r虧;O;a6"倌u偲Rpc6^4r藖]=吮39虪B∷18c)u@  3卡B蚗訉3;痛釱=猡w^4覮硟 "呾q4ばd釋+47觢3'屲釱-4硯y鋢#P,奥Q詍#囧餗
d惲程馐,:凌紶A
)<c妧蔌T0矻 R衊*叴" 怐x2*儗0袲萌48CH=.轑3柳菜.獝d	[⺌鬜R
斏+異拨00銒!琉5瓅#K-隠脫O绝
'<x  -軔[>銵!, `AI杽
こ湭
2h,騆3腁扴0 瀂,<亜銴)籡$	R(B燡&獱聤*嘲敪L矅"q靈/蘰uj毆!@I靝0%T7  犚葴ぐ率毣 $q燖H4笢+惇"@ 遭#噇袺AsH袳 	!汿M矢i査/亡妓-<&婬1拣羾R餫ax爧 Od踩&橳綁銡
(繥3︷a 郰A跫#( @#恖覉辳n"3(倞+〝痉'榒+詀F%)4f爎,b	$▌台<+洂炝*z  \4Ta"A,!朮倃&恉BJ駷虘 [ 尤h貝_4Dm  e0I%箛焿'凘 Kme饊蕄寛鴤~<  X7鄟` i倱BF`6PR!瓢p纻;(鴤^@R $pI"蜂攘袉,唸	B4l#悥3<BD *Tu$蘩 Cv竴lr袢0r纼I餈 "h\肌
0 #悁怋Rd褄嫪30=d y?鼒G抪&B腶u貍垁悆廻h;f@<&倗臝圁(拑8 @ㄅ*-B矵&渆C薧椑0 ;0707010000a394000081a40000000000000002000000013ac0388c0000076a000000200000000000000000000000000000001d00000003reloc/mount/images/rumba.gif  GIF89a0 0   桙倐F寠落*"ⅱBD忖銪6j
坡糱bd盛室6&緰柖蘲^Z,财訰RT饴磰jd拻2f铗"6&*,j>4rrt.
B$N2$谮苈周.适奈JZd

灝糐JL觋礻奷尬暮杭妸Z湚萝>><jjl众
2Tn红参鞖殰z*6D.*,f挻藓雌>""$钼芤以灳$b4韭亩n\:v洞zz|挝蘘Z\抰晡&Z224&氺&幝忐BFD骀::<破腷fd6RVT殥岞鲷*.,J>揶芫陟﨎问舔疁NNL鰩t枎^>\V&&$f4缕264瀪V,趓\r灱搭菠2>知>~$.填巪庵砸毱2l奁紗唲Ζぢ枛攙vt铑炀炯帋宯nl灋溨衷f4~~|^^\&RZ\蛭^z^6
嫖腞>汓2j..,
事嘉以蝌舨泊**,&"$侣暮洞FFD>:<ffdVVT664娐
轮涫侍>>D骀$NNT!Made with GIMP ,    0 0   H盃羶*\劝aA5#J淗雹艐j苋q?$h娙SRY湐M俆c
2Iㄌh鍴揬觙0O欯瓿9b$暷&5T2牕鏔9帞歎 燖臚/90&a&揦剳＇J(;e}T3C 暉踕鬌1s^nj"S3 蕭uY崸儍\玚Z[\p澯厤$<1唜9R劉A$渃鋵貳敁l姠	埼
$I-痢C皞碶䴗艔(皐瑾T)I%*m釹q缞^u~渢e 0X,W-I茑	萊纻&歕1z袙漢   @ \D%W!贺	 啬y承. 覟A呍.7翎WT馇,~D褖R蹳+帞G-W ±嗿馰	 l疑婦微", QC昿BB$@R夿鵘駙 衠&vR	丟扱+捘憟blqV!'Z雅e(2	&@湼d'8營*悅N2"⺌爎Ak$馪F濮.尅A'`"v1袶峱 嚚`	 2隈HD:h犌 苄AA
)恔G兇r Lxp
>T篖騹矻掋岃懥~p睧G,纮)%<	"榟笧碩/滩-八 Bw嘈 卑 氳涬"閽 . ".貟C绝B1Z P燡"p佟~ .揁6K( y紁q擯&鵑欯.2@'樿F(膦呆B@)懓A%囦禠uk@".&恿3L#`掃旺j\P/ &}惿0<l ,慟踉趍8Q0cp谣I~,蚅鶆)陜Q袸砪j2<CS紧T`忼蛲赤鯼(>犱噅[菌7Ｎ犷,刏F悭8瀷梊⑺飋眍住廝!T焊_]29陬!罖鑴:欂z秀%斄P :(BF衸沱 K}-,鰾0}嬗UCKA@嘓D 
D,C@-Et#犕灗8\祶)Rk镚?裶垇佲WEV袐撩X粨 ;  0707010000a395000081a40000000000000002000000013ac0388c0000076a000000200000000000000000000000000000001d00000003reloc/mount/images/smbfs.gif  GIF89a0 0   桙倐F寠落*"ⅱBD忖銪6j
坡糱bd盛室6&緰柖蘲^Z,财訰RT饴磰jd拻2f铗"6&*,j>4rrt.
B$N2$谮苈周.适奈JZd

灝糐JL觋礻奷尬暮杭妸Z湚萝>><jjl众
2Tn红参鞖殰z*6D.*,f挻藓雌>""$钼芤以灳$b4韭亩n\:v洞zz|挝蘘Z\抰晡&Z224&氺&幝忐BFD骀::<破腷fd6RVT殥岞鲷*.,J>揶芫陟﨎问舔疁NNL鰩t枎^>\V&&$f4缕264瀪V,趓\r灱搭菠2>知>~$.填巪庵砸毱2l奁紗唲Ζぢ枛攙vt铑炀炯帋宯nl灋溨衷f4~~|^^\&RZ\蛭^z^6
嫖腞>汓2j..,
事嘉以蝌舨泊**,&"$侣暮洞FFD>:<ffdVVT664娐
轮涫侍>>D骀$NNT!Made with GIMP ,    0 0   H盃羶*\劝aA5#J淗雹艐j苋q?$h娙SRY湐M俆c
2Iㄌh鍴揬觙0O欯瓿9b$暷&5T2牕鏔9帞歎 燖臚/90&a&揦剳＇J(;e}T3C 暉踕鬌1s^nj"S3 蕭uY崸儍\玚Z[\p澯厤$<1唜9R劉A$渃鋵貳敁l姠	埼
$I-痢C皞碶䴗艔(皐瑾T)I%*m釹q缞^u~渢e 0X,W-I茑	萊纻&歕1z袙漢   @ \D%W!贺	 啬y承. 覟A呍.7翎WT馇,~D褖R蹳+帞G-W ±嗿馰	 l疑婦微", QC昿BB$@R夿鵘駙 衠&vR	丟扱+捘憟blqV!'Z雅e(2	&@湼d'8營*悅N2"⺌爎Ak$馪F濮.尅A'`"v1袶峱 嚚`	 2隈HD:h犌 苄AA
)恔G兇r Lxp
>T篖騹矻掋岃懥~p睧G,纮)%<	"榟笧碩/滩-八 Bw嘈 卑 氳涬"閽 . ".貟C绝B1Z P燡"p佟~ .揁6K( y紁q擯&鵑欯.2@'樿F(膦呆B@)懓A%囦禠uk@".&恿3L#`掃旺j\P/ &}惿0<l ,慟踉趍8Q0cp谣I~,蚅鶆)陜Q袸砪j2<CS紧T`忼蛲赤鯼(>犱噅[菌7Ｎ犷,刏F悭8瀷梊⑺飋眍住廝!T焊_]29陬!罖鑴:欂z秀%斄P :(BF衸沱 K}-,鰾0}嬗UCKA@嘓D 
D,C@-Et#犕灗8\祶)Rk镚?裶垇佲WEV袐撩X粨 ;  0707010000a396000081a40000000000000002000000013ac0388c00000834000000200000000000000000000000000000001c00000003reloc/mount/images/star.gif   GIF89a0 0   貂汉簞剟挝<<<祆靟qq湝湹档技揪痉贩热扔佑烫萄蜒腚朕揶[[[哌擢|||妸   换涣亮RRR櫃欅圹乔卿滗鲻'''舷蟴zz;;;鞍癘OO"""媼嬧忖镲栽詍mm]]](((LLLxxx777儋偻屯浇絿噰ⅱ€沣---)))YYY```葺IIIいssDDD＃444è╚^^晻晆uu靠:::厖厈{{乙耶憫憣寣+++倐999吵砲hh崓崷Ζ灋灺侣　dd唵啿膊SSS枛枑悙HHHFFF拻扻XX父摀揻ff敂敍洓哪腶aa牋燺__&&&eeeccc\\\QQQ666???###GGG後妹000刎!Made with GIMP ,    0 0   H盃羶*\劝∶#J淗裛
 郻茍
8p A値*X罓亙$鄨襝J D @@倓	*X竴!蕸5+h燖(濦'@ 傲嫱 : 崦!BT!!%L$82 *V槝愧E.紑燘L葊駋j馗q  0t取CG<r$Hq犌 
 旇X	2勅
2樰Q丟F蜙9築#@帉d缼2XXna鲮2h諣l:拹`犇垇%L汘x!]虧;O;%:`剉b馍&Y扖剤3 r藖] )	@B(!RPSPAEU 0Vh0肵;8 A 0^L Xd1UKA炖E0]D A靈亂$\ #P嗯Q詨饏噥慉T4袲a劚E:義垇c淍唨DaL蠥 <aX8`@恉F
[!T信[0@ i! L@鄟恡	[$5餚RE擸[ &P l d繤L罁O@$ @鋹 $!CIn湭b紁慕懹 炡@ GG鋴籡$ pPF槨A@Aa蠶貞puj軄@IG琾09牋@1茰H蠥菤H0@u湭恓@4pA=`繡AIPf 鹌 yT嵞竔桘亡霢F/悷l癆 l`{$  -勷B!T潎銡k傲dlp醂A B6馈o1嗈s!3tP斁鳤Lq %)w@慍o监Pぁ佁P<y z fd駙(馈V4{鬬 0 n竵wo剙D駁$DH0Fb!}4D[!mBt駟箛C帬KmH 1倛@~HpA壤9(`幮乮a&P Dq D癭 ;貋A@` Q俻 8爠㩳 胻B0l 40h Vi"D b4$:P牋%61懊AI玷艆xD`(
 4n欣囵C !b 惉L"Hｕ 
az刪B蚋6 f b#渋 让0p%鄃$8侶Qv "#瀫>B6 h腃檭夃`q 悂&}"x eD腊 -s M唜d6# AL4p1%増";@圔t'D郰Gy6d潓寸=┫喰  ;0707010000a397000081a40000000000000002000000013ac0388c0000097b000000200000000000000000000000000000001c00000003reloc/mount/images/swap.gif   GIF89a0 0   烫＃ｘ圹踤nnOOOIIIBBBWWW耨駯枛抖度热妹猛屯舷仙缮鬃走哌儋佘苘骀鎲唵梃枥览灋灗èAAA蜒褈~~吵充滗照贞觋鵡^^潩滿MMmmm哪膢||ZZZ┅趑QQQ噜鄴拻噰嘷__yyy殮歩ii忖猝Ё汉篵bb儍儔墘wwwFFF换粯槝tttLLLTTTggg靠繄垐鞍靶行lllゥポ葺甡``ⅱ⑶乔悙惇揪綝DD父腹构崓崷Ζ排北777>>>Лuuu;;;KKK徜缼帋怂薙SScccfffjjj葭亓亮档翟栽molssszzz忉躣cg倐倝垎握袪牋kjgxyy}{~剝唻媼實寭枖湐晼枟殡瑜潟灀嵐扑洓洘煙轫論寧泲櫑洡槩棖泴湐牏（&%z墬湈枌枖湠殼洕灒灣兜脚碳朴z唹稻虛崝枡洿氮	遘籁í唡噮|{噰{剭崫潝巻崨牉处#%%Л东寄艝寠jwy嫏mry|喤嗽蒙虝湩&&)潾冯犋ln]lz厧搹あ棭灋%%t姀救飩zj稻艢浅賶嫊|摝箛{#嗜嗜朔f_m  墧妷棜槫赧!Made with GIMP ,    0 0   H盃A  p啊脟	0p !j@<p 伮9猏!$L燩A亝2畡萷@(踏餽 4ぼ鵳@0撩@HB	*0=8爠	'HL@懧	V堭葿 -D-桠0b80# 8楔Q48`c  F, 銌8b湫aa╚ %仠*]d診!<(2鸳O玍輟 L澆~0 $A+巸P餥鴓饴e;Ｆo 7H9A@h 窭輀{縷Z
C?B屝&槓鐯笎)@愡e"T0' 
亜!$a@@L 0@蹓`亪31p:%鴘1D44褎M$N<郉=<Q鱕0週41x 剅C 醼pPQ&  E8衼TP
8@ LE X0T@欰E<惱銨P羑e8Ah ``E
L餜L@$ 8  "\
D褌EX|悈Z 皡8盉炱 SMiMD惵]餪nP绕9xD慐_D^h傲'TRA猠b `'d餉z剟4斃	鬎嬂絗蠦	$@氯T0;h枭A琡H鋬0,P锆鎮裶d$犅萫榓gAiち+@h燗h`屑;o/衐04	E#虵m幢oHqiP bx牡=wLF衏茄gPk籷E\ 嗅TXT屑箪城AMu瀡v竡氢x\悋b炝G~ fb?8醡牻C閃\褁y堮{2 L0a!b!$" -粜e攎狼8衿#邍 4o(#9H張"慔$#趭[\沅P翎|薙麛@塉XB ;&2M@!8	AtBti+蓍品恒磲|蕇曕塐TE(DQQ`b俼 %J塎樎*R8r`濝星<* `P*X褗J髗`!奟豍厛'L洂 R∧%&p}寴%燞媄|Hn9\ 贺(D1
^"8E)zq糋/抈坨媄@胆'`豱c欂+a悙.x1Q泥奱-莤!戓	BPb 遥^"倯岇!b#.啞宔!┧3`Q圡 L0F3诣塤蝷3邝绝童~魉_$燗磆\爌惼4 奒8"玄3&亰>p灎/≦媕,皝@'Xfpt5兄G圥牳)vR$ 6j嵬娥1渁o槈畎?"*zQDH 憉甴.柫宭`影8*^Q Z洧1F1捬宧T6跇Jc瀈閔G<  )HB憡d	H:"吤*y蒐nrx^駳壗篵<e*W偈W苧柕6趪K]倎#犇^'豥5{]f3蚷V髿佘,葫蚿傖擬-e”Ww頤烎碩'>跎OT鍐jw玓夘鐵;悗詻糓nr{盬HL6;黹OА荜*W摰,^	雤谆琅0綤^騨＜鐼痾纂輤  ; 0707010000a398000081a40000000000000002000000013ac0388c000007e0000000200000000000000000000000000000001c00000003reloc/mount/images/sysv.gif   GIF89a0 0      			


   !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~亖亗倐儍儎剟厖厗唵噰噲垐墘墛妸媼媽寣崓崕帋弿彁悙憫憭拻摀摂敂晻晼枛棗棙槝櫃櫄殮洓洔湝潩潪灋煙煚牋　、ⅱ＃￥いゥウΖЁЖè┅┆鞍北辈膊吵炒创档刀抖贩犯父构购汉换患技浇骄揪靠坷览亮谅侣妹媚哪排牌破乔侨热缮墒适怂颂烫屯臀挝舷闲行蜒岩乙佑釉栽照罩种鬃棕刎儋仝谮圹圮苘葺蒉揶哌哙噜後徕忖沣沅滗邋彐骀珑玷梃殚殛觋腚腱祆眄眍铑镲镳痧耨耱蝌篌篝趑貂貊鲻鼢鼬!Made with GIMP ,    0 0   	H盃羶*\劝∶#J淗裛綂"旓b茍蝬HX癅噹矉茅V+^x鄨襝J傰|輗瞚挞跺蕸5）b(3濦是擎蛕 阱+4)2E蹎1r鯪xx柌灋v湗肷",W/; NX鲬Z  籂` .g| 笐-[璮絥xx班心z祢匐瓔╭Zとv炀諞輵滸gFRC9:趪$-屼D*_硄刖璠緉鲮骢緐h諣l徺鎼鉊$2[$}:r虧;O;a6"倌u偲Rpc6^4r藖]=吮39虪B∷18c)u@  3卡B蚗訉3;痛釱=猡w^4覮硟 "呾q4ばd釋+47觢3'屲釱-4硯y鋢#P,奥Q詍#囧餗
d惲程馐,:凌紶A
)<c妧蔌T0矻 R衊*叴" 怐x2*儗0袲萌48CH=.轑3柳菜.獝d	[⺌鬜R
斏+異拨00銒!琉5瓅#K-隠脫O绝
'<x  -軔[>銵!, `AI杽
こ湭
2h,騆3腁扴0 瀂,<亜銴)籡$	R(B燡&獱聤*嘲敪L矅"q靈/蘰uj毆!@I靝0%T7  犚葴ぐ率毣 $q燖H4笢+惇"@ 遭#噇袺AsH袳 	!汿M矢i査/亡妓-<&婬1拣羾R餫ax爧 Od踩&橳綁銡
(繥3︷a 郰A跫#( @#恖覉辳n"3(倞+〝痉'榒+詀F%)4f爎,b	$▌台<+洂炝*z  \4Ta"A,!朮倃&恉BJ駷虘 [ 尤h貝_4Dm  e0I%箛焿'凘 Kme饊蕄寛鴤~<  X7鄟` i倱BF`6PR!瓢p纻;(鴤^@R $pI"蜂攘袉,唸	B4l#悥3<BD *Tu$蘩 Cv竴lr袢0r纼I餈 "h\肌
0 #悁怋Rd褄嫪30=d y?鼒G抪&B腶u貍垁悆廻h;f@<&倗臝圁(拑8 @ㄅ*-B矵&渆C薧椑0 ;0707010000a399000081a40000000000000002000000013ac0388c0000099e000000200000000000000000000000000000001d00000003reloc/mount/images/tmpfs.gif  GIF89a0 0   唵唸垐捎赛儍儕妸帋帎悙祛佚憫憰晻櫃檼拻棗棟潩煙煚牋牮姊ア＃＇Ё┅┇鯙潬鞍膊驳巢噤牘安抖斗阜父负交阑浇骄蝮衽两梁赣苓汉豪览妹媚哪热闰翡犯蓝咳琅灸窘婪阑哪娜剟勆缮烫蘵un纠附方焕晾爬亮牧挝<<<行衜mmeai折咴茕敌者焊唤坷行伸祆qqq湝湹档技bbbjij铊壬箔潮吵父貂蹙揪贩酚佑蜒央腚揶轠[[哌遞ffjemnmtouu忍商嬖氽獆||伤蒮fhifiief牘壳ⅱΚ   换涣亮RRR圹矍乔滗漩鲻'''舷蟯uwgif辽褄zz;;;OOO"""媼嬧忖镲uougij篁陡栽註]](((LLLxxx777儋偻屯浇絿噰沤膐jo苄琚ⅱ沣---)))YYY```葺輙moIIIいssDDD444è╚^^uuu靠:::厖厈{{乙耶寣+++倐999吵砲hh崓崷Ζ灋灺侣　ddSSS枛朒HHFFFXXX瑩摀敂敍洓aaa___&&&eeeccc\\\QQQ666???###GGG後000刎!Made with GIMP ,    0 0   H盃羶*4@缆 P爛"jT垁 ,蔂亙(~磆@@茢	4幸%L	&预Pp鄎g蠗$H 4眩2h邪丆嚁MY*)5鑀F-d劝+ B1偰B+y鷮:*jMl5玲\!R╔立厠'聢!#鋫?凓M!儔?|悰"艎3X楔Q脝8r员僄?~ 酜贞盏f1an芤粻A悯B!"皥FV鶃$	%C誉fX陇'O爛01佐薡;>$姅)7P゜ヅ#;`QY Al罞^|\@Di.记聄Fa!岮F楺 淎G`憜k,蹦sl褑o莧鼎, t!臔v 銺fEm!]岰萖#j贪G竦鰷|Dd~!BP  2H
D!j缕!5祦i$⑷"孈讶|9釭悘G蒑X@扡BI%尠%揟r	榙B&Y癅#沝B_䴗|d'axB焵@(RB(釪)3,剺r)^爳)PL鈩*珓駡澃d+
ケ 媆趩(,比2-\l盓i腒叿`f盌8R,圣衅-咐拫y] *o-爪p.妕.M翕/i`r1"n(衲奎oBюrJ&遞0ND,濒b
"垁
*4狈(2D0 /3$嬭21能Ra▲善+痩伿j伤-妨<僉2(SL,計,K,S*牧"lt撂jx*n艾v棕 <P8覦1奎b
4,寁谚4峀4-D議4lB!纓,P0葇5劀W$OX薥s5m戳,D豅冓l2!jR珏翲蛺(-3碧2簮5f05{窤(xl愌s誀=t	Px`a8D8Q峂爂5	鰻>= 榟*苺耹铙4謄	nt#兀耘41	x
5淧=D@柳狇X郒窹╝xr祠 ''昿b82Ad挔1i鐽啉嗢
q=<BV嗑0.{zxB釁70CpHEAvqQpO`@牧I]v,(H菳瑏妟剢80褎熧 {儀cP樍,L#G?S妟袃嗲=燽{惷!U$89FJH鈵F0u'<Z2偭NaZ	鍢209=
⺻7SP権倎=1w暂2摹媠灒 $翇B17啤&ぃ槓F侗峗FC媂7惼.ⅰ嶺▋ 諥Kv	鎌  P擣A垎)rA塊00栨B虘敤仹焊5燖Jl玶A姊<匮#酓8*吾w O "Y薐坱!锣/bn堫だ'鹫WO`68\B莟氂倶FYS!硛臽DDy閣X灹p0	棤&逘嘫p靐B敳]叮芋fu%.A:淅熃C襗埰 `剪房h^崝B殗啬s坜<刪糚邍l6P嚑哰麤M7  ;  0707010000a39a000081a40000000000000002000000013ac0388c00000695000000200000000000000000000000000000001c00000003reloc/mount/images/udfs.gif   GIF89a0 0   铑絷觎骀戽驿赕祢螋铑祛觎忖漩鲷蝌礻铎鲻蝣艮掬鳅铗赧螋揶茭鲷蝾礻驿铗祢铘驸湟以势搪履戮钠颇问烃忖苤衷坡氖颇适桃姨廒苴谲忠晕翁廪渚灸挹苕掬挝灾周赈湟卧鲱粢翁抟云铺拗苴周孚芫杭怄溱谠谵猿掣LLNLLL吵眬僅HF技窽TT枡   行襈NNPRQ┅忖鄼櫂ffi怕胵qp枛楴LL敂拫媽櫀楰JLHHI崓屭衷悍祤}~888寜闷腡ST!Made with GIMP ,    0 0  䜣 們剠唶垑妺 寴嚄		
灃櫃牤		棭鲁∨	
簡茸
 久旅鼙杭右影!KP+r10a	缫儠孾瞾騚!`盆|,'-,vu裼嬾=|栲P澦x*@A絔&xRBta6kWoZPXH'8p蘒0P0N5"℅
簚泪 鷡%  @H.6xt憇饜﹦d┉kG`2>亰莁f2&丁
d@vZ东罢	(赖xB镺8t痧D~&绅僃恜p帷]dV"剦'P(l貑%4B厔 実铙牯
X湎/釩嬁Y&詀嗦H篴穂0v琢"祭B;鏴<P
"1iC澞B睵0Hq`x迉C! 1`7扝悊$pP8旫0a/蕦蛠B8 `'>儊&歆# 0 2tP攆O
 d9`趌&詯e
ri侾攈v:r=悁
W唜纜g万~v5t
鼊^<彉iIj;蒈b刵 "べ惃凸$H8尌cMOQ牕0.zC-鋹
澲pB2樠Uf巰肧YV袄S6
)|鄃0<r攑
騹6pe栫ty)-B
澲;3 %繨lb d誝z`	粜/羿l
 
(t炼WF鷭羘&$:2l
睠緶闼柫稓;S羏胟-缆舞9-滵萆
_%	lD怷t3n0凙R磈d{2痴侤昏	%缞-sK	詗" 傂鯱f'嗊-髁 斎+衦釄䦛耭GRu'镑" v-曠-7鏄g靖-D"8塚远xn$峽0ト  劏鄡C!D窦$Eq#"#皞靹怉堞|J0縿L燚;J`R, 	%p7  LLA	叮B0*览
J+`;貋 *
P  !袀埌% `倐繼&0
 8%鋹 ]養,爠/ 恆*F皝@h0pB8B!JC邜0拘 怋3A&35A	R繤2(C(A?0蚁~sGtq	3 厮 愷A {H檲@  ;   0707010000a39b000081a40000000000000002000000013ac0388c000007e0000000200000000000000000000000000000001b00000003reloc/mount/images/ufs.gif    GIF89a0 0      			


   !!!"""###$$$%%%&&&'''((()))***+++,,,---...///000111222333444555666777888999:::;;;<<<===>>>???@@@AAABBBCCCDDDEEEFFFGGGHHHIIIJJJKKKLLLMMMNNNOOOPPPQQQRRRSSSTTTUUUVVVWWWXXXYYYZZZ[[[\\\]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrssstttuuuvvvwwwxxxyyyzzz{{{|||}}}~~~亖亗倐儍儎剟厖厗唵噰噲垐墘墛妸媼媽寣崓崕帋弿彁悙憫憭拻摀摂敂晻晼枛棗棙槝櫃櫄殮洓洔湝潩潪灋煙煚牋　、ⅱ＃￥いゥウΖЁЖè┅┆鞍北辈膊吵炒创档刀抖贩犯父构购汉换患技浇骄揪靠坷览亮谅侣妹媚哪排牌破乔侨热缮墒适怂颂烫屯臀挝舷闲行蜒岩乙佑釉栽照罩种鬃棕刎儋仝谮圹圮苘葺蒉揶哌哙噜後徕忖沣沅滗邋彐骀珑玷梃殚殛觋腚腱祆眄眍铑镲镳痧耨耱蝌篌篝趑貂貊鲻鼢鼬!Made with GIMP ,    0 0   	H盃羶*\劝∶#J淗裛綂"旓b茍蝬HX癅噹矉茅V+^x鄨襝J傰|輗瞚挞跺蕸5）b(3濦是擎蛕 阱+4)2E蹎1r鯪xx柌灋v湗肷",W/; NX鲬Z  籂` .g| 笐-[璮絥xx班心z祢匐瓔╭Zとv炀諞輵滸gFRC9:趪$-屼D*_硄刖璠緉鲮骢緐h諣l徺鎼鉊$2[$}:r虧;O;a6"倌u偲Rpc6^4r藖]=吮39虪B∷18c)u@  3卡B蚗訉3;痛釱=猡w^4覮硟 "呾q4ばd釋+47觢3'屲釱-4硯y鋢#P,奥Q詍#囧餗
d惲程馐,:凌紶A
)<c妧蔌T0矻 R衊*叴" 怐x2*儗0袲萌48CH=.轑3柳菜.獝d	[⺌鬜R
斏+異拨00銒!琉5瓅#K-隠脫O绝
'<x  -軔[>銵!, `AI杽
こ湭
2h,騆3腁扴0 瀂,<亜銴)籡$	R(B燡&獱聤*嘲敪L矅"q靈/蘰uj毆!@I靝0%T7  犚葴ぐ率毣 $q燖H4笢+惇"@ 遭#噇袺AsH袳 	!汿M矢i査/亡妓-<&婬1拣羾R餫ax爧 Od踩&橳綁銡
(繥3︷a 郰A跫#( @#恖覉辳n"3(倞+〝痉'榒+詀F%)4f爎,b	$▌台<+洂炝*z  \4Ta"A,!朮倃&恉BJ駷虘 [ 尤h貝_4Dm  e0I%箛焿'凘 Kme饊蕄寛鴤~<  X7鄟` i倱BF`6PR!瓢p纻;(鴤^@R $pI"蜂攘袉,唸	B4l#悥3<BD *Tu$蘩 Cv竴lr袢0r纼I餈 "h\肌
0 #悁怋Rd褄嫪30=d y?鼒G抪&B腶u貍垁悆廻h;f@<&倗臝圁(拑8 @ㄅ*-B矵&渆C薧椑0 ;0707010000a39c000081a40000000000000002000000013ac0388c000008f3000000200000000000000000000000000000001e00000003reloc/mount/images/umsdos.gif GIF89a0 0   貂汉簞剟挝<<<祆靟qq湝湹档技揪痉贩热扔佑烫萄蜒腚朕揶[[[哌擢|||妸   换涣亮RRR櫃欅圹乔卿滗鲻'''舷蟴zz;;;鞍癘OO"""媼嬧忖镲栽詍mm]]](((LLLxxx777儋偻屯浇絿噰ⅱ€沣---)))YYY```葺IIIいssDDD＃444è╚^^晻晆uu靠:::厖厈{{乙耶憫憣寣+++倐999吵砲hh崓崷Ζ灋灺侣　dd唵啿膊SSS枛枲ⅳ悙怘HHFFF拻扻XX父怂藂rs捶篺ff敂旛谙羰氮珑鐩洓../壬赡哪aaa颔懽鬃VVV|~傊鬃___牋狌nP猩糲fi&''!!!	送S増墛988+     CDDeeeQQQ蹗|隬13 -???###揪粠摌a8.f3R&骜狺线鞆弿)+. (gccc後嵩卩亠酏112灜浻误qpn杗蜮桀fш


妹脫摀接猱咒)趋墮獳KT 3b!
兮旖邙嵉堋瓦my*堚 A僄9  ⑹茶8=C 000犷壙0,*I嵾\羣] 瀿壛
W\bg MNO 蝌!Made with GIMP ,    0 0   H盃羶*\劝∶#J淗裛
 郻茍
8p A値*X罓亙$鄨襝J D @@倓	*X竴!蕸5+h燖(濦'@ 傲嫱 : 崦!BT!!%L$82 *V槝愧E.紑燘L葊駋j馗q  0t取CG<r$Hq犌 
 旇X	2勅
2樰Q丟F蜙9築#@帉d缼2XXna鲮2h諣l:拹`犇垇%L汘x!]虧;O;%:`剉b馍&Y扖剤3 r藖] )	@B(!RPSPAEU 0Vh0肵;8 A 0^L Xd1UKA炖E0]D A靈亂$\ #P嗯Q詨饏噥慉T4袲a劚E:義垇c淍唨DaL蠥 <aX8`@恉F
[!T信[0@ i! L@鄟恡	[$5餚RE擸[ &P l d繤L罁O@$ @鋹 $!CIn湭b捡牧懹 炡@G鋴籡4 pPF槨A@Qa詀軕ypuj鑱@IG琾9牋@1茰H訯菤H繥鴳湭恓@4pA=`繡AIPf   T嵞竔| !1H3銰l DG!	@! HU諿仪! "x(搀~紤"dl醂A #6摹p 2F遱轡G#|8虑"廆褹$抰0	%圲"	$y敜qEe礼p@憜uX呧H<b%嗕両&慏⑸&渢	b|C犇QH劼c嗥 檮唋-鼠｀1'&*攤X"奌mL稴P犺?ぢ仒#Q坆昉咡羟塕瑐 $"eH@T
W鋩q儀EaG8毙D'蘠兀鬫"=犈j[尖溉C.`]の撹*.绷M圓靆CH 唌&窫x_L靝xD&r媉l皣?"+褋 :燩爌V 0\憗A唷娜呿&褖Nl ,dw-
`(1
 ^疴茾F21坋凘揱F3f撵"徬 "%d@04aHc蒆51	k\銠罔@6囱丷l儀圙屝?鴣o守0!nHC曡3熼mx胯b>!憢p咚堂#1宲#8票Nrt飫'b麳鑑毨C峚怐2仲O#″$F腊?劆E"4!t悆譎:矐PoPs袢lF 2黙!鐯"rH1隊B啭Hf#@	I#呢b貞崗f隌JA2皥叉奨G$銐l埃o隑卺,"F恔CP罜5貑疵 霡 ; 0707010000a39d000081a40000000000000002000000013ac0388c000008f3000000200000000000000000000000000000001c00000003reloc/mount/images/vfat.gif   GIF89a0 0   貂汉簞剟挝<<<祆靟qq湝湹档技揪痉贩热扔佑烫萄蜒腚朕揶[[[哌擢|||妸   换涣亮RRR櫃欅圹乔卿滗鲻'''舷蟴zz;;;鞍癘OO"""媼嬧忖镲栽詍mm]]](((LLLxxx777儋偻屯浇絿噰ⅱ€沣---)))YYY```葺IIIいssDDD＃444è╚^^晻晆uu靠:::厖厈{{乙耶憫憣寣+++倐999吵砲hh崓崷Ζ灋灺侣　dd唵啿膊SSS枛枲ⅳ悙怘HHFFF拻扻XX父怂藂rs捶篺ff敂旛谙羰氮珑鐩洓../壬赡哪aaa颔懽鬃VVV|~傊鬃___牋狌nP猩糲fi&''!!!	送S増墛988+     CDDeeeQQQ蹗|隬13 -???###揪粠摌a8.f3R&骜狺线鞆弿)+. (gccc後嵩卩亠酏112灜浻误qpn杗蜮桀fш


妹脫摀接猱咒)趋墮獳KT 3b!
兮旖邙嵉堋瓦my*堚 A僄9  ⑹茶8=C 000犷壙0,*I嵾\羣] 瀿壛
W\bg MNO 蝌!Made with GIMP ,    0 0   H盃羶*\劝∶#J淗裛
 郻茍
8p A値*X罓亙$鄨襝J D @@倓	*X竴!蕸5+h燖(濦'@ 傲嫱 : 崦!BT!!%L$82 *V槝愧E.紑燘L葊駋j馗q  0t取CG<r$Hq犌 
 旇X	2勅
2樰Q丟F蜙9築#@帉d缼2XXna鲮2h諣l:拹`犇垇%L汘x!]虧;O;%:`剉b馍&Y扖剤3 r藖] )	@B(!RPSPAEU 0Vh0肵;8 A 0^L Xd1UKA炖E0]D A靈亂$\ #P嗯Q詨饏噥慉T4袲a劚E:義垇c淍唨DaL蠥 <aX8`@恉F
[!T信[0@ i! L@鄟恡	[$5餚RE擸[ &P l d繤L罁O@$ @鋹 $!CIn湭b捡牧懹 炡@G鋴籡4 pPF槨A@Qa詀軕ypuj鑱@IG琾9牋@1茰H訯菤H繥鴳湭恓@4pA=`繡AIPf   T嵞竔| !1H3銰l DG!	@! HU諿仪! "x(搀~紤"dl醂A #6摹p 2F遱轡G#|8虑"廆褹$抰0	%圲"	$y敜qEe礼p@憜uX呧H<b%嗕両&慏⑸&渢	b|C犇QH劼c嗥 檮唋-鼠｀1'&*攤X"奌mL稴P犺?ぢ仒#Q坆昉咡羟塕瑐 $"eH@T
W鋩q儀EaG8毙D'蘠兀鬫"=犈j[尖溉C.`]の撹*.绷M圓靆CH 唌&窫x_L靝xD&r媉l皣?"+褋 :燩爌V 0\憗A唷娜呿&褖Nl ,dw-
`(1
 ^疴茾F21坋凘揱F3f撵"徬 "%d@04aHc蒆51	k\銠罔@6囱丷l儀圙屝?鴣o守0!nHC曡3熼mx胯b>!憢p咚堂#1宲#8票Nrt飫'b麳鑑毨C峚怐2仲O#″$F腊?劆E"4!t悆譎:矐PoPs袢lF 2黙!鐯"rH1隊B啭Hf#@	I#呢b貞崗f隌JA2皥叉奨G$銐l埃o隑卺,"F恔CP罜5貑疵 霡 ; 0707010000a39e000081a40000000000000002000000013ac0388c0000099e000000200000000000000000000000000000001e00000003reloc/mount/images/xmemfs.gif GIF89a0 0   唵唸垐捎赛儍儕妸帋帎悙祛佚憫憰晻櫃檼拻棗棟潩煙煚牋牮姊ア＃＇Ё┅┇鯙潬鞍膊驳巢噤牘安抖斗阜父负交阑浇骄蝮衽两梁赣苓汉豪览妹媚哪热闰翡犯蓝咳琅灸窘婪阑哪娜剟勆缮烫蘵un纠附方焕晾爬亮牧挝<<<行衜mmeai折咴茕敌者焊唤坷行伸祆qqq湝湹档技bbbjij铊壬箔潮吵父貂蹙揪贩酚佑蜒央腚揶轠[[哌遞ffjemnmtouu忍商嬖氽獆||伤蒮fhifiief牘壳ⅱΚ   换涣亮RRR圹矍乔滗漩鲻'''舷蟯uwgif辽褄zz;;;OOO"""媼嬧忖镲uougij篁陡栽註]](((LLLxxx777儋偻屯浇絿噰沤膐jo苄琚ⅱ沣---)))YYY```葺輙moIIIいssDDD444è╚^^uuu靠:::厖厈{{乙耶寣+++倐999吵砲hh崓崷Ζ灋灺侣　ddSSS枛朒HHFFFXXX瑩摀敂敍洓aaa___&&&eeeccc\\\QQQ666???###GGG後000刎!Made with GIMP ,    0 0   H盃羶*4@缆 P爛"jT垁 ,蔂亙(~磆@@茢	4幸%L	&预Pp鄎g蠗$H 4眩2h邪丆嚁MY*)5鑀F-d劝+ B1偰B+y鷮:*jMl5玲\!R╔立厠'聢!#鋫?凓M!儔?|悰"艎3X楔Q脝8r员僄?~ 酜贞盏f1an芤粻A悯B!"皥FV鶃$	%C誉fX陇'O爛01佐薡;>$姅)7P゜ヅ#;`QY Al罞^|\@Di.记聄Fa!岮F楺 淎G`憜k,蹦sl褑o莧鼎, t!臔v 銺fEm!]岰萖#j贪G竦鰷|Dd~!BP  2H
D!j缕!5祦i$⑷"孈讶|9釭悘G蒑X@扡BI%尠%揟r	榙B&Y癅#沝B_䴗|d'axB焵@(RB(釪)3,剺r)^爳)PL鈩*珓駡澃d+
ケ 媆趩(,比2-\l盓i腒叿`f盌8R,圣衅-咐拫y] *o-爪p.妕.M翕/i`r1"n(衲奎oBюrJ&遞0ND,濒b
"垁
*4狈(2D0 /3$嬭21能Ra▲善+痩伿j伤-妨<僉2(SL,計,K,S*牧"lt撂jx*n艾v棕 <P8覦1奎b
4,寁谚4峀4-D議4lB!纓,P0葇5劀W$OX薥s5m戳,D豅冓l2!jR珏翲蛺(-3碧2簮5f05{窤(xl愌s誀=t	Px`a8D8Q峂爂5	鰻>= 榟*苺耹铙4謄	nt#兀耘41	x
5淧=D@柳狇X郒窹╝xr祠 ''昿b82Ad挔1i鐽啉嗢
q=<BV嗑0.{zxB釁70CpHEAvqQpO`@牧I]v,(H菳瑏妟剢80褎熧 {儀cP樍,L#G?S妟袃嗲=燽{惷!U$89FJH鈵F0u'<Z2偭NaZ	鍢209=
⺻7SP権倎=1w暂2摹媠灒 $翇B17啤&ぃ槓F侗峗FC媂7惼.ⅰ嶺▋ 諥Kv	鎌  P擣A垎)rA塊00栨B虘敤仹焊5燖Jl玶A姊<匮#酓8*吾w O "Y薐坱!锣/bn堫だ'鹫WO`68\B莟氂倶FYS!硛臽DDy閣X灹p0	棤&逘嘫p靐B敳]叮芋fu%.A:淅熃C襗埰 `剪房h^崝B殗啬s坜<刪糚邍l6P嚑哰麤M7  ;  07070100007736000081e40000000000000002000000013ac0388c00000d75000000200000000000000000000000000000001600000003reloc/mount/index.cgi #!/usr/local/bin/perl
# index.cgi
# Display a list of known filesystems, and indicate which are currently mounted

require './mount-lib.pl';
&header($text{'index_title'}, "", undef, 1, 1);
print "<hr>\n";
map { $ignore{$_}++ } split(/\s+/, $access{'ignore'});
map { $deny{$_}++ } split(/\s+/, $access{'deny'});

if (!$access{'icons'}) {
	print "<table width=100% border>\n";
	print "<tr $tb> <td><b>$text{'index_dir'}</b></td>\n",
	      "<td><b>$text{'index_type'}</b></td>\n",
	      "<td><b>$text{'index_dev'}</b></td>\n",
	      "<td><b>$text{'index_use'}</b></td>\n",
	      "<td><b>$text{'index_perm'}</b></td> </tr>\n";
	}

# List filesystems from fstab
foreach (&list_fstypes()) { $can_edit{$_}++; }
$i = 0;
foreach (&list_mounts()) {
	@minfo = @{$_};
	$p = &simplify_path($minfo[0], $minfo[2]);
	if ($ignore{$minfo[2]}) { $i++; next; }
	if ($access{'icons'}) {
		# Add to icon list
		push(@icons, $minfo[2] eq '*' ? "images/star.gif"
					      : "images/$minfo[2].gif");
		push(@titles, $minfo[2] eq 'swap' ? $p :
			      $minfo[2] eq '*' ? $text{'index_auto'}."<br>".$p :
			      &fstype_name($minfo[2])."<br>".$p);
		push(@links, $can_edit{$minfo[2]} && !$deny{$minfo[0]} ?
			     "edit_mount.cgi?index=$i" : undef);
		}
	else {
		# Display table rows
		print "<tr $cb>\n";
		if ($can_edit{$minfo[2]} && !$deny{$minfo[0]}) {
			print "<td><a href=\"edit_mount.cgi?index=$i\">",
			      "$p</a></td>\n",
			}
		else {
			print "<td>$p</td>\n";
			}
		print "<td>",$minfo[2] eq "*" ? $text{'index_auto'} :
			     &fstype_name($minfo[2]),"</td>\n";
		print "<td>",&device_name($minfo[1]),"</td>\n";
		$p = $minfo[2] eq "swap" ? "*" : $minfo[0];
		@mmodes = &mount_modes($minfo[2]);
		printf "<td>%s</td>\n",
			&get_mounted($p, $minfo[1])>=0 || $mmodes[1]==0 ?
			$text{'yes'} : $text{'no'};
		print "<td>$text{'yes'}</td>\n";
		print "</tr>\n";
		}
	$already{$minfo[1],$minfo[0]}++;
	$i++;
	}

# List filesystems from mnttab
$i = 0;
foreach (&list_mounted()) {
	@minfo = @{$_};
	if ($already{$minfo[1],$minfo[0]} || $ignore{$minfo[2]} ||
	    $deny{$minfo[0]}) { $i++; next; }
	$p = &simplify_path($minfo[0], $minfo[2]);
	if ($access{'icons'}) {
		push(@icons, "images/$minfo[2].gif");
		push(@titles, $minfo[2] eq 'swap' ? $p :
			      &fstype_name($minfo[2])."<br>".$p);
		push(@links, $can_edit{$minfo[2]} && !$deny{$minfo[0]} ?
			     "edit_mount.cgi?temp=1&index=$i" : undef);
		}
	else {
		print "<tr $cb>\n";
		if ($can_edit{$minfo[2]} && !$deny{$minfo[0]}) {
			print "<td><a href=\"edit_mount.cgi?temp=1&index=$i\">",
			      "$p</a></td>\n";
			}
		else {
			print "<td>$p</td>\n";
			}
		print "<td>",&fstype_name($minfo[2]),"</td>\n";
		print "<td>",&device_name($minfo[1]),"</td>\n";
		print "<td>$text{'yes'}</td>\n";
		print "<td>$text{'no'}</td>\n";
		}
	$i++;
	}

if ($access{'icons'}) {
	&icons_table(\@links, \@titles, \@icons, 4);
	}
else {
	print "</table>\n";
	}

print "<form action=\"edit_mount.cgi\">\n";
print "<input type=submit value=\"$text{'index_add'}\"> $text{'index_type'}:\n";
print "<select name=type>\n";
foreach (&list_fstypes()) {
	$nm = &fstype_name($_);
	if (!$donefs{$nm}++) { print "<option value=\"$_\">$nm\n"; }
	}
print "</select></form>\n";

print "<hr>\n";
&footer("/", $text{'index'});

sub simplify_path
{
if ($_[1] eq "swap") {
	return "<i>$text{'index_swap'}</i>";
	}
elsif (length($_[0]) > 20) {
	return "... ".substr($_[0], length($_[0])-20);
	}
else {
	return $_[0];
	}
}

   07070100007737000081a40000000000000002000000013ac0388c0000c262000000200000000000000000000000000000001800000003reloc/mount/irix-lib.pl   # irix-lib.pl
# Filesystem functions for IRIX

# Return information about a filesystem, in the form:
#  directory, device, type, options, fsck_order, mount_at_boot
# If a field is unused or ignored, a - appears instead of the value.
# Swap-filesystems (devices or files mounted for VM) have a type of 'swap',
# and 'swap' in the directory field
sub list_mounts
{
local(@rv, @p, $_, $i); $i = 0;
open(FSTAB, $config{'fstab_file'});
while(<FSTAB>) {
	chop; s/#.*$//g;
	if (!/\S/) { next; }
	@p = split(/\s+/, $_);
	if ($p[3] eq "swap") { $p[2] = "swap"; }
	$rv[$i++] = [ $p[1], $p[0], $p[2], $p[3], $p[5], 1 ];
	}
close(FSTAB);
return @rv;
}


# create_mount(directory, device, type, options, fsck_order, mount_at_boot)
# Add a new entry to the fstab file, and return the index of the new entry
sub create_mount
{
local($len, @mlist, $fcsk, $dir);
if ($_[2] eq "autofs") {
	# An autofs mount.. add to /etc/auto_master
	$len = grep { $_->[2] eq "autofs" } (&list_mounts());
	open(AUTOTAB, ">> $config{autofs_file}");
	print AUTOTAB "$_[0] $_[1]",($_[3] eq "-" ? "" : " -$_[3]"),"\n";
	close(AUTOTAB);
	}
else {
	# Add to the fstab file
	$len = grep { $_->[2] ne "autofs" } (&list_mounts());
	open(FSTAB, ">> $config{fstab_file}");
	if ($_[2] eq "ufs" || $_[2] eq "s5fs") {
		($fsck = $_[1]) =~ s/\/dsk\//\/rdsk\//g;
		}
	else { $fsck = "-"; }
	if ($_[2] eq "swap") { $dir = "-"; }
	else { $dir = $_[0]; }
	print FSTAB "$_[1]  $fsck  $dir  $_[2]  $_[4]  $_[5]  $_[3]\n";
	close(FSTAB);
	}
return $len;
}


# delete_mount(index)
# Delete some mount from the table
sub delete_mount
{
local(@fstab, $i, $line, $_);
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
$i = 0;

open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $i++ == $_[0]) {
		# found the line not to include
		}
	else { print FSTAB $_,"\n"; }
	}
close(FSTAB);

open(AUTOTAB, $config{autofs_file});
@autotab = <AUTOTAB>;
close(AUTOTAB);
open(AUTOTAB, "> $config{autofs_file}");
foreach (@autotab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $line !~ /^[+\-]/ && $i++ == $_[0]) {
		# found line not to include..
		}
	else { print AUTOTAB $_,"\n"; }
	}
close(AUTOTAB);
}


# change_mount(num, directory, device, type, options, fsck_order, mount_at_boot)
# Change an existing permanent mount
sub change_mount
{
local(@fstab, @autotab, $i, $line, $fsck, $dir, $_);
$i = 0;

open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $i++ == $_[0]) {
		# Found the line to replace
		if ($_[3] eq "ufs" || $_[3] eq "s5fs") {
			($fsck = $_[2]) =~ s/\/dsk\//\/rdsk\//g;
			}
		else { $fsck = "-"; }
		if ($_[3] eq "swap") { $dir = "-"; }
		else { $dir = $_[1]; }
		print FSTAB "$_[2]  $fsck  $dir  $_[3]  $_[5]  $_[6]  $_[4]\n";
		}
	else { print FSTAB $_,"\n"; }
	}
close(FSTAB);

open(AUTOTAB, $config{autofs_file});
@autotab = <AUTOTAB>;
close(AUTOTAB);
open(AUTOTAB, "> $config{autofs_file}");
foreach (@autotab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $line !~ /^[+\-]/ && $i++ == $_[0]) {
		# Found the line to replace
		print AUTOTAB "$_[1]  $_[2]  ",
				($_[4] eq "-" ? "" : "-$_[4]"),"\n";
		}
	else { print AUTOTAB $_,"\n"; }
	}
close(AUTOTAB);
}


# list_mounted()
# Return a list of all the currently mounted filesystems and swap files.
# The list is in the form:
#  directory device type options
# For swap files, the directory will be 'swap'
sub list_mounted
{
local(@rv, @p, $_, $i, $r);
foreach (split(/\n/, `cat /etc/mtab`)) {
	s/#.*$//g; if (!/\S/) { next; }
	@p = split(/\s+/, $_);
	push(@rv, [ $p[1], $p[0], $p[2], $p[3] ]);
	}
return @rv;
}


# mount_dir(directory, device, type, options)
# Mount a new directory from some device, with some options. Returns 0 if ok,
# or an error string if failed. If the directory is 'swap', then mount as
# virtual memory.
sub mount_dir
{
local($out, $opts);
if ($_[0] eq "swap") {
	# Adding a swap device
	$out = `swap -a $_[1] 2>&1`;
	if ($?) { return $out; }
	}
else {
	# Mounting a directory
	if ($_[2] eq "cachefs") {
		# Mounting a caching filesystem.. need to create cache first
		local(%options);
		&parse_options("cachefs", $_[3]);
		if (!(-r "$options{cachedir}/.cfs_resource")) {
			# The cache directory does not exist.. set it up
			if (-d $options{cachedir} &&
			    !rmdir($options{"cachedir"})) {
				return "The directory $options{cachedir} ".
				       "already exists. Delete it";
				}
			$out = `cfsadmin -c $options{cachedir} 2>&1`;
			if ($?) { return $out; }
			}
		}
	if ($_[2] eq "rumba") {
		# call 'rumba' to mount
		local(%options, $shortname, $shar, $opts, $rv);
		&parse_options("rumba", $_[3]);
		$shortname = hostname();
		if ($shortname =~ /^([^\.]+)\.(.+)$/) { $shortname = $1; }
		$_[1] =~ /^\\\\(.+)\\(.+)$/;
		$shar = "//".($options{machinename} ?$options{machinename} :$1).
			"/$2";
		$opts = ("-s $1 ").
		 (defined($options{'clientname'}) ?
			"-c $options{'clientname'} " : "-c $shortname ").
		 (defined($options{'username'}) ?
			"-U $options{'username'} " : "").
		 (defined($options{'uid'}) ? "-u $options{'uid'} " : "").
		 (defined($options{'gid'}) ? "-g $options{'gid'} " : "").
		 (defined($options{'fmode'}) ? "-f $options{'fmode'} " : "").
		 (defined($options{'dmode'}) ? "-d $options{'dmode'} " : "").
		 (defined($options{'noupper'}) ? "-C " : "").
		 (defined($options{'password'}) ?
			"-P $options{'password'} " : "-n ").
		 (defined($options{'readwrite'}) ? "-S " : "").
		 (defined($options{'readonly'}) ? "-w " : "").
		 (defined($options{'attr'}) ? "-e " : "");
		local $rtemp = &tempname();
		$rv = system("rumba \"$shar\" $_[0] $opts >$rtemp 2>&1 </dev/null");
		$out = `cat $rtemp`; unlink($rtemp);
		if ($rv) { return "<pre>$out</pre> : rumba \"$shar\" $_[0] $opts"; }
		}
	else {
		$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
		$out = `mount -F $_[2] $opts -- $_[1] $_[0] 2>&1`;
		if ($?) { return $out; }
		}
	}
return 0;
}


# unmount_dir(directory, device, type)
# Unmount a directory (or swap device) that is currently mounted. Returns 0 if
# ok, or an error string if failed
sub unmount_dir
{
if ($_[0] eq "swap") {
	$out = `swap -d $_[1] 2>&1`;
	}
elsif ($_[2] eq "rumba") {
	# kill the process (if nobody is in the directory)
	$dir = $_[0];
	if (`fuser -c $_[0] 2>/dev/null` =~ /\d/) { return "$_[0] is busy"; }
	if (`cat /etc/mnttab` =~ /rumba-(\d+)\s+$dir\s+nfs/) {
		&kill_logged('TERM', $1) || return "Failed to kill rumba";
		}
	else { return "Failed to find rumba pid"; }
	sleep(1);
	}
else {
	$out = `umount $_[0] 2>&1`;
	}
if ($?) { return $out; }
return 0;
}


# disk_space(type, directory)
# Returns the amount of total and free space for some filesystem, or an
# empty array if not appropriate.
sub disk_space
{
if (&get_mounted($_[1], "*") < 0) { return (); }
if ($_[0] eq "fd" || $_[0] eq "proc" || $_[0] eq "swap" || $_[0] eq "autofs") {
	return ();
	}
`df -k $_[1]` =~ /Mounted on\n\S+\s+(\S+)\s+\S+\s+(\S+)/;
return ($1, $2);
}


# list_fstypes()
# Returns an array of all the supported filesystem types. If a filesystem is
# found that is not one of the supported types, generate_location() and
# generate_options() will not be called for it.
sub list_fstypes
{
return ("ufs", "nfs", "hsfs", "pcfs", "lofs", "cachefs", "swap",
	"tmpfs", "autofs");
}


# fstype_name(type)
# Given a short filesystem type, return a human-readable name for it
sub fstype_name
{
local(%fsmap);
%fsmap = ("ufs","Solaris Unix Filesystem",
	  "nfs","Network Filesystem",
	  "hsfs","ISO9660 CD-ROM",
	  "pcfs","MS-DOS Filesystem",
	  "lofs","Loopback Filesystem",
	  "cachefs","Caching Filesystem",
	  "swap","Virtual Memory",
	  "tmpfs","Ram Disk",
	  "autofs","Automounter Filesystem",
	  "proc","Process Image Filesystem",
	  "fd","File Descriptor Filesystem",
	  "rumba","Windows Networking Filesystem");
return $config{long_fstypes} && $fsmap{$_[0]} ? $fsmap{$_[0]} : uc($_[0]);
}


# mount_modes(type)
# Given a filesystem type, returns 4 numbers that determine how the file
# system can be mounted, and whether it can be fsck'd
sub mount_modes
{
if ($_[0] eq "ufs" || $_[0] eq "cachefs" || $_[0] eq "s5fs") {
	return (2, 1, 1, 0);
	}
elsif ($_[0] eq "rumba") { return (0, 1, 0, 0); }
else { return (2, 1, 0, 0); }
}


# multiple_mount(type)
# Returns 1 if filesystems of this type can be mounted multiple times, 0 if not
sub multiple_mount
{
return ($_[0] eq "nfs" || $_[0] eq "tmpfs" || $_[0] eq "cachefs" ||
        $_[0] eq "autofs" || $_[0] eq "lofs" || $_[0] eq "rumba");
}


# generate_location(type, location)
# Output HTML for editing the mount location of some filesystem.
sub generate_location
{
if ($_[0] eq "nfs") {
	# NFS mount from some host and directory
	if ($_[1] =~ /^nfs:/) { $nfsmode = 2; }
	elsif (!$_[1] || $_[1] =~ /^([A-z0-9\-\.]+):([^,]+)$/) {
		$nfsmode = 0; $nfshost = $1; $nfspath = $2;
		}
	else { $nfsmode = 1; }
	if ($gconfig{'os_version'} >= 2.6) {
		# Solaris 2.6 can list multiple NFS servers in mount
		print "<tr> <td><b>NFS Source</b></td>\n";
		printf "<td><input type=radio name=nfs_serv value=0 %s>\n",
			$nfsmode == 0 ? "checked" : "";
		print "<b>NFS Hostname</b></td>\n";
		print "<td><input name=nfs_host size=20 value=\"$nfshost\">\n";
		&nfs_server_chooser_button("nfs_host");
		print "&nbsp;<b>NFS Directory</b>\n";
		print "<input name=nfs_dir size=20 value=\"$nfspath\">\n";
		&nfs_export_chooser_button("nfs_host", "nfs_dir");
		print "</td> </tr>\n";

		print "<tr> <td></td>\n";
		printf "<td><input type=radio name=nfs_serv value=1 %s>\n",
			$nfsmode == 1 ? "checked" : "";
		print "<b>Multiple NFS Servers</b></td>\n";
		printf "<td><input name=nfs_list size=40 value=\"%s\">\n",
			$nfsmode == 1 ? $_[1] : "";
		print "</td> </tr>\n";

		if ($gconfig{'os_version'} >= 7) {
			print "<tr> <td></td> <td>\n";
			printf "<input type=radio name=nfs_serv value=2 %s>\n",
				$nfsmode == 2 ? "checked" : "";
			print "<b>WebNFS URL</b></td> <td>\n";
			printf "<input name=nfs_url size=40 value=\"%s\">\n",
				$nfsmode == 2 ? $_[1] : "";
			print "</td> </tr>\n";
			}
		}
	else {
		print "<tr> <td><b>NFS Hostname</b></td>\n";
		print "<td><input name=nfs_host size=20 value=\"$nfshost\">\n";
		&nfs_server_chooser_button("nfs_host");
		print "</td>\n";
		print "<td><b>NFS Directory</b></td>\n";
		print "<td><input name=nfs_dir size=20 value=\"$nfspath\">\n";
		&nfs_export_chooser_button("nfs_host", "nfs_dir");
		print "</td> </tr>\n";
		}
	}
elsif ($_[0] eq "tmpfs") {
	# Location is irrelevant for tmpfs filesystems
	}
elsif ($_[0] eq "ufs") {
	# Mounted from a normal disk, raid (MD) device or from
	# somewhere else
	print "<tr> <td valign=top><b>UFS Disk</b></td>\n";
	print "<td colspan=3>\n";
	if ($_[1] =~ /^\/dev\/dsk\/c([0-9]+)t([0-9]+)d([0-9]+)s([0-9]+)$/) {
		$ufs_dev = 0;
		$scsi_c = $1; $scsi_t = $2; $scsi_d = $3; $scsi_s = $4;
		}
	elsif ($_[1] eq "") {
		$ufs_dev = 0; $scsi_c = $scsi_t = $scsi_s = $scsi_d = 0;
		}
	elsif ($_[1] =~ /^\/dev\/md\/dsk\/d([0-9]+)$/) {
		$ufs_dev = 1; $scsi_md = $1;
		}
	else {
		$ufs_dev = 2; $scsi_path = $_[1];
		}
	printf "<input type=radio name=ufs_dev value=0 %s> SCSI Disk:\n",
		$ufs_dev == 0 ? "checked" : "";
	print "Controller <input name=ufs_c size=3 value=\"$scsi_c\">\n";
	print "Target <input name=ufs_t size=3 value=\"$scsi_t\">\n";
	print "Unit <input name=ufs_d size=3 value=\"$scsi_d\">\n";
	print "Partition <input name=ufs_s size=3 value=\"$scsi_s\"><br>\n";

	printf "<input type=radio name=ufs_dev value=1 %s> RAID Device:\n",
		$ufs_dev == 1 ? "checked" : "";
	print "Unit <input name=ufs_md size=3 value=\"$scsi_md\"><br>\n";

	printf "<input type=radio name=ufs_dev value=2 %s> Other Device:\n",
		$ufs_dev == 2 ? "checked" : "";
	print "<input name=ufs_path size=20 value=\"$scsi_path\"><br>\n";
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swapping to a disk partition or a file
	print "<tr> <td valign=top><b>Swap File</b></td>\n";
	print "<td colspan=3>\n";
	if ($_[1] =~ /^\/dev\/dsk\/c([0-9]+)t([0-9]+)d([0-9]+)s([0-9]+)$/) {
		$swap_dev = 0;
		$scsi_c = $1; $scsi_t = $2; $scsi_d = $3; $scsi_s = $4;
		}
	elsif ($_[1] eq "") {
		$swap_dev = 1; $scsi_path = "";
		}
	else {
		$swap_dev = 1; $scsi_path = $_[1];
		}
	printf "<input type=radio name=swap_dev value=0 %s> SCSI Disk:\n",
		$swap_dev == 0 ? "checked" : "";
	print "Controller <input name=swap_c size=3 value=\"$scsi_c\">\n";
	print "Target <input name=swap_t size=3 value=\"$scsi_t\">\n";
	print "Unit <input name=swap_d size=3 value=\"$scsi_d\">\n";
	print "Partition <input name=swap_s size=3 value=\"$scsi_s\"><br>\n";

	printf "<input type=radio name=swap_dev value=1 %s> File:\n",
		$swap_dev == 1 ? "checked" : "";
	print "<input name=swap_path size=20 value=\"$scsi_path\"><br>\n";
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "hsfs") {
	# Mounting a SCSI cdrom
	print "<tr> <td valign=top><b>CDROM Disk</b></td>\n";
	print "<td colspan=3>\n";
	if ($_[1] =~ /^\/dev\/dsk\/c([0-9]+)t([0-9]+)d([0-9]+)s([0-9]+)$/) {
		$hsfs_dev = 0;
		$scsi_c = $1; $scsi_t = $2; $scsi_d = $3; $scsi_s = $4;
		}
	elsif ($_[1] eq "") {
		$hsfs_dev = 0;
		$scsi_c = 0; $scsi_t = 6; $scsi_d = 0; $scsi_s = 0;
		}
	else {
		$hsfs_dev = 1; $scsi_path = $_[1];
		}
	printf "<input type=radio name=hsfs_dev value=0 %s> SCSI Device:\n",
		$hsfs_dev == 0 ? "checked" : "";
	print "Controller <input name=hsfs_c size=3 value=\"$scsi_c\">\n";
	print "Target <input name=hsfs_t size=3 value=\"$scsi_t\">\n";
	print "Unit <input name=hsfs_d size=3 value=\"$scsi_d\">\n";
	print "Partition <input name=hsfs_s size=3 value=\"$scsi_s\"><br>\n";

	printf "<input type=radio name=hsfs_dev value=1 %s> Other Device:\n",
		$hsfs_dev == 1 ? "checked" : "";
	print "<input name=hsfs_path size=20 value=\"$scsi_path\"><br>\n";
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "pcfs") {
	# Mounting a SCSI msdos filesystem
	print "<tr> <td valign=top><b>MS-DOS Disk</b></td>\n";
	print "<td colspan=3>\n";
	if ($_[1] =~ /^\/dev\/dsk\/c([0-9]+)t([0-9]+)d([0-9]+)s([0-9]+)$/) {
		$pcfs_dev = 0;
		$scsi_c = $1; $scsi_t = $2; $scsi_d = $3; $scsi_s = $4;
		}
	elsif ($_[1] eq "") {
		$pcfs_dev = 1; $scsi_path = "";
		}
	else {
		$pcfs_dev = 1; $scsi_path = $_[1];
		}
	printf "<input type=radio name=pcfs_dev value=0 %s> SCSI Device:\n",
		$pcfs_dev == 0 ? "checked" : "";
	print "Controller <input name=pcfs_c size=3 value=\"$scsi_c\">\n";
	print "Target <input name=pcfs_t size=3 value=\"$scsi_t\">\n";
	print "Unit <input name=pcfs_d size=3 value=\"$scsi_d\">\n";
	print "Partition <input name=pcfs_s size=3 value=\"$scsi_s\"><br>\n";

	printf "<input type=radio name=pcfs_dev value=1 %s> Other Device:\n",
		$pcfs_dev == 1 ? "checked" : "";
	print "<input name=pcfs_path size=20 value=\"$scsi_path\"><br>\n";
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "lofs") {
	# Mounting some directory to another location
	print "<tr> <td><b>Original Directory</b></td>\n";
	print "<td><input name=lofs_src size=30 value=\"$_[1]\">\n";
	print &file_chooser_button("lofs_src", 1);
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "cachefs") {
	# Mounting a cached filesystem of some type.. need a location for
	# the source of the mount
	print "<tr> <td><b>Cache Source</b></td>\n";
	print "<td><input name=cfs_src size=20 value=\"$_[1]\"></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	# An automounter entry.. can be -hosts, -xfn or from some mapping
	print "<tr> <td valign=top><b>Automounter map</b></td>\n";
	printf "<td><input type=radio name=autofs_type value=0 %s>\n",
		$_[1] eq "-hosts" || $_[1] eq "-xfn" ? "" : "checked";
	printf "Use map <input name=autofs_map size=20 value=\"%s\"><br>\n",
		$_[1] eq "-hosts" || $_[1] eq "-xfn" ? "" : $_[1];
	printf "<input type=radio name=autofs_type value=1 %s>\n",
		$_[1] eq "-hosts" ? "checked" : "";
	print "All NFS exports map<br>\n";
	printf "<input type=radio name=autofs_type value=2 %s>\n",
		$_[1] eq "-xfn" ? "checked" : "";
	print "Federated  Naming  Service map</td> </tr>\n";
	}
elsif ($_[0] eq "rumba") {
	# Windows filesystem
	$_[1] =~ /^\\\\(.*)\\(.*)$/;
	print "<tr> <td><b>Server Name</b></td>\n";
	print "<td><input name=rumba_server value=\"$1\" size=20>\n";
	&smb_server_chooser_button("rumba_server");
	print "</td>\n";
	print "<td><b>Share Name</b></td>\n";
	print "<td><input name=rumba_share value=\"$2\" size=20>\n";
	&smb_share_chooser_button("rumba_server", "rumba_share");
	print "</td> </tr>\n";
	}
}


# generate_options(type, newmount)
# Output HTML for editing mount options for a partilcar filesystem 
# under this OS
sub generate_options
{
if ($_[0] eq "nfs") {
	# Solaris NFS has many options, not all of which are editable here
	print "<tr> <td><b>Read-Only?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_ro value=1 %s> Yes\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=nfs_ro value=0 %s> No</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>Disallow setuid programs?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_nosuid value=1 %s> Yes\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=nfs_nosuid value=0 %s> No</td> </tr>\n",
		defined($options{"nosuid"}) ? "" : "checked";

	print "<tr> <td><b>Files inherit parent GID?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_grpid value=0 %s> Yes\n",
		defined($options{"grpid"}) ? "" : "checked";
	printf "<input type=radio name=nfs_grpid value=1 %s> No</td>\n",
		defined($options{"grpid"}) ? "checked" : "";

	print "<td><b>Return error on timeouts?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_soft value=1 %s> Yes\n",
		defined($options{"soft"}) ? "checked" : "";
	printf "<input type=radio name=nfs_soft value=0 %s> No</td> </tr>\n",
		defined($options{"soft"}) ? "" : "checked";

	print "<tr> <td><b>Retry mounts in background?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_bg value=1 %s> Yes\n",
		defined($options{"bg"}) ? "checked" : "";
	printf "<input type=radio name=nfs_bg value=0 %s> No</td>\n",
		defined($options{"bg"}) ? "" : "checked";

	print "<td><b>Display quotas?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_quota value=1 %s> Yes\n",
		defined($options{"quota"}) ? "checked" : "";
	printf "<input type=radio name=nfs_quota value=0 %s> No</td> </tr>\n",
		defined($options{"quota"}) ? "" : "checked";

	print "<tr> <td><b>Allow user interrupt?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_nointr value=0 %s> Yes\n",
		defined($options{"nointr"}) ? "" : "checked";
	printf "<input type=radio name=nfs_nointr value=1 %s> No</td>\n",
		defined($options{"nointr"}) ? "checked" : "";

	print "<td><b>NFS version</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_vers_def value=1 %s> Highest\n",
		defined($options{"vers"}) ? "" : "checked";
	printf "<input type=radio name=nfs_vers_def value=0 %s>\n",
		defined($options{"vers"}) ? "checked" : "";
	print "<input size=1 name=nfs_vers value=$options{vers}></td> </tr>\n";

	print "<tr> <td><b>Protocol</b></td>\n";
	print "<td nowrap><select name=proto>\n";
	printf "<option value=\"\" %s> Default\n",
		defined($options{"proto"}) ? "" : "selected";
	foreach (split(/\n/, `cat /etc/netconfig`)) {
		if (!/^([A-z0-9\_\-]+)\s/) { next; }
		printf "<option value=\"$1\" %s> $1\n",
			$options{"proto"} eq $1 ? "selected" : "";
		}
	print "</select></td>\n";

	print "<td><b>NFS Port</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_port_def value=1 %s> Default\n",
		defined($options{"port"}) ? "" : "checked";
	printf "<input type=radio name=nfs_port_def value=0 %s>\n",
		defined($options{"port"}) ? "checked" : "";
	print "<input size=5 name=nfs_port value=$options{port}></td> </tr>\n";

	print "<tr> <td><b>Timeout</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_timeo_def value=1 %s> Default\n",
		defined($options{"timeo"}) ? "" : "checked";
	printf "<input type=radio name=nfs_timeo_def value=0 %s>\n",
		defined($options{"timeo"}) ? "checked" : "";
	printf "<input size=5 name=nfs_timeo value=$options{timeo}></td>\n";

	print "<td><b>Number of Retransmissions</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_retrans_def value=1 %s> Default\n",
		defined($options{"retrans"}) ? "" : "checked";
	printf "<input type=radio name=nfs_retrans_def value=0 %s>\n",
		defined($options{"retrans"}) ? "checked" : "";
	print "<input size=5 name=nfs_retrans value=$options{retrans}></td> </tr>\n";

	print "<tr> <td><b>Authentication</b></td>\n";
	$nfs_auth = $options{'sec'} ? $options{'sec'} :
		    defined($options{"secure"}) ? "dh" :
		    defined($options{"kerberos"}) ? "krb" : "";
	print "<td><select name=nfs_auth>\n";
	printf "<option value=\"\" %s> None\n",
		$nfs_auth eq "" ? "selected" : "";
	printf "<option value=dh %s> DES\n",
		$nfs_auth eq "dh" ? "selected" : "";
	printf "<option value=krb %s> Kerberos\n",
		$nfs_auth eq "krb" ? "selected" : "";
	print "</select></td>\n";

	if ($gconfig{'os_version'} >= 7) {
		print "<td><b>WebNFS mount?</b></td> <td>\n";
		printf "<input type=radio name=nfs_public value=1 %s> Yes\n",
			defined($options{'public'}) ? "checked" : "";
		printf "<input type=radio name=nfs_public value=0 %s> No\n",
			defined($options{'public'}) ? "" : "checked";
		print "</td>\n";
		}
	print "</tr>\n";
	}
if ($_[0] eq "ufs") {
	# Solaris UFS also has many options, not all of which are here
	print "<tr> <td><b>Read-Only?</b></td>\n";
	printf "<td nowrap><input type=radio name=ufs_ro value=1 %s> Yes\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=ufs_ro value=0 %s> No</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>Disallow setuid programs?</b></td>\n";
	printf "<td nowrap><input type=radio name=ufs_nosuid value=1 %s> Yes\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=ufs_nosuid value=0 %s> No</td> </tr>\n",
		defined($options{"nosuid"}) ? "" : "checked";

	print "<tr> <td><b>Allow user interrupt?</b></td>\n";
	printf "<td nowrap><input type=radio name=ufs_nointr value=0 %s> Yes\n",
		defined($options{"nointr"}) ? "" : "checked";
	printf "<input type=radio name=ufs_nointr value=1 %s> No</td>\n",
		defined($options{"nointr"}) ? "checked" : "";

	print "<td><b>Enable quotas at boot time?</b></td>\n";
	printf "<td nowrap><input type=radio name=ufs_quota value=1 %s> Yes\n",
		defined($options{"quota"}) || defined($options{"rq"}) ?
			"checked" : "";
	printf "<input type=radio name=ufs_quota value=0 %s> No</td> </tr>\n",
		defined($options{"quota"}) || defined($options{"rq"}) ?
			"" : "checked";

	print "<tr> <td><b>Action on error</b></td>\n";
	print "<td><select name=ufs_onerror>\n";
	foreach ('panic', 'lock', 'umount', 'repair') {
		printf "<option value=\"$_\" %s> $_\n",
		 $options{onerror} eq $_ ||
		 !defined($options{onerror}) && $_ eq "panic" ? "selected" : "";
		}
	print "</select></td>\n";

	print "<td><b>Repair Delay</b></td>\n";
	$options{toosoon} =~ /([0-9]+)([A-z])/;
	print "<td nowrap><input size=5 name=ufs_toosoon_time value=$1>\n";
	print "<select name=ufs_toosoon_units>\n";
	printf "<option value=s %s> Seconds\n", $2 eq "s" ? "selected" : "";
	printf "<option value=m %s> Minutes\n", $2 eq "m" ? "selected" : "";
	printf "<option value=h %s> Hours\n", $2 eq "h" ? "selected" : "";
	printf "<option value=d %s> Days\n", $2 eq "d" ? "selected" : "";
	printf "<option value=w %s> Months\n", $2 eq "w" ? "selected" : "";
	printf "<option value=y %s> Years\n", $2 eq "y" ? "selected" : "";
	print "</select></td> </tr>\n";

	if ($gconfig{'os_version'} >= 7) {
		print "<tr> <td><b>Update access times?</b></td> <td>\n";
		printf "<input type=radio name=ufs_noatime value=0 %s> Yes\n",
			defined($options{'noatime'}) ? "" : "checked";
		printf "<input type=radio name=ufs_noatime value=1 %s> No\n",
			defined($options{'noatime'}) ? "checked" : "";
		print "</td>\n";

		print "<td><b>Force direct IO?</b></td> <td>\n";
		printf "<input type=radio name=ufs_force value=1 %s> Yes\n",
			defined($options{'forcedirectio'}) ? "checked" : "";
		printf "<input type=radio name=ufs_force value=0 %s> No\n",
			defined($options{'forcedirectio'}) ? "" : "checked";
		print "</td> </tr>\n";

		print "<tr> <td><b>Allow large files?</td> <td>\n";
		printf "<input type=radio name=ufs_nolarge value=0 %s> Yes\n",
			defined($options{'nolargefiles'}) ? "" : "checked";
		printf "<input type=radio name=ufs_nolarge value=1 %s> No\n",
			defined($options{'nolargefiles'}) ? "checked" : "";
		print "</td>\n";

		print "<td><b>Enabled logging?</td> <td>\n";
		printf "<input type=radio name=ufs_logging value=1 %s> Yes\n",
			defined($options{'logging'}) ? "checked" : "";
		printf "<input type=radio name=ufs_logging value=0 %s> No\n",
			defined($options{'logging'}) ? "" : "checked";
		print "</td> </tr>\n";
		}
	}
if ($_[0] eq "hsfs") {
	# Solaris hsfs is used for CDROMs
	print "<tr> <td><b>Ignore Unix attributes?</b></td>\n";
	printf "<td nowrap><input type=radio name=hsfs_nrr value=1 %s> Yes\n",
		defined($options{"nrr"}) ? "checked" : "";
	printf "<input type=radio name=hsfs_nrr value=0 %s> No</td>\n",
		defined($options{"nrr"}) ? "" : "checked";

	print "<td><b>Ignore trailing dot?</b></td>\n";
	printf "<td nowrap><input type=radio name=hsfs_notraildot value=1 %s> Yes\n",
		defined($options{"notraildot"}) ? "checked" : "";
	printf "<input type=radio name=hsfs_notraildot value=0 %s> No</td> </tr>\n",
		defined($options{"notraildot"}) ? "" : "checked";

	print "<tr> <td><b>Use lower case?</b></td>\n";
	printf "<td nowrap><input type=radio name=hsfs_nomaplcase value=0 %s> Yes\n",
		defined($options{"nomaplcase"}) ? "" : "checked";
	printf "<input type=radio name=hsfs_nomaplcase value=1 %s> No</td>\n",
		defined($options{"nomaplcase"}) ? "checked" : "";

	print "<td><b>Disallow setuid programs?</b></td>\n";
	printf"<td nowrap><input type=radio name=hsfs_nosuid value=1 %s> Yes\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=hsfs_nosuid value=0 %s> No</td> </tr>\n",
		defined($options{"nosuid"}) ? "" : "checked";
	}
if ($_[0] eq "pcfs") {
	# Solaris pcfs for for FAT filesystems. It doesn't have many options
	print "<tr> <td width=25%><b>Read Only?</b></td> <td width=25%>\n";
	printf "<input type=radio name=pcfs_ro value=1 %s> Yes\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=pcfs_ro value=0 %s> No</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	if ($gconfig{'os_version'} >= 7) {
		print "<td><b>Force lower case?</b></td> <td>\n";
		printf "<input type=radio name=pcfs_foldcase value=1 %s> Yes\n",
			defined($options{'foldcase'}) ? "checked" : "";
		printf "<input type=radio name=pcfs_foldcase value=0 %s> No\n",
			defined($options{'foldcase'}) ? "" : "checked";
		print "</td>\n";
		}
	else {
		print "<td colspan=2></td> </tr>\n";
		}
	}
if ($_[0] eq "lofs") {
	# No options as far as I know
	print "<tr> <td><i>No Options Available</i></td> </tr>\n";
	}
if ($_[0] eq "tmpfs") {
	# Solaris tmpfs (virtual memory) filesystem. Only one option
	print "<tr> <td><b>Size</b>&nbsp;&nbsp;&nbsp;</td>\n";
	printf"<td><input type=radio name=tmpfs_size_def value=1 %s> Maximum\n",
		defined($options{"size"}) ? "" : "checked";
	printf"&nbsp;&nbsp;<input type=radio name=tmpfs_size_def value=0 %s>\n",
		defined($options{"size"}) ? "checked" : "";
	($tmpsz = $options{size}) =~ s/[A-z]+$//g;
	print "<input name=tmpfs_size size=6 value=\"$tmpsz\">\n";
	print "<select name=tmpfs_unit>\n";
	printf "<option value=m %s> MB\n",
		$options{"size"} =~ /m$/ ? "selected" : "";
	printf "<option value=k %s> kB\n",
		$options{"size"} =~ /k$/ ? "selected" : "";
	printf "<option value=b %s> bytes\n",
		$options{"size"} !~ /(k|m)$/ ? "selected" : "";
	print "</select></td>\n";
	print "<td colsan=2></td> </tr>\n";
	}
if ($_[0] eq "swap") {
	# Solaris swap has no options
	print "<tr> <td><i>No Options Available</i></td> </tr>\n";
	}
if ($_[0] eq "cachefs") {
	# The caching filesystem has lots of options.. cachefs mounts can
	# be of an existing 'manually' mounted back filesystem, or of a
	# back-filesystem that has been automatically mounted by the cache.
	# The user should never see the automatic mountings made by cachefs.
	print "<tr> <td><b>Real filesystem type</b></td>\n";
	print "<td nowrap><select name=cfs_backfstype>\n";
	if (!defined($options{backfstype})) { $options{backfstype} = "nfs"; }
	foreach (&list_fstypes()) {
		if ($_ eq "cachefs") { next; }
		printf "<option value=\"$_\" %s>$_\n",
			$_ eq $options{backfstype} ? "selected" : "";
		}
	print "</select></td>\n";

	print "<td><b>Real mount point</b></td>\n";
	printf"<td nowrap><input type=radio name=cfs_noback value=1 %s> Automatic\n",
		defined($options{"backpath"}) ? "" : "checked";
	printf "<input type=radio name=cfs_noback value=0 %s>\n",
		defined($options{"backpath"}) ? "checked" : "";
	print "<input size=10 name=cfs_backpath value=\"$options{backpath}\"></td> </tr>\n";

	print "<tr> <td><b>Cache directory</b></td>\n";
	printf "<td nowrap><input size=10 name=cfs_cachedir value=\"%s\"></td>\n",
		defined($options{"cachedir"}) ? $options{"cachedir"} : "/cache";

	print "<td><b>Write mode</b></td>\n";
	printf"<td nowrap><input type=radio name=cfs_wmode value=0 %s> Write-around\n",
		defined($options{"non-shared"}) ? "" : "checked";
	printf "<input type=radio name=cfs_wmode value=1 %s> Non-shared\n",
		defined($options{"non-shared"}) ? "checked" : "";
	print "</td> </tr>\n";

	print "<tr> <td><b>Consistency check</b></td>\n";
	print "<td><select name=cfs_con>\n";
	print "<option value=1> Periodically\n";
	printf "<option value=0 %s> Never\n",
		defined($options{"noconst"}) ? "selected" : "";
	printf "<option value=2 %s> On demand\n",
		defined($options{"demandconst"}) ? "selected" : "";
	print "</select></td>\n";

	print "<td><b>Check permissions in cache?</b></td>\n";
	printf "<td nowrap><input type=radio name=cfs_local value=1 %s> Yes\n",
		defined($options{"local-access"}) ? "checked" : "";
	printf "<input type=radio name=cfs_local value=0 %s> No</td> </tr>\n",
		defined($options{"local-access"}) ? "" : "checked";

	print "<tr> <td><b>Read-Only?</b></td>\n";
	printf "<td nowrap><input type=radio name=cfs_ro value=1 %s> Yes\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=cfs_ro value=0 %s> No</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>Disallow setuid programs?</b></td>\n";
	printf "<td nowrap><input type=radio name=cfs_nosuid value=1 %s> Yes\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=cfs_nosuid value=0 %s> No</td> </tr>\n",
		defined($options{"nosuid"}) ? "" : "checked";
	}
if ($_[0] eq "autofs") {
	# Autofs has lots of options, depending on the type of file
	# system being automounted.. the fstype options determines this
	local($fstype);
	$fstype = $options{fstype} eq "" ? "nfs" : $options{fstype};
	if ($gconfig{'os_version'} >= 2.6) {
		print "<tr> <td><b>Browsing enabled?</b></td> <td>\n";
		printf "<input type=radio name=auto_nobrowse value=0 %s> Yes\n",
			defined($options{'nobrowse'}) ? "" : "checked";
		printf "<input type=radio name=auto_nobrowse value=1 %s> No\n",
			defined($options{'nobrowse'}) ? "checked" : "";
		print "</td> <td colspan=2></td> </tr>\n";
		}
	&generate_options($fstype);
	print "<input type=hidden name=autofs_fstype value=\"$fstype\">\n";
	}
if ($_[0] eq "rumba") {
	# SMB filesystems have a few options..
	print "<tr> <td><b>Server Hostname</b></td>\n";
	printf "<td><input type=radio name=rumba_mname_def value=1 %s> Automatic\n",
		defined($options{"machinename"}) ? "" : "checked";
	printf "<input type=radio name=rumba_mname_def value=0 %s>\n",
		defined($options{"machinename"}) ? "checked" : "";
	print "<input size=10 name=rumba_mname value=\"$options{machinename}\"></td>\n";

	print "<td><b>Client Name</b></td>\n";
	printf "<td><input type=radio name=rumba_cname_def value=1 %s> Automatic\n",
		defined($options{"clientname"}) ? "" : "checked";
	printf "<input type=radio name=rumba_cname_def value=0 %s>\n",
		defined($options{"clientname"}) ? "checked" : "";
	print "<input size=10 name=rumba_cname value=\"$options{clientname}\"></td> </tr>\n";

	print "<tr> <td><b>Login Name</b></td>\n";
	print "<td><input name=rumba_username size=15 value=\"$options{username}\"></td>\n";

	print "<td><b>Login Password</b></td>\n";
	print "<td><input type=password name=rumba_password size=15 value=\"$options{password}\"></td> </tr>\n";

	print "<tr> <td><b>User files are owned by</b></td>\n";
	printf "<td><input name=rumba_uid size=8 value=\"%s\">\n",
		defined($options{'uid'}) ? getpwuid($options{'uid'}) : "";
	print &user_chooser_button("rumba_uid", 0),"</td>\n";

	print "<td><b>Group files are owned by</b></td>\n";
	printf "<td><input name=rumba_gid size=8 value=\"%s\">\n",
		defined($options{'gid'}) ? getgrgid($options{'gid'}) : "";
	print &group_chooser_button("rumba_gid", 0),"</td>\n";

	print "<tr> <td><b>File permissions</b></td>\n";
	printf "<td><input name=rumba_fmode size=5 value=\"%s\"></td>\n",
		defined($options{fmode}) ? $options{fmode} : "755";

	print "<td><b>Directory permissions</b></td>\n";
	printf "<td><input name=rumba_dmode size=5 value=\"%s\"></td> </tr>\n",
		defined($options{dmode}) ? $options{dmode} : "755";

	print "<tr> <td><b>Read/write access is safe?</b></td>\n";
	printf"<td nowrap><input type=radio name=rumba_readwrite value=1 %s> Yes\n",
		defined($options{"readwrite"}) ? "checked" : "";
	printf "<input type=radio name=rumba_readwrite value=0 %s> No</td>\n",
		defined($options{"readwrite"}) ? "" : "checked";

	print "<td><b>Files can be read-only?</b></td>\n";
	printf"<td nowrap><input type=radio name=rumba_readonly value=1 %s> Yes\n",
		defined($options{"readonly"}) ? "checked" : "";
	printf "<input type=radio name=rumba_readonly value=0 %s> No</td> </tr>\n",
		defined($options{"readonly"}) ? "" : "checked";

	print "<tr> <td><b>Send password in upper case?</b></td>\n";
	printf"<td nowrap><input type=radio name=rumba_noupper value=0 %s> Yes\n",
		defined($options{"noupper"}) ? "" : "checked";
	printf "<input type=radio name=rumba_noupper value=1 %s> No</td>\n",
		defined($options{"noupper"}) ? "checked" : "";

	print "<td><b>Use attrE commands?</b></td>\n";
	printf"<td nowrap><input type=radio name=rumba_attr value=1 %s> Yes\n",
		defined($options{"attr"}) ? "checked" : "";
	printf "<input type=radio name=rumba_attr value=0 %s> No</td> </tr>\n",
		defined($options{"attr"}) ? "" : "checked";
	}
}


# check_location(type)
# Parse and check inputs from %in, calling &error() if something is wrong.
# Returns the location string for storing in the fstab file
sub check_location
{
if ($_[0] eq "nfs") {
	local($out, $temp, $mout, $dirlist);

	if ($in{'nfs_serv'} == 1) {
		# multiple servers listed.. assume the user has a brain
		return $in{'nfs_list'};
		}
	elsif ($in{'nfs_serv'} == 2) {
		# NFS url.. check syntax
		if ($in{'nfs_url'} !~ /^nfs:\/\/([^\/ ]+)(\/([^\/ ]*))?$/) {
			&error("'$in{'nfs_url'}' is not a valid NFS URL");
			}
		return $in{'nfs_url'};
		}

	# Use dfshares to see if the host exists and is up
	if ($in{nfs_host} !~ /^\S+$/) {
		&error("'$in{nfs_host}' is not a valid hostname");
		}
	$out = `dfshares '$in{nfs_host}' 2>&1`;
	if ($out =~ /Unknown host/) {
		&error("The host '$in{nfs_host}' does not exist");
		}
	elsif ($out =~ /Timed out/) {
		&error("The host '$in{nfs_host}' is down or does not ".
		       "support NFS");
		}
	elsif ($out =~ /Program not registered/) {
		&error("The host '$in{nfs_host}' does not support NFS");
		}

	# Try a test mount to see if filesystem is available
	foreach (split(/\n/, $out)) {
		if (/^\s*([^ :]+):(\/\S+)\s+/) { $dirlist .= "$2\n"; }
		}
	if ($in{nfs_dir} !~ /^\S+$/) {
		&error("'$in{nfs_dir}' is not a valid directory name. The ".
		       "available directories on $in{nfs_host} are:".
		       "<pre>$dirlist</pre>");
		}
	$temp = &tempname();
	mkdir($temp, 0755);
	$mout = `mount $in{nfs_host}:$in{nfs_dir} $temp 2>&1`;
	if ($mout =~ /No such file or directory/) {
		rmdir($temp);
		&error("The directory '$in{nfs_dir}' does not exist on the ".
		       "host $in{nfs_host}. The available directories are:".
		       "<pre>$dirlist</pre>");
		}
	elsif ($mout =~ /Permission denied/) {
		rmdir($temp);
		&error("This host is not allowed to mount the directory ".
		       "$in{nfs_dir} from $in{nfs_host}");
		}
	elsif ($?) {
		rmdir($temp);
		&error("NFS Error - $mout");
		}
	# It worked! unmount
	`umount $temp`;
	rmdir($temp);
	return "$in{nfs_host}:$in{nfs_dir}";
	}
elsif ($_[0] eq "ufs") {
	# Get the device name
	if ($in{ufs_dev} == 0) {
		$in{ufs_c} =~ /^[0-9]+$/ ||
			&error("'$in{ufs_c}' is not a valid SCSI controller");
		$in{ufs_t} =~ /^[0-9]+$/ ||
			&error("'$in{ufs_t}' is not a valid SCSI target");
		$in{ufs_d} =~ /^[0-9]+$/ ||
			&error("'$in{ufs_d}' is not a valid SCSI unit");
		$in{ufs_s} =~ /^[0-9]+$/ ||
			&error("'$in{ufs_s}' is not a valid SCSI partition");
		$dv = "/dev/dsk/c$in{ufs_c}t$in{ufs_t}d$in{ufs_d}s$in{ufs_s}";
		}
	elsif ($in{ufs_dev} == 1) {
		$in{ufs_md} =~ /^[0-9]+$/ ||
			&error("'$in{ufs_md}' is not a valid RAID unit");
		$dv = "/dev/md/dsk/d$in{ufs_md}";
		}
	else {
		$in{ufs_path} =~ /^\/\S+$/ ||
			&error("'$in{ufs_path}' is not a valid pathname");
		$dv = $in{ufs_path};
		}

	&fstyp_check($dv, "ufs");
	return $dv;
	}
elsif ($_[0] eq "lofs") {
	# Get and check the original directory
	$dv = $in{'lofs_src'};
	if (!(-r $dv)) { &error("'$in{lofs_src}' does not exist"); }
	if (!(-d $dv)) { &error("'$in{lofs_src}' is not a directory"); }
	return $dv;
	}
elsif ($_[0] eq "swap") {
	if ($in{swap_dev} == 0) {
		$in{swap_c} =~ /^[0-9]+$/ ||
			&error("'$in{swap_c}' is not a valid SCSI controller");
		$in{swap_t} =~ /^[0-9]+$/ ||
			&error("'$in{swap_t}' is not a valid SCSI target");
		$in{swap_d} =~ /^[0-9]+$/ ||
			&error("'$in{swap_d}' is not a valid SCSI unit");
		$in{swap_s} =~ /^[0-9]+$/ ||
			&error("'$in{swap_s}' is not a valid SCSI partition");
		$dv="/dev/dsk/c$in{swap_c}t$in{swap_t}d$in{swap_d}s$in{swap_s}";
		}
	else { $dv = $in{swap_path}; }

	if (!open(SWAPFILE, $dv)) {
		if ($! =~ /No such file/ && $in{swap_dev}) {
			if ($dv !~ /^\/dev/) {
				&swap_form($dv);
				}
			else {
				&error("The swap file '$dv' does not exist");
				}
			}
		elsif ($! =~ /No such file/) {
			&error("The SCSI target '$in{swap_t}' does not exist");
			}
		elsif ($! =~ /No such device or address/) {
			&error("The partition '$in{swap_s}' does not exist");
			}
		else {
			&error("Failed to open '$dv' : $!");
			}
		}
	close(SWAPFILE);
	return $dv;
	}
elsif ($_[0] eq "tmpfs") {
	# Ram-disk filesystems have no location
	return "swap";
	}
elsif ($_[0] eq "cachefs") {
	# In order to check the location for the caching filesystem, we need
	# to check the back filesystem
	if (!$in{cfs_noback}) {
		# The back filesystem is manually mounted.. hopefully
		local($bidx, @mlist, @binfo);
		$bidx = &get_mounted($in{cfs_backpath}, "*");
		if ($bidx < 0) {
			&error("The back filesystem '$in{cfs_backpath}' is ".
			       "not mounted");
			}
		@mlist = &list_mounted();
		@binfo = @{$mlist[$bidx]};
		if ($binfo[2] ne $in{cfs_backfstype}) {
			&error("The back filesystem is '$binfo[2]', not ".
			       "'$in{cfs_backfstype}'");
			}
		}
	else {
		# Need to automatically mount the back filesystem.. check
		# it for sanity first.
		# But HOW?
		$in{cfs_src} =~ /^\S+$/ ||
			&error("'$in{cfs_src}' is not a valid cache source");
		}
	return $in{cfs_src};
	}
elsif ($_[0] eq "autofs") {
	# An autofs filesystem can be either mounted from the special
	# -hosts and -xfn maps, or from a normal map. The map can be a file
	# name (if it starts with /), or an NIS map (if it doesn't)
	if ($in{autofs_type} == 0) {
		# Normal map
		$in{autofs_map} =~ /\S/ ||
			&error("You did not enter an automount map name");
		if ($in{autofs_map} =~ /^\// && !(-r $in{autofs_map})) {
			&error("The map file '$in{autofs_map}' does not exist");
			}
		return $in{autofs_map};
		}
	elsif ($in{autofs_type} == 1) {
		# Special hosts map (automount all shares from some host)
		return "-hosts";
		}
	else {
		# Special FNS map (not sure what this does)
		return "-xfn";
		}
	}
elsif ($_[0] eq "rumba") {
	# Cannot check much here..
	return "\\\\$in{rumba_server}\\$in{rumba_share}";
	}
}


# fstyp_check(device, type)
# Check if some device exists, and contains a filesystem of the given type,
# using the fstyp command.
sub fstyp_check
{
local($out, $part, $found);

# Check if the device/partition actually exists
if ($_[0] =~ /^\/dev\/dsk\/c(.)t(.)d(.)s(.)$/) {
	# mounting a normal scsi device..
	$out = `prtvtoc -h $_[0] 2>&1`;
	if ($out =~ /No such file or directory|No such device or address/) {
		&error("The SCSI target for '$_[0]' does not exist");
		}
	$part = $4;
	foreach (split(/\n/, $out)) {
		/^\s+([0-9]+)\s+([0-9]+)/;
		if ($1 == $part) {
			$found = 1; last;
			}
		}
	if (!$found) {
		&error("The SCSI partition for '$_[0]' does not exist");
		}
	}
elsif ($_[0] =~ /^\/dev\/md\/dsk\/d(.)$/) {
	# mounting a multi-disk (raid) device..
	$out = `prtvtoc -h $_[0] 2>&1`;
	if ($out =~ /No such file or directory|No such device or address/) {
		&error("The RAID device for '$_[0]' does not exist");
		}
	if ($out !~ /\S/) {
		&error("No partitions on '$_[0]' ??");
		}
	}
else {
	# Some other device
	if (!open(DEV, $_[0])) {
		if ($! =~ /No such file or directory/) {
			&error("The device file '$_[0]' does not exist");
			}
		elsif ($! =~ /No such device or address/) {
			&error("The device for '$_[0]' does not exist");
			}
		}
	close(DEV);
	}

# Check the filesystem type
$out = `fstyp $_[0] 2>&1`;
if ($out =~ /^([A-z0-9]+)\n$/) {
	if ($1 eq $_[1]) { return; }
	else {
		# Wrong filesystem type
		&error("The device '$_[0]' is formatted as a ".
		       &fstype_name($1));
		}
	}
else {
	&error("Failed to check filesystem type : $out");
	}
}


# check_options(type)
# Read options for some filesystem from %in, and use them to update the
# %options array. Options handled by the user interface will be set or
# removed, while unknown options will be left untouched.
sub check_options
{
local($k, @rv);
if ($_[0] eq "nfs") {
	# NFS has lots of options to parse
	if ($in{'nfs_ro'}) {
		# Read-only
		$options{"ro"} = ""; delete($options{"rw"});
		}
	else {
		# Read-write
		$options{"rw"} = ""; delete($options{"ro"});
		}

	delete($options{'quota'}); delete($options{'noquota'});
	if ($in{'nfs_quota'}) { $options{'quota'} = ""; }

	delete($options{"nosuid"}); delete($options{"suid"});
	if ($in{nfs_nosuid}) { $options{"nosuid"} = ""; }

	delete($options{"grpid"});
	if ($in{nfs_grpid}) { $options{"grpid"} = ""; }

	delete($options{"soft"}); delete($options{"hard"});
	if ($in{nfs_soft}) { $options{"soft"} = ""; }

	delete($options{"bg"}); delete($options{"fg"});
	if ($in{nfs_bg}) { $options{"bg"} = ""; }

	delete($options{"intr"}); delete($options{"nointr"});
	if ($in{nfs_nointr}) { $options{"nointr"} = ""; }

	delete($options{"vers"});
	if (!$in{nfs_vers_def}) { $options{"vers"} = $in{nfs_vers}; }

	delete($options{"proto"});
	if ($in{nfs_proto} ne "") { $options{"proto"} = $in{nfs_proto}; }

	delete($options{"port"});
	if (!$in{nfs_port_def}) { $options{"port"} = $in{nfs_port}; }

	delete($options{"timeo"});
	if (!$in{nfs_timeo_def}) { $options{"timeo"} = $in{nfs_timeo}; }

	delete($options{"secure"}); delete($options{"kerberos"});
	delete($options{"sec"});
	if ($gconfig{'os_version'} >= 2.6) {
		if ($in{'nfs_auth'}) { $options{'sec'} = $in{'nfs_auth'}; }
		}
	else {
		if ($in{'nfs_auth'} eq "dh") { $options{"secure"} = ""; }
		elsif ($in{'nfs_auth'} eq "krb") { $options{"kerberos"} = ""; }
		}

	if ($gconfig{'os_version'} >= 7) {
		delete($options{'public'});
		$options{'public'} = "" if ($in{'nfs_public'});
		}
	}
elsif ($_[0] eq "ufs") {
	# UFS also has lots of options..
	if ($in{ufs_ro}) {
		# read-only (and thus no quota)
		$options{"ro"} = ""; delete($options{"rw"});
		delete($options{"rq"}); delete($options{"quota"});
		}
	elsif ($in{ufs_quota}) {
		# read-write, with quota
		delete($options{"ro"}); $options{"rw"} = "";
		$options{"quota"} = "";
		}
	else {
		# read-write, without quota
		delete($options{"ro"}); $options{"rw"} = "";
		delete($options{"quota"});
		}

	delete($options{"nosuid"});
	if ($in{ufs_nosuid}) { $options{"nosuid"} = ""; }

	delete($options{"intr"}); delete($options{"nointr"});
	if ($in{ufs_nointr}) { $options{"nointr"} = ""; }

	delete($options{"onerror"});
	if ($in{ufs_onerror} ne "panic") {
		$options{"onerror"} = $in{ufs_onerror};
		}

	delete($options{"toosoon"});
	if ($in{ufs_toosoon_time}) {
		$options{"toosoon"} = $in{ufs_toosoon_time}.
				      $in{ufs_toosoon_units};
		}
	if ($gconfig{'os_version'} >= 7) {
		delete($options{'noatime'});
		$options{'noatime'} = "" if ($in{'ufs_noatime'});

		delete($options{'forcedirectio'});
		delete($options{'noforcedirectio'});
		$options{'forcedirectio'} = "" if ($in{'ufs_force'});

		delete($options{'nolargefiles'});delete($options{'largefiles'});
		$options{'nolargefiles'} = "" if ($in{'ufs_nolarge'});

		delete($options{'logging'}); delete($options{'nologging'});
		$options{'logging'} = "" if ($in{'ufs_logging'});
		}
	}
elsif ($_[0] eq "lofs") {
	# Loopback has no options to parse
	}
elsif ($_[0] eq "swap") {
	# Swap has no options to parse
	}
elsif ($_[0] eq "pcfs") {
	# PCFS has only 2 options
	delete($options{'ro'}); delete($options{'rw'});
	$options{'ro'} = "" if ($in{'pcfs_rp'});

	delete($options{'foldcase'}); delete($options{'nofoldcase'});
	$options{'foldcase'} = "" if ($in{'pcfs_foldcase'});
	}
elsif ($_[0] eq "tmpfs") {
	# Ram-disk filesystems have only one option
	delete($options{"size"});
	if (!$in{"tmpfs_size_def"}) {
		$options{"size"} = "$in{tmpfs_size}$in{tmpfs_unit}";
		}
	}
elsif ($_[0] eq "cachefs") {
	# The caching filesystem has lots of options
	$options{"backfstype"} = $in{"cfs_backfstype"};

	delete($options{"backpath"});
	if (!$in{"cfs_noback"}) {
		# A back filesystem was given..  (alreadys checked)
		$options{"backpath"} = $in{"cfs_backpath"};
		}

	if ($in{"cfs_cachedir"} !~ /^\/\S+/) {
		&error("'$in{cfs_cachedir}' is not a valid cache directory");
		}
	$options{"cachedir"} = $in{"cfs_cachedir"};

	delete($options{"write-around"}); delete($options{"non-shared"});
	if ($in{"cfs_wmode"}) {
		$options{"non-shared"} = "";
		}

	delete($options{"noconst"}); delete($options{"demandconst"});
	if ($in{"cfs_con"} == 0) { $options{"noconst"} = ""; }
	elsif ($in{"cfs_con"} == 2) { $options{"demandconst"} = ""; }

	delete($options{"ro"}); delete($options{"rw"});
	if ($in{"cfs_ro"}) { $options{"ro"} = ""; }

	delete($options{"suid"}); delete($options{"nosuid"});
	if ($in{"cfs_nosuid"}) { $options{"nosuid"} = ""; }
	}
elsif ($_[0] eq "autofs") {
	# The options for autofs depend on the type of the automounted
	# filesystem.. 
	$options{"fstype"} = $in{"autofs_fstype"};
	if ($gconfig{'os_version'} >= 2.6) {
		delete($options{'nobrowse'}); delete($options{'browse'});
		$options{'nobrowse'} = "" if ($in{'auto_nobrowse'});
		}
	return &check_options($options{"fstype"});
	}
elsif ($_[0] eq "rumba") {
	# Options for smb filesystems..
	delete($options{machinename});
	if (!$in{rumba_mname_def}) { $options{machinename} = $in{rumba_mname}; }

	delete($options{clientname});
	if (!$in{rumba_cname_def}) { $options{clientname} = $in{rumba_cname}; }

	delete($options{username});
	if ($in{rumba_username}) { $options{username} = $in{rumba_username}; }

	delete($options{password});
	if ($in{rumba_password}) { $options{password} = $in{rumba_password}; }

	delete($options{uid});
	if ($in{rumba_uid} ne "") { $options{uid} = getpwnam($in{rumba_uid}); }

	delete($options{gid});
	if ($in{rumba_gid} ne "") { $options{gid} = getgrnam($in{rumba_gid}); }

	delete($options{fmode});
	if ($in{rumba_fmode} !~ /^[0-7]{3}$/) {
		&error("'$in{rumba_fmode}' is not a valid octal file mode");
		}
	elsif ($in{rumba_fmode} ne "755") { $options{fmode} = $in{rumba_fmode}; }

	delete($options{dmode});
	if ($in{rumba_dmode} !~ /^[0-7]{3}$/) {
		&error("'$in{rumba_dmode}' is not a valid octal directory mode");
		}
	elsif ($in{rumba_dmode} ne "755") { $options{dmode} = $in{rumba_dmode}; }

	delete($options{'readwrite'});
	if ($in{'rumba_readwrite'}) { $options{'readwrite'} = ""; }

	delete($options{'readonly'});
	if ($in{'rumba_readonly'}) { $options{'readonly'} = ""; }

	delete($options{'attr'});
	if ($in{'rumba_attr'}) { $options{'attr'} = ""; }

	delete($options{'noupper'});
	if ($in{'rumba_noupper'}) { $options{'noupper'} = ""; }
	}

# Return options string
foreach $k (keys %options) {
	if ($options{$k} eq "") { push(@rv, $k); }
	else { push(@rv, "$k=$options{$k}"); }
	}
return @rv ? join(',' , @rv) : "-";
}


# create_swap(path, size, units)
# Attempt to create a swap file 
sub create_swap
{
local($out);
$out = `mkfile $_[1]$_[2] $_[0] 2>&1`;
if ($?) {
	unlink($_[0]);
	return "mkfile failed : $out";
	}
return 0;
}


# exports_list(host, dirarray, clientarray)
# Fills the directory and client array references with exports from some
# host. Returns an error string if something went wrong
sub exports_list
{
local($dref, $cref, $out, $_);
$dref = $_[1]; $cref = $_[2];
$out = `showmount -e $_[0] 2>&1`;
if ($?) { return $out; }
foreach (split(/\n/, $out)) {
	if (/^(\/\S*)\s+(.*)$/) {
		push(@$dref, $1); push(@$cref, $2);
		}
	}
return undef;
}

# broadcast_addr()
# Returns a useable broadcast address for finding NFS servers
sub broadcast_addr
{
local($out);
$out = `ifconfig -a 2>&1`;
if ($out =~ /broadcast\s+(\S+)/) { return $1; }
return "255.255.255.255";
}

sub device_name
{
return $_[0];
}

sub files_to_lock
{
return ( $config{'fstab_file'} );
}

1;
  0707010000bb50000041ed0000000000000001000000023ac03c1a00000000000000200000000000000000000000000000001100000003reloc/mount/lang  0707010000bb51000081a40000000000000002000000013ac0388c00002f0c000000200000000000000000000000000000001400000003reloc/mount/lang/de   index_title=Platten- und Netzwerkdateisysteme
index_dir=Eingeh&auml;ngt als
index_type=Typ
index_dev=Ort
index_use=In Benutzung?
index_perm=Permanent?
index_add=F&uuml;ge mount hinzu
index_auto=Automatisch
index_swap=Virtueller Speicher
index_return=Dateisystem-Liste

edit_title=Bearbeite Mount
create_title=Lege Mount an
edit_err=fehler beim editieren des Mounts
edit_egone=Dieser Mount existiert nicht l&auml;nger
edit_header=$1 Mount Details
edit_dir=Eingeh&auml;ngt als
edit_swap=Virtueller Speicher
edit_size=Gr&ouml;sse
edit_free=Frei
edit_savemount=Speichere Mount?
edit_boot=Speicher und mounte beim Booten
edit_save=Speichern
edit_delete=L&ouml;schen
edit_dont=Nicht speichern
edit_now=Mounte jetzt?
edit_mount=Mounte
edit_dont2=Mounte nicht
edit_unmount=Unmount
edit_order=&Uuml;berpr&uuml;fe Dateisystem beim Bootup?
edit_first=&Uuml;berpr&uuml;fe zuerst
edit_second=&Uuml;berpr&uuml;fe als zweites
edit_adv=Erweiterte Mount Einstellungen
edit_list=Liste Benutzer auf

save_err=Fehler beim Speichern des Mounts
save_edir='$1' ist kein Verzeichnis
save_edirname='$1' ist kein g&uuml;ltiger Verzeichnisname
save_ealready='$1' ist bereits eingeh&auml;ngt
save_ealready2='$1' ist bereits als eingeh&auml;ngt vermerkt
save_ealready3=Das Verzeichnis '$1' ist bereits eingeh&auml;ngt
save_ealready4=das Verzeichnis '$1' ist bereits als ein Mountpoint vermerkt
save_emkdir=Fehler beim anlegen des Verzeichnisses $1 : $2
save_eumount=Unmount schlug fehl : $1
save_emount=Mount schlug fehl : $1
save_perm=Die &Auml;nderungen des Mounts auf $1 konnten nicht angewendet werden, da der Mountpoint gerade benutzt wird. Um die &Auml;nderungen auf die permanente List anzuwenden, klicken Sie auf den Button unten
save_apply=Anwenden auf permanente Liste
save_eremount=Remount schlug fehl : $1
save_enone=Sie haben nicht ausgew&auml;hlt, ob gespeichert oder eingeh&auml;ngt werden soll

swap_err=Fehler beim Anlegen der Auslagerungsdatei
swap_esize='$1' ist keine g&uuml;ltige Gr&ouml;sse

nfs_server=W&auml;hle NFS Server..
nfs_select=W&auml;len Sie einen NFS Server, von dem eingeh&auml;ngt werden soll..
nfs_ip=IP Adresse
nfs_host=Hostname
nfs_none=Es wurden keine lokalen NFS Server gefunden
nfs_choose=W&auml;hlen Sie ein NFS Verzeichnis auf $1
nfs_failed=Fehler beim Holen der NFS Exporte von $1 : $2 Vielleicht l&auml;uft kein NFS Server
nfs_seldir=W&auml;hlen sie ein NFS Verzeichnis zum einh&auml;ngen..
nfs_dir=Verzeichnis
nfs_clients=Clients

smb_choose=W&auml;hlen Sie einen SMB Server..
smb_elist=Fehler beim Holen der Serverliste von $1. Vielleicht erlaubt der Server kein st&ouml;bern
smb_ehost=Der Server $1 existiert nicht
smb_edown=Der Server $1 ist runtergefahren, nicht erreichbar oder kein Dateiserver
smb_sel=W&auml;hlen Sie einen Windoze Netzwerk Server, von dem eingeh&auml;ngt werden soll
smb_name=Server Name
smb_desc=Beschreibung
smb_none=Es wurden keine lokalen Windows Netzwerk Server gefunden
smb_choose2=W&auuml;hlen Sie eine Freigabe von $1
smb_elist2=Fehler beim Empfangen der Freigabeliste von $1. Vielleicht erlaubt der Server kein st&ouml;bern
smb_sel2=W&auml;hlen Sie eine Freigabe zum einh&auml;ngen..
smb_share=Freigabe
smb_comment=Kommentar
smb_noshares=Es sind keine verf&uuml;gbaren Freigaben auf dem Server $1

solaris_scsidev=SCSI Controller $1 Ziel $2 Ger&auml;t $3 Partition $4
solaris_mddev=RAID Ger&auml;t $1
solaris_ecacheexists=Das Verzeichnis $1 existiert bereits. L&ouml;schen Sie es.
solaris_ebusy=$1 ist in Benutzung
solaris_ekill=Fehler beim stoppen von rumba
solaris_epid=Konte PID von rumba nicht finden
solaris_nsource=NFS Quelle
solaris_nhost=NFS Hostname
solaris_ndir=NFS Verzeichnis
solaris_nmult=Mehrere NFS Server
solaris_webnfs=WebNFS URL
solaris_ufs=UFS Platte
solaris_scsi=SCSI Platte
solaris_ctrlr=Controller
solaris_target=Ziel
solaris_unit=Ger&auml;t
solaris_part=Partition
solaris_raid=RAID Ger&auml;t
solaris_otherdev=Anderes Ger&auml;t
solaris_swapfile=Auslagerungsdatei
solaris_file=Datei
solaris_cdrom=CD-ROM
solaris_msdos=MS-DOS Platte
solaris_orig=Urspr&uuml;ngliches Verzeichnis
solaris_cache=Cache Quelle
solaris_automap=Automounter &Uuml;bersicht
solaris_autohosts=Alle NFS Exporte
solaris_autoxfn=Verbundener Namens-Dienst
solaris_server=Servername
solaris_share=Freigaben-Name
solaris_ro=Nur-Lesen?
solaris_nosuid=Verbiete setuid Programme?
solaris_grpid=Dateien erben &uuml;bergeordnete GID
solaris_soft=Gebe Fehler bei Timeouts zur&uuml;ck?
solaris_bg=Versuche Mounts im Hintergrund?
solaris_quota=Zeige Quotas?
solaris_nointr=Erlaube Benutzer-Unterbrechung?
solaris_nfsver=NFS Version
solaris_highest=H&ouml;chste
solaris_proto=Protokoll
solaris_port=NFS Port
solaris_timeo=Timeout
solaris_retrans=Anzahl von Neu-&Uuml;bertragungen
solaris_auth=Authentifizierung
solaris_none=Keine
solaris_des=DES
solaris_krb=Kerberos
solaris_public=WebNFS mount?
solaris_quotab=Aktiviere Quotas beim Bootup?
solaris_onerror=Aktion bei Fehler
solaris_toosoon=Reparatur-Verz&ouml;gerung
solaris_time_s=Sekunden
solaris_time_m=Minuten
solaris_time_h=Stunden
solaris_time_d=Tage
solaris_time_w=Wochen
solaris_time_y=Jahre
solaris_noatime=Aktualisiere Zugriffs-Zeiten?
solaris_force=Erzwinge direkte E/A?
solaris_nolarge=Erlaube grosse Dateien?
solaris_logging=Aktiviere Logging?
solaris_nrr=Ignoriere Unix Attribute?
solaris_notraildot=Ignoriere anf&uuml;hrende Punkte?
solaris_nomaplcase=Benutze klein-Buchstaben?
solaris_foldcase=Erzwinge klein-Buchstaben?
solaris_noopts=Keine Einstellungen verf&uuml;gbar
solaris_size=Gr&ouml;sse
solaris_max=Maximum
solaris_backfs=Echter Dateisystem-Typ
solaris_backpath=Echter Mount-Point
solaris_cachedir=Cache Verzeichnis
solaris_wmode=Schreib-Modus
solaris_con=Konsistenz-&Uuml;berpr&uuml;fung
solaris_period=Periodisch
solaris_never=Niemals
solaris_demand=Auf Anfrage
solaris_waround=Schreibe-herum
solaris_nshared=Nicht freigegeben
solaris_local=&Uuml;berpr&uuml;fe Rechte im Cache?
solaris_nobrowse=St&ouml;bern aktiviert?
solaris_auto=Automatisch
solaris_mname=Server Hostname
solaris_cname=Client Name
solaris_username=Login Name
solaris_password=Login Passwort
solaris_uid=Benutzer-Dateien geh&ouml;ren
solaris_gid=Gruppen-Dateien geh&ouml;ren
solaris_fmode=Datei Rechte
solaris_dmode=Verzeichnis Rechte
solaris_readwrite=Lese/Schreibe-Zugriff ist sicher?
solaris_readonly=dateien k&ouml;nnen Nur-Lesen sein?
solaris_noupper=Sende Passwort in GROSS-Buchstaben
solaris_attr=Benutze attrE Kommandos?
solaris_eurl='$1' ist keine g&uuml;ltige NFS URL
solaris_ehost='$1' ist kein g&uuml;ltiger Hostname
solaris_ehost2=Der Host '$1' existiert nicht
solaris_edown=Der Host '$1' ist nicht erreichbar oder unterst&uuml;tzt kein NFS
solaris_enfs=Der Host '$1' unterst&uuml;tzt kein NFS
solaris_enfsdir='$1' ist kein g&uuml;ltiger Verzeichnis-Name. Die verf&uuml;gbaren Verzeichnisse auf $2 sind : $3
solaris_enfsperm=Dieser Host hat keine Berechtigung, das Verzeichnis $1 von $2 zu mounten
solaris_enfsmount=NFS Fehler - $1
solaris_ectrlr='$1' ist kein g&uuml;ltiger SCSI Controller
solaris_etarget='$1' ist keine g&uuml;ltige SCSI Ziel Nummer
solaris_eunit='$1' ist keine g&uuml;ltige Ger&auml;te Nummer
solaris_epart='$1' ist keine g&uuml;ltige Partitions-Nummer
solaris_eraid='$1' ist keine g&uuml;ltige RAID Ger&auml;te Nummer
solaris_epath='$1' ist kein g&uuml;ltiger Pfadname
solaris_eexist='$1' existiert nicht
solaris_edir='$1' ist kein Verzeichnis
solaris_eswapfile=Die Auslagerungsdatei '$1' existiert nicht
solaris_eopen=Fehler beim &Ouml;ffnen von $1 : $2
solaris_ebackfs=Das Dateisystem '$1' ist nicht eingeh&auml;ngt
solaris_ebacktype=Das Dateisystem '$1' ist nicht $2
solaris_ecsrc='$1' ist keine g&uuml;ltige Cache Quelle
solaris_eautomap=Fehlender Automount-&Uuml;bersichtsname
solaris_eautofile=Die &Uuml;bersichtsdatei '$1' existiert nicht
solaris_etarget2=Das SCSI Ziel f&uuml;r '$1' existiert nicht
solaris_epart2=Die SCSI Partition f&uuml;r '$1' existiert nicht
solaris_eraid2=Das RAID Ger&auml;t f&uuml;r '$1' existiert nicht
solaris_enopart=Keine Partitionen auf '$1'
solaris_edevfile=Die Ger&auml;te Datei '$1' existiert nicht
solaris_edevice=das Ger&auml;t f&uuml;r '$1' existiert nicht
solaris_efstyp=Das Ger&auml;t '$1' ist formatiert als ein $2
solaris_efstyp2=Fehler beim &Uuml;berpr&uuml;fen des Dateisystem-Typs : $1
solaris_ecachedir='$1' ist kein g&uuml;ltiges Cache Verzeichnis
solaris_efmode='$1' ist kein g&uuml;ltiger oktaler Datei-Modus
solaris_edmode='$1' ist kein g&uuml;ltiger oktaler Verzeichnis-Modus

linux_eamd=AMD schlug fehl
linux_eauto=Automount schlug fehl : $1
linux_esmbconn=Fehler beim Verbinden zum Server
linux_ekillamd=Fehler beim Stoppen von AMD
linux_ekillauto=Fehler beim Stoppen von automount
linux_nfshost=NFS Hostname
linux_nfsdir=NFS Verzeichnis
linux_map=Automounter &Uuml;bersicht
linux_swapfile=Auslagerungsdatei
linux_disk=Platte
linux_smbserver=Server Name
linux_smbshare=Freigabe Name
linux_raid=RAID Laufwerk
linux_rdev=RAID Laufwerk $1
linux_other=Anderes Ger&auml;t
linux_ro=Nur-Lesen?
linux_sync=Gepuffertes Schreiben auf dem Dateisystem?
linux_nodev=Erlaube Ger&auml;te-Dateien?
linux_noexec=Erlaube das Ausf&uuml;hren von Programmen?
linux_nosuid=Verbiete setuid Programme?
linux_user=Erlaube benutzern das Mounten des Dateisystems?
linux_check=&Uuml;berpr&uuml;fungs-Modus
linux_normal=Normal
linux_strict=Streng
linux_none=Keiner
linux_errors=Aktion bei Fehler
linux_continue=Weitermachen
linux_remount_ro=Remount nur-lesen
linux_panic=Panik
linux_grpid=Dateien erben &uuml;bergeordnete GID?
linux_quotas=Benutze Quotas?
linux_usrquota=Nur Benutzer
linux_grpquota=Nur Gruppe
linux_usrgrpquota=Benutzer und Gruppe
linux_usrgrpquota2=Benutzer und Gruppe (INSTABIL!)
linux_resuid=Reserviere Platz f&uuml;r Benutzer
linux_resgid=Reserviere Platz f&uuml;r Gruppe
linux_bg=Versuche erneute Mounts im Hintergrund?
linux_soft=Gebe Fehler aus bei Timeouts?
linux_timeo=Timeout
linux_retrans=Anzahl Wiederholungen
linux_vers=NFS Version
linux_high=H&ouml;chste
linux_port=NFS Port
linux_intr=Erlaube Benutzer Unterbrechung?
linux_tcp=RPC Protokoll
linux_uid=Benutzer Dateien geh&ouml;ren
linux_gid=Gruppen Dateien geh&ouml;ren
linux_rules=Dateinamen-Regeln
linux_relaxed=Entspannt
linux_conv=DOS-Unix Zeilenvorschub Umsetzung
linux_allfiles=Alle Dateien
linux_textfiles=Nur Textdateien
linux_umask=Make f&uuml;r Dateirechte
linux_quiet=melde Fehler bei <tt>chown</tt> Versuchen?
linux_uni_xlate=&Uuml;bersetze Unicode Zeichen?
linux_posix=Erlaube Namen, die sich nur in der Art der Schreibung (klein/GROSS) unterscheiden?
linux_conv2=OS/2-Unix Zeilenvorschub-Umsetzung
linux_rock=Ignoriere Unix Attribute?
linux_mode=Dateirechte f&uuml;r non-Unix CDs
linux_noopts=Keine Einstellungen verf&uuml;gbar
linux_timeout=Idle Zeit for Unmount
linux_pid_file=Schreibe PID in Datei
linux_secs=Sekunden
linux_smbwarn=Warnung! Das Dateisystem wurde nicht von Webmin gemounted, daher sind die bestehenden Einstellungen nicht verf&uuml;gbar
linux_username=Login Name
linux_password=Login Passwort
linux_sname=Server Name
linux_wg=Arbeitsgruppe
linux_auto=Automatisch
linux_cname=Client Name
linux_mname=Server Adresse
linux_fmode=Dateirechte
linux_dmode=Verzeichnisrechte
linux_ehost='$1' ist kein g&uuml;ltiger Hostname
linux_ehost2=Der Host '$1' existiert nicht
linux_edown=Der Host '$1' ist nicht erreichbar
linux_enfs=Der Host '$1' unterst&uuml;tzt kein NFS
linux_elist=Fehler beim Holen der Mount-Liste : $1
linux_enfsdir='$1' ist kein g&uuml;ltiger Verzeichnisname. Die verf&uuml;gbaren Verzeichnisse auf $2 sind : $3
linux_enfsperm=Dieser Host hat keine Berechtigung das Verzeichnis $1 von $2 einzuh&auml;ngen
linux_enfsmount=NFS Fehler - $1
linux_eautomap=Die automount &Uuml;bersichts-Datei '$1' existiert nicht
linux_edev=Kein Ger&auml;t angegeben
linux_edevfile=Die Ger&auml;tedatei '$1' existiert
linux_emask='$1' ist keine g&uuml;ltige oktale Maske
linux_etimeout='$1' ist kein g&uuml;ltiger Timeout
linux_epidfile='$1' ist keine g&uuml;ltige PID Datei
linux_efmode='$1' ist kein g&uuml;ltiger oktaler Datei-Modus
linux_edmode='$1' ist kein g&uuml;ltiger oktaler Verzeichnis-Modus0707010000bb52000081a40000000000000002000000013ac0388c00002b1a000000200000000000000000000000000000001400000003reloc/mount/lang/en   index_title=Disk and Network Filesystems
index_dir=Mounted As
index_type=Type
index_dev=Location
index_use=In use?
index_perm=Permanent?
index_add=Add mount
index_auto=Unknown Type
index_swap=Virtual Memory
index_return=filesystems list

edit_title=Edit Mount
create_title=Create Mount
edit_err=Failed to edit mount
edit_egone=This mount no longer exists
edit_header=$1 Mount Details
edit_dir=Mounted As
edit_swap=Virtual Memory
edit_size=Size
edit_free=Free
edit_savemount=Save Mount?
edit_boot=Save and mount at boot
edit_save=Save
edit_delete=Delete
edit_dont=Don't save
edit_now=Mount now?
edit_mount=Mount
edit_dont2=Don't mount
edit_unmount=Unmount
edit_order=Check filesystem at boot?
edit_first=Check First
edit_second=Check Second
edit_adv=Advanced Mount Options
edit_list=List Users
edit_create=Save and Mount
edit_save_apply=Save and Apply
edit_umount=Unmount
edit_mount=Mount
edit_perm=Make Permanent
edit_del_umount=Umount and Delete

save_err=Failed to save mount
save_edir='$1' is not a directory
save_edirname='$1' is not a valid directory name
save_ealready='$1' is already mounted
save_ealready2='$1' is already assigned to be mounted
save_ealready3=The directory '$1' is already mounted
save_ealready4=The directory '$1' is already assigned for mounting
save_emkdir=Failed to create directory $1 : $2
save_eumount=Unmount failed : $1
save_emount=Mount failed : $1
save_perm=The changes to the mount on $1 could not be applied, as the mount is currently in use. To have your changes made to the permanent mount list only, click on the button below.
save_apply=Apply To Permanent List
save_eremount=Remount failed : $1
save_enone=You didn't choose to save or mount

swap_err=Failed to create swap file
swap_esize='$1' is not a valid size

nfs_server=Choose NFS Server..
nfs_select=Select an NFS server to mount from..
nfs_ip=IP Address
nfs_host=Hostname
nfs_none=No local NFS servers found
nfs_choose=Choose NFS Directory on $1
nfs_failed=Failed to retrieve NFS exports from $1 : $2 Maybe there is no NFS server running
nfs_seldir=Select an NFS directory to mount..
nfs_dir=Directory
nfs_clients=Clients

smb_choose=Choose SMB Server..
smb_elist=Failed to retrieve server list from $1. Maybe the server does not allow browsing
smb_ehost=The server $1 does not exist
smb_edown=The server $1 is down, unreachable or is not a file server
smb_sel=Select a Windows Networking server to mount from..
smb_name=Server Name
smb_desc=Description
smb_none=No local Windows Networking servers found
smb_choose2=Choose Share on $1
smb_elist2=Failed to retrieve share list from $1. Maybe the server does not allow browsing
smb_sel2=Select a share to mount..
smb_share=Share
smb_comment=Comment
smb_noshares=There are no available file shares on the server $1

solaris_scsidev=SCSI controller $1 target $2 unit $3 partition $4
solaris_mddev=RAID device $1
solaris_ecacheexists=The directory $1 already exists. Delete it.
solaris_ebusy=$1 is busy
solaris_ekill=Failed to kill rumba
solaris_epid=Failed to find rumba pid
solaris_nsource=NFS Source
solaris_nhost=NFS Hostname
solaris_ndir=NFS Directory
solaris_nmult=Multiple NFS Servers
solaris_webnfs=WebNFS URL
solaris_ufs=UFS Disk
solaris_scsi=SCSI/IDE Disk
solaris_ctrlr=Controller
solaris_target=Target
solaris_unit=Unit
solaris_part=Partition
solaris_raid=RAID Device
solaris_otherdev=Other Device
solaris_swapfile=Swap File
solaris_file=File
solaris_cdrom=CDROM
solaris_dvd=DVD
solaris_msdos=MS-DOS Disk
solaris_orig=Original Directory
solaris_cache=Cache Source
solaris_automap=Automounter map
solaris_autohosts=All NFS exports
solaris_autoxfn=Federated Naming Service
solaris_server=Server Name
solaris_share=Share Name
solaris_ro=Read-Only?
solaris_nosuid=Disallow setuid programs?
solaris_grpid=Files inherit parent GID?
solaris_soft=Return error on timeouts?
solaris_bg=Retry mounts in background?
solaris_quota=Display quotas?
solaris_nointr=Allow user interrupt?
solaris_nfsver=NFS version
solaris_highest=Highest
solaris_proto=Protocol
solaris_port=NFS Port
solaris_timeo=Timeout
solaris_retrans=Number of Retransmissions
solaris_auth=Authentication
solaris_none=None
solaris_des=DES
solaris_krb=Kerberos
solaris_public=WebNFS mount?
solaris_quotab=Enable quotas at boot time?
solaris_onerror=Action on error
solaris_toosoon=Repair Delay
solaris_time_s=Seconds
solaris_time_m=Minutes
solaris_time_h=Hours
solaris_time_d=Days
solaris_time_w=Weeks
solaris_time_y=Years
solaris_noatime=Update access times?
solaris_immed=Immediately
solaris_defer=Deferred
solaris_force=Force direct IO?
solaris_nolarge=Allow large files?
solaris_logging=Enabled logging?
solaris_nrr=Ignore Unix attributes?
solaris_notraildot=Ignore trailing dot?
solaris_nomaplcase=Use lower case?
solaris_foldcase=Force lower case?
solaris_noopts=No Options Available
solaris_size=Size
solaris_largebsize=Use large page block size?
solaris_max=Maximum
solaris_backfs=Real filesystem type
solaris_backpath=Real mount point
solaris_cachedir=Cache directory
solaris_wmode=Write mode
solaris_con=Consistency check
solaris_period=Periodically
solaris_never=Never
solaris_demand=On demand
solaris_waround=Write-around
solaris_nshared=Non-shared
solaris_local=Check permissions in cache?
solaris_nobrowse=Browsing enabled?
solaris_auto=Automatic
solaris_mname=Server Hostname
solaris_cname=Client Name
solaris_username=Login Name
solaris_password=Login Password
solaris_uid=User files are owned by
solaris_gid=Group files are owned by
solaris_fmode=File permissions
solaris_dmode=Directory permissions
solaris_readwrite=Read/write access is safe?
solaris_readonly=Files can be read-only?
solaris_noupper=Send password in upper case?
solaris_attr=Use attrE commands?
solaris_eurl='$1' is not a valid NFS URL
solaris_ehost='$1' is not a valid hostname
solaris_ehost2=The host '$1' does not exist
solaris_edown=The host '$1' is down or does not support NFS
solaris_enfs=The host '$1' does not support NFS
solaris_enfsdir='$1' is not a valid directory name. The available directories on $2 are : $3
solaris_enfsperm=This host is not allowed to mount the directory $1 on $2
solaris_enfsmount=NFS Error - $1
solaris_ectrlr='$1' is not a valid SCSI controller
solaris_etarget='$1' is not a valid SCSI target number
solaris_eunit='$1' is not a valid SCSI unit number
solaris_epart='$1' is not a valid SCSI partition number
solaris_eraid='$1' is not a valid RAID unit number
solaris_epath='$1' is not a valid pathname
solaris_eexist='$1' does not exist
solaris_edir='$1' is not a directory
solaris_eswapfile=The swap file '$1' does not exist
solaris_eopen=Failed to open $1 : $2
solaris_ebackfs=The back filesystem '$1' is not mounted
solaris_ebacktype=The back filesystem is '$1' is not $2
solaris_ecsrc='$1' is not a valid cache source
solaris_eautomap=Missing automount map name
solaris_eautofile=The map file '$1' does not exist
solaris_etarget2=The SCSI target for '$1' does not exist
solaris_epart2=The SCSI partition for '$1' does not exist
solaris_eraid2=The RAID device for '$1' does not exist
solaris_enopart=No partitions on '$1'
solaris_edevfile=The device file '$1' does not exist
solaris_edevice=The device for '$1' does not exist
solaris_efstyp=The device '$1' is formatted as a $2
solaris_efstyp2=Failed to check filesystem type : $1
solaris_ecachedir='$1' is not a valid cache directory
solaris_efmode='$1' is not a valid octal file mode
solaris_edmode='$1' is not a valid octal directory mode

linux_eamd=AMD failed
linux_eauto=Automount failed : $1
linux_esmbconn=Failed to connect to server
linux_ekillamd=Failed to kill AMD
linux_ekillauto=Failed to kill automount
linux_nfshost=NFS Hostname
linux_nfsdir=NFS Directory
linux_map=Automounter Map
linux_swapfile=Swap File
linux_disk=Disk
linux_smbserver=Server Name
linux_smbshare=Share Name
linux_raid=RAID device
linux_rdev=RAID device $1
linux_cddev=CD-ROM drive
linux_label=Partition labelled $1
linux_lsel=Partition labelled
linux_other=Other device
linux_ro=Read-only?
linux_sync=Buffer writes to filesystem?
linux_nodev=Allow device files?
linux_noexec=Allow execution of binaries?
linux_nosuid=Disallow setuid programs?
linux_user=Allow users to mount this filesystem?
linux_check=Check mode
linux_normal=Normal
linux_strict=Strict
linux_none=None
linux_errors=Action on error
linux_continue=Continue
linux_remount_ro=Remount read-only
linux_panic=Panic
linux_grpid=Files inherit parent GID?
linux_quotas=Use Quotas?
linux_usrquota=User only
linux_grpquota=Group only
linux_usrgrpquota=User and Group
linux_usrgrpquota2=User and Group (UNSTABLE!)
linux_resuid=Reserve space for user
linux_resgid=Reserve space for group
linux_bg=Retry mounts in background?
linux_soft=Return error on timeouts?
linux_timeo=Timeout
linux_retrans=Number of Retransmissions
linux_vers=NFS version
linux_high=Highest
linux_port=NFS Port
linux_intr=Allow user interrupt?
linux_tcp=RPC Protocol
linux_uid=User files are owned by
linux_gid=Group files are owned by
linux_rules=File naming rules
linux_relaxed=Relaxed
linux_conv=DOS-Unix newline conversion
linux_allfiles=All files
linux_textfiles=Text files only
linux_umask=File permissions mask
linux_quiet=Report errors on <tt>chown</tt> attempts?
linux_uni_xlate=Translate Unicode characters?
linux_posix=Allow names that differ only in case?
linux_conv2=OS/2-Unix newline conversion
linux_rock=Ignore Unix Attributes?
linux_mode=File permissions for non-Unix CDs
linux_noopts=No Options Available
linux_timeout=Idle time before unmount
linux_pid_file=Write PID to file
linux_secs=seconds
linux_smbwarn=Warning! Filesystem was not mounted from Webmin, so existing options are not available
linux_username=Login Name
linux_password=Login Password
linux_sname=Server Name
linux_wg=Workgroup
linux_auto=Automatic
linux_cname=Client Name
linux_mname=Server Address
linux_fmode=File permissions
linux_dmode=Directory permissions
linux_notail=Trade off space for speed?
linux_ehost='$1' is not a valid hostname
linux_ehost2=The host '$1' does not exist
linux_edown=The host '$1' is down
linux_enfs=The host '$1' does not support NFS
linux_elist=Failed to get mount list : $1
linux_enfsdir='$1' is not a valid directory name. The available directories on $2 are : $3
linux_enfsperm=This host is not allowed to mount the directory $1 on $2
linux_enfsmount=NFS Error - $1
linux_eautomap=The automount map file '$1' does not exist
linux_edev=No device entered
linux_edevfile=The device file '$1' does not exist
linux_emask='$1' is not a valid octal mask
linux_etimeout='$1' is not a valid timeout
linux_epidfile='$1' is not a valid pid file
linux_efmode='$1' is not a valid octal file mode
linux_edmode='$1' is not a valid octal directory mode

log_mount=Mounted $3
log_mount_l=Mounted $2 $1 on $3
log_umount=Unmounted $3
log_umount_l=Unmounted $2 $1 on $3
log_remount=Remounted $3
log_remount_l=Remounted $2 $1 on $3
log_create=Created mount $3
log_create_l=Created $2 mount $1 on $3
log_modify=Modified mount $3
log_modify_l=Modified $2 mount $1 on $3
log_delete=Deleted mount $3
log_delete_l=Deleted $2 mount $1 on $3

  0707010000bb53000081a40000000000000002000000013ac0388c00003138000000200000000000000000000000000000001400000003reloc/mount/lang/es   index_title=Sistemas de Archivo de Disco y Red
index_dir=Montado Como
index_type=Tipo
index_dev=Localizaci髇
index_use=縀n uso?
index_perm=縋ermanente?
index_add=A馻dir montaje
index_auto=Tipo desconocido
index_swap=Memoria Virtual
index_return=lista de sistemas de archivo

edit_title=Editar Montaje
create_title=Crear Montaje
edit_err=No puedo editar montaje
edit_egone=Este montaje ya no existe
edit_header=Detalles del Montaje $1
edit_dir=Montado Como
edit_swap=Memoria Virtual
edit_size=Medida
edit_free=Libre
edit_savemount=縎alvar Montaje?
edit_boot=Salvar y montar en el arranque
edit_save=Salvar
edit_delete=Borrar
edit_dont=No salvar
edit_now=縈ontar ahora?
edit_mount=Montar
edit_dont2=No montar
edit_unmount=Desmontar
edit_order=縍eviso sistema de archivos al arrancar?
edit_first=Revisar Primero
edit_second=Revisar Segundo
edit_adv=Opciones Avanzadas de Montaje
edit_list=Listar Usuarios
edit_create=Salvar y Montar
edit_dave_apply=Salvar y Aplicar
edit_umount=Desmontar
edit_mount=Montar
edit_perm=Hacer Permanente
edit_del_umount=Desmontar y Borrar

save_err=No puedo salvar montaje
save_edir='$1' no es un directorio
save_edirname='$1' no es un nombre de directorio v醠ido
save_ealready='$1' ya est montado
save_ealready2='$1' ya est asignado para ser montado
save_ealready3=El directorio '$1' ya est montado
save_ealready4=El directorio '$1' ya est asignado para ser montado
save_emkdir=No puedo crear directorio $1 : $2
save_eumount=No puedo desmontar: $1
save_emount=No puedo montar: $1
save_perm=Los cambios al montaje en $1 no se puedieron aplicar debido a que el montaje est actualmente en uso. Para hacer que tus cambios se realicen s髄o sobre la lista de montajes permanentes, haz click en el bot髇 inferior.
save_apply=Aplicar a Lista Permanente
save_eremount=No puedo remontar: $1
save_enone=No has seleccionado salvar o montar

swap_err=No puedo crear archivo de intercambio
swap_esize='$1' no es una medida v醠ida

nfs_server=Selecciona Servidor NFS...
nfs_select=Selecciona un servidor NFS para desde 閘 montar...
nfs_ip=Direcci髇 IP
nfs_host=Nombre de m醧uina
nfs_none=No se han hallado servidores NFS locales
nfs_choose=Selecciona directorio NFS en $1
nfs_failed=No puedo recoger exportaciones NFS desde $1 : $2 Quiz no hay servidor NFS en ejecuci髇
nfs_seldir=Selecciona un directorio NFS a montar...
nfs_dir=Directorio
nfs_clients=Clientes

smb_choose=Selecciona Servidor SMB...
smb_elist=No puedo obtener lista de servidores desde $1. Quiz el servidor no permite su inspecci髇
smb_ehost=El servidor $1 no existe
smb_edown=El servidor $1 est apagado, es inalcanzable o no es un servidor de archivos
smb_sel=Selecciona un servidor de redes Windows para desde 閘 montar...
smb_name=Nombre de Servidor
smb_desc=Descripci髇
smb_none=No se han hallado servidores locales de Redes Windows
smb_choose2=Selecciona Compartici髇 en $1
smb_elist2=No puedo obtener lista de compartici髇 desde $1. Quiz el servidor no permite su inspecci髇
smb_sel2=Seleciona una compartici髇 a montar...
smb_share=Compartici髇
smb_comment=Comentario
smb_noshares=No hay comparticiones disponibles en el servidor $1

solaris_scsidev=Controladora SCSI $1 blanco $2 unidad $3 partici髇 $4
solaris_mddev=Dispositivo RAID $1
solaris_ecacheexists=El directorio $1 ya existe. B髍ralo.
solaris_ebusy=$1 est ocupado
solaris_ekill=No puedo matar a rumba
solaris_epid=No puedo hallar pid de rumba
solaris_nsource=Fuente NFS
solaris_nhost=Nombre de m醧uina NFS
solaris_ndir=Directorio NFS
solaris_nmult=Servidores NFS M鷏tiples
solaris_webnfs=URL de WebNFS
solaris_ufs=Disco UFS
solaris_scsi=Disco SCSI/IDE
solaris_ctrlr=Controladora
solaris_target=Blanco
solaris_unit=Unidad
solaris_part=Partici髇
solaris_raid=Dispositivo RAID
solaris_otherdev=Otros Dispositivos
solaris_swapfile=Archivo de Intercambio
solaris_file=Archivo
solaris_cdrom=CDROM
solaris_dvd=DVD
solaris_msdos=Disco MS-DOS
solaris_orig=Directorio Original
solaris_cache=Fuente de Cach
solaris_automap=Mapa de Automontador
solaris_autohosts=Todas las exportaciones NFS
solaris_autoxfn=Servicio de Nombres Federado
solaris_server=Nombre de Servidor
solaris_share=Nombre de Compartici髇
solaris_ro=縎髄o-Lectura?
solaris_nosuid=縉o permito programas con setuid?
solaris_grpid=縇os archivos heredan la GID del padre?
solaris_soft=緿evuelvo error cuando haya tiempo agotado?
solaris_bg=縍eintento montajes en segundo plano?
solaris_quota=縈uestro las cuotas?
solaris_nointr=縋ermito interrupci髇 de usuario?
solaris_nfsver=versi髇 NFS
solaris_highest=La mayor
solaris_proto=Protocolo
solaris_port=Puerto NFS
solaris_timeo=Tiempo de espera
solaris_retrans=N鷐ero de Retransmisiones
solaris_auth=Autentificaci髇
solaris_none=Ninguna
solaris_des=DES
solaris_krb=Kerberos
solaris_public=縈ontaje WebNFS?
solaris_quotab=緼ctivo las cuotas en el momento de arrancar?
solaris_onerror=Acci髇 cuando haya error
solaris_toosoon=Retardo de Reparaci髇
solaris_time_s=Segundos
solaris_time_m=Minutos
solaris_time_h=Horas
solaris_time_d=D韆s
solaris_time_w=Semanas
solaris_time_y=A駉s
solaris_noatime=緼ctualizo horas de acceso?
solaris_immed=Inmedi醫amente
solaris_defer=En diferido
solaris_force=縁uerzo E/S directa?
solaris_nolarge=縋ermito archivos grandes?
solaris_logging=緼ctivo historial?
solaris_nrr=縄gnoro atributos Unix?
solaris_notraildot=縄gnoro punto al fina?
solaris_nomaplcase=縐so min鷖culas?
solaris_foldcase=縁uerzo min鷖culas?
solaris_noopts=No hay Opciones Disponibles
solaris_size=Medida
solaris_largebsize=縐so medida grande de bloque de p醙ina?
solaris_max=M醲imo
solaris_backfs=Tipo de sistemas de archivo real
solaris_backpath=Punto de montaje real
solaris_cachedir=Directorio de Cach
solaris_wmode=Modo de escritura
solaris_con=Chequeo de Consistencia
solaris_period=Peri骴icamente
solaris_never=Nunca
solaris_demand=Seg鷑 demanda
solaris_waround=Escritura-solucionada
solaris_nshared=No-compartido
solaris_local=縍eviso permisos en cach?
solaris_nobrowse=縍evisi髇 activada?
solaris_auto=Autom醫ico
solaris_mname=Nombre de M醧uina del Servidor
solaris_cname=Nombre del Cliente
solaris_username=Nombre de Login
solaris_password=Clave de Acceso de Login
solaris_uid=Los archivos de usuario son propiedad de
solaris_gid=Los archivos de Grupo son propiedad de
solaris_fmode=Permisos de Archivo
solaris_dmode=Permisos de Directorio
solaris_readwrite=縀s seguro el acceso de Lectura/escritura?
solaris_readonly=縇os archivos pueden ser de s髄o-lectura?
solaris_noupper=縀nv韔 la clave de acceso en may鷖culas?
solaris_attr=縐so comandos attrE?
solaris_eurl='$1' no es una URL de NFS v醠ida
solaris_ehost='$1' no es un nombre v醠ido de m醧uina
solaris_ehost2=La m醧uina '$1' no existe
solaris_edown=La m醧uina '$1' est ca韉a o no soporta NFS
solaris_enfs=La m醧uina '$1' no soporta NFS
solaris_enfsdir='$1' no es un nombre de directorio v醠ido. Los directorios disponibles en $2 son: $3
solaris_enfsperm=Esta m醧uina no est autorizada a montar el directorio $1 en $2
solaris_enfsmount=Error de NFS - $1
solaris_ectrlr='$1' no es una controladora SCSI v醠ida
solaris_etarget='$1' no es un n鷐ero v醠ido de blanco SCSI
solaris_eunit='$1' no es un n鷐ero v醠ido de unidad SCSI
solaris_epart='$1' no es un n鷐ero v醠ido de partici髇 SCSI
solaris_eraid='$1' no es un n鷐ero v醠ido de unidad RAID
solaris_epath='$1' no es un nombre v醠ido de nombre de trayectoria
solaris_eexist='$1' no existe
solaris_edir='$1' no es un directorio
solaris_eswapfile=El archivo de intercambio '$1' no existe
solaris_eopen=No puedo abrir $1 : $2
solaris_ebackfs=El sistema de archivos trasero '$1' no est montado
solaris_ebacktype=El sistema de archivo es '$1' no es $2
solaris_ecsrc='$1' no es una fuente v醠ida de cach
solaris_eautomap=Nombre de mapa de automontaje sin poner
solaris_eautofile=El archivo de mapa '$1' no existe
solaris_etarget2=El blanco SCSI para '$1' no existe
solaris_epart2=La partici髇 SCSI para '$1' no existe
solaris_eraid2=El dispositivo RAID para '$1' no existe
solaris_enopart=No hay particiones en '$1'
solaris_edevfile=El archivo de dispositivo '$1' no existe
solaris_edevice=El dispositivo para '$1' no existe
solaris_efstyp=El dispositivo '$1' est formateado como un $2
solaris_efstyp2=No puedo revisar el tipo de sistema de archivo: $1
solaris_ecachedir='$1' no es un directorio v醠ido de cach
solaris_efmode='$1' no es un m骴o octal v醠ido de archivo
solaris_edmode='$1' no es un m骴o octal v醠ido de directorio

linux_eamd=Fall el AMD
linux_eauto=Fall el automontaje: $1
linux_esmbconn=No puedo conectar con el servidor
linux_ekillamd=No puedo matar AMD
linux_ekillauto=No puedo matar automontaje
linux_nfshost=Nombre de m醧uina NFS
linux_nfsdir=Directorio NFS
linux_map=Mapa de Automontador
linux_swapfile=Archivo de Intercambio
linux_disk=Disco
linux_smbserver=Nombre de Servidor
linux_smbshare=Nombre Compartido
linux_raid=Dispositivo RAID
linux_rdev=Dispositivo RAID $1
linux_cddev=Controlador CD-ROM
linux_label=Partici髇 etiquetada $1
linux_lsel=Partici髇 etiquetada
linux_other=Otro dispositivo
linux_ro=縎髄o-lectura?
linux_sync=縀l b鷉er escribe el sistema de archivo?
linux_nodev=縋ermito archivos de dispositivo?
linux_noexec=縋ermito la ejecuci髇 de binarios?
linux_nosuid=緿esautorizo programas setuid?
linux_user=縋ermito a los usuarios montar este sistema de archivos?
linux_check=Modo de chequeo
linux_normal=Normal
linux_strict=Estricto
linux_none=Ninguno
linux_errors=Acci髇 cuando haya error
linux_continue=Continuar
linux_remount_ro=Remontar de s髄o-lectura
linux_panic=P醤ico
linux_grpid=縇os archivos heredan la GID del padre?
linux_quotas=縐so las Cuotas?
linux_usrquota=S髄o Usuario
linux_grpquota=S髄o Grupo
linux_usrgrpquota=Usuario y Grupo
linux_usrgrpquota2=Usuario y Grupo(NESTABLE!)
linux_resuid=Reservar espacio para usuario
linux_resgid=Reservar espacio para grupo
linux_bg=縍eintento montajes en segundo plano?
linux_soft=緿evuelvo error cuando se agote el tiempo?
linux_timeo=Tiempo de espera
linux_retrans=N鷐ero de Retransmisiones
linux_vers=Versi髇 de NFS
linux_high=La mayor
linux_port=Puerto de NFS
linux_intr=縋ermito interrupci髇 de usuario?
linux_tcp=Protocolo RPC
linux_uid=Archivos de Usuario pertenecen a
linux_gid=Archivos de Grupo pertenecen a
linux_rules=Reglas para nombre de Archivo
linux_relaxed=Relajado
linux_conv=Conversi髇 de nueva l韓ea de DOS a Unix
linux_allfiles=Todos los archivos
linux_textfiles=S髄o archivos de texto
linux_umask=M醩cara de permisos de Archivo
linux_quiet=縄nformo de los errores de los intentos <tt>chown</tt>?
linux_uni_xlate=縏raduzco los caracteres Unicode?
linux_posix=縋ermito los nombres que difieren s髄o en tipo de letra?
linux_conv2=Conversi髇 de nueva l韓ea de OS/2 a Unix
linux_rock=縄gnoro Atributos Unix?
linux_mode=Permisos de Archivo para CDs no Unix
linux_noopts=No hay Opciones Disponibles
linux_timeout=Tiempo sin hacer nada antes de desmontar
linux_pid_file=Escribir PID en archivo
linux_secs=segundos
linux_smbwarn=viso! El sistema de archivo no fue montado desde Webmin por lo que las opciones no est醤 disponibles
linux_username=Nombre de Login
linux_password=Clave de Acceso de Login
linux_sname=Nombre de Servidor
linux_wg=Grupo de Trabajo
linux_auto=Autom醫ico
linux_cname=Nombre de Cliente
linux_mname=Direcci髇 de Servidor
linux_fmode=Permisos de Archivo
linux_dmode=Permisos de Directorio
linux_notail=緾ambio espacio por velocidad?
linux_ehost='$1' no es un nombre v醠ido de m醧uina
linux_ehost2=La m醧uina '$1' no existe
linux_edown=La m醧uina '$1' est apagada
linux_enfs=La m醧uina '$1' no soporta NFS
linux_elist=No puedo obtener la lista de montaje: $1
linux_enfsdir='$1' no es un nombre v醠ido de directorio. Los directorios disponibles en $2 son: $3
linux_enfsperm=Esta m醧uina no est autorizada a montar el directorio $1 en $2
linux_enfsmount=Error de NFS - $1
linux_eautomap=El archivo de mapa de automontaje '$1' no existe
linux_edev=No se ha digitado dispositivo
linux_edevfile=El archivo de dispositivo '$1' no existe
linux_emask='$1' no es una m醩cara octal v醠ida
linux_etimeout='$1' no es un tiempo de espera v醠ido
linux_epidfile='$1' no es un archivo v醠ido de pid
linux_efmode='$1' no es un modo octal v醠ido de archivo
linux_edmode='$1' no es un modo octal v醠ido de directorio

log_mount=Montado $3
log_mount_l=Montado $2 $1 en $3
log_umount=Desmontado $3
log_umount_l=Desmontado $2 $1 en $3
log_remount=Remontado $3
log_remount_l=Remontado $2 $1 en $3
log_create=Creado montaje $3
log_create_l=Creado $2 montado $1 en $3
log_modify=Modificado montaje $3
log_modify_l=Modificado $2 montaje $1 en $3
log_delete=Borrado montaje $3
log_delete_l=Borrado $2 montaje $1 en $3

0707010000bb54000081a40000000000000002000000013ac0388c00002f2a000000200000000000000000000000000000001400000003reloc/mount/lang/fr   index_title=Montages disques et r閟eaux
index_dir=Mont sur
index_type=Type
index_dev=P閞iph閞ique
index_use=En cours d'utilisation?
index_perm=Permanent?
index_add=Monter
index_auto=Automatique
index_swap=M閙oire virtuelle
index_return=la liste des syst鑝es de fichiers

edit_title=蒬iter un montage
create_title=Cr閑r un montage
edit_err=Impossible d'閐iter ce montage
edit_egone=Ce montage n'existe plus
edit_header=D閠ails de montage de $1
edit_dir=Mont sur
edit_swap=M閙oire virtuelle
edit_size=Taille
edit_free=Libre
edit_savemount=Enregistrer le montage?
edit_boot=Enregistrer et monter au d閙arrage
edit_save=Enregistrer
edit_delete=Supprimer
edit_dont=Ne pas enregistrer
edit_now=Monter maintenant?
edit_mount=Monter
edit_dont2=Ne pas monter
edit_unmount=D閙onter
edit_order=V閞ifier le syst鑝e de fichiers au d閙arrage?
edit_first=V閞ifier en premier
edit_second=V閞ifier en second
edit_adv=Options avanc閑s de montage
edit_list=Liste des utilisateurs

save_err=Impossible d'enregistrer le montage
save_edir=$1 n'est pas un r閜ertoire
save_edirname=$1 n'est pas un nom de r閜ertoire valide
save_ealready=$1 est d閖 mont
save_ealready2=$1 est d閖 assign  阾re mont
save_ealready3=Le r閜ertoire $1 est d閖 mont
save_ealready4=Le r閜ertoire $1 est d閖 assign  阾re mont
save_emkdir=Impossible de cr閑r le r閜ertoire $1 : $2
save_eumount=Impossible de d閙onter : $1
save_emount=Impossible de monter : $1
save_perm=Les changements au montage sur $1 peuvent ne pas 阾re appliqu閟 si le montage est en cours d'utilisation.  Pour avoir le changement appliqu dans la liste des montages permanents, cliquez sur le bouton ci-dessous.
save_apply=Appliquer  la liste permanente
save_eremount=Impossible de remonter : $1
save_enone=Vous n'avez pas choisi d'enregistrer ou monter

swap_err=Impossible de cr閑r le fichier de m閙oire virtuelle
swap_esize=$1 n'est pas une taille valide

nfs_server=Choisir le Serveur NFS..
nfs_select=Choisir un serveur NFS source..
nfs_ip=Adresse IP
nfs_host=Nom d'h魌e
nfs_none=Aucun serveur local NFS n'a 閠 trouv
nfs_choose=Choisir le r閜ertoire NFS sur $1
nfs_failed=Impossible de lire les partages sur $1 : $2 Peut-阾re n'y a-t-il aucun serveur NFS
nfs_seldir=Choisir le r閜ertoire NFS  partager
nfs_dir=R閜ertoire
nfs_clients=Clients

smb_choose=Choisir le serveur Windows/Samba..
smb_elist=Impossible de lire la liste du serveur $1. Peut-阾re que le serveur ne permet pas de le parcourir
smb_ehost=Le serveur $1 n'existe pas
smb_edown=Le serveur $1 est arr阾, injoignable ou n'est pas un serveur de fichiers
smb_sel=Choisir un serveur de r閟eau Windows source..
smb_name=Nom du serveur
smb_desc=D閟cription
smb_none=Aucun serveur de r閟eau Windows n'a 閠 trouv
smb_choose2=Choisir un partage de $1
smb_elist2=Impossible de lire la liste des partages de $1. Peut-etre le serveur ne permet pas de le parcourir
smb_sel2=Choisir un partage  monter
smb_share=Partage
smb_comment=Commentaire
smb_noshares=Il n'y a aucun partage de fichiers sur le serveur $1

solaris_scsidev=Contr鬺eur SCSI $1 cible $2 unit $3 partition $4
solaris_mddev=P閞iph閞ique RAID $1
solaris_ecacheexists=Le r閜ertoire $1 existe d閖. Supprimez-le.
solaris_ebusy=$1 est occup
solaris_ekill=Impossible de tuer rumba
solaris_epid=Impossible de trouver le num閞o de processus de rumba
solaris_nsource=Source NFS
solaris_nhost=Nom d'h魌e NFS
solaris_ndir=R閜ertoire NFS
solaris_nmult=Serveurs NFS multiples
solaris_webnfs=Adresse WebNFS
solaris_ufs=Disque UFS
solaris_scsi=Disque SCSI
solaris_ctrlr=Contr鬺eur
solaris_target=Cible
solaris_unit=Unit
solaris_part=Partition
solaris_raid=P閞iph閞ique RAID
solaris_otherdev=Autre p閞iph閞ique
solaris_swapfile=Fichier de swap
solaris_file=Fichier
solaris_cdrom=Lecteur de CD
solaris_msdos=Disque MS-DOS
solaris_orig=R閜ertoire original
solaris_cache=Source tampon
solaris_automap=Plan d'automounter
solaris_autohosts=Tous les partages NFS
solaris_autoxfn=Service de nom f閐閞
solaris_server=Nom de serveur
solaris_share=Nom de partage
solaris_ro=Lecture seule?
solaris_nosuid=Interdire les programmes changant de num閞o d'usager (suid)?
solaris_grpid=Fichiers h閞itant du num閞o de groupe du parent?
solaris_soft=Retourner une erreur sur une expiration de d閘ai?
solaris_bg=R閑ssayer le montage en arri鑢e-plan?
solaris_quota=Afficher les quotas?
solaris_nointr=Autoriser l'interruption par l'utilisateur?
solaris_nfsver=Version NFS
solaris_highest=Plus haute
solaris_proto=Protocole
solaris_port=Port NFS
solaris_timeo=D閘ai d'expiration
solaris_retrans=Nombre de retransmissions
solaris_auth=Authentication
solaris_none=Aucune
solaris_des=DES
solaris_krb=Kerberos
solaris_public=Montage WebNFS?
solaris_quotab=Activer les quotas au d閙arrage?
solaris_onerror=Action sur erreur
solaris_toosoon=D閘ai de r閜aration
solaris_time_s=Secondes
solaris_time_m=Minutes
solaris_time_h=Heures
solaris_time_d=Jours
solaris_time_w=Semaines
solaris_time_y=Ann閑s
solaris_noatime=Mettre  jour les temps d'acc鑣?
solaris_force=Forcer Entr閑/Sortie directe?
solaris_nolarge=Permettre les grands fichiers?
solaris_logging=Activer la journalisation?
solaris_nrr=Ignorer les attributs Unix?
solaris_notraildot=Ignorer les train閑s de points?
solaris_nomaplcase=Utiliser les minuscules?
solaris_foldcase=Forcer les minuscules?
solaris_noopts=Aucune option disponible
solaris_size=Taille
solaris_max=Maximum
solaris_backfs=Type de syst鑝e de fichier r閑l
solaris_backpath=Cible de montage r閑l
solaris_cachedir=R閜ertoire tampon
solaris_wmode=Mode d'閏riture
solaris_con=V閞ification de consistance
solaris_period=P閞iodique
solaris_never=Jamais
solaris_demand=Sur demande
solaris_waround=蒫rit-Autour
solaris_nshared=Non-partag
solaris_local=V閞ifier les permissions dans le tampon?
solaris_nobrowse=Liste allou閑?
solaris_auto=Automatique
solaris_mname=Nom d'h魌e du serveur
solaris_cname=Nom de client
solaris_username=Nom d'utilisateur
solaris_password=Mot de passe
solaris_uid=Fichiers d'utilisateurs appartiennent 
solaris_gid=Fichiers de groupes appartiennent 
solaris_fmode=Permission de fichier
solaris_dmode=Permission de r閜ertoire
solaris_readwrite=Les acc鑣 en 閏riture/lecture sont s閏uris閟?
solaris_readonly=Les fichiers peuvent 阾re en lecture seule?
solaris_noupper=Envoyer le mot de passe en majuscule?
solaris_attr=Utiliser la commande "attrE"?
solaris_eurl=$1 n'est pas une adresse NFS valide
solaris_ehost=$1 n'est pas un nom d'h魌e valide
solaris_ehost2=L'h魌e $1 n'existe pas
solaris_edown=L'h魌e $1 est arr阾 ou ne supporte pas NFS
solaris_enfs=L'h魌e $1 ne supporte pas NFS
solaris_enfsdir=$1 n'est pas un nom de r閜ertoire valide.  Les r閜ertoires valides sur $2 sont : $3
solaris_enfsperm=Cet h魌e n'est pas autoris  monter le r閜ertoire $1 sur $2
solaris_enfsmount=Erreur NFS - $1
solaris_ectrlr=$1 n'est pas un contr鬺eur SCSI valide
solaris_etarget=$1 n'est pas un num閞o de cible SCSI valide
solaris_eunit=$1 n'est pas un num閞o d'unit SCSI valide
solaris_epart=$1 n'est pas un num閞o de partition SCSI valide
solaris_eraid=$1 n'est pas un num閞o d'unit RAID valide
solaris_epath=$1 n'est pas un chemin valide
solaris_eexist=$1 n'existe pas
solaris_edir=$1 n'est pas un r閜ertoire
solaris_eswapfile=Le fichier de swap $1 n'existe pas
solaris_eopen=Impossible d'ouvrir $1 : $2
solaris_ebackfs=Le syst鑝e de fichier arri鑢e $1 n'est pas mont
solaris_ebacktype=Le syst鑝e de fichier arri鑢e $1 n'est pas $2
solaris_ecsrc=$1 n'est pas une source tampon valide
solaris_eautomap=Nom de plan d'automontage manquant
solaris_eautofile=Le fichier de plan $1 n'existe pas
solaris_etarget2=La cible SCSI $1 n'existe pas
solaris_epart2=La partition SCSI $1 n'existe pas
solaris_eraid2=Le p閞iph閞ique RAID $1 n'existe pas
solaris_enopart=Aucune partition sur $1
solaris_edevfile=Le fichier de p閞iph閞ique $1 n'existe pas
solaris_edevice=Le p閞iph閞ique $1 n'existe pas
solaris_efstyp=Le p閞iph閞ique $1 est format en $2
solaris_efstyp2=Impossible de v閞ifier le type de syst鑝e de fichier : $1
solaris_ecachedir=$1 n'est pas un r閜ertoire de tampon valide
solaris_efmode=$1 n'est pas un mode octal de fichier valide
solaris_edmode=$1 n'est pas un mode octal de r閜ertoire valide

linux_eamd=Impossible d'utiliser le service d'automontage
linux_eauto=Automontage impossible : $1
linux_esmbconn=Impossible de se connecter au serveur
linux_ekillamd=Impossible de tuer le service d'automontage
linux_ekillauto=Impossible de tuer le service d'automontage
linux_nfshost=Nom d'h魌e NFS
linux_nfsdir=R閜ertoire NFS
linux_map=Plan d'automontage
linux_swapfile=Fichier de m閙oire virtuelle
linux_disk=Disque
linux_smbserver=Nom de serveur
linux_smbshare=Nom de partage
linux_raid=P閞iph閞ique RAID
linux_rdev=P閞iph閞ique RAID $1 
linux_other=Autre p閞iph閞ique
linux_ro=Lecture seule?
linux_sync=Tampon d'閏riture sur le syst鑝e de fichier?
linux_nodev=Permettre les fichiers de p閞iph閞iques?
linux_noexec=Permettre l'ex閏ution de fichiers ex閏utables?
linux_nosuid=Interdire les programmes changant de num閞o d'utilisateur (suid)?
linux_user=Permettre au utilisateurs de monter ce syst鑝e de fichier?
linux_check=Mode de v閞ification
linux_normal=Normal
linux_strict=Strict
linux_none=Aucun
linux_errors=Action sur erreur
linux_continue=Continuer
linux_remount_ro=Remonter en lecture-seule
linux_panic=Paniquer
linux_grpid=Les fichier h閞itent du num閞o de groupe du parent?
linux_quotas=Utiliser les quotas?
linux_usrquota=Utilisateurs seulement
linux_grpquota=Groupes seulement
linux_usrgrpquota=Utilisateurs et groupes
linux_usrgrpquota2=Utilisateurs et groupes (INSTABLE!)
linux_resuid=Espace r閟erv pour l'utilisateur
linux_resgid=Espace r閟erv pour le groupe
linux_bg=R閑ssayer le montage en arri鑢e-plan?
linux_soft=Retourner une erreur sur une expiration de d閘ais?
linux_timeo=D閘ais d'expiration
linux_retrans=Nombre de retransmissions
linux_vers=Version NFS
linux_high=Plus haute
linux_port=Port NFS
linux_intr=Autoriser l'interruption par un utilisateur?
linux_tcp=Protocole RPC
linux_uid=Les fichiers d'utilisateurs appartiennent 
linux_gid=Les fichiers de groupes appartiennent 
linux_rules=R鑗les de nommage des fichiers
linux_relaxed=Tranquille
linux_conv=Conversion des nouvelles lignes DOS-Unix
linux_allfiles=Tous les fichiers
linux_textfiles=Fichiers texte uniquement
linux_umask=Masque de permissions des fichiers
linux_quiet=Noter les erreurs des tentatives de <tt>chown</tt>?
linux_uni_xlate=Convertir les caract鑢e Unicode?
linux_posix=Autoriser les noms qui diff鑢ent que par la casse?
linux_conv2=Conversion des nouvelles lignes OS/2-Unix?
linux_rock=Ignorer les attributs Unix?
linux_mode=Permissions des fichiers pour des CDs non-Unix
linux_noopts=Aucune option disponible
linux_timeout=Temps d'inactivit avant de d閙onter
linux_pid_file=蒫rire le num閞o de processus dans un fichier
linux_secs=secondes
linux_smbwarn=Attention! Le syst鑝e de fichier n'a pas 閠 mont depuis Webmin, donc les options ne sont pas disponibles
linux_username=Nom d'utilisateur
linux_password=Mot de passe
linux_sname=Nom de serveur
linux_wg=Groupe de travail
linux_auto=Automatique
linux_cname=Nom du client
linux_mname=Adresse du serveur
linux_fmode=Permissions des fichiers
linux_dmode=Persmissions des r閜etoires
linux_ehost=$1 n'est pas un nom d'h魌e valide
linux_ehost2=L'h魌e $1 n'existe pas
linux_edown=L'h魌e $1 est arr阾
linux_enfs=L'h魌e $1 ne supporte pas NFS
linux_elist=Impossible de lire les montages : $1
linux_enfsdir=$1 n'est pas un nom de r閜ertoire valide. Les r閜ertoires valides sur $2 sont : $3
linux_enfsperm=Cet h魌e n'est pas autoris  monter le r閜ertoire $1 sur $2
linux_enfsmount=Erreur NFS - $1
linux_eautomap=Le fichier map de l'automonteur '$1' n'existe pas
linux_edev=Aucun p閞iph閞ique entr
linux_edevfile=Le fichier p閞iph閞ique '$1' n'existe pas
linux_emask='$1' n'est pas un masque octal valide
linux_etimeout='$1' n'est pas un d閘ai d'expiration valide
linux_epidfile='$1' n'est pas un fichier de num閞o de processus valide
linux_efmode='$1' n'est pas mode octal de fichier valide
linux_edmode='$1' n'est pas un mode octal de r閜ertoire valide

  0707010000bb55000081a40000000000000002000000013ac0388c00002cad000000200000000000000000000000000000001400000003reloc/mount/lang/hu   index_title=Lemez 閟 h醠髗ati filerendszerek
index_dir=Csatol醩 helye
index_type=T韕us
index_dev=Eszk鰖
index_use=Haszn醠va van?
index_perm=羖land?
index_add=Csatol醩 hozz醓d醩a
index_auto=Automatic
index_swap=Virtu醠is mem髍ia
index_return=a filerendszerek list醞醜oz

edit_title=Csatol醩 szerkeszt閟e
create_title=Csatol醩 k閟z韙閟e
edit_err=A csatol醩 szerkeszt閟e nem siker黮t
edit_egone=Ez a csatol醩 a tov醔biakban m醨 nem 閘
edit_header=$1 csatol醩 be醠l韙醩ai
edit_dir=Csatol醩 helye
edit_swap=Virtu醠is mem髍ia
edit_size=M閞ete
edit_free=Ebb鮨 szabad
edit_savemount=Csatol醩 ment閟e?
edit_boot=Ment閟 閟 csatol醩 rendszerindul醩kor
edit_save=Ment閟
edit_delete=T鰎l閟
edit_dont=Ne mentse
edit_now=Csatoljam?
edit_mount=Csatol醩
edit_dont2=Ne mentse
edit_unmount=Lecsatol醩
edit_order=Filerendszer ellen鮮z閟e a rendszer indul醩akor?
edit_first=Ellen鮮z閟 el鮯z鰎
edit_second=Ellen鮮z閟 m醩odszor
edit_adv=Egy閎 csatol醩i opci髃
edit_list=Felhaszn醠髃 list醶醩a

save_err=A csatol醩 ment閟e nem siker黮t
save_edir='$1' nem k鰊yvt醨
save_edirname='$1' egy helytelen k鰊yvt醨n関
save_ealready='$1' m醨 egyszer csatolva van
save_ealready2='$1' hely閞e m醨 van csatolva filerendszer
save_ealready3=A k鰊yvt醨 ('$1') m醨 csatolva van.
save_ealready4=A k鰊yvt醨 ('$1') m醨 ki van jel鰈ve egy csatol醩hoz.
save_emkdir=A k鰊yvt醨 - $1 - l閠rehoz醩a nem siker黮t : $2
save_eumount=A $1 lecsatol醩a nem siker黮t
save_emount=A $1 csatol醩a nem siker黮t
save_perm=$1 csatol醩 v醠toztat醩ai nem 閞v閚yes韙het鮧, mert jelenleg is haszn醠at alatt van. Hogy a v醠toztat醩 r鰃z韙ve legyen az 醠land csatol醩ok list醞醔an, kattintson a lenti gombra.
save_apply=Hozz醓d醩 az 羖land List醜oz
save_eremount=Az 鷍racsatol醩 nem siker黮t : $1
save_enone=Nem v醠asztott ment閟t vagy csatol醩t

swap_err=A swap file l閠rehoz醩a nem siker黮t
swap_esize='$1' nem elfogadhat m閞et

nfs_server=V醠asszon NFS kiszolg醠髏...
nfs_select=V醠asszon NFS kiszolg醠髏 a csatol醩hoz...
nfs_ip=IP c韒
nfs_host=hostn関
nfs_none=Helyi NFS kiszolg醠 nem tal醠hat
nfs_choose=$1 kiszolg醠髇 v醠aszzon NFS-k鰊yvt醨at
nfs_failed=A(z) $1 kiszolg醠 NFS kiaj醤l醩ainak lek閞閟e nem siker黮t : $2 Elk閜zelhet, hogy nem fut az NFS kiszolg醠.
nfs_seldir=V醠asszon NFS-k鰊yvt醨at a csatol醩hoz...
nfs_dir=K鰊yvt醨
nfs_clients=Kliens

smb_choose=V醠asszon SMB kiszolg醠髏...
smb_elist=A(z) $1 kiszolg醠 list醞醤ak lek閞閟e nem siker黮t. Lehets間es, hogy a kiszolg醠 nem enged閘yezi a b鰊g閟z閟t.
smb_ehost=$1 kiszolg醠 nem l閠ezik
smb_edown=A(z) $1 kiszolg醠 le van 醠l韙va, el閞hetetlen vagy nem file-kiszolg醠
smb_sel=V醠assza ki a csatoland Windows H醠髗atok kiszolg醠髏
smb_name=Kiszolg醠 neve
smb_desc=Le韗醩
smb_none=Helyi Windows H醠髗atok kiszolg醠 nem tal醠hat
smb_choose2=V醠asszon megoszt醩t a(z) $1 kiszolg醠髇
smb_elist2=Nem siker黮t lek閞ni a megoszt醩i list醫 a(z) $1 kiszolg醠髍髄. Elk閜zelhet, hogy a kiszolg醠髇 a b鰊g閟z閟 le van tiltva.
smb_sel2=V醠asszon megoszt醩t a csatol醩hoz...
smb_share=Megoszt醩
smb_comment=Megjegyz閟
smb_noshares=Nincs el閞het filemegoszt醩 a(z) $1 kiszolg醠髇.

solaris_scsidev=SCSI vez閞l $1 target $2 egys間 $3 part韈i $4
solaris_mddev=$1 RAID eszk鰖
solaris_ecacheexists=$1 nev k鰊yvt醨 m醨 l閠ezik. (T鰎鰈je le)
solaris_ebusy=$1 foglalt
solaris_ekill=A rumba lel鰒閟e nem siker黮t
solaris_epid=A rumba PID-je nem tal醠hat
solaris_nsource=NFS forr醩
solaris_nhost=NFS hostname
solaris_ndir=NFS k鰊yvt醨
solaris_nmult=T鯾bsz鰎鰏 NFS kiszolg醠
solaris_webnfs=WebNFS URL
solaris_ufs=UFS lemez
solaris_scsi=SCSI lemez
solaris_ctrlr=Vez閞l
solaris_target=C閘
solaris_unit=Egys間
solaris_part=Part韈i
solaris_raid=RAID eszk鰖
solaris_otherdev=M醩 eszk鰖
solaris_swapfile=Swap file
solaris_file=File
solaris_cdrom=CDROM
solaris_msdos=MS-DOS lemez
solaris_orig=Eredeti k鰊yvt醨
solaris_cache=Cache forr醩
solaris_automap=Autocsatol t閞k閜
solaris_autohosts=謘szes NFS export
solaris_autoxfn=Federated Naming szolg醠tat醩
solaris_server=Kiszolg醠 neve
solaris_share=Megoszt醩 neve
solaris_ro=Csak olvashat?
solaris_nosuid=Setuid-os programok tilt醩a?
solaris_grpid=A file-ok 鰎鰇鰈j閗 a sz黮鮧 GID-j醫?
solaris_soft=Id鮰鷏l閜閟 eset閚 visszat閞閟 hib醰al?
solaris_bg=Csatol醩 鷍rapr骲醠醩a h醫t閞ben?
solaris_quota=Kv髏醟 megjelen韙閟e?
solaris_nointr=Felhaszn醠 megszak韙醩ainak enged閘yez閟e?
solaris_nfsver=NFS verzi
solaris_highest=Legmagasabb
solaris_proto=Protokol
solaris_port=NFS port
solaris_timeo=Id鮰鷏l閜閟
solaris_retrans=趈raad醩ok sz醡a
solaris_auth=Azonos韙醩
solaris_none=Nincs
solaris_des=DES
solaris_krb=Kerberos
solaris_public=WebNFS csatol醩?
solaris_quotab=Kv髏a enged閘yez閟e rendszerind韙醩n醠?
solaris_onerror=Tev閗enys間 hiba eset閚
solaris_toosoon=Jav韙醩i k閟leltet閟
solaris_time_s=M醩odpercek
solaris_time_m=Percek
solaris_time_h=觬醟
solaris_time_d=Napok
solaris_time_w=Hetek
solaris_time_y=蓈ek
solaris_noatime=Hozz醘閞閟i id鮧 friss韙閟e?
solaris_force=K鰖vetlen IO er鰈tet閟e?
solaris_nolarge=Nagy file-ok enged閘yez閟e?
solaris_logging=Napl髗醩 enged閘yez閟e?
solaris_nrr=Unix tulajdons醙ok mell鮶閟e?
solaris_notraildot=A karakterl醤c v間i pontok (trailing dot) figyelmen k韛黮 hagy醩a?
solaris_nomaplcase=Kisbet鹝 haszn醠ata?
solaris_foldcase=Kisbet鹝 er鰈tet閟e?
solaris_noopts=Nincs el閞het opci
solaris_size=M閞et
solaris_max=Maximum
solaris_backfs=T閚yleges filerendszer t韕us
solaris_backpath=T閚yleges csatol醩i pont
solaris_cachedir=Cache k鰊yvt醨
solaris_wmode=蛂醩i m骴
solaris_con=Consistency check
solaris_period=Ism閠l鮠
solaris_never=Soha
solaris_demand=K閞閟re
solaris_waround=Write-around
solaris_nshared=Nem megosztott
solaris_local=Jogosults醙ok ellen鮮z閟e a cache-ben?
solaris_nobrowse=B鰊g閟z閟 bekapcsolva?
solaris_auto=Automatikus
solaris_mname=Kiszolg醠 hostname-je
solaris_cname=Kliens neve
solaris_username=Login n関
solaris_password=Login jelsz
solaris_uid=A felhaszn醠骾 file-ok tulajdonosa
solaris_gid=A csoportfile-ok tulajdunosa
solaris_fmode=File jogosults醙ok
solaris_dmode=K鰊yvt醨 jogosults醙ok
solaris_readwrite=Biztons醙os 韗醩/olvas醩 hozz醘閞閟?
solaris_readonly=Lehetnek a file-ok csak-olvashat髃?
solaris_noupper=Elk黮dje a jelsz髏 nagybet鹲k閚t?
solaris_attr=attrE parancs haszn醠ata?
solaris_eurl='$1' 閞v閚ytelen NFS URL
solaris_ehost='$1' nem megfelel hostname.
solaris_ehost2=A(z) '$1' host nem l閠ezik.
solaris_edown=A(z) '$1' host le van 醠l韙va vagy nem t醡ogatja az NFS-t.
solaris_enfs=A(z) '$1' host nem t醡ogatja az NFS-t.
solaris_enfsdir=A(z) '$1' helytelen k鰊yvt醨n関. Az el閞het k鰊yv醫rak a(z) $2 -n: $3
solaris_enfsperm=Ez a host-on nem enged閘yezett a(z) $1 k鰊yvt醨 csatol醩a $2 -n.
solaris_enfsmount=NFS hiba - $1
solaris_ectrlr=A(z) '$1' 閞v閚ytelen SCSI vez閞l
solaris_etarget='$1' egy helytelen SCSI target sz醡
solaris_eunit='$1' egy 閞v閚ytelen SCSI egys間 sz醡
solaris_epart='$1' egy helytelen SCSI part韈i sz醡
solaris_eraid='$1' egy 閞v閚ytelen RAID egys間 sz醡
solaris_epath='$1' egy 閞v閚ytelen 鷗vonaln関
solaris_eexist='$1' nem l閠ezik
solaris_edir='$1' nem k鰊yvt醨
solaris_eswapfile=A(z) $1 swap file nem l閠ezik
solaris_eopen=Nem siker黮t megnyitni a(z) $1 : $2
solaris_ebackfs=A(z) '$1'  back filerendszer nincs csatolva
solaris_ebacktype=A back filesystem '$1' nem pedig $2
solaris_ecsrc='$1' egy 閞v閚ytelen cache forr醩
solaris_eautomap=Hi醤yz autocsatol t閞k閜n関
solaris_eautofile=A(z) '$1' t閞k閜file nem l閠ezik
solaris_etarget2=A(z) '$1' SCSI target nem l閠ezik
solaris_epart2=A(z) '$1' SCSI part韈i nem l閠ezik
solaris_eraid2=A(z) '$1' RAID eszk鰖 nem l閠ezik
solaris_enopart=A '$1' eszk鰖鰊 nincs part韈i
solaris_edevfile=A '$1' eszk鰖file nem l閠ezik
solaris_edevice=A(z) '$1' eszk鰖 nem l閠ezik.
solaris_efstyp=A(z) '$1' eszk鰖 $2 t韕us鷕a van format醠va.
solaris_efstyp2=Nem siker黮t a filerendszer t韕us醤ak ellen鮮z閟e : $1
solaris_ecachedir='$1' egy 閞v閚ytelen cache k鰊yvt醨.
solaris_efmode='$1' egy 閞v閚ytelen okt醠is filem骴.
solaris_edmode='$1' egy 閞v閚ytelen okt醠is k鰊yvt醨m骴.

linux_eamd=Az AMD nem siker黮t
linux_eauto=Az autocsatol醩 nem siker黮t : $1
linux_esmbconn=Sikertelen csatlakoz醩 a kiszolg醠骽oz
linux_ekillamd=Az AMD le醠l韙醩a nem siker黮t
linux_ekillauto=Az automount le醠l韙醩a nem siker黮t
linux_nfshost=NFS hostn関
linux_nfsdir=NFS k鰊yvt醨
linux_map=Autocsatol t閞k閜
linux_swapfile=Swap file
linux_disk=Lemez
linux_smbserver=Kiszolg醠 neve
linux_smbshare=Megoszt醩 neve
linux_other=M醩 eszk鰖
linux_ro=Csak olvashat?
linux_sync=Buffer 韗醩a a filerendszerre?
linux_nodev=Eszk鰖file-ok enged閘yez閟e?
linux_noexec=Bin醨isok futtat醩醤ak enged閘yez閟e?
linux_nosuid=Setuid-s programok tilt醩a?
linux_user=Filerendszer csatol醩醤ak enged閘yez閟e felhaszn醠髃 sz醡醨a?
linux_check=Ellen鮮z閟 m骴ja
linux_normal=Szok醩os
linux_strict=Pontos
linux_none=Nincs
linux_errors=Reakci hiba eset閚
linux_continue=Folytat醩
linux_remount_ro=趈racsatol csak olvashat髃閚t
linux_panic=P醤ik
linux_grpid=A file-ok 鰎鰇鰈j閗 a sz黮鮧 GID-j醫?
linux_quotas=Kv髏醟 haszn醠ata?
linux_usrquota=Csak felhaszn醠
linux_grpquota=Csak csoport
linux_usrgrpquota=Felhaszn醠 閟 csoport
linux_usrgrpquota2=Felhszn醠 閟 csoport (INSTABIL!)
linux_resuid=Felhaszn醠 sz醡醨a fentartott hely
linux_resgid=Csoport sz醡醨a fentartott hely
linux_bg=Csatol醩 鷍rapr骲醠醩a a h醫t閞ben?
linux_soft=Id鮰鷏l閜閟 eset閚 visszat閞閟 hiba鼁enettel?
linux_timeo=Id鮤at醨-t鷏l閜閟
linux_retrans=趈raad醩ok sz醡a
linux_vers=NFS verzi
linux_high=Legmagasabb
linux_port=NFS port
linux_intr=Felhaszn醠骾 megszak韙醩 enged閘yez閟e?
linux_tcp=RPC protokol
linux_uid=A felhaszn醠骾 file-ok tulajdonosa
linux_gid=A csoport file-jainak tulajdonosa
linux_rules=File-elnevez閟i szab醠yok
linux_relaxed=Enyh韙ett
linux_conv=DOS-Unix 鷍sor konverzi
linux_allfiles=謘szes file
linux_textfiles=Csak sz鰒egfile-ok
linux_umask=File-jogosults醙 maszk
linux_quiet=Hibajelent閟 <tt>chown</tt> k韘閞let eset閚?
linux_uni_xlate=Unicode karakterek ford韙醩a?
linux_posix=Olyan nevek enged閘yez閟e, melyek csak kis- 閟 nagybet鹝ben k黮鰊b鰖nek?
linux_conv2=OS/2-Unix 鷍sor konverzi
linux_rock=Unix tulajdons醙ok mell鮶閟e?
linux_mode=A nem-Unix CD-k file-jogosults醙ai
linux_noopts=Nincs tov醔bi kapcsol
linux_timeout=A lecsatol醩 el鮰ti t閠lens間 ideje
linux_pid_file=PID 韗醩a file-ba
linux_secs=m醩odpercek
linux_smbwarn=Figyelem! A filerendszer nem lett csatolva a Webmin sz醡醨a, 韌y az opci髃 nem el閞het鮡k
linux_username=Login azonos韙
linux_password=Login jelsz
linux_sname=Kiszolg醠 neve
linux_wg=Munkacsoport
linux_auto=Automatikus
linux_cname=Kliens neve
linux_mname=A kiszolg醠 cime
linux_fmode=File enged閘yei
linux_dmode=K鰊yvt醨 enged閘yei
linux_ehost='$1' nem megfelel hostname
linux_ehost2='$1' host nem l閠ezik
linux_edown='$1' host nem v醠aszol
linux_enfs=A(z) '$1' host nem t醡ogatja az NFS-t
linux_elist=Hiba t鰎t閚t a csatol醩i lista let鰈t閟閎en : $1
linux_enfsdir='$1' egy 閞v閚ytelen k鰊yvt醨n関. Az el閞het k鰊yvt醨ak a $2 kiszolg醠髇 : $3
linux_enfsperm=Ezen a host-on nem enged閘yezett a(z) $1 k鰊yvt醨 csatol醩a a $2 kiszolg醠髍髄.
linux_enfsmount=NFS hiba - $1
linux_eautomap=A(z) '$1' automount t閞k閜file nem l閠ezik
linux_edev=Nem t鰎t閚t eszk鰖megad醩
linux_edevfile=A(z) '$1' eszk鰖 nem l閠ezik
linux_emask=A(z) '$1' nem 閞v閚yes okt醠is maszk
linux_etimeout='$1' egy 閞v閚ytelen id鮰鷏l閜閟-閞t閗.
linux_epidfile=A(z) '$1' 閞v閚ytelen PID file
linux_efmode='$1' egy 閞v閚ytelen okt醠is file m骴.
linux_edmode='$1' egy 閞v閚ytelen okt醠is k鰊yvt醨 m骴.
   0707010000bb56000081a40000000000000002000000013ac0388c00002fec000000200000000000000000000000000000001400000003reloc/mount/lang/pl   index_title=Lokalne i sieciowe systemy plik體
index_dir=Zamontowany w
index_type=Typ
index_dev=Lokalizacja
index_use=U縴wany?
index_perm=Na sta砮?
index_add=Zamontuj nowy
index_auto=Nieznany typ
index_swap=Pami赕 wirtualna
index_return=listy system體 plik體

edit_title=Zmie montowanie
create_title=Zamontuj nowy
edit_err=Nie uda硂 sie zmieni montowania
edit_egone=Ten system plik體 ju nie jest zamontowany
edit_header=Parametry montowania $1
edit_dir=Zamontowany jako
edit_swap=Pami赕 wirtualna
edit_size=Rozmiar
edit_free=Wolne
edit_savemount=Zachowa montowanie?
edit_boot=Zachowa i&nbsp;montowa przy starcie
edit_save=Zachowa
edit_delete=Skasowa
edit_dont=Nie zachowywa
edit_now=Zamontowa teraz?
edit_mount=Tak
edit_dont2=Nie
edit_unmount=Odmontowa
edit_order=Sprawdza system plik體 przy starcie?
edit_first=Sprawdzaj jako pierwszy
edit_second=Sprawdzaj jako drugi
edit_adv=Zaawansowane opcje montowania
edit_list=Poka u縴tkownik體
edit_create=Zachowaj i zamontuj
edit_save_apply=Zachowaj i zastosuj
edit_umount=Odmontuj
edit_mount=Zamontuj
edit_perm=Na sta砮
edit_del_umount=Odmontuj i skasuj

save_err=Nie uda硂 sie zachowa montowania
save_edir='$1' nie jest katalogiem
save_edirname='$1' nie jest poprawn nazw katalogu
save_ealready='$1' jest ju zamontowany
save_ealready2='$1' jest ju przeznaczony do zamontowania
save_ealready3=Katalog '$1' jest ju zamontowany
save_ealready4=Katalog '$1' ma ju przypisane montowanie
save_emkdir=Nie uda硂 si utworzy katalogu $1&nbsp;: $2
save_eumount=Odmontowanie si nie powiod硂&nbsp;: $1
save_emount=Montowanie si nie powiod硂&nbsp;: $1
save_perm=Zmiany montowania $1 nie mog by wykonane, gdy to montowanie jest aktualnie u縴wane. Je秎i chcesz, 縠by zosta硑 jedynie wykonane zmiany na li禼ie montowa sta硑ch, naci秐ij przycisk poni縠j.
save_apply=Zastosuj do listy montowa sta硑ch
save_eremount=Przemontowanie si nie powiod硂&nbsp;: $1
save_enone=Nie wybra砮 zachowania ani zamontowania

swap_err=Nie uda硂 si utworzy pliku wymiany
swap_esize='$1' nie jest poprawnym rozmiarem

nfs_server=Wybierz serwer NFS..
nfs_select=Wybierz serwer NFS, z&nbsp;kt髍ego montowa..
nfs_ip=IP Adres
nfs_host=Komputer
nfs_none=Nie znaleziono 縜dnego lokanego serwera NFS
nfs_choose=Wybierz katalog NFS na $1
nfs_failed=Nie uda硂 si uzyska listy katalog體 udost阷nianych po NFS z&nbsp;$1&nbsp;: $2 By mo縠 nie dzia砤 縜den serwer NFS.
nfs_seldir=Wybierz katoalog NFS do zamontowania..
nfs_dir=Katalog
nfs_clients=Klienci

smb_choose=Wybierz serwer SMB..
smb_elist=Nie uda硂 sie uzyskac listy srwer體 z&nbsp;$1. Mo縧iwe, 縠 serwer nie pozwala na przegl眃anie
smb_ehost=Serwer $1 nie istnieje
smb_edown=Serwer $1 jest wy潮czony, nieosi眊alny lub nie jest serwerem plik體
smb_sel=Wybierz serwer Sieci Windows, zkt髍ego zamontowa..
smb_name=Nazwa serwera
smb_desc=Opis
smb_none=Nie znaleziono 縜dnego lokalnego serwera Sieci Windows
smb_choose2=Wybierz zas骲 na $1
smb_elist2=Nie uda硂 si uzyska listy zasob體 z&nbsp;$1. By mo縠 serwer nie pozwala na przegl眃anie.
smb_sel2=Wybierz zas骲 do zamontowania..
smb_share=Zas骲
smb_comment=Opis
smb_noshares=Brak dost阷nych zasob體 plikowych na serwerze $1

solaris_scsidev=Kontroler SCSI $1 urz眃zenie $2 unit $3 partycja $4
solaris_mddev=Urz眃zenie RAID $1
solaris_ecacheexists=Katalog $1 ju istnieje. Skasuj go.
solaris_ebusy=$1 jest zaj阾y
solaris_ekill=Nie uda硂 si zabi rumby
solaris_epid=Nie uda硂 si znale兼 numeru pid rumby
solaris_nsource=瑀骴硂 NFS
solaris_nhost=Nazwa komputera NFS
solaris_ndir=Katalog NFS
solaris_nmult=Wiele serwer體 NFS
solaris_webnfs=WebNFS URL
solaris_ufs=Dysk UFS
solaris_scsi=Dysk SCSI/IDE
solaris_ctrlr=Kontroler
solaris_target=Target
solaris_unit=Unit
solaris_part=Partycja
solaris_raid=Urz眃zenie RAID
solaris_otherdev=Inne urz眃zenie
solaris_swapfile=Plik wymiany
solaris_file=Plik
solaris_cdrom=CDROM
solaris_dvd=DVD
solaris_msdos=Dysk MS-DOS
solaris_orig=Katalog oryginalny
solaris_cache=瑀骴硂 cache
solaris_automap=Automounter map
solaris_autohosts=Wszystkie zasoby udost阷niane po NFS
solaris_autoxfn=Federated Naming Service
solaris_server=Nazwa serwera
solaris_share=Nazwa zasobu
solaris_ro=Tylko do odcztytu?
solaris_nosuid=Zablokowa programy setuid?
solaris_grpid=Pliki dziedzicz nr GID nadrz阣nego?
solaris_soft=Zg砤sza b酬dy przy timeoutach?
solaris_bg=Powtarza pr骲y montowania w&nbsp;tle?
solaris_quota=Wy秝ietli quota?
solaris_nointr=Pozwoli na przerwanie przez u縴tkownika?
solaris_nfsver=Wersja NFS
solaris_highest=Najwy縮za
solaris_proto=Protok蟪
solaris_port=Port NFS
solaris_timeo=Timeout
solaris_retrans=Liczba retransmisji
solaris_auth=Autoryzacja
solaris_none=Brak
solaris_des=DES
solaris_krb=Kerberos
solaris_public=Montowanie WebNFS?
solaris_quotab=W潮czy quota przy starcie?
solaris_onerror=Reakcja na b潮d
solaris_toosoon=Op蠹nienie naprawy
solaris_time_s=Sekund
solaris_time_m=Minut
solaris_time_h=Godzin
solaris_time_d=Dni
solaris_time_w=Tygodni
solaris_time_y=Lat
solaris_noatime=Aktualizowa czasy dost阷u?
solaris_immed=Natychmiast
solaris_defer=Z&nbsp;op蠹nieniem
solaris_force=Wymusi bezpo秗ednie We/Wy?
solaris_nolarge=Pozwoli na du縠 pliki?
solaris_logging=W潮czone logowanie?
solaris_nrr=Zignorowa atrybuty uniksowe?
solaris_notraildot=Zignorowa kropk ko馽z眂?
solaris_nomaplcase=U縴wa ma硑ch liter?
solaris_foldcase=Wymusi ma砮 litery?
solaris_noopts=Brak opcji
solaris_size=Rozmiar
solaris_largebsize=U縴 du縠go rozmiaru bloku?
solaris_max=Maksymalny
solaris_backfs=Typ rzeczywistego systemu plik體
solaris_backpath=Rzeczywisty katalog montowania
solaris_cachedir=Katalog cache
solaris_wmode=Tryb zapisu
solaris_con=Kontrola sp骿no禼i
solaris_period=Okresowa
solaris_never=Brak
solaris_demand=Na 勘danie
solaris_waround=Write-around
solaris_nshared=Nie wsp蟪dzielony
solaris_local=Sprawdza uprawnienia w&nbsp;cache?
solaris_nobrowse=Wolno przegl眃a?
solaris_auto=Automatycznie
solaris_mname=Nazwa serwera
solaris_cname=Nazwa klienta
solaris_username=Nazwa logowania
solaris_password=Has硂 logowania
solaris_uid=W砤禼icielem plik體 jest u縴tkownik
solaris_gid=Grup plik體 jest
solaris_fmode=Prawa do plik體
solaris_dmode=Prawa do katalog體
solaris_readwrite=Dost阷 do odczytu i&nbsp;zapisu jest bezpieczny?
solaris_readonly=Pliki mog by tylko do odczytu?
solaris_noupper=Wysy砤j has砤 wielkimi literami?
solaris_attr=Uzywa polece attrE?
solaris_eurl='$1' nie jest poprawnym URLem NFS
solaris_ehost='$1' nie jest poprawn nazw komputera
solaris_ehost2=Komputer '$1' nie istnieje
solaris_edown=Komputer '$1' jest wy潮czony lub nie obs硊guje NFSu
solaris_enfs=Komputer '$1' nie obs硊guje NFSu
solaris_enfsdir='$1' nie jest poprawn nazw katalogu. Dost阷nymi katalogami na $2 s&nbsp;: $3
solaris_enfsperm=Ten komputer nie ma prawa montowa katalogu $1 z&nbsp;$2
solaris_enfsmount=B潮d NFS - $1
solaris_ectrlr='$1' nie jest poprawnym kontrolerem SCSI
solaris_etarget='$1' nie jest poprawnym SCSI numerem urz眃zenia
solaris_eunit='$1' nie jest poprawnym SCSI unit number
solaris_epart='$1' nie jest poprawnym numerem partycji SCSI
solaris_eraid='$1' nie jest poprawnym numerem jednostki RAID
solaris_epath='$1' nie jest poprawn 禼ie縦
solaris_eexist='$1' nie istnieje
solaris_edir='$1' nie jest katalogiem
solaris_eswapfile=Plik wymiany '$1' nie istnieje
solaris_eopen=Nie uda硂 sie otworzy $1&nbsp;: $2
solaris_ebackfs=The back filesystem '$1' is not mounted
solaris_ebacktype=The back filesystem is '$1' is not $2
solaris_ecsrc='$1' nie jest poprawnym 紃骴砮m cache
solaris_eautomap=Brak nazwy pliku mapy automountera
solaris_eautofile=Plik mapy '$1' nie istnieje
solaris_etarget2=Urz眃zenie SCSI dla '$1' nie istnieje
solaris_epart2=Partycja SCSI '$1' nie istnieje
solaris_eraid2=Urz眃zenie RAID '$1' nie istnieje
solaris_enopart=Brak partycji na '$1'
solaris_edevfile=Plik urz眃zenia '$1' nie istnieje
solaris_edevice=Urz眃zenie '$1' nie istnieje
solaris_efstyp=Urz眃zenie '$1' jest sformatowane jako $2
solaris_efstyp2=Nie uda硂 si sprawdzi rodzaju systemu plik體&nbsp;: $1
solaris_ecachedir='$1' nie jest poprawnym katalogiem cache
solaris_efmode='$1' nie jest poprawnym trybem 髎emkowym dla plik體
solaris_edmode='$1' nie jest poprawnym trybem 髎emkowym dla katalog體

linux_eamd=AMD zawi骴
linux_eauto=Nieudane automatyczne montowanie: $1
linux_esmbconn=Nie uda硂 si po潮czy z&nbsp;serwerem
linux_ekillamd=Nie uda硂 si zabi AMD
linux_ekillauto=Nie uda硂 si zabi procesu automount
linux_nfshost=Nazwa serwera NFS
linux_nfsdir=Katalog NFS
linux_map=Mapa automountera
linux_swapfile=Plik wymiany
linux_disk=Dysk
linux_smbserver=Nazwa serwera
linux_smbshare=Nazwa zasobu
linux_raid=Urz眃zenie RAID
linux_rdev=Urz眃zenie RAID $1
linux_cddev=Nap阣 CD-ROM
linux_label=Partycja oznaczona $1
linux_lsel=Partycja oznaczona
linux_other=Inne urz眃zenie
linux_ro=Tylko do odczytu
linux_sync=Zrzuca bufory systemu plik體?
linux_nodev=Pozwoli na pliki urz眃ze?
linux_noexec=Pozwoli na wykonywanie program體?
linux_nosuid=Zablokowa programy setuid-owe?
linux_user=Pozwoli montowa u縴tkownikom?
linux_check=Tryb sprawdzania
linux_normal=Zwyk砮
linux_strict=Dok砤dne
linux_none=Brak
linux_errors=Reakcja na b潮d
linux_continue=Kontynuuj
linux_remount_ro=Montuj tylko do odczytu
linux_panic=Wpadnij w panik
linux_grpid=Pliki dziedzicz nr GID nadrz阣nego?
linux_quotas=U縴wa quota?
linux_usrquota=Tylko dla u縴tkownik體
linux_grpquota=Tylko dla grup
linux_usrgrpquota=Dla u縴tkownik體 i grup
linux_usrgrpquota2=Dla u縴tkownik體 i grup (NIESTABILNE!)
linux_resuid=Zarezerwowana przestrze dla u縴tkownika
linux_resgid=Zarezerwowana przestrze dla grupy
linux_bg=Powtarza pr骲y montowania w&nbsp;tle?
linux_soft=Zg砤sza b酬dy przy timeoutach?
linux_timeo=Timeout
linux_retrans=Liczba retransmisji
linux_vers=Wersja NFS
linux_high=Najwy縮za
linux_port=Port NFS
linux_intr=Pozwoli na przerwanie przez u縴tkownika?
linux_tcp=Protok蟪 RPC
linux_uid=W砤禼icielem plik體 jest u縴tkownik
linux_gid=Grup plik體 jest
linux_rules=Zasady nazewnictwa plik體
linux_relaxed=Swobodne
linux_conv=Zamiana ko馽體 linii DOS-Unix
linux_allfiles=Wszystkie pliki
linux_textfiles=Tylko pliki tekstowe
linux_umask=Maska praw do pliku
linux_quiet=Zg砤sza b潮d przy <tt>chown</tt>?
linux_uni_xlate=T硊maczy znaki w&nbsp;Unikodzie?
linux_posix=Dozwolone nazwy r罂ni眂e si tylko wielko禼i liter?
linux_conv2=Zamiana ko馽體 linii OS/2-Unix
linux_rock=Ignorowa atrybuty uniksowe?
linux_mode=Prawa dost阷u do plik體 dla nie-uniksowych CD
linux_noopts=Brak opcji
linux_timeout=Czas bezczynno禼i przed odmontowaniem
linux_pid_file=Zapisz nr PID do pliku
linux_secs=sekund
linux_smbwarn=Uwaga! System plik體 nie zosta zamontowany z&nbsp;Webmina, wi阠 istniej眂e opcje s niedost阷ne
linux_username=Nazwa logowania
linux_password=Has硂 logowania
linux_sname=Nazwa serwera
linux_wg=Grupa robocza
linux_auto=Automatycznie
linux_cname=Nazwa klienta
linux_mname=Adres serwera
linux_fmode=Prawa do plik體
linux_dmode=Prawa do katalog體
linux_notail=Przehandlowa miejsce za szybko舵?
linux_ehost='$1' nie jest poprawn nazw komputera
linux_ehost2=Komputer '$1' nie istnieje
linux_edown=Komputer '$1' jest wy潮czony
linux_enfs=Komputer '$1' nie obs硊guje NFSu
linux_elist=Nie uda硂 si pobra listy montowa&nbsp;: $1
linux_enfsdir='$1' nie jest poprawn nazw katalogu. Dost阷nymi katalogami na $2 s&nbsp;: $3
linux_enfsperm=Ten komputer nie ma prawa montowa katalogu $1 z&nbsp;$2
linux_enfsmount=B潮d NFS - $1
linux_eautomap=Plik mapy automountera '$1' nie istnieje
linux_edev=Nie podano urz眃zenia
linux_edevfile=Plik urz眃zenia '$1' nie istnieje
linux_emask='$1' nie jest poprawn mask 髎emkow
linux_etimeout='$1' nie jest poprawnym timeoutem
linux_epidfile='$1' nie jest poprawnym plikiem z&nbsp;numerem PID
linux_efmode='$1' nie jest poprawnym trybem 髎emkowym dla plik體
linux_edmode='$1' nie jest poprawnym trybem 髎emkowym dla katalog體

log_mount=Zamontowano $3
log_mount_l=Zamontowano $2 $1 na $3
log_umount=Odmontowano $3
log_umount_l=Odmontowano $2 $1 na $3
log_remount=Przemontowano $3
log_remount_l=Odmontowano $2 $1 na $3
log_create=Utworzono montowanie $3
log_create_l=Utworzono montowanie $2 $1 na $3
log_modify=Zmieniono montowanie $3
log_modify_l=Zmieniono montowanie $2 $1 na $3
log_delete=Usuni阾o montowanie $3
log_delete_l=Usuni阾o montowanie $2 $1 na $3
0707010000bb57000081a40000000000000002000000013ac0388c00002d06000000200000000000000000000000000000001700000003reloc/mount/lang/ru_RU    edit_swap=妈痱筻朦磬 相螯
solaris_webnfs=WebNFS URL
smb_sel2=蔓徨痂蝈 疱耋瘃 潆 祛眚桊钼囗..
save_err=硒栳赅 镳 耦躔囗屙梃 疱耋瘃
linux_rules=橡噔桦 桁屙钼囗 羿殡钼
edit_list=扬桉铌 项朦珙忄蝈脲
linux_normal=皖痨嚯
solaris_file=脏殡
solaris_edmode='$1' 礤 怆弪 漕矬耱桁 疱骅祛 赅蜞腩汔  忸顸戾痂黜铎 觐溴 
linux_tcp=橡铗铌铍 RPC
index_dev=朽耧铍铈屙桢
solaris_nomaplcase=锐镱朦珙忄螯 龛骓栝 疱汨耱?
solaris_backfs=绣嚯 蜩 ..
solaris_enfs=疹耱 '$1' 礤 镱滗屦骅忄弪 NFS
solaris_epart2=SCSI 疣玟咫 潆 '$1' 礤 耋耱怏弪 
solaris_ufs=UFS 蔫耜
solaris_ebacktype=脏殡钼 耔耱屐 '$1' 礤 怆弪 $2
linux_panic=相龛赅
solaris_backpath=绣嚯 蝾麝 祛眚桊钼囗
solaris_scsi=SCSI 蔫耜
linux_conv2=OS/2-Unix 蝠囗耠鲨 镥疱忸漕 耱痤 
solaris_uid=脏殡囔 镱朦珙忄蝈 怆噤邋
solaris_eraid='$1' 礤 怆弪 漕矬耱桁 眍戾痤 RAID 祛潴 
linux_esmbconn=硒栳赅 耦邃桧屙  皴疴屦铎
linux_timeo=亦殪囿
index_dir=鸯铐蜩痤忄 枢
linux_bg=项怛铕睇 祛眚桊钼囗  纛眍忸 疱骅戾?
solaris_edown=疹耱 '$1' 铗觌屙, 桦 礤 镱滗屦骅忄弪 NFS
linux_eamd=硒栳赅 AMD
solaris_quota=项赅琨忄螯 赈铗?
linux_soft=骂玮疣螯 铠栳牦 镱 蜞殪囿蜞?
linux_ekillamd=湾 祛泱 镳栳栩 AMD
linux_efmode='$1' 礤 怆弪 漕矬耱桁 疱骅祛 羿殡  忸顸戾痂黜铎 觐溴
swap_err=硒栳赅 镳 耦玟囗梃 羿殡 镱潢圜觇 Failed to create swap file
solaris_time_d=捻彘
solaris_time_h=奏耦
linux_usrquota=翌朦觐 镱朦珙忄蝈
solaris_eraid2=RAID 篑蝠铋耱忸 潆 '$1' 礤 耋耱怏弪 
linux_nfshost=褥 疹耱 NFS
solaris_time_m=惕眢
linux_mname=冷疱 彦疴屦
solaris_time_s=彦牦礓
nfs_server=蔓犷 NFS 彦疴屦..
solaris_time_w=湾溴朦
smb_choose=蔓犷 SMB 彦疴屦..
solaris_time_y=隋
solaris_ebusy=$1 玎 
linux_other=酿筱铄 篑蝠铋耱忸
solaris_epart='$1' 礤 怆弪 漕矬耱桁 眍戾痤 SCSI 疣玟咫 
solaris_epid=湾 祛泱 磬轵 rumba pid
solaris_ctrlr=暑眚痤腚屦
solaris_efmode='$1' 礤 怆弪 漕矬耱桁 羿殡钼 疱骅祛  忸顸戾痂黜铎 觐溴
linux_raid=RAID 篑蝠铋耱忸
save_eumount=硒栳赅 镳 疣珈铐蜩痤忄龛 : $1
solaris_edevfile=脏殡 篑蝠铋耱忄 '$1' 礤 耋耱怏弪 
solaris_eexist='$1' 礤 耋耱怏弪 
solaris_epath='$1' 礤 怆弪 漕矬耱桁 矬蝈恹 桁屙屐 
edit_err=硒栳赅 镳 疱溧牝桊钼囗梃 疱耋瘃
index_return=耧桉铌 羿殡钼 耔耱屐
linux_emask='$1' 礤 怆弪 漕矬耱桁铋 忸顸戾痂黜铋 爨耜铋
smb_name=褥 彦疴屦
solaris_nobrowse=玛膻麇 疱骅 镳铖祛蝠?
linux_resgid=绣珏疴眍 镳铖蝠囗耱忸 潆 沭箫稃
linux_check=绣骅 镳钼屦觇
linux_umask=锑耜 镳噔 羿殡钼
solaris_edevice=玉蝠铋耱忸 '$1' 礤 耋耱怏弪 
solaris_grpid=脏殡 磬耠邃簋 痤滂蝈朦耜栝 GID?
solaris_waround=Write-around
solaris_nolarge=朽琊屮栩 犷朦 羿殡?
linux_textfiles=翌朦觐 蝈犟蝾恹 羿殡钼
linux_allfiles=埋艴 羿殡钼
linux_gid=码噤咫弼 羿殡钼 沭箫稃
solaris_noatime=吾眍忤螯 怵屐 漕耱箫?
linux_nodev=朽琊屮栩 羿殡 篑蝠铋耱?
linux_edevfile=脏殡 篑蝠铋耱忄 '$1' 礤 耋耱怏弪
solaris_ehost='$1' 礤 怆弪 漕矬耱桁 桁屙屐 躅耱
solaris_nshared=Non-shared
smb_share=绣耋瘃
solaris_soft=骂玮疣蜩螯 铠栳牦 镱 蜞殪囿蝮?
edit_second=橡钼屦栩 买铕铋
save_enone=湾 恹狃囗 - 耦躔囗螯 桦 祛眚桊钼囹
linux_eauto=硒栳赅 噔蝾祛眚桊钼囗 : $1
index_auto=棱蝾爨蜩麇耜
solaris_attr=锐镱朦珙忄螯 attrE 觐爨礓?
linux_etimeout='$1' 礤 怆弪 漕矬耱桁 蜞殪囿蝾
nfs_ip=IP 冷疱
edit_free=砚钺钿眍
linux_map=枢痱 棱蝾祛眚桊钼赅
linux_noopts=相疣戾蝠 礤漕耱箫睇
solaris_raid=RAID 玉蝠铋耱忸
solaris_autoxfn=藻溴疣蜩忭 彦疴桉 褥屙(FNS)
index_use=锐镱朦珞弪?
save_ealready2='$1' 箧 囫耦鲨桊钼囗  祛眚桊箦禧 疱耋瘃铎
save_ealready3=枢蜞腩 '$1' 箧 耢铐蜩痤忄
save_ealready4=枢蜞腩 '$1' 箧 镳桉忸屙 疱耋瘃 潆 祛眚桊钼囗
edit_header=相疣戾蝠 绣耋瘃 $1
solaris_swapfile=脏殡 项潢圜觇
solaris_logging=玛膻麒螯 骟痦嚯桤圉棹?
linux_user=朽琊屮栩 镱朦珙忄蝈 祛眚桊钼囹  ..?
solaris_enopart=湾 疣玟咫钼 磬 '$1'
linux_dmode=橡噔 磬 赅蜞腩汨
solaris_noopts=相疣戾蝠 礤漕耱箫睇
solaris_bg=项怛铕睇 祛眚桊钼囗  纛眍忸 疱骅戾?
solaris_autohosts=埋 NFS 疱耋瘃
linux_smbwarn=马桁囗桢! 脏殡钼簋 耔耱屐 耢铐蜩痤忄 团 Webmin, 蜞觇 钺疣珙 蝈牦 镟疣戾蝠 疱耋瘃 礤漕耱箫睇
linux_intr=朽琊屮栩 镱朦珙忄蝈朦耜铄 镳屦囗桢?
create_title=杨玟囗桢 绣耋瘃
nfs_seldir=蔓徨痂蝈 NFS 赅蜞腩 潆 祛眚桊钼囗..
solaris_toosoon=青溴疰赅 骂耨蜞眍怆屙
solaris_part=朽玟咫
linux_nfsdir=枢蜞腩 NFS
linux_quiet=杨钺螯 钺 铠栳赅 镳 镳 镱稃蜿圊 皲咫囹 <tt>chown</tt>?
linux_swapfile=脏殡 项潢圜觇
save_emkdir=硒栳赅 镳 耦玟囗梃 赅蜞腩汔 $1 : $2
linux_ro=翌朦觐 潆 黩屙?
solaris_eopen=硒栳赅 镳 铗牮梃 $1 : $2
solaris_automap=枢痱 噔蝾祛眚桊钼赅
solaris_size=朽珈屦
linux_pid_file=青镨覃忄螯 PID  羿殡
smb_elist2=硒栳赅 镳 玎镳铖 耧桉赅 疱耋瘃钼  $1. 骂珈铈眍 皴疴屦 礤 疣琊屮噱 桉镱朦珙忄螯 疱骅 镳铖祛蝠
linux_posix=念矬耜囹 桁屙 疣珉梓帼羼 蝾朦觐 疱汨耱痤?
solaris_eautomap=湾 忖邃屙 桁 赅痱 噔蝾祛眚桊钼囗
solaris_proto=橡铗铌铍
linux_uni_xlate=茵囗耠桊钼囹 耔焘铍 Unicode?
linux_usrgrpquota=项朦珙忄蝈  灭箫稃
solaris_eswapfile=脏殡 镱潢圜觇 '$1'礤 耋耱怏弪 
index_add=念徉忤螯 疱耋瘃
solaris_timeo=亦殪囿
solaris_public=WebNFS 疱耋瘃?
linux_wg=朽犷鬣 灭箫镟
linux_retrans=暑-忸 镱怛铕睇 镥疱覃腩
solaris_cdrom=CDROM
solaris_efstyp=玉蝠铋耱忸 '$1' 铗纛痨囹桊钼囗眍 赅 $2
linux_fmode=橡噔 磬 羿殡
solaris_enfsperm=泥眄铎 躅耱 玎镳屮屙 祛眚桊钼囹 赅蜞腩 $1 磬 $2
save_eremount=硒栳赅 镳 襄疱祛眚桊钼囗梃 : $1
linux_eautomap=脏殡 赅痱 噔蝾祛眚桊钼囗 '$1' 礤 耋耱怏弪 
solaris_force=灶瘃桊钼囹 镳祛 IO?
linux_ekillauto=湾 祛泱 镳栳栩 automount
solaris_mname=褥 疹耱 彦疴屦
solaris_mddev=RAID 篑蝠铋耱忸 $1
edit_order=橡钼屦栩 .. 镳 玎沭箸赍?
linux_conv=DOS-Unix 蝠囗耠鲨 镥疱忸漕 耱痤
edit_title=绣溧牝桊钼囗桢 绣耋瘃
swap_esize='$1' 礤 怆弪 漕矬耱桁 疣珈屦铎 is not a valid size
linux_none=湾
edit_dir=鸯铐蜩痤忄 枢
solaris_ebackfs=脏殡钼 耔耱屐 '$1' 礤 耢铐蜩痤忄磬
linux_enfsperm=泥眄 躅耱 礤 镱玮铍弪 祛眚桊钼囹 赅蜞腩 $1 磬 $2
linux_cname=褥 孰桢眚
solaris_notraildot=茹眍痂痤忄螯 玎忮瘌帼 蝾麝?
linux_rock=茹眍痂痤忄螯 Unix 莉蝠栳篁?
linux_sname=褥 彦疴屦
solaris_nrr=茹眍痂痤忄螯 囹痂狍螓 Unix?
save_perm=如戾礤龛 潆 疱耋瘃 磬 $1 礤 祛泱 猁螯 嚓蜩忤玷痤忄睇, 镱耜铍 疱耋瘃  磬耱 祛戾眚 桉镱朦珞弪. 碾 蝾泐, 黩钺 耦躔囗栩 桤戾礤龛  蜞犭桷 耱囹梓羼觇 疱耋瘃钼, 磬骒栩 磬 觏铒牦 龛驽.
solaris_target=冷疱
solaris_ectrlr='$1' 礤 怆弪 漕矬耱桁 SCSI 觐眚痤腚屦铎 
linux_epidfile='$1' 礤 怆弪 漕矬耱桁 pid 羿殡铎
nfs_dir=枢蜞腩
linux_sync=馏翦痂玷痤忄眄 玎镨顸  ..?
save_edirname='$1' 礤 怆弪 漕矬耱桁 桁屙屐 赅蜞腩汔
solaris_ekill=湾 祛泱 镳栳栩 rumba
linux_continue=橡钿铍骅螯
linux_remount_ro=襄疱祛眚桊钼囹 蝾朦觐 潆 黩屙
nfs_host=褥 疹耱
solaris_scsidev=SCSI 觐眚痤腚屦 $1 噤疱 $2 祛潴朦 $3 疣玟咫 $4
linux_edev=湾 忖邃屙 篑蝠铋耱忸
solaris_nsource=NFS 锐蝾黜桕
solaris_ro=翌朦觐 潆 昨屙?
solaris_ecsrc='$1' 礤 怆弪 漕矬耱桁 桉蝾黜桕铎 挲
solaris_password=绣汨耱疣鲨铐睇 相痤朦
solaris_ecacheexists=枢蜞腩 $1 箧 耋耱怏弪. 愉嚯栩 邈.
linux_enfsdir='$1' 礤 怆弪 漕矬耱桁 桁屙屐 赅蜞腩汔. 念耱箫睇扈 赅蜞腩汔扈 磬 $2 怆: $3
nfs_failed=硒栳赅 镳 玎镳铖 NFS 疱耋瘃钼 铗 $1 : $2 骂珈铈眍 礤 疣犷蜞弪 NFS 皴疴屦
solaris_nmult=添铈羼蜮屙睇 NFS 彦疴屦
save_apply=杨躔囗栩  亦犭桷 羊囹梓羼觇 绣耋瘃钼
solaris_con=橡钼屦赅 鲥腩耱眍耱
linux_smbshare=褥 绣耋瘃
solaris_none=湾
linux_vers=洛瘃 NFS
edit_save=杨躔囗栩
nfs_clients=孰桢眚
solaris_etarget2=皱脲忸 SCSI 噤疱 潆 '$1' 礤 耋耱怏弪 
linux_resuid=绣珏疴眍 镳铖蝠囗耱忸 潆 镱朦珙忄蝈
linux_strict=羊痤汨
solaris_share=褥 绣耋瘃
solaris_gid=脏殡囔 沭箫稃 怆噤邋
smb_none=湾 磬殇屙 腩赅朦睇 羿殡钼 皴疴屦钼 Windows
index_title=蔫耜钼  彦蝈恹 脏殡钼 谚耱屐
solaris_never=丸觐沅
solaris_eunit='$1' 礤 怆弪 漕矬耱桁 眍戾痤 SCSI 祛潴 
linux_password=绣汨耱疣鲨铐睇 相痤朦
solaris_dmode=橡噔 赅蜞腩汔
edit_first=橡钼屦栩 襄疴铋
linux_uid=码噤咫弼 羿殡钼 镱朦珙忄蝈
linux_port=项痱 NFS
edit_boot=杨躔囗栩  耢铐蜩痤忄螯 镳 玎沭箸赍
save_emount=硒栳赅 镳 祛眚桊钼囗梃 : $1
linux_auto=棱蝾爨蜩麇耜
edit_dont2=湾 祛眚桊钼囹
solaris_server=褥 彦疴屦
solaris_eautofile=脏殡 赅痱 '$1' 礤 耋耱怏弪 
solaris_retrans=暑腓麇耱忸 项怛铕睇 襄疱溧
solaris_period=襄痂钿梓羼觇
smb_noshares=湾 漕耱箫睇 羿殡钼 疱耋瘃钼 磬 皴疴屦 $1
solaris_orig=勿桡桧嚯 枢蜞腩
linux_enfsmount=硒栳赅 NFS - $1
smb_choose2=蔓徨痂蝈 绣耋瘃 磬 $1
smb_edown=彦疴屦 $1 铗觌屙, 礤 漕耱箫屙 桦 礤 怆弪 羿殡钼 皴疴屦铎
linux_rdev=RAID 篑蝠铋耱忸 $1
linux_ehost2=疹耱 '$1' 礤 耋耱怏弪
solaris_ndir=NFS 枢蜞腩
solaris_cache=锐蝾黜桕 数痤忄龛
linux_relaxed=骂朦睇
solaris_max=锑犟桁嚯
solaris_onerror=绣嚓鲨 磬 铠栳牦
linux_quotas=锐镱朦珙忄螯 殊铗?
index_type=诣
edit_unmount=朽珈铐蜩痤忄螯
solaris_username=绣汨耱疣鲨铐眍 褥
solaris_demand=项 玎镳铖
solaris_ehost2=疹耱 '$1' 礤 耋耱怏弪
edit_dont=湾 耦躔囗螯
linux_secs=皴牦礓
solaris_otherdev=酿筱铄 玉蝠铋耱忸
solaris_quotab=朽琊屮栩 赈铗 镳 玎沭箸赍?
smb_comment=暑祆屙蜞痂
linux_edown=疹耱 '$1' 铗觌屙 
nfs_none=湾 磬殇屙 腩赅朦睇 NFS 皴疴屦钼
edit_delete=愉嚯栩
solaris_edir='$1' 礤 怆弪 赅蜞腩泐 
nfs_select=蔓徨痂蝈 NFS 彦疴屦  觐蝾痤泐 祛骓 祛眚桊钼囹 疱耋瘃..
solaris_fmode=橡噔 羿殡
linux_username=绣汨耱疣鲨铐眍 褥
linux_mode=橡噔 羿殡钼 潆 礤-Unix CD
solaris_port=项痱 NFS
solaris_nhost=NFS 褥 疹耱
solaris_auth=荔蝈眚梏桕圉
solaris_auto=棱蝾爨蜩麇耜
solaris_readwrite=念耱箫 镱 昨屙棹/青镨耔 徨珙镟皴?
linux_noexec=朽琊屮栩 恹镱腠屙桢 徼磬痦 羿殡钼?
edit_egone=泥眄 疱耋瘃 犷朦 礤 耋耱怏弪
edit_adv=朽聒桊屙睇 相疣戾蝠 绣耋瘃
smb_elist=硒栳赅 镳 玎镳铖 耧桉赅 皴疴屦钼 铗 $1. 骂珈铈眍 皴疴屦 礤 疣琊屮噱 桉镱朦珙忄螯 疱骅 镳铖祛蝠
smb_ehost=彦疴屦 $1 礤 耋耱怏弪
solaris_local=橡钼屦螯 镳噔  挲?
solaris_efstyp2=硒栳赅 镳 镳钼屦赍 蜩镟 羿殡钼铋 耔耱屐 : $1
save_edir='$1' 礤 怆弪 赅蜞腩泐
solaris_readonly=脏殡 祛泱 猁螯 蝾腙 潆 黩屙?
solaris_enfsmount=硒栳赅 NFS - $1
solaris_cname=褥 孰桢眚
linux_grpquota=翌腙 沭箫稃
solaris_msdos=蔫耜 MS-DOS
solaris_enfsdir='$1' 礤 怆弪 漕矬耱桁 桁屙屐 赅蜞腩汔. 念耱箫睇扈 赅蜞腩汔扈 磬 $2 怆: $3
linux_errors=绣嚓鲨 磬 铠栳牦
solaris_wmode=绣骅 玎镨耔
solaris_unit=填潴朦
linux_grpid=脏殡 磬耠邃簋 痤滂蝈朦耜栝 GID?
edit_savemount=杨躔囗栩 绣耋瘃?
linux_usrgrpquota2=项朦珙忄蝈  灭箫稃 (团岩懒人芡!)
solaris_cachedir=数 赅蜞腩
index_swap=妈痱筻朦磬 相螯
solaris_noupper=悟覃豚螯 镟痤朦  忮瘐礤 疱汨耱疱?
linux_elist=硒栳赅 镳 镱塍麇龛 耧桉赅 疱耋瘃钼 : $1
solaris_nfsver=洛瘃 NFS
linux_ehost='$1' 礤 怆弪 漕矬耱桁 桁屙屐 躅耱
edit_mount=填眚桊钼囹
smb_sel=蔓徨痂蝈 羿殡钼 皴疴屦 Windows, 潆 祛龛痤忄龛 疱耋瘃钼..
linux_high=蔓聒
edit_now=填眚桊钼囹 皴轺囫?
linux_disk=蔫耜
linux_enfs=疹耱 '$1' 礤 镱滗屦骅忄弪 NFS
solaris_krb=Kerberos
nfs_choose=蔓徨痂蝈 NFS 枢蜞腩 磬 $1
smb_desc=物桉囗桢
index_perm=羊囹梓羼觇?
save_ealready='$1' 箧 耢铐蜩痤忄
linux_timeout=吗屐 徨玟彘耱忤 镥疱 疣珈铐蜩痤忄龛屐
solaris_foldcase=灶瘃桊钼囹 龛骓栝 疱汨耱?
edit_size=朽珈屦
linux_nosuid=青镳弪栩 setuid 镳钽疣祆?
solaris_eurl='$1' 礤 怆弪 漕矬耱桁 NFS URL
solaris_highest=袜桠
solaris_nointr=朽琊屮栩 镱朦珙忄蝈朦耜铄 镳屦囗桢?
linux_smbserver=褥 彦疴屦
solaris_etarget='$1' 礤 怆弪 漕矬耱桁 SCSI 鲥脲恹 噤疱耦 
solaris_nosuid=青镳弪栩 setuid 镳钽疣祆?
solaris_ecachedir='$1' 礤 怆弪 漕矬耱桁 挲 赅蜞腩泐
solaris_des=DES
linux_edmode='$1' 礤 怆弪 漕矬耱桁 疱骅祛 赅蜞腩汔  忸顸戾痂黜铎 觐溴
  0707010000bb58000081a40000000000000002000000013ac0388c00002d0e000000200000000000000000000000000000001700000003reloc/mount/lang/ru_SU    index_title=渖铀献倥  笈耘踪 媪侍献倥 笊釉磐
index_dir=笸衔陨蚁琢 肓
index_type=羯
index_dev=蛄有咸现盼膳
index_use=橛邢特谡旁友?
index_perm=笤猎赊庞松?
index_add=湎铝咨载 遗诱矣
index_auto=嶙韵土陨夼铀
index_swap=魃以樟特瘟 鹆脱载
index_return=有捎纤 屏侍献偃 由釉磐

edit_title=蚺牧嗽梢献廖膳 蚺诱矣
create_title=笙谀廖膳 蚺诱矣
edit_err=镗陕肆 幸 遗牧嗽梢献廖缮 遗诱矣
edit_egone=淞挝偈 遗诱矣 孪特叟 闻 诱菖釉渍旁
edit_header=鹆伊团砸 蚺诱矣 $1
edit_dir=笸衔陨蚁琢 肓
edit_swap=魃以樟特瘟 鹆脱载
edit_size=蛄谕乓
edit_free=笞下夏蜗
edit_savemount=笙纫廖稍 蚺诱矣?
edit_boot=笙纫廖稍  油衔陨蚁琢载 幸 诹且遮伺
edit_save=笙纫廖稍
edit_delete=跄撂稍
edit_dont=钆 酉纫廖言
edit_now=硐卧梢献猎 优兽劣?
edit_mount=硐卧梢献猎
edit_dont2=钆 拖卧梢献猎
edit_unmount=蛄谕衔陨蚁琢载
edit_order=鹨献乓稍 .. 幸 诹且遮伺?
edit_first=鹨献乓稍 鹋易鲜
edit_second=鹨献乓稍 髟弦鲜
edit_adv=蛄盂梢盼钨 鹆伊团砸 蚺诱矣
edit_list=笮捎纤 鹣特谙琢耘膛

save_err=镗陕肆 幸 酉纫廖盼缮 遗诱矣
save_edir='$1' 闻 炎萄旁友 肆粤滔窍
save_edirname='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 肆粤滔橇
save_ealready='$1' 罩 油衔陨蚁琢
save_ealready2='$1' 罩 劣酉蒙梢献廖  拖卧梢张唾 遗诱矣贤
save_ealready3=肓粤滔 '$1' 罩 油衔陨蚁琢
save_ealready4=肓粤滔 '$1' 罩 幸捎紫盼 遗诱矣 奶 拖卧梢献廖裳
save_emkdir=镗陕肆 幸 酉谀廖缮 肆粤滔橇 $1 : $2
save_eumount=镗陕肆 幸 伊谕衔陨蚁琢紊 : $1
save_emount=镗陕肆 幸 拖卧梢献廖缮 : $1
save_perm=橼团闻紊 奶 遗诱矣 瘟 $1 闻 拖钦 沦载 了陨咨谏蚁琢钨, 邢铀咸厮 遗诱矣  瘟釉涎萆 拖团卧 捎邢特谡旁友. 涮 韵窍, 拊下 酉纫廖稍 哨团闻紊  粤绿擅 釉猎赊庞松 遗诱矣献, 瘟滞稍 瘟 宋闲苏 紊峙.
save_apply=笙纫廖稍  袅绿擅 笤猎赊庞松 蚺诱矣献
save_eremount=镗陕肆 幸 鹋遗拖卧梢献廖缮 : $1
save_enone=钆 踪乱廖 - 酉纫廖言 商 拖卧梢献猎

swap_err=镗陕肆 幸 酉谀廖缮 屏侍 邢乃赁松 Failed to create swap file
swap_esize='$1' 闻 炎萄旁友 南姓釉赏偻 伊谕乓贤 is not a valid size

nfs_server=髻孪 NFS 笈易乓..
nfs_select=髻屡疑耘 NFS 笈易乓  讼韵蚁窍 拖治 拖卧梢献猎 遗诱矣..
nfs_ip=IP 崮遗
nfs_host=橥 柘釉
nfs_none=钆 瘟誓盼 滔肆特钨 NFS 优易乓献
nfs_choose=髻屡疑耘 NFS 肓粤滔 瘟 $1
nfs_failed=镗陕肆 幸 诹幸嫌 NFS 遗诱矣献 显 $1 : $2 飨谕现蜗 闻 伊孪粤旁 NFS 优易乓
nfs_seldir=髻屡疑耘 NFS 肆粤滔 奶 拖卧梢献廖裳..
nfs_dir=肓粤滔
nfs_clients=胩膳卧

smb_choose=髻孪 SMB 笈易乓..
smb_elist=镗陕肆 幸 诹幸嫌 有捎肆 优易乓献 显 $1. 飨谕现蜗 优易乓 闻 伊谝袍僚 捎邢特谙琢载 遗稚 幸嫌拖砸
smb_ehost=笈易乓 $1 闻 诱菖釉渍旁
smb_edown=笈易乓 $1 显颂擂盼, 闻 南釉招盼 商 闻 炎萄旁友 屏侍献偻 优易乓贤
smb_sel=髻屡疑耘 屏侍献偈 优易乓 Windows, 奶 拖紊蚁琢紊 遗诱矣献..
smb_name=橥 笈易乓
smb_desc=镄捎廖膳
smb_none=钆 瘟誓盼 滔肆特钨 屏侍献偃 优易乓献 Windows
smb_choose2=髻屡疑耘 蚺诱矣 瘟 $1
smb_elist2=镗陕肆 幸 诹幸嫌 有捎肆 遗诱矣献  $1. 飨谕现蜗 优易乓 闻 伊谝袍僚 捎邢特谙琢载 遗稚 幸嫌拖砸
smb_sel2=髻屡疑耘 遗诱矣 奶 拖卧梢献廖裳..
smb_share=蚺诱矣
smb_comment=胂屯盼粤疑
smb_noshares=钆 南釉招钨 屏侍献偃 遗诱矣献 瘟 优易乓 $1

solaris_scsidev=SCSI 讼卧蚁烫乓 $1 聊遗 $2 拖恼特 $3 伊谀盘 $4
solaris_mddev=RAID 沼砸鲜釉紫 $1
solaris_ecacheexists=肓粤滔 $1 罩 诱菖釉渍旁. 跄撂稍 徘.
solaris_ebusy=$1 诹窝 
solaris_ekill=钆 拖钦 幸陕稍 rumba
solaris_epid=钆 拖钦 瘟试 rumba pid
solaris_nsource=NFS 橛韵尬伤
solaris_nhost=NFS 橥 柘釉
solaris_ndir=NFS 肓粤滔
solaris_nmult=砦现庞宰盼钨 NFS 笈易乓
solaris_webnfs=WebNFS URL
solaris_ufs=UFS 渖铀
solaris_scsi=SCSI 渖铀
solaris_ctrlr=胂卧蚁烫乓
solaris_target=崮遗
solaris_unit=硐恼特
solaris_part=蛄谀盘
solaris_raid=RAID 跤砸鲜釉紫
solaris_otherdev=湟涨吓 跤砸鲜釉紫
solaris_swapfile=媪侍 鹣乃赁松
solaris_file=媪侍
solaris_cdrom=CDROM
solaris_msdos=渖铀 MS-DOS
solaris_orig=镆汕晌撂匚偈 肓粤滔
solaris_cache=橛韵尬伤 胲凵蚁琢紊
solaris_automap=肓以 磷韵拖卧梢献萆肆
solaris_autohosts=饔 NFS 遗诱矣
solaris_autoxfn=媾呐伊陨孜偈 笈易捎 橥盼(FNS)
solaris_server=橥 笈易乓
solaris_share=橥 蚺诱矣
solaris_ro=粝特讼 奶 盼裳?
solaris_nosuid=幸旁稍 setuid 幸锨伊屯?
solaris_grpid=媪侍 瘟犹拍绽 蚁纳耘特铀墒 GID?
solaris_soft=飨谧伊陨载 羡陕苏 邢 粤释琳哉?
solaris_bg=鹣自弦钨 拖卧梢献廖裳  葡蜗紫 遗稚团?
solaris_quota=鹣肆谫琢载 俗显?
solaris_nointr=蛄谝袍稍 邢特谙琢耘特铀吓 幸乓僮廖膳?
solaris_nfsver=髋矣裳 NFS
solaris_highest=盍勺儆圪
solaris_proto=鹨显纤咸
solaris_port=鹣以 NFS
solaris_timeo=袅释琳
solaris_retrans=胂躺夼釉紫 鹣自弦钨 鹋遗牧
solaris_auth=嵴耘卧善伤撩裳
solaris_none=钆
solaris_des=DES
solaris_krb=Kerberos
solaris_public=WebNFS 遗诱矣?
solaris_quotab=蛄谝袍稍 俗显 幸 诹且遮伺?
solaris_onerror=蚺了蒙 瘟 羡陕苏
solaris_toosoon=呐抑肆 飨佑粤蜗滋盼裳
solaris_time_s=笈苏文
solaris_time_m=砩握
solaris_time_h=酉
solaris_time_d=湮攀
solaris_time_w=钆呐特
solaris_time_y=炫
solaris_noatime=锫蜗咨载 滓磐 南釉招?
solaris_force=嫦矣梢献猎 幸淹鲜 IO?
solaris_nolarge=蛄谝袍稍 孪特凵 屏侍?
solaris_logging=魉汤奚载 终椅撂哨撩衫?
solaris_nrr=榍蜗疑蚁琢载 猎疑抡再 Unix?
solaris_notraildot=榍蜗疑蚁琢载 诹着役晾菡 韵匏?
solaris_nomaplcase=橛邢特谙琢载 紊治墒 遗巧釉?
solaris_foldcase=嫦矣梢献猎 紊治墒 遗巧釉?
solaris_noopts=鹆伊团砸 闻南釉招钨
solaris_size=蛄谕乓
solaris_max=砹擞赏撂匚
solaris_backfs=蚺撂匚偈 陨 ..
solaris_backpath=蚺撂匚裂 韵匏 拖卧梢献廖裳
solaris_cachedir=胲 肆粤滔
solaris_wmode=蚺稚 诹猩由
solaris_con=鹨献乓肆 门滔釉蜗釉
solaris_period=鹋疑夏赊庞松
solaris_never=钌讼悄
solaris_demand=鹣 诹幸嫌
solaris_waround=Write-around
solaris_nshared=Non-shared
solaris_local=鹨献乓言 幸磷  塑叟?
solaris_nobrowse=魉汤夼 遗稚 幸嫌拖砸?
solaris_auto=嶙韵土陨夼铀
solaris_mname=橥 柘釉 笈易乓
solaris_cname=橥 胩膳卧
solaris_username=蚺巧釉伊蒙衔蜗 橥
solaris_password=蚺巧釉伊蒙衔钨 鹆蚁特
solaris_uid=媪侍镣 邢特谙琢耘萄 滋聊排
solaris_gid=媪侍镣 且招匈 滋聊排
solaris_fmode=鹨磷 屏侍
solaris_dmode=鹨磷 肆粤滔橇
solaris_readwrite=湎釉招 邢 盼衫/猩由 屡谙辛优?
solaris_readonly=媪侍 拖钦 沦载 韵趟 奶 拊盼裳?
solaris_noupper=镌淤塘载 辛蚁特  着胰闻 遗巧釉遗?
solaris_attr=橛邢特谙琢载 attrE 讼土文?
solaris_eurl='$1' 闻 炎萄旁友 南姓釉赏偻 NFS URL
solaris_ehost='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 认釉
solaris_ehost2=柘釉 '$1' 闻 诱菖釉渍旁
solaris_edown=柘釉 '$1' 显颂擂盼, 商 闻 邢哪乓稚琢旁 NFS
solaris_enfs=柘釉 '$1' 闻 邢哪乓稚琢旁 NFS
solaris_enfsdir='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 肆粤滔橇. 湎釉招钨蜕 肆粤滔橇蜕 瘟 $2 炎萄涝友: $3
solaris_enfsperm=淞挝贤 认釉 诹幸袍盼 拖卧梢献猎 肆粤滔 $1 瘟 $2
solaris_enfsmount=镗陕肆 NFS - $1
solaris_ectrlr='$1' 闻 炎萄旁友 南姓釉赏偻 SCSI 讼卧蚁烫乓贤 
solaris_etarget='$1' 闻 炎萄旁友 南姓釉赏偻 SCSI 门膛踪 聊遗酉 
solaris_eunit='$1' 闻 炎萄旁友 南姓釉赏偻 蜗团蚁 SCSI 拖恼萄 
solaris_epart='$1' 闻 炎萄旁友 南姓釉赏偻 蜗团蚁 SCSI 伊谀盘 
solaris_eraid='$1' 闻 炎萄旁友 南姓釉赏偻 蜗团蚁 RAID 拖恼萄 
solaris_epath='$1' 闻 炎萄旁友 南姓釉赏偻 姓耘踪 赏盼磐 
solaris_eexist='$1' 闻 诱菖釉渍旁 
solaris_edir='$1' 闻 炎萄旁友 肆粤滔窍 
solaris_eswapfile=媪侍 邢乃赁松 '$1'闻 诱菖釉渍旁 
solaris_eopen=镗陕肆 幸 显艘僭缮 $1 : $2
solaris_ebackfs=媪侍献裂 由釉磐 '$1' 闻 油衔陨蚁琢瘟
solaris_ebacktype=媪侍献裂 由釉磐 '$1' 闻 炎萄旁友 $2
solaris_ecsrc='$1' 闻 炎萄旁友 南姓釉赏偻 捎韵尬伤贤 塑哿
solaris_eautomap=钆 鬃拍盼 赏 肆以 磷韵拖卧梢献廖裳
solaris_eautofile=媪侍 肆以 '$1' 闻 诱菖釉渍旁 
solaris_etarget2=闩膛紫 SCSI 聊遗 奶 '$1' 闻 诱菖釉渍旁 
solaris_epart2=SCSI 伊谀盘 奶 '$1' 闻 诱菖釉渍旁 
solaris_eraid2=RAID 沼砸鲜釉紫 奶 '$1' 闻 诱菖釉渍旁 
solaris_enopart=钆 伊谀盘献 瘟 '$1'
solaris_edevfile=媪侍 沼砸鲜釉琢 '$1' 闻 诱菖釉渍旁 
solaris_edevice=跤砸鲜釉紫 '$1' 闻 诱菖釉渍旁 
solaris_efstyp=跤砸鲜釉紫 '$1' 显葡彝猎梢献廖蜗 肆 $2
solaris_efstyp2=镗陕肆 幸 幸献乓伺 陨辛 屏侍献鲜 由釉磐 : $1
solaris_ecachedir='$1' 闻 炎萄旁友 南姓釉赏偻 塑 肆粤滔窍
solaris_efmode='$1' 闻 炎萄旁友 南姓釉赏偻 屏侍献偻 遗稚拖  紫迂团疑尬贤 讼呐
solaris_edmode='$1' 闻 炎萄旁友 南姓釉赏偻 遗稚拖 肆粤滔橇  紫迂团疑尬贤 讼呐 

linux_eamd=镗陕肆 AMD
linux_eauto=镗陕肆 磷韵拖卧梢献廖裳 : $1
linux_esmbconn=镗陕肆 酉拍晌盼裳  优易乓贤
linux_ekillamd=钆 拖钦 幸陕稍 AMD
linux_ekillauto=钆 拖钦 幸陕稍 automount
linux_nfshost=橥 柘釉 NFS
linux_nfsdir=肓粤滔 NFS
linux_map=肓以 嶙韵拖卧梢献萆肆
linux_swapfile=媪侍 鹣乃赁松
linux_disk=渖铀
linux_smbserver=橥 笈易乓
linux_smbshare=橥 蚺诱矣
linux_raid=RAID 沼砸鲜釉紫
linux_rdev=RAID 沼砸鲜釉紫 $1
linux_other=湟涨吓 沼砸鲜釉紫
linux_ro=粝特讼 奶 拊盼裳?
linux_sync=庹婆疑谏蚁琢挝裂 诹猩迂  ..?
linux_nodev=蛄谝袍稍 屏侍 沼砸鲜釉?
linux_noexec=蛄谝袍稍 踪邢涛盼膳 律瘟椅偃 屏侍献?
linux_nosuid=幸旁稍 setuid 幸锨伊屯?
linux_user=蛄谝袍稍 邢特谙琢耘萄 拖卧梢献猎 茉 ..?
linux_check=蚺稚 幸献乓松
linux_normal=钕彝撂匚偈
linux_strict=笤蚁巧
linux_none=钆
linux_errors=蚺了蒙 瘟 羡陕苏
linux_continue=鹨夏咸稚载
linux_remount_ro=鹋遗拖卧梢献猎 韵特讼 奶 拊盼裳
linux_panic=鹆紊肆
linux_grpid=媪侍 瘟犹拍绽 蚁纳耘特铀墒 GID?
linux_quotas=橛邢特谙琢载 胱显?
linux_usrquota=粝特讼 邢特谙琢耘萄
linux_grpquota=粝趟 且招匈
linux_usrgrpquota=鹣特谙琢耘萄  缫招匈
linux_usrgrpquota2=鹣特谙琢耘萄  缫招匈 (铄篝徕殪!)
linux_resuid=蚺谂易蜗 幸嫌砸廖釉紫 奶 邢特谙琢耘萄
linux_resgid=蚺谂易蜗 幸嫌砸廖釉紫 奶 且招匈
linux_bg=鹣自弦钨 拖卧梢献廖裳  葡蜗紫 遗稚团?
linux_soft=飨谧伊萘载 羡陕苏 邢 粤释琳粤?
linux_timeo=袅释琳
linux_retrans=胂-紫 邢自弦钨 信遗淤滔
linux_vers=髋矣裳 NFS
linux_high=髻盂裂
linux_port=鹣以 NFS
linux_intr=蛄谝袍稍 邢特谙琢耘特铀吓 幸乓僮廖膳?
linux_tcp=鹨显纤咸 RPC
linux_uid=魈聊盘琶 屏侍献 邢特谙琢耘萄
linux_gid=魈聊盘琶 屏侍献 且招匈
linux_rules=鹨磷商 赏盼献廖裳 屏侍献
linux_relaxed=飨特钨
linux_conv=DOS-Unix 砸廖犹衙裳 信遗紫南 釉蚁
linux_allfiles=饔湃 屏侍献
linux_textfiles=粝特讼 耘擞韵踪 屏侍献
linux_umask=砹铀 幸磷 屏侍献
linux_quiet=笙下萘载 下 羡陕肆 幸 幸 邢匈运寥 幽盘猎 <tt>chown</tt>?
linux_uni_xlate=粢廖犹梢献猎 由妥咸 Unicode?
linux_posix=湎姓铀猎 赏盼 伊谔赊晾萆庞 韵特讼 遗巧釉蚁?
linux_conv2=OS/2-Unix 砸廖犹衙裳 信遗紫南 釉蚁 
linux_rock=榍蜗疑蚁琢载 Unix 嵩砸陕赵?
linux_mode=鹨磷 屏侍献 奶 闻-Unix CD
linux_noopts=鹆伊团砸 闻南釉招钨
linux_timeout=饕磐 屡谀攀釉咨 信遗 伊谕衔陨蚁琢紊磐
linux_pid_file=猩淤琢载 PID  屏侍
linux_secs=优苏文
linux_smbwarn=魑赏廖膳! 媪侍献绽 由釉磐 油衔陨蚁琢 铄 Webmin, 粤松 下伊谙 耘苏凵 辛伊团砸 遗诱矣 闻南釉招钨
linux_username=蚺巧釉伊蒙衔蜗 橥
linux_password=蚺巧釉伊蒙衔钨 鹆蚁特
linux_sname=橥 笈易乓
linux_wg=蛄孪蘖 缫招辛
linux_auto=嶙韵土陨夼铀
linux_cname=橥 胩膳卧
linux_mname=崮遗 笈易乓
linux_fmode=鹨磷 瘟 屏侍
linux_dmode=鹨磷 瘟 肆粤滔巧
linux_ehost='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 认釉
linux_ehost2=柘釉 '$1' 闻 诱菖釉渍旁
linux_edown=柘釉 '$1' 显颂擂盼 
linux_enfs=柘釉 '$1' 闻 邢哪乓稚琢旁 NFS
linux_elist=镗陕肆 幸 邢陶夼紊 有捎肆 遗诱矣献 : $1
linux_enfsdir='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 肆粤滔橇. 湎釉招钨蜕 肆粤滔橇蜕 瘟 $2 炎萄涝友: $3
linux_enfsperm=淞挝偈 认釉 闻 邢谧咸雅 拖卧梢献猎 肆粤滔 $1 瘟 $2
linux_enfsmount=镗陕肆 NFS - $1
linux_eautomap=媪侍 肆以 磷韵拖卧梢献廖裳 '$1' 闻 诱菖釉渍旁 
linux_edev=钆 鬃拍盼 沼砸鲜釉紫
linux_edevfile=媪侍 沼砸鲜釉琢 '$1' 闻 诱菖釉渍旁
linux_emask='$1' 闻 炎萄旁友 南姓釉赏鲜 紫迂团疑尬鲜 土铀鲜
linux_etimeout='$1' 闻 炎萄旁友 南姓釉赏偻 粤释琳韵
linux_epidfile='$1' 闻 炎萄旁友 南姓釉赏偻 pid 屏侍贤
linux_efmode='$1' 闻 炎萄旁友 南姓釉赏偻 遗稚拖 屏侍  紫迂团疑尬贤 讼呐
linux_edmode='$1' 闻 炎萄旁友 南姓釉赏偻 遗稚拖 肆粤滔橇  紫迂团疑尬贤 讼呐

  0707010000bb59000081a40000000000000002000000013ac0388c00002da1000000200000000000000000000000000000001400000003reloc/mount/lang/sv   index_title=Filsystem f鰎 diskar och n鋞verk
index_dir=Monteringspunkt
index_type=Typ
index_dev=Monterad fr錸
index_use=Anv鋘ds?
index_perm=Permanent?
index_add=L鋑g till filsystem
index_auto=Ok鋘d typ
index_swap=Virtuellt minne
index_return=lista 鰒er filsystem

edit_title=膎dra filsystem
create_title=L鋑g till filsystem
edit_err=Det gick inte att 鋘dra filsystem
edit_egone=Detta filsystem finns inte l鋘gre
edit_header=Uppgifter om filsystem $1
edit_dir=Monterad som
edit_swap=Virtuellt minne
edit_size=Storlek
edit_free=Ledigt
edit_savemount=Spara filsystem?
edit_boot=Spara och montera vid start
edit_save=Spara
edit_delete=Ta bort
edit_dont=Spara inte
edit_now=Montera nu?
edit_mount=Montera
edit_dont2=Montera inte
edit_unmount=Montera av
edit_order=Kontrollera filsystem vid start?
edit_first=Kontrollera i f鰎sta omg錸gen
edit_second=Kontrollera i andra omg錸gen
edit_adv=Ytterligare monteringsinst鋖lningar
edit_list=Visa anv鋘dare
edit_create=Spara och montera
edit_save_apply=Spara och ta i drift
edit_umount=Montera av
edit_perm=G鰎 permanent
edit_del_umount=Montera av och ta bort

save_err=Det gick inte att spara filsystemet
save_edir='$1' 鋜 inte en katalog
save_edirname='$1' 鋜 inte ett giltigt katalognamn
save_ealready='$1' har redan monterats
save_ealready2='$1' 鋜 redan vald f鰎 att monteras
save_ealready3=Katalogen '$1' har redan monterats
save_ealready4=Katalogen '$1' 鋜 redan vald f鰎 att monteras
save_emkdir=Det gick inte att skapa katalog $1: $2
save_eumount=Det gick inte att montera av: $1
save_emount=Det gick inte att montera: $1
save_perm=膎dringarna f鰎 montering p $1 kunde inte genomf鰎as, eftersom filsystemet anv鋘ds. Om du endast vill spara 鋘dringarna f鰎 framtida bruk kan du trycka p knappen nedan.
save_apply=Spara f鰎 framtida bruk
save_eremount=Det gick inte att montera igen: $1
save_enone=Du har inte angivit om det ska sparas eller monteras

swap_err=Det gick inte att skapa en swap-fil
swap_esize='$1' 鋜 inte en giltig storlek

nfs_server=Ange NFS-server ...
nfs_select=Ange en NFS-server att montera fr錸 ...
nfs_ip=IP-adress
nfs_host=Servernamn
nfs_none=Det finns ingen lokal NFS-server
nfs_choose=Ange NFS-katalog p $1
nfs_failed=Det gick inte att h鋗ta NFS-exporteringen fr錸 $1: $2 NFS-servern kanske inte 鋜 ig錸g
nfs_seldir=Ange en NFS-katalog att montera ...
nfs_dir=Katalog
nfs_clients=Klienter

smb_choose=Ange SMB-server ...
smb_elist=Det gick inte att h鋗ta n錱on serverlista fr錸 $1. Servern kanske inte till錿er s鰇ning
smb_ehost=Server $1 finns inte
smb_edown=Server $1 鋜 nere, g錼 inte att n eller 鋜 inte en server
smb_sel=Ange en Windows-n鋞verksserver att montera fr錸 ...
smb_name=Servernamn
smb_desc=Beskrivning
smb_none=Det finns ingen lokal Windows-n鋞verksserver
smb_choose2=Ange delad resurs p $1
smb_elist2=Det gick inte att h鋗ta volymlistan fr錸 $1. Servern kanske inte till錿er s鰇ning
smb_sel2=Ange den delade resurs som du vill montera ...
smb_share=Resurs
smb_comment=Kommentar
smb_noshares=Det finns ingen delad resurs p server $1

solaris_scsidev=SCSI-controller $1 m錶 $2 enhet $3 partition $4
solaris_mddev=RAID-disk $1
solaris_ecacheexists=Katalogen $1 finns redan. Ta bort den.
solaris_ebusy=$1 anv鋘ds
solaris_ekill=Det gick inte att sl ihj鋖 rumba
solaris_epid=Det gick inte att hitta n錱ot rumba-PID
solaris_nsource=NFS-k鋖la
solaris_nhost=NFS-servernamn
solaris_ndir=NFS-katalog
solaris_nmult=Flera NFS-servrar
solaris_webnfs=URL f鰎 WebNFS
solaris_ufs=UFS-disk
solaris_scsi=SCSI/IDE-disk
solaris_ctrlr=Controller
solaris_target=Target
solaris_unit=Enhet
solaris_part=Partition
solaris_raid=RAID-disk
solaris_otherdev=Annan enhet
solaris_swapfile=Swap-fil
solaris_file=Fil
solaris_cdrom=CDROM
solaris_dvd=DVD
solaris_msdos=MS-DOS-disk
solaris_orig=Ursprungskatalog
solaris_cache=Cache-k鋖la
solaris_automap=講ersikt 鰒er automontering
solaris_autohosts=Alla NFS-servrar
solaris_autoxfn=Gemensam namntj鋘st
solaris_server=Servernamn
solaris_share=Namn p delad resurs
solaris_ro=Endast l鋝bart?
solaris_nosuid=F鰎bjud setuid-program?
solaris_grpid=Ska filer 鋜va GID?
solaris_soft=Indikera fel vid timeout?
solaris_bg=F鰎s鰇a montera igen i bakgrunden?
solaris_quota=Visa quota?
solaris_nointr=F錼 anv鋘dare avbryta?
solaris_nfsver=NFS-version
solaris_highest=H鰃sta
solaris_proto=Protokoll
solaris_port=NFS-port
solaris_timeo=Timeout
solaris_retrans=Antal 錿eruts鋘dningar
solaris_auth=Autentisering
solaris_none=Ingen
solaris_des=DES
solaris_krb=Kerberos
solaris_public=Montering med WebNFS?
solaris_quotab=Aktivera quota vid start?
solaris_onerror=舤g鋜d vid fel
solaris_toosoon=F鰎dr鰆ning vid reparation
solaris_time_s=Sekunder
solaris_time_m=Minuter
solaris_time_h=Timmar
solaris_time_d=Dagar
solaris_time_w=Veckor
solaris_time_y=舝
solaris_noatime=膎dra 錿komsttider?
solaris_immed=Genast
solaris_defer=V鋘ta
solaris_force=Tvinga att anv鋘da direkt IO?
solaris_nolarge=Till錿a stora filer?
solaris_logging=Aktivera loggning?
solaris_nrr=Strunta i Unix-attribut?
solaris_notraildot=Strunta i avslutande punkt?
solaris_nomaplcase=Anv鋘da gemener?
solaris_foldcase=Anv鋘da endast gemener?
solaris_noopts=Inga inst鋖lningar tillg鋘gliga
solaris_size=Storlek
solaris_largebsize=Anv鋘da stor stolek p sidblocken?
solaris_max=Maximum
solaris_backfs=Verkligt filsystem
solaris_backpath=Verklig monteringspunkt
solaris_cachedir=Cache-katalog
solaris_wmode=Skrivmod
solaris_con=Konsekvenskontroll
solaris_period=Periodisk
solaris_never=Aldrig
solaris_demand=P beg鋜an
solaris_waround=Write-around
solaris_nshared=Ej delad
solaris_local=Kontrollera r鋞tigheter i cachen?
solaris_nobrowse=Till錿a s鰇ning?
solaris_auto=Automatiskt
solaris_mname=Servernamn
solaris_cname=Klientnamn
solaris_username=Login-namn
solaris_password=Login-l鰏enord
solaris_uid=Anv鋘darfiler 鋑s av
solaris_gid=Gruppfiler 鋑s av
solaris_fmode=Filr鋞tigheter
solaris_dmode=Katalogr鋞tigheter
solaris_readwrite=膔 l鋝-/skriv錿komst s鋕er?
solaris_readonly=F錼 filer vara endast l鋝bara?
solaris_noupper=Skicka l鰏enordet i versaler?
solaris_attr=Anv鋘da attrE-kommandon?
solaris_eurl='$1' 鋜 inte en giltig NFS-URL
solaris_ehost='$1' 鋜 inte ett giltigt servernamn
solaris_ehost2=Server '$1' finns inte
solaris_edown=Server '$1' 鋜 nere eller st鰀jer inte NFS
solaris_enfs=Server '$1' st鰀jer inte NFS
solaris_enfsdir='$1' 鋜 inte ett giltigt katalognamn. De kataloger som finns tillg鋘gliga p $2 鋜: $3
solaris_enfsperm=Denna server f錼 inte montera katalogen $1 p $2
solaris_enfsmount=NFS-fel - $1
solaris_ectrlr='$1' 鋜 inte en giltig SCSI-controller
solaris_etarget='$1' 鋜 inte ett giltigt SCSI-m錶nummer
solaris_eunit='$1' 鋜 inte ett giltigt SCSI-enhetsnummer
solaris_epart='$1' 鋜 inte ett giltigt SCSI-partitionsnummer
solaris_eraid='$1' 鋜 inte ett giltigt RAID-enhetsnummer
solaris_epath='$1' 鋜 inte ett giltigt s鰇v鋑snamn
solaris_eexist='$1' finns inte
solaris_edir='$1' 鋜 ingen katalog
solaris_eswapfile=Swap-filen '$1' finns inte
solaris_eopen=Det gick inte att 鰌pna $1: $2
solaris_ebackfs='$1'-filsystemet 鋜 inte monterat
solaris_ebacktype=Filsystem '$1' 鋜 inte $2
solaris_ecsrc='$1' 鋜 inte en giltig cache-k鋖la
solaris_eautomap=Det saknas ett namn p automonterings鰒ersikten
solaris_eautofile=講ersiktsfilen '$1' finns inte
solaris_etarget2=SCSI-m錶et f鰎 '$1' finns inte
solaris_epart2=SCSI-partitionen f鰎 '$1' finns inte
solaris_eraid2=RAID-disken f鰎 '$1' finns inte
solaris_enopart=Det finns inga partitioner p '$1'
solaris_edevfile=Diskfilen '$1' finns inte
solaris_edevice=Disken f鰎 '$1' finns inte
solaris_efstyp=Disken '$1' 鋜 formaterad som $2
solaris_efstyp2=Det gick inte att kontrollera filsystemstyp: $1
solaris_ecachedir='$1' 鋜 inte en giltig cache-katalog
solaris_efmode='$1' 鋜 inte en giltig oktal filmod
solaris_edmode='$1' 鋜 inte en giltig oktal katalogmod

linux_eamd=AMD gick inte
linux_eauto=Det gick inte att automontera: $1
linux_esmbconn=Det gick inte att koppla upp mot server
linux_ekillamd=Det gick inte att sl ihj鋖 AMD
linux_ekillauto=Det gick inte att sl ihj鋖 automonteringen
linux_nfshost=NFS-server
linux_nfsdir=NFS-katalog
linux_map=講ersikt 鰒er automontering
linux_swapfile=Swap-fil
linux_disk=Disk
linux_smbserver=Servernamn
linux_smbshare=Namn p delad volym
linux_raid=RAID-disk
linux_rdev=RAID-disk $1
linux_cddev=CD-ROM-l鋝are
linux_label=Partition vid namn $1
linux_lsel=Partition vid namn
linux_other=Annan disk
linux_ro=Endast l鋝bart?
linux_sync=Buffra skrivningar till filsystemet?
linux_nodev=Till錿a diskfiler?
linux_noexec=Till錿a exekvering av bin鋜filer?
linux_nosuid=F鰎bjuda setuid-program?
linux_notail=Minska utrymmet till f鰎m錸 f鰎 hastigheten?
linux_user=Till錿a anv鋘dare att montera detta filsystem?
linux_check=Kontrollmod
linux_normal=Normal
linux_strict=H錼d
linux_none=Ingen
linux_errors=舤g鋜d vid fel
linux_continue=Forts鋞t
linux_remount_ro=Montera igen endast f鰎 l鋝ning
linux_panic=Panik
linux_grpid=Ska filer 鋜va GID?
linux_quotas=Anv鋘da quota?
linux_usrquota=Endast anv鋘dare
linux_grpquota=Endast grupp
linux_usrgrpquota=Anv鋘dare och grupp
linux_usrgrpquota2=Anv鋘dare och grupp (INSTABIL!)
linux_resuid=Reserverad plats f鰎 anv鋘dare
linux_resgid=Reserverad plats f鰎 grupp
linux_bg=F鰎s鰇a att montera igen i bakgrunden?
linux_soft=Indikera fel vid timeout?
linux_timeo=Timeout
linux_retrans=Antal 錿eruts鋘dningar
linux_vers=NFS-version
linux_high=H鰃sta
linux_port=NFS-port
linux_intr=Till錿a anv鋘dare att avbryta?
linux_tcp=RPC-protokoll
linux_uid=Anv鋘darfiler 鋑s av
linux_gid=Gruppfiler 鋑s av
linux_rules=Regler f鰎 filnamn
linux_relaxed=Oreglerat
linux_conv=DOS-Unix-omskrivning vid ny rad
linux_allfiles=Alla filer
linux_textfiles=Endast textfiler
linux_umask=Mask f鰎 filr鋞tigheter
linux_quiet=Indikera fel vid <tt>chown</tt>-f鰎s鰇?
linux_uni_xlate=講ers鋞ta Unicode-tecken?
linux_posix=Till錿a namn som endast skiljer med stor/liten bokstav?
linux_conv2=OS/2-Unix-omskrivning vid ny rad
linux_rock=Strunta i Unix-attribut?
linux_mode=Filr鋞tigheter f鰎 CD som inte 鋜 Unix
linux_noopts=Inga inst鋖lningar tillg鋘gliga
linux_timeout=V鋘tetid innan avmontering
linux_pid_file=Skriv PID till fil
linux_secs=sekunder
linux_smbwarn=Varning! Filsystemet monterades inte fr錸 Webmin, vilket medf鰎 att inst鋖lningarna inte finns tillg鋘gliga
linux_username=Anv鋘darnamn
linux_password=L鰏enord
linux_sname=Servernamn
linux_wg=Grupp
linux_auto=Automatisk
linux_cname=Klientnamn
linux_mname=Serveradress
linux_fmode=Filr鋞tigheter
linux_dmode=Katalogr鋞tigheter
linux_ehost='$1' 鋜 inte ett giltigt servernamn
linux_ehost2=Servern '$1' finns inte
linux_edown=Servern '$1' 鋜 nere
linux_enfs=Servern '$1' st鰀jer inte NFS
linux_elist=Det gick inte att h鋗ta monteringslistan: $1
linux_enfsdir='$1' 鋜 inte ett giltigt katalognamn. De kataloger som finns tillg鋘gliga p $2 鋜: $3
linux_enfsperm=Denna server f錼 inte montera katalogen $1 p $2
linux_enfsmount=NFS-fel - $1
linux_eautomap=講ersiktsfilen '$1' f鰎 automontering finns inte
linux_edev=Du har inte angivit n錱on disk
linux_edevfile=Diskfilen '$1' finns inte
linux_emask='$1' 鋜 inte en giltig oktal mask
linux_etimeout='$1' 鋜 inte en giltig timeout-tid
linux_epidfile='$1' 鋜 inte en giltig PID-fil
linux_efmode='$1' 鋜 inte en giltig oktal filmod
linux_edmode='$1' 鋜 inte en giltig oktal katalogmod

log_mount=Monterade $3
log_mount_l=Monterade $2 $1 p $3
log_umount=Monterade av $3
log_umount_l=Monterade av $2 $1 p $3
log_remount=Monterade om $3
log_remount_l=Monterade om $2 $1 p $3
log_create=Skapade montering $3
log_create_l=Skapade $2 montering $1 p $3
log_modify=Modifierade montering $3
log_modify_l=Modifierade $2 montering $1 p $3
log_delete=Tog bort montering $3
log_delete_l=Tog bort $2 montering $1 p $3
   0707010000bb5a000081a40000000000000002000000013ac0388c00002dd2000000200000000000000000000000000000001400000003reloc/mount/lang/tr   index_title=Disk ve A Dosya Sistemleri
index_dir=Ba餷and
index_type=Tip
index_dev=Yer
index_use=Kullan齧da ?
index_perm=Kal齝?
index_add=Ba餷ant ekle
index_auto=Otomatik
index_swap=Sanal bellek
index_return=dosya sistemi listesi

edit_title=Ba餷ant de餴⺶ir
create_title=Ba餷ant olu⺶ur
edit_err=Ba餷ant'y de餴⺶irmede hata olu⺶u
edit_egone=Bu ba餷ant uzun s黵edir mevcut
edit_header=$1 Ba餷ant Ayr齨t齦ar
edit_dir=Ba餷a
edit_swap=Sanal Bellek
edit_size=Boyut
edit_free=Bo
edit_savemount=Ba餷ant Kaydedilsin?
edit_boot=A琮lta ba餷a ve kaydet
edit_save=Kaydet
edit_delete=Sil
edit_dont=Kaydetme
edit_now=辤mdi ba餷ans齨?
edit_mount=Ba餷ant
edit_dont2=Ba餷ama
edit_unmount=Ba餷ant kald齬
edit_order=A琮lta dosya sistemi kontrol edilsin?
edit_first=輑k Olarak Kontrol Et
edit_second=輐inci Olarak Kaydet
edit_adv=Gelii Ba餷ant Se鏴nekleri
edit_list=Kullan齝齦ar Listele

save_err=Ba餷ant齨齨 kaydedilmesinde hata olu⺶u
save_edir='$1' bir dizin de餴l
save_edirname='$1' ge鏴rli bir dizin ismi de餴l
save_ealready='$1' her zaman ba餷
save_ealready2='$1' her zaman ba餷anabilecek 㧐kilde haz齬lanm
save_ealready3='$1' dizini her zaman ba餷anm
save_ealready4='$1' dizini her zaman ba餷anabilecek haz齬lanm
save_emkdir=Dizin olu⺶urmada hata olu⺶u $1 : $2
save_eumount=Ba餷ant kesilmesinde hata olu⺶u : $1
save_emount=Ba餷ant齞a hata olu⺶u : $1
save_perm=$1'deki ba餷ant zaten kullan齧da oldu饀ndan uygulanamad.Butonu t齥lad齨齴da sadece kal齝 ba餷ant listesine de餴㱮klikler yap齦acakt齬
save_apply=Kal齝 Listeye Uygula
save_eremount=Tekrar ba餷amada hata olu⺶u : $1
save_enone=Kay齮 ya da ba餷ant齳 se鏼ediniz

swap_err=Swap dosyas olu⺷munda hata olu⺶u
swap_esize='$1' ge鏴rli bir boyut de餴l

nfs_server=NFS Sunucusu Se鏸n..
nfs_select=Buradan ba餷amak i鏸n bir NFS sunucusu se鏸n..
nfs_ip=IP Adresi
nfs_host=Makine Ad
nfs_none=Yerel NFS Sunucular bulunamad
nfs_choose=$1'de bir NFS dizini se鏸n
nfs_failed=$1 : $2'deki NFS sunumlar齨a ulalmas齨da hata olu⺶u.Sunucu eri㱮me izin vermiyor olabilir.
nfs_seldir=Ba餷ant i鏸n bir NFS dizini se鏸n..
nfs_dir=Dizin
nfs_clients=輘temciler

smb_choose=SMB Sunucusu Se鏸niz..
smb_elist=$1'deki sunucudan listenin al齨mas齨da hata olu⺶u.Sunucu eri㱮me izin vermiyor olabilir
smb_ehost=$1 sunucusu bulanamad
smb_edown=$1 sunucusu kapal, eri㱮lemez veya dosya sunucusu olmuor olabilir
smb_sel=Ba餷anacak Windows a sunucusu se鏸niz..
smb_name=Sunucu 輘mi
smb_desc=A琮klama
smb_none=Yerel Windows A sunucular bulanamad
smb_choose2=$1'de bir paylam se鏸n
smb_elist2=$1'deki sunucudan paylam listesinin al齨mas齨da hata olu⺶u.Sunucu eri㱮me izin vermiyor olabilir.
smb_sel2=Ba餷ant i鏸n bir paylam se鏸n..
smb_share=Paylam
smb_comment=A琮klama
smb_noshares=$1 sunucusunda ulalabilir dosya paylamlar bulunamad

solaris_scsidev=SCSI denetleyicisi $1 hedef $2 birim $3 disk b鰈黰 $4
solaris_mddev=RAID arac $1
solaris_ecacheexists=$1 dizini zaten mevcut. Onu silin
solaris_ebusy=$1 meul
solaris_ekill=Rumba'n齨 鰈d黵黮mesinde hata olu⺶u
solaris_epid=Rumba iem numaras齨齨 aranmas齨a hata olu⺶u
solaris_nsource=NFS Kayna瘕
solaris_nhost=NFS Makine Ad
solaris_ndir=NFS Dizini
solaris_nmult=莖k Y鰊l NFS Sunucular
solaris_webnfs=WebNFS Adresi
solaris_ufs=UFS Disk
solaris_scsi=SCSI Disk
solaris_ctrlr=Denetleyici
solaris_target=Hedef
solaris_unit=Birim
solaris_part=Disk B鰈黰
solaris_raid=RAID Ayg齮
solaris_otherdev=Di餰r Ayg齮
solaris_swapfile=Swap Dosyas
solaris_file=Dosyas
solaris_cdrom=CDROM
solaris_dvd=DVD
solaris_msdos=MS-DOS Diski
solaris_orig=Orijinal Dizin
solaris_cache=Cache Kayna瘕
solaris_automap=Otomatik ba餷ay齝 haritas
solaris_autohosts=B黷黱 NFS ba餷ant齦ar
solaris_autoxfn=Birlei 輘imlendirme Servisi
solaris_server=Sunucu 輘mi
solaris_share=Paylalm 輘mi
solaris_ro=Sadece okunabilir?
solaris_nosuid=Setuid programlara engel olunsun?
solaris_grpid=Dosyalara ana GID sahip olsun?
solaris_soft=Bekleme s黵elerinde hatalar d鰊d黵?
solaris_bg=Arka planda ba餷ant齦ar tekrar dene?
solaris_quota=Kotay G鰎黱t黮e?
solaris_nointr=Kullan齝 kesmelerine izin ver?
solaris_nfsver=NFS s黵黰
solaris_highest=En y黭sek
solaris_proto=Protokol
solaris_port=NFS Port
solaris_timeo=Bekleme S黵esi
solaris_retrans=Tekrar 輑etim Say齭
solaris_auth=Onaylama
solaris_none=Hi鏱iri
solaris_des=DES
solaris_krb=Kerberos
solaris_public=WebNFS ba餷ans齨 m?
solaris_quotab=Kotalar a琮lta aktif olsun?
solaris_onerror=Hatada action? 
solaris_toosoon=Tamir Geciktirilimi
solaris_time_s=Saniye
solaris_time_m=Dakika
solaris_time_h=Saat
solaris_time_d=G黱
solaris_time_w=Hafta
solaris_time_y=Y齦
solaris_noatime=Giri Zamanlar G黱cellensin?
solaris_immed=Hemen
solaris_defer=Ertele
solaris_force=Do餽udan IO'yu destekle?
solaris_nolarge=B鼀黭 Dosyalara 輟in Ver?
solaris_logging=Kay齮 tutulma yap齦s齨?
solaris_nrr=Unix y黭lemeleri yoksay齦s齨?
solaris_notraildot=Kayan noktalar ge鏸lsin?
solaris_nomaplcase=K黭 harfler kullan齦s齨?
solaris_foldcase=K黭 harfler yap齦s齨?
solaris_noopts=M黰k黱 Se鏴nek Yok
solaris_size=Boyut
solaris_largebsize=Geni sayfa blok boyutunu kullan?
solaris_max=En b鼀黭
solaris_backfs=Ger鏴k dosya sistemi tipi
solaris_backpath=Ger鏴k ba餷ant noktas
solaris_cachedir=Cache dizini
solaris_wmode=Yaz Modu
solaris_con=Tutarl齦 kontrol et
solaris_period=Belli aral齥larla
solaris_never=Asla
solaris_demand=輘temde
solaris_waround=Yazma 鏴vreli
solaris_nshared=Paylalmam
solaris_local=輟inleri bellekte denetle?
solaris_nobrowse=輓celemeye izin verildi?
solaris_auto=Otomatik
solaris_mname=Sunucu Makine Ad
solaris_cname=輘temci Ad
solaris_username=Kullan齝 Ad
solaris_password=Kullan齝 辤fresi
solaris_uid=Kullan齝 dosyalar sahiplendi
solaris_gid=Grup dosyalar sahiplendi
solaris_fmode=Dosya izinleri
solaris_dmode=Dizin izinleri
solaris_readwrite=Okuma/yazma girieri g黺enli?
solaris_readonly=Dosyalar sadece okunabilir olsun?
solaris_noupper=Parola k黭 harflerle g鰊derilsin?
solaris_attr=attrE komutlar齨 kullan?
solaris_eurl='$1' ge鏴rli bir NFS adresi de餴l
solaris_ehost='$1' ge鏴rli bir makine ad e餴l
solaris_ehost2='$1' hostu mevcut de餴l
solaris_edown='$1' hostu kapal ya da NFS'i desteklemiyor
solaris_enfs='$1' hostu NFS'i desteklemiyor
solaris_enfsdir='$1' ge鏴rli bir dizin ismi de餴l.$2'deki ge鏴rli dizinler : $3
solaris_enfsperm=Bu host $1'in $2'de ba餷anmas齨a izin vermemektedir
solaris_enfsmount=NFS Hatas - $1
solaris_ectrlr='$1' ge鏴rli bir SCSI denetleyicisi de餴l
solaris_etarget='$1' ge鏴rli bir SCSI hedef numaras de餴l
solaris_eunit='$1' ge鏴rli bir SCSI birimi de餴l
solaris_epart='$1' ge鏴rli bir SCSI disk b鰈黰 numaras de餴l
solaris_eraid='$1' ge鏴rli bir RAID 黱ite numaras de餴l
solaris_epath='$1' ge鏴rli bir yol ad de餴l
solaris_eexist='$1' mevcut de餴l
solaris_edir='$1' dizin de餴l
solaris_eswapfile=Swap dosyas '$1' mevcut de餴l
solaris_eopen=$1'in a琮lmas齨da hata olu⺶u : $2
solaris_ebackfs=Geri dosya sistemi '$1' ba餷anm de餴l
solaris_ebacktype=Geri dosya sistemi olan '$1' $2 de餴l
solaris_ecsrc='$1' ge鏴rli bir bellek kayna瘕 de餴ldir
solaris_eautomap=Kay齪 otomatik ba餷ant ee⺶irme harita ismi
solaris_eautofile=Harita dosyas '$1' mevcut de餴l
solaris_etarget2='$1' i鏸n SCSI hedefi mevcut de餴l
solaris_epart2=SCSI disk b鰈黰 '$1' i鏸n mevcut de餴l
solaris_eraid2=RAID arac '$1' mevcut de餴l
solaris_enopart='$1'de b鰈黰ler bulunamad
solaris_edevfile='$1' i鏸n ara dosyas mevcut de餴l
solaris_edevice='$1' i鏸n ara mevcut de餴l
solaris_efstyp='$1' arac $2 olarak formatland
solaris_efstyp2=Dosya sistem tipi $1'in kontrol黱de hata olu⺶u
solaris_ecachedir='$1' ge鏴rli bir bellek dizini de餴ldir
solaris_efmode='$1' ge鏴rli bir sekizli dosya modu de餴l
solaris_edmode='$1' ge鏴rli bir sekizli dizin modu de餴l

linux_eamd=AMD'de hata olu⺶u(otomatik ba餷ama)
linux_eauto=Otomatik ba餷amada hata olu⺶u : $1
linux_esmbconn=Sunucuya ba餷ant齞a hata olu⺶u
linux_ekillamd=AMD'nin 鰈d黵黮mesinde hata olu⺶u
linux_ekillauto=Otomatik ba餷anman齨 鰈d黵黮mesinde hata olu⺶u
linux_nfshost=NFS Makine Ad
linux_nfsdir=NFS Dizini
linux_map=Otomatik Ba餷ay齝 Haritas
linux_swapfile=Swap Dosyas
linux_disk=Disk
linux_smbserver=Sunucu 輘mi
linux_smbshare=Paylam 輘mi
linux_raid=RAID arac
linux_rdev=RAID arac $1
linux_other=Di餰r ayg齮
linux_ro=Sadece okunabilir?
linux_sync=Dosya sistemine tamponu yaz?
linux_nodev=Ayg齮 dosyalar齨a izin ver?
linux_noexec=輐ililerin 鏰lt齬齦mas齨a izin ver?
linux_nosuid=Setuid programlar齨a izin verimesin?
linux_user=Bu dosya sistemini ba餷amaya kullan齝齦ara izin ver?
linux_check=Kontrol modu
linux_normal=Normal
linux_strict=Tam
linux_none=Hi鏱iri
linux_errors=Hatada action
linux_continue=Devam
linux_remount_ro=Sadece okunur olarak tekrar ba餷a
linux_panic=Panik
linux_grpid=Dosyalara ana GID sahip olsun?
linux_quotas=Kotalar kullan?
linux_usrquota=Sadece kullan齝
linux_grpquota=Sadece grup
linux_usrgrpquota=Kullan齝 ve Grup
linux_usrgrpquota2=Kullan齝 ve Grup (G黺enli De餴l!)
linux_resuid=Kullan齝 i鏸n alan ay齬
linux_resgid=Grup i鏸n alan ay齬
linux_bg=Arka planda ba餷ant齦ar tekrar dene?
linux_soft=Bekleme s黵esinde hatalar d鰊d黵?
linux_timeo=Bekleme S黵esi
linux_retrans=Tekrar 輑etim Say齭
linux_vers=NFS s黵黰
linux_high=En y黭sek
linux_port=NFS Portu
linux_intr=Kullan齝 kesmeleri kabul edilsin?
linux_tcp=RPC Protokolu
linux_uid=Kullan齝 dosyalar sahiplendirildi
linux_gid=Grup dosyalar sahiplendirildi
linux_rules=Dosya 輘imlendirme kurallar
linux_relaxed=Gev㧐tildi
linux_conv=DOS-Unix yeni 鏸zgi de餴㱮mi
linux_allfiles=B黷黱 dosyalar
linux_textfiles=Yaz dosyalar sadece
linux_umask=Dosya haklar maskelemesi
linux_quiet=<tt>chown</tt> denemelerinde hatalar rapor edilsin?
linux_uni_xlate=Unicode karakterleri 鏴vir?
linux_posix=Harfleri farkli isimlere izin ver?
linux_conv2=OS/2-Unix yeni 鏸zgi de餴㱮mi
linux_rock=Unix Denemelerini Ge?
linux_mode=Unix olmayan CD'ler i鏸n dosya izinleri
linux_noopts=M黰k黱 Se鏴nekler Yok
linux_timeout=Ba餷ant kesiminden 鰊ceki bekleme s黵esi
linux_pid_file=蔺lem numaras齨 dosyaya yaz
linux_secs=saniye
linux_smbwarn=Uyar! Dosya sistemi Webmin ile ba餷anmad, varolan se鏴nekler 鏰lmazlar.
linux_username=Kullanc Ad
linux_password=Kullan齝 Parolas
linux_sname=Sunucu 輘mi
linux_wg=莂lma Grubu
linux_auto=Otomatik
linux_cname=輘temci Ad
linux_mname=Sunucu Adresi
linux_fmode=Dosya 輟inleri
linux_dmode=Dizin 輟inleri
linux_notail=H齴 i鏸n ayr齦an alan kapat?
linux_ehost='$1' ge鏴rli bir makine ad de餴ldir
linux_ehost2='$1' hostu mevcut de餴ldir
linux_edown='$1' hostu dt
linux_enfs='$1' hostu NFS'i desteklemiyor
linux_elist=Ba餷ant listesinin al齨mas齨da hata olu⺶u : $1
linux_enfsdir='$1' ge鏴rli bir dizin ismi de餴ldir.$2'deki m黰k黱 dizinler : $3
linux_enfsperm=Bu hostun $1 dizinini $2'de ba餷anmas齨a izini yoktur
linux_enfsmount=NFS Hatas - $1
linux_eautomap=Otomatik ba餷ant dosya haritas '$1' mevcut de餴l
linux_edev=Ara girilmedi
linux_edevfile=Ara dosyas '$1' mevcut de餴l
linux_emask='$1' ge鏴rli bir sekizli maskeleme de餴l
linux_etimeout='$1' ge鏴rli bir bekleme s黵esi de餴l
linux_epidfile='$1' ge鏴rli bir iem numaras dosyas de餴l
linux_efmode='$1' ge鏴rli bir sekizli dosya modu de餴l
linux_edmode='$1' ge鏴rli bir sekizli dizin modu de餴l

log_mount=$3 ba餷and
log_mount_l=$3'de $2 $1'e ba餷and
log_umount=$3'in ba餷ant齭 kald齬齦d
log_umount_l=$3'de $2'nin $1'e ba餷ant齭 kald齬齦d
log_remount=$3 tekrar ba餷and
log_remount_l=$3'de $2 $1'e tekrar ba餷and
log_create=$3 ba餷ant齭 olu⺶uruldu
log_create_l=$3'de $1'e $2 ba餷ant齭 olu⺶uruldu
log_modify=Ba餷ant $3 de餴⺶irildi
log_modify_l=$3'de $1'e $2 ba餷ant齭 de餴⺶irildi
log_delete=$3 ba餷ant齭 silindi
log_delete_l=$3'de $1'e $2 ba餷ant齭 silindi

  0707010000bb5b000081a40000000000000002000000013ac0388c00002370000000200000000000000000000000000000001700000003reloc/mount/lang/zh_CN    index_title=磁盘和网络文件系统
index_dir=Mounted到
index_type=类型
index_dev=位置
index_use=正在使用?
index_perm=永久的?
index_add=添加
index_auto=自动
index_swap=虚拟内存
index_return=文件系统列表

edit_title=修改Mount
create_title=创建Mount
edit_err=修改mount失败
edit_egone=这个mount已不存在
edit_header=$1 Mount的细节
edit_dir=已Mount到
edit_swap=虚拟内存
edit_size=大小
edit_free=空闲
edit_savemount=保存Mount?
edit_boot=保存并且在启动时mount
edit_save=保存
edit_delete=删除
edit_dont=不保存
edit_now=现在就Mount?
edit_mount=Mount
edit_dont2=不mount
edit_unmount=Unmount
edit_order=启动时检查文件系统?
edit_first=先检查
edit_second=稍后检查
edit_adv=高级Mount选项
edit_list=用户列表
edit_create=Save 并且 Mount
edit_save_apply=Save 并且 Apply
edit_umount=Unmount
edit_mount=Mount
edit_perm=使长期存在
edit_del_umount=Umount 并且 Delete

save_err=保存mount失败
save_edir='$1'不是一个目录
save_edirname='$1'不是一个有效的目录名
save_ealready='$1'已经mount了
save_ealready2='$1'已被指定mount了
save_ealready3=目录'$1'已被mount了
save_ealready4=目录'$1'已被指定mount了
save_emkdir=创建目录失败$1 : $2
save_eumount=Unmount失败: $1
save_emount=Mount失败: $1
save_perm=对在$1上mount的修改不能被应用,因为这个mount正在使用.要将你的修改应用到永久的列表中,点击下面这个按钮.
save_apply=应用到永久的列表
save_eremount=Remount失败: $1
save_enone=你没有选择保存或者mount

swap_err=创建交换文件失败
swap_esize='$1'不是一个有效的大小

nfs_server=选择NFS服务器..
nfs_select=选择要mount的一台NFS服务器..
nfs_ip=IP地址
nfs_host=主机名
nfs_none=没有找到本地的NFS服务器
nfs_choose=在$1中选择NFS的目录
nfs_failed=从NFS exports中检索$1失败: $2 可能时没有正在运行的NFS服务器
nfs_seldir=选择要mount的NFS目录..
nfs_dir=目录
nfs_clients=客户端

smb_choose=选择SMB服务器..
smb_elist=从$1中检索服务器列表失败.可能是这个服务器不允许浏览.
smb_ehost=$1服务器不存在
smb_edown=$1服务器当机,不可到达或者它不是一个文件服务器.
smb_sel=选择要mount的windows网络服务器..
smb_name=服务器名
smb_desc=描述
smb_none=没找到本地的windows网络服务器
smb_choose2=为$1选择共享
smb_elist2=从$1中检索共享列表失败.可能是这个服务器不允许浏览.
smb_sel2=选择要mount的共享..
smb_share=共享
smb_comment=备注
smb_noshares=在$1上没有有效的文件共享

solaris_scsidev=SCSI控制器$1 目标$2 单元$3 分区$4
solaris_mddev=RAID设备$1
solaris_ecacheexists=$1目录已存在.删除它.
solaris_ebusy=$1忙
solaris_ekill=杀死rumba失败
solaris_epid=查找rumba的进程号失败
solaris_nsource=NFS源
solaris_nhost=NFS主机名
solaris_ndir=NFS目录
solaris_nmult=多个NFS服务器
solaris_webnfs=WebNFS的URL
solaris_ufs=UFS磁盘
solaris_scsi=SCSI磁盘
solaris_ctrlr=控制器
solaris_target=目标
solaris_unit=单元
solaris_part=分区
solaris_raid=RAID设备
solaris_otherdev=其它设备
solaris_swapfile=交换文件
solaris_file=文件
solaris_cdrom=光驱
solaris_dvd=DVD
solaris_msdos=MS-DOS磁盘
solaris_orig=源目录
solaris_cache=Cache源
solaris_automap=Automounter映射
solaris_autohosts=所有NFS exports
solaris_autoxfn=联合的名字服务
solaris_server=服务器名
solaris_share=共享名
solaris_ro=只读?
solaris_nosuid=屏蔽setuid程序?
solaris_grpid=文件继承父GID?
solaris_soft=timeouts时返回错误提示?
solaris_bg=在后台继续尝试mounts?
solaris_quota=显示限额?
solaris_nointr=允许用户打断?
solaris_nfsver=NFS版本
solaris_highest=最高的
solaris_proto=协议
solaris_port=NFS端口
solaris_timeo=Timeout
solaris_retrans=重发次数
solaris_auth=认证
solaris_none=空
solaris_des=DES
solaris_krb=Kerberos
solaris_public=WebNFS mount?
solaris_quotab=在启动时允许限额?
solaris_onerror=错误时的处理
solaris_toosoon=修复延迟
solaris_time_s=秒
solaris_time_m=分钟
solaris_time_h=小时
solaris_time_d=天
solaris_time_w=星期
solaris_time_y=年
solaris_noatime=更新存取时间?
solaris_immed=立即
solaris_defer=延期
solaris_force=强制使用直接IO?
solaris_nolarge=允许大文件吗?
solaris_logging=允许记录吗?
solaris_nrr=忽略Unix属性吗?
solaris_notraildot=忽略跟踪点吗?
solaris_nomaplcase=使用小写字母吗?
solaris_foldcase=强制使用小写字母吗?
solaris_noopts=没有其它选项
solaris_size=大小
solaris_largebsize=使用大页块?
solaris_max=最大的
solaris_backfs=真实的文件系统类型
solaris_backpath=真实的mount点
solaris_cachedir=Cache目录
solaris_wmode=写模式
solaris_con=一致性检查
solaris_period=周期地
solaris_never=从不
solaris_demand=接到请求
solaris_waround=Write-around
solaris_nshared=不共享
solaris_local=在cache中检查权限?
solaris_nobrowse=允许浏览吗?
solaris_auto=自动
solaris_mname=服务器主机名
solaris_cname=客户端名
solaris_username=登录名
solaris_password=登录密码
solaris_uid=拥有这些文件的用户是
solaris_gid=拥有这些文件的组是
solaris_fmode=文件权限
solaris_dmode=目录权限
solaris_readwrite=读写存取是否安全?
solaris_readonly=文件只读吗?
solaris_noupper=以大写字母发送密码吗?
solaris_attr=使用attrE命令吗?
solaris_eurl='$1'不是一个有效的NFS的URL
solaris_ehost='$1'不是个有效的主机名
solaris_ehost2=$1主机不存在
solaris_edown=主机当机或者不支持NFS
solaris_enfs=$1主机不支持NFS
solaris_enfsdir='$1'不是一个有效的目录名.在$2上有效的目录是$3
solaris_enfsperm=该主机不允许在$2上mount$1目录
solaris_enfsmount=NFS 错误 - $1
solaris_ectrlr='$1'不是一个有效的SCSI控制器
solaris_etarget='$1'不是一个有效的SCSI目标号
solaris_eunit='$1'不是一个有效的SCSI单元号
solaris_epart='$1'不是一个有效的SCSI分区号
solaris_eraid='$1'不是一个有效的RAID单元号
solaris_epath='$1'不是一个有效的路径名
solaris_eexist='$1'不存在
solaris_edir='$1'不是一个目录
solaris_eswapfile=交换文件'$1'不存在
solaris_eopen=打开$1失败: $2
solaris_ebackfs=后面的文件系统'$1'没有被mouted
solaris_ebacktype=后面的文件系统'$1'不是$2
solaris_ecsrc='$1'不是一个有效的cache源
solaris_eautomap=自动mount的映射名丢失
solaris_eautofile=映射文件'$1'不存在
solaris_etarget2='$1'的SCSI目标不存在
solaris_epart2='$1'的SCSI分区不存在
solaris_eraid2='$1'的RAID设备不存在
solaris_enopart=在'$1'上没有分区
solaris_edevfile=设备文件'$1'不存在
solaris_edevice='$1'的设备不存在
solaris_efstyp=设备'$1'没有被格式化成$2
solaris_efstyp2=检查文件系统类型失败: $1
solaris_ecachedir='$1'不是一个有效的cache目录
solaris_efmode='$1'不是一个有效的八进制文件模式
solaris_edmode='$1'不是一个有效的八进制目录模式

linux_eamd=AMD失败
linux_eauto=Automount失败: $1
linux_esmbconn=连接服务器失败
linux_ekillamd=杀死AMD失败
linux_ekillauto=杀死automount失败
linux_nfshost=NFS主机名
linux_nfsdir=NFS目录
linux_map=Automounter的映射
linux_swapfile=交换文件
linux_disk=磁盘
linux_smbserver=服务器名
linux_smbshare=共享名
linux_raid=RAID设备
linux_rdev=RAID设备$1
linux_cddev=CD-ROM 驱动
linux_label=已说明的分区 $1
linux_lsel=已说明的分区
linux_other=其它设备
linux_ro=只读吗?
linux_sync=将缓冲区的内容写到文件系统吗?
linux_nodev=允许设备文件吗?
linux_noexec=允许执行二进制吗?
linux_nosuid=屏蔽setuid程序吗?
linux_user=允许用户mount这个文件系统吗?
linux_check=检查模式
linux_normal=普通
linux_strict=严格地
linux_none=空
linux_errors=错误时处理
linux_continue=继续
linux_remount_ro=Remount只读
linux_panic=恐慌的
linux_grpid=文件继承父GID吗?
linux_quotas=使用限额吗?
linux_usrquota=只是用户
linux_grpquota=只是组
linux_usrgrpquota=用户和组
linux_usrgrpquota2=用户和组(不稳定!)
linux_resuid=给用户保留空间
linux_resgid=给组保留空间
linux_bg=在后台继续尝试mounts?
linux_soft=timeouts时返回错误提示?
linux_timeo=超时
linux_retrans=重发次数
linux_vers=NFS版本
linux_high=最高的
linux_port=NFS端口
linux_intr=允许用户打断?
linux_tcp=RPC协议
linux_uid=拥有这些文件的用户是
linux_gid=拥有这些文件的组是
linux_rules=文件命名规则
linux_relaxed=放松的
linux_conv=DOS-Unix转换新的一行
linux_allfiles=所有文件
linux_textfiles=只是文本文件
linux_umask=文件权限屏蔽
linux_quiet=报告在尝试<tt>chown</tt>时发生的错误吗?
linux_uni_xlate=转换Unicode的字符吗?
linux_posix=只允许在字母的命名上有不同吗?
linux_conv2=OS/2-Unix转换新的一行
linux_rock=忽略Unix属性吗?
linux_mode=non-Unix CDs的文件权限
linux_noopts=没有其它选项
linux_timeout=unmount之前的空闲时间
linux_pid_file=将进程号写进文件
linux_secs=秒
linux_smbwarn=警告!该文件系统不是在Webmin中mounted的,所以这些选项均无效
linux_username=登录名
linux_password=登录密码
linux_sname=服务器名
linux_wg=工作组
linux_auto=自动
linux_cname=客户端名
linux_mname=服务器地址
linux_fmode=文件权限
linux_dmode=目录权限
linux_notail=Trade off space for speed?
linux_ehost='$1'不是一个有效的主机名
linux_ehost2='$1'主机不存在
linux_edown='$1'主机当机
linux_enfs='$1'主机不支持NFS
linux_elist=取mount列表失败: $1
linux_enfsdir='$1'不是一个有效的目录名.在$2上有效的目录是$3
linux_enfsperm=该主机不允许在$2上mount$1目录
linux_enfsmount=NFS 错误 - $1
linux_eautomap=自动mount的映射文件'$1'不存在
linux_edev=没有安装设备
linux_edevfile=设备文件'$1'不存在
linux_emask='$1'不是一个有效的八进制屏蔽
linux_etimeout='$1'不是一个有效的timeout
linux_epidfile='$1'不是一个有效的pid文件
linux_efmode='$1'不是一个有效的八进制文件模式
linux_edmode='$1'不是一个有效的八进制目录模式

log_mount=Mount了 $3
log_mount_l=在 $3 上 Mount 了 $2 $1
log_umount=Unmount 了 $3
log_umount_l=在 $3 上 Unmount 了 $2 $1
log_remount=重新 mount 了 $3
log_remount_l=在 $3 上 重新 mount 了 $2 $1
log_create=已创建了 mount $3
log_create_l=在 $3 上 已创建了 $2 mount $1
log_modify=已更新了 mount $3
log_modify_l=在 $3 上 已更新了 $2 mount $1
log_delete=已删除了 mount $3
log_delete_l=在 $3 上 已删除了 $2 mount $1
0707010000bb5c000081a40000000000000002000000013ac0388c00002221000000200000000000000000000000000000001c00000003reloc/mount/lang/zh_TW.Big5   index_title=合盒籔呼隔郎╰参
index_dir=本更翴
index_type=摸
index_dev=本更ㄓ方
index_use=琌ㄏノい?
index_perm=琌ッ?
index_add=糤本更
index_auto=笆て
index_swap=店览癘拘砰
index_return=郎╰参

edit_title=絪胯本更
create_title=ミ本更
edit_err=礚猭絪胯本更
edit_egone=硂本更竒ぃ
edit_header=$1 本更冈灿戈
edit_dir=本更翴
edit_swap=店览癘拘砰
edit_size=
edit_free=逞緇丁
edit_savemount=琌纗本更?
edit_boot=秨诀纗本更
edit_save=纗
edit_delete=埃
edit_dont=ぃ璶纗
edit_now=琌ミ本更?
edit_mount=本更
edit_dont2=ぃ璶本更
edit_unmount=更
edit_order=秨诀琌浪琩郎╰参?
edit_first=材浪琩
edit_second=材浪琩
edit_adv=秈顶本更匡兜
edit_list=ㄏノ

save_err=礚猭纗本更
save_edir='$1' ぃ琌ヘ魁
save_edirname='$1' ぃ琌Τヘ魁嘿
save_ealready='$1' 竒砆本更
save_ealready2='$1' 竒﹚璶砆本更
save_ealready3=ヘ魁 '$1' 竒砆本更
save_ealready4=ヘ魁 '$1' 竒﹚璶砆本更
save_emkdir=礚猭ミヘ魁 $1 : $2
save_eumount=更ア毖 : $1
save_emount=本更ア毖 : $1
save_perm=倒 $1 本更跑礚猭砆甅ノ, 赣本更ヘ玡タㄏノい. 筁眤璶跑㏕﹚本更, 叫秙.
save_apply=甅ノッ
save_eremount=穝本更ア毖 : $1
save_enone=眤⊿Τ匡拒纗┪琌本更

swap_err=礚猭ミユ传郎
swap_esize='$1' ぃ琌Τ

nfs_server=匡拒 NFS 狝竟...
nfs_select=匡拒本更ㄓ方 NFS 狝竟...
nfs_ip=IP 
nfs_host=诀嘿
nfs_none=тぃセ狠 NFS 狝竟
nfs_choose=匡拒 $1  NFS ヘ魁
nfs_failed=礚猭パ $1 钡Μ NFS 蹲 : $2 ⊿Τ NFS 狝竟磅︽い
nfs_seldir=匡拒璶本更 NFS ヘ魁...
nfs_dir=ヘ魁
nfs_clients=め狠

smb_choose=匡拒 SMB 狝竟...
smb_elist=礚猭パ $1 钡Μ狝竟. 硂狝竟ぃ钡聅凝
smb_ehost=狝竟 $1 ぃ
smb_edown=狝竟 $1 琌闽超, 礚猭笷┪ぃ琌郎狝竟
smb_sel=匡拒 Windows 呼隔狝竟本更ㄓ方...
smb_name=狝竟嘿
smb_desc=弧
smb_none=тぃセ狠 Windows 呼隔狝竟
smb_choose2=匡拒 $1 だㄉ
smb_elist2=礚猭眖 $1 钡Μだㄉ. 硂狝竟ぃ钡聅凝
smb_sel2=匡拒だㄉ本更...
smb_share=だㄉ
smb_comment=爹秆
smb_noshares=狝竟 $1 ⊿Τ郎だㄉ

solaris_scsidev=SCSI 北竟 $1 ヘ夹 $2 虫じ $3 だ澄跋 $4
solaris_mddev=合盒皚杆竚 $1
solaris_ecacheexists=ヘ魁 $1 竒. 埃ウ.
solaris_ebusy=$1 タΓ窵い
solaris_ekill=炳ぃ奔 rumba
solaris_epid=тぃ rumba  PID
solaris_nsource=NFS ㄓ方
solaris_nhost=NFS 诀嘿
solaris_ndir=NFS ヘ魁
solaris_nmult= NFS 狝竟
solaris_webnfs=WebNFS URL
solaris_ufs=UFS 合盒
solaris_scsi=SCSI 合盒
solaris_ctrlr=北竟
solaris_target=ヘ夹
solaris_unit=虫じ
solaris_part=だ澄跋
solaris_raid=合盒皚杆竚
solaris_otherdev=ㄤ杆竚
solaris_swapfile=ユ传郎
solaris_file=郎
solaris_cdrom=盒诀
solaris_msdos=MS-DOS 合盒
solaris_orig=﹍ヘ魁
solaris_cache=еㄓ方
solaris_automap=笆本更竟瓜
solaris_autohosts=┮Τ NFS 蹲
solaris_autoxfn=羛㏑狝叭
solaris_server=狝竟嘿
solaris_share=だㄉ嘿
solaris_ro=琌斑弄?
solaris_nosuid=琌ぃす砛 SUID 祘Α?
solaris_grpid=郎琌膥┯ GID?
solaris_soft=筄琌莱岿粇?
solaris_bg=琌璉春刚本更?
solaris_quota=琌陪ボ合盒皌肂?
solaris_nointr=琌す砛ㄏノい耞?
solaris_nfsver=NFS セ
solaris_highest=程穝
solaris_proto=硄癟﹚
solaris_port=NFS 硄癟梆
solaris_timeo=筄
solaris_retrans=穝肚块计ヘ
solaris_auth=粄靡
solaris_none=礚
solaris_des=DES
solaris_krb=Kerberos
solaris_public=琌 WebNFS 本更?
solaris_quotab=琌币笆币笆合盒皌肂?
solaris_onerror=岿粇笆
solaris_toosoon=確┑筐
solaris_time_s=
solaris_time_m=だ
solaris_time_h=
solaris_time_d=ら
solaris_time_w=㏄
solaris_time_y=
solaris_noatime=琌穝丁?
solaris_force=琌眏钡 IO?
solaris_nolarge=琌す砛郎?
solaris_logging=琌币笆魁?
solaris_nrr=琌┛菠 Unix 妮┦?
solaris_notraildot=琌┛菠Ю狠翴?
solaris_nomaplcase=琌ㄏノ糶?
solaris_foldcase=琌眏糶?
solaris_noopts=⊿Τ匡兜
solaris_size=
solaris_max=程
solaris_backfs=痷龟郎╰参摸
solaris_backpath=痷龟本更翴
solaris_cachedir=еヘ魁
solaris_wmode=糶家Α
solaris_con=璓┦浪琩
solaris_period=﹚戳
solaris_never=ッぃ
solaris_demand=ㄌ沮璶―
solaris_waround=糶
solaris_nshared=ぃだㄉ
solaris_local=琌浪琩еい舦?
solaris_nobrowse=琌币笆聅凝?
solaris_auto=笆
solaris_mname=狝竟诀嘿
solaris_cname=め狠嘿
solaris_username=祅嘿
solaris_password=祅盞絏
solaris_uid=ㄏノ郎妮
solaris_gid=竤舱郎妮
solaris_fmode=郎舦
solaris_dmode=ヘ魁舦
solaris_readwrite=弄/糶 琌?
solaris_readonly=郎琌斑弄?
solaris_noupper=琌ノ糶癳盞絏?
solaris_attr=琌ㄏノ attrE ㏑?
solaris_eurl='$1' ぃ琌Τ NFS URL
solaris_ehost='$1' ぃ琌Τ诀嘿
solaris_ehost2=诀 '$1' ぃ
solaris_edown=诀 '$1' 琌闽超┪ぃや穿 NFS
solaris_enfs=诀 '$1' ぃや穿 NFS
solaris_enfsdir='$1' ぃ琌Τヘ魁嘿.  $2 ノヘ魁: $3
solaris_enfsperm=硂诀ぃす砛盢ヘ魁 $1 本更 $2
solaris_enfsmount=NFS 岿粇 - $1
solaris_ectrlr='$1' ぃ琌Τ SCSI 北竟
solaris_etarget='$1' ぃ琌Τ SCSI ヘ夹腹絏
solaris_eunit='$1' ぃ琌Τ SCSI 虫じ腹絏
solaris_epart='$1' ぃ琌Τ SCSI だ澄跋腹絏
solaris_eraid='$1' ぃ琌Τ合盒皚虫じ腹絏
solaris_epath='$1' iぃ琌Τ隔畖嘿
solaris_eexist='$1' ぃ
solaris_edir='$1' ぃ琌ヘ魁
solaris_eswapfile=ユ传郎 '$1' ぃ
solaris_eopen=礚猭秨币 $1 : $2
solaris_ebackfs=称郎╰参 '$1' ⊿Τ砆本更
solaris_ebacktype=称郎╰参琌 '$1' τぃ琌 $2
solaris_ecsrc='$1' ぃ琌Τеㄓ方
solaris_eautomap=框ア笆本更瓜嘿
solaris_eautofile=瓜郎e '$1' ぃ
solaris_etarget2='$1'  SCSI ヘ夹ぃ
solaris_epart2='$1'  SCSO だ澄跋ぃ
solaris_eraid2='$1' 合盒皚砞称ぃ
solaris_enopart=⊿Τだ澄跋 '$1'
solaris_edevfile=砞称郎 '$1' ぃ
solaris_edevice='$1' 砞称ぃ
solaris_efstyp=砞称 '$1' 砆ΑてΘ $2
solaris_efstyp2=礚猭浪琩郎╰参摸 : $1
solaris_ecachedir='$1' ぃ琌Τеヘ魁
solaris_efmode='$1' ぃ琌Τじ郎家Α
solaris_edmode='$1' ぃ琌Τじヘ魁家Α

linux_eamd=AMD ア毖
linux_eauto=笆本更ア毖 : $1
linux_esmbconn=礚猭硈钡狝竟
linux_ekillamd=礚猭炳奔 AMD
linux_ekillauto=礚猭炳奔 automount
linux_nfshost=NFS 诀嘿
linux_nfsdir=NFS ヘ魁
linux_map=笆本更竟瓜
linux_swapfile=ユ传郎
linux_disk=合盒
linux_smbserver=狝竟嘿
linux_smbshare=だㄉ嘿
linux_raid=合盒皚砞称
linux_rdev=合盒皚砞称 $1
linux_other=ㄤ砞称
linux_ro=琌斑弄?
linux_sync=琌絯侥糶郎╰参?
linux_nodev=琌す砛砞称郎?
linux_noexec=琌磅︽秈郎?
linux_nosuid=琌ぃす砛 SUID 郎?
linux_user=琌す砛ㄏノ本更硂郎╰参?
linux_check=浪琩家Α
linux_normal=
linux_strict=过┏
linux_none=礚
linux_errors=岿粇笆
linux_continue=膥尿
linux_remount_ro=穝斑弄本更
linux_panic=Panic
linux_grpid=郎琌膥┯ GID?
linux_quotas=琌ㄏノ合盒皌肂?
linux_usrquota=Τㄏノ
linux_grpquota=Τ竤舱
linux_usrgrpquota=ㄏノ籔竤舱
linux_usrgrpquota2=ㄏノ籔竤舱 (﹟ぃ铆﹚!)
linux_resuid=玂痙倒ㄏノ丁
linux_resgid=玂痙倒竤舱丁
linux_bg=琌璉春刚本更?
linux_soft=筄琌莱岿粇?
linux_timeo=筄
linux_retrans=穝肚块计ヘ
linux_vers=NFS セ
linux_high=程穝
linux_port=NFS 硄癟梆
linux_intr=琌す砛ㄏノい耞?
linux_tcp=RPC 硄癟﹚
linux_uid=ㄏノ郎妮
linux_gid=竤舱郎妮
linux_rules=郎㏑砏玥
linux_relaxed=ぃ╇
linux_conv=DOS-Unix 穝︽锣传
linux_allfiles=┮Τ郎
linux_textfiles=Τゅ郎
linux_umask=郎舦綛竛
linux_quiet=沽刚ㄏノ <tt>chown</tt> 琌厨岿粇?
linux_uni_xlate=琌锣传 Unicode じ栋?
linux_posix=琌す砛郎嘿Τ糶ぃ?
linux_conv2=OS/2-Unix 穝︽锣传
linux_rock=琌┛菠 Unix 妮┦?
linux_mode=倒獶 Unix 盒郎舦
linux_noopts=⊿Τ匡兜
linux_timeout=更玡盯竚丁
linux_pid_file=盢 PID 糶郎
linux_secs=
linux_smbwarn=牡! 郎╰参ぃ琌パ Webmin ┮本更, ┮瞷匡兜ぃㄏノ
linux_username=祅嘿
linux_password=祅盞絏
linux_sname=狝竟嘿e
linux_wg=竤舱
linux_auto=笆
linux_cname=め狠嘿
linux_mname=狝竟
linux_fmode=郎兜
linux_dmode=ヘ魁舦
linux_notail=琌硉ユ传フ?
linux_ehost='$1' ぃ琌Τ诀嘿
linux_ehost2=诀 '$1' ぃ
linux_edown=诀 '$1' 砆闽超
linux_enfs=诀 '$1' ぃや穿 NFS
linux_elist=礚猭眔本更 : $1
linux_enfsdir='$1' ぃ琌Τヘ魁嘿e.  $2 ノヘ魁: $3
linux_enfsperm=硂诀ぃす砛盢ヘ魁 $1 本更 $2
linux_enfsmount=NFS 岿粇 - $1
linux_eautomap=笆本更瓜郎 '$1' ぃ
linux_edev=⊿Τ块砞称
linux_edevfile=砞称郎 '$1' ぃ
linux_emask='$1' ぃ琌Τ秈綛竛
linux_etimeout='$1' ぃ琌Τ筄
linux_epidfile='$1' ぃ琌Τ PID 郎
linux_efmode='$1' ぃ琌Τじ郎家Α
linux_edmode='$1' ぃ琌Τじヘ魁家Α

   07070100007738000081e40000000000000002000000013ac0388d0000dc44000000200000000000000000000000000000001d00000003reloc/mount/lfs-linux-lib.pl  # linux-lib.pl
# Mount table functions for linux

if (&has_command("amd")) {
	local $amd = &read_amd_conf();
	$amd_support = $amd =~ /\[\s*global\s*\]/i ? 2 : 1;
	}
$autofs_support = &has_command("automount");
if (&has_command("mount.smb")) {
	$smbfs_support = `mount.smb -v` =~ /username=/i ? 4 : 3;
	}
elsif (&has_command("mount.smbfs")) {
	$smbfs_support = `mount.smbfs -v` =~ /username=/i ? 4 : 3;
	}
elsif (&has_command("smbmount")) {
	$smbfs_support = `smbmount -v` =~ /Version\s+2/i ? 2 : 1;
	}
$swaps_support = -r "/proc/swaps";
if (&has_command("e2label") &&
    `mount --version 2>&1` =~ /(\d+)\.(\d+)/ && ($1 > 2 || $1==2 && $2 >= 10)) {
	$has_e2label = 1;
	}

# Return information about a filesystem, in the form:
#  directory, device, type, options, fsck_order, mount_at_boot
# If a field is unused or ignored, a - appears instead of the value.
# Swap-filesystems (devices or files mounted for VM) have a type of 'swap',
# and 'swap' in the directory field
sub list_mounts
{
return @list_mounts_cache if (@list_mounts_cache);
local(@rv, @p, @o, $_, $i, $j); $i = 0;

# Get /etc/fstab mounts
open(FSTAB, $config{fstab_file});
while(<FSTAB>) {
	local(@o, $at_boot);
	chop; s/#.*$//g;
	if (!/\S/ || /\signore\s/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "proc") { $p[0] = "proc"; }
	elsif ($p[2] eq "auto") { $p[2] = "*"; }
	elsif ($p[2] eq "swap") { $p[1] = "swap"; }
	elsif ($p[2] eq "smbfs") { $p[0] =~ s/\//\\/g; }
	$rv[$i] = [ $p[1], $p[0], $p[2] ];
	$rv[$i]->[5] = "yes";
	@o = split(/,/ , $p[3] eq "defaults" ? "" : $p[3]);
	if (($j = &indexof("noauto", @o)) >= 0) {
		# filesytem is not mounted at boot
		splice(@o, $j, 1);
		$rv[$i]->[5] = "no";
		}
	$rv[$i]->[3] = (@o ? join(',' , @o) : "-");
	$rv[$i]->[4] = (@p >= 5 ? $p[5] : 0);
	$i++;
	}
close(FSTAB);

if ($amd_support == 1) {
	# Get old automounter configuration, as used by redhat
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		@p = split(/\s+/, $1);
		for($j=0; $j<@p; $j+=2) {
			$rv[$i++] = [ $p[$j], $p[$j+1], "auto",
				      "-", 0, "yes" ];
			}
		}
	}
elsif ($amd_support == 2) {
	# Guess what? There's now a *new* amd config file format, introduced
	# in redhat 6.1 and caldera 2.3
	local @amd = &parse_amd_conf();
	local @sp = split(/:/, $amd[0]->{'opts'}->{'search_path'});
	local ($am, $sp);
	foreach $am (@amd) {
		local $mn = $am->{'opts'}->{'map_name'};
		if ($mn !~ /^\//) {
			foreach $sp (@sp) {
				if (-r "$sp/$mn") {
					$mn = "$sp/$mn";
					last;
					}
				}
			}
		$rv[$i++] = [ $am->{'dir'}, $mn,
			      "auto", $am->{'opts'}, 0, "yes" ]
			if ($am->{'dir'} ne 'global');
		}
	}

# Get kernel automounter configuration
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	while(<AUTO>) {
		chop;
		s/#.*$//g;
		if (/^\s*(\S+)\s+(\S+)\s*(.*)$/) {
			$rv[$i++] = [ $1, $2, "autofs",
				      ($3 ? &autofs_options($3) : "-"),
				      0, "yes" ];
			}
		}
	close(AUTO);
	}

@list_mounts_cache = @rv;
return @rv;
}


# create_mount(directory, device, type, options, fsck_order, mount_at_boot)
# Add a new entry to the fstab file, old or new automounter file
sub create_mount
{
local(@mlist, @amd, $_); local($opts);

if ($_[2] eq "auto") {
	if ($amd_support == 1) {
		# Adding an old automounter mount
		local $amd = &read_amd_conf();
		local $m = "$_[0] $_[1]";
		if ($amd =~ /MOUNTPTS=''/) {
			$amd =~ s/MOUNTPTS=''/MOUNTPTS='$m'/;
			}
		else {
			$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$1 $m'/;
			}
		&write_amd_conf($amd);
		}
	elsif ($amd_support == 2) {
		# Adding a new automounter mount
		open(AMD, ">>$config{'auto_file'}");
		print AMD "\n";
		print AMD "[ $_[0] ]\n";
		print AMD "map_name = $_[1]\n";
		close(AMD);
		}
	}
elsif ($_[2] eq "autofs") {
	# Adding a new automounter mount
	open(AUTO, ">> $config{'autofs_file'}");
	print AUTO "$_[0]  $_[1]";
	if ($_[3]) { print AUTO "  ",&autofs_args($_[3]); }
	print AUTO "\n";
	close(AUTO);
	}
else {
	# Adding a normal mount to the fstab file
	local $dev = $_[1];
	$dev =~ s/\\/\//g if ($_[2] eq 'smbfs');
	open(FSTAB, ">> $config{fstab_file}");
	print FSTAB "$dev  $_[0]  $_[2]";
	$opts = $_[3] eq "-" ? "" : $_[3];
	if ($_[5] eq "no") {
		$opts = join(',' , (split(/,/ , $opts) , "noauto"));
		}
	if ($opts eq "") { print FSTAB "  defaults"; }
	else { print FSTAB "  $opts"; }
	print FSTAB "  0  ";
	print FSTAB $_[4] eq "-" ? "0\n" : "$_[4]\n";
	close(FSTAB);
	}
undef(@list_mounts_cache);
}


# change_mount(num, directory, device, type, options, fsck_order, mount_at_boot)
# Change an existing permanent mount
sub change_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $line !~ /\signore\s/ && $i++ == $_[0]) {
		# Found the line to replace
		print FSTAB "$_[2]  $_[1]  $_[3]";
		$opts = $_[4] eq "-" ? "" : $_[4];
		if ($_[6] eq "no") {
			$opts = join(',' , (split(/,/ , $opts) , "noauto"));
			}
		if ($opts eq "") { print FSTAB "  defaults"; }
		else { print FSTAB "  $opts"; }
		print FSTAB "  0  ";
		print FSTAB $_[5] eq "-" ? "0\n" : "$_[5]\n";
		}
	else { print FSTAB $_,"\n"; }
	}
close(FSTAB);

if ($amd_support == 1) {
	# Update older amd configuration
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		# found mount points line..
		local @mpts = split(/\s+/, $1);
		for($j=0; $j<@mpts; $j+=2) {
			if ($i++ == $_[0]) {
				$mpts[$j] = $_[1];
				$mpts[$j+1] = $_[2];
				}
			}
		local $mpts = join(" ", @mpts);
		$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$mpts'/;
		}
	&write_amd_conf($amd);
	}
elsif ($amd_support == 2) {
	# Update new amd configuration
	local @amd = &parse_amd_conf();
	local $lref = &read_file_lines($config{'auto_file'});
	foreach $am (@amd) {
		next if ($am->{'dir'} eq 'global');
		if ($i++ == $_[0]) {
			local @nl = ( "[ $_[1] ]" );
			local %opts = %{$am->{'opts'}};
			$opts->{'map_name'} = $_[2];
			foreach $o (keys %opts) {
				push(@nl, "$o = $opts{$o}");
				}
			splice(@$lref, $am->{'line'},
			       $am->{'eline'} - $am->{'line'} + 1, @nl);
			}
		}
	&flush_file_lines();
	}

# Update autofs configuration
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	@auto = <AUTO>;
	close(AUTO);
	open(AUTO, "> $config{'autofs_file'}");
	foreach (@auto) {
		chop; ($line = $_) =~ s/#.*$//g;
		if ($line =~ /\S/ && $i++ == $_[0]) {
			print AUTO "$_[1]  $_[2]";
			if ($_[4]) { print AUTO "  ",&autofs_args($_[4]); }
			print AUTO "\n";
			}
		else { print AUTO $_,"\n"; }
		}
	close(AUTO);
	}
undef(@list_mounts_cache);
}


# delete_mount(index)
# Delete an existing permanent mount
sub delete_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line !~ /\S/ || $line =~ /\signore\s/ || $i++ != $_[0]) {
		# Don't delete this line
		print FSTAB $_,"\n";
		}
	}
close(FSTAB);

if ($amd_support == 1) {
	# Update older amd configuration
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		# found mount points line..
		local @mpts = split(/\s+/, $1);
		for($j=0; $j<@mpts; $j+=2) {
			if ($i++ == $_[0]) {
				splice(@mpts, $j, 2);
				}
			}
		local $mpts = join(" ", @mpts);
		$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$mpts'/;
		}
	&write_amd_conf($amd);
	}
elsif ($amd_support == 2) {
	# Update new amd configuration
	local @amd = &parse_amd_conf();
	local $lref = &read_file_lines($config{'auto_file'});
	foreach $am (@amd) {
		next if ($am->{'dir'} eq 'global');
		if ($i++ == $_[0]) {
			splice(@$lref, $am->{'line'},
			       $am->{'eline'} - $am->{'line'} + 1);
			}
		}
	&flush_file_lines();
	}

# Update AMD file
if ($amd_support) {
	open(AMD, $config{auto_file});
	@amd = <AMD>;
	close(AMD);
	open(AMD, "> $config{auto_file}");
	foreach (@amd) {
		if (/MOUNTPTS='(.*)'/) {
			# found mount points line..
			@mpts = split(/\s+/, $1);
			for($j=0; $j<@mpts; $j+=2) {
				if ($i++ != $_[0]) {
					push(@nmpts, $mpts[$j]);
					push(@nmpts, $mpts[$j+1]);
					}
				}
			print AMD "MOUNTPTS='".join(' ', @nmpts)."'\n";
			}
		else { print AMD $_; }
		}
	close(AMD);
	}

# Update autofs file
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	@auto = <AUTO>;
	close(AUTO);
	open(AUTO, "> $config{'autofs_file'}");
	foreach (@auto) {
		chop; ($line = $_) =~ s/#.*$//g;
		if ($line !~ /\S/ || $i++ != $_[0]) {
			# keep this line
			print AUTO $_,"\n";
			}
		}
	close(AUTO);
	}
undef(@list_mounts_cache);
}


# list_mounted()
# Return a list of all the currently mounted filesystems and swap files.
# The list is in the form:
#  directory device type options
sub list_mounted
{
return @list_mounted_cache if (@list_mounted_cache);
local(@rv, @p, @o, $mo, $_, %smbopts);
local @mounts = &list_mounts();

&read_smbopts();
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	chop;
	s/#.*$//g; if (!/\S/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "auto" || $p[0] =~ /^\S+:\(pid\d+\)$/) {
		# Automounter map.. turn the map= option into the device
		@o = split(/,/ , $p[3]);
		($mo) = grep {/^map=/} (@o);
		$mo =~ /^map=(.*)$/; $p[0] = $1;
		$p[3] = join(',' , grep {!/^map=/} (@o));
		$p[2] = "auto";
		}
	elsif ($p[2] eq "autofs") {
		# Kernel automounter map.. use the pid to find the map
		$p[0] =~ /automount\(pid(\d+)\)/ || next;
		$out = `ps hwwww $1`;
		$out =~ /automount\s+(.*)\s*(\S+)\s+(file|program|yp)(,\S+)?\s+(\S+)/ || next;
		$p[0] = $5;
		$p[3] = $1 ? &autofs_options($1) : "-";
		}
	elsif ($p[2] eq "smbfs") {
		# Change from //FOO/BAR to \\foo\bar
		$p[0] =~ s/\//\\/g;
		$p[0] = lc($p[0]);
		$p[3] = $smbopts{$p[1]};
		}
	elsif ($p[2] eq "proc") {
		# The source for proc mounts is always proc
		$p[0] = "proc";
		}
	if ($p[2] eq 'ext2' && $has_e2label) {
		# Check for a label on this partition, and there is one
		# and this filesystem is in fstab with the label, change
		# the device.
		local $label = `e2label $p[0] 2>^1`;
		if (!$?) {
			chop($label);
			foreach $m (@mounts) {
				if ($m->[0] eq $p[1] &&
				    $m->[1] eq "LABEL=$label") {
					$p[0] = "LABEL=$label";
					last;
					}
				}
			}
		}
	# check fstab for a mount on the same dir which is a symlink
	# to the device
	local @st = stat($p[0]);
	foreach $m (@mounts) {
		if ($m->[0] eq $p[1]) {
			local @fst = stat($m->[1]);
			if ($fst[0] == $st[0] && $fst[1] == $st[1]) {
				# symlink to the same place!
				$p[0] = $m->[1];
				last;
				}
			}
		}
	push(@rv, [ $p[1], $p[0], $p[2], $p[3] ]);
	}
close(MTAB);
open(SWAPS, "/proc/swaps");
while(<SWAPS>) {
	chop;
	if (/^(\/\S+)\s+/) {
		push(@rv, [ "swap", $1, "swap", "-" ]);
		}
	}
close(SWAPS);
@list_mounted_cache = @rv;
return @rv;
}


# mount_dir(directory, device, type, options)
# Mount a new directory from some device, with some options. Returns 0 if ok,
# or an error string if failed
sub mount_dir
{
local($out, $opts, $shar, %options, %smbopts);
if ($_[2] eq "swap") {
	# Use swapon to add the swap space..
	$out = &backquote_logged("swapon $_[1] 2>&1");
	if ($out =~ /Invalid argument/) {
		# looks like this swap partition isn't ready yet.. set it up
		$out = &backquote_logged("mkswap $_[1] 2>&1");
		if ($?) { return "mkswap failed : <pre>$out</pre>"; }
		$out = &backquote_logged("swapon $_[1] 2>&1");
		}
	if ($?) { return "<pre>$out</pre>"; }
	}
elsif ($_[2] eq "auto") {
	# Old automounter filesystem
	$out = &backquote_logged("amd $_[0] $_[1] >/dev/null 2>/dev/null");
	if ($?) { return $text{'linux_eamd'}; }
	}
elsif ($_[2] eq "autofs") {
	# New automounter filesystem
	$opts = &autofs_args($_[3]);
	$type = $_[1] !~ /^\// ? "yp" :
		(-x $_[1]) ? "program" : "file";
	$out = &backquote_logged("automount $opts $_[0] $type $_[1] 2>&1");
	if ($?) { return &text('linux_eauto', "<pre>$out</pre>"); }
	}
elsif ($_[2] eq "smbfs") {
	local $shar = $_[1];
	$shar =~ s/\\/\//g;
	if ($smbfs_support >= 3) {
		# SMB filesystem mounted with mount command
		$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
		$out = &backquote_logged("mount -t $_[2] $opts $shar $_[0] 2>&1");
		if ($? || $out =~ /failed/i) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "mount -t $_[2] $opts $shar $_[0] : <pre>$out</pre>";
			}
		}
	elsif ($smbfs_support == 2) {
		# SMB filesystem mounted with version 2.x smbmount
		&parse_options("smbfs", $_[3]);
		$opts =
		    ($options{'user'} ? "-U $options{'user'} " : "").
		    ($options{'passwd'} ? "" : "-N ").
		    ($options{'workgroup'} ? "-W $options{'workgroup'} " : "").
		    ($options{'clientname'} ? "-n $options{'clientname'} " : "").
		    ($options{'machinename'} ? "-I $options{'machinename'} " : "");
		&foreign_require("proc", "proc-lib.pl");
		local ($fh, $fpid) = &foreign_call(
			"proc", "pty_process_exec_logged", "sh", "-c",
			"smbmount $shar $_[0] -d 0 $opts");
		if ($options{'passwd'}) {
			local $w = &wait_for($fh, "word:");
			if ($w < 0) {
				&system_logged("umount $_[0] >/dev/null 2>&1");
				return $text{'linux_esmbconn'};
				}
			local $p = "$options{'passwd'}\n";
			syswrite($fh, $p, length($p));
			}
		local $got;
		while(<$fh>) {
			$got .= $_;
			}
		if ($got =~ /failed/) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "<pre>$got</pre>\n";
			}
		close($fh);
		}
	elsif ($smbfs_support == 1) {
		# SMB filesystem mounted with older smbmount
		&parse_options("smbfs", $_[3]);
		$shortname = &get_system_hostname();
		if ($shortname =~ /^([^\.]+)\.(.+)$/) { $shortname = $1; }
		$opts =
		   ($options{servername} ? "-s $options{servername} " : "").
		   ($options{clientname} ? "-c $options{clientname} "
					 : "-c $shortname ").
		   ($options{machinename} ? "-I $options{machinename} " : "").
		   ($options{user} ? "-U $options{user} " : "").
		   ($options{passwd} ? "-P $options{passwd} " : "-n ").
		   ($options{uid} ? "-u $options{uid} " : "").
		   ($options{gid} ? "-g $options{gid} " : "").
		   ($options{fmode} ? "-f $options{fmode} " : "").
		   ($options{dmode} ? "-d $options{dmode} " : "");
		$out = &backquote_logged("smbmount $shar $_[0] $opts 2>&1");
		if ($out) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "<pre>$out</pre>";
			}
		}
	&read_smbopts();
	$smbopts{$_[0]} = $_[3] eq "-" ? "dummy=1" : $_[3];
	&write_smbopts();
	}
else {
	# some filesystem supported by mount
	$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
	if ($_[1] =~ /LABEL=(.*)/) {
		$cmd = "mount -t $_[2] -L $1 $opts $_[0]";
		}
	else {
		$cmd = "mount -t $_[2] $opts $_[1] $_[0]";
		}
	$out = &backquote_logged("$cmd 2>&1");
	if ($?) { return "<pre>$cmd : $out</pre>"; }
	}
undef(@list_mounted_cache);
return 0;
}


# unmount_dir(directory, device, type)
# Unmount a directory that is currently mounted. Returns 0 if ok,
# or an error string if failed
sub unmount_dir
{
local($out, %smbopts, $dir);
if ($_[2] eq "swap") {
	# Use swapoff to remove the swap space..
	$out = &backquote_logged("swapoff $_[1]");
	if ($?) { return "<pre>$out</pre>"; }
	}
elsif ($_[2] eq "auto") {
	# Kill the amd process
	$dir = $_[0];
	if (`cat /etc/mtab` =~ /:\(pid([0-9]+)\)\s+$dir\s+(auto|nfs)\s+/) {
		&kill_logged('TERM', $1) || return $text{'linux_ekillamd'};
		}
	sleep(2);
	}
elsif ($_[2] eq "autofs") {
	# Kill the automount process
	$dir = $_[0];
	`cat /etc/mtab` =~ /automount\(pid([0-9]+)\)\s+$dir\s+autofs\s+/;
	&kill_logged('TERM', $1) || return $text{'linux_ekillauto'};
	sleep(2);
	}
else {
	$out = &backquote_logged("umount $_[0] 2>&1");
	if ($?) { return "<pre>$out</pre>"; }
	if ($_[2] eq "smbfs") {
		# remove options from list
		&read_smbopts();
		delete($smbopts{$_[0]});
		&write_smbopts();
		}
	}
undef(@list_mounted_cache);
return 0;
}


# mount_modes(type)
# Given a filesystem type, returns 4 numbers that determine how the file
# system can be mounted, and whether it can be fsck'd
#  0 - cannot be permanently recorded
#	(smbfs under linux before 2.2)
#  1 - can be permanently recorded, and is always mounted at boot
#	(swap under linux)
#  2 - can be permanently recorded, and may or may not be mounted at boot
#	(most normal filesystems)
# The second is:
#  0 - mount is always permanent => mounted when saved
#	(swap under linux before 2.2)
#  1 - doesn't have to be permanent
#	(normal fs types)
# The third is:
#  0 - cannot be fsck'd at boot time
#  1 - can be be fsck'd at boot
# The fourth is:
#  0 - can be unmounted
#  1 - cannot be unmounted
sub mount_modes
{
if ($_[0] eq "swap")
	{ return (1, $swaps_support ? 1 : 0, 0, 0); }
elsif ($_[0] eq "auto" || $_[0] eq "autofs")
	{ return (1, 1, 0, 0); }
elsif ($_[0] eq "smbfs")
	{ return ($smbfs_support >= 3 ? 2 : 0, 1, 0, 0); }
elsif ($_[0] eq "ext2" || $_[0] eq "minix" || $_[0] eq "xiafs")
	{ return (2, 1, 1, 0); }
else
	{ return (2, 1, 0, 0); }
}


# disk_space(type, directory)
# Returns the amount of total and free space for some filesystem, or an
# empty array if not appropriate.
sub disk_space
{
if (&get_mounted($_[1], "*") < 0) { return (); }
if ($_[0] eq "proc" || $_[0] eq "swap" ||
    $_[0] eq "auto" || $_[0] eq "autofs") { return (); }
`df -k $_[1]` =~ /Mounted on\n\S+\s+(\S+)\s+\S+\s+(\S+)/;
return ($1, $2);
}


# list_fstypes()
# Returns an array of all the supported filesystem types. If a filesystem is
# found that is not one of the supported types, generate_location() and
# generate_options() will not be called for it.
sub list_fstypes
{
local @sup = ("ext2", "minix", "msdos", "nfs", "iso9660", "ext", "xiafs",
	      "hpfs", "fat", "vfat", "umsdos", "sysv", "reiserfs");
push(@sup, "smbfs") if ($smbfs_support);
push(@sup, "auto") if ($amd_support);
push(@sup, "autofs") if ($autofs_support);
push(@sup, "swap");
return @sup;
}


# fstype_name(type)
# Given a short filesystem type, return a human-readable name for it
sub fstype_name
{
local(%fsmap);
%fsmap = ("ext2","Linux Native Filesystem",
	  "minix","Minix Filesystem",
	  "msdos","MS-DOS Filesystem",
	  "nfs","Network Filesystem",
	  "smbfs","Windows Networking Filesystem",
	  "iso9660","ISO9660 CD-ROM",
	  "ext","Old EXT Linux Filesystem",
	  "xiafs","Old XIAFS Linux Filesystem",
	  "hpfs","OS/2 Filesystem",
	  "fat","MS-DOS Filesystem",
	  "vfat","Windows 95 Filesystem",
	  "umsdos","Linux on top of MS-DOS Filesystem",
	  "sysv","System V Filesystem",
	  "swap","Virtual Memory",
	  "proc","Kernel Filesystem",
	  "devpts","PTS Filesystem",
	  "auto",($autofs_support ? "Old " : "")."Automounter Filesystem",
	  "reiserfs","Reiser Filesystem",
	  "autofs","New Automounter Filesystem",
	  "usbdevfs","USB Devices",
	  "shm","SysV Shared Memory");
return $config{long_fstypes} && $fsmap{$_[0]} ? $fsmap{$_[0]} : uc($_[0]);
}


# multiple_mount(type)
# Returns 1 if filesystems of this type can be mounted multiple times, 0 if not
sub multiple_mount
{
return ($_[0] eq "nfs" || $_[0] eq "auto" || $_[0] eq "autofs");
}


# generate_location(type, location)
# Output HTML for editing the mount location of some filesystem.
sub generate_location
{
if ($_[0] eq "nfs") {
	# NFS mount from some host and directory
	$_[1] =~ /^([^:]+):(.*)$/;
	print "<tr> <td><b>$text{'linux_nfshost'}</b></td>\n";
	print "<td><input name=nfs_host size=20 value=\"$1\">\n";
	&nfs_server_chooser_button("nfs_host");
	print "&nbsp;<b>$text{'linux_nfsdir'}</b>\n";
	print "<input name=nfs_dir size=20 value=\"$2\">\n";
	&nfs_export_chooser_button("nfs_host", "nfs_dir");
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "auto") {
	# Using some automounter map
	print "<tr> <td><b>$text{'linux_map'}</b></td>\n";
	print "<td><input name=auto_map size=20 value=\"$_[1]\">\n";
	print &file_chooser_button("auto_map", 0);
	print "</td> <td colspan=2></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	# Using some kernel automounter map
	print "<tr> <td><b>$text{'linux_map'}</b></td>\n";
	print "<td><input name=autofs_map size=20 value=\"$_[1]\">\n";
	print &file_chooser_button("autofs_map", 0);
	print "</td> <td colspan=2></td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swap file or device
	&foreign_require("fdisk", "fdisk-lib.pl");
	printf "<tr> <td valign=top><b>$text{'linux_swapfile'}</b></td>\n";
	print "<td colspan=3>\n";
	local $found;
	local $sel = &foreign_call("fdisk", "partition_select", "lnx_disk",
				   $_[1], 3, \$found);
	printf "<input type=radio name=lnx_dev value=0 %s> %s %s<br>\n",
		$found ? "checked" : "", $text{'linux_disk'}, $sel;
	printf "<input type=radio name=lnx_dev value=1 %s> %s\n",
		$found ? "" : "checked", $text{'linux_swapfile'};
	printf "<input name=lnx_other size=35 value='%s'><br>\n",
		$found ? "" : $_[1];
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "smbfs") {
	# Windows filesystem
	$_[1] =~ /^\\\\(.*)\\(.*)$/;
	print "<tr> <td><b>$text{'linux_smbserver'}</b></td>\n";
	print "<td><input name=smbfs_server value=\"$1\" size=20>\n";
	&smb_server_chooser_button("smbfs_server");
	print "</td>\n";
	print "<td><b>$text{'linux_smbshare'}</b></td>\n";
	print "<td><input name=smbfs_share value=\"$2\" size=20>\n";
	&smb_share_chooser_button("smbfs_server", "smbfs_share");
	print "</td> </tr>\n";
	}
else {
	# This is some linux disk-based filesystem
	&foreign_require("fdisk", "fdisk-lib.pl");
	printf "<tr> <td valign=top><b>%s</b></td>\n", &fstype_name($_[0]);
	print "<td colspan=3>\n";
	local ($found, $rfound, $lfound, $rsel, $c);
	local $sel = &foreign_call("fdisk", "partition_select", "lnx_disk",
				   $_[1], 0, \$found);
	printf "<input type=radio name=lnx_dev value=0 %s> %s %s<br>\n",
		$found ? "checked" : "", $text{'linux_disk'}, $sel;

	if (&foreign_check("raid")) {
		&foreign_require("raid", "raid-lib.pl");
		local $conf = &foreign_call("raid", "get_raidtab");
		foreach $c (@$conf) {
			if ($c->{'active'}) {
				$rsel .= sprintf "<option value=%s %s>%s\n",
					$c->{'value'},
					$_[1] eq $c->{'value'} ? 'selected' : '',
					&text('linux_rdev', substr($c->{'value'}, -1));
				$rfound++ if ($_[1] eq $c->{'value'});
				}
			}
		if ($rsel) {
			printf "<input type=radio name=lnx_dev value=2 %s> %s\n",
				$rfound ? "checked" : " ", $text{'linux_raid'};
			print "<select name=lnx_raid>\n",$rsel,"</select><br>\n";
			}
		}

	if ($has_e2label) {
		local $l = $_[1] =~ /LABEL=(.*)/ ? $1 : undef;
		local $esel = &foreign_call("fdisk", "label_select",
					    "lnx_label", $l, \$lfound);
		if ($esel) {
			printf "<input type=radio name=lnx_dev value=3 %s> %s %s<br>\n", $lfound ? "checked" : "", $text{'linux_lsel'}, $esel;
			}
		}

	printf "<input type=radio name=lnx_dev value=1 %s> %s\n",
		$found || $rfound || $lfound ? "" : "checked", $text{'linux_other'};
	printf "<input name=lnx_other size=35 value='%s'><br>\n",
		$found || $rfound || $lfound ? "" : $_[1];
	print "</td> </tr>\n";
	}
}


# generate_options(type, newmount)
# Output HTML for editing mount options for a particular filesystem 
# under this OS
sub generate_options
{
if ($_[0] ne "swap" && $_[0] ne "auto" &&
    $_[0] ne "autofs" && $_[0] ne "smbfs") {
	# Lots of options are common to all linux filesystems
	print "<tr> <td><b>$text{'linux_ro'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_ro value=1 %s> $text{'yes'}\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=lnx_ro value=0 %s> $text{'no'}</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>$text{'linux_sync'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_sync value=0 %s> $text{'yes'}\n",
		defined($options{"sync"}) ? "" : "checked";
	printf "<input type=radio name=lnx_sync value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"sync"}) ? "checked" : "";

	print "<tr> <td><b>$text{'linux_nodev'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_nodev value=0 %s> $text{'yes'}\n",
		defined($options{"nodev"}) ? "" : "checked";
	printf "<input type=radio name=lnx_nodev value=1 %s> $text{'no'}</td>\n",
		defined($options{"nodev"}) ? "checked" : "";

	print "<td><b>$text{'linux_noexec'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_noexec value=0 %s> $text{'yes'}\n",
		defined($options{"noexec"}) ? "" : "checked";
	printf "<input type=radio name=lnx_noexec value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"noexec"}) ? "checked" : "";

	print "<tr> <td><b>$text{'linux_nosuid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_nosuid value=1 %s> $text{'yes'}\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=lnx_nosuid value=0 %s> $text{'no'}</td>\n",
		defined($options{"nosuid"}) ? "" : "checked";

	print "<td><b>$text{'linux_user'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_user value=1 %s> $text{'yes'}\n",
		defined($options{"user"}) ? "checked" : "";
	printf "<input type=radio name=lnx_user value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"user"}) ? "" : "checked";
	}
	
if ($_[0] eq "ext2") {
	# Ext2 has lots more options..
	print "<tr> <td><b>$text{'linux_check'}</b></td>\n";
	print "<td><select name=ext2_check>\n";
	printf "<option value=normal %s> $text{'linux_normal'}\n",
		$options{"check"} eq "" || $options{"check"} eq "normal" ?
			"selected" : "";
	printf "<option value=strict %s> $text{'linux_strict'}\n",
		$options{"check"} eq "strict" ? "selected" : "";
	printf "<option value=none %s> $text{'linux_none'}\n",
		$options{"check"} eq "none" || defined($options{"nocheck"}) ?
			"selected" : "";
	print "</select></td>\n";

	print "<td><b>$text{'linux_errors'}</b></td>\n";
	print "<td><select name=ext2_errors>\n";
	printf "<option value=default %s> $text{'default'}\n",
		!defined($options{"errors"}) ? "selected" : "";
	printf "<option value=continue %s> $text{'linux_continue'}\n",
		$options{"error"} eq "continue" ? "selected" : "";
	printf "<option value=remount-ro %s> $text{'linux_remount_ro'}\n",
		$options{"error"} eq "remount-ro" ? "selected" : "";
	printf "<option value=panic %s> $text{'linux_panic'}\n",
		$options{"error"} eq "panic" ? "selected" : "";
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_grpid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=ext2_grpid value=0 %s> $text{'yes'}\n",
		defined($options{"grpid"}) || defined($options{"bsdgroups"}) ?
			"" : "checked";
	printf "<input type=radio name=ext2_grpid value=1 %s> $text{'no'}</td>\n",
		defined($options{"grpid"}) || defined($options{"bsdgroups"}) ?
			"checked" : "";

	print "<td><b>$text{'linux_quotas'}</b></td>\n";
	local $usrquota = defined($options{"usrquota"});
	local $grpquota = defined($options{"grpquota"});
	print "<td nowrap><select name=ext2_quota>\n";
	printf "<option value=0 %s> $text{'no'}\n",
		$usrquota || $grpquota ? "" : "selected";
	printf "<option value=1 %s> $text{'linux_usrquota'}\n",
		$usrquota && !$grpquota ? "selected" : "";
	printf "<option value=2 %s> $text{'linux_grpquota'}\n",
		$grpquota && !$usrquota ? "selected" : "";
	if (`uname -r` =~ /^2\.0\.(\d+)/ && $1 < 31) {
		printf "<option value=3 %s> $text{'linux_usrgrpquota2'}\n",
			$usrquota && $grpquota ? "selected" : "";
		}
	else {
		printf "<option value=3 %s> $text{'linux_usrgrpquota'}\n",
			$usrquota && $grpquota ? "selected" : "";
		}
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_resuid'}</b></td>\n";
	printf "<td><input name=ext2_resuid size=8 value=\"%s\">\n",
		defined($options{"resuid"}) ? getpwuid($options{"resuid"}) : "";
	print &user_chooser_button("ext2_resuid", 0),"</td>\n";

	print "<td><b>$text{'linux_resgid'}</b></td>\n";
	printf "<td><input name=ext2_resgid size=8 value=\"%s\">\n",
		defined($options{"resgid"}) ? getgrgid($options{"resgid"}) : "";
	print &group_chooser_button("ext2_resgid", 0),"</td> </tr>\n";
	}
elsif ($_[0] eq "nfs") {
	# Linux nfs has some more options...
	print "<tr> <td><b>$text{'linux_bg'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_bg value=1 %s> $text{'yes'}\n",
		defined($options{"bg"}) ? "checked" : "";
	printf "<input type=radio name=nfs_bg value=0 %s> $text{'no'}</td>\n",
		defined($options{"bg"}) ? "" : "checked";

	print "<td><b>$text{'linux_soft'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_soft value=1 %s> $text{'yes'}\n",
		defined($options{"soft"}) ? "checked" : "";
	printf "<input type=radio name=nfs_soft value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"soft"}) ? "" : "checked";

	print "<tr> <td><b>$text{'linux_timeo'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_timeo_def value=1 %s> $text{'default'}\n",
		defined($options{"timeo"}) ? "" : "checked";
	printf "<input type=radio name=nfs_timeo_def value=0 %s>\n",
		defined($options{"timeo"}) ? "checked" : "";
	printf "<input size=5 name=nfs_timeo value=$options{timeo}></td>\n";

	print "<td><b>$text{'linux_retrans'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_retrans_def value=1 %s> $text{'default'}\n",
		defined($options{"retrans"}) ? "" : "checked";
	printf "<input type=radio name=nfs_retrans_def value=0 %s>\n",
		defined($options{"retrans"}) ? "checked" : "";
	print "<input size=5 name=nfs_retrans value=$options{retrans}></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_vers'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_vers_def value=1 %s> $text{'linux_high'}\n",
		defined($options{"nfsvers"}) ? "" : "checked";
	printf "<input type=radio name=nfs_vers_def value=0 %s>\n",
		defined($options{"nfsvers"}) ? "checked" : "";
	print "<input size=1 name=nfsvers value=$options{nfsvers}></td>\n";

	print "<td><b>$text{'linux_port'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_port_def value=1 %s> $text{'default'}\n",
		defined($options{"port"}) ? "" : "checked";
	printf "<input type=radio name=nfs_port_def value=0 %s>\n",
		defined($options{"port"}) ? "checked" : "";
	print "<input size=5 name=nfs_port value=$options{port}></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_intr'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_intr value=1 %s> $text{'yes'}\n",
		defined($options{"intr"}) ? "checked" : "";
	printf "<input type=radio name=nfs_intr value=0 %s> $text{'no'}</td>\n",
		defined($options{"intr"}) ? "" : "checked";

	print "<td><b>$text{'linux_tcp'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_tcp value=1 %s> TCP\n",
		defined($options{"tcp"}) ? "checked" : "";
	printf "<input type=radio name=nfs_tcp value=0 %s> UDP</td> </tr>\n",
		defined($options{"tcp"}) ? "" : "checked";
	}
elsif ($_[0] eq "fat" || $_[0] eq "vfat" || $_[0] eq "msdos" || $_[0] eq "umsdos"){
	# All dos-based filesystems share some options
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=fat_uid size=8 value=\"%s\">\n",
		defined($options{'uid'}) ? getpwuid($options{'uid'}) : "";
	print &user_chooser_button("fat_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=fat_gid size=8 value=\"%s\">\n",
		defined($options{'gid'}) ? getgrgid($options{'gid'}) : "";
	print &group_chooser_button("fat_gid", 0),"</td> </tr>\n";

	print "<tr> <td><b>$text{'linux_rules'}</b></td>\n";
	print "<td><select name=fat_check>\n";
	printf "<option value=\"\" %s> $text{'default'}\n",
		defined($options{"check"}) ? "" : "selected";
	printf "<option value=r %s> $text{'linux_relaxed'}\n",
		$options{"check"} =~ /^r/ ? "selected" : "";
	printf "<option value=n %s> $text{'linux_normal'}\n",
		$options{"check"} =~ /^n/ ? "selected" : "";
	printf "<option value=s %s> $text{'linux_strict'}\n",
		$options{"check"} =~ /^s/ ? "selected" : "";
	print "</select></td>\n";

	print "<td><b>$text{'linux_conv'}</b></td>\n";
	print "<td><select name=fat_conv>\n";
	printf "<option value=\"\" %s> $text{'linux_none'}\n",
		$options{"conv"} =~ /^b/ || !defined($options{"conv"}) ?
		"selected" : "";
	printf "<option value=t %s> $text{'linux_allfiles'}\n",
		$options{"conv"} =~ /^t/ ? "selected" : "";
	printf "<option value=a %s> $text{'linux_textfiles'}\n",
		$options{"conv"} =~ /^a/ ? "selected" : "";
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_umask'}</b></td>\n";
	printf "<td><input type=radio name=fat_umask_def value=1 %s> $text{'default'}\n",
		defined($options{"umask"}) ? "" : "checked";
	printf "<input type=radio name=fat_umask_def value=0 %s>\n",
		defined($options{"umask"}) ? "checked" : "";
	print "<input size=5 name=fat_umask value=\"$options{umask}\"></td>\n";

	print "<td><b>$text{'linux_quiet'}</b></td>\n";
	printf "<td nowrap><input type=radio name=fat_quiet value=0 %s> $text{'yes'}\n",
		defined($options{"quiet"}) ? "" : "checked";
	printf "<input type=radio name=fat_quiet value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"quiet"}) ? "checked" : "";

	if ($_[0] eq "vfat") {
		# vfat has some extra options beyond fat
		print "<tr> <td><b>$text{'linux_uni_xlate'}</b></td>\n";
		printf "<td><input type=radio name=fat_uni_xlate value=1 %s> $text{'yes'}\n",
			defined($options{"uni_xlate"}) ? "checked" : "";
		printf "<input type=radio name=fat_uni_xlate value=0 %s> $text{'no'}</td>\n",
			defined($options{"uni_xlate"}) ? "" : "checked";

		print "<td><b>$text{'linux_posix'}</b></td>\n";
		printf "<td nowrap><input type=radio name=fat_posix value=1 %s> $text{'yes'}\n",
			defined($options{"posix"}) ? "checked" : "";
		printf "<input type=radio name=fat_posix value=0 %s> $text{'no'}</td> </tr>\n",
			defined($options{"posix"}) ? "" : "checked";
		}
	}
elsif ($_[0] eq "hpfs") {
	# OS/2 filesystems has some more options..
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=hpfs_uid size=8 value=\"%s\">\n",
		defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
	print &user_chooser_button("hpfs_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=hpfs_gid size=8 value=\"%s\">\n",
		defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
	print &group_chooser_button("hpfs_gid", 0),"</td> </tr>\n";

	print "<tr> <td><b>$text{'linux_umask'}</b></td>\n";
	printf"<td><input type=radio name=hpfs_umask_def value=1 %s> Default\n",
		defined($options{"umask"}) ? "" : "checked";
	printf "<input type=radio name=hpfs_umask_def value=0 %s>\n",
		defined($options{"umask"}) ? "checked" : "";
	print "<input size=5 name=hpfs_umask value=\"$options{umask}\"></td>\n";

	print "<td><b>$text{'linux_conv2'}</b></td>\n";
	print "<td><select name=hpfs_conv>\n";
	printf "<option value=b %s> $text{'linux_none'}\n",
		$options{"conv"} =~ /^b/ || !defined($options{"conv"}) ?
		"selected" : "";
	printf "<option value=t %s> $text{'linux_allfiles'}\n",
		$options{"conv"} =~ /^t/ ? "selected" : "";
	printf "<option value=a %s> $text{'linux_textfiles'}\n",
		$options{"conv"} =~ /^a/ ? "selected" : "";
	print "</select></td> </tr>\n";
	}
elsif ($_[0] eq "iso9660") {
	# CD-ROM filesystems have some more options..
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=iso9660_uid size=8 value=\"%s\">\n",
		defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
	print &user_chooser_button("iso9660_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=iso9660_gid size=8 value=\"%s\">\n",
		defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
	print &group_chooser_button("iso9660_gid", 0),"</td>\n";

	print "<tr> <td><b>$text{'linux_rock'}</b></td>\n";
	printf "<td><input type=radio name=iso9660_norock value=1 %s> $text{'yes'}\n",
		defined($options{"norock"}) ? "checked" : "";
	printf "<input type=radio name=iso9660_norock value=0 %s> $text{'no'}</td>\n",
		defined($options{"norock"}) ? "" : "checked";

	print "<td><b>$text{'linux_mode'}</b></td>\n";
	printf"<td><input size=10 name=iso9660_mode value=\"%s\"></td> </tr>\n",
		defined($options{"mode"}) ? $options{"mode"} : "444";
	}
elsif ($_[0] eq "auto") {
	# Don't know how to set options for auto filesystems yet..
	print "<tr> <td><i>$text{'linux_noopts'}</i></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	print "<tr> <td><b>$text{'linux_timeout'}</b></td> <td>\n";
	printf"<input type=radio name=autofs_timeout_def value=1 %s> $text{'default'}\n",
		defined($options{'timeout'}) ? "" : "checked";
	printf "<input type=radio name=autofs_timeout_def value=0 %s>\n",
		defined($options{'timeout'}) ? "checked" : "";
	printf "<input name=autofs_timeout size=5 value=\"%s\"> $text{'linux_secs'}</td>\n",
		$options{'timeout'};

	print "<td><b>$text{'linux_pid_file'}</b>?</td>\n";
	printf"<td><input type=radio name=autofs_pid-file_def value=1 %s> $text{'no'}\n",
		defined($options{'pid-file'}) ? "" : "checked";
	printf "<input type=radio name=autofs_pid-file_def value=0 %s> $text{'yes'}\n",
		defined($options{'pid-file'}) ? "checked" : "";
	printf "<input name=autofs_pid-file size=20 value=\"%s\">\n",
		$options{'pid-file'};
	print &file_chooser_button("autofs_pid-file", 1);
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swap has no options..
	print "<tr> <td><i>$text{'linux_noopts'}</i></td> </tr>\n";
	}
elsif ($_[0] eq "smbfs") {
	# SMB filesystems have a few options..
	if (keys(%options) == 0 && !$_[1]) {
		print "<tr> <td colspan=4><i>$text{'linux_smbwarn'}</i></td> </tr>\n";
		}

	print "<tr> <td><b>$text{'linux_username'}</b></td>\n";
	printf "<td><input name=smbfs_user size=15 value=\"%s\"></td>\n",
		$smbfs_support == 4 ? $options{'username'} : $options{'user'};

	print "<td><b>$text{'linux_password'}</b></td>\n";
	printf "<td><input type=password name=smbfs_passwd size=15 value=\"%s\"></td> </tr>\n",
		$smbfs_support == 4 ? $options{'password'} : $options{'passwd'};

	if ($smbfs_support != 2) {
		print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
		printf "<td><input name=smbfs_uid size=8 value=\"%s\">\n",
			defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
		print &user_chooser_button("smbfs_uid", 0),"</td>\n";

		print "<td><b>$text{'linux_gid'}</b></td>\n";
		printf "<td><input name=smbfs_gid size=8 value=\"%s\">\n",
			defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
		print &group_chooser_button("smbfs_gid", 0),"</td>\n";
		}

	if ($smbfs_support == 1) {
		print "<tr> <td><b>$text{'linux_sname'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_sname_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"servername"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_sname_def value=0 %s>\n",
			defined($options{"servername"}) ? "checked" : "";
		print "<input size=10 name=smbfs_sname value=\"$options{servername}\"></td>\n";
		}
	elsif ($smbfs_support == 2) {
		print "<tr> <td><b>$text{'linux_wg'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_wg_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"workgroup"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_wg_def value=0 %s>\n",
			defined($options{"workgroup"}) ? "checked" : "";
		print "<input size=10 name=smbfs_wg value=\"$options{'workgroup'}\"></td>\n";
		}

	if ($smbfs_support < 3) {
		print "<td><b>$text{'linux_cname'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_cname_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"clientname"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_cname_def value=0 %s>\n",
			defined($options{"clientname"}) ? "checked" : "";
		print "<input size=10 name=smbfs_cname value=\"$options{clientname}\"></td> </tr>\n";

		print "<tr> <td><b>$text{'linux_mname'}</b></td>\n";
		printf "<td colspan=3><input type=radio name=smbfs_mname_def value=1 %s> %s\n",
			defined($options{"machinename"}) ? "" : "checked", $text{'linux_auto'};
		printf "<input type=radio name=smbfs_mname_def value=0 %s>\n",
			defined($options{"machinename"}) ? "checked" : "";
		print "<input size=30 name=smbfs_mname value=\"$options{machinename}\"></td> </tr>\n";
		}

	if ($smbfs_support == 1) {
		print "<tr> <td><b>$text{'linux_fmode'}</b></td>\n";
		printf
		    "<td><input name=smbfs_fmode size=5 value=\"%s\"></td>\n",
		    defined($options{'fmode'}) ? $options{'fmode'} : "755";

		print "<td><b>$text{'linux_dmode'}</b></td>\n";
		printf
		    "<td><input name=smbfs_dmode size=5 value=\"%s\"></td>\n",
		    defined($options{'dmode'}) ? $options{'dmode'} : "755";
		print "</tr>\n";
		}
	elsif ($smbfs_support >= 3) {
		print "<tr> <td><b>$text{'linux_ro'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_ro value=1 %s> $text{'yes'}\n",
			defined($options{"ro"}) ? "checked" : "";
		printf "<input type=radio name=smbfs_ro value=0 %s> $text{'no'}</td>\n",
			defined($options{"ro"}) ? "" : "checked";

		print "<td><b>$text{'linux_user'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_user2 value=1 %s> $text{'yes'}\n",
			defined($options{"user"}) ? "checked" : "";
		printf "<input type=radio name=smbfs_user2 value=0 %s> $text{'no'}</td> </tr>\n",
			defined($options{"user"}) ? "" : "checked";
		}
	}
elsif ($_[0] eq "reiserfs") {
	# Reiserfs is a new super-efficient filesystem
	print "<tr> <td><b>$text{'linux_notail'}</b></td>\n";
	printf "<td><input type=radio name=lnx_notail value=1 %s> $text{'yes'}\n",
		defined($options{"notail"}) ? "checked" : "";
	printf "<input type=radio name=lnx_notail value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"notail"}) ? "" : "checked";
	}
}


# check_location(type)
# Parse and check inputs from %in, calling &error() if something is wrong.
# Returns the location string for storing in the fstab file
sub check_location
{
if ($_[0] eq "nfs") {
	local($out, $temp, $mout, $dirlist);

	if (&has_command("showmount")) {
		# Use ping and showmount to see if the host exists and is up
		if ($in{nfs_host} !~ /^\S+$/) {
			&error(&text('linux_ehost', $in{'nfs_host'}));
			}
		$out = `ping -c 1 '$in{nfs_host}' 2>&1`;
		if ($out =~ /unknown host/) {
			&error(&text('linux_ehost2', $in{'nfs_host'}));
			}
		elsif ($out =~ /100\% packet loss/) {
			&error(&text('linux_edown', $in{'nfs_host'}));
			}
		$out = `showmount -e '$in{nfs_host}' 2>&1`;
		if ($out =~ /Unable to receive/) {
			&error(&text('linux_enfs', $in{'nfs_host'}));
			}
		elsif ($?) {
			&error(&text('linux_elist', $out));
			}

		# Validate directory name
		foreach (split(/\n/, $out)) {
			if (/^(\/\S+)/) { $dirlist .= "$1\n"; }
			}
		if ($in{nfs_dir} !~ /^\/\S+$/) {
			&error(&text('linux_enfsdir', $in{'nfs_dir'},
				     $in{'nfs_host'}, "<pre>$dirlist</pre>"));
			}
		}

	# Try a test mount to see if filesystem is available
	$temp = &tempname();
	mkdir($temp, 0755);
	$mout = `mount $in{nfs_host}:$in{nfs_dir} $temp 2>&1`;
	if ($mout =~ /No such file or directory/i) {
		rmdir($temp);
		&error(&text('linux_enfsdir', $in{'nfs_dir'},
			     $in{'nfs_host'}, "<pre>$dirlist</pre>"));
		}
	elsif ($mout =~ /Permission denied/i) {
		rmdir($temp);
		&error(&text('linux_enfsperm', $in{'nfs_dir'}, $in{'nfs_host'}));
		}
	elsif ($?) {
		rmdir($temp);
		&error(&text('linux_enfsmount', "<tt>$mout</tt>"));
		}
	# It worked! unmount
	`umount $temp`;
	rmdir($temp);

	return "$in{nfs_host}:$in{nfs_dir}";
	}
elsif ($_[0] eq "auto") {
	# Check if the automounter map exists..
	(-r $in{auto_map}) || &error(&text('linux_eautomap', $in{'auto_map'}));
	return $in{auto_map};
	}
elsif ($_[0] eq "autofs") {
	# Check if the map exists (if it is a file)
	if ($in{'autofs_map'} =~ /^\// && !(-r $in{'autofs_map'})) {
		&error(&text('linux_eautomap', $in{'autofs_map'}));
		}
	return $in{autofs_map};
	}
elsif ($_[0] eq "smbfs") {
	# No checking done
	return "\\\\".lc($in{'smbfs_server'})."\\".lc($in{'smbfs_share'});
	}
else {
	# This is some kind of disk-based linux filesystem.. get the device name
	if ($in{'lnx_dev'} == 0) {
		$dv = $in{'lnx_disk'};
		}
	elsif ($in{'lnx_dev'} == 2) {
		$dv = $in{'lnx_raid'};
		}
	elsif ($in{'lnx_dev'} == 3) {
		$dv = "LABEL=".$in{'lnx_label'};
		}
	else {
		$dv = $in{'lnx_other'};
		$dv || &error($text{'linux_edev'});
		}

	# If the device entered is a symlink, follow it
	#if ($dvlink = readlink($dv)) {
	#	if ($dvlink =~ /^\//) { $dv = $dvlink; }
	#	else {	$dv =~ /^(.*\/)[^\/]+$/;
	#		$dv = $1.$dvlink;
	#		}
	#	}

	# Check if the device actually exists and uses the right filesystem
	if (!-r $dv && $dv !~ /LABEL=/) {
		if ($_[0] eq "swap" && $dv !~ /\/dev/) {
			&swap_form($dv);
			}
		else {
			&error(&text('linux_edevfile', $dv));
			}
		}
	return $dv;
	}
}

# check_options(type, device, directory)
# Read options for some filesystem from %in, and use them to update the
# %options array. Options handled by the user interface will be set or
# removed, while unknown options will be left untouched.
sub check_options
{
local($k, @rv);

# Parse the common options first..
if ($_[0] ne "swap" && $_[0] ne "auto" &&
    $_[0] ne "autofs" && $_[0] ne "smbfs") {
	delete($options{"ro"}); delete($options{"rw"});
	if ($in{lnx_ro}) { $options{"ro"} = ""; }

	delete($options{"sync"}); delete($options{"async"});
	if ($in{lnx_sync}) { $options{"sync"} = ""; }

	delete($options{"dev"}); delete($options{"nodev"});
	if ($in{lnx_nodev}) { $options{"nodev"} = ""; }

	delete($options{"exec"}); delete($options{"noexec"});
	if ($in{lnx_noexec}) { $options{"noexec"} = ""; }

	delete($options{"suid"}); delete($options{"nosuid"});
	if ($in{lnx_nosuid}) { $options{"nosuid"} = ""; }

	delete($options{"user"}); delete($options{"nouser"});
	if ($in{lnx_user}) { $options{"user"} = ""; }
	}

if ($_[0] eq "nfs") {
	# NFS has a few specific options..
	delete($options{"bg"}); delete($options{"fg"});
	if ($in{nfs_bg}) { $options{"bg"} = ""; }

	delete($options{"soft"}); delete($options{"hard"});
	if ($in{nfs_soft}) { $options{"soft"} = ""; }

	delete($options{"timeo"});
	if (!$in{nfs_timeo_def}) { $options{"timeo"} = $in{nfs_timeo}; }

	delete($options{"nfsvers"});
	if (!$in{nfs_vers_def}) { $options{"nfsvers"} = $in{nfs_vers}; }

	delete($options{"port"});
	if (!$in{nfs_port_def}) { $options{"port"} = $in{nfs_port}; }

	delete($options{"intr"}); delete($options{"nointr"});
	if ($in{nfs_intr}) { $options{"intr"} = ""; }

	delete($options{"tcp"}); delete($options{"udp"});
	if ($in{nfs_tcp}) { $options{"tcp"} = ""; }
	}
elsif ($_[0] eq "ext2") {
	# More options for ext2..
	delete($options{"check"}); delete($options{"nocheck"});
	if ($in{ext2_check} ne "normal") {
		$options{"check"} = $in{ext2_check};
		}

	delete($options{"errors"});
	if ($in{ext2_errors} ne "default") {
		$options{"errors"} = $in{ext2_errors};
		}

	delete($options{"grpid"}); delete($options{"bsdgroups"});
	delete($options{"sysvgroups"}); delete($options{"nogrpid"});
	if ($in{ext2_grpid}) {
		$options{"grpid"} = "";
		}

	delete($options{"resuid"}); delete($options{"resgid"});
	if ($in{'ext2_resuid'})
		{ $options{"resuid"} = getpwnam($in{'ext2_resuid'}); }
	if ($in{'ext2_resgid'})
		{ $options{"resgid"} = getgrnam($in{'ext2_resgid'}); }

	delete($options{"quota"}); delete($options{"noquota"});
	delete($options{"usrquota"}); delete($options{"grpquota"});
	if ($in{'ext2_quota'} == 1) { $options{'usrquota'} = ""; }
	elsif ($in{'ext2_quota'} == 2) { $options{'grpquota'} = ""; }
	elsif ($in{'ext2_quota'} == 3)
		{ $options{'usrquota'} = $options{'grpquota'} = ""; }
	}
elsif ($_[0] eq "fat" || $_[0] eq "vfat" ||
       $_[0] eq "msdos" || $_[0] eq "umsdos") {
	# All dos-based filesystems have similar options
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{fat_uid} ne "") { $options{"uid"} = getpwnam($in{'fat_uid'}); }
	if ($in{fat_gid} ne "") { $options{"gid"} = getgrnam($in{'fat_gid'}); }

	delete($options{"check"});
	if ($in{fat_check} ne "") { $options{"check"} = $in{fat_check}; }

	delete($options{"conv"});
	if ($in{fat_conv} ne "") { $options{"conv"} = $in{fat_conv}; }

	delete($options{"umask"});
	if (!$in{fat_umask_def}) {
		$in{fat_umask} =~ /^[0-7]{3}$/ ||
			&error(&text('linux_emask', $in{'fat_umask'}));
		$options{"umask"} = $in{fat_umask};
		}

	delete($options{"quiet"});
	if ($in{fat_quiet}) {
		$options{"quiet"} = "";
		}

	if ($_[0] eq "vfat") {
		# Parse extra vfat options..
		delete($options{"uni_xlate"});
		if ($in{fat_uni_xlate}) { $options{"uni_xlate"} = ""; }

		delete($options{"posix"});
		if ($in{fat_posix}) { $options{"posix"} = ""; }
		}
	}
elsif ($_[0] eq "hpfs") {
	# OS/2 filesystem options..
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{hpfs_uid} ne "") { $options{"uid"} = getpwnam($in{hpfs_uid}); }
	if ($in{hpfs_gid} ne "") { $options{"gid"} = getgrnam($in{hpfs_gid}); }

	delete($options{"umask"});
	if (!$in{hpfs_umask_def}) {
		$in{hpfs_umask} =~ /^[0-7]{3}$/ ||
			&error(&text('linux_emask', $in{'hpfs_umask'}));
		$options{"umask"} = $in{hpfs_umask};
		}

	delete($options{"conv"});
	if ($in{hpfs_conv} ne "") { $options{"conv"} = $in{hpfs_conv}; }
	}
elsif ($_[0] eq "iso9660") {
	# Options for iso9660 cd-roms
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{iso9660_uid} ne "")
		{ $options{"uid"} = getpwnam($in{iso9660_uid}); }
	if ($in{iso9660_gid} ne "")
		{ $options{"gid"} = getgrnam($in{iso9660_gid}); }

	delete($options{"norock"});
	if ($in{iso9660_norock}) { $options{"norock"} = ""; }

	delete($options{"mode"});
	$in{iso9660_mode} =~ /^[0-7]{3}$/ ||
		&error(&text('linux_emask', $in{'iso9660_mode'}));
	$options{"mode"} = $in{iso9660_mode};
	}
elsif ($_[0] eq "autofs") {
	# Options for automounter filesystems
	delete($options{'timeout'});
	if (!$in{'autofs_timeout_def'}) {
		$in{'autofs_timeout'} =~ /^\d+$/ ||
			&error(&text('linux_etimeout', $in{'autofs_timeout'}));
		$options{'timeout'} = $in{'autofs_timeout'};
		}
	delete($options{'pid-file'});
	if (!$in{'autofs_pid-file_def'}) {
		$in{'autofs_pid-file'} =~ /^\/\S+$/ ||
		       &error(&text('linux_epidfile', $in{'autofs_pid-file'}));
		$options{'pid-file'} = $in{'autofs_pid-file'};
		}
	}
elsif ($_[0] eq "smbfs") {
	# Options for smb filesystems..
	delete($options{'user'}); delete($options{'username'});
	if ($in{smbfs_user}) {
		$options{$smbfs_support == 4 ? 'username' : 'user'} = $in{smbfs_user};
		}

	delete($options{'passwd'}); delete($options{'password'});
	if ($in{smbfs_passwd}) {
		$options{$smbfs_support == 4 ? 'password' : 'passwd'} = $in{smbfs_passwd};
		}

	if ($smbfs_support != 2) {
		delete($options{uid});
		if ($in{smbfs_uid} ne "") { $options{uid} = getpwnam($in{smbfs_uid}); }

		delete($options{gid});
		if ($in{smbfs_gid} ne "") { $options{gid} = getgrnam($in{smbfs_gid}); }
		}

	if ($smbfs_support == 1) {
		delete($options{servername});
		if (!$in{smbfs_sname_def})
			{ $options{servername} = $in{smbfs_sname}; }
		}
	elsif ($smbfs_support == 2) {
		delete($options{workgroup});
		if (!$in{smbfs_wg_def})
			{ $options{workgroup} = $in{smbfs_wg}; }
		}

	if ($smbfs_support < 3) {
		delete($options{clientname});
		if (!$in{smbfs_cname_def})
			{ $options{clientname} = $in{smbfs_cname}; }

		delete($options{machinename});
		if (!$in{smbfs_mname_def})
			{ $options{machinename} = $in{smbfs_mname}; }
		elsif (!gethostbyname($in{'smbfs_server'})) {
			# No hostname found for the server.. try to guess
			local($out, $sname);
			$sname = $in{'smbfs_server'};
			$out = `$config{'nmblookup_path'} -d 0 $sname 2>&1`;
			if (!$? && $out =~ /^([0-9\.]+)\s+$sname\n/) {
				$options{machinename} = $1;
				}
			}
		}

	if ($smbfs_support == 1) {
		delete($options{fmode});
		if ($in{smbfs_fmode} !~ /^[0-7]{3}$/) {
			&error(&text('linux_efmode', $in{'smbfs_fmode'}));
			}
		elsif ($in{smbfs_fmode} ne "755")
			{ $options{fmode} = $in{smbfs_fmode}; }

		delete($options{dmode});
		if ($in{smbfs_dmode} !~ /^[0-7]{3}$/) {
			&error(&text('linux_edmode', $in{'smbfs_dmode'}));
			}
		elsif ($in{smbfs_dmode} ne "755")
			{ $options{dmode} = $in{smbfs_dmode}; }
		}
	elsif ($smbfs_support >= 3) {
		delete($options{'ro'}); delete($options{'rw'});
		if ($in{'smbfs_ro'}) { $options{'ro'} = ''; }

		delete($options{'user'});
		if ($in{'smbfs_user2'}) { $options{'user'} = ''; }
		}
	}
elsif ($_[0] eq "reiserfs") {
	# Save reiserfs options
	delete($options{'notail'});
	$options{'notail'} = "" if ($in{'lnx_notail'});
	}

# Add loop option if mounting a normal file
if ($_[0] ne "swap" && $_[0] ne "auto" && $_[0] ne "autofs" &&
    $_[0] ne "smbfs" && $_[0] ne "nfs") {
	local(@st);
	@st = stat($_[1]);
	if (@st && ($st[2] & 0xF000) == 0x8000) {
		# a regular file.. add the loop option
		if (!$options{'loop'}) {
			$options{'loop'} = "";
			}
		}
	}

# Return options string
foreach $k (keys %options) {
	if ($options{$k} eq "") { push(@rv, $k); }
	else { push(@rv, "$k=$options{$k}"); }
	}
return @rv ? join(',' , @rv) : "-";
}


# Get the smbfs options from 'smbfs_opts' file in the current directory. This
# is sadly necessary because there is no way to get the current options for
# an existing smbfs mount... so webmin has to save them in a file when
# mounting. Blech.
sub read_smbopts
{
local($_);
open(SMBOPTS, "$module_config_directory/smbfs");
while(<SMBOPTS>) {
	/^(\S+)\s+(\S+)$/;
	$smbopts{$1} = $2;
	}
close(SMBOPTS);
}

sub write_smbopts
{
local($_);
open(SMBOPTS, "> $module_config_directory/smbfs");
foreach (keys %smbopts) {
	print SMBOPTS "$_\t$smbopts{$_}\n";
	}
close(SMBOPTS);
}


# create_swap(file, size, units)
# Calls dd and mkswap to setup a swap file
sub create_swap
{
local($out, $bl);
$bl = $_[1] * ($_[2] eq "m" ? 1024 : 1);
$out = `dd if=/dev/zero of=$_[0] bs=1024 count=$bl 2>&1`;
if ($?) { return "dd failed : $out"; }
$out = `mkswap $_[0] $bl 2>&1`;
if ($?) { return "mkswap failed : $out"; }
system("sync >/dev/null 2>&1");
return 0;
}

# exports_list(host, dirarray, clientarray)
# Fills the directory and client array references with exports from some
# host. Returns an error string if something went wrong
sub exports_list
{
local($dref, $cref, $out, $_);
$dref = $_[1]; $cref = $_[2];
$out = `showmount -e $_[0] 2>&1`;
if ($?) { return $out; }
foreach (split(/\n/, $out)) {
	if (/^(\/\S*)\s+(.*)$/) {
		push(@$dref, $1); push(@$cref, $2);
		}
	}
return undef;
}

# broadcast_addr()
# Returns a useable broadcast address for finding NFS servers
sub broadcast_addr
{
local($out);
$out = `ifconfig -a 2>&1`;
if ($out =~ /(eth|tr)\d\s+.*\n.*Bcast:(\S+)\s+/) { return $2; }
return "255.255.255.255";
}

# autofs_options(string)
# Converts a string of options line --timeout 60 to something like timeout=60
sub autofs_options
{
local(@options);
if ($_[0] =~ /--timeout\s+(\d+)/ || $_[0] =~ /-t\s+(\d+)/) {
	push(@options, "timeout=$1");
	}
if ($_[0] =~ /--pid-file\s+(\S+)/ || $_[0] =~ /-p\s+(\d+)/) {
	push(@options, "pid-file=$1");
	}
return join(',', @options);
}

# autofs_args(string)
# Convert a comma-separated options string into args for automount
sub autofs_args
{
local(%options, $args);
&parse_options("autofs", $_[0]);
if (defined($options{'timeout'})) {
	$args .= " --timeout $options{'timeout'}";
	}
if (defined($options{'pid-file'})) {
	$args .= " --pid-file $options{'pid-file'}";
	}
return $args;
}

# read_amd_conf()
# Returns the entire amd config file as a string
sub read_amd_conf
{
local $sl = $/;
$/ = undef;
open(AMD, $config{'auto_file'});
local $rv = <AMD>;
close(AMD);
$/ = $sl;
return $rv;
}

# write_amd_conf(text)
sub write_amd_conf
{
open(AMD, ">$config{'auto_file'}");
print AMD $_[0];
close(AMD);
}

# parse_amd_conf()
# Parses a new-style amd.conf file into a hashtable
sub parse_amd_conf
{
local (@rv, $str, $lnum);
open(AMD, $config{'auto_file'});
while(<AMD>) {
	s/\r|\n//g;
	s/#.*$//g;
	if (/\[\s*(\S+)\s*\]/) {
		$str = { 'dir' => $1,
			 'line' => $lnum,
			 'eline' => $lnum };
		push(@rv, $str);
		}
	elsif (/(\S+)\s*=\s*"(.*)"/ || /(\S+)\s*=\s*(\S+)/) {
		$str->{'opts'}->{$1} = $2;
		$str->{'eline'} = $lnum;
		}
	$lnum++;
	}
close(AMD);
return @rv;
}

# device_name(device)
# Converts a device name to a human-readable form
sub device_name
{
if (!$text{'select_part'}) {
	local %flang = &load_language('fdisk');
	$text{'select_part'} = $flang{'select_part'};
	$text{'select_mpart'} = $flang{'select_mpart'};
	$text{'select_device'} = $flang{'select_device'};
	$text{'select_fd'} = $flang{'select_fd'};
	}
return $_[0] =~ /^\/dev\/(s|h)d([a-z])(\d+)$/ ?
	&text('select_part', $1 eq 's' ? 'SCSI' : 'IDE', uc($2), "$3") :
       $_[0] =~ /^\/dev\/(s|h)d([a-z])$/ ?
	&text('select_device', $1 eq 's' ? 'SCSI' : 'IDE', uc($2)) :
       $_[0] =~ /rd\/c(\d+)d(\d+)p(\d+)$/ ?
	&text('select_mpart', "$1", "$2", "$3") :
       $_[0] =~ /fd(\d+)$/ ?
	&text('select_fd', "$1") :
       $_[0] =~ /md(\d+)$/ ?
	&text('linux_rdev', "$1") :
       $_[0] =~ /LABEL=(\S+)/i ?
	&text('linux_label', "$1") :
       $_[0] eq '/dev/cdrom' ?
	$text{'linux_cddev'} :
	$_[0];
}

sub files_to_lock
{
return ( $config{'fstab_file'}, $config{'autofs_file'}, $config{'auto_file'} );
}

1;

07070100007739000081e40000000000000002000000013ac0388c0000dc44000000200000000000000000000000000000001900000003reloc/mount/linux-lib.pl  # linux-lib.pl
# Mount table functions for linux

if (&has_command("amd")) {
	local $amd = &read_amd_conf();
	$amd_support = $amd =~ /\[\s*global\s*\]/i ? 2 : 1;
	}
$autofs_support = &has_command("automount");
if (&has_command("mount.smb")) {
	$smbfs_support = `mount.smb -v` =~ /username=/i ? 4 : 3;
	}
elsif (&has_command("mount.smbfs")) {
	$smbfs_support = `mount.smbfs -v` =~ /username=/i ? 4 : 3;
	}
elsif (&has_command("smbmount")) {
	$smbfs_support = `smbmount -v` =~ /Version\s+2/i ? 2 : 1;
	}
$swaps_support = -r "/proc/swaps";
if (&has_command("e2label") &&
    `mount --version 2>&1` =~ /(\d+)\.(\d+)/ && ($1 > 2 || $1==2 && $2 >= 10)) {
	$has_e2label = 1;
	}

# Return information about a filesystem, in the form:
#  directory, device, type, options, fsck_order, mount_at_boot
# If a field is unused or ignored, a - appears instead of the value.
# Swap-filesystems (devices or files mounted for VM) have a type of 'swap',
# and 'swap' in the directory field
sub list_mounts
{
return @list_mounts_cache if (@list_mounts_cache);
local(@rv, @p, @o, $_, $i, $j); $i = 0;

# Get /etc/fstab mounts
open(FSTAB, $config{fstab_file});
while(<FSTAB>) {
	local(@o, $at_boot);
	chop; s/#.*$//g;
	if (!/\S/ || /\signore\s/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "proc") { $p[0] = "proc"; }
	elsif ($p[2] eq "auto") { $p[2] = "*"; }
	elsif ($p[2] eq "swap") { $p[1] = "swap"; }
	elsif ($p[2] eq "smbfs") { $p[0] =~ s/\//\\/g; }
	$rv[$i] = [ $p[1], $p[0], $p[2] ];
	$rv[$i]->[5] = "yes";
	@o = split(/,/ , $p[3] eq "defaults" ? "" : $p[3]);
	if (($j = &indexof("noauto", @o)) >= 0) {
		# filesytem is not mounted at boot
		splice(@o, $j, 1);
		$rv[$i]->[5] = "no";
		}
	$rv[$i]->[3] = (@o ? join(',' , @o) : "-");
	$rv[$i]->[4] = (@p >= 5 ? $p[5] : 0);
	$i++;
	}
close(FSTAB);

if ($amd_support == 1) {
	# Get old automounter configuration, as used by redhat
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		@p = split(/\s+/, $1);
		for($j=0; $j<@p; $j+=2) {
			$rv[$i++] = [ $p[$j], $p[$j+1], "auto",
				      "-", 0, "yes" ];
			}
		}
	}
elsif ($amd_support == 2) {
	# Guess what? There's now a *new* amd config file format, introduced
	# in redhat 6.1 and caldera 2.3
	local @amd = &parse_amd_conf();
	local @sp = split(/:/, $amd[0]->{'opts'}->{'search_path'});
	local ($am, $sp);
	foreach $am (@amd) {
		local $mn = $am->{'opts'}->{'map_name'};
		if ($mn !~ /^\//) {
			foreach $sp (@sp) {
				if (-r "$sp/$mn") {
					$mn = "$sp/$mn";
					last;
					}
				}
			}
		$rv[$i++] = [ $am->{'dir'}, $mn,
			      "auto", $am->{'opts'}, 0, "yes" ]
			if ($am->{'dir'} ne 'global');
		}
	}

# Get kernel automounter configuration
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	while(<AUTO>) {
		chop;
		s/#.*$//g;
		if (/^\s*(\S+)\s+(\S+)\s*(.*)$/) {
			$rv[$i++] = [ $1, $2, "autofs",
				      ($3 ? &autofs_options($3) : "-"),
				      0, "yes" ];
			}
		}
	close(AUTO);
	}

@list_mounts_cache = @rv;
return @rv;
}


# create_mount(directory, device, type, options, fsck_order, mount_at_boot)
# Add a new entry to the fstab file, old or new automounter file
sub create_mount
{
local(@mlist, @amd, $_); local($opts);

if ($_[2] eq "auto") {
	if ($amd_support == 1) {
		# Adding an old automounter mount
		local $amd = &read_amd_conf();
		local $m = "$_[0] $_[1]";
		if ($amd =~ /MOUNTPTS=''/) {
			$amd =~ s/MOUNTPTS=''/MOUNTPTS='$m'/;
			}
		else {
			$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$1 $m'/;
			}
		&write_amd_conf($amd);
		}
	elsif ($amd_support == 2) {
		# Adding a new automounter mount
		open(AMD, ">>$config{'auto_file'}");
		print AMD "\n";
		print AMD "[ $_[0] ]\n";
		print AMD "map_name = $_[1]\n";
		close(AMD);
		}
	}
elsif ($_[2] eq "autofs") {
	# Adding a new automounter mount
	open(AUTO, ">> $config{'autofs_file'}");
	print AUTO "$_[0]  $_[1]";
	if ($_[3]) { print AUTO "  ",&autofs_args($_[3]); }
	print AUTO "\n";
	close(AUTO);
	}
else {
	# Adding a normal mount to the fstab file
	local $dev = $_[1];
	$dev =~ s/\\/\//g if ($_[2] eq 'smbfs');
	open(FSTAB, ">> $config{fstab_file}");
	print FSTAB "$dev  $_[0]  $_[2]";
	$opts = $_[3] eq "-" ? "" : $_[3];
	if ($_[5] eq "no") {
		$opts = join(',' , (split(/,/ , $opts) , "noauto"));
		}
	if ($opts eq "") { print FSTAB "  defaults"; }
	else { print FSTAB "  $opts"; }
	print FSTAB "  0  ";
	print FSTAB $_[4] eq "-" ? "0\n" : "$_[4]\n";
	close(FSTAB);
	}
undef(@list_mounts_cache);
}


# change_mount(num, directory, device, type, options, fsck_order, mount_at_boot)
# Change an existing permanent mount
sub change_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $line !~ /\signore\s/ && $i++ == $_[0]) {
		# Found the line to replace
		print FSTAB "$_[2]  $_[1]  $_[3]";
		$opts = $_[4] eq "-" ? "" : $_[4];
		if ($_[6] eq "no") {
			$opts = join(',' , (split(/,/ , $opts) , "noauto"));
			}
		if ($opts eq "") { print FSTAB "  defaults"; }
		else { print FSTAB "  $opts"; }
		print FSTAB "  0  ";
		print FSTAB $_[5] eq "-" ? "0\n" : "$_[5]\n";
		}
	else { print FSTAB $_,"\n"; }
	}
close(FSTAB);

if ($amd_support == 1) {
	# Update older amd configuration
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		# found mount points line..
		local @mpts = split(/\s+/, $1);
		for($j=0; $j<@mpts; $j+=2) {
			if ($i++ == $_[0]) {
				$mpts[$j] = $_[1];
				$mpts[$j+1] = $_[2];
				}
			}
		local $mpts = join(" ", @mpts);
		$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$mpts'/;
		}
	&write_amd_conf($amd);
	}
elsif ($amd_support == 2) {
	# Update new amd configuration
	local @amd = &parse_amd_conf();
	local $lref = &read_file_lines($config{'auto_file'});
	foreach $am (@amd) {
		next if ($am->{'dir'} eq 'global');
		if ($i++ == $_[0]) {
			local @nl = ( "[ $_[1] ]" );
			local %opts = %{$am->{'opts'}};
			$opts->{'map_name'} = $_[2];
			foreach $o (keys %opts) {
				push(@nl, "$o = $opts{$o}");
				}
			splice(@$lref, $am->{'line'},
			       $am->{'eline'} - $am->{'line'} + 1, @nl);
			}
		}
	&flush_file_lines();
	}

# Update autofs configuration
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	@auto = <AUTO>;
	close(AUTO);
	open(AUTO, "> $config{'autofs_file'}");
	foreach (@auto) {
		chop; ($line = $_) =~ s/#.*$//g;
		if ($line =~ /\S/ && $i++ == $_[0]) {
			print AUTO "$_[1]  $_[2]";
			if ($_[4]) { print AUTO "  ",&autofs_args($_[4]); }
			print AUTO "\n";
			}
		else { print AUTO $_,"\n"; }
		}
	close(AUTO);
	}
undef(@list_mounts_cache);
}


# delete_mount(index)
# Delete an existing permanent mount
sub delete_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line !~ /\S/ || $line =~ /\signore\s/ || $i++ != $_[0]) {
		# Don't delete this line
		print FSTAB $_,"\n";
		}
	}
close(FSTAB);

if ($amd_support == 1) {
	# Update older amd configuration
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		# found mount points line..
		local @mpts = split(/\s+/, $1);
		for($j=0; $j<@mpts; $j+=2) {
			if ($i++ == $_[0]) {
				splice(@mpts, $j, 2);
				}
			}
		local $mpts = join(" ", @mpts);
		$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$mpts'/;
		}
	&write_amd_conf($amd);
	}
elsif ($amd_support == 2) {
	# Update new amd configuration
	local @amd = &parse_amd_conf();
	local $lref = &read_file_lines($config{'auto_file'});
	foreach $am (@amd) {
		next if ($am->{'dir'} eq 'global');
		if ($i++ == $_[0]) {
			splice(@$lref, $am->{'line'},
			       $am->{'eline'} - $am->{'line'} + 1);
			}
		}
	&flush_file_lines();
	}

# Update AMD file
if ($amd_support) {
	open(AMD, $config{auto_file});
	@amd = <AMD>;
	close(AMD);
	open(AMD, "> $config{auto_file}");
	foreach (@amd) {
		if (/MOUNTPTS='(.*)'/) {
			# found mount points line..
			@mpts = split(/\s+/, $1);
			for($j=0; $j<@mpts; $j+=2) {
				if ($i++ != $_[0]) {
					push(@nmpts, $mpts[$j]);
					push(@nmpts, $mpts[$j+1]);
					}
				}
			print AMD "MOUNTPTS='".join(' ', @nmpts)."'\n";
			}
		else { print AMD $_; }
		}
	close(AMD);
	}

# Update autofs file
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	@auto = <AUTO>;
	close(AUTO);
	open(AUTO, "> $config{'autofs_file'}");
	foreach (@auto) {
		chop; ($line = $_) =~ s/#.*$//g;
		if ($line !~ /\S/ || $i++ != $_[0]) {
			# keep this line
			print AUTO $_,"\n";
			}
		}
	close(AUTO);
	}
undef(@list_mounts_cache);
}


# list_mounted()
# Return a list of all the currently mounted filesystems and swap files.
# The list is in the form:
#  directory device type options
sub list_mounted
{
return @list_mounted_cache if (@list_mounted_cache);
local(@rv, @p, @o, $mo, $_, %smbopts);
local @mounts = &list_mounts();

&read_smbopts();
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	chop;
	s/#.*$//g; if (!/\S/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "auto" || $p[0] =~ /^\S+:\(pid\d+\)$/) {
		# Automounter map.. turn the map= option into the device
		@o = split(/,/ , $p[3]);
		($mo) = grep {/^map=/} (@o);
		$mo =~ /^map=(.*)$/; $p[0] = $1;
		$p[3] = join(',' , grep {!/^map=/} (@o));
		$p[2] = "auto";
		}
	elsif ($p[2] eq "autofs") {
		# Kernel automounter map.. use the pid to find the map
		$p[0] =~ /automount\(pid(\d+)\)/ || next;
		$out = `ps hwwww $1`;
		$out =~ /automount\s+(.*)\s*(\S+)\s+(file|program|yp)(,\S+)?\s+(\S+)/ || next;
		$p[0] = $5;
		$p[3] = $1 ? &autofs_options($1) : "-";
		}
	elsif ($p[2] eq "smbfs") {
		# Change from //FOO/BAR to \\foo\bar
		$p[0] =~ s/\//\\/g;
		$p[0] = lc($p[0]);
		$p[3] = $smbopts{$p[1]};
		}
	elsif ($p[2] eq "proc") {
		# The source for proc mounts is always proc
		$p[0] = "proc";
		}
	if ($p[2] eq 'ext2' && $has_e2label) {
		# Check for a label on this partition, and there is one
		# and this filesystem is in fstab with the label, change
		# the device.
		local $label = `e2label $p[0] 2>^1`;
		if (!$?) {
			chop($label);
			foreach $m (@mounts) {
				if ($m->[0] eq $p[1] &&
				    $m->[1] eq "LABEL=$label") {
					$p[0] = "LABEL=$label";
					last;
					}
				}
			}
		}
	# check fstab for a mount on the same dir which is a symlink
	# to the device
	local @st = stat($p[0]);
	foreach $m (@mounts) {
		if ($m->[0] eq $p[1]) {
			local @fst = stat($m->[1]);
			if ($fst[0] == $st[0] && $fst[1] == $st[1]) {
				# symlink to the same place!
				$p[0] = $m->[1];
				last;
				}
			}
		}
	push(@rv, [ $p[1], $p[0], $p[2], $p[3] ]);
	}
close(MTAB);
open(SWAPS, "/proc/swaps");
while(<SWAPS>) {
	chop;
	if (/^(\/\S+)\s+/) {
		push(@rv, [ "swap", $1, "swap", "-" ]);
		}
	}
close(SWAPS);
@list_mounted_cache = @rv;
return @rv;
}


# mount_dir(directory, device, type, options)
# Mount a new directory from some device, with some options. Returns 0 if ok,
# or an error string if failed
sub mount_dir
{
local($out, $opts, $shar, %options, %smbopts);
if ($_[2] eq "swap") {
	# Use swapon to add the swap space..
	$out = &backquote_logged("swapon $_[1] 2>&1");
	if ($out =~ /Invalid argument/) {
		# looks like this swap partition isn't ready yet.. set it up
		$out = &backquote_logged("mkswap $_[1] 2>&1");
		if ($?) { return "mkswap failed : <pre>$out</pre>"; }
		$out = &backquote_logged("swapon $_[1] 2>&1");
		}
	if ($?) { return "<pre>$out</pre>"; }
	}
elsif ($_[2] eq "auto") {
	# Old automounter filesystem
	$out = &backquote_logged("amd $_[0] $_[1] >/dev/null 2>/dev/null");
	if ($?) { return $text{'linux_eamd'}; }
	}
elsif ($_[2] eq "autofs") {
	# New automounter filesystem
	$opts = &autofs_args($_[3]);
	$type = $_[1] !~ /^\// ? "yp" :
		(-x $_[1]) ? "program" : "file";
	$out = &backquote_logged("automount $opts $_[0] $type $_[1] 2>&1");
	if ($?) { return &text('linux_eauto', "<pre>$out</pre>"); }
	}
elsif ($_[2] eq "smbfs") {
	local $shar = $_[1];
	$shar =~ s/\\/\//g;
	if ($smbfs_support >= 3) {
		# SMB filesystem mounted with mount command
		$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
		$out = &backquote_logged("mount -t $_[2] $opts $shar $_[0] 2>&1");
		if ($? || $out =~ /failed/i) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "mount -t $_[2] $opts $shar $_[0] : <pre>$out</pre>";
			}
		}
	elsif ($smbfs_support == 2) {
		# SMB filesystem mounted with version 2.x smbmount
		&parse_options("smbfs", $_[3]);
		$opts =
		    ($options{'user'} ? "-U $options{'user'} " : "").
		    ($options{'passwd'} ? "" : "-N ").
		    ($options{'workgroup'} ? "-W $options{'workgroup'} " : "").
		    ($options{'clientname'} ? "-n $options{'clientname'} " : "").
		    ($options{'machinename'} ? "-I $options{'machinename'} " : "");
		&foreign_require("proc", "proc-lib.pl");
		local ($fh, $fpid) = &foreign_call(
			"proc", "pty_process_exec_logged", "sh", "-c",
			"smbmount $shar $_[0] -d 0 $opts");
		if ($options{'passwd'}) {
			local $w = &wait_for($fh, "word:");
			if ($w < 0) {
				&system_logged("umount $_[0] >/dev/null 2>&1");
				return $text{'linux_esmbconn'};
				}
			local $p = "$options{'passwd'}\n";
			syswrite($fh, $p, length($p));
			}
		local $got;
		while(<$fh>) {
			$got .= $_;
			}
		if ($got =~ /failed/) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "<pre>$got</pre>\n";
			}
		close($fh);
		}
	elsif ($smbfs_support == 1) {
		# SMB filesystem mounted with older smbmount
		&parse_options("smbfs", $_[3]);
		$shortname = &get_system_hostname();
		if ($shortname =~ /^([^\.]+)\.(.+)$/) { $shortname = $1; }
		$opts =
		   ($options{servername} ? "-s $options{servername} " : "").
		   ($options{clientname} ? "-c $options{clientname} "
					 : "-c $shortname ").
		   ($options{machinename} ? "-I $options{machinename} " : "").
		   ($options{user} ? "-U $options{user} " : "").
		   ($options{passwd} ? "-P $options{passwd} " : "-n ").
		   ($options{uid} ? "-u $options{uid} " : "").
		   ($options{gid} ? "-g $options{gid} " : "").
		   ($options{fmode} ? "-f $options{fmode} " : "").
		   ($options{dmode} ? "-d $options{dmode} " : "");
		$out = &backquote_logged("smbmount $shar $_[0] $opts 2>&1");
		if ($out) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "<pre>$out</pre>";
			}
		}
	&read_smbopts();
	$smbopts{$_[0]} = $_[3] eq "-" ? "dummy=1" : $_[3];
	&write_smbopts();
	}
else {
	# some filesystem supported by mount
	$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
	if ($_[1] =~ /LABEL=(.*)/) {
		$cmd = "mount -t $_[2] -L $1 $opts $_[0]";
		}
	else {
		$cmd = "mount -t $_[2] $opts $_[1] $_[0]";
		}
	$out = &backquote_logged("$cmd 2>&1");
	if ($?) { return "<pre>$cmd : $out</pre>"; }
	}
undef(@list_mounted_cache);
return 0;
}


# unmount_dir(directory, device, type)
# Unmount a directory that is currently mounted. Returns 0 if ok,
# or an error string if failed
sub unmount_dir
{
local($out, %smbopts, $dir);
if ($_[2] eq "swap") {
	# Use swapoff to remove the swap space..
	$out = &backquote_logged("swapoff $_[1]");
	if ($?) { return "<pre>$out</pre>"; }
	}
elsif ($_[2] eq "auto") {
	# Kill the amd process
	$dir = $_[0];
	if (`cat /etc/mtab` =~ /:\(pid([0-9]+)\)\s+$dir\s+(auto|nfs)\s+/) {
		&kill_logged('TERM', $1) || return $text{'linux_ekillamd'};
		}
	sleep(2);
	}
elsif ($_[2] eq "autofs") {
	# Kill the automount process
	$dir = $_[0];
	`cat /etc/mtab` =~ /automount\(pid([0-9]+)\)\s+$dir\s+autofs\s+/;
	&kill_logged('TERM', $1) || return $text{'linux_ekillauto'};
	sleep(2);
	}
else {
	$out = &backquote_logged("umount $_[0] 2>&1");
	if ($?) { return "<pre>$out</pre>"; }
	if ($_[2] eq "smbfs") {
		# remove options from list
		&read_smbopts();
		delete($smbopts{$_[0]});
		&write_smbopts();
		}
	}
undef(@list_mounted_cache);
return 0;
}


# mount_modes(type)
# Given a filesystem type, returns 4 numbers that determine how the file
# system can be mounted, and whether it can be fsck'd
#  0 - cannot be permanently recorded
#	(smbfs under linux before 2.2)
#  1 - can be permanently recorded, and is always mounted at boot
#	(swap under linux)
#  2 - can be permanently recorded, and may or may not be mounted at boot
#	(most normal filesystems)
# The second is:
#  0 - mount is always permanent => mounted when saved
#	(swap under linux before 2.2)
#  1 - doesn't have to be permanent
#	(normal fs types)
# The third is:
#  0 - cannot be fsck'd at boot time
#  1 - can be be fsck'd at boot
# The fourth is:
#  0 - can be unmounted
#  1 - cannot be unmounted
sub mount_modes
{
if ($_[0] eq "swap")
	{ return (1, $swaps_support ? 1 : 0, 0, 0); }
elsif ($_[0] eq "auto" || $_[0] eq "autofs")
	{ return (1, 1, 0, 0); }
elsif ($_[0] eq "smbfs")
	{ return ($smbfs_support >= 3 ? 2 : 0, 1, 0, 0); }
elsif ($_[0] eq "ext2" || $_[0] eq "minix" || $_[0] eq "xiafs")
	{ return (2, 1, 1, 0); }
else
	{ return (2, 1, 0, 0); }
}


# disk_space(type, directory)
# Returns the amount of total and free space for some filesystem, or an
# empty array if not appropriate.
sub disk_space
{
if (&get_mounted($_[1], "*") < 0) { return (); }
if ($_[0] eq "proc" || $_[0] eq "swap" ||
    $_[0] eq "auto" || $_[0] eq "autofs") { return (); }
`df -k $_[1]` =~ /Mounted on\n\S+\s+(\S+)\s+\S+\s+(\S+)/;
return ($1, $2);
}


# list_fstypes()
# Returns an array of all the supported filesystem types. If a filesystem is
# found that is not one of the supported types, generate_location() and
# generate_options() will not be called for it.
sub list_fstypes
{
local @sup = ("ext2", "minix", "msdos", "nfs", "iso9660", "ext", "xiafs",
	      "hpfs", "fat", "vfat", "umsdos", "sysv", "reiserfs");
push(@sup, "smbfs") if ($smbfs_support);
push(@sup, "auto") if ($amd_support);
push(@sup, "autofs") if ($autofs_support);
push(@sup, "swap");
return @sup;
}


# fstype_name(type)
# Given a short filesystem type, return a human-readable name for it
sub fstype_name
{
local(%fsmap);
%fsmap = ("ext2","Linux Native Filesystem",
	  "minix","Minix Filesystem",
	  "msdos","MS-DOS Filesystem",
	  "nfs","Network Filesystem",
	  "smbfs","Windows Networking Filesystem",
	  "iso9660","ISO9660 CD-ROM",
	  "ext","Old EXT Linux Filesystem",
	  "xiafs","Old XIAFS Linux Filesystem",
	  "hpfs","OS/2 Filesystem",
	  "fat","MS-DOS Filesystem",
	  "vfat","Windows 95 Filesystem",
	  "umsdos","Linux on top of MS-DOS Filesystem",
	  "sysv","System V Filesystem",
	  "swap","Virtual Memory",
	  "proc","Kernel Filesystem",
	  "devpts","PTS Filesystem",
	  "auto",($autofs_support ? "Old " : "")."Automounter Filesystem",
	  "reiserfs","Reiser Filesystem",
	  "autofs","New Automounter Filesystem",
	  "usbdevfs","USB Devices",
	  "shm","SysV Shared Memory");
return $config{long_fstypes} && $fsmap{$_[0]} ? $fsmap{$_[0]} : uc($_[0]);
}


# multiple_mount(type)
# Returns 1 if filesystems of this type can be mounted multiple times, 0 if not
sub multiple_mount
{
return ($_[0] eq "nfs" || $_[0] eq "auto" || $_[0] eq "autofs");
}


# generate_location(type, location)
# Output HTML for editing the mount location of some filesystem.
sub generate_location
{
if ($_[0] eq "nfs") {
	# NFS mount from some host and directory
	$_[1] =~ /^([^:]+):(.*)$/;
	print "<tr> <td><b>$text{'linux_nfshost'}</b></td>\n";
	print "<td><input name=nfs_host size=20 value=\"$1\">\n";
	&nfs_server_chooser_button("nfs_host");
	print "&nbsp;<b>$text{'linux_nfsdir'}</b>\n";
	print "<input name=nfs_dir size=20 value=\"$2\">\n";
	&nfs_export_chooser_button("nfs_host", "nfs_dir");
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "auto") {
	# Using some automounter map
	print "<tr> <td><b>$text{'linux_map'}</b></td>\n";
	print "<td><input name=auto_map size=20 value=\"$_[1]\">\n";
	print &file_chooser_button("auto_map", 0);
	print "</td> <td colspan=2></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	# Using some kernel automounter map
	print "<tr> <td><b>$text{'linux_map'}</b></td>\n";
	print "<td><input name=autofs_map size=20 value=\"$_[1]\">\n";
	print &file_chooser_button("autofs_map", 0);
	print "</td> <td colspan=2></td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swap file or device
	&foreign_require("fdisk", "fdisk-lib.pl");
	printf "<tr> <td valign=top><b>$text{'linux_swapfile'}</b></td>\n";
	print "<td colspan=3>\n";
	local $found;
	local $sel = &foreign_call("fdisk", "partition_select", "lnx_disk",
				   $_[1], 3, \$found);
	printf "<input type=radio name=lnx_dev value=0 %s> %s %s<br>\n",
		$found ? "checked" : "", $text{'linux_disk'}, $sel;
	printf "<input type=radio name=lnx_dev value=1 %s> %s\n",
		$found ? "" : "checked", $text{'linux_swapfile'};
	printf "<input name=lnx_other size=35 value='%s'><br>\n",
		$found ? "" : $_[1];
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "smbfs") {
	# Windows filesystem
	$_[1] =~ /^\\\\(.*)\\(.*)$/;
	print "<tr> <td><b>$text{'linux_smbserver'}</b></td>\n";
	print "<td><input name=smbfs_server value=\"$1\" size=20>\n";
	&smb_server_chooser_button("smbfs_server");
	print "</td>\n";
	print "<td><b>$text{'linux_smbshare'}</b></td>\n";
	print "<td><input name=smbfs_share value=\"$2\" size=20>\n";
	&smb_share_chooser_button("smbfs_server", "smbfs_share");
	print "</td> </tr>\n";
	}
else {
	# This is some linux disk-based filesystem
	&foreign_require("fdisk", "fdisk-lib.pl");
	printf "<tr> <td valign=top><b>%s</b></td>\n", &fstype_name($_[0]);
	print "<td colspan=3>\n";
	local ($found, $rfound, $lfound, $rsel, $c);
	local $sel = &foreign_call("fdisk", "partition_select", "lnx_disk",
				   $_[1], 0, \$found);
	printf "<input type=radio name=lnx_dev value=0 %s> %s %s<br>\n",
		$found ? "checked" : "", $text{'linux_disk'}, $sel;

	if (&foreign_check("raid")) {
		&foreign_require("raid", "raid-lib.pl");
		local $conf = &foreign_call("raid", "get_raidtab");
		foreach $c (@$conf) {
			if ($c->{'active'}) {
				$rsel .= sprintf "<option value=%s %s>%s\n",
					$c->{'value'},
					$_[1] eq $c->{'value'} ? 'selected' : '',
					&text('linux_rdev', substr($c->{'value'}, -1));
				$rfound++ if ($_[1] eq $c->{'value'});
				}
			}
		if ($rsel) {
			printf "<input type=radio name=lnx_dev value=2 %s> %s\n",
				$rfound ? "checked" : " ", $text{'linux_raid'};
			print "<select name=lnx_raid>\n",$rsel,"</select><br>\n";
			}
		}

	if ($has_e2label) {
		local $l = $_[1] =~ /LABEL=(.*)/ ? $1 : undef;
		local $esel = &foreign_call("fdisk", "label_select",
					    "lnx_label", $l, \$lfound);
		if ($esel) {
			printf "<input type=radio name=lnx_dev value=3 %s> %s %s<br>\n", $lfound ? "checked" : "", $text{'linux_lsel'}, $esel;
			}
		}

	printf "<input type=radio name=lnx_dev value=1 %s> %s\n",
		$found || $rfound || $lfound ? "" : "checked", $text{'linux_other'};
	printf "<input name=lnx_other size=35 value='%s'><br>\n",
		$found || $rfound || $lfound ? "" : $_[1];
	print "</td> </tr>\n";
	}
}


# generate_options(type, newmount)
# Output HTML for editing mount options for a particular filesystem 
# under this OS
sub generate_options
{
if ($_[0] ne "swap" && $_[0] ne "auto" &&
    $_[0] ne "autofs" && $_[0] ne "smbfs") {
	# Lots of options are common to all linux filesystems
	print "<tr> <td><b>$text{'linux_ro'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_ro value=1 %s> $text{'yes'}\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=lnx_ro value=0 %s> $text{'no'}</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>$text{'linux_sync'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_sync value=0 %s> $text{'yes'}\n",
		defined($options{"sync"}) ? "" : "checked";
	printf "<input type=radio name=lnx_sync value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"sync"}) ? "checked" : "";

	print "<tr> <td><b>$text{'linux_nodev'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_nodev value=0 %s> $text{'yes'}\n",
		defined($options{"nodev"}) ? "" : "checked";
	printf "<input type=radio name=lnx_nodev value=1 %s> $text{'no'}</td>\n",
		defined($options{"nodev"}) ? "checked" : "";

	print "<td><b>$text{'linux_noexec'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_noexec value=0 %s> $text{'yes'}\n",
		defined($options{"noexec"}) ? "" : "checked";
	printf "<input type=radio name=lnx_noexec value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"noexec"}) ? "checked" : "";

	print "<tr> <td><b>$text{'linux_nosuid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_nosuid value=1 %s> $text{'yes'}\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=lnx_nosuid value=0 %s> $text{'no'}</td>\n",
		defined($options{"nosuid"}) ? "" : "checked";

	print "<td><b>$text{'linux_user'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_user value=1 %s> $text{'yes'}\n",
		defined($options{"user"}) ? "checked" : "";
	printf "<input type=radio name=lnx_user value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"user"}) ? "" : "checked";
	}
	
if ($_[0] eq "ext2") {
	# Ext2 has lots more options..
	print "<tr> <td><b>$text{'linux_check'}</b></td>\n";
	print "<td><select name=ext2_check>\n";
	printf "<option value=normal %s> $text{'linux_normal'}\n",
		$options{"check"} eq "" || $options{"check"} eq "normal" ?
			"selected" : "";
	printf "<option value=strict %s> $text{'linux_strict'}\n",
		$options{"check"} eq "strict" ? "selected" : "";
	printf "<option value=none %s> $text{'linux_none'}\n",
		$options{"check"} eq "none" || defined($options{"nocheck"}) ?
			"selected" : "";
	print "</select></td>\n";

	print "<td><b>$text{'linux_errors'}</b></td>\n";
	print "<td><select name=ext2_errors>\n";
	printf "<option value=default %s> $text{'default'}\n",
		!defined($options{"errors"}) ? "selected" : "";
	printf "<option value=continue %s> $text{'linux_continue'}\n",
		$options{"error"} eq "continue" ? "selected" : "";
	printf "<option value=remount-ro %s> $text{'linux_remount_ro'}\n",
		$options{"error"} eq "remount-ro" ? "selected" : "";
	printf "<option value=panic %s> $text{'linux_panic'}\n",
		$options{"error"} eq "panic" ? "selected" : "";
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_grpid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=ext2_grpid value=0 %s> $text{'yes'}\n",
		defined($options{"grpid"}) || defined($options{"bsdgroups"}) ?
			"" : "checked";
	printf "<input type=radio name=ext2_grpid value=1 %s> $text{'no'}</td>\n",
		defined($options{"grpid"}) || defined($options{"bsdgroups"}) ?
			"checked" : "";

	print "<td><b>$text{'linux_quotas'}</b></td>\n";
	local $usrquota = defined($options{"usrquota"});
	local $grpquota = defined($options{"grpquota"});
	print "<td nowrap><select name=ext2_quota>\n";
	printf "<option value=0 %s> $text{'no'}\n",
		$usrquota || $grpquota ? "" : "selected";
	printf "<option value=1 %s> $text{'linux_usrquota'}\n",
		$usrquota && !$grpquota ? "selected" : "";
	printf "<option value=2 %s> $text{'linux_grpquota'}\n",
		$grpquota && !$usrquota ? "selected" : "";
	if (`uname -r` =~ /^2\.0\.(\d+)/ && $1 < 31) {
		printf "<option value=3 %s> $text{'linux_usrgrpquota2'}\n",
			$usrquota && $grpquota ? "selected" : "";
		}
	else {
		printf "<option value=3 %s> $text{'linux_usrgrpquota'}\n",
			$usrquota && $grpquota ? "selected" : "";
		}
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_resuid'}</b></td>\n";
	printf "<td><input name=ext2_resuid size=8 value=\"%s\">\n",
		defined($options{"resuid"}) ? getpwuid($options{"resuid"}) : "";
	print &user_chooser_button("ext2_resuid", 0),"</td>\n";

	print "<td><b>$text{'linux_resgid'}</b></td>\n";
	printf "<td><input name=ext2_resgid size=8 value=\"%s\">\n",
		defined($options{"resgid"}) ? getgrgid($options{"resgid"}) : "";
	print &group_chooser_button("ext2_resgid", 0),"</td> </tr>\n";
	}
elsif ($_[0] eq "nfs") {
	# Linux nfs has some more options...
	print "<tr> <td><b>$text{'linux_bg'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_bg value=1 %s> $text{'yes'}\n",
		defined($options{"bg"}) ? "checked" : "";
	printf "<input type=radio name=nfs_bg value=0 %s> $text{'no'}</td>\n",
		defined($options{"bg"}) ? "" : "checked";

	print "<td><b>$text{'linux_soft'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_soft value=1 %s> $text{'yes'}\n",
		defined($options{"soft"}) ? "checked" : "";
	printf "<input type=radio name=nfs_soft value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"soft"}) ? "" : "checked";

	print "<tr> <td><b>$text{'linux_timeo'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_timeo_def value=1 %s> $text{'default'}\n",
		defined($options{"timeo"}) ? "" : "checked";
	printf "<input type=radio name=nfs_timeo_def value=0 %s>\n",
		defined($options{"timeo"}) ? "checked" : "";
	printf "<input size=5 name=nfs_timeo value=$options{timeo}></td>\n";

	print "<td><b>$text{'linux_retrans'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_retrans_def value=1 %s> $text{'default'}\n",
		defined($options{"retrans"}) ? "" : "checked";
	printf "<input type=radio name=nfs_retrans_def value=0 %s>\n",
		defined($options{"retrans"}) ? "checked" : "";
	print "<input size=5 name=nfs_retrans value=$options{retrans}></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_vers'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_vers_def value=1 %s> $text{'linux_high'}\n",
		defined($options{"nfsvers"}) ? "" : "checked";
	printf "<input type=radio name=nfs_vers_def value=0 %s>\n",
		defined($options{"nfsvers"}) ? "checked" : "";
	print "<input size=1 name=nfsvers value=$options{nfsvers}></td>\n";

	print "<td><b>$text{'linux_port'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_port_def value=1 %s> $text{'default'}\n",
		defined($options{"port"}) ? "" : "checked";
	printf "<input type=radio name=nfs_port_def value=0 %s>\n",
		defined($options{"port"}) ? "checked" : "";
	print "<input size=5 name=nfs_port value=$options{port}></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_intr'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_intr value=1 %s> $text{'yes'}\n",
		defined($options{"intr"}) ? "checked" : "";
	printf "<input type=radio name=nfs_intr value=0 %s> $text{'no'}</td>\n",
		defined($options{"intr"}) ? "" : "checked";

	print "<td><b>$text{'linux_tcp'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_tcp value=1 %s> TCP\n",
		defined($options{"tcp"}) ? "checked" : "";
	printf "<input type=radio name=nfs_tcp value=0 %s> UDP</td> </tr>\n",
		defined($options{"tcp"}) ? "" : "checked";
	}
elsif ($_[0] eq "fat" || $_[0] eq "vfat" || $_[0] eq "msdos" || $_[0] eq "umsdos"){
	# All dos-based filesystems share some options
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=fat_uid size=8 value=\"%s\">\n",
		defined($options{'uid'}) ? getpwuid($options{'uid'}) : "";
	print &user_chooser_button("fat_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=fat_gid size=8 value=\"%s\">\n",
		defined($options{'gid'}) ? getgrgid($options{'gid'}) : "";
	print &group_chooser_button("fat_gid", 0),"</td> </tr>\n";

	print "<tr> <td><b>$text{'linux_rules'}</b></td>\n";
	print "<td><select name=fat_check>\n";
	printf "<option value=\"\" %s> $text{'default'}\n",
		defined($options{"check"}) ? "" : "selected";
	printf "<option value=r %s> $text{'linux_relaxed'}\n",
		$options{"check"} =~ /^r/ ? "selected" : "";
	printf "<option value=n %s> $text{'linux_normal'}\n",
		$options{"check"} =~ /^n/ ? "selected" : "";
	printf "<option value=s %s> $text{'linux_strict'}\n",
		$options{"check"} =~ /^s/ ? "selected" : "";
	print "</select></td>\n";

	print "<td><b>$text{'linux_conv'}</b></td>\n";
	print "<td><select name=fat_conv>\n";
	printf "<option value=\"\" %s> $text{'linux_none'}\n",
		$options{"conv"} =~ /^b/ || !defined($options{"conv"}) ?
		"selected" : "";
	printf "<option value=t %s> $text{'linux_allfiles'}\n",
		$options{"conv"} =~ /^t/ ? "selected" : "";
	printf "<option value=a %s> $text{'linux_textfiles'}\n",
		$options{"conv"} =~ /^a/ ? "selected" : "";
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_umask'}</b></td>\n";
	printf "<td><input type=radio name=fat_umask_def value=1 %s> $text{'default'}\n",
		defined($options{"umask"}) ? "" : "checked";
	printf "<input type=radio name=fat_umask_def value=0 %s>\n",
		defined($options{"umask"}) ? "checked" : "";
	print "<input size=5 name=fat_umask value=\"$options{umask}\"></td>\n";

	print "<td><b>$text{'linux_quiet'}</b></td>\n";
	printf "<td nowrap><input type=radio name=fat_quiet value=0 %s> $text{'yes'}\n",
		defined($options{"quiet"}) ? "" : "checked";
	printf "<input type=radio name=fat_quiet value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"quiet"}) ? "checked" : "";

	if ($_[0] eq "vfat") {
		# vfat has some extra options beyond fat
		print "<tr> <td><b>$text{'linux_uni_xlate'}</b></td>\n";
		printf "<td><input type=radio name=fat_uni_xlate value=1 %s> $text{'yes'}\n",
			defined($options{"uni_xlate"}) ? "checked" : "";
		printf "<input type=radio name=fat_uni_xlate value=0 %s> $text{'no'}</td>\n",
			defined($options{"uni_xlate"}) ? "" : "checked";

		print "<td><b>$text{'linux_posix'}</b></td>\n";
		printf "<td nowrap><input type=radio name=fat_posix value=1 %s> $text{'yes'}\n",
			defined($options{"posix"}) ? "checked" : "";
		printf "<input type=radio name=fat_posix value=0 %s> $text{'no'}</td> </tr>\n",
			defined($options{"posix"}) ? "" : "checked";
		}
	}
elsif ($_[0] eq "hpfs") {
	# OS/2 filesystems has some more options..
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=hpfs_uid size=8 value=\"%s\">\n",
		defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
	print &user_chooser_button("hpfs_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=hpfs_gid size=8 value=\"%s\">\n",
		defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
	print &group_chooser_button("hpfs_gid", 0),"</td> </tr>\n";

	print "<tr> <td><b>$text{'linux_umask'}</b></td>\n";
	printf"<td><input type=radio name=hpfs_umask_def value=1 %s> Default\n",
		defined($options{"umask"}) ? "" : "checked";
	printf "<input type=radio name=hpfs_umask_def value=0 %s>\n",
		defined($options{"umask"}) ? "checked" : "";
	print "<input size=5 name=hpfs_umask value=\"$options{umask}\"></td>\n";

	print "<td><b>$text{'linux_conv2'}</b></td>\n";
	print "<td><select name=hpfs_conv>\n";
	printf "<option value=b %s> $text{'linux_none'}\n",
		$options{"conv"} =~ /^b/ || !defined($options{"conv"}) ?
		"selected" : "";
	printf "<option value=t %s> $text{'linux_allfiles'}\n",
		$options{"conv"} =~ /^t/ ? "selected" : "";
	printf "<option value=a %s> $text{'linux_textfiles'}\n",
		$options{"conv"} =~ /^a/ ? "selected" : "";
	print "</select></td> </tr>\n";
	}
elsif ($_[0] eq "iso9660") {
	# CD-ROM filesystems have some more options..
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=iso9660_uid size=8 value=\"%s\">\n",
		defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
	print &user_chooser_button("iso9660_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=iso9660_gid size=8 value=\"%s\">\n",
		defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
	print &group_chooser_button("iso9660_gid", 0),"</td>\n";

	print "<tr> <td><b>$text{'linux_rock'}</b></td>\n";
	printf "<td><input type=radio name=iso9660_norock value=1 %s> $text{'yes'}\n",
		defined($options{"norock"}) ? "checked" : "";
	printf "<input type=radio name=iso9660_norock value=0 %s> $text{'no'}</td>\n",
		defined($options{"norock"}) ? "" : "checked";

	print "<td><b>$text{'linux_mode'}</b></td>\n";
	printf"<td><input size=10 name=iso9660_mode value=\"%s\"></td> </tr>\n",
		defined($options{"mode"}) ? $options{"mode"} : "444";
	}
elsif ($_[0] eq "auto") {
	# Don't know how to set options for auto filesystems yet..
	print "<tr> <td><i>$text{'linux_noopts'}</i></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	print "<tr> <td><b>$text{'linux_timeout'}</b></td> <td>\n";
	printf"<input type=radio name=autofs_timeout_def value=1 %s> $text{'default'}\n",
		defined($options{'timeout'}) ? "" : "checked";
	printf "<input type=radio name=autofs_timeout_def value=0 %s>\n",
		defined($options{'timeout'}) ? "checked" : "";
	printf "<input name=autofs_timeout size=5 value=\"%s\"> $text{'linux_secs'}</td>\n",
		$options{'timeout'};

	print "<td><b>$text{'linux_pid_file'}</b>?</td>\n";
	printf"<td><input type=radio name=autofs_pid-file_def value=1 %s> $text{'no'}\n",
		defined($options{'pid-file'}) ? "" : "checked";
	printf "<input type=radio name=autofs_pid-file_def value=0 %s> $text{'yes'}\n",
		defined($options{'pid-file'}) ? "checked" : "";
	printf "<input name=autofs_pid-file size=20 value=\"%s\">\n",
		$options{'pid-file'};
	print &file_chooser_button("autofs_pid-file", 1);
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swap has no options..
	print "<tr> <td><i>$text{'linux_noopts'}</i></td> </tr>\n";
	}
elsif ($_[0] eq "smbfs") {
	# SMB filesystems have a few options..
	if (keys(%options) == 0 && !$_[1]) {
		print "<tr> <td colspan=4><i>$text{'linux_smbwarn'}</i></td> </tr>\n";
		}

	print "<tr> <td><b>$text{'linux_username'}</b></td>\n";
	printf "<td><input name=smbfs_user size=15 value=\"%s\"></td>\n",
		$smbfs_support == 4 ? $options{'username'} : $options{'user'};

	print "<td><b>$text{'linux_password'}</b></td>\n";
	printf "<td><input type=password name=smbfs_passwd size=15 value=\"%s\"></td> </tr>\n",
		$smbfs_support == 4 ? $options{'password'} : $options{'passwd'};

	if ($smbfs_support != 2) {
		print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
		printf "<td><input name=smbfs_uid size=8 value=\"%s\">\n",
			defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
		print &user_chooser_button("smbfs_uid", 0),"</td>\n";

		print "<td><b>$text{'linux_gid'}</b></td>\n";
		printf "<td><input name=smbfs_gid size=8 value=\"%s\">\n",
			defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
		print &group_chooser_button("smbfs_gid", 0),"</td>\n";
		}

	if ($smbfs_support == 1) {
		print "<tr> <td><b>$text{'linux_sname'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_sname_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"servername"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_sname_def value=0 %s>\n",
			defined($options{"servername"}) ? "checked" : "";
		print "<input size=10 name=smbfs_sname value=\"$options{servername}\"></td>\n";
		}
	elsif ($smbfs_support == 2) {
		print "<tr> <td><b>$text{'linux_wg'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_wg_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"workgroup"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_wg_def value=0 %s>\n",
			defined($options{"workgroup"}) ? "checked" : "";
		print "<input size=10 name=smbfs_wg value=\"$options{'workgroup'}\"></td>\n";
		}

	if ($smbfs_support < 3) {
		print "<td><b>$text{'linux_cname'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_cname_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"clientname"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_cname_def value=0 %s>\n",
			defined($options{"clientname"}) ? "checked" : "";
		print "<input size=10 name=smbfs_cname value=\"$options{clientname}\"></td> </tr>\n";

		print "<tr> <td><b>$text{'linux_mname'}</b></td>\n";
		printf "<td colspan=3><input type=radio name=smbfs_mname_def value=1 %s> %s\n",
			defined($options{"machinename"}) ? "" : "checked", $text{'linux_auto'};
		printf "<input type=radio name=smbfs_mname_def value=0 %s>\n",
			defined($options{"machinename"}) ? "checked" : "";
		print "<input size=30 name=smbfs_mname value=\"$options{machinename}\"></td> </tr>\n";
		}

	if ($smbfs_support == 1) {
		print "<tr> <td><b>$text{'linux_fmode'}</b></td>\n";
		printf
		    "<td><input name=smbfs_fmode size=5 value=\"%s\"></td>\n",
		    defined($options{'fmode'}) ? $options{'fmode'} : "755";

		print "<td><b>$text{'linux_dmode'}</b></td>\n";
		printf
		    "<td><input name=smbfs_dmode size=5 value=\"%s\"></td>\n",
		    defined($options{'dmode'}) ? $options{'dmode'} : "755";
		print "</tr>\n";
		}
	elsif ($smbfs_support >= 3) {
		print "<tr> <td><b>$text{'linux_ro'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_ro value=1 %s> $text{'yes'}\n",
			defined($options{"ro"}) ? "checked" : "";
		printf "<input type=radio name=smbfs_ro value=0 %s> $text{'no'}</td>\n",
			defined($options{"ro"}) ? "" : "checked";

		print "<td><b>$text{'linux_user'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_user2 value=1 %s> $text{'yes'}\n",
			defined($options{"user"}) ? "checked" : "";
		printf "<input type=radio name=smbfs_user2 value=0 %s> $text{'no'}</td> </tr>\n",
			defined($options{"user"}) ? "" : "checked";
		}
	}
elsif ($_[0] eq "reiserfs") {
	# Reiserfs is a new super-efficient filesystem
	print "<tr> <td><b>$text{'linux_notail'}</b></td>\n";
	printf "<td><input type=radio name=lnx_notail value=1 %s> $text{'yes'}\n",
		defined($options{"notail"}) ? "checked" : "";
	printf "<input type=radio name=lnx_notail value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"notail"}) ? "" : "checked";
	}
}


# check_location(type)
# Parse and check inputs from %in, calling &error() if something is wrong.
# Returns the location string for storing in the fstab file
sub check_location
{
if ($_[0] eq "nfs") {
	local($out, $temp, $mout, $dirlist);

	if (&has_command("showmount")) {
		# Use ping and showmount to see if the host exists and is up
		if ($in{nfs_host} !~ /^\S+$/) {
			&error(&text('linux_ehost', $in{'nfs_host'}));
			}
		$out = `ping -c 1 '$in{nfs_host}' 2>&1`;
		if ($out =~ /unknown host/) {
			&error(&text('linux_ehost2', $in{'nfs_host'}));
			}
		elsif ($out =~ /100\% packet loss/) {
			&error(&text('linux_edown', $in{'nfs_host'}));
			}
		$out = `showmount -e '$in{nfs_host}' 2>&1`;
		if ($out =~ /Unable to receive/) {
			&error(&text('linux_enfs', $in{'nfs_host'}));
			}
		elsif ($?) {
			&error(&text('linux_elist', $out));
			}

		# Validate directory name
		foreach (split(/\n/, $out)) {
			if (/^(\/\S+)/) { $dirlist .= "$1\n"; }
			}
		if ($in{nfs_dir} !~ /^\/\S+$/) {
			&error(&text('linux_enfsdir', $in{'nfs_dir'},
				     $in{'nfs_host'}, "<pre>$dirlist</pre>"));
			}
		}

	# Try a test mount to see if filesystem is available
	$temp = &tempname();
	mkdir($temp, 0755);
	$mout = `mount $in{nfs_host}:$in{nfs_dir} $temp 2>&1`;
	if ($mout =~ /No such file or directory/i) {
		rmdir($temp);
		&error(&text('linux_enfsdir', $in{'nfs_dir'},
			     $in{'nfs_host'}, "<pre>$dirlist</pre>"));
		}
	elsif ($mout =~ /Permission denied/i) {
		rmdir($temp);
		&error(&text('linux_enfsperm', $in{'nfs_dir'}, $in{'nfs_host'}));
		}
	elsif ($?) {
		rmdir($temp);
		&error(&text('linux_enfsmount', "<tt>$mout</tt>"));
		}
	# It worked! unmount
	`umount $temp`;
	rmdir($temp);

	return "$in{nfs_host}:$in{nfs_dir}";
	}
elsif ($_[0] eq "auto") {
	# Check if the automounter map exists..
	(-r $in{auto_map}) || &error(&text('linux_eautomap', $in{'auto_map'}));
	return $in{auto_map};
	}
elsif ($_[0] eq "autofs") {
	# Check if the map exists (if it is a file)
	if ($in{'autofs_map'} =~ /^\// && !(-r $in{'autofs_map'})) {
		&error(&text('linux_eautomap', $in{'autofs_map'}));
		}
	return $in{autofs_map};
	}
elsif ($_[0] eq "smbfs") {
	# No checking done
	return "\\\\".lc($in{'smbfs_server'})."\\".lc($in{'smbfs_share'});
	}
else {
	# This is some kind of disk-based linux filesystem.. get the device name
	if ($in{'lnx_dev'} == 0) {
		$dv = $in{'lnx_disk'};
		}
	elsif ($in{'lnx_dev'} == 2) {
		$dv = $in{'lnx_raid'};
		}
	elsif ($in{'lnx_dev'} == 3) {
		$dv = "LABEL=".$in{'lnx_label'};
		}
	else {
		$dv = $in{'lnx_other'};
		$dv || &error($text{'linux_edev'});
		}

	# If the device entered is a symlink, follow it
	#if ($dvlink = readlink($dv)) {
	#	if ($dvlink =~ /^\//) { $dv = $dvlink; }
	#	else {	$dv =~ /^(.*\/)[^\/]+$/;
	#		$dv = $1.$dvlink;
	#		}
	#	}

	# Check if the device actually exists and uses the right filesystem
	if (!-r $dv && $dv !~ /LABEL=/) {
		if ($_[0] eq "swap" && $dv !~ /\/dev/) {
			&swap_form($dv);
			}
		else {
			&error(&text('linux_edevfile', $dv));
			}
		}
	return $dv;
	}
}

# check_options(type, device, directory)
# Read options for some filesystem from %in, and use them to update the
# %options array. Options handled by the user interface will be set or
# removed, while unknown options will be left untouched.
sub check_options
{
local($k, @rv);

# Parse the common options first..
if ($_[0] ne "swap" && $_[0] ne "auto" &&
    $_[0] ne "autofs" && $_[0] ne "smbfs") {
	delete($options{"ro"}); delete($options{"rw"});
	if ($in{lnx_ro}) { $options{"ro"} = ""; }

	delete($options{"sync"}); delete($options{"async"});
	if ($in{lnx_sync}) { $options{"sync"} = ""; }

	delete($options{"dev"}); delete($options{"nodev"});
	if ($in{lnx_nodev}) { $options{"nodev"} = ""; }

	delete($options{"exec"}); delete($options{"noexec"});
	if ($in{lnx_noexec}) { $options{"noexec"} = ""; }

	delete($options{"suid"}); delete($options{"nosuid"});
	if ($in{lnx_nosuid}) { $options{"nosuid"} = ""; }

	delete($options{"user"}); delete($options{"nouser"});
	if ($in{lnx_user}) { $options{"user"} = ""; }
	}

if ($_[0] eq "nfs") {
	# NFS has a few specific options..
	delete($options{"bg"}); delete($options{"fg"});
	if ($in{nfs_bg}) { $options{"bg"} = ""; }

	delete($options{"soft"}); delete($options{"hard"});
	if ($in{nfs_soft}) { $options{"soft"} = ""; }

	delete($options{"timeo"});
	if (!$in{nfs_timeo_def}) { $options{"timeo"} = $in{nfs_timeo}; }

	delete($options{"nfsvers"});
	if (!$in{nfs_vers_def}) { $options{"nfsvers"} = $in{nfs_vers}; }

	delete($options{"port"});
	if (!$in{nfs_port_def}) { $options{"port"} = $in{nfs_port}; }

	delete($options{"intr"}); delete($options{"nointr"});
	if ($in{nfs_intr}) { $options{"intr"} = ""; }

	delete($options{"tcp"}); delete($options{"udp"});
	if ($in{nfs_tcp}) { $options{"tcp"} = ""; }
	}
elsif ($_[0] eq "ext2") {
	# More options for ext2..
	delete($options{"check"}); delete($options{"nocheck"});
	if ($in{ext2_check} ne "normal") {
		$options{"check"} = $in{ext2_check};
		}

	delete($options{"errors"});
	if ($in{ext2_errors} ne "default") {
		$options{"errors"} = $in{ext2_errors};
		}

	delete($options{"grpid"}); delete($options{"bsdgroups"});
	delete($options{"sysvgroups"}); delete($options{"nogrpid"});
	if ($in{ext2_grpid}) {
		$options{"grpid"} = "";
		}

	delete($options{"resuid"}); delete($options{"resgid"});
	if ($in{'ext2_resuid'})
		{ $options{"resuid"} = getpwnam($in{'ext2_resuid'}); }
	if ($in{'ext2_resgid'})
		{ $options{"resgid"} = getgrnam($in{'ext2_resgid'}); }

	delete($options{"quota"}); delete($options{"noquota"});
	delete($options{"usrquota"}); delete($options{"grpquota"});
	if ($in{'ext2_quota'} == 1) { $options{'usrquota'} = ""; }
	elsif ($in{'ext2_quota'} == 2) { $options{'grpquota'} = ""; }
	elsif ($in{'ext2_quota'} == 3)
		{ $options{'usrquota'} = $options{'grpquota'} = ""; }
	}
elsif ($_[0] eq "fat" || $_[0] eq "vfat" ||
       $_[0] eq "msdos" || $_[0] eq "umsdos") {
	# All dos-based filesystems have similar options
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{fat_uid} ne "") { $options{"uid"} = getpwnam($in{'fat_uid'}); }
	if ($in{fat_gid} ne "") { $options{"gid"} = getgrnam($in{'fat_gid'}); }

	delete($options{"check"});
	if ($in{fat_check} ne "") { $options{"check"} = $in{fat_check}; }

	delete($options{"conv"});
	if ($in{fat_conv} ne "") { $options{"conv"} = $in{fat_conv}; }

	delete($options{"umask"});
	if (!$in{fat_umask_def}) {
		$in{fat_umask} =~ /^[0-7]{3}$/ ||
			&error(&text('linux_emask', $in{'fat_umask'}));
		$options{"umask"} = $in{fat_umask};
		}

	delete($options{"quiet"});
	if ($in{fat_quiet}) {
		$options{"quiet"} = "";
		}

	if ($_[0] eq "vfat") {
		# Parse extra vfat options..
		delete($options{"uni_xlate"});
		if ($in{fat_uni_xlate}) { $options{"uni_xlate"} = ""; }

		delete($options{"posix"});
		if ($in{fat_posix}) { $options{"posix"} = ""; }
		}
	}
elsif ($_[0] eq "hpfs") {
	# OS/2 filesystem options..
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{hpfs_uid} ne "") { $options{"uid"} = getpwnam($in{hpfs_uid}); }
	if ($in{hpfs_gid} ne "") { $options{"gid"} = getgrnam($in{hpfs_gid}); }

	delete($options{"umask"});
	if (!$in{hpfs_umask_def}) {
		$in{hpfs_umask} =~ /^[0-7]{3}$/ ||
			&error(&text('linux_emask', $in{'hpfs_umask'}));
		$options{"umask"} = $in{hpfs_umask};
		}

	delete($options{"conv"});
	if ($in{hpfs_conv} ne "") { $options{"conv"} = $in{hpfs_conv}; }
	}
elsif ($_[0] eq "iso9660") {
	# Options for iso9660 cd-roms
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{iso9660_uid} ne "")
		{ $options{"uid"} = getpwnam($in{iso9660_uid}); }
	if ($in{iso9660_gid} ne "")
		{ $options{"gid"} = getgrnam($in{iso9660_gid}); }

	delete($options{"norock"});
	if ($in{iso9660_norock}) { $options{"norock"} = ""; }

	delete($options{"mode"});
	$in{iso9660_mode} =~ /^[0-7]{3}$/ ||
		&error(&text('linux_emask', $in{'iso9660_mode'}));
	$options{"mode"} = $in{iso9660_mode};
	}
elsif ($_[0] eq "autofs") {
	# Options for automounter filesystems
	delete($options{'timeout'});
	if (!$in{'autofs_timeout_def'}) {
		$in{'autofs_timeout'} =~ /^\d+$/ ||
			&error(&text('linux_etimeout', $in{'autofs_timeout'}));
		$options{'timeout'} = $in{'autofs_timeout'};
		}
	delete($options{'pid-file'});
	if (!$in{'autofs_pid-file_def'}) {
		$in{'autofs_pid-file'} =~ /^\/\S+$/ ||
		       &error(&text('linux_epidfile', $in{'autofs_pid-file'}));
		$options{'pid-file'} = $in{'autofs_pid-file'};
		}
	}
elsif ($_[0] eq "smbfs") {
	# Options for smb filesystems..
	delete($options{'user'}); delete($options{'username'});
	if ($in{smbfs_user}) {
		$options{$smbfs_support == 4 ? 'username' : 'user'} = $in{smbfs_user};
		}

	delete($options{'passwd'}); delete($options{'password'});
	if ($in{smbfs_passwd}) {
		$options{$smbfs_support == 4 ? 'password' : 'passwd'} = $in{smbfs_passwd};
		}

	if ($smbfs_support != 2) {
		delete($options{uid});
		if ($in{smbfs_uid} ne "") { $options{uid} = getpwnam($in{smbfs_uid}); }

		delete($options{gid});
		if ($in{smbfs_gid} ne "") { $options{gid} = getgrnam($in{smbfs_gid}); }
		}

	if ($smbfs_support == 1) {
		delete($options{servername});
		if (!$in{smbfs_sname_def})
			{ $options{servername} = $in{smbfs_sname}; }
		}
	elsif ($smbfs_support == 2) {
		delete($options{workgroup});
		if (!$in{smbfs_wg_def})
			{ $options{workgroup} = $in{smbfs_wg}; }
		}

	if ($smbfs_support < 3) {
		delete($options{clientname});
		if (!$in{smbfs_cname_def})
			{ $options{clientname} = $in{smbfs_cname}; }

		delete($options{machinename});
		if (!$in{smbfs_mname_def})
			{ $options{machinename} = $in{smbfs_mname}; }
		elsif (!gethostbyname($in{'smbfs_server'})) {
			# No hostname found for the server.. try to guess
			local($out, $sname);
			$sname = $in{'smbfs_server'};
			$out = `$config{'nmblookup_path'} -d 0 $sname 2>&1`;
			if (!$? && $out =~ /^([0-9\.]+)\s+$sname\n/) {
				$options{machinename} = $1;
				}
			}
		}

	if ($smbfs_support == 1) {
		delete($options{fmode});
		if ($in{smbfs_fmode} !~ /^[0-7]{3}$/) {
			&error(&text('linux_efmode', $in{'smbfs_fmode'}));
			}
		elsif ($in{smbfs_fmode} ne "755")
			{ $options{fmode} = $in{smbfs_fmode}; }

		delete($options{dmode});
		if ($in{smbfs_dmode} !~ /^[0-7]{3}$/) {
			&error(&text('linux_edmode', $in{'smbfs_dmode'}));
			}
		elsif ($in{smbfs_dmode} ne "755")
			{ $options{dmode} = $in{smbfs_dmode}; }
		}
	elsif ($smbfs_support >= 3) {
		delete($options{'ro'}); delete($options{'rw'});
		if ($in{'smbfs_ro'}) { $options{'ro'} = ''; }

		delete($options{'user'});
		if ($in{'smbfs_user2'}) { $options{'user'} = ''; }
		}
	}
elsif ($_[0] eq "reiserfs") {
	# Save reiserfs options
	delete($options{'notail'});
	$options{'notail'} = "" if ($in{'lnx_notail'});
	}

# Add loop option if mounting a normal file
if ($_[0] ne "swap" && $_[0] ne "auto" && $_[0] ne "autofs" &&
    $_[0] ne "smbfs" && $_[0] ne "nfs") {
	local(@st);
	@st = stat($_[1]);
	if (@st && ($st[2] & 0xF000) == 0x8000) {
		# a regular file.. add the loop option
		if (!$options{'loop'}) {
			$options{'loop'} = "";
			}
		}
	}

# Return options string
foreach $k (keys %options) {
	if ($options{$k} eq "") { push(@rv, $k); }
	else { push(@rv, "$k=$options{$k}"); }
	}
return @rv ? join(',' , @rv) : "-";
}


# Get the smbfs options from 'smbfs_opts' file in the current directory. This
# is sadly necessary because there is no way to get the current options for
# an existing smbfs mount... so webmin has to save them in a file when
# mounting. Blech.
sub read_smbopts
{
local($_);
open(SMBOPTS, "$module_config_directory/smbfs");
while(<SMBOPTS>) {
	/^(\S+)\s+(\S+)$/;
	$smbopts{$1} = $2;
	}
close(SMBOPTS);
}

sub write_smbopts
{
local($_);
open(SMBOPTS, "> $module_config_directory/smbfs");
foreach (keys %smbopts) {
	print SMBOPTS "$_\t$smbopts{$_}\n";
	}
close(SMBOPTS);
}


# create_swap(file, size, units)
# Calls dd and mkswap to setup a swap file
sub create_swap
{
local($out, $bl);
$bl = $_[1] * ($_[2] eq "m" ? 1024 : 1);
$out = `dd if=/dev/zero of=$_[0] bs=1024 count=$bl 2>&1`;
if ($?) { return "dd failed : $out"; }
$out = `mkswap $_[0] $bl 2>&1`;
if ($?) { return "mkswap failed : $out"; }
system("sync >/dev/null 2>&1");
return 0;
}

# exports_list(host, dirarray, clientarray)
# Fills the directory and client array references with exports from some
# host. Returns an error string if something went wrong
sub exports_list
{
local($dref, $cref, $out, $_);
$dref = $_[1]; $cref = $_[2];
$out = `showmount -e $_[0] 2>&1`;
if ($?) { return $out; }
foreach (split(/\n/, $out)) {
	if (/^(\/\S*)\s+(.*)$/) {
		push(@$dref, $1); push(@$cref, $2);
		}
	}
return undef;
}

# broadcast_addr()
# Returns a useable broadcast address for finding NFS servers
sub broadcast_addr
{
local($out);
$out = `ifconfig -a 2>&1`;
if ($out =~ /(eth|tr)\d\s+.*\n.*Bcast:(\S+)\s+/) { return $2; }
return "255.255.255.255";
}

# autofs_options(string)
# Converts a string of options line --timeout 60 to something like timeout=60
sub autofs_options
{
local(@options);
if ($_[0] =~ /--timeout\s+(\d+)/ || $_[0] =~ /-t\s+(\d+)/) {
	push(@options, "timeout=$1");
	}
if ($_[0] =~ /--pid-file\s+(\S+)/ || $_[0] =~ /-p\s+(\d+)/) {
	push(@options, "pid-file=$1");
	}
return join(',', @options);
}

# autofs_args(string)
# Convert a comma-separated options string into args for automount
sub autofs_args
{
local(%options, $args);
&parse_options("autofs", $_[0]);
if (defined($options{'timeout'})) {
	$args .= " --timeout $options{'timeout'}";
	}
if (defined($options{'pid-file'})) {
	$args .= " --pid-file $options{'pid-file'}";
	}
return $args;
}

# read_amd_conf()
# Returns the entire amd config file as a string
sub read_amd_conf
{
local $sl = $/;
$/ = undef;
open(AMD, $config{'auto_file'});
local $rv = <AMD>;
close(AMD);
$/ = $sl;
return $rv;
}

# write_amd_conf(text)
sub write_amd_conf
{
open(AMD, ">$config{'auto_file'}");
print AMD $_[0];
close(AMD);
}

# parse_amd_conf()
# Parses a new-style amd.conf file into a hashtable
sub parse_amd_conf
{
local (@rv, $str, $lnum);
open(AMD, $config{'auto_file'});
while(<AMD>) {
	s/\r|\n//g;
	s/#.*$//g;
	if (/\[\s*(\S+)\s*\]/) {
		$str = { 'dir' => $1,
			 'line' => $lnum,
			 'eline' => $lnum };
		push(@rv, $str);
		}
	elsif (/(\S+)\s*=\s*"(.*)"/ || /(\S+)\s*=\s*(\S+)/) {
		$str->{'opts'}->{$1} = $2;
		$str->{'eline'} = $lnum;
		}
	$lnum++;
	}
close(AMD);
return @rv;
}

# device_name(device)
# Converts a device name to a human-readable form
sub device_name
{
if (!$text{'select_part'}) {
	local %flang = &load_language('fdisk');
	$text{'select_part'} = $flang{'select_part'};
	$text{'select_mpart'} = $flang{'select_mpart'};
	$text{'select_device'} = $flang{'select_device'};
	$text{'select_fd'} = $flang{'select_fd'};
	}
return $_[0] =~ /^\/dev\/(s|h)d([a-z])(\d+)$/ ?
	&text('select_part', $1 eq 's' ? 'SCSI' : 'IDE', uc($2), "$3") :
       $_[0] =~ /^\/dev\/(s|h)d([a-z])$/ ?
	&text('select_device', $1 eq 's' ? 'SCSI' : 'IDE', uc($2)) :
       $_[0] =~ /rd\/c(\d+)d(\d+)p(\d+)$/ ?
	&text('select_mpart', "$1", "$2", "$3") :
       $_[0] =~ /fd(\d+)$/ ?
	&text('select_fd', "$1") :
       $_[0] =~ /md(\d+)$/ ?
	&text('linux_rdev', "$1") :
       $_[0] =~ /LABEL=(\S+)/i ?
	&text('linux_label', "$1") :
       $_[0] eq '/dev/cdrom' ?
	$text{'linux_cddev'} :
	$_[0];
}

sub files_to_lock
{
return ( $config{'fstab_file'}, $config{'autofs_file'}, $config{'auto_file'} );
}

1;

0707010000773a000081a40000000000000002000000013ac0388d000001e4000000200000000000000000000000000000001a00000003reloc/mount/log_parser.pl # log_parser.pl
# Functions for parsing this module's logs

require './mount-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params, [long])
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p, $long) = @_;
local $text = $long ? "log_${action}_l" : "log_${action}";
return &text($text, "<tt>$p->{'dev'}</tt>", &fstype_name($p->{'type'}),
		    "<tt>$p->{'dir'}</tt>");
}

0707010000773b000081a40000000000000002000000013ac0388d00000018000000200000000000000000000000000000001500000003reloc/mount/low.risk  noconfig=1
deny=/ /boot
0707010000773c000081a40000000000000002000000013ac0388d00000041000000200000000000000000000000000000001600000003reloc/mount/low.skill icons=1
ignore=proc fd usbdevfs devpts
opts=smbfs rumba
simple=1
   0707010000773d000081a40000000000000002000000013ac0388d0000000b000000200000000000000000000000000000001800000003reloc/mount/medium.risk   noconfig=1
 0707010000773e000081a40000000000000002000000013ac0388d00000029000000200000000000000000000000000000001900000003reloc/mount/medium.skill  opts=smbfs rumba msdos fat vfat
simple=1
   0707010000773f000081a40000000000000002000000013ac0388c000002e0000000200000000000000000000000000000001800000003reloc/mount/module.info   desc_zh_CN=磁盘和网络文件系统
name=Disk Manager
desc_pt=Sistema de Ficheiros de Disco e Rede
depends=proc
desc_tr=Disk ve A Dosya Sistemi
desc_fr=Montages disques et r閟eaux
desc_es=Sistemas de Archivo de Disco y Red
desc_sv=Filsystem f鰎 diskar och n鋞verk
desc_de=Platten- und Netzwerk-Dateisysteme
desc_hu=Lemez 閟 h醠髗ati filerendszerek
desc_ru_SU=硐卧梢张唾 媪侍献倥 笊釉磐
desc_pl=Lokalne i&nbsp;sieciowe systemy plik體
category=system
os_support=slackware-linux redhat-linux solaris debian-linux suse-linux freebsd hpux unixware open-linux turbo-linux corel-linux openbsd cobalt-linux lfs-linux
desc_zh_TW.Big5=合盒籔呼隔郎╰参
desc=Disk and Network Filesystems
risk=low medium high
desc_ru_RU=填眚桊箦禧 脏殡钼 谚耱屐
07070100007740000081a40000000000000002000000013ac0388c00001112000000200000000000000000000000000000001900000003reloc/mount/mount-lib.pl  # mount-lib.pl
# Functions for handling the /etc/[v]fstab file. Some functions are defined in
# here, and some in OS-specific files named <os_type>-lib.pl

do '../web-lib.pl';
&init_config();
%access = &get_module_acl();

# get_mount(directory|'swap', device)
# Returns the index of this mount, or -1 if not known
sub get_mount
{
local(@mlist, $p, $d, $i);
@mlist = &list_mounts();
for($i=0; $i<@mlist; $i++) {
	$p = $mlist[$i];
	if ($_[0] eq "*" && $p->[1] eq $_[1]) {
		# found by match on device
		return $i;
		}
	elsif ($_[1] eq "*" && $p->[0] eq $_[0]) {
		# found by match on directory
		return $i;
		}
	elsif ($p->[0] eq $_[0] && $p->[1] eq $_[1]) {
		# found by match on both
		return $i;
		}
	}
return -1;
}


# get_mounted(directory|'swap', device)
# Returns the index of this current mount, or -1 if not known
sub get_mounted
{
local(@mlist, $p, $d, $i);
@mlist = &list_mounted();
for($i=0; $i<@mlist; $i++) {
	$p = $mlist[$i];
	if ($_[0] eq "*" && $p->[1] eq $_[1]) {
		# found by match on device
		return $i;
		}
	elsif ($_[1] eq "*" && $p->[0] eq $_[0]) {
		# found by match on directory
		return $i;
		}
	elsif ($p->[0] eq $_[0] && $p->[1] eq $_[1]) {
		# found by match on both
		return $i;
		}
	}
return -1;
}


# parse_options(type, options)
# Convert an options string for some filesystem into the associative
# array %options
sub parse_options
{
local($_);
undef(%options);
if ($_[1] ne "-") {
	foreach (split(/,/, $_[1])) {
		if (/^([^=]+)=(.*)$/) { $options{$1} = $2; }
		else { $options{$_} = ""; }
		}
	}
}


# swap_form(path)
# This function should be called by os-specific code to display a form
# asking for the size of a swap file to create. The form will be submitted
# to a creation program, and then redirected back to the original mount cgi
sub swap_form
{
&header("Create Swap File", "");
print "<hr>\n";
print "<form action=create_swap.cgi>\n";
foreach $k (keys %in) {
	print "<input type=hidden name=\"$k\" value=\"$in{$k}\">\n";
	}
print "<input type=hidden name=cswap_file value=\"$_[0]\">\n";
print "The swap file <tt>$_[0]</tt> does not exist.<p>\n";
print "Create and mount a swap file with size <input name=cswap_size size=6>\n";
print "<select name=cswap_units>\n";
print "<option value=k> kB\n";
print "<option value=m> MB\n";
print "</select>\n";
print "<input type=submit value=\"Create\"></form>\n";
print "<hr>\n";
&footer("", "mount list");
exit;
}

# nfs_server_chooser_button(input, [form])
sub nfs_server_chooser_button
{
local($form);
$form = @_ > 1 ? $_[1] : 0;
print "<input type=button onClick='ifield = document.forms[$form].$_[0]; nfs_server = window.open(\"nfs_server.cgi\", \"nfs_server\", \"toolbar=no,menubar=no,scrollbars=yes,width=400,height=300\"); nfs_server.ifield = ifield' value=\"...\">\n";
}

# nfs_export_chooser_button(serverinput, exportinput, [form])
sub nfs_export_chooser_button
{
local($form);
$form = @_ > 2 ? $_[2] : 0;
print "<input type=button onClick='if (document.forms[$form].$_[0].value != \"\") { ifield = document.forms[$form].$_[1]; nfs_export = window.open(\"nfs_export.cgi?server=\"+document.forms[$form].$_[0].value, \"nfs_export\", \"toolbar=no,menubar=no,scrollbars=yes,width=500,height=200\"); nfs_export.ifield = ifield; }' value=\"...\">\n";
}

# smb_server_chooser_button(serverinput, [form])
sub smb_server_chooser_button
{
local($form);
$form = @_ > 1 ? $_[1] : 0;
if (&has_command($config{'smbclient_path'})) {
	print "<input type=button onClick='ifield = document.forms[$form].$_[0]; smb_server = window.open(\"smb_server.cgi\", \"smb_server\", \"toolbar=no,menubar=no,scrollbars=yes,width=400,height=300\"); smb_server.ifield = ifield' value=\"...\">\n";
	}
}

# smb_share_chooser_button(serverinput, shareinput, [form])
sub smb_share_chooser_button
{
local($form);
$form = @_ > 2 ? $_[2] : 0;
if (&has_command($config{'smbclient_path'})) {
	print "<input type=button onClick='if (document.forms[$form].$_[0].value != \"\") { ifield = document.forms[$form].$_[1]; smb_share = window.open(\"smb_share.cgi?server=\"+document.forms[$form].$_[0].value, \"smb_share\", \"toolbar=no,menubar=no,scrollbars=yes,width=400,height=300\"); smb_share.ifield = ifield; }' value=\"...\">\n";
	}
}

# Include the correct OS-specific functions file
$os_lib_file = "./$gconfig{os_type}-lib.pl";
if (-r $os_lib_file) {
	do $os_lib_file;
	}
else { die "This OS is not supported!"; }

1;

  07070100007741000081e40000000000000002000000013ac0388c000003e9000000200000000000000000000000000000001b00000003reloc/mount/nfs_export.cgi    #!/usr/local/bin/perl
# nfs_export.cgi
# Display a list of NFS exports on some host for the user to choose from

require './mount-lib.pl';
&ReadParse();
&header();
print <<EOF;
<script>
function choose(f)
{
ifield.value = f;
window.close();
}
</script>
EOF

print "<title>Choose NFS Directory on $in{'server'}</title>\n";
if ($error = &exports_list($in{'server'}, \@dirs, \@clients)) {
	print "<b>",&text('nfs_failed', $in{'server'},
			  "<p><tt>$error</tt><p>"),"</b>\n";
	exit;
	}
print "<b>$text{'nfs_seldir'}</b>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'nfs_dir'}</b></td> ",
      "<td><b>$text{'nfs_clients'}</b></td> </tr>\n";
for($i=0; $i<@dirs; $i++) {
	print "<tr $cb>\n";
	print "<td><a href=\"\" onClick='choose(\"$dirs[$i]\"); return false'>",
	      "$dirs[$i]</a></td>\n";
	printf "<td>%s</td>\n",
		length($clients[$i]) > 45 ?
			&html_escape(substr($clients[$i], 0, 45))." ..." :
			&html_escape($clients[$i]);
	print "</tr>\n";
	}
print "</table>\n";

   07070100007742000081e40000000000000002000000013ac0388c000006f8000000200000000000000000000000000000001b00000003reloc/mount/nfs_server.cgi    #!/usr/local/bin/perl
# nfs_server.cgi
# Called in a pop-up javascript window to display a list of known NFS
# servers, generated by broadcasting on the NFS port

require './mount-lib.pl';
use Socket;
&header();
print <<EOF;
<script>
function choose(f)
{
ifield.value = f;
window.close();
}
</script>
EOF

print "<title>$text{'nfs_server'}</title>\n";

# send NFS null procedure call to broadcast address, and wait for
# 2 seconds for all replies
$msg = pack("NNNNNNNNNN",
	time(),	# xid
	0,	# CALL
	2,	# RPC version 2
	100003,	# nfs program
	2,	# nfs version
	0,	# null procedure
	0, 0,	# no authority
	0, 0,	# no credentials
	);
socket(SOCK, PF_INET, SOCK_DGRAM, getprotobyname("udp"));
setsockopt(SOCK, SOL_SOCKET, SO_BROADCAST, pack("l", 1));
send(SOCK, $msg, 0, sockaddr_in(2049, inet_aton(&broadcast_addr())));
$tmstart = time();
while(time()-$tmstart < 2) {
	$rin = '';
	vec($rin, fileno(SOCK), 1) = 1;
	if (select($rout = $rin, undef, undef, 1)) {
		$from = recv(SOCK, $buf, 1024, 0);
		($fromport, $fromaddr) = sockaddr_in($from);
		$fromip = inet_ntoa($fromaddr);
		if ($fromip !~ /\.(255|0)$/ && !$already{$fromip}++) {
			push(@fromip, $fromip);
			push(@fromaddr, $fromaddr);
			}
		}
	}

if (@fromip) {
	print "<b>$text{'nfs_select'}</b><br>\n";
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'nfs_ip'}</b></td> ",
	      "<td><b>$text{'nfs_host'}</b></td> </tr>\n";
	for($i=0; $i<@fromip; $i++) {
		$fromhost = gethostbyaddr($fromaddr[$i], AF_INET);
		printf "<tr $cb> <td><a href=\"\" onClick='choose(\"%s\"); ".
		       "return false'>$fromip[$i]</a></td>\n",
			$fromhost ? $fromhost : $fromip[$i];
		printf "<td>%s</td> </tr>\n",
			$fromhost ? $fromhost : "<br>";
		}
	print "</table>\n";
	}
else { print "<b>$text{'nfs_none'}</b>.<p>\n"; }

07070100007743000081e40000000000000002000000013ac0388c0000dc44000000200000000000000000000000000000001e00000003reloc/mount/open-linux-lib.pl # linux-lib.pl
# Mount table functions for linux

if (&has_command("amd")) {
	local $amd = &read_amd_conf();
	$amd_support = $amd =~ /\[\s*global\s*\]/i ? 2 : 1;
	}
$autofs_support = &has_command("automount");
if (&has_command("mount.smb")) {
	$smbfs_support = `mount.smb -v` =~ /username=/i ? 4 : 3;
	}
elsif (&has_command("mount.smbfs")) {
	$smbfs_support = `mount.smbfs -v` =~ /username=/i ? 4 : 3;
	}
elsif (&has_command("smbmount")) {
	$smbfs_support = `smbmount -v` =~ /Version\s+2/i ? 2 : 1;
	}
$swaps_support = -r "/proc/swaps";
if (&has_command("e2label") &&
    `mount --version 2>&1` =~ /(\d+)\.(\d+)/ && ($1 > 2 || $1==2 && $2 >= 10)) {
	$has_e2label = 1;
	}

# Return information about a filesystem, in the form:
#  directory, device, type, options, fsck_order, mount_at_boot
# If a field is unused or ignored, a - appears instead of the value.
# Swap-filesystems (devices or files mounted for VM) have a type of 'swap',
# and 'swap' in the directory field
sub list_mounts
{
return @list_mounts_cache if (@list_mounts_cache);
local(@rv, @p, @o, $_, $i, $j); $i = 0;

# Get /etc/fstab mounts
open(FSTAB, $config{fstab_file});
while(<FSTAB>) {
	local(@o, $at_boot);
	chop; s/#.*$//g;
	if (!/\S/ || /\signore\s/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "proc") { $p[0] = "proc"; }
	elsif ($p[2] eq "auto") { $p[2] = "*"; }
	elsif ($p[2] eq "swap") { $p[1] = "swap"; }
	elsif ($p[2] eq "smbfs") { $p[0] =~ s/\//\\/g; }
	$rv[$i] = [ $p[1], $p[0], $p[2] ];
	$rv[$i]->[5] = "yes";
	@o = split(/,/ , $p[3] eq "defaults" ? "" : $p[3]);
	if (($j = &indexof("noauto", @o)) >= 0) {
		# filesytem is not mounted at boot
		splice(@o, $j, 1);
		$rv[$i]->[5] = "no";
		}
	$rv[$i]->[3] = (@o ? join(',' , @o) : "-");
	$rv[$i]->[4] = (@p >= 5 ? $p[5] : 0);
	$i++;
	}
close(FSTAB);

if ($amd_support == 1) {
	# Get old automounter configuration, as used by redhat
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		@p = split(/\s+/, $1);
		for($j=0; $j<@p; $j+=2) {
			$rv[$i++] = [ $p[$j], $p[$j+1], "auto",
				      "-", 0, "yes" ];
			}
		}
	}
elsif ($amd_support == 2) {
	# Guess what? There's now a *new* amd config file format, introduced
	# in redhat 6.1 and caldera 2.3
	local @amd = &parse_amd_conf();
	local @sp = split(/:/, $amd[0]->{'opts'}->{'search_path'});
	local ($am, $sp);
	foreach $am (@amd) {
		local $mn = $am->{'opts'}->{'map_name'};
		if ($mn !~ /^\//) {
			foreach $sp (@sp) {
				if (-r "$sp/$mn") {
					$mn = "$sp/$mn";
					last;
					}
				}
			}
		$rv[$i++] = [ $am->{'dir'}, $mn,
			      "auto", $am->{'opts'}, 0, "yes" ]
			if ($am->{'dir'} ne 'global');
		}
	}

# Get kernel automounter configuration
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	while(<AUTO>) {
		chop;
		s/#.*$//g;
		if (/^\s*(\S+)\s+(\S+)\s*(.*)$/) {
			$rv[$i++] = [ $1, $2, "autofs",
				      ($3 ? &autofs_options($3) : "-"),
				      0, "yes" ];
			}
		}
	close(AUTO);
	}

@list_mounts_cache = @rv;
return @rv;
}


# create_mount(directory, device, type, options, fsck_order, mount_at_boot)
# Add a new entry to the fstab file, old or new automounter file
sub create_mount
{
local(@mlist, @amd, $_); local($opts);

if ($_[2] eq "auto") {
	if ($amd_support == 1) {
		# Adding an old automounter mount
		local $amd = &read_amd_conf();
		local $m = "$_[0] $_[1]";
		if ($amd =~ /MOUNTPTS=''/) {
			$amd =~ s/MOUNTPTS=''/MOUNTPTS='$m'/;
			}
		else {
			$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$1 $m'/;
			}
		&write_amd_conf($amd);
		}
	elsif ($amd_support == 2) {
		# Adding a new automounter mount
		open(AMD, ">>$config{'auto_file'}");
		print AMD "\n";
		print AMD "[ $_[0] ]\n";
		print AMD "map_name = $_[1]\n";
		close(AMD);
		}
	}
elsif ($_[2] eq "autofs") {
	# Adding a new automounter mount
	open(AUTO, ">> $config{'autofs_file'}");
	print AUTO "$_[0]  $_[1]";
	if ($_[3]) { print AUTO "  ",&autofs_args($_[3]); }
	print AUTO "\n";
	close(AUTO);
	}
else {
	# Adding a normal mount to the fstab file
	local $dev = $_[1];
	$dev =~ s/\\/\//g if ($_[2] eq 'smbfs');
	open(FSTAB, ">> $config{fstab_file}");
	print FSTAB "$dev  $_[0]  $_[2]";
	$opts = $_[3] eq "-" ? "" : $_[3];
	if ($_[5] eq "no") {
		$opts = join(',' , (split(/,/ , $opts) , "noauto"));
		}
	if ($opts eq "") { print FSTAB "  defaults"; }
	else { print FSTAB "  $opts"; }
	print FSTAB "  0  ";
	print FSTAB $_[4] eq "-" ? "0\n" : "$_[4]\n";
	close(FSTAB);
	}
undef(@list_mounts_cache);
}


# change_mount(num, directory, device, type, options, fsck_order, mount_at_boot)
# Change an existing permanent mount
sub change_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $line !~ /\signore\s/ && $i++ == $_[0]) {
		# Found the line to replace
		print FSTAB "$_[2]  $_[1]  $_[3]";
		$opts = $_[4] eq "-" ? "" : $_[4];
		if ($_[6] eq "no") {
			$opts = join(',' , (split(/,/ , $opts) , "noauto"));
			}
		if ($opts eq "") { print FSTAB "  defaults"; }
		else { print FSTAB "  $opts"; }
		print FSTAB "  0  ";
		print FSTAB $_[5] eq "-" ? "0\n" : "$_[5]\n";
		}
	else { print FSTAB $_,"\n"; }
	}
close(FSTAB);

if ($amd_support == 1) {
	# Update older amd configuration
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		# found mount points line..
		local @mpts = split(/\s+/, $1);
		for($j=0; $j<@mpts; $j+=2) {
			if ($i++ == $_[0]) {
				$mpts[$j] = $_[1];
				$mpts[$j+1] = $_[2];
				}
			}
		local $mpts = join(" ", @mpts);
		$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$mpts'/;
		}
	&write_amd_conf($amd);
	}
elsif ($amd_support == 2) {
	# Update new amd configuration
	local @amd = &parse_amd_conf();
	local $lref = &read_file_lines($config{'auto_file'});
	foreach $am (@amd) {
		next if ($am->{'dir'} eq 'global');
		if ($i++ == $_[0]) {
			local @nl = ( "[ $_[1] ]" );
			local %opts = %{$am->{'opts'}};
			$opts->{'map_name'} = $_[2];
			foreach $o (keys %opts) {
				push(@nl, "$o = $opts{$o}");
				}
			splice(@$lref, $am->{'line'},
			       $am->{'eline'} - $am->{'line'} + 1, @nl);
			}
		}
	&flush_file_lines();
	}

# Update autofs configuration
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	@auto = <AUTO>;
	close(AUTO);
	open(AUTO, "> $config{'autofs_file'}");
	foreach (@auto) {
		chop; ($line = $_) =~ s/#.*$//g;
		if ($line =~ /\S/ && $i++ == $_[0]) {
			print AUTO "$_[1]  $_[2]";
			if ($_[4]) { print AUTO "  ",&autofs_args($_[4]); }
			print AUTO "\n";
			}
		else { print AUTO $_,"\n"; }
		}
	close(AUTO);
	}
undef(@list_mounts_cache);
}


# delete_mount(index)
# Delete an existing permanent mount
sub delete_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line !~ /\S/ || $line =~ /\signore\s/ || $i++ != $_[0]) {
		# Don't delete this line
		print FSTAB $_,"\n";
		}
	}
close(FSTAB);

if ($amd_support == 1) {
	# Update older amd configuration
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		# found mount points line..
		local @mpts = split(/\s+/, $1);
		for($j=0; $j<@mpts; $j+=2) {
			if ($i++ == $_[0]) {
				splice(@mpts, $j, 2);
				}
			}
		local $mpts = join(" ", @mpts);
		$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$mpts'/;
		}
	&write_amd_conf($amd);
	}
elsif ($amd_support == 2) {
	# Update new amd configuration
	local @amd = &parse_amd_conf();
	local $lref = &read_file_lines($config{'auto_file'});
	foreach $am (@amd) {
		next if ($am->{'dir'} eq 'global');
		if ($i++ == $_[0]) {
			splice(@$lref, $am->{'line'},
			       $am->{'eline'} - $am->{'line'} + 1);
			}
		}
	&flush_file_lines();
	}

# Update AMD file
if ($amd_support) {
	open(AMD, $config{auto_file});
	@amd = <AMD>;
	close(AMD);
	open(AMD, "> $config{auto_file}");
	foreach (@amd) {
		if (/MOUNTPTS='(.*)'/) {
			# found mount points line..
			@mpts = split(/\s+/, $1);
			for($j=0; $j<@mpts; $j+=2) {
				if ($i++ != $_[0]) {
					push(@nmpts, $mpts[$j]);
					push(@nmpts, $mpts[$j+1]);
					}
				}
			print AMD "MOUNTPTS='".join(' ', @nmpts)."'\n";
			}
		else { print AMD $_; }
		}
	close(AMD);
	}

# Update autofs file
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	@auto = <AUTO>;
	close(AUTO);
	open(AUTO, "> $config{'autofs_file'}");
	foreach (@auto) {
		chop; ($line = $_) =~ s/#.*$//g;
		if ($line !~ /\S/ || $i++ != $_[0]) {
			# keep this line
			print AUTO $_,"\n";
			}
		}
	close(AUTO);
	}
undef(@list_mounts_cache);
}


# list_mounted()
# Return a list of all the currently mounted filesystems and swap files.
# The list is in the form:
#  directory device type options
sub list_mounted
{
return @list_mounted_cache if (@list_mounted_cache);
local(@rv, @p, @o, $mo, $_, %smbopts);
local @mounts = &list_mounts();

&read_smbopts();
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	chop;
	s/#.*$//g; if (!/\S/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "auto" || $p[0] =~ /^\S+:\(pid\d+\)$/) {
		# Automounter map.. turn the map= option into the device
		@o = split(/,/ , $p[3]);
		($mo) = grep {/^map=/} (@o);
		$mo =~ /^map=(.*)$/; $p[0] = $1;
		$p[3] = join(',' , grep {!/^map=/} (@o));
		$p[2] = "auto";
		}
	elsif ($p[2] eq "autofs") {
		# Kernel automounter map.. use the pid to find the map
		$p[0] =~ /automount\(pid(\d+)\)/ || next;
		$out = `ps hwwww $1`;
		$out =~ /automount\s+(.*)\s*(\S+)\s+(file|program|yp)(,\S+)?\s+(\S+)/ || next;
		$p[0] = $5;
		$p[3] = $1 ? &autofs_options($1) : "-";
		}
	elsif ($p[2] eq "smbfs") {
		# Change from //FOO/BAR to \\foo\bar
		$p[0] =~ s/\//\\/g;
		$p[0] = lc($p[0]);
		$p[3] = $smbopts{$p[1]};
		}
	elsif ($p[2] eq "proc") {
		# The source for proc mounts is always proc
		$p[0] = "proc";
		}
	if ($p[2] eq 'ext2' && $has_e2label) {
		# Check for a label on this partition, and there is one
		# and this filesystem is in fstab with the label, change
		# the device.
		local $label = `e2label $p[0] 2>^1`;
		if (!$?) {
			chop($label);
			foreach $m (@mounts) {
				if ($m->[0] eq $p[1] &&
				    $m->[1] eq "LABEL=$label") {
					$p[0] = "LABEL=$label";
					last;
					}
				}
			}
		}
	# check fstab for a mount on the same dir which is a symlink
	# to the device
	local @st = stat($p[0]);
	foreach $m (@mounts) {
		if ($m->[0] eq $p[1]) {
			local @fst = stat($m->[1]);
			if ($fst[0] == $st[0] && $fst[1] == $st[1]) {
				# symlink to the same place!
				$p[0] = $m->[1];
				last;
				}
			}
		}
	push(@rv, [ $p[1], $p[0], $p[2], $p[3] ]);
	}
close(MTAB);
open(SWAPS, "/proc/swaps");
while(<SWAPS>) {
	chop;
	if (/^(\/\S+)\s+/) {
		push(@rv, [ "swap", $1, "swap", "-" ]);
		}
	}
close(SWAPS);
@list_mounted_cache = @rv;
return @rv;
}


# mount_dir(directory, device, type, options)
# Mount a new directory from some device, with some options. Returns 0 if ok,
# or an error string if failed
sub mount_dir
{
local($out, $opts, $shar, %options, %smbopts);
if ($_[2] eq "swap") {
	# Use swapon to add the swap space..
	$out = &backquote_logged("swapon $_[1] 2>&1");
	if ($out =~ /Invalid argument/) {
		# looks like this swap partition isn't ready yet.. set it up
		$out = &backquote_logged("mkswap $_[1] 2>&1");
		if ($?) { return "mkswap failed : <pre>$out</pre>"; }
		$out = &backquote_logged("swapon $_[1] 2>&1");
		}
	if ($?) { return "<pre>$out</pre>"; }
	}
elsif ($_[2] eq "auto") {
	# Old automounter filesystem
	$out = &backquote_logged("amd $_[0] $_[1] >/dev/null 2>/dev/null");
	if ($?) { return $text{'linux_eamd'}; }
	}
elsif ($_[2] eq "autofs") {
	# New automounter filesystem
	$opts = &autofs_args($_[3]);
	$type = $_[1] !~ /^\// ? "yp" :
		(-x $_[1]) ? "program" : "file";
	$out = &backquote_logged("automount $opts $_[0] $type $_[1] 2>&1");
	if ($?) { return &text('linux_eauto', "<pre>$out</pre>"); }
	}
elsif ($_[2] eq "smbfs") {
	local $shar = $_[1];
	$shar =~ s/\\/\//g;
	if ($smbfs_support >= 3) {
		# SMB filesystem mounted with mount command
		$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
		$out = &backquote_logged("mount -t $_[2] $opts $shar $_[0] 2>&1");
		if ($? || $out =~ /failed/i) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "mount -t $_[2] $opts $shar $_[0] : <pre>$out</pre>";
			}
		}
	elsif ($smbfs_support == 2) {
		# SMB filesystem mounted with version 2.x smbmount
		&parse_options("smbfs", $_[3]);
		$opts =
		    ($options{'user'} ? "-U $options{'user'} " : "").
		    ($options{'passwd'} ? "" : "-N ").
		    ($options{'workgroup'} ? "-W $options{'workgroup'} " : "").
		    ($options{'clientname'} ? "-n $options{'clientname'} " : "").
		    ($options{'machinename'} ? "-I $options{'machinename'} " : "");
		&foreign_require("proc", "proc-lib.pl");
		local ($fh, $fpid) = &foreign_call(
			"proc", "pty_process_exec_logged", "sh", "-c",
			"smbmount $shar $_[0] -d 0 $opts");
		if ($options{'passwd'}) {
			local $w = &wait_for($fh, "word:");
			if ($w < 0) {
				&system_logged("umount $_[0] >/dev/null 2>&1");
				return $text{'linux_esmbconn'};
				}
			local $p = "$options{'passwd'}\n";
			syswrite($fh, $p, length($p));
			}
		local $got;
		while(<$fh>) {
			$got .= $_;
			}
		if ($got =~ /failed/) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "<pre>$got</pre>\n";
			}
		close($fh);
		}
	elsif ($smbfs_support == 1) {
		# SMB filesystem mounted with older smbmount
		&parse_options("smbfs", $_[3]);
		$shortname = &get_system_hostname();
		if ($shortname =~ /^([^\.]+)\.(.+)$/) { $shortname = $1; }
		$opts =
		   ($options{servername} ? "-s $options{servername} " : "").
		   ($options{clientname} ? "-c $options{clientname} "
					 : "-c $shortname ").
		   ($options{machinename} ? "-I $options{machinename} " : "").
		   ($options{user} ? "-U $options{user} " : "").
		   ($options{passwd} ? "-P $options{passwd} " : "-n ").
		   ($options{uid} ? "-u $options{uid} " : "").
		   ($options{gid} ? "-g $options{gid} " : "").
		   ($options{fmode} ? "-f $options{fmode} " : "").
		   ($options{dmode} ? "-d $options{dmode} " : "");
		$out = &backquote_logged("smbmount $shar $_[0] $opts 2>&1");
		if ($out) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "<pre>$out</pre>";
			}
		}
	&read_smbopts();
	$smbopts{$_[0]} = $_[3] eq "-" ? "dummy=1" : $_[3];
	&write_smbopts();
	}
else {
	# some filesystem supported by mount
	$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
	if ($_[1] =~ /LABEL=(.*)/) {
		$cmd = "mount -t $_[2] -L $1 $opts $_[0]";
		}
	else {
		$cmd = "mount -t $_[2] $opts $_[1] $_[0]";
		}
	$out = &backquote_logged("$cmd 2>&1");
	if ($?) { return "<pre>$cmd : $out</pre>"; }
	}
undef(@list_mounted_cache);
return 0;
}


# unmount_dir(directory, device, type)
# Unmount a directory that is currently mounted. Returns 0 if ok,
# or an error string if failed
sub unmount_dir
{
local($out, %smbopts, $dir);
if ($_[2] eq "swap") {
	# Use swapoff to remove the swap space..
	$out = &backquote_logged("swapoff $_[1]");
	if ($?) { return "<pre>$out</pre>"; }
	}
elsif ($_[2] eq "auto") {
	# Kill the amd process
	$dir = $_[0];
	if (`cat /etc/mtab` =~ /:\(pid([0-9]+)\)\s+$dir\s+(auto|nfs)\s+/) {
		&kill_logged('TERM', $1) || return $text{'linux_ekillamd'};
		}
	sleep(2);
	}
elsif ($_[2] eq "autofs") {
	# Kill the automount process
	$dir = $_[0];
	`cat /etc/mtab` =~ /automount\(pid([0-9]+)\)\s+$dir\s+autofs\s+/;
	&kill_logged('TERM', $1) || return $text{'linux_ekillauto'};
	sleep(2);
	}
else {
	$out = &backquote_logged("umount $_[0] 2>&1");
	if ($?) { return "<pre>$out</pre>"; }
	if ($_[2] eq "smbfs") {
		# remove options from list
		&read_smbopts();
		delete($smbopts{$_[0]});
		&write_smbopts();
		}
	}
undef(@list_mounted_cache);
return 0;
}


# mount_modes(type)
# Given a filesystem type, returns 4 numbers that determine how the file
# system can be mounted, and whether it can be fsck'd
#  0 - cannot be permanently recorded
#	(smbfs under linux before 2.2)
#  1 - can be permanently recorded, and is always mounted at boot
#	(swap under linux)
#  2 - can be permanently recorded, and may or may not be mounted at boot
#	(most normal filesystems)
# The second is:
#  0 - mount is always permanent => mounted when saved
#	(swap under linux before 2.2)
#  1 - doesn't have to be permanent
#	(normal fs types)
# The third is:
#  0 - cannot be fsck'd at boot time
#  1 - can be be fsck'd at boot
# The fourth is:
#  0 - can be unmounted
#  1 - cannot be unmounted
sub mount_modes
{
if ($_[0] eq "swap")
	{ return (1, $swaps_support ? 1 : 0, 0, 0); }
elsif ($_[0] eq "auto" || $_[0] eq "autofs")
	{ return (1, 1, 0, 0); }
elsif ($_[0] eq "smbfs")
	{ return ($smbfs_support >= 3 ? 2 : 0, 1, 0, 0); }
elsif ($_[0] eq "ext2" || $_[0] eq "minix" || $_[0] eq "xiafs")
	{ return (2, 1, 1, 0); }
else
	{ return (2, 1, 0, 0); }
}


# disk_space(type, directory)
# Returns the amount of total and free space for some filesystem, or an
# empty array if not appropriate.
sub disk_space
{
if (&get_mounted($_[1], "*") < 0) { return (); }
if ($_[0] eq "proc" || $_[0] eq "swap" ||
    $_[0] eq "auto" || $_[0] eq "autofs") { return (); }
`df -k $_[1]` =~ /Mounted on\n\S+\s+(\S+)\s+\S+\s+(\S+)/;
return ($1, $2);
}


# list_fstypes()
# Returns an array of all the supported filesystem types. If a filesystem is
# found that is not one of the supported types, generate_location() and
# generate_options() will not be called for it.
sub list_fstypes
{
local @sup = ("ext2", "minix", "msdos", "nfs", "iso9660", "ext", "xiafs",
	      "hpfs", "fat", "vfat", "umsdos", "sysv", "reiserfs");
push(@sup, "smbfs") if ($smbfs_support);
push(@sup, "auto") if ($amd_support);
push(@sup, "autofs") if ($autofs_support);
push(@sup, "swap");
return @sup;
}


# fstype_name(type)
# Given a short filesystem type, return a human-readable name for it
sub fstype_name
{
local(%fsmap);
%fsmap = ("ext2","Linux Native Filesystem",
	  "minix","Minix Filesystem",
	  "msdos","MS-DOS Filesystem",
	  "nfs","Network Filesystem",
	  "smbfs","Windows Networking Filesystem",
	  "iso9660","ISO9660 CD-ROM",
	  "ext","Old EXT Linux Filesystem",
	  "xiafs","Old XIAFS Linux Filesystem",
	  "hpfs","OS/2 Filesystem",
	  "fat","MS-DOS Filesystem",
	  "vfat","Windows 95 Filesystem",
	  "umsdos","Linux on top of MS-DOS Filesystem",
	  "sysv","System V Filesystem",
	  "swap","Virtual Memory",
	  "proc","Kernel Filesystem",
	  "devpts","PTS Filesystem",
	  "auto",($autofs_support ? "Old " : "")."Automounter Filesystem",
	  "reiserfs","Reiser Filesystem",
	  "autofs","New Automounter Filesystem",
	  "usbdevfs","USB Devices",
	  "shm","SysV Shared Memory");
return $config{long_fstypes} && $fsmap{$_[0]} ? $fsmap{$_[0]} : uc($_[0]);
}


# multiple_mount(type)
# Returns 1 if filesystems of this type can be mounted multiple times, 0 if not
sub multiple_mount
{
return ($_[0] eq "nfs" || $_[0] eq "auto" || $_[0] eq "autofs");
}


# generate_location(type, location)
# Output HTML for editing the mount location of some filesystem.
sub generate_location
{
if ($_[0] eq "nfs") {
	# NFS mount from some host and directory
	$_[1] =~ /^([^:]+):(.*)$/;
	print "<tr> <td><b>$text{'linux_nfshost'}</b></td>\n";
	print "<td><input name=nfs_host size=20 value=\"$1\">\n";
	&nfs_server_chooser_button("nfs_host");
	print "&nbsp;<b>$text{'linux_nfsdir'}</b>\n";
	print "<input name=nfs_dir size=20 value=\"$2\">\n";
	&nfs_export_chooser_button("nfs_host", "nfs_dir");
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "auto") {
	# Using some automounter map
	print "<tr> <td><b>$text{'linux_map'}</b></td>\n";
	print "<td><input name=auto_map size=20 value=\"$_[1]\">\n";
	print &file_chooser_button("auto_map", 0);
	print "</td> <td colspan=2></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	# Using some kernel automounter map
	print "<tr> <td><b>$text{'linux_map'}</b></td>\n";
	print "<td><input name=autofs_map size=20 value=\"$_[1]\">\n";
	print &file_chooser_button("autofs_map", 0);
	print "</td> <td colspan=2></td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swap file or device
	&foreign_require("fdisk", "fdisk-lib.pl");
	printf "<tr> <td valign=top><b>$text{'linux_swapfile'}</b></td>\n";
	print "<td colspan=3>\n";
	local $found;
	local $sel = &foreign_call("fdisk", "partition_select", "lnx_disk",
				   $_[1], 3, \$found);
	printf "<input type=radio name=lnx_dev value=0 %s> %s %s<br>\n",
		$found ? "checked" : "", $text{'linux_disk'}, $sel;
	printf "<input type=radio name=lnx_dev value=1 %s> %s\n",
		$found ? "" : "checked", $text{'linux_swapfile'};
	printf "<input name=lnx_other size=35 value='%s'><br>\n",
		$found ? "" : $_[1];
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "smbfs") {
	# Windows filesystem
	$_[1] =~ /^\\\\(.*)\\(.*)$/;
	print "<tr> <td><b>$text{'linux_smbserver'}</b></td>\n";
	print "<td><input name=smbfs_server value=\"$1\" size=20>\n";
	&smb_server_chooser_button("smbfs_server");
	print "</td>\n";
	print "<td><b>$text{'linux_smbshare'}</b></td>\n";
	print "<td><input name=smbfs_share value=\"$2\" size=20>\n";
	&smb_share_chooser_button("smbfs_server", "smbfs_share");
	print "</td> </tr>\n";
	}
else {
	# This is some linux disk-based filesystem
	&foreign_require("fdisk", "fdisk-lib.pl");
	printf "<tr> <td valign=top><b>%s</b></td>\n", &fstype_name($_[0]);
	print "<td colspan=3>\n";
	local ($found, $rfound, $lfound, $rsel, $c);
	local $sel = &foreign_call("fdisk", "partition_select", "lnx_disk",
				   $_[1], 0, \$found);
	printf "<input type=radio name=lnx_dev value=0 %s> %s %s<br>\n",
		$found ? "checked" : "", $text{'linux_disk'}, $sel;

	if (&foreign_check("raid")) {
		&foreign_require("raid", "raid-lib.pl");
		local $conf = &foreign_call("raid", "get_raidtab");
		foreach $c (@$conf) {
			if ($c->{'active'}) {
				$rsel .= sprintf "<option value=%s %s>%s\n",
					$c->{'value'},
					$_[1] eq $c->{'value'} ? 'selected' : '',
					&text('linux_rdev', substr($c->{'value'}, -1));
				$rfound++ if ($_[1] eq $c->{'value'});
				}
			}
		if ($rsel) {
			printf "<input type=radio name=lnx_dev value=2 %s> %s\n",
				$rfound ? "checked" : " ", $text{'linux_raid'};
			print "<select name=lnx_raid>\n",$rsel,"</select><br>\n";
			}
		}

	if ($has_e2label) {
		local $l = $_[1] =~ /LABEL=(.*)/ ? $1 : undef;
		local $esel = &foreign_call("fdisk", "label_select",
					    "lnx_label", $l, \$lfound);
		if ($esel) {
			printf "<input type=radio name=lnx_dev value=3 %s> %s %s<br>\n", $lfound ? "checked" : "", $text{'linux_lsel'}, $esel;
			}
		}

	printf "<input type=radio name=lnx_dev value=1 %s> %s\n",
		$found || $rfound || $lfound ? "" : "checked", $text{'linux_other'};
	printf "<input name=lnx_other size=35 value='%s'><br>\n",
		$found || $rfound || $lfound ? "" : $_[1];
	print "</td> </tr>\n";
	}
}


# generate_options(type, newmount)
# Output HTML for editing mount options for a particular filesystem 
# under this OS
sub generate_options
{
if ($_[0] ne "swap" && $_[0] ne "auto" &&
    $_[0] ne "autofs" && $_[0] ne "smbfs") {
	# Lots of options are common to all linux filesystems
	print "<tr> <td><b>$text{'linux_ro'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_ro value=1 %s> $text{'yes'}\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=lnx_ro value=0 %s> $text{'no'}</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>$text{'linux_sync'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_sync value=0 %s> $text{'yes'}\n",
		defined($options{"sync"}) ? "" : "checked";
	printf "<input type=radio name=lnx_sync value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"sync"}) ? "checked" : "";

	print "<tr> <td><b>$text{'linux_nodev'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_nodev value=0 %s> $text{'yes'}\n",
		defined($options{"nodev"}) ? "" : "checked";
	printf "<input type=radio name=lnx_nodev value=1 %s> $text{'no'}</td>\n",
		defined($options{"nodev"}) ? "checked" : "";

	print "<td><b>$text{'linux_noexec'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_noexec value=0 %s> $text{'yes'}\n",
		defined($options{"noexec"}) ? "" : "checked";
	printf "<input type=radio name=lnx_noexec value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"noexec"}) ? "checked" : "";

	print "<tr> <td><b>$text{'linux_nosuid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_nosuid value=1 %s> $text{'yes'}\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=lnx_nosuid value=0 %s> $text{'no'}</td>\n",
		defined($options{"nosuid"}) ? "" : "checked";

	print "<td><b>$text{'linux_user'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_user value=1 %s> $text{'yes'}\n",
		defined($options{"user"}) ? "checked" : "";
	printf "<input type=radio name=lnx_user value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"user"}) ? "" : "checked";
	}
	
if ($_[0] eq "ext2") {
	# Ext2 has lots more options..
	print "<tr> <td><b>$text{'linux_check'}</b></td>\n";
	print "<td><select name=ext2_check>\n";
	printf "<option value=normal %s> $text{'linux_normal'}\n",
		$options{"check"} eq "" || $options{"check"} eq "normal" ?
			"selected" : "";
	printf "<option value=strict %s> $text{'linux_strict'}\n",
		$options{"check"} eq "strict" ? "selected" : "";
	printf "<option value=none %s> $text{'linux_none'}\n",
		$options{"check"} eq "none" || defined($options{"nocheck"}) ?
			"selected" : "";
	print "</select></td>\n";

	print "<td><b>$text{'linux_errors'}</b></td>\n";
	print "<td><select name=ext2_errors>\n";
	printf "<option value=default %s> $text{'default'}\n",
		!defined($options{"errors"}) ? "selected" : "";
	printf "<option value=continue %s> $text{'linux_continue'}\n",
		$options{"error"} eq "continue" ? "selected" : "";
	printf "<option value=remount-ro %s> $text{'linux_remount_ro'}\n",
		$options{"error"} eq "remount-ro" ? "selected" : "";
	printf "<option value=panic %s> $text{'linux_panic'}\n",
		$options{"error"} eq "panic" ? "selected" : "";
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_grpid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=ext2_grpid value=0 %s> $text{'yes'}\n",
		defined($options{"grpid"}) || defined($options{"bsdgroups"}) ?
			"" : "checked";
	printf "<input type=radio name=ext2_grpid value=1 %s> $text{'no'}</td>\n",
		defined($options{"grpid"}) || defined($options{"bsdgroups"}) ?
			"checked" : "";

	print "<td><b>$text{'linux_quotas'}</b></td>\n";
	local $usrquota = defined($options{"usrquota"});
	local $grpquota = defined($options{"grpquota"});
	print "<td nowrap><select name=ext2_quota>\n";
	printf "<option value=0 %s> $text{'no'}\n",
		$usrquota || $grpquota ? "" : "selected";
	printf "<option value=1 %s> $text{'linux_usrquota'}\n",
		$usrquota && !$grpquota ? "selected" : "";
	printf "<option value=2 %s> $text{'linux_grpquota'}\n",
		$grpquota && !$usrquota ? "selected" : "";
	if (`uname -r` =~ /^2\.0\.(\d+)/ && $1 < 31) {
		printf "<option value=3 %s> $text{'linux_usrgrpquota2'}\n",
			$usrquota && $grpquota ? "selected" : "";
		}
	else {
		printf "<option value=3 %s> $text{'linux_usrgrpquota'}\n",
			$usrquota && $grpquota ? "selected" : "";
		}
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_resuid'}</b></td>\n";
	printf "<td><input name=ext2_resuid size=8 value=\"%s\">\n",
		defined($options{"resuid"}) ? getpwuid($options{"resuid"}) : "";
	print &user_chooser_button("ext2_resuid", 0),"</td>\n";

	print "<td><b>$text{'linux_resgid'}</b></td>\n";
	printf "<td><input name=ext2_resgid size=8 value=\"%s\">\n",
		defined($options{"resgid"}) ? getgrgid($options{"resgid"}) : "";
	print &group_chooser_button("ext2_resgid", 0),"</td> </tr>\n";
	}
elsif ($_[0] eq "nfs") {
	# Linux nfs has some more options...
	print "<tr> <td><b>$text{'linux_bg'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_bg value=1 %s> $text{'yes'}\n",
		defined($options{"bg"}) ? "checked" : "";
	printf "<input type=radio name=nfs_bg value=0 %s> $text{'no'}</td>\n",
		defined($options{"bg"}) ? "" : "checked";

	print "<td><b>$text{'linux_soft'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_soft value=1 %s> $text{'yes'}\n",
		defined($options{"soft"}) ? "checked" : "";
	printf "<input type=radio name=nfs_soft value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"soft"}) ? "" : "checked";

	print "<tr> <td><b>$text{'linux_timeo'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_timeo_def value=1 %s> $text{'default'}\n",
		defined($options{"timeo"}) ? "" : "checked";
	printf "<input type=radio name=nfs_timeo_def value=0 %s>\n",
		defined($options{"timeo"}) ? "checked" : "";
	printf "<input size=5 name=nfs_timeo value=$options{timeo}></td>\n";

	print "<td><b>$text{'linux_retrans'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_retrans_def value=1 %s> $text{'default'}\n",
		defined($options{"retrans"}) ? "" : "checked";
	printf "<input type=radio name=nfs_retrans_def value=0 %s>\n",
		defined($options{"retrans"}) ? "checked" : "";
	print "<input size=5 name=nfs_retrans value=$options{retrans}></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_vers'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_vers_def value=1 %s> $text{'linux_high'}\n",
		defined($options{"nfsvers"}) ? "" : "checked";
	printf "<input type=radio name=nfs_vers_def value=0 %s>\n",
		defined($options{"nfsvers"}) ? "checked" : "";
	print "<input size=1 name=nfsvers value=$options{nfsvers}></td>\n";

	print "<td><b>$text{'linux_port'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_port_def value=1 %s> $text{'default'}\n",
		defined($options{"port"}) ? "" : "checked";
	printf "<input type=radio name=nfs_port_def value=0 %s>\n",
		defined($options{"port"}) ? "checked" : "";
	print "<input size=5 name=nfs_port value=$options{port}></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_intr'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_intr value=1 %s> $text{'yes'}\n",
		defined($options{"intr"}) ? "checked" : "";
	printf "<input type=radio name=nfs_intr value=0 %s> $text{'no'}</td>\n",
		defined($options{"intr"}) ? "" : "checked";

	print "<td><b>$text{'linux_tcp'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_tcp value=1 %s> TCP\n",
		defined($options{"tcp"}) ? "checked" : "";
	printf "<input type=radio name=nfs_tcp value=0 %s> UDP</td> </tr>\n",
		defined($options{"tcp"}) ? "" : "checked";
	}
elsif ($_[0] eq "fat" || $_[0] eq "vfat" || $_[0] eq "msdos" || $_[0] eq "umsdos"){
	# All dos-based filesystems share some options
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=fat_uid size=8 value=\"%s\">\n",
		defined($options{'uid'}) ? getpwuid($options{'uid'}) : "";
	print &user_chooser_button("fat_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=fat_gid size=8 value=\"%s\">\n",
		defined($options{'gid'}) ? getgrgid($options{'gid'}) : "";
	print &group_chooser_button("fat_gid", 0),"</td> </tr>\n";

	print "<tr> <td><b>$text{'linux_rules'}</b></td>\n";
	print "<td><select name=fat_check>\n";
	printf "<option value=\"\" %s> $text{'default'}\n",
		defined($options{"check"}) ? "" : "selected";
	printf "<option value=r %s> $text{'linux_relaxed'}\n",
		$options{"check"} =~ /^r/ ? "selected" : "";
	printf "<option value=n %s> $text{'linux_normal'}\n",
		$options{"check"} =~ /^n/ ? "selected" : "";
	printf "<option value=s %s> $text{'linux_strict'}\n",
		$options{"check"} =~ /^s/ ? "selected" : "";
	print "</select></td>\n";

	print "<td><b>$text{'linux_conv'}</b></td>\n";
	print "<td><select name=fat_conv>\n";
	printf "<option value=\"\" %s> $text{'linux_none'}\n",
		$options{"conv"} =~ /^b/ || !defined($options{"conv"}) ?
		"selected" : "";
	printf "<option value=t %s> $text{'linux_allfiles'}\n",
		$options{"conv"} =~ /^t/ ? "selected" : "";
	printf "<option value=a %s> $text{'linux_textfiles'}\n",
		$options{"conv"} =~ /^a/ ? "selected" : "";
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_umask'}</b></td>\n";
	printf "<td><input type=radio name=fat_umask_def value=1 %s> $text{'default'}\n",
		defined($options{"umask"}) ? "" : "checked";
	printf "<input type=radio name=fat_umask_def value=0 %s>\n",
		defined($options{"umask"}) ? "checked" : "";
	print "<input size=5 name=fat_umask value=\"$options{umask}\"></td>\n";

	print "<td><b>$text{'linux_quiet'}</b></td>\n";
	printf "<td nowrap><input type=radio name=fat_quiet value=0 %s> $text{'yes'}\n",
		defined($options{"quiet"}) ? "" : "checked";
	printf "<input type=radio name=fat_quiet value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"quiet"}) ? "checked" : "";

	if ($_[0] eq "vfat") {
		# vfat has some extra options beyond fat
		print "<tr> <td><b>$text{'linux_uni_xlate'}</b></td>\n";
		printf "<td><input type=radio name=fat_uni_xlate value=1 %s> $text{'yes'}\n",
			defined($options{"uni_xlate"}) ? "checked" : "";
		printf "<input type=radio name=fat_uni_xlate value=0 %s> $text{'no'}</td>\n",
			defined($options{"uni_xlate"}) ? "" : "checked";

		print "<td><b>$text{'linux_posix'}</b></td>\n";
		printf "<td nowrap><input type=radio name=fat_posix value=1 %s> $text{'yes'}\n",
			defined($options{"posix"}) ? "checked" : "";
		printf "<input type=radio name=fat_posix value=0 %s> $text{'no'}</td> </tr>\n",
			defined($options{"posix"}) ? "" : "checked";
		}
	}
elsif ($_[0] eq "hpfs") {
	# OS/2 filesystems has some more options..
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=hpfs_uid size=8 value=\"%s\">\n",
		defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
	print &user_chooser_button("hpfs_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=hpfs_gid size=8 value=\"%s\">\n",
		defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
	print &group_chooser_button("hpfs_gid", 0),"</td> </tr>\n";

	print "<tr> <td><b>$text{'linux_umask'}</b></td>\n";
	printf"<td><input type=radio name=hpfs_umask_def value=1 %s> Default\n",
		defined($options{"umask"}) ? "" : "checked";
	printf "<input type=radio name=hpfs_umask_def value=0 %s>\n",
		defined($options{"umask"}) ? "checked" : "";
	print "<input size=5 name=hpfs_umask value=\"$options{umask}\"></td>\n";

	print "<td><b>$text{'linux_conv2'}</b></td>\n";
	print "<td><select name=hpfs_conv>\n";
	printf "<option value=b %s> $text{'linux_none'}\n",
		$options{"conv"} =~ /^b/ || !defined($options{"conv"}) ?
		"selected" : "";
	printf "<option value=t %s> $text{'linux_allfiles'}\n",
		$options{"conv"} =~ /^t/ ? "selected" : "";
	printf "<option value=a %s> $text{'linux_textfiles'}\n",
		$options{"conv"} =~ /^a/ ? "selected" : "";
	print "</select></td> </tr>\n";
	}
elsif ($_[0] eq "iso9660") {
	# CD-ROM filesystems have some more options..
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=iso9660_uid size=8 value=\"%s\">\n",
		defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
	print &user_chooser_button("iso9660_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=iso9660_gid size=8 value=\"%s\">\n",
		defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
	print &group_chooser_button("iso9660_gid", 0),"</td>\n";

	print "<tr> <td><b>$text{'linux_rock'}</b></td>\n";
	printf "<td><input type=radio name=iso9660_norock value=1 %s> $text{'yes'}\n",
		defined($options{"norock"}) ? "checked" : "";
	printf "<input type=radio name=iso9660_norock value=0 %s> $text{'no'}</td>\n",
		defined($options{"norock"}) ? "" : "checked";

	print "<td><b>$text{'linux_mode'}</b></td>\n";
	printf"<td><input size=10 name=iso9660_mode value=\"%s\"></td> </tr>\n",
		defined($options{"mode"}) ? $options{"mode"} : "444";
	}
elsif ($_[0] eq "auto") {
	# Don't know how to set options for auto filesystems yet..
	print "<tr> <td><i>$text{'linux_noopts'}</i></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	print "<tr> <td><b>$text{'linux_timeout'}</b></td> <td>\n";
	printf"<input type=radio name=autofs_timeout_def value=1 %s> $text{'default'}\n",
		defined($options{'timeout'}) ? "" : "checked";
	printf "<input type=radio name=autofs_timeout_def value=0 %s>\n",
		defined($options{'timeout'}) ? "checked" : "";
	printf "<input name=autofs_timeout size=5 value=\"%s\"> $text{'linux_secs'}</td>\n",
		$options{'timeout'};

	print "<td><b>$text{'linux_pid_file'}</b>?</td>\n";
	printf"<td><input type=radio name=autofs_pid-file_def value=1 %s> $text{'no'}\n",
		defined($options{'pid-file'}) ? "" : "checked";
	printf "<input type=radio name=autofs_pid-file_def value=0 %s> $text{'yes'}\n",
		defined($options{'pid-file'}) ? "checked" : "";
	printf "<input name=autofs_pid-file size=20 value=\"%s\">\n",
		$options{'pid-file'};
	print &file_chooser_button("autofs_pid-file", 1);
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swap has no options..
	print "<tr> <td><i>$text{'linux_noopts'}</i></td> </tr>\n";
	}
elsif ($_[0] eq "smbfs") {
	# SMB filesystems have a few options..
	if (keys(%options) == 0 && !$_[1]) {
		print "<tr> <td colspan=4><i>$text{'linux_smbwarn'}</i></td> </tr>\n";
		}

	print "<tr> <td><b>$text{'linux_username'}</b></td>\n";
	printf "<td><input name=smbfs_user size=15 value=\"%s\"></td>\n",
		$smbfs_support == 4 ? $options{'username'} : $options{'user'};

	print "<td><b>$text{'linux_password'}</b></td>\n";
	printf "<td><input type=password name=smbfs_passwd size=15 value=\"%s\"></td> </tr>\n",
		$smbfs_support == 4 ? $options{'password'} : $options{'passwd'};

	if ($smbfs_support != 2) {
		print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
		printf "<td><input name=smbfs_uid size=8 value=\"%s\">\n",
			defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
		print &user_chooser_button("smbfs_uid", 0),"</td>\n";

		print "<td><b>$text{'linux_gid'}</b></td>\n";
		printf "<td><input name=smbfs_gid size=8 value=\"%s\">\n",
			defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
		print &group_chooser_button("smbfs_gid", 0),"</td>\n";
		}

	if ($smbfs_support == 1) {
		print "<tr> <td><b>$text{'linux_sname'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_sname_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"servername"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_sname_def value=0 %s>\n",
			defined($options{"servername"}) ? "checked" : "";
		print "<input size=10 name=smbfs_sname value=\"$options{servername}\"></td>\n";
		}
	elsif ($smbfs_support == 2) {
		print "<tr> <td><b>$text{'linux_wg'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_wg_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"workgroup"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_wg_def value=0 %s>\n",
			defined($options{"workgroup"}) ? "checked" : "";
		print "<input size=10 name=smbfs_wg value=\"$options{'workgroup'}\"></td>\n";
		}

	if ($smbfs_support < 3) {
		print "<td><b>$text{'linux_cname'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_cname_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"clientname"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_cname_def value=0 %s>\n",
			defined($options{"clientname"}) ? "checked" : "";
		print "<input size=10 name=smbfs_cname value=\"$options{clientname}\"></td> </tr>\n";

		print "<tr> <td><b>$text{'linux_mname'}</b></td>\n";
		printf "<td colspan=3><input type=radio name=smbfs_mname_def value=1 %s> %s\n",
			defined($options{"machinename"}) ? "" : "checked", $text{'linux_auto'};
		printf "<input type=radio name=smbfs_mname_def value=0 %s>\n",
			defined($options{"machinename"}) ? "checked" : "";
		print "<input size=30 name=smbfs_mname value=\"$options{machinename}\"></td> </tr>\n";
		}

	if ($smbfs_support == 1) {
		print "<tr> <td><b>$text{'linux_fmode'}</b></td>\n";
		printf
		    "<td><input name=smbfs_fmode size=5 value=\"%s\"></td>\n",
		    defined($options{'fmode'}) ? $options{'fmode'} : "755";

		print "<td><b>$text{'linux_dmode'}</b></td>\n";
		printf
		    "<td><input name=smbfs_dmode size=5 value=\"%s\"></td>\n",
		    defined($options{'dmode'}) ? $options{'dmode'} : "755";
		print "</tr>\n";
		}
	elsif ($smbfs_support >= 3) {
		print "<tr> <td><b>$text{'linux_ro'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_ro value=1 %s> $text{'yes'}\n",
			defined($options{"ro"}) ? "checked" : "";
		printf "<input type=radio name=smbfs_ro value=0 %s> $text{'no'}</td>\n",
			defined($options{"ro"}) ? "" : "checked";

		print "<td><b>$text{'linux_user'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_user2 value=1 %s> $text{'yes'}\n",
			defined($options{"user"}) ? "checked" : "";
		printf "<input type=radio name=smbfs_user2 value=0 %s> $text{'no'}</td> </tr>\n",
			defined($options{"user"}) ? "" : "checked";
		}
	}
elsif ($_[0] eq "reiserfs") {
	# Reiserfs is a new super-efficient filesystem
	print "<tr> <td><b>$text{'linux_notail'}</b></td>\n";
	printf "<td><input type=radio name=lnx_notail value=1 %s> $text{'yes'}\n",
		defined($options{"notail"}) ? "checked" : "";
	printf "<input type=radio name=lnx_notail value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"notail"}) ? "" : "checked";
	}
}


# check_location(type)
# Parse and check inputs from %in, calling &error() if something is wrong.
# Returns the location string for storing in the fstab file
sub check_location
{
if ($_[0] eq "nfs") {
	local($out, $temp, $mout, $dirlist);

	if (&has_command("showmount")) {
		# Use ping and showmount to see if the host exists and is up
		if ($in{nfs_host} !~ /^\S+$/) {
			&error(&text('linux_ehost', $in{'nfs_host'}));
			}
		$out = `ping -c 1 '$in{nfs_host}' 2>&1`;
		if ($out =~ /unknown host/) {
			&error(&text('linux_ehost2', $in{'nfs_host'}));
			}
		elsif ($out =~ /100\% packet loss/) {
			&error(&text('linux_edown', $in{'nfs_host'}));
			}
		$out = `showmount -e '$in{nfs_host}' 2>&1`;
		if ($out =~ /Unable to receive/) {
			&error(&text('linux_enfs', $in{'nfs_host'}));
			}
		elsif ($?) {
			&error(&text('linux_elist', $out));
			}

		# Validate directory name
		foreach (split(/\n/, $out)) {
			if (/^(\/\S+)/) { $dirlist .= "$1\n"; }
			}
		if ($in{nfs_dir} !~ /^\/\S+$/) {
			&error(&text('linux_enfsdir', $in{'nfs_dir'},
				     $in{'nfs_host'}, "<pre>$dirlist</pre>"));
			}
		}

	# Try a test mount to see if filesystem is available
	$temp = &tempname();
	mkdir($temp, 0755);
	$mout = `mount $in{nfs_host}:$in{nfs_dir} $temp 2>&1`;
	if ($mout =~ /No such file or directory/i) {
		rmdir($temp);
		&error(&text('linux_enfsdir', $in{'nfs_dir'},
			     $in{'nfs_host'}, "<pre>$dirlist</pre>"));
		}
	elsif ($mout =~ /Permission denied/i) {
		rmdir($temp);
		&error(&text('linux_enfsperm', $in{'nfs_dir'}, $in{'nfs_host'}));
		}
	elsif ($?) {
		rmdir($temp);
		&error(&text('linux_enfsmount', "<tt>$mout</tt>"));
		}
	# It worked! unmount
	`umount $temp`;
	rmdir($temp);

	return "$in{nfs_host}:$in{nfs_dir}";
	}
elsif ($_[0] eq "auto") {
	# Check if the automounter map exists..
	(-r $in{auto_map}) || &error(&text('linux_eautomap', $in{'auto_map'}));
	return $in{auto_map};
	}
elsif ($_[0] eq "autofs") {
	# Check if the map exists (if it is a file)
	if ($in{'autofs_map'} =~ /^\// && !(-r $in{'autofs_map'})) {
		&error(&text('linux_eautomap', $in{'autofs_map'}));
		}
	return $in{autofs_map};
	}
elsif ($_[0] eq "smbfs") {
	# No checking done
	return "\\\\".lc($in{'smbfs_server'})."\\".lc($in{'smbfs_share'});
	}
else {
	# This is some kind of disk-based linux filesystem.. get the device name
	if ($in{'lnx_dev'} == 0) {
		$dv = $in{'lnx_disk'};
		}
	elsif ($in{'lnx_dev'} == 2) {
		$dv = $in{'lnx_raid'};
		}
	elsif ($in{'lnx_dev'} == 3) {
		$dv = "LABEL=".$in{'lnx_label'};
		}
	else {
		$dv = $in{'lnx_other'};
		$dv || &error($text{'linux_edev'});
		}

	# If the device entered is a symlink, follow it
	#if ($dvlink = readlink($dv)) {
	#	if ($dvlink =~ /^\//) { $dv = $dvlink; }
	#	else {	$dv =~ /^(.*\/)[^\/]+$/;
	#		$dv = $1.$dvlink;
	#		}
	#	}

	# Check if the device actually exists and uses the right filesystem
	if (!-r $dv && $dv !~ /LABEL=/) {
		if ($_[0] eq "swap" && $dv !~ /\/dev/) {
			&swap_form($dv);
			}
		else {
			&error(&text('linux_edevfile', $dv));
			}
		}
	return $dv;
	}
}

# check_options(type, device, directory)
# Read options for some filesystem from %in, and use them to update the
# %options array. Options handled by the user interface will be set or
# removed, while unknown options will be left untouched.
sub check_options
{
local($k, @rv);

# Parse the common options first..
if ($_[0] ne "swap" && $_[0] ne "auto" &&
    $_[0] ne "autofs" && $_[0] ne "smbfs") {
	delete($options{"ro"}); delete($options{"rw"});
	if ($in{lnx_ro}) { $options{"ro"} = ""; }

	delete($options{"sync"}); delete($options{"async"});
	if ($in{lnx_sync}) { $options{"sync"} = ""; }

	delete($options{"dev"}); delete($options{"nodev"});
	if ($in{lnx_nodev}) { $options{"nodev"} = ""; }

	delete($options{"exec"}); delete($options{"noexec"});
	if ($in{lnx_noexec}) { $options{"noexec"} = ""; }

	delete($options{"suid"}); delete($options{"nosuid"});
	if ($in{lnx_nosuid}) { $options{"nosuid"} = ""; }

	delete($options{"user"}); delete($options{"nouser"});
	if ($in{lnx_user}) { $options{"user"} = ""; }
	}

if ($_[0] eq "nfs") {
	# NFS has a few specific options..
	delete($options{"bg"}); delete($options{"fg"});
	if ($in{nfs_bg}) { $options{"bg"} = ""; }

	delete($options{"soft"}); delete($options{"hard"});
	if ($in{nfs_soft}) { $options{"soft"} = ""; }

	delete($options{"timeo"});
	if (!$in{nfs_timeo_def}) { $options{"timeo"} = $in{nfs_timeo}; }

	delete($options{"nfsvers"});
	if (!$in{nfs_vers_def}) { $options{"nfsvers"} = $in{nfs_vers}; }

	delete($options{"port"});
	if (!$in{nfs_port_def}) { $options{"port"} = $in{nfs_port}; }

	delete($options{"intr"}); delete($options{"nointr"});
	if ($in{nfs_intr}) { $options{"intr"} = ""; }

	delete($options{"tcp"}); delete($options{"udp"});
	if ($in{nfs_tcp}) { $options{"tcp"} = ""; }
	}
elsif ($_[0] eq "ext2") {
	# More options for ext2..
	delete($options{"check"}); delete($options{"nocheck"});
	if ($in{ext2_check} ne "normal") {
		$options{"check"} = $in{ext2_check};
		}

	delete($options{"errors"});
	if ($in{ext2_errors} ne "default") {
		$options{"errors"} = $in{ext2_errors};
		}

	delete($options{"grpid"}); delete($options{"bsdgroups"});
	delete($options{"sysvgroups"}); delete($options{"nogrpid"});
	if ($in{ext2_grpid}) {
		$options{"grpid"} = "";
		}

	delete($options{"resuid"}); delete($options{"resgid"});
	if ($in{'ext2_resuid'})
		{ $options{"resuid"} = getpwnam($in{'ext2_resuid'}); }
	if ($in{'ext2_resgid'})
		{ $options{"resgid"} = getgrnam($in{'ext2_resgid'}); }

	delete($options{"quota"}); delete($options{"noquota"});
	delete($options{"usrquota"}); delete($options{"grpquota"});
	if ($in{'ext2_quota'} == 1) { $options{'usrquota'} = ""; }
	elsif ($in{'ext2_quota'} == 2) { $options{'grpquota'} = ""; }
	elsif ($in{'ext2_quota'} == 3)
		{ $options{'usrquota'} = $options{'grpquota'} = ""; }
	}
elsif ($_[0] eq "fat" || $_[0] eq "vfat" ||
       $_[0] eq "msdos" || $_[0] eq "umsdos") {
	# All dos-based filesystems have similar options
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{fat_uid} ne "") { $options{"uid"} = getpwnam($in{'fat_uid'}); }
	if ($in{fat_gid} ne "") { $options{"gid"} = getgrnam($in{'fat_gid'}); }

	delete($options{"check"});
	if ($in{fat_check} ne "") { $options{"check"} = $in{fat_check}; }

	delete($options{"conv"});
	if ($in{fat_conv} ne "") { $options{"conv"} = $in{fat_conv}; }

	delete($options{"umask"});
	if (!$in{fat_umask_def}) {
		$in{fat_umask} =~ /^[0-7]{3}$/ ||
			&error(&text('linux_emask', $in{'fat_umask'}));
		$options{"umask"} = $in{fat_umask};
		}

	delete($options{"quiet"});
	if ($in{fat_quiet}) {
		$options{"quiet"} = "";
		}

	if ($_[0] eq "vfat") {
		# Parse extra vfat options..
		delete($options{"uni_xlate"});
		if ($in{fat_uni_xlate}) { $options{"uni_xlate"} = ""; }

		delete($options{"posix"});
		if ($in{fat_posix}) { $options{"posix"} = ""; }
		}
	}
elsif ($_[0] eq "hpfs") {
	# OS/2 filesystem options..
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{hpfs_uid} ne "") { $options{"uid"} = getpwnam($in{hpfs_uid}); }
	if ($in{hpfs_gid} ne "") { $options{"gid"} = getgrnam($in{hpfs_gid}); }

	delete($options{"umask"});
	if (!$in{hpfs_umask_def}) {
		$in{hpfs_umask} =~ /^[0-7]{3}$/ ||
			&error(&text('linux_emask', $in{'hpfs_umask'}));
		$options{"umask"} = $in{hpfs_umask};
		}

	delete($options{"conv"});
	if ($in{hpfs_conv} ne "") { $options{"conv"} = $in{hpfs_conv}; }
	}
elsif ($_[0] eq "iso9660") {
	# Options for iso9660 cd-roms
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{iso9660_uid} ne "")
		{ $options{"uid"} = getpwnam($in{iso9660_uid}); }
	if ($in{iso9660_gid} ne "")
		{ $options{"gid"} = getgrnam($in{iso9660_gid}); }

	delete($options{"norock"});
	if ($in{iso9660_norock}) { $options{"norock"} = ""; }

	delete($options{"mode"});
	$in{iso9660_mode} =~ /^[0-7]{3}$/ ||
		&error(&text('linux_emask', $in{'iso9660_mode'}));
	$options{"mode"} = $in{iso9660_mode};
	}
elsif ($_[0] eq "autofs") {
	# Options for automounter filesystems
	delete($options{'timeout'});
	if (!$in{'autofs_timeout_def'}) {
		$in{'autofs_timeout'} =~ /^\d+$/ ||
			&error(&text('linux_etimeout', $in{'autofs_timeout'}));
		$options{'timeout'} = $in{'autofs_timeout'};
		}
	delete($options{'pid-file'});
	if (!$in{'autofs_pid-file_def'}) {
		$in{'autofs_pid-file'} =~ /^\/\S+$/ ||
		       &error(&text('linux_epidfile', $in{'autofs_pid-file'}));
		$options{'pid-file'} = $in{'autofs_pid-file'};
		}
	}
elsif ($_[0] eq "smbfs") {
	# Options for smb filesystems..
	delete($options{'user'}); delete($options{'username'});
	if ($in{smbfs_user}) {
		$options{$smbfs_support == 4 ? 'username' : 'user'} = $in{smbfs_user};
		}

	delete($options{'passwd'}); delete($options{'password'});
	if ($in{smbfs_passwd}) {
		$options{$smbfs_support == 4 ? 'password' : 'passwd'} = $in{smbfs_passwd};
		}

	if ($smbfs_support != 2) {
		delete($options{uid});
		if ($in{smbfs_uid} ne "") { $options{uid} = getpwnam($in{smbfs_uid}); }

		delete($options{gid});
		if ($in{smbfs_gid} ne "") { $options{gid} = getgrnam($in{smbfs_gid}); }
		}

	if ($smbfs_support == 1) {
		delete($options{servername});
		if (!$in{smbfs_sname_def})
			{ $options{servername} = $in{smbfs_sname}; }
		}
	elsif ($smbfs_support == 2) {
		delete($options{workgroup});
		if (!$in{smbfs_wg_def})
			{ $options{workgroup} = $in{smbfs_wg}; }
		}

	if ($smbfs_support < 3) {
		delete($options{clientname});
		if (!$in{smbfs_cname_def})
			{ $options{clientname} = $in{smbfs_cname}; }

		delete($options{machinename});
		if (!$in{smbfs_mname_def})
			{ $options{machinename} = $in{smbfs_mname}; }
		elsif (!gethostbyname($in{'smbfs_server'})) {
			# No hostname found for the server.. try to guess
			local($out, $sname);
			$sname = $in{'smbfs_server'};
			$out = `$config{'nmblookup_path'} -d 0 $sname 2>&1`;
			if (!$? && $out =~ /^([0-9\.]+)\s+$sname\n/) {
				$options{machinename} = $1;
				}
			}
		}

	if ($smbfs_support == 1) {
		delete($options{fmode});
		if ($in{smbfs_fmode} !~ /^[0-7]{3}$/) {
			&error(&text('linux_efmode', $in{'smbfs_fmode'}));
			}
		elsif ($in{smbfs_fmode} ne "755")
			{ $options{fmode} = $in{smbfs_fmode}; }

		delete($options{dmode});
		if ($in{smbfs_dmode} !~ /^[0-7]{3}$/) {
			&error(&text('linux_edmode', $in{'smbfs_dmode'}));
			}
		elsif ($in{smbfs_dmode} ne "755")
			{ $options{dmode} = $in{smbfs_dmode}; }
		}
	elsif ($smbfs_support >= 3) {
		delete($options{'ro'}); delete($options{'rw'});
		if ($in{'smbfs_ro'}) { $options{'ro'} = ''; }

		delete($options{'user'});
		if ($in{'smbfs_user2'}) { $options{'user'} = ''; }
		}
	}
elsif ($_[0] eq "reiserfs") {
	# Save reiserfs options
	delete($options{'notail'});
	$options{'notail'} = "" if ($in{'lnx_notail'});
	}

# Add loop option if mounting a normal file
if ($_[0] ne "swap" && $_[0] ne "auto" && $_[0] ne "autofs" &&
    $_[0] ne "smbfs" && $_[0] ne "nfs") {
	local(@st);
	@st = stat($_[1]);
	if (@st && ($st[2] & 0xF000) == 0x8000) {
		# a regular file.. add the loop option
		if (!$options{'loop'}) {
			$options{'loop'} = "";
			}
		}
	}

# Return options string
foreach $k (keys %options) {
	if ($options{$k} eq "") { push(@rv, $k); }
	else { push(@rv, "$k=$options{$k}"); }
	}
return @rv ? join(',' , @rv) : "-";
}


# Get the smbfs options from 'smbfs_opts' file in the current directory. This
# is sadly necessary because there is no way to get the current options for
# an existing smbfs mount... so webmin has to save them in a file when
# mounting. Blech.
sub read_smbopts
{
local($_);
open(SMBOPTS, "$module_config_directory/smbfs");
while(<SMBOPTS>) {
	/^(\S+)\s+(\S+)$/;
	$smbopts{$1} = $2;
	}
close(SMBOPTS);
}

sub write_smbopts
{
local($_);
open(SMBOPTS, "> $module_config_directory/smbfs");
foreach (keys %smbopts) {
	print SMBOPTS "$_\t$smbopts{$_}\n";
	}
close(SMBOPTS);
}


# create_swap(file, size, units)
# Calls dd and mkswap to setup a swap file
sub create_swap
{
local($out, $bl);
$bl = $_[1] * ($_[2] eq "m" ? 1024 : 1);
$out = `dd if=/dev/zero of=$_[0] bs=1024 count=$bl 2>&1`;
if ($?) { return "dd failed : $out"; }
$out = `mkswap $_[0] $bl 2>&1`;
if ($?) { return "mkswap failed : $out"; }
system("sync >/dev/null 2>&1");
return 0;
}

# exports_list(host, dirarray, clientarray)
# Fills the directory and client array references with exports from some
# host. Returns an error string if something went wrong
sub exports_list
{
local($dref, $cref, $out, $_);
$dref = $_[1]; $cref = $_[2];
$out = `showmount -e $_[0] 2>&1`;
if ($?) { return $out; }
foreach (split(/\n/, $out)) {
	if (/^(\/\S*)\s+(.*)$/) {
		push(@$dref, $1); push(@$cref, $2);
		}
	}
return undef;
}

# broadcast_addr()
# Returns a useable broadcast address for finding NFS servers
sub broadcast_addr
{
local($out);
$out = `ifconfig -a 2>&1`;
if ($out =~ /(eth|tr)\d\s+.*\n.*Bcast:(\S+)\s+/) { return $2; }
return "255.255.255.255";
}

# autofs_options(string)
# Converts a string of options line --timeout 60 to something like timeout=60
sub autofs_options
{
local(@options);
if ($_[0] =~ /--timeout\s+(\d+)/ || $_[0] =~ /-t\s+(\d+)/) {
	push(@options, "timeout=$1");
	}
if ($_[0] =~ /--pid-file\s+(\S+)/ || $_[0] =~ /-p\s+(\d+)/) {
	push(@options, "pid-file=$1");
	}
return join(',', @options);
}

# autofs_args(string)
# Convert a comma-separated options string into args for automount
sub autofs_args
{
local(%options, $args);
&parse_options("autofs", $_[0]);
if (defined($options{'timeout'})) {
	$args .= " --timeout $options{'timeout'}";
	}
if (defined($options{'pid-file'})) {
	$args .= " --pid-file $options{'pid-file'}";
	}
return $args;
}

# read_amd_conf()
# Returns the entire amd config file as a string
sub read_amd_conf
{
local $sl = $/;
$/ = undef;
open(AMD, $config{'auto_file'});
local $rv = <AMD>;
close(AMD);
$/ = $sl;
return $rv;
}

# write_amd_conf(text)
sub write_amd_conf
{
open(AMD, ">$config{'auto_file'}");
print AMD $_[0];
close(AMD);
}

# parse_amd_conf()
# Parses a new-style amd.conf file into a hashtable
sub parse_amd_conf
{
local (@rv, $str, $lnum);
open(AMD, $config{'auto_file'});
while(<AMD>) {
	s/\r|\n//g;
	s/#.*$//g;
	if (/\[\s*(\S+)\s*\]/) {
		$str = { 'dir' => $1,
			 'line' => $lnum,
			 'eline' => $lnum };
		push(@rv, $str);
		}
	elsif (/(\S+)\s*=\s*"(.*)"/ || /(\S+)\s*=\s*(\S+)/) {
		$str->{'opts'}->{$1} = $2;
		$str->{'eline'} = $lnum;
		}
	$lnum++;
	}
close(AMD);
return @rv;
}

# device_name(device)
# Converts a device name to a human-readable form
sub device_name
{
if (!$text{'select_part'}) {
	local %flang = &load_language('fdisk');
	$text{'select_part'} = $flang{'select_part'};
	$text{'select_mpart'} = $flang{'select_mpart'};
	$text{'select_device'} = $flang{'select_device'};
	$text{'select_fd'} = $flang{'select_fd'};
	}
return $_[0] =~ /^\/dev\/(s|h)d([a-z])(\d+)$/ ?
	&text('select_part', $1 eq 's' ? 'SCSI' : 'IDE', uc($2), "$3") :
       $_[0] =~ /^\/dev\/(s|h)d([a-z])$/ ?
	&text('select_device', $1 eq 's' ? 'SCSI' : 'IDE', uc($2)) :
       $_[0] =~ /rd\/c(\d+)d(\d+)p(\d+)$/ ?
	&text('select_mpart', "$1", "$2", "$3") :
       $_[0] =~ /fd(\d+)$/ ?
	&text('select_fd', "$1") :
       $_[0] =~ /md(\d+)$/ ?
	&text('linux_rdev', "$1") :
       $_[0] =~ /LABEL=(\S+)/i ?
	&text('linux_label', "$1") :
       $_[0] eq '/dev/cdrom' ?
	$text{'linux_cddev'} :
	$_[0];
}

sub files_to_lock
{
return ( $config{'fstab_file'}, $config{'autofs_file'}, $config{'auto_file'} );
}

1;

07070100007744000081e40000000000000002000000013ac0388d00005d0a000000200000000000000000000000000000001b00000003reloc/mount/openbsd-lib.pl    # openbsd-lib.pl
# Mount table functions for openbsd

# Return information about a filesystem, in the form:
#  directory, device, type, options, fsck_order, mount_at_boot
# If a field is unused or ignored, a - appears instead of the value.
# Swap-filesystems (devices or files mounted for VM) have a type of 'swap',
# and 'swap' in the directory field
sub list_mounts
{
local(@rv, @p, @o, $_, $i, $j); $i = 0;

# Get /etc/fstab mounts
open(FSTAB, $config{'fstab_file'});
while(<FSTAB>) {
	local(@o, $at_boot);
	chop; s/#.*$//g;
	if (!/\S/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "proc" || $p[2] eq "procfs") { $p[2] = $p[0] = "proc"; }
	if ($p[2] eq "swap") { $p[1] = "swap"; }
	$rv[$i] = [ $p[1], $p[0], $p[2] ];
	$rv[$i]->[5] = "yes";
	@o = split(/,/ , $p[3] eq "defaults" ? "" : $p[3]);
	if (($j = &indexof("noauto", @o)) >= 0) {
		# filesytem is not mounted at boot
		splice(@o, $j, 1);
		$rv[$i]->[5] = "no";
		}
	$rv[$i]->[3] = (@o ? join(',' , @o) : "-");
	$rv[$i]->[4] = (@p >= 5 ? $p[5] : 0);
	$i++;
	}
close(FSTAB);
return @rv;
}


# create_mount(directory, device, type, options, fsck_order, mount_at_boot)
# Add a new entry to the fstab file, old or new automounter file
sub create_mount
{
local(@mlist, @amd, $_); local($opts);

# Adding a normal mount to the fstab file
open(FSTAB, ">> $config{'fstab_file'}");
print FSTAB "$_[1]  $_[0]  $_[2]";
$opts = $_[3] eq "-" ? "" : $_[3];
if ($_[5] eq "no") {
	$opts = join(',' , (split(/,/ , $opts) , "noauto"));
	}
if ($opts eq "") { print FSTAB "  defaults"; }
else { print FSTAB "  $opts"; }
print FSTAB "  0  ";
print FSTAB $_[4] eq "-" ? "0\n" : "$_[4]\n";
close(FSTAB);
}


# change_mount(num, directory, device, type, options, fsck_order, mount_at_boot)
# Change an existing permanent mount
sub change_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $i++ == $_[0]) {
		# Found the line to replace
		print FSTAB "$_[2]  $_[1]  $_[3]";
		$opts = $_[4] eq "-" ? "" : $_[4];
		if ($_[6] eq "no") {
			$opts = join(',' , (split(/,/ , $opts) , "noauto"));
			}
		if ($opts eq "") { print FSTAB "  defaults"; }
		else { print FSTAB "  $opts"; }
		print FSTAB "  0  ";
		print FSTAB $_[5] eq "-" ? "0\n" : "$_[5]\n";
		}
	else { print FSTAB $_,"\n"; }
	}
close(FSTAB);
}


# delete_mount(index)
# Delete an existing permanent mount
sub delete_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line !~ /\S/ || $i++ != $_[0]) {
		# Don't delete this line
		print FSTAB $_,"\n";
		}
	}
close(FSTAB);
}


# list_mounted()
# Return a list of all the currently mounted filesystems and swap files.
# The list is in the form:
#  directory device type options
# Under OpenBSD, there seems to be no way to get additional mount options
# used by filesystems like NFS etc. Even getting the full details of mounted
# filesystems requires C code! So we have to call a specially-written external
# program to get the mount list
sub list_mounted
{
# get the list of mounted filesystems
local(@rv, $_);
open(CMD, "./openbsd-mounts-2 |");
while(<CMD>) {
	local @p = split(/\t/, $_);
	if ($p[2] eq "procfs" || $p[1] eq "procfs") { $p[1] = $p[2] = "proc"; }
	push(@rv, \@p);
	}
close(CMD);

# add output from swapinfo
foreach (split(/\n/, `swapinfo`)) {
	if (/^(\/\S+)\s+\d+\s+\d+/) {
		push(@rv, [ "swap", $1, "swap", "-" ]);
		}
	}
return @rv;
}


# mount_dir(directory, device, type, options)
# Mount a new directory from some device, with some options. Returns 0 if ok,
# or an error string if failed
sub mount_dir
{
local($out, $opts, $shar, %options, %smbopts);
if ($_[2] eq "swap") {
	# Use swapon to add the swap space..
	$out = &backquote_logged("swapon $_[1] 2>&1");
	if ($?) { return "<pre>$out</pre>"; }
	}
else {
	# some disk-based filesystem
	$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
	$opts = join(',', grep { !/quota/ } split(/,/, $opts));
	$out = &backquote_logged("mount -t $_[2] $opts $_[1] $_[0] 2>&1");
	if ($?) { return "<pre>$out</pre>"; }
	}
return 0;
}


# unmount_dir(directory, device, type)
# Unmount a directory that is currently mounted. Returns 0 if ok,
# or an error string if failed
sub unmount_dir
{
local($out, %smbopts, $dir);
if ($_[2] eq "swap") {
	# Not possible!
	&error("Swap space cannot be removed");
	}
else {
	$out = &backquote_logged("umount $_[0] 2>&1");
	if ($?) { return "<pre>$out</pre>"; }
	}
return 0;
}


# mount_modes(type)
# Given a filesystem type, returns 4 numbers that determine how the file
# system can be mounted, and whether it can be fsck'd
# The first is:
#  0 - cannot be permanently recorded
#	(smbfs under linux)
#  1 - can be permanently recorded, and is always mounted at boot
#	(swap under linux)
#  2 - can be permanently recorded, and may or may not be mounted at boot
#	(most normal filesystems)
# The second is:
#  0 - mount is always permanent => mounted when saved
#	(swap under linux)
#  1 - doesn't have to be permanent
#	(normal fs types)
# The third is:
#  0 - cannot be fsck'd at boot time
#  1 - can be be fsck'd at boot
# The fourth is:
#  0 - can be unmounted
#  1 - cannot be unmounted
sub mount_modes
{
if ($_[0] eq "swap")
	{ return (2, 1, 0, 1); }
elsif ($_[0] eq "ffs")
	{ return (2, 1, 1, 0); }
else
	{ return (2, 1, 0, 0); }
}


# disk_space(type, directory)
# Returns the amount of total and free space for some filesystem, or an
# empty array if not appropriate.
sub disk_space
{
if (&get_mounted($_[1], "*") < 0) { return (); }
if ($_[0] eq "proc" || $_[0] eq "swap") { return (); }
`df -k $_[1]` =~ /Mounted on\n\S+\s+(\S+)\s+\S+\s+(\S+)/;
return ($1, $2);
}


# list_fstypes()
# Returns an array of all the supported filesystem types. If a filesystem is
# found that is not one of the supported types, generate_location() and
# generate_options() will not be called for it.
sub list_fstypes
{
local @rv = ("ffs", "nfs", "cd9660", "msdos", "swap");
push(@rv, "ext2fs") if (&has_command("mount_ext2fs"));
return @rv;
}


# fstype_name(type)
# Given a short filesystem type, return a human-readable name for it
sub fstype_name
{
local(%fsmap);
%fsmap = ("ffs", "OpenBSD Unix Filesystem",
	  "nfs","Network Filesystem",
	  "cd9660","ISO9660 CD-ROM",
	  "msdos","MS-DOS Filesystem",
	  "ext2fs","Linux Filesystem",
	  "swap","Virtual Memory",
	  "proc","Process Image Filesystem");
return $config{long_fstypes} && $fsmap{$_[0]} ? $fsmap{$_[0]} : uc($_[0]);
}


# multiple_mount(type)
# Returns 1 if filesystems of this type can be mounted multiple times, 0 if not
sub multiple_mount
{
return $_[0] eq "nfs";
}


# generate_location(type, location)
# Output HTML for editing the mount location of some filesystem.
sub generate_location
{
if ($_[0] eq "nfs") {
	# NFS mount from some host and directory
	$_[1] =~ /^([^:]+):(.*)$/;
	print "<tr> <td><b>NFS Hostname</b></td>\n";
	print "<td><input name=nfs_host size=20 value=\"$1\">\n";
	&nfs_server_chooser_button("nfs_host");
	print "</td>\n";
	print "<td><b>NFS Directory</b></td>\n";
	print "<td><input name=nfs_dir size=20 value=\"$2\">\n";
	&nfs_export_chooser_button("nfs_host", "nfs_dir");
	print "</td> </tr>\n";
	}
else {
	if ($_[0] eq "swap") {
		# Swap file or device
		printf "<tr> <td valign=top><b>Swap File</b></td>\n";
		}
	else {
		# Disk-based filesystem
		printf "<tr> <td valign=top><b>%s Disk</b></td>\n",
			&fstype_name($_[0]);
		}
	print "<td colspan=3>\n";
	if ($_[1] =~ /^\/dev\/wd(\d)s(\d)([a-z]*)$/) {
		$disk_dev = 0; $ide_t = $1; $ide_s = $2; $ide_p = $3;
		}
	elsif ($_[1] =~ /^\/dev\/sd(\d)s(\d)([a-z]*)$/) {
		$disk_dev = 1; $scsi_t = $1; $scsi_s = $2; $scsi_p = $3;
		}
	else { $disk_dev = 2; }

	printf "<input type=radio name=disk_dev value=0 %s> IDE Hard Disk:\n",
		$disk_dev == 0 ? "checked" : "";
	print "Device <input name=ide_t size=3 value=\"$ide_t\">\n";
	print "Slice <input name=ide_s size=3 value=\"$ide_s\">\n";
	print "Partition <input name=ide_p size=3 value=\"$ide_p\"><br>\n";

	printf "<input type=radio name=disk_dev value=1 %s> SCSI Disk:\n",
		$disk_dev == 1 ? "checked" : "";
	print "Device <input name=scsi_t size=3 value=\"$scsi_t\">\n";
	print "Slice <input name=scsi_s size=3 value=\"$scsi_s\">\n";
	print "Partition <input name=scsi_p size=3 value=\"$scsi_p\"><br>\n";

	printf "<input type=radio name=disk_dev value=2 %s> Other Device:\n",
		$disk_dev == 2 ? "checked" : "";
	printf "<input size=20 name=dev_path value=\"%s\"><br>\n",
		$disk_dev == 2 ? $_[1] : "";
	print "</td> </tr>\n";
	}
}


# generate_options(type, newmount)
# Output HTML for editing mount options for a particular filesystem 
# under this OS
sub generate_options
{
if ($_[0] ne "swap") {
	# These options are common to all filesystems
	print "<tr> <td><b>Read-only?</b></td>\n";
	printf "<td nowrap><input type=radio name=bsd_ro value=1 %s> Yes\n",
		defined($options{"rdonly"}) || defined($options{"ro"})
			? "checked" : "";
	printf "<input type=radio name=bsd_ro value=0 %s> No</td>\n",
		defined($options{"rdonly"}) || defined($options{"ro"})
			? "" : "checked";

	print "<td><b>Buffer writes to filesystem?</b></td>\n";
	printf"<td nowrap><input type=radio name=bsd_sync value=0 %s> Yes\n",
		defined($options{"sync"}) ? "" : "checked";
	printf "<input type=radio name=bsd_sync value=1 %s> No</td> </tr>\n",
		defined($options{"sync"}) ? "checked" : "";

	print "<tr> <td><b>Allow device files?</b></td>\n";
	printf "<td nowrap><input type=radio name=bsd_nodev value=0 %s> Yes\n",
		defined($options{"nodev"}) ? "" : "checked";
	printf "<input type=radio name=bsd_nodev value=1 %s> No</td>\n",
		defined($options{"nodev"}) ? "checked" : "";

	print "<td><b>Allow execution of binaries?</b></td>\n";
	printf"<td nowrap><input type=radio name=bsd_noexec value=0 %s> Yes\n",
		defined($options{"noexec"}) ? "" : "checked";
	printf "<input type=radio name=bsd_noexec value=1 %s> No</td> </tr>\n",
		defined($options{"noexec"}) ? "checked" : "";

	print "<tr> <td><b>Disallow setuid programs?</b></td>\n";
	printf "<td nowrap><input type=radio name=bsd_nosuid value=1 %s> Yes\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=bsd_nosuid value=0 %s> No</td>\n",
		defined($options{"nosuid"}) ? "" : "checked";

	print "<td><b>Update access times?</b></td>\n";
	printf"<td nowrap><input type=radio name=bsd_noatime value=0 %s> Yes\n",
		defined($options{"noatime"}) ? "" : "checked";
	printf "<input type=radio name=bsd_noatime value=1 %s> No</td> </tr>\n",
		defined($options{"noatime"}) ? "checked" : "";

	}

if ($_[0] eq "ffs") {
	# FFS filesystems support quotas
	print "<tr> <td><b>User quotas at boot</b></td> <td colspan=3>\n";
	printf "<input type=radio name=ffs_userquota value=0 %s> Disabled\n",
		defined($options{'userquota'}) ? "" : "checked";
	printf "<input type=radio name=ffs_userquota value=1 %s> Enabled\n",
		defined($options{'userquota'}) && $options{'userquota'} eq ""
			? "checked" : "";
	printf "<input type=radio name=ffs_userquota value=2 %s>\n",
		$options{'userquota'} ? "checked" : "";
	print "Enabled, use file\n";
	printf "<input name=ffs_userquota_file size=30 value=\"%s\">\n",
		$options{'userquota'};
	print "</td> </tr>\n";
		
	print "<tr> <td><b>Group quotas at boot</b></td> <td colspan=3>\n";
	printf "<input type=radio name=ffs_groupquota value=0 %s> Disabled\n",
		defined($options{'groupquota'}) ? "" : "checked";
	printf "<input type=radio name=ffs_groupquota value=1 %s> Enabled\n",
		defined($options{'groupquota'}) && $options{'groupquota'} eq ""
			? "checked" : "";
	printf "<input type=radio name=ffs_groupquota value=2 %s>\n",
		$options{'groupquota'} ? "checked" : "";
	print "Enabled, use file\n";
	printf "<input name=ffs_groupquota_file size=30 value=\"%s\">\n",
		$options{'groupquota'};
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "nfs") {
	# NFS filesystems have lots more options
	print "<tr> <td><b>Retry mounts in background?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_b value=1 %s> Yes\n",
		defined($options{"-b"}) ? "checked" : "";
	printf "<input type=radio name=nfs_b value=0 %s> No</td>\n",
		defined($options{"-b"}) ? "" : "checked";

	print "<td><b>Return error on timeouts?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_s value=1 %s> Yes\n",
		defined($options{"-s"}) ? "checked" : "";
	printf "<input type=radio name=nfs_s value=0 %s> No</td> </tr>\n",
		defined($options{"-s"}) ? "" : "checked";

	print "<tr> <td><b>Timeout</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_t_def value=1 %s> Default\n",
		defined($options{"-t"}) ? "" : "checked";
	printf "<input type=radio name=nfs_t_def value=0 %s>\n",
		defined($options{"-t"}) ? "checked" : "";
	printf "<input size=5 name=nfs_t value=\"$options{'-t'}\"></td>\n";

	print "<td><b>Number of Retransmissions</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_x_def value=1 %s> Default\n",
		defined($options{"-x"}) ? "" : "checked";
	printf "<input type=radio name=nfs_x_def value=0 %s>\n",
		defined($options{"-x"}) ? "checked" : "";
	print "<input size=5 name=nfs_x value=\"$options{'-x'}\"></td> </tr>\n";

	print "<tr> <td><b>NFS version</b></td> <td nowrap>\n";
	local $v = defined($options{"-2"}) ? 2 :
		   defined($options{"-3"}) ? 3 : 0;
	printf "<input type=radio name=nfs_ver value=0 %s> Auto\n",
		$v ? "" : "checked";
	printf "<input type=radio name=nfs_ver value=2 %s> V2\n",
		$v == 2 ? "checked" : "";
	printf "<input type=radio name=nfs_ver value=3 %s> V3</td>\n",
		$v == 3 ? "checked" : "";

	print "<td><b>Mount retries</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_r_def value=1 %s> Default\n",
		defined($options{"-R"}) ? "" : "checked";
	printf "<input type=radio name=nfs_r_def value=0 %s>\n",
		defined($options{"-R"}) ? "checked" : "";
	print "<input size=5 name=nfs_r value=\"$options{'-R'}\"></td> </tr>\n";

	print "<tr> <td><b>Read-ahead blocks</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_a_def value=1 %s> Default\n",
		defined($options{"-a"}) ? "" : "checked";
	printf "<input type=radio name=nfs_a_def value=0 %s>\n",
		defined($options{"-a"}) ? "checked" : "";
	print "<input size=5 name=nfs_a value=\"$options{'-a'}\"></td> </tr>\n";

	print "<tr> <td><b>RPC Protocol</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_t2 value=1 %s> TCP\n",
		defined($options{"-T"}) ? "checked" : "";
	printf "<input type=radio name=nfs_t2 value=0 %s> UDP</td> </tr>\n",
		defined($options{"-T"}) ? "" : "checked";
	}
elsif ($_[0] eq "msdos"){
	# MS-DOS filesystems options deal with filling in
	# missing unix functionality
	print "<tr> <td><b>User files are owned by</b></td>\n";
	printf "<td><input name=msdos_u size=8 value=\"%s\">\n",
		defined($options{"-u"}) ? getpwuid($options{"-u"}) : "";
	print &user_chooser_button("msdos_u", 0),"</td>\n";

	print "<td><b>Group files are owned by</b></td>\n";
	printf "<td><input name=msdos_g size=8 value=\"%s\">\n",
		defined($options{"-g"}) ? getgrgid($options{"-g"}) : "";
	print &group_chooser_button("msdos_g", 0),"</td>\n";

	print "<tr> <td><b>File permissions mask</b></td>\n";
	printf "<td><input type=radio name=msdos_m_def value=1 %s> Default\n",
		defined($options{"-m"}) ? "" : "checked";
	printf "<input type=radio name=msdos_m_def value=0 %s>\n",
		defined($options{"-m"}) ? "checked" : "";
	print "<input size=5 name=msdos_m value=\"$options{'-m'}\"></td>\n";
	}
elsif ($_[0] eq "cd9660") {
	# CDROM filesystem
	print "<tr> <td><b>Ignore Unix Attributes?</b></td>\n";
	printf "<td><input type=radio name=cd9660_r value=1 %s> Yes\n",
		defined($options{"-r"}) ? "checked" : "";
	printf "<input type=radio name=cd9660_r value=0 %s> No</td>\n",
		defined($options{"-r"}) ? "" : "checked";

	print "<td><b>Show version numbers?</b></td>\n";
	printf "<td><input type=radio name=cd9660_g value=1 %s> Yes\n",
		defined($options{"-g"}) ? "checked" : "";
	printf "<input type=radio name=cd9660_g value=0 %s> No</td> </tr>\n",
		defined($options{"-g"}) ? "" : "checked";

	print "<tr> <td><b>Use extended attributes?</b></td>\n";
	printf "<td><input type=radio name=cd9660_e value=1 %s> Yes\n",
		defined($options{"-e"}) ? "checked" : "";
	printf "<input type=radio name=cd9660_e value=0 %s> No</td> </tr>\n",
		defined($options{"-e"}) ? "" : "checked";
	}
elsif ($_[0] eq "swap") {
	# Swap has no options..
	print "<tr> <td><i>No Options Available</i></td> </tr>\n";
	}
}


# check_location(type)
# Parse and check inputs from %in, calling &error() if something is wrong.
# Returns the location string for storing in the fstab file
sub check_location
{
if ($_[0] eq "nfs") {
	local($out, $temp, $mout, $dirlist);

	# Use ping and showmount to see if the host exists and is up
	if ($in{nfs_host} !~ /^\S+$/) {
		&error("'$in{nfs_host}' is not a valid hostname");
		}
	$out = `ping -c 1 '$in{nfs_host}' 2>&1`;
	if ($out =~ /unknown host/i) {
		&error("The host '$in{nfs_host}' does not exist");
		}
	elsif ($out =~ /100\% packet loss/) {
		&error("The host '$in{nfs_host}' is down");
		}
	$out = `showmount -e '$in{nfs_host}' 2>&1`;
	if ($out =~ /Unable to receive/) {
		&error("The host '$in{nfs_host}' does not support NFS");
		}
	elsif ($?) {
		&error("Failed to get mount list : $out");
		}

	# Validate directory name
	foreach (split(/\n/, $out)) {
		if (/^(\/\S+)/) { $dirlist .= "$1\n"; }
		}
	if ($in{nfs_dir} !~ /^\/\S+$/) {
		&error("'$in{nfs_dir}' is not a valid directory name. The ".
		       "available directories on $in{nfs_host} are:".
		       "<pre>$dirlist</pre>");
		}

	# Try a test mount to see if filesystem is available
	$temp = &tempname();
	mkdir($temp, 0755);
	$mout = `mount $in{nfs_host}:$in{nfs_dir} $temp 2>&1`;
	if ($mout =~ /No such file or directory/) {
		rmdir($temp);
		&error("The directory '$in{nfs_dir}' does not exist on the ".
		       "host $in{nfs_host}. The available directories are:".
		       "<pre>$dirlist</pre>");
		}
	elsif ($mout =~ /Permission denied/) {
		rmdir($temp);
		&error("This host is not allowed to mount the directory ".
		       "$in{nfs_dir} from $in{nfs_host}");
		}
	elsif ($?) {
		rmdir($temp);
		&error("NFS Error - $mout");
		}
	# It worked! unmount
	`umount $temp`;
	rmdir($temp);
	return "$in{nfs_host}:$in{nfs_dir}";
	}
else {
	# This is some kind of disk-based filesystem.. get the device name
	if ($in{'disk_dev'} == 0) {
		$in{'ide_t'} =~ /^\d+$/ ||
			&error("'$in{ide_t}' is not a valid device number");
		$in{'ide_s'} =~ /^\d+$/ ||
			&error("'$in{ide_s}' is not a valid slice number");
		$in{'ide_p'} =~ /^[a-z]*$/ ||
			&error("'$in{ide_p}' is not a valid partition letter");
		$dv = "/dev/wd$in{ide_t}s$in{ide_s}$in{ide_p}";
		}
	elsif ($in{'disk_dev'} == 1) {
		$in{'scsi_t'} =~ /^\d+$/ ||
			&error("'$in{scsi_t}' is not a valid device number");
		$in{'scsi_s'} =~ /^\d+$/ ||
			&error("'$in{scsi_s}' is not a valid slice number");
		$in{'scsi_p'} =~ /^[a-z]*$/ ||
			&error("'$in{scsi_p}' is not a valid partition letter");
		$dv = "/dev/sd$in{scsi_t}s$in{scsi_s}$in{scsi_p}";
		}
	else {
		$dv = $in{'dev_path'};
		}

	# If the device entered is a symlink, follow it
	if ($dvlink = readlink($dv)) {
		if ($dvlink =~ /^\//) { $dv = $dvlink; }
		else {	$dv =~ /^(.*\/)[^\/]+$/;
			$dv = $1.$dvlink;
			}
		}

	# Check if the device actually exists and uses the right filesystem
	(-r $dv) || &error("The device file '$dv' does not exist");
	return $dv;
	}
}

# check_options(type, device, directory)
# Read options for some filesystem from %in, and use them to update the
# %options array. Options handled by the user interface will be set or
# removed, while unknown options will be left untouched.
sub check_options
{
local($k, @rv);

# Parse the common options first..
if ($_[0] ne "swap") {
	delete($options{"ro"}); delete($options{"rw"});
	delete($options{"rdonly"});
	if ($in{'bsd_ro'}) { $options{'ro'} = ''; }
	else { $options{'rw'} = ""; }

	delete($options{"sync"}); delete($options{"async"});
	if ($in{'bsd_sync'}) { $options{'sync'} = ''; }

	delete($options{'nodev'});
	if ($in{'bsd_nodev'}) { $options{'nodev'} = ''; }

	delete($options{'noexec'});
	if ($in{'bsd_noexec'}) { $options{'noexec'} = ''; }

	delete($options{'nosuid'});
	if ($in{'bsd_nosuid'}) { $options{'nosuid'} = ''; }

	delete($options{'noatime'});
	if ($in{'bsd_noatime'}) { $options{'noatime'} = ''; }

	}
else {
	# Swap always has the sw option
	$options{'sw'} = "";
	}

if ($_[0] eq "ffs") {
	# Parse FFS quota options
	delete($options{'userquota'}) if ($in{'ffs_userquota'} == 0);
	$options{'userquota'} = "" if ($in{'ffs_userquota'} == 1);
	$options{'userquota'} = $in{'ffs_groupquota_file'}
		if ($in{'ffs_userquota'} == 2);

	delete($options{'groupquota'}) if ($in{'ffs_groupquota'} == 0);
	$options{'groupquota'} = "" if ($in{'ffs_groupquota'} == 1);
	$options{'groupquota'} = $in{'ffs_groupquota_file'}
		if ($in{'ffs_groupquota'} == 2);
	}
elsif ($_[0] eq "nfs") {
	# NFS has a few specific options..
	delete($options{'-b'});
	$options{'-b'} = "" if ($in{'nfs_b'});

	delete($options{'-s'});
	$options{'-s'} = "" if ($in{'nfs_s'});

	delete($options{'-t'});
	$options{'-t'} = $in{'nfs_t'} if (!$in{'nfs_t_def'});

	delete($options{'-x'});
	$options{'-x'} = $in{'nfs_x'} if (!$in{'nfs_x_def'});

	delete($options{'-2'}); delete($options{'-3'});
	$options{'-2'} = "" if ($in{'nfs_ver'} == 2);
	$options{'-3'} = "" if ($in{'nfs_ver'} == 3);

	delete($options{'-R'});
	$options{'-R'} = $in{'nfs_r'} if (!$in{'nfs_r_def'});

	delete($options{'-a'});
	$options{'-a'} = $in{'nfs_a'} if (!$in{'nfs_a_def'});

	delete($options{'-T'});
	$options{'-T'} = "" if ($in{'nfs_t2'});
	}
elsif ($_[0] eq "msdos") {
	# MSDOS options for file ownership/perms
	delete($options{"-u"}); delete($options{"-g"});
	if ($in{'msdos_u'} ne "") { $options{'-u'} = getpwnam($in{'msdos_u'}); }
	if ($in{'msdos_g'} ne "") { $options{'-g'} = getgrnam($in{'msdos_g'}); }

	delete($options{"-m"});
	if (!$in{'msdos_m_def'}) {
		$in{'msdos_m'} =~ /^[0-7]{3}$/ ||
			&error("'$in{'msdos_m'}' is not a valid octal mask");
		$options{'-m'} = $in{'msdos_m'};
		}
	}
elsif ($_[0] eq "cd9660") {
	# Options for iso9660 cd-roms
	delete($options{'-r'});
	$options{'-r'} = "" if ($in{'cd9660_r'});

	delete($options{'-g'});
	$options{'-g'} = "" if ($in{'cd9660_g'});

	delete($options{'-e'});
	$options{'-e'} = "" if ($in{'cd9660_e'});
	}

# Return options string
foreach $k (keys %options) {
	if ($options{$k} eq "") { push(@rv, $k); }
	else { push(@rv, "$k=$options{$k}"); }
	}
return @rv ? join(',' , @rv) : "-";
}

# create_swap(file, size, units)
# Calls dd and mkswap to setup a swap file
sub create_swap
{
local($out, $bl);
$bl = $_[1] * ($_[2] eq "m" ? 1024 : 1);
$out = `dd if=/dev/zero of=$_[0] bs=1024 count=$bl 2>&1`;
if ($?) { return "dd failed : $out"; }
$out = `mkswap $_[0] $bl 2>&1`;
if ($?) { return "mkswap failed : $out"; }
system("sync >/dev/null 2>&1");
return 0;
}

# exports_list(host, dirarray, clientarray)
# Fills the directory and client array references with exports from some
# host. Returns an error string if something went wrong
sub exports_list
{
local($dref, $cref, $out, $_);
$dref = $_[1]; $cref = $_[2];
$out = `showmount -e $_[0] 2>&1`;
if ($?) { return $out; }
foreach (split(/\n/, $out)) {
	if (/^(\/\S*)\s+(.*)$/) {
		push(@$dref, $1); push(@$cref, $2);
		}
	}
return undef;
}

# broadcast_addr()
# Returns a useable broadcast address for finding NFS servers
sub broadcast_addr
{
local($out);
$out = `ifconfig -a 2>&1`;
if ($out =~ /broadcast\s+(\S+)\s+/) { return $1; }
return "255.255.255.255";
}

sub device_name
{
return $_[0];
}

sub files_to_lock
{
return ( $config{'fstab_file'} );
}

1;

  07070100007745000081e40000000000000002000000013ac0388d00006422000000200000000000000000000000000000001d00000003reloc/mount/openbsd-mounts-2                         U夊冹WVS島崀拎岲8<&  媈呟t&兡鴍/S%  ｄ   兡吚u	   怈ｄ   荅    婨鼖E鼌纓兡鬶    枞   兡兡魞狞5<&  W6!  P枳  YXQ蛝Qr酶/usr/libexec/ld.so No ld.so
 Failure reading ld.so
 Bad magic: ld.so
 Cannot map ld.so
 悙悙悙悙悙悙悙悙悙悙crt0: update /usr/libexec/ld.so
 ld.so failed
 怳夊冹,WVS媫 !    j j h  j/!  兡凐u8婫儀 u,!      橼  恓
h  jj棂兡鴍j桧兡 j 岴郟5!  j枳兡凐wjh  jj杩兡鴍j璩兡 婨喋  tf寥寥f寥f=u隠悙=  tC婨喋  tf寥寥f寥f= u	&=   tjh  jj鑆兡鴍j鐹兡 !  兡鼖E喋  tf寥寥f寥f=u雦   =  tp婨喋  tf寥寥f寥%  =  u隡   =  t@婨喋  tf寥寥f寥%  = t   = u   惛    𐝣襌Pj 5!  jj婨EE霵j j h   h   鑢!  兡0凐ujh  jj鑅兡鴍j鐸兡 兡鼖E鄩瞒  tf寥寥f寥f=t8
悙侜  t,髀  t壭f寥寥f寥f= t槿   侜   吋   婱鋲索  t壭f寥寥f寥f=u閲   悙悏   =  tv髀  t壭f寥寥f寥%  =  u隨悙悏   =  tB髀  tf潦潦f潦芬侜 t悙伿   侜 u
崄  悙崄  崄  % 楫   婱鋲索  t壭f寥寥f寥f=u閲   悙悏   =  tv髀  t壭f寥寥f寥%  =  u隨悙悏   =  tB髀  tf潦潦f潦芬侜 t悙伿   侜 u
崄   悙岮 悙悏1襌Pj 5!  jju!  Sj h   h   鑈兡0凐ujh  jj鐯兡鴍j4兡 婨靺纓\兡黬 j j 5!  h  jP婨E!  Pj h   h   桴兡0凐ujh  jj栎兡鴍j柩兡 =!  <&  !  !    ′   !  !  !  兠 兡鳹j觾凐uGj!h   jj鑭兡鳹j觾 凐ujhA  jj鑌兡鴍j鑀婫,!  悺$!  ,!  兡p	  峞萚^_擅悙怳夊冹,!  吚t兡uu 须悙1郎肬夊冹,!  吚t兡u婡须擅怳夊冹,!  吚t兡uu婡须1郎肬夊冹,!  吚t兡uuu婡须悙擅Service unavailable 怳夊冹,!  呉t兡鼚E黀jj 婤袃凐u  悑E鼌纓兡鬚 	  悙1郎肬夊S婨奭1蓨8趗壛勔t@腭悏萚擅   getmntinfo failed : %s
 %s	%s	%s	%s	%x
 U夊冹鑙  兡鴍岴黀杷  兡壚塃鴥} }9兡鼉聂&  P鑤  兡壚Ph  h%  鑿  兡兡鬸鑒  兡悙悙荅    婨;E鴟樽   悙悆镍婾魤辛辛袓    婨鼖R兡魦U魤辛辛袓    婨鼖R杷   兡壚P婾魤辛辛袓    壭E鼚PDR婾魤辛辛袓    壭E鼚惍   R婾魤辛辛袓    壭E鼚PTRh  钃  兡 E糸擅ro, noexec, nosuid, noatime, nodev, sync, async, quota, union, - 怳夊冹0!   婨冟吚t兡鴋  h0!    兡婨冟吚t兡鴋  h0!  梏  兡婨冟吚t兡鴋  h0!  枵  兡婨% f吚t兡鴋"  h0!  璩  兡婨冟吚t兡鴋+  h0!  钄  兡婨冟吚t兡鴋2  h0!  鑥  兡婨冟@吚t兡鴋8  h0!  鑆  兡婨%    吚t兡鴋?  h0!  5  兡婨冟 吚t兡鴋F  h0!    兡=0!   u
窶  +悙悆聂h0!  桦  兡壚峆0!   0!  悙惿  U夊冹¤   峆    小   8 u渖脨怳夊冹S○   凐u1纼=    t呼   悙悆@: u鲏脜踭悑濔   蠯u魞聂h  鐶  媇枭脨怳夊冹=0%   u0%     鑾擅n     ,v     ,~     ,   
  ,     ,     ,     ,4%    對     ,      	                                        	      
                       
                                                                                                                                      
                            !      +           4     ,      =           P            _            g            v            ~                                        P                       l                                                           	   <&           t                     	   @&          |                           !     !      (  	   D&      -    4      __DYNAMIC _dlctl _dlopen __exit_dummy_decl _dlclose _dlerror ___do_global_dtors ___DTOR_LIST__ _strcat ___CTOR_LIST__ _strlen ___do_global_ctors _printf ___progname _expand_flags start _strerror _fprintf __exit_dummy_ref ___sF _etext _environ _atexit _getmntinfo _errno _exit _main _dlsym _edata _end ___main               c                                                         (                                         `   d   T               8     H       愰  愯  愯 愯 愯 愯 愯 愯 愯 $OpenBSD: crt0.c,v 1.3 1997/06/24 17:15:49 tholo Exp $ (!      !                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !  /       8     ,  A       T        c        r                    P                       4%             	   <&     	   @&                      !     	   D&       4                         '       9     0!  @       I       X       j  d       d                                
         :         o                                    7         U         r                                                               6         B         r                           	         E         n                                             >         N   J    e            /                 3        6        7        9        :        ;         <     .   C     <   D     L   E     [   F     i   G     y   H        I        J        K        M        O        Q        S        6        7        8        9     )   ;     7   <     D   =     O   >     [   A     k   B     y   C        E        F        G        H        I        J        K        L        M     	   N     	   O     &	   P     4	   Q     C	   R     R	   S     _	   T     q	   U     	   ^     	   _     	   `     	   a     	   {     	        	        	         
        
        
        -
         Z
        h
   5     v
   <     
   A     
   G     
         '         X                                    +         U                                    (         P         x                                    $         G         l                                       ,     &   X     6   Y     D   Z     S   [     a   \     p   ^        _        b        h                         5     #       (  $  >    1    V  $6  l     0%  |  $G4       T       T       T    d   T    d   T                    %         Q                                    >         \         ~                                                      $         ?         [         }                                             P                                             6         W                     J                /                 3        6     -   7     =   9     K   :     Y   ;     g   <     u   C        D        E        F        G        H        I        J        K        M     
   O        Q     )   S     ;   6     I   7     W   8     c   9     p   ;     ~   <        =        >        A        B        C        E        F        G        H        I        J     *   K     6   L     D   M     S   N     `   O     m   P     {   Q        R        S        T        U        ^        _        `         a        {             ,        :        G        W        e        t                    5        <        A        G     ?         n                                    A         r                                    <         o                                             >         k                                             4         \   ,     m   X     }   Y        Z        [        \        ^        _        b        h              #        O   5     j    h        i         T       T       T    d   T    d   T             '          9          e                              !         R!         p!         !         !         !         !         !         "         8"         S"         o"         "         "         "         #         ,#         d#         #         #         #         $         J$         k$         $         $   J    $         $   /     $          %   3     /%   6     A%   7     Q%   9     _%   :     m%   ;     {%   <     %   C     %   D     %   E     %   F     %   G     %   H     %   I     %   J     &   K     &   M     &   O     .&   Q     =&   S     O&   6     ]&   7     k&   8     w&   9     &   ;     &   <     &   =     &   >     &   A     &   B     &   C     &   E     &   F     '   G     '   H     $'   I     1'   J     >'   K     J'   L     X'   M     g'   N     t'   O     '   P     '   Q     '   R     '   S     '   T     '   U     '   ^     '   _     (   `     (   a     %(   {     3(        @(        N(        [(        k(        y(        (         (        (   5     (   <     (   A     $)   G     S)         )         )         )         **         U*         *         *         *         +         P+         +         +         +         +         (,         R,         ,         ,         ,         ,         -         H-         p-   ,     -   X     -   Y     -   Z     -   [     -   \     -   ^     -   _     -   b     -   h     	.         7.        c.   5     ~.        .  __DYNAMIC _dlctl _dlopen __exit_dummy_decl _dlclose _dlerror ___do_global_dtors ___DTOR_LIST__ ___CTOR_LIST__ ___do_global_ctors ___progname _expand_flags start __exit_dummy_ref ___sF _etext _environ _errno _main _dlsym _edata _end ___main /usr/lib/crt0.o /var/tmp/ccr31091.o gcc2_compiled. ___gnu_compiled_c _buf.9 __main.o gcc2_compiled. ___gnu_compiled_c /usr/src/gnu/egcs/gcc/obj/ /usr/src/gnu/egcs/gcc/libgcc2.c int:t1=r1;0020000000000;0017777777777; char:t2=r2;0;127; long int:t3=r1;0020000000000;0017777777777; unsigned int:t4=r1;0000000000000;0037777777777; long unsigned int:t5=r1;0000000000000;0037777777777; long long int:t6=r1;01000000000000000000000;0777777777777777777777; long long unsigned int:t7=r1;0000000000000;01777777777777777777777; short int:t8=r8;-32768;32767; short unsigned int:t9=r9;0;65535; signed char:t10=r10;-128;127; unsigned char:t11=r11;0;255; float:t12=r1;4;0; double:t13=r1;8;0; long double:t14=r1;12;0; complex int:t15=s8real:1,0,32;imag:1,32,32;; complex float:t16=r16;4;0; complex double:t17=r17;8;0; complex long double:t18=r18;12;0; void:t19=19 processor_costs:T20=s28add:1,0,32;lea:1,32,32;\ shift_var:1,64,32;shift_const:1,96,32;mult_init:1,128,32;\ mult_bit:1,160,32;divide:1,192,32;; processor_type:T21=ePROCESSOR_I386:0,PROCESSOR_I486:1,\ PROCESSOR_PENTIUM:2,PROCESSOR_PENTIUMPRO:3,PROCESSOR_K6:4,; reg_class:T22=eNO_REGS:0,AREG:1,DREG:2,\ CREG:3,BREG:4,AD_REGS:5,Q_REGS:6,\ SIREG:7,DIREG:8,INDEX_REGS:9,GENERAL_REGS:10,\ FP_TOP_REG:11,FP_SECOND_REG:12,FLOAT_REGS:13,\ ALL_REGS:14,LIM_REG_CLASSES:15,; i386_args:T23=s12words:1,0,32;nregs:1,32,32;\ regno:1,64,32;; CUMULATIVE_ARGS:t24=23 _physadr:T25=s4r:26=ar1;0;0;1,0,32;; physadr:t27=28=*25 label_t:T29=s24val:30=ar1;0;5;1,0,192;; label_t:t31=29 vm_offset_t:t32=5 vm_size_t:t33=5 vaddr_t:t34=5 paddr_t:t35=5 vsize_t:t36=5 psize_t:t37=5 int8_t:t38=10 u_int8_t:t39=11 uint8_t:t40=11 int16_t:t41=8 u_int16_t:t42=9 uint16_t:t43=9 int32_t:t44=1 u_int32_t:t45=4 uint32_t:t46=4 int64_t:t47=6 u_int64_t:t48=7 uint64_t:t49=7 register_t:t50=44 u_char:t51=11 u_short:t52=9 u_int:t53=4 u_long:t54=5 unchar:t55=11 ushort:t56=9 uint:t57=4 ulong:t58=5 u_quad_t:t59=48 quad_t:t60=47 qaddr_t:t61=62=*60 caddr_t:t63=64=*2 daddr_t:t65=44 dev_t:t66=44 fixpt_t:t67=45 gid_t:t68=45 ino_t:t69=45 key_t:t70=3 mode_t:t71=42 nlink_t:t72=42 off_t:t73=60 pid_t:t74=44 rlim_t:t75=60 segsz_t:t76=44 swblk_t:t77=44 uid_t:t78=45 useconds_t:t79=45 suseconds_t:t80=44 in_addr_t:t81=45 in_port_t:t82=42 sa_family_t:t83=39 socklen_t:t84=45 clock_t:t85=5 size_t:t86=4 ssize_t:t87=1 time_t:t88=1 clockid_t:t89=1 timer_t:t90=1 fd_mask:t91=44 fd_set:T92=s32fds_bits:93=ar1;0;7;91,0,256;; fd_set:t94=92 wchar_t:t95=1 div_t:t96=97=s8quot:1,0,32;rem:1,32,32;; ldiv_t:t98=99=s8quot:3,0,32;rem:3,32,32;; qdiv_t:t100=101=s16quot:60,0,64;rem:60,64,64;; timeval:T102=s8tv_sec:3,0,32;tv_usec:3,32,32;; timespec:T103=s8tv_sec:88,0,32;tv_nsec:3,32,32;; timezone:T104=s8tz_minuteswest:1,0,32;tz_dsttime:1,32,32;; itimerval:T105=s16it_interval:102,0,64;it_value:102,64,64;; clockinfo:T106=s20hz:1,0,32;tick:1,32,32;\ tickadj:1,64,32;stathz:1,96,32;profhz:1,128,32;; tm:T107=s44tm_sec:1,0,32;tm_min:1,32,32;\ tm_hour:1,64,32;tm_mday:1,96,32;tm_mon:1,128,32;\ tm_year:1,160,32;tm_wday:1,192,32;tm_yday:1,224,32;\ tm_isdst:1,256,32;tm_gmtoff:3,288,32;tm_zone:64,320,32;; machine_mode:T108=eVOIDmode:0,PQImode:1,QImode:2,\ PHImode:3,HImode:4,PSImode:5,SImode:6,\ PDImode:7,DImode:8,TImode:9,OImode:10,\ QFmode:11,HFmode:12,TQFmode:13,SFmode:14,\ DFmode:15,XFmode:16,TFmode:17,QCmode:18,\ HCmode:19,SCmode:20,DCmode:21,XCmode:22,\ TCmode:23,CQImode:24,CHImode:25,CSImode:26,\ CDImode:27,CTImode:28,COImode:29,\ BLKmode:30,CCmode:31,CCFPEQmode:32,\ MAX_MACHINE_MODE:33,; mode_class:T109=eMODE_RANDOM:0,MODE_INT:1,MODE_FLOAT:2,\ MODE_PARTIAL_INT:3,MODE_CC:4,MODE_COMPLEX_INT:5,\ MODE_COMPLEX_FLOAT:6,MAX_MODE_CLASS:7,; ptrdiff_t:t110=1 UQItype:t111=11 SItype:t112=1 USItype:t113=4 DItype:t114=6 UDItype:t115=7 SFtype:t116=12 DFtype:t117=13 XFtype:t118=14 word_type:t119=1 DIstruct:T120=s8low:112,0,32;high:112,32,32;; DIunion:t121=122=u8s:120,0,64;ll:114,0,64;; func_ptr:t123=124=*125=f19 _p.3 __do_global_dtors:F19 _exit_dummy_ref:G126=*1 __do_global_ctors:F19 _initialized.10 __main:F19 _ctors.o gcc2_compiled. ___gnu_compiled_c /usr/src/gnu/egcs/gcc/obj/ /usr/src/gnu/egcs/gcc/libgcc2.c int:t1=r1;0020000000000;0017777777777; char:t2=r2;0;127; long int:t3=r1;0020000000000;0017777777777; unsigned int:t4=r1;0000000000000;0037777777777; long unsigned int:t5=r1;0000000000000;0037777777777; long long int:t6=r1;01000000000000000000000;0777777777777777777777; long long unsigned int:t7=r1;0000000000000;01777777777777777777777; short int:t8=r8;-32768;32767; short unsigned int:t9=r9;0;65535; signed char:t10=r10;-128;127; unsigned char:t11=r11;0;255; float:t12=r1;4;0; double:t13=r1;8;0; long double:t14=r1;12;0; complex int:t15=s8real:1,0,32;imag:1,32,32;; complex float:t16=r16;4;0; complex double:t17=r17;8;0; complex long double:t18=r18;12;0; void:t19=19 processor_costs:T20=s28add:1,0,32;lea:1,32,32;\ shift_var:1,64,32;shift_const:1,96,32;mult_init:1,128,32;\ mult_bit:1,160,32;divide:1,192,32;; processor_type:T21=ePROCESSOR_I386:0,PROCESSOR_I486:1,\ PROCESSOR_PENTIUM:2,PROCESSOR_PENTIUMPRO:3,PROCESSOR_K6:4,; reg_class:T22=eNO_REGS:0,AREG:1,DREG:2,\ CREG:3,BREG:4,AD_REGS:5,Q_REGS:6,\ SIREG:7,DIREG:8,INDEX_REGS:9,GENERAL_REGS:10,\ FP_TOP_REG:11,FP_SECOND_REG:12,FLOAT_REGS:13,\ ALL_REGS:14,LIM_REG_CLASSES:15,; i386_args:T23=s12words:1,0,32;nregs:1,32,32;\ regno:1,64,32;; CUMULATIVE_ARGS:t24=23 _physadr:T25=s4r:26=ar1;0;0;1,0,32;; physadr:t27=28=*25 label_t:T29=s24val:30=ar1;0;5;1,0,192;; label_t:t31=29 vm_offset_t:t32=5 vm_size_t:t33=5 vaddr_t:t34=5 paddr_t:t35=5 vsize_t:t36=5 psize_t:t37=5 int8_t:t38=10 u_int8_t:t39=11 uint8_t:t40=11 int16_t:t41=8 u_int16_t:t42=9 uint16_t:t43=9 int32_t:t44=1 u_int32_t:t45=4 uint32_t:t46=4 int64_t:t47=6 u_int64_t:t48=7 uint64_t:t49=7 register_t:t50=44 u_char:t51=11 u_short:t52=9 u_int:t53=4 u_long:t54=5 unchar:t55=11 ushort:t56=9 uint:t57=4 ulong:t58=5 u_quad_t:t59=48 quad_t:t60=47 qaddr_t:t61=62=*60 caddr_t:t63=64=*2 daddr_t:t65=44 dev_t:t66=44 fixpt_t:t67=45 gid_t:t68=45 ino_t:t69=45 key_t:t70=3 mode_t:t71=42 nlink_t:t72=42 off_t:t73=60 pid_t:t74=44 rlim_t:t75=60 segsz_t:t76=44 swblk_t:t77=44 uid_t:t78=45 useconds_t:t79=45 suseconds_t:t80=44 in_addr_t:t81=45 in_port_t:t82=42 sa_family_t:t83=39 socklen_t:t84=45 clock_t:t85=5 size_t:t86=4 ssize_t:t87=1 time_t:t88=1 clockid_t:t89=1 timer_t:t90=1 fd_mask:t91=44 fd_set:T92=s32fds_bits:93=ar1;0;7;91,0,256;; fd_set:t94=92 wchar_t:t95=1 div_t:t96=97=s8quot:1,0,32;rem:1,32,32;; ldiv_t:t98=99=s8quot:3,0,32;rem:3,32,32;; qdiv_t:t100=101=s16quot:60,0,64;rem:60,64,64;; timeval:T102=s8tv_sec:3,0,32;tv_usec:3,32,32;; timespec:T103=s8tv_sec:88,0,32;tv_nsec:3,32,32;; timezone:T104=s8tz_minuteswest:1,0,32;tz_dsttime:1,32,32;; itimerval:T105=s16it_interval:102,0,64;it_value:102,64,64;; clockinfo:T106=s20hz:1,0,32;tick:1,32,32;\ tickadj:1,64,32;stathz:1,96,32;profhz:1,128,32;; tm:T107=s44tm_sec:1,0,32;tm_min:1,32,32;\ tm_hour:1,64,32;tm_mday:1,96,32;tm_mon:1,128,32;\ tm_year:1,160,32;tm_wday:1,192,32;tm_yday:1,224,32;\ tm_isdst:1,256,32;tm_gmtoff:3,288,32;tm_zone:64,320,32;; machine_mode:T108=eVOIDmode:0,PQImode:1,QImode:2,\ PHImode:3,HImode:4,PSImode:5,SImode:6,\ PDImode:7,DImode:8,TImode:9,OImode:10,\ QFmode:11,HFmode:12,TQFmode:13,SFmode:14,\ DFmode:15,XFmode:16,TFmode:17,QCmode:18,\ HCmode:19,SCmode:20,DCmode:21,XCmode:22,\ TCmode:23,CQImode:24,CHImode:25,CSImode:26,\ CDImode:27,CTImode:28,COImode:29,\ BLKmode:30,CCmode:31,CCFPEQmode:32,\ MAX_MACHINE_MODE:33,; mode_class:T109=eMODE_RANDOM:0,MODE_INT:1,MODE_FLOAT:2,\ MODE_PARTIAL_INT:3,MODE_CC:4,MODE_COMPLEX_INT:5,\ MODE_COMPLEX_FLOAT:6,MAX_MODE_CLASS:7,; ptrdiff_t:t110=1 UQItype:t111=11 SItype:t112=1 USItype:t113=4 DItype:t114=6 UDItype:t115=7 SFtype:t116=12 DFtype:t117=13 XFtype:t118=14 word_type:t119=1 DIstruct:T120=s8low:112,0,32;high:112,32,32;; DIunion:t121=122=u8s:120,0,64;ll:114,0,64;; func_ptr:t123=124=*125=f19 __CTOR_LIST__:G126=ar1;0;1;123 __DTOR_LIST__:G126 _exit.o gcc2_compiled. ___gnu_compiled_c /usr/src/gnu/egcs/gcc/obj/ /usr/src/gnu/egcs/gcc/libgcc2.c int:t1=r1;0020000000000;0017777777777; char:t2=r2;0;127; long int:t3=r1;0020000000000;0017777777777; unsigned int:t4=r1;0000000000000;0037777777777; long unsigned int:t5=r1;0000000000000;0037777777777; long long int:t6=r1;01000000000000000000000;0777777777777777777777; long long unsigned int:t7=r1;0000000000000;01777777777777777777777; short int:t8=r8;-32768;32767; short unsigned int:t9=r9;0;65535; signed char:t10=r10;-128;127; unsigned char:t11=r11;0;255; float:t12=r1;4;0; double:t13=r1;8;0; long double:t14=r1;12;0; complex int:t15=s8real:1,0,32;imag:1,32,32;; complex float:t16=r16;4;0; complex double:t17=r17;8;0; complex long double:t18=r18;12;0; void:t19=19 processor_costs:T20=s28add:1,0,32;lea:1,32,32;\ shift_var:1,64,32;shift_const:1,96,32;mult_init:1,128,32;\ mult_bit:1,160,32;divide:1,192,32;; processor_type:T21=ePROCESSOR_I386:0,PROCESSOR_I486:1,\ PROCESSOR_PENTIUM:2,PROCESSOR_PENTIUMPRO:3,PROCESSOR_K6:4,; reg_class:T22=eNO_REGS:0,AREG:1,DREG:2,\ CREG:3,BREG:4,AD_REGS:5,Q_REGS:6,\ SIREG:7,DIREG:8,INDEX_REGS:9,GENERAL_REGS:10,\ FP_TOP_REG:11,FP_SECOND_REG:12,FLOAT_REGS:13,\ ALL_REGS:14,LIM_REG_CLASSES:15,; i386_args:T23=s12words:1,0,32;nregs:1,32,32;\ regno:1,64,32;; CUMULATIVE_ARGS:t24=23 _physadr:T25=s4r:26=ar1;0;0;1,0,32;; physadr:t27=28=*25 label_t:T29=s24val:30=ar1;0;5;1,0,192;; label_t:t31=29 vm_offset_t:t32=5 vm_size_t:t33=5 vaddr_t:t34=5 paddr_t:t35=5 vsize_t:t36=5 psize_t:t37=5 int8_t:t38=10 u_int8_t:t39=11 uint8_t:t40=11 int16_t:t41=8 u_int16_t:t42=9 uint16_t:t43=9 int32_t:t44=1 u_int32_t:t45=4 uint32_t:t46=4 int64_t:t47=6 u_int64_t:t48=7 uint64_t:t49=7 register_t:t50=44 u_char:t51=11 u_short:t52=9 u_int:t53=4 u_long:t54=5 unchar:t55=11 ushort:t56=9 uint:t57=4 ulong:t58=5 u_quad_t:t59=48 quad_t:t60=47 qaddr_t:t61=62=*60 caddr_t:t63=64=*2 daddr_t:t65=44 dev_t:t66=44 fixpt_t:t67=45 gid_t:t68=45 ino_t:t69=45 key_t:t70=3 mode_t:t71=42 nlink_t:t72=42 off_t:t73=60 pid_t:t74=44 rlim_t:t75=60 segsz_t:t76=44 swblk_t:t77=44 uid_t:t78=45 useconds_t:t79=45 suseconds_t:t80=44 in_addr_t:t81=45 in_port_t:t82=42 sa_family_t:t83=39 socklen_t:t84=45 clock_t:t85=5 size_t:t86=4 ssize_t:t87=1 time_t:t88=1 clockid_t:t89=1 timer_t:t90=1 fd_mask:t91=44 fd_set:T92=s32fds_bits:93=ar1;0;7;91,0,256;; fd_set:t94=92 wchar_t:t95=1 div_t:t96=97=s8quot:1,0,32;rem:1,32,32;; ldiv_t:t98=99=s8quot:3,0,32;rem:3,32,32;; qdiv_t:t100=101=s16quot:60,0,64;rem:60,64,64;; timeval:T102=s8tv_sec:3,0,32;tv_usec:3,32,32;; timespec:T103=s8tv_sec:88,0,32;tv_nsec:3,32,32;; timezone:T104=s8tz_minuteswest:1,0,32;tz_dsttime:1,32,32;; itimerval:T105=s16it_interval:102,0,64;it_value:102,64,64;; clockinfo:T106=s20hz:1,0,32;tick:1,32,32;\ tickadj:1,64,32;stathz:1,96,32;profhz:1,128,32;; tm:T107=s44tm_sec:1,0,32;tm_min:1,32,32;\ tm_hour:1,64,32;tm_mday:1,96,32;tm_mon:1,128,32;\ tm_year:1,160,32;tm_wday:1,192,32;tm_yday:1,224,32;\ tm_isdst:1,256,32;tm_gmtoff:3,288,32;tm_zone:64,320,32;; machine_mode:T108=eVOIDmode:0,PQImode:1,QImode:2,\ PHImode:3,HImode:4,PSImode:5,SImode:6,\ PDImode:7,DImode:8,TImode:9,OImode:10,\ QFmode:11,HFmode:12,TQFmode:13,SFmode:14,\ DFmode:15,XFmode:16,TFmode:17,QCmode:18,\ HCmode:19,SCmode:20,DCmode:21,XCmode:22,\ TCmode:23,CQImode:24,CHImode:25,CSImode:26,\ CDImode:27,CTImode:28,COImode:29,\ BLKmode:30,CCmode:31,CCFPEQmode:32,\ MAX_MACHINE_MODE:33,; mode_class:T109=eMODE_RANDOM:0,MODE_INT:1,MODE_FLOAT:2,\ MODE_PARTIAL_INT:3,MODE_CC:4,MODE_COMPLEX_INT:5,\ MODE_COMPLEX_FLOAT:6,MAX_MODE_CLASS:7,; ptrdiff_t:t110=1 UQItype:t111=11 SItype:t112=1 USItype:t113=4 DItype:t114=6 UDItype:t115=7 SFtype:t116=12 DFtype:t117=13 XFtype:t118=14 word_type:t119=1 DIstruct:T120=s8low:112,0,32;high:112,32,32;; DIunion:t121=122=u8s:120,0,64;ll:114,0,64;; func_ptr:t123=124=*125=f19 _exit_dummy_decl:G1   07070100007747000081a40000000000000002000000013ac0388d00000422000000200000000000000000000000000000001f00000003reloc/mount/openbsd-mounts-2.c    #include <stdio.h>
#include <errno.h>
#include <sys/param.h>
#include <sys/ucred.h>
#include <sys/mount.h>

char *find_type(int t);
char *expand_flags(int f);

int main(void)
{
struct statfs *mntlist;
int n, i;

n = getmntinfo(&mntlist, MNT_NOWAIT);
if (n < 0) {
	fprintf(stderr, "getmntinfo failed : %s\n", strerror(errno));
	exit(1);
	}
for(i=0; i<n; i++) {
	printf("%s\t%s\t%s\t%s\t%x\n",
		mntlist[i].f_mntonname,
		mntlist[i].f_mntfromname,
		mntlist[i].f_fstypename,
		expand_flags(mntlist[i].f_flags),
		mntlist[i].f_flags);
	}
}

char *expand_flags(int f)
{
static char buf[1024];
buf[0] = 0;
if (f & MNT_RDONLY) strcat(buf, "ro,");
if (f & MNT_NOEXEC) strcat(buf, "noexec,");
if (f & MNT_NOSUID) strcat(buf, "nosuid,");
if (f & MNT_NOATIME) strcat(buf, "noatime,");
if (f & MNT_NODEV) strcat(buf, "nodev,");
if (f & MNT_SYNCHRONOUS) strcat(buf, "sync,");
if (f & MNT_ASYNC) strcat(buf, "async,");
if (f & MNT_QUOTA) strcat(buf, "quota,");
if (f & MNT_UNION) strcat(buf, "union,");
if (buf[0] == 0) return "-";
buf[strlen(buf)-1] = 0;
return buf;
}

  07070100007748000081a40000000000000002000000013ac0388c0000c16a000000200000000000000000000000000000001800000003reloc/mount/osf1-lib.pl   # osf1-lib.pl
# Filesystem functions for OSF1

# Return information about a filesystem, in the form:
#  directory, device, type, options, fsck_order, mount_at_boot
# If a field is unused or ignored, a - appears instead of the value.
# Swap-filesystems (devices or files mounted for VM) have a type of 'swap',
# and 'swap' in the directory field
sub list_mounts
{
local(@rv, @p, $_, $i); $i = 0;

# List normal filesystem mounts
open(FSTAB, $config{fstab_file});
while(<FSTAB>) {
	chop; s/^#.*$//g;
	if (!/\S/) { next; }
	@p = split(/\s+/, $_);
	if ($p[3] eq "swap") { $p[2] = "swap"; }
	$rv[$i++] = [ $p[1], $p[0], $p[2], $p[3], $p[5], 1 ];
	}
close(FSTAB);

return @rv;
}


# create_mount(directory, device, type, options, fsck_order, mount_at_boot)
# Add a new entry to the fstab file, and return the index of the new entry
sub create_mount
{
local($len, @mlist, $fcsk, $dir);
if ($_[2] eq "autofs") {
	# An autofs mount.. add to /etc/auto_master
	$len = grep { $_->[2] eq "autofs" } (&list_mounts());
	open(AUTOTAB, ">> $config{autofs_file}");
	print AUTOTAB "$_[0] $_[1]",($_[3] eq "-" ? "" : " -$_[3]"),"\n";
	close(AUTOTAB);
	}
else {
	# Add to the fstab file
	$len = grep { $_->[2] ne "autofs" } (&list_mounts());
	open(FSTAB, ">> $config{fstab_file}");
	if ($_[2] eq "ufs" || $_[2] eq "s5fs") {
		($fsck = $_[1]) =~ s/\/dsk\//\/rdsk\//g;
		}
	else { $fsck = "-"; }
	if ($_[2] eq "swap") { $dir = "-"; }
	else { $dir = $_[0]; }
	print FSTAB "$_[1]  $fsck  $dir  $_[2]  $_[4]  $_[5]  $_[3]\n";
	close(FSTAB);
	}
return $len;
}


# delete_mount(index)
# Delete some mount from the table
sub delete_mount
{
local(@fstab, $i, $line, $_);
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
$i = 0;

open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $i++ == $_[0]) {
		# found the line not to include
		}
	else { print FSTAB $_,"\n"; }
	}
close(FSTAB);

open(AUTOTAB, $config{autofs_file});
@autotab = <AUTOTAB>;
close(AUTOTAB);
open(AUTOTAB, "> $config{autofs_file}");
foreach (@autotab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $line !~ /^[+\-]/ && $i++ == $_[0]) {
		# found line not to include..
		}
	else { print AUTOTAB $_,"\n"; }
	}
close(AUTOTAB);
}


# change_mount(num, directory, device, type, options, fsck_order, mount_at_boot)
# Change an existing permanent mount
sub change_mount
{
local(@fstab, @autotab, $i, $line, $fsck, $dir, $_);
$i = 0;

open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $i++ == $_[0]) {
		# Found the line to replace
		if ($_[3] eq "ufs" || $_[3] eq "s5fs") {
			($fsck = $_[2]) =~ s/\/dsk\//\/rdsk\//g;
			}
		else { $fsck = "-"; }
		if ($_[3] eq "swap") { $dir = "-"; }
		else { $dir = $_[1]; }
		print FSTAB "$_[2]  $fsck  $dir  $_[3]  $_[5]  $_[6]  $_[4]\n";
		}
	else { print FSTAB $_,"\n"; }
	}
close(FSTAB);

open(AUTOTAB, $config{autofs_file});
@autotab = <AUTOTAB>;
close(AUTOTAB);
open(AUTOTAB, "> $config{autofs_file}");
foreach (@autotab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $line !~ /^[+\-]/ && $i++ == $_[0]) {
		# Found the line to replace
		print AUTOTAB "$_[1]  $_[2]  ",
				($_[4] eq "-" ? "" : "-$_[4]"),"\n";
		}
	else { print AUTOTAB $_,"\n"; }
	}
close(AUTOTAB);
}


# list_mounted()
# Return a list of all the currently mounted filesystems and swap files.
# The list is in the form:
#  directory device type options
# For swap files, the directory will be 'swap'
sub list_mounted
{
local(@rv, @p, $_, $i, $r);
foreach (split(/\n/, `/usr/sbin/mount`)) {
	if (/^(\S+)\s+on\s+(\S+)\s+type\s+(\S+)\s+\((.*)\)/) {
		local $opts = $3;
		$opts =~ s/\s+//g;
		push(@rv, [ $2, $1, $3, $opts ]);
		}
	}
return @rv;
}


# mount_dir(directory, device, type, options)
# Mount a new directory from some device, with some options. Returns 0 if ok,
# or an error string if failed. If the directory is 'swap', then mount as
# virtual memory.
sub mount_dir
{
local($out, $opts);
if ($_[0] eq "swap") {
	# Adding a swap device
	$out = `swap -a $_[1] 2>&1`;
	if ($?) { return $out; }
	}
else {
	# Mounting a directory
	if ($_[2] eq "cachefs") {
		# Mounting a caching filesystem.. need to create cache first
		local(%options);
		&parse_options("cachefs", $_[3]);
		if (!(-r "$options{cachedir}/.cfs_resource")) {
			# The cache directory does not exist.. set it up
			if (-d $options{cachedir} &&
			    !rmdir($options{"cachedir"})) {
				return "The directory $options{cachedir} ".
				       "already exists. Delete it";
				}
			$out = `cfsadmin -c $options{cachedir} 2>&1`;
			if ($?) { return $out; }
			}
		}
	if ($_[2] eq "rumba") {
		# call 'rumba' to mount
		local(%options, $shortname, $shar, $opts, $rv);
		&parse_options("rumba", $_[3]);
		$shortname = hostname();
		if ($shortname =~ /^([^\.]+)\.(.+)$/) { $shortname = $1; }
		$_[1] =~ /^\\\\(.+)\\(.+)$/;
		$shar = "//".($options{machinename} ?$options{machinename} :$1).
			"/$2";
		$opts = ("-s $1 ").
		 (defined($options{'clientname'}) ?
			"-c $options{'clientname'} " : "-c $shortname ").
		 (defined($options{'username'}) ?
			"-U $options{'username'} " : "").
		 (defined($options{'uid'}) ? "-u $options{'uid'} " : "").
		 (defined($options{'gid'}) ? "-g $options{'gid'} " : "").
		 (defined($options{'fmode'}) ? "-f $options{'fmode'} " : "").
		 (defined($options{'dmode'}) ? "-d $options{'dmode'} " : "").
		 (defined($options{'noupper'}) ? "-C " : "").
		 (defined($options{'password'}) ?
			"-P $options{'password'} " : "-n ").
		 (defined($options{'readwrite'}) ? "-S " : "").
		 (defined($options{'readonly'}) ? "-w " : "").
		 (defined($options{'attr'}) ? "-e " : "");
		local $rtemp = &tempname();
		$rv = system("rumba \"$shar\" $_[0] $opts >$rtemp 2>&1 </dev/null");
		$out = `cat $rtemp`; unlink($rtemp);
		if ($rv) { return "<pre>$out</pre> : rumba \"$shar\" $_[0] $opts"; }
		}
	else {
		$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
		$out = `mount -F $_[2] $opts -- $_[1] $_[0] 2>&1`;
		if ($?) { return $out; }
		}
	}
return 0;
}


# unmount_dir(directory, device, type)
# Unmount a directory (or swap device) that is currently mounted. Returns 0 if
# ok, or an error string if failed
sub unmount_dir
{
if ($_[0] eq "swap") {
	$out = `swap -d $_[1] 2>&1`;
	}
elsif ($_[2] eq "rumba") {
	# kill the process (if nobody is in the directory)
	$dir = $_[0];
	if (`fuser -c $_[0] 2>/dev/null` =~ /\d/) { return "$_[0] is busy"; }
	if (`cat /etc/mnttab` =~ /rumba-(\d+)\s+$dir\s+nfs/) {
		&kill_logged('TERM', $1) || return "Failed to kill rumba";
		}
	else { return "Failed to find rumba pid"; }
	sleep(1);
	}
else {
	$out = `umount $_[0] 2>&1`;
	}
if ($?) { return $out; }
return 0;
}


# disk_space(type, directory)
# Returns the amount of total and free space for some filesystem, or an
# empty array if not appropriate.
sub disk_space
{
if (&get_mounted($_[1], "*") < 0) { return (); }
if ($_[0] eq "fd" || $_[0] eq "proc" || $_[0] eq "swap" || $_[0] eq "autofs") {
	return ();
	}
`df -k $_[1]` =~ /Mounted on\n\S+\s+(\S+)\s+\S+\s+(\S+)/;
return ($1, $2);
}


# list_fstypes()
# Returns an array of all the supported filesystem types. If a filesystem is
# found that is not one of the supported types, generate_location() and
# generate_options() will not be called for it.
sub list_fstypes
{
return ("ufs", "nfs", "advfs");
}


# fstype_name(type)
# Given a short filesystem type, return a human-readable name for it
sub fstype_name
{
local(%fsmap);
%fsmap = ("ufs","OSF Unix Filesystem",
	  "nfs","Network Filesystem",
	  "advfs","Advanced File System",
	  "procfs","Process Image Filesystem");
return $config{long_fstypes} && $fsmap{$_[0]} ? $fsmap{$_[0]} : uc($_[0]);
}


# mount_modes(type)
# Given a filesystem type, returns 4 numbers that determine how the file
# system can be mounted, and whether it can be fsck'd
sub mount_modes
{
if ($_[0] eq "ufs" || $_[0] eq "cachefs" || $_[0] eq "s5fs") {
	return (2, 1, 1, 0);
	}
elsif ($_[0] eq "rumba") { return (0, 1, 0, 0); }
else { return (2, 1, 0, 0); }
}


# multiple_mount(type)
# Returns 1 if filesystems of this type can be mounted multiple times, 0 if not
sub multiple_mount
{
return ($_[0] eq "nfs" || $_[0] eq "tmpfs" || $_[0] eq "cachefs" ||
        $_[0] eq "autofs" || $_[0] eq "lofs" || $_[0] eq "rumba");
}


# generate_location(type, location)
# Output HTML for editing the mount location of some filesystem.
sub generate_location
{
if ($_[0] eq "nfs") {
	# NFS mount from some host and directory
	if ($_[1] =~ /^nfs:/) { $nfsmode = 2; }
	elsif (!$_[1] || $_[1] =~ /^([A-z0-9\-\.]+):([^,]+)$/) {
		$nfsmode = 0; $nfshost = $1; $nfspath = $2;
		}
	else { $nfsmode = 1; }
	if ($gconfig{'os_version'} >= 2.6) {
		# Solaris 2.6 can list multiple NFS servers in mount
		print "<tr> <td><b>NFS Source</b></td>\n";
		printf "<td><input type=radio name=nfs_serv value=0 %s>\n",
			$nfsmode == 0 ? "checked" : "";
		print "<b>NFS Hostname</b></td>\n";
		print "<td><input name=nfs_host size=20 value=\"$nfshost\">\n";
		&nfs_server_chooser_button("nfs_host");
		print "&nbsp;<b>NFS Directory</b>\n";
		print "<input name=nfs_dir size=20 value=\"$nfspath\">\n";
		&nfs_export_chooser_button("nfs_host", "nfs_dir");
		print "</td> </tr>\n";

		print "<tr> <td></td>\n";
		printf "<td><input type=radio name=nfs_serv value=1 %s>\n",
			$nfsmode == 1 ? "checked" : "";
		print "<b>Multiple NFS Servers</b></td>\n";
		printf "<td><input name=nfs_list size=40 value=\"%s\">\n",
			$nfsmode == 1 ? $_[1] : "";
		print "</td> </tr>\n";

		if ($gconfig{'os_version'} >= 7) {
			print "<tr> <td></td> <td>\n";
			printf "<input type=radio name=nfs_serv value=2 %s>\n",
				$nfsmode == 2 ? "checked" : "";
			print "<b>WebNFS URL</b></td> <td>\n";
			printf "<input name=nfs_url size=40 value=\"%s\">\n",
				$nfsmode == 2 ? $_[1] : "";
			print "</td> </tr>\n";
			}
		}
	else {
		print "<tr> <td><b>NFS Hostname</b></td>\n";
		print "<td><input name=nfs_host size=20 value=\"$nfshost\">\n";
		&nfs_server_chooser_button("nfs_host");
		print "</td>\n";
		print "<td><b>NFS Directory</b></td>\n";
		print "<td><input name=nfs_dir size=20 value=\"$nfspath\">\n";
		&nfs_export_chooser_button("nfs_host", "nfs_dir");
		print "</td> </tr>\n";
		}
	}
elsif ($_[0] eq "tmpfs") {
	# Location is irrelevant for tmpfs filesystems
	}
elsif ($_[0] eq "ufs") {
	# Mounted from a normal disk, raid (MD) device or from
	# somewhere else
	print "<tr> <td valign=top><b>UFS Disk</b></td>\n";
	print "<td colspan=3>\n";
	if ($_[1] =~ /^\/dev\/dsk\/c([0-9]+)t([0-9]+)d([0-9]+)s([0-9]+)$/) {
		$ufs_dev = 0;
		$scsi_c = $1; $scsi_t = $2; $scsi_d = $3; $scsi_s = $4;
		}
	elsif ($_[1] eq "") {
		$ufs_dev = 0; $scsi_c = $scsi_t = $scsi_s = $scsi_d = 0;
		}
	elsif ($_[1] =~ /^\/dev\/md\/dsk\/d([0-9]+)$/) {
		$ufs_dev = 1; $scsi_md = $1;
		}
	else {
		$ufs_dev = 2; $scsi_path = $_[1];
		}
	printf "<input type=radio name=ufs_dev value=0 %s> SCSI Disk:\n",
		$ufs_dev == 0 ? "checked" : "";
	print "Controller <input name=ufs_c size=3 value=\"$scsi_c\">\n";
	print "Target <input name=ufs_t size=3 value=\"$scsi_t\">\n";
	print "Unit <input name=ufs_d size=3 value=\"$scsi_d\">\n";
	print "Partition <input name=ufs_s size=3 value=\"$scsi_s\"><br>\n";

	printf "<input type=radio name=ufs_dev value=1 %s> RAID Device:\n",
		$ufs_dev == 1 ? "checked" : "";
	print "Unit <input name=ufs_md size=3 value=\"$scsi_md\"><br>\n";

	printf "<input type=radio name=ufs_dev value=2 %s> Other Device:\n",
		$ufs_dev == 2 ? "checked" : "";
	print "<input name=ufs_path size=20 value=\"$scsi_path\"><br>\n";
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swapping to a disk partition or a file
	print "<tr> <td valign=top><b>Swap File</b></td>\n";
	print "<td colspan=3>\n";
	if ($_[1] =~ /^\/dev\/dsk\/c([0-9]+)t([0-9]+)d([0-9]+)s([0-9]+)$/) {
		$swap_dev = 0;
		$scsi_c = $1; $scsi_t = $2; $scsi_d = $3; $scsi_s = $4;
		}
	elsif ($_[1] eq "") {
		$swap_dev = 1; $scsi_path = "";
		}
	else {
		$swap_dev = 1; $scsi_path = $_[1];
		}
	printf "<input type=radio name=swap_dev value=0 %s> SCSI Disk:\n",
		$swap_dev == 0 ? "checked" : "";
	print "Controller <input name=swap_c size=3 value=\"$scsi_c\">\n";
	print "Target <input name=swap_t size=3 value=\"$scsi_t\">\n";
	print "Unit <input name=swap_d size=3 value=\"$scsi_d\">\n";
	print "Partition <input name=swap_s size=3 value=\"$scsi_s\"><br>\n";

	printf "<input type=radio name=swap_dev value=1 %s> File:\n",
		$swap_dev == 1 ? "checked" : "";
	print "<input name=swap_path size=20 value=\"$scsi_path\"><br>\n";
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "hsfs") {
	# Mounting a SCSI cdrom
	print "<tr> <td valign=top><b>CDROM Disk</b></td>\n";
	print "<td colspan=3>\n";
	if ($_[1] =~ /^\/dev\/dsk\/c([0-9]+)t([0-9]+)d([0-9]+)s([0-9]+)$/) {
		$hsfs_dev = 0;
		$scsi_c = $1; $scsi_t = $2; $scsi_d = $3; $scsi_s = $4;
		}
	elsif ($_[1] eq "") {
		$hsfs_dev = 0;
		$scsi_c = 0; $scsi_t = 6; $scsi_d = 0; $scsi_s = 0;
		}
	else {
		$hsfs_dev = 1; $scsi_path = $_[1];
		}
	printf "<input type=radio name=hsfs_dev value=0 %s> SCSI Device:\n",
		$hsfs_dev == 0 ? "checked" : "";
	print "Controller <input name=hsfs_c size=3 value=\"$scsi_c\">\n";
	print "Target <input name=hsfs_t size=3 value=\"$scsi_t\">\n";
	print "Unit <input name=hsfs_d size=3 value=\"$scsi_d\">\n";
	print "Partition <input name=hsfs_s size=3 value=\"$scsi_s\"><br>\n";

	printf "<input type=radio name=hsfs_dev value=1 %s> Other Device:\n",
		$hsfs_dev == 1 ? "checked" : "";
	print "<input name=hsfs_path size=20 value=\"$scsi_path\"><br>\n";
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "pcfs") {
	# Mounting a SCSI msdos filesystem
	print "<tr> <td valign=top><b>MS-DOS Disk</b></td>\n";
	print "<td colspan=3>\n";
	if ($_[1] =~ /^\/dev\/dsk\/c([0-9]+)t([0-9]+)d([0-9]+)s([0-9]+)$/) {
		$pcfs_dev = 0;
		$scsi_c = $1; $scsi_t = $2; $scsi_d = $3; $scsi_s = $4;
		}
	elsif ($_[1] eq "") {
		$pcfs_dev = 1; $scsi_path = "";
		}
	else {
		$pcfs_dev = 1; $scsi_path = $_[1];
		}
	printf "<input type=radio name=pcfs_dev value=0 %s> SCSI Device:\n",
		$pcfs_dev == 0 ? "checked" : "";
	print "Controller <input name=pcfs_c size=3 value=\"$scsi_c\">\n";
	print "Target <input name=pcfs_t size=3 value=\"$scsi_t\">\n";
	print "Unit <input name=pcfs_d size=3 value=\"$scsi_d\">\n";
	print "Partition <input name=pcfs_s size=3 value=\"$scsi_s\"><br>\n";

	printf "<input type=radio name=pcfs_dev value=1 %s> Other Device:\n",
		$pcfs_dev == 1 ? "checked" : "";
	print "<input name=pcfs_path size=20 value=\"$scsi_path\"><br>\n";
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "lofs") {
	# Mounting some directory to another location
	print "<tr> <td><b>Original Directory</b></td>\n";
	print "<td><input name=lofs_src size=30 value=\"$_[1]\">\n";
	print &file_chooser_button("lofs_src", 1);
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "cachefs") {
	# Mounting a cached filesystem of some type.. need a location for
	# the source of the mount
	print "<tr> <td><b>Cache Source</b></td>\n";
	print "<td><input name=cfs_src size=20 value=\"$_[1]\"></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	# An automounter entry.. can be -hosts, -xfn or from some mapping
	print "<tr> <td valign=top><b>Automounter map</b></td>\n";
	printf "<td><input type=radio name=autofs_type value=0 %s>\n",
		$_[1] eq "-hosts" || $_[1] eq "-xfn" ? "" : "checked";
	printf "Use map <input name=autofs_map size=20 value=\"%s\"><br>\n",
		$_[1] eq "-hosts" || $_[1] eq "-xfn" ? "" : $_[1];
	printf "<input type=radio name=autofs_type value=1 %s>\n",
		$_[1] eq "-hosts" ? "checked" : "";
	print "All NFS exports map<br>\n";
	printf "<input type=radio name=autofs_type value=2 %s>\n",
		$_[1] eq "-xfn" ? "checked" : "";
	print "Federated  Naming  Service map</td> </tr>\n";
	}
elsif ($_[0] eq "rumba") {
	# Windows filesystem
	$_[1] =~ /^\\\\(.*)\\(.*)$/;
	print "<tr> <td><b>Server Name</b></td>\n";
	print "<td><input name=rumba_server value=\"$1\" size=20>\n";
	&smb_server_chooser_button("rumba_server");
	print "</td>\n";
	print "<td><b>Share Name</b></td>\n";
	print "<td><input name=rumba_share value=\"$2\" size=20>\n";
	&smb_share_chooser_button("rumba_server", "rumba_share");
	print "</td> </tr>\n";
	}
}


# generate_options(type, newmount)
# Output HTML for editing mount options for a partilcar filesystem 
# under this OS
sub generate_options
{
if ($_[0] eq "nfs") {
	# Solaris NFS has many options, not all of which are editable here
	print "<tr> <td><b>Read-Only?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_ro value=1 %s> Yes\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=nfs_ro value=0 %s> No</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>Disallow setuid programs?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_nosuid value=1 %s> Yes\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=nfs_nosuid value=0 %s> No</td> </tr>\n",
		defined($options{"nosuid"}) ? "" : "checked";

	print "<tr> <td><b>Files inherit parent GID?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_grpid value=0 %s> Yes\n",
		defined($options{"grpid"}) ? "" : "checked";
	printf "<input type=radio name=nfs_grpid value=1 %s> No</td>\n",
		defined($options{"grpid"}) ? "checked" : "";

	print "<td><b>Return error on timeouts?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_soft value=1 %s> Yes\n",
		defined($options{"soft"}) ? "checked" : "";
	printf "<input type=radio name=nfs_soft value=0 %s> No</td> </tr>\n",
		defined($options{"soft"}) ? "" : "checked";

	print "<tr> <td><b>Retry mounts in background?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_bg value=1 %s> Yes\n",
		defined($options{"bg"}) ? "checked" : "";
	printf "<input type=radio name=nfs_bg value=0 %s> No</td>\n",
		defined($options{"bg"}) ? "" : "checked";

	print "<td><b>Display quotas?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_quota value=1 %s> Yes\n",
		defined($options{"quota"}) ? "checked" : "";
	printf "<input type=radio name=nfs_quota value=0 %s> No</td> </tr>\n",
		defined($options{"quota"}) ? "" : "checked";

	print "<tr> <td><b>Allow user interrupt?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_nointr value=0 %s> Yes\n",
		defined($options{"nointr"}) ? "" : "checked";
	printf "<input type=radio name=nfs_nointr value=1 %s> No</td>\n",
		defined($options{"nointr"}) ? "checked" : "";

	print "<td><b>NFS version</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_vers_def value=1 %s> Highest\n",
		defined($options{"vers"}) ? "" : "checked";
	printf "<input type=radio name=nfs_vers_def value=0 %s>\n",
		defined($options{"vers"}) ? "checked" : "";
	print "<input size=1 name=nfs_vers value=$options{vers}></td> </tr>\n";

	print "<tr> <td><b>Protocol</b></td>\n";
	print "<td nowrap><select name=proto>\n";
	printf "<option value=\"\" %s> Default\n",
		defined($options{"proto"}) ? "" : "selected";
	foreach (split(/\n/, `cat /etc/netconfig`)) {
		if (!/^([A-z0-9\_\-]+)\s/) { next; }
		printf "<option value=\"$1\" %s> $1\n",
			$options{"proto"} eq $1 ? "selected" : "";
		}
	print "</select></td>\n";

	print "<td><b>NFS Port</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_port_def value=1 %s> Default\n",
		defined($options{"port"}) ? "" : "checked";
	printf "<input type=radio name=nfs_port_def value=0 %s>\n",
		defined($options{"port"}) ? "checked" : "";
	print "<input size=5 name=nfs_port value=$options{port}></td> </tr>\n";

	print "<tr> <td><b>Timeout</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_timeo_def value=1 %s> Default\n",
		defined($options{"timeo"}) ? "" : "checked";
	printf "<input type=radio name=nfs_timeo_def value=0 %s>\n",
		defined($options{"timeo"}) ? "checked" : "";
	printf "<input size=5 name=nfs_timeo value=$options{timeo}></td>\n";

	print "<td><b>Number of Retransmissions</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_retrans_def value=1 %s> Default\n",
		defined($options{"retrans"}) ? "" : "checked";
	printf "<input type=radio name=nfs_retrans_def value=0 %s>\n",
		defined($options{"retrans"}) ? "checked" : "";
	print "<input size=5 name=nfs_retrans value=$options{retrans}></td> </tr>\n";

	print "<tr> <td><b>Authentication</b></td>\n";
	$nfs_auth = $options{'sec'} ? $options{'sec'} :
		    defined($options{"secure"}) ? "dh" :
		    defined($options{"kerberos"}) ? "krb" : "";
	print "<td><select name=nfs_auth>\n";
	printf "<option value=\"\" %s> None\n",
		$nfs_auth eq "" ? "selected" : "";
	printf "<option value=dh %s> DES\n",
		$nfs_auth eq "dh" ? "selected" : "";
	printf "<option value=krb %s> Kerberos\n",
		$nfs_auth eq "krb" ? "selected" : "";
	print "</select></td>\n";

	if ($gconfig{'os_version'} >= 7) {
		print "<td><b>WebNFS mount?</b></td> <td>\n";
		printf "<input type=radio name=nfs_public value=1 %s> Yes\n",
			defined($options{'public'}) ? "checked" : "";
		printf "<input type=radio name=nfs_public value=0 %s> No\n",
			defined($options{'public'}) ? "" : "checked";
		print "</td>\n";
		}
	print "</tr>\n";
	}
if ($_[0] eq "ufs") {
	# Solaris UFS also has many options, not all of which are here
	print "<tr> <td><b>Read-Only?</b></td>\n";
	printf "<td nowrap><input type=radio name=ufs_ro value=1 %s> Yes\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=ufs_ro value=0 %s> No</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>Disallow setuid programs?</b></td>\n";
	printf "<td nowrap><input type=radio name=ufs_nosuid value=1 %s> Yes\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=ufs_nosuid value=0 %s> No</td> </tr>\n",
		defined($options{"nosuid"}) ? "" : "checked";

	print "<tr> <td><b>Allow user interrupt?</b></td>\n";
	printf "<td nowrap><input type=radio name=ufs_nointr value=0 %s> Yes\n",
		defined($options{"nointr"}) ? "" : "checked";
	printf "<input type=radio name=ufs_nointr value=1 %s> No</td>\n",
		defined($options{"nointr"}) ? "checked" : "";

	print "<td><b>Enable quotas at boot time?</b></td>\n";
	printf "<td nowrap><input type=radio name=ufs_quota value=1 %s> Yes\n",
		defined($options{"quota"}) || defined($options{"rq"}) ?
			"checked" : "";
	printf "<input type=radio name=ufs_quota value=0 %s> No</td> </tr>\n",
		defined($options{"quota"}) || defined($options{"rq"}) ?
			"" : "checked";

	print "<tr> <td><b>Action on error</b></td>\n";
	print "<td><select name=ufs_onerror>\n";
	foreach ('panic', 'lock', 'umount', 'repair') {
		printf "<option value=\"$_\" %s> $_\n",
		 $options{onerror} eq $_ ||
		 !defined($options{onerror}) && $_ eq "panic" ? "selected" : "";
		}
	print "</select></td>\n";

	print "<td><b>Repair Delay</b></td>\n";
	$options{toosoon} =~ /([0-9]+)([A-z])/;
	print "<td nowrap><input size=5 name=ufs_toosoon_time value=$1>\n";
	print "<select name=ufs_toosoon_units>\n";
	printf "<option value=s %s> Seconds\n", $2 eq "s" ? "selected" : "";
	printf "<option value=m %s> Minutes\n", $2 eq "m" ? "selected" : "";
	printf "<option value=h %s> Hours\n", $2 eq "h" ? "selected" : "";
	printf "<option value=d %s> Days\n", $2 eq "d" ? "selected" : "";
	printf "<option value=w %s> Months\n", $2 eq "w" ? "selected" : "";
	printf "<option value=y %s> Years\n", $2 eq "y" ? "selected" : "";
	print "</select></td> </tr>\n";

	if ($gconfig{'os_version'} >= 7) {
		print "<tr> <td><b>Update access times?</b></td> <td>\n";
		printf "<input type=radio name=ufs_noatime value=0 %s> Yes\n",
			defined($options{'noatime'}) ? "" : "checked";
		printf "<input type=radio name=ufs_noatime value=1 %s> No\n",
			defined($options{'noatime'}) ? "checked" : "";
		print "</td>\n";

		print "<td><b>Force direct IO?</b></td> <td>\n";
		printf "<input type=radio name=ufs_force value=1 %s> Yes\n",
			defined($options{'forcedirectio'}) ? "checked" : "";
		printf "<input type=radio name=ufs_force value=0 %s> No\n",
			defined($options{'forcedirectio'}) ? "" : "checked";
		print "</td> </tr>\n";

		print "<tr> <td><b>Allow large files?</td> <td>\n";
		printf "<input type=radio name=ufs_nolarge value=0 %s> Yes\n",
			defined($options{'nolargefiles'}) ? "" : "checked";
		printf "<input type=radio name=ufs_nolarge value=1 %s> No\n",
			defined($options{'nolargefiles'}) ? "checked" : "";
		print "</td>\n";

		print "<td><b>Enabled logging?</td> <td>\n";
		printf "<input type=radio name=ufs_logging value=1 %s> Yes\n",
			defined($options{'logging'}) ? "checked" : "";
		printf "<input type=radio name=ufs_logging value=0 %s> No\n",
			defined($options{'logging'}) ? "" : "checked";
		print "</td> </tr>\n";
		}
	}
if ($_[0] eq "hsfs") {
	# Solaris hsfs is used for CDROMs
	print "<tr> <td><b>Ignore Unix attributes?</b></td>\n";
	printf "<td nowrap><input type=radio name=hsfs_nrr value=1 %s> Yes\n",
		defined($options{"nrr"}) ? "checked" : "";
	printf "<input type=radio name=hsfs_nrr value=0 %s> No</td>\n",
		defined($options{"nrr"}) ? "" : "checked";

	print "<td><b>Ignore trailing dot?</b></td>\n";
	printf "<td nowrap><input type=radio name=hsfs_notraildot value=1 %s> Yes\n",
		defined($options{"notraildot"}) ? "checked" : "";
	printf "<input type=radio name=hsfs_notraildot value=0 %s> No</td> </tr>\n",
		defined($options{"notraildot"}) ? "" : "checked";

	print "<tr> <td><b>Use lower case?</b></td>\n";
	printf "<td nowrap><input type=radio name=hsfs_nomaplcase value=0 %s> Yes\n",
		defined($options{"nomaplcase"}) ? "" : "checked";
	printf "<input type=radio name=hsfs_nomaplcase value=1 %s> No</td>\n",
		defined($options{"nomaplcase"}) ? "checked" : "";

	print "<td><b>Disallow setuid programs?</b></td>\n";
	printf"<td nowrap><input type=radio name=hsfs_nosuid value=1 %s> Yes\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=hsfs_nosuid value=0 %s> No</td> </tr>\n",
		defined($options{"nosuid"}) ? "" : "checked";
	}
if ($_[0] eq "pcfs") {
	# Solaris pcfs for for FAT filesystems. It doesn't have many options
	print "<tr> <td width=25%><b>Read Only?</b></td> <td width=25%>\n";
	printf "<input type=radio name=pcfs_ro value=1 %s> Yes\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=pcfs_ro value=0 %s> No</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	if ($gconfig{'os_version'} >= 7) {
		print "<td><b>Force lower case?</b></td> <td>\n";
		printf "<input type=radio name=pcfs_foldcase value=1 %s> Yes\n",
			defined($options{'foldcase'}) ? "checked" : "";
		printf "<input type=radio name=pcfs_foldcase value=0 %s> No\n",
			defined($options{'foldcase'}) ? "" : "checked";
		print "</td>\n";
		}
	else {
		print "<td colspan=2></td> </tr>\n";
		}
	}
if ($_[0] eq "lofs") {
	# No options as far as I know
	print "<tr> <td><i>No Options Available</i></td> </tr>\n";
	}
if ($_[0] eq "tmpfs") {
	# Solaris tmpfs (virtual memory) filesystem. Only one option
	print "<tr> <td><b>Size</b>&nbsp;&nbsp;&nbsp;</td>\n";
	printf"<td><input type=radio name=tmpfs_size_def value=1 %s> Maximum\n",
		defined($options{"size"}) ? "" : "checked";
	printf"&nbsp;&nbsp;<input type=radio name=tmpfs_size_def value=0 %s>\n",
		defined($options{"size"}) ? "checked" : "";
	($tmpsz = $options{size}) =~ s/[A-z]+$//g;
	print "<input name=tmpfs_size size=6 value=\"$tmpsz\">\n";
	print "<select name=tmpfs_unit>\n";
	printf "<option value=m %s> MB\n",
		$options{"size"} =~ /m$/ ? "selected" : "";
	printf "<option value=k %s> kB\n",
		$options{"size"} =~ /k$/ ? "selected" : "";
	printf "<option value=b %s> bytes\n",
		$options{"size"} !~ /(k|m)$/ ? "selected" : "";
	print "</select></td>\n";
	print "<td colsan=2></td> </tr>\n";
	}
if ($_[0] eq "swap") {
	# Solaris swap has no options
	print "<tr> <td><i>No Options Available</i></td> </tr>\n";
	}
if ($_[0] eq "cachefs") {
	# The caching filesystem has lots of options.. cachefs mounts can
	# be of an existing 'manually' mounted back filesystem, or of a
	# back-filesystem that has been automatically mounted by the cache.
	# The user should never see the automatic mountings made by cachefs.
	print "<tr> <td><b>Real filesystem type</b></td>\n";
	print "<td nowrap><select name=cfs_backfstype>\n";
	if (!defined($options{backfstype})) { $options{backfstype} = "nfs"; }
	foreach (&list_fstypes()) {
		if ($_ eq "cachefs") { next; }
		printf "<option value=\"$_\" %s>$_\n",
			$_ eq $options{backfstype} ? "selected" : "";
		}
	print "</select></td>\n";

	print "<td><b>Real mount point</b></td>\n";
	printf"<td nowrap><input type=radio name=cfs_noback value=1 %s> Automatic\n",
		defined($options{"backpath"}) ? "" : "checked";
	printf "<input type=radio name=cfs_noback value=0 %s>\n",
		defined($options{"backpath"}) ? "checked" : "";
	print "<input size=10 name=cfs_backpath value=\"$options{backpath}\"></td> </tr>\n";

	print "<tr> <td><b>Cache directory</b></td>\n";
	printf "<td nowrap><input size=10 name=cfs_cachedir value=\"%s\"></td>\n",
		defined($options{"cachedir"}) ? $options{"cachedir"} : "/cache";

	print "<td><b>Write mode</b></td>\n";
	printf"<td nowrap><input type=radio name=cfs_wmode value=0 %s> Write-around\n",
		defined($options{"non-shared"}) ? "" : "checked";
	printf "<input type=radio name=cfs_wmode value=1 %s> Non-shared\n",
		defined($options{"non-shared"}) ? "checked" : "";
	print "</td> </tr>\n";

	print "<tr> <td><b>Consistency check</b></td>\n";
	print "<td><select name=cfs_con>\n";
	print "<option value=1> Periodically\n";
	printf "<option value=0 %s> Never\n",
		defined($options{"noconst"}) ? "selected" : "";
	printf "<option value=2 %s> On demand\n",
		defined($options{"demandconst"}) ? "selected" : "";
	print "</select></td>\n";

	print "<td><b>Check permissions in cache?</b></td>\n";
	printf "<td nowrap><input type=radio name=cfs_local value=1 %s> Yes\n",
		defined($options{"local-access"}) ? "checked" : "";
	printf "<input type=radio name=cfs_local value=0 %s> No</td> </tr>\n",
		defined($options{"local-access"}) ? "" : "checked";

	print "<tr> <td><b>Read-Only?</b></td>\n";
	printf "<td nowrap><input type=radio name=cfs_ro value=1 %s> Yes\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=cfs_ro value=0 %s> No</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>Disallow setuid programs?</b></td>\n";
	printf "<td nowrap><input type=radio name=cfs_nosuid value=1 %s> Yes\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=cfs_nosuid value=0 %s> No</td> </tr>\n",
		defined($options{"nosuid"}) ? "" : "checked";
	}
if ($_[0] eq "autofs") {
	# Autofs has lots of options, depending on the type of file
	# system being automounted.. the fstype options determines this
	local($fstype);
	$fstype = $options{fstype} eq "" ? "nfs" : $options{fstype};
	if ($gconfig{'os_version'} >= 2.6) {
		print "<tr> <td><b>Browsing enabled?</b></td> <td>\n";
		printf "<input type=radio name=auto_nobrowse value=0 %s> Yes\n",
			defined($options{'nobrowse'}) ? "" : "checked";
		printf "<input type=radio name=auto_nobrowse value=1 %s> No\n",
			defined($options{'nobrowse'}) ? "checked" : "";
		print "</td> <td colspan=2></td> </tr>\n";
		}
	&generate_options($fstype);
	print "<input type=hidden name=autofs_fstype value=\"$fstype\">\n";
	}
if ($_[0] eq "rumba") {
	# SMB filesystems have a few options..
	print "<tr> <td><b>Server Hostname</b></td>\n";
	printf "<td><input type=radio name=rumba_mname_def value=1 %s> Automatic\n",
		defined($options{"machinename"}) ? "" : "checked";
	printf "<input type=radio name=rumba_mname_def value=0 %s>\n",
		defined($options{"machinename"}) ? "checked" : "";
	print "<input size=10 name=rumba_mname value=\"$options{machinename}\"></td>\n";

	print "<td><b>Client Name</b></td>\n";
	printf "<td><input type=radio name=rumba_cname_def value=1 %s> Automatic\n",
		defined($options{"clientname"}) ? "" : "checked";
	printf "<input type=radio name=rumba_cname_def value=0 %s>\n",
		defined($options{"clientname"}) ? "checked" : "";
	print "<input size=10 name=rumba_cname value=\"$options{clientname}\"></td> </tr>\n";

	print "<tr> <td><b>Login Name</b></td>\n";
	print "<td><input name=rumba_username size=15 value=\"$options{username}\"></td>\n";

	print "<td><b>Login Password</b></td>\n";
	print "<td><input type=password name=rumba_password size=15 value=\"$options{password}\"></td> </tr>\n";

	print "<tr> <td><b>User files are owned by</b></td>\n";
	printf "<td><input name=rumba_uid size=8 value=\"%s\">\n",
		defined($options{'uid'}) ? getpwuid($options{'uid'}) : "";
	print &user_chooser_button("rumba_uid", 0),"</td>\n";

	print "<td><b>Group files are owned by</b></td>\n";
	printf "<td><input name=rumba_gid size=8 value=\"%s\">\n",
		defined($options{'gid'}) ? getgrgid($options{'gid'}) : "";
	print &group_chooser_button("rumba_gid", 0),"</td>\n";

	print "<tr> <td><b>File permissions</b></td>\n";
	printf "<td><input name=rumba_fmode size=5 value=\"%s\"></td>\n",
		defined($options{fmode}) ? $options{fmode} : "755";

	print "<td><b>Directory permissions</b></td>\n";
	printf "<td><input name=rumba_dmode size=5 value=\"%s\"></td> </tr>\n",
		defined($options{dmode}) ? $options{dmode} : "755";

	print "<tr> <td><b>Read/write access is safe?</b></td>\n";
	printf"<td nowrap><input type=radio name=rumba_readwrite value=1 %s> Yes\n",
		defined($options{"readwrite"}) ? "checked" : "";
	printf "<input type=radio name=rumba_readwrite value=0 %s> No</td>\n",
		defined($options{"readwrite"}) ? "" : "checked";

	print "<td><b>Files can be read-only?</b></td>\n";
	printf"<td nowrap><input type=radio name=rumba_readonly value=1 %s> Yes\n",
		defined($options{"readonly"}) ? "checked" : "";
	printf "<input type=radio name=rumba_readonly value=0 %s> No</td> </tr>\n",
		defined($options{"readonly"}) ? "" : "checked";

	print "<tr> <td><b>Send password in upper case?</b></td>\n";
	printf"<td nowrap><input type=radio name=rumba_noupper value=0 %s> Yes\n",
		defined($options{"noupper"}) ? "" : "checked";
	printf "<input type=radio name=rumba_noupper value=1 %s> No</td>\n",
		defined($options{"noupper"}) ? "checked" : "";

	print "<td><b>Use attrE commands?</b></td>\n";
	printf"<td nowrap><input type=radio name=rumba_attr value=1 %s> Yes\n",
		defined($options{"attr"}) ? "checked" : "";
	printf "<input type=radio name=rumba_attr value=0 %s> No</td> </tr>\n",
		defined($options{"attr"}) ? "" : "checked";
	}
}


# check_location(type)
# Parse and check inputs from %in, calling &error() if something is wrong.
# Returns the location string for storing in the fstab file
sub check_location
{
if ($_[0] eq "nfs") {
	local($out, $temp, $mout, $dirlist);

	if ($in{'nfs_serv'} == 1) {
		# multiple servers listed.. assume the user has a brain
		return $in{'nfs_list'};
		}
	elsif ($in{'nfs_serv'} == 2) {
		# NFS url.. check syntax
		if ($in{'nfs_url'} !~ /^nfs:\/\/([^\/ ]+)(\/([^\/ ]*))?$/) {
			&error("'$in{'nfs_url'}' is not a valid NFS URL");
			}
		return $in{'nfs_url'};
		}

	# Use dfshares to see if the host exists and is up
	if ($in{nfs_host} !~ /^\S+$/) {
		&error("'$in{nfs_host}' is not a valid hostname");
		}
	$out = `dfshares '$in{nfs_host}' 2>&1`;
	if ($out =~ /Unknown host/) {
		&error("The host '$in{nfs_host}' does not exist");
		}
	elsif ($out =~ /Timed out/) {
		&error("The host '$in{nfs_host}' is down or does not ".
		       "support NFS");
		}
	elsif ($out =~ /Program not registered/) {
		&error("The host '$in{nfs_host}' does not support NFS");
		}

	# Try a test mount to see if filesystem is available
	foreach (split(/\n/, $out)) {
		if (/^\s*([^ :]+):(\/\S+)\s+/) { $dirlist .= "$2\n"; }
		}
	if ($in{nfs_dir} !~ /^\S+$/) {
		&error("'$in{nfs_dir}' is not a valid directory name. The ".
		       "available directories on $in{nfs_host} are:".
		       "<pre>$dirlist</pre>");
		}
	$temp = &tempname();
	mkdir($temp, 0755);
	$mout = `mount $in{nfs_host}:$in{nfs_dir} $temp 2>&1`;
	if ($mout =~ /No such file or directory/) {
		rmdir($temp);
		&error("The directory '$in{nfs_dir}' does not exist on the ".
		       "host $in{nfs_host}. The available directories are:".
		       "<pre>$dirlist</pre>");
		}
	elsif ($mout =~ /Permission denied/) {
		rmdir($temp);
		&error("This host is not allowed to mount the directory ".
		       "$in{nfs_dir} from $in{nfs_host}");
		}
	elsif ($?) {
		rmdir($temp);
		&error("NFS Error - $mout");
		}
	# It worked! unmount
	`umount $temp`;
	rmdir($temp);
	return "$in{nfs_host}:$in{nfs_dir}";
	}
elsif ($_[0] eq "ufs") {
	# Get the device name
	if ($in{ufs_dev} == 0) {
		$in{ufs_c} =~ /^[0-9]+$/ ||
			&error("'$in{ufs_c}' is not a valid SCSI controller");
		$in{ufs_t} =~ /^[0-9]+$/ ||
			&error("'$in{ufs_t}' is not a valid SCSI target");
		$in{ufs_d} =~ /^[0-9]+$/ ||
			&error("'$in{ufs_d}' is not a valid SCSI unit");
		$in{ufs_s} =~ /^[0-9]+$/ ||
			&error("'$in{ufs_s}' is not a valid SCSI partition");
		$dv = "/dev/dsk/c$in{ufs_c}t$in{ufs_t}d$in{ufs_d}s$in{ufs_s}";
		}
	elsif ($in{ufs_dev} == 1) {
		$in{ufs_md} =~ /^[0-9]+$/ ||
			&error("'$in{ufs_md}' is not a valid RAID unit");
		$dv = "/dev/md/dsk/d$in{ufs_md}";
		}
	else {
		$in{ufs_path} =~ /^\/\S+$/ ||
			&error("'$in{ufs_path}' is not a valid pathname");
		$dv = $in{ufs_path};
		}

	&fstyp_check($dv, "ufs");
	return $dv;
	}
elsif ($_[0] eq "lofs") {
	# Get and check the original directory
	$dv = $in{'lofs_src'};
	if (!(-r $dv)) { &error("'$in{lofs_src}' does not exist"); }
	if (!(-d $dv)) { &error("'$in{lofs_src}' is not a directory"); }
	return $dv;
	}
elsif ($_[0] eq "swap") {
	if ($in{swap_dev} == 0) {
		$in{swap_c} =~ /^[0-9]+$/ ||
			&error("'$in{swap_c}' is not a valid SCSI controller");
		$in{swap_t} =~ /^[0-9]+$/ ||
			&error("'$in{swap_t}' is not a valid SCSI target");
		$in{swap_d} =~ /^[0-9]+$/ ||
			&error("'$in{swap_d}' is not a valid SCSI unit");
		$in{swap_s} =~ /^[0-9]+$/ ||
			&error("'$in{swap_s}' is not a valid SCSI partition");
		$dv="/dev/dsk/c$in{swap_c}t$in{swap_t}d$in{swap_d}s$in{swap_s}";
		}
	else { $dv = $in{swap_path}; }

	if (!open(SWAPFILE, $dv)) {
		if ($! =~ /No such file/ && $in{swap_dev}) {
			if ($dv !~ /^\/dev/) {
				&swap_form($dv);
				}
			else {
				&error("The swap file '$dv' does not exist");
				}
			}
		elsif ($! =~ /No such file/) {
			&error("The SCSI target '$in{swap_t}' does not exist");
			}
		elsif ($! =~ /No such device or address/) {
			&error("The partition '$in{swap_s}' does not exist");
			}
		else {
			&error("Failed to open '$dv' : $!");
			}
		}
	close(SWAPFILE);
	return $dv;
	}
elsif ($_[0] eq "tmpfs") {
	# Ram-disk filesystems have no location
	return "swap";
	}
elsif ($_[0] eq "cachefs") {
	# In order to check the location for the caching filesystem, we need
	# to check the back filesystem
	if (!$in{cfs_noback}) {
		# The back filesystem is manually mounted.. hopefully
		local($bidx, @mlist, @binfo);
		$bidx = &get_mounted($in{cfs_backpath}, "*");
		if ($bidx < 0) {
			&error("The back filesystem '$in{cfs_backpath}' is ".
			       "not mounted");
			}
		@mlist = &list_mounted();
		@binfo = @{$mlist[$bidx]};
		if ($binfo[2] ne $in{cfs_backfstype}) {
			&error("The back filesystem is '$binfo[2]', not ".
			       "'$in{cfs_backfstype}'");
			}
		}
	else {
		# Need to automatically mount the back filesystem.. check
		# it for sanity first.
		# But HOW?
		$in{cfs_src} =~ /^\S+$/ ||
			&error("'$in{cfs_src}' is not a valid cache source");
		}
	return $in{cfs_src};
	}
elsif ($_[0] eq "autofs") {
	# An autofs filesystem can be either mounted from the special
	# -hosts and -xfn maps, or from a normal map. The map can be a file
	# name (if it starts with /), or an NIS map (if it doesn't)
	if ($in{autofs_type} == 0) {
		# Normal map
		$in{autofs_map} =~ /\S/ ||
			&error("You did not enter an automount map name");
		if ($in{autofs_map} =~ /^\// && !(-r $in{autofs_map})) {
			&error("The map file '$in{autofs_map}' does not exist");
			}
		return $in{autofs_map};
		}
	elsif ($in{autofs_type} == 1) {
		# Special hosts map (automount all shares from some host)
		return "-hosts";
		}
	else {
		# Special FNS map (not sure what this does)
		return "-xfn";
		}
	}
elsif ($_[0] eq "rumba") {
	# Cannot check much here..
	return "\\\\$in{rumba_server}\\$in{rumba_share}";
	}
}


# fstyp_check(device, type)
# Check if some device exists, and contains a filesystem of the given type,
# using the fstyp command.
sub fstyp_check
{
local($out, $part, $found);

# Check if the device/partition actually exists
if ($_[0] =~ /^\/dev\/dsk\/c(.)t(.)d(.)s(.)$/) {
	# mounting a normal scsi device..
	$out = `prtvtoc -h $_[0] 2>&1`;
	if ($out =~ /No such file or directory|No such device or address/) {
		&error("The SCSI target for '$_[0]' does not exist");
		}
	$part = $4;
	foreach (split(/\n/, $out)) {
		/^\s+([0-9]+)\s+([0-9]+)/;
		if ($1 == $part) {
			$found = 1; last;
			}
		}
	if (!$found) {
		&error("The SCSI partition for '$_[0]' does not exist");
		}
	}
elsif ($_[0] =~ /^\/dev\/md\/dsk\/d(.)$/) {
	# mounting a multi-disk (raid) device..
	$out = `prtvtoc -h $_[0] 2>&1`;
	if ($out =~ /No such file or directory|No such device or address/) {
		&error("The RAID device for '$_[0]' does not exist");
		}
	if ($out !~ /\S/) {
		&error("No partitions on '$_[0]' ??");
		}
	}
else {
	# Some other device
	if (!open(DEV, $_[0])) {
		if ($! =~ /No such file or directory/) {
			&error("The device file '$_[0]' does not exist");
			}
		elsif ($! =~ /No such device or address/) {
			&error("The device for '$_[0]' does not exist");
			}
		}
	close(DEV);
	}

# Check the filesystem type
$out = `fstyp $_[0] 2>&1`;
if ($out =~ /^([A-z0-9]+)\n$/) {
	if ($1 eq $_[1]) { return; }
	else {
		# Wrong filesystem type
		&error("The device '$_[0]' is formatted as a ".
		       &fstype_name($1));
		}
	}
else {
	&error("Failed to check filesystem type : $out");
	}
}


# check_options(type)
# Read options for some filesystem from %in, and use them to update the
# %options array. Options handled by the user interface will be set or
# removed, while unknown options will be left untouched.
sub check_options
{
local($k, @rv);
if ($_[0] eq "nfs") {
	# NFS has lots of options to parse
	if ($in{'nfs_ro'}) {
		# Read-only
		$options{"ro"} = ""; delete($options{"rw"});
		}
	else {
		# Read-write
		$options{"rw"} = ""; delete($options{"ro"});
		}

	delete($options{'quota'}); delete($options{'noquota'});
	if ($in{'nfs_quota'}) { $options{'quota'} = ""; }

	delete($options{"nosuid"}); delete($options{"suid"});
	if ($in{nfs_nosuid}) { $options{"nosuid"} = ""; }

	delete($options{"grpid"});
	if ($in{nfs_grpid}) { $options{"grpid"} = ""; }

	delete($options{"soft"}); delete($options{"hard"});
	if ($in{nfs_soft}) { $options{"soft"} = ""; }

	delete($options{"bg"}); delete($options{"fg"});
	if ($in{nfs_bg}) { $options{"bg"} = ""; }

	delete($options{"intr"}); delete($options{"nointr"});
	if ($in{nfs_nointr}) { $options{"nointr"} = ""; }

	delete($options{"vers"});
	if (!$in{nfs_vers_def}) { $options{"vers"} = $in{nfs_vers}; }

	delete($options{"proto"});
	if ($in{nfs_proto} ne "") { $options{"proto"} = $in{nfs_proto}; }

	delete($options{"port"});
	if (!$in{nfs_port_def}) { $options{"port"} = $in{nfs_port}; }

	delete($options{"timeo"});
	if (!$in{nfs_timeo_def}) { $options{"timeo"} = $in{nfs_timeo}; }

	delete($options{"secure"}); delete($options{"kerberos"});
	delete($options{"sec"});
	if ($gconfig{'os_version'} >= 2.6) {
		if ($in{'nfs_auth'}) { $options{'sec'} = $in{'nfs_auth'}; }
		}
	else {
		if ($in{'nfs_auth'} eq "dh") { $options{"secure"} = ""; }
		elsif ($in{'nfs_auth'} eq "krb") { $options{"kerberos"} = ""; }
		}

	if ($gconfig{'os_version'} >= 7) {
		delete($options{'public'});
		$options{'public'} = "" if ($in{'nfs_public'});
		}
	}
elsif ($_[0] eq "ufs") {
	# UFS also has lots of options..
	if ($in{ufs_ro}) {
		# read-only (and thus no quota)
		$options{"ro"} = ""; delete($options{"rw"});
		delete($options{"rq"}); delete($options{"quota"});
		}
	elsif ($in{ufs_quota}) {
		# read-write, with quota
		delete($options{"ro"}); $options{"rw"} = "";
		$options{"quota"} = "";
		}
	else {
		# read-write, without quota
		delete($options{"ro"}); $options{"rw"} = "";
		delete($options{"quota"});
		}

	delete($options{"nosuid"});
	if ($in{ufs_nosuid}) { $options{"nosuid"} = ""; }

	delete($options{"intr"}); delete($options{"nointr"});
	if ($in{ufs_nointr}) { $options{"nointr"} = ""; }

	delete($options{"onerror"});
	if ($in{ufs_onerror} ne "panic") {
		$options{"onerror"} = $in{ufs_onerror};
		}

	delete($options{"toosoon"});
	if ($in{ufs_toosoon_time}) {
		$options{"toosoon"} = $in{ufs_toosoon_time}.
				      $in{ufs_toosoon_units};
		}
	if ($gconfig{'os_version'} >= 7) {
		delete($options{'noatime'});
		$options{'noatime'} = "" if ($in{'ufs_noatime'});

		delete($options{'forcedirectio'});
		delete($options{'noforcedirectio'});
		$options{'forcedirectio'} = "" if ($in{'ufs_force'});

		delete($options{'nolargefiles'});delete($options{'largefiles'});
		$options{'nolargefiles'} = "" if ($in{'ufs_nolarge'});

		delete($options{'logging'}); delete($options{'nologging'});
		$options{'logging'} = "" if ($in{'ufs_logging'});
		}
	}
elsif ($_[0] eq "lofs") {
	# Loopback has no options to parse
	}
elsif ($_[0] eq "swap") {
	# Swap has no options to parse
	}
elsif ($_[0] eq "pcfs") {
	# PCFS has only 2 options
	delete($options{'ro'}); delete($options{'rw'});
	$options{'ro'} = "" if ($in{'pcfs_rp'});

	delete($options{'foldcase'}); delete($options{'nofoldcase'});
	$options{'foldcase'} = "" if ($in{'pcfs_foldcase'});
	}
elsif ($_[0] eq "tmpfs") {
	# Ram-disk filesystems have only one option
	delete($options{"size"});
	if (!$in{"tmpfs_size_def"}) {
		$options{"size"} = "$in{tmpfs_size}$in{tmpfs_unit}";
		}
	}
elsif ($_[0] eq "cachefs") {
	# The caching filesystem has lots of options
	$options{"backfstype"} = $in{"cfs_backfstype"};

	delete($options{"backpath"});
	if (!$in{"cfs_noback"}) {
		# A back filesystem was given..  (alreadys checked)
		$options{"backpath"} = $in{"cfs_backpath"};
		}

	if ($in{"cfs_cachedir"} !~ /^\/\S+/) {
		&error("'$in{cfs_cachedir}' is not a valid cache directory");
		}
	$options{"cachedir"} = $in{"cfs_cachedir"};

	delete($options{"write-around"}); delete($options{"non-shared"});
	if ($in{"cfs_wmode"}) {
		$options{"non-shared"} = "";
		}

	delete($options{"noconst"}); delete($options{"demandconst"});
	if ($in{"cfs_con"} == 0) { $options{"noconst"} = ""; }
	elsif ($in{"cfs_con"} == 2) { $options{"demandconst"} = ""; }

	delete($options{"ro"}); delete($options{"rw"});
	if ($in{"cfs_ro"}) { $options{"ro"} = ""; }

	delete($options{"suid"}); delete($options{"nosuid"});
	if ($in{"cfs_nosuid"}) { $options{"nosuid"} = ""; }
	}
elsif ($_[0] eq "autofs") {
	# The options for autofs depend on the type of the automounted
	# filesystem.. 
	$options{"fstype"} = $in{"autofs_fstype"};
	if ($gconfig{'os_version'} >= 2.6) {
		delete($options{'nobrowse'}); delete($options{'browse'});
		$options{'nobrowse'} = "" if ($in{'auto_nobrowse'});
		}
	return &check_options($options{"fstype"});
	}
elsif ($_[0] eq "rumba") {
	# Options for smb filesystems..
	delete($options{machinename});
	if (!$in{rumba_mname_def}) { $options{machinename} = $in{rumba_mname}; }

	delete($options{clientname});
	if (!$in{rumba_cname_def}) { $options{clientname} = $in{rumba_cname}; }

	delete($options{username});
	if ($in{rumba_username}) { $options{username} = $in{rumba_username}; }

	delete($options{password});
	if ($in{rumba_password}) { $options{password} = $in{rumba_password}; }

	delete($options{uid});
	if ($in{rumba_uid} ne "") { $options{uid} = getpwnam($in{rumba_uid}); }

	delete($options{gid});
	if ($in{rumba_gid} ne "") { $options{gid} = getgrnam($in{rumba_gid}); }

	delete($options{fmode});
	if ($in{rumba_fmode} !~ /^[0-7]{3}$/) {
		&error("'$in{rumba_fmode}' is not a valid octal file mode");
		}
	elsif ($in{rumba_fmode} ne "755") { $options{fmode} = $in{rumba_fmode}; }

	delete($options{dmode});
	if ($in{rumba_dmode} !~ /^[0-7]{3}$/) {
		&error("'$in{rumba_dmode}' is not a valid octal directory mode");
		}
	elsif ($in{rumba_dmode} ne "755") { $options{dmode} = $in{rumba_dmode}; }

	delete($options{'readwrite'});
	if ($in{'rumba_readwrite'}) { $options{'readwrite'} = ""; }

	delete($options{'readonly'});
	if ($in{'rumba_readonly'}) { $options{'readonly'} = ""; }

	delete($options{'attr'});
	if ($in{'rumba_attr'}) { $options{'attr'} = ""; }

	delete($options{'noupper'});
	if ($in{'rumba_noupper'}) { $options{'noupper'} = ""; }
	}

# Return options string
foreach $k (keys %options) {
	if ($options{$k} eq "") { push(@rv, $k); }
	else { push(@rv, "$k=$options{$k}"); }
	}
return @rv ? join(',' , @rv) : "-";
}


# create_swap(path, size, units)
# Attempt to create a swap file 
sub create_swap
{
local($out);
$out = `mkfile $_[1]$_[2] $_[0] 2>&1`;
if ($?) {
	unlink($_[0]);
	return "mkfile failed : $out";
	}
return 0;
}


# exports_list(host, dirarray, clientarray)
# Fills the directory and client array references with exports from some
# host. Returns an error string if something went wrong
sub exports_list
{
local($dref, $cref, $out, $_);
$dref = $_[1]; $cref = $_[2];
$out = `showmount -e $_[0] 2>&1`;
if ($?) { return $out; }
foreach (split(/\n/, $out)) {
	if (/^(\/\S*)\s+(.*)$/) {
		push(@$dref, $1); push(@$cref, $2);
		}
	}
return undef;
}

# broadcast_addr()
# Returns a useable broadcast address for finding NFS servers
sub broadcast_addr
{
local($out);
$out = `ifconfig -a 2>&1`;
if ($out =~ /broadcast\s+(\S+)/) { return $1; }
return "255.255.255.255";
}

sub device_name
{
return $_[0];
}

sub files_to_lock
{
return ( $config{'fstab_file'} );
}

1;
  07070100007749000081e40000000000000002000000013ac0388d0000dc44000000200000000000000000000000000000002000000003reloc/mount/redhat-linux-lib.pl   # linux-lib.pl
# Mount table functions for linux

if (&has_command("amd")) {
	local $amd = &read_amd_conf();
	$amd_support = $amd =~ /\[\s*global\s*\]/i ? 2 : 1;
	}
$autofs_support = &has_command("automount");
if (&has_command("mount.smb")) {
	$smbfs_support = `mount.smb -v` =~ /username=/i ? 4 : 3;
	}
elsif (&has_command("mount.smbfs")) {
	$smbfs_support = `mount.smbfs -v` =~ /username=/i ? 4 : 3;
	}
elsif (&has_command("smbmount")) {
	$smbfs_support = `smbmount -v` =~ /Version\s+2/i ? 2 : 1;
	}
$swaps_support = -r "/proc/swaps";
if (&has_command("e2label") &&
    `mount --version 2>&1` =~ /(\d+)\.(\d+)/ && ($1 > 2 || $1==2 && $2 >= 10)) {
	$has_e2label = 1;
	}

# Return information about a filesystem, in the form:
#  directory, device, type, options, fsck_order, mount_at_boot
# If a field is unused or ignored, a - appears instead of the value.
# Swap-filesystems (devices or files mounted for VM) have a type of 'swap',
# and 'swap' in the directory field
sub list_mounts
{
return @list_mounts_cache if (@list_mounts_cache);
local(@rv, @p, @o, $_, $i, $j); $i = 0;

# Get /etc/fstab mounts
open(FSTAB, $config{fstab_file});
while(<FSTAB>) {
	local(@o, $at_boot);
	chop; s/#.*$//g;
	if (!/\S/ || /\signore\s/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "proc") { $p[0] = "proc"; }
	elsif ($p[2] eq "auto") { $p[2] = "*"; }
	elsif ($p[2] eq "swap") { $p[1] = "swap"; }
	elsif ($p[2] eq "smbfs") { $p[0] =~ s/\//\\/g; }
	$rv[$i] = [ $p[1], $p[0], $p[2] ];
	$rv[$i]->[5] = "yes";
	@o = split(/,/ , $p[3] eq "defaults" ? "" : $p[3]);
	if (($j = &indexof("noauto", @o)) >= 0) {
		# filesytem is not mounted at boot
		splice(@o, $j, 1);
		$rv[$i]->[5] = "no";
		}
	$rv[$i]->[3] = (@o ? join(',' , @o) : "-");
	$rv[$i]->[4] = (@p >= 5 ? $p[5] : 0);
	$i++;
	}
close(FSTAB);

if ($amd_support == 1) {
	# Get old automounter configuration, as used by redhat
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		@p = split(/\s+/, $1);
		for($j=0; $j<@p; $j+=2) {
			$rv[$i++] = [ $p[$j], $p[$j+1], "auto",
				      "-", 0, "yes" ];
			}
		}
	}
elsif ($amd_support == 2) {
	# Guess what? There's now a *new* amd config file format, introduced
	# in redhat 6.1 and caldera 2.3
	local @amd = &parse_amd_conf();
	local @sp = split(/:/, $amd[0]->{'opts'}->{'search_path'});
	local ($am, $sp);
	foreach $am (@amd) {
		local $mn = $am->{'opts'}->{'map_name'};
		if ($mn !~ /^\//) {
			foreach $sp (@sp) {
				if (-r "$sp/$mn") {
					$mn = "$sp/$mn";
					last;
					}
				}
			}
		$rv[$i++] = [ $am->{'dir'}, $mn,
			      "auto", $am->{'opts'}, 0, "yes" ]
			if ($am->{'dir'} ne 'global');
		}
	}

# Get kernel automounter configuration
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	while(<AUTO>) {
		chop;
		s/#.*$//g;
		if (/^\s*(\S+)\s+(\S+)\s*(.*)$/) {
			$rv[$i++] = [ $1, $2, "autofs",
				      ($3 ? &autofs_options($3) : "-"),
				      0, "yes" ];
			}
		}
	close(AUTO);
	}

@list_mounts_cache = @rv;
return @rv;
}


# create_mount(directory, device, type, options, fsck_order, mount_at_boot)
# Add a new entry to the fstab file, old or new automounter file
sub create_mount
{
local(@mlist, @amd, $_); local($opts);

if ($_[2] eq "auto") {
	if ($amd_support == 1) {
		# Adding an old automounter mount
		local $amd = &read_amd_conf();
		local $m = "$_[0] $_[1]";
		if ($amd =~ /MOUNTPTS=''/) {
			$amd =~ s/MOUNTPTS=''/MOUNTPTS='$m'/;
			}
		else {
			$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$1 $m'/;
			}
		&write_amd_conf($amd);
		}
	elsif ($amd_support == 2) {
		# Adding a new automounter mount
		open(AMD, ">>$config{'auto_file'}");
		print AMD "\n";
		print AMD "[ $_[0] ]\n";
		print AMD "map_name = $_[1]\n";
		close(AMD);
		}
	}
elsif ($_[2] eq "autofs") {
	# Adding a new automounter mount
	open(AUTO, ">> $config{'autofs_file'}");
	print AUTO "$_[0]  $_[1]";
	if ($_[3]) { print AUTO "  ",&autofs_args($_[3]); }
	print AUTO "\n";
	close(AUTO);
	}
else {
	# Adding a normal mount to the fstab file
	local $dev = $_[1];
	$dev =~ s/\\/\//g if ($_[2] eq 'smbfs');
	open(FSTAB, ">> $config{fstab_file}");
	print FSTAB "$dev  $_[0]  $_[2]";
	$opts = $_[3] eq "-" ? "" : $_[3];
	if ($_[5] eq "no") {
		$opts = join(',' , (split(/,/ , $opts) , "noauto"));
		}
	if ($opts eq "") { print FSTAB "  defaults"; }
	else { print FSTAB "  $opts"; }
	print FSTAB "  0  ";
	print FSTAB $_[4] eq "-" ? "0\n" : "$_[4]\n";
	close(FSTAB);
	}
undef(@list_mounts_cache);
}


# change_mount(num, directory, device, type, options, fsck_order, mount_at_boot)
# Change an existing permanent mount
sub change_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $line !~ /\signore\s/ && $i++ == $_[0]) {
		# Found the line to replace
		print FSTAB "$_[2]  $_[1]  $_[3]";
		$opts = $_[4] eq "-" ? "" : $_[4];
		if ($_[6] eq "no") {
			$opts = join(',' , (split(/,/ , $opts) , "noauto"));
			}
		if ($opts eq "") { print FSTAB "  defaults"; }
		else { print FSTAB "  $opts"; }
		print FSTAB "  0  ";
		print FSTAB $_[5] eq "-" ? "0\n" : "$_[5]\n";
		}
	else { print FSTAB $_,"\n"; }
	}
close(FSTAB);

if ($amd_support == 1) {
	# Update older amd configuration
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		# found mount points line..
		local @mpts = split(/\s+/, $1);
		for($j=0; $j<@mpts; $j+=2) {
			if ($i++ == $_[0]) {
				$mpts[$j] = $_[1];
				$mpts[$j+1] = $_[2];
				}
			}
		local $mpts = join(" ", @mpts);
		$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$mpts'/;
		}
	&write_amd_conf($amd);
	}
elsif ($amd_support == 2) {
	# Update new amd configuration
	local @amd = &parse_amd_conf();
	local $lref = &read_file_lines($config{'auto_file'});
	foreach $am (@amd) {
		next if ($am->{'dir'} eq 'global');
		if ($i++ == $_[0]) {
			local @nl = ( "[ $_[1] ]" );
			local %opts = %{$am->{'opts'}};
			$opts->{'map_name'} = $_[2];
			foreach $o (keys %opts) {
				push(@nl, "$o = $opts{$o}");
				}
			splice(@$lref, $am->{'line'},
			       $am->{'eline'} - $am->{'line'} + 1, @nl);
			}
		}
	&flush_file_lines();
	}

# Update autofs configuration
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	@auto = <AUTO>;
	close(AUTO);
	open(AUTO, "> $config{'autofs_file'}");
	foreach (@auto) {
		chop; ($line = $_) =~ s/#.*$//g;
		if ($line =~ /\S/ && $i++ == $_[0]) {
			print AUTO "$_[1]  $_[2]";
			if ($_[4]) { print AUTO "  ",&autofs_args($_[4]); }
			print AUTO "\n";
			}
		else { print AUTO $_,"\n"; }
		}
	close(AUTO);
	}
undef(@list_mounts_cache);
}


# delete_mount(index)
# Delete an existing permanent mount
sub delete_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line !~ /\S/ || $line =~ /\signore\s/ || $i++ != $_[0]) {
		# Don't delete this line
		print FSTAB $_,"\n";
		}
	}
close(FSTAB);

if ($amd_support == 1) {
	# Update older amd configuration
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		# found mount points line..
		local @mpts = split(/\s+/, $1);
		for($j=0; $j<@mpts; $j+=2) {
			if ($i++ == $_[0]) {
				splice(@mpts, $j, 2);
				}
			}
		local $mpts = join(" ", @mpts);
		$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$mpts'/;
		}
	&write_amd_conf($amd);
	}
elsif ($amd_support == 2) {
	# Update new amd configuration
	local @amd = &parse_amd_conf();
	local $lref = &read_file_lines($config{'auto_file'});
	foreach $am (@amd) {
		next if ($am->{'dir'} eq 'global');
		if ($i++ == $_[0]) {
			splice(@$lref, $am->{'line'},
			       $am->{'eline'} - $am->{'line'} + 1);
			}
		}
	&flush_file_lines();
	}

# Update AMD file
if ($amd_support) {
	open(AMD, $config{auto_file});
	@amd = <AMD>;
	close(AMD);
	open(AMD, "> $config{auto_file}");
	foreach (@amd) {
		if (/MOUNTPTS='(.*)'/) {
			# found mount points line..
			@mpts = split(/\s+/, $1);
			for($j=0; $j<@mpts; $j+=2) {
				if ($i++ != $_[0]) {
					push(@nmpts, $mpts[$j]);
					push(@nmpts, $mpts[$j+1]);
					}
				}
			print AMD "MOUNTPTS='".join(' ', @nmpts)."'\n";
			}
		else { print AMD $_; }
		}
	close(AMD);
	}

# Update autofs file
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	@auto = <AUTO>;
	close(AUTO);
	open(AUTO, "> $config{'autofs_file'}");
	foreach (@auto) {
		chop; ($line = $_) =~ s/#.*$//g;
		if ($line !~ /\S/ || $i++ != $_[0]) {
			# keep this line
			print AUTO $_,"\n";
			}
		}
	close(AUTO);
	}
undef(@list_mounts_cache);
}


# list_mounted()
# Return a list of all the currently mounted filesystems and swap files.
# The list is in the form:
#  directory device type options
sub list_mounted
{
return @list_mounted_cache if (@list_mounted_cache);
local(@rv, @p, @o, $mo, $_, %smbopts);
local @mounts = &list_mounts();

&read_smbopts();
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	chop;
	s/#.*$//g; if (!/\S/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "auto" || $p[0] =~ /^\S+:\(pid\d+\)$/) {
		# Automounter map.. turn the map= option into the device
		@o = split(/,/ , $p[3]);
		($mo) = grep {/^map=/} (@o);
		$mo =~ /^map=(.*)$/; $p[0] = $1;
		$p[3] = join(',' , grep {!/^map=/} (@o));
		$p[2] = "auto";
		}
	elsif ($p[2] eq "autofs") {
		# Kernel automounter map.. use the pid to find the map
		$p[0] =~ /automount\(pid(\d+)\)/ || next;
		$out = `ps hwwww $1`;
		$out =~ /automount\s+(.*)\s*(\S+)\s+(file|program|yp)(,\S+)?\s+(\S+)/ || next;
		$p[0] = $5;
		$p[3] = $1 ? &autofs_options($1) : "-";
		}
	elsif ($p[2] eq "smbfs") {
		# Change from //FOO/BAR to \\foo\bar
		$p[0] =~ s/\//\\/g;
		$p[0] = lc($p[0]);
		$p[3] = $smbopts{$p[1]};
		}
	elsif ($p[2] eq "proc") {
		# The source for proc mounts is always proc
		$p[0] = "proc";
		}
	if ($p[2] eq 'ext2' && $has_e2label) {
		# Check for a label on this partition, and there is one
		# and this filesystem is in fstab with the label, change
		# the device.
		local $label = `e2label $p[0] 2>^1`;
		if (!$?) {
			chop($label);
			foreach $m (@mounts) {
				if ($m->[0] eq $p[1] &&
				    $m->[1] eq "LABEL=$label") {
					$p[0] = "LABEL=$label";
					last;
					}
				}
			}
		}
	# check fstab for a mount on the same dir which is a symlink
	# to the device
	local @st = stat($p[0]);
	foreach $m (@mounts) {
		if ($m->[0] eq $p[1]) {
			local @fst = stat($m->[1]);
			if ($fst[0] == $st[0] && $fst[1] == $st[1]) {
				# symlink to the same place!
				$p[0] = $m->[1];
				last;
				}
			}
		}
	push(@rv, [ $p[1], $p[0], $p[2], $p[3] ]);
	}
close(MTAB);
open(SWAPS, "/proc/swaps");
while(<SWAPS>) {
	chop;
	if (/^(\/\S+)\s+/) {
		push(@rv, [ "swap", $1, "swap", "-" ]);
		}
	}
close(SWAPS);
@list_mounted_cache = @rv;
return @rv;
}


# mount_dir(directory, device, type, options)
# Mount a new directory from some device, with some options. Returns 0 if ok,
# or an error string if failed
sub mount_dir
{
local($out, $opts, $shar, %options, %smbopts);
if ($_[2] eq "swap") {
	# Use swapon to add the swap space..
	$out = &backquote_logged("swapon $_[1] 2>&1");
	if ($out =~ /Invalid argument/) {
		# looks like this swap partition isn't ready yet.. set it up
		$out = &backquote_logged("mkswap $_[1] 2>&1");
		if ($?) { return "mkswap failed : <pre>$out</pre>"; }
		$out = &backquote_logged("swapon $_[1] 2>&1");
		}
	if ($?) { return "<pre>$out</pre>"; }
	}
elsif ($_[2] eq "auto") {
	# Old automounter filesystem
	$out = &backquote_logged("amd $_[0] $_[1] >/dev/null 2>/dev/null");
	if ($?) { return $text{'linux_eamd'}; }
	}
elsif ($_[2] eq "autofs") {
	# New automounter filesystem
	$opts = &autofs_args($_[3]);
	$type = $_[1] !~ /^\// ? "yp" :
		(-x $_[1]) ? "program" : "file";
	$out = &backquote_logged("automount $opts $_[0] $type $_[1] 2>&1");
	if ($?) { return &text('linux_eauto', "<pre>$out</pre>"); }
	}
elsif ($_[2] eq "smbfs") {
	local $shar = $_[1];
	$shar =~ s/\\/\//g;
	if ($smbfs_support >= 3) {
		# SMB filesystem mounted with mount command
		$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
		$out = &backquote_logged("mount -t $_[2] $opts $shar $_[0] 2>&1");
		if ($? || $out =~ /failed/i) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "mount -t $_[2] $opts $shar $_[0] : <pre>$out</pre>";
			}
		}
	elsif ($smbfs_support == 2) {
		# SMB filesystem mounted with version 2.x smbmount
		&parse_options("smbfs", $_[3]);
		$opts =
		    ($options{'user'} ? "-U $options{'user'} " : "").
		    ($options{'passwd'} ? "" : "-N ").
		    ($options{'workgroup'} ? "-W $options{'workgroup'} " : "").
		    ($options{'clientname'} ? "-n $options{'clientname'} " : "").
		    ($options{'machinename'} ? "-I $options{'machinename'} " : "");
		&foreign_require("proc", "proc-lib.pl");
		local ($fh, $fpid) = &foreign_call(
			"proc", "pty_process_exec_logged", "sh", "-c",
			"smbmount $shar $_[0] -d 0 $opts");
		if ($options{'passwd'}) {
			local $w = &wait_for($fh, "word:");
			if ($w < 0) {
				&system_logged("umount $_[0] >/dev/null 2>&1");
				return $text{'linux_esmbconn'};
				}
			local $p = "$options{'passwd'}\n";
			syswrite($fh, $p, length($p));
			}
		local $got;
		while(<$fh>) {
			$got .= $_;
			}
		if ($got =~ /failed/) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "<pre>$got</pre>\n";
			}
		close($fh);
		}
	elsif ($smbfs_support == 1) {
		# SMB filesystem mounted with older smbmount
		&parse_options("smbfs", $_[3]);
		$shortname = &get_system_hostname();
		if ($shortname =~ /^([^\.]+)\.(.+)$/) { $shortname = $1; }
		$opts =
		   ($options{servername} ? "-s $options{servername} " : "").
		   ($options{clientname} ? "-c $options{clientname} "
					 : "-c $shortname ").
		   ($options{machinename} ? "-I $options{machinename} " : "").
		   ($options{user} ? "-U $options{user} " : "").
		   ($options{passwd} ? "-P $options{passwd} " : "-n ").
		   ($options{uid} ? "-u $options{uid} " : "").
		   ($options{gid} ? "-g $options{gid} " : "").
		   ($options{fmode} ? "-f $options{fmode} " : "").
		   ($options{dmode} ? "-d $options{dmode} " : "");
		$out = &backquote_logged("smbmount $shar $_[0] $opts 2>&1");
		if ($out) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "<pre>$out</pre>";
			}
		}
	&read_smbopts();
	$smbopts{$_[0]} = $_[3] eq "-" ? "dummy=1" : $_[3];
	&write_smbopts();
	}
else {
	# some filesystem supported by mount
	$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
	if ($_[1] =~ /LABEL=(.*)/) {
		$cmd = "mount -t $_[2] -L $1 $opts $_[0]";
		}
	else {
		$cmd = "mount -t $_[2] $opts $_[1] $_[0]";
		}
	$out = &backquote_logged("$cmd 2>&1");
	if ($?) { return "<pre>$cmd : $out</pre>"; }
	}
undef(@list_mounted_cache);
return 0;
}


# unmount_dir(directory, device, type)
# Unmount a directory that is currently mounted. Returns 0 if ok,
# or an error string if failed
sub unmount_dir
{
local($out, %smbopts, $dir);
if ($_[2] eq "swap") {
	# Use swapoff to remove the swap space..
	$out = &backquote_logged("swapoff $_[1]");
	if ($?) { return "<pre>$out</pre>"; }
	}
elsif ($_[2] eq "auto") {
	# Kill the amd process
	$dir = $_[0];
	if (`cat /etc/mtab` =~ /:\(pid([0-9]+)\)\s+$dir\s+(auto|nfs)\s+/) {
		&kill_logged('TERM', $1) || return $text{'linux_ekillamd'};
		}
	sleep(2);
	}
elsif ($_[2] eq "autofs") {
	# Kill the automount process
	$dir = $_[0];
	`cat /etc/mtab` =~ /automount\(pid([0-9]+)\)\s+$dir\s+autofs\s+/;
	&kill_logged('TERM', $1) || return $text{'linux_ekillauto'};
	sleep(2);
	}
else {
	$out = &backquote_logged("umount $_[0] 2>&1");
	if ($?) { return "<pre>$out</pre>"; }
	if ($_[2] eq "smbfs") {
		# remove options from list
		&read_smbopts();
		delete($smbopts{$_[0]});
		&write_smbopts();
		}
	}
undef(@list_mounted_cache);
return 0;
}


# mount_modes(type)
# Given a filesystem type, returns 4 numbers that determine how the file
# system can be mounted, and whether it can be fsck'd
#  0 - cannot be permanently recorded
#	(smbfs under linux before 2.2)
#  1 - can be permanently recorded, and is always mounted at boot
#	(swap under linux)
#  2 - can be permanently recorded, and may or may not be mounted at boot
#	(most normal filesystems)
# The second is:
#  0 - mount is always permanent => mounted when saved
#	(swap under linux before 2.2)
#  1 - doesn't have to be permanent
#	(normal fs types)
# The third is:
#  0 - cannot be fsck'd at boot time
#  1 - can be be fsck'd at boot
# The fourth is:
#  0 - can be unmounted
#  1 - cannot be unmounted
sub mount_modes
{
if ($_[0] eq "swap")
	{ return (1, $swaps_support ? 1 : 0, 0, 0); }
elsif ($_[0] eq "auto" || $_[0] eq "autofs")
	{ return (1, 1, 0, 0); }
elsif ($_[0] eq "smbfs")
	{ return ($smbfs_support >= 3 ? 2 : 0, 1, 0, 0); }
elsif ($_[0] eq "ext2" || $_[0] eq "minix" || $_[0] eq "xiafs")
	{ return (2, 1, 1, 0); }
else
	{ return (2, 1, 0, 0); }
}


# disk_space(type, directory)
# Returns the amount of total and free space for some filesystem, or an
# empty array if not appropriate.
sub disk_space
{
if (&get_mounted($_[1], "*") < 0) { return (); }
if ($_[0] eq "proc" || $_[0] eq "swap" ||
    $_[0] eq "auto" || $_[0] eq "autofs") { return (); }
`df -k $_[1]` =~ /Mounted on\n\S+\s+(\S+)\s+\S+\s+(\S+)/;
return ($1, $2);
}


# list_fstypes()
# Returns an array of all the supported filesystem types. If a filesystem is
# found that is not one of the supported types, generate_location() and
# generate_options() will not be called for it.
sub list_fstypes
{
local @sup = ("ext2", "minix", "msdos", "nfs", "iso9660", "ext", "xiafs",
	      "hpfs", "fat", "vfat", "umsdos", "sysv", "reiserfs");
push(@sup, "smbfs") if ($smbfs_support);
push(@sup, "auto") if ($amd_support);
push(@sup, "autofs") if ($autofs_support);
push(@sup, "swap");
return @sup;
}


# fstype_name(type)
# Given a short filesystem type, return a human-readable name for it
sub fstype_name
{
local(%fsmap);
%fsmap = ("ext2","Linux Native Filesystem",
	  "minix","Minix Filesystem",
	  "msdos","MS-DOS Filesystem",
	  "nfs","Network Filesystem",
	  "smbfs","Windows Networking Filesystem",
	  "iso9660","ISO9660 CD-ROM",
	  "ext","Old EXT Linux Filesystem",
	  "xiafs","Old XIAFS Linux Filesystem",
	  "hpfs","OS/2 Filesystem",
	  "fat","MS-DOS Filesystem",
	  "vfat","Windows 95 Filesystem",
	  "umsdos","Linux on top of MS-DOS Filesystem",
	  "sysv","System V Filesystem",
	  "swap","Virtual Memory",
	  "proc","Kernel Filesystem",
	  "devpts","PTS Filesystem",
	  "auto",($autofs_support ? "Old " : "")."Automounter Filesystem",
	  "reiserfs","Reiser Filesystem",
	  "autofs","New Automounter Filesystem",
	  "usbdevfs","USB Devices",
	  "shm","SysV Shared Memory");
return $config{long_fstypes} && $fsmap{$_[0]} ? $fsmap{$_[0]} : uc($_[0]);
}


# multiple_mount(type)
# Returns 1 if filesystems of this type can be mounted multiple times, 0 if not
sub multiple_mount
{
return ($_[0] eq "nfs" || $_[0] eq "auto" || $_[0] eq "autofs");
}


# generate_location(type, location)
# Output HTML for editing the mount location of some filesystem.
sub generate_location
{
if ($_[0] eq "nfs") {
	# NFS mount from some host and directory
	$_[1] =~ /^([^:]+):(.*)$/;
	print "<tr> <td><b>$text{'linux_nfshost'}</b></td>\n";
	print "<td><input name=nfs_host size=20 value=\"$1\">\n";
	&nfs_server_chooser_button("nfs_host");
	print "&nbsp;<b>$text{'linux_nfsdir'}</b>\n";
	print "<input name=nfs_dir size=20 value=\"$2\">\n";
	&nfs_export_chooser_button("nfs_host", "nfs_dir");
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "auto") {
	# Using some automounter map
	print "<tr> <td><b>$text{'linux_map'}</b></td>\n";
	print "<td><input name=auto_map size=20 value=\"$_[1]\">\n";
	print &file_chooser_button("auto_map", 0);
	print "</td> <td colspan=2></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	# Using some kernel automounter map
	print "<tr> <td><b>$text{'linux_map'}</b></td>\n";
	print "<td><input name=autofs_map size=20 value=\"$_[1]\">\n";
	print &file_chooser_button("autofs_map", 0);
	print "</td> <td colspan=2></td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swap file or device
	&foreign_require("fdisk", "fdisk-lib.pl");
	printf "<tr> <td valign=top><b>$text{'linux_swapfile'}</b></td>\n";
	print "<td colspan=3>\n";
	local $found;
	local $sel = &foreign_call("fdisk", "partition_select", "lnx_disk",
				   $_[1], 3, \$found);
	printf "<input type=radio name=lnx_dev value=0 %s> %s %s<br>\n",
		$found ? "checked" : "", $text{'linux_disk'}, $sel;
	printf "<input type=radio name=lnx_dev value=1 %s> %s\n",
		$found ? "" : "checked", $text{'linux_swapfile'};
	printf "<input name=lnx_other size=35 value='%s'><br>\n",
		$found ? "" : $_[1];
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "smbfs") {
	# Windows filesystem
	$_[1] =~ /^\\\\(.*)\\(.*)$/;
	print "<tr> <td><b>$text{'linux_smbserver'}</b></td>\n";
	print "<td><input name=smbfs_server value=\"$1\" size=20>\n";
	&smb_server_chooser_button("smbfs_server");
	print "</td>\n";
	print "<td><b>$text{'linux_smbshare'}</b></td>\n";
	print "<td><input name=smbfs_share value=\"$2\" size=20>\n";
	&smb_share_chooser_button("smbfs_server", "smbfs_share");
	print "</td> </tr>\n";
	}
else {
	# This is some linux disk-based filesystem
	&foreign_require("fdisk", "fdisk-lib.pl");
	printf "<tr> <td valign=top><b>%s</b></td>\n", &fstype_name($_[0]);
	print "<td colspan=3>\n";
	local ($found, $rfound, $lfound, $rsel, $c);
	local $sel = &foreign_call("fdisk", "partition_select", "lnx_disk",
				   $_[1], 0, \$found);
	printf "<input type=radio name=lnx_dev value=0 %s> %s %s<br>\n",
		$found ? "checked" : "", $text{'linux_disk'}, $sel;

	if (&foreign_check("raid")) {
		&foreign_require("raid", "raid-lib.pl");
		local $conf = &foreign_call("raid", "get_raidtab");
		foreach $c (@$conf) {
			if ($c->{'active'}) {
				$rsel .= sprintf "<option value=%s %s>%s\n",
					$c->{'value'},
					$_[1] eq $c->{'value'} ? 'selected' : '',
					&text('linux_rdev', substr($c->{'value'}, -1));
				$rfound++ if ($_[1] eq $c->{'value'});
				}
			}
		if ($rsel) {
			printf "<input type=radio name=lnx_dev value=2 %s> %s\n",
				$rfound ? "checked" : " ", $text{'linux_raid'};
			print "<select name=lnx_raid>\n",$rsel,"</select><br>\n";
			}
		}

	if ($has_e2label) {
		local $l = $_[1] =~ /LABEL=(.*)/ ? $1 : undef;
		local $esel = &foreign_call("fdisk", "label_select",
					    "lnx_label", $l, \$lfound);
		if ($esel) {
			printf "<input type=radio name=lnx_dev value=3 %s> %s %s<br>\n", $lfound ? "checked" : "", $text{'linux_lsel'}, $esel;
			}
		}

	printf "<input type=radio name=lnx_dev value=1 %s> %s\n",
		$found || $rfound || $lfound ? "" : "checked", $text{'linux_other'};
	printf "<input name=lnx_other size=35 value='%s'><br>\n",
		$found || $rfound || $lfound ? "" : $_[1];
	print "</td> </tr>\n";
	}
}


# generate_options(type, newmount)
# Output HTML for editing mount options for a particular filesystem 
# under this OS
sub generate_options
{
if ($_[0] ne "swap" && $_[0] ne "auto" &&
    $_[0] ne "autofs" && $_[0] ne "smbfs") {
	# Lots of options are common to all linux filesystems
	print "<tr> <td><b>$text{'linux_ro'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_ro value=1 %s> $text{'yes'}\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=lnx_ro value=0 %s> $text{'no'}</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>$text{'linux_sync'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_sync value=0 %s> $text{'yes'}\n",
		defined($options{"sync"}) ? "" : "checked";
	printf "<input type=radio name=lnx_sync value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"sync"}) ? "checked" : "";

	print "<tr> <td><b>$text{'linux_nodev'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_nodev value=0 %s> $text{'yes'}\n",
		defined($options{"nodev"}) ? "" : "checked";
	printf "<input type=radio name=lnx_nodev value=1 %s> $text{'no'}</td>\n",
		defined($options{"nodev"}) ? "checked" : "";

	print "<td><b>$text{'linux_noexec'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_noexec value=0 %s> $text{'yes'}\n",
		defined($options{"noexec"}) ? "" : "checked";
	printf "<input type=radio name=lnx_noexec value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"noexec"}) ? "checked" : "";

	print "<tr> <td><b>$text{'linux_nosuid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_nosuid value=1 %s> $text{'yes'}\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=lnx_nosuid value=0 %s> $text{'no'}</td>\n",
		defined($options{"nosuid"}) ? "" : "checked";

	print "<td><b>$text{'linux_user'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_user value=1 %s> $text{'yes'}\n",
		defined($options{"user"}) ? "checked" : "";
	printf "<input type=radio name=lnx_user value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"user"}) ? "" : "checked";
	}
	
if ($_[0] eq "ext2") {
	# Ext2 has lots more options..
	print "<tr> <td><b>$text{'linux_check'}</b></td>\n";
	print "<td><select name=ext2_check>\n";
	printf "<option value=normal %s> $text{'linux_normal'}\n",
		$options{"check"} eq "" || $options{"check"} eq "normal" ?
			"selected" : "";
	printf "<option value=strict %s> $text{'linux_strict'}\n",
		$options{"check"} eq "strict" ? "selected" : "";
	printf "<option value=none %s> $text{'linux_none'}\n",
		$options{"check"} eq "none" || defined($options{"nocheck"}) ?
			"selected" : "";
	print "</select></td>\n";

	print "<td><b>$text{'linux_errors'}</b></td>\n";
	print "<td><select name=ext2_errors>\n";
	printf "<option value=default %s> $text{'default'}\n",
		!defined($options{"errors"}) ? "selected" : "";
	printf "<option value=continue %s> $text{'linux_continue'}\n",
		$options{"error"} eq "continue" ? "selected" : "";
	printf "<option value=remount-ro %s> $text{'linux_remount_ro'}\n",
		$options{"error"} eq "remount-ro" ? "selected" : "";
	printf "<option value=panic %s> $text{'linux_panic'}\n",
		$options{"error"} eq "panic" ? "selected" : "";
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_grpid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=ext2_grpid value=0 %s> $text{'yes'}\n",
		defined($options{"grpid"}) || defined($options{"bsdgroups"}) ?
			"" : "checked";
	printf "<input type=radio name=ext2_grpid value=1 %s> $text{'no'}</td>\n",
		defined($options{"grpid"}) || defined($options{"bsdgroups"}) ?
			"checked" : "";

	print "<td><b>$text{'linux_quotas'}</b></td>\n";
	local $usrquota = defined($options{"usrquota"});
	local $grpquota = defined($options{"grpquota"});
	print "<td nowrap><select name=ext2_quota>\n";
	printf "<option value=0 %s> $text{'no'}\n",
		$usrquota || $grpquota ? "" : "selected";
	printf "<option value=1 %s> $text{'linux_usrquota'}\n",
		$usrquota && !$grpquota ? "selected" : "";
	printf "<option value=2 %s> $text{'linux_grpquota'}\n",
		$grpquota && !$usrquota ? "selected" : "";
	if (`uname -r` =~ /^2\.0\.(\d+)/ && $1 < 31) {
		printf "<option value=3 %s> $text{'linux_usrgrpquota2'}\n",
			$usrquota && $grpquota ? "selected" : "";
		}
	else {
		printf "<option value=3 %s> $text{'linux_usrgrpquota'}\n",
			$usrquota && $grpquota ? "selected" : "";
		}
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_resuid'}</b></td>\n";
	printf "<td><input name=ext2_resuid size=8 value=\"%s\">\n",
		defined($options{"resuid"}) ? getpwuid($options{"resuid"}) : "";
	print &user_chooser_button("ext2_resuid", 0),"</td>\n";

	print "<td><b>$text{'linux_resgid'}</b></td>\n";
	printf "<td><input name=ext2_resgid size=8 value=\"%s\">\n",
		defined($options{"resgid"}) ? getgrgid($options{"resgid"}) : "";
	print &group_chooser_button("ext2_resgid", 0),"</td> </tr>\n";
	}
elsif ($_[0] eq "nfs") {
	# Linux nfs has some more options...
	print "<tr> <td><b>$text{'linux_bg'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_bg value=1 %s> $text{'yes'}\n",
		defined($options{"bg"}) ? "checked" : "";
	printf "<input type=radio name=nfs_bg value=0 %s> $text{'no'}</td>\n",
		defined($options{"bg"}) ? "" : "checked";

	print "<td><b>$text{'linux_soft'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_soft value=1 %s> $text{'yes'}\n",
		defined($options{"soft"}) ? "checked" : "";
	printf "<input type=radio name=nfs_soft value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"soft"}) ? "" : "checked";

	print "<tr> <td><b>$text{'linux_timeo'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_timeo_def value=1 %s> $text{'default'}\n",
		defined($options{"timeo"}) ? "" : "checked";
	printf "<input type=radio name=nfs_timeo_def value=0 %s>\n",
		defined($options{"timeo"}) ? "checked" : "";
	printf "<input size=5 name=nfs_timeo value=$options{timeo}></td>\n";

	print "<td><b>$text{'linux_retrans'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_retrans_def value=1 %s> $text{'default'}\n",
		defined($options{"retrans"}) ? "" : "checked";
	printf "<input type=radio name=nfs_retrans_def value=0 %s>\n",
		defined($options{"retrans"}) ? "checked" : "";
	print "<input size=5 name=nfs_retrans value=$options{retrans}></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_vers'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_vers_def value=1 %s> $text{'linux_high'}\n",
		defined($options{"nfsvers"}) ? "" : "checked";
	printf "<input type=radio name=nfs_vers_def value=0 %s>\n",
		defined($options{"nfsvers"}) ? "checked" : "";
	print "<input size=1 name=nfsvers value=$options{nfsvers}></td>\n";

	print "<td><b>$text{'linux_port'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_port_def value=1 %s> $text{'default'}\n",
		defined($options{"port"}) ? "" : "checked";
	printf "<input type=radio name=nfs_port_def value=0 %s>\n",
		defined($options{"port"}) ? "checked" : "";
	print "<input size=5 name=nfs_port value=$options{port}></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_intr'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_intr value=1 %s> $text{'yes'}\n",
		defined($options{"intr"}) ? "checked" : "";
	printf "<input type=radio name=nfs_intr value=0 %s> $text{'no'}</td>\n",
		defined($options{"intr"}) ? "" : "checked";

	print "<td><b>$text{'linux_tcp'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_tcp value=1 %s> TCP\n",
		defined($options{"tcp"}) ? "checked" : "";
	printf "<input type=radio name=nfs_tcp value=0 %s> UDP</td> </tr>\n",
		defined($options{"tcp"}) ? "" : "checked";
	}
elsif ($_[0] eq "fat" || $_[0] eq "vfat" || $_[0] eq "msdos" || $_[0] eq "umsdos"){
	# All dos-based filesystems share some options
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=fat_uid size=8 value=\"%s\">\n",
		defined($options{'uid'}) ? getpwuid($options{'uid'}) : "";
	print &user_chooser_button("fat_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=fat_gid size=8 value=\"%s\">\n",
		defined($options{'gid'}) ? getgrgid($options{'gid'}) : "";
	print &group_chooser_button("fat_gid", 0),"</td> </tr>\n";

	print "<tr> <td><b>$text{'linux_rules'}</b></td>\n";
	print "<td><select name=fat_check>\n";
	printf "<option value=\"\" %s> $text{'default'}\n",
		defined($options{"check"}) ? "" : "selected";
	printf "<option value=r %s> $text{'linux_relaxed'}\n",
		$options{"check"} =~ /^r/ ? "selected" : "";
	printf "<option value=n %s> $text{'linux_normal'}\n",
		$options{"check"} =~ /^n/ ? "selected" : "";
	printf "<option value=s %s> $text{'linux_strict'}\n",
		$options{"check"} =~ /^s/ ? "selected" : "";
	print "</select></td>\n";

	print "<td><b>$text{'linux_conv'}</b></td>\n";
	print "<td><select name=fat_conv>\n";
	printf "<option value=\"\" %s> $text{'linux_none'}\n",
		$options{"conv"} =~ /^b/ || !defined($options{"conv"}) ?
		"selected" : "";
	printf "<option value=t %s> $text{'linux_allfiles'}\n",
		$options{"conv"} =~ /^t/ ? "selected" : "";
	printf "<option value=a %s> $text{'linux_textfiles'}\n",
		$options{"conv"} =~ /^a/ ? "selected" : "";
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_umask'}</b></td>\n";
	printf "<td><input type=radio name=fat_umask_def value=1 %s> $text{'default'}\n",
		defined($options{"umask"}) ? "" : "checked";
	printf "<input type=radio name=fat_umask_def value=0 %s>\n",
		defined($options{"umask"}) ? "checked" : "";
	print "<input size=5 name=fat_umask value=\"$options{umask}\"></td>\n";

	print "<td><b>$text{'linux_quiet'}</b></td>\n";
	printf "<td nowrap><input type=radio name=fat_quiet value=0 %s> $text{'yes'}\n",
		defined($options{"quiet"}) ? "" : "checked";
	printf "<input type=radio name=fat_quiet value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"quiet"}) ? "checked" : "";

	if ($_[0] eq "vfat") {
		# vfat has some extra options beyond fat
		print "<tr> <td><b>$text{'linux_uni_xlate'}</b></td>\n";
		printf "<td><input type=radio name=fat_uni_xlate value=1 %s> $text{'yes'}\n",
			defined($options{"uni_xlate"}) ? "checked" : "";
		printf "<input type=radio name=fat_uni_xlate value=0 %s> $text{'no'}</td>\n",
			defined($options{"uni_xlate"}) ? "" : "checked";

		print "<td><b>$text{'linux_posix'}</b></td>\n";
		printf "<td nowrap><input type=radio name=fat_posix value=1 %s> $text{'yes'}\n",
			defined($options{"posix"}) ? "checked" : "";
		printf "<input type=radio name=fat_posix value=0 %s> $text{'no'}</td> </tr>\n",
			defined($options{"posix"}) ? "" : "checked";
		}
	}
elsif ($_[0] eq "hpfs") {
	# OS/2 filesystems has some more options..
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=hpfs_uid size=8 value=\"%s\">\n",
		defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
	print &user_chooser_button("hpfs_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=hpfs_gid size=8 value=\"%s\">\n",
		defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
	print &group_chooser_button("hpfs_gid", 0),"</td> </tr>\n";

	print "<tr> <td><b>$text{'linux_umask'}</b></td>\n";
	printf"<td><input type=radio name=hpfs_umask_def value=1 %s> Default\n",
		defined($options{"umask"}) ? "" : "checked";
	printf "<input type=radio name=hpfs_umask_def value=0 %s>\n",
		defined($options{"umask"}) ? "checked" : "";
	print "<input size=5 name=hpfs_umask value=\"$options{umask}\"></td>\n";

	print "<td><b>$text{'linux_conv2'}</b></td>\n";
	print "<td><select name=hpfs_conv>\n";
	printf "<option value=b %s> $text{'linux_none'}\n",
		$options{"conv"} =~ /^b/ || !defined($options{"conv"}) ?
		"selected" : "";
	printf "<option value=t %s> $text{'linux_allfiles'}\n",
		$options{"conv"} =~ /^t/ ? "selected" : "";
	printf "<option value=a %s> $text{'linux_textfiles'}\n",
		$options{"conv"} =~ /^a/ ? "selected" : "";
	print "</select></td> </tr>\n";
	}
elsif ($_[0] eq "iso9660") {
	# CD-ROM filesystems have some more options..
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=iso9660_uid size=8 value=\"%s\">\n",
		defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
	print &user_chooser_button("iso9660_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=iso9660_gid size=8 value=\"%s\">\n",
		defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
	print &group_chooser_button("iso9660_gid", 0),"</td>\n";

	print "<tr> <td><b>$text{'linux_rock'}</b></td>\n";
	printf "<td><input type=radio name=iso9660_norock value=1 %s> $text{'yes'}\n",
		defined($options{"norock"}) ? "checked" : "";
	printf "<input type=radio name=iso9660_norock value=0 %s> $text{'no'}</td>\n",
		defined($options{"norock"}) ? "" : "checked";

	print "<td><b>$text{'linux_mode'}</b></td>\n";
	printf"<td><input size=10 name=iso9660_mode value=\"%s\"></td> </tr>\n",
		defined($options{"mode"}) ? $options{"mode"} : "444";
	}
elsif ($_[0] eq "auto") {
	# Don't know how to set options for auto filesystems yet..
	print "<tr> <td><i>$text{'linux_noopts'}</i></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	print "<tr> <td><b>$text{'linux_timeout'}</b></td> <td>\n";
	printf"<input type=radio name=autofs_timeout_def value=1 %s> $text{'default'}\n",
		defined($options{'timeout'}) ? "" : "checked";
	printf "<input type=radio name=autofs_timeout_def value=0 %s>\n",
		defined($options{'timeout'}) ? "checked" : "";
	printf "<input name=autofs_timeout size=5 value=\"%s\"> $text{'linux_secs'}</td>\n",
		$options{'timeout'};

	print "<td><b>$text{'linux_pid_file'}</b>?</td>\n";
	printf"<td><input type=radio name=autofs_pid-file_def value=1 %s> $text{'no'}\n",
		defined($options{'pid-file'}) ? "" : "checked";
	printf "<input type=radio name=autofs_pid-file_def value=0 %s> $text{'yes'}\n",
		defined($options{'pid-file'}) ? "checked" : "";
	printf "<input name=autofs_pid-file size=20 value=\"%s\">\n",
		$options{'pid-file'};
	print &file_chooser_button("autofs_pid-file", 1);
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swap has no options..
	print "<tr> <td><i>$text{'linux_noopts'}</i></td> </tr>\n";
	}
elsif ($_[0] eq "smbfs") {
	# SMB filesystems have a few options..
	if (keys(%options) == 0 && !$_[1]) {
		print "<tr> <td colspan=4><i>$text{'linux_smbwarn'}</i></td> </tr>\n";
		}

	print "<tr> <td><b>$text{'linux_username'}</b></td>\n";
	printf "<td><input name=smbfs_user size=15 value=\"%s\"></td>\n",
		$smbfs_support == 4 ? $options{'username'} : $options{'user'};

	print "<td><b>$text{'linux_password'}</b></td>\n";
	printf "<td><input type=password name=smbfs_passwd size=15 value=\"%s\"></td> </tr>\n",
		$smbfs_support == 4 ? $options{'password'} : $options{'passwd'};

	if ($smbfs_support != 2) {
		print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
		printf "<td><input name=smbfs_uid size=8 value=\"%s\">\n",
			defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
		print &user_chooser_button("smbfs_uid", 0),"</td>\n";

		print "<td><b>$text{'linux_gid'}</b></td>\n";
		printf "<td><input name=smbfs_gid size=8 value=\"%s\">\n",
			defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
		print &group_chooser_button("smbfs_gid", 0),"</td>\n";
		}

	if ($smbfs_support == 1) {
		print "<tr> <td><b>$text{'linux_sname'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_sname_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"servername"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_sname_def value=0 %s>\n",
			defined($options{"servername"}) ? "checked" : "";
		print "<input size=10 name=smbfs_sname value=\"$options{servername}\"></td>\n";
		}
	elsif ($smbfs_support == 2) {
		print "<tr> <td><b>$text{'linux_wg'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_wg_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"workgroup"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_wg_def value=0 %s>\n",
			defined($options{"workgroup"}) ? "checked" : "";
		print "<input size=10 name=smbfs_wg value=\"$options{'workgroup'}\"></td>\n";
		}

	if ($smbfs_support < 3) {
		print "<td><b>$text{'linux_cname'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_cname_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"clientname"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_cname_def value=0 %s>\n",
			defined($options{"clientname"}) ? "checked" : "";
		print "<input size=10 name=smbfs_cname value=\"$options{clientname}\"></td> </tr>\n";

		print "<tr> <td><b>$text{'linux_mname'}</b></td>\n";
		printf "<td colspan=3><input type=radio name=smbfs_mname_def value=1 %s> %s\n",
			defined($options{"machinename"}) ? "" : "checked", $text{'linux_auto'};
		printf "<input type=radio name=smbfs_mname_def value=0 %s>\n",
			defined($options{"machinename"}) ? "checked" : "";
		print "<input size=30 name=smbfs_mname value=\"$options{machinename}\"></td> </tr>\n";
		}

	if ($smbfs_support == 1) {
		print "<tr> <td><b>$text{'linux_fmode'}</b></td>\n";
		printf
		    "<td><input name=smbfs_fmode size=5 value=\"%s\"></td>\n",
		    defined($options{'fmode'}) ? $options{'fmode'} : "755";

		print "<td><b>$text{'linux_dmode'}</b></td>\n";
		printf
		    "<td><input name=smbfs_dmode size=5 value=\"%s\"></td>\n",
		    defined($options{'dmode'}) ? $options{'dmode'} : "755";
		print "</tr>\n";
		}
	elsif ($smbfs_support >= 3) {
		print "<tr> <td><b>$text{'linux_ro'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_ro value=1 %s> $text{'yes'}\n",
			defined($options{"ro"}) ? "checked" : "";
		printf "<input type=radio name=smbfs_ro value=0 %s> $text{'no'}</td>\n",
			defined($options{"ro"}) ? "" : "checked";

		print "<td><b>$text{'linux_user'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_user2 value=1 %s> $text{'yes'}\n",
			defined($options{"user"}) ? "checked" : "";
		printf "<input type=radio name=smbfs_user2 value=0 %s> $text{'no'}</td> </tr>\n",
			defined($options{"user"}) ? "" : "checked";
		}
	}
elsif ($_[0] eq "reiserfs") {
	# Reiserfs is a new super-efficient filesystem
	print "<tr> <td><b>$text{'linux_notail'}</b></td>\n";
	printf "<td><input type=radio name=lnx_notail value=1 %s> $text{'yes'}\n",
		defined($options{"notail"}) ? "checked" : "";
	printf "<input type=radio name=lnx_notail value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"notail"}) ? "" : "checked";
	}
}


# check_location(type)
# Parse and check inputs from %in, calling &error() if something is wrong.
# Returns the location string for storing in the fstab file
sub check_location
{
if ($_[0] eq "nfs") {
	local($out, $temp, $mout, $dirlist);

	if (&has_command("showmount")) {
		# Use ping and showmount to see if the host exists and is up
		if ($in{nfs_host} !~ /^\S+$/) {
			&error(&text('linux_ehost', $in{'nfs_host'}));
			}
		$out = `ping -c 1 '$in{nfs_host}' 2>&1`;
		if ($out =~ /unknown host/) {
			&error(&text('linux_ehost2', $in{'nfs_host'}));
			}
		elsif ($out =~ /100\% packet loss/) {
			&error(&text('linux_edown', $in{'nfs_host'}));
			}
		$out = `showmount -e '$in{nfs_host}' 2>&1`;
		if ($out =~ /Unable to receive/) {
			&error(&text('linux_enfs', $in{'nfs_host'}));
			}
		elsif ($?) {
			&error(&text('linux_elist', $out));
			}

		# Validate directory name
		foreach (split(/\n/, $out)) {
			if (/^(\/\S+)/) { $dirlist .= "$1\n"; }
			}
		if ($in{nfs_dir} !~ /^\/\S+$/) {
			&error(&text('linux_enfsdir', $in{'nfs_dir'},
				     $in{'nfs_host'}, "<pre>$dirlist</pre>"));
			}
		}

	# Try a test mount to see if filesystem is available
	$temp = &tempname();
	mkdir($temp, 0755);
	$mout = `mount $in{nfs_host}:$in{nfs_dir} $temp 2>&1`;
	if ($mout =~ /No such file or directory/i) {
		rmdir($temp);
		&error(&text('linux_enfsdir', $in{'nfs_dir'},
			     $in{'nfs_host'}, "<pre>$dirlist</pre>"));
		}
	elsif ($mout =~ /Permission denied/i) {
		rmdir($temp);
		&error(&text('linux_enfsperm', $in{'nfs_dir'}, $in{'nfs_host'}));
		}
	elsif ($?) {
		rmdir($temp);
		&error(&text('linux_enfsmount', "<tt>$mout</tt>"));
		}
	# It worked! unmount
	`umount $temp`;
	rmdir($temp);

	return "$in{nfs_host}:$in{nfs_dir}";
	}
elsif ($_[0] eq "auto") {
	# Check if the automounter map exists..
	(-r $in{auto_map}) || &error(&text('linux_eautomap', $in{'auto_map'}));
	return $in{auto_map};
	}
elsif ($_[0] eq "autofs") {
	# Check if the map exists (if it is a file)
	if ($in{'autofs_map'} =~ /^\// && !(-r $in{'autofs_map'})) {
		&error(&text('linux_eautomap', $in{'autofs_map'}));
		}
	return $in{autofs_map};
	}
elsif ($_[0] eq "smbfs") {
	# No checking done
	return "\\\\".lc($in{'smbfs_server'})."\\".lc($in{'smbfs_share'});
	}
else {
	# This is some kind of disk-based linux filesystem.. get the device name
	if ($in{'lnx_dev'} == 0) {
		$dv = $in{'lnx_disk'};
		}
	elsif ($in{'lnx_dev'} == 2) {
		$dv = $in{'lnx_raid'};
		}
	elsif ($in{'lnx_dev'} == 3) {
		$dv = "LABEL=".$in{'lnx_label'};
		}
	else {
		$dv = $in{'lnx_other'};
		$dv || &error($text{'linux_edev'});
		}

	# If the device entered is a symlink, follow it
	#if ($dvlink = readlink($dv)) {
	#	if ($dvlink =~ /^\//) { $dv = $dvlink; }
	#	else {	$dv =~ /^(.*\/)[^\/]+$/;
	#		$dv = $1.$dvlink;
	#		}
	#	}

	# Check if the device actually exists and uses the right filesystem
	if (!-r $dv && $dv !~ /LABEL=/) {
		if ($_[0] eq "swap" && $dv !~ /\/dev/) {
			&swap_form($dv);
			}
		else {
			&error(&text('linux_edevfile', $dv));
			}
		}
	return $dv;
	}
}

# check_options(type, device, directory)
# Read options for some filesystem from %in, and use them to update the
# %options array. Options handled by the user interface will be set or
# removed, while unknown options will be left untouched.
sub check_options
{
local($k, @rv);

# Parse the common options first..
if ($_[0] ne "swap" && $_[0] ne "auto" &&
    $_[0] ne "autofs" && $_[0] ne "smbfs") {
	delete($options{"ro"}); delete($options{"rw"});
	if ($in{lnx_ro}) { $options{"ro"} = ""; }

	delete($options{"sync"}); delete($options{"async"});
	if ($in{lnx_sync}) { $options{"sync"} = ""; }

	delete($options{"dev"}); delete($options{"nodev"});
	if ($in{lnx_nodev}) { $options{"nodev"} = ""; }

	delete($options{"exec"}); delete($options{"noexec"});
	if ($in{lnx_noexec}) { $options{"noexec"} = ""; }

	delete($options{"suid"}); delete($options{"nosuid"});
	if ($in{lnx_nosuid}) { $options{"nosuid"} = ""; }

	delete($options{"user"}); delete($options{"nouser"});
	if ($in{lnx_user}) { $options{"user"} = ""; }
	}

if ($_[0] eq "nfs") {
	# NFS has a few specific options..
	delete($options{"bg"}); delete($options{"fg"});
	if ($in{nfs_bg}) { $options{"bg"} = ""; }

	delete($options{"soft"}); delete($options{"hard"});
	if ($in{nfs_soft}) { $options{"soft"} = ""; }

	delete($options{"timeo"});
	if (!$in{nfs_timeo_def}) { $options{"timeo"} = $in{nfs_timeo}; }

	delete($options{"nfsvers"});
	if (!$in{nfs_vers_def}) { $options{"nfsvers"} = $in{nfs_vers}; }

	delete($options{"port"});
	if (!$in{nfs_port_def}) { $options{"port"} = $in{nfs_port}; }

	delete($options{"intr"}); delete($options{"nointr"});
	if ($in{nfs_intr}) { $options{"intr"} = ""; }

	delete($options{"tcp"}); delete($options{"udp"});
	if ($in{nfs_tcp}) { $options{"tcp"} = ""; }
	}
elsif ($_[0] eq "ext2") {
	# More options for ext2..
	delete($options{"check"}); delete($options{"nocheck"});
	if ($in{ext2_check} ne "normal") {
		$options{"check"} = $in{ext2_check};
		}

	delete($options{"errors"});
	if ($in{ext2_errors} ne "default") {
		$options{"errors"} = $in{ext2_errors};
		}

	delete($options{"grpid"}); delete($options{"bsdgroups"});
	delete($options{"sysvgroups"}); delete($options{"nogrpid"});
	if ($in{ext2_grpid}) {
		$options{"grpid"} = "";
		}

	delete($options{"resuid"}); delete($options{"resgid"});
	if ($in{'ext2_resuid'})
		{ $options{"resuid"} = getpwnam($in{'ext2_resuid'}); }
	if ($in{'ext2_resgid'})
		{ $options{"resgid"} = getgrnam($in{'ext2_resgid'}); }

	delete($options{"quota"}); delete($options{"noquota"});
	delete($options{"usrquota"}); delete($options{"grpquota"});
	if ($in{'ext2_quota'} == 1) { $options{'usrquota'} = ""; }
	elsif ($in{'ext2_quota'} == 2) { $options{'grpquota'} = ""; }
	elsif ($in{'ext2_quota'} == 3)
		{ $options{'usrquota'} = $options{'grpquota'} = ""; }
	}
elsif ($_[0] eq "fat" || $_[0] eq "vfat" ||
       $_[0] eq "msdos" || $_[0] eq "umsdos") {
	# All dos-based filesystems have similar options
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{fat_uid} ne "") { $options{"uid"} = getpwnam($in{'fat_uid'}); }
	if ($in{fat_gid} ne "") { $options{"gid"} = getgrnam($in{'fat_gid'}); }

	delete($options{"check"});
	if ($in{fat_check} ne "") { $options{"check"} = $in{fat_check}; }

	delete($options{"conv"});
	if ($in{fat_conv} ne "") { $options{"conv"} = $in{fat_conv}; }

	delete($options{"umask"});
	if (!$in{fat_umask_def}) {
		$in{fat_umask} =~ /^[0-7]{3}$/ ||
			&error(&text('linux_emask', $in{'fat_umask'}));
		$options{"umask"} = $in{fat_umask};
		}

	delete($options{"quiet"});
	if ($in{fat_quiet}) {
		$options{"quiet"} = "";
		}

	if ($_[0] eq "vfat") {
		# Parse extra vfat options..
		delete($options{"uni_xlate"});
		if ($in{fat_uni_xlate}) { $options{"uni_xlate"} = ""; }

		delete($options{"posix"});
		if ($in{fat_posix}) { $options{"posix"} = ""; }
		}
	}
elsif ($_[0] eq "hpfs") {
	# OS/2 filesystem options..
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{hpfs_uid} ne "") { $options{"uid"} = getpwnam($in{hpfs_uid}); }
	if ($in{hpfs_gid} ne "") { $options{"gid"} = getgrnam($in{hpfs_gid}); }

	delete($options{"umask"});
	if (!$in{hpfs_umask_def}) {
		$in{hpfs_umask} =~ /^[0-7]{3}$/ ||
			&error(&text('linux_emask', $in{'hpfs_umask'}));
		$options{"umask"} = $in{hpfs_umask};
		}

	delete($options{"conv"});
	if ($in{hpfs_conv} ne "") { $options{"conv"} = $in{hpfs_conv}; }
	}
elsif ($_[0] eq "iso9660") {
	# Options for iso9660 cd-roms
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{iso9660_uid} ne "")
		{ $options{"uid"} = getpwnam($in{iso9660_uid}); }
	if ($in{iso9660_gid} ne "")
		{ $options{"gid"} = getgrnam($in{iso9660_gid}); }

	delete($options{"norock"});
	if ($in{iso9660_norock}) { $options{"norock"} = ""; }

	delete($options{"mode"});
	$in{iso9660_mode} =~ /^[0-7]{3}$/ ||
		&error(&text('linux_emask', $in{'iso9660_mode'}));
	$options{"mode"} = $in{iso9660_mode};
	}
elsif ($_[0] eq "autofs") {
	# Options for automounter filesystems
	delete($options{'timeout'});
	if (!$in{'autofs_timeout_def'}) {
		$in{'autofs_timeout'} =~ /^\d+$/ ||
			&error(&text('linux_etimeout', $in{'autofs_timeout'}));
		$options{'timeout'} = $in{'autofs_timeout'};
		}
	delete($options{'pid-file'});
	if (!$in{'autofs_pid-file_def'}) {
		$in{'autofs_pid-file'} =~ /^\/\S+$/ ||
		       &error(&text('linux_epidfile', $in{'autofs_pid-file'}));
		$options{'pid-file'} = $in{'autofs_pid-file'};
		}
	}
elsif ($_[0] eq "smbfs") {
	# Options for smb filesystems..
	delete($options{'user'}); delete($options{'username'});
	if ($in{smbfs_user}) {
		$options{$smbfs_support == 4 ? 'username' : 'user'} = $in{smbfs_user};
		}

	delete($options{'passwd'}); delete($options{'password'});
	if ($in{smbfs_passwd}) {
		$options{$smbfs_support == 4 ? 'password' : 'passwd'} = $in{smbfs_passwd};
		}

	if ($smbfs_support != 2) {
		delete($options{uid});
		if ($in{smbfs_uid} ne "") { $options{uid} = getpwnam($in{smbfs_uid}); }

		delete($options{gid});
		if ($in{smbfs_gid} ne "") { $options{gid} = getgrnam($in{smbfs_gid}); }
		}

	if ($smbfs_support == 1) {
		delete($options{servername});
		if (!$in{smbfs_sname_def})
			{ $options{servername} = $in{smbfs_sname}; }
		}
	elsif ($smbfs_support == 2) {
		delete($options{workgroup});
		if (!$in{smbfs_wg_def})
			{ $options{workgroup} = $in{smbfs_wg}; }
		}

	if ($smbfs_support < 3) {
		delete($options{clientname});
		if (!$in{smbfs_cname_def})
			{ $options{clientname} = $in{smbfs_cname}; }

		delete($options{machinename});
		if (!$in{smbfs_mname_def})
			{ $options{machinename} = $in{smbfs_mname}; }
		elsif (!gethostbyname($in{'smbfs_server'})) {
			# No hostname found for the server.. try to guess
			local($out, $sname);
			$sname = $in{'smbfs_server'};
			$out = `$config{'nmblookup_path'} -d 0 $sname 2>&1`;
			if (!$? && $out =~ /^([0-9\.]+)\s+$sname\n/) {
				$options{machinename} = $1;
				}
			}
		}

	if ($smbfs_support == 1) {
		delete($options{fmode});
		if ($in{smbfs_fmode} !~ /^[0-7]{3}$/) {
			&error(&text('linux_efmode', $in{'smbfs_fmode'}));
			}
		elsif ($in{smbfs_fmode} ne "755")
			{ $options{fmode} = $in{smbfs_fmode}; }

		delete($options{dmode});
		if ($in{smbfs_dmode} !~ /^[0-7]{3}$/) {
			&error(&text('linux_edmode', $in{'smbfs_dmode'}));
			}
		elsif ($in{smbfs_dmode} ne "755")
			{ $options{dmode} = $in{smbfs_dmode}; }
		}
	elsif ($smbfs_support >= 3) {
		delete($options{'ro'}); delete($options{'rw'});
		if ($in{'smbfs_ro'}) { $options{'ro'} = ''; }

		delete($options{'user'});
		if ($in{'smbfs_user2'}) { $options{'user'} = ''; }
		}
	}
elsif ($_[0] eq "reiserfs") {
	# Save reiserfs options
	delete($options{'notail'});
	$options{'notail'} = "" if ($in{'lnx_notail'});
	}

# Add loop option if mounting a normal file
if ($_[0] ne "swap" && $_[0] ne "auto" && $_[0] ne "autofs" &&
    $_[0] ne "smbfs" && $_[0] ne "nfs") {
	local(@st);
	@st = stat($_[1]);
	if (@st && ($st[2] & 0xF000) == 0x8000) {
		# a regular file.. add the loop option
		if (!$options{'loop'}) {
			$options{'loop'} = "";
			}
		}
	}

# Return options string
foreach $k (keys %options) {
	if ($options{$k} eq "") { push(@rv, $k); }
	else { push(@rv, "$k=$options{$k}"); }
	}
return @rv ? join(',' , @rv) : "-";
}


# Get the smbfs options from 'smbfs_opts' file in the current directory. This
# is sadly necessary because there is no way to get the current options for
# an existing smbfs mount... so webmin has to save them in a file when
# mounting. Blech.
sub read_smbopts
{
local($_);
open(SMBOPTS, "$module_config_directory/smbfs");
while(<SMBOPTS>) {
	/^(\S+)\s+(\S+)$/;
	$smbopts{$1} = $2;
	}
close(SMBOPTS);
}

sub write_smbopts
{
local($_);
open(SMBOPTS, "> $module_config_directory/smbfs");
foreach (keys %smbopts) {
	print SMBOPTS "$_\t$smbopts{$_}\n";
	}
close(SMBOPTS);
}


# create_swap(file, size, units)
# Calls dd and mkswap to setup a swap file
sub create_swap
{
local($out, $bl);
$bl = $_[1] * ($_[2] eq "m" ? 1024 : 1);
$out = `dd if=/dev/zero of=$_[0] bs=1024 count=$bl 2>&1`;
if ($?) { return "dd failed : $out"; }
$out = `mkswap $_[0] $bl 2>&1`;
if ($?) { return "mkswap failed : $out"; }
system("sync >/dev/null 2>&1");
return 0;
}

# exports_list(host, dirarray, clientarray)
# Fills the directory and client array references with exports from some
# host. Returns an error string if something went wrong
sub exports_list
{
local($dref, $cref, $out, $_);
$dref = $_[1]; $cref = $_[2];
$out = `showmount -e $_[0] 2>&1`;
if ($?) { return $out; }
foreach (split(/\n/, $out)) {
	if (/^(\/\S*)\s+(.*)$/) {
		push(@$dref, $1); push(@$cref, $2);
		}
	}
return undef;
}

# broadcast_addr()
# Returns a useable broadcast address for finding NFS servers
sub broadcast_addr
{
local($out);
$out = `ifconfig -a 2>&1`;
if ($out =~ /(eth|tr)\d\s+.*\n.*Bcast:(\S+)\s+/) { return $2; }
return "255.255.255.255";
}

# autofs_options(string)
# Converts a string of options line --timeout 60 to something like timeout=60
sub autofs_options
{
local(@options);
if ($_[0] =~ /--timeout\s+(\d+)/ || $_[0] =~ /-t\s+(\d+)/) {
	push(@options, "timeout=$1");
	}
if ($_[0] =~ /--pid-file\s+(\S+)/ || $_[0] =~ /-p\s+(\d+)/) {
	push(@options, "pid-file=$1");
	}
return join(',', @options);
}

# autofs_args(string)
# Convert a comma-separated options string into args for automount
sub autofs_args
{
local(%options, $args);
&parse_options("autofs", $_[0]);
if (defined($options{'timeout'})) {
	$args .= " --timeout $options{'timeout'}";
	}
if (defined($options{'pid-file'})) {
	$args .= " --pid-file $options{'pid-file'}";
	}
return $args;
}

# read_amd_conf()
# Returns the entire amd config file as a string
sub read_amd_conf
{
local $sl = $/;
$/ = undef;
open(AMD, $config{'auto_file'});
local $rv = <AMD>;
close(AMD);
$/ = $sl;
return $rv;
}

# write_amd_conf(text)
sub write_amd_conf
{
open(AMD, ">$config{'auto_file'}");
print AMD $_[0];
close(AMD);
}

# parse_amd_conf()
# Parses a new-style amd.conf file into a hashtable
sub parse_amd_conf
{
local (@rv, $str, $lnum);
open(AMD, $config{'auto_file'});
while(<AMD>) {
	s/\r|\n//g;
	s/#.*$//g;
	if (/\[\s*(\S+)\s*\]/) {
		$str = { 'dir' => $1,
			 'line' => $lnum,
			 'eline' => $lnum };
		push(@rv, $str);
		}
	elsif (/(\S+)\s*=\s*"(.*)"/ || /(\S+)\s*=\s*(\S+)/) {
		$str->{'opts'}->{$1} = $2;
		$str->{'eline'} = $lnum;
		}
	$lnum++;
	}
close(AMD);
return @rv;
}

# device_name(device)
# Converts a device name to a human-readable form
sub device_name
{
if (!$text{'select_part'}) {
	local %flang = &load_language('fdisk');
	$text{'select_part'} = $flang{'select_part'};
	$text{'select_mpart'} = $flang{'select_mpart'};
	$text{'select_device'} = $flang{'select_device'};
	$text{'select_fd'} = $flang{'select_fd'};
	}
return $_[0] =~ /^\/dev\/(s|h)d([a-z])(\d+)$/ ?
	&text('select_part', $1 eq 's' ? 'SCSI' : 'IDE', uc($2), "$3") :
       $_[0] =~ /^\/dev\/(s|h)d([a-z])$/ ?
	&text('select_device', $1 eq 's' ? 'SCSI' : 'IDE', uc($2)) :
       $_[0] =~ /rd\/c(\d+)d(\d+)p(\d+)$/ ?
	&text('select_mpart', "$1", "$2", "$3") :
       $_[0] =~ /fd(\d+)$/ ?
	&text('select_fd', "$1") :
       $_[0] =~ /md(\d+)$/ ?
	&text('linux_rdev', "$1") :
       $_[0] =~ /LABEL=(\S+)/i ?
	&text('linux_label', "$1") :
       $_[0] eq '/dev/cdrom' ?
	$text{'linux_cddev'} :
	$_[0];
}

sub files_to_lock
{
return ( $config{'fstab_file'}, $config{'autofs_file'}, $config{'auto_file'} );
}

1;

0707010000774a000081e40000000000000002000000013ac0388c000031bc000000200000000000000000000000000000001b00000003reloc/mount/save_mount.cgi    #!/usr/local/bin/perl
# save_mount.cgi
# Save or create a mount. When saving an existing mount, at lot of different
# things can happen. 

require './mount-lib.pl';
&error_setup($text{'save_err'});
&ReadParse();
$| = 1;

# check inputs
if ($in{type} ne "swap") {
	$in{directory} =~ /^\// ||
		&error(&text('save_edirname', $in{'directory'}));
	if (-r $in{'directory'} && !(-d $in{'directory'})) {
		&error(&text('save_edir', $in{'directory'}));
		}
	# non-existant directories get created later
	}
else {
	# for swap files, set the directory to 'swap'
	$in{directory} = "swap";
	}

# Get user choices
@mmodes = &mount_modes($in{type});
$msave = ($mmodes[0]==0 ? 0 : $in{msave});
$mnow = ($mmodes[1]==0 ? $msave : $in{mmount});

foreach $f (&files_to_lock()) {
	&lock_file($f);
	}
if (defined($in{old}) && !$access{'simple'}) {
	# Saving an existing mount
	if ($in{temp}) { @mlist = &list_mounted(); }
	else { @mlist = &list_mounts(); }
	@mold = @{$mlist[$in{old}]};

	if (!$mnow && !$in{oldmnow} && !$msave) {
		# Not mounted, so remove from fstab without checking
		$dev = $mold[1];
		}
	else {
		# Changing an existing mount
		$dev = &check_location($in{'type'});
		&parse_options($mold[2], $mold[3]);
		$opts = &check_options($in{'type'}, $dev, $in{'directory'});
		@minfo = ($in{'directory'}, $dev, $in{'type'}, $opts,
			  $mmodes[2] ? $in{'order'} : "-",
			  $in{'msave'}==2||$mmodes[0]==1 ? "yes" : "no");
		}

	# Check for change in device
	if ($mold[1] ne $dev) {
		# Device has changed..check it
		if (!&multiple_mount($minfo[2]) && &get_mounted("*", $dev)>=0) {
			&error(&text('save_ealready', $dev));
			}
		if (!&multiple_mount($minfo[2]) && &get_mount("*", $dev) != -1){
			&error(&text('save_ealready2', $dev));
			}
		$changed = 1;
		}

	# Check for change in directory
	if ($in{type} ne "swap" && $mold[0] ne $in{directory}) {
		# Directory has changed.. check it too
		if (&get_mounted($in{directory}, "*")>=0) {
			&error(&text('save_ealready3', $in{'directory'}));
			}
		if (&get_mount($in{directory}, "*") != -1) {
			&error(&text('save_ealready4', $in{'directory'}));
			}
		$changed = 1;

		if (!(-d $in{directory})) {
			# Create the new directory
			&lock_file($in{directory});
			mkdir($in{directory}, 0755) ||
				&error(&text('save_emkdir',
					     $in{'directory'}, $!));
			&unlock_file($in{directory});
			$made_dir = 1;
			}
		}

	# Check for change in current mount status
	if ($in{'oldmnow'} && $mmodes[3] == 1) {
		# Mounted, and cannot be unmounted
		}
	elsif ($in{'oldmnow'} && !$mnow) {
		# Just been unmounted..
		if ($error = &unmount_dir($mold[0], $mold[1], $in{type})) {
			#if ($error =~ /busy/) {
				# Mount is busy.. most likely because it is
				# currently in use. Offer the user a choice
				# to remove from the mount table only
			#	}
			#else { &error("Unmount failed : $error"); }
			&error(&text('save_eumount', $error));
			}
		@tlog = ( "umount", "dir", $mold[0],
			  { 'dir' => $mold[0], 'dev' => $mold[1],
			    'type' => $mold[2], 'opts' => $mold[3] } );
		}
	elsif ($mnow && !$in{oldmnow}) {
		# Just been mounted..
		if ($error = &mount_dir(@minfo)) {
			&error(&text('save_emount', $error));
			}
		@tlog = ( "mount", "dir", $minfo[0], 
			  { 'dir' => $minfo[0], 'dev' => $minfo[1],
			    'type' => $minfo[2], 'opts' => $minfo[3] } );
		}
	elsif (!$mnow && !$in{oldmnow}) {
		# Not mounted, and doesn't need to be
		}
	elsif (($mold[0] ne $minfo[0] || $mold[1] ne $minfo[1] ||
	       &diff_opts($mold[3], $minfo[3])) && !$in{'perm_only'}) {
		# Need to unmount/mount to apply new options
		if ($error = &unmount_dir($mold[0], $mold[1], $in{type})) {
			if ($error =~ /busy|Invalid argument/ && $msave) {
				# Mount is busy.. most likely because it is
				# currently in use. Offer the user a choice
				# to update only the fstab file, rather than
				# the real mount
				&header($text{'edit_title'}, "");
				print "<hr>\n";
				print &text('save_perm', "<tt>$mold[0]</tt>"),
				      "<p>\n";
				print "<form action=save_mount.cgi>\n";
				print "<input type=hidden name=perm_only ",
				      "value=1>\n";
				foreach $k (keys %in) {
					print "<input type=hidden name=$k ",
					      "value=\"$in{$k}\">\n";
					}
				print "<center><input type=submit ",
				      "value=\"$text{'save_apply'}\">",
				      "</center>\n";
				print "</form>\n";

				print "<hr>\n";
				&footer("", $text{'index_return'});
				exit;
				}
			else { &error(&text('save_eremount', $error)); }
			}
		if ($error = &mount_dir(@minfo)) {
			&error(&text('save_eremount', $error));
			}
		@tlog = ( "remount", "dir", $minfo[0], 
			  { 'dir' => $minfo[0], 'dev' => $minfo[1],
			    'type' => $minfo[2], 'opts' => $minfo[3] } );
		}

	# Check for change in permanence
	if ($in{oldmsave} && !$msave) {
		# Delete from mount table
		&delete_mount($in{old});
		@plog = ( "delete", "dir", $in{'directory'},
			  { 'dir' => $mold[0], 'dev' => $mold[1],
			    'type' => $mold[2], 'opts' => $mold[3] } );
		}
	elsif ($msave && !$in{oldmsave}) {
		# Add to mount table
		&create_mount(@minfo);
		@plog = ( "create", "dir", $in{'directory'},
			  { 'dir' => $minfo[0], 'dev' => $minfo[1],
			    'type' => $minfo[2], 'opts' => $minfo[3] } );
		}
	elsif (!$msave && !$in{oldmsave}) {
		# Not in mount table
		}
	elsif ($mold[0] ne $minfo[0] || $mold[1] ne $minfo[1] ||
	       &diff_opts($mold[3], $minfo[3])) {
		# Apply any changes in mount options
		&change_mount($in{old}, @minfo);
		@plog = ( "modify", "dir", $in{'directory'},
			  { 'dir' => $minfo[0], 'dev' => $minfo[1],
			    'type' => $minfo[2], 'opts' => $minfo[3] } );
		}
	}
elsif (defined($in{'old'})) {
	# Doing a simple modification to a mount
	if ($in{temp}) { @mlist = &list_mounted(); }
	else { @mlist = &list_mounts(); }
	@mold = @{$mlist[$in{old}]};

	if ($in{'umount'}) {
		# Just unmount the filesystem
		if ($error = &unmount_dir($mold[0], $mold[1], $in{type})) {
			&error(&text('save_eumount', $error));
			}
		}
	elsif ($in{'mount'}) {
		# Just mount the filesystem
		if ($error = &mount_dir(@mold)) {
			&error(&text('save_emount', $error));
			}
		}
	elsif ($in{'perm'}) {
		# Add to permanent mount list
		&create_mount($mold[0], $mold[1], $mold[2], $mold[3],
			      2, "yes");
		}
	elsif ($in{'delete'}) {
		if ($in{'oldmnow'}) {
			# Unmount first
			if ($error = &unmount_dir($mold[0], $mold[1],
						  $in{type})) {
				&error(&text('save_eumount', $error));
				}
			}
		# Remove from permanent list
		&delete_mount($in{'old'});
		}
	else {
		# Updating the mount in some way ..
		# Check the mount source
		$dev = &check_location($in{'type'});
		&parse_options($mold[2], $mold[3]);
		if (defined($access{'opts'}) &&
		    $access{'opts'} !~ /$in{'type'}/) {
			# Just use existing options
			local @opts;
			foreach $k (keys %options) {
				if ($options{$k} eq '') { push(@opts, $k); }
				else { push(@opts, "$k=$options{$k}"); }
				}
			$opts = @opts ? join(",", @opts) : "-";
			}
		else {
			# Get options from the user
			$opts = &check_options($in{'type'}, $dev,
					       $in{'directory'});
			}
		@minfo = ($in{'directory'}, $dev, $in{'type'}, $opts, 2, 'yes');

		# Check for change in device
		if ($mold[1] ne $dev) {
			# Device has changed..check it
			if (!&multiple_mount($minfo[2]) &&
			    &get_mounted("*", $dev)>=0) {
				&error(&text('save_ealready', $dev));
				}
			if (!&multiple_mount($minfo[2]) &&
			    &get_mount("*", $dev) != -1){
				&error(&text('save_ealready2', $dev));
				}
			$changed = 1;
			}

		# Check for change in directory
		if ($in{type} ne "swap" && $mold[0] ne $in{directory}) {
			# Directory has changed.. check it too
			if (&get_mounted($in{directory}, "*")>=0) {
				&error(&text('save_ealready3',
					     $in{'directory'}));
				}
			if (&get_mount($in{directory}, "*") != -1) {
				&error(&text('save_ealready4',
					     $in{'directory'}));
				}
			$changed = 1;

			if (!(-d $in{directory})) {
				# Create the new directory
				&lock_file($in{directory});
				mkdir($in{directory}, 0755) ||
					&error(&text('save_emkdir',
						     $in{'directory'}, $!));
				&unlock_file($in{directory});
				$made_dir = 1;
				}
			}

		if ($in{'oldmnow'} && ($mold[0] ne $minfo[0] ||
		    $mold[1] ne $minfo[1] || &diff_opts($mold[3], $minfo[3]))) {
			# Need to unmount/mount to apply new options
			if ($error=&unmount_dir($mold[0], $mold[1], $in{type})){
				&error(&text('save_eremount', $error));
				}
			if ($error = &mount_dir(@minfo)) {
				&error(&text('save_eremount', $error));
				}
			}

		if ($in{'oldmsave'}) {
			# Change entry in fstab
			&change_mount($in{'old'}, @minfo);
			}
		}
	}
elsif ($access{'simple'}) {
	# Create and mounting from the simple interface
	$dev = &check_location($in{type});
	if (!defined($access{'opts'}) || $access{'opts'} =~ /$in{'type'}/) {
		$opts = &check_options($in{'type'}, $dev, $in{'directory'});
		}
	else {
		$opts = "-";
		}
	@minfo = ($in{directory}, $dev, $in{type}, $opts, 2, 'yes');

	# Check if the device is in use
	if (!&multiple_mount($minfo[2]) && &get_mounted("*", $dev)>=0) {
		&error(&text('save_ealready', $dev));
		}
	if (!&multiple_mount($minfo[2]) && &get_mount("*", $dev) != -1) {
		&error(&text('save_ealready2', $dev));
		}

	# Check if the directory is in use
	if ($in{type} ne "swap") {
		if (&get_mounted($in{directory}, "*")>=0) {
			&error(&text('save_ealready2', $in{'directory'}));
			}
		if (&get_mount($in{directory}, "*") != -1) {
			&error(&text('save_ealready3', $in{'directory'}));
			}
		}

	# Create the directory
	if ($in{type} ne "swap" && !(-d $in{directory})) {
		&lock_file($in{directory});
		mkdir($in{directory}, 0755) ||
		  &error(&text('save_emkdir', $in{'directory'}, $!));
		&unlock_file($in{directory});
		$made_dir = 1;
		}

	# Mount and save
	if ($error = &mount_dir($minfo[0], $minfo[1],
				$minfo[2], $minfo[3])) {
		if ($made_dir) { rmdir($in{directory}); }
		&error(&text('save_emount', $error));
		}
	&create_mount(@minfo) if ($mmodes[0]);
	}
else {
	# Creating a new mount
	$dev = &check_location($in{type});
	&parse_options($minfo[3]);
	$opts = &check_options($in{type}, $dev, $in{'directory'});
	@minfo = ($in{directory}, $dev, $in{type}, $opts,
		  $mmodes[2] ? $in{order} : "-",
		  $in{msave}==2||$mmodes[0]==1 ? "yes" : "no");

	# Check if anything is being done
	if (!$msave && !$mnow) {
		&error($text{'save_enone'});
		}

	# Check if the device is in use
	if (!&multiple_mount($minfo[2]) && &get_mounted("*", $dev)>=0) {
		&error(&text('save_ealready', $dev));
		}
	if (!&multiple_mount($minfo[2]) && &get_mount("*", $dev) != -1) {
		&error(&text('save_ealready2', $dev));
		}

	# Check if the directory is in use
	if ($in{type} ne "swap") {
		if (&get_mounted($in{directory}, "*")>=0) {
			&error(&text('save_ealready2', $in{'directory'}));
			}
		if (&get_mount($in{directory}, "*") != -1) {
			&error(&text('save_ealready3', $in{'directory'}));
			}
		}

	# Create the directory
	if ($in{type} ne "swap" && !(-d $in{directory})) {
		&lock_file($in{directory});
		mkdir($in{directory}, 0755) ||
		  &error(&text('save_emkdir', $in{'directory'}, $!));
		&unlock_file($in{directory});
		$made_dir = 1;
		}

	# If mounting now, attempt to do it
	if ($mnow) {
		# If the mount fails, give up totally
		if ($error = &mount_dir($minfo[0], $minfo[1],
					$minfo[2], $minfo[3])) {
			if ($made_dir) { rmdir($in{directory}); }
			&error(&text('save_emount', $error));
			}
		@tlog = ( "mount", "dir", $in{'directory'},
			  { 'dir' => $minfo[0], 'dev' => $minfo[1],
			    'type' => $minfo[2], 'opts' => $minfo[3] } );
		}

	# If saving, save now
	if ($msave) {
		&create_mount(@minfo);
		@plog = ( "create", "dir", $in{'directory'},
			  { 'dir' => $minfo[0], 'dev' => $minfo[1],
			    'type' => $minfo[2], 'opts' => $minfo[3] } );
		}
	}
foreach $f (&files_to_lock()) {
	&unlock_file($f);
	}
&webmin_log(@plog) if (@plog);
%tpmap = ( 'create', 'mount',  'delete', 'umount',  'modify', 'remount' );
if (@tlog && $tpmap{$plog[0]} ne $tlog[0]) {
	&webmin_log(@tlog);
	}
&redirect($in{'return'});


# undo_changes
# Put back any changes to the fstab file
sub undo_changes
{
if ($in{temp} && $in{mboot}) {
	# a mount was made permanent.. undo by deleting it
	&delete_mount($idx);
	}
elsif (!$in{temp} && !$in{mboot}) {
	# a permanent mount was made temporary.. undo by making it permanent
	&create_mount(@mold);
	}
elsif ($in{mboot}) {
	# some mount options were changed.. undo by changing back
	&change_mount($in{old}, @mold);
	}
if ($made_dir) {
	# A directory for mounting was created.. delete it
	rmdir($in{directory});
	}
}

# diff_opts(string1, string2)
sub diff_opts
{
local $o1 = join(",", sort { $a cmp $b } split(/,/, $_[0]));
local $o2 = join(",", sort { $a cmp $b } split(/,/, $_[1]));
return $o1 ne $o2;
}

0707010000774b000081e40000000000000002000000013ac0388d0000dc44000000200000000000000000000000000000002300000003reloc/mount/slackware-linux-lib.pl    # linux-lib.pl
# Mount table functions for linux

if (&has_command("amd")) {
	local $amd = &read_amd_conf();
	$amd_support = $amd =~ /\[\s*global\s*\]/i ? 2 : 1;
	}
$autofs_support = &has_command("automount");
if (&has_command("mount.smb")) {
	$smbfs_support = `mount.smb -v` =~ /username=/i ? 4 : 3;
	}
elsif (&has_command("mount.smbfs")) {
	$smbfs_support = `mount.smbfs -v` =~ /username=/i ? 4 : 3;
	}
elsif (&has_command("smbmount")) {
	$smbfs_support = `smbmount -v` =~ /Version\s+2/i ? 2 : 1;
	}
$swaps_support = -r "/proc/swaps";
if (&has_command("e2label") &&
    `mount --version 2>&1` =~ /(\d+)\.(\d+)/ && ($1 > 2 || $1==2 && $2 >= 10)) {
	$has_e2label = 1;
	}

# Return information about a filesystem, in the form:
#  directory, device, type, options, fsck_order, mount_at_boot
# If a field is unused or ignored, a - appears instead of the value.
# Swap-filesystems (devices or files mounted for VM) have a type of 'swap',
# and 'swap' in the directory field
sub list_mounts
{
return @list_mounts_cache if (@list_mounts_cache);
local(@rv, @p, @o, $_, $i, $j); $i = 0;

# Get /etc/fstab mounts
open(FSTAB, $config{fstab_file});
while(<FSTAB>) {
	local(@o, $at_boot);
	chop; s/#.*$//g;
	if (!/\S/ || /\signore\s/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "proc") { $p[0] = "proc"; }
	elsif ($p[2] eq "auto") { $p[2] = "*"; }
	elsif ($p[2] eq "swap") { $p[1] = "swap"; }
	elsif ($p[2] eq "smbfs") { $p[0] =~ s/\//\\/g; }
	$rv[$i] = [ $p[1], $p[0], $p[2] ];
	$rv[$i]->[5] = "yes";
	@o = split(/,/ , $p[3] eq "defaults" ? "" : $p[3]);
	if (($j = &indexof("noauto", @o)) >= 0) {
		# filesytem is not mounted at boot
		splice(@o, $j, 1);
		$rv[$i]->[5] = "no";
		}
	$rv[$i]->[3] = (@o ? join(',' , @o) : "-");
	$rv[$i]->[4] = (@p >= 5 ? $p[5] : 0);
	$i++;
	}
close(FSTAB);

if ($amd_support == 1) {
	# Get old automounter configuration, as used by redhat
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		@p = split(/\s+/, $1);
		for($j=0; $j<@p; $j+=2) {
			$rv[$i++] = [ $p[$j], $p[$j+1], "auto",
				      "-", 0, "yes" ];
			}
		}
	}
elsif ($amd_support == 2) {
	# Guess what? There's now a *new* amd config file format, introduced
	# in redhat 6.1 and caldera 2.3
	local @amd = &parse_amd_conf();
	local @sp = split(/:/, $amd[0]->{'opts'}->{'search_path'});
	local ($am, $sp);
	foreach $am (@amd) {
		local $mn = $am->{'opts'}->{'map_name'};
		if ($mn !~ /^\//) {
			foreach $sp (@sp) {
				if (-r "$sp/$mn") {
					$mn = "$sp/$mn";
					last;
					}
				}
			}
		$rv[$i++] = [ $am->{'dir'}, $mn,
			      "auto", $am->{'opts'}, 0, "yes" ]
			if ($am->{'dir'} ne 'global');
		}
	}

# Get kernel automounter configuration
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	while(<AUTO>) {
		chop;
		s/#.*$//g;
		if (/^\s*(\S+)\s+(\S+)\s*(.*)$/) {
			$rv[$i++] = [ $1, $2, "autofs",
				      ($3 ? &autofs_options($3) : "-"),
				      0, "yes" ];
			}
		}
	close(AUTO);
	}

@list_mounts_cache = @rv;
return @rv;
}


# create_mount(directory, device, type, options, fsck_order, mount_at_boot)
# Add a new entry to the fstab file, old or new automounter file
sub create_mount
{
local(@mlist, @amd, $_); local($opts);

if ($_[2] eq "auto") {
	if ($amd_support == 1) {
		# Adding an old automounter mount
		local $amd = &read_amd_conf();
		local $m = "$_[0] $_[1]";
		if ($amd =~ /MOUNTPTS=''/) {
			$amd =~ s/MOUNTPTS=''/MOUNTPTS='$m'/;
			}
		else {
			$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$1 $m'/;
			}
		&write_amd_conf($amd);
		}
	elsif ($amd_support == 2) {
		# Adding a new automounter mount
		open(AMD, ">>$config{'auto_file'}");
		print AMD "\n";
		print AMD "[ $_[0] ]\n";
		print AMD "map_name = $_[1]\n";
		close(AMD);
		}
	}
elsif ($_[2] eq "autofs") {
	# Adding a new automounter mount
	open(AUTO, ">> $config{'autofs_file'}");
	print AUTO "$_[0]  $_[1]";
	if ($_[3]) { print AUTO "  ",&autofs_args($_[3]); }
	print AUTO "\n";
	close(AUTO);
	}
else {
	# Adding a normal mount to the fstab file
	local $dev = $_[1];
	$dev =~ s/\\/\//g if ($_[2] eq 'smbfs');
	open(FSTAB, ">> $config{fstab_file}");
	print FSTAB "$dev  $_[0]  $_[2]";
	$opts = $_[3] eq "-" ? "" : $_[3];
	if ($_[5] eq "no") {
		$opts = join(',' , (split(/,/ , $opts) , "noauto"));
		}
	if ($opts eq "") { print FSTAB "  defaults"; }
	else { print FSTAB "  $opts"; }
	print FSTAB "  0  ";
	print FSTAB $_[4] eq "-" ? "0\n" : "$_[4]\n";
	close(FSTAB);
	}
undef(@list_mounts_cache);
}


# change_mount(num, directory, device, type, options, fsck_order, mount_at_boot)
# Change an existing permanent mount
sub change_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $line !~ /\signore\s/ && $i++ == $_[0]) {
		# Found the line to replace
		print FSTAB "$_[2]  $_[1]  $_[3]";
		$opts = $_[4] eq "-" ? "" : $_[4];
		if ($_[6] eq "no") {
			$opts = join(',' , (split(/,/ , $opts) , "noauto"));
			}
		if ($opts eq "") { print FSTAB "  defaults"; }
		else { print FSTAB "  $opts"; }
		print FSTAB "  0  ";
		print FSTAB $_[5] eq "-" ? "0\n" : "$_[5]\n";
		}
	else { print FSTAB $_,"\n"; }
	}
close(FSTAB);

if ($amd_support == 1) {
	# Update older amd configuration
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		# found mount points line..
		local @mpts = split(/\s+/, $1);
		for($j=0; $j<@mpts; $j+=2) {
			if ($i++ == $_[0]) {
				$mpts[$j] = $_[1];
				$mpts[$j+1] = $_[2];
				}
			}
		local $mpts = join(" ", @mpts);
		$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$mpts'/;
		}
	&write_amd_conf($amd);
	}
elsif ($amd_support == 2) {
	# Update new amd configuration
	local @amd = &parse_amd_conf();
	local $lref = &read_file_lines($config{'auto_file'});
	foreach $am (@amd) {
		next if ($am->{'dir'} eq 'global');
		if ($i++ == $_[0]) {
			local @nl = ( "[ $_[1] ]" );
			local %opts = %{$am->{'opts'}};
			$opts->{'map_name'} = $_[2];
			foreach $o (keys %opts) {
				push(@nl, "$o = $opts{$o}");
				}
			splice(@$lref, $am->{'line'},
			       $am->{'eline'} - $am->{'line'} + 1, @nl);
			}
		}
	&flush_file_lines();
	}

# Update autofs configuration
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	@auto = <AUTO>;
	close(AUTO);
	open(AUTO, "> $config{'autofs_file'}");
	foreach (@auto) {
		chop; ($line = $_) =~ s/#.*$//g;
		if ($line =~ /\S/ && $i++ == $_[0]) {
			print AUTO "$_[1]  $_[2]";
			if ($_[4]) { print AUTO "  ",&autofs_args($_[4]); }
			print AUTO "\n";
			}
		else { print AUTO $_,"\n"; }
		}
	close(AUTO);
	}
undef(@list_mounts_cache);
}


# delete_mount(index)
# Delete an existing permanent mount
sub delete_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line !~ /\S/ || $line =~ /\signore\s/ || $i++ != $_[0]) {
		# Don't delete this line
		print FSTAB $_,"\n";
		}
	}
close(FSTAB);

if ($amd_support == 1) {
	# Update older amd configuration
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		# found mount points line..
		local @mpts = split(/\s+/, $1);
		for($j=0; $j<@mpts; $j+=2) {
			if ($i++ == $_[0]) {
				splice(@mpts, $j, 2);
				}
			}
		local $mpts = join(" ", @mpts);
		$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$mpts'/;
		}
	&write_amd_conf($amd);
	}
elsif ($amd_support == 2) {
	# Update new amd configuration
	local @amd = &parse_amd_conf();
	local $lref = &read_file_lines($config{'auto_file'});
	foreach $am (@amd) {
		next if ($am->{'dir'} eq 'global');
		if ($i++ == $_[0]) {
			splice(@$lref, $am->{'line'},
			       $am->{'eline'} - $am->{'line'} + 1);
			}
		}
	&flush_file_lines();
	}

# Update AMD file
if ($amd_support) {
	open(AMD, $config{auto_file});
	@amd = <AMD>;
	close(AMD);
	open(AMD, "> $config{auto_file}");
	foreach (@amd) {
		if (/MOUNTPTS='(.*)'/) {
			# found mount points line..
			@mpts = split(/\s+/, $1);
			for($j=0; $j<@mpts; $j+=2) {
				if ($i++ != $_[0]) {
					push(@nmpts, $mpts[$j]);
					push(@nmpts, $mpts[$j+1]);
					}
				}
			print AMD "MOUNTPTS='".join(' ', @nmpts)."'\n";
			}
		else { print AMD $_; }
		}
	close(AMD);
	}

# Update autofs file
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	@auto = <AUTO>;
	close(AUTO);
	open(AUTO, "> $config{'autofs_file'}");
	foreach (@auto) {
		chop; ($line = $_) =~ s/#.*$//g;
		if ($line !~ /\S/ || $i++ != $_[0]) {
			# keep this line
			print AUTO $_,"\n";
			}
		}
	close(AUTO);
	}
undef(@list_mounts_cache);
}


# list_mounted()
# Return a list of all the currently mounted filesystems and swap files.
# The list is in the form:
#  directory device type options
sub list_mounted
{
return @list_mounted_cache if (@list_mounted_cache);
local(@rv, @p, @o, $mo, $_, %smbopts);
local @mounts = &list_mounts();

&read_smbopts();
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	chop;
	s/#.*$//g; if (!/\S/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "auto" || $p[0] =~ /^\S+:\(pid\d+\)$/) {
		# Automounter map.. turn the map= option into the device
		@o = split(/,/ , $p[3]);
		($mo) = grep {/^map=/} (@o);
		$mo =~ /^map=(.*)$/; $p[0] = $1;
		$p[3] = join(',' , grep {!/^map=/} (@o));
		$p[2] = "auto";
		}
	elsif ($p[2] eq "autofs") {
		# Kernel automounter map.. use the pid to find the map
		$p[0] =~ /automount\(pid(\d+)\)/ || next;
		$out = `ps hwwww $1`;
		$out =~ /automount\s+(.*)\s*(\S+)\s+(file|program|yp)(,\S+)?\s+(\S+)/ || next;
		$p[0] = $5;
		$p[3] = $1 ? &autofs_options($1) : "-";
		}
	elsif ($p[2] eq "smbfs") {
		# Change from //FOO/BAR to \\foo\bar
		$p[0] =~ s/\//\\/g;
		$p[0] = lc($p[0]);
		$p[3] = $smbopts{$p[1]};
		}
	elsif ($p[2] eq "proc") {
		# The source for proc mounts is always proc
		$p[0] = "proc";
		}
	if ($p[2] eq 'ext2' && $has_e2label) {
		# Check for a label on this partition, and there is one
		# and this filesystem is in fstab with the label, change
		# the device.
		local $label = `e2label $p[0] 2>^1`;
		if (!$?) {
			chop($label);
			foreach $m (@mounts) {
				if ($m->[0] eq $p[1] &&
				    $m->[1] eq "LABEL=$label") {
					$p[0] = "LABEL=$label";
					last;
					}
				}
			}
		}
	# check fstab for a mount on the same dir which is a symlink
	# to the device
	local @st = stat($p[0]);
	foreach $m (@mounts) {
		if ($m->[0] eq $p[1]) {
			local @fst = stat($m->[1]);
			if ($fst[0] == $st[0] && $fst[1] == $st[1]) {
				# symlink to the same place!
				$p[0] = $m->[1];
				last;
				}
			}
		}
	push(@rv, [ $p[1], $p[0], $p[2], $p[3] ]);
	}
close(MTAB);
open(SWAPS, "/proc/swaps");
while(<SWAPS>) {
	chop;
	if (/^(\/\S+)\s+/) {
		push(@rv, [ "swap", $1, "swap", "-" ]);
		}
	}
close(SWAPS);
@list_mounted_cache = @rv;
return @rv;
}


# mount_dir(directory, device, type, options)
# Mount a new directory from some device, with some options. Returns 0 if ok,
# or an error string if failed
sub mount_dir
{
local($out, $opts, $shar, %options, %smbopts);
if ($_[2] eq "swap") {
	# Use swapon to add the swap space..
	$out = &backquote_logged("swapon $_[1] 2>&1");
	if ($out =~ /Invalid argument/) {
		# looks like this swap partition isn't ready yet.. set it up
		$out = &backquote_logged("mkswap $_[1] 2>&1");
		if ($?) { return "mkswap failed : <pre>$out</pre>"; }
		$out = &backquote_logged("swapon $_[1] 2>&1");
		}
	if ($?) { return "<pre>$out</pre>"; }
	}
elsif ($_[2] eq "auto") {
	# Old automounter filesystem
	$out = &backquote_logged("amd $_[0] $_[1] >/dev/null 2>/dev/null");
	if ($?) { return $text{'linux_eamd'}; }
	}
elsif ($_[2] eq "autofs") {
	# New automounter filesystem
	$opts = &autofs_args($_[3]);
	$type = $_[1] !~ /^\// ? "yp" :
		(-x $_[1]) ? "program" : "file";
	$out = &backquote_logged("automount $opts $_[0] $type $_[1] 2>&1");
	if ($?) { return &text('linux_eauto', "<pre>$out</pre>"); }
	}
elsif ($_[2] eq "smbfs") {
	local $shar = $_[1];
	$shar =~ s/\\/\//g;
	if ($smbfs_support >= 3) {
		# SMB filesystem mounted with mount command
		$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
		$out = &backquote_logged("mount -t $_[2] $opts $shar $_[0] 2>&1");
		if ($? || $out =~ /failed/i) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "mount -t $_[2] $opts $shar $_[0] : <pre>$out</pre>";
			}
		}
	elsif ($smbfs_support == 2) {
		# SMB filesystem mounted with version 2.x smbmount
		&parse_options("smbfs", $_[3]);
		$opts =
		    ($options{'user'} ? "-U $options{'user'} " : "").
		    ($options{'passwd'} ? "" : "-N ").
		    ($options{'workgroup'} ? "-W $options{'workgroup'} " : "").
		    ($options{'clientname'} ? "-n $options{'clientname'} " : "").
		    ($options{'machinename'} ? "-I $options{'machinename'} " : "");
		&foreign_require("proc", "proc-lib.pl");
		local ($fh, $fpid) = &foreign_call(
			"proc", "pty_process_exec_logged", "sh", "-c",
			"smbmount $shar $_[0] -d 0 $opts");
		if ($options{'passwd'}) {
			local $w = &wait_for($fh, "word:");
			if ($w < 0) {
				&system_logged("umount $_[0] >/dev/null 2>&1");
				return $text{'linux_esmbconn'};
				}
			local $p = "$options{'passwd'}\n";
			syswrite($fh, $p, length($p));
			}
		local $got;
		while(<$fh>) {
			$got .= $_;
			}
		if ($got =~ /failed/) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "<pre>$got</pre>\n";
			}
		close($fh);
		}
	elsif ($smbfs_support == 1) {
		# SMB filesystem mounted with older smbmount
		&parse_options("smbfs", $_[3]);
		$shortname = &get_system_hostname();
		if ($shortname =~ /^([^\.]+)\.(.+)$/) { $shortname = $1; }
		$opts =
		   ($options{servername} ? "-s $options{servername} " : "").
		   ($options{clientname} ? "-c $options{clientname} "
					 : "-c $shortname ").
		   ($options{machinename} ? "-I $options{machinename} " : "").
		   ($options{user} ? "-U $options{user} " : "").
		   ($options{passwd} ? "-P $options{passwd} " : "-n ").
		   ($options{uid} ? "-u $options{uid} " : "").
		   ($options{gid} ? "-g $options{gid} " : "").
		   ($options{fmode} ? "-f $options{fmode} " : "").
		   ($options{dmode} ? "-d $options{dmode} " : "");
		$out = &backquote_logged("smbmount $shar $_[0] $opts 2>&1");
		if ($out) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "<pre>$out</pre>";
			}
		}
	&read_smbopts();
	$smbopts{$_[0]} = $_[3] eq "-" ? "dummy=1" : $_[3];
	&write_smbopts();
	}
else {
	# some filesystem supported by mount
	$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
	if ($_[1] =~ /LABEL=(.*)/) {
		$cmd = "mount -t $_[2] -L $1 $opts $_[0]";
		}
	else {
		$cmd = "mount -t $_[2] $opts $_[1] $_[0]";
		}
	$out = &backquote_logged("$cmd 2>&1");
	if ($?) { return "<pre>$cmd : $out</pre>"; }
	}
undef(@list_mounted_cache);
return 0;
}


# unmount_dir(directory, device, type)
# Unmount a directory that is currently mounted. Returns 0 if ok,
# or an error string if failed
sub unmount_dir
{
local($out, %smbopts, $dir);
if ($_[2] eq "swap") {
	# Use swapoff to remove the swap space..
	$out = &backquote_logged("swapoff $_[1]");
	if ($?) { return "<pre>$out</pre>"; }
	}
elsif ($_[2] eq "auto") {
	# Kill the amd process
	$dir = $_[0];
	if (`cat /etc/mtab` =~ /:\(pid([0-9]+)\)\s+$dir\s+(auto|nfs)\s+/) {
		&kill_logged('TERM', $1) || return $text{'linux_ekillamd'};
		}
	sleep(2);
	}
elsif ($_[2] eq "autofs") {
	# Kill the automount process
	$dir = $_[0];
	`cat /etc/mtab` =~ /automount\(pid([0-9]+)\)\s+$dir\s+autofs\s+/;
	&kill_logged('TERM', $1) || return $text{'linux_ekillauto'};
	sleep(2);
	}
else {
	$out = &backquote_logged("umount $_[0] 2>&1");
	if ($?) { return "<pre>$out</pre>"; }
	if ($_[2] eq "smbfs") {
		# remove options from list
		&read_smbopts();
		delete($smbopts{$_[0]});
		&write_smbopts();
		}
	}
undef(@list_mounted_cache);
return 0;
}


# mount_modes(type)
# Given a filesystem type, returns 4 numbers that determine how the file
# system can be mounted, and whether it can be fsck'd
#  0 - cannot be permanently recorded
#	(smbfs under linux before 2.2)
#  1 - can be permanently recorded, and is always mounted at boot
#	(swap under linux)
#  2 - can be permanently recorded, and may or may not be mounted at boot
#	(most normal filesystems)
# The second is:
#  0 - mount is always permanent => mounted when saved
#	(swap under linux before 2.2)
#  1 - doesn't have to be permanent
#	(normal fs types)
# The third is:
#  0 - cannot be fsck'd at boot time
#  1 - can be be fsck'd at boot
# The fourth is:
#  0 - can be unmounted
#  1 - cannot be unmounted
sub mount_modes
{
if ($_[0] eq "swap")
	{ return (1, $swaps_support ? 1 : 0, 0, 0); }
elsif ($_[0] eq "auto" || $_[0] eq "autofs")
	{ return (1, 1, 0, 0); }
elsif ($_[0] eq "smbfs")
	{ return ($smbfs_support >= 3 ? 2 : 0, 1, 0, 0); }
elsif ($_[0] eq "ext2" || $_[0] eq "minix" || $_[0] eq "xiafs")
	{ return (2, 1, 1, 0); }
else
	{ return (2, 1, 0, 0); }
}


# disk_space(type, directory)
# Returns the amount of total and free space for some filesystem, or an
# empty array if not appropriate.
sub disk_space
{
if (&get_mounted($_[1], "*") < 0) { return (); }
if ($_[0] eq "proc" || $_[0] eq "swap" ||
    $_[0] eq "auto" || $_[0] eq "autofs") { return (); }
`df -k $_[1]` =~ /Mounted on\n\S+\s+(\S+)\s+\S+\s+(\S+)/;
return ($1, $2);
}


# list_fstypes()
# Returns an array of all the supported filesystem types. If a filesystem is
# found that is not one of the supported types, generate_location() and
# generate_options() will not be called for it.
sub list_fstypes
{
local @sup = ("ext2", "minix", "msdos", "nfs", "iso9660", "ext", "xiafs",
	      "hpfs", "fat", "vfat", "umsdos", "sysv", "reiserfs");
push(@sup, "smbfs") if ($smbfs_support);
push(@sup, "auto") if ($amd_support);
push(@sup, "autofs") if ($autofs_support);
push(@sup, "swap");
return @sup;
}


# fstype_name(type)
# Given a short filesystem type, return a human-readable name for it
sub fstype_name
{
local(%fsmap);
%fsmap = ("ext2","Linux Native Filesystem",
	  "minix","Minix Filesystem",
	  "msdos","MS-DOS Filesystem",
	  "nfs","Network Filesystem",
	  "smbfs","Windows Networking Filesystem",
	  "iso9660","ISO9660 CD-ROM",
	  "ext","Old EXT Linux Filesystem",
	  "xiafs","Old XIAFS Linux Filesystem",
	  "hpfs","OS/2 Filesystem",
	  "fat","MS-DOS Filesystem",
	  "vfat","Windows 95 Filesystem",
	  "umsdos","Linux on top of MS-DOS Filesystem",
	  "sysv","System V Filesystem",
	  "swap","Virtual Memory",
	  "proc","Kernel Filesystem",
	  "devpts","PTS Filesystem",
	  "auto",($autofs_support ? "Old " : "")."Automounter Filesystem",
	  "reiserfs","Reiser Filesystem",
	  "autofs","New Automounter Filesystem",
	  "usbdevfs","USB Devices",
	  "shm","SysV Shared Memory");
return $config{long_fstypes} && $fsmap{$_[0]} ? $fsmap{$_[0]} : uc($_[0]);
}


# multiple_mount(type)
# Returns 1 if filesystems of this type can be mounted multiple times, 0 if not
sub multiple_mount
{
return ($_[0] eq "nfs" || $_[0] eq "auto" || $_[0] eq "autofs");
}


# generate_location(type, location)
# Output HTML for editing the mount location of some filesystem.
sub generate_location
{
if ($_[0] eq "nfs") {
	# NFS mount from some host and directory
	$_[1] =~ /^([^:]+):(.*)$/;
	print "<tr> <td><b>$text{'linux_nfshost'}</b></td>\n";
	print "<td><input name=nfs_host size=20 value=\"$1\">\n";
	&nfs_server_chooser_button("nfs_host");
	print "&nbsp;<b>$text{'linux_nfsdir'}</b>\n";
	print "<input name=nfs_dir size=20 value=\"$2\">\n";
	&nfs_export_chooser_button("nfs_host", "nfs_dir");
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "auto") {
	# Using some automounter map
	print "<tr> <td><b>$text{'linux_map'}</b></td>\n";
	print "<td><input name=auto_map size=20 value=\"$_[1]\">\n";
	print &file_chooser_button("auto_map", 0);
	print "</td> <td colspan=2></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	# Using some kernel automounter map
	print "<tr> <td><b>$text{'linux_map'}</b></td>\n";
	print "<td><input name=autofs_map size=20 value=\"$_[1]\">\n";
	print &file_chooser_button("autofs_map", 0);
	print "</td> <td colspan=2></td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swap file or device
	&foreign_require("fdisk", "fdisk-lib.pl");
	printf "<tr> <td valign=top><b>$text{'linux_swapfile'}</b></td>\n";
	print "<td colspan=3>\n";
	local $found;
	local $sel = &foreign_call("fdisk", "partition_select", "lnx_disk",
				   $_[1], 3, \$found);
	printf "<input type=radio name=lnx_dev value=0 %s> %s %s<br>\n",
		$found ? "checked" : "", $text{'linux_disk'}, $sel;
	printf "<input type=radio name=lnx_dev value=1 %s> %s\n",
		$found ? "" : "checked", $text{'linux_swapfile'};
	printf "<input name=lnx_other size=35 value='%s'><br>\n",
		$found ? "" : $_[1];
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "smbfs") {
	# Windows filesystem
	$_[1] =~ /^\\\\(.*)\\(.*)$/;
	print "<tr> <td><b>$text{'linux_smbserver'}</b></td>\n";
	print "<td><input name=smbfs_server value=\"$1\" size=20>\n";
	&smb_server_chooser_button("smbfs_server");
	print "</td>\n";
	print "<td><b>$text{'linux_smbshare'}</b></td>\n";
	print "<td><input name=smbfs_share value=\"$2\" size=20>\n";
	&smb_share_chooser_button("smbfs_server", "smbfs_share");
	print "</td> </tr>\n";
	}
else {
	# This is some linux disk-based filesystem
	&foreign_require("fdisk", "fdisk-lib.pl");
	printf "<tr> <td valign=top><b>%s</b></td>\n", &fstype_name($_[0]);
	print "<td colspan=3>\n";
	local ($found, $rfound, $lfound, $rsel, $c);
	local $sel = &foreign_call("fdisk", "partition_select", "lnx_disk",
				   $_[1], 0, \$found);
	printf "<input type=radio name=lnx_dev value=0 %s> %s %s<br>\n",
		$found ? "checked" : "", $text{'linux_disk'}, $sel;

	if (&foreign_check("raid")) {
		&foreign_require("raid", "raid-lib.pl");
		local $conf = &foreign_call("raid", "get_raidtab");
		foreach $c (@$conf) {
			if ($c->{'active'}) {
				$rsel .= sprintf "<option value=%s %s>%s\n",
					$c->{'value'},
					$_[1] eq $c->{'value'} ? 'selected' : '',
					&text('linux_rdev', substr($c->{'value'}, -1));
				$rfound++ if ($_[1] eq $c->{'value'});
				}
			}
		if ($rsel) {
			printf "<input type=radio name=lnx_dev value=2 %s> %s\n",
				$rfound ? "checked" : " ", $text{'linux_raid'};
			print "<select name=lnx_raid>\n",$rsel,"</select><br>\n";
			}
		}

	if ($has_e2label) {
		local $l = $_[1] =~ /LABEL=(.*)/ ? $1 : undef;
		local $esel = &foreign_call("fdisk", "label_select",
					    "lnx_label", $l, \$lfound);
		if ($esel) {
			printf "<input type=radio name=lnx_dev value=3 %s> %s %s<br>\n", $lfound ? "checked" : "", $text{'linux_lsel'}, $esel;
			}
		}

	printf "<input type=radio name=lnx_dev value=1 %s> %s\n",
		$found || $rfound || $lfound ? "" : "checked", $text{'linux_other'};
	printf "<input name=lnx_other size=35 value='%s'><br>\n",
		$found || $rfound || $lfound ? "" : $_[1];
	print "</td> </tr>\n";
	}
}


# generate_options(type, newmount)
# Output HTML for editing mount options for a particular filesystem 
# under this OS
sub generate_options
{
if ($_[0] ne "swap" && $_[0] ne "auto" &&
    $_[0] ne "autofs" && $_[0] ne "smbfs") {
	# Lots of options are common to all linux filesystems
	print "<tr> <td><b>$text{'linux_ro'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_ro value=1 %s> $text{'yes'}\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=lnx_ro value=0 %s> $text{'no'}</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>$text{'linux_sync'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_sync value=0 %s> $text{'yes'}\n",
		defined($options{"sync"}) ? "" : "checked";
	printf "<input type=radio name=lnx_sync value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"sync"}) ? "checked" : "";

	print "<tr> <td><b>$text{'linux_nodev'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_nodev value=0 %s> $text{'yes'}\n",
		defined($options{"nodev"}) ? "" : "checked";
	printf "<input type=radio name=lnx_nodev value=1 %s> $text{'no'}</td>\n",
		defined($options{"nodev"}) ? "checked" : "";

	print "<td><b>$text{'linux_noexec'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_noexec value=0 %s> $text{'yes'}\n",
		defined($options{"noexec"}) ? "" : "checked";
	printf "<input type=radio name=lnx_noexec value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"noexec"}) ? "checked" : "";

	print "<tr> <td><b>$text{'linux_nosuid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_nosuid value=1 %s> $text{'yes'}\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=lnx_nosuid value=0 %s> $text{'no'}</td>\n",
		defined($options{"nosuid"}) ? "" : "checked";

	print "<td><b>$text{'linux_user'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_user value=1 %s> $text{'yes'}\n",
		defined($options{"user"}) ? "checked" : "";
	printf "<input type=radio name=lnx_user value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"user"}) ? "" : "checked";
	}
	
if ($_[0] eq "ext2") {
	# Ext2 has lots more options..
	print "<tr> <td><b>$text{'linux_check'}</b></td>\n";
	print "<td><select name=ext2_check>\n";
	printf "<option value=normal %s> $text{'linux_normal'}\n",
		$options{"check"} eq "" || $options{"check"} eq "normal" ?
			"selected" : "";
	printf "<option value=strict %s> $text{'linux_strict'}\n",
		$options{"check"} eq "strict" ? "selected" : "";
	printf "<option value=none %s> $text{'linux_none'}\n",
		$options{"check"} eq "none" || defined($options{"nocheck"}) ?
			"selected" : "";
	print "</select></td>\n";

	print "<td><b>$text{'linux_errors'}</b></td>\n";
	print "<td><select name=ext2_errors>\n";
	printf "<option value=default %s> $text{'default'}\n",
		!defined($options{"errors"}) ? "selected" : "";
	printf "<option value=continue %s> $text{'linux_continue'}\n",
		$options{"error"} eq "continue" ? "selected" : "";
	printf "<option value=remount-ro %s> $text{'linux_remount_ro'}\n",
		$options{"error"} eq "remount-ro" ? "selected" : "";
	printf "<option value=panic %s> $text{'linux_panic'}\n",
		$options{"error"} eq "panic" ? "selected" : "";
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_grpid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=ext2_grpid value=0 %s> $text{'yes'}\n",
		defined($options{"grpid"}) || defined($options{"bsdgroups"}) ?
			"" : "checked";
	printf "<input type=radio name=ext2_grpid value=1 %s> $text{'no'}</td>\n",
		defined($options{"grpid"}) || defined($options{"bsdgroups"}) ?
			"checked" : "";

	print "<td><b>$text{'linux_quotas'}</b></td>\n";
	local $usrquota = defined($options{"usrquota"});
	local $grpquota = defined($options{"grpquota"});
	print "<td nowrap><select name=ext2_quota>\n";
	printf "<option value=0 %s> $text{'no'}\n",
		$usrquota || $grpquota ? "" : "selected";
	printf "<option value=1 %s> $text{'linux_usrquota'}\n",
		$usrquota && !$grpquota ? "selected" : "";
	printf "<option value=2 %s> $text{'linux_grpquota'}\n",
		$grpquota && !$usrquota ? "selected" : "";
	if (`uname -r` =~ /^2\.0\.(\d+)/ && $1 < 31) {
		printf "<option value=3 %s> $text{'linux_usrgrpquota2'}\n",
			$usrquota && $grpquota ? "selected" : "";
		}
	else {
		printf "<option value=3 %s> $text{'linux_usrgrpquota'}\n",
			$usrquota && $grpquota ? "selected" : "";
		}
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_resuid'}</b></td>\n";
	printf "<td><input name=ext2_resuid size=8 value=\"%s\">\n",
		defined($options{"resuid"}) ? getpwuid($options{"resuid"}) : "";
	print &user_chooser_button("ext2_resuid", 0),"</td>\n";

	print "<td><b>$text{'linux_resgid'}</b></td>\n";
	printf "<td><input name=ext2_resgid size=8 value=\"%s\">\n",
		defined($options{"resgid"}) ? getgrgid($options{"resgid"}) : "";
	print &group_chooser_button("ext2_resgid", 0),"</td> </tr>\n";
	}
elsif ($_[0] eq "nfs") {
	# Linux nfs has some more options...
	print "<tr> <td><b>$text{'linux_bg'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_bg value=1 %s> $text{'yes'}\n",
		defined($options{"bg"}) ? "checked" : "";
	printf "<input type=radio name=nfs_bg value=0 %s> $text{'no'}</td>\n",
		defined($options{"bg"}) ? "" : "checked";

	print "<td><b>$text{'linux_soft'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_soft value=1 %s> $text{'yes'}\n",
		defined($options{"soft"}) ? "checked" : "";
	printf "<input type=radio name=nfs_soft value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"soft"}) ? "" : "checked";

	print "<tr> <td><b>$text{'linux_timeo'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_timeo_def value=1 %s> $text{'default'}\n",
		defined($options{"timeo"}) ? "" : "checked";
	printf "<input type=radio name=nfs_timeo_def value=0 %s>\n",
		defined($options{"timeo"}) ? "checked" : "";
	printf "<input size=5 name=nfs_timeo value=$options{timeo}></td>\n";

	print "<td><b>$text{'linux_retrans'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_retrans_def value=1 %s> $text{'default'}\n",
		defined($options{"retrans"}) ? "" : "checked";
	printf "<input type=radio name=nfs_retrans_def value=0 %s>\n",
		defined($options{"retrans"}) ? "checked" : "";
	print "<input size=5 name=nfs_retrans value=$options{retrans}></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_vers'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_vers_def value=1 %s> $text{'linux_high'}\n",
		defined($options{"nfsvers"}) ? "" : "checked";
	printf "<input type=radio name=nfs_vers_def value=0 %s>\n",
		defined($options{"nfsvers"}) ? "checked" : "";
	print "<input size=1 name=nfsvers value=$options{nfsvers}></td>\n";

	print "<td><b>$text{'linux_port'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_port_def value=1 %s> $text{'default'}\n",
		defined($options{"port"}) ? "" : "checked";
	printf "<input type=radio name=nfs_port_def value=0 %s>\n",
		defined($options{"port"}) ? "checked" : "";
	print "<input size=5 name=nfs_port value=$options{port}></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_intr'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_intr value=1 %s> $text{'yes'}\n",
		defined($options{"intr"}) ? "checked" : "";
	printf "<input type=radio name=nfs_intr value=0 %s> $text{'no'}</td>\n",
		defined($options{"intr"}) ? "" : "checked";

	print "<td><b>$text{'linux_tcp'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_tcp value=1 %s> TCP\n",
		defined($options{"tcp"}) ? "checked" : "";
	printf "<input type=radio name=nfs_tcp value=0 %s> UDP</td> </tr>\n",
		defined($options{"tcp"}) ? "" : "checked";
	}
elsif ($_[0] eq "fat" || $_[0] eq "vfat" || $_[0] eq "msdos" || $_[0] eq "umsdos"){
	# All dos-based filesystems share some options
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=fat_uid size=8 value=\"%s\">\n",
		defined($options{'uid'}) ? getpwuid($options{'uid'}) : "";
	print &user_chooser_button("fat_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=fat_gid size=8 value=\"%s\">\n",
		defined($options{'gid'}) ? getgrgid($options{'gid'}) : "";
	print &group_chooser_button("fat_gid", 0),"</td> </tr>\n";

	print "<tr> <td><b>$text{'linux_rules'}</b></td>\n";
	print "<td><select name=fat_check>\n";
	printf "<option value=\"\" %s> $text{'default'}\n",
		defined($options{"check"}) ? "" : "selected";
	printf "<option value=r %s> $text{'linux_relaxed'}\n",
		$options{"check"} =~ /^r/ ? "selected" : "";
	printf "<option value=n %s> $text{'linux_normal'}\n",
		$options{"check"} =~ /^n/ ? "selected" : "";
	printf "<option value=s %s> $text{'linux_strict'}\n",
		$options{"check"} =~ /^s/ ? "selected" : "";
	print "</select></td>\n";

	print "<td><b>$text{'linux_conv'}</b></td>\n";
	print "<td><select name=fat_conv>\n";
	printf "<option value=\"\" %s> $text{'linux_none'}\n",
		$options{"conv"} =~ /^b/ || !defined($options{"conv"}) ?
		"selected" : "";
	printf "<option value=t %s> $text{'linux_allfiles'}\n",
		$options{"conv"} =~ /^t/ ? "selected" : "";
	printf "<option value=a %s> $text{'linux_textfiles'}\n",
		$options{"conv"} =~ /^a/ ? "selected" : "";
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_umask'}</b></td>\n";
	printf "<td><input type=radio name=fat_umask_def value=1 %s> $text{'default'}\n",
		defined($options{"umask"}) ? "" : "checked";
	printf "<input type=radio name=fat_umask_def value=0 %s>\n",
		defined($options{"umask"}) ? "checked" : "";
	print "<input size=5 name=fat_umask value=\"$options{umask}\"></td>\n";

	print "<td><b>$text{'linux_quiet'}</b></td>\n";
	printf "<td nowrap><input type=radio name=fat_quiet value=0 %s> $text{'yes'}\n",
		defined($options{"quiet"}) ? "" : "checked";
	printf "<input type=radio name=fat_quiet value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"quiet"}) ? "checked" : "";

	if ($_[0] eq "vfat") {
		# vfat has some extra options beyond fat
		print "<tr> <td><b>$text{'linux_uni_xlate'}</b></td>\n";
		printf "<td><input type=radio name=fat_uni_xlate value=1 %s> $text{'yes'}\n",
			defined($options{"uni_xlate"}) ? "checked" : "";
		printf "<input type=radio name=fat_uni_xlate value=0 %s> $text{'no'}</td>\n",
			defined($options{"uni_xlate"}) ? "" : "checked";

		print "<td><b>$text{'linux_posix'}</b></td>\n";
		printf "<td nowrap><input type=radio name=fat_posix value=1 %s> $text{'yes'}\n",
			defined($options{"posix"}) ? "checked" : "";
		printf "<input type=radio name=fat_posix value=0 %s> $text{'no'}</td> </tr>\n",
			defined($options{"posix"}) ? "" : "checked";
		}
	}
elsif ($_[0] eq "hpfs") {
	# OS/2 filesystems has some more options..
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=hpfs_uid size=8 value=\"%s\">\n",
		defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
	print &user_chooser_button("hpfs_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=hpfs_gid size=8 value=\"%s\">\n",
		defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
	print &group_chooser_button("hpfs_gid", 0),"</td> </tr>\n";

	print "<tr> <td><b>$text{'linux_umask'}</b></td>\n";
	printf"<td><input type=radio name=hpfs_umask_def value=1 %s> Default\n",
		defined($options{"umask"}) ? "" : "checked";
	printf "<input type=radio name=hpfs_umask_def value=0 %s>\n",
		defined($options{"umask"}) ? "checked" : "";
	print "<input size=5 name=hpfs_umask value=\"$options{umask}\"></td>\n";

	print "<td><b>$text{'linux_conv2'}</b></td>\n";
	print "<td><select name=hpfs_conv>\n";
	printf "<option value=b %s> $text{'linux_none'}\n",
		$options{"conv"} =~ /^b/ || !defined($options{"conv"}) ?
		"selected" : "";
	printf "<option value=t %s> $text{'linux_allfiles'}\n",
		$options{"conv"} =~ /^t/ ? "selected" : "";
	printf "<option value=a %s> $text{'linux_textfiles'}\n",
		$options{"conv"} =~ /^a/ ? "selected" : "";
	print "</select></td> </tr>\n";
	}
elsif ($_[0] eq "iso9660") {
	# CD-ROM filesystems have some more options..
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=iso9660_uid size=8 value=\"%s\">\n",
		defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
	print &user_chooser_button("iso9660_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=iso9660_gid size=8 value=\"%s\">\n",
		defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
	print &group_chooser_button("iso9660_gid", 0),"</td>\n";

	print "<tr> <td><b>$text{'linux_rock'}</b></td>\n";
	printf "<td><input type=radio name=iso9660_norock value=1 %s> $text{'yes'}\n",
		defined($options{"norock"}) ? "checked" : "";
	printf "<input type=radio name=iso9660_norock value=0 %s> $text{'no'}</td>\n",
		defined($options{"norock"}) ? "" : "checked";

	print "<td><b>$text{'linux_mode'}</b></td>\n";
	printf"<td><input size=10 name=iso9660_mode value=\"%s\"></td> </tr>\n",
		defined($options{"mode"}) ? $options{"mode"} : "444";
	}
elsif ($_[0] eq "auto") {
	# Don't know how to set options for auto filesystems yet..
	print "<tr> <td><i>$text{'linux_noopts'}</i></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	print "<tr> <td><b>$text{'linux_timeout'}</b></td> <td>\n";
	printf"<input type=radio name=autofs_timeout_def value=1 %s> $text{'default'}\n",
		defined($options{'timeout'}) ? "" : "checked";
	printf "<input type=radio name=autofs_timeout_def value=0 %s>\n",
		defined($options{'timeout'}) ? "checked" : "";
	printf "<input name=autofs_timeout size=5 value=\"%s\"> $text{'linux_secs'}</td>\n",
		$options{'timeout'};

	print "<td><b>$text{'linux_pid_file'}</b>?</td>\n";
	printf"<td><input type=radio name=autofs_pid-file_def value=1 %s> $text{'no'}\n",
		defined($options{'pid-file'}) ? "" : "checked";
	printf "<input type=radio name=autofs_pid-file_def value=0 %s> $text{'yes'}\n",
		defined($options{'pid-file'}) ? "checked" : "";
	printf "<input name=autofs_pid-file size=20 value=\"%s\">\n",
		$options{'pid-file'};
	print &file_chooser_button("autofs_pid-file", 1);
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swap has no options..
	print "<tr> <td><i>$text{'linux_noopts'}</i></td> </tr>\n";
	}
elsif ($_[0] eq "smbfs") {
	# SMB filesystems have a few options..
	if (keys(%options) == 0 && !$_[1]) {
		print "<tr> <td colspan=4><i>$text{'linux_smbwarn'}</i></td> </tr>\n";
		}

	print "<tr> <td><b>$text{'linux_username'}</b></td>\n";
	printf "<td><input name=smbfs_user size=15 value=\"%s\"></td>\n",
		$smbfs_support == 4 ? $options{'username'} : $options{'user'};

	print "<td><b>$text{'linux_password'}</b></td>\n";
	printf "<td><input type=password name=smbfs_passwd size=15 value=\"%s\"></td> </tr>\n",
		$smbfs_support == 4 ? $options{'password'} : $options{'passwd'};

	if ($smbfs_support != 2) {
		print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
		printf "<td><input name=smbfs_uid size=8 value=\"%s\">\n",
			defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
		print &user_chooser_button("smbfs_uid", 0),"</td>\n";

		print "<td><b>$text{'linux_gid'}</b></td>\n";
		printf "<td><input name=smbfs_gid size=8 value=\"%s\">\n",
			defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
		print &group_chooser_button("smbfs_gid", 0),"</td>\n";
		}

	if ($smbfs_support == 1) {
		print "<tr> <td><b>$text{'linux_sname'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_sname_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"servername"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_sname_def value=0 %s>\n",
			defined($options{"servername"}) ? "checked" : "";
		print "<input size=10 name=smbfs_sname value=\"$options{servername}\"></td>\n";
		}
	elsif ($smbfs_support == 2) {
		print "<tr> <td><b>$text{'linux_wg'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_wg_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"workgroup"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_wg_def value=0 %s>\n",
			defined($options{"workgroup"}) ? "checked" : "";
		print "<input size=10 name=smbfs_wg value=\"$options{'workgroup'}\"></td>\n";
		}

	if ($smbfs_support < 3) {
		print "<td><b>$text{'linux_cname'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_cname_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"clientname"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_cname_def value=0 %s>\n",
			defined($options{"clientname"}) ? "checked" : "";
		print "<input size=10 name=smbfs_cname value=\"$options{clientname}\"></td> </tr>\n";

		print "<tr> <td><b>$text{'linux_mname'}</b></td>\n";
		printf "<td colspan=3><input type=radio name=smbfs_mname_def value=1 %s> %s\n",
			defined($options{"machinename"}) ? "" : "checked", $text{'linux_auto'};
		printf "<input type=radio name=smbfs_mname_def value=0 %s>\n",
			defined($options{"machinename"}) ? "checked" : "";
		print "<input size=30 name=smbfs_mname value=\"$options{machinename}\"></td> </tr>\n";
		}

	if ($smbfs_support == 1) {
		print "<tr> <td><b>$text{'linux_fmode'}</b></td>\n";
		printf
		    "<td><input name=smbfs_fmode size=5 value=\"%s\"></td>\n",
		    defined($options{'fmode'}) ? $options{'fmode'} : "755";

		print "<td><b>$text{'linux_dmode'}</b></td>\n";
		printf
		    "<td><input name=smbfs_dmode size=5 value=\"%s\"></td>\n",
		    defined($options{'dmode'}) ? $options{'dmode'} : "755";
		print "</tr>\n";
		}
	elsif ($smbfs_support >= 3) {
		print "<tr> <td><b>$text{'linux_ro'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_ro value=1 %s> $text{'yes'}\n",
			defined($options{"ro"}) ? "checked" : "";
		printf "<input type=radio name=smbfs_ro value=0 %s> $text{'no'}</td>\n",
			defined($options{"ro"}) ? "" : "checked";

		print "<td><b>$text{'linux_user'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_user2 value=1 %s> $text{'yes'}\n",
			defined($options{"user"}) ? "checked" : "";
		printf "<input type=radio name=smbfs_user2 value=0 %s> $text{'no'}</td> </tr>\n",
			defined($options{"user"}) ? "" : "checked";
		}
	}
elsif ($_[0] eq "reiserfs") {
	# Reiserfs is a new super-efficient filesystem
	print "<tr> <td><b>$text{'linux_notail'}</b></td>\n";
	printf "<td><input type=radio name=lnx_notail value=1 %s> $text{'yes'}\n",
		defined($options{"notail"}) ? "checked" : "";
	printf "<input type=radio name=lnx_notail value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"notail"}) ? "" : "checked";
	}
}


# check_location(type)
# Parse and check inputs from %in, calling &error() if something is wrong.
# Returns the location string for storing in the fstab file
sub check_location
{
if ($_[0] eq "nfs") {
	local($out, $temp, $mout, $dirlist);

	if (&has_command("showmount")) {
		# Use ping and showmount to see if the host exists and is up
		if ($in{nfs_host} !~ /^\S+$/) {
			&error(&text('linux_ehost', $in{'nfs_host'}));
			}
		$out = `ping -c 1 '$in{nfs_host}' 2>&1`;
		if ($out =~ /unknown host/) {
			&error(&text('linux_ehost2', $in{'nfs_host'}));
			}
		elsif ($out =~ /100\% packet loss/) {
			&error(&text('linux_edown', $in{'nfs_host'}));
			}
		$out = `showmount -e '$in{nfs_host}' 2>&1`;
		if ($out =~ /Unable to receive/) {
			&error(&text('linux_enfs', $in{'nfs_host'}));
			}
		elsif ($?) {
			&error(&text('linux_elist', $out));
			}

		# Validate directory name
		foreach (split(/\n/, $out)) {
			if (/^(\/\S+)/) { $dirlist .= "$1\n"; }
			}
		if ($in{nfs_dir} !~ /^\/\S+$/) {
			&error(&text('linux_enfsdir', $in{'nfs_dir'},
				     $in{'nfs_host'}, "<pre>$dirlist</pre>"));
			}
		}

	# Try a test mount to see if filesystem is available
	$temp = &tempname();
	mkdir($temp, 0755);
	$mout = `mount $in{nfs_host}:$in{nfs_dir} $temp 2>&1`;
	if ($mout =~ /No such file or directory/i) {
		rmdir($temp);
		&error(&text('linux_enfsdir', $in{'nfs_dir'},
			     $in{'nfs_host'}, "<pre>$dirlist</pre>"));
		}
	elsif ($mout =~ /Permission denied/i) {
		rmdir($temp);
		&error(&text('linux_enfsperm', $in{'nfs_dir'}, $in{'nfs_host'}));
		}
	elsif ($?) {
		rmdir($temp);
		&error(&text('linux_enfsmount', "<tt>$mout</tt>"));
		}
	# It worked! unmount
	`umount $temp`;
	rmdir($temp);

	return "$in{nfs_host}:$in{nfs_dir}";
	}
elsif ($_[0] eq "auto") {
	# Check if the automounter map exists..
	(-r $in{auto_map}) || &error(&text('linux_eautomap', $in{'auto_map'}));
	return $in{auto_map};
	}
elsif ($_[0] eq "autofs") {
	# Check if the map exists (if it is a file)
	if ($in{'autofs_map'} =~ /^\// && !(-r $in{'autofs_map'})) {
		&error(&text('linux_eautomap', $in{'autofs_map'}));
		}
	return $in{autofs_map};
	}
elsif ($_[0] eq "smbfs") {
	# No checking done
	return "\\\\".lc($in{'smbfs_server'})."\\".lc($in{'smbfs_share'});
	}
else {
	# This is some kind of disk-based linux filesystem.. get the device name
	if ($in{'lnx_dev'} == 0) {
		$dv = $in{'lnx_disk'};
		}
	elsif ($in{'lnx_dev'} == 2) {
		$dv = $in{'lnx_raid'};
		}
	elsif ($in{'lnx_dev'} == 3) {
		$dv = "LABEL=".$in{'lnx_label'};
		}
	else {
		$dv = $in{'lnx_other'};
		$dv || &error($text{'linux_edev'});
		}

	# If the device entered is a symlink, follow it
	#if ($dvlink = readlink($dv)) {
	#	if ($dvlink =~ /^\//) { $dv = $dvlink; }
	#	else {	$dv =~ /^(.*\/)[^\/]+$/;
	#		$dv = $1.$dvlink;
	#		}
	#	}

	# Check if the device actually exists and uses the right filesystem
	if (!-r $dv && $dv !~ /LABEL=/) {
		if ($_[0] eq "swap" && $dv !~ /\/dev/) {
			&swap_form($dv);
			}
		else {
			&error(&text('linux_edevfile', $dv));
			}
		}
	return $dv;
	}
}

# check_options(type, device, directory)
# Read options for some filesystem from %in, and use them to update the
# %options array. Options handled by the user interface will be set or
# removed, while unknown options will be left untouched.
sub check_options
{
local($k, @rv);

# Parse the common options first..
if ($_[0] ne "swap" && $_[0] ne "auto" &&
    $_[0] ne "autofs" && $_[0] ne "smbfs") {
	delete($options{"ro"}); delete($options{"rw"});
	if ($in{lnx_ro}) { $options{"ro"} = ""; }

	delete($options{"sync"}); delete($options{"async"});
	if ($in{lnx_sync}) { $options{"sync"} = ""; }

	delete($options{"dev"}); delete($options{"nodev"});
	if ($in{lnx_nodev}) { $options{"nodev"} = ""; }

	delete($options{"exec"}); delete($options{"noexec"});
	if ($in{lnx_noexec}) { $options{"noexec"} = ""; }

	delete($options{"suid"}); delete($options{"nosuid"});
	if ($in{lnx_nosuid}) { $options{"nosuid"} = ""; }

	delete($options{"user"}); delete($options{"nouser"});
	if ($in{lnx_user}) { $options{"user"} = ""; }
	}

if ($_[0] eq "nfs") {
	# NFS has a few specific options..
	delete($options{"bg"}); delete($options{"fg"});
	if ($in{nfs_bg}) { $options{"bg"} = ""; }

	delete($options{"soft"}); delete($options{"hard"});
	if ($in{nfs_soft}) { $options{"soft"} = ""; }

	delete($options{"timeo"});
	if (!$in{nfs_timeo_def}) { $options{"timeo"} = $in{nfs_timeo}; }

	delete($options{"nfsvers"});
	if (!$in{nfs_vers_def}) { $options{"nfsvers"} = $in{nfs_vers}; }

	delete($options{"port"});
	if (!$in{nfs_port_def}) { $options{"port"} = $in{nfs_port}; }

	delete($options{"intr"}); delete($options{"nointr"});
	if ($in{nfs_intr}) { $options{"intr"} = ""; }

	delete($options{"tcp"}); delete($options{"udp"});
	if ($in{nfs_tcp}) { $options{"tcp"} = ""; }
	}
elsif ($_[0] eq "ext2") {
	# More options for ext2..
	delete($options{"check"}); delete($options{"nocheck"});
	if ($in{ext2_check} ne "normal") {
		$options{"check"} = $in{ext2_check};
		}

	delete($options{"errors"});
	if ($in{ext2_errors} ne "default") {
		$options{"errors"} = $in{ext2_errors};
		}

	delete($options{"grpid"}); delete($options{"bsdgroups"});
	delete($options{"sysvgroups"}); delete($options{"nogrpid"});
	if ($in{ext2_grpid}) {
		$options{"grpid"} = "";
		}

	delete($options{"resuid"}); delete($options{"resgid"});
	if ($in{'ext2_resuid'})
		{ $options{"resuid"} = getpwnam($in{'ext2_resuid'}); }
	if ($in{'ext2_resgid'})
		{ $options{"resgid"} = getgrnam($in{'ext2_resgid'}); }

	delete($options{"quota"}); delete($options{"noquota"});
	delete($options{"usrquota"}); delete($options{"grpquota"});
	if ($in{'ext2_quota'} == 1) { $options{'usrquota'} = ""; }
	elsif ($in{'ext2_quota'} == 2) { $options{'grpquota'} = ""; }
	elsif ($in{'ext2_quota'} == 3)
		{ $options{'usrquota'} = $options{'grpquota'} = ""; }
	}
elsif ($_[0] eq "fat" || $_[0] eq "vfat" ||
       $_[0] eq "msdos" || $_[0] eq "umsdos") {
	# All dos-based filesystems have similar options
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{fat_uid} ne "") { $options{"uid"} = getpwnam($in{'fat_uid'}); }
	if ($in{fat_gid} ne "") { $options{"gid"} = getgrnam($in{'fat_gid'}); }

	delete($options{"check"});
	if ($in{fat_check} ne "") { $options{"check"} = $in{fat_check}; }

	delete($options{"conv"});
	if ($in{fat_conv} ne "") { $options{"conv"} = $in{fat_conv}; }

	delete($options{"umask"});
	if (!$in{fat_umask_def}) {
		$in{fat_umask} =~ /^[0-7]{3}$/ ||
			&error(&text('linux_emask', $in{'fat_umask'}));
		$options{"umask"} = $in{fat_umask};
		}

	delete($options{"quiet"});
	if ($in{fat_quiet}) {
		$options{"quiet"} = "";
		}

	if ($_[0] eq "vfat") {
		# Parse extra vfat options..
		delete($options{"uni_xlate"});
		if ($in{fat_uni_xlate}) { $options{"uni_xlate"} = ""; }

		delete($options{"posix"});
		if ($in{fat_posix}) { $options{"posix"} = ""; }
		}
	}
elsif ($_[0] eq "hpfs") {
	# OS/2 filesystem options..
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{hpfs_uid} ne "") { $options{"uid"} = getpwnam($in{hpfs_uid}); }
	if ($in{hpfs_gid} ne "") { $options{"gid"} = getgrnam($in{hpfs_gid}); }

	delete($options{"umask"});
	if (!$in{hpfs_umask_def}) {
		$in{hpfs_umask} =~ /^[0-7]{3}$/ ||
			&error(&text('linux_emask', $in{'hpfs_umask'}));
		$options{"umask"} = $in{hpfs_umask};
		}

	delete($options{"conv"});
	if ($in{hpfs_conv} ne "") { $options{"conv"} = $in{hpfs_conv}; }
	}
elsif ($_[0] eq "iso9660") {
	# Options for iso9660 cd-roms
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{iso9660_uid} ne "")
		{ $options{"uid"} = getpwnam($in{iso9660_uid}); }
	if ($in{iso9660_gid} ne "")
		{ $options{"gid"} = getgrnam($in{iso9660_gid}); }

	delete($options{"norock"});
	if ($in{iso9660_norock}) { $options{"norock"} = ""; }

	delete($options{"mode"});
	$in{iso9660_mode} =~ /^[0-7]{3}$/ ||
		&error(&text('linux_emask', $in{'iso9660_mode'}));
	$options{"mode"} = $in{iso9660_mode};
	}
elsif ($_[0] eq "autofs") {
	# Options for automounter filesystems
	delete($options{'timeout'});
	if (!$in{'autofs_timeout_def'}) {
		$in{'autofs_timeout'} =~ /^\d+$/ ||
			&error(&text('linux_etimeout', $in{'autofs_timeout'}));
		$options{'timeout'} = $in{'autofs_timeout'};
		}
	delete($options{'pid-file'});
	if (!$in{'autofs_pid-file_def'}) {
		$in{'autofs_pid-file'} =~ /^\/\S+$/ ||
		       &error(&text('linux_epidfile', $in{'autofs_pid-file'}));
		$options{'pid-file'} = $in{'autofs_pid-file'};
		}
	}
elsif ($_[0] eq "smbfs") {
	# Options for smb filesystems..
	delete($options{'user'}); delete($options{'username'});
	if ($in{smbfs_user}) {
		$options{$smbfs_support == 4 ? 'username' : 'user'} = $in{smbfs_user};
		}

	delete($options{'passwd'}); delete($options{'password'});
	if ($in{smbfs_passwd}) {
		$options{$smbfs_support == 4 ? 'password' : 'passwd'} = $in{smbfs_passwd};
		}

	if ($smbfs_support != 2) {
		delete($options{uid});
		if ($in{smbfs_uid} ne "") { $options{uid} = getpwnam($in{smbfs_uid}); }

		delete($options{gid});
		if ($in{smbfs_gid} ne "") { $options{gid} = getgrnam($in{smbfs_gid}); }
		}

	if ($smbfs_support == 1) {
		delete($options{servername});
		if (!$in{smbfs_sname_def})
			{ $options{servername} = $in{smbfs_sname}; }
		}
	elsif ($smbfs_support == 2) {
		delete($options{workgroup});
		if (!$in{smbfs_wg_def})
			{ $options{workgroup} = $in{smbfs_wg}; }
		}

	if ($smbfs_support < 3) {
		delete($options{clientname});
		if (!$in{smbfs_cname_def})
			{ $options{clientname} = $in{smbfs_cname}; }

		delete($options{machinename});
		if (!$in{smbfs_mname_def})
			{ $options{machinename} = $in{smbfs_mname}; }
		elsif (!gethostbyname($in{'smbfs_server'})) {
			# No hostname found for the server.. try to guess
			local($out, $sname);
			$sname = $in{'smbfs_server'};
			$out = `$config{'nmblookup_path'} -d 0 $sname 2>&1`;
			if (!$? && $out =~ /^([0-9\.]+)\s+$sname\n/) {
				$options{machinename} = $1;
				}
			}
		}

	if ($smbfs_support == 1) {
		delete($options{fmode});
		if ($in{smbfs_fmode} !~ /^[0-7]{3}$/) {
			&error(&text('linux_efmode', $in{'smbfs_fmode'}));
			}
		elsif ($in{smbfs_fmode} ne "755")
			{ $options{fmode} = $in{smbfs_fmode}; }

		delete($options{dmode});
		if ($in{smbfs_dmode} !~ /^[0-7]{3}$/) {
			&error(&text('linux_edmode', $in{'smbfs_dmode'}));
			}
		elsif ($in{smbfs_dmode} ne "755")
			{ $options{dmode} = $in{smbfs_dmode}; }
		}
	elsif ($smbfs_support >= 3) {
		delete($options{'ro'}); delete($options{'rw'});
		if ($in{'smbfs_ro'}) { $options{'ro'} = ''; }

		delete($options{'user'});
		if ($in{'smbfs_user2'}) { $options{'user'} = ''; }
		}
	}
elsif ($_[0] eq "reiserfs") {
	# Save reiserfs options
	delete($options{'notail'});
	$options{'notail'} = "" if ($in{'lnx_notail'});
	}

# Add loop option if mounting a normal file
if ($_[0] ne "swap" && $_[0] ne "auto" && $_[0] ne "autofs" &&
    $_[0] ne "smbfs" && $_[0] ne "nfs") {
	local(@st);
	@st = stat($_[1]);
	if (@st && ($st[2] & 0xF000) == 0x8000) {
		# a regular file.. add the loop option
		if (!$options{'loop'}) {
			$options{'loop'} = "";
			}
		}
	}

# Return options string
foreach $k (keys %options) {
	if ($options{$k} eq "") { push(@rv, $k); }
	else { push(@rv, "$k=$options{$k}"); }
	}
return @rv ? join(',' , @rv) : "-";
}


# Get the smbfs options from 'smbfs_opts' file in the current directory. This
# is sadly necessary because there is no way to get the current options for
# an existing smbfs mount... so webmin has to save them in a file when
# mounting. Blech.
sub read_smbopts
{
local($_);
open(SMBOPTS, "$module_config_directory/smbfs");
while(<SMBOPTS>) {
	/^(\S+)\s+(\S+)$/;
	$smbopts{$1} = $2;
	}
close(SMBOPTS);
}

sub write_smbopts
{
local($_);
open(SMBOPTS, "> $module_config_directory/smbfs");
foreach (keys %smbopts) {
	print SMBOPTS "$_\t$smbopts{$_}\n";
	}
close(SMBOPTS);
}


# create_swap(file, size, units)
# Calls dd and mkswap to setup a swap file
sub create_swap
{
local($out, $bl);
$bl = $_[1] * ($_[2] eq "m" ? 1024 : 1);
$out = `dd if=/dev/zero of=$_[0] bs=1024 count=$bl 2>&1`;
if ($?) { return "dd failed : $out"; }
$out = `mkswap $_[0] $bl 2>&1`;
if ($?) { return "mkswap failed : $out"; }
system("sync >/dev/null 2>&1");
return 0;
}

# exports_list(host, dirarray, clientarray)
# Fills the directory and client array references with exports from some
# host. Returns an error string if something went wrong
sub exports_list
{
local($dref, $cref, $out, $_);
$dref = $_[1]; $cref = $_[2];
$out = `showmount -e $_[0] 2>&1`;
if ($?) { return $out; }
foreach (split(/\n/, $out)) {
	if (/^(\/\S*)\s+(.*)$/) {
		push(@$dref, $1); push(@$cref, $2);
		}
	}
return undef;
}

# broadcast_addr()
# Returns a useable broadcast address for finding NFS servers
sub broadcast_addr
{
local($out);
$out = `ifconfig -a 2>&1`;
if ($out =~ /(eth|tr)\d\s+.*\n.*Bcast:(\S+)\s+/) { return $2; }
return "255.255.255.255";
}

# autofs_options(string)
# Converts a string of options line --timeout 60 to something like timeout=60
sub autofs_options
{
local(@options);
if ($_[0] =~ /--timeout\s+(\d+)/ || $_[0] =~ /-t\s+(\d+)/) {
	push(@options, "timeout=$1");
	}
if ($_[0] =~ /--pid-file\s+(\S+)/ || $_[0] =~ /-p\s+(\d+)/) {
	push(@options, "pid-file=$1");
	}
return join(',', @options);
}

# autofs_args(string)
# Convert a comma-separated options string into args for automount
sub autofs_args
{
local(%options, $args);
&parse_options("autofs", $_[0]);
if (defined($options{'timeout'})) {
	$args .= " --timeout $options{'timeout'}";
	}
if (defined($options{'pid-file'})) {
	$args .= " --pid-file $options{'pid-file'}";
	}
return $args;
}

# read_amd_conf()
# Returns the entire amd config file as a string
sub read_amd_conf
{
local $sl = $/;
$/ = undef;
open(AMD, $config{'auto_file'});
local $rv = <AMD>;
close(AMD);
$/ = $sl;
return $rv;
}

# write_amd_conf(text)
sub write_amd_conf
{
open(AMD, ">$config{'auto_file'}");
print AMD $_[0];
close(AMD);
}

# parse_amd_conf()
# Parses a new-style amd.conf file into a hashtable
sub parse_amd_conf
{
local (@rv, $str, $lnum);
open(AMD, $config{'auto_file'});
while(<AMD>) {
	s/\r|\n//g;
	s/#.*$//g;
	if (/\[\s*(\S+)\s*\]/) {
		$str = { 'dir' => $1,
			 'line' => $lnum,
			 'eline' => $lnum };
		push(@rv, $str);
		}
	elsif (/(\S+)\s*=\s*"(.*)"/ || /(\S+)\s*=\s*(\S+)/) {
		$str->{'opts'}->{$1} = $2;
		$str->{'eline'} = $lnum;
		}
	$lnum++;
	}
close(AMD);
return @rv;
}

# device_name(device)
# Converts a device name to a human-readable form
sub device_name
{
if (!$text{'select_part'}) {
	local %flang = &load_language('fdisk');
	$text{'select_part'} = $flang{'select_part'};
	$text{'select_mpart'} = $flang{'select_mpart'};
	$text{'select_device'} = $flang{'select_device'};
	$text{'select_fd'} = $flang{'select_fd'};
	}
return $_[0] =~ /^\/dev\/(s|h)d([a-z])(\d+)$/ ?
	&text('select_part', $1 eq 's' ? 'SCSI' : 'IDE', uc($2), "$3") :
       $_[0] =~ /^\/dev\/(s|h)d([a-z])$/ ?
	&text('select_device', $1 eq 's' ? 'SCSI' : 'IDE', uc($2)) :
       $_[0] =~ /rd\/c(\d+)d(\d+)p(\d+)$/ ?
	&text('select_mpart', "$1", "$2", "$3") :
       $_[0] =~ /fd(\d+)$/ ?
	&text('select_fd', "$1") :
       $_[0] =~ /md(\d+)$/ ?
	&text('linux_rdev', "$1") :
       $_[0] =~ /LABEL=(\S+)/i ?
	&text('linux_label', "$1") :
       $_[0] eq '/dev/cdrom' ?
	$text{'linux_cddev'} :
	$_[0];
}

sub files_to_lock
{
return ( $config{'fstab_file'}, $config{'autofs_file'}, $config{'auto_file'} );
}

1;

0707010000774c000081e40000000000000002000000013ac0388c000005cc000000200000000000000000000000000000001b00000003reloc/mount/smb_server.cgi    #!/usr/local/bin/perl
# smb_server.cgi
# Called in a pop-up javascript window to display a list of known SMB
# servers, by calling smbclient to request the browse list from some server

require './mount-lib.pl';
use Socket;
&header();
print <<EOF;
<script>
function choose(f)
{
ifield.value = f;
window.close();
}
</script>
EOF

print "<title>$text{'smb_choose'}</title>\n";

# call smbclient
$host = $config{'browse_server'} ? $config{'browse_server'} : "localhost";
$out = `$config{'smbclient_path'} -d 0 -L $host -N 2>&1`;
if ($?) {
	print "<b>",&text('smb_elist', $host),"</b>\n";
	exit;
	}
elsif ($out =~ /Unknown host/) {
	print "<b>",&text('smb_ehost', $host),"</b>\n";
	exit;
	}
elsif ($out =~ /error connecting|connect error/) {
	print "<b>",&text('smb_edown', $host),"</b>\n";
	exit;
	}

# parse server list
if ($out =~ /Server\s+Comment\n.*\n((.+\n)+)/) {
	@svlist = split(/\n/, $1);
	foreach $sv (@svlist) {
		if ($sv =~ /^\s+(\S+)\s*(.*)$/) {
			push(@names, $1); push(@comms, $2);
			}
		}
	}

if (@names) {
	print "<b>$text{'smb_sel'}</b><br>\n";
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'smb_name'}</b></td> ",
	      "<td><b>$text{'smb_desc'}</b></td> </tr>\n";
	for($i=0; $i<@names; $i++) {
		print "<tr $cb>\n";
		print "<td><a href=\"\" onClick='choose(\"$names[$i]\"); ",
		      "return false'>$names[$i]</a></td>\n";
		print "<td>$comms[$i]</td> </tr>\n";
		}
	print "</table>\n";
	}
else { print "<b>$text{'smb_none'}</b>.<p>\n"; }

0707010000774d000081e40000000000000002000000013ac0388c00000583000000200000000000000000000000000000001a00000003reloc/mount/smb_share.cgi #!/usr/local/bin/perl
# smb_share.cgi
# Displays a list of shares available on some host

require './mount-lib.pl';
&ReadParse();
&header();
print <<EOF;
<script>
function choose(f)
{
ifield.value = f;
window.close();
}
</script>
EOF

print "<title>",&text('smb_choose2', $in{'server'}),"</title>\n";
$out = `$config{'smbclient_path'} -d 0 -L $in{'server'} -N 2>&1`;
if ($?) {
	print "<b>",&text('smb_elist2', $in{'server'}),"</b>\n";
	exit;
	}
elsif ($out =~ /Unknown host/) {
	print "<b>",&text('smb_ehost', $in{'server'}),"</b>\n";
	exit;
	}
elsif ($out =~ /error connecting|connect error/) {
	print "<b>",&text('smb_edown', $in{'server'}),"</b>\n";
	exit;
	}

if ($out =~ /Sharename\s+Type\s+Comment\n((.+\n)+)/) {
	@shlist = split(/\n/, $1);
	foreach $sh (@shlist) {
		if ($sh =~ /^\s+(.{1,7}\S+)\s+Disk\s*(.*)$/) {
			push(@names, $1); push(@comms, $2);
			}
		}
	}
if (@names) {
	print "<b>$text{'smb_sel2'}</b><br>\n";
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'smb_share'}</b></td> ",
	      "<td><b>$text{'smb_comment'}</b></td> </tr>\n";
	for($i=0; $i<@names; $i++) {
		print "<tr $cb> <td><a href=\"\" ",
		      "onClick='choose(\"$names[$i]\"); ".
		      "return false'>$names[$i]</a></td>\n";
		printf "<td>%s</td> </tr>\n",
			$comms[$i] =~ /\S/ ? $comms[$i] : "<br>";
		}
	print "</table>\n";
	}
else {
	print "<b>",&text('smb_noshares', $in{'server'}),"</b>\n";
	}

 0707010000774e000081a40000000000000002000000013ac0388c0000e06b000000200000000000000000000000000000001b00000003reloc/mount/solaris-lib.pl    # solaris-lib.pl
# Filesystem functions for Solaris (works for me on 2.5)

$smbmount = &has_command("rumba") ? "rumba" :
	    &has_command("shlight") ? "shlight" : undef;

# Return information about a filesystem, in the form:
#  directory, device, type, options, fsck_order, mount_at_boot
# If a field is unused or ignored, a - appears instead of the value.
# Swap-filesystems (devices or files mounted for VM) have a type of 'swap',
# and 'swap' in the directory field
sub list_mounts
{
return @list_mounts_cache if (@list_mounts_cache);
local(@rv, @p, $_, $i); $i = 0;

# List normal filesystem mounts
open(FSTAB, $config{fstab_file});
while(<FSTAB>) {
	chop; s/#.*$//g;
	if (!/\S/) { next; }
	@p = split(/\s+/, $_);
	if ($p[3] eq "swap") { $p[2] = "swap"; }
	$rv[$i++] = [ $p[2], $p[0], $p[3], $p[6], $p[4], $p[5] ];
	}
close(FSTAB);

# List automount points
open(AUTOTAB, $config{autofs_file});
while(<AUTOTAB>) {
	chop; s/#.*$//g;
	if (!/\S/ || /^[+\-]/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "") { $p[2] = "-"; }
	else { $p[2] =~ s/^-//g; }
	$rv[$i++] = [ $p[0], $p[1], "autofs", $p[2], "-", "yes" ];
	}
close(AUTOTAB);

@list_mounts_cache = @rv;
return @rv;
}


# create_mount(directory, device, type, options, fsck_order, mount_at_boot)
# Add a new entry to the fstab file, and return the index of the new entry
sub create_mount
{
local($len, @mlist, $fcsk, $dir);
if ($_[2] eq "autofs") {
	# An autofs mount.. add to /etc/auto_master
	$len = grep { $_->[2] eq "autofs" } (&list_mounts());
	open(AUTOTAB, ">> $config{autofs_file}");
	print AUTOTAB "$_[0] $_[1]",($_[3] eq "-" ? "" : " -$_[3]"),"\n";
	close(AUTOTAB);
	}
else {
	# Add to the fstab file
	$len = grep { $_->[2] ne "autofs" } (&list_mounts());
	open(FSTAB, ">> $config{fstab_file}");
	if ($_[2] eq "ufs" || $_[2] eq "s5fs") {
		($fsck = $_[1]) =~ s/\/dsk\//\/rdsk\//g;
		}
	else { $fsck = "-"; }
	if ($_[2] eq "swap") { $dir = "-"; }
	else { $dir = $_[0]; }
	print FSTAB "$_[1]  $fsck  $dir  $_[2]  $_[4]  $_[5]  $_[3]\n";
	close(FSTAB);
	}
undef(@list_mounts_cache);
return $len;
}


# delete_mount(index)
# Delete some mount from the table
sub delete_mount
{
local(@fstab, $i, $line, $_);
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
$i = 0;

open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $i++ == $_[0]) {
		# found the line not to include
		}
	else { print FSTAB $_,"\n"; }
	}
close(FSTAB);

open(AUTOTAB, $config{autofs_file});
@autotab = <AUTOTAB>;
close(AUTOTAB);
open(AUTOTAB, "> $config{autofs_file}");
foreach (@autotab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $line !~ /^[+\-]/ && $i++ == $_[0]) {
		# found line not to include..
		}
	else { print AUTOTAB $_,"\n"; }
	}
close(AUTOTAB);
undef(@list_mounts_cache);
}


# change_mount(num, directory, device, type, options, fsck_order, mount_at_boot)
# Change an existing permanent mount
sub change_mount
{
local(@fstab, @autotab, $i, $line, $fsck, $dir, $_);
$i = 0;

open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $i++ == $_[0]) {
		# Found the line to replace
		if ($_[3] eq "ufs" || $_[3] eq "s5fs") {
			($fsck = $_[2]) =~ s/\/dsk\//\/rdsk\//g;
			}
		else { $fsck = "-"; }
		if ($_[3] eq "swap") { $dir = "-"; }
		else { $dir = $_[1]; }
		print FSTAB "$_[2]  $fsck  $dir  $_[3]  $_[5]  $_[6]  $_[4]\n";
		}
	else { print FSTAB $_,"\n"; }
	}
close(FSTAB);

open(AUTOTAB, $config{autofs_file});
@autotab = <AUTOTAB>;
close(AUTOTAB);
open(AUTOTAB, "> $config{autofs_file}");
foreach (@autotab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $line !~ /^[+\-]/ && $i++ == $_[0]) {
		# Found the line to replace
		print AUTOTAB "$_[1]  $_[2]  ",
				($_[4] eq "-" ? "" : "-$_[4]"),"\n";
		}
	else { print AUTOTAB $_,"\n"; }
	}
close(AUTOTAB);
undef(@list_mounts_cache);
}


# list_mounted()
# Return a list of all the currently mounted filesystems and swap files.
# The list is in the form:
#  directory device type options
# For swap files, the directory will be 'swap'
sub list_mounted
{
return @list_mounted_cache if (@list_mounted_cache);
local(@rv, @p, $_, $i, $r);
foreach (split(/\n/, `swap -l`)) {
	if (/^(\/\S+)\s+/) { push(@rv, [ "swap", $1, "swap", "-" ]); }
	}
foreach (split(/\n/, `cat /etc/mnttab`)) {
	s/#.*$//g; if (!/\S/) { next; }
	@p = split(/\s+/, $_);
	if ($p[0] =~ /:vold/) { next; }
	if ($p[0] =~ /^(rumba|shlight)-(\d+)$/) {
		# rumba smb mount
		local($args, $ps); $p[3] = "pid=$2";
		$ps = (-x "/usr/ucb/ps") ? "/usr/ucb/ps auwwwwx $2"
				 	 : "ps -o args -f $2";
		`$ps` =~ /(rumba|shlight)\s+\/\/([^\/]+)\/(.*\S)\s+(\/\S+)(.*)/ || next;
		$serv = $2; $shar = $3; $p[2] = "rumba"; $args = $5;
		if ($args =~ /\s+-s\s+(\S+)/ && $1 ne $serv) {
			$p[0] = "\\\\$1\\$shar";
			$p[3] .= ",machinename=$serv";
			}
		else { $p[0] = "\\\\$serv\\$shar"; }
		if ($args =~ /\s+-c\s+(\S+)/) { $p[3] .= ",clientname=$1"; }
		if ($args =~ /\s+-U\s+(\S+)/) { $p[3] .= ",username=$1"; }
		if ($args =~ /\s+-u\s+(\S+)/) { $p[3] .= ",uid=$1"; }
		if ($args =~ /\s+-g\s+(\S+)/) { $p[3] .= ",gid=$1"; }
		if ($args =~ /\s+-f\s+(\S+)/) { $p[3] .= ",fmode=$1"; }
		if ($args =~ /\s+-d\s+(\S+)/) { $p[3] .= ",dmode=$1"; }
		if ($args =~ /\s+-C/) { $p[3] .= ",noupper"; }
		if ($args =~ /\s+-P\s+(\S+)/) { $p[3] .= ",password=$1"; }
		if ($args =~ /\s+-S/) { $p[3] .= ",readwrite"; }
		if ($args =~ /\s+-w/) { $p[3] .= ",readonly"; }
		if ($args =~ /\s+-e/) { $p[3] .= ",attr"; }
		}
	else { $p[3] = join(',' , (grep {!/^dev=/} split(/,/ , $p[3]))); }
	push(@rv, [ $p[1], $p[0], $p[2], $p[3] ]);
	}
foreach $r (@rv) {
	if ($r->[2] eq "cachefs" && $r->[1] =~ /\.cfs_mnt_points/) {
		# Oh no.. a caching filesystem mount. Fiddle things so that
		# it looks right.
		for($i=0; $i<@rv; $i++) {
			if ($rv[$i]->[0] eq $r->[1]) {
				# Found the automatically mounted entry. lose it
				$r->[1] = $rv[$i]->[1];
				splice(@rv, $i, 1);
				last;
				}
			}
		}
	}
@list_mounted_cache = @rv;
return @rv;
}


# mount_dir(directory, device, type, options)
# Mount a new directory from some device, with some options. Returns 0 if ok,
# or an error string if failed. If the directory is 'swap', then mount as
# virtual memory.
sub mount_dir
{
local($out, $opts);
if ($_[0] eq "swap") {
	# Adding a swap device
	$out = &backquote_logged("swap -a $_[1] 2>&1");
	if ($?) { return $out; }
	}
else {
	# Mounting a directory
	if ($_[2] eq "cachefs") {
		# Mounting a caching filesystem.. need to create cache first
		local(%options);
		&parse_options("cachefs", $_[3]);
		if (!(-r "$options{cachedir}/.cfs_resource")) {
			# The cache directory does not exist.. set it up
			if (-d $options{cachedir} &&
			    !rmdir($options{"cachedir"})) {
				return &text('solaris_ecacheexists',
					     $options{'cachedir'});
				}
			$out = &backquote_logged("cfsadmin -c $options{cachedir} 2>&1");
			if ($?) { return $out; }
			}
		}
	if ($_[2] eq "rumba") {
		# call 'rumba' to mount
		local(%options, $shortname, $shar, $opts, $rv);
		&parse_options("rumba", $_[3]);
		$shortname = &get_system_hostname();
		if ($shortname =~ /^([^\.]+)\.(.+)$/) { $shortname = $1; }
		$_[1] =~ /^\\\\(.+)\\(.+)$/;
		$shar = "//".($options{machinename} ?$options{machinename} :$1).
			"/$2";
		$opts = ("-s $1 ").
		 (defined($options{'clientname'}) ?
			"-c $options{'clientname'} " : "-c $shortname ").
		 (defined($options{'username'}) ?
			"-U $options{'username'} " : "").
		 (defined($options{'uid'}) ? "-u $options{'uid'} " : "").
		 (defined($options{'gid'}) ? "-g $options{'gid'} " : "").
		 (defined($options{'fmode'}) ? "-f $options{'fmode'} " : "").
		 (defined($options{'dmode'}) ? "-d $options{'dmode'} " : "").
		 (defined($options{'noupper'}) ? "-C " : "").
		 (defined($options{'password'}) ?
			"-P $options{'password'} " : "-n ").
		 (defined($options{'readwrite'}) ? "-S " : "").
		 (defined($options{'readonly'}) ? "-w " : "").
		 (defined($options{'attr'}) ? "-e " : "");
		local $rtemp = &tempname();
		$rv = system("rumba \"$shar\" $_[0] $opts >$rtemp 2>&1 </dev/null");
		$out = `cat $rtemp`; unlink($rtemp);
		if ($rv) { return "<pre>$out</pre> : rumba \"$shar\" $_[0] $opts"; }
		}
	else {
		$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
		$out = &backquote_logged("mount -F $_[2] $opts -- $_[1] $_[0] 2>&1");
		if ($?) { return $out; }
		}
	}
undef(@list_mounted_cache);
return 0;
}


# unmount_dir(directory, device, type)
# Unmount a directory (or swap device) that is currently mounted. Returns 0 if
# ok, or an error string if failed
sub unmount_dir
{
if ($_[0] eq "swap") {
	$out = &backquote_logged("swap -d $_[1] 2>&1");
	}
elsif ($_[2] eq "rumba") {
	# kill the process (if nobody is in the directory)
	$dir = $_[0];
	if (`fuser -c $_[0] 2>/dev/null` =~ /\d/)
		{ return &text('solaris_ebusy', $_[0]); }
	if (`cat /etc/mnttab` =~ /(rumba|shlight)-(\d+)\s+$dir\s+nfs/) {
		&kill_logged('TERM', $2) || return $text{'solaris_ekill'};
		}
	else { return $text{'solaris_epid'}; }
	sleep(1);
	}
else {
	$out = &backquote_logged("umount $_[0] 2>&1");
	}
undef(@list_mounted_cache);
if ($?) { return $out; }
return 0;
}


# disk_space(type, directory)
# Returns the amount of total and free space for some filesystem, or an
# empty array if not appropriate.
sub disk_space
{
if (&get_mounted($_[1], "*") < 0) { return (); }
if ($_[0] eq "fd" || $_[0] eq "proc" || $_[0] eq "swap" || $_[0] eq "autofs") {
	return ();
	}
`df -k $_[1]` =~ /Mounted on\n\S+\s+(\S+)\s+\S+\s+(\S+)/;
return ($1, $2);
}


# list_fstypes()
# Returns an array of all the supported filesystem types. If a filesystem is
# found that is not one of the supported types, generate_location() and
# generate_options() will not be called for it.
sub list_fstypes
{
local @fs = ("ufs", "nfs", "hsfs", "pcfs", "lofs", "cachefs",
	     "swap", "tmpfs", "autofs");
push(@fs, $smbmount) if ($smbmount);
push(@fs, "udfs", "xmemfs") if ($gconfig{'os_version'} >= 8);
return @fs;
}


# fstype_name(type)
# Given a short filesystem type, return a human-readable name for it
sub fstype_name
{
local(%fsmap);
%fsmap = ("ufs","Solaris Unix Filesystem",
	  "nfs","Network Filesystem",
	  "hsfs","ISO9660 CD-ROM",
	  "pcfs","MS-DOS Filesystem",
	  "lofs","Loopback Filesystem",
	  "cachefs","Caching Filesystem",
	  "swap","Virtual Memory",
	  "tmpfs","Ram Disk",
	  "xmemfs","Large Ram Disk",
	  "autofs","Automounter Filesystem",
	  "proc","Process Image Filesystem",
	  "fd","File Descriptor Filesystem",
	  "mntfs","Filesystems List",
	  "udfs","DVD Filesystem",
	  "rumba","Windows Networking Filesystem");
return $config{long_fstypes} && $fsmap{$_[0]} ? $fsmap{$_[0]} : uc($_[0]);
}


# mount_modes(type)
# Given a filesystem type, returns 4 numbers that determine how the file
# system can be mounted, and whether it can be fsck'd
sub mount_modes
{
if ($_[0] eq "ufs" || $_[0] eq "cachefs" || $_[0] eq "s5fs") {
	return (2, 1, 1, 0);
	}
elsif ($_[0] eq "rumba") { return (0, 1, 0, 0); }
else { return (2, 1, 0, 0); }
}


# multiple_mount(type)
# Returns 1 if filesystems of this type can be mounted multiple times, 0 if not
sub multiple_mount
{
return ($_[0] eq "nfs" || $_[0] eq "tmpfs" || $_[0] eq "cachefs" ||
        $_[0] eq "autofs" || $_[0] eq "lofs" || $_[0] eq "rumba" || $_[0] eq "xmemfs");
}


# generate_location(type, location)
# Output HTML for editing the mount location of some filesystem.
sub generate_location
{
if ($_[0] eq "nfs") {
	# NFS mount from some host and directory
	if ($_[1] =~ /^nfs:/) { $nfsmode = 2; }
	elsif (!$_[1] || $_[1] =~ /^([A-z0-9\-\.]+):([^,]+)$/) {
		$nfsmode = 0; $nfshost = $1; $nfspath = $2;
		}
	else { $nfsmode = 1; }
	if ($gconfig{'os_version'} >= 2.6) {
		# Solaris 2.6 can list multiple NFS servers in mount
		print "<tr> <td><b>$text{'solaris_nsource'}</b></td>\n";
		printf "<td><input type=radio name=nfs_serv value=0 %s>\n",
			$nfsmode == 0 ? "checked" : "";
		print "<b>$text{'solaris_nhost'}</b></td>\n";
		print "<td><input name=nfs_host size=20 value=\"$nfshost\">\n";
		&nfs_server_chooser_button("nfs_host");
		print "&nbsp;<b>$text{'solaris_ndir'}</b>\n";
		print "<input name=nfs_dir size=20 value=\"$nfspath\">\n";
		&nfs_export_chooser_button("nfs_host", "nfs_dir");
		print "</td> </tr>\n";

		print "<tr> <td></td>\n";
		printf "<td><input type=radio name=nfs_serv value=1 %s>\n",
			$nfsmode == 1 ? "checked" : "";
		print "<b>$text{'solaris_nmult'}</b></td>\n";
		printf "<td><input name=nfs_list size=40 value=\"%s\">\n",
			$nfsmode == 1 ? $_[1] : "";
		print "</td> </tr>\n";

		if ($gconfig{'os_version'} >= 7) {
			print "<tr> <td></td> <td>\n";
			printf "<input type=radio name=nfs_serv value=2 %s>\n",
				$nfsmode == 2 ? "checked" : "";
			print "<b>$text{'solaris_webnfs'}</b></td> <td>\n";
			printf "<input name=nfs_url size=40 value=\"%s\">\n",
				$nfsmode == 2 ? $_[1] : "";
			print "</td> </tr>\n";
			}
		}
	else {
		print "<tr> <td><b>$text{'solaris_nhost'}</b></td>\n";
		print "<td><input name=nfs_host size=20 value=\"$nfshost\">\n";
		&nfs_server_chooser_button("nfs_host");
		print "</td>\n";
		print "<td><b>$text{'solaris_ndir'}</b></td>\n";
		print "<td><input name=nfs_dir size=20 value=\"$nfspath\">\n";
		&nfs_export_chooser_button("nfs_host", "nfs_dir");
		print "</td> </tr>\n";
		}
	}
elsif ($_[0] eq "tmpfs" || $_[0] eq "xmemfs") {
	# Location is irrelevant for tmpfs and xmemfs filesystems
	}
elsif ($_[0] eq "ufs") {
	# Mounted from a normal disk, raid (MD) device or from
	# somewhere else
	print "<tr> <td valign=top><b>$text{'solaris_ufs'}</b></td>\n";
	print "<td colspan=3>\n";
	&foreign_require("format", "format-lib.pl");

	if ($_[1] =~ /^\/dev\/dsk\/c([0-9]+)t([0-9]+)d([0-9]+)s([0-9]+)$/ ||
	    $_[1] =~ /^\/dev\/dsk\/c([0-9]+)d([0-9]+)s([0-9]+)$/) {
		$ufs_dev = 0;
		}
	elsif ($_[1] eq "") {
		$ufs_dev = 0;
		}
	elsif ($_[1] =~ /^\/dev\/md\/dsk\/d([0-9]+)$/) {
		$ufs_dev = 1;
		}
	else {
		$ufs_dev = 2;
		}

	local $found;
	local $sel = &foreign_call("format", "partition_select",
				   "ufs_disk", $_[1], 0,
				   $ufs_dev ? \$found : undef);
	printf "<input type=radio name=ufs_dev value=0 %s> %s : %s<br>\n",
		$ufs_dev == 0 ? "checked" : "", $text{'solaris_scsi'}, $sel;

	printf "<input type=radio name=ufs_dev value=1 %s> %s :\n",
		$ufs_dev == 1 ? "checked" : "",
		$text{'solaris_raid'};
	printf "%s <input name=ufs_md size=3 value=\"%s\"><br>\n",
		$text{'solaris_unit'},
		 $_[1] =~ /^\/dev\/md\/dsk\/d([0-9]+)$/ ? $1 : "";

	printf "<input type=radio name=ufs_dev value=2 %s> %s :\n",
		$ufs_dev == 2 ? "checked" : "", $text{'solaris_otherdev'};
	printf "<input name=ufs_path size=20 value=\"%s\"><br>\n",
		$ufs_dev == 2 ? $_[1] : "";
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swapping to a disk partition or a file
	print "<tr> <td valign=top><b>$text{'solaris_swapfile'}</b></td>\n";
	print "<td colspan=3>\n";
	&foreign_require("format", "format-lib.pl");

	if ($_[1] =~ /^\/dev\/dsk\/c([0-9]+)t([0-9]+)d([0-9]+)s([0-9]+)$/ ||
	    $_[1] =~ /^\/dev\/dsk\/c([0-9]+)d([0-9]+)s([0-9]+)$/) {
		$swap_dev = 0;
		}
	elsif ($_[1] eq "") {
		$swap_dev = 0;
		}
	else {
		$swap_dev = 1;
		}

	local $found;
	local $sel = &foreign_call("format", "partition_select",
				   "swap_disk", $_[1], 0,
				   $swap_dev ? \$found : undef);
	printf "<input type=radio name=swap_dev value=0 %s> %s : %s<br>\n",
		$swap_dev == 0 ? "checked" : "", $text{'solaris_scsi'}, $sel;

	printf "<input type=radio name=swap_dev value=1 %s> %s :\n",
		$swap_dev == 1 ? "checked" : "", $text{'solaris_file'};
	printf "<input name=swap_path size=20 value=\"%s\"><br>\n",
		$swap_dev == 1 ? $_[1] : "";
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "hsfs" || $_[0] eq "udfs") {
	# Mounting a SCSI cdrom or DVD
	if ($_[0] eq "hsfs") {
		print "<tr> <td valign=top><b>$text{'solaris_cdrom'}</b></td>\n";
		}
	else {
		print "<tr> <td valign=top><b>$text{'solaris_dvd'}</b></td>\n";
		}
	print "<td colspan=3>\n";
	if ($_[1] =~ /^\/dev\/dsk\/c([0-9]+)t([0-9]+)d([0-9]+)s([0-9]+)$/) {
		$hsfs_dev = 0;
		$scsi_c = $1; $scsi_t = $2; $scsi_d = $3; $scsi_s = $4;
		}
	elsif ($_[1] eq "") {
		$hsfs_dev = 0;
		$scsi_c = 0; $scsi_t = 6; $scsi_d = 0; $scsi_s = 0;
		}
	else {
		$hsfs_dev = 2; $scsi_path = $_[1];
		}
	printf "<input type=radio name=ufs_dev value=0 %s> $text{'solaris_scsi'}:\n",
		$hsfs_dev == 0 ? "checked" : "";
	print "$text{'solaris_ctrlr'} <input name=ufs_c size=3 value=\"$scsi_c\">\n";
	print "$text{'solaris_target'} <input name=ufs_t size=3 value=\"$scsi_t\">\n";
	print "$text{'solaris_unit'} <input name=ufs_d size=3 value=\"$scsi_d\">\n";
	print "$text{'solaris_part'} <input name=ufs_s size=3 value=\"$scsi_s\"><br>\n";

	printf "<input type=radio name=ufs_dev value=2 %s> $text{'solaris_otherdev'}:\n",
		$hsfs_dev == 2 ? "checked" : "";
	print "<input name=ufs_path size=20 value=\"$scsi_path\"><br>\n";
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "pcfs") {
	# Mounting a SCSI msdos filesystem
	print "<tr> <td valign=top><b>$text{'solaris_msdos'}</b></td>\n";
	print "<td colspan=3>\n";
	&foreign_require("format", "format-lib.pl");

	if ($_[1] =~ /^\/dev\/dsk\/c([0-9]+)t([0-9]+)d([0-9]+)s([0-9]+)$/ ||
	    $_[1] =~ /^\/dev\/dsk\/c([0-9]+)d([0-9]+)s([0-9]+)$/) {
		$pcfs_dev = 0;
		}
	elsif ($_[1] eq "") {
		$pcfs_dev = 0;
		}
	else {
		$pcfs_dev = 2;
		}

	local $found;
	local $sel = &foreign_call("format", "partition_select",
				   "ufs_disk", $_[1], 0,
				   $pcfs_dev ? \$found : undef);
	printf "<input type=radio name=ufs_dev value=0 %s> %s : %s<br>\n",
		$pcfs_dev == 0 ? "checked" : "", $text{'solaris_scsi'}, $sel;

	printf "<input type=radio name=ufs_dev value=2 %s> %s :\n",
		$pcfs_dev == 2 ? "checked" : "", $text{'solaris_file'};
	printf "<input name=ufs_path size=20 value=\"%s\"><br>\n",
		$pcfs_dev == 2 ? $_[1] : "";
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "lofs") {
	# Mounting some directory to another location
	print "<tr> <td><b>$text{'solaris_orig'}</b></td>\n";
	print "<td><input name=lofs_src size=30 value=\"$_[1]\">\n";
	print &file_chooser_button("lofs_src", 1);
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "cachefs") {
	# Mounting a cached filesystem of some type.. need a location for
	# the source of the mount
	print "<tr> <td><b>$text{'solaris_cache'}</b></td>\n";
	print "<td><input name=cfs_src size=20 value=\"$_[1]\"></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	# An automounter entry.. can be -hosts, -xfn or from some mapping
	print "<tr> <td valign=top><b>$text{'solaris_automap'}</b></td>\n";
	printf "<td><input type=radio name=autofs_type value=0 %s>\n",
		$_[1] eq "-hosts" || $_[1] eq "-xfn" ? "" : "checked";
	printf "Use map <input name=autofs_map size=20 value=\"%s\"><br>\n",
		$_[1] eq "-hosts" || $_[1] eq "-xfn" ? "" : $_[1];
	printf "<input type=radio name=autofs_type value=1 %s>\n",
		$_[1] eq "-hosts" ? "checked" : "";
	print "$text{'solaris_autohosts'}<br>\n";
	printf "<input type=radio name=autofs_type value=2 %s>\n",
		$_[1] eq "-xfn" ? "checked" : "";
	print "$text{'solaris_autoxfn'}</td> </tr>\n";
	}
elsif ($_[0] eq "rumba") {
	# Windows filesystem
	$_[1] =~ /^\\\\(.*)\\(.*)$/;
	print "<tr> <td><b>$text{'solaris_server'}</b></td>\n";
	print "<td><input name=rumba_server value=\"$1\" size=20>\n";
	&smb_server_chooser_button("rumba_server");
	print "</td>\n";
	print "<td><b>$text{'solaris_share'}</b></td>\n";
	print "<td><input name=rumba_share value=\"$2\" size=20>\n";
	&smb_share_chooser_button("rumba_server", "rumba_share");
	print "</td> </tr>\n";
	}
}


# generate_options(type, newmount)
# Output HTML for editing mount options for a partilcar filesystem 
# under this OS
sub generate_options
{
if ($_[0] eq "nfs") {
	# Solaris NFS has many options, not all of which are editable here
	print "<tr> <td><b>$text{'solaris_ro'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_ro value=1 %s> $text{'yes'}\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=nfs_ro value=0 %s> $text{'no'}</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>$text{'solaris_nosuid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_nosuid value=1 %s> $text{'yes'}\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=nfs_nosuid value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"nosuid"}) ? "" : "checked";

	print "<tr> <td><b>$text{'solaris_grpid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_grpid value=0 %s> $text{'yes'}\n",
		defined($options{"grpid"}) ? "" : "checked";
	printf "<input type=radio name=nfs_grpid value=1 %s> $text{'no'}</td>\n",
		defined($options{"grpid"}) ? "checked" : "";

	print "<td><b>$text{'solaris_soft'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_soft value=1 %s> $text{'yes'}\n",
		defined($options{"soft"}) ? "checked" : "";
	printf "<input type=radio name=nfs_soft value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"soft"}) ? "" : "checked";

	print "<tr> <td><b>$text{'solaris_bg'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_bg value=1 %s> $text{'yes'}\n",
		defined($options{"bg"}) ? "checked" : "";
	printf "<input type=radio name=nfs_bg value=0 %s> $text{'no'}</td>\n",
		defined($options{"bg"}) ? "" : "checked";

	print "<td><b>$text{'solaris_quota'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_quota value=1 %s> $text{'yes'}\n",
		defined($options{"quota"}) ? "checked" : "";
	printf "<input type=radio name=nfs_quota value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"quota"}) ? "" : "checked";

	print "<tr> <td><b>$text{'solaris_nointr'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_nointr value=0 %s> $text{'yes'}\n",
		defined($options{"nointr"}) ? "" : "checked";
	printf "<input type=radio name=nfs_nointr value=1 %s> $text{'no'}</td>\n",
		defined($options{"nointr"}) ? "checked" : "";

	print "<td><b>$text{'solaris_nfsver'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_vers_def value=1 %s> $text{'solaris_highest'}\n",
		defined($options{"vers"}) ? "" : "checked";
	printf "<input type=radio name=nfs_vers_def value=0 %s>\n",
		defined($options{"vers"}) ? "checked" : "";
	print "<input size=1 name=nfs_vers value=$options{vers}></td> </tr>\n";

	print "<tr> <td><b>$text{'solaris_proto'}</b></td>\n";
	print "<td nowrap><select name=proto>\n";
	printf "<option value=\"\" %s> $text{'default'}\n",
		defined($options{"proto"}) ? "" : "selected";
	foreach (split(/\n/, `cat /etc/netconfig`)) {
		if (!/^([A-z0-9\_\-]+)\s/) { next; }
		printf "<option value=\"$1\" %s> $1\n",
			$options{"proto"} eq $1 ? "selected" : "";
		}
	print "</select></td>\n";

	print "<td><b>$text{'solaris_port'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_port_def value=1 %s> $text{'default'}\n",
		defined($options{"port"}) ? "" : "checked";
	printf "<input type=radio name=nfs_port_def value=0 %s>\n",
		defined($options{"port"}) ? "checked" : "";
	print "<input size=5 name=nfs_port value=$options{port}></td> </tr>\n";

	print "<tr> <td><b>$text{'solaris_timeo'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_timeo_def value=1 %s> $text{'default'}\n",
		defined($options{"timeo"}) ? "" : "checked";
	printf "<input type=radio name=nfs_timeo_def value=0 %s>\n",
		defined($options{"timeo"}) ? "checked" : "";
	printf "<input size=5 name=nfs_timeo value=$options{timeo}></td>\n";

	print "<td><b>$text{'solaris_retrans'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_retrans_def value=1 %s> $text{'default'}\n",
		defined($options{"retrans"}) ? "" : "checked";
	printf "<input type=radio name=nfs_retrans_def value=0 %s>\n",
		defined($options{"retrans"}) ? "checked" : "";
	print "<input size=5 name=nfs_retrans value=$options{retrans}></td> </tr>\n";

	print "<tr> <td><b>$text{'solaris_auth'}</b></td>\n";
	$nfs_auth = $options{'sec'} ? $options{'sec'} :
		    defined($options{"secure"}) ? "dh" :
		    defined($options{"kerberos"}) ? "krb" : "";
	print "<td><select name=nfs_auth>\n";
	printf "<option value=\"\" %s> $text{'solaris_none'}\n",
		$nfs_auth eq "" ? "selected" : "";
	printf "<option value=dh %s> $text{'solaris_des'}\n",
		$nfs_auth eq "dh" ? "selected" : "";
	printf "<option value=krb %s> $text{'solaris_krb'}\n",
		$nfs_auth eq "krb" ? "selected" : "";
	print "</select></td>\n";

	if ($gconfig{'os_version'} >= 7) {
		print "<td><b>$text{'solaris_public'}</b></td> <td>\n";
		printf "<input type=radio name=nfs_public value=1 %s> $text{'yes'}\n",
			defined($options{'public'}) ? "checked" : "";
		printf "<input type=radio name=nfs_public value=0 %s> $text{'no'}\n",
			defined($options{'public'}) ? "" : "checked";
		print "</td>\n";
		}
	print "</tr>\n";
	}
if ($_[0] eq "ufs") {
	# Solaris UFS also has many options, not all of which are here
	print "<tr> <td><b>$text{'solaris_ro'}</b></td>\n";
	printf "<td nowrap><input type=radio name=ufs_ro value=1 %s> $text{'yes'}\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=ufs_ro value=0 %s> $text{'no'}</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>$text{'solaris_nosuid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=ufs_nosuid value=1 %s> $text{'yes'}\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=ufs_nosuid value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"nosuid"}) ? "" : "checked";

	print "<tr> <td><b>$text{'solaris_nointr'}</b></td>\n";
	printf "<td nowrap><input type=radio name=ufs_nointr value=0 %s> $text{'yes'}\n",
		defined($options{"nointr"}) ? "" : "checked";
	printf "<input type=radio name=ufs_nointr value=1 %s> $text{'no'}</td>\n",
		defined($options{"nointr"}) ? "checked" : "";

	print "<td><b>$text{'solaris_quotab'}</b></td>\n";
	printf "<td nowrap><input type=radio name=ufs_quota value=1 %s> $text{'yes'}\n",
		defined($options{"quota"}) || defined($options{"rq"}) ?
			"checked" : "";
	printf "<input type=radio name=ufs_quota value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"quota"}) || defined($options{"rq"}) ?
			"" : "checked";

	print "<tr> <td><b>$text{'solaris_onerror'}</b></td>\n";
	print "<td><select name=ufs_onerror>\n";
	foreach ('panic', 'lock', 'umount', 'repair') {
		printf "<option value=\"$_\" %s> $_\n",
		 $options{onerror} eq $_ ||
		 !defined($options{onerror}) && $_ eq "panic" ? "selected" : "";
		}
	print "</select></td>\n";

	print "<td><b>$text{'solaris_toosoon'}</b></td>\n";
	$options{toosoon} =~ /([0-9]+)([A-z])/;
	print "<td nowrap><input size=5 name=ufs_toosoon_time value=$1>\n";
	print "<select name=ufs_toosoon_units>\n";
	foreach $u ('s', 'm', 'h', 'd', 'w', 'y') {
		printf "<option value=%s %s> %s\n",
			$u, $2 eq $u ? "selected" : "", $text{"solaris_time_$u"};
		}
	print "</select></td> </tr>\n";

	if ($gconfig{'os_version'} >= 7) {
		print "<tr> <td><b>$text{'solaris_noatime'}</b></td> <td>\n";
		if ($gconfig{'os_version'} >= 8) {
			printf "<input type=radio name=ufs_noatime value=0 %s> $text{'solaris_immed'}\n",
				defined($options{'nodfratime'}) ? "checked" : "";
			printf "<input type=radio name=ufs_noatime value=1 %s> $text{'solaris_defer'}\n",
				!defined($options{'nodfratime'}) &&
				!defined($options{'noatime'}) ? "checked" : "";
			printf "<input type=radio name=ufs_noatime value=2 %s> $text{'no'}</td>\n",
				defined($options{'noatime'}) ? "checked" : "";
			}
		else {
			printf "<input type=radio name=ufs_noatime value=0 %s> $text{'yes'}\n",
				defined($options{'noatime'}) ? "" : "checked";
			printf "<input type=radio name=ufs_noatime value=1 %s> $text{'no'}</td>\n",
				defined($options{'noatime'}) ? "checked" : "";
			}

		print "<td><b>$text{'solaris_force'}</b></td> <td>\n";
		printf "<input type=radio name=ufs_force value=1 %s> $text{'yes'}\n",
			defined($options{'forcedirectio'}) ? "checked" : "";
		printf "<input type=radio name=ufs_force value=0 %s> $text{'no'}</td> </tr>\n",
			defined($options{'forcedirectio'}) ? "" : "checked";

		print "<tr> <td><b>$text{'solaris_nolarge'}</td> <td>\n";
		printf "<input type=radio name=ufs_nolarge value=0 %s> $text{'yes'}\n",
			defined($options{'nolargefiles'}) ? "" : "checked";
		printf "<input type=radio name=ufs_nolarge value=1 %s> $text{'no'}</td>\n",
			defined($options{'nolargefiles'}) ? "checked" : "";

		print "<td><b>$text{'solaris_logging'}</td> <td>\n";
		printf "<input type=radio name=ufs_logging value=1 %s> $text{'yes'}\n",
			defined($options{'logging'}) ? "checked" : "";
		printf "<input type=radio name=ufs_logging value=0 %s> $text{'no'}</td> </tr>\n",
			defined($options{'logging'}) ? "" : "checked";
		}
	}
if ($_[0] eq "hsfs") {
	# Solaris hsfs is used for CDROMs
	print "<tr> <td><b>$text{'solaris_nrr'}</b></td>\n";
	printf "<td nowrap><input type=radio name=hsfs_nrr value=1 %s> $text{'yes'}\n",
		defined($options{"nrr"}) ? "checked" : "";
	printf "<input type=radio name=hsfs_nrr value=0 %s> $text{'no'}</td>\n",
		defined($options{"nrr"}) ? "" : "checked";

	print "<td><b>$text{'solaris_notraildot'}</b></td>\n";
	printf "<td nowrap><input type=radio name=hsfs_notraildot value=1 %s> $text{'yes'}\n",
		defined($options{"notraildot"}) ? "checked" : "";
	printf "<input type=radio name=hsfs_notraildot value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"notraildot"}) ? "" : "checked";

	print "<tr> <td><b>$text{'solaris_nomaplcase'}</b></td>\n";
	printf "<td nowrap><input type=radio name=hsfs_nomaplcase value=0 %s> $text{'yes'}\n",
		defined($options{"nomaplcase"}) ? "" : "checked";
	printf "<input type=radio name=hsfs_nomaplcase value=1 %s> $text{'no'}</td>\n",
		defined($options{"nomaplcase"}) ? "checked" : "";

	print "<td><b>$text{'solaris_nosuid'}</b></td>\n";
	printf"<td nowrap><input type=radio name=hsfs_nosuid value=1 %s> $text{'yes'}\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=hsfs_nosuid value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"nosuid"}) ? "" : "checked";
	}
if ($_[0] eq "pcfs") {
	# Solaris pcfs for for FAT filesystems. It doesn't have many options
	print "<tr> <td width=25%><b>$text{'solaris_ro'}</b></td> <td width=25%>\n";
	printf "<input type=radio name=pcfs_ro value=1 %s> $text{'yes'}\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=pcfs_ro value=0 %s> $text{'no'}</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	if ($gconfig{'os_version'} >= 7) {
		print "<td><b>$text{'solaris_foldcase'}</b></td> <td>\n";
		printf "<input type=radio name=pcfs_foldcase value=1 %s> $text{'yes'}\n",
			defined($options{'foldcase'}) ? "checked" : "";
		printf "<input type=radio name=pcfs_foldcase value=0 %s> $text{'no'}</td>\n",
			defined($options{'foldcase'}) ? "" : "checked";
		}
	else {
		print "<td colspan=2></td> </tr>\n";
		}
	}
if ($_[0] eq "lofs") {
	# No options as far as I know
	print "<tr> <td><i>$text{'solaris_noopts'}</i></td> </tr>\n";
	}
if ($_[0] eq "tmpfs") {
	# Solaris tmpfs (virtual memory) filesystem.
	print "<tr> <td><b>$text{'solaris_size'}</b>&nbsp;&nbsp;&nbsp;</td>\n";
	printf"<td><input type=radio name=tmpfs_size_def value=1 %s> $text{'solaris_max'}\n",
		defined($options{"size"}) ? "" : "checked";
	printf"&nbsp;&nbsp;<input type=radio name=tmpfs_size_def value=0 %s>\n",
		defined($options{"size"}) ? "checked" : "";
	($tmpsz = $options{size}) =~ s/[A-z]+$//g;
	print "<input name=tmpfs_size size=6 value=\"$tmpsz\">\n";
	print "<select name=tmpfs_unit>\n";
	printf "<option value=m %s> MB\n",
		$options{"size"} =~ /m$/ ? "selected" : "";
	printf "<option value=k %s> kB\n",
		$options{"size"} =~ /k$/ ? "selected" : "";
	printf "<option value=b %s> bytes\n",
		$options{"size"} !~ /(k|m)$/ ? "selected" : "";
	print "</select></td>\n";

	print "<td><b>$text{'solaris_nosuid'}</b></td> <td nowrap>\n";
	printf "<input type=radio name=tmpfs_nosuid value=1 %s> $text{'yes'}\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=tmpfs_nosuid value=0 %s> $text{'no'}</td>\n",
		defined($options{"nosuid"}) ? "" : "checked";
	print "</tr>\n";
	}
if ($_[0] eq "swap") {
	# Solaris swap has no options
	print "<tr> <td><i>$text{'solaris_noopts'}</i></td> </tr>\n";
	}
if ($_[0] eq "cachefs") {
	# The caching filesystem has lots of options.. cachefs mounts can
	# be of an existing 'manually' mounted back filesystem, or of a
	# back-filesystem that has been automatically mounted by the cache.
	# The user should never see the automatic mountings made by cachefs.
	print "<tr> <td><b>$text{'solaris_backfs'}</b></td>\n";
	print "<td nowrap><select name=cfs_backfstype>\n";
	if (!defined($options{backfstype})) { $options{backfstype} = "nfs"; }
	foreach (&list_fstypes()) {
		if ($_ eq "cachefs") { next; }
		printf "<option value=\"$_\" %s>$_\n",
			$_ eq $options{backfstype} ? "selected" : "";
		}
	print "</select></td>\n";

	print "<td><b>$text{'solaris_backpath'}</b></td>\n";
	printf"<td nowrap><input type=radio name=cfs_noback value=1 %s> $text{'solaris_auto'}\n",
		defined($options{"backpath"}) ? "" : "checked";
	printf "<input type=radio name=cfs_noback value=0 %s>\n",
		defined($options{"backpath"}) ? "checked" : "";
	print "<input size=10 name=cfs_backpath value=\"$options{backpath}\"></td> </tr>\n";

	print "<tr> <td><b>$text{'solaris_cachedir'}</b></td>\n";
	printf "<td nowrap><input size=10 name=cfs_cachedir value=\"%s\"></td>\n",
		defined($options{"cachedir"}) ? $options{"cachedir"} : "/cache";

	print "<td><b>$text{'solaris_wmode'}</b></td>\n";
	printf"<td nowrap><input type=radio name=cfs_wmode value=0 %s> $text{'solaris_waround'}\n",
		defined($options{"non-shared"}) ? "" : "checked";
	printf "<input type=radio name=cfs_wmode value=1 %s> $text{'solaris_nshared'}\n",
		defined($options{"non-shared"}) ? "checked" : "";
	print "</td> </tr>\n";

	print "<tr> <td><b>$text{'solaris_con'}</b></td>\n";
	print "<td><select name=cfs_con>\n";
	print "<option value=1> $text{'solaris_period'}\n";
	printf "<option value=0 %s> $text{'solaris_never'}\n",
		defined($options{"noconst"}) ? "selected" : "";
	printf "<option value=2 %s> $text{'solaris_demand'}\n",
		defined($options{"demandconst"}) ? "selected" : "";
	print "</select></td>\n";

	print "<td><b>$text{'solaris_local'}</b></td>\n";
	printf "<td nowrap><input type=radio name=cfs_local value=1 %s> $text{'yes'}\n",
		defined($options{"local-access"}) ? "checked" : "";
	printf "<input type=radio name=cfs_local value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"local-access"}) ? "" : "checked";

	print "<tr> <td><b>$text{'solaris_ro'}</b></td>\n";
	printf "<td nowrap><input type=radio name=cfs_ro value=1 %s> $text{'yes'}\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=cfs_ro value=0 %s> $text{'no'}</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>$text{'solaris_nosuid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=cfs_nosuid value=1 %s> $text{'yes'}\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=cfs_nosuid value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"nosuid"}) ? "" : "checked";
	}
if ($_[0] eq "autofs") {
	# Autofs has lots of options, depending on the type of file
	# system being automounted.. the fstype options determines this
	local($fstype);
	$fstype = $options{fstype} eq "" ? "nfs" : $options{fstype};
	if ($gconfig{'os_version'} >= 2.6) {
		print "<tr> <td><b>$text{'solaris_nobrowse'}</b></td> <td>\n";
		printf "<input type=radio name=auto_nobrowse value=0 %s> $text{'yes'}\n",
			defined($options{'nobrowse'}) ? "" : "checked";
		printf "<input type=radio name=auto_nobrowse value=1 %s> $text{'no'}\n",
			defined($options{'nobrowse'}) ? "checked" : "";
		print "</td> <td colspan=2></td> </tr>\n";
		}
	&generate_options($fstype);
	print "<input type=hidden name=autofs_fstype value=\"$fstype\">\n";
	}
if ($_[0] eq "rumba") {
	# SMB filesystems have a few options..
	print "<tr> <td><b>$text{'solaris_mname'}</b></td>\n";
	printf "<td><input type=radio name=rumba_mname_def value=1 %s> $text{'solaris_auto'}\n",
		defined($options{"machinename"}) ? "" : "checked";
	printf "<input type=radio name=rumba_mname_def value=0 %s>\n",
		defined($options{"machinename"}) ? "checked" : "";
	print "<input size=10 name=rumba_mname value=\"$options{machinename}\"></td>\n";

	print "<td><b>$text{'solaris_cname'}</b></td>\n";
	printf "<td><input type=radio name=rumba_cname_def value=1 %s> $text{'solaris_auto'}\n",
		defined($options{"clientname"}) ? "" : "checked";
	printf "<input type=radio name=rumba_cname_def value=0 %s>\n",
		defined($options{"clientname"}) ? "checked" : "";
	print "<input size=10 name=rumba_cname value=\"$options{clientname}\"></td> </tr>\n";

	print "<tr> <td><b>$text{'solaris_username'}</b></td>\n";
	print "<td><input name=rumba_username size=15 value=\"$options{username}\"></td>\n";

	print "<td><b>$text{'solaris_password'}</b></td>\n";
	print "<td><input type=password name=rumba_password size=15 value=\"$options{password}\"></td> </tr>\n";

	print "<tr> <td><b>$text{'solaris_uid'}</b></td>\n";
	printf "<td><input name=rumba_uid size=8 value=\"%s\">\n",
		defined($options{'uid'}) ? getpwuid($options{'uid'}) : "";
	print &user_chooser_button("rumba_uid", 0),"</td>\n";

	print "<td><b>$text{'solaris_gid'}</b></td>\n";
	printf "<td><input name=rumba_gid size=8 value=\"%s\">\n",
		defined($options{'gid'}) ? getgrgid($options{'gid'}) : "";
	print &group_chooser_button("rumba_gid", 0),"</td>\n";

	print "<tr> <td><b>$text{'solaris_fmode'}</b></td>\n";
	printf "<td><input name=rumba_fmode size=5 value=\"%s\"></td>\n",
		defined($options{fmode}) ? $options{fmode} : "755";

	print "<td><b>$text{'solaris_dmode'}</b></td>\n";
	printf "<td><input name=rumba_dmode size=5 value=\"%s\"></td> </tr>\n",
		defined($options{dmode}) ? $options{dmode} : "755";

	print "<tr> <td><b>$text{'solaris_readwrite'}</b></td>\n";
	printf"<td nowrap><input type=radio name=rumba_readwrite value=1 %s> $text{'yes'}\n",
		defined($options{"readwrite"}) ? "checked" : "";
	printf "<input type=radio name=rumba_readwrite value=0 %s> $text{'no'}</td>\n",
		defined($options{"readwrite"}) ? "" : "checked";

	print "<td><b>$text{'solaris_readonly'}</b></td>\n";
	printf"<td nowrap><input type=radio name=rumba_readonly value=1 %s> $text{'yes'}\n",
		defined($options{"readonly"}) ? "checked" : "";
	printf "<input type=radio name=rumba_readonly value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"readonly"}) ? "" : "checked";

	print "<tr> <td><b>$text{'solaris_noupper'}</b></td>\n";
	printf"<td nowrap><input type=radio name=rumba_noupper value=0 %s> $text{'yes'}\n",
		defined($options{"noupper"}) ? "" : "checked";
	printf "<input type=radio name=rumba_noupper value=1 %s> $text{'no'}</td>\n",
		defined($options{"noupper"}) ? "checked" : "";

	print "<td><b>$text{'solaris_attr'}</b></td>\n";
	printf"<td nowrap><input type=radio name=rumba_attr value=1 %s> $text{'yes'}\n",
		defined($options{"attr"}) ? "checked" : "";
	printf "<input type=radio name=rumba_attr value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"attr"}) ? "" : "checked";
	}
if ($_[0] eq "udfs") {
	# Solaris udfs is used for DVDs
	print "<tr> <td><b>$text{'solaris_ro'}</b></td>\n";
	printf "<td nowrap><input type=radio name=udfs_ro value=1 %s> $text{'yes'}\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=udfs_ro value=0 %s> $text{'no'}</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>$text{'solaris_nosuid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=udfs_nosuid value=1 %s> $text{'yes'}\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=udfs_nosuid value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"nosuid"}) ? "" : "checked";
	}
if ($_[0] eq "xmemfs") {
	# Solaris xmemfs (virtual memory) filesystem.
	print "<tr> <td><b>$text{'solaris_size'}</b>&nbsp;&nbsp;&nbsp;</td>\n";
	printf"<td><input type=radio name=xmemfs_size_def value=1 %s> $text{'solaris_max'}\n",
		defined($options{"size"}) ? "" : "checked";
	printf"&nbsp;&nbsp;<input type=radio name=xmemfs_size_def value=0 %s>\n",
		defined($options{"size"}) ? "checked" : "";
	($tmpsz = $options{size}) =~ s/[A-z]+$//g;
	print "<input name=xmemfs_size size=6 value=\"$tmpsz\">\n";
	print "<select name=xmemfs_unit>\n";
	printf "<option value=m %s> MB\n",
		$options{"size"} =~ /m$/ ? "selected" : "";
	printf "<option value=k %s> kB\n",
		$options{"size"} =~ /k$/ ? "selected" : "";
	printf "<option value=b %s> bytes\n",
		$options{"size"} !~ /(k|m)$/ ? "selected" : "";
	print "</select></td>\n";

	print "<td><b>$text{'solaris_largebsize'}</b></td>\n";
	printf "<td nowrap><input type=radio name=xmemfs_largebsize value=1 %s> $text{'yes'}\n",
		defined($options{"largebsize"}) ? "checked" : "";
	printf "<input type=radio name=xmemfs_largebsize value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"largebsize"}) ? "" : "checked";
	}
}


# check_location(type)
# Parse and check inputs from %in, calling &error() if something is wrong.
# Returns the location string for storing in the fstab file
sub check_location
{
if ($_[0] eq "nfs") {
	local($out, $temp, $mout, $dirlist);

	if ($in{'nfs_serv'} == 1) {
		# multiple servers listed.. assume the user has a brain
		return $in{'nfs_list'};
		}
	elsif ($in{'nfs_serv'} == 2) {
		# NFS url.. check syntax
		if ($in{'nfs_url'} !~ /^nfs:\/\/([^\/ ]+)(\/([^\/ ]*))?$/) {
			&error(&text('solaris_eurl', $in{'nfs_url'}));
			}
		return $in{'nfs_url'};
		}

	# Use dfshares to see if the host exists and is up
	if ($in{nfs_host} !~ /^\S+$/) {
		&error(&text('solaris_ehost', $in{'nfs_host'}));
		}
	$out = `dfshares '$in{nfs_host}' 2>&1`;
	if ($out =~ /Unknown host/) {
		&error(&text('solaris_ehost2', $in{'nfs_host'}));
		}
	elsif ($out =~ /Timed out/) {
		&error(&text('solaris_edown', $in{'nfs_host'}));
		}
	elsif ($out =~ /Program not registered/) {
		&error(&text('solaris_enfs', $in{'nfs_host'}));
		}

	# Try a test mount to see if filesystem is available
	foreach (split(/\n/, $out)) {
		if (/^\s*([^ :]+):(\/\S+)\s+/) { $dirlist .= "$2\n"; }
		}
	if ($in{nfs_dir} !~ /^\S+$/) {
		&error(&text('solaris_enfsdir', $in{'nfs_dir'},
			     $in{'nfs_host'}, "<pre>$dirlist</pre>"));
		}
	$temp = &tempname();
	mkdir($temp, 0755);
	$mout = `mount $in{nfs_host}:$in{nfs_dir} $temp 2>&1`;
	if ($mout =~ /No such file or directory/) {
		rmdir($temp);
		&error(&text('solaris_enfsdir', $in{'nfs_dir'},
			     $in{'nfs_host'}, "<pre>$dirlist</pre>"));
		}
	elsif ($mout =~ /Permission denied/) {
		rmdir($temp);
		&error(&text('solaris_enfsperm', $in{'nfs_dir'}, $in{'nfs_host'}));
		}
	elsif ($?) {
		rmdir($temp);
		&error(&text('solaris_enfsmount', "<tt>$mout</tt>"));
		}
	# It worked! unmount
	`umount $temp`;
	rmdir($temp);
	return "$in{nfs_host}:$in{nfs_dir}";
	}
elsif ($_[0] eq "ufs" || $_[0] eq "pcfs") {
	# Get the device name
	if ($in{ufs_dev} == 0) {
		$dv = $in{'ufs_disk'};
		}
	elsif ($in{ufs_dev} == 1) {
		$in{ufs_md} =~ /^[0-9]+$/ ||
			&error(&text('solaris_eraid', $in{'ufs_md'}));
		$dv = "/dev/md/dsk/d$in{ufs_md}";
		}
	else {
		$in{ufs_path} =~ /^\/\S+$/ ||
			&error(&text('solaris_epath', $in{'ufs_path'}));
		$dv = $in{ufs_path};
		}

	&fstyp_check($dv, $_[0]);
	return $dv;
	}
elsif ($_[0] eq "hsfs" || $_[0] eq "udfs") {
	# Get the device name
	if ($in{ufs_dev} == 0) {
		$in{ufs_c} =~ /^[0-9]+$/ ||
			&error(&text('solaris_ectrlr', $in{'ufs_c'}));
		$in{ufs_t} =~ /^[0-9]+$/ ||
			&error(&text('solaris_etarget', $in{'ufs_t'}));
		$in{ufs_d} =~ /^[0-9]+$/ ||
			&error(&text('solaris_eunit', $in{'ufs_d'}));
		$in{ufs_s} =~ /^[0-9]+$/ ||
			&error(&text('solaris_epart', $in{'ufs_s'}));
		$dv = "/dev/dsk/c$in{ufs_c}t$in{ufs_t}d$in{ufs_d}s$in{ufs_s}";
		}
	else {
		$in{ufs_path} =~ /^\/\S+$/ ||
			&error(&text('solaris_epath', $in{'ufs_path'}));
		$dv = $in{ufs_path};
		}

	return $dv;
	}
elsif ($_[0] eq "lofs") {
	# Get and check the original directory
	$dv = $in{'lofs_src'};
	if (!(-r $dv)) { &error(&text('solaris_eexist', $dv)); }
	if (!(-d $dv)) { &error(&text('solaris_edir', $dv)); }
	return $dv;
	}
elsif ($_[0] eq "swap") {
	if ($in{swap_dev} == 0) {
		$dv = $in{'swap_disk'};
		}
	else { $dv = $in{swap_path}; }

	if (!open(SWAPFILE, $dv)) {
		if ($! =~ /No such file/ && $in{swap_dev}) {
			if ($dv !~ /^\/dev/) {
				&swap_form($dv);
				}
			else {
				&error(&text('solaris_eswapfile', $dv));
				}
			}
		elsif ($! =~ /No such file/) {
			&error(&text('solaris_etarget', $in{'swap_t'}));
			}
		elsif ($! =~ /No such device or address/) {
			&error(&text('solaris_epart', $in{'swap_s'}));
			}
		else {
			&error(&text('solaris_eopen', $dv, $!));
			}
		}
	close(SWAPFILE);
	return $dv;
	}
elsif ($_[0] eq "tmpfs") {
	# Ram-disk filesystems have no location
	return "swap";
	}
elsif ($_[0] eq "xmemfs") {
	# Large ram-disk filesystems have no location
	return "xmem";
	}
elsif ($_[0] eq "cachefs") {
	# In order to check the location for the caching filesystem, we need
	# to check the back filesystem
	if (!$in{cfs_noback}) {
		# The back filesystem is manually mounted.. hopefully
		local($bidx, @mlist, @binfo);
		$bidx = &get_mounted($in{cfs_backpath}, "*");
		if ($bidx < 0) {
			&error(&text('solaris_ebackfs', $in{'cfs_backpath'}));
			}
		@mlist = &list_mounted();
		@binfo = @{$mlist[$bidx]};
		if ($binfo[2] ne $in{cfs_backfstype}) {
			&error(&text('solaris_ebacktype', $binfo[2], $in{'cfs_backfstype'}));
			}
		}
	else {
		# Need to automatically mount the back filesystem.. check
		# it for sanity first.
		# But HOW?
		$in{cfs_src} =~ /^\S+$/ ||
			&error(&text('solaris_ecsrc', $in{'cfs_src'}));
		}
	return $in{cfs_src};
	}
elsif ($_[0] eq "autofs") {
	# An autofs filesystem can be either mounted from the special
	# -hosts and -xfn maps, or from a normal map. The map can be a file
	# name (if it starts with /), or an NIS map (if it doesn't)
	if ($in{autofs_type} == 0) {
		# Normal map
		$in{autofs_map} =~ /\S/ ||
			&error($text{'solaris_eautomap'});
		if ($in{autofs_map} =~ /^\// && !(-r $in{autofs_map})) {
			&error(&text('solaris_eautofile', $in{'autofs_map'}));
			}
		return $in{autofs_map};
		}
	elsif ($in{autofs_type} == 1) {
		# Special hosts map (automount all shares from some host)
		return "-hosts";
		}
	else {
		# Special FNS map (not sure what this does)
		return "-xfn";
		}
	}
elsif ($_[0] eq "rumba") {
	# Cannot check much here..
	return "\\\\$in{rumba_server}\\$in{rumba_share}";
	}
}


# fstyp_check(device, type)
# Check if some device exists, and contains a filesystem of the given type,
# using the fstyp command.
sub fstyp_check
{
local($out, $part, $found);

# Check if the device/partition actually exists
if ($_[0] =~ /^\/dev\/dsk\/c(.)t(.)d(.)s(.)$/) {
	# mounting a normal scsi device..
	$out = `prtvtoc -h $_[0] 2>&1`;
	if ($out =~ /No such file or directory|No such device or address/) {
		&error(&text('solaris_etarget2', $_[0]));
		}
	$part = $4;
	foreach (split(/\n/, $out)) {
		/^\s+([0-9]+)\s+([0-9]+)/;
		if ($1 == $part) {
			$found = 1; last;
			}
		}
	if (!$found) {
		&error(&text('solaris_epart2', $_[0]));
		}
	}
elsif ($_[0] =~ /^\/dev\/md\/dsk\/d(.)$/) {
	# mounting a multi-disk (raid) device..
	$out = `prtvtoc -h $_[0] 2>&1`;
	if ($out =~ /No such file or directory|No such device or address/) {
		&error(&text('solaris_eraid2', $_[0]));
		}
	if ($out !~ /\S/) {
		&error(&text('solaris_enopart', $_[0]));
		}
	}
else {
	# Some other device
	if (!open(DEV, $_[0])) {
		if ($! =~ /No such file or directory/) {
			&error(&text('solaris_edevfile', $_[0]));
			}
		elsif ($! =~ /No such device or address/) {
			&error(&text('solaris_edevice', $_[0]));
			}
		}
	close(DEV);
	}

# Check the filesystem type
$out = `fstyp $_[0] 2>&1`;
if ($out =~ /^([A-z0-9]+)\n$/) {
	if ($1 eq $_[1]) { return; }
	else {
		# Wrong filesystem type
		&error(&text('solaris_efstyp', $_[0], &fstype_name($1)));
		}
	}
else {
	&error(&text('solaris_efstyp2', $out));
	}
}


# check_options(type)
# Read options for some filesystem from %in, and use them to update the
# %options array. Options handled by the user interface will be set or
# removed, while unknown options will be left untouched.
sub check_options
{
local($k, @rv);
if ($_[0] eq "nfs") {
	# NFS has lots of options to parse
	if ($in{'nfs_ro'}) {
		# Read-only
		$options{"ro"} = ""; delete($options{"rw"});
		}
	else {
		# Read-write
		$options{"rw"} = ""; delete($options{"ro"});
		}

	delete($options{'quota'}); delete($options{'noquota'});
	if ($in{'nfs_quota'}) { $options{'quota'} = ""; }

	delete($options{"nosuid"}); delete($options{"suid"});
	if ($in{nfs_nosuid}) { $options{"nosuid"} = ""; }

	delete($options{"grpid"});
	if ($in{nfs_grpid}) { $options{"grpid"} = ""; }

	delete($options{"soft"}); delete($options{"hard"});
	if ($in{nfs_soft}) { $options{"soft"} = ""; }

	delete($options{"bg"}); delete($options{"fg"});
	if ($in{nfs_bg}) { $options{"bg"} = ""; }

	delete($options{"intr"}); delete($options{"nointr"});
	if ($in{nfs_nointr}) { $options{"nointr"} = ""; }

	delete($options{"vers"});
	if (!$in{nfs_vers_def}) { $options{"vers"} = $in{nfs_vers}; }

	delete($options{"proto"});
	if ($in{nfs_proto} ne "") { $options{"proto"} = $in{nfs_proto}; }

	delete($options{"port"});
	if (!$in{nfs_port_def}) { $options{"port"} = $in{nfs_port}; }

	delete($options{"timeo"});
	if (!$in{nfs_timeo_def}) { $options{"timeo"} = $in{nfs_timeo}; }

	delete($options{"secure"}); delete($options{"kerberos"});
	delete($options{"sec"});
	if ($gconfig{'os_version'} >= 2.6) {
		if ($in{'nfs_auth'}) { $options{'sec'} = $in{'nfs_auth'}; }
		}
	else {
		if ($in{'nfs_auth'} eq "dh") { $options{"secure"} = ""; }
		elsif ($in{'nfs_auth'} eq "krb") { $options{"kerberos"} = ""; }
		}

	if ($gconfig{'os_version'} >= 7) {
		delete($options{'public'});
		$options{'public'} = "" if ($in{'nfs_public'});
		}
	}
elsif ($_[0] eq "ufs") {
	# UFS also has lots of options..
	if ($in{ufs_ro}) {
		# read-only (and thus no quota)
		$options{"ro"} = ""; delete($options{"rw"});
		delete($options{"rq"}); delete($options{"quota"});
		}
	elsif ($in{ufs_quota}) {
		# read-write, with quota
		delete($options{"ro"}); $options{"rw"} = "";
		$options{"quota"} = "";
		}
	else {
		# read-write, without quota
		delete($options{"ro"}); $options{"rw"} = "";
		delete($options{"quota"});
		}

	delete($options{"nosuid"});
	if ($in{ufs_nosuid}) { $options{"nosuid"} = ""; }

	delete($options{"intr"}); delete($options{"nointr"});
	if ($in{ufs_nointr}) { $options{"nointr"} = ""; }

	delete($options{"onerror"});
	if ($in{ufs_onerror} ne "panic") {
		$options{"onerror"} = $in{ufs_onerror};
		}

	delete($options{"toosoon"});
	if ($in{ufs_toosoon_time}) {
		$options{"toosoon"} = $in{ufs_toosoon_time}.
				      $in{ufs_toosoon_units};
		}
	if ($gconfig{'os_version'} >= 7) {
		if ($gconfig{'os_version'} >= 8) {
			delete($options{'noatime'});
			delete($options{'dfratime'}); delete($options{'nodfratime'});
			if ($in{'ufs_noatime'} == 0) { $options{'nodfratime'} = ""; }
			elsif ($in{'ufs_noatime'} == 2) { $options{'noatime'} = ""; }
			}
		else {
			delete($options{'noatime'});
			$options{'noatime'} = "" if ($in{'ufs_noatime'});
			}

		delete($options{'forcedirectio'});
		delete($options{'noforcedirectio'});
		$options{'forcedirectio'} = "" if ($in{'ufs_force'});

		delete($options{'nolargefiles'});delete($options{'largefiles'});
		$options{'nolargefiles'} = "" if ($in{'ufs_nolarge'});

		delete($options{'logging'}); delete($options{'nologging'});
		$options{'logging'} = "" if ($in{'ufs_logging'});
		}
	}
elsif ($_[0] eq "lofs") {
	# Loopback has no options to parse
	}
elsif ($_[0] eq "swap") {
	# Swap has no options to parse
	}
elsif ($_[0] eq "pcfs") {
	# PCFS has only 2 options
	delete($options{'ro'}); delete($options{'rw'});
	$options{'ro'} = "" if ($in{'pcfs_ro'});

	delete($options{'foldcase'}); delete($options{'nofoldcase'});
	$options{'foldcase'} = "" if ($in{'pcfs_foldcase'});
	}
elsif ($_[0] eq "hsfs") {
	# Options for ISO-9660 filesystems
	delete($options{'nrr'});
	$options{'nrr'} = "" if ($in{'hsfs_nrr'});

	delete($options{"notraildot"});
	$options{"notraildot"} = "" if ($in{'hsfs_notraildot'});

	delete($options{'nomaplcase'});
	$options{'nomaplcase'} = "" if ($in{'hsfs_nomaplcase'});

	delete($options{'nosuid'});
	$options{'nosuid'} = "" if ($in{'hsfs_nosuid'});
	}
elsif ($_[0] eq "tmpfs") {
	# Ram-disk filesystems have only two options
	delete($options{"size"});
	if (!$in{"tmpfs_size_def"}) {
		$options{"size"} = "$in{tmpfs_size}$in{tmpfs_unit}";
		}

	delete($options{"nosuid"});
	if ($in{'tmpfs_nosuid'}) { $options{"nosuid"} = ""; }
	}
elsif ($_[0] eq "xmemfs") {
	# Large ram-disk filesystems have only two options
	delete($options{"size"});
	if (!$in{"xmemfs_size_def"}) {
		$options{"size"} = "$in{xmemfs_size}$in{xmemfs_unit}";
		}

	delete($options{"largebsize"});
	if ($in{'xmemfs_largebsize'}) { $options{"largebsize"} = ""; }

	delete($options{'rw'});
	}
elsif ($_[0] eq "cachefs") {
	# The caching filesystem has lots of options
	$options{"backfstype"} = $in{"cfs_backfstype"};

	delete($options{"backpath"});
	if (!$in{"cfs_noback"}) {
		# A back filesystem was given..  (alreadys checked)
		$options{"backpath"} = $in{"cfs_backpath"};
		}

	if ($in{"cfs_cachedir"} !~ /^\/\S+/) {
		&error(&text('solaris_ecachedir', $in{'cfs_cachedir'}));
		}
	$options{"cachedir"} = $in{"cfs_cachedir"};

	delete($options{"write-around"}); delete($options{"non-shared"});
	if ($in{"cfs_wmode"}) {
		$options{"non-shared"} = "";
		}

	delete($options{"noconst"}); delete($options{"demandconst"});
	if ($in{"cfs_con"} == 0) { $options{"noconst"} = ""; }
	elsif ($in{"cfs_con"} == 2) { $options{"demandconst"} = ""; }

	delete($options{"ro"}); delete($options{"rw"});
	if ($in{"cfs_ro"}) { $options{"ro"} = ""; }

	delete($options{"suid"}); delete($options{"nosuid"});
	if ($in{"cfs_nosuid"}) { $options{"nosuid"} = ""; }
	}
elsif ($_[0] eq "autofs") {
	# The options for autofs depend on the type of the automounted
	# filesystem.. 
	$options{"fstype"} = $in{"autofs_fstype"};
	if ($gconfig{'os_version'} >= 2.6) {
		delete($options{'nobrowse'}); delete($options{'browse'});
		$options{'nobrowse'} = "" if ($in{'auto_nobrowse'});
		}
	return &check_options($options{"fstype"});
	}
elsif ($_[0] eq "rumba") {
	# Options for smb filesystems..
	delete($options{machinename});
	if (!$in{rumba_mname_def}) { $options{machinename} = $in{rumba_mname}; }

	delete($options{clientname});
	if (!$in{rumba_cname_def}) { $options{clientname} = $in{rumba_cname}; }

	delete($options{username});
	if ($in{rumba_username}) { $options{username} = $in{rumba_username}; }

	delete($options{password});
	if ($in{rumba_password}) { $options{password} = $in{rumba_password}; }

	delete($options{uid});
	if ($in{rumba_uid} ne "") { $options{uid} = getpwnam($in{rumba_uid}); }

	delete($options{gid});
	if ($in{rumba_gid} ne "") { $options{gid} = getgrnam($in{rumba_gid}); }

	delete($options{fmode});
	if ($in{rumba_fmode} !~ /^[0-7]{3}$/) {
		&error(&text('solaris_efmode', $in{'rumba_fmode'}));
		}
	elsif ($in{rumba_fmode} ne "755") { $options{fmode} = $in{rumba_fmode}; }

	delete($options{dmode});
	if ($in{rumba_dmode} !~ /^[0-7]{3}$/) {
		&error(&text('solaris_edmode', $in{'rumba_dmode'}));
		}
	elsif ($in{rumba_dmode} ne "755") { $options{dmode} = $in{rumba_dmode}; }

	delete($options{'readwrite'});
	if ($in{'rumba_readwrite'}) { $options{'readwrite'} = ""; }

	delete($options{'readonly'});
	if ($in{'rumba_readonly'}) { $options{'readonly'} = ""; }

	delete($options{'attr'});
	if ($in{'rumba_attr'}) { $options{'attr'} = ""; }

	delete($options{'noupper'});
	if ($in{'rumba_noupper'}) { $options{'noupper'} = ""; }
	}
elsif ($_[0] eq "udfs") {
	# The DVD filesystem has only 2 options
	delete($options{'ro'}); delete($options{'rw'});
	$options{'ro'} = "" if ($in{'udfs_ro'});

	delete($options{"nosuid"});
	if ($in{'udfs_nosuid'}) { $options{"nosuid"} = ""; }
	}

# Return options string
foreach $k (keys %options) {
	if ($options{$k} eq "") { push(@rv, $k); }
	else { push(@rv, "$k=$options{$k}"); }
	}
return @rv ? join(',' , @rv) : "-";
}


# create_swap(path, size, units)
# Attempt to create a swap file 
sub create_swap
{
local($out);
$out = `mkfile $_[1]$_[2] $_[0] 2>&1`;
if ($?) {
	unlink($_[0]);
	return "mkfile failed : $out";
	}
return 0;
}


# exports_list(host, dirarray, clientarray)
# Fills the directory and client array references with exports from some
# host. Returns an error string if something went wrong
sub exports_list
{
local($dref, $cref, $out, $_);
$dref = $_[1]; $cref = $_[2];
$out = `showmount -e $_[0] 2>&1`;
if ($?) { return $out; }
foreach (split(/\n/, $out)) {
	if (/^(\/\S*)\s+(.*)$/) {
		push(@$dref, $1); push(@$cref, $2);
		}
	}
return undef;
}

# broadcast_addr()
# Returns a useable broadcast address for finding NFS servers
sub broadcast_addr
{
local($out);
$out = `ifconfig -a 2>&1`;
if ($out =~ /broadcast\s+(\S+)/) { return $1; }
return "255.255.255.255";
}

# device_name(device)
# Converts a device name to a human-readable form
sub device_name
{
return $_[0] =~ /\/dev\/dsk\/c(\d+)t(\d+)d(\d+)s(\d+)$/ ?
	&text('solaris_scsidev', "$1", "$2", "$3", "$4") :
       $_[0] =~ /^\/dev\/md\/dsk\/d([0-9]+)$/ ?
	&text('solaris_mddev', "$1") :
       $_[0] eq "-hosts" ?
	$text{'solaris_autohosts'} :
       $_[0] eq "-xfn" ?
	$text{'solaris_autoxfn'} :
	$_[0];
}

sub files_to_lock
{
return ( $config{'fstab_file'}, $config{'autofs_file'} );
}

1;
 0707010000774f000081e40000000000000002000000013ac0388d0000dc44000000200000000000000000000000000000001e00000003reloc/mount/suse-linux-lib.pl # linux-lib.pl
# Mount table functions for linux

if (&has_command("amd")) {
	local $amd = &read_amd_conf();
	$amd_support = $amd =~ /\[\s*global\s*\]/i ? 2 : 1;
	}
$autofs_support = &has_command("automount");
if (&has_command("mount.smb")) {
	$smbfs_support = `mount.smb -v` =~ /username=/i ? 4 : 3;
	}
elsif (&has_command("mount.smbfs")) {
	$smbfs_support = `mount.smbfs -v` =~ /username=/i ? 4 : 3;
	}
elsif (&has_command("smbmount")) {
	$smbfs_support = `smbmount -v` =~ /Version\s+2/i ? 2 : 1;
	}
$swaps_support = -r "/proc/swaps";
if (&has_command("e2label") &&
    `mount --version 2>&1` =~ /(\d+)\.(\d+)/ && ($1 > 2 || $1==2 && $2 >= 10)) {
	$has_e2label = 1;
	}

# Return information about a filesystem, in the form:
#  directory, device, type, options, fsck_order, mount_at_boot
# If a field is unused or ignored, a - appears instead of the value.
# Swap-filesystems (devices or files mounted for VM) have a type of 'swap',
# and 'swap' in the directory field
sub list_mounts
{
return @list_mounts_cache if (@list_mounts_cache);
local(@rv, @p, @o, $_, $i, $j); $i = 0;

# Get /etc/fstab mounts
open(FSTAB, $config{fstab_file});
while(<FSTAB>) {
	local(@o, $at_boot);
	chop; s/#.*$//g;
	if (!/\S/ || /\signore\s/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "proc") { $p[0] = "proc"; }
	elsif ($p[2] eq "auto") { $p[2] = "*"; }
	elsif ($p[2] eq "swap") { $p[1] = "swap"; }
	elsif ($p[2] eq "smbfs") { $p[0] =~ s/\//\\/g; }
	$rv[$i] = [ $p[1], $p[0], $p[2] ];
	$rv[$i]->[5] = "yes";
	@o = split(/,/ , $p[3] eq "defaults" ? "" : $p[3]);
	if (($j = &indexof("noauto", @o)) >= 0) {
		# filesytem is not mounted at boot
		splice(@o, $j, 1);
		$rv[$i]->[5] = "no";
		}
	$rv[$i]->[3] = (@o ? join(',' , @o) : "-");
	$rv[$i]->[4] = (@p >= 5 ? $p[5] : 0);
	$i++;
	}
close(FSTAB);

if ($amd_support == 1) {
	# Get old automounter configuration, as used by redhat
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		@p = split(/\s+/, $1);
		for($j=0; $j<@p; $j+=2) {
			$rv[$i++] = [ $p[$j], $p[$j+1], "auto",
				      "-", 0, "yes" ];
			}
		}
	}
elsif ($amd_support == 2) {
	# Guess what? There's now a *new* amd config file format, introduced
	# in redhat 6.1 and caldera 2.3
	local @amd = &parse_amd_conf();
	local @sp = split(/:/, $amd[0]->{'opts'}->{'search_path'});
	local ($am, $sp);
	foreach $am (@amd) {
		local $mn = $am->{'opts'}->{'map_name'};
		if ($mn !~ /^\//) {
			foreach $sp (@sp) {
				if (-r "$sp/$mn") {
					$mn = "$sp/$mn";
					last;
					}
				}
			}
		$rv[$i++] = [ $am->{'dir'}, $mn,
			      "auto", $am->{'opts'}, 0, "yes" ]
			if ($am->{'dir'} ne 'global');
		}
	}

# Get kernel automounter configuration
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	while(<AUTO>) {
		chop;
		s/#.*$//g;
		if (/^\s*(\S+)\s+(\S+)\s*(.*)$/) {
			$rv[$i++] = [ $1, $2, "autofs",
				      ($3 ? &autofs_options($3) : "-"),
				      0, "yes" ];
			}
		}
	close(AUTO);
	}

@list_mounts_cache = @rv;
return @rv;
}


# create_mount(directory, device, type, options, fsck_order, mount_at_boot)
# Add a new entry to the fstab file, old or new automounter file
sub create_mount
{
local(@mlist, @amd, $_); local($opts);

if ($_[2] eq "auto") {
	if ($amd_support == 1) {
		# Adding an old automounter mount
		local $amd = &read_amd_conf();
		local $m = "$_[0] $_[1]";
		if ($amd =~ /MOUNTPTS=''/) {
			$amd =~ s/MOUNTPTS=''/MOUNTPTS='$m'/;
			}
		else {
			$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$1 $m'/;
			}
		&write_amd_conf($amd);
		}
	elsif ($amd_support == 2) {
		# Adding a new automounter mount
		open(AMD, ">>$config{'auto_file'}");
		print AMD "\n";
		print AMD "[ $_[0] ]\n";
		print AMD "map_name = $_[1]\n";
		close(AMD);
		}
	}
elsif ($_[2] eq "autofs") {
	# Adding a new automounter mount
	open(AUTO, ">> $config{'autofs_file'}");
	print AUTO "$_[0]  $_[1]";
	if ($_[3]) { print AUTO "  ",&autofs_args($_[3]); }
	print AUTO "\n";
	close(AUTO);
	}
else {
	# Adding a normal mount to the fstab file
	local $dev = $_[1];
	$dev =~ s/\\/\//g if ($_[2] eq 'smbfs');
	open(FSTAB, ">> $config{fstab_file}");
	print FSTAB "$dev  $_[0]  $_[2]";
	$opts = $_[3] eq "-" ? "" : $_[3];
	if ($_[5] eq "no") {
		$opts = join(',' , (split(/,/ , $opts) , "noauto"));
		}
	if ($opts eq "") { print FSTAB "  defaults"; }
	else { print FSTAB "  $opts"; }
	print FSTAB "  0  ";
	print FSTAB $_[4] eq "-" ? "0\n" : "$_[4]\n";
	close(FSTAB);
	}
undef(@list_mounts_cache);
}


# change_mount(num, directory, device, type, options, fsck_order, mount_at_boot)
# Change an existing permanent mount
sub change_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $line !~ /\signore\s/ && $i++ == $_[0]) {
		# Found the line to replace
		print FSTAB "$_[2]  $_[1]  $_[3]";
		$opts = $_[4] eq "-" ? "" : $_[4];
		if ($_[6] eq "no") {
			$opts = join(',' , (split(/,/ , $opts) , "noauto"));
			}
		if ($opts eq "") { print FSTAB "  defaults"; }
		else { print FSTAB "  $opts"; }
		print FSTAB "  0  ";
		print FSTAB $_[5] eq "-" ? "0\n" : "$_[5]\n";
		}
	else { print FSTAB $_,"\n"; }
	}
close(FSTAB);

if ($amd_support == 1) {
	# Update older amd configuration
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		# found mount points line..
		local @mpts = split(/\s+/, $1);
		for($j=0; $j<@mpts; $j+=2) {
			if ($i++ == $_[0]) {
				$mpts[$j] = $_[1];
				$mpts[$j+1] = $_[2];
				}
			}
		local $mpts = join(" ", @mpts);
		$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$mpts'/;
		}
	&write_amd_conf($amd);
	}
elsif ($amd_support == 2) {
	# Update new amd configuration
	local @amd = &parse_amd_conf();
	local $lref = &read_file_lines($config{'auto_file'});
	foreach $am (@amd) {
		next if ($am->{'dir'} eq 'global');
		if ($i++ == $_[0]) {
			local @nl = ( "[ $_[1] ]" );
			local %opts = %{$am->{'opts'}};
			$opts->{'map_name'} = $_[2];
			foreach $o (keys %opts) {
				push(@nl, "$o = $opts{$o}");
				}
			splice(@$lref, $am->{'line'},
			       $am->{'eline'} - $am->{'line'} + 1, @nl);
			}
		}
	&flush_file_lines();
	}

# Update autofs configuration
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	@auto = <AUTO>;
	close(AUTO);
	open(AUTO, "> $config{'autofs_file'}");
	foreach (@auto) {
		chop; ($line = $_) =~ s/#.*$//g;
		if ($line =~ /\S/ && $i++ == $_[0]) {
			print AUTO "$_[1]  $_[2]";
			if ($_[4]) { print AUTO "  ",&autofs_args($_[4]); }
			print AUTO "\n";
			}
		else { print AUTO $_,"\n"; }
		}
	close(AUTO);
	}
undef(@list_mounts_cache);
}


# delete_mount(index)
# Delete an existing permanent mount
sub delete_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line !~ /\S/ || $line =~ /\signore\s/ || $i++ != $_[0]) {
		# Don't delete this line
		print FSTAB $_,"\n";
		}
	}
close(FSTAB);

if ($amd_support == 1) {
	# Update older amd configuration
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		# found mount points line..
		local @mpts = split(/\s+/, $1);
		for($j=0; $j<@mpts; $j+=2) {
			if ($i++ == $_[0]) {
				splice(@mpts, $j, 2);
				}
			}
		local $mpts = join(" ", @mpts);
		$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$mpts'/;
		}
	&write_amd_conf($amd);
	}
elsif ($amd_support == 2) {
	# Update new amd configuration
	local @amd = &parse_amd_conf();
	local $lref = &read_file_lines($config{'auto_file'});
	foreach $am (@amd) {
		next if ($am->{'dir'} eq 'global');
		if ($i++ == $_[0]) {
			splice(@$lref, $am->{'line'},
			       $am->{'eline'} - $am->{'line'} + 1);
			}
		}
	&flush_file_lines();
	}

# Update AMD file
if ($amd_support) {
	open(AMD, $config{auto_file});
	@amd = <AMD>;
	close(AMD);
	open(AMD, "> $config{auto_file}");
	foreach (@amd) {
		if (/MOUNTPTS='(.*)'/) {
			# found mount points line..
			@mpts = split(/\s+/, $1);
			for($j=0; $j<@mpts; $j+=2) {
				if ($i++ != $_[0]) {
					push(@nmpts, $mpts[$j]);
					push(@nmpts, $mpts[$j+1]);
					}
				}
			print AMD "MOUNTPTS='".join(' ', @nmpts)."'\n";
			}
		else { print AMD $_; }
		}
	close(AMD);
	}

# Update autofs file
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	@auto = <AUTO>;
	close(AUTO);
	open(AUTO, "> $config{'autofs_file'}");
	foreach (@auto) {
		chop; ($line = $_) =~ s/#.*$//g;
		if ($line !~ /\S/ || $i++ != $_[0]) {
			# keep this line
			print AUTO $_,"\n";
			}
		}
	close(AUTO);
	}
undef(@list_mounts_cache);
}


# list_mounted()
# Return a list of all the currently mounted filesystems and swap files.
# The list is in the form:
#  directory device type options
sub list_mounted
{
return @list_mounted_cache if (@list_mounted_cache);
local(@rv, @p, @o, $mo, $_, %smbopts);
local @mounts = &list_mounts();

&read_smbopts();
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	chop;
	s/#.*$//g; if (!/\S/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "auto" || $p[0] =~ /^\S+:\(pid\d+\)$/) {
		# Automounter map.. turn the map= option into the device
		@o = split(/,/ , $p[3]);
		($mo) = grep {/^map=/} (@o);
		$mo =~ /^map=(.*)$/; $p[0] = $1;
		$p[3] = join(',' , grep {!/^map=/} (@o));
		$p[2] = "auto";
		}
	elsif ($p[2] eq "autofs") {
		# Kernel automounter map.. use the pid to find the map
		$p[0] =~ /automount\(pid(\d+)\)/ || next;
		$out = `ps hwwww $1`;
		$out =~ /automount\s+(.*)\s*(\S+)\s+(file|program|yp)(,\S+)?\s+(\S+)/ || next;
		$p[0] = $5;
		$p[3] = $1 ? &autofs_options($1) : "-";
		}
	elsif ($p[2] eq "smbfs") {
		# Change from //FOO/BAR to \\foo\bar
		$p[0] =~ s/\//\\/g;
		$p[0] = lc($p[0]);
		$p[3] = $smbopts{$p[1]};
		}
	elsif ($p[2] eq "proc") {
		# The source for proc mounts is always proc
		$p[0] = "proc";
		}
	if ($p[2] eq 'ext2' && $has_e2label) {
		# Check for a label on this partition, and there is one
		# and this filesystem is in fstab with the label, change
		# the device.
		local $label = `e2label $p[0] 2>^1`;
		if (!$?) {
			chop($label);
			foreach $m (@mounts) {
				if ($m->[0] eq $p[1] &&
				    $m->[1] eq "LABEL=$label") {
					$p[0] = "LABEL=$label";
					last;
					}
				}
			}
		}
	# check fstab for a mount on the same dir which is a symlink
	# to the device
	local @st = stat($p[0]);
	foreach $m (@mounts) {
		if ($m->[0] eq $p[1]) {
			local @fst = stat($m->[1]);
			if ($fst[0] == $st[0] && $fst[1] == $st[1]) {
				# symlink to the same place!
				$p[0] = $m->[1];
				last;
				}
			}
		}
	push(@rv, [ $p[1], $p[0], $p[2], $p[3] ]);
	}
close(MTAB);
open(SWAPS, "/proc/swaps");
while(<SWAPS>) {
	chop;
	if (/^(\/\S+)\s+/) {
		push(@rv, [ "swap", $1, "swap", "-" ]);
		}
	}
close(SWAPS);
@list_mounted_cache = @rv;
return @rv;
}


# mount_dir(directory, device, type, options)
# Mount a new directory from some device, with some options. Returns 0 if ok,
# or an error string if failed
sub mount_dir
{
local($out, $opts, $shar, %options, %smbopts);
if ($_[2] eq "swap") {
	# Use swapon to add the swap space..
	$out = &backquote_logged("swapon $_[1] 2>&1");
	if ($out =~ /Invalid argument/) {
		# looks like this swap partition isn't ready yet.. set it up
		$out = &backquote_logged("mkswap $_[1] 2>&1");
		if ($?) { return "mkswap failed : <pre>$out</pre>"; }
		$out = &backquote_logged("swapon $_[1] 2>&1");
		}
	if ($?) { return "<pre>$out</pre>"; }
	}
elsif ($_[2] eq "auto") {
	# Old automounter filesystem
	$out = &backquote_logged("amd $_[0] $_[1] >/dev/null 2>/dev/null");
	if ($?) { return $text{'linux_eamd'}; }
	}
elsif ($_[2] eq "autofs") {
	# New automounter filesystem
	$opts = &autofs_args($_[3]);
	$type = $_[1] !~ /^\// ? "yp" :
		(-x $_[1]) ? "program" : "file";
	$out = &backquote_logged("automount $opts $_[0] $type $_[1] 2>&1");
	if ($?) { return &text('linux_eauto', "<pre>$out</pre>"); }
	}
elsif ($_[2] eq "smbfs") {
	local $shar = $_[1];
	$shar =~ s/\\/\//g;
	if ($smbfs_support >= 3) {
		# SMB filesystem mounted with mount command
		$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
		$out = &backquote_logged("mount -t $_[2] $opts $shar $_[0] 2>&1");
		if ($? || $out =~ /failed/i) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "mount -t $_[2] $opts $shar $_[0] : <pre>$out</pre>";
			}
		}
	elsif ($smbfs_support == 2) {
		# SMB filesystem mounted with version 2.x smbmount
		&parse_options("smbfs", $_[3]);
		$opts =
		    ($options{'user'} ? "-U $options{'user'} " : "").
		    ($options{'passwd'} ? "" : "-N ").
		    ($options{'workgroup'} ? "-W $options{'workgroup'} " : "").
		    ($options{'clientname'} ? "-n $options{'clientname'} " : "").
		    ($options{'machinename'} ? "-I $options{'machinename'} " : "");
		&foreign_require("proc", "proc-lib.pl");
		local ($fh, $fpid) = &foreign_call(
			"proc", "pty_process_exec_logged", "sh", "-c",
			"smbmount $shar $_[0] -d 0 $opts");
		if ($options{'passwd'}) {
			local $w = &wait_for($fh, "word:");
			if ($w < 0) {
				&system_logged("umount $_[0] >/dev/null 2>&1");
				return $text{'linux_esmbconn'};
				}
			local $p = "$options{'passwd'}\n";
			syswrite($fh, $p, length($p));
			}
		local $got;
		while(<$fh>) {
			$got .= $_;
			}
		if ($got =~ /failed/) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "<pre>$got</pre>\n";
			}
		close($fh);
		}
	elsif ($smbfs_support == 1) {
		# SMB filesystem mounted with older smbmount
		&parse_options("smbfs", $_[3]);
		$shortname = &get_system_hostname();
		if ($shortname =~ /^([^\.]+)\.(.+)$/) { $shortname = $1; }
		$opts =
		   ($options{servername} ? "-s $options{servername} " : "").
		   ($options{clientname} ? "-c $options{clientname} "
					 : "-c $shortname ").
		   ($options{machinename} ? "-I $options{machinename} " : "").
		   ($options{user} ? "-U $options{user} " : "").
		   ($options{passwd} ? "-P $options{passwd} " : "-n ").
		   ($options{uid} ? "-u $options{uid} " : "").
		   ($options{gid} ? "-g $options{gid} " : "").
		   ($options{fmode} ? "-f $options{fmode} " : "").
		   ($options{dmode} ? "-d $options{dmode} " : "");
		$out = &backquote_logged("smbmount $shar $_[0] $opts 2>&1");
		if ($out) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "<pre>$out</pre>";
			}
		}
	&read_smbopts();
	$smbopts{$_[0]} = $_[3] eq "-" ? "dummy=1" : $_[3];
	&write_smbopts();
	}
else {
	# some filesystem supported by mount
	$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
	if ($_[1] =~ /LABEL=(.*)/) {
		$cmd = "mount -t $_[2] -L $1 $opts $_[0]";
		}
	else {
		$cmd = "mount -t $_[2] $opts $_[1] $_[0]";
		}
	$out = &backquote_logged("$cmd 2>&1");
	if ($?) { return "<pre>$cmd : $out</pre>"; }
	}
undef(@list_mounted_cache);
return 0;
}


# unmount_dir(directory, device, type)
# Unmount a directory that is currently mounted. Returns 0 if ok,
# or an error string if failed
sub unmount_dir
{
local($out, %smbopts, $dir);
if ($_[2] eq "swap") {
	# Use swapoff to remove the swap space..
	$out = &backquote_logged("swapoff $_[1]");
	if ($?) { return "<pre>$out</pre>"; }
	}
elsif ($_[2] eq "auto") {
	# Kill the amd process
	$dir = $_[0];
	if (`cat /etc/mtab` =~ /:\(pid([0-9]+)\)\s+$dir\s+(auto|nfs)\s+/) {
		&kill_logged('TERM', $1) || return $text{'linux_ekillamd'};
		}
	sleep(2);
	}
elsif ($_[2] eq "autofs") {
	# Kill the automount process
	$dir = $_[0];
	`cat /etc/mtab` =~ /automount\(pid([0-9]+)\)\s+$dir\s+autofs\s+/;
	&kill_logged('TERM', $1) || return $text{'linux_ekillauto'};
	sleep(2);
	}
else {
	$out = &backquote_logged("umount $_[0] 2>&1");
	if ($?) { return "<pre>$out</pre>"; }
	if ($_[2] eq "smbfs") {
		# remove options from list
		&read_smbopts();
		delete($smbopts{$_[0]});
		&write_smbopts();
		}
	}
undef(@list_mounted_cache);
return 0;
}


# mount_modes(type)
# Given a filesystem type, returns 4 numbers that determine how the file
# system can be mounted, and whether it can be fsck'd
#  0 - cannot be permanently recorded
#	(smbfs under linux before 2.2)
#  1 - can be permanently recorded, and is always mounted at boot
#	(swap under linux)
#  2 - can be permanently recorded, and may or may not be mounted at boot
#	(most normal filesystems)
# The second is:
#  0 - mount is always permanent => mounted when saved
#	(swap under linux before 2.2)
#  1 - doesn't have to be permanent
#	(normal fs types)
# The third is:
#  0 - cannot be fsck'd at boot time
#  1 - can be be fsck'd at boot
# The fourth is:
#  0 - can be unmounted
#  1 - cannot be unmounted
sub mount_modes
{
if ($_[0] eq "swap")
	{ return (1, $swaps_support ? 1 : 0, 0, 0); }
elsif ($_[0] eq "auto" || $_[0] eq "autofs")
	{ return (1, 1, 0, 0); }
elsif ($_[0] eq "smbfs")
	{ return ($smbfs_support >= 3 ? 2 : 0, 1, 0, 0); }
elsif ($_[0] eq "ext2" || $_[0] eq "minix" || $_[0] eq "xiafs")
	{ return (2, 1, 1, 0); }
else
	{ return (2, 1, 0, 0); }
}


# disk_space(type, directory)
# Returns the amount of total and free space for some filesystem, or an
# empty array if not appropriate.
sub disk_space
{
if (&get_mounted($_[1], "*") < 0) { return (); }
if ($_[0] eq "proc" || $_[0] eq "swap" ||
    $_[0] eq "auto" || $_[0] eq "autofs") { return (); }
`df -k $_[1]` =~ /Mounted on\n\S+\s+(\S+)\s+\S+\s+(\S+)/;
return ($1, $2);
}


# list_fstypes()
# Returns an array of all the supported filesystem types. If a filesystem is
# found that is not one of the supported types, generate_location() and
# generate_options() will not be called for it.
sub list_fstypes
{
local @sup = ("ext2", "minix", "msdos", "nfs", "iso9660", "ext", "xiafs",
	      "hpfs", "fat", "vfat", "umsdos", "sysv", "reiserfs");
push(@sup, "smbfs") if ($smbfs_support);
push(@sup, "auto") if ($amd_support);
push(@sup, "autofs") if ($autofs_support);
push(@sup, "swap");
return @sup;
}


# fstype_name(type)
# Given a short filesystem type, return a human-readable name for it
sub fstype_name
{
local(%fsmap);
%fsmap = ("ext2","Linux Native Filesystem",
	  "minix","Minix Filesystem",
	  "msdos","MS-DOS Filesystem",
	  "nfs","Network Filesystem",
	  "smbfs","Windows Networking Filesystem",
	  "iso9660","ISO9660 CD-ROM",
	  "ext","Old EXT Linux Filesystem",
	  "xiafs","Old XIAFS Linux Filesystem",
	  "hpfs","OS/2 Filesystem",
	  "fat","MS-DOS Filesystem",
	  "vfat","Windows 95 Filesystem",
	  "umsdos","Linux on top of MS-DOS Filesystem",
	  "sysv","System V Filesystem",
	  "swap","Virtual Memory",
	  "proc","Kernel Filesystem",
	  "devpts","PTS Filesystem",
	  "auto",($autofs_support ? "Old " : "")."Automounter Filesystem",
	  "reiserfs","Reiser Filesystem",
	  "autofs","New Automounter Filesystem",
	  "usbdevfs","USB Devices",
	  "shm","SysV Shared Memory");
return $config{long_fstypes} && $fsmap{$_[0]} ? $fsmap{$_[0]} : uc($_[0]);
}


# multiple_mount(type)
# Returns 1 if filesystems of this type can be mounted multiple times, 0 if not
sub multiple_mount
{
return ($_[0] eq "nfs" || $_[0] eq "auto" || $_[0] eq "autofs");
}


# generate_location(type, location)
# Output HTML for editing the mount location of some filesystem.
sub generate_location
{
if ($_[0] eq "nfs") {
	# NFS mount from some host and directory
	$_[1] =~ /^([^:]+):(.*)$/;
	print "<tr> <td><b>$text{'linux_nfshost'}</b></td>\n";
	print "<td><input name=nfs_host size=20 value=\"$1\">\n";
	&nfs_server_chooser_button("nfs_host");
	print "&nbsp;<b>$text{'linux_nfsdir'}</b>\n";
	print "<input name=nfs_dir size=20 value=\"$2\">\n";
	&nfs_export_chooser_button("nfs_host", "nfs_dir");
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "auto") {
	# Using some automounter map
	print "<tr> <td><b>$text{'linux_map'}</b></td>\n";
	print "<td><input name=auto_map size=20 value=\"$_[1]\">\n";
	print &file_chooser_button("auto_map", 0);
	print "</td> <td colspan=2></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	# Using some kernel automounter map
	print "<tr> <td><b>$text{'linux_map'}</b></td>\n";
	print "<td><input name=autofs_map size=20 value=\"$_[1]\">\n";
	print &file_chooser_button("autofs_map", 0);
	print "</td> <td colspan=2></td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swap file or device
	&foreign_require("fdisk", "fdisk-lib.pl");
	printf "<tr> <td valign=top><b>$text{'linux_swapfile'}</b></td>\n";
	print "<td colspan=3>\n";
	local $found;
	local $sel = &foreign_call("fdisk", "partition_select", "lnx_disk",
				   $_[1], 3, \$found);
	printf "<input type=radio name=lnx_dev value=0 %s> %s %s<br>\n",
		$found ? "checked" : "", $text{'linux_disk'}, $sel;
	printf "<input type=radio name=lnx_dev value=1 %s> %s\n",
		$found ? "" : "checked", $text{'linux_swapfile'};
	printf "<input name=lnx_other size=35 value='%s'><br>\n",
		$found ? "" : $_[1];
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "smbfs") {
	# Windows filesystem
	$_[1] =~ /^\\\\(.*)\\(.*)$/;
	print "<tr> <td><b>$text{'linux_smbserver'}</b></td>\n";
	print "<td><input name=smbfs_server value=\"$1\" size=20>\n";
	&smb_server_chooser_button("smbfs_server");
	print "</td>\n";
	print "<td><b>$text{'linux_smbshare'}</b></td>\n";
	print "<td><input name=smbfs_share value=\"$2\" size=20>\n";
	&smb_share_chooser_button("smbfs_server", "smbfs_share");
	print "</td> </tr>\n";
	}
else {
	# This is some linux disk-based filesystem
	&foreign_require("fdisk", "fdisk-lib.pl");
	printf "<tr> <td valign=top><b>%s</b></td>\n", &fstype_name($_[0]);
	print "<td colspan=3>\n";
	local ($found, $rfound, $lfound, $rsel, $c);
	local $sel = &foreign_call("fdisk", "partition_select", "lnx_disk",
				   $_[1], 0, \$found);
	printf "<input type=radio name=lnx_dev value=0 %s> %s %s<br>\n",
		$found ? "checked" : "", $text{'linux_disk'}, $sel;

	if (&foreign_check("raid")) {
		&foreign_require("raid", "raid-lib.pl");
		local $conf = &foreign_call("raid", "get_raidtab");
		foreach $c (@$conf) {
			if ($c->{'active'}) {
				$rsel .= sprintf "<option value=%s %s>%s\n",
					$c->{'value'},
					$_[1] eq $c->{'value'} ? 'selected' : '',
					&text('linux_rdev', substr($c->{'value'}, -1));
				$rfound++ if ($_[1] eq $c->{'value'});
				}
			}
		if ($rsel) {
			printf "<input type=radio name=lnx_dev value=2 %s> %s\n",
				$rfound ? "checked" : " ", $text{'linux_raid'};
			print "<select name=lnx_raid>\n",$rsel,"</select><br>\n";
			}
		}

	if ($has_e2label) {
		local $l = $_[1] =~ /LABEL=(.*)/ ? $1 : undef;
		local $esel = &foreign_call("fdisk", "label_select",
					    "lnx_label", $l, \$lfound);
		if ($esel) {
			printf "<input type=radio name=lnx_dev value=3 %s> %s %s<br>\n", $lfound ? "checked" : "", $text{'linux_lsel'}, $esel;
			}
		}

	printf "<input type=radio name=lnx_dev value=1 %s> %s\n",
		$found || $rfound || $lfound ? "" : "checked", $text{'linux_other'};
	printf "<input name=lnx_other size=35 value='%s'><br>\n",
		$found || $rfound || $lfound ? "" : $_[1];
	print "</td> </tr>\n";
	}
}


# generate_options(type, newmount)
# Output HTML for editing mount options for a particular filesystem 
# under this OS
sub generate_options
{
if ($_[0] ne "swap" && $_[0] ne "auto" &&
    $_[0] ne "autofs" && $_[0] ne "smbfs") {
	# Lots of options are common to all linux filesystems
	print "<tr> <td><b>$text{'linux_ro'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_ro value=1 %s> $text{'yes'}\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=lnx_ro value=0 %s> $text{'no'}</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>$text{'linux_sync'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_sync value=0 %s> $text{'yes'}\n",
		defined($options{"sync"}) ? "" : "checked";
	printf "<input type=radio name=lnx_sync value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"sync"}) ? "checked" : "";

	print "<tr> <td><b>$text{'linux_nodev'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_nodev value=0 %s> $text{'yes'}\n",
		defined($options{"nodev"}) ? "" : "checked";
	printf "<input type=radio name=lnx_nodev value=1 %s> $text{'no'}</td>\n",
		defined($options{"nodev"}) ? "checked" : "";

	print "<td><b>$text{'linux_noexec'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_noexec value=0 %s> $text{'yes'}\n",
		defined($options{"noexec"}) ? "" : "checked";
	printf "<input type=radio name=lnx_noexec value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"noexec"}) ? "checked" : "";

	print "<tr> <td><b>$text{'linux_nosuid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_nosuid value=1 %s> $text{'yes'}\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=lnx_nosuid value=0 %s> $text{'no'}</td>\n",
		defined($options{"nosuid"}) ? "" : "checked";

	print "<td><b>$text{'linux_user'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_user value=1 %s> $text{'yes'}\n",
		defined($options{"user"}) ? "checked" : "";
	printf "<input type=radio name=lnx_user value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"user"}) ? "" : "checked";
	}
	
if ($_[0] eq "ext2") {
	# Ext2 has lots more options..
	print "<tr> <td><b>$text{'linux_check'}</b></td>\n";
	print "<td><select name=ext2_check>\n";
	printf "<option value=normal %s> $text{'linux_normal'}\n",
		$options{"check"} eq "" || $options{"check"} eq "normal" ?
			"selected" : "";
	printf "<option value=strict %s> $text{'linux_strict'}\n",
		$options{"check"} eq "strict" ? "selected" : "";
	printf "<option value=none %s> $text{'linux_none'}\n",
		$options{"check"} eq "none" || defined($options{"nocheck"}) ?
			"selected" : "";
	print "</select></td>\n";

	print "<td><b>$text{'linux_errors'}</b></td>\n";
	print "<td><select name=ext2_errors>\n";
	printf "<option value=default %s> $text{'default'}\n",
		!defined($options{"errors"}) ? "selected" : "";
	printf "<option value=continue %s> $text{'linux_continue'}\n",
		$options{"error"} eq "continue" ? "selected" : "";
	printf "<option value=remount-ro %s> $text{'linux_remount_ro'}\n",
		$options{"error"} eq "remount-ro" ? "selected" : "";
	printf "<option value=panic %s> $text{'linux_panic'}\n",
		$options{"error"} eq "panic" ? "selected" : "";
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_grpid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=ext2_grpid value=0 %s> $text{'yes'}\n",
		defined($options{"grpid"}) || defined($options{"bsdgroups"}) ?
			"" : "checked";
	printf "<input type=radio name=ext2_grpid value=1 %s> $text{'no'}</td>\n",
		defined($options{"grpid"}) || defined($options{"bsdgroups"}) ?
			"checked" : "";

	print "<td><b>$text{'linux_quotas'}</b></td>\n";
	local $usrquota = defined($options{"usrquota"});
	local $grpquota = defined($options{"grpquota"});
	print "<td nowrap><select name=ext2_quota>\n";
	printf "<option value=0 %s> $text{'no'}\n",
		$usrquota || $grpquota ? "" : "selected";
	printf "<option value=1 %s> $text{'linux_usrquota'}\n",
		$usrquota && !$grpquota ? "selected" : "";
	printf "<option value=2 %s> $text{'linux_grpquota'}\n",
		$grpquota && !$usrquota ? "selected" : "";
	if (`uname -r` =~ /^2\.0\.(\d+)/ && $1 < 31) {
		printf "<option value=3 %s> $text{'linux_usrgrpquota2'}\n",
			$usrquota && $grpquota ? "selected" : "";
		}
	else {
		printf "<option value=3 %s> $text{'linux_usrgrpquota'}\n",
			$usrquota && $grpquota ? "selected" : "";
		}
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_resuid'}</b></td>\n";
	printf "<td><input name=ext2_resuid size=8 value=\"%s\">\n",
		defined($options{"resuid"}) ? getpwuid($options{"resuid"}) : "";
	print &user_chooser_button("ext2_resuid", 0),"</td>\n";

	print "<td><b>$text{'linux_resgid'}</b></td>\n";
	printf "<td><input name=ext2_resgid size=8 value=\"%s\">\n",
		defined($options{"resgid"}) ? getgrgid($options{"resgid"}) : "";
	print &group_chooser_button("ext2_resgid", 0),"</td> </tr>\n";
	}
elsif ($_[0] eq "nfs") {
	# Linux nfs has some more options...
	print "<tr> <td><b>$text{'linux_bg'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_bg value=1 %s> $text{'yes'}\n",
		defined($options{"bg"}) ? "checked" : "";
	printf "<input type=radio name=nfs_bg value=0 %s> $text{'no'}</td>\n",
		defined($options{"bg"}) ? "" : "checked";

	print "<td><b>$text{'linux_soft'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_soft value=1 %s> $text{'yes'}\n",
		defined($options{"soft"}) ? "checked" : "";
	printf "<input type=radio name=nfs_soft value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"soft"}) ? "" : "checked";

	print "<tr> <td><b>$text{'linux_timeo'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_timeo_def value=1 %s> $text{'default'}\n",
		defined($options{"timeo"}) ? "" : "checked";
	printf "<input type=radio name=nfs_timeo_def value=0 %s>\n",
		defined($options{"timeo"}) ? "checked" : "";
	printf "<input size=5 name=nfs_timeo value=$options{timeo}></td>\n";

	print "<td><b>$text{'linux_retrans'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_retrans_def value=1 %s> $text{'default'}\n",
		defined($options{"retrans"}) ? "" : "checked";
	printf "<input type=radio name=nfs_retrans_def value=0 %s>\n",
		defined($options{"retrans"}) ? "checked" : "";
	print "<input size=5 name=nfs_retrans value=$options{retrans}></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_vers'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_vers_def value=1 %s> $text{'linux_high'}\n",
		defined($options{"nfsvers"}) ? "" : "checked";
	printf "<input type=radio name=nfs_vers_def value=0 %s>\n",
		defined($options{"nfsvers"}) ? "checked" : "";
	print "<input size=1 name=nfsvers value=$options{nfsvers}></td>\n";

	print "<td><b>$text{'linux_port'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_port_def value=1 %s> $text{'default'}\n",
		defined($options{"port"}) ? "" : "checked";
	printf "<input type=radio name=nfs_port_def value=0 %s>\n",
		defined($options{"port"}) ? "checked" : "";
	print "<input size=5 name=nfs_port value=$options{port}></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_intr'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_intr value=1 %s> $text{'yes'}\n",
		defined($options{"intr"}) ? "checked" : "";
	printf "<input type=radio name=nfs_intr value=0 %s> $text{'no'}</td>\n",
		defined($options{"intr"}) ? "" : "checked";

	print "<td><b>$text{'linux_tcp'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_tcp value=1 %s> TCP\n",
		defined($options{"tcp"}) ? "checked" : "";
	printf "<input type=radio name=nfs_tcp value=0 %s> UDP</td> </tr>\n",
		defined($options{"tcp"}) ? "" : "checked";
	}
elsif ($_[0] eq "fat" || $_[0] eq "vfat" || $_[0] eq "msdos" || $_[0] eq "umsdos"){
	# All dos-based filesystems share some options
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=fat_uid size=8 value=\"%s\">\n",
		defined($options{'uid'}) ? getpwuid($options{'uid'}) : "";
	print &user_chooser_button("fat_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=fat_gid size=8 value=\"%s\">\n",
		defined($options{'gid'}) ? getgrgid($options{'gid'}) : "";
	print &group_chooser_button("fat_gid", 0),"</td> </tr>\n";

	print "<tr> <td><b>$text{'linux_rules'}</b></td>\n";
	print "<td><select name=fat_check>\n";
	printf "<option value=\"\" %s> $text{'default'}\n",
		defined($options{"check"}) ? "" : "selected";
	printf "<option value=r %s> $text{'linux_relaxed'}\n",
		$options{"check"} =~ /^r/ ? "selected" : "";
	printf "<option value=n %s> $text{'linux_normal'}\n",
		$options{"check"} =~ /^n/ ? "selected" : "";
	printf "<option value=s %s> $text{'linux_strict'}\n",
		$options{"check"} =~ /^s/ ? "selected" : "";
	print "</select></td>\n";

	print "<td><b>$text{'linux_conv'}</b></td>\n";
	print "<td><select name=fat_conv>\n";
	printf "<option value=\"\" %s> $text{'linux_none'}\n",
		$options{"conv"} =~ /^b/ || !defined($options{"conv"}) ?
		"selected" : "";
	printf "<option value=t %s> $text{'linux_allfiles'}\n",
		$options{"conv"} =~ /^t/ ? "selected" : "";
	printf "<option value=a %s> $text{'linux_textfiles'}\n",
		$options{"conv"} =~ /^a/ ? "selected" : "";
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_umask'}</b></td>\n";
	printf "<td><input type=radio name=fat_umask_def value=1 %s> $text{'default'}\n",
		defined($options{"umask"}) ? "" : "checked";
	printf "<input type=radio name=fat_umask_def value=0 %s>\n",
		defined($options{"umask"}) ? "checked" : "";
	print "<input size=5 name=fat_umask value=\"$options{umask}\"></td>\n";

	print "<td><b>$text{'linux_quiet'}</b></td>\n";
	printf "<td nowrap><input type=radio name=fat_quiet value=0 %s> $text{'yes'}\n",
		defined($options{"quiet"}) ? "" : "checked";
	printf "<input type=radio name=fat_quiet value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"quiet"}) ? "checked" : "";

	if ($_[0] eq "vfat") {
		# vfat has some extra options beyond fat
		print "<tr> <td><b>$text{'linux_uni_xlate'}</b></td>\n";
		printf "<td><input type=radio name=fat_uni_xlate value=1 %s> $text{'yes'}\n",
			defined($options{"uni_xlate"}) ? "checked" : "";
		printf "<input type=radio name=fat_uni_xlate value=0 %s> $text{'no'}</td>\n",
			defined($options{"uni_xlate"}) ? "" : "checked";

		print "<td><b>$text{'linux_posix'}</b></td>\n";
		printf "<td nowrap><input type=radio name=fat_posix value=1 %s> $text{'yes'}\n",
			defined($options{"posix"}) ? "checked" : "";
		printf "<input type=radio name=fat_posix value=0 %s> $text{'no'}</td> </tr>\n",
			defined($options{"posix"}) ? "" : "checked";
		}
	}
elsif ($_[0] eq "hpfs") {
	# OS/2 filesystems has some more options..
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=hpfs_uid size=8 value=\"%s\">\n",
		defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
	print &user_chooser_button("hpfs_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=hpfs_gid size=8 value=\"%s\">\n",
		defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
	print &group_chooser_button("hpfs_gid", 0),"</td> </tr>\n";

	print "<tr> <td><b>$text{'linux_umask'}</b></td>\n";
	printf"<td><input type=radio name=hpfs_umask_def value=1 %s> Default\n",
		defined($options{"umask"}) ? "" : "checked";
	printf "<input type=radio name=hpfs_umask_def value=0 %s>\n",
		defined($options{"umask"}) ? "checked" : "";
	print "<input size=5 name=hpfs_umask value=\"$options{umask}\"></td>\n";

	print "<td><b>$text{'linux_conv2'}</b></td>\n";
	print "<td><select name=hpfs_conv>\n";
	printf "<option value=b %s> $text{'linux_none'}\n",
		$options{"conv"} =~ /^b/ || !defined($options{"conv"}) ?
		"selected" : "";
	printf "<option value=t %s> $text{'linux_allfiles'}\n",
		$options{"conv"} =~ /^t/ ? "selected" : "";
	printf "<option value=a %s> $text{'linux_textfiles'}\n",
		$options{"conv"} =~ /^a/ ? "selected" : "";
	print "</select></td> </tr>\n";
	}
elsif ($_[0] eq "iso9660") {
	# CD-ROM filesystems have some more options..
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=iso9660_uid size=8 value=\"%s\">\n",
		defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
	print &user_chooser_button("iso9660_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=iso9660_gid size=8 value=\"%s\">\n",
		defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
	print &group_chooser_button("iso9660_gid", 0),"</td>\n";

	print "<tr> <td><b>$text{'linux_rock'}</b></td>\n";
	printf "<td><input type=radio name=iso9660_norock value=1 %s> $text{'yes'}\n",
		defined($options{"norock"}) ? "checked" : "";
	printf "<input type=radio name=iso9660_norock value=0 %s> $text{'no'}</td>\n",
		defined($options{"norock"}) ? "" : "checked";

	print "<td><b>$text{'linux_mode'}</b></td>\n";
	printf"<td><input size=10 name=iso9660_mode value=\"%s\"></td> </tr>\n",
		defined($options{"mode"}) ? $options{"mode"} : "444";
	}
elsif ($_[0] eq "auto") {
	# Don't know how to set options for auto filesystems yet..
	print "<tr> <td><i>$text{'linux_noopts'}</i></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	print "<tr> <td><b>$text{'linux_timeout'}</b></td> <td>\n";
	printf"<input type=radio name=autofs_timeout_def value=1 %s> $text{'default'}\n",
		defined($options{'timeout'}) ? "" : "checked";
	printf "<input type=radio name=autofs_timeout_def value=0 %s>\n",
		defined($options{'timeout'}) ? "checked" : "";
	printf "<input name=autofs_timeout size=5 value=\"%s\"> $text{'linux_secs'}</td>\n",
		$options{'timeout'};

	print "<td><b>$text{'linux_pid_file'}</b>?</td>\n";
	printf"<td><input type=radio name=autofs_pid-file_def value=1 %s> $text{'no'}\n",
		defined($options{'pid-file'}) ? "" : "checked";
	printf "<input type=radio name=autofs_pid-file_def value=0 %s> $text{'yes'}\n",
		defined($options{'pid-file'}) ? "checked" : "";
	printf "<input name=autofs_pid-file size=20 value=\"%s\">\n",
		$options{'pid-file'};
	print &file_chooser_button("autofs_pid-file", 1);
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swap has no options..
	print "<tr> <td><i>$text{'linux_noopts'}</i></td> </tr>\n";
	}
elsif ($_[0] eq "smbfs") {
	# SMB filesystems have a few options..
	if (keys(%options) == 0 && !$_[1]) {
		print "<tr> <td colspan=4><i>$text{'linux_smbwarn'}</i></td> </tr>\n";
		}

	print "<tr> <td><b>$text{'linux_username'}</b></td>\n";
	printf "<td><input name=smbfs_user size=15 value=\"%s\"></td>\n",
		$smbfs_support == 4 ? $options{'username'} : $options{'user'};

	print "<td><b>$text{'linux_password'}</b></td>\n";
	printf "<td><input type=password name=smbfs_passwd size=15 value=\"%s\"></td> </tr>\n",
		$smbfs_support == 4 ? $options{'password'} : $options{'passwd'};

	if ($smbfs_support != 2) {
		print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
		printf "<td><input name=smbfs_uid size=8 value=\"%s\">\n",
			defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
		print &user_chooser_button("smbfs_uid", 0),"</td>\n";

		print "<td><b>$text{'linux_gid'}</b></td>\n";
		printf "<td><input name=smbfs_gid size=8 value=\"%s\">\n",
			defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
		print &group_chooser_button("smbfs_gid", 0),"</td>\n";
		}

	if ($smbfs_support == 1) {
		print "<tr> <td><b>$text{'linux_sname'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_sname_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"servername"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_sname_def value=0 %s>\n",
			defined($options{"servername"}) ? "checked" : "";
		print "<input size=10 name=smbfs_sname value=\"$options{servername}\"></td>\n";
		}
	elsif ($smbfs_support == 2) {
		print "<tr> <td><b>$text{'linux_wg'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_wg_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"workgroup"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_wg_def value=0 %s>\n",
			defined($options{"workgroup"}) ? "checked" : "";
		print "<input size=10 name=smbfs_wg value=\"$options{'workgroup'}\"></td>\n";
		}

	if ($smbfs_support < 3) {
		print "<td><b>$text{'linux_cname'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_cname_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"clientname"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_cname_def value=0 %s>\n",
			defined($options{"clientname"}) ? "checked" : "";
		print "<input size=10 name=smbfs_cname value=\"$options{clientname}\"></td> </tr>\n";

		print "<tr> <td><b>$text{'linux_mname'}</b></td>\n";
		printf "<td colspan=3><input type=radio name=smbfs_mname_def value=1 %s> %s\n",
			defined($options{"machinename"}) ? "" : "checked", $text{'linux_auto'};
		printf "<input type=radio name=smbfs_mname_def value=0 %s>\n",
			defined($options{"machinename"}) ? "checked" : "";
		print "<input size=30 name=smbfs_mname value=\"$options{machinename}\"></td> </tr>\n";
		}

	if ($smbfs_support == 1) {
		print "<tr> <td><b>$text{'linux_fmode'}</b></td>\n";
		printf
		    "<td><input name=smbfs_fmode size=5 value=\"%s\"></td>\n",
		    defined($options{'fmode'}) ? $options{'fmode'} : "755";

		print "<td><b>$text{'linux_dmode'}</b></td>\n";
		printf
		    "<td><input name=smbfs_dmode size=5 value=\"%s\"></td>\n",
		    defined($options{'dmode'}) ? $options{'dmode'} : "755";
		print "</tr>\n";
		}
	elsif ($smbfs_support >= 3) {
		print "<tr> <td><b>$text{'linux_ro'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_ro value=1 %s> $text{'yes'}\n",
			defined($options{"ro"}) ? "checked" : "";
		printf "<input type=radio name=smbfs_ro value=0 %s> $text{'no'}</td>\n",
			defined($options{"ro"}) ? "" : "checked";

		print "<td><b>$text{'linux_user'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_user2 value=1 %s> $text{'yes'}\n",
			defined($options{"user"}) ? "checked" : "";
		printf "<input type=radio name=smbfs_user2 value=0 %s> $text{'no'}</td> </tr>\n",
			defined($options{"user"}) ? "" : "checked";
		}
	}
elsif ($_[0] eq "reiserfs") {
	# Reiserfs is a new super-efficient filesystem
	print "<tr> <td><b>$text{'linux_notail'}</b></td>\n";
	printf "<td><input type=radio name=lnx_notail value=1 %s> $text{'yes'}\n",
		defined($options{"notail"}) ? "checked" : "";
	printf "<input type=radio name=lnx_notail value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"notail"}) ? "" : "checked";
	}
}


# check_location(type)
# Parse and check inputs from %in, calling &error() if something is wrong.
# Returns the location string for storing in the fstab file
sub check_location
{
if ($_[0] eq "nfs") {
	local($out, $temp, $mout, $dirlist);

	if (&has_command("showmount")) {
		# Use ping and showmount to see if the host exists and is up
		if ($in{nfs_host} !~ /^\S+$/) {
			&error(&text('linux_ehost', $in{'nfs_host'}));
			}
		$out = `ping -c 1 '$in{nfs_host}' 2>&1`;
		if ($out =~ /unknown host/) {
			&error(&text('linux_ehost2', $in{'nfs_host'}));
			}
		elsif ($out =~ /100\% packet loss/) {
			&error(&text('linux_edown', $in{'nfs_host'}));
			}
		$out = `showmount -e '$in{nfs_host}' 2>&1`;
		if ($out =~ /Unable to receive/) {
			&error(&text('linux_enfs', $in{'nfs_host'}));
			}
		elsif ($?) {
			&error(&text('linux_elist', $out));
			}

		# Validate directory name
		foreach (split(/\n/, $out)) {
			if (/^(\/\S+)/) { $dirlist .= "$1\n"; }
			}
		if ($in{nfs_dir} !~ /^\/\S+$/) {
			&error(&text('linux_enfsdir', $in{'nfs_dir'},
				     $in{'nfs_host'}, "<pre>$dirlist</pre>"));
			}
		}

	# Try a test mount to see if filesystem is available
	$temp = &tempname();
	mkdir($temp, 0755);
	$mout = `mount $in{nfs_host}:$in{nfs_dir} $temp 2>&1`;
	if ($mout =~ /No such file or directory/i) {
		rmdir($temp);
		&error(&text('linux_enfsdir', $in{'nfs_dir'},
			     $in{'nfs_host'}, "<pre>$dirlist</pre>"));
		}
	elsif ($mout =~ /Permission denied/i) {
		rmdir($temp);
		&error(&text('linux_enfsperm', $in{'nfs_dir'}, $in{'nfs_host'}));
		}
	elsif ($?) {
		rmdir($temp);
		&error(&text('linux_enfsmount', "<tt>$mout</tt>"));
		}
	# It worked! unmount
	`umount $temp`;
	rmdir($temp);

	return "$in{nfs_host}:$in{nfs_dir}";
	}
elsif ($_[0] eq "auto") {
	# Check if the automounter map exists..
	(-r $in{auto_map}) || &error(&text('linux_eautomap', $in{'auto_map'}));
	return $in{auto_map};
	}
elsif ($_[0] eq "autofs") {
	# Check if the map exists (if it is a file)
	if ($in{'autofs_map'} =~ /^\// && !(-r $in{'autofs_map'})) {
		&error(&text('linux_eautomap', $in{'autofs_map'}));
		}
	return $in{autofs_map};
	}
elsif ($_[0] eq "smbfs") {
	# No checking done
	return "\\\\".lc($in{'smbfs_server'})."\\".lc($in{'smbfs_share'});
	}
else {
	# This is some kind of disk-based linux filesystem.. get the device name
	if ($in{'lnx_dev'} == 0) {
		$dv = $in{'lnx_disk'};
		}
	elsif ($in{'lnx_dev'} == 2) {
		$dv = $in{'lnx_raid'};
		}
	elsif ($in{'lnx_dev'} == 3) {
		$dv = "LABEL=".$in{'lnx_label'};
		}
	else {
		$dv = $in{'lnx_other'};
		$dv || &error($text{'linux_edev'});
		}

	# If the device entered is a symlink, follow it
	#if ($dvlink = readlink($dv)) {
	#	if ($dvlink =~ /^\//) { $dv = $dvlink; }
	#	else {	$dv =~ /^(.*\/)[^\/]+$/;
	#		$dv = $1.$dvlink;
	#		}
	#	}

	# Check if the device actually exists and uses the right filesystem
	if (!-r $dv && $dv !~ /LABEL=/) {
		if ($_[0] eq "swap" && $dv !~ /\/dev/) {
			&swap_form($dv);
			}
		else {
			&error(&text('linux_edevfile', $dv));
			}
		}
	return $dv;
	}
}

# check_options(type, device, directory)
# Read options for some filesystem from %in, and use them to update the
# %options array. Options handled by the user interface will be set or
# removed, while unknown options will be left untouched.
sub check_options
{
local($k, @rv);

# Parse the common options first..
if ($_[0] ne "swap" && $_[0] ne "auto" &&
    $_[0] ne "autofs" && $_[0] ne "smbfs") {
	delete($options{"ro"}); delete($options{"rw"});
	if ($in{lnx_ro}) { $options{"ro"} = ""; }

	delete($options{"sync"}); delete($options{"async"});
	if ($in{lnx_sync}) { $options{"sync"} = ""; }

	delete($options{"dev"}); delete($options{"nodev"});
	if ($in{lnx_nodev}) { $options{"nodev"} = ""; }

	delete($options{"exec"}); delete($options{"noexec"});
	if ($in{lnx_noexec}) { $options{"noexec"} = ""; }

	delete($options{"suid"}); delete($options{"nosuid"});
	if ($in{lnx_nosuid}) { $options{"nosuid"} = ""; }

	delete($options{"user"}); delete($options{"nouser"});
	if ($in{lnx_user}) { $options{"user"} = ""; }
	}

if ($_[0] eq "nfs") {
	# NFS has a few specific options..
	delete($options{"bg"}); delete($options{"fg"});
	if ($in{nfs_bg}) { $options{"bg"} = ""; }

	delete($options{"soft"}); delete($options{"hard"});
	if ($in{nfs_soft}) { $options{"soft"} = ""; }

	delete($options{"timeo"});
	if (!$in{nfs_timeo_def}) { $options{"timeo"} = $in{nfs_timeo}; }

	delete($options{"nfsvers"});
	if (!$in{nfs_vers_def}) { $options{"nfsvers"} = $in{nfs_vers}; }

	delete($options{"port"});
	if (!$in{nfs_port_def}) { $options{"port"} = $in{nfs_port}; }

	delete($options{"intr"}); delete($options{"nointr"});
	if ($in{nfs_intr}) { $options{"intr"} = ""; }

	delete($options{"tcp"}); delete($options{"udp"});
	if ($in{nfs_tcp}) { $options{"tcp"} = ""; }
	}
elsif ($_[0] eq "ext2") {
	# More options for ext2..
	delete($options{"check"}); delete($options{"nocheck"});
	if ($in{ext2_check} ne "normal") {
		$options{"check"} = $in{ext2_check};
		}

	delete($options{"errors"});
	if ($in{ext2_errors} ne "default") {
		$options{"errors"} = $in{ext2_errors};
		}

	delete($options{"grpid"}); delete($options{"bsdgroups"});
	delete($options{"sysvgroups"}); delete($options{"nogrpid"});
	if ($in{ext2_grpid}) {
		$options{"grpid"} = "";
		}

	delete($options{"resuid"}); delete($options{"resgid"});
	if ($in{'ext2_resuid'})
		{ $options{"resuid"} = getpwnam($in{'ext2_resuid'}); }
	if ($in{'ext2_resgid'})
		{ $options{"resgid"} = getgrnam($in{'ext2_resgid'}); }

	delete($options{"quota"}); delete($options{"noquota"});
	delete($options{"usrquota"}); delete($options{"grpquota"});
	if ($in{'ext2_quota'} == 1) { $options{'usrquota'} = ""; }
	elsif ($in{'ext2_quota'} == 2) { $options{'grpquota'} = ""; }
	elsif ($in{'ext2_quota'} == 3)
		{ $options{'usrquota'} = $options{'grpquota'} = ""; }
	}
elsif ($_[0] eq "fat" || $_[0] eq "vfat" ||
       $_[0] eq "msdos" || $_[0] eq "umsdos") {
	# All dos-based filesystems have similar options
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{fat_uid} ne "") { $options{"uid"} = getpwnam($in{'fat_uid'}); }
	if ($in{fat_gid} ne "") { $options{"gid"} = getgrnam($in{'fat_gid'}); }

	delete($options{"check"});
	if ($in{fat_check} ne "") { $options{"check"} = $in{fat_check}; }

	delete($options{"conv"});
	if ($in{fat_conv} ne "") { $options{"conv"} = $in{fat_conv}; }

	delete($options{"umask"});
	if (!$in{fat_umask_def}) {
		$in{fat_umask} =~ /^[0-7]{3}$/ ||
			&error(&text('linux_emask', $in{'fat_umask'}));
		$options{"umask"} = $in{fat_umask};
		}

	delete($options{"quiet"});
	if ($in{fat_quiet}) {
		$options{"quiet"} = "";
		}

	if ($_[0] eq "vfat") {
		# Parse extra vfat options..
		delete($options{"uni_xlate"});
		if ($in{fat_uni_xlate}) { $options{"uni_xlate"} = ""; }

		delete($options{"posix"});
		if ($in{fat_posix}) { $options{"posix"} = ""; }
		}
	}
elsif ($_[0] eq "hpfs") {
	# OS/2 filesystem options..
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{hpfs_uid} ne "") { $options{"uid"} = getpwnam($in{hpfs_uid}); }
	if ($in{hpfs_gid} ne "") { $options{"gid"} = getgrnam($in{hpfs_gid}); }

	delete($options{"umask"});
	if (!$in{hpfs_umask_def}) {
		$in{hpfs_umask} =~ /^[0-7]{3}$/ ||
			&error(&text('linux_emask', $in{'hpfs_umask'}));
		$options{"umask"} = $in{hpfs_umask};
		}

	delete($options{"conv"});
	if ($in{hpfs_conv} ne "") { $options{"conv"} = $in{hpfs_conv}; }
	}
elsif ($_[0] eq "iso9660") {
	# Options for iso9660 cd-roms
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{iso9660_uid} ne "")
		{ $options{"uid"} = getpwnam($in{iso9660_uid}); }
	if ($in{iso9660_gid} ne "")
		{ $options{"gid"} = getgrnam($in{iso9660_gid}); }

	delete($options{"norock"});
	if ($in{iso9660_norock}) { $options{"norock"} = ""; }

	delete($options{"mode"});
	$in{iso9660_mode} =~ /^[0-7]{3}$/ ||
		&error(&text('linux_emask', $in{'iso9660_mode'}));
	$options{"mode"} = $in{iso9660_mode};
	}
elsif ($_[0] eq "autofs") {
	# Options for automounter filesystems
	delete($options{'timeout'});
	if (!$in{'autofs_timeout_def'}) {
		$in{'autofs_timeout'} =~ /^\d+$/ ||
			&error(&text('linux_etimeout', $in{'autofs_timeout'}));
		$options{'timeout'} = $in{'autofs_timeout'};
		}
	delete($options{'pid-file'});
	if (!$in{'autofs_pid-file_def'}) {
		$in{'autofs_pid-file'} =~ /^\/\S+$/ ||
		       &error(&text('linux_epidfile', $in{'autofs_pid-file'}));
		$options{'pid-file'} = $in{'autofs_pid-file'};
		}
	}
elsif ($_[0] eq "smbfs") {
	# Options for smb filesystems..
	delete($options{'user'}); delete($options{'username'});
	if ($in{smbfs_user}) {
		$options{$smbfs_support == 4 ? 'username' : 'user'} = $in{smbfs_user};
		}

	delete($options{'passwd'}); delete($options{'password'});
	if ($in{smbfs_passwd}) {
		$options{$smbfs_support == 4 ? 'password' : 'passwd'} = $in{smbfs_passwd};
		}

	if ($smbfs_support != 2) {
		delete($options{uid});
		if ($in{smbfs_uid} ne "") { $options{uid} = getpwnam($in{smbfs_uid}); }

		delete($options{gid});
		if ($in{smbfs_gid} ne "") { $options{gid} = getgrnam($in{smbfs_gid}); }
		}

	if ($smbfs_support == 1) {
		delete($options{servername});
		if (!$in{smbfs_sname_def})
			{ $options{servername} = $in{smbfs_sname}; }
		}
	elsif ($smbfs_support == 2) {
		delete($options{workgroup});
		if (!$in{smbfs_wg_def})
			{ $options{workgroup} = $in{smbfs_wg}; }
		}

	if ($smbfs_support < 3) {
		delete($options{clientname});
		if (!$in{smbfs_cname_def})
			{ $options{clientname} = $in{smbfs_cname}; }

		delete($options{machinename});
		if (!$in{smbfs_mname_def})
			{ $options{machinename} = $in{smbfs_mname}; }
		elsif (!gethostbyname($in{'smbfs_server'})) {
			# No hostname found for the server.. try to guess
			local($out, $sname);
			$sname = $in{'smbfs_server'};
			$out = `$config{'nmblookup_path'} -d 0 $sname 2>&1`;
			if (!$? && $out =~ /^([0-9\.]+)\s+$sname\n/) {
				$options{machinename} = $1;
				}
			}
		}

	if ($smbfs_support == 1) {
		delete($options{fmode});
		if ($in{smbfs_fmode} !~ /^[0-7]{3}$/) {
			&error(&text('linux_efmode', $in{'smbfs_fmode'}));
			}
		elsif ($in{smbfs_fmode} ne "755")
			{ $options{fmode} = $in{smbfs_fmode}; }

		delete($options{dmode});
		if ($in{smbfs_dmode} !~ /^[0-7]{3}$/) {
			&error(&text('linux_edmode', $in{'smbfs_dmode'}));
			}
		elsif ($in{smbfs_dmode} ne "755")
			{ $options{dmode} = $in{smbfs_dmode}; }
		}
	elsif ($smbfs_support >= 3) {
		delete($options{'ro'}); delete($options{'rw'});
		if ($in{'smbfs_ro'}) { $options{'ro'} = ''; }

		delete($options{'user'});
		if ($in{'smbfs_user2'}) { $options{'user'} = ''; }
		}
	}
elsif ($_[0] eq "reiserfs") {
	# Save reiserfs options
	delete($options{'notail'});
	$options{'notail'} = "" if ($in{'lnx_notail'});
	}

# Add loop option if mounting a normal file
if ($_[0] ne "swap" && $_[0] ne "auto" && $_[0] ne "autofs" &&
    $_[0] ne "smbfs" && $_[0] ne "nfs") {
	local(@st);
	@st = stat($_[1]);
	if (@st && ($st[2] & 0xF000) == 0x8000) {
		# a regular file.. add the loop option
		if (!$options{'loop'}) {
			$options{'loop'} = "";
			}
		}
	}

# Return options string
foreach $k (keys %options) {
	if ($options{$k} eq "") { push(@rv, $k); }
	else { push(@rv, "$k=$options{$k}"); }
	}
return @rv ? join(',' , @rv) : "-";
}


# Get the smbfs options from 'smbfs_opts' file in the current directory. This
# is sadly necessary because there is no way to get the current options for
# an existing smbfs mount... so webmin has to save them in a file when
# mounting. Blech.
sub read_smbopts
{
local($_);
open(SMBOPTS, "$module_config_directory/smbfs");
while(<SMBOPTS>) {
	/^(\S+)\s+(\S+)$/;
	$smbopts{$1} = $2;
	}
close(SMBOPTS);
}

sub write_smbopts
{
local($_);
open(SMBOPTS, "> $module_config_directory/smbfs");
foreach (keys %smbopts) {
	print SMBOPTS "$_\t$smbopts{$_}\n";
	}
close(SMBOPTS);
}


# create_swap(file, size, units)
# Calls dd and mkswap to setup a swap file
sub create_swap
{
local($out, $bl);
$bl = $_[1] * ($_[2] eq "m" ? 1024 : 1);
$out = `dd if=/dev/zero of=$_[0] bs=1024 count=$bl 2>&1`;
if ($?) { return "dd failed : $out"; }
$out = `mkswap $_[0] $bl 2>&1`;
if ($?) { return "mkswap failed : $out"; }
system("sync >/dev/null 2>&1");
return 0;
}

# exports_list(host, dirarray, clientarray)
# Fills the directory and client array references with exports from some
# host. Returns an error string if something went wrong
sub exports_list
{
local($dref, $cref, $out, $_);
$dref = $_[1]; $cref = $_[2];
$out = `showmount -e $_[0] 2>&1`;
if ($?) { return $out; }
foreach (split(/\n/, $out)) {
	if (/^(\/\S*)\s+(.*)$/) {
		push(@$dref, $1); push(@$cref, $2);
		}
	}
return undef;
}

# broadcast_addr()
# Returns a useable broadcast address for finding NFS servers
sub broadcast_addr
{
local($out);
$out = `ifconfig -a 2>&1`;
if ($out =~ /(eth|tr)\d\s+.*\n.*Bcast:(\S+)\s+/) { return $2; }
return "255.255.255.255";
}

# autofs_options(string)
# Converts a string of options line --timeout 60 to something like timeout=60
sub autofs_options
{
local(@options);
if ($_[0] =~ /--timeout\s+(\d+)/ || $_[0] =~ /-t\s+(\d+)/) {
	push(@options, "timeout=$1");
	}
if ($_[0] =~ /--pid-file\s+(\S+)/ || $_[0] =~ /-p\s+(\d+)/) {
	push(@options, "pid-file=$1");
	}
return join(',', @options);
}

# autofs_args(string)
# Convert a comma-separated options string into args for automount
sub autofs_args
{
local(%options, $args);
&parse_options("autofs", $_[0]);
if (defined($options{'timeout'})) {
	$args .= " --timeout $options{'timeout'}";
	}
if (defined($options{'pid-file'})) {
	$args .= " --pid-file $options{'pid-file'}";
	}
return $args;
}

# read_amd_conf()
# Returns the entire amd config file as a string
sub read_amd_conf
{
local $sl = $/;
$/ = undef;
open(AMD, $config{'auto_file'});
local $rv = <AMD>;
close(AMD);
$/ = $sl;
return $rv;
}

# write_amd_conf(text)
sub write_amd_conf
{
open(AMD, ">$config{'auto_file'}");
print AMD $_[0];
close(AMD);
}

# parse_amd_conf()
# Parses a new-style amd.conf file into a hashtable
sub parse_amd_conf
{
local (@rv, $str, $lnum);
open(AMD, $config{'auto_file'});
while(<AMD>) {
	s/\r|\n//g;
	s/#.*$//g;
	if (/\[\s*(\S+)\s*\]/) {
		$str = { 'dir' => $1,
			 'line' => $lnum,
			 'eline' => $lnum };
		push(@rv, $str);
		}
	elsif (/(\S+)\s*=\s*"(.*)"/ || /(\S+)\s*=\s*(\S+)/) {
		$str->{'opts'}->{$1} = $2;
		$str->{'eline'} = $lnum;
		}
	$lnum++;
	}
close(AMD);
return @rv;
}

# device_name(device)
# Converts a device name to a human-readable form
sub device_name
{
if (!$text{'select_part'}) {
	local %flang = &load_language('fdisk');
	$text{'select_part'} = $flang{'select_part'};
	$text{'select_mpart'} = $flang{'select_mpart'};
	$text{'select_device'} = $flang{'select_device'};
	$text{'select_fd'} = $flang{'select_fd'};
	}
return $_[0] =~ /^\/dev\/(s|h)d([a-z])(\d+)$/ ?
	&text('select_part', $1 eq 's' ? 'SCSI' : 'IDE', uc($2), "$3") :
       $_[0] =~ /^\/dev\/(s|h)d([a-z])$/ ?
	&text('select_device', $1 eq 's' ? 'SCSI' : 'IDE', uc($2)) :
       $_[0] =~ /rd\/c(\d+)d(\d+)p(\d+)$/ ?
	&text('select_mpart', "$1", "$2", "$3") :
       $_[0] =~ /fd(\d+)$/ ?
	&text('select_fd', "$1") :
       $_[0] =~ /md(\d+)$/ ?
	&text('linux_rdev', "$1") :
       $_[0] =~ /LABEL=(\S+)/i ?
	&text('linux_label', "$1") :
       $_[0] eq '/dev/cdrom' ?
	$text{'linux_cddev'} :
	$_[0];
}

sub files_to_lock
{
return ( $config{'fstab_file'}, $config{'autofs_file'}, $config{'auto_file'} );
}

1;

07070100007751000081e40000000000000002000000013ac0388c0000e0b8000000200000000000000000000000000000001c00000003reloc/mount/unixware-lib.pl   # unixware-lib.pl
# Filesystem functions for UnixWare (works for me on 7.0.1)

# Return information about a filesystem, in the form:
#  directory, device, type, options, fsck_order, mount_at_boot
# If a field is unused or ignored, a - appears instead of the value.
# Swap-filesystems (devices or files mounted for VM) have a type of 'swap',
# and 'swap' in the directory field
sub list_mounts
{
local(@rv, @p, $_, $i); $i = 0;

# List normal filesystem mounts
open(FSTAB, $config{fstab_file});
while(<FSTAB>) {
	chop; s/#.*$//g;
	if (!/\S/) { next; }
	@p = split(/\s+/, $_);
	if ($p[3] eq "swap") { $p[2] = "swap"; }
	$rv[$i++] = [ $p[2], $p[0], $p[3], $p[6], $p[4], $p[5] ];
	}
close(FSTAB);

# List automount points
open(AUTOTAB, $config{autofs_file});
while(<AUTOTAB>) {
	chop; s/#.*$//g;
	if (!/\S/ || /^[+\-]/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "") { $p[2] = "-"; }
	else { $p[2] =~ s/^-//g; }
	$rv[$i++] = [ $p[0], $p[1], "autofs", $p[2], "-", "yes" ];
	}
close(AUTOTAB);

return @rv;
}


# create_mount(directory, device, type, options, fsck_order, mount_at_boot)
# Add a new entry to the fstab file, and return the index of the new entry
sub create_mount
{
local($len, @mlist, $fcsk, $dir);
if ($_[2] eq "autofs") {
	# An autofs mount.. add to /etc/auto_master
	$len = grep { $_->[2] eq "autofs" } (&list_mounts());
	open(AUTOTAB, ">> $config{autofs_file}");
	print AUTOTAB "$_[0] $_[1]",($_[3] eq "-" ? "" : " -$_[3]"),"\n";
	close(AUTOTAB);
	}
else {
	# Add to the fstab file
	$len = grep { $_->[2] ne "autofs" } (&list_mounts());
	open(FSTAB, ">> $config{fstab_file}");
	if ($_[2] eq "ufs" || $_[2] eq "s5fs") {
		($fsck = $_[1]) =~ s/\/dsk\//\/rdsk\//g;
		}
	else { $fsck = "-"; }
	if ($_[2] eq "swap") { $dir = "-"; }
	else { $dir = $_[0]; }
	print FSTAB "$_[1]  $fsck  $dir  $_[2]  $_[4]  $_[5]  $_[3]\n";
	close(FSTAB);
	}
return $len;
}


# delete_mount(index)
# Delete some mount from the table
sub delete_mount
{
local(@fstab, $i, $line, $_);
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
$i = 0;

open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $i++ == $_[0]) {
		# found the line not to include
		}
	else { print FSTAB $_,"\n"; }
	}
close(FSTAB);

open(AUTOTAB, $config{autofs_file});
@autotab = <AUTOTAB>;
close(AUTOTAB);
open(AUTOTAB, "> $config{autofs_file}");
foreach (@autotab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $line !~ /^[+\-]/ && $i++ == $_[0]) {
		# found line not to include..
		}
	else { print AUTOTAB $_,"\n"; }
	}
close(AUTOTAB);
}


# change_mount(num, directory, device, type, options, fsck_order, mount_at_boot)
# Change an existing permanent mount
sub change_mount
{
local(@fstab, @autotab, $i, $line, $fsck, $dir, $_);
$i = 0;

open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $i++ == $_[0]) {
		# Found the line to replace
		if ($_[3] eq "ufs" || $_[3] eq "s5fs") {
			($fsck = $_[2]) =~ s/\/dsk\//\/rdsk\//g;
			}
		else { $fsck = "-"; }
		if ($_[3] eq "swap") { $dir = "-"; }
		else { $dir = $_[1]; }
		print FSTAB "$_[2]  $fsck  $dir  $_[3]  $_[5]  $_[6]  $_[4]\n";
		}
	else { print FSTAB $_,"\n"; }
	}
close(FSTAB);

open(AUTOTAB, $config{autofs_file});
@autotab = <AUTOTAB>;
close(AUTOTAB);
open(AUTOTAB, "> $config{autofs_file}");
foreach (@autotab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $line !~ /^[+\-]/ && $i++ == $_[0]) {
		# Found the line to replace
		print AUTOTAB "$_[1]  $_[2]  ",
				($_[4] eq "-" ? "" : "-$_[4]"),"\n";
		}
	else { print AUTOTAB $_,"\n"; }
	}
close(AUTOTAB);
}


# list_mounted()
# Return a list of all the currently mounted filesystems and swap files.
# The list is in the form:
#  directory device type options
# For swap files, the directory will be 'swap'
sub list_mounted
{
local(@rv, @p, $_, $i, $r);
foreach (split(/\n/, `swap -l`)) {
	if (/^(\/\S+)\s+/) { push(@rv, [ "swap", $1, "swap", "-" ]); }
	}
foreach (split(/\n/, `cat /etc/mnttab`)) {
	s/#.*$//g; if (!/\S/) { next; }
	@p = split(/\s+/, $_);
	if ($p[0] =~ /:vold/) { next; }
	if ($p[0] =~ /^rumba-(\d+)$/) {
		# rumba smb mount
		local($args, $ps); $p[3] = "pid=$1";
		$ps = (-x "/usr/ucb/ps") ? "/usr/ucb/ps auwwwwx $1"
				 	 : "ps -o args -f $1";
		`$ps` =~ /rumba\s+\/\/([^\/]+)\/(.*\S)\s+(\/\S+)(.*)/ || next;
		$serv = $1; $shar = $2; $p[2] = "rumba"; $args = $4;
		if ($args =~ /\s+-s\s+(\S+)/ && $1 ne $serv) {
			$p[0] = "\\\\$1\\$shar";
			$p[3] .= ",machinename=$serv";
			}
		else { $p[0] = "\\\\$serv\\$shar"; }
		if ($args =~ /\s+-c\s+(\S+)/) { $p[3] .= ",clientname=$1"; }
		if ($args =~ /\s+-U\s+(\S+)/) { $p[3] .= ",username=$1"; }
		if ($args =~ /\s+-u\s+(\S+)/) { $p[3] .= ",uid=$1"; }
		if ($args =~ /\s+-g\s+(\S+)/) { $p[3] .= ",gid=$1"; }
		if ($args =~ /\s+-f\s+(\S+)/) { $p[3] .= ",fmode=$1"; }
		if ($args =~ /\s+-d\s+(\S+)/) { $p[3] .= ",dmode=$1"; }
		if ($args =~ /\s+-C/) { $p[3] .= ",noupper"; }
		if ($args =~ /\s+-P\s+(\S+)/) { $p[3] .= ",password=$1"; }
		if ($args =~ /\s+-S/) { $p[3] .= ",readwrite"; }
		if ($args =~ /\s+-w/) { $p[3] .= ",readonly"; }
		if ($args =~ /\s+-e/) { $p[3] .= ",attr"; }
		}
	else { $p[3] = join(',' , (grep {!/^dev=/} split(/,/ , $p[3]))); }
	push(@rv, [ $p[1], $p[0], $p[2], $p[3] ]);
	}
foreach $r (@rv) {
	if ($r->[2] eq "cachefs" && $r->[1] =~ /\.cfs_mnt_points/) {
		# Oh no.. a caching filesystem mount. Fiddle things so that
		# it looks right.
		for($i=0; $i<@rv; $i++) {
			if ($rv[$i]->[0] eq $r->[1]) {
				# Found the automatically mounted entry. lose it
				$r->[1] = $rv[$i]->[1];
				splice(@rv, $i, 1);
				last;
				}
			}
		}
	}
return @rv;
}


# mount_dir(directory, device, type, options)
# Mount a new directory from some device, with some options. Returns 0 if ok,
# or an error string if failed. If the directory is 'swap', then mount as
# virtual memory.
sub mount_dir
{
local($out, $opts);
if ($_[0] eq "swap") {
	# Adding a swap device
	$out = &backquote_logged("swap -a $_[1] 2>&1");
	if ($?) { return $out; }
	}
else {
	# Mounting a directory
	if ($_[2] eq "cachefs") {
		# Mounting a caching filesystem.. need to create cache first
		local(%options);
		&parse_options("cachefs", $_[3]);
		if (!(-r "$options{cachedir}/.cfs_resource")) {
			# The cache directory does not exist.. set it up
			if (-d $options{cachedir} &&
			    !rmdir($options{"cachedir"})) {
				return "The directory $options{cachedir} ".
				       "already exists. Delete it";
				}
			$out = &backquote_logged("cfsadmin -c $options{cachedir} 2>&1");
			if ($?) { return $out; }
			}
		}
	if ($_[2] eq "rumba") {
		# call 'rumba' to mount
		local(%options, $shortname, $shar, $opts, $rv);
		&parse_options("rumba", $_[3]);
		$shortname = &get_system_hostname();
		if ($shortname =~ /^([^\.]+)\.(.+)$/) { $shortname = $1; }
		$_[1] =~ /^\\\\(.+)\\(.+)$/;
		$shar = "//".($options{machinename} ?$options{machinename} :$1).
			"/$2";
		$opts = ("-s $1 ").
		 (defined($options{'clientname'}) ?
			"-c $options{'clientname'} " : "-c $shortname ").
		 (defined($options{'username'}) ?
			"-U $options{'username'} " : "").
		 (defined($options{'uid'}) ? "-u $options{'uid'} " : "").
		 (defined($options{'gid'}) ? "-g $options{'gid'} " : "").
		 (defined($options{'fmode'}) ? "-f $options{'fmode'} " : "").
		 (defined($options{'dmode'}) ? "-d $options{'dmode'} " : "").
		 (defined($options{'noupper'}) ? "-C " : "").
		 (defined($options{'password'}) ?
			"-P $options{'password'} " : "-n ").
		 (defined($options{'readwrite'}) ? "-S " : "").
		 (defined($options{'readonly'}) ? "-w " : "").
		 (defined($options{'attr'}) ? "-e " : "");
		local $rtemp = &tempname();
		$rv = system("rumba \"$shar\" $_[0] $opts >$rtemp 2>&1 </dev/null");
		$out = `cat $rtemp`; unlink($rtemp);
		if ($rv) { return "<pre>$out</pre> : rumba \"$shar\" $_[0] $opts"; }
		}
	else {
		$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
		$out = &backquote_logged("mount -F $_[2] $opts -- $_[1] $_[0] 2>&1");
		if ($?) { return $out; }
		}
	}
return 0;
}


# unmount_dir(directory, device, type)
# Unmount a directory (or swap device) that is currently mounted. Returns 0 if
# ok, or an error string if failed
sub unmount_dir
{
if ($_[0] eq "swap") {
	$out = &backquote_logged("swap -d $_[1] 2>&1");
	}
elsif ($_[2] eq "rumba") {
	# kill the process (if nobody is in the directory)
	$dir = $_[0];
	if (`fuser -c $_[0] 2>/dev/null` =~ /\d/) { return "$_[0] is busy"; }
	if (`cat /etc/mnttab` =~ /rumba-(\d+)\s+$dir\s+nfs/) {
		&kill_logged('TERM', $1) || return "Failed to kill rumba";
		}
	else { return "Failed to find rumba pid"; }
	sleep(1);
	}
else {
	$out = &backquote_logged("umount $_[0] 2>&1");
	}
if ($?) { return $out; }
return 0;
}


# disk_space(type, directory)
# Returns the amount of total and free space for some filesystem, or an
# empty array if not appropriate.
sub disk_space
{
if (&get_mounted($_[1], "*") < 0) { return (); }
if ($_[0] eq "fd" || $_[0] eq "proc" || $_[0] eq "swap" || $_[0] eq "autofs") {
	return ();
	}
`df -k $_[1]` =~ /Mounted on\n\S+\s+(\S+)\s+\S+\s+(\S+)/;
return ($1, $2);
}


# list_fstypes()
# Returns an array of all the supported filesystem types. If a filesystem is
# found that is not one of the supported types, generate_location() and
# generate_options() will not be called for it.
sub list_fstypes
{
local(@fs);
@fs = ("vxfs", "ufs", "nfs", "hsfs", "pcfs", "lofs", "cachefs", "swap", "tmpfs", "autofs");
if (&has_command("rumba")) { push(@fs, "rumba"); }
return @fs;
}


# fstype_name(type)
# Given a short filesystem type, return a human-readable name for it
sub fstype_name
{
local(%fsmap);
%fsmap = ("vxfs", "Veritas Filesystem",
	  "ufs","Unix Filesystem",
	  "nfs","Network Filesystem",
	  "hsfs","ISO9660 CD-ROM",
	  "pcfs","MS-DOS Filesystem",
	  "lofs","Loopback Filesystem",
	  "cachefs","Caching Filesystem",
	  "swap","Virtual Memory",
	  "tmpfs","Ram Disk",
	  "autofs","Automounter Filesystem",
	  "proc","Process Image Filesystem",
	  "fd","File Descriptor Filesystem",
	  "rumba","Windows Networking Filesystem");
return $config{long_fstypes} && $fsmap{$_[0]} ? $fsmap{$_[0]} : uc($_[0]);
}


# mount_modes(type)
# Given a filesystem type, returns 4 numbers that determine how the file
# system can be mounted, and whether it can be fsck'd
#  0 - cannot be permanently recorded
#  1 - can be permanently recorded, and is always mounted at boot
#  2 - can be permanently recorded, and may or may not be mounted at boot
# The second is:
#  0 - mount is always permanent => mounted when saved
#  1 - doesn't have to be permanent
# The third is:
#  0 - cannot be fsck'd at boot time
#  1 - can be be fsck'd at boot time
# The fourth is:
#  0 - can be unmounted
#  1 - cannot be unmounted
sub mount_modes
{
if ($_[0] eq "vxfs" || $_[0] eq "ufs" || $_[0] eq "cachefs" || $_[0] eq "s5fs")
   { return (2, 1, 1, 0); }
elsif ($_[0] eq "rumba") { return (0, 1, 0, 0); }
else { return (2, 1, 0, 0); }
}


# multiple_mount(type)
# Returns 1 if filesystems of this type can be mounted multiple times, 0 if not
sub multiple_mount
{
return ($_[0] eq "vxfs" || $_[0] eq "nfs" || $_[0] eq "tmpfs" || $_[0] eq "cachefs" || $_[0] eq "autofs" || $_[0] eq "lofs" || $_[0] eq "rumba");
}


# generate_location(type, location)
# Output HTML for editing the mount location of some filesystem.
sub generate_location
{
if ($_[0] eq "nfs") {
	# NFS mount from some host and directory
	if ($_[1] =~ /^nfs:/) { $nfsmode = 2; }
	elsif (!$_[1] || $_[1] =~ /^([A-z0-9\-\.]+):([^,]+)$/) {
		$nfsmode = 0; $nfshost = $1; $nfspath = $2;
		}
	else { $nfsmode = 1; }
	if ($gconfig{'os_version'} >= 2.6) {
		# UnixWare 7 can list multiple NFS servers in mount
		print "<tr> <td><b>NFS Source</b></td>\n";
		printf "<td><input type=radio name=nfs_serv value=0 %s>\n",
			$nfsmode == 0 ? "checked" : "";
		print "<b>NFS Hostname</b></td>\n";
		print "<td><input name=nfs_host size=20 value=\"$nfshost\">\n";
		&nfs_server_chooser_button("nfs_host");
		print "&nbsp;<b>NFS Directory</b>\n";
		print "<input name=nfs_dir size=20 value=\"$nfspath\">\n";
		&nfs_export_chooser_button("nfs_host", "nfs_dir");
		print "</td> </tr>\n";

		print "<tr> <td></td>\n";
		printf "<td><input type=radio name=nfs_serv value=1 %s>\n",
			$nfsmode == 1 ? "checked" : "";
		print "<b>Multiple NFS Servers</b></td>\n";
		printf "<td><input name=nfs_list size=40 value=\"%s\">\n",
			$nfsmode == 1 ? $_[1] : "";
		print "</td> </tr>\n";

		if ($gconfig{'os_version'} >= 7) {
			print "<tr> <td></td> <td>\n";
			printf "<input type=radio name=nfs_serv value=2 %s>\n",
				$nfsmode == 2 ? "checked" : "";
			print "<b>WebNFS URL</b></td> <td>\n";
			printf "<input name=nfs_url size=40 value=\"%s\">\n",
				$nfsmode == 2 ? $_[1] : "";
			print "</td> </tr>\n";
			}
		}
	else {
		print "<tr> <td><b>NFS Hostname</b></td>\n";
		print "<td><input name=nfs_host size=20 value=\"$nfshost\">\n";
		&nfs_server_chooser_button("nfs_host");
		print "</td>\n";
		print "<td><b>NFS Directory</b></td>\n";
		print "<td><input name=nfs_dir size=20 value=\"$nfspath\">\n";
		&nfs_export_chooser_button("nfs_host", "nfs_dir");
		print "</td> </tr>\n";
		}
	}
elsif ($_[0] eq "tmpfs") {
	# Location is irrelevant for tmpfs filesystems
	}
elsif ($_[0] eq "ufs") {
	# Mounted from a normal disk, raid (MD) device or from
	# somewhere else
	print "<tr> <td valign=top><b>UFS Disk</b></td>\n";
	print "<td colspan=3>\n";
	if ($_[1] =~ /^\/dev\/dsk\/c([0-9]+)t([0-9]+)d([0-9]+)s([0-9]+)$/) {
		$ufs_dev = 0;
		$scsi_c = $1; $scsi_t = $2; $scsi_d = $3; $scsi_s = $4;
		}
	elsif ($_[1] eq "") {
		$ufs_dev = 0; $scsi_c = $scsi_t = $scsi_s = $scsi_d = 0;
		}
	elsif ($_[1] =~ /^\/dev\/md\/dsk\/d([0-9]+)$/) {
		$ufs_dev = 1; $scsi_md = $1;
		}
	else {
		$ufs_dev = 2; $scsi_path = $_[1];
		}
	printf "<input type=radio name=ufs_dev value=0 %s> SCSI Disk:\n",
		$ufs_dev == 0 ? "checked" : "";
	print "Controller <input name=ufs_c size=3 value=\"$scsi_c\">\n";
	print "Target <input name=ufs_t size=3 value=\"$scsi_t\">\n";
	print "Unit <input name=ufs_d size=3 value=\"$scsi_d\">\n";
	print "Partition <input name=ufs_s size=3 value=\"$scsi_s\"><br>\n";

	printf "<input type=radio name=ufs_dev value=1 %s> RAID Device:\n",
		$ufs_dev == 1 ? "checked" : "";
	print "Unit <input name=ufs_md size=3 value=\"$scsi_md\"><br>\n";

	printf "<input type=radio name=ufs_dev value=2 %s> Other Device:\n",
		$ufs_dev == 2 ? "checked" : "";
	print "<input name=ufs_path size=20 value=\"$scsi_path\"><br>\n";
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "vxfs") {
	# Mounted from a normal disk, LVM device or from
	# somewhere else
	print "<tr> <td valign=top><b>VXFS Device</b></td>\n";
	print "<td colspan=3>\n";
	if ($_[1] =~ /^\/dev\/dsk\/c([0-9]+)t([0-9]+)d([0-9]+)s([0-9]+)$/) {
		$jfs_dev = 0;
		$scsi_c = $1; $scsi_t = $2; $scsi_d = $3; $scsi_s = $4;
		}
	elsif ($_[1] eq "") {
		$jfs_dev = 0; $scsi_c = $scsi_t = $scsi_s = $scsi_d = 0;
		}
	elsif ($_[1] =~ /^\/dev\/vg([0-9]+)\/(\S+)/) {
		$jfs_dev = 1; $scsi_vg = $1; $scsi_lv = $2;
		}
	else {
		$jfs_dev = 2; $scsi_path = $_[1];
		}
	$scsi_path = $_[1];

	printf "<input type=radio name=jfs_dev value=0 %s> SCSI Disk:\n",
		$jfs_dev == 0 ? "checked" : "";
	print "Controller <input name=jfs_c size=3 value=\"$scsi_c\">\n";
	print "Target <input name=jfs_t size=3 value=\"$scsi_t\">\n";
	print "Unit <input name=jfs_d size=3 value=\"$scsi_d\">\n";
	print "Partition <input name=jfs_s size=3 value=\"$scsi_s\"><br>\n";

	printf "<input type=radio name=jfs_dev value=1 %s> LVM Device:\n",
		$jfs_dev == 1 ? "checked" : "";
	print "Volume Group <input name=jfs_vg size=2 value=\"$scsi_vg\">\n";
	print "Logical Volume <input name=jfs_lv size=20 value=\"$scsi_lv\"><br>\n";

	printf "<input type=radio name=jfs_dev value=2 %s> Other Device:\n",
		$jfs_dev == 2 ? "checked" : "";
	print "<input name=jfs_path size=20 value=\"$scsi_path\">";
        print &file_chooser_button("jfs_path", 0);
        print "<br>\n";
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swapping to a disk partition or a file
	print "<tr> <td valign=top><b>Swap File</b></td>\n";
	print "<td colspan=3>\n";
	if ($_[1] =~ /^\/dev\/dsk\/c([0-9]+)t([0-9]+)d([0-9]+)s([0-9]+)$/) {
		$swap_dev = 0;
		$scsi_c = $1; $scsi_t = $2; $scsi_d = $3; $scsi_s = $4;
		}
	elsif ($_[1] eq "") {
		$swap_dev = 1; $scsi_path = "";
		}
	else {
		$swap_dev = 1; $scsi_path = $_[1];
		}
	printf "<input type=radio name=swap_dev value=0 %s> SCSI Disk:\n",
		$swap_dev == 0 ? "checked" : "";
	print "Controller <input name=swap_c size=3 value=\"$scsi_c\">\n";
	print "Target <input name=swap_t size=3 value=\"$scsi_t\">\n";
	print "Unit <input name=swap_d size=3 value=\"$scsi_d\">\n";
	print "Partition <input name=swap_s size=3 value=\"$scsi_s\"><br>\n";

	printf "<input type=radio name=swap_dev value=1 %s> File:\n",
		$swap_dev == 1 ? "checked" : "";
	print "<input name=swap_path size=20 value=\"$scsi_path\"><br>\n";
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "hsfs") {
	# Mounting a SCSI cdrom
	print "<tr> <td valign=top><b>CDROM Disk</b></td>\n";
	print "<td colspan=3>\n";
	if ($_[1] =~ /^\/dev\/dsk\/c([0-9]+)t([0-9]+)d([0-9]+)s([0-9]+)$/) {
		$hsfs_dev = 0;
		$scsi_c = $1; $scsi_t = $2; $scsi_d = $3; $scsi_s = $4;
		}
	elsif ($_[1] eq "") {
		$hsfs_dev = 0;
		$scsi_c = 0; $scsi_t = 6; $scsi_d = 0; $scsi_s = 0;
		}
	else {
		$hsfs_dev = 1; $scsi_path = $_[1];
		}
	printf "<input type=radio name=hsfs_dev value=0 %s> SCSI Device:\n",
		$hsfs_dev == 0 ? "checked" : "";
	print "Controller <input name=hsfs_c size=3 value=\"$scsi_c\">\n";
	print "Target <input name=hsfs_t size=3 value=\"$scsi_t\">\n";
	print "Unit <input name=hsfs_d size=3 value=\"$scsi_d\">\n";
	print "Partition <input name=hsfs_s size=3 value=\"$scsi_s\"><br>\n";

	printf "<input type=radio name=hsfs_dev value=1 %s> Other Device:\n",
		$hsfs_dev == 1 ? "checked" : "";
	print "<input name=hsfs_path size=20 value=\"$scsi_path\"><br>\n";
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "pcfs") {
	# Mounting a SCSI msdos filesystem
	print "<tr> <td valign=top><b>MS-DOS Disk</b></td>\n";
	print "<td colspan=3>\n";
	if ($_[1] =~ /^\/dev\/dsk\/c([0-9]+)t([0-9]+)d([0-9]+)s([0-9]+)$/) {
		$pcfs_dev = 0;
		$scsi_c = $1; $scsi_t = $2; $scsi_d = $3; $scsi_s = $4;
		}
	elsif ($_[1] eq "") {
		$pcfs_dev = 1; $scsi_path = "";
		}
	else {
		$pcfs_dev = 1; $scsi_path = $_[1];
		}
	printf "<input type=radio name=pcfs_dev value=0 %s> SCSI Device:\n",
		$pcfs_dev == 0 ? "checked" : "";
	print "Controller <input name=pcfs_c size=3 value=\"$scsi_c\">\n";
	print "Target <input name=pcfs_t size=3 value=\"$scsi_t\">\n";
	print "Unit <input name=pcfs_d size=3 value=\"$scsi_d\">\n";
	print "Partition <input name=pcfs_s size=3 value=\"$scsi_s\"><br>\n";

	printf "<input type=radio name=pcfs_dev value=1 %s> Other Device:\n",
		$pcfs_dev == 1 ? "checked" : "";
	print "<input name=pcfs_path size=20 value=\"$scsi_path\"><br>\n";
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "lofs") {
	# Mounting some directory to another location
	print "<tr> <td><b>Original Directory</b></td>\n";
	print "<td><input name=lofs_src size=30 value=\"$_[1]\">\n";
	print &file_chooser_button("lofs_src", 1);
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "cachefs") {
	# Mounting a cached filesystem of some type.. need a location for
	# the source of the mount
	print "<tr> <td><b>Cache Source</b></td>\n";
	print "<td><input name=cfs_src size=20 value=\"$_[1]\"></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	# An automounter entry.. can be -hosts, -xfn or from some mapping
	print "<tr> <td valign=top><b>Automounter map</b></td>\n";
	printf "<td><input type=radio name=autofs_type value=0 %s>\n",
		$_[1] eq "-hosts" || $_[1] eq "-xfn" ? "" : "checked";
	printf "Use map <input name=autofs_map size=20 value=\"%s\"><br>\n",
		$_[1] eq "-hosts" || $_[1] eq "-xfn" ? "" : $_[1];
	printf "<input type=radio name=autofs_type value=1 %s>\n",
		$_[1] eq "-hosts" ? "checked" : "";
	print "All NFS exports map<br>\n";
	printf "<input type=radio name=autofs_type value=2 %s>\n",
		$_[1] eq "-xfn" ? "checked" : "";
	print "Federated  Naming  Service map</td> </tr>\n";
	}
elsif ($_[0] eq "rumba") {
	# Windows filesystem
	$_[1] =~ /^\\\\(.*)\\(.*)$/;
	print "<tr> <td><b>Server Name</b></td>\n";
	print "<td><input name=rumba_server value=\"$1\" size=20>\n";
	&smb_server_chooser_button("rumba_server");
	print "</td>\n";
	print "<td><b>Share Name</b></td>\n";
	print "<td><input name=rumba_share value=\"$2\" size=20>\n";
	&smb_share_chooser_button("rumba_server", "rumba_share");
	print "</td> </tr>\n";
	}
}


# generate_options(type, newmount)
# Output HTML for editing mount options for a partilcar filesystem 
# under this OS
sub generate_options
{
if ($_[0] eq "nfs") {
	# UnixWare NFS has many options, not all of which are editable here
	print "<tr> <td><b>Read-Only?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_ro value=1 %s> Yes\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=nfs_ro value=0 %s> No</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>Disallow setuid programs?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_nosuid value=1 %s> Yes\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=nfs_nosuid value=0 %s> No</td> </tr>\n",
		defined($options{"nosuid"}) ? "" : "checked";

	print "<tr> <td><b>Files inherit parent GID?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_grpid value=0 %s> Yes\n",
		defined($options{"grpid"}) ? "" : "checked";
	printf "<input type=radio name=nfs_grpid value=1 %s> No</td>\n",
		defined($options{"grpid"}) ? "checked" : "";

	print "<td><b>Return error on timeouts?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_soft value=1 %s> Yes\n",
		defined($options{"soft"}) ? "checked" : "";
	printf "<input type=radio name=nfs_soft value=0 %s> No</td> </tr>\n",
		defined($options{"soft"}) ? "" : "checked";

	print "<tr> <td><b>Retry mounts in background?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_bg value=1 %s> Yes\n",
		defined($options{"bg"}) ? "checked" : "";
	printf "<input type=radio name=nfs_bg value=0 %s> No</td>\n",
		defined($options{"bg"}) ? "" : "checked";

	print "<td><b>Display quotas?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_quota value=1 %s> Yes\n",
		defined($options{"quota"}) ? "checked" : "";
	printf "<input type=radio name=nfs_quota value=0 %s> No</td> </tr>\n",
		defined($options{"quota"}) ? "" : "checked";

	print "<tr> <td><b>Allow user interrupt?</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_nointr value=0 %s> Yes\n",
		defined($options{"nointr"}) ? "" : "checked";
	printf "<input type=radio name=nfs_nointr value=1 %s> No</td>\n",
		defined($options{"nointr"}) ? "checked" : "";

	print "<td><b>NFS version</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_vers_def value=1 %s> Highest\n",
		defined($options{"vers"}) ? "" : "checked";
	printf "<input type=radio name=nfs_vers_def value=0 %s>\n",
		defined($options{"vers"}) ? "checked" : "";
	print "<input size=1 name=nfs_vers value=$options{vers}></td> </tr>\n";

	print "<tr> <td><b>Protocol</b></td>\n";
	print "<td nowrap><select name=proto>\n";
	printf "<option value=\"\" %s> Default\n",
		defined($options{"proto"}) ? "" : "selected";
	foreach (split(/\n/, `cat /etc/netconfig`)) {
		if (!/^([A-z0-9\_\-]+)\s/) { next; }
		printf "<option value=\"$1\" %s> $1\n",
			$options{"proto"} eq $1 ? "selected" : "";
		}
	print "</select></td>\n";

	print "<td><b>NFS Port</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_port_def value=1 %s> Default\n",
		defined($options{"port"}) ? "" : "checked";
	printf "<input type=radio name=nfs_port_def value=0 %s>\n",
		defined($options{"port"}) ? "checked" : "";
	print "<input size=5 name=nfs_port value=$options{port}></td> </tr>\n";

	print "<tr> <td><b>Timeout</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_timeo_def value=1 %s> Default\n",
		defined($options{"timeo"}) ? "" : "checked";
	printf "<input type=radio name=nfs_timeo_def value=0 %s>\n",
		defined($options{"timeo"}) ? "checked" : "";
	printf "<input size=5 name=nfs_timeo value=$options{timeo}></td>\n";

	print "<td><b>Number of Retransmissions</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_retrans_def value=1 %s> Default\n",
		defined($options{"retrans"}) ? "" : "checked";
	printf "<input type=radio name=nfs_retrans_def value=0 %s>\n",
		defined($options{"retrans"}) ? "checked" : "";
	print "<input size=5 name=nfs_retrans value=$options{retrans}></td> </tr>\n";

	print "<tr> <td><b>Authentication</b></td>\n";
	$nfs_auth = $options{'sec'} ? $options{'sec'} :
		    defined($options{"secure"}) ? "dh" :
		    defined($options{"kerberos"}) ? "krb" : "";
	print "<td><select name=nfs_auth>\n";
	printf "<option value=\"\" %s> None\n",
		$nfs_auth eq "" ? "selected" : "";
	printf "<option value=dh %s> DES\n",
		$nfs_auth eq "dh" ? "selected" : "";
	printf "<option value=krb %s> Kerberos\n",
		$nfs_auth eq "krb" ? "selected" : "";
	print "</select></td>\n";

	if ($gconfig{'os_version'} >= 7) {
		print "<td><b>WebNFS mount?</b></td> <td>\n";
		printf "<input type=radio name=nfs_public value=1 %s> Yes\n",
			defined($options{'public'}) ? "checked" : "";
		printf "<input type=radio name=nfs_public value=0 %s> No\n",
			defined($options{'public'}) ? "" : "checked";
		print "</td>\n";
		}
	print "</tr>\n";
	}
if ($_[0] eq "ufs") {
	# UnixWare UFS also has many options, not all of which are here
	print "<tr> <td><b>Read-Only?</b></td>\n";
	printf "<td nowrap><input type=radio name=ufs_ro value=1 %s> Yes\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=ufs_ro value=0 %s> No</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>Disallow setuid programs?</b></td>\n";
	printf "<td nowrap><input type=radio name=ufs_nosuid value=1 %s> Yes\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=ufs_nosuid value=0 %s> No</td> </tr>\n",
		defined($options{"nosuid"}) ? "" : "checked";

	print "<tr> <td><b>Allow user interrupt?</b></td>\n";
	printf "<td nowrap><input type=radio name=ufs_nointr value=0 %s> Yes\n",
		defined($options{"nointr"}) ? "" : "checked";
	printf "<input type=radio name=ufs_nointr value=1 %s> No</td>\n",
		defined($options{"nointr"}) ? "checked" : "";

	print "<td><b>Enable quotas at boot time?</b></td>\n";
	printf "<td nowrap><input type=radio name=ufs_quota value=1 %s> Yes\n",
		defined($options{"quota"}) || defined($options{"rq"}) ?
			"checked" : "";
	printf "<input type=radio name=ufs_quota value=0 %s> No</td> </tr>\n",
		defined($options{"quota"}) || defined($options{"rq"}) ?
			"" : "checked";

	print "<tr> <td><b>Action on error</b></td>\n";
	print "<td><select name=ufs_onerror>\n";
	foreach ('panic', 'lock', 'umount', 'repair') {
		printf "<option value=\"$_\" %s> $_\n",
		 $options{onerror} eq $_ ||
		 !defined($options{onerror}) && $_ eq "panic" ? "selected" : "";
		}
	print "</select></td>\n";

	print "<td><b>Repair Delay</b></td>\n";
	$options{toosoon} =~ /([0-9]+)([A-z])/;
	print "<td nowrap><input size=5 name=ufs_toosoon_time value=$1>\n";
	print "<select name=ufs_toosoon_units>\n";
	printf "<option value=s %s> Seconds\n", $2 eq "s" ? "selected" : "";
	printf "<option value=m %s> Minutes\n", $2 eq "m" ? "selected" : "";
	printf "<option value=h %s> Hours\n", $2 eq "h" ? "selected" : "";
	printf "<option value=d %s> Days\n", $2 eq "d" ? "selected" : "";
	printf "<option value=w %s> Months\n", $2 eq "w" ? "selected" : "";
	printf "<option value=y %s> Years\n", $2 eq "y" ? "selected" : "";
	print "</select></td> </tr>\n";

	if ($gconfig{'os_version'} >= 7) {
		print "<tr> <td><b>Update access times?</b></td> <td>\n";
		printf "<input type=radio name=ufs_noatime value=0 %s> Yes\n",
			defined($options{'noatime'}) ? "" : "checked";
		printf "<input type=radio name=ufs_noatime value=1 %s> No\n",
			defined($options{'noatime'}) ? "checked" : "";
		print "</td>\n";

		print "<td><b>Force direct IO?</b></td> <td>\n";
		printf "<input type=radio name=ufs_force value=1 %s> Yes\n",
			defined($options{'forcedirectio'}) ? "checked" : "";
		printf "<input type=radio name=ufs_force value=0 %s> No\n",
			defined($options{'forcedirectio'}) ? "" : "checked";
		print "</td> </tr>\n";

		print "<tr> <td><b>Allow large files?</td> <td>\n";
		printf "<input type=radio name=ufs_nolarge value=0 %s> Yes\n",
			defined($options{'nolargefiles'}) ? "" : "checked";
		printf "<input type=radio name=ufs_nolarge value=1 %s> No\n",
			defined($options{'nolargefiles'}) ? "checked" : "";
		print "</td>\n";

		print "<td><b>Enabled logging?</td> <td>\n";
		printf "<input type=radio name=ufs_logging value=1 %s> Yes\n",
			defined($options{'logging'}) ? "checked" : "";
		printf "<input type=radio name=ufs_logging value=0 %s> No\n",
			defined($options{'logging'}) ? "" : "checked";
		print "</td> </tr>\n";
		}
	}
if ($_[0] eq "hsfs") {
	# UnixWare hsfs is used for CDROMs
	print "<tr> <td><b>Ignore Unix attributes?</b></td>\n";
	printf "<td nowrap><input type=radio name=hsfs_nrr value=1 %s> Yes\n",
		defined($options{"nrr"}) ? "checked" : "";
	printf "<input type=radio name=hsfs_nrr value=0 %s> No</td>\n",
		defined($options{"nrr"}) ? "" : "checked";

	print "<td><b>Ignore trailing dot?</b></td>\n";
	printf "<td nowrap><input type=radio name=hsfs_notraildot value=1 %s> Yes\n",
		defined($options{"notraildot"}) ? "checked" : "";
	printf "<input type=radio name=hsfs_notraildot value=0 %s> No</td> </tr>\n",
		defined($options{"notraildot"}) ? "" : "checked";

	print "<tr> <td><b>Use lower case?</b></td>\n";
	printf "<td nowrap><input type=radio name=hsfs_nomaplcase value=0 %s> Yes\n",
		defined($options{"nomaplcase"}) ? "" : "checked";
	printf "<input type=radio name=hsfs_nomaplcase value=1 %s> No</td>\n",
		defined($options{"nomaplcase"}) ? "checked" : "";

	print "<td><b>Disallow setuid programs?</b></td>\n";
	printf"<td nowrap><input type=radio name=hsfs_nosuid value=1 %s> Yes\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=hsfs_nosuid value=0 %s> No</td> </tr>\n",
		defined($options{"nosuid"}) ? "" : "checked";
	}
if ($_[0] eq "pcfs") {
	# UnixWare pcfs for for FAT filesystems. It doesn't have many options
	print "<tr> <td width=25%><b>Read Only?</b></td> <td width=25%>\n";
	printf "<input type=radio name=pcfs_ro value=1 %s> Yes\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=pcfs_ro value=0 %s> No</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	if ($gconfig{'os_version'} >= 7) {
		print "<td><b>Force lower case?</b></td> <td>\n";
		printf "<input type=radio name=pcfs_foldcase value=1 %s> Yes\n",
			defined($options{'foldcase'}) ? "checked" : "";
		printf "<input type=radio name=pcfs_foldcase value=0 %s> No\n",
			defined($options{'foldcase'}) ? "" : "checked";
		print "</td>\n";
		}
	else {
		print "<td colspan=2></td> </tr>\n";
		}
	}
if ($_[0] eq "vxfs") {
	print "<tr> <td><b>Read-Only?</b></td>\n";
	printf "<td nowrap><input type=radio name=jfs_ro value=1 %s> Yes\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=jfs_ro value=0 %s> No</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>Disallow setuid programs?</b></td>\n";
	printf "<td nowrap><input type=radio name=jfs_nosuid value=1 %s> Yes\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=jfs_nosuid value=0 %s> No</td> </tr>\n",
		defined($options{"nosuid"}) ? "" : "checked";

	print "<tr> <td><b>Full integrity for all Metadata?</b></td>\n";
	printf "<td nowrap><input type=radio name=jfs_log value=1 %s> Yes\n",
		defined($options{"log"}) ? "checked" : "";
	printf "<input type=radio name=jfs_log value=0 %s> No</td>\n",
		defined($options{"log"}) ? "" : "checked";

	print "<td><b>Synchronous-write data logging?</b></td>\n";
	printf "<td nowrap><input type=radio name=jfs_syncw value=1 %s> Yes\n",
		!defined($options{"nodatainlog"}) ? "checked" : "";
	printf "<input type=radio name=jfs_syncw value=0 %s> No</td> </tr>\n",
		!defined($options{"nodatainlog"}) ? "" : "checked";

        print "<tr> <td><b>Enable quotas at boot time?</b></td>\n";
        printf "<td nowrap><input type=radio name=jfs_quota value=1 %s> Yes\n",
		defined($options{"quota"}) ? "checked" : "";
        printf "<input type=radio name=jfs_quota value=0 %s> No</td> </tr>\n",
		defined($options{"quota"}) ? "" : "checked";
	}
if ($_[0] eq "lofs") {
	# No options as far as I know
	print "<tr> <td><i>No Options Available</i></td> </tr>\n";
	}
if ($_[0] eq "tmpfs") {
	# UnixWare tmpfs (virtual memory) filesystem.
	print "<tr> <td><b>Size</b>&nbsp;&nbsp;&nbsp;</td>\n";
	printf"<td><input type=radio name=tmpfs_size_def value=1 %s> Maximum\n",
		defined($options{"size"}) ? "" : "checked";
	printf"&nbsp;&nbsp;<input type=radio name=tmpfs_size_def value=0 %s>\n",
		defined($options{"size"}) ? "checked" : "";
	($tmpsz = $options{size}) =~ s/[A-z]+$//g;
	print "<input name=tmpfs_size size=6 value=\"$tmpsz\">\n";
	print "<select name=tmpfs_unit>\n";
	printf "<option value=m %s> MB\n",
		$options{"size"} =~ /m$/ ? "selected" : "";
	printf "<option value=k %s> kB\n",
		$options{"size"} =~ /k$/ ? "selected" : "";
	printf "<option value=b %s> bytes\n",
		$options{"size"} !~ /(k|m)$/ ? "selected" : "";
	print "</select></td>\n";

	print "<td><b>Disallow setuid programs?</b></td> <td nowrap>\n";
	printf "<input type=radio name=tmpfs_nosuid value=1 %s> Yes\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=tmpfs_nosuid value=0 %s> No</td>\n",
		defined($options{"nosuid"}) ? "" : "checked";
	print "</tr>\n";
	}
if ($_[0] eq "swap") {
	# UnixWare swap has no options
	print "<tr> <td><i>No Options Available</i></td> </tr>\n";
	}
if ($_[0] eq "cachefs") {
	# The caching filesystem has lots of options.. cachefs mounts can
	# be of an existing 'manually' mounted back filesystem, or of a
	# back-filesystem that has been automatically mounted by the cache.
	# The user should never see the automatic mountings made by cachefs.
	print "<tr> <td><b>Real filesystem type</b></td>\n";
	print "<td nowrap><select name=cfs_backfstype>\n";
	if (!defined($options{backfstype})) { $options{backfstype} = "nfs"; }
	foreach (&list_fstypes()) {
		if ($_ eq "cachefs") { next; }
		printf "<option value=\"$_\" %s>$_\n",
			$_ eq $options{backfstype} ? "selected" : "";
		}
	print "</select></td>\n";

	print "<td><b>Real mount point</b></td>\n";
	printf"<td nowrap><input type=radio name=cfs_noback value=1 %s> Automatic\n",
		defined($options{"backpath"}) ? "" : "checked";
	printf "<input type=radio name=cfs_noback value=0 %s>\n",
		defined($options{"backpath"}) ? "checked" : "";
	print "<input size=10 name=cfs_backpath value=\"$options{backpath}\"></td> </tr>\n";

	print "<tr> <td><b>Cache directory</b></td>\n";
	printf "<td nowrap><input size=10 name=cfs_cachedir value=\"%s\"></td>\n",
		defined($options{"cachedir"}) ? $options{"cachedir"} : "/cache";

	print "<td><b>Write mode</b></td>\n";
	printf"<td nowrap><input type=radio name=cfs_wmode value=0 %s> Write-around\n",
		defined($options{"non-shared"}) ? "" : "checked";
	printf "<input type=radio name=cfs_wmode value=1 %s> Non-shared\n",
		defined($options{"non-shared"}) ? "checked" : "";
	print "</td> </tr>\n";

	print "<tr> <td><b>Consistency check</b></td>\n";
	print "<td><select name=cfs_con>\n";
	print "<option value=1> Periodically\n";
	printf "<option value=0 %s> Never\n",
		defined($options{"noconst"}) ? "selected" : "";
	printf "<option value=2 %s> On demand\n",
		defined($options{"demandconst"}) ? "selected" : "";
	print "</select></td>\n";

	print "<td><b>Check permissions in cache?</b></td>\n";
	printf "<td nowrap><input type=radio name=cfs_local value=1 %s> Yes\n",
		defined($options{"local-access"}) ? "checked" : "";
	printf "<input type=radio name=cfs_local value=0 %s> No</td> </tr>\n",
		defined($options{"local-access"}) ? "" : "checked";

	print "<tr> <td><b>Read-Only?</b></td>\n";
	printf "<td nowrap><input type=radio name=cfs_ro value=1 %s> Yes\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=cfs_ro value=0 %s> No</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>Disallow setuid programs?</b></td>\n";
	printf "<td nowrap><input type=radio name=cfs_nosuid value=1 %s> Yes\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=cfs_nosuid value=0 %s> No</td> </tr>\n",
		defined($options{"nosuid"}) ? "" : "checked";
	}
if ($_[0] eq "autofs") {
	# Autofs has lots of options, depending on the type of file
	# system being automounted.. the fstype options determines this
	local($fstype);
	$fstype = $options{fstype} eq "" ? "nfs" : $options{fstype};
	if ($gconfig{'os_version'} >= 2.6) {
		print "<tr> <td><b>Browsing enabled?</b></td> <td>\n";
		printf "<input type=radio name=auto_nobrowse value=0 %s> Yes\n",
			defined($options{'nobrowse'}) ? "" : "checked";
		printf "<input type=radio name=auto_nobrowse value=1 %s> No\n",
			defined($options{'nobrowse'}) ? "checked" : "";
		print "</td> <td colspan=2></td> </tr>\n";
		}
	&generate_options($fstype);
	print "<input type=hidden name=autofs_fstype value=\"$fstype\">\n";
	}
if ($_[0] eq "rumba") {
	# SMB filesystems have a few options..
	print "<tr> <td><b>Server Hostname</b></td>\n";
	printf "<td><input type=radio name=rumba_mname_def value=1 %s> Automatic\n",
		defined($options{"machinename"}) ? "" : "checked";
	printf "<input type=radio name=rumba_mname_def value=0 %s>\n",
		defined($options{"machinename"}) ? "checked" : "";
	print "<input size=10 name=rumba_mname value=\"$options{machinename}\"></td>\n";

	print "<td><b>Client Name</b></td>\n";
	printf "<td><input type=radio name=rumba_cname_def value=1 %s> Automatic\n",
		defined($options{"clientname"}) ? "" : "checked";
	printf "<input type=radio name=rumba_cname_def value=0 %s>\n",
		defined($options{"clientname"}) ? "checked" : "";
	print "<input size=10 name=rumba_cname value=\"$options{clientname}\"></td> </tr>\n";

	print "<tr> <td><b>Login Name</b></td>\n";
	print "<td><input name=rumba_username size=15 value=\"$options{username}\"></td>\n";

	print "<td><b>Login Password</b></td>\n";
	print "<td><input type=password name=rumba_password size=15 value=\"$options{password}\"></td> </tr>\n";

	print "<tr> <td><b>User files are owned by</b></td>\n";
	printf "<td><input name=rumba_uid size=8 value=\"%s\">\n",
		defined($options{'uid'}) ? getpwuid($options{'uid'}) : "";
	print &user_chooser_button("rumba_uid", 0),"</td>\n";

	print "<td><b>Group files are owned by</b></td>\n";
	printf "<td><input name=rumba_gid size=8 value=\"%s\">\n",
		defined($options{'gid'}) ? getgrgid($options{'gid'}) : "";
	print &group_chooser_button("rumba_gid", 0),"</td>\n";

	print "<tr> <td><b>File permissions</b></td>\n";
	printf "<td><input name=rumba_fmode size=5 value=\"%s\"></td>\n",
		defined($options{fmode}) ? $options{fmode} : "755";

	print "<td><b>Directory permissions</b></td>\n";
	printf "<td><input name=rumba_dmode size=5 value=\"%s\"></td> </tr>\n",
		defined($options{dmode}) ? $options{dmode} : "755";

	print "<tr> <td><b>Read/write access is safe?</b></td>\n";
	printf"<td nowrap><input type=radio name=rumba_readwrite value=1 %s> Yes\n",
		defined($options{"readwrite"}) ? "checked" : "";
	printf "<input type=radio name=rumba_readwrite value=0 %s> No</td>\n",
		defined($options{"readwrite"}) ? "" : "checked";

	print "<td><b>Files can be read-only?</b></td>\n";
	printf"<td nowrap><input type=radio name=rumba_readonly value=1 %s> Yes\n",
		defined($options{"readonly"}) ? "checked" : "";
	printf "<input type=radio name=rumba_readonly value=0 %s> No</td> </tr>\n",
		defined($options{"readonly"}) ? "" : "checked";

	print "<tr> <td><b>Send password in upper case?</b></td>\n";
	printf"<td nowrap><input type=radio name=rumba_noupper value=0 %s> Yes\n",
		defined($options{"noupper"}) ? "" : "checked";
	printf "<input type=radio name=rumba_noupper value=1 %s> No</td>\n",
		defined($options{"noupper"}) ? "checked" : "";

	print "<td><b>Use attrE commands?</b></td>\n";
	printf"<td nowrap><input type=radio name=rumba_attr value=1 %s> Yes\n",
		defined($options{"attr"}) ? "checked" : "";
	printf "<input type=radio name=rumba_attr value=0 %s> No</td> </tr>\n",
		defined($options{"attr"}) ? "" : "checked";
	}
}


# check_location(type)
# Parse and check inputs from %in, calling &error() if something is wrong.
# Returns the location string for storing in the fstab file
sub check_location
{
if ($_[0] eq "nfs") {
	local($out, $temp, $mout, $dirlist);

	if ($in{'nfs_serv'} == 1) {
		# multiple servers listed.. assume the user has a brain
		return $in{'nfs_list'};
		}
	elsif ($in{'nfs_serv'} == 2) {
		# NFS url.. check syntax
		if ($in{'nfs_url'} !~ /^nfs:\/\/([^\/ ]+)(\/([^\/ ]*))?$/) {
			&error("'$in{'nfs_url'}' is not a valid NFS URL");
			}
		return $in{'nfs_url'};
		}

	# Use dfshares to see if the host exists and is up
	if ($in{nfs_host} !~ /^\S+$/) {
		&error("'$in{nfs_host}' is not a valid hostname");
		}
	$out = `dfshares '$in{nfs_host}' 2>&1`;
	if ($out =~ /Unknown host/) {
		&error("The host '$in{nfs_host}' does not exist");
		}
	elsif ($out =~ /Timed out/) {
		&error("The host '$in{nfs_host}' is down or does not ".
		       "support NFS");
		}
	elsif ($out =~ /Program not registered/) {
		&error("The host '$in{nfs_host}' does not support NFS");
		}

	# Try a test mount to see if filesystem is available
	foreach (split(/\n/, $out)) {
		if (/^\s*([^ :]+):(\/\S+)\s+/) { $dirlist .= "$2\n"; }
		}
	if ($in{nfs_dir} !~ /^\S+$/) {
		&error("'$in{nfs_dir}' is not a valid directory name. The ".
		       "available directories on $in{nfs_host} are:".
		       "<pre>$dirlist</pre>");
		}
	$temp = &tempname();
	mkdir($temp, 0755);
	$mout = `mount $in{nfs_host}:$in{nfs_dir} $temp 2>&1`;
	if ($mout =~ /No such file or directory/) {
		rmdir($temp);
		&error("The directory '$in{nfs_dir}' does not exist on the ".
		       "host $in{nfs_host}. The available directories are:".
		       "<pre>$dirlist</pre>");
		}
	elsif ($mout =~ /Permission denied/) {
		rmdir($temp);
		&error("This host is not allowed to mount the directory ".
		       "$in{nfs_dir} from $in{nfs_host}");
		}
	elsif ($?) {
		rmdir($temp);
		&error("NFS Error - $mout");
		}
	# It worked! unmount
	`umount $temp`;
	rmdir($temp);
	return "$in{nfs_host}:$in{nfs_dir}";
	}
elsif ($_[0] eq "ufs") {
	# Get the device name
	if ($in{ufs_dev} == 0) {
		$in{ufs_c} =~ /^[0-9]+$/ ||
			&error("'$in{ufs_c}' is not a valid SCSI controller");
		$in{ufs_t} =~ /^[0-9]+$/ ||
			&error("'$in{ufs_t}' is not a valid SCSI target");
		$in{ufs_d} =~ /^[0-9]+$/ ||
			&error("'$in{ufs_d}' is not a valid SCSI unit");
		$in{ufs_s} =~ /^[0-9]+$/ ||
			&error("'$in{ufs_s}' is not a valid SCSI partition");
		$dv = "/dev/dsk/c$in{ufs_c}t$in{ufs_t}d$in{ufs_d}s$in{ufs_s}";
		}
	elsif ($in{ufs_dev} == 1) {
		$in{ufs_md} =~ /^[0-9]+$/ ||
			&error("'$in{ufs_md}' is not a valid RAID unit");
		$dv = "/dev/md/dsk/d$in{ufs_md}";
		}
	else {
		$in{ufs_path} =~ /^\/\S+$/ ||
			&error("'$in{ufs_path}' is not a valid pathname");
		$dv = $in{ufs_path};
		}

	&fstyp_check($dv, "ufs");
	return $dv;
	}
elsif ($_[0] eq "vxfs") {
	# Get the device name
	if ($in{jfs_dev} == 0) {
		$in{jfs_c} =~ /^[0-9]+$/ ||
			&error("'$in{jfs_c}' is not a valid SCSI controller");
		$in{jfs_t} =~ /^[0-9]+$/ ||
			&error("'$in{jfs_t}' is not a valid SCSI target");
		$in{jfs_d} =~ /^[0-9]+$/ ||
			&error("'$in{jfs_d}' is not a valid SCSI unit");
		$in{jfs_s} =~ /^[0-9]+$/ ||
			&error("'$in{jfs_s}' is not a valid SCSI partition");
		$dv = "/dev/dsk/c$in{jfs_c}t$in{jfs_t}d$in{jfs_d}s$in{jfs_s}";
		}
	elsif ($in{jfs_dev} == 1) {
		$in{jfs_vg} =~ /^[0-9]+$/ ||
			&error("'$in{jfs_vg}' is not a valid Volume Group");
		$in{jfs_lv} =~ /^\S+$/ ||
			&error("'$in{jfs_lv}' is not a valid Logical Volume");
		$dv = "/dev/vg$in{jfs_vg}/$in{jfs_lv}";
		}
	else {
		$in{jfs_path} =~ /^\/\S+$/ ||
			&error("'$in{jfs_path}' is not a valid pathname");
		$dv = $in{jfs_path};
		}

	&fstyp_check($dv, "vxfs");
	return $dv;
	}
elsif ($_[0] eq "lofs") {
	# Get and check the original directory
	$dv = $in{'lofs_src'};
	if (!(-r $dv)) { &error("'$in{lofs_src}' does not exist"); }
	if (!(-d $dv)) { &error("'$in{lofs_src}' is not a directory"); }
	return $dv;
	}
elsif ($_[0] eq "swap") {
	if ($in{swap_dev} == 0) {
		$in{swap_c} =~ /^[0-9]+$/ ||
			&error("'$in{swap_c}' is not a valid SCSI controller");
		$in{swap_t} =~ /^[0-9]+$/ ||
			&error("'$in{swap_t}' is not a valid SCSI target");
		$in{swap_d} =~ /^[0-9]+$/ ||
			&error("'$in{swap_d}' is not a valid SCSI unit");
		$in{swap_s} =~ /^[0-9]+$/ ||
			&error("'$in{swap_s}' is not a valid SCSI partition");
		$dv="/dev/dsk/c$in{swap_c}t$in{swap_t}d$in{swap_d}s$in{swap_s}";
		}
	else { $dv = $in{swap_path}; }

	if (!open(SWAPFILE, $dv)) {
		if ($! =~ /No such file/ && $in{swap_dev}) {
			if ($dv !~ /^\/dev/) {
				&swap_form($dv);
				}
			else {
				&error("The swap file '$dv' does not exist");
				}
			}
		elsif ($! =~ /No such file/) {
			&error("The SCSI target '$in{swap_t}' does not exist");
			}
		elsif ($! =~ /No such device or address/) {
			&error("The partition '$in{swap_s}' does not exist");
			}
		else {
			&error("Failed to open '$dv' : $!");
			}
		}
	close(SWAPFILE);
	return $dv;
	}
elsif ($_[0] eq "tmpfs") {
	# Ram-disk filesystems have no location
	return "swap";
	}
elsif ($_[0] eq "cachefs") {
	# In order to check the location for the caching filesystem, we need
	# to check the back filesystem
	if (!$in{cfs_noback}) {
		# The back filesystem is manually mounted.. hopefully
		local($bidx, @mlist, @binfo);
		$bidx = &get_mounted($in{cfs_backpath}, "*");
		if ($bidx < 0) {
			&error("The back filesystem '$in{cfs_backpath}' is ".
			       "not mounted");
			}
		@mlist = &list_mounted();
		@binfo = @{$mlist[$bidx]};
		if ($binfo[2] ne $in{cfs_backfstype}) {
			&error("The back filesystem is '$binfo[2]', not ".
			       "'$in{cfs_backfstype}'");
			}
		}
	else {
		# Need to automatically mount the back filesystem.. check
		# it for sanity first.
		# But HOW?
		$in{cfs_src} =~ /^\S+$/ ||
			&error("'$in{cfs_src}' is not a valid cache source");
		}
	return $in{cfs_src};
	}
elsif ($_[0] eq "autofs") {
	# An autofs filesystem can be either mounted from the special
	# -hosts and -xfn maps, or from a normal map. The map can be a file
	# name (if it starts with /), or an NIS map (if it doesn't)
	if ($in{autofs_type} == 0) {
		# Normal map
		$in{autofs_map} =~ /\S/ ||
			&error("You did not enter an automount map name");
		if ($in{autofs_map} =~ /^\// && !(-r $in{autofs_map})) {
			&error("The map file '$in{autofs_map}' does not exist");
			}
		return $in{autofs_map};
		}
	elsif ($in{autofs_type} == 1) {
		# Special hosts map (automount all shares from some host)
		return "-hosts";
		}
	else {
		# Special FNS map (not sure what this does)
		return "-xfn";
		}
	}
elsif ($_[0] eq "rumba") {
	# Cannot check much here..
	return "\\\\$in{rumba_server}\\$in{rumba_share}";
	}
}


# fstyp_check(device, type)
# Check if some device exists, and contains a filesystem of the given type,
# using the fstyp command.
sub fstyp_check
{
local($out, $part, $found);

# Check if the device/partition actually exists
if ($_[0] =~ /^\/dev\/dsk\/c(.)t(.)d(.)s(.)$/) {
	# mounting a normal scsi device..
	$out = `prtvtoc -h $_[0] 2>&1`;
	if ($out =~ /No such file or directory|No such device or address/) {
		&error("The SCSI target for '$_[0]' does not exist");
		}
	$part = $4;
	foreach (split(/\n/, $out)) {
		/^\s+([0-9]+)\s+([0-9]+)/;
		if ($1 == $part) {
			$found = 1; last;
			}
		}
	if (!$found) {
		&error("The SCSI partition for '$_[0]' does not exist");
		}
	}
elsif ($_[0] =~ /^\/dev\/md\/dsk\/d(.)$/) {
	# mounting a multi-disk (raid) device..
	$out = `prtvtoc -h $_[0] 2>&1`;
	if ($out =~ /No such file or directory|No such device or address/) {
		&error("The RAID device for '$_[0]' does not exist");
		}
	if ($out !~ /\S/) {
		&error("No partitions on '$_[0]' ??");
		}
	}
else {
	# Some other device
	if (!open(DEV, $_[0])) {
		if ($! =~ /No such file or directory/) {
			&error("The device file '$_[0]' does not exist");
			}
		elsif ($! =~ /No such device or address/) {
			&error("The device for '$_[0]' does not exist");
			}
		}
	close(DEV);
	}

# Check the filesystem type
$out = `fstyp $_[0] 2>&1`;
if ($out =~ /^([A-z0-9]+)\n$/) {
	if ($1 eq $_[1]) { return; }
	else {
		# Wrong filesystem type
		&error("The device '$_[0]' is formatted as a ".
		       &fstype_name($1));
		}
	}
else {
	&error("Failed to check filesystem type : $out");
	}
}


# check_options(type)
# Read options for some filesystem from %in, and use them to update the
# %options array. Options handled by the user interface will be set or
# removed, while unknown options will be left untouched.
sub check_options
{
local($k, @rv);
if ($_[0] eq "nfs") {
	# NFS has lots of options to parse
	if ($in{'nfs_ro'}) {
		# Read-only
		$options{"ro"} = ""; delete($options{"rw"});
		}
	else {
		# Read-write
		$options{"rw"} = ""; delete($options{"ro"});
		}

	delete($options{'quota'}); delete($options{'noquota'});
	if ($in{'nfs_quota'}) { $options{'quota'} = ""; }

	delete($options{"nosuid"}); delete($options{"suid"});
	if ($in{nfs_nosuid}) { $options{"nosuid"} = ""; }

	delete($options{"grpid"});
	if ($in{nfs_grpid}) { $options{"grpid"} = ""; }

	delete($options{"soft"}); delete($options{"hard"});
	if ($in{nfs_soft}) { $options{"soft"} = ""; }

	delete($options{"bg"}); delete($options{"fg"});
	if ($in{nfs_bg}) { $options{"bg"} = ""; }

	delete($options{"intr"}); delete($options{"nointr"});
	if ($in{nfs_nointr}) { $options{"nointr"} = ""; }

	delete($options{"vers"});
	if (!$in{nfs_vers_def}) { $options{"vers"} = $in{nfs_vers}; }

	delete($options{"proto"});
	if ($in{nfs_proto} ne "") { $options{"proto"} = $in{nfs_proto}; }

	delete($options{"port"});
	if (!$in{nfs_port_def}) { $options{"port"} = $in{nfs_port}; }

	delete($options{"timeo"});
	if (!$in{nfs_timeo_def}) { $options{"timeo"} = $in{nfs_timeo}; }

	delete($options{"secure"}); delete($options{"kerberos"});
	delete($options{"sec"});
	if ($gconfig{'os_version'} >= 2.6) {
		if ($in{'nfs_auth'}) { $options{'sec'} = $in{'nfs_auth'}; }
		}
	else {
		if ($in{'nfs_auth'} eq "dh") { $options{"secure"} = ""; }
		elsif ($in{'nfs_auth'} eq "krb") { $options{"kerberos"} = ""; }
		}

	if ($gconfig{'os_version'} >= 7) {
		delete($options{'public'});
		$options{'public'} = "" if ($in{'nfs_public'});
		}
	}
elsif ($_[0] eq "ufs") {
	# UFS also has lots of options..
	if ($in{ufs_ro}) {
		# read-only (and thus no quota)
		$options{"ro"} = ""; delete($options{"rw"});
		delete($options{"rq"}); delete($options{"quota"});
		}
	elsif ($in{ufs_quota}) {
		# read-write, with quota
		delete($options{"ro"}); $options{"rw"} = "";
		$options{"quota"} = "";
		}
	else {
		# read-write, without quota
		delete($options{"ro"}); $options{"rw"} = "";
		delete($options{"quota"});
		}

	delete($options{"nosuid"});
	if ($in{ufs_nosuid}) { $options{"nosuid"} = ""; }

	delete($options{"intr"}); delete($options{"nointr"});
	if ($in{ufs_nointr}) { $options{"nointr"} = ""; }

	delete($options{"onerror"});
	if ($in{ufs_onerror} ne "panic") {
		$options{"onerror"} = $in{ufs_onerror};
		}

	delete($options{"toosoon"});
	if ($in{ufs_toosoon_time}) {
		$options{"toosoon"} = $in{ufs_toosoon_time}.
				      $in{ufs_toosoon_units};
		}
	if ($gconfig{'os_version'} >= 7) {
		delete($options{'noatime'});
		$options{'noatime'} = "" if ($in{'ufs_noatime'});

		delete($options{'forcedirectio'});
		delete($options{'noforcedirectio'});
		$options{'forcedirectio'} = "" if ($in{'ufs_force'});

		delete($options{'nolargefiles'});delete($options{'largefiles'});
		$options{'nolargefiles'} = "" if ($in{'ufs_nolarge'});

		delete($options{'logging'}); delete($options{'nologging'});
		$options{'logging'} = "" if ($in{'ufs_logging'});
		}
	}
elsif ($_[0] eq "vxfs") {
	if ($in{jfs_ro}) {
		# read-only
		$options{"ro"} = ""; delete($options{"rw"});
		}
	else {
		# read-write
		$options{"rw"} = ""; delete($options{"ro"});
		}
	if ($in{jfs_nosuid}) {
		# nosuid
		$options{"nosuid"} = ""; delete($options{"suid"});
		}
	else {
		# suid
		$options{"suid"} = ""; delete($options{"nosuid"});
		}
	if ($in{jfs_log}) {
		# log
		$options{"log"} = ""; delete($options{"delaylog"});
		}
	else {
		# delaylog
		$options{"delaylog"} = ""; delete($options{"log"});
		}
	if ($in{jfs_syncw}) {
		# datainlog
		$options{"datainlog"} = ""; delete($options{"nodatainlog"});
		}
	else {
		# nodatainlog
		$options{"nodatainlog"} = ""; delete($options{"datainlog"});
		}
	if ($in{jfs_quota}) {
		# quota
		$options{"quota"} = "";
		}
	else {
		# noquota
		delete($options{"quota"});
		}
	}
elsif ($_[0] eq "lofs") {
	# Loopback has no options to parse
	}
elsif ($_[0] eq "swap") {
	# Swap has no options to parse
	}
elsif ($_[0] eq "pcfs") {
	# PCFS has only 2 options
	delete($options{'ro'}); delete($options{'rw'});
	$options{'ro'} = "" if ($in{'pcfs_rp'});

	delete($options{'foldcase'}); delete($options{'nofoldcase'});
	$options{'foldcase'} = "" if ($in{'pcfs_foldcase'});
	}
elsif ($_[0] eq "tmpfs") {
	# Ram-disk filesystems have only two options
	delete($options{"size"});
	if (!$in{"tmpfs_size_def"}) {
		$options{"size"} = "$in{tmpfs_size}$in{tmpfs_unit}";
		}

	delete($options{"nosuid"});
	if ($in{'tmpfs_nosuid'}) { $options{"nosuid"} = ""; }
	}
elsif ($_[0] eq "cachefs") {
	# The caching filesystem has lots of options
	$options{"backfstype"} = $in{"cfs_backfstype"};

	delete($options{"backpath"});
	if (!$in{"cfs_noback"}) {
		# A back filesystem was given..  (alreadys checked)
		$options{"backpath"} = $in{"cfs_backpath"};
		}

	if ($in{"cfs_cachedir"} !~ /^\/\S+/) {
		&error("'$in{cfs_cachedir}' is not a valid cache directory");
		}
	$options{"cachedir"} = $in{"cfs_cachedir"};

	delete($options{"write-around"}); delete($options{"non-shared"});
	if ($in{"cfs_wmode"}) {
		$options{"non-shared"} = "";
		}

	delete($options{"noconst"}); delete($options{"demandconst"});
	if ($in{"cfs_con"} == 0) { $options{"noconst"} = ""; }
	elsif ($in{"cfs_con"} == 2) { $options{"demandconst"} = ""; }

	delete($options{"ro"}); delete($options{"rw"});
	if ($in{"cfs_ro"}) { $options{"ro"} = ""; }

	delete($options{"suid"}); delete($options{"nosuid"});
	if ($in{"cfs_nosuid"}) { $options{"nosuid"} = ""; }
	}
elsif ($_[0] eq "autofs") {
	# The options for autofs depend on the type of the automounted
	# filesystem.. 
	$options{"fstype"} = $in{"autofs_fstype"};
	if ($gconfig{'os_version'} >= 2.6) {
		delete($options{'nobrowse'}); delete($options{'browse'});
		$options{'nobrowse'} = "" if ($in{'auto_nobrowse'});
		}
	return &check_options($options{"fstype"});
	}
elsif ($_[0] eq "rumba") {
	# Options for smb filesystems..
	delete($options{machinename});
	if (!$in{rumba_mname_def}) { $options{machinename} = $in{rumba_mname}; }

	delete($options{clientname});
	if (!$in{rumba_cname_def}) { $options{clientname} = $in{rumba_cname}; }

	delete($options{username});
	if ($in{rumba_username}) { $options{username} = $in{rumba_username}; }

	delete($options{password});
	if ($in{rumba_password}) { $options{password} = $in{rumba_password}; }

	delete($options{uid});
	if ($in{rumba_uid} ne "") { $options{uid} = getpwnam($in{rumba_uid}); }

	delete($options{gid});
	if ($in{rumba_gid} ne "") { $options{gid} = getgrnam($in{rumba_gid}); }

	delete($options{fmode});
	if ($in{rumba_fmode} !~ /^[0-7]{3}$/) {
		&error("'$in{rumba_fmode}' is not a valid octal file mode");
		}
	elsif ($in{rumba_fmode} ne "755") { $options{fmode} = $in{rumba_fmode}; }

	delete($options{dmode});
	if ($in{rumba_dmode} !~ /^[0-7]{3}$/) {
		&error("'$in{rumba_dmode}' is not a valid octal directory mode");
		}
	elsif ($in{rumba_dmode} ne "755") { $options{dmode} = $in{rumba_dmode}; }

	delete($options{'readwrite'});
	if ($in{'rumba_readwrite'}) { $options{'readwrite'} = ""; }

	delete($options{'readonly'});
	if ($in{'rumba_readonly'}) { $options{'readonly'} = ""; }

	delete($options{'attr'});
	if ($in{'rumba_attr'}) { $options{'attr'} = ""; }

	delete($options{'noupper'});
	if ($in{'rumba_noupper'}) { $options{'noupper'} = ""; }
	}

# Return options string
foreach $k (keys %options) {
	if ($options{$k} eq "") { push(@rv, $k); }
	else { push(@rv, "$k=$options{$k}"); }
	}
return @rv ? join(',' , @rv) : "-";
}


# create_swap(path, size, units)
# Attempt to create a swap file 
sub create_swap
{
local($out);
$out = `mkfile $_[1]$_[2] $_[0] 2>&1`;
if ($?) {
	unlink($_[0]);
	return "mkfile failed : $out";
	}
return 0;
}


# exports_list(host, dirarray, clientarray)
# Fills the directory and client array references with exports from some
# host. Returns an error string if something went wrong
sub exports_list
{
local($dref, $cref, $out, $_);
$dref = $_[1]; $cref = $_[2];
$out = `showmount -e $_[0] 2>&1`;
if ($?) { return $out; }
foreach (split(/\n/, $out)) {
	if (/^(\/\S*)\s+(.*)$/) {
		push(@$dref, $1); push(@$cref, $2);
		}
	}
return undef;
}

# broadcast_addr()
# Returns a useable broadcast address for finding NFS servers
sub broadcast_addr
{
local($out);
$out = `ifconfig -a 2>&1`;
if ($out =~ /broadcast\s+(\S+)/) { return $1; }
return "255.255.255.255";
}

sub device_name
{
return $_[0];
}

sub files_to_lock
{
return ( $config{'fstab_file'}, $config{'autofs_file'} );
}

1;
07070100007750000081e40000000000000002000000013ac0388d0000dc44000000200000000000000000000000000000001f00000003reloc/mount/turbo-linux-lib.pl    # linux-lib.pl
# Mount table functions for linux

if (&has_command("amd")) {
	local $amd = &read_amd_conf();
	$amd_support = $amd =~ /\[\s*global\s*\]/i ? 2 : 1;
	}
$autofs_support = &has_command("automount");
if (&has_command("mount.smb")) {
	$smbfs_support = `mount.smb -v` =~ /username=/i ? 4 : 3;
	}
elsif (&has_command("mount.smbfs")) {
	$smbfs_support = `mount.smbfs -v` =~ /username=/i ? 4 : 3;
	}
elsif (&has_command("smbmount")) {
	$smbfs_support = `smbmount -v` =~ /Version\s+2/i ? 2 : 1;
	}
$swaps_support = -r "/proc/swaps";
if (&has_command("e2label") &&
    `mount --version 2>&1` =~ /(\d+)\.(\d+)/ && ($1 > 2 || $1==2 && $2 >= 10)) {
	$has_e2label = 1;
	}

# Return information about a filesystem, in the form:
#  directory, device, type, options, fsck_order, mount_at_boot
# If a field is unused or ignored, a - appears instead of the value.
# Swap-filesystems (devices or files mounted for VM) have a type of 'swap',
# and 'swap' in the directory field
sub list_mounts
{
return @list_mounts_cache if (@list_mounts_cache);
local(@rv, @p, @o, $_, $i, $j); $i = 0;

# Get /etc/fstab mounts
open(FSTAB, $config{fstab_file});
while(<FSTAB>) {
	local(@o, $at_boot);
	chop; s/#.*$//g;
	if (!/\S/ || /\signore\s/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "proc") { $p[0] = "proc"; }
	elsif ($p[2] eq "auto") { $p[2] = "*"; }
	elsif ($p[2] eq "swap") { $p[1] = "swap"; }
	elsif ($p[2] eq "smbfs") { $p[0] =~ s/\//\\/g; }
	$rv[$i] = [ $p[1], $p[0], $p[2] ];
	$rv[$i]->[5] = "yes";
	@o = split(/,/ , $p[3] eq "defaults" ? "" : $p[3]);
	if (($j = &indexof("noauto", @o)) >= 0) {
		# filesytem is not mounted at boot
		splice(@o, $j, 1);
		$rv[$i]->[5] = "no";
		}
	$rv[$i]->[3] = (@o ? join(',' , @o) : "-");
	$rv[$i]->[4] = (@p >= 5 ? $p[5] : 0);
	$i++;
	}
close(FSTAB);

if ($amd_support == 1) {
	# Get old automounter configuration, as used by redhat
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		@p = split(/\s+/, $1);
		for($j=0; $j<@p; $j+=2) {
			$rv[$i++] = [ $p[$j], $p[$j+1], "auto",
				      "-", 0, "yes" ];
			}
		}
	}
elsif ($amd_support == 2) {
	# Guess what? There's now a *new* amd config file format, introduced
	# in redhat 6.1 and caldera 2.3
	local @amd = &parse_amd_conf();
	local @sp = split(/:/, $amd[0]->{'opts'}->{'search_path'});
	local ($am, $sp);
	foreach $am (@amd) {
		local $mn = $am->{'opts'}->{'map_name'};
		if ($mn !~ /^\//) {
			foreach $sp (@sp) {
				if (-r "$sp/$mn") {
					$mn = "$sp/$mn";
					last;
					}
				}
			}
		$rv[$i++] = [ $am->{'dir'}, $mn,
			      "auto", $am->{'opts'}, 0, "yes" ]
			if ($am->{'dir'} ne 'global');
		}
	}

# Get kernel automounter configuration
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	while(<AUTO>) {
		chop;
		s/#.*$//g;
		if (/^\s*(\S+)\s+(\S+)\s*(.*)$/) {
			$rv[$i++] = [ $1, $2, "autofs",
				      ($3 ? &autofs_options($3) : "-"),
				      0, "yes" ];
			}
		}
	close(AUTO);
	}

@list_mounts_cache = @rv;
return @rv;
}


# create_mount(directory, device, type, options, fsck_order, mount_at_boot)
# Add a new entry to the fstab file, old or new automounter file
sub create_mount
{
local(@mlist, @amd, $_); local($opts);

if ($_[2] eq "auto") {
	if ($amd_support == 1) {
		# Adding an old automounter mount
		local $amd = &read_amd_conf();
		local $m = "$_[0] $_[1]";
		if ($amd =~ /MOUNTPTS=''/) {
			$amd =~ s/MOUNTPTS=''/MOUNTPTS='$m'/;
			}
		else {
			$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$1 $m'/;
			}
		&write_amd_conf($amd);
		}
	elsif ($amd_support == 2) {
		# Adding a new automounter mount
		open(AMD, ">>$config{'auto_file'}");
		print AMD "\n";
		print AMD "[ $_[0] ]\n";
		print AMD "map_name = $_[1]\n";
		close(AMD);
		}
	}
elsif ($_[2] eq "autofs") {
	# Adding a new automounter mount
	open(AUTO, ">> $config{'autofs_file'}");
	print AUTO "$_[0]  $_[1]";
	if ($_[3]) { print AUTO "  ",&autofs_args($_[3]); }
	print AUTO "\n";
	close(AUTO);
	}
else {
	# Adding a normal mount to the fstab file
	local $dev = $_[1];
	$dev =~ s/\\/\//g if ($_[2] eq 'smbfs');
	open(FSTAB, ">> $config{fstab_file}");
	print FSTAB "$dev  $_[0]  $_[2]";
	$opts = $_[3] eq "-" ? "" : $_[3];
	if ($_[5] eq "no") {
		$opts = join(',' , (split(/,/ , $opts) , "noauto"));
		}
	if ($opts eq "") { print FSTAB "  defaults"; }
	else { print FSTAB "  $opts"; }
	print FSTAB "  0  ";
	print FSTAB $_[4] eq "-" ? "0\n" : "$_[4]\n";
	close(FSTAB);
	}
undef(@list_mounts_cache);
}


# change_mount(num, directory, device, type, options, fsck_order, mount_at_boot)
# Change an existing permanent mount
sub change_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line =~ /\S/ && $line !~ /\signore\s/ && $i++ == $_[0]) {
		# Found the line to replace
		print FSTAB "$_[2]  $_[1]  $_[3]";
		$opts = $_[4] eq "-" ? "" : $_[4];
		if ($_[6] eq "no") {
			$opts = join(',' , (split(/,/ , $opts) , "noauto"));
			}
		if ($opts eq "") { print FSTAB "  defaults"; }
		else { print FSTAB "  $opts"; }
		print FSTAB "  0  ";
		print FSTAB $_[5] eq "-" ? "0\n" : "$_[5]\n";
		}
	else { print FSTAB $_,"\n"; }
	}
close(FSTAB);

if ($amd_support == 1) {
	# Update older amd configuration
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		# found mount points line..
		local @mpts = split(/\s+/, $1);
		for($j=0; $j<@mpts; $j+=2) {
			if ($i++ == $_[0]) {
				$mpts[$j] = $_[1];
				$mpts[$j+1] = $_[2];
				}
			}
		local $mpts = join(" ", @mpts);
		$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$mpts'/;
		}
	&write_amd_conf($amd);
	}
elsif ($amd_support == 2) {
	# Update new amd configuration
	local @amd = &parse_amd_conf();
	local $lref = &read_file_lines($config{'auto_file'});
	foreach $am (@amd) {
		next if ($am->{'dir'} eq 'global');
		if ($i++ == $_[0]) {
			local @nl = ( "[ $_[1] ]" );
			local %opts = %{$am->{'opts'}};
			$opts->{'map_name'} = $_[2];
			foreach $o (keys %opts) {
				push(@nl, "$o = $opts{$o}");
				}
			splice(@$lref, $am->{'line'},
			       $am->{'eline'} - $am->{'line'} + 1, @nl);
			}
		}
	&flush_file_lines();
	}

# Update autofs configuration
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	@auto = <AUTO>;
	close(AUTO);
	open(AUTO, "> $config{'autofs_file'}");
	foreach (@auto) {
		chop; ($line = $_) =~ s/#.*$//g;
		if ($line =~ /\S/ && $i++ == $_[0]) {
			print AUTO "$_[1]  $_[2]";
			if ($_[4]) { print AUTO "  ",&autofs_args($_[4]); }
			print AUTO "\n";
			}
		else { print AUTO $_,"\n"; }
		}
	close(AUTO);
	}
undef(@list_mounts_cache);
}


# delete_mount(index)
# Delete an existing permanent mount
sub delete_mount
{
local($i, @fstab, $line, $opts, $j, @amd);
$i = 0;

# Update fstab file
open(FSTAB, $config{fstab_file});
@fstab = <FSTAB>;
close(FSTAB);
open(FSTAB, "> $config{fstab_file}");
foreach (@fstab) {
	chop; ($line = $_) =~ s/#.*$//g;
	if ($line !~ /\S/ || $line =~ /\signore\s/ || $i++ != $_[0]) {
		# Don't delete this line
		print FSTAB $_,"\n";
		}
	}
close(FSTAB);

if ($amd_support == 1) {
	# Update older amd configuration
	local $amd = &read_amd_conf();
	if ($amd =~ /MOUNTPTS='(.*)'/) {
		# found mount points line..
		local @mpts = split(/\s+/, $1);
		for($j=0; $j<@mpts; $j+=2) {
			if ($i++ == $_[0]) {
				splice(@mpts, $j, 2);
				}
			}
		local $mpts = join(" ", @mpts);
		$amd =~ s/MOUNTPTS='(.*)'/MOUNTPTS='$mpts'/;
		}
	&write_amd_conf($amd);
	}
elsif ($amd_support == 2) {
	# Update new amd configuration
	local @amd = &parse_amd_conf();
	local $lref = &read_file_lines($config{'auto_file'});
	foreach $am (@amd) {
		next if ($am->{'dir'} eq 'global');
		if ($i++ == $_[0]) {
			splice(@$lref, $am->{'line'},
			       $am->{'eline'} - $am->{'line'} + 1);
			}
		}
	&flush_file_lines();
	}

# Update AMD file
if ($amd_support) {
	open(AMD, $config{auto_file});
	@amd = <AMD>;
	close(AMD);
	open(AMD, "> $config{auto_file}");
	foreach (@amd) {
		if (/MOUNTPTS='(.*)'/) {
			# found mount points line..
			@mpts = split(/\s+/, $1);
			for($j=0; $j<@mpts; $j+=2) {
				if ($i++ != $_[0]) {
					push(@nmpts, $mpts[$j]);
					push(@nmpts, $mpts[$j+1]);
					}
				}
			print AMD "MOUNTPTS='".join(' ', @nmpts)."'\n";
			}
		else { print AMD $_; }
		}
	close(AMD);
	}

# Update autofs file
if ($autofs_support) {
	open(AUTO, $config{'autofs_file'});
	@auto = <AUTO>;
	close(AUTO);
	open(AUTO, "> $config{'autofs_file'}");
	foreach (@auto) {
		chop; ($line = $_) =~ s/#.*$//g;
		if ($line !~ /\S/ || $i++ != $_[0]) {
			# keep this line
			print AUTO $_,"\n";
			}
		}
	close(AUTO);
	}
undef(@list_mounts_cache);
}


# list_mounted()
# Return a list of all the currently mounted filesystems and swap files.
# The list is in the form:
#  directory device type options
sub list_mounted
{
return @list_mounted_cache if (@list_mounted_cache);
local(@rv, @p, @o, $mo, $_, %smbopts);
local @mounts = &list_mounts();

&read_smbopts();
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	chop;
	s/#.*$//g; if (!/\S/) { next; }
	@p = split(/\s+/, $_);
	if ($p[2] eq "auto" || $p[0] =~ /^\S+:\(pid\d+\)$/) {
		# Automounter map.. turn the map= option into the device
		@o = split(/,/ , $p[3]);
		($mo) = grep {/^map=/} (@o);
		$mo =~ /^map=(.*)$/; $p[0] = $1;
		$p[3] = join(',' , grep {!/^map=/} (@o));
		$p[2] = "auto";
		}
	elsif ($p[2] eq "autofs") {
		# Kernel automounter map.. use the pid to find the map
		$p[0] =~ /automount\(pid(\d+)\)/ || next;
		$out = `ps hwwww $1`;
		$out =~ /automount\s+(.*)\s*(\S+)\s+(file|program|yp)(,\S+)?\s+(\S+)/ || next;
		$p[0] = $5;
		$p[3] = $1 ? &autofs_options($1) : "-";
		}
	elsif ($p[2] eq "smbfs") {
		# Change from //FOO/BAR to \\foo\bar
		$p[0] =~ s/\//\\/g;
		$p[0] = lc($p[0]);
		$p[3] = $smbopts{$p[1]};
		}
	elsif ($p[2] eq "proc") {
		# The source for proc mounts is always proc
		$p[0] = "proc";
		}
	if ($p[2] eq 'ext2' && $has_e2label) {
		# Check for a label on this partition, and there is one
		# and this filesystem is in fstab with the label, change
		# the device.
		local $label = `e2label $p[0] 2>^1`;
		if (!$?) {
			chop($label);
			foreach $m (@mounts) {
				if ($m->[0] eq $p[1] &&
				    $m->[1] eq "LABEL=$label") {
					$p[0] = "LABEL=$label";
					last;
					}
				}
			}
		}
	# check fstab for a mount on the same dir which is a symlink
	# to the device
	local @st = stat($p[0]);
	foreach $m (@mounts) {
		if ($m->[0] eq $p[1]) {
			local @fst = stat($m->[1]);
			if ($fst[0] == $st[0] && $fst[1] == $st[1]) {
				# symlink to the same place!
				$p[0] = $m->[1];
				last;
				}
			}
		}
	push(@rv, [ $p[1], $p[0], $p[2], $p[3] ]);
	}
close(MTAB);
open(SWAPS, "/proc/swaps");
while(<SWAPS>) {
	chop;
	if (/^(\/\S+)\s+/) {
		push(@rv, [ "swap", $1, "swap", "-" ]);
		}
	}
close(SWAPS);
@list_mounted_cache = @rv;
return @rv;
}


# mount_dir(directory, device, type, options)
# Mount a new directory from some device, with some options. Returns 0 if ok,
# or an error string if failed
sub mount_dir
{
local($out, $opts, $shar, %options, %smbopts);
if ($_[2] eq "swap") {
	# Use swapon to add the swap space..
	$out = &backquote_logged("swapon $_[1] 2>&1");
	if ($out =~ /Invalid argument/) {
		# looks like this swap partition isn't ready yet.. set it up
		$out = &backquote_logged("mkswap $_[1] 2>&1");
		if ($?) { return "mkswap failed : <pre>$out</pre>"; }
		$out = &backquote_logged("swapon $_[1] 2>&1");
		}
	if ($?) { return "<pre>$out</pre>"; }
	}
elsif ($_[2] eq "auto") {
	# Old automounter filesystem
	$out = &backquote_logged("amd $_[0] $_[1] >/dev/null 2>/dev/null");
	if ($?) { return $text{'linux_eamd'}; }
	}
elsif ($_[2] eq "autofs") {
	# New automounter filesystem
	$opts = &autofs_args($_[3]);
	$type = $_[1] !~ /^\// ? "yp" :
		(-x $_[1]) ? "program" : "file";
	$out = &backquote_logged("automount $opts $_[0] $type $_[1] 2>&1");
	if ($?) { return &text('linux_eauto', "<pre>$out</pre>"); }
	}
elsif ($_[2] eq "smbfs") {
	local $shar = $_[1];
	$shar =~ s/\\/\//g;
	if ($smbfs_support >= 3) {
		# SMB filesystem mounted with mount command
		$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
		$out = &backquote_logged("mount -t $_[2] $opts $shar $_[0] 2>&1");
		if ($? || $out =~ /failed/i) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "mount -t $_[2] $opts $shar $_[0] : <pre>$out</pre>";
			}
		}
	elsif ($smbfs_support == 2) {
		# SMB filesystem mounted with version 2.x smbmount
		&parse_options("smbfs", $_[3]);
		$opts =
		    ($options{'user'} ? "-U $options{'user'} " : "").
		    ($options{'passwd'} ? "" : "-N ").
		    ($options{'workgroup'} ? "-W $options{'workgroup'} " : "").
		    ($options{'clientname'} ? "-n $options{'clientname'} " : "").
		    ($options{'machinename'} ? "-I $options{'machinename'} " : "");
		&foreign_require("proc", "proc-lib.pl");
		local ($fh, $fpid) = &foreign_call(
			"proc", "pty_process_exec_logged", "sh", "-c",
			"smbmount $shar $_[0] -d 0 $opts");
		if ($options{'passwd'}) {
			local $w = &wait_for($fh, "word:");
			if ($w < 0) {
				&system_logged("umount $_[0] >/dev/null 2>&1");
				return $text{'linux_esmbconn'};
				}
			local $p = "$options{'passwd'}\n";
			syswrite($fh, $p, length($p));
			}
		local $got;
		while(<$fh>) {
			$got .= $_;
			}
		if ($got =~ /failed/) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "<pre>$got</pre>\n";
			}
		close($fh);
		}
	elsif ($smbfs_support == 1) {
		# SMB filesystem mounted with older smbmount
		&parse_options("smbfs", $_[3]);
		$shortname = &get_system_hostname();
		if ($shortname =~ /^([^\.]+)\.(.+)$/) { $shortname = $1; }
		$opts =
		   ($options{servername} ? "-s $options{servername} " : "").
		   ($options{clientname} ? "-c $options{clientname} "
					 : "-c $shortname ").
		   ($options{machinename} ? "-I $options{machinename} " : "").
		   ($options{user} ? "-U $options{user} " : "").
		   ($options{passwd} ? "-P $options{passwd} " : "-n ").
		   ($options{uid} ? "-u $options{uid} " : "").
		   ($options{gid} ? "-g $options{gid} " : "").
		   ($options{fmode} ? "-f $options{fmode} " : "").
		   ($options{dmode} ? "-d $options{dmode} " : "");
		$out = &backquote_logged("smbmount $shar $_[0] $opts 2>&1");
		if ($out) {
			&system_logged("umount $_[0] >/dev/null 2>&1");
			return "<pre>$out</pre>";
			}
		}
	&read_smbopts();
	$smbopts{$_[0]} = $_[3] eq "-" ? "dummy=1" : $_[3];
	&write_smbopts();
	}
else {
	# some filesystem supported by mount
	$opts = $_[3] eq "-" ? "" : "-o \"$_[3]\"";
	if ($_[1] =~ /LABEL=(.*)/) {
		$cmd = "mount -t $_[2] -L $1 $opts $_[0]";
		}
	else {
		$cmd = "mount -t $_[2] $opts $_[1] $_[0]";
		}
	$out = &backquote_logged("$cmd 2>&1");
	if ($?) { return "<pre>$cmd : $out</pre>"; }
	}
undef(@list_mounted_cache);
return 0;
}


# unmount_dir(directory, device, type)
# Unmount a directory that is currently mounted. Returns 0 if ok,
# or an error string if failed
sub unmount_dir
{
local($out, %smbopts, $dir);
if ($_[2] eq "swap") {
	# Use swapoff to remove the swap space..
	$out = &backquote_logged("swapoff $_[1]");
	if ($?) { return "<pre>$out</pre>"; }
	}
elsif ($_[2] eq "auto") {
	# Kill the amd process
	$dir = $_[0];
	if (`cat /etc/mtab` =~ /:\(pid([0-9]+)\)\s+$dir\s+(auto|nfs)\s+/) {
		&kill_logged('TERM', $1) || return $text{'linux_ekillamd'};
		}
	sleep(2);
	}
elsif ($_[2] eq "autofs") {
	# Kill the automount process
	$dir = $_[0];
	`cat /etc/mtab` =~ /automount\(pid([0-9]+)\)\s+$dir\s+autofs\s+/;
	&kill_logged('TERM', $1) || return $text{'linux_ekillauto'};
	sleep(2);
	}
else {
	$out = &backquote_logged("umount $_[0] 2>&1");
	if ($?) { return "<pre>$out</pre>"; }
	if ($_[2] eq "smbfs") {
		# remove options from list
		&read_smbopts();
		delete($smbopts{$_[0]});
		&write_smbopts();
		}
	}
undef(@list_mounted_cache);
return 0;
}


# mount_modes(type)
# Given a filesystem type, returns 4 numbers that determine how the file
# system can be mounted, and whether it can be fsck'd
#  0 - cannot be permanently recorded
#	(smbfs under linux before 2.2)
#  1 - can be permanently recorded, and is always mounted at boot
#	(swap under linux)
#  2 - can be permanently recorded, and may or may not be mounted at boot
#	(most normal filesystems)
# The second is:
#  0 - mount is always permanent => mounted when saved
#	(swap under linux before 2.2)
#  1 - doesn't have to be permanent
#	(normal fs types)
# The third is:
#  0 - cannot be fsck'd at boot time
#  1 - can be be fsck'd at boot
# The fourth is:
#  0 - can be unmounted
#  1 - cannot be unmounted
sub mount_modes
{
if ($_[0] eq "swap")
	{ return (1, $swaps_support ? 1 : 0, 0, 0); }
elsif ($_[0] eq "auto" || $_[0] eq "autofs")
	{ return (1, 1, 0, 0); }
elsif ($_[0] eq "smbfs")
	{ return ($smbfs_support >= 3 ? 2 : 0, 1, 0, 0); }
elsif ($_[0] eq "ext2" || $_[0] eq "minix" || $_[0] eq "xiafs")
	{ return (2, 1, 1, 0); }
else
	{ return (2, 1, 0, 0); }
}


# disk_space(type, directory)
# Returns the amount of total and free space for some filesystem, or an
# empty array if not appropriate.
sub disk_space
{
if (&get_mounted($_[1], "*") < 0) { return (); }
if ($_[0] eq "proc" || $_[0] eq "swap" ||
    $_[0] eq "auto" || $_[0] eq "autofs") { return (); }
`df -k $_[1]` =~ /Mounted on\n\S+\s+(\S+)\s+\S+\s+(\S+)/;
return ($1, $2);
}


# list_fstypes()
# Returns an array of all the supported filesystem types. If a filesystem is
# found that is not one of the supported types, generate_location() and
# generate_options() will not be called for it.
sub list_fstypes
{
local @sup = ("ext2", "minix", "msdos", "nfs", "iso9660", "ext", "xiafs",
	      "hpfs", "fat", "vfat", "umsdos", "sysv", "reiserfs");
push(@sup, "smbfs") if ($smbfs_support);
push(@sup, "auto") if ($amd_support);
push(@sup, "autofs") if ($autofs_support);
push(@sup, "swap");
return @sup;
}


# fstype_name(type)
# Given a short filesystem type, return a human-readable name for it
sub fstype_name
{
local(%fsmap);
%fsmap = ("ext2","Linux Native Filesystem",
	  "minix","Minix Filesystem",
	  "msdos","MS-DOS Filesystem",
	  "nfs","Network Filesystem",
	  "smbfs","Windows Networking Filesystem",
	  "iso9660","ISO9660 CD-ROM",
	  "ext","Old EXT Linux Filesystem",
	  "xiafs","Old XIAFS Linux Filesystem",
	  "hpfs","OS/2 Filesystem",
	  "fat","MS-DOS Filesystem",
	  "vfat","Windows 95 Filesystem",
	  "umsdos","Linux on top of MS-DOS Filesystem",
	  "sysv","System V Filesystem",
	  "swap","Virtual Memory",
	  "proc","Kernel Filesystem",
	  "devpts","PTS Filesystem",
	  "auto",($autofs_support ? "Old " : "")."Automounter Filesystem",
	  "reiserfs","Reiser Filesystem",
	  "autofs","New Automounter Filesystem",
	  "usbdevfs","USB Devices",
	  "shm","SysV Shared Memory");
return $config{long_fstypes} && $fsmap{$_[0]} ? $fsmap{$_[0]} : uc($_[0]);
}


# multiple_mount(type)
# Returns 1 if filesystems of this type can be mounted multiple times, 0 if not
sub multiple_mount
{
return ($_[0] eq "nfs" || $_[0] eq "auto" || $_[0] eq "autofs");
}


# generate_location(type, location)
# Output HTML for editing the mount location of some filesystem.
sub generate_location
{
if ($_[0] eq "nfs") {
	# NFS mount from some host and directory
	$_[1] =~ /^([^:]+):(.*)$/;
	print "<tr> <td><b>$text{'linux_nfshost'}</b></td>\n";
	print "<td><input name=nfs_host size=20 value=\"$1\">\n";
	&nfs_server_chooser_button("nfs_host");
	print "&nbsp;<b>$text{'linux_nfsdir'}</b>\n";
	print "<input name=nfs_dir size=20 value=\"$2\">\n";
	&nfs_export_chooser_button("nfs_host", "nfs_dir");
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "auto") {
	# Using some automounter map
	print "<tr> <td><b>$text{'linux_map'}</b></td>\n";
	print "<td><input name=auto_map size=20 value=\"$_[1]\">\n";
	print &file_chooser_button("auto_map", 0);
	print "</td> <td colspan=2></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	# Using some kernel automounter map
	print "<tr> <td><b>$text{'linux_map'}</b></td>\n";
	print "<td><input name=autofs_map size=20 value=\"$_[1]\">\n";
	print &file_chooser_button("autofs_map", 0);
	print "</td> <td colspan=2></td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swap file or device
	&foreign_require("fdisk", "fdisk-lib.pl");
	printf "<tr> <td valign=top><b>$text{'linux_swapfile'}</b></td>\n";
	print "<td colspan=3>\n";
	local $found;
	local $sel = &foreign_call("fdisk", "partition_select", "lnx_disk",
				   $_[1], 3, \$found);
	printf "<input type=radio name=lnx_dev value=0 %s> %s %s<br>\n",
		$found ? "checked" : "", $text{'linux_disk'}, $sel;
	printf "<input type=radio name=lnx_dev value=1 %s> %s\n",
		$found ? "" : "checked", $text{'linux_swapfile'};
	printf "<input name=lnx_other size=35 value='%s'><br>\n",
		$found ? "" : $_[1];
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "smbfs") {
	# Windows filesystem
	$_[1] =~ /^\\\\(.*)\\(.*)$/;
	print "<tr> <td><b>$text{'linux_smbserver'}</b></td>\n";
	print "<td><input name=smbfs_server value=\"$1\" size=20>\n";
	&smb_server_chooser_button("smbfs_server");
	print "</td>\n";
	print "<td><b>$text{'linux_smbshare'}</b></td>\n";
	print "<td><input name=smbfs_share value=\"$2\" size=20>\n";
	&smb_share_chooser_button("smbfs_server", "smbfs_share");
	print "</td> </tr>\n";
	}
else {
	# This is some linux disk-based filesystem
	&foreign_require("fdisk", "fdisk-lib.pl");
	printf "<tr> <td valign=top><b>%s</b></td>\n", &fstype_name($_[0]);
	print "<td colspan=3>\n";
	local ($found, $rfound, $lfound, $rsel, $c);
	local $sel = &foreign_call("fdisk", "partition_select", "lnx_disk",
				   $_[1], 0, \$found);
	printf "<input type=radio name=lnx_dev value=0 %s> %s %s<br>\n",
		$found ? "checked" : "", $text{'linux_disk'}, $sel;

	if (&foreign_check("raid")) {
		&foreign_require("raid", "raid-lib.pl");
		local $conf = &foreign_call("raid", "get_raidtab");
		foreach $c (@$conf) {
			if ($c->{'active'}) {
				$rsel .= sprintf "<option value=%s %s>%s\n",
					$c->{'value'},
					$_[1] eq $c->{'value'} ? 'selected' : '',
					&text('linux_rdev', substr($c->{'value'}, -1));
				$rfound++ if ($_[1] eq $c->{'value'});
				}
			}
		if ($rsel) {
			printf "<input type=radio name=lnx_dev value=2 %s> %s\n",
				$rfound ? "checked" : " ", $text{'linux_raid'};
			print "<select name=lnx_raid>\n",$rsel,"</select><br>\n";
			}
		}

	if ($has_e2label) {
		local $l = $_[1] =~ /LABEL=(.*)/ ? $1 : undef;
		local $esel = &foreign_call("fdisk", "label_select",
					    "lnx_label", $l, \$lfound);
		if ($esel) {
			printf "<input type=radio name=lnx_dev value=3 %s> %s %s<br>\n", $lfound ? "checked" : "", $text{'linux_lsel'}, $esel;
			}
		}

	printf "<input type=radio name=lnx_dev value=1 %s> %s\n",
		$found || $rfound || $lfound ? "" : "checked", $text{'linux_other'};
	printf "<input name=lnx_other size=35 value='%s'><br>\n",
		$found || $rfound || $lfound ? "" : $_[1];
	print "</td> </tr>\n";
	}
}


# generate_options(type, newmount)
# Output HTML for editing mount options for a particular filesystem 
# under this OS
sub generate_options
{
if ($_[0] ne "swap" && $_[0] ne "auto" &&
    $_[0] ne "autofs" && $_[0] ne "smbfs") {
	# Lots of options are common to all linux filesystems
	print "<tr> <td><b>$text{'linux_ro'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_ro value=1 %s> $text{'yes'}\n",
		defined($options{"ro"}) ? "checked" : "";
	printf "<input type=radio name=lnx_ro value=0 %s> $text{'no'}</td>\n",
		defined($options{"ro"}) ? "" : "checked";

	print "<td><b>$text{'linux_sync'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_sync value=0 %s> $text{'yes'}\n",
		defined($options{"sync"}) ? "" : "checked";
	printf "<input type=radio name=lnx_sync value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"sync"}) ? "checked" : "";

	print "<tr> <td><b>$text{'linux_nodev'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_nodev value=0 %s> $text{'yes'}\n",
		defined($options{"nodev"}) ? "" : "checked";
	printf "<input type=radio name=lnx_nodev value=1 %s> $text{'no'}</td>\n",
		defined($options{"nodev"}) ? "checked" : "";

	print "<td><b>$text{'linux_noexec'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_noexec value=0 %s> $text{'yes'}\n",
		defined($options{"noexec"}) ? "" : "checked";
	printf "<input type=radio name=lnx_noexec value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"noexec"}) ? "checked" : "";

	print "<tr> <td><b>$text{'linux_nosuid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=lnx_nosuid value=1 %s> $text{'yes'}\n",
		defined($options{"nosuid"}) ? "checked" : "";
	printf "<input type=radio name=lnx_nosuid value=0 %s> $text{'no'}</td>\n",
		defined($options{"nosuid"}) ? "" : "checked";

	print "<td><b>$text{'linux_user'}</b></td>\n";
	printf"<td nowrap><input type=radio name=lnx_user value=1 %s> $text{'yes'}\n",
		defined($options{"user"}) ? "checked" : "";
	printf "<input type=radio name=lnx_user value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"user"}) ? "" : "checked";
	}
	
if ($_[0] eq "ext2") {
	# Ext2 has lots more options..
	print "<tr> <td><b>$text{'linux_check'}</b></td>\n";
	print "<td><select name=ext2_check>\n";
	printf "<option value=normal %s> $text{'linux_normal'}\n",
		$options{"check"} eq "" || $options{"check"} eq "normal" ?
			"selected" : "";
	printf "<option value=strict %s> $text{'linux_strict'}\n",
		$options{"check"} eq "strict" ? "selected" : "";
	printf "<option value=none %s> $text{'linux_none'}\n",
		$options{"check"} eq "none" || defined($options{"nocheck"}) ?
			"selected" : "";
	print "</select></td>\n";

	print "<td><b>$text{'linux_errors'}</b></td>\n";
	print "<td><select name=ext2_errors>\n";
	printf "<option value=default %s> $text{'default'}\n",
		!defined($options{"errors"}) ? "selected" : "";
	printf "<option value=continue %s> $text{'linux_continue'}\n",
		$options{"error"} eq "continue" ? "selected" : "";
	printf "<option value=remount-ro %s> $text{'linux_remount_ro'}\n",
		$options{"error"} eq "remount-ro" ? "selected" : "";
	printf "<option value=panic %s> $text{'linux_panic'}\n",
		$options{"error"} eq "panic" ? "selected" : "";
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_grpid'}</b></td>\n";
	printf "<td nowrap><input type=radio name=ext2_grpid value=0 %s> $text{'yes'}\n",
		defined($options{"grpid"}) || defined($options{"bsdgroups"}) ?
			"" : "checked";
	printf "<input type=radio name=ext2_grpid value=1 %s> $text{'no'}</td>\n",
		defined($options{"grpid"}) || defined($options{"bsdgroups"}) ?
			"checked" : "";

	print "<td><b>$text{'linux_quotas'}</b></td>\n";
	local $usrquota = defined($options{"usrquota"});
	local $grpquota = defined($options{"grpquota"});
	print "<td nowrap><select name=ext2_quota>\n";
	printf "<option value=0 %s> $text{'no'}\n",
		$usrquota || $grpquota ? "" : "selected";
	printf "<option value=1 %s> $text{'linux_usrquota'}\n",
		$usrquota && !$grpquota ? "selected" : "";
	printf "<option value=2 %s> $text{'linux_grpquota'}\n",
		$grpquota && !$usrquota ? "selected" : "";
	if (`uname -r` =~ /^2\.0\.(\d+)/ && $1 < 31) {
		printf "<option value=3 %s> $text{'linux_usrgrpquota2'}\n",
			$usrquota && $grpquota ? "selected" : "";
		}
	else {
		printf "<option value=3 %s> $text{'linux_usrgrpquota'}\n",
			$usrquota && $grpquota ? "selected" : "";
		}
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_resuid'}</b></td>\n";
	printf "<td><input name=ext2_resuid size=8 value=\"%s\">\n",
		defined($options{"resuid"}) ? getpwuid($options{"resuid"}) : "";
	print &user_chooser_button("ext2_resuid", 0),"</td>\n";

	print "<td><b>$text{'linux_resgid'}</b></td>\n";
	printf "<td><input name=ext2_resgid size=8 value=\"%s\">\n",
		defined($options{"resgid"}) ? getgrgid($options{"resgid"}) : "";
	print &group_chooser_button("ext2_resgid", 0),"</td> </tr>\n";
	}
elsif ($_[0] eq "nfs") {
	# Linux nfs has some more options...
	print "<tr> <td><b>$text{'linux_bg'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_bg value=1 %s> $text{'yes'}\n",
		defined($options{"bg"}) ? "checked" : "";
	printf "<input type=radio name=nfs_bg value=0 %s> $text{'no'}</td>\n",
		defined($options{"bg"}) ? "" : "checked";

	print "<td><b>$text{'linux_soft'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_soft value=1 %s> $text{'yes'}\n",
		defined($options{"soft"}) ? "checked" : "";
	printf "<input type=radio name=nfs_soft value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"soft"}) ? "" : "checked";

	print "<tr> <td><b>$text{'linux_timeo'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_timeo_def value=1 %s> $text{'default'}\n",
		defined($options{"timeo"}) ? "" : "checked";
	printf "<input type=radio name=nfs_timeo_def value=0 %s>\n",
		defined($options{"timeo"}) ? "checked" : "";
	printf "<input size=5 name=nfs_timeo value=$options{timeo}></td>\n";

	print "<td><b>$text{'linux_retrans'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_retrans_def value=1 %s> $text{'default'}\n",
		defined($options{"retrans"}) ? "" : "checked";
	printf "<input type=radio name=nfs_retrans_def value=0 %s>\n",
		defined($options{"retrans"}) ? "checked" : "";
	print "<input size=5 name=nfs_retrans value=$options{retrans}></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_vers'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_vers_def value=1 %s> $text{'linux_high'}\n",
		defined($options{"nfsvers"}) ? "" : "checked";
	printf "<input type=radio name=nfs_vers_def value=0 %s>\n",
		defined($options{"nfsvers"}) ? "checked" : "";
	print "<input size=1 name=nfsvers value=$options{nfsvers}></td>\n";

	print "<td><b>$text{'linux_port'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_port_def value=1 %s> $text{'default'}\n",
		defined($options{"port"}) ? "" : "checked";
	printf "<input type=radio name=nfs_port_def value=0 %s>\n",
		defined($options{"port"}) ? "checked" : "";
	print "<input size=5 name=nfs_port value=$options{port}></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_intr'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_intr value=1 %s> $text{'yes'}\n",
		defined($options{"intr"}) ? "checked" : "";
	printf "<input type=radio name=nfs_intr value=0 %s> $text{'no'}</td>\n",
		defined($options{"intr"}) ? "" : "checked";

	print "<td><b>$text{'linux_tcp'}</b></td>\n";
	printf "<td nowrap><input type=radio name=nfs_tcp value=1 %s> TCP\n",
		defined($options{"tcp"}) ? "checked" : "";
	printf "<input type=radio name=nfs_tcp value=0 %s> UDP</td> </tr>\n",
		defined($options{"tcp"}) ? "" : "checked";
	}
elsif ($_[0] eq "fat" || $_[0] eq "vfat" || $_[0] eq "msdos" || $_[0] eq "umsdos"){
	# All dos-based filesystems share some options
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=fat_uid size=8 value=\"%s\">\n",
		defined($options{'uid'}) ? getpwuid($options{'uid'}) : "";
	print &user_chooser_button("fat_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=fat_gid size=8 value=\"%s\">\n",
		defined($options{'gid'}) ? getgrgid($options{'gid'}) : "";
	print &group_chooser_button("fat_gid", 0),"</td> </tr>\n";

	print "<tr> <td><b>$text{'linux_rules'}</b></td>\n";
	print "<td><select name=fat_check>\n";
	printf "<option value=\"\" %s> $text{'default'}\n",
		defined($options{"check"}) ? "" : "selected";
	printf "<option value=r %s> $text{'linux_relaxed'}\n",
		$options{"check"} =~ /^r/ ? "selected" : "";
	printf "<option value=n %s> $text{'linux_normal'}\n",
		$options{"check"} =~ /^n/ ? "selected" : "";
	printf "<option value=s %s> $text{'linux_strict'}\n",
		$options{"check"} =~ /^s/ ? "selected" : "";
	print "</select></td>\n";

	print "<td><b>$text{'linux_conv'}</b></td>\n";
	print "<td><select name=fat_conv>\n";
	printf "<option value=\"\" %s> $text{'linux_none'}\n",
		$options{"conv"} =~ /^b/ || !defined($options{"conv"}) ?
		"selected" : "";
	printf "<option value=t %s> $text{'linux_allfiles'}\n",
		$options{"conv"} =~ /^t/ ? "selected" : "";
	printf "<option value=a %s> $text{'linux_textfiles'}\n",
		$options{"conv"} =~ /^a/ ? "selected" : "";
	print "</select></td> </tr>\n";

	print "<tr> <td><b>$text{'linux_umask'}</b></td>\n";
	printf "<td><input type=radio name=fat_umask_def value=1 %s> $text{'default'}\n",
		defined($options{"umask"}) ? "" : "checked";
	printf "<input type=radio name=fat_umask_def value=0 %s>\n",
		defined($options{"umask"}) ? "checked" : "";
	print "<input size=5 name=fat_umask value=\"$options{umask}\"></td>\n";

	print "<td><b>$text{'linux_quiet'}</b></td>\n";
	printf "<td nowrap><input type=radio name=fat_quiet value=0 %s> $text{'yes'}\n",
		defined($options{"quiet"}) ? "" : "checked";
	printf "<input type=radio name=fat_quiet value=1 %s> $text{'no'}</td> </tr>\n",
		defined($options{"quiet"}) ? "checked" : "";

	if ($_[0] eq "vfat") {
		# vfat has some extra options beyond fat
		print "<tr> <td><b>$text{'linux_uni_xlate'}</b></td>\n";
		printf "<td><input type=radio name=fat_uni_xlate value=1 %s> $text{'yes'}\n",
			defined($options{"uni_xlate"}) ? "checked" : "";
		printf "<input type=radio name=fat_uni_xlate value=0 %s> $text{'no'}</td>\n",
			defined($options{"uni_xlate"}) ? "" : "checked";

		print "<td><b>$text{'linux_posix'}</b></td>\n";
		printf "<td nowrap><input type=radio name=fat_posix value=1 %s> $text{'yes'}\n",
			defined($options{"posix"}) ? "checked" : "";
		printf "<input type=radio name=fat_posix value=0 %s> $text{'no'}</td> </tr>\n",
			defined($options{"posix"}) ? "" : "checked";
		}
	}
elsif ($_[0] eq "hpfs") {
	# OS/2 filesystems has some more options..
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=hpfs_uid size=8 value=\"%s\">\n",
		defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
	print &user_chooser_button("hpfs_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=hpfs_gid size=8 value=\"%s\">\n",
		defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
	print &group_chooser_button("hpfs_gid", 0),"</td> </tr>\n";

	print "<tr> <td><b>$text{'linux_umask'}</b></td>\n";
	printf"<td><input type=radio name=hpfs_umask_def value=1 %s> Default\n",
		defined($options{"umask"}) ? "" : "checked";
	printf "<input type=radio name=hpfs_umask_def value=0 %s>\n",
		defined($options{"umask"}) ? "checked" : "";
	print "<input size=5 name=hpfs_umask value=\"$options{umask}\"></td>\n";

	print "<td><b>$text{'linux_conv2'}</b></td>\n";
	print "<td><select name=hpfs_conv>\n";
	printf "<option value=b %s> $text{'linux_none'}\n",
		$options{"conv"} =~ /^b/ || !defined($options{"conv"}) ?
		"selected" : "";
	printf "<option value=t %s> $text{'linux_allfiles'}\n",
		$options{"conv"} =~ /^t/ ? "selected" : "";
	printf "<option value=a %s> $text{'linux_textfiles'}\n",
		$options{"conv"} =~ /^a/ ? "selected" : "";
	print "</select></td> </tr>\n";
	}
elsif ($_[0] eq "iso9660") {
	# CD-ROM filesystems have some more options..
	print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
	printf "<td><input name=iso9660_uid size=8 value=\"%s\">\n",
		defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
	print &user_chooser_button("iso9660_uid", 0),"</td>\n";

	print "<td><b>$text{'linux_gid'}</b></td>\n";
	printf "<td><input name=iso9660_gid size=8 value=\"%s\">\n",
		defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
	print &group_chooser_button("iso9660_gid", 0),"</td>\n";

	print "<tr> <td><b>$text{'linux_rock'}</b></td>\n";
	printf "<td><input type=radio name=iso9660_norock value=1 %s> $text{'yes'}\n",
		defined($options{"norock"}) ? "checked" : "";
	printf "<input type=radio name=iso9660_norock value=0 %s> $text{'no'}</td>\n",
		defined($options{"norock"}) ? "" : "checked";

	print "<td><b>$text{'linux_mode'}</b></td>\n";
	printf"<td><input size=10 name=iso9660_mode value=\"%s\"></td> </tr>\n",
		defined($options{"mode"}) ? $options{"mode"} : "444";
	}
elsif ($_[0] eq "auto") {
	# Don't know how to set options for auto filesystems yet..
	print "<tr> <td><i>$text{'linux_noopts'}</i></td> </tr>\n";
	}
elsif ($_[0] eq "autofs") {
	print "<tr> <td><b>$text{'linux_timeout'}</b></td> <td>\n";
	printf"<input type=radio name=autofs_timeout_def value=1 %s> $text{'default'}\n",
		defined($options{'timeout'}) ? "" : "checked";
	printf "<input type=radio name=autofs_timeout_def value=0 %s>\n",
		defined($options{'timeout'}) ? "checked" : "";
	printf "<input name=autofs_timeout size=5 value=\"%s\"> $text{'linux_secs'}</td>\n",
		$options{'timeout'};

	print "<td><b>$text{'linux_pid_file'}</b>?</td>\n";
	printf"<td><input type=radio name=autofs_pid-file_def value=1 %s> $text{'no'}\n",
		defined($options{'pid-file'}) ? "" : "checked";
	printf "<input type=radio name=autofs_pid-file_def value=0 %s> $text{'yes'}\n",
		defined($options{'pid-file'}) ? "checked" : "";
	printf "<input name=autofs_pid-file size=20 value=\"%s\">\n",
		$options{'pid-file'};
	print &file_chooser_button("autofs_pid-file", 1);
	print "</td> </tr>\n";
	}
elsif ($_[0] eq "swap") {
	# Swap has no options..
	print "<tr> <td><i>$text{'linux_noopts'}</i></td> </tr>\n";
	}
elsif ($_[0] eq "smbfs") {
	# SMB filesystems have a few options..
	if (keys(%options) == 0 && !$_[1]) {
		print "<tr> <td colspan=4><i>$text{'linux_smbwarn'}</i></td> </tr>\n";
		}

	print "<tr> <td><b>$text{'linux_username'}</b></td>\n";
	printf "<td><input name=smbfs_user size=15 value=\"%s\"></td>\n",
		$smbfs_support == 4 ? $options{'username'} : $options{'user'};

	print "<td><b>$text{'linux_password'}</b></td>\n";
	printf "<td><input type=password name=smbfs_passwd size=15 value=\"%s\"></td> </tr>\n",
		$smbfs_support == 4 ? $options{'password'} : $options{'passwd'};

	if ($smbfs_support != 2) {
		print "<tr> <td><b>$text{'linux_uid'}</b></td>\n";
		printf "<td><input name=smbfs_uid size=8 value=\"%s\">\n",
			defined($options{"uid"}) ? getpwuid($options{"uid"}) : "";
		print &user_chooser_button("smbfs_uid", 0),"</td>\n";

		print "<td><b>$text{'linux_gid'}</b></td>\n";
		printf "<td><input name=smbfs_gid size=8 value=\"%s\">\n",
			defined($options{"gid"}) ? getgrgid($options{"gid"}) : "";
		print &group_chooser_button("smbfs_gid", 0),"</td>\n";
		}

	if ($smbfs_support == 1) {
		print "<tr> <td><b>$text{'linux_sname'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_sname_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"servername"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_sname_def value=0 %s>\n",
			defined($options{"servername"}) ? "checked" : "";
		print "<input size=10 name=smbfs_sname value=\"$options{servername}\"></td>\n";
		}
	elsif ($smbfs_support == 2) {
		print "<tr> <td><b>$text{'linux_wg'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_wg_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"workgroup"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_wg_def value=0 %s>\n",
			defined($options{"workgroup"}) ? "checked" : "";
		print "<input size=10 name=smbfs_wg value=\"$options{'workgroup'}\"></td>\n";
		}

	if ($smbfs_support < 3) {
		print "<td><b>$text{'linux_cname'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_cname_def value=1 %s> $text{'linux_auto'}\n",
			defined($options{"clientname"}) ? "" : "checked";
		printf "<input type=radio name=smbfs_cname_def value=0 %s>\n",
			defined($options{"clientname"}) ? "checked" : "";
		print "<input size=10 name=smbfs_cname value=\"$options{clientname}\"></td> </tr>\n";

		print "<tr> <td><b>$text{'linux_mname'}</b></td>\n";
		printf "<td colspan=3><input type=radio name=smbfs_mname_def value=1 %s> %s\n",
			defined($options{"machinename"}) ? "" : "checked", $text{'linux_auto'};
		printf "<input type=radio name=smbfs_mname_def value=0 %s>\n",
			defined($options{"machinename"}) ? "checked" : "";
		print "<input size=30 name=smbfs_mname value=\"$options{machinename}\"></td> </tr>\n";
		}

	if ($smbfs_support == 1) {
		print "<tr> <td><b>$text{'linux_fmode'}</b></td>\n";
		printf
		    "<td><input name=smbfs_fmode size=5 value=\"%s\"></td>\n",
		    defined($options{'fmode'}) ? $options{'fmode'} : "755";

		print "<td><b>$text{'linux_dmode'}</b></td>\n";
		printf
		    "<td><input name=smbfs_dmode size=5 value=\"%s\"></td>\n",
		    defined($options{'dmode'}) ? $options{'dmode'} : "755";
		print "</tr>\n";
		}
	elsif ($smbfs_support >= 3) {
		print "<tr> <td><b>$text{'linux_ro'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_ro value=1 %s> $text{'yes'}\n",
			defined($options{"ro"}) ? "checked" : "";
		printf "<input type=radio name=smbfs_ro value=0 %s> $text{'no'}</td>\n",
			defined($options{"ro"}) ? "" : "checked";

		print "<td><b>$text{'linux_user'}</b></td>\n";
		printf "<td><input type=radio name=smbfs_user2 value=1 %s> $text{'yes'}\n",
			defined($options{"user"}) ? "checked" : "";
		printf "<input type=radio name=smbfs_user2 value=0 %s> $text{'no'}</td> </tr>\n",
			defined($options{"user"}) ? "" : "checked";
		}
	}
elsif ($_[0] eq "reiserfs") {
	# Reiserfs is a new super-efficient filesystem
	print "<tr> <td><b>$text{'linux_notail'}</b></td>\n";
	printf "<td><input type=radio name=lnx_notail value=1 %s> $text{'yes'}\n",
		defined($options{"notail"}) ? "checked" : "";
	printf "<input type=radio name=lnx_notail value=0 %s> $text{'no'}</td> </tr>\n",
		defined($options{"notail"}) ? "" : "checked";
	}
}


# check_location(type)
# Parse and check inputs from %in, calling &error() if something is wrong.
# Returns the location string for storing in the fstab file
sub check_location
{
if ($_[0] eq "nfs") {
	local($out, $temp, $mout, $dirlist);

	if (&has_command("showmount")) {
		# Use ping and showmount to see if the host exists and is up
		if ($in{nfs_host} !~ /^\S+$/) {
			&error(&text('linux_ehost', $in{'nfs_host'}));
			}
		$out = `ping -c 1 '$in{nfs_host}' 2>&1`;
		if ($out =~ /unknown host/) {
			&error(&text('linux_ehost2', $in{'nfs_host'}));
			}
		elsif ($out =~ /100\% packet loss/) {
			&error(&text('linux_edown', $in{'nfs_host'}));
			}
		$out = `showmount -e '$in{nfs_host}' 2>&1`;
		if ($out =~ /Unable to receive/) {
			&error(&text('linux_enfs', $in{'nfs_host'}));
			}
		elsif ($?) {
			&error(&text('linux_elist', $out));
			}

		# Validate directory name
		foreach (split(/\n/, $out)) {
			if (/^(\/\S+)/) { $dirlist .= "$1\n"; }
			}
		if ($in{nfs_dir} !~ /^\/\S+$/) {
			&error(&text('linux_enfsdir', $in{'nfs_dir'},
				     $in{'nfs_host'}, "<pre>$dirlist</pre>"));
			}
		}

	# Try a test mount to see if filesystem is available
	$temp = &tempname();
	mkdir($temp, 0755);
	$mout = `mount $in{nfs_host}:$in{nfs_dir} $temp 2>&1`;
	if ($mout =~ /No such file or directory/i) {
		rmdir($temp);
		&error(&text('linux_enfsdir', $in{'nfs_dir'},
			     $in{'nfs_host'}, "<pre>$dirlist</pre>"));
		}
	elsif ($mout =~ /Permission denied/i) {
		rmdir($temp);
		&error(&text('linux_enfsperm', $in{'nfs_dir'}, $in{'nfs_host'}));
		}
	elsif ($?) {
		rmdir($temp);
		&error(&text('linux_enfsmount', "<tt>$mout</tt>"));
		}
	# It worked! unmount
	`umount $temp`;
	rmdir($temp);

	return "$in{nfs_host}:$in{nfs_dir}";
	}
elsif ($_[0] eq "auto") {
	# Check if the automounter map exists..
	(-r $in{auto_map}) || &error(&text('linux_eautomap', $in{'auto_map'}));
	return $in{auto_map};
	}
elsif ($_[0] eq "autofs") {
	# Check if the map exists (if it is a file)
	if ($in{'autofs_map'} =~ /^\// && !(-r $in{'autofs_map'})) {
		&error(&text('linux_eautomap', $in{'autofs_map'}));
		}
	return $in{autofs_map};
	}
elsif ($_[0] eq "smbfs") {
	# No checking done
	return "\\\\".lc($in{'smbfs_server'})."\\".lc($in{'smbfs_share'});
	}
else {
	# This is some kind of disk-based linux filesystem.. get the device name
	if ($in{'lnx_dev'} == 0) {
		$dv = $in{'lnx_disk'};
		}
	elsif ($in{'lnx_dev'} == 2) {
		$dv = $in{'lnx_raid'};
		}
	elsif ($in{'lnx_dev'} == 3) {
		$dv = "LABEL=".$in{'lnx_label'};
		}
	else {
		$dv = $in{'lnx_other'};
		$dv || &error($text{'linux_edev'});
		}

	# If the device entered is a symlink, follow it
	#if ($dvlink = readlink($dv)) {
	#	if ($dvlink =~ /^\//) { $dv = $dvlink; }
	#	else {	$dv =~ /^(.*\/)[^\/]+$/;
	#		$dv = $1.$dvlink;
	#		}
	#	}

	# Check if the device actually exists and uses the right filesystem
	if (!-r $dv && $dv !~ /LABEL=/) {
		if ($_[0] eq "swap" && $dv !~ /\/dev/) {
			&swap_form($dv);
			}
		else {
			&error(&text('linux_edevfile', $dv));
			}
		}
	return $dv;
	}
}

# check_options(type, device, directory)
# Read options for some filesystem from %in, and use them to update the
# %options array. Options handled by the user interface will be set or
# removed, while unknown options will be left untouched.
sub check_options
{
local($k, @rv);

# Parse the common options first..
if ($_[0] ne "swap" && $_[0] ne "auto" &&
    $_[0] ne "autofs" && $_[0] ne "smbfs") {
	delete($options{"ro"}); delete($options{"rw"});
	if ($in{lnx_ro}) { $options{"ro"} = ""; }

	delete($options{"sync"}); delete($options{"async"});
	if ($in{lnx_sync}) { $options{"sync"} = ""; }

	delete($options{"dev"}); delete($options{"nodev"});
	if ($in{lnx_nodev}) { $options{"nodev"} = ""; }

	delete($options{"exec"}); delete($options{"noexec"});
	if ($in{lnx_noexec}) { $options{"noexec"} = ""; }

	delete($options{"suid"}); delete($options{"nosuid"});
	if ($in{lnx_nosuid}) { $options{"nosuid"} = ""; }

	delete($options{"user"}); delete($options{"nouser"});
	if ($in{lnx_user}) { $options{"user"} = ""; }
	}

if ($_[0] eq "nfs") {
	# NFS has a few specific options..
	delete($options{"bg"}); delete($options{"fg"});
	if ($in{nfs_bg}) { $options{"bg"} = ""; }

	delete($options{"soft"}); delete($options{"hard"});
	if ($in{nfs_soft}) { $options{"soft"} = ""; }

	delete($options{"timeo"});
	if (!$in{nfs_timeo_def}) { $options{"timeo"} = $in{nfs_timeo}; }

	delete($options{"nfsvers"});
	if (!$in{nfs_vers_def}) { $options{"nfsvers"} = $in{nfs_vers}; }

	delete($options{"port"});
	if (!$in{nfs_port_def}) { $options{"port"} = $in{nfs_port}; }

	delete($options{"intr"}); delete($options{"nointr"});
	if ($in{nfs_intr}) { $options{"intr"} = ""; }

	delete($options{"tcp"}); delete($options{"udp"});
	if ($in{nfs_tcp}) { $options{"tcp"} = ""; }
	}
elsif ($_[0] eq "ext2") {
	# More options for ext2..
	delete($options{"check"}); delete($options{"nocheck"});
	if ($in{ext2_check} ne "normal") {
		$options{"check"} = $in{ext2_check};
		}

	delete($options{"errors"});
	if ($in{ext2_errors} ne "default") {
		$options{"errors"} = $in{ext2_errors};
		}

	delete($options{"grpid"}); delete($options{"bsdgroups"});
	delete($options{"sysvgroups"}); delete($options{"nogrpid"});
	if ($in{ext2_grpid}) {
		$options{"grpid"} = "";
		}

	delete($options{"resuid"}); delete($options{"resgid"});
	if ($in{'ext2_resuid'})
		{ $options{"resuid"} = getpwnam($in{'ext2_resuid'}); }
	if ($in{'ext2_resgid'})
		{ $options{"resgid"} = getgrnam($in{'ext2_resgid'}); }

	delete($options{"quota"}); delete($options{"noquota"});
	delete($options{"usrquota"}); delete($options{"grpquota"});
	if ($in{'ext2_quota'} == 1) { $options{'usrquota'} = ""; }
	elsif ($in{'ext2_quota'} == 2) { $options{'grpquota'} = ""; }
	elsif ($in{'ext2_quota'} == 3)
		{ $options{'usrquota'} = $options{'grpquota'} = ""; }
	}
elsif ($_[0] eq "fat" || $_[0] eq "vfat" ||
       $_[0] eq "msdos" || $_[0] eq "umsdos") {
	# All dos-based filesystems have similar options
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{fat_uid} ne "") { $options{"uid"} = getpwnam($in{'fat_uid'}); }
	if ($in{fat_gid} ne "") { $options{"gid"} = getgrnam($in{'fat_gid'}); }

	delete($options{"check"});
	if ($in{fat_check} ne "") { $options{"check"} = $in{fat_check}; }

	delete($options{"conv"});
	if ($in{fat_conv} ne "") { $options{"conv"} = $in{fat_conv}; }

	delete($options{"umask"});
	if (!$in{fat_umask_def}) {
		$in{fat_umask} =~ /^[0-7]{3}$/ ||
			&error(&text('linux_emask', $in{'fat_umask'}));
		$options{"umask"} = $in{fat_umask};
		}

	delete($options{"quiet"});
	if ($in{fat_quiet}) {
		$options{"quiet"} = "";
		}

	if ($_[0] eq "vfat") {
		# Parse extra vfat options..
		delete($options{"uni_xlate"});
		if ($in{fat_uni_xlate}) { $options{"uni_xlate"} = ""; }

		delete($options{"posix"});
		if ($in{fat_posix}) { $options{"posix"} = ""; }
		}
	}
elsif ($_[0] eq "hpfs") {
	# OS/2 filesystem options..
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{hpfs_uid} ne "") { $options{"uid"} = getpwnam($in{hpfs_uid}); }
	if ($in{hpfs_gid} ne "") { $options{"gid"} = getgrnam($in{hpfs_gid}); }

	delete($options{"umask"});
	if (!$in{hpfs_umask_def}) {
		$in{hpfs_umask} =~ /^[0-7]{3}$/ ||
			&error(&text('linux_emask', $in{'hpfs_umask'}));
		$options{"umask"} = $in{hpfs_umask};
		}

	delete($options{"conv"});
	if ($in{hpfs_conv} ne "") { $options{"conv"} = $in{hpfs_conv}; }
	}
elsif ($_[0] eq "iso9660") {
	# Options for iso9660 cd-roms
	delete($options{"uid"}); delete($options{"gid"});
	if ($in{iso9660_uid} ne "")
		{ $options{"uid"} = getpwnam($in{iso9660_uid}); }
	if ($in{iso9660_gid} ne "")
		{ $options{"gid"} = getgrnam($in{iso9660_gid}); }

	delete($options{"norock"});
	if ($in{iso9660_norock}) { $options{"norock"} = ""; }

	delete($options{"mode"});
	$in{iso9660_mode} =~ /^[0-7]{3}$/ ||
		&error(&text('linux_emask', $in{'iso9660_mode'}));
	$options{"mode"} = $in{iso9660_mode};
	}
elsif ($_[0] eq "autofs") {
	# Options for automounter filesystems
	delete($options{'timeout'});
	if (!$in{'autofs_timeout_def'}) {
		$in{'autofs_timeout'} =~ /^\d+$/ ||
			&error(&text('linux_etimeout', $in{'autofs_timeout'}));
		$options{'timeout'} = $in{'autofs_timeout'};
		}
	delete($options{'pid-file'});
	if (!$in{'autofs_pid-file_def'}) {
		$in{'autofs_pid-file'} =~ /^\/\S+$/ ||
		       &error(&text('linux_epidfile', $in{'autofs_pid-file'}));
		$options{'pid-file'} = $in{'autofs_pid-file'};
		}
	}
elsif ($_[0] eq "smbfs") {
	# Options for smb filesystems..
	delete($options{'user'}); delete($options{'username'});
	if ($in{smbfs_user}) {
		$options{$smbfs_support == 4 ? 'username' : 'user'} = $in{smbfs_user};
		}

	delete($options{'passwd'}); delete($options{'password'});
	if ($in{smbfs_passwd}) {
		$options{$smbfs_support == 4 ? 'password' : 'passwd'} = $in{smbfs_passwd};
		}

	if ($smbfs_support != 2) {
		delete($options{uid});
		if ($in{smbfs_uid} ne "") { $options{uid} = getpwnam($in{smbfs_uid}); }

		delete($options{gid});
		if ($in{smbfs_gid} ne "") { $options{gid} = getgrnam($in{smbfs_gid}); }
		}

	if ($smbfs_support == 1) {
		delete($options{servername});
		if (!$in{smbfs_sname_def})
			{ $options{servername} = $in{smbfs_sname}; }
		}
	elsif ($smbfs_support == 2) {
		delete($options{workgroup});
		if (!$in{smbfs_wg_def})
			{ $options{workgroup} = $in{smbfs_wg}; }
		}

	if ($smbfs_support < 3) {
		delete($options{clientname});
		if (!$in{smbfs_cname_def})
			{ $options{clientname} = $in{smbfs_cname}; }

		delete($options{machinename});
		if (!$in{smbfs_mname_def})
			{ $options{machinename} = $in{smbfs_mname}; }
		elsif (!gethostbyname($in{'smbfs_server'})) {
			# No hostname found for the server.. try to guess
			local($out, $sname);
			$sname = $in{'smbfs_server'};
			$out = `$config{'nmblookup_path'} -d 0 $sname 2>&1`;
			if (!$? && $out =~ /^([0-9\.]+)\s+$sname\n/) {
				$options{machinename} = $1;
				}
			}
		}

	if ($smbfs_support == 1) {
		delete($options{fmode});
		if ($in{smbfs_fmode} !~ /^[0-7]{3}$/) {
			&error(&text('linux_efmode', $in{'smbfs_fmode'}));
			}
		elsif ($in{smbfs_fmode} ne "755")
			{ $options{fmode} = $in{smbfs_fmode}; }

		delete($options{dmode});
		if ($in{smbfs_dmode} !~ /^[0-7]{3}$/) {
			&error(&text('linux_edmode', $in{'smbfs_dmode'}));
			}
		elsif ($in{smbfs_dmode} ne "755")
			{ $options{dmode} = $in{smbfs_dmode}; }
		}
	elsif ($smbfs_support >= 3) {
		delete($options{'ro'}); delete($options{'rw'});
		if ($in{'smbfs_ro'}) { $options{'ro'} = ''; }

		delete($options{'user'});
		if ($in{'smbfs_user2'}) { $options{'user'} = ''; }
		}
	}
elsif ($_[0] eq "reiserfs") {
	# Save reiserfs options
	delete($options{'notail'});
	$options{'notail'} = "" if ($in{'lnx_notail'});
	}

# Add loop option if mounting a normal file
if ($_[0] ne "swap" && $_[0] ne "auto" && $_[0] ne "autofs" &&
    $_[0] ne "smbfs" && $_[0] ne "nfs") {
	local(@st);
	@st = stat($_[1]);
	if (@st && ($st[2] & 0xF000) == 0x8000) {
		# a regular file.. add the loop option
		if (!$options{'loop'}) {
			$options{'loop'} = "";
			}
		}
	}

# Return options string
foreach $k (keys %options) {
	if ($options{$k} eq "") { push(@rv, $k); }
	else { push(@rv, "$k=$options{$k}"); }
	}
return @rv ? join(',' , @rv) : "-";
}


# Get the smbfs options from 'smbfs_opts' file in the current directory. This
# is sadly necessary because there is no way to get the current options for
# an existing smbfs mount... so webmin has to save them in a file when
# mounting. Blech.
sub read_smbopts
{
local($_);
open(SMBOPTS, "$module_config_directory/smbfs");
while(<SMBOPTS>) {
	/^(\S+)\s+(\S+)$/;
	$smbopts{$1} = $2;
	}
close(SMBOPTS);
}

sub write_smbopts
{
local($_);
open(SMBOPTS, "> $module_config_directory/smbfs");
foreach (keys %smbopts) {
	print SMBOPTS "$_\t$smbopts{$_}\n";
	}
close(SMBOPTS);
}


# create_swap(file, size, units)
# Calls dd and mkswap to setup a swap file
sub create_swap
{
local($out, $bl);
$bl = $_[1] * ($_[2] eq "m" ? 1024 : 1);
$out = `dd if=/dev/zero of=$_[0] bs=1024 count=$bl 2>&1`;
if ($?) { return "dd failed : $out"; }
$out = `mkswap $_[0] $bl 2>&1`;
if ($?) { return "mkswap failed : $out"; }
system("sync >/dev/null 2>&1");
return 0;
}

# exports_list(host, dirarray, clientarray)
# Fills the directory and client array references with exports from some
# host. Returns an error string if something went wrong
sub exports_list
{
local($dref, $cref, $out, $_);
$dref = $_[1]; $cref = $_[2];
$out = `showmount -e $_[0] 2>&1`;
if ($?) { return $out; }
foreach (split(/\n/, $out)) {
	if (/^(\/\S*)\s+(.*)$/) {
		push(@$dref, $1); push(@$cref, $2);
		}
	}
return undef;
}

# broadcast_addr()
# Returns a useable broadcast address for finding NFS servers
sub broadcast_addr
{
local($out);
$out = `ifconfig -a 2>&1`;
if ($out =~ /(eth|tr)\d\s+.*\n.*Bcast:(\S+)\s+/) { return $2; }
return "255.255.255.255";
}

# autofs_options(string)
# Converts a string of options line --timeout 60 to something like timeout=60
sub autofs_options
{
local(@options);
if ($_[0] =~ /--timeout\s+(\d+)/ || $_[0] =~ /-t\s+(\d+)/) {
	push(@options, "timeout=$1");
	}
if ($_[0] =~ /--pid-file\s+(\S+)/ || $_[0] =~ /-p\s+(\d+)/) {
	push(@options, "pid-file=$1");
	}
return join(',', @options);
}

# autofs_args(string)
# Convert a comma-separated options string into args for automount
sub autofs_args
{
local(%options, $args);
&parse_options("autofs", $_[0]);
if (defined($options{'timeout'})) {
	$args .= " --timeout $options{'timeout'}";
	}
if (defined($options{'pid-file'})) {
	$args .= " --pid-file $options{'pid-file'}";
	}
return $args;
}

# read_amd_conf()
# Returns the entire amd config file as a string
sub read_amd_conf
{
local $sl = $/;
$/ = undef;
open(AMD, $config{'auto_file'});
local $rv = <AMD>;
close(AMD);
$/ = $sl;
return $rv;
}

# write_amd_conf(text)
sub write_amd_conf
{
open(AMD, ">$config{'auto_file'}");
print AMD $_[0];
close(AMD);
}

# parse_amd_conf()
# Parses a new-style amd.conf file into a hashtable
sub parse_amd_conf
{
local (@rv, $str, $lnum);
open(AMD, $config{'auto_file'});
while(<AMD>) {
	s/\r|\n//g;
	s/#.*$//g;
	if (/\[\s*(\S+)\s*\]/) {
		$str = { 'dir' => $1,
			 'line' => $lnum,
			 'eline' => $lnum };
		push(@rv, $str);
		}
	elsif (/(\S+)\s*=\s*"(.*)"/ || /(\S+)\s*=\s*(\S+)/) {
		$str->{'opts'}->{$1} = $2;
		$str->{'eline'} = $lnum;
		}
	$lnum++;
	}
close(AMD);
return @rv;
}

# device_name(device)
# Converts a device name to a human-readable form
sub device_name
{
if (!$text{'select_part'}) {
	local %flang = &load_language('fdisk');
	$text{'select_part'} = $flang{'select_part'};
	$text{'select_mpart'} = $flang{'select_mpart'};
	$text{'select_device'} = $flang{'select_device'};
	$text{'select_fd'} = $flang{'select_fd'};
	}
return $_[0] =~ /^\/dev\/(s|h)d([a-z])(\d+)$/ ?
	&text('select_part', $1 eq 's' ? 'SCSI' : 'IDE', uc($2), "$3") :
       $_[0] =~ /^\/dev\/(s|h)d([a-z])$/ ?
	&text('select_device', $1 eq 's' ? 'SCSI' : 'IDE', uc($2)) :
       $_[0] =~ /rd\/c(\d+)d(\d+)p(\d+)$/ ?
	&text('select_mpart', "$1", "$2", "$3") :
       $_[0] =~ /fd(\d+)$/ ?
	&text('select_fd', "$1") :
       $_[0] =~ /md(\d+)$/ ?
	&text('linux_rdev', "$1") :
       $_[0] =~ /LABEL=(\S+)/i ?
	&text('linux_label', "$1") :
       $_[0] eq '/dev/cdrom' ?
	$text{'linux_cddev'} :
	$_[0];
}

sub files_to_lock
{
return ( $config{'fstab_file'}, $config{'autofs_file'}, $config{'auto_file'} );
}

1;

0707010000d1c7000041ed0000000000000001000000053ac03c2300000000000000200000000000000000000000000000000c00000003reloc/mysql   0707010000d1c8000081a40000000000000002000000013ac038ae00000d27000000200000000000000000000000000000001c00000003reloc/mysql/acl_security.pl   
require './mysql-lib.pl';

# acl_security_form(&options)
# Output HTML for editing security options for the mysql module
sub acl_security_form
{
print "<tr> <td valign=top rowspan=3><b>$text{'acl_dbs'}</b></td>\n";
print "<td rowspan=3 valign=top>\n";
printf "<input type=radio name=dbs_def value=1 %s> %s\n",
	$_[0]->{'dbs'} eq '*' ? 'checked' : '', $text{'acl_dall'};
printf "<input type=radio name=dbs_def value=0 %s> %s<br>\n",
	$_[0]->{'dbs'} eq '*' ? '' : 'checked', $text{'acl_dsel'};
print "<select name=dbs size=3 multiple width=100>\n";
map { $dcan{$_}++ } split(/\s+/, $_[0]->{'dbs'});
foreach $d (&list_databases()) {
	printf "<option %s>%s\n",
		$dcan{$d} ? 'selected' : '', $d;
	}
print "</select></td>\n";

print "<td><b>$text{'acl_create'}</b></td> <td>\n";
printf "<input type=radio name=create value=1 %s> %s\n",
	$_[0]->{'create'} ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=create value=0 %s> %s</td> </tr>\n",
	$_[0]->{'create'} ? '' : 'checked', $text{'no'};

print "<tr> <td><b>$text{'acl_delete'}</b></td> <td>\n";
printf "<input type=radio name=delete value=1 %s> %s\n",
	$_[0]->{'delete'} ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=delete value=0 %s> %s</td> </tr>\n",
	$_[0]->{'delete'} ? '' : 'checked', $text{'no'};

print "<tr> <td><b>$text{'acl_stop'}</b></td> <td>\n";
printf "<input type=radio name=stop value=1 %s> %s\n",
	$_[0]->{'stop'} ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=stop value=0 %s> %s</td> </tr>\n",
	$_[0]->{'stop'} ? '' : 'checked', $text{'no'};

print "<tr> <td><b>$text{'acl_perms'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=perms value=1 %s> %s\n",
	$_[0]->{'perms'} == 1 ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=perms value=2 %s> %s\n",
	$_[0]->{'perms'} == 2 ? 'checked' : '', $text{'acl_only'};
printf "<input type=radio name=perms value=0 %s> %s</td> </tr>\n",
	$_[0]->{'perms'} == 0 ? 'checked' : '', $text{'no'};

print "<tr> <td valign=top><b>$text{'acl_login'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=user_def value=1 %s> %s<br>\n",
	$_[0]->{'user'} ? '' : 'checked', $text{'acl_user_def'};
printf "<input type=radio name=user_def value=0 %s>\n",
	$_[0]->{'user'} ? 'checked' : '';
printf "%s <input name=user size=10 value='%s'>\n",
	$text{'acl_user'}, $_[0]->{'user'};
printf "%s <input name=pass size=10 value='%s'></td> </tr>\n",
	$text{'acl_pass'}, $_[0]->{'pass'};

print "<tr> <td><b>$text{'acl_bpath'}</b></td>\n";
printf "<td><input name=bpath size=20 value='%s'> %s</td>\n",
	$_[0]->{'bpath'}, &file_chooser_button("bpath", 1);

print "<td><b>$text{'acl_buser'}</b></td>\n";
printf "<td><input name=buser size=8 value='%s'> %s</td> </tr>\n",
	$_[0]->{'buser'}, &user_chooser_button("buser");
}

# acl_security_save(&options)
# Parse the form for security options for the mysql module
sub acl_security_save
{
if ($in{'dbs_def'}) {
	$_[0]->{'dbs'} = '*';
	}
else {
	$_[0]->{'dbs'} = join(" ", split(/\0/, $in{'dbs'}));
	}
$_[0]->{'create'} = $in{'create'};
$_[0]->{'delete'} = $in{'delete'};
$_[0]->{'bpath'} = $in{'bpath'};
$_[0]->{'buser'} = $in{'buser'};
$_[0]->{'stop'} = $in{'stop'};
$_[0]->{'perms'} = $in{'perms'};
if ($in{'user_def'}) {
	delete($_[0]->{'user'});
	delete($_[0]->{'pass'});
	}
else {
	$_[0]->{'user'} = $in{'user'};
	$_[0]->{'pass'} = $in{'pass'};
	}
}

 0707010000d1c9000081e40000000000000002000000013ac038a900000553000000200000000000000000000000000000001a00000003reloc/mysql/backup_db.cgi #!/usr/local/bin/perl
# backup_db.cgi
# Do the actual backup

require './mysql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
&error_setup($text{'backup_err'});

$in{'file'} =~ /^\S+$/ || &error($text{'backup_efile'});
$drop = $in{'drop'} ? "--add-drop-table" : "";
$in{'where_def'} || $in{'where'} || &error($text{'backup_ewhere'});
$where = $in{'where_def'} ? "" : "\"--where=$in{'where'}\"";
$p = $access{'bpath'} =~ /\/$/ ? $access{'bpath'} : $access{'bpath'}.'/';
if (substr($in{'file'}, 0, length($p)) ne $p) {
	&error($text{'backup_epath'});
	}

if ($access{'buser'} eq 'root') {
	$out = &backquote_logged("$config{'mysqldump'} $authstr $drop $where $in{'db'} 2>&1 >$in{'file'}");
	}
else {
	$out = &backquote_logged("su $access{'buser'} -c '$config{'mysqldump'} $authstr $drop $where $in{'db'} >$in{'file'}' 2>&1");
	}
if ($? || $out) {
	unlink($in{'file'});
	&error(&text('backup_ebackup', "<tt>$out</tt>"));
	}

&header($text{'backup_title'}, "");
print "<hr>\n";
@st = stat($in{'file'});
print "<p>",&text('backup_done', "<tt>$in{'db'}</tt>", "<tt>$in{'file'}</tt>",
		  $st[7]),"<p>\n";
$config{'backup_'.$in{'db'}} = $in{'file'};
&write_file("$module_config_directory/config", \%config);
&webmin_log("backup", undef, $in{'db'}, \%in);
print "<hr>\n";
&footer("edit_dbase.cgi?db=$in{'db'}", $text{'dbase_return'});

 0707010000d1ca000081e40000000000000002000000013ac038a900000660000000200000000000000000000000000000001c00000003reloc/mysql/backup_form.cgi   #!/usr/local/bin/perl
# backup_form.cgi
# Display a form for backing up this database

require './mysql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
&header($text{'backup_title'}, "", "backup_form");
print "<hr>\n";

if (!-x $config{'mysqldump'}) {
	print "<p>",&text('backup_edump', "<tt>$config{'mysqldump'}</tt>",
			  "/config.cgi?$module_name"),"<p>\n";
	print "<hr>\n";
	&footer("edit_dbase.cgi?db=$in{'db'}", $text{'dbase_return'});
	exit;
	}

print &text('backup_desc', "<tt>$in{'db'}</tt>"),"<p>\n";

print "<form action=backup_db.cgi>\n";
print "<input type=hidden name=db value='$in{'db'}'>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'backup_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'backup_file'}</td>\n";
printf "<td><input name=file size=40 value='%s'> %s</td> </tr>\n",
	$config{'backup_'.$in{'db'}}, &file_chooser_button("file");

print "<tr> <td><b>$text{'backup_where'}</b></td>\n";
print "<td><input type=radio name=where_def value=1 checked> ",
      "$text{'backup_none'}\n";
print "<input type=radio name=where_def value=0>\n";
print "<input name=where size=30></td> </tr>\n";

print "<tr> <td><b>$text{'backup_drop'}</b></td>\n";
print "<td><input type=radio name=drop value=1> $text{'yes'}\n";
print "<input type=radio name=drop value=1 checked> $text{'no'}</td> </tr>\n";

print "<tr> <td colspan=2 align=right><input type=submit ",
      "value='$text{'backup_ok'}'></td> </tr>\n";
print "</table></td></tr></table></form>\n";

print "<hr>\n";
&footer("edit_dbase.cgi?db=$in{'db'}", $text{'dbase_return'});

0707010000d1cb000081a40000000000000002000000013ac038ae00000124000000200000000000000000000000000000001300000003reloc/mysql/config    start_cmd=cd /usr/local/mysql ; ./bin/safe_mysqld &
perpage=25
mysql=/usr/local/mysql/bin/mysql
mysqldump=/usr/local/mysql/bin/mysqldump
pass=foo
mysqlshow=/usr/local/mysql/bin/mysqlshow
login=root
mysql_libs=/usr/local/mysql/lib
mysqladmin=/usr/local/mysql/bin/mysqladmin
style=0
add_mode=0
0707010000d1cc000081a40000000000000002000000013ac038ae000000f6000000200000000000000000000000000000001700000003reloc/mysql/config-aix    start_cmd=/usr/local/bin/safe_mysqld &
perpage=25
mysql=/usr/local/bin/mysql
mysqldump=/usr/local/bin/mysqldump
mysqlshow=/usr/local/bin/mysqlshow
login=root
mysql_libs=/usr/local/lib/mysql
mysqladmin=/usr/local/bin/mysqladmin
style=0
add_mode=0
  0707010000d1cd000081a40000000000000002000000013ac038ae000000e4000000200000000000000000000000000000002000000003reloc/mysql/config-cobalt-linux   start_cmd=/etc/rc.d/init.d/mysql start
stop_cmd=/etc/rc.d/init.d/mysql stop
mysql=/usr/bin/mysql
mysqldump=/usr/bin/mysqldump
mysql_libs=
mysqladmin=/usr/bin/mysqladmin
mysqlshow=/usr/bin/mysqlshow
perpage=25
style=0
add_mode=0
0707010000d1ce000081a40000000000000002000000013ac038ae000000c9000000200000000000000000000000000000002000000003reloc/mysql/config-debian-linux   start_cmd=/usr/bin/safe_mysqld >/dev/null 2>&1 &
mysql=/usr/bin/mysql
mysqldump=/usr/bin/mysqldump
mysql_libs=
mysqladmin=/usr/bin/mysqladmin
mysqlshow=/usr/bin/mysqlshow
perpage=25
style=0
add_mode=0
   0707010000d1cf000081a40000000000000002000000013ac038ae00000110000000200000000000000000000000000000002400000003reloc/mysql/config-debian-linux-2.2   start_cmd=/etc/init.d/mysql start >/dev/null 2>&1 &
stop_cmd=/etc/init.d/mysql stop >/dev/null 2>&1
mysql=/usr/bin/mysql
mysqldump=/usr/bin/mysqldump
mysql_libs=/usr/local/mysql/lib
mysqladmin=/usr/bin/mysqladmin
mysqlshow=/usr/bin/mysqlshow
perpage=25
style=0
add_mode=0
0707010000d1d0000081a40000000000000002000000013ac038ae000000f6000000200000000000000000000000000000001b00000003reloc/mysql/config-freebsd    start_cmd=/usr/local/bin/safe_mysqld &
perpage=25
mysql=/usr/local/bin/mysql
mysqldump=/usr/local/bin/mysqldump
mysqlshow=/usr/local/bin/mysqlshow
login=root
mysql_libs=/usr/local/lib/mysql
mysqladmin=/usr/local/bin/mysqladmin
style=0
add_mode=0
  0707010000d1d1000081a40000000000000002000000013ac038ae000000e4000000200000000000000000000000000000001e00000003reloc/mysql/config-open-linux start_cmd=/etc/rc.d/init.d/mysql start
stop_cmd=/etc/rc.d/init.d/mysql stop
mysql=/usr/bin/mysql
mysqldump=/usr/bin/mysqldump
mysql_libs=
mysqladmin=/usr/bin/mysqladmin
mysqlshow=/usr/bin/mysqlshow
perpage=25
style=0
add_mode=0
0707010000d1d2000081a40000000000000002000000013ac038ae000000e4000000200000000000000000000000000000002000000003reloc/mysql/config-redhat-linux   start_cmd=/etc/rc.d/init.d/mysql start
stop_cmd=/etc/rc.d/init.d/mysql stop
mysql=/usr/bin/mysql
mysqldump=/usr/bin/mysqldump
mysql_libs=
mysqladmin=/usr/bin/mysqladmin
mysqlshow=/usr/bin/mysqlshow
perpage=25
style=0
add_mode=0
0707010000d1d3000081a40000000000000002000000013ac038af000000e6000000200000000000000000000000000000002400000003reloc/mysql/config-redhat-linux-7.0   start_cmd=/etc/rc.d/init.d/mysqld start
stop_cmd=/etc/rc.d/init.d/mysqld stop
mysql=/usr/bin/mysql
mysqldump=/usr/bin/mysqldump
mysql_libs=
mysqladmin=/usr/bin/mysqladmin
mysqlshow=/usr/bin/mysqlshow
perpage=25
style=0
add_mode=0
  0707010000d1d4000081a40000000000000002000000013ac038ae000000e6000000200000000000000000000000000000002400000003reloc/mysql/config-redhat-linux-7.1   start_cmd=/etc/rc.d/init.d/mysqld start
stop_cmd=/etc/rc.d/init.d/mysqld stop
mysql=/usr/bin/mysql
mysqldump=/usr/bin/mysqldump
mysql_libs=
mysqladmin=/usr/bin/mysqladmin
mysqlshow=/usr/bin/mysqlshow
perpage=25
style=0
add_mode=0
  0707010000d1d5000081a40000000000000002000000013ac038ae000000dc000000200000000000000000000000000000001e00000003reloc/mysql/config-suse-linux start_cmd=/sbin/init.d/mysql start
stop_cmd=/sbin/init.d/mysql stop
mysql=/usr/bin/mysql
mysqldump=/usr/bin/mysqldump
mysql_libs=
mysqladmin=/usr/bin/mysqladmin
mysqlshow=/usr/bin/mysqlshow
perpage=25
style=0
add_mode=0
0707010000d1d6000081a40000000000000002000000013ac038ae000000da000000200000000000000000000000000000002200000003reloc/mysql/config-suse-linux-7.1 start_cmd=/etc/init.d/mysql start
stop_cmd=/etc/init.d/mysql stop
mysql=/usr/bin/mysql
mysqldump=/usr/bin/mysqldump
mysql_libs=
mysqladmin=/usr/bin/mysqladmin
mysqlshow=/usr/bin/mysqlshow
perpage=25
style=0
add_mode=0
  0707010000d1d7000081a40000000000000002000000013ac038ae000000e4000000200000000000000000000000000000001f00000003reloc/mysql/config-turbo-linux    start_cmd=/etc/rc.d/init.d/mysql start
stop_cmd=/etc/rc.d/init.d/mysql stop
mysql=/usr/bin/mysql
mysqldump=/usr/bin/mysqldump
mysql_libs=
mysqladmin=/usr/bin/mysqladmin
mysqlshow=/usr/bin/mysqlshow
perpage=25
style=0
add_mode=0
0707010000d1d8000081a40000000000000002000000013ac038a800000249000000200000000000000000000000000000001800000003reloc/mysql/config.info   mysqlshow=Path to mysqlshow command,0
mysqladmin=Path to mysqladmin command,0
mysql=Path to mysql command,0
mysqldump=Path to mysqldump command,0
start_cmd=Command to start MySQL server,0
stop_cmd=Command to stop MySQL server,3,Automatic
mysql_libs=Path to MySQL shared libraries directory,3,None
login=Administration login,0
pass=Administration password,0
perpage=Number of rows to display per page,0
style=Show databases and tables as,1,1-List,0-Icons
add_mode=Use vertical row-adding interface,1,1-Yes,0-No
host=MySQL host to connect to,3,Localhost
sock=MySQL socket file,3,Default
   0707010000d1d9000081a40000000000000002000000013ac038ae00000172000000200000000000000000000000000000001b00000003reloc/mysql/config.info.de    mysqlshow=Pfad zu mysqlshow Kommando,0
mysqladmin=Pfad zu mysqladmin Kommando,0
mysql=Pfad zu mysql Kommando,0
start_cmd=Kommando um MySQL Server zu starten,0
stop_cmd=Kommando zum stoppen des MySQL Servers,3,Automatisch
mysql_libs=Pfad zu Bibliotheken von MySQL,3,None
login=Administrations Login,0
pass=Administrations Passwort,0
perpage=Anzahl der Reihen pro Seite,0
  070701000117ea000041ed0000000000000001000000023ac03c2100000000000000200000000000000000000000000000001100000003reloc/mysql/help  070701000117eb000081a40000000000000002000000013ac038ae000001f8000000200000000000000000000000000000002200000003reloc/mysql/help/backup_form.html <header>Backup Database</header>

This form allows you to backup an entire database (or selected rows) to
a file. Select the file write the backup to and the other options, then click
the <tt>Backup Now</tt> button to start the backup process.  Written to the
file will be SQL statements that when executed will re-create the database
tables and their contents. This file can be executed using the command-line
<tt>mysql</tt> program or the Execute SQL page, in order to restore the
database. <p>

<hr>

070701000117ec000081a40000000000000002000000013ac038ab000001e9000000200000000000000000000000000000001f00000003reloc/mysql/help/cpriv.es.html    Los siguiente par醡etros est醤 disponibles:
<dl>
<dt><b>Campo</b>
<dd>El campo al que se deber韆n aplicar esto permisos. <p>
<dt><b>Nombre de usuario</b>
<dd>El usuario al que se condecen los permisos. Este usuario ya debe de
    existir en la tabla de <tt>Permisos de Usuario</tt>. <p>
<dt><b>M醧uinas</b>
<dd>Las m醧uinas desde las que el usuario puede acceder a la tabla. <p>
<dt><b>Permisos</b>
<dd>Los permisos concedidos al usuario en la columna seleccionada de la tabla. <p>
</dl>

   070701000117ed000081a40000000000000002000000013ac038ab000001c0000000200000000000000000000000000000001c00000003reloc/mysql/help/cpriv.html   The following parameters are available :
<dl>
<dt><b>Field</b>
<dd>The field these permissions should apply to. <p>
<dt><b>Username</b>
<dd>The user to whom the permissions are granted. This user must already
    exist in the <tt>User Permissions</tt> table. <p>
<dt><b>Hosts</b>
<dd>The hosts that the user can access the table from. <p>
<dt><b>Permissions</b>
<dd>The permissions granted to the user on the chosen column of the table. <p>
</dl>

070701000117ee000081a40000000000000002000000013ac038ad0000018d000000200000000000000000000000000000001f00000003reloc/mysql/help/cpriv.sv.html    F鰈jande parametrar kan anges:
<dl>
<dt><b>F鋖t</b>
<dd>F鋖tet som r鋞tigheterna h鰎 till.
<dt><b>Anv鋘darnamn</b>
<dd>Den anv鋘dare som f錼 r鋞tigheterna. Anv鋘daren m錽te finnas i tabellen
    <tt>Anv鋘darr鋞tigheter</tt>
<dt><b>Datorer</b>
<dd>Datorer som anv鋘daren f錼 komma 錿 tabellen fr錸.
<dt><b>R鋞tigheter</b>
<dd>De r鋞tigheter som anv鋘daren har f鰎 angiven kolumn i tabellen.
</dl>

   070701000117ef000081a40000000000000002000000013ac038ac00000123000000200000000000000000000000000000002700000003reloc/mysql/help/cpriv.zh_TW.Big5.html    眤ㄏノ把计:
<dl>
<dt><b>逆逆</b>
<dd>硂舦璶甅ノ逆. <p>
<dt><b>ㄏノ嘿</b>
<dd>璶甭舦ㄏノ嘿. 硂ㄏノゲ斗竒<tt>ㄏノ舦</tt>戈い. <p>
<dt><b>诀</b>
<dd>ㄏノ戈ㄓ方诀. <p>
<dt><b>舦</b>
<dd>甭舦倒匡拒ㄏノ舦. <p>
</dl>

 070701000117f0000081a40000000000000002000000013ac038ab00000266000000200000000000000000000000000000002000000003reloc/mysql/help/cprivs.es.html   <header>Permisos de Campo</header>

Este campo te permite conceder a usuarios acceso adicional a campos
espec韋icos de las tablas. Los permisos concedidos no pueden ser mayores que
los especificados en los <tt>Permisos de Tabla</tt> bajo
<tt>Permisos de Campo</tt> para la tabla donde est el campo. <p>

Para a馻dir nuevos permisos de campo debes de seleccionar primero la
base de datos y la tabla donde est el campo mediante el formulario del
final de la p醙ina. Luego haz click en el bot髇 <tt>A馻dir nuevos permisos</tt>
para mostrar un formulario que permite seleccionar el campo y otros detalles.<p>

<hr>

  070701000117f1000081a40000000000000002000000013ac038ab00000223000000200000000000000000000000000000001d00000003reloc/mysql/help/cprivs.html  <header>Field Permissions</header>

This field allows you to grant additional access to specific fields in tables
by users. The permissions granted cannot be greater than those specified in
the <tt>Table Permissions</tt> under <tt>Field permissions</tt> for the table
the field is in. <p>

To add new field permissions, you must first select the database and
table the field is in using the form at the bottom of the page. Then click
the <tt>Add new permissions</tt> button to bring up a form for selecting
the field and other details. <p>

<hr>

 070701000117f2000081a40000000000000002000000013ac038ad00000204000000200000000000000000000000000000002000000003reloc/mysql/help/cprivs.sv.html   <header>F鋖tr鋞tigheter</header>

H鋜 kan du reglera anv鋘darnas 錿komstr鋞tigheter till specifika f鋖t i
tabellen. R鋞tigheterna h鋜 kan inte omfatta mer 鋘 de som anges i
<tt>Tabellr鋞tigheter</tt> under <tt>F鋖tr鋞tigheter</tt> f鰎 tabellen som
f鋖tet finns i.

<p>Man l鋑ger till f鋖tr鋞tigheter genom att f鰎st ange den databas och tabell
d鋜 f鋖tet finns i formul鋜et l鋘gs ned p sidan. Tryck sedan p knappen
<tt>L鋑g till r鋞tigheter</tt> s visas ett formul鋜 d鋜 f鋖t och uppgifter
om detta anges.

<hr>

070701000117f3000081a40000000000000002000000013ac038ac00000141000000200000000000000000000000000000002800000003reloc/mysql/help/cprivs.zh_TW.Big5.html   <header>逆舦</header>

硂逆琵眤甭舦ㄏノ肂戈い﹚逆. 硂ㄇ舦甭舦ぃゑ<tt>逆舦</tt><tt>戈舦</tt>い┮砞﹚临.<p>

璶糤穝逆舦, 眤ゲ斗璶ㄏノセ┏狠虫匡拒戈畐籔逆, 礛翴匡<tt>糤穝舦戈畐籔戈</tt>秙眔匡拒逆㎝ㄤ灿竊虫. <p>

<hr>

   070701000117f4000081a40000000000000002000000013ac038ab00000115000000200000000000000000000000000000002600000003reloc/mysql/help/create_cpriv.es.html <header>Permisos para Crear Campo</header>

Esta p醙ina te permite crear un nuevo conjunto de permisos del tipo
campo-usuario.
<include tpriv.es>

Tras digitar los permisos del nuevo campo, haz click en <tt>Salvar</tt>
para tener creados inmedi醫amente los permisos. <p>
<hr>

   070701000117f5000081a40000000000000002000000013ac038ab000000f8000000200000000000000000000000000000002300000003reloc/mysql/help/create_cpriv.html    <header>Create Field Permissions</header>

This page allows you to create a new set of field-user permissions.
<include tpriv>

After entering the new field permissions, click on <tt>Save</tt> to
have the permissions immediately created. <p>
<hr>

070701000117f6000081a40000000000000002000000013ac038ad000000eb000000200000000000000000000000000000002600000003reloc/mysql/help/create_cpriv.sv.html <header>L鋑g till f鋖tr鋞tigheter</header>

P denna sida kan du l鋑ga till anv鋘darr鋞tigheter f鰎 f鋖t.
<include tpriv>

N鋜 du har skrivit in de nya r鋞tigheterna trycker du p <tt>Spara</tt> f鰎
att r鋞tigheterna ska skapas.
<hr>

 070701000117f7000081a40000000000000002000000013ac038ac0000009f000000200000000000000000000000000000002e00000003reloc/mysql/help/create_cpriv.zh_TW.Big5.html <header>ミ逆舦</header>

硂琵眤ミ穝逆ㄏノ舦.
<include tpriv>

块穝逆舦, <tt>纗</tt>ミㄨミ穝舦. <p>
<hr>

 070701000117f8000081a40000000000000002000000013ac038ab00000131000000200000000000000000000000000000002300000003reloc/mysql/help/create_db.es.html    <header>Permisos para Crear Base de Datos</header>

Esta p醙ina te permite crear un nuevo conjunto de permisos del tipo
base_de_datos-usuario.
<include db.es>

Tras digitar los permisos de la nueva base de datos, haz click en
<tt>Salvar</tt> para hacer que los permisos se creen inmedi醫amente. <p>
<hr>

   070701000117f9000081a40000000000000002000000013ac038ab000000fe000000200000000000000000000000000000002000000003reloc/mysql/help/create_db.html   <header>Create Database Permissions</header>

This page allows you to create a new set of database-user permissions.
<include db>

After entering the new database permissions, click on <tt>Save</tt> to
have the permissions immediately created. <p>
<hr>

  070701000117fa000081a40000000000000002000000013ac038ad000000f0000000200000000000000000000000000000002300000003reloc/mysql/help/create_db.sv.html    <header>L鋑g till databasr鋞tigheter</header>

P denna sida kan du l鋑ga till anv鋘darr鋞tigheter f鰎 databasen.
<include db>

N鋜 du har skrivit in de nya r鋞tigheterna trycker du p <tt>Spara</tt> f鰎
att r鋞tigheterna ska skapas.
<hr>

070701000117fb000081a40000000000000002000000013ac038ac000000a0000000200000000000000000000000000000002b00000003reloc/mysql/help/create_db.zh_TW.Big5.html    <header>ミ戈畐舦</header>

硂琵眤ミ穝戈畐ㄏノ舦.
<include db>

块穝戈畐舦, <tt>纗</tt>ミㄨミ穝舦. <p>
<hr>

070701000117fc000081a40000000000000002000000013ac038ac00000115000000200000000000000000000000000000002600000003reloc/mysql/help/create_field.es.html <header>A馻dir Campo</header>

En esta p醙ina puedes a馻dir un nuevo campo a la tabla. Los par醡etros
modificables para el nuevo campo son:
<include field.es>

Al termina, haz click en el bot髇 <tt>Salvar</tt> para actualizar la
estructura de la tabla con el nuevo campo.
<hr>
   070701000117fd000081a40000000000000002000000013ac038ab000000f4000000200000000000000000000000000000002300000003reloc/mysql/help/create_field.html    <header>Add Field</header>

On this page you can add a new field to the table. The editable parameters
for the new field are :
<include field>

When done, click on the <tt>Save</tt> button to update the table structure
with the new field.
<hr>
070701000117fe000081a40000000000000002000000013ac038ad000000f5000000200000000000000000000000000000002600000003reloc/mysql/help/create_field.sv.html <header>L鋑g till f鋖t</header>

P denna sida kan du l鋑ga till f鋖t i tabellen. De parametrar du kan 鋘dra
p f鰎 det nya f鋖tet 鋜:
<include field>

N鋜 du 鋜 klar trycker du p <tt>Spara</tt>, s uppdateras tabellen med
det nya f鋖tet.
<hr>
   070701000117ff000081a40000000000000002000000013ac038ac000000aa000000200000000000000000000000000000002e00000003reloc/mysql/help/create_field.zh_TW.Big5.html <header>糤逆</header>

硂眤糤穝逆戈い. 癸穝逆絪胯把计:
<include field>

ЧΘ, <tt>纗</tt>ㄏノ穝逆穝戈挡篶.
<hr>
  07070100011800000081a40000000000000002000000013ac038ac0000011d000000200000000000000000000000000000002600000003reloc/mysql/help/create_tpriv.es.html <header>Permisos para Crear Tabla</header>

Esta p醙ina te permite crear un nuevo conjunto de permisos del tipo
tabla-usuario.
<include tpriv.es>

Tras digitar los nuevos permisos de la tabla, haz click en <tt>Salvar</tt>
para hacer que los permisos se creen inmedi醫amente. <p>
<hr>

   07070100011801000081a40000000000000002000000013ac038ab000000f8000000200000000000000000000000000000002300000003reloc/mysql/help/create_tpriv.html    <header>Create Table Permissions</header>

This page allows you to create a new set of table-user permissions.
<include tpriv>

After entering the new table permissions, click on <tt>Save</tt> to
have the permissions immediately created. <p>
<hr>

07070100011802000081a40000000000000002000000013ac038ad000000ee000000200000000000000000000000000000002600000003reloc/mysql/help/create_tpriv.sv.html <header>L鋑g till tabellr鋞tigheter</header>

P denna sida kan du l鋑ga till anv鋘darr鋞tigheter f鰎 tabellen.
<include tpriv>

N鋜 du har angivit de nya r鋞tigheterna trycker du p <tt>Spara</tt> f鰎
att r鋞tigheterna ska skapas.
<hr>

  07070100011803000081a40000000000000002000000013ac038ac0000009f000000200000000000000000000000000000002e00000003reloc/mysql/help/create_tpriv.zh_TW.Big5.html <header>ミ戈舦</header>

硂琵眤ミ穝戈ㄏノ舦.
<include tpriv>

块穝戈舦, <tt>纗</tt>ミㄨミ穝舦. <p>
<hr>

 07070100011804000081a40000000000000002000000013ac038ac000000fb000000200000000000000000000000000000002500000003reloc/mysql/help/create_user.es.html  <header>Crear Usuario</header>

Este formulario te permite crear un nuevo usuario de MySQL.
<include user.es>

Tras digitar los detalles del nuevo usuario, haz click en <tt>Salvar</tt>
para hacer que el usuario quede inmedi醫amente creado. <p>

<hr>

 07070100011805000081a40000000000000002000000013ac038ab000000d2000000200000000000000000000000000000002200000003reloc/mysql/help/create_user.html <header>Create User</header>

This form allows you to create a new MySQL user.
<include user>
After entering the details of the new user, click on <tt>Save</tt> to
have the user immediately created. <p>

<hr>

  07070100011806000081a40000000000000002000000013ac038ad000000dd000000200000000000000000000000000000002500000003reloc/mysql/help/create_user.sv.html  <header>L鋑g till anv鋘dare</header>

I detta formul鋜 kan du l鋑ga till MySQL-anv鋘dare.
<include user>
N鋜 du har angivit uppgifter om den nya anv鋘daren trycker du p <tt>Spara</tt>
s skapas anv鋘daren direkt.

<hr>

   07070100011807000081a40000000000000002000000013ac038ac000000a2000000200000000000000000000000000000002d00000003reloc/mysql/help/create_user.zh_TW.Big5.html  <header>ミㄏノ</header>

硂虫琵眤ミ穝 MySQL ㄏノ.
<include user>

块ㄏノ冈灿戈, <tt>纗</tt>ミㄨミ穝ㄏノ.

<hr>

  07070100011808000081a40000000000000002000000013ac038ac000002ed000000200000000000000000000000000000001c00000003reloc/mysql/help/db.es.html   Est醤 disponibles los siguientes par醡etros:
<dl>
<dt><b>Bases de Datos</b>
<dd>Las bases de datos a las que se autoriza el acceso. Puede ser una
    expresi髇 SQL si se desea. <p>
<dt><b>Nombre de usuario</b>
<dd>El usuario que tiene concedido el acceso a la tabla de arriba. Este
    usuario ya debe de existir en la tabla de <tt>Permisos de Usuario</tt>.<p>
<dt><b>M醧uinas</b>
<dd>Las m醧uinas a las que el usuario puede acceder a su base de datos. Si
    la opci髇 <tt>Permisos desde m醧uina</tt> es seleccionada, entonces MySQL
    deber韆 de usar los <tt>Permisos de M醧uina</tt> para controlar el
    acceso. <p>
<dt><b>Permisos</b>
<dd>Las operaciones de MySQL a que el usuario est autorizado a realizar en
    la base de datos.<p>
</dl>

   07070100011809000081a40000000000000002000000013ac038ab00000274000000200000000000000000000000000000001900000003reloc/mysql/help/db.html  The following parameters are available :
<dl>
<dt><b>Databases</b>
<dd>The databases to which access is allowed. This can be an SQL regexp
    if desired. <p>
<dt><b>Username</b>
<dd>The user allowed to access the above database. This user must already
    exist in the <tt>User Permissions</tt> table. <p>
<dt><b>Hosts</b>
<dd>The hosts that the user can access the database from. If the option
    <tt>From host permissions</tt> is chosen, then MySQL should use the
    <tt>Host Permissions</tt> to control access. <p>
<dt><b>Permissions</b>
<dd>The MySQL operations the user is allowed to perform on the database. <p>
</dl>

0707010001180a000081a40000000000000002000000013ac038ad0000026c000000200000000000000000000000000000001c00000003reloc/mysql/help/db.sv.html   F鰈jande inst鋖lningar kan g鰎as:
<dl>
<dt><b>Databaser</b>
<dd>De databaser som ska vara tillg鋘gliga. Om du vill kan du skriva in
    ett regulj鋜t SQL-uttryck.
<dt><b>Anv鋘darnamn</b>
<dd>Den anv鋘dare som f錼 komma 錿 databaser(erna) ovan. Anv鋘daren m錽te
    finnas i tabellen <tt>Anv鋘darr鋞tigheter</tt>.
<dt><b>Datorer</b>
<dd>Datorer som anv鋘daren f錼 komma 錿 databasen fr錸. Om du har valt
    <tt>R鋞tigheter fr錸 dator</tt> kommer MySQL att anv鋘da
    <tt>Datorr鋞tigheter</tt> f鰎 att kontrollera 錿komsten.
<dt><b>R鋞tigheter</b>
<dd>De MySQL-operationer som anv鋘daren f錼 utf鰎a p databasen.
</dl>

0707010001180b000081a40000000000000002000000013ac038ac000001b3000000200000000000000000000000000000002400000003reloc/mysql/help/db.zh_TW.Big5.html   眤ㄏノ把计:

<dl>
<dt><b>戈畐</b>
<dd>璶す砛戈畐. 狦惠璶杠, 硂琌 SQL タ砏ボΑ. <p>
<dt><b>ㄏノ嘿</b>
<dd>す砛戈畐ㄏノ. 硂ㄏノゲ斗竒<tt>ㄏノ舦</tt>戈い. <p>
<dt><b>诀</b>
<dd>ㄏノ戈ㄓ方诀. 狦匡拒匡兜<tt>眖诀舦</tt>, 玥 MySQL 莱赣ノ<tt>诀舦</tt>北. <p>
<dt><b>舦</b>
<dd>ㄏノす砛戈畐ㄏノ MySQL 巨. <p>
</dl>

 0707010001180c000081a40000000000000002000000013ac038ac00000227000000200000000000000000000000000000001d00000003reloc/mysql/help/dbs.es.html  <header>Permisos de Base de Datos</header>

Esta p醙ina te permite definir qu usuarios de MySQL tendr醤 acceso a
qu base de datos de qu m醧uinas. Cada usuario ya debe de existir en la
tabla de <tt>Permisos de Usuario</tt>, aunque se les pude conceder permisos
adicionales aqu.<p>

Los usuarios no pueden hacer login desde m醧uina alguna que no sean las
especificadas en <tt>Permisos de Usuario</tt>. Sin embargo, puedes conceder
permisos diferentes para diferentes m醧uinas mediante la creaci髇 de
m鷏tiples filas para el mismo usuario.<p>

<hr>

 0707010001180d000081a40000000000000002000000013ac038ab000001e6000000200000000000000000000000000000001a00000003reloc/mysql/help/dbs.html <header>Database Permissions</header>

This page allows you to define which MySQL users will have access to
which databases from which hosts. Every user must already exist in the
<tt>User Permissions</tt> table, though they can be granted additional
permissions here. <p>

Users may not login from any hosts other than those specified in
<tt>User Permissions</tt>. However, you may grant different permissions
for different hosts by creating multiple rows for the same user. <p>

<hr>

  0707010001180e000081a40000000000000002000000013ac038ad000001d5000000200000000000000000000000000000001d00000003reloc/mysql/help/dbs.sv.html  <header>Databasr鋞tigheter</header>

P denna sida kan man ange de MySQL-anv鋘dare som f錼 komma 錿 vissa
databaser fr錸 specificerade datorer. Anv鋘darna m錽te finnas i tabellen
<tt>Anv鋘darr鋞tigheter</tt>, men de kan f ytterligare r鋞tigheter h鋜.

<p>Anv鋘dare f錼 inte logga in fr錸 n錱on annan dator 鋘 de som anges i
<tt>Anv鋘darr鋞tigheter</tt>. Man kan ge samma anv鋘dare olika r鋞tigheter
fr錸 olika datorer genom att g鰎a flera rader f鰎 anv鋘daren.

<hr>

   0707010001180f000081a40000000000000002000000013ac038ac00000165000000200000000000000000000000000000002500000003reloc/mysql/help/dbs.zh_TW.Big5.html  <header>戈畐舦</header>

硂琵眤﹚竡ㄇ MySQL ㄏノ眖ㄇ诀ㄇ戈畐. –ㄏノ常ゲ斗竒<tt>ㄏノ舦<tt>戈, ウ硂娩眔甭舦. <p>

ㄏノぃ眖﹚<tt>ㄏノ舦</tt>ぇ诀祅戈畐. 礛τ, 眤竒パ硂ㄠ癸ㄏノミぃ诀ぃ舦, ㄏ眔ㄏノㄓぃ诀Τぃ舦. <p>

<hr>

   07070100011810000081a40000000000000002000000013ac038ac00000157000000200000000000000000000000000000002400000003reloc/mysql/help/edit_cpriv.es.html   <header>Permisos para Editar Campo</header>

Esta p醙ina te permite editar un conjunto existente de permisos del tipo
columna-usuario.
<include cpriv.es>

Tras editar, haz click en el bot髇 <tt>Salvar</tt> para que los cambios
tengan efecto inmediato. Tambi閚 puedes hacer click en <tt>Borrar</tt> para
borrar los permisos de MySQL.<p>

<hr>

 07070100011811000081a40000000000000002000000013ac038ab00000135000000200000000000000000000000000000002100000003reloc/mysql/help/edit_cpriv.html  <header>Edit Field Permissions</header>

This page allows you to edit an existing set of column-user permissions.
<include cpriv>

After editing, click the <tt>Save</tt> button to have the changes take
effect immediately. You may also click on <tt>Delete</tt> to delete the
permissions from MySQL. <p>

<hr>

   07070100011812000081a40000000000000002000000013ac038ad00000128000000200000000000000000000000000000002400000003reloc/mysql/help/edit_cpriv.sv.html   <header>膎dra f鋖tr鋞tigheter</header>

P denna sida kan du 鋘dra befintliga r鋞tigheter per kolumn f鰎 anv鋘dare.
<include cpriv>

N鋜 du 鋜 klar trycker du p <tt>Spara</tt> s att 鋘dringarna genomf鰎s.
Du kan ocks trycka p <tt>Ta bort</tt> f鰎 att ta bort r鋞tigheterna fr錸
MySQL.

<hr>

07070100011813000081a40000000000000002000000013ac038ac000000d8000000200000000000000000000000000000002c00000003reloc/mysql/help/edit_cpriv.zh_TW.Big5.html   <header>絪胯逆舦</header>

硂琵眤絪胯ヴ瞷逆ㄏノ舦.
<include cpriv>

絪胯ぇ, <tt>纗</tt>秙ㄏ眔跑ミㄨネ. 眤<tt>埃</tt>眖 MySQL い埃ヴ舦砞﹚. <p>

<hr>

07070100011814000081a40000000000000002000000013ac038ac00000167000000200000000000000000000000000000002100000003reloc/mysql/help/edit_db.es.html  <header>Permisos de Editar Base de Datos</header>

Esta p醙ina te permite editar un conjunto existente de permisos del tipo
base_de_datos-usuario.
<include db.es>

Tras editarla, haz click en el bot髇 <tt>Salvar</tt> para hacer que los
cambios tengan efecto inmediato. Puedes tambi閚 hacer click en <tt>Borrar</tt>
para borrar los permisos de MySQL.<p>

<hr>
 07070100011815000081a40000000000000002000000013ac038ab00000136000000200000000000000000000000000000001e00000003reloc/mysql/help/edit_db.html <header>Edit Database Permissions</header>

This page allows you to edit an existing set of database-user permissions.
<include db>

After editing, click the <tt>Save</tt> button to have the changes take
effect immediately. You may also click on <tt>Delete</tt> to delete the
permissions from MySQL. <p>

<hr>
  07070100011816000081a40000000000000002000000013ac038ae00000128000000200000000000000000000000000000002100000003reloc/mysql/help/edit_db.sv.html  <header>膎dra databasr鋞tigheter</header>

P denna sida kan du 鋘dra befintliga r鋞tigheter per databas f鰎 anv鋘dare.
<include db>

N鋜 du 鋜 klar trycker du p <tt>Spara</tt> s att 鋘dringarna genomf鰎s.
Du kan ocks trycka p <tt>Ta bort</tt> f鰎 att ta bort r鋞tigheterna fr錸
MySQL.

<hr>
07070100011817000081a40000000000000002000000013ac038ac000000d8000000200000000000000000000000000000002900000003reloc/mysql/help/edit_db.zh_TW.Big5.html  <header>絪胯戈畐舦</header>

硂琵眤絪胯ヴ瞷戈畐ㄏノ舦.
<include db>

絪胯ぇ, <tt>纗</tt>秙ㄏ眔跑ミㄨネ. 眤<tt>埃</tt>眖 MySQL い埃ヴ舦砞﹚. <p>

<hr>
07070100011818000081a40000000000000002000000013ac038ac000001fa000000200000000000000000000000000000002400000003reloc/mysql/help/edit_dbase.es.html   <header>Editar Base de Datos</header>

En la parte superior de esta p醙ina hay filas de iconos, cada uno
representando una tabla dentro de la base de datos. Para editar la
estructura de una tabla, s髄o haz click en uno de los iconos.<p>

Debajo hay botones para crear una nueva tabla dentro de esta base de datos,
ejecutando SQL en las tablas de la base de datos y borrando la base de
datos y todas las tablas de ella. <p>

l bot髇 final deber韆 de usarse con cuidado ya que no es reversible!.<p>

<hr>

  07070100011819000081a40000000000000002000000013ac038ab000001a7000000200000000000000000000000000000002100000003reloc/mysql/help/edit_dbase.html  <header>Edit Database</header>

At the top of this page are rows of icons, each representing one table in
the database. To edit the structure of a table, just click on one of the
icons. <p>

Below are buttons for creating a new table in this database, executing SQL
on the tables of the database and dropping the database and all tables in it.
The final button should be used with care, as it is not reversible! <p>

<hr>

 0707010001181a000081a40000000000000002000000013ac038ae000001be000000200000000000000000000000000000002400000003reloc/mysql/help/edit_dbase.sv.html   <header>膎dra databas</header>

H鰃st upp p sidan finns det en eller flera rader med ikoner, d鋜 varje ikon
representerar en tabell i databasen. Klicka p en ikon f鰎 att 鋘dra i den
tabellen.

<p>Nedanf鰎 finns knappar f鰎 att l鋑ga till en tabell i denna databas,
utf鰎a SQL p databasens tabeller och ta bort databasen inklusive alla
tabeller. Var f鰎siktig med anv鋘dningen av den sistn鋗nda knappen, eftersom
det inte g錼 att 錸gra.

<hr>

  0707010001181b000081a40000000000000002000000013ac038ad00000130000000200000000000000000000000000000002c00000003reloc/mysql/help/edit_dbase.zh_TW.Big5.html   <header>絪胯戈畐</header>

硂郴狠Τ计瓜ボ, –瓜ボ戈畐い戈. 瓜ボ, 眤絪胯戈挡篶. <p>

秙玥ㄏノ硂戈畐いミ穝戈, 戈畐い戈磅︽ SQL 琩高籔メ斌硂戈畐籔ㄤい┮Τ戈. ㄏノメ斌戈畐秙璶疭み, 硂琌ぃ確! <p>

<hr>

0707010001181c000081a40000000000000002000000013ac038ac0000018e000000200000000000000000000000000000002400000003reloc/mysql/help/edit_field.es.html   <header>Editar Campo</header>

En esta p醙ina puedes editar un campo de tabla existente. Aqunque el
tipo de datos b醩ico del campo no puede ser cambiado, est醩 autorizado a
modificar otros par醡etros de campo tales como:
<include field.es>

Al terminar, haz click en el bot髇 <tt>Salvar</tt> para actualizar la
estructura de la tabla o en <tt>Borrar</tt> para quitar el campo de la
tabla.<p>
<hr>

  0707010001181d000081a40000000000000002000000013ac038ab00000166000000200000000000000000000000000000002100000003reloc/mysql/help/edit_field.html  <header>Edit Field</header>

On this page you can edit an existing table field. While the basic data type
of the field cannot be changed, you are allowed to modify other field
parameters such as :
<include field>

When done, click on the <tt>Save</tt> button to update the table structure,
or on <tt>Delete</tt> to remove the field from the table. <p>
<hr>

  0707010001181e000081a40000000000000002000000013ac038ae0000013c000000200000000000000000000000000000002400000003reloc/mysql/help/edit_field.sv.html   <header>膎dra f鋖t</header>

P denna sida kan du 鋘dra i ett befintligt tabellf鋖t. Datatypen kan inte
鋘dras, men 鰒riga parametrar g錼 att modifiera:
<include field>

N鋜 du 鋜 klar trycker du p <tt>Spara</tt> f鰎 att uppdatera
tabellstrukturen eller p <tt>Ta bort</tt>, s tas f鋖tet bort fr錸 tabellen.
<hr>

0707010001181f000081a40000000000000002000000013ac038ad00000102000000200000000000000000000000000000002c00000003reloc/mysql/help/edit_field.zh_TW.Big5.html   <header>絪胯逆</header>

硂眤絪胯瞷戈逆. 逆膀セ戈摸琌ぃ砆э跑, 眤э跑ㄤ逆把计, ㄒ:
<include field>

眤ЧΘぇ, <tt>纗</tt>秙穝戈挡篶, ┪<tt>埃</tt>眖戈い簿埃逆. <p>
<hr>

  07070100011820000081a40000000000000002000000013ac038ac0000026f000000200000000000000000000000000000002400000003reloc/mysql/help/edit_table.es.html   <header>Editar Tabla</header>

La tabla que llena la mayor parte de esta p醙ina muestra la estructura de
la tabla seleccionada de tu base de datos. Cada fila detalla un campo dentro
de la tabla, mostrando el nombre, tipo de datos y otras opciones.<p>

En la parte inferior izquierda hay un bot髇 para a馻dir un nuevo campo a
la tabla. Antes de hacer click en 閘, debes de seleccionar el tipo de campo
a a馻dir - mira la documentaci髇 de MySQL para m醩 informaci髇 sobre los
tipos de campo. Tambi閚 en la parte inferior hay botones para ver todos
los datos de la tabla y borrar la tabla entera y todos sus datos. <p>

<hr>

 07070100011821000081a40000000000000002000000013ac038ab00000225000000200000000000000000000000000000002100000003reloc/mysql/help/edit_table.html  <header>Edit Table</header>

The table that takes up most of this page shows the structure of the selected
table in your database. Each row details one field in the table, with the
name, data type and other options shown. <p>

At the bottom-left is a button for adding a new field to the table. Before
clicking it, you must select the type of field to add - see the MySQL
documentation for more information on field types. Also at the bottom are
buttons for viewing all data in the table and dropping the entire table and
all data in it. <p>

<hr>

   07070100011822000081a40000000000000002000000013ac038ae00000214000000200000000000000000000000000000002400000003reloc/mysql/help/edit_table.sv.html   <header>膎dra tabell</header>

Tabellen som t鋍ker st鰎re delen av denna sidan visar tabellstrukturen f鰎
den angivna tabellen i databasen. Varje rad inneh錶ler uppgifter om ett
f鋖t i tabellen.

<p>L鋘gst ned till v鋘ster finns en knapp f鰎 att l鋑ga till f鋖t i
tabellen. Innan du trycker p den m錽te du v鋖ja f鋖ttyp f鰎 det nya f鋖tet.
Se MySQL-dokumentationen f鰎 mer information om f鋖ttyper. L鋘gst ned hittar
du ocks knappar f鰎 att inspektera alla data i tabellen och f鰎 att ta bort
tabellen inklusive alla data.

<hr>

07070100011823000081a40000000000000002000000013ac038ad00000174000000200000000000000000000000000000002c00000003reloc/mysql/help/edit_table.zh_TW.Big5.html   <header>絪胯戈</header>

硂陪ボ眤戈畐い┮匡拒戈挡篶. –常琌戈い逆冈灿戈, 逆嘿, 戈摸籔ㄤ匡兜. <p>

オà秙琌ノ戈いミ穝逆. ぇ玡, 眤ゲ斗璶匡拒璶糤逆摸 - 浪跌 MySQL ゅン眔逆摸戈癟. , ┏场ㄤ秙浪跌戈い场戈, ┪埃れ礮戈籔场戈 <p>

<hr>

07070100011824000081a40000000000000002000000013ac038ac00000164000000200000000000000000000000000000002400000003reloc/mysql/help/edit_tpriv.es.html   <header>Permisos para Editar Tabla</header>

Esta p醙ina te permite editar un conjunto existente de permisos del tipo
tabla-usuario.
<include tpriv.es>

Tras editarlo, haz click en el bot髇 <tt>Salvar</tt> para hacer que los
campos entren en vigor inmedi醫amente. Puedes tambi閚 hacer click en
<tt>Borrar</tt> para borrar los permisos de MySQL. <p>

<hr>

07070100011825000081a40000000000000002000000013ac038ab00000134000000200000000000000000000000000000002100000003reloc/mysql/help/edit_tpriv.html  <header>Edit Table Permissions</header>

This page allows you to edit an existing set of table-user permissions.
<include tpriv>

After editing, click the <tt>Save</tt> button to have the changes take
effect immediately. You may also click on <tt>Delete</tt> to delete the
permissions from MySQL. <p>

<hr>

07070100011826000081a40000000000000002000000013ac038ae0000012a000000200000000000000000000000000000002400000003reloc/mysql/help/edit_tpriv.sv.html   <header>膎dra tabellr鋞tigheter</header>

P denna sida kan du 鋘dra befintliga r鋞tigheter per tabell f鰎 anv鋘dare.
<include tpriv>

N鋜 du 鋜 klar trycker du p <tt>Spara</tt> s att 鋘dringarna genomf鰎s.
Du kan ocks trycka p <tt>Ta bort</tt> f鰎 att ta bort r鋞tigheterna fr錸
MySQL.

<hr>

  07070100011827000081a40000000000000002000000013ac038ad000000dc000000200000000000000000000000000000002c00000003reloc/mysql/help/edit_tpriv.zh_TW.Big5.html   <header>絪胯戈舦</header>

硂琵眤絪胯ヴ瞷戈ㄏノ舦.
<include tpriv>

絪胯ぇ, <tt>纗</tt>秙ㄏ眔跑ミㄨネ. 眤<tt>埃</tt>眖 MySQL い埃ヴ舦砞﹚. <p>

<hr>

07070100011828000081a40000000000000002000000013ac038ac0000012f000000200000000000000000000000000000002300000003reloc/mysql/help/edit_user.es.html    <header>Editar Usuario</header>

Este formulario te permite editar un usuario existente de MySQL.
<include user.es>

Tras editarlo, haz click en el bot髇 <tt>Salvar</tt> para hacer que los
cambios tengan efecto inmediato. Puedes hacer click en <tt>Borrar</tt>
para borrar al usuario de MySQL.<p>

<hr>

 07070100011829000081a40000000000000002000000013ac038ab0000010c000000200000000000000000000000000000002000000003reloc/mysql/help/edit_user.html   <header>Edit User</header>

This form allows you to edit an existing MySQL user.
<include user>

After editing, click the <tt>Save</tt> button to have the changes take
effect immediately. You may also click on <tt>Delete</tt> to delete the
user from MySQL. <p>

<hr>

0707010001182a000081a40000000000000002000000013ac038ae0000010f000000200000000000000000000000000000002300000003reloc/mysql/help/edit_user.sv.html    <header>膎dra anv鋘dare</header>

I detta formul鋜 kan du 鋘dra uppgifter f鰎 MySQL-anv鋘dare.
<include user>

N鋜 du 鋜 klar trycker du p <tt>Spara</tt> s att 鋘dringarna genomf鰎s.
Du kan ocks trycka p <tt>Ta bort</tt> f鰎 att ta bort anv鋘daren fr錸
MySQL.

<hr>

 0707010001182b000081a40000000000000002000000013ac038ad000000d5000000200000000000000000000000000000002b00000003reloc/mysql/help/edit_user.zh_TW.Big5.html    <header>絪胯ㄏノ</header>

硂琵眤絪胯ヴ瞷 MySQL ㄏノ.
<include user>

絪胯ぇ, <tt>纗</tt>秙ㄏ眔跑ミㄨネ. 眤<tt>埃</tt>眖 MySQL い埃ヴ舦砞﹚. <p>


<hr>

   0707010001182c000081a40000000000000002000000013ac038ac00000104000000200000000000000000000000000000002300000003reloc/mysql/help/exec_form.es.html    <header>Ejecutar SQL</header>

Esta p醙ina sirve para digitar una sentencia SQL de forma arbitraria para
que sea ejecutada en la base de datos seleccionada. Se pueden utilizar los
comandos de selecci髇, inserci髇, actualizaci髇 y de administraci髇. <p>

<hr>

0707010001182d000081a40000000000000002000000013ac038ab000000cb000000200000000000000000000000000000002000000003reloc/mysql/help/exec_form.html   <header>Execute SQL</header>

This page is for entering an arbitrary SQL statement to be executed on the
selected database. Select, insert, update and administration commands may
all be used. <p>

<hr>

 0707010001182e000081a40000000000000002000000013ac038ae000000d7000000200000000000000000000000000000002300000003reloc/mysql/help/exec_form.sv.html    <header>Utf鰎 SQL</header>

P denna sida kan du skriva in ett valfritt SQL-uttryck som ska utf鰎as p
den angivna databasen. Alla val-, ins鋞tnings-, uppdaterings- och
administrationskommandon kan anv鋘das.

<hr>

 0707010001182f000081a40000000000000002000000013ac038ad000000b4000000200000000000000000000000000000002b00000003reloc/mysql/help/exec_form.zh_TW.Big5.html    <header>磅︽ SQL 琩高</header>

硂琌ノ块ヴ種 SQL 磞瓃磅︽﹚戈畐. ㄏノ珹匡拒 (select), 础 (insert), 穝 (update) 单单恨瞶. <p>

<hr>

07070100011830000081a40000000000000002000000013ac038ac000003d7000000200000000000000000000000000000001f00000003reloc/mysql/help/field.es.html    <dl>
<dt><b>Nombre de campo</b>
<dd>El nombre de este campo en la tabla.<p>
<dt><b>Valores enumerados (para tipos <tt>enum</tt> y <tt>set</tt>)</b>
<dd>Una lista de valores posibles para este campo.<p>
<dt><b>Ancho y decimales (para tipos <tt>float</tt> y <tt>decimal</tt>)</b>
<dd>La medida total de este campo y el n鷐ero de d韌itos a la derecha
    del punto decimal.<p>
<dt><b>Ancho del tipo (para otros tipos)</b>
<dd>El n鷐ero m醲imo de caracteres permitidos para los datos de este campo.<p>
<dt><b>Opciones del tipo</b>
<dd>Para campos num閞icos, este par醡etro te permite seleccionar si el campo
    es sin signo o con relleno de ceros a la izquierda. Para campos de
    car醕ter, puedes seleccionar si las may鷖culas se tienen en cuena en las
    clasificaciones o no. <p>
<dt><b>縋ermitir nulos?</b>
<dd>Determina si los valores NULL est醤 autorizados en este campo<p>
<dt><b>Valor por defecto</b>
<dd>El valor por defecto para este campo en los nuevos registros<p>
</dl>

 07070100011831000081a40000000000000002000000013ac038ab00000388000000200000000000000000000000000000001c00000003reloc/mysql/help/field.html   <dl>
<dt><b>Field name</b>
<dd>The name of this field in the table.<p>
<dt><b>Enumerated values (for <tt>enum</tt> and <tt>set</tt> types)</b>
<dd>A list of possible values for this field.<p>
<dt><b>Width and decimals (for <tt>float</tt> and <tt>decimal</tt> types)</b>
<dd>The total width of this field, and the number of digits to the right
    of the decimal point.<p>
<dt><b>Type width (for other types)</b>
<dd>The maximum number of characters allowed for data in this field.<p>
<dt><b>Type options</b>
<dd>For numeric fields, this parameter allows you to choose whether the
    field is unsigned or left-padded with zeros. For character fields, you
    can choose whether case is taken into account when sorting or not.<p>
<dt><b>Allow nulls?</b>
<dd>Determines whether NULL values are allowed in this field<p>
<dt><b>Default value</b>
<dd>The default value for this field in new records<p>
</dl>

07070100011832000081a40000000000000002000000013ac038ae00000373000000200000000000000000000000000000001f00000003reloc/mysql/help/field.sv.html    <dl>
<dt><b>F鋖tnamn</b>
<dd>Namnet p detta f鋖t i tabellen.
<dt><b>Numeriska v鋜den (f鰎 <tt>enum</tt>- och <tt>set</tt>-typer)</b>
<dd>En lista 鰒er m鰆liga v鋜den f鰎 detta f鋖t.
<dt><b>L鋘gd och decimaler (f鰎 <tt>float</tt>- och <tt>decimal</tt>typer)</b>
<dd>Den totala f鋖tl鋘gden och antalet siffror till h鰃er om decimalpunkten.
<dt><b>Typl鋘gd (f鰎 鰒riga typer)</b>
<dd>Det maximala antalet till錿na tecken f鰎 detta f鋖t.
<dt><b>Tillval f鰎 typ</b>
<dd>F鰎 numeriska f鋖t kan du h鋜 v鋖ja om f鋖tet ska kunna inneh錶la negativa
    tal och om det ska fyllas ut med nollor till v鋘ster. F鰎 teckenf鋖t
    kan du v鋖ja om det ska g鰎as skillnad mellan versaler och gemener vid
    sortering.
<dt><b>Tomma f鋖t till錿na?</b>
<dd>H鋜 anger du om NULL-v鋜den 鋜 till錿na i f鋖tet.
<dt><b>Standardv鋜de</b>
<dd>Det v鋜de som fylls i f鋖tet vid skapande av en ny post.
</dl>

 07070100011833000081a40000000000000002000000013ac038ad00000278000000200000000000000000000000000000002700000003reloc/mysql/help/field.zh_TW.Big5.html    <dl>
<dt><b>逆嘿</b>
<dd>戈い逆嘿.<p>
<dt><b>羭 (倒 <tt>enum</tt> 籔 <tt>set</tt> 摸ㄏノ)</b>
<dd>倒硂逆ㄏノ计.<p>
<dt><b>糴籔计 (倒 <tt>float</tt> 籔 <tt>decimal</tt> 摸ㄏノ)</b>
<dd>硂逆糴, 计计.<p>
<dt><b>摸糴 (倒ㄤ摸ㄏノ)</b>
<dd>硂逆いす砛程戈じ计.<p>
<dt><b>摸匡兜</b>
<dd>癸计┦逆, 硂把计す砛眤匡拒逆礚才腹┪璶オ娩恶骸 0. 癸じ逆, 眤匡拒琌跋だ糶, 琌璶逼单.<p>
<dt><b>琌す砛フ?</b>
<dd>∕﹚琌硂逆いㄏノフ (NULL) 计<p>
<dt><b>箇砞计</b>
<dd>糤穝魁硂逆箇砞计<p>
</dl>

07070100011834000081a40000000000000002000000013ac038ac00000345000000200000000000000000000000000000001f00000003reloc/mysql/help/intro.es.html    <header>Servidor de Base de Datos MySQL</header>

MySQL es un servidor de base de datos simple para sistemas Unix. Soporta
m鷏tiples bases de datos, potentes controles de acceso, muchos tipos de
datos y la mayor parte de la sint醲is SQL est醤dar. Cada base de datos
gestionada por el servidor puede contener m鷏tiples tablas y cada tabla
contener m鷏tiples filas de datos.<p>

La p醙ina principal muestra una lista de iconos de base de datos en la parte
superior, con un enlace para a馻dir una nueva base de datos bajo cada uno
de ellos. Cada servidor MySQL tendr al menos la base de datos <tt>mysql</tt>
que almacena tablas de configuraci髇 y de control de acceso. Bajo las bases
de datos hay iconos para configurar el control de acceso y en la parte
inferior hay un bot髇 para parar y arrancar el servidor de base de datos.<p>

<hr>

   07070100011835000081a40000000000000002000000013ac038ab000002bb000000200000000000000000000000000000001c00000003reloc/mysql/help/intro.html   <header>MySQL Database Server</header>

MySQL is a simple database server for Unix systems. It supports multiple
databases, powerful access controls, many data types and most of the standard
SQL syntax. Each database managed by the server can contain multiple tables,
and each table contains multiple rows of data. <p>

The main page dislays a list of database icons at the top, with a link
for adding a new database below them. Every MySQL server will have at least
the <tt>mysql</tt> database, which stores configuration and access control
tables. Below the databases are icons for configuring access control, and at
the bottom is a button for stopping or starting the database server. <p>

<hr>

 07070100011836000081a40000000000000002000000013ac038ae000002cb000000200000000000000000000000000000001f00000003reloc/mysql/help/intro.sv.html    <header>MySQL-databasserver</header>

MySQL 鋜 en enkel databasserver f鰎 Unix-system. MySQL st鰀jer multipla
databaser, kraftfull 錿komstkontroll, m錸ga datatyper och det mesta av den
vanliga SQL-syntaxen. Varje databas som servern hanterar kan inneh錶la flera
tabeller och varje tabell kan inneh錶la flera rader data (poster).

<p>H鰃st upp p startsidan finns en rad databasikoner och under dem en l鋘k
till formul鋜et f鰎 att l鋑ga till databaser. Varje MySQL-server driver
錿minstone <tt>mysql</tt>-databasen, som inneh錶ler inst鋖lningar och
r鋞tighetstabeller. Nedanf鰎 databaserna finns ikoner f鰎 att konfigurera
錿komstkontrollen och l鋘gst ned finns en knapp f鰎 att stanna/starta
databasservern.

<hr>

 07070100011837000081a40000000000000002000000013ac038ad000001e4000000200000000000000000000000000000002700000003reloc/mysql/help/intro.zh_TW.Big5.html    <header>MySQL 戈畐狝竟</header>

MySQL 琌倒 Unix ╰参ㄏノ虏虫戈畐狝竟. ウや穿戈畐, 眏北, 贺戈摸籔计夹非 SQL . 倒砆狝竟恨瞶戈畐常Τ戈, –戈ぃ逆戈. <p>

璶礶戈畐瓜ボ, 籔糤穝戈畐硈挡. – MySQL 狝竟常ぶΤ暗 <tt>mysql</tt> 戈畐, 硂纗闽舱篈籔北. 礶よ玥琌ノ舱篈北瓜ボ, ┏狠玥琌氨ゎ/币笆戈畐狝竟秙. <p>

<hr>

07070100011838000081a40000000000000002000000013ac038ac00000189000000200000000000000000000000000000002400000003reloc/mysql/help/newdb_form.es.html   <header>Crear Base de Datos</header>

Este formulario te permite crear una nueva base de datos MySQL con tabla
inicial opcional. Debes de digitar el nombre de la base de datos y, si est醩
creando una tabla inicial, debes de digitar un nombre de tabla y los
detalles de al menos un campo. Al termina, haz click en <tt>Crear</tt> para
que la base de datos quede inmedi醫amente creada. <p>
<hr>

   07070100011839000081a40000000000000002000000013ac038ab00000158000000200000000000000000000000000000002100000003reloc/mysql/help/newdb_form.html  <header>Create Database</header>

This form allows you to create a new MySQL database, with an optional
initial table. You must enter a database name, and if creating an initial
table you must enter a table name and the details of at least one field.
When done, click on the <tt>Create</tt> to have the database immediately
created.  <p>
<hr>

0707010001183a000081a40000000000000002000000013ac038ae00000124000000200000000000000000000000000000002400000003reloc/mysql/help/newdb_form.sv.html   <header>Skapa databas</header>

Med detta formul鋜 kan du skapa en ny MySQL-databas. Du m錽te ange ett
namn p databasen och om du skapar en tabell m錽te du ange namn p
tabellen och uppgifter om minst ett f鋖t.

N鋜 du 鋜 klar trycker du p <tt>Skapa</tt>, s skapas databasen direkt.
<hr>

0707010001183b000081a40000000000000002000000013ac038ad000000f9000000200000000000000000000000000000002c00000003reloc/mysql/help/newdb_form.zh_TW.Big5.html   <header>ミ戈畐</header>

硂虫琵眤ミ穝 MySQL 戈畐, 籔匡拒┦﹍戈. 眤ゲ斗块戈畐嘿; τ狦眤璶ミ﹍戈, 眤ゲ斗块戈嘿籔ぶ逆冈灿戈. ЧΘ, <tt>ミ</tt>ミㄨミ戈畐. <p>
<hr>

   0707010001183c000081a40000000000000002000000013ac038ac00000189000000200000000000000000000000000000002400000003reloc/mysql/help/table_form.es.html   <header>Crear Tabla</header>

Este formulario es para crear nuevas tablas vac韆s. Debes de digitar
un nombre de tabla y uno o m醩 campos. Para cada campo, debes de digitar
un nombre, seleccionar un tipo de dato y digitar el ancho del tipo (si es
apropiado para el tipo de dato). Al terminar, haz click en el bot髇
<tt>Crear</tt> para hacer que la tabla quede inmedi醫amente creada. <p>

<hr>

   0707010001183d000081a40000000000000002000000013ac038ab00000159000000200000000000000000000000000000002100000003reloc/mysql/help/table_form.html  <header>Create Table</header>

This form is for creating a new, empty table. You must enter a table
name and one or more fields. For each field, you must enter a name, select a
data type and enter the type width (if appropriate for the data type).
When done, click on the <tt>Create</tt> button to have the table immediately
created. <p>

<hr>

   0707010001183e000081a40000000000000002000000013ac038ae00000132000000200000000000000000000000000000002400000003reloc/mysql/help/table_form.sv.html   <header>Skapa tabell</header>

I detta formul鋜 kan du skapa en ny, tom tabell. Du m錽te ange namn p
tabellen samt ett eller flera f鋖t. F鰎 varje f鋖t m錽te du ange namn, 
datatyp och typl鋘gd (om s錮an finns f鰎 datatypen).

N鋜 du 鋜 klar trycker du p <tt>Skapa</tt> s skapas tabellen direkt.

<hr>

  0707010001183f000081a40000000000000002000000013ac038ad00000100000000200000000000000000000000000000002c00000003reloc/mysql/help/table_form.zh_TW.Big5.html   <header>ミ戈</header>

硂虫琌ノミ穝, フ戈. 眤ゲ斗块戈嘿籔ぶ┪逆. 癸–逆, 眤ゲ斗璶块嘿, 匡拒戈摸块摸糴 (狦戈摸惠璶). ЧΘぇ, <tt>ミ</tt>ミㄨミ硂戈. <p>

<hr>

07070100011840000081a40000000000000002000000013ac038ac00000298000000200000000000000000000000000000001f00000003reloc/mysql/help/tpriv.es.html    Est醤 disponibles los siguientes par醡etros:
<dl>
<dt><b>Tabla</b>
<dd>La tabla a la que se aplicar醤 estos permisos. <p>
<dt><b>Nombre de usuario</b>
<dd>El usuario al que se conceden los permisos. Este usuario ya debe de
    existir en la tabla de <tt>Permisos de Usuario</tt>. <p>
<dt><b>M醧uinas</b>
<dd>Las m醧uinas desde las que el usuario puede acceder a la tabla.<p>
<dt><b>Permisos de tabla</b>
<dd>Los permisos concedidos al usuario en todas las columnas de la tabla.<p>
<dt><b>Permisos de campo</b>
<dd>El m醲imo de permisos que se puede conceder a este usuario para cualquier
    columna de la tabla en la p醙ina <tt>Permisos de Campo</tt>. <p>
</dl>

07070100011841000081a40000000000000002000000013ac038ab00000266000000200000000000000000000000000000001c00000003reloc/mysql/help/tpriv.html   The following parameters are available :
<dl>
<dt><b>Table</b>
<dd>The table these permissions should apply to. <p>
<dt><b>Username</b>
<dd>The user to whom the permissions are granted. This user must already
    exist in the <tt>User Permissions</tt> table. <p>
<dt><b>Hosts</b>
<dd>The hosts that the user can access the table from. <p>
<dt><b>Table permissions</b>
<dd>The permissions granted to the user on all columns of the table. <p>
<dt><b>Field permissions</b>
<dd>The maximum permissions that can be granted to this user for any
    column of the table in the <tt>Field Permissions</tt> page. <p>
</dl>

  07070100011842000081a40000000000000002000000013ac038ae0000020e000000200000000000000000000000000000001f00000003reloc/mysql/help/tpriv.sv.html    F鰈jande inst鋖lningar kan g鰎as:
<dl>
<dt><b>Tabell</b>
<dd>Tabell som r鋞tigheterna g鋖ler f鰎.
<dt><b>Anv鋘darnamn</b>
<dd>Anv鋘dare som f錼 r鋞tigheterna. Anv鋘daren m錽te finnas i tabellen
    <tt>Anv鋘darr鋞tigheter</tt>
<dt><b>Datorer</b>
<dd>Datorer som anv鋘daren kan komma 錿 tabellen fr錸.
<dt><b>Tabellr鋞tigheter</b>
<dd>Anv鋘darens r鋞tigheter f鰎 samtliga kolumner.
<dt><b>F鋖tr鋞tigheter</b>
<dd>Maximala r鋞tigheter som denna anv鋘dare kan f i n錱on tabellkolumn
    p sidan <tt>F鋖tr鋞tigheter</tt>
</dl>

  07070100011843000081a40000000000000002000000013ac038ad0000019a000000200000000000000000000000000000002700000003reloc/mysql/help/tpriv.zh_TW.Big5.html    眤ㄏノ把计:
<dl>
<dt><b>戈</b>
<dd>硂ㄇ舦璶甅ノ戈. <p>
<dt><b>ㄏノ嘿</b>
<dd>硂ㄇ舦璶甭舦ㄏノ. 硂ㄏノゲ斗竒<tt>ㄏノ舦</tt>戈い. <p>
<dt><b>诀</b>
<dd>硂ㄏノ戈ㄓ方诀. <p>
<dt><b>戈舦</b>
<dd>璶甭舦倒ㄏノ戈い┮Τ逆舦. <p>
<dt><b>逆舦</b>
<dd>癸戈<tt>逆舦</tt>い逆璶甭舦倒ㄏノ程舦. <p>
</dl>

  07070100011844000081a40000000000000002000000013ac038ac000002af000000200000000000000000000000000000002000000003reloc/mysql/help/tprivs.es.html   <header>Permisos de Tabla</header>

Esta p醙ina te permite conceder acceso adicional de usuarios a tablas, adem醩
de lo que est autorizado en <tt>Permisos de Usuario</tt> o en
<tt>Permisos de Base de Datos</tt>. Los permisos concedidos aqu se aplican
s髄o para acceder a una tabla en una base de datos por un usuario, permitiendo
de esta manera un acceso granular.<p>

Para a馻dir permisos a nueva tabla, debes de seleccionar primero la base de
datos en que se est usando la tabla mediante el formulario de la parte
inferior de la p醙ina. Luego haz click en el bot髇
<tt>A馻dir nuevos permisos</tt> para hacer salir un formulario para
seleccionar la tabla y otros detalles.<p>

<hr>

 07070100011845000081a40000000000000002000000013ac038ab00000253000000200000000000000000000000000000001d00000003reloc/mysql/help/tprivs.html  <header>Table Permissions</header>

The page allows you to grant additional access to tables by users, beyond
what is available in <tt>User Permissions</tt> or <tt>Database Permissions</tt>.
The permissions granted here apply only to access to one table in one database
by one user, thus allowing quite fine-grained access to be granted. <p>

To add new table permissions, you must first select the database that the
table is in using the form at the bottom of the page. Then click the
<tt>Add new permissions</tt> button to bring up a form for selecting the
table and other details. <p>

<hr>

 07070100011846000081a40000000000000002000000013ac038ae00000226000000200000000000000000000000000000002000000003reloc/mysql/help/tprivs.sv.html   <header>Tabellr鋞tigheter</header>

P den h鋜 sidan kan du dela ut ytterligare anv鋘darr鋞tigheter f鰎
tabeller f鰎utom vad som angivits i <tt>Anv鋘darr鋞tigheter</tt> och
<tt>Databasr鋞tigheter</tt>.
De r鋞tigheter som ges h鋜 g鋖ler bara f鰎 en tabell i en databas och f鰎
en anv鋘dare, vilket medf鰎 att du kan specificera r鋞tigheter mycket
detaljerat.

<p>Ange l鋘gst ned p sidan den databas som tabellen finns i och tryck
sedan p <tt>L鋑g till r鋞tigheter</tt>, s f錼 du upp ett formul鋜 d鋜
du kan ange tabell och 鰒riga uppgifter.

<hr>

  07070100011847000081a40000000000000002000000013ac038ad0000015f000000200000000000000000000000000000002800000003reloc/mysql/help/tprivs.zh_TW.Big5.html   <header>戈舦</header>

硂琵眤扳ぉㄏノ<tt>ㄏノ舦</tt>┪<tt>戈畐舦</tt>⊿Τ肂戈舦. 硂ㄇ舦穦甅ノ虫ㄏノ虫戈畐い疭﹚戈, す砛眤稬秸璶甭籔舦. <p>

璶糤穝戈舦, 眤ゲ斗璶セ┏狠匡拒戈┮戈畐, 礛<tt>糤穝舦<tt>秙眔匡拒戈ㄤ灿竊虫. <p>

<hr>

 07070100011848000081a40000000000000002000000013ac038ac0000039b000000200000000000000000000000000000001e00000003reloc/mysql/help/user.es.html Para cada usuario est醤 disponibles los siguientes par醡etros:
<dl>
<dt><b>Nombre de usuario</b>
<dd>Para este campo, debes de digitar o un nombre espec韋ico de usuario o
    seleccionar la opci髇 de <tt>Usuario an髇imo</tt>, del cual se
    aplicar醤 los permisos a cualquier usuario que no est en la lista de
    <tt>Permisos de Usuario</tt>.<p>
<dt><b>Clave de Acceso</b>
<dd>La clave de acceso necesaria para este usuario cuando haga login. Si
    <tt>Ninguna</tt>, no hace falta clave de acceso.<p>
<dt><b>M醧uinas</b>
<dd>La direcci髇 IP o nombre de m醧uina de la m醧uina desde la que este
    usuario est autorizado a hacer login.
    Este campo puede contener tambi閚 una expresi髇 SQL regular que coincida
    con m鷗iples m醧uinas, como <tt>192.168.1.%</tt> o <tt>%.foo.com</tt>. <p>
<dt><b>Permisos</b>
<dd>Las operaciones MySQL que este usuario est autorizado a realizar en una
    base de datos. <p>
</ul>

 07070100011849000081a40000000000000002000000013ac038ab00000313000000200000000000000000000000000000001b00000003reloc/mysql/help/user.html    For each user, the following parameters are available :
<dl>
<dt><b>Username</b>
<dd>For this field, you may either enter a specific username, or choose the
    <tt>Anonymous user</tt> option in which case the permissions will apply
    to any user who is not in the <tt>User Permissions</tt> list.<p>
<dt><b>Password</b>
<dd>The password required by this user when logging in. If <tt>None</tt>,
    then no password is needed. <p>
<dt><b>Hosts</b>
<dd>The IP address or hostname of the host this user is allowed to login from.
    This field can also contain an SQL regular expression matching multiple
    hosts, like <tt>192.168.1.%</tt> or <tt>%.foo.com</tt>. <p>
<dt><b>Permissions</b>
<dd>The MySQL operations this user is allowed to perform on <b>any</b>
    database. <p>
</ul>

 0707010001184a000081a40000000000000002000000013ac038ae00000318000000200000000000000000000000000000001e00000003reloc/mysql/help/user.sv.html F鰎 varje anv鋘dare kan f鰈jande inst鋖lningar g鰎as:
<dl>
<dt><b>Anv鋘darnamn</b>
<dd>H鋜 kan du skriva in ett anv鋘darnamn eller v鋖ja <tt>Anonym
    anv鋘dare</tt>, vilket resulterar i att r鋞tigheterna g鋖ler f鰎 alla
    anv鋘dare som <i>inte</it> finns i tabellen </tt>Anv鋘darr鋞tigheter</tt>.
<dt><b>L鰏enord</b>
<dd>Det l鰏enord som anv鋘daren ska ange n鋜 han/hon loggar in. Om l鰏enord
    inte kr鋠s v鋖jer du <tt>Inget</tt>.
<dt><b>Datorer</b>
<dd>IP-adress eller namn p den dator som anv鋘daren f錼 logga in fr錸.
    I detta f鋖t kan du ocks ange ett regulj鋜t SQL-uttryck som expanderas
    till flera datorer, t ex <tt>192.168.1.%</tt> och <tt>%.foo.com</tt>.
<dt><b>R鋞tigheter</b>
<dd>MySQL-operationer som denna anv鋘dare f錼 utf鰎a p <b>alla</b>
    databaser.
</ul>

0707010001184b000081a40000000000000002000000013ac038ad00000214000000200000000000000000000000000000002600000003reloc/mysql/help/user.zh_TW.Big5.html 癸–ㄏノ, ㄏノ把计:
<dl>
<dt><b>ㄏノ嘿</b>
<dd>癸硂逆, 眤ゲ斗块﹚ㄏノ甅ノ穝舦; ┪匡拒<tt>拔ㄏノ</tt>匡兜甅ノ穝舦倒┮Τ⊿<tt>ㄏノ舦</tt>いㄏノ.<p>
<dt><b>盞絏</b>
<dd>ㄏノ祅戈畐╰参┮惠璶盞絏. 狦砞﹚<tt>礚</tt>, 盢ぃ惠璶盞絏. <p>
<dt><b>诀</b>
<dd>ㄏノす砛祅ㄓ方诀. 硂逆 SQL タ砏ボ猭才诀, ㄒ <tt>192.168.1.%</tt> ┪ <tt>%.foo.com</tt>. <p>
<dt><b>舦</b>
<dd>す砛ㄏノ<b>ヴ</b>戈畐いㄏノ MySQL 巨. <p>
</ul>

0707010001184c000081a40000000000000002000000013ac038ac0000027d000000200000000000000000000000000000001f00000003reloc/mysql/help/users.es.html    <header>Permisos de Usuario</header>

Esta p醙ina te permite crear y editar usuarios que tendr醤 acceso a tus
bases de datos MySQL. Para cada usuario, puedes especificar un nombre,
clave de acceso, m醧uinas autorizadas y un conjunto de permisos que
determinan lo que el usuario puede hacer.<p>

Ya que cualquier usuario de la lista que tenga permisos tendr esos
permisos en <b>todas</b> las bases de datos, es normalmente buena idea no
conceder a los usuarios de esta p醙ina permiso alguno. En su lugar, utiliza
la p醙ina de <tt>Permisos de Base de Datos</tt> para conceder acceso a los
usuarios en base a por-base-de-datos.<p>

<hr>


   0707010001184d000081a40000000000000002000000013ac038aa00000225000000200000000000000000000000000000001c00000003reloc/mysql/help/users.html   <header>User Permissions</header>

This page allows you to create and edit users who will have access
to your MySQL databases. For each user, you can specify a username, password,
allowable hosts and a set of permissions that determine what the user can
do. <p>

Because any user listed who has permissions will have those permissions on
<b>all</b> databases, it is usually a good idea not to grant users on this
page any permissions. Instead, use the <tt>Database Permissions</tt>
page to grant access to users on a per-database basis. <p>

<hr>


   0707010001184e000081a40000000000000002000000013ac038ae000001f7000000200000000000000000000000000000001f00000003reloc/mysql/help/users.sv.html    <header>Anv鋘darr鋞tigheter</header>

P denna sida kan du l鋑ga till och 鋘dra anv鋘dare som f錼 komma 錿
dina MySQL-databaser. F鰎 varje anv鋘dare kan du ange anv鋘darnamn,
l鰏enord, till錿na datorer och r鋞tigheter som best鋗mer vad anv鋘daren
f錼 g鰎a.

<p>Eftersom de r鋞tigheter som anv鋘daren f錼 h鋜 g鋖ler <b>alla</b>
databaser 鋜 det klokt att inte ge n錱ra r鋞tigheter h鋜, utan ist鋖let
anv鋘da sidan <tt>Databasr鋞tigheter</tt> f鰎 att dela ut r鋞tigheter till
specifika databaser.

<hr>


 0707010001184f000081a40000000000000002000000013ac038ad0000016b000000200000000000000000000000000000002700000003reloc/mysql/help/users.zh_TW.Big5.html    <header>ㄏノ舦</header>

硂琵眤ミ籔絪胯眤 MySQL 戈畐ㄏノ. 癸–ㄏノ, 眤ゲ斗﹚ㄏノ嘿, 盞絏, す砛ㄓ方诀籔舱∕﹚ㄏ巨ㄆ兜舦. <p>

ヴㄏノ常癸<b>场</b>戈畐Τ┮砞﹚舦. ┮程ぃ璶硂娩甭籔ㄏノヴ舦. 眤莱赣璶ㄏノ<tt>戈畐舦</tt>ㄌ沮戈畐嘿甭籔ㄏノ舦. <p>

<hr>


 0707010000d1da000081a40000000000000002000000013ac038ae000001b2000000200000000000000000000000000000001b00000003reloc/mysql/config.info.es    mysqlshow=Trayectoria a comando mysqlshow,0
mysqladmin=Trayectoria a comando mysqladmin,0
mysql=Trayectoria a comando mysql,0
start_cmd=Comando para arrancar servidor mysql,0
stop_cmd=Comando para parar servidor mysql,3,Autom醫ico
mysql_libs=Trayectoria a directorio de bibliotecas compartidas de mysql,3,Ninguna
login=Login de administraci髇,0,
pass=Clave de acceso de administraci髇,0
perpage=N鷐ero de filas a mostrar por pagina,0
  0707010000d1db000081a40000000000000002000000013ac038af00000196000000200000000000000000000000000000001b00000003reloc/mysql/config.info.hu    mysqlshow=A mysqlshow parancs 鷗vonala,0
mysqladmin=A mysqladmin parancs 鷗vonala,0
mysql=A mysql parancs 鷗vonala,0
start_cmd=A mysql szerver ind韙 parancssora,0
stop_cmd=A mysql server le醠l韙 parancssora,3,Automatikus
mysql_libs=A mysql megosztott k鰊yvt醨ainal 鷗vonala,3,Nincs
login=Adminisztr醫ori felhaszn醠骾 n関,0
pass=Adminisztr醫ori jelsz,0
perpage=A megjelen韙end sorok sz醡a oldalank閚t,0
  0707010000d1dc000081a40000000000000002000000013ac038ae000002d7000000200000000000000000000000000000001b00000003reloc/mysql/config.info.pl    mysqlshow=ie縦a do polecenia <tt>mysqlshow</tt>,0
mysqladmin=ie縦a do polecenia <tt>mysqladmin</tt>,0
mysql=ie縦a do polecenia <tt>mysql</tt>,0
mysqldump=ie縦a do polecenia <tt>mysqldump</tt>,0
start_cmd=Polecenie uruchamiaj眂e serwer MySQL,0
stop_cmd=Polecenie zatrzymuj眂e serwer MySQL,3,Automatycznie
mysql_libs=ie縦a do katalogu bibliotek wsp蟪dzielonych MySQL,3,Brak
login=Login administracyjny,0
pass=Has硂 administracyjne,0
perpage=Ilo舵 wy秝ietlanych linii na stronie,0
style=Pokazywa bazy danych i&nbsp;tabele jako,1,1-List,0-Ikony
add_mode=Korzysta z&nbsp;interfejsu pionowego dodawania wierszy,1,1-Tak,0-Nie
host=Host MySQL-a&#44; z&nbsp;kt髍ym si 潮czy,3,Localhost
sock=Plik gniazd MySQLa,3,Domy秎ny
 0707010000d1dd000081a40000000000000002000000013ac038ae00000291000000200000000000000000000000000000001b00000003reloc/mysql/config.info.sv    mysqlshow=S鰇v鋑 till mysqlshow-kommando,0
mysqladmin=S鰇v鋑 till mysqladmin-kommando,0
mysql=S鰇v鋑 till mysqlkommando,0
mysqldump=S鰇v鋑 till mysqldump-kommando,0
start_cmd=Kommando f鰎 att starta mysql-server,0
stop_cmd=Kommando f鰎 att stanna mysql-server,3,Automatiskt
mysql_libs=S鰇v鋑 till katalog f鰎 delade mysql-lib,3,Ingen
login=Administrat鰎ens inloggningsnamn,0
pass=Administrat鰎ens l鰏enord,0
perpage=Antal rader som ska visas p en sida,0
style=Visa databaser och tabeller som,1,1-Lista,0-Ikoner
add_mode=Anv鋘d vertikalt gr鋘ssnitt med radtill鋑g,1,1-Ja,0-Nej
host=MySQL-dator att koppla upp mot,3,Localhost
sock=MySQL-socketfil,3,Standard
   0707010000d1de000081a40000000000000002000000013ac038ae00000176000000200000000000000000000000000000001b00000003reloc/mysql/config.info.tr    mysqlshow=mysqlshow komutunun yolu,0
mysqladmin=mysqladmin komutunun yolu,0
mysql=mysql komutunun yolu,0
start_cmd=Mysql sunucusunu baatma komutu,0
stop_cmd=Mysql sunucusunu durdurma komutu,3,Otomatik
mysql_libs=Mysql paylam k黷黳hanelerinin yeri,3,Hi鏱iri
login=Administration giri,0
pass=Administration 㱮fresi,0
perpage=Sayfa bana g鰏terilecek olan kolon say齭,0
  0707010000d1df000081a40000000000000002000000013ac038ae00000106000000200000000000000000000000000000001e00000003reloc/mysql/config.info.zh_CN mysqlshow=mysqlshow 命令的路径,0
mysqladmin=mysqladmin 命令的路径,0
mysql=mysql 命令的路径,0
start_cmd=启动 mysql 服务的命令,0
stop_cmd=停止 mysql 服务的命令,3,自动
mysql_libs=共享库的目录路径,3,无
login=管理员登录名,0
pass=管理员口令,0
perpage=每页显示的行数,0
  0707010000d1e0000081a40000000000000002000000013ac038ae00000132000000200000000000000000000000000000002300000003reloc/mysql/config.info.zh_TW.Big5    mysqlshow= mysqlshow Ч俱隔畖,0
mysqladmin= mysqladmin Ч俱隔畖,0
mysql= mysql Ч俱隔畖,0
start_cmd=币笆 MySQL 狝竟㏑,0
stop_cmd=氨ゎ MySQL 狝竟㏑,3,笆
mysql_libs= MySQL ㄉㄧΑ畐隔畖,3,礚
login=戈畐恨瞶嘿,0
pass=戈畐恨瞶盞絏,0
perpage=–陪ボ计,0
  0707010000d1e1000081e40000000000000002000000013ac038a9000004d5000000200000000000000000000000000000001d00000003reloc/mysql/create_table.cgi  #!/usr/local/bin/perl
# create_table.cgi
# Create a new table

require './mysql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
&error_setup($text{'table_err'});
$in{'name'} =~ /^\S+$/ || &error($text{'table_ename'});
if ($in{'copy'}) {
	local ($db, $table) = split(/\./, $in{'copy'});
	foreach $f (&table_structure($db, $table)) {
		local $copy = "$f->{'field'} $f->{'type'}";
		$copy .= " not null" if (!$f->{'null'});
		$copy .= " default '$f->{'default'}'"
			if ($f->{'default'} && $f->{'default'} ne 'NULL');
		push(@fields, $copy);
		}
	}
for($i=0; defined($in{"field_$i"}); $i++) {
	next if (!$in{"field_$i"});
	$in{"field_$i"} =~ /^\S+$/ ||
		&error(&text('table_efield', $in{"field_$i"}));
	$in{"type_$i"} || &error(&text('table_etype', $in{"field_$i"}));
	if ($in{"size_$i"}) {
		push(@fields, sprintf "%s %s(%s)",
		     $in{"field_$i"}, $in{"type_$i"}, $in{"size_$i"});
		}
	else {
		push(@fields, sprintf "%s %s", $in{"field_$i"}, $in{"type_$i"});
		}
	}
@fields || &error($text{'table_enone'});
$sql = "create table $in{'name'} (".join(",", @fields).")";
&execute_sql_logged($in{'db'}, $sql);
&webmin_log("create", "table", $in{'name'}, \%in);
&redirect("edit_dbase.cgi?db=$in{'db'}");


   0707010000d1e2000081a40000000000000002000000013ac038ae0000003a000000200000000000000000000000000000001700000003reloc/mysql/defaultacl    dbs=*
create=1
delete=1
stop=1
perms=1
bpath=/
buser=root
  0707010000d1e3000081e40000000000000002000000013ac038ae0000044f000000200000000000000000000000000000001b00000003reloc/mysql/drop_dbase.cgi    #!/usr/local/bin/perl
# drop_dbase.cgi
# Drop an existing database

require './mysql-lib.pl';
&ReadParse();
&error_setup($text{'ddrop_err'});
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
if ($in{'confirm'}) {
	# Drop the database
	&execute_sql_logged($master_db, "drop database $in{'db'}");
	&webmin_log("delete", "db", $in{'db'});
	&redirect("");
	}
else {
	# Ask the user if he is sure..
	&header($text{'ddrop_title'}, "");
	print "<hr>\n";
	@tables = &list_tables($in{'db'});
	$rows = 0;
	foreach $t (@tables) {
		$d = &execute_sql($in{'db'}, "select count(*) from $t");
		$rows += $d->{'data'}->[0]->[0];
		}

	print "<center><b><p>",&text('ddrop_rusure', "<tt>$in{'db'}</tt>",
				     scalar(@tables), $rows),"\n";
	print $text{'ddrop_mysql'},"\n" if ($in{'db'} eq $master_db);
	print "</b><p>\n";
	print "<form action=drop_dbase.cgi>\n";
	print "<input type=hidden name=db value='$in{'db'}'>\n";
	print "<input type=submit name=confirm value='$text{'ddrop_ok'}'>\n";
	print "</form></center>\n";
	print "<hr>\n";
	&footer("edit_dbase.cgi?db=$in{'db'}", $text{'dbase_return'});
	}


 0707010000d1e4000081e40000000000000002000000013ac038aa00000463000000200000000000000000000000000000001b00000003reloc/mysql/drop_table.cgi    #!/usr/local/bin/perl
# drop_table.cgi
# Delete an existing table

require './mysql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
if ($in{'confirm'}) {
	# Drop the table
	&error_setup($text{'tdrop_err'});
	&execute_sql_logged($in{'db'}, "drop table $in{'table'}");
	&webmin_log("delete", "table", $in{'table'}, \%in);
	&redirect("edit_dbase.cgi?db=$in{'db'}");
	}
else {
	# Ask the user if he is sure..
	&header($text{'tdrop_title'}, "");
	print "<hr>\n";
	@tables = &list_tables($in{'db'});
	$d = &execute_sql($in{'db'}, "select count(*) from $in{'table'}");
	$rows = $d->{'data'}->[0]->[0];

	print "<center><b><p>", &text('tdrop_rusure', "<tt>$in{'table'}</tt>",
				      "<tt>$in{'db'}</tt>", $rows),"</b><p>\n";
	print "<form action=drop_table.cgi>\n";
	print "<input type=hidden name=db value='$in{'db'}'>\n";
	print "<input type=hidden name=table value='$in{'table'}'>\n";
	print "<input type=submit name=confirm value='$text{'tdrop_ok'}'>\n";
	print "</form></center>\n";
	print "<hr>\n";
	&footer("edit_table.cgi?db=$in{'db'}&table=$in{'table'}",
		$text{'table_return'});
	}

 0707010000d1e5000081e40000000000000002000000013ac038ae00000b46000000200000000000000000000000000000001b00000003reloc/mysql/edit_cpriv.cgi    #!/usr/local/bin/perl
# edit_cpriv.cgi
# Display a form for editing or creating new column permissions

require './mysql-lib.pl';
&ReadParse();
$access{'perms'} || &error($text{'perms_ecannot'});
if ($in{'table'}) {
	&header($text{'cpriv_title1'}, "", "create_cpriv");
	($d, $t) = split(/\./, $in{'table'});
	}
else {
	$d = &execute_sql($master_db, "select * from columns_priv");
	$u = $d->{'data'}->[$in{'idx'}];
	$access{'perms'} == 1 || &can_edit_db($u->[1]) ||
		&error($text{'perms_edb'});
	$d = $u->[1]; $t = $u->[3];
	&header($text{'cpriv_title2'}, "", "edit_cpriv");
	}
print "<hr>\n";

print "<form action=save_cpriv.cgi>\n";
if ($in{'table'}) {
	print "<input type=hidden name=table value='$in{'table'}'>\n";
	}
else {
	print "<input type=hidden name=oldhost value='$u->[0]'>\n";
	print "<input type=hidden name=olddb value='$u->[1]'>\n";
	print "<input type=hidden name=olduser value='$u->[2]'>\n";
	print "<input type=hidden name=oldtable value='$u->[3]'>\n";
	print "<input type=hidden name=oldfield value='$u->[4]'>\n";
	}
print "<table border>\n";
print "<tr $tb> <td><b>$text{'cpriv_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'cpriv_db'}</b></td>\n";
print "<td><tt>$d</tt></td> </tr>\n";

print "<tr> <td><b>$text{'cpriv_table'}</b></td>\n";
print "<td><tt>$t</tt></td> </tr>\n";

print "<tr> <td><b>$text{'cpriv_field'}</b></td>\n";
print "<td><select name=field>\n";
print "<option selected>\n" if ($in{'table'});
foreach $c (&table_structure($d, $t)) {
	printf "<option %s>%s\n",
		$u->[4] eq $c->{'field'} ? 'selected' : '',
		$c->{'field'};
	}
print "</select></td> </tr>\n";

print "<tr> <td><b>$text{'cpriv_user'}</b></td> <td>\n";
printf "<input type=radio name=user_def value=1 %s> %s\n",
	$u->[2] ? '' : 'checked', $text{'cpriv_anon'};
printf "<input type=radio name=user_def value=0 %s>\n",
	$u->[2] ? 'checked' : '';
print "<input name=user size=10 value='$u->[2]'></td> </tr>\n";

print "<tr> <td><b>$text{'cpriv_host'}</b></td> <td>\n";
printf "<input type=radio name=host_def value=1 %s> %s\n",
	$u->[0] eq '%' || $u->[0] eq '' ? 'checked' : '', $text{'cpriv_any'};
printf "<input type=radio name=host_def value=0 %s>\n",
	$u->[0] eq '%' || $u->[0] eq '' ? '' : 'checked';
printf "<input name=host size=20 value='%s'></td> </tr>\n",
	$u->[0] eq '%' ? '' : $u->[0];

print "<tr> <td valign=top><b>$text{'cpriv_perms'}</b></td>\n";
print "<td><select multiple size=4 name=perms>\n";
foreach $p ('Select','Insert','Update','References') {
	printf "<option %s>%s\n",
		$u->[6] =~ /$p/i ? 'selected' : '', $p;
	}
print "</select></td> </tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value='$text{'save'}'>\n";
if (!$in{'new'}) {
	print "<input type=submit name=delete value='$text{'delete'}'>\n";
	}
print "</form>\n";

print "<hr>\n";
&footer('list_cprivs.cgi', $text{'cprivs_return'});

  0707010000d1e6000081e40000000000000002000000013ac038a900000a18000000200000000000000000000000000000001800000003reloc/mysql/edit_db.cgi   #!/usr/local/bin/perl
# edit_db.cgi
# Edit or create a db table record

require './mysql-lib.pl';
&ReadParse();
$access{'perms'} || &error($text{'perms_ecannot'});

if ($in{'new'}) {
	&header($text{'db_title1'}, "", "create_db");
	}
else {
	$d = &execute_sql($master_db, "select * from db");
	$u = $d->{'data'}->[$in{'idx'}];
	$access{'perms'} == 1 || &can_edit_db($u->[1]) ||
		&error($text{'perms_edb'});
	&header($text{'db_title2'}, "", "edit_db");
	}
print "<hr>\n";

print "<form action=save_db.cgi>\n";
if ($in{'new'}) {
	print "<input type=hidden name=new value=1>\n";
	}
else {
	print "<input type=hidden name=oldhost value='$u->[0]'>\n";
	print "<input type=hidden name=olddb value='$u->[1]'>\n";
	print "<input type=hidden name=olduser value='$u->[2]'>\n";
	}
print "<table border>\n";
print "<tr $tb> <td><b>$text{'db_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'db_db'}</b></td> <td>\n";
printf "<input type=radio name=db_def value=1 %s> %s\n",
	$u->[1] eq '%' || $u->[1] eq '' ? 'checked' : '', $text{'db_any'};
printf "<input type=radio name=db_def value=0 %s>\n",
	$u->[1] eq '%' || $u->[1] eq '' ? '' : 'checked';
printf "<input name=db size=10 value='%s'></td> </tr>\n",
	$u->[1] eq '%' ? '' : $u->[1];

print "<tr> <td><b>$text{'db_user'}</b></td> <td>\n";
printf "<input type=radio name=user_def value=1 %s> %s\n",
	$u->[2] ? '' : 'checked', $text{'db_anon'};
printf "<input type=radio name=user_def value=0 %s>\n",
	$u->[2] ? 'checked' : '';
print "<input name=user size=10 value='$u->[2]'></td> </tr>\n";

print "<tr> <td><b>$text{'db_host'}</b></td> <td>\n";
printf "<input type=radio name=host_mode value=0 %s> %s\n",
	$u->[0] eq '' ? 'checked' : '', $text{'db_hosts'};
printf "<input type=radio name=host_mode value=1 %s> %s\n",
	$u->[0] eq '%' ? 'checked' : '', $text{'db_any'};
printf "<input type=radio name=host_mode value=2 %s>\n",
	$u->[0] eq '%' || $u->[0] eq '' ? '' : 'checked';
printf "<input name=host size=20 value='%s'></td> </tr>\n",
	$u->[0] eq '%' ? '' : $u->[0];

print "<tr> <td valign=top><b>$text{'db_perms'}</b></td>\n";
print "<td><select name=perms multiple size=8>\n";
for($i=3; $i<=12; $i++) {
	printf "<option value=%d %s>%s\n",
		$i, $u->[$i] eq 'Y' ? 'selected' : '',
		$text{"db_priv$i"};
	}
print "</select></td> </tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value='$text{'save'}'>\n";
if (!$in{'new'}) {
	print "<input type=submit name=delete value='$text{'delete'}'>\n";
	}
print "</form>\n";

print "<hr>\n";
&footer('list_dbs.cgi', $text{'dbs_return'});

0707010000d1e7000081e40000000000000002000000013ac038a900000886000000200000000000000000000000000000001b00000003reloc/mysql/edit_dbase.cgi    #!/usr/local/bin/perl
# edit_dbase.cgi
# Show database tables

require './mysql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
&header($text{'dbase_title'}, "", "edit_dbase");
print "<center><font size=+2><tt>$in{'db'}</tt></font></center>\n";
print "<hr>\n";

@titles = &list_tables($in{'db'});
if (@titles) {
	print "<h3>$text{'dbase_tables'}</h3>\n";
	@icons = map { "images/table.gif" } @titles;
	@links = map { "edit_table.cgi?db=$in{'db'}&table=$_" } @titles;
	if ($config{'style'}) {
		foreach $t (@titles) {
			local $c = &execute_sql($in{'db'},
						"select count(*) from $t");
			push(@rows, $c->{'data'}->[0]->[0]);
			local @str = &table_structure($in{'db'}, $t);
			push(@fields, scalar(@str));
			}
		&split_table([ $text{'dbase_table'}, $text{'dbase_rows'},
			       $text{'dbase_cols'} ], \@links, \@titles,
			     \@rows, \@fields) if (@titles);
		}
	else {
		&icons_table(\@links, \@titles, \@icons, 5);
		}
	}
else {
	print "<b>$text{'dbase_none'}</b> <p>\n";
	}
print "<table width=100%> <tr>\n";
print "<form action=table_form.cgi>\n";
print "<input type=hidden name=db value='$in{'db'}'>\n";
print "<td width=25% nowrap><input type=submit value='$text{'dbase_add'}'>\n";
print $text{'dbase_fields'},"\n";
print "<select name=fields>\n";
foreach $f (4 .. 20) {
	print "<option>$f\n";
	}
print "</select></td>\n";
print "</form>\n";
if ($access{'delete'}) {
	print "<form action=drop_dbase.cgi>\n";
	print "<input type=hidden name=db value='$in{'db'}'>\n";
	print "<td align=middle width=25%><input type=submit ",
	      "value='$text{'dbase_drop'}'></td></form>\n";
	}
else {
	print "<td width=25%></td>\n";
	}

print "<form action=backup_form.cgi>\n";
print "<input type=hidden name=db value='$in{'db'}'>\n";
print "<td align=middle width=25%><input type=submit ",
      "value='$text{'dbase_backup'}'></td></form>\n";

print "<form action=exec_form.cgi>\n";
print "<input type=hidden name=db value='$in{'db'}'>\n";
print "<td align=right width=25%><input type=submit ",
      "value='$text{'dbase_exec'}'></td>\n";
print "</form>\n";
print "</tr> </table></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

  0707010000d1fd000081e40000000000000002000000013ac038a900001477000000200000000000000000000000000000001b00000003reloc/mysql/edit_field.cgi    #!/usr/local/bin/perl
# edit_field.cgi
# Display a form for editing an existing field or creating a new one

require './mysql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
if ($in{'type'}) {
	# Creating a new field
	&header($text{'field_title1'}, "", "create_field");
	$type = $in{'type'};
	}
else {
	# Editing an existing field
	&header($text{'field_title2'}, "", "edit_field");
	@desc = &table_structure($in{'db'}, $in{'table'});
	$f = $desc[$in{'idx'}];
	$type = $f->{'type'};
	}
print "<center><font size=+2>",&text('field_in', "<tt>$in{'table'}</tt>",
				     "<tt>$in{'db'}</tt>"),"</font></center>\n";
print "<hr>\n";

print "<form action=save_field.cgi>\n";
print "<input type=hidden name=db value='$in{'db'}'>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<input type=hidden name=new value='$in{'type'}'>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'field_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'field_name'}</b></td>\n";
print "<td><input name=field size=20 value='$f->{'field'}'></td> </tr>\n";
print "<input type=hidden name=old value='$f->{'field'}'>\n" if (!$in{'type'});

if ($type =~ /^(\S+)\((.*)\)(.*)/) {
	$type = $1;
	$size = $2;
	$extra = $3;
	}
print "<input type=hidden name=type value='$type'>\n";
print "<tr> <td><b>$text{'field_type'}</b></td>\n";
print "<td>$type</td> </tr>\n";

if ($type eq 'enum' || $type eq 'set') {
	# List of values
	print "<tr> <td valign=top><b>$text{'field_enum'}</b></td>\n";
	print "<td><textarea name=size rows=4 cols=20>",
		join("\n", map { /^'(.*)'$/; $1 } split(/,/, $size)),
		"</textarea></td> </tr>\n";
	}
elsif ($type eq 'float' || $type eq 'double' || $type eq 'decimal') {
	# Two values
	print "<tr> <td><b>$text{'field_dual'}</b></td>\n";
	printf "<td><input name=size1 size=5 value='%s'>\n",
		$size =~ /^(\d+)/ ? $1 : '';
	printf "<input name=size2 size=5 value='%s'></td> </tr>\n",
		$size =~ /(\d+)$/ ? $1 : '';
	}
elsif ($type eq 'date' || $type eq 'datetime' || $type eq 'time' ||
       $type =~ /(blob|text)$/) {
	# No width!
	}
else {
	# One single value
	print "<tr> <td><b>$text{'field_size'}</b></td>\n";
	print "<td><input name=size size=10 value='$size'></td> </tr>\n";
	}

if ($type =~ /int$/) {
	# Display unsigned/zerofill option
	print "<tr> <td><b>$text{'field_opts'}</b></td>\n";
	printf "<td><input name=opts type=radio value='' %s> %s\n",
		$extra =~ /unsigned/ ? '' : 'checked',
		$text{'field_none'};
	printf "<input name=opts type=radio value=unsigned %s> %s\n",
		$extra =~ /unsigned/ && $extra !~ /zerofill/ ? 'checked' : '',
		$text{'field_unsigned'};
	printf "<input name=opts type=radio value=zerofill %s> %s</td> </tr>\n",
		$extra =~ /zerofill/ ? 'checked' : '',
		$text{'field_zerofill'};
	if ($f->{'key'}) {
		print "<tr> <td><b>$text{'field_auto'}</b></td>\n";
		printf "<td><input name=ext type=radio value=%s %s> %s\n",
			'auto_increment',
			$f->{'extra'} =~ /auto_increment/ ? 'checked' : '',
			$text{'yes'};
		printf "<input name=ext type=radio value='' %s> %s</td></tr>\n",
			$f->{'extra'} =~ /auto_increment/ ? '' : 'checked',
			$text{'no'};
		}
	}
elsif ($type eq 'float' || $type eq 'double' || $type eq 'decimal') {
	# Display zerofill option
	print "<tr> <td><b>$text{'field_opts'}</b></td>\n";
	printf "<td><input name=opts type=radio value='' %s> %s\n",
		$extra =~ /unsigned/ ? '' : 'checked',
		$text{'field_none'};
	printf "<input name=opts type=radio value=zerofill %s> %s</td> </tr>\n",
		$extra =~ /zerofill/ ? 'checked' : '',
		$text{'field_zerofill'};
	}
elsif ($type eq 'char' || $type eq 'varchar') {
	# Display binary option
	print "<tr> <td><b>$text{'field_opts'}</b></td>\n";
	printf "<td><input name=opts type=radio value='' %s> %s\n",
		$extra =~ /binary/ ? '' : 'checked',
		$text{'field_ascii'};
	printf "<input name=opts type=radio value=binary %s> %s</td> </tr>\n",
		$extra =~ /binary/ ? 'checked' : '',
		$text{'field_binary'};
	}

print "<tr> <td><b>$text{'field_null'}</b></td>\n";
printf "<td><input name=null type=radio value=1 %s> $text{'yes'}\n",
	$in{'type'} || $f->{'null'} eq 'YES' ? 'checked' : '';
printf "<input name=null type=radio value=0 %s> $text{'no'}</td> </tr>\n",
	$in{'type'} || $f->{'null'} eq 'YES' ? '' : 'checked';

print "<tr> <td><b>$text{'field_default'}</b></td>\n";
printf "<td><input name=default size=20 value='%s'></td> </tr>\n",
	$f->{'default'} eq 'NULL' ? '' : $f->{'default'};

print "<tr> <td><b>$text{'field_key'}</b></td>\n";
printf "<td><input type=radio name=key value=1 %s> %s\n",
	$f->{'key'} eq 'PRI' ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=key value=0 %s> %s</td> </tr>\n",
	$f->{'key'} eq 'PRI' ? '' : 'checked', $text{'no'};
printf "<input type=hidden name=oldkey value='%d'>\n",
	$f->{'key'} eq 'PRI' ? 1 : 0;

print "</table></td></tr></table>\n";
if ($in{'type'}) {
	print "<input type=submit value='$text{'create'}'>\n";
	}
else {
	print "<input type=submit value='$text{'save'}'>&nbsp;\n";
	print "<input type=submit name=delete value='$text{'delete'}'>\n"
		if (@desc > 1);
	}
print "</form>\n";

print "<hr>\n";
&footer("edit_table.cgi?db=$in{'db'}&table=$in{'table'}",$text{'table_return'});

 0707010000d1fe000081e40000000000000002000000013ac038aa0000084c000000200000000000000000000000000000001a00000003reloc/mysql/edit_host.cgi #!/usr/local/bin/perl
# edit_host.cgi
# Edit or create a host table record

require './mysql-lib.pl';
&ReadParse();
$access{'perms'} || &error($text{'perms_ecannot'});

if ($in{'new'}) {
	&header($text{'host_title1'}, "");
	}
else {
	$d = &execute_sql($master_db, "select * from host");
	$u = $d->{'data'}->[$in{'idx'}];
	$access{'perms'} == 1 || &can_edit_db($u->[1]) ||
		&error($text{'perms_edb'});
	&header($text{'host_title2'}, "");
	}
print "<hr>\n";

print "<form action=save_host.cgi>\n";
if ($in{'new'}) {
	print "<input type=hidden name=new value=1>\n";
	}
else {
	print "<input type=hidden name=oldhost value='$u->[0]'>\n";
	print "<input type=hidden name=olddb value='$u->[1]'>\n";
	}
print "<table border>\n";
print "<tr $tb> <td><b>$text{'host_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'host_db'}</b></td> <td>\n";
printf "<input type=radio name=db_def value=1 %s> %s\n",
	$u->[1] eq '%' || $u->[1] eq '' ? 'checked' : '', $text{'host_any'};
printf "<input type=radio name=db_def value=0 %s>\n",
	$u->[1] eq '%' || $u->[1] eq '' ? '' : 'checked';
printf "<input name=db size=10 value='%s'></td> </tr>\n",
	$u->[1] eq '%' ? '' : $u->[1];

print "<tr> <td><b>$text{'host_host'}</b></td> <td>\n";
printf "<input type=radio name=host_def value=1 %s> %s\n",
	$u->[0] eq '%' || $u->[0] eq '' ? 'checked' : '', $text{'host_any'};
printf "<input type=radio name=host_def value=0 %s>\n",
	$u->[0] eq '%' || $u->[0] eq '' ? '' : 'checked';
printf "<input name=host size=20 value='%s'></td> </tr>\n",
	$u->[0] eq '%' ? '' : $u->[0];

print "<tr> <td valign=top><b>$text{'host_perms'}</b></td>\n";
print "<td><select name=perms multiple size=8>\n";
for($i=2; $i<=11; $i++) {
	printf "<option value=%d %s>%s\n",
		$i, $u->[$i] eq 'Y' ? 'selected' : '',
		$text{"host_priv$i"};
	}
print "</select></td> </tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value='$text{'save'}'>\n";
if (!$in{'new'}) {
	print "<input type=submit name=delete value='$text{'delete'}'>\n";
	}
print "</form>\n";

print "<hr>\n";
&footer('list_hosts.cgi', $text{'dbs_return'});

0707010000d1ff000081e40000000000000002000000013ac038a900000949000000200000000000000000000000000000001b00000003reloc/mysql/edit_table.cgi    #!/usr/local/bin/perl
# edit_table.cgi
# Display the structure of some table

require './mysql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
&header($text{'table_title'}, "", "edit_table");
print "<center><font size=+2>",&text('table_header', "<tt>$in{'table'}</tt>",
				     "<tt>$in{'db'}</tt>"),"</font></center>\n";
print "<hr>\n";

@desc = &table_structure($in{'db'}, $in{'table'});
print "<form action=edit_field.cgi>\n";
print "<input type=hidden name=db value='$in{'db'}'>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'table_field'}</b></td> ",
      "<td><b>$text{'table_type'}</b></td> ",
      "<td><b>$text{'table_null'}</b></td> ",
      "<td><b>$text{'table_key'}</b></td> ",
      "<td><b>$text{'table_default'}</b></td> ",
      "<td><b>$text{'table_extra'}</b></td> </tr>\n";
$i = 0;
foreach $r (@desc) {
	print "<tr $cb>\n";
	print "<td><a href='edit_field.cgi?db=$in{'db'}&table=$in{'table'}&",
	      "idx=$i'>$r->{'field'}</a></td>\n";
	print "<td>$r->{'type'}</td>\n";
	printf "<td>%s</td>\n",
		$r->{'null'} eq 'YES' ? $text{'yes'} : $text{'no'};
	printf "<td>%s</td>\n",
		$r->{'key'} eq 'PRI' ? $text{'table_pri'} :
		$r->{'key'} eq 'MUL' ? $text{'table_mul'} :
				       $text{'table_none'};
	print "<td>$r->{'default'}&nbsp;</td>\n";
	print "<td>$r->{'extra'}&nbsp;</td>\n";
	print "</tr>\n";
	$i++;
	}
print "</table>\n";
print "<table width=100%><tr>\n";

print "<td width=33% nowrap><input type=submit value='$text{'table_add'}'>\n";
print "<select name=type>\n";
foreach $t (@type_list) {
	print "<option>$t\n";
	}
print "</select></td></form>\n";

print "<form action=view_table.cgi>\n";
print "<input type=hidden name=db value='$in{'db'}'>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<td align=middle width=33%>\n";
print "<input type=submit value='$text{'table_data'}'></td>\n";
print "</form>\n";

print "<form action=drop_table.cgi>\n";
print "<input type=hidden name=db value='$in{'db'}'>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<td align=right width=33%>\n";
print "<input type=submit value='$text{'table_drop'}'></td>\n";
print "</form>\n";

print "</tr></table>\n";

print "<hr>\n";
&footer("edit_dbase.cgi?db=$in{'db'}", $text{'dbase_return'});

   0707010000d200000081e40000000000000002000000013ac038ae00000bc2000000200000000000000000000000000000001b00000003reloc/mysql/edit_tpriv.cgi    #!/usr/local/bin/perl
# edit_tpriv.cgi
# Display a form for editing or creating new table permissions

require './mysql-lib.pl';
&ReadParse();
$access{'perms'} || &error($text{'perms_ecannot'});
if ($in{'db'}) {
	&header($text{'tpriv_title1'}, "", "create_tpriv");
	}
else {
	$d = &execute_sql($master_db, "select * from tables_priv");
	$u = $d->{'data'}->[$in{'idx'}];
	$access{'perms'} == 1 || &can_edit_db($u->[1]) ||
		&error($text{'perms_edb'});
	&header($text{'tpriv_title2'}, "", "edit_tpriv");
	}
print "<hr>\n";

print "<form action=save_tpriv.cgi>\n";
if ($in{'db'}) {
	print "<input type=hidden name=db value='$in{'db'}'>\n";
	}
else {
	print "<input type=hidden name=oldhost value='$u->[0]'>\n";
	print "<input type=hidden name=olddb value='$u->[1]'>\n";
	print "<input type=hidden name=olduser value='$u->[2]'>\n";
	print "<input type=hidden name=oldtable value='$u->[3]'>\n";
	}
print "<table border>\n";
print "<tr $tb> <td><b>$text{'tpriv_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'tpriv_db'}</b></td>\n";
print "<td><tt>",$in{'db'} ? $in{'db'} : $u->[1],"</tt></td> </tr>\n";

print "<tr> <td><b>$text{'tpriv_table'}</b></td>\n";
print "<td><select name=table>\n";
print "<option selected>\n" if ($in{'db'});
foreach $t (&list_tables($in{'db'} ? $in{'db'} : $u->[1])) {
	printf "<option %s>%s\n",
		$u->[3] eq $t ? 'selected' : '', $t;
	}
print "</select></td> </tr>\n";

print "<tr> <td><b>$text{'tpriv_user'}</b></td> <td>\n";
printf "<input type=radio name=user_def value=1 %s> %s\n",
	$u->[2] ? '' : 'checked', $text{'tpriv_anon'};
printf "<input type=radio name=user_def value=0 %s>\n",
	$u->[2] ? 'checked' : '';
print "<input name=user size=10 value='$u->[2]'></td> </tr>\n";

print "<tr> <td><b>$text{'tpriv_host'}</b></td> <td>\n";
printf "<input type=radio name=host_def value=1 %s> %s\n",
	$u->[0] eq '%' || $u->[0] eq '' ? 'checked' : '', $text{'tpriv_any'};
printf "<input type=radio name=host_def value=0 %s>\n",
	$u->[0] eq '%' || $u->[0] eq '' ? '' : 'checked';
printf "<input name=host size=20 value='%s'></td> </tr>\n",
	$u->[0] eq '%' ? '' : $u->[0];

print "<tr> <td valign=top><b>$text{'tpriv_perms1'}</b></td>\n";
print "<td><select multiple size=4 name=perms1>\n";
foreach $p ('Select','Insert','Update','Delete','Create',
	    'Drop','Grant','References','Index','Alter') {
	printf "<option %s>%s\n",
		$u->[6] =~ /$p/i ? 'selected' : '', $p;
	}
print "</select></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'tpriv_perms2'}</b></td>\n";
print "<td><select multiple size=4 name=perms2>\n";
foreach $p ('Select','Insert','Update','References') {
	printf "<option %s>%s\n",
		$u->[7] =~ /$p/i ? 'selected' : '', $p;
	}
print "</select></td> </tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value='$text{'save'}'>\n";
if (!$in{'db'}) {
	print "<input type=submit name=delete value='$text{'delete'}'>\n";
	}
print "</form>\n";

print "<hr>\n";
&footer('list_tprivs.cgi', $text{'tprivs_return'});

  0707010000d201000081e40000000000000002000000013ac038aa000009c3000000200000000000000000000000000000001a00000003reloc/mysql/edit_user.cgi #!/usr/local/bin/perl
# edit_user.cgi
# Display a form for editing or creating a MySQL user

require './mysql-lib.pl';
&ReadParse();
$access{'perms'} == 1 || &error($text{'perms_ecannot'});

if ($in{'new'}) {
	&header($text{'user_title1'}, "", "create_user");
	}
else {
	&header($text{'user_title2'}, "", "edit_user");
	$d = &execute_sql($master_db, "select * from user");
	$u = $d->{'data'}->[$in{'idx'}];
	}
print "<hr>\n";

print "<form action=save_user.cgi>\n";
if ($in{'new'}) {
	print "<input type=hidden name=new value=1>\n";
	}
else {
	print "<input type=hidden name=olduser value='$u->[1]'>\n";
	print "<input type=hidden name=oldhost value='$u->[0]'>\n";
	}
print "<table border>\n";
print "<tr $tb> <td><b>$text{'user_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'user_user'}</b></td> <td>\n";
printf "<input type=radio name=user_def value=1 %s> %s\n",
	$u->[1] ? '' : 'checked', $text{'user_all'};
printf "<input type=radio name=user_def value=0 %s>\n",
	$u->[1] ? 'checked' : '';
print "<input name=user size=10 value='$u->[1]'></td> </tr>\n";

print "<tr> <td><b>$text{'user_pass'}</b></td> <td>\n";
printf "<input type=radio name=pass_mode value=2 %s> %s\n",
	!$in{'new'} && !$u->[2] ? 'checked' : '', $text{'user_none'};
if (!$in{'new'}) {
	printf "<input type=radio name=pass_mode value=1 %s> %s\n",
		$u->[2] ? 'checked' : '', $text{'user_leave'};
	}
printf "<input type=radio name=pass_mode value=0 %s> %s\n",
	$in{'new'} ? 'checked' : '', $text{'user_set'};
print "<input name=pass size=10></td> </tr>\n";

print "<tr> <td><b>$text{'user_host'}</b></td> <td>\n";
printf "<input type=radio name=host_def value=1 %s> %s\n",
	$u->[0] eq '%' || $u->[0] eq '' ? 'checked' : '', $text{'user_any'};
printf "<input type=radio name=host_def value=0 %s>\n",
	$u->[0] eq '%' || $u->[0] eq '' ? '' : 'checked';
printf "<input name=host size=20 value='%s'></td> </tr>\n",
	$u->[0] eq '%' ? '' : $u->[0];

print "<tr> <td valign=top><b>$text{'user_perms'}</b></td>\n";
print "<td><select name=perms multiple size=10>\n";
for($i=3; $i<=16; $i++) {
	printf "<option value=%d %s>%s\n",
		$i, $u->[$i] eq 'Y' ? 'selected' : '',
		$text{"user_priv$i"};
	}
print "</select></td> </tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value='$text{'save'}'>\n";
if (!$in{'new'}) {
	print "<input type=submit name=delete value='$text{'delete'}'>\n";
	}
print "</form>\n";

print "<hr>\n";
&footer('list_users.cgi', $text{'users_return'});

 0707010000d202000081e40000000000000002000000013ac038ae00000374000000200000000000000000000000000000001500000003reloc/mysql/exec.cgi  #!/usr/local/bin/perl
# exec.cgi
# Execute some SQL command and display output

require './mysql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
&error_setup($text{'exec_err'});
$d = &execute_sql_logged($in{'db'}, $in{'cmd'});

&header($text{'exec_title'}, "");
print "<hr>\n";
print "<p>",&text('exec_out', "<tt>$in{'cmd'}</tt>"),"<p>\n";
@data = @{$d->{'data'}};
if (@data) {
	print "<table border> <tr $tb>\n";
	foreach $t (@{$d->{'titles'}}) {
		print "<td><b>$t</b></td>\n";
		}
	print "</tr>\n";
	foreach $r (@data) {
		print "<tr $cb>\n";
		foreach $c (@$r) {
			print "<td>",$c ne '' ? $c : "<br>","</td>\n";
			}
		print "</tr>\n";
		}
	print "</table><p>\n";
	}
else {
	print "<b>$text{'exec_none'}</b> <p>\n";
	}
&webmin_log("exec", undef, $in{'db'}, \%in);

print "<hr>\n";
&footer("edit_dbase.cgi?db=$in{'db'}", $text{'dbase_return'});

0707010000d203000081a40000000000000002000000013ac038ae00000482000000200000000000000000000000000000001a00000003reloc/mysql/exec_file.cgi #!/usr/local/bin/perl
# exec_files.cgi
# Execute some SQL commands from a file and display the output

require './mysql-lib.pl';
&ReadParseMime();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
&error_setup($text{'exec_err'});

if ($in{'mode'}) {
	# From uploaded file
	$in{'upload'} || &error($text{'exec_eupload'});
	$file = &tempname();
	open(TEMP, ">$file");
	print TEMP $in{'upload'};
	close(TEMP);
	&header($text{'exec_title'}, "");
	print "<hr>\n";
	print "<p>$text{'exec_uploadout'}<p>\n";
	}
else {
	# From local file
	-r $in{'file'} || &error($text{'exec_efile'});
	$file = $in{'file'};
	&header($text{'exec_title'}, "");
	print "<hr>\n";
	print "<p>",&text('exec_fileout', "<tt>$in{'file'}</tt>"),"<p>\n";
	}

print "<pre>";
open(SQL, "$config{'mysql'} $authstr -t $in{'db'} <$file 2>&1 |");
while(<SQL>) {
	print;
	$got++ if (/\S/);
	}
close(SQL);
print "<i>$text{'exec_noout'}</i>\n" if (!$got);
print "</pre>\n";
&webmin_log("execfile", undef, $in{'db'}, { 'mode' => $in{'mode'},
					    'file' => $in{'file'} });
unlink($file) if ($in{'mode'});

print "<hr>\n";
&footer("edit_dbase.cgi?db=$in{'db'}", $text{'dbase_return'});

  0707010000d256000081e40000000000000002000000013ac038ae000004ea000000200000000000000000000000000000001a00000003reloc/mysql/exec_form.cgi #!/usr/local/bin/perl
# exec_form.cgi
# Display a form for executing SQL in some database

require './mysql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
&header($text{'exec_title'}, "", "exec_form");
print "<hr>\n";

print "<p>",&text('exec_header', "<tt>$in{'db'}</tt>"),"<p>\n";
print "<form action=exec.cgi method=post>\n";
print "<input type=hidden name=db value='$in{'db'}'>\n";
print "<textarea name=cmd rows=10 cols=70></textarea><br>\n";
print "<input type=submit value='$text{'exec_exec'}'></form>\n";

print "<hr>\n";
print "<p>",&text('exec_header2', "<tt>$in{'db'}</tt>"),"<p>\n";
print "<form action=exec_file.cgi method=post enctype=multipart/form-data>\n";
print "<input type=hidden name=db value='$in{'db'}'> <table>\n";
print "<tr> <td><input type=radio name=mode value=0 checked> ",
      "$text{'exec_file'}</td> <td><input name=file size=40> ",
      &file_chooser_button("file"),"</td> </tr>\n";
print "<tr> <td><input type=radio name=mode value=1> ",
      "$text{'exec_upload'}</td> ",
      "<td><input name=upload type=file></td> </tr>\n";
print "</table> <input type=submit value='$text{'exec_exec'}'></form>\n";

print "<hr>\n";
&footer("edit_dbase.cgi?db=$in{'db'}", $text{'dbase_return'});


  0707010004553f000041ed0000000000000001000000023ac03c2200000000000000200000000000000000000000000000001300000003reloc/mysql/images    07070100045540000081a40000000000000002000000013ac038a80000018f000000200000000000000000000000000000001e00000003reloc/mysql/images/cprivs.gif GIF89a0 0   槝榒d`槝   忍萡d``d`!Made with GIMP !    ,    0 0  很0蔍k8k鹿㤘(fBi
Ag擘;挑姓6囷u 鹄+4燅執;&R	56sT樀6=羡J8癕脯Vy蒗{-$拈7:麵兒鮇wcy{z~bQ?ZsS婱 "#"/-*1.>'、)*（>┈+扯さ巢东翻胶脊京懒城泞谁黄奶鸵缎从ㄎ妊儇幼皋赞综喷致￠獤旔-魺1欥煯召砻茘$P\罰幡,]縬y[+肆聏C岷喛2当寖vdGRX竬0'aP♂吘{滛 誱%皰蔔24鐹qE嶛掃褵(迴诔# ; 07070100045541000081a40000000000000002000000013ac038a8000001ce000000200000000000000000000000000000001a00000003reloc/mysql/images/db.gif GIF89a0 0   鴺槝`d`槝   忍!Made with GIMP !
  ,    0 0  䎬很0睝8k*凐`(巇)t聽瓹谰蕄{F轅糥吓郾<(]慓9煭∫籄r瓖v泀x*Π樹
k讗9gU翣徺Ｎrh)u|O噯QPUes)0kl4慓
_\沍偁湤梖儙c゜巓lGB7牔tE{x築墌6`J肕團w舲繜锻n攲汰儯讬踘萼徇s徉p嫡忮邈h霂罊`腠镱滹缤殒鲛鵫沓唌斃j傇菒萘m	-lWO溊`欒-dX傃蹸t6R揣ˇ偄>T鑟d@m YHO寮i:糳aツ:-*Qe蔉軂文Wi臓欘屻*螁B泗
TjVDO邂i)欩胵ViZQp]5.酃o雤+ō跓鱲藟颬U圞HX谈駛 ;  07070100045542000081a40000000000000002000000013ac038a8000001fb000000200000000000000000000000000000001b00000003reloc/mysql/images/dbs.gif    GIF89a0 0   鴺槝`d`槝   忍!Made with GIMP !   ,    0 0  䎬很0睝8k*凐郍宑h炶	C蹝痂=咿:萪M激檕0斞q-距QGm瑳帷擱"x

#违趎訂望秊虠核'giv僌MACQm9r乵o~k-5p扝X橺杸h#洔
s$&0d&▉s咼攺摂嫨糓@w纚x姈],uU2圠牟牫,p壏构峙杂Y=苡鋒妫$鐮腌惠栝眙硬缮纛缭錭/^筎 糤;凅TU娪笀裱SНP崦嫾%'園G採鸊蹭 鍗l)衏聵&Z g臋-)欴3鉑.启靼%AQY惄1(,C刣門;虜姅括Y政瑠*軁r
J]桶
"隞8缹鲋mw浑d筝M岵徒Br~,抧fvh+s!X吧H楳祸 ; 07070100045543000081a40000000000000002000000013ac038a800000042000000200000000000000000000000000000001e00000003reloc/mysql/images/delete.gif GIF87a
 
   鴛x     ,    
 
  俰 楡見迎zO峞坱36F ;  07070100045544000081a40000000000000002000000013ac038a80000003c000000200000000000000000000000000000001c00000003reloc/mysql/images/edit.gif   GIF87a
 
          ,    
 
  刼x刞IR`of汷Ⅷ ;07070100045545000081a40000000000000002000000013ac038a80000019c000000200000000000000000000000000000001d00000003reloc/mysql/images/hosts.gif  GIF89a0 0   烫   [[[烫!Made with GIMP !   ,    0 0  﨟很06@8K橝鴂灐X慹%B胷m睆跽7埭恹茽pAD.)(尹AR昍擼秤柷isu嵵書4撗i蕱鹡俞pW鐑 LndtQZ
3(寚R5( 憍yj妐 媂棙r.1cu燸櫅O怸Ο蔼篟吹禞綕4皕*聻繖C墒┢洭G↖匀抣避曰?膆z帳=喾丩粐h璀腹阵纛觌漰鮿0甡90暵將` N(訢嗅篎#X<虈P0E%卿r*HY"`噤聧*UV嵋B虥t8i撱餦4hM慠錓T⒋%=oT鐺┰rV+D玚$  ;07070100045546000081a40000000000000002000000013ac038a800000307000000200000000000000000000000000000001c00000003reloc/mysql/images/icon.gif   GIF89a0 0   鼢黟铑珑甾揶种窒挝破平浇洞喘ゥ湝敂攲寣亖伒lljjj::   螌!Made with GIMP !    ,    0 0    妷0瀐8MR+向;檛/C築b0L|娄怢尯 (:芇E2箩`0@墶犮乕C8t燻@p+B匑x])]		Kw*{朲@M
:w瓗"890k		颂#
du
"r	骄ギ画蟌n4癢`羶c080郳%p爮聛代K9嫴胃歎Q @@+椙&|ゐhP彆觟羴i偭罬軔c偠"SfA2V髵郒h圧%$-cH佀℉NZpVWX4瘊嶯+R"陙 0@衆W`
 `犚;,0 瘧 !婆敛$W錳J敞FM@`^W

t堾囿 V4<嘭b]z22
繻[7樍:韮8L続甊gb	8V▊4)冡囚z"账筭3<Aw-E禕dE蓕觪梙t馭颅7=9砏.繮`R<fP1	@^Ju-&O虏F造鮔91! 忨鐢冑覹0磸f芿$Ｓ9,xd5o蛒蝐蟲<2晆|髶dZ"9VF  ; 07070100045547000081a40000000000000002000000013ac038a800000943000000200000000000000000000000000000001d00000003reloc/mysql/images/mysql.gif  GIF89a0   沣   乔猺rrUUU帋999!Made with GIMP !    ,    0  菼8胪鞞!qE莭!)凟犖tm選|镧梡縈繞0竐覫:f塯儬RO┉"氰4︵p迌zo沞偿]x纎宎j"{F乻l|墠buTJmsS$~]楪F燾棡.r!!垚$攷=儜漈嘼枾GY綑婤壜C﹫F埖$撼5vνi忌#谯/#薸凄萱侍C语6穖	j羏(鳥鲛9P犩.甡+pg<L7G2r8GN1	&栛偹5N:I牥 0Z 鋵B' 庒4
屠摚O KM#(#-),7篿'* 瑼觍4碾Px8$韷偞Q 曢峟厭脋9駢2B鈄楬撩f% 蜠鈴郪@q3,c炨 d
秃^X靎, V玹R:灔霳:B
#%鹛-Fk$48鑴b歑卆伌U6K鹶K@PI:撯潜W7%#^“)A 铵對楉:7崮妽饢漟
> 裭 1@神'i@X!UCHL(z簮伜q`	鄧菡"嚤7T垽c[鼤鐸9`渗)遁鮀.碒G论R NP=伴xaH!}摍&謡翦8-i楽1吕&i菈(fv@2D賌B 鹕;	漆w丂7n &5芞#|&]釞C磾tㄩ	㈤R2瑰i"姭鄃R訾&￠b=鷓F銞>`#"}袸攊&缞e兀穃0炊t坙r{U酁*0覡|蠨V鋸裢8)姥嫂H逧7<:A巆仉╥<-鑝疷zD4S蚸bC櫰EZo]歬翶#捲閯顳俀
jyHC"[C3凲蝗侏砗%鸜dS9+$l捴G򒍚O [旉YY钐~'橥4妎9奦@_荪崢脜廠}$!CJ+痑:捁}%躘故岛A銄A 蘢﹎禷d;喼垞IDS窞浟政V紞%嵙X磙环%_(糑舘课（P衧匵郺<h穔倬h咼倯y*罐O
(酣d%c_*锩粊<39逕鴭z0刉伜鐉p摪:轌%o qH畣I$玕20R%鬖Ii穑Z&:袄汸\燱?醲腈椑猛;;
_`;业弆'(Dv奺詬zq笳鑔8B浔/虏羛rq﹖e`	=,灥甜椺m0燩鈘含垔
J$埜秊5O4扊闲!訄fc)¤h=藨!囸Zs镈?駹M& @ 唿8)衹戂6~佽"tc钙25@巻鬜霓燙
柾ave砎B0H璙k騗q悎R攝"g燖!`c餍嵼早棶!澤築?GW烖?*我x芈脅楲&H綈oɡ卛砯摍	O浈樶磑赉U攔掖g起o顮$2筛侀9韇s7鍢*!~H裃 CR -锺鏸櫝阺b扃勦槊j>c\#駌0駵T4 'u3軬L涾綯2})j7+揵X)n〤;/袇燖了軎挛瘝柸:[	H5\抋C%@<v{]蜖煖'梾駵P'A砖lF~瑘怐桯TY"G褽窖臭3
l]偅:0_孬i%7暊v糶C鞿g⒊6o姺$$|X鴤V謎噅釰偰~灨K
¤L轙(RZ覼<适j _	K楧灏倔$Y憉橊廚h萖呲;k牐n抰轏"膒o	76/刟*	堫D槍i 貪k哻)H瑻`a+呐>/[牠>SG 艑:<痓磵怛5p鄅|篐奤/j蜕弨C<錴&甙>"嫚"厞z丩a鈤>Opp:/ 	r\3繨t帿 '硶充郂2C銩臩褙y籊郤p!N.-f66/|q匞喁P豠A)腴卙:e誸瑋g齭?% 7	#僸滏膭噶敨@怋n.擈 淹)`蚃饥钑(Dd猧`蠈ツn,萯
? W:H^(m踄諿+.硟2N偘W央/( "@愖f珋卯狥(u?`w 婒陡荕顁'947M铆顅畸蒺*肩M飠埯轛9LZ軏飤 C饌G+E勿;苻>骥'N駣錖陡7务9, 谷搥歨忺(飛  ; 07070100045548000081a40000000000000002000000013ac038a80000016e000000200000000000000000000000000000001d00000003reloc/mysql/images/table.gif  GIF89a0 0   鴺槝`d`槝   忍!Made with GIMP !
  ,    0 0  䎬很0蔍8喭`(J 渉l霒 螩@叱嶋5 斮埮け堨徛fx0E鎶Y/阁輝4鶯5嵽餛[Pㄛ伝逓喵駕|s乽厊墕&0剢w垏妱儈彄悩z孶q煚&帡枓嫊洢Λ〝崸棏嚜櫏秞s±r碑长瓇笟乒菦莎徎蕚锰哑舰灹贤藫龠接佳洮倚握幽蹄0蒴楹罔铎岑驖齞庞P啖|╂针v瘶<棸 純	F8"駶瘆$忠笎(S狶憽ニ0c蕼I肠蜎.  ;  07070100045549000081a40000000000000002000000013ac038a8000001bf000000200000000000000000000000000000001e00000003reloc/mysql/images/tprivs.gif GIF89a0 0   鴺槝`d`槝   忍!Made with GIMP !   ,    0 0  䎬很0蔍=$缢W鴃爫Yh瀐B踛顩舤m郢0熨炖A鷪 +'	鸡RH}~小O$]$'V孆帞=&缮;綯>灎铮,厛剛噲媴實媭倞啈彉悙憉仌殫崠潣9厞灑埊幊湏!&#~!摜a$洘碌瑧立２玽湭П臒久%写9脊y'专Υ蛦湓嫔遘摘"Ι躞裥议鏍w摹%P叽z4+;O歌2◣^績嵙{xs陶?[霤演>C骾l莙嘏n72cL3睄`"$0VJt+bM踆朣執Y({T忆睳寅!%u恪Q;AK釩h应%$奘;b甝钰%牱  ; 0707010004554a000081a40000000000000002000000013ac038a800000125000000200000000000000000000000000000001d00000003reloc/mysql/images/users.gif  GIF89a0 0      fff烫!Made with GIMP !   ,    0 0  8很0蔍!缢#宂񒎲D*稰2I／涬粎	倢犴旵&{)G3獨i1V蘩?鉥Y/ㄊ$抛乫z莣鱕}x:{XY~]t唸塜)i宷#)倛+弻,槞哬湞Sf潪@爚v嚕枃w@}砃诞
稟筀JT<h_wq)飘=s廉俶a4薉/倳拓诤O逹忏噗;"蛾詴i烘~婴鱖	 ;   0707010000d257000081e40000000000000002000000013ac038a800000e93000000200000000000000000000000000000001600000003reloc/mysql/index.cgi #!/usr/local/bin/perl
# index.cgi
# Display all existing databases

require './mysql-lib.pl';
&header($text{'index_title'}, "", "intro", 1, 1);
print "<hr>\n";

# Check for MySQL programs
if (!-x $config{'mysqladmin'}) {
	print "<p>",&text('index_eadmin', "<tt>$config{'mysqladmin'}</tt>",
			  "/config.cgi?$module_name"),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}
if (!-x $config{'mysql'}) {
	print "<p>",&text('index_esql', "<tt>$config{'mysql'}</tt>",
			  "/config.cgi?$module_name"),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}
$out = `$config{'mysql'} -V 2>&1`;
if ($out !~ /distrib\s+3\./i) {
	print "<p>",&text('index_ever', "<tt>$config{'mysql'}</tt>",
			  "/config.cgi?$module_name"),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

$r = &is_mysql_running();
if ($r == 0) {
	# Not running .. need to start it
	print "<p> <b>$text{'index_notrun'}</b> <p>\n";

	if ($access{'stop'}) {
		print "<hr>\n";
		print "<form action=start.cgi>\n";
		print "<table width=100%><tr><td>\n";
		print "<input type=submit ",
		      "value=\"$text{'index_start'}\"></td>\n";
		print "<td>",&text('index_startmsg',
		      "<tt>$config{'start_cmd'}</tt>"),"</td> </tr></table>\n";
		print "</form>\n";
		}
	}
elsif ($r == -1 && $access{'user'}) {
	# Running, but the user's password is wrong
	print "<p> <b>",&text('index_nouser', "<tt>$access{'user'}</tt>"),
	      "</b><p>\n";
	}
elsif ($r == -1) {
	# Running, but webmin doesn't know the root password!
	print "<p> <b>$text{'index_nopass'}</b> <p>\n";
	print "<form action=login.cgi>\n";
	print "<center><table border>\n";
	print "<tr $tb> <td><b>$text{'index_ltitle'}</b></td> </tr>\n";
	print "<tr $cb> <td><table cellpadding=2>\n";
	print "<tr> <td><b>$text{'index_login'}</b></td>\n";
	printf "<td><input name=login size=20 value='%s'></td> </tr>\n",
		$config{'login'};
	print "<tr> <td><b>$text{'index_pass'}</b></td>\n";
	printf "<td><input name=pass size=20 type=password value='%s'></td>\n",
		$config{'pass'};
	print "</tr> </table></td></tr></table>\n";
	print "<input type=submit value='$text{'save'}'>\n";
	print "<input type=reset value='$text{'index_clear'}'>\n";
	print "</center></form>\n";
	}
else {
	# Running .. list databases
	print "<h3>$text{'index_dbs'}</h3>\n";
	@titles = grep { &can_edit_db($_) } &list_databases();
	@icons = map { "images/db.gif" } @titles;
	@links = map { "edit_dbase.cgi?db=$_" } @titles;
	if ($config{'style'}) {
		@tables = map { @t = &list_tables($_); scalar(@t) } @titles;
		&split_table([ $text{'index_db'}, $text{'index_tables'} ],
			     \@links, \@titles, \@tables) if (@titles);
		}
	else {
		&icons_table(\@links, \@titles, \@icons);
		}
	print "<a href=newdb_form.cgi>$text{'index_add'}</a> <p>\n"
		if ($access{'create'});

	if ($access{'perms'}) {
		print "<hr>\n";
		print "<h3>$text{'index_global'}</h3>\n";
		@links = ( 'list_users.cgi', 'list_dbs.cgi', 'list_hosts.cgi',
			   'list_tprivs.cgi', 'list_cprivs.cgi' );
		@titles = ( $text{'users_title'}, $text{'dbs_title'},
			    $text{'hosts_title'}, $text{'tprivs_title'},
			    $text{'cprivs_title'} );
		@images = ( 'images/users.gif', 'images/dbs.gif',
			    'images/hosts.gif', 'images/tprivs.gif',
			    'images/cprivs.gif' );
		if ($access{'perms'} == 2) {
			shift(@links); shift(@titles); shift(@images);
			}
		&icons_table(\@links, \@titles, \@images, 5);
		}

	if ($access{'stop'}) {
		print "<hr>\n";
		print "<form action=stop.cgi>\n";
		print "<table width=100%><tr><td>\n";
		print "<input type=submit ",
		      "value=\"$text{'index_stop'}\"></td>\n";
		print "<td>$text{'index_stopmsg'}</td> </tr></table>\n";
		print "</form>\n";
		}
	}

print "<hr>\n";
&footer("/", "index");

 07070100012f03000041ed0000000000000001000000023ac03c2200000000000000200000000000000000000000000000001100000003reloc/mysql/lang  07070100012f04000081a40000000000000002000000013ac038a800002afe000000200000000000000000000000000000001400000003reloc/mysql/lang/de   index_title=MySQL Datenbank Server
index_notrun=MySQL l&auml;ft nicht auf Ihrem System - die Liste der Datenbanken konnte nicht geholt werden.
index_start=Starte MySQL Server
index_startmsg=Klicken Sie auf diesen Button, um den MySQL Datenbank Server auf Ihrem System mit dem Kommando $1 zu starten. Diese Webmin Modul kann die Datenbank nicht adminstrieren, solange er nicht gestartet ist.
index_nopass=Webmin muss Ihren Administrations-Login und das dazugrh&ouml;rige Passwort kennen, um die Datenbanken zu verwalten. Bitte tragen Sie Ihren Adminstrations-Benutzernamen (normalerweise <TT>root</TT>) und das Passwort unten ein.
index_ltitle=MySQL Login
index_login=Login
index_pass=Passwort
index_clear=L&ouml;schen
index_stop=Stoppe MySQL Server
index_stopmsg=Klicken Sie diesen Button, um den MySQL Datenbank Server auf Ihrem System zu stoppen. Dies wird Benutzer den Zugriff auf die Datenbanken verwehren, einschlie遧ich dieses Webmin Moduls.
index_dbs=MySQL Datenbanken
index_add=Erstelle eine neue Datenbank
index_global=Globale Einstellungen
index_return=Datenbank Liste
index_eadmin=Das MySQL Administrationsprogramm $1 konnte auf Ihrem System nicht gefunden werden. Es k&ouml;nnte sein, dass MySQL nicht installiert ist (oder das mysql-client Paket) oder dass Ihre <a href='$2'>Modul Konfiguration</a> fehlerhaft ist.
index_esql=Das MySQL Client Programm $1 konnte nicht auf Ihrem System gefunden werden. Es k&ouml;nnte sein, dass MySQL nicht installiert ist (oder das mysql-client Paket) oder dass Ihre <a href='$2'>Modul Konfiguration</a> fehlerhaft ist.
index_ever=Das MySQL Client Programm $1 scheint nicht die korrekte Version zu sein. Diesen Webmin Modul unterst&uuml;tzt lediglich MySQL Version 3.

login_err=Login schlug fehl
login_ecannot=Sie haben keine Berechtigung, den Datenbank Login zu konfigurieren
login_elogin=Administrations Login fehlt
login_epass=Falscher Administrations Benutzername oder Passwort

stop_err=Datenbank konnte nicht gestoppt werden.
start_err=Datenbank konnte nicht gestartet werden.

dbase_title=Datenbank bearbeiten
dbase_tables=Datenbank Relationen
dbase_add=Erstelle eine neue Relation
dbase_drop=L&ouml;sche Datenbank
dbase_exec=SQL ausf&uuml;hren
dbase_none=Diese Datenbank hat keine Relationen.
dbase_fields=Felder:
dbase_return=Relationen-Liste
dbase_ecannot=Sie haben keine Berechtigung, diese Datenbank zu bearbeiten

ddrop_err=Fehler beim l&ouml;schen der Datenbank
ddrop_title=L鰏che Datenbank
ddrop_rusure=Sind sie sicher, dass sie die Datenbank $1 verfallen lassen wollen? $2 Relationen die $3 Tupel Daten enthalten werden gel&ouml;scht werden.
ddrop_mysql=Weil dies die Hauptdatenbank ist, wird das L&ouml;schen Ihre MySQL Installation unbrauchbar machen.
ddrop_ok=L&ouml;sche Datenbank

table_title=Relation Bearbeiten
table_title2=Relation erstellen
table_header=Relation $1 in Datenbank $2
table_field=Feld Name
table_type=Typ
table_null=Erlaube NULL?
table_key=Schl&uuml;ssel
table_default=Standardwert
table_extra=Extras
table_pri=Prim&auml;r
table_mul=Indiziert
table_none=Kein
table_add=F&uuml;ge Feld hinzu vom Typ:
table_return=Feld Liste
table_data=Zeigen Daten
table_drop=L&ouml;sche Relation
table_name=Relationsname
table_initial=Anfangsfelger
table_header2=Neue Relations-Einstellungen
table_err=Fehler beim Erstellen der Relation
table_ename=Fehlender oder ung&uuml;ltiger Relationsname
table_efield='$1' ist kein g&uuml;ltiger Feldname
table_etype=Fehlender Typ f&uuml;r Feld $1
table_esize=Fehlende Typen-Gr&ouml;sse f&uuml;r Feld $1
table_enone=Es wurden keine Anfangsfelder angegeben

tdrop_err=Fehler beim L&oum;sche der Relation
tdrop_title=L鰏che Relation
tdrop_rusure=Sind Sie sicher, dass Sie die Relation  $1 in Datenbank $2 l&ouml;schen wollen? $3 Tupel von Daten werden gel&ouml;scht werden
tdrop_ok=L&ouml;sche Relation

field_title1=Erstelle Feld
field_title2=Bearbeite Feld
field_in=In Relation $1 in Datenbank $2
field_header=Feld Parameter
field_name=Feld Name
field_type=Datentyp
field_size=Typenbreite
field_enum=Durchnumerierte Werte
field_dual=Breite und Dezimalzahlen
field_opts=Typen-Einstellungen
field_auto=Atomatisch erh&ouml;hen?
field_none=Keine
field_unsigned=Ohne Vorzeichen
field_zerofill=Auff&uuml;llen mit Nullen
field_ascii=Schreibweisen <I>un</I>abh&auml;ngig
field_binary=Schreibweisen abh&auml;ngig
field_null=Erlaube NULL?
field_default=Standard Wert
field_err=Fehler beim Speichern des Feldes
field_esize='$1' ist kein g&uuml;ltige Feldgr&ouml;sse
field_eenum=Es wurden keine nummerierten Werte angegeben
field_efield='$1' ist kein g&uuml;ltiger Feldname

view_title=Relationsdaten
view_pos=Zeilen $1 bis $2 von $3
view_none=Diese Relation enth&auml;lt keine Daten
view_edit=Bearbeite ausgew&auml;hlte
view_delete=L&ouml;sche ausgew&auml;hlte
view_save=Speichere &Auml;nderungen

users_title=Benutzer Rechte
users_user=Benutzer
users_host=Hosts
users_pass=Verschl&uuml;sseltes Passwort
users_perms=Rechte
users_add=Erstelle neuen Benutzer
users_priv3=Select (ausw&auml;hlen)
users_priv4=Insert (einf&uuml;gen)
users_priv5=Update (aktualisieren)
users_priv6=Delete (l&ouml;schen)
users_priv7=Create (erstellen)
users_priv8=Drop (komplett l&ouml;schen)
users_priv9=Reload (neu laden)
users_priv10=Shutdown (beenden)
users_priv11=Process (verarbeiten)
users_priv12=File (Datei)
users_priv13=Grant (gestatten)
users_priv14=References (Referenzen)
users_priv15=Index (indizieren)
users_priv16=Alter (&auml;ndern)
users_all=Alles
users_anon=Anonymous
users_none=Kein
users_return=Benutzer Liste

user_title1=Benutzer erstellen
user_title2=Benutzer bearbeiten
user_header=MySQL Benuter Details
user_user=Benutzername
user_all=Anonymous Benutzer
user_pass=Passwort
user_leave=Nicht &auml;ndern
user_none=Keines
user_any=Jegliches
user_set=Setze auf..
user_host=Hosts
user_perms=Rechte
user_priv3=Relationsdaten ausw&auml;hlen
user_priv4=Relationsdaten einf&uuml;gen
user_priv5=Relationsdaten aktualisieren
user_priv6=Relationsdaten l&ouml;schen
user_priv7=Relationen erstellen
user_priv8=Relationen l&ouml;schen
user_priv9=Rechte neu laden
user_priv10=Datenbank herunterfahren
user_priv11=Prozesse verwalten
user_priv12=Datei Operationen
user_priv13=Rechte verteilen
user_priv14=Referenz Operationen
user_priv15=Indizes verwalten
user_priv16=relationen ver&auml;ndern
user_err=Fehler beim Speichern des Benutzers
user_euser=Fehlender oder ung&uuml;ltiger Benutzername
user_ehost=Fehlende oder ung&uuml;ltige erlaubte Hosts

dbs_title=Datenbank Rechte
dbs_db=Datenbanken
dbs_user=Benutzer
dbs_host=Hosts
dbs_perms=Rechte
dbs_anon=Anonymous
dbs_any=Jegliche
dbs_empty=Keine Datenbank-Rechte definiert
dbs_hosts=Von Host Rechten
dbs_add=Erstelle neue Datenbank Rechte
dbs_priv3=Select (ausw&auml;hlen)
dbs_priv4=Insert (einf&uuml;gen)
dbs_priv5=Update (aktualisieren)
dbs_priv6=Delete (l&ouml;schen)
dbs_priv7=Create (erstellen)
dbs_priv8=Drop (komplett l&ouml;schen)
dbs_priv9=Grant (gestatten)
dbs_priv10=References (Referenzen)
dbs_priv11=Index (indizieren)
dbs_priv12=Alter (&auml;ndern)


dbs_all=Alle
dbs_none=Keine
dbs_return=Datenbank Rechte

db_title1=Datenbank-Rechte erstellen
db_title2=Datenbank-Rechte bearbeiten
db_header=Einstellungen zu Datenbank-Rechten
db_db=Datenbanken
db_user=Benutzername
db_anon=Anonymous Benutzer
db_host=Hosts
db_hosts=Von Host-Rechten
db_any=Jegliche
db_perms=rechte
db_priv3=Relationsdaten ausw&auml;hlen
db_priv4=Relationsdaten einf&uuml;gen
db_priv5=Relationsdaten aktualisieren
db_priv6=Relationsdaten l&ouml;schen
db_priv7=Relationen erstellen
db_priv8=Relationen l&ouml;schen
db_priv9=Rechte neu laden
db_priv10=Datenbank herunterfahren
db_priv11=Prozesse verwalten
db_priv12=Datei Operationen
db_priv13=Rechte verteilen
db_priv14=Referenz Operationen
db_priv15=Indizes verwalten
db_priv16=relationen ver&auml;ndern
db_err=Fehler beim Speichern der Datenbank Rechte
db_euser=Fehlender oder ung&uuml;ltiger Benutzername
db_ehost=Fehlender oder ung&uuml;ltiger Hostname
db_edb=Fehlender oder ung&uuml;ltiger Datenbankname

hosts_title=Host Rechte
hosts_db=Datenbanken
hosts_host=Hosts
hosts_perms=Rechte
hosts_any=Jegliche
hosts_all=Alle
hosts_none=Keine
hosts_add=Erstelle neue Host Rechte
hosts_empty=Keine Host Rechte definiert

host_title1=Host Rechte erstellen
host_title2=Host Rechte bearbeiten
host_header=Einstellungen zu Host Rechten
host_db=Datenbanken
host_any=Jegliche
host_host=Hosts
host_perms=Rechte

newdb_title=Datenbank erstellen
newdb_header=Einstellungen der neuen Datenbank
newdb_db=Datenbank Name
newdb_table=Anfangs-Relation
newdb_none=Keine
newdb_struct=Anfangsstruktur der Relation
newdb_err=Fehler beim Erstellen der Datenbank
newdb_edb=Fehlender oder ung&uuml;ltiger Datenbank Name
newdb_ecannot=Sie haben keine Berechtigung, Datenbanken anzulegen

exec_title=SQL ausf黨ren
exec_header=Geben Sie das SQL Kommando ein, dass ausgef&uuml;hrt werden soll auf Datenbank $1 ..
exec_exec=Ausf&uuml;hren
exec_err=Fehler beim Ausf&uuml;hren des SQL Kommandos
exec_out=Ausgabe des SQL Kommandos $1 ..
exec_none=Es wurden keine Daten zur&uuml;ckgegeben

tprivs_title=Relationsrechte
tprivs_table=Relation
tprivs_db=Datenbanken
tprivs_host=Hosts
tprivs_user=Benutzer
tprivs_privs1=Relationsrechte
tprivs_privs2=Feldrechte
tprivs_all=Alle
tprivs_anon=Anonymous
tprivs_add=F&uuml;ge neue Rechte ein in Datenbank:
tprivs_norows=Keine Relationsrechte definiert
tprivs_return=Relationsrechten
tprivs_none=Keine

tpriv_title1=Relationsrechte erstellen
tpriv_title2=Relationsrechte bearbeiten
tpriv_header=Einstellungen der Relationsrechte
tpriv_db=Datenbanken
tpriv_table=Relation
tpriv_user=Benutzername
tpriv_host=Hosts
tpriv_perms1=Relationsrechte
tpriv_perms2=Feldrechte
tpriv_any=Jegliche
tpriv_anon=Anonymous Benutzer
tpriv_err=Fehler beim Speichern der Relationsrechte
tpriv_etable=Keine Relation gew&auml;hlt
tpriv_euser=Fehlender oder ung&uuml;ltiger Benutzername
tpriv_ehost=Fehlender oder ung&uuml;ltiger Host

cprivs_title=Feldrechte
cprivs_field=Feld
cprivs_table=Relation
cprivs_db=Datenbanken
cprivs_host=Hosts
cprivs_user=Benutzer
cprivs_privs=Rechte
cprivs_all=Alle
cprivs_anon=Anonymous
cprivs_add=F&uuml;ge neue Rechte ein in Datenbanken und Relationen:
cprivs_norows=Keine Feldrechte definiert
cprivs_return=Feldrechten
cprivs_none=Keine

cpriv_title1=Feldrechte erstellen
cpriv_title2=Feldrechte bearbeiten
cpriv_header=Einstellungen der Feldrechte
cpriv_db=Datenbanken
cpriv_table=Relation
cpriv_field=Feld
cpriv_user=Benutzername
cpriv_host=Hosts
cpriv_perms=Rechte
cpriv_any=jegliche
cpriv_anon=Anonymous Benutzer
cpriv_err=Fehler beim Speichern der Feldrechte
cpriv_etable=Kein Feld gew&auml;hlt
cpriv_euser=Fehlender oder ung&uuml;ltiger Benutzername
cpriv_ehost=Fehlender oder ung&uml;ltiger Host

esql=SQL $1 schlug fehl: $2
perms_ecannot=Sie haben keine Berechtigung, Rechte zu bearbeiten

acl_dbs=Datenkbanken, die dieser Benutzer verwalten darf
acl_create=Darf neue Datenbanken anlegen?
acl_delete=darf Datenbanken l&ouml;schen?
acl_stop=Darf den MySQL Server starten und stoppen?
acl_perms=Darf Rechte bearbeiten?
  07070100012f05000081a40000000000000002000000013ac038a80000364a000000200000000000000000000000000000001400000003reloc/mysql/lang/en   index_title=MySQL Database Server
index_notrun=MySQL is not running on your system - database list could not be retrieved.
index_start=Start MySQL Server
index_startmsg=Click this button to start the MySQL database server on your system with the command $1. This Webmin module cannot administer the database until it is started.
index_nopass=Webmin needs to know your MySQL administration login and password in order to manage your database. Please enter your administration username (usually <tt>root</tt>) and password below.
index_ltitle=MySQL Login
index_login=Login
index_pass=Password
index_clear=Clear
index_stop=Stop MySQL Server
index_stopmsg=Click this button to stop the MySQL database server on your system. This will prevent any users or programs from accessing the database, including this Webmin module.
index_dbs=MySQL Databases
index_add=Create a new database
index_global=Global Options
index_return=database list
index_eadmin=The MySQL admin program $1 was not found on your system. Maybe MySQL is not installed, or your <a href='$2'>module configuration</a> is incorrect.
index_esql=The MySQL client program $1 was not found on your system. Maybe MySQL is not installed, or your <a href='$2'>module configuration</a> is incorrect.
index_ever=The MySQL client program $1 does not appear to be the correct version. Webmin only supports MySQL version 3.
index_nouser=Your Webmin account is configured to connect to the MySQL server as user $1, but this user has been denied access. 
index_db=Database name
index_tables=Tables

login_err=Login failed
login_ecannot=You are not allowed to configure the database login
login_elogin=Missing administration login
login_epass=Incorrect administration username or password

stop_err=Failed to stop database
start_err=Failed to start database

dbase_title=Edit Database
dbase_tables=Database Tables
dbase_add=Create a new table
dbase_drop=Drop Database
dbase_exec=Execute SQL
dbase_backup=Backup Database
dbase_none=This database has no tables.
dbase_fields=Fields:
dbase_return=table list
dbase_ecannot=You are not allowed to edit this database
dbase_table=Table name
dbase_rows=Rows
dbase_cols=Fields

ddrop_err=Failed to drop database
ddrop_title=Drop Database
ddrop_rusure=Are you sure you want to drop the database $1 ? $2 tables containing $3 rows of data will be deleted.
ddrop_mysql=Because this is the master database, dropping it will probably make your MySQL server unusable!
ddrop_ok=Drop database

table_title=Edit Table
table_title2=Create Table
table_header=Table $1 in database $2
table_field=Field name
table_type=Type
table_null=Allow nulls?
table_key=Key
table_default=Default value
table_extra=Extras
table_pri=Primary
table_mul=Indexed
table_none=None
table_add=Add field of type:
table_return=field list
table_data=View Data
table_drop=Drop Table
table_name=Table name
table_copy=Copy fields from table
table_copynone=&lt;None&gt;
table_copydata=Copy data as well
table_initial=Initial fields
table_header2=New table options
table_err=Failed to create table
table_ename=Missing or invalid table name
table_efield='$1' is not a valid field name
table_etype=Missing type for field $1
table_esize=Missing type size for field $1
table_enone=No initial fields entered

tdrop_err=Failed to drop table
tdrop_title=Drop Table
tdrop_rusure=Are you sure you want to drop the table $1 in database $2 ? $3 rows of data will be deleted.
tdrop_ok=Drop table

field_title1=Add Field
field_title2=Modify Field
field_in=In table $1 in database $2
field_header=Field parameters
field_name=Field name
field_type=Data type
field_size=Type width
field_enum=Enumerated values
field_dual=Width and decimals
field_opts=Type options
field_auto=Autoincrement?
field_none=None
field_unsigned=Unsigned
field_zerofill=Fill with zeros
field_ascii=Case insensitive
field_binary=Case sensitive
field_null=Allow nulls?
field_default=Default value
field_key=Part of primary key?
field_err=Failed to save field
field_esize='$1' is not a valid field size
field_eenum=No enumerated values entered
field_efield='$1' is not a valid field name
field_ekey=Fields that allow nulls cannot be part of the primary key

view_title=Table Data
view_pos=Rows $1 to $2 of $3
view_none=This table contains no data
view_edit=Edit selected rows
view_new=Add row
view_delete=Delete selected rows
view_nokey=Data in this table cannot be edited because it has no primary key.
view_all=Select all
view_invert=Invert selection
view_search=Search for rows where field $2 matches $1
view_searchok=Search
view_searchhead=Search results for $1 in field $2 ..
view_searchreset=Reset search
view_field=Field name
view_data=New data

users_title=User Permissions
users_user=User
users_host=Hosts
users_pass=Encrypted password
users_perms=Permissions
users_add=Create new user
users_priv3=Select
users_priv4=Insert
users_priv5=Update
users_priv6=Delete
users_priv7=Create
users_priv8=Drop
users_priv9=Reload
users_priv10=Shutdown
users_priv11=Process
users_priv12=File
users_priv13=Grant
users_priv14=References
users_priv15=Index
users_priv16=Alter
users_all=All
users_anon=Anonymous
users_none=None
users_return=user list

user_title1=Create User
user_title2=Edit User
user_header=MySQL user details
user_user=Username
user_all=Anonymous user
user_pass=Password
user_leave=Don't change
user_none=None
user_any=Any
user_set=Set to..
user_host=Hosts
user_perms=Permissions
user_priv3=Select table data
user_priv4=Insert table data
user_priv5=Update table data
user_priv6=Delete table data
user_priv7=Create tables
user_priv8=Drop tables
user_priv9=Reload grants
user_priv10=Shutdown database
user_priv11=Manage processes
user_priv12=File operations
user_priv13=Grant privileges
user_priv14=Reference operations
user_priv15=Manage indexes
user_priv16=Alter tables
user_err=Failed to save user
user_euser=Missing or invalid username
user_ehost=Missing or invalid allow host(s)

dbs_title=Database Permissions
dbs_db=Databases
dbs_user=User
dbs_host=Hosts
dbs_perms=Permissions
dbs_anon=Anonymous
dbs_any=Any
dbs_empty=No database permissions defined.
dbs_hosts=From host permissions
dbs_add=Create new database permissions
dbs_priv3=Select
dbs_priv4=Insert
dbs_priv5=Update
dbs_priv6=Delete
dbs_priv7=Create
dbs_priv8=Drop
dbs_priv9=Grant
dbs_priv10=References
dbs_priv11=Index
dbs_priv12=Alter
dbs_all=All
dbs_none=None
dbs_return=database permissions

db_title1=Create Database Permissions
db_title2=Edit Database Permissions
db_header=Database permission options
db_db=Databases
db_user=Username
db_anon=Anonymous user
db_host=Hosts
db_hosts=From host permissions
db_any=Any
db_perms=Permissions
db_priv3=Select table data
db_priv4=Insert table data
db_priv5=Update table data
db_priv6=Delete table data
db_priv7=Create tables
db_priv8=Drop tables
db_priv9=Grant privileges
db_priv10=Reference operations
db_priv11=Manage indexes
db_priv12=Alter tables
db_err=Failed to save database permissions
db_euser=Missing or invalid username
db_ehost=Missing or invalid hostname
db_edb=Missing or invalid database name

hosts_title=Host Permissions
hosts_db=Databases
hosts_host=Hosts
hosts_perms=Permissions
hosts_any=Any
hosts_all=All
hosts_priv2=Select
hosts_priv3=Insert
hosts_priv4=Update
hosts_priv5=Delete
hosts_priv6=Create
hosts_priv7=Drop
hosts_priv8=Grant
hosts_priv9=References
hosts_priv10=Index
hosts_priv11=Alter
hosts_none=None
hosts_add=Create new host permissions
hosts_empty=No host permissions defined

host_title1=Create Host Permissions
host_title2=Edit Host Permissions
host_header=Host permissions options
host_db=Databases
host_any=Any
host_priv2=Select table data
host_priv3=Insert table data
host_priv4=Update table data
host_priv5=Delete table data
host_priv6=Create tables
host_priv7=Drop tables
host_priv8=Grant privileges
host_priv9=Reference operations
host_priv10=Manage indexes
host_priv11=Alter tables
host_host=Hosts
host_perms=Permissions

newdb_title=Create Database
newdb_header=New database options
newdb_db=Database name
newdb_table=Initial table
newdb_none=None
newdb_struct=Initial table structure
newdb_err=Failed to create database
newdb_edb=Missing or invalid database name
newdb_ecannot=You are not allowed to create databases

exec_title=Execute SQL
exec_header=Enter SQL command to execute on database $1 ..
exec_exec=Execute
exec_header2=Select SQL commands file to execute on database $1 ..
exec_file=From local file
exec_upload=From uploaded file
exec_err=Failed to execute SQL
exec_out=Output from SQL command $1 ..
exec_none=No data returned
exec_eupload=No file selected to upload
exec_efile=Local file does not exist
exec_uploadout=Output from uploaded SQL commands ..
exec_fileout=Output from SQL commands in file $1 ..
exec_noout=No output generated

tprivs_title=Table Permissions
tprivs_table=Table
tprivs_db=Database
tprivs_host=Hosts
tprivs_user=User
tprivs_privs1=Table permissions
tprivs_privs2=Field permissions
tprivs_all=All
tprivs_anon=Anonymous
tprivs_add=Add new permissions in database :
tprivs_norows=No table permissions defined
tprivs_return=table permissions
tprivs_none=None

tpriv_title1=Create Table Permissions
tpriv_title2=Edit Table Permissions
tpriv_header=Table permission options
tpriv_db=Database
tpriv_table=Table
tpriv_user=Username
tpriv_host=Hosts
tpriv_perms1=Table permissions
tpriv_perms2=Field permissions
tpriv_any=Any
tpriv_anon=Anonymous user
tpriv_err=Failed to save table permissions
tpriv_etable=No table selected
tpriv_euser=Missing or invalid username
tpriv_ehost=Missing or invalid host

cprivs_title=Field Permissions
cprivs_field=Field
cprivs_table=Table
cprivs_db=Database
cprivs_host=Hosts
cprivs_user=User
cprivs_privs=Permissions
cprivs_all=All
cprivs_anon=Anonymous
cprivs_add=Add new permissions in database and table :
cprivs_norows=No field permissions defined
cprivs_return=field permissions
cprivs_none=None

cpriv_title1=Create Field Permissions
cpriv_title2=Edit Field Permissions
cpriv_header=Field permission options
cpriv_db=Database
cpriv_table=Table
cpriv_field=Field
cpriv_user=Username
cpriv_host=Hosts
cpriv_perms=Permissions
cpriv_any=Any
cpriv_anon=Anonymous user
cpriv_err=Failed to save field permissions
cpriv_etable=No field selected
cpriv_euser=Missing or invalid username
cpriv_ehost=Missing or invalid host

esql=SQL $1 failed : $2
perms_ecannot=You are not allowed to edit permissions
perms_edb=You are only allowed to edit permissions for your own databases

acl_dbs=Databases this user can manage
acl_dall=All databases
acl_dsel=Selected..
acl_create=Can create new databases?
acl_bpath=Backup file directory
acl_buser=Write backup as Unix user
acl_delete=Can drop databases?
acl_stop=Can stop and start the MySQL server?
acl_perms=Can edit permissions?
acl_only=Only for managed databases
acl_login=Login to MySQL as
acl_user_def=Username from Module Config
acl_user=Username
acl_pass=password

log_start=Started MySQL server
log_stop=Stopped MySQL server
log_db_create=Created database $1
log_db_delete=Dropped database $1
log_table_create=Created table $1 in database $2
log_table_delete=Dropped table $1 from database $2
log_field_create=Added field $1 $4 to $2 in database $3
log_field_modify=Modified field $1 $4 in $2 in database $3
log_field_delete=Deleted field $1 from $2 in database $3
log_data_create=Added row to table $2 in database $3
log_data_modify=Modified $1 rows in table $2 in database $3
log_data_delete=Deleted $1 rows from table $2 in database $3
log_exec=Executed SQL in database $1
log_exec_l=Executed SQL command $2 in database $1
log_user_create=Created perms for user $1, host $2
log_user_delete=Deleted perms for user $1, host $2
log_user_modify=Modified perms for user $1, host $2
log_perm_create=Created perms for database $3, user $1, host $2
log_perm_delete=Deleted perms for database $3, user $1, host $2
log_perm_modify=Modified perms for database $3, user $1, host $2
log_host_create=Created perms for host $2, database $3
log_host_delete=Deleted perms for host $2, database $3
log_host_modify=Modified perms for host $2, database $3
log_tpriv_create=Created perms for table $4, database $3
log_tpriv_delete=Deleted perms for table $4, database $3
log_tpriv_modify=Modified perms for table $4, database $3
log_tpriv_create_l=Created perms for table $4, database $3, user $1, host $2
log_tpriv_delete_l=Deleted perms for table $4, database $3, user $1, host $2
log_tpriv_modify_l=Modified perms for table $4, database $3, user $1, host $2
log_cpriv_create=Created perms for field $5, table $4
log_cpriv_delete=Deleted perms for field $5 table $4
log_cpriv_modify=Modified perms for field $5, table $4
log_cpriv_create_l=Created perms for field $5, table $4, database $3, user $1, host $2
log_cpriv_delete_l=Deleted perms for field $5 table $4, database $3, user $1, host $2
log_cpriv_modify_l=Modified perms for field $5, table $4, database $3, user $1, host $2
log_anon=anonymous
log_any=any
log_backup=Backed up database $1
log_backup_l=Backed up database $1 to file $2
log_execupload=Executed SQL commands from uploaded file
log_execfile=Executed SQL commands from file $1

backup_title=Backup Database
backup_edump=The MySQL backup program $1 was not found on your system. Maybe your <a href='$2'>module configuration</a> is incorrect.
backup_desc=This form allows you to backup the database $1 as a file of SQL statments. To restore a backup, you can use the Execute SQL form to run the commands in the file.
backup_header=Database backup options
backup_file=Backup to file
backup_where=Only backup rows matching <tt>where</tt> clause
backup_none=All rows
backup_drop=Add <tt>drop table</tt> statements to backup?
backup_ok=Backup Now
backup_err=Database backup failed
backup_efile=Missing or invalid backup filename
backup_epath=Invalid backup path
backup_ewhere=Missing <tt>where</tt> clause
backup_ebackup=<tt>mysqldump</tt> failed : $1
backup_done=Successfully backed up $3 bytes from database $1 to file $2.

  07070100012f06000081a40000000000000002000000013ac038a800003746000000200000000000000000000000000000001400000003reloc/mysql/lang/es   index_title=Servidor de Base de Datos MySQL
index_notrun=MySQL no se est ejecutando en tu sistema - no he podido recuperar la lista de base de datos.
index_start=Arrancar el Servidor de MySQL
index_startmsg=Haz click en este bot髇 para arrancar el servidor de Base de Datos MySQL de tu sistema mediante el comando $1. Este m骴ulo de Webmin no puede administrar la base de datos hasta que est arrancada.
index_nopass=Webmin necesita saber tu login de administraci髇 de MySQL y la clave de acceso con el fin de gestionar tu base de datos. Por favor, digita debajo tu nombre de usuario de administraci髇 (usualmente <tt>root</tt>) y la clave de acceso.
index_ltitle=Login en MySQL
index_login=Login
index_pass=Clave de Acceso
index_clear=Limpiar
index_stop=Parar Servidor de MySQL
index_stopmsg=Haz click en este bot髇 para parar el servidor de base de datos de MySQL de tu sistema. Esto har que cualquier usuario o programas no puedan acceder a la base de datos, incluyendo este m骴ulo de Webmin.
index_dbs=Bases de Datos de MySQL
index_add=Crear una nueva base de datos
index_global=Opciones Globales
index_return=lista de bases de datos
index_eadmin=El programa $1 de administraci髇 de MySQL no ha sido hallado en tu sistema. Quiz MySQL no est instalado o tu <a href='$2'>configuraci髇 del m骴ulo</a> es incorrecta.
index_esql=El programa cliente de MySQL $1 no ha sido hallado en tu sistema. Quiz MySQL no est instalado o tu <a href='$2'>configuraci髇 del m骴ulo</a> es incorrecta.
index_ever=El programa cliente de MySQL $1 no parece ser de la versi髇 correcta. Webmin s髄o soporta la versi髇 3 de MySQL.
index_nouser=Tu cuenta de Webmin est configurada para conectarse al servidor MySQL como el usuario $1, pero este usuario tiene denegado el acceso.

login_err=No pude hacer login
login_ecannot=No est醩 autorizado a configurar el login de la base de datos
login_elogin=login de administraci髇 sin poner
login_epass=Nombre de usuario y clave de acceso de administraci髇 incorrectos

stop_err=No pude parar la base de datos
start_err=No pude arrancar la base de datos

dbase_title=Editar Base de Datos
dbase_tables=Tablas de Base de Datos
dbase_add=Crear una nueva tabla
dbase_drop=Borrar Base de Datos
dbase_exec=Ejecutar SQL
dbase_none=Esta base de datos no tiene tablas.
dbase_fields=Campos:
dbase_return=lista de tablas
dbase_ecannot=No est醩 autorizado a editar esta base de datos

ddrop_err=No pude borrar la base de datos
ddrop_title=Borrar Base de Datos
ddrop_rusure=縀st醩 seguro de querer borrar la base de datos $1?: $2 tablas con $3 filas de datos ser醤 borradas.
ddrop_mysql=a que esta es la base de datos maestra, borrarla supondr que tu servidor MySQL quede inutilizable!
ddrop_ok=Base de datos borrada

table_title=Editar Tabla
table_title2=Crear Tabla
table_header=Tabla $1 de la base de datos $2
table_field=Nombre de campo
table_type=Tipo
table_null=縋ermitir nulos?
table_key=Clave
table_default=Valor por defecto
table_extra=Extras
table_pri=Primaria
table_mul=Indizada
table_none=Ninguna
table_add=A馻dir campo de tipo:
table_return=lista de campos
table_data=Ver Datos
table_drop=Borrar Tabla
table_name=Nombre de tabla
table_initial=Campos iniciales
table_header2=Opciones de nueva tabla
table_err=No pude crear tabla
table_ename=Nombre de tabla inv醠ido o sin poner
table_efield='$1' no es un nombre v醠ido de campo
table_etype=Sin poner tipo para campo $1
table_esize=Sin poner medida de tipo para campo $1
table_enone=No se han digitado campos iniciales

tdrop_err=No pude borrar tabla
tdrop_title=Borrar Tabla
tdrop_rusure=縀st醩 seguro de querer borrar la tabla $1 de la base de datos $2?: $3 filas de datos ser醤 borradas.
tdrop_ok=Tabla borrada

field_title1=A馻dir Campo
field_title2=Modificar Campo
field_in=En la tabla $1 de la base de datos $2
field_header=Par醡etros de campo
field_name=Nombre de campo
field_type=Tipo de dato
field_size=Ancho de tipo
field_enum=Valores enumerados
field_dual=Ancho y decimales
field_opts=Opciones de tipo
field_auto=緼utoincremento?
field_none=Ninguna
field_unsigned=Sin signo
field_zerofill=Relleno de ceros
field_ascii=Insensible a may鷖culas
field_binary=Sensible a may鷖culas
field_null=縋ermitir nulos?
field_default=Valor por defecto
field_key=縋arte de la clave primaria?
field_err=No pude salvar campo
field_esize='$1' no es una medida v醠ida de campo
field_eenum=No se han digitado valores enumerados
field_efield='$1' no es un nombre de campo v醠ido
field_ekey=Los campos que permiten nulos no pueden formar parte de la clave primaria

view_title=Datos de Tabla
view_pos=Filas $1 a $2 de $3
view_none=Esta tabla no contiene datos
view_edit=Editar filas seleccionadas
view_new=A馻dir fila
view_delete=Borrar filas seleccionadas
view_nokey=Los datos de esta tabla no puede ser editados a causa de que no tiene clave primaria.
view_all=Seleccionar todos
view_invert=Invertir selecci髇
view_search=Buscar filas en las que el campo $2 coincida con $1
view_searchok=Buscar
view_searchhead=Resultados de b鷖queda para $1 en campo $2...
view_searchreset=Reiniciar b鷖queda

users_title=Permisos de Usuario
users_user=Usuario
users_host=M醧uinas
users_pass=Clave de Acceso encriptada
users_perms=Permisos
users_add=Crear nuevo usuario
users_priv3=Seleccionar
users_priv4=Insertar
users_priv5=Actualizar
users_priv6=Borrar
users_priv7=Crear
users_priv8=Borrar
users_priv9=Recargar
users_priv10=Apagar
users_priv11=Proceso
users_priv12=Archivo
users_priv13=Conceder
users_priv14=Referencias
users_priv15=蚽dice
users_priv16=Alterar
users_all=Todos
users_anon=An髇imo
users_none=Ninguno
users_return=lista de usuarios

user_title1=Crear Usuario
user_title2=Editar Usuario
user_header=Detalles de usuario de MySQL
user_user=Nombre de Usuario
user_all=Usuario an髇imo
user_pass=Clave de Acceso
user_leave=No cambiar
user_none=Ninguno
user_any=Cualquiera
user_set=Poner a...
user_host=M醧uinas
user_perms=Permisos
user_priv3=Seleccionar datos de tabla
user_priv4=Insertar datos en tabla
user_priv5=Actualizar datos de tabla
user_priv6=Borrar datos de tabla
user_priv7=Crear tablas
user_priv8=Borrar tablas
user_priv9=Recargar concesiones
user_priv10=Apagar base de datos
user_priv11=Gestionar procesos
user_priv12=Operaciones en archivo
user_priv13=Conceder privilegios
user_priv14=Operaciones de Referencia
user_priv15=Gestionar 韓dices
user_priv16=Alterar tablas
user_err=No pude salvar usuario
user_euser=Nombre de usuario sin poner o inv醠ido
user_ehost=M醧uina(s) sin poner o inv醠ida(s)

dbs_title=Permisos de Base de Datos
dbs_db=Bases de Datos
dbs_user=Usuario
dbs_host=M醧uinas
dbs_perms=Permisos
dbs_anon=An髇imo
dbs_any=Cualquiera
dbs_empty=No se han definido permisos de base de datos.
dbs_hosts=Desde permisos de m醧uina
dbs_add=Crear nuevos permisos de base de datos
dbs_priv3=Seleccionar
dbs_priv4=Insertar
dbs_priv5=Actualizar
dbs_priv6=Borrar
dbs_priv7=Crear
dbs_priv8=Borrar
dbs_priv9=Conceder
dbs_priv10=Referencias
dbs_priv11=蚽dice
dbs_priv12=Alterar
dbs_all=Todos
dbs_none=Ninguno
dbs_return=permisos de base de datos

db_title1=Permisos para Crear Bases de Datos
db_title2=Permisos para Editar Bases de Datos
db_header=Opciones de permisos de base de datos
db_db=Bases de datos
db_user=Nombre de usuario
db_anon=Usuario an髇imo
db_host=M醧uinas
db_hosts=Desde permisos de m醧uina
db_any=Cualquiera
db_perms=Permisos
db_priv3=Seleccionar datos de tabla
db_priv4=Insertar datos en tabla
db_priv5=Actualizar datos de tabla
db_priv6=Borrar datos de tabla
db_priv7=Crear tablas
db_priv8=Borrar tablas
db_priv9=Recargar concesiones
db_priv10=Cerrar base de datos
db_priv11=Gestionar procesos
db_priv12=Operaciones en archivo
db_err=No pude salvar permisos de base de datos
db_euser=Nombre de usuario sin poner o inv醠ido
db_ehost=Nombre de m醧uina sin poner o inv醠ido
db_edb=Nombre de base de datos inv醠ido o sin poner

hosts_title=Permisos de M醧uina
hosts_db=Bases de Datos
hosts_host=M醧uinas
hosts_perms=Permisos
hosts_any=Cualquiera
hosts_all=Todos
hosts_priv2=Seleccionar
hosts_priv3=Insertar
hosts_priv4=Actualizar
hosts_priv5=Borrar
hosts_priv6=Crear
hosts_priv7=Quitar
hosts_priv8=Conceder
hosts_priv9=Referencias
hosts_priv10=蚽dices
hosts_priv11=Alterar
hosts_none=Ninguno
hosts_add=Permisos para crear m醧uina nueva
hosts_empty=No se han definido permisos de m醧uina

host_title1=Permisos para Crear M醧uina
host_title2=Permisos para Editar M醧uina
host_header=Opciones de permisos de m醧uina
host_db=Bases de datos
host_any=Cualquiera
host_priv2=Seleccionar datos de tabla
host_priv3=Insertar datos en tabla
host_priv4=Actualizar datos de tabla
host_priv5=Borrar datos de tabla
host_priv6=Crear tablas
host_priv7=Eliminar tablas
host_priv8=Conceder privilegios
host_priv9=Operaciones de referencia
host_priv10=Gestionar 韓dices
host_priv11=Alterar tablas
host_host=M醧uinas
host_perms=Permisos

newdb_title=Crear Base de Datos
newdb_header=Opciones de nueva base de datos
newdb_db=Nombre de base de datos
newdb_table=Tabla inicial
newdb_none=Ninguna
newdb_struct=Estructura de tabla inicial
newdb_err=No pude crear base de datos
newdb_edb=Nombre de base de datos inv醠ido o sin poner
newdb_ecannot=No est醩 autorizado a crear bases de datos

exec_title=Ejecutar SQL
exec_header=Digitar comando SQL a ejectura en la base de datos $1...
exec_exec=Ejecutar
exec_err=No pude ejecturar SQL
exec_out=Salida del comando SQL $1...
exec_none=No se ha devuelto dato alguno

tprivs_title=Permisos de Tabla
tprivs_table=Tabla
tprivs_db=Base de datos
tprivs_host=M醧uina
tprivs_user=Usuario
tprivs_privs1=Permisos de tabla
tprivs_privs2=Permisos de campo
tprivs_all=Todos
tprivs_anon=An髇imo
tprivs_add=A馻dir nuevos permisos en base de datos:
tprivs_norows=No se han definido permisos de tabla
tprivs_return=permisos de tabla
tprivs_none=Ninguno

tpriv_title1=Permisos para Crear Tabla
tpriv_title2=Permisos para Editar Tabla
tpriv_header=Opciones de permisos de tabla
tpriv_db=Base de datos
tpriv_table=Tabla
tpriv_user=Nombre de usuario
tpriv_host=M醧uinas
tpriv_perms1=Permisos de tabla
tpriv_perms2=Permisos de campo
tpriv_any=Cualquiera
tpriv_anon=Usuario an髇imo
tpriv_err=No pude salvar permisos de tabla
tpriv_etable=No se ha seleccionado tabla alguna
tpriv_euser=Nombre de usuario inv醠ido o sin poner
tpriv_ehost=M醧uina inv醠ida o sin poner

cprivs_title=Permisos de Campo
cprivs_field=Campo
cprivs_table=Tabla
cprivs_db=Base de datos
cprivs_host=M醧uinas
cprivs_user=Usuario
cprivs_privs=Permisos
cprivs_all=Todos
cprivs_anon=An髇imo
cprivs_add=A馻dir nuevos permisos en base de datos y tabla:
cprivs_norows=No se han definido permisos de campo
cprivs_return=permisos de campo
cprivs_none=Ninguno

cpriv_title1=Permisos para Crear Campo
cpriv_title2=Permisos para Editar Campo
cpriv_header=Opciones de permiso de campo
cpriv_db=Base de datos
cpriv_table=Tabla
cpriv_field=Campo
cpriv_user=Nombre de usuario
cpriv_host=M醧uinas
cpriv_perms=Permisos
cpriv_any=Cualquiera
cpriv_anon=Usuario an髇imo
cpriv_err=No pude salvar permisos de campo
cpriv_etable=No se ha seleccionado campo alguno
cpriv_euser=Nombre de usuario inv醠ido o sin poner
cpriv_ehost=M醧uina inv醠ida o sin poner

esql=SQL $1 fall: $2
perms_ecannot=No est醩 autorizado a editar permisos
perms_edb=S髄o est醩 autorizado a editar permisos de tus propias bases de datos

acl_dbs=Bases de datos que este usuario puede gestionar
acl_dall=Todas las bases de datos
acl_dsel=Las seleccionadas...
acl_create=縋uede crear nuevas bases de datos?
acl_delete=縋uede borrar bases de datos?
acl_stop=縋uede parar y arrancar el servidor MySQL?
acl_perms=縋uede editar permisos?
acl_only=S髄o para las bases de datos gestionadas
acl_login=Hacer login en MySQL como
acl_user_def=Nombre de usuario de la Configuraci髇 del M骴ulo
acl_user=nombre de usuario
acl_pass=clave de acceso

log_start=Arrancado servidor MySQL
log_stop=Parado servidor MySQL
log_db_create=Creada base de datos $1
log_db_delete=Elminada base de datos $1
log_table_create=Creada tabla $1 en base de datos $2
log_table_delete=Elmiminada tabla $1 de la base de datos $2
log_field_create=A馻dido campo $1 a $2 en la base de datos $3
log_field_modify=Modificado campo $1 $4 en $2 en la base de datos $3
log_field_delete=Borrado campo $1 de $2 en la base de datos $3
log_data_create=A馻dida fila a tabla $2 en la base de datos $3
log_data_modify=Modificada $1 filas en la tabla $2 en la base de datos $3
log_data_delete=Borrada $1 filas de la tabla $2 en la base de datos $3
log_exec=Ejecutado SQL en la base de datos $1
log_exec_l=Ejecutado comando SQL $2 en la base de datos $1
log_user_create=Creados permisos para usuario $1, m醧uina $2
log_user_delete=Borrados permisos para usuario $1, m醧uina $2
log_user_modify=Modificados permisos para usuario $1, m醧uina $2
log_perm_create=Creados permisos para base de datos $3, usuario $1, m醧uina $2
log_perm_delete=Borrados permisos para base de datos $3, usuario $1, m醧uina $2
log_perm_modify=Modifcados permisos para base de datos $3, usuario $1, m醧uina $2
log_host_create=Creados permisos para m醧uina $2, base de datos $3
log_host_delete=Borrados permisos para m醧uina $2, base de datos $3
log_host_modify=Modificados permisos para m醧uina $2, base de datos $3
log_tpriv_create=Creados permisos para tabla $4, base de datos $3
log_tpriv_delete=Borrados permisos para tabla $4, base de datos $3
log_tpriv_modify=Modificados permisos para tabla $4, base de datos $3
log_tpriv_create_l=Creados permisos para tabla $4, base de datos $3, usuario $1, m醧uina $2
log_tpriv_delete_l=Borrados permisos para tabla $4, base de datos $3, usuario $1, m醧uina $2
log_tpriv_modify_l=Modificados permisos para tabla $4, base de datos $3, usuario $1, m醧uina $2
log_cpriv_create=Creados permisos para campo $5, tabla $4
log_cpriv_delete=Borrados permisos para campo $5 tabla $4
log_cpriv_modify=Modificados permisos para campo $5, tabla $4
log_cpriv_create_l=Creados permisos para campo $5, tabla $4, base de datos $3, usuario $1, m醧uina $2
log_cpriv_delete_l=Borrados permisos para campo $5, tabla $4, base de datos $3, usuario $1, m醧uina $2
log_cpriv_modify_l=Modificados permisos para campo $5, tabla $4, base de datos $3, usuario $1, m醧uina $2
log_anon=an髇imo
log_any=cualquiera

  07070100012f07000081a40000000000000002000000013ac038a900002cc9000000200000000000000000000000000000001400000003reloc/mysql/lang/he   index_title=MySQL - Masad Netunim
index_notrun=MySQL 爨  犷蝤膪 - 爨 痖 禊戾 帔 轭 铖汩 漯痖
index_start=潸珈 帔  MySQL
index_startmsg=扃 豚 脬 熹殪 帔  MySQL 蝽 漪麇沅 溧 :  $1. 澉蜩 滏  Webmin 爨 殡屐 祢徨 蜚  玳 帔 澌.
index_nopass=囵 圉 煦蝥 帔 澌 邃耖耦 漤 帔 痣瘃 禊 囫.鏖.囔. 後鼯  膪遽   漕铢 漯殇屐 (徙-腱 <tt>root</tt>) 邂 帔 漶轳钹 漕轭.
index_ltitle=腽轳 霱ySQL
index_login=腽轳
index_pass=耖耦
index_clear=瘅
index_stop=蝣屮 帔  MySQL
index_stopmsg=扃 豚 脬 祢鲥 帔  囫.鏖.囔.  汜 驿 轭痱 铑铢轫 噻 犷琦 忾 祓痖, 邂 忾 祛邈屐 滏  webmin. 
index_dbs=铖汩 瘊屦轫  囫.鏖.囔
index_add=鲥 铖 瘊屦轫 玢
index_global=圄彘妃 忪遽扉妃
index_return=轭 铖汩-瘊屦轫
index_eadmin=The MySQL admin program $1 was not found on your system. Maybe MySQL is not installed, or your <a href='$2'>module configuration</a> is incorrect.
index_esql=The MySQL client program $1 was not found on your system. Maybe MySQL is not installed, or your <a href='$2'>module configuration</a> is incorrect.
index_ever=The MySQL client program $1 does not appear to be the correct version. Webmin only support MySQL version 3.
index_nouser=Your Webmin account is configured to connect to the MySQL server as user $1, but this user has been denied access. 

login_err=爨 漩扃 熹狲 禊 囫貅殄踵
login_ecannot=You are not allowed to configure the database login
login_elogin=Missing adminstration login
login_epass=Incorrect administration username or password

stop_err=Failed to stop database
start_err=Failed to start database

dbase_title=Me-Ha-Massad Ad-Ha-Tfahot
dbase_tables=栳爨妃
dbase_add=鲥 栳熹 玢
dbase_drop=铉 栳熹
dbase_exec=狯 赭邈妃 SQL
dbase_none=嚅 栳爨妃 犷胥-瘊屦轫 驿
dbase_fields=妃 忮煦狲:
dbase_return=轭 栳爨妃
dbase_ecannot=嚅 礻  骐妃!

ddrop_err=Failed to drop database
ddrop_title=Delete a Database!
ddrop_rusure=Are you sure you want to drop the database $1 ? $2 tables containing $3 rows of data will be deleted.
ddrop_mysql=铍殄 邃 栳熹/铖 瘊屦轫 铠腈,  铉轺 腈帔 徨邈嚅  帔  囫.鏖.囔  扃戾栝
ddrop_ok=铉 铖-瘊屦轫

table_title=Edit Table
table_title2=Create New Table
table_header=Table $1 in database $2
table_field= 澌沅
table_type=皴
table_null=圄 蝤腴 鏖 (null) ?
table_key=铘
table_default=蝤 潸珈
table_extra=Extras
table_pri=
table_mul=Indexed
table_none=祆
table_add=溴耋  铖邂
table_return=轭 妃
table_data=漩 栳熹
table_drop=铉 栳熹
table_name= 栳熹
table_initial=妃 潸珈轫
table_header2=圄彘妃  栳熹 玢
table_err=Failed to create table
table_ename=Missing or invalid table name
table_efield='$1' is not a valid field name
table_etype=Missing type for field $1
table_esize=Missing type size for field $1
table_enone=No initial fields entered

tdrop_err=Failed to drop table
tdrop_title=Delete Table!
tdrop_rusure=Are you sure you want to drop the table $1 in database $2 ? $3 rows of data will be deleted.
tdrop_ok=铉 栳熹

field_title1=Add Field
field_title2=Modify Field
field_in=徼犰  $1 犷胥 漯痖  $2
field_header=钹糸轲轫  泫
field_name= 澌沅
field_type=皴 瘊屣
field_size=噱 (狷邋轫)
field_enum=蝤腴 铖弭轫
field_dual=玑 屦麇沅 蝙痖
field_opts=圄彘妃 耵鲩糸妃 祚邂 瘊屣
field_auto=Autoincrement? 羼 噱桢铊 祢 澌沅 溽
field_none=祆
field_unsigned=祆 耖铒 殪/玳遽
field_zerofill= 徉赳轫
field_ascii=祆 溽沆 衢 噱妃 忏屐妃/麒疱 徉疴扉
field_binary=溽沆 衢 噱妃 忏屐妃/麒疱 徉疴扉
field_null=圄 蝤腴 鏖 ?
field_default=蝤 潸珈
field_key=珈 铑酊 ?
field_err=爨 漩扃 禊铄
field_esize='$1' is not a valid field size
field_eenum=No enumerated values entered
field_efield='$1' is not a valid field name
field_ekey=嚅 圄 熹铢 犷酊  狴沐 圄轫 蝤腴 鏖

view_title=Table Data
view_pos=Rows $1 to $2 of $3
view_none=嚅 翡 钿 禅噱
view_edit=蝤殡 澌沐 漕皴铕轫
view_new=溴耵 
view_delete=铉轺 澌屮 漯徵
view_nokey=囵 爨 殡屐 祢 豚 瘊屦轫, 腴 嚅 铘  扈犰

users_title=User Permissions
users_user=铢
users_host=-钹轫
users_pass=耖耦 铄鲷瘊
users_perms=澍妃
users_add=溴耵 铢 玢
users_priv3=Select
users_priv4=Insert
users_priv5=Update
users_priv6=Delete
users_priv7=Create
users_priv8=Drop
users_priv9=Reload
users_priv10=Shutdown
users_priv11=Process
users_priv12=File
users_priv13=Grant
users_priv14=References
users_priv15=Index
users_priv16=Alter
users_all=All
users_anon=Anonymous
users_none=None
users_return=user list

user_title1=Create User
user_title2=Edit User
user_header=MySQL user details
user_user=Username
user_all=Anonymous user
user_pass=Password
user_leave=Don't change
user_none=None
user_any=Any
user_set=Set to..
user_host=Hosts
user_perms=Permissions
user_priv3=Select table data
user_priv4=Insert table data
user_priv5=Update table data
user_priv6=Delete table data
user_priv7=Create tables
user_priv8=Drop tables
user_priv9=Reload grants
user_priv10=Shutdown database
user_priv11=Manage processes
user_priv12=File operations
user_priv13=Grant privileges
user_priv14=Reference operations
user_priv15=Manage indexes
user_priv16=Alter tables
user_err=Failed to save user
user_euser=Missing or invalid username
user_ehost=Missing or invalid allow host(s)

dbs_title=Database Permissions
dbs_db=铖汩 瘊屦轫
dbs_user=User
dbs_host=Hosts
dbs_perms=澍妃
dbs_anon=Anonymous
dbs_any=Any
dbs_empty=No database permissions defined.
dbs_hosts=From host permissions
dbs_add=Create new database permissions
dbs_priv3=Select
dbs_priv4=Insert
dbs_priv5=Update
dbs_priv6=Delete
dbs_priv7=Create
dbs_priv8=Drop
dbs_priv9=Grant
dbs_priv10=References
dbs_priv11=Index
dbs_priv12=Alter
dbs_all=All
dbs_none=None
dbs_return=database permissions

db_title1=Create Database Permissions
db_title2=Edit Database Permissions
db_header=Database permission options
db_db=Databases
db_user=Username
db_anon=Anonymous user
db_host=Hosts
db_hosts=From host permissions
db_any=Any
db_perms=澍妃
db_priv3=Select table data
db_priv4=Insert table data
db_priv5=Update table data
db_priv6=Delete table data
db_priv7=Create tables
db_priv8=Drop tables
db_priv9=Reload grants
db_priv10=Shutdown database
db_priv11=Manage processes
db_priv12=File operations
db_priv13=Grant privileges
db_priv14=Reference operations
db_priv15=Manage indexes
db_priv16=Alter tables
db_err=Failed to save database permissions
db_euser=Missing or invalid username
db_ehost=Missing or invalid hostname
db_edb=Missing or invalid database name

hosts_title=Host Permissions
hosts_db=Databases
hosts_host=Hosts
hosts_perms=澍妃
hosts_any=Any
hosts_all=All
hosts_none=None
hosts_add=Create new host permissions
hosts_empty=No host permissions defined

host_title1=Create Host Permissions
host_title2=Edit Host Permissions
host_header=Host permissions options
host_db=Databases
host_any=Any
host_host=Hosts
host_perms=Permissions

newdb_title=Create Database
newdb_header=New database options
newdb_db=Database name
newdb_table=Initial table
newdb_none=None
newdb_struct=Initial table structure
newdb_err=Failed to create database
newdb_edb=Missing or invalid database name
newdb_ecannot=You are not allowed to create databases

exec_title=Execute SQL
exec_header=Enter SQL command to execute on database $1 ..
exec_exec=Execute
exec_err=Failed to execute SQL
exec_out=Output from SQL command $1 ..
exec_none=No data returned

tprivs_title=Table Permissions
tprivs_table=Table
tprivs_db=Database
tprivs_host=Hosts
tprivs_user=User
tprivs_privs1=Table permissions
tprivs_privs2=Field permissions
tprivs_all=All
tprivs_anon=Anonymous
tprivs_add=Add new permissions in database :
tprivs_norows=No table permissions defined
tprivs_return=table permissions
tprivs_none=None

tpriv_title1=Create Table Permissions
tpriv_title2=Edit Table Permissions
tpriv_header=Table permission options
tpriv_db=Database
tpriv_table=Table
tpriv_user=Username
tpriv_host=Hosts
tpriv_perms1=Table permissions
tpriv_perms2=Field permissions
tpriv_any=Any
tpriv_anon=Anonymous user
tpriv_err=Failed to save table permissions
tpriv_etable=No table selected
tpriv_euser=Missing or invalid username
tpriv_ehost=Missing or invalid host

cprivs_title=Field Permissions
cprivs_field=Field
cprivs_table=Table
cprivs_db=Database
cprivs_host=Hosts
cprivs_user=User
cprivs_privs=Permissions
cprivs_all=All
cprivs_anon=Anonymous
cprivs_add=Add new permissions in database and table :
cprivs_norows=No field permissions defined
cprivs_return=field permissions
cprivs_none=None

cpriv_title1=Create Field Permissions
cpriv_title2=Edit Field Permissions
cpriv_header=Field permission options
cpriv_db=Database
cpriv_table=Table
cpriv_field=Field
cpriv_user=Username
cpriv_host=Hosts
cpriv_perms=Permissions
cpriv_any=Any
cpriv_anon=Anonymous user
cpriv_err=Failed to save field permissions
cpriv_etable=No field selected
cpriv_euser=Missing or invalid username
cpriv_ehost=Missing or invalid host

esql=SQL $1 failed : $2
perms_ecannot=You are not allowed to edit permissions
perms_edb=You are only allowed to edit permissions for your own databases

acl_dbs=Databases this user can manage
acl_create=Can create new databases?
acl_delete=Can drop databases?
acl_stop=Can stop and start the MySQL server?
acl_perms=Can edit permissions?
acl_only=Only for managed databases
acl_login=Login to MySQL as
acl_user_def=Username from Module Config
acl_user=Username
acl_pass=password

log_start=Started MySQL server
log_stop=Stopped MySQL server
log_db_create=Created database $1
log_db_delete=Dropped database $1
log_table_create=Created table $1 in database $2
log_table_delete=Dropped table $1 from database $2
log_field_create=Added field $1 $4 to $2 in database $3
log_field_modify=Modified field $1 $4 in $2 in database $3
log_field_delete=Deleted field $1 from $2 in database $3
log_data_create=Added row to table $2 in database $3
log_data_modify=Modified $1 rows in table $2 in database $3
log_data_delete=Deleted $1 rows from table $2 in database $3
log_exec=Executed SQL in database $1
log_exec_l=Executed SQL command $2 in database $1
log_user_create=Created perms for user $1, host $2
log_user_delete=Deleted perms for user $1, host $2
log_user_modify=Modified perms for user $1, host $2
log_perm_create=Created perms for database $3, user $1, host $2
log_perm_delete=Deleted perms for database $3, user $1, host $2
log_perm_modify=Modified perms for database $3, user $1, host $2
log_host_create=Created perms for host $2, database $3
log_host_delete=Deleted perms for host $2, database $3
log_host_modify=Modified perms for host $2, database $3
log_tpriv_create=Created perms for table $4, database $3
log_tpriv_delete=Deleted perms for table $4, database $3
log_tpriv_modify=Modified perms for table $4, database $3
log_tpriv_create_l=Created perms for table $4, database $3, user $1, host $2
log_tpriv_delete_l=Deleted perms for table $4, database $3, user $1, host $2
log_tpriv_modify_l=Modified perms for table $4, database $3, user $1, host $2
log_cpriv_create=Created perms for field $5, table $4
log_cpriv_delete=Deleted perms for field $5 table $4
log_cpriv_modify=Modified perms for field $5, table $4
log_cpriv_create_l=Created perms for field $5, table $4, database $3, user $1 host $2
log_cpriv_delete_l=Deleted perms for field $5 table $4, database $3, user $1 host $2
log_cpriv_modify_l=Modified perms for field $5, table $4, database $3, user $1 host $2

log_anon=anonymous
log_any=any

   07070100012f08000081a40000000000000002000000013ac038a9000038de000000200000000000000000000000000000001400000003reloc/mysql/lang/hu   ;translated by Gabor Keve <keve_g@takarek.net>
;homepage: www.kevegabi.org
index_title=MySQL Adatb醶is szerver
index_notrun=MySQL nem fut a rendszerben - az adatab醝s list醫 nem lehet lek閞ni.
index_start=MySQL Szerver ind韙醩a
index_startmsg=Kattintson erre a gombra hogy elind韙ja a MySQL adatb醶is szervert az 謓 rendszer閎en a $1 paranccsal. Ez a Webmin modul ne tudja adminisztr醠ni az adatab醶isokat am韌 az nincs elind韙va.
index_nopass=A Webmin-nek sz黭s間e van arra, hogy tudja a MySQL adminisztr醕i髎 bel閜 nevet 閟 jelsz髏 ahhoz, hogy tudja adminisztr醠ni az adatb醶ist. K閞em adja meg az adminisztr醫ori felhasz醠骾 nevet (醠tal醔an <tt>root</tt>) 閟 jelsz髏.
index_ltitle=MySQL bel閜閟
index_login=Felhaszn醠骾 n関
index_pass=Jelsz
index_clear=T鰎l閟
index_stop=MySQL Szerver le醠l韙醩a
index_stopmsg=Kattintson erre a gombra, hogyha szeretn le醠l韙ani a MySQL adatab醶is szervert az 謓 rendszer閎en. Ez megfogja szak韙ani hogy b醨ki vagy b醨melyik program hozz醘閞jen az adatab醶isokhoz, bele閞tve ezt a Webmin modult is.
index_dbs=MySQL Adatab醶isok
index_add=趈 adatb醶is l閠rehoz醩a
index_global=Glob醠is be醠l韙醩ok
index_return=adatab醶is lista
index_eadmin=A MySQL admin program $1 nem tal醠hat meg a rendszerben. Tal醤 a MySQL nem lett install醠va, vagy az 謓 <a href='$2'>modul konfigur醕i</a> be醠l韙醩a helytelen.
index_esql=A MySQL kliens program $1 nem tal醠hat meg a rendszerben. Tal醤 a MySQL nem lett install醠va, vagy az 謓 <a href='$2'>modul konfigur醕i</a> be醠l韙醩a helytelen.
index_ever=A MySQL kliens program $1 nem megfelel verzi髎z醡. A Webmin csak a MySQL 3. verzi髏 t醡ogatja.
index_nouser=Az 謓 Webmin bel閜鮦e 鷊y lett bekonfigur醠va, hogy a MySQL szerverhez csatlakozzon mint $1 felhszn醠, de ennek a felhaszn醠髇ak nincs enged閘yezve a hozz醘閞閟.

login_err=Bel閜閟 sikertelen
login_ecannot=謓nek nincs enged閘yezve az adatb醶is konfigur醠醩
login_elogin=Hib醩 adminisztr醫ori felhaszn醠骾 n関
login_epass=Hib醩 adminisztr醫ori felhaszn醠骾 n関 vagy jelsz

stop_err=Nem lehet le醠l韙ani az adatb醶ist
start_err=Nem lehet ind韙ani az adatb醶ist

dbase_title=Adatb醶is szerkeszt閟e
dbase_tables=Adatb醶is t醔l醝
dbase_add=趈 t醔la
dbase_drop=Adatb醶is eldob醩a
dbase_exec=SQL parancs futtat醩a
dbase_none=Ennek az adatb醶isnak nincsenek t醔l醝.
dbase_fields=Mez鮧:
dbase_return=T醔la lista
dbase_ecannot=謓nek nincs joga szerkeszteni ezt az adatb醶ist

ddrop_err=Nem siker黮t eldobni az adatb醶ist
ddrop_title=Adatb醶is eldob醩a
ddrop_rusure=Biztos benne, hogy el szeretn dobni a(z) $1 nev adatb醶ist? $2 t醔la tartlamaz $3 oszlop 鰏szes adata t鰎鰈ve lesz.
ddrop_mysql=Mivel ez a mester adatb醶is, ha eldobja akkor az 謓 MySQL szerver haszn醠hatattlan lesz!
ddrop_ok=Adatb醶is eldob醩a

table_title=T醔la szerk閟ztes
table_title2=T醔la l閠rehoz醩
table_header=$1 t醔la a $2 adatb醶isb髄
table_field=Mez neve
table_type=T韕us
table_null=Enged閘yezve legyen a nulla?
table_key=Kulcs
table_default=Alapeseti 閞t閗
table_extra=Extr醟
table_pri=Els鮠leges
table_mul=Indexelt
table_none=Egyikse
table_add=Adott t韕us mez hozz醓d醩:
table_return=Mez lista
table_data=Adatok megtekint閟e
table_drop=T醔la eldob醩a
table_name=T醔la neve
table_initial=Kezd mez鮧
table_header2=趈 t醔la opci髃
table_err=Nem siker黮t t醔l醫 k閟z韙eni
table_ename=Hib醩 vagy 閞v閚ytelen t醔lan関
table_efield='$1' 閞v閚ytelen mez鮪関
table_etype=蓃v閚ytelen t韕us mez $1
table_esize=蓃v閚ytelen t韕ushossz mez $1
table_enone=Nem lett kezd 閞t閗 megadva a mez鮪ek

tdrop_err=Nem siker黮t eldobni a t醔l醫
tdrop_title=T醔la eldob醩a
tdrop_rusure=Biztos 謓 abban, hogy el akarja dobni a(z) $1 t醔l醫 a(z) $2 adatb醶isb髄? $3 oszlop adatai t鰎l鮠ni fognak.
tdrop_ok=T醔la eldob醩a

field_title1=Mez hozz醓d醩a
field_title2=Mez m骴os韙醩a
field_in=$1 t醔l醔an a $2 adatb醶isban
field_header=Mez param閠erei
field_name=Mez neve
field_type=Adat t韕usa
field_size=T韕us hossza
field_enum=Enumer醠t 閞t閗ek
field_dual=Hossz 閟 decim醠is hossz
field_opts=T韕us opci骾
field_auto=Automatikus n鰒el閟?
field_none=Nincs
field_unsigned=Hozz醨endeletlen
field_zerofill=Null醰al felt鰈tve
field_ascii=Nem betrz閗eny
field_binary=Bet 閞z閗eny
field_null=Enged閘yezett a nulla?
field_default=羖tal醤os 閞t閗
field_key=R閟ze az els鮠leges kulcsnak?
field_err=Nem lehet elmenteni a mez鮰
field_esize='$1' nem val髎 mez鮤ossz
field_eenum=Nincs enumer醠t 閞t閗 megadva
field_efield='$1' nem val髎 mez鮪関
field_ekey=A mez(k) amelyek tartalmazhatnak null醫 nem lehetnek r閟zei az els鮠leges kulcsnak!

view_title=T醔la adatok
view_pos=Rows $1 to $2 of $3
view_none=Ez a t醔la nem tartalmaz adatokat
view_edit=Kv醠asztott sorok szerkeszt閟e
view_new=Sor hozz醓d醩
view_delete=Kiv醠asztott sorok t鰎l閟e
view_nokey=A t醔l醔an lev adatok nem szerkeszthet鮡k mert nincs els鮠leges kulcsa!
view_all=謘szes kiv醠aszt醩a
view_invert=Kiv醠aszt醩 invert醠醩a
view_search=Keres閟 a sorok k鰖鰐t, ahol a mez $2 megegyezik $1
view_searchok=Keres閟
view_searchhead=Keres閟 az eredm閚yekben $1 a $2 mez鮞en..
view_searchreset=Keres閟 null醶醩a

users_title=Felhaszn醠骾 jogok
users_user=Felhaszn醠
users_host=Gazdag閜ek
users_pass=Elk骴olt jelsz
users_perms=Jogosults醙ok
users_add=趈 felhaszn醠 l閠rehoz醩a
users_priv3=Kiv醠aszt
users_priv4=Besz鷕
users_priv5=Friss韙
users_priv6=T鰎鰈
users_priv7=L閠rehoz
users_priv8=Eldob
users_priv9=趈rat鰈t
users_priv10=Le醠l韙
users_priv11=Procesz
users_priv12=File
users_priv13=Jog
users_priv14=Referencia
users_priv15=Index
users_priv16=Alter
users_all=謘szes
users_anon=Anon韒
users_none=Egyikse
users_return=Felhaszn醠骾 lista

user_title1=Felhaszn醠 l閠rehoz醩a
user_title2=Felhaszn醠 szerkeszt閟e
user_header=MySQL felhaszn醠 adatai
user_user=Felhaszn醠骾 n関
user_all=Anon韒 felhaszn醠
user_pass=Jelsz
user_leave=Ne legyen v醠toztattva
user_none=Nincs
user_any=B醨honnan
user_set=Be醠l韙va..
user_host=Gazdag閜ek
user_perms=Jogosults醙
user_priv3=T醔la adat kiv醠aszt醩
user_priv4=T醔la adat besz鷕醩
user_priv5=T醔la adat friss韙閟
user_priv6=T醔la adat t鰎l閟
user_priv7=T醔la l閠rehoz醩
user_priv8=T醔la eldob醩a
user_priv9=Jogok 鷍rat鰈t閟e
user_priv10=Adatb醶is le醠l韙醩a
user_priv11=Proceszek managel閟e
user_priv12=File m鹶eletek
user_priv13=Jogok kioszt醩a
user_priv14=Referencia m鹶eletek
user_priv15=Indexek managel閟e
user_priv16=Alter tables
user_err=Nem lehet menteni a felhaszn醠髏
user_euser=Rossz vagy 閞v閚ytelen felhaszn醠骾 n関
user_ehost=Rossz vagy 閞v閚ytelen gazdag閜(ek) enged閘yez閟

dbs_title=Adatb醶is jogosults醙ok
dbs_db=Adatb醶isok
dbs_user=Felhaszn醠
dbs_host=Gazdag閜ek
dbs_perms=Jogosults醙ok
dbs_anon=Anon韒
dbs_any=B醨honnan
dbs_empty=Nincs adatb醶is jogosults醙 defini醠va.
dbs_hosts=Gazdag閜 jogosults醙b髄
dbs_add=趈 t醔la jogosults醙 l閠rehoz醩a
dbs_priv3=Kiv醠aszt醩
dbs_priv4=Besz鷕醩
dbs_priv5=Friss韙閟
dbs_priv6=T鰎l閟
dbs_priv7=L閠rehoz醩
dbs_priv8=Eldob醩
dbs_priv9=Jogok
dbs_priv10=Referencia
dbs_priv11=Index
dbs_priv12=Alter
dbs_all=謘szes
dbs_none=Egyikse
dbs_return=Adatb醶is jogosults醙

db_title1=Adatb醶is jogosults醙 l閠rehoz醩a
db_title2=Adatb醶is jogosults醙 szerkeszt閟e
db_header=adatb醶is jogosults醙 be醠l韙醩ai
db_db=adatb醶isok
db_user=Fehaszn醠骾 nevek
db_anon=Anon韒 felhaszn醠
db_host=Gazdag閜ek
db_hosts=Gazdag閜 jogosults醙b髄
db_any=B醨honnan
db_perms=Jogosults醙
db_priv3=T醔la adat kiv醠aszt醩
db_priv4=T醔la adat besz鷕醩
db_priv5=T醔la adat friss韙閟
db_priv6=T醔la adat t鰎l閟
db_priv7=T醔l醟 l閠rehoz醩a
db_priv8=T醔l醟 eldob醩a
db_priv9=Jogosults醙ok megad醩a
db_priv10=Referencia m鹶eletek
db_priv11=Indexek managel閟e
db_priv12=T醔la oszlopok m骴os韙醩a
db_err=Nem lehet menteni az adatb醶is jogosults醙okat
db_euser=Rossz vagy 閞v閚ytelen felhaszn醠骾 n関
db_ehost=Rossz vagy 閞v閚ytelen gazdag閜n関
db_edb=Rossz vagy 閞v閚ytelen adatb醶is n関

hosts_title=Gazdag閜 jogosults醙
hosts_db=Adatb醶isok
hosts_host=Gazdag閜ek
hosts_perms=Jogosults醙ok
hosts_any=B醨honnan
hosts_all=謘szes
hosts_priv2=Kiv醠aszt醩
hosts_priv3=Besz鷕醩
hosts_priv4=Fris韙閟
hosts_priv5=T鰎l閟
hosts_priv6=L閠rehoz醩
hosts_priv7=Eldob醩
hosts_priv8=Jog
hosts_priv9=Referencia
hosts_priv10=Index
hosts_priv11=Alter
hosts_none=Nincs
hosts_add=趈 gazdag閜 l閠rehoz醩a
hosts_empty=Nincs gazdag閜 jogosults醙 defini醠va

host_title1=Gazdag閜 jogosults醙 l閠rehoz醩a
host_title2=Gazdag閜 jogosults醙 szerkeszt閟e
host_header=Gazdag閜 jogosults醙 be醠l韙醩ai
host_db=Adatb醶isok
host_any=B醨honnan
host_priv2=T醔la adat kiv醠aszts
host_priv3=T醔la adat besz鷕醩
host_priv4=T醔la adat friss韙閟
host_priv5=T醔la adat t鰎l閟
host_priv6=T醔la l閠rehoz醩
host_priv7=T醔la eldob醩
host_priv8=Jogosults醙 kioszt醩
host_priv9=Referencia m鹶eletek
host_priv10=Indexek managel閟e
host_priv11=T醔la oszlopk m骴os韙醩a
host_host=Gazdag閜ek
host_perms=Jogosults醙ok

newdb_title=趈 adatb醶is l閠rehoz醩a
newdb_header=趈 adatb醶is be醠l韙醩ai
newdb_db=Adatb醶is neve
newdb_table=Kezd t醔la
newdb_none=Nincs
newdb_struct=Kezd t醔la strukt鷕醞a
newdb_err=Nem lehet l閠rehozzni a t醔l醫
newdb_edb=Rossz vagy 閞v閚ytelen adatb醶is n関
newdb_ecannot=謓nek nincs jogosults醙a adatb醶ist l閠rehozzni

exec_title=SQL parancs futtat醩a
exec_header=Adja meg az SQL parancsot melyet a $1 adatb醶ison futtatni akar..
exec_exec=Futtat醩
exec_err=Nem lehet futtatni az SQL parancsot
exec_out=A(z) $1 SQL parancs eredm閚ye ..
exec_none=Nem 閞kezett vissza adat

tprivs_title=T醔la jogosults醙
tprivs_table=T醔la
tprivs_db=Adatb醶is
tprivs_host=Gazdag閜
tprivs_user=Felhaszn醠
tprivs_privs1=T醔la jogosults醙
tprivs_privs2=Mez jogosults醙
tprivs_all=謘szes
tprivs_anon=Anon韒
tprivs_add=趈 jogosults醙 hozz醓d醩a az adatb醶ishoz :
tprivs_norows=Nincs t醔la jogosults醙 defini醠va
tprivs_return=t醔la jogosults醙
tprivs_none=Nincs

tpriv_title1=T醔la jogosults醙 l閠rehoz醩a
tpriv_title2=T醔la jogosults醙 szerkeszt閟e
tpriv_header=T醔la jogosults醙 be醠l韙醩ai
tpriv_db=Adatb醶is
tpriv_table=T醔la
tpriv_user=Felhaszn醠骾 n関
tpriv_host=Gazdag閜ek
tpriv_perms1=T醔la jogosults醙
tpriv_perms2=Mez jogosults醙
tpriv_any=B醨honnan
tpriv_anon=Anon韒 felhaszn醠
tpriv_err=Nem lehet menteni a t醔la jogosults醙ot
tpriv_etable=Nincs t醔la kiv醠asztva
tpriv_euser=Rossz vagy 閞v閚ytelen felhaszn醠骾 n関
tpriv_ehost=Rossz vagy 閞v閚ytelen gazdag閜

cprivs_title=Mez jogosults醙ok
cprivs_field=Mez
cprivs_table=T醔la
cprivs_db=adatb醶is
cprivs_host=Gazdag閜ek
cprivs_user=Felhaszn醠
cprivs_privs=Jogosults醙ok
cprivs_all=謘szes
cprivs_anon=Anon韒
cprivs_add=趈 jogosults醙 hozz醓d醩a az adatb醶isban lev t醔l醜oz :
cprivs_norows=Nincs mez jogosults醙 defini醠va
cprivs_return=mez jogosults醙
cprivs_none=Nincs

cpriv_title1=Mez jogosults醙 l閠rehoz醩a
cpriv_title2=Mez jogosults醙 szerkeszt閟e
cpriv_header=Mez jogosults醙 be醠l韙醩ai
cpriv_db=Adatb醶is
cpriv_table=T醔la
cpriv_field=Mez
cpriv_user=Felhaszn醠骾 n関
cpriv_host=Gazdag閜ek
cpriv_perms=Jogosults醙ok
cpriv_any=B醨honnan
cpriv_anon=Anon韒 felhaszn醠
cpriv_err=Nem lehet elmenteni a mez jogosults醙okat
cpriv_etable=Nincs mez kijel鰈ve
cpriv_euser=Rossz vagy 閞v閚ytelen felhaszn醠骾 n関
cpriv_ehost=Rossz vagy 殚rv閚ytelen gazdag閜

esql=SQL parancs $1 hib醩 : $2
perms_ecannot=謓nek nincs enged閘yezve hogy szerkessze a jogosults醙okat
perms_edb=謓nek csak a saj醫 adatb醶is醤ak a jogait van joga szerkszeszteni

acl_dbs=Az adatb醶isokat ez a felhaszn醠 tudja managelni
acl_dall=謘szes adatb醶ist
acl_dsel=Kiv醠asztott..
acl_create=Tud l閠rehozzni 鷍 adatb醶ist?
acl_delete=Tud eldobni adatb醶ist?
acl_stop=Tudja ind韙ani 閟 le醠l韙ani a MySQL szervert?
acl_perms=Tudja szerkeszteni a jogosults醙okat?
acl_only=Csak a managelt adatb醶isokat
acl_login=Bejelentkezve az MySQL-be mint
acl_user_def=Felhaszn醠骾 n関 a Modul konfigur醕i骽oz
acl_user=felhaszn醠骾 n関
acl_pass=jelsz

log_start=MySQL szerver ind韙va
log_stop=MySQL szerver le醠l韙va
log_db_create=$1 adatb醶is l閠rehozva
log_db_delete=$1 adatb醶is eldobva
log_table_create=$1 t醔la l閠rehozva a(z) $2 adatb醶siban
log_table_delete=$1 t醔la eldobva a(z) $2 adatb醶isb髄
log_field_create=Hozz醓dva $1 $4 mez a(z) $2 a(z) $3 adatb醶ishoz
log_field_modify=M骴os韙va $1 $4 mez a(z) $2 a(z) $3 adatb醶ishoz
log_field_delete=T鰎鰈vea $1 $4 mez a(z) $2 a(z) $3 adatb醶isb髄
log_data_create=Sor hozz醓dva a(z) $2 t醔l醜oz a(z) $3 adatb醶isba
log_data_modify=$1 sorok m骴os韙va a(z) $2 t醔l醔an a(z) $3 adatb醶isban
log_data_delete=$1 sorok t鰎鰈ve a(z) $2 t醔l醔髄 a(z) $3 adatb醶is髄
log_exec=SQL futtatva a(z) $1 adatb醶ison
log_exec_l=A $2 SQL parancs lefuttatva a $1 adatb醶ison
log_user_create=Hozz醘閞閟 l閠rehoz醩ra a(z) 1 felhaszn醠髇ak, a(z) $2 gazdag閜re
log_user_delete=Hozz醘閞閟 t鰎l閟re a(z) 1 felhaszn醠髇ak, a(z) $2 gazdag閜re
log_user_modify=Hozz醘閞閟 m骴os韙醩ra a(z) 1 felhaszn醠髇ak, a(z) $2 gazdag閜re
log_perm_create=Hozz醘閞閟 l閠rehoz醩ra a(z) $3 adatb醶ishoz, a(z) $1 felhaszn醠髇ak, a(z) $2 gazdag閜r鮨
log_perm_delete=Hozz醘閞閟 t鰎l閟re a(z) $3 adatb醶ishoz, a(z) $1 felhaszn醠髇ak, a(z) $2 gazdag閜r鮨
log_perm_modify=Hozz醘閞閟 m骴os韙醩ra a(z) $3 adatb醶ishoz, a(z) $1 felhaszn醠髇ak, a(z) $2 gazdag閜r鮨
log_host_create=Hozz醘閞閟 l閠rehoz醩ra a(z) $2 gazdag閜nek a(z) $3 adatb醶ishoz
log_host_delete=Hozz醘閞閟 t鰎l閟re a(z) $2 gazdag閜nek a(z) $3 adatb醶ishoz
log_host_modify=Hozz醘閞閟 m骴os韙醩ra a(z) $2 gazdag閜nek a(z) $3 adatb醶ishoz
log_tpriv_create=Hozz醘閞閟 l閠rehoz醩ra a(z) $4 t醔l醜oz, a(z) $3 adatb醶isb髄
log_tpriv_delete=Hozz醘閞閟 t鰎l閟re a(z) $4 t醔l醜oz, a(z) $3 adatb醶isb髄
log_tpriv_modify=Hozz醘閞閟 m骴os韙醩ra a(z) $4 t醔l醜oz, a(z) $3 adatb醶isb髄
log_tpriv_create_l=Hozz醘閞閟 l閠rehoz醩ra a(z) $4 t醔l醜oz,a(z) $3 adatb醶isb髄,a(z) $1 felhazsn醠, a(z) $2 gazdag閜r鮨
log_tpriv_delete_l=Hozz醘閞閟 t鰎l閟re a(z) $4 t醔l醜oz,a(z) $3 adatb醶isb髄,a(z) $1 felhazsn醠, a(z) $2 gazdag閜r鮨
log_tpriv_modify_l=Hozz醘閞閟 m骴os韙醩ra a(z) $4 t醔l醜oz,a(z) $3 adatb醶isb髄,a(z) $1 felhazsn醠, a(z) $2 gazdag閜r鮨
log_cpriv_create=Hozz醘閞閟 l閠rehoz醩ra a(z) $5 mez鮤鰖, a(z) $4 t醔l醔髄
log_cpriv_delete=Hozz醘閞閟 t鰎l閟re a(z) $5 mez鮤鰖, a(z) $4 t醔l醔髄
log_cpriv_modify=Hozz醘閞閟 m骴os韙醩ra a(z) $5 mez鮤鰖, a(z) $4 t醔l醔髄
log_cpriv_create_l=Hozz醘閞閟 l閠rehoz醩ra a(z) $5 mez鮤鰖, a(z) $4 t醔l醔an, a(z) $3 adatb醶isban, a(z) $1 felhaszn醠 a(z) $2 gazdag閜r鮨
log_cpriv_delete_l=Hozz醘閞閟 t鰎l閟re a(z) $5 mez鮤鰖, a(z) $4 t醔l醔an, a(z) $3 adatb醶isban, a(z) $1 felhaszn醠 a(z) $2 gazdag閜r鮨
log_cpriv_modify_l=Hozz醘閞閟 m骴os韙醩ra a(z) $5 mez鮤鰖, a(z) $4 t醔l醔an, a(z) $3 adatb醶isban, a(z) $1 felhaszn醠 a(z) $2 gazdag閜r鮨
log_anon=anon韒
log_any=B醨honnan
  07070100012f09000081a40000000000000002000000013ac038a90000228b000000200000000000000000000000000000001400000003reloc/mysql/lang/it   index_title=MySQL Database Server
index_notrun=MySQL non  in esecuzione nel sistema - la lista dei database potrebbe non essere disponibile.
index_start=Lancia MySQL Server
index_startmsg=Spingi questo bottone per lanciare MySQL database server nel sistema con il comando $1. Questo modulo di Webmin non pu amministrare il database finch MySQL Server non  stato lanciato.
index_nopass=Webmin ha bisogno di conoscere il login e la pasword di amministratore del MySQL Server. Prego inserire il login di amministratore del MySQL Server (tipicamente <tt>root</tt>) e la password relativa nel campo sottostante.
index_ltitle=MySQL Login
index_login=Login
index_pass=Password
index_clear=Pulisci
index_stop=Ferma MySQL Server
index_stopmsg=Spingi questo bottone per fermare MySQL database server nel sistema. Questo impedir ad ogni utente o programma di accedere al database, incluso questo modulo di Webmin.
index_dbs=I Database MySQL
index_add=Crea un nuovo database
index_global=Opzioni Globali
index_return=lista di database
index_eadmin=Il programma $1 di amministrazione di MySQL non  stato trovato nel sistema. Forse MySQL non  installato o il <a href='$2'>modulo di configurazione</a> non  corretto.
index_esql=Il programma client $1 di MySQL non  stato trovato nel sistema. Forse MySQL non  installato, o il <a href='$2'>modulo di configurazione</a> non  corretto.
index_ever=Il programma client $1 di MySQL non sembra avere una versione corretta. Webmin supporta esclusivamente la versione 3 di MySQL.

login_err=Login errato
login_elogin=
login_epass=Login o password non corretta

stop_err=Fallito l'arresto del database
start_err=Fallito la partenza del database

dbase_title=Modifica Database
dbase_tables=Tabelle del Database
dbase_add=Crea nuova tabella
dbase_drop=Cancella Database
dbase_exec=Esegui SQL
dbase_none=Questo database non ha tabelle.
dbase_return=lista di tabelle

ddrop_err=Fallita concellazione database
ddrop_title=Cancellazione del Database
ddrop_rusure=Sei sicuro di voler cancellare il database $1 ? $2 tabelle contenenti $3 righe di dati verranno cancellati.
ddrop_mysql=Poich questo  il database principale, cancellandolo si render inusabile il MySQL server!
ddrop_ok=Database cancellato

table_title=Modifica la Tabella
table_title2=Crea una Tabella
table_header=Tabella $1 nel database $2
table_field=Nome del Campo
table_type=Tipo
table_null=Permetti nulls?
table_key=Chiave
table_default=Valore di default
table_extra=Extras
table_pri=Primaria
table_mul=Indicizzato
table_none=Niente
table_add=Aggiungi un campo del tipo:
table_return=lista dei campi
table_data=Vedi i dati
table_drop=Cancella la tabella
table_name=Nome della tabella
table_initial=Campi iniziali
table_header2=Nuove opzioni della tabella
table_err=Fallita creazione della tabella
table_ename=Nome della tabella mancante o non valido
table_efield='$1' non  un nome valido per un campo
table_etype=Mancante tipo per il campo $1
table_esize=Mancante grandezza tipo per il campo $1
table_enone=Non sono stati inseriti campi iniziali

tdrop_err=Fallita cancellazione della tabella
tdrop_title=Cancellazione della Tabella
tdrop_rusure=Sei sicuri di voler cancellare la tabella $1 nel database $2 ? $3 righe di dati saranno cancellati.
tdrop_ok=Tabella cancellata

field_title1=Aggiungi Campo
field_title2=Modifica Campo
field_in=Nella tabella $1 nel database $2
field_header=Parametri del campo
field_name=Nome del campo
field_type=Tipo di dato
field_size=Lunghezza del tipo
field_enum=Enumerated values
field_dual=Width and decimals
field_opts=Type options
field_none=None
field_unsigned=Unsigned
field_zerofill=Fill with zeros
field_ascii=Case insensitive
field_binary=Case sensitive
field_null=Allow nulls?
field_default=Default value
field_err=Failed to save field
field_esize='$1' is not a valid field size
field_eenum=No enumerated values entered
field_efield='$1' is not a valid field name

view_title=Table Data
view_none=This table contains no data

users_title=User Permissions
users_user=User
users_host=Hosts
users_pass=Encrypted password
users_perms=Permissions
users_add=Create new user
users_priv3=Select
users_priv4=Insert
users_priv5=Update
users_priv6=Delete
users_priv7=Create
users_priv8=Drop
users_priv9=Reload
users_priv10=Shutdown
users_priv11=Process
users_priv12=File
users_priv13=Grant
users_priv14=References
users_priv15=Index
users_priv16=Alter
users_all=All
users_anon=Anonymous
users_none=None
users_return=user list

user_title1=Create User
user_title2=Edit User
user_header=MySQL user details
user_user=Username
user_all=Anonymous user
user_pass=Password
user_leave=Don't change
user_none=None
user_any=Any
user_set=Set to..
user_host=Hosts
user_perms=Permissions
user_priv3=Select table data
user_priv4=Insert table data
user_priv5=Update table data
user_priv6=Delete table data
user_priv7=Create tables
user_priv8=Drop tables
user_priv9=Reload grants
user_priv10=Shutdown database
user_priv11=Manage processes
user_priv12=File operations
user_priv13=Grant privileges
user_priv14=Reference operations
user_priv15=Manage indexes
user_priv16=Alter tables
user_err=Failed to save user
user_euser=Missing or invalid username
user_ehost=Missing or invalid allow host(s)

dbs_title=Database Permissions
dbs_db=Databases
dbs_user=User
dbs_host=Hosts
dbs_perms=Permissions
dbs_anon=Anonymous
dbs_any=Any
dbs_empty=No database permissions defined.
dbs_hosts=From host permissions
dbs_add=Create new database permissions
dbs_priv3=Select
dbs_priv4=Insert
dbs_priv5=Update
dbs_priv6=Delete
dbs_priv7=Create
dbs_priv8=Drop
dbs_priv9=Grant
dbs_priv10=References
dbs_priv11=Index
dbs_priv12=Alter
dbs_all=All
dbs_none=None
dbs_return=database permissions

db_title1=Create Database Permissions
db_title2=Edit Database Permissions
db_header=Database permission options
db_db=Databases
db_user=Username
db_anon=Anonymous user
db_host=Hosts
db_hosts=From host permissions
db_any=Any
db_perms=Permissions
db_priv3=Select table data
db_priv4=Insert table data
db_priv5=Update table data
db_priv6=Delete table data
db_priv7=Create tables
db_priv8=Drop tables
db_priv9=Reload grants
db_priv10=Shutdown database
db_priv11=Manage processes
db_priv12=File operations
db_priv13=Grant privileges
db_priv14=Reference operations
db_priv15=Manage indexes
db_priv16=Alter tables
db_err=Failed to save database permissions
db_euser=Missing or invalid username
db_ehost=Missing or invalid hostname
db_edb=Missing or invalid database name

hosts_title=Host Permissions
hosts_db=Databases
hosts_host=Hosts
hosts_perms=Permissions
hosts_any=Any
hosts_all=All
hosts_none=None
hosts_add=Create new host permissions
hosts_empty=No host permissions defined

host_title1=Create Host Permissions
host_title2=Edit Host Permissions
host_header=Host permissions options
host_db=Databases
host_any=Any
host_host=Hosts
host_perms=Permissions

newdb_title=Create Database
newdb_header=New database options
newdb_db=Database name
newdb_table=Initial table
newdb_none=None
newdb_struct=Initial table structure
newdb_err=Failed to create database
newdb_edb=Missing or invalid database name

exec_title=Execute SQL
exec_header=Enter SQL command to execute on database $1 ..
exec_exec=Execute
exec_err=Failed to execute SQL
exec_out=Output from SQL command $1 ..
exec_none=No data returned

tprivs_title=Table Permissions
tprivs_table=Table
tprivs_db=Database
tprivs_host=Hosts
tprivs_user=User
tprivs_privs1=Table permissions
tprivs_privs2=Field permissions
tprivs_all=All
tprivs_anon=Anonymous
tprivs_add=Add new permissions in database :
tprivs_norows=No table permissions defined
tprivs_return=table permissions
tprivs_none=None

tpriv_title1=Create Table Permissions
tpriv_title2=Edit Table Permissions
tpriv_header=Table permission options
tpriv_db=Database
tpriv_table=Table
tpriv_user=Username
tpriv_host=Hosts
tpriv_perms1=Table permissions
tpriv_perms2=Field permissions
tpriv_any=Any
tpriv_anon=Anonymous user
tpriv_err=Failed to save table permissions
tpriv_etable=No table selected
tpriv_euser=Missing or invalid username
tpriv_ehost=Missing or invalid host

cprivs_title=Field Permissions
cprivs_field=Field
cprivs_table=Table
cprivs_db=Database
cprivs_host=Hosts
cprivs_user=User
cprivs_privs=Permissions
cprivs_all=All
cprivs_anon=Anonymous
cprivs_add=Add new permissions in database and table :
cprivs_norows=No field permissions defined
cprivs_return=field permissions
cprivs_none=None

cpriv_title1=Create Field Permissions
cpriv_title2=Edit Field Permissions
cpriv_header=Field permission options
cpriv_db=Database
cpriv_table=Table
cpriv_field=Field
cpriv_user=Username
cpriv_host=Hosts
cpriv_perms=Permissions
cpriv_any=Any
cpriv_anon=Anonymous user
cpriv_err=Failed to save field permissions
cpriv_etable=No field selected
cpriv_euser=Missing or invalid username
cpriv_ehost=Missing or invalid host

esql=SQL $1 failed : $2

 07070100012f0a000081a40000000000000002000000013ac038a900003800000000200000000000000000000000000000001400000003reloc/mysql/lang/pl   index_title=Serwer baz danych MySQL
index_notrun=W&nbsp;systemie nie dzia砤 MySQL - nie mo縩a odtworzy listy baz danych.
index_start=Uruchom serwer MySQL
index_startmsg=Naci秐ij ten przycisk, aby za pomoc polecenia $1 uruchomi w&nbsp;systemie serwer baz danych MySQL. Ten modu Webmina nie b阣zie potrafi zarz眃za baz danych dop髃i serwer nie zostanie uruchomiony.
index_nopass=Webmin musi zna login i&nbsp;has硂 administratora MySQL, aby zarz眃za Twoj baz danych. Wprowad poni縠j nazw administratora (zazwyczaj <tt>root</tt>) i&nbsp;jego has硂.
index_ltitle=Logowanie do MySQL
index_login=Login
index_pass=Has硂
index_clear=Wyczy舵
index_stop=Zatrzymaj serwer MySQL
index_stopmsg=Naci秐ij ten przycisk, aby zatrzyma w&nbsp;systemie serwer baz danych MySQL. Uniemo縧iwi to wszystkim u縴tkownikom i&nbsp;programom, w&nbsp;tym niniejszemu modu硂wi Webmina, dost阷 do bazy danych.
index_dbs=Bazy danych MySQL
index_add=Utw髍z now baz danych
index_global=Opcje og髄ne
index_return=listy baz danych
index_eadmin=Nie znaleziono w&nbsp;systemie programu administracyjnego MySQLa $1. By mo縠 nie zainstalowano MySQLa lub Twoja <a href='$2'>konfiguracja modu硊</a> jest nieprawid硂wa.
index_esql=Nie znaleziono w&nbsp;systemie programu klienta MySQLa $1. By mo縠 nie zainstalowano MySQLa lub Twoja <a href='$2'>konfiguracja modu硊</a> jest nieprawid硂wa.
index_ever=Wygl眃a na to, 縠 program klienta MySQLa $1 jest w&nbsp;niew砤禼iwej wersji. Webmin obs硊guje jedynie MySQL w&nbsp;wersji 3.
index_nouser=Twoje konto Webmina jest skonfigurowane, aby 潮czy硂 si z&nbsp;serwerem MySQL na prawach u縴tkownika $1, lecz ten u縴tkownik ma zabroniony dost阷.
index_db=Nazwa bazy danych
index_tables=Tabele

login_err=Logowanie si nie powiod硂
login_ecannot=Nie masz uprawnie do zmiany konfiguracji logowania do bazy danych
login_elogin=Brak loginu administratora
login_epass=Niepoprawna nazwa lub has硂 administratora

stop_err=Nie uda硂 si zatrzyma bazy danych
start_err=Nie uda硂 si uruchomi bazy danych

dbase_title=Zmie baz danych
dbase_tables=Tabele bazy danych
dbase_add=Utw髍z now tabel
dbase_drop=Usu baz danych
dbase_exec=Wykonaj SQL
dbase_backup=Archiwizuj baz danych
dbase_none=Ta baza danych nie zawiera tabel.
dbase_fields=Pola:
dbase_return=listy tabel
dbase_ecannot=Nie masz prawa do zmiany tej bazy danych
dbase_table=Nazwa tabeli
dbase_rows=Wiersze
dbase_cols=Pola

ddrop_err=Nie uda硂 si usun辨 bazy danych
ddrop_title=Usu baz danych
ddrop_rusure=Czy na pewno chcesz usun辨 baz danych $1&nbsp;? Zostanie skasowanych $2 tabel zawieraj眂ych $3 wierszy danych.
ddrop_mysql=Ze wzgl阣u na to, 縠 jest to podstawowa baza danych, usuni阠ie jej uniemo縧iwi korzystanie z&nbsp;Twojego serwera MySQL!
ddrop_ok=Usu baz danych

table_title=Zmie tabel
table_title2=Utw髍z tabel
table_header=Tabela $1 w&nbsp;bazie danych $2
table_field=Nazwa pola
table_type=Typ
table_null=Dopuszcza brak warto禼i?
table_key=Klucz
table_default=Warto舵 domy秎na
table_extra=Dodadkowe
table_pri=Klucz g丑wny
table_mul=Zaindeksowana
table_none=Brak
table_add=Dodaj pole typu:
table_return=listy p髄
table_data=Poka dane
table_drop=Usu tabel
table_name=Nazwa tabeli
table_copy=Kopiuj pola z&nbsp;tabeli
table_copynone=&lt;Brak&gt;
table_copydata=Kopiuj r體nie dane
table_initial=Pola inicjalne
table_header2=Opcje nowych tabel
table_err=Nie uda硂 si utworzy tabeli
table_ename=Nie podana lub nieporawna nazwa tebeli
table_efield='$1' nie jest poprawn nazw pola
table_etype=Nie podano typu pola $1
table_esize=Nie podano rozmiaru pola $1
table_enone=Mie wprowadzono p髄 inicjalnych

tdrop_err=Nie uda硂 si usun辨 tabeli
tdrop_title=Usu tabel
tdrop_rusure=Czy na pewno chcesz usun辨 tabel $1 z&nbsp;bazy danych $2&nbsp;? Zostanie skasowanych $3 wierszy danych.
tdrop_ok=Usu tabel

field_title1=Dodaj pole
field_title2=Zmie pole
field_in=W&nbsp;tabeli $1 bazy danych $2
field_header=Parametry pola
field_name=Nazwa pola
field_type=Typ danych
field_size=Szeroko舵 pola
field_enum=Warto禼i wyliczeniowe
field_dual=Szeroko舵 i&nbsp;liczba miejsc dziesi阾nych
field_opts=Opcje typu
field_auto=Automatyczne zwi阫szanie?
field_none=Brak
field_unsigned=Bez znaku
field_zerofill=Wype硁ia zerami
field_ascii=Niewra縧iwe na wielko舵 liter
field_binary=Wra縧iwe na wielko舵 liter
field_null=Dopuszcza brak warto禼i?
field_default=Warto舵 domy秎na
field_key=Cz甓 klucza g丑wnego?
field_err=Nie uda硂 si zachowa pola
field_esize='$1' nie jest poprawnym rozmiarem pola
field_eenum=Nie wprowadzono warto禼i wyliczeniowych
field_efield='$1' nie jest poprawn nazw pola
field_ekey=Pola dopuszczaj眂e brak warto禼i nie mog by cz甓ci klucza g丑wnego

view_title=Dane w tabeli
view_pos=Wiersze tabeli $3 od $1 do $2
view_none=Ta tabela nie zawiera danych
view_edit=Modyfikuj wybrane wiersze
view_new=Dodaj wiersz
view_delete=Skasuj wybrane wiersze
view_nokey=Danych w&nbsp;tej tabeli nie mo縩a modyfikowa, gdy nie zawiera ona klucza g丑wnego.
view_all=Zaznacz wszystkie
view_invert=Odwr箧 zaznaczenie
view_search=Szukaj wierszy, w&nbsp;kt髍ych pole $2 zawiera $1
view_searchok=Szukaj
view_searchhead=Wyniki poszukiwania $1 w&nbsp;polu $2 ..
view_searchreset=Nowe przeszukiwanie
view_field=Nazwa pole
view_data=Nowe dane

users_title=Uprawnienia u縴tkownik體
users_user=U縴tkownik
users_host=Hosty
users_pass=Has硂 zaszyfrowane
users_perms=Uprawnienia
users_add=Utw髍z nowego u縴tkownika
users_priv3=Select
users_priv4=Insert
users_priv5=Update
users_priv6=Delete
users_priv7=Create
users_priv8=Drop
users_priv9=Reload
users_priv10=Shutdown
users_priv11=Process
users_priv12=File
users_priv13=Grant
users_priv14=References
users_priv15=Index
users_priv16=Alter
users_all=Wszystkie
users_anon=Anonimowy
users_none=Brak
users_return=listy u縴tkownik體

user_title1=Utw髍z u縴tkownika
user_title2=Zmie u縴tkownika
user_header=Dane u縴tkownika MySQLa
user_user=Nazwa u縴tkownika
user_all=U縴tkownik anonimowy
user_pass=Has硂
user_leave=Nie zmienia
user_none=Brak
user_any=Dowolny
user_set=Ustaw na..
user_host=Hosty
user_perms=Uprawnienia
user_priv3=Wyb髍 danych z&nbsp;tabeli
user_priv4=Wstawianie danych do tabeli
user_priv5=Aktualizacja danych w&nbsp;tabeli
user_priv6=Usuwanie danych z&nbsp;tabeli
user_priv7=Tworzenie tabel
user_priv8=Usuwanie tabel
user_priv9=Prze砤dowanie uprawnie
user_priv10=Zamykanie bazy danych
user_priv11=Zarz眃zanie procesami
user_priv12=Operacje na plikach
user_priv13=Nadawanie uprawnie
user_priv14=Operacje referencyjne
user_priv15=Zarz眃zanie indeksami
user_priv16=Zmiana struktur tabel
user_err=Nie uda硂 si zachowa u縴tkownika
user_euser=Nie podana lub niepoprawna nazwa u縴tkownika
user_ehost=Nie podane lub niepoprawne dozwolonege hosty

dbs_title=Database Permissions
dbs_db=Databases
dbs_user=User
dbs_host=Hosts
dbs_perms=Permissions
dbs_anon=Anonymous
dbs_any=Any
dbs_empty=No database permissions defined.
dbs_hosts=From host permissions
dbs_add=Create new database permissions
dbs_priv3=Select
dbs_priv4=Insert
dbs_priv5=Update
dbs_priv6=Delete
dbs_priv7=Create
dbs_priv8=Drop
dbs_priv9=Grant
dbs_priv10=References
dbs_priv11=Index
dbs_priv12=Alter
dbs_all=All
dbs_none=None
dbs_return=database permissions

db_title1=Create Database Permissions
db_title2=Edit Database Permissions
db_header=Database permission options
db_db=Databases
db_user=Username
db_anon=Anonymous user
db_host=Hosts
db_hosts=From host permissions
db_any=Any
db_perms=Permissions
db_priv3=Select table data
db_priv4=Insert table data
db_priv5=Update table data
db_priv6=Delete table data
db_priv7=Create tables
db_priv8=Drop tables
db_priv9=Grant privileges
db_priv10=Reference operations
db_priv11=Manage indexes
db_priv12=Alter tables
db_err=Failed to save database permissions
db_euser=Missing or invalid username
db_ehost=Missing or invalid hostname
db_edb=Missing or invalid database name

hosts_title=Host Permissions
hosts_db=Databases
hosts_host=Hosts
hosts_perms=Permissions
hosts_any=Any
hosts_all=All
hosts_priv2=Select
hosts_priv3=Insert
hosts_priv4=Update
hosts_priv5=Delete
hosts_priv6=Create
hosts_priv7=Drop
hosts_priv8=Grant
hosts_priv9=References
hosts_priv10=Index
hosts_priv11=Alter
hosts_none=None
hosts_add=Create new host permissions
hosts_empty=No host permissions defined

host_title1=Create Host Permissions
host_title2=Edit Host Permissions
host_header=Host permissions options
host_db=Databases
host_any=Any
host_priv2=Select table data
host_priv3=Insert table data
host_priv4=Update table data
host_priv5=Delete table data
host_priv6=Create tables
host_priv7=Drop tables
host_priv8=Grant privileges
host_priv9=Reference operations
host_priv10=Manage indexes
host_priv11=Alter tables
host_host=Hosts
host_perms=Permissions

newdb_title=Create Database
newdb_header=New database options
newdb_db=Database name
newdb_table=Initial table
newdb_none=None
newdb_struct=Initial table structure
newdb_err=Failed to create database
newdb_edb=Missing or invalid database name
newdb_ecannot=You are not allowed to create databases

exec_title=Execute SQL
exec_header=Enter SQL command to execute on database $1 ..
exec_exec=Execute
exec_header2=Select SQL commands file to execute on database $1 ..
exec_file=From local file
exec_upload=From uploaded file
exec_err=Failed to execute SQL
exec_out=Output from SQL command $1 ..
exec_none=No data returned
exec_eupload=No file selected to upload
exec_efile=Local file does not exist
exec_uploadout=Output from uploaded SQL commands ..
exec_fileout=Output from SQL commands in file $1 ..
exec_noout=No output generated

tprivs_title=Table Permissions
tprivs_table=Table
tprivs_db=Database
tprivs_host=Hosts
tprivs_user=User
tprivs_privs1=Table permissions
tprivs_privs2=Field permissions
tprivs_all=All
tprivs_anon=Anonymous
tprivs_add=Add new permissions in database :
tprivs_norows=No table permissions defined
tprivs_return=table permissions
tprivs_none=None

tpriv_title1=Create Table Permissions
tpriv_title2=Edit Table Permissions
tpriv_header=Table permission options
tpriv_db=Database
tpriv_table=Table
tpriv_user=Username
tpriv_host=Hosts
tpriv_perms1=Table permissions
tpriv_perms2=Field permissions
tpriv_any=Any
tpriv_anon=Anonymous user
tpriv_err=Failed to save table permissions
tpriv_etable=No table selected
tpriv_euser=Missing or invalid username
tpriv_ehost=Missing or invalid host

cprivs_title=Field Permissions
cprivs_field=Field
cprivs_table=Table
cprivs_db=Database
cprivs_host=Hosts
cprivs_user=User
cprivs_privs=Permissions
cprivs_all=All
cprivs_anon=Anonymous
cprivs_add=Add new permissions in database and table :
cprivs_norows=No field permissions defined
cprivs_return=field permissions
cprivs_none=None

cpriv_title1=Create Field Permissions
cpriv_title2=Edit Field Permissions
cpriv_header=Field permission options
cpriv_db=Database
cpriv_table=Table
cpriv_field=Field
cpriv_user=Username
cpriv_host=Hosts
cpriv_perms=Permissions
cpriv_any=Any
cpriv_anon=Anonymous user
cpriv_err=Failed to save field permissions
cpriv_etable=No field selected
cpriv_euser=Missing or invalid username
cpriv_ehost=Missing or invalid host

esql=Wykonanie SQL $1 nie powiod硂 si&nbsp;: $2
perms_ecannot=Nie masz prawa do zmiany uprawnie
perms_edb=Masz jedynie prawo do zmiany uprawnie dla Twoich baz danych

acl_dbs=Bazy danych, kt髍ymi ten u縴tkownik mo縠 zarz眃za
acl_dall=Wszystkie
acl_dsel=Wybrane..
acl_create=Mo縠 tworzy nowe bazy danych?
acl_bpath=Katalag plik體 archiwum
acl_buser=Archiwizuj jako u縴tkownik Uniksa
acl_delete=Mo縠 usuwa bazy danych?
acl_stop=Mo縠 zatrzymywa i&nbsp;uruchamia serwer MySQL?
acl_perms=Mo縠 zmienia uprawnienia?
acl_only=Tylko dla baz, kt髍ymi zarz眃za
acl_login=Logowa si do MySQLa jako
acl_user_def=Nazwa u縴tkownika z&nbsp;konfiguracji modu硊
acl_user=Nazwa u縴tkownika
acl_pass=has硂

log_start=Uruchomiono serwer MySQL
log_stop=Zatrzymano serwer MySQL
log_db_create=Utworzono database $1
log_db_delete=Dropped database $1
log_table_create=Utworzono tabel $1 w bazie danych $2
log_table_delete=Usuni阾o tabel $1 from database $2
log_field_create=Dodano pole $1 $4 do $2 w bazie danych $3
log_field_modify=Zmieniono pole $1 $4 w $2 w bazie danych $3
log_field_delete=Skasowano pole $1 z $2 w bazie danych $3
log_data_create=Dodano wiersz do tebeli $2 w bazie danych $3
log_data_modify=Zmieniono $1 wierszy w tabeli $2 w bazie danych $3
log_data_delete=Skasowano $1 wierszy z tabeli $2 w bazie danych $3
log_exec=Wykonano SQL w bazie danych $1
log_exec_l=Wykonano polecenie SQL $2 w bazie danych $1
log_user_create=Nadano uprawnienia dla u縴tkownika $1, hosta $2
log_user_delete=Anulowano uprawnienia dla u縴tkownika $1, hosta $2
log_user_modify=Zmieniono uprawnienia dla u縴tkownika $1, hosta $2
log_perm_create=Nadano uprawnienia dla bazy danych $3, u縴tkownika $1, hosta $2
log_perm_delete=Anulowano uprawnienia dla bazy danych $3, u縴tkownika $1, hosta $2
log_perm_modify=Zmieniono uprawnienia dla bazy danych $3, u縴tkownika $1, hosta $2
log_host_create=Nadano uprawnienia dla hosta $2, bazy danych $3
log_host_delete=Anulowano uprawnienia dla hosta $2, bazy danych $3
log_host_modify=Zmieniono uprawnienia dla hosta $2, bazy danych $3
log_tpriv_create=Nadano uprawnienia dla tabeli $4, bazy danych $3
log_tpriv_delete=Anulowano uprawnienia dla tabeli $4, bazy danych $3
log_tpriv_modify=Zmieniono uprawnienia dla tabeli $4, bazy danych $3
log_tpriv_create_l=Nadano uprawnienia dla tabeli $4, bazy danych $3, u縴tkownika $1, hosta $2
log_tpriv_delete_l=Anulowano uprawnienia dla tabeli $4, bazy danych $3, u縴tkownika $1, hosta $2
log_tpriv_modify_l=Zmieniono uprawnienia dla tabeli $4, bazy danych $3, u縴tkownika $1, hosta $2
log_cpriv_create=Nadano uprawnienia dla pola $5, tabeli $4
log_cpriv_delete=Anulowano uprawnienia dla pola $5 tabeli $4
log_cpriv_modify=Zmieniono uprawnienia dla pola $5, tabeli $4
log_cpriv_create_l=Nadano uprawnienia dla pola $5, tabeli $4, bazy danych $3, u縴tkownika $1, hosta $2
log_cpriv_delete_l=Anulowano uprawnienia dla pola $5 tabeli $4, bazy danych $3, u縴tkownika $1, hosta $2
log_cpriv_modify_l=Zmieniono uprawnienia dla pola $5, tabeli $4, bazy danych $3, u縴tkownika $1, hosta $2
log_anon=anonimowy
log_any=dowolny
log_backup=Zarchiwizowano baz danych $1
log_backup_l=Zarchiwizowano baz danych $1 w&nbsp;pliku $2
log_execupload=Wykonano polecenia SQL z&nbsp;przes砤nego pliku
log_execfile=Wykonano polecenia SQL z&nbsp;pliku $1
07070100012f0b000081a40000000000000002000000013ac038a900003bf1000000200000000000000000000000000000001400000003reloc/mysql/lang/sv   index_title=MySQL Databasserver
index_notrun=MySQL 鋜 inte ig錸g p ditt system - databaslistan kunde inte h鋗tas
index_start=Starta MySQL-server
index_startmsg=Tryck p denna knapp f鰎 att starta MySQL-databasservern p ditt system med kommandot $1. Denna Webmin-modul kan inte arbeta med databasen innan den har startat.
index_nopass=Webmin beh鰒er veta ditt administrat鰎snamn och -l鰏enord f鰎 MySQL f鰎 att hantera din databas. Ange administrat鰎snamn (oftast <tt>root</tt>) och l鰏enord nedan.
index_ltitle=MySQL inloggning
index_login=Inloggingsnamn
index_pass=L鰏enord
index_clear=B鰎ja om inmatningen
index_stop=Stanna MySQL-servern
index_stopmsg=Tryck p denna knapp f鰎 att stanna MySQL-databasservern p ditt system. Detta g鰎 att inga anv鋘dare eller program (inklusive denna Webmin-modul) kommer 錿 databasen.
index_dbs=MySQL-databaser
index_add=Skapa databas
index_global=Globala inst鋖lningar
index_return=databaslista
index_eadmin=Administrationsprogrammet $1 f鰎 MySQL finns inte p ditt system. MySQL kanske inte har installerats, eller s 鋜 dina <a href='$2'>modulinst鋖lningar</a> felaktiga.
index_esql=Klientprogrammet $1 f鰎 MySQL finns inte p ditt system. MySQL kanske inte har installerats, eller s 鋜 dina <a href='$2'>modulinst鋖lningar</a> felaktiga.
index_ever=Du verkar ha fel version av klientprogrammet $1 f鰎 MySQL. Webmin st鰀jer bara MySQL version 3.
index_nouser=Ditt Webmin-konto 鋜 inst鋖lt f鰎 att koppla upp sig mot MySQL-server som anv鋘dare $1, men denna anv鋘dare f錼 inte komma 錿 servern.
index_db=Databasnamn
index_tables=Tabeller

login_err=Det gick inte att logga in
login_ecannot=Du f錼 inte 鋘dra inst鋖lningarna f鰎 inloggning p databasen
login_elogin=Administrat鰎skontot finns inte
login_epass=Namnet eller l鰏enordet f鰎 administrat鰎en var felaktigt.

stop_err=Det gick inte att stanna databasen
start_err=Det gick inte att starta databasen

dbase_title=膎dra databas
dbase_tables=Databastabell
dbase_add=Skapa ny tabell
dbase_drop=Ta bort databas
dbase_exec=Utf鰎 SQL
dbase_backup=Backup-databas
dbase_none=Denna databas har inga tabeller
dbase_fields=F鋖t:
dbase_return=tabellista
dbase_ecannot=Du f錼 inte 鋘dra denna databas
dbase_table=Tabellnamn
dbase_rows=Rader
dbase_cols=F鋖t

ddrop_err=Det gick inte att ta bort databasen
ddrop_title=Ta bort databas
ddrop_rusure=Vill du verkligen ta bort databas $1? $2 tabeller med $3 rader kommer att raderas.
ddrop_mysql=Detta 鋜 master-databasen. Om du tar bort den kommer din MySQL-server f鰎modligen inte att g att anv鋘da.
ddrop_ok=Ta bort databasen

table_title=膎dra tabell
table_title2=Skapa ny tabell
table_header=Tabell $1 i databas $2
table_field=F鋖tnamn
table_type=Typ
table_null=Tomma f鋖t till錿na?
table_key=Nyckel
table_default=Standardv鋜de
table_extra=Extra
table_pri=Prim鋜
table_mul=Indexerad
table_none=Inget
table_add=L鋑g till f鋖t av typ:
table_return=f鋖tlista
table_data=Visa data
table_drop=Ta bort tabell
table_name=Tabellnamn
table_copy=Kopiera f鋖t fr錸 tabell
table_copynone=&lt;Ingen&gt;
table_copydata=Kopiera 鋠en data
table_initial=Startf鋖t
table_header2=Inst鋖lningar f鰎 ny tabell
table_err=Det gick inte att skapa tabellen
table_ename=Tabellnamn saknas eller 鋜 ogiltigt
table_efield='$1' 鋜 inte ett giltigt f鋖tnamn
table_etype=Du har inte angivit n錱on typ f鰎 f鋖t $1
table_esize=Du har inte angivit n錱on typstorlek f鰎 f鋖t $1
table_enone=Du har inte angivit n錱ot startf鋖t

tdrop_err=Det gick inte att ta bort tabellen
tdrop_title=Ta bort tabellen
tdrop_rusure=Vill du verkligen ta bort tabell $1 i databas $2? $3 datarader kommer att raderas.
tdrop_ok=Ta bort tabellen

field_title1=L鋑g till f鋖t
field_title2=膎dra f鋖t
field_in=I tabell $1 i databas $2
field_header=F鋖tparametrar
field_name=F鋖tnamn
field_type=Datatyp
field_size=Typl鋘gd
field_enum=Numeriska v鋜den
field_dual=L鋘gd och decimaler
field_opts=Tillval f鰎 typ
field_none=Inga
field_unsigned=Utan tecken
field_zerofill=Fyll med nollor
field_auto=R鋕na upp automatiskt?
field_ascii=Versal/gemen tolkas lika
field_binary=Versal/gemen tolkas olika
field_null=Tomt f鋖t till錿et?
field_default=Standardv鋜de
field_key=Del av prim鋜 nyckel?
field_err=Det gick inte att spara f鋖tet
field_esize='$1' 鋜 inte en giltig f鋖tstorlek
field_eenum=Du har inte angivit n錱ot numrerat v鋜de
field_efield='$1' 鋜 inte ett giltigt f鋖tnamn
field_ekey=F鋖t som till錿s vara tomma kan inte vara en del av prim鋜 nyckel 

view_title=Tabellinformation
view_none=Denna tabell inneh錶ler inga data
view_pos=Raderna $1 - $2 ur $3
view_edit=膎dra markerade rader
view_new=L鋑g till rad
view_delete=Ta bort markerade rader
view_nokey=Data i den h鋜 tabellen kan inte 鋘dras eftersom den inte har n錱on prim鋜 nyckel
view_all=Visa alla
view_invert=Visa uteslutna
view_search=Visa rader d鋜 f鋖t $2 matchar $1
view_searchok=S鰇
view_searchhead=S鰇resultat f鰎 $1 i f鋖t $2 ...
view_searchreset=舤erst鋖l s鰇ningen
view_field=F鋖tnamn
view_data=Nya data

users_title=Anv鋘darr鋞tigheter
users_user=Anv鋘dare
users_host=Dator
users_pass=Krypterat l鰏enord
users_perms=R鋞tigheter
users_add=L鋑g till anv鋘dare
users_priv3=V鋖j
users_priv4=L鋑g in
users_priv5=Uppdatera
users_priv6=Radera
users_priv7=Skapa
users_priv8=Ta bort
users_priv9=Ladda in igen
users_priv10=St鋘g av
users_priv11=Process
users_priv12=Fil
users_priv13=Till錿
users_priv14=Referenser
users_priv15=Index
users_priv16=膎dra
users_all=Alla
users_anon=Anonym
users_none=Ingen
users_return=anv鋘darlista

user_title1=L鋑g till anv鋘dare
user_title2=膎dra anv鋘dare
user_header=Uppgifter om MySQL-anv鋘dare
user_user=Anv鋘darnamn
user_all=Anonym anv鋘dare
user_pass=L鰏enord
user_leave=膎dra inte
user_none=Inget
user_any=Vad som helst
user_set=S鋞t till ...
user_host=Datorer
user_perms=R鋞tigheter
user_priv3=V鋖j tabelldata
user_priv4=L鋑g in tabelldata
user_priv5=Uppdatera tabelldata
user_priv6=Radera tabelldata
user_priv7=Skapa tabell
user_priv8=Ta bort tabell
user_priv9=L鋝 in r鋞tigheter igen
user_priv10=St鋘g av databasen
user_priv11=Hantera processer
user_priv12=Filoperationer
user_priv13=Dela ut r鋞tigheter
user_priv14=Referensoperationer
user_priv15=Hantera index
user_priv16=膎dra tabell
user_err=Det gick inte att spara anv鋘dare
user_euser=Anv鋘darnamn saknas eller 鋜 felaktigt
user_ehost=Till錿na datorer saknas eller 鋜 felaktigt angivna

dbs_title=Databasr鋞tigheter
dbs_db=Databaser
dbs_user=Anv鋘dare
dbs_host=Datorer
dbs_perms=R鋞tigheter
dbs_anon=Anonym
dbs_any=Vem som helst
dbs_empty=Du har inte definierat n錱ra databasr鋞tigheter
dbs_hosts=R鋞tigheter fr錸 dator
dbs_add=L鋑g till databasr鋞tigheter
dbs_priv3=V鋖j
dbs_priv4=L鋑g in
dbs_priv5=Uppdatera
dbs_priv6=Radera
dbs_priv7=Skapa
dbs_priv8=Ta bort
dbs_priv9=Till錿
dbs_priv10=Referenser
dbs_priv11=Index
dbs_priv12=膎dra
dbs_all=Alla
dbs_none=Ingen
dbs_return=databasr鋞tigheter

db_title1=L鋑g till databasr鋞tigheter
db_title2=膎dra databasr鋞tigheter
db_header=Inst鋖lningar f鰎 databasr鋞tigheter
db_db=Databaser
db_user=Anv鋘darnamn
db_anon=Anonym anv鋘dare
db_host=Datorer
db_hosts=R鋞tigheter fr錸 dator
db_any=Vilken som helst
db_perms=R鋞tigheter
db_priv3=V鋖j tabelldata
db_priv4=L鋑g in tabelldata
db_priv5=Uppdatera tabelldata
db_priv6=Radera tabelldata
db_priv7=Skapa tabell
db_priv8=Ta bort tabell
db_priv9=Dela ut r鋞tigheter
db_priv10=Referensoperationer
db_priv11=Hantera index
db_priv12=膎dra tabeller
db_err=Det gick inte att spara databasr鋞tigheter
db_euser=Anv鋘darnamn saknas eller 鋜 felaktigt angivet
db_ehost=Datornamn saknas eller 鋜 felaktigt angivet
db_edb=Databasnamn saknas eller 鋜 felaktigt angivet

hosts_title=Datorr鋞tigheter
hosts_db=Databaser
hosts_host=Datorer
hosts_perms=R鋞tigheter
hosts_any=Vilken som helst
hosts_all=Alla
hosts_priv2=V鋖j
hosts_priv3=L鋑g till
hosts_priv4=Uppdatera
hosts_priv5=Ta bort
hosts_priv6=Skapa
hosts_priv7=Ta bort
hosts_priv8=Dela ut
hosts_priv9=Referenser
hosts_priv10=Index
hosts_priv11=膎dra
hosts_none=Ingen
hosts_add=L鋑g till datorr鋞tigheter
hosts_empty=Du har inte definierat n錱ra datorr鋞tigheter

host_title1=L鋑g till datorr鋞tigheter
host_title2=膎dra datorr鋞tigheter
host_header=Inst鋖lningar f鰎 datorr鋞tigheter
host_db=Databaser
host_any=Vilken som helst
host_priv2=Ange tabelldata
host_priv3=L鋑g till tabelldata
host_priv4=Uppdatera tabelldata
host_priv5=Ta bort tabelldata
host_priv6=Skapa tabeller
host_priv7=Ta bort tabeller
host_priv8=Dela ut r鋞tigheter
host_priv9=Referensoperationer
host_priv10=Hantera index
host_priv11=膎dra tabeller
host_host=Datorer
host_perms=R鋞tigheter

newdb_title=Skapa databas
newdb_header=Inst鋖lningar f鰎 ny databas
newdb_db=Databasnamn
newdb_table=Starttabell
newdb_none=Ingen
newdb_struct=Struktur f鰎 starttabell
newdb_err=Det gick inte att skapa databasen
newdb_edb=Databasnamn saknas eller 鋜 felaktigt angivet
newdb_ecannot=Du f錼 inte l鋑ga till databaser

exec_title=Utf鰎 SQL
exec_header=Ange SQL-kommando som ska utf鰎as p databas $1 ...
exec_exec=Utf鰎
exec_header2=Ange fil med SQL-kommandoh som ska utf鰎as p databas $1 ..
exec_file=Fr錸 lokal fil
exec_upload=Fr錸 nedladdad fil
exec_err=Det gick inte att utf鰎a SQL
exec_out=Utmatning fr錸 SQL-kommando $1 ...
exec_none=Inga data returnerades
exec_eupload=Du har inte angivit n錱on fil som ska ladas ned
exec_efile=Det finns ingen s錮an lokal fil
exec_uploadout=Utmatning fr錸 nedladdade SQL-kommandon ...
exec_fileout=Utmatning fr錸 SQL-kommandon i filen $1 ..
exec_noout=Det blev ingen utmatning.

tprivs_title=Tabellr鋞tigheter
tprivs_table=Tabell
tprivs_db=Databas
tprivs_host=Datorer
tprivs_user=Anv鋘dare
tprivs_privs1=Tabellr鋞tigheter
tprivs_privs2=F鋖tr鋞tigheter
tprivs_all=Alla
tprivs_anon=Anonymt
tprivs_add=L鋑g till r鋞tigheter i databas:
tprivs_norows=Du har inte definierat n錱ra tabellr鋞tigheter
tprivs_return=tabellr鋞tigheter
tprivs_none=Inga

tpriv_title1=L鋑g till tabellr鋞tigheter
tpriv_title2=膎dra tabellr鋞tigheter
tpriv_header=Inst鋖lningar f鰎 tabellr鋞tigheter
tpriv_db=Databas
tpriv_table=Tabell
tpriv_user=Anv鋘darnamn
tpriv_host=Datorer
tpriv_perms1=Tabellr鋞tigheter
tpriv_perms2=F鋖tr鋞tigheter
tpriv_any=Vem som helst
tpriv_anon=Anonym anv鋘dare
tpriv_err=Det gick inte att spara tabellr鋞tigheterna
tpriv_etable=Du har inte angivit n錱on tabell
tpriv_euser=Anv鋘darnamn saknas eller 鋜 felaktigt angivet
tpriv_ehost=Datornamn saknas eller 鋜 felaktigt angivet

cprivs_title=F鋖tr鋞tigheter
cprivs_field=F鋖t
cprivs_table=Tabell
cprivs_db=Databas
cprivs_host=Datorer
cprivs_user=Anv鋘dare
cprivs_privs=R鋞tigheter
cprivs_all=Alla
cprivs_anon=Anonymt
cprivs_add=L鋑g till r鋞tigheter i databas och tabell:
cprivs_norows=Du har inte definierat n錱ra f鋖tr鋞tigheter
cprivs_return=f鋖tr鋞tigheter
cprivs_none=Inga

cpriv_title1=L鋑g till f鋖tr鋞tigheter
cpriv_title2=膎dra f鋖tr鋞tigheter
cpriv_header=Inst鋖lningar f鰎 f鋖tr鋞tigheter
cpriv_db=Databas
cpriv_table=Tabell
cpriv_field=F鋖t
cpriv_user=Anv鋘darnamn
cpriv_host=Datorer
cpriv_perms=R鋞tigheter
cpriv_any=Vem som helst
cpriv_anon=Anonym anv鋘dare
cpriv_err=Det gick inte att spara f鋖tr鋞tigheterna
cpriv_etable=Du har inte angivit n錱ot f鋖t
cpriv_euser=Anv鋘darnamn saknas eller 鋜 felaktigt angivet
cpriv_ehost=Datornamn saknas eller 鋜 felaktigt angivet

esql=SQL $1 misslyckades: $2
perms_ecannot=Du f錼 inte 鋘dra r鋞tigheter
perms_edb=Du f錼 bara 鋘dra r鋞tigheter f鰎 dina egna databaser

acl_dbs=Databaser som denna anv鋘dare f錼 hantera
acl_dall=Alla databaser
acl_dsel=Angivna ...
acl_create=Kunna skapa nya databaser?
acl_backup=Kunna s鋕erhetskopiera databaser?
acl_delete=Kunna ta bort databaser?
acl_stop=Kunna stanna och starta MySQL-servern?
acl_perms=Kunna 鋘dra r鋞tigheter?
acl_only=Endast f鰎 egna databaser
acl_login=Logga in p MySQL som
acl_user_def=Anv鋘darnamn fr錸 modulinst鋖lningarna
acl_user=Anv鋘darnamn
acl_pass=l鰏enord

log_start=Startade MySQL-server
log_stop=Stannade MySQL-server
log_db_create=Lade till databas $1
log_db_delete=Tog bort databas $1
log_table_create=Lade till tabell $1 i databas $2
log_table_delete=Tog bort tabell $1 fr錸 databas $2
log_field_create=Lade till f鋖t $1 $4 till $2 i databas $3
log_field_modify=Modifierade f鋖t $1 $4 i $2 i databas $3
log_field_delete=Tog bort f鋖t $1 fr錸 $2 i databas $3
log_data_create=Lade till rad till tabell $2 i databas $3
log_data_modify=Modifierade $1 rader i tabell $2 i databas $3
log_data_delete=Tog bort $1 rader fr錸 tabell $2 i databas $3
log_exec=Utf鰎de SQL i databas $1
log_exec_l=Utf鰎de SQL-kommando $2 i databas $1
log_user_create=Lade till r鋞tigheter f鰎 anv鋘dare $1, dator $2
log_user_delete=Tog bort r鋞tigheter f鰎 anv鋘dare $1, dator $2
log_user_modify=Modifierade r鋞tigheter f鰎 anv鋘dare $1, dator $2
log_perm_create=Lade till r鋞tigheter f鰎 databas $3, anv鋘dare $1, dator $2
log_perm_delete=Tog bort r鋞tigheter f鰎 databas $3, anv鋘dare $1, dator $2
log_perm_modify=Modifierade r鋞tigheter f鰎 databas $3, anv鋘dare $1, dator $2
log_host_create=Lade till r鋞tigheter f鰎 dator $2, databas $3
log_host_delete=Tog bort r鋞tigheter f鰎 dator $2, databas $3
log_host_modify=Modifierade r鋞tigheter f鰎 dator $2, databas $3
log_tpriv_create=Lade till r鋞tigheter f鰎 tabell $4, databas $3
log_tpriv_delete=Tog bort r鋞tigheter f鰎 tabell $4, databas $3
log_tpriv_modify=Modifierade r鋞tigheter f鰎 tabell $4, databas $3
log_tpriv_create_l=Lade till r鋞tigheter f鰎 tabell $4, databas $3, anv鋘dare $1, dator $2
log_tpriv_delete_l=Tog bort r鋞tigheter f鰎 tabell $4, databas $3, anv鋘dare $1, dator $2
log_tpriv_modify_l=Modifierade r鋞tigheter f鰎 tabell $4, databas $3, anv鋘dare $1, dator $2
log_cpriv_create=Lade till r鋞tigheter f鰎 f鋖t $5, tabell $4
log_cpriv_delete=Tog bort r鋞tigheter f鰎 f鋖t $5 tabell $4
log_cpriv_modify=Modifierade r鋞tigheter f鰎 f鋖t $5, tabell $4
log_cpriv_create_l=Lade till r鋞tigheter f鰎 f鋖t $5, tabell $4, databas $3, anv鋘dare $1 dator $2
log_cpriv_delete_l=Tog bort r鋞tigheter f鰎 f鋖t $5 tabell $4, databas $3, anv鋘dare $1 dator $2
log_cpriv_modify_l=Modifierade r鋞tigheter f鰎 f鋖t $5, tabell $4, databas $3, anv鋘dare $1 dator $2
log_anon=anonym
log_any=n錱on
log_backup=S鋕erhetskopierade databas $1
log_backup_l=S鋕erhetskopierade databas $1 till fil $2
log_execupload=Utf鰎de SQL-kommandon fr錸 nedladdad fil
log_execfile=Utf鰎de SQL-kommandon fr錸 fil $1

backup_title=S鋕erhetskopiering av databas
backup_ecannot=Du f錼 inte s鋕erhetskopiera databaser
backup_edump=MySQL-backupprogrammet $1 g錼 inte att hitta p systemet. Dina <a href='$2'>modulinst鋖lningar</a> kanske 鋜 felaktiga.
backup_desc=Med hj鋖p av detta formul鋜 kan du g鰎a en s鋕erhetskopia av databasen $1 i form av en fil med SQL-uttryck. Anv鋘d formul鋜et Utf鰎 SQL f鰎 att k鰎a kommandona i filen om du vill l鋝a tillbaka data fr錸 s鋕erhetskopian.
backup_header=Inst鋖lningar f鰎 databaskopia
backup_file=G鰎 s鋕erhetskopia till fil
backup_where=S鋕erhetskopiera endast rader som matchar <tt>where</tt>-villkoret
backup_none=Alla rader
backup_drop=Ska <tt>drop table</tt>-uttryck fogas till s鋕erhetskopian?
backup_ok=G鰎 s鋕erhetskopia nu
backup_err=Det gick inte att g鰎a en s鋕erhetskopia p databasen.
backup_efile=Filnamn f鰎 s鋕erhetskopian saknades eller var ogiltigt.
backup_ewhere=Du har inte angivit n錱ot <tt>where</tt>-villkor
backup_ebackup=<tt>mysqldump</tt> misslyckades : $1
backup_done=Nu har $3 byte s鋕erhetskopierats fr錸 databasen $1 till filen $2.
   07070100012f0c000081a40000000000000002000000013ac038a9000030cc000000200000000000000000000000000000001400000003reloc/mysql/lang/tr   index_title=MySQL Veritaban Sunucusu
index_notrun=MySQL sisteminizde 鏰lm齳or - veritaban listesi al齨amad
index_start=MySQL Sunucusunu Baat
index_startmsg=Bu butonu t齥layarak sisteminizdeki veritaban sunucusunu $1 komutu ile 鏰lt齬abilirsiniz.Veritaban 鏰lmadan Webmin'in bu mod黮黱 kullanamazs齨齴
index_nopass=Webmin veritaban齨 y鰊etebilmek i鏸n MySQL sunucunuzun kullan齝 ad ve 㱮fresine ihtiya duymaktad齬.L黷fen kullan齝 ad( genellikle <tt>root</tt> olmaktad齬) ve 㱮freyi girin
index_ltitle=MySQL Kullan齝 Ad
index_login=Kullan齝 Ad
index_pass=辤fre
index_clear=Temizle
index_stop=MySQL sunucusunu durdur
index_stopmsg=Bu butonu t齥layarak sisteminizdeki MySQL veritaban sunucusunu durdurabilirsiniz.Bu kullan齝齦ar齨 ya da programlar齨 veritaban齨a girierini kesecektir.
index_dbs=MySQL Veritabanlar
index_add=Yeni bir veritaban olu⺶ur
index_global=Genel Se鏴nekler
index_return=veritaban listesi
index_eadmin=MySQL y鰊etim program $1 sisteminizde bulunamad.MySQL y黭lenmemi ya da <a href='$2'>mod黮 ayarlar</a>  do餽u olmayabilir
index_esql=MySQL istemci program $1 sisteminizde bulunamad.MySQL y黭lenmemi ya da <a href='$2'>mod黮 ayarlar</a>  do餽u olmayabilir
index_ever=MySQL istemci program do餽u versiyom de餴l.Webmin sadece MySQL 3 versiyonunu desteklemektedir
index_nouser=


login_err=Giri⺶e hata olu⺶u
login_ecannot=Veritaban giri㱮ni ayarlamaya izininiz yoktur
login_elogin=Kay齪 y鰊etim giri㱮
login_epass=Yanl y鰊etici kullan齝 ad ve 㱮fresi

stop_err=Veritaban齨齨 durdurulmas齨da hata olu⺶u
start_err=Veritaban齨齨 baat齦mas齨da hata olu⺶u

dbase_title=Veritaban齨 De餴⺶ir
dbase_tables=Veritaban tablolalar
dbase_add=Yeni bir tablo olu⺶ur
dbase_drop=Veritaban齨 b齬ak
dbase_exec=SQL 鏰lt齬
dbase_none=Veritaban tablolara sahip de餴l
dbase_fields=
dbase_return=tablo listesi
dbase_ecannot=Bu veritaban齨 de餴⺶irmeye izininiz yoktur

ddrop_err=Veritaban齨齨 b齬ak齦mas齨da hata olu⺶u
ddrop_title=Veritaban齨 b齬ak
ddrop_rusure=$1 veritaban齨 b齬akmak istedi餴nizden eminmisiniz? $2 tablo silinecek olan bilgide $3 kolon i鏴riyor.
ddrop_mysql=屈nk bu ana veritaban齞齬, b齬akma genellikle kull齨s齴 MySQL sunucusunda yap齦齬.
ddrop_ok=Veritaban齨 b齬ak

table_title=Tablo De餴⺶ir
table_title2=Tablo Olu⺶ur
table_header=$2 veritaban齨daki $1 tablosu
table_field=Alan ismi
table_type=Tip
table_null=Boar kabul edilsin?
table_key=Anahtar
table_default=謓tan齧l de餰ri
table_extra=Ekler
table_pri=Birincil
table_mul=Indekslenmi
table_none=Hi鏱iri
table_add=Tip alan ekle:
table_return=alan listesi
table_data=Bilgiyi g鰏ter
table_drop=Tabloyu b齬ak
table_name=Tablo ismi
table_initial=Alanlar
table_header2=Yeni tablo se鏴nekleri
table_err=Tablo olu⺶urulmas齨da hata olu⺶u
table_ename=Kay齪 ya da yanl tablo ismi
table_efield='$1' ge鏴rli bir alan ismi de餴ldir
table_etype=$1 alan i鏸n kay齪 tip
table_esize=$1 alan i鏸n kay齪 tip boyutu
table_enone=輑k alanlar girilmedi

tdrop_err=Tablonun b齬ak齦mas齨da hata olu⺶u
tdrop_title=Tablo B齬ak齦mas
tdrop_rusure=$1 tablo $2 veritaban齨齨dan b齬akmak istedi餴nizden
eminmisiniz? Bilginin $3 kolonlar silinebilir
tdrop_ok=Tabloyu b齬ak

field_title1=Alan ekle
field_title2=Alan de餴⺶ir
field_in=Tablo $1, $2 veritaban齨da
field_header=Alan parametreleri
field_name=Alan ismi
field_type=Bilgi tipi
field_size=Tip uzunlu饀
field_enum=Say齦m de餰rler
field_dual=Geniik ve ondal齥
field_opts=Tip se鏴nekleri
field_auto=Otomatik artt齬ma?
field_none=Hbiri
field_unsigned=蔺aretlenmemi
field_zerofill=S齠齬larla doldur
field_ascii=B鼀黭 k黭 harfe duyarl olma
field_binary=B鼀黭 k黭 harfe duyarl齦齥
field_null=Boar kabul edilsin?
field_default=謓tan齧l de餰ri
field_key=Birincil anahtar齨 b鰈黰?
field_err=Alan齨齨 kaydedilmeinde hata olu⺶u
field_esize='$1' ge鏴rli bir alan boyutu de餴l
field_eenum=Artt齬齦an de餰rler girilmedi
field_efield='$1' ge鏴rli bir alan ismi de餴l
field_ekey=Alanlarda birincil anahtar齨 par鏰lar bo olamazlar

view_title=Tablo 輘mi
view_pos=$1 tablosu $3'te $2 alt齨da
view_none=Bu tablo blgi i鏴rmiyor
view_edit=Se鏸li kolonlar de餴⺶ir
view_new=Kolon ekle
view_delete=Se鏸li kolonlar sil
view_nokey=Bu tablodaki bilgi de餴⺶irilemez 琰nk birincil anahtara sahip de餴l

users_title=Kullan齝 Izinleri
users_user=Kullan齝
users_host=Makineler
users_pass=辤frelenmi parolalar
users_perms=輟inler
users_add=Yeni bir kullan齝 olu⺶ur
users_priv3=Se
users_priv4=Yerle⺶ir
users_priv5=G黱celle
users_priv6=Sil
users_priv7=Olu⺶ur
users_priv8=B齬ak
users_priv9=Tekrar Y黭le
users_priv10=Kapat
users_priv11=蔺lem
users_priv12=Dosya
users_priv13=Kabul
users_priv14=Referanslar
users_priv15=Indeks
users_priv16=De餴㱮klik
users_all=Hepsi
users_anon=Ortak kullan齝
users_none=Hi鏱iri
users_return=Kullan齝 listesi

user_title1=Kullan齝 Olu⺶ur
user_title2=Kullan齝 De餴⺶ir
user_header=MySQL kullan齝 ayr齨t齦ar
user_user=Kullan齝 Ad
user_all=Ortak kullan齝
user_pass=辤fre
user_leave=De餴⺶irme
user_none=Hi鏱iri
user_any=Herhangi
user_set=Kur..
user_host=Makineler
user_perms=輟inler
user_priv3=Tablo bilgisi se
user_priv4=Tablo bilgisi yerle⺶ir
user_priv5=Tablo bilgisi g黱celle
user_priv6=Tablo bilgisi sil
user_priv7=Tablo olu⺶ur
user_priv8=Tablolar b齬ak
user_priv9=Kabulleri tekrar y黭le
user_priv10=Veritaban齨 kapat
user_priv11=蔺lemleri y鰊et
user_priv12=Dosya 蔺lemleri
user_priv13=Ayr齝al齥lar kabul et
user_priv14=蔺lemleri g鰊der
user_priv15=輓deksleri y鰊et
user_priv16=Tablolar de餴⺶ir
user_err=Kullan齝齳 kaydetmede hata oltu
user_euser=Kay齪 ya da yanl kullan齝 ismi
user_ehost=Kay齪 ya da yanl izin verilen makine(ler)

dbs_title=Veritaban 輟inleri
dbs_db=Veritabanlar
dbs_user=Kullan齝
dbs_host=Makineler
dbs_perms=輟inler
dbs_anon=Ortak
dbs_any=Herhangi
dbs_empty=Veritaban haklar tan齧lanmad
dbs_hosts=Makine izinlerinden
dbs_add=Yeni veritaban izinlerini olu⺶ur
dbs_priv3=Se
dbs_priv4=Yerle⺶ir
dbs_priv5=G黱celle
dbs_priv6=Sil
dbs_priv7=Olu⺶ur
dbs_priv8=B齬ak
dbs_priv9=Kabul
dbs_priv10=Referanslar
dbs_priv11=Indeks
dbs_priv12=De餴⺶ir
dbs_all=Hepsi
dbs_none=Hi鏱iri
dbs_return=Veritaban izinleri

db_title1=Veritaban 輟inleri Olu⺶ur
db_title2=Veritaban 輟inleri De餴⺶ir
db_header=Veritaban 輟in Se鏴nekleri
db_db=Veritabanlar
db_user=Kullan齝 輘mi
db_anon=Ortak kullan齝
db_host=Makineler
db_hosts=Makine izinlerinden 
db_any=Herhangi
db_perms=輟inler
db_priv3=Tablo bilgisi se鏸n
db_priv4=Tablo bilgisi yerle⺶irin
db_priv5=Tablo bilgisi g黱celleyin
db_priv6=Tablo bilgisi silin
db_priv7=Tablo olu⺶ur
db_priv8=Tablolar b齬ak
db_priv9=Kabulleri tekrar y黭le
db_priv10=Veritaban齨 kapat
db_priv11=輑emleri y鰊et
db_priv12=Dosya iemleri
db_priv13=Ayr齝al齥 kabulleri
db_priv14=Referans iemleri
db_priv15=輓deksleri 鰊et
db_priv16=Tablolar de餴⺶ir
db_err=Veritaban izinlerinin dei⺶irlmesinde hata olu⺶u
db_euser=Kay齪 ya da yanl kullan齝 ismi
db_ehost=Kay齪 ya da yanl makine ismi
db_edb=Kay齪 ya da yanl veritaban ismi

hosts_title=Makine 輟inleri
hosts_db=Veritabanlar
hosts_host=Makineler
hosts_perms=輟inler
hosts_any=Herhangi
hosts_all=Hepsi
hosts_none=Hi鏱iri
hosts_add=Yeni makine izinleri olu⺶ur
hosts_empty=Makine izinleri tan齧lanmad

host_title1=Makine 輟inleri Olu⺶ur
host_title2=Makine 輟inlerini De餴⺶ir
host_header=Makine izin se鏴nekleri
host_db=Veritabanlar
host_any=Herhangi
host_host=Makineler
host_perms=輟inler

newdb_title=Veritaban Olu⺶ur
newdb_header=Yeni veritaban se鏴nekleri
newdb_db=Veritaban ismi
newdb_table=輑k tablo
newdb_none=Hi鏱iri
newdb_struct=輑k tablo yap齭
newdb_err=Veritaban olu⺶urulmas齨da hata olu⺶u
newdb_edb=Kay齪 ya da yanl veritaban ismi
newdb_ecannot=Veritaban olu⺶urman齴 izin verilmemi⺶ir

exec_title=SQL 莂lt齬
exec_header=$1 veritaban齨da 鏰lt齬齦acak SQL komutunu girin ..
exec_exec=莂lt齬
exec_err=SQL'in 鏰lt齬齦mas齨da hata olu⺶u
exec_out=SQL komutu $1'in 琮kt齭 ..
exec_none=Bilgi D鰊d黵黮medi

tprivs_title=Tablo 輟inleri
tprivs_table=Tablo
tprivs_db=Veritaban
tprivs_host=Makineler
tprivs_user=Kullan齝
tprivs_privs1=Tablo izinleri
tprivs_privs2=Alan izinleri
tprivs_all=Hepsi
tprivs_anon=Ortak kullan齝
tprivs_add=Veritaban齨a yeni haklar ekle:
tprivs_norows=Tablo izinleri tan齧lanmad
tprivs_return=tablo izinleri
tprivs_none=Hi鏱iri

tpriv_title1=Tablo 輟inleri Olu⺶ur
tpriv_title2=Tablo 輟inleri De餴⺶ir
tpriv_header=Tablo izin se鏴nekleri
tpriv_db=Veritaban
tpriv_table=Tablo
tpriv_user=Kullan齝 Ad
tpriv_host=Makineler
tpriv_perms1=Tablo izinleri
tpriv_perms2=Alan izinleri
tpriv_any=Herhangi
tpriv_anon=Ortak kullan齝
tpriv_err=Tablo haklar齨齨 kaydedilmesinde hata olu⺶u
tpriv_etable=Tablo se鏸lmedi
tpriv_euser=Kay齪 ya da yanl kullan齝 ad
tpriv_ehost=Kay齪 ya da yanl makine ad

cprivs_title=Alan 輟inleri
cprivs_field=Alan
cprivs_table=Tablo
cprivs_db=Veritaban
cprivs_host=Makineler
cprivs_user=Kullan齝
cprivs_privs=輟inler
cprivs_all=Hepsi
cprivs_anon=Ortak kullan齝
cprivs_add=Veritaban ve tabloya yeni izinler ekle :
cprivs_norows=輟inlerin tan齧land alan yok
cprivs_return=alan izinleri
cprivs_none=Hi鏱iri

cpriv_title1=Alan 輟inleri Olu⺶ur
cpriv_title2=Alan 輟inleri De餴⺶ir
cpriv_header=Alan izin se鏴nekleri
cpriv_db=Veritaban
cpriv_table=Tablo
cpriv_field=Alan
cpriv_user=Kullan齝 Ad
cpriv_host=Makineler
cpriv_perms=輟inler
cpriv_any=Herhangi
cpriv_anon=Ortak kullan齝
cpriv_err=Alan izinlerinin kaydedilmesinde hata olu⺶u
cpriv_etable=Alan se鏸lmedi
cpriv_euser=Kay齪 ya da yanl kullan齝 ad
cpriv_ehost=Kay齪 ya da yanl makine

esql=SQL $1 hata olu⺶u : $2
perms_ecannot=輟inleri de餴⺶irmenize izin verilmedi
perms_edb=Sadece kendi veritabanlar齨齴齨 haklar齨 de餴⺶irmek i鏸n izininiz vard齬.

acl_dbs=Veritabanlar齨 bu kullan齝 y鰊etebilir
acl_create=Yeni veritaban olu⺶urabilsin?
acl_delete=Veritabanlar齨 b齬akabilsin?
acl_stop=MySQL sunucusunu durdurup baatabilsin?
acl_perms=輟inleri de餴⺶irebilsin?
acl_only=Sadece y鰊etilen veritabanlar i鏸n
acl_login=MYSQL'e bu kullan齝 olarak ba餷an
acl_user_def=Mod黮 Yap齦and齬mas齨daki kullan齝 ad
acl_user=Kullan齝 ad
acl_pass=辤fre

log_start=Mysql Sunucusu baat齦d
log_stop=Mysql sunucusu durduruldu
log_db_create=$1 veritaban olu⺶uruldu
log_db_delete=$1 veritaban silindi
log_table_create=$2 veritaban齨daki $1 tablosu olu⺶uruldu
log_table_delete=$2 veritaban齨daki $1 tablosu silindi
log_field_create=$3 veritaban齨daki $2'ye $1 $4 alanlar eklendi
log_field_modify=$3 veritaban齨daki $2'ye $1 $4 alanlar de餴⺶irildi
log_field_delete=$3 veritaban齨daki $2'den $1 silindi
log_data_create=$3 veritaban齨daki $2 tablosuna kolon eklendi
log_data_modify=$3 veritaban齨daki $2 tablosunun $1 kolonu de餴⺶irildi
log_data_delete=$3 veritaban齨daki $2 tablosunun $1 kolonu silindi
log_exec=$1 veritaban齨daki SQL 鏰lt齬齦d
log_exec_l=$1 veritaban齨daki SQL komutu $2 komutu 鏰lt齬齦d
log_user_create=Makine $2, kullan齝 $1 i鏸n izinler olu⺶uruldu
log_user_delete=Makine $2, kullan齝 $1 i鏸n izinler silindi
log_user_modify=Makine $2, kullan齝 $1 i鏸n izinler de餴⺶irildi
log_perm_create=Makine $2, kullan齝 $1, veritaban i鏸n izinler olu⺶uruldu
log_perm_delete=Makine $2, kullan齝 $1, veritaban i鏸n izinler silindi
log_perm_modify=Makine $2, kullan齝 $1, veritaban i鏸n izinler de餴⺶irildi
log_host_create=Veritaban $3, makine $2 i鏸n izinler olu⺶uruldu
log_host_delete=Veritaban $3, makine $2 i鏸n izinler silindi
log_host_modify=Veritaban $3, makine $2 i鏸n izinler de餴⺶irildi
log_tpriv_create=Veritaban $3, tablo $4 i鏸n izinler olu⺶uruldu
log_tpriv_delete=Veritaban $3, tablo $4 i鏸n izinler silindi
log_tpriv_modify=Veritaban $3, tablo $4 i鏸n izinler de餴⺶irildi
log_tpriv_create_l=Makine $2, kullan齝 $1, veritaban $3, tablo $4 i鏸n izinler olu⺶uruldu
log_tpriv_delete_l=Makine $2, kullan齝 $1, veritaban $3, tablo $4 i鏸n izinler silindi
log_tpriv_modify_l=Makine $2, kullan齝 $1, veritaban $3, tablo $4 i鏸n izinler de餴⺶irildi
log_cpriv_create=Tablo $4, alan $5 i鏸n izinler olu⺶uruldu
log_cpriv_delete=Tablo $4, alan $5 i鏸n izinler silindi
log_cpriv_modify=Tablo $4, alan $5 i鏸n izinler de餴⺶irildi
log_cpriv_create_l=Makine $2, kullan齝 $1, veritaban $3, tablo $4, alan $5 i鏸n izinler olu⺶uruldu 
log_cpriv_delete_l=Makine $2, kullan齝 $1, veritaban $3, tablo $4, alan $5 i鏸n izinler silindi
log_cpriv_modify_l=Makine $2, kullan齝 $1, veritaban $3, tablo $4, alan $5 i鏸n izinler de餴⺶irildi

log_anon=anonymous
log_any=herhangi

07070100012f0d000081a40000000000000002000000013ac038a900002278000000200000000000000000000000000000001700000003reloc/mysql/lang/zh_CN    index_title=MySQL 数据库服务器
index_notrun=在你的系统上没有运行 MySQL - 不能检索数据库列表.    
index_start=启动 MySQL 服务器
index_startmsg=点击这个按钮,使用命令$1启动系统上的MySQL数据库服务器, 只有数据库启动后, webmin 模块才能管理数据库.
index_nopass=为了管理你的数据库，webmin 需要知道 MySQL 管理员的登录名以及口令。请在下面输入管理员的用户名(通常是<tt>root</tt>) 和口令。

index_ltitle=MySQL 登录
index_login=登录
index_pass=口令
index_clear=清除
index_stop=停止MySQL服务器
index_stopmsg=点击这个按钮，停止在你系统上的MySQL数据库服务器。这将会阻止任意用户或程序访问数据库，包括这个webmin模块..

index_dbs=MySQL数据库
index_add=创建新的数据库
index_global=全局选项
index_return=数据库列表
index_eadmin=在你的系统上没有发现MySQL管理程序$1.可能MySQL数据库没有正确安装,或者你的模块配置不正确.
index_esql=在你的系统中没有发现MySQL，也许没有安装，或者你的模块配置不正确.     
index_ever=MySQL客户端程序$1的版本不正确.Webmin仅支持MySQL版本3.
index_nouser=你的Webmin帐号被设置为用户 $1,并连接到MySQL数据库,但是该用户已经不能够存取任意资源.



login_err=登录失败
login_ecannot=你不允许设置数据库登录的权限
login_elogin=丢失管理登录  
login_epass=错误的管理员用户名或口令

stop_err=停止数据库失败
start_err=启动数据库失败

dbase_title=编辑数据库
dbase_tables=数据表
dbase_add=新建一个新的表
dbase_drop=删除数据库
dbase_exec=执行SQL语句
dbase_none=这个数据库中没有表.
dbase_fields=域:
dbase_return=数据表列表
dbase_ecannot=你没有编辑该数据库的权限

ddrop_err=删除数据库失败
ddrop_title=删除数据库
ddrop_rusure=你确定删除数据库$1？包含的$3行数据的表$2将被删除
ddrop_mysql=因为这是一个主数据库，删除它将可能使你的MySQL服务器不能使用
ddrop_ok=删除数据库

table_title=编辑数据表
table_title2=创建新表
table_header=在数据库中$2中的表$1
table_field=域名
table_type=类型
table_null=允许为空？
table_key=主键
table_default=默认值
table_extra=附加
table_pri=基本
table_mul=索引
table_none=空
table_add=增加域,类型为:
table_return=域列表
table_data=查看数据
table_drop=删除表
table_name=表名
table_initial=初始化域
table_header2=新表选项
table_err=创建表失败
table_ename=丢失或者无效表名
table_efield='$1'不是有效域名
table_etype=丢失域$1的类型长度
table_esize=丢失域$1类型大小
table_enone=没有初始输入的域

tdrop_err=删除数据库失败
tdrop_title=删除表
tdrop_rusure=你确定要删除数据库 $2 中的表 $1 ？$3行数据将被删除.
tdrop_ok=删除表

field_title1=增加域
field_title2=修改域
field_in=在数据库$2的表$1中
field_header=域参数
field_name=域名
field_type=数据类型
field_size=类型宽度
field_enum=枚举值
field_dual=宽度和小数的位数
field_opts=类型选项
field_auto=自动增量?
field_none=无
field_unsigned=无符号
field_zerofill=用0填充
field_ascii=大小写不敏感
field_binary=大小写敏感
field_null=允许空
field_default=缺省值
field_key=主键的一部分？
field_err=存储域失败
field_esize=$1不是一个有效的域长度
field_eenum=没有列举输入的数据
field_efield=$1不是有效域名
field_ekey=主键不能为空

view_title=数据表
view_pos=$3的$1行到$2行
view_none=这个表中没有数据
view_edit=编辑选择的行
view_new=增加行
view_delete=删除选择的行
view_nokey=表中的数据不能编辑因为没有主键.
view_all=选择所有
view_invert=翻转选择

users_title=用户权限
users_user=用户
users_host=主机
users_pass=加密口令
users_perms=权限
users_add=创新新用户
users_priv3=选择
users_priv4=插入
users_priv5=更新
users_priv6=删除
users_priv7=创建
users_priv8=删除
users_priv9=重置
users_priv10=关闭
users_priv11=进程
users_priv12=文件
users_priv13=授权
users_priv14=参考
users_priv15=索引
users_priv16=替换
users_all=所有
users_anon=匿名
users_none=无
users_return=用户列表

user_title1=创建用户
user_title2=编辑用户
user_header=MySQL用户详细
user_user=用户名
user_all=匿名用户
user_pass=口令
user_leave=不改变
user_none=没有
user_any=任意
user_set=设置到..
user_host=主机
user_perms=权限
user_priv3=选择数据表
user_priv4=插入数据表
user_priv5=根性数据表
user_priv6=删除数据表
user_priv7=创建数据表
user_priv8=删除数据表
user_priv9=重载授权
user_priv10=关闭数据库
user_priv11=管理进程
user_priv12=文件操作
user_priv13=授权优先级
user_priv14=参考操作
user_priv15=管理索引
user_priv16=替换表
user_err=存放用户失败
user_euser=丢失或者无效主机名
user_ehost=丢失或无效允许主机

dbs_title=数据库权限
dbs_db=数据库
dbs_user=用户
dbs_host=主机
dbs_perms=权限
dbs_anon=匿名
dbs_any=任意
dbs_empty=没有数据库权限定义.
dbs_hosts=来自主机权限
dbs_add=创建新的数据库权限
dbs_priv3=选择
dbs_priv4=插入
dbs_priv5=更新
dbs_priv6=删除
dbs_priv7=创建
dbs__priv8=删除
dbs_priv9=授权
dbs_priv10=参考
dbs_priv11=索引
dbs_priv12=改变
dbs_all=所有
dbs_none=无
dbs_return=数据库权限

db_title1=创建数据库权限
db_title2=编辑数据库权限
db_header=数据库权限选项
db_db=数据库
db_user=用户名
db_anon=匿名用户
db_host=主机
db_hosts=来自主机权限
db_any=任意
db_perms=权限
db_priv3=选择数据表
db_priv4=插入数据表
db_priv5=更新数据表
db_priv6=删除表
db_priv7=创建表
db_priv8=删除数据库
db_priv9=重新授权
db_priv10=关闭数据库
db_priv11=管理进程
db_priv12=文件操作
db_priv13=授权权限
db_priv14=参考操作
db_priv15=管理索引
db_priv16=转换表
db_err=保存数据库权限失败
db_euser=丢失或者无效用户名
db_ehost=丢失或者无效主机名
db_edb=丢失或者无效数据库名

hosts_title=主机权限
hosts_db=数据库
hosts_host=主机
hosts_perms=权限
hosts_any=任意
hosts_all=所有
hosts_none=无
hosts_add=创建新的主机权限
hosts_empty=没有定义主机权限

host_title1=创建主机权限
host_title2=编辑主机权限
host_header=主机权限选项
host_db=数据库
host_any=任意
host_host=主机
host_perms=权限

newdb_title=创建数据库
newdb_header=新的数据库参数
newdb_db=数据库名
newdb_table=初始化数据表
newdb_none=无
newdb_struct=初始化表结构
newdb_err=创建数据库失败
newdb_edb=丢失或无效数据库名字
newdb_ecannot=你无权创建数据库

exec_title=执行SQL
exec_header=在数据库 $1 下输入SQL命令并执行..
exec_exec=执行
exec_err=执行SQL失败
exec_out=从SQL命令 $1 输出..
exec_none=没有数据返回

tprivs_title=表权限
tprivs_table=表
tprivs_db=数据库
tprivs_host=主机
tprivs_user=用户
tprivs_privs1=表权限
tprivs_privs2=域权限
tprivs_all=所有
tprivs_anon=匿名
tprivs_add=在数据库中增加新权限:
tprivs_norows=没有定义表权限
tprivs_return=表允许
tprivs_none=无

tpriv_title1=创建表权限
tpriv_title2=编辑表权限
tpriv_header=表权限选项
tpriv_db=数据库
tpriv_table=表
tpriv_user=用户名
tpriv_host=主机
tpriv_perms1=表权限
tpriv_perms2=域权限
tpriv_any=任意
tpriv_anon=匿名用户
tpriv_err=存放表权限失败
tpriv_etable=没有选择表
tpriv_euser=丢失或者无效用户名
tpriv_ehost=丢失或者无效主机

cprivs_title=域权限
cprivs_field=域
cprivs_table=表
cprivs_db=数据库
cprivs_host=主机
cprivs_user=用户
cprivs_privs=权限
cprivs_all=所有
cprivs_anon=匿名
cprivs_add=在数据库或表中增加新权限:
cprivs_norows=没有域权限定义
cprivs_return=域权限
cprivs_none=没有
 
cpriv_title1=创建域权限
cpriv_title2=编辑域权限
cpriv_header=域权限选项
cpriv_db=数据库
cpriv_table=表
cpriv_field=域
cpriv_user=用户名
cpriv_host=主机
cpriv_perms=权限
cpriv_any=任意
cpriv_anon=匿名用户
cpriv_err=存放域权限失败
cpriv_etable=没有选择域
cpriv_euser=丢失或者无效用户名
cpriv_ehost=丢失或者无效主机

esql=SQL $1 失败:$2
perms_ecannot=你无权编辑权限
perms_edb=你只能编辑你自己的数据库的权限

acl_dbs=这个用户能管理数据库
acl_dall=所有数据库
acl_dsel=选择..
acl_create=是否创建新数据库吗？
acl_delete=是否删除数据库?
acl_stop=是否停止/启动 MySQL 服务？
acl_perms=能否编辑权限？
acl_only=只是为了管理数据库
acl_login=登录到 MYSQL 以
acl_user_def=来自模块配置的用户名
acl_user=用户名
acl_pass=口令

log_start=启动MySQL服务器
log_stop=停止MySQL服务器
log_db_create=创建数据库$1
log_db_delete=删除数据库$1
log_table_create=在数据库$2中创建表$1
log_table_delete=从数据库$2中删除$1
log_field_create=在数据库$3中添加域$1 $4 到 $2
log_field_modify=在数据库$3中修改$2中的域$1 $4
log_field_delete=在数据库$3中从$2域中删除域$1
log_data_create=在数据库$3的表$2中添加一行
log_data_modify=在数据库$3的表$2中修改$1行
log_data_delete=在数据库$3中从表$2中删除$1行
log_exec=在数据库$1中执行SQL
log_exec_l=在数据库$1中执行SQL命令$2
log_user_create=为主机$2,用户$1创建perms
log_user_delete=为主机$2,用户$1删除perms
log_user_modify=为主机$2,用户$1修改perms
log_perm_create=为主机$2,用户$1,数据库$3创建perms
log_perm_delete=为主机$2,用户$1,数据库$3删除perms
log_perm_modify=为主机$2,用户$1,数据库$3修改perms
log_host_create=为主机$2,数据库$3创建perms
log_host_delete=为主机$2,数据库$3删除perms
log_host_modify=为主机$2,数据库$3修改perms
log_tpriv_create=为数据库$3,表$4创建perms
log_tpriv_delete=为数据库$3,表$4删除perms
log_tpriv_modify=为数据库$3,表$4修改perms
log_tpriv_create_l=为主机$2,用户$1,数据库$3,表$4创建perms
log_tpriv_delete_l=为主机$2,用户$1,数据库$3,表$4删除perms
log_tpriv_modify_l=为主机$2,用户$1,数据库$3,表$4修改perms
log_cpriv_create=为表$4,域$5创建perms
log_cpriv_delete=为表$4,域$5删除perms
log_cpriv_modify=为表$4,域$5修改perms
log_cpriv_create_l=为主机$2,用户$1,数据库$3,表$4,域$5创建perms
log_cpriv_delete_l=为主机$2,用户$1,数据库$3,表$4,域$5删除perms
log_cpriv_modify_l=为主机$2,用户$1,数据库$3,表$4,域$5修改perms
log_anon=匿名
log_any=任意
07070100012f0e000081a40000000000000002000000013ac038a800001cbb000000200000000000000000000000000000001c00000003reloc/mysql/lang/zh_TW.Big5   index_title=MySQL 戈畐狝竟
index_notrun=MySQL ⊿Τ眤狝竟磅︽ - 礚猭钡Μ戈畐.
index_start=币笆 MySQL 狝竟
index_startmsg=秙ノ㏑ $1 币笆眤╰参 MySQL 狝竟. 埃獶 MySQL 戈畐竒币笆, 玥硂 Webmin 家舱礚猭恨瞶戈畐.
index_nopass=Webmin 惠璶笵眤 MySQL 恨瞶嘿籔盞絏獽恨ミ眤戈畐. 叫块眤恨瞶嘿 (硄盽琌 <tt>root</tt>) 籔盞絏.
index_ltitle=祅 MySQL
index_login=ㄏノ嘿
index_pass=盞絏
index_clear=睲埃
index_stop=氨ゎ MySQL 狝竟
index_stopmsg=硂秙氨ゎ眤狝竟 MySQL 戈畐狝竟. 硂盢ňゎヴㄏノ┪莱ノ祘Α硂戈畐, 硂 Webmin 家舱.
index_dbs=MySQL 戈畐
index_add=ミ穝戈畐
index_global=办匡兜
index_return=戈畐
index_eadmin=眤╰参тぃ MySQL 恨瞶祘Α $1. 琌 MySQL ﹟ゼ砆杆┪琌眤<a href='$2'>家舱舱篈</a>琌ぃタ絋.
index_esql=眤╰参тぃ MySQL め狠祘Α $1. 琌 MySQL ﹟ゼ砆杆┪琌眤<a href='$2'>家舱舱篈</a>琌ぃタ絋.
index_ever=MySQL め狠祘Α $1 ぃ琌タ絋セ. Webmin や穿 MySQL 材.

login_err=祅ア毖
login_ecannot=眤ぃ砆す砛舱篈硂戈畐祅
login_elogin=框ア恨瞶祅
login_epass=岿粇恨瞶嘿┪盞絏

stop_err=礚猭氨ゎ戈畐
start_err=礚猭币笆戈畐

dbase_title=絪胯戈畐
dbase_tables=戈
dbase_add=ミ穝戈
dbase_drop=メ斌戈畐
dbase_exec=磅︽ SQL 琩高
dbase_none=硂戈畐⊿Τ戈.
dbase_return=戈
dbase_ecannot=眤ぃ砆す砛絪胯硂戈畐

ddrop_err=礚猭メ斌戈畐
ddrop_title=メ斌戈畐
ddrop_rusure=眤絋﹚璶メ斌戈畐 $1 盾? $2 戈 $3 掸戈常穦砆埃.
ddrop_mysql=硂琌恨瞶戈畐, メ斌ウ盢穦ㄏ MySQL 狝竟礚猭ㄏノ!
ddrop_ok=絋﹚メ斌戈畐

table_title=絪胯戈
table_title2=ミ戈
table_header=戈 $1 戈畐 $2
table_field=逆嘿
table_type=摸
table_null=琌す砛フ?
table_key=龄
table_default=箇砞
table_extra=肂
table_pri=璶
table_mul=ま
table_none=礚
table_add=糤穝逆ㄏノ摸
table_return=逆
table_data=浪跌戈
table_drop=メ斌戈
table_name=戈嘿
table_initial=﹍て逆
table_header2=穝戈匡兜
table_err=ミ戈ア毖
table_ename=框ア┪岿粇戈嘿
table_efield='$1' ぃ琌Τ逆嘿
table_etype=框ア逆 $1 摸
table_esize=框ア逆 $1 摸
table_enone=⊿Τ块﹍て逆

tdrop_err=メ斌戈ア毖
tdrop_title=メ斌戈
tdrop_rusure=眤絋﹚璶メ斌戈畐 $2 い戈 $1 盾? $3 掸戈盢穦砆埃.
tdrop_ok=絋﹚メ斌戈

field_title1=糤逆
field_title2=跑逆
field_in=戈 $1 籔戈畐 $2
field_header=逆把计
field_name=逆嘿
field_type=戈摸
field_size=摸
field_enum=羭计
field_dual=糴籔计计
field_opts=摸匡兜
field_auto=琌笆患糤?
field_none=礚
field_unsigned=礚才腹
field_zerofill=ノ 0 恶骸
field_ascii=ぃ跋だ糶
field_binary=跋だ糶
field_null=琌す砛フ?
field_default=箇砞计
field_err=礚猭纗逆
field_esize='$1' ぃ琌Τ逆
field_eenum=⊿Τ块羭计
field_efield='$1' ぃ琌Τ逆嘿

view_title=戈戈
view_pos= $1  $2  $3
view_none=硂戈⊿Τ戈

users_title=ㄏノ舦
users_user=ㄏノ嘿
users_host=诀
users_pass=絪絏盞絏
users_perms=舦
users_add=ミ穝ㄏノ
users_priv3=匡拒
users_priv4=础
users_priv5=穝
users_priv6=埃
users_priv7=ミ
users_priv8=メ斌
users_priv9=弄
users_priv10=闽超
users_priv11=祘
users_priv12=郎
users_priv13=す砛
users_priv14=把σ
users_priv15=ま
users_priv16=跑
users_all=场
users_anon=拔ㄏノ
users_none=礚
users_return=ㄏノ

user_title1=ミㄏノ
user_title2=絪胯ㄏノ
user_header=MySQL ㄏノ冈灿戈
user_user=ㄏノ嘿
user_all=拔ㄏノ
user_pass=盞絏
user_leave=ぃ璶э跑
user_none=礚
user_any=ヴ
user_set=砞﹚Θ...
user_host=诀
user_perms=舦
user_priv3=匡拒戈戈
user_priv4=础戈戈
user_priv5=穝戈戈
user_priv6=埃戈戈
user_priv7=ミ戈
user_priv8=メ斌戈
user_priv9=穝弄甭舦
user_priv10=闽超戈畐
user_priv11=恨瞶祘
user_priv12=郎巨
user_priv13=す砛疭舦
user_priv14=把σ巨
user_priv15=恨瞶ま
user_priv16=跑戈
user_err=礚猭纗ㄏノ
user_euser=框ア┪岿粇ㄏノ
user_ehost=框ア┪岿粇す砛诀

dbs_title=戈畐舦
dbs_db=戈畐
dbs_user=ㄏノ嘿
dbs_host=诀
dbs_perms=舦
dbs_anon=拔ㄏノ
dbs_any=场
dbs_empty=⊿Τ﹚竡戈畐舦.
dbs_hosts=眖诀舦
dbs_add=ミ穝戈畐舦
dbs_priv3=匡拒
dbs_priv4=础
dbs_priv5=穝
dbs_priv6=埃
dbs_priv7=ミ
dbs_priv8=メ斌
dbs_priv9=す砛
dbs_priv10=把σ
dbs_priv11=ま
dbs_priv12=跑
dbs_all=场
dbs_none=礚
dbs_return=戈畐舦

db_title1=ミ戈畐舦
db_title2=絪胯戈畐舦
db_header=戈畐舦匡兜
db_db=戈畐
db_user=ㄏノ嘿
db_anon=拔ㄏノ
db_host=诀
db_hosts=眖诀舦
db_any=ヴ
db_perms=舦
db_priv3=匡拒戈戈
db_priv4=础戈戈
db_priv5=穝戈戈
db_priv6=埃戈戈
db_priv7=ミ戈
db_priv8=メ斌戈
db_priv9=穝弄甭舦
db_priv10=闽超戈畐
db_priv11=恨瞶祘
db_priv12=郎巨
db_priv13=す砛疭舦
db_priv14=把σ巨
db_priv15=恨瞶ま
db_priv16=跑戈
db_err=礚猭纗戈畐舦
db_euser=框ア┪岿粇ㄏノ
db_ehost=框ア┪岿粇诀嘿
db_edb=框ア┪岿粇戈畐嘿

hosts_title=诀舦
hosts_db=戈畐
hosts_host=诀
hosts_perms=舦
hosts_any=ヴ
hosts_all=场
hosts_none=礚
hosts_add=ミ诀舦
hosts_empty=⊿Τ﹚竡诀舦

host_title1=ミ诀舦
host_title2=絪胯诀舦
host_header=诀舦匡兜
host_db=戈畐
host_any=ヴ
host_host=诀
host_perms=舦

newdb_title=ミ戈畐
newdb_header=穝戈畐匡兜
newdb_db=戈畐嘿
newdb_table=﹍て戈
newdb_none=礚
newdb_struct=﹍て戈挡篶
newdb_err=礚猭ミ戈畐
newdb_edb=框ア┪岿粇戈畐嘿
newdb_ecannot=眤ぃ砆す砛ミ戈畐

exec_title=磅︽ SQL 琩高
exec_header=块 SQL 磅︽戈畐 $1 ...
exec_exec=磅︽
exec_err=礚猭磅︽ SQL 琩高
exec_out=眖 SQL  $1 块...
exec_none=⊿Τ戈砆肚

tprivs_title=戈舦
tprivs_table=戈
tprivs_db=戈畐
tprivs_host=诀
tprivs_user=ㄏノ嘿
tprivs_privs1=戈舦
tprivs_privs2=逆舦
tprivs_all=场
tprivs_anon=拔ㄏノ
tprivs_add=糤穝舦戈畐:
tprivs_norows=⊿Τ﹚竡戈舦
tprivs_return=戈舦
tprivs_none=礚

tpriv_title1=ミ戈舦
tpriv_title2=絪胯戈舦
tpriv_header=戈舦匡兜
tpriv_db=戈畐
tpriv_table=戈
tpriv_user=ㄏノ嘿
tpriv_host=诀
tpriv_perms1=戈舦
tpriv_perms2=逆舦
tpriv_any=ヴ
tpriv_anon=拔ㄏノ
tpriv_err=礚猭纗戈舦
tpriv_etable=⊿Τ匡拒戈
tpriv_euser=框ア┪岿粇ㄏノ嘿
tpriv_ehost=框ア┪岿粇诀

cprivs_title=逆舦
cprivs_field=逆
cprivs_table=戈
cprivs_db=戈畐
cprivs_host=诀
cprivs_user=ㄏノ嘿
cprivs_privs=舦
cprivs_all=场
cprivs_anon=拔ㄏノ
cprivs_add=糤穝舦戈畐籔戈:
cprivs_norows=⊿Τ﹚竡逆舦
cprivs_return=逆舦
cprivs_none=礚

cpriv_title1=ミ逆舦
cpriv_title2=絪胯逆舦
cpriv_header=逆舦匡兜
cpriv_db=戈畐
cpriv_table=戈
cpriv_field=逆
cpriv_user=ㄏノ嘿
cpriv_host=诀
cpriv_perms=舦
cpriv_any=ヴ
cpriv_anon=拔ㄏノ
cpriv_err=礚猭纗逆舦
cpriv_etable=⊿Τ匡拒逆
cpriv_euser=框ア┪岿粇ㄏノ嘿
cpriv_ehost=框ア┪岿粇诀

esql=SQL $1 ア毖: $2
perms_ecannot=眤ぃ砆す砛絪胯舦

acl_dbs=硂ㄏノ恨瞶戈畐
acl_create=琌ミ穝戈畐?
acl_delete=琌メ斌戈畐?
acl_stop=琌氨ゎ籔币笆 MySQL 狝竟?
acl_perms=琌絪胯舦?

 0707010000d258000081e40000000000000002000000013ac038ae00000672000000200000000000000000000000000000001c00000003reloc/mysql/list_cprivs.cgi   #!/usr/local/bin/perl
# list_cprivs.cgi
# Display a list of column priviliges

require './mysql-lib.pl';
$access{'perms'} || &error($text{'perms_ecannot'});
&header($text{'cprivs_title'}, "", "cprivs");
print "<hr>\n";

$d = &execute_sql($master_db, "select * from columns_priv");
if (@{$d->{'data'}}) {
	print "<table border>\n";
	print "<tr $tb> <td><b>$text{'cprivs_field'}</b></td>\n",
	      "<td><b>$text{'cprivs_table'}</b></td>\n",
	      "<td><b>$text{'cprivs_db'}</b></td>\n",
	      "<td><b>$text{'cprivs_host'}</b></td>\n",
	      "<td><b>$text{'cprivs_user'}</b></td>\n",
	      "<td><b>$text{'cprivs_privs'}</b></td> </tr>\n";
	$i = -1;
	foreach $u (@{$d->{'data'}}) {
		$i++;
		next if ($access{'perms'} == 2 && !&can_edit_db($u->[1]));
		print "<tr $cb>\n";
		print "<td><a href='edit_cpriv.cgi?idx=$i'>$u->[4]</a></td>\n";
		print "<td>$u->[3]</td>\n";
		print "<td>$u->[1]</td>\n";
		print "<td>", $u->[0] eq '' || $u->[0] eq '%' ?
			      $text{'cprivs_all'} : $u->[0],"</td>\n";
		print "<td>",$u->[2] ? $u->[2] : $text{'cprivs_anon'},"</td>\n";
		print "<td>",!$u->[6] ? $text{'cprivs_none'} :
			     join("&nbsp;| ",split(/[, ]+/, $u->[6])),"</td>\n";
		print "</tr>\n";
		}
	print "</table>\n";
	}
else {
	print "<p><b>$text{'cprivs_norows'}</b><p>\n";
	}
print "<form action=edit_cpriv.cgi>\n";
print "<input type=submit value='$text{'cprivs_add'}'>\n";
print "<select name=table>\n";
foreach $d (&list_databases()) {
	if ($access{'perms'} == 1 || &can_edit_db($d)) {
		foreach $t (&list_tables($d)) {
			print "<option>$d.$t\n";
			}
		}
	}
print "</select></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

  0707010000d259000081e40000000000000002000000013ac038aa0000056e000000200000000000000000000000000000001900000003reloc/mysql/list_dbs.cgi  #!/usr/local/bin/perl
# list_dbs.cgi
# Display database-level permissions

require './mysql-lib.pl';
$access{'perms'} || &error($text{'perms_ecannot'});
&header($text{'dbs_title'}, "", "dbs");
print "<hr>\n";

$d = &execute_sql($master_db, "select * from db");
if (@{$d->{'data'}}) {
	print "<table border>\n";
	print "<tr $tb> <td><b>$text{'dbs_db'}</b></td>\n",
	      "<td><b>$text{'dbs_user'}</b></td>\n",
	      "<td><b>$text{'dbs_host'}</b></td>\n",
	      "<td><b>$text{'dbs_perms'}</b></td> </tr>\n";
	}
else {
	print "<p> <b>$text{'dbs_empty'}</b> <p>\n";
	}
$i = -1;
foreach $u (@{$d->{'data'}}) {
	$i++;
	next if ($access{'perms'} == 2 && !&can_edit_db($u->[1]));
	print "<tr $cb>\n";
	print "<td><a href='edit_db.cgi?idx=$i'>",
		$u->[1] eq '%' || $u->[1] eq '' ? $text{'dbs_any'} : $u->[1],
	 	"</a></td>\n";
	print "<td>", $u->[2] eq '' ? $text{'dbs_anon'} : $u->[2],"</td>\n";
	print "<td>",$u->[0] eq '%' ? $text{'dbs_any'} :
		     $u->[0] eq '' ? $text{'dbs_hosts'} : $u->[0],"</td>\n";
	local @priv;
	for($j=3; $j<=12; $j++) {
		push(@priv, $text{"dbs_priv$j"}) if ($u->[$j] eq 'Y');
		}
	printf "<td>%s</td>\n",
		scalar(@priv) == 10 ? $text{'dbs_all'} :
		!@priv ? $text{'dbs_none'} : join("&nbsp;| ", @priv);
	print "</tr>\n";
	}
print "</table>\n";
print "<a href='edit_db.cgi?new=1'>$text{'dbs_add'}</a> <p>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

  0707010000d25a000081e40000000000000002000000013ac038aa000004fd000000200000000000000000000000000000001b00000003reloc/mysql/list_hosts.cgi    #!/usr/local/bin/perl
# list_hosts.cgi
# Display host-level permissions

require './mysql-lib.pl';
$access{'perms'} || &error($text{'perms_ecannot'});
&header($text{'hosts_title'}, "");
print "<hr>\n";

$d = &execute_sql($master_db, "select * from host");
if (@{$d->{'data'}}) {
	print "<table border>\n";
	print "<tr $tb> <td><b>$text{'hosts_db'}</b></td>\n",
	      "<td><b>$text{'hosts_host'}</b></td>\n",
	      "<td><b>$text{'hosts_perms'}</b></td> </tr>\n";
	}
else {
	print "<p> <b>$text{'hosts_empty'}</b> <p>\n";
	}
$i = -1;
foreach $u (@{$d->{'data'}}) {
	$i++;
	next if ($access{'perms'} == 2 && !&can_edit_db($u->[1]));
	print "<tr $cb>\n";
	print "<td><a href='edit_host.cgi?idx=$i'>",
		$u->[1] eq '%' || $u->[1] eq '' ? $text{'hosts_any'} : $u->[1],
	 	"</a></td>\n";
	print "<td>",$u->[0] eq '%' || $u->[0] eq '' ? $text{'hosts_any'}
						     : $u->[0],"</td>\n";
	local @priv;
	for($j=2; $j<=11; $j++) {
		push(@priv, $text{"hosts_priv$j"}) if ($u->[$j] eq 'Y');
		}
	printf "<td>%s</td>\n",
		scalar(@priv) == 10 ? $text{'hosts_all'} :
		!@priv ? $text{'hosts_none'} : join("&nbsp;| ", @priv);
	print "</tr>\n";
	}
print "</table>\n";
print "<a href='edit_host.cgi?new=1'>$text{'hosts_add'}</a> <p>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

   0707010000d25b000081e40000000000000002000000013ac038ae00000690000000200000000000000000000000000000001c00000003reloc/mysql/list_tprivs.cgi   #!/usr/local/bin/perl
# list_tprivs.cgi
# Display a list of table priviliges

require './mysql-lib.pl';
$access{'perms'} || &error($text{'perms_ecannot'});
&header($text{'tprivs_title'}, "", "tprivs");
print "<hr>\n";

$d = &execute_sql($master_db, "select * from tables_priv");
if (@{$d->{'data'}}) {
	print "<table border>\n";
	print "<tr $tb> <td><b>$text{'tprivs_table'}</b></td>\n",
	      "<td><b>$text{'tprivs_db'}</b></td>\n",
	      "<td><b>$text{'tprivs_host'}</b></td>\n",
	      "<td><b>$text{'tprivs_user'}</b></td>\n",
	      "<td><b>$text{'tprivs_privs1'}</b></td>\n",
	      "<td><b>$text{'tprivs_privs2'}</b></td> </tr>\n";
	$i = -1;
	foreach $u (@{$d->{'data'}}) {
		$i++;
		next if ($access{'perms'} == 2 && !&can_edit_db($u->[1]));
		print "<tr $cb>\n";
		print "<td><a href='edit_tpriv.cgi?idx=$i'>$u->[3]</a></td>\n";
		print "<td>$u->[1]</td>\n";
		print "<td>", $u->[0] eq '' || $u->[0] eq '%' ?
			      $text{'tprivs_all'} : $u->[0],"</td>\n";
		print "<td>",$u->[2] ? $u->[2] : $text{'tprivs_anon'},"</td>\n";
		print "<td>",!$u->[6] ? $text{'tprivs_none'} :
			     join("&nbsp;| ",split(/[, ]+/, $u->[6])),"</td>\n";
		print "<td>",!$u->[7] ? $text{'tprivs_none'} :
			     join("&nbsp;| ",split(/[, ]+/, $u->[7])),"</td>\n";
		print "</tr>\n";
		}
	print "</table>\n";
	}
else {
	print "<p><b>$text{'tprivs_norows'}</b><p>\n";
	}
print "<form action=edit_tpriv.cgi>\n";
print "<input type=submit value='$text{'tprivs_add'}'>\n";
print "<select name=db>\n";
foreach $t (&list_databases()) {
	print "<option>$t\n" if ($access{'perms'} == 1 ||
				 &can_edit_db($t));
	}
print "</select></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

0707010000d25c000081e40000000000000002000000013ac038aa000004c4000000200000000000000000000000000000001b00000003reloc/mysql/list_users.cgi    #!/usr/local/bin/perl
# list_users.cgi
# Display a list of all database users

require './mysql-lib.pl';
$access{'perms'} == 1 || &error($text{'perms_ecannot'});
&header($text{'users_title'}, "", "users");
print "<hr>\n";

print "<table border>\n";
print "<tr $tb> <td><b>$text{'users_user'}</b></td>\n",
      "<td><b>$text{'users_host'}</b></td>\n",
      "<td><b>$text{'users_pass'}</b></td>\n",
      "<td><b>$text{'users_perms'}</b></td> </tr>\n";
$d = &execute_sql($master_db, "select * from user");
$i = 0;
foreach $u (@{$d->{'data'}}) {
	print "<tr $cb>\n";
	print "<td><a href='edit_user.cgi?idx=$i'>",
		$u->[1] ? $u->[1] : $text{'users_anon'},"</a></td>\n";
	print "<td>", $u->[0] eq '' || $u->[0] eq '%' ?
		      $text{'users_all'} : $u->[0],"</td>\n";
	print "<td>",$u->[2] ? $u->[2] : "<br>","</td>\n";
	local @priv;
	for($j=3; $j<=16; $j++) {
		push(@priv, $text{"users_priv$j"}) if ($u->[$j] eq 'Y');
		}
	printf "<td>%s</td>\n",
		scalar(@priv) == 14 ? $text{'users_all'} :
		!@priv ? $text{'users_none'} : join("&nbsp;| ", @priv);
	print "</tr>\n";
	$i++;
	}
print "</table>\n";
print "<a href='edit_user.cgi?new=1'>$text{'users_add'}</a> <p>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

0707010000d25d000081a40000000000000002000000013ac038ae000007ec000000200000000000000000000000000000001a00000003reloc/mysql/log_parser.pl # log_parser.pl
# Functions for parsing this module's logs

require './mysql-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p, $long) = @_;
if ($action eq 'stop') {
	return $text{'log_stop'};
	}
elsif ($action eq 'start') {
	return $text{'log_start'};
	}
elsif ($type eq 'db') {
	return &text("log_${type}_${action}", "<tt>$object</tt>");
	}
elsif ($type eq 'table') {
	return &text("log_${type}_${action}", "<tt>$object</tt>",
		     "<tt>$p->{'db'}</tt>");
	}
elsif ($type eq 'field') {
	$p->{'size'} =~ s/\s+$//;
	return &text("log_${type}_${action}", "<tt>$object</tt>",
		     "<tt>$p->{'table'}</tt>", "<tt>$p->{'db'}</tt>",
		     "<tt>$p->{'type'}$p->{'size'}</tt>");
	}
elsif ($type eq 'data') {
	return &text("log_${type}_${action}", "<tt>$object</tt>",
		     "<tt>$p->{'table'}</tt>", "<tt>$p->{'db'}</tt>");
	}
elsif ($action eq 'exec') {
	return &text($long ? 'log_exec_l' : 'log_exec', "<tt>$object</tt>",
		     "<tt>$p->{'cmd'}</tt>");
	}
elsif ($type eq 'user' || $type eq 'perm' || $type eq 'host' ||
       $type eq 'tpriv' || $type eq 'cpriv') {
	$p->{'user'} = $text{'log_anon'}
		if ($p->{'user'} eq '-' || $p->{'user'} eq '%');
	$p->{'db'} = $text{'log_any'}
		if ($p->{'db'} eq '-' || $p->{'db'} eq '%');
	$p->{'host'} = $text{'log_any'}
		if ($p->{'host'} eq '-' || $p->{'host'} eq '%');
	local $t = "log_${type}_${action}";
	if ($long && $text{$t.'_l'}) { $t .= '_l'; }
	return &text($t, "<tt>$p->{'user'}</tt>",
		     "<tt>$p->{'host'}</tt>", "<tt>$p->{'db'}</tt>",
		     "<tt>$p->{'table'}</tt>", "<tt>$p->{'field'}</tt>");
	}
elsif ($action eq 'backup') {
	return &text($long ? 'log_backup_l' : 'log_backup', "<tt>$object</tt>",
		     "<tt>$p->{'file'}</tt>");
	}
elsif ($action eq 'execfile') {
	return &text($p->{'mode'} ? 'log_execupload' : 'log_execfile',
		     "<tt>$p->{'file'}</tt>");
	}
else {
	return undef;
	}
}

0707010000d25e000081e40000000000000002000000013ac038a9000001dc000000200000000000000000000000000000001600000003reloc/mysql/login.cgi #!/usr/local/bin/perl
# login.cgi
# Save MySQL login and password

require './mysql-lib.pl';
&ReadParse();
&error_setup($text{'login_err'});
$access{'noconfig'} && &error($text{'login_ecannot'});
$in{'login'} || &error($text{'login_elogin'});
$config{'login'} = $in{'login'};
$config{'pass'} = $in{'pass'};
$authstr = &make_authstr();
if (&is_mysql_running() == -1) {
	&error($text{'login_epass'});
	}
&write_file("$module_config_directory/config", \%config);
&redirect("");

0707010000d25f000081a40000000000000002000000013ac038a80000015a000000200000000000000000000000000000001800000003reloc/mysql/module.info   name=MySQL
desc_pt=Servidor de base de dados MySQL
desc_tr=MySQL Veritaban Sunucusu
desc_es=Servidor de Base de Datos MySQL
desc_de=MySQL Datenbank Server
desc_sv=MySQL-databasserver
desc_pl=Serwer baz danych MySQL
category=servers
desc_zh_TW.Big5=MySQL 戈畐狝竟
desc=MySQL Database Server
risk=low medium high
desc_zh_CN=MySQL 数据库服务器
  0707010000d260000081a40000000000000002000000013ac038a800001257000000200000000000000000000000000000001900000003reloc/mysql/mysql-lib.pl  # mysql-lib.pl
# Common MySQL functions

do '../web-lib.pl';
&init_config();
$ENV{$gconfig{'ld_env'}} .= ':'.$config{'mysql_libs'};
%access = &get_module_acl();
$authstr = &make_authstr();
$master_db = 'mysql';

@type_list = ('tinyint', 'smallint', 'mediumint', 'int', 'bigint',
	    'float', 'double', 'decimal', 'date', 'datetime', 'timestamp',
	    'time', 'year', 'char', 'varchar', 'tinyblob', 'tinytext',
	    'blob', 'text', 'mediumblob', 'mediumtext', 'longblob', 'longtext',
	    'enum', 'set');

sub make_authstr
{
if ($access{'user'}) {
	return ($config{'sock'} ? " -S $config{'sock'}" : "").
	       ($config{'host'} ? " -h $config{'host'}" : "").
	       " -u '$access{'user'}'".
	       ($access{'pass'} ? " '-p$access{'pass'}'" : "");
	}
else {
	local ($l, $p);
	($l = $config{'login'}) =~ s/['\\]/\\$1/g;
	($p = $config{'pass'}) =~ s/(['\\])/\\$1/g;
	return ($config{'sock'} ? " -S $config{'sock'}" : "").
	       ($config{'host'} ? " -h $config{'host'}" : "").
	       ($config{'login'} ? " -u '$l'" : "").
	       ($config{'pass'} ? " '-p$p'" : "");
	}
}

# is_mysql_running()
# Returns 1 if mysql is running, 0 if not, or -1 if running but
# inaccessible without a password
sub is_mysql_running
{
local $out = `$config{'mysqladmin'} $authstr status 2>&1`;
return $out =~ /uptime/i ? 1 :
       $out =~ /denied|password/i ? -1 : 0;
}

# list_databases()
# Returns a list of all databases
sub list_databases
{
open(DBS, "$config{'mysqlshow'} $authstr |");
local $t = &parse_mysql_table(DBS);
close(DBS);
return map { $_->[0] } @{$t->{'data'}};
}

# list_tables(database)
# Returns a list of tables in some database
sub list_tables
{
if ($_[0] =~ /_/) {
	open(DBS, "$config{'mysqlshow'} $authstr $_[0] % |");
	}
else {
	open(DBS, "$config{'mysqlshow'} $authstr $_[0] |");
	}
local $t = &parse_mysql_table(DBS);
close(DBS);
return map { $_->[0] } @{$t->{'data'}};
}

# table_structure(database, table)
# Returns a list of hashes detailing the structure of a table
sub table_structure
{
local $s = &execute_sql($_[0], "desc $_[1]");
local (@rv, $r);
foreach $r (@{$s->{'data'}}) {
	push(@rv, { 'field' => $r->[0],
		    'type' => $r->[1],
		    'null' => $r->[2],
		    'key' => $r->[3],
		    'default' => $r->[4],
		    'extra' => $r->[5] });
	}
return @rv;
}

# execute_sql(database, command)
# Executes some SQL and returns the results
sub execute_sql
{
local $temp = &tempname();
open(TEMP, ">$temp");
print TEMP $_[1],"\n";
close(TEMP);
open(DBS, "$config{'mysql'} $authstr -t $_[0] <$temp 2>&1 |");
local $t = &parse_mysql_table(DBS);
close(DBS);
unlink($temp);
if ($t =~ /^ERROR[^:]*:(.*)/) {
	&error(&text('esql', "<tt>$_[1]</tt>", "<tt>$1</tt>"));
	}
return $t;
}

# execute_sql_logged(database, command)
sub execute_sql_logged
{
&additional_log('sql', $_[0], $_[1]);
return &execute_sql(@_);
}

# parse_mysql_table(handle)
# Given a filehandle, parses a text table in the format mysql uses
sub parse_mysql_table
{
local $fh = $_[0];
local ($line, $i, @edge);
do {
	# skip to table top
	$line = <$fh>;
	return $line if ($line =~ /^ERROR/);
	} while($line && $line !~ /^\+/);
for($i=0; $i<length($line); $i++) {
	push(@edge, $i) if (substr($line, $i, 1) eq '+');
	}
$line = <$fh>;		# skip first row of -'s
local @titles = &parse_mysql_line($line, \@edge);
$line = <$fh>;		# skip next row of -'s
local @data;
while(1) {
	$line = <$fh>;
	last if (!$line || $line !~ /^\|/);
	while($line !~ /\|\s+$/) {
		# Line has a return in it!
		$line .= <$fh>;
		}
	push(@data, [ &parse_mysql_line($line, \@edge) ]);
	}
return { 'titles' => \@titles,
	 'data' => \@data };
}

# parse_mysql_line(line, &edges)
sub parse_mysql_line
{
local @rv;
for($i=0; $i<@{$_[1]}-1; $i++) {
	local $w = substr($_[0], $_[1]->[$i]+1,
			  $_[1]->[$i+1] - $_[1]->[$i] - 2);
	$w =~ s/^\s+//;
	$w =~ s/\s+$//;
	$w =~ s/\\/\\\\/g;
	$w =~ s/\n/\\n/g;
	push(@rv, $w);
	}
return @rv;
}

sub can_edit_db
{
local $d;
return 1 if ($access{'dbs'} eq '*');
foreach $d (split(/\s+/, $access{'dbs'})) {
	return 1 if ($d eq $_[0]);
	}
return 0;
}

# split_table(&titles, &links, &col1, &col2, ...)
sub split_table
{
local $mid = int((@{$_[1]}+1) / 2);
local ($i, $j);
print "<table width=100%><tr>\n";
foreach $s ([0, $mid-1], [$mid, @{$_[1]}-1]) {
	print "<td width=50% valign=top><table border width=100%>\n";
	if ($s->[0] <= $s->[1]) {
		print "<tr $tb> ";
		foreach $t (@{$_[0]}) {
			print "<td><b>$t</b></td> ";
			}
		print "</tr>\n";
		}
	for($i=$s->[0]; $i<=$s->[1]; $i++) {
		print "<tr $cb>\n";
		print "<td><a href='$_[1]->[$i]'>$_[2]->[$i]</a></td>\n";
		for($j=3; $j<@_; $j++) {
			print "<td>$_[$j]->[$i]</td>\n";
			}
		print "</tr>\n";
		}
	print "</table></td>\n";
	}
print "</tr></table>\n";
}

1;

 0707010000d261000081e40000000000000002000000013ac038ae000004cd000000200000000000000000000000000000001600000003reloc/mysql/newdb.cgi #!/usr/local/bin/perl
# newdb.cgi
# Create a new database with one optional table

require './mysql-lib.pl';
&ReadParse();
$access{'create'} || &error($text{'newdb_ecannot'});
&error_setup($text{'newdb_err'});

$in{'db'} =~ /^[A-z0-9\.\-]+$/ || &error($text{'newdb_edb'});
if (!$in{'table_def'}) {
	$in{'table'} =~ /^\S+$/ || &error($text{'table_ename'});
	for($i=0; defined($in{"field_$i"}); $i++) {
		next if (!$in{"field_$i"});
		$in{"field_$i"} =~ /^\S+$/ ||
			&error(&text('table_efield', $in{"field_$i"}));
		$in{"type_$i"} || &error(&text('table_etype', $in{"field_$i"}));
		if ($in{"size_$i"}) {
			push(@fields, sprintf "%s %s(%s)",
			     $in{"field_$i"}, $in{"type_$i"}, $in{"size_$i"});
			}
		else {
			push(@fields, sprintf "%s %s",
			     $in{"field_$i"}, $in{"type_$i"});
			}
		}
	@fields || &error($text{'table_enone'});
	}
&execute_sql_logged($master_db, "create database $in{'db'}");
&webmin_log("create", "db", $in{'db'});
if (@fields) {
	$sql = "create table $in{'table'} (".join(",", @fields).")";
	&execute_sql_logged($in{'db'}, $sql);
	&webmin_log("create", "table", $in{'table'}, \%in);
	}
if ($access{'dbs'} ne '*') {
	$access{'dbs'} .= " $in{'db'}";
	&save_module_acl(\%access);
	}
&redirect("");

   0707010000d262000081e40000000000000002000000013ac038ae00000600000000200000000000000000000000000000001b00000003reloc/mysql/newdb_form.cgi    #!/usr/local/bin/perl
# newdb_form.cgi
# Display a form for creating a new database

require './mysql-lib.pl';
$access{'create'} || &error($text{'newdb_ecannot'});
&header($text{'newdb_title'}, "", "newdb_form");
print "<hr>\n";

print "<form action=newdb.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'newdb_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'newdb_db'}</b></td>\n";
print "<td><input name=db size=15></td> </tr>\n";

print "<tr> <td><b>$text{'newdb_table'}</b></td> <td>\n";
print "<input name=table_def type=radio value=1 checked> $text{'newdb_none'}\n";
print "<input name=table_def type=radio value=0>\n";
print "<input name=table size=20></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'newdb_struct'}</b></td>\n";
print "<td><table border>\n";
print "<tr $tb> <td><b>$text{'field_name'}</b></td> ",
      "<td><b>$text{'field_type'}</b></td> ",
      "<td><b>$text{'field_size'}</b></td> </tr>\n";
for($i=0; $i<4; $i++) {
	print "<tr $cb>\n";
	print "<td><input name=field_$i size=20></td>\n";
	print "<td><select name=type_$i>\n";
	print "<option selected>\n";
	foreach $t (@type_list) {
		print "<option>$t\n";
		}
	print "</select></td>\n";
	print "<td><input name=size_$i size=10></td>\n";
	print "</tr>\n";
	}
print "</table></td> </tr>\n";

print "<tr> <td colspan=2 align=right><input type=submit ",
      "value='$text{'create'}'></td> </tr>\n";

print "</table></td></tr></table></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

0707010000d263000081e40000000000000002000000013ac038ae00000a99000000200000000000000000000000000000001b00000003reloc/mysql/save_cpriv.cgi    #!/usr/local/bin/perl
# save_cpriv.cgi
# Save, update or delete field permissions

require './mysql-lib.pl';
&ReadParse();
$access{'perms'} || &error($text{'perms_ecannot'});

if ($in{'delete'}) {
	# Delete some permissions
	$access{'perms'} == 1 || &can_edit_db($in{'olddb'}) ||
		&error($text{'perms_edb'});
	&execute_sql_logged($master_db,
		"delete from columns_priv where user = '$in{'olduser'}' ".
		"and host = '$in{'oldhost'}' and db = '$in{'olddb'}' ".
		"and table_name = '$in{'oldtable'}' ".
		"and column_name = '$in{'oldfield'}'");
	}
else {
	# Validate inputs
	&error_setup($text{'cpriv_err'});
	$in{'field'} || &error($text{'cpriv_efield'});
	$in{'user_def'} || $in{'user'} =~ /^\S+$/ ||
		&error($text{'cpriv_euser'});
	$in{'host_def'} || $in{'host'} =~ /^\S+$/ ||
		&error($text{'cpriv_ehost'});
	$in{'perms'} =~ s/\0/,/g;

	if ($in{'table'}) {
		# Create new column permissions
		($d, $t) = split(/\./, $in{'table'});
		$access{'perms'} == 1 || &can_edit_db($d) ||
			&error($text{'perms_edb'});
		$sql = sprintf "insert into columns_priv values ('%s', '%s', ".
			       "'%s', '%s', '%s', NULL, '%s')",
				$in{'host_def'} ? '%' : $in{'host'}, $d,
				$in{'user_def'} ? '' : $in{'user'},
				$t, $in{'field'}, $in{'perms'};
		}
	else {
		# Update existing column permissions
		$access{'perms'} == 1 || &can_edit_db($in{'olddb'}) ||
			&error($text{'perms_edb'});
		$sql = sprintf "update columns_priv set host = '%s', ".
			       "user = '%s', column_name = '%s', ".
			       "column_priv = '%s' where host = '%s' ".
			       "and db = '%s' and user = '%s' ".
			       "and table_name = '%s' and column_name = '%s'",
				$in{'host_def'} ? '%' : $in{'host'},
				$in{'user_def'} ? '' : $in{'user'},
				$in{'field'}, $in{'perms'},
				$in{'oldhost'}, $in{'olddb'},
				$in{'olduser'}, $in{'oldtable'},
				$in{'oldfield'};
		}
	&execute_sql_logged($master_db, $sql);
	}
&execute_sql_logged($master_db, 'flush privileges');
if ($in{'delete'}) {
	&webmin_log("delete", "cpriv", $in{'oldtable'},
		    { 'user' => $in{'olduser'}, 'host' => $in{'oldhost'},
		      'db' => $in{'olddb'}, 'table' => $in{'oldtable'},
		      'field' => $in{'oldfield'} } );
	}
elsif ($in{'table'}) {
	&webmin_log("create", "cpriv", $in{'table'},
		    { 'user' => $in{'user_def'} ? '' : $in{'user'},
		      'host' => $in{'host_def'} ? '%' : $in{'host'},
		      'db' => $d, 'table' => $t, 'field' => $in{'field'} } );
	}
else {
	&webmin_log("modify", "cpriv", $in{'table'},
		    { 'user' => $in{'user_def'} ? '' : $in{'user'},
		      'host' => $in{'host_def'} ? '%' : $in{'host'},
		      'db' => $in{'olddb'}, 'table' => $in{'oldtable'},
		      'field' => $in{'field'} } );
	}
&redirect("list_cprivs.cgi");

   0707010000d264000081e40000000000000002000000013ac038aa00000a63000000200000000000000000000000000000001800000003reloc/mysql/save_db.cgi   #!/usr/local/bin/perl
# save_db.cgi
# Save, create or delete a db table record

require './mysql-lib.pl';
&ReadParse();
$access{'perms'} || &error($text{'perms_ecannot'});

if ($in{'delete'}) {
	# Delete some user
	$access{'perms'} == 1 || &can_edit_db($in{'olddb'}) ||
		&error($text{'perms_edb'});
	&execute_sql_logged($master_db,
		"delete from db where user = '$in{'olduser'}' ".
		"and host = '$in{'oldhost'}' and db = '$in{'olddb'}'");
	}
else {
	# Validate inputs
	&error_setup($text{'db_err'});
	$in{'user_def'} || $in{'user'} =~ /^\S+$/ ||
		&error($text{'db_euser'});
	$in{'host'} < 2 || $in{'host'} =~ /^\S+$/ ||
		&error($text{'db_ehost'});
	$in{'db_def'} || $in{'db'} =~ /^\S+$/ || &error($text{'db_edb'});
	if ($access{'perms'} == 2) {
		&can_edit_db($in{'olddb'}) || &error($text{'perms_edb'});
		&can_edit_db($in{'db_def'} ? '' : $in{'db'}) ||
			&error($text{'perms_edb'});
		}

	map { $perms[$_]++ } split(/\0/, $in{'perms'});
	if ($in{'new'}) {
		# Create a new db
		for($i=3; $i<=12; $i++) {
			push(@yesno, $perms[$i] ? "'Y'" : "'N'");
			}
		$sql = sprintf "insert into db values ('%s', '%s', '%s', %s)",
			$in{'host_mode'} == 0 ? '' :
			$in{'host_mode'} == 1 ? '%' : $in{'host'},
			$in{'db_def'} ? '' : $in{'db'},
			$in{'user_def'} ? '' : $in{'user'},
			join(",", @yesno);
		}
	else {
		# Update existing user
		@desc = &table_structure($master_db, 'db');
		for($i=3; $i<=12; $i++) {
			push(@yesno, $desc[$i]->{'field'}."=".
				     ($perms[$i] ? "'Y'" : "'N'"));
			}
		$sql = sprintf "update db set user = '%s', host = '%s', ".
			       "db = '%s', %s where user = '%s' and ".
			       "host = '%s' and db = '%s'",
			$in{'user_def'} ? '' : $in{'user'},
			$in{'host_mode'} == 0 ? '' :
			$in{'host_mode'} == 1 ? '%' : $in{'host'},
			$in{'db_def'} ? '' : $in{'db'},
			join(" , ", @yesno),
			$in{'olduser'}, $in{'oldhost'}, $in{'olddb'};
		}
	&execute_sql_logged($master_db, $sql);
	}
&execute_sql_logged($master_db, 'flush privileges');
if ($in{'delete'}) {
	&webmin_log("delete", "perm", $in{'olddb'},
		    { 'db' => $in{'olddb'},
		      'host' => $in{'oldhost'},
		      'user' => $in{'olduser'} } );
	}
elsif ($in{'new'}) {
	&webmin_log("create", "perm", $in{'db_def'} ? '' : $in{'db'},
		    { 'db' => $in{'db_def'} ? '' : $in{'db'},
		      'host' => $in{'host_mode'}<2 ? '' : $in{'host'},
		      'user' => $in{'user_def'} ? '' : $in{'user'} } );
	}
else {
	&webmin_log("modify", "perm", $in{'db_def'} ? '' : $in{'db'},
		    { 'db' => $in{'db_def'} ? '' : $in{'db'},
		      'host' => $in{'host_mode'}<2 ? '' : $in{'host'},
		      'user' => $in{'user_def'} ? '' : $in{'user'} } );
	}
&redirect("list_dbs.cgi");

 0707010000d265000081e40000000000000002000000013ac038a900000bc6000000200000000000000000000000000000001b00000003reloc/mysql/save_field.cgi    #!/usr/local/bin/perl
# save_field.cgi
# Create, modify or delete a field

require './mysql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
&error_setup($text{'field_err'});

if ($in{'delete'}) {
	# delete this field
	&execute_sql_logged($in{'db'},
			    "alter table $in{'table'} drop $in{'old'}");
	&webmin_log("delete", "field", $in{'old'}, \%in);
	}
elsif ($in{'new'}) {
	# add a new field
	$in{'field'} =~ /^\S+$/ || &error(&text('field_efield', $in{'field'}));
	$in{'null'} && $in{'key'} && &error($text{'field_ekey'});
	$in{'size'} = $size = &validate_size();
	$sql = sprintf "alter table %s add %s %s%s %s %s %s",
		$in{'table'}, $in{'field'}, $in{'type'}, $size,
		$in{'null'} ? '' : 'not null',
		$in{'default'} ? "default '$in{'default'}'" : "",
		$in{'ext'};
	&execute_sql_logged($in{'db'}, $sql);
	&webmin_log("create", "field", $in{'field'}, \%in);
	}
else {
	# modify an existing field
	$in{'field'} =~ /^\S+$/ || &error(&text('field_efield', $in{'field'}));
	$in{'null'} && $in{'key'} && &error($text{'field_ekey'});
	$in{'size'} = $size = &validate_size();
	$sql = sprintf "alter table %s modify %s %s%s %s %s %s",
			$in{'table'}, $in{'old'}, $in{'type'}, $size,
			$in{'null'} ? 'null' : 'not null',
			$in{'default'} ? "default '$in{'default'}'" : "",
			$in{'ext'};
	&execute_sql_logged($in{'db'}, $sql);
	if ($in{'old'} ne $in{'field'}) {
		# Rename field as well
		$sql = sprintf "alter table %s change %s %s %s%s",
				$in{'table'}, $in{'old'}, $in{'field'},
				$in{'type'}, $size;
		&execute_sql_logged($in{'db'}, $sql);
		}
	&webmin_log("modify", "field", $in{'field'}, \%in);
	}

if ($in{'key'} != $in{'oldkey'}) {
	# Adding or removing a primary key to the table
	foreach $d (&table_structure($in{'db'}, $in{'table'})) {
		push(@pri, $d->{'field'}) if ($d->{'key'} eq 'PRI');
		}
	if ($in{'key'}) {
		@npri = ( @pri, $in{'field'} );
		}
	else {
		@npri = grep { $_ ne $in{'field'} } @pri;
		}
	&execute_sql_logged($in{'db'},
			    "alter table $in{'table'} drop primary key")
		if (@pri);
	&execute_sql_logged($in{'db'},
			    "alter table $in{'table'} add primary key (".
			    join(",", @npri).")") if (@npri);
	}
&redirect("edit_table.cgi?db=$in{'db'}&table=$in{'table'}");

sub validate_size
{
if ($in{'type'} eq 'enum' || $in{'type'} eq 'set') {
	$in{'size'} || &error($text{'field_eenum'});
	$in{'size'} =~ s/\r//g;
	return '('.join(",", map { "'$_'" } split(/\n/, $in{'size'})).')';
	}
elsif ($in{'type'} eq 'float' || $in{'type'} eq 'double' ||
       $in{'type'} eq 'decimal') {
	$in{'size1'} =~ /^\d+$/ || &error(&text('field_esize', $in{'size1'}));
	$in{'size2'} =~ /^\d+$/ || &error(&text('field_esize', $in{'size2'}));
	return "($in{'size1'},$in{'size2'}) $in{'opts'}";
	}
elsif ($in{'type'} eq 'date' || $in{'type'} eq 'datetime' ||
       $in{'type'} eq 'time' || $in{'type'} =~ /(blob|text)$/) {
	return "";
	}
else {
	$in{'size'} =~ /^\d+$/ || &error(&text('field_esize', $in{'size'}));
	return "($in{'size'}) $in{'opts'}";
	}
}

  0707010000d266000081e40000000000000002000000013ac038aa000008b2000000200000000000000000000000000000001a00000003reloc/mysql/save_host.cgi #!/usr/local/bin/perl
# save_host.cgi
# Save, create or delete a host table record

require './mysql-lib.pl';
&ReadParse();
$access{'perms'} || &error($text{'perms_ecannot'});

if ($in{'delete'}) {
	# Delete some host
	$access{'perms'} == 1 || &can_edit_db($in{'olddb'}) ||
		&error($text{'perms_edb'});
	&execute_sql_logged($master_db,
		     "delete from host where host = '$in{'oldhost'}' ".
		     "and db = '$in{'olddb'}'");
	}
else {
	# Validate inputs
	&error_setup($text{'host_err'});
	$in{'host_def'} || $in{'host'} =~ /^\S+$/ ||
		&error($text{'host_ehost'});
	$in{'db_def'} || $in{'db'} =~ /^\S+$/ || &error($text{'host_edb'});
	if ($access{'perms'} == 2) {
		&can_edit_db($in{'olddb'}) || &error($text{'perms_edb'});
		&can_edit_db($in{'db_def'} ? '' : $in{'db'}) ||
			&error($text{'perms_edb'});
		}

	map { $perms[$_]++ } split(/\0/, $in{'perms'});
	if ($in{'new'}) {
		# Create a new host
		for($i=2; $i<=11; $i++) {
			push(@yesno, $perms[$i] ? "'Y'" : "'N'");
			}
		$sql = sprintf "insert into host values ('%s', '%s', %s)",
			$in{'host_def'} ? '' : $in{'host'},
			$in{'db_def'} ? '' : $in{'db'},
			join(",", @yesno);
		}
	else {
		# Update existing host
		@desc = &table_structure($master_db, 'host');
		for($i=2; $i<=11; $i++) {
			push(@yesno, $desc[$i]->{'field'}."=".
				     ($perms[$i] ? "'Y'" : "'N'"));
			}
		$sql = sprintf "update host set host = '%s', db = '%s', %s ".
			       "where host = '%s' and db = '%s'",
			$in{'host_def'} ? '' : $in{'host'},
			$in{'db_def'} ? '' : $in{'db'},
			join(" , ", @yesno), $in{'oldhost'}, $in{'olddb'};
		}
	&execute_sql_logged($master_db, $sql);
	}
&execute_sql_logged($master_db, 'flush privileges');
if ($in{'delete'}) {
	&webmin_log("delete", "host", $in{'oldhost'},
		    { 'db' => $in{'olddb'},
		      'host' => $in{'oldhost'} } );
	}
elsif ($in{'new'}) {
	&webmin_log("create", "host", $in{'host_def'} ? '' : $in{'host'},
		    { 'db' => $in{'db_def'} ? '' : $in{'db'},
		      'host' => $in{'host_def'} ? '' : $in{'host'} } );
	}
else {
	&webmin_log("modify", "host", $in{'host_def'} ? '' : $in{'host'},
		    { 'db' => $in{'db_def'} ? '' : $in{'db'},
		      'host' => $in{'host_def'} ? '' : $in{'host'} } );
	}
&redirect("list_hosts.cgi");

  0707010000d267000081e40000000000000002000000013ac038ae00000a36000000200000000000000000000000000000001b00000003reloc/mysql/save_tpriv.cgi    #!/usr/local/bin/perl
# save_tpriv.cgi
# Save, update or delete table permissions

require './mysql-lib.pl';
&ReadParse();
$access{'perms'} || &error($text{'perms_ecannot'});

if ($in{'delete'}) {
	# Delete some permissions
	$access{'perms'} == 1 || &can_edit_db($in{'olddb'}) ||
		&error($text{'perms_edb'});
	&execute_sql_logged($master_db,
		"delete from tables_priv where user = '$in{'olduser'}' ".
		"and host = '$in{'oldhost'}' and db = '$in{'olddb'}' ".
		"and table_name = '$in{'oldtable'}'");
	}
else {
	# Validate inputs
	&error_setup($text{'tpriv_err'});
	$in{'table'} || &error($text{'tpriv_etable'});
	$in{'user_def'} || $in{'user'} =~ /^\S+$/ ||
		&error($text{'tpriv_euser'});
	$in{'host_def'} || $in{'host'} =~ /^\S+$/ ||
		&error($text{'tpriv_ehost'});
	$in{'perms1'} =~ s/\0/,/g;
	$in{'perms2'} =~ s/\0/,/g;

	if ($in{'db'}) {
		# Create new table permissions
		$access{'perms'} == 1 || &can_edit_db($in{'db'}) ||
			&error($text{'perms_edb'});
		$sql = sprintf "insert into tables_priv values ('%s', '%s', ".
			       "'%s', '%s', '%s', NULL, '%s', '%s')",
				$in{'host_def'} ? '%' : $in{'host'},
				$in{'db'},
				$in{'user_def'} ? '' : $in{'user'},
				$in{'table'}, $config{'login'},
				$in{'perms1'}, $in{'perms2'};
		}
	else {
		# Update existing table permissions
		$access{'perms'} == 1 || &can_edit_db($in{'olddb'}) ||
			&error($text{'perms_edb'});
		$sql = sprintf "update tables_priv set host = '%s', ".
			       "user = '%s', table_name = '%s', ".
			       "table_priv = '%s', column_priv = '%s' where ".
			       "host = '%s' and db = '%s' and user = '%s' ".
			       "and table_name = '%s'",
				$in{'host_def'} ? '%' : $in{'host'},
				$in{'user_def'} ? '' : $in{'user'},
				$in{'table'}, $in{'perms1'}, $in{'perms2'},
				$in{'oldhost'}, $in{'olddb'},
				$in{'olduser'}, $in{'oldtable'};
		}
	&execute_sql_logged($master_db, $sql);
	}
&execute_sql_logged($master_db, 'flush privileges');
if ($in{'delete'}) {
	&webmin_log("delete", "tpriv", $in{'oldtable'},
		    { 'user' => $in{'olduser'}, 'host' => $in{'oldhost'},
		      'db' => $in{'olddb'}, 'table' => $in{'oldtable'} } );
	}
elsif ($in{'db'}) {
	&webmin_log("create", "tpriv", $in{'table'},
		    { 'user' => $in{'user_def'} ? '' : $in{'user'},
		      'host' => $in{'host_def'} ? '%' : $in{'host'},
		      'db' => $in{'db'}, 'table' => $in{'table'} } );
	}
else {
	&webmin_log("modify", "tpriv", $in{'table'},
		    { 'user' => $in{'user_def'} ? '' : $in{'user'},
		      'host' => $in{'host_def'} ? '%' : $in{'host'},
		      'db' => $in{'db'}, 'table' => $in{'table'} } );
	}
&redirect("list_tprivs.cgi");

  0707010000d268000081e40000000000000002000000013ac038aa00000943000000200000000000000000000000000000001a00000003reloc/mysql/save_user.cgi #!/usr/local/bin/perl
# save_user.cgi
# Save, create or delete a user

require './mysql-lib.pl';
&ReadParse();
$access{'perms'} == 1 || &error($text{'perms_ecannot'});

if ($in{'delete'}) {
	# Delete some user
	&execute_sql_logged($master_db,
		     "delete from user where user = '$in{'olduser'}' ".
		     "and host = '$in{'oldhost'}'");
	}
else {
	# Validate inputs
	&error_setup($text{'user_err'});
	$in{'user_def'} || $in{'user'} =~ /^\S+$/ ||
		&error($text{'user_euser'});
	$in{'host_def'} || $in{'host'} =~ /^\S+$/ ||
		&error($text{'user_ehost'});

	map { $perms[$_]++ } split(/\0/, $in{'perms'});
	if ($in{'new'}) {
		# Create a new user
		for($i=3; $i<=16; $i++) {
			push(@yesno, $perms[$i] ? "'Y'" : "'N'");
			}
		$sql = sprintf "insert into user values ('%s', '%s', '', %s)",
			$in{'host_def'} ? '' : $in{'host'},
			$in{'user_def'} ? '' : $in{'user'},
			join(",", @yesno);
		}
	else {
		# Update existing user
		@desc = &table_structure($master_db, 'user');
		for($i=3; $i<=16; $i++) {
			push(@yesno, $desc[$i]->{'field'}."=".
				     ($perms[$i] ? "'Y'" : "'N'"));
			}
		$sql = sprintf "update user set user = '%s', host = '%s', ".
			       "%s where user = '%s' and host = '%s'",
		    $in{'user_def'} ? '' : $in{'user'},
		    $in{'host_def'} ? '' : $in{'host'},
		    join(" , ", @yesno), $in{'olduser'}, $in{'oldhost'};
		}
	&execute_sql_logged($master_db, $sql);
	if ($in{'pass_mode'} == 0) {
		&execute_sql_logged($master_db,
			"update user set password = password('$in{'pass'}') ".
			"where user = '$in{'user'}' and host = '$in{'host'}'");
		}
	elsif ($in{'pass_mode'} == 2) {
		&execute_sql($master_db,
			"update user set password = NULL ".
			"where user = '$in{'user'}' and host = '$in{'host'}'");
		}
	}
&execute_sql_logged($master_db, 'flush privileges');
if ($in{'delete'}) {
	&webmin_log("delete", "user", $in{'olduser'},
		    { 'user' => $in{'olduser'},
		      'host' => $in{'oldhost'} } );
	}
elsif ($in{'new'}) {
	&webmin_log("create", "user",
		    $in{'user_def'} ? '' : $in{'user'},
		    { 'user' => $in{'user_def'} ? '' : $in{'user'},
		      'host' => $in{'host_def'} ? '' : $in{'host'} } );
	}
else {
	&webmin_log("modify", "user",
		    $in{'user_def'} ? '' : $in{'user'},
		    { 'user' => $in{'user_def'} ? '' : $in{'user'},
		      'host' => $in{'host_def'} ? '' : $in{'host'} } );
	}
&redirect("list_users.cgi");

 0707010000d269000081e40000000000000002000000013ac038a80000014f000000200000000000000000000000000000001600000003reloc/mysql/start.cgi #!/usr/local/bin/perl
# start.cgi
# Start the MySQL database server

require './mysql-lib.pl';
&error_setup($text{'start_err'});
$temp = &tempname();
$rv = &system_logged("($config{'start_cmd'}) >$temp 2>&1");
$out = `cat $temp`; unlink($temp);
if ($rv) {
	&error("<pre>$out</pre>");
	}
sleep(3);
&webmin_log("start");
&redirect("");

 0707010000d2c8000081e40000000000000002000000013ac038a80000017a000000200000000000000000000000000000001500000003reloc/mysql/stop.cgi  #!/usr/local/bin/perl
# stop.cgi
# Stop the MySQL database server

require './mysql-lib.pl';
if ($config{'stop_cmd'}) {
	$out = &backquote_logged("$config{'stop_cmd'} 2>&1");
	}
else {
	$out = &backquote_logged("$config{'mysqladmin'} $authstr shutdown 2>&1");
	}
&error_setup($text{'stop_err'});
if ($?) {
	&error("<pre>$?\n$out</pre>");
	}
&webmin_log("stop");
&redirect("");

  0707010000d2c9000081e40000000000000002000000013ac038a9000006be000000200000000000000000000000000000001b00000003reloc/mysql/table_form.cgi    #!/usr/local/bin/perl
# table_form.cgi
# Display a form for creating a table

require './mysql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
&header($text{'table_title2'}, "", "table_form");
print "<hr>\n";

print "<form action=create_table.cgi>\n";
print "<input type=hidden name=db value='$in{'db'}'>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'table_header2'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'table_name'}</b></td>\n";
print "<td><input name=name size=30></td> </tr>\n";

print "<tr> <td><b>$text{'table_copy'}</b></td>\n";
print "<td><select name=copy>\n";
print "<option value='' checked>$text{'table_copynone'}\n";
foreach $d (&list_databases()) {
	next if (!&can_edit_db($d));
	foreach $t (&list_tables($d)) {
		print "<option>$d.$t\n";
		}
	}
print "</select></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'table_initial'}</b></td>\n";
print "<td><table border>\n";
print "<tr $tb> <td><b>$text{'field_name'}</b></td> ",
      "<td><b>$text{'field_type'}</b></td> ",
      "<td><b>$text{'field_size'}</b></td> </tr>\n";
for($i=0; $i<$in{'fields'}; $i++) {
	print "<tr $cb>\n";
	print "<td><input name=field_$i size=20></td>\n";
	print "<td><select name=type_$i>\n";
	print "<option selected>\n";
	foreach $t (@type_list) {
		print "<option>$t\n";
		}
	print "</select></td>\n";
	print "<td><input name=size_$i size=10></td>\n";
	print "</tr>\n";
	}
print "</table></td> </tr>\n";

print "<tr> <td colspan=2 align=right><input type=submit ",
      "value='$text{'create'}'></td> </tr>\n";

print "</table></td></tr></table></form>\n";

print "<hr>\n";
&footer("edit_dbase.cgi?db=$in{'db'}", $text{'dbase_return'});

  0707010000d2ca000081e40000000000000002000000013ac038a90000220e000000200000000000000000000000000000001b00000003reloc/mysql/view_table.cgi    #!/usr/local/bin/perl
# view_data.cgi
# Display all data in some table

require './mysql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
@str = &table_structure($in{'db'}, $in{'table'});
foreach $s (@str) {
	$keyed++ if ($s->{'key'} eq 'PRI');
	}
if ($in{'field'}) {
	$search = "where $in{'field'} like \"$in{'for'}\"";
	}

if ($in{'delete'}) {
	# Deleting selected rows
	$d = &execute_sql($in{'db'},"select * from $in{'table'} $search limit ".
				    $in{'start'}.",".$config{'perpage'});
	@t = @{$d->{'titles'}};
	$count = 0;
	foreach $r (split(/\0/, $in{'row'})) {
		local @where;
		local @r = @{$d->{'data'}->[$r]};
		for($i=0; $i<@t; $i++) {
			if ($r[$i] eq 'NULL') {
				push(@where, "$t[$i] is null");
				}
			elsif ($r[$i] !~ /^(\d+)\.(\d+)/) {
				$r[$i] =~ s/'/''/g;
				push(@where, "$t[$i] = '$r[$i]'");
				}
			}
		&execute_sql_logged($in{'db'},
				    "delete from $in{'table'} where ".
				    join(" and ", @where));
		$count++;
		}
	&webmin_log("delete", "data", $count, \%in);
	&redirect("view_table.cgi?db=$in{'db'}&".
		  "table=$in{'table'}&start=$in{'start'}&field=$in{'field'}&".
		  "for=".&urlize($in{'for'}));
	}
elsif ($in{'save'}) {
	# Update edited rows
	$d = &execute_sql($in{'db'},"select * from $in{'table'} $search limit ".
				    $in{'start'}.",".$config{'perpage'});
	@t = @{$d->{'titles'}};
	$count = 0;
	for($j=0; $j<$config{'perpage'}; $j++) {
		next if (!defined($in{"${j}_$t[0]"}));
		local (@where, @set);
		local @r = @{$d->{'data'}->[$j]};
		for($i=0; $i<@t; $i++) {
			$r[$i] =~ s/'/''/g;
			if ($r[$i] eq 'NULL') {
				push(@where, "$t[$i] is null");
				}
			elsif ($r[$i] !~ /^(\d+)\.(\d+)/) {
				push(@where, "$t[$i] = '$r[$i]'");
				}
			local $ij = $in{"${j}_$t[$i]"};
			$ij =~ s/'/''/g;
			if ($ij eq '') {
				push(@set, "$t[$i] = NULL");
				}
			else {
				push(@set, "$t[$i] = '$ij'");
				}
			}
		&execute_sql_logged($in{'db'}, "update $in{'table'} set ".
				    join(" , ", @set)." where ".
				    join(" and ", @where));
		$count++;
		}
	&webmin_log("modify", "data", $count, \%in);
	&redirect("view_table.cgi?db=$in{'db'}&".
		  "table=$in{'table'}&start=$in{'start'}&field=$in{'field'}&".
		  "for=".&urlize($in{'for'}));
	}
elsif ($in{'savenew'}) {
	# Adding a new row
	for($j=0; defined($in{$j}); $j++) {
		$in{$j} =~ s/'/''/g;
		push(@set, $in{$j} eq '' ? 'NULL' : "'$in{$j}'");
		}
	&execute_sql_logged($in{'db'}, "insert into $in{'table'} values (".
			    join(" , ", @set).")");
	&redirect("view_table.cgi?db=$in{'db'}&".
		  "table=$in{'table'}&start=$in{'start'}&field=$in{'field'}&".
		  "for=".&urlize($in{'for'}));
	&webmin_log("create", "data", undef, \%in);
	}
elsif ($in{'cancel'} || $in{'new'}) {
	undef($in{'row'});
	}

&header($text{'view_title'}, "");
print "<center><font size=+2>",&text('table_header', "<tt>$in{'table'}</tt>",
				     "<tt>$in{'db'}</tt>"),"</font></center>\n";
print "<hr><p>\n";

$d = &execute_sql($in{'db'}, "select count(*) from $in{'table'} $search");
$total = $d->{'data'}->[0]->[0];
$in{'start'} = int($in{'start'});
if ($in{'new'} && $total > $config{'perpage'}) {
	# go to the last screen for adding a row
	$in{'start'} = $total - $config{'perpage'};
	$in{'start'} = int(($in{'start'} / $config{'perpage'}) + 1) *
		       $config{'perpage'};
	}
if ($in{'start'} || $total > $config{'perpage'}) {
	print "<center>\n";
	if ($in{'start'}) {
		printf "<a href='view_table.cgi?db=%s&table=%s&start=%s'>".
		       "<img src=/images/left.gif border=0 align=middle></a>\n",
			$in{'db'}, $in{'table'},
			$in{'start'} - $config{'perpage'};
		}
	print "<font size=+1>",&text('view_pos', $in{'start'}+1,
	      $in{'start'}+$config{'perpage'} > $total ? $total :
	      $in{'start'}+$config{'perpage'}, $total),"</font>\n";
	if ($in{'start'}+$config{'perpage'} < $total) {
		printf "<a href='view_table.cgi?db=%s&table=%s&start=%s'>".
		      "<img src=/images/right.gif border=0 align=middle></a>\n",
			$in{'db'}, $in{'table'},
			$in{'start'} + $config{'perpage'};
		}
	print "</center>\n";
	}

if ($in{'field'}) {
	print "<table width=100% cellspacing=0 cellpadding=0><tr>\n";
	print "<td><b>",&text('view_searchhead', "<tt>$in{'for'}</tt>",
			   "<tt>$in{'field'}</tt>"),"</b></td>\n";
	print "<td align=right><a href='view_table.cgi?db=$in{'db'}&",
	      "table=$in{'table'}'>$text{'view_searchreset'}</a></td>\n";
	print "</tr></table>\n";
	}

print "<form action=view_table.cgi method=post>\n";
print "<input type=hidden name=db value='$in{'db'}'>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<input type=hidden name=start value='$in{'start'}'>\n";
print "<input type=hidden name=field value='$in{'field'}'>\n";
print "<input type=hidden name=for value='$in{'for'}'>\n";
$check = !defined($in{'row'}) && !$in{'new'} && $keyed;
if ($total || $in{'new'}) {
	$d = &execute_sql($in{'db'},"select * from $in{'table'} $search limit ".
				    $in{'start'}.",".$config{'perpage'});
	@data = @{$d->{'data'}};
	print "<table border width=100%>\n";
	print "<tr $tb>\n";
	print "<td>&nbsp;</td>\n" if ($check);
	foreach $t (@str) {
		print "<td><b>$t->{'field'}</b></td>\n";
		}
	print "</tr>\n";

	map { $row{$_}++ } split(/\0/, $in{'row'});
	$w = int(100 / scalar(@str));
	$w = 10 if ($w < 10);
	for($i=0; $i<@data; $i++) {
		local @d = map { $_ eq "NULL" ? undef : $_ } @{$data[$i]};
		print "<tr $cb>\n";
		if ($row{$i}) {
			for($j=0; $j<@d; $j++) {
				$d[$j] =~ s/"/&quot;/g;
				printf "<td width=$w%%><input name=${i}_$d->{'titles'}->[$j] size=$w value=\"$d[$j]\"></td>\n";
				}
			}
		else {
			print "<td><input type=checkbox name=row ",
			      "value=$i></td>\n" if ($check);
			foreach $c (@{$data[$i]}) {
				printf "<td width=$w%%>%s</td>\n",
					$c =~ /\S/ ? &html_escape($c) : "<br>";
				}
			}
		print "</tr>\n";
		}
	if ($in{'new'} && $config{'add_mode'}) {
		# Show new fields in longer format
		print "</table> <br> <table border>\n";
		print "<tr $tb> <td><b>$text{'view_field'}</b></td> ",
		      "<td><b>$text{'view_data'}</b></td> </tr>\n";
		for($j=0; $j<@str; $j++) {
			print "<tr $cb> <td><b>$str[$j]->{'field'}</b></td>\n";
			if ($str[$j]->{'type'} =~ /\((\d+)\)/) {
				local $nw = $1 > 80 ? 80 : $1;
				print "<td><input name=$j size=$nw></td>\n";
				}
			elsif ($str[$j]->{'type'} =~ /enum\((.*)\)/) {
				local @nc = map { /^'(.*)'$/ ? $1 : $_ }
						split(/,/, $1);
				print "<td><select name=$j>\n";
				foreach $nc (@nc) {
					print "<option>$nc\n";
					}
				print "</select></td>\n";
				}
			else {
				print "<td><input name=$j size=30></td>\n";
				}
			print "</tr>\n";
			}
		}
	elsif ($in{'new'}) {
		# Show new fields in a row below table
		print "<tr $cb>\n";
		for($j=0; $j<@str; $j++) {
			print "<td width=$w%><input name=$j size=$w></td>\n";
			}
		print "</tr>\n";
		}
	print "</table>\n";
	if ($check) {
		print "<a href='' onClick='for(i=0; i<document.forms[0].row.length; i++) { document.forms[0].row[i].checked = true; } return false'>$text{'view_all'}</a>&nbsp;\n";
		print "<a href='' onClick='for(i=0; i<document.forms[0].row.length; i++) { document.forms[0].row[i].checked = !document.forms[0].row[i].checked; } return false'>$text{'view_invert'}</a><br>\n";
		}
	}
else {
	print "<b>$text{'view_none'}</b> <p>\n";
	}

print "<table width=100%><tr>\n";
if (!$keyed) {
	print "<tr> <td><b>$text{'view_nokey'}</b></td> </tr>\n";
	}
elsif (!$check) {
	if ($in{'new'}) {
		print "<td><input type=submit name=savenew ",
		      "value='$text{'save'}'></td>\n";
		}
	else {
		print "<td><input type=submit name=save ",
		      "value='$text{'save'}'></td>\n";
		}
	print "<td align=right><input type=submit name=cancel ",
	      "value='$text{'cancel'}'></td>\n";
	}
else {
	print "<td><input type=submit name=edit ",
	      "value='$text{'view_edit'}'></td>\n";
	print "<td align=middle><input type=submit name=new ",
	      "value='$text{'view_new'}'></td>\n";
	print "<td align=right><input type=submit name=delete ",
	      "value='$text{'view_delete'}'></td>\n";
	}
print "</tr></table></form>\n";

if (!$in{'field'} && $total > $config{'perpage'}) {
	print "<hr>\n";
	print "<form action=view_table.cgi>\n";
	print "<input type=hidden name=search value=1>\n";
	print "<input type=hidden name=db value='$in{'db'}'>\n";
	print "<input type=hidden name=table value='$in{'table'}'>\n";
	$sel = "<select name=field>\n";
	foreach $f (@str) {
		$sel .= "<option>$f->{'field'}\n";
		}
	$sel .= "</select>";
	print &text('view_search', "<input name=for size=20>", $sel);
	print "&nbsp;&nbsp;",
	      "<input type=submit value='$text{'view_searchok'}'>\n";
	print "</form>\n";
	}

print "<hr>\n";
&footer("edit_table.cgi?db=$in{'db'}&table=$in{'table'}",$text{'table_return'});

  07070100015e26000041ed0000000000000001000000043ac03c2500000000000000200000000000000000000000000000000a00000003reloc/net 07070100015e27000081a40000000000000002000000013ac038a1000033a1000000200000000000000000000000000000001e00000003reloc/net/cobalt-linux-lib.pl # redhat-linux-lib.pl
# Networking functions for redhat linux

$net_scripts_dir = "/etc/sysconfig/network-scripts";
$network_config = "/etc/sysconfig/network";
$static_route_config = "/etc/sysconfig/static-routes";

# active_interfaces()
# Returns a list of currently ifconfig'd interfaces
sub active_interfaces
{
local(@rv, @lines, $l);
open(IFC, "ifconfig -a |");
while(<IFC>) {
	s/\r|\n//g;
	if (/^\S+/) { push(@lines, $_); }
	else { $lines[$#lines] .= $_; }
	}
close(IFC);
foreach $l (@lines) {
	local %ifc;
	$l =~ /^([^:\s]+)/; $ifc{'name'} = $1;
	$l =~ /^(\S+)/; $ifc{'fullname'} = $1;
	if ($l =~ /^(\S+):(\d+)/) { $ifc{'virtual'} = $2; }
	if ($l =~ /inet addr:(\S+)/) { $ifc{'address'} = $1; }
	elsif (!$_[0]) { next; }
	if ($l =~ /Mask:(\S+)/) { $ifc{'netmask'} = $1; }
	if ($l =~ /Bcast:(\S+)/) { $ifc{'broadcast'} = $1; }
	if ($l =~ /HWaddr (\S+)/) { $ifc{'ether'} = $1; }
	if ($l =~ /MTU:(\d+)/) { $ifc{'mtu'} = $1; }
	$ifc{'up'}++ if ($l =~ /\sUP\s/);
	$ifc{'edit'} = ($ifc{'name'} !~ /^ppp/);
	$ifc{'index'} = scalar(@rv);
	push(@rv, \%ifc);
	}
return @rv;
}

# activate_interface(&details)
# Create or modify an interface
sub activate_interface
{
local $a = $_[0];
local $cmd = "ifconfig $a->{'name'}";
if ($a->{'virtual'} ne "") { $cmd .= ":$a->{'virtual'}"; }
$cmd .= " $a->{'address'}";
if ($a->{'netmask'}) { $cmd .= " netmask $a->{'netmask'}"; }
if ($a->{'broadcast'}) { $cmd .= " broadcast $a->{'broadcast'}"; }
if ($a->{'mtu'}) { $cmd .= " mtu $a->{'mtu'}"; }
if ($a->{'up'}) { $cmd .= " up"; }
else { $cmd .= " down"; }
local $out = &backquote_logged("$cmd 2>&1");
if ($?) { &error($out); }
if ($a->{'ether'}) {
	$out = &backquote_logged(
		"ifconfig $a->{'name'} hw ether $a->{'ether'} 2>&1");
	if ($?) { &error($out); }
	}
}

# deactivate_interface(&details)
# Shutdown some active interface
sub deactivate_interface
{
local $name = $_[0]->{'name'}.
	      ($_[0]->{'virtual'} ne "" ? ":$_[0]->{'virtual'}" : "");
if ($_[0]->{'virtual'} ne "") {
	# Shutdown virtual interface by setting address to 0
	local $out = &backquote_logged("ifconfig $name 0 2>&1");
	if ($?) { &error($out); }
	}
local ($still) = grep { $_->{'fullname'} eq $name } &active_interfaces();
if ($still) {
	# Old version of ifconfig or non-virtual interface.. down it
	local $out = &backquote_logged("ifconfig $name down 2>&1");
	if ($?) { &error($out); }
	}
}

# boot_interfaces()
# Returns a list of interfaces brought up at boot time
sub boot_interfaces
{
local(@rv, $f);
opendir(CONF, $net_scripts_dir);
while($f = readdir(CONF)) {
	next if ($f !~ /^ifcfg-[a-z0-9:]+$/);
	local (%conf, $b);
	&read_env_file("$net_scripts_dir/$f", \%conf);
	$b->{'fullname'} = $conf{'DEVICE'};
	if ($b->{'fullname'} =~ /(\S+):(\d+)/) {
		$b->{'name'} = $1;
		$b->{'virtual'} = $2;
		}
	else { $b->{'name'} = $b->{'fullname'}; }
	$b->{'up'} = ($conf{'ONBOOT'} eq 'yes');
	$b->{'address'} = $conf{'IPADDR'};
	$b->{'netmask'} = $conf{'NETMASK'};
	$b->{'broadcast'} = $conf{'BROADCAST'};
	$b->{'dhcp'} = ($conf{'BOOTPROTO'} eq 'dhcp');
	$b->{'bootp'} = ($conf{'BOOTPROTO'} eq 'bootp');
	$b->{'edit'} = ($b->{'name'} !~ /^ppp|irlan/);
	$b->{'index'} = scalar(@rv);
	push(@rv, $b);
	}
closedir(CONF);
return @rv;
}

# save_interface(&details)
# Create or update a boot-time interface
sub save_interface
{
local(%conf);
local $name = $_[0]->{'virtual'} ne "" ? $_[0]->{'name'}.":".$_[0]->{'virtual'}
				       : $_[0]->{'name'};
&lock_file("$net_scripts_dir/ifcfg-$name");
&read_env_file("$net_scripts_dir/ifcfg-$name", \%conf);
$conf{'DEVICE'} = $name;
$conf{'IPADDR'} = $_[0]->{'address'};
local($ip1, $ip2, $ip3, $ip4) = split(/\./, $_[0]->{'address'});
$conf{'NETMASK'} = $_[0]->{'netmask'};
local($nm1, $nm2, $nm3, $nm4) = split(/\./, $_[0]->{'netmask'});
if ($_[0]->{'address'} && $_[0]->{'netmask'}) {
	$conf{'NETWORK'} = sprintf "%d.%d.%d.%d",
				($ip1 & int($nm1))&0xff,
				($ip2 & int($nm2))&0xff,
				($ip3 & int($nm3))&0xff,
				($ip4 & int($nm4))&0xff;
	}
else {
	$conf{'NETWORK'} = '';
	}
$conf{'BROADCAST'} = $_[0]->{'broadcast'};
$conf{'ONBOOT'} = $_[0]->{'up'} ? "yes" : "no";
$conf{'BOOTPROTO'} = $_[0]->{'bootp'} ? "bootp" :
		     $_[0]->{'dhcp'} ? "dhcp" : "none";
&write_env_file("$net_scripts_dir/ifcfg-$name", \%conf);
&unlock_file("$net_scripts_dir/ifcfg-$name");
}

# delete_interface(&details)
# Delete a boot-time interface
sub delete_interface
{
local $name = $_[0]->{'virtual'} ne "" ? $_[0]->{'name'}.":".$_[0]->{'virtual'}
				       : $_[0]->{'name'};
&lock_file("$net_scripts_dir/ifcfg-$name");
unlink("$net_scripts_dir/ifcfg-$name");
&unlock_file("$net_scripts_dir/ifcfg-$name");
}

# iface_type(name)
# Returns a human-readable interface type name
sub iface_type
{
return "PPP" if ($_[0] =~ /^ppp/);
return "SLIP" if ($_[0] =~ /^sl/);
return "PLIP" if ($_[0] =~ /^plip/);
return "Ethernet" if ($_[0] =~ /^eth/);
return "Arcnet" if ($_[0] =~ /^arc/);
return "Token Ring" if ($_[0] =~ /^tr/);
return "Pocket/ATP" if ($_[0] =~ /^atp/);
return "Loopback" if ($_[0] =~ /^lo/);
return $text{'ifcs_unknown'};
}

# iface_hardware(name)
# Does some interface have an editable hardware address
sub iface_hardware
{
return $_[0] =~ /^eth/;
}

# can_edit(what)
# Can some boot-time interface parameter be edited?
sub can_edit
{
return $_[0] ne "mtu";
}

# valid_boot_address(address)
# Is some address valid for a bootup interface
sub valid_boot_address
{
return &check_ipaddress($_[0]);
}

# get_dns_config()
# Returns a hashtable containing keys nameserver, domain, search & order
sub get_dns_config
{
local $dns;
open(RESOLV, "/etc/resolv.conf");
while(<RESOLV>) {
	s/\r|\n//g;
	s/#.*$//;
	if (/nameserver\s+(.*)/) {
		push(@{$dns->{'nameserver'}}, split(/\s+/, $1));
		}
	elsif (/domain\s+(\S+)/) {
		$dns->{'domain'} = [ $1 ];
		}
	elsif (/search\s+(.*)/) {
		$dns->{'domain'} = [ split(/\s+/, $1) ];
		}
	}
close(RESOLV);
open(SWITCH, "/etc/nsswitch.conf");
while(<SWITCH>) {
	s/\r|\n//g;
	if (/^\s*hosts:\s+(.*)/) {
		$dns->{'order'} = $1;
		}
	}
close(SWITCH);
return $dns;
}

# save_dns_config(&config)
# Writes out the resolv.conf and nsswitch.conf files
sub save_dns_config
{
&lock_file("/etc/resolv.conf");
open(RESOLV, "/etc/resolv.conf");
local @resolv = <RESOLV>;
close(RESOLV);
open(RESOLV, ">/etc/resolv.conf");
foreach (@{$_[0]->{'nameserver'}}) {
	print RESOLV "nameserver $_\n";
	}
if ($_[0]->{'domain'}) {
	if ($_[0]->{'domain'}->[1]) {
		print RESOLV "search ",join(" ", @{$_[0]->{'domain'}}),"\n";
		}
	else {
		print RESOLV "domain $_[0]->{'domain'}->[0]\n";
		}
	}
foreach (@resolv) {
	print RESOLV $_ if (!/^\s*(nameserver|domain|search)\s+/);
	}
close(RESOLV);
&unlock_file("/etc/resolv.conf");

&lock_file("/etc/nsswitch.conf");
open(SWITCH, "/etc/nsswitch.conf");
local @switch = <SWITCH>;
close(SWITCH);
open(SWITCH, ">/etc/nsswitch.conf");
foreach (@switch) {
	if (/^\s*hosts:\s+/) {
		print SWITCH "hosts:\t$_[0]->{'order'}\n";
		}
	else { print SWITCH $_; }
	}
close(SWITCH);
&unlock_file("/etc/nsswitch.conf");
}

$max_dns_servers = 3;

# order_input(&dns)
# Returns HTML for selecting the name resolution order
sub order_input
{
if ($_[0]->{'order'} =~ /\[/) {
	# Using a complex resolve list
	return "<input name=order size=45 value=\"$_[0]->{'order'}\">\n";
	}
else {
	# Can select by menus
	local @o = split(/\s+/, $_[0]->{'order'});
	@o = map { s/nis\+/nisplus/; s/yp/nis/; $_; } @o;
	local ($rv, $i, $j);
	local @srcs = ( "", "files", "dns", "nis", "nisplus", "db" );
	local @srcn = ( "", "Hosts", "DNS", "NIS", "NIS+", "DB" );
	for($i=1; $i<@srcs; $i++) {
		local $ii = $i-1;
		$rv .= "<select name=order_$ii>\n";
		for($j=0; $j<@srcs; $j++) {
			$rv .= sprintf "<option value=\"%s\" %s>%s\n",
					$srcs[$j],
					$o[$ii] eq $srcs[$j] ? "selected" : "",
					$srcn[$j] ? $srcn[$j] : "&nbsp;";
			}
		$rv .= "</select>\n";
		}
	return $rv;
	}
}

# parse_order(&dns)
# Parses the form created by order_input()
sub parse_order
{
if (defined($in{'order'})) {
	$in{'order'} =~ /\S/ || &error($text{'dns_eorder'});
	$_[0]->{'order'} = $in{'order'};
	}
else {
	local($i, @order);
	for($i=0; defined($in{"order_$i"}); $i++) {
		push(@order, $in{"order_$i"}) if ($in{"order_$i"});
		}
	$_[0]->{'order'} = join(" ", @order);
	}
}

# get_hostname()
sub get_hostname
{
return &get_system_hostname();
}

# save_hostname(name)
sub save_hostname
{
local %conf;
&system_logged("hostname $_[0] >/dev/null 2>&1");
&lock_file("/etc/HOSTNAME");
open(HOST, ">/etc/HOSTNAME");
print HOST $_[0],"\n";
close(HOST);
&unlock_file("/etc/HOSTNAME");
&lock_file($network_config);
&read_env_file($network_config, \%conf);
$conf{'HOSTNAME'} = $_[0];
&write_env_file($network_config, \%conf);
&unlock_file($network_config);
}

# get_domainname()
sub get_domainname
{
local $d = `domainname`;
chop($d);
return $d eq "(none)" ? "" : $d;
}

# save_domainname(domain)
sub save_domainname
{
local %conf;
system("domainname \"$_[0]\" >/dev/null 2>&1");
&read_env_file($network_config, \%conf);
if ($_[0]) {
	$conf{'NISDOMAIN'} = $_[0];
	}
else {
	delete($conf{'NISDOMAIN'});
	}
&write_env_file($network_config, \%conf);
}

sub routing_input
{
# show default router and device
local (%conf, @st, @hr);
&read_env_file($network_config, \%conf);
print "<tr> <td><b>$text{'routes_default'}</b></td> <td>\n";
printf "<input type=radio name=gateway_def value=1 %s> $text{'routes_none'}\n",
	$conf{'GATEWAY'} ? "" : "checked";
printf "<input type=radio name=gateway_def value=0 %s>\n",
	$conf{'GATEWAY'} ? "checked" : "";
printf "<input name=gateway size=15 value=\"%s\"></td> </tr>\n",
	$conf{'GATEWAY'};

print "<tr> <td><b>$text{'routes_device2'}</b></td> <td>\n";
printf "<input type=radio name=gatewaydev_def value=1 %s> $text{'routes_none'}\n",
	$conf{'GATEWAYDEV'} ? "" : "checked";
printf "<input type=radio name=gatewaydev_def value=0 %s>\n",
	$conf{'GATEWAYDEV'} ? "checked" : "";
printf "<input name=gatewaydev size=6 value=\"%s\"></td> </tr>\n",
	$conf{'GATEWAYDEV'};

# show routing
print "<tr> <td><b>$text{'routes_forward'}</b></td> <td>\n";
printf "<input type=radio name=forward value=1 %s> $text{'yes'}\n",
	$conf{'FORWARD_IPV4'} eq "yes" ? "checked" : "";
printf "<input type=radio name=forward value=0 %s> $text{'no'}</td> </tr>\n",
	$conf{'FORWARD_IPV4'} eq "yes" ? "" : "checked";

# get static routes
open(STATIC, $static_route_config);
while(<STATIC>) {
	if (/(\S+)\s+net\s+(\S+)\s+netmask\s+(\S+)\s+gw\s+(\S+)/) {
		push(@st, [ $1, $2, $3, $4 ]);
		}
	elsif (/(\S+)\s+host\s+(\S+)/) {
		push(@hr, [ $1, $2 ]);
		}
	}
close(STATIC);

# show static network routes
print "<tr> <td valign=top><b>$text{'routes_static'}</b></td>\n";
print "<td><table border>\n";
print "<tr $tb> <td><b>$text{'routes_ifc'}</b></td> ",
      "<td><b>$text{'routes_net'}</b></td> ",
      "<td><b>$text{'routes_mask'}</b></td> ",
      "<td><b>$text{'routes_gateway'}</b></td> </tr>\n";
for($i=0; $i<=@st; $i++) {
	local $st = $st[$i];
	print "<tr $cb>\n";
	print "<td><input name=dev_$i size=6 value='$st->[0]'></td>\n";
	print "<td><input name=net_$i size=15 value='$st->[1]'></td>\n";
	print "<td><input name=netmask_$i size=15 value='$st->[2]'></td>\n";
	print "<td><input name=gw_$i size=15 value='$st->[3]'></td>\n";
	print "</tr>\n";
	}
print "</table></td> </tr>\n";

# Show static host routes
print "<tr> <td valign=top><b>$text{'routes_local'}</b></td>\n";
print "<td><table border>\n";
print "<tr $tb> <td><b>$text{'routes_ifc'}</b></td> ",
      "<td><b>$text{'routes_net'}</b></td> </tr>\n";
for($i=0; $i<=@hr; $i++) {
	local $st = $hr[$i];
	print "<tr $cb>\n";
	print "<td><input name=ldev_$i size=6 value='$st->[0]'></td>\n";
	print "<td><input name=lnet_$i size=15 value='$st->[1]'></td>\n";
	print "</tr>\n";
	}
print "</table></td> </tr>\n";
}

sub parse_routing
{
local (%conf, @st);
&lock_file($network_config);
&read_env_file($network_config, \%conf);
if ($in{'gateway_def'}) { $conf{'GATEWAY'} = ''; }
elsif (!gethostbyname($in{'gateway'})) {
	&error(&text('routes_edefault', $in{'gateway'}));
	}
else { $conf{'GATEWAY'} = $in{'gateway'}; }

if ($in{'gatewaydev_def'}) { $conf{'GATEWAYDEV'} = ''; }
elsif ($in{'gatewaydev'} !~ /^\S+$/) {
	&error(&text('routes_edevice', $in{'gatewaydev'}));
	}
else { $conf{'GATEWAYDEV'} = $in{'gatewaydev'}; }

if ($in{'forward'}) { $conf{'FORWARD_IPV4'} = 'yes'; }
else { $conf{'FORWARD_IPV4'} = 'no'; }

&lock_file($static_route_config);
for($i=0; defined($dev = $in{"dev_$i"}); $i++) {
	$net = $in{"net_$i"}; $netmask = $in{"netmask_$i"}; $gw = $in{"gw_$i"};
	next if (!$dev && !$net && !$netmask && !$gw);
	$dev =~ /^\S+$/ || &error(&text('routes_edevice', $dev));
	gethostbyname($net) || &error(&text('routes_enet', $net));
	&check_ipaddress($netmask) || &error(&text('routes_emask', $netmask));
	gethostbyname($gw) || &error(&text('routes_egateway', $gw));
	push(@st, "$dev net $net netmask $netmask gw $gw\n");
	}
for($i=0; defined($dev = $in{"ldev_$i"}); $i++) {
	$net = $in{"lnet_$i"};
	next if (!$dev && !$net);
	$dev =~ /^\S+$/ || &error(&text('routes_edevice', $dev));
	gethostbyname($net) || &error(&text('routes_enet', $net));
	push(@st, "$dev host $net\n");
	}
open(STATIC, ">$static_route_config");
print STATIC @st;
close(STATIC);
&unlock_file($static_route_config);
&write_env_file($network_config, \%conf);
&unlock_file($network_config);
}

1;

   07070100015e28000081a40000000000000002000000013ac038a100000016000000200000000000000000000000000000001e00000003reloc/net/config-cobalt-linux hosts_file=/etc/hosts
  07070100015e29000081a40000000000000002000000013ac038a100000016000000200000000000000000000000000000001e00000003reloc/net/config-debian-linux hosts_file=/etc/hosts
  07070100015e2a000081a40000000000000002000000013ac038a100000016000000200000000000000000000000000000001900000003reloc/net/config-freebsd  hosts_file=/etc/hosts
  07070100015e2b000081a40000000000000002000000013ac038a100000016000000200000000000000000000000000000001b00000003reloc/net/config-lfs-linux    hosts_file=/etc/hosts
  07070100015e2c000081a40000000000000002000000013ac038a100000016000000200000000000000000000000000000001c00000003reloc/net/config-open-linux   hosts_file=/etc/hosts
  07070100015e2d000081a40000000000000002000000013ac038a100000016000000200000000000000000000000000000001900000003reloc/net/config-openbsd  hosts_file=/etc/hosts
  07070100015e2e000081a40000000000000002000000013ac038a100000016000000200000000000000000000000000000001e00000003reloc/net/config-redhat-linux hosts_file=/etc/hosts
  07070100015e2f000081a40000000000000002000000013ac038a100000016000000200000000000000000000000000000001900000003reloc/net/config-solaris  hosts_file=/etc/hosts
  07070100015e30000081a40000000000000002000000013ac038a100000016000000200000000000000000000000000000001c00000003reloc/net/config-suse-linux   hosts_file=/etc/hosts
  07070100015e31000081a40000000000000002000000013ac038a100000016000000200000000000000000000000000000001d00000003reloc/net/config-turbo-linux  hosts_file=/etc/hosts
  07070100015e32000081a40000000000000002000000013ac038a100000016000000200000000000000000000000000000001a00000003reloc/net/config-unixware hosts_file=/etc/hosts
  07070100015e33000081a40000000000000002000000013ac038a10000002e000000200000000000000000000000000000001600000003reloc/net/config.info hosts_file=File listing hosts and addresses,0
  07070100015e34000081a40000000000000002000000013ac038a100000040000000200000000000000000000000000000001900000003reloc/net/config.info.de  hosts_file=Datei in der Hosts und Adressen aufgelistet werden,0
07070100015e35000081a40000000000000002000000013ac038a10000003d000000200000000000000000000000000000001900000003reloc/net/config.info.es  hosts_file=Archivo que contiene las m醧uinas y direcciones,0
   07070100015e36000081a40000000000000002000000013ac038a100000034000000200000000000000000000000000000001900000003reloc/net/config.info.fr  hosts_file=Fichier de liste d'h魌es et d'adresses,0
07070100015e37000081a40000000000000002000000013ac038a100000047000000200000000000000000000000000000001900000003reloc/net/config.info.pl  hosts_file=Plik z&nbsp;nazwami i&nbsp;adresami host體 <tt>hosts</tt>,0
 07070100015e38000081a40000000000000002000000013ac038a10000002e000000200000000000000000000000000000001c00000003reloc/net/config.info.ru_RU   hosts_file=脏殡 耦 耧桉觐 躅耱钼  噤疱耦,0
  07070100015e3a000081a40000000000000002000000013ac038a10000002a000000200000000000000000000000000000001900000003reloc/net/config.info.sv  hosts_file=Fil med datorer och adresser,0
  07070100015e39000081a40000000000000002000000013ac038a10000002e000000200000000000000000000000000000001c00000003reloc/net/config.info.ru_SU   hosts_file=媪侍 酉 有捎讼 认釉献  聊遗酉,0
  07070100015e3b000081a40000000000000002000000013ac038a10000003e000000200000000000000000000000000000001900000003reloc/net/config.info.tr  hosts_file=Makine adlar齨齨 ve adreslerinin bulundu饀 dosya,0
  07070100015e3c000081a40000000000000002000000013ac038a100000022000000200000000000000000000000000000001c00000003reloc/net/config.info.zh_CN   hosts_file=主机名与IP地址映射表,0
  07070100015e3d000081a40000000000000002000000013ac038a100000022000000200000000000000000000000000000002100000003reloc/net/config.info.zh_TW.Big5  hosts_file=诀籔郎,0
  07070100015e3e000081a40000000000000002000000013ac038a100003abb000000200000000000000000000000000000001e00000003reloc/net/debian-linux-lib.pl # debian-linux-lib.pl
# Networking functions for Debian linux >= 2.2 (aka. potato)
# Really, this won't work with releases prior to 2.2, don't even try it.
#
# Rene Mayrhofer, July 2000
# Some code has been taken from redhat-linux-lib.pl

use File::Copy;

$network_interfaces_config = '/etc/network/interfaces';

# active_interfaces()
# Returns a list of currently ifconfig'd interfaces
sub active_interfaces
{
local(@rv, @lines, $l);
open(IFC, "ifconfig -a |");
while(<IFC>) {
	s/\r|\n//g;
	if (/^\S+/) { push(@lines, $_); }
	else { $lines[$#lines] .= $_; }
	}
close(IFC);
foreach $l (@lines) {
	local %ifc;
	$l =~ /^([^:\s]+)/; $ifc{'name'} = $1;
	$l =~ /^(\S+)/; $ifc{'fullname'} = $1;
	if ($l =~ /^(\S+):(\d+)/) { $ifc{'virtual'} = $2; }
	if ($l =~ /inet addr:(\S+)/) { $ifc{'address'} = $1; }
	else { next; }
	if ($l =~ /Mask:(\S+)/) { $ifc{'netmask'} = $1; }
	if ($l =~ /Bcast:(\S+)/) { $ifc{'broadcast'} = $1; }
	if ($l =~ /HWaddr (\S+)/) { $ifc{'ether'} = $1; }
	if ($l =~ /MTU:(\d+)/) { $ifc{'mtu'} = $1; }
	$ifc{'up'}++ if ($l =~ /\sUP\s/);
	$ifc{'edit'} = ($ifc{'name'} !~ /^ppp/);
	$ifc{'index'} = scalar(@rv);
	push(@rv, \%ifc);
	}
return @rv;
}

# activate_interface(&details)
# Create or modify an interface
sub activate_interface
{
local $a = $_[0];
local $cmd = "ifconfig $a->{'name'}";
if ($a->{'virtual'} ne "") { $cmd .= ":$a->{'virtual'}"; }
$cmd .= " $a->{'address'}";
if ($a->{'netmask'}) { $cmd .= " netmask $a->{'netmask'}"; }
if ($a->{'broadcast'}) { $cmd .= " broadcast $a->{'broadcast'}"; }
if ($a->{'mtu'}) { $cmd .= " mtu $a->{'mtu'}"; }
if ($a->{'up'}) { $cmd .= " up"; }
else { $cmd .= " down"; }
local $out = &backquote_logged("$cmd 2>&1");
if ($?) { &error($out); }
if ($a->{'ether'}) {
	$out = &backquote_logged(
		"ifconfig $a->{'name'} hw ether $a->{'ether'} 2>&1");
	if ($?) { &error($out); }
	}
}

# deactivate_interface(&details)
# Shutdown some active interface
sub deactivate_interface
{
local $cmd = "ifconfig $a->{'name'}";
if ($a->{'virtual'} ne "") { $cmd .= ":$a->{'virtual'}"; }
$cmd .= " down";
local $out = &backquote_logged("$cmd 2>&1");
if ($?) { &error($out); }
}

# boot_interfaces()
# Returns a list of interfaces brought up at boot time
sub boot_interfaces()
{
my @ifaces = &get_interface_defs();
my @rv;
foreach $iface (@ifaces) {
	my ($name, $addrfam, $method, $options) = @$iface;
	my $cfg;
	if ($addrfam eq 'inet') {
		$cfg->{'fullname'} = $name;
		if ($cfg->{'fullname'} =~ /(\S+):(\d+)/) {
			$cfg->{'name'} = $1;
			$cfg->{'virtual'} = $2;
			}
		else {
			$cfg->{'name'} = $cfg->{'fullname'};
			}
		$cfg->{'up'} = 1;
		foreach $option (@$options) {
			($param, $value) = @$option;
			if ($param eq 'noauto') { $cfg->{'up'} = 0; }
			else { $cfg->{$param} = $value; }
			}
		$cfg->{'dhcp'} = ($method eq 'dhcp');
		$cfg->{'bootp'} = ($method eq 'bootp');
		$cfg->{'edit'} = ($cfg->{'name'} !~ /^ppp/);
		$cfg->{'index'} = scalar(@rv);	
		push(@rv, $cfg);
		}
	}
return @rv;
}

# save_interface(&details)
# Create or update a boot-time interface
sub save_interface
{
my $cfg = $_[0];
my $name = $cfg->{'virtual'} ne "" ? $cfg->{'name'}.":".$cfg->{'virtual'}
				       : $cfg->{'name'};
my @options;
my $method;
if ($cfg->{'dhcp'} == 1) { $method = 'dhcp'; }
elsif ($cfg->{'bootp'} == 1) { $method = 'bootp'; }
else {
	$method = 'static';
	push(@options, ['address', $cfg->{'address'}]);
	push(@options, ['netmask', $cfg->{'netmask'}]);
	push(@options, ['broadcast', $cfg->{'broadcast'}]);
	my ($ip1, $ip2, $ip3, $ip4) = split(/\./, $cfg->{'address'});
	my ($nm1, $nm2, $nm3, $nm4) = split(/\./, $cfg->{'netmask'});
	if ($cfg->{'address'} && $cfg->{'netmask'}) {
		my $network = sprintf "%d.%d.%d.%d",
					($ip1 & int($nm1))&0xff,
					($ip2 & int($nm2))&0xff,
					($ip3 & int($nm3))&0xff,
					($ip4 & int($nm4))&0xff;
		push(@options, ['network', $network]);
		}
	}
if (! $cfg->{'up'}) { push(@options, ['noauto', '']); }

my @ifaces = get_interface_defs();
my $changeit = 0;
foreach $iface (@ifaces) {
	if ($iface->[0] eq $cfg->{'fullname'}) {
		$changeit = 1;
		foreach $o (@{$iface->[3]}) {
			if ($o->[0] eq 'gateway') {
				push(@options, $o);
				}
			}
		}
	}
if ($changeit == 0) {
	new_interface_def($cfg->{'fullname'}, 'inet', $method, \@options);
	}
else {
	modify_interface_def($cfg->{'fullname'}, 'inet', $method, \@options, 0);
	}
}

# delete_interface(&details)
# Delete a boot-time interface
sub delete_interface
{
my $cfg = $_[0];
delete_interface_def($cfg->{'fullname'}, 'inet');
}

# iface_type(name)
# Returns a human-readable interface type name
sub iface_type
{
return "PPP" if ($_[0] =~ /^ppp/);
return "SLIP" if ($_[0] =~ /^sl/);
return "PLIP" if ($_[0] =~ /^plip/);
return "Ethernet" if ($_[0] =~ /^eth/);
return "Arcnet" if ($_[0] =~ /^arc/);
return "Token Ring" if ($_[0] =~ /^tr/);
return "Pocket/ATP" if ($_[0] =~ /^atp/);
return "Loopback" if ($_[0] =~ /^lo/);
return "ISDN rawIP" if ($_[0] =~ /^isdn/);
return "ISDN syncPPP" if ($_[0] =~ /^ippp/);
return $text{'ifcs_unknown'};
}

# iface_hardware(name)
# Does some interface have an editable hardware address
sub iface_hardware
{
return $_[0] =~ /^eth/;
}

# can_edit(what)
# Can some boot-time interface parameter be edited?
sub can_edit
{
return $_[0] ne "mtu";
}

# valid_boot_address(address)
# Is some address valid for a bootup interface
sub valid_boot_address
{
return &check_ipaddress($_[0]);
}

# get_dns_config()
# Returns a hashtable containing keys nameserver, domain, search & order
sub get_dns_config
{
local $dns;
open(RESOLV, "/etc/resolv.conf");
while(<RESOLV>) {
	s/\r|\n//g;
	s/#.*$//;
	if (/nameserver\s+(.*)/) {
		push(@{$dns->{'nameserver'}}, split(/\s+/, $1));
		}
	elsif (/domain\s+(\S+)/) {
		$dns->{'domain'} = [ $1 ];
		}
	elsif (/search\s+(.*)/) {
		$dns->{'domain'} = [ split(/\s+/, $1) ];
		}
	}
close(RESOLV);
open(SWITCH, "/etc/nsswitch.conf");
while(<SWITCH>) {
	s/\r|\n//g;
	if (/^\s*hosts:\s+(.*)/) {
		$dns->{'order'} = $1;
		}
	}
close(SWITCH);
return $dns;
}

# save_dns_config(&config)
# Writes out the resolv.conf and nsswitch.conf files
sub save_dns_config
{
&lock_file("/etc/resolv.conf");
open(RESOLV, "/etc/resolv.conf");
local @resolv = <RESOLV>;
close(RESOLV);
open(RESOLV, ">/etc/resolv.conf");
foreach (@{$_[0]->{'nameserver'}}) {
	print RESOLV "nameserver $_\n";
	}
if ($_[0]->{'domain'}) {
	if ($_[0]->{'domain'}->[1]) {
		print RESOLV "search ",join(" ", @{$_[0]->{'domain'}}),"\n";
		}
	else {
		print RESOLV "domain $_[0]->{'domain'}->[0]\n";
		}
	}
foreach (@resolv) {
	print RESOLV $_ if (!/^\s*(nameserver|domain|search)\s+/);
	}
close(RESOLV);
&unlock_file("/etc/resolv.conf");

&lock_file("/etc/nsswitch.conf");
open(SWITCH, "/etc/nsswitch.conf");
local @switch = <SWITCH>;
close(SWITCH);
open(SWITCH, ">/etc/nsswitch.conf");
foreach (@switch) {
	if (/^\s*hosts:\s+/) {
		print SWITCH "hosts:\t$_[0]->{'order'}\n";
		}
	else { print SWITCH $_; }
	}
close(SWITCH);
&unlock_file("/etc/nsswitch.conf");
}

$max_dns_servers = 3;

# order_input(&dns)
# Returns HTML for selecting the name resolution order
sub order_input
{
if ($_[0]->{'order'} =~ /\[/) {
	# Using a complex resolve list
	return "<input name=order size=45 value=\"$_[0]->{'order'}\">\n";
	}
else {
	# Can select by menus
	local @o = split(/\s+/, $_[0]->{'order'});
	@o = map { s/nis\+/nisplus/; s/yp/nis/; $_; } @o;
	local ($rv, $i, $j);
	local @srcs = ( "", "files", "dns", "nis", "nisplus", "db" );
	local @srcn = ( "", "Hosts", "DNS", "NIS", "NIS+", "DB" );
	for($i=1; $i<@srcs; $i++) {
		local $ii = $i-1;
		$rv .= "<select name=order_$ii>\n";
		for($j=0; $j<@srcs; $j++) {
			$rv .= sprintf "<option value=\"%s\" %s>%s\n",
					$srcs[$j],
					$o[$ii] eq $srcs[$j] ? "selected" : "",
					$srcn[$j] ? $srcn[$j] : "&nbsp;";
			}
		$rv .= "</select>\n";
		}
	return $rv;
	}
}

# parse_order(&dns)
# Parses the form created by order_input()
sub parse_order
{
if (defined($in{'order'})) {
	$in{'order'} =~ /\S/ || &error($text{'dns_eorder'});
	$_[0]->{'order'} = $in{'order'};
	}
else {
	local($i, @order);
	for($i=0; defined($in{"order_$i"}); $i++) {
		push(@order, $in{"order_$i"}) if ($in{"order_$i"});
		}
	$_[0]->{'order'} = join(" ", @order);
	}
}

# get_hostname()
sub get_hostname
{
return &get_system_hostname();
}

# save_hostname(name)
sub save_hostname
{
local %conf;
&system_logged("hostname $_[0] >/dev/null 2>&1");
&lock_file("/etc/HOSTNAME");
open(HOST, ">/etc/HOSTNAME");
print HOST $_[0],"\n";
close(HOST);
&unlock_file("/etc/HOSTNAME");
&lock_file($network_config);
&read_env_file($network_config, \%conf);
$conf{'HOSTNAME'} = $_[0];
&write_env_file($network_config, \%conf);
&unlock_file($network_config);
}

# get_domainname()
sub get_domainname
{
local $d = `domainname`;
chop($d);
return $d eq "(none)" ? "" : $d;
}

# save_domainname(domain)
sub save_domainname
{
local %conf;
system("domainname \"$_[0]\" >/dev/null 2>&1");
&read_env_file($network_config, \%conf);
if ($_[0]) {
	$conf{'NISDOMAIN'} = $_[0];
	}
else {
	delete($conf{'NISDOMAIN'});
	}
&write_env_file($network_config, \%conf);
}

# show default router and device
sub routing_input
{
local @ifaces = &get_interface_defs();
local ($router, $addr);
foreach $iface (@ifaces) {
	foreach $o (@{$iface->[3]}) {
		if ($o->[0] eq 'gateway') {
			$router = $iface;
			$addr = $o->[1];
			}
		}
	}

print "<tr> <td><b>$text{'routes_default'}</b></td>\n";
printf "<td><input type=radio name=gateway_def value=1 %s> %s\n",
	$router ? '' : 'checked', $text{'routes_none'};
printf "<input type=radio name=gateway_def value=0 %s>\n",
	$router ? 'checked' : '';
print "$text{'routes_gateway'}\n";
printf "<input name=gateway size=15 value='%s'>\n", $addr;
print "$text{'routes_device'}\n";
print "<select name=gatewaydev>\n";
foreach $iface (@ifaces) {
	next if ($iface->[0] eq 'lo');
	printf "<option %s>%s\n",
		$router eq $iface ? 'selected' : '', $iface->[0];
	}
print "</select></td> </tr>\n";
}

sub parse_routing
{
local $dev;
if (!$in{'gateway_def'}) {
	&check_ipaddress($in{'gateway'}) ||
		&error(&text('routes_egateway', $in{'gateway'}));
	$dev = $in{'gatewaydev'};
	}
local @ifaces = &get_interface_defs();
foreach $iface (@ifaces) {
	# Remove the gateway directive
	$iface->[3] = [ grep { $_->[0] ne 'gateway' } @{$iface->[3]} ];

	# Add if needed
	if ($iface->[0] eq $dev) {
		push(@{$iface->[3]}, [ 'gateway', $in{'gateway'} ]);
		}
	&modify_interface_def(@$iface);
	}
}


###############################################################################
# helper functions for file-internal use

# gets a list of interface definitions (including their options) from the
# central config file
# the returned list is an array whose contents are tupels of
# (name, addrfam, method, options) with
#    name          the interface name (e.g. eth0)
#    addrfam       the address family (e.g. inet, inet6)
#    method        the address activation method (e.g. static, dhcp, loopback)
#    options       is a list of (param, value) pairs
sub get_interface_defs()
{
local *CFGFILE;
my @ret;
open(CFGFILE, "< $network_interfaces_config") ||
	error("Unable to open $network_interfaces_config");
# read the file line by line
$line = <CFGFILE>;
while (defined $line) {
	chomp($line);
	# skip comments
	if ($line =~ /^\s*#/ || $line =~ /^\s*$/) {
		$line = <CFGFILE>;
		next;
		}
	# only lines starting with "iface" are expected here
	my ($name, $addrfam, $method);
	if ( ($name, $addrfam, $method) = ($line =~ /^\s*iface\s+(\S+)\s+(\w+)\s+(\w+)\s*$/) ) {
		my @iface_options;
		# now read everything until the next iface definition
		$line = <CFGFILE>;
		while (defined $line && ! ($line =~ /^\s*iface/)) {
			# skip comments and empty lines
			if ($line =~ /^\s*#/ || $line =~ /^\s*$/) {
				$line = <CFGFILE>;
				next;
				}
			my ($param, $value);
			if ( ($param, $value) = ($line =~ /^\s*(\S+)\s+(\S+)\s*$/) ) {
				push(@iface_options, [$param, $value]);
				}
			elsif ( ($param) = ($line =~ /^\s*(\S+)\s*$/) ) {
				push(@iface_options, [$param, '']);
				}
			else {
				error("Error in option line: '$line' invalid");
				}
			$line = <CFGFILE>;
			}
		push(@ret, [$name, $addrfam, $method, \@iface_options]);
		}
	else {
		error("Error reading file $pathname: unexpected line '$line'");
		}
	}
close(CFGFILE);
return @ret;
}

# modifies the options of an already stored interface definition
# the parameters should be (name, addrfam, method, options, mode)
# with options being an array of (param, value) pairs
# and mode being 0 for modify and 1 for delete
sub modify_interface_def($$$$$)
{
my ($name, $addrfam, $method, $options, $mode) = @_;
# make a backup copy
copy("$network_interfaces_config", "$network_interfaces_config~");
local *OLDCFGFILE, *NEWCFGFILE;
open(OLDCFGFILE, "< $network_interfaces_config~") ||
	error("Unable to open $network_interfaces_config");
&lock_file($network_interfaces_config);
open(NEWCFGFILE, "> $network_interfaces_config") ||
	error("Unable to open $network_interfaces_config");

my $inside_modify_region = 0;
my $iface_line = 0;
my $new_options_wrote;
while (defined ($line=<OLDCFGFILE>)) {
	if ($inside_modify_region == 0 &&
		$line =~ /^\s*iface\s+$name\s+$addrfam\s+\w+\s*$/) {
		$inside_modify_region = 1;
		$iface_line = 1;
		$new_options_wrote = 0;
		}
	elsif ($inside_modify_region == 1 &&
		$line =~ /^\s*iface\s+\w+\s+\w+\s+\w+\s*$/) {
		$inside_modify_region = 0;
		}
	# preserve comments
	if ($line =~ /^\s*#/) {
		print NEWCFGFILE $line;
		}
	# inside modify region or not ?
	elsif ($inside_modify_region == 0) {
    	print NEWCFGFILE $line;
		}
	else {
		# should the iface line be changed or the options ?
		if ($iface_line == 1 && $mode == 0) {
			print NEWCFGFILE "iface $name $addrfam $method\n";
			}
		else {
			# only write the new options and skip the old ones or just do
			# nothing if mode is delete
			# write only upon first entrance here
			if ($mode == 0 && $new_options_wrote == 0) {
				$new_options_wrote = 1;
				foreach $option (@$options) {
					my ($param, $value) = @$option;
					print NEWCFGFILE "\t$param $value\n";
					}
				}
			}
		}
	$iface_line = 0;
	}

close(OLDCFGFILE);
close(NEWCFGFILE);
&unlock_file($network_interfaces_config);
}

# creates a new interface definition in the config file
# the parameters should be (name, addrfam, method, options)
# with options being an array of (param, value) pairs
# the selection key is (name, addrfam)
sub new_interface_def($$$$)
{
# make a backup copy
copy("$network_interfaces_config", "$network_interfaces_config~");
local *CFGFILE;
&lock_file($network_interfaces_config);
open(CFGFILE, ">> $network_interfaces_config") ||
	error("Unable to open $network_interfaces_config");
local ($name, $addrfam, $method, $options) = @_;
print CFGFILE "\niface $name $addrfam $method\n";
foreach $option (@$options) {
	my ($param, $value) = @$option;
	print CFGFILE "\t$param $value\n";
	}
close(CFGFILE);
&unlock_file($network_interfaces_config);
}

# delete an already defined interface
# the parameters should be (name, addrfam)
sub delete_interface_def($$$)
{
	local ($name, $addrfam, $method) = @_;
	modify_interface_def($name, $addrfam, '', [], 1);
}

1;

 07070100015e3f000081e40000000000000002000000013ac038a100000f16000000200000000000000000000000000000001800000003reloc/net/edit_aifc.cgi   #!/usr/local/bin/perl
# edit_aifc.cgi
# Edit or create an active interface

require './net-lib.pl';
&ReadParse();
if ($in{'new'}) {
	&header($text{'aifc_create'}, "");
	}
else {
	&header($text{'aifc_edit'}, "");
	@act = &active_interfaces();
	$a = $act[$in{'idx'}];
	}
print "<hr>\n";

print "<form action=save_aifc.cgi>\n";
print "<input type=hidden name=new value=\"$in{'new'}\">\n";
print "<input type=hidden name=idx value=\"$in{'idx'}\">\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>",
      $in{'virtual'} || $a && $a->{'virtual'} ne "" ? $text{'aifc_desc2'}
						    : $text{'aifc_desc1'},
      "</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'ifcs_name'}</b></td> <td>\n";
if ($in{'new'} && $in{'virtual'}) {
	print "<input type=hidden name=name value=$in{'virtual'}>\n";
	print "$in{'virtual'}:<input name=virtual size=3>\n";
	}
elsif ($in{'new'}) {
	print "<input name=name size=6>\n";
	}
else {
	print "<font size=+1><tt>$a->{'fullname'}</tt></font>\n";
	}
print "</td>\n";

print "<td><b>$text{'ifcs_ip'}</b></td>\n";
printf "<td><input name=address size=15 value=\"%s\"></td> </tr>\n",
	$a ? $a->{'address'} : "";

print "<tr> <td><b>$text{'ifcs_mask'}</b></td> <td>\n";
printf "<input type=radio name=netmask_def value=1 %s> $text{'ifcs_auto'}\n",
	$a && $a->{'netmask'} ? "" : "checked";
printf "<input type=radio name=netmask_def value=0 %s>\n",
	$a && $a->{'netmask'} ? "checked" : "";
printf "<input name=netmask size=15 value=\"%s\"></td>\n",
	$a ? $a->{'netmask'} : "";

print "<td><b>$text{'ifcs_broad'}</b></td> <td>\n";
printf "<input type=radio name=broadcast_def value=1 %s> $text{'ifcs_auto'}\n",
	$a && $a->{'broadcast'} ? "" : "checked";
printf "<input type=radio name=broadcast_def value=0 %s>\n",
	$a && $a->{'broadcast'} ? "checked" : "";
printf "<input name=broadcast size=15 value=\"%s\"></td> </tr>\n",
	$a ? $a->{'broadcast'} : "";

print "<tr> <td><b>$text{'ifcs_mtu'}</b></td> <td>\n";
printf "<input type=radio name=mtu_def value=1 %s> $text{'aifc_default'}\n",
	$a && $a->{'mtu'} ? "" : "checked";
printf "<input type=radio name=mtu_def value=0 %s>\n",
	$a && $a->{'mtu'} ? "checked" : "";
printf "<input name=mtu size=15 value=\"%s\"></td>\n",
	$a ? $a->{'mtu'} : "";

print "<td><b>$text{'ifcs_status'}</b></td> <td>\n";
printf "<input type=radio name=up value=1 %s> $text{'ifcs_up'}\n",
	$a && !$a->{'up'} ? "" : "checked";
printf "<input type=radio name=up value=0 %s> $text{'ifcs_down'}</td> </tr>\n",
	$a && !$a->{'up'} ? "checked" : "";

if ((!$a && $in{'virtual'} eq "") ||
    ($a && $a->{'virtual'} eq "" && &iface_hardware($a->{'name'}))) {
	print "<tr> <td><b>$text{'aifc_hard'}</b></td> <td>\n";
	if ($in{'new'}) {
		printf "<input type=radio name=ether_def value=1 %s> %s\n",
			$a ? "" : "checked", $text{'aifc_default'};
		printf "<input type=radio name=ether_def value=0 %s>\n",
			$a ? "checked" : "";
		}
	printf "<input name=ether size=18 value=\"%s\"></td>\n",
		$a ? $a->{'ether'} : "";
	}
else {
	print "<tr> <td colspan=2></td>\n";
	}
if ($a && $a->{'virtual'} eq "") {
	print "<td><b>$text{'ifcs_virts'}</b></td>\n";
	$vcount = 0;
	foreach $va (@act) {
		if ($va->{'virtual'} ne "" && $va->{'name'} eq $a->{'name'}) {
			$vcount++;
			}
		}
	print "<td>$vcount\n";
	print "(<a href='edit_aifc.cgi?new=1&virtual=$a->{'name'}'>",
	      "$text{'ifcs_addvirt'}</a>)</td>\n";
	}
print "</tr>\n";
     

print "</table></td></tr></table>\n";
print "<table width=100%><tr>\n";
if ($in{'new'}) {
	print "<td><input type=submit value=\"$text{'create'}\"></td>\n";
	}
else {
	print "<td><input type=submit value=\"$text{'save'}\"></td> ",
	      "<td align=right>\n";
	print "<input type=submit name=delete value=\"$text{'delete'}\"></td>\n";
	}
print "</tr></table></form>\n";

print "<hr>\n";
&footer("list_ifcs.cgi", $text{'ifcs_return'});

  07070100015e40000081e40000000000000002000000013ac038a100000fc7000000200000000000000000000000000000001800000003reloc/net/edit_bifc.cgi   #!/usr/local/bin/perl
# edit_bifc.cgi
# Edit or create a bootup interface

require './net-lib.pl';
&ReadParse();
if ($in{'new'}) {
	&header($text{'bifc_create'}, "");
	}
else {
	&header($text{'bifc_edit'}, "");
	@boot = &boot_interfaces();
	$b = $boot[$in{'idx'}];
	}
print "<hr>\n";

print "<form action=save_bifc.cgi>\n";
print "<input type=hidden name=new value=\"$in{'new'}\">\n";
print "<input type=hidden name=idx value=\"$in{'idx'}\">\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>",
      $in{'virtual'} || $b && $b->{'virtual'} ne "" ? $text{'bifc_desc2'}
						    : $text{'bifc_desc1'},
      "</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'ifcs_name'}</b></td> <td>\n";
if ($in{'new'} && $in{'virtual'}) {
	print "<input type=hidden name=name value=$in{'virtual'}>\n";
	print "$in{'virtual'}:<input name=virtual size=3>\n";
	}
elsif ($in{'new'}) {
	print "<input name=name size=6>\n";
	}
else {
	print "<font size=+1><tt>$b->{'fullname'}</tt></font>\n";
	}
print "</td>\n";

print "<td><b>$text{'ifcs_ip'}</b></td> <td>\n";
$virtual = (!$b && $in{'virtual'}) || ($b && $b->{'virtual'} ne "");
$dhcp = &can_edit("dhcp") && !$virtual;
$bootp = &can_edit("bootp") && !$virtual;
if ($dhcp) {
	printf "<input type=radio name=mode value=dhcp %s> %s\n",
		$b && $b->{'dhcp'} ? "checked" : "", $text{'ifcs_dhcp'};
	}
if ($bootp) {
	printf "<input type=radio name=mode value=bootp %s> %s\n",
		$b && $b->{'bootp'} ? "checked" : "", $text{'ifcs_bootp'};
	}
if ($dhcp || $bootp) {
	printf "<input type=radio name=mode value=address %s>\n",
		!$b || (!$b->{'bootp'} && !$b->{'dhcp'}) ? "checked" : "";
	}
else {
	print "<input type=hidden name=mode value=address>\n";
	}
printf "<input name=address size=15 value=\"%s\"></td> </tr>\n",
	$b && !$b->{'bootp'} && !$b->{'dhcp'} ? $b->{'address'} : "";

print "<tr> <td><b>$text{'ifcs_mask'}</b></td>\n";
if (&can_edit("netmask", $b)) {
	printf "<td><input name=netmask size=15 value='%s'></td>\n",
		$b ? $b->{'netmask'} : "";
	}
else {
	printf "<td>%s</td>\n", $b ? $b->{'netmask'} : $text{'ifcs_auto'};
	}

print "<td><b>$text{'ifcs_broad'}</b></td>\n";
if (&can_edit("broadcast", $b)) {
	printf "<td><input name=broadcast size=15 value='%s'></td>\n",
		$b ? $b->{'broadcast'} : "";
	}
else {
	printf "<td>%s</td> </tr>\n", $b ? $b->{'broadcast'}
					 : $text{'ifcs_auto'};
	}

print "<tr> <td><b>$text{'ifcs_mtu'}</b></td>\n";
if (&can_edit("mtu", $b)) {
	printf "<td><input name=mtu size=15 value='%s'></td>\n",
		$b ? $b->{'mtu'} : "";
	}
else {
	printf "<td>%s</td>\n", $b && $b->{'mtu'} ? $b->{'mtu'}
						  : $text{'ifcs_auto'};
	}

print "<td><b>$text{'ifcs_act'}</b></td>\n";
if (&can_edit("up", $b)) {
	printf "<td><input type=radio name=up value=1 %s> $text{'yes'}\n",
		!$b || $b->{'up'} ? "checked" : "";
	printf "<input type=radio name=up value=0 %s> $text{'no'}</td>\n",
		$b && !$b->{'up'} ? "checked" : "";
	}
else {
	printf "<td>%s</td> </tr>\n",
		!$b ? $text{'yes'} :
		$b->{'up'} ? $text{'yes'} : $text{'no'};
	}

print "<tr> <td colspan=2></td>\n";
if ($b && $b->{'virtual'} eq "") {
	print "<td><b>$text{'ifcs_virts'}</b></td>\n";
	$vcount = 0;
	foreach $vb (@boot) {
		if ($vb->{'virtual'} ne "" && $vb->{'name'} eq $b->{'name'}) {
			$vcount++;
			}
		}
	print "<td>$vcount\n";
	print "(<a href='edit_bifc.cgi?new=1&virtual=$b->{'name'}'>",
	      "$text{'ifcs_addvirt'}</a>)</td>\n";
	}
print "</tr>\n";
     

print "</table></td></tr></table>\n";
print "<table width=100%><tr>\n";
if ($in{'new'}) {
	print "<td><input type=submit value=\"$text{'create'}\"></td>\n";
	}
else {
	print "<td><input type=submit value=\"$text{'save'}\"></td>\n";
	if (!($b->{'bootp'} || $b->{'dhcp'})) {
		print "<td align=center><input type=submit ",
		      "name=activate value=\"$text{'bifc_apply'}\"></td>\n";
		}
	print "<td align=right><input type=submit name=delete ",
	      "value=\"$text{'delete'}\"></td>\n";
	}
print "</tr></table></form>\n";

print "<hr>\n";
&footer("list_ifcs.cgi", $text{'ifcs_return'});

 07070100015e41000081e40000000000000002000000013ac038a100000567000000200000000000000000000000000000001700000003reloc/net/edit_dns.cgi    #!/usr/local/bin/perl
# edit_dns.cgi
# Display the DNS client configuration

require './net-lib.pl';
&header($text{'dns_title'}, "");
print "<hr>\n";

$dns = &get_dns_config();
print "<form action=save_dns.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'dns_options'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'dns_hostname'}</b></td>\n";
printf "<td><input name=hostname size=20 value=\"%s\"></td>\n",
	&get_hostname();

print "<td><b>$text{'dns_order'}</b></td>\n";
print "<td>",&order_input($dns),"</td> </tr>\n";

print "<tr> <td valign=top><b>$text{'dns_servers'}</b></td> <td>\n";
for($i=0; $i<$max_dns_servers; $i++) {
	printf "<input name=nameserver_$i size=15 value=\"%s\"><br>\n",
		$dns->{'nameserver'}->[$i];
	}
print "</td>\n";

print "<td valign=top><b>$text{'dns_search'}</b></td> <td valign=top>\n";
printf "<input type=radio name=domain_def value=1 %s> $text{'dns_none'}\n",
	$dns->{'domain'} ? "" : "checked";
printf "<input type=radio name=domain_def value=0 %s> $text{'dns_listed'}\n",
	$dns->{'domain'} ? "checked" : "";
print "<br><textarea name=domain rows=3 cols=30>",
	join("\n", @{$dns->{'domain'}}),"</textarea></td> </tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

 07070100015e42000081e40000000000000002000000013ac038a1000004e3000000200000000000000000000000000000001800000003reloc/net/edit_host.cgi   #!/usr/local/bin/perl
# edit_host.cgi
# Edit or create a host address

require './net-lib.pl';
&ReadParse();
if ($in{'new'}) {
	&header($text{'hosts_create'}, "");
	}
else {
	&header($text{'hosts_edit'}, "");
	@hosts = &list_hosts();
	$h = $hosts[$in{'idx'}];
	}
print "<hr>\n";

print "<form action=save_host.cgi>\n";
print "<input type=hidden name=new value=\"$in{'new'}\">\n";
print "<input type=hidden name=idx value=\"$in{'idx'}\">\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'hosts_detail'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";
print "<tr> <td><b>$text{'hosts_ip'}</b></td>\n";
print "<td><input name=address size=30 value=\"$h->{'address'}\"></td> </tr>\n";
print "<tr $cb> <td valign=top><b>$text{'hosts_host'}</b></td>\n";
print "<td><textarea cols=30 rows=5 name=hosts>",
	join("\n", @{$h->{'hosts'}}),"</textarea></td> </tr>\n";
print "<tr> <td colspan=2 align=right>\n";
if ($in{'new'}) {
	print "<input type=submit value=\"$text{'create'}\">\n";
	}
else {
	print "<input type=submit value=\"$text{'save'}\">\n";
	print "<input type=submit name=delete value=\"$text{'delete'}\">\n";
	}
print "</table></td></tr></table>\n";
print "</form>\n";
print "<hr>\n";
&footer("list_hosts.cgi", $text{'hosts_return'});

 07070100015e43000081a40000000000000002000000013ac038a1000029c4000000200000000000000000000000000000001900000003reloc/net/freebsd-lib.pl  # freebsd-lib.pl
# Networking functions for FreeBSD

# active_interfaces()
# Returns a list of currently ifconfig'd interfaces
sub active_interfaces
{
local(@rv, @lines, $l);
open(IFC, "ifconfig -a |");
while(<IFC>) {
	s/\r|\n//g;
	if (/^\S+:/) { push(@lines, $_); }
	else { $lines[$#lines] .= $_; }
	}
close(IFC);
foreach $l (@lines) {
	local %ifc;
	$l =~ /^([^:\s]+):/;
	$ifc{'name'} = $ifc{'fullname'} = $1;
	if ($l =~ /^(\S+):(\d+):\s/) { $ifc{'virtual'} = $2; }
	if ($l =~ s/inet\s+(\S+)\s+netmask\s+(\S+)\s+broadcast\s+(\S+)//) {
		$ifc{'address'} = $1;
		$ifc{'netmask'} = &parse_hex($2);
		$ifc{'broadcast'} = $3;
		}
	elsif ($l =~ s/inet\s+(\S+)\s+netmask\s+(\S+)//) {
		$ifc{'address'} = $1;
		$ifc{'netmask'} = &parse_hex($2);
		}
	else { next; }
	if ($l =~ /ether\s+(\S+)/) { $ifc{'ether'} = $1; }
	if ($l =~ /mtu\s+(\S+)/) { $ifc{'mtu'} = $1; }
	$ifc{'up'}++ if ($l =~ /\<UP/);
	$ifc{'edit'} = &iface_type($ifc{'name'}) =~ /ethernet|loopback/i;
	$ifc{'index'} = scalar(@rv);
	if ($ifc{'ether'}) {
		$ifc{'ether'} = join(":", map { sprintf "%2.2d", $_ }
					      split(/:/, $ifc{'ether'}));
		}
	push(@rv, \%ifc);

	# Add aliases as virtual interfaces
	local $v = 0;
	while($l =~ s/inet\s+(\S+)\s+netmask\s+(\S+)\s+broadcast\s+(\S+)//) {
		local %vifc = %ifc;
		$vifc{'address'} = $1;
		$vifc{'netmask'} = &parse_hex($2);
		$vifc{'broadcast'} = $3;
		$vifc{'up'} = 1;
		$vifc{'edit'} = $ifc{'edit'};
		$vifc{'virtual'} = $v++;
		$vifc{'fullname'} = $vifc{'name'}.':'.$vifc{'virtual'};
		$vifc{'index'} = scalar(@rv);
		push(@rv, \%vifc);
		}
	}
return @rv;
}

# activate_interface(&details)
# Create or modify an interface
sub activate_interface
{
local %act;
map { $act{$_->{'fullname'}} = $_ } &active_interfaces();
local $old = $act{$_[0]->{'fullname'}};
$act{$_[0]->{'fullname'}} = $_[0];
&interface_sync(\%act, $_[0]->{'name'});
}

# deactivate_interface(&details)
# Deactive an interface
sub deactivate_interface
{
local %act;
local @act = &active_interfaces();
if ($_[0]->{'virtual'} eq '') {
	@act = grep { $_->{'name'} ne $_[0]->{'name'} } @act;
	}
else {
	@act = grep { $_->{'fullname'} ne $_[0]->{'fullname'} } @act;
	}
map { $act{$_->{'fullname'}} = $_ } @act;
&interface_sync(\%act, $_[0]->{'name'});
}

# interface_sync(interfaces, name)
sub interface_sync
{
while(`ifconfig $_[1]` =~ /\s+inet\s+/) {
	&system_logged("ifconfig $_[1] delete >/dev/null 2>&1");
	}
foreach $a (sort { $a->{'fullname'} cmp $b->{'fullname'} }
		 grep { $_->{'name'} eq $_[1] } values(%{$_[0]})) {
	local $cmd = "ifconfig $a->{'name'}";
	if ($a->{'virtual'} ne '') {
		$cmd .= " alias $a->{'address'}";
		}
	else {
		$cmd .= " $a->{'address'}";
		}
	if ($a->{'netmask'}) { $cmd .= " netmask $a->{'netmask'}"; }
	if ($a->{'broadcast'}) { $cmd .= " broadcast $a->{'broadcast'}"; }
	if ($a->{'mtu'}) { $cmd .= " mtu $a->{'mtu'}"; }
	$msg .= "running $cmd<br>\n";
	local $out = &backquote_logged("$cmd 2>&1");
	if ($? && $out !~ /file exists/i) {
		&error($out);
		}
	if ($a->{'virtual'} eq '') {
		if ($a->{'up'}) { $out = `ifconfig $a->{'name'} up 2>&1`; }
		else { $out = &backquote_logged("ifconfig $a->{'name'} down 2>&1"); }
		&error($out) if ($?);
		}
	}
}

# boot_interfaces()
# Returns a list of interfaces brought up at boot time
sub boot_interfaces
{
local %rc = &get_rc_conf();
local @rv;
foreach $r (keys %rc) {
	local $v = $rc{$r};
	local %ifc;
	if ($r =~ /^ifconfig_([a-z0-9]+)$/) {
		# Non-virtual interface
		%ifc = ( 'name' => $1,
			 'fullname' => $1 );
		}
	elsif ($r =~ /^ifconfig_([a-z0-9]+)_alias(\d+)$/) {
		# Virtual interface
		%ifc = ( 'name' => $1,
			 'virtual' => $2,
			 'fullname' => "$1:$2" );
		}
	else { next; }

	if ($v =~ /^inet\s+(\S+)/ || /^([0-9\.]+)/) {
		$ifc{'address'} = $1;
		}
	else { next; }
	local @a = split(/\./, $ifc{'address'});
	if ($v =~ /netmask\s+(0x\S+)/) {
		$ifc{'netmask'} = &parse_hex($1);
		}
	elsif ($v =~ /netmask\s+([0-9\.]+)/) {
		$ifc{'netmask'} = $1;
		}
	else {
		$ifc{'netmask'} = $a[0] >= 192 ? "255.255.255.0" :
				  $a[0] >= 128 ? "255.255.0.0" :
						 "255.0.0.0";
		}
	if ($v =~ /broadcast\s+(0x\S+)/) {
		$ifc{'broadcast'} = &parse_hex($1);
		}
	elsif ($v =~ /broadcast\s+([0-9\.]+)/) {
		$ifc{'broadcast'} = $1;
		}
	else {
		local @n = split(/\./, $ifc{'netmask'});
		$ifc{'broadcast'} = sprintf "%d.%d.%d.%d",
					($a[0] | ~int($n[0]))&0xff,
					($a[1] | ~int($n[1]))&0xff,
					($a[2] | ~int($n[2]))&0xff,
					($a[3] | ~int($n[3]))&0xff;
		}
	$ifc{'mtu'} = $1 if ($v =~ /mtu\s+(\d+)/);
	$ifc{'up'} = 1;
	$ifc{'edit'} = 1;
	$ifc{'index'} = scalar(@rv);
	push(@rv, \%ifc);
	}
return @rv;
}

# save_interface(&details)
# Create or update a boot-time interface
sub save_interface
{
local $str = "inet $_[0]->{'address'}";
$str .= " netmask $_[0]->{'netmask'}" if ($_[0]->{'netmask'});
$str .= " broadcast $_[0]->{'broadcast'}" if ($_[0]->{'broadcast'});
&lock_file("/etc/rc.conf");
if ($_[0]->{'virtual'} eq '') {
	&save_rc_conf('ifconfig_'.$_[0]->{'name'}, $str);
	}
else {
	&save_rc_conf('ifconfig_'.$_[0]->{'name'}.'_alias'.$_[0]->{'virtual'},
		      $str);
	}
&unlock_file("/etc/rc.conf");
}

# delete_interface(&details)
# Delete a boot-time interface
sub delete_interface
{
&lock_file("/etc/rc.conf");
if ($_[0]->{'virtual'} eq '') {
	&save_rc_conf('ifconfig_'.$_[0]->{'name'});
	}
else {
	&save_rc_conf('ifconfig_'.$_[0]->{'name'}.'_alias'.$_[0]->{'virtual'});
	}
&unlock_file("/etc/rc.conf");
}

# iface_type(name)
# Returns a human-readable interface type name
sub iface_type
{
return	$_[0] =~ /^tun/ ? "Loopback tunnel" :
	$_[0] =~ /^sl/ ? "SLIP" :
	$_[0] =~ /^ppp/ ? "PPP" :
	$_[0] =~ /^lo/ ? "Loopback" :
	$_[0] =~ /^ar/ ? "Arnet" :
	$_[0] =~ /^(ax|mx|pn|rl|tx|wb)/ ? "Fast ethernet" :
	$_[0] =~ /^(cs|de|ed|el|ex|fe|fxp|ie|le|lnc|tl|vr|vx|xl|ze|zp)/ ? "Ethernet" : $text{'ifcs_unknown'};
}

# iface_hardware(name)
# Does some interface have an editable hardware address
sub iface_hardware
{
return 0;
}

# can_edit(what)
# Can some boot-time interface parameter be edited?
sub can_edit
{
return $_[0] =~ /netmask|broadcast/;
}

# valid_boot_address(address)
# Is some address valid for a bootup interface
sub valid_boot_address
{
return &check_ipaddress($_[0]);
}

# get_dns_config()
# Returns a hashtable containing keys nameserver, domain, search & order
sub get_dns_config
{
local $dns;
open(RESOLV, "/etc/resolv.conf");
while(<RESOLV>) {
	s/\r|\n//g;
	s/#.*$//g;
	if (/nameserver\s+(.*)/) {
		push(@{$dns->{'nameserver'}}, split(/\s+/, $1));
		}
	elsif (/domain\s+(\S+)/) {
		$dns->{'domain'} = [ $1 ];
		}
	elsif (/search\s+(.*)/) {
		$dns->{'domain'} = [ split(/\s+/, $1) ];
		}
	}
close(RESOLV);

open(HOST, "/etc/host.conf");
while(<HOST>) {
	s/\r|\n//g;
	s/#.*$//;
	push(@{$dns->{'order'}}, $_) if (/\S/);
	}
close(HOST);
return $dns;
}

# save_dns_config(&config)
# Writes out the resolv.conf and nsswitch.conf files
sub save_dns_config
{
&lock_file("/etc/resolv.conf");
open(RESOLV, "/etc/resolv.conf");
local @resolv = <RESOLV>;
close(RESOLV);
open(RESOLV, ">/etc/resolv.conf");
foreach (@{$_[0]->{'nameserver'}}) {
	print RESOLV "nameserver $_\n";
	}
if ($_[0]->{'domain'}) {
	if ($_[0]->{'domain'}->[1]) {
		print RESOLV "search ",join(" ", @{$_[0]->{'domain'}}),"\n";
		}
	else {
		print RESOLV "domain $_[0]->{'domain'}->[0]\n";
		}
	}
foreach (@resolv) {
	print RESOLV $_ if (!/^\s*(nameserver|domain|search)\s+/);
	}
close(RESOLV);
&unlock_file("/etc/resolv.conf");

&lock_file("/etc/host.conf");
open(HOST, ">/etc/host.conf");
foreach (@{$_[0]->{'order'}}) {
	print HOST $_,"\n";
	}
close(HOST);
&unlock_file("/etc/host.conf");
}

$max_dns_servers = 3;

# order_input(&dns)
# Returns HTML for selecting the name resolution order
sub order_input
{
local @o = @{$_[0]->{'order'}};
local ($rv, $i, $j);
local @srcs = ( "", "hosts", "bind", "nis" );
local @srcn = ( "", "Hosts", "DNS", "NIS" );
for($i=1; $i<@srcs; $i++) {
	local $ii = $i-1;
	$rv .= "<select name=order_$ii>\n";
	for($j=0; $j<@srcs; $j++) {
		$rv .= sprintf "<option value=\"%s\" %s>%s\n",
				$srcs[$j],
				$o[$ii] eq $srcs[$j] ? "selected" : "",
				$srcn[$j] ? $srcn[$j] : "&nbsp;";
		}
	$rv .= "</select>\n";
	}
return $rv;
}

# parse_order(&dns)
# Parses the form created by order_input()
sub parse_order
{
local($i, @order);
for($i=0; defined($in{"order_$i"}); $i++) {
	push(@order, $in{"order_$i"}) if ($in{"order_$i"});
	}
$_[0]->{'order'} = \@order;
}

# get_hostname()
sub get_hostname
{
return &get_system_hostname();
}

# save_hostname(name)
sub save_hostname
{
&lock_file("/etc/rc.conf");
&system_logged("hostname $_[0] >/dev/null 2>&1");
&save_rc_conf('hostname', $_[0]);
&unlock_file("/etc/rc.conf");
}

sub routing_input
{
local %rc = &get_rc_conf();
local $defr = $rc{'defaultrouter'};
print "<tr> <td><b>$text{'routes_default'}</b></td> <td>\n";
printf "<input name=defr_def type=radio value=1 %s> %s\n",
	$defr eq 'NO' ? 'checked' : '', $text{'routes_none'};
printf "<input name=defr_def type=radio value=0 %s>\n",
	$defr eq 'NO' ? '' : 'checked';
printf "<input name=defr size=20 value='%s'></td> </tr>\n",
	$defr eq 'NO' ? '' : $defr;

local $gw = $rc{'gateway_enable'};
print "<tr> <td><b>$text{'routes_forward'}</b></td> <td>\n";
printf "<input name=gw type=radio value=YES %s> %s\n",
	$gw eq 'YES' ? 'checked' : '', $text{'yes'};
printf "<input name=gw type=radio value=NO %s> %s</td> </tr>\n",
	$gw eq 'YES' ? '' : 'checked', $text{'no'};

local $rd = $rc{'router_enable'};
print "<tr> <td><b>$text{'routes_routed'}</b></td> <td>\n";
printf "<input name=rd type=radio value=YES %s> %s\n",
	$rd eq 'YES' ? 'checked' : '', $text{'yes'};
printf "<input name=rd type=radio value=NO %s> %s</td> </tr>\n",
	$rd eq 'YES' ? '' : 'checked', $text{'no'};
}

sub parse_routing
{
&lock_file("/etc/rc.conf");
$in{'defr_def'} || &check_ipaddress($in{'defr'}) ||
	&error(&text('routes_edefault', $in{'defr'}));
&save_rc_conf('defaultrouter', $in{'defr_def'} ? 'NO' : $in{'defr'});
&save_rc_conf('gateway_enable', $in{'gw'});
&save_rc_conf('router_enable', $in{'rd'});
&unlock_file("/etc/rc.conf");
}

# save_rc_conf(name, value)
sub save_rc_conf
{
local $found;
open(CONF, "/etc/rc.conf");
local @conf = <CONF>;
close(CONF);
open(CONF, ">/etc/rc.conf");
foreach (@conf) {
	if (/^\s*([^=]+)\s*=\s*(.*)/ && $1 eq $_[0]) {
		print CONF "$_[0]=\"$_[1]\"\n" if (@_ > 1);
		$found++;
		}
	else {
		print CONF $_;
		}
	}
if (!$found && @_ > 1) {
	print CONF "$_[0]=\"$_[1]\"\n";
	}
close(CONF);
}

# get_rc_conf()
sub get_rc_conf
{
local ($file, %rv);
foreach $file ("/etc/defaults/rc.conf", "/etc/rc.conf") {
	open(FILE, $file);
	while(<FILE>) {
		s/\r|\n//g;
		s/#.*$//;
		if (/^\s*([^=\s]+)\s*=\s*"(.*)"/ ||
		    /^\s*([^=\s]+)\s*=\s*(\S+)/) {
			$rv{$1} = $2;
			}
		}
	close(FILE);
	}
return %rv;
}

1;

07070100017239000041ed0000000000000001000000023ac03c2400000000000000200000000000000000000000000000001100000003reloc/net/images  0707010001723a000081a40000000000000002000000013ac038a100000176000000200000000000000000000000000000001900000003reloc/net/images/dns.gif  GIF89a0 0   烫蘤ff   !    ,    0 0  ⻊彥隧詤`.给h遾_澐e陑︶姌矮/z蜂灑褄:L6C鷍舍麫@┥3+墚嬊d^櫌;K襘,F 徝眬付G碾(7 竪x$ h8`鳪R坸(7G傴8皝8劮(j	瞃遥0Zy鑊鹤%玿櫑姺Kq孰;[;鞖泈*y憸豛I蒨2时X寢y⑨*厓 踻畬覙裕掏狠公.顢)h/*V|J:x蠩凣T貏怚;
5慟q淓H5;z2葌U,)*伾2QZRiI軚*壈r鉮栊声'邜昚Jq	搲Q坴f!玓綂礎 ;  07070100017259000081a40000000000000002000000013ac038a100000133000000200000000000000000000000000000001b00000003reloc/net/images/hosts.gif    GIF89a0 0   櫃櫶烫   !    ,    0 0  ⻊彥隧炊 厕价`8~I(抝f(6臍,o:l=秜<_p3E縞碡,a潶UX櫬d絏梉KR穿iL6(陃ir耉鵟,	9艇酉磄鬢'翮秦u槜豖'&喩*6Jjvi鏲C5鏖菻4胱'玵;8K玥,蓢;淂ラ裙y猣*}F\瓛穓榊躻E;N(H紱NI匏lL╈熠峬盹焽k9h篥mBo缭罜'J薤Y鍘P+.嚻  ; 0707010001725a000081a40000000000000002000000013ac038a10000016c000000200000000000000000000000000000001a00000003reloc/net/images/icon.gif GIF87a0 0   烫虣櫃fff          ,    0 0  很0睝珪87粱穪&:Ci灋p-蒸PX缧翃剃喂叐潚t熑闰劂姴悜
橞]刘欗苺_j]跷3焤澽Z搜yv#,b儐t噴/厠巹c弾墥5%晢 憴x>棟瀘B槪x%<▏0{NwyXsF亃P藩j_<eS^\紸驴@莌q噬号.佑蘚纙m; 锤姑5偐掮堝1轫1嶐瘼髮鯔操蜚[eo~a嗖5柔C茽繫X":MK.圏 J带:霿#	q 	騝3捑h磄/g|@]6XYd醣♀軩s婮ゐ鍲])飙
錔) ;0707010001725b000081a40000000000000002000000013ac038a10000016a000000200000000000000000000000000000001a00000003reloc/net/images/ifcs.gif GIF89a0 0   櫃    呓孃@ fff 醆                  !    ,    0 0  菼8胪`(巇i瀐l刖h {乴	x|镧祴 0,壙/x8烵aZ !t@*辟-俏绊綼x\頢榶z<GF9tPvBz<寋9~^7剷帍:圤vmn|o;抴7煆崌u朒棥:燿e憳〾禥8贡I搧~S艂J萵񯏒;hh獴I岳c識@攨;覄:剽渖窡=靕6锪<螳M啉r52`=OQ！脟- A艐3b8ab垗C倲xpF&S猏刹ニ0c胜 ;  0707010001725c000081a40000000000000002000000013ac038a10000013b000000200000000000000000000000000000001c00000003reloc/net/images/routes.gif   GIF89a0 0   烫   櫃欪@QQ      !    ,    0 0  很0蔃+曂Z靷鴃-鴫#i)P歨麊*拈替6>攴谑茄TdFbk蓽翔(*衛u褄熥t@.1硻踠鋡躆 疼w&a焔鯯{r僼v厁圡u-崁噭o寠~仚{憂弾棢#j￥f
エ棭Зo}刀犯购环湴究昧K葼澪团佬矣子
叟 哓)鉳Ia藤M@檗隠骒=箴K蚯鳥0麽]掽獸.[蜙繣M,al0fk篇  ; 07070100015e44000081e40000000000000002000000013ac038a100000224000000200000000000000000000000000000001400000003reloc/net/index.cgi   #!/usr/local/bin/perl
# index.cgi
# Display a menu of various network screens

require './net-lib.pl';
&header($text{'index_title'}, "", undef, 1, 1);
print "<hr>\n";

@links =  ( "list_ifcs.cgi", "list_routes.cgi",
	    "edit_dns.cgi", "list_hosts.cgi" );
@titles = ( $text{'ifcs_title'}, $text{'routes_title'},
	    $text{'dns_title'}, $text{'hosts_title'} );
@icons =  ( "images/ifcs.gif", "images/routes.gif",
	    "images/dns.gif", "images/hosts.gif" );
&icons_table(\@links, \@titles, \@icons);
print "<hr>\n";
&footer("/", $text{'index'});

0707010001b8c6000041ed0000000000000001000000023ac03c2500000000000000200000000000000000000000000000000f00000003reloc/net/lang    0707010001b8c7000081a40000000000000002000000013ac038a100000e02000000200000000000000000000000000000001200000003reloc/net/lang/de index_title=Netzwerk Konfiguration
index_return=Netzwerk Konfiguration

ifcs_title=Netzwerk Interfaces
ifcs_now=Jetzt aktive Interfaces
ifcs_name=Name
ifcs_type=Typ
ifcs_ip=IP Adresse
ifcs_mask=Netzmaske
ifcs_status=Status
ifcs_virtual=Virtuell
ifcs_up=Aktiv
ifcs_down=Inaktiv
ifcs_add=Ein neues Interface hinzuf&uuml;gen
ifcs_boot=Interfaces die beim Booten aktiviert werden
ifcs_act=Aktiviere beim booten?
ifcs_bootp=Von BOOTP
ifcs_dhcp=Von DHCP
ifcs_broad=Broadcast
ifcs_auto=Automatisch
ifcs_mtu=MTU
ifcs_virts=Virtuelle Interfaces
ifcs_addvirt=Virtuelles Interface hinzuf&uuml;gen
ifcs_return=Netzwerk Interfaces

aifc_create=Aktives Interface erstellen
aifc_edit=Aktives Interface bearbeiten
aifc_desc1=Parameter des aktiven Interface
aifc_desc2=Parameter des aktiven virtuellen Interface
aifc_hard=Hardware Adresse
aifc_default=Standard
aifc_err1=Fehler beim L&ouml;schen des Interface
aifc_err2=Fehler beim Speichern des Interface
aifc_evirt=Fehlende oder ung&uuml;ltige Nummer des virtuellen Interface
aifc_evirtdup=Das virtuelle Interface $1 existiert bereits
aifc_edup=Das Interface $1 existiert bereits
aifc_ename=Fehlender oder ung&uuml;ltiger Interface Name
aifc_eip='$1' ist keine g&uuml;ltige IP Adresse
aifc_emask='$1' ist kein g&uuml;ltige Netzmaske
aifc_ebroad='$1' ist keine g&uuml;ltige Broadcast Adresse
aifc_emtu='$1' ist kein g&uuml;ltiger MTU
aifc_ehard='$1' ist keine g&uuml;ltige Hardware Adresse
aifc_eexist=Interface '$1' existiert nicht

bifc_create=Bootup Interface erstellen
bifc_edit=Bootup Interface bearbeiten
bifc_desc1=Parameter f&uuml;r Interface zur Boot-Zeit
bifc_desc2=Parameter f&uuml;r virtuelles Interface zur Boot-Zeit
bifc_apply=Speichern und anwenden
bifc_err1=Fehler beim L&ouml;schen des Interfaces
bifc_err2=Fehler beim Speichern des Interfaces
bifc_evirt=Fehlende oder ung&uuml;ltige Nummer des virtuellen Interfaces
bifc_evirtdup=Das virtuelle Interface $1 existiert bereits
bifc_edup=Das Interface $1 existiert bereits
bifc_ename=Fehlender oder ung&uuml;ltiger Interface Name
bifc_eip='$1' ist keine g&uuml;ltige IP Adresse
bifc_emask='$1' ist kein g&uuml;ltige Netzmaske
bifc_ebroad='$1' ist keine g&uuml;ltige Broadcast Adresse
bifc_emtu='$1' ist kein g&uuml;ltiger MTU
bifc_err3=Fehler beim Aktivieren des Interface


routes_title=Routing und Gateways
routes_boot=Routing-Konfiguration die zur <I>Boot-Zeit</I> aktiviert wird
routes_default=Standard Router
routes_none=Keiner
routes_device=Ger&auml;t
routes_gateway=Gateway
routes_forward=Dieser Rechner ist Router?
routes_routed=Starte Dienst f&uuml;r dynamische Routen?
routes_edefault='$1' ist kein g&uuml;ltiger Standard Router
routes_edevice='$1' ist kein g&uuml;ltiges Ger&auml;t
routes_device2=Standard Route Ger&auml;t
routes_static=Statische Routen
routes_ifc=Interface
routes_net=Netzwerk
routes_mask=Netzmaske
routes_enet='$1' ist kein g&uuml;ltiges Netzwerk
routes_emask='$1' ist keine g&uuml;ltige Netzmaske
routes_egateway='$1' ist kein g&uuml;ltiges Gateway
routes_defaults=Standard Router
routes_possible=Wenn verf&uuml;gbar
routes_local=Lokale Routen

dns_title=DNS Client
dns_options=DNS Client Einstellungen
dns_hostname=Hostname
dns_order=Aufl&ouml;sungs-Reihenfolge
dns_servers=DNS Server
dns_search=Such-Domains
dns_none=Keine
dns_listed=Aufgelistete ..
dns_eorder=Fehlende Aufl&ouml;sungs-Reihenfolge

hosts_title=Host Adressen
hosts_ip=IP Adresse
hosts_host=Hostname
hosts_add=Eine neue Host-Adresse hinzuf&uuml;gen
hosts_edit=Host Adresse bearbeiten
hosts_create=Host Adresse hinzuf&uuml;gen
hosts_detail=Hosts end Adressen
hosts_return=Host Adress-Liste
  0707010001b8c8000081a40000000000000002000000013ac038a100000e49000000200000000000000000000000000000001200000003reloc/net/lang/en index_title=Network Configuration
index_return=network configuration

ifcs_title=Network Interfaces
ifcs_now=Interfaces Active Now
ifcs_name=Name
ifcs_type=Type
ifcs_ip=IP Address
ifcs_mask=Netmask
ifcs_status=Status
ifcs_virtual=Virtual
ifcs_up=Up
ifcs_down=Down
ifcs_add=Add a new interface
ifcs_boot=Interfaces Activated at Boot Time
ifcs_act=Activate at boot?
ifcs_bootp=From BOOTP
ifcs_dhcp=From DHCP
ifcs_broad=Broadcast
ifcs_auto=Automatic
ifcs_mtu=MTU
ifcs_virts=Virtual interfaces
ifcs_addvirt=Add virtual interface
ifcs_return=network interfaces
ifcs_unknown=Unknown

aifc_create=Create Active Interface
aifc_edit=Edit Active Interface
aifc_desc1=Active Interface Parameters
aifc_desc2=Active Virtual Interface Parameters
aifc_hard=Hardware address
aifc_default=Default
aifc_err1=Failed to delete interface
aifc_err2=Failed to save interface
aifc_evirt=Missing or invalid virtual interface number
aifc_evirtdup=The virtual interface $1 already exists
aifc_edup=The interface $1 already exists
aifc_ename=Missing or invalid interface name
aifc_eip='$1' is not a valid IP address
aifc_emask='$1' is not a valid netmask
aifc_ebroad='$1' is not a valid broadcast address
aifc_emtu='$1' is not a valid MTU
aifc_ehard='$1' is not a valid hardware address
aifc_eexist=Interface '$1' does not exist

bifc_create=Create Bootup Interface
bifc_edit=Edit Bootup Interface
bifc_desc1=Boot Time Interface Parameters
bifc_desc2=Boot Time Virtual Interface Parameters
bifc_apply=Save and Apply
bifc_err1=Failed to delete interface
bifc_err2=Failed to save interface
bifc_evirt=Missing or invalid virtual interface number
bifc_evirtdup=The virtual interface $1 already exists
bifc_edup=The interface $1 already exists
bifc_ename=Missing or invalid interface name
bifc_eip='$1' is not a valid IP address
bifc_emask='$1' is not a valid netmask
bifc_ebroad='$1' is not a valid broadcast address
bifc_emtu='$1' is not a valid MTU
bifc_err3=Failed to activate interface

routes_title=Routing and Gateways
routes_boot=Routing configuration activated at <i>boot time</i>
routes_default=Default router
routes_none=None
routes_device=Device
routes_gateway=Gateway
routes_forward=Act as router?
routes_routed=Start route discovery daemon?
routes_edefault='$1' is not a valid default router
routes_edevice='$1' is not a valid device
routes_device2=Default route device
routes_static=Static routes
routes_ifc=Interface
routes_net=Network
routes_mask=Netmask
routes_enet='$1' is not a valid network
routes_emask='$1' is not a valid netmask
routes_egateway='$1' is not a valid gateway
routes_defaults=Default routers
routes_possible=If possible
routes_local=Local routes
routes_err=Failed to save routing

dns_title=DNS Client
dns_options=DNS Client Options
dns_hostname=Hostname
dns_order=Resolution order
dns_servers=DNS servers
dns_search=Search domains
dns_none=None
dns_listed=Listed ..
dns_eorder=Missing resolution order

hosts_title=Host Addresses
hosts_ip=IP Address
hosts_host=Hostnames
hosts_add=Add a new host address
hosts_edit=Edit Host Address
hosts_create=Create Host Address
hosts_detail=Host and Addresses
hosts_return=host addresses list

log_create_host=Created host address $1
log_delete_host=Deleted host address $1
log_modify_host=Modified host address $1
log_dns=Changed DNS client options
log_routes=Changed routing and gateways options
log_create_aifc=Activated interface $1 address $2
log_modify_aifc=Reactivated interface $1 address $2
log_delete_aifc=Deactivated interface $1 address $2
log_create_bifc=Created interface $1 address $2
log_modify_bifc=Modified interface $1 address $2
log_delete_bifc=Deleted interface $1 address $2
log_dyn=dynamic

   0707010001b8c9000081a40000000000000002000000013ac038a100000fde000000200000000000000000000000000000001200000003reloc/net/lang/es index_title=Configuraci髇 de Red
index_return=configuraci髇 de red

ifcs_title=Interfaces de Red
ifcs_now=Interfaces Activas en este Momento
ifcs_name=Nombre
ifcs_type=Tipo
ifcs_ip=Direcci髇 IP
ifcs_mask=M醩cara de Red
ifcs_status=Estado
ifcs_virtual=Virtual
ifcs_up=Levantada
ifcs_down=Bajada
ifcs_add=A馻dir una nueva interfaz
ifcs_boot=Interfaces Activadas en el Momento de Arrancar
ifcs_act=縇a activo al arrancar?
ifcs_bootp=Desde BOOTP
ifcs_dhcp=Desde DHCP
ifcs_broad=Difusi髇 (Broadcast)
ifcs_auto=Autom醫ica
ifcs_mtu=MTU
ifcs_virts=Interfaces virtuales
ifcs_addvirt=A馻dir interfaz virtual
ifcs_return=interfaces de red
ifcs_unknown=Desconocida

aifc_create=Crear Interfaz Activa
aifc_edit=Editar Interfaz Activa
aifc_desc1=Par醡etros de Interfaz Activa
aifc_desc2=Activar Par醡etros de Interfaz Virtual
aifc_hard=Direcci髇 de Hardware
aifc_default=Por defecto
aifc_err1=Fall al borrar interfaz
aifc_err2=Fall al salvar interfaz
aifc_evirt=N鷐ero de interfaz virtual perdido o inv醠ido
aifc_evirtdup=Ya existe la interfaz virtual $1
aifc_edup=Ya existe la interfaz $1
aifc_ename=Nombre de interfaz perdido o inv醠ido
aifc_eip='$1' no es una direcci髇 IP v醠ida
aifc_emask='$1' no es una m醩cara de red v醠ida
aifc_ebroad='$1' no es una direcci髇 de difusi髇 (broadcast) v醠ida
aifc_emtu='$1' no es una MTU v醠ida
aifc_ehard='$1' no es una direcci髇 de hardware v醠ida
aifc_eexist=La interfaz '$1' no existe

bifc_create=Crear Interfaz de Arranque
bifc_edit=Editar Interfaz de Arranque
bifc_desc1=Par醡etros de Interfaz de Arranque
bifc_desc2=Par醡etros de Interfaz Virtual de Arranque
bifc_apply=Salvar y Aplicar
bifc_err1=Fall al borrar interfaz
bifc_err2=Fall al salvar interfaz
bifc_evirt=N鷐ero de interfaz virtual perdido o inv醠ido
bifc_evirtdup=Ya existe la interfaz virutal $1
bifc_edup=Ya existe la interfaz $1
bifc_ename=Nombre de interfaz perdido o inv醠ido
bifc_eip='$1' no es una direcci髇 IP v醠ida
bifc_emask='$1' no es una m醩cara de red v醠ida
bifc_ebroad='$1' no es una direcci髇 de difusi髇 (broadcast) v醠ida
bifc_emtu='$1' no es una MTU v醠ida
bifc_err3=Fall al activar interfaz

routes_title=Enrutamiento y Pasarelas
routes_boot=Configuraci髇 de enrutamiento activada en el <i>arranque</i>
routes_default=Enrutador por defecto
routes_none=Ninguno
routes_device=Dispositivo
routes_gateway=Pasarela
routes_forward=緼ct鷒 como si fuera un enrutador?
routes_routed=緼rranco demonio descubridor de rutas?
routes_edefault='$1' no es un enrutador por defecto v醠ido
routes_edevice='$1' no es un dispositivo v醠ido
routes_device2=Dispositivo de ruta por defecto
routes_static=Rutas est醫icas
routes_ifc=Interfaz
routes_net=Red
routes_mask=M醩cara de red
routes_enet='$1' no es una red v醠ida
routes_emask='$1' no es una m醩cara de red v醠ida
routes_egateway='$1' no es una pasarela v醠ida
routes_defaults=Enrutadores por defecto
routes_possible=Si es posible
routes_local=Rutas locales
routes_err=No pude salvar enrutamiento

dns_title=Cliente DNS 
dns_options=Opciones de Cliente DNS
dns_hostname=Nombre de m醧uina
dns_order=Orden de Resoluci髇
dns_servers=Servidores DNS
dns_search=Buscar dominios
dns_none=Ninguno
dns_listed=Listado...
dns_eorder=Orden de resoluci髇 perdido

hosts_title=Direcci髇 de M醧uina
hosts_ip=Direcci髇 IP
hosts_host=Nombres de m醧uina
hosts_add=A馻dir nueva direcci髇 de m醧uina
hosts_edit=Editar Direcci髇 de M醧uina
hosts_create=Crear Direcci髇 de M醧uina
hosts_detail=M醧uina y Direcciones
hosts_return=lista de direcciones de m醧uina

log_create_host=Creada direcci髇 de m醧uina $1
log_delete_host=Borrada direcci髇 de m醧uina $1
log_modify_host=Modificada direcci髇 de m醧uina $1
log_dns=Cambiadas opciones de cliente DNS
log_routes=Cambiadas opciones de enrutamiento y pasarela
log_create_aifc=Activada interfaz $1 direcci髇 $2
log_modify_aifc=Reactivada interfaz $1 direcci髇 $2
log_delete_aifc=Desactivada interfaz $1 direcci髇 $2
log_create_bifc=Creada interfaz $1 direcci髇 $2
log_modify_bifc=Modificada interfaz $1 direcci髇 $2
log_delete_bifc=Borrada interfaz $1 direcci髇 $2
log_dyn=din醡ico

  0707010001b8ca000081a40000000000000002000000013ac038a100000d57000000200000000000000000000000000000001200000003reloc/net/lang/fr index_title=Configuration R閟eau
index_return=configuration r閟eau

ifcs_title=Interfaces R閟eau
ifcs_now=Interfaces Active
ifcs_name=Nom
ifcs_type=Type
ifcs_ip=IP Adresse
ifcs_mask=Masque de sous-r閟eau
ifcs_status=蓆at
ifcs_virtual=Virtuel
ifcs_up=Effectif
ifcs_down=Arr阾
ifcs_add=Ajouter une nouvelle interface
ifcs_boot=Interfaces Permanente
ifcs_act=Permanente?
ifcs_bootp=Par BOOTP
ifcs_dhcp=Par DHCP
ifcs_broad=Adresse de diffusion
ifcs_auto=Automatique
ifcs_mtu=MTU (Unit de transfert maximal)
ifcs_virts=Interfaces virtuelles
ifcs_addvirt=Ajouter une interface virtuelle
ifcs_return=interfaces r閟eau

aifc_create=Cr閑r une Interface Active
aifc_edit=蒬iter une Interface Active
aifc_desc1=Param鑤res d'une Interface Active
aifc_desc2=Param鑤res d'une Interface Virtuel Active
aifc_hard=Adresse mat閞ielle
aifc_default=D閒aut
aifc_err1=Impossible de supprimer l'interface
aifc_err2=Impossible d'enregistrer l'interface
aifc_evirt=Num閞o d'interface virtuel inconnu ou invalide
aifc_evirtdup=L'interface virtuelle $1 existe d閖
aifc_edup=L'interface $1 existe d閖
aifc_ename=Nom d'interface inconnu ou invalide
aifc_eip=$1 n'est pas une adresse IP valide
aifc_emask=$1 n'est pas un masque de sous-r閟eau valide
aifc_ebroad=$1 n'est pas une adresse de diffusion valide
aifc_emtu=$1 n'est pas un MTU valide
aifc_ehard=$1 n'est pas une adresse mat閞ielle valide
aifc_eexist=L'interface $1 n'existe pas

bifc_create=Cr閑r une Interface Permanente
bifc_edit=蒬iter une Interface Permanente
bifc_desc1=Param鑤re de l'Interface Permanente
bifc_desc2=Param鑤re de l'Interface Virtuel Permanente
bifc_apply=Enregistrer et Appliquer
bifc_err1=Impossible de supprimer l'interface
bifc_err2=Impossible de sauvegarder l'interface
bifc_evirt=Num閞o d'interface virtuel inconnu ou invalide
bifc_evirtdup=L'interface virtuelle $1 existe d閖
bifc_edup=L'interface $1 existe d閖
bifc_ename=Nom d'interface inconnu ou invalide
bifc_eip=$1 n'est pas une adresse IP valide
bifc_emask=$1 n'est pas un masque de sous-r閟eau valide
bifc_ebroad=$1 n'est pas une adresse de diffusion valide
bifc_emtu=$1 n'est pas un MTU valide
bifc_err3=Impossible d'activer l'interface

routes_title=Passerelles et Routage
routes_boot=Configuration de routage activ au <i>d閙arrage</i>
routes_default=Routeur par d閒aut
routes_none=Aucun
routes_device=P閞iph閞ique
routes_gateway=Passerelle
routes_forward=Agir comme routeur?
routes_edefault=$1 n'est pas un routeur par d閒aut valide
routes_edevice=$1 n'est pas un p閞iph閞ique valide
routes_device2=P閞iph閞ique par d閒aut de routage
routes_static=Routes statique
routes_ifc=Interface
routes_net=R閟eau
routes_mask=Masque de sous-r閟eau
routes_enet=$1 n'est pas un r閟eau valide
routes_emask=$1 n'est pas un masque de sous-r閟eau valide
routes_egateway=$1 n'est pas une passerelle non valide
routes_defaults=Routeur par d閒aut
routes_possible=Si possible
routes_local=Routes locale

dns_title=Client DNS
dns_options=Options du Client DNS
dns_hostname=Nom d'h魌e
dns_order=Ordre de r閟olution
dns_servers=Serveurs DNS
dns_search=Domaines de recherche
dns_none=Aucun
dns_listed=List
dns_eorder=Ordre de r閟olution introuvable

hosts_title=Adresses de l'H魌e
hosts_ip=Adresses IP
hosts_host=Noms d'h魌e
hosts_add=Ajouter une nouvelle adresse d'h魌e
hosts_edit=蒬iter l'Adresse d'H魌e
hosts_create=Cr閑r l'Adresse d'H魌e
hosts_detail=H魌es et Adresses
hosts_return=liste des adresses d'h魌es
 0707010001b8cb000081a40000000000000002000000013ac038a100000f4d000000200000000000000000000000000000001200000003reloc/net/lang/pl index_title=Konfiguracja sieci
index_return=konfiguracji sieci

ifcs_title=Interfejsy sieciowe
ifcs_now=Interfejsy aktywne obecnie
ifcs_name=Nazwa
ifcs_type=Rodzaj
ifcs_ip=Adres IP
ifcs_mask=Maska sieci
ifcs_status=Stan
ifcs_virtual=wirtualny
ifcs_up=Podniesiony
ifcs_down=Wy潮czony
ifcs_add=Dodaj nowy interfejs
ifcs_boot=Interfejsy aktywne podczas startu
ifcs_act=Podnie舵 przy starcie?
ifcs_bootp=BOOTP
ifcs_dhcp=DHCP
ifcs_broad=Broadcast
ifcs_auto=Automatycznie
ifcs_mtu=MTU
ifcs_virts=Interfejsy wirtualne
ifcs_addvirt=Dodaj interfejs wirtualny
ifcs_return=interfejs體 sieciowych

aifc_create=Utw髍z interfejs aktywny
aifc_edit=Zmie interfejs aktywny
aifc_desc1=Dane interfejsu aktywnego
aifc_desc2=Dane wirtualnego interfejsu aktywnego
aifc_hard=Adres sprz阾owy
aifc_default=Domy秎ne
aifc_err1=Nie uda硂 si usun辨 interfejsu
aifc_err2=Nie uda硂 si zachowa interfejsu
aifc_evirt=Brak lub nieprawid硂wy numer interfejsu wirtualnego
aifc_evirtdup=Interfejs wirtualny $1 ju istnieje
aifc_edup=Interfejs $1 ju istnieje
aifc_ename=Brak lub nieprawid硂wa nazwa interfejsu
aifc_eip='$1' nie jest poprawnym adresem IP
aifc_emask='$1' nie jest poprawn mask sieci
aifc_ebroad='$1' nie jest poprawnym adresem broadcastu
aifc_emtu='$1' nie jest poprawnym MTU
aifc_ehard='$1' nie jest poprawnym adresem sprz阾owym
aifc_eexist=Interfejs '$1' nie istnieje

bifc_create=Utw髍z interfejs startowy
bifc_edit=Zmie interfejs startowy
bifc_desc1=Dane interfejsu startowego
bifc_desc2=Dane wirtualnego interfejsu startowego
bifc_apply=Zachowaj i zastosuj
bifc_err1=Nie uda硂 si usun辨 interfejsu
bifc_err2=Nie uda硂 si zachowa interfejsu
bifc_evirt=Brak lub nieprawid硂wy numer interfejsu wirtualnego
bifc_evirtdup=Interfejs wirtualny $1 ju istnieje
bifc_edup=Interfejs $1 ju istnieje
bifc_ename=Brak lub nieprawid硂wa nazwa interfejsu
bifc_eip='$1' nie jest poprawnym adresem IP
bifc_emask='$1' nie jest poprawn mask sieci
bifc_ebroad='$1' nie jest poprawnym adresem broadcastu
bifc_emtu='$1' nie jest poprawnym MTU
bifc_err3=Nie uda硂 si uaktywni interfejsu

routes_title=Routing i bramki
routes_boot=Konfiguracja routingu przy <i>starcie systemu</i>
routes_default=Domy秎na bramka
routes_none=Brak
routes_device=Interfejs
routes_gateway=Bramka
routes_forward=Pracowa jako router?
routes_routed=Uruchomi demona obs硊gi routingu?
routes_edefault='$1' nie jest poprawn domy秎n bramk
routes_edevice='$1' nie jest poprawnym urz眃zeniem
routes_device2=Urz眃zenie domy秎nej bramki
routes_static=Routing statyczny
routes_ifc=Interfejs
routes_net=Sie
routes_mask=Maska sieci
routes_enet='$1' nie jest poprawn sieci
routes_emask='$1' nie jest poprawn mask sieci
routes_egateway='$1' nie jest poprawn bramk
routes_defaults=Domy秎ne routery
routes_possible=Je秎i mo縧iwe
routes_local=Routing lokalny
routes_err=Nie uda硂 si zachowa routingu

dns_title=Klient DNS
dns_options=Opcje klienta DNS
dns_hostname=Nazwa hosta
dns_order=Kolejno舵 rozwi眤ywania nazw
dns_servers=Serwery DNS
dns_search=Przeszukiwa domeny
dns_none=痑dnej
dns_listed=Wymienione ..
dns_eorder=Brak kolejno禼i rozwi眤ywania nazw

hosts_title=Adresy host體
hosts_ip=Adres IP
hosts_host=Nazwy hosta
hosts_add=Dodaj nowy adres hosta
hosts_edit=Zmie adres hosta
hosts_create=Utw髍z adres hosta
hosts_detail=Hosty i&nbsp;adresy
hosts_return=listy adres體 host體

log_create_host=Utworzono host o&nbsp;adresie $1
log_delete_host=Skasowano host o&nbsp;adresie $1
log_modify_host=Zmieniono host o&nbsp;adresie $1
log_dns=Zmieniono opcje klienta DNS
log_routes=Zmieniono opcje routingu i&nbsp;bramek
log_create_aifc=Aktywowano interfejs $1 o&nbsp;adresie $2
log_modify_aifc=Reaktywowano interfejs $1 o&nbsp;adresie $2
log_delete_aifc=Dezaktywowano interfejs $1 o&nbsp;adresie $2
log_create_bifc=Utworzono interfejs $1 o&nbsp;adresie $2
log_modify_bifc=Zmieniono interfejs $1 o&nbsp;adresie $2
log_delete_bifc=Usuni阾o interfejs $1 o&nbsp;adresie $2
   0707010001b8cc000081a40000000000000002000000013ac038a100000ce8000000200000000000000000000000000000001200000003reloc/net/lang/pt index_title=Configura玢o de Rede
index_return=configura玢o de rede

ifcs_title=Interfaces de Rede
ifcs_now=Interfaces Activas
ifcs_name=Nome
ifcs_type=Tipo
ifcs_ip=Endere鏾 IP
ifcs_mask=M醩cara de sub-rede
ifcs_status=Estado
ifcs_virtual=Virtual
ifcs_up=Up
ifcs_down=Down
ifcs_add=Adicionar nova interface
ifcs_boot=Interfaces Activadas no Arranque
ifcs_act=Activar no arranque?
ifcs_bootp=De BOOTP
ifcs_dhcp=De DHCP
ifcs_broad=Broadcast
ifcs_auto=Autom醫ico
ifcs_mtu=MTU
ifcs_virts=Interfaces Virtuais
ifcs_addvirt=Adicionar interface virtual
ifcs_return=interfaces de rede

aifc_create=Criar Interface Activa
aifc_edit=Editar Interface Activa
aifc_desc1=Par鈓etros da Interface Activa
aifc_desc2=Par鈓etros da Interface Activa Virtual
aifc_hard=Endere鏾 de hardware
aifc_default=Predefinido
aifc_err1=Falha ao apagar interface
aifc_err2=Falha ao guardar interface
aifc_evirt=N鷐ero da interface virtual em falta ou inv醠ido
aifc_evirtdup=A interface virtual $1 j existe
aifc_edup=A interface $1 j existe
aifc_ename=Nome da interface em falta ou inv醠ido
aifc_eip='$1' n鉶  um endere鏾 IP v醠ido
aifc_emask='$1' n鉶  uma m醩cara de sub-rede v醠ida
aifc_ebroad='$1' n鉶  um endere鏾 de broadcast v醠ido
aifc_emtu='$1' n鉶  um MTU v醠ido
aifc_ehard='$1' n鉶  um endere鏾 de hardware v醠ido
aifc_eexist=A interface '$1' n鉶 existe

bifc_create=Criar Interface de Arranque
bifc_edit=Editar Interface de Arranque
bifc_desc1=Par鈓etros da Interface no Arranque
bifc_desc2=Par鈓etros da Interface Virtual no Arranque
bifc_apply=Guardar e Aplicar
bifc_err1=Falha ao apagar interface
bifc_err2=Falha ao guardar interface
bifc_evirt=N鷐ero da interface virtual em falta ou inv醠ido
bifc_evirtdup=A interface virtual $1 j existe
bifc_edup=A interface $1 j existe
bifc_ename=Nome da interface em falta ou inv醠ido
bifc_eip='$1' n鉶  um endere鏾 de IP v醠ido
bifc_emask='$1' n鉶  uma m醩cara de sub-rede v醠ida
bifc_ebroad='$1' n鉶  um endere鏾 de broadcast v醠ido
bifc_emtu='$1' n鉶  um MTU v醠ido
bifc_err3=Falha ao activar interface

routes_title=Routing e Gateways
routes_boot=Configura玢o de routing activado no <i>arranque</i>
routes_default=Router predefinido
routes_none=Nenhum
routes_device=Dispositivo
routes_gateway=Gateway
routes_forward=Actuar como um router?
routes_edefault='$1' n鉶  um router predefinido v醠ido
routes_edevice='$1' n鉶  um dispositivo v醠ido
routes_device2=Dispositivo router predefinido
routes_static=Routes Est醫icas
routes_ifc=Interface
routes_net=Rede
routes_mask=M醩cara de sub-rede
routes_enet='$1' n鉶  uma rede v醠ida
routes_emask='$1' n鉶  uma m醩cara de sub-rede v醠ida
routes_egateway='$1' n鉶  um gateway v醠ido
routes_defaults=Routers predefinidos
routes_possible=Se possivel
routes_local=Routes locais

dns_title=Cliente DNS
dns_options=Op珲es do Cliente DNS
dns_hostname=Nome do Anfitri鉶
dns_order=Ordem de resolu玢o
dns_servers=Servidores DNS
dns_search=Procurar dom韓ios
dns_none=Nenhum
dns_listed=Listados ..
dns_eorder=Ordem de resolu玢o em falta

hosts_title=Endere鏾s do Anfitri鉶
hosts_ip=Endere鏾 IP
hosts_host=Nome do Anfitri鉶
hosts_add=Adicionar novos endere鏾s do anfitri鉶
hosts_edit=Editar Endere鏾s do Anfitri鉶
hosts_create=Criar Endere鏾s do Anfitri鉶
hosts_detail=Anfitri鉶 e Endere鏾s
hosts_return=lista de endere鏾s do anfitri鉶
0707010001b8cd000081a40000000000000002000000013ac038a100000d76000000200000000000000000000000000000001500000003reloc/net/lang/ru_RU  ifcs_broad=罔痤觐忮.
routes_ifc=软蝈痿彘
ifcs_now=软蝈痿彘覃 狸蜩忭 彦轺囫
bifc_emask='$1' 礤 怆弪 漕矬耱桁铋 皴蝈忸 爨耜铋
ifcs_addvirt=念徉忤螯 忤痱筻朦睇 桧蝈痿彘
aifc_evirt=项蝈 桦 礤忮痦 眍戾 忤痱筻朦眍泐 桧蝈痿彘襦
ifcs_title=彦蝈恹 软蝈痿彘覃
ifcs_up=项漤
routes_none=湾
bifc_edup=软蝈痿彘 $1 箧 耋耱怏弪
routes_device2=玉蝠铋耱忸 爨瘌痼蜩玎鲨 镱 箪铍鬣龛
hosts_return=耧桉铌 噤疱耦 躅耱钼
aifc_ehard='$1' 礤 怆弪 漕矬耱桁 囡镟疣蝽 噤疱耦
routes_mask=锑耜 皴蜩
index_return=磬耱痤殛 皴蜩
bifc_evirt=项蝈 桦 礤忮痦 眍戾 忤痱筻朦眍泐 桧蝈痿彘襦
hosts_title=冷疱襦 疹耱钼
dns_servers=DNS 皴疴屦
hosts_detail=疹耱  冷疱襦
ifcs_virts=妈痱筻朦睇 桧蝈痿彘覃
aifc_eip='$1' 礤 怆弪 漕矬耱桁 IP 噤疱耦
dns_search=项桉  漕戾磬
routes_title=仉  锑瘌痼蜩玎鲨
bifc_apply=杨躔囗栩  橡桧螯
ifcs_return=皴蝈恹 桧蝈痿彘覃
aifc_ebroad='$1' 礤 怆弪 漕矬耱桁 痤觐忮蝈朦睇 噤疱耦
aifc_ename=项蝈眍 桦 礤忮痦铄 桁 桧蝈痿彘襦
aifc_err1=硒栳赅 镳 箐嚯屙梃 桧蝈痿彘襦
aifc_err2=硒栳赅 镳 耦躔囗屙梃 桧蝈痿彘襦
ifcs_mask=锑耜 皴蜩
routes_static=羊囹梓羼觇 爨瘌痼螓
ifcs_status=杨耱龛
dns_none=湾
routes_default=锑瘌痼蜩玎蝾 镱 箪铍鬣龛
routes_enet='$1' 礤 怆弪 漕矬耱桁铋 皴螯 邂铋 爨耜铋
bifc_ename=项蝈眍 桦 礤忮痦铄 桁 桧蝈痿彘襦
ifcs_auto=棱蝾爨蜩麇耜
aifc_evirtdup=妈痱筻朦睇 桧蝈痿彘 $1 箧 耋耱怏弪
bifc_err1=硒栳赅 镳 箐嚯屙梃 桧蝈痿彘襦
bifc_err2=硒栳赅 镳 耦躔囗屙梃 桧蝈痿彘襦
bifc_err3=硒栳赅 镳 嚓蜩忄鲨 桧蝈痿彘襦
routes_boot=相疣戾蝠 爨瘌痼蜩玎鲨 嚓蜩忤玷痼屐 忸 怵屐 <i>耱囵蜞</i>
routes_emask='$1' 礤 怆弪 漕矬耱桁铋 皴蝈忸 爨耜铋
bifc_create=杨玟囗桢 羊囵蝾忸泐 软蝈痿彘襦
routes_edefault='$1' 礤 怆弪 漕矬耱桁 爨瘌痼蜩玎蝾痤 镱 箪铍鬣龛
hosts_host=褥屙 疹耱钼
ifcs_mtu=MTU
routes_defaults=仉 镱 箪铍鬣龛
index_title=袜耱痤殛 彦蜩
bifc_evirtdup=妈痱筻朦睇 桧蝈痿彘 $1 箧 耋耱怏弪
routes_net=彦螯
routes_forward=朽犷蜞弪 赅 爨瘌痼蜩玎蝾?
ifcs_bootp=项 BOOTP
hosts_add=念徉忤螯 眍恹 噤疱 躅耱
dns_order=项漕 疣琊屮屙
dns_eorder=项蝈 镱漕 疣琊屮屙
dns_title=孰桢眚 DNS
aifc_desc1=相疣戾蝠 狸蜩忭钽 软蝈痿彘襦
aifc_desc2=相疣戾蝠 狸蜩忭钽 妈痱筻朦眍泐 软蝈痿彘襦
ifcs_boot=软蝈痿彘覃 狸蜩忤玷痼屐 镳 羊囵蝈 谚耱屐
aifc_emtu='$1' 礤 怆弪 漕矬耱桁 MTU
aifc_edit=绣溧牝桊钼囗桢 狸蜩忭钽 软蝈痿彘襦
ifcs_virtual=妈痱筻腠
routes_device=玉蝠铋耱忸
aifc_default=项 箪铍鬣龛
ifcs_name=褥
routes_local=祟赅朦睇 爨瘌痼螓
routes_edevice='$1' 礤 怆弪 漕矬耱桁 篑蝠铋耱忸
ifcs_ip=IP 冷疱
bifc_desc1=相疣戾蝠 羊囵蝾忸泐 软蝈痿彘襦
bifc_desc2=相疣戾蝠 妈痱筻朦眍泐 羊囵蝾忸泐 软蝈痿彘襦
bifc_eip='$1' 礤 怆弪 漕矬耱桁 IP 噤疱耦
routes_gateway=仉
aifc_emask='$1' 礤 怆弪 漕矬耱桁铋 皴蝈忸 爨耜铋
aifc_eexist=软蝈痿彘 '$1' 礤 耋耱怏弪
bifc_emtu='$1' 礤 怆弪 漕矬耱桁
aifc_create=杨玟囗桢 狸蜩忭钽 软蝈痿彘襦
hosts_edit=绣溧牝桊钼囹 冷疱 疹耱
ifcs_act=狸蜩忮 镳 耱囵蝈?
dns_listed=襄疱麒耠屙睇 ..
ifcs_add=念徉忤螯 眍恹 桧蝈痿彘
bifc_edit=绣溧牝桊钼囗桢 羊囵蝾忸泐 软蝈痿彘襦
ifcs_dhcp=项 DHCP
ifcs_type=诣
hosts_create=杨玟囹 冷疱 疹耱
hosts_ip=IP 冷疱
bifc_ebroad='$1' 礤 怆弪 漕矬耱桁 痤觐忮蝈朦睇 噤疱耦
dns_hostname=褥 躅耱
dns_options=相疣戾蝠 DNS 觌桢眚
ifcs_down=物簌屙
aifc_hard=里镟疣蝽 噤疱
routes_egateway='$1' 礤 怆弪 漕矬耱桁 铎
aifc_edup=软蝈痿彘 $1 箧 耋耱怏弪
routes_possible=篷腓 忸珈铈眍
  0707010001b8ce000081a40000000000000002000000013ac038a100000d7c000000200000000000000000000000000000001500000003reloc/net/lang/ru_SU  index_title=盍釉蚁仕 笈陨
index_return=瘟釉蚁仕 优陨

ifcs_title=笈耘踪 槲耘移攀淤
ifcs_now=槲耘移攀淤 崴陨孜倥 笈兽劣
ifcs_name=橥
ifcs_type=羯
ifcs_ip=IP 崮遗
ifcs_mask=砹铀 优陨
ifcs_status=笙釉涎紊
ifcs_virtual=魃以樟涛偈
ifcs_up=鹣奈言
ifcs_down=镄蛰盼
ifcs_add=湎铝咨载 蜗踪 晌耘移攀
ifcs_boot=槲耘移攀淤 崴陨咨谏艺磐倥 幸 笤烈耘 笊釉磐
ifcs_act=崴陨着 幸 釉烈耘?
ifcs_bootp=鹣 BOOTP
ifcs_dhcp=鹣 DHCP
ifcs_broad=蚁讼着萘.
ifcs_auto=嶙韵土陨夼铀
ifcs_mtu=MTU
ifcs_virts=魃以樟特钨 晌耘移攀淤
ifcs_addvirt=湎铝咨载 咨以樟特钨 晌耘移攀
ifcs_return=优耘踪 晌耘移攀淤

aifc_create=笙谀廖膳 崴陨孜锨 槲耘移攀恿
aifc_edit=蚺牧嗽梢献廖膳 崴陨孜锨 槲耘移攀恿
aifc_desc1=鹆伊团砸 崴陨孜锨 槲耘移攀恿
aifc_desc2=鹆伊团砸 崴陨孜锨 魃以樟特蜗窍 槲耘移攀恿
aifc_hard=嵝辛伊晕偈 聊遗
aifc_default=鹣 胀咸蘖紊
aifc_err1=镗陕肆 幸 漳撂盼缮 晌耘移攀恿
aifc_err2=镗陕肆 幸 酉纫廖盼缮 晌耘移攀恿
aifc_evirt=鹣耘已 商 闻着椅偈 蜗团 咨以樟特蜗窍 晌耘移攀恿
aifc_evirtdup=魃以樟特钨 晌耘移攀 $1 罩 诱菖釉渍旁
aifc_edup=槲耘移攀 $1 罩 诱菖釉渍旁
aifc_ename=鹣耘已蜗 商 闻着椅吓 赏 晌耘移攀恿
aifc_eip='$1' 闻 炎萄旁友 南姓釉赏偻 IP 聊遗酉
aifc_emask='$1' 闻 炎萄旁友 南姓釉赏鲜 优耘紫 土铀鲜
aifc_ebroad='$1' 闻 炎萄旁友 南姓釉赏偻 凵蚁讼着萘耘特钨 聊遗酉
aifc_emtu='$1' 闻 炎萄旁友 南姓釉赏偻 MTU
aifc_ehard='$1' 闻 炎萄旁友 南姓釉赏偻 列辛伊晕偻 聊遗酉
aifc_eexist=槲耘移攀 '$1' 闻 诱菖釉渍旁

bifc_create=笙谀廖膳 笤烈韵紫窍 槲耘移攀恿
bifc_edit=蚺牧嗽梢献廖膳 笤烈韵紫窍 槲耘移攀恿
bifc_desc1=鹆伊团砸 笤烈韵紫窍 槲耘移攀恿
bifc_desc2=鹆伊团砸 魃以樟特蜗窍 笤烈韵紫窍 槲耘移攀恿
bifc_apply=笙纫廖稍  鹨晌言
bifc_err1=镗陕肆 幸 漳撂盼缮 晌耘移攀恿
bifc_err2=镗陕肆 幸 酉纫廖盼缮 晌耘移攀恿
bifc_evirt=鹣耘已 商 闻着椅偈 蜗团 咨以樟特蜗窍 晌耘移攀恿
bifc_evirtdup=魃以樟特钨 晌耘移攀 $1 罩 诱菖釉渍旁
bifc_edup=槲耘移攀 $1 罩 诱菖釉渍旁
bifc_ename=鹣耘已蜗 商 闻着椅吓 赏 晌耘移攀恿
bifc_eip='$1' 闻 炎萄旁友 南姓釉赏偻 IP 聊遗酉
bifc_emask='$1' 闻 炎萄旁友 南姓釉赏鲜 优耘紫 土铀鲜
bifc_ebroad='$1' 闻 炎萄旁友 南姓釉赏偻 凵蚁讼着萘耘特钨 聊遗酉
bifc_emtu='$1' 闻 炎萄旁友 南姓釉赏偻
bifc_err3=镗陕肆 幸 了陨琢蒙 晌耘移攀恿

routes_title=磊  砹役艺陨诹蒙
routes_boot=鹆伊团砸 土役艺陨诹蒙 了陨咨谏艺磐倥 紫 滓磐 <i>釉烈粤</i>
routes_default=砹役艺陨诹韵 邢 胀咸蘖紊
routes_none=钆
routes_device=跤砸鲜釉紫
routes_gateway=磊
routes_forward=蛄孪粤旁 肆 土役艺陨诹韵?
routes_edefault='$1' 闻 炎萄旁友 南姓釉赏偻 土役艺陨诹韵蚁 邢 胀咸蘖紊
routes_edevice='$1' 闻 炎萄旁友 南姓釉赏偻 沼砸鲜釉紫
routes_device2=跤砸鲜釉紫 土役艺陨诹蒙 邢 胀咸蘖紊
routes_static=笤猎赊庞松 土役艺再
routes_ifc=槲耘移攀
routes_net=笈载
routes_mask=砹铀 优陨
routes_enet='$1' 闻 炎萄旁友 南姓釉赏鲜 优载 抛鲜 土铀鲜
routes_emask='$1' 闻 炎萄旁友 南姓釉赏鲜 优耘紫 土铀鲜
routes_egateway='$1' 闻 炎萄旁友 南姓釉赏偻 厶磊贤
routes_defaults=磊 邢 胀咸蘖紊
routes_possible=逵躺 紫谕现蜗
routes_local=煜肆特钨 土役艺再

dns_title=胩膳卧 DNS
dns_options=鹆伊团砸 DNS 颂膳卧
dns_hostname=橥 认釉
dns_order=鹣已南 伊谝袍盼裳
dns_servers=DNS 优易乓
dns_search=鹣捎  南团瘟
dns_none=钆
dns_listed=鹋遗奚犹盼钨 ..
dns_eorder=鹣耘已 邢已南 伊谝袍盼裳

hosts_title=崮遗恿 柘釉献
hosts_ip=IP 崮遗
hosts_host=橥盼 柘釉献
hosts_add=湎铝咨载 蜗踪 聊遗 认釉
hosts_edit=蚺牧嗽梢献猎 崮遗 柘釉
hosts_create=笙谀猎 崮遗 柘釉
hosts_detail=柘釉  崮遗恿
hosts_return=有捎纤 聊遗酉 认釉献
0707010001b8cf000081a40000000000000002000000013ac038a100000f5c000000200000000000000000000000000000001200000003reloc/net/lang/sv index_title=N鋞verksinst鋖lningar
index_return=n鋞verksinst鋖lningar

ifcs_title=N鋞verksinterface
ifcs_now=Aktiva interface
ifcs_name=Namn
ifcs_type=Typ
ifcs_ip=IP-adress
ifcs_mask=N鋞mask
ifcs_status=Status
ifcs_virtual=Virtuellt
ifcs_up=Aktivt
ifcs_down=Inaktivt
ifcs_add=L鋑g till interface
ifcs_boot=Interface som ska aktiveras vid start
ifcs_act=Aktivera vid start?
ifcs_bootp=Fr錸 BOOTP
ifcs_dhcp=Fr錸 DHCP
ifcs_broad=Broadcast
ifcs_auto=Automatiskt
ifcs_mtu=MTU
ifcs_virts=Virtuella interface
ifcs_addvirt=L鋑g till virtuellt interface
ifcs_return=n鋞verksinterface
ifcs_unknown=Ok鋘t

aifc_create=L鋑g till aktivt interface
aifc_edit=膎dra aktivt interface
aifc_desc1=Parametrar f鰎 aktivt interface
aifc_desc2=Parametrar f鰎 aktivt virtuellt interface
aifc_hard=H錼dvaruadress
aifc_default=Standard
aifc_err1=Det gick inte att radera interface
aifc_err2=Det gick inte att spara interface
aifc_evirt=Numret f鰎 det virtuella interfacet saknas eller 鋜 felaktigt angivet
aifc_evirtdup=Det virtuella interfacet $1 finns redan
aifc_edup=Interface $1 finns redan
aifc_ename=Interface-namn saknas eller 鋜 felaktigt angivet
aifc_eip='$1' 鋜 inte en giltig IP-adress
aifc_emask='$1' 鋜 inte en giltig n鋞mask
aifc_ebroad='$1' 鋜 inte en giltig broadcast-adress
aifc_emtu='$1' 鋜 inte en giltig MTU
aifc_ehard='$1' 鋜 inte en giltig h錼dvaruadress
aifc_eexist=Interface '$1' finns inte

bifc_create=L鋑g till start-interface
bifc_edit=膎dra start-interface
bifc_desc1=Parametrar f鰎 start-interface
bifc_desc2=Parametrar f鰎 virtuellt start-interface
bifc_apply=Spara och genomf鰎 鋘dringar
bifc_err1=Det gick inte att ta bort interface
bifc_err2=Det gick inte att spara interface
bifc_evirt=Numret f鰎 det virtuella interfacet saknas eller 鋜 felaktigt angivet
bifc_evirtdup=Det virtuella interfacet $1 finns redan
bifc_edup=Interface $1 finns redan
bifc_ename=Interface-namn saknas eller 鋜 felaktigt angivet
bifc_eip='$1' 鋜 inte en giltig IP-adress
bifc_emask='$1' 鋜 inte en giltig n鋞mask
bifc_ebroad='$1' 鋜 inte en giltig broadcast-adress
bifc_emtu='$1' 鋜 inte en giltig MTU
bifc_err3=Det gick inte att aktivera interface

routes_title=Routing och routrar
routes_boot=Routing-inst鋖lningar som aktiveras vid <i>start</i>
routes_default=Standardrouter
routes_none=Ingen
routes_device=Enhet
routes_gateway=Gateway
routes_forward=Agera som router?
routes_routed=Starta route-letardemonen?
routes_edefault='$1' 鋜 inte en giltig standardrouter
routes_edevice='$1' 鋜 inte en giltig enhet
routes_device2=Standardrouteinterface
routes_static=Statisk routing
routes_ifc=Interface
routes_net=N鋞verk
routes_mask=N鋞mask
routes_enet='$1' 鋜 inte ett giltigt n鋞verk
routes_emask='$1' 鋜 inte en giltig n鋞mask
routes_egateway='$1' 鋜 inte en giltig gateway
routes_defaults=Standardroutrar
routes_possible=Om m鰆ligt
routes_local=Lokal routing
routes_err=Det gick inte att spara routing

dns_title=DNS-klient
dns_options=Inst鋖lningar f鰎 DNS-klient
dns_hostname=Datornamn
dns_order=Uppslagsordning
dns_servers=DNS-servrar
dns_search=Dom鋘er att leta igenom
dns_none=Inga
dns_listed=Angivna ...
dns_eorder=Du har inte angivit n錱on uppslagsordning

hosts_title=Datoradresser
hosts_ip=IP-adress
hosts_host=Datornamn
hosts_add=L鋑g till datoradress
hosts_edit=膎dra datoradress
hosts_create=L鋑g till datoradress
hosts_detail=Dator och adresser
hosts_return=lista 鰒er datoradresser

log_create_host=Lade till datoradress $1
log_delete_host=Tog bort datoradress $1
log_modify_host=Modifierade datoradress $1
log_dns=膎drade inst鋖lningar f鰎 DNS-klient
log_routes=膎drade inst鋖lningar f鰎 routing och gateways
log_create_aifc=Aktiverade interface $1 adress $2
log_modify_aifc=Aktiverade interface $1 adress $2 igen
log_delete_aifc=Deaktiverade interface $1 adress $2
log_create_bifc=Lade till interface $1 adress $2
log_modify_bifc=Modifierade interface $1 adress $2
log_delete_bifc=Tog bort interface $1 adress $2
log_dyn=dynamisk
0707010001b8d0000081a40000000000000002000000013ac038a100000f22000000200000000000000000000000000000001200000003reloc/net/lang/tr index_title=A Yap齦and齬mas
index_return=a yap齦and齬mas

ifcs_title=A Aray鼁leri
ifcs_now=Varolan Aktif Aray鼁ler 
ifcs_name=輘im
ifcs_type=Tip
ifcs_ip=IP Adresi
ifcs_mask=A maskesi
ifcs_status=Durum
ifcs_virtual=Sanal
ifcs_up=A琮k
ifcs_down=Kapal
ifcs_add=Yeni aray鼁 ekle
ifcs_boot=A琮lta Aktif Hale Getirilebilen Aray鼁ler
ifcs_act=A琮lta aktif hale getir?
ifcs_bootp=BOOTP'den
ifcs_dhcp=DHCP'den
ifcs_broad=Yay齨
ifcs_auto=Otomatik
ifcs_mtu=MTU
ifcs_virts=Sanal aray鼁ler
ifcs_addvirt=Sanal aray鼁 ekle
ifcs_return=network aray鼁

aifc_create=Aktif Aray鼁 Olu⺶ur
aifc_edit=Aktif Aray鼁leri Olu⺶ur
aifc_desc1=Aktif Aray鼁 Parametreleri
aifc_desc2=Aktif Sanal Aray鼁 Parametreleri
aifc_hard=Donan齧 adresi
aifc_default=謓tan齧l
aifc_err1=Aray鼁黱 silinmesinde hata olu⺶u
aifc_err2=Aray鼁黱 kaydedilmesinde hata olu⺶u
aifc_evirt=Kay齪 ya da yanl sanal aray鼁 numaralar
aifc_evirtdup=Sanal aray鼁 $1 her zaman mevcut
aifc_edup=$1 aray鼁 her zaman mevcut
aifc_ename=Kay齪 ya da yanl aray鼁 ismi
aifc_eip='$1' ge鏴rli bir IP adresi de餴l
aifc_emask='$1' ge鏴rli bir a maskesi de餴l
aifc_ebroad='$1' ge鏴rli bir yay齨 adresi de餴l
aifc_emtu='$1' ge鏴rli bir MTU de餴l
aifc_ehard='$1' ge鏴rli bir donan齧 adresi de餴l
aifc_eexist='$1' aray鼁 zaten mevcut

bifc_create=A琮l Aray鼁 Olu⺶ur
bifc_edit=A琮l Aray鼁黱 De餴⺶ir
bifc_desc1=A琮l Aray鼁 Parametreleri
bifc_desc2=A琮l Sanal Aray鼁 Parametreleri
bifc_apply=Kaydet ve Uygula
bifc_err1=Aray鼁黱 silinmesinde hata olu⺶u
bifc_err2=Aray鼁黱 kaydedilmesinde hata olu⺶u
bifc_evirt=Kay齪 ya da yanl sanal aray鼁 numaras
bifc_evirtdup=Sanal aray鼁 $1 her zaman mevcut
bifc_edup=$1 aray鼁 her zaman mevcut
bifc_ename=Kay齪 ya da yanl aray鼁 ismi
bifc_eip='$1' ge鏴rli bir IP adresi de餴l
bifc_emask='$1' ge鏴rli bir a maskesi de餴l
bifc_ebroad='$1' ge鏴rli bir yay齨 adresi de餴l
bifc_emtu='$1' ge鏴rli bir MTU de餴l
bifc_err3=Aray鼁黱 ektif hale getirilmesinde hata olu⺶u

routes_title=Y鰊lendirme ve A Ge鏸tleri
routes_boot=<i>A琮l</i>ta aktif hale getirilebilecek y鰊lendirme ayarlar 
routes_default=謓tan齧l y鰊lendirici
routes_none=Hi鏱iri
routes_device=Ayg齮
routes_gateway=A ge鏸ti
routes_forward=Y鰊lendirici olarak aktif?
routes_routed=Y鰊eldirici arama program 鏰ls齨?
routes_edefault='$1' ge鏴rli bir 鰊tan齧l y鰊lendirici de餴l
routes_edevice='$1' ge鏴rli bir ayg齮 de餴l
routes_device2=謓tan齧l y鰊lendirici ayg齮
routes_static=Sabit y鰊lendiriciler
routes_ifc=Aray鼁
routes_net=A
routes_mask=A maskesi
routes_enet='$1' ge鏴rli bir a de餴l
routes_emask='$1' ge鏴rli bir a maskesi de餴l
routes_egateway='$1' ge鏴rli bir a ge鏸di de餴l
routes_defaults=謓tan齧l y鰊lendiriciler
routes_possible=E餰r olumlu ise
routes_local=Yerel y鰊lendiriciler
routes_err=Y鰊lendirmenin kaydedilmesinde hata olu⺶u

dns_title=DNS 輘temcileri
dns_options=DNS 輘temci Se鏴nekleri
dns_hostname=Makine Ad
dns_order=泅z黱黵l黭 s齬as
dns_servers=DNS sunucular
dns_search=Alanlar ara
dns_none=Hi鏱iri
dns_listed=Listelenenlerden Ara ..
dns_eorder=Kay齪 琏z黱黵l黭 s齬as

hosts_title=Host Adresleri
hosts_ip=IP Adresi
hosts_host=Makine Adlar
hosts_add=Yeni bir makine adresi ekle
hosts_edit=Host Adreslerini De餴⺶ir
hosts_create=Host Adresi Olu⺶ur
hosts_detail=Host ve Adresler
hosts_return=host adresleri listesi

log_create_host=Makine adresi $1 olu⺶uruldu
log_delete_host=Makine adresi $1 silindi
log_modify_host=Makine adresi $1 de餴⺶irildi
log_dns=DNS istemci se鏴nekleri de餴⺶irildi
log_routes=Y鰊lendirme ve a ge鏸di se鏴nekleri de餴⺶irildi
log_create_aifc=Aray鼁 $1, adres $2 aktif hale getirildi
log_modify_aifc=Aray鼁 $1, adres $2 yeniden aktif hale getirildi
log_delete_aifc=Aray鼁 $1, adres $2 inaktif hale getirildi
log_create_bifc=Aray鼁 $1, adres $2 olu⺶uruldu
log_modify_bifc=Aray鼁 $1, adres $2 de餴⺶irildi
log_delete_bifc=Aray鼁 $1, adres $2 silindi

  0707010001b8d1000081a40000000000000002000000013ac038a100000b0e000000200000000000000000000000000000001500000003reloc/net/lang/zh_CN  index_title=网络配置
index_return=网络接口

ifcs_title=网络接口
ifcs_now=当前活动接口
ifcs_name=名称
ifcs_type=类型
ifcs_ip=IP 地址
ifcs_mask=子网掩码
ifcs_status=状态
ifcs_virtual=虚拟
ifcs_up=激活
ifcs_down=关闭
ifcs_add=增加接口
ifcs_boot=启动时激活接口
ifcs_act=启动时激活?
ifcs_bootp=网络自引导BOOTP
ifcs_dhcp=动态地址分配DHCP
ifcs_broad=广播
ifcs_auto=自动
ifcs_mtu=最大传输单元MTU
ifcs_virts=虚拟接口
ifcs_addvirt=增加虚拟接口
ifcs_return=网络接口

aifc_create=建立活动接口
aifc_edit=编辑活动接口
aifc_desc1=活动接口参数
aifc_desc2=活动虚拟接口参数
aifc_hard=硬件地址
aifc_default=缺省
aifc_err1=删除网络接口失败
aifc_err2=保存网络接口配置失败
aifc_evirt=丢失或者错误的虚拟网络接口号
aifc_evirtdup=该虚拟网络接口号 $1 已经存在
aifc_edup=网络接口 $1 已经存在
aifc_ename=丢失或者非法斗网络接口名称
aifc_eip='$1' 错误的IP地址
aifc_emask='$1' 错误的网络掩码
aifc_ebroad='$1' 错误的广播地址
aifc_emtu='$1' 错误的最大传输单元 MTU
aifc_ehard='$1' 错误的硬件地址
aifc_eexist=网络接口 '$1' 不存在

bifc_create=建立启动接口
bifc_edit=编辑启动接口
bifc_desc1=启动时接口参数
bifc_desc2=启动时虚拟接口参数
bifc_apply=保存/应用
bifc_err1=删除网络接口失败
bifc_err2=保存网络接口失败
bifc_evirt=丢失或错误的虚拟网络接口号
bifc_evirtdup=虚拟网络接口 $1 已经存在
bifc_edup=网络接口 $1 已经存在
bifc_ename=丢失或错误的网络接口名称
bifc_eip='$1' 错误的IP地址
bifc_emask='$1' 错误的网络掩码
bifc_ebroad='$1' 错误的广播地址
bifc_emtu='$1' 错误的最大传输单元
bifc_err3=激活网络接口失败

routes_title=路由和网关
routes_boot=<i>启动时</i>激活的路由配置
routes_default=缺省路由
routes_none=无
routes_device=设备
routes_gateway=网关
routes_forward=作路由?
routes_routed=启动路由查找监护Start route discovery daemon?
routes_edefault='$1' 错误的缺省路由
routes_edevice='$1'不是一个有效设备
routes_device2=缺省路由设备
routes_static=静态路由
routes_ifc=接口
routes_net=网络
routes_mask=子网掩码
routes_enet='$1' 错误网络
routes_emask='$1' 错误网络掩码
routes_egateway='$1' 错误的网关
routes_defaults=缺省路由
routes_possible=如果可能
routes_local=本地路由
routes_err=存储路由设置失败

dns_title=DNS 客户端
dns_options=DNS 客户端配置
dns_hostname=主机名
dns_order=解析顺序
dns_servers=DNS 服务器
dns_search=查找域
dns_none=无
dns_listed=列表 ..
dns_eorder=丢失解析次序

hosts_title=主机地址
hosts_ip=IP 地址
hosts_host=主机名
hosts_add=增加主机地址
hosts_edit=编辑主机地址
hosts_create=建立主机地址
hosts_detail=主机和地址
hosts_return=主机地址列表

log_create_host=已创建客户地址 $1
log_delete_host=已删除客户地址 $1
log_modify_host=已更新客户地址 $1
log_dns=已改变 DNS 客户设置选项
log_routes=已改变路由和网关设置
log_create_aifc=激活的接口 $1 地址 $2
log_modify_aifc=重新激活的接口 $1 地址 $2
log_delete_aifc=屏蔽的接口 $1 地址 $2
log_create_bifc=已创建的接口 $1 地址 $2
log_modify_bifc=已更新的接口 $1 地址 $2
log_delete_bifc=已删除的接口 $1 地址 $2
  0707010001b8d2000081a40000000000000002000000013ac038a100000a2d000000200000000000000000000000000000001a00000003reloc/net/lang/zh_TW.Big5 index_title=呼隔舱篈
index_return=呼隔舱篈

ifcs_title=呼隔ざ
ifcs_now=ヘ玡笲い呼隔ざ
ifcs_name=嘿
ifcs_type=贺摸
ifcs_ip=IP 
ifcs_mask=呼隔綛竛
ifcs_status=篈
ifcs_virtual=店览
ifcs_up=币笆
ifcs_down=氨ゎ
ifcs_add=糤穝呼隔ざ
ifcs_boot=秨诀币笆呼隔ざ
ifcs_act=琌秨诀币笆?
ifcs_bootp=眖 BOOTP
ifcs_dhcp=眖 DHCP
ifcs_broad=約冀
ifcs_auto=笆
ifcs_mtu=MTU
ifcs_virts=店览呼隔
ifcs_addvirt=糤店览呼隔ざ
ifcs_return=呼隔ざ

aifc_create=ミ笲い呼隔ざ
aifc_edit=絪胯笲い呼隔ざ
aifc_desc1=笲い呼隔ざ把计
aifc_desc2=笲い店览呼隔ざ把计
aifc_hard=祑砰
aifc_default=箇砞
aifc_err1=礚猭埃呼隔ざ
aifc_err2=礚猭纗呼隔ざ
aifc_evirt=框ア┪岿粇店览呼隔ざ絪腹
aifc_evirtdup=店览呼隔ざ $1 竒
aifc_edup=呼隔ざ $1 竒
aifc_ename=框ア┪岿粇呼隔ざ嘿
aifc_eip='$1' ぃ琌Τ IP 
aifc_emask='$1' ぃ琌Τ呼隔綛竛
aifc_ebroad='$1' ぃ琌Τ約冀
aifc_emtu='$1' ぃ琌Τ MTU
aifc_ehard='$1' ぃ琌Τ祑砰
aifc_eexist=呼隔ざ '$1' ぃ

bifc_create=ミ Bootup 呼隔ざ
bifc_edit=絪胯 Bootup 呼隔ざ
bifc_desc1=币笆戳呼隔ざ把计
bifc_desc2=币笆戳店览呼隔ざ把计
bifc_apply=纗甅ノ
bifc_err1=礚猭埃呼隔ざ
bifc_err2=礚猭纗呼隔ざ
bifc_evirt=框ア┪岿粇店览呼隔ざ絪腹
bifc_evirtdup=店览呼隔ざ $1 竒
bifc_edup=呼隔ざ $1 竒
bifc_ename=框ア┪岿粇呼隔ざ嘿
bifc_eip='$1' ぃ琌Τ IP 
bifc_emask='$1' ぃ琌Τ呼隔綛竛
bifc_ebroad='$1' ぃ琌Τ約冀
bifc_emtu='$1' ぃ琌Τ MTU
bifc_err3=礚猭币笆呼隔ざ

routes_title=隔パ籔筯笵竟
routes_boot=<i>币笆戳</i>币笆隔パ舱篈
routes_default=箇砞隔パ竟
routes_none=礚
routes_device=砞称
routes_gateway=筯笵竟
routes_forward=琌钩隔パ竟は莱?
routes_routed=琌币笆隔パт碝臔祘Α?
routes_edefault='$1' ぃ琌Τ箇砞隔パ竟
routes_edevice='$1' ぃ琌Τ砞称
routes_device2=箇砞隔パ砞称
routes_static=繰篈隔パ
routes_ifc=呼隔ざ
routes_net=呼隔
routes_mask=呼隔綛竛
routes_enet='$1' ぃ琌Τ呼隔
routes_emask='$1' ぃ琌Τ呼隔綛竛
routes_egateway='$1' ぃ琌Τ筯笵竟
routes_defaults=箇砞隔パ竟
routes_possible=狦
routes_local=セ狠隔パ

dns_title=DNS め狠
dns_options=DNS め狠匡兜
dns_hostname=诀嘿
dns_order=秆猂抖
dns_servers=DNS 狝竟
dns_search=穓碝呼办
dns_none=礚
dns_listed=...
dns_eorder=框ア秆猂抖

hosts_title=诀
hosts_ip=IP 
hosts_host=诀嘿
hosts_add=穝诀
hosts_edit=絪胯诀
hosts_create=ミ诀
hosts_detail=诀籔
hosts_return=诀
   07070100015e45000081e40000000000000002000000013ac038a100000283000000200000000000000000000000000000001900000003reloc/net/list_hosts.cgi  #!/usr/local/bin/perl
# list_hosts.cgi
# List hosts from /etc/hosts

require './net-lib.pl';
&header($text{'hosts_title'}, "");
print "<hr>\n";

print "<table border cellpadding=3>\n";
print "<tr $tb> <td><b>$text{'hosts_ip'}</b></td> ",
      "<td><b>$text{'hosts_host'}</b></td> </tr>\n";
foreach $h (&list_hosts()) {
	print "<tr $cb> <td><a href=\"edit_host.cgi?idx=$h->{'index'}\">",
	      "$h->{'address'}</a></td>\n";
	print "<td>",join("&nbsp;&nbsp; ", @{$h->{'hosts'}}),"</td> </tr>\n";
	}
print "</table>\n";
print "<a href=\"edit_host.cgi?new=1\">$text{'hosts_add'}</a> <p>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

 07070100015e46000081e40000000000000002000000013ac038a100000a51000000200000000000000000000000000000001800000003reloc/net/list_ifcs.cgi   #!/usr/local/bin/perl
# list_ifcs.cgi
# List active and boot-time interfaces

require './net-lib.pl';
&ReadParse();
&header($text{'ifcs_title'}, "");
print "<hr>\n";

print "<h3>$text{'ifcs_now'}</h3>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'ifcs_name'}</b></td> ",
      "<td><b>$text{'ifcs_type'}</b></td> ",
      "<td><b>$text{'ifcs_ip'}</b></td> ",
      "<td><b>$text{'ifcs_mask'}</b></td> ",
      "<td><b>$text{'ifcs_status'}</b></td> </tr>\n";

@act = &active_interfaces();
@act = sort iface_sort @act;
foreach $a (@act) {
	print "<tr $cb> <td>";
	if ($a->{'virtual'} ne "") { print "&nbsp;&nbsp;"; }
	if ($a->{'edit'}) {
		print "<a href=\"edit_aifc.cgi?idx=$a->{'index'}\">",
		      "$a->{'fullname'}</a></td>\n";
		}
	else { print $a->{'fullname'},"</td>\n"; }
	print "<td>",&iface_type($a->{'name'}),
	      ($a->{'virtual'} eq "" ? "" : " ($text{'ifcs_virtual'})"),
	      "</td>\n";
	print "<td>",$a->{'address'},"</td>\n";
	print "<td>",$a->{'netmask'},"</td>\n";
	print "<td>",
		($a->{'up'} ? $text{'ifcs_up'}
			    : "<font color=#ff0000>$text{'ifcs_down'}</font>"),
	      "</td> </tr>\n";
	}
print "</table>\n";
print "<a href='edit_aifc.cgi?new=1'>$text{'ifcs_add'}</a> <p>\n";
print "<hr>\n";

print "<h3>$text{'ifcs_boot'}</h3>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'ifcs_name'}</b></td> ",
      "<td><b>$text{'ifcs_type'}</b></td> ",
      "<td><b>$text{'ifcs_ip'}</b></td> ",
      "<td><b>$text{'ifcs_mask'}</b></td> ",
      "<td><b>$text{'ifcs_act'}</b></td> </tr>\n";

@boot = &boot_interfaces();
@boot = sort iface_sort @boot;
foreach $a (@boot) {
	print "<tr $cb> <td>";
	if ($a->{'virtual'} ne "") { print "&nbsp;&nbsp;"; }
	if ($a->{'edit'}) {
		print "<a href=\"edit_bifc.cgi?idx=$a->{'index'}\">",
		      "$a->{'fullname'}</a></td>\n";
		}
	else { print $a->{'fullname'},"</td>\n"; }
	print "<td>",&iface_type($a->{'name'}),
	      ($a->{'virtual'} eq "" ? "" : " ($text{'ifcs_virtual'})"),
	      "</td>\n";
	print "<td>",$a->{'bootp'} ? $text{'ifcs_bootp'} :
		     $a->{'dhcp'} ? $text{'ifcs_dhcp'} :
		     $a->{'address'} ? $a->{'address'} :
				       $text{'ifcs_auto'},
	      "</td>\n";
	print "<td>",$a->{'netmask'} ? $a->{'netmask'}
				     : $text{'ifcs_auto'},"</td>\n";
	print "<td>",($a->{'up'} ? $text{'yes'} : $text{'no'}),"</td> </tr>\n";
	}
print "</table>\n";
print "<a href='edit_bifc.cgi?new=1'>$text{'ifcs_add'}</a> <p>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

sub iface_sort
{
return $a->{'name'} cmp $b->{'name'} if ($a->{'name'} cmp $b->{'name'});
return $a->{'virtual'} <=> $b->{'virtual'};
}

   07070100015e47000081e40000000000000002000000013ac038a1000001f9000000200000000000000000000000000000001a00000003reloc/net/list_routes.cgi #!/usr/local/bin/perl
# list_routes.cgi
# List boot-time routing configuration

require './net-lib.pl';
&ReadParse();
&header($text{'routes_title'}, "");
print "<hr>\n";

print "<form action=save_routes.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'routes_boot'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";
&routing_input();
print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

   07070100015e48000081a40000000000000002000000013ac038a1000002dc000000200000000000000000000000000000001800000003reloc/net/log_parser.pl   # log_parser.pl
# Functions for parsing this module's logs

require './net-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p) = @_;
if ($type eq 'host') {
	return &text("log_${action}_host", "<tt>$object</tt>");
	}
elsif ($action eq 'dns') {
	return $text{'log_dns'};
	}
elsif ($action eq 'routes') {
	return $text{'log_routes'};
	}
elsif ($type eq 'aifc' || $type eq 'bifc') {
	return &text("log_${action}_${type}", "<tt>$object</tt>",
		     $p->{'dhcp'} || $p->{'bootp'} ? $text{'log_dyn'} :
		     "<tt>$p->{'address'}</tt>");
	}
else {
	return undef;
	}
}

07070100015e49000081a40000000000000002000000013ac038a100000310000000200000000000000000000000000000001600000003reloc/net/module.info desc_zh_CN=网络配置
name=Networking
desc_pt=Configura玢o de Rede
desc_tr=A Yap齦and齬mas
desc_fr=Configuration R閟eau
desc_es=Configuraci髇 de Red
desc_de=Netzwerk Konfiguration
desc_sv=N鋞verkskonfigurering
desc_ru_SU=胂纹汕找撩裳 笈陨
desc_pl=Konfiguracja sieci
category=hardware
os_support=solaris redhat-linux/5.0 redhat-linux/5.1 redhat-linux/5.2 redhat-linux/6.0 redhat-linux/6.1 redhat-linux/6.2 redhat-linux/7.0 redhat-linux/7.1 suse-linux/6.0 suse-linux/6.1 suse-linux/6.2 suse-linux/6.3 suse-linux/6.4 suse-linux/7.0 suse-linux/7.1 open-linux unixware turbo-linux/4.0 freebsd/3.4 freebsd/3.3 freebsd/3.2 freebsd/4.0 freebsd/5.0 openbsd debian-linux/2.2 cobalt-linux/5.0
desc_zh_TW.Big5=呼隔舱篈
desc=Network Configuration
risk=low medium high
desc_ru_RU=暑眙桡箴圉 彦蜩
07070100015e4a000081a40000000000000002000000013ac038a1000004f7000000200000000000000000000000000000001500000003reloc/net/net-lib.pl  # net-lib.pl
# Common local networking functions

do '../web-lib.pl';
&init_config();

do "./$gconfig{'os_type'}-lib.pl";

# list_hosts()
# Parse hosts from /etc/hosts into a data structure
sub list_hosts
{
local @rv;
local $lnum = 0;
open(HOSTS, $config{'hosts_file'});
while(<HOSTS>) {
	s/\r|\n//g;
	s/#.*$//g;
	s/\s+$//g;
	if (/(\d+\.\d+\.\d+\.\d+)\s+(.*)$/) {
		push(@rv, { 'address' => $1,
			    'hosts' => [ split(/\s+/, $2) ],
			    'line', $lnum,
			    'index', scalar(@rv) });
		}
	$lnum++;
	}
close(HOSTS);
return @rv;
}

# create_host(&host)
# Add a new host to /etc/hosts
sub create_host
{
open(HOSTS, ">>$config{'hosts_file'}");
print HOSTS $_[0]->{'address'},"\t",join(" ",@{$_[0]->{'hosts'}}),"\n";
close(HOSTS);
}

# modify_host(&host)
# Update the address and hosts of a line in /etc/hosts
sub modify_host
{
&replace_file_line($config{'hosts_file'},
		   $_[0]->{'line'},
		   $_[0]->{'address'}."\t".join(" ",@{$_[0]->{'hosts'}})."\n");
}

# delete_host(&host)
# Delete a host from /etc/hosts
sub delete_host
{
&replace_file_line($config{'hosts_file'}, $_[0]->{'line'});
}

# parse_hex(hex)
# Convert an address like ff000000 into 255.0.0.0
sub parse_hex
{
$_[0] =~ /(..)(..)(..)(..)$/;
return join(".", (hex($1), hex($2), hex($3), hex($4)));
}

1;

 07070100015e4b000081a40000000000000002000000013ac038a100002a15000000200000000000000000000000000000001c00000003reloc/net/open-linux-lib.pl   # openlinux.pl
# Networking functions for openlinux

$net_scripts_dir = "/etc/sysconfig/network-scripts";
$network_config = "/etc/sysconfig/network";
$static_route_config = "/etc/sysconfig/static-routes";
$nis_conf = "/etc/nis.conf";

# active_interfaces()
# Returns a list of currently ifconfig'd interfaces
sub active_interfaces
{
local(@rv, @lines, $l);
open(IFC, "ifconfig -a |");
while(<IFC>) {
	s/\r|\n//g;
	if (/^\S+/) { push(@lines, $_); }
	else { $lines[$#lines] .= $_; }
	}
close(IFC);
foreach $l (@lines) {
	local %ifc;
	$l =~ /^([^:\s]+)/; $ifc{'name'} = $1;
	$l =~ /^(\S+)/; $ifc{'fullname'} = $1;
	if ($l =~ /^(\S+):(\d+)/) { $ifc{'virtual'} = $2; }
	if ($l =~ /inet addr:(\S+)/) { $ifc{'address'} = $1; }
	else { next; }
	if ($l =~ /Mask:(\S+)/) { $ifc{'netmask'} = $1; }
	if ($l =~ /Bcast:(\S+)/) { $ifc{'broadcast'} = $1; }
	if ($l =~ /HWaddr (\S+)/) { $ifc{'ether'} = $1; }
	if ($l =~ /MTU:(\d+)/) { $ifc{'mtu'} = $1; }
	$ifc{'up'}++ if ($l =~ /\sUP\s/);
	$ifc{'edit'} = ($ifc{'name'} !~ /^ppp/);
	$ifc{'index'} = scalar(@rv);
	push(@rv, \%ifc);
	}
return @rv;
}

# activate_interface(&details)
# Create or modify an interface
sub activate_interface
{
local $a = $_[0];
local $cmd = "ifconfig $a->{'name'}";
if ($a->{'virtual'} ne "") { $cmd .= ":$a->{'virtual'}"; }
$cmd .= " $a->{'address'}";
if ($a->{'netmask'}) { $cmd .= " netmask $a->{'netmask'}"; }
if ($a->{'broadcast'}) { $cmd .= " broadcast $a->{'broadcast'}"; }
if ($a->{'mtu'}) { $cmd .= " mtu $a->{'mtu'}"; }
if ($a->{'up'}) { $cmd .= " up"; }
else { $cmd .= " down"; }
local $out = &backquote_logged("$cmd 2>&1");
if ($?) { &error($out); }
if ($a->{'ether'}) {
	$out = &backquote_logged("ifconfig $a->{'name'} hw ether $a->{'ether'} 2>&1");
	if ($?) { &error($out); }
	}
}

# deactivate_interface(&details)
# Shutdown some active interface
sub deactivate_interface
{
local $cmd = "ifconfig $a->{'name'}";
if ($a->{'virtual'} ne "") { $cmd .= ":$a->{'virtual'}"; }
$cmd .= " down";
local $out = &backquote_logged("$cmd 2>&1");
if ($?) { &error($out); }
}

# boot_interfaces()
# Returns a list of interfaces brought up at boot time
sub boot_interfaces
{
local(@rv, $f);
opendir(CONF, $net_scripts_dir);
while($f = readdir(CONF)) {
	next if ($f !~ /^ifcfg-(\S+)/);
	local (%conf, $b);
	&read_file("$net_scripts_dir/$f", \%conf);
	$b->{'fullname'} = $conf{'DEVICE'} ? $conf{'DEVICE'} : $1;
	if ($b->{'fullname'} =~ /(\S+):(\d+)/) {
		$b->{'name'} = $1;
		$b->{'virtual'} = $2;
		}
	else { $b->{'name'} = $b->{'fullname'}; }
	$b->{'up'} = ($conf{'ONBOOT'} eq 'yes');
	$b->{'address'} = $conf{'IPADDR'} ? $conf{'IPADDR'} : "Automatic";
	$b->{'netmask'} = $conf{'NETMASK'} ? $conf{'NETMASK'} : "Automatic";
	$b->{'broadcast'} = $conf{'BROADCAST'} ? $conf{'BROADCAST'}
					       : "Automatic";
	$b->{'dhcp'} = $conf{'DYNAMIC'} eq 'dhcp';
	$b->{'edit'} = ($b->{'name'} !~ /^ppp|plip/);
	$b->{'index'} = scalar(@rv);
	push(@rv, $b);
	}
closedir(CONF);
return @rv;
}

# save_interface(&details)
# Create or update a boot-time interface
sub save_interface
{
local(%conf);
local $name = $_[0]->{'virtual'} ne "" ? $_[0]->{'name'}.":".$_[0]->{'virtual'}
				       : $_[0]->{'name'};
&lock_file("$net_scripts_dir/ifcfg-$name");
&read_file("$net_scripts_dir/ifcfg-$name", \%conf);
$conf{'DEVICE'} = $name;
if ($_[0]->{'dhcp'}) {
	$conf{'DYNAMIC'} = 'dhcp';
	}
else {
	$conf{'IPADDR'} = $_[0]->{'address'};
	delete($conf{'DYNAMIC'});
	}
local($ip1, $ip2, $ip3, $ip4) = split(/\./, $_[0]->{'address'});
$conf{'NETMASK'} = $_[0]->{'netmask'};
local($nm1, $nm2, $nm3, $nm4) = split(/\./, $_[0]->{'netmask'});
$conf{'NETWORK'} = sprintf "%d.%d.%d.%d",
			($ip1 & int($nm1))&0xff,
			($ip2 & int($nm2))&0xff,
			($ip3 & int($nm3))&0xff,
			($ip4 & int($nm4))&0xff;
$conf{'BROADCAST'} = $_[0]->{'broadcast'};
$conf{'ONBOOT'} = $_[0]->{'up'} ? "yes" : "no";
&write_file("$net_scripts_dir/ifcfg-$name", \%conf);
&unlock_file("$net_scripts_dir/ifcfg-$name");
}

# delete_interface(&details)
# Delete a boot-time interface
sub delete_interface
{
local $name = $_[0]->{'virtual'} ne "" ? $_[0]->{'name'}.":".$_[0]->{'virtual'}
				       : $_[0]->{'name'};
&lock_file("$net_scripts_dir/ifcfg-$name");
unlink("$net_scripts_dir/ifcfg-$name");
&unlock_file("$net_scripts_dir/ifcfg-$name");
}

# iface_type(name)
# Returns a human-readable interface type name
sub iface_type
{
return "PPP" if ($_[0] =~ /^ppp/);
return "SLIP" if ($_[0] =~ /^sl/);
return "PLIP" if ($_[0] =~ /^plip/);
return "Ethernet" if ($_[0] =~ /^eth/);
return "Arcnet" if ($_[0] =~ /^arc/);
return "Token Ring" if ($_[0] =~ /^tr/);
return "Pocket/ATP" if ($_[0] =~ /^atp/);
return "Loopback" if ($_[0] =~ /^lo/);
return $text{'ifcs_unknown'};
}

# iface_hardware(name)
# Does some interface have an editable hardware address
sub iface_hardware
{
return $_[0] =~ /^eth/;
}

# can_edit(what)
# Can some boot-time interface parameter be edited?
sub can_edit
{
return $_[0] ne "bootp" && $_[0] ne "mtu";
}

# valid_boot_address(address)
# Is some address valid for a bootup interface
sub valid_boot_address
{
return &check_ipaddress($_[0]);
}

# get_dns_config()
# Returns a hashtable containing keys nameserver, domain, search & order
sub get_dns_config
{
local $dns;
open(RESOLV, "/etc/resolv.conf");
while(<RESOLV>) {
	s/\r|\n//g;
	s/#.*$//;
	if (/^nameserver\s+(.*)/) {
		push(@{$dns->{'nameserver'}}, split(/\s+/, $1));
		}
	elsif (/^domain\s+(\S+)/) {
		$dns->{'domain'} = [ $1 ];
		}
	elsif (/^search\s+(.*)/) {
		$dns->{'domain'} = [ split(/\s+/, $1) ];
		}
	}
close(RESOLV);
open(SWITCH, "/etc/nsswitch.conf");
while(<SWITCH>) {
	s/\r|\n//g;
	if (/hosts:\s+(.*)/) {
		$dns->{'order'} = $1;
		}
	}
close(SWITCH);
return $dns;
}

# save_dns_config(&config)
# Writes out the resolv.conf and nsswitch.conf files
sub save_dns_config
{
&lock_file("/etc/resolv.conf");
open(RESOLV, "/etc/resolv.conf");
local @resolv = <RESOLV>;
close(RESOLV);
open(RESOLV, ">/etc/resolv.conf");
foreach (@{$_[0]->{'nameserver'}}) {
	print RESOLV "nameserver $_\n";
	}
if ($_[0]->{'domain'}) {
	if ($_[0]->{'domain'}->[1]) {
		print RESOLV "search ",join(" ", @{$_[0]->{'domain'}}),"\n";
		}
	else {
		print RESOLV "domain $_[0]->{'domain'}->[0]\n";
		}
	}
foreach (@resolv) {
	print RESOLV $_ if (!/^\s*(nameserver|domain|search)\s+/);
	}
close(RESOLV);
&unlock_file("/etc/resolv.conf");

&lock_file("/etc/nsswitch.conf");
open(SWITCH, "/etc/nsswitch.conf");
local @switch = <SWITCH>;
close(SWITCH);
open(SWITCH, ">/etc/nsswitch.conf");
foreach (@switch) {
	if (/hosts:\s+/) {
		print SWITCH "hosts:\t$_[0]->{'order'}\n";
		}
	else { print SWITCH $_; }
	}
close(SWITCH);
&unlock_file("/etc/nsswitch.conf");
}

$max_dns_servers = 3;

# order_input(&dns)
# Returns HTML for selecting the name resolution order
sub order_input
{
if ($_[0]->{'order'} =~ /\[/) {
	# Using a complex resolve list
	return "<input name=order size=45 value=\"$_[0]->{'order'}\">\n";
	}
else {
	# Can select by menus
	local @o = split(/\s+/, $_[0]->{'order'});
	@o = map { s/nis\+/nisplus/; s/yp/nis/; $_; } @o;
	local ($rv, $i, $j);
	local @srcs = ( "", "files", "dns", "nis", "nisplus" );
	local @srcn = ( "", "Hosts", "DNS", "NIS", "NIS+" );
	for($i=1; $i<@srcs; $i++) {
		local $ii = $i-1;
		$rv .= "<select name=order_$ii>\n";
		for($j=0; $j<@srcs; $j++) {
			$rv .= sprintf "<option value=\"%s\" %s>%s\n",
					$srcs[$j],
					$o[$ii] eq $srcs[$j] ? "selected" : "",
					$srcn[$j] ? $srcn[$j] : "&nbsp;";
			}
		$rv .= "</select>\n";
		}
	return $rv;
	}
}

# parse_order(&dns)
# Parses the form created by order_input()
sub parse_order
{
if (defined($in{'order'})) {
	$in{'order'} =~ /\S/ || &error($text{'dns_eorder'});
	$_[0]->{'order'} = $in{'order'};
	}
else {
	local($i, @order);
	for($i=0; defined($in{"order_$i"}); $i++) {
		push(@order, $in{"order_$i"}) if ($in{"order_$i"});
		}
	$_[0]->{'order'} = join(" ", @order);
	}
}

sub get_hostname
{
return &get_system_hostname();
}

# save_hostname(name)
sub save_hostname
{
local %conf;
&system_logged("hostname $_[0] >/dev/null 2>&1");
&lock_file("/etc/HOSTNAME");
open(HOST, ">/etc/HOSTNAME");
print HOST $_[0],"\n";
close(HOST);
&unlock_file("/etc/HOSTNAME");
&lock_file($network_config);
&read_file($network_config, \%conf);
$conf{'HOSTNAME'} = $_[0];
&write_file($network_config, \%conf);
&unlock_file($network_config);
}

# get_domainname()
sub get_domainname
{
local $d = `domainname`;
chop($d);
return $d eq "(none)" ? "" : $d;
}

# save_domainname(domain)
sub save_domainname
{
local %conf;
system("domainname \"$_[0]\" >/dev/null 2>&1");
&read_file("$network_config", \%conf);
if ($_[0]) {
	$conf{'NISDOMAIN'} = $_[0];
	}
else {
	delete($conf{'NISDOMAIN'});
	}
&write_file("$network_config", \%conf);
# XXX need to update nis.conf
}

sub routing_input
{
local (%conf, %ifc, $f, $gateway, $gatewaydev);
&read_file($network_config, \%conf);
opendir(CONF, $net_scripts_dir);
while($f = readdir(CONF)) {
	next if ($f !~ /^ifcfg-(\S+)/);
	&read_file("$net_scripts_dir/$f", \%ifc);
	if (&check_ipaddress($ifc{'GATEWAY'})) {
		$gateway = $ifc{'GATEWAY'};
		$gatewaydev = $ifc{'DEVICE'};
		last;
		}
	}
closedir(CONF);

print "<tr> <td><b>$text{'routes_default'}</b></td> <td>\n";
printf "<input type=radio name=gateway_def value=1 %s> %s\n",
	$gateway ? "" : "checked", $text{'routes_none'};
printf "<input type=radio name=gateway_def value=0 %s> %s\n",
	$gateway ? "checked" : "", $text{'routes_gateway'};
printf "<input name=gateway size=15 value=\"%s\"> %s\n",
	$gateway, $text{'routes_device'};
printf "<input name=gatewaydev size=6 value=\"%s\"></td> </tr>\n",
	$gatewaydev;

# show routing
print "<tr> <td><b>$text{'routes_forward'}</b></td> <td>\n";
printf "<input type=radio name=forward value=1 %s> $text{'yes'}\n",
	$conf{'IPFORWARDING'} =~ /yes|true/i ? "checked" : "";
printf "<input type=radio name=forward value=0 %s> $text{'no'}</td> </tr>\n",
	$conf{'IPFORWARDING'} =~ /yes|true/i ? "" : "checked";
}

sub parse_routing
{
local %conf;
&lock_file($network_config);
&read_file($network_config, \%conf);
if ($in{'forward'}) { $conf{'IPFORWARDING'} = 'yes'; }
else { delete($conf{'IPFORWARDING'}); }

if (!$in{'gateway_def'}) {
	gethostbyname($in{'gateway'}) ||
		&error(&text('routes_edefault', $in{'gateway'}));
	-r "$net_scripts_dir/ifcfg-$in{'gatewaydev'}" ||
		&error(&text('routes_edevice', $in{'gatewaydev'}));
	}

opendir(CONF, $net_scripts_dir);
while($f = readdir(CONF)) {
	next if ($f !~ /^ifcfg-(\S+)/);
	&lock_file("$net_scripts_dir/$f");
	&read_file("$net_scripts_dir/$f", \%ifc);
	if ($in{'gateway_def'} || $ifc{'DEVICE'} ne $in{'gatewaydev'}) {
		delete($ifc{'GATEWAY'});
		}
	else {
		$ifc{'GATEWAY'} = $in{'gateway'};
		}
	&write_file("$net_scripts_dir/$f", \%ifc);
	&unlock_file("$net_scripts_dir/$f");
	}
closedir(CONF);

&write_file($network_config, \%conf);
&unlock_file($network_config);
}

1;

   07070100015e4c000081a40000000000000002000000013ac038a100003214000000200000000000000000000000000000001900000003reloc/net/openbsd-lib.pl  # freebsd-lib.pl
# Networking functions for FreeBSD

# active_interfaces()
# Returns a list of currently ifconfig'd interfaces
sub active_interfaces
  {
      local(@rv, @lines, $l);
      open(IFC, "ifconfig -A |");
      while(<IFC>) {
	  s/\r|\n//g;
	  if (/^\S+:/) { push(@lines, $_); }
	  else { $lines[$#lines] .= $_; }
      }
      close(IFC);
      foreach $l (@lines) {
	  local %ifc;
	  $l =~ /^([^:\s]+):/;
	  $ifc{'name'} = $ifc{'fullname'} = $1;
	  if ($l =~ /^(\S+):(\d+):\s/) { $ifc{'virtual'} = $2; }
	  if ($l =~ s/inet\s+(\S+)\s+netmask\s+(\S+)\s+broadcast\s+(\S+)//) {
	      $ifc{'address'} = $1;
	      $ifc{'netmask'} = &parse_hex($2);
	      $ifc{'broadcast'} = $3;
	  }
	  elsif ($l =~ s/inet\s+(\S+)\s+netmask\s+(\S+)//) {
	      $ifc{'address'} = $1;
	      $ifc{'netmask'} = &parse_hex($2);
	  }
	  else { next; }
	  if ($l =~ /ether\s+(\S+)/) { $ifc{'ether'} = $1; }
	  if ($l =~ /mtu\s+(\S+)/) { $ifc{'mtu'} = $1; }
	  $ifc{'up'}++ if ($l =~ /\<UP/);
	  $ifc{'edit'} = &iface_type($ifc{'name'}) =~ /ethernet|loopback/i;
	  $ifc{'index'} = scalar(@rv);
	  if ($ifc{'ether'}) {
	      $ifc{'ether'} = join(":", map { sprintf "%2.2d", $_ }
				   split(/:/, $ifc{'ether'}));
	  }
	  push(@rv, \%ifc);
	  
	  # Add aliases as virtual interfaces
	  local $v = 0;
	  while($l =~ s/inet\s+(\S+)\s+netmask\s+(\S+)\s+broadcast\s+(\S+)//) {
	      local %vifc = %ifc;
	      $vifc{'address'} = $1;
	      $vifc{'netmask'} = &parse_hex($2);
	      $vifc{'broadcast'} = $3;
	      $vifc{'up'} = 1;
	      $vifc{'edit'} = $ifc{'edit'};
	      $vifc{'virtual'} = $v++;
	      $vifc{'fullname'} = $vifc{'name'}.':'.$vifc{'virtual'};
	      $vifc{'index'} = scalar(@rv);
	      push(@rv, \%vifc);
	  }
      }
      return @rv;
  }

# activate_interface(&details)
# Create or modify an interface
sub activate_interface
  {
      local %act;
      map { $act{$_->{'fullname'}} = $_ } &active_interfaces();
      local $old = $act{$_[0]->{'fullname'}};
      $act{$_[0]->{'fullname'}} = $_[0];
      &interface_sync(\%act, $_[0]->{'name'});
  }

# deactivate_interface(&details)
# Deactive an interface
sub deactivate_interface
  {
      local %act;
      local @act = &active_interfaces();
      if ($_[0]->{'virtual'} eq '') {
	  @act = grep { $_->{'name'} ne $_[0]->{'name'} } @act;
      }
      else {
	  @act = grep { $_->{'fullname'} ne $_[0]->{'fullname'} } @act;
      }
      map { $act{$_->{'fullname'}} = $_ } @act;
      &interface_sync(\%act, $_[0]->{'name'});
  }

# interface_sync(interfaces, name)
sub interface_sync
  {
      while(`ifconfig $_[1]` =~ /\s+inet\s+/) {
	  &system_logged("ifconfig $_[1] delete >/dev/null 2>&1");
      }
      foreach $a (sort { $a->{'fullname'} cmp $b->{'fullname'} }
		  grep { $_->{'name'} eq $_[1] } values(%{$_[0]})) {
	  local $cmd = "ifconfig $a->{'name'}";
	  if ($a->{'virtual'} ne '') {
	      $cmd .= " alias $a->{'address'}";
	  }
	  else {
	      $cmd .= " $a->{'address'}";
	  }
	  if ($a->{'netmask'}) { $cmd .= " netmask $a->{'netmask'}"; }
	  if ($a->{'broadcast'}) { $cmd .= " broadcast $a->{'broadcast'}"; }
	  if ($a->{'mtu'}) { $cmd .= " mtu $a->{'mtu'}"; }
	  $msg .= "running $cmd<br>\n";
	  local $out = &backquote_logged("$cmd 2>&1");
	  if ($? && $out !~ /file exists/i) {
	      &error($out);
	  }
	  if ($a->{'virtual'} eq '') {
	      if ($a->{'up'}) { $out = `ifconfig $a->{'name'} up 2>&1`; }
	      else { $out = &backquote_logged("ifconfig $a->{'name'} down 2>&1"); }
	      &error($out) if ($?);
	  }
      }
  }


# boot_interfaces()
# Returns a list of interfaces brought up at boot time
sub boot_interfaces 
  {
      local @rv;
      local @if_list = split(" ", `echo -n /etc/hostname.*[!~]`);
      
      if ( $if_list[0] eq "/etc/hostname.*[!~]" )
	{ return @rv; }
      
      foreach $r (@if_list) {
	  local $if;
	  local $alias_cnt = 0;
	  
	  ($if = $r) =~ s/\/etc\/hostname\.//;
	  
	  open( IF_FILE, "<$r")
	    or die "Could not open: $r";
	  
	  while(<IF_FILE>) {
	      local %ifc;
	      
	      if( ! /^inet .*|^dhcp/ )
		{ next; }
	      
	      if( /^dhcp/ ) {
		%ifc = ( 'name' => $if,
			 'fullname' => $if,
			 'dhcp' => 1 );
	      }	
	      elsif( /alias/ ) {
		  $_ =~ s/alias//;
		  # Virtual interface
		  %ifc = ( 'name' => $if,
			   'virtual' => $alias_cnt,
			   'fullname' => "$if:$alias_cnt" );
		  $alias_cnt++;
	      }
	      else {
		  # Non-virtual interface
		  %ifc = ( 'name' => $if,
			   'fullname' => $if );
	      }
	      
	      @_ = split;
	      
	      $ifc{'address'} = $_[1] if( $_[1] ne 'NONE' );
	      $ifc{'netmask'} = $_[2] if( $_[2] ne 'NONE' );
	      $ifc{'broadcast'} = $_[3] if( $_[3] ne 'NONE' );
	      $ifc{'up'} = 1;
	      $ifc{'edit'} = 1;
	      $ifc{'index'} = scalar(@rv);
	      push(@rv, \%ifc);
	  }
	  close( IF_FILE );
      }
      return @rv;
  }

# save_interface(&details)
# Create or update a boot-time interface
sub save_interface 
{
    local ($str, $lines, $found = 0);
    local $if = $_[0]->{'name'};
    local $alias_nr = $_[0]->{'virtual'};
    
    &lock_file("/etc/hostname.$if");
    if ( $_[0]->{'dhcp'} ){ 
      system("echo dhcp > /etc/hostname.$if"); 
      &unlock_file("/etc/hostname.$if");
      return;
    }

    if ( $alias_nr eq '' ) {
	$str = "inet ";
	$alias_nr = 0;
    }
    else {
	$str = "inet alias "; 
	$alias_nr += 1;
    }

    $str .= $_[0]->{'address'};
    $str .= " $_[0]->{'netmask'}" if ($_[0]->{'netmask'});
    $str .= " $_[0]->{'broadcast'}" if ($_[0]->{'broadcast'});

    $_ = `echo -n /etc/hostname.*`;

    if( /hostname.$if/ ) {
	$lines = &read_file_lines( "/etc/hostname.".$if );
	foreach $l (@$lines) {
	    $_ = $l;
	    if( ! /^inet |^dhcp/ )
	      { next; }
	    if( $alias_nr == 0 ) {
		$l = $str;
		$found = 1;
		last;
	    }
	    if( ! /alias/ )
	      { next; }
	    if( $alias_nr == 1 ) {
		$l = $str;
		$found = 1;
		last;
	    }
	    $alias_nr--;
	}
	if( $found == 0 ) {
	    push @$lines, ($str);
	}
	&flush_file_lines();
    } 
    else {
	open( IF_FILE, ">/etc/hostname.".$if );
	print IF_FILE $str, "\n";
	close( IF_FILE );
    }
    &unlock_file("/etc/hostname.$if");

}

# delete_interface(&details)
# Delete a boot-time interface
sub delete_interface
{
    local ($cnt = 0, $lines, $found = 0);
    local $if = $_[0]->{'name'};
    local $addr = $_[0]->{'address'};
    
    $_ = `echo -n /etc/hostname.*`;

    &lock_file("/etc/hostname.$if");
    if( /hostname.$if/ ) {
	$lines = &read_file_lines( "/etc/hostname.".$if );
	foreach $l (@$lines) {
	    $_ = $l;
	    $cnt++;
	    if ( /^\#/ )
	      { next; }
	    $found++;
	    if( ! /^inet / )
	      { next; }
	    if( /$addr/ )
	      { splice @$lines, $cnt-1, 1; }
	}
	&flush_file_lines();
	# check if we deleted the only entry in the file
	# if so delete the file (otherwise dhcp will be used for the interface)
	if( $found == 1 ) {
	    unlink ("/etc/hostname.".$if);
	}
    } 
    &unlock_file("/etc/hostname.$if");
}

# iface_type(name)
# Returns a human-readable interface type name
sub iface_type
  {
      return	$_[0] =~ /^tun/ ? "Loopback tunnel" :
	$_[0] =~ /^sl/ ? "SLIP" :
	  $_[0] =~ /^ppp/ ? "PPP" :
	    $_[0] =~ /^lo/ ? "Loopback" :
	      $_[0] =~ /^ar/ ? "Arnet" :
		$_[0] =~ /^(aue|cue|kue)/ ? "USB ethernet" :
		  $_[0] =~ /^(sk|ti|wx)/ ? "Gigabit ethernet" :
		    $_[0] =~ /^(al|ax|be|mx|qe|qec|rl|sf|sis|ste|tx|wb)/ ? "Fast ethernet" :
		      $_[0] =~ /^(ae|cs|dc|de|ec|ed|eg|el|en|ep|es|ex|fxp|hme|ie|il|ix|iy|le|mc|ne|np|qn|sm|sn|tl|vr|vx|we|xe|xl|ze|zp)/ ? "Ethernet" : $text{'ifcs_unknown'};
  }

# iface_hardware(name)
# Does some interface have an editable hardware address
sub iface_hardware
  {
      return 0;
  }

# can_edit(what)
# Can some boot-time interface parameter be edited?
sub can_edit
  {
      return $_[0] =~ /netmask|broadcast|dhcp/;
  }

# valid_boot_address(address)
# Is some address valid for a bootup interface
sub valid_boot_address
  {
      return &check_ipaddress($_[0]);
  }

# get_dns_config()
# Returns a hashtable containing keys nameserver, domain, search & order
sub get_dns_config
  {
      local $dns;
      open(RESOLV, "/etc/resolv.conf");
      while(<RESOLV>) {
	  s/\r|\n//g;
	  s/#.*$//g;		
	  if (/nameserver\s+(.*)/) {
	      push(@{$dns->{'nameserver'}}, split(/\s+/, $1));
	  }
	  elsif (/search\s+(.*)/) {
	      $dns->{'domain'} = [ split(/\s+/, $1) ];
	  }
	  elsif (/lookup\s+(.*)/) {
	      $dns->{'order'} = [ split(/\s+/, $1) ];
	  }
      }
      close(RESOLV);
      
      return $dns;
  }

# save_dns_config(&config)
# Writes out the resolv.conf and nsswitch.conf files
sub save_dns_config
  {
      &lock_file("/etc/resolv.conf");
      open(RESOLV, "/etc/resolv.conf");
      local @resolv = <RESOLV>;
      close(RESOLV);
      open(RESOLV, ">/etc/resolv.conf");
      foreach (@{$_[0]->{'nameserver'}}) {
	  print RESOLV "nameserver $_\n";
      }
      if ($_[0]->{'domain'}) {
	  print RESOLV "search ",join(" ", @{$_[0]->{'domain'}}),"\n";
      }
      foreach (@resolv) {
	  print RESOLV $_ if (!/^\s*(nameserver|search|lookup)\s+/);
      }
      print RESOLV "lookup ";
      foreach (@{$_[0]->{'order'}}) {
	  print RESOLV $_," ";
      }
      print RESOLV "\n";
      close(RESOLV);
      &unlock_file("/etc/resolv.conf");
      
  }

$max_dns_servers = 3;

# order_input(&dns)
# Returns HTML for selecting the name resolution order
sub order_input
  {
      local @o = @{$_[0]->{'order'}};
      local ($rv, $i, $j);
      local @srcs = ( "", "file", "bind", "yp" );
      local @srcn = ( "", "Hosts", "DNS", "YP" );
      for($i=1; $i<@srcs; $i++) {
	  local $ii = $i-1;
	  $rv .= "<select name=order_$ii>\n";
	  for($j=0; $j<@srcs; $j++) {
	      $rv .= sprintf "<option value=\"%s\" %s>%s\n",
	      $srcs[$j],
	      $o[$ii] eq $srcs[$j] ? "selected" : "",
	      $srcn[$j] ? $srcn[$j] : "&nbsp;";
	  }
	  $rv .= "</select>\n";
      }
      return $rv;
  }

# parse_order(&dns)
# Parses the form created by order_input()
sub parse_order
  {
      local($i, @order);
      for($i=0; defined($in{"order_$i"}); $i++) {
	  push(@order, $in{"order_$i"}) if ($in{"order_$i"});
      }
      $_[0]->{'order'} = \@order;
  }

# get_hostname()
sub get_hostname
  {
      return &get_system_hostname();
  }

# save_hostname(name)
sub save_hostname
  {
      &system_logged("hostname $_[0] >/dev/null 2>&1");
      &lock_file("/etc/myname");
      open(MYNAME, ">/etc/myname");
      print MYNAME $_[0],"\n";
      close(MYNAME);
      &unlock_file("/etc/myname");
  }

sub set_line {
    local ($l, $lines, $found = 0);
    local $pat = $_[1];
    local $news = $_[2];

    $lines = read_file_lines($_[0]);
    foreach $l (@$lines) {
	$_ = $l;
	if( /$pat/ ) {
	    $found = 1;
	    $l = $news;
	}
    } 
    if( ! $found ) {
	push @$lines, ($news);
    }

    &flush_file_lines();
}

sub read_routing {
    $defr = '';
    if( -f "/etc/mygate" )
      { $defr = `cat < /etc/mygate`; }

    local %sysctl;
    read_file("/etc/sysctl.conf", \%sysctl);
    $gw = "$sysctl{'net.inet.ip.forwarding'}";
    $gw =~ s/\s*\#.*//; 
    $gw = "0" if( $gw eq '' );

    local %rc;
    read_file("/etc/rc.conf",\%rc);
    $rd = $rc{'routed_flags'};
    $rd =~ s/\s*\#.*//; 
    $rd = "NO" if( $rd eq '' );
}

sub routing_input
  {
      &read_routing;

      print "<tr> <td><b>$text{'routes_default'}</b></td> <td>\n";
      printf "<input name=defr_def type=radio value=1 %s> %s\n",
      $defr eq '' ? 'checked' : '', $text{'routes_none'};
      printf "<input name=defr_def type=radio value=0 %s>\n",
      $defr eq '' ? '' : 'checked';
      printf "<input name=defr size=20 value='%s'></td> </tr>\n",
      $defr;
      
      print "<tr> <td><b>$text{'routes_forward'}</b></td> <td>\n";
      printf "<input name=gw type=radio value=1 %s> %s\n",
      $gw eq '1' ? 'checked' : '', $text{'yes'};
      printf "<input name=gw type=radio value=0 %s> %s</td> </tr>\n",
      $gw eq '1' ? '' : 'checked', $text{'no'};
      
      print "<tr> <td><b>$text{'routes_routed'}</b></td> <td>\n";
      printf "<input name=rd type=radio value=-q %s> %s\n",
      $rd eq 'NO' ? '':'checked', $text{'yes'};
      printf "<input name=rd type=radio value=NO %s> %s</td> </tr>\n",
      $rd eq 'NO' ? 'checked':'', $text{'no'};
  }

sub parse_routing
  {
      $in{'defr_def'} || &check_ipaddress($in{'defr'}) ||
	&error(&text('routes_edefault', $in{'defr'}));

      &read_routing;

      if ( $in{'defr_def'} && -f "/etc/mygate" ) {
	  unlink "/etc/mygate";
      }
      else {
	  if( $in{'defr'} ne $defr )
	    { system("echo ".$in{'defr'}." > /etc/mygate"); }
      }
      
      if( $in{'gw'} ne $gw ) {
	  &set_line( "/etc/sysctl.conf", "^net.inet.ip.forwarding", "net.inet.ip.forwarding=$in{'gw'}" );
      }

      if( $in{'rd'} ne $rd ) {
	  &set_line( "/etc/rc.conf", "^routed_flags", "routed_flags=$in{'rd'}" );
      }
  }


1;

07070100015e4d000081a40000000000000002000000013ac038a1000033a1000000200000000000000000000000000000001e00000003reloc/net/redhat-linux-lib.pl # redhat-linux-lib.pl
# Networking functions for redhat linux

$net_scripts_dir = "/etc/sysconfig/network-scripts";
$network_config = "/etc/sysconfig/network";
$static_route_config = "/etc/sysconfig/static-routes";

# active_interfaces()
# Returns a list of currently ifconfig'd interfaces
sub active_interfaces
{
local(@rv, @lines, $l);
open(IFC, "ifconfig -a |");
while(<IFC>) {
	s/\r|\n//g;
	if (/^\S+/) { push(@lines, $_); }
	else { $lines[$#lines] .= $_; }
	}
close(IFC);
foreach $l (@lines) {
	local %ifc;
	$l =~ /^([^:\s]+)/; $ifc{'name'} = $1;
	$l =~ /^(\S+)/; $ifc{'fullname'} = $1;
	if ($l =~ /^(\S+):(\d+)/) { $ifc{'virtual'} = $2; }
	if ($l =~ /inet addr:(\S+)/) { $ifc{'address'} = $1; }
	elsif (!$_[0]) { next; }
	if ($l =~ /Mask:(\S+)/) { $ifc{'netmask'} = $1; }
	if ($l =~ /Bcast:(\S+)/) { $ifc{'broadcast'} = $1; }
	if ($l =~ /HWaddr (\S+)/) { $ifc{'ether'} = $1; }
	if ($l =~ /MTU:(\d+)/) { $ifc{'mtu'} = $1; }
	$ifc{'up'}++ if ($l =~ /\sUP\s/);
	$ifc{'edit'} = ($ifc{'name'} !~ /^ppp/);
	$ifc{'index'} = scalar(@rv);
	push(@rv, \%ifc);
	}
return @rv;
}

# activate_interface(&details)
# Create or modify an interface
sub activate_interface
{
local $a = $_[0];
local $cmd = "ifconfig $a->{'name'}";
if ($a->{'virtual'} ne "") { $cmd .= ":$a->{'virtual'}"; }
$cmd .= " $a->{'address'}";
if ($a->{'netmask'}) { $cmd .= " netmask $a->{'netmask'}"; }
if ($a->{'broadcast'}) { $cmd .= " broadcast $a->{'broadcast'}"; }
if ($a->{'mtu'}) { $cmd .= " mtu $a->{'mtu'}"; }
if ($a->{'up'}) { $cmd .= " up"; }
else { $cmd .= " down"; }
local $out = &backquote_logged("$cmd 2>&1");
if ($?) { &error($out); }
if ($a->{'ether'}) {
	$out = &backquote_logged(
		"ifconfig $a->{'name'} hw ether $a->{'ether'} 2>&1");
	if ($?) { &error($out); }
	}
}

# deactivate_interface(&details)
# Shutdown some active interface
sub deactivate_interface
{
local $name = $_[0]->{'name'}.
	      ($_[0]->{'virtual'} ne "" ? ":$_[0]->{'virtual'}" : "");
if ($_[0]->{'virtual'} ne "") {
	# Shutdown virtual interface by setting address to 0
	local $out = &backquote_logged("ifconfig $name 0 2>&1");
	if ($?) { &error($out); }
	}
local ($still) = grep { $_->{'fullname'} eq $name } &active_interfaces();
if ($still) {
	# Old version of ifconfig or non-virtual interface.. down it
	local $out = &backquote_logged("ifconfig $name down 2>&1");
	if ($?) { &error($out); }
	}
}

# boot_interfaces()
# Returns a list of interfaces brought up at boot time
sub boot_interfaces
{
local(@rv, $f);
opendir(CONF, $net_scripts_dir);
while($f = readdir(CONF)) {
	next if ($f !~ /^ifcfg-[a-z0-9:]+$/);
	local (%conf, $b);
	&read_env_file("$net_scripts_dir/$f", \%conf);
	$b->{'fullname'} = $conf{'DEVICE'};
	if ($b->{'fullname'} =~ /(\S+):(\d+)/) {
		$b->{'name'} = $1;
		$b->{'virtual'} = $2;
		}
	else { $b->{'name'} = $b->{'fullname'}; }
	$b->{'up'} = ($conf{'ONBOOT'} eq 'yes');
	$b->{'address'} = $conf{'IPADDR'};
	$b->{'netmask'} = $conf{'NETMASK'};
	$b->{'broadcast'} = $conf{'BROADCAST'};
	$b->{'dhcp'} = ($conf{'BOOTPROTO'} eq 'dhcp');
	$b->{'bootp'} = ($conf{'BOOTPROTO'} eq 'bootp');
	$b->{'edit'} = ($b->{'name'} !~ /^ppp|irlan/);
	$b->{'index'} = scalar(@rv);
	push(@rv, $b);
	}
closedir(CONF);
return @rv;
}

# save_interface(&details)
# Create or update a boot-time interface
sub save_interface
{
local(%conf);
local $name = $_[0]->{'virtual'} ne "" ? $_[0]->{'name'}.":".$_[0]->{'virtual'}
				       : $_[0]->{'name'};
&lock_file("$net_scripts_dir/ifcfg-$name");
&read_env_file("$net_scripts_dir/ifcfg-$name", \%conf);
$conf{'DEVICE'} = $name;
$conf{'IPADDR'} = $_[0]->{'address'};
local($ip1, $ip2, $ip3, $ip4) = split(/\./, $_[0]->{'address'});
$conf{'NETMASK'} = $_[0]->{'netmask'};
local($nm1, $nm2, $nm3, $nm4) = split(/\./, $_[0]->{'netmask'});
if ($_[0]->{'address'} && $_[0]->{'netmask'}) {
	$conf{'NETWORK'} = sprintf "%d.%d.%d.%d",
				($ip1 & int($nm1))&0xff,
				($ip2 & int($nm2))&0xff,
				($ip3 & int($nm3))&0xff,
				($ip4 & int($nm4))&0xff;
	}
else {
	$conf{'NETWORK'} = '';
	}
$conf{'BROADCAST'} = $_[0]->{'broadcast'};
$conf{'ONBOOT'} = $_[0]->{'up'} ? "yes" : "no";
$conf{'BOOTPROTO'} = $_[0]->{'bootp'} ? "bootp" :
		     $_[0]->{'dhcp'} ? "dhcp" : "none";
&write_env_file("$net_scripts_dir/ifcfg-$name", \%conf);
&unlock_file("$net_scripts_dir/ifcfg-$name");
}

# delete_interface(&details)
# Delete a boot-time interface
sub delete_interface
{
local $name = $_[0]->{'virtual'} ne "" ? $_[0]->{'name'}.":".$_[0]->{'virtual'}
				       : $_[0]->{'name'};
&lock_file("$net_scripts_dir/ifcfg-$name");
unlink("$net_scripts_dir/ifcfg-$name");
&unlock_file("$net_scripts_dir/ifcfg-$name");
}

# iface_type(name)
# Returns a human-readable interface type name
sub iface_type
{
return "PPP" if ($_[0] =~ /^ppp/);
return "SLIP" if ($_[0] =~ /^sl/);
return "PLIP" if ($_[0] =~ /^plip/);
return "Ethernet" if ($_[0] =~ /^eth/);
return "Arcnet" if ($_[0] =~ /^arc/);
return "Token Ring" if ($_[0] =~ /^tr/);
return "Pocket/ATP" if ($_[0] =~ /^atp/);
return "Loopback" if ($_[0] =~ /^lo/);
return $text{'ifcs_unknown'};
}

# iface_hardware(name)
# Does some interface have an editable hardware address
sub iface_hardware
{
return $_[0] =~ /^eth/;
}

# can_edit(what)
# Can some boot-time interface parameter be edited?
sub can_edit
{
return $_[0] ne "mtu";
}

# valid_boot_address(address)
# Is some address valid for a bootup interface
sub valid_boot_address
{
return &check_ipaddress($_[0]);
}

# get_dns_config()
# Returns a hashtable containing keys nameserver, domain, search & order
sub get_dns_config
{
local $dns;
open(RESOLV, "/etc/resolv.conf");
while(<RESOLV>) {
	s/\r|\n//g;
	s/#.*$//;
	if (/nameserver\s+(.*)/) {
		push(@{$dns->{'nameserver'}}, split(/\s+/, $1));
		}
	elsif (/domain\s+(\S+)/) {
		$dns->{'domain'} = [ $1 ];
		}
	elsif (/search\s+(.*)/) {
		$dns->{'domain'} = [ split(/\s+/, $1) ];
		}
	}
close(RESOLV);
open(SWITCH, "/etc/nsswitch.conf");
while(<SWITCH>) {
	s/\r|\n//g;
	if (/^\s*hosts:\s+(.*)/) {
		$dns->{'order'} = $1;
		}
	}
close(SWITCH);
return $dns;
}

# save_dns_config(&config)
# Writes out the resolv.conf and nsswitch.conf files
sub save_dns_config
{
&lock_file("/etc/resolv.conf");
open(RESOLV, "/etc/resolv.conf");
local @resolv = <RESOLV>;
close(RESOLV);
open(RESOLV, ">/etc/resolv.conf");
foreach (@{$_[0]->{'nameserver'}}) {
	print RESOLV "nameserver $_\n";
	}
if ($_[0]->{'domain'}) {
	if ($_[0]->{'domain'}->[1]) {
		print RESOLV "search ",join(" ", @{$_[0]->{'domain'}}),"\n";
		}
	else {
		print RESOLV "domain $_[0]->{'domain'}->[0]\n";
		}
	}
foreach (@resolv) {
	print RESOLV $_ if (!/^\s*(nameserver|domain|search)\s+/);
	}
close(RESOLV);
&unlock_file("/etc/resolv.conf");

&lock_file("/etc/nsswitch.conf");
open(SWITCH, "/etc/nsswitch.conf");
local @switch = <SWITCH>;
close(SWITCH);
open(SWITCH, ">/etc/nsswitch.conf");
foreach (@switch) {
	if (/^\s*hosts:\s+/) {
		print SWITCH "hosts:\t$_[0]->{'order'}\n";
		}
	else { print SWITCH $_; }
	}
close(SWITCH);
&unlock_file("/etc/nsswitch.conf");
}

$max_dns_servers = 3;

# order_input(&dns)
# Returns HTML for selecting the name resolution order
sub order_input
{
if ($_[0]->{'order'} =~ /\[/) {
	# Using a complex resolve list
	return "<input name=order size=45 value=\"$_[0]->{'order'}\">\n";
	}
else {
	# Can select by menus
	local @o = split(/\s+/, $_[0]->{'order'});
	@o = map { s/nis\+/nisplus/; s/yp/nis/; $_; } @o;
	local ($rv, $i, $j);
	local @srcs = ( "", "files", "dns", "nis", "nisplus", "db" );
	local @srcn = ( "", "Hosts", "DNS", "NIS", "NIS+", "DB" );
	for($i=1; $i<@srcs; $i++) {
		local $ii = $i-1;
		$rv .= "<select name=order_$ii>\n";
		for($j=0; $j<@srcs; $j++) {
			$rv .= sprintf "<option value=\"%s\" %s>%s\n",
					$srcs[$j],
					$o[$ii] eq $srcs[$j] ? "selected" : "",
					$srcn[$j] ? $srcn[$j] : "&nbsp;";
			}
		$rv .= "</select>\n";
		}
	return $rv;
	}
}

# parse_order(&dns)
# Parses the form created by order_input()
sub parse_order
{
if (defined($in{'order'})) {
	$in{'order'} =~ /\S/ || &error($text{'dns_eorder'});
	$_[0]->{'order'} = $in{'order'};
	}
else {
	local($i, @order);
	for($i=0; defined($in{"order_$i"}); $i++) {
		push(@order, $in{"order_$i"}) if ($in{"order_$i"});
		}
	$_[0]->{'order'} = join(" ", @order);
	}
}

# get_hostname()
sub get_hostname
{
return &get_system_hostname();
}

# save_hostname(name)
sub save_hostname
{
local %conf;
&system_logged("hostname $_[0] >/dev/null 2>&1");
&lock_file("/etc/HOSTNAME");
open(HOST, ">/etc/HOSTNAME");
print HOST $_[0],"\n";
close(HOST);
&unlock_file("/etc/HOSTNAME");
&lock_file($network_config);
&read_env_file($network_config, \%conf);
$conf{'HOSTNAME'} = $_[0];
&write_env_file($network_config, \%conf);
&unlock_file($network_config);
}

# get_domainname()
sub get_domainname
{
local $d = `domainname`;
chop($d);
return $d eq "(none)" ? "" : $d;
}

# save_domainname(domain)
sub save_domainname
{
local %conf;
system("domainname \"$_[0]\" >/dev/null 2>&1");
&read_env_file($network_config, \%conf);
if ($_[0]) {
	$conf{'NISDOMAIN'} = $_[0];
	}
else {
	delete($conf{'NISDOMAIN'});
	}
&write_env_file($network_config, \%conf);
}

sub routing_input
{
# show default router and device
local (%conf, @st, @hr);
&read_env_file($network_config, \%conf);
print "<tr> <td><b>$text{'routes_default'}</b></td> <td>\n";
printf "<input type=radio name=gateway_def value=1 %s> $text{'routes_none'}\n",
	$conf{'GATEWAY'} ? "" : "checked";
printf "<input type=radio name=gateway_def value=0 %s>\n",
	$conf{'GATEWAY'} ? "checked" : "";
printf "<input name=gateway size=15 value=\"%s\"></td> </tr>\n",
	$conf{'GATEWAY'};

print "<tr> <td><b>$text{'routes_device2'}</b></td> <td>\n";
printf "<input type=radio name=gatewaydev_def value=1 %s> $text{'routes_none'}\n",
	$conf{'GATEWAYDEV'} ? "" : "checked";
printf "<input type=radio name=gatewaydev_def value=0 %s>\n",
	$conf{'GATEWAYDEV'} ? "checked" : "";
printf "<input name=gatewaydev size=6 value=\"%s\"></td> </tr>\n",
	$conf{'GATEWAYDEV'};

# show routing
print "<tr> <td><b>$text{'routes_forward'}</b></td> <td>\n";
printf "<input type=radio name=forward value=1 %s> $text{'yes'}\n",
	$conf{'FORWARD_IPV4'} eq "yes" ? "checked" : "";
printf "<input type=radio name=forward value=0 %s> $text{'no'}</td> </tr>\n",
	$conf{'FORWARD_IPV4'} eq "yes" ? "" : "checked";

# get static routes
open(STATIC, $static_route_config);
while(<STATIC>) {
	if (/(\S+)\s+net\s+(\S+)\s+netmask\s+(\S+)\s+gw\s+(\S+)/) {
		push(@st, [ $1, $2, $3, $4 ]);
		}
	elsif (/(\S+)\s+host\s+(\S+)/) {
		push(@hr, [ $1, $2 ]);
		}
	}
close(STATIC);

# show static network routes
print "<tr> <td valign=top><b>$text{'routes_static'}</b></td>\n";
print "<td><table border>\n";
print "<tr $tb> <td><b>$text{'routes_ifc'}</b></td> ",
      "<td><b>$text{'routes_net'}</b></td> ",
      "<td><b>$text{'routes_mask'}</b></td> ",
      "<td><b>$text{'routes_gateway'}</b></td> </tr>\n";
for($i=0; $i<=@st; $i++) {
	local $st = $st[$i];
	print "<tr $cb>\n";
	print "<td><input name=dev_$i size=6 value='$st->[0]'></td>\n";
	print "<td><input name=net_$i size=15 value='$st->[1]'></td>\n";
	print "<td><input name=netmask_$i size=15 value='$st->[2]'></td>\n";
	print "<td><input name=gw_$i size=15 value='$st->[3]'></td>\n";
	print "</tr>\n";
	}
print "</table></td> </tr>\n";

# Show static host routes
print "<tr> <td valign=top><b>$text{'routes_local'}</b></td>\n";
print "<td><table border>\n";
print "<tr $tb> <td><b>$text{'routes_ifc'}</b></td> ",
      "<td><b>$text{'routes_net'}</b></td> </tr>\n";
for($i=0; $i<=@hr; $i++) {
	local $st = $hr[$i];
	print "<tr $cb>\n";
	print "<td><input name=ldev_$i size=6 value='$st->[0]'></td>\n";
	print "<td><input name=lnet_$i size=15 value='$st->[1]'></td>\n";
	print "</tr>\n";
	}
print "</table></td> </tr>\n";
}

sub parse_routing
{
local (%conf, @st);
&lock_file($network_config);
&read_env_file($network_config, \%conf);
if ($in{'gateway_def'}) { $conf{'GATEWAY'} = ''; }
elsif (!gethostbyname($in{'gateway'})) {
	&error(&text('routes_edefault', $in{'gateway'}));
	}
else { $conf{'GATEWAY'} = $in{'gateway'}; }

if ($in{'gatewaydev_def'}) { $conf{'GATEWAYDEV'} = ''; }
elsif ($in{'gatewaydev'} !~ /^\S+$/) {
	&error(&text('routes_edevice', $in{'gatewaydev'}));
	}
else { $conf{'GATEWAYDEV'} = $in{'gatewaydev'}; }

if ($in{'forward'}) { $conf{'FORWARD_IPV4'} = 'yes'; }
else { $conf{'FORWARD_IPV4'} = 'no'; }

&lock_file($static_route_config);
for($i=0; defined($dev = $in{"dev_$i"}); $i++) {
	$net = $in{"net_$i"}; $netmask = $in{"netmask_$i"}; $gw = $in{"gw_$i"};
	next if (!$dev && !$net && !$netmask && !$gw);
	$dev =~ /^\S+$/ || &error(&text('routes_edevice', $dev));
	gethostbyname($net) || &error(&text('routes_enet', $net));
	&check_ipaddress($netmask) || &error(&text('routes_emask', $netmask));
	gethostbyname($gw) || &error(&text('routes_egateway', $gw));
	push(@st, "$dev net $net netmask $netmask gw $gw\n");
	}
for($i=0; defined($dev = $in{"ldev_$i"}); $i++) {
	$net = $in{"lnet_$i"};
	next if (!$dev && !$net);
	$dev =~ /^\S+$/ || &error(&text('routes_edevice', $dev));
	gethostbyname($net) || &error(&text('routes_enet', $net));
	push(@st, "$dev host $net\n");
	}
open(STATIC, ">$static_route_config");
print STATIC @st;
close(STATIC);
&unlock_file($static_route_config);
&write_env_file($network_config, \%conf);
&unlock_file($network_config);
}

1;

   07070100015e4e000081e40000000000000002000000013ac038a100000a4a000000200000000000000000000000000000001800000003reloc/net/save_aifc.cgi   #!/usr/local/bin/perl
# save_aifc.cgi
# Save, create or delete an active interface

require './net-lib.pl';
&ReadParse();
@acts = &active_interfaces();
if ($in{'delete'}) {
	# delete an interface
	&error_setup($text{'aifc_err1'});
	$a = $acts[$in{'idx'}];
	&deactivate_interface($a);
	&webmin_log("delete", "aifc", $a->{'fullname'}, $a);
	}
else {
	# Validate and save inputs
	&error_setup($text{'aifc_err2'});
	if (!$in{'new'}) {
		$olda = $acts[$in{'idx'}];
		$a->{'name'} = $olda->{'name'};
		$a->{'virtual'} = $olda->{'virtual'}
			if (defined($olda->{'virtual'}));
		}
	elsif (defined($in{'virtual'})) {
		# creating a virtual interface
		$in{'virtual'} =~ /^\d+$/ ||
			&error($text{'aifc_evirt'});
		foreach $ea (@acts) {
			if ($ea->{'name'} eq $in{'name'} &&
			    $ea->{'virtual'} eq $in{'virtual'}) {
				&error(&text('aifc_evirtdup',
				       "$in{'name'}:$in{'virtual'}"));
				}
			}
		$a->{'name'} = $in{'name'};
		$a->{'virtual'} = $in{'virtual'};
		}
	elsif ($in{'name'} =~ /^([a-z0-9]+):(\d+)$/) {
		# also creating a virtual interface
		foreach $ea (@acts) {
			if ($ea->{'name'} eq $1 &&
			    $ea->{'virtual'} eq $2) {
				&error(&text('aifc_evirtdup', $in{'name'}));
				}
			}
		$a->{'name'} = $1;
		$a->{'virtual'} = $2;
		}
	elsif ($in{'name'} =~ /^[a-z0-9]+$/) {
		# creating a real interface
		foreach $ea (@acts) {
			if ($ea->{'name'} eq $in{'name'}) {
				&error(&text('aifc_edup', $in{'name'}));
				}
			}
		$a->{'name'} = $in{'name'};
		}
	else {
		&error($text{'aifc_ename'});
		}
	&check_ipaddress($in{'address'}) ||
		&error(&text('aifc_eip', $in{'address'}));
	$a->{'address'} = $in{'address'};
	if (!$in{'netmask_def'}) {
		&check_ipaddress($in{'netmask'}) ||
			&error(&text('aifc_emask', $in{'netmask'}));
		$a->{'netmask'} = $in{'netmask'};
		}
	if (!$in{'broadcast_def'}) {
		&check_ipaddress($in{'broadcast'}) ||
			&error(&text('aifc_ebroad', $in{'broadcast'}));
		$a->{'broadcast'} = $in{'broadcast'};
		}
	if (!$in{'mtu_def'}) {
		$in{'mtu'} =~ /^\d+$/ ||
			&error(&text('aifc_emtu', $in{'mtu'}));
		$a->{'mtu'} = $in{'mtu'} if ($olda->{'mtu'} ne $in{'mtu'});
		}
	if ($in{'up'}) { $a->{'up'}++; }
	if (!$in{'ether_def'} && $a->{'virtual'} eq "" &&
	    &iface_hardware($a->{'name'})) {
		$in{'ether'} =~ /^[A-Fa-f0-9:]+$/ ||
			&error(&text('aifc_ehard', $in{'ether'}));
		$a->{'ether'} = $in{'ether'}
			if ($olda->{'ether'} ne $in{'ether'});
		}
	$a->{'fullname'} = $a->{'name'}.
			   ($a->{'virtual'} eq '' ? '' : ':'.$a->{'virtual'});
	&activate_interface($a);
	&webmin_log($in{'new'} ? 'create' : 'modify',
		    "aifc", $a->{'fullname'}, $a);
	}
&redirect("list_ifcs.cgi");

  07070100015e4f000081e40000000000000002000000013ac038a100000ac1000000200000000000000000000000000000001800000003reloc/net/save_bifc.cgi   #!/usr/local/bin/perl
# save_bifc.cgi
# Create, save or delete a boot-time interface

require './net-lib.pl';
&ReadParse();
@boot = &boot_interfaces();
if ($in{'delete'}) {
	# Delete interface
	&error_setup($text{'bifc_err1'});
	$b = $boot[$in{'idx'}];
	&delete_interface($b);
	&webmin_log("delete", "bifc", $b->{'fullname'}, $b);
	}
else {
	# Save or create interface
	&error_setup($text{'bifc_err2'});
	if (!$in{'new'}) {
		$oldb = $boot[$in{'idx'}];
		$b->{'name'} = $oldb->{'name'};
		$b->{'virtual'} = $oldb->{'virtual'}
			if (defined($oldb->{'virtual'}));
		}
	elsif (defined($in{'virtual'})) {
		# creating a virtual interface
		$in{'virtual'} =~ /^\d+$/ ||
			&error($text{'bifc_evirt'});
		foreach $eb (@boot) {
			if ($eb->{'name'} eq $in{'name'} &&
			    $eb->{'virtual'} eq $in{'virtual'}) {
				&error(&text('bifc_evirtdup',
				       "$in{'name'}:$in{'virtual'}"));
				}
			}
		$b->{'name'} = $in{'name'};
		$b->{'virtual'} = $in{'virtual'};
		}
	elsif ($in{'name'} =~ /^([a-z0-9]+):(\d+)$/) {
		# also creating a virtual interface
		foreach $eb (@boot) {
			if ($eb->{'name'} eq $1 &&
			    $eb->{'virtual'} eq $2) {
				&error(&text('bifc_evirtdup', $in{'name'}));
				}
			}
		$b->{'name'} = $1;
		$b->{'virtual'} = $2;
		}
	elsif ($in{'name'} =~/^[a-z]+\d+$/) {
		# creating a real interface
		foreach $eb (@acts) {
			if ($eb->{'name'} eq $in{'name'}) {
				&error(&text('bifc_edup', $in{'name'}));
				}
			}
		$b->{'name'} = $in{'name'};
		}
	else {
		&error($text{'bifc_ename'});
		}
	if ($in{'mode'} eq 'dhcp' || $in{'mode'} eq 'bootp') {
		$b->{$in{'mode'}}++;
		$auto++;
		}
	else {
		&valid_boot_address($in{'address'}) ||
			&error(&text('bifc_eip', $in{'address'}));
		$b->{'address'} = $in{'address'};
		}
	if (&can_edit("netmask", $b)) {
		$auto && !$in{'netmask'} || &check_ipaddress($in{'netmask'}) ||
			&error(&text('bifc_emask', $in{'netmask'}));
		$b->{'netmask'} = $in{'netmask'};
		}
	if (&can_edit("broadcast", $b)) {
		$auto && !$in{'broadcast'} ||
			&check_ipaddress($in{'broadcast'}) ||
			&error(&text('bifc_ebroad', $in{'broadcast'}));
		$b->{'broadcast'} = $in{'broadcast'};
		}
	if (&can_edit("mtu", $b)) {
		$in{'mtu'} =~ /^\d+$/ ||
			&error(&text('bifc_emtu', $in{'mtu'}));
		$b->{'mtu'} = $in{'mtu'};
		}
	if ($in{'up'} && &can_edit("up", $b)) { $b->{'up'}++; }
	$b->{'fullname'} = $b->{'name'}.
			   ($b->{'virtual'} eq '' ? '' : ':'.$b->{'virtual'});
	&save_interface($b);

	if ($in{'activate'}) {
		# Make this interface active (if possible)
		&error_setup($text{'bifc_err3'});
		$b->{'up'}++;
		$b->{'address'} = &to_ipaddress($b->{'address'});
		&activate_interface($b);
		}
	&webmin_log($in{'new'} ? 'create' : 'modify',
		    "bifc", $b->{'fullname'}, $b);
	}
&redirect("list_ifcs.cgi");

   07070100015e50000081e40000000000000002000000013ac038a10000035d000000200000000000000000000000000000001700000003reloc/net/save_dns.cgi    #!/usr/local/bin/perl
# save_dns.cgi
# Save DNS client configuration

require './net-lib.pl';
$whatfailed = "Failed to save DNS configuration";
&ReadParse();

$in{'hostname'} =~ /^[A-z0-9\.\-]*$/ ||
	&error("'$in{'hostname'}' is not a valid hostname");
$dns = { };
for($i=0; $i<$max_dns_servers; $i++) {
	$ns = $in{"nameserver_$i"};
	if ($ns) {
		&check_ipaddress($ns) ||
			&error("'$ns' is not a valid nameserver IP address");
		push(@{$dns->{'nameserver'}}, $ns);
		}
	}
if (!$in{'domain_def'}) {
	@dlist = split(/\s+/, $in{'domain'});
	foreach $d (@dlist) {
		$d =~ /^[A-z0-9\.\-]+$/ ||
			&error("'$d' is not a valid domain name");
		push(@{$dns->{'domain'}}, $d);
		}
	@dlist>0 || &error("No domains to search given");
	}
&parse_order($dns);
&save_dns_config($dns);
&save_hostname($in{'hostname'});
&webmin_log("dns", undef, undef, \%in);
&redirect("");

   07070100015e51000081e40000000000000002000000013ac038a10000043f000000200000000000000000000000000000001800000003reloc/net/save_host.cgi   #!/usr/local/bin/perl
# save_host.cgi
# Create, update or delete a host address

require './net-lib.pl';
&ReadParse();
&lock_file($config{'hosts_file'});
@hosts = &list_hosts();
if ($in{'delete'}) {
	# deleting a host
	$host = $hosts[$in{'idx'}];
	&delete_host($host);
	}
else {
	# saving or updating a host
	$whatfailed = "Failed to save host";
	&check_ipaddress($in{'address'}) ||
		&error("'$in{'address'}' is not a valid IP address");
	@h = split(/\s+/, $in{'hosts'});
	foreach $h (@h) {
		$h =~ /^[A-z0-9\-\.]+$/ ||
			&error("'$h' is not a valid hostname");
		}
	@h>0 || &error("You must enter at least one hostname");
	if ($in{'new'}) {
		# saving a host
		$host = { 'address' => $in{'address'},
			  'hosts' => \@h };
		&create_host($host);
		}
	else {
		# updating a host
		$host = $hosts[$in{'idx'}];
		$host->{'address'} = $in{'address'};
		$host->{'hosts'} = \@h;
		&modify_host($host);
		}
	}
&unlock_file($config{'hosts_file'});
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
	    'host', $host->{'address'}, $host);
&redirect("list_hosts.cgi");

 07070100015e52000081e40000000000000002000000013ac038a1000000e6000000200000000000000000000000000000001a00000003reloc/net/save_routes.cgi #!/usr/local/bin/perl
# save_routes.cgi
# Save boot-time routing configuration

require './net-lib.pl';
&ReadParse();
&error_setup($text{'routes_err'});
&parse_routing();
&webmin_log("routes", undef, undef, \%in);
&redirect("");

  07070100015e53000081a40000000000000002000000013ac038a100000989000000200000000000000000000000000000002100000003reloc/net/slackware-linux-lib.pl  # slackware-linux-lib.pl
# Networking functions for slackware linux (incomplete)

# active_interfaces()
# Returns a list of currently ifconfig'd interfaces
sub active_interfaces
{
local(@rv, @lines, $l);
open(IFC, "ifconfig -a |");
while(<IFC>) {
	s/\r|\n//g;
	if (/^\S+/) { push(@lines, $_); }
	else { $lines[$#lines] .= $_; }
	}
close(IFC);
foreach $l (@lines) {
	local %ifc;
	$l =~ /^([^:\s]+)/; $ifc{'name'} = $1;
	$l =~ /^(\S+)/; $ifc{'fullname'} = $1;
	if ($l =~ /^(\S+):(\d+)/) { $ifc{'virtual'} = $2; }
	if ($l =~ /inet addr:(\S+)/) { $ifc{'address'} = $1; }
	else { next; }
	if ($l =~ /Mask:(\S+)/) { $ifc{'netmask'} = $1; }
	if ($l =~ /Bcast:(\S+)/) { $ifc{'broadcast'} = $1; }
	if ($l =~ /HWaddr (\S+)/) { $ifc{'ether'} = $1; }
	if ($l =~ /MTU:(\d+)/) { $ifc{'mtu'} = $1; }
	$ifc{'up'}++ if ($l =~ /\sUP\s/);
	$ifc{'edit'} = ($ifc{'name'} !~ /^ppp/);
	$ifc{'index'} = scalar(@rv);
	push(@rv, \%ifc);
	}
return @rv;
}

# activate_interface(&details)
# Create or modify an interface
sub activate_interface
{
local $a = $_[0];
local $cmd = "ifconfig $a->{'name'}";
if ($a->{'virtual'} ne "") { $cmd .= ":$a->{'virtual'}"; }
$cmd .= " $a->{'address'}";
if ($a->{'netmask'}) { $cmd .= " netmask $a->{'netmask'}"; }
if ($a->{'broadcast'}) { $cmd .= " broadcast $a->{'broadcast'}"; }
if ($a->{'mtu'}) { $cmd .= " mtu $a->{'mtu'}"; }
if ($a->{'up'}) { $cmd .= " up"; }
else { $cmd .= " down"; }
local $out = &backquote_logged("$cmd 2>&1");
if ($?) { &error($out); }
if ($a->{'ether'}) {
	$out = &backquote_logged(
		"ifconfig $a->{'name'} hw ether $a->{'ether'} 2>&1");
	if ($?) { &error($out); }
	}
}

# deactivate_interface(&details)
# Shutdown some active interface
sub deactivate_interface
{
local $cmd = "ifconfig $a->{'name'}";
if ($a->{'virtual'} ne "") { $cmd .= ":$a->{'virtual'}"; }
$cmd .= " down";
local $out = &backquote_logged("$cmd 2>&1");
if ($?) { &error($out); }
}

# iface_type(name)
# Returns a human-readable interface type name
sub iface_type
{
return "PPP" if ($_[0] =~ /^ppp/);
return "SLIP" if ($_[0] =~ /^sl/);
return "PLIP" if ($_[0] =~ /^plip/);
return "Ethernet" if ($_[0] =~ /^eth/);
return "Arcnet" if ($_[0] =~ /^arc/);
return "Token Ring" if ($_[0] =~ /^tr/);
return "Pocket/ATP" if ($_[0] =~ /^atp/);
return "Loopback" if ($_[0] =~ /^lo/);
return $text{'ifcs_unknown'};
}

# iface_hardware(name)
# Does some interface have an editable hardware address
sub iface_hardware
{
return $_[0] =~ /^eth/;
}

1;

   07070100015e54000081a40000000000000002000000013ac038a100002797000000200000000000000000000000000000001900000003reloc/net/solaris-lib.pl  # solaris-lib.pl
# Networking functions for solaris

# active_interfaces()
# Returns a list of currently ifconfig'd interfaces
sub active_interfaces
{
local(@rv, @lines, $l);
open(IFC, "ifconfig -a |");
while(<IFC>) {
	s/\r|\n//g;
	if (/^\S+:/) { push(@lines, $_); }
	else { $lines[$#lines] .= $_; }
	}
close(IFC);
foreach $l (@lines) {
	local %ifc;
	$l =~ /^([^:\s]+):/; $ifc{'name'} = $1;
	$l =~ /^(\S+):/; $ifc{'fullname'} = $1;
	if ($l =~ /^(\S+):(\d+):\s/) { $ifc{'virtual'} = $2; }
	if ($l =~ /inet\s+(\S+)/) { $ifc{'address'} = $1; }
	if ($l =~ /netmask\s+(\S+)/) { $ifc{'netmask'} = &parse_hex($1); }
	if ($l =~ /broadcast\s+(\S+)/) { $ifc{'broadcast'} = $1; }
	if ($l =~ /ether\s+(\S+)/) { $ifc{'ether'} = $1; }
	if ($l =~ /mtu\s+(\S+)/) { $ifc{'mtu'} = $1; }
	$ifc{'up'}++ if ($l =~ /\<UP/);
	$ifc{'edit'} = ($ifc{'name'} !~ /ipdptp|ppp/);
	$ifc{'index'} = scalar(@rv);
	if ($ifc{'ether'}) {
		$ifc{'ether'} = join(":", map { sprintf "%2.2X", hex($_) }
					      split(/:/, $ifc{'ether'}));
		}
	push(@rv, \%ifc);
	}
return @rv;
}

# activate_interface(&details)
# Create or modify an interface
sub activate_interface
{
local $a = $_[0];
if ($a->{'virtual'} eq "") {
	local $out = &backquote_logged("ifconfig $a->{'name'} plumb 2>&1");
	if ($out) { &error(&text('aifc_eexist', $a->{'name'})); }
	}
local $cmd = "ifconfig $a->{'name'}";
if ($a->{'virtual'} ne "") { $cmd .= ":$a->{'virtual'}"; }
$cmd .= " $a->{'address'}";
if ($a->{'netmask'}) { $cmd .= " netmask $a->{'netmask'}"; }
else { $cmd .= " netmask +"; }
if ($a->{'broadcast'}) { $cmd .= " broadcast $a->{'broadcast'}"; }
else { $cmd .= " broadcast +"; }
if ($a->{'mtu'}) { $cmd .= " mtu $a->{'mtu'}"; }
if ($a->{'up'}) { $cmd .= " up"; }
else { $cmd .= " down"; }
local $out = &backquote_logged("$cmd 2>&1");
if ($?) { &error($out); }
if ($a->{'ether'}) {
	$out = &backquote_logged(
		"ifconfig $a->{'name'} ether $a->{'ether'} 2>&1");
	if ($? && $out !~ /Device busy/) { &error($out); }
	}
}

# deactivate_interface(&details)
# Deactive an interface
sub deactivate_interface
{
local $cmd;
if ($a->{'virtual'} eq "") {
	$cmd = "ifconfig $a->{'name'} unplumb";
	}
else {
	$cmd = "ifconfig $a->{'name'}:$a->{'virtual'} 0.0.0.0 down";
	}
local $out = &backquote_logged("$cmd 2>&1");
if ($?) { &error($out); }
}

# boot_interfaces()
# Returns a list of interfaces brought up at boot time
sub boot_interfaces
{
local (@rv, $f, %mask);
push(@rv, { 'name' => 'lo0',
	    'fullname' => 'lo0',
	    'address' => '127.0.0.1',
	    'netmask' => '255.0.0.0',
	    'up' => 1,
	    'edit' => 0 });
open(MASK, "/etc/netmasks");
while(<MASK>) {
	s/\r|\n//g;
	s/#.*$//g;
	if (/([0-9\.]+)\s+([0-9\.]+)/) {
		$mask{$1} = $2;
		}
	}
close(MASK);
opendir(ETC, "/etc");
while($f = readdir(ETC)) {
	if ($f =~ /^hostname.(\S+):(\d+)$/ || $f =~ /^hostname.(\S+)/) {
		local %ifc;
		$ifc{'fullname'} = $ifc{'name'} = $1;
		$ifc{'virtual'} = $2 if (defined($2));
		$ifc{'fullname'} .= ":$2" if (defined($2));
		$ifc{'index'} = scalar(@rv);
		$ifc{'edit'}++;
		open(FILE, "/etc/$f");
		chop($ifc{'address'} = <FILE>);
		close(FILE);
		if ($ifc{'address'}) {
			&to_ipaddress($ifc{'address'})
				=~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/;
			if ($mask{"$1.$2.$3.0"})
				{ $ifc{'netmask'} = $mask{"$1.$2.$3.0"}; }
			elsif ($mask{"$1.$2.0.0"})
				{ $ifc{'netmask'} = $mask{"$1.$2.0.0"}; }
			elsif ($mask{"$1.0.0.0"})
				{ $ifc{'netmask'} = $mask{"$1.0.0.0"}; }
			else
				{ $ifc{'netmask'} = "255.255.255.0"; }
			local ($a1, $a2, $a3, $a4) = ($1, $2, $3, $4);
			$ifc{'netmask'} =~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/;
			$ifc{'broadcast'} = sprintf "%d.%d.%d.%d",
						($a1 | ~int($1))&0xff,
						($a2 | ~int($2))&0xff,
						($a3 | ~int($3))&0xff,
						($a4 | ~int($4))&0xff;
			}
		else {
			$ifc{'dhcp'}++;
			}
		$ifc{'up'}++;
		push(@rv, \%ifc);
		}
	}
closedir(ETC);
return @rv;
}

# save_interface(&details)
# Create or update a boot-time interface
sub save_interface
{
local $name = $_[0]->{'virtual'} ne "" ? $_[0]->{'name'}.":".$_[0]->{'virtual'}
				       : $_[0]->{'name'};
&lock_file("/etc/hostname.$name");
open(IFACE, ">/etc/hostname.$name");
if (!$_[0]->{'dhcp'}) {
	print IFACE $_[0]->{'address'},"\n";
	}
close(IFACE);
&unlock_file("/etc/hostname.$name");
}

# delete_interface(&details)
# Delete a boot-time interface
sub delete_interface
{
local $name = $_[0]->{'virtual'} ne "" ? $_[0]->{'name'}.":".$_[0]->{'virtual'}
				       : $_[0]->{'name'};
&lock_file("/etc/hostname.$name");
unlink("/etc/hostname.$name");
&unlock_file("/etc/hostname.$name");
}

# iface_type(name)
# Returns a human-readable interface type name
sub iface_type
{
return "Fast Ethernet" if ($_[0] =~ /^hme/);
return "Loopback" if ($_[0] =~ /^lo/);
return "Token Ring" if ($_[0] =~ /^tr/);
return "PPP" if ($_[0] =~ /^ipdptp/ || $_[0] =~ /^ppp/);
return "Ethernet";
}

# iface_hardware(name)
# Does some interface have an editable hardware address
sub iface_hardware
{
return $_[0] !~ /^(lo|ipdptp|ppp)/;
}

# can_edit(what)
# Can some boot-time interface parameter be edited?
sub can_edit
{
return $_[0] eq "dhcp";
}

# valid_boot_address(address)
# Is some address valid for a bootup interface
sub valid_boot_address
{
return 1 if (&check_ipaddress($_[0]));
return gethostbyname($_[0]) ? 1 : 0;
}

# get_dns_config()
# Returns a hashtable containing keys nameserver, domain, search & order
sub get_dns_config
{
local $dns;
open(RESOLV, "/etc/resolv.conf");
while(<RESOLV>) {
	s/\r|\n//g;
	s/#.*$//g;
	if (/nameserver\s+(.*)/) {
		push(@{$dns->{'nameserver'}}, split(/\s+/, $1));
		}
	elsif (/domain\s+(\S+)/) {
		$dns->{'domain'} = [ $1 ];
		}
	elsif (/search\s+(.*)/) {
		$dns->{'domain'} = [ split(/\s+/, $1) ];
		}
	}
close(RESOLV);
open(SWITCH, "/etc/nsswitch.conf");
while(<SWITCH>) {
	s/\r|\n//g;
	if (/hosts:\s+(.*)/) {
		$dns->{'order'} = $1;
		}
	}
close(SWITCH);
return $dns;
}

# save_dns_config(&config)
# Writes out the resolv.conf and nsswitch.conf files
sub save_dns_config
{
&lock_file("/etc/resolv.conf");
open(RESOLV, "/etc/resolv.conf");
local @resolv = <RESOLV>;
close(RESOLV);
open(RESOLV, ">/etc/resolv.conf");
foreach (@{$_[0]->{'nameserver'}}) {
	print RESOLV "nameserver $_\n";
	}
if ($_[0]->{'domain'}) {
	if ($_[0]->{'domain'}->[1]) {
		print RESOLV "search ",join(" ", @{$_[0]->{'domain'}}),"\n";
		}
	else {
		print RESOLV "domain $_[0]->{'domain'}->[0]\n";
		}
	}
foreach (@resolv) {
	print RESOLV $_ if (!/^\s*(nameserver|domain|search)\s+/);
	}
close(RESOLV);
&unlock_file("/etc/resolv.conf");

&lock_file("/etc/nsswitch.conf");
open(SWITCH, "/etc/nsswitch.conf");
local @switch = <SWITCH>;
close(SWITCH);
open(SWITCH, ">/etc/nsswitch.conf");
foreach (@switch) {
	if (/hosts:\s+/) {
		print SWITCH "hosts:\t$_[0]->{'order'}\n";
		}
	else { print SWITCH $_; }
	}
close(SWITCH);
&unlock_file("/etc/nsswitch.conf");
}

$max_dns_servers = 3;

# order_input(&dns)
# Returns HTML for selecting the name resolution order
sub order_input
{
if ($_[0]->{'order'} =~ /\[/) {
	# Using a complex resolve list
	return "<input name=order size=45 value=\"$_[0]->{'order'}\">\n";
	}
else {
	# Can select by menus
	local @o = split(/\s+/, $_[0]->{'order'});
	local ($rv, $i, $j);
	local @srcs = ( "", "files", "dns", "nis", "nisplus" );
	local @srcn = ( "", "Hosts", "DNS", "NIS", "NIS+" );
	for($i=1; $i<@srcs; $i++) {
		local $ii = $i-1;
		$rv .= "<select name=order_$ii>\n";
		for($j=0; $j<@srcs; $j++) {
			$rv .= sprintf "<option value=\"%s\" %s>%s\n",
					$srcs[$j],
					$o[$ii] eq $srcs[$j] ? "selected" : "",
				        $srcn[$j] ? $srcn[$j] : "&nbsp;";
			}
		$rv .= "</select>\n";
		}
	return $rv;
	}
}

# parse_order(&dns)
# Parses the form created by order_input()
sub parse_order
{
if (defined($in{'order'})) {
	$in{'order'} =~ /\S/ || &error($text{'dns_eorder'});
	$_[0]->{'order'} = $in{'order'};
	}
else {
	local($i, @order);
	for($i=0; defined($in{"order_$i"}); $i++) {
		push(@order, $in{"order_$i"}) if ($in{"order_$i"});
		}
	$_[0]->{'order'} = join(" ", @order);
	}
}

# get_hostname()
sub get_hostname
{
return &get_system_hostname();
}

# save_hostname(name)
sub save_hostname
{
&system_logged("hostname $_[0] >/dev/null 2>&1");
}

# get_domainname()
sub get_domainname
{
local $d = `domainname`;
chop($d);
return $d;
}

# save_domainname(domain)
sub save_domainname
{
system("domainname \"$_[0]\" >/dev/null 2>&1");
if ($_[0]) {
	open(DOMAIN, ">/etc/defaultdomain");
	print DOMAIN $_[0],"\n";
	close(DOMAIN);
	}
else { unlink("/etc/defaultdomain"); }
}

sub routing_input
{
# show default router(s) input
local(@defrt);
open(DEFRT, "/etc/defaultrouter");
while(<DEFRT>) {
	s/#.*$//g;
	if (/(\S+)/) { push(@defrt, $1); }
	}
close(DEFRT);
print "<tr> <td valign=top><b>$text{'routes_defaults'}</b></td>\n";
print "<td><textarea name=defrt rows=3 cols=40>",
	join("\n", @defrt),"</textarea></td> </tr>\n";

# show router input
local $notrt = (-r "/etc/notrouter");
local $gatew = (-r "/etc/gateways");
print "<tr> <td><b>Act as router?</b></td> <td>\n";
printf "<input type=radio name=router value=0 %s> $text{'yes'}\n",
	$gatew && !$notrt ? "checked" : "";
printf "<input type=radio name=router value=1 %s> $text{'routes_possible'}\n",
	!$gatew && !$notrt ? "checked" : "";
printf "<input type=radio name=router value=2 %s> $text{'no'}\n",
	$notrt ? "checked" : "";
print "</td> </tr>\n";
}

sub parse_routing
{
local @defrt = split(/\s+/, $in{'defrt'});
foreach $d (@defrt) {
	gethostbyname($d) || &error(&text('routes_edefault', $d));
	}
&lock_file("/etc/defaultrouter");
if (@defrt) {
	open(DEFRT, ">/etc/defaultrouter");
	foreach $d (@defrt) { print DEFRT $d,"\n"; }
	close(DEFRT);
	}
else { unlink("/etc/defaultrouter"); }
&unlock_file("/etc/defaultrouter");

&lock_file("/etc/gateways");
&lock_file("/etc/notrouter");
if ($in{'router'} == 0) {
	&create_empty_file("/etc/gateways");
	unlink("/etc/notrouter");
	}
elsif ($in{'router'} == 2) {
	&create_empty_file("/etc/notrouter");
	unlink("/etc/gateways");
	}
else {
	unlink("/etc/gateways");
	unlink("/etc/notrouter");
	}
&unlock_file("/etc/gateways");
&unlock_file("/etc/notrouter");
}

# create_empty_file(filename)
sub create_empty_file
{
if (!-r $_[0]) {
	open(EMPTY,">$_[0]");
	close(EMPTY);
	}
}

1;

 07070100015e55000081a40000000000000002000000013ac038a100003ba7000000200000000000000000000000000000001c00000003reloc/net/suse-linux-lib.pl   # suse-linux-lib.pl
# Networking functions for SuSE linux

$rc_config = "/etc/rc.config";
$route_conf = "/etc/route.conf";

# active_interfaces()
# Returns a list of currently ifconfig'd interfaces
sub active_interfaces
{
local(@rv, @lines, $l);
open(IFC, "ifconfig -a |");
while(<IFC>) {
	s/\r|\n//g;
	if (/^\S+/) { push(@lines, $_); }
	else { $lines[$#lines] .= $_; }
	}
close(IFC);
foreach $l (@lines) {
	local %ifc;
	$l =~ /^([^:\s]+)/; $ifc{'name'} = $1;
	$l =~ /^(\S+)/; $ifc{'fullname'} = $1;
	if ($l =~ /^(\S+):(\d+)/) { $ifc{'virtual'} = $2; }
	if ($l =~ /inet addr:(\S+)/) { $ifc{'address'} = $1; }
	else { next; }
	if ($l =~ /Mask:(\S+)/) { $ifc{'netmask'} = $1; }
	if ($l =~ /Bcast:(\S+)/) { $ifc{'broadcast'} = $1; }
	if ($l =~ /HWaddr (\S+)/) { $ifc{'ether'} = $1; }
	if ($l =~ /MTU:(\d+)/) { $ifc{'mtu'} = $1; }
	$ifc{'up'}++ if ($l =~ /\sUP\s/);
	$ifc{'edit'} = ($ifc{'name'} !~ /^ppp/);
	if ($ifc{'name'} !~ /^dummy/) {
		$ifc{'index'} = scalar(@rv);
		push(@rv, \%ifc);
		}
	}
return @rv;
}

# activate_interface(&details)
# Create or modify an interface
sub activate_interface
{
local $a = $_[0];
local $cmd = "ifconfig $a->{'name'}";
if ($a->{'virtual'} ne "") { $cmd .= ":$a->{'virtual'}"; }
$cmd .= " $a->{'address'}";
if ($a->{'netmask'}) { $cmd .= " netmask $a->{'netmask'}"; }
if ($a->{'broadcast'}) { $cmd .= " broadcast $a->{'broadcast'}"; }
if ($a->{'mtu'}) { $cmd .= " mtu $a->{'mtu'}"; }
if ($a->{'up'}) { $cmd .= " up"; }
else { $cmd .= " down"; }
local $out = &backquote_logged("$cmd 2>&1");
if ($?) { &error($out); }
if ($a->{'ether'}) {
	$out = &backquote_logged(
		"ifconfig $a->{'name'} hw ether $a->{'ether'} 2>&1");
	if ($?) { &error($out); }
	}
}

# deactivate_interface(&details)
# Shutdown some active interface
sub deactivate_interface
{
local $cmd = "ifconfig $a->{'name'}";
if ($a->{'virtual'} ne "") { $cmd .= ":$a->{'virtual'}"; }
$cmd .= " down";
local $out = &backquote_logged("$cmd 2>&1");
if ($?) { &error($out); }
}

# boot_interfaces()
# Returns a list of interfaces brought up at boot time
sub boot_interfaces
{
local $rc = &parse_rc_config();
local @rv;
push(@rv, { 'fullname' => 'lo',
	    'name' => 'lo',
	    'up' => $rc->{'START_LOOPBACK'}->{'value'} =~ /yes/,
	    'address' => '127.0.0.1',
	    'netmask' => '255.0.0.0',
	    'broadcast' => '127.255.255.255',
	    'edit' => 0,
	    'index' => scalar(@rv) });
local @nc = split(/\s+/, $rc->{'NETCONFIG'}->{'value'});
foreach $nc (@nc) {
	local $ip = $rc->{"IPADDR$nc"}->{'value'};
	local $dev = $rc->{"NETDEV$nc"}->{'value'};
	local $conf = $rc->{"IFCONFIG$nc"}->{'value'};
	if ($dev) {
		local $b;
		$b->{'fullname'} = $dev;
		if ($b->{'fullname'} =~ /(\S+):(\d+)/) {
			$b->{'name'} = $1;
			$b->{'virtual'} = $2;
			}
		else { $b->{'name'} = $b->{'fullname'}; }
		if ($conf =~ /^([0-9\.]+)/) {
			$b->{'address'} = $1;
			if ($conf =~ /broadcast\s+(\S+)/) {
				$b->{'broadcast'} = $1;
				}
			if ($conf =~ /netmask\s+(\S+)/) {
				$b->{'netmask'} = $1;
				}
			if ($conf =~ /\s+up/ || $gconfig{'os_version'} >= 7.1) {
				$b->{'up'} = 1;
				}
			}
		elsif ($conf =~ /bootp/) {
			$b->{'bootp'} = 1;
			$b->{'netmask'} = 'Automatic';
			$b->{'broadcast'} = 'Automatic';
			$b->{'up'}++;
			}
		elsif ($conf =~ /dhcpclient/) {
			$b->{'dhcp'} = 1;
			$b->{'netmask'} = 'Automatic';
			$b->{'broadcast'} = 'Automatic';
			$b->{'up'}++;
			}
		$b->{'edit'} = 1;
		$b->{'index'} = scalar(@rv);
		$b->{'nc'} = $nc;
		push(@rv, $b);
		}
	}
return @rv;
}

# save_interface(&details)
# Create or update a boot-time interface
sub save_interface
{
# Find existing interface, if any
&lock_file($rc_config);
local $rc = &parse_rc_config();
local @boot = &boot_interfaces();
local ($o, $old, $found);
foreach $o (@boot) {
	if ($o->{'name'} eq $_[0]->{'name'} &&
	    $o->{'virtual'} eq $_[0]->{'virtual'}) {
		$found++; $old = $o;
		last;
		}
	}

# build interface detail strings
local $fullname = $_[0]->{'name'};
$fullname .= ":".$_[0]->{'virtual'} if (defined($_[0]->{'virtual'}));
local $ifconfig;
if ($_[0]->{'bootp'}) {
	$ifconfig = 'bootp';
	}
elsif ($_[0]->{'dhcp'}) {
	$ifconfig = 'dhcpclient';
	}
else {
	$ifconfig = $_[0]->{'address'};
	$ifconfig .= " broadcast $_[0]->{'broadcast'}"
		if ($_[0]->{'broadcast'});
	$ifconfig .= " netmask $_[0]->{'netmask'}"
		if ($_[0]->{'netmask'});
	$ifconfig .= " up" if ($_[0]->{'up'});
	}

if ($found) {
	# Updating an existing interface
	local $nnc = $old->{'nc'};
	&save_rc_config($rc, "IPADDR$nnc", $_[0]->{'address'});
	&save_rc_config($rc, "NETDEV$nnc", $fullname);
	&save_rc_config($rc, "IFCONFIG$nnc", $ifconfig);
	}
else {
	# Adding a new interface
	local @nc = split(/\s+/, $rc->{'NETCONFIG'}->{'value'});
	local $nnc = $nc[@nc-1] =~ /_(\d+)/ ? "_".($1+1) : "_0";
	&save_rc_config($rc, "NETCONFIG", join(" ", @nc, $nnc));
	&save_rc_config($rc, "IPADDR$nnc", $_[0]->{'address'});
	&save_rc_config($rc, "NETDEV$nnc", $fullname);
	&save_rc_config($rc, "IFCONFIG$nnc", $ifconfig);
	}
&unlock_file($rc_config);
}

# delete_interface(&details)
# Delete a boot-time interface
sub delete_interface
{
&lock_file($rc_config);
local $rc = &parse_rc_config();
local @boot = &boot_interfaces();
local $old;
foreach $old (@boot) {
	if ($old->{'name'} eq $_[0]->{'name'} &&
	    $old->{'virtual'} eq $_[0]->{'virtual'}) {
		# found it .. remove
		local $nnc = $old->{'nc'};
		local @nc = split(/\s+/, $rc->{'NETCONFIG'}->{'value'});
		@nc = grep { $_ ne $nnc } @nc;
		&save_rc_config($rc, "NETCONFIG", join(" ", @nc));
		&save_rc_config($rc, "IPADDR$nnc", "");
		&save_rc_config($rc, "NETDEV$nnc", "");
		&save_rc_config($rc, "IFCONFIG$nnc", "");
		}
	}
&unlock_file($rc_config);
}

# iface_type(name)
# Returns a human-readable interface type name
sub iface_type
{
return "PPP" if ($_[0] =~ /^ppp/);
return "SLIP" if ($_[0] =~ /^sl/);
return "PLIP" if ($_[0] =~ /^plip/);
return "Ethernet" if ($_[0] =~ /^eth/);
return "Arcnet" if ($_[0] =~ /^arc/);
return "Token Ring" if ($_[0] =~ /^tr/);
return "Pocket/ATP" if ($_[0] =~ /^atp/);
return "Loopback" if ($_[0] =~ /^lo/);
return $text{'ifcs_unknown'};
}

# iface_hardware(name)
# Does some interface have an editable hardware address
sub iface_hardware
{
return $_[0] =~ /^eth/;
}

# can_edit(what, &details)
# Can some boot-time interface parameter be edited?
sub can_edit
{
if ($gconfig{'os_version'} >= 7.1) {
	if ($_[1] && ($_[1]->{'bootp'} || $_[1]->{'dhcp'})) {
		return $_[0] ne "mtu" && $_[0] ne "netmask" &&
		       $_[0] ne "broadcast" && $_[0] ne "up";
		}
	return $_[0] ne "mtu" && $_[0] ne "up";
	}
else {
	if ($_[1] && $_[1]->{'bootp'}) {
		return $_[0] ne "mtu" && $_[0] ne "dhcp" &&
		       $_[0] ne "netmask" && $_[0] ne "broadcast" &&
		       $_[0] ne "up";
		}
	return $_[0] ne "mtu" && $_[0] ne "dhcp";
	}
}

# valid_boot_address(address)
# Is some address valid for a bootup interface
sub valid_boot_address
{
return &check_ipaddress($_[0]);
}

# get_dns_config()
# Returns a hashtable containing keys nameserver, domain, search & order
sub get_dns_config
{
local $dns;
local $rc = &parse_rc_config();
if ($rc->{'NAMESERVER'}) {
	# Use the settings from yast
	local @ns = split(/\s+/, $rc->{'NAMESERVER'}->{'value'});
	$dns->{'nameserver'} = [ grep { $_ ne "YAST_ASK" } @ns ];
	local $src = $rc->{'SEARCHLIST'};
	$dns->{'domain'} = [ split(/\s+/, $src->{'value'}) ] if ($src);
	}
else {
	# Read the resolv.conf file directly
	open(RESOLV, "/etc/resolv.conf");
	while(<RESOLV>) {
		s/\r|\n//g;
		s/#.*$//;
		if (/nameserver\s+(.*)/) {
			push(@{$dns->{'nameserver'}}, split(/\s+/, $1));
			}
		elsif (/domain\s+(\S+)/) {
			$dns->{'domain'} = [ $1 ];
			}
		elsif (/search\s+(.*)/) {
			$dns->{'domain'} = [ split(/\s+/, $1) ];
			}
		}
	close(RESOLV);
	}
open(SWITCH, "/etc/nsswitch.conf");
while(<SWITCH>) {
	s/\r|\n//g;
	if (/^\s*hosts:\s+(.*)/) {
		$dns->{'order'} = $1;
		}
	}
close(SWITCH);
return $dns;
}

# save_dns_config(&config)
# Writes out the resolv.conf and nsswitch.conf files
sub save_dns_config
{
&lock_file($rc_config);
local $rc = &parse_rc_config();
if ($rc->{'NAMESERVER'}) {
	&save_rc_config($rc, "NAMESERVER", join(" ", @{$_[0]->{'nameserver'}}));
	&save_rc_config($rc, "SEARCHLIST", join(" ", @{$_[0]->{'domain'}}));
	}
else {
	&lock_file("/etc/resolv.conf");
	open(RESOLV, "/etc/resolv.conf");
	local @resolv = <RESOLV>;
	close(RESOLV);
	open(RESOLV, ">/etc/resolv.conf");
	foreach (@{$_[0]->{'nameserver'}}) {
		print RESOLV "nameserver $_\n";
		}
	if ($_[0]->{'domain'}) {
		if ($_[0]->{'domain'}->[1]) {
			print RESOLV "search ",
				     join(" ", @{$_[0]->{'domain'}}),"\n";
			}
		else {
			print RESOLV "domain $_[0]->{'domain'}->[0]\n";
			}
		}
	foreach (@resolv) {
		print RESOLV $_ if (!/^\s*(nameserver|domain|search)\s+/);
		}
	close(RESOLV);
	&unlock_file("/etc/resolv.conf");
	}

&lock_file("/etc/nsswitch.conf");
open(SWITCH, "/etc/nsswitch.conf");
local @switch = <SWITCH>;
close(SWITCH);
open(SWITCH, ">/etc/nsswitch.conf");
foreach (@switch) {
	if (/^\s*hosts:\s+/) {
		print SWITCH "hosts:\t$_[0]->{'order'}\n";
		}
	else { print SWITCH $_; }
	}
close(SWITCH);
&unlock_file("/etc/nsswitch.conf");
if ($rc->{'USE_NIS_FOR_RESOLVING'}) {
	if ($_[0]->{'order'} =~ /nis/) {
		&save_rc_config($rc, "USE_NIS_FOR_RESOLVING", "yes");
		}
	else {
		&save_rc_config($rc, "USE_NIS_FOR_RESOLVING", "no");
		}
	}
&unlock_file($rc_config);
}

$max_dns_servers = 3;

# order_input(&dns)
# Returns HTML for selecting the name resolution order
sub order_input
{
if ($_[0]->{'order'} =~ /\[/) {
	# Using a complex resolve list
	return "<input name=order size=45 value=\"$_[0]->{'order'}\">\n";
	}
else {
	# Can select by menus
	local @o = split(/\s+/, $_[0]->{'order'});
	@o = map { s/nis\+/nisplus/; s/yp/nis/; $_; } @o;
	local ($rv, $i, $j);
	local @srcs = ( "", "files", "dns", "nis", "nisplus", "db" );
	local @srcn = ( "", "Hosts", "DNS", "NIS", "NIS+", "DB" );
	for($i=1; $i<@srcs; $i++) {
		local $ii = $i-1;
		$rv .= "<select name=order_$ii>\n";
		for($j=0; $j<@srcs; $j++) {
			$rv .= sprintf "<option value=\"%s\" %s>%s\n",
					$srcs[$j],
					$o[$ii] eq $srcs[$j] ? "selected" : "",
				        $srcn[$j] ? $srcn[$j] : "&nbsp;";
			}
		$rv .= "</select>\n";
		}
	return $rv;
	}
}

# parse_order(&dns)
# Parses the form created by order_input()
sub parse_order
{
if (defined($in{'order'})) {
	$in{'order'} =~ /\S/ || &error("Missing resolution order");
	$_[0]->{'order'} = $in{'order'};
	}
else {
	local($i, @order);
	for($i=0; defined($in{"order_$i"}); $i++) {
		push(@order, $in{"order_$i"}) if ($in{"order_$i"});
		}
	$_[0]->{'order'} = join(" ", @order);
	}
}

# get_hostname()
sub get_hostname
{
local $rc = &parse_rc_config();
return $rc->{'FQHOSTNAME'}->{'value'};
}

# save_hostname(name)
sub save_hostname
{
&system_logged("hostname $_[0] >/dev/null 2>&1");
&lock_file($rc_config);
local $rc = &parse_rc_config();
&save_rc_config($rc, "FQHOSTNAME", $_[0]);
&unlock_file($rc_config);
}

# get_domainname()
sub get_domainname
{
local $rc = &parse_rc_config();
return $rc->{'YP_DOMAINNAME'}->{'value'};
}

# save_domainname(domain)
sub save_domainname
{
local $rc = &parse_rc_config();
&save_rc_config($rc, "YP_DOMAINNAME", $_[0]);

# run SuSEconfig, as this function is called last
system("SuSEconfig -quick >/dev/null 2>&1");
}

sub routing_input
{
# read route.conf
local ($default, @sr, @lr);
open(ROUTE, $route_conf);
while(<ROUTE>) {
	s/\r|\n//g;
	s/#.*$//g;
	local @r = split(/\s+/, $_);
	if ($r[0] eq 'default' || $r[0] eq '0.0.0.0') { $default = $r[1]; }
	elsif (@r == 4) { push(@lr, \@r); }
	elsif (@r == 3) { push(@sr, \@r); }
	}
close(ROUTE);

# input for routing
local $rc = &parse_rc_config();
local $ipf = $rc->{'IP_FORWARD'}->{'value'};
print "<tr> <td><b>$text{'routes_forward'}</b></td> <td>\n";
printf "<input type=radio name=forward value=yes %s> $text{'yes'}\n",
	$ipf eq "yes" ? "checked" : "";
printf "<input type=radio name=forward value=no %s> $text{'no'}</td> </tr>\n",
	$ipf eq "yes" ? "" : "checked";

# input for default route
print "<tr> <td><b>$text{'routes_default'}</b></td> <td>\n";
printf "<input type=radio name=default_def value=1 %s> $text{'routes_none'}\n",
	$default ? "" : "checked";
printf "<input type=radio name=default_def value=0 %s>\n",
	$default ? "checked" : "";
printf "<input name=default size=15 value=\"%s\"></td> </tr>\n",
	$default;

# table for local routes
print "<tr> <td valign=top><b>$text{'routes_local'}</b></td>\n";
print "<td><table border>\n";
print "<tr $tb> <td><b>$text{'routes_ifc'}</b></td> ",
      "<td><b>$text{'routes_net'}</b></td> ",
      "<td><b>$text{'routes_mask'}</b></td> </tr>\n";
for($i=0; $i<=@lr; $i++) {
	local $lr = $lr[$i];
	print "<tr $cb>\n";
	print "<td><input name=lr_dev_$i size=6 value='$lr->[3]'></td>\n";
	print "<td><input name=lr_net_$i size=15 value='$lr->[0]'></td>\n";
	print "<td><input name=lr_mask_$i size=15 value='$lr->[2]'></td>\n";
	print "</tr>\n";
	}
print "</table></td> </tr>\n";

# table for static routes
print "<tr> <td valign=top><b>$text{'routes_static'}</b></td>\n";
print "<td><table border>\n";
print "<tr $tb> <td><b>$text{'routes_net'}</b></td> ",
      "<td><b>$text{'routes_gateway'}</b></td> ",
      "<td><b>$text{'routes_mask'}</b></td> </tr>\n";
for($i=0; $i<=@sr; $i++) {
	local $sr = $sr[$i];
	print "<tr $cb>\n";
	print "<td><input name=sr_net_$i size=15 value='$sr->[0]'></td>\n";
	print "<td><input name=sr_gw_$i size=15 value='$sr->[1]'></td>\n";
	print "<td><input name=sr_mask_$i size=15 value='$sr->[2]'></td>\n";
	print "</tr>\n";
	}
print "</table></td> </tr>\n";

}

sub parse_routing
{
&lock_file($rc_config);
local $rc = &parse_rc_config();
&save_rc_config($rc, IP_FORWARD, $in{'forward'});
&unlock_file($rc_config);
&lock_file($route_conf);
local $route = "# Generated by Webmin\n";
for($i=0; defined($dev = $in{"lr_dev_$i"}); $i++) {
	$net = $in{"lr_net_$i"}; $mask = $in{"lr_mask_$i"};
	next if (!$dev && !$net && !$mask);
	gethostbyname($net) ||
		&error(&text('routes_enet', $net));
	&check_ipaddress($mask) ||
		&error(&text('routes_emask', $mask));
	$route .= "$net\t\t0.0.0.0\t\t$mask\t\t$dev\n";
	}
for($i=0; defined($gw = $in{"sr_gw_$i"}); $i++) {
	$net = $in{"sr_net_$i"}; $mask = $in{"sr_mask_$i"};
	next if (!$gw && !$net && !$mask);
	gethostbyname($gw) ||
		&error(&text('routes_egateway', $gw));
	gethostbyname($net) ||
		&error(&text('routes_enet', $net));
	&check_ipaddress($mask) ||
		&error(&text('routes_emask', $mask));
	$route .= "$net\t\t$gw\t\t$mask\n";
	}
if (!$in{'default_def'}) {
	gethostbyname($in{'default'}) ||
		&error(&text('routes_edefault', $in{'default'}));
	$route .= "default\t\t$in{'default'}\n";
	}
open(ROUTE, ">$route_conf");
print ROUTE $route;
close(ROUTE);
&unlock_file($route_conf);
}

# parse_rc_config()
sub parse_rc_config
{
local $rc;
local $lnum = 0;
open(CONF, $rc_config);
while(<CONF>) {
	s/\r|\n//g;
	s/#.*$//g;
	if (/([^=\s]+)="(.*)"/) {
		$rc->{$1} = { 'value' => $2,
			      'line' => $lnum };
		}
	elsif (/([^=\s]+)=(\S+)/) {
		$rc->{$1} = { 'value' => $2,
			      'line' => $lnum };
		}
	$lnum++;
	}
close(CONF);
return $rc;
}

# save_rc_config(&config, directive, value)
sub save_rc_config
{
local $old = $_[0]->{$_[1]};
local $line = "$_[1]=\"$_[2]\"\n";
if ($old) {
	&replace_file_line($rc_config, $old->{'line'}, $line);
	}
else {
	open(RC, ">>$rc_config");
	print RC $line;
	close(RC);
	}
}

1;

 07070100015e56000081a40000000000000002000000013ac038a1000033a1000000200000000000000000000000000000001d00000003reloc/net/turbo-linux-lib.pl  # redhat-linux-lib.pl
# Networking functions for redhat linux

$net_scripts_dir = "/etc/sysconfig/network-scripts";
$network_config = "/etc/sysconfig/network";
$static_route_config = "/etc/sysconfig/static-routes";

# active_interfaces()
# Returns a list of currently ifconfig'd interfaces
sub active_interfaces
{
local(@rv, @lines, $l);
open(IFC, "ifconfig -a |");
while(<IFC>) {
	s/\r|\n//g;
	if (/^\S+/) { push(@lines, $_); }
	else { $lines[$#lines] .= $_; }
	}
close(IFC);
foreach $l (@lines) {
	local %ifc;
	$l =~ /^([^:\s]+)/; $ifc{'name'} = $1;
	$l =~ /^(\S+)/; $ifc{'fullname'} = $1;
	if ($l =~ /^(\S+):(\d+)/) { $ifc{'virtual'} = $2; }
	if ($l =~ /inet addr:(\S+)/) { $ifc{'address'} = $1; }
	elsif (!$_[0]) { next; }
	if ($l =~ /Mask:(\S+)/) { $ifc{'netmask'} = $1; }
	if ($l =~ /Bcast:(\S+)/) { $ifc{'broadcast'} = $1; }
	if ($l =~ /HWaddr (\S+)/) { $ifc{'ether'} = $1; }
	if ($l =~ /MTU:(\d+)/) { $ifc{'mtu'} = $1; }
	$ifc{'up'}++ if ($l =~ /\sUP\s/);
	$ifc{'edit'} = ($ifc{'name'} !~ /^ppp/);
	$ifc{'index'} = scalar(@rv);
	push(@rv, \%ifc);
	}
return @rv;
}

# activate_interface(&details)
# Create or modify an interface
sub activate_interface
{
local $a = $_[0];
local $cmd = "ifconfig $a->{'name'}";
if ($a->{'virtual'} ne "") { $cmd .= ":$a->{'virtual'}"; }
$cmd .= " $a->{'address'}";
if ($a->{'netmask'}) { $cmd .= " netmask $a->{'netmask'}"; }
if ($a->{'broadcast'}) { $cmd .= " broadcast $a->{'broadcast'}"; }
if ($a->{'mtu'}) { $cmd .= " mtu $a->{'mtu'}"; }
if ($a->{'up'}) { $cmd .= " up"; }
else { $cmd .= " down"; }
local $out = &backquote_logged("$cmd 2>&1");
if ($?) { &error($out); }
if ($a->{'ether'}) {
	$out = &backquote_logged(
		"ifconfig $a->{'name'} hw ether $a->{'ether'} 2>&1");
	if ($?) { &error($out); }
	}
}

# deactivate_interface(&details)
# Shutdown some active interface
sub deactivate_interface
{
local $name = $_[0]->{'name'}.
	      ($_[0]->{'virtual'} ne "" ? ":$_[0]->{'virtual'}" : "");
if ($_[0]->{'virtual'} ne "") {
	# Shutdown virtual interface by setting address to 0
	local $out = &backquote_logged("ifconfig $name 0 2>&1");
	if ($?) { &error($out); }
	}
local ($still) = grep { $_->{'fullname'} eq $name } &active_interfaces();
if ($still) {
	# Old version of ifconfig or non-virtual interface.. down it
	local $out = &backquote_logged("ifconfig $name down 2>&1");
	if ($?) { &error($out); }
	}
}

# boot_interfaces()
# Returns a list of interfaces brought up at boot time
sub boot_interfaces
{
local(@rv, $f);
opendir(CONF, $net_scripts_dir);
while($f = readdir(CONF)) {
	next if ($f !~ /^ifcfg-[a-z0-9:]+$/);
	local (%conf, $b);
	&read_env_file("$net_scripts_dir/$f", \%conf);
	$b->{'fullname'} = $conf{'DEVICE'};
	if ($b->{'fullname'} =~ /(\S+):(\d+)/) {
		$b->{'name'} = $1;
		$b->{'virtual'} = $2;
		}
	else { $b->{'name'} = $b->{'fullname'}; }
	$b->{'up'} = ($conf{'ONBOOT'} eq 'yes');
	$b->{'address'} = $conf{'IPADDR'};
	$b->{'netmask'} = $conf{'NETMASK'};
	$b->{'broadcast'} = $conf{'BROADCAST'};
	$b->{'dhcp'} = ($conf{'BOOTPROTO'} eq 'dhcp');
	$b->{'bootp'} = ($conf{'BOOTPROTO'} eq 'bootp');
	$b->{'edit'} = ($b->{'name'} !~ /^ppp|irlan/);
	$b->{'index'} = scalar(@rv);
	push(@rv, $b);
	}
closedir(CONF);
return @rv;
}

# save_interface(&details)
# Create or update a boot-time interface
sub save_interface
{
local(%conf);
local $name = $_[0]->{'virtual'} ne "" ? $_[0]->{'name'}.":".$_[0]->{'virtual'}
				       : $_[0]->{'name'};
&lock_file("$net_scripts_dir/ifcfg-$name");
&read_env_file("$net_scripts_dir/ifcfg-$name", \%conf);
$conf{'DEVICE'} = $name;
$conf{'IPADDR'} = $_[0]->{'address'};
local($ip1, $ip2, $ip3, $ip4) = split(/\./, $_[0]->{'address'});
$conf{'NETMASK'} = $_[0]->{'netmask'};
local($nm1, $nm2, $nm3, $nm4) = split(/\./, $_[0]->{'netmask'});
if ($_[0]->{'address'} && $_[0]->{'netmask'}) {
	$conf{'NETWORK'} = sprintf "%d.%d.%d.%d",
				($ip1 & int($nm1))&0xff,
				($ip2 & int($nm2))&0xff,
				($ip3 & int($nm3))&0xff,
				($ip4 & int($nm4))&0xff;
	}
else {
	$conf{'NETWORK'} = '';
	}
$conf{'BROADCAST'} = $_[0]->{'broadcast'};
$conf{'ONBOOT'} = $_[0]->{'up'} ? "yes" : "no";
$conf{'BOOTPROTO'} = $_[0]->{'bootp'} ? "bootp" :
		     $_[0]->{'dhcp'} ? "dhcp" : "none";
&write_env_file("$net_scripts_dir/ifcfg-$name", \%conf);
&unlock_file("$net_scripts_dir/ifcfg-$name");
}

# delete_interface(&details)
# Delete a boot-time interface
sub delete_interface
{
local $name = $_[0]->{'virtual'} ne "" ? $_[0]->{'name'}.":".$_[0]->{'virtual'}
				       : $_[0]->{'name'};
&lock_file("$net_scripts_dir/ifcfg-$name");
unlink("$net_scripts_dir/ifcfg-$name");
&unlock_file("$net_scripts_dir/ifcfg-$name");
}

# iface_type(name)
# Returns a human-readable interface type name
sub iface_type
{
return "PPP" if ($_[0] =~ /^ppp/);
return "SLIP" if ($_[0] =~ /^sl/);
return "PLIP" if ($_[0] =~ /^plip/);
return "Ethernet" if ($_[0] =~ /^eth/);
return "Arcnet" if ($_[0] =~ /^arc/);
return "Token Ring" if ($_[0] =~ /^tr/);
return "Pocket/ATP" if ($_[0] =~ /^atp/);
return "Loopback" if ($_[0] =~ /^lo/);
return $text{'ifcs_unknown'};
}

# iface_hardware(name)
# Does some interface have an editable hardware address
sub iface_hardware
{
return $_[0] =~ /^eth/;
}

# can_edit(what)
# Can some boot-time interface parameter be edited?
sub can_edit
{
return $_[0] ne "mtu";
}

# valid_boot_address(address)
# Is some address valid for a bootup interface
sub valid_boot_address
{
return &check_ipaddress($_[0]);
}

# get_dns_config()
# Returns a hashtable containing keys nameserver, domain, search & order
sub get_dns_config
{
local $dns;
open(RESOLV, "/etc/resolv.conf");
while(<RESOLV>) {
	s/\r|\n//g;
	s/#.*$//;
	if (/nameserver\s+(.*)/) {
		push(@{$dns->{'nameserver'}}, split(/\s+/, $1));
		}
	elsif (/domain\s+(\S+)/) {
		$dns->{'domain'} = [ $1 ];
		}
	elsif (/search\s+(.*)/) {
		$dns->{'domain'} = [ split(/\s+/, $1) ];
		}
	}
close(RESOLV);
open(SWITCH, "/etc/nsswitch.conf");
while(<SWITCH>) {
	s/\r|\n//g;
	if (/^\s*hosts:\s+(.*)/) {
		$dns->{'order'} = $1;
		}
	}
close(SWITCH);
return $dns;
}

# save_dns_config(&config)
# Writes out the resolv.conf and nsswitch.conf files
sub save_dns_config
{
&lock_file("/etc/resolv.conf");
open(RESOLV, "/etc/resolv.conf");
local @resolv = <RESOLV>;
close(RESOLV);
open(RESOLV, ">/etc/resolv.conf");
foreach (@{$_[0]->{'nameserver'}}) {
	print RESOLV "nameserver $_\n";
	}
if ($_[0]->{'domain'}) {
	if ($_[0]->{'domain'}->[1]) {
		print RESOLV "search ",join(" ", @{$_[0]->{'domain'}}),"\n";
		}
	else {
		print RESOLV "domain $_[0]->{'domain'}->[0]\n";
		}
	}
foreach (@resolv) {
	print RESOLV $_ if (!/^\s*(nameserver|domain|search)\s+/);
	}
close(RESOLV);
&unlock_file("/etc/resolv.conf");

&lock_file("/etc/nsswitch.conf");
open(SWITCH, "/etc/nsswitch.conf");
local @switch = <SWITCH>;
close(SWITCH);
open(SWITCH, ">/etc/nsswitch.conf");
foreach (@switch) {
	if (/^\s*hosts:\s+/) {
		print SWITCH "hosts:\t$_[0]->{'order'}\n";
		}
	else { print SWITCH $_; }
	}
close(SWITCH);
&unlock_file("/etc/nsswitch.conf");
}

$max_dns_servers = 3;

# order_input(&dns)
# Returns HTML for selecting the name resolution order
sub order_input
{
if ($_[0]->{'order'} =~ /\[/) {
	# Using a complex resolve list
	return "<input name=order size=45 value=\"$_[0]->{'order'}\">\n";
	}
else {
	# Can select by menus
	local @o = split(/\s+/, $_[0]->{'order'});
	@o = map { s/nis\+/nisplus/; s/yp/nis/; $_; } @o;
	local ($rv, $i, $j);
	local @srcs = ( "", "files", "dns", "nis", "nisplus", "db" );
	local @srcn = ( "", "Hosts", "DNS", "NIS", "NIS+", "DB" );
	for($i=1; $i<@srcs; $i++) {
		local $ii = $i-1;
		$rv .= "<select name=order_$ii>\n";
		for($j=0; $j<@srcs; $j++) {
			$rv .= sprintf "<option value=\"%s\" %s>%s\n",
					$srcs[$j],
					$o[$ii] eq $srcs[$j] ? "selected" : "",
					$srcn[$j] ? $srcn[$j] : "&nbsp;";
			}
		$rv .= "</select>\n";
		}
	return $rv;
	}
}

# parse_order(&dns)
# Parses the form created by order_input()
sub parse_order
{
if (defined($in{'order'})) {
	$in{'order'} =~ /\S/ || &error($text{'dns_eorder'});
	$_[0]->{'order'} = $in{'order'};
	}
else {
	local($i, @order);
	for($i=0; defined($in{"order_$i"}); $i++) {
		push(@order, $in{"order_$i"}) if ($in{"order_$i"});
		}
	$_[0]->{'order'} = join(" ", @order);
	}
}

# get_hostname()
sub get_hostname
{
return &get_system_hostname();
}

# save_hostname(name)
sub save_hostname
{
local %conf;
&system_logged("hostname $_[0] >/dev/null 2>&1");
&lock_file("/etc/HOSTNAME");
open(HOST, ">/etc/HOSTNAME");
print HOST $_[0],"\n";
close(HOST);
&unlock_file("/etc/HOSTNAME");
&lock_file($network_config);
&read_env_file($network_config, \%conf);
$conf{'HOSTNAME'} = $_[0];
&write_env_file($network_config, \%conf);
&unlock_file($network_config);
}

# get_domainname()
sub get_domainname
{
local $d = `domainname`;
chop($d);
return $d eq "(none)" ? "" : $d;
}

# save_domainname(domain)
sub save_domainname
{
local %conf;
system("domainname \"$_[0]\" >/dev/null 2>&1");
&read_env_file($network_config, \%conf);
if ($_[0]) {
	$conf{'NISDOMAIN'} = $_[0];
	}
else {
	delete($conf{'NISDOMAIN'});
	}
&write_env_file($network_config, \%conf);
}

sub routing_input
{
# show default router and device
local (%conf, @st, @hr);
&read_env_file($network_config, \%conf);
print "<tr> <td><b>$text{'routes_default'}</b></td> <td>\n";
printf "<input type=radio name=gateway_def value=1 %s> $text{'routes_none'}\n",
	$conf{'GATEWAY'} ? "" : "checked";
printf "<input type=radio name=gateway_def value=0 %s>\n",
	$conf{'GATEWAY'} ? "checked" : "";
printf "<input name=gateway size=15 value=\"%s\"></td> </tr>\n",
	$conf{'GATEWAY'};

print "<tr> <td><b>$text{'routes_device2'}</b></td> <td>\n";
printf "<input type=radio name=gatewaydev_def value=1 %s> $text{'routes_none'}\n",
	$conf{'GATEWAYDEV'} ? "" : "checked";
printf "<input type=radio name=gatewaydev_def value=0 %s>\n",
	$conf{'GATEWAYDEV'} ? "checked" : "";
printf "<input name=gatewaydev size=6 value=\"%s\"></td> </tr>\n",
	$conf{'GATEWAYDEV'};

# show routing
print "<tr> <td><b>$text{'routes_forward'}</b></td> <td>\n";
printf "<input type=radio name=forward value=1 %s> $text{'yes'}\n",
	$conf{'FORWARD_IPV4'} eq "yes" ? "checked" : "";
printf "<input type=radio name=forward value=0 %s> $text{'no'}</td> </tr>\n",
	$conf{'FORWARD_IPV4'} eq "yes" ? "" : "checked";

# get static routes
open(STATIC, $static_route_config);
while(<STATIC>) {
	if (/(\S+)\s+net\s+(\S+)\s+netmask\s+(\S+)\s+gw\s+(\S+)/) {
		push(@st, [ $1, $2, $3, $4 ]);
		}
	elsif (/(\S+)\s+host\s+(\S+)/) {
		push(@hr, [ $1, $2 ]);
		}
	}
close(STATIC);

# show static network routes
print "<tr> <td valign=top><b>$text{'routes_static'}</b></td>\n";
print "<td><table border>\n";
print "<tr $tb> <td><b>$text{'routes_ifc'}</b></td> ",
      "<td><b>$text{'routes_net'}</b></td> ",
      "<td><b>$text{'routes_mask'}</b></td> ",
      "<td><b>$text{'routes_gateway'}</b></td> </tr>\n";
for($i=0; $i<=@st; $i++) {
	local $st = $st[$i];
	print "<tr $cb>\n";
	print "<td><input name=dev_$i size=6 value='$st->[0]'></td>\n";
	print "<td><input name=net_$i size=15 value='$st->[1]'></td>\n";
	print "<td><input name=netmask_$i size=15 value='$st->[2]'></td>\n";
	print "<td><input name=gw_$i size=15 value='$st->[3]'></td>\n";
	print "</tr>\n";
	}
print "</table></td> </tr>\n";

# Show static host routes
print "<tr> <td valign=top><b>$text{'routes_local'}</b></td>\n";
print "<td><table border>\n";
print "<tr $tb> <td><b>$text{'routes_ifc'}</b></td> ",
      "<td><b>$text{'routes_net'}</b></td> </tr>\n";
for($i=0; $i<=@hr; $i++) {
	local $st = $hr[$i];
	print "<tr $cb>\n";
	print "<td><input name=ldev_$i size=6 value='$st->[0]'></td>\n";
	print "<td><input name=lnet_$i size=15 value='$st->[1]'></td>\n";
	print "</tr>\n";
	}
print "</table></td> </tr>\n";
}

sub parse_routing
{
local (%conf, @st);
&lock_file($network_config);
&read_env_file($network_config, \%conf);
if ($in{'gateway_def'}) { $conf{'GATEWAY'} = ''; }
elsif (!gethostbyname($in{'gateway'})) {
	&error(&text('routes_edefault', $in{'gateway'}));
	}
else { $conf{'GATEWAY'} = $in{'gateway'}; }

if ($in{'gatewaydev_def'}) { $conf{'GATEWAYDEV'} = ''; }
elsif ($in{'gatewaydev'} !~ /^\S+$/) {
	&error(&text('routes_edevice', $in{'gatewaydev'}));
	}
else { $conf{'GATEWAYDEV'} = $in{'gatewaydev'}; }

if ($in{'forward'}) { $conf{'FORWARD_IPV4'} = 'yes'; }
else { $conf{'FORWARD_IPV4'} = 'no'; }

&lock_file($static_route_config);
for($i=0; defined($dev = $in{"dev_$i"}); $i++) {
	$net = $in{"net_$i"}; $netmask = $in{"netmask_$i"}; $gw = $in{"gw_$i"};
	next if (!$dev && !$net && !$netmask && !$gw);
	$dev =~ /^\S+$/ || &error(&text('routes_edevice', $dev));
	gethostbyname($net) || &error(&text('routes_enet', $net));
	&check_ipaddress($netmask) || &error(&text('routes_emask', $netmask));
	gethostbyname($gw) || &error(&text('routes_egateway', $gw));
	push(@st, "$dev net $net netmask $netmask gw $gw\n");
	}
for($i=0; defined($dev = $in{"ldev_$i"}); $i++) {
	$net = $in{"lnet_$i"};
	next if (!$dev && !$net);
	$dev =~ /^\S+$/ || &error(&text('routes_edevice', $dev));
	gethostbyname($net) || &error(&text('routes_enet', $net));
	push(@st, "$dev host $net\n");
	}
open(STATIC, ">$static_route_config");
print STATIC @st;
close(STATIC);
&unlock_file($static_route_config);
&write_env_file($network_config, \%conf);
&unlock_file($network_config);
}

1;

   07070100015e57000081a40000000000000002000000013ac038a1000027b6000000200000000000000000000000000000001a00000003reloc/net/unixware-lib.pl # unixware-lib.pl
# Networking functions for UnixWare

# active_interfaces()
# Returns a list of currently ifconfig'd interfaces
sub active_interfaces
{
local(@rv, @lines, $l);
open(IFC, "ifconfig -a |");
while(<IFC>) {
	s/\r|\n//g;
	if (/^\S+:/) { push(@lines, $_); }
	else { $lines[$#lines] .= $_; }
	}
close(IFC);
foreach $l (@lines) {
	local %ifc;
	$l =~ /^([^:\s]+):/; $ifc{'name'} = $1;
	$l =~ /^(\S+):/; $ifc{'fullname'} = $1;
	if ($l =~ /^(\S+):(\d+):\s/) { $ifc{'virtual'} = $2; }
	if ($l =~ /inet\s+(\S+)/) { $ifc{'address'} = $1; }
	if ($l =~ /netmask\s+(\S+)/) { $ifc{'netmask'} = &parse_hex($1); }
	if ($l =~ /broadcast\s+(\S+)/) { $ifc{'broadcast'} = $1; }
	if ($l =~ /ether\s+(\S+)/) { $ifc{'ether'} = $1; }
	if ($l =~ /mtu\s+(\S+)/) { $ifc{'mtu'} = $1; }
	$ifc{'up'}++ if ($l =~ /\<UP/);
	$ifc{'edit'} = ($ifc{'name'} !~ /ipdptp|ppp/);
	$ifc{'index'} = scalar(@rv);
	if ($ifc{'ether'}) {
		$ifc{'ether'} = join(":", map { sprintf "%2.2d", $_ }
					      split(/:/, $ifc{'ether'}));
		}
	push(@rv, \%ifc);
	}
return @rv;
}

# activate_interface(&details)
# Create or modify an interface
sub activate_interface
{
local $a = $_[0];
if ($a->{'virtual'} eq "") {
	local $out = `ifconfig $a->{'name'} plumb 2>&1`;
	if ($out) { &error("Interface '$a->{'name'}' does not exist"); }
	}
local $cmd = "ifconfig $a->{'name'}";
if ($a->{'virtual'} ne "") { $cmd .= ":$a->{'virtual'}"; }
$cmd .= " $a->{'address'}";
if ($a->{'netmask'}) { $cmd .= " netmask $a->{'netmask'}"; }
else { $cmd .= " netmask +"; }
if ($a->{'broadcast'}) { $cmd .= " broadcast $a->{'broadcast'}"; }
else { $cmd .= " broadcast +"; }
if ($a->{'mtu'}) { $cmd .= " mtu $a->{'mtu'}"; }
if ($a->{'up'}) { $cmd .= " up"; }
else { $cmd .= " down"; }
local $out = &backquote_logged("$cmd 2>&1");
if ($?) { &error($out); }
if ($a->{'ether'}) {
	$out = &backquote_logged(
		"ifconfig $a->{'name'} ether $a->{'ether'} 2>&1");
	if ($? && $out !~ /Device busy/) { &error($out); }
	}
}

# deactivate_interface(&details)
# Deactive an interface
sub deactivate_interface
{
local $cmd;
if ($a->{'virtual'} eq "") {
	$cmd = "ifconfig $a->{'name'} unplumb";
	}
else {
	$cmd = "ifconfig $a->{'name'}:$a->{'virtual'} 0.0.0.0 down";
	}
local $out = &backquote_logged("$cmd 2>&1");
if ($?) { &error($out); }
}

# boot_interfaces()
# Returns a list of interfaces brought up at boot time
sub boot_interfaces
{
local (@rv, $f, %mask);
push(@rv, { 'name' => 'lo0',
	    'fullname' => 'lo0',
	    'address' => '127.0.0.1',
	    'netmask' => '255.0.0.0',
	    'up' => 1,
	    'edit' => 0 });
open(MASK, "/etc/netmasks");
while(<MASK>) {
	s/\r|\n//g;
	s/#.*$//g;
	if (/([0-9\.]+)\s+([0-9\.]+)/) {
		$mask{$1} = $2;
		}
	}
close(MASK);
opendir(ETC, "/etc");
while($f = readdir(ETC)) {
	if ($f =~ /^hostname.(\S+):(\d+)$/ || $f =~ /^hostname.(\S+)/) {
		local %ifc;
		$ifc{'fullname'} = $ifc{'name'} = $1;
		$ifc{'virtual'} = $2 if (defined($2));
		$ifc{'fullname'} .= ":$2" if (defined($2));
		$ifc{'index'} = scalar(@rv);
		$ifc{'edit'}++;
		open(FILE, "/etc/$f");
		chop($ifc{'address'} = <FILE>);
		close(FILE);
		if ($ifc{'address'}) {
			&to_ipaddress($ifc{'address'})
				=~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/;
			if ($mask{"$1.$2.$3.0"})
				{ $ifc{'netmask'} = $mask{"$1.$2.$3.0"}; }
			elsif ($mask{"$1.$2.0.0"})
				{ $ifc{'netmask'} = $mask{"$1.$2.0.0"}; }
			elsif ($mask{"$1.0.0.0"})
				{ $ifc{'netmask'} = $mask{"$1.0.0.0"}; }
			else
				{ $ifc{'netmask'} = "255.255.255.0"; }
			local ($a1, $a2, $a3, $a4) = ($1, $2, $3, $4);
			$ifc{'netmask'} =~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/;
			$ifc{'broadcast'} = sprintf "%d.%d.%d.%d",
						($a1 | ~int($1))&0xff,
						($a2 | ~int($2))&0xff,
						($a3 | ~int($3))&0xff,
						($a4 | ~int($4))&0xff;
			}
		else {
			$ifc{'netmask'} = "Automatic";
			$ifc{'broadcast'} = "Automatic";
			$ifc{'dhcp'}++;
			}
		$ifc{'up'}++;
		push(@rv, \%ifc);
		}
	}
closedir(ETC);
return @rv;
}

# save_interface(&details)
# Create or update a boot-time interface
sub save_interface
{
local $name = $_[0]->{'virtual'} ne "" ? $_[0]->{'name'}.":".$_[0]->{'virtual'}
				       : $_[0]->{'name'};
&lock_file("/etc/hostname.$name");
open(IFACE, ">/etc/hostname.$name");
if (!$_[0]->{'dhcp'}) {
	print IFACE $_[0]->{'address'},"\n";
	}
close(IFACE);
&unlock_file("/etc/hostname.$name");
}

# delete_interface(&details)
# Delete a boot-time interface
sub delete_interface
{
local $name = $_[0]->{'virtual'} ne "" ? $_[0]->{'name'}.":".$_[0]->{'virtual'}
				       : $_[0]->{'name'};
&lock_file("/etc/hostname.$name");
unlink("/etc/hostname.$name");
&unlock_file("/etc/hostname.$name");
}

# iface_type(name)
# Returns a human-readable interface type name
sub iface_type
{
return "Fast Ethernet" if ($_[0] =~ /^hme/);
return "Loopback" if ($_[0] =~ /^lo/);
return "Token Ring" if ($_[0] =~ /^tr/);
return "PPP" if ($_[0] =~ /^ipdptp/ || $_[0] =~ /^ppp/);
return "Ethernet";
}

# iface_hardware(name)
# Does some interface have an editable hardware address
sub iface_hardware
{
return $_[0] !~ /^(lo|ipdptp|ppp)/;
}

# can_edit(what)
# Can some boot-time interface parameter be edited?
sub can_edit
{
return $_[0] eq "dhcp";
}

# valid_boot_address(address)
# Is some address valid for a bootup interface
sub valid_boot_address
{
return 1 if (&check_ipaddress($_[0]));
return gethostbyname($_[0]) ? 1 : 0;
}

# get_dns_config()
# Returns a hashtable containing keys nameserver, domain, search & order
sub get_dns_config
{
local $dns;
open(RESOLV, "/etc/resolv.conf");
while(<RESOLV>) {
	s/\r|\n//g;
	s/#.*$//g;
	if (/nameserver\s+(.*)/) {
		push(@{$dns->{'nameserver'}}, split(/\s+/, $1));
		}
	elsif (/domain\s+(\S+)/) {
		$dns->{'domain'} = [ $1 ];
		}
	elsif (/search\s+(.*)/) {
		$dns->{'domain'} = [ split(/\s+/, $1) ];
		}
	}
close(RESOLV);
open(SWITCH, "/etc/nsswitch.conf");
while(<SWITCH>) {
	s/\r|\n//g;
	if (/hosts:\s+(.*)/) {
		$dns->{'order'} = $1;
		}
	}
close(SWITCH);
return $dns;
}

# save_dns_config(&config)
# Writes out the resolv.conf and nsswitch.conf files
sub save_dns_config
{
&lock_file("/etc/resolv.conf");
open(RESOLV, "/etc/resolv.conf");
local @resolv = <RESOLV>;
close(RESOLV);
open(RESOLV, ">/etc/resolv.conf");
foreach (@{$_[0]->{'nameserver'}}) {
	print RESOLV "nameserver $_\n";
	}
if ($_[0]->{'domain'}) {
	if ($_[0]->{'domain'}->[1]) {
		print RESOLV "search ",join(" ", @{$_[0]->{'domain'}}),"\n";
		}
	else {
		print RESOLV "domain $_[0]->{'domain'}->[0]\n";
		}
	}
foreach (@resolv) {
	print RESOLV $_ if (!/^\s*(nameserver|domain|search)\s+/);
	}
close(RESOLV);
&unlock_file("/etc/resolv.conf");

&lock_file("/etc/nsswitch.conf");
open(SWITCH, "/etc/nsswitch.conf");
local @switch = <SWITCH>;
close(SWITCH);
open(SWITCH, ">/etc/nsswitch.conf");
foreach (@switch) {
	if (/hosts:\s+/) {
		print SWITCH "hosts:\t$_[0]->{'order'}\n";
		}
	else { print SWITCH $_; }
	}
close(SWITCH);
&unlock_file("/etc/nsswitch.conf");
}

$max_dns_servers = 3;

# order_input(&dns)
# Returns HTML for selecting the name resolution order
sub order_input
{
if ($_[0]->{'order'} =~ /\[/) {
	# Using a complex resolve list
	return "<input name=order size=45 value=\"$_[0]->{'order'}\">\n";
	}
else {
	# Can select by menus
	local @o = split(/\s+/, $_[0]->{'order'});
	local ($rv, $i, $j);
	local @srcs = ( "", "files", "dns", "nis", "nisplus" );
	local @srcn = ( "", "Hosts", "DNS", "NIS", "NIS+" );
	for($i=1; $i<@srcs; $i++) {
		local $ii = $i-1;
		$rv .= "<select name=order_$ii>\n";
		for($j=0; $j<@srcs; $j++) {
			$rv .= sprintf "<option value=\"%s\" %s>%s\n",
					$srcs[$j],
					$o[$ii] eq $srcs[$j] ? "selected" : "",
					$srcn[$j] ? $srcn[$j] : "&nbsp;";
			}
		$rv .= "</select>\n";
		}
	return $rv;
	}
}

# parse_order(&dns)
# Parses the form created by order_input()
sub parse_order
{
if (defined($in{'order'})) {
	$in{'order'} =~ /\S/ || &error($text{'dns_eorder'});
	$_[0]->{'order'} = $in{'order'};
	}
else {
	local($i, @order);
	for($i=0; defined($in{"order_$i"}); $i++) {
		push(@order, $in{"order_$i"}) if ($in{"order_$i"});
		}
	$_[0]->{'order'} = join(" ", @order);
	}
}

sub get_hostname
{
return &get_system_hostname();
}

# save_hostname(name)
sub save_hostname
{
&system_logged("hostname $_[0] >/dev/null 2>&1");
}

# get_domainname()
sub get_domainname
{
local $d = `domainname`;
chop($d);
return $d;
}

# save_domainname(domain)
sub save_domainname
{
system("domainname \"$_[0]\" >/dev/null 2>&1");
if ($_[0]) {
	open(DOMAIN, ">/etc/defaultdomain");
	print DOMAIN $_[0],"\n";
	close(DOMAIN);
	}
else { unlink("/etc/defaultdomain"); }
}

sub routing_input
{
# show default router(s) input
local(@defrt);
open(DEFRT, "/etc/defaultrouter");
while(<DEFRT>) {
	s/#.*$//g;
	if (/(\S+)/) { push(@defrt, $1); }
	}
close(DEFRT);
print "<tr> <td valign=top><b>$text{'routes_defaults'}</b></td>\n";
print "<td><textarea name=defrt rows=3 cols=40>",
	join("\n", @defrt),"</textarea></td> </tr>\n";

# show router input
local $notrt = (-r "/etc/notrouter");
local $gatew = (-r "/etc/gateways");
print "<tr> <td><b>Act as router?</b></td> <td>\n";
printf "<input type=radio name=router value=0 %s> $text{'yes'}\n",
	$gatew && !$notrt ? "checked" : "";
printf "<input type=radio name=router value=1 %s> $text{'routes_possible'}\n",
	!$gatew && !$notrt ? "checked" : "";
printf "<input type=radio name=router value=2 %s> $text{'no'}\n",
	$notrt ? "checked" : "";
print "</td> </tr>\n";
}

sub parse_routing
{
local @defrt = split(/\s+/, $in{'defrt'});
foreach $d (@defrt) {
	gethostbyname($d) || &error(&text('routes_edefault', $d));
	}
&lock_file("/etc/defaultrouter");
if (@defrt) {
	open(DEFRT, ">/etc/defaultrouter");
	foreach $d (@defrt) { print DEFRT $d,"\n"; }
	close(DEFRT);
	}
else { unlink("/etc/defaultrouter"); }
&unlock_file("/etc/defaultrouter");

&lock_file("/etc/gateways");
&lock_file("/etc/notrouter");
if ($in{'router'} == 0) {
	&create_empty_file("/etc/gateways");
	unlink("/etc/notrouter");
	}
elsif ($in{'router'} == 2) {
	&create_empty_file("/etc/notrouter");
	unlink("/etc/gateways");
	}
else {
	unlink("/etc/gateways");
	unlink("/etc/notrouter");
	}
&unlock_file("/etc/gateways");
&unlock_file("/etc/notrouter");
}

# create_empty_file(filename)
sub create_empty_file
{
if (!-r $_[0]) {
	open(EMPTY,">$_[0]");
	close(EMPTY);
	}
}

1;

  0707010000bb5d000081e40000000000000002000000013ac0388600000246000000200000000000000000000000000000001100000003reloc/newmods.pl  # newmods.pl
# Updates an acl file to include new modules. Called with the parameters
# <config directory> <module>+

for($i=1; $i<@ARGV; $i++) {
	if (!(-d "$ARGV[0]/$ARGV[$i]")) {
		push(@new, $ARGV[$i]);
		}
	}

if (@new) {
	open(ACL, "$ARGV[0]/webmin.acl");
	@acl = <ACL>;
	close(ACL);
	open(ACL, "> $ARGV[0]/webmin.acl");
	$a = shift(@acl);
	$a =~ /^(\S+):\s*(.*)$/;
	$name = $1; @list = split(/\s+/, $2);
	foreach $o (@list) { $old{$o}++; }
	foreach $n (@new) {
		push(@list, $n) if (!$old{$n});
		}
	print ACL "$name: ",join(" ",@list),"\n";
	print ACL @acl;
	close(ACL);
	}

  0707010001fd53000041ed0000000000000001000000043ac03c2b00000000000000200000000000000000000000000000000a00000003reloc/nis 0707010001fd54000081a40000000000000002000000013ac038be0000008b000000200000000000000000000000000000001e00000003reloc/nis/config-debian-linux nsswitch_conf=/etc/nsswitch.conf
sources=nisplus nis dns files db compat hesiod
client_conf=/etc/yp.conf
securenets=/etc/ypserv.securenets
 0707010001fd55000081a40000000000000002000000013ac038be00000088000000200000000000000000000000000000001c00000003reloc/nis/config-open-linux   client_conf=/etc/nis.conf
nsswitch_conf=/etc/nsswitch.conf
sources=nisplus nis dns files db compat hesiod
securenets=/var/yp/securenets
0707010001fd56000081a40000000000000002000000013ac038be00000087000000200000000000000000000000000000001e00000003reloc/nis/config-redhat-linux client_conf=/etc/yp.conf
nsswitch_conf=/etc/nsswitch.conf
sources=nisplus nis dns files db compat hesiod
securenets=/var/yp/securenets
 0707010001fd57000081a40000000000000002000000013ac038be0000008b000000200000000000000000000000000000001900000003reloc/nis/config-solaris  nsswitch_conf=/etc/nsswitch.conf
sources=files nis nisplus hosts=dns passwd=compat group=compat
client_conf=
securenets=/var/yp/securenets
 0707010001fd58000081a40000000000000002000000013ac038be000000ab000000200000000000000000000000000000001b00000003reloc/nis/config-solaris-8    nsswitch_conf=/etc/nsswitch.conf
sources=files nis nisplus hosts=dns passwd=compat group=compat ldap printers=user printers=xfn
client_conf=
securenets=/var/yp/securenets
 0707010001fd59000081a40000000000000002000000013ac038bf00000087000000200000000000000000000000000000001c00000003reloc/nis/config-suse-linux   client_conf=/etc/yp.conf
nsswitch_conf=/etc/nsswitch.conf
sources=nisplus nis dns files db compat hesiod
securenets=/var/yp/securenets
 0707010001fd5a000081a40000000000000002000000013ac038be0000009a000000200000000000000000000000000000001600000003reloc/nis/config.info client_conf=NIS client config file,0
nsswitch_conf=NIS client switch file,0
sources=Valid nsswitch.conf sources,0
securenets=Trusted networks file,3,None
  0707010001fd5b000081a40000000000000002000000013ac038be000000b5000000200000000000000000000000000000001900000003reloc/nis/config.info.pl  client_conf=Plik konfiguracyjny klienta NIS,0
nsswitch_conf=Plik &quot;nsswitch&quot; klienta NIS,0
sources=Prawid硂we 紃骴砤 nsswitch.conf,0
securenets=Plik zaufanych sieci,3,Brak
   0707010001fd5c000081a40000000000000002000000013ac038bf000000a3000000200000000000000000000000000000001900000003reloc/nis/config.info.sv  client_conf=Konfigurationsfil f鰎 NIS-klient,0
nsswitch_conf=Switchfil f鰎 NIS-klient,0
sources=K鋖lor f鰎 nsswitch.conf,0
securenets=P錶itlig n鋞verksfil,3,Ingen
 0707010001fd5d000081a40000000000000002000000013ac038be00003434000000200000000000000000000000000000001e00000003reloc/nis/debian-linux-lib.pl # debian-linux-lib.pl
# NIS functions for debian linux NIS client and server

$yp_makefile = "/var/yp/Makefile";
$ypserv_conf = "/etc/ypserv.conf";
$pid_file = "/var/run/ypserv.pid";

# get_nis_support()
# Returns 0 for no support, 1 for client only, or 2 for client & server
sub get_nis_support
{
if (!&has_command("ypbind")) {
	return 0;
	}
elsif (!&has_command("ypserv")) {
	return 1;
	}
else {
	return 2;
	}
}

# get_client_config()
# Returns a hash ref containg details of the client's NIS settings
sub get_client_config
{
local $nis = { 'broadcast' => 1 };
open(CONF, $config{'client_conf'});
while(<CONF>) {
	s/\r|\n//g;
	s/#.*$//g;
	if (/^\s*domain\s*(\S+)\s*server\s*(\S+)/i) {
		push(@{$nis->{'servers'}}, $2);
		$nis->{'broadcast'} = 0;
		}
	elsif (/^\s*ypserver\s*(\S+)/) {
		push(@{$nis->{'servers'}}, $1);
		$nis->{'broadcast'} = 0;
		}
	}
close(CONF);
open(DOMAIN, "/etc/defaultdomain");
chop($nis->{'domain'} = <DOMAIN>);
close(DOMAIN);
return $nis;
}

# save_client_config(&config)
# Saves and applies the NIS client configuration in the give hash.
# Returns an error message if any, or undef on success.
sub save_client_config
{
# Save the config file
open(CONF, ">$config{'client_conf'}");
open(DOMAIN, ">/etc/defaultdomain");
if ($_[0]->{'domain'}) {
	if (!$_[0]->{'broadcast'}) {
		local @s = @{$_[0]->{'servers'}};
		print CONF "domain $_[0]->{'domain'} server ",shift(@s),"\n";
		foreach $s (@s) {
			print CONF "ypserver $s\n";
			}
		}
	print DOMAIN $_[0]->{'domain'},"\n";
	}
close(CONF);
close(DOMAIN);
if ($_[0]->{'domain'}) {
	&enable_on_boot("nis");
	}

# Apply by running the init script
local $init = &init_script("nis");
&system_logged("$init stop >/dev/null 2>&1");
&system_logged("killall ypbind >/dev/null 2>&1");
&system_logged("$init start >/dev/null 2>&1");
if ($_[0]->{'domain'}) {
	$out = `ypwhich 2>&1`;
	if ($?) {
		system("killall ypbind >/dev/null 2>&1");
		return $text{'client_eypwhich'};
		}
	}
return undef;
}

@nis_files = ( "passwd", "shadow", "group", "gshadow", "adjunct",
	       "aliases", "ethers", "bootparams", "hosts", "networks",
	       "printcap", "protocols", "publickeys", "rpc", "services",
	       "netgroup", "netid", "auto_master", "auto_home" );

@nis_tables = ( "passwd", "group", "hosts", "rpc", "services", "netid",
		"protocols", "netgrp", "mail", "shadow", "publickey", "networks",
		"ethers", "bootparams", "printcap", "amd.home", "auto.master",
		"auto.home", "passwd.adjunct" );

# show_server_config()
# Display a form for editing NIS server options
sub show_server_config
{
local ($var, $rule) = &parse_yp_makefile();
local $init = &init_script("nis");
open(INIT, $init);
while(<INIT>) {
	$mode = $1 if (/^\s*NISSERVER\s*=["\s]*([^"\s]+)/);
	}
close(INIT);

print "<tr> <td><b>$text{'server_boot'}</b></td>\n";
printf "<td><input type=radio name=boot value=1 %s> %s\n",
	$mode eq 'false' ? '' : 'checked', $text{'yes'};
printf "<input type=radio name=boot value=0 %s> %s</td>\n",
	$mode eq 'false' ? 'checked' : '', $text{'no'};

local $dom = $var->{'LOCALDOMAIN'}->{'value'};
print "<td><b>$text{'server_domain'}</b></td>\n";
printf "<td><input type=radio name=domain_auto value=1 %s> %s\n",
	$dom =~ /`.*domainname`/ ? 'checked' : '', $text{'server_domain_auto'};
printf "<input type=radio name=domain_auto value=0 %s>\n",
	$dom =~ /`.*domainname`/ ? '' : 'checked';
printf "<input name=domain size=20 value='%s'></td> </tr>\n",
	$dom =~ /`.*domainname`/ ? '' : $dom;

print "<tr> <td><b>$text{'server_type'}</b></td>\n";
printf "<td colspan=3><input type=radio name=type value=1 %s> %s\n",
	$mode eq 'slave' ? '' : 'checked', $text{'server_master'};
printf "<input type=radio name=type value=0 %s> %s\n",
	$mode eq 'slave' ? 'checked' : '', $text{'server_slave'};
printf "<input name=slave size=30 value='%s'></td> </tr>\n",
	$mode eq 'slave' ? $config{'slave'} : '';

print "</table></td></tr></table><p>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'server_mheader'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'server_dns'}</b></td>\n";
printf "<td><input type=radio name=b value='-b' %s> %s\n",
	$var->{'B'}->{'value'} eq '-b' ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=b value='' %s> %s</td>\n",
	$var->{'B'}->{'value'} eq '-b' ? '' : 'checked', $text{'no'};

print "<td><b>$text{'server_push'}</b></td>\n";
printf "<td><input type=radio name=nopush value=false %s> %s\n",
	$var->{'NOPUSH'}->{'value'} eq 'true' ? '' : 'checked', $text{'yes'};
printf "<input type=radio name=nopush value=true %s> %s</td> </tr>\n",
	$var->{'NOPUSH'}->{'value'} eq 'true' ? 'checked' : '', $text{'no'};

local %inall;
map { $inall{$_}++ } split(/\s+/, $rule->{'all'}->{'value'});
print "<tr> <td rowspan=2 valign=top><b>$text{'server_tables'}</b></td>\n";
print "<td rowspan=2><select multiple size=5 name=tables>\n";
foreach $t (grep { $rule->{$_} } @nis_tables) {
	printf "<option value=%s %s>%s\n",
		$t, $inall{$t} ? 'selected' : '', $t;
	}
print "</select></td>\n";

print "<td><b>$text{'server_minuid'}</b></td>\n";
printf "<td><input name=minuid size=10 value='%s'></td> </tr>\n",
	$var->{'MINUID'}->{'value'};

print "<td><b>$text{'server_mingid'}</b></td>\n";
printf "<td><input name=mingid size=10 value='%s'></td> </tr>\n",
	$var->{'MINGID'}->{'value'};

print "<tr> <td><b>$text{'server_slaves'}</b></td>\n";
open(SLAVES, "/var/yp/ypservers");
while(<SLAVES>) {
	s/\s//g;
	push(@slaves, $_) if ($_);
	}
close(SLAVES);
printf "<td colspan=3><input name=slaves size=60 value='%s'></td> </tr>\n",
	join(" ", @slaves);

print "</table></td></tr></table><p>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'server_fheader'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

local $i = 0;
foreach $t (@nis_files) {
	local $f = &expand_vars($var->{uc($t)}->{'value'}, $var);
	next if (!$f);
	print "<tr>\n" if ($i%2 == 0);
	print "<td><b>",&text('server_file', $text{"desc_$t"} ? $text{"desc_$t"}
							      : $t),"</b></td>\n";
	print "<td><input name=$t size=30 value='$f'></td>\n";
	print "</tr>\n" if ($i++%2 == 1);
	}
}

# parse_server_config()
# Parse and save the NIS server options
sub parse_server_config
{
local ($var, $rule) = &parse_yp_makefile();
$in{'minuid'} =~ /^\d+$/ || &error($text{'server_eminuid'});
$in{'mingid'} =~ /^\d+$/ || &error($text{'server_emingid'});
$in{'domain_auto'} || $in{'domain'} =~ /^[A-Za-z0-9\.\-]+$/ ||
	&error($text{'server_edomain'});
$in{'type'} || gethostbyname($in{'slave'}) || &error($text{'server_eslave'});
&update_makefile($var->{'MINUID'}, $in{'minuid'});
&update_makefile($var->{'MINGID'}, $in{'mingid'});
&update_makefile($var->{'NOPUSH'}, $in{'nopush'});
&update_makefile($var->{'B'}, $in{'b'});
&update_makefile($var->{'LOCALDOMAIN'}, $in{'domain_auto'} ? "`domainname`"
							   : $in{'domain'});
&update_makefile($rule->{'all'}, join(" ", split(/\0/, $in{'tables'})), "");

foreach $t (@nis_files) {
	local $old = &expand_vars($var->{uc($t)}->{'value'}, $var);
	next if (!$old);
	if ($old ne $in{$t}) {
		$in{$t} =~ /\S/ || &error(&text('server_efile', $text{"desc_$t"}));
		&update_makefile($var->{uc($t)}, $in{$t});
		}
	}

open(SLAVES, ">/var/yp/ypservers");
foreach $s (split(/\s+/, $in{'slaves'})) {
	print SLAVES "$s\n";
	}
close(SLAVES);

if ($in{'boot'}) {
	&enable_on_boot("nis");
	}
local $init = &init_script("nis");
local $lref = &read_file_lines($init);
foreach $l (@$lref) {
	if ($l =~ /^\s*NISSERVER=/) {
		$l = "NISSERVER=".(!$in{'boot'} ? 'false' :
				   $in{'type'} ? 'master' : 'slave');
		}
	}
&flush_file_lines();
&system_logged("$init stop >/dev/null 2>&1");
&system_logged("$init start >/dev/null 2>&1");
if ($in{'type'}) {
	# Master server
	delete($config{'slave'});
	&apply_table_changes() if ($in{'boot'});
	}
else {
	$out = &backquote_logged("/usr/lib/yp/ypinit -s $in{'slave'} 2>&1");
	if ($?) { &error("<tt>$out</tt>"); }
	$config{'slave'} = $in{'slave'};
	}
&write_file("$module_config_directory/config", \%config);
}

# get_server_mode()
# Returns 0 if the NIS server is inactive, 1 if active as a master, or 2 if
# active as a slave.
sub get_server_mode
{
if (!&check_on_boot("ypserv")) {
	return 0;
	}
elsif ($config{'slave'}) {
	return 2;
	}
else {
	return 1;
	}
}

# list_nis_tables()
# Returns a list of structures of all NIS tables
sub list_nis_tables
{
local ($var, $rule) = &parse_yp_makefile();
local @rv;
local $dom = $var->{'LOCALDOMAIN'}->{'value'};
chop($dom = `domainname`) if ($dom =~ /`.*domainname`/);
local %file;
map { $file{uc($_)} = &expand_vars($var->{uc($_)}->{'value'}, $var) } @nis_files;
local @all = split(/\s+/, $rule->{'all'}->{'value'});
foreach $t (@all) {
	local $table = { 'table' => $t,
		         'index' => scalar(@rv),
		         'domain' => $dom };
	if ($t eq "passwd") {
		if ($var->{'MERGE_PASSWD'}->{'value'} eq 'true') {
			$table->{'type'} = 'passwd_shadow';
			$table->{'files'} = [ $file{'PASSWD'}, $file{'SHADOW'} ];
			}
		elsif (&indexof('shadow', @all) >= 0) {
			# Show separate shadow and passwd tables as one table
			$table->{'type'} = 'passwd_shadow_full';
			$table->{'files'} = [ $file{'PASSWD'}, $file{'SHADOW'} ];
			@all = grep { $_ ne 'shadow' } @all;
			}
		else {
			$table->{'type'} = 'passwd';
			$table->{'files'} = [ $file{'PASSWD'} ];
			}
		}
	elsif ($t eq "group") {
		if ($var->{'MERGE_GROUP'}->{'value'} eq 'true') {
			$table->{'type'} = 'group_shadow';
			$table->{'files'} = [ $file{'GROUP'}, $file{'GSHADOW'} ];
			}
		else {
			$table->{'type'} = 'group';
			$table->{'files'} = [ $file{'GROUP'} ];
			}
		}
	elsif ($t eq "netgrp") {
		$table->{'type'} = "netgroup";
		$table->{'files'} = [ $file{'NETGROUP'} ];
		}
	elsif ($t eq "mail") {
		$table->{'type'} = "aliases";
		$table->{'files'} = [ $file{'ALIASES'} ];
		}
	else {
		$table->{'type'} = $t;
		$table->{'files'} = [ $file{uc($t)} ];
		}
	push(@rv, $table);
	}
return @rv;
}

# apply_table_changes()
# Do whatever is necessary for the table text files to be loaded into
# the NIS server
sub apply_table_changes
{
&system_logged("(cd /var/yp ; make) >/dev/null 2>&1 </dev/null");
}

# show_server_security()
# Show NIS server security-related options
sub show_server_security
{
local ($opts, $hosts) = &parse_ypserv_conf();

local $port = $opts->{'xfr_check_port'} ? $opts->{'xfr_check_port'}->{'value'}
					: 1;
print "<tr> <td><b>$text{'security_port'}</b></td>\n";
printf "<td><input type=radio name=port value=1 %s> %s\n",
	$port ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=port value=0 %s> %s</td> </tr>\n",
	$port ? '' : 'checked', $text{'no'};

print "<tr> <td valign=top><b>$text{'security_maps'}</b></td>\n";
print "<td><table border>\n";
print "<tr $tb> <td><b>$text{'security_hosts'}</b></td> ",
      "<td><b>$text{'security_map'}</b></td> ",
      "<td><b>$text{'security_sec'}</b></td> ",
      "<td><b>$text{'security_mangle'}</b></td> </tr>\n";
local $i = 0;
foreach $h (@$hosts, { }) {
	print "<tr $cb>\n";
	print "<td><input name=host_$i size=20 value='$h->{'host'}'></td>\n";
	printf "<td><input type=radio name=map_def_$i value=1 %s> %s\n",
		$h->{'map'} eq '*' ? 'checked' : '', $text{'security_tall'};
	printf "<input type=radio name=map_def_$i value=0 %s>\n",
		$h->{'map'} eq '*' ? '' : 'checked';
	printf "<input name=map_$i size=20 value='%s'></td>\n",
		$h->{'map'} eq '*' ? '' : $h->{'map'};
	print "<td><select name=sec_$i>\n";
	foreach $s ('none', 'port', 'deny', 'des') {
		printf "<option value=%s %s>%s\n",
			$s, $h->{'sec'} eq $s ? 'selected' : '',
			$text{"security_sec_$s"};
		}
	print "</select></td>\n";
	printf "<td><input name=mangle_$i type=radio value=0 %s> %s\n",
		$h->{'mangle'} ? '' : 'checked', $text{'security_none'};
	printf "<input name=mangle_$i type=radio value=1 %s> %s\n",
		$h->{'mangle'} ? 'checked' : '';
	print "<input name=field_$i size=4 value='$h->{'field'}'></td>\n";
	print "</tr>\n";
	$i++;
	}
print "</table></td> </tr>\n";
}

# parse_server_security()
# Save and apply server security options
sub parse_server_security
{
# Save security settings
local ($opts, $hosts) = &parse_ypserv_conf();
local $lref = &read_file_lines($ypserv_conf);
local $xfr = $opts->{'xfr_check_port'};
local $line = $in{'port'} ? 'xfr_check_port: yes' : 'xfr_check_port: no';
if ($xfr) {
	$lref->[$xfr->{'line'}] = $line;
	}
else {
	push(@$lref, $line);
	}

# Save host restrictions
local ($i, $j, $offset);
for($i=0; defined($in{"host_$i"}); $i++) {
	next if (!$in{"host_$i"});
	$in{"host_$i"} =~ /^[^:\s]+$/ ||
		&error(&text('security_ehost', $in{"host_$i"}));
	$in{"map_def_$i"} || $in{"map_$i"} =~ /^[^:\s]+$/ ||
		&error(&text('security_emap', $in{"map_$i"}));
	$in{"field_$i"} =~ /^\d*$/ ||
		&error(&text('security_efield', $in{"field_$i"}));
	local @line = ( $in{"host_$i"},
		        $in{"map_def_$i"} ? "*" : $in{"map_$i"},
		        $in{"sec_$i"},
		        $in{"mangle_$i"} ? "yes" : "no" );
	push(@line, $in{"field_$i"})
		if ($in{"field_$i"} && $in{"field_$i"} != 2);
	local $old = $hosts->[$j++];
	if ($old) {
		$lref->[$old->{'line'}] = join(":", @line);
		}
	else {
		push(@$lref, join(":", @line));
		}
	}
while($hosts->[$j]) {
	splice(@$lref, $hosts->[$j]->{'line'}-$offset, 1);
	$j++; $offset++;
	}
&flush_file_lines();

# Apply the changes
if (open(PID, $pid_file) && <PID> =~ /(\d+)/ && kill(0, $1)) {
	&kill_logged('HUP', $1);
	close(PID);
	}
}

1;

0707010001fd5e000081a40000000000000002000000013ac038be000004a9000000200000000000000000000000000000001b00000003reloc/nis/edit_aliases.cgi    #!/usr/local/bin/perl
# edit_aliases.cgi
# Edit a NIS aliases table entry

require './nis-lib.pl';
&ReadParse();
&header($text{'aliases_title'}, "");
print "<hr>\n";

($t, $lnums, $alias) = &table_edit_setup($in{'table'}, $in{'line'}, '[\s:]+');
print "<form action=save_aliases.cgi>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<input type=hidden name=line value='$in{'line'}'>\n";

print "<table border>\n";
print "<tr $tb> <td><b>$text{'aliases_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'aliases_from'}</b></td>\n";
print "<td><input name=from size=20 value='$alias->[0]'></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'aliases_to'}</b></td>\n";
print "<td><textarea name=to rows=3 cols=30>",
	join("\n", split(/,/, $alias->[1])),"</textarea></td> </tr>\n";

print "</table></td></tr></table>\n";
if (defined($in{'line'})) {
	print "<input type=submit value='$text{'save'}'>\n";
	print "<input type=submit name=delete value='$text{'delete'}'>\n";
	}
else {
	print "<input type=submit value='$text{'create'}'>\n";
	}
print "</form><hr>\n";
&footer("edit_tables.cgi?table=$in{'table'}", $text{'tables_return'});

   0707010001fd5f000081e40000000000000002000000013ac038be00000516000000200000000000000000000000000000001a00000003reloc/nis/edit_client.cgi #!/usr/local/bin/perl
# edit_client.cgi
# Display NIS client options

require './nis-lib.pl';
&header($text{'client_title'}, "");
print "<hr>\n";
$nis = &get_client_config();

print "<form action=save_client.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'client_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'client_domain'}</b></td>\n";
printf "<td valign=top><input type=radio name=domain_def value=1 %s> %s\n",
	$nis->{'domain'} ? '' : 'checked', $text{'client_none'};
printf "<input type=radio name=domain_def value=0 %s>\n",
	$nis->{'domain'} ? 'checked' : '';
printf "<input name=domain size=35 value='%s'></td> </tr>\n",
	$nis->{'domain'};

print "<tr> <td valign=top><b>$text{'client_servers'}</b></td>\n";
printf "<td><input type=radio name=broadcast value=1 %s> %s\n",
	$nis->{'broadcast'} ? 'checked' : '', $text{'client_broadcast'};
printf "<input type=radio name=broadcast value=0 %s> %s<br>\n",
	$nis->{'broadcast'} ? '' : 'checked', $text{'client_listed'};
print "<textarea name=servers rows=3 cols=35>",
      join("\n", @{$nis->{'servers'}}),"</textarea></td> </tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value='$text{'client_ok'}'></form>\n";
print "<hr>\n";
&footer("", $text{'index_return'});

  0707010001fd60000081a40000000000000002000000013ac038be00000468000000200000000000000000000000000000001a00000003reloc/nis/edit_ethers.cgi #!/usr/local/bin/perl
# edit_ethers.cgi
# Edit a NIS ethers table entry

require './nis-lib.pl';
&ReadParse();
&header($text{'ethers_title'}, "");
print "<hr>\n";

($t, $lnums, $ether) = &table_edit_setup($in{'table'}, $in{'line'}, '\s+');
print "<form action=save_ethers.cgi>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<input type=hidden name=line value='$in{'line'}'>\n";

print "<table border>\n";
print "<tr $tb> <td><b>$text{'ethers_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'ethers_mac'}</b></td>\n";
print "<td><input name=mac size=17 value='$ether->[0]'></td> </tr>\n";

print "<tr> <td><b>$text{'ethers_ip'}</b></td>\n";
print "<td><input name=ip size=17 value='$ether->[1]'></td> </tr>\n";

print "</table></td></tr></table>\n";
if (defined($in{'line'})) {
	print "<input type=submit value='$text{'save'}'>\n";
	print "<input type=submit name=delete value='$text{'delete'}'>\n";
	}
else {
	print "<input type=submit value='$text{'create'}'>\n";
	}
print "</form><hr>\n";
&footer("edit_tables.cgi?table=$in{'table'}", $text{'tables_return'});

0707010001fd61000081a40000000000000002000000013ac038be00000714000000200000000000000000000000000000001900000003reloc/nis/edit_group.cgi  #!/usr/local/bin/perl
# edit_group.cgi
# Edit a NIS group table entry

require './nis-lib.pl';
&ReadParse();
&header($text{'group_title'}, "");
print "<hr>\n";

($t, $lnums, $group) = &table_edit_setup($in{'table'}, $in{'line'}, ':');
print "<form action=save_group.cgi>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<input type=hidden name=line value='$in{'line'}'>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'group_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'group_name'}</b></td>\n";
print "<td><input name=name size=15 value='$group->[0]'></td>\n";

print "<td><b>$text{'group_gid'}</b></td>\n";
print "<td><input name=gid size=10 value='$group->[2]'></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'group_pass'}</b></td> <td>\n";
printf "<input type=radio name=passmode value=0 %s> $text{'group_none'}<br>\n",
	$group->[1] eq "" ? "checked" : "";
printf "<input type=radio name=passmode value=1 %s> $text{'group_encrypted'}\n",
	$group->[1] eq "" ? "" : "checked";
print "<input name=encpass size=13 value=\"$group->[1]\"><br>\n";
print "<input type=radio name=passmode value=2 %s> $text{'group_clear'}\n";
print "<input name=pass size=15></td>\n";

print "<td valign=top><b>$text{'group_members'}</b></td>\n";
print "<td><textarea wrap=auto name=members rows=5 cols=10>",
	join("\n", split(/,/ , $group->[3])),"</textarea></td> </tr>\n";

print "</table></td></tr></table>\n";
if (defined($in{'line'})) {
	print "<input type=submit value='$text{'save'}'>\n";
	print "<input type=submit name=delete value='$text{'delete'}'>\n";
	}
else {
	print "<input type=submit value='$text{'create'}'>\n";
	}
print "</form><hr>\n";
&footer("edit_tables.cgi?table=$in{'table'}", $text{'tables_return'});

0707010001fd62000081a40000000000000002000000013ac038be0000072e000000200000000000000000000000000000002000000003reloc/nis/edit_group_shadow.cgi   #!/usr/local/bin/perl
# edit_group_shadow.cgi
# Edit a NIS group table entry

require './nis-lib.pl';
&ReadParse();
&header($text{'group_title'}, "");
print "<hr>\n";

($t, $lnums, $group, $shadow) = &table_edit_setup($in{'table'}, $in{'line'}, ':');
print "<form action=save_group_shadow.cgi>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<input type=hidden name=line value='$in{'line'}'>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'group_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'group_name'}</b></td>\n";
print "<td><input name=name size=15 value='$group->[0]'></td>\n";

print "<td><b>$text{'group_gid'}</b></td>\n";
print "<td><input name=gid size=10 value='$group->[2]'></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'group_pass'}</b></td> <td>\n";
printf "<input type=radio name=passmode value=0 %s> $text{'group_none'}<br>\n",
	$shadow->[1] eq "" ? "checked" : "";
printf "<input type=radio name=passmode value=1 %s> $text{'group_encrypted'}\n",
	$shadow->[1] eq "" ? "" : "checked";
print "<input name=encpass size=13 value=\"$shadow->[1]\"><br>\n";
print "<input type=radio name=passmode value=2 %s> $text{'group_clear'}\n";
print "<input name=pass size=15></td>\n";

print "<td valign=top><b>$text{'group_members'}</b></td>\n";
print "<td><textarea wrap=auto name=members rows=5 cols=10>",
	join("\n", split(/,/ , $group->[3])),"</textarea></td> </tr>\n";

print "</table></td></tr></table>\n";
if (defined($in{'line'})) {
	print "<input type=submit value='$text{'save'}'>\n";
	print "<input type=submit name=delete value='$text{'delete'}'>\n";
	}
else {
	print "<input type=submit value='$text{'create'}'>\n";
	}
print "</form><hr>\n";
&footer("edit_tables.cgi?table=$in{'table'}", $text{'tables_return'});

  0707010001fd63000081a40000000000000002000000013ac038be00000516000000200000000000000000000000000000001900000003reloc/nis/edit_hosts.cgi  #!/usr/local/bin/perl
# edit_hosts.cgi
# Edit a NIS hosts table entry

require './nis-lib.pl';
&ReadParse();
&header($text{'hosts_title'}, "");
print "<hr>\n";

($t, $lnums, $host) = &table_edit_setup($in{'table'}, $in{'line'}, '\s+');
print "<form action=save_hosts.cgi>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<input type=hidden name=line value='$in{'line'}'>\n";

print "<table border>\n";
print "<tr $tb> <td><b>$text{'hosts_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'hosts_ip'}</b></td>\n";
print "<td><input name=ip size=15 value='$host->[0]'></td> </tr>\n";

print "<tr> <td><b>$text{'hosts_name'}</b></td>\n";
print "<td><input name=name size=30 value='$host->[1]'></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'hosts_aliases'}</b></td>\n";
print "<td><textarea name=aliases rows=3 cols=30>",
	join("\n", @$host[2 .. @$host-1]),"</textarea></td> </tr>\n";

print "</table></td></tr></table>\n";
if (defined($in{'line'})) {
	print "<input type=submit value='$text{'save'}'>\n";
	print "<input type=submit name=delete value='$text{'delete'}'>\n";
	}
else {
	print "<input type=submit value='$text{'create'}'>\n";
	}
print "</form><hr>\n";
&footer("edit_tables.cgi?table=$in{'table'}", $text{'tables_return'});

  0707010001fd64000081a40000000000000002000000013ac038be000007e4000000200000000000000000000000000000001c00000003reloc/nis/edit_netgroup.cgi   #!/usr/local/bin/perl
# edit_netgroup.cgi
# Edit a NIS netgroup table entry

require './nis-lib.pl';
&ReadParse();
&header($text{'netgroup_title'}, "");
print "<hr>\n";

($t, $lnums, $netgroup) = &table_edit_setup($in{'table'}, $in{'line'}, '\s+');
print "<form action=save_netgroup.cgi>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<input type=hidden name=line value='$in{'line'}'>\n";

print "<table border>\n";
print "<tr $tb> <td><b>$text{'netgroup_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'netgroup_name'}</b></td>\n";
print "<td><input name=name size=15 value='$netgroup->[0]'></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'netgroup_members'}</b></td>\n";
print "<td><table border>\n";
print "<tr $tb> <td><b>$text{'netgroup_host'}</b></td> ",
      "<td><b>$text{'netgroup_user'}</b></td> ",
      "<td><b>$text{'netgroup_domain'}</b></td> </tr>\n";
$i = 0;
foreach $h (@$netgroup[1 .. @$netgroup-1], "(x,,)", "(x,,)") {
	$h =~ /^\((\S*),(\S*),(\S*)\)$/ || next;
	print "<tr $cb>\n";
	foreach $v (['host',$1],['user',$2],['dom',$3]) {
		printf "<td><input type=radio name=$v->[0]_def_$i value=1 %s>%s\n",
			$v->[1] ? '' : 'checked', $text{'netgroup_any'};
		printf "<input type=radio name=$v->[0]_def_$i value=2 %s>%s\n",
			$v->[1] eq 'x' ? 'checked' : '', $text{'netgroup_none'}
			if ($v->[0] eq 'host');
		printf "<input type=radio name=$v->[0]_def_$i value=0 %s>\n",
			$v->[1] && $v->[1] ne 'x' ? 'checked' : '';
		printf "<input name=$v->[0]_$i size=15 value='%s'></td>\n",
			$v->[1] eq "x" ? "" : $v->[1];
		}
	print "</tr>\n";
	$i++;
	}
print "</table></td> </tr>\n";

print "</table></td></tr></table>\n";
if (defined($in{'line'})) {
	print "<input type=submit value='$text{'save'}'>\n";
	print "<input type=submit name=delete value='$text{'delete'}'>\n";
	}
else {
	print "<input type=submit value='$text{'create'}'>\n";
	}
print "</form><hr>\n";
&footer("edit_tables.cgi?table=$in{'table'}", $text{'tables_return'});

0707010001fd65000081a40000000000000002000000013ac038be00000480000000200000000000000000000000000000001c00000003reloc/nis/edit_netmasks.cgi   #!/usr/local/bin/perl
# edit_netmasks.cgi
# Edit a NIS netmasks table entry

require './nis-lib.pl';
&ReadParse();
&header($text{'netmasks_title'}, "");
print "<hr>\n";

($t, $lnums, $netmask) = &table_edit_setup($in{'table'}, $in{'line'}, '\s+');
print "<form action=save_netmasks.cgi>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<input type=hidden name=line value='$in{'line'}'>\n";

print "<table border>\n";
print "<tr $tb> <td><b>$text{'netmasks_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'netmasks_net'}</b></td>\n";
print "<td><input name=net size=15 value='$netmask->[0]'></td> </tr>\n";

print "<tr> <td><b>$text{'netmasks_mask'}</b></td>\n";
print "<td><input name=mask size=15 value='$netmask->[1]'></td> </tr>\n";

print "</table></td></tr></table>\n";
if (defined($in{'line'})) {
	print "<input type=submit value='$text{'save'}'>\n";
	print "<input type=submit name=delete value='$text{'delete'}'>\n";
	}
else {
	print "<input type=submit value='$text{'create'}'>\n";
	}
print "</form><hr>\n";
&footer("edit_tables.cgi?table=$in{'table'}", $text{'tables_return'});

070701000214c9000041ed0000000000000001000000023ac03c2900000000000000200000000000000000000000000000001100000003reloc/nis/images  070701000214ca000081a40000000000000002000000013ac038be00000110000000200000000000000000000000000000001c00000003reloc/nis/images/client.gif   GIF89a0 0   倘     忍!Made with GIMP !
  ,    0 0  脁很0蔍8胪W 巇i炣┊d示+
tm遷粦x唠瀘Hf凞僉鈻7@-烷爖璬揫頗樢耣賹n贿[欠錜皚徠蠝|亊eZ乿僨hVc;yl[宩0'[%)殨%様/ 毉爆锤毀+浖]X懒獱牌A#构耝颂次$岩Χ仝圮蒉哙徕	 ;070701000214cb000081a40000000000000002000000013ac038be0000019d000000200000000000000000000000000000001a00000003reloc/nis/images/icon.gif GIF87a0 0   忍萨     忍         ,    0 0  很!蔊r粱 奼
惟Hn+谀船弗0靎ZQN7柰~n+~嶩-纮衕gQ招|1抡`苵甎烻譑証駫q9a蟔/hUN[JBlC*ENLj唨侱Vy|檣`v:' ;dr噲扲Lnbpⅹf
祶嫧R|窢e伋!坷/bw將茽ど挀2呄罩z歿}冢睴｀徙滏WI#隀鈿韊 s 衆$浘,鋜'膺à
!厳B譧.&j:Tk璄塶2]拇馷G%9@Z憵.o<MZ蓲2g6c榕簴.蜢墔(肌F?5;7iR#O"5闾熡|#饣Z羆\1$.l讋Z:p0肟璳;鑜.M硏G%  ;   070701000214cc000081a40000000000000002000000013ac038be00000113000000200000000000000000000000000000001e00000003reloc/nis/images/security.gif GIF89a0 0   烫虣櫃fff            !    ,    0 0  很0蔍8死{讬'8yB俫B]z秮:渕}鲯嚨炩!鰧粻Ya倻MJ	酼礧捌 gu@鬡U?賍w咵/羆巷}y剕&z剢巻 憭弾崈棌晧殩瀧ぅⅲ洜~挱疁埓捣祲悎恫【聥炼拦贸皺橇幣派维泄氏斎已虆乇趰*徭乳 庄飶B蝮趱鲼	 ; 070701000214cd000081a40000000000000002000000013ac038be0000019f000000200000000000000000000000000000001c00000003reloc/nis/images/server.gif   GIF89a0 0   倘     忍!Made with GIMP !
  ,    0 0  䎬很-菼┆8k蓈絕坲 fjr囪N9牚繰u"沙趍+,疽l䦟E藃蔿@Oh幨E呑Q邾&e:gIWf"AF鯉氼aC"毯{騭\V}$卥'U6v彁8z4夾o~)T"洔滽刡惄弐F_5S盜Y安摥旼.3S-.脷
SQa/蕟{姬襛偨!冶O瓦豹3竍ブ栝镐媽瘃3忋坲承礉U|8翮- 榩CLb$銴US;P軋	+fI2=○瑩勮3栬贽虩4銃鷵 9KJt"英茷(5)邯H='j,嶚tz  ; 070701000214ce000081a40000000000000002000000013ac038be0000011a000000200000000000000000000000000000001c00000003reloc/nis/images/switch.gif   GIF89a0 0   倘     忍!Made with GIMP !
  ,    0 0  蛒很0蔍8胪W 巇i炣┊d示+
tm呗P磥P扔鴢贰r 惛0鄤Fw锚撒F坂M渫璕bsFτF瘀M;赑澀[椶錫c|}k
xnc凨3s妢孫h妐崜R僟0$L&*煚%漝B 瓫碍⒍发嫶附患久⒋/(侍1涡蚇哪E毷纸貢谯份零溴骁栝觌扈	 ;  070701000214cf000081a40000000000000002000000013ac038be0000016e000000200000000000000000000000000000001c00000003reloc/nis/images/tables.gif   GIF89a0 0   鴺槝`d`槝   忍!Made with GIMP !
  ,    0 0  䎬很0蔍8喭`(J 渉l霒 螩@叱嶋5 斮埮け堨徛fx0E鎶Y/阁輝4鶯5嵽餛[Pㄛ伝逓喵駕|s乽厊墕&0剢w垏妱儈彄悩z孶q煚&帡枓嫊洢Λ〝崸棏嚜櫏秞s±r碑长瓇笟乒菦莎徎蕚锰哑舰灹贤藫龠接佳洮倚握幽蹄0蒴楹罔铎岑驖齞庞P啖|╂针v瘶<棸 純	F8"駶瘆$忠笎(S狶憽ニ0c蕼I肠蜎.  ;  0707010001fd66000081a40000000000000002000000013ac038be0000053d000000200000000000000000000000000000001c00000003reloc/nis/edit_networks.cgi   #!/usr/local/bin/perl
# edit_networks.cgi
# Edit a NIS networks table entry

require './nis-lib.pl';
&ReadParse();
&header($text{'networks_title'}, "");
print "<hr>\n";

($t, $lnums, $network) = &table_edit_setup($in{'table'}, $in{'line'}, '\s+');
print "<form action=save_networks.cgi>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<input type=hidden name=line value='$in{'line'}'>\n";

print "<table border>\n";
print "<tr $tb> <td><b>$text{'networks_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'networks_name'}</b></td>\n";
print "<td><input name=name size=30 value='$network->[0]'></td> </tr>\n";

print "<tr> <td><b>$text{'networks_ip'}</b></td>\n";
print "<td><input name=ip size=15 value='$network->[1]'></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'networks_aliases'}</b></td>\n";
print "<td><textarea name=aliases rows=3 cols=30>",
	join("\n", @$network[2 .. @$network-1]),"</textarea></td> </tr>\n";

print "</table></td></tr></table>\n";
if (defined($in{'line'})) {
	print "<input type=submit value='$text{'save'}'>\n";
	print "<input type=submit name=delete value='$text{'delete'}'>\n";
	}
else {
	print "<input type=submit value='$text{'create'}'>\n";
	}
print "</form><hr>\n";
&footer("edit_tables.cgi?table=$in{'table'}", $text{'tables_return'});

   0707010001fd67000081a40000000000000002000000013ac038be000012fd000000200000000000000000000000000000001a00000003reloc/nis/edit_passwd.cgi #!/usr/local/bin/perl
# edit_passwd_shadow.cgi
# Edit a NIS password/shadow files entry

require './nis-lib.pl';
require 'timelocal.pl';
&ReadParse();
&header($text{'passwd_title'}, "");
print "<hr>\n";
$mode = ($0 =~ /passwd_shadow_full.cgi$/ ? 2 :
	 $0 =~ /passwd_shadow.cgi$/ ? 1 : 0);

# Build list of available shells
@shlist = ("/bin/sh", "/bin/csh", "/bin/false");
open(SHELLS, "/etc/shells");
while(<SHELLS>) {
	s/\r|\n//g;
	s/#.*$//;
	push(@shlist, $_) if (/\S/);
	}
close(SHELLS);

($t, $lnums, $passwd, $shadow) =
	&table_edit_setup($in{'table'}, $in{'line'}, ':');
print "<form action=save_passwd_shadow.cgi>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<input type=hidden name=line value='$in{'line'}'>\n";
print "<input type=hidden name=mode value='$mode'>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'passwd_header1'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'passwd_name'}</b></td>\n";
print "<td><input name=name size=10 value=\"$passwd->[0]\"></td>\n";

print "<td><b>$text{'passwd_uid'}</b></td>\n";
print "<td><input name=uid size=10 value=\"$passwd->[2]\"></td> </tr>\n";

print "<tr> <td><b>$text{'passwd_real'}</b></td>\n";
print "<td><input name=real size=20 value=\"$passwd->[4]\"></td>\n";

print "<td><b>$text{'passwd_home'}</b></td>\n";
print "<td><input name=home size=25 value=\"$passwd->[5]\"> ",
      &file_chooser_button("home", 1),"</td> </tr>\n";

print "<tr> <td valign=top><b>$text{'passwd_shell'}</b></td>\n";
print "<td valign=top><select name=shell>\n";
foreach $s (&unique(@shlist)) {
	printf "<option %s>%s\n",
		$passwd->[6] eq $s ? 'selected' : '', $s;
	$found++ if ($passwd->[6] eq $s);
	}
printf "<option value='' %s>%s\n",
	$found ? '' : 'selected', $text{'passwd_other'};
print "</select><br>\n";
printf "<input name=other size=20 value='%s'> %s</td>\n",
	$found ? '' : $passwd->[6], &file_chooser_button("other");

$pass = $mode ? $shadow->[1] : $passwd->[1];
%uconfig = &foreign_config("useradmin");
print "<td valign=top rowspan=2><b>$text{'passwd_pass'}</b></td> <td rowspan=2>\n";
printf"<input type=radio name=passmode value=0 %s> %s<br>\n",
	$pass eq "" ? "checked" : "",
	$uconfig{'empty_mode'} ? $text{'passwd_none1'} : $text{'passwd_none2'};
printf"<input type=radio name=passmode value=1 %s> $text{'passwd_nologin'}<br>\n",
	$pass eq $uconfig{'lock_string'} ? "checked" : "";
print "<input type=radio name=passmode value=3> $text{'passwd_clear'}\n";
printf "<input %s name=pass size=15><br>\n",
	$uconfig{'passwd_stars'} ? "type=password" : "";
printf "<input type=radio name=passmode value=2 %s> $text{'passwd_encrypted'}\n",
	$pass && $pass ne $uconfig{'lock_string'} ? "checked" :"";
printf "<input name=encpass size=13 value=\"%s\">\n",
	$pass && $pass ne $uconfig{'lock_string'} ? $pass : "";
print "</td> </tr>\n";

print "<tr> <td><b>$text{'passwd_gid'}</b></td>\n";
print "<td><input name=gid size=10 value='$passwd->[3]'></td> </tr>\n";

if ($mode == 2) {
	print "</table></td></tr></table><br>\n";
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'passwd_header2'}</b></td> </tr>\n";
	print "<tr $cb> <td><table width=100%>\n";

	print "<tr> <td><b>$text{'passwd_change'}</b></td>\n";
	if ($shadow->[2] && $shadow->[2] >= 0) {
		@tm = localtime(timelocal(gmtime($shadow->[2] * 60*60*24)));
		printf "<td>%s/%s/%s</td>\n",
			$tm[3], $text{"smonth_".($tm[4]+1)}, $tm[5]+1900;
		}
	elsif ($in{'line'} eq "") { print "<td>$text{'passwd_never'}</td>\n"; }
	else { print "<td>$text{'passwd_unknown'}</td>\n"; }

	print "<td><b>$text{'passwd_expire'}</b></td>\n";
	if ($shadow->[7] && $shadow->[7] >= 0) {
		@tm = localtime($shadow->[7] * 60*60*24);
		$eday = $tm[3];
		$emon = $tm[4]+1;
		$eyear = $tm[5]+1900;
		}
	print "<td>";
	&date_input($eday, $emon, $eyear, 'expire');
	print "</td>\n";

	print "<tr> <td><b>$text{'passwd_min'}</b></td>\n";
	printf "<td><input size=5 name=min value=\"%s\"></td>\n",
		$shadow->[3] < 0 ? "" : $shadow->[3];

	print "<td><b>$text{'passwd_max'}</b></td>\n";
	printf "<td><input size=5 name=max value=\"%s\"></td></tr>\n",
		$shadow->[4] < 0 ? "" : $shadow->[4];

	print "<tr> <td><b>$text{'passwd_warn'}</b></td>\n";
	printf "<td><input size=5 name=warn value=\"%s\"></td>\n",
		$shadow->[5] < 0 ? "" : $shadow->[5];

	print "<td><b>$text{'passwd_inactive'}</b></td>\n";
	printf "<td><input size=5 name=inactive value=\"%s\"></td></tr>\n",
		$shadow->[6] < 0 ? "" : $shadow->[6];
	}
print "</table></td></tr></table>\n";

if (defined($in{'line'})) {
	print "<input type=submit value='$text{'save'}'>\n";
	print "<input type=submit name=delete value='$text{'delete'}'>\n";
	}
else {
	print "<input type=submit value='$text{'create'}'>\n";
	}
print "</form><hr>\n";
&footer("edit_tables.cgi?table=$in{'table'}", $text{'tables_return'});

   0707010001fd68000081a40000000000000002000000013ac038be000012fd000000200000000000000000000000000000002100000003reloc/nis/edit_passwd_shadow.cgi  #!/usr/local/bin/perl
# edit_passwd_shadow.cgi
# Edit a NIS password/shadow files entry

require './nis-lib.pl';
require 'timelocal.pl';
&ReadParse();
&header($text{'passwd_title'}, "");
print "<hr>\n";
$mode = ($0 =~ /passwd_shadow_full.cgi$/ ? 2 :
	 $0 =~ /passwd_shadow.cgi$/ ? 1 : 0);

# Build list of available shells
@shlist = ("/bin/sh", "/bin/csh", "/bin/false");
open(SHELLS, "/etc/shells");
while(<SHELLS>) {
	s/\r|\n//g;
	s/#.*$//;
	push(@shlist, $_) if (/\S/);
	}
close(SHELLS);

($t, $lnums, $passwd, $shadow) =
	&table_edit_setup($in{'table'}, $in{'line'}, ':');
print "<form action=save_passwd_shadow.cgi>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<input type=hidden name=line value='$in{'line'}'>\n";
print "<input type=hidden name=mode value='$mode'>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'passwd_header1'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'passwd_name'}</b></td>\n";
print "<td><input name=name size=10 value=\"$passwd->[0]\"></td>\n";

print "<td><b>$text{'passwd_uid'}</b></td>\n";
print "<td><input name=uid size=10 value=\"$passwd->[2]\"></td> </tr>\n";

print "<tr> <td><b>$text{'passwd_real'}</b></td>\n";
print "<td><input name=real size=20 value=\"$passwd->[4]\"></td>\n";

print "<td><b>$text{'passwd_home'}</b></td>\n";
print "<td><input name=home size=25 value=\"$passwd->[5]\"> ",
      &file_chooser_button("home", 1),"</td> </tr>\n";

print "<tr> <td valign=top><b>$text{'passwd_shell'}</b></td>\n";
print "<td valign=top><select name=shell>\n";
foreach $s (&unique(@shlist)) {
	printf "<option %s>%s\n",
		$passwd->[6] eq $s ? 'selected' : '', $s;
	$found++ if ($passwd->[6] eq $s);
	}
printf "<option value='' %s>%s\n",
	$found ? '' : 'selected', $text{'passwd_other'};
print "</select><br>\n";
printf "<input name=other size=20 value='%s'> %s</td>\n",
	$found ? '' : $passwd->[6], &file_chooser_button("other");

$pass = $mode ? $shadow->[1] : $passwd->[1];
%uconfig = &foreign_config("useradmin");
print "<td valign=top rowspan=2><b>$text{'passwd_pass'}</b></td> <td rowspan=2>\n";
printf"<input type=radio name=passmode value=0 %s> %s<br>\n",
	$pass eq "" ? "checked" : "",
	$uconfig{'empty_mode'} ? $text{'passwd_none1'} : $text{'passwd_none2'};
printf"<input type=radio name=passmode value=1 %s> $text{'passwd_nologin'}<br>\n",
	$pass eq $uconfig{'lock_string'} ? "checked" : "";
print "<input type=radio name=passmode value=3> $text{'passwd_clear'}\n";
printf "<input %s name=pass size=15><br>\n",
	$uconfig{'passwd_stars'} ? "type=password" : "";
printf "<input type=radio name=passmode value=2 %s> $text{'passwd_encrypted'}\n",
	$pass && $pass ne $uconfig{'lock_string'} ? "checked" :"";
printf "<input name=encpass size=13 value=\"%s\">\n",
	$pass && $pass ne $uconfig{'lock_string'} ? $pass : "";
print "</td> </tr>\n";

print "<tr> <td><b>$text{'passwd_gid'}</b></td>\n";
print "<td><input name=gid size=10 value='$passwd->[3]'></td> </tr>\n";

if ($mode == 2) {
	print "</table></td></tr></table><br>\n";
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'passwd_header2'}</b></td> </tr>\n";
	print "<tr $cb> <td><table width=100%>\n";

	print "<tr> <td><b>$text{'passwd_change'}</b></td>\n";
	if ($shadow->[2] && $shadow->[2] >= 0) {
		@tm = localtime(timelocal(gmtime($shadow->[2] * 60*60*24)));
		printf "<td>%s/%s/%s</td>\n",
			$tm[3], $text{"smonth_".($tm[4]+1)}, $tm[5]+1900;
		}
	elsif ($in{'line'} eq "") { print "<td>$text{'passwd_never'}</td>\n"; }
	else { print "<td>$text{'passwd_unknown'}</td>\n"; }

	print "<td><b>$text{'passwd_expire'}</b></td>\n";
	if ($shadow->[7] && $shadow->[7] >= 0) {
		@tm = localtime($shadow->[7] * 60*60*24);
		$eday = $tm[3];
		$emon = $tm[4]+1;
		$eyear = $tm[5]+1900;
		}
	print "<td>";
	&date_input($eday, $emon, $eyear, 'expire');
	print "</td>\n";

	print "<tr> <td><b>$text{'passwd_min'}</b></td>\n";
	printf "<td><input size=5 name=min value=\"%s\"></td>\n",
		$shadow->[3] < 0 ? "" : $shadow->[3];

	print "<td><b>$text{'passwd_max'}</b></td>\n";
	printf "<td><input size=5 name=max value=\"%s\"></td></tr>\n",
		$shadow->[4] < 0 ? "" : $shadow->[4];

	print "<tr> <td><b>$text{'passwd_warn'}</b></td>\n";
	printf "<td><input size=5 name=warn value=\"%s\"></td>\n",
		$shadow->[5] < 0 ? "" : $shadow->[5];

	print "<td><b>$text{'passwd_inactive'}</b></td>\n";
	printf "<td><input size=5 name=inactive value=\"%s\"></td></tr>\n",
		$shadow->[6] < 0 ? "" : $shadow->[6];
	}
print "</table></td></tr></table>\n";

if (defined($in{'line'})) {
	print "<input type=submit value='$text{'save'}'>\n";
	print "<input type=submit name=delete value='$text{'delete'}'>\n";
	}
else {
	print "<input type=submit value='$text{'create'}'>\n";
	}
print "</form><hr>\n";
&footer("edit_tables.cgi?table=$in{'table'}", $text{'tables_return'});

   0707010001fd69000081a40000000000000002000000013ac038be000012fd000000200000000000000000000000000000002600000003reloc/nis/edit_passwd_shadow_full.cgi #!/usr/local/bin/perl
# edit_passwd_shadow.cgi
# Edit a NIS password/shadow files entry

require './nis-lib.pl';
require 'timelocal.pl';
&ReadParse();
&header($text{'passwd_title'}, "");
print "<hr>\n";
$mode = ($0 =~ /passwd_shadow_full.cgi$/ ? 2 :
	 $0 =~ /passwd_shadow.cgi$/ ? 1 : 0);

# Build list of available shells
@shlist = ("/bin/sh", "/bin/csh", "/bin/false");
open(SHELLS, "/etc/shells");
while(<SHELLS>) {
	s/\r|\n//g;
	s/#.*$//;
	push(@shlist, $_) if (/\S/);
	}
close(SHELLS);

($t, $lnums, $passwd, $shadow) =
	&table_edit_setup($in{'table'}, $in{'line'}, ':');
print "<form action=save_passwd_shadow.cgi>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<input type=hidden name=line value='$in{'line'}'>\n";
print "<input type=hidden name=mode value='$mode'>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'passwd_header1'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'passwd_name'}</b></td>\n";
print "<td><input name=name size=10 value=\"$passwd->[0]\"></td>\n";

print "<td><b>$text{'passwd_uid'}</b></td>\n";
print "<td><input name=uid size=10 value=\"$passwd->[2]\"></td> </tr>\n";

print "<tr> <td><b>$text{'passwd_real'}</b></td>\n";
print "<td><input name=real size=20 value=\"$passwd->[4]\"></td>\n";

print "<td><b>$text{'passwd_home'}</b></td>\n";
print "<td><input name=home size=25 value=\"$passwd->[5]\"> ",
      &file_chooser_button("home", 1),"</td> </tr>\n";

print "<tr> <td valign=top><b>$text{'passwd_shell'}</b></td>\n";
print "<td valign=top><select name=shell>\n";
foreach $s (&unique(@shlist)) {
	printf "<option %s>%s\n",
		$passwd->[6] eq $s ? 'selected' : '', $s;
	$found++ if ($passwd->[6] eq $s);
	}
printf "<option value='' %s>%s\n",
	$found ? '' : 'selected', $text{'passwd_other'};
print "</select><br>\n";
printf "<input name=other size=20 value='%s'> %s</td>\n",
	$found ? '' : $passwd->[6], &file_chooser_button("other");

$pass = $mode ? $shadow->[1] : $passwd->[1];
%uconfig = &foreign_config("useradmin");
print "<td valign=top rowspan=2><b>$text{'passwd_pass'}</b></td> <td rowspan=2>\n";
printf"<input type=radio name=passmode value=0 %s> %s<br>\n",
	$pass eq "" ? "checked" : "",
	$uconfig{'empty_mode'} ? $text{'passwd_none1'} : $text{'passwd_none2'};
printf"<input type=radio name=passmode value=1 %s> $text{'passwd_nologin'}<br>\n",
	$pass eq $uconfig{'lock_string'} ? "checked" : "";
print "<input type=radio name=passmode value=3> $text{'passwd_clear'}\n";
printf "<input %s name=pass size=15><br>\n",
	$uconfig{'passwd_stars'} ? "type=password" : "";
printf "<input type=radio name=passmode value=2 %s> $text{'passwd_encrypted'}\n",
	$pass && $pass ne $uconfig{'lock_string'} ? "checked" :"";
printf "<input name=encpass size=13 value=\"%s\">\n",
	$pass && $pass ne $uconfig{'lock_string'} ? $pass : "";
print "</td> </tr>\n";

print "<tr> <td><b>$text{'passwd_gid'}</b></td>\n";
print "<td><input name=gid size=10 value='$passwd->[3]'></td> </tr>\n";

if ($mode == 2) {
	print "</table></td></tr></table><br>\n";
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'passwd_header2'}</b></td> </tr>\n";
	print "<tr $cb> <td><table width=100%>\n";

	print "<tr> <td><b>$text{'passwd_change'}</b></td>\n";
	if ($shadow->[2] && $shadow->[2] >= 0) {
		@tm = localtime(timelocal(gmtime($shadow->[2] * 60*60*24)));
		printf "<td>%s/%s/%s</td>\n",
			$tm[3], $text{"smonth_".($tm[4]+1)}, $tm[5]+1900;
		}
	elsif ($in{'line'} eq "") { print "<td>$text{'passwd_never'}</td>\n"; }
	else { print "<td>$text{'passwd_unknown'}</td>\n"; }

	print "<td><b>$text{'passwd_expire'}</b></td>\n";
	if ($shadow->[7] && $shadow->[7] >= 0) {
		@tm = localtime($shadow->[7] * 60*60*24);
		$eday = $tm[3];
		$emon = $tm[4]+1;
		$eyear = $tm[5]+1900;
		}
	print "<td>";
	&date_input($eday, $emon, $eyear, 'expire');
	print "</td>\n";

	print "<tr> <td><b>$text{'passwd_min'}</b></td>\n";
	printf "<td><input size=5 name=min value=\"%s\"></td>\n",
		$shadow->[3] < 0 ? "" : $shadow->[3];

	print "<td><b>$text{'passwd_max'}</b></td>\n";
	printf "<td><input size=5 name=max value=\"%s\"></td></tr>\n",
		$shadow->[4] < 0 ? "" : $shadow->[4];

	print "<tr> <td><b>$text{'passwd_warn'}</b></td>\n";
	printf "<td><input size=5 name=warn value=\"%s\"></td>\n",
		$shadow->[5] < 0 ? "" : $shadow->[5];

	print "<td><b>$text{'passwd_inactive'}</b></td>\n";
	printf "<td><input size=5 name=inactive value=\"%s\"></td></tr>\n",
		$shadow->[6] < 0 ? "" : $shadow->[6];
	}
print "</table></td></tr></table>\n";

if (defined($in{'line'})) {
	print "<input type=submit value='$text{'save'}'>\n";
	print "<input type=submit name=delete value='$text{'delete'}'>\n";
	}
else {
	print "<input type=submit value='$text{'create'}'>\n";
	}
print "</form><hr>\n";
&footer("edit_tables.cgi?table=$in{'table'}", $text{'tables_return'});

   0707010001fd6a000081a40000000000000002000000013ac038be0000053d000000200000000000000000000000000000001d00000003reloc/nis/edit_protocols.cgi  #!/usr/local/bin/perl
# edit_protocols.cgi
# Edit a NIS protocols table entry

require './nis-lib.pl';
&ReadParse();
&header($text{'protocols_title'}, "");
print "<hr>\n";

($t, $lnums, $protocol) = &table_edit_setup($in{'table'}, $in{'line'}, '\s+');
print "<form action=save_protocols.cgi>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<input type=hidden name=line value='$in{'line'}'>\n";

print "<table border>\n";
print "<tr $tb> <td><b>$text{'protocols_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'protocols_name'}</b></td>\n";
print "<td><input name=name size=15 value='$protocol->[0]'></td>\n";

print "<td><b>$text{'protocols_number'}</b></td>\n";
print "<td><input name=number size=6 value='$protocol->[1]'></td> </tr>\n";

$al = join(" ", @$protocol[2 .. @$protocol-1]);
print "<tr> <td><b>$text{'protocols_aliases'}</b></td>\n";
print "<td colspan=3><input name=aliases size=30 value='$al'></td> </tr>\n";

print "</table></td></tr></table>\n";
if (defined($in{'line'})) {
	print "<input type=submit value='$text{'save'}'>\n";
	print "<input type=submit name=delete value='$text{'delete'}'>\n";
	}
else {
	print "<input type=submit value='$text{'create'}'>\n";
	}
print "</form><hr>\n";
&footer("edit_tables.cgi?table=$in{'table'}", $text{'tables_return'});

   0707010001fd6b000081a40000000000000002000000013ac038be00000509000000200000000000000000000000000000001700000003reloc/nis/edit_rpc.cgi    #!/usr/local/bin/perl
# edit_rpc.cgi
# Edit a NIS rpc table entry

require './nis-lib.pl';
&ReadParse();
&header($text{'rpc_title'}, "");
print "<hr>\n";

($t, $lnums, $rpc) = &table_edit_setup($in{'table'}, $in{'line'}, '\s+');
print "<form action=save_rpc.cgi>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<input type=hidden name=line value='$in{'line'}'>\n";

print "<table border>\n";
print "<tr $tb> <td><b>$text{'rpc_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'rpc_name'}</b></td>\n";
print "<td><input name=name size=15 value='$rpc->[0]'></td> </tr>\n";

print "<tr> <td><b>$text{'rpc_number'}</b></td>\n";
print "<td><input name=number size=10 value='$rpc->[1]'></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'rpc_aliases'}</b></td>\n";
print "<td><textarea name=aliases rows=3 cols=30>",
	join("\n", @$rpc[2 .. @$rpc-1]),"</textarea></td> </tr>\n";

print "</table></td></tr></table>\n";
if (defined($in{'line'})) {
	print "<input type=submit value='$text{'save'}'>\n";
	print "<input type=submit name=delete value='$text{'delete'}'>\n";
	}
else {
	print "<input type=submit value='$text{'create'}'>\n";
	}
print "</form><hr>\n";
&footer("edit_tables.cgi?table=$in{'table'}", $text{'tables_return'});

   0707010001fd6c000081e40000000000000002000000013ac038bf00000711000000200000000000000000000000000000001c00000003reloc/nis/edit_security.cgi   #!/usr/local/bin/perl
# edit_security.cgi
# Show NIS server security options

require './nis-lib.pl';
&header($text{'security_title'}, "");
print "<hr>\n";

if (&get_server_mode() == 0 || &get_nis_support() < 2) {
	print "<p>$text{'security_enis'}<p>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}

print "<form action=save_security.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'security_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

if ($config{'securenets'}) {
	print "<tr> <td valign=top><b>$text{'security_nets'}</b></td>\n";
	print "<td><table border>\n";
	print "<tr $tb> <td><b>$text{'security_mask'}</b></td> ",
	      "<td><b>$text{'security_net'}</b></td> </tr>\n";
	open(NETS, $config{'securenets'});
	while(<NETS>) {
		s/#.*$//;
		if (/(\S+)\s+(\S+)/) {
			push(@nets, [ $1 eq '255.255.255.255' ? 1 :
				      $1 eq 'host' ? 1 :
				      $1 eq '0.0.0.0' ? 2 : 0, $1, $2 ]);
			}
		}
	close(NETS);
	local $i = 0;
	foreach $n (@nets, [ 0, "", "" ]) {
		print "<tr $cb>\n";
		printf "<td><input type=radio name=def_$i value=2 %s> %s\n",
			$n->[0] == 2 ? 'checked' : '', $text{'security_any'};
		printf "<input type=radio name=def_$i value=1 %s> %s\n",
			$n->[0] == 1 ? 'checked' : '', $text{'security_single'};
		printf "<input type=radio name=def_$i value=0 %s> %s\n",
			$n->[0] == 0 ? 'checked' : '';
		printf "<input name=mask_$i size=15 value='%s'></td>\n",
			$n->[0] == 0 ? $n->[1] : '';
		printf "<td><input name=net_$i size=15 value='%s'></td>\n",
			$n->[2];
		print "</tr>\n";
		$i++;
		}
	print "</table></td></tr>\n";
	}

&show_server_security();

print "</table></td></tr></table>\n";
print "<input type=submit value='$text{'security_ok'}'></form>\n";
print "<hr>\n";
&footer("", $text{'index_return'});

   0707010001fd6d000081a40000000000000002000000013ac038be0000025c000000200000000000000000000000000000001a00000003reloc/nis/edit_server.cgi #!/usr/local/bin/perl
# edit_server.cgi
# Display NIS server settings

require './nis-lib.pl';
&header($text{'server_title'}, "");
print "<hr>\n";

if (&get_nis_support() < 2) {
	print "<p>$text{'server_enis'}<p>\n";
	}
else {
	print "<form action=save_server.cgi>\n";
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'server_header'}</b></td> </tr>\n";
	print "<tr $cb> <td><table width=100%>\n";

	&show_server_config();

	print "</table></td></tr></table>\n";
	print "<input type=submit value='$text{'server_ok'}'></form>\n";
	}
print "<hr>\n";
&footer("", $text{'index_return'});

0707010001fd6e000081a40000000000000002000000013ac038be000005ec000000200000000000000000000000000000001c00000003reloc/nis/edit_services.cgi   #!/usr/local/bin/perl
# edit_services.cgi
# Edit a NIS services table entry

require './nis-lib.pl';
&ReadParse();
&header($text{'services_title'}, "");
print "<hr>\n";

($t, $lnums, $service) = &table_edit_setup($in{'table'}, $in{'line'}, '\s+');
print "<form action=save_services.cgi>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<input type=hidden name=line value='$in{'line'}'>\n";

print "<table border>\n";
print "<tr $tb> <td><b>$text{'services_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

($port, $proto) = split(/\//, $service->[1]);
print "<tr> <td><b>$text{'services_name'}</b></td>\n";
print "<td><input name=name size=15 value='$service->[0]'></td>\n";

&foreign_require("inetd", "inetd-lib.pl");
print "<td><b>$text{'services_proto'}</b></td>\n";
print "<td><select name=proto>\n";
foreach $p (&foreign_call("inetd", "list_protocols")) {
	printf "<option value=%s %s>%s\n",
		$p, $proto eq $p || !$proto && $p eq 'tcp' ? 'selected' : '',
		uc($p);
	}
print "</select></td> </tr>\n";

print "<tr> <td><b>$text{'services_port'}</b></td>\n";
print "<td><input name=port size=6 value='$port'></td> </tr>\n";

print "</table></td></tr></table>\n";
if (defined($in{'line'})) {
	print "<input type=submit value='$text{'save'}'>\n";
	print "<input type=submit name=delete value='$text{'delete'}'>\n";
	}
else {
	print "<input type=submit value='$text{'create'}'>\n";
	}
print "</form><hr>\n";
&footer("edit_tables.cgi?table=$in{'table'}", $text{'tables_return'});

0707010001fd6f000081a40000000000000002000000013ac038be000005ee000000200000000000000000000000000000001d00000003reloc/nis/edit_services2.cgi  #!/usr/local/bin/perl
# edit_services2.cgi
# Edit a NIS services table entry

require './nis-lib.pl';
&ReadParse();
&header($text{'services_title'}, "");
print "<hr>\n";

($t, $lnums, $service) = &table_edit_setup($in{'table'}, $in{'line'}, '\s+');
print "<form action=save_services2.cgi>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<input type=hidden name=line value='$in{'line'}'>\n";

print "<table border>\n";
print "<tr $tb> <td><b>$text{'services_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

($name, $proto) = split(/\//, $service->[0]);
print "<tr> <td><b>$text{'services_name'}</b></td>\n";
print "<td><input name=name size=15 value='$name'></td>\n";

&foreign_require("inetd", "inetd-lib.pl");
print "<td><b>$text{'services_proto'}</b></td>\n";
print "<td><select name=proto>\n";
foreach $p (&foreign_call("inetd", "list_protocols")) {
	printf "<option value=%s %s>%s\n",
		$p, $proto eq $p || !$proto && $p eq 'tcp' ? 'selected' : '',
		uc($p);
	}
print "</select></td> </tr>\n";

print "<tr> <td><b>$text{'services_port'}</b></td>\n";
print "<td><input name=port size=6 value='$service->[1]'></td> </tr>\n";

print "</table></td></tr></table>\n";
if (defined($in{'line'})) {
	print "<input type=submit value='$text{'save'}'>\n";
	print "<input type=submit name=delete value='$text{'delete'}'>\n";
	}
else {
	print "<input type=submit value='$text{'create'}'>\n";
	}
print "</form><hr>\n";
&footer("edit_tables.cgi?table=$in{'table'}", $text{'tables_return'});

  0707010001fd70000081a40000000000000002000000013ac038be00000688000000200000000000000000000000000000001a00000003reloc/nis/edit_switch.cgi #!/usr/local/bin/perl
# edit_switch.cgi
# Display client service switches

require './nis-lib.pl';
&header($text{'switch_title'}, "");
print "<hr>\n";
@switch = &get_nsswitch_conf();

print "<form action=save_switch.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'switch_service'}</b></td> ",
      "<td><b>$text{'switch_order'}</b></td> </tr>\n";

foreach $s (@switch) {
	local @o = split(/\s+/, $s->{'order'});
	$max = @o if (@o > $max);
	}

foreach $s (@switch) {
	local $sv = $s->{'service'};
	print "<tr $cb>\n";
	print "<td><b>",$text{"desc_$sv"} ? $text{"desc_$sv"} :
			$s->{'service'},"</b></td> <td>\n";
	if ($s->{'order'} =~ /\[/) {
		print "<input name=order_$sv size=60 value='$s->{'order'}'>\n";
		}
	else {
		local @o = split(/\s+/, $s->{'order'});
		local @sources = ("", split(/\s+/, $config{'sources'}));
		print "<table width=100% cellpadding=0 cellspacing=0><tr>\n";
		for($i=1; $i<=$max+1; $i++) {
			print "<td><select name=order_${sv}_${i}>\n";
			foreach $sc (@sources) {
				if ($sc =~ /(\S+)=(\S+)/ && $1 eq $sv) {
					printf "<option value='%s' %s>%s\n",
					    $2,
					    $o[$i-1] eq $2 ? 'selected' : '',
					    $text{"order_$2"};
					}
				elsif ($sc !~ /=/) {
					printf "<option value='%s' %s>%s\n",
					    $sc,
					    $o[$i-1] eq $sc ? 'selected' : '',
					    $text{"order_$sc"};
					}
				}
			print "</select></td>";
			}
		print "</tr></table>\n";
		}
	push(@list, $sv);
	print "</td> </tr>\n";
	}
print "</table>\n";
printf "<input type=hidden name=list value='%s'>\n",
	join(" ", @list);
print "<input type=submit value='$text{'save'}'></form>\n";
print "<hr>\n";
&footer("", $text{'index_return'});

0707010001fd71000081a40000000000000002000000013ac038be00001302000000200000000000000000000000000000001a00000003reloc/nis/edit_tables.cgi #!/usr/local/bin/perl
# nis_tables.cgi
# Allow the selection of and display a NIS table for editing

require './nis-lib.pl';
&header($text{'tables_title'}, "");
&ReadParse();
print "<hr>\n";

$mode = &get_server_mode();
if ($mode == 0 || &get_nis_support() < 2) {
	print "<p>$text{'tables_emaster'}<p><hr>\n";
	&footer("", $text{'index'});
	exit;
	}
elsif ($mode == 2) {
	print "<p>$text{'tables_eslave'}<p><hr>\n";
	&footer("", $text{'index'});
	exit;
	}

@tables = &list_nis_tables();
@domains = &unique(map { $_->{'domain'} } @tables);
$in{'table'} = int($in{'table'});

print "<form action=edit_tables.cgi>\n";
print "<input type=submit value='$text{'tables_switch'}'>\n";
print "<select name=table>\n";
foreach $t (@tables) {
	$t->{'desc'} = $text{"desc_".$t->{'table'}};
	$t->{'desc'} = $t->{'table'} if (!$t->{'desc'});
	$t->{'desc'} .= " ($t->{'domain'})" if (@domains > 1);
	printf "<option value=%d %s>%s\n",
		$t->{'index'}, $in{'table'} eq $t->{'index'} ? 'selected' : '',
		$t->{'desc'};
	}
print "</select></form>\n";

$t = $tables[$in{'table'}];
$type = $in{'text'} ? undef : $t->{'type'};
print "<h3>",&text('tables_header', $t->{'desc'},
		   "<tt>".join(" ", @{$t->{'files'}})."</tt>"),"</h3>\n";
if ($type eq 'hosts') {
	&show_nis_table([ $text{'hosts_ip'},
			  $text{'hosts_name'} ],
			$t, '\s+', [ 0, 1 ]);
	}
elsif ($type eq 'networks') {
	&show_nis_table([ $text{'networks_name'},
			  $text{'networks_ip'} ],
			$t, '\s+', [ 0, 1 ]);
	}
elsif ($type eq 'group' || $type eq 'group_shadow') {
	&show_nis_table([ $text{'group_name'},
			  $text{'group_gid'},
			  $text{'group_members'} ],
			$t, ':', [ 0, 2, 3 ], "width=100%");
	}
elsif ($type eq 'passwd_shadow' || $type eq 'passwd_shadow_full' ||
       $type eq 'passwd') {
	&show_nis_table([ $text{'passwd_name'},
			  $text{'passwd_uid'},
			  $text{'passwd_real'},
			  $text{'passwd_home'},
			  $text{'passwd_shell'} ],
			$t, ':', [ 0, 2, 4, 5, 6 ], "width=100%");
	}
elsif ($type eq 'services') {
	&show_nis_table([ $text{'services_name'},
			  $text{'services_proto'},
			  $text{'services_port'} ],
			$t, '[\s/]+', [ 0, 2, 1 ]);
	}
elsif ($type eq 'services2') {
	&show_nis_table([ $text{'services_name'},
			  $text{'services_proto'},
			  $text{'services_port'} ],
			$t, '[\s/]+', [ 0, 1, 2 ]);
	}
elsif ($type eq 'protocols') {
	&show_nis_table([ $text{'protocols_name'},
			  $text{'protocols_number'},
			  $text{'protocols_aliases'} ],
			$t, '\s+', [ 0, 1, -2 ]);
	}
elsif ($type eq 'netgroup') {
	&show_nis_table([ $text{'netgroup_name'},
			  $text{'netgroup_members'} ],
			$t, '\s+', [ 0, -1 ]);
	}
elsif ($type eq 'ethers') {
	&show_nis_table([ $text{'ethers_mac'},
			  $text{'ethers_ip'} ],
			$t, '\s+', [ 0, 1 ]);
	}
elsif ($type eq 'rpc') {
	&show_nis_table([ $text{'rpc_name'},
			  $text{'rpc_number'},
			  $text{'rpc_aliases'} ],
			$t, '\s+', [ 0, 1, -2 ]);
	}
elsif ($type eq 'netmasks') {
	&show_nis_table([ $text{'netmasks_net'},
			  $text{'netmasks_mask'} ],
			$t, '\s+', [ 0, 1 ]);
	}
elsif ($type eq 'aliases') {
	&show_nis_table([ $text{'aliases_from'},
			  $text{'aliases_to'} ],
			$t, '[\s:]+', [ 0, 1 ]);
	}
else {
	# Allow editing of file directly
	print "<form method=post action=save_file.cgi>\n";
	print "<input type=hidden name=table value='$in{'table'}'>\n";
	$fnum = 0;
	foreach $f (@{$t->{'files'}}) {
		print "<table border>\n";
		print "<tr $tb> <td><b>",&text('tables_file', "<tt>$f</tt>"),
		      "</b></td> </tr>\n";
		print "<tr $cb> <td><textarea name=data_$fnum rows=20 cols=80>";
		open(FILE, $f);
		print <FILE>;
		close(FILE);
		print "</textarea></td></tr></table><br>\n";
		$fnum++;
		}
	print "<input type=submit value='$text{'tables_ok'}'></form>\n";
	}
print "<hr>\n";
&footer("", $text{'index_return'});

# show_nis_table(&headers, &table, splitter, &columns, params)
sub show_nis_table
{
local @f = @{$_[1]->{'files'}};
local $empty = 1;
open(FILE, $f[0]);
while(<FILE>) {
	s/\r|\n//g;
	s/#.*$//;
	push(@lines, $_);
	$empty = 0 if (/\S/);
	}
close(FILE);
if (!$empty) {
	print "<table border $_[4]>\n";
	print "<tr $tb> ",(map { "<td><b>$_</b></td>" } @{$_[0]}),"</tr>\n";
	local ($c, @c) = @{$_[3]};
	local $lnum = 0;
	foreach $l (@lines) {
		local @r = split($_[2], $l);
		if ($l =~ /\S/) {
			print "<tr $cb><td><a href='edit_$t->{'type'}.cgi?",
			      "line=$lnum&table=$in{'table'}'>$r[$c]</a></td>\n";
			foreach $i (@c) {
				if ($i < 0) {
					print "<td>",join(" ", @r[-$i .. $#r]),
					      "<br></td>\n";
					}
				else {
					print "<td>$r[$i]<br></td>\n";
					}
				}
			}
		$lnum++;
		}
	print "</table>\n";
	}
else {
	print "<b>",&text('tables_none', $t->{'desc'}),"</b><p>\n";
	}
print "<a href='edit_$t->{'type'}.cgi?table=$in{'table'}'>",
      "$text{'tables_add'}</a>&nbsp;&nbsp;\n";
print "<a href='edit_tables.cgi?table=$in{'table'}&text=1'>",
      "$text{'tables_text'}</a><p>\n";
}

  0707010001fd72000081e40000000000000002000000013ac038be000002dc000000200000000000000000000000000000001400000003reloc/nis/index.cgi   #!/usr/local/bin/perl
# index.cgi
# Display icons for NIS functions

require './nis-lib.pl';
&header($text{'index_title'}, "", undef, 1, 1);
print "<hr>\n";

if (!&get_nis_support()) {
	print "<p>$text{'index_enis'}<p>\n";
	}
else {
	@icons =  ( "images/client.gif", "images/switch.gif",
		    "images/server.gif", "images/tables.gif",
		    "images/security.gif" );
	@titles = ( $text{'client_title'}, $text{'switch_title'},
		    $text{'server_title'}, $text{'tables_title'},
		    $text{'security_title'} );
	@links =  ( "edit_client.cgi", "edit_switch.cgi",
		    "edit_server.cgi", "edit_tables.cgi",
		    "edit_security.cgi" );
	&icons_table(\@links, \@titles, \@icons, 5);
	}

print "<hr>\n";
&footer("/", $text{'index'});

0707010002598c000041ed0000000000000001000000023ac03c2a00000000000000200000000000000000000000000000000f00000003reloc/nis/lang    0707010002598d000081a40000000000000002000000013ac038be000021fe000000200000000000000000000000000000001200000003reloc/nis/lang/en index_title=NIS Client and Server
index_return=NIS menu
index_enis=Your machine does not appear to have NIS client or server support installed.

client_title=NIS Client
client_header=NIS client configuration
client_domain=NIS domain
client_none=None (NIS disabled)
client_servers=NIS servers
client_broadcast=Find by broadcast
client_listed=Listed below ..
client_boot=Enable NIS client?
client_ok=Save and Apply
client_err=Failed to save NIS client
client_edomain=Missing or invalid domain name
client_eserver='$1' is not a valid server name
client_eypwhich=failed to bind to NIS domain
client_ehosts='$1' is not in the hosts file

switch_title=Client Services
switch_service=Service
switch_order=Lookup sources ordering
switch_err=Failed to save client services
switch_eorder=Missing ordering for $1

order_=&nbsp;
order_nisplus=NIS+
order_nis=NIS
order_dns=DNS
order_files=Files
order_db=DB Files
order_compat=NIS &amp; Files
order_hesiod=Hesiod
order_ldap=LDAP
order_user=User printers
order_xfn=XFN

server_title=NIS Server
server_header=NIS server options
server_boot=Enable NIS server?
server_slaves=Slave servers
server_domain=Serve NIS domain
server_type=Server type
server_master=Master NIS server
server_mheader=Master NIS server options
server_fheader=Master NIS files
server_slave=Slave of server
server_none=None
server_tables=NIS tables to serve
server_dns=Lookup missing hosts in DNS?
server_push=Push updates to slaves?
server_minuid=Minimum UID for 'Unix user' table records
server_mingid=Minimum GID for 'Unix group' table records
server_ok=Save and Apply
server_err=Failed to save NIS server
server_edomain='$1' is not a valid NIS domain
server_file=File for '$1'
server_domain_auto=Same as client
server_eminuid=Missing or invalid minimum UID
server_emingid=Missing or invalid minimum GID
server_efile=Missing filename for '$1'
server_eslave=Missing or invalid slave server
server_dir=NIS source files directory
server_pwdir=NIS password source files directory
server_already=NIS server already enabled
server_ebootdom=This NIS server cannot be enabled unless a domain is set.
server_solaris=Note - on Solaris, the client and server NIS domains are always the same, and the server cannot operate unless a domain is set.
server_none=None
server_edir=Invalid source files directory
server_edir=Invalid password source files directory
server_enis=Your machine does not appear to have NIS server support installed.

tables_title=NIS Tables
tables_switch=Edit NIS table :
tables_header=$1 NIS table from $2
tables_none=Table $1 contains no records.
tables_add=Add a new record
tables_ok=Save and Apply
tables_file=NIS records in $1
tables_return=NIS tables
tables_text=Edit table manually
tables_emaster=You cannot edit NIS tables because your system is not currently running as an master NIS server.
tables_eslave=You cannot edit NIS tables because your system is an NIS slave, which receives all tables from the master server.

desc_aliases=Sendmail aliases
desc_mail=Sendmail aliases
desc_hosts=Host addresses
desc_group=Unix groups
desc_passwd=Unix users
desc_ethers=Ethernet addresses
desc_amd.home=Automounter home
desc_amd.master=Automounter maps
desc_auto_home=Automounter home
desc_auto_master=Automounter maps
desc_automount=Automounter maps
desc_netgroup=Netgroups
desc_netgrp=Netgroups
desc_netid=NetIDs
desc_networks=Network addresses
desc_protocols=Network protocols
desc_rpc=RPC programs
desc_services=Network services
desc_sendmailvars=Sendmail variables
desc_publickey=Public keys
desc_publickeys=Public keys
desc_bootparams=Boot parameters
desc_shadow=Unix shadow passwords
desc_gshadow=Unix group passwords
desc_netmasks=Netmasks
desc_printcap=Printers
desc_adjunct=Extra user information
desc_printers=Printers
desc_ipnodes=IP nodes
desc_timezone=Timezones
desc_locale=Locales
desc_auto_local=Automounter local

hosts_title=Host Address
hosts_ip=IP address
hosts_name=Hostname
hosts_header=Host and address options
hosts_err=Failed to save host
hosts_eip=Missing or invalid IP address
hosts_ename=Missing or invalid hostname
hosts_aliases=Aliases

group_name=Group name
group_gid=Group ID
group_members=Group members
group_title=Unix Group
group_header=Unix group details
group_pass=Password
group_members=Members
group_none=No password required
group_encrypted=Pre-encrypted password
group_clear=Normal password
group_err=Failed to save group

passwd_name=Username
passwd_uid=User ID
passwd_real=Real name
passwd_home=Home directory
passwd_shell=Shell
passwd_title=Unix User
passwd_header1=User details
passwd_other=Other..
passwd_pass=Password
passwd_none1=Ask at first login
passwd_none2=No password required
passwd_nologin=No login allowed
passwd_encrypted=Pre-encrypted password
passwd_clear=Normal password
passwd_gid=Primary group ID
passwd_header2=Password Options
passwd_change=Password changed
passwd_never=Never
passwd_unknown=Unknown
passwd_expire=Expiry date
passwd_min=Minimum days
passwd_max=Maximum days
passwd_warn=Warning days
passwd_inactive=Inactive days
passwd_err=Failed to save user
passwd_ename=Missing or invalid username
passwd_euid=Missing or invalid UID
passwd_egid=Missing or invalid GID
passwd_ereal=Missing or invalid real name
passwd_ehome=Missing or invalid home directory
passwd_eshell=Missing or invalid shell
passwd_epass=Invalid pre-encrypted password
passwd_ewarn=Invalid number of warning days
passwd_emax=Invalid maximum number of days
passwd_emin=Invalid minimum number of days
passwd_einactive=Invalid number of inactive days
passwd_eexpiry=Invalid expiry date

services_name=Service name
services_proto=Protocol
services_port=Port
services_title=Network Service
services_header=Inetd network service options
services_err=Failed to save service
services_ename=Missing or invalid service name
services_eport=Missing or invalid port

protocols_name=Protocol name
protocols_number=Number
protocols_aliases=Aliases
protocols_title=Network Protocol
protocols_header=Network protocol options
protocols_err=Failed to save protocol
protocols_ename=Missing or invalid name
protocols_enumber=Missing or invalid number

netgroup_name=Netgroup name
netgroup_members=Members
netgroup_title=Network Group
netgroup_header=Network host group details
netgroup_host=Member host
netgroup_user=User
netgroup_domain=NIS domain
netgroup_any=Any
netgroup_none=None
netgroup_err=Failed to save netgroup
netgroup_ename=Missing or invalid netgroup name
netgroup_ehost=Missing or invalid host in row $1
netgroup_euser=Missing or invalid user in row $1
netgroup_edom=Missing or invalid NIS domain in row $1

ethers_mac=Ethernet address
ethers_ip=IP address
ethers_title=Ethernet Address
ethers_header=Ethernet mapping options
ethers_err=Failed to save ethernet address
ethers_emac=Invalid ethernet address
ethers_eip=Invalid IP address

rpc_name=Program name
rpc_number=Number
rpc_aliases=Aliases
rpc_title=RPC Program
rpc_header=RPC program details
rpc_err=Failed to save RPC program
rpc_ename=Missing or invalid program name
rpc_enumber=Missing or invalid number

networks_title=Network Address
networks_ip=IP address
networks_name=Network name
networks_header=Network and address options
networks_err=Failed to save network
networks_eip=Missing or invalid IP address
networks_ename=Missing or invalid name
networks_aliases=Aliases

netmasks_net=Network address
netmasks_mask=Netmask
netmasks_title=Netmask
netmasks_header=Network mask details
netmasks_err=Failed to save netmask
netmasks_enet=Missing or invalid network address
netmasks_emask=Missing or invalid netmask

aliases_from=Address
aliases_to=Alias to
aliases_title=Sendmail Alias
aliases_header=Sendmail alias details
aliases_err=Failed to save alias
aliases_efrom=Missing or invalid address
aliases_eto=Missing to addresses

security_title=Server Security
security_header=NIS server security options
security_ok=Save and Apply
security_enis=You cannot edit NIS security options because your machine is not currently running as an NIS server.
security_nets=Allowed clients
security_net=Network/host address
security_mask=Netmask
security_single=Single host
security_any=Any host
security_err=Failed to save server security
security_enet='$1' is not a valid network address
security_emask='$1' is not a valid netmask
security_port=Clients must be on trusted port?
security_maps=Client map restrictions
security_hosts=Hosts
security_map=NIS tables
security_sec=Restriction
security_mangle=Mangle field
security_none=None
security_tall=All
security_sec_none=None
security_sec_port=Trusted port
security_sec_deny=Deny access
security_sec_des=Require DES
security_ehost='$1' is not a valid hostname
security_emap='$1' is not a valid NIS table
security_efield='$1' is not a valid field number

  0707010002598e000081a40000000000000002000000013ac038be000025c5000000200000000000000000000000000000001200000003reloc/nis/lang/pl index_title=Klient i serwer NIS
index_return=Menu NIS
index_enis=Wygl眃a na to, 縠 w&nbsp;systemie nie zainstalowano ani klienta ani serwera NIS. 

client_title=Klient NIS
client_header=Konfiguracja klienta NIS
client_domain=Domena NIS
client_none=Brak (NIS wy潮czony)
client_servers=Serwery NIS
client_broadcast=Szukaj rozg硂szeniowo
client_listed=Wymienione poni縠j ..
client_boot=W潮czy klienta NIS?
client_ok=Zachowaj i zastosuj
client_err=Nie uda硂 si zachowa klienta NIS
client_edomain=Nie podana lub niepoprawna nazwa domeny
client_eserver='$1' nie jest poprawn nazw serwera
client_eypwhich=Nie uda硂 si przy潮czy do domeny NIS
client_ehosts='$1' nie jest poprawnym plikiem host體

switch_title=Us硊gi klienckie
switch_service=Us硊ga
switch_order=Kolejno舵 przeszukiwania 紃骴e
switch_err=Nie uda硂 si zachowa us硊g klienckich
switch_eorder=Brak kolejno禼i dla $1

order_=&nbsp;
order_nisplus=NIS+
order_nis=NIS
order_dns=DNS
order_files=Pliki
order_db=Pliki DB
order_compat=NIS i&nbsp;pliki
order_hesiod=Hesiod
order_ldap=LDAP
order_user=Drukarki u縴tkownik體
order_xfn=XFN

server_title=Serwer NIS
server_header=Opcje serwera NIS
server_boot=W潮czy serwer NIS?
server_slaves=Serwery zapasowe
server_domain=Udost阷nia domen NIS
server_type=Rodzaj serwera
server_master=Podstawowy serwer NIS
server_mheader=Opcje podstawowego serwera NIS
server_fheader=Podstawowe pliki NIS
server_slave=Zapasowy dla serwera
server_none=Brak
server_tables=Udost阷niane tabele NIS
server_dns=Poszukiwa brakuj眂ych host體 w&nbsp;DNS-ie?
server_push=Przekazywa aktualizacje serwerom zapasowym?
server_minuid=Minimalny UID dla rekord體 tabeli 'U縴tkownicy Uniksa'
server_mingid=Minimalny GID dla rekord體 tabeli 'Grupy Uniksa'
server_ok=Zachowaj i zastosuj
server_err=Nie uda硂 si zachowa serwera NIS
server_edomain='$1' nie jest poprawn domen NIS
server_file=Plik dla '$1'
server_domain_auto=Taki sam jak klient
server_eminuid=Nie podany lub niepoprawny minimalny UID
server_emingid=Nie podany lub niepoprawny minimalny GID
server_efile=Brak nazwy pliku dla '$1'
server_eslave=Nie podany lub niepoprawny serwer zapasowy
server_dir=Katalog plik體 紃骴硂wych NIS
server_pwdir=Katalog plik體 紃骴硂wych hase NIS
server_already=Serwer NIS ju w潮czony
server_ebootdom=Tego serwera NIS nie mo縩a w潮czy dop髃i nie zostanie ustawiona domena.
server_solaris=Uwaga - na Solarisie domena NIS dla klienta i&nbsp;serwera jest zawsze ta sama i&nbsp;serwer nie mo縠 dzia砤 dop髃i nie zostanie ustawiona domena.
server_none=Brak
server_edir=Niepoprawny katalog plik體 紃骴硂wych
server_edir=Niepoprawny katalog plik體 紃骴硂wych hase
server_enis=Wygl眃a na to, 縠 w&nbsp;systemie nie zainstalowano obs硊gi serwera NIS.

tables_title=Tabele NIS
tables_switch=Zmie tebel NIS&nbsp;:
tables_header=Tabela $1 NIS z&nbsp;$2
tables_none=Tabela $1 nie zawiera 縜dnego rekordu.
tables_add=Dodaj nowy rekord
tables_ok=Zachowaj i zastosuj
tables_file=Rekordy NIS w&nbsp;$1
tables_return=tabel NIS
tables_text=Zmie tebel r阠znie
tables_emaster=Nie mo縠sz zmienia tabel NIS, gdy Tw骿 system nie dzia砤 obecnie jako podstawowy serwer NIS.
tables_eslave=Nie mo縠sz zmienia tabel NIS, gdy Tw骿 system jest zapasowym serwerem NIS, kt髍y pobiera wszystkie tabele z&nbsp;serwera podstawowego.

desc_aliases=Aliasy Sendmaila
desc_mail=Aliasy Sendmaila
desc_hosts=Adresy host體
desc_group=Grupy Uniksa
desc_passwd=U縴tkownicy Uniksa
desc_ethers=Adresy ethernetowe
desc_amd.home=Katalogi domowe automountera
desc_amd.master=Mapy automountera
desc_auto_home=Katalog domowy automountera
desc_auto_master=Mapy automountera
desc_automount=Mapy automountera
desc_netgroup=Grupy sieciowe
desc_netgrp=Grupy sieciowe
desc_netid=ID sieci
desc_networks=Adresy sieci
desc_protocols=Protoko硑 sieciowe
desc_rpc=Programy RPC
desc_services=Us硊gi sieciowe
desc_sendmailvars=Zmienne Sendmaila
desc_publickey=Klucze publiczne
desc_publickeys=Klucze publiczne
desc_bootparams=Parametry startowe
desc_shadow=Ukryte has砤 Uniksa
desc_gshadow=Has砤 dla grup Uniksa
desc_netmasks=Maski sieci
desc_printcap=Drukarki
desc_adjunct=Dodatkowe informacje o&nbsp;u縴tkownikach
desc_printers=Drukarki
desc_ipnodes=W陑硑 IP
desc_timezone=Strefy czasowe
desc_locale=Lokalizacje
desc_auto_local=Lokalny automonter

hosts_title=Adresy host體
hosts_ip=Adres IP
hosts_name=Nazwa hosta
hosts_header=Opcje hosta i&nbsp;adresu
hosts_err=Nie uda硂 sie zachowa hosta
hosts_eip=Nie podany lub niepoprawny adres IP
hosts_ename=Nie podana lub niepoprawna nazwa hosta
hosts_aliases=Aliasy

group_name=Nazwa grupy
group_gid=ID grupy
group_members=Cz硂nkowie grupy
group_title=Grupa Uniksa
group_header=Dane grupy Uniksa
group_pass=Has硂
group_members=Cz硂nkowie
group_none=Has硂 nie wymagane
group_encrypted=Has硂 uprzednio zaszyfrowane
group_clear=Zwyk砮 has硂
group_err=Nie uda硂 sie zachowa grupy

passwd_name=Nazwa u縴tkownika
passwd_uid=ID u縴tkownika
passwd_real=Rzeczywista nazwa
passwd_home=Katalog domowy
passwd_shell=Pow硂ka
passwd_title=U縴tkownik Uniksa
passwd_header1=Dane u縴tkownika
passwd_other=Inne..
passwd_pass=Has硂
passwd_none1=Zapytaj przy pierwszym logowaniu
passwd_none2=Kas硂 nie wymagane
passwd_nologin=Logowanie zabronione
passwd_encrypted=Has硂 uprzednio zaszyfrowane
passwd_clear=Zwyk砮 has硂
passwd_gid=ID grupy podstawowej
passwd_header2=Opcje has砤
passwd_change=Has硂 zmieniono
passwd_never=Nigdy
passwd_unknown=Nie wiadomo
passwd_expire=Data wa縩o禼i
passwd_min=Minimum dni
passwd_max=Maksimum dni
passwd_warn=Ostrze縠nie dni
passwd_inactive=Blokada po dniach
passwd_err=Nie uda硂 si zachowa u縴tkownika
passwd_ename=Nie podana lub niepoprawna nazwa u縴tkownika
passwd_euid=Nie podany lub niepoprawny UID
passwd_egid=Nie podany lub niepoprawny GID
passwd_ereal=Nie podana lub niepoprawna rzeczywista nazwa
passwd_ehome=Nie podany lub niepoprawny katalog domowy
passwd_eshell=Nie podana lub niepoprawna pow硂ka
passwd_epass=Niepoprawne zaszyfrowane has硂
passwd_ewarn=Niepoprawna liczba dni ostrze縠nia
passwd_emax=Niepoprawna maksymalna liczba dni
passwd_emin=Niepoprawna minimalna liczba dni
passwd_einactive=Niepoprawna liczba dni do zablokowania
passwd_eexpiry=Niepoprawna data wa縩o禼i

services_name=Nazwa us硊gi
services_proto=Protok蟪
services_port=Port
services_title=Us硊ga sieciowa
services_header=Opcje us硊gi sieciowej inetd
services_err=Nie uda硂 si zachowa us硊gi
services_ename=Nie podana lub niepoprawna nazwa us硊gi
services_eport=Nie podany lub niepoprawny port

protocols_name=Nazwa protoko硊
protocols_number=Numer
protocols_aliases=Aliasy
protocols_title=Protok蟪 sieciowy
protocols_header=Opcje protoko硊 sieciowego
protocols_err=Nie uda硂 si zachowa protoko硊
protocols_ename=Nie podana lub niepoprawna nazwa
protocols_enumber=Nie podany lub niepoprawny numer

netgroup_name=Nazwa grupy sieciowej
netgroup_members=Cz硂nkowie
netgroup_title=Grupa sieciowa
netgroup_header=Dane sieciowej grupy host體
netgroup_host=Hosty-cz硂nkowie
netgroup_user=U縴tkownik
netgroup_domain=Domena NIS
netgroup_any=Dowolna
netgroup_none=痑dna
netgroup_err=Nie uda硂 si zachowa grupy sieciowej
netgroup_ename=Nie podana lub niepoprawna nazwa grupy sieciowej
netgroup_ehost=Nie podany lub niepoprawny host w&nbsp;wierszu $1
netgroup_euser=Nie podany lub niepoprawny u縴tkownik w&nbsp;wierszu $1
netgroup_edom=Nie podana lub niepoprawna domena NIS w&nbsp;wierszu $1

ethers_mac=Adres ethernetowy
ethers_ip=Adres IP
ethers_title=Adres ethernetowy
ethers_header=Opcje mapowania ethernetowego
ethers_err=Nie uda硂 si zachowa adresu ethernetowego
ethers_emac=Niepoprawny adres ethernetowy
ethers_eip=Niepoprawny adres IP

rpc_name=Nazwa programu
rpc_number=Numer
rpc_aliases=Aliasy
rpc_title=Program RPC
rpc_header=Dane programu RPC
rpc_err=Nie uda硂 si zachowa programu RPC
rpc_ename=Nie podana lub niepoprawna nazwa programu
rpc_enumber=Nie podany lub niepoprawny numer

networks_title=Adres sieci
networks_ip=Adres IP
networks_name=Nazwa sieci
networks_header=Opcje sieci i&nbsp;adresu
networks_err=Nie uda硂 si zachowa sieci
networks_eip=Nie podany lub niepoprawny adres IP
networks_ename=Nie podana lub niepoprawna nazwa
networks_aliases=Aliasy

netmasks_net=Adres sieci
netmasks_mask=Maska sieci
netmasks_title=Maska sieci
netmasks_header=Dane maski sieci
netmasks_err=Nie uda硂 si zachowa maski sieci
netmasks_enet=Nie podany lub niepoprawny adres sieci
netmasks_emask=Nie podana lub niepoprawna maska

aliases_from=Adres
aliases_to=Kieruj do
aliases_title=Alias Sendmaila
aliases_header=Dane aliasu Sendmaila
aliases_err=Nie uda硂 si zachowa aliasu
aliases_efrom=Nie podany lub niepoprawny adres
aliases_eto=Nie podany adres docelowy

security_title=Zabezpieczenia serwera
security_header=Opcje zabezpiecze serwera NIS
security_ok=Zachowaj i zastosuj
security_enis=Nie mo縠sz zmieniac opcji zabezpiecze serwera NIS, gdy na Twojej maszynie nie dzia砤 obecnie serwer NIS.
security_nets=Dopuszczalni klienci
security_net=Adres sieci/hosta
security_mask=Maska sieci
security_single=Pojedy馽zy host
security_any=Dowolny host
security_err=Nie uda硂 si zachowa server security
security_enet='$1' nie jest porawnym adresem sieci
security_emask='$1' nie jest poprawn mask
security_port=Klienci tylko na zaufanym porcie
security_maps=Ograniczenia mapowania klient體
security_hosts=Hosty
security_map=Tabele NIS
security_sec=Ograniczenie
security_mangle=Mangle field
security_none=Brak
security_tall=Wszystkie
security_sec_none=Brak
security_sec_port=Zaufany port
security_sec_deny=Zabro dost阷u
security_sec_des=Wymagaj DES-a
security_ehost='$1' nie jest poprawn nazw hosta
security_emap='$1' nie jest porawn tabel NIS
security_efield='$1' nie jest poprawnym numerem pola
   0707010002598f000081a40000000000000002000000013ac038be00002588000000200000000000000000000000000000001200000003reloc/nis/lang/sv index_title=NIS-klient och -server
index_return=NIS-meny
index_enis=Det verkar inte som att n錱ot NIS-klient- eller -serverst鰀 har installerats p din maskin.

client_title=NIS-klient
client_header=Inst鋖lningar f鰎 NIS-klient
client_domain=NIS-dom鋘
client_none=Ingen (NIS avst鋘gt)
client_servers=NIS-servrar
client_broadcast=Hitta dem med hj鋖p av broadcast
client_listed=Angivna nedan ...
client_boot=Sl p NIS-klienten?
client_ok=Spara och ta i drift
client_err=Det gick inte att spara NIS-klienten
client_edomain=Dom鋘namnet saknas eller 鋜 felaktigt
client_eserver='$1' 鋜 inte ett giltigt servernamn
client_eypwhich=det gick inte att binda till en NIS-dom鋘
client_ehosts='$1' finns inte i hosts-filen

switch_title=Klienttj鋘ster
switch_service=Tj鋘st
switch_order=K鋖luppslagningsprenumeration
switch_err=Det gick inte att spara klienttj鋘sterna
switch_eorder=Du har inte angivit n錱on prenumeration f鰎 $1

order_=&nbsp;
order_nisplus=NIS+
order_nis=NIS
order_dns=DNS
order_files=Filer
order_db=DB-filer
order_compat=NIS &amp; filer
order_hesiod=Hesiod
order_ldap=LDAP
order_user=Skrivare
order_xfn=XFN

server_title=NIS-server
server_header=Inst鋖lningar f鰎 NIS-server
server_boot=Sl p NIS-server?
server_slaves=Slavservrar
server_domain=Betj鋘a NIS-dom鋘
server_type=Servertyp
server_master=NIS-masterserver
server_mheader=Inst鋖lningar f鰎 NIS-masterserver
server_fheader=NIS-masterfiler
server_slave=Slav till server
server_none=Ingen
server_tables=Betj鋘a NIS-tabeller
server_dns=Sl upp saknade datorer i DNS?
server_push=Skicka ut uppdateringar till slavarna?
server_minuid=L鋑sta UID f鰎 'Unix-anv鋘dare'-tabellposter
server_mingid=L鋑sta GID f鰎 'Unix-grupper'-tabellposter
server_ok=Spara och ta i drift
server_err=Det gick inte att spara NIS-server
server_edomain='$1' 鋜 inte en giltig NIS-dom鋘
server_file=Fil f鰎 '$1'
server_domain_auto=Samma som f鰎 klienten
server_eminuid=L鋑sta UID saknas eller 鋜 felaktigt
server_emingid=L鋑sta GID saknas eller 鋜 felaktigt
server_efile=Du har inte angivit n錱ot filnamn f鰎 '$1'
server_eslave=Slavserver saknas eller har angivits felaktigt
server_dir=Katalog f鰎 NIS-k鋖lfiler
server_pwdir=Katalog f鰎 NIS-l鰏enordsk鋖lfiler
server_already=NIS-servern 鋜 redan p
server_ebootdom=Den h鋜 NIS-servern g錼 inte att sl p om du inte f鰎st anger en dom鋘.
server_solaris=Observera att klient- och serverdom鋘 f鰎 NIS alltid 鋜 samma p Solaris, och servern fungerar inte om du inte anger en dom鋘.
server_none=Ingen
server_edir=Ogiltig katalog f鰎 k鋖lfiler
server_edir=Ogiltig katalog f鰎 l鰏enordsk鋖lfiler
server_enis=Det verkar inte som att n錱ot NIS-serverst鰀 har installerats p din maskin.

tables_title=NIS-tabeller
tables_switch=膎dra NIS-tabell
tables_header=$1 NIS-tabell fr錸 $2
tables_none=Tabell $1 inneh錶ler inga poster.
tables_add=L鋑g till en post
tables_ok=Spara och ta i drift
tables_file=NIS-poster i $1
tables_return=NIS-tabeller
tables_text=膎dra tabellen f鰎 hand
tables_emaster=Du f錼 inte 鋘dra i NIS-tabellerna, eftersom systemet just nu inte k鰎 som en NIS-masterserver.
tables_eslave=Du f錼 inte 鋘dra i NIS-tabellerna eftersom systemet 鋜 en NIS-slav, som f錼 alla tabeller fr錸 sin masterserver.

desc_aliases=Sendmail-alias
desc_mail=Sendmail-alias
desc_hosts=Datoradresser
desc_group=Unix-grupper
desc_passwd=Unix-anv鋘dare
desc_ethers=Ethernet-adresser
desc_amd.home=Hemkatalog f鰎 automounter
desc_amd.master=Automounter maps
desc_auto_home=Hemkatalog f鰎 automounter
desc_auto_master=Automounter maps
desc_automount=Automounter maps
desc_netgroup=N鋞grupper
desc_netgrp=N鋞grupper
desc_netid=N鋞-ID
desc_networks=N鋞verksadresser
desc_protocols=N鋞verksprotokoll
desc_rpc=RPC-program
desc_services=N鋞verkstj鋘ster
desc_sendmailvars=Sendmail-variabler
desc_publickey=Publika nycklar
desc_publickeys=Publika nycklar
desc_bootparams=Startparametrar
desc_shadow=Unix-skuggl鰏enord
desc_gshadow=Unix-gruppl鰏enord
desc_netmasks=N鋞masker
desc_printcap=Skrivare
desc_adjunct=Extra anv鋘darinformation
desc_printers=Skrivare
desc_ipnodes=IP-noder

hosts_title=Datoradress
hosts_ip=IP-adress
hosts_name=Datornamn
hosts_header=Inst鋖lningar f鰎 dator och adress
hosts_err=Det gick inte att spara datorn
hosts_eip=IP-adress saknas eller 鋜 felaktig
hosts_ename=Datornamn saknas eller 鋜 felaktigt
hosts_aliases=Alias

group_name=Gruppnamn
group_gid=Grupp-ID
group_members=Gruppmedlemmar
group_title=Unix-grupp
group_header=Information om Unix-grupp
group_pass=L鰏enord
group_members=Medlemmar
group_none=Ingen l鰏enord beh鰒s
group_encrypted=F鰎krypterat l鰏enord
group_clear=Normalt l鰏enord
group_err=Det gick inte att spara gruppen

passwd_name=Anv鋘darnamn
passwd_uid=Anv鋘dar-ID
passwd_real=Verkligt namn
passwd_home=Hemkatalog
passwd_shell=Skal
passwd_title=Unix-anv鋘dare
passwd_header1=Information om anv鋘dare
passwd_other=講rigt ...
passwd_pass=L鰏enord
passwd_none1=Fr錱a vid f鰎sta inloggning
passwd_none2=Inget l鰏enord beh鰒s
passwd_nologin=Inloggning 鋜 inte till錿en
passwd_encrypted=F鰎krypterat l鰏enord
passwd_clear=Normalt l鰏enord
passwd_gid=Grupp-ID f鰎 prim鋜 grupp
passwd_header2=Inst鋖lningar f鰎 l鰏enord
passwd_change=L鰏enordet 鋘drat
passwd_never=Aldrig
passwd_unknown=Ok鋘t
passwd_expire=Datum d l鰏enordet upph鰎 att g鋖la
passwd_min=Minimalt antal dagar
passwd_max=Maximalt antal dagar
passwd_warn=Varna innan (antal dagar)
passwd_inactive=Inaktiv (antal dagar)
passwd_err=Det gick inte att spara anv鋘daren
passwd_ename=Anv鋘darnamn saknas eller 鋜 felaktigt
passwd_euid=UID saknas eller 鋜 felaktigt
passwd_egid=GID saknas eller 鋜 felaktigt
passwd_ereal=Verkligt namn saknas eller 鋜 felaktigt
passwd_ehome=Hemkatalog saknas eller 鋜 felaktig
passwd_eshell=Skal saknas eller 鋜 felaktigt
passwd_epass=Det f鰎krypterade l鰏enordet 鋜 ogiltigt
passwd_ewarn=Antalet varningsdagar 鋜 ogiltigt
passwd_emax=Det maximala antalet dagar 鋜 ogiltigt
passwd_emin=Det minimala antalet dagar 鋜 ogiltigt
passwd_einactive=Antalet dagar f鰎 inaktivitet 鋜 ogiltigt
passwd_eexpiry=Datum d l鰏enordet upph鰎 att g鋖la 鋜 ogiltigt

services_name=Tj鋘stenamn
services_proto=Protokoll
services_port=Port
services_title=N鋞verkstj鋘st
services_header=Inst鋖lningar f鰎 inetd-n鋞verkstj鋘st
services_err=Det gick inte att spara tj鋘sten
services_ename=Tj鋘stenamnet saknas eller 鋜 felaktigt
services_eport=Port saknas eller 鋜 felaktig

protocols_name=Protokollnamn
protocols_number=Nummer
protocols_aliases=Alias
protocols_title=N鋞verksprotokoll
protocols_header=Inst鋖lningar f鰎 n鋞verksprotokoll
protocols_err=Det gick inte att spara protokoll
protocols_ename=Namnet saknas eller 鋜 felaktigt
protocols_enumber=Numret saknas eller 鋜 felaktigt

netgroup_name=N鋞gruppsnamn
netgroup_members=Medlemmar
netgroup_title=N鋞verksgrupp
netgroup_header=Information om n鋞verksdatorgrupp
netgroup_host=Medlemsdator
netgroup_user=Anv鋘dare
netgroup_domain=NIS-dom鋘
netgroup_any=Vilken som helst
netgroup_none=Ingen
netgroup_err=Det gick inte att spara n鋞gruppen
netgroup_ename=N鋞gruppsnamn saknas eller 鋜 felaktigt
netgroup_ehost=P rad $1 saknas dator eller ocks 鋜 den felaktigt angiven
netgroup_euser=P rad $1 saknas anv鋘dare eller ocks 鋜 den felaktigt angiven
netgroup_edom=P rad $1 saknas NIS-dom鋘 eller ocks 鋜 den felaktigt angiven

ethers_mac=Ethernet-adress
ethers_ip=IP-adress
ethers_title=Ethernet-adress
ethers_header=Inst鋖lningar f鰎 ethernet-uppslagning
ethers_err=Det gick inte att spara ethernet-adressen
ethers_emac=Ethernet-adressen 鋜 ogiltig
ethers_eip=IP-adressen 鋜 ogiltig

rpc_name=Programnamn
rpc_number=Nummer
rpc_aliases=Alias
rpc_title=RPC-program
rpc_header=Information om RPC-program
rpc_err=Det gick inte att spara RPC-program
rpc_ename=Programnamnet saknas eller 鋜 felaktigt
rpc_enumber=Numret saknas eller 鋜 felaktigt

networks_title=N鋞verksadress
networks_ip=IP-adress
networks_name=N鋞verksnamn
networks_header=Inst鋖lningar f鰎 n鋞verk och adresser
networks_err=Det gick inte att spara n鋞verket
networks_eip=IP-adressen saknas eller 鋜 felaktigt angiven
networks_ename=Namnet saknas eller 鋜 felaktigt
networks_aliases=Alias

netmasks_net=N鋞verksadress
netmasks_mask=N鋞mask
netmasks_title=N鋞mask
netmasks_header=Information om n鋞masken
netmasks_err=Det gick inte att spara n鋞masken
netmasks_enet=N鋞verksadressen saknas eller 鋜 felaktig
netmasks_emask=N鋞masken saknas eller 鋜 felaktig

aliases_from=Adress
aliases_to=Alias f鰎
aliases_title=Sendmail-alias
aliases_header=Information om sendmail-alias
aliases_err=Det gick inte att spara alias
aliases_efrom=Adressen saknas eller 鋜 felaktig
aliases_eto=Mottagaradress saknas

security_title=Serverskydd
security_header=Inst鋖lningar f鰎 NIS-serverskydd
security_ok=Spara och ta i drift
security_enis=Det verkar inte som att n錱ot NIS-serverst鰀 finns installerat p maskinen.
security_nets=Till錿na klienter
security_net=N鋞verks/datoradress
security_mask=N鋞mask
security_single=Enstaka dator
security_any=Alla datorer
security_err=Det gick inte att spara inst鋖lningar f鰎 serverskydd
security_enet='$1' 鋜 inte en giltig n鋞verksadress
security_emask='$1' 鋜 inte en giltig n鋞mask
security_port=M錽te klienter anv鋘da p錶itliga portar?
security_maps=Begr鋘sningar f鰎 klienter
security_hosts=Datorer
security_map=NIS-tabeller
security_sec=Begr鋘sning
security_mangle=F鰎vr鋘g f鋖t
security_none=Inget
security_tall=Alla
security_sec_none=Ingen
security_sec_port=P錶itlig port
security_sec_deny=Neka 錿komst
security_sec_des=Kr鋠a DES
security_ehost='$1' 鋜 inte ett giltigt datornamn
security_emap='$1' 鋜 inte en giltig NIS-tabell
security_efield='$1' 鋜 inte ett giltigt f鋖tnummer

0707010001fd73000081a40000000000000002000000013ac038be000000cf000000200000000000000000000000000000001600000003reloc/nis/module.info name=NIS
desc=NIS Client and Server
desc_pl=Klient i&nbsp;serwer NIS
category=system
os_support=redhat-linux open-linux debian-linux suse-linux solaris
depends=inetd useradmin
desc_sv=NIS-klient och -server
 0707010001fd74000081a40000000000000002000000013ac038be00001bc0000000200000000000000000000000000000001500000003reloc/nis/nis-lib.pl  # nis-lib.pl
# Common functions for NIS client and server management

do '../web-lib.pl';
&init_config();
do "$gconfig{'os_type'}-lib.pl";
&foreign_require("init", "init-lib.pl");

# check_on_boot(action)
# Returns 1 if some action is run at boot, 0 otherwise
sub check_on_boot
{
local %iconfig = &foreign_config("init");
local @boot = &foreign_call("init", "get_inittab_runlevel");
local $boot = 0;
foreach $s (&foreign_call("init", "action_levels", "S", $_[0])) {
	local ($l, $p) = split(/\s+/, $s);
	$boot = 1 if (&indexof($l, @boot) >= 0);
	}
local %daemon;
if ($boot && $iconfig{'daemons_dir'} &&
    &read_env_file("$iconfig{'daemons_dir'}/$_[0]", \%daemon)) {
	$boot = lc($daemon{'ONBOOT'}) eq 'yes' ? 1 : 0;
	}
return $boot;
}

# enable_on_boot(action)
# Make some action run at boot time
sub enable_on_boot
{
local %iconfig = &foreign_config("init");
local @boot = &foreign_call("init", "get_inittab_runlevel");
local $boot = 0;
foreach $s (&foreign_call("init", "action_levels", "S", $_[0])) {
	local ($l, $p) = split(/\s+/, $s);
	$boot = 1 if (&indexof($l, @boot) >= 0);
	}
&foreign_call("init", "add_rl_action", $_[0], $boot[0], "S",
	      "9" x $iconfig{'order_digits'}) if (!$boot);
local %daemon;
if ($iconfig{'daemons_dir'} &&
    &read_env_file("$iconfig{'daemons_dir'}/$_[0]", \%daemon)) {
	$daemon{'ONBOOT'} = 'yes';
	&write_env_file("$iconfig{'daemons_dir'}/$_[0]", \%daemon);
	}
}

# disable_on_boot(action)
# Make some action not run at boot time
sub disable_on_boot
{
local %iconfig = &foreign_config("init");
if ($iconfig{'daemons_dir'} &&
    &read_env_file("$iconfig{'daemons_dir'}/$_[0]", \%daemon)) {
	$daemon{'ONBOOT'} = 'no';
	&write_env_file("$iconfig{'daemons_dir'}/$_[0]", \%daemon);
	}
else {
	foreach $s (&foreign_call("init", "action_levels", "S", $_[0])) {
		local @s = split(/\s+/, $s);
		&foreign_call("init", "delete_rl_action", $_[0], $s[0], "S");
		}
	}
}

# init_script(action)
# Returns the full path to some init script
sub init_script
{
local %iconfig = &foreign_config("init");
return "$iconfig{'init_dir'}/$_[0]";
}

# get_nsswitch_conf()
# Parses lines of nsswitch.conf into an array
sub get_nsswitch_conf
{
local @rv;
open(SWITCH, $config{'nsswitch_conf'});
while(<SWITCH>) {
	s/\r|\n//g;
	s/#.*$//g;
	if (/^\s*(\S+):\s*(.*)/) {
		local $sw = { 'service' => $1,
			      'order' => $2 };
		push(@rv, $sw);
		}
	}
close(SWITCH);
return @rv;
}

# save_nsswitch(service, order)
# Updates the line for some service in nsswitch.conf
sub save_nsswitch
{
local $lref = &read_file_lines($config{'nsswitch_conf'});
foreach $l (@$lref) {
	if ($l =~ /^\s*(\S+):/ && $1 eq $_[0]) {
		$l = "$_[0]:\t$_[1]";
		last;
		}
	}
}

# table_edit_setup(table, line, splitter)
# Returns &table, &lnums, line1, line2, ...
sub table_edit_setup
{
local @tables = &list_nis_tables();
local $t = $tables[$_[0]];
return ( $t ) if (!defined($_[1]));
local @lnums = ( $_[1] );
local $lref = &read_file_lines($t->{'files'}->[0]);
local @lines = ( [ split($_[2], $lref->[$_[1]]) ] );
local $i;
for($i=1; $t->{'files'}->[$i]; $i++) {
	local $lref2 = &read_file_lines($t->{'files'}->[$i]);
	local $lnum = 0;
	foreach $l (@$lref2) {
		local @line2 = split($_[2], $l);
		if ($line2[0] eq $lines[0]->[0]) {
			push(@lnums, $lnum);
			push(@lines, \@line2);
			last;
			}
		$lnum++;
		}
	}
return ($t, \@lnums, @lines);
}

# table_add(&table, separator, &record, ...)
# Adds a record to an NIS table
sub table_add
{
local $i = 2;
foreach $f (@{$_[0]->{'files'}}) {
	local $lref = &read_file_lines($f);
	push(@$lref, join($_[1], @{$_[$i++]}));
	}
&flush_file_lines();
}

# table_delete(&table, &lnums)
# Delete a record from an NIS table
sub table_delete
{
local $i = 0;
foreach $f (@{$_[0]->{'files'}}) {
	local $lref = &read_file_lines($f);
	splice(@$lref, $_[1]->[$i], 1);
	$i++;
	}
&flush_file_lines();
}

# table_update(&table, &lnums, separator, &record, ...)
# Modify a record in an NIS table
sub table_update
{
local $i = 0;
foreach $f (@{$_[0]->{'files'}}) {
	local $lref = &read_file_lines($f);
	splice(@$lref, $_[1]->[$i], 1, join($_[2], @{$_[$i+3]}));
	$i++;
	}
&flush_file_lines();
}

# date_input(day, month, year, prefix)
sub date_input
{
print "<input name=$_[3]d size=3 value='$_[0]'>";
print "/<select name=$_[3]m>\n";
local $m;
foreach $m (1..12) {
	printf "<option value=%d %s>%s\n",
		$m, $_[1] eq $m ? 'selected' : '', $text{"smonth_$m"};
	}
print "</select>";
print "/<input name=$_[3]y size=5 value='$_[2]'>";
print &date_chooser_button("$_[3]d", "$_[3]m", "$_[3]y");
}

# parse_ypserv_conf()
# Returns &opts, &maps
sub parse_ypserv_conf
{
local (%opts, @hosts);
local $lnum = 0;
open(CONF, $ypserv_conf);
while(<CONF>) {
	s/\r|\n//g;
	s/#.*$//;
	if (/^\s*([^:\s]+):\s*(yes|no)/) {
		# Found an option
		$opts{$1} = { 'name' => $1,
			      'value' => $2 eq 'yes' ? 1 : 0,
			      'line' => $lnum };
		}
	elsif (/^\s*([^:\s]+)\s*:\s*([^:\s]+)\s*:\s*([^:\s]+)(\s*:\s*([^:\s]+))?(\s*:\s*([^:\s]+))?/) {
		# Found a host line
		push(@hosts, { 'host' => $1,
			       'map' => $2,
			       'sec' => $3,
			       'mangle' => $5 eq 'yes' ? 1 : 0,
			       'field' => $7 eq '' ? 2 : $7,
			       'line' => $lnum } );
		}
	$lnum++;
	}
close(CONF);
return (\%opts, \@hosts);
}

# parse_yp_makefile()
# Returns hashes of makefile variables and rules
sub parse_yp_makefile
{
# First parse joined lines
local $lnum = 0;
local (@lines, $llast);
open(MAKE, $yp_makefile);
while(<MAKE>) {
	s/\r|\n//g;
	local $slash = (s/\\$//);
	s/#.*$//;
	if ($llast) {
		$llast->{'value'} .= " $_";
		$llast->{'eline'} = $lnum;
		}
	else {
		push(@lines, { 'value' => $_,
			       'line' => $lnum,
			       'eline' => $lnum });
		}
	$llast = $slash ? $lines[$#lines] : undef;
	$lnum++;
	}
close(MAKE);

# Then look for variables and rules
local ($i, %var, %rule);
for($i=0; $i<@lines; $i++) {
	if ($lines[$i]->{'value'} =~ /^\s*(\S+)\s*=\s*(.*)/) {
		# Found a variable
		$var{$1} = { 'name' => $1,
			     'value' => $2,
			     'type' => 0,
			     'line' => $lines[$i]->{'line'},
			     'eline' => $lines[$i]->{'eline'} };
		}
	elsif ($lines[$i]->{'value'} =~ /^\s*(\S+):\s*(.*)/) {
		# Found a makefile rule
		$rule{$1} = { 'name' => $1,
			      'value' => $2,
			      'type' => 1,
			      'line' => $lines[$i]->{'line'},
			      'eline' => $lines[$i]->{'eline'} };
		if ($lines[$i+1]->{'value'} =~ /^\s+/) {
			$rule{$1}->{'code'} = $lines[$i+1]->{'value'};
			$rule{$1}->{'eline'} = $lines[$i+1]->{'eline'};
			$i++;
			}
		}
	}
return ( \%var, \%rule );
}

# expand_vars(string, &vars)
sub expand_vars
{
local $rv = $_[0];
while($rv =~ /^(.*)\$\(([A-Za-z0-9_]+)\)(.*)$/) {
#	if (substr($_[1]->{$2}->{'value'}, 0, 7) eq '$(shell') {
#		$rv = $1."\0(".$2.")".$3;
#		}
#	else {
		$rv = $1.$_[1]->{$2}->{'value'}.$3;
#		}
	}
#$rv =~ s/\0/\$/g;
return $rv;
}

# update_makefile(&old, value, [value]);
sub update_makefile
{
local $lref = &read_file_lines($yp_makefile);
local @n;
if ($_[0]->{'type'} == 0) {
	@n = ( "$_[0]->{'name'} = $_[1]" );
	}
else {
	@n = ( "$_[0]->{'name'}: $_[1]", $_[2] );
	}
splice(@$lref, $_[0]->{'line'}, $_[0]->{'eline'} - $_[0]->{'line'} + 1, @n);
}

1;

0707010001fd75000081a40000000000000002000000013ac038be000007be000000200000000000000000000000000000001900000003reloc/nis/nisupdate.conf  # 		Sample Rules for the nis_update Script

# Copy this file into a subdirectory with your NIS domain's name as
# .nisupdate.conf and edit it there to reflect the maps you have.

# For every possible transformation complex ( e.g. passwd+shadow ->
# *.byname+.byuid) there is a rule that is identified by a free-form string
# that is printed upon its execution. The contents of $rule{"$idstr"} determine
# the actual action to be taken.

# Rule syntax: "<func> <src>[,<src2>,...]  <dest>[,<dest2>,...] [func-options]"
# options must be last because they're optional :-)
# they are a comma separated list for each target:
# 0-9: key field
# 'n': exclude key field from value string
# ':': field separator (group, no shadow). passwd is special anyway.
#
# default is "0" for single DBs, "0,1" for dual DBs (*.byname,*.bynumber)

# I assume you want at least passwd and group.
# Un-comment the rest or add your own.

# $rule{"aliases"} =
#     "mkdb aliases mail.aliases n0:";

# $rule{"amd.home"} =
#     "mkdb amd.home amd.home n0";

# $rule{"amd.master"} =
#     "mkdb amd.master amd.master n0";

# $rule{"ethers"} =
#     "mkdb2 ethers ethers.byname,ethers.byaddr ";

$rule{"group"} =
    "mkdb2 group group.bygid,group.byname 2:,0:";

# $rule{"group.shadow"} =
#    "pwunconv group,gshadow group.bygid,group.byname";

# $rule{"hosts"} =
#     "mkdb2 hosts hosts.byname,hosts.byaddr 1,0";

# $rule{"netgroup"} =
#     "revnetgroup netgroup netgroup,netgroup.byuser,netgroup.byhost";

# $rule{"netid"} =
#     "mkdb netid netid.byname ";

# $rule{"networks"} =
#     "mkdb2 networks networks.byname,networks.byaddr 0,1";

$rule{"passwd"} =
    "pwunconv passwd,shadow passwd.byname,passwd.byuid,shadow.byname";

# $rule{"protocols"} =
#     "mkdb2 protocols protocols.byname,protocols.bynumber";

# $rule{"rpc"} =
#     "mkdb2 rpc rpc.byname,rpc.bynumber 1,0";

# $rule{"services"} =
#     "mkdb2 services services.byservicename,services.byservicenumber";

# $rule{""} = "mkdb  0";

  0707010001fd76000081a40000000000000002000000013ac038be0000126b000000200000000000000000000000000000002500000003reloc/nis/old_edit_passwd_shadow.cgi  #!/usr/local/bin/perl
# edit_passwd_shadow.cgi
# Edit a NIS password/shadow files entry

require './nis-lib.pl';
require 'timelocal.pl';
&ReadParse();
&header($text{'passwd_title'}, "");
print "<hr>\n";

# Build list of available shells
@shlist = ("/bin/sh", "/bin/csh", "/bin/false");
open(SHELLS, "/etc/shells");
while(<SHELLS>) {
	s/\r|\n//g;
	s/#.*$//;
	push(@shlist, $_) if (/\S/);
	}
close(SHELLS);

($t, $lnums, $passwd, $shadow) =
	&table_edit_setup($in{'table'}, $in{'line'}, ':');
print "<form action=save_passwd_shadow.cgi>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<input type=hidden name=line value='$in{'line'}'>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'passwd_header1'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'passwd_name'}</b></td>\n";
print "<td><input name=name size=10 value=\"$passwd->[0]\"></td>\n";

print "<td><b>$text{'passwd_uid'}</b></td>\n";
print "<td><input name=uid size=10 value=\"$passwd->[2]\"></td> </tr>\n";

print "<tr> <td><b>$text{'passwd_real'}</b></td>\n";
print "<td><input name=real size=20 value=\"$passwd->[4]\"></td>\n";

print "<td><b>$text{'passwd_home'}</b></td>\n";
print "<td><input name=home size=25 value=\"$passwd->[5]\"> ",
      &file_chooser_button("home", 1),"</td> </tr>\n";

print "<tr> <td valign=top><b>$text{'passwd_shell'}</b></td>\n";
print "<td valign=top><select name=shell>\n";
foreach $s (&unique(@shlist)) {
	printf "<option %s>%s\n",
		$passwd->[6] eq $s ? 'selected' : '', $s;
	$found++ if ($passwd->[6] eq $s);
	}
printf "<option %s>%s\n", $found ? '' : 'selected', $text{'passwd_other'};
print "</select><br>\n";
printf "<input name=other size=20 value='%s'> %s</td>\n",
	$found ? '' : $passwd->[6], &file_chooser_button("other");

%uconfig = &foreign_config("useradmin");
print "<td valign=top rowspan=2><b>$text{'passwd_pass'}</b></td> <td rowspan=2>\n";
printf"<input type=radio name=passmode value=0 %s> %s<br>\n",
	$passwd->[0] eq "" ? "checked" : "",
	$uconfig{'empty_mode'} ? $text{'passwd_none1'} : $text{'passwd_none2'};
printf"<input type=radio name=passmode value=1 %s> $text{'passwd_nologin'}<br>\n",
	$passwd->[0] eq $uconfig{'lock_string'} ? "checked" : "";
print "<input type=radio name=passmode value=3> $text{'passwd_clear'}\n";
printf "<input %s name=pass size=15><br>\n",
	$uconfig{'passwd_stars'} ? "type=password" : "";
printf "<input type=radio name=passmode value=2 %s> $text{'passwd_encrypted'}\n",
	$passwd->[0] && $passwd->[0] ne $uconfig{'lock_string'} ? "checked" :"";
printf "<input name=encpass size=13 value=\"%s\">\n",
	$passwd->[0] && $passwd->[0] ne $uconfig{'lock_string'} ? $pass : "";
print "</td> </tr>\n";

print "<tr> <td><b>$text{'passwd_gid'}</b></td>\n";
print "<td><input name=gid size=10 value='$passwd->[3]'></td> </tr>\n";

print "</table></td></tr></table><p>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'passwd_header2'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'passwd_change'}</b></td>\n";
if ($shadow->[2] && $shadow->[2] >= 0) {
	@tm = localtime(timelocal(gmtime($shadow->[2] * 60*60*24)));
	printf "<td>%s/%s/%s</td>\n",
		$tm[3], $text{"smonth_".($tm[4]+1)}, $tm[5]+1900;
	}
elsif ($in{'line'} eq "") { print "<td>$text{'passwd_never'}</td>\n"; }
else { print "<td>$text{'passwd_unknown'}</td>\n"; }

print "<td><b>$text{'passwd_expire'}</b></td>\n";
if ($shadow->[7] && $shadow->[7] >= 0) {
	@tm = localtime($shadow->[7] * 60*60*24);
	$eday = $tm[3];
	$emon = $tm[4]+1;
	$eyear = $tm[5]+1900;
	}
print "<td>";
&date_input($eday, $emon, $eyear, 'expire');
print "</td>\n";

print "<tr> <td><b>$text{'passwd_min'}</b></td>\n";
printf "<td><input size=5 name=min value=\"%s\"></td>\n",
	$shadow->[3] < 0 ? "" : $shadow->[3];

print "<td><b>$text{'passwd_max'}</b></td>\n";
printf "<td><input size=5 name=max value=\"%s\"></td></tr>\n",
	$shadow->[4] < 0 ? "" : $shadow->[4];

print "<tr> <td><b>$text{'passwd_warn'}</b></td>\n";
printf "<td><input size=5 name=warn value=\"%s\"></td>\n",
	$shadow->[5] < 0 ? "" : $shadow->[5];

print "<td><b>$text{'passwd_inactive'}</b></td>\n";
printf "<td><input size=5 name=inactive value=\"%s\"></td></tr>\n",
	$shadow->[6] < 0 ? "" : $shadow->[6];

print "<input type=hidden name=flags value='$shadow->[8]'>\n";
print "</table></td></tr></table>\n";

if (defined($in{'line'})) {
	print "<input type=submit value='$text{'save'}'>\n";
	print "<input type=submit name=delete value='$text{'delete'}'>\n";
	}
else {
	print "<input type=submit value='$text{'create'}'>\n";
	}
print "</form><hr>\n";
&footer("edit_tables.cgi?table=$in{'table'}", $text{'tables_return'});

 0707010001fd77000081a40000000000000002000000013ac038be00002abf000000200000000000000000000000000000001c00000003reloc/nis/open-linux-lib.pl   # open-linux-lib.pl
# NIS functions for caldera linux NIS client and server

$nis_config_dir = "/etc/nis";
$ypserv_conf = "/etc/ypserv.conf";
$pid_file = "/var/run/ypserv.pid";

# get_nis_support()
# Returns 0 for no support, 1 for client only, or 2 for client & server
sub get_nis_support
{
if (!&has_command("ypbind")) {
	return 0;
	}
elsif (!-x "/usr/libexec/nis/rpc.ypserv") {
	return 1;
	}
else {
	return 2;
	}
}

# get_client_config()
# Returns a hash ref containg details of the client's NIS settings
sub get_client_config
{
local $nis;
open(CONF, $config{'client_conf'});
while(<CONF>) {
	s/\r|\n//g;
	s/#.*$//g;
	if (/^\s*domain\s*(\S+)\s*broadcast/i) {
		$nis->{'domain'} = $1;
		$nis->{'broadcast'}++;
		}
	elsif (/^\s*domain\s*(\S+)\s*server\s*(\S+)/i) {
		$nis->{'domain'} = $1;
		push(@{$nis->{'servers'}}, $2);
		}
	elsif (/^\s*ypserver\s*(\S+)/) {
		push(@{$nis->{'servers'}}, $1);
		}
	}
close(CONF);
return $nis;
}

# save_client_config(&config)
# Saves and applies the NIS client configuration in the give hash.
# Returns an error message if any, or undef on success.
sub save_client_config
{
# Save the config file
open(CONF, ">$config{'client_conf'}");
if ($_[0]->{'domain'}) {
	if ($_[0]->{'broadcast'}) {
		print CONF "domain $_[0]->{'domain'} broadcast\n";
		}
	else {
		local @s = @{$_[0]->{'servers'}};
		print CONF "domain $_[0]->{'domain'} server ",shift(@s),"\n";
		foreach $s (@s) {
			print CONF "ypserver $s\n";
			}
		}
	}
close(CONF);
if ($_[0]->{'domain'}) {
	&enable_on_boot("nis-client");
	}
else {
	&disable_on_boot("nis-client");
	}

# Apply by running the init script
local $init = &init_script("nis-client");
&system_logged("$init stop >/dev/null 2>&1");
if ($_[0]->{'domain'}) {
	&system_logged("domainname \"$_[0]->{'domain'}\"");
	local $out = &backquote_logged("$init start 2>&1");
	if ($?) { return "<pre>$out</pre>"; }
	$out = `ypwhich 2>&1`;
	if ($?) { return $text{'client_eypwhich'}; }
	}
else {
	&system_logged("domainname '' >/dev/null 2>&1");
	}
return undef;
}

# show_server_config()
# Display a form for editing NIS server options
sub show_server_config
{
local @domains;
opendir(DIR, $nis_config_dir);
foreach $f (readdir(DIR)) {
	push(@domains, $f) if ($f !~ /^\./ &&
			       -r "$nis_config_dir/$f/.nisupdate.conf");
	}
closedir(DIR);
@domains = ( "" ) if (!@domains);

local $boot = &check_on_boot("nis-server");
print "<tr> <td valign=top><b>$text{'server_boot'}</b></td>\n";
printf "<td valign=top><input type=radio name=boot value=1 %s> %s\n",
	$boot ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=boot value=0 %s> %s</td> </tr>\n",
	$boot ? '' : 'checked', $text{'no'};

local $n = 0;
foreach $d (@domains) {
	print "<tr> <td colspan=4><hr></td> </tr>\n";
	print "<input type=hidden name=old_$n value='$d'>\n";
	print "<tr> <td valign=top><b>$text{'server_domain'}</b></td>\n";
	printf "<td valign=top>".
	       "<input type=radio name=domain_def_$n value=1 %s> %s\n",
		$d ? '' : 'checked', $text{'server_none'};
	printf "<input type=radio name=domain_def_$n value=0 %s>\n",
		$d ? 'checked' : '';
	print "<input name=domain_$n size=30 value='$d'></td>\n";

	local @conf = &parse_nisupdate_conf(
		$d ? "$nis_config_dir/$d/.nisupdate.conf"
		   : "nisupdate.conf");
	print "<td valign=top><b>$text{'server_tables'}</b></td>\n";
	print "<td><select name=tables_$n size=6 multiple>\n";
	foreach $c (@conf) {
		printf "<option value=%s %s>%s\n",
			$c->{'table'}, $c->{'active'} ? 'selected' : '',
			$c->{'table'};
		}
	print "</select></td> </tr>\n";

	$n++;
	}

}

# parse_server_config()
# Parse and save the NIS server options
sub parse_server_config
{
local ($n, $anydomains);
for($n=0; defined($in{"old_$n"}); $n++) {
	# Update the domain name directory
	$in{"domain_def_$n"} || $in{"domain_$n"} =~ /^[A-Za-z0-9\.\-]+$/ ||
		&error(&text('server_edomain', $in{"domain_$n"}));
	local $domain = $in{"domain_def_$n"} ? undef : $in{"domain_$n"};
	local $old = $in{"old_$n"};
	if (!$old && !$domain) {
		# No domain before, and none chosen
		next;
		}
	elsif (!$old && $domain) {
		# New domain added
		mkdir("$nis_config_dir/$domain", 0755);
		&system_logged("cp nisupdate.conf ".
			       "$nis_config_dir/$domain/.nisupdate.conf");
		}
	elsif ($old && !$domain) {
		# Domain taken away
		&system_logged("rm -rf $nis_config_dir/$old");
		next;
		}
	elsif ($old ne $domain) {
		# Domain renamed
		&rename_logged("$nis_config_dir/$old",
			       "$nis_config_dir/$domain");
		}
	$anydomains++;

	# Update the config file
	local $file = "$nis_config_dir/$domain/.nisupdate.conf";
	local @conf = &parse_nisupdate_conf($file);
	local $lref = &read_file_lines($file);
	local %table;
	map { $table{$_}++ } split(/\0/, $in{"tables_$n"});
	foreach $c (@conf) {
		if ($c->{'active'} && !$table{$c->{'table'}}) {
			# Need to deactivate a table
			splice(@$lref, $c->{'line'},
			       $c->{'eline'} - $c->{'line'} + 1,
			       map { "#$_" } @{$c->{'data'}});
			}
		elsif (!$c->{'active'} && $table{$c->{'table'}}) {
			# Need to activate a table
			splice(@$lref, $c->{'line'},
			       $c->{'eline'} - $c->{'line'} + 1,
			       @{$c->{'data'}});
			}
		}
	&flush_file_lines();
	}

# Start the NIS server and rebuild maps if needed
if ($in{'boot'}) {
	&enable_on_boot("nis-server");
	}
else {
	&disable_on_boot("nis-server");
	}
local $init = &init_script("nis-server");
&system_logged("$init stop >/dev/null 2>&1");
if ($anydomains && $in{'boot'}) {
	&system_logged("$init start >/dev/null 2>&1");
	}
&apply_table_changes();
}

# get_server_mode()
# Returns 0 if the NIS server is inactive, 1 if active as a master, or 2 if
# active as a slave.
sub get_server_mode
{
local $boot = &check_on_boot("nis-server");
local $dc;
opendir(DIR, $nis_config_dir);
foreach $f (readdir(DIR)) {
	$dc++ if ($f !~ /^\./ && -r "$nis_config_dir/$f/.nisupdate.conf");
	}
closedir(DIR);
if (!$boot || !$dc) {
	return 0;
	}
else {
	return 1;
	}
}

# parse_nisupdate_conf(file)
sub parse_nisupdate_conf
{
local @rv;
local $lnum = 0;
open(CONF, $_[0]);
while(<CONF>) {
	s/\r|\n//g;
	if (/^\s*(#*)(\s*\$rule{['"]([^"']+)['"]}.*)/) {
		local $text = $2;
		local $table = { 'table' => $3,
				 'active' => $1 eq '',
				 'data' => [ $2 ],
				 'line' => $lnum,
			 	 'eline' => $lnum };
		while(!/;\s*$/) {
			($_ = <CONF>) || last;
			s/^\s*#+//; s/\r|\n//g;
			push(@{$table->{'data'}}, $_);
			$text .= " $_";
			$lnum++;
			$table->{'eline'} = $lnum;
			}
		$table->{'value'} = $2 if ($text =~ /\$rule{['"]([^"']+)['"]}\s*=\s*["']([^"']+)["']/);
		push(@rv, $table);
		}
	$lnum++;
	}
close(CONF);
return @rv;
}

# list_nis_tables()
# Returns a list of structures of all NIS tables
sub list_nis_tables
{
local @rv;
opendir(DIR, $nis_config_dir);
foreach $d (readdir(DIR)) {
	push(@domains, $d) if ($d !~ /^\./ &&
			       -r "$nis_config_dir/$d/.nisupdate.conf");
	}
closedir(DIR);
foreach $d (@domains) {
	local @conf = &parse_nisupdate_conf(
			"$nis_config_dir/$d/.nisupdate.conf");
	foreach $t (@conf) {
		next if (!$t->{'active'});
		local $table = { 'table' => $t->{'table'},
				 'domain' => $d,
				 'index' => scalar(@rv) };
		if ($t->{'value'} =~ /^(\S+)\s+(\S+)/) {
			$table->{'files'} = [ map { "$nis_config_dir/$d/$_" }
					 	  split(/,/, $2) ];
			}
		if ($t->{'table'} eq 'passwd') {
			$table->{'type'} = 'passwd_shadow';
			}
		elsif ($t->{'table'} eq 'services') {
			$table->{'type'} = 'services2';
			}
		else {
			$table->{'type'} = $t->{'table'};
			}
		push(@rv, $table);
		}
	}
return @rv;
}

# apply_table_changes()
# Do whatever is necessary for the table text files to be loaded into
# the NIS server
sub apply_table_changes
{
&system_logged("(cd /var/yp ; make) >/dev/null 2>&1 </dev/null");
}

# show_server_security()
# Show NIS server security-related options
sub show_server_security
{
local ($opts, $hosts) = &parse_ypserv_conf();

local $port = $opts->{'xfr_check_port'} ? $opts->{'xfr_check_port'}->{'value'}
					: 1;
print "<tr> <td><b>$text{'security_port'}</b></td>\n";
printf "<td><input type=radio name=port value=1 %s> %s\n",
	$port ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=port value=0 %s> %s</td> </tr>\n",
	$port ? '' : 'checked', $text{'no'};

print "<tr> <td valign=top><b>$text{'security_maps'}</b></td>\n";
print "<td><table border>\n";
print "<tr $tb> <td><b>$text{'security_hosts'}</b></td> ",
      "<td><b>$text{'security_map'}</b></td> ",
      "<td><b>$text{'security_sec'}</b></td> ",
      "<td><b>$text{'security_mangle'}</b></td> </tr>\n";
local $i = 0;
foreach $h (@$hosts, { }) {
	print "<tr $cb>\n";
	print "<td><input name=host_$i size=20 value='$h->{'host'}'></td>\n";
	printf "<td><input type=radio name=map_def_$i value=1 %s> %s\n",
		$h->{'map'} eq '*' ? 'checked' : '', $text{'security_tall'};
	printf "<input type=radio name=map_def_$i value=0 %s>\n",
		$h->{'map'} eq '*' ? '' : 'checked';
	printf "<input name=map_$i size=20 value='%s'></td>\n",
		$h->{'map'} eq '*' ? '' : $h->{'map'};
	print "<td><select name=sec_$i>\n";
	foreach $s ('none', 'port', 'deny', 'des') {
		printf "<option value=%s %s>%s\n",
			$s, $h->{'sec'} eq $s ? 'selected' : '',
			$text{"security_sec_$s"};
		}
	print "</select></td>\n";
	printf "<td><input name=mangle_$i type=radio value=0 %s> %s\n",
		$h->{'mangle'} ? '' : 'checked', $text{'security_none'};
	printf "<input name=mangle_$i type=radio value=1 %s> %s\n",
		$h->{'mangle'} ? 'checked' : '';
	print "<input name=field_$i size=4 value='$h->{'field'}'></td>\n";
	print "</tr>\n";
	$i++;
	}
print "</table></td> </tr>\n";
}

# parse_server_security()
# Save and apply server security options
sub parse_server_security
{
# Save security settings
local ($opts, $hosts) = &parse_ypserv_conf();
local $lref = &read_file_lines($ypserv_conf);
local $xfr = $opts->{'xfr_check_port'};
local $line = $in{'port'} ? 'xfr_check_port: yes' : 'xfr_check_port: no';
if ($xfr) {
	$lref->[$xfr->{'line'}] = $line;
	}
else {
	push(@$lref, $line);
	}

# Save host restrictions
local ($i, $j, $offset);
for($i=0; defined($in{"host_$i"}); $i++) {
	next if (!$in{"host_$i"});
	$in{"host_$i"} =~ /^[^:\s]+$/ ||
		&error(&text('security_ehost', $in{"host_$i"}));
	$in{"map_def_$i"} || $in{"map_$i"} =~ /^[^:\s]+$/ ||
		&error(&text('security_emap', $in{"map_$i"}));
	$in{"field_$i"} =~ /^\d*$/ ||
		&error(&text('security_efield', $in{"field_$i"}));
	local @line = ( $in{"host_$i"},
		        $in{"map_def_$i"} ? "*" : $in{"map_$i"},
		        $in{"sec_$i"},
		        $in{"mangle_$i"} ? "yes" : "no" );
	push(@line, $in{"field_$i"})
		if ($in{"field_$i"} && $in{"field_$i"} != 2);
	local $old = $hosts->[$j++];
	if ($old) {
		$lref->[$old->{'line'}] = join(":", @line);
		}
	else {
		push(@$lref, join(":", @line));
		}
	}
while($hosts->[$j]) {
	splice(@$lref, $hosts->[$j]->{'line'}-$offset, 1);
	$j++; $offset++;
	}
&flush_file_lines();

# Apply the changes
if (open(PID, $pid_file) && <PID> =~ /(\d+)/ && kill(0, $1)) {
	&kill_logged('HUP', $1);
	close(PID);
	}
}

1;

 0707010001fd78000081a40000000000000002000000013ac038be000034e3000000200000000000000000000000000000001e00000003reloc/nis/redhat-linux-lib.pl # redhat-linux-lib.pl
# NIS functions for redhat linux NIS client and server

$yp_makefile = "/var/yp/Makefile";
$ypserv_conf = "/etc/ypserv.conf";
$pid_file = "/var/run/ypserv.pid";

# get_nis_support()
# Returns 0 for no support, 1 for client only, or 2 for client & server
sub get_nis_support
{
if (!&has_command("ypbind")) {
	return 0;
	}
elsif (!&has_command("ypserv")) {
	return 1;
	}
else {
	return 2;
	}
}

# get_client_config()
# Returns a hash ref containg details of the client's NIS settings
sub get_client_config
{
local $nis;
open(CONF, $config{'client_conf'});
while(<CONF>) {
	s/\r|\n//g;
	s/#.*$//g;
	if (/^\s*domain\s*(\S+)\s*broadcast/i) {
		$nis->{'broadcast'}++;
		}
	elsif (/^\s*domain\s*(\S+)\s*server\s*(\S+)/i) {
		push(@{$nis->{'servers'}}, $2);
		}
	elsif (/^\s*ypserver\s*(\S+)/) {
		push(@{$nis->{'servers'}}, $1);
		}
	}
close(CONF);
local %network;
&read_env_file("/etc/sysconfig/network", \%network);
$nis->{'domain'} = $network{'NISDOMAIN'};
return $nis;
}

# save_client_config(&config)
# Saves and applies the NIS client configuration in the give hash.
# Returns an error message if any, or undef on success.
sub save_client_config
{
# Save the config file
open(CONF, ">$config{'client_conf'}");
if ($_[0]->{'domain'}) {
	if ($_[0]->{'broadcast'}) {
		print CONF "domain $_[0]->{'domain'} broadcast\n";
		}
	else {
		local @s = @{$_[0]->{'servers'}};
		print CONF "domain $_[0]->{'domain'} server $s[0]\n";
		foreach $s (@s) {
			print CONF "ypserver $s\n";
			}
		}
	}
close(CONF);
local %network;
&read_env_file("/etc/sysconfig/network", \%network);
if ($_[0]->{'domain'}) { $network{'NISDOMAIN'} = $_[0]->{'domain'}; }
else { delete($network{'NISDOMAIN'}); }
&write_env_file("/etc/sysconfig/network", \%network);
if ($_[0]->{'domain'}) {
	&enable_on_boot("ypbind");
	}
else {
	&disable_on_boot("ypbind");
	}

# Apply by setting the domainname and running the init script
&system_logged("domainname '$_[0]->{'domain'}' >/dev/null 2>&1");
local $init = &init_script("ypbind");
&system_logged("$init stop >/dev/null 2>&1");
if ($_[0]->{'domain'}) {
	local $out = &backquote_logged("$init start 2>&1");
	if ($?) { return "<pre>$out</pre>"; }
	}
return undef;
}

@nis_files = ( "passwd", "shadow", "group", "gshadow", "adjunct",
	       "aliases", "ethers", "bootparams", "hosts", "networks",
	       "printcap", "protocols", "publickeys", "rpc", "services",
	       "netgroup", "netid", "auto_master", "auto_home" );

@nis_tables = ( "passwd", "group", "hosts", "rpc", "services", "netid",
		"protocols", "netgrp", "mail", "shadow", "publickey", "networks",
		"ethers", "bootparams", "printcap", "amd.home", "auto.master",
		"auto.home", "passwd.adjunct" );

# show_server_config()
# Display a form for editing NIS server options
sub show_server_config
{
local ($var, $rule) = &parse_yp_makefile();

local $boot = &check_on_boot("ypserv");
print "<tr> <td><b>$text{'server_boot'}</b></td>\n";
printf "<td><input type=radio name=boot value=1 %s> %s\n",
	$boot ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=boot value=0 %s> %s</td>\n",
	$boot ? '' : 'checked', $text{'no'};

local $dom = $var->{'LOCALDOMAIN'}->{'value'};
print "<td><b>$text{'server_domain'}</b></td>\n";
printf "<td><input type=radio name=domain_auto value=1 %s> %s\n",
	$dom =~ /`.*domainname`/ ? 'checked' : '', $text{'server_domain_auto'};
printf "<input type=radio name=domain_auto value=0 %s>\n",
	$dom =~ /`.*domainname`/ ? '' : 'checked';
printf "<input name=domain size=20 value='%s'></td> </tr>\n",
	$dom =~ /`.*domainname`/ ? '' : $dom;

print "<tr> <td><b>$text{'server_type'}</b></td>\n";
printf "<td colspan=3><input type=radio name=type value=1 %s> %s\n",
	$config{'slave'} ? '' : 'checked', $text{'server_master'};
printf "<input type=radio name=type value=0 %s> %s\n",
	$config{'slave'} ? 'checked' : '', $text{'server_slave'};
printf "<input name=slave size=30 value='%s'></td> </tr>\n", $config{'slave'};

print "</table></td></tr></table><p>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'server_mheader'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'server_dns'}</b></td>\n";
printf "<td><input type=radio name=b value='-b' %s> %s\n",
	$var->{'B'}->{'value'} eq '-b' ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=b value='' %s> %s</td>\n",
	$var->{'B'}->{'value'} eq '-b' ? '' : 'checked', $text{'no'};

print "<td><b>$text{'server_push'}</b></td>\n";
printf "<td><input type=radio name=nopush value=false %s> %s\n",
	$var->{'NOPUSH'}->{'value'} eq 'true' ? '' : 'checked', $text{'yes'};
printf "<input type=radio name=nopush value=true %s> %s</td> </tr>\n",
	$var->{'NOPUSH'}->{'value'} eq 'true' ? 'checked' : '', $text{'no'};

local %inall;
map { $inall{$_}++ } split(/\s+/, $rule->{'all'}->{'value'});
print "<tr> <td rowspan=2 valign=top><b>$text{'server_tables'}</b></td>\n";
print "<td rowspan=2><select multiple size=5 name=tables>\n";
foreach $t (grep { $rule->{$_} } @nis_tables) {
	printf "<option value=%s %s>%s\n",
		$t, $inall{$t} ? 'selected' : '', $t;
	}
print "</select></td>\n";

print "<td><b>$text{'server_minuid'}</b></td>\n";
printf "<td><input name=minuid size=10 value='%s'></td> </tr>\n",
	$var->{'MINUID'}->{'value'};

print "<td><b>$text{'server_mingid'}</b></td>\n";
printf "<td><input name=mingid size=10 value='%s'></td> </tr>\n",
	$var->{'MINGID'}->{'value'};

print "<tr> <td><b>$text{'server_slaves'}</b></td>\n";
open(SLAVES, "/var/yp/ypservers");
while(<SLAVES>) {
	s/\s//g;
	push(@slaves, $_) if ($_);
	}
close(SLAVES);
printf "<td colspan=3><input name=slaves size=60 value='%s'></td> </tr>\n",
	join(" ", @slaves);

print "</table></td></tr></table><p>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'server_fheader'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

local $i = 0;
foreach $t (@nis_files) {
	local $f = &expand_vars($var->{uc($t)}->{'value'}, $var);
	next if (!$f);
	print "<tr>\n" if ($i%2 == 0);
	print "<td><b>",&text('server_file', $text{"desc_$t"} ? $text{"desc_$t"}
							      : $t),"</b></td>\n";
	print "<td><input name=$t size=30 value='$f'></td>\n";
	print "</tr>\n" if ($i++%2 == 1);
	}
}

# parse_server_config()
# Parse and save the NIS server options
sub parse_server_config
{
local ($var, $rule) = &parse_yp_makefile();
$in{'minuid'} =~ /^\d+$/ || &error($text{'server_eminuid'});
$in{'mingid'} =~ /^\d+$/ || &error($text{'server_emingid'});
$in{'domain_auto'} || $in{'domain'} =~ /^[A-Za-z0-9\.\-]+$/ ||
	&error($text{'server_edomain'});
$in{'type'} || gethostbyname($in{'slave'}) || &error($text{'server_eslave'});
&update_makefile($var->{'MINUID'}, $in{'minuid'});
&update_makefile($var->{'MINGID'}, $in{'mingid'});
&update_makefile($var->{'NOPUSH'}, $in{'nopush'});
&update_makefile($var->{'B'}, $in{'b'});
&update_makefile($var->{'LOCALDOMAIN'}, $in{'domain_auto'} ? "`domainname`"
							   : $in{'domain'});
&update_makefile($rule->{'all'}, join(" ", split(/\0/, $in{'tables'})), "");

foreach $t (@nis_files) {
	local $old = &expand_vars($var->{uc($t)}->{'value'}, $var);
	next if (!$old);
	if ($old ne $in{$t}) {
		$in{$t} =~ /\S/ || &error(&text('server_efile', $text{"desc_$t"}));
		&update_makefile($var->{uc($t)}, $in{$t});
		}
	}

open(SLAVES, ">/var/yp/ypservers");
foreach $s (split(/\s+/, $in{'slaves'})) {
	print SLAVES "$s\n";
	}
close(SLAVES);

if ($in{'boot'}) {
	&enable_on_boot("ypserv");
	&enable_on_boot("yppasswdd");
	}
else {
	&disable_on_boot("ypserv");
	&disable_on_boot("yppasswdd");
	}
local $init1 = &init_script("ypserv");
local $init2 = &init_script("yppasswdd");
&system_logged("$init1 stop >/dev/null 2>&1");
&system_logged("$init2 stop >/dev/null 2>&1");
if ($in{'boot'}) {
	&system_logged("$init1 start >/dev/null 2>&1");
	&system_logged("$init2 start >/dev/null 2>&1");
	}
&flush_file_lines();
if ($in{'type'}) {
	# Master server
	delete($config{'slave'});
	&apply_table_changes() if ($in{'boot'});
	}
else {
	$out = &backquote_logged("/usr/lib/yp/ypinit -s $in{'slave'} 2>&1");
	if ($?) { &error("<tt>$out</tt>"); }
	$config{'slave'} = $in{'slave'};
	}
&write_file("$module_config_directory/config", \%config);
}

# get_server_mode()
# Returns 0 if the NIS server is inactive, 1 if active as a master, or 2 if
# active as a slave.
sub get_server_mode
{
if (!&check_on_boot("ypserv")) {
	return 0;
	}
elsif ($config{'slave'}) {
	return 2;
	}
else {
	return 1;
	}
}

# list_nis_tables()
# Returns a list of structures of all NIS tables
sub list_nis_tables
{
local ($var, $rule) = &parse_yp_makefile();
local @rv;
local $dom = $var->{'LOCALDOMAIN'}->{'value'};
chop($dom = `domainname`) if ($dom =~ /`.*domainname`/);
local %file;
map { $file{uc($_)} = &expand_vars($var->{uc($_)}->{'value'}, $var) } @nis_files;
local @all = split(/\s+/, $rule->{'all'}->{'value'});
foreach $t (@all) {
	local $table = { 'table' => $t,
		         'index' => scalar(@rv),
		         'domain' => $dom };
	if ($t eq "passwd") {
		if ($var->{'MERGE_PASSWD'}->{'value'} eq 'true') {
			$table->{'type'} = 'passwd_shadow';
			$table->{'files'} = [ $file{'PASSWD'}, $file{'SHADOW'} ];
			}
		elsif (&indexof('shadow', @all) >= 0) {
			# Show separate shadow and passwd tables as one table
			$table->{'type'} = 'passwd_shadow_full';
			$table->{'files'} = [ $file{'PASSWD'}, $file{'SHADOW'} ];
			@all = grep { $_ ne 'shadow' } @all;
			}
		else {
			$table->{'type'} = 'passwd';
			$table->{'files'} = [ $file{'PASSWD'} ];
			}
		}
	elsif ($t eq "group") {
		if ($var->{'MERGE_GROUP'}->{'value'} eq 'true') {
			$table->{'type'} = 'group_shadow';
			$table->{'files'} = [ $file{'GROUP'}, $file{'GSHADOW'} ];
			}
		else {
			$table->{'type'} = 'group';
			$table->{'files'} = [ $file{'GROUP'} ];
			}
		}
	elsif ($t eq "netgrp") {
		$table->{'type'} = "netgroup";
		$table->{'files'} = [ $file{'NETGROUP'} ];
		}
	elsif ($t eq "mail") {
		$table->{'type'} = "aliases";
		$table->{'files'} = [ $file{'ALIASES'} ];
		}
	else {
		$table->{'type'} = $t;
		$table->{'files'} = [ $file{uc($t)} ];
		}
	push(@rv, $table);
	}
return @rv;
}

# apply_table_changes()
# Do whatever is necessary for the table text files to be loaded into
# the NIS server
sub apply_table_changes
{
&system_logged("(cd /var/yp ; make) >/dev/null 2>&1 </dev/null");
}

# show_server_security()
# Show NIS server security-related options
sub show_server_security
{
local ($opts, $hosts) = &parse_ypserv_conf();

local $port = $opts->{'xfr_check_port'} ? $opts->{'xfr_check_port'}->{'value'}
					: 1;
print "<tr> <td><b>$text{'security_port'}</b></td>\n";
printf "<td><input type=radio name=port value=1 %s> %s\n",
	$port ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=port value=0 %s> %s</td> </tr>\n",
	$port ? '' : 'checked', $text{'no'};

print "<tr> <td valign=top><b>$text{'security_maps'}</b></td>\n";
print "<td><table border>\n";
print "<tr $tb> <td><b>$text{'security_hosts'}</b></td> ",
      "<td><b>$text{'security_map'}</b></td> ",
      "<td><b>$text{'security_sec'}</b></td> ",
      "<td><b>$text{'security_mangle'}</b></td> </tr>\n";
local $i = 0;
foreach $h (@$hosts, { }) {
	print "<tr $cb>\n";
	print "<td><input name=host_$i size=20 value='$h->{'host'}'></td>\n";
	printf "<td><input type=radio name=map_def_$i value=1 %s> %s\n",
		$h->{'map'} eq '*' ? 'checked' : '', $text{'security_tall'};
	printf "<input type=radio name=map_def_$i value=0 %s>\n",
		$h->{'map'} eq '*' ? '' : 'checked';
	printf "<input name=map_$i size=20 value='%s'></td>\n",
		$h->{'map'} eq '*' ? '' : $h->{'map'};
	print "<td><select name=sec_$i>\n";
	foreach $s ('none', 'port', 'deny', 'des') {
		printf "<option value=%s %s>%s\n",
			$s, $h->{'sec'} eq $s ? 'selected' : '',
			$text{"security_sec_$s"};
		}
	print "</select></td>\n";
	printf "<td><input name=mangle_$i type=radio value=0 %s> %s\n",
		$h->{'mangle'} ? '' : 'checked', $text{'security_none'};
	printf "<input name=mangle_$i type=radio value=1 %s> %s\n",
		$h->{'mangle'} ? 'checked' : '';
	print "<input name=field_$i size=4 value='$h->{'field'}'></td>\n";
	print "</tr>\n";
	$i++;
	}
print "</table></td> </tr>\n";
}

# parse_server_security()
# Save and apply server security options
sub parse_server_security
{
# Save security settings
local ($opts, $hosts) = &parse_ypserv_conf();
local $lref = &read_file_lines($ypserv_conf);
local $xfr = $opts->{'xfr_check_port'};
local $line = $in{'port'} ? 'xfr_check_port: yes' : 'xfr_check_port: no';
if ($xfr) {
	$lref->[$xfr->{'line'}] = $line;
	}
else {
	push(@$lref, $line);
	}

# Save host restrictions
local ($i, $j, $offset);
for($i=0; defined($in{"host_$i"}); $i++) {
	next if (!$in{"host_$i"});
	$in{"host_$i"} =~ /^[^:\s]+$/ ||
		&error(&text('security_ehost', $in{"host_$i"}));
	$in{"map_def_$i"} || $in{"map_$i"} =~ /^[^:\s]+$/ ||
		&error(&text('security_emap', $in{"map_$i"}));
	$in{"field_$i"} =~ /^\d*$/ ||
		&error(&text('security_efield', $in{"field_$i"}));
	local @line = ( $in{"host_$i"},
		        $in{"map_def_$i"} ? "*" : $in{"map_$i"},
		        $in{"sec_$i"},
		        $in{"mangle_$i"} ? "yes" : "no" );
	push(@line, $in{"field_$i"})
		if ($in{"field_$i"} && $in{"field_$i"} != 2);
	local $old = $hosts->[$j++];
	if ($old) {
		$lref->[$old->{'line'}] = join(":", @line);
		}
	else {
		push(@$lref, join(":", @line));
		}
	}
while($hosts->[$j]) {
	splice(@$lref, $hosts->[$j]->{'line'}-$offset, 1);
	$j++; $offset++;
	}
&flush_file_lines();

# Apply the changes
if (open(PID, $pid_file) && <PID> =~ /(\d+)/ && kill(0, $1)) {
	&kill_logged('HUP', $1);
	close(PID);
	}
}

1;

 0707010001fd79000081a40000000000000002000000013ac038be000002d5000000200000000000000000000000000000001b00000003reloc/nis/save_aliases.cgi    #!/usr/local/bin/perl
# save_aliases.cgi
# Create, update or delete an alias

require './nis-lib.pl';
&ReadParse();

($t, $lnums, $alias) = &table_edit_setup($in{'table'}, $in{'line'}, '[\s:]+');
if ($in{'delete'}) {
	# Just delete the alias
	&table_delete($t, $lnums);
	}
else {
	# Validate inputs and save the alias
	&error_setup($text{'aliases_err'});
	$in{'from'} =~ /^[^:@ ]+$/ || &error($text{'aliases_efrom'});
	@to = split(/\s+/, $in{'to'});
	@to || &error($text{'aliases_eto'});
	@alias = ( $in{'from'}, join(",", @to) );
	if ($in{'line'} eq '') {
		&table_add($t, ":", \@alias);
		}
	else {
		&table_update($t, $lnums, ":", \@alias);
		}
	}
&apply_table_changes();
&redirect("edit_tables.cgi?table=$in{'table'}");

   0707010001fd7a000081e40000000000000002000000013ac038be0000029d000000200000000000000000000000000000001a00000003reloc/nis/save_client.cgi #!/usr/local/bin/perl
# save_client.cgi
# Save and apply NIS client options

require './nis-lib.pl';
&ReadParse();
&error_setup($text{'client_err'});

# Parse and validate inputs
if (!$in{'domain_def'}) {
	$in{'domain'} =~ /^[A-Za-z0-9\.\-]+$/ ||
		&error($text{'client_edomain'});
	$nis->{'domain'} = $in{'domain'};
	}
if ($in{'broadcast'}) {
	$nis->{'broadcast'} = 1;
	}
else {
	@servers = split(/\s+/, $in{'servers'});
	foreach $s (@servers) {
		gethostbyname($s) || &check_ipaddress($s) ||
			&error(&text('client_eserver', $s));
		}
	$nis->{'servers'} = \@servers;
	}

# Save and apply
$err = &save_client_config($nis);
if ($err) { &error($err); }
&redirect("");

   0707010001fd7b000081a40000000000000002000000013ac038be000002e2000000200000000000000000000000000000001a00000003reloc/nis/save_ethers.cgi #!/usr/local/bin/perl
# save_ethers.cgi
# Create, update or delete an ethernet address

require './nis-lib.pl';
&ReadParse();

($t, $lnums, $ether) = &table_edit_setup($in{'table'}, $in{'line'}, '\s+');
if ($in{'delete'}) {
	# Just delete the ether
	&table_delete($t, $lnums);
	}
else {
	# Validate inputs and save the host
	&error_setup($text{'ethers_err'});
	lc($in{'mac'}) =~ /^([0-9a-f]{2}:){5}[0-9a-f]{2}$/ ||
		&error($text{'ethers_emac'});
	gethostbyname($in{'ip'}) || &error($text{'ethers_eip'});
	@ether = ( $in{'mac'}, $in{'ip'} );
	if ($in{'line'} eq '') {
		&table_add($t, "\t", \@ether);
		}
	else {
		&table_update($t, $lnums, "\t", \@ether);
		}
	}
&apply_table_changes();
&redirect("edit_tables.cgi?table=$in{'table'}");

  0707010001fd7c000081e40000000000000002000000013ac038be00000210000000200000000000000000000000000000001800000003reloc/nis/save_file.cgi   #!/usr/local/bin/perl
# save_file.cgi
# Save the files of a manually edited NIS table

require './nis-lib.pl';
&ReadParse();
@tables = &list_nis_tables();
$table = $tables[$in{'table'}];
$fnum = 0;
foreach $f (@{$table->{'files'}}) {
	$in{"data_$fnum"} =~ s/\r//g;
	if ($in{"data_$fnum"} =~ /\S/) {
		$in{"data_$fnum"} =~ s/\s*$/\n/;
		}
	else {
		$in{"data_$fnum"} = "";
		}
	open(FILE, ">$f");
	print FILE $in{"data_$fnum"};
	close(FILE);
	$fnum++;
	}
&apply_table_changes();
&redirect("edit_tables.cgi?table=$in{'table'}");

0707010001fd7d000081a40000000000000002000000013ac038be00000393000000200000000000000000000000000000001900000003reloc/nis/save_group.cgi  #!/usr/local/bin/perl
# save_group.cgi
# Create, update or delete a group

require './nis-lib.pl';
&ReadParse();

($t, $lnums, $group) = &table_edit_setup($in{'table'}, $in{'line'}, '\s+');
if ($in{'delete'}) {
	# Just delete the group
	&table_delete($t, $lnums);
	}
else {
	# Validate inputs and save the group
	&error_setup($text{'group_err'});
	$in{'name'} =~ /^[^:\s]+$/ || &error($text{'group_ename'});
	$in{'gid'} =~ /^\d+$/ || &error($text{'group_egid'});
	$salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
	@group = ( $in{'name'},
		   $in{'passmode'} == 0 ? "" :
		   $in{'passmode'} == 1 ? $in{'encpass'} :
					  crypt($in{'pass'}, $salt),
		   $in{'gid'},
		   join(",", split(/\s+/, $in{'members'})) );
	if ($in{'line'} eq '') {
		&table_add($t, ":", \@group);
		}
	else {
		&table_update($t, $lnums, ":", \@group);
		}
	}
&apply_table_changes();
&redirect("edit_tables.cgi?table=$in{'table'}");

 0707010001fd7e000081a40000000000000002000000013ac038be0000040a000000200000000000000000000000000000002000000003reloc/nis/save_group_shadow.cgi   #!/usr/local/bin/perl
# save_group_shadow.cgi
# Create, update or delete a group

require './nis-lib.pl';
&ReadParse();

($t, $lnums, $group, $shadow) =
	&table_edit_setup($in{'table'}, $in{'line'}, '\s+');
if ($in{'delete'}) {
	# Just delete the group
	&table_delete($t, $lnums);
	}
else {
	# Validate inputs and save the group
	&error_setup($text{'group_err'});
	$in{'name'} =~ /^[^:\s]+$/ || &error($text{'group_ename'});
	$in{'gid'} =~ /^\d+$/ || &error($text{'group_egid'});
	$salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
	@group = ( $in{'name'}, "x", $in{'gid'},
		   join(",", split(/\s+/, $in{'members'})) );
	@shadow = ( $in{'name'},
		    $in{'passmode'} == 0 ? "" :
		    $in{'passmode'} == 1 ? $in{'encpass'} :
					   crypt($in{'pass'}, $salt),
		    "", join(",", split(/\s+/, $in{'members'})) );
	if ($in{'line'} eq '') {
		&table_add($t, ":", \@group, \@shadow);
		}
	else {
		&table_update($t, $lnums, ":", \@group, \@shadow);
		}
	}
&apply_table_changes();
&redirect("edit_tables.cgi?table=$in{'table'}");

  0707010001fd7f000081a40000000000000002000000013ac038be000002de000000200000000000000000000000000000001900000003reloc/nis/save_hosts.cgi  #!/usr/local/bin/perl
# save_hosts.cgi
# Create, update or delete a host

require './nis-lib.pl';
&ReadParse();

($t, $lnums, $host) = &table_edit_setup($in{'table'}, $in{'line'}, '\s+');
if ($in{'delete'}) {
	# Just delete the host
	&table_delete($t, $lnums);
	}
else {
	# Validate inputs and save the host
	&error_setup($text{'hosts_err'});
	&check_ipaddress($in{'ip'}) || &error($text{'hosts_eip'});
	$in{'name'} =~ /^[A-Za-z0-9\.\-]+$/ || &error($text{'hosts_ename'});
	@host = ( $in{'ip'}, $in{'name'}, split(/\s+/, $in{'aliases'}) );
	if ($in{'line'} eq '') {
		&table_add($t, "\t", \@host);
		}
	else {
		&table_update($t, $lnums, "\t", \@host);
		}
	}
&apply_table_changes();
&redirect("edit_tables.cgi?table=$in{'table'}");

  0707010001fd80000081a40000000000000002000000013ac038be00000416000000200000000000000000000000000000001c00000003reloc/nis/save_netgroup.cgi   #!/usr/local/bin/perl
# save_netgroup.cgi
# Create, update or delete a netgroup

require './nis-lib.pl';
&ReadParse();

($t, $lnums, $netgroup) = &table_edit_setup($in{'table'}, $in{'line'}, '\s+');
if ($in{'delete'}) {
	# Just delete the netgroup
	&table_delete($t, $lnums);
	}
else {
	# Validate inputs and save the netgroup
	&error_setup($text{'netgroup_err'});
	$in{'name'} =~ /^[A-Za-z0-9\.\-]+$/ || &error($text{'netgroup_ename'});
	@netgroup = ( $in{'name'} );
	HOST: for($i=0; defined($in{"host_$i"}); $i++) {
		local @h;
		foreach $v ('host', 'user', 'dom') {
			if ($in{"${v}_def_$i"} == 1) { push(@h, ""); }
			elsif ($in{"${v}_def_$i"} == 2) { next HOST; }
			elsif ($in{"${v}_$i"} !~ /^\S+$/) {
				&error(&text("netgroup_e$v", $i+1));
				}
			else { push(@h, $in{"${v}_$i"}); }
			}
		push(@netgroup, "($h[0],$h[1],$h[2])");
		}
	if ($in{'line'} eq '') {
		&table_add($t, "\t", \@netgroup);
		}
	else {
		&table_update($t, $lnums, "\t", \@netgroup);
		}
	}
&apply_table_changes();
&redirect("edit_tables.cgi?table=$in{'table'}");

  0707010001fd81000081a40000000000000002000000013ac038be000002d9000000200000000000000000000000000000001c00000003reloc/nis/save_netmasks.cgi   #!/usr/local/bin/perl
# save_netmasks.cgi
# Create, update or delete a netmask

require './nis-lib.pl';
&ReadParse();

($t, $lnums, $netmask) = &table_edit_setup($in{'table'}, $in{'line'}, '\s+');
if ($in{'delete'}) {
	# Just delete the ether
	&table_delete($t, $lnums);
	}
else {
	# Validate inputs and save the host
	&error_setup($text{'netmasks_err'});
	&check_ipaddress($in{'net'}) || &error($text{'netmasks_enet'});
	&check_ipaddress($in{'mask'}) || &error($text{'netmasks_emask'});
	@netmask = ( $in{'net'}, $in{'mask'} );
	if ($in{'line'} eq '') {
		&table_add($t, "\t", \@netmask);
		}
	else {
		&table_update($t, $lnums, "\t", \@netmask);
		}
	}
&apply_table_changes();
&redirect("edit_tables.cgi?table=$in{'table'}");

   0707010001fd8b000081a40000000000000002000000013ac038be000002ff000000200000000000000000000000000000001c00000003reloc/nis/save_networks.cgi   #!/usr/local/bin/perl
# save_networks.cgi
# Create, update or delete a network

require './nis-lib.pl';
&ReadParse();

($t, $lnums, $network) = &table_edit_setup($in{'table'}, $in{'line'}, '\s+');
if ($in{'delete'}) {
	# Just delete the network
	&table_delete($t, $lnums);
	}
else {
	# Validate inputs and save the network
	&error_setup($text{'networks_err'});
	&check_ipaddress($in{'ip'}) || &error($text{'networks_eip'});
	$in{'name'} =~ /^[A-Za-z0-9\.\-]+$/ || &error($text{'networks_ename'});
	@network = ( $in{'name'}, $in{'ip'}, split(/\s+/, $in{'aliases'}) );
	if ($in{'line'} eq '') {
		&table_add($t, "\t", \@network);
		}
	else {
		&table_update($t, $lnums, "\t", \@network);
		}
	}
&apply_table_changes();
&redirect("edit_tables.cgi?table=$in{'table'}");

 0707010001fd8c000081a40000000000000002000000013ac038be00000984000000200000000000000000000000000000002100000003reloc/nis/save_passwd_shadow.cgi  #!/usr/local/bin/perl
# save_passwd_shadow.cgi
# Create, update or delete a password/shadow files entry

require './nis-lib.pl';
require 'timelocal.pl';
&ReadParse();

($t, $lnums, $passwd, $shadow) =
	&table_edit_setup($in{'table'}, $in{'line'}, ':');
if ($in{'delete'}) {
	# Just delete the user
	&table_delete($t, $lnums);
	}
else {
	# Validate inputs and save the user
	&error_setup($text{'passwd_err'});
	$in{'name'} =~ /^[^: \t]+$/ || &error($text{'passwd_ename'});
	$in{'uid'} =~ /^\d+$/ || &error($text{'passwd_euid'});
	$in{'gid'} =~ /^\d+$/ || &error($text{'passwd_egid'});
	$in{'real'} =~ /^[^:]*$/ || &error($text{'passwd_ereal'});
	$in{'home'} =~ /^[^:]+$/ || &error($text{'passwd_ehome'});
	$in{'shell'} ne '' || $in{'other'} =~ /^[^:]+$/ ||
		&error($text{'passwd_eshell'});
	$in{'passmode'} != 2 || $in{'encpass'} =~ /^[^:]*$/ ||
		&error($text{'passwd_epass'});
	%uconfig = &foreign_config("useradmin");
	$salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
	@passwd = ( $in{'name'}, 'x',
		    $in{'uid'}, $in{'gid'}, $in{'real'},
		    $in{'home'}, $in{'shell'} ? $in{'shell'} : $in{'other'} );
	$pass = $in{'passmode'} == 0 ? "" :
		$in{'passmode'} == 1 ? $uconfig{'lock_string'} :
		$in{'passmode'} == 2 ? $in{'encpass'} :
				       crypt($in{'pass'}, $salt);
	if ($in{'mode'} == 2) {
		# Parse extra shadow inputs
		if ($in{'expired'} ne "" && $in{'expirem'} ne "" &&
		    $in{'expirey'} ne "") {
			eval { $expire = timelocal(0, 0, 12, $in{'expired'},
						   $in{'expirem'}-1,
						   $in{'expirey'}-1900) };
			&error($text{'passwd_eexpire'}) if ($@);
			$expire = int($expire / (60*60*24));
			}
		$in{'min'} =~ /^[0-9]*$/ || &error($text{'passwd_emin'});
		$in{'max'} =~ /^[0-9]*$/ || &error($text{'passwd_emax'});
		$in{'warn'} =~ /^[0-9]*$/ || &error($text{'passwd_ewarn'});
		$in{'inactive'} =~ /^[0-9]*$/ || &error($text{'passwd_einactive'});
		@shadow = ( $in{'name'}, $pass,
			    undef, $in{'min'}, $in{'max'}, $in{'warn'},
			    $in{'inactive'}, $expire, $shadow->[8] );
		$shadow[2] = int(time() / (60*60*24))
			if ($shadow[1] ne $shadow->[1]);
		}
	elsif ($in{'mode'} == 1) {
		@shadow = ( $in{'name'}, $pass,
			    @$shadow[2..8] );
		}
	else {
		$passwd[1] = $pass;
		}

	if ($in{'line'} eq '') {
		&table_add($t, ":", \@passwd, \@shadow);
		}
	else {
		&table_update($t, $lnums, ":", \@passwd, \@shadow);
		}
	}
&apply_table_changes();
&redirect("edit_tables.cgi?table=$in{'table'}");

0707010001fd8d000081a40000000000000002000000013ac038be0000030e000000200000000000000000000000000000001d00000003reloc/nis/save_protocols.cgi  #!/usr/local/bin/perl
# save_protocols.cgi
# Create, update or delete a protocol

require './nis-lib.pl';
&ReadParse();

($t, $lnums, $protocol) = &table_edit_setup($in{'table'}, $in{'line'}, '\s+');
if ($in{'delete'}) {
	# Just delete the service
	&table_delete($t, $lnums);
	}
else {
	# Validate inputs and save the protocol
	&error_setup($text{'protocols_err'});
	$in{'name'} =~ /^[A-Za-z0-9\_\-]+$/ || &error($text{'protocols_ename'});
	$in{'number'} =~ /^\d+$/ || &error($text{'protocols_enumber'});
	@protocol = ( $in{'name'}, $in{'number'}, split(/\s+/, $in{'aliases'}) );
	if ($in{'line'} eq '') {
		&table_add($t, "\t", \@protocol);
		}
	else {
		&table_update($t, $lnums, "\t", \@protocol);
		}
	}
&apply_table_changes();
&redirect("edit_tables.cgi?table=$in{'table'}");

  0707010001fd8e000081a40000000000000002000000013ac038be000002d2000000200000000000000000000000000000001700000003reloc/nis/save_rpc.cgi    #!/usr/local/bin/perl
# save_rpc.cgi
# Create, update or delete an rpc program

require './nis-lib.pl';
&ReadParse();

($t, $lnums, $rpc) = &table_edit_setup($in{'table'}, $in{'line'}, '\s+');
if ($in{'delete'}) {
	# Just delete the host
	&table_delete($t, $lnums);
	}
else {
	# Validate inputs and save the host
	&error_setup($text{'rpc_err'});
	$in{'name'} =~ /^\S+$/ || &error($text{'rpc_ename'});
	$in{'number'} =~ /^\d+$/ || &error($text{'rpc_enumber'});
	@rpc = ( $in{'name'}, $in{'number'}, split(/\s+/, $in{'aliases'}) );
	if ($in{'line'} eq '') {
		&table_add($t, "\t", \@rpc);
		}
	else {
		&table_update($t, $lnums, "\t", \@rpc);
		}
	}
&apply_table_changes();
&redirect("edit_tables.cgi?table=$in{'table'}");

  0707010001fd8f000081e40000000000000002000000013ac038bf00000336000000200000000000000000000000000000001c00000003reloc/nis/save_security.cgi   #!/usr/local/bin/perl
# save_security.cgi
# Save NIS server security options

require './nis-lib.pl';
&ReadParse();
&error_setup($text{'security_err'});

# Save trusted servers
if ($config{'securenets'}) {
	for($i=0; defined($in{"net_$i"}); $i++) {
		next if (!$in{"net_$i"});
		&check_ipaddress($in{"net_$i"}) ||
			&error(&text('security_enet', $in{"net_$i"}));
		if ($in{"def_$i"} == 0) {
			&check_ipaddress($in{"mask_$i"}) ||
				&error(&text('security_emask', $in{"mask_$i"}));
			$mask = $in{"mask_$i"};
			}
		elsif ($in{"def_$i"} == 1) {
			$mask = "host";
			}
		else {
			$mask = "0.0.0.0";
			}
		push(@lines, $mask." ".$in{"net_$i"}."\n");
		}
	open(SERVERS, ">$config{'securenets'}");
	print SERVERS @lines;
	close(SERVERS);
	}

# Save OS-specific security options
&parse_server_security();

&redirect("");

  0707010001fd90000081e40000000000000002000000013ac038be000000be000000200000000000000000000000000000001a00000003reloc/nis/save_server.cgi #!/usr/local/bin/perl
# save_server.cgi
# Save and apply NIS server options

require './nis-lib.pl';
&error_setup($text{'server_err'});
&ReadParse();
&parse_server_config();
&redirect("");

  0707010001fd91000081a40000000000000002000000013ac038be000002ef000000200000000000000000000000000000001c00000003reloc/nis/save_services.cgi   #!/usr/local/bin/perl
# save_services.cgi
# Create, update or delete a service

require './nis-lib.pl';
&ReadParse();

($t, $lnums, $service) = &table_edit_setup($in{'table'}, $in{'line'}, '\s+');
if ($in{'delete'}) {
	# Just delete the service
	&table_delete($t, $lnums);
	}
else {
	# Validate inputs and save the service
	&error_setup($text{'services_err'});
	$in{'name'} =~ /^[A-Za-z0-9\_\-]+$/ || &error($text{'services_ename'});
	$in{'port'} =~ /^\d+$/ || &error($text{'services_eport'});
	@service = ( $in{'name'}, "$in{'port'}/$in{'proto'}" );
	if ($in{'line'} eq '') {
		&table_add($t, "\t", \@service);
		}
	else {
		&table_update($t, $lnums, "\t", \@service);
		}
	}
&apply_table_changes();
&redirect("edit_tables.cgi?table=$in{'table'}");

 0707010001fd92000081a40000000000000002000000013ac038be000002f0000000200000000000000000000000000000001d00000003reloc/nis/save_services2.cgi  #!/usr/local/bin/perl
# save_services2.cgi
# Create, update or delete a service

require './nis-lib.pl';
&ReadParse();

($t, $lnums, $service) = &table_edit_setup($in{'table'}, $in{'line'}, '\s+');
if ($in{'delete'}) {
	# Just delete the service
	&table_delete($t, $lnums);
	}
else {
	# Validate inputs and save the service
	&error_setup($text{'services_err'});
	$in{'name'} =~ /^[A-Za-z0-9\_\-]+$/ || &error($text{'services_ename'});
	$in{'port'} =~ /^\d+$/ || &error($text{'services_eport'});
	@service = ( "$in{'name'}/$in{'proto'}", $in{'port'} );
	if ($in{'line'} eq '') {
		&table_add($t, "\t", \@service);
		}
	else {
		&table_update($t, $lnums, "\t", \@service);
		}
	}
&apply_table_changes();
&redirect("edit_tables.cgi?table=$in{'table'}");

0707010001fd93000081e40000000000000002000000013ac038be0000021b000000200000000000000000000000000000001a00000003reloc/nis/save_switch.cgi #!/usr/local/bin/perl
# save_switch.cgi
# Save client nsswitch configuration

require './nis-lib.pl';
&ReadParse();
&error_setup($text{'switch_err'});

foreach $sv (split(/\s+/, $in{'list'})) {
	if (defined($o = $in{"order_$sv"})) {
		$o =~ /\S/ ||
			&error(&text('switch_eorder', $text{"switch_$sv"}));
		&save_nsswitch($sv, $o);
		}
	else {
		local @order;
		for($i=1; defined($o = $in{"order_${sv}_${i}"}); $i++) {
			push(@order, $o) if ($o);
			}
		&save_nsswitch($sv, join(" ", @order));
		}
	}
&flush_file_lines();
&redirect("");

 0707010001fd94000081a40000000000000002000000013ac038be000026dd000000200000000000000000000000000000001900000003reloc/nis/solaris-lib.pl  # solaris-lib.pl
# NIS functions for solaris

$binding_dir = "/var/yp/binding";
$yp_makefile = "/var/yp/Makefile";

# get_nis_support()
# Returns 0 for no support, 1 for client only, or 2 for client & server
sub get_nis_support
{
if (!-x "/usr/lib/netsvc/yp/ypbind") {
	return 0;
	}
elsif (!-x "/usr/lib/netsvc/yp/ypserv") {
	return 1;
	}
else {
	return 2;
	}
}

# get_client_config()
# Returns a hash ref containg details of the client's NIS settings
sub get_client_config
{
local $nis;
open(DOM, "/etc/defaultdomain");
chop($nis->{'domain'} = <DOM>);
close(DOM);
if ($nis->{'domain'}) {
	if (open(SRV, "$binding_dir/$nis->{'domain'}/ypservers")) {
		while(<SRV>) {
			s/\r|\n//g;
			push(@{$nis->{'servers'}}, $_);
			}
		close(SRV);
		}
	else {
		$nis->{'broadcast'} = 1;
		}
	}
return $nis;
}

# save_client_config(&config)
# Saves and applies the NIS client configuration in the give hash.
# Returns an error message if any, or undef on success.
sub save_client_config
{
if ($_[0]->{'domain'}) {
	# Check if the servers are in /etc/hosts
	local @s = @{$_[0]->{'servers'}};
	&foreign_require("net", "net-lib.pl");
	foreach $s (@s) {
		local $found = 0;
		foreach $h (&foreign_call("net", "list_hosts")) {
			$found++ if (&indexof($s, @{$h->{'hosts'}}) >= 0);
			}
		return &text("client_ehosts", $s) if (!$found);
		}

	# Write the files
	open(DOM, ">/etc/defaultdomain");
	print DOM $_[0]->{'domain'},"\n";
	close(DOM);
	mkdir("$binding_dir/$_[0]->{'domain'}", 0755);
	if (@s) {
		open(SRV, ">$binding_dir/$_[0]->{'domain'}/ypservers");
		foreach $s (@s) { print SRV "$s\n"; }
		close(SRV);
		}
	else {
		unlink("$binding_dir/$_[0]->{'domain'}/ypservers");
		}
	}
else {
	unlink("/etc/defaultdomain");
	}

# Apply by running ypstop and ypstart
&system_logged("/usr/lib/netsvc/yp/ypstop >/dev/null 2>&1");
&system_logged("domainname \"$_[0]->{'domain'}\" >/dev/null 2>&1");
&system_logged("/usr/lib/netsvc/yp/ypstart >/dev/null 2>&1");
sleep(2);
if ($_[0]->{'domain'}) {
	local $out = `ypwhich 2>&1`;
	if ($? || $out =~ /not\s+bound/i || $out =~ /can't\s+communicate/i) {
		system("/usr/lib/netsvc/yp/ypstop >/dev/null 2>&1");
		return $text{'client_eypwhich'};
		}
	}
}

@nis_tables = ( "passwd", "group", "hosts", "ethers", "networks", "rpc",
	        "services", "protocols", "netgroup", "bootparams", "aliases",
		"publickey", "netid", "netmasks", "c2secure", "timezone",
		"auto.master", "auto.home" );

# show_server_config()
# Display a form for editing NIS server options
sub show_server_config
{
local ($var, $rule) = &parse_yp_makefile();
local $dom = `domainname`; chop($dom);

print "<tr> <td><b>$text{'server_boot'}</b></td> <td>\n";
if ($dom && -d "/var/yp/$dom") {
	print "<i>$text{'server_already'}</i>\n";
	}
else {
	print "<input type=radio name=boot value=1 > $text{'yes'}\n";
	print "<input type=radio name=boot value=0 checked > $text{'no'}\n";
	}
print "</td>\n";

print "<td><b>$text{'server_domain'}</b></td>\n";
printf "<td><input type=radio name=domain_def value=1 %s> %s\n",
	$dom ? '' : 'checked', $text{'server_none'};
printf "<input type=radio name=domain_def value=0 %s>\n",
	$dom ? 'checked' : '';
printf "<input name=domain size=35 value='%s'></td> </tr>\n", $dom;

print "<tr> <td><b>$text{'server_type'}</b></td>\n";
printf "<td colspan=3><input type=radio name=type value=1 %s> %s\n",
	$config{'slave'} ? '' : 'checked', $text{'server_master'};
printf "<input type=radio name=type value=0 %s> %s\n",
	$config{'slave'} ? 'checked' : '', $text{'server_slave'};
printf "<input name=slave size=30 value='%s'></td> </tr>\n", $config{'slave'};

print "<tr> <td colspan=4><i>$text{'server_solaris'}</i></td> </tr>\n";

print "</table></td></tr></table><p>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'server_mheader'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

local %inall;
local @all = split(/\s+/, $rule->{'all'}->{'value'});
map { $inall{$_}++ } @all;
print "<tr> <td rowspan=4 valign=top><b>$text{'server_tables'}</b></td>\n";
print "<td rowspan=4><select multiple size=6 name=tables>\n";
foreach $t (&unique(@nis_tables, @all)) {
	printf "<option value=%s %s>%s\n",
		$t, $inall{$t} ? 'selected' : '', $t;
	}
print "</select></td>\n";

print "<td><b>$text{'server_dns'}</b></td>\n";
printf "<td><input type=radio name=b value='-b' %s> %s\n",
	$var->{'B'}->{'value'} eq '-b' ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=b value='' %s> %s</td> </tr>\n",
	$var->{'B'}->{'value'} eq '-b' ? '' : 'checked', $text{'no'};

print "<tr> <td><b>$text{'server_push'}</b></td>\n";
printf "<td><input type=radio name=nopush value='\"\"' %s> %s\n",
	$var->{'NOPUSH'}->{'value'} eq 'true' ? '' : 'checked', $text{'yes'};
printf "<input type=radio name=nopush value=true %s> %s</td> </tr>\n",
	$var->{'NOPUSH'}->{'value'} eq 'true' ? 'checked' : '', $text{'no'};

print "<tr> <td><b>$text{'server_dir'}</b></td>\n";
printf "<td><input name=dir size=30 value='%s'> %s</td> </tr>\n",
	$var->{'DIR'}->{'value'}, &file_chooser_button("dir", 0);

print "<tr> <td><b>$text{'server_pwdir'}</b></td>\n";
printf "<td><input name=pwdir size=30 value='%s'> %s</td> </tr>\n",
	$var->{'PWDIR'}->{'value'}, &file_chooser_button("pwdir", 0);
}

# parse_server_config()
# Parse and save the NIS server options
sub parse_server_config
{
local ($var, $rule) = &parse_yp_makefile();
$in{'domain_def'} || $in{'domain'} =~ /^[A-Za-z0-9\.\-]+$/ ||
	&error($text{'server_edomain'});
if ($in{'boot'} && $in{'domain_def'}) {
	&error($text{'server_ebootdom'});
	}
$in{'type'} || gethostbyname($in{'slave'}) || &error($text{'server_eslave'});
-d $in{'dir'} || &error($text{'server_edir'});
-d $in{'pwdir'} || &error($text{'server_epwdir'});
&update_makefile($var->{'NOPUSH'}, $in{'nopush'});
&update_makefile($var->{'B'}, $in{'b'});
&update_makefile($rule->{'all'}, join(" ", split(/\0/, $in{'tables'})), "");
&update_makefile($var->{'DIR'}, $in{'dir'});
&update_makefile($var->{'PWDIR'}, $in{'pwdir'});
&flush_file_lines();

if ($in{'domain_def'}) {
	unlink("/etc/defaultdomain");
	&system_logged("domainname \"\" >/dev/null 2>&1");
	}
else {
	local $old = `domainname`; chop($old);
	open(DOM, ">/etc/defaultdomain");
	print DOM "$in{'domain'}\n";
	close(DOM);
	&system_logged("domainname \"$in{'domain'}\" >/dev/null 2>&1");
	if ($in{'boot'}) {
		# Create the domain directory
		mkdir("/var/yp/$in{'domain'}", 0755);
		&system_logged("rm -f /var/yp/*.time");	# force a remake
		}
	}

if ($in{'type'}) {
	# Master server
	delete($config{'slave'});
	&apply_table_changes()
		if (!$in{'domain_def'} && -d "/var/yp/$in{'domain'}");
	}
else {
	local $temp = &tempname();
	open(TEMP, ">$temp");
	print TEMP "n\ny\n";
	close(TEMP);
	$out = &backquote_logged("/usr/sbin/ypinit -s $in{'slave'} <$temp 2>&1");
	unlink($temp);
	if ($?) { &error("<tt>$out</tt>"); }
	$config{'slave'} = $in{'slave'};
	}
&write_file("$module_config_directory/config", \%config);
&system_logged("/usr/lib/netsvc/yp/ypstop >/dev/null 2>&1");
&system_logged("/usr/lib/netsvc/yp/ypstart >/dev/null 2>&1");
}

# get_server_mode()
# Returns 0 if the NIS server is inactive, 1 if active as a master, or 2 if
# active as a slave.
sub get_server_mode
{
local $dom = `domainname`; chop($dom);
return !$dom ? 0 : $config{'slave'} ? 2 : 1;
}

# parse_yp_makefile()
# Returns hashes of makefile variables and rules
sub parse_yp_makefile
{
# First parse joined lines
local $lnum = 0;
local (@lines, $llast);
open(MAKE, $yp_makefile);
while(<MAKE>) {
	s/\r|\n//g;
	local $slash = (s/\\$//);
	s/#.*$//;
	if ($llast) {
		$llast->{'value'} .= " $_";
		$llast->{'eline'} = $lnum;
		}
	else {
		push(@lines, { 'value' => $_,
			       'line' => $lnum,
			       'eline' => $lnum });
		}
	$llast = $slash ? $lines[$#lines] : undef;
	$lnum++;
	}
close(MAKE);

# Then look for variables and rules
local ($i, %var, %rule);
for($i=0; $i<@lines; $i++) {
	if ($lines[$i]->{'value'} =~ /^\s*(\S+)\s*=\s*(.*)/) {
		# Found a variable
		$var{$1} = { 'name' => $1,
			     'value' => $2,
			     'type' => 0,
			     'line' => $lines[$i]->{'line'},
			     'eline' => $lines[$i]->{'eline'} };
		}
	elsif ($lines[$i]->{'value'} =~ /^\s*(\S+):\s*(.*)/) {
		# Found a makefile rule
		$rule{$1} = { 'name' => $1,
			      'value' => $2,
			      'type' => 1,
			      'code' => $lines[$i+1]->{'value'},
			      'line' => $lines[$i]->{'line'},
			      'eline' => $lines[$i+1]->{'eline'} };
		$i++;
		}
	}
return ( \%var, \%rule );
}

# expand_vars(string, &vars)
sub expand_vars
{
local $rv = $_[0];
while($rv =~ /^(.*)\$\(([A-Za-z0-9_]+)\)(.*)$/) {
	$rv = $1.$_[1]->{$2}->{'value'}.$3;
	}
return $rv;
}

# update_makefile(&old, value, [value]);
sub update_makefile
{
local $lref = &read_file_lines($yp_makefile);
local @n;
if ($_[0]->{'type'} == 0) {
	@n = ( "$_[0]->{'name'} = $_[1]" );
	}
else {
	@n = ( "$_[0]->{'name'}: $_[1]", $_[2] );
	}
splice(@$lref, $_[0]->{'line'}, $_[0]->{'eline'} - $_[0]->{'line'} + 1, @n);
}

# apply_table_changes()
# Do whatever is necessary for the table text files to be loaded into
# the NIS server
sub apply_table_changes
{
&system_logged("(cd /var/yp ; /usr/ccs/bin/make) >/dev/null 2>&1 </dev/null");
}

# list_nis_tables()
# Returns a list of structures of all NIS tables
sub list_nis_tables
{
local @rv;
local ($var, $rule) = &parse_yp_makefile();
local $dom = `domainname`; chop($dom);
local @all = split(/\s+/, $rule->{'all'}->{'value'});
foreach $t (@all) {
	local $table = { 'table' => $t,
		         'index' => scalar(@rv),
		         'domain' => $dom };
	local $rt = $rule->{"$t.time"};
	local @files = split(/\s+/, $rt->{'value'});
	@files = map { &expand_vars($_, $var) } @files;
	$table->{'files'} = \@files;
	$table->{'type'} = $t eq 'passwd' ? 'passwd_shadow' :
			   $t;
	push(@rv, $table);
	}
return @rv;
}

sub show_server_security
{
}

sub parse_server_security
{
&system_logged("/usr/lib/netsvc/yp/ypstop >/dev/null 2>&1");
&system_logged("/usr/lib/netsvc/yp/ypstart >/dev/null 2>&1");
}

1;

   0707010001fd95000081a40000000000000002000000013ac038bf00003b2b000000200000000000000000000000000000001c00000003reloc/nis/suse-linux-lib.pl   # suse-linux-lib.pl
# NIS functions for SuSE linux NIS client and server

$yp_makefile = "/var/yp/Makefile";
$ypserv_conf = "/etc/ypserv.conf";
$pid_file = "/var/run/ypserv.pid";
$rc_config = "/etc/rc.config";

# get_nis_support()
# Returns 0 for no support, 1 for client only, or 2 for client & server
sub get_nis_support
{
if (!&has_command("ypbind")) {
	return 0;
	}
elsif (!&has_command("ypserv")) {
	return 1;
	}
else {
	return 2;
	}
}

# get_client_config()
# Returns a hash ref containg details of the client's NIS settings
sub get_client_config
{
local $nis;
local $rc = &parse_rc_config();
if ($rc->{'START_YPBIND'}->{'value'} eq 'yes') {
	$nis->{'domain'} = $rc->{'YP_DOMAINNAME'}->{'value'};
	local @s = split(/\s+/, $rc->{'YP_SERVER'}->{'value'});
	if (@s) {
		$nis->{'servers'} = \@s;
		}
	else {
		$nis->{'broadcast'} = 1;
		}
	}
return $nis;
}

# save_client_config(&config)
# Saves and applies the NIS client configuration in the give hash.
# Returns an error message if any, or undef on success.
sub save_client_config
{
# Save the config file
open(CONF, ">$config{'client_conf'}");
if ($_[0]->{'domain'}) {
	if ($_[0]->{'broadcast'}) {
		print CONF "domain $_[0]->{'domain'} broadcast\n";
		}
	else {
		local @s = @{$_[0]->{'servers'}};
		print CONF "domain $_[0]->{'domain'} server ",shift(@s),"\n";
		foreach $s (@s) {
			print CONF "ypserver $s\n";
			}
		}
	}
close(CONF);

# Stop the init script
local $init = &init_script("ypbind");
if (!-r $init) { $init = &init_script("ypclient"); }
&system_logged("$init stop >/dev/null 2>&1");

# Save rc.config
local $rc = &parse_rc_config();
if ($_[0]->{'domain'}) {
	&save_rc_config($rc, "START_YPBIND", "yes");
	&save_rc_config($rc, "YP_DOMAINNAME", $_[0]->{'domain'});
	if ($_[0]->{'broadcast'}) {
		&save_rc_config($rc, "YP_SERVER", "");
		}
	else {
		&save_rc_config($rc, "YP_SERVER",
				join(" ", @{$_[0]->{'servers'}}));
		}
	&enable_on_boot("ypbind");
	}
else {
	&save_rc_config($rc, "START_YPBIND", "no");
	}

# Start the init script
if ($_[0]->{'domain'}) {
	local $out = &backquote_logged("$init start 2>&1");
	if ($?) { return "<pre>$out</pre>"; }
	}
return undef;
}

@nis_files = ( "passwd", "shadow", "group", "gshadow", "adjunct",
	       "aliases", "ethers", "bootparams", "hosts", "networks",
	       "printcap", "protocols", "publickeys", "rpc", "services",
	       "netgroup", "netid", "auto_master", "auto_home",
	       "auto_local", "timezone", "locale", "netmasks" );

@nis_tables = ( "passwd", "group", "hosts", "rpc", "services", "netid",
		"protocols", "netgrp", "mail", "shadow", "publickey",
		"networks", "ethers", "bootparams", "printcap", "amd.home",
		"auto.master", "auto.home", "auto.local", "passwd.adjunct",
		"timezone", "locale", "netmasks" );

# show_server_config()
# Display a form for editing NIS server options
sub show_server_config
{
local ($var, $rule) = &parse_yp_makefile();
local $rc = &parse_rc_config();
if ($var->{'YPPWDDIR'}->{'value'} =~ /^\$\(shell.*\s(\S+)\)$/) {
	# Value comes from some rc.config file!
	local $yrc = &parse_rc_config($1);
	$var->{'YPPWDDIR'}->{'value'} = $yrc->{'YPPWD_SRCDIR'}->{'value'};
	}

local $boot = &check_on_boot("ypserv") &&
	      $rc->{'START_YPSERV'}->{'value'} eq 'yes';
print "<tr> <td><b>$text{'server_boot'}</b></td>\n";
printf "<td><input type=radio name=boot value=1 %s> %s\n",
	$boot ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=boot value=0 %s> %s</td>\n",
	$boot ? '' : 'checked', $text{'no'};

local $dom = $var->{'LOCALDOMAIN'}->{'value'};
print "<td><b>$text{'server_domain'}</b></td>\n";
printf "<td><input type=radio name=domain_auto value=1 %s> %s\n",
	$dom =~ /`.*domainname`/ ? 'checked' : '', $text{'server_domain_auto'};
printf "<input type=radio name=domain_auto value=0 %s>\n",
	$dom =~ /`.*domainname`/ ? '' : 'checked';
printf "<input name=domain size=20 value='%s'></td> </tr>\n",
	$dom =~ /`.*domainname`/ ? '' : $dom;

print "<tr> <td><b>$text{'server_type'}</b></td>\n";
printf "<td colspan=3><input type=radio name=type value=1 %s> %s\n",
	$config{'slave'} ? '' : 'checked', $text{'server_master'};
printf "<input type=radio name=type value=0 %s> %s\n",
	$config{'slave'} ? 'checked' : '', $text{'server_slave'};
printf "<input name=slave size=30 value='%s'></td> </tr>\n", $config{'slave'};

print "</table></td></tr></table><p>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'server_mheader'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'server_dns'}</b></td>\n";
printf "<td><input type=radio name=b value='-b' %s> %s\n",
	$var->{'B'}->{'value'} eq '-b' ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=b value='' %s> %s</td>\n",
	$var->{'B'}->{'value'} eq '-b' ? '' : 'checked', $text{'no'};

print "<td><b>$text{'server_push'}</b></td>\n";
printf "<td><input type=radio name=nopush value=false %s> %s\n",
	$var->{'NOPUSH'}->{'value'} eq 'true' ? '' : 'checked', $text{'yes'};
printf "<input type=radio name=nopush value=true %s> %s</td> </tr>\n",
	$var->{'NOPUSH'}->{'value'} eq 'true' ? 'checked' : '', $text{'no'};

local %inall;
map { $inall{$_}++ } split(/\s+/, $rule->{'all'}->{'value'});
print "<tr> <td rowspan=2 valign=top><b>$text{'server_tables'}</b></td>\n";
print "<td rowspan=2><select multiple size=5 name=tables>\n";
foreach $t (grep { $rule->{$_} } @nis_tables) {
	printf "<option value=%s %s>%s\n",
		$t, $inall{$t} ? 'selected' : '', $t;
	}
print "</select></td>\n";

print "<td><b>$text{'server_minuid'}</b></td>\n";
printf "<td><input name=minuid size=10 value='%s'></td> </tr>\n",
	$var->{'MINUID'}->{'value'};

print "<td><b>$text{'server_mingid'}</b></td>\n";
printf "<td><input name=mingid size=10 value='%s'></td> </tr>\n",
	$var->{'MINGID'}->{'value'};

print "<tr> <td><b>$text{'server_slaves'}</b></td>\n";
open(SLAVES, "/var/yp/ypservers");
while(<SLAVES>) {
	s/\s//g;
	push(@slaves, $_) if ($_);
	}
close(SLAVES);
printf "<td colspan=3><input name=slaves size=60 value='%s'></td> </tr>\n",
	join(" ", @slaves);

print "</table></td></tr></table><p>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'server_fheader'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

local $i = 0;
foreach $t (@nis_files) {
	local $f = &expand_vars($var->{uc($t)}->{'value'}, $var);
	next if (!$f);
	print "<tr>\n" if ($i%2 == 0);
	print "<td><b>",&text('server_file', $text{"desc_$t"} ? $text{"desc_$t"}
							      : $t),"</b></td>\n";
	print "<td><input name=$t size=30 value='$f'></td>\n";
	print "</tr>\n" if ($i++%2 == 1);
	}
}

# parse_server_config()
# Parse and save the NIS server options
sub parse_server_config
{
local ($var, $rule) = &parse_yp_makefile();
local $rc = &parse_rc_config();
if ($var->{'YPPWDDIR'}->{'value'} =~ /^\$\(shell.*\s(\S+)\)$/) {
	# Value comes from some rc.config file!
	local $yrc = &parse_rc_config($1);
	$var->{'YPPWDDIR'}->{'value'} = $yrc->{'YPPWD_SRCDIR'}->{'value'};
	}

$in{'minuid'} =~ /^\d+$/ || &error($text{'server_eminuid'});
$in{'mingid'} =~ /^\d+$/ || &error($text{'server_emingid'});
$in{'domain_auto'} || $in{'domain'} =~ /^[A-Za-z0-9\.\-]+$/ ||
	&error($text{'server_edomain'});
$in{'type'} || gethostbyname($in{'slave'}) || &error($text{'server_eslave'});
&update_makefile($var->{'MINUID'}, $in{'minuid'});
&update_makefile($var->{'MINGID'}, $in{'mingid'});
&update_makefile($var->{'NOPUSH'}, $in{'nopush'});
&update_makefile($var->{'B'}, $in{'b'});
&update_makefile($var->{'LOCALDOMAIN'}, $in{'domain_auto'} ? "`domainname`"
							   : $in{'domain'});
&update_makefile($rule->{'all'}, join(" ", split(/\0/, $in{'tables'})), "");

foreach $t (@nis_files) {
	local $old = &expand_vars($var->{uc($t)}->{'value'}, $var);
	next if (!$old);
	if ($old ne $in{$t}) {
		$in{$t} =~ /\S/ || &error(&text('server_efile', $text{"desc_$t"}));
		&update_makefile($var->{uc($t)}, $in{$t});
		}
	}
&flush_file_lines();

open(SLAVES, ">/var/yp/ypservers");
foreach $s (split(/\s+/, $in{'slaves'})) {
	print SLAVES "$s\n";
	}
close(SLAVES);

local $init1 = &init_script("ypserv");
local $init2 = &init_script("yppasswdd");
&system_logged("$init1 stop >/dev/null 2>&1");
&system_logged("$init2 stop >/dev/null 2>&1");
if ($in{'boot'}) {
	&enable_on_boot("ypserv");
	&enable_on_boot("yppasswdd");
	&save_rc_config($rc, "START_YPSERV", "yes");
	&save_rc_config($rc, "START_YPPASSWDD", "yes");
	}
else {
	&save_rc_config($rc, "START_YPSERV", "no");
	&save_rc_config($rc, "START_YPPASSWDD", "no");
	}
if ($in{'boot'}) {
	&system_logged("$init1 start >/dev/null 2>&1");
	&system_logged("$init2 start >/dev/null 2>&1");
	}
if ($in{'type'}) {
	# Master server
	delete($config{'slave'});
	&apply_table_changes() if ($in{'boot'});
	}
else {
	$out = &backquote_logged("/usr/lib/yp/ypinit -s $in{'slave'} 2>&1");
	if ($?) { &error("<tt>$out</tt>"); }
	$config{'slave'} = $in{'slave'};
	}
&write_file("$module_config_directory/config", \%config);
}

# get_server_mode()
# Returns 0 if the NIS server is inactive, 1 if active as a master, or 2 if
# active as a slave.
sub get_server_mode
{
if (!&check_on_boot("ypserv")) {
	return 0;
	}
elsif ($config{'slave'}) {
	return 2;
	}
else {
	return 1;
	}
}

# list_nis_tables()
# Returns a list of structures of all NIS tables
sub list_nis_tables
{
local ($var, $rule) = &parse_yp_makefile();
if ($var->{'YPPWDDIR'}->{'value'} =~ /^\$\(shell.*\s(\S+)\)$/) {
	# Value comes from some rc.config file!
	local $yrc = &parse_rc_config($1);
	$var->{'YPPWDDIR'}->{'value'} = $yrc->{'YPPWD_SRCDIR'}->{'value'};
	}
local @rv;
local $dom = $var->{'LOCALDOMAIN'}->{'value'};
chop($dom = `domainname`) if ($dom =~ /`.*domainname`/);
local %file;
map { $file{uc($_)} = &expand_vars($var->{uc($_)}->{'value'}, $var) } @nis_files;
local @all = split(/\s+/, $rule->{'all'}->{'value'});
foreach $t (@all) {
	local $table = { 'table' => $t,
		         'index' => scalar(@rv),
		         'domain' => $dom };
	if ($t eq "passwd") {
		if ($var->{'MERGE_PASSWD'}->{'value'} eq 'true') {
			$table->{'type'} = 'passwd_shadow';
			$table->{'files'} = [ $file{'PASSWD'}, $file{'SHADOW'} ];
			}
		elsif (&indexof('shadow', @all) >= 0) {
			# Show separate shadow and passwd tables as one table
			$table->{'type'} = 'passwd_shadow_full';
			$table->{'files'} = [ $file{'PASSWD'}, $file{'SHADOW'} ];
			@all = grep { $_ ne 'shadow' } @all;
			}
		else {
			$table->{'type'} = 'passwd';
			$table->{'files'} = [ $file{'PASSWD'} ];
			}
		}
	elsif ($t eq "group") {
		if ($var->{'MERGE_GROUP'}->{'value'} eq 'true') {
			$table->{'type'} = 'group_shadow';
			$table->{'files'} = [ $file{'GROUP'}, $file{'GSHADOW'} ];
			}
		else {
			$table->{'type'} = 'group';
			$table->{'files'} = [ $file{'GROUP'} ];
			}
		}
	elsif ($t eq "netgrp") {
		$table->{'type'} = "netgroup";
		$table->{'files'} = [ $file{'NETGROUP'} ];
		}
	elsif ($t eq "mail") {
		$table->{'type'} = "aliases";
		$table->{'files'} = [ $file{'ALIASES'} ];
		}
	else {
		$table->{'type'} = $t;
		$table->{'files'} = [ $file{uc($t)} ];
		}
	push(@rv, $table);
	}
return @rv;
}

# apply_table_changes()
# Do whatever is necessary for the table text files to be loaded into
# the NIS server
sub apply_table_changes
{
&system_logged("(cd /var/yp ; make) >/dev/null 2>&1 </dev/null");
}

# show_server_security()
# Show NIS server security-related options
sub show_server_security
{
local ($opts, $hosts) = &parse_ypserv_conf();

local $port = $opts->{'xfr_check_port'} ? $opts->{'xfr_check_port'}->{'value'}
					: 1;
print "<tr> <td><b>$text{'security_port'}</b></td>\n";
printf "<td><input type=radio name=port value=1 %s> %s\n",
	$port ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=port value=0 %s> %s</td> </tr>\n",
	$port ? '' : 'checked', $text{'no'};

print "<tr> <td valign=top><b>$text{'security_maps'}</b></td>\n";
print "<td><table border>\n";
print "<tr $tb> <td><b>$text{'security_hosts'}</b></td> ",
      "<td><b>$text{'security_map'}</b></td> ",
      "<td><b>$text{'security_sec'}</b></td> ",
      "<td><b>$text{'security_mangle'}</b></td> </tr>\n";
local $i = 0;
foreach $h (@$hosts, { }) {
	print "<tr $cb>\n";
	print "<td><input name=host_$i size=20 value='$h->{'host'}'></td>\n";
	printf "<td><input type=radio name=map_def_$i value=1 %s> %s\n",
		$h->{'map'} eq '*' ? 'checked' : '', $text{'security_tall'};
	printf "<input type=radio name=map_def_$i value=0 %s>\n",
		$h->{'map'} eq '*' ? '' : 'checked';
	printf "<input name=map_$i size=20 value='%s'></td>\n",
		$h->{'map'} eq '*' ? '' : $h->{'map'};
	print "<td><select name=sec_$i>\n";
	foreach $s ('none', 'port', 'deny', 'des') {
		printf "<option value=%s %s>%s\n",
			$s, $h->{'sec'} eq $s ? 'selected' : '',
			$text{"security_sec_$s"};
		}
	print "</select></td>\n";
	printf "<td><input name=mangle_$i type=radio value=0 %s> %s\n",
		$h->{'mangle'} ? '' : 'checked', $text{'security_none'};
	printf "<input name=mangle_$i type=radio value=1 %s> %s\n",
		$h->{'mangle'} ? 'checked' : '';
	print "<input name=field_$i size=4 value='$h->{'field'}'></td>\n";
	print "</tr>\n";
	$i++;
	}
print "</table></td> </tr>\n";
}

# parse_server_security()
# Save and apply server security options
sub parse_server_security
{
# Save security settings
local ($opts, $hosts) = &parse_ypserv_conf();
local $lref = &read_file_lines($ypserv_conf);
local $xfr = $opts->{'xfr_check_port'};
local $line = $in{'port'} ? 'xfr_check_port: yes' : 'xfr_check_port: no';
if ($xfr) {
	$lref->[$xfr->{'line'}] = $line;
	}
else {
	push(@$lref, $line);
	}

# Save host restrictions
local ($i, $j, $offset);
for($i=0; defined($in{"host_$i"}); $i++) {
	next if (!$in{"host_$i"});
	$in{"host_$i"} =~ /^[^:\s]+$/ ||
		&error(&text('security_ehost', $in{"host_$i"}));
	$in{"map_def_$i"} || $in{"map_$i"} =~ /^[^:\s]+$/ ||
		&error(&text('security_emap', $in{"map_$i"}));
	$in{"field_$i"} =~ /^\d*$/ ||
		&error(&text('security_efield', $in{"field_$i"}));
	local @line = ( $in{"host_$i"},
		        $in{"map_def_$i"} ? "*" : $in{"map_$i"},
		        $in{"sec_$i"},
		        $in{"mangle_$i"} ? "yes" : "no" );
	push(@line, $in{"field_$i"})
		if ($in{"field_$i"} && $in{"field_$i"} != 2);
	local $old = $hosts->[$j++];
	if ($old) {
		$lref->[$old->{'line'}] = join(":", @line);
		}
	else {
		push(@$lref, join(":", @line));
		}
	}
while($hosts->[$j]) {
	splice(@$lref, $hosts->[$j]->{'line'}-$offset, 1);
	$j++; $offset++;
	}
&flush_file_lines();

# Apply the changes
if (open(PID, $pid_file) && <PID> =~ /(\d+)/ && kill(0, $1)) {
	&kill_logged('HUP', $1);
	close(PID);
	}
}

# parse_rc_config([filename])
sub parse_rc_config
{
local $rc;
local $lnum = 0;
local $f = $_[0] ? $_[0] : $rc_config;
open(CONF, $f);
while(<CONF>) {
	s/\r|\n//g;
	s/#.*$//g;
	if (/([^=\s]+)="(.*)"/) {
		$rc->{$1} = { 'value' => $2,
			      'line' => $lnum };
		}
	elsif (/([^=\s]+)=(\S+)/) {
		$rc->{$1} = { 'value' => $2,
			      'line' => $lnum };
		}
	$lnum++;
	}
close(CONF);
return $rc;
}

# save_rc_config(&config, directive, value)
sub save_rc_config
{
local $old = $_[0]->{$_[1]};
local $line = "$_[1]=\"$_[2]\"\n";
if ($old) {
	&replace_file_line($rc_config, $old->{'line'}, $line);
	}
else {
	open(RC, ">>$rc_config");
	print RC $line;
	close(RC);
	}
}



1;

 0707010000bb5e000081a40000000000000002000000013ac0388600001a9b000000200000000000000000000000000000001200000003reloc/os_list.txt Sun Solaris			2.5	solaris		2.5	$uname =~ /SunOS.*\s5\.5\s/i
Sun Solaris			2.5.1	solaris		2.5.1	$uname =~ /SunOS.*\s5\.5\.1\s/i
Sun Solaris			2.6	solaris		2.6	$uname =~ /SunOS.*\s5\.6\s/i
Sun Solaris			7	solaris		7	$uname =~ /SunOS.*\s5\.7\s/i
Sun Solaris			8	solaris		8	$uname =~ /SunOS.*\s5\.8\s/i
Caldera OpenLinux eServer	2.3	open-linux	2.3e	$etc_issue =~ /OpenLinux.*eServer.*\n.*\s2\.3\s/i
Caldera OpenLinux		2.3	open-linux	2.3	$etc_issue =~ /OpenLinux.*\n.*\s2\.3\s/i
Caldera OpenLinux		2.4	open-linux	2.4	$etc_issue =~ /OpenLinux.*\n.*\s2\.4\s/i
Caldera OpenLinux		2.5	open-linux	2.5	$etc_issue =~ /OpenLinux.*\n.*\s2\.5\s/i || $etc_issue =~ /Caldera.*2000/i
Caldera OpenLinux		3.1	open-linux	3.1e	$etc_issue =~ /OpenLinux.*3\.1/i
Redhat Linux			4.0	redhat-linux	4.0
Redhat Linux			4.1	redhat-linux	4.1
Redhat Linux			4.2	redhat-linux	4.2
Redhat Linux			5.0	redhat-linux	5.0	$etc_issue =~ /red\s*hat.*\s5\.0/i
Redhat Linux			5.1	redhat-linux	5.1	$etc_issue =~ /red\s*hat.*\s5\.1/i
Redhat Linux			5.2	redhat-linux	5.2	$etc_issue =~ /red\s*hat.*\s5\.2/i
Redhat Linux			6.0	redhat-linux	6.0	$etc_issue =~ /red\s*hat.*\s6\.0/i || `cat /etc/redhat-release 2>&1` =~ /6\.0/
Redhat Linux			6.1	redhat-linux	6.1	$etc_issue =~ /red\s*hat.*\s6\.1/i || `cat /etc/redhat-release 2>&1` =~ /6\.1/
Redhat Linux			6.2	redhat-linux	6.2	$etc_issue =~ /red\s*hat.*\s6\.2/i || `cat /etc/redhat-release 2>&1` =~ /6\.2/
Redhat Linux			7.0	redhat-linux	7.0	$etc_issue =~ /red\s*hat.*\s7\.0/i || `cat /etc/redhat-release 2>&1` =~ /7\.0/
Redhat Linux			7.1	redhat-linux	7.1	$etc_issue =~ /red\s*hat.*\s7\.1/i || `cat /etc/redhat-release 2>&1` =~ /7\.1/
Slackware Linux			3.2	slackware-linux	3.2
Slackware Linux			3.3	slackware-linux	3.3
Slackware Linux			3.4	slackware-linux	3.4
Slackware Linux			3.5	slackware-linux	3.5
Slackware Linux			3.6	slackware-linux	3.6
Slackware Linux			4.0	slackware-linux	4.0
Slackware Linux			7.0	slackware-linux	7.0
Slackware Linux			7.1	slackware-linux	7.1
Debian Linux			1.3	debian-linux	1.3
Debian Linux			2.0	debian-linux	2.0	$etc_issue =~ /Debian.*\s2\.0\s/i
Debian Linux			2.1	debian-linux	2.1	$etc_issue =~ /Debian.*\s2\.1\s/i
Debian Linux			2.2	debian-linux	2.2	$etc_issue =~ /Debian.*\s2\.2\s/i
SuSE Linux			5.1	suse-linux	5.1
SuSE Linux			5.2	suse-linux	5.2
SuSE Linux			5.3	suse-linux	5.3
SuSE Linux			6.0	suse-linux	6.0	$etc_issue =~ /SuSE\s+Linux\s+6\.0\s/i
SuSE Linux			6.1	suse-linux	6.1	$etc_issue =~ /SuSE\s+Linux\s+6\.1\s/i
SuSE Linux			6.2	suse-linux	6.2	$etc_issue =~ /SuSE\s+Linux\s+6\.2\s/i
SuSE Linux			6.3	suse-linux	6.3	$etc_issue =~ /SuSE\s+Linux\s+6\.3\s/i
SuSE Linux			6.4	suse-linux	6.4	$etc_issue =~ /SuSE\s+Linux\s+6\.4\s/i
SuSE Linux			7.0	suse-linux	7.0	$etc_issue =~ /SuSE\s+Linux\s+7\.0\s/i
SuSE Linux			7.1	suse-linux	7.1	$etc_issue =~ /SuSE\s+Linux\s+7\.1\s/i
Corel Linux			1.0	corel-linux	1.0	$etc_issue =~ /Corel\s+LINUX\s+1\.0/i
Corel Linux			1.1	corel-linux	1.1	$etc_issue =~ /Corel\s+LINUX\s+1\.1/i
Corel Linux			1.2	corel-linux	1.2	$etc_issue =~ /Corel\s+LINUX\s+1\.2/i
TurboLinux			4.0	turbo-linux	4.0	`cat /etc/turbolinux-release 2>&1` =~ /release\s+4\.0\s+/i
TurboLinux			6.0	turbo-linux	6.0	`cat /etc/turbolinux-release 2>&1` =~ /release\s+6\.0\s+/i
Cobalt Linux			2.2	cobalt-linux	2.2	$etc_issue =~ /Cobalt\s+Linux\s+release\s+2.2/i
Cobalt Linux			5.0	cobalt-linux	5.0	$etc_issue =~ /Cobalt\s+Linux\s+release\s+5.0/i
Cobalt Linux			6.0	cobalt-linux	6.0	$etc_issue =~ /Cobalt\s+Linux\s+release\s+6.0/i
Mandrake Linux			5.3	redhat-linux	5.0	$etc_issue =~ /Mandrake\s+release\s+5\.3/i
Mandrake Linux			6.0	redhat-linux	6.0	$etc_issue =~ /Mandrake\s+release\s+6\.0/i
Mandrake Linux			6.1	redhat-linux	6.0	$etc_issue =~ /Mandrake\s+release\s+6\.1/i
Mandrake Linux			7.0	redhat-linux	6.1	$etc_issue =~ /Mandrake\s+release\s+7\.0/i
Mandrake Linux			7.1	redhat-linux	6.2	$etc_issue =~ /Mandrake\s+release\s+7\.1/i
Mandrake Linux			7.2	redhat-linux	7.0	$etc_issue =~ /Mandrake\s+release\s+7\.2/i
Delix DLD Linux			5.2	redhat-linux	4.0
Delix DLD Linux			5.3	redhat-linux	5.0
Delix DLD Linux			6.0	redhat-linux	6.0
Conectiva Linux			3.0	redhat-linux	5.2	$etc_issue =~ /Conectiva.*Linux.*3\.0/i
Conectiva Linux			4.0	redhat-linux	6.0	$etc_issue =~ /Conectiva.*Linux.*4\.0/i
Conectiva Linux			4.1	redhat-linux	6.1	$etc_issue =~ /Conectiva.*Linux.*4\.1/i
Conectiva Linux			4.2	redhat-linux	6.1	$etc_issue =~ /Conectiva.*Linux.*4\.2/i
Conectiva Linux			5.0	redhat-linux	6.2	$etc_issue =~ /Conectiva.*Linux.*5\.0/i
Conectiva Linux			5.1	redhat-linux	6.2	$etc_issue =~ /Conectiva.*Linux.*5\.1/i
Conectiva Linux			6.0	redhat-linux	7.0	$etc_issue =~ /Conectiva.*Linux.*6\.0/i
MkLinux				DR2.1	redhat-linux	4.0
MkLinux				DR3	redhat-linux	5.0
LinuxPPC			2000	redhat-linux	6.1	$etc_issue =~ /LinuxPPC\s+2000/i
XLinux				1.0	redhat-linux	6.1
LinuxPL				1.0	redhat-linux	6.1
Linux From Scratch		2.2	lfs-linux	2.2
Trustix				1.1	redhat-linux	6.2	$uname =~ /Trustix.*1\.1/i
Trustix				1.2	redhat-linux	7.0	$uname =~ /Trustix.*1\.2/i
Cendio LBS Linux		3.1	redhat-linux	6.1	$etc_issue =~ /Cendio\s*LBS.*\s3\.1/i || `cat /etc/lbs-release 2>&1` =~ /3\.1/
Cendio LBS Linux		3.2	redhat-linux	6.2	$etc_issue =~ /Cendio\s*LBS.*\s3\.2/i || `cat /etc/lbs-release 2>&1` =~ /3\.2/
Cendio LBS Linux		3.3	redhat-linux	6.2	$etc_issue =~ /Cendio\s*LBS.*\s3\.3/i || `cat /etc/lbs-release 2>&1` =~ /3\.3/
Ute Linux			1.0	redhat-linux	6.2	`cat /etc/ute-release 2>&1` =~ /Ute\s+Linux\s+release\s+1\.0/i
FreeBSD				2.1	freebsd		2.1	$uname =~ /FreeBSD.*\s2\.1/i
FreeBSD				2.2	freebsd		2.2	$uname =~ /FreeBSD.*\s2\.2/i
FreeBSD				3.0	freebsd		3.0	$uname =~ /FreeBSD.*\s3\.0/i
FreeBSD				3.1	freebsd		3.1	$uname =~ /FreeBSD.*\s3\.1/i
FreeBSD				3.2	freebsd		3.2	$uname =~ /FreeBSD.*\s3\.2/i
FreeBSD				3.3	freebsd		3.3	$uname =~ /FreeBSD.*\s3\.3/i
FreeBSD				3.4	freebsd		3.4	$uname =~ /FreeBSD.*\s3\.4/i
FreeBSD				3.5	freebsd		3.5	$uname =~ /FreeBSD.*\s3\.5/i
FreeBSD				4.0	freebsd		4.0	$uname =~ /FreeBSD.*\s4\.0/i
FreeBSD				5.0	freebsd		5.0	$uname =~ /FreeBSD.*\s5\.0/i
OpenBSD				2.5	openbsd		2.5	$uname =~ /OpenBSD.*\s2\.5/i
OpenBSD				2.6	openbsd		2.6	$uname =~ /OpenBSD.*\s2\.6/i
OpenBSD				2.7	openbsd		2.7	$uname =~ /OpenBSD.*\s2\.7/i
BSDI				3.0	freebsd		2.2
BSDI				3.1	freebsd		2.2
BSDI				4.0	freebsd		3.0
HP/UX				10.01	hpux		10.01
HP/UX				10.10	hpux		10.10
HP/UX				10.20	hpux		10.20
HP/UX				10.30	hpux		10.30
HP/UX				11	hpux		11
SGI Irix			6.0	irix		6.0
SGI Irix			6.1	irix		6.1
SGI Irix			6.2	irix		6.2
SGI Irix			6.3	irix		6.3
SGI Irix			6.4	irix		6.4
SGI Irix			6.5	irix		6.5
DEC/Compaq OSF/1		4.0	osf1		4.0
DEC/Compaq OSF/1		5.1	osf1		5.1
IBM AIX				4.3	aix		4.3
SCO UnixWare			7	unixware	7
SCO UnixWare			2	unixware	2
SCO OpenServer			5	openserver	5
MacOS Server X			1.0	macos		1.0
MacOS Server X			1.2	macos		1.2
MacOS Server X			1.3	macos		1.3	$uname =~ /Darwin.*1\.3/i
 0707010000bb5f000081a40000000000000002000000013ac0388600000a71000000200000000000000000000000000000001300000003reloc/oschooser.pl    # oschooser.pl
# Read the list of operating systems and ask the user to choose
# an OS and version

($oslist, $out, $auto) = @ARGV;
open(OS, $oslist) || die "failed to open $oslist : $!";
while(<OS>) {
	chop;
	if (/^([^\t]+)\t+([^\t]+)\t+(\S+)\t+(\S+)\t*(.*)$/) {
		push(@list, [ $1, $2, $3, $4, $5 ]);
		push(@names, $1) if (!$donename{$1}++);
		}
	}
close(OS);

if ($auto) {
	# Try to guess the OS name and version
	if (-r "/etc/.issue") {
		$etc_issue = `cat /etc/.issue`;
		}
	elsif (-r "/etc/issue") {
		$etc_issue = `cat /etc/issue`;
		}
	$uname = `uname -a`;
	foreach $o (@list) {
		if ($o->[4] && eval $o->[4]) {
			# Got a match!
			$ver = $o;
			last;
			}
		}
	if (!$ver) {
		if ($auto == 1) {
			# Failed .. give up
			print "Failed to detect operating system\n";
			exit 1;
			}
		else {
			# Ask the user
			$auto = 0;
			}
		}
	}

if (!$auto) {
	# ask for the operating system name
	$dashes = "-" x 75;
	print <<EOF;
For Webmin to work properly, it needs to know which operating system
type and version you are running. Please select your system type by
entering the number next to it from the list below
$dashes
EOF
	for($i=0; $i<@names; $i++) {
		printf " %2d) %-34s ", $i+1, $names[$i];
		print "\n" if ($i%2);
		}
	print "\n" if ($i%2);
	print $dashes,"\n";
	print "Operating system: ";
	chop($osnum = <STDIN>);
	if ($osnum !~ /^\d+$/) {
		print "ERROR: You must enter the number next to your operating\n";
		print "system, not its name or version number.\n\n";
		exit 9;
		}
	if ($osnum < 1 || $osnum > @names) {
		print "ERROR: $osnum is not a valid operating system number.\n\n";
		exit 10;
		}
	print "\n";

	# Ask for the operating system version
	$name = $names[$osnum-1];
	@vers = grep { $_->[0] eq $name } @list; 
	print <<EOF;
Please choose which version of $name you are running, by entering
the number next to it from the list below
$dashes
EOF
	for($i=0; $i<@vers; $i++) {
		printf " %2d) %-34s ", $i+1, $name." ".$vers[$i]->[1];
		print "\n" if ($i%2);
		}
	print "\n" if ($i%2);
	print $dashes,"\n";
	print "Version: ";
	chop($vnum = <STDIN>);
	if ($vnum !~ /^\d+$/) {
		print "ERROR: You must enter the number next to your operating\n";
		print "system version, not its name or version number.\n\n";
		exit 9;
		}
	if ($vnum < 1 || $vnum > @vers) {
		print "ERROR: $vnum is not a valid operating system number.\n\n";
		exit 10;
		}
	print "\n";
	$ver = $vers[$vnum-1];
	}

# Write the name, version and real name and version to a file
open(OUT, ">$out");
print OUT "os_type='",$ver->[2],"'\n";
print OUT "os_version='",$ver->[3],"'\n";
print OUT "real_os_type='",$ver->[0],"'\n";
print OUT "real_os_version='",$ver->[1],"'\n";
close(OUT);
   0707010002877b000041ed0000000000000001000000043ac03c2e00000000000000200000000000000000000000000000000a00000003reloc/pam 0707010002877c000081a40000000000000002000000013ac038be000000fb000000200000000000000000000000000000001e00000003reloc/pam/config-cobalt-linux lib_dirs=/lib/security
ignore=README .*\.master
pam_dir=/etc/pam.d
mod_equiv=pam_unix_acct.so=pam_pwdb.so pam_unix_auth.so=pam_pwdb.so pam_unix_passwd.so=pam_pwdb.so pam_unix_session.so=pam_pwdb.so pam_unix_sess.so=pam_pwdb.so pam_unix.so=pam_pwdb.so
 0707010002877d000081a40000000000000002000000013ac038be000000f0000000200000000000000000000000000000001d00000003reloc/pam/config-corel-linux  lib_dirs=/lib/security
ignore=README
pam_dir=/etc/pam.d
mod_equiv=pam_unix_acct.so=pam_pwdb.so pam_unix_auth.so=pam_pwdb.so pam_unix_passwd.so=pam_pwdb.so pam_unix_session.so=pam_pwdb.so pam_unix_sess.so=pam_pwdb.so pam_unix.so=pam_pwdb.so
0707010002877e000081a40000000000000002000000013ac038be000000f0000000200000000000000000000000000000001e00000003reloc/pam/config-debian-linux lib_dirs=/lib/security
ignore=README
pam_dir=/etc/pam.d
mod_equiv=pam_unix_acct.so=pam_pwdb.so pam_unix_auth.so=pam_pwdb.so pam_unix_passwd.so=pam_pwdb.so pam_unix_session.so=pam_pwdb.so pam_unix_sess.so=pam_pwdb.so pam_unix.so=pam_pwdb.so
0707010002877f000081a40000000000000002000000013ac038be000000f0000000200000000000000000000000000000001c00000003reloc/pam/config-open-linux   lib_dirs=/lib/security
ignore=README
pam_dir=/etc/pam.d
mod_equiv=pam_unix_acct.so=pam_pwdb.so pam_unix_auth.so=pam_pwdb.so pam_unix_passwd.so=pam_pwdb.so pam_unix_session.so=pam_pwdb.so pam_unix_sess.so=pam_pwdb.so pam_unix.so=pam_pwdb.so
07070100028780000081a40000000000000002000000013ac038be000000f0000000200000000000000000000000000000001e00000003reloc/pam/config-redhat-linux lib_dirs=/lib/security
ignore=README
pam_dir=/etc/pam.d
mod_equiv=pam_unix_acct.so=pam_pwdb.so pam_unix_auth.so=pam_pwdb.so pam_unix_passwd.so=pam_pwdb.so pam_unix_session.so=pam_pwdb.so pam_unix_sess.so=pam_pwdb.so pam_unix.so=pam_pwdb.so
07070100028781000081a40000000000000002000000013ac038be000000f0000000200000000000000000000000000000001c00000003reloc/pam/config-suse-linux   lib_dirs=/lib/security
ignore=README
pam_dir=/etc/pam.d
mod_equiv=pam_unix_acct.so=pam_unix.so pam_unix_auth.so=pam_unix.so pam_unix_passwd.so=pam_unix.so pam_unix_session.so=pam_unix.so pam_unix_sess.so=pam_unix.so pam_unix.so=pam_unix.so
07070100028782000081a40000000000000002000000013ac038be000000f0000000200000000000000000000000000000001d00000003reloc/pam/config-turbo-linux  lib_dirs=/lib/security
ignore=README
pam_dir=/etc/pam.d
mod_equiv=pam_unix_acct.so=pam_pwdb.so pam_unix_auth.so=pam_pwdb.so pam_unix_passwd.so=pam_pwdb.so pam_unix_session.so=pam_pwdb.so pam_unix_sess.so=pam_pwdb.so pam_unix.so=pam_pwdb.so
07070100028783000081a40000000000000002000000013ac038bd000000a3000000200000000000000000000000000000001600000003reloc/pam/config.info pam_dir=PAM configuration directory,0
ignore=Files to ignore in PAM directory,0
lib_dirs=Directories containing PAM libraries,0
mod_equiv=Equivalent PAM modules,0
 07070100028784000081a40000000000000002000000013ac038be000000b5000000200000000000000000000000000000001900000003reloc/pam/config.info.es  pam_dir=Directorio de configuraci髇 de PAM,0
ignore=Archivos a ignorar en directorio PAM,0
lib_dirs=Directorios que contienen bibliotecas PAM,0
mod_equiv=M骴ulos PAM equivalentes,0
   07070100028785000081a40000000000000002000000013ac038be0000009d000000200000000000000000000000000000001900000003reloc/pam/config.info.pl  pam_dir=Katalog konfiguracji PAM,0
ignore=Pliki ignorowane w katalogu PAM,0
lib_dirs=Katalogi zawieraj眂e biblioteki PAM,0
mod_equiv=R體nowa縩e modu硑 PAM,0
   07070100028786000081a40000000000000002000000013ac038be000000ad000000200000000000000000000000000000001900000003reloc/pam/config.info.sv  pam_dir=Katalog f鰎 PAM-inst鋖lningar,0
ignore=Filer som ska ignoreras i PAM-katalogen,0
lib_dirs=Kataloger som inneh錶ler PAM-bibliotek,0
mod_equiv=Utbytbara PAM-moduler,0
   07070100028787000081e40000000000000002000000013ac038be000003f6000000200000000000000000000000000000001a00000003reloc/pam/create_form.cgi #!/usr/local/bin/perl
# create_form.cgi
# Display a form for creating a new PAM service

require './pam-lib.pl';
&header($text{'create_title'}, "");
print "<hr>\n";

print "<form action=create_pam.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'create_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'create_name'}</b></td>\n";
print "<td><input name=name size=20></td> </tr>\n";

print "<tr> <td><b>$text{'create_desc'}</b></td>\n";
print "<td><input name=desc size=30></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'create_mods'}</b></td> <td>\n";
print "<input type=radio name=mods value=0> $text{'create_0'}<br>\n";
print "<input type=radio name=mods value=1 checked> $text{'create_1'}<br>\n";
print "<input type=radio name=mods value=2> $text{'create_2'}\n";
print "</td> </tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value='$text{'create'}'></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

  07070100028788000081e40000000000000002000000013ac038be000006f4000000200000000000000000000000000000001900000003reloc/pam/create_pam.cgi  #!/usr/local/bin/perl
# create_pam.cgi
# Create a new PAM service

require './pam-lib.pl';
&ReadParse();
&error_setup($text{'create_err'});

# Create the empty file
$in{'name'} =~ /^\S+$/ || &error($text{'create_ename'});
$f = "$config{'pam_dir'}/$in{'name'}";
&lock_file($f);
open(FILE, ">$f");
print FILE "#%PAM-1.0\n";
print FILE "# description: $in{'desc'}\n" if ($in{'desc'});
close(FILE);
chmod(0644, $f);

# Create extra PAM modules
if ($in{'mods'} == 1) {
	# Setup for unix authentication
	&create_module($in{'name'}, { 'type' => 'auth',
				      'control' => 'required',
				      'module' => 'pam_pwdb.so',
				      'args' => 'shadow nullok' });
	&create_module($in{'name'}, { 'type' => 'account',
				      'control' => 'required',
				      'module' => 'pam_pwdb.so' });
	&create_module($in{'name'}, { 'type' => 'password',
				      'control' => 'required',
				      'module' => 'pam_pwdb.so',
				      'args' => 'shadow nullok use_authtok' });
	&create_module($in{'name'}, { 'type' => 'session',
				      'control' => 'required',
				      'module' => 'pam_pwdb.so' });
	}
elsif ($in{'mods'} == 2) {
	# Setup to deny access
	&create_module($in{'name'}, { 'type' => 'auth',
				      'control' => 'required',
				      'module' => 'pam_deny.so' });
	&create_module($in{'name'}, { 'type' => 'account',
				      'control' => 'required',
				      'module' => 'pam_deny.so' });
	&create_module($in{'name'}, { 'type' => 'password',
				      'control' => 'required',
				      'module' => 'pam_deny.so' });
	&create_module($in{'name'}, { 'type' => 'session',
				      'control' => 'required',
				      'module' => 'pam_deny.so' });
	}

&unlock_file($f);
&webmin_log("create", "pam", $in{'name'}, { 'name' => $in{'name'},
					    'file' => $f });
&redirect("");

07070100028789000081e40000000000000002000000013ac038be0000011e000000200000000000000000000000000000001900000003reloc/pam/delete_pam.cgi  #!/usr/local/bin/perl
# delete_pam.cgi
# Delete a PAM service

require './pam-lib.pl';
&ReadParse();
@pam = &get_pam_config();
$f = $pam[$in{'idx'}]->{'file'};
&lock_file($f);
unlink($f);
&unlock_file($f);
&webmin_log("delete", "pam", $pam[$in{'idx'}]->{'name'}, $pam);
&redirect("");

  0707010002878a000081e40000000000000002000000013ac038be00000a0a000000200000000000000000000000000000001700000003reloc/pam/edit_mod.cgi    #!/usr/local/bin/perl
# edit_mod.cgi
# Edit one PAM authentication module for some service

require './pam-lib.pl';
&ReadParse();
@pam = &get_pam_config();
$pam = $pam[$in{'idx'}];
if ($in{'midx'} ne '') {
	$mod = $pam->{'mods'}->[$in{'midx'}];
	$module = $mod->{'module'};
	$module =~ s/^.*\///;
	$type = $mod->{'type'};
	&header($text{'mod_edit'}, "");
	}
else {
	$module = $in{'module'};
	$type = $in{'type'};
	&header($text{'mod_create'}, "");
	}

print "<hr>\n";

print "<form action=save_mod.cgi>\n";
print "<input type=hidden name=idx value='$in{'idx'}'>\n";
print "<input type=hidden name=midx value='$in{'midx'}'>\n";
print "<input type=hidden name=_module value='$in{'module'}'>\n";
print "<input type=hidden name=_type value='$in{'type'}'>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'mod_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'mod_name'}</b></td>\n";
$t = $text{'desc_'.$pam->{'name'}};
print "<td><tt>$pam->{'name'}</tt> ",$pam->{'desc'} ? "($pam->{'desc'})" :
				     $t ? "($t)" : "","</td>\n";

print "<td><b>$text{'mod_mod'}</b></td>\n";
$t = $text{$module};
print "<td><tt>$module</tt> ",$t ? "($t)" : "","</td> </tr>\n";

print "<tr> <td><b>$text{'mod_type'}</b></td>\n";
print "<td>",$text{'mod_type_'.$type},"</td>\n";

print "<td><b>$text{'mod_control'}</b></td>\n";
print "<td><select name=control>\n";
foreach $c ('required', 'requisite', 'sufficient', 'optional') {
	printf "<option value=%s %s>%s (%s)\n",
		$c, $mod->{'control'} eq $c ? 'selected' : '',
		$text{'control_'.$c}, $text{'control_desc_'.$c};
	}
print "</select></td> </tr>\n";

if (-r "./$module.pl") {
	do "./$module.pl";
	if (!$module_has_no_args) {
		print "<tr> <td colspan=4><hr></td> </tr>\n";
		foreach $a (split(/\s+/, $mod->{'args'})) {
			if ($a =~ /^([^\s=]+)=(\S*)$/) {
				$args{$1} = $2;
				}
			else {
				$args{$a} = "";
				}
			}
		&display_module_args($pam, $mod, \%args);
		}
	}
else {
	print "<tr> <td colspan=4><hr></td> </tr>\n";
	print "<tr> <td><b>$text{'mod_args'}</b></td>\n";
	print "<td colspan=3><input name=args size=50 ",
	      "value='$mod->{'args'}'></td> </tr>\n";
	}

print "</table></td></tr></table>\n";
print "<table width=100%><tr>\n";
print "<td><input type=submit value='$text{'save'}'></td>\n";
if ($in{'midx'} ne '') {
	print "<td align=right><input type=submit name=delete ",
	      "value='$text{'delete'}'></td>\n";
	}
print "</tr></table>\n";
print "</form>\n";

print "<hr>\n";
&footer("edit_pam.cgi?idx=$in{'idx'}", $text{'edit_return'});


  0707010002878b000081e40000000000000002000000013ac038be00000b67000000200000000000000000000000000000001700000003reloc/pam/edit_pam.cgi    #!/usr/local/bin/perl
# edit_pam.cgi
# Display the modules for some PAM service

require './pam-lib.pl';
&ReadParse();

&header($text{'edit_title'}, "");
@pams = &get_pam_config();
$pam = $pams[$in{'idx'}];
print "<hr>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'edit_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td width=10%><b>$text{'edit_name'}</b></td>\n";
$t = $text{'desc_'.$pam->{'name'}};
print "<td><tt>$pam->{'name'}</tt> ",$pam->{'desc'} ? "($pam->{'desc'})" :
				     $t ? "($t)" : "","</td>\n";
print "</tr>\n";

foreach $t ('auth', 'account', 'session', 'password') {
	print "<tr> <td colspan=2>\n";
	print "<form action=edit_mod.cgi><table border width=100%>\n";
	print "<tr $tb> <td><b>",$text{"edit_header_$t"},"</b></td> </tr>\n";
	print "<tr $cb> <td>\n";

	local @mods = grep { $_->{'type'} eq $t } @{$pam->{'mods'}};
	print "<table width=100%>\n";
	if (@mods) {
		print "<tr $cb> <td width=20%><b>$text{'edit_mod'}</b></td> ",
		      "<td width=35%><b>$text{'edit_desc'}</b></td> ",
		      "<td width=20%><b>$text{'edit_control'}</b></td> ",
		      "<td width=20%><b>$text{'edit_args'}</b></td> ",
		      "<td width=5%><b>$text{'edit_move'}</b></td> </tr>\n";
		}
	else {
		print "<tr> <td colspan=5><b>$text{'edit_none'}",
		      "</b></td> </tr>\n";
		}
	foreach $m (@mods) {
		local $mn = $m->{'module'};
		$mn =~ s/^.*\///;
		print "<tr $cb>\n";
		print "<td><a href='edit_mod.cgi?idx=$pam->{'index'}&",
		      "midx=$m->{'index'}'>$mn</a></td>\n";
		print "<td>",$text{$mn} ? $text{$mn} : "<br>","</td>\n";
		print "<td>",$text{'control_'.$m->{'control'}},"</td>\n";
		print "<td>",$m->{'args'} ? $m->{'args'} : "<br>","</td>\n";
		print "<td>";
		if ($m eq $mods[$#mods]) {
			print "<img src=images/gap.gif>";
			}
		else {
			print "<a href='move.cgi?idx=$pam->{'index'}&",
			      "midx=$m->{'index'}&down=1'><img ",
			      "src=images/down.gif border=0></a>";
			}
		if ($m eq $mods[0]) {
			print "<img src=images/gap.gif>";
			}
		else {
			print "<a href='move.cgi?idx=$pam->{'index'}&",
			      "midx=$m->{'index'}&up=1'><img ",
			      "src=images/up.gif border=0></a>";
			}
		print "</tr>\n";
		}
	print "</table>\n";
	print "<input type=hidden name=idx value='$in{'idx'}'>\n";
	print "<input type=hidden name=type value='$t'>\n";
	print "<input type=submit value='$text{'edit_addmod'}'>\n";
	print "<select name=module>\n";
	foreach $m (sort { $a cmp $b } &list_modules()) {
		printf "<option value=%s>%s\n",
			$m, $text{$m} ? "$m ($text{$m})" : $m;
		}
	print "</select></td> </tr>\n";
	print "</table></form></td></tr>\n";
	}

print "<form action=delete_pam.cgi>\n";
print "</table></td></tr></table>\n";
print "<input type=hidden name=idx value='$in{'idx'}'>\n";
print "<input type=submit value='$text{'edit_delete'}'>\n";
print "</form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

 07070100029f5b000041ed0000000000000001000000023ac03c2c00000000000000200000000000000000000000000000001100000003reloc/pam/images  07070100029f5c000081a40000000000000002000000013ac038bd0000006c000000200000000000000000000000000000001a00000003reloc/pam/images/down.gif GIF89a    哪膔rr   !Made with GIMP !
  ,       +湉汙"I砹U迟i滣eJ僢A僆m.杯薲N  ;07070100029f5d000081a40000000000000002000000013ac038bd00000049000000200000000000000000000000000000001900000003reloc/pam/images/gap.gif  GIF89a    !Made with GIMP !
   ,       剰┧蹿嫵> ;   07070100029f5e000081a40000000000000002000000013ac038bd00000113000000200000000000000000000000000000001a00000003reloc/pam/images/icon.gif GIF89a0 0   烫虣櫃fff            !    ,    0 0  很0蔍8死{讬'8yB俫B]z秮:渕}鲯嚨炩!鰧粻Ya倻MJ	酼礧捌 gu@鬡U?賍w咵/羆巷}y剕&z剢巻 憭弾崈棌晧殩瀧ぅⅲ洜~挱疁埓捣祲悎恫【聥炼拦贸皺橇幣派维泄氏斎已虆乇趰*徭乳 庄飶B蝮趱鲼	 ; 07070100029f5f000081a40000000000000002000000013ac038bd00000067000000200000000000000000000000000000001800000003reloc/pam/images/up.gif   GIF89a    哪膔rr   !Made with GIMP !
  ,       &湉
倈'戍炫Io蝲b%斅e柫俁G;S鮯砯 ; 0707010002878c000081e40000000000000002000000013ac038bd000004ab000000200000000000000000000000000000001400000003reloc/pam/index.cgi   #!/usr/local/bin/perl
# index.cgi
# Display PAM services on the system

require './pam-lib.pl';
&header($text{'index_title'}, undef, undef, 1, 1);
print "<hr>\n";

@pams = sort { $a->{'name'} cmp $b->{'name'} } &get_pam_config();
if (!@pams) {
	print "<p>",&text('index_none', "<tt>$config{'pam_dir'}</tt>",
			  "/config.cgi?$module_name"),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

$mid = int((@pams-1) / 2);
print "<table width=100%><tr> <td width=50% valign=top>\n";
&pam_table(@pams[0 .. $mid]);
print "</td> <td width=50% valign=top>\n";
&pam_table(@pams[$mid+1 .. $#pams]);
print "</td> </tr></table>\n";
print "<a href='create_form.cgi'>$text{'index_add'}</a><p>\n";

print "<hr>\n";
&footer("/", $text{'index'});

sub pam_table
{
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'index_name'}</b></td> ",
      "<td><b>$text{'index_desc'}</b></td> </tr>\n";
foreach $p (@_) {
	print "<tr $cb>\n";
	print "<td><a href='edit_pam.cgi?idx=$p->{'index'}'>",
	      "$p->{'name'}</a></td>\n";
	local $t = $text{'desc_'.$p->{'name'}};
	print "<td>",$p->{'desc'} ? $p->{'desc'} : $t ? $t : "<br>","</td>\n";
	print "</tr>\n";
	}
print "</table>\n";
}

 0707010002b523000041ed0000000000000001000000023ac03c2d00000000000000200000000000000000000000000000000f00000003reloc/pam/lang    0707010002b524000081a40000000000000002000000013ac038bd00001f3b000000200000000000000000000000000000001200000003reloc/pam/lang/en index_title=PAM Authentication
index_name=Service
index_desc=Description
index_add=Add a new PAM service
index_return=service list
index_none=No PAM configuration files were found on your system in the directory $1. Maybe PAM is not supported, or your <a href='$2'>module configuration</a> is incorrect.

desc_su=Switch user
desc_login=Local or remote login
desc_samba=Samba Windows file server
desc_imap=IMAP mail server
desc_pop=POP mail server
desc_kde=KDE login
desc_rexec=Remote exec server
desc_rlogin=Remote login server
desc_rsh=Remote shell server
desc_passwd=Password change
desc_chfn=Change finger information
desc_chsh=Change shell
desc_ftp=File transfer server
desc_ftpd=File transfer server
desc_wu-ftpd=WuFTPd File transfer server
desc_xscreensaver=Screen saver
desc_other=Other services
desc_netatalk.pamd=$desc_netatalk
desc_netatalk=Netatalk Apple file server
desc_webmin=Webmin web server
desc_xdm=Local or remote X login
desc_gdm=Gnome X login
desc_linuxconf=LinuxConf login
desc_linuxconf-pair=LinuxConf additional login
desc_linuxconf-auth=LinuxConf authentication
desc_xlock=Screen lock
desc_vlock=Virtual console lock
desc_kbdrate=Keyboard rate control
desc_halt=Halt system
desc_poweroff=Power off system
desc_reboot=Reboot system
desc_shutdown=Shutdown system
desc_mcserv=Midnight commander
desc_kppp=KDE PPP client tool
desc_xserver=X11 server
desc_gnorpm-auth=Gnome RPM tool
desc_kpackage=KDE RPM tool
desc_ppp=PPP daemon login
desc_rp3-config=Redhat PPP client tool
desc_up2date=Redhat Linux update agent
desc_up2date-config=Redhat Linux update config
desc_sudo=Limited root command execution
desc_httpd=Web Server
desc_qpop=POP Mail Server
desc_sshd=SSH Login
desc_squid=Squid Proxy Server
desc_bindconf=Redhat BIND config tool
desc_apacheconf=Redhat Apache config tool
desc_adsl-config=Redhat ADSL config tool
desc_internet-config=Redhat internet config tool
desc_isdn-config=Redhat ISDN config tool
desc_kontrol-panel=Redhat KDE control panel
desc_kscreensaver=KDE screen saver
desc_printconf-gui=Redhat printer config tool
desc_rhn_register=Redhat Network registration
desc_system-auth=Common authentication

edit_title=Edit PAM Service
edit_header=PAM service details
edit_name=Service name
edit_header_auth=Authentication steps
edit_header_account=Account verification steps
edit_header_session=Session setup steps
edit_header_password=Password change steps
edit_mod=PAM module
edit_desc=Description
edit_args=Parameters
edit_addmod=Add step for:
edit_control=Failure level
edit_none=No PAM modules specified for this step
edit_delete=Delete PAM service
edit_move=Move
edit_return=PAM service

pam_pwdb.so=Unix password authentication
pam_securetty.so=Secure TTY check for root
pam_nologin.so=<tt>/etc/nologin</tt> file check
pam_mail.so=New mail notification
pam_lastlog.so=Last login notification
pam_rootok.so=<tt>root</tt> user only check
pam_cracklib.so=Strong password check
pam_access.so=Access control file check
pam_deny.so=Always deny access
pam_env.so=Set environment variables
pam_ftp.so=FTP authentication check
pam_time.so=Login time check
pam_group.so=Set group membership
pam_listfile.so=File contents check
pam_limits.so=Set resource limits
pam_mkhomedir.so=Create home directory
pam_motd.so=Display the message-of-the-day file
pam_permit.so=Always allow access
pam_radius.so=RADIUS server authentication
pam_rhosts.so=Check <tt>.rhosts</tt> files
pam_rhosts_auth.so=Check <tt>.rhosts</tt> files
pam_shells.so=Valid shell check
pam_unix.so=Old Unix password authentication
pam_userdb.so=DBM file password authentication
pam_warn.so=Log warning
pam_wheel.so=<tt>wheel</tt> group check
pam_issue.so=Display <tt>/etc/issue</tt> file
pam_ldap.so=LDAP server authentication
pam_unix_auth.so=Unix password authentication
pam_unix_sess.so=Unix session setup
pam_unix_session.so=Unix session setup
pam_unix_acct.so=Unix account verification
pam_unix_passwd.so=Unix password change
pam_stress.so=Application stress test
pam_tally.so=Track failed login attempts
pam_passwd+.so=Password strength check
pam_filter.so=Input/output filter
pam_desgold.so=DESGold smartcard authentication
pam_console.so=Console only check
pam_xauth.so=X authentication
pam_stack.so=Call other PAM service

control_requisite=Requisite
control_required=Required
control_sufficient=Sufficient
control_optional=Optional
control_desc_requisite=Fail authentication immediately on failure
control_desc_required=Fail authentication at end on failure
control_desc_sufficient=Succeed authentication immediately on success
control_desc_optional=Success or failure is ignored

create_title=Create PAM Service
create_header=New PAM service options
create_name=Service name
create_desc=Description
create_mods=Initial PAM modules
create_0=None
create_1=Unix authentication
create_2=Deny all access

mod_edit=Edit PAM Module
mod_create=Add PAM Module
mod_header=PAM module options
mod_name=Service name
mod_mod=PAM module
mod_type=Use in service
mod_type_auth=Authentication
mod_type_account=Account verification
mod_type_session=Session setup
mod_type_password=Password change
mod_control=Failure level
mod_args=Module arguments
mod_err=Failed to save module

pwdb_shadow=Use shadow password file?
pwdb_nullok=Accept null passwords?
pwdb_md5=Use MD5-encrypted passwords?
pwdb_nodelay=Delay after failed login?

listfile_item=Search file for
listfile_item_user=Username
listfile_item_tty=TTY
listfile_item_rhost=Remote hostname
listfile_item_ruser=Remote username
listfile_item_group=Group
listfile_item_shell=Shell
listfile_sense=If found in file
listfile_file=File to search
listfile_onerr=On file error
listfile_fail=Fail
listfile_succeed=Succeed
listfile_apply=Limit check to
listfile_all=All users
listfile_user=Only user
listfile_group=Only group

cracklib_type=Password type in prompt
cracklib_retry=Maximum retries before failure
cracklib_eretry=Missing or invalid number of retries
cracklib_etype=Missing or invalid password type

rhosts_equiv=Read <tt>/etc/hosts.equiv</tt> file?
rhosts_rhosts=Read users' <tt>.rhosts</tt> files?
rhosts_promiscuous=<tt>+</tt> entry allows all hosts?
rhosts_suppress=Log authentication failures?

env_var=Variable name
env_def=Default value
env_over=Override value
env_evar=Variable names cannot contain spaces

securetty_ttys=Secure TTYs

shells_shells=Valid user shells

tally_deny=Failure attempts before denying access
tally_reset=Reset failure count on success
tally_edeny=Missing or invalid number of failure attempts
tally_magic=Failure count applies to <tt>root</tt>?
tally_root=<tt>root</tt> account can be denied?

time_services=Services
time_ttys=TTYs
time_users=Users
time_times=Access times
time_info=All fields can contain multiple values separated by |, and values can use * as a wildcard or ! as a negator.

group_services=Services
group_ttys=TTYs
group_users=Users
group_times=Access times
group_groups=Add groups
group_info=All fields can contain multiple values separated by |, and values can use * as a wildcard or ! as a negator.

wheel_group=Check for membership of group
wheel_group_def=Default (<tt>wheel</tt> or GID 0)
wheel_trust=Group members bypass futher authentication?
wheel_deny=Deny instead of allowing group members?
wheel_egroup=Missing or invalid group name

motd_file=File to display
motd_file_def=Default (<tt>/etc/motd</tt>)
motd_efile=Missing or invalid filename

mail_nopen=Display mail notification at login?
mail_close=Display mail notification at logout?
mail_empty=Notify if the mail file is empty?
mail_noenv=Set $MAIL environment variable?
mail_dir=Mail spool directory
mail_edir=Missing or invalid mail spool directory

stack_service=Pass check on to PAM service

log_pam_create=Created PAM service $1
log_pam_delete=Deleted PAM service $1
log_mod_create=Added PAM module $1 to service $2
log_mod_modify=Modified PAM module $1 in service $2
log_mod_delete=Deleted PAM module $1 in service $2
log_mod_move=Swapped PAM modules in service $3
log_mod_move_l=Swapped PAM modules $1 and $2 in service $3

 0707010002b525000081a40000000000000002000000013ac038bd0000200e000000200000000000000000000000000000001200000003reloc/pam/lang/es index_title=Autenticaci髇 PAM
index_name=Servicio
index_desc=Descripci髇
index_add=A馻dir un nuevo servicio PAM
index_return=lista de servicio
index_none=No se han hallado archivos de configuraci髇 de PAM en tu sistema en el directorio $1. Quiz醩 PAM no est soportado o tu <a href='$2'>configuraci髇 del m骴ulo</a> es incorrecta.

desc_su=Conmutar usuario
desc_login=Login local o remoto
desc_samba=Servidor Samba de archivos Windows
desc_imap=Servidor de correo IMAP
desc_pop=Servidor de correo POP
desc_kde=Login de KDE
desc_rexec=Servidor de ejecuci髇 remota
desc_rlogin=Servidor de login remoto
desc_rsh=Servidor de shell remoto
desc_passwd=Cambio de clave de acceso
desc_chfn=Informaci髇 de cambio de finger
desc_chsh=Cambiar shell
desc_ftp=Servidor de transferencia de archivo
desc_ftpd=Servidor de transferencia de archivo
desc_wu-ftpd=Servidor WuFTPd de transferencia de archivo
desc_xscreensaver=Salvapantallas
desc_other=Otros servicios
desc_netatalk.pamd=$desc_netatalk
desc_netatalk=Servidor de archivos Netatalk de Apple
desc_webmin=Servidor web de Webmin
desc_xdm=X login local o remoto
desc_gdm=X login de Gnome
desc_linuxconf=Login de LinuxConf
desc_linuxconf-pair=Login adicional de LinuxConf
desc_xlock=Bloqueo de pantalla
desc_vlock=Bloqueo de consola virtual
desc_kbdrate=Control de velocidad de teclado
desc_halt=Parar sistema
desc_poweroff=Apagar sistema
desc_reboot=Rearrancar sistema
desc_shutdown=Cerrar sistema
desc_mcserv=Midnight commander
desc_kppp=Herramienta de cliente PPP de KDE
desc_xserver=Servidor X11
desc_gnorpm-auth=Herramienta RPM de Gnome
desc_kpackage=Herramienta RPM de KDE
desc_ppp=Demonio de login de PPP
desc_rp3-config=Herramienta de cliente PPP de Redhat
desc_up2date=Agente de actualizaci髇 de Linux de Redhat
desc_sudo=Ejecuci髇 limitada de comando de root
desc_httpd=Servidor Web
desc_qpop=Servidor de Correo POP

edit_title=Editar Servicio PAM
edit_header=Detalles de servicio PAM
edit_name=Nombre de servicio
edit_header_auth=Pasos de autenticaci髇
edit_header_account=Pasos de verificaci髇 de cuenta
edit_header_session=Pasos de configuraci髇 de sesi髇
edit_header_password=Pasos de cambio de clave de acceso
edit_mod=M骴ulo PAM
edit_desc=Descripci髇
edit_args=Par醡etros
edit_addmod=A馻dir paso para:
edit_control=Nivel de fallo
edit_none=No se han especificado m骴ulos de PAM para este paso
edit_delete=Borrar servicio de PAM
edit_move=Mover
edit_return=Servicio de PAM

pam_pwdb.so=Autenticaci髇 de clave de acceso de Unix
pam_securetty.so=Revisi髇 de TTY segura para root
pam_nologin.so=Revisar archivo <tt>/etc/nologin</tt>
pam_mail.so=Notificaci髇 de nuevo correo
pam_lastlog.so=Notificaci髇 de 鷏timo login
pam_rootok.so=Revisar s髄o usuario <tt>root</tt>
pam_cracklib.so=Revisi髇 exhaustiva de clave de acceso
pam_access.so=Revisar archivo de control de acceso
pam_deny.so=Siempre denegar acceso
pam_env.so=Poner variables de entorno
pam_ftp.so=Revisar autenticaci髇 FTP
pam_time.so=Revisar horario de login
pam_group.so=Poner pertenencia a grupo
pam_listfile.so=Revisar contenido de archivo
pam_limits.so=Poner l韒ite de recursos
pam_mkhomedir.so=Crear directorio inicial
pam_motd.so=Mostrar el archivo de mensaje-del-d韆
pam_permit.so=Siempre permitir acceso
pam_radius.so=Autenticaci髇 de servidor RADIUS
pam_rhosts.so=Revisar archivos <tt>.rhosts</tt>
pam_rhosts_auth.so=Revisar archivos <tt>.rhosts</tt>
pam_shells.so=Revisar shell v醠ido
pam_unix.so=Autenticaci髇 de clave de acceso de Unix viejo
pam_userdb.so=Autenticaci髇 de clave de acceso de archivo DBM
pam_warn.so=Aviso de historial
pam_wheel.so=Revisar grupo <tt>wheel</tt>
pam_issue.so=Mostrar archivo <tt>/etc/issue</tt>
pam_ldap.so=Autenticaci髇 de servidor LDAP
pam_unix_auth.so=Autenticaci髇 de clave de acceso de Unix
pam_unix_sess.so=Configuraci髇 de sesi髇 Unix
pam_unix_session.so=Configuraci髇 de sesi髇 Unix
pam_unix_acct.so=Verificaci髇 de cuenta Unix
pam_unix_passwd.so=Cambio de clave de acceso de Unix
pam_stress.so=Prueba de tensi髇 de la Aplicaci髇
pam_tally.so=Seguir los intentos de login fallidos
pam_passwd+.so=Revisar fuerza de la clave de acceso
pam_filter.so=Filtro de Entrada/salida
pam_desgold.so=Autenticaci髇 de tarjeta inteligente DESGold
pam_console.so=Revisar s髄o consola
pam_xauth.so=Autenticaci髇 X

control_requisite=Requisito
control_required=Requerido
control_sufficient=Suficiente
control_optional=Opcional
control_desc_requisite=Fallo de autenticaci髇 inmedi醫amente tras fallo
control_desc_required=Fallo de autenticaci髇 al final del fallo
control_desc_sufficient=Pasar autenticaci髇 inmedi醫amente tras 閤ito
control_desc_optional=Se ignora 閤ito o fallo

create_title=Crear Servicio de PAM
create_header=Nuevas opciones de servicio PAM
create_name=Nombre de servicio
create_desc=Descripci髇
create_mods=M骴ulos iniciales de PAM
create_0=Ninguno
create_1=Autenticaci髇 Unix
create_2=Denegar todos los accesos

mod_edit=Editar M骴ulo de PAM
mod_create=A馻dir M骴ulo de PAM
mod_header=Opciones de m骴ulo de PAM
mod_name=Nombre de servicio
mod_mod=M骴ulo PAM
mod_type=Usar en servicio
mod_type_auth=Autenticaci髇
mod_type_account=Verficaci髇 de cuenta
mod_type_session=Configuraci髇 de sesi髇
mod_type_password=Cambiar clave de acceso
mod_control=Nivel de fallo
mod_args=Argumentos de m骴ulo
mod_err=No pude salvar el m骴ulo

pwdb_shadow=縐so archivo de claves de acceso en la sombra?
pwdb_nullok=緼cepto claves de acceso nulas?
pwdb_md5=縐so claves de acceso con encriptaci髇 MD5?
pwdb_nodelay=縍etardo tras login fallido?

listfile_item=Buscar en archivo por
listfile_item_user=Nombre de usuario
listfile_item_tty=TTY
listfile_item_rhost=Nombre de m醧uina remota
listfile_item_ruser=Nombre de usuario remoto
listfile_item_group=Grupo
listfile_item_shell=Shell
listfile_sense=Si hallado en archivo
listfile_file=Archivo a buscar
listfile_onerr=Sobre error de archivo
listfile_fail=Fallo
listfile_succeed=蓌ito
listfile_apply=Limitar revisi髇 a
listfile_all=Todos los usuarios
listfile_user=S髄o el usuario
listfile_group=S髄o el grupo

cracklib_type=Tipo de clave de acceso en la petici髇
cracklib_retry=M醲imos reintentos antes de fallar
cracklib_eretry=N鷐ero de reintentos sin poner o inv醠idos
cracklib_etype=Tipo de clave de acceso sin poner o inv醠ido

rhosts_equiv=縇eo el archivo <tt>/etc/hosts.equiv</tt>?
rhosts_rhosts=縇eo los archivos <tt>.rhosts</tt> de usuario?
rhosts_promiscuous=縇a entrada <tt>+</tt> da permiso a todas las m醧uinas?
rhosts_suppress=縇levo historial de fallos de autenticaci髇?

env_var=Nombre de variable
env_def=Valor por defecto
env_over=Pasar por alto valor
env_evar=Los nombres de variable no pueden contener espacios

securetty_ttys=TTYs seguras

shells_shells=Shells de usuario v醠ido

tally_deny=Intentos fallidos antes de denegar el acceso
tally_reset=Restablecer contador de fallos tras 閤ito
tally_edeny=N鷐ero de intentos de fallo sin poner o inv醠ido
tally_magic=縀l contador de fallo se aplica a <tt>root</tt>?
tally_root=縇a cuenta <tt>root</tt> puede ser denegada?

time_services=Servicios
time_ttys=TTYs
time_users=Usuarios
time_times=Tiempos de acceso
time_info=Todos los campos pueden contener m鷏tiples valores serparados por | y los valores pueden utilizar * como comod韓 o ! para negar.

group_services=Servicios
group_ttys=TTYs
group_users=Usuarios
group_times=Tiempos de acceso
group_groups=A馻dir grupos
group_info=Todos los campos pueden contener m鷏tiples valores separados por | y los valores pueden utilizar * como comod韓 o ! para negar.

wheel_group=Revisar pertenencia a grupo
wheel_group_def=Por defecto (<tt>wheel</tt> o GID 0)
wheel_trust=縇os miembros del grupo pasan por alto autenticaciones posteriores?
wheel_deny=緿eniego en vez de permitir a miembros de grupo?
wheel_egroup=Nombre de grupo inv醠ido o sin poner

motd_file=Archivo a mostrar
motd_file_def=Por defecto (<tt>/etc/motd</tt>)
motd_efile=Nombre de archivo inv醠ido o sin poner

mail_nopen=縈uestro notificaci髇 de correo al hacer login?
mail_close=縈uestro notificaci髇 de correo al salir a login?
mail_empty=縉otifico si el archivo de correo est vac韔?
mail_noenv=縋ongo la variable de entorno $MAIL?
mail_dir=Directorio de spool de correo
mail_edir=Directorio de spool de correo inv醠ido o sin poner

  0707010002b526000081a40000000000000002000000013ac038bd000022c4000000200000000000000000000000000000001200000003reloc/pam/lang/fr index_title=Authentification PAM
index_name=Service
index_desc=Description
index_add=Ajouter un nouveau service PAM.
index_return=liste des services
index_none=Aucun fichier de configuration PAM n'a 閠 trouv sur votre syst鑝e dans le r閜ertoire $1. Peut-阾re que PAM n'est pas support, ou que votre <a href='$2'>configuration des modules</a> est incorrecte.

desc_su=changement d'utilisateur
desc_login=connexion locale ou distante
desc_samba=serveur de fichiers pour Windows Samba
desc_imap=serveur de courrier IMAP
desc_pop=serveur de courrier POP
desc_kde=connexion KDE
desc_rexec=serveur d'ex閏ution de commande  distance
desc_rlogin=serveur de connexion distante
desc_rsh=serveur de shell distant
desc_ssh=serveur de shell distant s閏uris
desc_passwd=changement du mot de passe
desc_chfn=changement des informations pour <tt>finger</tt>
desc_chsh=changement du shell de connexion
desc_ftp=serveur de transfert de fichier (FTP)
desc_ftpd=serveur de transfert de fichier (FTP)
desc_wu-ftpd=serveur de transfert de fichier (FTP) WuFTPd
desc_xscreensaver=閏onomiseur d'閏ran
desc_other=autres services
desc_netatalk.pamd=$desc_netatalk
desc_netatalk=serveur de fichier d'Apple Netatalk
desc_webmin=serveur web de Webmin
desc_xdm=connexion X locale ou distante
desc_gdm=connexion X de Gnome
desc_linuxconf=connexion  LinuxConf
desc_linuxconf-pair=connexion suppl閙entaire  LinuxConf
desc_xlock=verrouillage de l'閏ran
desc_vlock=verrouillage des consoles virtuelles
desc_kbdrate=contr鬺e de la cadence du clavier
desc_halt=arr阾 du syst鑝e
desc_poweroff=arr阾 du syst鑝e en 閠eignant l'ordinateur
desc_reboot=red閙arrage du syst鑝e
desc_shutdown=sortie du syst鑝e pour arr阾 ou red閙arrage
desc_mcserv=Midnight commander
desc_kppp=client PPP de KDE
desc_xserver=serveur X11
desc_gnorpm-auth=outil de RPM pour Gnome
desc_kpackage=outil de RPM pour KDE
desc_ppp=connexion PPP
desc_rp3-config=client PPP de Redhat
desc_up2date=outil de mise  jour de Linux de Redhat
desc_sudo=ex閏ution d'une commande en tant que super-utilisateur
desc_httpd=serveur web
desc_qpop=serveur de courrier POP

edit_title=蒬ition d'un service PAM
edit_header=D閠ails du service PAM
edit_name=Service:
edit_header_auth=蓆apes d'authentification
edit_header_account=蓆apes de v閞ification de compte
edit_header_session=蓆apes de mise en place de la session
edit_header_password=蓆apes de changement de mot de passe
edit_mod=module PAM
edit_desc=description
edit_args=param鑤res
edit_addmod=Ajouter une 閠ape:
edit_control=niveau d'exigence
edit_none=Aucun module PAM sp閏ifi pour cette 閠ape.
edit_delete=Supprimer ce service PAM.
edit_move=d閜lacer
edit_return=Service PAM

pam_pwdb.so=authentification des mots de passe Unix
pam_securetty.so=v閞ification des TTY s鹯s pour le super-utilisateur
pam_nologin.so=v閞ification du fichier <tt>/etc/nologin</tt>
pam_mail.so=notification de nouveaux messages
pam_lastlog.so=notification de la derni鑢e connexion
pam_rootok.so=v閞ification si l'utilisateur est <tt>root</tt>
pam_cracklib.so=v閞ification forte des mots de passe
pam_access.so=v閞ification du fichier de contr鬺e d'acc鑣
pam_deny.so=interdiction permanente d'acc鑣
pam_env.so=mise en place des variables d'environnement
pam_ftp.so=v閞ification de l'authentification pour FTP
pam_time.so=v閞ification de la date pour la connexion
pam_group.so=mise en place de l'appartenance  un groupe Unix
pam_listfile.so=v閞ification du contenu des fichiers
pam_limits.so=mise en place des limitations sur les ressources
pam_mkhomedir.so=cr閍tion du r閜ertoire principal
pam_motd.so=affichage du message du jour
pam_permit.so=autorisation permanente d'acc鑣
pam_radius.so=authentification sur un serveur RADIUS
pam_rhosts.so=v閞ification des fichiers <tt>.rhosts</tt>
pam_rhosts_auth.so=v閞ification des fichiers <tt>.rhosts</tt>
pam_shells.so=v閞ification que le shell est valide
pam_unix.so=ancienne authentification des mots de passe Unix
pam_userdb.so=authentification des mots de passe des fichiers DBM
pam_warn.so=Log warning
pam_wheel.so=v閞ification de l'appartenance au groupe <tt>wheel</tt>
pam_issue.so=affichage du fichier <tt>/etc/issue</tt>
pam_ldap.so=authentification pour un serveur LDAP
pam_unix_auth.so=authentification des mots de passe Unix
pam_unix_sess.so=mise en place de la session Unix
pam_unix_session.so=mise en place de la session Unix
pam_unix_acct.so=v閞ification du compte Unix
pam_unix_passwd.so=changement de mot de passe Unix
pam_stress.so=Application stress test
pam_tally.so=traces des tentatives de connexion qui ont 閏hou
pam_passwd+.so=v閞ification de la solidit des mots de passe
pam_filter.so=filtre d'entr閑/sortie
pam_desgold.so=DESGold smartcard authentication
pam_console.so=v閞ification pour la console uniquement
pam_xauth.so=authentification X

control_requisite=requis
control_required=n閏essaire
control_sufficient=suffisant
control_optional=optionnel
control_desc_requisite=閏hec imm閐iat de l'authentification en cas d'閏hec
control_desc_required=閏hec de l'authentification  la fin en cas d'閏hec
control_desc_sufficient=r閡ssite imm閐iate de l'authentification en cas de r閡ssite
control_desc_optional=r閡ssite ou 閏hec indiff閞ents

create_title=Cr閍tion d'un service PAM
create_header=Options du nouveau service PAM
create_name=Nom du service
create_desc=Description
create_mods=Modules PAM initiaux
create_0=Aucun
create_1=Authentification Unix
create_2=Interdire tous les acc鑣

mod_edit=蒬ition d'un module PAM
mod_create=Ajout d'un module PAM
mod_header=Options du module PAM
mod_name=Nom du service:
mod_mod=Module PAM:
mod_type=Utilit dans le service:
mod_type_auth=authentification
mod_type_account=v閞ification de compte
mod_type_session=mise en place de la session
mod_type_password=changement de mot de passe
mod_control=Niveau d'exigence:
mod_args=Arguments pour le module
mod_err=蒫hec de la sauvegarde du module

pwdb_shadow=Utiliser les <em>shadow password</em>?
pwdb_nullok=Accepter des mots de passe vides?
pwdb_md5=Utiliser des mots de passes chiffr閟 par MD5?
pwdb_nodelay=Attendre apr鑣 l'閏hec d'une connexion?

listfile_item=Chercher:
listfile_item_user=utilisateur
listfile_item_tty=TTY
listfile_item_rhost=h魌e distant
listfile_item_ruser=utilisateur distant
listfile_item_group=groupe
listfile_item_shell=shell
listfile_sense=Si trouv:
listfile_file=Fichier dans lequel chercher:
listfile_onerr=Si erreur avec le fichier:
listfile_fail=閏hec
listfile_succeed=r閡ssite
listfile_apply=Limiter la v閞ification :
listfile_all=Tous les utilisateurs
listfile_user=Uniquement l'utilisateur
listfile_group=Uniquement le groupe

cracklib_type=Password type in prompt
cracklib_retry=Maximum retries before failure
cracklib_eretry=Missing or invalid number of retries
cracklib_etype=Missing or invalid password type

rhosts_equiv=Lire le fichier <tt>/etc/hosts.equiv</tt>?
rhosts_rhosts=Lire le fichier <tt>.rhosts</tt> de l'utilisateur?
rhosts_promiscuous=Une entr閑 avec <tt>+</tt> autorise tous les h魌es?
rhosts_suppress=Garder une trace des authentifications qui 閏houent?

env_var=Nom de la variable
env_def=Valeur par d閒aut
env_over=Override value
env_evar=Les noms de variables ne peuvent pas contenir d'espaces.

securetty_ttys=TTY s鹯s:

shells_shells=Shells valides pour un utilisateur:

tally_deny=Nombre d'閏hecs avant d'interdire l'acc鑣:
tally_reset=Remettre  z閞o le compteur d'閏hecs en cas de r閡ssite?
tally_edeny=Le nombre d'閏hecs avant interdiction de l'acc鑣 est manquant ou invalide.
tally_magic=Compter le nombre d'閏hecs pour <tt>root</tt>?
tally_root=Peut interdire l'acc鑣 au compte <tt>root</tt>?

time_services=Services
time_ttys=TTY
time_users=Utilisateurs
time_times=Dates d'acc鑣
time_info=Les champs peuvent contenir plusieurs valeurs s閜ar閑s par |, et les valeurs peuvent contenir * pour signifier "n'importe quoi" ou ! comme n間ation.

group_services=Services
group_ttys=TTY
group_users=Utilisateurs
group_times=Dates d'acc鑣
group_groups=Ajouter des groupes
group_info=Les champs peuvent contenir plusieurs valeurs s閜ar閑s par |, et les valeurs peuvent contenir * pour signifier "n'importe quoi" ou ! comme n間ation.

wheel_group=V閞ifier l'appartenance au groupe:
wheel_group_def=d閒aut (<tt>wheel</tt> ou GID 0)
wheel_trust=Les membres du groupe 関itent les autres authentifications?
wheel_deny=Interdit les membres du groupe au lieu de les autoriser?
wheel_egroup=Nom de groupe manquant ou invalide.

motd_file=Fichier  afficher:
motd_file_def=d閒aut (<tt>/etc/motd</tt>)
motd_efile=Nom de fichier manquant ou invalide.

mail_nopen=Annoncer les nouveaux messages  de la connexion?
mail_close=Annoncer les nouveaux messages  de la d閏onnexion?
mail_empty=Annoncer que le fichier de courrier est vide?
mail_noenv=D閒inir la variable d'environnement <tt>$MAIL</tt>?
mail_dir=R閜ertoire de stockage du courrier 閘ectronique:
mail_edir=R閜ertoire de stockage du courrier 閘ectronique manquant ou invalide.
0707010002b527000081a40000000000000002000000013ac038bd00002128000000200000000000000000000000000000001200000003reloc/pam/lang/pl index_title=Autoryzacja PAM
index_name=Us硊ga
index_desc=Opis
index_add=Dodaj now us硊g PAM
index_return=listy us硊g
index_none=Nie znaleziono w&nbsp;systemie w katalogu $1 plik體 konfiguracyjnych PAM. Mo縧iwe, 縠 system nie wspomaga PAM lub Twoja <a href='$2'>konfiguracja modu硊</a> jest nieprawid硂wa.

desc_su=Prze潮cz u縴tkownika
desc_login=Logowanie zdalne lub lokalne
desc_samba=Serwer plik體 dla Windows Samba
desc_imap=Serwer pocztowy IMAP
desc_pop=Serwer pocztowy POP
desc_kde=Logowanie KDE
desc_rexec=Serwer zdalnego uruchamiania
desc_rlogin=Serwer zdalnego logowania
desc_rsh=Serwer zdalnej pow硂ki
desc_passwd=Zmiana has砤
desc_chfn=Zmiana informacji dla fingera
desc_chsh=Zmiana pow硂ki
desc_ftp=Serwer przesy砤nia plik體
desc_ftpd=Serwer przesy砤nia plik體
desc_wu-ftpd=Serwer przesy砤nia plik體 WuFTPd
desc_xscreensaver=Wygaszacz ekranu
desc_other=Inne us硊gi
desc_netatalk.pamd=$desc_netatalk
desc_netatalk=Serwer plik體 dla Apple Netatalk
desc_webmin=Serwer sieci Webmin
desc_xdm=Lokalne lub zdalne logowanie do X
desc_gdm=Logowanie do X&nbsp;w&nbsp;Gnome
desc_linuxconf=Logowanie do LinuxConfa
desc_linuxconf-pair=Dodatkowe logowanie do LinuxConfa
desc_xlock=Blokada ekranu
desc_vlock=Blokada konsoli wirtualnej
desc_kbdrate=Ustawianie szybko禼i klawiatury
desc_halt=Zatrzymanie systemu
desc_poweroff=Wy潮czenie systemu
desc_reboot=Restartowanie systemu
desc_shutdown=Zamykanie systemu
desc_mcserv=Serwer Midnight commander
desc_kppp=Narz阣zie klienta PPP w&nbsp;KDE
desc_xserver=Serwer X11
desc_gnorpm-auth=Narz阣zie RPM w&nbsp;Gnome
desc_kpackage=Narz阣zie RPM w&nbsp;KDE
desc_ppp=Demon logowania PPP
desc_rp3-config=Narz阣zie klienta PPP w&nbsp;Redhat'cie
desc_up2date=Agent aktualizacji Linuksa w Redhat'cie
desc_sudo=Ograniczone uruchamianie polece z&nbsp;prawami roota
desc_httpd=Serwer WWW
desc_qpop=Serwer pocztowy POP
desc_sshd=Lohowanie SSH
desc_squid=Serwer proxy Squid

edit_title=Zmie us硊g PAM
edit_header=Informacje o&nbsp;us硊dze PAM
edit_name=Nazwa us硊gi
edit_header_auth=Etapu autoryzacji
edit_header_account=Etapy weryfikacji konta
edit_header_session=Etapy ustwienia sesji
edit_header_password=Etapy zmiany has砤
edit_mod=Modu PAM
edit_desc=Opis
edit_args=Parametry
edit_addmod=Dodaj etap do:
edit_control=Poziom b酬du
edit_none=Nie okre秎ono modu丑w PAM dla tego etapu
edit_delete=Usu us硊g PAM
edit_move=Przesu
edit_return=us硊gi PAM

pam_pwdb.so=Uniksowa autoryzacja has砮m
pam_securetty.so=Sprawdzanie bezpiecznych terminali dla roota
pam_nologin.so=Sprawdzanie pliku <tt>/etc/nologin</tt>
pam_mail.so=Powiadamianie o&nbsp;nowej poczcie
pam_lastlog.so=Powiadamianie o&nbsp;ostatnim logowaniu
pam_rootok.so=Sprawdzanie tylko czy <tt>root</tt>
pam_cracklib.so=Silne sprawdzanie has砤
pam_access.so=Sprawdzanie pliku kontroli dost阷u
pam_deny.so=Dost阷 zawsze zabroniony
pam_env.so=Ustawianie zmiennych 眗odowiska
pam_ftp.so=Sprawdzanie autoryzacji FTP
pam_time.so=Sprawdzanie czasu logowania
pam_group.so=Ustawianie przynale縩o眂i do grupy
pam_listfile.so=Sprawdzanie zawarto禼i pliku
pam_limits.so=Ustawianie ogranicze dla zasob體
pam_mkhomedir.so=Tworzenie katalogu domowego
pam_motd.so=Wy秝ietlanie pliku &quot;wiadomo眂i dnia&quot;
pam_permit.so=Dost阷 zawsze dozwolony
pam_radius.so=Autoryzacja za pomoc serwera RADIUS
pam_rhosts.so=Sprawdzanie plik體 <tt>.rhosts</tt>
pam_rhosts_auth.so=Sprawdzanie plik體 <tt>.rhosts</tt>
pam_shells.so=Sprawdzanie wa縩o眂i pow硂ki
pam_unix.so=Stara uniksowa autoryzacja hase
pam_userdb.so=Autoryzacja poprzez pliki DBM
pam_warn.so=Logowanie ostrze縠nia
pam_wheel.so=Sprawdzanie grupy <tt>wheel</tt>
pam_issue.so=Wy秝ietlanie pliku <tt>/etc/issue</tt>
pam_ldap.so=Autoryzacja poprzez serwer LDAP

pam_unix_auth.so=Uniksowa autoryzacja has砮m
pam_unix_sess.so=Uniksowe ustawienie sesji
pam_unix_session.so=Uniksowe ustawienie sesji
pam_unix_acct.so=Uniksowa weryfikacja konta
pam_unix_passwd.so=Uniksowa zmiana has砤
pam_stress.so=Test zm阠zeniowy aplikacji
pam_tally.so=edzenie nieudanych pr骲 logowania
pam_passwd+.so=Sprawdzanie mocy has砤
pam_filter.so=Filtr wej眂ia/wyj眂ia
pam_desgold.so=Autoryzacja kart DESGold
pam_console.so=Jedynie sprawdzanie konsoli
pam_xauth.so=Autoryzacja X

control_requisite=Niezb阣ne
control_required=Wymagane
control_sufficient=Wystarczaj眂e
control_optional=Opcjonalne
control_desc_requisite=W&nbsp;razie niepowodzenia odrzu autoryzacj natychmiast
control_desc_required=W&nbsp;razie niepowodzenia odrzu autoryzacj po niepomy秎nym zako馽zeniu
control_desc_sufficient=W&nbsp;razie powodzenia zako馽z autoryzacj sukcesem natychmiast
control_desc_optional=Pomy秎ny i&nbsp;niepomy秎ny wynik autoryzacji jest ignorowany

create_title=Utw髍z us硊g PAM
create_header=Opcje nowej us硊gi PAM
create_name=Nazwa us硊gi
create_desc=Opis
create_mods=Inicjalne modu硑 PAM
create_0=Brak
create_1=Autoryzacja uniksowa
create_2=Zabroni dost阷u

mod_edit=Zmie opcje modu硊 PAM
mod_create=Dodaj modu PAM
mod_header=Opcje modu硊 PAM
mod_name=Nazwa us硊gi
mod_mod=Modu PAM
mod_type=U縴wa dla us硊gi
mod_type_auth=Autoryzacji
mod_type_account=Weryfikacji konta
mod_type_session=Ustawie sesji
mod_type_password=Zmiany has砤
mod_control=Poziom b酬du
mod_args=Argumenty dla modu硊
mod_err=Nie uda硂 si zachowa opcji modu硊

pwdb_shadow=Korzys z&nbsp;pliku hase <tt>shadow</tt>?
pwdb_nullok=Akceptowa puste has砤?
pwdb_md5=Korzysta z&nbsp;hase kodowanych MD5?
pwdb_nodelay=Op蠹nienie po nieudanym logowaniu?

listfile_item=Poszukuj w&nbsp;pliku
listfile_item_user=Nazwy u縴tkownika
listfile_item_tty=Terminal
listfile_item_rhost=Nazwy zdalnego hosta
listfile_item_ruser=Nazwy zdalnego u縴tkownika
listfile_item_group=Grupy
listfile_item_shell=Pow硂ki
listfile_sense=Je秎i znaleziono w&nbsp;pliku
listfile_file=Przeszukiwa plik
listfile_onerr=Przy b酬dzie pliku
listfile_fail=Zako馽zy niepowodzeniem
listfile_succeed=Zako馽zy pomy秎nie
listfile_apply=Ograniczy sprawdzanie do
listfile_all=Wszystkich u縴tkownik體
listfile_user=Tylko u縴tkownika
listfile_group=Tylko grupy

cracklib_type=Rodzaj has砤 przy zapytaniu
cracklib_retry=Maksymalna liczba pr骲 przed zg硂szeniem b酬du
cracklib_eretry=Nie podana lub niepoprawna liczba pr骲
cracklib_etype=Nie podany lub niepoprawny rodzaj has砤

rhosts_equiv=Czyta plik <tt>/etc/hosts.equiv</tt>?
rhosts_rhosts=Czyta pliki <tt>.rhosts</tt> u縴tkownik體?
rhosts_promiscuous=Wpis <tt>+</tt> dopuszcza wszystkie hosty?
rhosts_suppress=Logowa b酬dy autoryzacji?

env_var=Nazwa zmiennej
env_def=Warto舵 domy秎na
env_over=Nadpisa warto舵
env_evar=Nazwy zmiennych nie mog zawiera spacji

securetty_ttys=Bezpieczne terminale

shells_shells=Poprawne pow硂ki u縴tkownika

tally_deny=Liczba nieudanych pr骲 przed zablokowaniem dost阷u u縴tkownikowi
tally_reset=Zerowa licznik nieudanych pr骲 w&nbsp;razie powodzenia
tally_edeny=Nie podana lub niepoprawna liczba nieudanych pr骲
tally_magic=Licznik nieudanych pr骲 nieudanych pr骲 dotyczy <tt>root</tt>a?
tally_root=Mo縩a zablokowa konto <tt>root</tt>?

time_services=Us硊gi
time_ttys=Terminale
time_users=U縴tkownicy
time_times=Czas dost阷u
time_info=Wszystkie pola mog zawiera wiele warto禼i rozdzielonych |, jak te * jako znak wieloznaczny i&nbsp;! jako negacj.

group_services=Us硊gi
group_ttys=Terminale
group_users=U縴tkownicy
group_times=Czas dost阷u
group_groups=Doda grupy
group_info=Wszystkie pola mog zawiera wiele warto禼i rozdzielonych |, jak te * jako znak wieloznaczny i&nbsp;! jako negacj.

wheel_group=Sprawdza przynale縩o舵 do grupy
wheel_group_def=Domy秎nej (<tt>wheel</tt> lub GID 0)
wheel_trust=Dla cz硂nk體 grupy pomijana jest dalsza autoryzacja?
wheel_deny=Zabroni dost阷u zamiast pozwala cz硂nkom grupy?
wheel_egroup=Nie podana lub niepoprawna nazwa grupy

motd_file=Wy秝ietlany plik
motd_file_def=Domy秎ny (<tt>/etc/motd</tt>)
motd_efile=Nie podana lub niepoprawna nazwa pliku

mail_nopen=Pokazywa powiadomienie o&nbsp;poczcie po zalogowaniu?
mail_close=Pokazywa powiadomienie o&nbsp;poczcie przy wylogowywaniu?
mail_empty=Powiadamia, gdy plik poczty jest pusty?
mail_noenv=Ustawia zmienn 秗odowiska $MAIL?
mail_dir=Katalog poczty
mail_edir=Nie podana lub niepoprawna nazwa katalogu poczty

log_pam_create=Utworzono us硊ge PAM $1
log_pam_delete=Usuni阾o us硊g PAM $1
log_mod_create=Dodano modu PAM $1 dla us硊gi $2
log_mod_modify=Zmieniono modu PAM $1 dla us硊gi $2
log_mod_delete=Usuni阾o modu PAM $1 z us硊gi $2
log_mod_move=Zamieniono modu硑 PAM dla us硊gi $3
log_mod_move_l=Zamieniono modu硑 PAM $1 i&nbsp;$2 dla us硊gi $3
0707010002b528000081a40000000000000002000000013ac038bd0000207c000000200000000000000000000000000000001200000003reloc/pam/lang/sv index_title=PAM-autentisering
index_name=Tj鋘st
index_desc=Beskrivning
index_add=L鋑g till en PAM-tj鋘st
index_return=tj鋘stelista
index_none=Det gick inte att hitta n錱on PAM-inst鋖lningsfil p ditt system i katalogen $1. PAM kanske inte st鰀s, eller ocks 鋜 dina <a href='$2'>modulinst鋖lningar</a> felaktiga.

desc_su=Byt anv鋘dare
desc_login=Logga in lokalt eller fr錸 annan dator
desc_samba=Samba Windows-filserver
desc_imap=IMAP-e-postserver
desc_pop=POP-e-postserver
desc_kde=KDE-inloggning
desc_rexec=Fj鋜rk鰎ningsserver
desc_rlogin=Fj鋜rinloggningsserver
desc_rsh=Fj鋜rskalsserver
desc_passwd=L鰏enordsbyte
desc_chfn=Byt finger-information
desc_chsh=Byt skal
desc_ftp=Fil鰒erf鰎ingsserver
desc_ftpd=Fil鰒erf鰎ingsserver
desc_wu-ftpd=WuFTPd-fil鰒erf鰎ingsserver
desc_xscreensaver=Sk鋜msl鋍kare
desc_other=講riga tj鋘ster
desc_netatalk.pamd=$desc_netatalk
desc_netatalk=Netatalk Apple-filserver
desc_webmin=Webmin-webbserver
desc_xdm=Lokal eller fj鋜r-X-inloggning
desc_gdm=Gnome X-inloggning
desc_linuxconf=LinuxConf-inloggning
desc_linuxconf-pair=Ytterligare LinuxConf-inloggning
desc_xlock=Sk鋜ml錽
desc_vlock=L錽 f鰎 virtuell konsol
desc_kbdrate=Tangentrepeteringsparametrar
desc_halt=Halt-system
desc_poweroff=Str鰉avst鋘gningssystem
desc_reboot=Omstartssystem
desc_shutdown=Avst鋘gningssystem
desc_mcserv=Midnight commander
desc_kppp=KDE PPP-klientverktyg
desc_xserver=X11-server
desc_gnorpm-auth=Gnome RPM-verktyg
desc_kpackage=KDE RPM-verktyg
desc_ppp=PPP-demoninloggning
desc_rp3-config=Redhat PPP-klientverktyg
desc_up2date=Redhat Linux-uppdateringshj鋖p
desc_sudo=Begr鋘sad root-kommandoexekvering
desc_httpd=Webbserver
desc_qpop=POP-e-postserver
desc_sshd=SSH-inloggning
desc_squid=Squid-proxyserver

edit_title=膎dra PAM-tj鋘st
edit_header=Information om PAM-tj鋘st
edit_name=Namn p tj鋘sten
edit_header_auth=Autentiserings錿g鋜der
edit_header_account=Kontoverifierings錿g鋜der
edit_header_session=舤g鋜der f鰎 upps鋞tning av session
edit_header_password=Tillv鋑ag錸gss鋞t f鰎 att byta l鰏enord
edit_mod=PAM-modul
edit_desc=Beskrivning
edit_args=Parametrar
edit_addmod=L鋑g till 錿g鋜d f鰎:
edit_control=Felniv
edit_none=Du har inte angivit n錱on PAM-modul f鰎 detta
edit_delete=Ta bort PAM-tj鋘st
edit_move=Flytta
edit_return=PAM-tj鋘st

pam_pwdb.so=Autentisering med Unix-l鰏enord
pam_securetty.so=Utf鰎 s鋕er TTY-kontroll f鰎 root
pam_nologin.so=<tt>/etc/nologin</tt>-filkontroll
pam_mail.so=Meddelande om nytt e-brev
pam_lastlog.so=Meddelande om senaste inloggning
pam_rootok.so=Kontrollera: endast <tt>root</tt> till錿en
pam_cracklib.so=Stark l鰏enordskontroll
pam_access.so=Kontrollera 錿komststyrfilen
pam_deny.so=Neka alltid 錿komst
pam_env.so=S鋞t milj鰒ariabler
pam_ftp.so=FTP-autentiseringskontroll
pam_time.so=Kontroll av inloggningstid
pam_group.so=S鋞t gruppmedlemskap
pam_listfile.so=Kontrollera filinneh錶l
pam_limits.so=S鋞t resursbegr鋘sningar
pam_mkhomedir.so=Skapa hemkatalog
pam_motd.so=Visa fil med dagens ord
pam_permit.so=Till錿 alltid 錿komst
pam_radius.so=Autentisering med RADIUS-server
pam_rhosts.so=Kontrollera <tt>.rhosts</tt>-filer
pam_rhosts_auth.so=Kontrollera <tt>.rhosts</tt>-filer
pam_shells.so=Kontrollera giltigt skal
pam_unix.so=Autentisering med gammalt Unix-l鰏enord
pam_userdb.so=Autentisering med DBM-fill鰏enord
pam_warn.so=Loggvarning
pam_wheel.so=Kontrollera<tt>wheel</tt>-grupp
pam_issue.so=Visa filen <tt>/etc/issue</tt>
pam_ldap.so=Autentisering med LDAP-server
pam_unix_auth.so=Autentisering med Unix-l鰏enord
pam_unix_sess.so=Inst鋖lningar f鰎 Unix-session
pam_unix_session.so=Inst鋖lningar f鰎 Unix-session
pam_unix_acct.so=Verifiering av Unix-konto
pam_unix_passwd.so=膎dring av Unix-l鰏enord
pam_stress.so=Belastningstest av applikation
pam_tally.so=Sp錼a misslyckade inloggningsf鰎s鰇
pam_passwd+.so=Kontroll av l鰏enords styrka
pam_filter.so=Inmatnings/utmatningsfilter
pam_desgold.so=Autentisering med DESGold-smartcard
pam_console.so=Kontrollera endast f鰎 konsolen
pam_xauth.so=X-autentisering

control_requisite=Obligatoriskt
control_required=N鰀v鋘digt
control_sufficient=Tillr鋍kligt
control_optional=Valfritt
control_desc_requisite=Skicka felmeddelande omedelbart n鋜 autentiseringen misslyckas
control_desc_required=Skicka felmeddelande om att autentiseringen misslyckats n鋜 den 鋜 klar
control_desc_sufficient=Skicka meddelande om lyckad autentisering direkt den har lyckats
control_desc_optional=Det spelar ingen roll om autentiseringen lyckas eller ej.

create_title=Skapa PAM-tj鋘st
create_header=Inst鋖lningar f鰎 ny PAM-tj鋘st
create_name=Tj鋘stenamn
create_desc=Beskrivning
create_mods=Grund-PAM-moduler
create_0=Ingen
create_1=Unix-autentisering
create_2=Neka all 錿komst

mod_edit=膎dra PAM-modul
mod_create=L鋑g till PAM-modul
mod_header=Inst鋖lningar f鰎 PAM-modul
mod_name=Tj鋘stenamn
mod_mod=PAM-modul
mod_type=Anv鋘d i tj鋘st
mod_type_auth=Autentisering
mod_type_account=Kontoverifiering
mod_type_session=Sessionsuppkoppling
mod_type_password=L鰏enordsbyte
mod_control=Kontrollniv
mod_args=Argument till modulen
mod_err=Det gick inte att spara modulen

pwdb_shadow=Ska en skuggl鰏enordsfil anv鋘das?
pwdb_nullok=Ska tomma l鰏enord accepteras?
pwdb_md5=Ska MD5-krypterade l鰏enord anv鋘das?
pwdb_nodelay=F鰎dr鰆ning efter misslyckat inloggningsf鰎s鰇?

listfile_item=S鰇 i fil efter
listfile_item_user=anv鋘darnamn
listfile_item_tty=TTY
listfile_item_rhost=klientdatornamn
listfile_item_ruser=klientanv鋘darnamn
listfile_item_group=grupp
listfile_item_shell=skal
listfile_sense=Om det hittas i filen
listfile_file=Fil att s鰇a i
listfile_onerr=Vid filfel
listfile_fail=Misslyckas
listfile_succeed=Lyckas
listfile_apply=Begr鋘sa kontrollen till
listfile_all=Alla anv鋘dare
listfile_user=Endast anv鋘dare
listfile_group=Endast grupp

cracklib_type=Ange l鰏enordstyp i prompten
cracklib_retry=Maximalt antal f鰎s鰇 innan autentiseringen misslyckas
cracklib_eretry=Antalet f鰎s鰇 har inte angivits eller 鋜 felaktigt angivet
cracklib_etype=L鰏enordstyp saknas eller 鋜 felaktigt angiven

rhosts_equiv=L鋝a filen <tt>/etc/hosts.equiv</tt>?
rhosts_rhosts=L鋝a anv鋘darnas <tt>.rhosts</tt>-filer?
rhosts_promiscuous=<tt>+</tt>-post till錿er alla datorer?
rhosts_suppress=Logga autentiseringsmisslyckanden?

env_var=Variabelnamn
env_def=Standardv鋜de
env_over=V鋜de som g鋖ler 鰒er standardv鋜det
env_evar=Variabelnamn f錼 inte inneh錶la mellanslag

securetty_ttys=S鋕ra TTY:er

shells_shells=Till錿na anv鋘darskal

tally_deny=Skicka meddelande om misslyckat f鰎s鰇 innan 錿komst nekas
tally_reset=Nollst鋖l felr鋕naren vid lyckad autentisering
tally_edeny=Antal misslyckade f鰎s鰇 saknas eller 鋜 felaktigt angivet
tally_magic=Ska misslyckade f鰎s鰇 r鋕nas 鋠en f鰎 <tt>root</tt>?
tally_root=Kan <tt>root</tt>-kontot nekas 錿komst?

time_services=Tj鋘ster
time_ttys=TTY:er
time_users=Anv鋘dare
time_times=舤komsttider
time_info=Alla f鋖t kan inneh錶la flera v鋜den separerade med |, och man kan anv鋘da * som jokertecken och ! som negationstecken.

group_services=Tj鋘ster
group_ttys=TTY:er
group_users=Anv鋘dare
group_times=舤komsttider
group_groups=L鋑g till grupper
group_info=Alla f鋖t kan inneh錶la flera v鋜den separerade med |, och man kan anv鋘da * som jokertecken och ! som negationstecken.

wheel_group=Kontrollera medlemskap i gruppen
wheel_group_def=Standard (<tt>wheel</tt> eller GID 0)
wheel_trust=Ska medlemmar i denna grupp sl鋚pas igenom utan ytterligare autentisering?
wheel_deny=Neka medlemmar i denna grupp ist鋖let f鰎 att sl鋚pa fram dem?
wheel_egroup=Namn p gruppen saknas eller 鋜 felaktigt angivet

motd_file=Fil som ska visas
motd_file_def=Standard (<tt>/etc/motd</tt>)
motd_efile=Namn p filen saknas eller 鋜 felaktigt angivet

mail_nopen=Ska ett meddelande om e-post visas vid inloggning?
mail_close=Ska ett meddelande om e-post visas vid utloggning?
mail_empty=Ska systemet varna om e-postfilen 鋜 tom?
mail_noenv=Ska $MAIL-milj鰒ariabeln s鋞tas?
mail_dir=E-post-spool-katalog
mail_edir=E-post-spool-katalog saknas eller 鋜 felaktigt angiven

log_pam_create=Lade till PAM-tj鋘sten $1
log_pam_delete=Tog bort PAM-tj鋘sten $1
log_mod_create=Lade till PAM-modulen $1 till tj鋘sten $2
log_mod_modify=膎drade PAM-modulen $1 i tj鋘sten $2
log_mod_delete=Tog bort PAM-modulen $1 i tj鋘sten $2
log_mod_move=Bytte PAM-moduler i tj鋘sten $3
log_mod_move_l=Bytte PAM-modulerna $1 och $2 i tj鋘sten $3
0707010002878d000081a40000000000000002000000013ac038be000002f7000000200000000000000000000000000000001800000003reloc/pam/log_parser.pl   # log_parser.pl
# Functions for parsing this module's logs

require './pam-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p, $long) = @_;
if ($type eq 'pam') {
	return &text("log_pam_$action", "<tt>$object</tt>");
	}
elsif ($type eq 'mod') {
	if ($action eq 'move') {
		return &text($long ? "log_mod_move_l" : "log_mod_move",
			     &short_mod($p->{'1'}), &short_mod($p->{'2'}),
			     $object);
		}
	else {
		return &text("log_mod_$action", &short_mod($p->{'module'}),
			     $object);
		}
	}
else {
	return undef;
	}
}

sub short_mod
{
$_[0] =~ /([^\/]+)$/;
return "<tt>$1</tt>";
}

 0707010002878e000081a40000000000000002000000013ac038bd000000f1000000200000000000000000000000000000001600000003reloc/pam/module.info name=PAM
desc=PAM Authentication
desc_pl=Autoryzacja przez PAM
category=system
risk=high
os_support=redhat-linux open-linux debian-linux/2.2 corel-linux suse-linux turbo-linux cobalt-linux
desc_es=Autenticaci髇 PAM
desc_sv=PAM-autentisering
   0707010002878f000081e40000000000000002000000013ac038be00000250000000200000000000000000000000000000001300000003reloc/pam/move.cgi    #!/usr/local/bin/perl
# move.cgi
# Move a PAM module line up or down

require './pam-lib.pl';
&ReadParse();
@pams = &get_pam_config();
$pam = $pams[$in{'idx'}];

&lock_file($pam->{'file'});
$swap1 = $pam->{'mods'}->[$in{'midx'}];
$i = $in{'midx'};
do {
	$i += $in{'up'} ? -1 : 1;
	$swap2 = $pam->{'mods'}->[$i];
	} while($swap2->{'type'} ne $swap1->{'type'});
&swap_modules($pam->{'name'}, $swap1, $swap2);
&unlock_file($pam->{'file'});
&webmin_log("move", "mod", $pam->{'name'}, { '1' => $swap1->{'module'},
					     '2' => $swap2->{'module'} });
&redirect("edit_pam.cgi?idx=$in{'idx'}");

07070100028790000081a40000000000000002000000013ac038bd00000ad5000000200000000000000000000000000000001500000003reloc/pam/pam-lib.pl  # pam-lib.pl
# Functions for manipulating the PAM services file(s)

do '../web-lib.pl';
&init_config();

# get_pam_config()
# Returns a list of services and their modules
sub get_pam_config
{
local @rv;
local @ignore = split(/\s+/, $config{'ignore'});
opendir(DIR, $config{'pam_dir'});
FILE: foreach $f (readdir(DIR)) {
	next if ($f eq '.' || $f eq '..');
	foreach $i (@ignore) {
		next FILE if ($f =~ /^$i$/i);
		}
	local $serv = { 'name' => $f,
			'file' => "$config{'pam_dir'}/$f",
			'index' => scalar(@rv) };
	local $lnum = 0;
	open(FILE, $serv->{'file'});
	while(<FILE>) {
		s/\r|\n//g;
		if (/^\s*#+\s*description:\s*([A-Za-z].*)/i &&
		    !$serv->{'mods'}) {
			$serv->{'desc'} = $1;
			}
		s/#.*$//g;
		if (/^\s*(\S+)\s+(\S+)\s+(\S+)\s*(.*)$/) {
			local $mod = { 'type' => $1,   'control' => $2,
				       'module' => $3, 'args' => $4,
				       'line' => $lnum,
				       'index' => @{$serv->{'mods'}}+0 };
			push(@{$serv->{'mods'}}, $mod);
			}
		$lnum++;
		}
	close(FILE);
	push(@rv, $serv);
	}
closedir(DIR);
return @rv;
}

# create_module(service, &module)
# Add a PAM module to some service
sub create_module
{
local $lref = &read_file_lines("$config{'pam_dir'}/$_[0]");
push(@$lref, &module_line($_[1]));
&flush_file_lines();
}

# modify_module(service, &module)
# Update a PAM module in some service
sub modify_module
{
local $lref = &read_file_lines("$config{'pam_dir'}/$_[0]");
splice(@$lref, $_[1]->{'line'}, 1, &module_line($_[1]));
&flush_file_lines();
}

# delete_module(service, &module)
# Delete a PAM module from some service
sub delete_module
{
local $lref = &read_file_lines("$config{'pam_dir'}/$_[0]");
splice(@$lref, $_[1]->{'line'}, 1);
&flush_file_lines();
}

# swap_modules(service, &module1, &module2)
# Swap two PAM module entries in a service
sub swap_modules
{
local $lref = &read_file_lines("$config{'pam_dir'}/$_[0]");
local $line = $lref->[$_[1]->{'line'}];
$lref->[$_[1]->{'line'}] = $lref->[$_[2]->{'line'}];
$lref->[$_[2]->{'line'}] = $line;
&flush_file_lines();
}

# module_line(&module)
# Returns text for a PAM module line
sub module_line
{
local $l = join("\t", $_[0]->{'type'}, $_[0]->{'control'}, $_[0]->{'module'});
$l .= "\t$_[0]->{'args'}" if ($_[0]->{'args'});
return $l;
}

# list_modules()
# Returns a list of all PAM shared libraries
sub list_modules
{
local (@rv, %done, %hasmod);
foreach $d (split(/\s+/, $config{'lib_dirs'})) {
	opendir(DIR, $d);
	foreach $f (readdir(DIR)) {
		local @st = stat("$d/$f");
		push(@rv, $f) if (!$done{$st[1]}++ && $f =~ /^pam_.*\.so$/);
		$hasmod{$f}++ if ($f =~ /^pam_.*\.so$/);
		}
	closedir(DIR);
	}
foreach $q (split(/\s+/, $config{'mod_equiv'})) {
	local ($q1, $q2) = split(/=/, $q);
	if ($hasmod{$q2}) {
		@rv = grep { $_ ne $q1 } @rv;
		}
	}
return &unique(@rv);
}

1;

   07070100028791000081a40000000000000002000000013ac038be00000484000000200000000000000000000000000000001d00000003reloc/pam/pam_cracklib.so.pl  # display args for pam_cracklib.so.pl

# display_args(&service, &module, &args)
sub display_module_args
{
print "<tr> <td><b>$text{'cracklib_retry'}</b></td>\n";
printf "<td><input type=radio name=retry_def value=1 %s> %s\n",
	$_[2]->{'retry'} ? '' : 'checked', $text{'default'};
printf "<input type=radio name=retry_def value=0 %s>\n",
	$_[2]->{'retry'} ? 'checked' : '';
print "<input name=retry size=5 value='$_[2]->{'retry'}'></td>\n";

print "<td><b>$text{'cracklib_type'}</b></td>\n";
printf "<td><input type=radio name=type_def value=1 %s> %s\n",
	$_[2]->{'type'} ? '' : 'checked', $text{'default'};
printf "<input type=radio name=type_def value=0 %s>\n",
	$_[2]->{'type'} ? 'checked' : '';
print "<input name=type size=20 value='$_[2]->{'type'}'></td> </tr>\n";
}

# parse_module_args(&service, &module, &args)
sub parse_module_args
{
if ($in{'retry_def'}) { delete($_[2]->{'retry'}); }
else {
	$in{'retry'} =~ /^\d+$/ || &error($text{'cracklib_eretry'});
	$_[2]->{'retry'} = $in{'retry'};
	}

if ($in{'type_def'}) { delete($_[2]->{'type'}); }
else {
	$in{'type'} =~ /^\S+$/ || &error($text{'cracklib_etype'});
	$_[2]->{'type'} = $in{'type'};
	}
}
07070100028792000081a40000000000000002000000013ac038be00000033000000200000000000000000000000000000001900000003reloc/pam/pam_deny.so.pl  # pam_deny.so has no UI

$module_has_no_args = 1;

 07070100028793000081a40000000000000002000000013ac038be00000640000000200000000000000000000000000000001800000003reloc/pam/pam_env.so.pl   # display args for pam_env.so

# display_args(&service, &module, &args)
sub display_module_args
{
local $file = $_[2]->{'conffile'} ? $_[2]->{'conffile'}
				  : "/etc/security/pam_env.conf";
open(FILE, $file);
while(<FILE>) {
	s/#.*$//;
	s/\r|\n//g;
	if (/^\s*(\S+)/) {
		local $var = $1;
		local ($def, $over);
		if (/DEFAULT="([^"]+)"/i || /DEFAULT=(\S+)/i) {
			$def = $1;
			}
		if (/OVERRIDE="([^"]+)"/i || /OVERRIDE=(\S+)/i) {
			$over = $1;
			}
		push(@env, [ $var, $def, $over ]);
		}
	}
close(FILE);
print "<tr> <td colspan=4><table width=100% border>\n";
print "<tr $tb> <td><b>$text{'env_var'}</b></td> ",
      "<td><b>$text{'env_def'}</b></td> ",
      "<td><b>$text{'env_over'}</b></td> </tr>\n";
local $i = 0;
foreach $e (@env, [ ]) {
	print "<tr> <td><input name=var_$i size=20 value='$e->[0]'></td>\n";
	print "<td><input name=def_$i size=30 value='$e->[1]'></td>\n";
	print "<td><input name=over_$i size=30 value='$e->[2]'></td> </tr>\n";
	$i++;
	}
print "</table></td> </tr>\n";
}

# parse_module_args(&service, &module, &args)
sub parse_module_args
{
local $file = $_[2]->{'conffile'} ? $_[2]->{'conffile'}
				  : "/etc/security/pam_env.conf";
local ($i, @lines);
for($i=0; defined($in{"var_$i"}); $i++) {
	next if (!$in{"var_$i"});
	$in{"var_$i"} =~ /^\S+$/ || &error($text{'env_evar'});
	local $line = $in{"var_$i"};
	$line .= "\tDEFAULT=\"".$in{"def_$i"}."\"" if ($in{"def_$i"});
	$line .= "\tOVERRIDE=\"".$in{"over_$i"}."\"" if ($in{"over_$i"});
	push(@lines, $line,"\n");
	}
&lock_file($file);
open(FILE, ">$file");
print FILE @lines;
close(FILE);
&unlock_file($file);
}

07070100028794000081a40000000000000002000000013ac038be00000035000000200000000000000000000000000000001b00000003reloc/pam/pam_filter.so.pl    # pam_filter.so has no UI

$module_has_no_args = 1;

   07070100028795000081a40000000000000002000000013ac038be00000631000000200000000000000000000000000000001a00000003reloc/pam/pam_group.so.pl # display args for pam_group.so

# display_args(&service, &module, &args)
sub display_module_args
{
local $file = "/etc/security/group.conf";
local @group;
open(FILE, $file);
while(<FILE>) {
	s/#.*$//;
	s/\r|\n//g;
	if (/^\s*([^;]*)\s*;\s*([^;]*)\s*;\s*([^;]*)\s*;\s*([^;]*)\s*;\s*([^;]*)\s*$/) {
		push(@group, [ $1, $2, $3, $4, $5 ]);
		}
	}
close(FILE);
print "<tr> <td colspan=4><table border width=100%>\n";
print "<tr $tb> <td><b>$text{'group_services'}</b></td> ",
      "<td><b>$text{'group_ttys'}</b></td> ",
      "<td><b>$text{'group_users'}</b></td> ",
      "<td><b>$text{'group_times'}</b></td> ",
      "<td><b>$text{'group_groups'}</b></td> </tr>\n";
local $i = 0;
foreach $g (@group, [ ]) {
	print "<tr>\n";
	print "<td><input name=services_$i size=20 value='$g->[0]'></td>\n";
	print "<td><input name=ttys_$i size=20 value='$g->[1]'></td>\n";
	print "<td><input name=users_$i size=20 value='$g->[2]'></td>\n";
	print "<td><input name=times_$i size=20 value='$g->[3]'></td>\n";
	print "<td><input name=groups_$i size=20 value='$g->[4]'></td>\n";
	print "</tr>\n";
	$i++;
	}
print "</table><br>$text{'group_info'}</td> </tr>\n";
}

# parse_module_args(&service, &module, &args)
sub parse_module_args
{
local $file = "/etc/security/group.conf";
local (@lines, $i);
for($i=0; defined($in{"services_$i"}); $i++) {
	next if (!$in{"services_$i"});
	push(@lines, join(";", $in{"services_$i"}, $in{"ttys_$i"},
		     $in{"users_$i"}, $in{"times_$i"}, $in{"groups_$i"}),"\n");
	}
&lock_file($file);
open(FILE, ">$file");
print FILE @lines;
close(FILE);
&unlock_file($file);
}

   07070100028796000081a40000000000000002000000013ac038be000008ee000000200000000000000000000000000000001d00000003reloc/pam/pam_listfile.so.pl  # display args for pam_listfile.so

# display_args(&service, &module, &args)
sub display_module_args
{
print "<tr> <td><b>$text{'listfile_item'}</b></td>\n";
print "<td><select name=item>\n";
foreach $i ('user', 'tty', 'rhost', 'ruser', 'group', 'shell') {
	printf "<option value='%s' %s>%s\n",
		$i, $_[2]->{'item'} eq $i ? 'selected' : '',
		$text{'listfile_item_'.$i};
	}
print "</select></td>\n";

print "<td><b>$text{'listfile_sense'}</b></td>\n";
printf "<td><input type=radio name=sense value=allow %s> %s\n",
	$_[2]->{'sense'} eq 'allow' ? 'checked' : '', $text{'listfile_succeed'};
printf "<input type=radio name=sense value=deny %s> %s</td> </tr>\n",
	$_[2]->{'sense'} eq 'allow' ? '' : 'checked', $text{'listfile_fail'};

print "<tr> <td><b>$text{'listfile_file'}</b></td>\n";
print "<td colspan=3><input name=file size=50 value='$_[2]->{'file'}'> ",
      &file_chooser_button("file"),"</td> </tr>\n";

print "<tr> <td><b>$text{'listfile_onerr'}</b></td>\n";
printf "<td><input type=radio name=onerr value=fail %s> %s\n",
	$_[2]->{'onerr'} eq 'fail' ? 'checked' : '', $text{'listfile_fail'};
printf "<input type=radio name=onerr value=succeed %s> %s</td>\n",
	$_[2]->{'onerr'} eq 'fail' ? '' : 'checked', $text{'listfile_succeed'};

local $mode = $_[2]->{'apply'} =~ /^\@/ ? 2 :
	      $_[2]->{'apply'} ? 1 : 0;
print "<td><b>$text{'listfile_apply'}</b></td>\n";
printf "<td><input type=radio name=apply_mode value=0 %s> %s\n",
	$mode == 0 ? 'checked' : '', $text{'listfile_all'};
printf "<input type=radio name=apply_mode value=1 %s> %s %s\n",
	$mode == 1 ? 'checked' : '', $text{'listfile_user'},
	&unix_user_input("apply_user", $mode == 1 ? $_[2]->{'apply'} : "");
printf "<input type=radio name=apply_mode value=2 %s> %s %s</td> </tr>\n",
	$mode == 2 ? 'checked' : '', $text{'listfile_group'},
	&unix_group_input("apply_group", $mode == 2 ?
		substr($_[2]->{'apply'}, 1) : "");
}

# parse_module_args(&service, &module, &args)
sub parse_module_args
{
$_[2]->{'item'} = $in{'item'};
$_[2]->{'sense'} = $in{'sense'};
$_[2]->{'file'} = $in{'file'};
$_[2]->{'onerr'} = $in{'onerr'};
if ($in{'apply_mode'} == 0) {
	delete($_[2]->{'apply'});
	}
elsif ($in{'apply_mode'} == 1) {
	$_[2]->{'apply'} = $in{'apply_user'};
	}
else {
	$_[2]->{'apply'} = '@'.$in{'apply_group'};
	}
}
  07070100028797000081a40000000000000002000000013ac038be00000881000000200000000000000000000000000000001900000003reloc/pam/pam_mail.so.pl  # display args for pam_mail.so.pl

# display_args(&service, &module, &args)
sub display_module_args
{
print "<tr> <td><b>$text{'mail_nopen'}</b></td>\n";
printf "<td><input type=radio name=nopen value=0 %s> %s\n",
	defined($_[2]->{'nopen'}) ? '' : 'checked', $text{'yes'};
printf "<input type=radio name=nopen value=1 %s> %s</td>\n",
	defined($_[2]->{'nopen'}) ? 'checked' : '', $text{'no'};

print "<td><b>$text{'mail_close'}</b></td>\n";
printf "<td><input type=radio name=close value=1 %s> %s\n",
	defined($_[2]->{'close'}) ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=close value=0 %s> %s</td> </tr>\n",
	defined($_[2]->{'close'}) ? '' : 'checked', $text{'no'};

print "<tr> <td><b>$text{'mail_empty'}</b></td>\n";
printf "<td><input type=radio name=empty value=1 %s> %s\n",
	defined($_[2]->{'empty'}) ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=empty value=0 %s> %s</td>\n",
	defined($_[2]->{'empty'}) ? '' : 'checked', $text{'no'};

print "<td><b>$text{'mail_noenv'}</b></td>\n";
printf "<td><input type=radio name=noenv value=0 %s> %s\n",
	defined($_[2]->{'noenv'}) ? '' : 'checked', $text{'yes'};
printf "<input type=radio name=noenv value=1 %s> %s</td> </tr>\n",
	defined($_[2]->{'noenv'}) ? 'checked' : '', $text{'no'};

print "<tr> <td><b>$text{'mail_dir'}</b></td>\n";
printf "<td colspan=3><input type=radio name=dir_def value=1 %s> %s\n",
	$_[2]->{'dir'} ? '' : 'checked', $text{'default'};
printf "<input type=radio name=dir_def value=0 %s> %s\n",
	$_[2]->{'dir'} ? 'checked' : '';
print "<input name=dir size=30 value='$_[2]->{'dir'}'> ",
      &file_chooser_button("dir"),"</td> </tr>\n";
}

# parse_module_args(&service, &module, &args)
sub parse_module_args
{
if ($in{'nopen'}) { $_[2]->{'nopen'} = ''; }
else { delete($_[2]->{'nopen'}); }

if ($in{'close'}) { $_[2]->{'close'} = ''; }
else { delete($_[2]->{'close'}); }

if ($in{'empty'}) { $_[2]->{'empty'} = ''; }
else { delete($_[2]->{'empty'}); }

if ($in{'noenv'}) { $_[2]->{'noenv'} = ''; }
else { delete($_[2]->{'noenv'}); }

if ($in{'dir_def'}) { delete($_[2]->{'dir'}); }
else {
	-d $in{'dir'} || &error($text{'mail_edir'});
	$_[2]->{'dir'} = $in{'dir'};
	}
}

   07070100028798000081a40000000000000002000000013ac038be00000302000000200000000000000000000000000000001900000003reloc/pam/pam_motd.so.pl  # display args for pam_motd.so

$module_has_no_args = 1;	# file= arg doesn't seem to work!

# display_args(&service, &module, &args)
sub display_module_args
{
print "<tr> <td><b>$text{'motd_file'}</b></td>\n";
printf "<td colspan=3><input type=radio name=file_def value=1 %s> %s\n",
	$_[2]->{'file'} ? '' : 'checked', $text{'motd_file_def'};
printf "<input type=radio name=file_def value=0 %s>\n",
	$_[2]->{'file'} ? 'checked' : '';
print "<input name=file size=30 value='$_[2]->{'file'}'> ",
      &file_chooser_button("file"),"</td> </tr>\n";
}

# parse_module_args(&service, &module, &args)
sub parse_module_args
{
if ($in{'file_def'}) {
	delete($_[2]->{'file'});
	}
else {
	$in{'file'} =~ /^\S+$/ || &error($text{'motd_efile'});
	$_[2]->{'file'} = $in{'file'};
	}
}
  07070100028799000081a40000000000000002000000013ac038be00000036000000200000000000000000000000000000001c00000003reloc/pam/pam_nologin.so.pl   # pam_nologin.so has no UI

$module_has_no_args = 1;

  0707010002879a000081a40000000000000002000000013ac038be00000035000000200000000000000000000000000000001b00000003reloc/pam/pam_permit.so.pl    # pam_permit.so has no UI

$module_has_no_args = 1;

   0707010002879b000081a40000000000000002000000013ac038be0000068e000000200000000000000000000000000000001900000003reloc/pam/pam_pwdb.so.pl  # display args for pam_pwdb.so

# display_args(&service, &module, &args)
sub display_module_args
{
print "<tr> <td><b>$text{'pwdb_shadow'}</b></td>\n";
printf "<td><input type=radio name=shadow value=1 %s> %s\n",
	defined($_[2]->{'shadow'}) ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=shadow value=0 %s> %s</td>\n",
	defined($_[2]->{'shadow'}) ? '' : 'checked', $text{'no'};

print "<td><b>$text{'pwdb_nullok'}</b></td>\n";
printf "<td><input type=radio name=nullok value=1 %s> %s\n",
	defined($_[2]->{'nullok'}) ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=nullok value=0 %s> %s</td> </tr>\n",
	defined($_[2]->{'nullok'}) ? '' : 'checked', $text{'no'};

print "<tr> <td><b>$text{'pwdb_md5'}</b></td>\n";
printf "<td><input type=radio name=md5 value=1 %s> %s\n",
	defined($_[2]->{'md5'}) ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=md5 value=0 %s> %s</td>\n",
	defined($_[2]->{'md5'}) ? '' : 'checked', $text{'no'};

print "<td><b>$text{'pwdb_nodelay'}</b></td>\n";
printf "<td><input type=radio name=nodelay value=0 %s> %s\n",
	defined($_[2]->{'nodelay'}) ? '' : 'checked', $text{'yes'};
printf "<input type=radio name=nodelay value=1 %s> %s</td> </tr>\n",
	defined($_[2]->{'nodelay'}) ? 'checked' : '', $text{'no'};
}

# parse_module_args(&service, &module, &args)
sub parse_module_args
{
if ($in{'shadow'}) { $_[2]->{'shadow'} = ""; }
else { delete($_[2]->{'shadow'}); }

if ($in{'nullok'}) { $_[2]->{'nullok'} = ""; }
else { delete($_[2]->{'nullok'}); }

if ($in{'md5'}) { $_[2]->{'md5'} = ""; }
else { delete($_[2]->{'md5'}); }

if ($in{'nodelay'}) { $_[2]->{'nodelay'} = ""; }
else { delete($_[2]->{'nodelay'}); }
}
  0707010002879c000081a40000000000000002000000013ac038be000006ed000000200000000000000000000000000000002000000003reloc/pam/pam_rhosts_auth.so.pl   # display args for pam_rhosts_auth.so

# display_args(&service, &module, &args)
sub display_module_args
{
print "<tr> <td><b>$text{'rhosts_equiv'}</b></td>\n";
printf "<td><input type=radio name=equiv value=0 %s> $text{'yes'}\n",
	defined($_[2]->{'no_hosts_equiv'}) ? '' : 'checked';
printf "<input type=radio name=equiv value=1 %s> $text{'no'}</td>\n",
	defined($_[2]->{'no_hosts_equiv'}) ? 'checked' : '';

print "<td><b>$text{'rhosts_rhosts'}</b></td>\n";
printf "<td><input type=radio name=rhosts value=0 %s> $text{'yes'}\n",
	defined($_[2]->{'no_rhosts'}) ? '' : 'checked';
printf "<input type=radio name=rhosts value=1 %s> $text{'no'}</td> </tr>\n",
	defined($_[2]->{'no_rhosts'}) ? 'checked' : '';

print "<tr> <td><b>$text{'rhosts_promiscuous'}</b></td>\n";
printf "<td><input type=radio name=promiscuous value=1 %s> $text{'yes'}\n",
	defined($_[2]->{'promiscuous'}) ? 'checked' : '';
printf "<input type=radio name=promiscuous value=0 %s> $text{'no'}</td>\n",
	defined($_[2]->{'promiscuous'}) ? '' : 'checked';

print "<td><b>$text{'rhosts_suppress'}</b></td>\n";
printf "<td><input type=radio name=suppress value=0 %s> $text{'yes'}\n",
	defined($_[2]->{'suppress'}) ? '' : 'checked';
printf "<input type=radio name=suppress value=1 %s> $text{'no'}</td> </tr>\n",
	defined($_[2]->{'suppress'}) ? 'checked' : '';
}

# parse_module_args(&service, &module, &args)
sub parse_module_args
{
if ($in{'equiv'}) { $_[2]->{'no_hosts_equiv'} = ''; }
else { delete($_[2]->{'no_hosts_equiv'}); }

if ($in{'rhosts'}) { $_[2]->{'no_rhosts'} = ''; }
else { delete($_[2]->{'no_rhosts'}); }

if ($in{'promiscuous'}) { $_[2]->{'promiscuous'} = ''; }
else { delete($_[2]->{'promiscuous'}); }

if ($in{'suppress'}) { $_[2]->{'suppress'} = ''; }
else { delete($_[2]->{'suppress'}); }
}
   0707010002879d000081a40000000000000002000000013ac038be00000035000000200000000000000000000000000000001b00000003reloc/pam/pam_rootok.so.pl    # pam_rootok.so has no UI

$module_has_no_args = 1;

   0707010002879e000081a40000000000000002000000013ac038be0000025b000000200000000000000000000000000000001e00000003reloc/pam/pam_securetty.so.pl # display args for pam_securetty.so.pl

# display_args(&service, &module, &args)
sub display_module_args
{
local $file = "/etc/securetty";
print "<tr> <td valign=top><b>$text{'securetty_ttys'}</b></td>\n";
print "<td><textarea name=ttys rows=5 cols=20>";
open(FILE, $file);
while(<FILE>) { print; }
close(FILE);
print "</textarea></td> </tr>\n";
}

# parse_module_args(&service, &module, &args)
sub parse_module_args
{
local $file = "/etc/securetty";
&lock_file($file);
open(FILE, ">$file");
$in{'ttys'} =~ s/\r//g;
$in{'ttys'} =~ s/\s*$/\n/;
print FILE $in{'ttys'};
close(FILE);
&unlock_file($file);
}
 0707010002879f000081a40000000000000002000000013ac038be00000259000000200000000000000000000000000000001b00000003reloc/pam/pam_shells.so.pl    # display args for pam_shells.so.pl

# display_args(&service, &module, &args)
sub display_module_args
{
local $file = "/etc/shells";
print "<tr> <td valign=top><b>$text{'shells_shells'}</b></td>\n";
print "<td><textarea name=shells rows=5 cols=30>";
open(FILE, $file);
while(<FILE>) { print; }
close(FILE);
print "</textarea></td> </tr>\n";
}

# parse_module_args(&service, &module, &args)
sub parse_module_args
{
local $file = "/etc/shells";
&lock_file($file);
open(FILE, ">$file");
$in{'shells'} =~ s/\r//g;
$in{'shells'} =~ s/\s*$/\n/;
print FILE $in{'shells'};
close(FILE);
&unlock_file($file);
}
   070701000287a0000081a40000000000000002000000013ac038be000002ca000000200000000000000000000000000000001a00000003reloc/pam/pam_stack.so.pl # display args for pam_stack

# display_args(&service, &module, &args)
sub display_module_args
{
print "<tr> <td><b>$text{'stack_service'}</b></td>\n";
print "<td><select name=service>\n";
local $found;
foreach $c (&get_pam_config()) {
	printf "<option value=%s %s>%s\n",
		$c->{'name'},
		$_[2]->{'service'} eq $c->{'name'} ? 'selected' : '',
		$text{"desc_".$c->{'name'}} ? $text{"desc_".$c->{'name'}}
					    : $c->{'name'};
	$found++ if ($_[2]->{'service'} eq $c->{'name'});
	}
if ($_[2]->{'service'} && !$found) {
	print "<option checked>$_[2]->{'service'}\n";
	}
print "</select></td> </tr>\n";
}

# parse_module_args(&service, &module, &args)
sub parse_module_args
{
$_[2]->{'service'} = $in{'service'};
}
  070701000287a1000081a40000000000000002000000013ac038be00000849000000200000000000000000000000000000001a00000003reloc/pam/pam_tally.so.pl # display args for pam_tally.so.pl

# display_args(&service, &module, &args)
sub display_module_args
{
print "<tr> <td><b>$text{'tally_deny'}</b></td>\n";
printf "<td nowrap><input type=radio name=deny_def value=1 %s> %s\n",
	$_[2]->{'deny'} ? '' : 'checked', $text{'default'};
printf "<input type=radio name=deny_def value=0 %s>\n",
	$_[2]->{'deny'} ? 'checked' : '';
print "<input name=deny size=5 value='$_[2]->{'deny'}'></td>\n";

print "<td><b>$text{'tally_reset'}</b></td>\n";
printf "<td><input type=radio name=reset value=0 %s> %s\n",
	defined($_[2]->{'reset'}) || defined($_[2]->{'no_reset'}) ?
	'' : 'checked', $text{'default'};
printf "<input type=radio name=reset value=1 %s> %s\n",
	defined($_[2]->{'reset'}) ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=reset value=2 %s> %s</td> </tr>\n",
	defined($_[2]->{'no_reset'}) ? 'checked' : '', $text{'no'};

print "<tr> <td><b>$text{'tally_magic'}</b></td>\n";
printf "<td><input type=radio name=magic value=1 %s> %s\n",
	defined($_[2]->{'no_magic_root'}) ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=magic value=0 %s> %s</td>\n",
	defined($_[2]->{'no_magic_root'}) ? '' : 'checked', $text{'no'};

print "<td><b>$text{'tally_root'}</b></td>\n";
printf "<td><input type=radio name=root value=1 %s> %s\n",
      defined($_[2]->{'even_deny_root_account'}) ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=root value=0 %s> %s</td> </tr>\n",
      defined($_[2]->{'even_deny_root_account'}) ? '' : 'checked', $text{'no'};
}

# parse_module_args(&service, &module, &args)
sub parse_module_args
{
if ($in{'deny_def'}) { delete($_[2]->{'deny'}); }
else {
	$in{'deny'} =~ /^\d+$/ || &error($text{'tally_edeny'});
	$_[2]->{'deny'} = $in{'deny'};
	}

delete($_[2]->{'reset'});
delete($_[2]->{'no_reset'});
if ($in{'reset'} == 1) { $_[2]->{'reset'} = ''; }
elsif ($in{'reset'} == 2) { $_[2]->{'no_reset'} = ''; }

if ($in{'magic'}) { $_[2]->{'no_magic_root'} = ''; }
else { delete($_[2]->{'no_magic_root'}); }

if ($in{'root'}) { $_[2]->{'even_deny_root_account'} = ''; }
else { delete($_[2]->{'even_deny_root_account'}); }
}
   070701000287a2000081a40000000000000002000000013ac038be00000591000000200000000000000000000000000000001900000003reloc/pam/pam_time.so.pl  # display args for pam_time.so

# display_args(&service, &module, &args)
sub display_module_args
{
local $file = "/etc/security/time.conf";
local @time;
open(FILE, $file);
while(<FILE>) {
	s/#.*$//;
	s/\r|\n//g;
	if (/^\s*([^;]*)\s*;\s*([^;]*)\s*;\s*([^;]*)\s*;\s*([^;]*)\s*$/) {
		push(@time, [ $1, $2, $3, $4 ]);
		}
	}
close(FILE);
print "<tr> <td colspan=4><table border width=100%>\n";
print "<tr $tb> <td><b>$text{'time_services'}</b></td> ",
      "<td><b>$text{'time_ttys'}</b></td> ",
      "<td><b>$text{'time_users'}</b></td> ",
      "<td><b>$text{'time_times'}</b></td> </tr>\n";
local $i = 0;
foreach $t (@time, [ ]) {
	print "<tr>\n";
	print "<td><input name=services_$i size=25 value='$t->[0]'></td>\n";
	print "<td><input name=ttys_$i size=25 value='$t->[1]'></td>\n";
	print "<td><input name=users_$i size=25 value='$t->[2]'></td>\n";
	print "<td><input name=times_$i size=25 value='$t->[3]'></td>\n";
	print "</tr>\n";
	$i++;
	}
print "</table><br>$text{'time_info'}</td> </tr>\n";
}

# parse_module_args(&service, &module, &args)
sub parse_module_args
{
local $file = "/etc/security/time.conf";
local (@lines, $i);
for($i=0; defined($in{"services_$i"}); $i++) {
	next if (!$in{"services_$i"});
	push(@lines, join(";", $in{"services_$i"}, $in{"ttys_$i"},
			       $in{"users_$i"}, $in{"times_$i"}),"\n");
	}
&lock_file($file);
open(FILE, ">$file");
print FILE @lines;
close(FILE);
&unlock_file($file);
}

   070701000287a3000081a40000000000000002000000013ac038be000005c5000000200000000000000000000000000000001a00000003reloc/pam/pam_wheel.so.pl # display args for pam_wheel.so.pl

# display_args(&service, &module, &args)
sub display_module_args
{
print "<tr> <td><b>$text{'wheel_group'}</b></td>\n";
printf "<td colspan=3><input type=radio name=group_def value=1 %s> %s\n",
	$_[2]->{'group'} ? '' : 'checked', $text{'wheel_group_def'};
printf "<input type=radio name=group_def value=0 %s>\n",
	$_[2]->{'group'} ? 'checked' : '';
print "<input name=group size=8 value='$_[2]->{'group'}'> ",
      &group_chooser_button("group"),"</td> </tr>\n";

print "<tr> <td><b>$text{'wheel_trust'}</b></td>\n";
printf "<td><input type=radio name=trust value=1 %s> %s\n",
	defined($_[2]->{'trust'}) ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=trust value=0 %s> %s</td>\n",
	defined($_[2]->{'trust'}) ? '' : 'checked', $text{'no'};

print "<td><b>$text{'wheel_deny'}</b></td>\n";
printf "<td><input type=radio name=deny value=1 %s> %s\n",
	defined($_[2]->{'deny'}) ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=deny value=0 %s> %s</td> </tr>\n",
	defined($_[2]->{'deny'}) ? '' : 'checked', $text{'no'};
}

# parse_module_args(&service, &module, &args)
sub parse_module_args
{
if ($in{'trust'}) { $_[2]->{'trust'} = ''; }
else { delete($_[2]->{'trust'}); }

if ($in{'deny'}) { $_[2]->{'deny'} = ''; }
else { delete($_[2]->{'deny'}); }

if ($in{'group_def'}) { delete($_[2]->{'group'}); }
else {
	defined(getgrnam($in{'group'})) || &error($text{'wheel_egroup'});
	$_[2]->{'group'} = $in{'group'};
	}
}
   070701000287a4000081e40000000000000002000000013ac038be00000641000000200000000000000000000000000000001700000003reloc/pam/save_mod.cgi    #!/usr/local/bin/perl
# save_mod.cgi
# Update a module line in a service

require './pam-lib.pl';
&ReadParse();
&error_setup($text{'mod_err'});
@pam = &get_pam_config();
$pam = $pam[$in{'idx'}];

&lock_file($pam->{'file'});
if ($in{'delete'}) {
	# Deleting a module
	$mod = $pam->{'mods'}->[$in{'midx'}];
	&delete_module($pam->{'name'}, $mod);
	}
else {
	if ($in{'_module'}) {
		# Adding a new module
		$mod = { 'type' => $in{'_type'},
			 'module' => $in{'_module'} };
		$module = $in{'_module'};
		}
	else {
		# Existing module entry
		$mod = $pam->{'mods'}->[$in{'midx'}];
		$module = $mod->{'module'};
		$module =~ s/^.*\///;
		}
	$mod->{'control'} = $in{'control'};

	if (-r "./$module.pl") {
		# Args selected by UI
		do "./$module.pl";
		if (!$module_has_no_args) {
			foreach $a (split(/\s+/, $mod->{'args'})) {
				if ($a =~ /^([^\s=]+)=(\S*)$/) {
					$args{$1} = $2;
					}
				else {
					$args{$a} = "";
					}
				}
			&parse_module_args($pam, $mod, \%args);
			foreach $a (keys %args) {
				if ($args{$a} eq "") {
					push(@args, $a);
					}
				else {
					push(@args, "$a=$args{$a}");
					}
				}
			$mod->{'args'} = join(" ", @args);
			}
		}
	else {
		# Args entered manually
		$mod->{'args'} = $in{'args'};
		}

	if ($in{'_module'}) {
		# Add the PAM module entry
		&create_module($pam->{'name'}, $mod);
		}
	else {
		# Update the existing entry
		&modify_module($pam->{'name'}, $mod);
		}
	}
&unlock_file($pam->{'file'});
&webmin_log($in{'delete'} ? "delete" : $in{'_module'} ? "create" : "modify",
	    "mod", $pam->{'name'}, $mod);
&redirect("edit_pam.cgi?idx=$in{'idx'}");


   070701000287a5000081a40000000000000002000000013ac038be000000a2000000200000000000000000000000000000001600000003reloc/pam/template.pl # display args for

# display_args(&service, &module, &args)
sub display_module_args
{
}

# parse_module_args(&service, &module, &args)
sub parse_module_args
{
}
  0707010002caf9000041ed0000000000000001000000043ac03c2f00000000000000200000000000000000000000000000000a00000003reloc/pap 0707010002cafa000081a40000000000000002000000013ac038960000002d000000200000000000000000000000000000001d00000003reloc/pap/config-corel-linux  pap_file=/etc/ppp/pap-secrets
encrypt_pass=0
   0707010002cafb000081a40000000000000002000000013ac038960000002d000000200000000000000000000000000000001e00000003reloc/pap/config-debian-linux pap_file=/etc/ppp/pap-secrets
encrypt_pass=0
   0707010002cafc000081a40000000000000002000000013ac038960000002d000000200000000000000000000000000000001900000003reloc/pap/config-freebsd  pap_file=/etc/ppp/pap-secrets
encrypt_pass=0
   0707010002cafd000081a40000000000000002000000013ac038960000002d000000200000000000000000000000000000001c00000003reloc/pap/config-open-linux   pap_file=/etc/ppp/pap-secrets
encrypt_pass=0
   0707010002cafe000081a40000000000000002000000013ac038960000002d000000200000000000000000000000000000001e00000003reloc/pap/config-redhat-linux pap_file=/etc/ppp/pap-secrets
encrypt_pass=0
   0707010002caff000081a40000000000000002000000013ac038960000002d000000200000000000000000000000000000002100000003reloc/pap/config-slackware-linux  pap_file=/etc/ppp/pap-secrets
encrypt_pass=0
   0707010002cb00000081a40000000000000002000000013ac038960000002d000000200000000000000000000000000000001c00000003reloc/pap/config-suse-linux   pap_file=/etc/ppp/pap-secrets
encrypt_pass=0
   0707010002cb01000081a40000000000000002000000013ac038960000002d000000200000000000000000000000000000001d00000003reloc/pap/config-turbo-linux  pap_file=/etc/ppp/pap-secrets
encrypt_pass=0
   0707010002cb02000081a40000000000000002000000013ac0389600000059000000200000000000000000000000000000001600000003reloc/pap/config.info pap_file=PAP secrets file,0
encrypt_pass=Encrypt passwords in secrets file,1,1-Yes,0-No

   0707010002cb08000081a40000000000000002000000013ac038960000006e000000200000000000000000000000000000001900000003reloc/pap/config.info.de  pap_file=PAP Passwort Datei,0
encrypt_pass=Verschl&uuml;ssle Passw&ouml;rter in Password Datei,1,1-Ja,0-Nein

  0707010002cb09000081a40000000000000002000000013ac0389600000071000000200000000000000000000000000000001900000003reloc/pap/config.info.es  pap_file=Archivo de secretos de PAP,0
encrypt_pass=Ecriptar claves de acceso en archivo de secretos,1,1-S,0-No

   0707010002cb0a000081a40000000000000002000000013ac0389600000068000000200000000000000000000000000000001900000003reloc/pap/config.info.fr  pap_file=Fichier d'usager PAP,0
encrypt_pass=Encrypter les mots de passe dans le fichier,1,1-Oui,0-Non

0707010002cb0b000081a40000000000000002000000013ac0389600000054000000200000000000000000000000000000001900000003reloc/pap/config.info.pl  pap_file=Plik hase PAP,0
encrypt_pass=Szyfrowa has砤 w&nbsp; pliku,1,1-Tak,0-Nie

0707010002cb0c000081a40000000000000002000000013ac0389600000068000000200000000000000000000000000000001900000003reloc/pap/config.info.sv  pap_file=Fil f鰎 PAP-hemligheter,0
encrypt_pass=Kryptera l鰏enord i filen f鰎 hemligheter,1,1-Ja,0-Nej

0707010002cb0d000081a40000000000000002000000013ac0389600000069000000200000000000000000000000000000001900000003reloc/pap/config.info.tr  pap_file=PAP parola dosyas,0
encrypt_pass=Parola dosyas齨da parolalar 㱮frelensin mi?,1,1-Evet,0-Hay齬

   0707010002cb0e000081a40000000000000002000000013ac038960000004b000000200000000000000000000000000000001c00000003reloc/pap/config.info.zh_CN   pap_file=PAP 口令文件,0
encrypt_pass=在安全文件中使用加密口令,1,1-是,0-否

 0707010002cb0f000081a40000000000000002000000013ac038960000004b000000200000000000000000000000000000002100000003reloc/pap/config.info.zh_TW.Big5  pap_file=PAP 盞絏郎,0
encrypt_pass=盞絏郎い琌ㄏノ絪絏盞絏,1,1-琌,0-

 0707010002cb10000081e40000000000000002000000013ac0389600000cbb000000200000000000000000000000000000001a00000003reloc/pap/edit_secret.cgi #!/usr/local/bin/perl
# edit_secret.cgi
# Displays a form for editing or creating a pap secret

require './pap-lib.pl';
if (@ARGV) {
	$idx = $ARGV[0];
	&header($text{'edit_secret_etitle'}, "");
	@seclist = &list_secrets();
	%sec = %{$seclist[$idx]};
	}
else {
	&header($text{'edit_secret_ctitle'}, "");
	}
print "<hr>\n";

print "<form action=save_secret.cgi>\n";
if (%sec) { print "<input type=hidden name=idx value=$idx>\n"; }
print "<table border width=100%>\n";
print "<tr $tb> <td colspan=4><b>",$text{'edit_secret_acc'},"</b></td> </tr>\n";

print "<tr $cb> <td><b>", $text{'edit_secret_user'}, "</b></td>\n";
printf "<td><input type=radio name=client_def value=1 %s> ",
	%sec && !$sec{'client'} ? "checked" : "";
print $text{'edit_secret_uany'}, "\n";
printf "<input type=radio name=client_def value=0 %s> ",
	%sec && !$sec{'client'} ? "" : "checked";
print "<input name=client size=20 value=\"$sec{'client'}\"></td>\n";

print "<td><b>",$text{'edit_secret_serv'},"</b></td>\n";
printf "<td><input type=radio name=server_def value=1 %s> ",
	$sec{'server'} eq "*" ? "checked" : "";
print $text{'edit_secret_sany'},"\n";
printf "<input type=radio name=server_def value=0 %s> ",
	$sec{'server'} eq "*" ? "" : "checked";
printf "<input name=server size=20 value=\"%s\"></td> </tr>\n",
	$sec{'server'} eq "*" ? "" : $sec{'server'};

print "<tr $cb> <td valign=top><b>", $text{'edit_secret_pass'}, "</b></td>\n";
printf "<td valign=top><input type=radio name=pass_mode value=0 %s> ",
	%sec && $sec{'secret'} eq "" ? "checked" : "";
print $text{'edit_secret_none'}, "<br>\n";
printf "<input type=radio name=pass_mode value=1 %s> ",
	$sec{'secret'} =~ /^@(.*)$/ ? "checked" : "";
print $text{'edit_secret_ffile'};
printf "<input name=pass_file size=20 value=\"%s\">\n",
	$sec{'secret'} =~ /^@(.*)$/ ? $1 : "";
print &file_chooser_button("pass_file", 0);
print "<br>\n";
if (%sec) {
	printf "<input type=radio name=pass_mode value=2 %s> ",
		$sec{'secret'} !~ /^(@.*|)$/ ? "checked" : "";
	print $text{'edit_secret_leave'}, "<br>\n";
	}
printf "<input type=radio name=pass_mode value=3 %s> ",
	%sec ? "" : "checked";
print $text{'edit_secret_setto'}, "\n";
print "<input type=password name=pass_text size=15></td>\n";

@ips = @{$sec{'ips'}};
print "<td valign=top><b>", $text{'edit_secret_vaddr'}, "</b></td>\n";
printf "<td><input type=radio name=ips_mode value=0 %s> ",
	$ips[0] eq "*" ? "checked" : "";
print $text{'edit_secret_aany'}, "<br>\n";
printf "<input type=radio name=ips_mode value=1 %s> ",
	$ips[0] eq "-" || !@ips ? "checked" : "";
print $text{'edit_secret_anone'}, "<br>\n";
printf "<input type=radio name=ips_mode value=2 %s> ",
	@ips && $ips[0] ne "-" && $ips[0] ne "*" ? "checked" : "";
print $text{'edit_secret_alist'}, "<br>\n";
printf "<textarea name=ips rows=5 cols=20>%s</textarea></td> </tr>\n",
	@ips && $ips[0] ne "-" && $ips[0] ne "*" ? join("\n", @ips) : "";

print "</table>\n";
print "<table width=100%><tr><td align=left>\n";
print "<input type=submit value=", $text{'edit_secret_save'}, "></td>\n";
if (%sec) {
	print "<td align=right>\n";
	print "<input type=submit name=delete value=", $text{'edit_secret_del'},
	      "></td>\n";
	}
print "</tr></table></form>\n";

print "<hr>\n";
&footer("", $text{'edit_secret_return'});

 0707010000eb43000041ed0000000000000001000000023ac03c2f00000000000000200000000000000000000000000000001100000003reloc/pap/images  0707010000eb44000081a40000000000000002000000013ac0389600000117000000200000000000000000000000000000001a00000003reloc/pap/images/icon.gif GIF89a0 0      fff烫!    ,    0 0  鑴彥隧碯墬;{Vv)夎泭lK櫬' 弦澝濻P8$䜣翝2:隃O9}U.l嬸姄啾|0w鸯鏝瘌>h5R鞔餍穟G℅鮢Xu徼3X8C)!壉3棖襂F4g箩p闖汉"梽:!Ｅ3J;捕贙鍣S缅k%斄鵮*=礑L峿l寮itT
~溮`l莠謣O飉喙煰縩斂D鲒  ; 0707010002cb11000081e40000000000000002000000013ac0389600000785000000200000000000000000000000000000001400000003reloc/pap/index.cgi   #!/usr/local/bin/perl
# index.cgi
# Displays a list of all PAP secrets

require './pap-lib.pl';
&header($text{'index_title'}, "", undef, 1, 1);
print "<hr>\n";

if (!(-r $config{'pap_file'})) {
	print "<b>", &text('index_enopfile', $config{'pap_file'}), "</b>.<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index_return'});
	exit;
	}

@sec = &list_secrets();
print "<table border width=100%>\n";
print "<tr $tb> <td><b>", $text{'index_table'}, "</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";
print "<tr> <td width=25%><b>", $text{'index_user'}, "</b></td> ",
      "<td width=25%><b>", $text{'index_server'}, "</b></td> ",
      "<td width=25%><b>", $text{'index_user'}, "</b></td> ",
      "<td width=25%><b>", $text{'index_server'}, "</b></td> </tr>\n";
for($i=0; $i<@sec; $i++) {
	if ($i%2 == 0) { print "<tr>\n"; }
	$s = $sec[$i];
	printf "<td width=25%><a href=\"edit_secret.cgi?$i\">%s</a></td>\n",
		$s->{'client'} ? $s->{'client'} : $text{'index_uany'};
	printf "<td width=25%>%s</td>\n",
		$s->{'server'} eq "*" ? $text{'index_sany'} : $s->{'server'};
	if ($i%2 == 1) { print "</tr>\n"; }
	}
print "</table></td></tr></table>\n";
print "<a href=\"edit_secret.cgi\">", $text{'index_create'}, "</a>.<p>\n";

print "<hr>\n", $text{'index_info'}, " <p>\n";

print "<form action=save_sync.cgi>\n";
printf "<input type=checkbox name=add value=1 %s>\n",
	$config{'sync_add'} ? "checked" : "";
print $text{'index_onadd'}, "\n";
print "<input name=server size=20 value=\"$config{'sync_server'}\"><p>\n";

printf "<input type=checkbox name=change value=1 %s>\n",
	$config{'sync_change'} ? "checked" : "";
print $text{'index_onchange'}, "<p>\n";

printf "<input type=checkbox name=delete value=1 %s>\n",
	$config{'sync_delete'} ? "checked" : "";
print $text{'index_ondelete'}, "<p>\n";
print "<input type=submit value=", $text{'index_apply'}, "></form>\n";

print "<hr>\n";
&footer("/", $text{'index_return'});

   0707010002fc0a000041ed0000000000000001000000023ac03c2f00000000000000200000000000000000000000000000000f00000003reloc/pap/lang    0707010002fc0b000081a40000000000000002000000013ac03896000006f7000000200000000000000000000000000000001200000003reloc/pap/lang/de index_title=PPP-Konten
index_enopfile=Die PPP Passwort-Datei '$1' existiert nicht auf Ihrem System. M&ouml;glicherweise ist PPP nicht installiert!
index_table=PPP-Konten (Einwahl und externe Anwahl)
index_user=Benutzername
index_server=Server
index_uany=JEDER
index_sany=JEDER

index_create=Erzeuge neues PPP-Konto
index_info=Webmin kann so konfiguriert werden, dass &Auml;nderungen der Unix-Benutzerliste automatisch auf die PPP-Konten angewandt werden. Dies wird nur funktionieren, wenn das <tt>Benutzer und Gruppen</tt> Webmin-Modul benutzt wird zum hinzuf黦en, l&ouml;schen oder &auml;ndern von Benutzern.
index_onadd=Hinzuf&uuml;gen eines PPP-Kontos wenn ein Unix-Benutzer (Server) hinzugef&uuml;gt wird.
index_onchange=&Auml;ndern des PPP-Kontos wenn ein Unix-Benutzer ge&auml;ndert wird.
index_ondelete=L&ouml;schen des PPP-Kontos wenn ein Unix-Benutzer gel&ouml;scht wird.
index_apply=Anwenden
index_return=Index

edit_secret_etitle=Bearbeiten PPP-Konto
edit_secret_ctitle=Anlegen PPP-Konto
edit_secret_acc=PPP-Konten
edit_secret_user=Benutzername
edit_secret_serv=Server
edit_secret_sany=JEDER
edit_secret_uany=JEDER
edit_secret_pass=Passwort
edit_secret_none=None
edit_secret_ffile=von Datei
edit_secret_leave=unver&auml;ndert lassen
edit_secret_setto=setzen
edit_secret_vaddr=g&uuml;ltige Adresse
edit_secret_aany=Erlaube JEDER
edit_secret_anone=Erlaube Niemand
edit_secret_alist=Erlaube angezeigte...
edit_secret_save=Speichern
edit_secret_del=L&ouml;schen
edit_secret_return=Konten anzeigen

save_secret_esave=Fehler beim Speichern des Kontos
save_secret_enoip='$1' ist keine g&uuml;ltige Adresse

log_create=Angelegter PPP-Benutzer $1
log_modify=Ge&auml;nderter PPP-Benutzer $1
log_delete=Gel&ouml;schter PPP-Benutzer $1
log_sync=Unix-Benutzer-Synchronisation ge鋘dert
 0707010002fc0c000081a40000000000000002000000013ac03896000005f0000000200000000000000000000000000000001200000003reloc/pap/lang/en index_title=PPP Accounts
index_enopfile=The PPP passwords file '$1' does not exist on your system. Maybe PPP is not installed
index_table=PPP Dial-in and Dial-out Accounts
index_user=Username
index_server=Server
index_uany=ANY
index_sany=ANY
index_create=Create new PPP account
index_info=Webmin can be configured so that changes to the Unix user list will automatically be applied to the list of PPP accounts. This will only work when the <tt>Users and Groups</tt> Webmin module is used to add, delete or change users.
index_onadd=Add a PPP account when a Unix user is added, for the server
index_onchange=Change the PPP account when a Unix user is changed
index_ondelete=Delete the PPP account when a Unix user is deleted
index_apply=Apply
index_return=index

edit_secret_etitle=Edit PPP Account
edit_secret_ctitle=Create PPP Account
edit_secret_acc=PPP Account
edit_secret_user=Username
edit_secret_serv=Server
edit_secret_sany=Any
edit_secret_uany=Any
edit_secret_pass=Password
edit_secret_none=None
edit_secret_ffile=From file 
edit_secret_leave=Leave unchanged
edit_secret_setto=Set to
edit_secret_vaddr=Valid Addresses
edit_secret_aany=Allow any
edit_secret_anone=Allow none
edit_secret_alist=Allow listed..
edit_secret_save=Save
edit_secret_del=Delete
edit_secret_return=account list

save_secret_esave=Failed to save account 
save_secret_enoip='$1' is not a valid address

log_create=Created PPP user $1
log_modify=Modified PPP user $1
log_delete=Deleted PPP user $1
log_sync=Changed unix user synchronisation

0707010002fc0d000081a40000000000000002000000013ac03896000006a5000000200000000000000000000000000000001200000003reloc/pap/lang/es index_title=Cuentas PPP
index_enopfile=El archivo de claves de acceso PPP '$1' no existe en tu sistema. Quiz醩 PPP no ha sido instalado
index_table=Cuentas PPP de Entrada y Salida
index_user=Nombre de usuario
index_server=Servidor
index_uany=CUALQUIERA (ANY)
index_sany=CUALQUIERA (ANY)
index_create=Crear nueva cuenta PPP
index_info=Webmin puede ser configurado de tal manera que los cambios de la lista de usuarios de Unix sea autom醫icamente aplicada a la lista de cuentas PPP. Esto s髄o funciona si el m骴ulo Webmin de <tt>Usuarios y Grupos</tt>se utiliza para a馻dir, borrar o cambiar usuarios.
index_onadd=A馻dir cuenta PPP al a馻dir un usuario Unix, para el servidor
index_onchange=Cambiar cuenta PPP cuando un usuario Unix cambie
index_ondelete=Borrar cuenta PPP cuando un usuario Unix sea borrado
index_apply=Aplicar
index_return=韓dice

edit_secret_etitle=Editar Cuenta PPP
edit_secret_ctitle=Crear Cuenta PPP
edit_secret_acc=Cuenta PPP
edit_secret_user=Nombre de usuario
edit_secret_serv=Servidor
edit_secret_sany=Cualquiera
edit_secret_uany=Cualquiera
edit_secret_pass=Clave de acceso
edit_secret_none=Ninguna
edit_secret_ffile=Desde archivo
edit_secret_leave=Dejar sin cambio
edit_secret_setto=Poner a
edit_secret_vaddr=Direcciones v醠idas
edit_secret_aany=Permitir cualquiera
edit_secret_anone=No permitir a nadie
edit_secret_alist=Permitir las listadas...
edit_secret_save=Salvar
edit_secret_del=Borrar
edit_secret_return=lista de cuentas

save_secret_esave=No pude salvar cuenta 
save_secret_enoip='$1' no es una direcci髇 v醠ida

log_create=Creado usuario PPP $1
log_modify=Modificado usuario PPP $1
log_delete=Borrado usuario PPP $1
log_sync=Cambiada sincronizaci髇 de usuario unix

   0707010002fc0e000081a40000000000000002000000013ac03896000006c0000000200000000000000000000000000000001200000003reloc/pap/lang/pl index_title=Konta PPP
index_enopfile=Plik hase PPP '$1' nie istnieje w&nbsp;Twoim systemie. By mo縠 PPP nie jest zainstalowane
index_table=Konta PPP do wdzwaniania i&nbsp;dzwonienia
index_user=Nazwa u縴tkownika
index_server=Serwer
index_uany=DOWOLNA
index_sany=DOWOLNY
index_create=Utw髍z nowe konto PPP
index_info=Webmina mo縩a skonfigurowa tak, aby jakiekolwiek zmiany u縴tkownik體 Uniksa powodowa硑 automatyczne zmiany kont PPP. B阣zie to dzia砤 jedynie w&nbsp;przypadku, gdy wszelkie zmiany, dodawanie i&nbsp;usuwanie u縴tkownik體 odbywaj si poprzez modu Webmina <tt>U縴tkownicy i&nbsp;grupy</tt>.
index_onadd=Dodaj nowe konto PPP przy dodawaniu nowego u縴tkownika Uniksa, dla serwera
index_onchange=Zmie konto PPP przy zmianie u縴tkownika Uniksa
index_ondelete=Usu konto PPP przy usuwaniu u縴tkownika Uniksa
index_apply=Zastosuj
index_return=indeksu

edit_secret_etitle=Zmie konto PPP
edit_secret_ctitle=Utw髍z konto PPP
edit_secret_acc=Konto PPP
edit_secret_user=Nazwa<br>u縴tkownika
edit_secret_serv=Serwer
edit_secret_sany=Dowolny
edit_secret_uany=Dowolna
edit_secret_pass=Has硂
edit_secret_none=Brak
edit_secret_ffile=Z&nbsp;pliku 
edit_secret_leave=Pozostaw niezmienione
edit_secret_setto=Ustaw na
edit_secret_vaddr=Dozwolone<br>adresy
edit_secret_aany=Pozw髄 wszystkim
edit_secret_anone=Nie pozw髄 縜dnemu
edit_secret_alist=Pozw髄 wymienionym..
edit_secret_save=Zachowaj
edit_secret_del=Usu 
edit_secret_return=listy kont

save_secret_esave=Nie uda硂 si zachowa konta
save_secret_enoip='$1' nie jest poprawnym adresem

log_create=Utworzono u縴tkownika PPP $1
log_modify=Zmieniono u縴tkownika PPP $1
log_delete=Usuni阾o u縴tkownika PPP $1
log_sync=Zmieniono synchronizacj z&nbsp;u縴tkownikami uniksowymi
0707010002fc0f000081a40000000000000002000000013ac0389600000634000000200000000000000000000000000000001200000003reloc/pap/lang/sv index_title=PPP-konton
index_enopfile=PPP-l鰏enordsfilen '$1' finns inte p ditt system. PPP kanske inte har installerats.
index_table=PPP-konton f鰎 in- och utringning
index_user=Anv鋘darnamn
index_server=Server
index_uany=ANY
index_sany=ANY
index_create=Skapa nytt PPP-konto
index_info=Webmin kan st鋖las in s att 鋘dringar i Unix-anv鋘darlistan automatiskt f鰎s in i listan 鰒er PPP-konton. Detta fungerar bara om Webmin-modulen <tt>Anv鋘dare och grupper</tt> anv鋘ds f鰎 att l鋑ga till, 鋘dra och ta bort anv鋘dare.
index_onadd=Skapa ett PPP-konto n鋜 en Unix-anv鋘dare skapas, f鰎 servern
index_onchange=膎dra PPP-kontot n鋜 en Unix-anv鋘dare 鋘dras
index_ondelete=Ta bort PPP-kontot n鋜 en Unix-anv鋘dare tas bort
index_apply=Ta i drift
index_return=index

edit_secret_etitle=膎dra PPP-konto
edit_secret_ctitle=Skapa PPP-konto
edit_secret_acc=PPP-konto
edit_secret_user=Anv鋘darnamn
edit_secret_serv=Server
edit_secret_sany=Vilken som helst
edit_secret_uany=Vilken som helst
edit_secret_pass=L鰏enord
edit_secret_none=Inget
edit_secret_ffile=Fr錸 fil
edit_secret_leave=膎dra inte
edit_secret_setto=S鋞t till
edit_secret_vaddr=Giltiga adresser
edit_secret_aany=Till錿 alla
edit_secret_anone=Till錿 ingen
edit_secret_alist=Till錿 angivna ...
edit_secret_save=Spara
edit_secret_del=Ta bort
edit_secret_return=kontolista

save_secret_esave=Det gick inte att spara kontot
save_secret_enoip='$1' 鋜 inte en giltig adress

log_create=Skapade PPP-anv鋘dare $1
log_modify=Modifierade PPP-anv鋘dare $1
log_delete=Tog bort PPP-anv鋘dare $1
log_sync=膎drade synkronisering med unix-anv鋘dare

0707010002fc10000081a40000000000000002000000013ac03896000004f8000000200000000000000000000000000000001500000003reloc/pap/lang/zh_CN  index_title=PPP 帐户
index_enopfile=在您的系统中没能找到 PPP 口令文件  '$1',可能没安装 PPP
index_table=PPP 拨入和拨出帐户
index_user=用户
index_server=服务器
index_uany=任意
index_sany=任意
index_create=创建新的 PPP 帐户
index_info=Webmin 可以被配置,这样对 Unix 用户表的改变将自动被应用到 PPP 的帐户列表.这些只是在 Webmin 的 <tt>Users and Groups</tt> 模块被用来增加、删除和更改用户时有效。
index_onadd=当增加一个 Unix 用户时为系统加一个 PPP 帐户
index_onchange=当改变一个 Unix 用户时改变他的 PPP 帐户
index_ondelete=当删除一个 Unix 用户时，删除相应的PPP 帐户
index_apply=应用
index_return=目录

edit_secret_etitle=编辑 PPP 帐户
edit_secret_ctitle=创建 PPP 帐户
edit_secret_acc=PPP 帐户
edit_secret_user=用户名
edit_secret_serv=服务器
edit_secret_sany=任意
edit_secret_uany=任意
edit_secret_pass=口令
edit_secret_none=无
edit_secret_ffile=从文件
edit_secret_leave=保持不变
edit_secret_setto=设置到
edit_secret_vaddr=有效地址
edit_secret_aany=允许每个人
edit_secret_anone=全不能
edit_secret_alist=允许被列出的..
edit_secret_save=保存
edit_secret_del=删除
edit_secret_return=帐户列表

save_secret_esave=保存帐户失败
save_secret_enoip='$1' 不是一个有效地址

log_create=已创建 PPP 用户 $1
log_modify=已更新 PPP 用户 $1
log_delete=已删除 PPP 用户 $1
log_sync=已与 Unix 用户同步
0707010002cb12000081a40000000000000002000000013ac0389600000277000000200000000000000000000000000000001800000003reloc/pap/log_parser.pl   # log_parser.pl
# Functions for parsing this module's logs

require './pap-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p) = @_;
if ($action eq 'modify') {
	return &text('log_modify', "<tt>$object</tt>");
	}
elsif ($action eq 'create') {
	return &text('log_create', "<tt>$object</tt>");
	}
elsif ($action eq 'delete') {
	return &text('log_delete', "<tt>$object</tt>");
	}
elsif ($action eq 'sync') {
	return $text{'log_sync'};
	}
else {
	return undef;
	}
}

 0707010002cb14000081a40000000000000002000000013ac0389600000262000000200000000000000000000000000000001600000003reloc/pap/module.info name=PAP Secrets
desc_pt=Usernames e Passwords de Acesso de Utilizadores PPP
desc_tr=PPP Kullan齝 Adlar ve 辤freleri
desc_fr=Usagers et mots de passes PPP
desc_es=Nombres y Claves de Acceso de Usuarios PPP
desc_de=PPP Benutzer und Passw&ouml;rter
desc_sv=PPP-anv鋘darnamn och -l鰏enord
desc_ru_SU=鹣特谙琢耘躺  鹆蚁躺 PPP
desc_pl=Uzytkownicy i&nbsp;has砤 PPP (PAP)
category=servers
os_support=redhat-linux suse-linux slackware-linux debian-linux open-linux turbo-linux corel-linux freebsd
desc_zh_TW.Big5=PPP ㄏノ籔盞絏
desc=PPP Accounts
risk=high
desc_zh_CN=PPP 帐户
desc_ru_RU=项朦珙忄蝈腓  相痤腓 PPP
  0707010002cb15000081a40000000000000002000000013ac038960000065b000000200000000000000000000000000000001500000003reloc/pap/pap-lib.pl  # pap-lib.pl
# Functions for managing the pap-secrets file

do '../web-lib.pl';
&init_config();

# list_secrets()
sub list_secrets
{
local(@rv, $line, $_);
open(SEC, $config{'pap_file'});
$line = 0;
while(<SEC>) {
	chop;
	s/^#.*$//g;
	@w = &split_words($_);
	if (@w >= 3) {
		local(%sec, @ips);
		$sec{'client'} = $w[0];
		$sec{'server'} = $w[1];
		$sec{'secret'} = $w[2];
		@ips = @w[3..$#w];
		$sec{'ips'} = \@ips;
		$sec{'line'} = $line;
		push(@rv, \%sec);
		}
	$line++;
	}
close(SEC);
return @rv;
}

# create_secret(&secret)
sub create_secret
{
open(SEC, ">> $config{'pap_file'}");
print SEC &join_words($_[0]->{'client'}, $_[0]->{'server'},
		      $_[0]->{'secret'}, @{$_[0]->{'ips'}}),"\n";
close(SEC);
}

# change_secret(&secret)
sub change_secret
{
&replace_file_line($config{'pap_file'}, $_[0]->{'line'},
		   &join_words($_[0]->{'client'}, $_[0]->{'server'},
			       $_[0]->{'secret'}, @{$_[0]->{'ips'}})."\n");
}

# delete_secret(&secret)
sub delete_secret
{
&replace_file_line($config{'pap_file'}, $_[0]->{'line'});
}

# split_words(string)
sub split_words
{
local($s, @w);
$s = $_[0];
while($s =~ /^\s*([^"\s]+|"([^"]*)")(.*)$/) {
	push(@w, defined($2) ? $2 : $1);
	$s = $3;
	}
return @w;
}

sub join_words
{
local(@w, $w);
foreach $w (@_) {
	if ($w =~ /^\S+$/) { push(@w, $w); }
	else { push(@w, "\"$w\""); }
	}
return join("  ", @w);
}

# opt_crypt(password)
# Returns the given password, crypted if the user has configured it
sub opt_crypt
{
if ($config{'encrypt_pass'}) {
	local($salt);
	srand(time());
	$salt = chr(int(rand(26))+65).chr(int(rand(26))+65);
	return crypt($_[0], $salt);
	}
return $_[0];
}

 0707010002cb16000081e40000000000000002000000013ac038960000056a000000200000000000000000000000000000001a00000003reloc/pap/save_secret.cgi #!/usr/local/bin/perl
# save_secret.cgi
# Update the secrets file to add or change a secret

require './pap-lib.pl';
&ReadParse();
$whatfailed = $text{'save_secret_esave'};

&lock_file($config{'pap_file'});
if (defined($in{'idx'})) {
	@seclist = &list_secrets();
	%sec = %{$seclist[$in{'idx'}]};
	if ($in{'delete'}) {
		&delete_secret(\%sec);
		&unlock_file($config{'pap_file'});
		&webmin_log("delete", undef, $sec{'client'}, \%sec);
		&redirect("");
		exit;
		}
	}

if ($in{'client_def'}) { $sec{'client'} = ""; }
else { $sec{'client'} = $in{'client'}; }

if ($in{'server_def'}) { $sec{'server'} = "*"; }
else { $sec{'server'} = $in{'server'}; }

if ($in{'pass_mode'} == 0) { $sec{'secret'} = ""; }
elsif ($in{'pass_mode'} == 1) { $sec{'secret'} = "\@$in{'pass_file'}"; }
elsif ($in{'pass_mode'} == 3) { $sec{'secret'} = &opt_crypt($in{'pass_text'}); }

if ($in{'ips_mode'} == 0) { $sec{'ips'} = [ "*" ]; }
elsif ($in{'ips_mode'} == 1) { $sec{'ips'} = [ "-" ]; }
elsif ($in{'ips_mode'} == 2) {
	@ips = split(/\s+/, $in{'ips'});
	foreach $ip (@ips) {
		if (!gethostbyname($ip)) {
			&error(&text('save_secret_enoip', $ip));
			}
		}
	$sec{'ips'} = \@ips;
	}

if (defined($in{'idx'})) { &change_secret(\%sec); }
else { &create_secret(\%sec); }
&unlock_file($config{'pap_file'});
&webmin_log(defined($in{'idx'}) ? 'modify' : 'create',
	    undef, $sec{'client'}, \%sec);
&redirect("");

  0707010002cb17000081e40000000000000002000000013ac03896000001ed000000200000000000000000000000000000001800000003reloc/pap/save_sync.cgi   #!/usr/local/bin/perl
# save_sync.cgi
# Save unix-ppp synchronisation options

require './pap-lib.pl';
&ReadParse();

&lock_file("$module_config_directory/config");
foreach $s ("add", "change", "delete") {
	if ($in{$s}) { $config{"sync_$s"} = 1; }
	else { delete($config{"sync_$s"}); }
	}
$config{'sync_server'} = $in{'server'};
&write_file("$module_config_directory/config", \%config);
&unlock_file("$module_config_directory/config");
&webmin_log("sync", undef, undef, \%in);
&redirect("");

   0707010002cb18000081a40000000000000002000000013ac03896000005c4000000200000000000000000000000000000001e00000003reloc/pap/useradmin_update.pl 
do './pap-lib.pl';

# useradmin_create_user(&details)
# Add a PAP user if syncing is enabled
sub useradmin_create_user
{
return if (!$config{'sync_add'});
@sec = &list_secrets();
foreach $s (@sec) {
	return if ($s->{'client'} eq $_[0]->{'user'});
	}
$sec{'client'} = $_[0]->{'user'};
$sec{'server'} = $config{'sync_server'} ? $config{'sync_server'} : "*";
&compute_password($_[0], \%sec);
$sec{'ips'} = [ ];
&create_secret(\%sec);
}

# useradmin_delete_user(&details)
# Delete this pap user if syncing
sub useradmin_delete_user
{
return if (!$config{'sync_delete'});
@sec = &list_secrets();
for($i=0; $i<@sec; $i++) {
	if ($sec[$i]->{'client'} eq $_[0]->{'user'}) {
		&delete_secret($sec[$i]);
		return;
		}
	}
}

# useradmin_modify_user(&details)
# Update this user if in sync
sub useradmin_modify_user
{
return if (!$config{'sync_change'});
@sec = &list_secrets();
for($i=0; $i<@sec; $i++) {
	if ($sec[$i]->{'client'} eq $_[0]->{'olduser'}) {
		$sec[$i]->{'client'} = $_[0]->{'user'};
		&compute_password($_[0], $sec[$i]);
		&change_secret($sec[$i]);
		return;
		}
	}
}

# compute_password(&user, &secret)
sub compute_password
{
if ($_[0]->{'passmode'} == 0) {
	$_[1]->{'secret'} = &opt_crypt("");
	}
elsif ($_[0]->{'passmode'} == 1) {
	$_[1]->{'secret'} = "*LK*";
	}
elsif ($_[0]->{'passmode'} == 2) {
	$_[1]->{'secret'} = $_[0]->{'pass'} if ($config{'encrypt_pass'});
	}
elsif ($_[0]->{'passmode'} == 3) {
	$_[1]->{'secret'} = &opt_crypt($_[0]->{'plainpass'});
	}
}

1;

0707010000bb60000081a40000000000000002000000013ac0388600000227000000200000000000000000000000000000001200000003reloc/perlpath.pl # perlpath.pl
# This script gets run only from setup.sh in order to replace the 
# #!/usr/local/bin/perl line at the start of scripts with the real path to perl

$ppath = $ARGV[0];
if ($ARGV[1] eq "-") {
	@files = <STDIN>;
	chop(@files);
	}
else {
	# Get files from command line
	@files = @ARGV[1..$#ARGV];
	}

foreach $f (@files) {
	open(IN, $f);
	@lines = <IN>;
	close(IN);
	if ($lines[0] =~ /^#!\/\S*perl\S*(.*)/) {
		open(OUT, "> $f");
		print OUT "#!$ppath$1\n";
		for($i=1; $i<@lines; $i++) {
			print OUT $lines[$i];
			}
		close(OUT);
		}
	}

 07070100031035000041ed0000000000000001000000053ac03c4000000000000000200000000000000000000000000000000e00000003reloc/postfix 07070100031036000081e40000000000000002000000013ac038b1000009dd000000200000000000000000000000000000001a00000003reloc/postfix/aliases.cgi #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
# 
# Manages aliases for Postfix
#
# << Here are all options seen in Postfix sample-aliases.cf >>


require './postfix-lib.pl';

$access{'aliases'} || &error($text{'aliases_ecannot'});
&header($text{'aliases_title'}, "", "aliases");

print "<hr>\n";


# alias general options

print "<form action=save_opts_aliases.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'aliasopts_title'}</b></td></tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
&option_freefield("alias_maps", 60);
print "</tr>\n";

print "<tr>\n";
&option_freefield("alias_database", 60);
print "</tr>\n";

print "</table></td></tr></table><p>\n";
print "$text{'aliases_warning'}<p><br>\n";
print "<input type=submit value=\"$text{'opts_save'}\"></form>\n";
print "<hr>\n";
print "<br>\n";




# double-table displaying all aliases

my $aliases = &get_aliases();

print $text{'aliases_click'}, "\n<br>\n";
print "<table width=100%> <tr><td width=50% valign=top>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'aliases_name'}</b></td> ",
      "<td><b>$text{'aliases_value'}</b></td> </tr>\n";

my $split_index = int(($#{$aliases})/2);
my $i = -1;

foreach $alias (@{$aliases})
{
    print "<tr $cb>\n";
    print "<td><a href=\"edit_alias.cgi?num=$alias->{'number'}\">$alias->{'name'}</a></td>\n";
    print "<td>$alias->{'value'}</td>\n</tr>\n";
    $i++;
    if ($i == $split_index)
    {
	print "</table></td><td width=50% valign=top>\n";
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'aliases_name'}</b></td> ",
	"<td><b>$text{'aliases_value'}</b></td> </tr>\n";
    }
}

print "</tr></td></table>\n";
print "</table>\n";


# new alias form

print "<table cellpadding=5 width=100%><tr><td>\n";
print "<form action=edit_alias.cgi>\n";
print "<input type=submit value=\"$text{'new_alias'}\">\n";
print "</td> <td width=\"99%\">$text{'new_aliasmsg'}\n";
print "</td></tr></table></form>\n";


print "<hr>\n";
&footer("", $text{'index_return'});
   07070100031037000081e40000000000000002000000013ac038b1000007bd000000200000000000000000000000000000001c00000003reloc/postfix/canonical.cgi   #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
# 
# Manages canonicals for Postfix
#
# << Here are all options seen in Postfix sample-canonical.cf >>


require './postfix-lib.pl';

$access{'canonical'} || &error($text{'canonical_ecannot'});
&header($text{'canonical_title'}, "", "canonical");

print "<hr>\n";


# alias general options

print "<form action=save_opts_canonical.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'canonical_title'}</b></td></tr>\n";
print "<tr $cb> <td><table width=100%>\n";

$none = $text{'opts_none'};

print "<tr>\n";
&option_radios_freefield("canonical_maps", 60, $none);
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("recipient_canonical_maps", 60, $none);
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("sender_canonical_maps", 60, $none);
print "</tr>\n";



print "</table></td></tr></table><p>\n";
print "<input type=submit value=\"$text{'opts_save'}\"></form>\n";
print "<hr>\n";

print "<br>\n";

print "<table cellpadding=5 width=100%><tr><td>\n";
print "<form action=canonical_edit.cgi>\n";
print "$text{'edit_canonical_maps_general'}:</td></tr><tr><td>\n";
print "<input type=submit name=which value=\"$text{'edit_canonical_maps'}\">\n";
print "<input type=submit name=which value=\"$text{'edit_recipient_canonical_maps'}\">\n";
print "<input type=submit name=which value=\"$text{'edit_sender_canonical_maps'}\">\n";
print "</td></tr></table></form>\n";



print "<hr>\n";
&footer("", $text{'index_return'});
   07070100031038000081e40000000000000002000000013ac038b100000503000000200000000000000000000000000000002100000003reloc/postfix/canonical_edit.cgi  #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
# 
# Edit one category of canonical maps

require './postfix-lib.pl';
&ReadParse();

&header($text{'canonical_edit_title'}, "", "canonical");
print "<hr>\n";


my $first_line = $text{'map_click'}." ".
                 "<font size=\"-1\">".&hlink("$text{'help_map_format'}", "canonical")."</font>\n<br>\n";

if ($in{'which'} eq $text{'edit_canonical_maps'})
{ 
    &generate_map_edit("canonical_maps", $first_line);
}
elsif ($in{'which'} eq $text{'edit_recipient_canonical_maps'})
{ 
    &generate_map_edit("recipient_canonical_maps", $first_line);
}
elsif ($in{'which'} eq $text{'edit_sender_canonical_maps'})
{ 
    &generate_map_edit("sender_canonical_maps", $first_line);
}
else 
{ 
    &error($text{'internal_error'}); 
}

print "<hr>\n";
print "<br>\n";

 07070100031039000081a40000000000000002000000013ac038b70000010d000000200000000000000000000000000000001500000003reloc/postfix/config  postfix_control_command=/usr/sbin/postfix
postfix_config_command=/usr/sbin/postconf
postfix_config_file=/etc/postfix/main.cf
postfix_aliases_table_command=/usr/sbin/postalias
postfix_newaliases_command=/usr/bin/newaliases
postfix_lookup_table_command=/usr/sbin/postmap
   0707010003103a000081a40000000000000002000000013ac038b1000001c5000000200000000000000000000000000000001a00000003reloc/postfix/config.info postfix_control_command=Full path to Postfix control command,0
postfix_config_command=Full path to Postfix config command,0
postfix_config_file=Full path to Postfix config file,0
postfix_aliases_table_command=Full path to Postfix aliases generation command,0
postfix_newaliases_command=Full path to &quot;newaliases&quot; (Sendmail compatibility) command,0
postfix_lookup_table_command=Full path to Postfix lookup table command management (`postmap'),0
   0707010003103b000081a40000000000000002000000013ac038b1000001fb000000200000000000000000000000000000001d00000003reloc/postfix/config.info.de  postfix_control_command=Absoluter Pfad zum Postfix Kontrollprogramm,0
postfix_config_command=Absoluter Pfad zum Postfix Konfigurationsprogramm,0
postfix_config_file=Absoluter Pfad zur Postfix Konfigurationsdatei,0
postfix_aliases_table_command=Absoluter Pfad zum Kommandu zum erstellen von Postfix Aliasen,0
postfix_newaliases_command=Absoluter Pfad zum &quot;newaliases&quot; (Sendmail kompatibel) Kommando,0
postfix_lookup_table_command=Absoluter Pfad zum Lookup Tabellen Kommandomanagement (`postmap'),0
 0707010003103c000081a40000000000000002000000013ac038b7000001c6000000200000000000000000000000000000001d00000003reloc/postfix/config.info.es  postfix_control_command=Full path to Postfix control command,0
postfix_config_command=Full path to Postfix config command,0
postfix_config_file=Full path to Postfix config file,0
postfix_aliases_table_command=Full path to Postfix aliases generation commande,0
postfix_newaliases_command=Full path to &quot;newaliases&quot; (Sendmail compatibility) command,0
postfix_lookup_table_command=Full path to Postfix lookup table command management (`postmap'),0
  0707010003103d000081a40000000000000002000000013ac038b10000024e000000200000000000000000000000000000001d00000003reloc/postfix/config.info.fr  postfix_control_command=Chemin d'acc鑣 complet  la commande de contr鬺e de Postfix,0
postfix_config_command=Chemin d'acc鑣 complet  la commande de configuration de Postfix,0
postfix_config_file=Chemin d'acc鑣 complet au fichier de configuration de Postfix,0
postfix_aliases_table_command=Chemin d'acc鑣 complet  la commande de g閚閞ation des alias,0
postfix_newaliases_command=Chemin d'acc鑣 complet  la commande &quot;newaliases&quot; (compatibilit avec Sendmail),0
postfix_lookup_table_command=Chemin d'acc鑣 complet  la commande de g閚閞ation des tables de recherche (`postmap'),0
  0707010003103e000081a40000000000000002000000013ac038b70000021d000000200000000000000000000000000000001d00000003reloc/postfix/config.info.pl  postfix_control_command=Pe硁a 禼ie縦a do polecenia kontrolnego Postfiksa,0
postfix_config_command=Pe硁a 禼ie縦a do polecenia konfiguracyjnego Postfiksa,0
postfix_config_file=Pe硁a 禼ie縦a do pliku konfiguracyjnego Postfiksa,0
postfix_aliases_table_command=Pe硁a 禼ie縦a do polecenia tworz眂ego aliasy Postfiksa,0
postfix_newaliases_command=Pe硁a 禼ie縦a do polecenia &quot;newaliases&quot; (zgodno舵 z&nbsp;Sendmailem),0
postfix_lookup_table_command=Pe硁a 禼ie縦a do polecenia zarz眃zaj眂ego tablicami przeszukiwania Postfiksa (`postmap'),0
   0707010003103f000081a40000000000000002000000013ac038b700000214000000200000000000000000000000000000001d00000003reloc/postfix/config.info.sv  postfix_control_command=Fullst鋘dig s鰇v鋑 till Postfix-kontrollkommando,0
postfix_config_command=Fullst鋘dig s鰇v鋑 till Postfix-konfigurationskommando,0
postfix_config_file=Fullst鋘dig s鰇v鋑 till Postfix-konfigurationsfil,0
postfix_aliases_table_command=Fullst鋘dig s鰇v鋑 till Postfix-kommando f鰎 aliasgenerering,0
postfix_newaliases_command=Fullst鋘dig s鰇v鋑 till %quot;newaliases&quot;-kommando (sendmail-kompabilitet),0
postfix_lookup_table_command=Fullst鋘dig s鰇v鋑 till kommando f鰎 Postfix-uppslagstabell (`postmap'),0
07070100031040000081a40000000000000002000000013ac038b7000001ba000000200000000000000000000000000000001d00000003reloc/postfix/config.info.tr  postfix_control_command=Postfix kontrol komutunun tam yolu,0
postfix_config_command=Postfix yap齦and齬ma komutunun tam yolu,0
postfix_config_file=Full path to Postfix config file,0
postfix_aliases_table_command=Postfix takma isim olu⺶urma komutunun tam yolu,0
postfix_newaliases_command=&quot;newaliases&quot; komutunun tam yolu (Sendmail uyumlulu饀),0
postfix_lookup_table_command=Postfix'in komut y鰊etim tablosunun tam yolu (`postmap'),0
  07070100031041000081a40000000000000002000000013ac038b70000015e000000200000000000000000000000000000002000000003reloc/postfix/config.info.zh_CN   postfix_control_command=Postfix 控制命令的全路径,0
postfix_config_command=Postfix 配置命令的全路径,0
postfix_config_file=Postfix 配置文件的全路径,0
postfix_aliases_table_command=Postfix 别名生成命令的全路径,0
postfix_newaliases_command=newaliases(与Sendmail兼容)命令的全路径,0
postfix_lookup_table_command=Postfix 查找表命令管理器 postmap 的全路径,0
  07070100031042000081e40000000000000002000000013ac038b1000005c0000000200000000000000000000000000000001800000003reloc/postfix/debug.cgi   #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
#
# A form for controling debugging features.
#
# << Here are all options seen in Postfix sample-debug.cf >>

require './postfix-lib.pl';


$access{'debug'} || &error($text{'debug_ecannot'});
&header($text{'debug_title'}, "");
print "<hr>\n";

$default = $text{'opts_default'};
$none = $text{'opts_none'};
$no_ = $text{'opts_no'};

print "<form action=save_opts.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'debug_title'}</b></td></tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
&option_freefield("debug_peer_list", 65);
print "</tr>\n";

print "<tr>\n";
&option_freefield("debug_peer_level", 15);
print "</tr>\n";

print "</table></td></tr></table><p>\n";
print "<input type=submit value=\"$text{'opts_save'}\"></form>\n";
print "<hr>\n";
print "<font size=\"-1\"> <p>", &text('debug_version', postfix_module_version()),
      "</p></font>\n";
print "<hr>\n";
&footer("", $text{'index_return'});

07070100031043000081a40000000000000002000000013ac038b1000000b0000000200000000000000000000000000000001900000003reloc/postfix/defaultacl  startstop=1
genaliases=1

general=1
address_rewriting=1
aliases=1
local_delivery=1
resource=1
smtpd=1
smtp=1
rate=1
debug=1
canonical=1
virtual=1
transport=1
relocated=1
ldap=107070100031044000081e40000000000000002000000013ac038b1000006c0000000200000000000000000000000000000001d00000003reloc/postfix/edit_alias.cgi  #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
# 
# Edit an email alias

require './postfix-lib.pl';
&ReadParse();

&header($text{'edit_alias_title'}, "");

my $new_one = 0;
my $num;

if (!exists($in{'num'}))
{
    $num = &init_new_alias();
    $new_one = 1;
}
else
{
    $num = $in{'num'};
}

my $aliases = &get_aliases();
my %alias;

foreach $trans (@{$aliases})
{
    if ($trans->{'number'} == $num) { %alias = %{$trans}; }
}    

print "<form action=save_alias.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'edit_alias_title'}</b></td></tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr>\n";
print "<td><b>$text{'aliases_name'}</b></td> <td nowrap>\n";
print "<input type=hidden name=\"num\" value=\"$num\">";
print "<input name=\"name\" size=40 value=\"$alias{'name'}\"> </td>\n";
print "</tr>\n";

print "<tr>\n";
print "<td><b>$text{'aliases_value'}</b></td> <td nowrap>\n";
print "<input name=\"value\" size=40 value=\"$alias{'value'}\"> </td>\n";
print "</tr>\n";

print "</table></td></tr></table><p>\n";
print "<input type=submit value=\"$text{'alias_save'}\">\n";
print "<input type=submit name=delete value=\"$text{'delete_alias'}\">" if ($new_one == 0);
print "</form>\n";

print "<hr>\n";
print "<br>\n";

07070100031045000081e40000000000000002000000013ac038b1000006b4000000200000000000000000000000000000002a00000003reloc/postfix/edit_canonical_mappings.cgi #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
# 
# Edit a mapping

require './postfix-lib.pl';
&ReadParse();

&header($text{'edit_mapping_title'}, "");


my $num;

if (!exists($in{'num'}))
{
    $num = &init_new_mapping(&get_current_value("sender_canonical_maps"));
}
else
{
    $num = $in{'num'};
}


my $mappingsaliases = &get_aliases();
my %alias;

foreach $trans (@{$aliases})
{
    if ($trans->{'number'} == $num) { %alias = %{$trans}; }
}    

print "<form action=save_alias.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'edit_alias_title'}</b></td></tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr>\n";
print "<td><b>$text{'aliases_name'}</b></td> <td nowrap>\n";
print "<input type=hidden name=\"num\" value=\"$num\">";
print "<input name=\"name\" size=40 value=\"$alias{'name'}\"> </td>\n";
print "</tr>\n";

print "<tr>\n";
print "<td><b>$text{'aliases_value'}</b></td> <td nowrap>\n";
print "<input name=\"value\" size=40 value=\"$alias{'value'}\"> </td>\n";
print "</tr>\n";

print "</table></td></tr></table><p>\n";
print "<input type=submit value=\"$text{'alias_save'}\">\n";
print "<input type=submit name=delete value=\"$text{'delete_alias'}\"></form>\n";

print "<hr>\n";
print "<br>\n";

07070100031046000081e40000000000000002000000013ac038b100000702000000200000000000000000000000000000001f00000003reloc/postfix/edit_mapping.cgi    #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
# 
# Edit a mapping

require './postfix-lib.pl';
&ReadParse();

&header($text{'edit_map_title'}, "");

my $new_one = 0;
my $num;

if (!exists($in{'num'}))
{
    $num = &init_new_mapping($in{'map_name'});
    $new_one = 1;
}
else
{
    $num = $in{'num'};
}

my $maps = &get_maps($in{'map_name'});
my %map;

foreach $trans (@{$maps})
{
    if ($trans->{'number'} == $num) { %map = %{$trans}; }
}    

print "<form action=save_map.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'edit_map_title'}</b></td></tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr>\n";
print "<td><b>$text{'mapping_name'}</b></td> <td nowrap>\n";
print "<input type=hidden name=\"num\" value=\"$num\">";
print "<input type=hidden name=\"map_name\" value=\"$in{'map_name'}\">";
print "<input name=\"name\" size=40 value=\"$map{'name'}\"> </td>\n";
print "</tr>\n";

print "<tr>\n";
print "<td><b>$text{'mapping_value'}</b></td> <td nowrap>\n";
print "<input name=\"value\" size=40 value=\"$map{'value'}\"> </td>\n";
print "</tr>\n";

print "</table></td></tr></table><p>\n";
print "<input type=submit value=\"$text{'map_save'}\">\n";
$new_one || print "<input type=submit name=delete value=\"$text{'delete_map'}\">";
print "</form>\n";

print "<hr>\n";
print "<br>\n";

  07070100031047000081e40000000000000002000000013ac038b100001135000000200000000000000000000000000000001a00000003reloc/postfix/general.cgi #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
#
# A form for controlling general parameters.
#
# << Here are all options seen in Postfix sample-misc.cf >>

require './postfix-lib.pl';


$access{'general'} || &error($text{'general_ecannot'});
&header($text{'general_title'}, "", "general_opts");
print "<hr>\n";

$default = $text{'opts_default'};
$none = $text{'opts_none'};
$no_ = $text{'opts_no'};

print "<form action=save_opts_misc.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'general_title_sensible'}</b> <font size=\"-1\">".&hlink("$text{'what_is_it'}", "general_opts")."</font></td></tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
&option_radios_freefield("myorigin", 30, $text{'opts_myorigin_as_myhostname'},
			                 '$mydomain', $text{'opts_myorigin_as_mydomain'});
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("mydestination", 60, $text{'opts_mydestination_default'},
			                      '$myhostname, localhost.$mydomain, $mydomain', $text{'opts_mydestination_domainwide'});
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("notify_classes", 40, $default);
print "</tr>\n";

print "</table></td></tr>\n";
print "<tr $tb><td><b>$text{'general_title_others'}</b></td></tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
&option_radios_freefield("relayhost", 45, $text{'opts_direct'});
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("always_bcc", 40, $text{'opts_always_bcc_none'});
print "</tr>\n";

print "<tr>\n";
&option_freefield("daemon_timeout", 15);
&option_freefield("default_database_type", 15);
print "</tr>\n";

print "<tr>\n";
&option_freefield("default_transport", 15);
&option_freefield("double_bounce_sender", 15);
print "</tr>\n";

print "<tr>\n";
&option_freefield("hash_queue_depth", 15);
&option_freefield("hash_queue_names", 15);
print "</tr>\n";

print "<tr>\n";
&option_freefield("hopcount_limit", 15);
&option_radios_freefield("delay_warning_time", 15, $text{'opts_delay_warning_time_default'});
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("inet_interfaces", 40, $text{'opts_all_interfaces'});
print "</tr>\n";

print "<tr>\n";
&option_freefield("ipc_idle", 15);
&option_freefield("ipc_timeout", 15);
print "</tr>\n";

print "<tr>\n";
&option_freefield("mail_name", 15);
&option_freefield("mail_owner", 15);
print "</tr>\n";

print "<tr>\n";
&option_freefield("mail_version", 25);
print "</tr>\n";

print "<tr>\n";
&option_freefield("max_idle", 15);
&option_freefield("max_use", 15);
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("myhostname", 40, $text{'opts_myhostname_default'});
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("mydomain", 40, $text{'opts_mydomain_default'});
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("mynetworks", 60, $text{'opts_mynetworks_default'});
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("bounce_notice_recipient", 15, $default);
&option_radios_freefield("2bounce_notice_recipient", 15, $default);
print "<tr>\n";

print "</tr>\n";
&option_radios_freefield("delay_notice_recipient", 15, $default);
&option_radios_freefield("error_notice_recipient", 15, $default);
print "</tr>\n";

print "<tr>\n";
&option_freefield("queue_directory", 45);
print "</tr>\n";

print "<tr>\n";
&option_freefield("process_id_directory", 20);
&option_freefield("recipient_delimiter", 20);
print "</tr>\n";

print "<tr>\n";
&option_freefield("program_directory", 45);
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("relocated_maps", 60, $text{'opts_relocated_maps_default'});
print "</tr>\n";

print "<tr>\n";
&option_yesno("sun_mailtool_compatibility", 'help');
&option_freefield("trigger_timeout", 15);
print "</tr>\n";


print "</table></td></tr></table><p>\n";
print "<input type=submit value=\"$text{'opts_save'}\"></form>\n";
print "<hr>\n";
&footer("", $text{'index_return'});
   0707010003278a000041ed0000000000000001000000023ac03c3d00000000000000200000000000000000000000000000001300000003reloc/postfix/help    0707010003278b000081a40000000000000002000000013ac038b200000422000000200000000000000000000000000000002000000003reloc/postfix/help/aliases.html   <header>Mail Aliases</header>

The aliases provide a system-wide mechanism to redirect mail for local
recipients.

<p>

The <tt>Alias to...</tt> field contains one or more of the following,
comma-separated:

<ul><li><tt>address</tt>: Mail is forwarded to <tt>address</tt>, which is compatible
with the RFC 822 standard.

<li><tt>/file/name</tt>: Mail is appended to <tt>/file/name</tt>. See
local(8) for details of delivery to file. Delivery is not limited to regular
files. For example, to dispose of unwanted mail, deflect it to
<tt>/dev/null</tt>.

<li><tt>|command</tt>: Mail is piped into <tt>command</tt>. Commands that
contain special characters, such as whitespace, should be enclosed between
double quotes. See local(8) for details of delivery to command.
When the command fails, a limited amount of command output is mailed back to
the sender.

<li><tt>:include:/file/name</tt>: Mail is sent to the destinations listed
in the named file. Lines in <tt>:include:</tt> files have the same syntax as
the right-hand side of alias entries.

</ul>

<hr>

  0707010003278c000081a40000000000000002000000013ac038b500000474000000200000000000000000000000000000002300000003reloc/postfix/help/aliases.sv.html    <header>E-postalias</header>

Alias ger dig m鰆lighet att 鰒er hela systemet skicka vidare e-post till lokala mottagare.

<p>F鋖tet <tt>Alias f鰎 ...</tt> inneh錶ler en eller flera av nedanst錯nde, separerade med komma:

<ul><li><tt>adress</tt>: E-post skickas vidare till en <tt>adress</tt> som 鋜 kompatibel
med standarden i RFC 822.

<li><tt>/fil/namn</tt>: E-postmeddelandet skrivs sist i <tt>/fil/namn</tt>. Se
local(8) f鰎 mer information om att skicka saker till filer. Skrivningen 鋜 inte begr鋘sad
till normala filer; exempelvis kan o鰊skad e-post skrivas till <tt>/dev/null</tt>.

<li><tt>|command</tt>: E-postmeddelandet pipas till <tt>kommando</tt>. Kommandon som
inneh錶ler specialtecken, som blanksteg, b鰎 omges av dubbla citattionstecken. Se
local(8) f鰎 mer information om att skicka saker till kommandon. Om kommandot p n錱ot
s鋞t g錼 fel kommer en begr鋘sad del av utmatningen att e-postas tillbaka till avs鋘daren.

<li><tt>:include:/fil/namn</tt>: E-postmeddelandet skickas till de mottagare som r鋕nas upp
i filen. Rader i <tt>:include:</tt>-filer har samma syntax som den h鰃ra sidan av en
alias-post.

</ul>

<hr>

0707010003278d000081a40000000000000002000000013ac038b2000009d0000000200000000000000000000000000000002200000003reloc/postfix/help/canonical.html <header>Canonical Mapping</header>

The optional canonical file specifies an address mapping for local and
non-local addresses. The mapping is used by the cleanup(8) daemon. The address
mapping is recursive.

<p>

The file serves as input to the postmap(1) command. The result, an indexed file
in dbm or db format, is used for fast searching by the mail system.

<p>

The canonical mapping affects both message header addresses (i.e. addresses
that appear inside messages) and message envelope addresses (for example, the
addresses that are used in SMTP protocol commands). Think Sendmail rule set S3,
if you like.

<p>

Typically, one would use the canonical table to replace login names by
<tt>Firstname.Lastname</tt>, or to clean up addresses produced by legacy mail
systems.

<p>

The canonical mapping is not to be confused with virtual domain support. Use
the virtual(5) map for that purpose.

<p>

The canonical mapping is not to be confused with local aliasing. Use the
aliases(5) map for that purpose.

<p>

The format of the canonical mappings is as follows, mappings being tried in the
order as listed:

<ul>
<li><b><tt>user@domain</tt></b> mapped to... <b><tt>address</tt></b>:<br><tt>user@domain</tt> is
replaced by <tt>address</tt> This form has the highest precedence. This form
useful to clean up addresses produced by legacy mail systems. It can also be
used to produce <tt>Firstname.Lastname</tt> style addresses, but see below for a
simpler solution.

<li><b><tt>user</tt></b> mapped to...<b><tt>address</tt></b>:<br><tt>user@site</tt> is replaced
by address when site is equal to <tt>$myorigin</tt>, when site is listed in
<tt>$mydestination</tt>, or when it is listed in <tt>$inet_interfaces</tt>.
This form is useful for replacing login names by <tt>Firstname.Lastname</tt>.

<li><b><tt>@domain</tt></b> mapped to...<b><tt>address</tt></b>:<br>Every address in domain is
replaced by address. This form has the lowest precedence.
</ul>

In all the above forms, when address has the form <tt>@otherdomain</tt>, the result is
the same user in otherdomain.

<p>

ADDRESS EXTENSION: When table lookup fails, and the address localpart contains
the optional recipient delimiter (e.g., <tt>user+foo@domain</tt>), the search
is repeated for the unextended address (e.g. <tt>user@domain</tt>), and the
unmatched extension is propagated to the result of table lookup. The matching
order is: <tt>user+foo@domain</tt>, <tt>user@domain</tt>, <tt>user+foo</tt>,
<tt>user</tt>, and <tt>@domain</tt>.

<hr>
0707010003278e000081a40000000000000002000000013ac038b500000a84000000200000000000000000000000000000002500000003reloc/postfix/help/canonical.sv.html  <header>Kanonisk 鰒ers鋞tning</header>

Den valbara kanoniska filen anger en adress鰒ers鋞tning f鰎 lokala och icke-lokala
adresser. Denna 鰒ers鋞tning anv鋘ds av demonen cleanup(8). Adress鰒ers鋞tningen
鋜 rekursiv.

<p>Filen utg鰎 indata till kommandot postmap(1). Resultatet fr錸 kommandok鰎ningen,
en indexerad fil i dbm- eller db-format, anv鋘ds av e-postsystemet f鰎 snabbs鰇ning.

<p>Den kanoniska 鰒ers鋞tningen p鍁erkar adresser b錮e i meddelandehuvudet (dvs adresser
som syns i meddelandet) och p omslaget (till exempel adresser som anv鋘ds i SMTP-kommandon).
Sendmails regelupps鋞tning S3 鋜 en bra j鋗f鰎else.

<p>Vanligtvis vill man anv鋘da den kanoniska tabellen f鰎 att byta ut anv鋘darnamn mot
<tt>F鰎namn.Efternamn</tt> eller f鰎 att st鋎a bort adresser som skapats av 鋖dre e-postservrar.

<p>Kanonisk 鰒ers鋞tning ska inte blandas ihop med st鰀 f鰎 virtuella dom鋘er. Anv鋘d
virtual(5) f鰎 detta 鋘dam錶.

<p>Kanonisk 鰒ers鋞tning ska inte heller blandas ihop med lokala alias. Anv鋘d aliases(5)
f鰎 detta 鋘dam錶.

<p>Formatet f鰎 kanoniska 鰒ers鋞tningar visas nedan. Postfix f鰎s鰇er 鰒ers鋞ta i nedanst錯nde
ordning:

<ul>
<li><b><tt>anv鋘dare@dom鋘</tt></b> 鰒ers鋞ts till ... <b><tt>adress</tt></b>:
<br><tt>anv鋘dare@dom鋘</tt> byts ut mot <tt>adress</tt>. Denna form har h鰃st prioritet
och 鋜 fr鋗st anv鋘dbar f鰎 att st鋎a undan adresser som skapats av 鋖dre e-postservrar.
Den kan ocks anv鋘das f鰎 att skapa adresser p formen <tt>F鰎namn.Efternamn</tt>, men
f鰎 det finns en enklare l鰏ning l鋘gre ner.

<li><b><tt>anv鋘dare</tt></b> 鰒ers鋞ts till ...<b><tt>adress</tt></b>:
<br><tt>anv鋘dare@site</tt> byts ut mot <tt>adress</tt> d <tt>site</tt> har samma
v鋜de som <tt>$myorigin</tt>, finns uppr鋕nad i <tt>$mydestination</tt> eller 
finns uppr鋕nad i <tt>$inet_interfaces</tt>.
Denna form 鋜 anv鋘dbar f鰎 att byta ut anv鋘darnamn mot <tt>F鰎namn.Efternamn</tt>.

<li><b><tt>@dom鋘</tt></b> 鰒ers鋞ts till ...<b><tt>adress</tt></b>:<br>Varje adress inom
<tt>dom鋘</tt> byts ut mot <tt>adress</tt>. Denna form har l鋑st prioritet.
</ul>

F鰎 alla ovanst錯nde former g鋖ler att d adressen har formen <tt>@annandom鋘</tt> blir resultatet
samma anv鋘dare i annandom鋘.

<p>ADRESSEXPANSION: Om adressen inte g錼 att sl upp i tabellen och adressens lokala del
inneh錶ler en mottagarbegr鋘sare (exempelvis <tt>anv鋘dare+foo@dom鋘</tt>), kommer s鰇ningen
att upprepas f鰎 den icke expanderade adressen (exempelvis <tt>anv鋘dare@dom鋘</tt>) och den
omatchade 鋘delsen bifogas resultatet av tabelluppslagningen. Matchningsordningen 鋜
<tt>anv鋘dare+foo@dom鋘</tt>, <tt>anv鋘dare@dom鋘</tt>, <tt>anv鋘dare+foo</tt>,
<tt>anv鋘dare</tt> och <tt>@dom鋘</tt>.

<hr>
0707010003278f000081a40000000000000002000000013ac038b200000170000000200000000000000000000000000000002500000003reloc/postfix/help/general_opts.html  <header>Postfix General Options</header>

Postfix has about 100 configuration parameters that are controlled through
configuration files. Fortunately, they have sensible default values.

<p>

In most cases, you need to configure only the three parameters presented here
in <b>Most Useful General options</b> before you can actually use the Postfix mail
system.


<hr>
07070100032790000081a40000000000000002000000013ac038b500000166000000200000000000000000000000000000002800000003reloc/postfix/help/general_opts.sv.html   <header>Allm鋘na inst鋖lningar f鰎 Postfix</header>

Postfix har omkring 100 konfigurationsparametrar som styrs via konfigurationsfiler.
Som tur 鋜 har de vettiga standardv鋜den.

<p>F鰎 det mesta beh鰒er man bara konfigurera de tre parametrar som visas h鋜 i
<b>Mest anv鋘dbara allm鋘na inst鋖lningar</b> innan man kan anv鋘da e-postsystemet Postfix.

<hr>
  07070100032791000081a40000000000000002000000013ac038b2000001fc000000200000000000000000000000000000001e00000003reloc/postfix/help/intro.html <header>Postfix</header>

<b>Postfix</b> is <a href="http://www.porcupine.org/wietse/">Wietse
Venema</a>'s attempt to provide an alternative to the widely-used
<b>Sendmail</b> program. Sendmail is responsible for most of the e-mail
delivered on the Internet. With an estimated 100 million users, that's billions
of messages daily. A stunning number.

<p>

Postfix attempts to be fast, easy to administer, and secure, while at
the same time being sendmail compatible enough to not upset existing users.

<hr>
07070100032792000081a40000000000000002000000013ac038b500000239000000200000000000000000000000000000002100000003reloc/postfix/help/intro.sv.html  <header>Postfix</header>

<b>Postfix</b> 鋜 <a href="http://www.porcupine.org/wietse/">Wietse
Venemas</a> f鰎s鰇 att tillhandah錶la ett alternativ till det vitt spridda programmet
<b>sendmail</b>. Sendmail hanterar idag st鰎re delen av den e-post som skickas 鰒er Internet.
Om man uppskattar antalet anv鋘dare till 100 miljoner betyder det miljarder e-postmeddelanden
varje dag - ett imponerande tal.

<p>Postfix f鰎s鰇er vara snabbt, l鋞tadministrerad och s鋕ert, samtidigt som det 鋜
tillr鋍kligt sendmail-kompatibelt f鰎 att inte uppr鰎a befintliga anv鋘dare.

<hr>
   07070100032793000081a40000000000000002000000013ac038b2000000f4000000200000000000000000000000000000003500000003reloc/postfix/help/opt_2bounce_notice_recipient.html  <header>Send postmaster notice on 2bounce to...</header>

<center><tt>2bounce_notice_recipient</tt></center>
<hr>

Specify who gets postmaster notices if the above error conditions is
recognized.

<p>

Defaults to &quot;postmaster&quot;.

<hr>
07070100032794000081a40000000000000002000000013ac038b5000000eb000000200000000000000000000000000000003800000003reloc/postfix/help/opt_2bounce_notice_recipient.sv.html   <header>Skicka meddelande om dubbelstuds till ...</header>

<center><tt>2bounce_notice_recipient</tt></center>
<hr>

Ange vem som ska f postmaster-meddelande om ovanst錯nde fel upptr鋎er.

<p>Standard 鋜 &quot;postmaster&quot;.

<hr>
 07070100032795000081a40000000000000002000000013ac038b200000133000000200000000000000000000000000000003300000003reloc/postfix/help/opt_access_map_reject_code.html    <header>SMTP server respons on access map violation</header>

<center><tt>access_map_reject_code</tt></center>
<hr>

This parameter specifies the SMTP server response code when a client violates
an access map restriction.

<p>

Do not change this unless you have a complete understanding of RFC 822.


<hr>
 07070100032796000081a40000000000000002000000013ac038b500000116000000200000000000000000000000000000003600000003reloc/postfix/help/opt_access_map_reject_code.sv.html <header>SMTP-server錿g鋜d vid intr錸gsf鰎s鰇</header>

<center><tt>access_map_reject_code</tt></center>
<hr>

Denna parameter anger SMTP-serverns svarskod d en klient bryter mot en 錿komstbegr鋘sning.

<p>膎dra inte p denna om du inte har f鰎st錿t RFC 822 fullst鋘digt.

<hr>
  07070100032797000081a40000000000000002000000013ac038b200000240000000200000000000000000000000000000002b00000003reloc/postfix/help/opt_alias_database.html    <header>Alias databases built by Postfix</header>

<center><tt>alias_database</tt></center>
<hr>

This parameter specifies the alias database(s) that are built with
&quot;newaliases&quot; or &quot;sendmail -bi&quot;. This is a separate
configuration parameter, because <tt>alias_maps</tt> may specify tables that
are not necessarily all under control by Postfix.

<p>

Typical configurations are:

<ul>
<li> <tt>dbm:/etc/aliases</tt>
<li> <tt>dbm:/etc/mail/aliases</tt>
<li> <tt>hash:/etc/aliases</tt>
<li> <tt>hash:/etc/aliases, hash:/opt/majordomo/aliases</tt>
</ul>

<hr>

07070100032798000081a40000000000000002000000013ac038b500000237000000200000000000000000000000000000002e00000003reloc/postfix/help/opt_alias_database.sv.html <header>Alias-databas byggd av Postfix</header>

<center><tt>alias_database</tt></center>
<hr>

Denna parameter anger databasen/databaserna som byggts upp med
&quot;newaliases&quot; eller &quot;sendmail -bi&quot;. Det 鋜 en egen
konfigurationsparameter eftersom <tt>alias_maps</tt> kan g鰎a tabeller som
kanske inte fullst鋘digt kan kontrolleras av Postfix.

<p>Typiska inst鋖lningar 鋜:

<ul>
<li> <tt>dbm:/etc/aliases</tt>
<li> <tt>dbm:/etc/mail/aliases</tt>
<li> <tt>hash:/etc/aliases</tt>
<li> <tt>hash:/etc/aliases, hash:/opt/majordomo/aliases</tt>
</ul>

<hr>

 07070100032799000081a40000000000000002000000013ac038b200000222000000200000000000000000000000000000002700000003reloc/postfix/help/opt_alias_maps.html    <header>Alias databases used by the local delivery agent </header>

<center><tt>alias_maps</tt></center>
<hr>

This parameter specifies the list of alias databases used by the local delivery
agent. The default list is system dependent. On systems with NIS, the default
is to search the local alias database, then the NIS alias database. See
aliases(5) for syntax details.

<p>

Typical configurations are:

<ul>
<li> <tt>dbm:/etc/aliases</tt>
<li> <tt>hash:/etc/postfix/aliases</tt>
<li> <tt>hash:/etc/aliases, nis:mail.aliases</tt>
</ul>

<hr>

  0707010003279a000081a40000000000000002000000013ac038b50000023e000000200000000000000000000000000000002a00000003reloc/postfix/help/opt_alias_maps.sv.html <header>Alias-databaser som anv鋘ds av den lokala e-posthanteraren</header>

<center><tt>alias_maps</tt></center>
<hr>

Denna parameter anger en lista 鰒er de alias-databaser som den lokala e-posthanteraren
anv鋘der. Standardlistan 鋜 systemberoende. System som anv鋘der NIS har som standard att
s鰇a igenom den lokala alias-databasen, sedan NIS-alias-databasen. Se aliases(5) f鰎
information om syntax.

<p>Typiska inst鋖lningar 鋜:

<ul>
<li> <tt>dbm:/etc/aliases</tt>
<li> <tt>hash:/etc/postfix/aliases</tt>
<li> <tt>hash:/etc/aliases, nis:mail.aliases</tt>
</ul>

<hr>

  0707010003279b000081a40000000000000002000000013ac038b20000010d000000200000000000000000000000000000003300000003reloc/postfix/help/opt_allow_mail_to_commands.html    <header>Valid mail delivery to external commands</header>

<center><tt>allow_mail_to_commands</tt></center>
<hr>

This parameter restricts mail delivery to external commands. The default is to
disallow delivery to <tt>"|command"</tt> in <tt>:include:</tt> files.

<hr>
   0707010003279c000081a40000000000000002000000013ac038b500000122000000200000000000000000000000000000003600000003reloc/postfix/help/opt_allow_mail_to_commands.sv.html <header>Godk鋘d e-postleverans till externa kommandon</header>

<center><tt>allow_mail_to_commands</tt></center>
<hr>

Denna parameter begr鋘sar e-postleveranser till externa kommandon. Standardinst鋖lningen
鋜 att sp鋜ra leverans till <tt>"|command"</tt> i <tt>:include:</tt>-filer.

<hr>
  0707010003279d000081a40000000000000002000000013ac038b200000103000000200000000000000000000000000000003000000003reloc/postfix/help/opt_allow_mail_to_files.html   <header>Valid mail delivery to external files</header>

<center><tt>allow_mail_to_files</tt></center>
<hr>

This parameter restricts mail delivery to external file. The default is to
disallow delivery to <tt>/file/name</tt> in <tt>:include:</tt> files.

<hr>
 0707010003279e000081a40000000000000002000000013ac038b500000118000000200000000000000000000000000000003300000003reloc/postfix/help/opt_allow_mail_to_files.sv.html    <header>Godk鋘d e-postleverans till externa filer</header>

<center><tt>allow_mail_to_files</tt></center>
<hr>

Denna parameter begr鋘sar e-postleveranser till externa filer. Standardinst鋖lningen
鋜 att sp鋜ra leveranser till <tt>/fil/namn</tt> i <tt>:include:</tt>-filer.

<hr>
07070100032818000081a40000000000000002000000013ac038b200000223000000200000000000000000000000000000003400000003reloc/postfix/help/opt_allow_untrusted_routing.html   <header>Allow untrusted routing</header>

<center><tt>allow_untrusted_routing</tt></center>
<hr>

This parameter controls if Postfix will forward mail with sender-specified
routing (user[@%!]remote[@%!]site) from untrusted clients to destinations that
are blessed by the <tt>relay_domains</tt> parameter.

<p>

By default, untrusted clients are not allowed to specify routing.
This closes a nasty open relay loophole where a backup MX host can
be tricked into forwarding junk mail to a primary MX host which
then spams it out to the world.


<hr>
 07070100032819000081a40000000000000002000000013ac038b500000234000000200000000000000000000000000000003700000003reloc/postfix/help/opt_allow_untrusted_routing.sv.html    <header>Till錿 icke auktoriserad routing</header>

<center><tt>allow_untrusted_routing</tt></center>
<hr>

Denna parameter anger om Postfix kommer att skicka e-post med avs鋘darbest鋗d
routing (user[@%!]remote[@%!]site) fr錸 icke betrodda klienter till destinationer
som v鋖signats med parametern <tt>relay_domains</tt>.

<p>Standardinst鋖lningen 鋜 att icke betrodda klienter inte f錼 ange routing.
Detta sp鋜rar ett stort rel鋒錶, d鋜 en backup-MX-dator kan luras att vidarebefordra
e-post till en prim鋜 MX-dator som sedan sprider spam-post 鰒er v鋜lden.

<hr>
0707010003281a000081a40000000000000002000000013ac038b200000111000000200000000000000000000000000000002700000003reloc/postfix/help/opt_always_bcc.html    <header>Address that receives bcc of each message</header>

<center><tt>always_bcc</tt></center>
<hr>

This parameter specifies an optional address that receives a copy of each
message that enters the Postfix system, not including bounces that are
generated locally.

<hr>
   0707010003281b000081a40000000000000002000000013ac038b500000116000000200000000000000000000000000000002a00000003reloc/postfix/help/opt_always_bcc.sv.html <header>Adress som 鋜 osynlig mottagare av varje meddelande</header>

<center><tt>always_bcc</tt></center>
<hr>

Denna parameter anger en adress som ska f en kopia av varje e-postmeddelande
som kommer in i Postfix-systemet, f鰎utom studsmeddelanden som genereras lokalt.

<hr>
  0707010003281c000081a40000000000000002000000013ac038b2000001da000000200000000000000000000000000000002e00000003reloc/postfix/help/opt_best_mx_transport.html <header>Action when listed as best MX host</header>

<center><tt>best_mx_transport</tt></center>
<hr>

This parameter controls what happens when the local system is listed as the
best MX host for a destination. By default, Postfix reports a &quot;mail loops
back to myself&quot; error and bounces the message.

<p>

Specify <tt>local</tt> to pass the mail to the local delivery agent. You can
specify any transport that is defined in Postfix <tt>master.cf</tt> file.


<hr>
  0707010003281d000081a40000000000000002000000013ac038b5000001f4000000200000000000000000000000000000003100000003reloc/postfix/help/opt_best_mx_transport.sv.html  <header>舤g鋜d n鋜 man blivit b鋝ta MX-val</header>

<center><tt>best_mx_transport</tt></center>
<hr>

Denna parameter anger vad som h鋘der n鋜 det lokala systemet anges som b鋝ta
MX-val f鰎 en destination. Standardinst鋖lningen 鋜 att Postfix rapporterar
felet &quot;mail loops back to myself&quot; och studsar tillbaka meddelandet.

<p>Ange <tt>local</tt> f鰎 att skicka e-post till den lokala e-posthanteraren.
Det g錼 att ange valfri v鋑 som definierats i Postfix-filen <tt>master.cf</tt>.

<hr>
0707010003281e000081a40000000000000002000000013ac038b2000000f2000000200000000000000000000000000000003400000003reloc/postfix/help/opt_bounce_notice_recipient.html   <header>Send postmaster notice on bounce to...</header>

<center><tt>bounce_notice_recipient</tt></center>
<hr>

Specify who gets postmaster notices if
the above error conditions is recognized.

<p>

Defaults to &quot;postmaster&quot;.

<hr>
  0707010003281f000081a40000000000000002000000013ac038b5000000f5000000200000000000000000000000000000003700000003reloc/postfix/help/opt_bounce_notice_recipient.sv.html    <header>Skicka meddelande om studs till ...</header>

<center><tt>bounce_notice_recipient</tt></center>
<hr>

Ange vem som ska f postmaster-meddelanden om
ovanst錯nde fel upptr鋎er.

<p>Standard 鋜 att skicka till &quot;postmaster&quot;.

<hr>
   07070100032820000081a40000000000000002000000013ac038b2000000d9000000200000000000000000000000000000002e00000003reloc/postfix/help/opt_bounce_size_limit.html <header>Max size of bounced message</header>

<center><tt>bounce_size_limit</tt></center>
<hr>

This parameter limits the amount of original message context in bytes that is
sent in a non-delivery notification.

<hr>
   07070100032821000081a40000000000000002000000013ac038b5000000f5000000200000000000000000000000000000003100000003reloc/postfix/help/opt_bounce_size_limit.sv.html  <header>Maximal storlek f鰎 studsat meddelande</header>

<center><tt>bounce_size_limit</tt></center>
<hr>

Denna parameter begr鋘sar storleken i bytes p det originalmeddelande som skickas med
meddelanden om att leveransen inte fungerade.

<hr>
   07070100032822000081a40000000000000002000000013ac038b2000002dd000000200000000000000000000000000000002b00000003reloc/postfix/help/opt_canonical_maps.html    <header>Address mapping lookup tables</header>

<center><tt>canonical_maps</tt></center>
<hr>

This parameter specifies optional address mapping lookup tables. The mapping is
applied to both sender and recipient addresses, in both envelopes and in
headers. This is typically used to clean up dirty addresses from legacy mail
systems, or to replace login names by <tt>Firstname.Lastname</tt>. See
canonical(5) for details.

<p>

By default, no canonical address mapping is done.

<p>

Sensible possible values:
<ul>
<li> <tt>dbm:/etc/postfix/canonical</tt> 
<li> <tt>hash:/etc/postfix/canonical</tt> 
<li> <tt>hash:/etc/postfix/canonical, nis:canonical</tt> 
<li> <tt>hash:/etc/postfix/canonical, netinfo:/canonical</tt> 
</ul>

<hr>
   07070100032823000081a40000000000000002000000013ac038b500000307000000200000000000000000000000000000002e00000003reloc/postfix/help/opt_canonical_maps.sv.html <header>Tabeller f鰎 adress鰒ers鋞tning</header>

<center><tt>canonical_maps</tt></center>
<hr>

Denna parameter 鋜 valfri och anger tabeller f鰎 adress鰒ers鋞tning. 講ers鋞tningen
anv鋘ds p b錮e avs鋘dar- och mottagaradresserna, b錮e p omslaget och i brevhuvudet.
Detta anv鋘ds vanligtvis f鰎 att st鋎a bort gamla adresser skapade av 鋖dre e-postservrar
och f鰎 att byta ut anv鋘darnamn mot <tt>F鰎namn.Efternamn</tt>. Se canonical(5) f鰎
mer information.

<p>Standardinst鋖lningen 鋜 att ingen kanonisk adress鰒ers鋞tning g鰎s.

<p>Vettiga v鋜den:
<ul>
<li> <tt>dbm:/etc/postfix/canonical</tt> 
<li> <tt>hash:/etc/postfix/canonical</tt> 
<li> <tt>hash:/etc/postfix/canonical, nis:canonical</tt> 
<li> <tt>hash:/etc/postfix/canonical, netinfo:/canonical</tt> 
</ul>

<hr>
 07070100032824000081a40000000000000002000000013ac038b2000001e2000000200000000000000000000000000000002f00000003reloc/postfix/help/opt_command_time_limit.html    <header>Max time for delivery to external commands</header>

<center><tt>command_time_limit</tt></center>
<hr>

This parameter limits the amount of time for delivery to external commands.
This limit is used by the local delivery agent, and is the default time limit
for delivery by the pipe mailer.

<p>

Note: if you set this time limit to a large value you must update the global
<tt>ipc_timeout</tt> parameter as well. See
<b>Postfix Miscellaneous Options</b> for details.

<hr>
  07070100032825000081a40000000000000002000000013ac038b500000217000000200000000000000000000000000000003200000003reloc/postfix/help/opt_command_time_limit.sv.html <header>L鋘gsta tid f鰎 att skicka till externa kommandon</header>

<center><tt>command_time_limit</tt></center>
<hr>

Denna parameter begr鋘sar tiden som anv鋘ds f鰎 att skicka meddelanden till
externa kommandon. Tidsgr鋘sen anv鋘ds av den lokala e-posthanteraren och
鋜 standardtidsgr鋘s f鰎 leverans med programpostaren (pipe).

<p>Obs! Om du v鋖jer ett v鋖digt stort v鋜de f鰎 denna tidsgr鋘s m錽te du ocks
鋘dra den globala parametern <tt>ipc_timeout</tt>. Se <b>Blandade inst鋖lningar
f鰎 Postfix</b> f鰎 mer information.

<hr>
 07070100032826000081a40000000000000002000000013ac038b2000000e6000000200000000000000000000000000000002b00000003reloc/postfix/help/opt_daemon_timeout.html    <header>Timeout on handling requests</header>

<center><tt>daemon_timeout</tt></center>
<hr>

This parameter specifies how much time a daemon may take to handle a request
before it assumes it is wedged and commits suicide.


<hr>
  07070100032827000081a40000000000000002000000013ac038b500000102000000200000000000000000000000000000002e00000003reloc/postfix/help/opt_daemon_timeout.sv.html <header>Tidsgr鋘s f鰎 hantering av f鰎fr錱ningar</header>

<center><tt>daemon_timeout</tt></center>
<hr>

Denna parameter anger hur l錸g tid en demon f錼 ta p sig f鰎 att hantera en
f鰎fr錱ning innan den anser att den har fastnat och d鰀ar sig sj鋖v.

<hr>
  07070100032828000081a40000000000000002000000013ac038b20000012d000000200000000000000000000000000000002d00000003reloc/postfix/help/opt_debug_peer_level.html  <header>Verbose logging level when matching the above list</header>

<center><tt>debug_peer_level</tt></center>
<hr>

This parameter specifies the increment in verbose logging level when an SMTP
client or server host name or address matches a pattern in the
<tt>debug_peer_list</tt> parameter.


<hr>
   07070100032829000081a40000000000000002000000013ac038b50000012c000000200000000000000000000000000000003000000003reloc/postfix/help/opt_debug_peer_level.sv.html   <header>Utf鰎lig loggningsniv n鋜 ovanst錯nde lista matchar</header>

<center><tt>debug_peer_level</tt></center>
<hr>

Denna parameter anger 鰇ningen i utf鰎lig loggningsniv d en SMTP-klients
eller -servers datornamn eller adress matchar n錱ot m鰊ster i parametern
<tt>debug_peer_list</tt>.

<hr>
0707010003282a000081a40000000000000002000000013ac038b200000204000000200000000000000000000000000000002c00000003reloc/postfix/help/opt_debug_peer_list.html   <header>List of domain/network patterns for which verbose log is enabled</header>

<center><tt>debug_peer_list</tt></center>
<hr>

This parameter specifies an optional list of domain or network patterns,
<tt>/file/name</tt> patterns or <tt>type:name</tt> tables. When an SMTP client
or server host name or address matches a pattern, increase the verbose logging
level by the amount specified in the <tt>debug_peer_level</tt> parameter.

<p>

Sensible possible values:
<ul>
<li>127.0.0.1
<li>some.domain
</ul>


<hr>
0707010003282b000081a40000000000000002000000013ac038b500000204000000200000000000000000000000000000002f00000003reloc/postfix/help/opt_debug_peer_list.sv.html    <header>Lista 鰒er dom鋘/n鋞verksm鰊ster f鰎 vilka utf鰎lig loggning ska g鰎as</header>

<center><tt>debug_peer_list</tt></center>
<hr>

Denna parameter anger en lista 鰒er dom鋘- och/eller n鋞verksm鰊ster,
<tt>/fil/namn</tt>-m鰊ster eller <tt>typ:namn</tt>-tabeller. Om en SMTP-klients
eller -servers datornamn eller adress matchar n錱ot m鰊ster, 鰇as den utf鰎liga loggningsniv錸
med det v鋜de som angivits i parametern <tt>debug_peer_level</tt>.

<p>Vettiga v鋜den:
<ul>
<li>127.0.0.1
<li>n錱on.dom鋘
</ul>

<hr>
0707010003282c000081a40000000000000002000000013ac038b200000169000000200000000000000000000000000000003200000003reloc/postfix/help/opt_default_database_type.html <header>Default database type</header>

<center><tt>default_database_type</tt></center>
<hr>

This parameter specifies the default database type to use in
<tt>postalias(1)</tt> and <tt>postmap(1)</tt> commands. On many UNIX systems
the default type is either <tt>`dbm'</tt> or <tt>`hash'</tt>. The default is
determined when the Postfix system is built.


<hr>
   07070100032832000081a40000000000000002000000013ac038b200000166000000200000000000000000000000000000002a00000003reloc/postfix/help/opt_default_privs.html <header>Default rights of the local delivery agent</header>

<center><tt>default_privs</tt></center>
<hr>

This parameter specifies the default rights used by the local delivery agent
for delivery to external file or command.

<p>

These rights are used in the absence of a recipient user context. DO NOT
SPECIFY A PRIVILEGED USER OR THE POSTFIX OWNER.

<hr>  0707010003282d000081a40000000000000002000000013ac038b500000170000000200000000000000000000000000000003500000003reloc/postfix/help/opt_default_database_type.sv.html  <header>Standardtyp f鰎 databas</header>

<center><tt>default_database_type</tt></center>
<hr>

Denna parameter anger standardtypen f鰎 den databas som ska anv鋘das i
<tt>postalias(1)</tt>- och <tt>postmap(1)</tt>-kommandon. I m錸ga UNIX-system
鋜 standardtypen antingen <tt>`dbm'</tt> eller <tt>`hash'</tt>. Standardtypen
best鋗s d Postfix-systemet byggs upp.

<hr>
0707010003282e000081a40000000000000002000000013ac038b200000166000000200000000000000000000000000000004200000003reloc/postfix/help/opt_default_destination_concurrency_limit.html <header>Max number of parallel deliveries to the same destination</header>

<center><tt>default_destination_concurrency_limit</tt></center>
<hr>

The parameter specifies a default limit on the number of parallel deliveries to
the same destination. This is the default limit for delivery via SMTP, via the
local delivery agent and via the pipe mailer.


<hr>
  0707010003282f000081a40000000000000002000000013ac038b500000163000000200000000000000000000000000000004500000003reloc/postfix/help/opt_default_destination_concurrency_limit.sv.html  <header>Maximalt antal parallella s鋘dningar till samma destination</header>

<center><tt>default_destination_concurrency_limit</tt></center>
<hr>

Denna parameter anger en standardgr鋘s f鰎 antalet parallella s鋘dningar till
samma destination. Detta 鋜 standardgr鋘sen f鰎 s鋘dning via SMTP, den lokala
e-posthanteraren och programpostaren (pipe).

<hr>
 07070100032830000081a40000000000000002000000013ac038b20000014c000000200000000000000000000000000000004000000003reloc/postfix/help/opt_default_destination_recipient_limit.html   <header>Max number of recipients per message delivery</header>

<center><tt>default_destination_recipient_limit</tt></center>
<hr>

The parameter specifies a default limit on the number of recipients per message
delivery. This is the default limit for delivery via SMTP, via the local
delivery agent and via the pipe mailer.


<hr>
07070100032831000081a40000000000000002000000013ac038b500000149000000200000000000000000000000000000004300000003reloc/postfix/help/opt_default_destination_recipient_limit.sv.html    <header>Maximalt antal mottagare per meddelandes鋘dning</header>

<center><tt>default_destination_recipient_limit</tt></center>
<hr>

Denna parameter anger en standardgr鋘s f鰎 antalet mottagare per meddelandes鋘dning.
Detta 鋜 standardgr鋘sen f鰎 s鋘dning via SMTP, den lokala e-posthanteraren och
programpostaren (pipe).

<hr>
   07070100032833000081a40000000000000002000000013ac038b500000177000000200000000000000000000000000000002d00000003reloc/postfix/help/opt_default_privs.sv.html  <header>Standardr鋞tigheter f鰎 den lokala e-posthanteraren</header>

<center><tt>default_privs</tt></center>
<hr>

Denna parameter anger standardr鋞tigheter f鰎 den lokala e-posthanteraren
avseende s鋘dningar till externa filer och kommandon.

<p>Dessa r鋞tigheter anv鋘ds d ingen mottagaranv鋘dare angivits. ANGE
INTE EN PRIVILEGIERAD ANV腘DARE ELLER POSTFIX-腉AREN.

<hr> 07070100032834000081a40000000000000002000000013ac038b2000000e6000000200000000000000000000000000000003200000003reloc/postfix/help/opt_default_process_limit.html <header>Max number of Postfix child processes</header>

<center><tt>default_process_limit</tt></center>
<hr>

This parameter specifies the default limit on the number of Postfix child
processes that provide a given service.

<hr>
  07070100032835000081a40000000000000002000000013ac038b5000000d2000000200000000000000000000000000000003500000003reloc/postfix/help/opt_default_process_limit.sv.html  <header>Maximalt antal Postfix-underprocesser</header>

<center><tt>default_process_limit</tt></center>
<hr>

Denna parameter anger standardgr鋘sen f鰎 antalet Postfix-underprocesser
f鰎 en given tj鋘st.

<hr>
  07070100032836000081a40000000000000002000000013ac038b200000130000000200000000000000000000000000000002e00000003reloc/postfix/help/opt_default_transport.html <header>Default message delivery transport</header>

<center><tt>default_transport</tt></center>
<hr>

This parameter specifies the default message delivery transport to use when no
transport is explicitly given in the optional transport(5) table. Common values
are <tt>uucp</tt> or <tt>smtp</tt>.

<hr>
07070100032837000081a40000000000000002000000013ac038b50000012c000000200000000000000000000000000000003100000003reloc/postfix/help/opt_default_transport.sv.html  <header>Standardtyp av meddelandetransport</header>

<center><tt>default_transport</tt></center>
<hr>

Denna parameter anger standardtyp av meddelandetransport d inget
transports鋞t uttryckligen har angivits i transport(5)-tabellen (valfri).
Vanliga v鋜den 鋜 <tt>uucp</tt> och <tt>smtp</tt>.

<hr>
07070100032838000081a40000000000000002000000013ac038b200000174000000200000000000000000000000000000002d00000003reloc/postfix/help/opt_defer_transports.html  <header>Transports that should not be delivered</header>

<center><tt>defer_transports</tt></center>
<hr>

This parameter specifies the names of transports that should not be delivered
to unless someone issues &quot;sendmail -q&quot; or equivalent. Specify zero or
more names of mail delivery transports names that appear in the first field of
<tt>master.cf</tt>).


<hr>
07070100032839000081a40000000000000002000000013ac038b500000159000000200000000000000000000000000000003000000003reloc/postfix/help/opt_defer_transports.sv.html   <header>Transportmetoder som inte b鰎 anv鋘das</header>

<center><tt>defer_transports</tt></center>
<hr>

Denna parameter anger namn p transportmetoder som inte b鰎 anv鋘das om man inte
anv鋘der &quot;sendmail -q&quot; eller liknande. Ange noll eller fler namn p
e-posts鋘dningsmetoder som finns i <tt>master.cf</tt>-filens f鰎sta f鋖t.

<hr>
   0707010003283a000081a40000000000000002000000013ac038b2000000f0000000200000000000000000000000000000003300000003reloc/postfix/help/opt_delay_notice_recipient.html    <header>Send postmaster notice on delay to...</header>

<center><tt>delay_notice_recipient</tt></center>
<hr>

Specify who gets postmaster notices if the above error conditions is
recognized.

<p>

Defaults to &quot;postmaster&quot;.

<hr>
0707010003283b000081a40000000000000002000000013ac038b5000000fa000000200000000000000000000000000000003600000003reloc/postfix/help/opt_delay_notice_recipient.sv.html <header>Skicka meddelande om f鰎dr鰆ning till ...</header>

<center><tt>delay_notice_recipient</tt></center>
<hr>

Ange vem som ska f postmaster-meddelanden om ovanst錯nde fel upptr鋎er.

<p>Standard 鋜 att skicka till &quot;postmaster&quot;.

<hr>
  0707010003283c000081a40000000000000002000000013ac038b2000000fe000000200000000000000000000000000000002f00000003reloc/postfix/help/opt_delay_warning_time.html    <header>Time in hours before sending a warning for no delivery</header>

<center><tt>delay_warning_time</tt></center>
<hr>

The specifies after how many hours a warning is sent that mail has not yet been
delivered. By default, no warning is sent.


<hr>
  0707010003283d000081a40000000000000002000000013ac038b500000135000000200000000000000000000000000000003200000003reloc/postfix/help/opt_delay_warning_time.sv.html <header>Tid (timmar) innan varningsmeddelande om utebliven s鋘dning skickas</header>

<center><tt>delay_warning_time</tt></center>
<hr>

Denna parameter anger efter hur m錸ga timmar en varning ska skickas om att e-postmeddelandet
鋘nu inte har s鋘ts. Standardinst鋖lningen 鋜 att ingen varning skickas.

<hr>
   0707010003283e000081a40000000000000002000000013ac038b2000000d6000000200000000000000000000000000000003200000003reloc/postfix/help/opt_deliver_lock_attempts.html <header>Max attempts to acquire file lock</header>

<center><tt>deliver_lock_attempts</tt></center>
<hr>

This parameter limits the number of attempts to acquire an exclusive lock on a
mailbox or other file.

<hr>
  0707010003283f000081a40000000000000002000000013ac038b5000000d2000000200000000000000000000000000000003500000003reloc/postfix/help/opt_deliver_lock_attempts.sv.html  <header>Maximalt antal f鰎s鰇 att f fill錽</header>

<center><tt>deliver_lock_attempts</tt></center>
<hr>

Denna parameter anger maximalt antal f鰎s鰇 att f ett eget l錽 p
en brevl錮a eller annan fil.

<hr>
  07070100032840000081a40000000000000002000000013ac038b2000000cd000000200000000000000000000000000000002f00000003reloc/postfix/help/opt_deliver_lock_delay.html    <header>Time in seconds between file lock attempts</header>

<center><tt>deliver_lock_delay</tt></center>
<hr>

This parameter sets the time in seconds between attempts to acquire an
exclusive lock.

<hr>
   07070100032841000081a40000000000000002000000013ac038b5000000c8000000200000000000000000000000000000003200000003reloc/postfix/help/opt_deliver_lock_delay.sv.html <header>Tid (sekunder) mellan fill錽ningsf鰎s鰇</header>

<center><tt>deliver_lock_delay</tt></center>
<hr>

Denna parameter anger tiden i sekunder mellan f鰎s鰇 att skaffa sig
ett eget fill錽.

<hr>
07070100032842000081a40000000000000002000000013ac038b2000000ec000000200000000000000000000000000000003100000003reloc/postfix/help/opt_disable_vrfy_command.html  <header>Disable SMTP VRFY command</header>

<center><tt>disable_vrfy_command</tt></center>
<hr>

This parameter allows you to disable the SMTP VRFY command. This stops some
techniques used by spammers to harvest email addresses.


<hr>
07070100032843000081a40000000000000002000000013ac038b5000000f8000000200000000000000000000000000000003400000003reloc/postfix/help/opt_disable_vrfy_command.sv.html   <header>Deaktivera SMTP-kommandot VRFY</header>

<center><tt>disable_vrfy_command</tt></center>
<hr>

Denna parameter g鰎 att du kan deaktivera SMTP-kommandot VRFY. Detta sp鋜rar
n錱ra s鋞t som spammare anv鋘der f鰎 att samla e-postadresser.

<hr>
07070100032844000081a40000000000000002000000013ac038b200000148000000200000000000000000000000000000003100000003reloc/postfix/help/opt_double_bounce_sender.html  <header>Sender address for bounce mail</header>

<center><tt>double_bounce_sender</tt></center>
<hr>

This parameter specifies the sender address for mail that must be discarded
when it cannot be delivered. This must be a unique name. All mail to this name
is silently discarded, in order to terminate mail bounce loops.


<hr>
07070100032852000081a40000000000000002000000013ac038b2000000aa000000200000000000000000000000000000002700000003reloc/postfix/help/opt_fork_delay.html    <header>Time in seconds between fork attempts</header>

<center><tt>fork_delay</tt></center>
<hr>

This parameter sets the time in seconds between fork() attempts.

<hr>
  07070100032845000081a40000000000000002000000013ac038b500000144000000200000000000000000000000000000003400000003reloc/postfix/help/opt_double_bounce_sender.sv.html   <header>Avs鋘daradress f鰎 studsad e-post</header>

<center><tt>double_bounce_sender</tt></center>
<hr>

Denna parameter anger avs鋘daradress f鰎 e-post som ska kastas n鋜 den inte
kan skickas till mottagaren. Ett unikt namn m錽te anges. All e-post till detta
namn kastas utan meddelanden f鰎 att hindra studs-loopar.

<hr>
07070100032846000081a40000000000000002000000013ac038b2000000ff000000200000000000000000000000000000003300000003reloc/postfix/help/opt_duplicate_filter_limit.html    <header>Max number of addresses remembered by the duplicate filter</header>

<center><tt>duplicate_filter_limit</tt></center>
<hr>

This parameter limits the number of addresses remembered by the duplicate
filter for alias, virtual, etc. expansion.

<hr>
 07070100032847000081a40000000000000002000000013ac038b5000000f4000000200000000000000000000000000000003600000003reloc/postfix/help/opt_duplicate_filter_limit.sv.html <header>Maximalt antal adresser som dubblettfiltret minns</header>

<center><tt>duplicate_filter_limit</tt></center>
<hr>

Denna parameter begr鋘sar antalet adresser som dubblettfiltret f鰎
alias-, virtuell etc. expansion ska komma ih錱.

<hr>
07070100032848000081a40000000000000002000000013ac038b20000013f000000200000000000000000000000000000003400000003reloc/postfix/help/opt_empty_address_recipient.html   <header>Send mail with empty recipient to...</header>

<center><tt>empty_address_recipient</tt></center>
<hr>

This parameter specifies the destination for mail from <tt><></tt> that is
undeliverable (typically, bounce notifications and other notifications).

<p>

By default, such mail is sent to MAILER-DAEMON.

<hr>
 07070100032849000081a40000000000000002000000013ac038b50000014c000000200000000000000000000000000000003700000003reloc/postfix/help/opt_empty_address_recipient.sv.html    <header>Skicka e-post utan mottagare till ...</header>

<center><tt>empty_address_recipient</tt></center>
<hr>

Denna parameter anger destinationen f鰎 e-post fr錸 <tt><></tt> som inte
kan s鋘das (exempelvis studsmeddelanden och andra felmeddelanden).

<p>Standardinst鋖lningen 鋜 att denna e-post skickas till MAILER-DAEMON.

<hr>
0707010003284a000081a40000000000000002000000013ac038b2000000f0000000200000000000000000000000000000003300000003reloc/postfix/help/opt_error_notice_recipient.html    <header>Send postmaster notice on error to...</header>

<center><tt>error_notice_recipient</tt></center>
<hr>

Specify who gets postmaster notices if the above error conditions is
recognized.

<p>

Defaults to &quot;postmaster&quot;.

<hr>
0707010003284b000081a40000000000000002000000013ac038b5000000ef000000200000000000000000000000000000003600000003reloc/postfix/help/opt_error_notice_recipient.sv.html <header>Skicka felmeddelanden till ...</header>

<center><tt>error_notice_recipient</tt></center>
<hr>

Ange vem som ska f postmaster-meddelanden om ovanst錯nde fel upptr鋎er.

<p>Standard 鋜 att skicka till &quot;postmaster&quot;.

<hr>
 0707010003284c000081a40000000000000002000000013ac038b200000195000000200000000000000000000000000000002b00000003reloc/postfix/help/opt_fallback_relay.html    <header>Hosts/domains to hand off mail to on invalid destination </header>

<center><tt>fallback_relay</tt></center>
<hr>

This parameter specifies zero or more hosts or domains to hand off mail to if a
message destination is not found, or if a destination is unreachable.

<p>

By default, mail is bounced when a destination is not found, and delivery is
deferred if a destination is unreachable.


<hr>
   0707010003284d000081a40000000000000002000000013ac038b5000001a3000000200000000000000000000000000000002e00000003reloc/postfix/help/opt_fallback_relay.sv.html <header>Datorer/dom鋘er dit e-post med ogiltig adress skickas</header>

<center><tt>fallback_relay</tt></center>
<hr>

Denna parameter anger noll eller flera datorer eller dom鋘er dit e-post skickas
om ingen destination hittas eller om destinationen inte g錼 att n.

<p>Standardinst鋖lningen 鋜 att meddelandet studsar om destinationen inte hittas
och att s鋘dningen skjuts upp om destinationen inte g錼 att n.

<hr>
 0707010003284e000081a40000000000000002000000013ac038b200000158000000200000000000000000000000000000002f00000003reloc/postfix/help/opt_fallback_transport.html    <header>Optional transport for unknown recipients</header>

<center><tt>fallback_transport</tt></center>
<hr>

This parameter specifies the optional transport in <tt>master.cf</tt> to use
for recipients that are not found in the UNIX <tt>passwd</tt> database.

<p>

This parameter has precedence over the <tt>luser_relay</tt> parameter.


<hr>
0707010003284f000081a40000000000000002000000013ac038b500000148000000200000000000000000000000000000003200000003reloc/postfix/help/opt_fallback_transport.sv.html <header>Alternativ transport f鰎 ok鋘da mottagare</header>

<center><tt>fallback_transport</tt></center>
<hr>

Denna parameter anger alternativ transportmetod i <tt>master.cf</tt> som ska
anv鋘das f鰎 mottagare som inte finns i UNIX-<tt>passwd</tt>-databasen.

<p>Denna parameter g錼 f鰎e parametern <tt>luser_relay</tt>.

<hr>
07070100032850000081a40000000000000002000000013ac038b2000000a7000000200000000000000000000000000000002a00000003reloc/postfix/help/opt_fork_attempts.html <header>Max attempts to fork a process</header>

<center><tt>fork_attempts</tt></center>
<hr>

This parameter limits the number of attempts to fork() a process.

<hr>
 07070100032851000081a40000000000000002000000013ac038b5000000bc000000200000000000000000000000000000002d00000003reloc/postfix/help/opt_fork_attempts.sv.html  <header>Maximalt antal f鰎s鰇 att starta underprocess</header>

<center><tt>fork_attempts</tt></center>
<hr>

Denna parameter begr鋘sar antalet f鰎s鰇 att g鰎a fork() p en process.

<hr>
07070100032853000081a40000000000000002000000013ac038b5000000b5000000200000000000000000000000000000002a00000003reloc/postfix/help/opt_fork_delay.sv.html <header>Tid (sekunder) mellan f鰎s鰇 att starta underprocess</header>

<center><tt>fork_delay</tt></center>
<hr>

Denna parameter anger tiden i sekunder mellan fork()-f鰎s鰇.

<hr>
   07070100032854000081a40000000000000002000000013ac038b2000002c5000000200000000000000000000000000000002900000003reloc/postfix/help/opt_forward_path.html  <header>Search list for forward</header>

<center><tt>forward_path</tt></center>
<hr>

This parameter specifies a search list. The first file that is found is used.

<p>

The following expansions are done: 
<ul>
<li><tt>$user</tt> (recipient username),
<li><tt>$shell</tt> (recipient shell), 
<li><tt>$home</tt> (recipient home directory),
<li><tt>$recipient</tt> (full recipient address), 
<li><tt>$extension</tt> (recipient address extension), 
<li><tt>$domain</tt> (recipient domain), 
<li><tt>$local</tt> (entire recipient localpart), 
<li><tt>$recipient_delimiter</tt>.
</ul>

Specify <tt>${name?value}</tt> or <tt>${name:value}</tt> to expand value only
when <tt>$name</tt> does (does not) exist.

<hr>
   07070100032855000081a40000000000000002000000013ac038b5000002ac000000200000000000000000000000000000002c00000003reloc/postfix/help/opt_forward_path.sv.html   <header>S鰇v鋑 f鰎 efters鋘dning</header>

<center><tt>forward_path</tt></center>
<hr>

Denna parameter anger en lista med s鰇v鋑ar. Den fil som f鰎st hittas anv鋘ds.

<p>F鰈jande expansioner g鰎s:
<ul>
<li><tt>$user</tt> (mottagaranv鋘darnamn),
<li><tt>$shell</tt> (mottagarskal),
<li><tt>$home</tt> (mottagarhemkatalog),
<li><tt>$recipient</tt> (fullst鋘dig mottagaradress),
<li><tt>$extension</tt> (mottagaradress鋘delse),
<li><tt>$domain</tt> (mottagardom鋘),
<li><tt>$local</tt> (mottagarens hela lokala del), 
<li><tt>$recipient_delimiter</tt>.
</ul>

Ange <tt>${namn?v鋜de}</tt> eller <tt>${namn:v鋜de}</tt> f鰎 att bara expandera
v鋜det n鋜 <tt>$namn</tt> (inte) finns.

<hr>
07070100032856000081a40000000000000002000000013ac038b20000016f000000200000000000000000000000000000002d00000003reloc/postfix/help/opt_hash_queue_depth.html  <header>Number of subdir levels below the queue dir</header>

<center><tt>hash_queue_depth</tt></center>
<hr>

This parameter specifies the number of subdirectory levels below the queue
directories listed in the <tt>hash_queue_names</tt> parameter.

<p>

Multiple subdirectory levels can speed up directory access by reducing the
number of files per directory.

<hr>
 07070100032857000081a40000000000000002000000013ac038b500000168000000200000000000000000000000000000003000000003reloc/postfix/help/opt_hash_queue_depth.sv.html   <header>Antal underkatalogniv錯r under k鰇atalogen</header>

<center><tt>hash_queue_depth</tt></center>
<hr>

Denna parameter anger antalet underkatalogniv錯r under de k鰇ataloger som
r鋕nas upp i parametern <tt>hash_queue_names</tt>.

<p>Multipla underkatalogniv錯r kan snabba upp 錿komsten till katalogerna
genom att antalet filer per katalog minskas.

<hr>
07070100032858000081a40000000000000002000000013ac038b300000250000000200000000000000000000000000000002d00000003reloc/postfix/help/opt_hash_queue_names.html  <header>Name of queue dirs split accross subdirs</header>

<center><tt>hash_queue_names</tt></center>
<hr>

This parameter specifies the names of queue directories that are split across
multiple subdirectory levels. Hashing MUST NOT be used with a world-writable
maildrop directory. Hashing MUST be used for the defer logfile directory, or
mail system performance will suffer.

<p>

Unfortunately, hashing the incoming or deferred queue can actually
slow the mail system down (<tt>mailq</tt> with an empty queue can take
several seconds) so it should be done only in case of emergency.

<hr>
07070100032859000081a40000000000000002000000013ac038b500000271000000200000000000000000000000000000003000000003reloc/postfix/help/opt_hash_queue_names.sv.html   <header>Namn p k鰇ataloger som delas upp p underkataloger</header>

<center><tt>hash_queue_names</tt></center>
<hr>

Denna parameter anger namnen p de k鰇ataloger som delas upp p flera
underkatalogniv錯r. Hashning <b>f錼 inte</b> anv鋘das med en e-postkatalog som
hela v鋜lden kan skriva till. Hashning <b>m錽te</b> anv鋘das f鰎
f鰎dr鰆ningsloggfilskatalogen, annars kommer e-postsystemets prestanda att g ner.

<p>Tyv鋜r kan hashning av k鰊 f鰎 inkommande meddelanden eller f鰎dr鰆ningsk鰊
faktiskt sl鯽 ned e-postsystemet (<tt>mailq</tt> p en tom k kan ta flera
sekunder), s detta b鰎 endast g鰎as i n鰀fall.

<hr>
   0707010003285a000081a40000000000000002000000013ac038b300000122000000200000000000000000000000000000002e00000003reloc/postfix/help/opt_header_size_limit.html <header>Max memory used for processing headers</header>

<center><tt>header_size_limit</tt></center>
<hr>

This parameter limits the amount of memory in bytes used for processing a
message header. If a header is larger, the remainder of the entire message is
treated as message body.

<hr>
  07070100032867000081a40000000000000002000000013ac038b500000142000000200000000000000000000000000000003100000003reloc/postfix/help/opt_header_size_limit.sv.html  <header>Maximal minnes錿g錸g f鰎 att processa meddelandehuvud</header>

<center><tt>header_size_limit</tt></center>
<hr>

Denna parameter begr鋘sar det minnesutrymme som anv鋘ds f鰎 att processa ett
meddelandes huvud. Om n錱ot huvud skulle vara st鰎re kommer resten av meddelandet
att behandlas som meddelandekropp.

<hr>
  07070100032868000081a40000000000000002000000013ac038b3000001b6000000200000000000000000000000000000002900000003reloc/postfix/help/opt_home_mailbox.html  <header>Pathname of user mailbox file</header>

<center><tt>home_mailbox</tt></center>
<hr>

This parameter specifies the optional pathname of a mailbox file relative to a
user's home directory. The default mailbox file is
<tt>/var/spool/mail/user</tt> or <tt>/var/mail/user</tt>.

<p>

Specify &quot;Maildir/&quot for qmail-style delivery (the / is required).

<p>

Examples: 

<ul><li><tt>Mailbox</tt>
<li><tt>Maildir/</tt>
</ul>

<hr>
  07070100032869000081a40000000000000002000000013ac038b5000001bc000000200000000000000000000000000000002c00000003reloc/postfix/help/opt_home_mailbox.sv.html   <header>S鰇v鋑 till anv鋘darens brevl錮a</header>

<center><tt>home_mailbox</tt></center>
<hr>

Denna parameter anger en alternativ s鰇v鋑 till brevl錮efilen relativt en
anv鋘dares hemkatalog. Standardinst鋖lningen f鰎 brevl錮efilen 鋜
<tt>/var/spool/mail/user</tt> eller <tt>/var/mail/user</tt>.

<p>Ange &quot;Maildir/&quot f鰎 qmail-s鋘dningar (tecknet / m錽te anges).

<p>Exempel:
<ul><li><tt>Mailbox</tt>
<li><tt>Maildir/</tt>
</ul>

<hr>
0707010003286a000081a40000000000000002000000013ac038b3000000dc000000200000000000000000000000000000002b00000003reloc/postfix/help/opt_hopcount_limit.html    <header>Max number of Received: headers</header>

<center><tt>hopcount_limit</tt></center>
<hr>

This parameter limits the number of <tt>Received:</tt> message headers. A
message that exceeds the limit is bounced.

<hr>
0707010003286b000081a40000000000000002000000013ac038b5000000e2000000200000000000000000000000000000002e00000003reloc/postfix/help/opt_hopcount_limit.sv.html <header>Maximalt antal Received:-huvuden</header>

<center><tt>hopcount_limit</tt></center>
<hr>

Denna parameter begr鋘sar antalet <tt>Received:</tt>-huvuden i ett meddelande.
E-postmeddelanden med fler s錮ana studsas.

<hr>
  0707010003286c000081a40000000000000002000000013ac038b300000148000000200000000000000000000000000000003300000003reloc/postfix/help/opt_ignore_mx_lookup_error.html    <header>Ignore MX lookup error</header>

<center><tt>ignore_mx_lookup_error</tt></center>
<hr>

This parameter controls what happens when a name server fails to respond to an
MX lookup request. By default, Postfix defers delivery and tries again after
some delay. Specify <tt>yes</tt> to force an A record lookup instead.

<hr>
0707010003286d000081a40000000000000002000000013ac038b500000163000000200000000000000000000000000000003600000003reloc/postfix/help/opt_ignore_mx_lookup_error.sv.html <header>Strunta i MX-uppslagningsfel</header>

<center><tt>ignore_mx_lookup_error</tt></center>
<hr>

Denna parameter styr vad som h鋘der d en namnserver inte lyckas svara p en
MX-uppslagningsf鰎fr錱ning. Standard 鋜 att Postfix f鰎dr鰆er s鋘dningen och
f鰎s鰇er igen efter ett tag. Ange <tt>ja</tt> f鰎 att forcera en A-postuppslagning
ist鋖let.

<hr>
 0707010003286e000081a40000000000000002000000013ac038b3000001e6000000200000000000000000000000000000002c00000003reloc/postfix/help/opt_inet_interfaces.html   <header>Network interfaces for receiving mail</header>

<center><tt>init_interfaces</tt></center>
<hr>

This parameter specifies the network interface addresses that this mail system
receives mail on.

<p>

By default, the software claims all active interfaces on the machine. The
parameter also controls delivery of mail to <tt>user@[ip.address]</tt>.

<p>

Typical configurations are:

<ul>
<li> <tt>all</tt>
<li> <tt>$myhostname</tt>
<li> <tt>$myhostname, localhost</tt>
</ul>

<hr>
  0707010003286f000081a40000000000000002000000013ac038b5000001da000000200000000000000000000000000000002f00000003reloc/postfix/help/opt_inet_interfaces.sv.html    <header>N鋞verksinterface f鰎 mottagning av e-post</header>

<center><tt>init_interfaces</tt></center>
<hr>

Denna parameter anger de n鋞verksadresser som detta e-postsystem ska ta emot
e-post p.

<p>Standard 鋜 att programmet l鋝er av alla aktiva interface p maskinen.
Parametern styr ocks e-posts鋘dning till <tt>anv鋘dare@[ip.adress]</tt>.

<p>Vanliga inst鋖lningar 鋜:
<ul>
<li> <tt>all</tt>
<li> <tt>$myhostname</tt>
<li> <tt>$myhostname, localhost</tt>
</ul>

<hr>
  07070100032870000081a40000000000000002000000013ac038b3000001ef000000200000000000000000000000000000003c00000003reloc/postfix/help/opt_initial_destination_concurrency.html   <header>Initial concurrency level for delivery to the same destination</header>

<center><tt>initial_destination_concurrency</tt></center>
<hr>

This parameter specifies the initial per-destination concurrency level for
parallel delivery to the same destination. This limit applies to delivery via
SMTP, via the local delivery agent and via the pipe mailer.

<p>

With concurrency of 1, one bad message is enough to block all mail
to a site. A concurrency of 2 seems a reasonable choice.


<hr>
 07070100032871000081a40000000000000002000000013ac038b500000203000000200000000000000000000000000000003f00000003reloc/postfix/help/opt_initial_destination_concurrency.sv.html    <header>Startniv f鰎 samtidig s鋘dning till samma destination</header>

<center><tt>initial_destination_concurrency</tt></center>
<hr>

Denna parameter anger startniv f鰎 samtidig, parallell s鋘dning till samma destination, dvs det antal meddelanden som ska b鰎ja s鋘das samtidigt.
Begr鋘sningen g鋖ler s鋘dning via SMTP, via den lokala e-posthanteraren och via
programpostaren (pipe).

<p>Om parametern satts till 1, kan ett trasigt e-postmeddelande blockera all e-post till
en site. 2 鋜 ett vettigt val.

<hr>
 07070100032872000081a40000000000000002000000013ac038b300000147000000200000000000000000000000000000003900000003reloc/postfix/help/opt_invalid_hostname_reject_code.html  <header>SMTP server response on hostname reject</header>

<center><tt>invalid_hostname_reject_code</tt></center>
<hr>

This parameter specifies the SMTP server response when a client violates the
reject_invalid_hostname anti-UCE restriction.

<p>

Do not change this unless you have a complete understanding of RFC 822.


<hr>
 07070100032873000081a40000000000000002000000013ac038b500000144000000200000000000000000000000000000003c00000003reloc/postfix/help/opt_invalid_hostname_reject_code.sv.html   <header>SMTP-server錿g鋜d vid datornamnsavvisande</header>

<center><tt>invalid_hostname_reject_code</tt></center>
<hr>

Denna parameter anger hur STMP-servern ska reagera d en klient 鰒ertr鋎er
anti-UCE-restriktionen f鰎 reject_invalid_hostname.

<p>膎dra inte p denna om du inte har f鰎st錿t RFC 822 fullst鋘digt.

<hr>
07070100032874000081a40000000000000002000000013ac038b300000151000000200000000000000000000000000000002500000003reloc/postfix/help/opt_ipc_idle.html  <header>Idle time after internal IPC client disconnects</header>

<center><tt>ipc_idle</tt></center>
<hr>

This parameter bounds the idle time in seconds after which an internal IPC
client disconnects. The purpose is to allow servers to terminate voluntarily.
Currently this is used by the address resolving and rewriting clients.

<hr>
   07070100032875000081a40000000000000002000000013ac038b500000157000000200000000000000000000000000000002800000003reloc/postfix/help/opt_ipc_idle.sv.html   <header>V鋘tetid efter nedkoppling av intern IPC-klient</header>

<center><tt>ipc_idle</tt></center>
<hr>

Denna parameter begr鋘sar v鋘tetiden i sekunder efter det att en
intern IPC-klient kopplat ned.. Syftet 鋜 att till錿a servrar att avsluta
frivilligt. F鰎 n鋜varande anv鋘ds detta av klienter som sl錼 upp och skriver
om adresser.

<hr>
 07070100032876000081a40000000000000002000000013ac038b30000013e000000200000000000000000000000000000002800000003reloc/postfix/help/opt_ipc_timeout.html   <header>Timeout for I/O on internal comm channels</header>

<center><tt>ipc_timeout</tt></center>
<hr>

The parameter specifies a timeout in seconds for I/O on internal communication
channels. The purpose is to break out of deadlock situations. If the timeout is
exceeded the software aborts with a fatal error.

<hr>
  07070100032877000081a40000000000000002000000013ac038b50000013d000000200000000000000000000000000000002b00000003reloc/postfix/help/opt_ipc_timeout.sv.html    <header>Tidsgr鋘s f鰎 I/O p intern kommunikationskanal</header>

<center><tt>ipc_timeout</tt></center>
<hr>

Denna parameter anger en tidsgr鋘s i sekunder f鰎 I/O p interna kommunikationskanaler.
Syftet 鋜 att komma ur l錽ta l鋑en. Om gr鋘sen 鰒erskrids kommer programmet att
avbrytas med ett allvarligt fel.

<hr>
   07070100032878000081a40000000000000002000000013ac038b30000010f000000200000000000000000000000000000002e00000003reloc/postfix/help/opt_line_length_limit.html <header>Max memory used for handling input lines</header>

<center><tt>line_length_limit</tt></center>
<hr>

This parameter limits the amount of memory in bytes used for handling input
lines. Longer lines are chopped up into pieces and reconstructed upon delivery.

<hr>
 07070100032885000081a40000000000000002000000013ac038b400000388000000200000000000000000000000000000002800000003reloc/postfix/help/opt_luser_relay.html   <header>Destination address for unknown recipients</header>

<center><tt>luser_relay</tt></center>
<hr>

This parameter specifies an optional destination address for unknown
recipients. By default, mail for unknown local recipients is bounced.

<p>

The following expansions are done: 

<ul>
<li><tt>$user</tt> (recipient username), 
<li><tt>$shell</tt> (recipient shell), 
<li><tt>$home</tt> (recipient home directory),
<li><tt>$recipient</tt> (full recipient address), 
<li><tt>$extension</tt> (recipient address extension), 
<li><tt>$domain</tt> (recipient domain), 
<li><tt>$local</tt> (entire recipient localpart), 
<li><tt>$recipient_delimiter</tt>.
</ul>

Specify <tt>${name?value}</tt> or <tt>${name:value}</tt> to expand value only
when <tt>$name</tt> does (does not) exist.

<p>

Examples:
<ul>
<li><tt>$user@other.host</tt>
<li><tt>$local@other.host</tt>
<li><tt>admin+$local</tt>
</ul>

<hr>
07070100032879000081a40000000000000002000000013ac038b50000011c000000200000000000000000000000000000003100000003reloc/postfix/help/opt_line_length_limit.sv.html  <header>Maximal minnes錿g錸g f鰎 att hantera inl鋝ta rader</header>

<center><tt>line_length_limit</tt></center>
<hr>

Denna parameter begr鋘sar det minnesutrymme (i byte) som anv鋘ds f鰎 att
hantera inl鋝ta rader. L鋘gre rader styckas upp i bitar och s鋞ts ihop vid 
s鋘dning.

<hr>
0707010003287a000081a40000000000000002000000013ac038b300000337000000200000000000000000000000000000003000000003reloc/postfix/help/opt_local_command_shell.html   <header>Shell to use for delivery to external command</header>

<center><tt>local_command_shell</tt></center>
<hr>

This parameter controls what shell will be used for delivery to external
command. By default, external commands are executed directly; commands are
given to <tt>/bin/sh</tt> only when they contain shell meta characters or
shell built-in commands.

<p>

Specify a different shell when you need more control over what
programs can be run from e.g. <tt>.forward</tt> files. 

<p>

&quot;sendmail's restricted shell&quot; <tt>smrsh</tt> is what most people will
use (<tt>smrsh</tt> is part of recent sendmail distributions)

<p>

Note: when a shell is specified, it is invoked even when the
command contains no shell built-in commands or meta characters.

<p>

Example: <tt>/some/where/smrsh -c</tt>

<p>

<hr>
 0707010003287b000081a40000000000000002000000013ac038b500000311000000200000000000000000000000000000003300000003reloc/postfix/help/opt_local_command_shell.sv.html    <header>Skal f鰎 s鋘dning till externt kommando</header>

<center><tt>local_command_shell</tt></center>
<hr>

Denna parameter styr vilket skal som anv鋘ds vid s鋘dning till externa
kommandon. Standard 鋜 att externa kommandon k鰎s direkt; kommandona skickas
till <tt>/bin/sh</tt> endast d de inneh錶ler metatecken eller inbyggda
skalkommandon.

<p>Ange ett annat skal om du vill ha mer kontroll 鰒er vilka program som
kan k鰎as exempelvis fr錸 <tt>.forward</tt>-filer.

<p>De flesta anv鋘der &quot;sendmail's restricted shell&quot; <tt>smrsh</tt>
(<tt>smrsh</tt> finns i senare sendmail-distributioner).

<p>Obs! Om ett skal anges kommer det att anropas 鋠en om kommandot inte inneh錶ler
n錱ra inbyggda skalkommandon eller metatecken.

<p>Exempel: <tt>/some/where/smrsh -c</tt>

<hr>
   0707010003287c000081a40000000000000002000000013ac038b30000022a000000200000000000000000000000000000004000000003reloc/postfix/help/opt_local_destination_concurrency_limit.html   <header>Max number of parallel deliveries to the same local recipient</header>

<center><tt>local_destination_concurrency_limit</tt></center>
<hr>

This parameter limits the number of parallel deliveries to the same local
recipient.

<p>

The default limit is taken from the
<tt>default_destination_concurrency_limit</tt> parameter. Postfix documentation
recommends a low limit of 2, just in case someone has an expensive shell
command in a <tt>.forward</tt> file or in an alias (e.g., a mailing list
manager). You don't want to run lots of those.

<hr>
  0707010003287d000081a40000000000000002000000013ac038b500000246000000200000000000000000000000000000004300000003reloc/postfix/help/opt_local_destination_concurrency_limit.sv.html    <header>Maximalt antal parallella s鋘dningar till samma lokala mottagare</header>

<center><tt>local_destination_concurrency_limit</tt></center>
<hr>

Denna parameter begr鋘sar antalet parallella s鋘dningar till samma lokala mottagare.

<p>Standardgr鋘sen har h鋗tats fr錸 parametern <tt>default_destination_concurrency_limit</tt>.
Postfix-dokumentationen rekommenderar den l錱a gr鋘sen 2 f鰎 den h鋘delse att n錱on har
ett omfattande skalkommando i en <tt>.forward</tt>-fil eller i ett alias (exempelvis en
mailinglisthanterare). Du vill inte k鰎a en massa s錮ana samtidigt.

<hr>
  0707010003287e000081a40000000000000002000000013ac038b3000001ca000000200000000000000000000000000000003e00000003reloc/postfix/help/opt_local_destination_recipient_limit.html <header>Max number of recipients per local message delivery</header>

<center><tt>local_destination_recipient_limit</tt></center>
<hr>

This parameter limits the number of recipients per local message delivery. The
default limit is taken from the <tt>default_destination_recipient_limit</tt>
parameter.

<p>

However, the queue manager by design limits the number of recipients
per local delivery request to exactly 1, so this parameter has no
effect.

<hr>
  0707010003287f000081a40000000000000002000000013ac038b5000001df000000200000000000000000000000000000004100000003reloc/postfix/help/opt_local_destination_recipient_limit.sv.html  <header>Maximalt antal mottagare per lokal meddelandes鋘dning</header>

<center><tt>local_destination_recipient_limit</tt></center>
<hr>

Denna parameter begr鋘sar antalet mottagare per lokal meddelandes鋘dning.
Standardgr鋘sen har h鋗tats fr錸 parametern <tt>default_destination_recipient_limit</tt>.

<p>Nu 鋜 det i och f鰎 sig s att k鰄anteraren 鋜 designad att begr鋘sa antalet
mottagare per lokal meddelandes鋘dning till precis 1, s denna parameter g鰎 ingen nytta.

<hr>
 07070100032880000081a40000000000000002000000013ac038b3000002d1000000200000000000000000000000000000003100000003reloc/postfix/help/opt_local_recipient_maps.html  <header>Reject unknown local users</header>

<center><tt>local_recipient_maps</tt></center>
<hr>

This parameter specifies optional lookup tables with all users that are local
with respect to <tt>$mydestination</tt> (&quot;what domains to receive mail
for&quot;)and <tt>$inet_interfaces</tt> (&quot;network interfaces for receiving
mail&quot;) . If this parameter is defined, then the SMTP server will reject
mail for unknown local users.

<p>

Put tables with bare usernames such as <tt>unix:passwd.byname</tt> and alias
maps. Example: <tt>$alias_maps unix:passwd.byname</tt>.

<p>

Beware: if the Postfix SMTP server runs chrooted, you may have to
copy the passwd database into the jail. This is system dependent.

<hr>   07070100032882000081a40000000000000002000000013ac038b5000002d8000000200000000000000000000000000000003400000003reloc/postfix/help/opt_local_recipient_maps.sv.html   <header>Kasta post till ok鋘da lokala anv鋘dare</header>

<center><tt>local_recipient_maps</tt></center>
<hr>

Denna parameter anger alternativa uppslagningstabeller med alla anv鋘dare
som 鋜 lokal i avseende p <tt>$mydestination</tt> (dom鋘er att ta emot e-post f鰎)
och <tt>$inet_interfaces</tt> (n鋞verksinterface att ta emot e-post f鰎). Om parametern
ges ett v鋜de kommer SMTP-servern att kasta e-post adresserad till ok鋘da lokala anv鋘dare.

<p>Ange tabeller med enbart anv鋘darnamn, som <tt>unix:passwd.byname</tt>, och aliastabeller.
Exempel: <tt>$alias_maps unix:passwd.byname</tt>.

<p>Varning: om Postfix-SMTP-server k鰎s med chroot kan du bli tvungen att kopiera in
passwd-databasen. Detta 鋜 systemberoende.

<hr>07070100032883000081a40000000000000002000000013ac038b3000001af000000200000000000000000000000000000002c00000003reloc/postfix/help/opt_local_transport.html   <header>Name of the transport for local deliveries</header>

<center><tt>local_transport</tt></center>
<hr>

This parameter specifies the name of the transport for delivery to destinations
that match <tt>$mydestination</tt> or <tt>$inet_interfaces</tt>.

<p>

By default, local mail is delivered to the transport called <tt>local</tt>,
which is just the name of a service that is defined in Postfix
<tt>master.cf</tt> file.


<hr>
 07070100032884000081a40000000000000002000000013ac038b5000001c4000000200000000000000000000000000000002f00000003reloc/postfix/help/opt_local_transport.sv.html    <header>Namn p transportmetod f鰎 lokal s鋘dning</header>

<center><tt>local_transport</tt></center>
<hr>

Denna parameter anger namnet p den transportmetod som ska anv鋘das vid s鋘dning
till destinationer som matchar <tt>$mydestination</tt> eller <tt>$inet_interfaces</tt>.

<p>Standard 鋜 att lokal e-post s鋘ds med transportmetoden <tt>local</tt>,
vilket helt enkelt 鋜 namnet p en tj鋘st som definieras i Postfix-filen
<tt>master.cf</tt>.

<hr>
07070100032886000081a40000000000000002000000013ac038b50000036c000000200000000000000000000000000000002b00000003reloc/postfix/help/opt_luser_relay.sv.html    <header>Destinationsadress f鰎 ok鋘da mottagare</header>

<center><tt>luser_relay</tt></center>
<hr>

Denna parameter anger en alternativ mottagaradress f鰎 ok鋘da mottagare.
Standard 鋜 att e-post till ok鋘da lokala mottagare studsar.

<p>F鰈jande expansioner g鰎s:

<ul>
<li><tt>$user</tt> (mottagaranv鋘darnamn), 
<li><tt>$shell</tt> (mottagarskal),
<li><tt>$home</tt> (mottagarhemkatalog),
<li><tt>$recipient</tt> (fullst鋘dig mottagaradress),
<li><tt>$extension</tt> (mottagaradress鋘delse), 
<li><tt>$domain</tt> (mottagardom鋘),
<li><tt>$local</tt> (mottagarens fullst鋘diga lokala del), 
<li><tt>$recipient_delimiter</tt>.
</ul>

Ange <tt>${namn?v鋜de}</tt> eller <tt>${namn:v鋜de}</tt> f鰎 att endast expandera
v鋜det d <tt>$namn</tt> (inte) finns.

<p>Exempel:
<ul>
<li><tt>$user@other.host</tt>
<li><tt>$local@other.host</tt>
<li><tt>admin+$local</tt>
</ul>

<hr>
07070100032887000081a40000000000000002000000013ac038b4000000df000000200000000000000000000000000000002600000003reloc/postfix/help/opt_mail_name.html <header>Mail system name</header>

<center><tt>mail_name</tt></center>
<hr>

This parameter specifies the mail system name that is used in
<tt>Received:</tt> headers, in the SMTP greeting banner, and in bounced mail.

<hr>
 07070100032888000081a40000000000000002000000013ac038b5000000d3000000200000000000000000000000000000002900000003reloc/postfix/help/opt_mail_name.sv.html  <header>E-postsystemets namn</header>

<center><tt>mail_name</tt></center>
<hr>

Denna parameter anger det namn som e-postsystemet ska ha i
<tt>Received:</tt>-huvuden, i SMTP-banners och i studsad e-post.

<hr>
 07070100032889000081a40000000000000002000000013ac038b4000001ac000000200000000000000000000000000000002700000003reloc/postfix/help/opt_mail_owner.html    <header>Queue and process ownership</header>

<center><tt>mail_owner</tt></center>
<hr>

This parameter specifies the owner of the Postfix queue and of most Postfix
daemon processes.

<p>

Specify the name of a user account THAT DOES NOT SHARE A GROUP WITH OTHER
ACCOUNTS AND THAT OWNS NO OTHER FILES OR PROCESSES ON THE SYSTEM. In
particular, don't specify <tt>nobody</tt> or <tt>daemon</tt>. PLEASE USE A
DEDICATED USER.

<hr>0707010003288a000081a40000000000000002000000013ac038b5000001ad000000200000000000000000000000000000002a00000003reloc/postfix/help/opt_mail_owner.sv.html <header>K- och process鋑ande</header>

<center><tt>mail_owner</tt></center>
<hr>

Denna parameter anger 鋑are till Postfix-k鰊 och de flesta
Postfix-demonprocesser.

<p>Ange namnet p ett anv鋘darkonto <b>som inte har n錱on grupp gemensam
med n錱ot annat konto och som inte 鋑er n錱ra andra filer eller processer
i systemet.</b> Anv鋘d s鋜skilt inte <tt>nobody</tt> eller <tt>daemon</tt>.
<b>Anv鋘d ett s鋜skilt konto.</b>

<hr>   0707010003288b000081a40000000000000002000000013ac038b4000000e0000000200000000000000000000000000000003100000003reloc/postfix/help/opt_mail_spool_directory.html  <header>Spool directory</header>

<center><tt>mail_spool_directory</tt></center>
<hr>

This parameter specifies the directory where UNIX-style mailboxes are kept.

<p>

The default setting depends on the system type.


<hr>
0707010003288c000081a40000000000000002000000013ac038b5000000c4000000200000000000000000000000000000003400000003reloc/postfix/help/opt_mail_spool_directory.sv.html   <header>Spool-katalog</header>

<center><tt>mail_spool_directory</tt></center>
<hr>

Denna parameter anger den katalog d鋜 UNIX-brevl錮or finns.

<p>Standardinst鋖lningen 鋜 systemberoende.

<hr>
0707010003288d000081a40000000000000002000000013ac038b4000000ef000000200000000000000000000000000000002900000003reloc/postfix/help/opt_mail_version.html  <header>Official mail system version</header>

<center><tt>mail_version</tt></center>
<hr>

This parameter specifies the official version of the mail system. The version
string can be used in, for example, the SMTP greeting banner.


<hr>
 0707010003288e000081a40000000000000002000000013ac038b5000000e8000000200000000000000000000000000000002c00000003reloc/postfix/help/opt_mail_version.sv.html   <header>Officiell version f鰎 e-postsystemet</header>

<center><tt>mail_version</tt></center>
<hr>

Denna parameter anger den officiella versionen f鰎 e-postsystemet.
Versionsstr鋘gen kan till exempel anv鋘das i STMP-banners.

<hr>
0707010003288f000081a40000000000000002000000013ac038b40000049c000000200000000000000000000000000000002c00000003reloc/postfix/help/opt_mailbox_command.html   <header>External command to use instead of mailbox delivery</header>

<center><tt>mailbox_command</tt></center>
<hr>

This parameter specifies the optional external command to use instead of mailbox
delivery. The command is run as the recipient with proper <tt>HOME</tt>,
<tt>SHELL</tt> and <tt>LOGNAME</tt> environment settings. Exception: delivery
for <tt>root</tt> is done as <tt>$default_user</tt>.

<p>

Other environment variables of interest: <tt>USER</tt> (recipient username),
<tt>EXTENSION</tt> (address extension), <tt>DOMAIN</tt> (domain part of address),
and <tt>LOCAL</tt> (the address localpart).

<p>

Unlike other Postfix configuration parameters, this
parameter is not subjected to parameter substitutions. This is to
make it easier to specify shell syntax (see example below).

<p>

Avoid shell meta characters because they will force Postfix to run
an expensive shell process. <tt>Procmail</tt> alone is expensive enough.

<p>

IF YOU USE THIS TO DELIVER MAIL SYSTEM-WIDE, YOU MUST SET UP AN
ALIAS THAT FORWARDS MAIL FOR ROOT TO A REAL USER.

<p>

Examples:
<ul>
<li><tt>/some/where/procmail</tt> 
<li><tt>/some/where/procmail -a "$EXTENSION"</tt>
</ul>

<hr>
07070100032890000081a40000000000000002000000013ac038b6000004d2000000200000000000000000000000000000002f00000003reloc/postfix/help/opt_mailbox_command.sv.html    <header>Externt kommando ist鋖let f鰎 s鋘dning till brevl錮a</header>

<center><tt>mailbox_command</tt></center>
<hr>

Denna parameter anger ett externt kommando som ska k鰎as ist鋖let
f鰎 att e-post ska s鋘das till brevl錮an. Kommandot k鰎s som mottagaren med
riktiga <tt>HOME</tt>-, <tt>SHELL</tt>- och <tt>LOGNAME</tt>-milj鰅nst鋖lningar.
Ett undantag 鋜 att e-post till <tt>root</tt> k鰎s som <tt>$default_user</tt>.

<p>講riga omgivningsvariabler av intresse: <tt>USER</tt> (mottagarens anv鋘darnamn),
<tt>EXTENSION</tt> (adress鋘delse), <tt>DOMAIN</tt> (dom鋘delen av adressen),
och <tt>LOCAL</tt> (den lokala delen av adressen).

<p>Till skillnad fr錸 鰒riga Postfix-konfigurationsparametrar p鍁erkas inte denna
parameter av parametersubstitutioner. Detta beteende g鰎 det l鋞tare att ange
skalsyntax (se exempel nedan).

<p>Undvik metatecken eftersom de kommer att tvinga Postfix att k鰎a en tung
skalprocess. <tt>Procmail</tt> 鋜 i sig tillr鋍kligt tungt.

<p><b>Om detta anv鋘ds f鰎 att s鋘da e-post 鰒er hela systemet, m錽te ett alias
s鋞tas upp som skickar vidare roots e-post till en riktig anv鋘dare.</b>

<p>Exempel:
<ul>
<li><tt>/some/where/procmail</tt> 
<li><tt>/some/where/procmail -a "$EXTENSION"</tt>
</ul>

<hr>
  07070100032891000081a40000000000000002000000013ac038b400000178000000200000000000000000000000000000002e00000003reloc/postfix/help/opt_mailbox_transport.html <header>Optional actual transport to use</header>

<center><tt>mailbox_transport</tt></center>
<hr>

This parameter specifies the optional transport (in <tt>master.cf</tt>)
to use after processing aliases and <tt>.forward</tt> files.

<p>

This parameter has precedence over the <tt>mailbox_command</tt>,
<tt>fallback_transport</tt> and <tt>luser_relay</tt> parameters.

<hr>
070701000328ba000081a40000000000000002000000013ac038b60000016c000000200000000000000000000000000000003100000003reloc/postfix/help/opt_mailbox_transport.sv.html  <header>Valbar verklig transportmetod</header>

<center><tt>mailbox_transport</tt></center>
<hr>

Denna parameter anger en valbar transportmetod (i <tt>master.cf</tt>)
som ska anv鋘das d alias och <tt>.forward</tt>-filer har processats.

<p>Parametern g鋖ler 鰒er parametrarna <tt>mailbox_command</tt>,
<tt>fallback_transport</tt> och <tt>luser_relay</tt>.

<hr>
070701000328bb000081a40000000000000002000000013ac038b4000001e9000000200000000000000000000000000000002d00000003reloc/postfix/help/opt_maps_rbl_domains.html  <header>DNS domains for blacklist lookups</header>

<center><tt>maps_rbl_domains</tt></center>
<hr>

This parameter specifies an optional list of DNS domains that publish the
network addresses of blacklisted hosts.

<p>

By default, RBL blacklist lookups are disabled. See the
<tt>smtpd_client_restrictions</tt> parameter.

<p>

The real-time blackhole list works as follows: reverse the client
network address, and reject service if it is listed below any of
the following domains.

<hr>
   070701000328f9000081a40000000000000002000000013ac038b40000003a000000200000000000000000000000000000002300000003reloc/postfix/help/opt_sample.html    <header></header>

<center><tt></tt></center>
<hr>


<hr>
  070701000328bc000081a40000000000000002000000013ac038b6000001cf000000200000000000000000000000000000003000000003reloc/postfix/help/opt_maps_rbl_domains.sv.html   <header>DNS-dom鋘er f鰎 uppslagning av svartlistning</header>

<center><tt>maps_rbl_domains</tt></center>
<hr>

Denna parameter anger en lista 鰒er DNS-dom鋘er som listar n鋞verksadresser
f鰎 svartlistade datorer.

<p>RBL-svartlistningsuppslagningar 鋜 avslagna som standard. Se parametern
<tt>smtpd_client_restrictions</tt>.

<p>Listan fungerar s h鋜: sl upp klientens
n鋞verksadress och neka den om den finns listan under n錱on av nedanst錯nde dom鋘er.

<hr>
 070701000328bd000081a40000000000000002000000013ac038b40000013e000000200000000000000000000000000000003100000003reloc/postfix/help/opt_maps_rbl_reject_code.html  <header>SMTP server response on RBL domains violation</header>

<center><tt>maps_rbl_reject_code</tt></center>
<hr>

This parameter specifies the SMTP server response when a client violates the
<tt>maps_rbl_domains</tt> restriction.

<p>

Do not change this unless you have a complete understanding of RFC 822.


<hr>
  070701000328be000081a40000000000000002000000013ac038b600000134000000200000000000000000000000000000003400000003reloc/postfix/help/opt_maps_rbl_reject_code.sv.html   <header>SMTP-server錿g鋜d vid RBL-dom鋘鰒ertr鋎else</header>

<center><tt>maps_rbl_reject_code</tt></center>
<hr>

Denna parameter anger hur SMTP-servern ska reagera n鋜 en klient 鰒ertr鋎er
begr鋘sningen <tt>maps_rbl_domains</tt>.

<p>膎dra inte p denna om du inte har f鰎st錿t RFC 822 fullst鋘digt.

<hr>
070701000328bf000081a40000000000000002000000013ac038b40000023d000000200000000000000000000000000000002f00000003reloc/postfix/help/opt_masquerade_domains.html    <header>Address masquerading</header>

<center><tt>masquerade_domains</tt></center>
<hr>

Address masquerading is a method to hide all hosts below a domain behind their
mail gateway, and to make it appear as if the mail comes from the gateway
itself, instead of from individual machines.

<p>

Address masquerading is disabled by default. To enable, specify one or more
domain names separated by whitespace or commas. For example: <tt>$mydomain</tt>
; in this example, addresses of the form <tt>user@host.$mydomain</tt> would be
rewritten to <tt>user@$mydomain</tt>.

<hr>
   070701000328c0000081a40000000000000002000000013ac038b60000022f000000200000000000000000000000000000003200000003reloc/postfix/help/opt_masquerade_domains.sv.html <header>Adressmaskering</header>

<center><tt>masquerade_domains</tt></center>
<hr>

Adressmaskering 鋜 en metod f鰎 att g鰉ma alla datorer under en dom鋘 bakom
deras gateway, och f det att se ut som att all e-post kommer fr錸 gateway
ist鋖let f鰎 fr錸 olika datorer.

<p>Adressmaskeringen 鋜 avslagen som standard. F鰎 att sl p den m錽te du
ange ett eller flera dom鋘namn separerade med blanksteg eller kommatecken.
Exempel: <tt>$mydomain</tt>; i detta exempel skrivs adresser p formen
<tt>user@host.$mydomain</tt> om till <tt>user@$mydomain</tt>.

<hr>
 070701000328c1000081a40000000000000002000000013ac038b400000166000000200000000000000000000000000000003200000003reloc/postfix/help/opt_masquerade_exceptions.html <header> Masquerade exceptions </header>

<center><tt>masquerade_exceptions</tt></center>
<hr>

The masquerade exceptions configuration specifies what user names should not be
subjected to address masquerading. Specify one or more user names separated by
whitespace or commas. For example, <tt>root</tt>.

<p>

By default, Postfix makes no exceptions. 

<hr>  070701000328c2000081a40000000000000002000000013ac038b600000186000000200000000000000000000000000000003500000003reloc/postfix/help/opt_masquerade_exceptions.sv.html  <header>Maskeringsundantag</header>

<center><tt>masquerade_exceptions</tt></center>
<hr>

Inst鋖lningen maskeringsundantag anger de anv鋘darnamn som inte ska uts鋞tas f鰎
adressmaskering. Ange ett eller flera anv鋘darnamn separerade med blanksteg eller
kommatecken, exempelvis <tt>root</tt>.

<p>Standardinst鋖lningen 鋜 att Postfix inte undantar n錱ra anv鋘darnamn fr錸 maskeringen.

<hr>  070701000328c3000081a40000000000000002000000013ac038b40000011a000000200000000000000000000000000000002500000003reloc/postfix/help/opt_max_idle.html  <header>Time to wait for next service request</header>

<center><tt>max_idle</tt></center>
<hr>

This parameter limits the time in seconds that a Postfix daemon process waits
for the next service request before exiting. This parameter is ignored by the
Postfix queue manager.

<hr>
  070701000328c4000081a40000000000000002000000013ac038b600000114000000200000000000000000000000000000002800000003reloc/postfix/help/opt_max_idle.sv.html   <header>V鋘tetid till n鋝ta tj鋘stef鰎fr錱ning</header>

<center><tt>max_idle</tt></center>
<hr>

Denna parameter begr鋘sar tiden (i sekunder) som en Postfix-demonprocess v鋘tar
p n鋝ta tj鋘stef鰎fr錱ning innan den avslutas. Postfix-k鰄anteraren struntar i
parametern.

<hr>
070701000328c5000081a40000000000000002000000013ac038b40000010e000000200000000000000000000000000000002400000003reloc/postfix/help/opt_max_use.html   <header>Max services request handled before exiting</header>

<center><tt>max_use</tt></center>
<hr>

This parameter limits the number of service requests handled
by a Postfix daemon process before exiting. This parameter is
ignored by the Postfix queue manager.


<hr>
  070701000328c6000081a40000000000000002000000013ac038b60000011b000000200000000000000000000000000000002700000003reloc/postfix/help/opt_max_use.sv.html    <header>Maximalt antal behandlade tj鋘stef鰎fr錱ningar f鰎e avslutning</header>

<center><tt>max_use</tt></center>
<hr>

Denna parameter begr鋘sar antalet tj鋘stef鰎fr錱ningar som en
Postfix-demonprocess hanterar innan den avslutas. Postfix-k鰄anteraren
struntar i parametern.

<hr>
 070701000328c7000081a40000000000000002000000013ac038b4000000eb000000200000000000000000000000000000003100000003reloc/postfix/help/opt_maximal_backoff_time.html  <header>Max time between attempts to deliver a deferred message</header>

<center><tt>maximal_backoff_time</tt></center>
<hr>

This parameter specifies the maximal time in seconds between attempts to
deliver a deferred message.


<hr>
 070701000328c8000081a40000000000000002000000013ac038b6000000eb000000200000000000000000000000000000003400000003reloc/postfix/help/opt_maximal_backoff_time.sv.html   <header>Maxtid mellan f鰎s鰇 att s鋘da ett f鰎dr鰆t meddelande</header>

<center><tt>maximal_backoff_time</tt></center>
<hr>

Denna parameter anger maxtiden (i sekunder) mellan tv f鰎s鰇 att s鋘da
ett f鰎dr鰆t e-postmeddelande.

<hr>
 070701000328d1000081a40000000000000002000000013ac038b40000013a000000200000000000000000000000000000002500000003reloc/postfix/help/opt_mydomain.html  <header>Local internet domain name</header>

<center><tt>mydomain</tt></center>
<hr>

The mydomain parameter specifies the local internet domain name. The default is
to use <tt>$myhostname</tt> minus the first component. <tt>$mydomain</tt> is
used as a default value for many other configuration parameters.

<hr>
  070701000328c9000081a40000000000000002000000013ac038b4000000f1000000200000000000000000000000000000003300000003reloc/postfix/help/opt_maximal_queue_lifetime.html    <header>Max time in queue before message is undeliverable</header>

<center><tt>maximal_queue_lifetime</tt></center>
<hr>

This parameter specifies the maximal time in days a message is queued before it
is sent back as undeliverable.


<hr>
   070701000328ca000081a40000000000000002000000013ac038b600000119000000200000000000000000000000000000003600000003reloc/postfix/help/opt_maximal_queue_lifetime.sv.html <header>Maximal k鰐id (dagar) innan meddelandet anses os鋘dbart</header>

<center><tt>maximal_queue_lifetime</tt></center>
<hr>

Denna parameter anger den maximala k鰐iden (i dagar) innan ett e-postmeddelande
skickas tillbaka f鰎 att det inte gick att s鋘da till mottagaren.

<hr>
   070701000328cb000081a40000000000000002000000013ac038b4000000be000000200000000000000000000000000000002f00000003reloc/postfix/help/opt_message_size_limit.html    <header>Max size of a message</header>

<center><tt>message_size_limit</tt></center>
<hr>

This parameter limits the total size in bytes of a message, including envelope
information.


<hr>
  070701000328cc000081a40000000000000002000000013ac038b6000000c6000000200000000000000000000000000000003200000003reloc/postfix/help/opt_message_size_limit.sv.html <header>Maximal meddelandestorlek</header>

<center><tt>message_size_limit</tt></center>
<hr>

Denna parameter begr鋘sar den totala meddelandestorleken (i byte), inklusive
omslagsinformation.

<hr>
  070701000328cd000081a40000000000000002000000013ac038b400000169000000200000000000000000000000000000003100000003reloc/postfix/help/opt_minimal_backoff_time.html  <header>Min time between attempts to deliver a deferred message</header>

<center><tt>minimal_backoff_time</tt></center>
<hr>

This parameter specifies the minimal time in seconds between attempts to
deliver a deferred message. This parameter also limits the time an unreachable
destination is kept in the short-term, in-memory destination status cache.


<hr>
   070701000328ce000081a40000000000000002000000013ac038b600000165000000200000000000000000000000000000003400000003reloc/postfix/help/opt_minimal_backoff_time.sv.html   <header>Minsta tid mellan f鰎s鰇 att s鋘da ett f鰎dr鰆t meddelande</header>

<center><tt>minimal_backoff_time</tt></center>
<hr>

Denna parameter anger den minimala tiden (i sekunder) mellan tv f鰎s鰇 att
s鋘da ett f鰎dr鰆t e-postmeddelande. Parametern begr鋘sar ocks tiden som en
on錬ar destination h錶ls i korttidsminnets destinationsstatuscache.

<hr>
   070701000328cf000081a40000000000000002000000013ac038b400000354000000200000000000000000000000000000002a00000003reloc/postfix/help/opt_mydestination.html <header>What domain to receive mail for</header>

<center><tt>mydestination</tt></center>
<hr>

You specify what domains this machine will deliver locally, instead of
forwarding to another machine. The default is to receive mail for the machine
itself.

<p>

<b>Local machine</b>: <tt>$myhostname, localhost.$mydomain</tt>
<br>
<b>Whole Domain</b>: <tt>$myhostname, localhost.$mydomain,
$mydomain</tt>

<p>

You can also specify the full path of a file, which will contain the names of
domains that this machine will deliver mail locally for.

<p>

Example: <tt>/etc/postfix/mydestination</tt>

<hr>
<br>

<b><u>Caution:</u></b> in order to avoid mail delivery loops, you must list all
hostnames of the machine, including <tt>$myhostname</tt>, and
<tt>localhost.$mydomain</tt>. DO NOT LIST VIRTUAL DOMAINS HERE. LIST THEM IN
THE VIRTUAL FILE INSTEAD.

070701000328d0000081a40000000000000002000000013ac038b600000337000000200000000000000000000000000000002d00000003reloc/postfix/help/opt_mydestination.sv.html  <header>Ta emot e-post f鰎 dessa dom鋘er</header>

<center><tt>mydestination</tt></center>
<hr>

Ange de dom鋘er som denna maskin ska skicka till lokalt ist鋖let f鰎 att s鋘da
vidare till en annan maskin. Standard 鋜 att ta emot e-post till maskinen sj鋖v.

<p><b>Lokal dator</b>: <tt>$myhostname, localhost.$mydomain</tt>
<br><b>Hela dom鋘en</b>: <tt>$myhostname, localhost.$mydomain, $mydomain</tt>

<p>Man kan ocks ange en fullst鋘dig s鰇v鋑 till en fil som inneh錶ler namn p
de dom鋘er som denna maskin ska skicka e-post lokalt f鰎.

<p>Exempel: <tt>/etc/postfix/mydestination</tt>

<hr>
<p><b><u>Varning:</u></b> f鰎 att undvika e-postloopar m錽te alla namn p maskinen,
inklusive <tt>$myhostname</tt> och <tt>localhost.$mydomain</tt> r鋕nas upp.
<b>R鋕na inte upp virtuella dom鋘er h鋜, utan i virtuell-filen.</b>

 070701000328d2000081a40000000000000002000000013ac038b600000127000000200000000000000000000000000000002800000003reloc/postfix/help/opt_mydomain.sv.html   <header>Lokalt internetdom鋘namn</header>

<center><tt>mydomain</tt></center>
<hr>

Parametern mydomain anger det lokala internetdom鋘namnet. Standardv鋜det 鋜
<tt>$myhostname</tt> minus den f鰎sta delen. <tt>$mydomain</tt> anv鋘ds
som standardv鋜de p m錸ga andra inst鋖lningsparametrar.

<hr>
 070701000328d3000081a40000000000000002000000013ac038b400000160000000200000000000000000000000000000002700000003reloc/postfix/help/opt_myhostname.html    <header>Internet hostname of this mail system</header>

<center><tt>myhostname</tt></center>
<hr>

This parameter specifies the internet hostname of this mail system. The default
is to use the fully-qualified domain name from <tt>gethostname()</tt>.

<p>

<tt>$myhostname</tt> is used as a default value for many other configuration
parameters.


<hr>
070701000328d4000081a40000000000000002000000013ac038b60000015e000000200000000000000000000000000000002a00000003reloc/postfix/help/opt_myhostname.sv.html <header>Internet-datornamn f鰎 detta e-postsystem</header>

<center><tt>myhostname</tt></center>
<hr>

Denna parameter anger internet-datornamnet f鰎 detta e-postsystem.
Standardv鋜det 鋜 att ta det fullst鋘diga dom鋘namnet fr錸 <tt>gethostname()</tt>.

<p><tt>$myhostname</tt> anv鋘ds som standardv鋜de f鰎 m錸ga andra inst鋖lningsparametrar.

<hr>
  070701000328d5000081a40000000000000002000000013ac038b4000002f9000000200000000000000000000000000000002700000003reloc/postfix/help/opt_mynetworks.html    <header>Local networks</header>

<center><tt>mynetworks</tt></center>
<hr>

This parameter specifies the list of networks that are local to this machine.
The list is used by the anti-UCE software to distinguish local clients from
strangers. See <tt>permit_mynetworks</tt> and
<tt>smtpd_recipient_restrictions</tt> in the SMTP configuration.

<p>

The default is a list of all networks attached to the machine: a complete class
A network (X.0.0.0/8), a complete class B network (X.X.0.0/16), and so on. If
you want stricter control, specify a list of network/mask patterns, where the
mask specifies the number of bits in the network part of a host address. You
can also specify the absolute pathname of a pattern file instead of listing the
patterns here.

<hr>
   070701000328d6000081a40000000000000002000000013ac038b6000002db000000200000000000000000000000000000002a00000003reloc/postfix/help/opt_mynetworks.sv.html <header>Lokala n鋞verk</header>

<center><tt>mynetworks</tt></center>
<hr>

Denna parameter anger en lista 鰒er lokala n鋞verk f鰎 denna dator. Listan anv鋘ds
av anti-UCE-program f鰎 att s鋜skilja lokala klienter fr錸 andra. Se
<tt>permit_mynetworks</tt> och <tt>smtpd_recipient_restrictions</tt> i
SMTP-konfigurationen.

<p>Standardv鋜det 鋜 en lista 鰒er alla n鋞verk som 鋜 kopplade till datorn:
ett komplett klass A-n鋞verk (X.0.0.0/8), ett klass B-n鋞verk (X.X.0.0/16) osv.
Om man vill ha mer kontroll g錼 det att ange en lista med n鋞verk/mask-m鰊ster,
d鋜 masken anger antalet bitar i n鋞verksdelen av datoradressen. Det g錼 ocks att
ange en absolut s鰇v鋑 till en m鰊sterfil ist鋖let f鰎 att r鋕na upp m鰊stren h鋜.

<hr>
 070701000328d7000081a40000000000000002000000013ac038b4000001b0000000200000000000000000000000000000002500000003reloc/postfix/help/opt_myorigin.html  <header>What domain to use in outbound mail</header>

<center><tt>myorigin</tt></center>
<hr>

You specify the domain that appears in mail that is posted on this machine. The
default configuration of Postfix is to use the local machine name,
<tt>hostname</tt>.

<p>

Unless you are running a really small site, you probably want to change that
into <tt>domainname</tt>, which defaults to the parent domain of the machine
name.

<hr>070701000328d8000081a40000000000000002000000013ac038b600000194000000200000000000000000000000000000002800000003reloc/postfix/help/opt_myorigin.sv.html   <header>Dom鋘 som ska anv鋘das i utg錯nde e-post</header>

<center><tt>myorigin</tt></center>
<hr>

Ange den dom鋘 som ska synas i e-post som s鋘ds fr錸 denna dator. Standardkonfigurationen
i Postfix 鋜 att anv鋘da den lokala datorns namn, <tt>hostname</tt>.

<p>Om din site inte 鋜 v鋖digt liten vill du antagligen 鋘dra detta till
<tt>domainname</tt>, som tar datorns dom鋘namn som standardv鋜de.

<hr>070701000328d9000081a40000000000000002000000013ac038b4000005ee000000200000000000000000000000000000002b00000003reloc/postfix/help/opt_notify_classes.html    <header>What trouble to report to the postmaster</header>

<center><tt>notify_classes</tt></center>
<hr>

You should set up a <b>postmaster</b> alias that points to a human person. This
alias is required to exist, so that people can report mail delivery problems.

<p>

The Postfix system itself also reports problems to the postmaster alias. You
may not be interested in all types of trouble reports, so this reporting
mechanism is configurable. The default is to report only serious problems
(resource, software) to postmaster:

<p>

<b>Default:</b> <tt>resource, software</tt>

<p>

The meaning of the classes is as follows: 

<ul>
<li><tt>bounce:</tt> Send postmaster copies of undeliverable mail.
<li><tt>2bounce:</tt> Send double bounces to the postmaster. 
<li><tt>delay:</tt> Inform the postmaster of delayed mail. In this case, the postmaster
receives message headers only.
<li><tt>policy:</tt> Inform the postmaster of client requests that were rejected because of (UCE) policy restrictions. The postmaster receives a transcript of the entire SMTP session. 
<li><tt>protocol:</tt> Inform the postmaster of protocol errors (client or server side)
or attempts by a client to execute unimplemented commands. The postmaster
receives a transcript of the entire SMTP session.
<li><tt>resource:</tt> Inform the postmaster of mail not delivered due to resource
problems (for example, queue file write errors). 
<li><tt>software:</tt> Inform the postmaster of mail not delivered due to software
problems. 
</ul>

<hr>  070701000328da000081a40000000000000002000000013ac038b6000005d9000000200000000000000000000000000000002e00000003reloc/postfix/help/opt_notify_classes.sv.html <header>Problem som ska rapporteras till postmaster</header>

<center><tt>notify_classes</tt></center>
<hr>

Du b鰎 s鋞ta upp aliaset <b>postmaster</b> som pekar p en verklig person.
Detta alias m錽te finnas, s att folk kan rapportera sina e-postproblem.

<p>Postfix-systemet rapporterar ocks problem till postmaster. Det 鋜 m鰆ligt
att alla sorters problemrapporter inte 鋜 intressanta och d鋜f鰎 g錼 denna
rapportering att konfigurera. Som standard rapporteras endast allvarliga
(resurs-, program-) problem till postmaster:

<p><b>Standard:</b> <tt>resource, software</tt>

<p>De olika klasserna har f鰈jande betydelse:

<ul>
<li><tt>bounce:</tt> Skicka kopia till postmaster av e-post som inte kunde skickas.
<li><tt>2bounce:</tt> Skicka dubbelstudsar till postmaster. 
<li><tt>delay:</tt> Informera postmaster om f鰎dr鰆d e-post. I detta fall skickas endast e-posthuvudena.
<li><tt>policy:</tt> Informera postmaster om klientf鰎fr錱ningar som 
nekades p grund av (UCE-)policybegr鋘sningar. Postmaster f錼 ett sammandrag av hela SMTP-sessionen.
<li><tt>protocol:</tt> Informera postmaster om protokollfel (p klient- eller serversidan) eller
klientf鰎s鰇 att utf鰎a kommandon som inte finns. Postmaster f錼 ett sammandrag av hela
SMTP-sessionen.
<li><tt>resource:</tt> Informera postmaster om e-post som inte s鋘ts p grund av resursproblem
(exempelvis fel vid skrivning till k鰂ilen).
<li><tt>software:</tt> Informera postmaster om e-post som inte s鋘ts p grund av programfel.
</ul>

<hr>   070701000328db000081a40000000000000002000000013ac038b4000001b0000000200000000000000000000000000000003500000003reloc/postfix/help/opt_prepend_delivered_header.html  <header>Prepend a Delivered-To: when...</header>

<center><tt>prepend_delivered_header</tt></center>
<hr>

This parameter controls when Postfix should prepend a <tt>Delivered-To:</tt>
message header.

<p>

By default, Postfix prepends a <tt>Delivered-To:</tt> header when forwarding
mail and when delivering to file (mailbox) and command. Turning off
the <tt>Delivered-To:</tt> header when forwarding mail is not recommended.

<hr>
070701000328dc000081a40000000000000002000000013ac038b6000001c3000000200000000000000000000000000000003800000003reloc/postfix/help/opt_prepend_delivered_header.sv.html   <header>L鋑g till Delivered-To: n鋜 ...</header>

<center><tt>prepend_delivered_header</tt></center>
<hr>

Denna parameter styr n鋜 Postfix ska l鋑ga till ett <tt>Delivered-To:</tt>-huvud.

<p>Standardinst鋖lningen 鋜 att Postfix l鋑ger till ett <tt>Delivered-To:</tt>-huvud
n鋜 e-post skickas vidare och n鋜 e-post skickas till fil (brevl錮a) och kommando.
Det 鋜 inte en god id att sl av <tt>Delivered-To:</tt> vid vidares鋘dning av e-post.

<hr>
 070701000328dd000081a40000000000000002000000013ac038b40000010f000000200000000000000000000000000000003100000003reloc/postfix/help/opt_process_id_directory.html  <header>Lock file dir, relative to queue dir</header>

<center><tt>process_id_directory</tt></center>
<hr>

Specify a lock file directory relative to the Postfix queue directory. This
facility is used by the master daemon to lock out other master daemon
instances.

<hr>
 070701000328de000081a40000000000000002000000013ac038b6000000e8000000200000000000000000000000000000003400000003reloc/postfix/help/opt_process_id_directory.sv.html   <header>L錽filskatalog, relativt k鰇atalog</header>

<center><tt>process_id_directory</tt></center>
<hr>

Ange en l錽filskatalog relativt Postfix k鰇atalog. Detta anv鋘ds av
masterdemonen f鰎 att l錽a andra masterdemoner ute.

<hr>
070701000328df000081a40000000000000002000000013ac038b4000000f2000000200000000000000000000000000000002e00000003reloc/postfix/help/opt_program_directory.html <header>Postfix support programs and daemons dir</header>

<center><tt>program_directory</tt></center>
<hr>

This parameter specifies the location of Postfix support programs and daemons.
This directory must be owned by <tt>root</tt>.


<hr>
  070701000328e0000081a40000000000000002000000013ac038b6000000dd000000200000000000000000000000000000003100000003reloc/postfix/help/opt_program_directory.sv.html  <header>Postfix st鰀program- och demonkatalog</header>

<center><tt>program_directory</tt></center>
<hr>

Denna parameter anger var st鰀program och demoner till Postfix finns. Katalogen
m錽te 鋑as av <tt>root</tt>.

<hr>
   070701000328e1000081a40000000000000002000000013ac038b4000000bf000000200000000000000000000000000000003600000003reloc/postfix/help/opt_qmgr_message_active_limit.html <header>Max number of messages in the active queue</header>

<center><tt>qmgr_message_active_limit</tt></center>
<hr>

This parameter limits the number of messages in the active queue.

<hr>
 070701000328e2000081a40000000000000002000000013ac038b6000000be000000200000000000000000000000000000003900000003reloc/postfix/help/opt_qmgr_message_active_limit.sv.html  <header>Maximalt antal meddelanden i den aktiva k鰊</header>

<center><tt>qmgr_message_active_limit</tt></center>
<hr>

Denna parameter begr鋘sar antalet meddelanden i den aktiva k鰊.

<hr>
  070701000328e3000081a40000000000000002000000013ac038b40000010e000000200000000000000000000000000000003900000003reloc/postfix/help/opt_qmgr_message_recipient_limit.html  <header>Max number of in-memory recipients</header>

<center><tt>qmgr_message_recipient_limit</tt></center>
<hr>

This parameter limits the number of in-memory recipients. This parameter also
limits the size of the short-term, in-memory destination status cache.


<hr>
  070701000328e4000081a40000000000000002000000013ac038b600000101000000200000000000000000000000000000003c00000003reloc/postfix/help/opt_qmgr_message_recipient_limit.sv.html   <header>Maximalt antal mottagare i minnet</header>

<center><tt>qmgr_message_recipient_limit</tt></center>
<hr>

Denna parameter begr鋘sar antalet mottagare som h錶ls i minnet. Den
begr鋘sar ocks storleken p korttidsminnets destinationsstatuscache.

<hr>
   070701000328e5000081a40000000000000002000000013ac038b4000000e8000000200000000000000000000000000000002c00000003reloc/postfix/help/opt_queue_directory.html   <header>Mail queue directory</header>

<center><tt>queue_directory</tt></center>
<hr>

The mail queue directory specifies the location of the Postfix queue. This is
also the root directory of Postfix daemons that run chrooted.

<hr>070701000328e6000081a40000000000000002000000013ac038b6000000ca000000200000000000000000000000000000002f00000003reloc/postfix/help/opt_queue_directory.sv.html    <header>K鰇atalog f鰎 e-post</header>

<center><tt>queue_directory</tt></center>
<hr>

K鰇atalogen anger var Postfix-k鰊 finns. Katalogen 鋜 ocks rotkatalog
f鰎 Postfix-demoner som k鰎 chrootade.

<hr>  070701000328e7000081a40000000000000002000000013ac038b400000122000000200000000000000000000000000000002a00000003reloc/postfix/help/opt_queue_minfree.html <header>Min free space in the queue file system</header>

<center><tt>queue_minfree</tt></center>
<hr>

This parameter specifies the minimal amount of free space in bytes in the queue
file system. This is currently used by the SMTP server to decide if it will
accept any mail at all.

<hr>
  070701000328e8000081a40000000000000002000000013ac038b60000011d000000200000000000000000000000000000002d00000003reloc/postfix/help/opt_queue_minfree.sv.html  <header>Minsta lediga utrymme i k鰂ilsystemet</header>

<center><tt>queue_minfree</tt></center>
<hr>

Denna parameter anger minsta lediga utrymme (i byte) i k鰂ilsystemet. Detta
anv鋘ds f鰎 n鋜varande av SMTP-servern f鰎 att best鋗ma om n錱on e-post 鰒erhuvudtaget
ska tas emot.

<hr>
   070701000328e9000081a40000000000000002000000013ac038b4000000d9000000200000000000000000000000000000002c00000003reloc/postfix/help/opt_queue_run_delay.html   <header>Time (secs) between scanning the deferred queue</header>

<center><tt>queue_run_delay</tt></center>
<hr>

This parameter specifies the time in seconds between deferred queue scans by
the queue manager.


<hr>
   070701000328ea000081a40000000000000002000000013ac038b6000000e8000000200000000000000000000000000000002f00000003reloc/postfix/help/opt_queue_run_delay.sv.html    <header>Tid (s) mellan l鋝ningar av f鰎dr鰆ningsk鰊</header>

<center><tt>queue_run_delay</tt></center>
<hr>

Denna parameter anger tiden (i sekunder) som k鰄anteraren v鋘tar mellan l鋝ningar
av k鰊 med f鰎dr鰆da meddelanden.

<hr>
070701000328eb000081a40000000000000002000000013ac038b400000175000000200000000000000000000000000000003500000003reloc/postfix/help/opt_recipient_canonical_maps.html  <header>Tables for RECIPIENT addresses</header>

<center><tt>recipient_canonical_maps</tt></center>
<hr>

This parameter specifies optional address mapping lookup tables for envelope
and header RECIPIENT addresses.

<p>

By default, no recipient-only address mapping is done.

<p>

<tt>$recipient_canonical_maps</tt> is used before <tt>$canonical_maps</tt>
lookups.


<hr>
   070701000328ec000081a40000000000000002000000013ac038b60000018a000000200000000000000000000000000000003800000003reloc/postfix/help/opt_recipient_canonical_maps.sv.html   <header>Tabeller med mottagaradresser</header>

<center><tt>recipient_canonical_maps</tt></center>
<hr>

Denna parameter anger alternativa tabeller f鰎 adress鰒ers鋞tningar av omslags-
och huvudmottagaradresser.

<p>Standardinst鋖lningen 鋜 att ingen adress鰒ers鋞tning av Endast mottagare g鰎s.

<p><tt>$recipient_canonical_maps</tt> anv鋘ds f鰎e <tt>$canonical_maps</tt>-uppslagningar.

<hr>
  070701000328ed000081a40000000000000002000000013ac038b4000001fa000000200000000000000000000000000000003000000003reloc/postfix/help/opt_recipient_delimiter.html   <header>Separator between user names and address extensions</header>

<center><tt>recipient_delimiter</tt></center>
<hr>

This parameter specifies the separator between user names and address
extensions (<tt>user+foo</tt>). See canonical(5), local(8), relocated(5) and
virtual(5) for the effects this has on aliases, canonical, virtual, relocated
and <tt>.forward</tt> file lookups. Basically, the software tries
<tt>user+foo</tt> and <tt>.forward+foo</tt> before trying user and
<tt>.forward</tt>.


<hr>
  070701000328ee000081a40000000000000002000000013ac038b600000208000000200000000000000000000000000000003300000003reloc/postfix/help/opt_recipient_delimiter.sv.html    <header>Separator mellan anv鋘darnamn och adress鋘delser</header>

<center><tt>recipient_delimiter</tt></center>
<hr>

Denna parameter anger den separator som anv鋘ds mellan anv鋘darnamn och
adress鋘delser (<tt>user+foo</tt>). Se canonical(5), local(8), relocated(5) och
virtual(5) f鰎 information om vilka f鰈jder detta har f鰎 alias, kanoniska, virtuella,
omstyrda och <tt>.forward</tt>-filuppslagningar. Normalt testar programmet
<tt>user+foo</tt> och <tt>.forward+foo</tt> innan user <tt>.forward</tt> testas.

<hr>
070701000328ef000081a40000000000000002000000013ac038b400000122000000200000000000000000000000000000002800000003reloc/postfix/help/opt_reject_code.html   <header>SMTP server response on client reject</header>

<center><tt>reject_code</tt></center>
<hr>

This parameter specifies the SMTP server response code when an SMTP client
matches a reject restriction.

<p>

Do not change this unless you have a complete understanding of RFC 822.


<hr>
  070701000328f0000081a40000000000000002000000013ac038b60000010f000000200000000000000000000000000000002b00000003reloc/postfix/help/opt_reject_code.sv.html    <header>SMTP-server錿g鋜d vid klientsp鋜r</header>

<center><tt>reject_code</tt></center>
<hr>

Denna parameter anger hur SMTP-servern ska reagera n鋜 en SMTP-klient matchar
en sp鋜rbegr鋘sning.

<p>膎dra inte p denna om du inte har f鰎st錿t RFC 822 fullst鋘digt.

<hr>
 070701000328f1000081a40000000000000002000000013ac038b400000610000000200000000000000000000000000000002a00000003reloc/postfix/help/opt_relay_domains.html <header>Restrict mail relaying</header>

<center><tt>relay_domains</tt></center>
<hr>

This parameter restricts what client hostname domains (and subdomains thereof)
this mail system will relay mail from, and restricts what destination domains
(and subdomains thereof) this system will relay mail to.

<p>

By default, Postfix relays mail:

<ul>
<li> from trusted clients whose IP address matches <tt>$mynetworks</tt>,
<li> from trusted clients matching <tt>$relay_domains</tt> or subdomains thereof,
<li> from untrusted clients to destinations that match <tt>$relay_domains</tt>
     or subdomains thereof, except addresses with sender-specified routing.
</ul>

The default <tt>relay_domains</tt> value is <tt>$mydestination</tt>.

<p>

In addition to the above, the Postfix SMTP server by default accepts mail
that Postfix is final destination for:

<ul>
<li> destinations that match <tt>$inet_interfaces</tt>,
<li> destinations that match <tt>$mydestination</tt>
<li> destinations that match <tt>$virtual_maps</tt>.
</ul>

<p>

Specify a list of hosts or domains, <tt>/file/name</tt> patterns or
<tt>type:name</tt> lookup tables, separated by commas and/or whitespace. A file
name is replaced by its contents; a <tt>type:name</tt> table is matched when a
(parent) domain appears as lookup key.

<p>

NOTE: Postfix will not automatically forward mail for domains that list this
system as their primary or backup MX host. See the <tt>permit_mx_backup</tt>
restriction, in the description of the <tt>smtpd_recipient_restrictions</tt>
parameter.


<hr>
070701000328f2000081a40000000000000002000000013ac038b600000622000000200000000000000000000000000000002d00000003reloc/postfix/help/opt_relay_domains.sv.html  <header>Begr鋘sa e-post-vidares鋘dning</header>

<center><tt>relay_domains</tt></center>
<hr>

Denna parameter anger de klientdom鋘er (med underdom鋘er) som detta e-postsystem
s鋘der vidare e-post fr錸, och anger de destinationsdom鋘er (med underdom鋘er)
som systemet s鋘der vidare e-post till.

<p>Standardinst鋖lningen 鋜 att Postfix s鋘der vidare e-post:

<ul>
<li> fr錸 betrodda klienter vars IP-adress matchar <tt>$mynetworks</tt>,
<li> fr錸 betrodda klienter som matchar <tt>$relay_domains</tt> med underdom鋘er,
<li> fr錸 ej betrodda klienter till destinationer som matchar <tt>$relay_domains</tt>
     med underdom鋘er, f鰎utom adresser med avs鋘darangiven routing.
</ul>

Standardv鋜det p <tt>relay_domains</tt> 鋜 <tt>$mydestination</tt>.

<p>F鰎utom ovanst錯nde tar SMTP-servern i Postfix emot e-post d鋜 Postfix 鋜
slutlig destination:

<ul>
<li> destinationer som matchar <tt>$inet_interfaces</tt>,
<li> destinationer som matchar <tt>$mydestination</tt>
<li> destinationer som matchar <tt>$virtual_maps</tt>.
</ul>

<p>Ange en lista 鰒er datorer eller dom鋘er, <tt>/fil/namn</tt>-m鰊ster eller
<tt>type:name</tt>-uppslagningstabeller, separerade med kommatecken och/eller blanksteg.
Ett filnamn ers鋞ts med filens inneh錶l; en <tt>type:name</tt>-tabell matchar d en
(f鰎鋖dra-)dom鋘 鋜 uppslagsnyckel.

<p>OBS: Postfix kommer inte automatiskt att s鋘da vidare e-post till dom鋘er
som anger detta system som prim鋜 eller backup-MX-dator. Se restriktionen
<tt>permit_mx_backup</tt> i beskrivningen av parametern <tt>smtpd_recipient_restrictions</tt>.

<hr>
  070701000328f3000081a40000000000000002000000013ac038b400000137000000200000000000000000000000000000003600000003reloc/postfix/help/opt_relay_domains_reject_code.html <header>SMTP server response on forbidden relaying</header>

<center><tt>relay_domains_reject_code</tt></center>
<hr>

This parameter specifies the SMTP server response when a client attempts to
violate the mail relay policy.

<p>

Do not change this unless you have a complete understanding of RFC 822.


<hr>
 070701000328f4000081a40000000000000002000000013ac038b600000141000000200000000000000000000000000000003900000003reloc/postfix/help/opt_relay_domains_reject_code.sv.html  <header>SMTP-server錿g鋜d vid f鰎bjuden vidares鋘dning</header>

<center><tt>relay_domains_reject_code</tt></center>
<hr>

Denna parameter anger hur SMTP-servern ska reagera n鋜 en klient f鰎s鰇er
bryta mot policyn f鰎 vidares鋘dning av e-post.

<p>膎dra inte p denna om du inte har f鰎st錿t RFC 822 fullst鋘digt.

<hr>
   070701000328f5000081a40000000000000002000000013ac038b40000024b000000200000000000000000000000000000002600000003reloc/postfix/help/opt_relayhost.html <header>Send outgoing mail via host</header>

<center><tt>relayhost</tt></center>
<hr>

Typically, you use <tt>Deliver directly</tt> so that Postfix will forward any
outgoing mail not destined for users of your system to the given host.

<p>

If you want to forward all mail to an intranet <b>mail gateway</b> (for example
if your intranet has a firewall), except for mail for the local machine, you
will setup the value to your mail gateway. Most of the time, organization has
set up internal MX records, so using directly your domain name will bind to the
mail gateway machine.

<hr>

 070701000328f6000081a40000000000000002000000013ac038b60000023e000000200000000000000000000000000000002900000003reloc/postfix/help/opt_relayhost.sv.html  <header>Skicka utg錯nde e-post via dator</header>

<center><tt>relayhost</tt></center>
<hr>

Vanligtvis anv鋘ds <tt>Skicka direkt</tt> s att Postfix skickar utg錯nde e-post
som inte ska till anv鋘dare p detta system direkt till angiven dator.

<p>Om du vill skicka all e-post vidare till en intranet-<b>mail gateway</b>
(om ditt intranet till exempel har en brandv鋑g), utom e-post till lokala maskiner,
anger du h鋜 din mail gateway. F鰎 det mesta 鋜 de interna MX-posterna uppsatta s
att post som skickas direkt till dom鋘namnet kommer till mail gateway-datorn.

<hr>

  070701000328f7000081a40000000000000002000000013ac038b400000184000000200000000000000000000000000000002b00000003reloc/postfix/help/opt_relocated_maps.html    <header>&quot;User has move to new location&quot; tables</header>

<center><tt>relocated_maps</tt></center>
<hr>

This parameter specifies optional tables with contact information for users,
hosts or domains that no longer exist. See <tt>relocated(5)</tt> for details.

<p>

By default, this feature is disabled. 

<p>

Sensible possible value: <tt>hash:/etc/postfix/relocated</tt>

<hr>
070701000328f8000081a40000000000000002000000013ac038b600000179000000200000000000000000000000000000002e00000003reloc/postfix/help/opt_relocated_maps.sv.html <header>&quot;Anv鋘daren har flyttat&quot;-tabeller</header>

<center><tt>relocated_maps</tt></center>
<hr>

Denna parameter anger tabeller med kontaktinformation f鰎 anv鋘dare, datorer och
dom鋘er som inte l鋘gre finns. Se <tt>relocated(5)</tt> f鰎 mer information.

<p>Denna inst鋖lning 鋜 avslagen som standard.

<p>Vettigt v鋜de: <tt>hash:/etc/postfix/relocated</tt>

<hr>
   0707010003298d000081a40000000000000002000000013ac038b60000003a000000200000000000000000000000000000002600000003reloc/postfix/help/opt_sample.sv.html <header></header>

<center><tt></tt></center>
<hr>


<hr>
  0707010003298e000081a40000000000000002000000013ac038b400000166000000200000000000000000000000000000003200000003reloc/postfix/help/opt_sender_canonical_maps.html <header>Tables for SENDER addresses</header>

<center><tt>sender_canonical_maps</tt></center>
<hr>

This parameter specifies optional address mapping lookup tables for envelope
and header SENDER addresses.

<p>

By default, no sender-only address mapping is done.

<p>

<tt>$sender_canonical_maps</tt> is used before <tt>$canonical_maps</tt>
lookups.


<hr>
  0707010003298f000081a40000000000000002000000013ac038b600000184000000200000000000000000000000000000003500000003reloc/postfix/help/opt_sender_canonical_maps.sv.html  <header>Tabeller med avs鋘daradresser</header>

<center><tt>sender_canonical_maps</tt></center>
<hr>

Denna parameter anger alternativa tabeller f鰎 adress鰒ers鋞tningar av omslags-
och huvudavs鋘daradresser.

<p>Standardinst鋖lningen 鋜 att ingen adress鰒ers鋞tning av Endast avs鋘dare g鰎s.

<p><tt>$sender_canonical_maps</tt> anv鋘ds f鰎e <tt>$canonical_maps</tt>-uppslagningar.

<hr>
07070100032990000081a40000000000000002000000013ac038b400000171000000200000000000000000000000000000003100000003reloc/postfix/help/opt_smtp_connect_timeout.html  <header>Timeout for completing TCP connections</header>

<center><tt>smtp_connect_timeout</tt></center>
<hr>

This parameter specifies the SMTP client timeout in seconds for completing a
TCP connection.

<p>

When no connection can be made within the deadline, the SMTP client tries the
next address on the mail exchanger list. Specify 0 to disable the timeout.


<hr>
   07070100032991000081a40000000000000002000000013ac038b600000182000000200000000000000000000000000000003400000003reloc/postfix/help/opt_smtp_connect_timeout.sv.html   <header>Tidsgr鋘s f鰎 fullbordande av TCP-uppkopplingar</header>

<center><tt>smtp_connect_timeout</tt></center>
<hr>

Denna parameter anger den tid (i sekunder) som SMTP-klienten har p sig att
fullborda en TCP-uppkoppling.

<p>Om ingen uppkoppling kan g鰎as inom denna tidsgr鋘s f鰎s鰇er SMTP-klienten
med n鋝ta adress p mail exchanger-listan. Ange 0 f鰎 att sl av timeouten.

<hr>
  070701000329d4000081a40000000000000002000000013ac038b5000003e1000000200000000000000000000000000000002200000003reloc/postfix/help/relocated.html <header>Relocated Mapping</header>


The optional relocated file provides the information that is used in &quot;user
has moved to new_location&quot; bounce messages.

<p>

Table lookups are case insensitive.

<p>

The &quot;Maps to...&quot; field specifies contact information such as an email
address, or perhaps a street address or telephone number. It's one of the
following:
<ul>
<li><tt>user@domain</tt>: Matches <tt>user@domain</tt> . This form has precedence over
all other forms.

<li><tt>user</tt>: Matches <tt>user@site</tt> when site is <tt>$myorigin</tt>,
when site is listed in <tt>$mydestination</tt>, or when site is listed in
<tt>$inet_interfaces</tt> .

<li><tt>@domain</tt>: Matches every address in domain. This form has the lowest
precedence.
</ul>

ADDRESS EXTENSION: When the search fails, and the address localpart contains
the optional recipient delimiter (e.g., <tt>user+foo@domain</tt>), the search
is repeated for the unextended address (e.g. <tt>user@domain</tt>).
   07070100032992000081a40000000000000002000000013ac038b4000001e7000000200000000000000000000000000000003300000003reloc/postfix/help/opt_smtp_data_done_timeout.html    <header>Timeout on waiting for answer to ending &quot;.&quot;</header>

<center><tt>smtp_data_done_timeout</tt></center>
<hr>

This parameter specifies the SMTP client timeout in seconds for sending the
SMTP &quot;.&quot;, and for receiving the server response.

<p>

When no response is received within the deadline, a warning is logged that the
mail may be delivered multiple times.

<p>

In case of problems the client does NOT try the next address on the mail
exchanger list.


<hr>
 07070100032993000081a40000000000000002000000013ac038b6000001e5000000200000000000000000000000000000003600000003reloc/postfix/help/opt_smtp_data_done_timeout.sv.html <header>Tidsgr鋘s vid v鋘tan p svar p avslutande &quot;.&quot;</header>

<center><tt>smtp_data_done_timeout</tt></center>
<hr>

Denna parameter anger den tid (i sekunder) som SMTP-klienten har p sig f鰎
att skicka SMTP &quot;.&quot; och f鰎 att ta emot serversvaret.

<p>Om inget svar tas emot inom tidsgr鋘sen loggas en varning om att
e-postmeddelanden kan komma att skickas flera g錸ger.

<p>Vid problem kommer klienten INTE att testa n鋝ta adress p
mail exchanger-listan.

<hr>
   07070100032994000081a40000000000000002000000013ac038b40000015b000000200000000000000000000000000000003300000003reloc/postfix/help/opt_smtp_data_init_timeout.html    <header>Timeout on waiting for answer to DATA</header>

<center><tt>smtp_data_init_timeout</tt></center>
<hr>

This parameter specifies the SMTP client timeout in seconds for sending the
SMTP DATA command, and for receiving the server response.

<p>

In case of problems the client does NOT try the next address on
the mail exchanger list.


<hr>
 07070100032995000081a40000000000000002000000013ac038b600000158000000200000000000000000000000000000003600000003reloc/postfix/help/opt_smtp_data_init_timeout.sv.html <header>Tidsgr鋘s f鰎 svar p DATA</header>

<center><tt>smtp_data_init_timeout</tt></center>
<hr>

Denna parameter anger hur l錸g tid (i sekunder) som SMTP-klienten har
p sig f鰎 att skicka kommandot SMTP DATA och f鰎 att f svar fr錸 servern.

<p>Om problem uppst錼 kommer klienten INTE att testa n鋝ta adress
i mail exchanger-listan.

<hr>
07070100032996000081a40000000000000002000000013ac038b4000001c0000000200000000000000000000000000000003300000003reloc/postfix/help/opt_smtp_data_xfer_timeout.html    <header>Timeout on waiting for answer to transmit of message content</header>

<center><tt>smtp_data_xfer_timeout</tt></center>
<hr>

This parameter specifies the SMTP client timeout in seconds for sending the
SMTP message content. When the connection stalls for more than
<tt>$smtp_data_xfer_timeout</tt> the SMTP client terminates the transfer.

<p>

In case of problems the client does NOT try the next address on the mail
exchanger list.

<hr>
07070100032997000081a40000000000000002000000013ac038b6000001b8000000200000000000000000000000000000003600000003reloc/postfix/help/opt_smtp_data_xfer_timeout.sv.html <header>Tidsgr鋘s f鰎 svar p meddelande鰒erf鰎ing</header>

<center><tt>smtp_data_xfer_timeout</tt></center>
<hr>

Denna parameter anger hur l錸g tid (i sekunder) som SMTP-klienten har p
sig att skicka inneh錶let i SMTP-meddelandet. Om f鰎bindelsen h鋘ger sig
l鋘gre 鋘 <tt>$smtp_data_xfer_timeout</tt> avbryter SMTP-klienten
鰒erf鰎ingen.

<p>Om problem uppst錼 kommer klienten INTE att testa n鋝ta adress i
mail exchanger-listan.

<hr>
07070100032998000081a40000000000000002000000013ac038b400000191000000200000000000000000000000000000003f00000003reloc/postfix/help/opt_smtp_destination_concurrency_limit.html    <header>Max number of parallel deliveries to the same destination</header>

<center><tt>smtp_destination_concurrency_limit</tt></center>
<hr>

This parameter limits the number of parallel deliveries to the same destination
via the smtp delivery agent.

<p>

The default limit is the <tt>default_destination_concurrency_limit</tt> 
parameter. It is probably safer to limit the concurrency to 10.

<hr>
   07070100032999000081a40000000000000002000000013ac038b6000001ad000000200000000000000000000000000000004200000003reloc/postfix/help/opt_smtp_destination_concurrency_limit.sv.html <header>Maximalt antal parallella s鋘dningar till samma destination</header>

<center><tt>smtp_destination_concurrency_limit</tt></center>
<hr>

Denna parameter anger det maximala antalet parallella e-posts鋘dningar till
samma destination via smtp-s鋘dagenten.

<p>Standardgr鋘sen 鋜 v鋜det p parametern
<tt>default_destination_concurrency_limit</tt>. Det 鋜 f鰎modligen s鋕rare
att begr鋘sa till 10 samtidiga s鋘dningar.

<hr>
   0707010003299a000081a40000000000000002000000013ac038b400000135000000200000000000000000000000000000003d00000003reloc/postfix/help/opt_smtp_destination_recipient_limit.html  <header>Max number of recipients per delivery</header>

<center><tt>smtp_destination_recipient_limit</tt></center>
<hr>

This parameter limits the number
of recipients per delivery via the smtp delivery agent.

<p>

The default is taken from the <tt>default_destination_recipient_limit</tt>
parameter.


<hr>
   0707010003299b000081a40000000000000002000000013ac038b60000012f000000200000000000000000000000000000004000000003reloc/postfix/help/opt_smtp_destination_recipient_limit.sv.html   <header>Maximalt antal mottagare per s鋘dning</header>

<center><tt>smtp_destination_recipient_limit</tt></center>
<hr>

Denna parameter anger det maximala antalet mottagare per s鋘dning
via smtp-s鋘dagenten.

<p>Standardv鋜det h鋗tas fr錸 parametern
<tt>default_destination_recipient_limit</tt>.

<hr>
 0707010003299c000081a40000000000000002000000013ac038b4000001a4000000200000000000000000000000000000002e00000003reloc/postfix/help/opt_smtp_helo_timeout.html <header>Timeout on waiting for the greeting banner</header>

<center><tt>smtp_helo_timeout</tt></center>
<hr>

This parameter specifies the SMTP client timeout in seconds for receiving the
SMTP greeting banner.

<p>

When the server drops the connection without sending a greeting banner, or when
it sends no greeting banner within the deadline, the SMTP client tries the next
address on the mail exchanger list.


<hr>
0707010003299d000081a40000000000000002000000013ac038b60000018c000000200000000000000000000000000000003100000003reloc/postfix/help/opt_smtp_helo_timeout.sv.html  <header>Tidsgr鋘s f鰎 v鋖komstbanner</header>

<center><tt>smtp_helo_timeout</tt></center>
<hr>

Denna parameter anger hur l錸g tid (i sekunder) SMTP-klienten f錼 v鋘ta
p SMTP-v鋖komstbannern.

<p>Om servern tappar f鰎bindelsen utan att skicka en v鋖komstbanner, eller
om den inte skickar n錱on banner inom tidsgr鋘sen, kommer SMTP-klienten att
testa n鋝ta adress i mail exchanger-listan.

<hr>
0707010003299e000081a40000000000000002000000013ac038b500000160000000200000000000000000000000000000002e00000003reloc/postfix/help/opt_smtp_mail_timeout.html <header>Timeout on waiting for answer to MAIL FROM</header>

<center><tt>smtp_mail_timeout</tt></center>
<hr>

This parameter specifies the SMTP client timeout in seconds for sending the
SMTP MAIL FROM command, and for receiving the server response.

<p>

In case of problems the client does NOT try the next address on
the mail exchanger list.


<hr>
0707010003299f000081a40000000000000002000000013ac038b600000158000000200000000000000000000000000000003100000003reloc/postfix/help/opt_smtp_mail_timeout.sv.html  <header>Tidsgr鋘s f鰎 svar p MAIL FROM</header>

<center><tt>smtp_mail_timeout</tt></center>
<hr>

Denna parameter anger hur l錸g tid (i sekunder) SMTP-klienten har
p sig att skicka SMTP-kommandot MAIL FROM och att sedan ta emot serverns
svar.

<p>Om problem uppst錼 kommer klienten INTE att testa n鋝ta adress
i mail exchanger-listan.

<hr>
070701000329a0000081a40000000000000002000000013ac038b5000000f6000000200000000000000000000000000000002e00000003reloc/postfix/help/opt_smtp_quit_timeout.html <header>Timeout on waiting for answer to QUIT</header>

<center><tt>smtp_quit_timeout</tt></center>
<hr>

The parameter specifies the SMTP client timeout in seconds for sending the SMTP
QUIT command, and for receiving the server response.


<hr>
  070701000329a1000081a40000000000000002000000013ac038b6000000ee000000200000000000000000000000000000003100000003reloc/postfix/help/opt_smtp_quit_timeout.sv.html  <header>Tidsgr鋘s f鰎 svar p QUIT</header>

<center><tt>smtp_quit_timeout</tt></center>
<hr>

Denna parameter anger hur l錸g tid (i sekunder) SMTP-klienten har p
sig att skicka SMTP-kommandot QUIT och sedan ta emot serverns svar.

<hr>
  070701000329a2000081a40000000000000002000000013ac038b50000015c000000200000000000000000000000000000002e00000003reloc/postfix/help/opt_smtp_rcpt_timeout.html <header>Timeout on waiting for answer to RCPT TO</header>

<center><tt>smtp_rcpt_timeout</tt></center>
<hr>

This parameter specifies the SMTP client timeout in seconds for sending the
SMTP RCPT TO command, and for receiving the server response.

<p>

In case of problems the client does NOT try the next address on
the mail exchanger list.


<hr>
070701000329a3000081a40000000000000002000000013ac038b600000150000000200000000000000000000000000000003100000003reloc/postfix/help/opt_smtp_rcpt_timeout.sv.html  <header>Tidsgr鋘s f鰎 svar p RCPT TO</header>

<center><tt>smtp_rcpt_timeout</tt></center>
<hr>

Denna parameter anger hur l錸g tid (i sekunder) SMTP-klienten har p sig
att skicka SMTP-kommandot RCPT TO och sedan ta emot serverns svar.

<p>Om problem uppst錼 kommer klienten INTE att testa n鋝ta adress
i mail exchanger-listan.

<hr>
070701000329a4000081a40000000000000002000000013ac038b500000122000000200000000000000000000000000000003300000003reloc/postfix/help/opt_smtp_skip_4xx_greeting.html    <header>Skip 4xx greeting</header>

<center><tt>smtp_skip_4xx_greeting</tt></center>
<hr>

This parameter controls what happens when an SMTP server greets us with a
<tt>4XX</tt> status code. By default, Postfix backs off. Specify <tt>yes</tt>
to move on the the next mail exchanger.


<hr>
  070701000329a5000081a40000000000000002000000013ac038b60000013f000000200000000000000000000000000000003600000003reloc/postfix/help/opt_smtp_skip_4xx_greeting.sv.html <header>Hoppa 鰒er 4xx-h鋖sning</header>

<center><tt>smtp_skip_4xx_greeting</tt></center>
<hr>

Denna parameter styr vad som h鋘der d en SMTP-server h鋖sar oss med en
<tt>4XX</tt>-statuskod. Standardf鰎farandet 鋜 att Postfix avbryter
f鰎bindelsen. Ange <tt>ja</tt> f鰎 att g vidare till n鋝ta mail exchanger.

<hr>
 070701000329a6000081a40000000000000002000000013ac038b5000000e7000000200000000000000000000000000000003400000003reloc/postfix/help/opt_smtp_skip_quit_response.html   <header>Skip wait for the QUIT command</header>

<center><tt>smtp_skip_quit_response</tt></center>
<hr>

This parameter controls whether the SMTP client waits for the response to the
QUIT command. The default is to not wait.

<hr>
 070701000329a7000081a40000000000000002000000013ac038b6000000d8000000200000000000000000000000000000003700000003reloc/postfix/help/opt_smtp_skip_quit_response.sv.html    <header>V鋘ta inte p QUIT-svar</header>

<center><tt>smtp_skip_quit_response</tt></center>
<hr>

Denna parameter styr om SMTP-klienten ska v鋘ta p svar p kommandot QUIT.
Standardbeteendet 鋜 att inte v鋘ta.

<hr>
070701000329a8000081a40000000000000002000000013ac038b5000001fe000000200000000000000000000000000000002900000003reloc/postfix/help/opt_smtpd_banner.html  <header>SMTP greeting banner</header>

<center><tt>smtpd_banner</tt></center>
<hr>

This parameter specifies the text that follows the 220 status code in the SMTP
greeting banner. Some people like to see the mail version advertised. By
default, Postfix shows no version.

<p>

You MUST specify the <tt>$myhostname</tt> at the start of the text. When the
SMTP client sees its own hostname at the start of an SMTP greeting banner it
will report a mailer loop. That's better than having a machine meltdown.

<hr>
  070701000329a9000081a40000000000000002000000013ac038b600000207000000200000000000000000000000000000002c00000003reloc/postfix/help/opt_smtpd_banner.sv.html   <header>SMTP-v鋖komstbanner</header>

<center><tt>smtpd_banner</tt></center>
<hr>

Denna parameter anger den text som f鰈jer statuskod 220 i STMP-v鋖komstbannern.
En del tycker om att f se e-postversionen. Standardbeteendet hos Postfix
鋜 att inte skriva ut n錱on version.

<p><tt>$myhostname</tt> i b鰎jan av texten <b>m錽te</b> anges.
D SMTP-klienten ser sitt eget datornamn i b鰎jan av en SMTP-v鋖komstbanner
kommer den att rapportera en e-postloop. Det 鋜 mycket b鋞tre 鋘 att
maskinen d鰎 av 鰒erhettning.

<hr>
 070701000329aa000081a40000000000000002000000013ac038b500000552000000200000000000000000000000000000003600000003reloc/postfix/help/opt_smtpd_client_restrictions.html <header>Restrictions on client hostnames/addresses</header>

<center><tt>smtpd_client_restrictions</tt></center>
<hr>

This parameter specifies optional restrictions on SMTP client host names and
addresses.

<p>

The default is to allow connections from any host.  The following
restrictions are available:

<ul>
<li><tt>reject_unknown_client:</tt> reject the request if the client hostname is unknown.
<li><tt>permit_mynetworks:</tt> permit if the client address matches <tt>$mynetworks</tt> .
<li><tt>check_client_access maptype:mapname:</tt> look up client name, parent domains, client address,
	or networks obtained by stripping octets.
	Reject if result is REJECT or &quot;[45]xx text&quot;.
	Permit otherwise.
<li><tt>reject_maps_rbl:</tt> reject if the client is listed under <tt>$maps_rbl_domains</tt> .
<li><tt>reject:</tt> reject the request. Place this at the end of a restriction.
<li><tt>permit:</tt> permit the request. Place this at the end of a restriction.
</ul>

Restrictions are applied in the order as specified; the first
restriction that matches wins.

<p>

Specify a list of restrictions, separated by commas and/or whitespace.
Continue long lines by starting the next line with whitespace.

<p>

Sensible examples:
<ul>
<li><tt>permit_mynetworks, reject_unknown_client</tt>
<li><tt>reject_maps_rbl, reject_unknown_client</tt>
</ul>

<hr>
  070701000329ab000081a40000000000000002000000013ac038b600000566000000200000000000000000000000000000003900000003reloc/postfix/help/opt_smtpd_client_restrictions.sv.html  <header>Begr鋘sningar f鰎 klienters datornamn/adresser</header>

<center><tt>smtpd_client_restrictions</tt></center>
<hr>

Denna parameter anger valbara begr鋘sningar f鰎 SMTP-klienternas datornamn
och adresser.

<p>Standardbeteendet 鋜 att till錿a uppkopplingar fr錸 alla datorer.
F鰈jande begr鋘sningar kan g鰎as:

<ul>
<li><tt>reject_unknown_client:</tt> avvisa f鰎fr錱ningen om klientens datornamn 鋜 ok鋘t.
<li><tt>permit_mynetworks:</tt> till錿 om klientens adress matchar <tt>$mynetworks</tt> .
<li><tt>check_client_access maptype:mapname:</tt> sl upp klientnamn,
        f鰎鋖dradom鋘, klientadress eller n鋞verk genom att ta oktetter.
	Avvisa om resultatet blir REJECT eller &quot;[45]xx text&quot;.
	Till錿 annars.
<li><tt>reject_maps_rbl:</tt> avvisa om klienten finns uppr鋕nad under <tt>$maps_rbl_domains</tt>.
<li><tt>reject:</tt> avvisa f鰎fr錱ningen. S鋞t detta alternativ sist i begr鋘sningen.
<li><tt>permit:</tt> till錿 f鰎fr錱ningen. S鋞t detta alternativ sist i begr鋘sningen.
</ul>

Begr鋘sningar g鰎s i angiven ordning; den f鰎sta begr鋘sning som passar in
anv鋘ds.

<p>Ange en lista med begr鋘sningar, separerade med kommatecken och/eller
blanksteg. L錸ga rader g鰎s genom att n鋝ta rad b鰎jas med ett blanksteg.

<p>Vettiga exempel:
<ul>
<li><tt>permit_mynetworks, reject_unknown_client</tt>
<li><tt>reject_maps_rbl, reject_unknown_client</tt>
</ul>

<hr>
  070701000329ac000081a40000000000000002000000013ac038b500000165000000200000000000000000000000000000003300000003reloc/postfix/help/opt_smtpd_error_sleep_time.html    <header>Timeout before sending 4xx/5xx error response</header>

<center><tt>smtpd_error_sleep_time</tt></center>
<hr>

This parameter specifies the time in seconds the SMTP server waits before
sending a <tt>4xx</tt> or <tt>5xx</tt> SMTP server error response. This
prevents naive clients from going into an error - disconnect - connect - error
loop.


<hr>
   070701000329ad000081a40000000000000002000000013ac038b60000014c000000200000000000000000000000000000003600000003reloc/postfix/help/opt_smtpd_error_sleep_time.sv.html <header>Tidsgr鋘s innan 4xx/5xx-felsvar skickas</header>

<center><tt>smtpd_error_sleep_time</tt></center>
<hr>

Denna parameter anger hur l錸g tid (i sekunder) SMTP-servern v鋘tar innan
den skickar ett <tt>4xx</tt>- eller <tt>5xx</tt>-fel. Detta f鰎hindrar att
dumma klienter g錼 in i loopen fel-nedkoppling-uppkoppling-fel.

<hr>
070701000329ae000081a40000000000000002000000013ac038b500000471000000200000000000000000000000000000003400000003reloc/postfix/help/opt_smtpd_etrn_restrictions.html   <header>Restrict ETRN command upon...</header>

<center><tt>smtpd_etrn_restrictions</tt></center>
<hr>

This parameter restricts what clients are allowed to issue the <tt>ETRN</tt>
command. The present Postfix <tt>ETRN</tt> differs from other <tt>ETRN</tt>
implementations in that it flushes mail for all destinations. This will change
in the future.

<p>

The default is to allow <tt>ETRN</tt> from any host. The following restrictions
are available:

<ul>
<li><tt>reject_unknown_client:</tt> reject the request if the client hostname
is unknown.
<li><tt>permit_mynetworks:</tt> permit if the client address matches <tt>$mynetworks</tt>.
<li><tt>check_client_access maptype:mapname:</tt> look up client name, parent domains, client address,
	or networks obtained by stripping octets. Reject if result is
	<tt>REJECT</tt> or <tt>&quot;[45]xx text&quot;</tt>. Permit otherwise.
<li><tt>reject_maps_rbl:</tt> reject if the client is listed under $maps_rbl_domains.
<li><tt>reject:</tt> reject the request. Place this at the end of a restriction.
<li><tt>permit:</tt> permit the request. Place this at the end of a restriction.
</ul>

<hr>
   070701000329af000081a40000000000000002000000013ac038b60000047b000000200000000000000000000000000000003700000003reloc/postfix/help/opt_smtpd_etrn_restrictions.sv.html    <header>Begr鋘sa ETRN-kommando f鰎 ...</header>

<center><tt>smtpd_etrn_restrictions</tt></center>
<hr>

Denna parameter anger de klienter som f錼 anv鋘da <tt>ETRN</tt>-kommandot.
Postfix nuvarande <tt>ETRN</tt> skiljer sig fr錸 andra
<tt>ETRN</tt>-implementationer genom att den skickar k鯽d e-post till alla
destinationer. Detta kommer att 鋘dras i framtiden.

<p>Standard 鋜 att till錿a <tt>ETRN</tt> fr錸 alla datorer. F鰈jande
begr鋘sningar 鋜 m鰆liga:

<ul>
<li><tt>reject_unknown_client:</tt> avvisa om klientens datornamn 鋜 ok鋘t.
<li><tt>permit_mynetworks:</tt> till錿 om klientens adress matchar <tt>$mynetworks</tt>.
<li><tt>check_client_access maptype:mapname:</tt> sl upp klientnamn,
        f鰎鋖dradom鋘, klientadress eller n鋞verk genom att ta oktetter.
	Avvisa om resultatet blir <tt>REJECT</tt> eller
	<tt>&quot;[45]xx text&quot;</tt>.
	Till錿 annars.
<li><tt>reject_maps_rbl:</tt> avvisa om klienten finns uppr鋕nad under <tt>$maps_rbl_domains</tt>.
<li><tt>reject:</tt> avvisa f鰎s鰇et. S鋞t detta alternativ sist i begr鋘sningen.
<li><tt>permit:</tt> till錿 f鰎s鰇et. S鋞t detta alternativ sist i begr鋘sningen.
</ul>

<hr>
 070701000329b0000081a40000000000000002000000013ac038b500000106000000200000000000000000000000000000003300000003reloc/postfix/help/opt_smtpd_hard_error_limit.html    <header>Error count for closing connection</header>

<center><tt>smtpd_hard_error_limit</tt></center>
<hr>

This parameter specifies an error count upper limit. The SMTP server
disconnects after an SMTP client makes this number of errors within a session.

<hr>
  070701000329b1000081a40000000000000002000000013ac038b600000105000000200000000000000000000000000000003600000003reloc/postfix/help/opt_smtpd_hard_error_limit.sv.html <header>Antal fel f鰎 att koppla ned</header>

<center><tt>smtpd_hard_error_limit</tt></center>
<hr>

Denna parameter anger en 鰒re gr鋘s f鰎 antalet fel. SMTP-servern
kopplar ned f鰎bindelsen d en SMTP-klient har gjort detta antal fel
under en session.

<hr>
   070701000329b2000081a40000000000000002000000013ac038b5000000e1000000200000000000000000000000000000003000000003reloc/postfix/help/opt_smtpd_helo_required.html   <header>HELO is required</header>

<center><tt>smtpd_helo_required</tt></center>
<hr>

This parameter optionally turns on the requirement that SMTP clients must
introduce themselves at the beginning of an SMTP session.

<hr>
   070701000329b3000081a40000000000000002000000013ac038b6000000b9000000200000000000000000000000000000003300000003reloc/postfix/help/opt_smtpd_helo_required.sv.html    <header>HELO kr鋠s</header>

<center><tt>smtpd_helo_required</tt></center>
<hr>

Denna parameter s鋞ter kravet att SMTP-klienter m錽te presentera sig
i b鰎jan p en SMTP-session.

<hr>
   070701000329b4000081a40000000000000002000000013ac038b5000005d6000000200000000000000000000000000000003400000003reloc/postfix/help/opt_smtpd_helo_restrictions.html   <header>Restrictions on sends in HELO commands</header>

<center><tt>smtpd_helo_restrictions</tt></center>
<hr>

This parameter specifies optional restrictions on what SMTP clients can send in
SMTP HELO and EHLO commands.

<p>

The default is to permit everything.  The following restrictions
are available:

<ul>
<li>  <tt>permit_mynetworks:</tt> permit if the client address matches $mynetworks.
<li>  <tt>reject_unknown_client:</tt> reject the request if the client hostname is unknown.
<li>  <tt>reject_maps_rbl:</tt> reject if the client is listed under $maps_rbl_domains.
<li>  <tt>reject_invalid_hostname:</tt> reject HELO hostname with bad syntax.
<li>  <tt>reject_unknown_hostname:</tt> reject HELO hostname without DNS A or MX record.
<li>  <tt>reject_non_fqdn_hostname:</tt> reject HELO hostname that is not in FQDN form
<li>  <tt>check_helo_access maptype:mapname:</tt> look up HELO hostname or parent domains.
	Reject if result is REJECT or &quot;[45]xx text&quot;.
	Permit otherwise.
<li>  <tt>check_client_access maptype:mapname:</tt> see smtpd_client_restrictions.
<li>  <tt>reject:</tt> reject the request. Place this at the end of a restriction.
<li>  <tt>permit:</tt> permit the request. Place this at the end of a restriction.
</ul>

Restrictions are applied in the order as specified; the first
restriction that matches wins.

<p>

Specify a list of restrictions, separated by commas and/or whitespace.
Continue long lines by starting the next line with whitespace.


<hr>
  070701000329b6000081a40000000000000002000000013ac038b5000000e3000000200000000000000000000000000000003200000003reloc/postfix/help/opt_smtpd_recipient_limit.html <header>Max number of recipients accepted for delivery</header>

<center><tt>smtpd_recipient_limit</tt></center>
<hr>

This parameter restricts the number of recipients that the SMTP server accepts
per message delivery.


<hr>
 070701000329b5000081a40000000000000002000000013ac038b6000005cd000000200000000000000000000000000000003700000003reloc/postfix/help/opt_smtpd_helo_restrictions.sv.html    <header>Begr鋘sningar av HELO-kommandon</header>

<center><tt>smtpd_helo_restrictions</tt></center>
<hr>

Denna parameter anger valbara begr鋘sningar p vilka SMTP-klienter som f錼
skicka SMTP-kommandona HELO och EHLO.

<p>Standardinst鋖lningen 鋜 att till錿a alla. F鰈jande begr鋘sningar
鋜 m鰆liga:

<ul>
<li><tt>permit_mynetworks:</tt> till錿 om klientens adress matchar $mynetworks.
<li><tt>reject_unknown_client:</tt> till錿 ej om klientens datornamn 鋜 ok鋘t.
<li><tt>reject_maps_rbl:</tt> till錿 ej om klienten finns uppr鋕nad under $maps_rbl_domains.
<li><tt>reject_invalid_hostname:</tt> till錿 ej HELO-datornamn med felaktig syntax.
<li><tt>reject_unknown_hostname:</tt> till錿 ej HELO-datornamn utan DNS A- eller MX-post.
<li><tt>reject_non_fqdn_hostname:</tt> till錿 ej HELO-datornamn som inte 鋜 p FQDN-form.
<li><tt>check_helo_access maptype:mapname:</tt> sl upp HELO-datornamn eller f鰎鋖dradom鋘er.
	Till錿 ej om resultatet blir REJECT eller &quot;[45]xx text&quot;.
	Till錿 annars.
<li><tt>check_client_access maptype:mapname:</tt> se smtpd_client_restrictions.
<li><tt>reject:</tt> till錿 ej. S鋞t detta alternativ sist i begr鋘sningslistan.
<li><tt>permit:</tt> till錿. S鋞t detta alternativ sist i begr鋘sningslistan.
</ul>

Begr鋘sningar g鰎s i angiven ordning; den f鰎sta begr鋘sning som passar in
anv鋘ds.

<p>Ange en lista med begr鋘sningar, separerade med kommatecken och/eller
blanksteg. L錸ga rader g鰎s genom att n鋝ta rad b鰎jas med ett blanksteg.

<hr>
   070701000329b7000081a40000000000000002000000013ac038b6000000d5000000200000000000000000000000000000003500000003reloc/postfix/help/opt_smtpd_recipient_limit.sv.html  <header>Maximalt antal mottagare per s鋘dning</header>

<center><tt>smtpd_recipient_limit</tt></center>
<hr>

Denna parameter anger maximalt antal mottagare som SMTP-servern till錿er
per meddelandes鋘dning.

<hr>
   070701000329b8000081a40000000000000002000000013ac038b5000010c6000000200000000000000000000000000000003900000003reloc/postfix/help/opt_smtpd_recipient_restrictions.html  <header>Restrictions on recipient addresses</header>

<center><tt>smtpd_recipient_restrictions</tt></center>
<hr>

This parameter specifies restrictions on recipient addresses that SMTP clients
can send in RCPT TO commands.

<p>

By default, Postfix relays mail:

<ul>
<li> from trusted clients whose IP address matches <tt>$mynetworks</tt>,
<li> from trusted clients matching <tt>$relay_domains</tt> or subdomains thereof,
<li> from untrusted clients to destinations that match <tt>$relay_domains</tt>
     or subdomains thereof, except addresses with sender-specified routing.
</ul>

The default <tt>relay_domains</tt> value is <tt>$mydestination</tt>.

<p>

In addition to the above, the Postfix SMTP server by default accepts mail
that Postfix is final destination for:

<ul>
<li> destinations that match <tt>$inet_interfaces</tt>,
<li> destinations that match <tt>$mydestination</tt>
<li> destinations that match <tt>$virtual_maps</tt>.
</ul>

These destinations do not need to be listed in <tt>$relay_domains</tt>.

<p>

The following restrictions are available (* is part of default setting):

<ul>
<li> <tt>*permit_mynetworks:</tt> permit if the client address matches <tt>$mynetworks</tt>.
<li>  <tt>reject_unknown_client:</tt> reject the request if the client hostname is unknown.
<li>  <tt>reject_maps_rbl:</tt> reject if the client is listed under <tt>$maps_rbl_domains</tt>.
<li>  <tt>reject_invalid_hostname:</tt> reject HELO hostname with bad syntax.
<li>  <tt>reject_unknown_hostname:</tt> reject HELO hostname without DNS A or MX record.
<li>  <tt>reject_unknown_sender_domain:</tt> reject sender domain without A or MX record.
<li> <tt>*check_relay_domains:</tt> permit only mail:
<ul>
<li> to destinations matching <tt>$inet_interfaces</tt>, <tt>$mydestination</tt>, 
	  or <tt>$virtual_maps</tt>,
<li> from trusted clients matching <tt>$relay_domains</tt> or subdomain
	  thereof,
<li> from untrusted clients to destinations matching <tt>$relay_domains</tt> or
	  subdomain thereof (except addresses with sender-specified routing),
</ul>
	Reject anything else.
<li> <tt>permit_auth_destination:</tt> permit mail:
<ul>
<li> to destinations matching <tt>$inet_interfaces</tt>, <tt>$mydestination</tt>, 
	  or <tt>$virtual_maps</tt>.
<li> to destinations matching <tt>$relay_domains</tt> or subdomain thereof,
	  except for addresses with sender-specified routing.
</ul>
<li> <tt>reject_unauth_destination:</tt> reject mail unless it is sent
<ul>
<li> to destinations matching <tt>$inet_interfaces</tt>, <tt>$mydestination</tt>, 
	  or <tt>$virtual_maps</tt>.
<li> to destinations matching <tt>$relay_domains</tt> or subdomain thereof,
	  except for addresses with sender-specified routing.
</ul>
<li>  <tt>reject_unauth_pipelining:</tt> reject mail from improperly pipelining spamware
<li>  <tt>permit_mx_backup:</tt> accept mail for sites that list me as MX host.
<li>  <tt>reject_unknown_recipient_domain:</tt> reject domains without A or MX record.
<li>  <tt>check_recipient_access maptype:mapname:</tt> look up recipient address, parent domain, or localpart@.
	Reject if result is REJECT or &quot;[45]xx text&quot;.
	Permit otherwise.

<li>  <tt>check_client_access maptype:mapname:</tt> see <tt>smtpd_client_restrictions</tt>.
<li>  <tt>check_helo_access maptype:mapname:</tt> see <tt>smtpd_helo_restrictions</tt>.
<li>  <tt>check_sender_access maptype:mapname:</tt> see <tt>smtpd_sender_restrictions</tt>.
<li>  <tt>reject_non_fqdn_hostname:</tt> reject HELO hostname that is not in FQDN form
<li>  <tt>reject_non_fqdn_sender:</tt> reject sender address that is not in FQDN form
<li>  <tt>reject_non_fqdn_recipient:</tt> reject recipient address that is not in FQDN form
<li>  <tt>reject:</tt> reject the request. Place this at the end of a restriction.
<li>  <tt>permit:</tt> permit the request. Place this at the end of a restriction.
</ul>

Restrictions are applied in the order as specified; the first
restriction that matches wins.

<p>

Specify a list of restrictions, separated by commas and/or whitespace.
Continue long lines by starting the next line with whitespace.

<p>

NOTE: YOU MUST SPECIFY AT LEAST ONE OF THE FOLLOWING RESTRICTIONS
OTHERWISE POSTFIX REFUSES TO RECEIVE MAIL:
<br>
	<tt>reject, check_relay_domains, reject_unauth_destination</tt>



<hr>
  070701000329b9000081a40000000000000002000000013ac038b6000010c2000000200000000000000000000000000000003c00000003reloc/postfix/help/opt_smtpd_recipient_restrictions.sv.html   <header>Begr鋘sningar f鰎 mottagaradresser</header>

<center><tt>smtpd_recipient_restrictions</tt></center>
<hr>

Denna parameter anger begr鋘sningar f鰎 de mottagaradresser som
SMTP-klienter kan skicka i RCPT TO-kommandon.

<p>Standard 鋜 att Postfix skickar e-post vidare:

<ul>
<li>fr錸 betrodda klienter vars IP-adress matchar <tt>$mynetworks</tt>,
<li>fr錸 betrodda klienter som matchar <tt>$relay_domains</tt> med underdom鋘er,
<li>fr錸 ej betrodda klienter till destinationer som matchar <tt>$relay_domains</tt>
     med subdom鋘er, utom adresser med avs鋘darangiven routing.
</ul>

Standardv鋜det f鰎 <tt>relay_domains</tt> 鋜 <tt>$mydestination</tt>.

<p>F鰎utom ovanst錯nde tar Postfix SMTP-server som standard emot e-post
d鋜 Postfix 鋜 slutlig destination:

<ul>
<li> destinationer som matchar <tt>$inet_interfaces</tt>,
<li> destinationer som matchar <tt>$mydestination</tt>
<li> destinationer som matchar <tt>$virtual_maps</tt>.
</ul>

Dessa destinationer beh鰒er inte anges i <tt>$relay_domains</tt>.

<p>F鰈jande begr鋘sningar 鋜 m鰆liga (* 鋜 en del av standardinst鋖lningen):

<ul>
<li><tt>*permit_mynetworks:</tt> sl鋚p fram om klientens adress matchar <tt>$mynetworks</tt>.
<li><tt>reject_unknown_client:</tt> sp鋜ra om klientens datornamn 鋜 ok鋘t.
<li><tt>reject_maps_rbl:</tt> sp鋜ra om klienten finns uppr鋕nad under <tt>$maps_rbl_domains</tt>.
<li><tt>reject_invalid_hostname:</tt> sp鋜ra HELO-datornamn med felaktig syntax.
<li><tt>reject_unknown_hostname:</tt> sp鋜ra HELO-datornamn utan DNS A- eller MX-post.
<li><tt>reject_unknown_sender_domain:</tt> sp鋜ra avs鋘dardom鋘 utan A- eller MX-post.
<li> <tt>*check_relay_domains:</tt> sl鋚p endast fram e-post:
<ul>
<li>till destinationer som matchar <tt>$inet_interfaces</tt>, <tt>$mydestination</tt>, 
	eller <tt>$virtual_maps</tt>,
<li>fr錸 betrodda klienter som matchar <tt>$relay_domains</tt> med underdom鋘er,
<li>fr錸 ej betrodda klienter till destinationer som matchar <tt>$relay_domains</tt> med underdom鋘er (utom adresser med avs鋘darangiven routing)
</ul>
	Sl鋚p inte fram n錱ot annat.
<li><tt>permit_auth_destination:</tt> sl鋚p fram e-post:
<ul>
<li>till destinationer som matchar <tt>$inet_interfaces</tt>, <tt>$mydestination</tt>, 
	  eller <tt>$virtual_maps</tt>.
<li>till destinationer som matchar <tt>$relay_domains</tt> med underdom鋘er,
	utom adresser med avs鋘darangiven routing.
</ul>
<li><tt>reject_unauth_destination:</tt> sp鋜ra e-post om den inte s鋘ts
<ul>
<li>till destinationer som matchar <tt>$inet_interfaces</tt>, <tt>$mydestination</tt>, 
	eller <tt>$virtual_maps</tt>.
<li>till destinationer som matchar <tt>$relay_domains</tt> med underdom鋘er,
	utom adresser med avs鋘darangiven routing.
</ul>
<li><tt>reject_unauth_pipelining:</tt> sp鋜ra e-post fr錸 pipelinande spamprogram som inte fungerar
<li><tt>permit_mx_backup:</tt> sl鋚p fram e-post fr錸 siter som har med mig som MX-dator.
<li><tt>reject_unknown_recipient_domain:</tt> sp鋜ra dom鋘er utan A- eller MX-post.
<li><tt>check_recipient_access maptype:mapname:</tt> sl upp mottagaradress, f鰎鋖dradom鋘 eller lokaldel@.
	Sp鋜ra om resultatet blir REJECT eller &quot;[45]xx text&quot;.
	Sl鋚p fram annars.

<li><tt>check_client_access maptype:mapname:</tt> se <tt>smtpd_client_restrictions</tt>.
<li><tt>check_helo_access maptype:mapname:</tt> se <tt>smtpd_helo_restrictions</tt>.
<li><tt>check_sender_access maptype:mapname:</tt> se <tt>smtpd_sender_restrictions</tt>.
<li><tt>reject_non_fqdn_hostname:</tt> sp鋜ra HELO-datornamn som inte 鋜 p FQDN-form
<li><tt>reject_non_fqdn_sender:</tt> sp鋜ra avs鋘daradresser som inte 鋜 p FQDN-form
<li><tt>reject_non_fqdn_recipient:</tt> sp鋜ra mottagaradresser som inte 鋜 p FQDN-form
<li><tt>reject:</tt> sp鋜ra. S鋞t denna begr鋘sning sist i begr鋘sningslistan.
<li><tt>permit:</tt> sl鋚p fram. S鋞t denna begr鋘sning sist i begr鋘sningslistan.
</ul>

Begr鋘sningar g鰎s i angiven ordning; den f鰎sta begr鋘sning som passar in
anv鋘ds.

<p>Ange en lista med begr鋘sningar, separerade med kommatecken och/eller
blanksteg. L錸ga rader g鰎s genom att n鋝ta rad b鰎jas med ett blanksteg.

<p><b>Obs: minst en av nedanst錯nde begr鋘sningar m錽te anges, annars
kommer Postfix att v鋑ra ta emot e-post:</b>

<br><tt>reject, check_relay_domains, reject_unauth_destination</tt>

<hr>
  070701000329ba000081a40000000000000002000000013ac038b5000006ef000000200000000000000000000000000000003600000003reloc/postfix/help/opt_smtpd_sender_restrictions.html <header>Restrictions on sender addresses</header>

<center><tt>smtpd_sender_restrictions</tt></center>
<hr>

This parameter specifies optional restrictions on sender addresses that SMTP
clients can send in MAIL FROM commands.

<p>

The default is to permit any sender address.  The following
restrictions are available:

<ul>
<li><tt>permit_mynetworks:</tt> permit if the client address matches <tt>$mynetworks</tt>.
<li><tt>reject_unknown_client:</tt> reject the request if the client hostname is unknown.
<li><tt>reject_maps_rbl:</tt> reject if the client is listed under <tt>$maps_rbl_domains</tt>.
<li><tt>reject_invalid_hostname:</tt> reject HELO hostname with bad syntax.
<li><tt>reject_unknown_hostname:</tt> reject HELO hostname without DNS A or MX record.
<li><tt>reject_unknown_sender_domain:</tt> reject sender domain without A or MX record.
<li><tt>check_sender_access maptype:mapname:</tt> look up sender address, parent domain, or localpart@.
    	Reject if result is REJECT or &quot;[45]xx text&quot;
    	Permit otherwise.
<li><tt>check_client_access maptype:mapname:</tt> see smtpd_client_restrictions.
<li><tt>check_helo_access maptype:mapname:</tt> see smtpd_helo_restrictions.
<li><tt>reject_non_fqdn_hostname:</tt> reject HELO hostname that is not in FQDN form
<li><tt>reject_non_fqdn_sender:</tt> reject sender address that is not in FQDN form
<li><tt>reject:</tt> reject the request. Place this at the end of a restriction.
<li><tt>permit:</tt> permit the request. Place this at the end of a restriction.
</ul>

Restrictions are applied in the order as specified; the first
restriction that matches wins.

<p>

Specify a list of restrictions, separated by commas and/or whitespace.
Continue long lines by starting the next line with whitespace.


<hr>
 070701000329bb000081a40000000000000002000000013ac038b6000006fd000000200000000000000000000000000000003900000003reloc/postfix/help/opt_smtpd_sender_restrictions.sv.html  <header>Begr鋘sningar f鰎 avs鋘daradresser</header>

<center><tt>smtpd_sender_restrictions</tt></center>
<hr>

Denna parameter anger valbara begr鋘sningar f鰎 de avs鋘daradresser
SMTP-klienter kan skicka i MAIL FROM-kommandon.

<p>Standard 鋜 att sl鋚pa fram alla avs鋘daradresser. F鰈jande begr鋘sningar
鋜 m鰆liga:

<ul>
<li><tt>permit_mynetworks:</tt> sl鋚p fram om klientens adress matchar <tt>$mynetworks</tt>.
<li><tt>reject_unknown_client:</tt> sp鋜ra om klientens datornamn 鋜 ok鋘t.
<li><tt>reject_maps_rbl:</tt> sp鋜ra om klienten finns uppr鋕nad under <tt>$maps_rbl_domains</tt>.
<li><tt>reject_invalid_hostname:</tt> sp鋜ra HELO-datornamn med felaktig syntax.
<li><tt>reject_unknown_hostname:</tt> sp鋜ra HELO-datornamn utan n錱on DNS A- eller MX-post.
<li><tt>reject_unknown_sender_domain:</tt> sp鋜ra avs鋘dardom鋘er utan A- eller MX-post.
<li><tt>check_sender_access maptype:mapname:</tt> sl upp avs鋘daradress, f鰎鋖dradom鋘 eller lokal del@.
    	Sp鋜ra om resultatet blir REJECT eller &quot;[45]xx text&quot;
    	Sl鋚p fram annars.
<li><tt>check_client_access maptype:mapname:</tt> se smtpd_client_restrictions.
<li><tt>check_helo_access maptype:mapname:</tt> se smtpd_helo_restrictions.
<li><tt>reject_non_fqdn_hostname:</tt> sp鋜ra HELO-datornamn som inte 鋜 p FQDN-form.
<li><tt>reject_non_fqdn_sender:</tt> sp鋜ra avs鋘daradresser som inte 鋜 p FQDN-form.
<li><tt>reject:</tt> sp鋜ra. S鋞t denna begr鋘sning sist i begr鋘sningslistan.
<li><tt>permit:</tt> sl鋚p fram. S鋞t denna begr鋘sning sist i begr鋘sningslistan.
</ul>

Begr鋘sningar g鰎s i angiven ordning; den f鰎sta begr鋘sning som passar in
anv鋘ds.

<p>Ange en lista med begr鋘sningar, separerade med kommatecken och/eller
blanksteg. L錸ga rader g鰎s genom att n鋝ta rad b鰎jas med ett blanksteg.

<hr>
   070701000329bc000081a40000000000000002000000013ac038b50000014d000000200000000000000000000000000000003300000003reloc/postfix/help/opt_smtpd_soft_error_limit.html    <header>Error count for temporarily ignore a client</header>

<center><tt>smtpd_soft_error_limit</tt></center>
<hr>

This parameter specifies an error count lower limit. When an SMTP client has
made this number of errors within a session, the server waits <tt>error_count</tt>
seconds before responding to any client request.


<hr>
   070701000329bd000081a40000000000000002000000013ac038b600000179000000200000000000000000000000000000003600000003reloc/postfix/help/opt_smtpd_soft_error_limit.sv.html <header>Antal fel f鰎 att tillf鋖ligt strunta i en klient</header>

<center><tt>smtpd_soft_error_limit</tt></center>
<hr>

Denna parameter anger en l鋑sta gr鋘s f鰎 antalet fel en SMTP-klient f錼
g鰎a. Om klienten 錽tadkommer detta antal fel under en session kommer
servern att v鋘ta <tt>error_count</tt> sekunder innan den svarar p
nya f鰎fr錱ningar fr錸 denna klient.

<hr>
   070701000329be000081a40000000000000002000000013ac038b500000188000000200000000000000000000000000000002a00000003reloc/postfix/help/opt_smtpd_timeout.html <header>Timeout in seconds for SMTP transactions</header>

<center><tt>opts_smtpd_timeout</tt></center>
<hr>

This parameter limits the time in seconds to send an SMTP server response and
to receive an SMTP client request.

<p>

Note: if you set SMTP timeouts to large values you must update the
<tt>ipc_timeout</tt> parameter as well, reachable from the <b>Miscellaneous</b> section.


<hr>
070701000329bf000081a40000000000000002000000013ac038b600000192000000200000000000000000000000000000002d00000003reloc/postfix/help/opt_smtpd_timeout.sv.html  <header>Tidsgr鋘s (sekunder) f鰎 SMTP-鰒erf鰎ingar</header>

<center><tt>opts_smtpd_timeout</tt></center>
<hr>

Denna parameter anger hur l錸g tid (i sekunder) det f錼 ta att skicka
ett SMTP-serversvar eller ta emot en SMTP-klientf鰎fr錱ning.

<p>Obs: om SMTP-tidsgr鋘serna f錼 stora v鋜den m錽te parametern
<tt>ipc_timeout</tt> ocks uppdateras. Den kommer man 錿 fr錸
sektionen <b>Blandat</b>.

<hr>
  070701000329c0000081a40000000000000002000000013ac038b5000000e6000000200000000000000000000000000000002c00000003reloc/postfix/help/opt_stale_lock_time.html   <header>Max time after which stale lock is released</header>

<center><tt>stale_lock_time</tt></center>
<hr>

This parameter limits the time after which a stale lock is removed. This is
used for delivery to file or mailbox.

<hr>
  070701000329c1000081a40000000000000002000000013ac038b60000010c000000200000000000000000000000000000002f00000003reloc/postfix/help/opt_stale_lock_time.sv.html    <header>Maximal tid innan kvargl鰉d l錽ning sl鋚ps</header>

<center><tt>stale_lock_time</tt></center>
<hr>

Denna parameter anger den maximala tid som systemet v鋘tar innan en gl鰉d
l錽ning tas bort. Detta anv鋘ds n鋜 meddelanden s鋘ds till fil eller
brevl錮a.

<hr>
070701000329c2000081a40000000000000002000000013ac038b5000001c5000000200000000000000000000000000000003700000003reloc/postfix/help/opt_sun_mailtool_compatibility.html    <header>Disable kernel file lock on mailboxes</header>

<center><tt>sun_mailtool_compatibility</tt></center>
<hr>

This parameter disables kernel file locks on mailboxes.

<p>

This is needed on SUN workstations because the <tt>mailtool</tt> program keeps
an exclusive kernel lock while its window is open. SUN software uses
<tt>user.lock</tt> files only. Unless you remove all SUN mail software, kernel
locks just give a false sense of security.

<hr>
   070701000329c3000081a40000000000000002000000013ac038b6000001de000000200000000000000000000000000000003a00000003reloc/postfix/help/opt_sun_mailtool_compatibility.sv.html <header>Sl av k鋜nans fill錽 f鰎 brevl錮or</header>

<center><tt>sun_mailtool_compatibility</tt></center>
<hr>

Denna parameter sl錼 av k鋜nans fill錽ning f鰎 brevl錮or.

<p>Detta beh鰒s p Sun-arbetsstationer eftersom programmet <tt>mailtool</tt>
skapar en exklusiv k鋜nl錽ning n鋜 det har ett f鰊ster ig錸g. Sun-program
anv鋘der endast <tt>user.lock</tt>-filer. Om du inte tar bort alla
Sun-e-postprogram kommer k鋜nl錽ningar bara att inge en falsk k鋘sla
av s鋕erhet.

<hr>
  070701000329c4000081a40000000000000002000000013ac038b5000000c4000000200000000000000000000000000000002a00000003reloc/postfix/help/opt_swap_bangpath.html <header>Rewrite "site!user" to "user@site"</header>

<center><tt>swap_bangpath</tt></center>
<hr>

This is necessary if your machine is connected to UUCP networks. It is enabled
by default.

<hr>
070701000329c5000081a40000000000000002000000013ac038b6000000d4000000200000000000000000000000000000002d00000003reloc/postfix/help/opt_swap_bangpath.sv.html  <header>Skriv om "site!anv鋘dare" till "anv鋘dare@site"</header>

<center><tt>swap_bangpath</tt></center>
<hr>

Detta 鋜 n鰀v鋘digt om din dator 鋜 uppkopplad mot UUCP-n鋞verk. Standard
鋜 att detta 鋜 p.

<hr>
070701000329c6000081a40000000000000002000000013ac038b50000022e000000200000000000000000000000000000002b00000003reloc/postfix/help/opt_transport_maps.html    <header>Transport mapping lookup tables</header>

<center><tt>transport_maps</tt></center>
<hr>

The parameter specifies optional tables with domain to (transport, nexthop)
mappings. See transport(5) for syntax details.

<p>

By default, this feature is disabled. Specify the types of databases to use.

<p>

Sensible possible values:
<ul>
<li> <tt>dbm:/etc/postfix/transport</tt> 
<li> <tt>hash:/etc/postfix/transport</tt> 
<li> <tt>hash:/etc/postfix/transport, nis:transport</tt> 
<li> <tt>hash:/etc/postfix/transport, netinfo:/transport</tt> 
</ul>

<hr>
  070701000329c7000081a40000000000000002000000013ac038b600000226000000200000000000000000000000000000002e00000003reloc/postfix/help/opt_transport_maps.sv.html <header>Transport-uppslagningstabeller</header>

<center><tt>transport_maps</tt></center>
<hr>

Denna parameter anger tabeller f鰎 (transport, nexthop)-鰒ers鋞tningar.
Se transport(5) f鰎 information om syntax.

<p>Standard 鋜 att denna inst鋖lning 鋜 avslagen. Ange de typer av
databaser som ska anv鋘das.

<p>Vettiga v鋜den:
<ul>
<li> <tt>dbm:/etc/postfix/transport</tt> 
<li> <tt>hash:/etc/postfix/transport</tt> 
<li> <tt>hash:/etc/postfix/transport, nis:transport</tt> 
<li> <tt>hash:/etc/postfix/transport, netinfo:/transport</tt> 
</ul>

<hr>
  070701000329c8000081a40000000000000002000000013ac038b50000010a000000200000000000000000000000000000003100000003reloc/postfix/help/opt_transport_retry_time.html  <header>Time in seconds between attempts to contact a broken MDT</header>

<center><tt>transport_retry_time</tt></center>
<hr>

This parameter specifies the time in seconds between attempts by the queue
manager to contact a broken message delivery transport.


<hr>
  070701000329c9000081a40000000000000002000000013ac038b60000010c000000200000000000000000000000000000003400000003reloc/postfix/help/opt_transport_retry_time.sv.html   <header>Tid (sekunder) mellan f鰎s鰇 att kontakta en defekt MDT</header>

<center><tt>transport_retry_time</tt></center>
<hr>

Denna parameter anger tidsintervallet (i sekunder) mellan tv f鰎s鰇
av k鰄anteraren att kontakta en defekt meddelandetransport (MDT).

<hr>
070701000329ca000081a40000000000000002000000013ac038b50000010e000000200000000000000000000000000000002c00000003reloc/postfix/help/opt_trigger_timeout.html   <header>Max time to send a trigger to a daemon</header>

<center><tt>opts_trigger_timeout</tt></center>
<hr>

This parameter limits the time to send a trigger to a Postfix daemon. This
prevents programs from getting stuck when the mail system is under heavy load.

<hr>
  070701000329cb000081a40000000000000002000000013ac038b60000012a000000200000000000000000000000000000002f00000003reloc/postfix/help/opt_trigger_timeout.sv.html    <header>Maximal tid f鰎 att skicka en triggning till en demon</header>

<center><tt>opts_trigger_timeout</tt></center>
<hr>

Denna parameter anger den maximala tiden f鰎 att skicka en triggning till
en Postfix-demon. Detta f鰎hindrar att program fastnar n鋜 e-postsystemet
鋜 tungt belastat.

<hr>
  070701000329cc000081a40000000000000002000000013ac038b500000176000000200000000000000000000000000000003800000003reloc/postfix/help/opt_unknown_address_reject_code.html   <header>SMTP server response on domain reject</header>

<center><tt>unknown_address_reject_code</tt></center>
<hr>

This parameter specifies the SMTP server response when a client violates the
<tt>reject_unknown_sender_domain</tt> or
<tt>reject_unknown_recipient_domain</tt> restrictions.

<p>

Do not change this unless you have a complete understanding of RFC 822.


<hr>
  070701000329cd000081a40000000000000002000000013ac038b600000176000000200000000000000000000000000000003b00000003reloc/postfix/help/opt_unknown_address_reject_code.sv.html    <header>SMTP-server錿g鋜d vid dom鋘sp鋜r</header>

<center><tt>unknown_address_reject_code</tt></center>
<hr>

Denna parameter anger hur SMTP-servern ska reagera om en klient f鰎s鰇er
bryta mot
begr鋘sningarna i <tt>reject_unknown_sender_domain</tt> eller
<tt>reject_unknown_recipient_domain</tt>.

<p>膎dra inte p denna om du inte har f鰎st錿t RFC 822 fullst鋘digt.

<hr>
  070701000329d2000081a40000000000000002000000013ac038b500000222000000200000000000000000000000000000002900000003reloc/postfix/help/opt_virtual_maps.html  <header>Domain mapping lookup tables</header>

<center><tt>virtual_maps</tt></center>
<hr>

This parameter specifies optional lookup tables to redirect specific addresses
or even complete domains to another address. This is typically used to
implement virtual domain support.

<p>

By default, no address redirection is done. 

<p>

Examples:
<ul>
<li><tt>dbm:/etc/postfix/virtual</tt>
<li><tt>hash:/etc/postfix/virtual</tt>
<li><tt>hash:/etc/postfix/virtual, nis:virtual</tt>
<li><tt>hash:/etc/postfix/virtual, netinfo:/virtual</tt>
</ul>

<hr>
  070701000329ce000081a40000000000000002000000013ac038b50000016a000000200000000000000000000000000000003700000003reloc/postfix/help/opt_unknown_client_reject_code.html    <header>SMTP server response on unknown client reject</header>

<center><tt>unknown_client_reject_code</tt></center>
<hr>

This parameter specifies the SMTP server response when a client without address
to name mapping violates the <tt>reject_unknown_clients</tt> restriction.

<p>

Do not change this unless you have a complete understanding of RFC 822.


<hr>
  070701000329cf000081a40000000000000002000000013ac038b60000017c000000200000000000000000000000000000003a00000003reloc/postfix/help/opt_unknown_client_reject_code.sv.html <header>SMTP-server錿g鋜d vid sp鋜r pga ok鋘d klient</header>

<center><tt>unknown_client_reject_code</tt></center>
<hr>

Denna parameter anger hur SMTP-servern ska reagera om en klient som inte
klarar en adress-till-namn-uppslagning f鰎s鰇er bryta mot begr鋘sningarna
i <tt>reject_unknown_clients</tt>.

<p>膎dra inte p denna om du inte har f鰎st錿t RFC 822 fullst鋘digt.

<hr>
070701000329d0000081a40000000000000002000000013ac038b50000014f000000200000000000000000000000000000003900000003reloc/postfix/help/opt_unknown_hostname_reject_code.html  <header>SMTP server response on unknown hostname reject</header>

<center><tt>unknown_hostname_reject_code</tt></center>
<hr>

This parameter specifies the SMTP server response when a client violates the
<tt>reject_unknown_hostname</tt> restriction.

<p>

Do not change this unless you have a complete understanding of RFC 822.


<hr>
 070701000329d1000081a40000000000000002000000013ac038b600000152000000200000000000000000000000000000003c00000003reloc/postfix/help/opt_unknown_hostname_reject_code.sv.html   <header>SMTP-server錿g鋜d vid sp鋜r pga ok鋘t datornamn</header>

<center><tt>unknown_hostname_reject_code</tt></center>
<hr>

Denna parameter anger hur SMTP-servern ska reagera om en klient
f鰎s鰇er bryta mot begr鋘sningarna
i <tt>reject_unknown_hostname</tt>.

<p>膎dra inte p denna om du inte har f鰎st錿t RFC 822 fullst鋘digt.

<hr>
  070701000329d3000081a40000000000000002000000013ac038b60000022c000000200000000000000000000000000000002c00000003reloc/postfix/help/opt_virtual_maps.sv.html   <header>Dom鋘uppslagningstabeller</header>

<center><tt>virtual_maps</tt></center>
<hr>

Denna parameter anger uppslagningstabeller som anv鋘ds till att leda om
vissa adresser eller hela dom鋘er till n錱on annan adress. Detta anv鋘ds
vanligen f鰎 att implementera st鰀 f鰎 virtuella dom鋘er.

<p>Standard 鋜 att ingen adressomledning g鰎s.

<p>Exempel:
<ul>
<li><tt>dbm:/etc/postfix/virtual</tt>
<li><tt>hash:/etc/postfix/virtual</tt>
<li><tt>hash:/etc/postfix/virtual, nis:virtual</tt>
<li><tt>hash:/etc/postfix/virtual, netinfo:/virtual</tt>
</ul>

<hr>
070701000329d5000081a40000000000000002000000013ac038b60000040a000000200000000000000000000000000000002500000003reloc/postfix/help/relocated.sv.html  <header>Omflyttningsuppslagning</header>

"Har flyttat"-filen inneh錶ler den information som anv鋘ds i studsmeddelanden
av typen &quot;user has moved to new_location&quot;.

<p>Uppslagningarna 鋜 kastoberoende, dvs sm och stora bokst鋠er behandlas
lika.

<p>F鋖tet &quot;H鋘visar till ...&quot; anger kontaktinformation, t ex en
e-postadress, eller kanske en gatuadress eller ett telefonnummer. Det 鋜
n錱ot av f鰈jande:

<ul>
<li><tt>user@domain</tt>: Matchar <tt>user@domain</tt>. Denna form har
h鰃st prioritet.

<li><tt>user</tt>: Matchar <tt>anv鋘dare@site</tt> n鋜 site 鋜
<tt>$myorigin</tt>, finns i <tt>$mydestination</tt> eller i
<tt>$inet_interfaces</tt>.

<li><tt>@domain</tt>: Matchar alla adresser under dom鋘en. Denna form har
l鋑st prioritet.
</ul>

<p>ADRESSEXPANSION: Om adressen inte g錼 att sl upp i tabellen och adressens
lokala del inneh錶ler en mottagarbegr鋘sare (exempelvis
<tt>anv鋘dare+foo@dom鋘</tt>), kommer s鰇ningen
att upprepas f鰎 den icke expanderade adressen (exempelvis
<tt>anv鋘dare@dom鋘</tt>).
  070701000329d6000081a40000000000000002000000013ac038b5000004eb000000200000000000000000000000000000002200000003reloc/postfix/help/transport.html <header>Transport mapping</header>

The optional transport file specifies a mapping from domain hierarchies to
message delivery transports and/or relay hosts. The mapping is used by the
trivial-rewrite(8) daemon.

<p>

The format of the transport table is as follows:
<ul>
<li><b><tt>domain</tt></b> mapped to.. <b><tt>transport:nexthop</tt></b>: Mail
for domain is delivered through transport to nexthop.
<li><b><tt>.domain</tt></b> mapped to.. <b><tt>transport:nexthop</tt></b>: Mail
for any subdomain of domain is delivered through transport to nexthop.
</ul>

Note: transport map entries take precedence over domains specified in the
<tt>mydestination</tt> parameter. If you use the optional transport map, it may
be safer to specify explicit entries for all domains specified in
mydestination, for example:
<ul>
<li><tt>hostname.my.domain</tt> ... <tt>local:</tt>
<li><tt>localhost.my.domain</tt> ... <tt>local:</tt>
</ul>

The interpretation of the nexthop field is transport dependent. In the case of
SMTP, specify <tt>host:service</tt> for a non-default server port, and use
<tt>[host]</tt> or <tt>[host:port]</tt> in order to disable MX (mail exchanger)
DNS lookups. The <tt>[]</tt> form can also be used with IP addresses instead of
hostnames.

<hr> 070701000329d7000081a40000000000000002000000013ac038b6000004de000000200000000000000000000000000000002500000003reloc/postfix/help/transport.sv.html  <header>Transportuppslagning</header>

Transportfilen anger samband mellan dom鋘hierarkier och meddelandetransporter
och/eller vidares鋘dningsdatorer. Sambanden anv鋘ds av demonen
trivial-rewrite(8).

<p>Detta 鋜 transporttabellens format:
<ul>
<li><b><tt>domain</tt></b> h鋘visar till ... <b><tt>transport:nexthop</tt></b>
: E-post till dom鋘en s鋘ds via transport till nexthop.
for domain is delivered through transport to nexthop.
<li><b><tt>.domain</tt></b> h鋘visar till ... <b><tt>transport:nexthop</tt></b>
: E-post till subdom鋘er till denna dom鋘 s鋘ds via transport till nexthop.
</ul>

Obs: transportposter har h鰃re prioritet 鋘 dom鋘er som angivits i parametern
<tt>mydestination</tt>. Om du anv鋘der transportuppslagning kan det vara b鋞tre
att explicit ange poster f鰎 alla dom鋘er i mydestination, till exempel:
<ul>
<li><tt>hostname.my.domain</tt> ... <tt>local:</tt>
<li><tt>localhost.my.domain</tt> ... <tt>local:</tt>
</ul>

Tolkningen av f鋖tet nexthop 鋜 transportberoende. Om SMTP anv鋘ds anges
<tt>host:service</tt> f鰎 serverportar som inte 鋜 standard, och 
<tt>[host]</tt> eller <tt>[host:port]</tt> f鰎 att f鰎hindra MX-uppslagningar.
Formen <tt>[]</tt> kan ocks anv鋘das med IP-adresser ist鋖let f鰎 datornamn.

<hr>  070701000329d8000081a40000000000000002000000013ac038b5000009c6000000200000000000000000000000000000002000000003reloc/postfix/help/virtual.html   <header>Virtual Domains</header>

The optional virtual table specifies redirections for local and non-local
recipients or domains. The redirections are used by the cleanup(8) daemon. The
redirections are recursive.

<p>

The virtual redirection is applied only to the recipient envelope address, and
does not affect message headers. Think Sendmail rule set <tt>S0</tt>, if you
like. Use canonical(5) mapping to rewrite header and envelope addresses in
general.

<p>

Typical support for a virtual domain looks like the following:

<ul>
<li> <b><tt>virtual.domain</tt></b> mapped to... <b><tt>anything</tt></b> (right-hand content does not matter)
<li> <b><tt>user1@virtual.domain</tt></b> mapped to... <b><tt>address1</tt></b>
<li> <b><tt>user2@virtual.domain</tt></b> mapped to... <b><tt>address2,
address3</tt></b>
</ul>

With this, the SMTP server accepts mail for <tt>virtual.domain</tt> and rejects mail for
<tt>unknown@virtual.domain</tt> as undeliverable.

<p>

The format of the virtual table is as follows, mappings being tried in the
order as listed here:

<ul>
<li> <b><tt>user@domain</tt></b> mapped to... <b><tt>address, address, ...</tt></b>: Mail for
<tt>user@domain</tt> is redirected to <tt>address</tt>. This form has the
highest precedence.

<li> <b><tt>user</tt></b> mapped to... <b><tt>address, address, ...</tt></b>: Mail for <tt>user@site</tt>
is redirected to <tt>address</tt> when site is equal to <tt>$myorigin</tt> when
site is listed in <tt>$mydestination</tt>, or when it is listed in
<tt>$inet_interfaces</tt>. This functionality overlaps with functionality of
the local alias(5) database. The difference is that virtual mapping can be
applied to non-local addresses.

<li> <b><tt>@domain</tt></b> mapped to... <b><tt>address, address, ...</tt></b>: Mail for any user in
<tt>domain</tt> is redirected to <tt>address</tt>. This form has the lowest
precedence.
</ul>

In all the above forms, when address has the form <tt>@otherdomain</tt>, the
result is the same user in otherdomain. This works for the first address in the
expansion only.

<p>
ADDRESS EXTENSION: When the search fails, and the address localpart contains
the optional recipient delimiter (e.g., <tt>user+foo@domain</tt>), the search
is repeated for the unextended address (e.g. <tt>user@domain</tt>), and the
unmatched address extension is propagated to the result of expansion. The
matching order is: <tt>user+foo@domain</tt>, <tt>user@domain</tt>,
<tt>user+foo</tt>, <tt>user</tt>, and <tt>@domain</tt>.
  070701000329d9000081a40000000000000002000000013ac038b6000009f2000000200000000000000000000000000000002300000003reloc/postfix/help/virtual.sv.html    <header>Virtuella dom鋘er</header>

Tabellen f鰎 virtuella dom鋘er anger omledningar f鰎 lokala och icke lokala
mottagare eller dom鋘er. Omledningarna anv鋘ds av demonen cleanup(8).
Omledningarna 鋜 rekursiva.

<p>Virtuell omledning anv鋘ds endast p omslagets mottagaradress och p鍁erkar
inte meddelandehuvudet. J鋗f鰎 med regelupps鋞tningen <tt>SO</tt> i sendmail.
Anv鋘d canonical(5) f鰎 att skriva om huvuden och omslagsadresser i allm鋘het.

<p>Ett typiskt st鰀 f鰎 en virtuell dom鋘 ser ut s h鋜:

<ul>
<li> <b><tt>virtual.domain</tt></b> pekar p ... <b><tt>vad som helst</tt></b> (inneh錶let till h鰃er har ingen betydelse)
<li> <b><tt>user1@virtual.domain</tt></b> pekar p ... <b><tt>adress1</tt></b>
<li> <b><tt>user2@virtual.domain</tt></b> pekar p ... <b><tt>adress2,
adress3</tt></b>
</ul>

Med denna konfigurering tar SMTP-servern emot e-post till
<tt>virtual.domain</tt> och sp鋜rar e-post till
<tt>unknown@virtual.domain</tt> som om de inte gick att leverera.

<p>Tabellformatet visas nedan och omledningarna testas i den ordning de
r鋕nas upp h鋜:
<ul>
<li> <b><tt>anv鋘dare@dom鋘</tt></b> mapped to... <b><tt>adress, adress,
...</tt></b>: E-post till <tt>anv鋘dare@dom鋘</tt> skickas till
<tt>adress</tt>. Detta format har h鰃st prioritet.

<li> <b><tt>anv鋘dare</tt></b> mapped to... <b><tt>adress, adress, ...</tt></b>: E-post till <tt>anv鋘dare@site</tt>
skickas till <tt>adress</tt> om site 鋜 samma som <tt>$myorigin</tt> eller om
den finns i <tt>$mydestination</tt> eller <tt>$inet_interfaces</tt>.
Denna funktion 鰒erlappar den lokala alias(5)-databasen. Skillnaden 鋜 att
den virtuella omledningen kan anv鋘das f鰎 adresser som inte 鋜 lokala.

<li> <b><tt>@dom鋘</tt></b> mapped to... <b><tt>adress, adress, ...</tt></b>:
E-post till n錱on anv鋘dare under <tt>dom鋘</tt> skickas till <tt>adress</tt>.
Detta format har l鋑st prioritet.
</ul>

I alla format ovan g鋖ler att om adressen har formen <tt>@annandom鋘</tt>
kommer resultatet att bli samma anv鋘dare under annandom鋘. Detta fungerar
bara f鰎 den f鰎sta adressen i expansionen.

<p>ADRESSEXPANSION: Om adressen inte g錼 att sl upp i tabellen och adressens
lokala del inneh錶ler en mottagarbegr鋘sare (exempelvis
<tt>anv鋘dare+foo@dom鋘</tt>), kommer s鰇ningen att upprepas f鰎 den icke
expanderade adressen (exempelvis <tt>anv鋘dare@dom鋘</tt>) och den
omatchade 鋘delsen bifogas resultatet av tabelluppslagningen.
Matchningsordningen 鋜 <tt>anv鋘dare+foo@dom鋘</tt>,
<tt>anv鋘dare@dom鋘</tt>, <tt>anv鋘dare+foo</tt>, <tt>anv鋘dare</tt> och
<tt>@dom鋘</tt>.
  0707010000eb45000041ed0000000000000001000000023ac03c3d00000000000000200000000000000000000000000000001500000003reloc/postfix/images  0707010000eb46000081a40000000000000002000000013ac038b600000784000000200000000000000000000000000000002100000003reloc/postfix/images/aliases.gif  GIF89a0 0   䦂帯摀擙吵雏行袝晻睫怵狼犷瘅w}懮武拿黉沩盼桃桴斛<<Z腚礓珧md嵥受鲍祟镳尚孑囔TI媡m抾倴蒈酔Eg寖蓖淘凑攒厡g幝截煑沮谳缓祁眭济嵴陧剓獕惃_T婼K們zΛド昧覝炃技拣蝤觎酰ゴLCu殧痕UKz貊跗五jjzrｑ耱檻>4x嵚阎閭垱}u潵ッMB|bV摐湭摄jj"eF9乗S冨梏<1jzr暕沧沽揎聍桕鬎9{构$Y率銊}溎抒XX剒o┘驳肋怵抖钨砧嚆瘌鳇aX埅ソ┆敢香津瘅md榑S揜F俓U|nf揂5t毒辮g楏蝤剌礅骝枛柪肉A3y`W僽{捹走賦~抴喛筬]彿餐锺ギ諀r猧_挶淳镲魕埨}嬄竟芽涸x嚳篑轶哕靲幟躞鮟Y帎嚩腩鴧撈艾哭坳q及费瘃潦孓狃潬聒暗筒凳眇4)bic儨煰aW1#n1&`漶纳瀛敖季驹让诙乖潩鲸シ寣:.k拖擀┒Λ估柔殮氳珧SHuj烖6'tPPx覆蠚湱殮蝙狁壶\O戠珀泞膊瞲嚴w喞佑訒摨姁崰Iu, \蝠鶧9q3)_妷嘎幼鋺憫dd栤忡cZ娀节f]堽[[壄QC嫝毩J=|倝矚湹敇穧}椃OM~XM咩餠V伒档k_氊遭!     ,    0 0   H盃羶*\劝!Au霺@雹艐/9脕岫>酶衣牑蓳(QjYI2Q	@0蠩)O臏9pA_, vh罠
Y趓4〣橩4u:嫟#泃TU隗'W乆9") 
zD
X藶E[h郾鐱CM痶&25;PVy眊螼房鴫靥	臵vH!%5 uk#晸装漈輙@蚅刪湃v窢wQ%≯<欀4 秎}号獻	98嬓頉汉飏-J怃Z04岯9*M!kｉ 噉{Ey'榚 S #B駝S旙N瑰v柔
爡懥1占q"+蘱aOdhUB爍犃1嫧`E5)倱LT悁邖D 逑 X肅d%9t庤∷!显0堭>) 歺変AF饬z BN;y怌6 	~I(( *D 6(& 
倫	櫭à鍬L 衯5@撈5S	q銩d )h~` J瑞Hv/Nu x笎匭減*h.槻)@ ;!绷镐杒   6匬迉vM 訩 $R锟  !0萕aUh	muV#}岙 ＷpdNr(爘 #0 k堯9-0斆[鑀饲!磿騚皫,l(玅才"ど!0*371H渻渁溝1 #q肹昑偵欣D[d蓢Q軶鬉 
 h騂;v孉G	-!翍g曅迫`r`鹬^豷
5C湌Ex啾繫v鐾P)CD
	'SE軀⑵間瘃崓/腁L 嵘8 u@!蘸BC#蔃  &s 鵿崩笮粻F?麔Po麬%R孉硏 鏒C釀"AUA網蠍A鹪!D(霸饵梅Y  ,@埫 恍G6肷'狰 爜圿乩y婠W祩|罻筷00勨P@槠B#p00b憡嗦nHE3剳=剝4a挵B厊p !	M圔渢ia土8B0$扰
1	2I@2汃宧L穴灛垼鏗:隈巙腇衼弨 I菳 ;0707010000eb47000081a40000000000000002000000013ac038b600000b54000000200000000000000000000000000000002300000003reloc/postfix/images/canonical.gif    GIF89a0 0   ff櫳射kk澯俞肬Uq排诰臼洓接娱邋騜U杶}潈儰9){LLs牋沽磷33f晻暣惩蓛儩dd婸Pi行!G倄瑄u［坫铂虝暪``恷z2%khh尙J?|蝰鳊灋息⑿}}冕悙00a厖睶C嬆氖殮秺姢\\zCCrAAa崓$$I殥絯lez徉>=]9鞍貞懥貂鶐幗晹嚨洓撂淘北腸b冴牾**Stt慔HmZZ嗩眦jj儾敝ゥ=;m:2[止管杂躛^5'rnn摢C4'S99c浇迵摀tt媷}CCi,,X陆識R|创賯伃dd晳懚1(T媯橙嫩刂屐祚//^ゥ矇壈XK憜啴|r┥荣OEypp!!AXX-!b儋祺鼯骀锔惭技糽c澼蓊BBZ吵砮e楿Ubb搷姛虉埖晍zヱ聒汗趴空寣88Z敂艣浲噢雰氜蓍uu潃88T\\婦=c衔傧捂zz唖s榵x殗噹晹凳受妸乏β骀隯Zs枛权ㄅ㘚[壼谲殍7(v憥ス瓜PPw槝蕥嫳SS~＃艊啩yyp燀祗蜕逘犂è覯?娺咤yw9+s潠繨Ci贤遟g) L~爅f儞撁晻败阼;2`XTt枛绹厼qn妐e【叫]]凈篪帋>/77i父值纯翴Iv後**D枑皾澢靖訷Sza_~亢裐Q儴犉殮欼I`XX|潤瞮u|谮44g溷桡泐40Wg\歕\66^婆薛''Là矾拻￡觏湝獩洢檾!     ,    0 0   H盃@5粯鐲7p淗眀A<搗KX贶茶暸墏N<駟葓c偱脉筬#栲
=w鷘lVQ窕跺讻(4 =y饷)"-悄<籘F漐慤:S<點镸C?j0:噳5X嗄J=	'Hwi鼌啗2卖茸 '荶DqV怖忸pqVB;褾磯>Y'锃j j涅嶖G >X案鑔P|慦S|脌df9癓A5pW[p?l&.V 龍纉n筺1h ﹕p0Os陜 慇扷 `状≈@虅1B''滰6
 聾朗+燌1澳騖犹;健豦 8罬腂Y4(pF9& 蘩芭T"8[戳AIJ
鐕/09u槂
蚶饊'鳶岶򤓍eC妝彬H~ \ 帞0/S5a|0L淴屝 ~x杽(纻gh酔牜U|5 漪摄\pq%Ll犽n@aJ*駢Th*B0b塪弔*@U匑謇蚶0*d捠?(b @#B,F8態(Kp 燌拸2懪?i0+烚爡/ 駛丼lp9+AX&囿悅
<Q/!ZhD%输偺vT‵9DUbP<2P溋
+R疾 4RUa暏燣(袪"* $盐',T3e( 3pX裆'裫E%抶!<T纼#H逅+IP釈2櫞 @$! Q悅h瑦h0pG A%+4鄨5B堎`G#cUr^鳥	稵#p是t媝	鉒11U榬*F噐屓R	?ˊ	#2<毕X蠷狧r*H 騼<2篅笄3 Zx硛譼  K繱B鋌婪!@锷2~D.P虧2	$信'Q-PBP-. 3鴅z扏 A釻乻衊#蠢d惸紑<F躡$ F!;">"誘$鰝[ 浓t?0^綈 奩|,瑁張4瀜,"晷
$饌茦X@P$j ("怴夹@9T	犆 a僜J镻&菻;	6鄧/0  葠鲟僿垗@@3鑲樨#Y$TB<惸&lb烪&*1 k %F	処 qH' 	0HOB/ Adpb= 鼱12 ɡD;0渂9怬$4X箽篙b)< 萨!i(#"D`餬`G疵 噌
犪鵻=(($ p(E)"q
k$怐鯵e恅|皡>d餚E噄T`  ),绬hT纼V6 5t躡R榾V店攘dXF%d1犃歑
衻G\瓬,1 5 嘪C ,C魫肰礘哅(]枧\q埢5愅V儔^!嵉Z亪Vr$\悕 \;	塸 爭V\A珘5 p+惝墭ㄑ$鴃Fˋ7媰Pa^6恞埡郈 	燻Lx郆`l&O4
H!9 0錧浶#裕	!X 婦dX#袒餉	園0`嬃鋈| 亍甲- p
]@  \ L衋羦}'愋Uz乩Y/W颽 } 8 *>歼4h鹦Nl ò
`\牜@(*糢%&5 P乑8 M梅衼M| 8L9瞥  菮刬鍊Y ac t{鎂@鸛D Wpb截E/衟5鹆话@7 噈ly.鐵pPN刞い8Ap 1楯毎$辔x絺Vq1 Y 羠店;赉飄 "na3h&46 G 皪>兀s8A	篴唋tu莦貑PA#<蘸vA@5炫嗚%:疳5憋Ea}躎J 礧}PbiXA侱=h亷Q(1o.6迠y$WHG:P巖t#8i7!@+粤嘍w牋9: ;0707010000eb48000081a40000000000000002000000013ac038b600000857000000200000000000000000000000000000001f00000003reloc/postfix/images/debug.gif    GIF89a0 0   行晻暻纶摀揁0佫坶秕吵崇屣桄瘗>.]P斆咀RD峗R暩残镱艉囱卣鍸>夠聆铐艏技垀奔队噢腧聍鼟壏棊篤H徹藻@1乢R朓9嘊3僗J憐oл陂淹嵴雁E60v啤櫫6&{僦娲K<坴k捈檻0wgZ歜T楈牝繁袦斀圬鏏2俔O擶J怺N搸叺<-阑誧V楺C寙}愉妧睼I愪忭+ssh＞冈O@娽唠wl^渙c犐跑fY歅D厓y璣P:*}自錆斁pe悞驿镖祖F7匬B岧巺磎a濶A哬K抰i;,~~sι`S朙=2"x豸雁9)|檺宦阶yn鳄汔烀矩目貝埛TF庯铛妶慏5匄觊駍g5$z棗梩i<剈j;+~咻贳勹v獵4倂kシ跋@1侻?婟苜?/~t篪_S柍殓疳揠鲻1!w弳礡C嶖貔zo◢劥痤魿36%z徇鞖懡5%y盱篌篦孕鈢qà澝OA嫋嵐J;坽p˙2俇H廞B寧劥А舼r┝恢档礟A孲F巈X橮C宔Y氾眙B3俍M抴p<+~膊媯硶尮弲爹%oxmd埮临挝闻邻篁災觅儋憫懴肃僦迥孔寕磾敂纤哞屣有恸SE8({RE圶N匩?娖邻Е畡z坳xmヱ秭\N摓柨桤饢嵑噍脲泐邃锊找(q%pN?墇u崜嫺耩銮泌?0坡谟佑妳燝87'{潥!     ,    0 0   HP 0:v h &墢#N0fF1苋q#R]喩0z%蠧	Xv: 砢匑X6	4%F勏>a8赡D╕皶惠聾*"bc KH贑M要M湉k悮Q餶X% E聙呖hF嫬篳!<\"K瀄剝e螤Z凐甔憥 餴查g陴kb糩hI"皻$r毽&贎[Zr鞾GF|嬬嗅琂%慗8;侳/趭娅N琼5反〉e嗟Z 馑焉h<#}G0雿6" a鄟@垚
 迹!鲼G眣 夬!t!╈F碻St',K!銓"敯 枲A8b8憸q@A+聭H唒){溌忇# 趚搯1O虪廘P仐`~Y茽b媌S脾滒脹o2	t謞(}羔BWhN8FQ$⒖0%e堃gq-榔U疵t阨斾@]弤膧-h$4伱鉅U@劑≧:% 丂堨嶩‖矌癛巓竹Z訑-餈T%FX釈帔翶0HT	BN涥F柖嘆郃糁 $"	 +愧藧绛祟祑鋰1]誀鹇匬 p覨祀F把 渹 ),r
畿鈨@[糕M劃)雠蹈$詌笸踔丟"T懿b;<鹈DK`粞H鼲FG
DmG*榓1澣罞\w偷d凪Fe藑M綉魓c岪U`旅躷箴H舌囎&坬椞懵釄恍D?2?讛'o/'榞顏%M"-揦虜qrx lc僰'饛艪	#哥~;sTj!{1 堄K1`A4<
(坅
 需@壂^$, f	"2,A今@%\R慢麟衙Btp倝旊J.D厒!8$T`爤g H岃BɡA* 卲(訞B5T"l鄤3%,|$2>鑴8a溊C'PNh7め
nAG拾tc桒&$  砝	v傇o#~鐵^q丆擟頧;榒;#"*`;`嘔#還E:0 畎H	"8缾	1YhA	C鉅-L!
鷓5<3犜骛伤p6 V蠫空	l樑
8R帞承 XUHH&
cl鄼蟃B9.袆)饥 &0撫宭 `筆8巧弢 岺!\a53C%H鍵O!d!垉14蝵*偁
@袀P>x帷^鳪>衻奪储軽C>儂敔 ; 0707010000eb49000081a40000000000000002000000013ac038b6000005f2000000200000000000000000000000000000002100000003reloc/postfix/images/general.gif  GIF89a0 0   鼢鼷摀撔行吵硶晻{x偛膊档抖饵刎谮貂躔痧栽阅哪换粅z囷镲紊薏tj熓跑栋暇合弹蟨e濇滂xo竟腺儋趑考欣佳葺帑两诣梃滗婵合势茜珑昭鉻k焪n℃彘沣銝枛眄肟恍颇吞禽豸貊貊敂斚诉抄诬坜膳茏渝悄郛ㄊzw墰敼净酸囔鹏趔痧鞆弿蝌驔捈镯醴范挝蜆懗反酶父乙覝敿是釉锈┅┐创松詧~淬沐儇菘佳皝}攲偙靠郡溍找甙┨wt兎贩篌蹑骀骀鑳y照RKn沣衢殍鹊叭後獐┟邋嬉吾铑韰z白舟哌峁构後鄳憫茇閮y璖Kw膊便怄祀鞛暲苟胣d涭祛蒈邅w兰提僦婷矩乙皂眍躞陡惭铑铍腩技籨W樫刿问咣谵儇邅v揠湑距哝溷驷噌崌ぅ澞酉鈣r颂xw~{y盱罂赫oc∽鬃镱裎诉镲懋ㄋ觌腚腙vl牳的佑游挝憟登秘杯懦澜蛠v掎铑祛盹镁咨朴哌呤扔铑镟噜忖怿腙蚪雇殮殼い~{垻ⅳ杂庸聪}z啲乔寝坶棗楛檼盗疚亮硫耱琿f烅祛zn锻奢zo疽有崂夹洍乐邃錵a毠慈驽娣蓖陆易哲殚觋殡觋璧{y嘚Fx两蛙苒粣埖纤                  !     ,    0 0   H盃羶*\劝!=#J`似膵
E0保A= r`孎v俬吕播藯^馼兺8qB*哑乨T=!隆ㄑ*U*颎啩P嵟娹O乣I鳌玏fK6Z2dhX硕m[C躙 ( 蜿誎Ｒ吙槄3s藣B彻#Glla.巓侧dM2B蕇O脏$hM巄	琔勨\{f傢鄹s朕m汥嵳;蘆f售朄+_渭箂桠4|N(Imp: |堝R鱾; 绑盈鐺殏箅呦M
祊
	$ㄠ6锠側x讕糮SO-7恮+梦9筙A崋y7B馊'eH"翄0(銓4緓A	閍酙/6)鋹Did怸
釄.  TVi鍟XfY"迧阄W3%$`0跀欈鋱訅:P\R翝x姗鐬|VfRPk"\E4觇F*U锠9撥3n
:⑻∑:*u  勏褽 詊氕告猭&$爣3k毂&碧粹瑜I洿c 豧盾v嫮 逎p")	獴Vfw⒉俸竦;谢饢(疈斃军鲭锟 ,	偬3.芇伬7祓G\@LD3W狇w祚 o孞s整Q&TR'[D 0,筇4譴3%芤 $(P老@-粜D=4蒸1 L7眙覲G-踉, ;  0707010000eb4a000081a40000000000000002000000013ac038b600000730000000200000000000000000000000000000001e00000003reloc/postfix/images/icon.gif GIF89a0 0      :*}裣 龝晻行衺t@@@麁摀摽靠䜣幟吵斥 -' 哌邚弿灑000镲 狃鼬鸴``挝kkk痱耨
貂/"e螋蝣9){   煙熚予qu嗁儋仆銹PP 送%%%觎鯗斀UUU祛<4 培貊鶱NN殚闿]]ppp抖			寣寙撈HHH种諾N :*|鷙{孊3冩骀谵畹 ...亀瘌w偤坱 玖痛jo璆=$N!!!]\犲骊拥 k_炚匐[[[枛9*|;+~徘午轶徜聩yh 抹 ===鲼鸏LL鲽汉.&Q腠(((fffou擦贾佑育|||_R E眄眢貔苘軀埧jz
覆444>0併亢u獺HJ}s゛U梫vv苻瓒鼬鶃儘铒黛铛èǐü沐眭鼷貅鳆苟陪忡K=壿哏24B圮岚檬悌⑵殪鮇KK牕淋咩:::牚曳拒wl梺 櫆嚩tn嬃亮牋,-1"Iccc脱遬t俧`<-!(V厗壍顾〃离铛北盉BB3%oz{叆WWWmp|腩89<6'u圻+++豪又剡苡TP楟屃槪侠柒殯煒槝sssi[ 墛屇荣湃用乓KA ux###YV滈腭65?XK8(x槤盤S^, ]滔豴s|^`e上孳囡0 圮擗兆7(v奴!     ,    0 0   H盃羶*\劝!A=#JH湍
	(保A= rとW0倲
佀0c耚曞
%Q抰牕蠠@VJ屼F宊X来┯Y(渖h葦J跕蓐赃=qN
壮蕏
{i沗f>昛h郢)KMU*鼗q竤磎劽o!鉮瀴v2溧c牳&履L虩D䜣!F	 亍
8U(@8bJ杼-@(Hm货B97(慶娾孎(0鼱Z	U膀  (z%$@丂 P弤 账c7堢槚<<bu:6俲1焬V!つ&$!	(` -t 磹h '7◥茾倀繢Da$戗v丂3d勉T髁|<l濉翤@豣C&V0f犗t癆獫BC`cO\LPe時蝁O蠵fkyD硥"A(x!B-s丞 <盋uf6傂郃e#N歭餌構2橣v樾C>! 郟埣!柙i'_>啊A<02lh(G<0@C2ZA懧v  Ａ繧xT袰$`:B店@sJud94q&饽F?(. v@吣 D6@廧\m 钺膸1@P摤@  y@@Dc,鑲4!⑵G奤 -擛HP5赥缏AW澞h 3爛GH罫 駾嘐 ,崘,獸拀聫!> ,烟/Wh,腂滰dA诇S(8900	B<-q攪+鸛犌閌 	w!lQ7茇佔@椑1門33M Y4qi>,C!9x|	駎 ",丳&eHi莋@D皓&q 9tD	粀暾% qu2C搪2z	?qD賝|Fb1塃d澟&	+5墎:a悫価S淉H瞼z饍@瓳滧1鄤(dV█沬, $@赑5泼ο(i>L ;0707010000eb4b000081a40000000000000002000000013ac038b6000006db000000200000000000000000000000000000001e00000003reloc/postfix/images/ldap.gif GIF89a0 0   摀摃晻行旋吵蝰魻湳1([2$k'U趔鴘j崵派嫩bU榝Z毑菜技紪挧豸人\\娍绞拻囤宙崉穿┡)Y问迋|榢e儾.&Tmm亝厲3%ni]溍矩QJn蓁腮,$O潟緧嵁牧蝲q%P/"e E儋88T弿忉9)z坡貰:a铐鹣妥鲻;+~wr幆┦#H媺澿揸驽5&q$NL=壔狄AAa灇(Vrr┖qen?0佸泐ff槰ざ串蛽姼!Fqk'T肂3儲熌昭=.~6't痫鮔J憽櫫cW柸蜜豸鲲铘殥紪枛鹢c牏煵UNq?7_91ZNNtKDi儁1#i3+V痧騌D嵱镶棊函TF庴篚綄尣悋!H渍蕺Цc\}1(Y葳檑罔嗜觮iEf倚&J#Lii浗赣厈甀:嚺刨vk}RR{pp+\蝰#K找-!a铂天塍1$j嵌陈趔霰YRtā琵篁魉禽SSi鵍Jnma, _nn灢膊鲍坦感唡朽OA婳D卣遛茔捃鐄u?f膳踓c劰杜拻+ ^钩褉猔`(PPA媤w專牋坑佑垉滅屣F?e敂5-[咸鄳憫形蹨柍儋貳9s刂辸l</rzz憜啣&S0'R様┇ダ环/&Y;3\莌hy北撑徘噰役貂鵌Bg'V8(x拲) LshR嚘⒌腴騾|u珰殮气鼹椒岳恢亮謅X嗰聆耨魗v懙档桄鸱毙!     ,    0 0   H盃羶*d揊鳂`垄b!￣1)Lc,R"墿蒙儑'0=储a倞:^t贒銨dk栋鮋FE鈵
(~鲽劺?Bpq1qB#>	0=*vB糩t菙O ‥2m	w旲%+悆孼傓&$K澐}z&!L{U	槂AY詉;悩/v^>ヽ裴T稁(7&Sc<r奞z,11偝陆(橌θ揙TN嗅燝M2_+b&冈8棌F镂バ貣銍-o+搾猀D[bT&纣o%驂1欌-?d W4窯/1攦菝G!%淍(嗬d	A"! ~釧孹釧'Ω".偳3"6c眸1B(銘H著焔K2欎Ey鋽瑁奟:%擣^楗塟Z	$杁偵<Ry銡g	c檃瀑鏃U謾w	0)*9崰 2	=捔0i.x3dA'疲m旘驿-D溞)	9 覬塸鹇彍-y|0@&5剙DXZ
0&&+S鑊F怢"b储I=僠' ")死袻3朱@q1!蒁眻( 秼 7&'h莫
鷺訃>*d癘gD捦摡O,扡 m¤ b綳馟0牞睟螠鄟 鎬筡R笸	"刑楥銑}h蓡0`跽W[POj勸XcM+豟
+栲L4笯xf<`鬏w2旄]酀7,眬恿釄C%V笃5瀉懩/Tn(QCZ汤佩枺儔.4az娙亖嵂r	炨醋n高顒%纛;84脬x屁O*L@疓m	1K4/VP P丽躻稞鬣瘖$TO2 3 H訌鹎/?88饞J*幛+kx@饊Ly ; 0707010000eb4c000081a40000000000000002000000013ac038b60000093f000000200000000000000000000000000000002800000003reloc/postfix/images/local_delivery.gif   GIF89a0 0   烫行+o汗綍晻hfk镇蝌鷾洝退邀洞惝~~仝:*}婆扇徒祭`U浗魂噬味垂吵砶ir|{兡苗灆証U抎X渓c潚彋憪拺娏5$x厎籰h勍汪屯{r磪儕{{j珝喣2!uSI}殧薌EL寖礥SY缮蓛y璽kＴ矣ff欍忏枖瀟k炐罩C4剴壎眄砺僚卑粗挝梃閕i歗]f襱r{kk撝屯涡喧釉⺌Q欶9仏愄儋倌灭绕獭潿拰射忪赵軒帍儂磽挩亐哤J枤櫅亖ㄅ徘崒恷r標崊猰n潐偅自錯_檨亖qq澘卷牄无捱谫輞o受D5~cZ擽Y;:>谰芒溁ts^牐rgv|两愿坊詉^澩旺UL孾Q姫vt抧cね钩衭k皚tⅵ⒇漱烫䦂垑捃閆N営佑UK佈灈穜rtMA吂典wu嫶陛I;埓撤墒鶆剟|{澆鴸枛Ε狦9嚿任217狗璧崇隘翅哽UG帀啘屯狱苒鄍f剝喫侍棎荹O樂毕NMP徙_S栒罩増巻啝拿/.0览羕l渏j浱帖吞棖槹肿⺪f拠嚟谧鎥nㄏ哮婆正328交铯熦RD悓媿8({范伐３弻殯撉鈎g槕尌骀逑卧岩'%)XO徦烃j_柣喝MCxomvǐ97;苴哐隐垎徰妖倎浽锈tm帀墾疤她趑ww端上SF卽szx忁湛乖!     ,    0 0   H盃羶*\劝!A#JP┰膵
	(保A= rと&;yq%K偆!冕荗3H	t2硻!.0毝J*G厨!1サI媕
1g篇bAれh'EG睠艰饻竐褠!fUYEN噹H葷烩泉虤N	荓Z-珵閻.钴脟!|ā椺5谈騮徾3)剚 迣XQ;/#"M"^悽櫝朊Gf>h56i隧鍺 奮Ogv羣c貙Q$崜a<%堭咨4M@ )"h钐蒙M餌馣-台9'磻+Z氡f1D鴢}屝n(qO_ H 眱GQ[%袃嗢C:あ硠(p椉A#0矗]PpAj 
r(#Cx郺\x尃? 8⒚
+虆%R$S虓鱈!D糄崛F答聡((#.雸笏.,僆6捫`v繿"\癀#(!51膒	!8#.獲M8醆q专H&瑜撩< 倢/躋O锠4觴羾'屍 5
3p 癉	($J	4倕- AC旇
b炐h戨窅Faa	%$ A!亍A騮sN紓旞儊'4z'Sx袸'|+わC2rAD2奔*盃ID揓
餳覣篨rH輲寐 D?Z
..;W+W彀C厨痹稰亷K尃A 葦憠嘸p(盆怳p:繮0竌\层墄爟*  6
顯睟2帨拏	箪19}碄Gf豛U郦m泵瑞ò/TD
5- 謅壺(+.'_盞痬楻N*慙:(+桊欻Xru坝吥0r4婶Kgtt柳\@ 窕
腜盙6`#!啣舫*U祭K"酎逞繞@!t杦痯%@D榒Ed;篭必#撔	H*0`< t 8 A
387簆&$鉧O蝷廇媓E
2羭Xi/P@$Cu@黙2v
Wp@巰4f6hh匩RC`惲鼻 噈茆3醦 T蠫3绦孎d +8攼	V绬鵴-,> -亝<htもF*廊| A姥嘝a孌+ uX 媢y茾@建D.Hk銙Eh0Y,|7C@RaL !Xa塋 姁
,菭, 噣  N#yX6 Xyh3 	d慐0(倰G$豍60B0JFV y貺VL憺畅6饊> 0詉L@焵B姁@樼AxmnT鼟@*亨 h鄅V擟za婸哾 `HP.銫貈剚N潰$#	$裇2# k樥F榾L0惵H@@"卮}鳧E鸴凮鋪 Fp JK@#鞅俠 6鳣e杪籜(鬉
XB5橔H礹A-佉氈碏8	鈖冎篤`O]K[挔 Aj鳞Ld"Α( 	
@茚椄b ; 0707010000eb4d000081a40000000000000002000000013ac038b60000071d000000200000000000000000000000000000001e00000003reloc/postfix/images/rate.gif GIF89a0 0   摀擙吵行袝晻䦃厺技9)z颇猩欺箒z滐眙礻騬fl墇t擽P<-;3[M?墝兂竟觭m恴t樝妥砸:*}eY=5`i^榚]夗祗VI娖临4&q碍 E僦鏉暱2%m倈⊥赊YL孎7匘7z殍馬F呏愉迄aU6+h:*|媰揠昭愫匆豸#J蒇璩伶漕*Z糆=dA27(v两謢r﹋^漨a焂K&SZSz殥, ]"F驴萄梧忄;+~f[6*e桄饢徆2%fb\|溽鞤:nym葳遢茔弸Q=3h拲櫘枛杣jご{q↘Bp, `盢FqRD峌K}驽牿貘钩褌x瑆lヨ珈篁鼢鼬PB嬹聃aV岕篦谪琊痼肂9i鸔Jn有0#h`S朠F}镱鮐F帗壏-!b噙弩蝓MB{J;嚝ト趔黯2$kv┦反6-aァ:,u脊/"e耩鲐洲ri8,l栋.!c?0伡队挝1&`每欣恢{*!M蝰鯕殮UI/&Q4'k'K鷅X弅b廟F倊tsi6't鹴i/"c睦貐|咿鏻a極A婹D$M驴绞0#g饲堋灡ZQ伈膊儋賩r爲憫锻LDo善众汆渍鈾惢敂攃V槬牶咸遯h棤樌迈赧C4僄9冣噼pd6.W~y?0厈佑tj濹C宧^挅懆灅3(e2(aSKu殍韔h嶠ic単a倹棳LCtKAu8.f档当張!     ,    0 0   H盃羶*\劝!R魠僓v霵邈敀e4堻q楴MCE.VP0K |詺琶珂(N霒釼I爜N敆{T<陁  i9勴捎9HrJ3Q貉(P寪E莞]"ぶkB<紨軶瘢O=2$	Qw!魑$Y肊	ZH恱 A嫊,2O讘
当 8Y,%A侫烪:xu鋮 c騺NH<,葎8奷!謓刴|劼髢lMX盘u儝"] AF肸4準乎綘> 務LQA, F汌Q洹兺4=h駜6!
 荒咯Ｃ
 羾/噩P>孯Co麮%饃嘤ZJ\ `
%w0罛
 <T,詴Cu癝?  %
T怐)H '尲S06-4锇昢6縯倚戉 'RM礑	
~T <Q# 萺爜v%髝"殧
lB枲dA N pPMrB; l3Nc璃:DBq僛 餾E岗桗bM釳4┍褈3藮布檏B曉@J&筨0鞟6`騢C榿\r{>袄LDt蘰N/鷎P爜}4F8%偂@奃PB9 B溹闻 5舄 D& 此$c訉A|羳寑6<$$嚵A睂搌"G$0 =d坰蚄P@.滘N q9xa V擛29B*蹭釪8|狑 鶴"  也nW}nAx 4愲狑:@/'8A2翀*扦餌oH讶阰馜)Cr8汬PH92硼S^  ! 詯pB7Tt爙d鈹@$鴖$
'皞!4晝|佡@)H> 3@"`l\@b(儾^d ` 虪7攘z悆E6 饘}鄤(L
W嚷j團@陴8獭wW ;   0707010000eb4e000081a40000000000000002000000013ac038b6000006f9000000200000000000000000000000000000002300000003reloc/postfix/images/relocated.gif    GIF89a0 0   龘摀行袝晻ff櫝吵膈茑飃g欞趑沽迃倳徨窀讣蝌騥r墧枩  萢a慛Nt  hh毤加憮99U篌鱶zε啼==Z22┅芿e榶埨悜禎潽桃琊蝤闉濼T~亮挚漆い标%,牚以在湞　nn灧IT\\奩Y卶q燚Df  准  dd攢幟[\z^^岝  ee排鸵  档刻誊bb搃i歶劸﨡K敔烷舷寄鄉l澬朽鼢拻pprr埠垸hh欪ss≥囡档蚸j滐聍墘镑鼯皴枛}}QQy彖笸拖櫎哮HHl寣矃厺媼〔蔡鼮灳[[坒f梺伀枛柦狡EEh潷複~凟E_北潩亖沰k涒羼溏騿啹{壛创蕍v镲後ho咢@[摕虄儹UUⅱ羇a徻揄鲑輚u档鄂鳅lr墬椆觋耢祚适褧暅诞蛡嚊ee捿亦GG`[[uv峬m蝌趱鷩嚇趑仓篇洍怜岗zz煙砯f暬＠儋賘m懖膊敂數》挃熶送梃飖u為殚}倲敂范拒圹釧A\易臧PPQQ  hh洑殮oo掴锕``蹡汏咩瘘x|悵灔CC芵`垐無p朁>@忮哌构辊貂鞍葨枿粿@〡@憫懌>G崓慬[o昱蝜l氳媵九囗盹靠繉  後敫擂}儢郝迬幋踛y珬帛d寄哂佑祛鲒*-沔蜩牯ccy觏酯ギい%%迂挲重佑技!     ,    0 0   H盃羶*\劝!Ak聩1枲⑴3j茇葎 蜴翦g倱(S猏刹=_ 0猩88b$摝@ur
%膏A優狿檽+怦X翳踏K"t %ΘE*P┲+ 1b嘪>={0碲秓墒蚃棤]秐T;/A'#詡蛖,_ L :s;苢Ce$71cu鳲煥儏鬚Q8格^卌NVl	俑鮔讱帾迏!-R1Y*虆M|漰P楇]1LG巍/l9h:/A!圔蔷UG< ([浒9+ Z丅$K|D礨崞
枰臔@袮7V╞B04谩e4\Py,褹;鑅貑",R4咰EE鐯O'4Fa  貍i擛P5R<魉羳@C鋶F<磧DJ
T峾 @Ｃ覮昢嗬Gt@9 P?R ;U糸懘爥*} T P笑
$亖t 3z榨5鹄7遑ch}V1￥F*t:郜塰P  D
剢%Z)夃@k"軞+ Q鞭P練晣S*-#I魠
oɡ,╡!麓idcm嬥悂P<皫^籔 / 褍*D
貮喁9T侙k鹆麐$硅*腍 J
p碆k币AB8p眹$條蛏窜翆^BI麫"寢b急*鋺O囵,0m粞搆}鼻蘱淌#夎R墣S`怐(Bo憮^}眴6pRW8JCO磥%36=+m緃分68Dw菅X鬓g撢6X繨Ct@?鬇l蛕_(妡饋3澬2lXpBG砸r玖!t.l寛C茫羹A觳桥2駻)TP鹡鹆)鼽p?/T]r)lCq螾)鞹 >&L$  /-r葬	&鲼2f ^!	饊L髴俕dB宍,胬峴鄠虪3p躠 ! ;   0707010000eb4f000081a40000000000000002000000013ac038b6000005e3000000200000000000000000000000000000002200000003reloc/postfix/images/resource.gif GIF89a0 0   摀摮吵晻曽行EEE哪膎nn@@@貂鲫觋灋濬FFUUU後岣父畓zz沐陑仠===盹嵙骀妾豆镍:'qqq媻娡屯侣聳枛⊕崱　殭檯捙]]]档担眄---揶迆~~Xa哛RR9)&刎豀HH{>1奶戥OOOΖ666倐JJJ   蜒妖扈GGG靠繌弿幟浇鰰伭K1111示览罀憫墒褦敂照栅悙悀倁uu點cc乔邱觋唵


厑侓急999iff庑推售艜⒂湬邝珱寶虳DD焘囫耨憥嵠纫枠涄僷适蕇伇挌盖M3视驡OlR[{q7*|9)瀢of57>苛七泔鯔坋ee挀浲交cn梴啺袼馒啊π伛耘虏炒懒突笖炁LLL侨虝M>旼7粀g佥氘粉П讱棖肔1?Fa_k摎洜贻阽自VD@埠5;P~嚜障卫暑率槿酗NQ_xMD湢3#苡偷皁t匋篑橷XX洦周葆egp胴***鲞谘桥```钠驼乔elrsv总06InG?躑8闲讞j`陾"$*:@Y有形鱼t伅辜欺圹終MS篐0誖6耱鱜`cx喎峡加佑寭(*0妺挴步GGH氘狌uZ%%%z嚭5#h(Z#餇悙炘车洁漶翳鎅WV`FS#49O谀棵洅D,&顺289<畾柎巻簲熍屡郬:饎l懔範さ:87抗笘洬鞍辈膊!     ,    0 0   H盃羶*\劝!A"#JPm哪
保A= rと&;yq%K._:)!蜌7鈱xs缌>:p(Q:g畞 '%J樔BH ,皺T!D44X材苹@} ,洓 .pYB$C隆"桊&Q	y劯蛤c銶zQ3.lP盪h讉4囹B蜏$yb@{驷$夹i奵Fet鶿堝B莲~忆9QXT篻螩`碡q翿o* 儱c@赥湤0p裮Z6K>*岮) P綸毤檙V┸)H<QR!	奶#(p
踴0b詡]-+=訯F5\ L-,癛
 蛨3M蠶:齒,朌H<餙R+0 j$q憈倢#◎:{凴
EL怲i 嗝%$x-"q悂	4!)NhG2h! LhpQ+鴢_靝 P,'憣4  0R樮眳6e奥(!嗕0A+	∮8聡"翂aps$e A :$餈0P4f寖<H%8釡bJ垁莱>{E#靶CHU	A"p"vd1硉裂此没< 锛粑隌;鋢訹/赲SL<@8P郠?厙0AF誴P馧鉚qM藬馣吃qJYD$條蛏(К2勷 2 捞4譴笸8鐋?nHD @-粜Dm粞l ; 0707010000eb50000081a40000000000000002000000013ac038b600000968000000200000000000000000000000000000002100000003reloc/postfix/images/rewrite.gif  GIF89a0 0   摀摮吵行袝晻搜纨-t沽搡(WFNkC7z."d以蹆嚉SE崓毷cj咉篥亁}璔Z|再5$z1#k晌邂羼洈韭盼抄廷=:h帗⒉B3偄浡幟>6^T]#K湩複嬀憹薥c|[e婖鲽:*|鼀喐问遞q汬Pnlxはma焳s┴蓓Yc喺忆 E攀鈡仐RYuICvLUu葆8(z讆尷qv嶠啍瓢冠媚芗技-!_iu↑6(u洕4&pL>塽偛律鈲兇敔萄吾彖篁豉=-┉函┧jm吺陶陆捉培籭]湺拒盹黟蝤Й魂腼/(T姓枸葩倫膱捁蒪m杫叾П汁敦拤肪恢8(|祭蛈i1 wu{憭棫CCfw劦技仁栖+(Po{┾汨排且XK懠兑殍:*~厭泡阼镳鮶嚭蹈苗屣1"x晵P攝旝aT梙s濰9唌s奮i惉ト枛栬牯醇蹔椚嚂莝皏兇s痲e6&vU\w>/KTsMTp墢壖fY氫忭OXx苟4#yym壳醖o橉雉沅獒沌暁堵桤鸶黄峭洚焚玷鞵Xs脱哌噱{劋V`!G0,X倣礘Bl唥PIm齴y橨Sqq{牔５v{櫁熁9*}⺗U咠憫懖膊咩镔匍ks憵て麙崵棎贷敂斘乌Y[TVt?3r北;+~咿?CeX_z灅*"N]h幤受佑映架窗墟珉溷桡犴w劤PA媊g粕意嚅7'{ⅹ甩⑶嵗儋贇殮铒蜢塍腠醯档!     ,    0 0   w靈牋羶*\0\J淗罀0獆┤戙:Lwp8f餢!r圧:覒B揅璗W]"玲>寠禂2B颡\▕17#&噵孊覇&,姁(R P襜栀(J兡酄H"鎵杚tgJ弉 肁9J旚繳繸?Da*A蕫Qd旄忉V#<睸E$R伅'
"!	+)#徴赋=B
*(;k夅郂-B绂)"+1W篊切飭燧逪藞嗯oD,疛G]20n垺tZq艃;O2剗th!蓂捈焬Rw┼@巐QC寖`p牋@b鄟A慭a$j* PxP=@0q哔JL饊#<a$tI(!B0羷P悕y3寛06绖<餪嵺2
蠫!2椷誀H录E錋 :]騹1诩+庳7D^鯤vH";03E	碤屦J>鍊W窹P(罖Q'4 燗*"sDFp桊q僂$QA0#f疸Q勅)PG榪1Bぁ	n蠵]0AòF!訸+2O H#DD渂x苈  铝A淍(Z罥赘@iB9尅[碅龚pB,$垱E敔%骛sP.t/q贪;eQ啦 	荩B	%祚!D1堚@憽緻rP`|皣*鄈PpR'倫)腵=PTM.憅A懠捘&M,P婤X癇市PBi|C^ 1,鄥A寫
辄p瑺,4鑳.p|舶釺|餓)硘潉F[pX:,x}pLb光|PCA 泃]
灉BY 惵/昫8;)詐/軮|D+T	葽1g6孕酾pぐ鴤(DpR8
悇I,sb>!伔 奥:駤%Y+ 嶕 だ7妞	值@q"PXbp憜禈	犐V 'e剙醥-郋> "	.h#g@@ 柼)8頰MC阹f5愒萷0(b,$p 	 7ㄠ嚢",鋩
)8褗悅c鹉~腊))	(
 膫碼8'珸*D(NA4$X!c皝咸睅冊(窤<枥P+穸J礌	濔'︷7,`愯-H#梴! \ 俔, 3C0Z"醸&尠劋艆 PN眴|め 池)  	ㄅ鴌-2(趢4 x:5P'6q亜阁 EQ粪P 夝$Th梡!qsf=\.氠7D氊 lZ塋\k:P珒溋:'R 嘩!E\悏 焁@)腤詢pS-ˊ>hX餑謿2! Gx姥俔E ALB+鴢&@h@8l^L爜)t裎榁鳤d-袀4潣B7"宪:鵑愒(皪璴gYE,"0<X 
Q鼱,楪%|q虃顿H  }麮 袓畉蓐Z椇岳4顉骰痻荎 #  ;0707010000eb51000081a40000000000000002000000013ac038b6000006ad000000200000000000000000000000000000001e00000003reloc/postfix/images/smtp.gif GIF89a0 0   :*}行晻3"y`S杛g｜x9){)X6%{妱'J摀摍櫶煙习白v３吵;&TTq剒　信赔諬:厭悮*!L8(w- cァ硜伃栽塥ザ钩褩椛帛季乖]]}弿繑斉D6佲怅}}喅篌<-ff埧矫惠抖蹛喍1(Sqq悑伋亮鄽毻潩- d諗敠挝, `4$vG83%m6't1!u-%P@9`=5]>0y䦛劥mm搤u, ^, a腚跻议zs桲Di灋7/X5$|[UvD<cYRv苘類姤悍怜妸窼Lo:)|y6&v良助8)y噥潠枛潣瓳1}崓紈w毀в漗Wx'S#K热. d篌)Y9)z碑#L返緾3~7(w垐禬I愮珞dd嗃垌ア闯迟栽勰律VJ匒1:*|,Hb6&x聦嚒.!fG@fnb%I羶}渹|泜z湗棢RF僑F幙靠."d;+~A3}9*|rr棽膊殮歵l揦Xupo時j挶北8-Y``.Cl-!aⅶ^P擾_zzx昗Wt揶鐲<b@2y悙拺憫櫁犢儋8'whdv煘!mM伒档()i'N E刂鄏m娙巧忠愎构A3~ul旕聍鬃'Kㄢ缮3;w&I种胛挝觋須暙6.W湐矩蒯牊◤姢鬙Iw8'|噜>M6&|9*w:){wv$M/'U3#zhe:.j9 n7+kujW櫠跋後鐢敂OHl亖i尫毙佑隅顼寣簨厾L?俛WDB0f0'RVMz$H!     ,    0 0   H癭$繮A聽脟#
D◥∧埰.>じ啊F凈謍达`聨(` 嵼勗 妊饫6鼙t┍C3'濼§&!譾炯h噰A頊LU@/R猶8XbH y铂z#暻-桱D,6!aA芍rAj'8袰*养瀳P3n]0楃舲馸嚸 >Of茀 LV孏籿r毽JtXRG転kX&妤X炩巔 繢k;0`垻絳擱'G釀诅vㄟ仯絳O缼(uj汩Xm鴣釕g瀔崖侲tO>貋逍':靦覀a(b!江0賮b	"磋厛L$a酅鹜(xD渎⒈p辦研6R梒椞!褟o尃l!B(袙	 p:腂銰`,駽Z昆贵
螜i4$'滼蠤梱
 鄤f)‵{ZM潂酣F%pG&:)b姩FTi炛ggá侤j㈥fkJ癑k菔Dο焓獲阅鷎煃尼浒9S鋳=
0垤衦懇語+豊-④z鹠搞氷g规.獺玭靭籇H啥葳kI網@鷯跇 )7 9D,衲+`衽g\-(堙"$bE	攍蛏	斸朗,缝徖褺#C堙hQ牢<黛笙@髄7i8狋襆7眙覭iH1F殥笒4診w勼M 筙漟 2■啶眬譤b*8/0p5u娏Gu'G酚孅a?掼 魤40胠※r鳦.畤t漯*魮2硠壹 .綯狖`Ｎy0 O8I`+缝沂ц秎刘豞_KI@罄鬣/绝搢燢鲨_/J@ ;   0707010000eb52000081a40000000000000002000000013ac038b600000724000000200000000000000000000000000000001f00000003reloc/postfix/images/smtpd.gif    GIF89a0 0   龘摀吵承行晻晲惓枛洨䝼惼鼢鷉f橿^嶉轳~屆技從厖甤c枛柟儋坭栾珑頉牬儍栜荑dd橫MiNNm膊坍汾gg歚`懠际嵖ff歟e榙d枬澗UU佈燕vvo怶W儝挿ゥ肣Q{DDc揶槊秘ii溄狡箺湰憫h}貂鱍Qu侣蕩嵃ゥ池劐gg沎[壛林hh歽ye檴姳uw旙篚篌翎漶vvMru偖祢||┃浇羊螋zz╙]}kxβ轮mm澩娃FFjOOv憶膔rc槂儸蝌鲳瘐枛啡裳帥侍诣ZZ唕s壵浙~~ゝf洊枛厰容葆殾酗雉┅茘嵈mm瀄\坉d榣l槡毃揪预豆臹i彉樆MMnVV丮Ml{{嶠KKqll亼懚bb斞组噰谤rr★聒後錹o煓Ｋ咀莒aa枖敜o{eq涆坼牋繑犔棤眯沿ZZ乂Vr黅Tw~儣介觏儋骈轫拖诌咪缮猨t毎敖谮;;\谮鍺Nn贩雷族{{恏o埁``揼n噋pq牆潽螋鵣k摾勒适苈乱构褷犂KKm^^悙登勤PPq彖笈妊{埢姁洦谲醼价弿矒摫济遊[岉盹耨鰱枼殮殨敠棗敂LLk崓┉憫PPk拻磒}珤棭tt渮z灅槯YYv挝蝃f媺斅gg淺d仠湰洔琕_ov慾r巙偝櫃紓偋┌蔚档sse毴午膊瞨r呺腠滗桎漤哌暧佑dd!     ,    0 0   H盃羶*$('J?[X乣pL唻3j2 釀2靿FJ)剃l8怞糰嘸葴	KA8菚奊`⑸	Fk4巴$0`,H
χ98悷衳藚C謰#奾@厲#C渶;鲿+8j錴/)lF4姶滼怚汢>,櫦D#;猘銨垖2 4>雁虰倸)B!	j9噇(脐趵仄┼!E6}  !硠8q(Dn|Z;l豟2酐LE=,硁M@1)( 姠"(<rG渀Ca戀|芛聜"蛁腀QTp倎pw爛饽!_闪鵚	3愧)銗p$2鈑lZ]鋼桜榎 30PM80B
I獭	堿L犘!UEK8率'选厯耟堿~)2H楐eQ醚y嶑惱'P/-鄟H9j領"A凘B=`<袏	嵮A,ぴAY4ai靐P1F
犥霸 @  ≦╀A臔b衋]L8澹寻郺/j皭兄 / 栩萐H罛Q 	wx#崺F6V碢鸲p噿 H
6乩L<該N43窲.A樹衤/瑺鹇+-$ RU4]x#鹄i癗m秴,瞞t5唜7;(H|梪碷2缂&: w>t9M碸7髚鬇$趒剪@餫"跷 完踝`図|P:Wg虳#?,d8髢3詍鬏x啐$橉*喘碄%锠;滂惱銗G.擷0%韯R哋崘莱:,玫B0憟诬xq-磳"魼sS杼C2}4:lV0fT辫E#4`褔刎-(<洜C=`y7銧rQ撎;鏣侺骛糲弯O)飲YLwX髿9p"砅C7龄瓊谏懒z饍 As` 燝V嚷吼0屷裱唍L@ 8獭w让‵@  ;0707010000eb53000081a40000000000000002000000013ac038b60000050b000000200000000000000000000000000000002300000003reloc/postfix/images/transport.gif    GIF89a0 0   摀擙行宣吵硶晻獘P起!躜霐m#谟役?7_$M袅`汜飒で铐饎z犴厈炃v珬徎枛栆掩袈a溽磴 沼艿v噍戢孯渍輟nl奫N擕杳<7h<5`郾擽?7a>,_敂斔8耀a鲆孲F嬏窂鞗 顬殥间忸枑3%n?8_抄惋狄吾痫箴矧鲶黼牝颇袏1)T佑覭4i憫懥瑡鈹 篁篾晔阄苺(O鲱哒硈>希N,%X燠徊膊WL冾,!w儋兖$昺"蕦榖艁 艨[眄瘕翥鏂 嘘桉痶胄⌒袜:*|謿殮衾]铑駵棴谧婵} 霗 O8pC9e靠盔愫儇狃皓"祆饓伌ā虐琼祓昿,⿰O盱耦畆 烨軔 餆	躞蝥舛镱矜滹珏(W黧硎á凭拐癔/猳挝吸档祲!FI?p趑鳵Ga蓩ZI堫蹛 癜4臕2傴諕萕Ps僕-蜴阳羇%N棗梿{构鲑=忶絷搇!湑辽)躐挈皎=6_=                                                                                                                                                                                                               !     ,    0 0   H盃羶*\劝!罻#JpD媚
0保A= rと&;yq%K._:)!蜌7鈱x砪JIJ川処歠艏梃O)HH滼U&#K%b庋諉聤v脠鏯Bξ(H(1m5$謈'@变丛夋Q#T栊0
騼(5堒0靥贵蜹)!
)筿酈?(淣m儔-╆傦呃!p渝S,-(W俱;H8ト导
O兗,匚交肠旇"h倅髊("挞F吶7邍I$脒忂碦垜8F("CMv軧喞"揮 Z漶 DQK4 晹 \!I0r4謍銔8鷃
 8K炝GDi鋺F忖!<@." 鍞TVi劙袖唥泶袞#v閑B`(鏄昳挌#眣覚h洇GYDx姗鐬|鲩'焞\ \dR馈&6($丟 擵j楗榝 ; 0707010000eb54000081a40000000000000002000000013ac038b600000660000000200000000000000000000000000000002100000003reloc/postfix/images/virtual.gif  GIF89a0 0   摀擕吵除行袝晻RZu亻膈:*} E#J3"xwl^澔鼓龥摻赡垸B3偑Ｇ﨤Di-gb[|殓鸬豹索鼬孕汩祯.u碑拒勹<-%R#G9)z6't*Z1 w耋鵼mu7(w党脇q╫d爁Z0vnb煀播〉:*|/"erg=-级訓挧耝Q.!b蜕搠鳅潹谚骛7.W2$m痫魽2?/5&r, `9){~t狤6劎犈噍陽枛牁繤7咍鳅;+~䱷幒П征*"N7'{7&{抗9)|溻頒48(|/vbV桪5劗伸铞膺靸y璚I憽PB婼Zugp5$x悋俄塍锺罗桥泄逞豸黯貔7%y抄婉耋亸馁宙L=堚囔6&{9)}ZL捄狄8'z终?1侙鼹2$k掴痫眙锹跓厈(W蝰鰼1佦冂9(|谫嘬阝8(xpg9*y自蹇靠构笷?e寖硽柅z嚫6&z6)pF8匢:唥嬀s仸巳友袜敲=4k厊<,~蝰赳螋耩鲴耵哕.v挝螕姼?6dz儱3#u灘裇F'T铐鹋孟1#l栋嚣bU槹┦:)}mg區b圐噷<4\wq屄街q~瓗柎iq庮铘煕盚?pUNs崉淬骝tl欐滹&SNL囐儋O@嫆壏竞螕熖佑討憫九岬档o{墢0#h汊鑠k坽p0#g陀枨啼敂旛豉5$z;+}桕魳ＮbZ偖焚NH峇JnNB傝珙;*}6%{ku/tqz拋嵏觇駳殮9*|灄繉劔膊!     ,    0 0   H盃羶*\劝!AM#J誓
	0保A= rと&;yq%K._:)!蜌	圏騡&##銪涜杕恦鎵4W绽5Fl礸 <:9$覠F(豎瘁蓢E;饠编$'\躴
鍑kV侔圕縢嵭4茒(=減犆'81葾銟鬸們>+鮴r圃(9nI鵕酘(k倈=堘	9d6F輺@
 9b埬J鎽8悘%)4婆HsD諙0榫B:AB侸`Q牏)L(#卖翆3蛝rZ4a^1覅RH2>t郈=E,烂$D蚰s癤paTɡ'Ml`!k(崩c栊1鉴?wH 伡
Ty!%巇N徳$$杏 0i袄~4PK导c!7t1$纠 _艹鹆%檪j袬!锑?攢7詃聛█
n1/|豫A肈".,A. 偹D粿0长@
躊I%,藺>怟;%ゐ8(晾h@2炧<89帱测袈毵樟&"泤"G6蔜QG'蹄叨"攪."A! D銩)"谸.玠捻EF6羧反餌+0K4m奥q}蛉"Mq=疇煅茕3顳1 $狊<' f樏N9恤l:$BPL!;D-踉R320B踔W钁桃OAd梞鲑傲趌揗$銛P膔胅wCt啐熮=}愤u.稦$泪'鈱7緓/睖@5`榞鏈k踕黎ně畓  ;07070100031048000081e40000000000000002000000013ac038b600000e55000000200000000000000000000000000000001800000003reloc/postfix/index.cgi   #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
#
# A word about this module.
#
# Postfix provides a command to control its parameters: `postconf'.
# That's the reason why I don't parse and set the values manually.
# It's much better because it can resist to changes of the Postfix
# config files.
#
# However, to `set back to default' an already changed parameter,
# there is no way to do it in the case of dynamic parameters.
# [example: I mean that for `static' parameters, which defaults to
# `0', I can set the parameter to `0' ; but for `dynamic'
# parameters such as domainname [which comes from a system call]
# I have no way]
# So for this special case, I parse the config file, and delete
# manually the correct line.
#
# gc.
#


require './postfix-lib.pl';

&header($text{'index_title'}, "", "intro", 1, 1);
print "<hr>\n";

# Verify the postfix control command
if (!-x $config{'postfix_control_command'}) {
	print "<p>",&text('index_epath', "<tt>$config{'postfix_control_command'}</tt>",
			  "/config.cgi?$module_name"),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

# Verify the postfix config command
if (!-x $config{'postfix_config_command'}) {
	print "<p>",&text('index_econfig', "<tt>$config{'postfix_config_command'}</tt>",
			  "/config.cgi?$module_name"),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

# Verify that current configuration is valid
if (check_postfix()) {
	print "<p>",&text('check_error'),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}


@olinks =  ( "general.cgi", "rewrite.cgi", "aliases.cgi", "canonical.cgi", "virtual.cgi", "transport.cgi", "relocated.cgi",
	     "local_delivery.cgi", "resource.cgi",
	     "smtpd.cgi", "smtp.cgi",
	     "rate.cgi", "debug.cgi", "ldap.cgi" );

@otitles = ( "$text{'general_title'}", "$text{'address_rewriting_title'}", "$text{'aliases_title'}",
	     "$text{'canonical_title'}", "$text{'virtual_title'}", "$text{'transport_title'}", "$text{'relocated_title'}",
	     "$text{'local_delivery_title'}", "$text{'resource_title'}",
	     "$text{'smtpd_title'}", "$text{'smtp_title'}",
	     "$text{'rate_title'}", "$text{'debug_title'}", "$text{'ldap_title'}" ); 

@oicons =  ( "images/general.gif", "images/rewrite.gif", "images/aliases.gif",
	     "images/canonical.gif", "images/virtual.gif", "images/transport.gif", "images/relocated.gif",
	     "images/local_delivery.gif", "images/resource.gif",
	     "images/smtpd.gif", "images/smtp.gif",
	     "images/rate.gif", "images/debug.gif", "images/ldap.gif" );


&icons_table(\@olinks, \@otitles, \@oicons);


if ($access{'startstop'})
{
    print "<hr>\n";

    if (&is_postfix_running())
    {
	print "<table cellpadding=5 width=100%><tr><td>\n";
	print "<form action=stop.cgi>\n";
	print "<input type=submit value=\"$text{'index_stop'}\">\n";
	print "</td> <td>$text{'index_stopmsg'}\n";
    }
    else
    {
	print "<table cellpadding=5 width=100%><tr><td>\n";
	print "<form action=start.cgi>\n";
	print "<input type=submit value=\"$text{'index_start'}\">\n";
	print "</td> <td>$text{'index_startmsg'}\n";
    }
    print "</td></tr></table></form>\n";
}

print "<hr>\n";

&footer("/", $text{'index'});



   07070100034112000041ed0000000000000001000000023ac03c3e00000000000000200000000000000000000000000000001300000003reloc/postfix/lang    07070100034113000081a40000000000000002000000013ac038b600003f86000000200000000000000000000000000000001600000003reloc/postfix/lang/de index_title=Postfix Mail Agent
index_epath=Das Postfix Kontrollkommando $1 ist auf Ihrem System nicht installiert. Vielleicht ist Ihre <a href='$2'>Module Konfiguration</a> fehlerhaft oder Postfix ist nicht auf diesem Rechner installiert.

internal_error=Interner Fehler
index_econfig=Das Postifg Konfigurationskommando $1 existiert nicht. Vielleicht ist Ihre <a href='$2'>Module Konfiguration</a> fehlerhaft.
index_stop=Postfix stoppen
index_start=Postfix starten
index_stopmsg=Clicken Sie auf diesen Button, um den laufenden Postfix Mailserver zu stoppen. Dies wird bewirken, dass keine email von anderen Systemen lokalen Benutzern zugestellt werden kann und dass keine lokalen Clients dieses System als Mail Server zum Versenden von emails benutzen k&ouml;nnen.
index_startmsg=Clicken Sie auf diesen Button, um den Postfix Mail Server zu starten. Bis Postfix gestartet wurde k&ouml;nnen keine emails von anderen Systemen an lokale Benutzer zugestellt werden und lokale Clients k&ouml;nnen dieses System nicht als Mail Server benutzen.
opts_err=Fehler beim Speichern der Einstellungen

check_error=Fehler beim &Uuml;berpr&uuml;fen der aktuellen Postfix Konfiguration. Bitte korrigieren Sie die Konfiguration von Hand.

address_rewriting_title=Adress Umschreibung und Maskierung
address_rewriting_ecannot=Sie haben keine Berechtigung, Adress Umschreibung und Maskierung zu bearbeiten.
aliases_title=Mail Aliase
aliases_ecannot=Sie haben keine Berechtigung, Aliase zu bearbeiten.
aliases_no_alias_file=Keine Alias Datei
aliases_cant_write=Kann nicht in Alias Datei schreiben
aliases_cant_read=Kann Alias Datei nicht lesen
aliasopts_title=Alias Einstellungen
aliases_internal_error=Aliase: Interner Fehler
edit_alias_title=Alias Eigenschaften
alias_save=Speichere Alias
alias_save_err=Das Speichern des Alias schlug fehl
alias_delete_create=Sie wollen ein Alias l&ouml;schen, dass Sie gerade anlegen!?
delete_alias=L&ouml;sche Alias

general_title=Allgemeine Einstellungen
general_title_sensible=N黷zlichste allgemeine Einstellungen
general_title_others=Andere allgemeine Einstellungen
general_ecannot=Sie haben keine Berechtigung, allgemeine Einstellungen zu bearbeiten
what_is_it=Was ist es?

opts_default=Standard
opts_none=Keine
opts_relayhost=Sende ausgehende Mail durch Host
opts_direct=Liefere direkt aus
opts_myorigin=Welche Domaine in ausgehender Mail verwendet werden soll
opts_myorigin_as_myhostname=Benutze Hostname
opts_myorigin_as_mydomain=Benutze Domainname
opts_mydestination=F&uuml;r welche Domains email entgegen genommen wird
opts_mydestination_default=Lokale Maschine
opts_mydestination_domainwide=Ganze Domain
opts_notify_classes=Welche Probleme werden an den Postmaster gemeldet
opts_queue_directory=Verzeichnis der Warteschlange
opts_mail_owner=Mail Besitzer
opts_default_privs=Standard Rechte des Auslieferungs-Agenten
opts_inet_interfaces=Netzwerk-ger&auml;te auf dem Mail empfangen wird
opts_all_interfaces=Alle

opts_local_recipient_maps=Sende unbekannte lokale Benutzer zur&uuml;ck
opts_no=Nein
opts_save=Speichern und Anwenden


opts_allow_percent_hack=Schreibe "Benutzer%Domain" um zu "Benutzer@Domain"
opts_append_at_myorigin=Schreibe "Benutzer" um zu "Benutzer@$MeineDomain"
opts_append_dot_mydomain=Schreibe "Benutzer@Host" um zu "Benutzer@Host.$MeineDomain"
opts_empty_address_recipient=Sende email mit leerem Empf&auml;nger an...
opt_empty_recip_default=Standard
opts_swap_bangpath=Rewrite "Site!Benutzer" an "Benutze@Site"
opts_masquerade_domains=Adressen Maskierung
opts_masquerade_exceptions=Maskierungsausnahmen
index_return=Postfix Konfiguration


opts_alias_maps=Alias Datenbank, die vom lokalen Mail Agenten benutzt wird
opts_alias_database=Alias Datenbank, die durch das &quot;newaliases&quot; Kommando erstellt wurde
aliases_warning=Warnung: <ul><li>Wenn das erste Feld nicht leer ist, wird das Standard Postfix-Kommando zum Erstellen der Alias Datenbank verwendet ; <li>anderenfalls wird das Sendmail Kompatibilit&auml;tskommando &quot;newaliases&quot; verwendet; dies wird die Datenbank aus dem zweiten Feld benutzen.</ul>

aliases_name=Name
aliases_value=Alias zu...

new_alias=Erstelle neuen Alias
new_aliasmsg=Clicken Sie auf diesen Button, um ein neuen Alias zu erstellen


local_delivery_ecannot=Sie haben keine Berechtigung, die lokalen Auslieferungseinstellungen zu bearbeiten
local_delivery_title=Lokale Auslieferung
opts_local_transport=Name des Transports f&uuml;r lokale Auslieferungen
opts_local_transport_local=Lokal
opts_local_command_shell=Shell, die bei Auslieferung and externes Kommando benutzt wird
opts_local_command_shell_direct=Keine (Direkte Ausf&uuml;hrung von Kommandos)
opts_forward_path=Suche Liste zur Weiterleitung
opts_allow_mail_to_commands=Auslieferung g&uuml;ltiger email and externes Kommando
opts_allow_mail_to_files=G&uuml;ltige Mail in externe Datei schreiben
opts_home_mailbox=Pfadname der Mailbox-datei relativ zum Heimatverzeichnis
opts_home_mailbox_default=Keine (benutze Standard <tt>/var/irgendetwas</tt>)
opts_luser_relay=Zieladresse f&uuml;r unbekannte Empf&auml;nger
opts_luser_relay_none=Keiner (Lehne Mail ab)
opts_mail_spool_directory=Verzeichnis f&uuml;r emails in Warteschlange
opts_mailbox_command=Benutze Externes Kommando anstatt email auszuliefern
opts_mailbox_command_none=Keines
opts_mailbox_transport=Optionaler Transfermodus
opts_mailbox_transport_none=Keiner
opts_fallback_transport=Optionaler Transfermodus f&uuml;r unbekannte Empf&auml;nger
opts_fallback_transport_none=Keiner
opts_local_destination_concurrency_limit=Maxmimale Anzahl simultaner Auslieferungen je Empf&auml;nger
opts_local_destination_recipient_limit=Maximale Anzahl an Empf&auml;ngern je ausgelieferter lokaler Mail
opts_local_destination_recipient_limit_default=Standard
opts_prepend_delivered_header=F&uuml;ge eine <tt>Delivered-To:</tt> ein wenn...
opts_prepend_delivered_header_default=Standard


resource_title=Allgemeine Resourcen Kontrolle
resource_ecannot=Sie haben keine Berechtigung, die Parameter der Resourcen Kontrolle zu bearbeiten
opts_bounce_size_limit=Maximale Gr&ouml;sse abgelehnter Nachrichten
opts_command_time_limit=Maximale Zeit bei Auslieferung an externe Programme
opts_default_process_limit=Maximale Anzahl an Postfix Kindprozessen
opts_deliver_lock_attempts=Maximale Anzahl Versuche eine Datei zu "locken" (f&uuml;r exklusiven Zugriff reservieren)
opts_deliver_lock_delay=Zeit in Sekunden zwischen Versuchen
opts_duplicate_filter_limit=Maximale Anzahl an Adressen die durch den Duplikatfilter gemerkt werden sollen
opts_fork_attempts=Maximale Anzahl Versuche einen Prozess zu "forken"
opts_fork_delay=Maximale Zeit zwischen den Versuchen
opts_header_size_limit=Maximal benutzer Speicher um Kopfzeilen zu bearbeiten
opts_line_length_limit=Maximal benutzer Speicher um Eingabe zu bearbeiten
opts_message_size_limit=Maximale Gr&ouml;sse einer Nachricht
opts_qmgr_message_active_limit=Maximale Anzahl Nachrichten in der aktiven Warteschlange
opts_qmgr_message_recipient_limit=Maximale Anzahl Empf&auml;nger im Speicher
opts_queue_minfree=Minimaler freier Speicher im Dateisystem der Warteschlange
opts_stale_lock_time=Maximale Zeit, nach der ein alter "Lock" freigegeben wird
opts_transport_retry_time=Zeit in Sekunden zwischen Versuchen einen defekten MDT zu erreichen


opts_always_bcc=Adress, die BCC (Blindkopie) von jeder Nachricht erh&auml;lt
opts_always_bcc_none=Keine
opts_daemon_timeout=Timeout beim Bearbeiten von Anfragen
opts_default_database_type=Standard Datenbanktyp
opts_default_transport=Standard Nachrichten Auslieferungstransport
opts_double_bounce_sender=Sender Adresse f&uuml;r Fehler-Mails
opts_hash_queue_depth=Anzahl von Unterverzeichnisebenen unter dem Warteschlangenverzeichnis
opts_hash_queue_names=Name der Warteschlangeverzeichnisse &uuml;ber den Unterverzeichnissen
opts_hopcount_limit=Maximale Anzahl <tt>Received:</tt> Kopfzeilen
opts_ipc_idle=Idle Zeit nach der der interne IPC Client die Verbindung beendet
opts_ipc_timeout=Timeout f&uuml;r I/O auf internen Comm-Kan&auml;len
opts_mail_name=Mail System Name
opts_mail_version=Offizielle Mail System Version
opts_max_idle=Zu wartende Zeit for n&auml;chster Dienst-Anfrage
opts_max_use=Maximale Anzahl bearbeitete Dienstanfragen bevor beendet wird
opts_mydomain=Lokaler Internet Domain Name
opts_mydomain_default=Standard (vom System)
opts_myhostname=Internet Hostname dieses Mail Systems
opts_myhostname_default=Standard (vom System)
opts_mynetworks=Lokale Netzwerke
opts_mynetworks_default=Standard (alle angebundenen Netzwerke)
opts_bounce_notice_recipient=Sende Postmaster Benachrichtigung bei R&uuml;cksendung (bounce) an...
opts_2bounce_notice_recipient=Sende Postmaster Benachrichtigung bei R&uuml;cksendung (2bounce) an...
opts_delay_notice_recipient=Sende Postmaster Benachrichtigung bei Verzug an...
opts_error_notice_recipient=Sende Postmaster Benachrichtigung bei Fehler an...
opts_process_id_directory="Locke" Dateiverzeichnis relativ zum Warteschlangenverzeichnis
opts_program_directory=Postfix unterst&uuml;tzt Prgoramm- und Daemonverzeichnis
opts_recipient_delimiter=Separator f&uuml;r Benutzernamen / Adress Erweiterungen
opts_relocated_maps_default=Standard (deaktiviert)
opts_sun_mailtool_compatibility=Deaktiviere Kernel Datei Lock auf Mailboxen
opts_trigger_timeout=Maximale Zeit um ein Signal an den Daemon zu senden
opts_delay_warning_time=Zeit in Stunden nach der eine Warnung wegen bisheriger Nicht-Auslieferung gesendet wird
opts_delay_warning_time_default=Deaktiviert


smtpd_title=SMTP Server Einstellungen
smtpd_ecannot=Sie haben keine Berechtigung, die SMTP Server Einstellungen zu bearbeiten
opts_disable_vrfy_command=Deaktiviere SMTP VRFY Kommando
opts_smtpd_banner=SMTP Grussbanner
opts_smtpd_etrn_restrictions=Schr&auml;nke ETRN Kommando ein auf...
opts_smtpd_recipient_limit=Maximale Anzahl Empf&auml;nger die f&uuml;r die Auslieferung akzeptiert werden
opts_smtpd_timeout=Timeout in Sekunden vor SMTP Transaktionen
opts_smtpd_error_sleep_time=Timeout beor 4xx/5xx Fehlerantworten gesendet werden
opts_smtpd_soft_error_limit=Fehlerzahl, ab der ein Client tempor&auml;r ingoriert wird
opts_smtpd_hard_error_limit=Fehlerzahl nach der eine Verbindung getrennt wird
opts_smtpd_client_restrictions=Einschr&auml;nkungen der Client Hostnamen/Adressen
opts_smtpd_helo_required=HELO wird ben&ouml;tigt
opts_smtpd_helo_restrictions=Einschr&auml;nkungen beim Senden des HELO Kommandos
opts_smtpd_sender_restrictions=Einschr&auml;nkungen der Sender Adressen
opts_smtpd_recipient_restrictions=Einschr&auml;nkungen der Empf&auml;nger Adressen
opts_allow_untrusted_routing=Erlaube nicht vertrauensw&uuml;rdigen Benutzern das Routing
opts_maps_rbl_domains=DNS Domains die auf einer schwarzen Liste nachgeschlagen werden
opts_relay_domains=Schr&auml;nke Mailweiterleitung ein
opts_access_map_reject_code=SMTP Server Antwort bei Zugangsverletzung
opts_invalid_hostname_reject_code=SMTP Server Antwort bei Ablehnen eines ung&uuml;ltigen Hosts
opts_maps_rbl_reject_code=SMTP Server Antwort bei RBL Domainverletzung
opts_reject_code=SMTP Server Antwort bei Ablehnen eines Clients
opts_relay_domains_reject_code=SMTP Server antwort bei verbotenem Weiterleiten
opts_unknown_address_reject_code=SMTP Server Antwort bei Ablehnen einer unbekannten Domain
opts_unknown_client_reject_code=SMTP Server Antwort bei Ablehnen eines unbekannten Clients
opts_unknown_hostname_reject_code=SMTP Server Antwort bei Ablehnen wegen unbekanntem Hostnamen


smtp_title=SMTP Client Einstellungen
smtp_ecannot=Sie haben keine Berechtigung, SMTP Client Einstellungen zu bearbeiten
opts_best_mx_transport=Aktion, wenn aufgelistet als MX Host
opts_best_mx_transport_default=Standard (Schicke Nachricht zur&uuml;ck)
opts_fallback_relay=Hosts/Domains and die Mail gegeben wird falls Ziel ung&uuml;ltig
opts_ignore_mx_lookup_error=Ignoriere MX Lookup Fehler
opts_smtp_skip_4xx_greeting=&Uuml;berspringe 4xx Gruss
opts_smtp_skip_quit_response=&Uuml;berspringe Warten auf QUIT Kommando
opts_smtp_destination_concurrency_limit=Maximale Anzahl simultaner Auslieferungen an das gleiche Ziel
opts_smtp_destination_recipient_limit=Maximale Anzahl Empf&auml;nger je Auslieferung
opts_smtp_connect_timeout=Timeout um TCP Verbindung zu beenden
opts_smtp_helo_timeout=Timeout beim Warten auf das Grussbanner
opts_smtp_mail_timeout=Timeout beim Warten auf Antwort auf MAIL FROM
opts_smtp_rcpt_timeout=Timeout beim Warten auf Antwort auf RCPT TO
opts_smtp_data_init_timeout=Timeout beim Warten auf Antwort auf DATA
opts_smtp_data_xfer_timeout=Timeout beim Senden des Nachrichteninhalts
opts_smtp_data_done_timeout=Timeout beim Warten auf Antwort auf Beendigung mit &quot;.&quot;
opts_smtp_quit_timeout=Timeout beim Warten auf Antwort auf QUIT


rate_title=Auslieferungsraten
rate_ecannot=Sie haben keine Berechtigung, Auslieferungsraten zu bearbeiten
opts_default_destination_concurrency_limit=Maximale Anzahl simultaner Auslieferungen an dasselbe Ziel
opts_default_destination_recipient_limit=Maximale Anzahl von Empf&auml;ngern je Nachrichten-Auslieferung
opts_initial_destination_concurrency=Anf&auml;nglicher Konkurrenz-Level beim Liefern an gleiches Ziel
opts_maximal_backoff_time=Maximale Zeit (Sek) zwischen Versuchen eine aufgeschobene Nachricht zu versenden
opts_maximal_queue_lifetime=Max Zeit (Tage) die eine Nachricht in der Warteschlange verbleibt, bevor sie verworfen wurd
opts_minimal_backoff_time=Minimale Zeit (Sek) zwischen Versuchen, eine aufgeschobene Nachricht zu versenden
opts_queue_run_delay=Zeit (Sek) zwischen dem Scannen der aufgeschobenen Nachrichten
opts_defer_transports=Transporte, die nicht ausgeliefert werden sollen


debug_title=Debugging Features
debug_ecannot=Sie haben keine Berechtigung, die Debugging Features zu bearbeiten
opts_debug_peer_list=Liste von Domain/Netzwerk Muster f&uuml;r die aufwendiges Loggin aktiviert ist
opts_debug_peer_level=Aufwendiges Loggen wenn die oben angegebene Liste passt


ldap_title=LDAP Lookups
ldap_ecannot=Sie haben keine Berechtigung, LDAP Lookup Einstellungen zu bearbeiten
ldap_non_existent=Es scheint, dass LDAP nicht auf Ihrem System existiert
opts_ldap_lookup_timeout=Timeout f&uuml;r LDAP Datenbank Lookups
opts_ldap_search_base=Zu durchsuchende LDAP Datenbank
opts_ldap_server_host=LDAP Server Hostname

canonical_title=Kanonisches Umsetzen
canonical_ecannot=Sie haben keine Berechtigung, die Konfiguration f&uuml;r kanonisches Umsetzen zu bearbeiten
opts_canonical_maps=Adress-Umsetzungs-Tabellen
opts_recipient_canonical_maps=Tabellen f&uuml;r RECIPIENT (Empf&auml;nger) Adressen
opts_sender_canonical_maps=Tabellen f&uuml;r SENDER Adressen
edit_canonical_maps=Kanonisches Umsetzen bearbeiten
edit_recipient_canonical_maps=Kanonische Empf&auml;ngerumsetzung bearbeiten
edit_sender_canonical_maps=Kanonische Senderumetzung bearbeiten
edit_canonical_maps_general=Clicken Sie auf einen der Buttons oben um die Kanonische Umsetzung zu bearbeiten
canonical_edit_title=Eine kanonische Umsetzung bearbeiten

mapping_name=Name
mapping_value=Wird umgesetzt auf...
new_mapping=Neue Umsetzung
new_mappingmsp=Clicken Sie auf diesen Button, um eine neue Umsetzung zu erstellen
map_save=Umsetzung speichern
delete_map=Umsetzung l&ouml;schen
edit_map_title=Umsetzung bearbeiten
map_save_err=Fehler beim Speichern der Umsetzung
mapps_no_map_file=Keine Umsetzungsdatei definiert
map_delete_create=Sie k&ouml;nnen keine Umsetzung l&ouml;schen, die Sie gerade erstellen
maps_internal_error=Umsetzung: Interner Fehler
maps_cant_write=Kann nicht schreiben
help_map_format=Welches Format soll ich benutzen?


virtual_title=Virtuelle Domains
virtual_ecannot=Sie haben keine Berechtigung, Umsetzungen f&uuml;r virtuelle Domains zu bearbeiten
opts_virtual_maps=Domain-Umsetzungstabellen

transport_title=Transport Umsetzung
transport_ecannot=Sie haben keine Berechtigung, die Transport Umsetzung zu bearbeiten
opts_transport_maps=Transport Umsetzungstabellen

relocated_title=Neu eingerichtete Umsetzung
relocated_ecannot=Sie haben keine Berechtigung, neu eingerichtete Umsetzung zu bearbeiten
opts_relocated_maps=Neu eingerichtete Umsetzungs-Tabellen

map_click=Clicken Sie auf eine Umsetzung, um Ihre Eigentschaften zu bearbeiten
no_map=(Es ist momentan keine Umsetzung definiert. Definieren Sie zuerst eine, bevor Sie sie bearbeiten k&ouml;nnen)
  07070100034114000081a40000000000000002000000013ac038b6000039a7000000200000000000000000000000000000001600000003reloc/postfix/lang/en index_title=Postfix Mail Agent
index_epath=The Postfix control command $1 is not installed on your system. Maybe your <a href='$2'>module configuration</a> is incorrect, or Postfix is not installed.

internal_error=Internal Error
index_econfig=The Postfix config command $1 does not exist. Maybe your <a href='$2'>module configuration</a> is incorrect.
index_stop=Stop Postfix
index_start=Start Postfix
index_stopmsg=Click this button to stop the running Postfix mail server. This will stop mail from being delivered to local users from other systems, and prevent clients using this system as a mail server from sending mail.
index_startmsg=Click this button to start the Postfix mail server. Until this is done mail will not be delivered to local users from other systems, and clients will not be able to use this system as a mail server.
opts_err=Failed to save options

check_error=Error while checking current Postfix configuration. Please manually fix Postfix configuration.

address_rewriting_title=Address Rewriting and Masquerading
address_rewriting_ecannot=You are not allowed to edit address rewriting and masquerading
aliases_title=Mail Aliases
aliases_ecannot=You are not allowed to edit aliases
aliases_no_alias_file=No alias file
aliases_failed_delete=Failed to delete alias: $1
aliases_cant_write=Can't write in alias file
aliases_cant_read=Can't read in alias file
aliasopts_title=Aliases Options
aliases_internal_error=Aliases: internal error
edit_alias_title=Alias Properties Edition
alias_save=Save Alias
alias_save_err=Failed to save alias
alias_delete_create=You want to delete an alias you're currently creating !?
delete_alias=Delete Alias
aliases_click=Click on any alias to edit its properties:

general_title=General Options
general_title_sensible=Most Useful General options
general_title_others=Other General Options
general_ecannot=You are not allowed to edit General Options
what_is_it=What is it?

opts_default=Default
opts_none=None
opts_relayhost=Send outgoing mail via host
opts_direct=Deliver directly
opts_myorigin=What domain to use in outbound mail
opts_myorigin_as_myhostname=Use hostname
opts_myorigin_as_mydomain=Use domainname
opts_mydestination=What domains to receive mail for
opts_mydestination_default=Local machine
opts_mydestination_domainwide=Whole domain
opts_notify_classes=What trouble to report to the postmaster
opts_queue_directory=Mail queue directory
opts_mail_owner=Mail owner
opts_default_privs=Default rights of the delivery agent
opts_inet_interfaces=Network interfaces for receiving mail
opts_all_interfaces=All

opts_local_recipient_maps=Reject unknown local users
opts_no=No
opts_save=Save and Apply


opts_allow_percent_hack=Rewrite "user%domain" to "user@domain"
opts_append_at_myorigin=Rewrite "user" to "user@$mydomain"
opts_append_dot_mydomain=Rewrite "user@host" to "user@host.$mydomain"
opts_empty_address_recipient=Send mail with empty recipient to...
opt_empty_recip_default=Default
opts_swap_bangpath=Rewrite "site!user" to "user@site"
opts_masquerade_domains=Address masquerading
opts_masquerade_exceptions=Masquerading exceptions
index_return=Postfix configuration


opts_alias_maps=Alias databases used by the local delivery agent
opts_alias_database=Alias databases built by &quot;newaliases&quot; command
aliases_warning=Warning: <ul><li>when the first field is not empty, the default Postfix aliases-generation command is used to build up the corresponding databases ; <li>else the Sendmail compatibility command &quot;newaliases&quot; is used, this will use the second field's databases.</ul>

aliases_name=Name
aliases_value=Alias to...

new_alias=Create a new alias
new_aliasmsg=Click this button to create a new alias


local_delivery_ecannot=You are not allowed to edit local delivery options
local_delivery_title=Local delivery
opts_local_transport=Name of the transport for local deliveries
opts_local_transport_local=Local
opts_local_command_shell=Shell to use for delivery to external command
opts_local_command_shell_direct=None (direct exec of commands)
opts_forward_path=Search list for forward
opts_allow_mail_to_commands=Valid mail delivery to external commands
opts_allow_mail_to_files=Valid mail delivery to external files
opts_home_mailbox=Home-relative pathname of user mailbox file
opts_home_mailbox_default=None (use standard <tt>/var/something</tt>)
opts_luser_relay=Destination address for unknown recipients
opts_luser_relay_none=None (bounce mail)
opts_mail_spool_directory=Spool directory
opts_mailbox_command=External command to use instead of mailbox delivery
opts_mailbox_command_none=None
opts_mailbox_transport=Optional actual transport to use
opts_mailbox_transport_none=None
opts_fallback_transport=Optional transport for unknown recipients
opts_fallback_transport_none=None
opts_local_destination_concurrency_limit=Max number of parallel deliveries to the same local recipient
opts_local_destination_recipient_limit=Max number of recipients per local message delivery
opts_local_destination_recipient_limit_default=Default
opts_prepend_delivered_header=Prepend a <tt>Delivered-To:</tt> when...
opts_prepend_delivered_header_default=Default


resource_title=General resource control
resource_ecannot=You are not allowed to edit resource control parameters
opts_bounce_size_limit=Max size of bounced message
opts_command_time_limit=Max time for delivery to external commands
opts_default_process_limit=Max number of Postfix child processes
opts_deliver_lock_attempts=Max attempts to acquire file lock
opts_deliver_lock_delay=Time in seconds between file lock attempts
opts_duplicate_filter_limit=Max number of addresses remembered by the duplicate filter
opts_fork_attempts=Max attempts to fork a process
opts_fork_delay=Time in seconds between fork attempts
opts_header_size_limit=Max memory used for processing headers
opts_line_length_limit=Max memory used for handling input lines
opts_message_size_limit=Max size of a message
opts_qmgr_message_active_limit=Max number of messages in the active queue
opts_qmgr_message_recipient_limit=Max number of in-memory recipients
opts_queue_minfree=Min free space in the queue file system
opts_stale_lock_time=Max time after which stale lock is released
opts_transport_retry_time=Time in seconds between attempts to contact a broken MDT


opts_always_bcc=Address that receives bcc of each message
opts_always_bcc_none=None
opts_daemon_timeout=Timeout on handling requests
opts_default_database_type=Default database type
opts_default_transport=Default message delivery transport
opts_double_bounce_sender=Sender address for bounce mail
opts_hash_queue_depth=Number of subdir levels below the queue dir
opts_hash_queue_names=Name of queue dirs split accross subdirs
opts_hopcount_limit=Max number of <tt>Received:</tt> headers
opts_ipc_idle=Idle time after internal IPC client disconnects
opts_ipc_timeout=Timeout for I/O on internal comm channels
opts_mail_name=Mail system name
opts_mail_version=Official mail system version
opts_max_idle=Time to wait for next service request
opts_max_use=Max service requests handled before exiting
opts_mydomain=Local internet domain name
opts_mydomain_default=Default (provided by system)
opts_myhostname=Internet hostname of this mail system
opts_myhostname_default=Default (provided by system)
opts_mynetworks=Local networks
opts_mynetworks_default=Default (all attached networks)
opts_bounce_notice_recipient=Send postmaster notice on bounce to...
opts_2bounce_notice_recipient=Send postmaster notice on 2bounce to...
opts_delay_notice_recipient=Send postmaster notice on delay to...
opts_error_notice_recipient=Send postmaster notice on error to...
opts_process_id_directory=Lock file dir, relative to queue dir
opts_program_directory=Postfix support programs and daemons dir
opts_recipient_delimiter=Separator usernames / address extensions
opts_relocated_maps_default=Default (disabled)
opts_sun_mailtool_compatibility=Disable kernel file lock on mailboxes
opts_trigger_timeout=Max time to send a trigger to a daemon
opts_delay_warning_time=Time in hours before sending a warning for no delivery
opts_delay_warning_time_default=Disabled


smtpd_title=SMTP server options
smtpd_ecannot=You are not allowed to edit the SMTP server options
opts_disable_vrfy_command=Disable SMTP VRFY command
opts_smtpd_banner=SMTP greeting banner
opts_smtpd_etrn_restrictions=Restrict ETRN command upon...
opts_smtpd_recipient_limit=Max number of recipients accepted for delivery
opts_smtpd_timeout=Timeout in seconds for SMTP transactions
opts_smtpd_error_sleep_time=Timeout before sending 4xx/5xx error response
opts_smtpd_soft_error_limit=Error count for temporarily ignore a client
opts_smtpd_hard_error_limit=Error count for closing connection
opts_smtpd_client_restrictions=Restrictions on client hostnames/addresses
opts_smtpd_helo_required=HELO is required
opts_smtpd_helo_restrictions=Restrictions on sends in HELO commands
opts_smtpd_sender_restrictions=Restrictions on sender addresses
opts_smtpd_recipient_restrictions=Restrictions on recipient addresses
opts_allow_untrusted_routing=Allow untrusted routing
opts_maps_rbl_domains=DNS domains for blacklist lookups
opts_relay_domains=Restrict mail relaying
opts_access_map_reject_code=SMTP server response on access map violation
opts_invalid_hostname_reject_code=SMTP server response on invalid hostname reject
opts_maps_rbl_reject_code=SMTP server response on RBL domains violation
opts_reject_code=SMTP server response on client reject
opts_relay_domains_reject_code=SMTP server response on forbidden relaying
opts_unknown_address_reject_code=SMTP server response on unknown domain reject
opts_unknown_client_reject_code=SMTP server response on unknown client reject
opts_unknown_hostname_reject_code=SMTP server response on unknown hostname reject


smtp_title=SMTP client options
smtp_ecannot=You are not allowed to edit the SMTP client options
opts_best_mx_transport=Action when listed as best MX host
opts_best_mx_transport_default=Default (bounce message)
opts_fallback_relay=Hosts/domains to hand off mail to on invalid destination 
opts_ignore_mx_lookup_error=Ignore MX lookup error
opts_smtp_skip_4xx_greeting=Skip 4xx greeting
opts_smtp_skip_quit_response=Skip wait for the QUIT command
opts_smtp_destination_concurrency_limit=Max number of parallel deliveries to the same destination
opts_smtp_destination_recipient_limit=Max number of recipients per delivery
opts_smtp_connect_timeout=Timeout for completing TCP connections
opts_smtp_helo_timeout=Timeout on waiting for the greeting banner
opts_smtp_mail_timeout=Timeout on waiting for answer to MAIL FROM
opts_smtp_rcpt_timeout=Timeout on waiting for answer to RCPT TO
opts_smtp_data_init_timeout=Timeout on waiting for answer to DATA
opts_smtp_data_xfer_timeout=Timeout on waiting for answer to transmit of message content
opts_smtp_data_done_timeout=Timeout on waiting for answer to ending &quot;.&quot;
opts_smtp_quit_timeout=Timeout on waiting for answer to QUIT


rate_title=Delivery rates
rate_ecannot=You are not allowed to edit the delivery rates options
opts_default_destination_concurrency_limit=Max number of parallel deliveries to the same destination
opts_default_destination_recipient_limit=Max number of recipients per message delivery
opts_initial_destination_concurrency=Initial concurrency level for delivery to the same destination
opts_maximal_backoff_time=Max time (secs) between attempts to deliver a deferred message
opts_maximal_queue_lifetime=Max time (days) in queue before message is undeliverable
opts_minimal_backoff_time=Min time (secs) between attempts to deliver a deferred message
opts_queue_run_delay=Time (secs) between scanning the deferred queue
opts_defer_transports=Transports that should not be delivered


debug_title=Debugging features
debug_ecannot=You are not allowed to edit the debugging features
opts_debug_peer_list=List of domain/network patterns for which verbose log is enabled
opts_debug_peer_level=Verbose logging level when matching the above list
debug_version=Postfix Module for Webmin - Version $1

ldap_title=LDAP lookups
ldap_ecannot=You are not allowed to edit the LDAP lookups options
ldap_non_existent=It seems that LDAP is nonexistent in your Postfix system
opts_ldap_lookup_timeout=Timeout for LDAP database lookups
opts_ldap_search_base=LDAP database to search
opts_ldap_server_host=LDAP server hostname

canonical_title=Canonical Mapping
canonical_ecannot=You are not allowed to edit the canonical mapping configuration
opts_canonical_maps=Address mapping lookup tables
opts_recipient_canonical_maps=Tables for RECIPIENT addresses
opts_sender_canonical_maps=Tables for SENDER addresses
edit_canonical_maps=Edit canonical maps
edit_recipient_canonical_maps=Edit recipient canonical maps
edit_sender_canonical_maps=Edit sender canonical maps
edit_canonical_maps_general=Click on one of these buttons to edit the canonical maps
canonical_edit_title=Edit A Canonical Map

mapping_name=Name
mapping_value=Maps to...
new_mapping=New mapping
new_mappingmsg=Click this button to create a new mapping
map_save=Save mapping
delete_map=Delete mapping
edit_map_title=Edit A Map
map_save_err=Error while saving a mapping
mapps_no_map_file=No map file defined
map_delete_failed=Failed to delete map: $1
map_delete_create=Can not delete a map you're just creating
maps_internal_error=Map: internal error
maps_cant_write=Can not write
help_map_format=What format should I use?


virtual_title=Virtual Domains
virtual_ecannot=You are not allowed to edit the virtual domains mapping configuration
opts_virtual_maps=Domain mapping lookup tables

transport_title=Transport Mapping
transport_ecannot=You are not allowed to edit the transport mapping configuration
opts_transport_maps=Transport mapping lookup tables

relocated_title=Relocated Mapping
relocated_ecannot=You are not allowed to edit the relocated mapping configuration
opts_relocated_maps=Relocated mapping lookup tables

map_click=Click on any mapping to edit its properties:
no_map=(No map is currently defined. Define a map first, then you can edit it)
no_map2=No map is currently defined. Define a map first, then you can edit it.

stop_efailed=Failed to stop Postfix
stop_ecannot=You are not allowed to stop Postfix

query_get_efailed=Failed to query Postfix config command to get the current value of parameter $1: <tt>$2</tt>
query_set_efailed=Failed to query Postfix config command to set the current value of parameter $1 to $2: <tt>$3</tt>
reload_ecannot=You are not allowed to reload Postfix
reload_efailed=Failed to reload Postfix.
regenerate_ecannot=You are not allowed to regenerate the Aliases
regenerate_alias_efailed=Failed to regenerate aliases: <tt>$1</tt>
regenerate_table_efailed=Failed to regenerate table $1: <tt>$2</tt>
 07070100034115000081a40000000000000002000000013ac038b600003a0a000000200000000000000000000000000000001600000003reloc/postfix/lang/es index_title=Agente de Correo Postfix
index_epath=El comando de control de Postfix $1 no est instalado en tu sistema. Quiz醩 tu <a href='$2'>configuraci髇 del m骴ulo</a> sea incorrecta o postfix no est instalado.

internal_error=Error Interno
index_econfig=El comando $1 de configuraci髇 Postfix no existe. Quiza醩 tu <a href='$2'>configuraci髇 del m骴ulo</a> es incorrecta.
index_stop=Parar Postfix
index_start=Arrancar Postfix
index_stopmsg=Haz click en este bot髇 para parar el servidor de correo Postifx en curso. Esto har que no se entregue correo a usuarios locales desde otros sistemas y prevendr que los clientes, que usen este sistema como servidor de correo, env韊n correo.
index_startmsg=Haz click en este bot髇 para arrancar el servidor de correo Postfix. Hasta que esto se haya reallizado, el correo no ser entregado a los usuarios locales desde otros sistemas y los clientes no podr醤 utilizar este sistema como servidor de correo.
opts_err=No pude salvar las opciones

check_error=Error al revisar la configuraci髇 de Postfix en curso. Por favor, arregla manu醠mente la configuraci髇 de Postfix.

address_rewriting_title=Reescritura de Direcci髇 y Enmascaramiento
address_rewriting_ecannot=No est醩 autorizado a editar la reescritura de direcci髇 y enmascaramiento
aliases_title=Aliases de Correo
aliases_ecannot=No est醩 autorizado a editar aliases
aliases_no_alias_file=No hay archivo de alias
aliases_cant_write=No puedeo escribir en el archivo de alias
aliases_cant_read=No puedo leer del archivo de alias
aliasopts_title=Opciones de Alias
aliases_internal_error=Aliases: error interno
edit_alias_title=Edici髇 de Propiedades de Alias
alias_save=Salvar Alias
alias_save_err=No pude salvar alias
alias_delete_create=俊Deseas borrar un alias que est醩 creando ahora!?
delete_alias=Borrar Alias

general_title=Opciones Generales
general_title_sensible=Opciones Generales m醩 趖iles
general_title_others=Otras Opciones Generales
general_ecannot=No est醩 autorizado a editar Opciones Generales
what_is_it=縌u es esto?

opts_default=Por defecto
opts_none=Ninguno
opts_relayhost=Enviar correo saliente a trav閟 de m醧uina
opts_direct=Entregar dir閏tamente
opts_myorigin=Qu dominio usar en correo saliente
opts_myorigin_as_myhostname=Usar nombre de m醧uina
opts_myorigin_as_mydomain=Usar nombre de dominio
opts_mydestination=Para qu dominios recibir correo
opts_mydestination_default=M醧uina local
opts_mydestination_domainwide=Todo el dominio
opts_notify_classes=De qu problema informar al administrador de correo
opts_queue_directory=Directorio de cola de correo
opts_mail_owner=Propietario de correo
opts_default_privs=Derechos por defecto del agente de entrega
opts_inet_interfaces=Interfaces de red para recibir correo
opts_all_interfaces=Todas

opts_local_recipient_maps=Rechazar usuarios locales desconocidos
opts_no=No
opts_save=Salvar y Aplicar


opts_allow_percent_hack=Reescribir "usuario%dominio" por "usuario@dominio"
opts_append_at_myorigin=Reescribir "usuario" por "usuario@$midominio"
opts_append_dot_mydomain=Reescribir "usuario@m醧uina" por "usuario@m醧uina.$midominio"
opts_empty_address_recipient=Enviar correo sin destinatario a...
opt_empty_recip_default=Por defecto
opts_swap_bangpath=Reescribir "sitio!usuario" por "usuario@sitio"
opts_masquerade_domains=Enmascaramiento de direcci髇
opts_masquerade_exceptions=Exceptiones de enmascaramiento
index_return=Configuraci髇 de Postfix


opts_alias_maps=Bases de datos de alias usadas por agente de entrega local
opts_alias_database=Bases de datos de alias constru韉as mediante el comando &quot;newaliases&quot;
aliases_warning=Aviso: <ul><li>cuando el primer campo no est vac韔, el comando de generaci髇 de alias por defecto de Postfix es usado para construir las bases de datos correspondientes; <li>en caso contrario el comando de compatibilidad con Sendmail &quot;newaliases&quot; es usado, esto usar el segundo campo de base de datos.</ul>

aliases_name=Nombre
aliases_value=Alias de...

new_alias=Crear nuevo alias
new_aliasmsg=Haz click en este bot髇 para crear un nuevo alias


local_delivery_ecannot=No est醩 autorizado a editar opciones de entrega local
local_delivery_title=Entrega local
opts_local_transport=Nombre del transporte para entregas locales
opts_local_transport_local=Local
opts_local_command_shell=Shell a utilizar para entrega a comando externo
opts_local_command_shell_direct=Ninguno (ejecuci髇 directar de comandos)
opts_forward_path=Buscar lista de enviar
opts_allow_mail_to_commands=Entrega v醠ida de correo a comandos externos
opts_allow_mail_to_files=Entrega v醠ida de correo a archivos externos
opts_home_mailbox=Trayectoria en relaci髇 al directorio inicial del archivo de buz髇 de usuario
opts_home_mailbox_default=Ninguna (usar la est醤dar <tt>/var/algo</tt>)
opts_luser_relay=Direcci髇 de destino para destinatarios desconocidos
opts_luser_relay_none=Ninguna (poner en la calle el correo)
opts_mail_spool_directory=Directorio de spool
opts_mailbox_command=Comando externo a usar en vez de la entrega a buz髇
opts_mailbox_command_none=Ninguno
opts_mailbox_transport=Transporte opcional actual a usar
opts_mailbox_transport_none=Ninguno
opts_fallback_transport=Transporte opcional para destinatarios desconocidos
opts_fallback_transport_none=Ninguno
opts_local_destination_concurrency_limit=N鷐ero m醲imo de entregas paralelas para el mismo destinatario local
opts_local_destination_recipient_limit=N鷐ero m醲imo de destinatarios por entrega local de mensaje
opts_local_destination_recipient_limit_default=Por defecto
opts_prepend_delivered_header=Poner un <tt>Delivered-To: (Entregado-A:)</tt> cuando...
opts_prepend_delivered_header_default=Por defecto


resource_title=Control general de recursos
resource_ecannot=No est醩 autorizado a editar los par醡etros de control de recursos
opts_bounce_size_limit=Medida m醲ima de mensaje enviado
opts_command_time_limit=Tiempo m醲imo para entrega a comandos externos
opts_default_process_limit=N鷐ero m醲imo de procesos hijos de Postfix
opts_deliver_lock_attempts=Intentos m醲imos de adquirir bloqueos de archivo
opts_deliver_lock_delay=Tiempo en segundos entre intentos de bloqueo de archivo
opts_duplicate_filter_limit=N鷐ero m醲imo de direcciones recordadas por el filtro duplicado
opts_fork_attempts=Intentos m醲imos de hacer fork en un proceso
opts_fork_delay=Tiempo en segundos entre intentos de fork
opts_header_size_limit=Memoria m醲ima usada para procsear las cabeceras
opts_line_length_limit=Memoria m醲ima usada para manejar l韓eas de entrada
opts_message_size_limit=Medida m醲ima de un mensaje
opts_qmgr_message_active_limit=N鷐ero m醲imo de mensajes en la cola activa
opts_qmgr_message_recipient_limit=N鷐ero m醲imo de destinatario en memoria
opts_queue_minfree=Espacio m韓imo libre en el sistema de archivos de la cola
opts_stale_lock_time=Tiempo m醲imo tras el cual se libera el bloqueo caducado
opts_transport_retry_time=Tiempo en segundos entre intentos de contactar una MDT rota


opts_always_bcc=Direcci髇 que recibe bcc de cada mensaje
opts_always_bcc_none=Ninguna
opts_daemon_timeout=Tiempo m醲imo para manejar requerimientos
opts_default_database_type=Tipo de base de datos por defecto
opts_default_transport=Transporte de entrega de mensajes por defecto
opts_double_bounce_sender=Direcci髇 de remitente para enviar correo
opts_hash_queue_depth=N鷐ero de niveles de subdirectorio por debajo del directorio de cola
opts_hash_queue_names=Nombre de de directorios de cola divididos en subdirectorios
opts_hopcount_limit=N鷐ero m醲imo de cabeceras <tt>Received: (Recibido:)</tt>
opts_ipc_idle=Tiempo sin hacer nada tras el cual el cliente IPC interno se desconecta
opts_ipc_timeout=Tiempo de E/S en canales de comunicaci髇 internos
opts_mail_name=Nombre de sistema de correo
opts_mail_version=Versi髇 oficial de sistema de correo
opts_max_idle=Tiempo a esperar por el siguiente requerimiento de servicio
opts_max_use=Requerimientos m醲imos de servicios manejados antes de salir
opts_mydomain=Nombre de dominio local de internet
opts_mydomain_default=Default (provided by system)
opts_myhostname=Internet hostname of this mail system
opts_myhostname_default=Default (provided by system)
opts_mynetworks=Local networks
opts_mynetworks_default=Default (all attached networks)
opts_bounce_notice_recipient=Send postmaster notice on bounce to...
opts_2bounce_notice_recipient=Send postmaster notice on 2bounce to...
opts_delay_notice_recipient=Send postmaster notice on delay to...
opts_error_notice_recipient=Send postmaster notice on error to...
opts_process_id_directory=Lock file dir, relative to queue dir
opts_program_directory=Postfix support programs and daemons dir
opts_recipient_delimiter=Separator usernames / address extensions
opts_relocated_maps_default=Default (disabled)
opts_sun_mailtool_compatibility=Disable kernel file lock on mailboxes
opts_trigger_timeout=Max time to send a trigger to a daemon
opts_delay_warning_time=Time in hours before sending a warning for no delivery
opts_delay_warning_time_default=Disabled


smtpd_title=SMTP server options
smtpd_ecannot=You are not allowed to edit the SMTP server options
opts_disable_vrfy_command=Disable SMTP VRFY command
opts_smtpd_banner=SMTP greeting banner
opts_smtpd_etrn_restrictions=Restrict ETRN command upon...
opts_smtpd_recipient_limit=Max number of recipients accepted for delivery
opts_smtpd_timeout=Timeout in seconds for SMTP transactions
opts_smtpd_error_sleep_time=Timeout before sending 4xx/5xx error response
opts_smtpd_soft_error_limit=Error count for temporarily ignore a client
opts_smtpd_hard_error_limit=Error count for closing connection
opts_smtpd_client_restrictions=Restrictions on client hostnames/addresses
opts_smtpd_helo_required=HELO is required
opts_smtpd_helo_restrictions=Restrictions on sends in HELO commands
opts_smtpd_sender_restrictions=Restrictions on sender addresses
opts_smtpd_recipient_restrictions=Restrictions on recipient addresses
opts_allow_untrusted_routing=Allow untrusted routing
opts_maps_rbl_domains=DNS domains for blacklist lookups
opts_relay_domains=Restrict mail relaying
opts_access_map_reject_code=SMTP server response on access map violation
opts_invalid_hostname_reject_code=SMTP server response on invalid hostname reject
opts_maps_rbl_reject_code=SMTP server response on RBL domains violation
opts_reject_code=SMTP server response on client reject
opts_relay_domains_reject_code=SMTP server response on forbidden relaying
opts_unknown_address_reject_code=SMTP server response on unknown domain reject
opts_unknown_client_reject_code=SMTP server response on unknown client reject
opts_unknown_hostname_reject_code=SMTP server response on unknown hostname reject


smtp_title=SMTP client options
smtp_ecannot=You are not allowed to edit the SMTP client options
opts_best_mx_transport=Action when listed as best MX host
opts_best_mx_transport_default=Default (bounce message)
opts_fallback_relay=Hosts/domains to hand off mail to on invalid destination 
opts_ignore_mx_lookup_error=Ignore MX lookup error
opts_smtp_skip_4xx_greeting=Skip 4xx greeting
opts_smtp_skip_quit_response=Skip wait for the QUIT command
opts_smtp_destination_concurrency_limit=Max number of parallel deliveries to the same destination
opts_smtp_destination_recipient_limit=Max number of recipients per delivery
opts_smtp_connect_timeout=Timeout for completing TCP connections
opts_smtp_helo_timeout=Timeout on waiting for the greeting banner
opts_smtp_mail_timeout=Timeout on waiting for answer to MAIL FROM
opts_smtp_rcpt_timeout=Timeout on waiting for answer to RCPT TO
opts_smtp_data_init_timeout=Timeout on waiting for answer to DATA
opts_smtp_data_xfer_timeout=Timeout on waiting for answer to transmit of message content
opts_smtp_data_done_timeout=Timeout on waiting for answer to ending &quot;.&quot;
opts_smtp_quit_timeout=Timeout on waiting for answer to QUIT


rate_title=Delivery rates
rate_ecannot=You are not allowed to edit the delivery rates options
opts_default_destination_concurrency_limit=Max number of parallel deliveries to the same destination
opts_default_destination_recipient_limit=Max number of recipients per message delivery
opts_initial_destination_concurrency=Initial concurrency level for delivery to the same destination
opts_maximal_backoff_time=Max time (secs) between attempts to deliver a deferred message
opts_maximal_queue_lifetime=Max time (days) in queue before message is undeliverable
opts_minimal_backoff_time=Min time (secs) between attempts to deliver a deferred message
opts_queue_run_delay=Time (secs) between scanning the deferred queue
opts_defer_transports=Transports that should not be delivered


debug_title=Debugging features
debug_ecannot=You are not allowed to edit the debugging features
opts_debug_peer_list=List of domain/network patterns for which verbose log is enabled
opts_debug_peer_level=Verbose logging level when matching the above list


ldap_title=LDAP lookups
ldap_ecannot=You are not allowed to edit the LDAP lookups options
ldap_non_existent=It seems that LDAP is nonexistent in your Postfix system
opts_ldap_lookup_timeout=Timeout for LDAP database lookups
opts_ldap_search_base=LDAP database to search
opts_ldap_server_host=LDAP server hostname

canonical_title=Canonical Mapping
canonical_ecannot=You are not allowed to edit the canonical mapping configuration
opts_canonical_maps=Address mapping lookup tables
opts_recipient_canonical_maps=Tables for RECIPIENT addresses
opts_sender_canonical_maps=Tables for SENDER addresses
edit_canonical_maps=Edit canonical maps
edit_recipient_canonical_maps=Edit recipient canonical maps
edit_sender_canonical_maps=Edit sender canonical maps
edit_canonical_maps_general=Click on one of these buttons to edit the canonical maps
canonical_edit_title=Edit A Canonical Map

mapping_name=Name
mapping_value=Maps to...
new_mapping=New mapping
new_mappingmsp=Click this button to create a new mapping
map_save=Save mapping
delete_map=Delete mapping
edit_map_title=Edit A Map
map_save_err=Error while saving a mapping
mapps_no_map_file=No map file defined
map_delete_create=Can not delete a map you're just creating
maps_internal_error=Map: internal error
maps_cant_write=Can not write
help_map_format=What format should I use?


virtual_title=Virtual Domains
virtual_ecannot=You are not allowed to edit the virtual domains mapping configuration
opts_virtual_maps=Domain mapping lookup tables

transport_title=Transport Mapping
transport_ecannot=You are not allowed to edit the transport mapping configuration
opts_transport_maps=Transport mapping lookup tables

relocated_title=Relocated Mapping
relocated_ecannot=You are not allowed to edit the canonical mapping configuration
opts_relocated_maps=Relocated mapping lookup tables

map_click=Click on any mapping to edit its properties:
no_map=(No map is currently defined. Define a map first, then you can edit it)
  07070100034116000081a40000000000000002000000013ac038b600003c9f000000200000000000000000000000000000001600000003reloc/postfix/lang/fr index_title=Configuration de Postfix
index_epath=Le programme de contr鬺e de Postfix $1 n'est pas install sur votre syst鑝e. Peut-阾re que la <a href='$2'>configuration du module</a> est incorrecte, ou bien Postfix n'est pas install.

internal_error=Erreur interne
index_econfig=Le programme de configuration de Postfix $1 n'existe pas. Peut-阾re que la <a href='$2'>configuration du module</a> est incorrecte.
index_stop=Arr阾er Postfix
index_start=D閙arrer Postfix
index_stopmsg=Cliquez sur ce bouton pour arr阾er le serveur de courriers 閘ectroniques Postfix. Ceci interrompra la livraison du courrier aux utilisateurs, et interrompra aussi l'envoi de courrier.
index_startmsg=Cliquez sur ce bouton pour d閙arrer le serveur de courriers 閘ectroniques Postfix. Ceci permettra la livraison du courrier aux utilisateurs, et permettra aussi l'envoi de courrier.

check_error=Erreur pendant la v閞ification de la configuration actuelle de Postfix. Veuillez r閟oudre manuellement ce probl鑝e.

opts_err=Echec de la sauvegarde des options
address_rewriting_title=R殚criture et masquage d'adresses
address_rewriting_ecannot=Vous n'阾es pas autoris  閐iter le masquage d'adresses
aliases_title=Alias
aliases_ecannot=Vous n'阾es pas autoris  閐iter les alias
aliases_no_alias_file=Pas de fichier d'alias
aliases_cant_write=Impossible d'閏rire dans le fichier d'alias
aliases_cant_read=Impossible de lire le fichier d'alias
aliasopts_title=Options des alias
aliases_internal_error=Alias: erreur interne
edit_alias_title=Edition des propri閠閟 de l'alias
alias_save=Sauvegarder l'alias
alias_save_err=Echec de la sauvegarde de l'alias
alias_delete_create=Vous souhaitez effacer un alias que vous 阾es en train de cr閑r !?
delete_alias=Effacer l'alias

general_title=Options G閚閞ales
general_title_sensible=Options les plus courantes
general_title_others=Autres options
general_ecannot=Vous n'阾es pas autoris  閐iter les options g閚閞ales
what_is_it=Qu'est-ce que c'est ?

opts_default=D閒aut
opts_none=Aucun
opts_relayhost=Envoyer le courrier sortant via la machine
opts_direct=Envoyer directement
opts_myorigin=Quel domaine utiliser pour le courrier sortant
opts_myorigin_as_myhostname=Utiliser le nom de machine
opts_myorigin_as_mydomain=Utiliser le nom de domaine
opts_mydestination=Domaines pour lesquels on re鏾it le courrier
opts_mydestination_default=Machine locale
opts_mydestination_domainwide=Tout le domaine
opts_notify_classes=Quels probl鑝es acheminer vers le postmaster
opts_queue_directory=R閜ertoire de la file d'attente
opts_mail_owner=Propri閠aire des courriers
opts_default_privs=Droits par d閒aut du programme de livraison du courrier
opts_inet_interfaces=Interfaces r閟eau pour la r閏eption du courrier
opts_all_interfaces=Toutes

opts_local_recipient_maps=Rejeter les utilisateurs inconnus
opts_no=Non
opts_save=Sauvegarder et Appliquer


opts_allow_percent_hack=R殚crire "utilisateur%domaine" en "utilisateur@domaine"
opts_append_at_myorigin=R殚crire "utilisateur" en "utilisateur@$mydomain"
opts_append_dot_mydomain=R殚crire "utilisateur@machine" en "utilisateur@machine.$mydomain"
opts_empty_address_recipient=Envoyer le courrier sans destinataire ...
opt_empty_recip_default=D閒aut
opts_swap_bangpath=R殚crire "site!utilisateur" en "utilisateur@site"
opts_masquerade_domains=Masquage d'adresses
opts_masquerade_exceptions=Exceptions au masquage
index_return=Configuration de Postfix


opts_alias_maps=Bases de donn閑s d'alias utilis閑s par le livreur de courrier
opts_alias_database=Base de donn閑s d'alias cr殚e par Postfix
aliases_warning=Attention: <ul><li>lorsque le premier champ est non-vide, la commande par d閒aut de Postfix pour g閚閞er les alias est utilis閑 afin de cr閑r les bases de donn閑s ; <li>sinon, la commande de compatibilit avec Sendmail, &quot;newaliases&quot;, est utilis閑 afin de g閚閞er les bases de donn閑s du deuxi鑝e champ.</ul>

aliases_name=Nom
aliases_value=Alias en...

new_alias=Cr閑r un nouvel alias
new_aliasmsg=CLiquez sur ce bouton pour cr閑r un nouvel alias


local_delivery_ecannot=Vous n'阾es pas autoris  閐iter les options de livraison de courrier
local_delivery_title=Livraison du courrier
opts_local_transport=Nom du transport pour la livraison du courrier
opts_local_transport_local=Local
opts_local_command_shell=Shell  utiliser pour la livraison via une commande externe
opts_local_command_shell_direct=Aucun (ex閏ution directe)
opts_forward_path=Liste de recherche pour la transmission
opts_allow_mail_to_commands=Livraison valide pour les commandes externes
opts_allow_mail_to_files=Livraison valude pour les fichiers externes
opts_home_mailbox=Chemin relatif au homedir pour le fichier bo顃e aux lettres
opts_home_mailbox_default=Aucun (standard <tt>/var/quelquechose</tt>)
opts_luser_relay=Adresse de destination pour les destinataires inconnus
opts_luser_relay_none=Aucun (rebond)
opts_mail_spool_directory=R閜ertoire de file d'attente (spool)
opts_mailbox_command=Commande externe  utiliser  la place de la livraison
opts_mailbox_command_none=Aucune
opts_mailbox_transport=Transport (optionnel)
opts_mailbox_transport_none=Aucun
opts_fallback_transport=Transport (optionnel) pour les destinataires inconnus
opts_fallback_transport_none=Aucun
opts_local_destination_concurrency_limit=Nombre max de livraison parall鑜es pour le m阭e destinataire
opts_local_destination_recipient_limit=Nombre max de destinataires par livraison locale
opts_local_destination_recipient_limit_default=D閒aut
opts_prepend_delivered_header=Ajouter <tt>Delivered-To:</tt> lorsque...
opts_prepend_delivered_header_default=D閒aut


resource_title=Contr鬺e des ressources
resource_ecannot=Vous n'阾es pas autoris  閐iter les ressources
opts_bounce_size_limit=Taille max des messages rebond (bounced)
opts_command_time_limit=Dur閑 max pour la livraison vers des commandes externes
opts_default_process_limit=Nombre max de processus fils de Postfix
opts_deliver_lock_attempts=Tentatives pour obtenir le verrouillage (file lock)
opts_deliver_lock_delay=Dur閑 en secondes entre les tentatives de verrouillage
opts_duplicate_filter_limit=Nombre max d'adresses dont se rappelle le filtre de duplication
opts_fork_attempts=Tentatives de duplication (fork) de processus
opts_fork_delay=Dur閑 en secondes entre les tentatives de duplication
opts_header_size_limit=M閙oire max utilis閑 pour traiter les ent阾es
opts_line_length_limit=M閙oire max utilis閑 pour traiter les lignes
opts_message_size_limit=Taille max d'un message
opts_qmgr_message_active_limit=Nombre max de messages dans la file active
opts_qmgr_message_recipient_limit=Nombre max de destinaires en m閙oire
opts_queue_minfree=Espace libre min sur le syst鑝e de fichier de la file
opts_stale_lock_time=Dur閑 max apr鑣 laquelle les verrouillages inutiles sont lib閞閟
opts_transport_retry_time=Dur閑 en seconde entre les tentatives de contacter un MDT


opts_always_bcc=Adresse qui re鏾it un bcc de chaque message
opts_always_bcc_none=Aucune
opts_daemon_timeout=Timeout sur le traitement des requ阾es
opts_default_database_type=Type de base de donn閑s par d閒aut
opts_default_transport=Transport par d閒aut pour la livraison du courrier
opts_double_bounce_sender=Adresse de l'閙etteur des messages rebond (bounce)
opts_hash_queue_depth=Niveaux de sous-r閜. apr鑣 le r閜. de file d'attente
opts_hash_queue_names=Nom des r閜. de file r閜artis dans les sous-r閜.
opts_hopcount_limit=Nombre max d'ent阾es <tt>Received:</tt>
opts_ipc_idle=Temps d'inactivit apr鑣 lequel les client IPC se d閏onnectent
opts_ipc_timeout=Timeout pour les E/S sur les chemins de comm. internes
opts_mail_name=Nom du syst鑝e de courrier 閘ectronique
opts_mail_version=Version officielle du syst鑝e
opts_max_idle=Temps d'attente pour la prochaine requ阾e de service
opts_max_use=Nombre max de requ阾es trait閑s avant de quitter
opts_mydomain=Nom de domaine internet local
opts_mydomain_default=D閒aut (donn par le syst鑝e)
opts_myhostname=Nom de machine (hostname) de ce syst鑝e
opts_myhostname_default=D閒aut (donn par le syst鑝e)
opts_mynetworks=R閟eaux locaux
opts_mynetworks_default=D閒aut (tous les r閟eaux trouv閟)
opts_bounce_notice_recipient=Envoyer l'information de rebond (bounce) ...
opts_2bounce_notice_recipient=Envoyer l'information de rebond2 (2bounce) ...
opts_delay_notice_recipient=Envoyer l'information de temporisation (delay) ...
opts_error_notice_recipient=Envoyer l'inforation d'erreur ...
opts_process_id_directory=R閜ertoire de verrouillage relatif au r閜. de file
opts_program_directory=R閜ertoire de programmes et d閙ons de Postfix
opts_recipient_delimiter=S閜arateur nom d'utilisateur / extension d'adresse
opts_relocated_maps_default=D閒aut (d閟activ)
opts_sun_mailtool_compatibility=D閟activer le verrouillage noyau sur les bo顃es aux lettres
opts_trigger_timeout=Dur閑 max d'envoi de d閏lenchement de d閙on
opts_delay_warning_time=Dur閑 en heures avant d'envoyer un avertissement pour non-livraison
opts_delay_warning_time_default=D閟activ


smtpd_title=Options du serveur SMTP
smtpd_ecannot=Vous n'阾es pas autoris  閐iter les options du serveur SMTP
opts_disable_vrfy_command=D閟activer la commande SMTP VRFY
opts_smtpd_banner=Message de bienvenue
opts_smtpd_etrn_restrictions=Restreindre la commande ETRN...
opts_smtpd_recipient_limit=Nombre max de destinataires accept閟 pour livraison
opts_smtpd_timeout=Timeout en secondes pour les transactions SMTP
opts_smtpd_error_sleep_time=Timeout avant l'envoi des erreurs 4xx/5xx
opts_smtpd_soft_error_limit=D閏ompte d'erreurs pour ignorer temporairement un client
opts_smtpd_hard_error_limit=D閏ompte d'erreurs pour arr阾er la connexion
opts_smtpd_client_restrictions=Restrictions sur le nom de machine/l'adresse client
opts_smtpd_helo_required=HELO est requis
opts_smtpd_helo_restrictions=Restrictions sur l'envoi des commandes HELO
opts_smtpd_sender_restrictions=Restrictions sur l'adresse de l'閙etteur
opts_smtpd_recipient_restrictions=Restrictions sur l'adresse du destinataire
opts_allow_untrusted_routing=Autoriser le routage suspect
opts_maps_rbl_domains=Domaines DNS pour la recherche de blacklist
opts_relay_domains=Restreindre le relai de courriers
opts_access_map_reject_code=R閜onse du serveur sur violation des droits d'acc鑣
opts_invalid_hostname_reject_code=R閜onse du serveur sur rejet pour nom de machine invalide
opts_maps_rbl_reject_code=R閜onse du serveur sur violation des domaines RBL
opts_reject_code=R閜onse du serveur sur rejet de client
opts_relay_domains_reject_code=R閜onse du serveur sur relai interdit
opts_unknown_address_reject_code=R閜onse du serveur sur rejet pour domaine inconnu
opts_unknown_client_reject_code=R閜onse du serveur sur rejet pour client inconnu
opts_unknown_hostname_reject_code=R閜onse du serveur sur rejet pour nom de machine inconnu


smtp_title=Options du client SMTP
smtp_ecannot=Vous n'阾es pas autoris  閐iter les options du client SMTP
opts_best_mx_transport=Que faire lorsque list comme meilleur MX
opts_best_mx_transport_default=D閒aut (rebond)
opts_fallback_relay=H魌es/domaines  qui transmettre en cas de destination invalide
opts_ignore_mx_lookup_error=Ignorer les erreurs de recherche MX
opts_smtp_skip_4xx_greeting=Passer le message de bienvenue 4xx
opts_smtp_skip_quit_response=Passer l'attente apr鑣 la commande QUIT
opts_smtp_destination_concurrency_limit=Nombre max de livraisons parall鑜es pour la m阭e destination
opts_smtp_destination_recipient_limit=Nombre max de destinataires par livraison
opts_smtp_connect_timeout=Timeout pour compl閠er les connexions TCP
opts_smtp_helo_timeout=Timeout pour l'attente du message de bienvenue
opts_smtp_mail_timeout=Timeout pour l'attente de la r閜onse  MAIL FROM
opts_smtp_rcpt_timeout=Timeout pour l'attente de la r閜onse  RCPT TO
opts_smtp_data_init_timeout=Timeout pour l'attente de la r閜onse  DATA
opts_smtp_data_xfer_timeout=Timeout pour l'attente de la r閜onse au contenu du message
opts_smtp_data_done_timeout=Timeout pour l'attente de la r閜onse  &quot;.&quot;
opts_smtp_quit_timeout=Timeout pour l'attente de la r閜onse  QUIT


rate_title=Cadences de livraison
rate_ecannot=Vous n'阾es pas autoris  閐iter les cadences de livraison
opts_default_destination_concurrency_limit=Nombre max de livraisons parall鑜es pour la m阭e destination
opts_default_destination_recipient_limit=Nombre max de destinataires par livraison de message
opts_initial_destination_concurrency=Niveau initial de simultan閕t pour la livraison vers la m阭e destination
opts_maximal_backoff_time=Dur閑 max (secs) entre les tentatives de livraison des messages report閟
opts_maximal_queue_lifetime=Dur閑 max (jours) dans la file avant que le message soit non-livrable
opts_minimal_backoff_time=Dur閑 min (secs) entre les tentatives de livrer un message report
opts_queue_run_delay=Dur閑 (secs) entre les examens de la file des messages report閟
opts_defer_transports=Transports qui ne devraient pas 阾re livr閟


debug_title=D閎ogage
debug_ecannot=Vous n'阾es pas autoris  閐iter les options de d閎ogage
opts_debug_peer_list=Liste des domaines/r閟eaux pour lesquels le log 閠endu (verbose) est activ
opts_debug_peer_level=Niveau de log lorsque les domaines/r閟eaux sont dans la liste ci-dessus


ldap_title=Recherches LDAP
ldap_ecannot=Vous n'阾es pas autoris  閐iter les options de recherche LDAP
ldap_non_existent=Il semble que LDAP n'existe pas dans votre installation de Postfix
opts_ldap_lookup_timeout=Timeout pour les recherche dans les bases de donn閑s LDAP
opts_ldap_search_base=Base de donn閑s LDAP  examiner
opts_ldap_server_host=Nom du serveur LDAP

canonical_title=Correspondances canoniques
canonical_ecannot=Vous n'阾es pas autoris  閐iter les options de correspondances canoniques
opts_canonical_maps=Tables de correspondances canoniques
opts_recipient_canonical_maps=Tables pour les adresses destinataire
opts_sender_canonical_maps=Tables pour les adresses 閙etteur
edit_canonical_maps=Editer les tables canoniques
edit_recipient_canonical_maps=Editer les tables canoniques destinataire
edit_sender_canonical_maps=Editer les tables canoniques 閙etteur
edit_canonical_maps_general=Cliquez sur un de ces boutons pour 閐tier les tables de correspondances canoniques
canonical_edit_title=Editer une correspondance

mapping_name=Nom
mapping_value=Correspond ...
new_mapping=Nouvelle entr閑
new_mappingmsp=Cliquez sur ce bouton pour cr閑r une nouvelle correspondance
map_save=Sauvegarder
delete_map=Supprimer
edit_map_title=Editer une correspondance
map_save_err=Erreur durant la sauvegarde de la correspondance
mapps_no_map_file=Aucun fichier de correspondance d閒ini
map_delete_create=Impossible d'effacer une correspondance que vous 阾es en train de cr閑r
maps_internal_error=Correspondances: erreur interne
maps_cant_write=Impossible d'閏rire
help_map_format=Quel format dois-je utiliser ?


virtual_title=Domaines virtuels
virtual_ecannot=Vous n'阾es pas autoris  閐iter la configuration des domaines virtuels
opts_virtual_maps=Tables de correspondances de domaines

transport_title=Correspondances de transport
transport_ecannot=Vous n'阾es pas autoris  閐iter les correspondance de transport
opts_transport_maps=Tables de correspondances de transport

relocated_title=Correspondances de relogement
relocated_ecannot=Vous n'阾es pas autoris  閐iter les correspondances de relogement
opts_relocated_maps=Tables de correspondances de relogement

map_click=Cliquez sur une correspondance pour 閐iter ses propri閠閟:
no_map=(Aucune table n'est d閒inie. D閒inissez-en une d'abord, ensuite vous pourrez l'閐iter) 07070100034117000081a40000000000000002000000013ac038b600004249000000200000000000000000000000000000001600000003reloc/postfix/lang/pl index_title=Serwer poczty Postfix
index_epath=W&nbsp;systemie nie zainstalowano polecenia kontrolnego Postfiksa $1. Byc mo縠 Twoja <a href='$2'>konfiguracja modu硊</a> jest nieprawid硂wa lub nie zainstalowano Postfiksa.

internal_error=B潮d wewn阾rzny
index_econfig=Polecenie konfiguracyjne Postfiksa $1 nie istnieje. Byc mo縠 Twoja <a href='$2'>konfiguracja modu硊</a> jest nieprawid硂wa.
index_stop=Zatrzymaj Postfiksa
index_start=Uruchom Postfiksa
index_stopmsg=Naci秐ij ten przycisk, aby zatrzyma dzia砤j眂y serwer pocztowy Postfix. Spowoduje to zaprzestanie dor阠zania poczty z&innych system體 lokalnym u縴tkownikom oraz uniemo縧iwi klientom korzystanie z&nbsp;tego systemu jako serwera poczty wychodz眂ej.
index_startmsg=Naci秐ij ten przycisk, aby uruchomi serwer pocztowy Postfix. Dop髃i go nie uruchomisz, poczta z&nbsp;innych system體 nie b阣zie dor阠zana lokalnym u縴tkownikom, ani te klienci nie b阣 mogli korzysta z&nbsp;tego systemu jako serwera poczty.
opts_err=Nie uda硂 si zachowa opcji

check_error=B潮d podczas sprawdzania bie勘cej konfiguracji Postfiksa. Popraw konfiguracj r阠znie.

address_rewriting_title=Przepisywanie i&nbsp;maskowanie adres體
address_rewriting_ecannot=Nie masz uprawnie do zmiany przepisywania i&nbsp;maskowania adres體
aliases_title=Aliasy pocztowe
aliases_ecannot=Nie masz uprawnie do zmiany alias體
aliases_no_alias_file=Brak pliku alias體
aliases_failed_delete=Nie uda硂 si usun辨 aliasu: $1
aliases_cant_write=Brak prawa zapisu do pliku alias體
aliases_cant_read=Brak prawa odczytu pliku alias體
aliasopts_title=Opcje alias體
aliases_internal_error=Aliasy: b潮d wewn阾rzny
edit_alias_title=Zmiana w砤禼iwo禼i aliasu
alias_save=Zachowaj alias
alias_save_err=Nie uda硂 sie zachowa aliasu
alias_delete_create=Chcesz usun辨 alias, kt髍y w砤秐ie tworzysz&nbsp;!?
delete_alias=Usu alias
aliases_click=Kliknij na dowolnym aliasie, aby zmieni jego w砤禼iwo禼i:

general_title=Opcje og髄ne
general_title_sensible=Najcz甓ciej u縴wane opcje og髄ne
general_title_others=Inne opcje og髄ne
general_ecannot=Nie masz uprawnie do zmiany opcji og髄nych
what_is_it=Co to jest?

opts_default=Domy秎nie
opts_none=Brak
opts_relayhost=Wysy砤 poczt wychodz眂 poprzez host
opts_direct=Der阠za bezpo秗ednio
opts_myorigin=W砤sna domena w&nbsp;poczcie wychodz眂ej
opts_myorigin_as_myhostname=U縴wa nazwy hosta
opts_myorigin_as_mydomain=U縴wa nazwy domeny
opts_mydestination=Dla jakich domen odbiera poczt
opts_mydestination_default=Maszyny lokalnej
opts_mydestination_domainwide=Ca砮j domeny
opts_notify_classes=O&nbsp;jakich k硂potach informowa postmastera
opts_queue_directory=Katalog kolejkowania poczty
opts_mail_owner=W砤禼iciel poczty
opts_default_privs=Domy秎ne uprawnienia programu dor阠zaj眂ego
opts_inet_interfaces=Interfejsy sieciowe dla odbierania poczty
opts_all_interfaces=Wszystkie

opts_local_recipient_maps=Odrzuca nieznanych u縴tkownik體 lokalnych
opts_no=Nie
opts_save=Zachowaj i zastosuj

opts_allow_percent_hack=Przepisywa "uzytkownik%domena" na "uzytkownik@domena"
opts_append_at_myorigin=Przepisywa "uzytkownik" na "uzytkownik@$mydomain"
opts_append_dot_mydomain=Przepisywa "uzytkownik@host" na "uzytkownik@host.$mydomain"
opts_empty_address_recipient=Wysy砤 poczt z&nbsp;pustym adresem odbiorcy do...
opt_empty_recip_default=Domy秎nie
opts_swap_bangpath=Przepisywa "miejsce!uzytkownik" na "uzytkownik@miejsce"
opts_masquerade_domains=Maskowanie adres體
opts_masquerade_exceptions=Wyj眛ki dla maskowania
index_return=konfiguracji Postfiksa

opts_alias_maps=Bazy alias體 wykorzystywane przez lokalny program dor阠zaj眂y
opts_alias_database=Bazy alias體 tworzone poleceniem &quot;newaliases&quot;
aliases_warning=Uwaga: <ul><li>gdy pierwsze pole jest wype硁ione, do tworzenia odpowiednich baz danych u縴wane jest domy秎ne polecenie generowania alias體 Postfiksa; <li>w&nbsp;przeciwnym razie u縴wane jest polecenie zgodno禼i z&nbsp;Sendmailem &quot;newaliases&quot;, korzysta ono z&nbsp;baz danych z&nbsp;drugiego pola.</ul>

aliases_name=Nazwa
aliases_value=Alias dla...

new_alias=Utw髍z nowy alias
new_aliasmsg=Naci秐ij ten przycisk, aby utworzy nowy alias

local_delivery_ecannot=Nie masz uprawnie do zmiany opcji dor阠zania lokalnego
local_delivery_title=Dor阠zanie lokalne
opts_local_transport=Nazwa metody ekspedycji dla dor阠ze lokalnych
opts_local_transport_local=Lokalnie
opts_local_command_shell=Pow硂ka u縴wana do przekierowywania do program體 zewn阾rznych
opts_local_command_shell_direct=Brak (bezpo秗ednie uruchamianie polece)
opts_forward_path=Lista przeszukiwana dla przekazywania
opts_allow_mail_to_commands=Dopuszczalne przekierowywanie do zewn阾rznych program體
opts_allow_mail_to_files=Dopuszczalne przekierowywanie do zewn阾rznych plik體
opts_home_mailbox=ie縦a do pliku poczty u縴tkownika wzgl阣em katalogu domowego
opts_home_mailbox_default=Brak (standardowa <tt>/var/gdzies</tt>)
opts_luser_relay=Adres przeznaczenia dla nieznanych odbiorc體
opts_luser_relay_none=Brak (odrzuca poczt)
opts_mail_spool_directory=Katalog poczty
opts_mailbox_command=Program zewn阾rzny u縴wany zamiast dor阠zania do skrzynki pocztowej
opts_mailbox_command_none=Brak
opts_mailbox_transport=Fakultatywna rzeczywi禼ie u縴wana metoda ekspedycji
opts_mailbox_transport_none=Brak
opts_fallback_transport=Fakultatywna metoda ekspedycji dla nieznanych odbiorc體
opts_fallback_transport_none=Brak
opts_local_destination_concurrency_limit=Maksymalna liczba r體noleg硑ch dor阠ze dla trgo samego lokalnego odbiorcy
opts_local_destination_recipient_limit=Maksymalna liczba odbiorc體 dla dor阠zanych wiadomo禼i lokalnych
opts_local_destination_recipient_limit_default=Domy秎na
opts_prepend_delivered_header=Poprzedza polem <tt>Delivered-To:</tt> gdy...
opts_prepend_delivered_header_default=Domy秎nie

resource_title=Og髄na kontrola zasob體
resource_ecannot=Nie masz uprawnie do zmiany parametr體 kontroli zasob體
opts_bounce_size_limit=Maksymalny rozmiar odrzuconej wiadomo禼i
opts_command_time_limit=Maksymalny czas na dor阠zenie do programu zewn阾rznego
opts_default_process_limit=Maksymalna liczba proces體 potomnych Postfiksa
opts_deliver_lock_attempts=Maksymalna liczba pr骲 za硂縠nia blokady pliku
opts_deliver_lock_delay=Czas pomi阣zy kolejnymi pr骲ami zablokowania w&nbsp;sekundach
opts_duplicate_filter_limit=Maksymalna liczba adres體 pami阾anych przez filtr duplikat體
opts_fork_attempts=Maksymalna liczba pr骲 uruchomienia programu
opts_fork_delay=Czas pomi阣zy pr骲ami uruchomienia programu w&nbsp;sekundach
opts_header_size_limit=Maksimum wykorzystania pami阠i do przetwarzania nag丑wk體
opts_line_length_limit=Maksimum wykorzystania pami阠i do przechowywania danych wej禼iowych
opts_message_size_limit=Maksymalny rozmiar wiadomo禼i
opts_qmgr_message_active_limit=Maksymalna liczba wiadomo禼i w&nbsp;czynnej kolejce
opts_qmgr_message_recipient_limit=Maksymalna liczba odbiorc體 w&nbsp;pami阠i
opts_queue_minfree=Minimalna ilo舵 wolnego miejsca na systemie plik體 kolejki
opts_stale_lock_time=Maksymalny czas, po kt髍ym trwa砤 blokada jest zwalniana
opts_transport_retry_time=Czas pomi阣zy pr骲ami po潮czenia z&nbsp;niedzia砤j眂ym MDT w&nbsp;sekundach

opts_always_bcc=Adresy, kt髍e otrzymuj ukryt kopi ka縟ej wiadomo禼i
opts_always_bcc_none=Brak
opts_daemon_timeout=Czas przeterminowania obs硊gi po潮czenia
opts_default_database_type=Domy秎ny typ bazy danych
opts_default_transport=Domy秎na metoda ekspedycji wiadomo禼i
opts_double_bounce_sender=Adres nadawcy dla odrzuconej poczty
opts_hash_queue_depth=Liczba poziom體 podkatalog體 w&nbsp;katalogu kolejki
opts_hash_queue_names=Name of queue dirs split accross subdirs
opts_hopcount_limit=Maksymalna liczba nag丑wk體 <tt>Received:</tt>
opts_ipc_idle=Czas bezczynno禼i, po kt髍ym wewn阾rzny klient IPC si roz潮cza
opts_ipc_timeout=Czas przeterminowania dla wej禼ia/wyj禼ia na wewn阾rznych kana砤ch komunikacyjnych
opts_mail_name=Nazwa systemu poczty
opts_mail_version=Oficjalna wersja systemu poczty
opts_max_idle=Czas oczekiwania na nast阷ne po潮czenie
opts_max_use=Maksymalna liczba po潮cze obs硊縪nych przed zako馽zeniem
opts_mydomain=Lokalna nazwa domeny internetowej
opts_mydomain_default=Domy秎na (podawana przez system)
opts_myhostname=Internetowa nazwa hosta tego systemu poczty
opts_myhostname_default=Domy秎na (podawana przez system)
opts_mynetworks=Sieci lokalne
opts_mynetworks_default=Domy秎ne (wszystkie przy潮czone sieci)
opts_bounce_notice_recipient=Wysy砤 powiadomienia od postmastera o&nbsp;odrzuceniu do...
opts_2bounce_notice_recipient=Wysy砤 powiadomienia od postmastera o&nbsp;2-gim odrzuceniu do...
opts_delay_notice_recipient=Wysy砤 powiadomienia od postmastera o&nbsp;op蠹nieniach do...
opts_error_notice_recipient=Wysy砤 powiadomienia od postmastera o&nbsp;b酬dach do...
opts_process_id_directory=Katalog plik體 blokad, wzgl阣em katalogu kolejki
opts_program_directory=Katalog program體 i&nbsp;demon體 obs硊giwanych przez Postfiksa
opts_recipient_delimiter=Separator nazw u縴tkownik體 / rozszerze adresu
opts_relocated_maps_default=Domy秎ny (wy潮czone)
opts_sun_mailtool_compatibility=Wy潮czy blokowanie plik體 przez kernel dla skrzynek pocztowych
opts_trigger_timeout=Maksymalny czas na uruchomienie kopii demona
opts_delay_warning_time=Czas, po kt髍ym wysy砤ne jest ostrze縠nie o&nbsp;niedor阠zeniu w&nbsp;godzinach
opts_delay_warning_time_default=Wy潮czone

smtpd_title=Opcje serwera SMTP
smtpd_ecannot=Nie masz uprawnie do zmiany opcji serwera SMTP
opts_disable_vrfy_command=Wy潮cz polecenie SMTP VRFY
opts_smtpd_banner=Nag硂wek powitalny SMTP
opts_smtpd_etrn_restrictions=Ograniczy polecenie ETRN do...
opts_smtpd_recipient_limit=Maksymalna liczba odbiorc體 akceptowana przy dor阠zaniu
opts_smtpd_timeout=Czas przeterminowania dla transakcji SMTP w&nbap;sekundach
opts_smtpd_error_sleep_time=Czas przeterminowania przed wys砤niem komunikatu o&nbsp;b酬dzie 4xx/5xx
opts_smtpd_soft_error_limit=Liczba b酬d體 powoduj眂a czasowe ignorowanie klienta
opts_smtpd_hard_error_limit=Liczba b酬d體 powoduj眂a zamkni阠ie po潮czenia
opts_smtpd_client_restrictions=Ograniczenia nazw/adres體 klient體
opts_smtpd_helo_required=Wymagane HELO
opts_smtpd_helo_restrictions=Ograniczenia w&nbsp;poleceniu HELO przy wysy砤niu
opts_smtpd_sender_restrictions=Ograniczenia adres體 nadawc體
opts_smtpd_recipient_restrictions=Ograniczenia adres體 odbiorc體
opts_allow_untrusted_routing=Zezwoli na niewiarygodny routing
opts_maps_rbl_domains=Czarna lista domen DNS
opts_relay_domains=Ograniczy przekazywanie poczty
opts_access_map_reject_code=Odpowied serwera SMTP przy zabronionym dost阷ie
opts_invalid_hostname_reject_code=Odpowied serwera SMTP przy odrzuceniu niepoprawnej nazwy hosta
opts_maps_rbl_reject_code=Odpowied serwera SMTP przy naruszeniu RBL dla domen
opts_reject_code=Odpowied serwera SMTP przy odrzuceniu klienta
opts_relay_domains_reject_code=Odpowied serwera SMTP przy zabronionym przekazywaniu
opts_unknown_address_reject_code=Odpowied serwera SMTP przy odrzuceniu nieznanej domeny
opts_unknown_client_reject_code=Odpowied serwera SMTP przy odrzuceniu nieznanego klienta
opts_unknown_hostname_reject_code=Odpowied serwera SMTP przy odrzuceniu nieznanej nazwy hosta

smtp_title=Opcje klienta SMTP
smtp_ecannot=Nie masz uprawnie do zmiany opcji klienta SMTP
opts_best_mx_transport=Akcja, gdy wymieniony jako b阣眂y najlepszym MX
opts_best_mx_transport_default=Domy秎na (odrzuca wiadomo舵)
opts_fallback_relay=Hosty/domeny, do kt髍ych odsy砤 poczt w&nbsp;przypadku nieznanego odbiorcy
opts_ignore_mx_lookup_error=Ignorowa b潮d poszukiwania rekordu MX
opts_smtp_skip_4xx_greeting=Pomija powitanie 4xx
opts_smtp_skip_quit_response=Nie czeka na polecenie QUIT
opts_smtp_destination_concurrency_limit=Maks. liczba rownoleg硑ch dor阠ze do tego samego miejsca przeznaczenia
opts_smtp_destination_recipient_limit=Maks. liczba odbiorc體 dor阠zanej wiadomo禼i
opts_smtp_connect_timeout=Czas przeterminowania dla zako馽zenia po潮cze TCP
opts_smtp_helo_timeout=Czas przeterminowania dla oczekiwania na nag丑wek powitalny
opts_smtp_mail_timeout=Czas przeterminowania dla oczekiwania na odpowied na MAIL FROM
opts_smtp_rcpt_timeout=Czas przeterminowania dla oczekiwania na odpowied na RCPT TO
opts_smtp_data_init_timeout=Czas przeterminowania dla oczekiwania na odpowied na DATA
opts_smtp_data_xfer_timeout=Czas przeterminowania dla oczekiwania na odpowied na przes砤nie tre禼i wiadomo禼i
opts_smtp_data_done_timeout=Czas przeterminowania dla oczekiwania na odpowied na ko馽z眂 &quot;.&quot;
opts_smtp_quit_timeout=Czas przeterminowania dla oczekiwania na odpowied na QUIT

rate_title=Parametry dor阠zania
rate_ecannot=Nie masz uprawnie do zmiany opcji parametr體 dor阠zania
opts_default_destination_concurrency_limit=Maks. liczba jednoczesnych dor阠ze do tego samego miejsca przeznaczenia
opts_default_destination_recipient_limit=Maks. liczba odbiorc體 dor阠zanej wiadomo禼i
opts_initial_destination_concurrency=Pocz眛kowy poziom konkurencji przy dor阠zaniu do tego samego miejsca przeznaczenia
opts_maximal_backoff_time=Maks. czas (sek.) pomi阣zy pr骲ami dor阠zenia odroczonej wiadomo禼i
opts_maximal_queue_lifetime=Maks. czas (dni) przetrzymywania wiadomo禼i w&nbsp;kolejce przed uznaniem jej za niedor阠zaln
opts_minimal_backoff_time=Min. czas (sek.) pomi阣zy pr骲ami dor阠zenia odroczonej wiadomo禼i
opts_queue_run_delay=Czas (sek.) pomi阣zy przeszukaniami kolejki odrocze
opts_defer_transports=Metody ekspedycji, za pomoc kt髍ych nie nale縴 dor阠za

debug_title=W砤禼iwo禼i 秎edzenia
debug_ecannot=Nie masz uprawnie do zmiany opcji w砤禼iwo禼i 秎edzenia
opts_debug_peer_list=Lista wzorc體 dla domen/sieci, dla kt髍ych w潮czane jest rozwlek砮 logowanie
opts_debug_peer_level=Poziom rozwlek硂禼i logowania przy dopasowaniu do powy縮zej listy
debug_version=Modu Postfiksa dla Webmina - wersja $1

ldap_title=Zapytania LDAP
ldap_ecannot=Nie masz uprawnie do zmiany opcji zapyta LDAP
ldap_non_existent=Wszystko wskazuje na to, 縠 w&nbsp;Twoim systemie Postfiksa brak obs硊gi LDAP
opts_ldap_lookup_timeout=Czas przeterminiwania dla zapyta do bazy danych LDAP
opts_ldap_search_base=Przeszukiwana baza danych LDAP
opts_ldap_server_host=Nazwa hosta serwera LDAP

canonical_title=Podstawianie kanoniczne
canonical_ecannot=Nie masz uprawnie do zmiany konfiguracji podstawiania kanonicznego
opts_canonical_maps=Tabele przeszukiwania podstawiania adres體
opts_recipient_canonical_maps=Tabele adres體 ODBIORC覹
opts_sender_canonical_maps=Tabele adres體 NADAWC覹
edit_canonical_maps=Zmie podstawienia kanoniczne
edit_recipient_canonical_maps=Zmie podstawienia kanoniczne odbiorc體
edit_sender_canonical_maps=Zmie podstawienia kanoniczne nadawc體
edit_canonical_maps_general=Naci秐ij jeden z&nbsp;tych przycisk體, aby zmieni podstawienia kanoniczne
canonical_edit_title=Zmie podstawienie kanoniczne

mapping_name=Nazwa
mapping_value=Podstawienie...
new_mapping=Nowe podstawienie
new_mappingmsg=Naci秐ij ten przycisk, aby utworzy nowe podstawienie
map_save=Zachowaj podstawienie
delete_map=Usu podstawienie
edit_map_title=Zmie podstawienie
map_save_err=B潮d podczas zachowywania podstawienia
mapps_no_map_file=Nie okre秎ono pliku podstawie
map_delete_failed=Nie uda硂 si usun辨 podstawienia: $1
map_delete_create=Nie mo縩a usun辨 w砤秐ie tworzonego podstawienia
maps_internal_error=Podstawianie: b潮d wewn阾rzny
maps_cant_write=Brak praw zapisu
help_map_format=Z&nbsp;jakiego formatu korzysta?

virtual_title=Domeny wirtualne
virtual_ecannot=Nie masz uprawnie do zmiany konfiguracji podstawiania domen wirtualnych
opts_virtual_maps=Tabele przeszukiwania podstawiania domen

transport_title=Podstawianie ekspedycji
transport_ecannot=Nie masz uprawnie do zmiany konfiguracji podstawiania metod ekspedycji
opts_transport_maps=Tabele przeszukiwania podstawiania metod ekspedycji

relocated_title=Podstawianie przeniesionych
relocated_ecannot=Nie masz uprawnie do zmiany konfiguracji podstawiania przeniesionych
opts_relocated_maps=Tabele przeszukiwania podstawiania przeniesionych

map_click=Kliknij na dowolnym podstawieniu, aby zmieni jego w砤禼iwo禼i:
no_map=(Nie zdefiniowano 縜dnych podstawie. Aby zmieni podstawienie, musisz je najpierw zdefiniowa)
no_map2=Nie zdefiniowano 縜dnych podstawie. Aby zmieni podstawienie, musisz je najpierw zdefiniowa.

stop_efailed=Nie uda硂 si zatrzyma Postfiksa
stop_ecannot=Nie masz uprawnie do zatrzymywania Postfiksa

query_get_efailed=Nie uda硂 si za勘da od polecenia konfiguracyjnego Postfiksa podania bie勘cej warto禼i parametru $1: <tt>$2</tt>
query_set_efailed=Nie uda硂 si za勘da od polecenia konfiguracyjnego Postfiksa ustawienia bie勘cej warto禼i parametru $1 na $2: <tt>$3</tt>
reload_ecannot=Nie masz uprawnie do prze砤dowywania Postfiksa
reload_efailed=Nie uda硂 si prze砤dowa Postfiksa.
regenerate_ecannot=Nie masz uprawnie generacji alias體
regenerate_alias_efailed=Nie uda硂 si ponownie wygenerowa alias體: <tt>$1</tt>
regenerate_table_efailed=Nie uda硂 si ponownie wygenerowa tablicy $1: <tt>$2</tt>
   07070100034118000081a40000000000000002000000013ac038b600003879000000200000000000000000000000000000001600000003reloc/postfix/lang/sv index_title=E-postagenten Postfix
index_epath=Postfixs kontrollkommando $1 鋜 inte installerat p ditt system. Dina <a href='$2'>modulinst鋖lningar</a> kanske 鋜 felaktiga, eller ocks har Postfix inte installerats.

internal_error=Internt fel
index_econfig=Inst鋖lningskommandot $1 f鰎 Postfix finns inte. Dina <a href='$2'>modulinst鋖lningar</a> kanske 鋜 felaktiga.
index_stop=Stoppa Postfix
index_start=Starta Postfix
index_stopmsg=Tryck p denna knapp f鰎 att sluta k鰎a e-postservern Postfix. Detta g鰎 s att ingen e-post fr錸 andra system delas ut till lokala anv鋘dare och hindrar klienter som anv鋘der detta system som e-postserver att skicka e-post. 
index_startmsg=Tryck p denna knapp f鰎 att starta e-postservern Postfix. Innan Postfix startats delas ingen e-post fr錸 andra system ut till lokala anv鋘dare, och e-postklienter kan inte anv鋘da detta system som e-postserver.
opts_err=Det gick inte att spara inst鋖lningarna

check_error=Ett fel uppt鋍ktes n鋜 de aktuella Postfix-inst鋖lningarna kontrollerades. Du beh鰒er r鋞ta till Postfix-inst鋖lningarna manuellt.

address_rewriting_title=Adressomskrivningar och maskeringar
address_rewriting_ecannot=Du f錼 inte 鋘dra adressomskrivningar och maskeringar
aliases_title=E-postalias
aliases_ecannot=Du f錼 inte 鋘dra alias
aliases_no_alias_file=Ingen alias-fil finns
aliases_cant_write=Det g錼 inte att skriva till alias-fil
aliases_cant_read=Det g錼 inte att l鋝a alias-fil
aliasopts_title=Aliasinst鋖lningar
aliases_internal_error=Alias: internt fel
edit_alias_title=Version av alias-inst鋖lningar
alias_save=Spara alias
alias_save_err=Det gick inte att spara alias
alias_delete_create=Vill du verkligen ta bort ett alias som du h錶ler p att skapa!?
delete_alias=Ta bort alias

general_title=Allm鋘na inst鋖lningar
general_title_sensible=Mest anv鋘dbara allm鋘na inst鋖lningar
general_title_others=Andra allm鋘na inst鋖lningar
general_ecannot=Du f錼 inte 鋘dra de allm鋘na inst鋖lningarna
what_is_it=Vad 鋜 det?

opts_default=Standard
opts_none=Ingen
opts_relayhost=Skicka utg錯nde e-post via dator
opts_direct=Skicka direkt
opts_myorigin=Dom鋘 som ska anv鋘das i utg錯nde e-post
opts_myorigin_as_myhostname=Anv鋘d datornamn
opts_myorigin_as_mydomain=Anv鋘d dom鋘namn
opts_mydestination=Ta emot e-post f鰎 dessa dom鋘er
opts_mydestination_default=Lokal dator
opts_mydestination_domainwide=Hela dom鋘en
opts_notify_classes=Problem som ska rapporteras till postmaster
opts_queue_directory=K鰇atalog f鰎 e-post
opts_mail_owner=K- och process鋑ande
opts_default_privs=Standardr鋞tigheter f鰎 den lokala e-posthanteraren
opts_inet_interfaces=N鋞verksinterface f鰎 mottagning av e-post
opts_all_interfaces=Alla

opts_local_recipient_maps=Kasta post till ok鋘da lokala anv鋘dare
opts_no=Nej
opts_save=Spara och ta i drift


opts_allow_percent_hack=Skriv om "anv鋘dare%dom鋘" till "anv鋘dare@dom鋘"
opts_append_at_myorigin=Skriv om "anv鋘dare" till "anv鋘dare@$mydomain"
opts_append_dot_mydomain=Skriv om "anv鋘dare@dator" till "anv鋘dare@dator.$mydomain"
opts_empty_address_recipient=Skicka e-post utan mottagare till...
opt_empty_recip_default=Standard
opts_swap_bangpath=Skriv om "site!anv鋘dare" till "anv鋘dare@site"
opts_masquerade_domains=Adressmaskering
opts_masquerade_exceptions=Maskeringsundantag
index_return=Postfix-inst鋖lningar


opts_alias_maps=Alias-databaser som anv鋘ds av den lokala MTA:n
opts_alias_database=Alias-databas byggd av kommandot &quot;newaliases&quot; 
aliases_warning=Varning: <ul><li>n鋜 det f鰎sta f鋖tet inte 鋜 tomt anv鋘ds standardkommandot f鰎 Postfix alias-skapande till att bygga upp motsvarande databas; <li>annars anv鋘ds Sendmails kompatibilitetskommando &quot;newaliases&quot;. Detta anv鋘der databaserna i det andra f鋖tet.</ul>

aliases_name=Namn
aliases_value=Alias f鰎 ...

new_alias=L鋑g till ett alias
new_aliasmsg=Tryck p denna knapp f鰎 att l鋑ga till ett alias


local_delivery_ecannot=Du f錼 inte 鋘dra de lokala s鋘dinst鋖lningarna
local_delivery_title=Lokal s鋘dning
opts_local_transport=Namn p transportmetod f鰎 lokal s鋘dning
opts_local_transport_local=Lokal
opts_local_command_shell=Skal f鰎 s鋘dning till externt kommando
opts_local_command_shell_direct=Inget (direkt exekvering av kommandon)
opts_forward_path=S鰇v鋑 f鰎 efters鋘dning
opts_allow_mail_to_commands=Godk鋘d e-postleverans till externa kommandon
opts_allow_mail_to_files=Godk鋘d e-postleverans till externa filer
opts_home_mailbox=S鰇v鋑 till anv鋘darens brevl錮a (relativt hemkatalogen)
opts_home_mailbox_default=Ingen (anv鋘d standardv鋑en <tt>/var/n錱onting</tt>)
opts_luser_relay=Destinationsadress f鰎 ok鋘da mottagare
opts_luser_relay_none=Ingen (studsa brevet)
opts_mail_spool_directory=Spool-katalog
opts_mailbox_command=Externt kommando ist鋖let f鰎 s鋘dning till brevl錮a
opts_mailbox_command_none=Inget
opts_mailbox_transport=Valbar verklig transportmetod
opts_mailbox_transport_none=Ingen
opts_fallback_transport=Alternativ transport f鰎 ok鋘da mottagare
opts_fallback_transport_none=Ingen
opts_local_destination_concurrency_limit=Maximalt antal parallella s鋘dningar till samma lokala mottagare
opts_local_destination_recipient_limit=Maximalt antal mottagare per lokal meddelandes鋘dning
opts_local_destination_recipient_limit_default=Standard
opts_prepend_delivered_header=L鋑g till <tt>Delivered-To:</tt> n鋜 ...
opts_prepend_delivered_header_default=Standard


resource_title=Allm鋘 resursstyrning
resource_ecannot=Du f錼 inte 鋘dra parametrarna f鰎 resursstyrning
opts_bounce_size_limit=Maximal storlek f鰎 studsat meddelande
opts_command_time_limit=L鋘gsta tid f鰎 att skicka till externa kommandon
opts_default_process_limit=Maximalt antal Postfix-underprocesser
opts_deliver_lock_attempts=Maximalt antal f鰎s鰇 att f fill錽
opts_deliver_lock_delay=Tid (sekunder) mellan fill錽ningsf鰎s鰇
opts_duplicate_filter_limit=Maximalt antal adresser som dublettfiltret minns
opts_fork_attempts=Maximalt antal f鰎s鰇 att starta underprocess
opts_fork_delay=Tid (sekunder) mellan f鰎s鰇 att starta underprocess
opts_header_size_limit=Maximal minnes錿g錸g f鰎 att processa meddelandehuvud
opts_line_length_limit=Maximal minnes錿g錸g f鰎 att hantera inl鋝ta rader
opts_message_size_limit=Maximal meddelandestorlek
opts_qmgr_message_active_limit=Maximalt antal meddelanden i den aktiva k鰊
opts_qmgr_message_recipient_limit=Maximalt antal mottagare i minnet
opts_queue_minfree=Minsta lediga utrymme i k鰂ilsystemet
opts_stale_lock_time=Maximal tid innan kvargl鰉d l錽ning sl鋚ps
opts_transport_retry_time=Tid (sekunder) mellan f鰎s鰇 att kontakta en defekt MDT


opts_always_bcc=Adress som 鋜 osynlig mottagare av varje meddelande
opts_always_bcc_none=Ingen
opts_daemon_timeout=Tidsgr鋘s f鰎 hantering av f鰎fr錱ningar
opts_default_database_type=Standardtyp f鰎 databas
opts_default_transport=Standardtyp av meddelandetransport
opts_double_bounce_sender=Avs鋘daradress f鰎 studsad e-post
opts_hash_queue_depth=Antal underkatalogniv錯r under k鰇atalogen
opts_hash_queue_names=Namn p k鰇ataloger som delas upp p underkataloger
opts_hopcount_limit=Maximalt antal <tt>Received:</tt>-huvuden
opts_ipc_idle=V鋘tetid efter nedkoppling av intern IPC-klient
opts_ipc_timeout=Tidsgr鋘s f鰎 I/O p intern kommunikationskanal
opts_mail_name=E-postsystemets namn
opts_mail_version=Officiell version f鰎 e-postsystemet
opts_max_idle=V鋘tetid till n鋝ta tj鋘stef鰎fr錱ning
opts_max_use=Maximalt antal behandlade tj鋘stef鰎fr錱ningar f鰎e avslutning
opts_mydomain=Lokalt internetdom鋘namn
opts_mydomain_default=Standard (s鋞ts av systemet)
opts_myhostname=Internet-datornamn f鰎 detta e-postsystem
opts_myhostname_default=Standard (s鋞ts av systemet)
opts_mynetworks=Lokala n鋞verk
opts_mynetworks_default=Standard (alla anslutna n鋞verk)
opts_bounce_notice_recipient=Skicka meddelande om studs till ...
opts_2bounce_notice_recipient=Skicka meddelande om dubbelstuds till ...
opts_delay_notice_recipient=Skicka meddelande om f鰎dr鰆ning till ...
opts_error_notice_recipient=Skicka felmeddelanden till ...
opts_process_id_directory=L錽filskatalog, relativt k鰇atalog
opts_program_directory=Postfix st鰀program- och demonkatalog
opts_recipient_delimiter=Separator mellan anv鋘darnamn och adress鋘delser
opts_relocated_maps_default=Standard (deaktiverad)
opts_sun_mailtool_compatibility=Sl av k鋜nans fill錽 f鰎 brevl錮or
opts_trigger_timeout=Maximal tid f鰎 att skicka en triggning till en demon
opts_delay_warning_time=Tid (timmar) innan varningsmeddelande om utebliven s鋘dning skickas
opts_delay_warning_time_default=Deaktiverat


smtpd_title=SMTP-serverinst鋖lningar
smtpd_ecannot=Du f錼 inte 鋘dra SMTP-serverinst鋖lningarna
opts_disable_vrfy_command=Deaktivera SMTP-kommandot VRFY
opts_smtpd_banner=SMTP-v鋖komstbanner
opts_smtpd_etrn_restrictions=Begr鋘sa ETRN-kommando f鰎 ...
opts_smtpd_recipient_limit=Maximalt antal mottagare per s鋘dning
opts_smtpd_timeout=Tidsgr鋘s (sekunder) f鰎 SMTP-鰒erf鰎ingar
opts_smtpd_error_sleep_time=Tidsgr鋘s innan 4xx/5xx-felsvar skickas
opts_smtpd_soft_error_limit=Antal fel f鰎 att tillf鋖ligt strunta i en klient
opts_smtpd_hard_error_limit=Antal fel f鰎 att koppla ned
opts_smtpd_client_restrictions=Begr鋘sningar f鰎 klienters datornamn/adresser
opts_smtpd_helo_required=HELO kr鋠s
opts_smtpd_helo_restrictions=Begr鋘sningar av HELO-kommandon
opts_smtpd_sender_restrictions=Begr鋘sningar f鰎 avs鋘daradresser
opts_smtpd_recipient_restrictions=Begr鋘sningar f鰎 mottagaradresser
opts_allow_untrusted_routing=Till錿 icke auktoriserad routing
opts_maps_rbl_domains=DNS-dom鋘er f鰎 uppslagning av svartlistning
opts_relay_domains=Begr鋘sa e-post-vidares鋘dning
opts_access_map_reject_code=SMTP-server錿g鋜d vid intr錸gsf鰎s鰇
opts_invalid_hostname_reject_code=SMTP-server錿g鋜d vid datornamnsavvisande
opts_maps_rbl_reject_code=SMTP-server錿g鋜d vid RBL-dom鋘鰒ertr鋎else
opts_reject_code=SMTP-server錿g鋜d vid klientsp鋜r
opts_relay_domains_reject_code=SMTP-server錿g鋜d vid f鰎bjuden vidares鋘dning
opts_unknown_address_reject_code=SMTP-server錿g鋜d vid dom鋘sp鋜r
opts_unknown_client_reject_code=SMTP-server錿g鋜d vid sp鋜r pga ok鋘d klient
opts_unknown_hostname_reject_code=SMTP-server錿g鋜d vid sp鋜r pga ok鋘t datornamn


smtp_title=SMTP-klientinst鋖lningar
smtp_ecannot=Du f錼 inte 鋘dra i SMTP-klientinst鋖lningarna
opts_best_mx_transport=舤g鋜d n鋜 man blivit b鋝ta MX-val
opts_best_mx_transport_default=Standard (studsa brevet)
opts_fallback_relay=Datorer/dom鋘er dit e-post med ogiltig adress skickas
opts_ignore_mx_lookup_error=Strunta i MX-uppslagningsfel
opts_smtp_skip_4xx_greeting=Hoppa 鰒er 4xx-h鋖sning
opts_smtp_skip_quit_response=V鋘ta inte p QUIT-svar
opts_smtp_destination_concurrency_limit=Maximalt antal parallella s鋘dningar till samma destination
opts_smtp_destination_recipient_limit=Maximalt antal mottagare per s鋘dning
opts_smtp_connect_timeout=Tidsgr鋘s f鰎 fullbordande av TCP-uppkopplingar
opts_smtp_helo_timeout=Tidsgr鋘s f鰎 v鋖komstbanner
opts_smtp_mail_timeout=Tidsgr鋘s f鰎 svar p MAIL FROM
opts_smtp_rcpt_timeout=Tidsgr鋘s f鰎 svar p RCPT TO
opts_smtp_data_init_timeout=Tidsgr鋘s f鰎 svar p DATA
opts_smtp_data_xfer_timeout=Tidsgr鋘s f鰎 svar p meddelande鰒erf鰎ing
opts_smtp_data_done_timeout=Tidsgr鋘s vid v鋘tan p svar p avslutande &quot;.&quot;
opts_smtp_quit_timeout=Tidsgr鋘s f鰎 svar p QUIT


rate_title=S鋘dningsparametrar
rate_ecannot=Du f錼 inte 鋘dra p s鋘dningsparametrarna
opts_default_destination_concurrency_limit=Maximalt antal parallella s鋘dningar till samma destination
opts_default_destination_recipient_limit=Maximalt antal mottagare per meddelandes鋘dning
opts_initial_destination_concurrency=Startniv f鰎 samtidig s鋘dning till samma destination
opts_maximal_backoff_time=Maxtid mellan f鰎s鰇 att s鋘da ett f鰎dr鰆t meddelande
opts_maximal_queue_lifetime=Maximal k鰐id (dagar) innan meddelandet anses os鋘dbart
opts_minimal_backoff_time=Minsta tid mellan f鰎s鰇 att s鋘da ett f鰎dr鰆t meddelande
opts_queue_run_delay=Tid (s) mellan l鋝ningar av f鰎dr鰆ningsk鰊
opts_defer_transports=Transportmetoder som inte b鰎 anv鋘das


debug_title=Debug-inst鋖lningar
debug_ecannot=Du f錼 inte 鋘dra debug-inst鋖lningarna
opts_debug_peer_list=Lista 鰒er dom鋘/n鋞verksm鰊ster f鰎 vilka utf鰎lig loggning ska g鰎as
opts_debug_peer_level=Utf鰎lig loggningsniv n鋜 ovanst錯nde lista matchar


ldap_title=LDAP-uppslagningar
ldap_ecannot=Du f錼 inte 鋘dra inst鋖lningarna f鰎 LDAP-uppslagningar
ldap_non_existent=LDAP verkar inte finnas p ditt Postfix-system
opts_ldap_lookup_timeout=Tidsgr鋘s f鰎 LDAP-uppslagningar
opts_ldap_search_base=LDAP-databas som ska genomletas
opts_ldap_server_host=Dator f鰎 LDAP-server

canonical_title=Kanonisk 鰒ers鋞tning
canonical_ecannot=Du f錼 inte 鋘dra inst鋖lningarna f鰎 kanonisk 鰒ers鋞tning
opts_canonical_maps=Tabeller f鰎 adress鰒ers鋞tning
opts_recipient_canonical_maps=Tabeller med mottagaradresser
opts_sender_canonical_maps=Tabeller med avs鋘daradresser
edit_canonical_maps=膎dra kanoniska 鰒ers鋞tningar
edit_recipient_canonical_maps=膎dra 鰒ers鋞tning av mottagaradress
edit_sender_canonical_maps=膎dra 鰒ers鋞tning av avs鋘daradress
edit_canonical_maps_general=Tryck p n錱on av dessa knappar f鰎 att 鋘dra adress鰒ers鋞tningarna
canonical_edit_title=膎dra en adress鰒ers鋞tning

mapping_name=Namn
mapping_value=鰒ers鋞ts till ...
new_mapping=Ny 鰒ers鋞tning
new_mappingmsg=Tryck p denna knapp f鰎 att l鋑ga till en 鰒ers鋞tning
map_save=Spara 鰒ers鋞tning
delete_map=Ta bort 鰒ers鋞tning
edit_map_title=膎dra en 鰒ers鋞tning
map_save_err=Ett fel uppstod n鋜 en 鰒ers鋞tning sparades
mapps_no_map_file=Du har inte angivit n錱on 鰒ers鋞tningsfil
map_delete_create=Du f錼 inte ta bort en 鰒ers鋞tning som du h錶ler p att 鋘dra
maps_internal_error=講ers鋞tning: internt fel
maps_cant_write=Det g錼 inte att skriva
help_map_format=Vilket format ska anv鋘das?


virtual_title=Virtella dom鋘er
virtual_ecannot=Du f錼 inte 鋘dra inst鋖lningarna f鰎 virtuella dom鋘er
opts_virtual_maps=Dom鋘uppslagningstabeller

transport_title=Transportuppslagning
transport_ecannot=Du f錼 inte 鋘dra inst鋖lningarna f鰎 transportuppslagning
opts_transport_maps=Transport-uppslagningstabeller

relocated_title=Omflyttningsuppslagning
relocated_ecannot=Du f錼 inte 鋘dra inst鋖lningarna f鰎 omflyttningsuppslagning
opts_relocated_maps=&quot;Anv鋘daren har flyttats&quot;-tabeller

map_click=Klicka p en 鰒ers鋞tning f鰎 att 鋘dra dess inst鋖lningar:
no_map=(Ingen 鰒ers鋞tning finns. Definiera en 鰒ers鋞tning f鰎st; d鋜efter kan du 鋘dra i den)
   07070100034119000081a40000000000000002000000013ac038b6000029c7000000200000000000000000000000000000001900000003reloc/postfix/lang/zh_CN  index_title=Postfix邮件代理
index_epath=在你的系统上没有安装Postfix控制命令 $1 . 可能你的 <a href='$2'>模块配置</a>不正确,或者没有安装postfix.

internal_error=内部错误
index_econfig=Postfix配置命令 $1 不存在. 可能你的 <a href='$2'>模块配置</a>不正确.
index_stop=停止Postfix
index_start=启动Postfix
index_stopmsg=按下这个按钮将停止正在运行的Postfix邮件服务器. 这将使得从其他系统无法投递信件到本地用户,客户也不能使用这个系统作为邮件服务器发信.
index_startmsg=按下这个按钮将启动Postfix邮件服务器. 直到启动完成前从其他系统无法投递信件到本地用户,客户也不能使用这个系统作为邮件服务器发信.
opts_err=保存设置失败.

check_error=检查当前Postfix设置的时候出错. 请手动修复Postfix配置.

address_rewriting_title=地址重写和转化
address_rewriting_ecannot=你没有编辑地址重写和转化规则的权力.
aliases_title=邮件别名
aliases_ecannot=你没有编辑邮件别名的权力
aliases_no_alias_file=没有别名文件
aliases_cant_write=不能写别名文件
aliases_cant_read=不能读别名文件
aliasopts_title=别名选项
aliases_internal_error=别名: 内部错误
edit_alias_title=别名属性编辑
alias_save=保存别名
alias_save_err=保存别名失败
alias_delete_create=你要删除正在创建的别名吗!?
delete_alias=删除别名

general_title=一般选项
general_title_sensible=最常用的一般选项
general_title_others=其他一般选项
general_ecannot=你没有编辑一般选项的权力
what_is_it=这是什么?

opts_default=缺省
opts_none=无
opts_relayhost=通过转发服务器
opts_direct=直接投递
opts_myorigin=外发的信件使用的域名
opts_myorigin_as_myhostname=使用主机名
opts_myorigin_as_mydomain=使用域名
opts_mydestination=接受信件的域
opts_mydestination_default=本地机器
opts_mydestination_domainwide=整个域
opts_notify_classes=需要报告PostMaster的错误
opts_queue_directory=邮件队列目录
opts_mail_owner=邮件属主
opts_default_privs=投递代理的缺省权限
opts_inet_interfaces=接受邮件的网络接口
opts_all_interfaces=所有

opts_local_recipient_maps=拒绝-未知的本地用户
opts_no=否
opts_save=保存并立即生效


opts_allow_percent_hack=重写 "user%domain" 成 "user@domain"
opts_append_at_myorigin=重写 "user" 成 "user@$mydomain"
opts_append_dot_mydomain=重写 "user@host" 成 "user@host.$mydomain"
opts_empty_address_recipient=把接受者为空的信件发送到...
opt_empty_recip_default=缺省
opts_swap_bangpath=重写 "site!user" 成 "user@site"
opts_masquerade_domains=域地址转化
opts_masquerade_exceptions=不转化的域
index_return=Postfix配置


opts_alias_maps=本地投递代理使用别名数据库
opts_alias_database=通过<newaliases>命令生成新的别名数据库
aliases_warning=警告: <ul><li>如果第一个域非空, 缺省的Postfix的aliases-generation命令将用来生成相应的数据库 ; <li>否则使用Sendmail兼容命令&quot;newaliases&quot;将用到第二个域的数据库.</ul>

aliases_name=名称
aliases_value=别名为...

new_alias=创建一个新的别名
new_aliasmsg=点击这个按钮将创建一个新的别名


local_delivery_ecannot=你没有编辑本地投递选项的权力
local_delivery_title=本地投递
opts_local_transport=本地投递使用的名字
opts_local_transport_local=本地
opts_local_command_shell=投递调用外部命令使用的Shell
opts_local_command_shell_direct=无 (直接执行命令)
opts_forward_path=转发列表的搜索路径
opts_allow_mail_to_commands=有效的外部邮件投递程序
opts_allow_mail_to_files=有效的外部邮件投递文件
opts_home_mailbox=用户邮箱文件路径
opts_home_mailbox_default=否 (使用标准的 <tt>/var/something</tt>)
opts_luser_relay=不认识接受者的目的地址
opts_luser_relay_none=无 (退回信件)
opts_mail_spool_directory=工作路径
opts_mailbox_command=代替邮箱投递的外部命令
opts_mailbox_command_none=无
opts_mailbox_transport=可选的邮件投递器
opts_mailbox_transport_none=无
opts_fallback_transport=未知接收者的可选邮件投递器
opts_fallback_transport_none=无
opts_local_destination_concurrency_limit=同一个本地接受者最大的并行投递数
opts_local_destination_recipient_limit=每一个投递的本地信息最大接受者数
opts_local_destination_recipient_limit_default=缺省
opts_prepend_delivered_header=预先加入一个 <tt>Delivered-To:</tt> 当...
opts_prepend_delivered_header_default=缺省


resource_title=一般的资源管理控制
resource_ecannot=你没有编辑资源控制参数的权力
opts_bounce_size_limit=退回信息的最大尺寸
opts_command_time_limit=投递到外部命令的最大时间
opts_default_process_limit=Postfix子进程的最大数目
opts_deliver_lock_attempts=获取文件锁的最大尝试次数
opts_deliver_lock_delay=尝试获得文件锁的时间间隔(秒)
opts_duplicate_filter_limit=多个过滤器记录的最大地址数
opts_fork_attempts=创建一个进程的最大尝试次数
opts_fork_delay=尝试创建进程的时间间隔(秒)
opts_header_size_limit=处理信件头最大使用内存
opts_line_length_limit=处理输入行的最大使用内存
opts_message_size_limit=一个消息的最大尺寸
opts_qmgr_message_active_limit=激活的邮件队列中最大的信息数
opts_qmgr_message_recipient_limit=内存中最大的接受者数
opts_queue_minfree=在队列文件系统上最小的剩余空间
opts_stale_lock_time=过期的锁的释放的最大时间
opts_transport_retry_time=尝试连接一个失败的MDT的时间间隔


opts_always_bcc=接受bcc的地址
opts_always_bcc_none=无
opts_daemon_timeout=处理请求的超时
opts_default_database_type=缺省的数据库类型
opts_default_transport=缺省信息投递
opts_double_bounce_sender=退回信件的发送者
opts_hash_queue_depth=在队列目录中子目录的最大层数
opts_hash_queue_names=在队列目录中分开子目录的名字
opts_hopcount_limit= <tt>Received:</tt> 头的最大数目
opts_ipc_idle=内部IPC客户断开连接后的呆死时间
opts_ipc_timeout=内部通讯信道的I/O超时
opts_mail_name=邮件系统名
opts_mail_version=官方的邮件系统版本
opts_max_idle=下一次请求的等待时间
opts_max_use=退出前最大处理的请求数
opts_mydomain=本地内部域名
opts_mydomain_default=缺省 (系统提供)
opts_myhostname=这台邮件系统的内部主机名
opts_myhostname_default=缺省 (系统提供)
opts_mynetworks=本地网络
opts_mynetworks_default=缺省 (所有配置好的网络)
opts_bounce_notice_recipient=发送给psotmaster通知,当退回...
opts_2bounce_notice_recipient=发送给psotmaster通知,当退回...
opts_delay_notice_recipient=发送给psotmaster通知,当延迟...
opts_error_notice_recipient=发送给psotmaster通知当出错...
opts_process_id_directory=锁定与队列相关的文件目录
opts_program_directory=Postfix的程序目录
opts_recipient_delimiter=分开的用户/地址扩展
opts_relocated_maps_default=缺省(无效)
opts_sun_mailtool_compatibility=不锁定邮箱的核心文件
opts_trigger_timeout=发送给服务程序通知的超时
opts_delay_warning_time=由于无法投递而发送警告的等待时间(小时)
opts_delay_warning_time_default=无效


smtpd_title=SMTP服务器选项
smtpd_ecannot=你没有编辑SMTP服务器选项的权力
opts_disable_vrfy_command=屏蔽SMTP VRFY命令
opts_smtpd_banner=SMTP欢迎词
opts_smtpd_etrn_restrictions=限制ETRN命令...
opts_smtpd_recipient_limit=允许投递的最大收信人数
opts_smtpd_timeout=SMTP传输超时(秒)
opts_smtpd_error_sleep_time=发送4xx/5xx错误响应前的时间
opts_smtpd_soft_error_limit=临时忽略一个用户的错误数目
opts_smtpd_hard_error_limit=关闭连接的错误数目
opts_smtpd_client_restrictions=限制客户的主机名和地址
opts_smtpd_helo_required=需要HELO
opts_smtpd_helo_restrictions=发送HELO命令限制
opts_smtpd_sender_restrictions=发信人地址限制
opts_smtpd_recipient_restrictions=收信人地址限制
opts_allow_untrusted_routing=允许不可信的投递路由
opts_maps_rbl_domains=DNS域名查找的黑名单
opts_relay_domains=限制转发的域
opts_access_map_reject_code=当权限不够拒绝的SMTP服务器响应
opts_invalid_hostname_reject_code=当无效的主机名时SMTP服务器响应
opts_maps_rbl_reject_code=当域在黑名单时SMTP服务器响应
opts_reject_code=客户端拒绝时SMTP服务器响应
opts_relay_domains_reject_code=当禁止转发时SMTP服务器响应
opts_unknown_address_reject_code=当域未知时SMTP服务器响应
opts_unknown_client_reject_code=当未知的客户时SMTP服务器响应
opts_unknown_hostname_reject_code=当未知的主机时SMTP服务器响应


smtp_title=SMTP客户选项
smtp_ecannot=你没有编辑SMTP客户选项的权力
opts_best_mx_transport=当作为最好的MX主机时的动作
opts_best_mx_transport_default=缺省 (退回信息)
opts_fallback_relay=作为无效的目标停止传递邮件的主机/域
opts_ignore_mx_lookup_error=忽略MX查找错误
opts_smtp_skip_4xx_greeting=忽略4xx提示
opts_smtp_skip_quit_response=不等待Quit命令响应
opts_smtp_destination_concurrency_limit=同一个目标最大的并行投递数
opts_smtp_destination_recipient_limit=每一次投递最大的接受者数
opts_smtp_connect_timeout=连接超时
opts_smtp_helo_timeout=等待欢迎信息超时
opts_smtp_mail_timeout=等待MAIL FROM响应超时
opts_smtp_rcpt_timeout=等待RCPT TO响应超时
opts_smtp_data_init_timeout=等待DATA响应超时
opts_smtp_data_xfer_timeout=等待传输信息正文响应超时
opts_smtp_data_done_timeout=等待结束的&quot;.&quot;的响应超时
opts_smtp_quit_timeout=等待QUIT响应超时


rate_title=投递速度
rate_ecannot=你没有编辑投递速度选项的权力
opts_default_destination_concurrency_limit=投递到同一目标的最大并行投递数
opts_default_destination_recipient_limit=每一次信息投递最大的接受者数
opts_initial_destination_concurrency=投递到同一目标的初始的并行级别
opts_maximal_backoff_time=在投递一个延迟信息等待的最大时间(秒)
opts_maximal_queue_lifetime=不可投递的信息在队列中保留的最大时间(天)
opts_minimal_backoff_time=在投递一个延迟的信息等待的最小时间(秒)
opts_queue_run_delay=检查延迟投递队列的时间间隔(秒)
opts_defer_transports=不能投递时投递处理器


debug_title=调试特性
debug_ecannot=你没有编辑调试特性的权力
opts_debug_peer_list=打开详细记录的域/网络表
opts_debug_peer_level=当匹配上面的列表的记录详细程度


ldap_title=LDAP查询
ldap_ecannot=你没有编辑LDAP查询选项的权力
ldap_non_existent=LDAP在你的Postfix系统上不存在
opts_ldap_lookup_timeout=LDAP数据库查询超时
opts_ldap_search_base=查询的LDAP数据库
opts_ldap_server_host=LDAP服务器名

canonical_title=规范映射配置
canonical_ecannot=你没有编辑规范映射配置的权力
opts_canonical_maps=地址映射查找表
opts_recipient_canonical_maps=收信人地址表
opts_sender_canonical_maps=发信人地址表
edit_canonical_maps=编辑规范表
edit_recipient_canonical_maps=编辑收信人规范表
edit_sender_canonical_maps=编辑发信人规范表
edit_canonical_maps_general=点击按钮编辑规范映射
canonical_edit_title=编辑规范映射

mapping_name=名字
mapping_value=映射到...
new_mapping=新映射
new_mappingmsg=点击这个按钮创建一个新映射
map_save=保存映射
delete_map=删除映射
edit_map_title=编辑映射
map_save_err=保存映射时出错
mapps_no_map_file=没有定义映射文件
map_delete_create=不能删除一个正在创建的映射
maps_internal_error=映射: 内部错误
maps_cant_write=不能写
help_map_format=我应该使用什么格式?


virtual_title=虚拟域
virtual_ecannot=你没有编辑虚拟域配置的权力
opts_virtual_maps=域映射查找表

transport_title=投递器映射
transport_ecannot=你没有编辑投递器映射配置的权力
opts_transport_maps=投递器映射查找表

relocated_title=重定向映射
relocated_ecannot=你没有编辑重定向映射配置的权力
opts_relocated_maps=重定向映射查找表

map_click=点击任何一个映射编辑他的属性
no_map=(当前没有定义映射. 首先定义一个映射, 然后你可以编辑它)
 07070100031049000081e40000000000000002000000013ac038b600000618000000200000000000000000000000000000001700000003reloc/postfix/ldap.cgi    #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
#
# A form for controling ldap lookups.
#
# << Here are all options seen in Postfix sample-ldap.cf >>

require './postfix-lib.pl';


$access{'ldap'} || &error($text{'ldap_ecannot'});
&header($text{'ldap_title'}, "");
print "<hr>\n";

$default = $text{'opts_default'};
$none = $text{'opts_none'};
$no_ = $text{'opts_no'};

if (!(&is_existing_parameter("ldap_lookup_timeout")))
{
    print $text{'ldap_non_existent'};
    exit;
}


print "<form action=save_opts.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'ldap_title'}</b></td></tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
&option_freefield("ldap_lookup_timeout", 15);
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("ldap_search_base", 65, $none);
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("ldap_server_host", 65, $none);
print "</tr>\n";

print "</table></td></tr></table><p>\n";
print "<input type=submit value=\"$text{'opts_save'}\"></form>\n";
print "<hr>\n";
&footer("", $text{'index_return'});




0707010003104a000081e40000000000000002000000013ac038b600000b28000000200000000000000000000000000000002100000003reloc/postfix/local_delivery.cgi  #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
#
# A form for controlling local delivery.
#
# << Here are all options seen in Postfix sample-local.cf >>

require './postfix-lib.pl';


$access{'local_delivery'} || &error($text{'local_delivery_ecannot'});
&header($text{'local_delivery_title'}, "");
print "<hr>\n";

$default = $text{'opts_default'};
$none = $text{'opts_none'};
$no_ = $text{'opts_no'};

print "<form action=save_opts.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'local_delivery_title'}</b></td></tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
&option_radios_freefield("local_transport", 20, $text{'opts_local_transport_local'});
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("local_command_shell", 40, $text{'opts_local_command_shell_direct'});
print "</tr>\n";

print "<tr>\n";
&option_freefield("forward_path", 80);
print "</tr>\n";

print "<tr>\n";
&option_freefield("allow_mail_to_commands", 40);
print "</tr>\n";

print "<tr>\n";
&option_freefield("allow_mail_to_files", 40);
print "</tr>\n";

print "<tr>\n";
&option_freefield("default_privs", 15);
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("home_mailbox", 40, $text{'opts_home_mailbox_default'});
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("luser_relay", 40, $text{'opts_luser_relay_none'});
print "</tr>\n";

print "<tr>\n";
&option_freefield("mail_spool_directory", 40);
print "</tr>\n";

print "<tr>\n";
&option_freefield("mailbox_command", 60, $text{'opts_mailbox_command_none'});
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("mailbox_transport", 40, $text{'opts_mailbox_transport_none'});
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("fallback_transport", 40, $text{'opts_fallback_transport_none'});
print "</tr>\n";

print "<tr>\n";
&option_freefield("local_destination_concurrency_limit", 40);
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("local_destination_recipient_limit", 40, $text{'opts_local_destination_recipient_limit_default'});
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("prepend_delivered_header", 40, $text{'opts_prepend_delivered_header_default'});
print "</tr>\n";


print "</table></td></tr></table><p>\n";
print "<input type=submit value=\"$text{'opts_save'}\"></form>\n";
print "<hr>\n";
&footer("", $text{'index_return'});




0707010003104b000081e40000000000000002000000013ac038b60000087d000000200000000000000000000000000000001c00000003reloc/postfix/maps_edit.cgi   #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
# 
# Edit maps

require './postfix-lib.pl';
&ReadParse();

&header($text{'canonical_edit_title'}, "");


my $which;

if ($in{'which'} eq $text{'edit_canonical_maps'}) { $which = 1; }
elsif ($in{'which'} eq $text{'edit_recipient_canonical_maps'}) { $which = 2; }
elsif ($in{'which'} eq $text{'edit_sender_canonical_maps'}) { $which = 3; }
else { &error($text{'internal_error'}); }



# double-table displaying all mappings

my $mappingsaliases = &get_aliases();

print "Click on any alias to edit its properties:\n<br>\n";
print "<table width=100%> <tr><td width=50% valign=top>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'aliases_name'}</b></td> ",
      "<td><b>$text{'aliases_value'}</b></td> </tr>\n";

my $split_index = int(($#{$aliases})/2);
my $i = -1;

foreach $alias (@{$aliases})
{
    print "<tr $cb>\n";
    print "<td><a href=\"edit_alias.cgi?num=$alias->{'number'}\">$alias->{'name'}</a></td>\n";
    print "<td>$alias->{'value'}</td>\n</tr>\n";
    $i++;
    if ($i == $split_index)
    {
	print "</table></td><td width=50% valign=top>\n";
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'aliases_name'}</b></td> ",
	"<td><b>$text{'aliases_value'}</b></td> </tr>\n";
    }
}

print "</tr></td></table>\n";
print "</table>\n";


# new alias form

print "<table cellpadding=5 width=100%><tr><td>\n";
print "<form action=edit_alias.cgi>\n";
print "<input type=submit value=\"$text{'new_alias'}\">\n";
print "</td> <td width=\"99%\">$text{'new_aliasmsg'}\n";
print "</td></tr></table></form>\n";


print "<hr>\n";
&footer("", $text{'index_return'});


print "$which <hr>\n";
print "<br>\n";

   0707010003104c000081a40000000000000002000000013ac038b600000161000000200000000000000000000000000000001a00000003reloc/postfix/module.info name=Postfix
desc_tr=Postfix Yap齦and齬mas
desc_ru_SU=胂纹汕找撩裳 Postfix
desc_pl=Konfiguracja Postfiksa
category=servers
desc_fr=Configuration de Postfix
desc_es=Configuraci髇 de Postfix
desc_de=Postfix Konfiguration
desc=Postfix Configuration
desc_sv=Postfixinst鋖lningar
risk=low medium high
desc_zh_CN=Postfix 配置
desc_ru_RU=暑眙桡箴圉 Postfix
   0707010003104e000081a40000000000000002000000013ac038b600003554000000200000000000000000000000000000001d00000003reloc/postfix/postfix-lib.pl  # postfix-lib.pl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
#
# Functions for managing the postfix module for Webmin.
#
# Written by G. Cottenceau for MandrakeSoft <gc@mandrakesoft.com>
# This is free software under GPL license.
#

$POSTFIX_MODULE_VERSION = 5;

#
#
# -------------------------------------------------------------------------


do '../web-lib.pl';
&init_config();
%access = &get_module_acl();

sub guess_config_dir
{
    my $answ = $config{'postfix_config_file'};
    $answ =~ /(.*)\/[^\/]*/;
    return $1;
}

$config_dir = guess_config_dir();


## DOC: compared to other webmin modules, here we don't need to parse
##      the config file, because a config command is provided by
##      postfix to read and write the config parameters


# postfix_module_version()
# returns the version of the postfix module
sub postfix_module_version
{
    return $POSTFIX_MODULE_VERSION;
}

# is_postfix_running()
# returns 1 if running, 0 if stopped, calls error() if problem
sub is_postfix_running
{
    my $queuedir = get_current_value("queue_directory");
    my $processid = get_current_value("process_id_directory");

    my $pid_file = $queuedir."/".$processid."/master.pid";

    if (open(PID, $pid_file))
    {
	chop(my $pid = <PID>);
	close(PID);
	$pid =~ /([0-9]+)/;
	return kill 0, $1;
    }
    else
    {
	return 0;
    }
}


sub is_existing_parameter
{
    my $out = `$config{'postfix_config_command'} -c $config_dir $_[0] 2>&1`;
    return !($out =~ /unknown parameter/);
}


# get_current_value(parameter_name)
# returns a scalar corresponding to the value of the parameter
sub get_current_value
{
    my $out = `$config{'postfix_config_command'} -c $config_dir -h $_[0] 2>&1`;  # -h tells postconf not to output the name of the parameter
    if ($?) { &error(&text('query_get_efailed', $_[0], $out)); }
    chop($out);
    return $out;
}

# if_default_value(parameter_name)
# returns if the value is the default value
sub if_default_value
{
    my $out = `$config{'postfix_config_command'} -c $config_dir -n $_[0] 2>&1`;
    if ($?) { &error(&text('query_get_efailed', $_[0], $out)); }
    return ($out eq "");
}

# get_default_value(parameter_name)
# returns the default value of the parameter
sub get_default_value
{
    my $out = `$config{'postfix_config_command'} -c $config_dir -dh $_[0] 2>&1`;  # -h tells postconf not to output the name of the parameter
    if ($?) { &error(&text('query_get_efailed', $_[0], $out)); }
    chop($out);
    return $out;
}


# set_current_value(parameter_name, parameter_value)
# 
sub set_current_value
{
    my $value = $_[1];
#    print "--".$value."--<br>";
    if (($value eq "__DEFAULT_VALUE_IE_NOT_IN_CONFIG_FILE__") || ($value eq &get_default_value($_[0])))
    {
	# there is a special case in which there is no static default value ;
	# postfix will handle it correctly if I remove the line in `main.cf'
	my $all_lines = &read_file_lines($config{'postfix_config_file'});
	my $line_of_parameter = -1;
	my $i = 0;

	foreach (@{$all_lines})
	{
	    if (/^\s*$_[0]\s*=/)
	    {
		$line_of_parameter = $i;
	    }
	    $i++;
	}

	if ($line_of_parameter != -1)
	{
	    splice(@{$all_lines}, $line_of_parameter, 1);
	    
	    &flush_file_lines();
	}
    }
    else
    {
	$value =~ s/\$/\\\$/g;     # prepend a \ in front of every $ to protect from shell substitution
	$out = system("$config{'postfix_config_command'} -c $config_dir -e $_[0]=\"$value\" 2>&1");
    }
    if ($out) { &error(&text('query_set_efailed', $_[0], $_[1], $out)."<br> $config{'postfix_config_command'} -c $config_dir -e $_[0]=\"$value\" 2>&1"); }
}

# check_postfix()
#
sub check_postfix
{
	my $out = system("$config{'postfix_control_command'} -c $config_dir check 2>&1");
	return $out;
}

# reload_postfix()
#
sub reload_postfix
{
    $access{'startstop'} || &error($text{'reload_ecannot'});
    if (is_postfix_running())
    {
	if (check_postfix()) { &error("$text{'check_error'}"); }
	my $out = system("$config{'postfix_control_command'} -c $config_dir reload 2>&1");
	if ($out) { &error($text{'reload_efailed'}); }
    }
}





# option_radios_freefield(name_of_option, length_of_free_field, [name_of_radiobutton, text_of_radiobutton]+)
# builds an option with variable number of radiobuttons and a free field
# WARNING: *FIRST* RADIO BUTTON *MUST* BE THE DEFAULT VALUE OF POSTFIX
sub option_radios_freefield
{
    my ($name, $length) = ($_[0], $_[1]);

    my $v = &get_current_value($name);
    my $key = 'opts_'.$name;

    my $check_free_field = 1;
    
    printf "<td>".&hlink("<b>$text{$key}</b>", "opt_".$name)."</td> <td %s nowrap>\n",
    $length > 20 ? "colspan=3" : "";

    # first radio button (must be default value!!)
    
    printf "<input type=radio name=$name"."_def value=\"__DEFAULT_VALUE_IE_NOT_IN_CONFIG_FILE__\" %s> $_[2]\n",
    (&if_default_value($name)) ? "checked" : "";

    $check_free_field = 0 if &if_default_value($name);
    shift;
    
    # other radio buttons
    while (defined($_[2]))
    {
	printf "<input type=radio name=$name"."_def value=\"$_[2]\" %s> $_[3]\n",
	($v eq $_[2]) ? "checked" : "";
	if ($v eq $_[2]) { $check_free_field = 0; }
	shift;
	shift;
    }

    # the free field
    printf "<input type=radio name=$name"."_def value=__USE_FREE_FIELD__ %s>\n",
    ($check_free_field == 1) ? "checked" : "";
    printf "<input name=$name size=$length value=\"%s\"> </td>\n",
    ($check_free_field == 1) ? $v : "";
}


# option_freefield(name_of_option, length_of_free_field)
# builds an option with free field
sub option_freefield
{
    my ($name, $length) = ($_[0], $_[1]);

    my $v = &get_current_value($name);
    my $key = 'opts_'.$name;
    
    printf "<td>".&hlink("<b>$text{$key}</b>", "opt_".$name)."</td> <td %s nowrap>\n",
    $length > 20 ? "colspan=3" : "";
    
    print "<input name=$name"."_def size=$length value=\"$v\"> </td>\n";
}


# option_yesno(name_of_option, [help])
# if help is provided, displays help link
sub option_yesno
{
    my $name = $_[0];
    my $v = &get_current_value($name);
    my $key = 'opts_'.$name;

    defined($_[1]) ?
	print "<td>".&hlink("<b>$text{$key}</b>", "opt_".$name)."</td> <td nowrap>\n"
    :
	print "<td><b>$text{$key}</b></td> <td nowrap>\n";
    
    printf "<input type=radio name=$name"."_def value=\"yes\" %s> $text{'yes'}\n",
    (lc($v) eq "yes") ? "checked" : "";

    printf "<input type=radio name=$name"."_def value=\"no\" %s> $text{'no'}\n",
    (lc($v) eq "no") ? "checked" : "";

    print "</td>\n";
}



############################################################################
# aliases support    [too lazy to create a aliases-lib.pl :-)]

# get_aliases_files($alias_maps) : @aliases_files
# parses its argument to extract the filenames of the aliases files
# supports multiple alias-files
sub get_aliases_files
{
    $_[0] =~ /:(\/[^,\s]*)(.*)/;
    (my $returnvalue, my $recurse) = ( $1, $2 );

    # Yes, Perl is also a functional language -> I construct a list, and no problem, lists are flattened in Perl
    return ( $returnvalue,
	     ($recurse =~ /:\/[^,\s]*/) ?
	         &get_aliases_files($recurse)
	     :
	         ()
           )
}

 
# get_aliases() : \@aliases
# construct the aliases database taken from the aliases files given in the "alias_maps" parameter
sub get_aliases
{
    if (!@aliases_cache)
    {
	my @aliases_files = &get_aliases_files(&get_current_value("alias_maps"));
	my $number = 0;
	foreach $aliases_file (@aliases_files)
	{
	    open(ALIASES, $aliases_file);
	    my $i = 0;
	    while (<ALIASES>)
	    {
		s/^#.*$//g;	# remove comments
		s/\r|\n//g;	# remove newlines
		if ((/^\s*\"([^\"]*)[^:]*:\s*([^#]*)/) ||      # names with double quotes (") are special, as seen in `man aliases(5)`
		    (/^\s*([^\s:]*)[^:]*:\s*([^#]*)/))         # other names
		{
		    $number++;
		    my %alias;
		    $alias{'name'} = $1;
		    $alias{'value'} = $2;
		    $alias{'line'} = $i;
		    $alias{'alias_file'} = $aliases_file;
		    $alias{'number'} = $number;
		    push(@aliases_cache, \%alias);
		}
		$i++;
	    }
	    close(ALIASES);
	}
    }
    return \@aliases_cache;
}


# init_new_alias() : $number
# gives a new number of alias
sub init_new_alias
{
    $aliases = &get_aliases();

    my $max_number = 0;

    foreach $trans (@{$aliases})
    {
	if ($trans->{'number'} > $max_number) { $max_number = $trans->{'number'}; }
    }
    
    return $max_number+1;
}



# save_options(%options)
#
sub save_options
{
    if (check_postfix()) { &error("$text{'check_error'}"); }

    my %options = %{$_[0]};

    foreach $key (keys %options)
    {
	if ($key =~ /_def/)
	{
	    (my $param = $key) =~ s/_def//;
	    
	    ($options{$key} eq "__USE_FREE_FIELD__") ?
		&set_current_value($param, $options{$param})
		    :
		&set_current_value($param, $options{$key});
	}
    }
}


# regenerate_aliases
#
sub regenerate_aliases
{
    $access{'genaliases'} || error($text{'regenerate_ecannot'});
    if (get_current_value("alias_maps") eq "")
    {
	$out = system("$config{'postfix_newaliases_command'} 2>&1");
	if ($out) { &error(&text('regenerate_alias_efailed', $out)); }
    }
    else
    {
	foreach $map (get_maps_files(get_current_value("alias_maps")))
	{
	    $out = system("$config{'postfix_aliases_table_command'} -c $config_dir $map 2>&1");
	    if ($out) { &error(&text('regenerate_table_efailed', $map, $out)); }
	}
    }
}


# regenerate_relocated_table
#
sub regenerate_relocated_table
{
    &regenerate_any_table("relocated_maps");
}


# regenerate_virtual_table
#
sub regenerate_virtual_table
{
    &regenerate_any_table("virtual_maps");
}


# regenerate_canonical_table
#
sub regenerate_canonical_table
{
    &regenerate_any_table("canonical_maps");
    &regenerate_any_table("recipient_canonical_maps");
    &regenerate_any_table("sender_canonical_maps");
}


# regenerate_transport_table
#
sub regenerate_transport_table
{
    &regenerate_any_table("transport_maps");
}


# regenerate_any_table($parameter_where_to_find_the_table_names)
#
sub regenerate_any_table
{
    if (&get_current_value($_[0]) ne "")
    {
	foreach $map (&get_maps_files(&get_current_value($_[0])))
	{
	    $out = system("$config{'postfix_lookup_table_command'} -c $config_dir  $map 2>&1");
	    if ($out) { &error(&text('regenerate_table_efailed', $map, $out)); }
	}
    }
}



############################################################################
# maps [canonical, virtual, transport] support

# get_maps_files($maps_param) : @maps_files
# parses its argument to extract the filenames of the mapping files
# supports multiple maps-files
sub get_maps_files
{
    $_[0] =~ /:(\/[^,\s]*)(.*)/;
    (my $returnvalue, my $recurse) = ( $1, $2 );

    return ( $returnvalue,
	     ($recurse =~ /:\/[^,\s]*/) ?
	         &get_maps_files($recurse)
	     :
	         ()
           )
}

 
# get_maps($maps_name) : \@maps
# construct the mappings database taken from the map files given from the parameter
sub get_maps
{
    if (!@maps_cache)
    {
	my @maps_files = &get_maps_files(&get_current_value($_[0]));
	my $number = 0;
	foreach $maps_file (@maps_files)
	{
	    open(MAPS, $maps_file);
	    my $i = 0;
	    while (<MAPS>)
	    {
		s/^#.*$//g;	# remove comments
		s/\r|\n//g;	# remove newlines
		if (/^\s*([^\s]+)\s+([^#]*)/)
		{
		    $number++;
		    my %map;
		    $map{'name'} = $1;
		    $map{'value'} = $2;
		    $map{'line'} = $i;
		    $map{'map_file'} = $maps_file;
		    $map{'number'} = $number;
		    push(@maps_cache, \%map);
		}
		$i++;
	    }
	    close(MAPS);
	}
    }
    return \@maps_cache;
}


sub generate_map_edit
{
    if (&get_current_value($_[0]) eq "")
    {
	print ("<h2>$text{'no_map2'}</h2><br>");
	exit;
    }


    my $mappings = &get_maps($_[0]);

    if ($#{$mappings} ne -1)
    {
	print $_[1];
	
	print "<table width=100%> <tr><td width=50% valign=top>\n";
	
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'mapping_name'}</b></td> ",
	"<td><b>$text{'mapping_value'}</b></td> </tr>\n";

	my $split_index = int(($#{$mappings})/2);
	my $i = -1;
	
	foreach $map (@{$mappings})
	{
	    print "<tr $cb>\n";
	    print "<td><a href=\"edit_mapping.cgi?num=$map->{'number'}&map_name=$_[0]\">$map->{'name'}</a></td>\n";
	    print "<td>$map->{'value'}</td>\n</tr>\n";
	    $i++;
	    if ($i == $split_index)
	    {
		print "</table></td><td width=50% valign=top>\n";
		print "<table border width=100%>\n";
		print "<tr $tb> <td><b>$text{'mapping_name'}</b></td> ",
		"<td><b>$text{'mapping_value'}</b></td> </tr>\n";
	    }
	}
	
	print "</tr></td></table>\n";
	print "</table>\n";
    }


# new form

    print "<table cellpadding=5 width=100%><tr><td>\n";
    print "<form action=edit_mapping.cgi>\n";
    print "<input type=hidden name=\"map_name\" value=\"$_[0]\">";
    print "<input type=submit value=\"$text{'new_mapping'}\">\n";
    print "</td> <td width=\"99%\">$text{'new_mappingmsg'}\n";
    print "</td></tr></table></form>\n";

}


# init_new_mapping($maps_parameter) : $number
# gives a new number of mapping
sub init_new_mapping
{
    $maps = &get_maps($_[0]);

    my $max_number = 0;

    foreach $trans (@{$maps})
    {
	if ($trans->{'number'} > $max_number) { $max_number = $trans->{'number'}; }
    }
    
    return $max_number+1;
}

1;

0707010003104f000081e40000000000000002000000013ac038b6000006ca000000200000000000000000000000000000001700000003reloc/postfix/rate.cgi    #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
#
# A form for SMTP client parameters.
#
# << Here are all options seen in Postfix sample-rate.cf >>

require './postfix-lib.pl';


$access{'rate'} || &error($text{'rate_ecannot'});
&header($text{'rate_title'}, "");
print "<hr>\n";

$default = $text{'opts_default'};
$none = $text{'opts_none'};
$no_ = $text{'opts_no'};

print "<form action=save_opts.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'rate_title'}</b></td></tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
&option_freefield("default_destination_concurrency_limit", 15);
&option_freefield("default_destination_recipient_limit", 15);
print "</tr>\n";

print "<tr>\n";
&option_freefield("initial_destination_concurrency", 15);
&option_freefield("maximal_queue_lifetime", 15);
print "</tr>\n";

print "<tr>\n";
&option_freefield("minimal_backoff_time", 15);
&option_freefield("maximal_backoff_time", 15);
print "</tr>\n";

print "<tr>\n";
&option_freefield("queue_run_delay", 15);
&option_freefield("defer_transports", 15);
print "</tr>\n";


print "</table></td></tr></table><p>\n";
print "<input type=submit value=\"$text{'opts_save'}\"></form>\n";
print "<hr>\n";
&footer("", $text{'index_return'});




  07070100031050000081e40000000000000002000000013ac038b600000638000000200000000000000000000000000000001c00000003reloc/postfix/relocated.cgi   #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
# 
# Manages relocated tables for Postfix
#
# << Here are all options seen in Postfix sample-relocated.cf >>


require './postfix-lib.pl';

$access{'relocated'} || &error($text{'relocated_ecannot'});
&header($text{'relocated_title'}, "", "relocated");

print "<hr>\n";


# alias general options

print "<form action=save_opts_relocated.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'relocated_title'}</b></td></tr>\n";
print "<tr $cb> <td><table width=100%>\n";

$none = $text{'opts_none'};

print "<tr>\n";
&option_radios_freefield("relocated_maps", 60, $none);
print "</tr>\n";

print "</table></td></tr></table><p>\n";
print "<input type=submit value=\"$text{'opts_save'}\"></form>\n";
print "<hr>\n";
print "<br>\n";


if (&get_current_value("relocated_maps") eq "")
{
    print ($text{'no_map'}."<br><br>");
}
else
{
    &generate_map_edit("relocated_maps", $text{'map_click'}." ".
		       "<font size=\"-1\">".&hlink("$text{'help_map_format'}", "relocated")."</font>\n<br>\n");
}

print "<hr>\n";
&footer("", $text{'index_return'});
07070100031051000081e40000000000000002000000013ac038b6000008a6000000200000000000000000000000000000001b00000003reloc/postfix/resource.cgi    #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
#
# A form for controlling resource control.
#
# << Here are all options seen in Postfix sample-resource.cf >>

require './postfix-lib.pl';


$access{'resource'} || &error($text{'resource_ecannot'});
&header($text{'resource_title'}, "");
print "<hr>\n";

$default = $text{'opts_default'};
$none = $text{'opts_none'};
$no_ = $text{'opts_no'};

print "<form action=save_opts.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'resource_title'}</b></td></tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
&option_freefield("bounce_size_limit", 15);
&option_freefield("command_time_limit", 15);
print "</tr>\n";

print "<tr>\n";
&option_freefield("default_process_limit", 15);
&option_freefield("duplicate_filter_limit", 15);
print "</tr>\n";

print "<tr>\n";
&option_freefield("deliver_lock_attempts", 15);
&option_freefield("deliver_lock_delay", 15);
print "</tr>\n";

print "<tr>\n";
&option_freefield("fork_attempts", 15);
&option_freefield("fork_delay", 15);
print "</tr>\n";

print "<tr>\n";
&option_freefield("header_size_limit", 15);
&option_freefield("line_length_limit", 15);
print "</tr>\n";

print "<tr>\n";
&option_freefield("message_size_limit", 15);
&option_freefield("qmgr_message_active_limit", 15);
print "</tr>\n";

print "<tr>\n";
&option_freefield("qmgr_message_recipient_limit", 15);
&option_freefield("queue_minfree", 15);
print "</tr>\n";

print "<tr>\n";
&option_freefield("stale_lock_time", 15);
&option_freefield("transport_retry_time", 15);
print "</tr>\n";



print "</table></td></tr></table><p>\n";
print "<input type=submit value=\"$text{'opts_save'}\"></form>\n";
print "<hr>\n";
&footer("", $text{'index_return'});




  07070100031052000081e40000000000000002000000013ac038b700000701000000200000000000000000000000000000001a00000003reloc/postfix/rewrite.cgi #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
#
# A form for editing address rewriting for Postfix
#
# << Here are all options seen in Postfix sample-rewrite.cf >>

require './postfix-lib.pl';


$access{'address_rewriting'} || &error($text{'address_rewriting_ecannot'});
&header($text{'address_rewriting_title'}, "");
print "<hr>\n";

$default = $text{'opts_default'};
$none = $text{'opts_none'};
$no_ = $text{'opts_no'};

print "<form action=save_opts.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'address_rewriting_title'}</b></td></tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
&option_yesno("allow_percent_hack");
&option_yesno("append_at_myorigin");
print "</tr>\n";

print "<tr>\n";
&option_yesno("append_dot_mydomain");
&option_yesno("swap_bangpath", 'help');
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("empty_address_recipient", 20, $text{'opt_empty_recip_default'});
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("masquerade_domains", 35, $none);
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("masquerade_exceptions", 35, $none);
print "</tr>\n";


print "</table></td></tr></table><p>\n";
print "<input type=submit value=\"$text{'opts_save'}\"></form>\n";
print "<hr>\n";
&footer("", $text{'index_return'});




   07070100031053000081e40000000000000002000000013ac038b700000784000000200000000000000000000000000000001d00000003reloc/postfix/save_alias.cgi  #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
#
# Save, modify, delete an alias for Postfix


require './postfix-lib.pl';

&ReadParse();


$access{'aliases'} || &error($text{'aliases_ecannot'});

#      &header($text{'aliases_title'}, "");

&error_setup($text{'alias_save_err'});


$aliases = &get_aliases();
my $add = 1; my %alias;

foreach $trans (@{$aliases})
{
    if ($trans->{'number'} == $in{'num'}) { $add = 0; %alias = %{$trans}; }
}



my @aliases_files = &get_aliases_files(&get_current_value("alias_maps"));

defined($aliases_files[0]) || &error($text{'aliases_no_alias_file'});

if ($in{'delete'})
{
    if ($add == 1)
    {
	$whatfailed = "";
	&error(&text('aliases_failed_delete', $text{'alias_delete_create'}));
    }
    my $all_aliases = &read_file_lines($alias{'alias_file'});
    splice(@{$all_aliases}, $alias{'line'}, 1);
    &flush_file_lines();
}
elsif ($add == 0)
{
    # modify an existing alias
    my $all_aliases = &read_file_lines($alias{'alias_file'});
    $all_aliases->[$alias{'line'}] = "$in{'name'}: $in{'value'}\n";
    &flush_file_lines();
}
else
{
    # add a new alias -- much more easy! :-)
    open(ALIASES, ">>$aliases_files[0]") or &error($text{'aliases_cant_write'});
    if ((print ALIASES "$in{'name'}: $in{'value'}\n") == 0) { &error($text{'aliases_cant_write'}); }
    close(ALIASES);
}
    


# re-creates aliases database

&regenerate_aliases();

&reload_postfix();

&redirect("aliases.cgi");




07070100031054000081e40000000000000002000000013ac038b7000007b9000000200000000000000000000000000000001b00000003reloc/postfix/save_map.cgi    #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
#
# Save, modify, delete a map for Postfix


require './postfix-lib.pl';

&ReadParse();


#     &header($text{'aliases_title'}, "");

&error_setup($text{'map_save_err'});


my $maps = &get_maps($in{'map_name'});
my $add = 1; my %map;

foreach $trans (@{$maps})
{
    if ($trans->{'number'} == $in{'num'}) { $add = 0; %map = %{$trans}; }
}



my @maps_files = &get_maps_files(&get_current_value($in{'map_name'}));

defined($maps_files[0]) || &error($text{'mapps_no_map_file'});

if ($in{'delete'})
{
    if ($add == 1)
    {
	$whatfailed = "";
	&error(&text('map_delete_failed', $text{'map_delete_create'}));
    }
    my $all_maps = &read_file_lines($map{'map_file'});
    splice(@{$all_maps}, $map{'line'}, 1);
    &flush_file_lines();
}
elsif ($add == 0)
{
    # modify an existing map
    my $all_maps = &read_file_lines($map{'map_file'});
    $all_maps->[$map{'line'}] = "$in{'name'} $in{'value'}\n";
    &flush_file_lines();
}
else
{
    # add a new map -- much more easy! :-)
    open(MAPS, ">>$maps_files[0]") or &error($text{'maps_cant_write'});
    if ((print MAPS "$in{'name'} $in{'value'}\n") == 0) { &error($text{'maps_cant_write'}); }
    close(MAPS);
}
    


# re-creates aliases database

if ($in{'map_name'} =~ /canonical/) { &regenerate_canonical_table(); }
if ($in{'map_name'} =~ /relocated/) { &regenerate_relocated_table(); }
if ($in{'map_name'} =~ /virtual/) { &regenerate_virtual_table(); }

&reload_postfix();

&redirect("");




   07070100031055000081e40000000000000002000000013ac038b700000313000000200000000000000000000000000000001c00000003reloc/postfix/save_opts.cgi   #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
#
# Save Postfix options


require './postfix-lib.pl';

&ReadParse();

$access{'general'} || &error($text{'opts_ecannot'});

#      &header($text{'opts_title'}, "");


&error_setup($text{'opts_err'});


&save_options(\%in);


&reload_postfix();

&redirect("");



 07070100031056000081e40000000000000002000000013ac038b700000313000000200000000000000000000000000000002400000003reloc/postfix/save_opts_aliases.cgi   #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
#
# Save Postfix options ; special because for aliases


require './postfix-lib.pl';

&ReadParse();

#      &header($text{'opts_title'}, "");


&error_setup($text{'opts_err'});


&save_options(\%in);


&regenerate_aliases();

&reload_postfix();

&redirect("");



 07070100031057000081e40000000000000002000000013ac038b700000361000000200000000000000000000000000000002600000003reloc/postfix/save_opts_canonical.cgi #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
#
# Save Postfix options ; special because for canonical tables


require './postfix-lib.pl';

&ReadParse();

$access{'canonical'} || &error($text{'canonical_ecannot'});

#      &header($text{'opts_title'}, "");


&error_setup($text{'opts_err'});


&save_options(\%in);


&regenerate_canonical_table();

&reload_postfix();

&redirect("");



   07070100031058000081e40000000000000002000000013ac038b700000340000000200000000000000000000000000000002100000003reloc/postfix/save_opts_misc.cgi  #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
#
# Save Postfix options ; special case in which we need to regenerate the relocated table


require './postfix-lib.pl';

&ReadParse();


#      &header($text{'opts_title'}, "");


&error_setup($text{'opts_err'});


&save_options(\%in);


&regenerate_relocated_table();

&reload_postfix();

&redirect("");



07070100031059000081e40000000000000002000000013ac038b700000361000000200000000000000000000000000000002600000003reloc/postfix/save_opts_relocated.cgi #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
#
# Save Postfix options ; special because for relocated tables


require './postfix-lib.pl';

&ReadParse();


$access{'relocated'} || &error($text{'relocated_ecannot'});
#      &header($text{'opts_title'}, "");


&error_setup($text{'opts_err'});


&save_options(\%in);


&regenerate_relocated_table();

&reload_postfix();

&redirect("");



   0707010003105a000081e40000000000000002000000013ac038b700000361000000200000000000000000000000000000002600000003reloc/postfix/save_opts_transport.cgi #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
#
# Save Postfix options ; special because for transport tables


require './postfix-lib.pl';

&ReadParse();


$access{'transport'} || &error($text{'transport_ecannot'});
#      &header($text{'opts_title'}, "");


&error_setup($text{'opts_err'});


&save_options(\%in);


&regenerate_transport_table();

&reload_postfix();

&redirect("");



   0707010003105b000081e40000000000000002000000013ac038b700000359000000200000000000000000000000000000002400000003reloc/postfix/save_opts_virtual.cgi   #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
#
# Save Postfix options ; special because for virtual tables


require './postfix-lib.pl';

&ReadParse();


$access{'virtual'} || &error($text{'virtual_ecannot'});
#      &header($text{'opts_title'}, "");


&error_setup($text{'opts_err'});


&save_options(\%in);


&regenerate_virtual_table();

&reload_postfix();

&redirect("");



   0707010003105c000081e40000000000000002000000013ac038b700000933000000200000000000000000000000000000001700000003reloc/postfix/smtp.cgi    #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
#
# A form for SMTP client parameters.
#
# << Here are all options seen in Postfix sample-smtp.cf >>

require './postfix-lib.pl';


$access{'smtp'} || &error($text{'smtp_ecannot'});
&header($text{'smtp_title'}, "");
print "<hr>\n";

$default = $text{'opts_default'};
$none = $text{'opts_none'};
$no_ = $text{'opts_no'};

print "<form action=save_opts.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'smtpd_title'}</b></td></tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
&option_radios_freefield("best_mx_transport", 25, $text{'opts_best_mx_transport_default'});
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("fallback_relay", 60, $default);
print "</tr>\n";

print "<tr>\n";
&option_yesno("ignore_mx_lookup_error", 'help');
&option_yesno("smtp_skip_4xx_greeting", 'help');
print "</tr>\n";

print "<tr>\n";
&option_yesno("smtp_skip_quit_response", 'help');
print "</tr>\n";


print "<tr>\n";
&option_radios_freefield("smtp_destination_concurrency_limit", 15, $default);
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("smtp_destination_recipient_limit", 15, $default);
print "</tr>\n";

print "<tr>\n";
&option_freefield("smtp_connect_timeout", 15);
&option_freefield("smtp_helo_timeout", 15);
print "</tr>\n";

print "<tr>\n";
&option_freefield("smtp_mail_timeout", 15);
&option_freefield("smtp_rcpt_timeout", 15);
print "</tr>\n";

print "<tr>\n";
&option_freefield("smtp_data_init_timeout", 15);
&option_freefield("smtp_data_xfer_timeout", 15);
print "</tr>\n";

print "<tr>\n";
&option_freefield("smtp_data_done_timeout", 15);
&option_freefield("smtp_quit_timeout", 15);
print "</tr>\n";



print "</table></td></tr></table><p>\n";
print "<input type=submit value=\"$text{'opts_save'}\"></form>\n";
print "<hr>\n";
&footer("", $text{'index_return'});




 0707010003105d000081e40000000000000002000000013ac038b700000c30000000200000000000000000000000000000001800000003reloc/postfix/smtpd.cgi   #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
#
# A form for SMTP server parameters.
#
# << Here are all options seen in Postfix sample-smtpd.cf >>

require './postfix-lib.pl';


$access{'smtpd'} || &error($text{'smtpd_ecannot'});
&header($text{'smtpd_title'}, "");
print "<hr>\n";

$default = $text{'opts_default'};
$none = $text{'opts_none'};
$no_ = $text{'opts_no'};

print "<form action=save_opts.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'smtpd_title'}</b></td></tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
&option_radios_freefield("smtpd_banner", 85, $default);
print "</tr>\n";


print "<tr>\n";
&option_freefield("smtpd_recipient_limit", 15);
&option_yesno("disable_vrfy_command", 'help');
print "</tr>\n";

print "<tr>\n";
&option_freefield("smtpd_timeout", 15);
&option_freefield("smtpd_error_sleep_time", 15);
print "</tr>\n";

print "<tr>\n";
&option_freefield("smtpd_soft_error_limit", 15);
&option_freefield("smtpd_hard_error_limit", 15);
print "</tr>\n";

print "<tr>\n";
&option_yesno("smtpd_helo_required", 'help');
&option_yesno("allow_untrusted_routing", 'help');
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("smtpd_etrn_restrictions", 65, $default);
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("smtpd_client_restrictions", 65, $default);
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("smtpd_helo_restrictions", 65, $default);
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("smtpd_sender_restrictions", 65, $default);
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("smtpd_recipient_restrictions", 65, $default);
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("maps_rbl_domains", 65, $default);
print "</tr>\n";

print "<tr>\n";
&option_radios_freefield("relay_domains", 65, $default);
print "</tr>\n";

print "<tr>\n";
&option_freefield("access_map_reject_code", 15, $default);
&option_freefield("invalid_hostname_reject_code", 15, $default);
print "</tr>\n";

print "<tr>\n";
&option_freefield("maps_rbl_reject_code", 15, $default);
&option_freefield("reject_code", 15, $default);
print "</tr>\n";

print "<tr>\n";
&option_freefield("relay_domains_reject_code", 15, $default);
&option_freefield("unknown_address_reject_code", 15, $default);
print "</tr>\n";

print "<tr>\n";
&option_freefield("unknown_client_reject_code", 15, $default);
&option_freefield("unknown_hostname_reject_code", 15, $default);
print "</tr>\n";




print "</table></td></tr></table><p>\n";
print "<input type=submit value=\"$text{'opts_save'}\"></form>\n";
print "<hr>\n";
&footer("", $text{'index_return'});




0707010003105e000081e40000000000000002000000013ac038b700000328000000200000000000000000000000000000001800000003reloc/postfix/start.cgi   #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
#
# Start postfix

require './postfix-lib.pl';

$access{'startstop'} || &error("You are not allowed to start Postfix");
$whatfailed = "Failed to start Postfix";
$out = `$config{'postfix_control_command'} -c $config_dir start 2>&1`;
if ($?) { &error("<tt>$out</tt>"); }
&redirect("");

0707010003105f000081e40000000000000002000000013ac038b700000312000000200000000000000000000000000000001700000003reloc/postfix/stop.cgi    #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
# 
# Stop postfix

require './postfix-lib.pl';

$access{'startstop'} || &error($text{'stop_ecannot'});
$whatfailed = $text{'stop_efailed'};
$out = `$config{'postfix_control_command'} -c $config_dir stop 2>&1`;
if ($?) { &error("<tt>$out</tt>"); }
&redirect("");

  07070100031060000081e40000000000000002000000013ac038b700000631000000200000000000000000000000000000001c00000003reloc/postfix/transport.cgi   #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
# 
# Manages transport for Postfix
#
# << Here are all options seen in Postfix sample-transport.cf >>


require './postfix-lib.pl';

$access{'transport'} || &error($text{'transport_ecannot'});
&header($text{'transport_title'}, "", "transport");

print "<hr>\n";


# alias general options

print "<form action=save_opts_transport.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'transport_title'}</b></td></tr>\n";
print "<tr $cb> <td><table width=100%>\n";

$none = $text{'opts_none'};

print "<tr>\n";
&option_radios_freefield("transport_maps", 60, $none);
print "</tr>\n";

print "</table></td></tr></table><p>\n";
print "<input type=submit value=\"$text{'opts_save'}\"></form>\n";
print "<hr>\n";
print "<br>\n";


if (&get_current_value("transport_maps") eq "")
{
    print ($text{'no_map'}."<br><br>");
}
else
{
    &generate_map_edit("transport_maps", $text{'map_click'}." ".
		       "<font size=\"-1\">".&hlink("$text{'help_map_format'}", "transport")."</font>\n<br>\n");
}

print "<hr>\n";
&footer("", $text{'index_return'});
   07070100031061000081e40000000000000002000000013ac038b70000061a000000200000000000000000000000000000001a00000003reloc/postfix/virtual.cgi #!/usr/local/bin/perl
#
# postfix-module by Guillaume Cottenceau <gc@mandrakesoft.com>,
# for webmin by Jamie Cameron
#
# Copyright (c) 2000 by Mandrakesoft
#
# Permission to use, copy, modify, and distribute this software and its
# documentation under the terms of the GNU General Public License is hereby 
# granted. No representations are made about the suitability of this software 
# for any purpose. It is provided "as is" without express or implied warranty.
# See the GNU General Public License for more details.
#
# 
# Manages virtuals for Postfix
#
# << Here are all options seen in Postfix sample-virtual.cf >>


require './postfix-lib.pl';

$access{'virtual'} || &error($text{'virtual_ecannot'});
&header($text{'virtual_title'}, "", "virtual");

print "<hr>\n";


# alias general options

print "<form action=save_opts_virtual.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'virtual_title'}</b></td></tr>\n";
print "<tr $cb> <td><table width=100%>\n";

$none = $text{'opts_none'};

print "<tr>\n";
&option_radios_freefield("virtual_maps", 60, $none);
print "</tr>\n";

print "</table></td></tr></table><p>\n";
print "<input type=submit value=\"$text{'opts_save'}\"></form>\n";
print "<hr>\n";
print "<br>\n";


if (&get_current_value("virtual_maps") eq "")
{
    print ($text{'no_map'}."<br><br>");
}
else
{
    &generate_map_edit("virtual_maps", $text{'map_click'}." ".
		       "<font size=\"-1\">".&hlink("$text{'help_map_format'}", "virtual")."</font>\n<br>\n");
}

print "<hr>\n";
&footer("", $text{'index_return'});
  070701000356c0000041ed0000000000000001000000053ac03c4400000000000000200000000000000000000000000000001100000003reloc/postgresql  070701000356c1000081a40000000000000002000000013ac038b8000008aa000000200000000000000000000000000000002100000003reloc/postgresql/acl_security.pl  
require './postgresql-lib.pl';

# acl_security_form(&options)
# Output HTML for editing security options for the postgresql module
sub acl_security_form
{
print "<tr> <td valign=top rowspan=4><b>$text{'acl_dbs'}</b></td>\n";
print "<td rowspan=4 valign=top>\n";
printf "<input type=radio name=dbs_def value=1 %s> %s\n",
	$_[0]->{'dbs'} eq '*' ? 'checked' : '', $text{'acl_dall'};
printf "<input type=radio name=dbs_def value=0 %s> %s<br>\n",
	$_[0]->{'dbs'} eq '*' ? '' : 'checked', $text{'acl_dsel'};
print "<select name=dbs size=5 multiple width=100>\n";
map { $dcan{$_}++ } split(/\s+/, $_[0]->{'dbs'});
foreach $d (&list_databases()) {
	printf "<option %s>%s\n",
		$dcan{$d} ? 'selected' : '', $d;
	}
print "</select></td>\n";

print "<td><b>$text{'acl_create'}</b></td> <td>\n";
printf "<input type=radio name=create value=1 %s> %s\n",
	$_[0]->{'create'} ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=create value=0 %s> %s</td> </tr>\n",
	$_[0]->{'create'} ? '' : 'checked', $text{'no'};

print "<tr> <td><b>$text{'acl_delete'}</b></td> <td>\n";
printf "<input type=radio name=delete value=1 %s> %s\n",
	$_[0]->{'delete'} ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=delete value=0 %s> %s</td> </tr>\n",
	$_[0]->{'delete'} ? '' : 'checked', $text{'no'};

print "<tr> <td><b>$text{'acl_stop'}</b></td> <td>\n";
printf "<input type=radio name=stop value=1 %s> %s\n",
	$_[0]->{'stop'} ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=stop value=0 %s> %s</td> </tr>\n",
	$_[0]->{'stop'} ? '' : 'checked', $text{'no'};

print "<tr> <td><b>$text{'acl_users'}</b></td> <td>\n";
printf "<input type=radio name=users value=1 %s> %s\n",
	$_[0]->{'users'} ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=users value=0 %s> %s</td> </tr>\n",
	$_[0]->{'users'} ? '' : 'checked', $text{'no'};
}

# acl_security_save(&options)
# Parse the form for security options for the postgresql module
sub acl_security_save
{
if ($in{'dbs_def'}) {
	$_[0]->{'dbs'} = '*';
	}
else {
	$_[0]->{'dbs'} = join(" ", split(/\0/, $in{'dbs'}));
	}
$_[0]->{'create'} = $in{'create'};
$_[0]->{'delete'} = $in{'delete'};
$_[0]->{'stop'} = $in{'stop'};
$_[0]->{'users'} = $in{'users'};
}

  070701000356c2000081a40000000000000002000000013ac038b800000123000000200000000000000000000000000000001800000003reloc/postgresql/config   basedb=template1
pass=
hba_conf=/usr/local/pgsql/var/pg_hba.conf
pid_file=/usr/local/pgsql/var/postmaster.pid
stop_cmd=
start_cmd=su postgres -c "/usr/local/pgsql/bin/postmaster -i -S -D/usr/local/pgsql/var"
perpage=25
psql=/usr/local/pgsql/bin/psql
login=postgres
plib=/usr/local/pgsql/lib
 070701000356c3000081a40000000000000002000000013ac038b8000000ef000000200000000000000000000000000000002500000003reloc/postgresql/config-cobalt-linux  hba_conf=/home/pgsql/pg_hba.conf
psql=/usr/bin/psql
start_cmd=/etc/rc.d/init.d/postgresql start
basedb=template1
perpage=25
plib=
pass=cfc4b0056f0833c6
login=admin
stop_cmd=/etc/rc.d/init.d/postgresql stop
pid_file=/var/run/postmaster.pid
 070701000356c4000081a40000000000000002000000013ac038b8000000dc000000200000000000000000000000000000002500000003reloc/postgresql/config-debian-linux  hba_conf=/etc/postgresql/pg_hba.conf
psql=/usr/bin/psql
start_cmd=/etc/init.d/postgresql start
basedb=template1
perpage=25
plib=
pass=
login=postgres
stop_cmd=/etc/init.d/postgresql stop
pid_file=/var/run/postmaster.pid
070701000356c5000081a40000000000000002000000013ac038b7000000d9000000200000000000000000000000000000002500000003reloc/postgresql/config-redhat-linux  login=postgres
psql=/usr/bin/psql
basedb=template1
start_cmd=/etc/rc.d/init.d/postgresql start
stop_cmd=/etc/rc.d/init.d/postgresql stop
pid_file=/var/run/postmaster.pid
perpage=25
hba_conf=/var/lib/pgsql/pg_hba.conf
   070701000356c6000081a40000000000000002000000013ac038b8000000de000000200000000000000000000000000000002900000003reloc/postgresql/config-redhat-linux-7.0  login=postgres
psql=/usr/bin/psql
basedb=template1
start_cmd=/etc/rc.d/init.d/postgresql start
stop_cmd=/etc/rc.d/init.d/postgresql stop
pid_file=/var/run/postmaster.pid
perpage=25
hba_conf=/var/lib/pgsql/data/pg_hba.conf
  070701000356c7000081a40000000000000002000000013ac038b8000000de000000200000000000000000000000000000002900000003reloc/postgresql/config-redhat-linux-7.1  login=postgres
psql=/usr/bin/psql
basedb=template1
start_cmd=/etc/rc.d/init.d/postgresql start
stop_cmd=/etc/rc.d/init.d/postgresql stop
pid_file=/var/run/postmaster.pid
perpage=25
hba_conf=/var/lib/pgsql/data/pg_hba.conf
  070701000356c8000081a40000000000000002000000013ac038b8000000e8000000200000000000000000000000000000002300000003reloc/postgresql/config-suse-linux    hba_conf=/var/lib/pgsql/data/pg_hba.conf
psql=/usr/lib/pgsql/bin/psql
start_cmd=/sbin/init.d/postgres start
basedb=template1
perpage=25
plib=
pass=
login=postgres
stop_cmd=/sbin/init.d/postgres stop
pid_file=/var/run/postmaster.pid
070701000356c9000081a40000000000000002000000013ac038b8000000de000000200000000000000000000000000000002700000003reloc/postgresql/config-suse-linux-7.0    hba_conf=/var/lib/pgsql/data/pg_hba.conf
psql=/usr/bin/psql
start_cmd=/sbin/init.d/postgres start
basedb=template1
perpage=25
plib=
pass=
login=postgres
stop_cmd=/sbin/init.d/postgres stop
pid_file=/var/run/postmaster.pid
  070701000356ca000081a40000000000000002000000013ac038b8000000e0000000200000000000000000000000000000002700000003reloc/postgresql/config-suse-linux-7.1    hba_conf=/var/lib/pgsql/data/pg_hba.conf
psql=/usr/bin/psql
start_cmd=/etc/init.d/postgresql start
basedb=template1
perpage=25
plib=
pass=
login=postgres
stop_cmd=/etc/init.d/postgresql stop
pid_file=/var/run/postmaster.pid
070701000356cb000081a40000000000000002000000013ac038b7000001bc000000200000000000000000000000000000001d00000003reloc/postgresql/config.info  login=Administration login,0
pass=Administration password,0
psql=Path to psql command,0
plib=Path to PostgreSQL shared libraries,3,Not needed
basedb=Initial PostgreSQL database,0
start_cmd=Command to start PostgreSQL,0
stop_cmd=Command to stop PostgreSQL,3,Kill process
pid_file=Path to postmaster PID file,0
hba_conf=Path to host access config file,0
perpage=Number of rows to display per page,0
host=PostgreSQL host to connect to,3,Localhost
070701000356cc000081a40000000000000002000000013ac038b800000203000000200000000000000000000000000000002000000003reloc/postgresql/config.info.es   login=Login de administraci髇,0
pass=Clave de acceso de administraci髇,0
psql=Trayectoria a comando psql,0
plib=Trayectoria a bibliotecas compartidas de PostgreSQL,3,No son necesarias
basedb=Base de datos inicial de PostgreSQL,0
start_cmd=Comando para arrancar PostgreSQL,0
stop_cmd=Comando para parar PostgreSQL,3,Matar proceso
pid_file=Trayectoria a archivo PID del jefe de estafeta de correos,0
hba_conf=Trayectoria archivo de configuraci髇 de acceso de m醧uinas,0
perpage=N鷐ero de filas a mostrar por p醙ina,0
 070701000356cd000081a40000000000000002000000013ac038b800000231000000200000000000000000000000000000002000000003reloc/postgresql/config.info.pl   login=Login administracyjny,0
pass=Has硂 administracyjne,0
psql=ie縦a do polecenia <tt>psql</tt>,0
plib=ie縦a do bibliotek wsp蟪dzielonych PostgreSQLa,3,Nie wymagana
basedb=Pocz眛kowa baza danych PostgreSQLa,0
start_cmd=Polecenie uruchamiaj眂e PostgreSQLa,0
stop_cmd=Polecenie zatrzymuj眂e PostgreSQLa,3,Zabicie procesu
pid_file=ie縦a z&nbsp;numerem PID procesu <tt>postmaster</tt>,0
hba_conf=ie縦a do pliku konfiguracyjnego dost阷u host體,0
perpage=Ilo舵 linii wy秝ietlanych na stronie,0
host=Host PostgreSQLa&#44; z&nbsp;kt髍ym si 潮czy,3,Localhost
   070701000356ce000081a40000000000000002000000013ac038b8000001f8000000200000000000000000000000000000002000000003reloc/postgresql/config.info.sv   login=Administrat鰎skonto,0
pass=Administrat鰎sl鰏enord,0
psql=S鰇v鋑 till psql-kommando,0
plib=S鰇v鋑 till delade bibliotek f鰎 PostgreSQL,3,Beh鰒s inte
basedb=PostgreSQL-databas att starta med,0
start_cmd=Kommando f鰎 att starta PostgreSQL,0
stop_cmd=Kommando f鰎 att stanna PostgreSQL,3,D鰀a processen
pid_file=S鰇v鋑 till postmaster-PID-fil,0
hba_conf=S鰇v鋑 till konfigurationsfil f鰎 datortillg錸g,0
perpage=Antal rader som ska visas per sida,0
host=PostgreSQL-dator att koppla upp mot,3,Localhost
070701000356cf000081a40000000000000002000000013ac038b80000012d000000200000000000000000000000000000002300000003reloc/postgresql/config.info.zh_CN    login=管理员登陆,0
pass=管理员口令,0
psql=命令的路径,0
plib=PostgreSQL 共享库路径,3,不需要
basedb=初始化 PostgreSQL 数据库,0
start_cmd=启动 PostgreSQL 的命令,0
stop_cmd=停止 PostgreSQL 的命令,3,关闭进程
pid_file=postmaster 进程标识文件的路径,0
hba_conf=主机访问配置文件路径,0
perpage=每页显示的行数,0
   070701000356d0000081e40000000000000002000000013ac038b70000043b000000200000000000000000000000000000002200000003reloc/postgresql/create_table.cgi #!/usr/local/bin/perl
# create_table.cgi
# Create a new table

require './postgresql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
&error_setup($text{'table_err'});
$in{'name'} =~ /^\S+$/ || &error($text{'table_ename'});
for($i=0; defined($in{"field_$i"}); $i++) {
	next if (!$in{"field_$i"});
	$in{"field_$i"} =~ /^\S+$/ ||
		&error(&text('table_efield', $in{"field_$i"}));
	$in{"type_$i"} || &error(&text('table_etype', $in{"field_$i"}));
	if ($in{"size_$i"}) {
		$f = sprintf "%s %s(%s)",
		     $in{"field_$i"}, $in{"type_$i"}, $in{"size_$i"};
		}
	else {
		$f = sprintf "%s %s", $in{"field_$i"}, $in{"type_$i"};
		}
	if ($in{"arr_$i"}) { $f .= "[]"; }
	if (!$in{"null_$i"}) { $f .= " not null"; }
	if ($in{"key_$i"}) { $f .= " primary key"; }
	if ($in{"uniq_$i"}) { $f .= " unique"; }
	push(@fields, $f);
	}
@fields || &error($text{'table_enone'});
$sql = "create table $in{'name'} (".join(",", @fields).")";
&execute_sql_logged($in{'db'}, $sql);
&webmin_log("create", "table", $in{'name'}, \%in);
&redirect("edit_dbase.cgi?db=$in{'db'}");


 070701000356d1000081a40000000000000002000000013ac038b700000027000000200000000000000000000000000000001c00000003reloc/postgresql/defaultacl   dbs=*
create=1
delete=1
stop=1
users=1
 070701000356d2000081e40000000000000002000000013ac038b70000045b000000200000000000000000000000000000002000000003reloc/postgresql/drop_dbase.cgi   #!/usr/local/bin/perl
# drop_dbase.cgi
# Drop an existing database

require './postgresql-lib.pl';
&ReadParse();
&error_setup($text{'ddrop_err'});
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
if ($in{'confirm'}) {
	# Drop the database
	&execute_sql_logged($config{'basedb'}, "drop database $in{'db'}");
	&webmin_log("delete", "db", $in{'db'});
	&redirect("");
	}
else {
	# Ask the user if he is sure..
	&header($text{'ddrop_title'}, "");
	print "<hr>\n";
	@tables = &list_tables($in{'db'});
	$rows = 0;
	foreach $t (@tables) {
		$d = &execute_sql($in{'db'}, "select count(*) from $t");
		$rows += $d->{'data'}->[0]->[0];
		}

	print "<center><b><p>",&text('ddrop_rusure', "<tt>$in{'db'}</tt>",
				     scalar(@tables), $rows),"\n";
	print $text{'ddrop_mysql'},"\n" if ($in{'db'} eq $master_db);
	print "</b><p>\n";
	print "<form action=drop_dbase.cgi>\n";
	print "<input type=hidden name=db value='$in{'db'}'>\n";
	print "<input type=submit name=confirm value='$text{'ddrop_ok'}'>\n";
	print "</form></center>\n";
	print "<hr>\n";
	&footer("edit_dbase.cgi?db=$in{'db'}", $text{'dbase_return'});
	}


 07070100036d43000041ed0000000000000001000000023ac03c4200000000000000200000000000000000000000000000001600000003reloc/postgresql/help 07070100036d4c000081a40000000000000002000000013ac038b700000254000000200000000000000000000000000000002b00000003reloc/postgresql/help/create_field.es.html    <header>A馻dir Campo</header>

En esta p醙ina puedes a馻dir un nuevo campo a la tabla. Los par醡etros
editables para el nuevo campo son:

<dl>
<dt><b>Nombre de campo</b>
<dd>El nombre de este campo en la tabla.<p>
<dt><b>Medida de tipo (para campos varchar y char)</b>
<dd>El m醲imo n鷐ero de caracteres permitidos para datos en este campo.<p>
<dt><b>緾ampo de arreglo?</b>
<dd>Si se pone esta opci髇 a S, el campo ser capaz de almacenar valores
    del mismo tipo.<p>
</dl>

Al terminar, haz click en el bot髇 <tt>Salvar</tt> para actualizar la
estructura de la tabla con el nuevo campo.
<hr>
07070100036d4f000081a40000000000000002000000013ac038b700000231000000200000000000000000000000000000002800000003reloc/postgresql/help/create_field.html   <header>Add Field</header>

On this page you can add a new field to the table. The editable parameters
for the new field are :

<dl>
<dt><b>Field name</b>
<dd>The name of this field in the table.<p>
<dt><b>Type width (for varchar and char fields)</b>
<dd>The maximum number of characters allowed for data in this field.<p>
<dt><b>Array field?</b>
<dd>If this option is set to Yes, the field will be able to store multiple
    values of the same type.<p>
</dl>

When done, click on the <tt>Save</tt> button to update the table structure
with the new field.
<hr>
   07070100036d52000081a40000000000000002000000013ac038b70000025d000000200000000000000000000000000000002b00000003reloc/postgresql/help/create_field.pl.html    <header>Dodaj pole</header>

Na tej stronie mo縠sz doda do tabeli nowe pole. Modyfikowalnymi parametrami
nowo tworzonych p髄 s&nbsp;:

<dl>
<dt><b>Nazwa pola</b>
<dd>Nazwa tego pola w&nbsp;tabeli.<p>
<dt><b>Szeroko舵 pola (dla p髄 typu varchar i&nbsp;char)</b>
<dd>Maksymalna dozwolona liczba znak體 dla danych tego w&nbsp;tym polu.<p>
<dt><b>Pole tablicowe?</b>
<dd>Je秎i opcj te ustawi si na Tak, pole b阣zie mog硂 przechowywa wiele
    warto禼i tego samego typu.<p>
</dl>

Gdy sko馽zysz, naci秐ij przycisk <tt>Zachowaj</tt>, aby poszerzy struktur
tabeli o&nbsp;nowe pole.
<hr>
   07070100036d58000081a40000000000000002000000013ac038b7000001e1000000200000000000000000000000000000002900000003reloc/postgresql/help/edit_dbase.es.html  <header>Editar Base de Datos</header>

En la parte superior de esta p醙ina hay filas de iconos, cada uno representando
una tabla en la base de datos. Para editar la estructura de la tabla, haz click
en uno de los iconos. <p>

Debajo hay botones para crear una nueva tabla en esta base de datos, ejecutar
SQL en las tablas de la base de datos y eliminar la base de datos y todas
sus tablas. El bot髇 final deber韆 de ser utilizado con cuidado, ya que o
es reversible!. <p>

<hr>

   07070100036d59000081a40000000000000002000000013ac038b7000001a7000000200000000000000000000000000000002600000003reloc/postgresql/help/edit_dbase.html <header>Edit Database</header>

At the top of this page are rows of icons, each representing one table in
the database. To edit the structure of a table, just click on one of the
icons. <p>

Below are buttons for creating a new table in this database, executing SQL
on the tables of the database and dropping the database and all tables in it.
The final button should be used with care, as it is not reversible! <p>

<hr>

 07070100036da3000081a40000000000000002000000013ac038b70000021b000000200000000000000000000000000000002900000003reloc/postgresql/help/edit_dbase.pl.html  <header>Zmie baz danych</header>

W&nbsp;g髍nej cz甓ci strony znajduj si rz阣y ikon, z&nbsp;kt髍ych ka縟y
reprezentuje jedn tabel w&nbsp;bazie danych. Aby zmieni struktur tabeli,
po prostu kliknij jedn z&nbsp;tych ikon. <p>

Poni縠j znajduj sie przyciski do tworzenia nowych tabel w&nbsp;bazie danych,
uruchamiania SQL dla tabel bazy oraz usuwania bazy danych wraz ze wszystkimi
tabelami w&nbsp;niej zawartymi. Z&nbsp;ostatniego przycisku nale縴 korzysta
ostro縩ie, gdy jego dzia砤nie jest nieodwracalne! <p>

<hr>
 07070100036da4000081a40000000000000002000000013ac038b700000163000000200000000000000000000000000000002900000003reloc/postgresql/help/edit_field.es.html  <header>Modificar Campo</header>

En esta p醙ina puedes editar un campo ya existente de tabla. Al editarlo,
s髄o el nombre del campo puede ser cambiado, no su tipo de dato o cualquier
otra opci髇. Al terminar, haz click en el bot髇 <tt>Salvar</tt> para
actualizar la estructura de la tabla o en <tt>Borrar</tt> para quitar el
campo de la tabla. <p>
<hr>

 07070100036da5000081a40000000000000002000000013ac038b700000144000000200000000000000000000000000000002600000003reloc/postgresql/help/edit_field.html <header>Modify Field</header>

On this page you can edit an existing table field. When editing, only the
name of the field can be changed, not it's data type or any other options.
When done, click on the <tt>Save</tt> button to update the table structure,
or on <tt>Delete</tt> to remove the field from the table. <p>
<hr>

07070100036da6000081a40000000000000002000000013ac038b70000014e000000200000000000000000000000000000002900000003reloc/postgresql/help/edit_field.pl.html  <header>Zmie pole</header>

Na tej stronie mo縠sz zmieni istniej眂e pole tabeli. Zmieni mo縩a jedynie
nazw pola, nie mo縩a zmienia typu przechowywanych danych ani innych opcji.
Gdy sko馽zysz, naci秐ij przycisk <tt>Zachowaj</tt>, aby uaktualni struktur
tabeli lub <tt>Usu</tt>, aby usun辨 pole z&nbsp;tabeli. <p>
<hr>

  07070100036da7000081a40000000000000002000000013ac038b70000026b000000200000000000000000000000000000002900000003reloc/postgresql/help/edit_table.es.html  <header>Editar Tabla</header>

La tabla que ocupa la mayor parte de esta p醙ina muestra la estructura de la
tabla seleccionada en tu base de datos. Cada fila detalla un campo de la tabla
con el nombre, tipo de dato y otras opciones. <p>

En la parte inferior izquierda hay un bot髇 para a馻dir un nuevo campo a la
tabla. Antes de hacer click en 閘, debes de seleccionar el tipo de campo a
a馻dir - mira la documentaci髇 de PostgreSQL para m醩 informaci髇 sobre los
tipos de campo. Tambi閚 en la parte inferior hay botones para ver todos los
datos de la tabla y para eliminar toda la tabla y todos sus datos. <p>

<hr>

 07070100036da8000081a40000000000000002000000013ac038b70000022a000000200000000000000000000000000000002600000003reloc/postgresql/help/edit_table.html <header>Edit Table</header>

The table that takes up most of this page shows the structure of the selected
table in your database. Each row details one field in the table, with the
name, data type and other options shown. <p>

At the bottom-left is a button for adding a new field to the table. Before
clicking it, you must select the type of field to add - see the PostgreSQL
documentation for more information on field types. Also at the bottom are
buttons for viewing all data in the table and dropping the entire table and
all data in it. <p>

<hr>

  07070100036da9000081a40000000000000002000000013ac038b70000026e000000200000000000000000000000000000002900000003reloc/postgresql/help/edit_table.pl.html  <header>Zmie tabel</header>

Tabelka, kt髍a zajmuje wi阫sz cz甓 tej strony pokazuje struktur wybranej
tabeli w&nbsp;bazie danych. Ka縟y wiersz opisuje jedno pole tabeli: pokazano
naz酬 pola, typ danych i&nbsp;inne informacje. <p>

U&nbsp;g髍y, po lewej znajduje si przycisk dodaj眂y nowe pole do tabeli.
Zanim go naci秐iesz, musisz wybra typ dodawanego pola - dodatkowych
informacji o&nbsp;typach p髄 szukaj w&nbsp;dokumantacji PostgreSQLa. R體nie
u&nbsp;g髍y znajduj si przyciski do przegl眃ania danych w&nbsp;tabeli oraz
usuwania ca砮j tabeli wraz z&nbsp;zawartymi w&nbsp;niej danymi. <p>

<hr>

  07070100036daa000081a40000000000000002000000013ac038b70000010c000000200000000000000000000000000000002800000003reloc/postgresql/help/exec_form.es.html   <header>Ejecutar SQL</header>

Esta p醙ina es para digitar una sentencia SQL arbitraria y que sea ejecutada
en la base de datos seleccionada. Se pueden usar comandos Seleccionar (Select),
Insertar (Insert), Actualizar (Update) y comandos de administraci髇. <p>

<hr>

07070100036dab000081a40000000000000002000000013ac038b7000000cb000000200000000000000000000000000000002500000003reloc/postgresql/help/exec_form.html  <header>Execute SQL</header>

This page is for entering an arbitrary SQL statement to be executed on the
selected database. Select, insert, update and administration commands may
all be used. <p>

<hr>

 07070100036dac000081a40000000000000002000000013ac038b70000011a000000200000000000000000000000000000002800000003reloc/postgresql/help/exec_form.pl.html   <header>Execute SQL</header>

Ta strona s硊縴 do podania dowolnego polecenia SQL w&nbsp;celu jego
wykonania w&nbsp;wybranej bazie danych. Mo縩a u縴wa zar體no polece wyboru
(select), dodawania (insert), aktualizacji (update), jak te polece
administracyknych. <p>

<hr>

  07070100036dad000081a40000000000000002000000013ac038b70000034e000000200000000000000000000000000000002400000003reloc/postgresql/help/intro.es.html   <header>Servidor de Base de Datos PostgreSQL</header>

PostgreSQL es un servidor de base de datos simple para sistemas Unix. Soporta
m鷏tiples bases de datos, potentes controles de acceso, m鷏tiples tipos de
datos y la mayor韆 de la sint醲is est醤dar SQL. Cada base de datos gestionada
por el servidor puede contener n鷏tiples tablas y cada tabla puede contener
m鷏tiples filas de datos. <p>

La p醙ina principal muestra una lista de los iconos de bases de datos en la
parte superior, con un enlace para a馻dir una nueva base de datos bajo ellos.
Cada servidor PostgreSQL tendr al menos una base de datos de plantilla,
norm醠mente llamada <tt>template1</tt>. Bajo las bases de datos hay iconos
para configurar el control de acceso y los permisos y en la parte inferior
hay un bot髇 para parar y arrancar el servidor de base de datos. <p>

<hr>

  07070100036dae000081a40000000000000002000000013ac038b7000002c1000000200000000000000000000000000000002100000003reloc/postgresql/help/intro.html  <header>PostgreSQL Database Server</header>

PostgreSQL is a simple database server for Unix systems. It supports multiple
databases, powerful access controls, many data types and most of the standard
SQL syntax. Each database managed by the server can contain multiple tables,
and each table contains multiple rows of data. <p>

The main page dislays a list of database icons at the top, with a link
for adding a new database below them. Every PostgreSQL server will have at
least one template database, usually called <tt>template1</tt>. Below the
databases are icons for configuring access control and permissions, and at
the bottom is a button for stopping or starting the database server. <p>

<hr>

   07070100036daf000081a40000000000000002000000013ac038b70000035f000000200000000000000000000000000000002400000003reloc/postgresql/help/intro.pl.html   <header>Serwer baz danych PostgreSQL</header>

PostgreSQL jest prostym serwerem baz danych dla system體 uniksowych.
Obs硊guje on wiele baz danych, wiele typ體 danych, wi阫szo舵 standardowej
sk砤dni j陑yka SQL i&nbsp;posiada pot昕n kontrol dost阷u. Ka縟a
z&nbsp;zarz眃zanych przez serwer baz danych mo縠 zawiera wiele tabel,
a&nbsp;ka縟a tabela wiele wierszy danych. <p>

W&nbsp;g髍nej cz甓ci strony g硂wnej znajduje si lista ikon odpowiadaj眂ych
poszczeg髄nym bazom danych, a&nbsp;pod ni odsy砤cz do dodania nowej bazy.
Ka縟y serwer PostgreSQLa b阣zie posiada przynajmniej jedn wzorcow baz
danych, zazwyczaj o&nbsp;nazwie <tt>template1</tt>. Pod bazami danych
znajduj si ikony do konfiguracji kontroli dost阷u i&nbsp;uprawnie, za na
samym dole umieszczony jest przycisk zatrzymuj眂y b眃 uruchamiaj眂y serwer
baz danych. <p>

<hr>

 07070100036db0000081a40000000000000002000000013ac038b7000001c3000000200000000000000000000000000000002a00000003reloc/postgresql/help/list_grants.es.html <header>Privilegios Garantizados</header>

Esta p醙ina te permite ver y editar los permisos garantizados sobre las
tablas, vistas, secuencias e 韓dices a los usuarios y grupos. La tabla
muestra todos los objetos de todas las bases de datos en los que hay
garantizados privilegios (si hay). Para cambiar los privilegios, haz
click en el nombre del objeto y usa el formuario para seleccionar un
usuario o grupo y las capacidades que le dar醩. <p>
<hr>

 07070100036db1000081a40000000000000002000000013ac038b7000001cd000000200000000000000000000000000000002700000003reloc/postgresql/help/list_grants.html    <header>Granted Privileges</header>

This page allows you to view and edit the permissions granted on tables,
views, sequences and indexes to users and groups. The table shows all the
objects in all databases upon which privileges can be granted, and who
those privileges are currently granted to (if anyone). To change the
privileges, click on the name of the object and use the form to select
a user or group and the capabilities he will be given. <p>

<hr>

   07070100036db2000081a40000000000000002000000013ac038b7000001ec000000200000000000000000000000000000002a00000003reloc/postgresql/help/list_grants.pl.html <header>Nadane uprawnienia</header>

Za pomoc tej strony mo縠sz obejrze i&nbsp;zmieni nadane u縴tkownikom
i&nbsp;grupom uprawnienia do tabel, widok體, sekwencji i&nbsp;indeks體.
Tabelka pokazuje wszystkie obiekty bazy danych, do kt髍ych mo縩a nadawa
uprawnienia i&nbsp;komu te uprawnienia nadano (je秎i komukolwiek). Aby
zmieni uprawnienia kliknij nazw obiektu i&nbsp;wykorzystaj poni縮zy
formularz aby wybra u縴tkownika lub grup oraz uprawnienia, kt髍e otrzyma.
<p>

<hr>
07070100036dbb000081a40000000000000002000000013ac038b7000000f4000000200000000000000000000000000000002a00000003reloc/postgresql/help/list_groups.es.html <header>Grupos PostgreSQL</header>

Esta p醙ina te permite crear grupos de usuarios para su uso posterior al
garantizar permisos. Cada grupo tiene un nombre, una ID de grupo (norm醠mente
asignada por Webmin) y una lista de miembros. <p>

<hr>

07070100036dbc000081a40000000000000002000000013ac038b7000000dd000000200000000000000000000000000000002700000003reloc/postgresql/help/list_groups.html    <header>PostgreSQL Groups</header>

This page allows you to create groups of users for later use when granting
permissions. Each group has a name, a group ID (usually assigned by Webmin)
and a list of members. <p>

<hr>

   07070100036dbd000081a40000000000000002000000013ac038b700000112000000200000000000000000000000000000002a00000003reloc/postgresql/help/list_groups.pl.html <header>Grupy PostgreSQLa</header>

Za pomoc tej strony mo縠sz tworzy grupy u縴tkownik體 dla p蠹niejszego
wykorzystania podczas nadawania uprawnie. Ka縟a grupa posiada nazw,
identyfikator grupy (zazwyczaj nadawany przez Webmina) oraz list cz硂nk體.
<p>

<hr>

  07070100036dbe000081a40000000000000002000000013ac038b7000004f4000000200000000000000000000000000000002900000003reloc/postgresql/help/list_hosts.es.html  <header>M醧uinas Autorizadas</header>

En esta p醙ina puedes controlar qu m醧uinas est醤 autorizadas a acceder a
tu servidor de base de datos y qu clase de autenticaci髇 necesitar醤.
Cada regla de control de acceso se puede aplicar a una sola m醧uina, a
toda una red, a todas las m醧uinas de una red o s髄o a los usuarios que
se conecten desde esta m醧uina. Adem醩, cada regla se puede aplicar a una
base de datos seleccionada o a todas las bases de datos del servidor. <p>

Al seleccionar el modo de autenticaci髇 para las m醧uinas autorizadas,
est醤 disponibles las siguienes opciones:
<dl>
<dt><b>Clave de acceso de texto en claro</b>
<dd>El usuario debe de suministrar una clave de acceso que coincida con la
    puesta en la p醙ina de <tt>Usuarios de PostgreSQL</tt>. <p>
<dt><b>Clave de acceso encriptada</b>
<dd>El usuario debe de suministrar una clave de acceso cuya encriptaci髇
    coincida con la de <tt>Usuarios de PostgreSQL</tt>. <p>
<dt><b>No se requiere autenticaci髇</b>
<dd>No se necesita clave de acceso de ning鷑 tipo. <p>
<dt><b>Rechazar conexi髇</b>
<dd>No permitir conexiones desde esta m醧uina. Esto es 鷗il para denegar
    el acceso desde m醧uinas espec韋icas siempre que hayas garantizado
    el aceso a toda una red.
    <p>
</dl>

<hr>

07070100036dbf000081a40000000000000002000000013ac038b70000044f000000200000000000000000000000000000002600000003reloc/postgresql/help/list_hosts.html <header>Allowed Hosts</header>

On this page you can control which hosts are allowed to access your
database server and what kind of authentication they will need to provide.
Each access control rule can apply to a single host, to an entire network, to
all network hosts or only to users connecting from this machine. In addition,
each rule can apply to either a single selected database or to all databases
on the server. <p>

When choosing the authentication mode for allowed hosts, the following
options are available :
<dl>
<dt><b>Plaintext password</b>
<dd>The user must supply a password that matches the one set in the
    <tt>PostgreSQL Users</tt> page. <p>
<dt><b>Encrypted password</b>
<dd>The user must supply a password that when encrypted matches the one set
    in <tt>PostgreSQL Users</tt>. <p>
<dt><b>No authentication required</b>
<dd>No password needs to be supplied at all. <p>
<dt><b>Reject connection</b>
<dd>Don't allow connections from this host at all. This is useful for denying
    access from specific hosts if you have granted access to a whole network.
    <p>
</dl>

<hr>

 07070100036dc0000081a40000000000000002000000013ac038b7000004d5000000200000000000000000000000000000002900000003reloc/postgresql/help/list_hosts.pl.html  <header>Dozwolone hosty</header>

Na tej stronie mo縠sz okre秎i, z&nbsp;kt髍ych host體 b阣zie mo縧iwy dost阷
do Twojego serwera baz danych oraz jaki rodzaj autoryzacji musi by
zapewniony. Ka縟a z&nbsp;regu kontroli dost阷u mo縠 dotyczy pojedy馽zego
hosta, ca砮j sieci, wszystkich host體 w&nbsp;sieci lub wy潮cznie
u縴tkownik體 lokalnych. Dodatkowo, ka縟a z&nbsp;regu mo縠 dotyczy jednej
wybranej bazy danych lub wszystkich baz danych na serwerze. <p>

Przy wyborze trybu autoryzacji dla dozwolonych host體 dost阷ne s nast阷uj眂e
mo縧iwo禼i&nbsp;:
<dl>
<dt><b>Has硂 otwartym tekstem</b>
<dd>U縴tkownik musi poda has硂, kt髍e zgadza si z&nbsp;ustawionym na stronie
    <tt>U縴tkownicy PostgreSQLa</tt>. <p>
<dt><b>Encrypted password</b>
<dd>U縴tkownik musi poda has硂, kt髍e po zaszyfrowaniu zgadza si
    z&nbsp;ustawionym w&nbsp;<tt>U縴tkownicy PostgreSQLa</tt>. <p>
<dt><b>Autoryzacja nie wymagana</b>
<dd>Nie ma w&nbsp;og髄e potrzeby podawania has砤. <p>
<dt><b>Odrzu po潮czenie</b>
<dd>Nie pozwala w&nbsp;og髄e na po潮czenia z&nbsp;tego hosta. Jest to
    przydatne do zablokowania dost阷u z&nbsp;wybranych host體, podczas gdy
    zapewniony jest dost阷 z&nbsp;ca砮j sieci.
    <p>
</dl>

<hr>
   07070100036dc1000081a40000000000000002000000013ac038b700000155000000200000000000000000000000000000002900000003reloc/postgresql/help/list_users.es.html  <header>Usuarios de PostgreSQL</header>

Esta p醙ina te permite crear y editar los usuarios que tendr醤 acceso
a tus bases de datos PostgreSQL. Para cada usuario, puedes especificar
un nombre de usuario, clave de acceso opcional, fecha opcional de expiraci髇
y decidir si el usuario podr crear a otros usuarios o bases de datos. <p>

<hr>

   07070100036dc2000081a40000000000000002000000013ac038b700000138000000200000000000000000000000000000002600000003reloc/postgresql/help/list_users.html <header>PostgreSQL Users</header>

This page allows you to create and edit users who will have access to
your PostgreSQL databases. For each user you can specify a username, an
optional password, an optional expiry date, and choose whether the user
will be allowed to create other users or databases. <p>

<hr>

07070100036dc3000081a40000000000000002000000013ac038b70000016f000000200000000000000000000000000000002900000003reloc/postgresql/help/list_users.pl.html  <header>U縴tkownicy PostgreSQLa</header>

Za pomoc tej strony mo縠sz tworzy i zmienia u縴tkownik體, kt髍zy b阣
mieli dost阷 do baz danych PostgreSQLa. Ka縟emu u縴tkownikowi mo縠sz nada
jego nazw, opcjonalnie has硂, r體nie opcjonalnie dat wa縩o禼i oraz
okre秎i, czy ten u縴tkownik b阣zie m骻 tworzy innych u縴tkownik體 lub
bazy danych. <p>

<hr>

 07070100036dc4000081a40000000000000002000000013ac038b70000016a000000200000000000000000000000000000002900000003reloc/postgresql/help/newdb_form.es.html  <header>Crear Base de Datos</header>

Este formulario te permite crear una nueva base de datos PostgreSQL.
Debes de digitar el nombre de la base de datos y puedes tambi閚 digitar
un directorio en el cual se almacenen los archivos de la base de datos.
Al terminar, haz click en el bot髇 <tt>Crear</tt> para tener la base
de datos inmedi醫amente creada. <p>
<hr>

  07070100036dc5000081a40000000000000002000000013ac038b70000012d000000200000000000000000000000000000002600000003reloc/postgresql/help/newdb_form.html <header>Create Database</header>

This form allows you to create a new PostgreSQL database. You must enter
the name of the database, and can also enter a directory in which the
database files will be stored.
When done, click on the <tt>Create</tt> to have the database immediately
created.  <p>
<hr>

   07070100036dc6000081a40000000000000002000000013ac038b70000013b000000200000000000000000000000000000002900000003reloc/postgresql/help/newdb_form.pl.html  <header>Utw髍z baz danych</header>

Za pomoc tego formularza mo縠sz utworzy now baz danych PostgreSQLa.
Musisz poda nazw bazy danych, mo縠sz r體nie poda katalog, w&nbsp;kt髍ym
b阣 przechowywane jej pliki. Gdy sko馽zysz, naci秐ij <tt>Utw髍z</tt>, aby
natychmiast utworzy t baz danych. <p>
<hr>

 07070100036dc7000081a40000000000000002000000013ac038b70000022e000000200000000000000000000000000000002900000003reloc/postgresql/help/table_form.es.html  <header>Crear Tabla</header>

Este formulario se usa para crear una tabla nueva y vac韆. Debes de digitar
un nombre de tabla y uno o m醩 campos. Para cada campo, debes de digitar
un nombre, seleccionar un tipo de dato y digitar el tipo de ancho (siempre
que sea apropiado para el tipo de campo). Puedes tambi閚 decidir si el
campo es un arreglo multi-valor, si permite nulos, si es la clave primaria
del 韓dice y si los valores en 閘 deben de se 鷑icos.
Al terminar, haz click en el bot髇 <tt>Crear</tt> para tener la tabla
inmedi醫amente creada. <p>

<hr>

  07070100036dc8000081a40000000000000002000000013ac038b7000001f5000000200000000000000000000000000000002600000003reloc/postgresql/help/table_form.html <header>Create Table</header>

This form is for creating a new, empty table. You must enter a table
name and one or more fields. For each field, you must enter a name, select a
data type and enter the type width (if appropriate for the data type).
You can also choose if the field is an multi-value array, if it allows null,
if it is the primary key for indexing, and if the values it in must be unique.
When done, click on the <tt>Create</tt> button to have the table immediately
created. <p>

<hr>

   07070100036dc9000081a40000000000000002000000013ac038b700000226000000200000000000000000000000000000002900000003reloc/postgresql/help/table_form.pl.html  <header>Utw髍z tebel</header>

Ten formularz s硊縴 do tworzenia nowej, pustej tabeli. Musisz poda nazw
tabeli, i&nbsp;jedno lub wi阠ej p髄. Dla ka縟ego pola musisz poda jego
nazw, wybra typ danych oraz szeroko舵 pola (je秎i typ danych tego wymaga).
Mo縠sz r體nie okre秎i, czy pole ma by tablic o&nbsp;wielu warto禼iach,
czy dopuszcza brak warto禼i, czy stanowi podstawowy klucz indeksowy, oraz
czy warto舵 pola musi by unikalna. Gdy sko馽zysz, naco秐ij przycisk
<tt>Utw髍z</tt>, aby natychmiast utworzy t tablic. <p>

<hr>

  07070100036dcb000081a40000000000000002000000013ac038b7000002c4000000200000000000000000000000000000002600000003reloc/postgresql/help/view_table.html <header>Table Data</header>

This page allows you to view data in a table, to edit that data and to add
new records.
<dl>
<dt><b>Editing records</b>
<dd>Select the checkboxes to the left of the rows you want to edit and click
    the <tt>Edit selected rows</tt> button. Then enter the new values into the
    fields and click on <tt>Save</tt>. <p>
<dt><b>Deleting records</b>
<dd>Select the checkboxes to the left of the rows you want to delete and click
    the <tt>Delete selected rows</tt> button. <p>
<dt><b>Adding a record</b>
<dd>Click on the <tt>Add row</tt> button and enter the values for the new
    record into the fields at the bottom the table, then click on
    <tt>Save</tt>. <p>
</dl>

<hr>

07070100036dca000081a40000000000000002000000013ac038b700000324000000200000000000000000000000000000002900000003reloc/postgresql/help/view_table.es.html  <header>Datos de Tabla</header>

Esta p醙ina te permite ver los datos de una tabla, editarlos y a馻dir nuevos
registros.
<dl>
<dt><b>Editando registros</b>
<dd>Selecciona las casillas de verificaci髇 a la izquierda de las filas que quieres
    editar y haz click en el bot髇 <tt>Editar filas seleccionadas</tt>. Luego
    digita los nuevos valores en los campos y haz click en <tt>Salvar</tt>. <p>
<dt><b>Borrando registros</b>
<dd>Selecciona las casillas de verficaci髇 la izquierda de las filas que desees borrar
    y haz click en el bot髇 <tt>Borrar filas seleccionadas</tt>. <p>
<dt><b>A馻diendo un registro</b>
<dd>Hac click en el bot髇 <tt>A馻dir fila</tt>, digita los valores para el nuevo
    registro en los campos de la parte final de la tabla y haz click en <tt>Salvar</tt>. <p>
</dl>

<hr>

07070100036dcc000081a40000000000000002000000013ac038b70000031f000000200000000000000000000000000000002900000003reloc/postgresql/help/view_table.pl.html  <header>Dane w&nbsp;tabeli</header>

Za pomoc tej strony mo縠sz przegl眃a dane w&nbsp;tabeli, modyfikowa te
dane oraz dodawa nowe rekordy.
<dl>
<dt><b>Modyfikacje rekord體</b>
<dd>Zaznacz pola wyboru z&nbsp;lewej strony wierszy, kt髍e chcesz zmodyfikowa
    i&nbsp;naci秐ij przycisk <tt>Modyfikuj wybrane wiersze</tt>. Nast阷nie 
    podaj nowe warto禼i p髄 i naci秐ij  <tt>Zachowaj</tt>. <p>
<dt><b>Usuwanie rekord體</b>
<dd>Zaznacz pola wyboru z&nbsp;lewej strony wierszy, kt髍e chcesz usun辨
    i&nbsp;naci秐ij przycisk <tt>Skasuj wybrane wiersze</tt>. <p>
<dt><b>Dodawanie nowego rekordu</b>
<dd>Naci秐ij przycisk <tt>Dodaj wiersz</tt> i&nbsp;podaj warto禼i p髄 nowego
    rekordu w&nbsp;dolnej cz阺ci tabeli, a nast阷nie naci秐ij
    <tt>Zachowaj</tt>. <p>
</dl>

<hr>
 070701000356d3000081e40000000000000002000000013ac038b700000468000000200000000000000000000000000000002000000003reloc/postgresql/drop_table.cgi   #!/usr/local/bin/perl
# drop_table.cgi
# Delete an existing table

require './postgresql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
if ($in{'confirm'}) {
	# Drop the table
	&error_setup($text{'tdrop_err'});
	&execute_sql_logged($in{'db'}, "drop table $in{'table'}");
	&webmin_log("delete", "table", $in{'table'}, \%in);
	&redirect("edit_dbase.cgi?db=$in{'db'}");
	}
else {
	# Ask the user if he is sure..
	&header($text{'tdrop_title'}, "");
	print "<hr>\n";
	@tables = &list_tables($in{'db'});
	$d = &execute_sql($in{'db'}, "select count(*) from $in{'table'}");
	$rows = $d->{'data'}->[0]->[0];

	print "<center><b><p>", &text('tdrop_rusure', "<tt>$in{'table'}</tt>",
				      "<tt>$in{'db'}</tt>", $rows),"</b><p>\n";
	print "<form action=drop_table.cgi>\n";
	print "<input type=hidden name=db value='$in{'db'}'>\n";
	print "<input type=hidden name=table value='$in{'table'}'>\n";
	print "<input type=submit name=confirm value='$text{'tdrop_ok'}'>\n";
	print "</form></center>\n";
	print "<hr>\n";
	&footer("edit_table.cgi?db=$in{'db'}&table=$in{'table'}",
		$text{'table_return'});
	}

070701000356d4000081e40000000000000002000000013ac038b700000611000000200000000000000000000000000000002000000003reloc/postgresql/edit_dbase.cgi   #!/usr/local/bin/perl
# edit_dbase.cgi
# Show database tables

require './postgresql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
&header($text{'dbase_title'}, "", "edit_dbase");
print "<center><font size=+2><tt>$in{'db'}</tt></font></center>\n";
print "<hr>\n";

@titles = &list_tables($in{'db'});
if (@titles) {
	print "<h3>$text{'dbase_tables'}</h3>\n";
	@icons = map { "images/table.gif" } @titles;
	@links = map { "edit_table.cgi?db=$in{'db'}&table=$_" } @titles;
	&icons_table(\@links, \@titles, \@icons, 5);
	}
else {
	print "<b>$text{'dbase_none'}</b> <p>\n";
	}
print "<table width=100%> <tr>\n";
print "<form action=table_form.cgi>\n";
print "<input type=hidden name=db value='$in{'db'}'>\n";
print "<td width=33%><input type=submit value='$text{'dbase_add'}'>\n";
print $text{'dbase_fields'},"\n";
print "<select name=fields>\n";
foreach $f (4 .. 20) {
	print "<option>$f\n";
	}
print "</select></td>\n";
print "</form>\n";
if ($access{'delete'}) {
	print "<form action=drop_dbase.cgi>\n";
	print "<input type=hidden name=db value='$in{'db'}'>\n";
	print "<td align=middle width=33%><input type=submit ",
	      "value='$text{'dbase_drop'}'></td></form>\n";
	}
else {
	print "<td width=33%></td>\n";
	}
print "<form action=exec_form.cgi>\n";
print "<input type=hidden name=db value='$in{'db'}'>\n";
print "<td align=right width=33%><input type=submit ",
      "value='$text{'dbase_exec'}'></td>\n";
print "</form>\n";
print "</tr> </table></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

   070701000356d5000081e40000000000000002000000013ac038b700000a3a000000200000000000000000000000000000002000000003reloc/postgresql/edit_field.cgi   #!/usr/local/bin/perl
# edit_field.cgi
# Display a form for editing an existing field or creating a new one

require './postgresql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
if ($in{'type'}) {
	# Creating a new field
	&header($text{'field_title1'}, "", "create_field");
	$type = $in{'type'};
	}
else {
	# Editing an existing field
	&header($text{'field_title2'}, "", "edit_field");
	@desc = &table_structure($in{'db'}, $in{'table'});
	$f = $desc[$in{'idx'}];
	$type = $f->{'type'};
	}
print "<center><font size=+2>",&text('field_in', "<tt>$in{'table'}</tt>",
				     "<tt>$in{'db'}</tt>"),"</font></center>\n";
print "<hr>\n";

print "<form action=save_field.cgi>\n";
print "<input type=hidden name=db value='$in{'db'}'>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<input type=hidden name=new value='$in{'type'}'>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'field_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'field_name'}</b></td>\n";
print "<td><input name=field size=20 value='$f->{'field'}'></td> </tr>\n";
print "<input type=hidden name=old value='$f->{'field'}'>\n" if (!$in{'type'});

if ($type =~ /^(\S+)\((.*)\)/) {
	$type = $1;
	$size = $2;
	}
print "<input type=hidden name=type value='$type'>\n";
print "<tr> <td><b>$text{'field_type'}</b></td>\n";
print "<td>$type</td> </tr>\n";

if ($type eq 'char' || $type eq 'varchar' || $type eq 'numeric') {
	if ($in{'type'}) {
		# Type has a size
		print "<tr> <td><b>$text{'field_size'}</b></td>\n";
		print "<td><input name=size size=10 value='$size'></td></tr>\n";
		}
	else {
		# Type cannot be edited
		print "<tr> <td><b>$text{'field_size'}</b></td>\n";
		print "<td>$size</td> </tr>\n";
		}
	}

print "<tr> <td><b>$text{'field_arr'}</b></td> <td>\n";
if ($in{'type'}) {
	# Ask if this is an array
	print "<input name=arr type=radio value=1> $text{'yes'}\n";
	print "<input name=arr type=radio value=0 checked> $text{'no'}\n";
	}
else {
	# Display if array or not
	print $f->{'arr'} eq 'YES' ? $text{'yes'} : $text{'no'};
	}
print "</td> </tr>\n";

if (!$in{'type'}) {
	# Display nulls
	print "<tr> <td><b>$text{'field_null'}</b></td>\n";
	print "<td>",$f->{'null'} eq 'YES' ? $text{'yes'}
					   : $text{'no'},"</td> </tr>\n";
	}

print "</table></td></tr></table>\n";
if ($in{'type'}) {
	print "<input type=submit value='$text{'create'}'>\n";
	}
else {
	print "<input type=submit value='$text{'save'}'>\n";
	}
print "</form>\n";

print "<hr>\n";
&footer("edit_table.cgi?db=$in{'db'}&table=$in{'table'}",$text{'table_return'});

  070701000356d6000081e40000000000000002000000013ac038b800000a51000000200000000000000000000000000000002000000003reloc/postgresql/edit_grant.cgi   #!/usr/local/bin/perl
# edit_grant.cgi
# Display a form for editing or creating a grant

require './postgresql-lib.pl';
&ReadParse();
$access{'users'} || &error($text{'grant_ecannot'});
&header($text{'grant_edit'}, "");
$s = &execute_sql($in{'db'}, 'select relname, relacl from pg_class where (relkind = \'r\' OR relkind = \'S\') and relname !~ \'^pg_\' order by relname');
foreach $g (@{$s->{'data'}}) {
	if ($g->[0] eq $in{'table'}) {
		$g->[1] =~ s/^\{//; $g->[1] =~ s/\}$//;
		@grant = map { /^"(.*)=(.*)"$/; [ $1, $2 ] }
			     split(/,/, $g->[1]);
		}
	}
print "<hr>\n";

@tables = &list_tables($in{'db'});
print "<form action=save_grant.cgi>\n";
print "<input type=hidden name=db value='$in{'db'}'>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<input type=hidden name=type value='$in{'type'}'>\n";

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'grant_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'grant_db'}</b></td>\n";
print "<td><tt>$in{'db'}</tt></td> </tr>\n";

print "<tr> <td><b>",$text{"grant_$in{'type'}"},"</b></td>\n";
print "<td><tt>$in{'table'}</tt></td> </tr>\n";

$u = &execute_sql($config{'basedb'}, "select usename from pg_shadow");
@users = map { $_->[0] } @{$u->{'data'}};

$r = &execute_sql($config{'basedb'}, "select groname from pg_group");
@groups = map { $_->[0] } @{$r->{'data'}};

print "<tr> <td valign=top><b>$text{'grant_users'}</b></td>\n";
print "<td colspan=3><table border width=100%>\n";
print "<tr $tb> <td><b>$text{'grant_user'}</b></td> ",
      "<td><b>$text{'grant_what'}</b></td> </tr>\n";
$i = 0;
foreach $g (@grant, [ undef, undef ]) {
	print "<tr> <td><select name=user_$i>\n";
	print "<option selected>\n" if (!defined($g->[0]));
	printf "<option value=public %s>%s\n",
		defined($g->[0]) && $g->[0] eq '' ? 'selected' : '',
		$text{'grant_public'};
	foreach $r (@groups) {
		printf "<option value='%s' %s>%s\n",
			"group $r", $g->[0] eq "group $r" ? 'selected' : '',
			&text('grant_group', $r);
		}
	foreach $u (@users) {
		printf "<option %s>%s\n",
			$g->[0] eq $u ? 'selected' : '', $u;
		}
	print "</select></td> <td>\n";

	foreach $p ( [ 'SELECT', 'r' ], [ 'UPDATE', 'w' ],
		     [ 'INSERT', 'a' ], [ 'RULE', 'R' ] ) {
		printf "<input type=checkbox name=what_$i value=%s %s> %s\n",
			$p->[0], $g->[1] =~ /$p->[1]/ ? 'checked' : '', $p->[0];
		}
	print "</td> </tr>\n";
	$i++;
	}
print "</table></td></tr>\n";
print "</table></td></tr></table>\n";
print "<input type=submit value='$text{'save'}'></form>\n";

print "<hr>\n";
&footer("list_grants.cgi", $text{'grant_return'});

   070701000356d7000081e40000000000000002000000013ac038b8000007d5000000200000000000000000000000000000002000000003reloc/postgresql/edit_group.cgi   #!/usr/local/bin/perl
# edit_group.cgi
# Display a form for editing or creating a group

require './postgresql-lib.pl';
&ReadParse();
$access{'users'} || &error($text{'group_ecannot'});
if ($in{'new'}) {
	&header($text{'group_create'}, "");
	}
else {
	&header($text{'group_edit'}, "");
	$s = &execute_sql($config{'basedb'}, "select * from pg_group ".
					     "where grosysid = '$in{'gid'}'");
	@group = @{$s->{'data'}->[0]};
	}
print "<hr>\n";

print "<form action=save_group.cgi>\n";
print "<input type=hidden name=new value='$in{'new'}'>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'group_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'group_name'}</b></td>\n";
print "<td><input name=name size=20 value='$group[0]'></td>\n";

print "<td><b>$text{'group_id'}</b></td>\n";
if ($in{'new'}) {
	$s = &execute_sql($config{'basedb'},
			  "select max(grosysid) from pg_group");
	$gid = $s->{'data'}->[0]->[0] + 1;
	print "<td><input name=gid size=10 value='$gid'></td> </tr>\n";
	}
else {
	print "<td>$group[1]</td> </tr>\n";
	print "<input type=hidden name=gid value='$in{'gid'}'>\n";
	}

map { $mem{$_}++ } &split_array($group[2]) if (!$in{'new'});
print "<tr> <td valign=top><b>$text{'group_mems'}</b></td>\n";
print "<td colspan=3><select name=mems multiple size=5 width=200>\n";
$s = &execute_sql($config{'basedb'}, "select * from pg_shadow");
foreach $u (@{$s->{'data'}}) {
	printf "<option value=%s %s>%s\n",
		$u->[1], $mem{$u->[1]} ? 'selected' : '', $u->[0];
	}
print "</select></td> </tr>\n";

print "</table></td></tr></table>\n";
print "<table width=100%><tr>\n";
if ($in{'new'}) {
	print "<td><input type=submit value='$text{'create'}'></td>\n";
	}
else {
	print "<td><input type=submit value='$text{'save'}'></td>\n";
	print "<td align=right><input type=submit name=delete ",
	      "value='$text{'delete'}'></td>\n";
	}
print "</tr></table>\n";

print "<hr>\n";
&footer("list_groups.cgi", $text{'group_return'});

   070701000356d8000081e40000000000000002000000013ac038b800000dac000000200000000000000000000000000000001f00000003reloc/postgresql/edit_host.cgi    #!/usr/local/bin/perl
# edit_host.cgi
# Display a form for editing or creating an allowed host

require './postgresql-lib.pl';
&ReadParse();
if ($in{'new'}) {
	$type = $in{'new'};
	&header($text{"host_create"}, "");
	$host = { 'type' => $type, 'netmask' => '0.0.0.0',
		  'auth' => 'trust', 'db' => 'all' };
	}
else {
	@all = &get_hba_config();
	$host = $all[$in{'idx'}];
	$type = $host->{'type'};
	&header($text{"host_edit"}, "");
	}
print "<hr>\n";

print "<form action=save_host.cgi>\n";
print "<input type=hidden name=idx value='$in{'idx'}'>\n";
print "<input type=hidden name=new value='$in{'new'}'>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'user_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

$mode = $type eq 'local' ? 3 :
	$host->{'netmask'} eq '0.0.0.0' ? 0 :
	$host->{'netmask'} eq '255.255.255.255' ? 1 : 2;
print "<tr> <td valign=top><b>$text{'host_address'}</b></td> <td colspan=2>\n";
printf "<input type=radio name=addr_mode value=3 %s> %s<br>\n",
	$mode == 3 ? 'checked' : '', $text{'host_local'};

printf "<input type=radio name=addr_mode value=0 %s> %s<br>\n",
	$mode == 0 ? 'checked' : '', $text{'host_any'};

printf "<input type=radio name=addr_mode value=1 %s> %s\n",
	$mode == 1 ? 'checked' : '', $text{'host_single'};
printf "<input name=host size=20 value='%s'><br>\n",
	$mode == 1 ? $host->{'address'} : '';

printf "<input type=radio name=addr_mode value=2 %s> %s\n",
	$mode == 2 ? 'checked' : '', $text{'host_network'};
printf "<input name=network size=20 value='%s'> %s\n",
	$mode == 2 ? $host->{'address'} : '', $text{'host_netmask'};
printf "<input name=netmask size=20 value='%s'></td> </tr>\n",
	$mode == 2 ? $host->{'netmask'} : '';

print "<tr> <td><b>$text{'host_db'}</b></td>\n";
print "<td colspan=2><select name=db>\n";
printf "<option value=all %s>&lt;$text{'host_all'}&gt;\n",
	$host->{'db'} eq 'all' ? 'selected' : '';
printf "<option value=sameuser %s>&lt;$text{'host_same'}&gt;\n",
	$host->{'db'} eq 'sameuser' ? 'selected' : '';
foreach $d (&list_databases()) {
	printf "<option %s>%s\n", $host->{'db'} eq $d ? 'selected' : '', $d;
	}
print "</select></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'host_auth'}</b></td> <td valign=top>\n";
foreach $a ('password', 'crypt', 'trust', 'reject', 'ident', 'krb4', 'krb5') {
	printf "<input type=radio name=auth value=%s %s> %s\n",
		$a, $host->{'auth'} eq $a ? 'checked' : '', $text{"host_$a"};
	$arg = $host->{'auth'} eq $a ? $host->{'arg'} : undef;
	if ($a eq 'password') {
		print "<br>&nbsp;&nbsp;&nbsp;\n";
		printf "<input type=checkbox name=passwordarg value=1 %s> %s\n",
			$arg ? 'checked' : '', $text{'host_passwordarg'};
		print "<input name=password size=20 value='$arg'>\n";
		}
	elsif ($a eq 'ident') {
		print "<br>&nbsp;&nbsp;&nbsp;\n";
		printf "<input type=checkbox name=identarg value=1 %s> %s\n",
			$arg ? 'checked' : '', $text{'host_identarg'};
		print "<input name=ident size=10 value='$arg'>\n";
		}
	print "<br>\n";
	if ($a eq 'reject') {
		print "</td><td valign=top>\n";
		}
	}
print "</td></tr>\n";

print "</table></td></tr></table>\n";
print "<table width=100%><tr>\n";
if ($in{'new'}) {
	print "<td><input type=submit value='$text{'create'}'></td>\n";
	}
else {
	print "<td><input type=submit value='$text{'save'}'></td>\n";
	print "<td align=right><input type=submit name=delete ",
	      "value='$text{'delete'}'></td>\n";
	}
print "</tr></table>\n";

print "<hr>\n";
&footer("list_hosts.cgi", $text{'host_return'});

070701000356d9000081e40000000000000002000000013ac038b700000983000000200000000000000000000000000000002000000003reloc/postgresql/edit_table.cgi   #!/usr/local/bin/perl
# edit_table.cgi
# Display the structure of some table

require './postgresql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
&header($text{'table_title'}, "", "edit_table");
print "<center><font size=+2>",&text('table_header', "<tt>$in{'table'}</tt>",
				     "<tt>$in{'db'}</tt>"),"</font></center>\n";
print "<hr>\n";

@desc = &table_structure($in{'db'}, $in{'table'});
print "<form action=edit_field.cgi>\n";
print "<input type=hidden name=db value='$in{'db'}'>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";

$mid = int((@desc / 2)+0.5);
print "<table border=0 width=100%> <tr><td valign=top width=50%>\n";
&type_table(0, $mid);
print "</td><td valign=top width=50%>\n";
&type_table($mid, scalar(@desc)) if (@desc > 1);
print "</td></tr> </table>\n";

print "<table width=100%><tr>\n";
print "<td width=33% nowrap><input type=submit value='$text{'table_add'}'>\n";
print "<select name=type>\n";
foreach $t (&list_types()) {
	print "<option>$t\n";
	}
print "</select></td></form>\n";

print "<form action=view_table.cgi>\n";
print "<input type=hidden name=db value='$in{'db'}'>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<td align=middle width=33%>\n";
print "<input type=submit value='$text{'table_data'}'></td>\n";
print "</form>\n";

print "<form action=drop_table.cgi>\n";
print "<input type=hidden name=db value='$in{'db'}'>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<td align=right width=33%>\n";
print "<input type=submit value='$text{'table_drop'}'></td>\n";
print "</form>\n";

print "</tr></table>\n";

print "<hr>\n";
&footer("edit_dbase.cgi?db=$in{'db'}", $text{'dbase_return'});

sub type_table
{
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'table_field'}</b></td> ",
      "<td><b>$text{'table_type'}</b></td> ",
      "<td><b>$text{'table_arr'}</b></td> ",
      "<td><b>$text{'table_null'}</b></td> </tr>\n";
local $i;
for($i=$_[0]; $i<$_[1]; $i++) {
	local $r = $desc[$i];
	print "<tr $cb>\n";
	print "<td><a href='edit_field.cgi?db=$in{'db'}&table=$in{'table'}&",
	      "idx=$i'>$r->{'field'}</a></td>\n";
	print "<td>$r->{'type'}</td>\n";
	print "<td>",$r->{'arr'} eq 'YES' ? $text{'yes'}
					  : $text{'no'},"</td>\n";
	print "<td>",$r->{'null'} eq 'YES' ? $text{'yes'}
					   : $text{'no'},"</td>\n";
	print "</tr>\n";
	}
print "</table>\n";
}

 070701000356da000081e40000000000000002000000013ac038b8000009d7000000200000000000000000000000000000001f00000003reloc/postgresql/edit_user.cgi    #!/usr/local/bin/perl
# edit_user.cgi
# Display a form for editing or creating a user

require './postgresql-lib.pl';
&ReadParse();
$access{'users'} || &error($text{'user_ecannot'});
if ($in{'new'}) {
	&header($text{'user_create'}, "");
	}
else {
	&header($text{'user_edit'}, "");
	$s = &execute_sql($config{'basedb'}, "select * from pg_shadow ".
					     "where usename = '$in{'user'}'");
	@user = @{$s->{'data'}->[0]};
	}
print "<hr>\n";

print "<form action=save_user.cgi>\n";
print "<input type=hidden name=new value='$in{'new'}'>\n";
print "<input type=hidden name=user value='$in{'user'}'>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'user_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'user_name'}</b></td>\n";
if ($in{'new'}) {
	print "<td><input name=name size=20></td>\n";
	}
else {
	print "<td>$user[0]</td>\n";
	}

print "<td><b>$text{'user_passwd'}</b></td>\n";
printf "<td><input type=radio name=pass_def value=1 %s> $text{'user_none'}\n",
	$user[6] ? '' : 'checked';
printf "<input type=radio name=pass_def value=0 %s>\n",
	$user[6] ? 'checked' : '';
print "<input type=password name=pass size=20 value='$user[6]'></td> </tr>\n";

print "<tr> <td><b>$text{'user_db'}</b></td>\n";
printf "<td><input type=radio name=db value=1 %s> $text{'yes'}\n",
	$user[2] eq 't' ? 'checked' : '';
printf "<input type=radio name=db value=0 %s> $text{'no'}</td>\n",
	$user[2] eq 't' ? '' : 'checked';

print "<td><b>$text{'user_other'}</b></td>\n";
printf "<td><input type=radio name=other value=1 %s> $text{'yes'}\n",
	$user[4] eq 't' ? 'checked' : '';
printf "<input type=radio name=other value=0 %s> $text{'no'}</td> </tr>\n",
	$user[4] eq 't' ? '' : 'checked';

print "<tr> <td><b>$text{'user_until'}</b></td> <td colspan=3>\n";
if (!$user[7]) {
	printf "<input type=radio name=until_def value=1 %s> %s\n",
		$user[7] ? '' : 'checked', $text{'user_forever'};
	printf "<input type=radio name=until_def value=0 %s>\n",
		$user[7] ? 'checked' : '';
	}
print "<input name=until size=30 value='$user[7]'></td> </tr>\n";

print "</table></td></tr></table>\n";
print "<table width=100%><tr>\n";
if ($in{'new'}) {
	print "<td><input type=submit value='$text{'create'}'></td>\n";
	}
else {
	print "<td><input type=submit value='$text{'save'}'></td>\n";
	print "<td align=right><input type=submit name=delete ",
	      "value='$text{'delete'}'></td>\n";
	}
print "</tr></table>\n";

print "<hr>\n";
&footer("list_users.cgi", $text{'user_return'});

 070701000356db000081e40000000000000002000000013ac038b700000379000000200000000000000000000000000000001a00000003reloc/postgresql/exec.cgi #!/usr/local/bin/perl
# exec.cgi
# Execute some SQL command and display output

require './postgresql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
&error_setup($text{'exec_err'});
$d = &execute_sql_logged($in{'db'}, $in{'cmd'});

&header($text{'exec_title'}, "");
print "<hr>\n";
print "<p>",&text('exec_out', "<tt>$in{'cmd'}</tt>"),"<p>\n";
@data = @{$d->{'data'}};
if (@data) {
	print "<table border> <tr $tb>\n";
	foreach $t (@{$d->{'titles'}}) {
		print "<td><b>$t</b></td>\n";
		}
	print "</tr>\n";
	foreach $r (@data) {
		print "<tr $cb>\n";
		foreach $c (@$r) {
			print "<td>",$c ne '' ? $c : "<br>","</td>\n";
			}
		print "</tr>\n";
		}
	print "</table><p>\n";
	}
else {
	print "<b>$text{'exec_none'}</b> <p>\n";
	}
&webmin_log("exec", undef, $in{'db'}, \%in);

print "<hr>\n";
&footer("edit_dbase.cgi?db=$in{'db'}", $text{'dbase_return'});

   070701000356dc000081e40000000000000002000000013ac038b70000027b000000200000000000000000000000000000001f00000003reloc/postgresql/exec_form.cgi    #!/usr/local/bin/perl
# exec_form.cgi
# Display a form for executing SQL in some database

require './postgresql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
&header($text{'exec_title'}, "", "exec_form");
print "<hr>\n";

print "<p>",&text('exec_header', "<tt>$in{'db'}</tt>"),"<p>\n";
print "<form action=exec.cgi method=post>\n";
print "<input type=hidden name=db value='$in{'db'}'>\n";
print "<textarea name=cmd rows=10 cols=70></textarea><br>\n";
print "<input type=submit value='$text{'exec_exec'}'></form>\n";

print "<hr>\n";
&footer("edit_dbase.cgi?db=$in{'db'}", $text{'dbase_return'});


 07070100038330000041ed0000000000000001000000023ac03c4300000000000000200000000000000000000000000000001800000003reloc/postgresql/images   07070100038331000081a40000000000000002000000013ac038b7000001ce000000200000000000000000000000000000001f00000003reloc/postgresql/images/db.gif    GIF89a0 0   鴺槝`d`槝   忍!Made with GIMP !
  ,    0 0  䎬很0睝8k*凐`(巇)t聽瓹谰蕄{F轅糥吓郾<(]慓9煭∫籄r瓖v泀x*Π樹
k讗9gU翣徺Ｎrh)u|O噯QPUes)0kl4慓
_\沍偁湤梖儙c゜巓lGB7牔tE{x築墌6`J肕團w舲繜锻n攲汰儯讬踘萼徇s徉p嫡忮邈h霂罊`腠镱滹缤殒鲛鵫沓唌斃j傇菒萘m	-lWO溊`欒-dX傃蹸t6R揣ˇ偄>T鑟d@m YHO寮i:糳aツ:-*Qe蔉軂文Wi臓欘屻*螁B泗
TjVDO邂i)欩胵ViZQp]5.酃o雤+ō跓鱲藟颬U圞HX谈駛 ;  07070100038332000081a40000000000000002000000013ac038b70000074d000000200000000000000000000000000000002300000003reloc/postgresql/images/grants.gif    GIF89a0 0      拻屄麓戽文藓祛谔曛迢贶蘧绰~t尧斘殧聠|緙t螢斊妱馄际拕诙獪姚滫蜾緕t暌穆倈秄d要準拰茙勈枌蜴茭贲毯rl簐l秊d诓ゆ萍之ゆ夷鲵涫巹鲱溻庠骀苤痔钷在谔抖灋斊萍蜿芷唡蕷斁vl揶詺殧倐|妸勵钿挹桃灁鲻旌冬伯な始灇攷巹挝尿蜾枛屾庠zzt揪处rnl乙膥~t唵|ⅱ湲妴|も拊竞搓贶揶蘓VT帄劜菠rrl铑苕嬖挝计拼势家文问计麓种啮鲣铌芎含殮尪铂膊瑬拰戮磼巹蝾洇湤滉嬖!Made with GIMP !
  ,    0 0   H盃羶*\劝∶? "F|HQ∧+6 牐G;I菠蓲═q \(`厘/s红e
".`欣$楡酇.栽箳鏙0X葼酈"r鑠@ 盿姥!DPUi媸$J0Q犅厛rW濦亖$2H亖jh袄D
伇p`6糞繨IH`1 D嫗1p苀1$H疣鄀	A<楡乍4j刎<嗥9t鸡kz#梏)b>~ a"D諹鰖Cj!c硜7J鐢k#=亜坦4 廬呇偛%=,W燦	簞憘眽 D:噽側邎8;牎*q8!p垼KB埌D9罝N= QHA僁<LAE5鬚 =(G詐D9%x`仺塰鄁M旇58A4XTL1CR4亜1眲擲0J8A3`/i樐7
!DY$&駜D"X
?堭儱懞餜歴丧喊*砂iD?`j鎳PC=镃 SQ/lu釁Q0Y蘒?PZ/Pj)"葛E/H銪`夹韼0V鎈癑+`蛑洆M4央KN凲D0堁EX馝M0dc豧瓓/!E怮.刃EH4憛24馝!C}w;*兎鑖!i脡.*碌:Ejd6≦D;I攀 !#Z+/-黲1%﹡豣鸅9满R枫璗 吪榕榤TX崮T槠<41獙*!o0Q褑D+鬑 XP1 4囱3腊;劝C+0M袪|署驟0T[種I\4n\袈莻蓖﨏6埿F3萢_讳Bp搬"V[D窱H螦.霵Ξ袈N4=C蒓Q LA腅牎ht?观尋浈♂ 炝uFM	 
8偮 v1(!膼f垨 N4p︷58	C郆@%襖坙j渾乩Mhf 卼伭|酦8r"$#!I 4翫4駢P" ;   07070100038333000081a40000000000000002000000013ac038b700000191000000200000000000000000000000000000002300000003reloc/postgresql/images/groups.gif    GIF89a0 0      GGGfff烫!Made with GIMP !   ,    0 0  﨟很0蔍% &f]	~Z轎mO@氼;2P
|1o鑣 櫋 J"Sql洧紒朰邃Q瓨:C焙仨`倆>娦轾`:闏胟STwJt-pC`{塚s
嫃9Pz憠<n=h)c[﹑=睎YZr够 糠拫惽)
蓚-缓愊袻薢斕0>芏贁
ヤ{Z鲜檎奉]5丝p櫱衶镨du鹫瘣磝麇{%b
>N
)B#拙j袨@E銈m曹"0'21%えK鎧%錠檰.T#I鄴zn'湁134)竳﨟翨2氮	  ;   07070100038334000081a40000000000000002000000013ac038b70000019c000000200000000000000000000000000000002200000003reloc/postgresql/images/hosts.gif GIF89a0 0   烫   [[[烫!Made with GIMP !   ,    0 0  﨟很06@8K橝鴂灐X慹%B胷m睆跽7埭恹茽pAD.)(尹AR昍擼秤柷isu嵵書4撗i蕱鹡俞pW鐑 LndtQZ
3(寚R5( 憍yj妐 媂棙r.1cu燸櫅O怸Ο蔼篟吹禞綕4皕*聻繖C墒┢洭G↖匀抣避曰?膆z帳=喾丩粐h璀腹阵纛觌漰鮿0甡90暵將` N(訢嗅篎#X<虈P0E%卿r*HY"`噤聧*UV嵋B虥t8i撱餦4hM慠錓T⒋%=oT鐺┰rV+D玚$  ;07070100038335000081a40000000000000002000000013ac038b7000006d8000000200000000000000000000000000000002100000003reloc/postgresql/images/icon.gif  GIF89a0 0   ~槺厼稅Ъ湴忙干灨馨老k姦b偁舅譽毻[z柗圃w摦c儭捎轤漰帺帴粂澫r彧县釱d{:N`F^s蒲躛~湜懊'4@w摥Ψ%,|AWk7IZ敧緥９Oi們湸;N`[z桲c{4FV掬雈啟黺嫮9M_~犘E\rF]rMf~Rm嚫旁Ur嶚Pj刄q寛牱Vtm啛禭v=ReAWlRn埉课绷姓萱[v楊耵筒滦!'z3CQo崸1BQk墺:E圛Y拋洸_v灄FS1AP南廴愚.>L<I-<J喝誛u-5!w眇趄貅忌謩柕杜觸摥鲽鵋U憂﹒厳Un欓腭+9Fs啯沔顣帳谎阢猛$+{hy0>凊鲼噼iq嫚Чrfru3DT_n{-;I遮鍣Vd2CRw崲徵頊犆q剹9H堢祓Pctq帺黖mz彘顴Q*4坩椁度g}b8D噀偄[t湳课o墵┖藬椌^`4?別w嚗ㄉ9L^pt撑$x暀纁u喐圃铖趵特~敮ov貔0@OWm趱尮(5BVgw彗锂蚕=QdUo((}伎謒嚐%1<驳邀赧erⅨ彄籵叏し若赭ェ色继+7鵔P栯腚６泅鲼瘃鲳痧唻秛v凰塍n啩Tf榾柂鲻鰖&3>i偉fl￣j喖敊娟眇Mf擼r潻惶貂靓唤/;伆葱邋#'z貂醍客䜩兂q徛眄韤瞤椝@KV4=Fou▄篌送鄘伆"-7挧紧趑酵剜鏷嚖!Made with GIMP !   ,    0 0   	H盃羶*\劝∶#J淗雹艆..勔 $菮睟!鶷╘2枖姄t拋蛻L榍砱O&6'硜Q$Pzsd偉|鯯*h 爇W@`4靡擋痍V "萛餛 !摙璥 ,仢>4t@=8熵,uH唴Wtm ?@t8:  H贲M 5脌凜齯盱 聜.h祂聄6A搩e<璢6饝鷌醆睁\悤g4 9<邶貤z Ｚ 樌踌邺剢0 ZQg:g淖蟢A瀤窗 2``h夊@LG dAx>蜹鹄 @%0聧7鍬   l惷h楞44YH <攢>痈鴅饜儣Cn =怈< <t傲0儚 @瓜>冂OQJ郩	#H機g毨A湴邪A檋蜞?w骈!醔X%q  PjX(" 繡樞蜐檅u罆羼 ╔r篓瑎	 pt0儯P 虁A+竑J(y饊灂	'$§腨〢fz$虪(&IX @虁
業兗w>拉B地/,!むL膧 (鼆们87<愜古C卿嬚-瀴>7蹳甴)惺]2VL,衲.偼D涟@WL淠玄勷.`濒7膧┫6剜DEDa鲑fD,B?膧Bs帔县I孪|-欺.E寔+ID遾銉!@>丰⊙@[8?笣剰$囨泝懧VゐJ嬱QzAml痉S>]2{A嫲a{"~X
!`黱P0n鉌TG$馝lT彁-x舡= '	1|A~	i倆黛+d%绡鳢P@ ;07070100038336000081a40000000000000002000000013ac038b70000016e000000200000000000000000000000000000002200000003reloc/postgresql/images/table.gif GIF89a0 0   鴺槝`d`槝   忍!Made with GIMP !
  ,    0 0  䎬很0蔍8喭`(J 渉l霒 螩@叱嶋5 斮埮け堨徛fx0E鎶Y/阁輝4鶯5嵽餛[Pㄛ伝逓喵駕|s乽厊墕&0剢w垏妱儈彄悩z孶q煚&帡枓嫊洢Λ〝崸棏嚜櫏秞s±r碑长瓇笟乒菦莎徎蕚锰哑舰灹贤藫龠接佳洮倚握幽蹄0蒴楹罔铎岑驖齞庞P啖|╂针v瘶<棸 純	F8"駶瘆$忠笎(S狶憽ニ0c蕼I肠蜎.  ;  07070100038337000081a40000000000000002000000013ac038b700000125000000200000000000000000000000000000002200000003reloc/postgresql/images/users.gif GIF89a0 0      fff烫!Made with GIMP !   ,    0 0  8很0蔍!缢#宂񒎲D*稰2I／涬粎	倢犴旵&{)G3獨i1V蘩?鉥Y/ㄊ$抛乫z莣鱕}x:{XY~]t唸塜)i宷#)倛+弻,槞哬湞Sf潪@爚v嚕枃w@}砃诞
稟筀JT<h_wq)飘=s廉俶a4薉/倳拓诤O逹忏噗;"蛾詴i烘~婴鱖	 ;   070701000356dd000081e40000000000000002000000013ac038b700000c4c000000200000000000000000000000000000001b00000003reloc/postgresql/index.cgi    #!/usr/local/bin/perl
# index.cgi
# Display all existing databases

require './postgresql-lib.pl';
&header($text{'index_title'}, "", "intro", 1, 1);
print "<hr>\n";

# Check for PostgreSQL programs
if (!-x $config{'psql'}) {
	print "<p>",&text('index_esql', "<tt>$config{'psql'}</tt>",
			  "/config.cgi?$module_name"),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}
if (!-r $config{'hba_conf'}) {
	print "<p>",&text('index_ehba', "<tt>$config{'hba_conf'}</tt>",
			  "/config.cgi?$module_name"),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

$r = &is_postgresql_running();
if ($r == 0) {
	# Not running .. need to start it
	print "<p> <b>$text{'index_notrun'}</b> <p>\n";

	if ($access{'stop'}) {
		print "<hr>\n";
		print "<form action=start.cgi>\n";
		print "<table width=100%><tr><td>\n";
		print "<input type=submit ",
		      "value=\"$text{'index_start'}\"></td>\n";
		print "<td>",&text('index_startmsg',
		      "<tt>$config{'start_cmd'}</tt>"),"</td> </tr></table>\n";
		print "</form>\n";
		}
	}
elsif ($r == -1) {
	# Running, but webmin doesn't know the login/password
	print "<p> <b>$text{'index_nopass'}</b> <p>\n";
	print "<form action=login.cgi>\n";
	print "<center><table border>\n";
	print "<tr $tb> <td><b>$text{'index_ltitle'}</b></td> </tr>\n";
	print "<tr $cb> <td><table cellpadding=2>\n";
	print "<tr> <td><b>$text{'index_login'}</b></td>\n";
	printf "<td><input name=login size=20 value='%s'></td> </tr>\n",
		$config{'login'};
	print "<tr> <td><b>$text{'index_pass'}</b></td>\n";
	printf "<td><input name=pass size=20 type=password value='%s'></td>\n",
		$config{'pass'};
	print "</tr> </table></td></tr></table>\n";
	print "<input type=submit value='$text{'save'}'>\n";
	print "<input type=reset value='$text{'index_clear'}'>\n";
	print "</center></form>\n";
	}
else {
	# Running .. check version
	$v = &get_postgresql_version();
	if ($v < 6.5) {
		print "<p>",&text('index_eversion', $v, 6.5),"<p>\n";
		print "<hr>\n";
		&footer("/", $text{'index'});
		exit;
		}

	# List the databases
	print "<h3>$text{'index_dbs'}</h3>\n";
	@titles = grep { &can_edit_db($_) } &list_databases();
	@icons = map { "images/db.gif" } @titles;
	@links = map { "edit_dbase.cgi?db=$_" } @titles;
	&icons_table(\@links, \@titles, \@icons);
	print "<a href=newdb_form.cgi>$text{'index_add'}</a><p>\n"
		if ($access{'create'});

	if ($access{'users'}) {
		print "<hr>\n";
		print "<h3>$text{'index_users'}</h3>\n";
		@links = ( 'list_users.cgi', 'list_groups.cgi',
			   'list_hosts.cgi', 'list_grants.cgi' );
		@titles = ( $text{'user_title'}, $text{'group_title'},
			    $text{'host_title'}, $text{'grant_title'} );
		@images = ( 'images/users.gif', 'images/groups.gif',
			    'images/hosts.gif', 'images/grants.gif' );
		&icons_table(\@links, \@titles, \@images, 5);
		}

	if ($access{'stop'}) {
		print "<hr>\n";
		print "<form action=stop.cgi>\n";
		print "<table width=100%><tr><td>\n";
		print "<input type=submit ",
		      "value=\"$text{'index_stop'}\"></td>\n";
		print "<td>$text{'index_stopmsg'}</td> </tr></table>\n";
		print "</form>\n";
		}
	}

print "<hr>\n";
&footer("/", "index");

07070100039a08000041ed0000000000000001000000023ac03c4300000000000000200000000000000000000000000000001600000003reloc/postgresql/lang 07070100039a09000081a40000000000000002000000013ac038b7000021b6000000200000000000000000000000000000001900000003reloc/postgresql/lang/en  index_title=PostgreSQL Database Server
index_notrun=PostgreSQL is not running on your system - database list could not be retrieved.
index_start=Start PostgreSQL Server
index_startmsg=Click this button to start the PostgreSQL database server on your system with the command<br>$1<br>. This Webmin module cannot administer the database until it is started.
index_nopass=Webmin needs to know your PostgreSQL administration login and password in order to manage your database. Please enter your administration username  and password below.
index_ltitle=PostgreSQL Login
index_login=Login
index_pass=Password
index_clear=Clear
index_stop=Stop PostgreSQL Server
index_stopmsg=Click this button to stop the PostgreSQL database server on your system. This will prevent any users or programs from accessing the database, including this Webmin module.
index_dbs=PostgreSQL Databases
index_add=Create a new database
index_users=User Options
index_return=database list
index_esql=The PostgreSQL client program $1 was not found on your system. Maybe PostgreSQL is not installed, or your <a href='$2'>module configuration</a> is incorrect.
index_ehba=The PostgreSQL host configuration file $1 was not found on your system. Maybe PostgreSQL has not been initialised, or your <a href='$2'>module configuration</a> is incorrect.
index_eversion=The PostgreSQL database on your system is version $1, but Webmin only supports versions $2 and above.

login_err=Login failed
login_ecannot=You are not allowed to configure the database login
login_elogin=Missing adminstration login
login_epass=Incorrect administration username or password

dbase_title=Edit Database
dbase_tables=Database Tables
dbase_add=Create a new table
dbase_drop=Drop Database
dbase_exec=Execute SQL
dbase_none=This database has no tables.
dbase_fields=Fields:
dbase_return=table list
dbase_ecannot=You are not allowed to edit this database

table_title=Edit Table
table_title2=Create Table
table_opts=Field options
table_header=Table $1 in database $2
table_field=Field name
table_type=Type
table_null=Allow nulls?
table_arr=Array?
table_none=None
table_add=Add field of type:
table_return=field list
table_data=View Data
table_drop=Drop Table
table_name=Table name
table_initial=Initial fields
table_header2=New table options
table_err=Failed to create table
table_ename=Missing or invalid table name
table_efield='$1' is not a valid field name
table_etype=Missing type for field $1
table_esize=Missing type size for field $1
table_enone=No initial fields entered

field_title1=Add Field
field_title2=Modify Field
field_in=In table $1 in database $2
field_header=Field parameters
field_name=Field name
field_type=Data type
field_size=Type width
field_none=None
field_null=Allow nulls?
field_arr=Array field?
field_key=Primary key?
field_uniq=Unique?
field_err=Failed to save field
field_esize='$1' is not a valid field size
field_eenum=No enumerated values entered
field_efield='$1' is not a valid field name
field_ekey=Fields that allow nulls cannot be part of the primary key

exec_title=Execute SQL
exec_header=Enter SQL command to execute on database $1 ..
exec_exec=Execute
exec_err=Failed to execute SQL
exec_out=Output from SQL command $1 ..
exec_none=No data returned

stop_err=Failed to stop database server
stop_epidfile=Failed to open PID file $1
stop_ekill=Failed to kill process $1 : $2
start_err=Failed to start database server

ddrop_err=Failed to drop database
ddrop_title=Drop Database
ddrop_rusure=Are you sure you want to drop the database $1 ? $2 tables containing $3 rows of data will be deleted.
ddrop_mysql=Because this is the master database, dropping it will probably make your PostgreSQL server unusable!
ddrop_ok=Drop database

tdrop_err=Failed to drop table
tdrop_title=Drop Table
tdrop_rusure=Are you sure you want to drop the table $1 in database $2 ? $3 rows of data will be deleted.
tdrop_ok=Drop table

view_title=Table Data
view_pos=Rows $1 to $2 of $3
view_none=This table contains no data
view_edit=Edit selected rows
view_new=Add row
view_delete=Delete selected rows
view_nokey=Data in this table cannot be edited because it has no primary key.
view_all=Select all
view_invert=Invert selection

newdb_title=Create Database
newdb_header=New database options
newdb_db=Database name
newdb_path=Database file path
newdb_err=Failed to create database
newdb_edb=Missing or invalid database name
newdb_ecannot=You are not allowed to create databases
newdb_epath=Missing database path

user_title=PostgreSQL Users
user_ecannot=You are not allowed to edit users
user_name=Username
user_db=Can create databases?
user_other=Can create users?
user_until=Valid until
user_add=Create a new user
user_forever=Forever
user_pass=Requires password?
user_edit=Edit User
user_create=Create User
user_return=user list
user_header=PostgreSQL user details
user_passwd=Password
user_none=None
user_err=Failed to save user
user_epass=Missing or invalid password
user_ename=Missing or invalid username

host_ecannot=You are not allowed to edit allowed hosts
host_title=Allowed Hosts
host_local=Local connection
host_address=Host address
host_db=Database
host_auth=Authentication mode
host_any=Any network host
host_all=All databases
host_same=Same as username
host_add=Create a new allowed host
host_ident=Check <tt>ident</tt> server on host
host_trust=No authentication required
host_reject=Reject connection
host_password=Plaintext password
host_crypt=Encrypted password
host_krb4=Kerberos V4
host_krb5=Kerberos V5
host_passwordarg=Use password file
host_identarg=Use user map
host_create=Create Allowed Host
host_edit=Edit Allowed Host
host_single=Single host
host_network=Network
host_netmask=Netmask
host_return=host access list
host_err=Failed to save allowed host
host_eident=Missing or invalid user map
host_epassword=Missing or invalid password file
host_enetmask=Missing or invalid netmask
host_enetwork=Missing or invalid network
host_ehost=Missing or invalid host IP address

grant_title=Granted Privileges
grant_tvi=Object
grant_type=Type
grant_db=Database
grant_public=Everyone
grant_group=Group $1
grant_add=Add grant in database :
grant_return=privileges list
grant_ecannot=You are not allowed to edit privileges
grant_create=Create Grant
grant_edit=Edit Grant
grant_header=Privileges granted to users
grant_to=Grant privileges on
grant_table=Table
grant_view=View or index
grant_users=Grant privileges to
grant_user=User
grant_what=Privileges
grant_r=Table
grant_v=View
grant_i=Index
grant_S=Sequence
grant_none=No tables, views, sequences or indexes exist to grant privileges on.

group_title=PostgreSQL Groups
group_ecannot=You are not allowed to edit groups
group_name=Group name
group_id=Group ID
group_mems=Members
group_add=Create a new group
group_edit=Edit Group
group_create=Create Group
group_header=PostgreSQL group details
group_return=groups list
group_err=Failed to save group
group_ename=Missing or invalid group name
group_egid=Missing or invalid group ID
group_etaken=Group name is already in use
group_none=No PostgreSQL groups currently exist

esql=SQL $1 failed : $2

log_start=Started PostgreSQL server
log_stop=Stopped PostgreSQL server
log_db_create=Created database $1
log_db_delete=Dropped database $1
log_table_create=Created table $1 in database $2
log_table_delete=Dropped table $1 from database $2
log_field_create=Added field $1 $4 to $2 in database $3
log_field_modify=Modified field $1 $4 in $2 in database $3
log_field_delete=Deleted field $1 from $2 in database $3
log_data_create=Added row to table $2 in database $3
log_data_modify=Modified $1 rows in table $2 in database $3
log_data_delete=Deleted $1 rows from table $2 in database $3
log_exec=Executed SQL in database $1
log_exec_l=Executed SQL command $2 in database $1
log_create_user=Created user $1
log_delete_user=Deleted user $1
log_modify_user=Modified user $1
log_create_group=Created group $1
log_delete_group=Deleted group $1
log_modify_group=Modified group $1
log_create_local=Created allowed local connection
log_modify_local=Modified allowed local connection
log_delete_local=Deleted allowed local connection
log_create_all=Created any allowed host
log_modify_all=Modified any allowed host
log_delete_all=Deleted any allowed host
log_create_hba=Created allowed host $1
log_modify_hba=Modified allowed host $1
log_delete_hba=Deleted allowed host $1
log_grant=Granted privileges on $1 in database $2

acl_dbs=Databases this user can manage
acl_dall=All databases
acl_dsel=Selected..
acl_create=Can create new databases?
acl_delete=Can drop databases?
acl_stop=Can stop and start the PostgreSQL server?
acl_users=Can edit users, groups and grants?

  07070100039a0a000081a40000000000000002000000013ac038b70000275b000000200000000000000000000000000000001900000003reloc/postgresql/lang/es  index_title=Servidor de Base de Datos PostgreSQL
index_notrun=PostgreSQL no se est ejecutando en tu sistema - la lista de bases de datos no pudo ser recuperada.
index_start=Arrancar Servidor PostgreSQL
index_startmsg=Haz click en este bot髇 para arrancar el servidor de base de datos PostgreSQL en tu sistema con el comando <br>$1<br> Este m骴ulo de Webmin no puede administrar la base de datos hasta que est arrancada.
index_nopass=Webmin necesita saber tu login de administraci髇 de PostgreSQL y tu clave de acceso con el fin de gestionar tu base de datos. Por favor, digita debajo tu nombre de usuario de administraci髇 y la clave de acceso.
index_ltitle=Login a PostgreSQL
index_login=Login
index_pass=Clave de acceso
index_clear=Limpiar
index_stop=Parar Servidor PostgreSQL
index_stopmsg=Haz click en este bot髇 para parar el servidor de base de datos PostgreSQL de tu sistema. Esto prevendr que cualquier usuario o programa acceda a la base de datos, incluyendo a este m骴ulo de Webmin.
index_dbs=Bases de Datos PostgreSQL
index_add=Crear una nueva base de datos
index_users=Opciones de Usuario
index_return=lista de base de datos
index_esql=El programa cliente de PostgreSQL $1 no ha sido encontrado en tu sistema. Quiz醩 PostgreSQL no est instalada o tu <a href='$2'>configuraci髇 del m骴ulo</a> es incorrecta.
index_ehba=El archivo de configuraci髇 de m醧uina de PostgreSQL $1 no ha sido encontrado en tu sistema. Quiz醩 PostgreSQL no ha sido inicializada o tu <a href='$2'>configuraci髇 del m骴ulo</a> es incorrecta.
index_eversion=La base de datos PostgreSQL de tu sistema es de la versi髇 $1, pero Webmin s髄amente soporta las versiones $2 y superiores.

login_err=Fall el login
login_ecannot=No est醩 autorizado a configurar el login a la base de datos
login_elogin=Login de administraci髇 sin poner
login_epass=Nombre de usuario o clave de acceso de administraci髇 incorrectos

dbase_title=Editar Base de Datos
dbase_tables=Tablas de Base de Datos
dbase_add=Crear una nueva tabla
dbase_drop=Eliminar Base de Datos
dbase_exec=Ejecutar SQL
dbase_none=Esta base de datos no tiene tablas.
dbase_fields=Campos:
dbase_return=lista de tablas
dbase_ecannot=No est醩 autorizado a editar esta base de datos

table_title=Editar Tabla
table_title2=Crear Tabla
table_opts=Opciones de campo
table_header=Tabla $1 en base de datos $2
table_field=Nombre de campo
table_type=Tipo
table_null=縋ermitir nulos?
table_arr=緼rreglo?
table_none=Ninguno
table_add=A馻dir tipo de campo:
table_return=lista de campos
table_data=Ver Datos
table_drop=Eliminar Tabla
table_name=Nombre de Tabla
table_initial=Campos iniciales
table_header2=Opciones de nueva tabla
table_err=No pude crear tabla
table_ename=Nombre de tabla inv醠ido o sin poner
table_efield='$1' no es un nombre de campo v醠ido
table_etype=Tipo sin poner para campo $1
table_esize=Medida de tipo sin poner para campo $1
table_enone=No se han digitado campos iniciales

field_title1=A馻dir Campo
field_title2=Modificar Campo
field_in=En tabla $1 en base de datos $2
field_header=Par醡etros de Campo
field_name=Nombre de campo
field_type=Tipo de datos
field_size=Ancho de tipo
field_none=Ninguno
field_null=縋ermito nulos?
field_arr=緾ampo de arreglo?
field_key=緾lave primaria?
field_uniq=口nica?
field_err=No pude salvar campo
field_esize='$1' no es una medida v醠ida de campo
field_eenum=No se han digitado valores enumerados
field_efield='$1' no es un nombre v醠ido de campo
field_ekey=Los campos que permiten nulos no pueden formar parte de la clave primaria

exec_title=Ejecutar SQL
exec_header=Digita comando SQL a ejecutar en base de datos $1...
exec_exec=Ejecutar
exec_err=No pude ejecutar SQL
exec_out=Salida del comando SQL $1...
exec_none=No se ha devuelto dato alguno

stop_err=No pude para el servidor de base de datos
stop_epidfile=No pude abrir el archivo PID $1
stop_ekill=No pude matar el proceso $1: $2
start_err=No pude arrancar el servidor de base de datos

ddrop_err=No pude eliminar la base de datos
ddrop_title=Eliminar Base de Datos
ddrop_rusure=縀st醩 seguro de querer eliminar la base de datos $1?. $2 tablas conteniendo $3 filas de datos ser醤 borradas.
ddrop_mysql=A causa de que 閟ta es la base de datos maestra, liminarla har韆 prob醔lemente que tu servidor PostgreSQL quedara inservible!
ddrop_ok=Eliminar Base de Datos

tdrop_err=No pude eliminar tabla
tdrop_title=Eliminar Tabla
tdrop_rusure=縀st醩 seguro de querer eliminar la tabla $1 en la base de datos $2?. $3 filas de datos ser醤 borradas.
tdrop_ok=Eliminar Tabla

view_title=Datos de Tabla
view_pos=Filas $1 a $2 de $3
view_none=Esta tabla no contiene dato alguno
view_edit=Editar filas seleccionadas
view_new=A馻dir fila
view_delete=Borrar filas seleccionadas
view_nokey=Los datos de esta tabla no pueden ser editados ya que no tiene clave primaria.
view_all=Seleccionar todo
view_invert=Invertir selecci髇

newdb_title=Crear Base de Datos
newdb_header=Nuevas opciones de Base de Datos
newdb_db=Nombre de base de datos
newdb_path=Trayectoria de archivo de base de datos
newdb_err=No pude crear base de datos
newdb_edb=Nombre de base de datos inv醠ido o sin poner
newdb_ecannot=No est醩 autorizado a crear bases de datos
newdb_epath=Trayectoria de base de datos sin poner

user_title=Usuarios de PostgreSQL
user_ecannot=No est醩 autorizado a editar usuarios
user_name=Nombre de usuario
user_db=縋uedo crear bases de datos?
user_other=縋uedo crear usuarios?
user_until=V醠ido hasta
user_add=Crear un nuevo usuario
user_forever=Para siempre
user_pass=縍equiere clave de acceso?
user_edit=Editar Usuario
user_create=Crear Usuario
user_return=lista de usuarios
user_header=Detalles de usuario de PostgreSQL
user_passwd=Clave de acceso
user_none=Ninguna
user_err=No pude salvar usuario
user_epass=Clave de acceso inv醠ida o sin poner
user_ename=Nombre de usuario inv醠ido o sin poner

host_ecannot=No est醩 autorizado a editar m醧uinas autorizadas
host_title=M醧uinas Autorizadas
host_local=Conexi髇 local
host_address=Direcci髇 de m醧uina
host_db=Base de datos
host_auth=Modo de autenticaci髇
host_any=Cualquier m醧uina de red
host_all=Todas las bases de datos
host_same=Igual al nombre de usuario
host_add=Crear una nueva m醧uina autorizada
host_ident=Revisar servidor de <tt>identificaci髇</tt> en m醧uina
host_trust=No se requiere autenticaci髇
host_reject=Rechazar conexi髇
host_password=Clave de acceso de texto
host_crypt=Clave de acceso encriptada
host_krb4=Kerberos V4
host_krb5=Kerberos V5
host_passwordarg=Usar archivo de clave de acceso
host_identarg=Usar mapa de usuario
host_create=Crear M醧uina Autorizada
host_edit=Editar M醧uina Autorizada
host_single=M醧uina 鷑ica
host_network=Red
host_netmask=M醩cara de red
host_return=lista de acceso a m醧uina
host_err=No pude salvar m醧uina autorizada
host_eident=Mapa de usuario inv醠ido o sin poner
host_epassword=Archivo de claves de acceso inv醠ido o sin poner
host_enetmask=M醩cara de red inv醠ida o sin poner
host_enetwork=Red inv醠ida o sin poner
host_ehost=Direcci髇 IP de m醧uina inv醠ida o sin poner

grant_title=Privilegios garantizados
grant_tvi=Objeto
grant_type=Tipo
grant_db=Base de Datos
grant_public=Todo el mundo
grant_group=Grupo $1
grant_add=A馻dir garant韆 en base de datos:
grant_return=lista de privilegios
grant_ecannot=No est醩 autorizado a editar privilegios
grant_create=Crear Garant韆
grant_edit=Editar Garant韆
grant_header=Privilegios garantizados a usuarios
grant_to=Garantizar privilegios sobre
grant_table=Tabla
grant_view=Vista o 韓dice
grant_users=Garantizar privilegios a
grant_user=Usuario
grant_what=Privilegios
grant_r=Tabla
grant_v=Vista
grant_i=蚽dice
grant_S=Secuencia
grant_none=No existen tablas, vistas, secuencias o 韓dices a los que garantizarles privilegios.

group_title=Grupos de PostgreSQL
group_ecannot=No est醩 autorizado a editar grupos
group_name=Nombre de grupo
group_id=ID de Grupo
group_mems=Miembros
group_add=Crear un nuevo grupo
group_edit=Editar Grupo
group_create=Crear Grupo
group_header=Detalles de grupo de PostgreSQL
group_return=lista de grupos
group_err=No pude salvar grupo
group_ename=Nombre de grupo inv醠ido o sin poner
group_egid=ID de grupo inv醠ida o sin poner
group_etaken=El nombre de grupo ya est en uso
group_none=No existen actu醠mente grupos de PostgreSQL

esql=SQL $1 fall: $2

log_start=Arrancado servidor de PostgreSQL
log_stop=parado servidor de PostgreSQL
log_db_create=Creada base de datos $1
log_db_delete=Eliminada base de datos $1
log_table_create=Creada tabla $1 en base de datos $2
log_table_delete=Eliminada tabla $1 de la base de datos $2
log_field_create=A馻dido campo $1 $3 a $2 en base de datos $3
log_field_modify=Modificado campo $1 $4 en $2 en base de datos $3
log_field_delete=Borrado campo $1 de $2 en base de datos $3
log_data_create=A馻dida fila a tabla $2 en base de datos $3
log_data_modify=Modificadas $1 filas en tabla $2 en base de datos $3
log_data_delete=Borradas $1 filas de la tabla $2 en base de datos $3
log_exec=Ejecutado SQL en base de datos $1
log_exec_l=Ejecutado comando SQL $2 en base de datos $1
log_create_user=Creado usuario $1
log_delete_user=Borrado usuario $1
log_modify_user=Modificado usuario $1
log_create_group=Creado grupo $1
log_delete_group=Borrado grupo $1
log_modify_group=Modificado grupo $1
log_create_local=Creada conexi髇 local autorizada
log_modify_local=Modificada conexi髇 local autorizada
log_delete_local=Borrada conexi髇 local autorizada
log_create_all=Creada m醧uina autorizada a cualquiera
log_modify_all=Modificada m醧uina autorizada a cualquiera
log_delete_all=Borrada m醧uina autorizada a cualquiera
log_create_hba=Creada m醧uina autorizada $1
log_modify_hba=Modificada m醧uina autorizada $1
log_delete_hba=Borrada m醧uina autorizada $1
log_grant=Garantizados privilegios sobre $1 en base de datos $2

acl_dbs=Bases de datos que este usuario puede gestionar
acl_dall=Todas las bases de datos
acl_dsel=Las seleccionadas...
acl_create=縋uede crear nuevas bases de datos?
acl_delete=縋uede eliminar bases de datos?
acl_stop=縋uede parar y arrancar el servidor PostgreSQL?
acl_users=縋uede editar usuarios, grupos y garant韆s?

 07070100039a0b000081a40000000000000002000000013ac038b700002689000000200000000000000000000000000000001900000003reloc/postgresql/lang/pl  index_title=Serwer baz danych PostgreSQL
index_notrun=W&nbsp;systemie nie dzia砤 PostgreSQL - nie mo縩a pobra listy baz danych.
index_start=Uruchom serwer PostgreSQL
index_startmsg=Naci秐ij ten przycisk, aby uruchomi serwer baz danych PostgreSQL w&nbsp;Twoim systemie poleceniem <br>$1<br>. Ten modu Webmina nie b阣zie potrafi zarz眃za bazammi danych dop髃i nie uruchomisz serwera.
index_nopass=Webmin musi zna Tw骿 administracyjny login i&nbsp;has硂, aby zarz眃za bazami danych. Wprowad poni縠j nazw u縴tkownika administruj眂ego oraz jego has硂.
index_ltitle=Login dla PostgreSQLa
index_login=Login
index_pass=Has硂
index_clear=Wyczy舵
index_stop=Zatrzymaj serwer PostgreSQL
index_stopmsg=Naci秐ij ten przycisk, aby zatrzyma serwer baz danych PostgreSQL w&nbsp;Twoim systemie. Uniemo縧iwi to wszystkim u縴tkownikom i&nbsp;programom, w潮cznie z&nbsp;niniejszym modu砮m Webmina, dost阷 do baz danych.
index_dbs=Bazy danych PostgreSQLa
index_add=Utw髍z now baz danych
index_users=Opcje u縴tkownika
index_return=listy baz danych
index_esql=Nie znaleziono w&nbsp;systemie programu klienta PostgreSQLa $1. By mo縠 nie zainstalowano PostgreSQLa lub Twoja <a href='$2'>konfiguracja modu硊</a> jest nieprawid硂wa.
index_ehba=Nie znaleziono w&nbsp;systemie pliku konfiguracyjnego host體 PostgreSQLa $1. By mo縠 nie zainicjalizowano PostgreSQLa lub Twoja <a href='$2'>konfiguracja modu硊</a> jest nieprawid硂wa.
index_eversion=Baza danych PostgreSQLa w&nbsp;systemie ma wersj $1, a&nbsp;Webmin obs硊guje jedynie wersje $2 i&nbsp;wy縮ze.

login_err=Nie uda硂 si zalogowa
login_ecannot=Nie masz uprawnie do konfigurowania logowania do bazy danych
login_elogin=Nie podano nazwy administratora bazy
login_epass=Niepoprawna nazwa administratora bazy lub jego has硂

dbase_title=Zmie baz danych
dbase_tables=Tabele bazy danych
dbase_add=Utw髍z now tabel
dbase_drop=Usu baz danych
dbase_exec=Wykonaj SQL
dbase_none=Baza danych nie zawiera 縜dnej tabeli.
dbase_fields=Pola:
dbase_return=listy tabel
dbase_ecannot=Nie masz uprawnie do zmiany tej bazy danych

table_title=Zmie tabel
table_title2=Utw髍z tabel
table_opts=Opcje p髄
table_header=Tabela $1 w&nbsp;bazie danych $2
table_field=Nazwa pola
table_type=Typ
table_null=Dozwolony brak warto禼i?
table_arr=Tablica?
table_none=Brak
table_add=Dodaj pole typu:
table_return=listy p髄
table_data=Poka dane
table_drop=Usu tabel
table_name=Nazwa tabeli
table_initial=Pola inicjalne
table_header2=Opcje nowych tabel
table_err=Nie uda硂 si utworzy tabeli
table_ename=Nie podana lub niepoprawna nazwa tabeli
table_efield='$1' nie jest poprawn nazw pola
table_etype=Nie podano typu pola $1
table_esize=Nie podano rozmiaru pola $1
table_enone=Nie podano pol inicjalnych

field_title1=Dodaj pole
field_title2=Zmie pole
field_in=W&nbsp;tabeli $1 bazy danych $2
field_header=Prametry pola
field_name=Nazwa pola
field_type=Typ danych
field_size=Rozmiar pola
field_none=Brak
field_null=Dozwolony brak warto禼i?
field_arr=Pole tablicowe?
field_key=Klucz g丑wny?
field_uniq=Unikalny?
field_err=Nie uda硂 si zachowa pola
field_esize='$1' nie jest poprawnym rozmiarem pola
field_eenum=Nie wprowadzono warto禼i wyliczeniowej
field_efield='$1' nie jest poprawn nazw pola
field_ekey=Pola dopuszczaj眂e brak warto禼i nie mog by cz甓ci klucza g丑wnego

exec_title=Wykonaj SQL
exec_header=Wprowad polecenie SQL-owe, kt髍e ma by wykonane w bazie danych $1 ..
exec_exec=Wykonaj
exec_err=Nie uda硂 si wykona SQL
exec_out=Wynik polecenia SQL $1 ..
exec_none=Polecenie nic nie zwr骳i硂

stop_err=Nie uda硂 si zatrzyma serwera baz danych
stop_epidfile=Nie uda硂 si otworzy pliku z&nbsp;numerem PID $1
stop_ekill=Nie uda硂 si zabi procesu $1&nbsp;: $2
start_err=Nie uda硂 si uruchomi serwera baz danych

ddrop_err=Nie uda硂 si usun辨 bazy danych
ddrop_title=Usu baz danych
ddrop_rusure=Czy jeste pewien, 縠 chcesz usun辨 baz danych $1&nbsp;? Zostanie skasowanych $2 tabel zawieraj眂ych $3 wierszy z&nbsp;danymi.
ddrop_mysql=Prawdopodobnie uniemo縧iwi to dalsze korzystanie z&nbsp;serwera PostgreSQL, gdy jest to podstawowa baza danych!
ddrop_ok=Usu baz danych

tdrop_err=Nie uda硂 si usun辨 tabeli
tdrop_title=Usu tabel
tdrop_rusure=Czy jeste pewien, 縠 chcesz usun辨 tabel $1 z&nbsp;bazy danych $2&nbsp;? Zostanie skasowanych $3 wierszy z&nbsp;danymi.
tdrop_ok=Usu tabel

view_title=Dane w tabeli
view_pos=Wiersze tabeli $3 od $1 do $2
view_none=Ta tabela nie zawiera danych
view_edit=Modyfikuj wybrane wiersze
view_new=Dodaj wiersz
view_delete=Skasuj wybrane wiersze
view_nokey=Danych w&nbsp;tej tabeli nie mo縩a modyfikowa, gdy nie zawiera ona klucza g丑wnego.
view_all=Zaznacz wszystkie
view_invert=Odwr箧 zaznaczenie

newdb_title=Utw髍z baz danych
newdb_header=Opcje nowej bazy danych
newdb_db=Nazwa bazy danych
newdb_path=ie縦a do pliku bazy danych
newdb_err=Nie uda硂 si utworzy bazy danych
newdb_edb=Nie podana lub niepoprawna nazwa bazy danych
newdb_ecannot=Nie masz uprawnie do tworzenia baz danych
newdb_epath=Nie podano 禼ie縦i do bazy danych

user_title=U縴tkownicy PostgreSQLa
user_ecannot=Nie masz uprawnie do zmiany u縴tkownik體
user_name=Nazwa u縴tkownika
user_db=Mo縠 tworzy bazy danych?
user_other=Mo縠 tworzy u縴tkownik體?
user_until=Wa縩y do
user_add=Utw髍z nowego u縴tkownika
user_forever=Zawsze
user_pass=Wymaga has砤?
user_edit=Zmie u縴tkownika
user_create=Utw髍z u縴tkownika
user_return=listy u縴tkownik體
user_header=Dane u縴tkownika PostgreSQLa
user_passwd=Has硂
user_none=Brak
user_err=Nie uda硂 si zachowa u縴tkownika
user_epass=Nie podane lub niepoprawne has硂
user_ename=Nie podana lub niepoprawna nazwa u縴tkownika

host_ecannot=Nie masz uprawnie do zmiany dozwolonych host體
host_title=Dozwolone hosty
host_local=Lokalne po潮czenie
host_address=Adres hosta
host_db=Baza danych
host_auth=Tryb autoryzacji
host_any=Dowolny host w&nbsp;sieci
host_all=Wszystkie bazy danych
host_same=Takie samo jak nazwa u縴tkownika
host_add=Utw髍z nowy dozwolony host
host_ident=Sprawdzaj serwer <tt>ident</tt>a na ho禼ie
host_trust=Autoryzacja nie wymagana
host_reject=Odrzu po潮czenie
host_password=Has硂 otwartym tekstem
host_crypt=Has硂 zaszyfrowane
host_krb4=V4 Kerberosa
host_krb5=V5 Kerberosa
host_passwordarg=Korzystaj z&nbsp;pliku hase
host_identarg=Stosuj odwzorowanie u縴tkownik體
host_create=Utw髍z dozwolony host
host_edit=Zmie dozwolony host
host_single=Pojedy馽zy host
host_network=Sie
host_netmask=Maska sieci
host_return=listy dost阷u do host體
host_err=Nie uda硂 si zachowa dozwolonego hosta
host_eident=Nie podane lub niepoprawne odwzorowanie u縴tkownik體
host_epassword=Nie podany lub niepoprawny plik hase
host_enetmask=Nie podana lub niepoprawna maska sieci
host_enetwork=Nie podana lub niepoprawna sie
host_ehost=Nie podany lub niepoprawny adres IP hosta

grant_title=Nadane uprawnienia
grant_tvi=Obiekt
grant_type=Typ
grant_db=Baza danych
grant_public=Wszyscy
grant_group=Grupa $1
grant_add=Dodaj prawo dost阷u w&nbap;bazie danych&nbsp;:
grant_return=listy uprawnie
grant_ecannot=Nie masz prawa do zmiany uprawnie
grant_create=Nadaj prawo dost阷u
grant_edit=Zmie prawo dost阷u
grant_header=Uprawnienia nadane u縴tkownikom
grant_to=Nadaj uprawnienia do
grant_table=Tabeli
grant_view=Widoku lub indeksu
grant_users=Nadaj uprawnienia dla
grant_user=U縴tkownika
grant_what=Uprawnienia
grant_r=Tabela
grant_v=Widok
grant_i=Indeks
grant_S=Ci眊
grant_none=Brak tabel, widok體, ci眊體 i&nbsp;indeks體, w&nbsp;kt髍ych mo縩a nada uprawnienia.

group_title=Grupy PostgreSQLa
group_ecannot=Nie masz uprawnie do zmiany grup
group_name=Nazwa grupy
group_id=Nr ID grupy
group_mems=Cz硂nkowie
group_add=Utw髍z now grup
group_edit=Zmie grup
group_create=Utw髍z grup
group_header=Dane grupy PostgreSQLa
group_return=listy grup
group_err=Nie uda硂 si zachowa grupy
group_ename=Nie podana lub niepoprawna nazwa grupy
group_egid=Nie podany lub niepoprawny nr ID grupy
group_etaken=Ta nazwa grupy jest ju u縴wana
group_none=Nie istnieje 縜dna grupa PostgreSQLa

esql=Wykonanie SQL $1 nie powiod硂 si&nbsp;: $2

log_start=Uruchomiono serwer PostgreSQL
log_stop=Zatrzymano serwer PostgreSQL
log_db_create=Utworzono baz danych $1
log_db_delete=Usuni阾o baz danych $1
log_table_create=Utworzono tabel $1 w&nbsp;bazie danych $2
log_table_delete=Usuni阾o tabel $1 z&nbsp;bazy danych $2
log_field_create=Dodano pole $1 $4 do $2 w&nbsp;bazie danych $3
log_field_modify=Zmieniono pole $1 $4 w&nbsp;$2 w&nbsp;bazie danych $3
log_field_delete=Usuni阾o pole $1 z&nbsp;$2 w&nbsp;bazie danych $3
log_data_create=Dodano wiersz do tabeli $2 w&nbsp;bazie danych $3
log_data_modify=Zmieniono $1 wierszy w&nbsp;tabeli $2 w&nbsp;bazie danych $3
log_data_delete=Usuni阾o $1 wierszy z&nbsp;tabeli $2 w&nbsp;bazie danych $3
log_exec=Wykonano SQL w&nbsp;bazie danych $1
log_exec_l=Wykonano polecenie SQL $2 w&nbsp;bazie danych $1
log_create_user=Utworzono u縴tkownika $1
log_delete_user=Usuni阾o u縴tkownika $1
log_modify_user=Zmieniono u縴tkownika $1
log_create_group=Utworzono grupe $1
log_delete_group=Usuni阾o grup $1
log_modify_group=Zmieniono grup $1
log_create_local=Utworzono dozwolone po潮czenie lokalne
log_modify_local=Zmieniono dozwolone po潮czenie lokalne
log_delete_local=Usuni阾o dozwolone po潮czenie lokalne
log_create_all=Utworzono pewien dozwolony host
log_modify_all=Zmieniono pewien dozwolony host
log_delete_all=Usuni阾o pewien dozwolony host
log_create_hba=Utworzono dozwolony host $1
log_modify_hba=Zmieniono dozwolony host $1
log_delete_hba=Usuni阾o dozwolony host $1
log_grant=Zapewniono uprawnienia do $1 w&nbsp;bazie danych $2

acl_dbs=Bazy danych, kt髍ymi ten u縴tkownik mo縠 zarz眃za
acl_dall=Wszystkie
acl_dsel=Wybrane..
acl_create=Mo縠 tworzy nowe bazy danych?
acl_delete=Mo縠 usuwa bazy danych?
acl_stop=Mo縠 zatrzymywa i&nbsp;uruchamia serwer PostgreSQL?
acl_users=Mo縠 zmienia u縴tkownik體, grupy i&nbsp;prawa dost阷u?
   07070100039a0c000081a40000000000000002000000013ac038b7000024d4000000200000000000000000000000000000001900000003reloc/postgresql/lang/sv  index_title=PostgreSQL-databasserver
index_notrun=PostgreSQL k鰎s just nu inte p systemet - databaslistan kunde inte h鋗tas.
index_start=Starta PostgreSQL-server
index_startmsg=Tryck p denna knapp f鰎 att starta PostgreSQL-databasservern p ditt system med kommandot <br>$1<br>Denna Webmin-modul kan inte hantera databasen f鰎r鋘 den har startats.
index_nopass=Webmin beh鰒er f ditt PostgreSQL-administrat鰎skonto och -l鰏enord f鰎 att kunna hantera databasen. Skriv in administrat鰎skonto och -l鰏enord nedan.
index_ltitle=PostgreSQL-inloggning
index_login=Kontonamn
index_pass=L鰏enord
index_clear=Rensa
index_stop=Stanna PostgreSQL-servern
index_stopmsg=Tryck p denna knapp f鰎 att stanna PostgreSQL-databasservern p ditt system. Detta hindrar anv鋘dare och program i systemet fr錸 att komma 錿 databasen inklusive denna Webmin-modul.
index_dbs=PostgreSQL-databaser
index_add=Skapa en ny databas
index_users=Anv鋘darinst鋖lningar
index_return=databaslista
index_esql=Klientprogrammet $1 till PostgreSQL kunde inte hittas p systemet. PostgreSQL kanske inte har installerats, eller ocks 鋜 dina <a href='$2'>modulinst鋖lningar</a> felaktiga.
index_ehba=Datorkonfigurationsfilen $1 f鰎 PostgreSQL kunde inte hittas p systemet. PostgreSQL kanske inte har initialiserats, eller ocks 鋜 dina <a href='$2'>modulinst鋖lningar</a> felaktiga.
index_eversion=PostgreSQL-databasen p ditt system 鋜 version $1, men Webmin st鰀jer bara version $2 och h鰃re.

login_err=Inloggningen misslyckades
login_ecannot=Du f錼 inte konfigurera databasinloggningen
login_elogin=Du har inte angivit n錱ot administrat鰎skonto
login_epass=Felaktigt administrat鰎skonto eller -l鰏enord

dbase_title=膎dra databas
dbase_tables=Databastabeller
dbase_add=L鋑g till en tabell
dbase_drop=Ta bort databas
dbase_exec=Utf鰎 SQL
dbase_none=Databasen har inga tabeller.
dbase_fields=F鋖t:
dbase_return=tabellista
dbase_ecannot=Du f錼 inte 鋘dra i denna databas

table_title=膎dra tabell
table_title2=L鋑g till tabell
table_opts=F鋖tinst鋖lningar
table_header=Tabell $1 i databas $2
table_field=F鋖tnamn
table_type=Typ
table_null=膔 tomma f鋖t till錿na?
table_arr=Array?
table_none=Ingen
table_add=L鋑g till f鋖t av typ:
table_return=f鋖tlista
table_data=Visa data
table_drop=Ta bort tabell
table_name=Tabellnamn
table_initial=Startf鋖t
table_header2=Inst鋖lningar f鰎 ny tabell
table_err=Det gick inte att l鋑ga till tabellen
table_ename=Tabellnamn saknas eller 鋜 ogiltigt
table_efield='$1' 鋜 inte ett giltigt f鋖tnamn
table_etype=Du har inte angivit n錱on typ f鰎 f鋖tet $1
table_esize=Du har inte angivit n錱on typstorlek f鰎 f鋖tet $1
table_enone=Du har inte angivit n錱ot startf鋖t

field_title1=L鋑g till f鋖t
field_title2=膎dra f鋖t
field_in=I tabell $1 i databas $2
field_header=F鋖tparametrar
field_name=F鋖tnamn
field_type=Datatyp
field_size=Typl鋘gd
field_none=Ingen
field_null=Till錿a tomma f鋖t?
field_arr=Arrayf鋖t?
field_key=Prim鋜 nyckel?
field_uniq=Unikt?
field_err=Det gick inte att spara f鋖tet
field_esize='$1' 鋜 inte en giltig f鋖tstorlek
field_eenum=Du har inte angivit n錱ra uppr鋕ningsbara v鋜den
field_efield='$1' 鋜 inte ett giltigt f鋖tnamn
field_ekey=F鋖t som f錼 inneh錶la tomma v鋜den f錼 inte vara en del av den prim鋜a nyckeln.

exec_title=Utf鰎a SQL-kommandon
exec_header=Skriv in det SQL-kommando som ska utf鰎as p databas $1 ...
exec_exec=Utf鰎
exec_err=Det gick inte att utf鰎a SQL-kommandot
exec_out=Utdata fr錸 SQL-kommandot $1 ...
exec_none=Inga data fr錸 k鰎ningen

stop_err=Det gick inte att stanna databasservern
stop_epidfile=Det gick inte att 鰌pna PID-filen $1
stop_ekill=Det gick inte att sl ihj鋖 processen $1: $2
start_err=Det gick inte att starta databasservern

ddrop_err=Det gick inte att ta bort databasen
ddrop_title=Ta bort databas
ddrop_rusure=Vill du verkligen ta bort databasen $1? $2 tabeller med $3 rader med data kommer att raderas
ddrop_mysql=MySQL-servern kommer troligen att bli oanv鋘dbar om du tar bort denna databas, eftersom den 鋜 huvuddatabasen.
ddrop_ok=Ta bort databasen

tdrop_err=Det gick inte att ta bort tabellen
tdrop_title=Ta bort tabell
tdrop_rusure=Vill du verkligen ta bort tabellen $1 i databasen $2? $3 rader med data kommer att raderas.
tdrop_ok=Ta bort tabell

view_title=Tabelldata
view_pos=Rad $1 till $2 av $3
view_none=Denna tabell inneh錶ler inga data
view_edit=膎dra angivna rader
view_new=L鋑g till rad
view_delete=Ta bort angivna rader
view_nokey=Datauppgifter i denna tabell kan inte 鋘dras eftersom det inte finns n錱on prim鋜 nyckel.
view_all=Visa alla
view_invert=Visa uteslutna

newdb_title=Ny databas
newdb_header=Inst鋖lningar f鰎 ny databas
newdb_db=Databasens namn
newdb_path=S鰇v鋑 till databasen
newdb_err=Det gick inte att skapa databasen
newdb_edb=Databasens namn saknas eller 鋜 felaktigt
newdb_ecannot=Du f錼 inte skapa databaser
newdb_epath=Du har inte angivit n錱on s鰇v鋑 till databasen

user_title=PostgreSQL-anv鋘dare
user_ecannot=Du f錼 inte 鋘dra anv鋘dare
user_name=Anv鋘darnamn
user_db=Kunna skapa databaser?
user_other=Kunna l鋑ga till anv鋘dare?
user_until=Giltig till
user_add=L鋑g till anv鋘dare
user_forever=Alltid
user_pass=Kr鋠s l鰏enord?
user_edit=膎dra anv鋘dare
user_create=L鋑g till anv鋘dare
user_return=anv鋘darlista
user_header=Uppgifter om PostgreSQL-anv鋘dare
user_passwd=L鰏enord
user_none=Inget
user_err=Det gick inte att spara anv鋘daren
user_epass=L鰏enord saknas eller 鋜 ogiltigt
user_ename=Anv鋘darnamn saknas eller 鋜 ogiltigt

host_ecannot=Du f錼 inte 鋘dra till錿na datorer
host_title=Till錿na datorer
host_local=Lokal uppkoppling
host_address=Datoradress
host_db=Databas
host_auth=Autentiseringsmod
host_any=Valfri dator i n鋞verket
host_all=Alla databaser
host_same=Samma som anv鋘darnamnet
host_add=L鋑g till en till錿en dator
host_ident=Kontrollera <tt>ident</tt>-servern p datorn
host_trust=Ingen autentisering kr鋠s
host_reject=Sp鋜ra f鰎bindelsen
host_password=L鰏enord i klartext
host_crypt=Krypterat l鰏enord
host_krb4=Kerberos V4
host_krb5=Kerberos V5
host_passwordarg=Anv鋘d l鰏enordsfil
host_identarg=Anv鋘d anv鋘daromskrivning
host_create=L鋑g till till錿en dator
host_edit=膎dra till錿en dator
host_single=Enskild dator
host_network=N鋞verk
host_netmask=N鋞mask
host_return=datorlista
host_err=Det gick inte att spara till錿na datorer
host_eident=Anv鋘daromskrivning saknas eller 鋜 ogiltig
host_epassword=L鰏enordsfil saknas eller 鋜 ogiltig
host_enetmask=N鋞mask saknas eller 鋜 ogiltig
host_enetwork=N鋞verk saknas eller 鋜 ogiltigt
host_ehost=IP-adress f鰎 datorn saknas eller 鋜 ogiltig

grant_title=Utdelade r鋞tigheter
grant_tvi=Objekt
grant_type=Typ
grant_db=Databas
grant_public=Alla
grant_group=Grupp $1
grant_add=Dela ut r鋞tigheter till databas:
grant_return=r鋞tighetslista
grant_ecannot=Du f錼 inte 鋘dra r鋞tigheter
grant_create=L鋑g till r鋞tighet
grant_edit=膎dra r鋞tighet
grant_header=R鋞tigheter utdelade till anv鋘dare
grant_to=Dela ut r鋞tigheter f鰎
grant_table=Tabell
grant_view=Vy eller index
grant_users=Dela ut r鋞tigheter till
grant_user=Anv鋘dare
grant_what=R鋞tigheter
grant_r=Tabell
grant_v=Vy
grant_i=Index
grant_S=Sekvens
grant_none=Det finns inga tabeller, vyer, sekvenser eller index att dela ut r鋞tigheter f鰎.

group_title=PostgreSQL-grupper
group_ecannot=Du f錼 inte 鋘dra grupper
group_name=Gruppnamn
group_id=Grupp-ID
group_mems=Medlemmar
group_add=L鋑g till grupp
group_edit=膎dra grupp
group_create=L鋑g till grupp
group_header=Uppgifter om PostgreSQL-grupp
group_return=grupplista
group_err=Det gick inte att spara gruppen
group_ename=Gruppens namn saknas eller 鋜 ogiltigt
group_egid=Grupp-ID saknas eller 鋜 ogiltigt
group_etaken=Gruppnamnet anv鋘ds redan
group_none=Det finns f鰎 n鋜varande inga PostgreSQL-grupper

esql=SQL $1 gick fel: $2

log_start=Startade PostgreSQL-server
log_stop=Stannade PostgreSQL-server
log_db_create=Lade till databasen $1
log_db_delete=Tog bort databasen $1
log_table_create=Lade till tabellen $1 i databasen $2
log_table_delete=Tog bort tabellen $1 fr錸 databasen $2
log_field_create=Lade till f鋖t $1 $4 till $2 i databasen $3
log_field_modify=Modifierade f鋖t $1 $4 i $2 i databasen $3
log_field_delete=Tog bort f鋖t $1 fr錸 $2 i databasen $3
log_data_create=Lade till en rad till tabell $2 i databasen $3
log_data_modify=Modifierade $1 rader i tabell $2 i databasen $3
log_data_delete=Tog bort $1 rader fr錸 tabell $2 i databasen $3
log_exec=K鰎de SQL i databasen $1
log_exec_l=Utf鰎de SQL-kommando $2 i databasen $1
log_create_user=Lade till anv鋘daren $1
log_delete_user=Tog bort anv鋘daren $1
log_modify_user=Modifierade anv鋘daren $1
log_create_group=Lade till gruppen $1
log_delete_group=Tog bort gruppen $1
log_modify_group=Modifierade gruppen $1
log_create_local=Lade till till錿en lokal uppkoppling
log_modify_local=Modifierade till錿en lokal uppkoppling
log_delete_local=Tog bort till錿en lokal uppkoppling
log_create_all=Lade till en till錿en dator
log_modify_all=Modifierade en till錿en dator
log_delete_all=Tog bort en till錿en dator
log_create_hba=Lade till till錿en dator $1
log_modify_hba=Modifierade till錿en dator $1
log_delete_hba=Tog bort till錿en dator $1
log_grant=Delade ut r鋞tigheter f鰎 $1 i databasen $2

acl_dbs=Databaser som denna anv鋘dare f錼 administrera
acl_dall=Alla databaser
acl_dsel=Angivna
acl_create=Kunna skapa nya databaser?
acl_delete=Kunna ta bort databaser?
acl_stop=Kunna stanna och starta PostgreSQL-servern?
acl_users=Kunna 鋘dra anv鋘dare, grupper och r鋞tigheter?

07070100039a0d000081a40000000000000002000000013ac038b700001aaf000000200000000000000000000000000000001c00000003reloc/postgresql/lang/zh_CN   index_title=PostgreSQL数据库服务器
index_notrun=在你的系统上没有运行 PostgreSQL -不能检索数据库列表
index_start=启动PostgreSQL服务器
index_startmsg=点击这个按钮，使用命令$1启动在你系统上的PostgreSQL数据库服务器，数据库启动后，这个webmin模块才能够管理数据库.
index_nopass=为了管理你的数据库，webmin需要知道你的PostgreSQL管理登陆以及口令。请在下面输入你的管理用户名(通常是<tt>root</tt>) 和口令.
 
index_ltitle=PostgreSQL登陆
index_login=登陆
index_pass=口令
index_clear=清除
index_stop=停止PostgreSQL服务器
index_stopmsg=点击这个按钮，停止在你系统上的PostgreSQL数据库服务器。这将会阻止任何用户或程序访问数据库，包括这个webmin模块.
index_dbs=PostgreSQL数据库
index_add=创建一个新的数据库
index_users=用户选项
index_return=数据库列表
index_esql=在你的系统中没有发现PostgreSQL，也许没有安装，或者你的模块配置不正确.     
index_ehba=PostgreSQL的配置文件没有找到。或许PostgreSQL没有安装或者模块配置不正确
index_eversion=在你系统的PostgreSQL数据库是版本$1，但是你的系统只是支持版本$2
login_err=登陆失败
login_ecannot=你没有设置数据库登陆的权限
login_elogin=丢失管理登陆
login_epass=不正确的管理用户名或者口令

dbase_title=编辑数据库
dbase_tables=数据库表
dbase_add=创建一个新的数据表
dbase_drop=删除数据库
dbase_exec=执行SQL语句 
dbase_none=这个数据库没有表.
dbase_fields=域:
dbase_return=数据表列表
dbase_ecannot=你没有编辑数据库的权限
 
table_title=编辑数据表
table_title2=创建新表
table_opts=域选项
table_header=数据库$2中的表$1
table_field=域名
table_type=类型
table_null=允许为空？
table_arr=数组？
table_none=无
table_add=增加域类型:
table_return=域列表
table_data=显示数据
table_drop=删除表
table_name=表名字
table_initial=初始域 
table_header2=新表选项
table_err=创建表失败
table_ename=丢失或者无效域名
table_efield=$1不是有效域名
table_etype=丢失域$1的类型
table_esize=丢失域$1的类型长度
table_enone=没有初始域输入

field_title1=增加域
field_title2=修改域
field_in=在数据库$2的表$1中
field_header=域参数
field_name=域名
field_type=数据类型
field_size=类型宽度
field_none=无
field_null=允许为空？
field_arr=数组域
field_key=主键
field_uniq=唯一
field_err=保存域失败
field_esize='$1不是有效域尺寸
field_eenum=没有列出输入值
field_efield=$1不是一个有效的域名
field_ekey=允许为空的域不能是主键的一部分
exec_title=执行SQL
exec_header=输入SQL命令，在数据库$1上执行..
exec_exec=执行
exec_err=SQL 执行SQL失败
exec_out=SQL命令$1的输出..
exec_none=没有数据返回

stop_err=关闭数据库服务器失败
stop_epidfile=打开进程标识文件$1失败
stop_ekill=关闭进程$1 : $2失败
start_err=启动一个数据库服务器失败

ddrop_err=删除数据库失败
ddrop_title=删除数据库
ddrop_rusure=你确定删除数据库$1？包含$3行数据的表$2将被删除
ddrop_mysql=因为这是一个主数据库，删除它也许可以让你的MySQL服务器不能使用
ddrop_ok=删除数据库

tdrop_err=删除数据表失败
tdrop_title=删除数据表
tdrop_rusure=你确定想要删除在数据库$2中的数据表 $1吗？ $3行数据将被删除。
tdrop_ok=删除数据表

view_title=数据表
view_pos=$3的$1行到$2行
view_none=这个表没有数据
view_edit=编辑选定的行
view_new=增加行
view_delete=删除选定的行
view_nokey=在这个表中的数据不能被编辑，因为没有主键.
view_all=全选
view_invert=反选

newdb_title=创建数据库
newdb_header=新数据库选项
newdb_db=数据库名
newdb_path=数据库文件路径
newdb_err=创建数据库失败
newdb_edb=丢失或者无效数据库名
newdb_ecannot=你没有权利创建数据库
newdb_epath=丢失数据库路径

user_title=PostgreSQL用户
user_ecannot=你无编辑用户的权限
user_name=用户名
user_db=能创建数据库?
user_other=能创建用户？
user_until=有效，直到
user_add=创建一个用户
user_forever=永远
user_pass=需要口令?
user_edit=编辑用户
user_create=创建用户
user_return=用户列表
user_header=PostgreSQL用户细节
user_passwd=口令
user_none=无
user_err=保存用户失败
user_epass=丢失或者无效口令
user_ename=丢失或者无效用户名

host_ecannot=你不能编辑允许的主机
host_title=允许的主机
host_local=本地连接
host_address=主机地址
host_db=数据库
host_auth=认证模式
host_any=任何网络主机
host_all=所有的数据库
host_same=和用户名一样
host_add=创建一个新的允许主机
host_ident=检查在主机上的服务器<tt>标志</tt>
host_trust=没有认证需要
host_reject=拒绝连接
host_password=明文口令
host_crypt=加密口令
host_krb4=Kerberos 版本4
host_krb5=kerberos 版本5
host_passwordarg=用户口令文件
host_identarg=使用用户映射
host_create=创建允许主机
host_edit=编辑允许主机
host_single=单主机
host_network=网络
host_netmask=网络掩码
host_return=主机访问列表
host_err=存放允许主机失败
host_eident=丢失或者无效用户映射
host_epassword=丢失或者无效口令文件
host_enetmask=丢失或者无效网络掩码
host_enetwork=丢失或者无效网络
host_ehost=丢失或者无效主机IP地址

grant_title=授权优先级
grant_tvi=对象
grant_type=类型
grant_db=数据库
grant_public=每个人
grant_group=组 $1
grant_add=增加在数据库的授权:
grant_return=优先级列表
grant_ecannot=你不允许编辑优先级列表
grant_create=创建授权
grant_edit=编辑授权
grant_header=授权优先级到用户
grant_to=授权优先权在
grant_table=表
grant_view=视图或索引
grant_users=授权优先权到
grant_user=用户
grant_what=优先权
grant_r=表
grant_v=视图
grant_i=索引
grant_S=序列
grant_none=没有授予优先权的表，视图，序列或者索引存在.

group_title=PostgreSQ组
group_ecannot=你不允许编辑组
group_name=组名
group_id=组标识
group_mems=成员
group_add=创建新组
group_edit=编辑组
group_create=创建一个组
group_header=PostgreSQ组细节
group_return=组列表
group_err=保存组失败
group_ename=丢失或者无效组标识
group_egid=丢失或者无效组标识
group_etaken=组名已经在存在
group_none=现在没有PostgreSQ组存在

esql=SQL $1 失败:$2

log_start=开始PostgreSQ服务器
log_stop=停止PostgreSQ服务器
log_db_create=创建数据库$1
log_db_delete=删除数据库$1
log_table_create=在数据库$2中创建表$1
log_table_delete=删除数据库$2中的表$1
log_field_create=在数据库$3的$2中增加域$1 $4
log_field_modify=修改数据库$3的$2中的域$1 $4
log_field_delete=删除数据库$3的$2中的域$1
log_data_create=在数据库$3中向表$2中增加行
log_data_modify=修改在数据库$3的表$2中的$1行
log_data_delete=删除在数据库$3的表$2中的$1行
log_exec=执行在数据库$1中的SQL语句
log_exec_l=执行在数据库 $1中的SQL命令$2
log_create_user=创建用户$1

log_delete_user=删除用户$1
log_modify_user=修改用户$1
log_create_group=创建组$1
log_delete_group=删除组 $1
log_modify_group=修改组$1
log_create_local=创建允许的本地连接
log_modify_local=修改允许的本地连接  
log_delete_local=删除允许的本地连接
log_create_all=创建任何允许的主机
log_modify_all=修改任何允许的主机
log_delete_all=删除任何允许的主机
log_create_hba=创建允许的主机$1
log_modify_hba=修改允许的主机$1
log_delete_hba=删除的主机$1
log_grant=授予数据库$2中在$1上的优先权

acl_dbs=这个用户可以管理的数据库
acl_dall=所有数据库
acl_dsel=选择..
acl_create=可以创建新的数据库吗？
acl_delete=能删除数据库？
acl_stop=能停止或者开始PostgrSQL 服务器吗？
acl_users=能编辑用户，组，和授权吗？

 070701000356de000081e40000000000000002000000013ac038b8000006d8000000200000000000000000000000000000002100000003reloc/postgresql/list_grants.cgi  #!/usr/local/bin/perl
# list_grants.cgi
# Display all granted privileges

require './postgresql-lib.pl';
$access{'users'} || &error($text{'grant_ecannot'});
&header($text{'grant_title'}, "", "list_grants");
print "<hr>\n";

@dblist = &list_databases();
foreach $d (@dblist) {
	$t = &execute_sql($d, "select relname,reltype,relkind,relhasrules from pg_class");
	map { $type{$_->[0]} = $_->[2] eq 'r' && $_->[3] eq 't' ? 'v' : $_->[2] } @{$t->{'data'}};

	$s = &execute_sql($d, 'select relname, relacl from pg_class where (relkind = \'r\' OR relkind = \'S\') and relname !~ \'^pg_\' order by relname');
	foreach $g (@{$s->{'data'}}) {
		$type = $type{$g->[0]};
		if (!$doneheader++) {
			print "<table border width=100%>\n";
			print "<tr $tb> <td><b>$text{'grant_tvi'}</b></td> ",
			      "<td><b>$text{'grant_type'}</b></td> ",
			      "<td><b>$text{'grant_db'}</b></td> ",
			      "<td><b>$text{'grant_users'}</b></td> </tr>\n";
			}
		print "<tr $cb>\n";
		print "<td><a href='edit_grant.cgi?db=$d&table=$g->[0]&",
		      "type=$type'>$g->[0]</a></td>\n";
		print "<td>",$text{"grant_$type"}."</td>\n";
		print "<td>$d</td>\n";
		print "<td>\n";
		$g->[1] =~ s/^\{//; $g->[1] =~ s/\}$//;
		@gr = grep { /=\S/ } map { /^"(.*)"$/; $1 } split(/,/, $g->[1]);
		foreach $gr (@gr) {
			print "&nbsp;|&nbsp;" if ($gr ne $gr[0]);
			if ($gr =~ /^=(\S+)/) {
				print $text{'grant_public'};
				}
			elsif ($gr =~ /^group\s+(\S+)=(\S+)/) {
				print &text('grant_group', "<tt>$1</tt>");
				}
			elsif ($gr =~ /^(\S+)=(\S+)$/) {
				print "<tt>$1</tt>";
				}
			}
		print "&nbsp;</td> </tr>\n";
		}
	}
if ($doneheader) {
	print "</table><p>\n";
	}
else {
	print "<b>$text{'grant_none'}</b><p>\n";
	}

print "<hr>\n";
&footer("", $text{'index_return'});

070701000356df000081e40000000000000002000000013ac038b80000046b000000200000000000000000000000000000002100000003reloc/postgresql/list_groups.cgi  #!/usr/local/bin/perl
# list_groups.cgi
# Display all groups in the database

require './postgresql-lib.pl';
$access{'users'} || &error($text{'group_ecannot'});
&header($text{'group_title'}, "", "list_groups");
print "<hr>\n";

$s = &execute_sql($config{'basedb'}, "select * from pg_user");
foreach $u (@{$s->{'data'}}) {
	$uid{$u->[1]} = $u->[0];
	}

$s = &execute_sql($config{'basedb'}, "select * from pg_group");
if (@{$s->{'data'}}) {
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'group_name'}</b></td> ",
	      "<td><b>$text{'group_id'}</b></td> ",
	      "<td><b>$text{'group_mems'}</b></td> </tr>\n";
	foreach $g (@{$s->{'data'}}) {
		print "<tr $cb>\n";
		print "<td><a href='edit_group.cgi?gid=$g->[1]'>",
		      "$g->[0]</a></td>\n";
		print "<td>$g->[1]</td>\n";
		print "<td>",join("&nbsp;|&nbsp;",
			     map { $uid{$_} } &split_array($g->[2])),
		      "&nbsp;</td>\n";
		print "</tr>\n";
		}
	print "</table>\n";
	}
else {
	print "<b>$text{'group_none'}</b><p>\n";
	}
print "<a href='edit_group.cgi?new=1'>$text{'group_add'}</a><p>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

 070701000356e0000081e40000000000000002000000013ac038b800000470000000200000000000000000000000000000002000000003reloc/postgresql/list_hosts.cgi   #!/usr/local/bin/perl
# list_hosts.cgi
# Display host access records

require './postgresql-lib.pl';
$access{'users'} || &error($text{'host_ecannot'});
&header($text{'host_title'}, "", "list_hosts");
print "<hr>\n";

@hosts = &get_hba_config();
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'host_address'}</b></td> ",
      "<td><b>$text{'host_db'}</b></td> ",
      "<td><b>$text{'host_auth'}</b></td> </tr>\n";
foreach $h (@hosts) {
	print "<tr $cb>\n";
	print "<td><a href='edit_host.cgi?idx=$h->{'index'}'>",
	      $h->{'type'} eq 'local' ? $text{'host_local'} :
	      $h->{'netmask'} eq '255.255.255.255' ? $h->{'address'} :
	      $h->{'netmask'} eq '255.255.255.255' ? $text{'host_any'} :
	      $h->{'address'}.'/'.$h->{'netmask'},"</a></td>\n";
	print "<td>",$h->{'db'} eq 'all' ? $text{'host_all'} :
		     $h->{'db'} eq 'sameuser' ? $text{'host_same'} :
					        $h->{'db'},"</td>\n";
	print "<td>",$text{"host_$h->{'auth'}"},"</td>\n";
	print "</tr>\n";
	}
print "</table>\n";
print "<a href='edit_host.cgi?new=1'>$text{'host_add'}</a><p>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

070701000356e1000081e40000000000000002000000013ac038b800000328000000200000000000000000000000000000002100000003reloc/postgresql/list_locals.cgi  #!/usr/local/bin/perl
# list_locals.cgi
# Display local access records

require './postgresql-lib.pl';
$access{'users'} || &error($text{'local_ecannot'});
&header($text{'local_title'}, "");
print "<hr>\n";

@locals = grep { $_->{'type'} eq 'local' } &get_hba_config();
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'host_db'}</b></td> ",
      "<td><b>$text{'host_auth'}</b></td> </tr>\n";
foreach $l (@locals) {
	print "<tr $cb>\n";
	print "<td>",$l->{'db'} eq 'all' ? $text{'host_all'} :
		     $l->{'db'} eq 'sameuser' ? $text{'host_same'} :
					        $l->{'db'},"</td>\n";
	print "<td>",$text{"host_$l->{'auth'}"},"</td>\n";
	print "</tr>\n";
	}
print "</table>\n";
print "<a href='edit_local.cgi?new=1'>$text{'local_add'}</a><p>\n";

print "<hr>\n";
&footer("", $text{'index'});

070701000356e2000081e40000000000000002000000013ac038b80000045c000000200000000000000000000000000000002000000003reloc/postgresql/list_users.cgi   #!/usr/local/bin/perl
# list_users.cgi
# Display all users in the database

require './postgresql-lib.pl';
$access{'users'} || &error($text{'user_ecannot'});
&header($text{'user_title'}, "", "list_users");
print "<hr>\n";

$s = &execute_sql($config{'basedb'}, "select * from pg_shadow");
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'user_name'}</b></td> ",
      "<td><b>$text{'user_pass'}</b></td> ",
      "<td><b>$text{'user_db'}</b></td> ",
      "<td><b>$text{'user_other'}</b></td> ",
      "<td><b>$text{'user_until'}</b></td> </tr>\n";
foreach $u (@{$s->{'data'}}) {
	print "<tr $cb>\n";
	print "<td><a href='edit_user.cgi?user=$u->[0]'>$u->[0]</a></td>\n";
	print "<td>",$u->[6] ? $text{'yes'} : $text{'no'},"</td>\n";
	print "<td>",$u->[2] eq 't' ? $text{'yes'} : $text{'no'},"</td>\n";
	print "<td>",$u->[4] eq 't' ? $text{'yes'} : $text{'no'},"</td>\n";
	print "<td>",$u->[7] ? $u->[7] : $text{'user_forever'},"</td>\n";
	print "</tr>\n";
	}
print "</table>\n";
print "<a href='edit_user.cgi?new=1'>$text{'user_add'}</a><p>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

070701000356e3000081a40000000000000002000000013ac038b800000624000000200000000000000000000000000000001f00000003reloc/postgresql/log_parser.pl    # log_parser.pl
# Functions for parsing this module's logs

require './postgresql-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p, $long) = @_;
if ($action eq 'stop') {
	return $text{'log_stop'};
	}
elsif ($action eq 'start') {
	return $text{'log_start'};
	}
elsif ($type eq 'db') {
	return &text("log_${type}_${action}", "<tt>$object</tt>");
	}
elsif ($type eq 'table') {
	return &text("log_${type}_${action}", "<tt>$object</tt>",
		     "<tt>$p->{'db'}</tt>");
	}
elsif ($type eq 'field') {
	$p->{'size'} =~ s/\s+$//;
	return &text("log_${type}_${action}", "<tt>$object</tt>",
		     "<tt>$p->{'table'}</tt>", "<tt>$p->{'db'}</tt>",
		     "<tt>$p->{'type'}$p->{'size'}</tt>");
	}
elsif ($type eq 'data') {
	return &text("log_${type}_${action}", "<tt>$object</tt>",
		     "<tt>$p->{'table'}</tt>", "<tt>$p->{'db'}</tt>");
	}
elsif ($action eq 'exec') {
	return &text($long ? 'log_exec_l' : 'log_exec', "<tt>$object</tt>",
		     "<tt>$p->{'cmd'}</tt>");
	}
elsif ($type eq 'user' || $type eq 'group') {
	return &text("log_${action}_${type}", "<tt>$object</tt>");
	}
elsif ($type eq 'hba') {
	return $object eq 'local' ? $text{"log_${action}_local"} :
	       $object eq 'all' ? $text{"log_${action}_all"} :
	       &text("log_${action}_hba", "<tt>$object</tt>");
	}
elsif ($action eq 'grant') {
	return &text('log_grant', "<tt>$object</tt>", "<tt>$p->{'db'}</tt>");
	}
else {
	return undef;
	}
}

070701000356ea000081e40000000000000002000000013ac038b8000001cf000000200000000000000000000000000000001b00000003reloc/postgresql/login.cgi    #!/usr/local/bin/perl
# login.cgi
# Save PostgreSQL login and password

require './postgresql-lib.pl';
&ReadParse();
&error_setup($text{'login_err'});
$access{'noconfig'} && &error($text{'login_ecannot'});
$in{'login'} || &error($text{'login_elogin'});
$config{'login'} = $in{'login'};
$config{'pass'} = $in{'pass'};
if (&is_postgresql_running() == -1) {
	&error($text{'login_epass'});
	}
&write_file("$module_config_directory/config", \%config);
&redirect("");

 070701000356eb000081a40000000000000002000000013ac038b7000000ec000000200000000000000000000000000000001d00000003reloc/postgresql/module.info  category=servers
desc=PostgreSQL Database Server
name=PostgreSQL
desc_sv=PostgreSQL-databasserver
desc_pl=Serwer baz danych PostgreSQL
risk=low medium high
desc_es=Servidor de Base de Datos PostgreSQL
desc_zh_CN=PostgreSQL 数据库服务器
070701000356ec000081e40000000000000002000000013ac038b7000002b8000000200000000000000000000000000000001b00000003reloc/postgresql/newdb.cgi    #!/usr/local/bin/perl
# newdb.cgi
# Create a new database with one optional table

require './postgresql-lib.pl';
&ReadParse();
$access{'create'} || &error($text{'newdb_ecannot'});
&error_setup($text{'newdb_err'});

$in{'db'} =~ /^[A-z0-9\.\-]+$/ || &error($text{'newdb_edb'});
if ($in{'path_def'}) {
	&execute_sql_logged($config{'basedb'}, "create database $in{'db'}");
	}
else {
	$in{'path'} || &error($text{'newdb_epath'});
	&execute_sql_logged($config{'basedb'}, "create database $in{'db'} ".
					       "with location = '$in{'path'}'");
	}
&webmin_log("create", "db", $in{'db'});
if ($access{'dbs'} ne '*') {
	$access{'dbs'} .= " $in{'db'}";
	&save_module_acl(\%access);
	}
&redirect("");

070701000357d7000081e40000000000000002000000013ac038b700000159000000200000000000000000000000000000001b00000003reloc/postgresql/start.cgi    #!/usr/local/bin/perl
# start.cgi
# Start the PostgreSQL database server

require './postgresql-lib.pl';
&error_setup($text{'start_err'});
$temp = &tempname();
$rv = &system_logged("($config{'start_cmd'}) >$temp 2>&1");
$out = `cat $temp`; unlink($temp);
if ($rv) {
	&error("<pre>$out</pre>");
	}
sleep(3);
&webmin_log("start");
&redirect("");

   070701000356ed000081e40000000000000002000000013ac038b7000003a7000000200000000000000000000000000000002000000003reloc/postgresql/newdb_form.cgi   #!/usr/local/bin/perl
# newdb_form.cgi
# Display a form for creating a new database

require './postgresql-lib.pl';
$access{'create'} || &error($text{'newdb_ecannot'});
&header($text{'newdb_title'}, "", "newdb_form");
print "<hr>\n";

print "<form action=newdb.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'newdb_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'newdb_db'}</b></td>\n";
print "<td><input name=db size=15></td> </tr>\n";

print "<tr> <td><b>$text{'newdb_path'}</b></td>\n";
print "<td><input type=radio name=path_def value=1 checked> $text{'default'}\n";
print "<input type=radio name=path_def value=0>\n";
print "<input name=path size=30></td> </tr>\n";

print "<tr> <td colspan=2 align=right><input type=submit ",
      "value='$text{'create'}'></td> </tr>\n";

print "</table></td></tr></table></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

 070701000356ee000081a40000000000000002000000013ac038b700001a20000000200000000000000000000000000000002300000003reloc/postgresql/postgresql-lib.pl    # postgresql-lib.pl
# Common PostgreSQL functions

do '../web-lib.pl';
&init_config();
$ENV{$gconfig{'ld_env'}} .= ':'.$config{'plib'};

%access = &get_module_acl();

# is_postgresql_running()
# Returns 1 if yes, 0 if no, -1 if the login is invalid
sub is_postgresql_running
{
local $temp = &tempname();
local $host = $config{'host'} ? "-h $config{'host'}" : "";
if ($config{'login'}) {
	open(TEMP, ">$temp");
	print TEMP "$config{'login'}\n$config{'pass'}\n";
	close(TEMP);
	local $out;
	open(OUT, "$config{'psql'} -u -c '' $host $config{'basedb'}<$temp 2>&1 |");
	}
else {
	open(OUT, "$config{'psql'} -c '' $host $config{'basedb'} 2>&1 |");
	}
while(<OUT>) { $out .= $_; }
close(OUT);
unlink($temp);
if ($out =~ /setuserid:/i || $out =~ /no\s+password\s+supplied/i ||
    $out =~ /no\s+postgres\s+username/i || $out =~ /authentication\s+failed/i ||
    $out =~ /password:.*password:/i || $out =~ /database.*does.*not/i) {
	return -1;
	}
elsif ($out =~ /connect.*failed/i) {
	return 0;
	}
else {
	return 1;
	}
}

# get_postgresql_version()
sub get_postgresql_version
{
local $v = &execute_sql($config{'basedb'}, 'select version()');
$v = $v->{'data'}->[0]->[0];
if ($v =~ /postgresql\s+([0-9\.]+)/i) {
	return $1;
	}
else {
	return undef;
	}
}

# list_databases()
# Returns a list of all databases
sub list_databases
{
local $t = &execute_sql($config{'basedb'}, 'select * from pg_database');
return map { $_->[0] } @{$t->{'data'}};
}

# list_tables(database)
# Returns a list of tables in some database
sub list_tables
{
local $t = &execute_sql($_[0], 'select relname from pg_class where relkind = \'r\' and relname not like \'pg_%\' and relhasrules = \'f\'');
return map { $_->[0] } @{$t->{'data'}};
}

# list_types()
# Returns a list of all available field types
sub list_types
{
local $t = &execute_sql($config{'basedb'}, 'select typname from pg_type where typrelid = 0 and typname !~ \'^_.*\' order by typname');
return map { $_->[0] } @{$t->{'data'}};
}

# table_structure(database, table)
# Returns a list of hashes detailing the structure of a table
sub table_structure
{
local $t = &execute_sql($_[0], "select a.attnum, a.attname, t.typname, a.attlen, a.atttypmod, a.attnotnull, a.atthasdef FROM pg_class c, pg_attribute a, pg_type t WHERE c.relname = '$_[1]'    and a.attnum > 0     and a.attrelid = c.oid     and a.atttypid = t.oid order by attnum");
local (@rv, $r);
foreach $r (@{$t->{'data'}}) {
	local $arr;
	$arr++ if ($r->[2] =~ s/^_//);
	push(@rv, { 'field' => $r->[1],
		    'arr' => $arr ? 'YES' : 'NO',
		    'type' => $r->[4] < 0 ? $r->[2]
					  : $r->[2].'('.($r->[4]-4).')',
		    'null' => $r->[5] eq 'f' ? 'YES' : 'NO' } );
	}
return @rv;
}

# execute_sql(database, sql)
sub execute_sql
{
local $temp = &tempname();
open(TEMP, ">$temp");
print TEMP "$config{'login'}\n$config{'pass'}\n";
close(TEMP);
local $host = $config{'host'} ? "-h $config{'host'}" : "";
open(OUT, "$config{'psql'} -u -c \"$_[1]\" $host $_[0] <$temp 2>&1 |");
local ($line, $rv, @data);
do {
	$line = <OUT>;
	} while($line =~ /^(username|password):/i ||
		$line =~ /(warning|notice):/i || $line !~ /\S/);
if ($line =~ /^ERROR:\s+(.*)/) {
	&error(&text('esql', "<tt>$_[1]</tt>", "<tt>$1</tt>"));
	}
else {
	local $dash = <OUT>;
	if ($dash =~ /^\s*\+\-/) {
		# mysql-style output
		$line = <OUT>;
		$line =~ s/^[\s\|]+//; $line =~ s/[\s\|]+$//;
		local @titles = split(/\|/, $line);
		map { s/^\s+//; s/\s+$// } @titles;
		$line = <OUT>;	# skip useless dashes
		while(1) {
			$line = <OUT>;
			last if (!$line || $line =~ /^\s*\+/);
			$line =~ s/^[\s\|]+//; $line =~ s/[\s\|]+$//;
			local @row = split(/\|/, $line);
			map { s/^\s+//; s/\s+$// } @row;
			push(@data, \@row);
			}
		$rv = { 'titles' => \@titles, 'data' => \@data };
		}
	elsif ($dash !~ /^-/) {
		# no output, such as from an insert
		$rv = undef;
		}
	else {
		# psql-style output
		local @titles = split(/\|/, $line);
		map { s/^\s+//; s/\s+$// } @titles;
		while(1) {
			$line = <OUT>;
			last if (!$line || $line =~ /^\(\d+\s+\S+\)/);
			local @row = split(/\|/, $line);
			map { s/^\s+//; s/\s+$// } @row;
			push(@data, \@row);
			}
		$rv = { 'titles' => \@titles, 'data' => \@data };
		}
	}
close(OUT);
unlink($temp);
return $rv;
}

# execute_sql_logged(database, command)
sub execute_sql_logged
{
&additional_log('sql', $_[0], $_[1]);
return &execute_sql(@_);
}

# run_as_postgres(command)
sub run_as_postgres
{
pipe(OUTr, OUTw);
local $pid = fork();
if (!$pid) {
	untie(*STDIN);
	untie(*STDOUT);
	untie(*STDERR);
	close(STDIN);
	open(STDOUT, ">&OUTw");
	open(STDERR, ">&OUTw");

	local @u = getpwnam($config{'user'});
	$( = $u[3]; $) = "$u[3] $u[3]";
	$< = $> = $u[2];

	exec(@_);
	print "Exec failed : $!\n";
	exit 1;
	}
close(OUTw);
return OUTr;
}

sub can_edit_db
{
local $d;
return 1 if ($access{'dbs'} eq '*');
foreach $d (split(/\s+/, $access{'dbs'})) {
	return 1 if ($d eq $_[0]);
	}
return 0;
}

# get_hba_config()
# Parses the postgres host access config file
sub get_hba_config
{
local $lnum = 0;
open(HBA, $config{'hba_conf'});
while(<HBA>) {
	s/\r|\n//g;
	s/^\s*#.*$//g;
	if (/^\s*host\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)(\s+(\S+))?/) {
		push(@rv, { 'type' => 'host',
			    'index' => scalar(@rv),
			    'line' => $lnum,
			    'db' => $1,
			    'address' => $2,
			    'netmask' => $3,
			    'auth' => $4,
			    'arg' => $6 } );
		}
	elsif (/^\s*local\s+(\S+)\s+(\S+)(\s+(\S+))?/) {
		push(@rv, { 'type' => 'local',
			    'index' => scalar(@rv),
			    'line' => $lnum,
			    'db' => $1,
			    'auth' => $2,
			    'arg' => $4 } );
		}
	$lnum++;
	}
close(HBA);
return @rv;
}

# create_hba(&hba)
sub create_hba
{
local $lref = &read_file_lines($config{'hba_conf'});
push(@$lref, &hba_line($_[0]));
&flush_file_lines();
}

# delete_hba(&hba)
sub delete_hba
{
local $lref = &read_file_lines($config{'hba_conf'});
splice(@$lref, $_[0]->{'line'}, 1);
&flush_file_lines();
}

# modify_hba(&hba)
sub modify_hba
{
local $lref = &read_file_lines($config{'hba_conf'});
splice(@$lref, $_[0]->{'line'}, 1, &hba_line($_[0]));
&flush_file_lines();
}

sub hba_line
{
if ($_[0]->{'type'} eq 'host') {
	return join(" ", 'host', $_[0]->{'db'}, $_[0]->{'address'},
		         $_[0]->{'netmask'}, $_[0]->{'auth'},
			 $_[0]->{'arg'} ? ( $_[0]->{'arg'} ) : () );
	}
else {
	return join(" ", 'local', $_[0]->{'db'}, $_[0]->{'auth'},
			 $_[0]->{'arg'} ? ( $_[0]->{'arg'} ) : () );
	}
}

# split_array(value)
sub split_array
{
if ($_[0] =~ /^\{(.*)\}$/) {
	local @a = split(/,/, $1);
	return @a;
	}
else {
	return ( $_[0] );
	}
}

# join_array(values ..)
sub join_array
{
local $alpha;
map { $alpha++ if (!/^-?[0-9\.]+/) } @_;
return $alpha ? '{'.join(',', map { "'$_'" } @_).'}'
	      : '{'.join(',', @_).'}';
}

1;

070701000356ef000081e40000000000000002000000013ac038b8000002f5000000200000000000000000000000000000002000000003reloc/postgresql/save_field.cgi   #!/usr/local/bin/perl
# save_field.cgi
# Create or rename a field

require './postgresql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});

$in{'field'} =~ /^\S+$/ || &error(&text('field_efield', $in{'field'}));
if ($in{'new'}) {
	if (defined($in{'size'})) {
		$in{'size'} =~ /^\d+$/ ||
			&error(&text('field_esize', $in{'size'}));
		$size = "($in{'size'})";
		}
	$arr = $in{'arr'} ? "[]" : "";
	&execute_sql_logged($in{'db'}, "alter table $in{'table'} add ".
				       "$in{'field'} $in{'type'}$size$arr");
	}
elsif ($in{'old'} ne $in{'field'}) {
	&execute_sql_logged($in{'db'}, "alter table $in{'table'} rename ".
				       "$in{'old'} to $in{'field'}");
	}
&redirect("edit_table.cgi?db=$in{'db'}&table=$in{'table'}");

   070701000356f0000081e40000000000000002000000013ac038b800000415000000200000000000000000000000000000002000000003reloc/postgresql/save_grant.cgi   #!/usr/local/bin/perl
# save_grant.cgi
# Update privilege grants on some table/view/index

require './postgresql-lib.pl';
&ReadParse();
$access{'users'} || &error($text{'grant_ecannot'});

# Remove old privileges on object
$s = &execute_sql($in{'db'}, '\z');
foreach $g (@{$s->{'data'}}) {
	if ($g->[0] eq $in{'table'}) {
		$g->[1] =~ s/^\{//; $g->[1] =~ s/\}$//;
		@grant = map { /^"(.*)=(.*)"$/; [ $1, $2 ] }
			     split(/,/, $g->[1]);
		}
	}
foreach $g (@grant) {
	next if (!$g->[1]);
	if ($g->[0] eq '') {
		$who = "public";
		}
	elsif ($g->[0] =~ /group\s+(\S+)/) {
		$who = "group $1";
		}
	else {
		$who = $g->[0];
		}
	&execute_sql_logged($in{'db'}, "revoke all on $in{'table'} from $who");
	}

# Grant new privileges
for($i=0; defined($in{"user_$i"}); $i++) {
	@what = split(/\0/, $in{"what_$i"});
	next if (!$in{"user_$i"} || !@what);
	&execute_sql_logged($in{'db'}, "grant ".join(",", @what)." on ".
				       $in{'table'}." to ".$in{"user_$i"});
	}

&webmin_log("grant", undef, $in{'table'}, \%in);
&redirect("list_grants.cgi");

   070701000356f1000081e40000000000000002000000013ac038b800000507000000200000000000000000000000000000002000000003reloc/postgresql/save_group.cgi   #!/usr/local/bin/perl
# save_group.cgi
# Create, update or delete a postgres group

require './postgresql-lib.pl';
&ReadParse();
$access{'users'} || &error($text{'group_ecannot'});
&error_setup($text{'group_err'});

if ($in{'delete'}) {
	# just delete the group
	&execute_sql_logged($config{'basedb'}, "delete from pg_group where grosysid = $in{'gid'}");
	&webmin_log("delete", "group", $in{'name'});
	}
else {
	# parse inputs
	$in{'name'} =~ /^\S+$/ || &error($text{'group_ename'});
	$s = &execute_sql($config{'basedb'}, "select * from pg_group where groname = '$in{'name'}'");
	$in{'gid'} =~ /^\d+$/ || &error($text{'group_egid'});
	if ($in{'new'}) {
		$s->{'data'}->[0]->[0] && &error($text{'group_etaken'});
		}
	else {
		$s->{'data'}->[0]->[0] && $s->{'data'}->[0]->[1] != $in{'gid'} && &error($text{'group_etaken'});
		}

	$mems = &join_array(split(/\0/, $in{'mems'}));
	if ($in{'new'}) {
		&execute_sql_logged($config{'basedb'}, "insert into pg_group values ('$in{'name'}', '$in{'gid'}', '$mems')");
		&webmin_log("create", "group", $in{'name'});
		}
	else {
		&execute_sql_logged($config{'basedb'}, "update pg_group set groname = '$in{'name'}', grolist = '$mems' where grosysid = $in{'gid'}");
		&webmin_log("modify", "group", $in{'name'});
		}
	}
&redirect("list_groups.cgi");

 070701000357d5000081e40000000000000002000000013ac038b8000007c4000000200000000000000000000000000000001f00000003reloc/postgresql/save_host.cgi    #!/usr/local/bin/perl
# save_host.cgi
# Create, modify or delete an allowed host record

require './postgresql-lib.pl';
&ReadParse();
&lock_file($config{'hba_conf'});
@all = &get_hba_config();
$host = $all[$in{'idx'}] if (!$in{'new'});
&error_setup($text{'host_err'});

if ($in{'delete'}) {
	# delete one host
	&delete_hba($host);
	}
else {
	# validate and parse inputs
	if ($in{'addr_mode'} == 0) {
		$host->{'address'} = '0.0.0.0' if (!$host->{'address'});
		$object = $host->{'netmask'} = '0.0.0.0';
		$host->{'type'} = 'host';
		}
	elsif ($in{'addr_mode'} == 1) {
		&check_ipaddress($in{'host'}) ||
			&error($text{'host_ehost'});
		$object = $host->{'address'} = $in{'host'};
		$host->{'netmask'} = '255.255.255.255';
		$host->{'type'} = 'host';
		}
	elsif ($in{'addr_mode'} == 2) {
		&check_ipaddress($in{'network'}) ||
			&error($text{'host_enetwork'});
		&check_ipaddress($in{'netmask'}) ||
			&error($text{'host_enetmask'});
		$host->{'address'} = $in{'network'};
		$host->{'netmask'} = $in{'netmask'};
		$host->{'type'} = 'host';
		$object = "$in{'network'}/$in{'netmask'}";
		}
	else {
		$object = $host->{'type'} = 'local';
		}
	$host->{'db'} = $in{'db'};
	$host->{'auth'} = $in{'auth'};
	if ($in{'auth'} eq 'password' && $in{'passwordarg'}) {
		$in{'password'} =~ /^\S+$/ || &error($text{'host_epassword'});
		$host->{'arg'} = $in{'password'};
		}
	elsif ($in{'auth'} eq 'ident' && $in{'identarg'}) {
		$in{'ident'} =~ /^\S+$/ || &error($text{'host_eident'});
		$host->{'arg'} = $in{'ident'};
		}
	else {
		$host->{'arg'} = undef;
		}

	if ($in{'new'}) {
		&create_hba($host);
		}
	else {
		&modify_hba($host);
		}
	}
&unlock_file($config{'hba_conf'});
&webmin_log($in{'new'} ? 'create' : $in{'delete'} ? 'delete' : 'modify',
	    'hba', $host->{'type'} eq 'local' ? 'local' :
		   $host->{'netmask'} eq '0.0.0.0' ? 'all' :
		   $host->{'netmask'} eq '255.255.255.255' ? $host->{'address'}:
		   "$host->{'address'}/$host->{'netmask'}", $host);
&redirect("list_hosts.cgi");

070701000357d6000081e40000000000000002000000013ac038b8000004d8000000200000000000000000000000000000001f00000003reloc/postgresql/save_user.cgi    #!/usr/local/bin/perl
# save_user.cgi
# Create, update or delete a postgres user

require './postgresql-lib.pl';
&ReadParse();
$access{'users'} || &error($text{'user_ecannot'});
&error_setup($text{'user_err'});

if ($in{'delete'}) {
	# just delete the user
	&execute_sql_logged($config{'basedb'}, "drop user $in{'user'}");
	&webmin_log("delete", "user", $in{'user'});
	}
else {
	# parse inputs
	$version = &get_postgresql_version();
	if (!$in{'pass_def'}) {
		$in{'pass'} =~ /^\S+$/ || &error($text{'user_epass'});
		$sql .= $version >= 7 ? " with password '$in{'pass'}'"
				      : " with password $in{'pass'}";
		}
	if ($in{'db'}) {
		$sql .= " createdb";
		}
	else {
		$sql .= " nocreatedb";
		}
	if ($in{'other'}) {
		$sql .= " createuser";
		}
	else {
		$sql .= " nocreateuser";
		}
	if (!$in{'until_def'}) {
		$sql .= " valid until '$in{'until'}'";
		}
	if ($in{'new'}) {
		$in{'name'} =~ /^\S+$/ || &error($text{'user_ename'});
		&execute_sql_logged($config{'basedb'},
				    "create user $in{'name'} $sql");
		&webmin_log("create", "user", $in{'name'});
		}
	else {
		&execute_sql_logged($config{'basedb'},
				    "alter user $in{'user'} $sql");
		&webmin_log("modify", "user", $in{'user'});
		}
	}
&redirect("list_users.cgi");

070701000357d8000081e40000000000000002000000013ac038b700000230000000200000000000000000000000000000001a00000003reloc/postgresql/stop.cgi #!/usr/local/bin/perl
# stop.cgi
# Stop the PostgreSQL database server

require './postgresql-lib.pl';
&error_setup($text{'stop_err'});
if ($config{'stop_cmd'}) {
	$out = &backquote_logged("$config{'stop_cmd'} 2>&1");
	if ($?) {
		&error("<pre>$?\n$out</pre>");
		}
	}
else {
	open(PID, $config{'pid_file'});
	($pid = <PID>) =~ s/\r|\n//g;
	close(PID);
	$pid || &error(&text('stop_epidfile', "<tt>$config{'pid_file'}</tt>"));
	&kill_logged('TERM', $pid) ||
		&error(&text('stop_ekill', "<tt>$pid</tt>", "<tt>$!</tt>"));
	}
&webmin_log("stop");
&redirect("");

070701000357d9000081e40000000000000002000000013ac038b700000713000000200000000000000000000000000000002000000003reloc/postgresql/table_form.cgi   #!/usr/local/bin/perl
# table_form.cgi
# Display a form for creating a table

require './postgresql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
&header($text{'table_title2'}, "", "table_form");
print "<hr>\n";

print "<form action=create_table.cgi>\n";
print "<input type=hidden name=db value='$in{'db'}'>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'table_header2'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'table_name'}</b></td>\n";
print "<td><input name=name size=30></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'table_initial'}</b></td>\n";
print "<td><table border>\n";
print "<tr $tb> <td><b>$text{'field_name'}</b></td> ",
      "<td><b>$text{'field_type'}</b></td> ",
      "<td><b>$text{'field_size'}</b></td> ",
      "<td><b>$text{'table_opts'}</b></td> </tr>\n";
@type_list = &list_types();
for($i=0; $i<$in{'fields'}; $i++) {
	print "<tr $cb>\n";
	print "<td><input name=field_$i size=20></td>\n";
	print "<td><select name=type_$i>\n";
	print "<option selected>\n";
	foreach $t (@type_list) {
		print "<option>$t\n";
		}
	print "</select></td>\n";
	print "<td><input name=size_$i size=10></td> <td>\n";
	print "<input name=arr_$i type=checkbox value=1> $text{'table_arr'}\n";
	print "<input name=null_$i type=checkbox value=1 checked> $text{'field_null'}\n";
	print "<input name=key_$i type=checkbox value=1> $text{'field_key'}\n";
	print "<input name=uniq_$i type=checkbox value=1> $text{'field_uniq'}\n";
	print "</td> </tr>\n";
	}
print "</table></td> </tr>\n";

print "<tr> <td colspan=2 align=right><input type=submit ",
      "value='$text{'create'}'></td> </tr>\n";

print "</table></td></tr></table></form>\n";

print "<hr>\n";
&footer("edit_dbase.cgi?db=$in{'db'}", $text{'dbase_return'});

 070701000357da000081e40000000000000002000000013ac038b700001645000000200000000000000000000000000000002000000003reloc/postgresql/view_table.cgi   #!/usr/local/bin/perl
# view_data.cgi
# Display all data in some table

require './postgresql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
@str = &table_structure($in{'db'}, $in{'table'});

if ($in{'delete'}) {
	# Deleting selected rows
	$count = 0;
	foreach $r (split(/\0/, $in{'row'})) {
		&execute_sql_logged($in{'db'},
				    "delete from $in{'table'} where oid = $r");
		$count++;
		}
	&webmin_log("delete", "data", $count, \%in);
	&redirect("view_table.cgi?db=$in{'db'}&".
		  "table=$in{'table'}&start=$in{'start'}");
	}
elsif ($in{'save'}) {
	# Update edited rows
	$count = 0;
	foreach $r (split(/\0/, $in{'row'})) {
		local @set;
		foreach $t (@str) {
			local $ij = $in{"${r}_$t->{'field'}"};
			$ij =~ s/'/''/g;
			if ($ij eq '') {
				push(@set, "$t->{'field'} = NULL");
				}
			else {
				push(@set, "$t->{'field'} = '$ij'");
				}
			}
		&execute_sql_logged($in{'db'}, "update $in{'table'} set ".
			            join(" , ", @set)." where oid = $r");
		$count++;
		}
	&webmin_log("modify", "data", $count, \%in);
	&redirect("view_table.cgi?db=$in{'db'}&".
		  "table=$in{'table'}&start=$in{'start'}");
	}
elsif ($in{'savenew'}) {
	# Adding a new row
	for($j=0; defined($in{$j}); $j++) {
		$in{$j} =~ s/'/''/g;
		push(@set, $in{$j} eq '' ? 'NULL' : "'$in{$j}'");
		}
	&execute_sql_logged($in{'db'}, "insert into $in{'table'} values (".
			    join(" , ", @set).")");
	&redirect("view_table.cgi?db=$in{'db'}&".
		  "table=$in{'table'}&start=$in{'start'}");
	&webmin_log("create", "data", undef, \%in);
	}
elsif ($in{'cancel'} || $in{'new'}) {
	undef($in{'row'});
	}

&header($text{'view_title'}, "", "view_table");
print "<center><font size=+2>",&text('table_header', "<tt>$in{'table'}</tt>",
				     "<tt>$in{'db'}</tt>"),"</font></center>\n";
print "<hr><p>\n";

$d = &execute_sql($in{'db'}, "select count(*) from $in{'table'}");
$total = $d->{'data'}->[0]->[0];
$in{'start'} = int($in{'start'});
if ($in{'new'} && $total > $config{'perpage'}) {
	# go to the last screen for adding a row
	$in{'start'} = $total - $config{'perpage'};
	$in{'start'} = int(($in{'start'} / $config{'perpage'}) + 1) *
		       $config{'perpage'};
	}
if ($in{'start'} || $total > $config{'perpage'}) {
	print "<center>\n";
	if ($in{'start'}) {
		printf "<a href='view_table.cgi?db=%s&table=%s&start=%s'>".
		       "<img src=/images/left.gif border=0 align=middle></a>\n",
			$in{'db'}, $in{'table'},
			$in{'start'} - $config{'perpage'};
		}
	print "<font size=+1>",&text('view_pos', $in{'start'}+1,
	      $in{'start'}+$config{'perpage'} > $total ? $total :
	      $in{'start'}+$config{'perpage'}, $total),"</font>\n";
	if ($in{'start'}+$config{'perpage'} < $total) {
		printf "<a href='view_table.cgi?db=%s&table=%s&start=%s'>".
		      "<img src=/images/right.gif border=0 align=middle></a>\n",
			$in{'db'}, $in{'table'},
			$in{'start'} + $config{'perpage'};
		}
	print "</center>\n";
	}

print "<form action=view_table.cgi method=post>\n";
print "<input type=hidden name=db value='$in{'db'}'>\n";
print "<input type=hidden name=table value='$in{'table'}'>\n";
print "<input type=hidden name=start value='$in{'start'}'>\n";
$check = !defined($in{'row'}) && !$in{'new'};
if ($total || $in{'new'}) {
	$d = &execute_sql($in{'db'}, "select oid,* from $in{'table'} limit ".
				     "$config{'perpage'} offset $in{'start'}");
	@data = @{$d->{'data'}};
	@titles = @{$d->{'titles'}}; shift(@titles);

	print "<table border width=100%>\n";
	print "<tr $tb>\n";
	print "<td>&nbsp;</td>\n" if ($check);
	foreach $t (@str) {
		print "<td><b>$t->{'field'}</b></td>\n";
		}
	print "</tr>\n";

	map { $row{$_}++ } split(/\0/, $in{'row'});
	$w = int(100 / scalar(@str));
	$w = 10 if ($w < 10);
	for($i=0; $i<@data; $i++) {
		local @d = @{$data[$i]};
		local $oid = shift(@d);
		print "<tr $cb>\n";
		if ($row{$oid}) {
			for($j=0; $j<@d; $j++) {
				$d[$j] =~ s/"/&quot;/g;
				printf "<td width=$w%%><input name=${oid}_$titles[$j] size=$w value=\"$d[$j]\"></td>\n";
				}
			print "<input type=hidden name=row value=$oid>\n";
			}
		else {
			print "<td><input type=checkbox name=row ",
			      "value=$oid></td>\n" if ($check);
			foreach $c (@d) {
				printf "<td width=$w%%>%s</td>\n",
					$c =~ /\S/ ? &html_escape($c) : "<br>";
				}
			}
		print "</tr>\n";
		}
	if ($in{'new'}) {
		print "<tr $cb>\n";
		for($j=0; $j<@str; $j++) {
			print "<td width=$w%><input name=$j size=$w></td>\n";
			}
		print "</tr>\n";
		}
	print "</table>\n";
	if ($check) {
		print "<a href='' onClick='for(i=0; i<document.forms[0].row.length; i++) { document.forms[0].row[i].checked = true; } return false'>$text{'view_all'}</a>&nbsp;\n";
		print "<a href='' onClick='for(i=0; i<document.forms[0].row.length; i++) { document.forms[0].row[i].checked = !document.forms[0].row[i].checked; } return false'>$text{'view_invert'}</a><br>\n";
		}
	}
else {
	print "<b>$text{'view_none'}</b> <p>\n";
	}

print "<table width=100%><tr>\n";
if (!$check) {
	if ($in{'new'}) {
		print "<td><input type=submit name=savenew ",
		      "value='$text{'save'}'></td>\n";
		}
	else {
		print "<td><input type=submit name=save ",
		      "value='$text{'save'}'></td>\n";
		}
	print "<td align=right><input type=submit name=cancel ",
	      "value='$text{'cancel'}'></td>\n";
	}
else {
	print "<td><input type=submit name=edit ",
	      "value='$text{'view_edit'}'></td>\n";
	print "<td align=middle><input type=submit name=new ",
	      "value='$text{'view_new'}'></td>\n";
	print "<td align=right><input type=submit name=delete ",
	      "value='$text{'view_delete'}'></td>\n";
	}
print "</tr></table></form>\n";

print "<hr>\n";
&footer("edit_table.cgi?db=$in{'db'}&table=$in{'table'}",$text{'table_return'});

   0707010003cb40000041ed0000000000000001000000053ac03c4d00000000000000200000000000000000000000000000000b00000003reloc/proc    0707010003cb41000081a40000000000000002000000013ac03892000001e8000000200000000000000000000000000000001b00000003reloc/proc/acl_security.pl    
require './proc-lib.pl';

# acl_security_form(&options)
# Output HTML for editing security options for the proc module
sub acl_security_form
{
print "<tr> <td><b>$text{'acl_manage'}</b></td>\n";
local $u = getpwuid($_[0]->{'uid'});
print "<td><input name=uid size=8 value='$u'> ",
	&user_chooser_button("uid", 0),"</td> </tr>\n";
}

# acl_security_save(&options)
# Parse the form for security options for the proc module
sub acl_security_save
{
$_[0]->{'uid'} = getpwnam($in{'uid'});
}

0707010003cb42000081a40000000000000002000000013ac038920000002c000000200000000000000000000000000000001600000003reloc/proc/config-aix ps_style=sysv
default_mode=last
base_ppid=1
0707010003cb43000081a40000000000000002000000013ac038920000002d000000200000000000000000000000000000001f00000003reloc/proc/config-cobalt-linux    default_mode=last
ps_style=linux
base_ppid=1
   0707010003cb44000081a40000000000000002000000013ac038920000002d000000200000000000000000000000000000001e00000003reloc/proc/config-corel-linux ps_style=linux
default_mode=last
base_ppid=1
   0707010003cb45000081a40000000000000002000000013ac038910000002d000000200000000000000000000000000000001f00000003reloc/proc/config-debian-linux    ps_style=linux
default_mode=last
base_ppid=1
   0707010003cb46000081a40000000000000002000000013ac038910000002f000000200000000000000000000000000000001a00000003reloc/proc/config-freebsd default_mode=last
ps_style=freebsd
base_ppid=0
 0707010003cb47000081a40000000000000002000000013ac038910000002c000000200000000000000000000000000000001700000003reloc/proc/config-hpux    ps_style=hpux
default_mode=last
base_ppid=0
0707010003cb48000081a40000000000000002000000013ac038920000002c000000200000000000000000000000000000001700000003reloc/proc/config-irix    default_mode=last
ps_style=sysv
base_ppid=1
0707010003cb49000081a40000000000000002000000013ac038910000002d000000200000000000000000000000000000001800000003reloc/proc/config-macos   default_mode=tree
ps_style=macos
base_ppid=1
   0707010003cb4a000081a40000000000000002000000013ac038920000002d000000200000000000000000000000000000001d00000003reloc/proc/config-open-linux  default_mode=last
ps_style=linux
base_ppid=1
   0707010003cb4b000081a40000000000000002000000013ac038910000002c000000200000000000000000000000000000001d00000003reloc/proc/config-openserver  ps_style=sysv
default_mode=last
base_ppid=1
0707010003cb4c000081a40000000000000002000000013ac038920000002b000000200000000000000000000000000000001700000003reloc/proc/config-osf1    default_mode=last
ps_style=osf
base_ppid=1
 0707010003cb4d000081a40000000000000002000000013ac038910000002d000000200000000000000000000000000000001f00000003reloc/proc/config-redhat-linux    default_mode=last
ps_style=linux
base_ppid=1
   0707010003cb4e000081a40000000000000002000000013ac038910000002d000000200000000000000000000000000000002200000003reloc/proc/config-slackware-linux ps_style=linux
default_mode=last
base_ppid=1
   0707010003cb4f000081a40000000000000002000000013ac038910000002c000000200000000000000000000000000000001a00000003reloc/proc/config-solaris ps_style=sysv
default_mode=last
base_ppid=1
0707010003cb50000081a40000000000000002000000013ac038910000002d000000200000000000000000000000000000001d00000003reloc/proc/config-suse-linux  default_mode=last
ps_style=linux
base_ppid=1
   0707010003cb51000081a40000000000000002000000013ac038920000002d000000200000000000000000000000000000001e00000003reloc/proc/config-turbo-linux default_mode=last
ps_style=linux
base_ppid=1
   0707010003cb52000081a40000000000000002000000013ac038910000002c000000200000000000000000000000000000001b00000003reloc/proc/config-unixware    ps_style=sysv
default_mode=last
base_ppid=1
0707010003cb53000081a40000000000000002000000013ac0389100000103000000200000000000000000000000000000001700000003reloc/proc/config.info    default_mode=Default process list style,4,last-Last chosen,tree-Process tree,user-Order by user,size-Order by size,cpu-Order by CPU,search-Search form,run-Run form
ps_style=PS command output style,1,sysv-SYSV,linux-Linux,hpux-HPUX,freebsd-FreeBSD,macos-MacOS
 0707010003cb54000081a40000000000000002000000013ac0389200000139000000200000000000000000000000000000001a00000003reloc/proc/config.info.de default_mode=Standard Prozess-Liste Stil,4,last-Zuletzt gew&auml;hlter,tree-Prozess Baum,user-Sortiert nach Benutzer,size-Sortiert nach Gr&ouml;sse,cpu-Sortiert nach CPU,search-Such Formular,run-Ausf&uuml;hr Formular
ps_style=PS Kommando Ausgabe Stil,1,sysv-SYSV,linux-Linux,hpux-HPUX,freebsd-FreeBSD,macos-MacOS
   0707010003cb55000081a40000000000000002000000013ac0389200000150000000200000000000000000000000000000001a00000003reloc/proc/config.info.es default_mode=Estilo de lista de procesos por defecto,4,last-趌timo seleccionado,tree-羠bol de procesos,user-Ordenado por usuario,size-Ordenado por tama駉,cpu-Ordenado por UCP,search-Formulario de b鷖queda,run-Formulario de Ejecuci髇
ps_style=Estilo de salida del comando PS,1,sysv-SYSV,linux-Linux,hpux-HPUX,freebsd-FreeBSD,macos-MacOS
0707010003cb56000081a40000000000000002000000013ac038920000013b000000200000000000000000000000000000001a00000003reloc/proc/config.info.fr default_mode=Style de liste de processus par d閒aut,4,last-Dernier choisi,tree-Arborescence,user-Par utilisateur,size-Par taille,cpu-Par consommation processeur,search-Page de recherche,run-Page d'ex閏ution
ps_style=Type de sortie de la commande 'ps',1,sysv-SYSV,linux-Linux,hpux-HPUX,freebsd-FreeBSD,macos-MacOS
 0707010003cb57000081a40000000000000002000000013ac0389200000125000000200000000000000000000000000000001a00000003reloc/proc/config.info.hu default_mode=Alap閞telmezett processz list醶醩i st韑us,4,last-Legut骲bi,tree-Processz-fa,user-Felhaszn醠 szerint,size-M閞et szerint,cpu-CPU-kihaszn醠ts醙 szerint,search-Keres閟,run-Futtat醩
ps_style=PS parancs kimenet閚ek st韑usa,1,sysv-SYSV,linux-Linux,hpux-HPUX,freebsd-FreeBSD,macos-MacOS
   0707010003cb58000081a40000000000000002000000013ac0389200000141000000200000000000000000000000000000001a00000003reloc/proc/config.info.pl default_mode=Domy秎ny spos骲 wy秝ietlania proces體,4,last-Ostatnio wybrany,tree-Drzewo proces體,user-Porz眃ek wg u縴tkownika,size-Porz眃ek wg rozmiaru,cpu-Porz眃ek wg CPU,search-Formularz szukania,run-Formularz uruchomienia
ps_style=Styl wyj禼ia polecenia PS,1,sysv-SYSV,linux-Linux,hpux-HPUX,freebsd-FreeBSD,macos-MacOS
   0707010003cb59000081a40000000000000002000000013ac038920000014d000000200000000000000000000000000000001d00000003reloc/proc/config.info.ru_RU  default_mode=项 箪铍鬣龛 镱赅琨忄螯 耧桉铌 镳铞羼耦 赅,4,last-项耠邃礤 恹狃囗眍,tree-腻疱忸 镳铞羼耦,user-语铕漕麒螯 镱 镱朦珙忄蝈,size-语铕漕麒螯 镱 疣珈屦,cpu-语铕漕麒螯 镱 CPU,search-灶痨 潆 镱桉赅,run-灶痨 潆 玎矬耜
ps_style=羊桦 恹忸溧 觐爨礓 PS,1,sysv-SYSV,linux-Linux,hpux-HPUX,freebsd-FreeBSD,macos-MacOS
   0707010003cb5a000081a40000000000000002000000013ac038920000014d000000200000000000000000000000000000001d00000003reloc/proc/config.info.ru_SU  default_mode=鹣 胀咸蘖紊 邢肆谫琢载 有捎纤 幸厦庞酉 肆,4,last-鹣犹拍闻 踪乱廖蜗,tree-渑遗紫 幸厦庞酉,user-跣弦涯限稍 邢 邢特谙琢耘萄,size-跣弦涯限稍 邢 伊谕乓,cpu-跣弦涯限稍 邢 CPU,search-嫦彝 奶 邢捎肆,run-嫦彝 奶 诹姓铀
ps_style=笤商 踪紫牧 讼土文 PS,1,sysv-SYSV,linux-Linux,hpux-HPUX,freebsd-FreeBSD,macos-MacOS
   0707010003cb5b000081a40000000000000002000000013ac0389200000137000000200000000000000000000000000000001a00000003reloc/proc/config.info.sv default_mode=Standardformat f鰎 processlista,4,last-Senast valda,tree-Processtr鋎,user-Sorterad efter anv鋘dare,size-Sorterad efter storlek,cpu-Sorterad efter CPU,search-S鰇formul鋜,run-Utf鰎 formul鋜
ps_style=Format f鰎 utmatning fr錸 PS-kommandon,1,sysv-SYSV,linux-Linux,hpux-HPUX,freebsd-FreeBSD,macos-MacOS
 0707010003cb5c000081a40000000000000002000000013ac038920000012a000000200000000000000000000000000000001a00000003reloc/proc/config.info.tr default_mode=謓tan齧l iem listeleme stili,4,son-Son se鏸len,a餫-蔺lem a餫c,kullan齝-Kullan齝齳a g鰎e ,boyut-Boyuta g鰎e,iemci-蔺lemci kullan齧齨a g鰎e,arama-Arama formu,鏰lt齬-莂lt齬ma formu
ps_style=PS komutu 琮kt齭 stili,1,sysv-SYSV,linux-Linux,hpux-HPUX,freebsd-FreeBSD,macos-MacOS
  0707010003cb5d000081a40000000000000002000000013ac03892000000d6000000200000000000000000000000000000001d00000003reloc/proc/config.info.zh_CN  default_mode=缺省列表风格,4,last-上次选择,tree-进程树,user-按用户名排序,size-按大小排序,cpu-按CPU排序,search-搜索表格,run-运行表格
ps_style=ps 命令风格,1,sysv-SYSV,linux-Linux,hpux-HPUX,freebsd-FreeBSD,macos-MacOS
  0707010003cb5e000081a40000000000000002000000013ac03892000000f8000000200000000000000000000000000000002200000003reloc/proc/config.info.zh_TW.Big5 default_mode=箇砞祘妓Α,4,last-程匡拒,tree-祘攫,user-ㄌ沮ㄏノ逼,size-ㄌ沮癘拘砰ㄏノ秖逼,cpu-ㄌ沮 CPU ㄏノ秖逼,search-穓碝虫,run-磅︽虫
ps_style=PS ㏑块妓Α,1,sysv-SYSV,linux-Linux,hpux-HPUX,freebsd-FreeBSD,macos-MacOS
0707010003cb5f000081a40000000000000002000000013ac0389200000011000000200000000000000000000000000000001600000003reloc/proc/defaultacl noconfig=0
uid=0
   0707010003cb60000081e40000000000000002000000013ac0389100000e66000000200000000000000000000000000000001900000003reloc/proc/edit_proc.cgi  #!/usr/local/bin/perl
# edit_proc.cgi
# Display information about a process

require './proc-lib.pl';
use Config;
&header($text{'edit_title'}, "", "edit_proc");
print "<hr>\n";
%pinfo = &process_info($ARGV[0]);
if (!%pinfo) {
	print "<b>$text{'edit_gone'}</b> <p>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'edit_title'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td width=20% nowrap><b>$text{'command'}</b></td>\n";
print "     <td colspan=3><font size=+1>",&cut_string($pinfo{args}, 60),
      "</font></td> </tr>\n";
print "<tr> <td width=20% nowrap><b>$text{'pid'}</b></td><td>$pinfo{pid}</td>\n";
print "<td width=20% nowrap><b>$text{'parent'}</b></td>\n";
if ($pinfo{ppid}) {
	local %ppinfo = &process_info($pinfo{ppid});
	print "<td><a href=\"edit_proc.cgi?$ppinfo{pid}\">",
		&cut_string($ppinfo{'args'},30),"</a></td>";
	}
else { print "<td>$text{'edit_none'}</td>"; }
print " </tr>\n";
print "<tr> <td width=20% nowrap><b>$text{'owner'}</b></td> ",
      "<td>$pinfo{'user'}</td>\n";
print "<td width=20% nowrap><b>$text{'cpu'}</b></td> ",
      "<td>$pinfo{'cpu'}</td> </tr>\n";
print "<tr> <td width=20% nowrap><b>$text{'size'}</b></td> ",
      "<td>$pinfo{'size'}</td>\n";
print "<td width=20% nowrap><b>$text{'runtime'}</b></td> ",
      "<td>$pinfo{'time'}</td> </tr>\n";
print "<tr> <td>",&hlink("<b>$text{'nice'}</b>","nice"),"</td>\n";
print "<form action=renice_proc.cgi>\n";
print "<input type=hidden name=pid value=$ARGV[0]>\n";
print "<td colspan=3>\n";
if (&indexof($pinfo{nice}, @nice_range) < 0) {
	print $pinfo{nice};
	}
else {
	print "<select name=nice>\n";
	for($i=0; $i<@nice_range; $i++) {
		printf "<option value=%d %s>%d%s\n",
			$nice_range[$i],
			$pinfo{nice} == $nice_range[$i] ? "selected" : "",
			$nice_range[$i],
			$i==0 ? " ($text{'edit_prihigh'})" :
			$i==@nice_range-1 ? " ($text{'edit_prilow'})" :
			$nice_range[$i]==0 ? " ($text{'edit_pridef'})" : "";
		}
	print "</select> <input type=submit value='$text{'edit_change'}'>\n";
	}
print "</td> </form></tr>\n";
$i = 0;
foreach $k (keys %pinfo) {
	if ($k =~ /^_/) {
		if ($i%2 == 0) { print "<tr>\n"; }
		printf "<td width=20%% nowrap><b>%s</b></td>\n",
			$info_arg_map{$k};
		print "<td>$pinfo{$k}</td>\n";
		if ($i%2 == 1) { print "<tr>\n"; }
		$i++;
		}
	}
print "</table></td></tr></table><p>\n";

if ($access{'simple'}) {
	# Just display buttons for common signals
	print "<form action=kill_proc.cgi>\n";
	print "<input type=hidden name=pid value=$pinfo{pid}>\n";
	foreach $s ('KILL', 'TERM', 'HUP', 'STOP', 'CONT') {
		printf "<input type=submit value=\"%s\" name=%s>\n",
			$text{"kill_".lc($s)}, $s;
		}
	print "</form>\n";
	}
else {
	# Allow the sending of any signal
	print "<form action=kill_proc.cgi>\n";
	print "<input type=submit value=\"$text{'edit_kill'}\">\n";
	print "<input type=hidden name=pid value=$pinfo{pid}>\n";
	print "<select name=signal>\n";
	foreach $s (split(/\s+/, $Config{sig_name})) {
		printf "<option value=\"$s\" %s> $s\n",
			$s eq "TERM" ? "selected" : "";
		}
	print "</select></form>\n";
	}

@sub = grep { $_->{'ppid'} == $pinfo{pid} } &list_processes();
if (@sub) {
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'edit_sub'}</b></td> </tr>\n";
	print "<tr $cb> <td><table>\n";
	@sub = sort { $a->{'pid'} <=> $b->{'pid'} } @sub;
	foreach $s (@sub) {
		local $p = $s->{'pid'};
		print "<tr> <td><a href=\"edit_proc.cgi?$p\">$p</a></td>\n";
		print "<td>",&cut_string($s->{args}, 80),"</td> </tr>\n";
		}
	print "</table></td></tr></table><p>\n";
	}

print "<hr>\n";
&footer("", $text{'index_return'});

  0707010003cb61000081a40000000000000002000000013ac0389100000508000000200000000000000000000000000000001a00000003reloc/proc/freebsd-lib.pl # freebsd-lib.pl
# Functions for parsing freebsd ps output

sub list_processes
{
local($pcmd, $line, $i, %pidmap, @plist);
$pcmd = @_ ? "-p $_[0]" : "";
open(PS, "ps -axwwww -o pid,ppid,user,vsz,%cpu,time,nice,tty,ruser,rgid,pgid,lstart,lim,command $pcmd |");
for($i=0; $line=<PS>; $i++) {
	chop($line);
	if ($line =~ /ps -axwwww/ || $line =~ /^\s*PID/) { $i--; next; }
	$line =~ /^\s*(\d+)\s+(\d+)\s+(\S+)\s+(\d+)\s+([\d\.]+)\s+(\S+)\s+(-?\d+)\s+(\S+)\s+(\S+)\s+(\d+)\s+(\d+)\s+(-|\S+\s+\S+\s+\d+\s+\S+\s+\d+)\s+(\S+)\s+(.*)$/;

	$plist[$i]->{"pid"} = $1;
	$plist[$i]->{"ppid"} = $2;
	$plist[$i]->{"user"} = $3;
	$plist[$i]->{"size"} = "$4 kB";
	$plist[$i]->{"cpu"} = $5;
	$plist[$i]->{"time"} = $6;
	$plist[$i]->{"nice"} = $7;
	$plist[$i]->{"_tty"} = $8;
	$plist[$i]->{"_ruser"} = $9;
	$plist[$i]->{"_rgroup"} = getgrgid($10);
	$plist[$i]->{"_pgid"} = $11;
	$plist[$i]->{"_lstart"} = $12;
	$plist[$i]->{"_lim"} = $13 eq "-" ? "Unlimited" : $13;
	$plist[$i]->{"args"} = $14;
	}
close(PS);
return @plist;
}

# renice_proc(pid, nice)
sub renice_proc
{
$out = `renice $_[1] -p $_[0] 2>&1`;
if ($?) { return $out; }
return undef;
}

foreach $ia (keys %text) {
	if ($ia =~ /^freebsd(_\S+)/) {
		$info_arg_map{$1} = $text{$ia};
		}
	}

@nice_range = (-20 .. 20);

$has_fuser_command = 0;

1;

0707010003f755000041ed0000000000000001000000023ac03c4b00000000000000200000000000000000000000000000001000000003reloc/proc/help   0707010003f756000081a40000000000000002000000013ac038910000010c000000200000000000000000000000000000001c00000003reloc/proc/help/cmd.es.html   <header>Comando a ejecutar</header>

Un comando o comandos a ejecutar. Debido a que se utiliza el shell est醤dar
<tt>/bin/sh</tt> para ejecutar el comando, puedes utilizar operadores
especiales como <tt>;</tt> , <tt>&lt;</tt> , <tt>|</tt> y <tt>&amp;&amp;</tt>.
<hr>

0707010003f757000081a40000000000000002000000013ac038910000013b000000200000000000000000000000000000001c00000003reloc/proc/help/cmd.fr.html   <header>Commande  ex閏uter</header>

Une ou plusieurs commandes  ex閏uter.  Parceque le shell standard <tt>/bin/sh</tt> est utilis pour ex閏uter la commande, vous devez utiliser des op閞ateurs comme <tt>;</tt> , <tt>&lt;</tt> , <tt>|</tt> et <tt>&amp;&amp;</tt> si vous souhaitez en ex閏uter plusieurs.
<hr>
 0707010003f758000081a40000000000000002000000013ac03891000000fc000000200000000000000000000000000000001900000003reloc/proc/help/cmd.html  <header>Command to run</header>

A command or commands to execute. Because the standard shell <tt>/bin/sh</tt>
is used to execute the command, you may use special operators such as
<tt>;</tt> , <tt>&lt;</tt> , <tt>|</tt> and <tt>&amp;&amp;</tt>.
<hr>

0707010003f759000081a40000000000000002000000013ac0389200000131000000200000000000000000000000000000001c00000003reloc/proc/help/cmd.hu.html   <header>Parancs futtat醩a</header>

Parancs vagy parancsok v間rehajt醩a. Mivel a szabv醤yos burkot (shell-t),
a <tt>/bin/sh</tt> haszn醠atos a parancsok futtat醩akor, ez閞t k黮鰊leges
vez閞l鮧araktereket is haszn醠hat, mint amilyen a
<tt>;</tt> , <tt>&lt;</tt> , <tt>|</tt> 閟 a <tt>&amp;&amp;</tt>.
<hr>
   0707010003f75a000081a40000000000000002000000013ac0389200000136000000200000000000000000000000000000001c00000003reloc/proc/help/cmd.pl.html   <header>Polecenie do uruchomienia</header>

Polecenie lub polecenia, kt髍e zostan wykonane. Mo縠sz u縴wa specjalnych
operator體, takich jak <tt>;</tt>&nbsp;, <tt>&lt;</tt>&nbsp;, <tt>|</tt>
i&nbsp;<tt>&amp;&amp;</tt>, gdy do uruchomienia polecenia u縴ta zostanie
standardowa pow硂ka <tt>/bin/sh</tt>.
<hr>

  0707010003f75b000081a40000000000000002000000013ac0389100000112000000200000000000000000000000000000001c00000003reloc/proc/help/cmd.sv.html   <header>Utf鰎 kommando ...</header>

Ett eller flera kommandon som ska utf鰎a. Standardskalet <tt>/bin/sh</tt>
anv鋘ds f鰎 att utf鰎a kommandot, vilket betyder att det g錼 att anv鋘da
skaloperatorer som <tt>;</tt> , <tt>&lt;</tt> , <tt>|</tt> och
<tt>&amp;&amp;</tt>.
<hr>

  0707010003f75c000081a40000000000000002000000013ac03891000000e0000000200000000000000000000000000000002400000003reloc/proc/help/cmd.zh_TW.Big5.html   <header>璶磅︽㏑</header>

璶磅︽㏑. 夹非╰参㏑催 <tt>/bin/sh</tt> 穦砆ノ磅︽硂㏑, ┮眤ㄏノㄇ㏑催巨, ㄒ <tt>;</tt> , <tt>&lt;</tt> , <tt>|</tt> 籔 <tt>&amp;&amp;</tt>.
<hr>

0707010003f75d000081a40000000000000002000000013ac03891000002bb000000200000000000000000000000000000001c00000003reloc/proc/help/cpu.es.html   <header>Gestor de Procesos - Vista por UCP</header>

Esta p醙ina muestra todos los procesos en ejecuci髇 bajo tu sistema
ordenados por utilizaci髇 de UCP. Para cada proceso se muestra el PID,
propietario, UCP y su comando. Se puede hacer click en la PID para ver
m醩 informaci髇. <p>

Esta vista es 鷗il para bucar procesos que utilizan excesiva cantidad de
tiempo de UCP. La utilizaci髇 de cada proceso es mostrada como un
porcentaje del total de UCP disponible. Esto quiere decir que, en un sistema
normal, la suma de todos los proceso ser inferior al 100%. S髄o si uno o m醩
procesos est醤 realizando anlguna tarea intensiva, se usar toda la potencia
de tu UCP. <p>

<include overview.es>
<hr>
 0707010003f75e000081a40000000000000002000000013ac038910000031f000000200000000000000000000000000000001c00000003reloc/proc/help/cpu.fr.html   <header>Tri par utilisation du processeur</header>

Cette page montre tous les processus du syst鑝e tri閟 par utilisation du processeur.  Pour chaque processus est affich le num閞o, le propri閠aire, l'utilisation et la commande. Vous pouvez cliquer sur le num閞o d'un processus pour afficher plus d'informations.<p>

Cette vue est utile pour trouver les processus qui consomment une quantit excessive du processeur.  L'utilisation de chaque processus est affich閑 en pourcentage total du CPU disponible.  Ceci signifie  que sur un syst鑝e normal (1 seul processeur), la somme de tous les processus sera de moins de 100%. Le total sera de 100% seulement si un ou plusieurs processus ex閏utent des t鈉hes intenses occupant ainsi toute la puissance du processeur.<p>

<include overview>
<hr>
 0707010003f75f000081a40000000000000002000000013ac0389100000288000000200000000000000000000000000000001900000003reloc/proc/help/cpu.html  <header>Process Manager - CPU View</header>

This page shows all running process on your system, ordered by CPU 
utilization. For each process the PID, owner, CPU and command is displayed.
The PID can be clicked on to display more information. <p>

This view is useful for finding processes that are using excessive amounts
of CPU time. The utilization of each process is shown as a percentage of
the total CPU available. This means that on a normal system, the sum of
all processes will be less than 100%. Only if one or more processes are
performing some intensive task will all the CPU power of your system be
used. <p>

<include overview>
<hr>
0707010003f760000081a40000000000000002000000013ac03892000002ba000000200000000000000000000000000000001c00000003reloc/proc/help/cpu.hu.html   <header>Processz menedzser - CPU n閦et</header>

Ez az oldal megmutatja az 謓 rendszer閚 fut processzeket, CPU-kihaszn醠ts醙
szerint rendezve. Minden processzhez megjelenik a PID, tulajdonos, CPU 閟 a
parancs fejl閏. B鮲ebb inform醕i髃閞t kattintsion a PID-ekre.<p>

Ez a n閦et hasznos lehet, ha olyan processzeket akar tal醠ni, amelyek
t鷏zott CPU-id鮰 haszn醠nak fel. A kihaszn醠ts醙 processzenk閚t jelenik meg,
az 鰏szes CPU-id sz醶al閗醔an. Ez egy 醫lagos rendszeren annyit tesz, hogy
az processzt egy黷tv関e 100%-n醠 kevesebbet haszn醠nak. Csak akkor ugrik
meg a CPU-er鮢orr醩ok kihaszn醠ts醙a, ha egy vagy t鯾b processz igen
munkaig閚yes feladatokat hajt v間re.<p>

<include overview>
<hr>
  0707010003f761000081a40000000000000002000000013ac0389200000318000000200000000000000000000000000000001c00000003reloc/proc/help/cpu.pl.html   <header>Zarz眃ca proces體 - wg zu縴cia CPU</header>

Ta strona ukazuje wszystkie dzia砤j眂e w&nbsp;Twoim systemie procesy,
uporz眃kowane wed硊g zu縴cia CPU. Dla ka縟ego procesu podano numer PID,
w砤禼iciela oraz polecenie uruchamiaj眂e. Naci秐ij na numer PID, aby
wy秝ietli wi阠ej informacji. <p>

Mo縠sz skorzysta z&nbsp;tego przegl眃u aby okre秎i, kt髍e polecenia
w&nbsp;Twoim systemie zu縴waj zbyt du縪 czasu CPU. Wykorzystanie CPU dla
ka縟ego procesu jes podane jako procentowa cz甓 潮cznej mo縧iwej zaj阾o禼i
CPU. Oznacza to, 縠 w&nbsp;zwyk硑m systemie 潮czna suma dla wszystkich
proces體 b阣zie mniejsza od 100%. Jedynie w&nbsp;sytuacji, gdy jeden lub
kilka proces體 wykonuje pewne intensywne zadania, ca砤 moc CPU twojego
systemu b阣zie wykorzystana. <p>

<include overview>
<hr>
0707010003f762000081a40000000000000002000000013ac0389100000265000000200000000000000000000000000000001c00000003reloc/proc/help/cpu.sv.html   <header>Processhanterare - CPU-鰒ersikt</header>

P denna sida visas alla processer, ordnade efter CPU-utnyttjande, som
k鰎s p systemet. F鰎 varje process anges PID, 鋑are, CUP och kommando.
Du kan klicka p PID f鰎 att f mer information.

<p>Det h鋜 kan du anv鋘da f鰎 att hitta processer som slukar CPU-tid.
F鰎 varje process visas CPU-anv鋘dningen i procent av tillg鋘glig CPU,
vilket betyder att p ett vanligt system b鰎 summan av alla processers
CPU bli l鋑re 鋘 100 %. Det 鋜 endast om en eller flera processer utf鰎
n錱on CPU-tung uppgift som all CPU-kraft i systemet anv鋘ds.

<include overview>
<hr>
   0707010003f763000081a40000000000000002000000013ac0389100000200000000200000000000000000000000000000002400000003reloc/proc/help/cpu.zh_TW.Big5.html   <header>祘恨瞶 - ㄌ沮 CPU ㄏノ秖</header>

硂陪ボ┮Τ眤╰参ヘ玡磅︽祘, ㄌ沮 CPU ㄏノ秖逼. 癸–祘, ウ祘絪腹 (PID), 局Τ, CPU ㄏノ秖籔┮磅︽㏑常穦砆陪ボㄓ. 眤翴匡<tt>祘絪腹</tt>陪ボ闽戈癟. <p>

硂陪ボ家Α眤璶т秖 CPU 丁祘Α琌讽Τノ. 癸–祘 CPU ㄏノ秖常琌羆 CPU 秖κだゑ陪ボ. 硂ボ╰参, ┮Τ祘羆莱赣穦 100%. 埃獶Τ┪祘盞栋璶―ㄏノ场 CPU 笲衡. <p>

<include overview>
<hr>
0707010003f764000081a40000000000000002000000013ac03891000006ad000000200000000000000000000000000000002200000003reloc/proc/help/edit_proc.es.html <header>Editar Proceso</header>

Esta p醙ina muestra detalles de un proceso en ejecuci髇. En la parte superior
se muestra la siguiente informaci髇:
<dl>
<dt><b>Comando</b>
<dd>El programa y argumento de l韓ea de comandos de este proceso
<dt><b>ID de Proceso</b>
<dd>La ID 鷑ica de proceso
<dt><b>Proceso Padre</b>
<dd>El proceso que cre a 閟te. Haz click en 閘 para ver los detalles del
    padre.
<dt><b>Usuario</b>
<dd>El usuario propietario de este proceso y bajo cuyos permisos se ejecuta
<dt><b>Uso de UCP</b>
<dd>El porcentaje de tiempo de UCP que este proceso usa en este momento
<dt><b>Medida</b>
<dd>La cantidad de memoria ocupada por este proceso. Alguna de ella puede
    que est compartida por otros procesos.
<dt><b>Tiempo de Ejecuci髇</b>
<dd>La cantidad total de tiempo de UCP usado por este proceso desde que fue
    iniciado, en minutos. A menos que el proceso sea de uso muy intenso de UCP,
    no debe de ser el mismo que el n鷐ero de minutos transcurridos desde que
    empez.
<dt><b>Nivel de Nice</b>
<dd>La prioridad con que este proceso se ejecuta. Hay
    <a href=nice.es>m醩 informaci髇</a> disponible a cerca del nivel de nice.
</dl>
Se puede mostrar informaci髇 adicional, dependiendo de la versi髇 exacta de
Unix que est閟 ejecutando. <p>

Bajo la informaci髇 de procesos hay un bot髇 para enviar una se馻l al
proceso. Selecciona la se馻l que quieres enviar de la lista disponible, luego
haz click en el bot髇 de <tt>Enviar Se馻l</tt>. Las se馻les m醩 鷗iles son
<tt>KILL</tt> y <tt>TERM</tt>, para matar procesos. <p>

Si este proceso tiene algunos hijos, ser醤 mostrados en la parte inferior de
la p醙ina. Haz click en una ID de la lista para ver informaci髇 detallada.
<hr>

   0707010003f765000081a40000000000000002000000013ac03891000006fd000000200000000000000000000000000000002200000003reloc/proc/help/edit_proc.fr.html <header>蒬iter un processus</header>

Cette page affiche les d閠ails d'un processus. Voici les informations affich閑s :
<dl>
<dt><b>Commande</b>
<dd>Le programme et la ligne de commande avec les arguments qui ont servi  ex閏uter le processus.
<dt><b>Num閞o</b>
<dd>Le num閞o de processus unique (PID).
<dt><b>Processus parent</b>
<dd>Le processus qui l'a cr殚.  Cliquer sur celui-ci pour avoir ses d閠ails.
<dt><b>Utilisateur</b>
<dd>L'utilisateur  qui appartient le processus et qui a ses permissions.
<dt><b>Utilisation processeur</b>
<dd>Le pourcentage processeur que ce processus utilise en ce moment.
<dt><b>Taille</b>
<dd>La quantit de m閙oire consomm閑 par ce processus. Cette quantit peut 阾re partag閑 avec d'autre processus.
<dt><b>Temps d'ex閏ution</b>
<dd>Le temps total en minutes du temps processeur utilis par ce processus depuis qu'il a 閠 d閙arr. Tant que le processus n'utilisera pas assez le processeur les minutes 閏oul閑s ne seront pas les m阭es que celles depuis qu'il a 閠 ex閏ut.
<dt><b>Niveau de priorit</b>
<dd>La priorit avec laquelle le processus est ex閏ut. <a href = nice>Plus d'informations</a> sont disponible ici sur le sujet.
</dl>
Des informations additionnelles peuvent 阾re affich閑sen fonction de la version d'Unix exacte que vous utilisez.<p>

Sous les informations sur le processus se trouve un bouton qui envoie un signal au processus correspondant. Choisissez le signal que vous voulez envoyer au processus et cliquez sur le bouton <tt>Envoyer un signal</tt>. Les signaux les plus utiles sont <tt>KILL</tt> et <tt>TERM</tt> pour tuer un processus.<p>

Si le processus a des enfants, ils seront affich閟 au bas de la page, cliquer sur le num閞o correspondant pour afficher les informations d閠aill閑s.

<hr>
   0707010003f766000081a40000000000000002000000013ac0389100000628000000200000000000000000000000000000001f00000003reloc/proc/help/edit_proc.html    <header>Edit Process</header>

This page displays details of a running process. At the top
the following information is displayed :
<dl>
<dt><b>Command</b>
<dd>The program and command line arguments for this process
<dt><b>Process ID</b>
<dd>The unique process ID
<dt><b>Parent Process</b>
<dd>The process that created this one. Click on it to display the details of
    the parent.
<dt><b>User</b>
<dd>The user who owns this process, and with whose permissions it runs
<dt><b>CPU Use</b>
<dd>The percentage of CPU time this process is currently using
<dt><b>Size</b>
<dd>The amount of memory occupied by this process. Some of this may be
    shared by other processes
<dt><b>Run Time</b>
<dd>The total amount of CPU time used by this process since it was started,
    in minutes. Unless the process was very CPU intensive, this will not be
    the same as the number of minutes elapsed since it began.
<dt><b>Nice Level</b>
<dd>The priority at which this process runs. <a href=nice>More information</a>
    about the nice level is available.
</dl>
Additional information may also be displayed, depending on the exact Unix
version you are running. <p>

Below the process information is a button for sending a signal to the
process. Select the signal that you want to send from the
list, then click the <tt>Send Signal</tt> button. The most useful signals 
are <tt>KILL</tt> and <tt>TERM</tt>, for killing the process. <p>

If this process has any children, they will be displayed at the bottom of
the page. Click on an ID from the list to display detailed information. 
<hr>

0707010003f767000081a40000000000000002000000013ac0389200000656000000200000000000000000000000000000002200000003reloc/proc/help/edit_proc.hu.html <header>Processz szerkeszt閟e</header>

Ez az oldal a fut processz tulajdons醙ait jelen韙i meg. Legfel黮 a
k鰒etkez inform醕i髃 tal醠hat髃:
<dl>
<dt><b>Parancs</b>
<dd>A processz programneve 閟 parancssori argumentumai.
<dt><b>Processz ID</b>
<dd>Az egy閚i processz ID-je (azonos韙骿a).
<dt><b>Sz黮 processz</b>
<dd>Az a processz, amely ezt l閠rehozta. A sz黮 r閟zleteinek megtekint閟閔ez
kattintson a linkre.
<dt><b>Felhaszn醠</b>
<dd>A felhaszn醠, amely a processz tulajdonosa illetve milyen jogosults醙okkal
futtatja azt.
<dt><b>CPU-id felhaszn醠醩</b>
<dd>Az a sz醶al閗ban meghat醨ozott CPU-id, amelyet a processz 閜pen haszn醠.
<dt><b>M閞et</b>
<dd>Az a mem髍iamennyis間, amelyet a processz elfoglal. Ebben benne van az
is, amelyet m醩 processzekkel oszt meg.
<dt><b>A fut醩 ideje</b>
<dd>A percekben megadott 鰏szes CPU-id, amelyet a processz az indul醩t髄
sz醡韙va elhaszn醠t. Ez nem egyezik meg az ind韙醩醫髄 eltelt
id鮲el, kiv関e ha igen intenz韛 a processz CPU-ig閚ye.
<dt><b>Nice-szint</b>
<dd>A priorit醩, amellyel a processz fut. <a href=nice>B鮲ebb inform醕i itt</a>
閞het el a nice-szintekr鮨.
</dl>
Hogy egy閎 inform醕i髃 is megjelennek-e az att髄 f黦g, hogy milyen Unix
v醠tozatot haszn醠.<p>

A processz inform醕i髃 alatt van egy nyom骻omb, amellyel jelz閟eket
k黮dhet a processznek. V醠assza ki a list醔髄 a k韛醤t jelz閟t, majd
kattintson a <tt>Jelz閟 k黮d閟e</tt> gombra. A processz kil鰒閟閔ez
alkalmazhat szign醠ok: a <tt>KILL</tt> 閟 a <tt>TERM</tt>.<p>

Ha a processznek voltak gyerekei, akkor azok megjelennek az oldal alj醤.
B鮲ebb inform醕i髃閞t kattintson az azonos韙骿ukra.
<hr>
  0707010003f768000081a40000000000000002000000013ac03892000006ec000000200000000000000000000000000000002200000003reloc/proc/help/edit_proc.pl.html <header>Informacje o procesie</header>

Ta strona pokazuje dane dzia砤j眂ego procesu. W&nbsp;g髍nej cz甓ci znajduj
si nast阷uj眂e informacje&nbsp;:
<dl>
<dt><b>Polecenie</b>
<dd>Nazwa programu i&nbsp;podane w&nbsp;linii polece argumenty dla tego
    programu
<dt><b>Nr ID procesu</b>
<dd>Unikalny numer ID procesu
<dt><b>Proces rodzica</b>
<dd>Proces, kt髍y dany proces utworzy. Naci秐ij na nim, aby obejrze dane
    dotycz眂e procesu rodzica.
<dt><b>W砤禼iciel</b>
<dd>U縴tkownik, kt髍y jest w砤禼icielem procesu oraz z&nbsp;prawami kt髍ego
    on dzia砤
<dt><b>Zu縴cie CPU</b>
<dd>Procentowe wykorzystanie czasu CPU przez ten proces
<dt><b>Rozmiar</b>
<dd>Ilo舵 pami阠i zaj阾ej przez ten proces. Jej cz甓 mo縠 by dzielona
    z&nbsp;innymi procesami
<dt><b>Czas dzia砤nia</b>
<dd>Ca砶owita ilo舵 czasu CPU zu縴ta przez ten proces od chwili
    uruchomienia, w&nbsp;minutach. Zazwyczaj nie jest to ilo舵 minut, kt髍e
    up硑n瓿y od chwili jego uruchomienia, chyba 縠 proces bardzo intensywnie
    u縴wa CPU.
<dt><b>Poziom nice</b>
<dd>Priorytet, z&nbsp;jakim ten proces dzia砤. Mo縠sz r體nie uzyska 
    <a href=nice>wi阠ej informacji</a> na temat poziomu nice.
</dl>
Inne informacje mog r體nie by dost阷ne w&nbsp;zale縩o禼i od wersji
Uniksa, kt髍ej u縴wasz. <p>

Poni縠j informacji o&nbsp;procesie znajduje si przycisk s硊勘cy do wys砤nia
sygna硊 do procesu. Wybierz sygna, kt髍y chcesz wys砤 z&nbsp;listy,
a&nbsp;nast阷nie naci秐ij przycisk <tt>Wy秎ij sygna</tt>. Najbardziej 
przydatne s sygna硑 <tt>KILL</tt> i&nbsp;<tt>TERM</tt>, s硊勘ce do zabicia
procesu. <p>

Je秎i ten proces ma procesy potomne, b阣 one wy秝ietlone w&nbsp;dolnej
cz甓ci strony. Naci秐ij numer ID z&nbsp;listy, aby uzyska szczeg蟪owe
informacje o&nbsp;procesie potomnym.
<hr>
0707010003f769000081a40000000000000002000000013ac038910000062b000000200000000000000000000000000000002200000003reloc/proc/help/edit_proc.sv.html <header>膎dra process</header>

P denna sida visas uppgifter om en aktiv process. H鰃st upp visas f鰈jande
information:
<dl>
<dt><b>Kommando</b>
<dd>Program och kommandoradsargument f鰎 denna process.
<dt><b>Process-ID</b>
<dd>Unikt process-ID.
<dt><b>F鰎鋖draprocess</b>
<dd>Processen som skapade denna process. Klicka p namnet f鰎 att se
    uppgifter om f鰎鋖draprocessen.
<dt><b>Anv鋘dare</b>
<dd>Den anv鋘dare som 鋑er processen och med vars r鋞tigheter processen k鰎s.
<dt><b>CPU-anv鋘dning</b>
<dd>Andel (i procent) av den totala CPU-tiden som denna process anv鋘der f鰎
    tillf鋖let.
<dt><b>Storlek</b>
<dd>M鋘gd minne som anv鋘ds av denna process. Denna m鋘gd kan delvis vara
    gemensam med andra processer.
<dt><b>K鰎tid</b>
<dd>CPU-tid (i minuter) som processen totalt har anv鋘t sedan den startades.
    Om processen inte 鋜 v鋖digt CPU-intensiv ska detta inte vara lika mycket
    som den tid som g錿t sedan processen startades.
<dt><b>Nice-niv</b>
<dd>Prioritet som processen k鰎s med. Det finns <a href=nice>mer
    information</a> om nice-niv.
</dl>
Det kan ocks finnas mer information beroende p vilken Unix-version du k鰎.

<p>Nedanf鰎 processinformationen finns en knapp f鰎 att skicka en signal
till processen. V鋖j fr錸 listan den signal du vill skicka och tryck sedan
p <tt>Skicka signal</tt>. De mest anv鋘dbara signalerna 鋜 <tt>KILL</tt>
och <tt>TERM</tt> som sl錼 ihj鋖 processen.

<p>Om processen har n錱ra underprocesser visas dessa l鋘gst ned p sidan. Du kan
klicka p ett process-ID f鰎 att se mer uppgifter om respektive process.
<hr>

 0707010003f76b000081a40000000000000002000000013ac03891000000f2000000200000000000000000000000000000001e00000003reloc/proc/help/input.es.html <header>Entrada para el comando</header>

Cualquier texto digitado en este campo ser pasado al comando como su
entrada est醤dar. Por ejemplo, si el comando es <tt>perl</tt> entonces
la entrada ser韆 ejecutada como un programa de perl.
<hr>

  0707010003f76a000081a40000000000000002000000013ac0389100000449000000200000000000000000000000000000002a00000003reloc/proc/help/edit_proc.zh_TW.Big5.html <header>祘戈癟</header>

硂陪ボ磅︽い祘冈灿戈. 矪穦陪ボ戈:
<dl>
<dt><b>㏑</b>
<dd>硂祘籔闽㏑把计
<dt><b>祘絪腹 (PID)</b>
<dd>盡祘絪腹
<dt><b>ダ祘</b>
<dd>ミ硂祘﹍祘. 翴匡ぇ浪跌ダ祘冈灿戈.
<dt><b>局Τ</b>
<dd>局Τ硂祘ㄏノ, 籔ㄏノㄏノ舦磅︽硂祘.
<dt><b>CPU ㄏノ秖</b>
<dd>硂祘ヘ玡ㄏノ CPU κだゑ.
<dt><b>癘拘砰</b>
<dd>硂祘ノ癘拘砰. 场だ癘拘砰丁琌籔ㄤ祘ㄉ.
<dt><b>磅︽丁</b>
<dd>硂祘币笆, 龟悔ㄏノ奔 CPU 丁. 埃獶硂祘惠璶讽 CPU 笲衡, 硂盢ぃ籔祘Α眖秨﹍磅︽ヘ玡丁.
<dt><b>纔单</b>
<dd>硂祘磅︽纔单. <a href=nice>硂娩</a>Τ闽纔单癟.
</dl>
ㄌ沮眤 Unix ╰参ぃ, 穦陪ボ戈癟. <p>

祘戈癟虫秙琵眤癳北癟腹倒硂祘. 叫眖い匡眤惠璶癳北癟腹, <tt>癳北癟腹</tt>秙. 程盽ノ北癟腹 <tt>KILL</tt> 籔 <tt>TERM</tt>, ノ埃硂祘. <p>

狦硂祘Τヴ祘, ウ常穦砆硂┏狠. ウ絪腹陪ボ冈灿戈癟. 
<hr>

   0707010003f76c000081a40000000000000002000000013ac038910000008b000000200000000000000000000000000000001e00000003reloc/proc/help/input.fr.html <header>Entr閑 de la commande</header>

Tout texte de ce champ sera pass  la commande par l'interm閐iaire de l'entr閑 standard.
<hr>
 0707010003f76d000081a40000000000000002000000013ac03891000000dd000000200000000000000000000000000000001b00000003reloc/proc/help/input.html    <header>Input to command</header>

Any text entered into this field will be passed to the command as
standard input. For example, if the command was <tt>perl</tt> then
any input would be executed as a perl program.
<hr>

   0707010003f771000081a40000000000000002000000013ac03892000000d8000000200000000000000000000000000000001e00000003reloc/proc/help/input.hu.html <header>Parancs bemenete</header>

Minden ebben a mez鮞en megadott sz鰒eg a parancs szabv醤yos bemenet閠
fogja k閜ezni. P閘d醬l, ha parancs a <tt>perl</tt> volt, akkor a
bemenet perl programk閚t v間rehajt骴ik.
<hr>

0707010003f772000081a40000000000000002000000013ac03892000000f6000000200000000000000000000000000000001e00000003reloc/proc/help/input.pl.html <header>Dane wej禼iowe</header>

Dowolny tekst wprowadzony w&nbsp;tym polu zostanie przekazany poleceniu jako
standardowe wej禼ie. Na przyk砤d, je秎i poleceniem b阣zie <tt>perl</tt>, to
dane wej禼iowe zostan wykonane jako program w perlu.
<hr>

  0707010003f785000081a40000000000000002000000013ac03891000000ed000000200000000000000000000000000000001e00000003reloc/proc/help/input.sv.html <header>Inmatning till kommando</header>

Den text du skriver h鋜 kommer att skickas till kommandot som normal
inmatning. Om du exempelvis har angivit kommandot <tt>perl</tt> kommer
inmatningen h鋜 att utf鰎as som ett perlprogram.
<hr>

   0707010003f786000081a40000000000000002000000013ac03891000000a1000000200000000000000000000000000000002600000003reloc/proc/help/input.zh_TW.Big5.html <header>倒㏑块</header>

ヴ硂逆块ゅ常穦竒パ夹非块癳倒┮磅︽㏑. 羭ㄒτē, 狦 <tt>perl</tt>, 块戈盢穦砆 perl ┮磅︽.
<hr>

   0707010003f787000081a40000000000000002000000013ac0389100000503000000200000000000000000000000000000001e00000003reloc/proc/help/intro.es.html <header>Procesos Unix</header>

Un proceso es simplemente una programa que se est ejecutando bajo tu sistema.
Tu visor web, gestor de ventanas, ventana de terminales y servidor X son
todos procesos con los que interact鷄s directamente. Muchos otros procesos son
ejecutados en segundo plano como servidores web y otras tareas del sistema.
Se crea un nuevo proceso cada vez que digitas un comando como <tt>ls</tt>
o <tt>pwd</tt>, aunque t韕icamente estos comandos son de corta vida. <p>

Cada proceso tiene una ID 鷑ica, llamada la ID del proceso o PID. Al ejecutar
cada proceso en un momento dado, se le asigna una ID diferente, con
el tiempo las PIDs pueden ser reutilizadas. <p>

Aparte del proceso inicial (t韕icamente llamado <tt>init</tt>) cada uno tiene
un proceso padre desde el cual ha sido creado. Por ejemplo, si ejecutas
<tt>vi</tt> desde el prompt del shell, el proceso padre de <tt>vi</tt> ser
tu shell. Un proceso puede tener cualquier n鷐ero de hijos, pero s髄o un
padre. <p>

Cada proceso se ejecuta con los permisos de alg鷑 usuario y grupo los cuales
se aplican cada vez que accede a archivos y directorios. Los usuarios y
procesos pueden matar s髄amente los procesos que les pertenezcan, con la
excepci髇 de <tt>root</tt> que puede matar a cualquiera. <p>

<hr>

 0707010003f788000081a40000000000000002000000013ac03891000005a2000000200000000000000000000000000000001e00000003reloc/proc/help/intro.fr.html <header>Processus sous Unix</header>

Un processus est simplement un programme ex閏ut sur votre syst鑝e. Votre navigateur web, un gestionnaire de fen阾re, un terminal et le serveur X sont tous des processus avec lesquels vous interagissez directement. Plusieurs autres processus sont ex閏ut閟 en arri鑢e plan, comme un serveur web et d'autre t鈉hes syst鑝es. Un nouveau processus est cr殚 chaque fois que vous entrez une commande comme <tt>ls</tt> ou <tt>pwd</tt> ce qui implique qu'un processus a souvent une courte dur閑 de vie.<p>

Chaque processus a un num閞o unique. A chaque ex閏ution de programme, le num閞o est incr閙ent et recommencera  1 une fois arriv  32768 en sautant les num閞os encore utilis閟. Le m阭e num閞o  ne pourra jamais 阾re utilis par deux processus en m阭e temps.<p>

A part le processus initial (g閚閞alement appel <tt>init</tt>), chaque processus a un parent  partir duquel il a 閠 cr殚. Par exemple, si vous ex閏utez <tt>vi</tt>  partir de votre interpr閠eur de commandes, <tt>vi</tt> aura l'intepr閠eur de commandes comme parent.  Un processus peut avoir plusieurs enfants mais un seul et unique parent.<p>

Chaque processus s'ex閏ute avec les permissions de l'usager et du groupe, qui s'applique quand il acc鑔e fichier et r閜ertoire.  Les usagers et processus peuvent seulement tuer d'autre processus dont ils sont propri閠aire,  l'exception de <tt>root</tt> qui peut tout faire.<p>

<hr>
  0707010003f789000081a40000000000000002000000013ac0389100000472000000200000000000000000000000000000001b00000003reloc/proc/help/intro.html    <header>Unix Processes</header>

A process is simply a running program on your system. Your web browser,
window manager, terminal window and X server are all processes that you
interact with directly. Many other processes run in the background,
such as web servers and other system tasks. A new process is created every
time you type a command like <tt>ls</tt> or <tt>pwd</tt>, though such processes
are typically short-lived. <p>

Every process has a unique ID, called the process ID or PID. While every
process running at any one time has a different ID, over time PIDs may be
re-used. <p>

Apart from the initial process (typically called <tt>init</tt>) each has a
parent process from which it was created. For example, if you run <tt>vi</tt>
from your shell prompt, <tt>vi</tt>'s parent process will be your shell.
A process can have any number of children, but only one parent. <p>

Each process runs with the permissions of some user and group, which apply
when it accesses files and directories. Users and processes may only kill
other processes that they own, with the exception of <tt>root</tt> who
can kill anything. <p>

<hr>

  0707010003f78a000081a40000000000000002000000013ac0389200000524000000200000000000000000000000000000001e00000003reloc/proc/help/intro.hu.html <header>Unix processzek</header>

A processz nem m醩, mint egy egyszer, az 謓 rendszer閚 fut program. A
webb鰊g閟z, az ablakkezel, a termin醠 ablak, az X kiszolg醠, mind-mind
olyan processz, amely k鰖vetlen黮 閞v閚yes韙i hat醩醫. Sz醡os egy閎
processz a h醫t閞ben fut, mint pl. a webkiszolg醠 閟 egy閎 rendszerszint
munk醟. Egy 鷍 processz j鰊 l閠re minden egyes alkalommal, amikor beg閜el
egy parancsot, mint amilyen az <tt>ls</tt> vagy a <tt>pwd</tt>, b醨 ezek
jellegzetesen r鰒id 閘et鹐k.<p>

Minden processz rendelkezik egy egyedi azonos韙髒al (ID), amelyett processz
ID-nek vagy PID-nek nevez黱k. Egyid鮞en fut processzeknek k黮鰊b鰖
a PID-j黭, de egy id eltelt関el a PID-ek 鷍ra haszn醠atba ker黮hetnek.<p>

A kezdeti processzt鮨 val lev醠醩t髄 (amit 醠tal醔an <tt>init</tt>nek 
h韛nak) kezdve mindegyiknek van egy sz黮 processze, amely 鮰 l閠rehozta.
P閘d醬l, ha a <tt>vi</tt>-t a shell parancssorb髄 futtatja, a <tt>vi</tt>
sz黮 processze a shell lesz. Egy processznek t鯾b gyereke lehet, de csak
egy sz黮鮦e.<p>

Minden processz egy(n閔醤y) felhaszn醠 閟 csoport jogosults醙aival fut,
amely f醞lok 閟 k鰊yvt醨ak hozz醘閞閟ekor haszn醠atos. A felhaszn醠髃 閟
a processzek csak azokat processzeket l鮤etik ki, amelyeket birtokolnak.
Ez al髄 kiv閠el a <tt>root</tt>, aki b醨mit kil鮤et.<p>

<hr>
0707010003f78b000081a40000000000000002000000013ac0389200000515000000200000000000000000000000000000001e00000003reloc/proc/help/intro.pl.html <header>Procesy uniksowe</header>

Proces jest to po prostu dzia砤j眂y w&nbsp;Twoim systemie program. Twoja
przegl眃arka, zarz眃ca okienek, okienko terminala czy X serwer - wszystkie
s procesami, z&nbsp;kt髍ymi si bezpo秗ednio komunikujesz. Wiele innych
proces體, jak serwery WWW czy inne zadania systemowe, dzia砤 w&nbsp;tle.
Za ka縟ym razem, gdy wydasz polecenie takie, jak <tt>ls</tt> czy
<tt>pwd</tt> tworzony jest nowy proces, jednak縠 takie procesy s zazwyczaj
kr髏ko縴j眂e. <p>

Ka縟y proces posiada sw骿 unikalny numer ID, zwany numerem ID procesu lub
PID-em. Ka縟y dzia砤j眂y w&nbsp;danej chwili proces ma inny numer ID, lecz
PID-u proces體, kt髍e zako馽zy硑 dzia砤nie mog by p蠹niej u縴te ponownie.
<p>

Opr骳z procesu inicjuj眂ego (zazwyczaj zwanego <tt>init</tt>), ka縟y ma
swojego rodzica, kt髍y go utworzy. Na przyk砤d, je縠li uruchomisz
<tt>vi</tt> z&nbsp;linii polece, rodzicem <tt>vi</tt> b阣zie twoja pow硂ka.
Proces mo縠 mie dowolna liczb potomk體, ale tylko jednego rodzica. <p>

Ka縟y proces dzia砤 z&nbsp;prawami pewnego u縴tkownika i&nbsp;pewnej grupy,
kt髍e maj zastosowanie przy dost阷ie przez niego do plik體. U縴tkownicy
i&nbsp;procesy mog zabija jedynie inne procesy, kt髍ych s w砤禼icielami,
za wyj眛kiem <tt>root</tt>a, kt髍y mo縠 zabi wszystko. <p>

<hr>

   0707010003f78c000081a40000000000000002000000013ac0389100000459000000200000000000000000000000000000001e00000003reloc/proc/help/intro.sv.html <header>Unix-processer</header>

En process 鋜 enkelt uttryckt ett program som k鰎s p systemet. Webbrowsern,
f鰊sterhanteraren, terminalf鰊stret och X-servern 鋜 processer som man kan
p鍁erka direkt. Andra processer k鰎 i bakgrunden, exempelvis webservrar
och andra systemprogram. Varje g錸g man skriver in ett kommando, t ex
<tt>ls</tt> ellr <tt>pwd</tt>, skapas en process (fast dessa processer 鋜
v鋖digt kortlivade).

<p>Varje process har ett unikt ID som kallas process-ID eller PID. Processer
som k鰎 samtidigt har olika ID, men med tiden 錿eranv鋘ds PID-nummer.

<p>Bortsett fr錸 initieringsprocessen (vanligen <tt>init</tt>) har varje
process en f鰎鋖draprocess som skapade den. Om man t ex k鰎 <tt>vi</tt>
fr錸 skalprompten 鋜 f鰎鋖draprocessen till <tt>vi</tt> skalet. En process
kan ha ett obegr鋘sat antal underprocesser men endast en f鰎鋖der.

<p>Varje process k鰎s med n錱on anv鋘dares och grupps r鋞tigheter, som
g鋖ler d processen f鰎s鰇er komma 錿 filer och kataloger. Anv鋘dare och
processer f錼 bara sl ihj鋖 processer som de sj鋖va 鋑er, utom <tt>root</tt>,
som f錼 sl ihj鋖 allt.

<hr>

   0707010003f78d000081a40000000000000002000000013ac0389100000339000000200000000000000000000000000000002600000003reloc/proc/help/intro.zh_TW.Big5.html <header>Unix 祘</header>

祘琌眤╰参磅︽祘Α. 眤呼聅凝竟, 跌怠恨瞶, 沧狠诀跌怠籔 X 狝竟单单常琌籔眤钡が笆祘. 临Τ砛璉春磅︽祘, ㄒ呼狝竟┪ㄤ╰参单单. –讽眤磅︽㏑ㄒ <tt>ls</tt> ┪ <tt>pwd</tt> 单单, 常穦ミ穝祘, τ硂ㄇ祘τē戳常讽祏. <p>

–祘常穦Τ斑絪腹, 祘絪腹 (PID). –磅︽い祘常穦Τぃ絪腹, τㄏノ筁絪腹砆Μ穝ㄏノ. <p>

ぃσ納癬﹍て祘 ( <tt>init</tt>), –祘常穦Τミウダ祘. 羭ㄒτē, 狦眤眖╰参㏑催磅︽ <tt>vi</tt> 祘Α, <tt>vi</tt> ダ祘獽琌眤㏑催. –祘常Τ祘, 常穦Τダ祘. <p>

–祘常穦Τ癸莱ㄏノ┪竤舱舦, 癸莱┮ㄏノ郎┪ヘ魁舦. ㄏノ籔祘常埃ㄤ┮局Τ祘, τΤ <tt>root</tt> 埃ヴ種祘. <p>

<hr>

   0707010003f78e000081a40000000000000002000000013ac03891000001a1000000200000000000000000000000000000001d00000003reloc/proc/help/mode.es.html  <header>Modo de ejecuci髇</header>

<dl>
<dt><b>Ejecutar en segundo plano</b>
<dd>El comando ser iniciado en segundo plano y tu visor dirigido a la lista
    de procesos en ejecuci髇. <p>
<dt><b>Esperar hasta que termine</b>
<dd>El comando ser ejecutado y mostrada su salida. Esta opci髇 no deber韆
    de ser usada para comandos que se ejecutan por siempre tales como los
    procesos de servidor. <p>
</dl>
<hr>

   0707010003f78f000081a40000000000000002000000013ac038910000019e000000200000000000000000000000000000001d00000003reloc/proc/help/mode.fr.html  <header>Modes d'ex閏ution</header>

<dl>
<dt><b>Ex閏ute en arri鑢e plan</b>
<dd>Cette commande sera ex閏ut閑 en arri鑢e plan et votre navigateur reviendra  la liste des processus. <p>
<dt><b>Attendre son ex閏ution compl鑤e</b>
<dd>La commande s'ex閏utera et sa sortie affich閑. Cette option ne devrait pas 阾re utilis閑 pour des commandes qui s'ex閏ute continuellement, comme les serveurs.<p>
</dl>
<hr>
  0707010003f790000081a40000000000000002000000013ac0389100000174000000200000000000000000000000000000001a00000003reloc/proc/help/mode.html <header>Run mode</header>

<dl>
<dt><b>Run in background</b>
<dd>The command will be started in the background and your browser directed
    to the list of running processes. <p>
<dt><b>Wait until complete</b>
<dd>The command will be run and its output displayed. This option should not
    be used for commands that run forever, such as server processes. <p>
</dl>
<hr>

0707010003f791000081a40000000000000002000000013ac0389200000178000000200000000000000000000000000000001d00000003reloc/proc/help/mode.hu.html  <header>Fut醩 m骴ja</header>

<dl>
<dt><b>Futtat醩 h醫t閞ben</b>
<dd>A program a h醫t閞ben indul 閟 a b鰊g閟z鮦e 醫ir醤y韙骴ik a fut
processzek list醞醜oz.<p>
<dt><b>V醨akoz醩 befejez閟ig</b>
<dd>A parancs lefut 閟 a kimenete megjelenik. Ez a kapcsol nem haszn醠hat
olyan programok eset閎en, amelyek a v間telens間ig futnak, mint pl. a
kiszolg醠 processzek.<p>
</dl>
<hr>

0707010003f792000081a40000000000000002000000013ac03892000001ae000000200000000000000000000000000000001d00000003reloc/proc/help/mode.pl.html  <header>Spos骲 uruchomienia</header>

<dl>
<dt><b>Uruchom w&nbsp;tle</b>
<dd>Polecenie zostanie uruchomione w&nbsp;tle, a&nbsp;twoja przegl眃arka
    skierowana do listy dzia砤j眂ych proces體. <p>
<dt><b>Czekaj na zako馽zenie</b>

<dd>Polecenie zostanie uruchomione, a&nbsp;jego wyniki wy秝ietlone. Ta opcja
    nie powinna by u縴wana do polece, kt髍e nie ko馽z dzia砤nia, jak na
    przyk砤d procesy serwer體. <p>
</dl>
<hr>

  0707010003f793000081a40000000000000002000000013ac0389100000151000000200000000000000000000000000000001d00000003reloc/proc/help/mode.sv.html  <header>K鰎l鋑e</header>

<dl>
<dt><b>K鰎 i bakgrunden</b>
<dd>Kommandot startas i bakgrunden och browsern visar listan 鰒er processer.
<dt><b>V鋘ta tills det 鋜 f鋜digt</b>
<dd>Kommandot k鋜s och utmatningen visas. Detta alternativ b鰎 inte anv鋘das
    f鰎 kommandon som ska k鰎as tills vidare, exempelvis serverprocesser.
</dl>
<hr>

   0707010003f794000081a40000000000000002000000013ac0389100000116000000200000000000000000000000000000002500000003reloc/proc/help/mode.zh_TW.Big5.html  <header>磅︽家Α</header>

<dl>
<dt><b>璉春い磅︽</b>
<dd>硂㏑盢穦璉春い磅︽, τ眤聅凝竟穦钡穝磅︽い祘. <p>
<dt><b>单磅︽Ч拨</b>
<dd>硂㏑盢穦砆磅︽, 陪ボㄤ闽块. 硂匡兜ぃ莱赣ノ穦ッ环磅︽㏑, ㄒ狝竟祘. <p>
</dl>
<hr>

  0707010003f795000081a40000000000000002000000013ac03891000001f3000000200000000000000000000000000000001d00000003reloc/proc/help/nice.es.html  <header>Nivel de Nice</header>

Cada proceso se ejecuta con una cierta prioridad, llamada nivel de nice.
Un proceso de alta prioridad obtiene m醩 tiempo de UCP que los que tienen
prioridades inferiores y por ello se ejecuta m醩 r醦ido. Cambiar el nivel
de nice s髄o tiene sentido real para los procesos de uso intensivo de UCP
ya que la mayor韆 de programas gastan la mayor parte de su tiempo esperando
por algo (como una entrada) y por ello no se benefician o sufren cambios en
la prioridad.
<hr>

 0707010003f796000081a40000000000000002000000013ac038910000020b000000200000000000000000000000000000001d00000003reloc/proc/help/nice.fr.html  <header>Niveau de priorit</header>

Chaque processus est ex閏ut avec une certaine priorit, appel閑 niveau de priorit. Un haut niveau de priorit prendra facilement plus de puissance processeur, et le processus semblera ainsi s'ex閏uter plus rapidement. Changer la priorit d'un processus ne sert qu'aux processus n閏essitant beaucoup de puissance. Comme la majorit des processus passent la plupart de leurs temps  attendre quelque chose (comme l'entr閑 standard), ils ne tirerent rien d'un tel changement.

<hr>
 0707010003f797000081a40000000000000002000000013ac03891000001bd000000200000000000000000000000000000001a00000003reloc/proc/help/nice.html <header>Nice Level</header>

Every process runs with a certain priority, called the nice level. A high
priority process will get more CPU time than those with lower priorities,
and thus appear to run faster. Changing the nice level only really makes
sense for CPU-intensive processes, as most programs spend almost all of
their time waiting for something (such as user input) and thus will not
benefit or suffer if their priority changes.
<hr>

   0707010003f798000081a40000000000000002000000013ac03892000001b4000000200000000000000000000000000000001d00000003reloc/proc/help/nice.hu.html  <header>Nice-szint</header>

Minden processz egy bizonyos priorit醩sal fut, amit nice-szintnek
h韛nak. A magasabb priorit醩 processzek t鯾b CPU-id鮰 kapnak a kevesebbel
rendelkez鮧n閘, ami a gyorsabb fut醩ban nyilv醤ul meg. A nice-szint
v醠toztat醩a igen 閞z閗enyen hat a CPU-ig閚yes processzekre, 醡 a
legt鯾b program az id nagyr閟z閠 v醨akoz醩sal (pl. bemenetre) t鰈ti 閟
韌y nem 閞inti vesztes間, ha megv醠tozik a priorit醩a.
<hr>
0707010003f799000081a40000000000000002000000013ac038920000021b000000200000000000000000000000000000001d00000003reloc/proc/help/nice.pl.html  <header>Poziom nice</header>

Kazdy proces dzia砤 z&nbsp;pewnym priorytetem, zwanym poziomem nice. Proces
o&nbsp;wysokim priorytecie dostanie wi阠ej czasu CPU ani縠li procesy
o&nbsp;niskim priorytecie, wi阠 b阣zie sprawia wra縠nie szybciej
dzia砤j眂ego. Zmiana poziomu nice ma w&nbsp;istocie sens jedynie dla
proces體 intensywnie wykorzystuj眂ych procesor, jako 縠 wi阫szo舵 program體
sp阣za wi阫szo舵 czasu czakaj眂 na co (na przyk砤d na dane od u縴tkownika).
Zatem zmiana ich priorytetu nie spowoduje 縜dnych szk骴 ani korzy禼i.

<hr>
 0707010003f79a000081a40000000000000002000000013ac03892000001c9000000200000000000000000000000000000001d00000003reloc/proc/help/nice.sv.html  <header>Nice-niv</header>

Varje process k鰎s med en prioritet som kallas nice-niv. En process med
h鰃 prioritet kommer att f mer CPU-tid 鋘 de med l鋑re prioriteter och
kommer d鋜f鰎 att verka k鰎a fortare. Det 鋜 bara meningsfullt att 鋘dra
nice-niv f鰎 CPU-intensiva processer eftersom de allra flesta program
mest v鋘tar p n錱ot (t ex inmatning fr錸 anv鋘daren) och d鋜f鰎 inte
kommer att g snabbare eller l錸gsammare om prioriteten 鋘dras.
<hr>

   0707010003f79b000081a40000000000000002000000013ac0389100000166000000200000000000000000000000000000002500000003reloc/proc/help/nice.zh_TW.Big5.html  <header>纔单</header>

–祘常穦ㄌ沮疭﹚纔舦磅︽, 嘿纔单 (nice level). ㄣΤ耕蔼纔单祘盢穦眔ゑ耕单祘耕 CPU 丁, 碞琌穦磅︽耕е. э跑纔单穦紇臫龟悔 CPU 丁, ┮Τ癸蔼 CPU ノ秖祘ΑΤ種竡. ㄆ龟计祘Α磅︽戳丁常单琘ㄇ戈方 (ㄒㄏノ块单), 癸硂ㄇ祘Αэ跑纔单ぃ穦Τヴ腊.
<hr>

  0707010003f79c000081a40000000000000002000000013ac0389100000057000000200000000000000000000000000000002100000003reloc/proc/help/overview.es.html  Para m醩 informaci髇 acerca de los procesos Unix, <a href=intro.es>haz click aqu</a>.
 0707010003f79d000081a40000000000000002000000013ac038910000004e000000200000000000000000000000000000002100000003reloc/proc/help/overview.fr.html  Pour plus d'information sur les processus Unix, <a href=intro>cliquez ici</a>.  0707010003f79e000081a40000000000000002000000013ac0389100000049000000200000000000000000000000000000001e00000003reloc/proc/help/overview.html For more information about Unix processes, <a href=intro>click here</a>.
   0707010003f79f000081a40000000000000002000000013ac038920000005a000000200000000000000000000000000000002100000003reloc/proc/help/overview.hu.html  Tov醔bi, Unix processzekkel kapcsolatos inform醕i髃閞t 
<a href=intro>kattintson ide</a>.
  0707010003f7a0000081a40000000000000002000000013ac0389200000056000000200000000000000000000000000000002100000003reloc/proc/help/overview.pl.html  Po dodatkowe informacje o&nbsp;procesach uniksowych <a href=intro>naci秐ij
tutaj</a>.
  0707010003f7a1000081a40000000000000002000000013ac0389200000044000000200000000000000000000000000000002100000003reloc/proc/help/overview.sv.html  <a href=intro>Klicka h鋜</a> f鰎 mer information om Unix-processer.
0707010003f7a2000081a40000000000000002000000013ac0389100000042000000200000000000000000000000000000002900000003reloc/proc/help/overview.zh_TW.Big5.html  璶眔闽 Unix 祘闽癟, 叫<a href=intro>硂ㄠ</a>.
  0707010003f7a3000081a40000000000000002000000013ac03891000000f5000000200000000000000000000000000000001c00000003reloc/proc/help/run.es.html   <header>Gestor de Procesos - Ejecutar Comando</header>

Este formulario te permite ejecutar alg鷑 comando en tu sistema y opcion醠mente
mostrar su salida. Puedes digitar el texto que ha de ser pasado al programa
como su entrada est醤dar.

<hr>

   0707010003f7a4000081a40000000000000002000000013ac03891000000f6000000200000000000000000000000000000001c00000003reloc/proc/help/run.fr.html   <header>Ex閏uter une commande</header>

Cette page vous permet d'ex閏uter des commandes sur votre syst鑝e et 関entuellement d'en afficher la sortie. Vous pouvez aussi entrer du texte qui sera pass dans l'entr閑 standard du programme.

<hr>
  0707010003f7a5000081a40000000000000002000000013ac03891000000e7000000200000000000000000000000000000001900000003reloc/proc/help/run.html  <header>Process Manager - Run Command</header>

This form allows you to execute some command on your system, and optionally
display the output. You may also enter text which will be passed to the
program as standard input. 

<hr>

 0707010003f7a6000081a40000000000000002000000013ac03892000000f7000000200000000000000000000000000000001c00000003reloc/proc/help/run.hu.html   <header>Processz menedzser - parancs futtat醩a</header>

Ezzel az 鹯lappal a rendszer閚 n閔醤y parancsot hajthat v間re, 閟
tetsz鮨egesen megjelen韙heti a kimenetet. Egy sz鰒eg is megadhat,
amely a program szabv醤yos bemenet閠 k閜ezi majd.

<hr>

 0707010003f7a7000081a40000000000000002000000013ac038920000012e000000200000000000000000000000000000001c00000003reloc/proc/help/run.pl.html   <header>Zarz眃ca proces體 - uruchamianie</header>

Przy u縴ciu tego formularza mo縠sz uruchomi pewne polecenie w&nbsp;swoim
systemie i, ewentualnie, zobaczy wyniki jego wykonania (standardowe
wyj禼ie). Mo縠sz r體nie wpisa tekst, kt髍y b阣zie stanowi dane dla
programu (standardowe wej禼ie).

<hr>
  0707010003f7a8000081a40000000000000002000000013ac03892000000eb000000200000000000000000000000000000001c00000003reloc/proc/help/run.sv.html   <header>Processhanterare - utf鰎 kommando</header>

I detta formul鋜 kan du utf鰎a kommandon i systemet och dessutom v鋖ja att
visa utmatningen. Du kan ocks skriva in text som ska skickas till programmet
som standardinmatning.

<hr>

 0707010003f7a9000081a40000000000000002000000013ac038910000009a000000200000000000000000000000000000002400000003reloc/proc/help/run.zh_TW.Big5.html   <header>祘恨瞶 - 磅︽㏑</header>

硂虫琵眤磅︽眤╰参ㄇ㏑, 匡拒┦陪ボ块. 眤块ㄇ璶癳倒赣祘Α夹非块ゅ. 

<hr>

  0707010003f7aa000081a40000000000000002000000013ac038910000008d000000200000000000000000000000000000001d00000003reloc/proc/help/scpu.es.html  <header>Usando m醩 de</header>

Este criterio de b鷖queda busca procesos que usen m醩 de un porcentaje de
tiempo de UCP en tu sistema.
<hr>

   0707010003f7ab000081a40000000000000002000000013ac03891000000c0000000200000000000000000000000000000001d00000003reloc/proc/help/scpu.fr.html  <header>Utilisant plus que</header>

Ce crit鑢e de recherche permet de trouver les processus utilisant plus qu'un certain pourcentage de la puissance du processeur sur votre syst鑝e.
<hr>
0707010003f7b8000081a40000000000000002000000013ac0389100000089000000200000000000000000000000000000001a00000003reloc/proc/help/scpu.html <header>Using more than</header>

This search criteria finds processes using more than some percentage of
CPU time on your system.
<hr>

   0707010003f7b9000081a40000000000000002000000013ac0389200000099000000200000000000000000000000000000001d00000003reloc/proc/help/scpu.hu.html  <header>Ha [ ]% CPU</header>

Ezzel a krit閞iummal olyan processzek tal醠hat髃 meg, amelyek CPU-kihaszn醠ts醙a
nagyobb a sz鰒egmez鮞en megadottn醠.
<hr>
   0707010003f7ba000081a40000000000000002000000013ac03892000000a6000000200000000000000000000000000000001d00000003reloc/proc/help/scpu.pl.html  <header>U縴waj眂y wi阠ej ni</header>

To kryterium szukania pozwala znale兼 procesy zu縴waj眂e w&nbsp;twoim
systemie wi阠ej ni zadany procent mocy procesora.
<hr>

  0707010003f7bb000081a40000000000000002000000013ac0389200000088000000200000000000000000000000000000001d00000003reloc/proc/help/scpu.sv.html  <header>Anv鋘der mer 鋘 ...</header>

H鋜 kan du s鰇a efter processer som anv鋘der mer 鋘 en viss andel av
CPU-tiden p systemet.
<hr>

0707010003f7bc000081a40000000000000002000000013ac038910000006a000000200000000000000000000000000000002500000003reloc/proc/help/scpu.zh_TW.Big5.html  <header>禬筁... CPU ㄏノ秖</header>

硂穓碝膀非т碝眤╰参ㄏノ禬筁﹚ CPU 丁κだゑ祘Α.
<hr>

  0707010003f7bd000081a40000000000000002000000013ac03891000002de000000200000000000000000000000000000001f00000003reloc/proc/help/search.es.html    <header>Gestor de Procesos - Formulario de B鷖queda</header>

Este formulario te permite buscar procesos que cumplen alg鷑 criterio.
Cuando se hace click en el bot髇 de <tt>B鷖queda</tt>, se muestra bajo el
formulario una lista de procesos que coinciden. Para cada uno se muestra
la PID, propietario, uso de UCP y el comando. Haz click en la PID para
mostrar m醩 informaci髇 acerca del proceso. <p>

Bajo la lista de resultados de la b鷖queda hay un bot髇 para enviar una
se馻l a los procesos que coincidan. Selecciona la se馻l que deseas enviar de
la lista y haz click en el bot髇 <tt>Enviar Se馻l</tt>. Las se馻les m醩 鷗iles
son <tt>KILL</tt> y <tt>TERM</tt>, para matar los procesos en ejecuci髇. <p>

<include overview.es>
<hr>

  0707010003f7be000081a40000000000000002000000013ac0389100000310000000200000000000000000000000000000001f00000003reloc/proc/help/search.fr.html    <header>Formulaire de recherche</header>

Cette page vous permet de rechercher des processus selon certains crit鑢es. Quand vous cliquez sur le bouton <tt>Rechercher</tt>, une liste des processus correspondants s'affiche en dessous. Pour chaque processus, le num閞o, le propri閠aire, l'utilisation du processeur et la commande sont affich閟. Cliquer sur le num閞o de processus affichera des informations suppl閙entaires sur le processus.<p>

Sous la liste des r閟ultats de recherche se trouve un bouton qui envoie un signal au processus correspondant. Choisissez le signal que vous voulez envoyer au processus et cliquez sur le bouton <tt>Envoyer un signal</tt>. Les signaux les plus utiles sont <tt>KILL</tt> et <tt>TERM</tt> pour tuer un processus.

<include overview>
<hr>
0707010003f7bf000081a40000000000000002000000013ac0389100000299000000200000000000000000000000000000001c00000003reloc/proc/help/search.html   <header>Process Manager - Search Form</header>

This form allows you to search for processes matching some criteria.
When the <tt>Search</tt> button is clicked, a list of matching processes
will be displayed below the form. For each, the PID, owner, CPU use and
command is displayed. Click on the PID to display more information about
a process. <p>

Below the list of search results is a button for sending a signal to
the matching processes. Select the signal that you want to send from the
list, then click the <tt>Send Signal</tt> button. The most useful signals
are <tt>KILL</tt> and <tt>TERM</tt>, for killing running processes. <p>

<include overview>
<hr>

   0707010003f7c0000081a40000000000000002000000013ac03892000002bd000000200000000000000000000000000000001f00000003reloc/proc/help/search.hu.html    <header>Processz menedzser - keres閟 鹯lap</header>

Ezzel az 鹯lappal bizonyos krit閞iumokkal egyez processzeket kereshet.
Ha megnyomja a <tt>Keres閟</tt> gombot, az egyez processzek megjelennek
a lap alj醤. Mindegyiknek megjelenik a PID-je, a tulajdonos醤ak neve
閟 a CPU-kihaszn醠ts醙a illetve a parancs neve. A processzel kapcsolatos
b鮲ebb inform醕i髃閞t kattintson a PID-j閞e.<p>

A keres閟 eredm閚ye alatt tal醠that egy nyom骻omb, mellyel jelz閟 k黮dhet
a processzeknek. V醠assza ki az elk黮dend szign醠t a list醔髄 majd kattintson
a <tt>Jelz閟 k黮d閟e</tt> gombra. A <tt>KILL</tt> 閟 a <tt>TERM</tt> a
legink醔b haszn醠hat jelz閟ek egy processz kil鰒閟閔ez.<p>

<include overview>
<hr>

   0707010003f7c1000081a40000000000000002000000013ac0389200000312000000200000000000000000000000000000001f00000003reloc/proc/help/search.pl.html    <header>Zarz眃ca proces體 - szukanie</header>

Przy u縴ciu tego formularza mo縠sz znale兼 procesy spe硁iaj眂e pewne
warunki. Gdy zostanie naci秐i阾y przycisk <tt>Szukaj</tt>, poni縠j
formularza pojawi si lista proces體 spe硁iaj眂ych zadane kryteria.
Przy ka縟ym procesie podany jest jego numer PID, w砤禼iciel, wykorzystanie
procesora oraz polecenie uruchamiaj眂e. Naci秐ij na numer PID, aby
wy秝ietli wi阠ej informacji o&nbsp;procesie. <p>

Poni縠j listy z&nbsp;wynikami poszukiwania znajduje si przycisk do wys砤nia
sygna硊 do znalezionych proces體. Wybierz sygna, kt髍y chcesz wys砤,
a&nbsp;nast阷nie naci秐ij przycisk <tt>Wy秎ij sygna</tt>. Najcz甓ciej
u縴wanymi sygna潮mi s <tt>KILL</tt> i&nbsp;<tt>TERM</tt> dla zabicia
dzia砤j眂ych proces體. <p>

<include overview>
<hr>

  0707010003f7c2000081a40000000000000002000000013ac038920000029d000000200000000000000000000000000000001f00000003reloc/proc/help/search.sv.html    <header>Processhanterare - s鰇formul鋜</header>

I detta formul鋜 kan du s鰇a efter processer som uppfyller vissa kriterier.
N鋜 du trycker p <tt>S鰇</tt> visas nedanf鰎 formul鋜et en lista 鰒er de
processer som uppfyller s鰇kriterierna. F鰎 varje process anges PID, 鋑are,
CPU-anv鋘dning och kommando. Klicka p ett PID f鰎 att f fler uppgifter om
den tillh鰎ande processen.

<p>Nedanf鰎 listan finns en knapp f鰎 att skicka en signal till alla funna
processer. V鋖j fr錸 listan den signal du vill skicka och tryck p <tt>Skicka
signal</tt>. De mest anv鋘dbara signalerna 鋜 <tt>KILL</tt> och <tt>TERM</tt>
som sl錼 ihj鋖 aktiva processer.

<include overview>
<hr>

   0707010003f7c3000081a40000000000000002000000013ac03891000001f8000000200000000000000000000000000000002700000003reloc/proc/help/search.zh_TW.Big5.html    <header>祘恨瞶 - 穓碝虫</header>

硂虫琵眤疭﹚兵ン穓碝眤╰参祘. 讽<tt>穓碝</tt>秙腹, 舱才兵ン盢穦砆陪ボ. 癸–才兵ン, 常穦陪ボ祘絪腹, 局Τ, CPU ㄏノ秖籔龟悔磅︽㏑. 祘絪腹陪ボ祘闽癟. <p>

虫秙琵眤癳北癟腹倒才穓碝兵ン祘. 叫眖い匡眤惠璶癳北癟腹, <tt>癳北癟腹</tt>秙. 程盽ノ北癟腹 <tt>KILL</tt> 籔 <tt>TERM</tt>, ノ埃硂祘. <p>

<include overview>
<hr>

0707010003f7c4000081a40000000000000002000000013ac03891000000e3000000200000000000000000000000000000001f00000003reloc/proc/help/sfiles.es.html    <header>Usando archivo</header>

Este criterio busca cualquier proceso que tenga el archivo seleccionado
abierto de lectura o escritura. Si se selecciona un directorio, se buscan
los procesos que est閚 en ese directorio.
<hr>

 0707010003f7c5000081a40000000000000002000000013ac038910000010e000000200000000000000000000000000000001f00000003reloc/proc/help/sfiles.fr.html    <header>Utilisation de fichier</header>

Ce crit鑢e de recherche trouve les processus ayant ouvert le fichier s閘ectionn en lecture ou en 閏riture. Si c'est un r閜ertoire qui est s閘ectionn, la recherche se fera avec tout fichier trouv dans ce r閜ertoire.

<hr>
  0707010003f7c6000081a40000000000000002000000013ac03891000000d0000000200000000000000000000000000000001c00000003reloc/proc/help/sfiles.html   <header>Using file</header>

This criteria finds any processes that have the selected file open for
reading or writing. If a directory is chosen, processes that are in that
directory are found instead.
<hr>

0707010003f7c7000081a40000000000000002000000013ac038920000010a000000200000000000000000000000000000001f00000003reloc/proc/help/sfiles.hu.html    <header>F醞l keres閟e</header>

Ez a krit閞ium minden olyan processzet megtal醠, amely a keresett
f醞lt megnyitotta 韗醩ra vagy olvas醩ra. Ha egy k鰊yvt醨at v醠asztott ki,
akkor azok a processzek lesznek kilist醶va, amelyek az adott k鰊yvt醨ban
megtal醠hat髃.
<hr>

  0707010003f7c8000081a40000000000000002000000013ac03892000000ef000000200000000000000000000000000000001f00000003reloc/proc/help/sfiles.pl.html    <header>U縴waj眂y pliku</header>

To kryterium szukania pozwala znale兼 procesy, kt髍e maj otwarty do odczytu
lub zapisu zadany plik. Je秎i wybrano katalog, zamiast tego zostan
znalezione procesy znajduj眂e si w&nbsp;tym katalogu.
<hr>
 0707010003f7c9000081a40000000000000002000000013ac03892000000d7000000200000000000000000000000000000001f00000003reloc/proc/help/sfiles.sv.html    <header>Anv鋘der fil ...</header>

H鋜 kan du s鰇a efter processer som har 鰌pnat den angivna filen f鰎
l鋝ning eller skrivning. Om du v鋖jer en katalog f錼 du ist鋖let upp de
processer som finns i katalogen.
<hr>

 0707010003f7ca000081a40000000000000002000000013ac0389100000087000000200000000000000000000000000000002700000003reloc/proc/help/sfiles.zh_TW.Big5.html    <header>ㄏノ郎</header>

硂兵ンт碝ヴΤ秨币﹚郎獽弄┪糶祘. 狦匡拒ヘ魁, т赣ヘ魁い笲祘.
<hr>

 0707010003f7cb000081a40000000000000002000000013ac03891000001c3000000200000000000000000000000000000001c00000003reloc/proc/help/sfs.es.html   <header>Usando sistema de archivos</header>

Este criterio de b鷖queda busca procesos que est閚 usando cualquier archivo
o directorio del sistema de archivos seleccionado. Si un proceso tiene
abierto un archivo de lectura o escritura o est en un directorio del
sistema de archivos seleccionado, ser inclu韉o en los resultados de la
b鷖queda. Esto puede ser 鷗il para buscar procesos que hagan que no se pueda
desmontar un sistema de archivos.
<hr>

 0707010003f7cc000081a40000000000000002000000013ac03891000001ac000000200000000000000000000000000000001c00000003reloc/proc/help/sfs.fr.html   <header>Utilisant un syst鑝e de fichier</header>

Ce crit鑢e de recherche trouve tous les processus utilisant n'importe quel fichier ou r閜ertoire du syst鑝e de fichiers s閘ectionn. Si un processus a un fichier ou un r閜ertoire d'ouvert sur le syst鑝e de fichier choisi, il sera inclu dans les r閟ultats de la recherche.  Ceci peut 阾re utile pour trouver un processus qui emp阠he de d閙onter un syst鑝e de fichier.

<hr>
0707010003f7cd000081a40000000000000002000000013ac0389100000177000000200000000000000000000000000000001900000003reloc/proc/help/sfs.html  <header>Using filesystem</header>

This search criteria finds processes that are using any file or directory
on the selected filesystem. If a process has a file open for reading or
writing or is in a directory on the chosen filesystem, it will be included
in the search results. This can be useful for finding processes that prevent
a filesystem from being unmounted. 
<hr>

 0707010003f853000081a40000000000000002000000013ac03892000001ba000000200000000000000000000000000000001c00000003reloc/proc/help/sfs.hu.html   <header>Adott f醞lrendszer</header>

Ezzel a keres閟i krit閞iummal megtal醠hat髃 azok a processzek, amelyek 
a kiv醠asztott f醞lrendszeren b醨mit is haszn醠nak. Ha egy processz
megnyitott egy f醞lt 韗醩ra vagy olvas醩ra, esetleg az adott f醞lrendszeren
l関 k鰊yvt醨ban van, akkor meg fog jelenni keres閟 eredm閚yei k鰖鰐t.
Ez hasznos lehet olyan processzek megtal醠醩醜oz, amelyek megakad醠yozz醟
a f醞lrendszer lecsatol醩醫 (unmount).
<hr>
  0707010003f854000081a40000000000000002000000013ac03892000001f7000000200000000000000000000000000000001c00000003reloc/proc/help/sfs.pl.html   <header>U縴waj眂y systemu plik體</header>

To kryterium poszukiwania pozwala znale兼 procesy, kt髍e u縴waj
jakiegokolwiek pliku b眃 katalogu na wybranym systemie plik體. Je秎i jaki
proces posiada otwarty do odczytu lub zapisu dowolny plik na wybranym
systemie plik體 lub proces znajduje si w&nbsp;katalogu na tym systemie
plik體, b阣zie on umieszczony w&nbsp;wynikach poszukiwania. Jest to
najcz甓ciej wykorzystywane do znalezienia proces體, kt髍e uniemo縧iwiaj
odmontowanie systemu plik體. 
<hr>

 0707010003f855000081a40000000000000002000000013ac038920000018d000000200000000000000000000000000000001c00000003reloc/proc/help/sfs.sv.html   <header>Anv鋘der filsystem ...</header>

H鋜 kan du s鰇a efter processer som anv鋘der n錱on fil eller katalog p
det angivna filsystemet. Om en process har 鰌pnat en fil f鰎 l鋝ning eller
skrivning p filsystemet, eller om den finns i en katalog p filsystemet,
kommer den att visas i listan. Det h鋜 kan du anv鋘da f鰎 att hitta processer
som hindrar dig fr錸 att montera av ett filsystem.
<hr>

   0707010003f856000081a40000000000000002000000013ac03891000000db000000200000000000000000000000000000002400000003reloc/proc/help/sfs.zh_TW.Big5.html   <header>ㄏノ郎╰参</header>

硂兵ンт碝┮ΤΤㄏノ﹚郎╰参い郎┪ヘ魁祘Α. 狦祘Τ﹚郎╰参い秨币讽称弄┪糶, 赣祘獽穦砆穓碝挡狦ぇい. 硂璶更琘郎╰参ぇ玡琌讽Τノ.
<hr>

 0707010003f857000081a40000000000000002000000013ac03892000000f0000000200000000000000000000000000000001d00000003reloc/proc/help/signore.html  <header>Ignore search processes</header>

If checked, the search results will not include the Webmin processes
that do the actual searching. This can be useful as the search processes will
often be using a lot of CPU while searching.
<hr>

0707010003f858000081a40000000000000002000000013ac0389200000100000000200000000000000000000000000000002000000003reloc/proc/help/signore.pl.html   <header>Pomi procesy poszukujace</header>

Je秎i zaznaczone, wynik poszukiwania nie b阣zie zawiera proces體 Webmina
wykonuj眂ych bie勘ce poszukiwanie. Mo縠 to by przydatne, gdy procesy
poszukuj眂e cz阺to mocno obci笨aj CPU podczas poszukiwania.
<hr>

0707010003f859000081a40000000000000002000000013ac0389100000328000000200000000000000000000000000000001d00000003reloc/proc/help/size.es.html  <header>Procesos en Ejecuci髇 - Vista por Memoria</header>

Esta p醙ina muestra todos los procesos en ejecuci髇 clasificados por uso de
memoria. Para cada proceso se muestra la PID, propietario, medida en kB y el
comando. Haz click en la PID para mostrar m醩 informaci髇 acerca del proceso
en ejecuci髇. <p>

Esta vista puede ser 鷗il para buscar qu comandos est醤 usando excesiva
cantidad de memoria bajo tu sistema. Sin embargo, la memoria utilizada puede
ser 醠tamente poco significativa para procesos como el servidor X que puede
incluir b鷉ers de marco mapeados en su utilizaci髇 de memoria. M鷏tiples
instancias del mismo proceso (como <tt>httpd</tt> o <tt>bash</tt>) comparten
mucha de su memoria, haciendo aparecer la utilizaci髇 total mayor de lo que
realmente es. <p>

<include overview.es>
<hr>

0707010003f85a000081a40000000000000002000000013ac0389100000325000000200000000000000000000000000000001d00000003reloc/proc/help/size.fr.html  <header>Affichage par occupation de m閙oire</header>

Cette page affiche tous les processus par ordre d'occupation de m閙oire. Pour chaque processus le num閞o, le propri閠aire, la taille en Ko et la commande sont affich閟. Cliquer sur le num閞o affichera plus d'information sur le processus.<p>

Cet affichage peut 阾re utilis pour trouver quelle commande consomme une quantit excessive de m閙oire sur votre syst鑝e. Mais l'utilisation de la m閙oire peut 阾re mal interpr閠閑 pour des processus comme les serveurs X qui peuvent inclure la m閙oire 'mapped frame buffer' dans leurs utilisation ou les instances multiples comme <tt>httpd</tt> ou <tt>bash</tt> qui partagent la majeur partie de leur m閙oire, laissant croire  une utilisation plus grande que la r閍lit.<p>

<include overview>
<hr>
   0707010003f85b000081a40000000000000002000000013ac03891000002c7000000200000000000000000000000000000001a00000003reloc/proc/help/size.html <header>Running Processes - Memory View</header>

This page shows all running processes, ranked by memory used. For each process
the PID, owner, size in kB and command are displayed. Click on the PID to
display more information about a running process. <p>

This view can be useful for finding which commands are using excessive amounts
of memory on your system. However, memory use can be misleadingly high for
processes like the X server which may include mapped frame buffers in
their memory utilization. Multiple instances of the same process (such as
<tt>httpd</tt> or <tt>bash</tt>) share much of their memory, making their
total utilization appear higher than it really is. <p>

<include overview>
<hr>

 0707010003f85c000081a40000000000000002000000013ac038920000035f000000200000000000000000000000000000001d00000003reloc/proc/help/size.hu.html  <header>Fut processzek - mem髍ia n閦et</header>

Ez az oldal minden fut processzt megmutat, a mem髍iahaszn醠at alapj醤
rangsorolva. Minden processznek megjelenik a PID-je, a tulajdonosa, a m閞ete 
kilob醞tban 閟 parancs neve. B鮲ebb inform醕i髃閞t kattintson a fut
processz PID-j閞e.<p>

Ez a n閦et hasznos lehet olyan parancsok felder韙閟閔ez, amelyek az 謓
rendszer閚 t鷏s醙osan sok mem髍i醫 haszn醠nak. Azonban a mem髍iahaszn醠at
f閘revezet鮡n nagy lehet olyan processzekn閘 - mint amilyen az X kiszolg醠 -,
amelyek mem髍iahaszn醠atukn醠 tartalmazz醟 a t閞k閜ezett v醶buffereket (mapped 
frame buffers). Ha ugyanaz a processz t鯾bsz鰎 el鮢ordul (mint pl. a
<tt>httpd</tt> vagy a <tt>bash</tt> eset閎en), akkor a mem髍ia nagy r閟z閠
megosztj醟, 韌y az 鰏szesen felhaszn醠t m閞et j髒al nagyobbnak t鹡ik, mint
amekkora val骿醔an.<p>

<include overview>
<hr>

 0707010003f85d000081a40000000000000002000000013ac038920000035d000000200000000000000000000000000000001d00000003reloc/proc/help/size.pl.html  <header>Dzia砤j眂e procesy - u縴wana pami赕</header>

Ta strona ukazuje wszystkie dzia砤j眂e procesy, uporz眃kowane wg rozmiaru
u縴wanej przez nie pami阠i. Dla ka縟ego procesu podano numer PID,
w砤禼iciela, rozmiar w&nbsp;kB oraz polecenie uruchamiaj眂e. Naci秐ij na
numer PID, aby wy秝ietli wi阠ej informacji o&nbsp;dzia潮j眂ym procesie. <p>

Mo縠sz skorzysta z&nbsp;tego przegl眃u aby okre秎i, kt髍e polecenia
w&nbsp;Twoim systemie zu縴waj zbyt du縪 pami阠i. Jednak縠, zu縴cie pami阠i
przez procesy takie jak X serwer, kt髍y mo縠 zawiera w&nbsp;swojej pami阠i
pami赕 grafiki, mo縠 by myl眂o wysokie. Wielokrotne kopie tego samego
procesu (jak na przyk砤d <tt>httpd</tt> lub <tt>bash</tt>) dziel du勘 cz甓
swojej pami阠i, w&nbsp;zwi眤ku z&nbsp;czym jej 潮czne zu縴cie wydaje si by
wy縮ze ni jest w&nbsp;rzeczywisto禼i. <p>

<include overview>
<hr>

   0707010003f85e000081a40000000000000002000000013ac03892000002b0000000200000000000000000000000000000001d00000003reloc/proc/help/size.sv.html  <header>Processer - minnes鰒ersikt</header>

P denna sida visas alla processer som 鋜 ig錸g, ordnade efter
minnesutnyttjande. F鰎 varje process anges PID, 鋑are, storlek i kB och
kommando. Klicka p ett PID f鰎 att f upp mer information om processen.

<p>Detta kan du anv鋘da f鰎 att hitta kommandon som slukar minne i systemet.
Det angivna minnesutnyttjandet kan dock vara missledande f鰎 s錮ana
processer som X-servern, d鋜 鋠en minnes錿g錸gen f鰎 buffrar i X tas med.
Multipla processer f鰎 samma program (t ex <tt>httpd</tt> och <tt>bash</tt>)
har en stor del av minnet gemensamt vilket g鰎 att de totalt ser ut att
anv鋘da mer minne 鋘 de egentligen g鰎.

<include overview>
<hr>

0707010003f85f000081a40000000000000002000000013ac0389100000235000000200000000000000000000000000000002500000003reloc/proc/help/size.zh_TW.Big5.html  <header>祘恨瞶 - ㄌ沮癘拘砰ㄏノ秖</header>

硂陪ボ┮Τ磅︽い祘, ㄌ沮癘拘砰ㄏノ秖逼. 癸–祘盢穦陪ボㄤㄤ祘絪腹, 局Τ, 癘拘砰ㄏノ秖 (kB)籔龟悔磅︽㏑. 眤翴匡<tt>祘絪腹</tt>陪ボ闽戈癟. <p>

硂陪ボ家Α眤璶т秖癘拘砰祘Α琌讽Τノ. 礛τ癸琘ㄇ祘τē, 陪ボ计盢穦ゑ龟悔蔼. ㄒ X 狝竟祘盢穦р癸莱絯侥竟璸衡癘拘砰ㄏノ秖い; 癸琘ㄇ狥磅︽祘ㄒ <tt>httpd</tt> ┪ <tt>bash</tt> τē, ウ穦ㄉ┮ㄏノ癘拘砰, 硑Θ羆癘拘砰ㄏノ秖穦耕龟悔ノ秖蔼. <p>

<include overview>
<hr>

   0707010003f860000081a40000000000000002000000013ac0389100000103000000200000000000000000000000000000001f00000003reloc/proc/help/smatch.es.html    <header>Coincidiendo</header>

Este criterio de b鷖queda busca procesos que conincidan con alguna expresi髇
regular. Por ejemplo, para buscar todos los procesos cuyo comando contenga
la cadena <tt>httpd</tt>, puedes s韒plemente digitar <tt>httpd</tt>. 
<hr>

 0707010003f861000081a40000000000000002000000013ac0389100000125000000200000000000000000000000000000001f00000003reloc/proc/help/smatch.fr.html    <header>Correspondance</header>

Ce crit鑢e de recherche trouve les processus correspondants  une expression r間uli鑢e. Par exemple, si vous voulez trouver tous les processus dont la commande contient la cha頽e de caract鑢es <tt>httpd</tt>, vous n'avez qu'a entrer <tt>httpd</tt>.

<hr>
   0707010003f862000081a40000000000000002000000013ac03891000000e3000000200000000000000000000000000000001c00000003reloc/proc/help/smatch.html   <header>Matching</header>

This search criteria finds processes matching some regular expression.
For example, to find all processes whose command contains the string
<tt>httpd</tt>, you could just enter <tt>httpd</tt>. 
<hr>

 0707010003f869000081a40000000000000002000000013ac0389100000066000000200000000000000000000000000000001b00000003reloc/proc/help/suser.html    <header>Owned by</header>

This search criteria finds all processes owned by the selected user.
<hr>

  0707010003f863000081a40000000000000002000000013ac038920000011a000000200000000000000000000000000000001f00000003reloc/proc/help/smatch.hu.html    <header>Egyez閟</header>

Ez a keres閟i krit閞ium megtal醠ja azokat a processzeket, amelyek
egyeznek n閔醤y regul醨is kifejez閟sel. P閘d醬l, hogy megtal醠ja az 鰏szes
olyan processzt, amely tartalmazza a <tt>httpd</tt> karakterl醤cot,
adja meg kifejez閟nek a <tt>httpd</tt>-t.
<hr>
  0707010003f864000081a40000000000000002000000013ac03892000000f7000000200000000000000000000000000000001f00000003reloc/proc/help/smatch.pl.html    <header>Wzorzec nazwy</header>

To kryterium szukania pozwala znale兼 procesy, pasuj眂e do pewnego wyra縠nia
regularnego. Na przyk砤d, aby znale兼 wszystkie polecenia zawieraj眂e ci眊
znak體 <tt>httpd</tt>, trzeba po prostu wpisa <tt>httpd</tt>.
 0707010003f865000081a40000000000000002000000013ac03892000000f2000000200000000000000000000000000000001f00000003reloc/proc/help/smatch.sv.html    <header>St鋗mer med ...</header>

H鋜 kan du s鰇a efter processer som st鋗mer med ett regulj鋜t uttryck.
F鰎 att till exempel hitta alla processer vars kommando inneh錶ler str鋘gen
<tt>httpd</tt> skriver du helt enkelt <tt>httpd</tt>. 
<hr>

  0707010003f866000081a40000000000000002000000013ac03891000000a0000000200000000000000000000000000000002700000003reloc/proc/help/smatch.zh_TW.Big5.html    <header>才兵ン</header>

硂兵ンノタ砏ボΑ穓碝才兵ン祘. 羭ㄒτē, 璶т碝Τ﹃ <tt>httpd</tt> 祘, 眤璶块 <tt>httpd</tt> . 
<hr>

0707010003f867000081a40000000000000002000000013ac0389100000084000000200000000000000000000000000000001e00000003reloc/proc/help/suser.es.html <header>Propiedad de</header>

Este criterio de b鷖queda busca todos los procesos que son propiedad del
usuario seleccionado.
<hr>

0707010003f868000081a40000000000000002000000013ac038910000007e000000200000000000000000000000000000001e00000003reloc/proc/help/suser.fr.html <header>Appartient </header>

Ce crit鑢e de recherche trouve tous les processus appartenant  l'utilisateur choisi.
<hr>
  0707010003f86a000081a40000000000000002000000013ac0389200000090000000200000000000000000000000000000001e00000003reloc/proc/help/suser.hu.html <header>Tulajdonosa</header>

Ezzel a keres閟i ism閞vvel minden olyen processz megtal醠hat, amelynek
az adott felhaszn醠 a tulajdonosa.
<hr>

0707010003f86b000081a40000000000000002000000013ac038920000007f000000200000000000000000000000000000001e00000003reloc/proc/help/suser.pl.html <header>W砤禼iciel</header>

To kryterium szukania pozwala znale兼 procesy, kt髍ych w砤禼icielem jest
zadany u縴tkownik.
<hr>

 0707010003f86c000081a40000000000000002000000013ac0389200000067000000200000000000000000000000000000001e00000003reloc/proc/help/suser.sv.html <header>膅d av</header>

H鋜 kan du s鰇a efter alla processer som 鋑s av den angivna anv鋘daren.
<hr>

 0707010003f86d000081a40000000000000002000000013ac038910000004d000000200000000000000000000000000000002600000003reloc/proc/help/suser.zh_TW.Big5.html <header>局Τ</header>

硂穓碝兵ン琵眤т碝妮﹚ㄏノ祘.
<hr>

   0707010003f86e000081a40000000000000002000000013ac038910000014f000000200000000000000000000000000000001d00000003reloc/proc/help/tree.es.html  <header>Gestor de Procesos - Vista por 羠bol</header>

Esta p醙ina muestra todos los procesos bajo tu sistema con los procesos hijo
indentados y mostrados bajo su padre. Para cada proceso se muestra la PID,
propietario y el comando. Haz click en la PID para mostrar m醩 informaci髇
acerca del proceso. <p>

<include overview.es>
<hr>

 0707010003f86f000081a40000000000000002000000013ac0389100000165000000200000000000000000000000000000001d00000003reloc/proc/help/tree.fr.html  <header>Visualisation par num閞o (arborescente)</header>

Cette page affiche tous les processus du syst鑝e avec leurs processus fils d閏al閟 et affich閟 sous leur parent. Pour chaque processus le num閞o, le propri閠aire et la commande sont affich閟. Cliquez sur le num閞o pour afficher plus d'information sur le processus.<p>

<include overview>
<hr>
   0707010003f870000081a40000000000000002000000013ac0389100000140000000200000000000000000000000000000001a00000003reloc/proc/help/tree.html <header>Process Manager - Tree Display</header>

This page shows all running processes on your system, with child processes
indented and displayed below their parent. For each process the PID,
owner and command are displayed. Click on the PID to display more
information about the process. <p>

<include overview>
<hr>

0707010003f871000081a40000000000000002000000013ac0389200000153000000200000000000000000000000000000001d00000003reloc/proc/help/tree.hu.html  <header>Processz menedzser - fa list醶醩</header>

Ez az oldal megmutatja az 謓 rendszer閚 fut 鰏szes processzt, a gyerek
processzekkel egy黷t, amelyek a sz黮eik alatt jelennek meg. Minden processznek
megjelenik a PID-je, a tulajdonosa 閟 a parancs neve. B鮲ebb inform醕i髃閞t
kattintson a processz PID-j閞e.<p>

<include overview>
<hr>

 0707010003f872000081a40000000000000002000000013ac0389200000180000000200000000000000000000000000000001d00000003reloc/proc/help/tree.pl.html  <header>Zarz眃ca proces體 - drzewo proces體</header>

Ta strona ukazuje wszystkie dzia砤j眂e w&nbsp;Twoim systemie procesy, przy
czym procesy potomne s wci阾e i&nbsp;wy秝ietlone pod swoimi rodzicami. Dla
ka縟ego procesu podano numer PID, w砤禼iciela oraz polecenie uruchamiaj眂e.
Naci秐ij na numer PID, aby wy秝ietli wi阠ej informacji o&nbsp;procesie. <p>

<include overview>
<hr>

0707010003f873000081a40000000000000002000000013ac0389200000131000000200000000000000000000000000000001d00000003reloc/proc/help/tree.sv.html  <header>Processhanteraren - tr鋎</header>

P denna sida visas alla processer som 鋜 ig錸g p systemet. Underprocesser
skrivs ut med indrag och nedanf鰎 sin f鰎鋖der. F鰎 varje process anges PID,
鋑are och kommando. Klicka p ett PID f鰎 att f upp mer information om
processen.

<include overview>
<hr>

   0707010003f874000081a40000000000000002000000013ac0389100000100000000200000000000000000000000000000002500000003reloc/proc/help/tree.zh_TW.Big5.html  <header>祘恨瞶 - ㄌ沮 PID (祘攫)</header>

硂陪ボ┮Τ眤╰参磅︽い祘, 盢祘陪ボダ祘ぇ. 癸–祘常穦陪ボㄤ祘絪腹, 局Τ籔龟悔磅︽㏑. 眤翴匡<tt>祘絪腹</tt>陪ボ闽戈癟. <p>

<include overview>
<hr>

0707010003f875000081a40000000000000002000000013ac03891000001bb000000200000000000000000000000000000001d00000003reloc/proc/help/user.es.html  <header>Gestor de Procesos - Vista por Usuario</header>

Esta p醙ina muestra todos los procesos en ejecuci髇 agrupados por el usuario
a quien pertenecen. Aquellos usuarios que tengan m醩 de un proceso en
ejecuci髇 los ver醤 clasificados por uso de UCP bajo el nombre de cada
usuario. Para cada proceso se muestra la PID, el uso de UCP y el comando.
Se puede hacer click en la PID para mostrar m醩 informaci髇. <p>

<include overview.es>
<hr>

 0707010003f876000081a40000000000000002000000013ac03891000001cc000000200000000000000000000000000000001d00000003reloc/proc/help/user.fr.html  <header>Visualisation par utilisateur</header>

Cette page affiche tous les processus ex閏ut閟 group閟 par utilisateurs qui en sont les propri閠aires. Les processus sont rang閟 par utilisation du processeur sous le nom de chacun des utilisateurs propri閠aires. Pour chacun des processus le num閞o, l'utilisation du processeur et la commande sont affich閟. Cliquez sur le num閞o de processus pour afficher plus d'informations.<p>

<include overview>
<hr>
0707010003f877000081a40000000000000002000000013ac038910000017d000000200000000000000000000000000000001a00000003reloc/proc/help/user.html <header>Process Manager - User View</header>

This page displays all running processes, group by the user who owns the
process. Processes are ranked by CPU utilization below the name of each user
who has one or more processes running. For each process the PID, CPU use
and command are displayed. The PID can be clicked on to display more
information. <p>

<include overview>
<hr>

   0707010003f878000081a40000000000000002000000013ac038920000018b000000200000000000000000000000000000001d00000003reloc/proc/help/user.hu.html  <header>Processz menedzser - felhaszn醠 n閦et</header>

Ez az oldal felhaszn醠髃 szerint csoportos韙va jelen韙i meg a processzeket.
Minden olyan felhaszn醠髇醠, amely t鯾b processzt is futtat, a rangsorol醩 
CPU-felhaszn醠醩 szerint t鰎t閚ik. Minden processznek megjelenik a PID-je,
a CPU-kihaszn醠ts醙a 閟 a parancsa. Tov醔bi inform醕i髃hoz kattintson a
PID-ekre.<p>

<include overview>
<hr>

 0707010003f879000081a40000000000000002000000013ac03892000001c6000000200000000000000000000000000000001d00000003reloc/proc/help/user.pl.html  <header>Zarz眃ca proces體 - wg u縴tkownika</header>

Ta strona ukazuje wszystkie dzia砤j眂e procesy, podzielone wed硊g ich
w砤禼icieli. Procesy wy秝ietlone poni縠j nazwy ka縟ego u縴tkownika, kt髍y ma
jeden lub wi阠ej dzia砤j眂ych proces體, s uporz眃kowane wg zu縴cia przez
nie CPU. Dla ka縟ego procesu podano jego numer PID, zu縴cie CPU oraz
polecenie uruchamiaj眂e. Naciskaj眂 numer PID mo縠sz zobaczy wi阠ej
informacji. <p>

<include overview>
<hr>

  0707010003f87a000081a40000000000000002000000013ac0389200000148000000200000000000000000000000000000001d00000003reloc/proc/help/user.sv.html  <header>Processhanteraren - anv鋘dar鰒ersikt</header>

H鋜 visas alla processer som 鋜 ig錸g p systemet, ordnade i f鰎sta hand
efter 鋑are och i andra hand efter CPU-utnyttjande. F鰎 varje process anges
PID, CPU-utnyttjande och kommando. Klicka p ett PID f鰎 att f upp mer
information om processen.

<include overview>
<hr>

0707010003f87b000081a40000000000000002000000013ac0389100000128000000200000000000000000000000000000002500000003reloc/proc/help/user.zh_TW.Big5.html  <header>祘恨瞶 - ㄌ沮ㄏノ</header>

硂陪ボ┮Τ磅︽い祘, ㄌ沮局Τぃ盢Θ癟だ舱. ┮Τ局Τ祘盢穦ㄌ沮 CPU ㄏノ秖逼. 癸–祘盢穦陪ボㄤ祘絪腹, CPU ㄏノ秖籔龟悔磅︽. 眤翴匡<tt>祘絪腹</tt>陪ボ闽戈癟. <p>

<include overview>
<hr>

0707010003cb62000081a40000000000000002000000013ac03891000007b3000000200000000000000000000000000000001700000003reloc/proc/hpux-lib.pl    # hpux-lib.pl
# Functions for parsing hpux ps output

sub list_processes
{
local($line, $i, $pcmd, $_, $tty, @plist);

foreach (@_) { $pcmd .= "-p $_"; }
if (!$pcmd) { $pcmd = "-e"; }

open(PS, "ps -fl $pcmd |");

for($i=0; $line=<PS>; $i++) {
        chop($line);
        if ($line =~ /ps -fl/ || $line =~ /COMD/) { $i--; next; }
        $line =~ /^\s*(\d+)\s+(\S*)\s+(\S*)\s+(\d+)\s+(\d+)\s+(\d+)\s+([\-\d]+)\s+([\-\d]+)\s+(\S*)\s+(\d+)\s+(\S*)\s+(\S*)\s+(\S*)\s+([0-9:]+)\s+(.*)$/;
        $plist[$i]->{"pid"} = $4;
        $plist[$i]->{"ppid"} = $5;
        $plist[$i]->{"user"} = $3;
        $plist[$i]->{"size"} = "$10 Pg";
        $plist[$i]->{"cpu"} = "0.$6 %";
        $plist[$i]->{"time"} = substr($line,77,6);
        $plist[$i]->{"nice"} = $8;
        $plist[$i]->{"args"} = substr($line,84,60);
        $plist[$i]->{"_pri"} = $7;
        $tty = substr($line,69,7);
        $plist[$i]->{"_tty"} =  $tty eq "?      " ? $text{'edit_none'} : "/dev/$tty";
        $plist[$i]->{"_status"} = $stat_map{$2};
        $plist[$i]->{"_wchan"} = $11;
        }
close(PS);
return @plist;
}

# renice_proc(pid, nice)
sub renice_proc
{
local($out, $nice);
$nice = $_[1] - 20;
$out = `renice -n $nice -p $_[0] 2>&1`;
if ($?) { return $out; }
return undef;
}

# find_mount_processes(mountpoint)
# Find all processes under some mount point
sub find_mount_processes
{
local($out);
$out = `fuser -c $_[0]`;
$out =~ s/[^0-9 ]//g;
$out =~ s/^\s+//g; $out =~ s/\s+$//g;
return split(/\s+/, $out);
}

# find_file_processes([file]+)
# Find all processes with some file open
sub find_file_processes
{
local($out, $files);
$files = join(' ', @_);
$out = `fuser -f $files`;
$out =~ s/[^0-9 ]//g;
$out =~ s/^\s+//g; $out =~ s/\s+$//g;
return split(/\s+/, $out);
}

foreach $ia (keys %text) {
	if ($ia =~ /^hpux(_\S+)/) {
		$info_arg_map{$1} = $text{$ia};
		}
	elsif ($ia =~ /^hpuxstat_(\S+)/) {
		$stat_map{$1} = $text{$ia};
		}
	}

@nice_range = (0 .. 39);

$has_fuser_command = 1;

1;

 07070100040e00000041ed0000000000000001000000023ac03c4c00000000000000200000000000000000000000000000001200000003reloc/proc/images 07070100040e1d000081a40000000000000002000000013ac0389100000167000000200000000000000000000000000000001b00000003reloc/proc/images/icon.gif    GIF89a0 0   櫃      !    ,    0 0  ⻊彥隧c
A晰(膰髤	"髴@U橼i鈡暊亂鬩縵wg綅卵t痁蟖⻊(鈎橯咋)@h冐鞍蜌
養蛜寁塯捡溍藈毐2F⑴椙7!臦F!祌鈼r0d〥uB6晍┡z癱	
z设錡剨V)D宗7崖	ai湺虇躭窦嗁5,m詵書畸I泴鷇韲2$k4;.怲涞螕怨d桾缕j绠@x顫9O魏!痔3h'.珗b9k#F順$B!際2]Q橻k5 )n訪(云p!壪犕瀮DRJ錕  ; 0707010003cb63000081e40000000000000002000000013ac038910000017f000000200000000000000000000000000000001500000003reloc/proc/index.cgi  #!/usr/local/bin/perl
# index.cgi
# Redirect to default index

require './proc-lib.pl';
if ($config{'default_mode'} ne "last") {
	$idx = "index_$config{'default_mode'}.cgi";
	}
elsif (open(INDEX, "$module_config_directory/index")) {
	chop($idx = <INDEX>);
	close(INDEX);
	if (!$idx) { $idx = "index_tree.cgi"; }
	}
else { $idx = "index_tree.cgi"; }
&redirect("/$module_name/$idx");

 0707010003cb64000081e40000000000000002000000013ac03891000003cc000000200000000000000000000000000000001900000003reloc/proc/index_cpu.cgi  #!/usr/local/bin/perl
# index_cpu.cgi

require './proc-lib.pl';
&header($text{'index_title'}, "", "cpu", "proc", 1);
print "<hr>\n";

&index_links("cpu");
if (defined(&get_cpu_info)) {
	@c = &get_cpu_info();
	if (@c) {
		print &text('index_load', "<tt>$c[0]</tt>", "<tt>$c[1]</tt>",
			    "<tt>$c[2]</tt>"),"<p>\n";
		}
	}
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'pid'}</b></td> <td><b>$text{'owner'}</b></td>\n";
print "<td><b>$text{'cpu'}</b></td> <td><b>$text{'command'}</b></td> </tr>\n";
@procs = sort { $b->{'cpu'} <=> $a->{'cpu'} } &list_processes();
@procs = grep { !$hide{$_->{'user'}} } @procs;
foreach $pr (@procs) {
	$p = $pr->{'pid'};
	print "<tr $cb> <td><a href=\"edit_proc.cgi?$p\">$p</a></td>\n";
	print "         <td>$pr->{'user'}</td>\n";
	print "         <td>$pr->{'cpu'}</td>\n";
	print "         <td>",&cut_string($pr->{'args'},60),"</td> </tr>\n";
	}
print "</table><p>\n";

print "<hr>\n";
&footer("/", $text{'index'});

0707010003cb65000081e40000000000000002000000013ac03892000003aa000000200000000000000000000000000000001900000003reloc/proc/index_run.cgi  #!/usr/local/bin/perl
# index_run.cgi
# Allows running of a new command

require './proc-lib.pl';
use Config;
&header($text{'index_title'}, "", "run", "proc", 1);
print "<hr>\n";
&ReadParse();
&index_links("run");

print "<form action=run.cgi method=post>\n";
print "<table>\n";
print "<tr> <td>",&hlink("<b>$text{'run_command'}</b>","cmd"),"</td>\n";
print "<td><input name=cmd size=40>\n";
print "<input type=submit value=\"$text{'run_submit'}\"></td> </tr>\n";

print "<tr> <td>",&hlink("<b>$text{'run_mode'}</b>","mode"),"</td>\n";
print "<td><input type=radio name=mode value=1> $text{'run_bg'}\n";
print "<input type=radio name=mode value=0 checked> $text{'run_fg'}</td>\n";
print "</tr>\n";

print "<tr> <td valign=top>",
      &hlink("<b>$text{'run_input'}</b>","input"),"</td>\n";
print "<td><textarea name=input rows=5 cols=30></textarea></td> </tr>\n";
print "</table></form>\n";

print "<hr>\n";
&footer("/", $text{'index'});
  0707010003cb66000081e40000000000000002000000013ac038910000139e000000200000000000000000000000000000001c00000003reloc/proc/index_search.cgi   #!/usr/bin/perl
# index_search.cgi
# Allows searching for processes by user or command

require './proc-lib.pl';
&foreign_require("mount", "mount-lib.pl");
use Config;
&header($text{'index_title'}, "", "search", "proc", 1);
print "<hr>\n";
&ReadParse();
&index_links("search");

# display search form
print "<form action=index_search.cgi>\n";
print "<table width=100%><tr><td valign=top>\n";

printf "<input type=radio name=mode value=0 %s>\n",
	$in{mode}==0 ? "checked" : "";
print &hlink("<b>$text{'search_user'}</b>","suser"),"\n";
printf "<input name=user size=8 value=\"%s\"> %s<br>\n",
	$in{mode}==0 ? $in{user} : "",
	&user_chooser_button("user", 0);

printf "<input type=radio name=mode value=1 %s>\n",
	$in{mode}==1 ? "checked" : "";
print &hlink("<b>$text{'search_match'}</b>","smatch"),"\n";
printf "<input name=match size=20 value=\"%s\"><br>\n",
	$in{mode}==1 ? $in{match} : "";

printf "<input type=radio name=mode value=2 %s>\n",
	$in{mode}==2 ? "checked" : "";
$cpu = sprintf "<input name=cpu size=4 value=\"%s\">\n",
		$in{mode}==2 ? $in{cpu} : "";
print &hlink("<b>".&text('search_cpupc', $cpu)."</b>", "scpu"),"<br>\n";

print "</td><td valign=top>\n";

if ($has_fuser_command) {
	printf "<input type=radio name=mode value=3 %s>\n",
		$in{mode}==3 ? "checked" : "";
	print &hlink("<b>$text{'search_fs'}</b>","sfs"),"\n";
	if (&foreign_check("mount")) {
		print "<select name=fs>\n";
		foreach $fs (&foreign_call("mount", "list_mounted")) {
			next if ($fs->[2] eq "swap");
			printf "<option %s>%s\n",
			     $in{'mode'}==3 && $in{'fs'} eq $fs->[0] ?
			     "selected" : "", $fs->[0];
			}
		print "</select><br>\n";
		}
	else {
		printf "<input name=fs size=15 value='%s'><br>\n",
			$in{'mode'}==3 ? $in{'fs'} : "";
		}

	printf "<input type=radio name=mode value=4 %s>\n",
		$in{mode}==4 ? "checked" : "";
	print &hlink("<b>$text{'search_files'}</b>","sfiles"),"\n";
	printf "<input name=files size=30 value=\"%s\">\n",
		$in{mode}==4 ? $in{'files'} : "";
	print &file_chooser_button("files", 0);
	print "<br>\n";
	}

printf "<input type=checkbox name=ignore value=1 %s> %s<br>\n",
	$in{'ignore'} ? 'checked' : '',
	&hlink("<b>$text{'search_ignore'}</b>","signore");
print "</td></tr></table>\n";
print "<input type=submit value=\"$text{'search_submit'}\">\n";
print "</form>\n";

if (%in) {
	# search for processes
	@procs = &list_processes();
	@procs = grep { !$hide{$_->{'user'}} } @procs;
	if ($in{mode} == 0) {
		# search by user
		@dis = grep { $_->{'user'} eq $in{'user'} } @procs;
		}
	elsif ($in{mode} == 1) {
		# search by regexp
		@dis = grep { $_->{'args'} =~ /$in{match}/i } @procs;
		}
	elsif ($in{mode} == 2) {
		# search by cpu
		@dis = grep { $_->{'cpu'} > $in{'cpu'} } @procs;
		@dis = sort { $b->{'cpu'} <=> $a->{'cpu'} } @dis;
		}
	elsif ($in{mode} == 3) {
		# search by filesystem
		foreach $p (&find_mount_processes($in{'fs'})) { $using{$p}++; }
		@dis = grep { defined($using{$_->{'pid'}}) } @procs;
		}
	elsif ($in{mode} == 4) {
		# search by files
		foreach $p (&find_file_processes(split(/\s+/, $in{'files'})))
			{ $using{$p}++; }
		@dis = grep { defined($using{$_->{'pid'}}) } @procs;
		}

	if ($in{'ignore'}) {
		# Ignore this process and any children
		@dis = grep { $_->{'pid'} != $$ && $_->{'ppid'} != $$ } @dis;
		}

	# display matches
	if (@dis) {
		print "<table border width=100%>\n";
		print "<tr $tb> <td><b>$text{'pid'}</b></td>\n";
		print "         <td><b>$text{'owner'}</b></td>\n";
		print "         <td><b>$text{'cpu'}</b></td>\n";
		print "         <td><b>$text{'command'}</b></td> </tr>\n";
		foreach $d (@dis) {
			$p = $d->{'pid'};
			push(@pidlist, $p);
			print "<tr $cb> <td><a href=\"edit_proc.cgi?$p\">",
			      "$p</a></td>\n";
			print "<td>$d->{user}</td>\n";
			print "<td>$d->{cpu}</td>\n";
			print "<td>",&cut_string($d->{args},60),
			      "</td> </tr>\n";
			}
		print "</table><p>\n";
		}
	else {
		print "<b>$text{'search_none'}</b><p>\n";
		}

	if (@pidlist && $access{'simple'}) {
		# display form for mass killing with selected signals
		print "<form action=kill_proc_list.cgi>\n";
		print "<input type=hidden name=args value=\"$in\">\n";
		printf "<input type=hidden name=pidlist value=\"%s\">\n",
			join(" ", @pidlist);
		print "<input type=hidden name=pid value=$pinfo{pid}>\n";
		foreach $s ('KILL', 'TERM', 'HUP', 'STOP', 'CONT') {
			printf "<input type=submit value=\"%s\" name=%s>\n",
				$text{"kill_".lc($s)}, $s;
			}
		print "</form>\n";
		}
	elsif (@pidlist) {
		# display form for mass killing with any signal
		print "<form action=kill_proc_list.cgi>\n";
		print "<input type=submit value=\"$text{'search_kill'}\">\n";
		print "<input type=hidden name=args value=\"$in\">\n";
		printf "<input type=hidden name=pidlist value=\"%s\">\n",
			join(" ", @pidlist);
		print "<select name=signal>\n";
		foreach $s (split(/\s+/, $Config{sig_name})) {
			printf "<option value=\"$s\" %s> $s\n",
				$s eq "TERM" ? "selected" : "";
			}
		print "</select></form>\n";
		}
	}

print "<hr>\n";
&footer("/", $text{'index'});

  0707010003cb67000081e40000000000000002000000013ac0389100000422000000200000000000000000000000000000001a00000003reloc/proc/index_size.cgi #!/usr/local/bin/perl
# index_cpu.cgi

require './proc-lib.pl';
&header($text{'index_title'}, "", "size", "proc", 1);
print "<hr>\n";

&index_links("size");
if (defined(&get_memory_info)) {
	@m = &get_memory_info();
	if (@m) {
		print &text('index_mem', "<tt>$m[0]</tt>",
			    "<tt>$m[1]</tt>"),"\n";
		print "&nbsp;&nbsp;",&text('index_swap', "<tt>$m[2]</tt>",
					   "<tt>$m[3]</tt>"),"<p>\n";
		}
	}
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'pid'}</b></td> <td><b>$text{'owner'}</b></td>\n";
print "<td><b>$text{'size'}</b></td> <td><b>$text{'command'}</b></td> </tr>\n";
@procs = sort { $b->{'size'} <=> $a->{'size'} } &list_processes();
@procs = grep { !$hide{$_->{'user'}} } @procs;
foreach $pr (@procs) {
	$p = $pr->{'pid'};
	print "<tr $cb> <td><a href=\"edit_proc.cgi?$p\">$p</a></td>\n";
	print "         <td>$pr->{'user'}</td>\n";
	print "         <td>$pr->{'size'}</td>\n";
	print "         <td>",&cut_string($pr->{'args'},60),"</td> </tr>\n";
	}
print "</table><p>\n";

print "<hr>\n";
&footer("/", $text{'index'});

  0707010003cb68000081e40000000000000002000000013ac0389100000459000000200000000000000000000000000000001a00000003reloc/proc/index_tree.cgi #!/usr/local/bin/perl
# index.cgi
# Display a list of all existing processes

require './proc-lib.pl';
&header($text{'index_title'}, "", "tree", "proc", 1);
print "<hr>\n";

&index_links("tree");
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'pid'}</b></td> <td><b>$text{'owner'}</b></td>\n";
print "         <td><b>$text{'command'}</b></td> </tr>\n";
@procs = sort { $a->{'pid'} <=> $b->{'pid'} } &list_processes();
$min = 999;
foreach $pr (@procs) {
	$p = $pr->{'pid'}; $pp = $pr->{'ppid'};
	$argmap{$p} = $pr->{'args'};
	$usermap{$p} = $pr->{'user'};
	push(@{$children{$pp}}, $p);
	$min = $p if ($p < $min);
	}
&walk_procs("", $min);
print "</table><p>\n";

print "<hr>\n";
&footer("/", $text{'index'});


# walk_procs(indent, pid)
sub walk_procs
{
local(@ch, $_, $args);
if (!$hide{$usermap{$_[1]}}) {
	print "<tr $cb><td><tt>$_[0]<a href=\"edit_proc.cgi?$_[1]\">",
	      "$_[1]</a></tt></td> <td>$usermap{$_[1]}</td>\n";
	$args = &cut_string($argmap{$_[1]}, 70);
	print "<td>$args</td> </tr>\n";
	}
foreach (@{$children{$_[1]}}) {
	&walk_procs("$_[0]&nbsp;", $_) if ($_ != $_[1]);
	}
}

   0707010003cb69000081e40000000000000002000000013ac0389100000417000000200000000000000000000000000000001a00000003reloc/proc/index_user.cgi #!/usr/local/bin/perl
# index_user.cgi

require './proc-lib.pl';
&header($text{'index_title'}, "", "user", "proc", 1);
print "<hr>\n";

&index_links("user");
@procs = sort { $b->{'cpu'} <=> $a->{'cpu'} } &list_processes();
@procs = grep { !$hide{$_->{'user'}} } @procs;
@users = &unique(map { $_->{'user'} } @procs);
foreach $u (@users) {
	@uinfo = getpwnam($u);
	print "<dt><font size=+1>$u ",
		$uinfo[6] ? "($uinfo[6])" : "","</font><br>\n";
	print "<dd><table border width=90%>\n";
	print "<tr $tb> <td width=1% nowrap><b>$text{'pid'}</b></td>\n";
	print "         <td width=1%><b>$text{'cpu'}</b></td>\n";
	print "         <td width=98%><b>$text{'command'}</b></td> </tr>\n";
	foreach $pr (grep { $_->{'user'} eq $u } @procs) {
		$p = $pr->{'pid'};
		print "<tr $cb>\n";
		print "<td><a href=\"edit_proc.cgi?$p\">$p</a></td>\n";
		print "<td nowrap>$pr->{'cpu'}</td>\n";
		print "<td>",&cut_string($pr->{'args'},60),"</td>\n";
		print "</tr>\n";
		}
	print "</table><p>\n";
	}
print "</dl>\n";

print "<hr>\n";
&footer("/", $text{'index'});

 0707010003cb6a000081e40000000000000002000000013ac03891000002a2000000200000000000000000000000000000001900000003reloc/proc/kill_proc.cgi  #!/usr/local/bin/perl
# kill_proc.cgi
# Send a signal to a process

require './proc-lib.pl';
&ReadParse();
&switch_acl_uid();
&error_setup(&text('kill_err', $in{signal}, $in{pid}));
foreach $s ('KILL', 'TERM', 'HUP', 'STOP', 'CONT') {
	$in{'signal'} = $s if ($in{$s});
	}

%pinfo = &process_info($in{pid});
if (&kill_logged($in{signal}, $in{pid})) {
	$in{'args0'} = $pinfo{'args'};
	&webmin_log("kill", undef, undef, \%in);
	sleep(1);
	if (&process_info($in{pid})) {
		# still around.. return to process info
		&redirect("edit_proc.cgi?$in{pid}");
		}
	else {
		# gone case .. return to list
		&redirect("index.cgi");
		}
	}
else {
	# failed to send signal
	&error($!);
	}

  0707010003cb6b000081e40000000000000002000000013ac03891000002e9000000200000000000000000000000000000001e00000003reloc/proc/kill_proc_list.cgi #!/usr/local/bin/perl
# kill_proc_list.cgi
# Send a signal to a list of process

require './proc-lib.pl';
&ReadParse();
&switch_acl_uid();
foreach $s ('KILL', 'TERM', 'HUP', 'STOP', 'CONT') {
	$in{'signal'} = $s if ($in{$s});
	}

$| = 1;
&header($text{'kill_title'}, "");
print "<hr>\n";
@pidlist = split(/\s+/, $in{pidlist});
@pinfo = &list_processes(@pidlist);
for($i=0; $i<@pidlist; $i++) {
	$in{"args$i"} = $pinfo[$i]->{'args'};
	print "$text{'pid'} <tt>$pidlist[$i]</tt> ... \n";
	if (&kill_logged($in{signal}, $pidlist[$i])) {
		print "SIG$in{signal} $text{'kill_sent'}<br>\n";
		}
	else { print "$!<br>\n"; }
	}
&webmin_log("kill", undef, undef, \%in);
print "<p><hr>\n";
&footer("index_search.cgi?$in{'args'}", $text{'search_return'});

   070701000425b4000041ed0000000000000001000000023ac03c4d00000000000000200000000000000000000000000000001000000003reloc/proc/lang   070701000425b5000081a40000000000000002000000013ac0389200000807000000200000000000000000000000000000001300000003reloc/proc/lang/de    index_title=Prozess Manager
index_display=Anzeige
index_tree=PID
index_user=Benutzer
index_size=Speicher
index_cpu=CPU
index_search=Suche
index_run=Ausf&uuml;hren..
index_return=Prozess Liste

pid=Prozess ID
owner=Besitzer
command=Kommando
cpu=CPU
size=Gr&ouml;sse
parent=Vater Prozess
runtime=Laufzeit
nice=Guter Level

search_user=Besessen von
search_match=&Uuml;bereinstimmung
search_cpu=Benutzt mehr als
search_fs=Benutzt Dateisystem
search_files=Benutzt Datei
search_submit=Finde
search_none=Kein passender Prozess gefunden.
search_kill=Sende Signal
search_return=Such Formular

run_command=Auszuf&uuml;hrendes Kommando
run_submit=F&uuml;hre aus
run_mode=Ausf&uuml;hr Modus
run_bg=F&uuml;hre im Hintergrund aus
run_fg=Warte bis Beendigung
run_input=Eingabe f&uuml;r Kommando
run_title=Kommando Ausgabe
run_output=Ausgabe von $1 ..
run_none=Es wurde keine Ausgabe generiert

edit_title=Prozess Information
edit_gone=Dieser Prozess l&auml;uft nicht mehr
edit_sub=Unter-Prozesse
edit_kill=Sende Signal
edit_change=&Auml;ndere

kill_err=Fehler beim Senden von Signal $1 an Prozess $2
kill_title=Sende Signal
kill_sent=Gesendet

renice_err=Fehler beim auffrischen des Prozesses $1

linux_pri=Priorit&auml;t
linux_tty=TTY
linux_status=Status
linux_wchan=Wartet in
linux_mem=Speicher
linux_group=Gruppe
linux_ruser=Echter Benutzer
linux_rgroup=Exhte Gruppe
linux_pgid=Prozess Gruppen ID
linux_tty=TTY

linuxstat_R=L&auml;uft
linuxstat_S=Sschl&auml;ft
linuxstat_D=Tiefschlaf
linuxstat_T=Gestoppt
linuxstat_Z=Zombie

freebsd_ruser=Echter Benutzer
freebsd_rgroup=Echte Gruppe
freebsd_tty=TTY
freebsd_pgid=Prozess Gruppe
freebsd_lstart=Start Zeit
freebsd_lim=Speicher Limit

hpux_pri=Priorit&auml;t
hpux_tty=TTY
hpux_status=Status
hpux_wchan=Warten auf

hpuxstat_0=Existiert nicht
hpuxstat_S=Schl&auml;ft
hpuxstat_W=Wartet
hpuxstat_R=L&auml;uft
hpuxstat_I=Zwischenstatus
hpuxstat_Z=Zombie
hpuxstat_T=Gestoppt
hpuxstat_G=W&auml;chst

macos_tty=TTY

sysv_group=Gruppe
sysv_ruser=Echter Benutzer
sysv_rgroup=Echte Gruppe
sysv_pgid=Prozess Gruppen ID
sysv_tty=TTY

 070701000425b6000081a40000000000000002000000013ac0389200000a0b000000200000000000000000000000000000001300000003reloc/proc/lang/en    index_title=Process Manager
index_display=Display
index_tree=PID
index_user=User
index_size=Memory
index_cpu=CPU
index_search=Search
index_run=Run..
index_return=process list
index_mem=<b>Real memory:</b> $1 kB total / $2 kB free
index_swap=<b>Swap space:</b> $1 kB total / $2 kB free
index_load=<b>CPU load averages:</b> $1 (5 mins) , $2 (10 mins) , $3 (15 mins)

pid=Process ID
owner=Owner
command=Command
cpu=CPU
size=Size
parent=Parent process
runtime=Run time
nice=Nice level

search_user=Owned by
search_match=Matching
search_cpupc=Using more than $1% CPU
search_fs=Using filesystem
search_files=Using file
search_submit=Search
search_none=No matching processes found.
search_kill=Send Signal
search_ignore=Ignore search processes
search_return=search form

run_command=Command to run
run_submit=Run
run_mode=Run mode
run_bg=Run in background
run_fg=Wait until complete
run_input=Input to command
run_title=Command Output
run_output=Output from $1 ..
run_none=No output generated

edit_title=Process Information
edit_gone=This process is no longer running
edit_sub=Subprocesses
edit_kill=Send Signal
edit_change=Change
edit_prilow=Low priority
edit_prihigh=High priority
edit_pridef=Default
edit_none=None

kill_err=Failed to send signal $1 to process $2
kill_title=Send Signal
kill_sent=sent

renice_err=Failed to renice process $1

linux_pri=Priority
linux_tty=TTY
linux_status=Status
linux_wchan=Waiting In
linux_mem=Memory
linux_group=Group
linux_ruser=Real user
linux_rgroup=Real group
linux_pgid=Process group ID

linuxstat_R=Running
linuxstat_S=Sleeping
linuxstat_D=Deep sleep
linuxstat_T=Stopped
linuxstat_Z=Zombie

freebsd_ruser=Real user
freebsd_rgroup=Real group
freebsd_tty=TTY
freebsd_pgid=Process group
freebsd_lstart=Start time
freebsd_lim=Memory limit

hpux_pri=Priority
hpux_tty=TTY
hpux_status=Status
hpux_wchan=Waiting for

hpuxstat_0=Nonexistent
hpuxstat_S=Sleeping
hpuxstat_W=Waiting
hpuxstat_R=Running
hpuxstat_I=Intermediate
hpuxstat_Z=Zombie
hpuxstat_T=Stopped
hpuxstat_G=Growing

macos_tty=TTY

sysv_group=Group
sysv_ruser=Real user
sysv_rgroup=Real group
sysv_pgid=Process group ID
sysv_tty=TTY

log_run=Ran command "$1"
log_kill=Sent signal $1 to process $2
log_kills=Send signal $1 to $2 processes
log_kill_l=Sent signal $1 to process $2
log_kills_l=Sent signal $1 to processes<br>$2

acl_manage=Manage processes as user

kill_kill=Kill Process
kill_term=&nbsp;Terminate&nbsp;&nbsp;
kill_hup=&nbsp;&nbsp;Restart&nbsp;&nbsp;&nbsp;
kill_stop=&nbsp;&nbsp;&nbsp;&nbsp;Stop&nbsp;&nbsp;&nbsp;&nbsp;
kill_cont=&nbsp;&nbsp;Continue&nbsp;&nbsp;

 070701000425b7000081a40000000000000002000000013ac0389200000b22000000200000000000000000000000000000001300000003reloc/proc/lang/es    index_title=Gestor de Procesos
index_display=Mostrar
index_tree=PID
index_user=Usuario
index_size=Memoria
index_cpu=UCP
index_search=Buscar
index_run=Ejecutar...
index_return=lista de procesos
index_mem=<b>Memoria real:</b> $1 KB total / $2 KB libres
index_swap=<b>Espacio de intercambio:</b> $1 KB total / $2 KB libres
index_load=<b>Promedios de carga de UCP:</b> $1 (5 mins), $2 (10 mins), $3 (15 mins)

pid=ID de Proceso
owner=Propietario
command=Comando
cpu=UCP
size=Medida
parent=Proceso padre
runtime=Tiempo de Ejecuci髇
nice=Nivel de prioridad (Nice)

search_user=Propiedad de
search_match=Coincidiendo con
search_cpupc=Usando m醩 de $1% de UCP
search_fs=Usando sistema de archivos
search_files=Usando archivo
search_submit=Buscar
search_none=No se han encontrado procesos que coincidan.
search_kill=Enviar Se馻l
search_ignore=Ignorar procesos de b鷖queda
search_return=formulario de b鷖queda

run_command=Comando a ejecutar
run_submit=Ejecutar
run_mode=Modo de Ejecuci髇
run_bg=Ejecutar en segundo plano
run_fg=Esperar hasta que termine
run_input=Entrada del comando
run_title=Salida del comando
run_output=Salida de $1 ...
run_none=No se ha generado salida

edit_title=Informaci髇 de Proceso
edit_gone=Este proceso ya no se est ejecutando
edit_sub=Subprocesos
edit_kill=Enviar Se馻l
edit_change=Cambiar
edit_prilow=Prioridad baja
edit_prihigh=Prioridad alta
edit_pridef=Por defecto
edit_none=Ninguna

kill_err=Error al enviar se馻l $1 al proceso $2
kill_title=Enviar Se馻l
kill_sent=enviada

renice_err=Error en cambio de prioridad de $1

linux_pri=Prioridad
linux_tty=TTY
linux_status=Estado
linux_wchan=Esperando En
linux_mem=Memoria
linux_group=Grupo
linux_ruser=Usuario Real
linux_rgroup=Grupo Real
linux_pgid=ID de grupo de Proceso

linuxstat_R=Ejecutando
linuxstat_S=Durmiendo
linuxstat_D=Sue駉 profundo
linuxstat_T=Parado
linuxstat_Z=Zombi

freebsd_ruser=Usuario Real
freebsd_rgroup=Grupo Real
freebsd_tty=TTY
freebsd_pgid=Grupo del Proceso
freebsd_lstart=Hora de Inicio
freebsd_lim=L韒ite de Memoria

hpux_pri=Prioridad
hpux_tty=TTY
hpux_status=Status
hpux_wchan=Esperando por

hpuxstat_0=No existe
hpuxstat_S=Durmiendo
hpuxstat_W=Esperando
hpuxstat_R=En ejecuci髇
hpuxstat_I=Intermedio
hpuxstat_Z=Zombi
hpuxstat_T=Parado
hpuxstat_G=Creciendo

macos_tty=TTY

sysv_group=Grupo
sysv_ruser=Usuario Real
sysv_rgroup=Grupo Real
sysv_pgid=ID de grupo del Proceso
sysv_tty=TTY

log_run=Ejecutado comando "$1"
log_kill=Enviada se馻l $1 a proceso $2
log_kills=Env韆 se馻l $1 a $2 procesos
log_kill_l=Enviada se馻l $1 a proceso $2
log_kills_l=Enviada se馻l $1 a procesos<br>$2

acl_manage=Gestionar procesos como usuario

kill_kill=Matar Proceso
kill_term=&nbsp;Terminar&nbsp;&nbsp;
kill_hup=&nbsp;&nbsp;Rearrancar&nbsp;&nbsp;&nbsp;
kill_stop=&nbsp;&nbsp;&nbsp;&nbsp;Parar&nbsp;&nbsp;&nbsp;&nbsp;
kill_cont=&nbsp;&nbsp;Continuar&nbsp;&nbsp;

  070701000425b8000081a40000000000000002000000013ac038920000086b000000200000000000000000000000000000001300000003reloc/proc/lang/fr    index_title=Gestionnaire de processus
index_display=Mode d'affichage
index_tree=Num閞o
index_user=Propri閠aire
index_size=M閙oire
index_cpu=Processeur
index_search=Recherche
index_run=Ex閏uter
index_return=la liste des processus

pid=Num閞o de processus
owner=Propri閠aire
command=Commande
cpu=Processeur
size=Taille
parent=Processus parent
runtime=Temps d'ex閏ution
nice=Niveau de priorit

search_user=Appartient 
search_match=Correspond 
search_cpu=Utilise plus que
search_fs=Utilise le syst鑝e de fichier
search_files=Utilise le fichier
search_submit=Rechercher
search_none=Aucun processus correspondant
search_kill=Envoyer le signal
search_return=page de recherche

run_command=Commande  ex閏uter
run_submit=Ex閏uter
run_mode=Mode d'ex閏ution
run_bg=Ex閏uter en arri鑢e plan
run_fg=Attendre que le processus soit termin
run_input=Flux d'entr閑
run_title=Sortie de la Commande
run_output=Sortie de $1
run_none=Aucune sortie g閚閞閑

edit_title=Information du processus
edit_gone=Ce processus n'est plus ex閏ut
edit_sub=Sous-processus
edit_kill=Envoyer le signal
edit_change=Changer

kill_err=Impossible d'envoyer le signal $1 au processus $2
kill_title=Envoyer le signal
kill_sent=envoy

renice_err=Impossible de changer la priorit du processus $1

linux_pri=Priorit
linux_tty=TTY
linux_status=蓆ats
linux_wchan=En attente de
linux_mem=M閙oire
linux_group=Groupe
linux_ruser=V閞itable utilisateur
linux_rgroup=V閞itable groupe
linux_pgid=Num閞o de groupe du processus

linuxstat_R=Ex閏ut
linuxstat_S=En sommeil
linuxstat_D=Sommeil profond
linuxstat_T=Arr阾
linuxstat_Z=Zombie

freebsd_ruser=V閞itable usager
freebsd_rgroup=V閞itable groupe
freebsd_tty=TTY
freebsd_pgid=Groupe de processus
freebsd_lstart=Temps de d閜art
freebsd_lim=Limite de m閙oire

hpux_pri=Priorit
hpux_tty=TTY
hpux_status=蓆ats
hpux_wchan=En attente de

hpuxstat_0=Inexistant
hpuxstat_S=En sommeil
hpuxstat_W=En attente
hpuxstat_R=Ex閏ut
hpuxstat_I=Interm閐iaire
hpuxstat_Z=Zombie
hpuxstat_T=Arr阾
hpuxstat_G=En expansion

macos_tty=TTY

sysv_group=Groupe
sysv_ruser=V閞itable usager
sysv_rgroup=V閞itable groupe
sysv_pgid=Num閞o de groupe de processus
sysv_tty=TTY

 070701000425b9000081a40000000000000002000000013ac03892000007dc000000200000000000000000000000000000001300000003reloc/proc/lang/hu    index_title=Processz Menedzser
index_display=Megjelen韙閟
index_tree=PID
index_user=Felhaszn醠
index_size=Mem髍ia
index_cpu=CPU
index_search=Keres閟...
index_run=Futtat醩...
index_return=processz list醜oz

pid=Processz ID
owner=Tulajdonos
command=Parancs
cpu=CPU
size=M閞et
parent=Sz黮 processz
runtime=Eltelt id
nice=Nice szint

search_user=Tulajdonosa
search_match=Keresett sz
search_cpupc=A CPU-haszn醠at nagyobb mint $1 %
search_fs=Adott f醞lrendszer
search_files=Keresett f醞l
search_submit=Keres閟
search_none=Egyez processz tal醠ata nem siker黮t.
search_kill=Jelz閟 k黮d閟e
search_return=a keres 鹯laphoz

run_command=Parancs futtat醩a
run_submit=Futtat醩
run_mode=Fut醩 m骴ja
run_bg=Futtat醩 h醫t閞ben
run_fg=V醨akoz醩 befejez閟ig
run_input=Parancs bemenete
run_title=Parancs kimenet
run_output=$1 kimenete ..
run_none=Nincs kimenet (output).

edit_title=Processz Inform醕i
edit_gone=Ez a processz nem fut tov醔b
edit_sub=Alprocessessz
edit_kill=Jelz閟 k黮d閟e
edit_change=V醠toztat

kill_err=A(z) $1 jelz閟 k黮d閟e a(z) $2 processznek nem siker黮t.
kill_title=Jelz閟 k黮d閟e
kill_sent=elk黮dve

renice_err=A(z) $1 processz priorit醩醤ak megv醠toztat醩a nem siker黮t.

linux_pri=Priorit醩
linux_tty=TTY
linux_status=羖lapot
linux_wchan=Waiting In
linux_mem=Mem髍ia
linux_group=Csoport
linux_ruser=Val骴i felhaszn醠
linux_rgroup=Val骴i csoport
linux_pgid=Processz csoport ID

linuxstat_R=Fut
linuxstat_S=Alv
linuxstat_D=M閘yalv
linuxstat_T=Le醠l韙ott
linuxstat_Z=Zombi

freebsd_ruser=Val骴i felhaszn醠
freebsd_rgroup=Val骴i csoport
freebsd_tty=TTY
freebsd_pgid=Processz csoport
freebsd_lstart=Start time
freebsd_lim=Mem髍iakorl醫

hpux_pri=Priorit醩
hpux_tty=TTY
hpux_status=羖lapot
hpux_wchan=V醨akoz醩 a

hpuxstat_0=Neml閠ez
hpuxstat_S=Alv
hpuxstat_W=V醨akoz
hpuxstat_R=Fut
hpuxstat_I=K鰖vet韙
hpuxstat_Z=Zombi
hpuxstat_T=Le醠l韙va
hpuxstat_G=N鰒ekv

macos_tty=TTY

sysv_group=Csoport
sysv_ruser=Val骴i felhaszn醠
sysv_rgroup=Val骴i csoport
sysv_pgid=Processz csoport ID
sysv_tty=TTY
070701000425ba000081a40000000000000002000000013ac0389200000b3a000000200000000000000000000000000000001300000003reloc/proc/lang/pl    index_title=Zarz眃ca proces體
index_display=Wy秝ietl wg
index_tree=PID
index_user=U縴tkownika
index_size=Pami阠i
index_cpu=CPU
index_search=Szukaj
index_run=Uruchom..
index_return=listy proces體
index_mem=<b>Pami赕 rzeczywista:</b> $1 kB 潮cznie / $2 kB wolne
index_swap=<b>Przestrze wymiany:</b> $1 kB 潮cznie / $2 kB wolne
index_load=<b>ednie obci笨enie CPU:</b> $1 (5 min) , $2 (10 min) , $3 (15 min)

pid=Nr ID procesu
owner=W砤禼iciel
command=Polecenie
cpu=Wykorzystanie CPU
size=Rozmiar
parent=Nr ID rodzica
runtime=Czas dzia砤nia
nice=Poziom <i>nice</i>

search_user=W砤禼iciel
search_match=Wzorzec nazwy
search_cpupc=Wykorzystuj眂y wi阠ej ni $1% CPU
search_fs=Korzystaj眂y z&nbsp;systemu plik體
search_files=Korzystaj眂y z&nbsp;pliku
search_submit=Szukaj
search_none=Nie znaleziono odpowiednich proces體.
search_kill=Wy秎ij sygna
search_ignore=Pomin辨 procesy przeszukuj眂e
search_return=formularza szukania

run_command=Polecenie do uruchomienia
run_submit=Uruchom
run_mode=Spos骲 uruchomienia
run_bg=Uruchom w&nbsp;tle
run_fg=Czekaj na zako馽zenie
run_input=Dane wej禼iowe
run_title=Wynik polecenia
run_output=Wynik polecenia $1 ..
run_none=Brak wynik體

edit_title=Informacje o procesie
edit_gone=Ten proces ju nie dzia砤
edit_sub=Podprocesy
edit_kill=Wy秎ij sygna
edit_change=Zmie
edit_prilow=Niski priorytet
edit_prihigh=Wysoki priorytet
edit_pridef=Domy秎ne
edit_none=Brak

kill_err=Nie uda硂 si wys砤 sygna硊 $1 do procesu $2
kill_title=Wy秎ij sygna
kill_sent=wy秎ij

renice_err=Nie uda硂 si zmieni nice dla procesu $1

linux_pri=Priorytet
linux_tty=Terminal
linux_status=Stan
linux_wchan=Czeka w
linux_mem=Pami赕
linux_group=Grupa
linux_ruser=Rzeczywisty u縴tkownik
linux_rgroup=Rzeczywista grupa
linux_pgid=Nr ID grupy proces體

linuxstat_R=Dzia砤
linuxstat_S=U秔iony
linuxstat_D=G酬boko u秔iony
linuxstat_T=Zatrzymany
linuxstat_Z=Zombie

freebsd_ruser=Rzeczywisty u縴tkownik
freebsd_rgroup=Rzeczywista grupa
freebsd_tty=Terminal
freebsd_pgid=Grupa procesu
freebsd_lstart=Czas uruchomienia
freebsd_lim=Ograniczenie pami阠i

hpux_pri=Priorytet
hpux_tty=Terminal
hpux_status=Stan
hpux_wchan=Czeka na

hpuxstat_0=Nie istnieje
hpuxstat_S=U秔iony
hpuxstat_W=Czeka
hpuxstat_R=Dzia砤
hpuxstat_I=Przej禼iowy
hpuxstat_Z=Zombie
hpuxstat_T=Zatrzymany
hpuxstat_G=Growing

macos_tty=Terminal

sysv_group=Grupa
sysv_ruser=Rzeczywisty u縴tkownik
sysv_rgroup=Rzeczywista grupa
sysv_pgid=Nr ID grupy proces體
sysv_tty=Terminal

log_run=Uruchomiono polecenie "$1"
log_kill=Wys砤no sygna $1 do procesu $2
log_kills=Wys砤no sygna $1 do proces體 $2
log_kill_l=Wys砤no sygna $1 do procesu $2
log_kills_l=Wys砤no sygna $1 do proces體<br>$2

acl_manage=Zarz眃za procesami jako u縴tkownik

kill_kill=Zabij proces
kill_term=&nbsp;&nbsp;Przerwij&nbsp;&nbsp;
kill_hup=&nbsp;Zrestartuj&nbsp;
kill_stop=&nbsp;Zatrzymaj&nbsp;&nbsp;
kill_cont=&nbsp;Kontynuuj&nbsp;&nbsp;
  070701000425bb000081a40000000000000002000000013ac038920000087b000000200000000000000000000000000000001300000003reloc/proc/lang/pt    index_title=Administrador de Processos
index_display=Mostrar
index_tree=PID
index_user=Utilizador
index_size=Mem髍ia
index_cpu=CPU
index_search=Procurar
index_run=Executar..
index_display=Mostrar
index_return=lista de processos

pid=ID do processo
owner=Propriat醨io
command=Comando
cpu=CPU
size=Tamanho
parent=Processo de origem
runtime=Tempo de Execu玢o
nice=Nivel de prioridade (Nice)

search_user=Propriedade de
search_match=Igual a
search_cpu=Utilizando mais que
search_fs=Utilizando o sistema de ficheiros
search_files=Utilizando o ficheiro
search_submit=Procurar
search_none=N鉶 foram encontrados processos correspondentes.
search_kill=Enviar Sinal
search_return=formul醨io de procura

run_command=Comando para executar
run_submit=Executar
run_mode=Modo de execu玢o
run_bg=Correr em segundo plano
run_fg=Esperar at estar completo
run_input=Entrada de par鈓etros para o comando
run_title=Sa韉a de Resultados do Comando
run_output=Sa韉a de resultados de $1 ..
run_none=N鉶 foi gerada nenhuma sa韉a de resultados

edit_title=Informa玢o do Processo
edit_gone=Este processo j n鉶 se encontra em execu玢o
edit_sub=Sub-processos
edit_kill=Enviar Sinal
edit_change=Alterar

kill_err=Erro ao enviar o sinal $1 para o processo $2
kill_title=Enviar Sinal
kill_sent=enviado

renice_err=Erro no renice do processo $1

linux_pri=Prioridade
linux_tty=TTY
linux_status=Estado
linux_wchan= Espera
linux_mem=Mem髍ia
linux_group=Grupo
linux_ruser=Utilizador real
linux_rgroup=Grupo real
linux_pgid=ID do grupo do processo
linux_tty=TTY

linuxstat_R=A correr
linuxstat_S=A dormir
linuxstat_D=Sono Profundo
linuxstat_T=Parado
linuxstat_Z=Zombie

freebsd_ruser=Utilizador real
freebsd_rgroup=Grupo real
freebsd_tty=TTY
freebsd_pgid=Grupo do process
freebsd_lstart=Come鏾
freebsd_lim=Limite de mem髍ia

hpux_pri=Prioridade
hpux_tty=TTY
hpux_status=Estado
hpux_wchan= espera de

hpuxstat_0=Inexistente
hpuxstat_S=A Dormir
hpuxstat_W=Em Espera
hpuxstat_R=A Correr
hpuxstat_I=Intermedi醨io
hpuxstat_Z=Zombie
hpuxstat_T=Parado
hpuxstat_G=Em desenvolvimento

macos_tty=TTY

sysv_group=Grupo
sysv_ruser=Utilizador real
sysv_rgroup=Grupo real
sysv_pgid=ID do grupo do processo
sysv_tty=TTY
 070701000425bc000081a40000000000000002000000013ac03892000007bf000000200000000000000000000000000000001600000003reloc/proc/lang/ru_RU runtime=吗屐 恹镱朦礤龛
search_fs=锐镱朦珞栝 羿殡钼簋 耔耱屐
index_search=项桉
run_mode=绣骅 玎矬耜
kill_title=项耠囹 谚沩嚯
run_submit=青矬耱栩
hpuxstat_0=湾耋耱怏栝
hpuxstat_G=朽耱簌栝
hpuxstat_I=襄疱躅漤
hpuxstat_R=朽犷蜞弪
hpuxstat_S=扬栩
hpuxstat_T=务蜞眍怆屙
hpuxstat_W=其弪
hpuxstat_Z=穷灬
freebsd_lim=髓扈 镟蜩
sysv_tty=TTY
freebsd_pgid=灭箫镟 镳铞羼襦
linux_pri=橡桀痂蝈
hpux_pri=橡桀痂蝈
index_return=耧桉铌 镳铞羼耦
sysv_ruser=绣嚯 镱朦珙忄蝈朦
linux_rgroup=绣嚯 沭箫镟
macos_tty=TTY
sysv_rgroup=绣嚯 沭箫镟
linux_pgid=ID 沭箫稃 镳铞羼襦
linux_wchan=捂桎囗桢 
pid=ID 镳铞羼襦
search_files=锐镱朦珞栝 羿殡
owner=码噤咫弼
linux_tty=TTY
search_user=吾豚溧屐
hpux_tty=TTY
linux_mem=相螯
edit_kill=项耠囹 谚沩嚯
search_submit=项桉
edit_gone=泥眄 镳铞羼 犷朦 礤 耋耱怏弪
run_output=蔓忸 铗 $1 ..
edit_change=如戾龛螯
hpux_wchan=其弪
linux_status=杨耱龛
command=暑爨礓
edit_title=软纛痨圉  橡铞羼皴
hpux_status=杨耱龛
cpu=CPU
search_none=杨怙噤帼 镳铞羼耦 礤 磬殇屙
freebsd_tty=TTY
linux_group=灭箫镟
kill_err=硒栳赅 镳 铗覃腙 镳噔赍 耔沩嚯 $1 镳铞羼耋 $2
search_return=滂嚯钽 镱桉赅
search_match=杨忄镟溧栝 
kill_sent=镱耠囹
run_command=暑爨礓 潆 玎矬耜
sysv_pgid=ID 沭箫稃 镳铞羼襦
search_cpu=锐镱朦珞栝 犷脲 麇
index_title=体礤滏屦 橡铞羼耦
search_kill=项耠囹 谚沩嚯
edit_sub=项滹痤鲥耨
run_bg= 纛眍忸 疱骅戾
nice=橡桀痂蝈
index_cpu=CPU
linux_ruser=绣嚯 镱朦珙忄蝈朦
run_none=暑爨礓 龛麇泐 礤 恹忮豚
index_run=青矬耜..
run_title=蔓忸 觐爨礓
run_fg=捂桎囹 玎忮瘌屙
freebsd_ruser=绣嚯 镱朦珙忄蝈朦
size=朽珈屦
run_input=骡钿 潆 觐爨礓
index_tree=PID
index_size=相螯
freebsd_lstart=吗屐 耱囵蜞
parent=蓄滂蝈朦耜栝 镳铞羼
index_display=项赅琨忄螯
linuxstat_D=署屣觐 耧栩
linuxstat_R=朽犷蜞弪
linuxstat_S=扬栩
linuxstat_T=务蜞眍怆屙
linuxstat_Z=穷灬
index_user=项朦珙忄蝈朦
freebsd_rgroup=绣嚯 沭箫镟
renice_err=硒栳赅 镳 耢屙 镳桀痂蝈蜞 镳铞羼襦 $1
sysv_group=灭箫镟
 070701000425bd000081a40000000000000002000000013ac03892000007db000000200000000000000000000000000000001600000003reloc/proc/lang/ru_SU index_title=砼闻闹乓 鹨厦庞酉
index_display=鹣肆谫琢载
index_tree=PID
index_user=鹣特谙琢耘特
index_size=鹆脱载
index_cpu=CPU
index_search=鹣捎
index_run=姓铀..
index_return=有捎纤 幸厦庞酉

pid=ID 幸厦庞恿
owner=魈聊盘琶
command=胂土文
cpu=CPU
size=蛄谕乓
parent=蛳纳耘特铀墒 幸厦庞
runtime=饕磐 踪邢特闻紊
nice=鹨上疑耘

search_user=锫塘牧磐偈
search_match=笙琢辛牧垒墒 
search_cpu=橛邢特谡垒墒 孪膛 夼
search_fs=橛邢特谡垒墒 屏侍献绽 由釉磐
search_files=橛邢特谡垒墒 屏侍
search_submit=鹣捎
search_none=笙仔聊晾萆 幸厦庞酉 闻 瘟誓盼
search_kill=鹣犹猎 笊俏撂
search_return=纳撂锨 邢捎肆

run_command=胂土文 奶 诹姓铀
run_submit=姓釉稍
run_mode=蚺稚 诹姓铀
run_bg= 葡蜗紫 遗稚团
run_fg=镏赡猎 诹着役盼裳
run_input=髯夏 奶 讼土文
run_title=髻紫 讼土文
run_output=髻紫 显 $1 ..
run_none=胂土文 紊夼窍 闻 踪着塘

edit_title=槲葡彝撩裳  鹨厦庞优
edit_gone=淞挝偈 幸厦庞 孪特叟 闻 诱菖釉渍旁
edit_sub=鹣男蚁门佑
edit_kill=鹣犹猎 笊俏撂
edit_change=橼团紊载

kill_err=镗陕肆 幸 显淤趟 幸磷伺 由俏撂 $1 幸厦庞诱 $2
kill_title=鹣犹猎 笊俏撂
kill_sent=邢犹猎

renice_err=镗陕肆 幸 油盼 幸上疑耘粤 幸厦庞恿 $1

linux_pri=鹨上疑耘
linux_tty=TTY
linux_status=笙釉涎紊
linux_wchan=镏赡廖膳 
linux_mem=鹆脱载
linux_group=缫招辛
linux_ruser=蚺撂匚偈 邢特谙琢耘特
linux_rgroup=蚺撂匚裂 且招辛
linux_pgid=ID 且招匈 幸厦庞恿
linux_tty=TTY

linuxstat_R=蛄孪粤旁
linuxstat_S=笮稍
linuxstat_D=胍判讼 有稍
linuxstat_T=镉粤蜗滋盼
linuxstat_Z=吐

freebsd_ruser=蚺撂匚偈 邢特谙琢耘特
freebsd_rgroup=蚺撂匚裂 且招辛
freebsd_tty=TTY
freebsd_pgid=缫招辛 幸厦庞恿
freebsd_lstart=饕磐 釉烈粤
freebsd_lim=焐蜕 辛脱陨

hpux_pri=鹨上疑耘
hpux_tty=TTY
hpux_status=笙釉涎紊
hpux_wchan=瞿旁

hpuxstat_0=钆诱菖釉渍垒墒
hpuxstat_S=笮稍
hpuxstat_W=瞿旁
hpuxstat_R=蛄孪粤旁
hpuxstat_I=鹋遗认奈偈
hpuxstat_Z=吐
hpuxstat_T=镉粤蜗滋盼
hpuxstat_G=蛄釉蛰墒

macos_tty=TTY

sysv_group=缫招辛
sysv_ruser=蚺撂匚偈 邢特谙琢耘特
sysv_rgroup=蚺撂匚裂 且招辛
sysv_pgid=ID 且招匈 幸厦庞恿
sysv_tty=TTY

 070701000425be000081a40000000000000002000000013ac0389200000a92000000200000000000000000000000000000001300000003reloc/proc/lang/sv    index_title=Processhanterare
index_display=Visa
index_tree=PID
index_user=Anv鋘dare
index_size=Minne
index_cpu=CPU
index_search=S鰇
index_run=Utf鰎 ...
index_return=processlista
index_mem=<b>Fysiskt minne:</b> $1 kB totalt / $2 kB ledigt
index_swap=<b>Swap-utrymme:</b> $1 kB totalt / $2 kB ledigt
index_load=<b>Medelv鋜den f鰎 CPU-last:</b> $1 (5 min) , $2 (10 min) , $3 (15 min)

pid=Process-ID
owner=膅are
command=Kommando
cpu=CPU
size=Storlek
parent=F鰎鋖draprocess
runtime=K鰎tid
nice=Nice-niv

search_user=膅d av
search_match=St鋗mer med
search_cpupc=Anv鋘der mer 鋘 $1 % CPU
search_fs=Anv鋘der filsystem
search_files=Anv鋘der fil
search_submit=S鰇
search_none=Det fanns ingen s錮an process.
search_kill=Skicka signal
search_ignore=Strunta i s鰇processerna
search_return=s鰇formul鋜

run_command=Utf鰎 kommando
run_submit=Utf鰎
run_mode=K鰎l鋑e
run_bg=K鰎 i bakgrunden
run_fg=V鋘ta tills det 鋜 f鋜digt
run_input=Inmatning till kommando
run_title=Utmatning fr錸 kommando
run_output=Utmatning fr錸 $1 ...
run_none=Det kom ingen utmatning

edit_title=Processinformation
edit_gone=Denna process k鰎 inte l鋘gre
edit_sub=Delprocesses
edit_kill=Skicka signal
edit_change=膎dra
edit_prilow=L錱 prioritet
edit_prihigh=H鰃 prioritet
edit_pridef=Standard
edit_none=Ingen

kill_err=Det gick inte att skicka signal $1 till process $2
kill_title=Skicka signal
kill_sent=skickat

renice_err=Det gick inte att ge process $1 ett nytt nice-v鋜de

linux_pri=Prioritet
linux_tty=TTY
linux_status=Status
linux_wchan=V鋘tar i
linux_mem=Minne
linux_group=Grupp
linux_ruser=Verklig anv鋘dare
linux_rgroup=Verklig grupp
linux_pgid=Processens grupp-ID

linuxstat_R=K鰎
linuxstat_S=Vilande
linuxstat_D=Sover djupt
linuxstat_T=Stannad
linuxstat_Z=Zombie

freebsd_ruser=Verklig anv鋘dare
freebsd_rgroup=Verklig grupp
freebsd_tty=TTY
freebsd_pgid=Process-grupp
freebsd_lstart=Starttid
freebsd_lim=Minnesbegr鋘sning

hpux_pri=Prioritet
hpux_tty=TTY
hpux_status=Status
hpux_wchan=V鋘tar p

hpuxstat_0=Obefintlig
hpuxstat_S=Vilande
hpuxstat_W=V鋘tar
hpuxstat_R=K鰎
hpuxstat_I=Mellanlandar
hpuxstat_Z=Zombie
hpuxstat_T=Stannad
hpuxstat_G=V鋢er

macos_tty=TTY

sysv_group=Grupp
sysv_ruser=Verklig anv鋘dare
sysv_rgroup=Verklig grupp
sysv_pgid=Processens grupp-ID
sysv_tty=TTY

log_run=K鰎de kommando "$1"
log_kill=Skickade signal $1 till process $2
log_kills=Skickade signal $1 till $2 processer
log_kill_l=Skickade signal $1 till process $2
log_kills_l=Skickade signal $1 till processerna<br>$2

acl_manage=Hantera processer som anv鋘dare

kill_kill=Sl ihj鋖 process
kill_term=&nbsp;&nbsp;Avbryt&nbsp;&nbsp;&nbsp;
kill_hup=&nbsp;Starta om&nbsp;
kill_stop=&nbsp;&nbsp;Stanna&nbsp;&nbsp;&nbsp;
kill_cont=&nbsp;Forts鋞t&nbsp;&nbsp;
  070701000425bf000081a40000000000000002000000013ac03892000008cd000000200000000000000000000000000000001300000003reloc/proc/lang/tr    index_title=蔺lem Y鰊eticisi
index_display=G鰎黱t黮e
index_tree=蔺lem Numaras
index_user=Kullan齝
index_size=Bellek
index_cpu=蔺lemci
index_search=Bul
index_run=莂lt齬..
index_return=iem listesi

pid=蔺lem numaras
owner=Sahibi
command=Komut
cpu=蔺lemci
size=Boyut
parent=Ana iem
runtime=莂lma s黵esi
nice=謓celik seviyesi

search_user=Sahibi
search_match=Ee㧐n
search_cpu=Daha 鏾k 鏰lt齬齦齳or
search_fs=Kullan齦an dosya sistemi
search_files=Kullan齦an dosya
search_submit=Bul
search_none=Karla⺶齬齦an iemler bulunamad
search_kill=蔺aret g鰊der
search_return=arama formu

run_command=莂lt齬ma komutu
run_submit=莂lt齬
run_mode=莂lt齬ma modu
run_bg=Arka planda 鏰lt齬
run_fg=Tamamlanmadan 鰊ce bekle
run_input=Komutu girin
run_title=Komut 琮kt齭
run_output=$1'in 琮kt齭 ..
run_none=驱kt olu⺶urulmad

edit_title=蔺lem bilgisi
edit_gone=Bu iem daha k齭a s黵edir 鏰lm齳or
edit_sub=Alt iem
edit_kill=蔺aret g鰊der
edit_change=De餴⺶ir
edit_prilow=D黭 鰊celik
edit_prihigh=Y黭sek 鰊celik
edit_pridef=謓tan齧l
edit_none=Hi鏱iri

kill_err=$1'e $2'i iemi i鏸n sinyal g鰊derilmesinde hata olu⺶u
kill_title=Sinyal g鰊der
kill_sent=g鰊der

renice_err=謓celiklendirme iemi $1'de hata olu⺶u

linux_pri=謓celik
linux_tty=TTY
linux_status=Durum
linux_wchan=Bekliyor
linux_mem=Bellek
linux_group=Grup
linux_ruser=Ger鏴k kullan齝
linux_rgroup=Ger鏴k grup
linux_pgid=iem grup numaras

linuxstat_R=莂l齳or
linuxstat_S=Uyuyor
linuxstat_D=Derin uyuyor
linuxstat_T=Durduruldu
linuxstat_Z=Zombi

freebsd_ruser=Ger鏴k kullan齝
freebsd_rgroup=Ger鏴k grup
freebsd_tty=TTY
freebsd_pgid=蔺lem grubu
freebsd_lstart=Baang zaman
freebsd_lim=Bellek s齨齬

hpux_pri=謓celik
hpux_tty=TTY
hpux_status=Durum 
hpux_wchan=Bekliyor

hpuxstat_0=Mevcut de餴l
hpuxstat_S=Uyuyor
hpuxstat_W=Bekliyor
hpuxstat_R=莂l齳or
hpuxstat_I=Ortada
hpuxstat_Z=Zombi
hpuxstat_T=Durdu
hpuxstat_G=Geli㱮yor

macos_tty=TTY

sysv_group=Grup
sysv_ruser=Ger鏴k kullan齝
sysv_rgroup=Ger鏴k grup
sysv_pgid=蔺lem grup numaras
sysv_tty=TTY

log_run="$1" komutunu 鏰lt齬
log_kill=蔺lem $2'e $1 sinyali g鰊derildi
log_kills=$2 iemlerine $1 sinyali g鰊derildi
log_kill_l=蔺lem $2'e $1 sinyali g鰊derildi
log_kills_l=$2 iemlerine $1 sinyali g鰊derildi

   070701000425c0000081a40000000000000002000000013ac03892000007f3000000200000000000000000000000000000001600000003reloc/proc/lang/zh_CN index_title=进程管理
index_display=显示
index_tree=进程标识
index_user=用户
index_size=占用内存
index_cpu=CPU占用率
index_search=搜索
index_run=运行..
index_return=进程列表

pid=进程标识
owner=用户
command=命令
cpu=CPU占用率
size=占用内存
parent=父进程
runtime=运行时间
nice=Nice 级别

search_user=拥有者是
search_match=匹配
search_cpupc=正在使用的 CPU 超过了 $1%
search_fs=使用文件系统
search_files=使用文件
search_submit=搜索
search_none=没有找到匹配的进程
search_kill=发送信号
search_return=搜索从

run_command=命令运行
run_submit=运行
run_mode=运行模式
run_bg=后台运行
run_fg=一致等待完成
run_input=输入到命令
run_title=命令输入
run_output=从$1 .. 输入
run_none=没有产生输出

edit_title=进程信息
edit_gone=进程没有运行
edit_sub=子进程
edit_kill=发送信号
edit_change=变更
edit_prilow=低优先级
edit_prihigh=高优先级
edit_pridef=缺省
edit_none=无

kill_err=发送信号 $1 到进程 $2 失败
kill_title=发送文件
kill_sent=发送

renice_err=renice 进程 $1 失败

linux_pri=优先级
linux_tty=TTY
linux_status=状态
linux_wchan=等待
linux_mem=内存
linux_group=组
linux_ruser=真正用户
linux_rgroup=真正用户
linux_pgid=进程组ID

linuxstat_R=运行
linuxstat_S=水面
linuxstat_D=深睡
linuxstat_T=停止
linuxstat_Z=死进程

freebsd_ruser=真正用户
freebsd_rgroup=真正组
freebsd_tty=TTY
freebsd_pgid=进程组
freebsd_lstart=开始时间
freebsd_lim=内存限制

hpux_pri=优先级
hpux_tty=TTY
hpux_status=状态
hpux_wchan=等待

hpuxstat_0=不存在
hpuxstat_S=睡眠
hpuxstat_W=等待
hpuxstat_R=运行
hpuxstat_I=居中
hpuxstat_Z=死进程
hpuxstat_T=停止
hpuxstat_G=增长

macos_tty=TTY

sysv_group=组
sysv_ruser=真正用户
sysv_rgroup=真正组
sysv_pgid=进程组ID
sysv_tty=TTY

log_run=运行了命令 "$1"
log_kill=发送信号 $1 到处理过程 $2
log_kills=发送信号 $1 到 $2 处理
log_kill_l=发送信号 $1 到处理过程 $2
log_kills_l=发送信号 $1 到处理 <br>$2

acl_manage=以用户来管理处理过程

kill_kill=杀进程
kill_term=&nbsp;Terminate&nbsp;&nbsp;
kill_hup=&nbsp;&nbsp;Restart&nbsp;&nbsp;&nbsp;
kill_stop=&nbsp;&nbsp;&nbsp;&nbsp;Stop&nbsp;&nbsp;&nbsp;&nbsp;
kill_cont=&nbsp;&nbsp;Continue&nbsp;&nbsp;

 070701000425c1000081a40000000000000002000000013ac03892000006a1000000200000000000000000000000000000001b00000003reloc/proc/lang/zh_TW.Big5    index_title=磅︽い祘
index_display=陪ボよΑ
index_tree=ㄌ沮 PID (祘攫)
index_user=ㄌ沮ㄏノ
index_size=ㄌ沮癘拘砰ㄏノ秖
index_cpu=ㄌ沮 CPU ㄏノ秖
index_search=穓碝
index_run=磅︽...
index_return=祘

pid=祘絪腹
owner=局Τ
command=㏑
cpu=CPU ㄏノ秖
size=癘拘砰ノ秖
parent=ダ祘
runtime=磅︽丁
nice=纔单

search_user=局Τ
search_match=才兵ン
search_cpu=禬筁
search_fs=ㄏノ郎╰参
search_files=ㄏノ郎
search_submit=穓碝
search_none=тぃ才兵ン祘
search_kill=癳北獺腹
search_return=穓碝虫

run_command=璶磅︽㏑
run_submit=磅︽
run_mode=磅︽家Α
run_bg=璉春い磅︽
run_fg=单磅︽Ч拨
run_input=倒㏑块
run_title=㏑块
run_output=眖 $1 块...
run_none=⊿Τ玻ネ块

edit_title=祘戈癟
edit_gone=硂祘竒ぃ磅︽
edit_sub=祘
edit_kill=癳北癟腹
edit_change=跑

kill_err=礚猭癳北癟腹 $1 倒祘 $2
kill_title=癳北癟腹
kill_sent=癳

renice_err=礚猭跑祘 $1 纔

linux_pri=纔
linux_tty=沧狠诀
linux_status=篈
linux_wchan=单戈方
linux_mem=癘拘砰
linux_group=竤舱
linux_ruser=痷龟ㄏノ
linux_rgroup=痷龟竤舱
linux_pgid=祘竤舱絪腹

linuxstat_R=磅︽い
linuxstat_S=何痸い
linuxstat_D=剪何い
linuxstat_T=氨ゎ
linuxstat_Z=圾!!

freebsd_ruser=痷龟ㄏノ
freebsd_rgroup=痷龟竤舱
freebsd_tty=沧狠诀
freebsd_pgid=祘竤舱
freebsd_lstart=秨﹍丁
freebsd_lim=癘拘砰

hpux_pri=纔
hpux_tty=沧狠诀
hpux_status=篈
hpux_wchan=单戈方

hpuxstat_0=ぃ
hpuxstat_S=何痸い
hpuxstat_W=单い
hpuxstat_R=磅︽い
hpuxstat_I=いざ
hpuxstat_Z=圾!!
hpuxstat_T=氨ゎ
hpuxstat_G=Θい

macos_tty=沧狠诀

sysv_group=竤舱
sysv_ruser=痷龟ㄏノ
sysv_rgroup=痷龟竤舱
sysv_pgid=祘竤舱絪腹
sysv_tty=沧狠诀

   0707010003cb6c000081a40000000000000002000000013ac03891000010ed000000200000000000000000000000000000001800000003reloc/proc/linux-lib.pl   # linux-lib.pl
# Functions for parsing linux ps output

sub list_processes
{
local($pcmd, $line, $i, %pidmap, @plist, $dummy, @w, $_);
local $out = `ps V`;
if ($out =~ /version\s+2\./ || $out =~ /version\s+\./) {
	# New version of ps, as found in redhat 6
	open(PS, "ps -eo user,ruser,group,rgroup,pid,ppid,pgid,pcpu,vsz,nice,etime,time,tty,args  |");
	$dummy = <PS>;
	for($i=0; $line=<PS>; $i++) {
		chop($line);
		$line =~ s/^\s+//g;
		@w = split(/\s+/, $line, -1);
		if ($line =~ /ps -o user,ruser/) {
			# Skip process ID 0 or ps command
			$i--; next;
			}
		if (@_ && &indexof($w[4], @_) < 0) {
			# Not interested in this PID
			$i--; next;
			}
		$plist[$i]->{"pid"} = $w[4];
		$plist[$i]->{"ppid"} = $w[5];
		$plist[$i]->{"user"} = $w[0];
		$plist[$i]->{"cpu"} = "$w[7] %";
		$plist[$i]->{"size"} = "$w[8] kB";
		$plist[$i]->{"time"} = $w[11];
		$plist[$i]->{"nice"} = $w[9];
		$plist[$i]->{"args"} = @w<14 ? "defunct" : join(' ', @w[13..$#w]);
		$plist[$i]->{"_group"} = $w[2];
		$plist[$i]->{"_ruser"} = $w[1];
		$plist[$i]->{"_rgroup"} = $w[3];
		$plist[$i]->{"_pgid"} = $w[6];
		$plist[$i]->{"_tty"} = $w[12] =~ /\?/ ? $text{'edit_none'} : "/dev/$w[12]";
		}
	close(PS);
	}
else {
	# Old version of ps
	$pcmd = join(' ' , @_);
	open(PS, "ps aulxhwwww $pcmd |");
	for($i=0; $line=<PS>; $i++) {
		chop($line);
		if ($line =~ /ps aulxhwwww/) { $i--; next; }
		if ($line !~ /^\s*(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+([\-\d]+)\s+([\-\d]+)\s+(\d+)\s+(\d+)\s+(\S*)\s+(\S+)[\s<>N]+(\S+)\s+([0-9:]+)\s+(.*)$/) {
			$i--;
			next;
			}
		$pidmap{$3} = $i;
		$plist[$i]->{"pid"} = $3;
		$plist[$i]->{"ppid"} = $4;
		$plist[$i]->{"user"} = getpwuid($2);
		$plist[$i]->{"size"} = "$7 kB";
		$plist[$i]->{"cpu"} = "Unknown";
		$plist[$i]->{"time"} = $12;
		$plist[$i]->{"nice"} = $6;
		$plist[$i]->{"args"} = $13;
		$plist[$i]->{"_pri"} = $5;
		$plist[$i]->{"_tty"} = $11 eq "?" ? $text{'edit_none'} : "/dev/tty$11";
		$plist[$i]->{"_status"} = $stat_map{substr($10, 0, 1)};
		($plist[$i]->{"_wchan"} = $9) =~ s/\s+$//g;
		if (!$plist[$i]->{"_wchan"}) { delete($plist[$i]->{"_wchan"}); }
		if ($plist[$i]->{"args"} =~ /^\((.*)\)/)
			{ $plist[$i]->{"args"} = $1; }
		}
	close(PS);
	open(PS, "ps auxh $pcmd |");
	while($line=<PS>) {
		if ($line =~ /^\s*(\S+)\s+(\d+)\s+(\S+)\s+(\S+)\s+/ &&
		    defined($pidmap{$2})) {
			$plist[$pidmap{$2}]->{"cpu"} = $3;
			$plist[$pidmap{$2}]->{"_mem"} = "$4 %";
			}
		}
	close(PS);
	}
return @plist;
}

# renice_proc(pid, nice)
sub renice_proc
{
$out = `renice $_[1] -p $_[0] 2>&1`;
if ($?) { return $out; }
return undef;
}

# find_mount_processes(mountpoint)
# Find all processes under some mount point
sub find_mount_processes
{
local($out);
$out = `fuser -m $_[0]`;
$out =~ s/[^0-9 ]//g;
$out =~ s/^\s+//g; $out =~ s/\s+$//g;
return split(/\s+/, $out);
}

# find_file_processes([file]+)
# Find all processes with some file open
sub find_file_processes
{
local($out, $files);
$files = join(' ', @_);
$out = `fuser $files`;
$out =~ s/[^0-9 ]//g;
$out =~ s/^\s+//g; $out =~ s/\s+$//g;
return split(/\s+/, $out);
}

# get_new_pty()
# Returns the filehandles and names for a pty and tty
sub get_new_pty
{
opendir(DEV, "/dev");
local @ptys = map { "/dev/$_" } (grep { /^pty/ } readdir(DEV));
closedir(DEV);
local ($pty, $tty);
foreach $pty (@ptys) {
	open(PTY, "+>$pty") || next;
	local $tty = $pty; $tty =~ s/pty/tty/;
	open(TTY, "+>$tty") || next;
	local $old = select(PTY); $| = 1;
	select(TTY); $| = 1; select($old);
	return (*PTY, *TTY, $pty, $tty);
	}
return ();
}

# get_memory_info()
# Returns a list containing the real mem, free real mem, swap and free swap
sub get_memory_info
{
local %m;
open(MEMINFO, "/proc/meminfo") || return ();
while(<MEMINFO>) {
	if (/^(\S+):\s+(\d+)/) {
		$m{lc($1)} = $2;
		}
	}
close(MEMINFO);
return ( $m{'memtotal'}, $m{'memfree'}+$m{'buffers'}+$m{'cached'},
	 $m{'swaptotal'}, $m{'swapfree'} );
}

# get_cpu_info()
# Returns a list containing the 5, 10 and 15 minute load averages
sub get_cpu_info
{
open(LOAD, "/proc/loadavg") || return ();
local @load = split(/\s+/, <LOAD>);
close(LOAD);
return ( $load[0], $load[1], $load[2] );
}

foreach $ia (keys %text) {
	if ($ia =~ /^linux(_\S+)/) {
		$info_arg_map{$1} = $text{$ia};
		}
	elsif ($ia =~ /^linuxstat_(\S+)/) {
		$stat_map{$1} = $text{$ia};
		}
	}

@nice_range = (-20 .. 20);

$has_fuser_command = 1;

1;

   0707010003cb6d000081a40000000000000002000000013ac03892000003d1000000200000000000000000000000000000001900000003reloc/proc/log_parser.pl  # log_parser.pl
# Functions for parsing this module's logs

require './proc-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p, $long) = @_;
if ($action eq 'run') {
	return &text('log_run', "<tt>$p->{'cmd'}</tt>");
	}
elsif ($action eq 'kill') {
	local ($desc, $i);
	@pids = $p->{'pid'} ? ( $p->{'pid'} ) : split(/\s+/, $p->{'pidlist'});
	if ($long) {
		for($i=0; $i<@pids; $i++) {
			$desc .= "<i>".$p->{"args$i"}.
				 "</i>&nbsp;&nbsp;(PID $pids[$i])<br>";
			}
		return &text(@pids == 1 ? 'log_kill_l' : 'log_kills_l',
			     "<tt>$p->{'signal'}</tt>", $desc);
		}
	else {
		if (@pids == 1) {
			return &text('log_kill', "<tt>$p->{'signal'}</tt>",
				     $pids[0]);
			}
		else {
			return &text('log_kills', "<tt>$p->{'signal'}</tt>",
				     scalar(@pids));
			}
		}
	}
else {
	return undef;
	}
}

   0707010003cb6e000081a40000000000000002000000013ac0389200000009000000200000000000000000000000000000001500000003reloc/proc/low.skill  simple=1
   0707010003cb6f000081a40000000000000002000000013ac038920000066d000000200000000000000000000000000000001800000003reloc/proc/macos-lib.pl   # macos-lib.pl
# Functions for parsing macos server ps output

sub list_processes
{
local($pcmd, $line, $i, %pidmap, @plist);
open(PS, "ps axlwwww $_[0] |");
for($i=0; $line=<PS>; $i++) {
	chop($line);
	if ($line =~ /ps axlwwww/ || $line =~ /^\s*UID\s+PID/) { $i--; next; }
	if ($line =~ /^\s*(\d+)\s+(\d+)\s+(\S+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(\d+)\s+(...)\s+(\S+)\s+(\d+:\d+)\s+(.*)/) {
		if ($3 <= 0) { $i--; next; }
		$plist[$i]->{"pid"} = $3;
		$plist[$i]->{"ppid"} = $4;
		$plist[$i]->{"size"} = $8;
		$plist[$i]->{"time"} = $13;
		$plist[$i]->{"nice"} = $6;
		$plist[$i]->{"_tty"} = $12 eq '?' ? $text{'edit_none'} : "/dev/tty$12";
		$plist[$i]->{"args"} = $14;
		$pidmap{$3} = $plist[$i];
		}
	elsif ($line =~ /^\s*(\d+)\s+(\d+)\s+(\S+)\s+(\d+)\s+(\d+)\s+(\S+)\s+(\d+)\s+(\d+)\s+(\S+)\s+(...)\s+(\S+)\s+(\d+:\S+)\s+(.*)/) {
		if ($2 <= 0) { $i--; next; }
		$plist[$i]->{"pid"} = $2;
		$plist[$i]->{"ppid"} = $3;
		$plist[$i]->{"size"} = $7;
		$plist[$i]->{"time"} = $12;
		$plist[$i]->{"nice"} = $6;
		$plist[$i]->{"_tty"} = $11 eq '??' ? $text{'edit_none'} : "/dev/tty$11";
		$plist[$i]->{"args"} = $13;
		$pidmap{$2} = $plist[$i];
		}
	}
close(PS);
open(PS, "ps auxwwww $_[0] |");
while($line = <PS>) {
	chop($line);
	$line =~ /^(\S+)\s+(\d+)\s+(\S+)\s+(\S+)/ || next;
	if ($pidmap{$2}) {
		$pidmap{$2}->{"user"} = $1;
		$pidmap{$2}->{"cpu"} = "$3 %";
		}
	}
close(PS);
return @plist;
}

# renice_proc(pid, nice)
sub renice_proc
{
$out = `renice $_[1] -p $_[0] 2>&1`;
if ($?) { return $out; }
return undef;
}

%info_arg_map=(	"_tty", $text{'macos_tty'} );

@nice_range = (-20 .. 20);

$has_fuser_command = 0;

1;

   0707010003cb70000081a40000000000000002000000013ac0389200000015000000200000000000000000000000000000001700000003reloc/proc/medium.risk    noconfig=1
hide=root
   0707010003cb71000081a40000000000000002000000013ac0389200000009000000200000000000000000000000000000001800000003reloc/proc/medium.skill   simple=1
   0707010003cb72000081a40000000000000002000000013ac038910000024d000000200000000000000000000000000000001700000003reloc/proc/module.info    desc_zh_CN=进程管理器
name=Process Manager
desc_pt=Processos em Curso
depends=mount
desc_tr=莂lan S黵e鏻er
desc_fr=Gestionnaire de processus
desc_es=Procesos en curso
desc_sv=Processhanterare
desc_de=Laufende Prozesse
desc_hu=Fut Processzek
desc_ru_SU=砼闻闹乓 鹨厦庞酉
desc_pl=Dzia砤j眂e procesy
category=system
os_support=solaris redhat-linux slackware-linux debian-linux suse-linux hpux freebsd osf1 irix unixware openserver macos open-linux turbo-linux corel-linux cobalt-linux aix
desc_zh_TW.Big5=磅︽い祘
desc=Running Processes
risk=medium high
desc_ru_RU=体礤滏屦 橡铞羼耦
   0707010003cb73000081a40000000000000002000000013ac0389200000780000000200000000000000000000000000000001600000003reloc/proc/osf-lib.pl # sysv-lib.pl
# Functions for parsing sysv-style ps output

# list_processes([pid]*)
sub list_processes
{
local($line, $dummy, @w, $i, $_, $pcmd, @plist);
foreach (@_) { $pcmd .= " -p $_"; }
if (!$pcmd) { $pcmd = " -e"; }
open(PS, "ps -o user,ruser,group,rgroup,pid,ppid,pgid,pcpu,vsz,nice,etime,time,tty,args $pcmd |");
$dummy = <PS>;
for($i=0; $line=<PS>; $i++) {
	chop($line);
	$line =~ s/^\s+//g;
	@w = split(/\s+/, $line);
	if ($line =~ /ps -o user,ruser/) {
		# Skip ps command
		$i--; next;
		}
	$plist[$i]->{"pid"} = $w[4];
	$plist[$i]->{"ppid"} = $w[5];
	$plist[$i]->{"user"} = $w[0];
	$plist[$i]->{"cpu"} = "$w[7] %";
	if ($w[8] =~ /^([0-9\.]+)K/)
		{ $plist[$i]->{"size"} = "$1 kB"; }
	elsif ($w[8] =~ /^([0-9\.]+)M/)
		{ $plist[$i]->{"size"} = ($1 * 1000)." kB"; }
	$plist[$i]->{"time"} = $w[11];
	$plist[$i]->{"nice"} = $w[9];
	$plist[$i]->{"args"} = $w[13] eq "<defunct>" ? "defunct"
						  : join(' ', @w[13..$#w]);
	$plist[$i]->{"_group"} = $w[2];
	$plist[$i]->{"_ruser"} = $w[1];
	$plist[$i]->{"_rgroup"} = $w[3];
	$plist[$i]->{"_pgid"} = $w[6];
	$plist[$i]->{"_tty"} = $w[12] =~ /\?/ ? $text{'edit_none'} : "/dev/$w[12]";
	}
close(PS);
return @plist;
}

# find_mount_processes(mountpoint)
# Find all processes under some mount point
sub find_mount_processes
{
local($out);
$out = `fuser -c $_[0] 2>/dev/null`;
$out =~ s/^\s+//g; $out =~ s/\s+$//g;
return split(/\s+/, $out);
}

# find_file_processes([file]+)
# Find all processes with some file open
sub find_file_processes
{
local($out, $files);
$files = join(' ', @_);
$out = `fuser $files 2>/dev/null`;
$out =~ s/^\s+//g; $out =~ s/\s+$//g;
return split(/\s+/, $out);
}

# renice_proc(pid, nice)
sub renice_proc
{
$out = `renice $_[1] -p $_[0] 2>&1`;
if ($?) { return $out; }
return undef;
}

foreach $ia (keys %text) {
	if ($ia =~ /^sysv(_\S+)/) {
		$info_arg_map{$1} = $text{$ia};
		}
	}

@nice_range = (-20 .. 19);

$has_fuser_command = 1;

1;

0707010003cb74000081a40000000000000002000000013ac038910000111a000000200000000000000000000000000000001700000003reloc/proc/proc-lib.pl    # proc-lib.pl
# Functions for managing processes

do '../web-lib.pl';
&init_config();
do "./$config{ps_style}-lib.pl";
use POSIX;
%access = &get_module_acl();
map { $hide{$_}++ } split(/\s+/, $access{'hide'});

sub process_info
{
local @plist = &list_processes($_[0]);
return @plist ? %{$plist[0]} : ();
}

# index_links(current)
sub index_links
{
local(%linkname, $l);
print "<b>$text{'index_display'} : </b>&nbsp;&nbsp;\n";
foreach $l ("tree", "user", "size", "cpu", "search", "run") {
	if ($l ne $_[0]) { print "<a href=index_$l.cgi>"; }
	else { print "<b>"; }
	print $text{"index_$l"};
	if ($l ne $_[0]) { print "</a>"; }
	else { print "</b>"; }
	print "&nbsp;\n";
	}
print "<p>\n";
open(INDEX, "> $module_config_directory/index");
$0 =~ /([^\/]+)$/;
print INDEX "$1?$in\n";
close(INDEX);
}

sub cut_string
{
if (length($_[0]) > $_[1]) {
	return substr($_[0], 0, $_[1])." ...";
	}
return $_[0];
}

# switch_acl_uid()
sub switch_acl_uid
{
if ($access{'uid'}) {
	local @u = getpwuid($access{'uid'});
	$( = $u[3]; $) = "$u[3] $u[3]";
	$< = $> = $u[2];
	}
}

# safe_process_exec(command, uid, gid, handle, input, fixtags, bsmode)
# Executes the given command as the given user/group and writes all output
# to the given file handle. Finishes when there is no more output or the
# process stops running. Returns the number of bytes read.
sub safe_process_exec
{
# setup pipes and fork the process
local $chld = $SIG{'CHLD'};
$SIG{'CHLD'} = \&safe_exec_reaper;
pipe(OUTr, OUTw);
pipe(INr, INw);
local $pid = fork();
if (!$pid) {
	#setsid();
	untie(*STDIN);
	untie(*STDOUT);
	untie(*STDERR);
	open(STDIN, "<&INr");
	open(STDOUT, ">&OUTw");
	open(STDERR, ">&OUTw");
	$| = 1;
	close(OUTr); close(INw);

	if ($_[1]) {
		if (defined($_[2])) {
			# switch to given UID and GID
			$( = $_[2]; $) = "$_[2] $_[2]";
			$< = $> = $_[1];
			}
		else {
			# switch to UID and all GIDs
			local @u = getpwuid($_[1]);
			$( = $u[3];
			$) = "$u[3] ".join(" ", $u[3], &other_groups($u[0]));
			$< = $> = $u[2];
			}
		}

	# run the command
	delete($ENV{'FOREIGN_MODULE_NAME'});
	delete($ENV{'SCRIPT_NAME'});
	exec("/bin/sh", "-c", $_[0]);
	print "Exec failed : $!\n";
	exit 1;
	}
close(OUTw); close(INr);

# Feed input (if any)
print INw $_[4];
close(INw);

# Read and show output
local $fn = fileno(OUTr);
local $got = 0;
local $out = $_[3];
local $line;
while(1) {
	local ($rmask, $buf);
	vec($rmask, $fn, 1) = 1;
	local $sel = select($rmask, undef, undef, 1);
	if ($sel > 0 && vec($rmask, $fn, 1)) {
		# got something to read.. print it
		sysread(OUTr, $buf, 1024) || last;
		$got += length($buf);
		if ($_[5]) {
			$buf =~ s/&/&amp;/g;
			$buf =~ s/</&lt;/g;
			$buf =~ s/>/&gt;/g;
			}
		if ($_[6]) {
			# Convert backspaces and returns
			$line .= $buf;
			while($line =~ s/^([^\n]*\n)//) {
				local $one = $1;
				while($one =~ s/.\010//) { }
				print $out $one;
				}
			}
		else {
			print $out $buf;
			}
		}
	elsif ($sel == 0) {
		# nothing to read. maybe the process is done, and a subprocess
		# is hanging things up
		last if (!kill(0, $pid));
		}
	}
close(OUTr);
print $out $line;
return $got;
$SIG{'CHLD'} = $chld;
}

# safe_process_exec_logged(..)
# Like safe_process_exec, but also logs the command
sub safe_process_exec_logged
{
&additional_log('exec', undef, $_[0]);
return &safe_process_exec(@_);
}

sub safe_exec_reaper
{
local $xp;
do {    local $oldexit = $?;
	$xp = waitpid(-1, WNOHANG);
	$? = $oldexit if ($? < 0);
	} while($xp > 0);
}

# pty_process_exec(command)
# Starts the given command in a new pty and returns the pty filehandle and PID
sub pty_process_exec
{
local ($ptyfh, $ttyfh, $pty, $tty) = &get_new_pty();
local $pid = fork();
if (!$pid) {
	close(STDIN); close(STDOUT); close(STDERR);
	untie(*STDIN); untie(*STDOUT); untie(*STDERR);
	setsid();
	#setpgrp(0, $$);
	open(STDIN, "<$tty");
	open(STDOUT, ">&$ttyfh");
	open(STDERR, ">&STDOUT");
	close($ptyfh);
	exec(@_);
	print "Exec failed : $!\n";
	exit 1;
	}
close($ttyfh);
return ($ptyfh, $pid);
}

# pty_process_exec_logged(..)
# Like pty_process_exec, but logs the command as well
sub pty_process_exec_logged
{
&additional_log('exec', undef, $_[0]);
return &pty_process_exec(@_);
}

# find_process(name)
# Returns an array of all processes matching some name
sub find_process
{
local $name = $_[0];
local @rv = grep { $_->{'args'} =~ /$name/ } &list_processes();
return wantarray ? @rv : $rv[0];
}

1;

  0707010003cb75000081e40000000000000002000000013ac0389100000121000000200000000000000000000000000000001b00000003reloc/proc/renice_proc.cgi    #!/usr/local/bin/perl
# renice_proc.cgi
# Change the nice level of a process

require './proc-lib.pl';
&ReadParse();
&switch_acl_uid();
&error_setup(&text('renice_err', $in{pid}));
if ($error = &renice_proc($in{pid}, $in{nice})) {
	&error($error);
	}
&redirect("edit_proc.cgi?$in{pid}");

   0707010003cb76000081e40000000000000002000000013ac038910000032a000000200000000000000000000000000000001300000003reloc/proc/run.cgi    #!/usr/local/bin/perl
# run.cgi
# Run a command, and maybe display it's output

require './proc-lib.pl';
&ReadParse();
&switch_acl_uid();

$in{'input'} =~ s/\r//g;
if ($in{'mode'}) {
	# fork and run..
	if (!($pid = fork())) {
		close(STDIN); close(STDOUT); close(STDERR);
		open(PROC, "| ($in{'cmd'})");
		print PROC $in{'input'};
		close(PROC);
		exit;
		}
	&redirect("index_tree.cgi");
	}
else {
	# run and display output..
	$| = 1;
	&header($text{'run_title'}, "");
	print "<hr><p>\n";
	print &text('run_output', "<tt>$in{'cmd'}</tt>"),"<p>\n";
	print "<pre>";
	$got = &safe_process_exec_logged($in{'cmd'}, 0, 0,
					 STDOUT, $in{'input'}, 1);
	if (!$got) { print "<i>$text{'run_none'}</i>\n"; }
	print "</pre>\n";
	print "<hr>\n";
	&footer("", $text{'index'});
	}
&webmin_log("run", undef, undef, \%in);

  0707010003cb77000081a40000000000000002000000013ac03891000008e4000000200000000000000000000000000000001700000003reloc/proc/sysv-lib.pl    # sysv-lib.pl
# Functions for parsing sysv-style ps output

# list_processes([pid]*)
sub list_processes
{
local($line, $dummy, @w, $i, $_, $pcmd, @plist);
foreach (@_) { $pcmd .= " -p $_"; }
if (!$pcmd) { $pcmd = " -e"; }
open(PS, "ps -o user,ruser,group,rgroup,pid,ppid,pgid,pcpu,vsz,nice,etime,time,tty,args $pcmd |");
$dummy = <PS>;
for($i=0; $line=<PS>; $i++) {
	chop($line);
	$line =~ s/^\s+//g;
	@w = split(/\s+/, $line);
	if ($line =~ /ps -o user,ruser/) {
		# Skip ps command
		$i--; next;
		}
	$plist[$i]->{"pid"} = $w[4];
	$plist[$i]->{"ppid"} = $w[5];
	$plist[$i]->{"user"} = $w[0];
	$plist[$i]->{"cpu"} = "$w[7] %";
	$plist[$i]->{"size"} = "$w[8] kB";
	$plist[$i]->{"time"} = $w[11];
	$plist[$i]->{"nice"} = $w[9] =~ /\d+/ ? $w[9]-20 : $w[9];
	$plist[$i]->{"args"} = @w<14 ? "defunct" : join(' ', @w[13..$#w]);
	$plist[$i]->{"_group"} = $w[2];
	$plist[$i]->{"_ruser"} = $w[1];
	$plist[$i]->{"_rgroup"} = $w[3];
	$plist[$i]->{"_pgid"} = $w[6];
	$plist[$i]->{"_tty"} = $w[12] =~ /\?/ ? $text{'edit_none'}
					      : "/dev/$w[12]";
	}
close(PS);
return @plist;
}

# find_mount_processes(mountpoint)
# Find all processes under some mount point
sub find_mount_processes
{
local($out);
$out = `fuser -c $_[0] 2>/dev/null`;
$out =~ s/^\s+//g; $out =~ s/\s+$//g;
return split(/\s+/, $out);
}

# find_file_processes([file]+)
# Find all processes with some file open
sub find_file_processes
{
local($out, $files);
$files = join(' ', @_);
$out = `fuser $files 2>/dev/null`;
$out =~ s/^\s+//g; $out =~ s/\s+$//g;
return split(/\s+/, $out);
}

# renice_proc(pid, nice)
sub renice_proc
{
$out = `renice $_[1] -p $_[0] 2>&1`;
if ($?) { return $out; }
return undef;
}

# get_new_pty()
# Returns the filehandles and names for a pty and tty
sub get_new_pty
{
opendir(DEV, "/dev");
local @ptys = map { "/dev/$_" } (grep { /^pty/ } readdir(DEV));
closedir(DEV);
local ($pty, $tty);
foreach $pty (@ptys) {
	open(PTY, "+>$pty") || next;
	local $tty = $pty; $tty =~ s/pty/tty/;
	open(TTY, "+>$tty") || next;
	local $old = select(PTY); $| = 1;
	select(TTY); $| = 1; select($old);
	return (*PTY, *TTY, $pty, $tty);
	}
return ();
}

foreach $ia (keys %text) {
	if ($ia =~ /^sysv(_\S+)/) {
		$info_arg_map{$1} = $text{$ia};
		}
	}

@nice_range = (-20 .. 19);

$has_fuser_command = 1;

1;

0707010000bb61000081a40000000000000001000000013ac03b2000040c9a000000200000000000000000000000000000001000000003reloc/prototype   i pkginfo=/opt/webmin/pkginfo
f none config.cgi 0700 root bin
f none config-redhat-linux 0600 root bin
f none config-slackware-linux 0600 root bin
f none config-solaris 0600 root bin
d none images 0700 root bin
f none images/back.gif 0600 root bin
f none images/right.gif 0600 root bin
f none images/left.gif 0600 root bin
f none images/lc1.gif 0600 root bin
f none images/webmin.gif 0600 root bin
f none images/lc2.gif 0600 root bin
f none images/rc1.gif 0600 root bin
f none images/rc2.gif 0600 root bin
f none images/webmin.xpm 0600 root bin
f none images/unknown.gif 0600 root bin
f none images/text.gif 0600 root bin
f none images/image.gif 0600 root bin
f none images/binary.gif 0600 root bin
f none images/dir.gif 0600 root bin
f none images/webmin-mini.xpm 0600 root bin
d none images/letters 0700 root bin
f none images/letters/66.gif 0600 root bin
f none images/letters/67.gif 0600 root bin
f none images/letters/68.gif 0600 root bin
f none images/letters/69.gif 0600 root bin
f none images/letters/70.gif 0600 root bin
f none images/letters/71.gif 0600 root bin
f none images/letters/72.gif 0600 root bin
f none images/letters/73.gif 0600 root bin
f none images/letters/74.gif 0600 root bin
f none images/letters/75.gif 0600 root bin
f none images/letters/76.gif 0600 root bin
f none images/letters/77.gif 0600 root bin
f none images/letters/78.gif 0600 root bin
f none images/letters/79.gif 0600 root bin
f none images/letters/80.gif 0600 root bin
f none images/letters/81.gif 0600 root bin
f none images/letters/82.gif 0600 root bin
f none images/letters/83.gif 0600 root bin
f none images/letters/84.gif 0600 root bin
f none images/letters/85.gif 0600 root bin
f none images/letters/86.gif 0600 root bin
f none images/letters/87.gif 0600 root bin
f none images/letters/88.gif 0600 root bin
f none images/letters/89.gif 0600 root bin
f none images/letters/90.gif 0600 root bin
f none images/letters/97.gif 0600 root bin
f none images/letters/98.gif 0600 root bin
f none images/letters/99.gif 0600 root bin
f none images/letters/100.gif 0600 root bin
f none images/letters/101.gif 0600 root bin
f none images/letters/102.gif 0600 root bin
f none images/letters/103.gif 0600 root bin
f none images/letters/104.gif 0600 root bin
f none images/letters/105.gif 0600 root bin
f none images/letters/106.gif 0600 root bin
f none images/letters/107.gif 0600 root bin
f none images/letters/108.gif 0600 root bin
f none images/letters/109.gif 0600 root bin
f none images/letters/110.gif 0600 root bin
f none images/letters/111.gif 0600 root bin
f none images/letters/112.gif 0600 root bin
f none images/letters/113.gif 0600 root bin
f none images/letters/114.gif 0600 root bin
f none images/letters/115.gif 0600 root bin
f none images/letters/116.gif 0600 root bin
f none images/letters/117.gif 0600 root bin
f none images/letters/118.gif 0600 root bin
f none images/letters/119.gif 0600 root bin
f none images/letters/120.gif 0600 root bin
f none images/letters/121.gif 0600 root bin
f none images/letters/122.gif 0600 root bin
f none images/letters/192.gif 0600 root bin
f none images/letters/49.gif 0600 root bin
f none images/letters/50.gif 0600 root bin
f none images/letters/51.gif 0600 root bin
f none images/letters/52.gif 0600 root bin
f none images/letters/53.gif 0600 root bin
f none images/letters/54.gif 0600 root bin
f none images/letters/55.gif 0600 root bin
f none images/letters/56.gif 0600 root bin
f none images/letters/57.gif 0600 root bin
f none images/letters/65.gif 0600 root bin
f none images/letters/33.gif 0600 root bin
f none images/letters/48.gif 0600 root bin
f none images/letters/193.gif 0600 root bin
f none images/letters/194.gif 0600 root bin
f none images/letters/195.gif 0600 root bin
f none images/letters/196.gif 0600 root bin
f none images/letters/197.gif 0600 root bin
f none images/letters/198.gif 0600 root bin
f none images/letters/199.gif 0600 root bin
f none images/letters/200.gif 0600 root bin
f none images/letters/201.gif 0600 root bin
f none images/letters/202.gif 0600 root bin
f none images/letters/203.gif 0600 root bin
f none images/letters/204.gif 0600 root bin
f none images/letters/205.gif 0600 root bin
f none images/letters/206.gif 0600 root bin
f none images/letters/207.gif 0600 root bin
f none images/letters/208.gif 0600 root bin
f none images/letters/209.gif 0600 root bin
f none images/letters/210.gif 0600 root bin
f none images/letters/211.gif 0600 root bin
f none images/letters/212.gif 0600 root bin
f none images/letters/213.gif 0600 root bin
f none images/letters/214.gif 0600 root bin
f none images/letters/215.gif 0600 root bin
f none images/letters/216.gif 0600 root bin
f none images/letters/217.gif 0600 root bin
f none images/letters/218.gif 0600 root bin
f none images/letters/219.gif 0600 root bin
f none images/letters/220.gif 0600 root bin
f none images/letters/221.gif 0600 root bin
f none images/letters/222.gif 0600 root bin
f none images/letters/223.gif 0600 root bin
f none images/letters/224.gif 0600 root bin
f none images/letters/225.gif 0600 root bin
f none images/letters/226.gif 0600 root bin
f none images/letters/227.gif 0600 root bin
f none images/letters/228.gif 0600 root bin
f none images/letters/229.gif 0600 root bin
f none images/letters/230.gif 0600 root bin
f none images/letters/231.gif 0600 root bin
f none images/letters/232.gif 0600 root bin
f none images/letters/233.gif 0600 root bin
f none images/letters/234.gif 0600 root bin
f none images/letters/235.gif 0600 root bin
f none images/letters/236.gif 0600 root bin
f none images/letters/237.gif 0600 root bin
f none images/letters/238.gif 0600 root bin
f none images/letters/239.gif 0600 root bin
f none images/letters/240.gif 0600 root bin
f none images/letters/241.gif 0600 root bin
f none images/letters/242.gif 0600 root bin
f none images/letters/243.gif 0600 root bin
f none images/letters/244.gif 0600 root bin
f none images/letters/245.gif 0600 root bin
f none images/letters/246.gif 0600 root bin
f none images/letters/247.gif 0600 root bin
f none images/letters/248.gif 0600 root bin
f none images/letters/249.gif 0600 root bin
f none images/letters/250.gif 0600 root bin
f none images/letters/251.gif 0600 root bin
f none images/letters/252.gif 0600 root bin
f none images/letters/253.gif 0600 root bin
f none images/letters/254.gif 0600 root bin
f none images/letters/255.gif 0600 root bin
f none images/letters/32.gif 0600 root bin
f none images/letters/45.gif 0600 root bin
f none images/letters/34.gif 0600 root bin
f none images/letters/35.gif 0600 root bin
f none images/letters/36.gif 0600 root bin
f none images/letters/37.gif 0600 root bin
f none images/letters/38.gif 0600 root bin
f none images/letters/39.gif 0600 root bin
f none images/letters/40.gif 0600 root bin
f none images/letters/41.gif 0600 root bin
f none images/letters/42.gif 0600 root bin
f none images/letters/43.gif 0600 root bin
f none images/letters/44.gif 0600 root bin
f none images/letters/46.gif 0600 root bin
f none images/letters/47.gif 0600 root bin
f none images/letters/58.gif 0600 root bin
f none images/letters/59.gif 0600 root bin
f none images/letters/60.gif 0600 root bin
f none images/letters/61.gif 0600 root bin
f none images/letters/62.gif 0600 root bin
f none images/letters/63.gif 0600 root bin
f none images/letters/64.gif 0600 root bin
f none images/letters/91.gif 0600 root bin
f none images/letters/93.gif 0600 root bin
f none images/letters/94.gif 0600 root bin
f none images/letters/95.gif 0600 root bin
f none images/letters/96.gif 0600 root bin
f none images/letters/123.gif 0600 root bin
f none images/letters/124.gif 0600 root bin
f none images/letters/125.gif 0600 root bin
f none images/letters/126.gif 0600 root bin
f none images/letters/177.iso-8859-2.gif 0600 root bin
f none images/letters/179.iso-8859-2.gif 0600 root bin
f none images/letters/182.iso-8859-2.gif 0600 root bin
f none images/letters/188.iso-8859-2.gif 0600 root bin
f none images/letters/191.iso-8859-2.gif 0600 root bin
f none images/letters/211.iso-8859-2.gif 0600 root bin
f none images/letters/230.iso-8859-2.gif 0600 root bin
f none images/letters/234.iso-8859-2.gif 0600 root bin
f none images/letters/241.iso-8859-2.gif 0600 root bin
f none images/letters/243.iso-8859-2.gif 0600 root bin
f none images/letters/214.iso-8859-9.gif 0600 root bin
f none images/letters/253.iso-8859-9.gif 0600 root bin
f none images/letters/222.iso-8859-9.gif 0600 root bin
f none images/letters/252.iso-8859-9.gif 0600 root bin
f none images/letters/221.iso-8859-9.gif 0600 root bin
f none images/letters/231.iso-8859-9.gif 0600 root bin
f none images/letters/220.iso-8859-9.gif 0600 root bin
f none images/letters/240.iso-8859-9.gif 0600 root bin
f none images/letters/208.iso-8859-9.gif 0600 root bin
f none images/letters/246.iso-8859-9.gif 0600 root bin
f none images/newlogo.gif 0600 root bin
f none images/smalllogo.gif 0600 root bin
f none index.cgi 0700 root bin
f none mime.types 0700 root bin
f none miniserv.pl 0700 root bin
f none os_list.txt 0600 root bin
f none perlpath.pl 0600 root bin
f none setup.sh 0700 root bin
f none version 0600 root bin
f none web-lib.pl 0700 root bin
f none README 0600 root bin
f none config_save.cgi 0700 root bin
f none config-debian-linux 0600 root bin
f none chooser.cgi 0700 root bin
f none miniserv.pem 0600 root bin
f none config-aix 0600 root bin
f none config-suse-linux 0600 root bin
f none newmods.pl 0700 root bin
f none copyconfig.pl 0600 root bin
f none config-hpux 0600 root bin
f none config-freebsd 0600 root bin
f none changepass.pl 0700 root bin
f none help.cgi 0700 root bin
f none user_chooser.cgi 0700 root bin
f none group_chooser.cgi 0700 root bin
f none config-irix 0600 root bin
f none config-osf1 0600 root bin
f none thirdparty.pl 0600 root bin
f none oschooser.pl 0600 root bin
f none config-open-linux 0600 root bin
f none config-unixware 0600 root bin
f none config-openserver 0600 root bin
f none switch_user.cgi 0700 root bin
d none lang 0700 root bin
f none lang/de 0600 root bin
f none lang/en 0600 root bin
f none lang/ru_SU 0600 root bin
f none lang/no 0600 root bin
f none lang/es 0600 root bin
f none lang/fr 0600 root bin
f none lang/pt 0600 root bin
f none lang/zh_TW.Big5 0600 root bin
f none lang/sv 0600 root bin
f none lang/it 0600 root bin
f none lang/zh_CN 0600 root bin
f none lang/hu 0600 root bin
f none lang/he 0600 root bin
f none lang/tr 0600 root bin
f none lang/pl 0600 root bin
f none lang/nl 0700 root bin
f none lang/ru_RU 0600 root bin
f none lang/ja_JP.euc 0600 root bin
f none lang_list.txt 0600 root bin
f none webmin-init 0700 root bin
f none webmin-caldera-init 0700 root bin
f none webmin-daemon 0600 root bin
f none config-turbo-linux 0600 root bin
f none config-openbsd 0600 root bin
d none pap 0700 root bin
d none pap/images 0700 root bin
f none pap/images/icon.gif 0600 root bin
f none pap/module.info 0600 root bin
f none pap/edit_secret.cgi 0700 root bin
f none pap/config.info 0600 root bin
f none pap/pap-lib.pl 0600 root bin
f none pap/config-suse-linux 0600 root bin
f none pap/index.cgi 0700 root bin
f none pap/save_sync.cgi 0700 root bin
f none pap/save_secret.cgi 0700 root bin
f none pap/config-slackware-linux 0600 root bin
f none pap/config-debian-linux 0600 root bin
f none pap/config-redhat-linux 0600 root bin
f none pap/useradmin_update.pl 0600 root bin
f none pap/config-open-linux 0600 root bin
f none pap/config-turbo-linux 0600 root bin
f none pap/config-corel-linux 0600 root bin
f none pap/config.info.fr 0600 root bin
f none pap/config.info.es 0600 root bin
f none pap/config.info.zh_TW.Big5 0600 root bin
f none pap/config.info.sv 0600 root bin
f none pap/config-freebsd 0600 root bin
f none pap/config.info.de 0600 root bin
f none pap/config.info.zh_CN 0600 root bin
d none pap/lang 0700 root bin
f none pap/lang/en 0600 root bin
f none pap/lang/pl 0600 root bin
f none pap/lang/sv 0600 root bin
f none pap/lang/es 0600 root bin
f none pap/lang/zh_CN 0600 root bin
f none pap/lang/de 0600 root bin
f none pap/log_parser.pl 0600 root bin
f none pap/config.info.tr 0600 root bin
f none pap/config.info.pl 0600 root bin
f none config-corel-linux 0600 root bin
f none LICENCE 0600 root bin
f none config-macos 0600 root bin
f none config-cobalt-linux 0600 root bin
f none session_login.cgi 0700 root bin
f none referer_save.cgi 0700 root bin
f none acl_security.pl 0600 root bin
f none defaultacl 0600 root bin
f none rpc.cgi 0700 root bin
f none date_chooser.cgi 0700 root bin
f none switch_skill.cgi 0700 root bin
f none install-module.pl 0700 root bin
f none install-type 0600 root bin
d none cron 0700 root bin
d none cron/images 0700 root bin
f none cron/images/icon.gif 0600 root bin
f none cron/index.cgi 0700 root bin
f none cron/edit_cron.cgi 0700 root bin
f none cron/cron-lib.pl 0600 root bin
f none cron/module.info 0600 root bin
f none cron/config.info 0600 root bin
f none cron/config-redhat-linux 0600 root bin
f none cron/config-solaris 0600 root bin
f none cron/save_allow.cgi 0700 root bin
f none cron/config-debian-linux 0600 root bin
f none cron/save_cron.cgi 0700 root bin
f none cron/delete_cron.cgi 0700 root bin
f none cron/config-slackware-linux 0600 root bin
f none cron/config-hpux 0600 root bin
f none cron/cron_editor.pl 0700 root bin
f none cron/config-suse-linux 0600 root bin
f none cron/exec_cron.cgi 0700 root bin
f none cron/edit_allow.cgi 0700 root bin
f none cron/config-freebsd 0600 root bin
f none cron/edit_env.cgi 0700 root bin
d none cron/help 0700 root bin
f none cron/help/intro.html 0600 root bin
f none cron/help/intro.fr.html 0600 root bin
f none cron/help/intro.es.html 0600 root bin
f none cron/help/help.html 0600 root bin
f none cron/help/help.fr.html 0600 root bin
f none cron/help/help.zh_TW.Big5.html 0600 root bin
f none cron/help/intro.zh_TW.Big5.html 0600 root bin
f none cron/help/help.sv.html 0600 root bin
f none cron/help/intro.sv.html 0600 root bin
f none cron/help/intro.hu.html 0600 root bin
f none cron/help/help.es.html 0600 root bin
f none cron/help/help.nl.html 0700 root bin
f none cron/help/intro.nl.html 0700 root bin
f none cron/save_env.cgi 0700 root bin
f none cron/config-osf1 0600 root bin
f none cron/config-irix 0600 root bin
f none cron/defaultacl 0600 root bin
f none cron/acl_security.pl 0600 root bin
d none cron/lang 0700 root bin
f none cron/lang/ru_SU 0600 root bin
f none cron/lang/en 0600 root bin
f none cron/lang/es 0600 root bin
f none cron/lang/de 0600 root bin
f none cron/lang/fr 0600 root bin
f none cron/lang/pt 0600 root bin
f none cron/lang/zh_TW.Big5 0600 root bin
f none cron/lang/sv 0600 root bin
f none cron/lang/it 0600 root bin
f none cron/lang/zh_CN 0600 root bin
f none cron/lang/hu 0600 root bin
f none cron/lang/nl 0700 root bin
f none cron/lang/ru_RU 0600 root bin
f none cron/lang/tr 0600 root bin
f none cron/lang/pl 0600 root bin
f none cron/config-unixware 0600 root bin
f none cron/useradmin_update.pl 0600 root bin
f none cron/config-openserver 0600 root bin
f none cron/config-macos 0600 root bin
f none cron/config.info.de 0600 root bin
f none cron/config-open-linux 0600 root bin
f none cron/config-turbo-linux 0600 root bin
f none cron/config-openbsd 0600 root bin
f none cron/config-corel-linux 0600 root bin
f none cron/config.info.fr 0600 root bin
f none cron/config.info.ru_SU 0600 root bin
f none cron/config.info.es 0600 root bin
f none cron/config-cobalt-linux 0600 root bin
f none cron/config-aix 0600 root bin
f none cron/config.info.sv 0600 root bin
f none cron/config.info.zh_TW.Big5 0600 root bin
f none cron/config.info.zh_CN 0600 root bin
f none cron/log_parser.pl 0600 root bin
f none cron/config-debian-linux-2.1 0600 root bin
f none cron/config-debian-linux-2.2 0600 root bin
f none cron/config-suse-linux-7.0 0600 root bin
f none cron/config.info.tr 0600 root bin
f none cron/config.info.pl 0600 root bin
f none cron/config.info.nl 0700 root bin
f none cron/config.info.ru_RU 0600 root bin
f none cron/config-suse-linux-7.1 0600 root bin
d none dfsadmin 0700 root bin
d none dfsadmin/images 0700 root bin
f none dfsadmin/images/icon.gif 0600 root bin
f none dfsadmin/images/share.gif 0600 root bin
f none dfsadmin/dfs-lib.pl 0600 root bin
f none dfsadmin/module.info 0600 root bin
f none dfsadmin/index.cgi 0700 root bin
f none dfsadmin/config.info 0600 root bin
f none dfsadmin/config-solaris 0600 root bin
f none dfsadmin/delete_share.cgi 0700 root bin
f none dfsadmin/edit_share.cgi 0700 root bin
d none dfsadmin/help 0700 root bin
f none dfsadmin/help/intro.html 0600 root bin
f none dfsadmin/help/nfs.html 0600 root bin
f none dfsadmin/help/share.html 0600 root bin
f none dfsadmin/help/edit_share.html 0600 root bin
f none dfsadmin/help/dir.html 0600 root bin
f none dfsadmin/help/desc.html 0600 root bin
f none dfsadmin/help/ro.html 0600 root bin
f none dfsadmin/help/rw.html 0600 root bin
f none dfsadmin/help/root.html 0600 root bin
f none dfsadmin/help/sub.html 0600 root bin
f none dfsadmin/help/suid.html 0600 root bin
f none dfsadmin/help/des.html 0600 root bin
f none dfsadmin/help/kerberos.html 0600 root bin
f none dfsadmin/help/anon.html 0600 root bin
f none dfsadmin/help/aclok.html 0600 root bin
f none dfsadmin/help/create_share.html 0600 root bin
f none dfsadmin/help/index.html 0600 root bin
f none dfsadmin/help/public.html 0600 root bin
f none dfsadmin/help/aclok.pl.html 0600 root bin
f none dfsadmin/help/anon.fr.html 0600 root bin
f none dfsadmin/help/create_share.fr.html 0600 root bin
f none dfsadmin/help/des.fr.html 0600 root bin
f none dfsadmin/help/dir.fr.html 0600 root bin
f none dfsadmin/help/desc.fr.html 0600 root bin
f none dfsadmin/help/edit_share.fr.html 0600 root bin
f none dfsadmin/help/index.fr.html 0600 root bin
f none dfsadmin/help/intro.fr.html 0600 root bin
f none dfsadmin/help/kerberos.fr.html 0600 root bin
f none dfsadmin/help/nfs.fr.html 0600 root bin
f none dfsadmin/help/public.fr.html 0600 root bin
f none dfsadmin/help/ro.fr.html 0600 root bin
f none dfsadmin/help/root.fr.html 0600 root bin
f none dfsadmin/help/rw.fr.html 0600 root bin
f none dfsadmin/help/share.fr.html 0600 root bin
f none dfsadmin/help/sub.fr.html 0600 root bin
f none dfsadmin/help/suid.fr.html 0600 root bin
f none dfsadmin/help/anon.es.html 0600 root bin
f none dfsadmin/help/desc.es.html 0600 root bin
f none dfsadmin/help/des.es.html 0600 root bin
f none dfsadmin/help/dir.es.html 0600 root bin
f none dfsadmin/help/edit_share.es.html 0600 root bin
f none dfsadmin/help/index.es.html 0600 root bin
f none dfsadmin/help/intro.es.html 0600 root bin
f none dfsadmin/help/kerberos.es.html 0600 root bin
f none dfsadmin/help/nfs.es.html 0600 root bin
f none dfsadmin/help/public.es.html 0600 root bin
f none dfsadmin/help/ro.es.html 0600 root bin
f none dfsadmin/help/root.es.html 0600 root bin
f none dfsadmin/help/rw.es.html 0600 root bin
f none dfsadmin/help/share.es.html 0600 root bin
f none dfsadmin/help/sub.es.html 0600 root bin
f none dfsadmin/help/suid.es.html 0600 root bin
f none dfsadmin/help/aclok.es.html 0600 root bin
f none dfsadmin/help/create_share.es.html 0600 root bin
f none dfsadmin/help/aclok.fr.html 0600 root bin
f none dfsadmin/help/aclok.zh_TW.Big5.html 0600 root bin
f none dfsadmin/help/anon.zh_TW.Big5.html 0600 root bin
f none dfsadmin/help/create_share.zh_TW.Big5.html 0600 root bin
f none dfsadmin/help/des.zh_TW.Big5.html 0600 root bin
f none dfsadmin/help/desc.zh_TW.Big5.html 0600 root bin
f none dfsadmin/help/dir.zh_TW.Big5.html 0600 root bin
f none dfsadmin/help/edit_share.zh_TW.Big5.html 0600 root bin
f none dfsadmin/help/nfs.zh_TW.Big5.html 0600 root bin
f none dfsadmin/help/index.zh_TW.Big5.html 0600 root bin
f none dfsadmin/help/intro.zh_TW.Big5.html 0600 root bin
f none dfsadmin/help/kerberos.zh_TW.Big5.html 0600 root bin
f none dfsadmin/help/public.zh_TW.Big5.html 0600 root bin
f none dfsadmin/help/ro.zh_TW.Big5.html 0600 root bin
f none dfsadmin/help/root.zh_TW.Big5.html 0600 root bin
f none dfsadmin/help/rw.zh_TW.Big5.html 0600 root bin
f none dfsadmin/help/share.zh_TW.Big5.html 0600 root bin
f none dfsadmin/help/sub.zh_TW.Big5.html 0600 root bin
f none dfsadmin/help/suid.zh_TW.Big5.html 0600 root bin
f none dfsadmin/help/aclok.sv.html 0600 root bin
f none dfsadmin/help/anon.sv.html 0600 root bin
f none dfsadmin/help/create_share.sv.html 0600 root bin
f none dfsadmin/help/des.sv.html 0600 root bin
f none dfsadmin/help/desc.sv.html 0600 root bin
f none dfsadmin/help/dir.sv.html 0600 root bin
f none dfsadmin/help/edit_share.sv.html 0600 root bin
f none dfsadmin/help/index.sv.html 0600 root bin
f none dfsadmin/help/intro.sv.html 0600 root bin
f none dfsadmin/help/kerberos.sv.html 0600 root bin
f none dfsadmin/help/nfs.sv.html 0600 root bin
f none dfsadmin/help/public.sv.html 0600 root bin
f none dfsadmin/help/ro.sv.html 0600 root bin
f none dfsadmin/help/root.sv.html 0600 root bin
f none dfsadmin/help/share.sv.html 0600 root bin
f none dfsadmin/help/sub.sv.html 0600 root bin
f none dfsadmin/help/suid.sv.html 0600 root bin
f none dfsadmin/help/rw.sv.html 0600 root bin
f none dfsadmin/help/anon.pl.html 0600 root bin
f none dfsadmin/help/create_share.pl.html 0600 root bin
f none dfsadmin/help/des.pl.html 0600 root bin
f none dfsadmin/help/desc.pl.html 0600 root bin
f none dfsadmin/help/dir.pl.html 0600 root bin
f none dfsadmin/help/edit_share.pl.html 0600 root bin
f none dfsadmin/help/index.pl.html 0600 root bin
f none dfsadmin/help/intro.pl.html 0600 root bin
f none dfsadmin/help/kerberos.pl.html 0600 root bin
f none dfsadmin/help/nfs.pl.html 0600 root bin
f none dfsadmin/help/public.pl.html 0600 root bin
f none dfsadmin/help/ro.pl.html 0600 root bin
f none dfsadmin/help/root.pl.html 0600 root bin
f none dfsadmin/help/rw.pl.html 0600 root bin
f none dfsadmin/help/share.pl.html 0600 root bin
f none dfsadmin/help/sub.pl.html 0600 root bin
f none dfsadmin/help/suid.pl.html 0600 root bin
f none dfsadmin/save_share.cgi 0700 root bin
f none dfsadmin/restart_sharing.cgi 0700 root bin
f none dfsadmin/config-openserver 0600 root bin
f none dfsadmin/config-unixware 0600 root bin
f none dfsadmin/config.info.fr 0600 root bin
f none dfsadmin/config.info.es 0600 root bin
f none dfsadmin/config.info.zh_TW.Big5 0600 root bin
f none dfsadmin/config.info.sv 0600 root bin
f none dfsadmin/config.info.de 0600 root bin
f none dfsadmin/config.info.tr 0600 root bin
f none dfsadmin/log_parser.pl 0600 root bin
d none dfsadmin/lang 0700 root bin
f none dfsadmin/lang/en 0600 root bin
f none dfsadmin/lang/tr 0600 root bin
f none dfsadmin/lang/sv 0600 root bin
f none dfsadmin/lang/es 0600 root bin
f none dfsadmin/lang/pl 0600 root bin
f none dfsadmin/config.info.pl 0600 root bin
f none dfsadmin/medium.skill 0600 root bin
f none dfsadmin/low.skill 0600 root bin
f none dfsadmin/medium.risk 0600 root bin
f none dfsadmin/low.risk 0600 root bin
f none dfsadmin/config.info.zh_CN 0600 root bin
d none dnsadmin 0700 root bin
d none dnsadmin/images 0700 root bin
f none dnsadmin/images/icon.gif 0600 root bin
f none dnsadmin/images/dnsadmin.gif 0600 root bin
f none dnsadmin/config.info.es 0600 root bin
f none dnsadmin/change_soa.cgi 0700 root bin
d none dnsadmin/help 0700 root bin
f none dnsadmin/help/intro.html 0600 root bin
f none dnsadmin/help/intro.sv.html 0600 root bin
f none dnsadmin/help/intro.zh_TW.Big5.html 0600 root bin
f none dnsadmin/edit_recs.cgi 0700 root bin
f none dnsadmin/index.cgi 0700 root bin
f none dnsadmin/restart.cgi 0700 root bin
f none dnsadmin/module.info 0600 root bin
f none dnsadmin/dns-lib.pl 0600 root bin
f none dnsadmin/dns_boot.cgi 0700 root bin
f none dnsadmin/config.info 0600 root bin
f none dnsadmin/config-solaris 0600 root bin
f none dnsadmin/edit_text.cgi 0700 root bin
f none dnsadmin/save_text.cgi 0700 root bin
f none dnsadmin/db.cache 0600 root bin
f none dnsadmin/config-redhat-linux 0600 root bin
f none dnsadmin/config-debian-linux 0600 root bin
f none dnsadmin/config-suse-linux 0600 root bin
f none dnsadmin/config-slackware-linux 0600 root bin
f none dnsadmin/edit_master.cgi 0700 root bin
f none dnsadmin/start.cgi 0700 root bin
f none dnsadmin/save_zonedef.cgi 0700 root bin
f none dnsadmin/config-hpux 0600 root bin
f none dnsadmin/edit_record.cgi 0700 root bin
f none dnsadmin/save_record.cgi 0700 root bin
f none dnsadmin/config-freebsd 0600 root bin
f none dnsadmin/master_form.cgi 0700 root bin
f none dnsadmin/slave_form.cgi 0700 root bin
f none dnsadmin/edit_slave.cgi 0700 root bin
f none dnsadmin/save_slave.cgi 0700 root bin
f none dnsadmin/create_slave.cgi 0700 root bin
f none dnsadmin/delete_zone.cgi 0700 root bin
f none dnsadmin/create_master.cgi 0700 root bin
f none dnsadmin/save_master.cgi 0700 root bin
f none dnsadmin/config-aix 0600 root bin
f none dnsadmin/config-cobalt-linux 0600 root bin
f none dnsadmin/config-osf1 0600 root bin
f none dnsadmin/config-irix 0600 root bin
f none dnsadmin/config-debian-linux-2.2 0600 root bin
f none dnsadmin/config.info.sv 0600 root bin
f none dnsadmin/defaultacl 0600 root bin
f none dnsadmin/acl_security.pl 0600 root bin
f none dnsadmin/config.info.de 0600 root bin
f none dnsadmin/config-turbo-linux 0600 root bin
f none dnsadmin/log_parser.pl 0600 root bin
f none dnsadmin/config-openbsd 0600 root bin
f none dnsadmin/config.info.fr 0600 root bin
d none dnsadmin/lang 0700 root bin
f none dnsadmin/lang/sv 0600 root bin
f none dnsadmin/lang/en 0600 root bin
f none dnsadmin/lang/es 0600 root bin
f none dnsadmin/lang/zh_CN 0600 root bin
f none dnsadmin/lang/pl 0600 root bin
f none dnsadmin/config.info.ru_SU 0600 root bin
f none dnsadmin/config.info.zh_TW.Big5 0600 root bin
f none dnsadmin/config.info.tr 0600 root bin
f none dnsadmin/config.info.pl 0600 root bin
f none dnsadmin/config.info.zh_CN 0600 root bin
f none dnsadmin/config.info.ru_RU 0600 root bin
f none dnsadmin/config-openserver 0600 root bin
f none dnsadmin/config-unixware 0600 root bin
f none dnsadmin/config-open-linux 0600 root bin
d none exports 0700 root bin
d none exports/images 0700 root bin
f none exports/images/icon.gif 0600 root bin
f none exports/images/export.gif 0600 root bin
f none exports/config-debian-linux 0600 root bin
f none exports/config-redhat-linux 0600 root bin
f none exports/config-slackware-linux 0600 root bin
f none exports/config-suse-linux 0600 root bin
f none exports/config.info 0600 root bin
f none exports/module.info 0600 root bin
f none exports/restart_mountd.cgi 0700 root bin
f none exports/save_export.cgi 0700 root bin
f none exports/index.cgi 0700 root bin
f none exports/exports-lib.pl 0600 root bin
f none exports/edit_export.cgi 0700 root bin
d none exports/help 0700 root bin
f none exports/help/intro.html 0600 root bin
f none exports/help/nfs.html 0600 root bin
f none exports/help/create_export.html 0600 root bin
f none exports/help/edit_export.html 0600 root bin
f none exports/help/client.html 0600 root bin
f none exports/help/dir.html 0600 root bin
f none exports/help/squash_gids.html 0600 root bin
f none exports/help/link_relative.html 0600 root bin
f none exports/help/insecure.html 0600 root bin
f none exports/help/ro.html 0600 root bin
f none exports/help/noaccess.html 0600 root bin
f none exports/help/squash.html 0600 root bin
f none exports/help/squash_uids.html 0600 root bin
f none exports/help/anongid.html 0600 root bin
f none exports/help/anonuid.html 0600 root bin
f none exports/help/anongid.fr.html 0600 root bin
f none exports/help/anonuid.fr.html 0600 root bin
f none exports/help/client.fr.html 0600 root bin
f none exports/help/create_export.fr.html 0600 root bin
f none exports/help/dir.fr.html 0600 root bin
f none exports/help/edit_export.fr.html 0600 root bin
f none exports/help/insecure.fr.html 0600 root bin
f none exports/help/intro.fr.html 0600 root bin
f none exports/help/link_relative.fr.html 0600 root bin
f none exports/help/nfs.fr.html 0600 root bin
f none exports/help/noaccess.fr.html 0600 root bin
f none exports/help/ro.fr.html 0600 root bin
f none exports/help/squash.fr.html 0600 root bin
f none exports/help/squash_gids.fr.html 0600 root bin
f none exports/help/squash_uids.fr.html 0600 root bin
f none exports/help/anonuid.es.html 0600 root bin
f none exports/help/client.es.html 0600 root bin
f none exports/help/dir.es.html 0600 root bin
f none exports/help/edit_export.es.html 0600 root bin
f none exports/help/insecure.es.html 0600 root bin
f none exports/help/intro.es.html 0600 root bin
f none exports/help/link_relative.es.html 0600 root bin
f none exports/help/nfs.es.html 0600 root bin
f none exports/help/noaccess.es.html 0600 root bin
f none exports/help/ro.es.html 0600 root bin
f none exports/help/squash.es.html 0600 root bin
f none exports/help/squash_gids.es.html 0600 root bin
f none exports/help/squash_uids.es.html 0600 root bin
f none exports/help/anongid.es.html 0600 root bin
f none exports/help/create_export.es.html 0600 root bin
f none exports/help/active.es.html 0600 root bin
f none exports/help/active.pl.html 0600 root bin
f none exports/help/active.html 0600 root bin
f none exports/help/active.zh_TW.Big5.html 0600 root bin
f none exports/help/anongid.zh_TW.Big5.html 0600 root bin
f none exports/help/anonuid.zh_TW.Big5.html 0600 root bin
f none exports/help/client.zh_TW.Big5.html 0600 root bin
f none exports/help/create_export.zh_TW.Big5.html 0600 root bin
f none exports/help/dir.zh_TW.Big5.html 0600 root bin
f none exports/help/edit_export.zh_TW.Big5.html 0600 root bin
f none exports/help/insecure.zh_TW.Big5.html 0600 root bin
f none exports/help/intro.zh_TW.Big5.html 0600 root bin
f none exports/help/link_relative.zh_TW.Big5.html 0600 root bin
f none exports/help/nfs.zh_TW.Big5.html 0600 root bin
f none exports/help/noaccess.zh_TW.Big5.html 0600 root bin
f none exports/help/ro.zh_TW.Big5.html 0600 root bin
f none exports/help/squash.zh_TW.Big5.html 0600 root bin
f none exports/help/squash_gids.zh_TW.Big5.html 0600 root bin
f none exports/help/squash_uids.zh_TW.Big5.html 0600 root bin
f none exports/help/active.sv.html 0600 root bin
f none exports/help/anongid.sv.html 0600 root bin
f none exports/help/anonuid.sv.html 0600 root bin
f none exports/help/client.sv.html 0600 root bin
f none exports/help/create_export.sv.html 0600 root bin
f none exports/help/dir.sv.html 0600 root bin
f none exports/help/edit_export.sv.html 0600 root bin
f none exports/help/insecure.sv.html 0600 root bin
f none exports/help/intro.sv.html 0600 root bin
f none exports/help/link_relative.sv.html 0600 root bin
f none exports/help/nfs.sv.html 0600 root bin
f none exports/help/noaccess.sv.html 0600 root bin
f none exports/help/ro.sv.html 0600 root bin
f none exports/help/squash.sv.html 0600 root bin
f none exports/help/squash_gids.sv.html 0600 root bin
f none exports/help/squash_uids.sv.html 0600 root bin
f none exports/help/anongid.pl.html 0600 root bin
f none exports/help/anonuid.pl.html 0600 root bin
f none exports/help/client.pl.html 0600 root bin
f none exports/help/create_export.pl.html 0600 root bin
f none exports/help/dir.pl.html 0600 root bin
f none exports/help/edit_export.pl.html 0600 root bin
f none exports/help/insecure.pl.html 0600 root bin
f none exports/help/intro.pl.html 0600 root bin
f none exports/help/link_relative.pl.html 0600 root bin
f none exports/help/nfs.pl.html 0600 root bin
f none exports/help/noaccess.pl.html 0600 root bin
f none exports/help/ro.pl.html 0600 root bin
f none exports/help/squash.pl.html 0600 root bin
f none exports/help/squash_gids.pl.html 0600 root bin
f none exports/help/squash_uids.pl.html 0600 root bin
f none exports/config-debian-linux-2.2 0600 root bin
d none exports/lang 0700 root bin
f none exports/lang/ru_SU 0600 root bin
f none exports/lang/en 0600 root bin
f none exports/lang/es 0600 root bin
f none exports/lang/de 0600 root bin
f none exports/lang/fr 0600 root bin
f none exports/lang/pt 0600 root bin
f none exports/lang/zh_TW.Big5 0600 root bin
f none exports/lang/sv 0600 root bin
f none exports/lang/zh_CN 0600 root bin
f none exports/lang/tr 0600 root bin
f none exports/lang/pl 0600 root bin
f none exports/lang/ru_RU 0600 root bin
f none exports/config-open-linux 0600 root bin
f none exports/config.info.de 0600 root bin
f none exports/config-suse-linux-7.1 0600 root bin
f none exports/config-turbo-linux 0600 root bin
f none exports/config-aix 0600 root bin
f none exports/config-corel-linux 0600 root bin
f none exports/config.info.fr 0600 root bin
f none exports/config.info.ru_SU 0600 root bin
f none exports/config.info.es 0600 root bin
f none exports/config-cobalt-linux 0600 root bin
f none exports/config.info.zh_TW.Big5 0600 root bin
f none exports/config.info.sv 0600 root bin
f none exports/config.info.zh_CN 0600 root bin
f none exports/log_parser.pl 0600 root bin
f none exports/config.info.tr 0600 root bin
f none exports/config.info.pl 0600 root bin
f none exports/medium.skill 0600 root bin
f none exports/low.skill 0600 root bin
f none exports/medium.risk 0600 root bin
f none exports/low.risk 0600 root bin
f none exports/config.info.ru_RU 0600 root bin
d none inetd 0700 root bin
f none inetd/module.info 0600 root bin
f none inetd/inetd-lib.pl 0600 root bin
f none inetd/config-lfs-linux 0600 root bin
f none inetd/config.info 0600 root bin
f none inetd/config.info.sv 0600 root bin
f none inetd/config-hpux 0600 root bin
f none inetd/index.cgi 0700 root bin
f none inetd/edit_serv.cgi 0700 root bin
f none inetd/config-solaris 0600 root bin
d none inetd/images 0700 root bin
f none inetd/images/icon.gif 0600 root bin
f none inetd/config.info.de 0600 root bin
f none inetd/save_serv.cgi 0700 root bin
f none inetd/restart_inetd.cgi 0700 root bin
f none inetd/edit_rpc.cgi 0700 root bin
f none inetd/config.info.zh_CN 0600 root bin
f none inetd/delete_serv.cgi 0700 root bin
f none inetd/save_rpc.cgi 0700 root bin
f none inetd/config-aix 0600 root bin
d none inetd/lang 0700 root bin
f none inetd/lang/en 0600 root bin
f none inetd/lang/zh_CN 0600 root bin
f none inetd/lang/es 0600 root bin
f none inetd/lang/hu 0600 root bin
f none inetd/lang/sv 0600 root bin
f none inetd/lang/tr 0600 root bin
f none inetd/lang/pl 0600 root bin
f none inetd/lang/fr 0600 root bin
f none inetd/delete_rpc.cgi 0700 root bin
f none inetd/config-redhat-linux 0600 root bin
f none inetd/config-debian-linux 0600 root bin
f none inetd/config-osf1 0600 root bin
f none inetd/config.info.hu 0600 root bin
f none inetd/config-suse-linux 0600 root bin
f none inetd/config-solaris-8 0600 root bin
f none inetd/config-slackware-linux 0600 root bin
f none inetd/config-freebsd 0600 root bin
f none inetd/log_parser.pl 0600 root bin
f none inetd/config-suse-linux-6.4 0600 root bin
f none inetd/config-openserver 0600 root bin
f none inetd/config-unixware 0600 root bin
f none inetd/config.info.tr 0600 root bin
f none inetd/config-macos 0600 root bin
f none inetd/config.info.pl 0600 root bin
d none inetd/help 0700 root bin
f none inetd/help/help.html 0600 root bin
f none inetd/help/help.zh_TW.Big5.html 0600 root bin
f none inetd/help/help.sv.html 0600 root bin
f none inetd/help/help.es.html 0600 root bin
f none inetd/config-openbsd 0600 root bin
f none inetd/config-open-linux 0600 root bin
f none inetd/config-turbo-linux 0600 root bin
f none inetd/config-corel-linux 0600 root bin
f none inetd/config.info.fr 0600 root bin
f none inetd/config.info.ru_SU 0600 root bin
f none inetd/config.info.es 0600 root bin
f none inetd/config-cobalt-linux 0600 root bin
f none inetd/config-freebsd-2.1 0600 root bin
f none inetd/config-freebsd-2.2 0600 root bin
f none inetd/config.info.zh_TW.Big5 0600 root bin
f none inetd/config-suse-linux-6.3 0600 root bin
f none inetd/config-suse-linux-7.0 0600 root bin
f none inetd/config-open-linux-3.1e 0600 root bin
f none inetd/config.info.ru_RU 0600 root bin
f none inetd/config-suse-linux-7.1 0600 root bin
d none init 0700 root bin
d none init/images 0700 root bin
f none init/images/icon.gif 0600 root bin
f none init/module.info 0600 root bin
f none init/index.cgi 0700 root bin
f none init/init-lib.pl 0700 root bin
f none init/config.info 0600 root bin
f none init/edit_action.cgi 0700 root bin
f none init/config-hpux 0600 root bin
f none init/delete_action.cgi 0700 root bin
f none init/save_action.cgi 0700 root bin
f none init/delboot.pl 0700 root bin
f none init/fix_action.cgi 0700 root bin
f none init/config-redhat-linux 0600 root bin
f none init/config-solaris 0600 root bin
f none init/reboot.cgi 0700 root bin
f none init/start_stop.cgi 0700 root bin
f none init/config-debian-linux 0600 root bin
f none init/config-suse-linux 0600 root bin
f none init/shutdown.cgi 0700 root bin
f none init/atboot.pl 0700 root bin
f none init/config-slackware-linux 0600 root bin
f none init/config-freebsd 0600 root bin
f none init/save_local.cgi 0700 root bin
f none init/acl_security.pl 0600 root bin
f none init/defaultacl 0600 root bin
f none init/config-cobalt-linux-2.2 0600 root bin
f none init/config-cobalt-linux-5.0 0600 root bin
f none init/config-openserver 0600 root bin
f none init/config-unixware 0600 root bin
d none init/lang 0700 root bin
f none init/lang/ru_SU 0600 root bin
f none init/lang/en 0600 root bin
f none init/lang/es 0600 root bin
f none init/lang/de 0600 root bin
f none init/lang/fr 0600 root bin
f none init/lang/pt 0600 root bin
f none init/lang/zh_TW.Big5 0600 root bin
f none init/lang/sv 0600 root bin
f none init/lang/it 0600 root bin
f none init/lang/zh_CN 0600 root bin
f none init/lang/tr 0600 root bin
f none init/lang/pl 0600 root bin
f none init/lang/ru_RU 0600 root bin
d none init/help 0700 root bin
f none init/help/help.html 0600 root bin
f none init/help/proc.html 0600 root bin
f none init/help/help.sv.html 0600 root bin
f none init/help/proc.sv.html 0600 root bin
f none init/help/help.es.html 0600 root bin
f none init/help/proc.es.html 0600 root bin
f none init/config-open-linux 0600 root bin
f none init/config.info.de 0600 root bin
f none init/config-turbo-linux 0600 root bin
f none init/config-openbsd 0600 root bin
f none init/config-corel-linux 0600 root bin
f none init/config.info.fr 0600 root bin
f none init/config.info.ru_SU 0600 root bin
f none init/config.info.es 0600 root bin
f none init/config-suse-linux-7.1 0600 root bin
f none init/config-macos 0600 root bin
f none init/config-aix 0600 root bin
f none init/config.info.sv 0600 root bin
f none init/config.info.zh_TW.Big5 0600 root bin
f none init/config.info.zh_CN 0600 root bin
f none init/log_parser.pl 0600 root bin
f none init/config-osf1 0600 root bin
f none init/config-irix 0600 root bin
f none init/config.info.tr 0600 root bin
f none init/config.info.pl 0600 root bin
f none init/config.info.ru_RU 0600 root bin
f none init/medium.risk 0600 root bin
f none init/save_bootup.cgi 0600 root bin
f none init/low.risk 0600 root bin
d none mount 0700 root bin
f none mount/module.info 0600 root bin
f none mount/config.info 0600 root bin
f none mount/mount-lib.pl 0600 root bin
f none mount/config-solaris 0600 root bin
f none mount/index.cgi 0700 root bin
f none mount/freebsd-mounts-2 0700 root bin
f none mount/config-unixware 0600 root bin
f none mount/edit_mount.cgi 0700 root bin
d none mount/images 0700 root bin
f none mount/images/icon.gif 0600 root bin
f none mount/images/ufs.gif 0600 root bin
f none mount/images/ext2.gif 0600 root bin
f none mount/images/nfs.gif 0600 root bin
f none mount/images/tmpfs.gif 0600 root bin
f none mount/images/swap.gif 0600 root bin
f none mount/images/minix.gif 0600 root bin
f none mount/images/ext.gif 0600 root bin
f none mount/images/hpfs.gif 0600 root bin
f none mount/images/sysv.gif 0600 root bin
f none mount/images/reiserfs.gif 0600 root bin
f none mount/images/msdos.gif 0600 root bin
f none mount/images/fat.gif 0600 root bin
f none mount/images/vfat.gif 0600 root bin
f none mount/images/umsdos.gif 0600 root bin
f none mount/images/smbfs.gif 0600 root bin
f none mount/images/iso9660.gif 0600 root bin
f none mount/images/hsfs.gif 0600 root bin
f none mount/images/pcfs.gif 0600 root bin
f none mount/images/xmemfs.gif 0600 root bin
f none mount/images/rumba.gif 0600 root bin
f none mount/images/udfs.gif 0600 root bin
f none mount/images/lofs.gif 0600 root bin
f none mount/images/cachefs.gif 0600 root bin
f none mount/images/autofs.gif 0600 root bin
f none mount/images/auto.gif 0600 root bin
f none mount/images/star.gif 0600 root bin
f none mount/unixware-lib.pl 0700 root bin
f none mount/save_mount.cgi 0700 root bin
f none mount/config-redhat-linux 0600 root bin
f none mount/smb_server.cgi 0700 root bin
f none mount/linux-lib.pl 0700 root bin
f none mount/solaris-lib.pl 0600 root bin
f none mount/config.info.es 0600 root bin
f none mount/config-debian-linux 0600 root bin
d none mount/help 0700 root bin
f none mount/help/help.html 0600 root bin
f none mount/help/help.zh_TW.Big5.html 0600 root bin
f none mount/help/help.sv.html 0600 root bin
f none mount/hpux-lib.pl 0600 root bin
f none mount/config-redhat-linux-5.0 0600 root bin
f none mount/config-hpux 0600 root bin
f none mount/create_swap.cgi 0700 root bin
f none mount/config-slackware-linux 0600 root bin
f none mount/config-suse-linux 0600 root bin
f none mount/freebsd-lib.pl 0700 root bin
f none mount/nfs_server.cgi 0700 root bin
f none mount/freebsd-mounts-3 0700 root bin
f none mount/config-openbsd 0600 root bin
f none mount/config.info.de 0600 root bin
f none mount/nfs_export.cgi 0700 root bin
f none mount/config-freebsd 0600 root bin
f none mount/smb_share.cgi 0700 root bin
f none mount/cobalt-linux-lib.pl 0700 root bin
f none mount/corel-linux-lib.pl 0700 root bin
f none mount/debian-linux-lib.pl 0700 root bin
f none mount/osf1-lib.pl 0600 root bin
d none mount/lang 0700 root bin
f none mount/lang/en 0600 root bin
f none mount/lang/de 0600 root bin
f none mount/lang/fr 0600 root bin
f none mount/lang/es 0600 root bin
f none mount/lang/ru_SU 0600 root bin
f none mount/lang/zh_TW.Big5 0600 root bin
f none mount/lang/sv 0600 root bin
f none mount/lang/zh_CN 0600 root bin
f none mount/lang/hu 0600 root bin
f none mount/lang/tr 0600 root bin
f none mount/lang/pl 0600 root bin
f none mount/lang/ru_RU 0600 root bin
f none mount/open-linux-lib.pl 0700 root bin
f none mount/config-osf1 0600 root bin
f none mount/config-irix 0600 root bin
f none mount/irix-lib.pl 0600 root bin
f none mount/^1 0600 root bin
f none mount/config-redhat-linux-5.1 0600 root bin
f none mount/config-redhat-linux-5.2 0600 root bin
f none mount/config-redhat-linux-6.0 0600 root bin
f none mount/openbsd-lib.pl 0700 root bin
f none mount/config-open-linux 0600 root bin
f none mount/redhat-linux-lib.pl 0700 root bin
f none mount/config-redhat-linux-6.1 0600 root bin
f none mount/freebsd-mounts-2.c 0600 root bin
f none mount/freebsd-mounts-3.c 0400 root bin
f none mount/config-turbo-linux-4.0 0600 root bin
f none mount/suse-linux-lib.pl 0700 root bin
f none mount/openbsd-mounts-2.c 0600 root bin
f none mount/openbsd-mounts-2 0700 root bin
f none mount/config.info.fr 0600 root bin
f none mount/config-cobalt-linux 0600 root bin
f none mount/config-corel-linux 0600 root bin
f none mount/slackware-linux-lib.pl 0700 root bin
f none mount/low.skill 0600 root bin
f none mount/config.info.ru_SU 0600 root bin
f none mount/turbo-linux-lib.pl 0700 root bin
f none mount/config-redhat-linux-6.2 0600 root bin
f none mount/log_parser.pl 0600 root bin
f none mount/freebsd-mounts-4.c 0400 root bin
f none mount/freebsd-mounts-4 0700 root bin
f none mount/config.info.zh_TW.Big5 0600 root bin
f none mount/config-lfs-linux 0600 root bin
f none mount/lfs-linux-lib.pl 0700 root bin
f none mount/config.info.sv 0600 root bin
f none mount/config-turbo-linux 0600 root bin
f none mount/config.info.zh_CN 0600 root bin
f none mount/config.info.tr 0600 root bin
f none mount/config.info.pl 0600 root bin
f none mount/config-redhat-linux-7.0 0600 root bin
f none mount/medium.skill 0600 root bin
f none mount/low.risk 0600 root bin
f none mount/medium.risk 0600 root bin
f none mount/config.info.ru_RU 0600 root bin
f none mount/config-redhat-linux-7.1 0600 root bin
d none samba 0700 root bin
d none samba/images 0700 root bin
f none samba/images/icon.gif 0600 root bin
f none samba/images/icon_4.gif 0600 root bin
f none samba/images/icon_2.gif 0600 root bin
f none samba/images/icon_0.gif 0600 root bin
f none samba/images/icon_1.gif 0600 root bin
f none samba/images/icon_3.gif 0600 root bin
f none samba/images/icon_6.gif 0600 root bin
f none samba/images/icon_5.gif 0600 root bin
f none samba/images/icon_7.gif 0600 root bin
f none samba/images/icon_8.gif 0600 root bin
f none samba/images/icon_9.gif 0600 root bin
f none samba/ask_epass.cgi 0700 root bin
f none samba/index.cgi 0700 root bin
f none samba/conf_misc.cgi 0700 root bin
f none samba/start.cgi 0700 root bin
f none samba/conf_net.cgi 0700 root bin
f none samba/useradmin_update.pl 0600 root bin
f none samba/conf_pass.cgi 0700 root bin
f none samba/restart.cgi 0700 root bin
f none samba/conf_print.cgi 0700 root bin
f none samba/config-open-linux 0600 root bin
f none samba/conf_smb.cgi 0700 root bin
f none samba/config-unixware 0600 root bin
f none samba/config.info 0600 root bin
f none samba/config-freebsd 0600 root bin
f none samba/config-aix 0600 root bin
f none samba/config-openserver 0600 root bin
f none samba/edit_epass.cgi 0700 root bin
f none samba/module.info 0600 root bin
f none samba/edit_euser.cgi 0700 root bin
f none samba/edit_sync.cgi 0700 root bin
f none samba/edit_fshare.cgi 0700 root bin
f none samba/swat.cgi 0700 root bin
f none samba/config-turbo-linux 0600 root bin
f none samba/edit_pshare.cgi 0700 root bin
f none samba/save_sync.cgi 0700 root bin
f none samba/opts.pl.dev 0600 root bin
f none samba/edit_sec.cgi 0700 root bin
f none samba/kill_user.cgi 0700 root bin
f none samba/make_epass.cgi 0700 root bin
f none samba/save_sec.cgi 0700 root bin
f none samba/config-slackware-linux-7.0 0600 root bin
f none samba/samba-lib.pl 0600 root bin
f none samba/save_fshare.cgi 0700 root bin
f none samba/save_misc.cgi 0700 root bin
f none samba/config-hpux 0600 root bin
f none samba/edit_fname.cgi 0700 root bin
f none samba/save_net.cgi 0700 root bin
f none samba/save_pass.cgi 0700 root bin
f none samba/edit_fperm.cgi 0700 root bin
f none samba/save_print.cgi 0700 root bin
f none samba/edit_fmisc.cgi 0700 root bin
d none samba/help 0700 root bin
f none samba/help/help.html 0600 root bin
f none samba/help/help.sv.html 0600 root bin
f none samba/help/help.es.html 0600 root bin
f none samba/save_pshare.cgi 0700 root bin
f none samba/save_smb.cgi 0700 root bin
f none samba/save_fperm.cgi 0700 root bin
f none samba/view_users.cgi 0700 root bin
f none samba/save_euser.cgi 0700 root bin
f none samba/config.info.es 0600 root bin
f none samba/delete_euser.cgi 0700 root bin
f none samba/config-debian-linux 0600 root bin
f none samba/save_fname.cgi 0700 root bin
f none samba/delete_share.cgi 0700 root bin
f none samba/create_copy.cgi 0700 root bin
f none samba/save_fmisc.cgi 0700 root bin
f none samba/save_copy.cgi 0700 root bin
d none samba/lang 0700 root bin
f none samba/lang/en 0600 root bin
f none samba/lang/zh_CN 0600 root bin
f none samba/lang/es 0600 root bin
f none samba/lang/sv 0600 root bin
f none samba/lang/ru_SU 0600 root bin
f none samba/lang/tr 0600 root bin
f none samba/lang/pl 0600 root bin
f none samba/lang/ru_RU 0600 root bin
f none samba/config.info.tr 0600 root bin
f none samba/config-slackware-linux 0600 root bin
f none samba/config-suse-linux 0600 root bin
f none samba/edit_popts.cgi 0700 root bin
f none samba/save_popts.cgi 0700 root bin
f none samba/config-solaris 0600 root bin
f none samba/config-redhat-linux 0600 root bin
f none samba/config-openbsd 0600 root bin
f none samba/config-osf1 0600 root bin
f none samba/config-irix 0600 root bin
f none samba/config.info.pl 0600 root bin
f none samba/swat_save.cgi 0700 root bin
f none samba/config.info.fr 0600 root bin
f none samba/config-debian-linux-2.1 0600 root bin
f none samba/config-debian-linux-2.2 0600 root bin
f none samba/config-corel-linux 0600 root bin
f none samba/config.info.ru_SU 0600 root bin
f none samba/config-redhat-linux-7.0 0600 root bin
f none samba/config-cobalt-linux 0600 root bin
f none samba/defaultacl 0600 root bin
f none samba/config.info.zh_TW.Big5 0600 root bin
f none samba/config-lfs-linux 0600 root bin
f none samba/config.info.sv 0600 root bin
f none samba/config.info.zh_CN 0600 root bin
f none samba/config-slackware-linux-7.1 0600 root bin
f none samba/log_parser.pl 0600 root bin
f none samba/config.info.ru_RU 0600 root bin
f none samba/acl_security.pl 0600 root bin
f none samba/config-redhat-linux-7.1 0600 root bin
f none samba/config-macos 0600 root bin
d none useradmin 0700 root bin
f none useradmin/index.cgi 0700 root bin
f none useradmin/module.info 0600 root bin
f none useradmin/user-lib.pl 0600 root bin
d none useradmin/images 0700 root bin
f none useradmin/images/icon.gif 0600 root bin
f none useradmin/images/user.gif 0600 root bin
f none useradmin/images/group.gif 0600 root bin
f none useradmin/unixware-lib.pl 0600 root bin
f none useradmin/edit_user.cgi 0700 root bin
f none useradmin/save_user.cgi 0700 root bin
d none useradmin/lang 0700 root bin
f none useradmin/lang/de 0600 root bin
f none useradmin/lang/en 0600 root bin
f none useradmin/lang/ru_SU 0600 root bin
f none useradmin/lang/es 0600 root bin
f none useradmin/lang/fr 0600 root bin
f none useradmin/lang/he 0600 root bin
f none useradmin/lang/pt 0600 root bin
f none useradmin/lang/zh_TW.Big5 0600 root bin
f none useradmin/lang/sv 0600 root bin
f none useradmin/lang/zh_CN 0600 root bin
f none useradmin/lang/tr 0600 root bin
f none useradmin/lang/pl 0600 root bin
f none useradmin/lang/ru_RU 0600 root bin
f none useradmin/config.info.de 0600 root bin
f none useradmin/config-turbo-linux 0600 root bin
f none useradmin/edit_group.cgi 0700 root bin
f none useradmin/config.info 0600 root bin
f none useradmin/config-aix 0600 root bin
f none useradmin/delete_group.cgi 0700 root bin
f none useradmin/config-solaris 0600 root bin
f none useradmin/save_group.cgi 0700 root bin
f none useradmin/delete_user.cgi 0700 root bin
f none useradmin/cobalt-linux-lib.pl 0600 root bin
f none useradmin/hpux-lib.pl 0600 root bin
f none useradmin/config-redhat-linux 0600 root bin
f none useradmin/config-debian-linux 0600 root bin
f none useradmin/config-openbsd 0600 root bin
f none useradmin/config-suse-linux 0600 root bin
f none useradmin/help.html 0600 root bin
f none useradmin/list_logins.cgi 0700 root bin
f none useradmin/config-hpux 0600 root bin
f none useradmin/search_user.cgi 0700 root bin
f none useradmin/corel-linux-lib.pl 0600 root bin
f none useradmin/config-freebsd 0600 root bin
f none useradmin/linux-lib.pl 0600 root bin
d none useradmin/help 0700 root bin
f none useradmin/help/intro.html 0600 root bin
f none useradmin/help/user.html 0600 root bin
f none useradmin/help/uid.html 0600 root bin
f none useradmin/help/real.html 0600 root bin
f none useradmin/help/home.html 0600 root bin
f none useradmin/help/shell.html 0600 root bin
f none useradmin/help/pass.html 0600 root bin
f none useradmin/help/change.html 0600 root bin
f none useradmin/help/expire.html 0600 root bin
f none useradmin/help/min.html 0600 root bin
f none useradmin/help/max.html 0600 root bin
f none useradmin/help/warn.html 0600 root bin
f none useradmin/help/inactive.html 0600 root bin
f none useradmin/help/group.html 0600 root bin
f none useradmin/help/2nd.html 0600 root bin
f none useradmin/help/movehome.html 0600 root bin
f none useradmin/help/chuid.html 0600 root bin
f none useradmin/help/chgid.html 0600 root bin
f none useradmin/help/makehome.html 0600 root bin
f none useradmin/help/copy_files.html 0600 root bin
f none useradmin/help/edit_user.html 0600 root bin
f none useradmin/help/create_user.html 0600 root bin
f none useradmin/help/class.html 0600 root bin
f none useradmin/help/list_logins.html 0600 root bin
f none useradmin/help/change2.html 0600 root bin
f none useradmin/help/expire2.html 0600 root bin
f none useradmin/help/ggroup.html 0600 root bin
f none useradmin/help/ggid.html 0600 root bin
f none useradmin/help/gpasswd.html 0600 root bin
f none useradmin/help/gmembers.html 0600 root bin
f none useradmin/help/gchgid.html 0600 root bin
f none useradmin/help/create_group.html 0600 root bin
f none useradmin/help/edit_group.html 0600 root bin
f none useradmin/help/findform.html 0600 root bin
f none useradmin/help/2nd.fr.html 0600 root bin
f none useradmin/help/change.fr.html 0600 root bin
f none useradmin/help/change2.fr.html 0600 root bin
f none useradmin/help/chgid.fr.html 0600 root bin
f none useradmin/help/chuid.fr.html 0600 root bin
f none useradmin/help/class.fr.html 0600 root bin
f none useradmin/help/copy_files.fr.html 0600 root bin
f none useradmin/help/create_group.fr.html 0600 root bin
f none useradmin/help/create_user.fr.html 0600 root bin
f none useradmin/help/expire.fr.html 0600 root bin
f none useradmin/help/edit_group.fr.html 0600 root bin
f none useradmin/help/edit_user.fr.html 0600 root bin
f none useradmin/help/expire2.fr.html 0600 root bin
f none useradmin/help/findform.fr.html 0600 root bin
f none useradmin/help/gchgid.fr.html 0600 root bin
f none useradmin/help/ggid.fr.html 0600 root bin
f none useradmin/help/ggroup.fr.html 0600 root bin
f none useradmin/help/gmembers.fr.html 0600 root bin
f none useradmin/help/gpasswd.fr.html 0600 root bin
f none useradmin/help/group.fr.html 0600 root bin
f none useradmin/help/home.fr.html 0600 root bin
f none useradmin/help/inactive.fr.html 0600 root bin
f none useradmin/help/intro.fr.html 0600 root bin
f none useradmin/help/list_logins.fr.html 0600 root bin
f none useradmin/help/makehome.fr.html 0600 root bin
f none useradmin/help/max.fr.html 0600 root bin
f none useradmin/help/min.fr.html 0600 root bin
f none useradmin/help/movehome.fr.html 0600 root bin
f none useradmin/help/pass.fr.html 0600 root bin
f none useradmin/help/real.fr.html 0600 root bin
f none useradmin/help/shell.fr.html 0600 root bin
f none useradmin/help/uid.fr.html 0600 root bin
f none useradmin/help/user.fr.html 0600 root bin
f none useradmin/help/warn.fr.html 0600 root bin
f none useradmin/help/2nd.ru_SU.html 0600 root bin
f none useradmin/help/chgid.ru_SU.html 0600 root bin
f none useradmin/help/chuid.ru_SU.html 0600 root bin
f none useradmin/help/copy_files.ru_SU.html 0600 root bin
f none useradmin/help/create_user.ru_SU.html 0600 root bin
f none useradmin/help/edit_user.ru_SU.html 0600 root bin
f none useradmin/help/ggid.ru_SU.html 0600 root bin
f none useradmin/help/ggroup.ru_SU.html 0600 root bin
f none useradmin/help/group.ru_SU.html 0600 root bin
f none useradmin/help/home.ru_SU.html 0600 root bin
f none useradmin/help/intro.ru_SU.html 0600 root bin
f none useradmin/help/makehome.ru_SU.html 0600 root bin
f none useradmin/help/movehome.ru_SU.html 0600 root bin
f none useradmin/help/pass.ru_SU.html 0600 root bin
f none useradmin/help/real.ru_SU.html 0600 root bin
f none useradmin/help/uid.ru_SU.html 0600 root bin
f none useradmin/help/user.ru_SU.html 0600 root bin
f none useradmin/help/change.ru_SU.html 0600 root bin
f none useradmin/help/change2.ru_SU.html 0600 root bin
f none useradmin/help/class.ru_SU.html 0600 root bin
f none useradmin/help/create_group.ru_SU.html 0600 root bin
f none useradmin/help/edit_group.ru_SU.html 0600 root bin
f none useradmin/help/expire.ru_SU.html 0600 root bin
f none useradmin/help/expire2.ru_SU.html 0600 root bin
f none useradmin/help/findform.ru_SU.html 0600 root bin
f none useradmin/help/gchgid.ru_SU.html 0600 root bin
f none useradmin/help/gmembers.ru_SU.html 0600 root bin
f none useradmin/help/gpasswd.ru_SU.html 0600 root bin
f none useradmin/help/inactive.ru_SU.html 0600 root bin
f none useradmin/help/list_logins.ru_SU.html 0600 root bin
f none useradmin/help/max.ru_SU.html 0600 root bin
f none useradmin/help/min.ru_SU.html 0600 root bin
f none useradmin/help/shell.ru_SU.html 0600 root bin
f none useradmin/help/warn.ru_SU.html 0600 root bin
f none useradmin/help/copy_files.es.html 0600 root bin
f none useradmin/help/create_group.es.html 0600 root bin
f none useradmin/help/create_user.es.html 0600 root bin
f none useradmin/help/change2.es.html 0600 root bin
f none useradmin/help/change.es.html 0600 root bin
f none useradmin/help/chgid.es.html 0600 root bin
f none useradmin/help/chuid.es.html 0600 root bin
f none useradmin/help/edit_group.es.html 0600 root bin
f none useradmin/help/edit_user.es.html 0600 root bin
f none useradmin/help/expire2.es.html 0600 root bin
f none useradmin/help/expire.es.html 0600 root bin
f none useradmin/help/findform.es.html 0600 root bin
f none useradmin/help/gchgid.es.html 0600 root bin
f none useradmin/help/ggid.es.html 0600 root bin
f none useradmin/help/ggroup.es.html 0600 root bin
f none useradmin/help/gmembers.es.html 0600 root bin
f none useradmin/help/gpasswd.es.html 0600 root bin
f none useradmin/help/group.es.html 0600 root bin
f none useradmin/help/home.es.html 0600 root bin
f none useradmin/help/inactive.es.html 0600 root bin
f none useradmin/help/intro.es.html 0600 root bin
f none useradmin/help/list_logins.es.html 0600 root bin
f none useradmin/help/makehome.es.html 0600 root bin
f none useradmin/help/max.es.html 0600 root bin
f none useradmin/help/min.es.html 0600 root bin
f none useradmin/help/movehome.es.html 0600 root bin
f none useradmin/help/pass.es.html 0600 root bin
f none useradmin/help/real.es.html 0600 root bin
f none useradmin/help/shell.es.html 0600 root bin
f none useradmin/help/uid.es.html 0600 root bin
f none useradmin/help/user.es.html 0600 root bin
f none useradmin/help/warn.es.html 0600 root bin
f none useradmin/help/2nd.es.html 0600 root bin
f none useradmin/help/class.es.html 0600 root bin
f none useradmin/help/2nd.zh_TW.Big5.html 0600 root bin
f none useradmin/help/change.zh_TW.Big5.html 0600 root bin
f none useradmin/help/change2.zh_TW.Big5.html 0600 root bin
f none useradmin/help/chgid.zh_TW.Big5.html 0600 root bin
f none useradmin/help/max.zh_TW.Big5.html 0600 root bin
f none useradmin/help/chuid.zh_TW.Big5.html 0600 root bin
f none useradmin/help/class.zh_TW.Big5.html 0600 root bin
f none useradmin/help/copy_files.zh_TW.Big5.html 0600 root bin
f none useradmin/help/create_group.zh_TW.Big5.html 0600 root bin
f none useradmin/help/create_user.zh_TW.Big5.html 0600 root bin
f none useradmin/help/edit_group.zh_TW.Big5.html 0600 root bin
f none useradmin/help/edit_user.zh_TW.Big5.html 0600 root bin
f none useradmin/help/expire.zh_TW.Big5.html 0600 root bin
f none useradmin/help/expire2.zh_TW.Big5.html 0600 root bin
f none useradmin/help/findform.zh_TW.Big5.html 0600 root bin
f none useradmin/help/gchgid.zh_TW.Big5.html 0600 root bin
f none useradmin/help/ggid.zh_TW.Big5.html 0600 root bin
f none useradmin/help/ggroup.zh_TW.Big5.html 0600 root bin
f none useradmin/help/gmembers.zh_TW.Big5.html 0600 root bin
f none useradmin/help/gpasswd.zh_TW.Big5.html 0600 root bin
f none useradmin/help/group.zh_TW.Big5.html 0600 root bin
f none useradmin/help/home.zh_TW.Big5.html 0600 root bin
f none useradmin/help/inactive.zh_TW.Big5.html 0600 root bin
f none useradmin/help/intro.zh_TW.Big5.html 0600 root bin
f none useradmin/help/list_logins.zh_TW.Big5.html 0600 root bin
f none useradmin/help/makehome.zh_TW.Big5.html 0600 root bin
f none useradmin/help/min.zh_TW.Big5.html 0600 root bin
f none useradmin/help/movehome.zh_TW.Big5.html 0600 root bin
f none useradmin/help/pass.zh_TW.Big5.html 0600 root bin
f none useradmin/help/real.zh_TW.Big5.html 0600 root bin
f none useradmin/help/shell.zh_TW.Big5.html 0600 root bin
f none useradmin/help/uid.zh_TW.Big5.html 0600 root bin
f none useradmin/help/user.zh_TW.Big5.html 0600 root bin
f none useradmin/help/warn.zh_TW.Big5.html 0600 root bin
f none useradmin/help/2nd.sv.html 0600 root bin
f none useradmin/help/change.sv.html 0600 root bin
f none useradmin/help/change2.sv.html 0600 root bin
f none useradmin/help/chgid.sv.html 0600 root bin
f none useradmin/help/chuid.sv.html 0600 root bin
f none useradmin/help/class.sv.html 0600 root bin
f none useradmin/help/copy_files.sv.html 0600 root bin
f none useradmin/help/create_group.sv.html 0600 root bin
f none useradmin/help/create_user.sv.html 0600 root bin
f none useradmin/help/edit_group.sv.html 0600 root bin
f none useradmin/help/edit_user.sv.html 0600 root bin
f none useradmin/help/expire.sv.html 0600 root bin
f none useradmin/help/expire2.sv.html 0600 root bin
f none useradmin/help/findform.sv.html 0600 root bin
f none useradmin/help/gchgid.sv.html 0600 root bin
f none useradmin/help/ggid.sv.html 0600 root bin
f none useradmin/help/ggroup.sv.html 0600 root bin
f none useradmin/help/gmembers.sv.html 0600 root bin
f none useradmin/help/gpasswd.sv.html 0600 root bin
f none useradmin/help/group.sv.html 0600 root bin
f none useradmin/help/home.sv.html 0600 root bin
f none useradmin/help/intro.sv.html 0600 root bin
f none useradmin/help/inactive.sv.html 0600 root bin
f none useradmin/help/list_logins.sv.html 0600 root bin
f none useradmin/help/makehome.sv.html 0600 root bin
f none useradmin/help/max.sv.html 0600 root bin
f none useradmin/help/min.sv.html 0600 root bin
f none useradmin/help/movehome.sv.html 0600 root bin
f none useradmin/help/pass.sv.html 0600 root bin
f none useradmin/help/real.sv.html 0600 root bin
f none useradmin/help/shell.sv.html 0600 root bin
f none useradmin/help/uid.sv.html 0600 root bin
f none useradmin/help/user.sv.html 0600 root bin
f none useradmin/help/warn.sv.html 0600 root bin
f none useradmin/help/2nd.pl.html 0600 root bin
f none useradmin/help/change.pl.html 0600 root bin
f none useradmin/help/change2.pl.html 0600 root bin
f none useradmin/help/chgid.pl.html 0600 root bin
f none useradmin/help/chuid.pl.html 0600 root bin
f none useradmin/help/class.pl.html 0600 root bin
f none useradmin/help/copy_files.pl.html 0600 root bin
f none useradmin/help/create_group.pl.html 0600 root bin
f none useradmin/help/max.pl.html 0600 root bin
f none useradmin/help/create_user.pl.html 0600 root bin
f none useradmin/help/edit_group.pl.html 0600 root bin
f none useradmin/help/edit_user.pl.html 0600 root bin
f none useradmin/help/expire.pl.html 0600 root bin
f none useradmin/help/expire2.pl.html 0600 root bin
f none useradmin/help/findform.pl.html 0600 root bin
f none useradmin/help/gchgid.pl.html 0600 root bin
f none useradmin/help/ggid.pl.html 0600 root bin
f none useradmin/help/ggroup.pl.html 0600 root bin
f none useradmin/help/gmembers.pl.html 0600 root bin
f none useradmin/help/gpasswd.pl.html 0600 root bin
f none useradmin/help/group.pl.html 0600 root bin
f none useradmin/help/home.pl.html 0600 root bin
f none useradmin/help/inactive.pl.html 0600 root bin
f none useradmin/help/intro.pl.html 0600 root bin
f none useradmin/help/list_logins.pl.html 0600 root bin
f none useradmin/help/makehome.pl.html 0600 root bin
f none useradmin/help/min.pl.html 0600 root bin
f none useradmin/help/movehome.pl.html 0600 root bin
f none useradmin/help/pass.pl.html 0600 root bin
f none useradmin/help/real.pl.html 0600 root bin
f none useradmin/help/shell.pl.html 0600 root bin
f none useradmin/help/uid.pl.html 0600 root bin
f none useradmin/help/user.pl.html 0600 root bin
f none useradmin/help/warn.pl.html 0600 root bin
f none useradmin/help/2nd.ru_RU.html 0600 root bin
f none useradmin/help/chgid.ru_RU.html 0600 root bin
f none useradmin/help/chuid.ru_RU.html 0600 root bin
f none useradmin/help/copy_files.ru_RU.html 0600 root bin
f none useradmin/help/create_user.ru_RU.html 0600 root bin
f none useradmin/help/edit_user.ru_RU.html 0600 root bin
f none useradmin/help/ggid.ru_RU.html 0600 root bin
f none useradmin/help/ggroup.ru_RU.html 0600 root bin
f none useradmin/help/group.ru_RU.html 0600 root bin
f none useradmin/help/home.ru_RU.html 0600 root bin
f none useradmin/help/intro.ru_RU.html 0600 root bin
f none useradmin/help/makehome.ru_RU.html 0600 root bin
f none useradmin/help/movehome.ru_RU.html 0600 root bin
f none useradmin/help/pass.ru_RU.html 0600 root bin
f none useradmin/help/real.ru_RU.html 0600 root bin
f none useradmin/help/uid.ru_RU.html 0600 root bin
f none useradmin/help/user.ru_RU.html 0600 root bin
f none useradmin/help/change.ru_RU.html 0600 root bin
f none useradmin/help/change2.ru_RU.html 0600 root bin
f none useradmin/help/class.ru_RU.html 0600 root bin
f none useradmin/help/create_group.ru_RU.html 0600 root bin
f none useradmin/help/edit_group.ru_RU.html 0600 root bin
f none useradmin/help/expire.ru_RU.html 0600 root bin
f none useradmin/help/expire2.ru_RU.html 0600 root bin
f none useradmin/help/findform.ru_RU.html 0600 root bin
f none useradmin/help/gchgid.ru_RU.html 0600 root bin
f none useradmin/help/gmembers.ru_RU.html 0600 root bin
f none useradmin/help/gpasswd.ru_RU.html 0600 root bin
f none useradmin/help/inactive.ru_RU.html 0600 root bin
f none useradmin/help/list_logins.ru_RU.html 0600 root bin
f none useradmin/help/max.ru_RU.html 0600 root bin
f none useradmin/help/min.ru_RU.html 0600 root bin
f none useradmin/help/shell.ru_RU.html 0600 root bin
f none useradmin/help/warn.ru_RU.html 0600 root bin
f none useradmin/config-slackware-linux 0600 root bin
f none useradmin/freebsd-lib.pl 0600 root bin
f none useradmin/solaris-lib.pl 0600 root bin
f none useradmin/debian-linux-lib.pl 0600 root bin
f none useradmin/acl_security.pl 0600 root bin
f none useradmin/open-linux-lib.pl 0600 root bin
f none useradmin/defaultacl 0600 root bin
f none useradmin/redhat-linux-lib.pl 0600 root bin
f none useradmin/config-unixware 0600 root bin
f none useradmin/config-osf1 0600 root bin
f none useradmin/osf1-lib.pl 0600 root bin
f none useradmin/config.info.fr 0600 root bin
f none useradmin/config-corel-linux 0600 root bin
f none useradmin/suse-linux-lib.pl 0600 root bin
f none useradmin/config-open-linux 0600 root bin
f none useradmin/turbo-linux-lib.pl 0600 root bin
f none useradmin/config.info.ru_SU 0600 root bin
f none useradmin/many_form.cgi 0700 root bin
f none useradmin/aix-lib.pl 0600 root bin
f none useradmin/many_create.cgi 0700 root bin
f none useradmin/config-irix 0600 root bin
f none useradmin/irix-lib.pl 0600 root bin
f none useradmin/config.info.es 0600 root bin
f none useradmin/openbsd-lib.pl 0600 root bin
f none useradmin/log_parser.pl 0600 root bin
f none useradmin/config-cobalt-linux 0600 root bin
f none useradmin/slackware-linux-lib.pl 0600 root bin
f none useradmin/config.info.zh_CN 0600 root bin
f none useradmin/config.info.zh_TW.Big5 0600 root bin
f none useradmin/config.info.sv 0600 root bin
f none useradmin/config.info.tr 0600 root bin
f none useradmin/config.info.pl 0600 root bin
f none useradmin/low.skill 0600 root bin
f none useradmin/medium.skill 0600 root bin
f none useradmin/my_group_chooser.cgi 0700 root bin
f none useradmin/my_user_chooser.cgi 0700 root bin
f none useradmin/medium.risk 0600 root bin
f none useradmin/low.risk 0600 root bin
f none useradmin/search_group.cgi 0700 root bin
f none useradmin/config.info.ru_RU 0600 root bin
f none useradmin/batch_exec.cgi 0600 root bin
f none useradmin/batch_form.cgi 0600 root bin
d none fdisk 0700 root bin
d none fdisk/images 0700 root bin
f none fdisk/images/gap.gif 0600 root bin
f none fdisk/images/use.gif 0600 root bin
f none fdisk/images/icon.gif 0600 root bin
f none fdisk/images/ext.gif 0600 root bin
f none fdisk/fdisk-lib.pl 0600 root bin
f none fdisk/index.cgi 0700 root bin
f none fdisk/edit_part.cgi 0700 root bin
f none fdisk/save_part.cgi 0700 root bin
f none fdisk/config 0600 root bin
f none fdisk/mkfs_form.cgi 0700 root bin
f none fdisk/mkfs.cgi 0700 root bin
f none fdisk/module.info 0600 root bin
f none fdisk/reboot.cgi 0700 root bin
f none fdisk/fsck_form.cgi 0700 root bin
f none fdisk/tunefs.cgi 0700 root bin
f none fdisk/fsck.cgi 0700 root bin
f none fdisk/tunefs_form.cgi 0700 root bin
d none fdisk/help 0700 root bin
f none fdisk/help/A.fr.html 0600 root bin
f none fdisk/help/A.html 0600 root bin
f none fdisk/help/K.fr.html 0600 root bin
f none fdisk/help/K.html 0600 root bin
f none fdisk/help/P.fr.html 0600 root bin
f none fdisk/help/P.html 0600 root bin
f none fdisk/help/S.fr.html 0600 root bin
f none fdisk/help/S.html 0600 root bin
f none fdisk/help/W.fr.html 0600 root bin
f none fdisk/help/W.html 0600 root bin
f none fdisk/help/X.fr.html 0600 root bin
f none fdisk/help/X.html 0600 root bin
f none fdisk/help/a.fr.html 0600 root bin
f none fdisk/help/a.html 0600 root bin
f none fdisk/help/c.fr.html 0600 root bin
f none fdisk/help/c.html 0600 root bin
f none fdisk/help/d.fr.html 0600 root bin
f none fdisk/help/d.html 0600 root bin
f none fdisk/help/edit.fr.html 0600 root bin
f none fdisk/help/edit.html 0600 root bin
f none fdisk/help/index.fr.html 0600 root bin
f none fdisk/help/index.html 0600 root bin
f none fdisk/help/k.fr.html 0600 root bin
f none fdisk/help/k.html 0600 root bin
f none fdisk/help/m.fr.html 0600 root bin
f none fdisk/help/m.html 0600 root bin
f none fdisk/help/r.fr.html 0600 root bin
f none fdisk/help/r.html 0600 root bin
f none fdisk/help/u.fr.html 0600 root bin
f none fdisk/help/u.html 0600 root bin
f none fdisk/help/A.zh_TW.Big5.html 0600 root bin
f none fdisk/help/K.zh_TW.Big5.html 0600 root bin
f none fdisk/help/P.zh_TW.Big5.html 0600 root bin
f none fdisk/help/S.zh_TW.Big5.html 0600 root bin
f none fdisk/help/W.zh_TW.Big5.html 0600 root bin
f none fdisk/help/X.zh_TW.Big5.html 0600 root bin
f none fdisk/help/a.zh_TW.Big5.html 0600 root bin
f none fdisk/help/c.zh_TW.Big5.html 0600 root bin
f none fdisk/help/d.zh_TW.Big5.html 0600 root bin
f none fdisk/help/edit.zh_TW.Big5.html 0600 root bin
f none fdisk/help/index.zh_TW.Big5.html 0600 root bin
f none fdisk/help/k.zh_TW.Big5.html 0600 root bin
f none fdisk/help/m.zh_TW.Big5.html 0600 root bin
f none fdisk/help/r.zh_TW.Big5.html 0600 root bin
f none fdisk/help/u.zh_TW.Big5.html 0600 root bin
f none fdisk/help/A.sv.html 0600 root bin
f none fdisk/help/K.sv.html 0600 root bin
f none fdisk/help/P.sv.html 0600 root bin
f none fdisk/help/S.sv.html 0600 root bin
f none fdisk/help/W.sv.html 0600 root bin
f none fdisk/help/X.sv.html 0600 root bin
f none fdisk/help/a.sv.html 0600 root bin
f none fdisk/help/A.hu.html 0600 root bin
f none fdisk/help/K.hu.html 0600 root bin
f none fdisk/help/P.hu.html 0600 root bin
f none fdisk/help/c.sv.html 0600 root bin
f none fdisk/help/d.sv.html 0600 root bin
f none fdisk/help/edit.sv.html 0600 root bin
f none fdisk/help/index.sv.html 0600 root bin
f none fdisk/help/k.sv.html 0600 root bin
f none fdisk/help/m.sv.html 0600 root bin
f none fdisk/help/r.sv.html 0600 root bin
f none fdisk/help/u.sv.html 0600 root bin
f none fdisk/help/W.pl.html 0600 root bin
f none fdisk/help/A.es.html 0600 root bin
f none fdisk/help/K.es.html 0600 root bin
f none fdisk/help/P.es.html 0600 root bin
f none fdisk/help/S.es.html 0600 root bin
f none fdisk/help/W.es.html 0600 root bin
f none fdisk/help/X.es.html 0600 root bin
f none fdisk/acl_security.pl 0600 root bin
f none fdisk/defaultacl 0600 root bin
f none fdisk/edit_hdparm.cgi 0700 root bin
f none fdisk/make_tags.pl 0700 root bin
d none fdisk/lang 0700 root bin
f none fdisk/lang/ru_SU 0600 root bin
f none fdisk/lang/en 0600 root bin
f none fdisk/lang/es 0600 root bin
f none fdisk/lang/de 0600 root bin
f none fdisk/lang/fr 0600 root bin
f none fdisk/lang/pt 0600 root bin
f none fdisk/lang/zh_TW.Big5 0600 root bin
f none fdisk/lang/sv 0600 root bin
f none fdisk/lang/zh_CN 0600 root bin
f none fdisk/lang/hu 0600 root bin
f none fdisk/lang/tr 0600 root bin
f none fdisk/lang/pl 0600 root bin
f none fdisk/lang/ru_RU 0600 root bin
f none fdisk/apply_hdparm.cgi 0700 root bin
f none fdisk/log_parser.pl 0600 root bin
d none format 0700 root bin
f none format/format-lib.pl 0600 root bin
f none format/index.cgi 0700 root bin
d none format/images 0700 root bin
f none format/images/gap.gif 0600 root bin
f none format/images/use.gif 0600 root bin
f none format/images/icon.gif 0600 root bin
f none format/copy_part_form.cgi 0700 root bin
f none format/edit_disk.cgi 0700 root bin
f none format/edit_part.cgi 0700 root bin
f none format/config 0600 root bin
f none format/fsck_form.cgi 0700 root bin
f none format/save_part.cgi 0700 root bin
f none format/newfs_form.cgi 0700 root bin
f none format/newfs.cgi 0700 root bin
f none format/fsck.cgi 0700 root bin
f none format/tunefs_form.cgi 0700 root bin
f none format/tunefs.cgi 0700 root bin
f none format/module.info 0600 root bin
f none format/config.info 0600 root bin
d none format/lang 0700 root bin
f none format/lang/en 0600 root bin
f none format/lang/de 0600 root bin
f none format/lang/sv 0600 root bin
f none format/lang/es 0600 root bin
f none format/lang/tr 0600 root bin
f none format/lang/zh_CN 0600 root bin
f none format/acl_security.pl 0600 root bin
f none format/defaultacl 0600 root bin
f none format/config.info.fr 0600 root bin
d none format/help 0700 root bin
f none format/help/help.html 0600 root bin
f none format/help/help.zh_TW.Big5.html 0600 root bin
f none format/help/help.sv.html 0600 root bin
f none format/help/help.es.html 0600 root bin
f none format/config.info.es 0600 root bin
f none format/config.info.zh_TW.Big5 0600 root bin
f none format/config.info.sv 0600 root bin
f none format/config.info.de 0600 root bin
f none format/config.info.tr 0600 root bin
f none format/config.info.pl 0600 root bin
f none format/config.info.zh_CN 0600 root bin
d none proc 0700 root bin
f none proc/edit_proc.cgi 0700 root bin
f none proc/proc-lib.pl 0600 root bin
f none proc/hpux-lib.pl 0600 root bin
f none proc/module.info 0600 root bin
f none proc/config.info 0600 root bin
f none proc/config-redhat-linux 0600 root bin
d none proc/images 0700 root bin
f none proc/images/icon.gif 0600 root bin
f none proc/index_size.cgi 0700 root bin
f none proc/config-slackware-linux 0600 root bin
f none proc/sysv-lib.pl 0600 root bin
f none proc/index_tree.cgi 0700 root bin
f none proc/linux-lib.pl 0600 root bin
f none proc/config-solaris 0600 root bin
f none proc/config-debian-linux 0600 root bin
f none proc/config-suse-linux 0600 root bin
f none proc/index.cgi 0700 root bin
f none proc/index_cpu.cgi 0700 root bin
f none proc/freebsd-lib.pl 0600 root bin
f none proc/config-hpux 0600 root bin
f none proc/kill_proc.cgi 0700 root bin
f none proc/index_user.cgi 0700 root bin
f none proc/config-freebsd 0600 root bin
f none proc/kill_proc_list.cgi 0700 root bin
f none proc/renice_proc.cgi 0700 root bin
f none proc/index_search.cgi 0700 root bin
f none proc/config-openserver 0600 root bin
f none proc/config-unixware 0600 root bin
f none proc/run.cgi 0700 root bin
f none proc/config-macos 0600 root bin
d none proc/help 0700 root bin
f none proc/help/tree.html 0600 root bin
f none proc/help/overview.html 0600 root bin
f none proc/help/user.html 0600 root bin
f none proc/help/size.html 0600 root bin
f none proc/help/cpu.html 0600 root bin
f none proc/help/search.html 0600 root bin
f none proc/help/suser.html 0600 root bin
f none proc/help/smatch.html 0600 root bin
f none proc/help/scpu.html 0600 root bin
f none proc/help/sfs.html 0600 root bin
f none proc/help/sfiles.html 0600 root bin
f none proc/help/run.html 0600 root bin
f none proc/help/cmd.html 0600 root bin
f none proc/help/mode.html 0600 root bin
f none proc/help/input.html 0600 root bin
f none proc/help/intro.html 0600 root bin
f none proc/help/nice.html 0600 root bin
f none proc/help/edit_proc.html 0600 root bin
f none proc/help/cmd.fr.html 0600 root bin
f none proc/help/cpu.fr.html 0600 root bin
f none proc/help/edit_proc.fr.html 0600 root bin
f none proc/help/input.fr.html 0600 root bin
f none proc/help/intro.fr.html 0600 root bin
f none proc/help/mode.fr.html 0600 root bin
f none proc/help/nice.fr.html 0600 root bin
f none proc/help/overview.fr.html 0600 root bin
f none proc/help/run.fr.html 0600 root bin
f none proc/help/scpu.fr.html 0600 root bin
f none proc/help/search.fr.html 0600 root bin
f none proc/help/sfiles.fr.html 0600 root bin
f none proc/help/sfs.fr.html 0600 root bin
f none proc/help/size.fr.html 0600 root bin
f none proc/help/smatch.fr.html 0600 root bin
f none proc/help/cmd.sv.html 0600 root bin
f none proc/help/tree.fr.html 0600 root bin
f none proc/help/user.fr.html 0600 root bin
f none proc/help/cpu.es.html 0600 root bin
f none proc/help/input.es.html 0600 root bin
f none proc/help/intro.es.html 0600 root bin
f none proc/help/mode.es.html 0600 root bin
f none proc/help/nice.es.html 0600 root bin
f none proc/help/overview.es.html 0600 root bin
f none proc/help/run.es.html 0600 root bin
f none proc/help/scpu.es.html 0600 root bin
f none proc/help/sfs.es.html 0600 root bin
f none proc/help/search.es.html 0600 root bin
f none proc/help/sfiles.es.html 0600 root bin
f none proc/help/size.es.html 0600 root bin
f none proc/help/smatch.es.html 0600 root bin
f none proc/help/suser.es.html 0600 root bin
f none proc/help/tree.es.html 0600 root bin
f none proc/help/user.es.html 0600 root bin
f none proc/help/cmd.es.html 0600 root bin
f none proc/help/edit_proc.es.html 0600 root bin
f none proc/help/suser.fr.html 0600 root bin
f none proc/help/cmd.zh_TW.Big5.html 0600 root bin
f none proc/help/cpu.zh_TW.Big5.html 0600 root bin
f none proc/help/edit_proc.zh_TW.Big5.html 0600 root bin
f none proc/help/input.zh_TW.Big5.html 0600 root bin
f none proc/help/intro.zh_TW.Big5.html 0600 root bin
f none proc/help/mode.zh_TW.Big5.html 0600 root bin
f none proc/help/nice.zh_TW.Big5.html 0600 root bin
f none proc/help/overview.zh_TW.Big5.html 0600 root bin
f none proc/help/run.zh_TW.Big5.html 0600 root bin
f none proc/help/scpu.zh_TW.Big5.html 0600 root bin
f none proc/help/search.zh_TW.Big5.html 0600 root bin
f none proc/help/sfiles.zh_TW.Big5.html 0600 root bin
f none proc/help/sfs.zh_TW.Big5.html 0600 root bin
f none proc/help/size.zh_TW.Big5.html 0600 root bin
f none proc/help/smatch.zh_TW.Big5.html 0600 root bin
f none proc/help/cpu.sv.html 0600 root bin
f none proc/help/suser.zh_TW.Big5.html 0600 root bin
f none proc/help/tree.zh_TW.Big5.html 0600 root bin
f none proc/help/user.zh_TW.Big5.html 0600 root bin
f none proc/help/edit_proc.sv.html 0600 root bin
f none proc/help/input.sv.html 0600 root bin
f none proc/help/intro.sv.html 0600 root bin
f none proc/help/mode.sv.html 0600 root bin
f none proc/help/nice.sv.html 0600 root bin
f none proc/help/overview.sv.html 0600 root bin
f none proc/help/run.sv.html 0600 root bin
f none proc/help/scpu.sv.html 0600 root bin
f none proc/help/search.sv.html 0600 root bin
f none proc/help/sfiles.sv.html 0600 root bin
f none proc/help/sfs.sv.html 0600 root bin
f none proc/help/size.sv.html 0600 root bin
f none proc/help/smatch.sv.html 0600 root bin
f none proc/help/suser.sv.html 0600 root bin
f none proc/help/tree.sv.html 0600 root bin
f none proc/help/user.sv.html 0600 root bin
f none proc/help/cmd.hu.html 0600 root bin
f none proc/help/cpu.hu.html 0600 root bin
f none proc/help/edit_proc.hu.html 0600 root bin
f none proc/help/input.hu.html 0600 root bin
f none proc/help/intro.hu.html 0600 root bin
f none proc/help/mode.hu.html 0600 root bin
f none proc/help/nice.hu.html 0600 root bin
f none proc/help/overview.hu.html 0600 root bin
f none proc/help/run.hu.html 0600 root bin
f none proc/help/scpu.hu.html 0600 root bin
f none proc/help/search.hu.html 0600 root bin
f none proc/help/sfiles.hu.html 0600 root bin
f none proc/help/sfs.hu.html 0600 root bin
f none proc/help/size.hu.html 0600 root bin
f none proc/help/smatch.hu.html 0600 root bin
f none proc/help/suser.hu.html 0600 root bin
f none proc/help/tree.hu.html 0600 root bin
f none proc/help/user.hu.html 0600 root bin
f none proc/help/cmd.pl.html 0600 root bin
f none proc/help/cpu.pl.html 0600 root bin
f none proc/help/edit_proc.pl.html 0600 root bin
f none proc/help/input.pl.html 0600 root bin
f none proc/help/intro.pl.html 0600 root bin
f none proc/help/mode.pl.html 0600 root bin
f none proc/help/nice.pl.html 0600 root bin
f none proc/help/overview.pl.html 0600 root bin
f none proc/help/run.pl.html 0600 root bin
f none proc/help/scpu.pl.html 0600 root bin
f none proc/help/search.pl.html 0600 root bin
f none proc/help/sfiles.pl.html 0600 root bin
f none proc/help/sfs.pl.html 0600 root bin
f none proc/help/size.pl.html 0600 root bin
f none proc/help/smatch.pl.html 0600 root bin
f none proc/help/suser.pl.html 0600 root bin
f none proc/help/tree.pl.html 0600 root bin
f none proc/help/user.pl.html 0600 root bin
f none proc/help/signore.html 0600 root bin
f none proc/help/signore.pl.html 0600 root bin
f none proc/macos-lib.pl 0600 root bin
f none proc/osf-lib.pl 0600 root bin
f none proc/index_run.cgi 0700 root bin
f none proc/config-osf1 0600 root bin
f none proc/config-irix 0600 root bin
f none proc/acl_security.pl 0600 root bin
f none proc/defaultacl 0600 root bin
d none proc/lang 0700 root bin
f none proc/lang/ru_SU 0600 root bin
f none proc/lang/en 0600 root bin
f none proc/lang/es 0600 root bin
f none proc/lang/de 0600 root bin
f none proc/lang/fr 0600 root bin
f none proc/lang/pt 0600 root bin
f none proc/lang/zh_TW.Big5 0600 root bin
f none proc/lang/sv 0600 root bin
f none proc/lang/zh_CN 0600 root bin
f none proc/lang/hu 0600 root bin
f none proc/lang/tr 0600 root bin
f none proc/lang/pl 0600 root bin
f none proc/lang/ru_RU 0600 root bin
f none proc/config-open-linux 0600 root bin
f none proc/config.info.de 0600 root bin
f none proc/config-turbo-linux 0600 root bin
f none proc/config-corel-linux 0600 root bin
f none proc/config.info.fr 0600 root bin
f none proc/config.info.es 0600 root bin
f none proc/config.info.ru_SU 0600 root bin
f none proc/config-cobalt-linux 0600 root bin
f none proc/config.info.hu 0600 root bin
f none proc/config.info.zh_TW.Big5 0600 root bin
f none proc/config.info.sv 0600 root bin
f none proc/config.info.zh_CN 0600 root bin
f none proc/log_parser.pl 0600 root bin
f none proc/config.info.tr 0600 root bin
f none proc/config.info.pl 0600 root bin
f none proc/low.skill 0600 root bin
f none proc/medium.skill 0600 root bin
f none proc/medium.risk 0600 root bin
f none proc/config-aix 0600 root bin
f none proc/config.info.ru_RU 0600 root bin
d none webmin 0700 root bin
d none webmin/images 0700 root bin
f none webmin/images/icon.gif 0600 root bin
f none webmin/images/startpage.gif 0600 root bin
f none webmin/images/upgrade.gif 0600 root bin
f none webmin/images/log.gif 0600 root bin
f none webmin/images/proxy.gif 0600 root bin
f none webmin/images/mods.gif 0600 root bin
f none webmin/images/bind.gif 0600 root bin
f none webmin/images/access.gif 0600 root bin
f none webmin/images/ssl.gif 0600 root bin
f none webmin/images/ca.gif 0600 root bin
f none webmin/images/os.gif 0600 root bin
f none webmin/images/lang.gif 0600 root bin
f none webmin/images/ui.gif 0600 root bin
f none webmin/images/session.gif 0600 root bin
f none webmin/images/categories.gif 0600 root bin
f none webmin/images/assignment.gif 0600 root bin
f none webmin/images/referers.gif 0600 root bin
f none webmin/images/themes.gif 0600 root bin
f none webmin/images/syslet.gif 0600 root bin
f none webmin/webmin-lib.pl 0600 root bin
f none webmin/module.info 0600 root bin
f none webmin/index.cgi 0700 root bin
f none webmin/install_mod.cgi 0700 root bin
f none webmin/change_access.cgi 0700 root bin
f none webmin/delete_mod.cgi 0700 root bin
f none webmin/change_log.cgi 0700 root bin
f none webmin/change_bind.cgi 0700 root bin
f none webmin/change_ssl.cgi 0700 root bin
f none webmin/change_proxy.cgi 0700 root bin
f none webmin/edit_access.cgi 0700 root bin
f none webmin/edit_bind.cgi 0700 root bin
f none webmin/edit_log.cgi 0700 root bin
f none webmin/edit_ssl.cgi 0700 root bin
f none webmin/edit_proxy.cgi 0700 root bin
f none webmin/edit_mods.cgi 0700 root bin
f none webmin/change_ui.cgi 0700 root bin
f none webmin/edit_session.cgi 0700 root bin
f none webmin/edit_os.cgi 0700 root bin
d none webmin/lang 0700 root bin
f none webmin/lang/ru_SU 0600 root bin
f none webmin/lang/en 0600 root bin
f none webmin/lang/es 0600 root bin
f none webmin/lang/de 0600 root bin
f none webmin/lang/fr 0600 root bin
f none webmin/lang/pt 0600 root bin
f none webmin/lang/zh_TW.Big5 0600 root bin
f none webmin/lang/sv 0600 root bin
f none webmin/lang/zh_CN 0600 root bin
f none webmin/lang/it 0600 root bin
f none webmin/lang/hu 0600 root bin
f none webmin/lang/he 0600 root bin
f none webmin/lang/tr 0600 root bin
f none webmin/lang/pl 0600 root bin
f none webmin/lang/nl 0700 root bin
f none webmin/lang/ru_RU 0600 root bin
f none webmin/change_os.cgi 0700 root bin
f none webmin/clone_mod.cgi 0700 root bin
f none webmin/edit_lang.cgi 0700 root bin
f none webmin/change_startpage.cgi 0700 root bin
f none webmin/change_lang.cgi 0700 root bin
f none webmin/edit_startpage.cgi 0700 root bin
f none webmin/edit_upgrade.cgi 0700 root bin
f none webmin/upgrade.cgi 0700 root bin
f none webmin/edit_ui.cgi 0700 root bin
f none webmin/edit_ca.cgi 0700 root bin
f none webmin/change_ca.cgi 0700 root bin
f none webmin/stop_ca.cgi 0700 root bin
f none webmin/setup_ca.cgi 0700 root bin
f none webmin/low.skill 0600 root bin
f none webmin/change_session.cgi 0700 root bin
f none webmin/edit_assignment.cgi 0700 root bin
f none webmin/save_categories.cgi 0700 root bin
f none webmin/save_assignment.cgi 0700 root bin
f none webmin/log_parser.pl 0600 root bin
f none webmin/edit_categories.cgi 0700 root bin
f none webmin/medium.skill 0600 root bin
f none webmin/medium.risk 0600 root bin
f none webmin/low.risk 0600 root bin
f none webmin/edit_themes.cgi 0600 root bin
f none webmin/install_theme.cgi 0700 root bin
f none webmin/change_theme.cgi 0700 root bin
f none webmin/edit_referers.cgi 0700 root bin
f none webmin/change_referers.cgi 0700 root bin
f none webmin/edit_syslet.cgi 0600 root bin
f none webmin/change_syslet.cgi 0700 root bin
d none quota 0700 root bin
d none quota/images 0700 root bin
f none quota/images/icon.gif 0600 root bin
f none quota/module.info 0600 root bin
f none quota/list_users.cgi 0700 root bin
f none quota/index.cgi 0700 root bin
f none quota/list_groups.cgi 0700 root bin
f none quota/quota-lib.pl 0700 root bin
f none quota/activate.cgi 0700 root bin
f none quota/config-hpux 0600 root bin
f none quota/notes 0700 root bin
f none quota/config.info 0600 root bin
f none quota/hpux-lib.pl 0600 root bin
f none quota/edquota.pl 0700 root bin
f none quota/copy_user.cgi 0700 root bin
f none quota/save_sync.cgi 0700 root bin
f none quota/config-redhat-linux 0600 root bin
d none quota/help 0700 root bin
f none quota/help/intro.html 0600 root bin
f none quota/help/list_users.html 0600 root bin
f none quota/help/edit_user_quota.html 0600 root bin
f none quota/help/user_grace.html 0600 root bin
f none quota/help/user_filesys.html 0600 root bin
f none quota/help/copy_user.html 0600 root bin
f none quota/help/copy_group.html 0600 root bin
f none quota/help/list_groups.html 0600 root bin
f none quota/help/edit_group_quota.html 0600 root bin
f none quota/help/group_grace.html 0600 root bin
f none quota/help/group_filesys.html 0600 root bin
f none quota/help/copy_group.fr.html 0600 root bin
f none quota/help/copy_user.fr.html 0600 root bin
f none quota/help/edit_group_quota.fr.html 0600 root bin
f none quota/help/edit_user_quota.fr.html 0600 root bin
f none quota/help/group_filesys.fr.html 0600 root bin
f none quota/help/group_grace.fr.html 0600 root bin
f none quota/help/intro.fr.html 0600 root bin
f none quota/help/list_groups.fr.html 0600 root bin
f none quota/help/list_users.fr.html 0600 root bin
f none quota/help/user_filesys.fr.html 0600 root bin
f none quota/help/user_grace.fr.html 0600 root bin
f none quota/help/copy_user.es.html 0600 root bin
f none quota/help/intro.es.html 0600 root bin
f none quota/help/group_grace.es.html 0600 root bin
f none quota/help/edit_user_quota.es.html 0600 root bin
f none quota/help/group_filesys.es.html 0600 root bin
f none quota/help/list_groups.es.html 0600 root bin
f none quota/help/list_users.es.html 0600 root bin
f none quota/help/user_filesys.es.html 0600 root bin
f none quota/help/user_grace.es.html 0600 root bin
f none quota/help/copy_group.es.html 0600 root bin
f none quota/help/edit_group_quota.es.html 0600 root bin
f none quota/help/copy_group.zh_TW.Big5.html 0600 root bin
f none quota/help/copy_user.zh_TW.Big5.html 0600 root bin
f none quota/help/edit_group_quota.zh_TW.Big5.html 0600 root bin
f none quota/help/edit_user_quota.zh_TW.Big5.html 0600 root bin
f none quota/help/group_filesys.zh_TW.Big5.html 0600 root bin
f none quota/help/group_grace.zh_TW.Big5.html 0600 root bin
f none quota/help/intro.zh_TW.Big5.html 0600 root bin
f none quota/help/list_users.zh_TW.Big5.html 0600 root bin
f none quota/help/user_filesys.zh_TW.Big5.html 0600 root bin
f none quota/help/user_grace.zh_TW.Big5.html 0600 root bin
f none quota/help/copy_group.sv.html 0600 root bin
f none quota/help/copy_user.sv.html 0600 root bin
f none quota/help/edit_group_quota.sv.html 0600 root bin
f none quota/help/edit_user_quota.sv.html 0600 root bin
f none quota/help/group_filesys.sv.html 0600 root bin
f none quota/help/group_grace.sv.html 0600 root bin
f none quota/help/intro.sv.html 0600 root bin
f none quota/help/list_groups.sv.html 0600 root bin
f none quota/help/list_users.sv.html 0600 root bin
f none quota/help/user_filesys.sv.html 0600 root bin
f none quota/help/user_grace.sv.html 0600 root bin
f none quota/help/copy_group.pl.html 0600 root bin
f none quota/help/copy_user.pl.html 0600 root bin
f none quota/help/edit_group_quota.pl.html 0600 root bin
f none quota/help/edit_user_quota.pl.html 0600 root bin
f none quota/help/group_filesys.pl.html 0600 root bin
f none quota/help/group_grace.pl.html 0600 root bin
f none quota/help/intro.pl.html 0600 root bin
f none quota/help/list_groups.pl.html 0600 root bin
f none quota/help/list_users.pl.html 0600 root bin
f none quota/help/user_filesys.pl.html 0600 root bin
f none quota/help/user_grace.pl.html 0600 root bin
f none quota/check_quotas.cgi 0700 root bin
f none quota/linux-lib.pl 0600 root bin
f none quota/solaris-lib.pl 0700 root bin
f none quota/openbsd-lib.pl 0600 root bin
f none quota/edgrace.pl 0700 root bin
f none quota/config-debian-linux 0600 root bin
f none quota/config-solaris 0600 root bin
f none quota/copy_group.cgi 0700 root bin
f none quota/config-suse-linux 0600 root bin
f none quota/user_filesys.cgi 0700 root bin
f none quota/config-slackware-linux 0600 root bin
f none quota/copy_user_form.cgi 0700 root bin
f none quota/defaultacl 0600 root bin
f none quota/edit_user_quota.cgi 0700 root bin
f none quota/unixware-lib.pl 0700 root bin
f none quota/save_user_quota.cgi 0700 root bin
f none quota/edit_group_quota.cgi 0700 root bin
f none quota/save_group_quota.cgi 0700 root bin
f none quota/user_grace_form.cgi 0700 root bin
f none quota/config-freebsd 0600 root bin
f none quota/group_filesys.cgi 0700 root bin
f none quota/user_grace_save.cgi 0700 root bin
f none quota/copy_group_form.cgi 0700 root bin
f none quota/group_grace_form.cgi 0700 root bin
d none quota/lang 0700 root bin
f none quota/lang/es 0600 root bin
f none quota/lang/pt 0600 root bin
f none quota/lang/sv 0600 root bin
f none quota/lang/en 0600 root bin
f none quota/lang/zh_CN 0600 root bin
f none quota/lang/tr 0600 root bin
f none quota/lang/pl 0600 root bin
f none quota/group_grace_save.cgi 0700 root bin
f none quota/cobalt-linux-lib.pl 0600 root bin
f none quota/corel-linux-lib.pl 0600 root bin
f none quota/debian-linux-lib.pl 0600 root bin
f none quota/open-linux-lib.pl 0600 root bin
f none quota/acl_security.pl 0600 root bin
f none quota/config-unixware 0600 root bin
f none quota/useradmin_update.pl 0600 root bin
f none quota/config.info.tr 0600 root bin
f none quota/config-open-linux 0600 root bin
f none quota/redhat-linux-lib.pl 0600 root bin
f none quota/config-turbo-linux 0600 root bin
f none quota/suse-linux-lib.pl 0600 root bin
f none quota/config-openbsd 0600 root bin
f none quota/freebsd-lib.pl 0600 root bin
f none quota/config-corel-linux 0600 root bin
f none quota/turbo-linux-lib.pl 0600 root bin
f none quota/config.info.fr 0600 root bin
f none quota/config.info.ru_SU 0600 root bin
f none quota/config.info.es 0600 root bin
f none quota/config-cobalt-linux 0600 root bin
f none quota/slackware-linux-lib.pl 0600 root bin
f none quota/config.info.zh_TW.Big5 0600 root bin
f none quota/config.info.sv 0600 root bin
f none quota/config.info.de 0600 root bin
f none quota/config.info.zh_CN 0600 root bin
f none quota/log_parser.pl 0600 root bin
f none quota/config.info.pl 0600 root bin
f none quota/config.info.ru_RU 0600 root bin
d none software 0700 root bin
d none software/images 0700 root bin
f none software/images/icon.gif 0600 root bin
f none software/images/pack.gif 0600 root bin
f none software/images/open.gif 0600 root bin
f none software/images/close.gif 0600 root bin
f none software/config-unixware 0600 root bin
f none software/config.info 0600 root bin
f none software/config-redhat-linux 0600 root bin
f none software/delete_pack.cgi 0700 root bin
f none software/do_install.cgi 0700 root bin
f none software/config-solaris 0600 root bin
f none software/edit_pack.cgi 0700 root bin
f none software/config-suse-linux 0600 root bin
f none software/file_info.cgi 0700 root bin
f none software/index.cgi 0700 root bin
f none software/install_pack.cgi 0700 root bin
f none software/list_pack.cgi 0700 root bin
d none software/help 0700 root bin
f none software/help/edit_pack.html 0600 root bin
f none software/help/intro.html 0600 root bin
f none software/help/replacefiles.html 0600 root bin
f none software/help/list_pack.html 0600 root bin
f none software/help/file_info.html 0600 root bin
f none software/help/search.html 0600 root bin
f none software/help/install.html 0600 root bin
f none software/help/replacepkgs.html 0600 root bin
f none software/help/oldpackage.html 0600 root bin
f none software/help/nodeps.html 0600 root bin
f none software/help/noscripts.html 0600 root bin
f none software/help/excludedocs.html 0600 root bin
f none software/help/upgrade.html 0600 root bin
f none software/help/root.html 0600 root bin
f none software/help/delete.html 0600 root bin
f none software/help/delete.fr.html 0600 root bin
f none software/help/edit_pack.fr.html 0600 root bin
f none software/help/excludedocs.fr.html 0600 root bin
f none software/help/file_info.fr.html 0600 root bin
f none software/help/install.fr.html 0600 root bin
f none software/help/intro.fr.html 0600 root bin
f none software/help/list_pack.fr.html 0600 root bin
f none software/help/nodeps.fr.html 0600 root bin
f none software/help/noscripts.fr.html 0600 root bin
f none software/help/oldpackage.fr.html 0600 root bin
f none software/help/replacefiles.fr.html 0600 root bin
f none software/help/replacepkgs.fr.html 0600 root bin
f none software/help/root.fr.html 0600 root bin
f none software/help/search.fr.html 0600 root bin
f none software/help/upgrade.fr.html 0600 root bin
f none software/help/delete.es.html 0600 root bin
f none software/help/edit_pack.es.html 0600 root bin
f none software/help/excludedocs.es.html 0600 root bin
f none software/help/file_info.es.html 0600 root bin
f none software/help/install.es.html 0600 root bin
f none software/help/intro.es.html 0600 root bin
f none software/help/list_pack.es.html 0600 root bin
f none software/help/nodeps.es.html 0600 root bin
f none software/help/noscripts.es.html 0600 root bin
f none software/help/oldpackage.es.html 0600 root bin
f none software/help/replacefiles.es.html 0600 root bin
f none software/help/replacepkgs.es.html 0600 root bin
f none software/help/root.es.html 0600 root bin
f none software/help/search.es.html 0600 root bin
f none software/help/upgrade.es.html 0600 root bin
f none software/help/delete.zh_TW.Big5.html 0600 root bin
f none software/help/edit_pack.zh_TW.Big5.html 0600 root bin
f none software/help/excludedocs.zh_TW.Big5.html 0600 root bin
f none software/help/file_info.zh_TW.Big5.html 0600 root bin
f none software/help/install.zh_TW.Big5.html 0600 root bin
f none software/help/intro.zh_TW.Big5.html 0600 root bin
f none software/help/list_pack.zh_TW.Big5.html 0600 root bin
f none software/help/nodeps.zh_TW.Big5.html 0600 root bin
f none software/help/noscripts.zh_TW.Big5.html 0600 root bin
f none software/help/oldpackage.zh_TW.Big5.html 0600 root bin
f none software/help/replacefiles.zh_TW.Big5.html 0600 root bin
f none software/help/replacepkgs.zh_TW.Big5.html 0600 root bin
f none software/help/root.zh_TW.Big5.html 0600 root bin
f none software/help/search.zh_TW.Big5.html 0600 root bin
f none software/help/upgrade.zh_TW.Big5.html 0600 root bin
f none software/help/delete.sv.html 0600 root bin
f none software/help/edit_pack.sv.html 0600 root bin
f none software/help/excludedocs.sv.html 0600 root bin
f none software/help/file_info.sv.html 0600 root bin
f none software/help/install.sv.html 0600 root bin
f none software/help/intro.sv.html 0600 root bin
f none software/help/list_pack.sv.html 0600 root bin
f none software/help/nodeps.sv.html 0600 root bin
f none software/help/noscripts.sv.html 0600 root bin
f none software/help/oldpackage.sv.html 0600 root bin
f none software/help/replacefiles.sv.html 0600 root bin
f none software/help/replacepkgs.sv.html 0600 root bin
f none software/help/root.sv.html 0600 root bin
f none software/help/search.sv.html 0600 root bin
f none software/help/upgrade.sv.html 0600 root bin
f none software/help/delete.hu.html 0600 root bin
f none software/help/edit_pack.hu.html 0600 root bin
f none software/help/excludedocs.hu.html 0600 root bin
f none software/help/delete.pl.html 0600 root bin
f none software/help/edit_pack.pl.html 0600 root bin
f none software/help/excludedocs.pl.html 0600 root bin
f none software/help/file_info.pl.html 0600 root bin
f none software/help/install.pl.html 0600 root bin
f none software/help/intro.pl.html 0600 root bin
f none software/help/list_pack.pl.html 0600 root bin
f none software/help/nodeps.pl.html 0600 root bin
f none software/help/noscripts.pl.html 0600 root bin
f none software/help/oldpackage.pl.html 0600 root bin
f none software/help/replacefiles.pl.html 0600 root bin
f none software/help/replacepkgs.pl.html 0600 root bin
f none software/help/root.pl.html 0600 root bin
f none software/help/search.pl.html 0600 root bin
f none software/help/upgrade.pl.html 0600 root bin
f none software/module.info 0600 root bin
f none software/pkgadd-lib.pl 0600 root bin
f none software/rpm-lib.pl 0600 root bin
f none software/software-lib.pl 0600 root bin
f none software/close.cgi 0700 root bin
f none software/open.cgi 0700 root bin
f none software/closeall.cgi 0700 root bin
f none software/openall.cgi 0700 root bin
f none software/search.cgi 0700 root bin
f none software/config-hpux 0600 root bin
f none software/hpux-lib.pl 0600 root bin
f none software/delete_file.cgi 0700 root bin
d none software/lang 0700 root bin
f none software/lang/en 0600 root bin
f none software/lang/pl 0600 root bin
f none software/lang/ru_SU 0600 root bin
f none software/lang/es 0600 root bin
f none software/lang/de 0600 root bin
f none software/lang/fr 0600 root bin
f none software/lang/pt 0600 root bin
f none software/lang/zh_TW.Big5 0600 root bin
f none software/lang/sv 0600 root bin
f none software/lang/zh_CN 0600 root bin
f none software/lang/hu 0600 root bin
f none software/lang/tr 0600 root bin
f none software/lang/ru_RU 0600 root bin
f none software/config-openserver 0600 root bin
f none software/config-open-linux 0600 root bin
f none software/freebsd-lib.pl 0600 root bin
f none software/config-freebsd 0600 root bin
f none software/config.info.de 0600 root bin
f none software/config-slackware-linux 0600 root bin
f none software/config-turbo-linux 0600 root bin
f none software/slackware-lib.pl 0600 root bin
f none software/debian-lib.pl 0600 root bin
f none software/config-debian-linux 0600 root bin
f none software/config-openbsd 0600 root bin
f none software/openbsd-lib.pl 0600 root bin
f none software/config-corel-linux 0600 root bin
f none software/config.info.fr 0600 root bin
f none software/config.info.es 0600 root bin
f none software/config.info.ru_SU 0600 root bin
f none software/config-cobalt-linux 0600 root bin
f none software/log_parser.pl 0600 root bin
f none software/config.info.zh_TW.Big5 0600 root bin
f none software/config.info.sv 0600 root bin
f none software/config.info.zh_CN 0600 root bin
f none software/config.info.tr 0600 root bin
f none software/config.info.pl 0600 root bin
f none software/config.info.ru_RU 0600 root bin
f none software/apt_upgrade.cgi 0700 root bin
f none software/rhn-lib.pl 0600 root bin
f none software/rhn.cgi 0700 root bin
f none software/rhn_check.cgi 0600 root bin
f none software/apt-lib.pl 0600 root bin
d none acl 0700 root bin
f none acl/edit_user.cgi 0700 root bin
f none acl/index.cgi 0700 root bin
f none acl/acl-lib.pl 0600 root bin
f none acl/module.info 0600 root bin
d none acl/images 0700 root bin
f none acl/images/empty.gif 0600 root bin
f none acl/images/tick.gif 0600 root bin
f none acl/images/icon.gif 0600 root bin
f none acl/save_user.cgi 0700 root bin
f none acl/delete_user.cgi 0700 root bin
f none acl/edit_acl.cgi 0700 root bin
f none acl/save_acl.cgi 0700 root bin
f none acl/useradmin_update.pl 0600 root bin
f none acl/acl_security.pl 0600 root bin
d none acl/lang 0700 root bin
f none acl/lang/en 0600 root bin
f none acl/lang/ru_SU 0600 root bin
f none acl/lang/es 0600 root bin
f none acl/lang/de 0600 root bin
f none acl/lang/fr 0600 root bin
f none acl/lang/pt 0600 root bin
f none acl/lang/zh_TW.Big5 0600 root bin
f none acl/lang/sv 0600 root bin
f none acl/lang/it 0600 root bin
f none acl/lang/zh_CN 0600 root bin
f none acl/lang/tr 0600 root bin
f none acl/lang/pl 0600 root bin
f none acl/lang/hu 0600 root bin
f none acl/lang/nl 0700 root bin
f none acl/lang/ru_RU 0600 root bin
f none acl/lang/ja_JP.euc 0600 root bin
f none acl/defaultacl 0600 root bin
f none acl/log_parser.pl 0600 root bin
f none acl/cert_form.cgi 0700 root bin
f none acl/cert_issue.cgi 0700 root bin
f none acl/config.info 0600 root bin
f none acl/config 0600 root bin
f none acl/openssl.cnf 0600 root bin
f none acl/config.info.zh_TW.Big5 0600 root bin
f none acl/cert_output.cgi 0700 root bin
f none acl/convert.cgi 0700 root bin
f none acl/config-freebsd 0600 root bin
f none acl/config-debian-linux 0600 root bin
f none acl/config.info.de 0600 root bin
f none acl/config-redhat-linux 0600 root bin
f none acl/config.info.es 0600 root bin
f none acl/config.info.sv 0600 root bin
f none acl/config.info.tr 0600 root bin
f none acl/config.info.pl 0600 root bin
f none acl/config.info.hu 0600 root bin
f none acl/config.info.zh_CN 0600 root bin
f none acl/config-open-linux-3.1e 0600 root bin
f none acl/delete_group.cgi 0600 root bin
f none acl/edit_group.cgi 0600 root bin
f none acl/save_group.cgi 0700 root bin
f none acl/config.info.nl 0700 root bin
f none acl/config.info.ja_JP.euc 0600 root bin
f none acl/config.info.ru_SU 0600 root bin
f none acl/config.info.ru_RU 0600 root bin
f none acl/convert_form.cgi 0700 root bin
d none apache 0700 root bin
d none apache/images 0700 root bin
f none apache/images/icon.gif 0600 root bin
f none apache/images/recon.gif 0600 root bin
f none apache/images/dir.gif 0600 root bin
f none apache/images/virt.gif 0600 root bin
f none apache/images/def.gif 0600 root bin
f none apache/images/doc.gif 0600 root bin
f none apache/images/virt_index.gif 0600 root bin
f none apache/images/type_icon_3.gif 0600 root bin
f none apache/images/type_icon_4.gif 0600 root bin
f none apache/images/type_icon_5.gif 0600 root bin
f none apache/images/type_icon_6.gif 0600 root bin
f none apache/images/type_icon_7.gif 0600 root bin
f none apache/images/type_icon_9.gif 0600 root bin
f none apache/images/type_icon_10.gif 0600 root bin
f none apache/images/type_icon_11.gif 0600 root bin
f none apache/images/type_icon_13.gif 0600 root bin
f none apache/images/type_icon_0.gif 0600 root bin
f none apache/images/type_icon_1.gif 0600 root bin
f none apache/images/type_icon_2.gif 0600 root bin
f none apache/images/type_icon_8.gif 0600 root bin
f none apache/images/type_icon_12.gif 0600 root bin
f none apache/images/show.gif 0600 root bin
f none apache/images/type_icon_14.gif 0600 root bin
f none apache/images/defines.gif 0600 root bin
f none apache/images/edit.gif 0600 root bin
f none apache/module.info 0600 root bin
f none apache/apache-lib.pl 0600 root bin
f none apache/notes 0600 root bin
f none apache/config-redhat-linux 0600 root bin
f none apache/index.cgi 0700 root bin
f none apache/config.info.nl 0700 root bin
f none apache/config.info.de 0600 root bin
f none apache/config.info 0600 root bin
f none apache/core.pl 0600 root bin
f none apache/config-slackware-linux 0600 root bin
f none apache/config-macos-1.3 0600 root bin
f none apache/config-openbsd 0600 root bin
f none apache/show_files.cgi 0700 root bin
f none apache/reconfig.cgi 0700 root bin
f none apache/config-osf1 0600 root bin
f none apache/config-turbo-linux 0600 root bin
f none apache/config-irix 0600 root bin
f none apache/edit_virt.cgi 0700 root bin
f none apache/config.info.fr 0600 root bin
f none apache/save_gmime_type.cgi 0700 root bin
f none apache/config-slackware-linux-7.0 0600 root bin
f none apache/edit_gmime_type.cgi 0700 root bin
f none apache/config-corel-linux 0600 root bin
f none apache/config.info.ru_SU 0600 root bin
f none apache/config.info.ru_RU 0600 root bin
f none apache/dir_index.cgi 0700 root bin
f none apache/config.info.es 0600 root bin
f none apache/virt_index.cgi 0700 root bin
f none apache/show_htaccess.cgi 0700 root bin
f none apache/config-open-linux-2.4 0600 root bin
f none apache/mod_mime.pl 0600 root bin
f none apache/mod_alias.pl 0600 root bin
f none apache/mod_actions.pl 0600 root bin
f none apache/mod_dir.pl 0600 root bin
f none apache/mod_userdir.pl 0600 root bin
f none apache/mod_log_config.pl 0600 root bin
f none apache/stop.cgi 0700 root bin
d none apache/lang 0700 root bin
f none apache/lang/ru_SU 0600 root bin
f none apache/lang/en 0600 root bin
f none apache/lang/es 0600 root bin
f none apache/lang/de 0600 root bin
f none apache/lang/fr 0600 root bin
f none apache/lang/nl 0700 root bin
f none apache/lang/pt 0600 root bin
f none apache/lang/zh_TW.Big5 0600 root bin
f none apache/lang/sv 0600 root bin
f none apache/lang/it 0600 root bin
f none apache/lang/hu 0600 root bin
f none apache/lang/tr 0600 root bin
f none apache/lang/zh_CN 0600 root bin
f none apache/lang/pl 0600 root bin
f none apache/lang/ru_RU 0600 root bin
f none apache/mod_auth.pl 0600 root bin
f none apache/mod_log_common.pl 0600 root bin
f none apache/mod_log_agent.pl 0600 root bin
f none apache/mod_log_referer.pl 0600 root bin
f none apache/mod_autoindex.pl 0600 root bin
f none apache/mod_include.pl 0600 root bin
f none apache/mod_speling.pl 0600 root bin
f none apache/list_authusers.cgi 0700 root bin
f none apache/mod_setenvif.pl 0600 root bin
f none apache/mod_browser.pl 0600 root bin
f none apache/mod_env.pl 0600 root bin
f none apache/mod_cern_meta.pl 0600 root bin
f none apache/mod_access.pl 0600 root bin
f none apache/mod_auth_dbm.pl 0600 root bin
f none apache/mod_mime_magic.pl 0600 root bin
f none apache/mod_proxy.pl 0600 root bin
f none apache/files_index.cgi 0700 root bin
f none apache/mod_negotiation.pl 0600 root bin
f none apache/mod_cgi.pl 0600 root bin
f none apache/browsermatch.pl 0600 root bin
f none apache/mod_imap.pl 0600 root bin
f none apache/mod_asis.pl 0600 root bin
f none apache/restart.cgi 0700 root bin
f none apache/edit_global.cgi 0700 root bin
f none apache/save_global.cgi 0700 root bin
f none apache/edit_dir.cgi 0700 root bin
f none apache/autoindex.pl 0600 root bin
f none apache/save_virt.cgi 0700 root bin
f none apache/save_dir.cgi 0700 root bin
f none apache/change_dir.cgi 0700 root bin
f none apache/create_dir.cgi 0700 root bin
f none apache/start.cgi 0700 root bin
f none apache/find_htaccess.cgi 0700 root bin
f none apache/htaccess_index.cgi 0700 root bin
f none apache/edit_htaccess.cgi 0700 root bin
f none apache/save_htaccess.cgi 0700 root bin
f none apache/edit_files.cgi 0700 root bin
f none apache/save_files.cgi 0700 root bin
f none apache/change_files.cgi 0700 root bin
f none apache/delete_htaccess.cgi 0700 root bin
f none apache/create_files.cgi 0700 root bin
f none apache/create_htaccess.cgi 0700 root bin
f none apache/auth-lib.pl 0600 root bin
f none apache/mod_info.pl 0600 root bin
f none apache/edit_authuser.cgi 0700 root bin
f none apache/htaccess.cgi 0700 root bin
f none apache/save_authuser.cgi 0700 root bin
f none apache/list_authgroups.cgi 0700 root bin
f none apache/edit_authgroup.cgi 0700 root bin
f none apache/save_authgroup.cgi 0700 root bin
f none apache/config_solaris.txt.1.25 0600 root bin
f none apache/mod_status.pl 0600 root bin
f none apache/create_virt.cgi 0700 root bin
f none apache/reconfig_form.cgi 0700 root bin
f none apache/mod_expires.pl.broken 0600 root bin
f none apache/config-debian-linux 0600 root bin
f none apache/config-suse-linux 0600 root bin
f none apache/config-aix 0600 root bin
f none apache/config-hpux 0600 root bin
f none apache/edit_vserv.cgi 0700 root bin
f none apache/save_vserv.cgi 0700 root bin
f none apache/config-solaris 0600 root bin
f none apache/defaultacl 0600 root bin
f none apache/config-freebsd 0600 root bin
f none apache/show_virt.cgi 0700 root bin
f none apache/show_dir.cgi 0700 root bin
f none apache/save_sync.cgi 0700 root bin
f none apache/config-open-linux-3.1e 0600 root bin
f none apache/config-redhat-linux-7.1 0600 root bin
f none apache/config-suse-linux-7.1 0600 root bin
f none apache/acl_security.pl 0600 root bin
f none apache/useradmin_update.pl 0600 root bin
f none apache/config-cobalt-linux 0600 root bin
f none apache/config-unixware 0600 root bin
f none apache/config-openserver 0600 root bin
f none apache/config-macos 0600 root bin
f none apache/mod_ssl.pl 0600 root bin
f none apache/mod_perl.pl 0600 root bin
f none apache/mod_php.pl 0600 root bin
f none apache/show.cgi 0700 root bin
f none apache/mod_php3.pl 0600 root bin
f none apache/edit_defines.cgi 0700 root bin
f none apache/save_defines.cgi 0700 root bin
f none apache/config-open-linux-2.3e 0600 root bin
f none apache/config-open-linux-2.3 0600 root bin
f none apache/config-lfs-linux 0600 root bin
f none apache/manual_save.cgi 0700 root bin
f none apache/manual_form.cgi 0700 root bin
f none apache/config.info.zh_TW.Big5 0600 root bin
f none apache/config.info.zh_CN 0600 root bin
f none apache/config-open-linux-2.5 0600 root bin
f none apache/config.info.hu 0600 root bin
f none apache/log_parser.pl 0600 root bin
f none apache/mod_php4.pl 0600 root bin
f none apache/config.info.sv 0600 root bin
f none apache/config-slackware-linux-7.1 0600 root bin
f none apache/config.info.tr 0600 root bin
f none apache/config.info.pl 0600 root bin
f none apache/config-redhat-linux-7.0 0600 root bin
d none lpadmin 0700 root bin
f none lpadmin/lpadmin-lib.pl 0600 root bin
f none lpadmin/old-caldera-driver.pl 0600 root bin
f none lpadmin/solaris-lib.pl 0600 root bin
f none lpadmin/index.cgi 0700 root bin
f none lpadmin/log_parser.pl 0600 root bin
f none lpadmin/config.info 0600 root bin
f none lpadmin/drivers 0600 root bin
f none lpadmin/freebsd-lib.pl 0600 root bin
d none lpadmin/images 0700 root bin
f none lpadmin/images/icon.gif 0600 root bin
f none lpadmin/module.info 0600 root bin
f none lpadmin/edit_printer.cgi 0700 root bin
f none lpadmin/openbsd-lib.pl 0600 root bin
f none lpadmin/config.info.tr 0600 root bin
f none lpadmin/config.info.pl 0600 root bin
f none lpadmin/config-redhat-linux-7.0 0600 root bin
f none lpadmin/stp 0600 root bin
f none lpadmin/sortdrivers.pl 0700 root bin
f none lpadmin/save_printer.cgi 0700 root bin
f none lpadmin/stop.cgi 0700 root bin
f none lpadmin/hpux-lib.pl 0600 root bin
f none lpadmin/cancel_all.cgi 0700 root bin
f none lpadmin/config-solaris 0600 root bin
f none lpadmin/delete_printer.cgi 0700 root bin
f none lpadmin/config-slackware-linux 0600 root bin
f none lpadmin/config-openbsd 0600 root bin
f none lpadmin/config.info.hu 0600 root bin
f none lpadmin/list_jobs.cgi 0700 root bin
f none lpadmin/bw.ps 0600 root bin
f none lpadmin/cancel_job.cgi 0700 root bin
f none lpadmin/redhat-driver.pl 0600 root bin
f none lpadmin/hpux-driver.pl 0600 root bin
f none lpadmin/config-redhat-linux 0600 root bin
f none lpadmin/linux-lib.pl 0600 root bin
f none lpadmin/colour.fig 0600 root bin
f none lpadmin/config-suse-linux 0600 root bin
f none lpadmin/config-debian-linux 0600 root bin
f none lpadmin/config-freebsd 0600 root bin
f none lpadmin/base_coas_driver 0700 root bin
f none lpadmin/config-hpux 0600 root bin
f none lpadmin/test_print.cgi 0600 root bin
f none lpadmin/start.cgi 0700 root bin
f none lpadmin/ascii.txt 0600 root bin
f none lpadmin/bw.fig 0600 root bin
d none lpadmin/lang 0700 root bin
f none lpadmin/lang/en 0600 root bin
f none lpadmin/lang/es 0600 root bin
f none lpadmin/lang/ru_SU 0600 root bin
f none lpadmin/lang/de 0600 root bin
f none lpadmin/lang/fr 0600 root bin
f none lpadmin/lang/pt 0600 root bin
f none lpadmin/lang/zh_TW.Big5 0600 root bin
f none lpadmin/lang/sv 0600 root bin
f none lpadmin/lang/it 0600 root bin
f none lpadmin/lang/zh_CN 0600 root bin
f none lpadmin/lang/tr 0600 root bin
f none lpadmin/lang/pl 0600 root bin
f none lpadmin/lang/hu 0600 root bin
f none lpadmin/lang/ru_RU 0600 root bin
f none lpadmin/webmin-driver.pl 0600 root bin
f none lpadmin/config-unixware 0600 root bin
f none lpadmin/config-macos 0600 root bin
f none lpadmin/lprng-lib.pl 0600 root bin
f none lpadmin/config-open-linux 0600 root bin
f none lpadmin/unixware-lib.pl 0600 root bin
f none lpadmin/acl_security.pl 0600 root bin
f none lpadmin/defaultacl 0600 root bin
f none lpadmin/caldera-driver.pl 0600 root bin
f none lpadmin/colour.ps 0600 root bin
f none lpadmin/test_form.cgi 0700 root bin
f none lpadmin/restart.cgi 0700 root bin
f none lpadmin/cups-lib.pl 0600 root bin
f none lpadmin/cups-driver.pl 0600 root bin
f none lpadmin/config-open-linux-3.1e 0600 root bin
f none lpadmin/config-turbo-linux 0600 root bin
f none lpadmin/irix-lib.pl 0600 root bin
f none lpadmin/irix-driver.pl 0600 root bin
f none lpadmin/config-irix 0600 root bin
f none lpadmin/config.info.fr 0600 root bin
f none lpadmin/config-corel-linux 0600 root bin
f none lpadmin/view_job.cgi 0700 root bin
f none lpadmin/config.info.ru_RU 0600 root bin
f none lpadmin/config.info.ru_SU 0600 root bin
f none lpadmin/catalog.devices 0400 root bin
f none lpadmin/config.info.es 0600 root bin
f none lpadmin/config.info.zh_TW.Big5 0600 root bin
f none lpadmin/config.info.sv 0600 root bin
f none lpadmin/suse-driver.pl 0600 root bin
f none lpadmin/config.info.de 0600 root bin
f none lpadmin/config.info.zh_CN 0600 root bin
f none lpadmin/config-redhat-linux-7.1 0600 root bin
f none lpadmin/printconf-driver.pl 0600 root bin
d none bind8 0700 root bin
f none bind8/module.info 0600 root bin
f none bind8/bind8-lib.pl 0600 root bin
f none bind8/index.cgi 0700 root bin
f none bind8/config.info 0600 root bin
f none bind8/restart.cgi 0700 root bin
f none bind8/edit_master.cgi 0700 root bin
f none bind8/edit_record.cgi 0700 root bin
f none bind8/edit_recs.cgi 0700 root bin
f none bind8/save_record.cgi 0700 root bin
f none bind8/edit_slave.cgi 0700 root bin
f none bind8/save_soa.cgi 0700 root bin
f none bind8/save_master.cgi 0700 root bin
f none bind8/edit_stub.cgi 0700 root bin
f none bind8/stub_form.cgi 0700 root bin
f none bind8/master_form.cgi 0700 root bin
f none bind8/delete_zone.cgi 0700 root bin
f none bind8/save_slave.cgi 0700 root bin
f none bind8/create_master.cgi 0700 root bin
f none bind8/slave_form.cgi 0700 root bin
f none bind8/dns_boot.cgi 0700 root bin
f none bind8/db.cache 0600 root bin
f none bind8/create_slave.cgi 0700 root bin
f none bind8/config.info.de 0600 root bin
f none bind8/config-slackware-linux 0600 root bin
f none bind8/config-solaris 0600 root bin
f none bind8/config-freebsd-2.2 0600 root bin
f none bind8/start.cgi 0700 root bin
f none bind8/edit_text.cgi 0700 root bin
f none bind8/config-redhat-linux 0600 root bin
f none bind8/config-debian-linux 0600 root bin
d none bind8/images 0700 root bin
f none bind8/images/icon.gif 0600 root bin
f none bind8/images/misc.gif 0600 root bin
f none bind8/images/master.gif 0600 root bin
f none bind8/images/A.gif 0600 root bin
f none bind8/images/NS.gif 0600 root bin
f none bind8/images/CNAME.gif 0600 root bin
f none bind8/images/MX.gif 0600 root bin
f none bind8/images/HINFO.gif 0600 root bin
f none bind8/images/WKS.gif 0600 root bin
f none bind8/images/TXT.gif 0600 root bin
f none bind8/images/RP.gif 0600 root bin
f none bind8/images/PTR.gif 0600 root bin
f none bind8/images/acls.gif 0600 root bin
f none bind8/images/logging.gif 0600 root bin
f none bind8/images/files.gif 0600 root bin
f none bind8/images/zonedef.gif 0600 root bin
f none bind8/images/servers.gif 0600 root bin
f none bind8/images/forwarding.gif 0600 root bin
f none bind8/images/net.gif 0600 root bin
f none bind8/images/text.gif 0600 root bin
f none bind8/images/soa.gif 0600 root bin
f none bind8/images/options.gif 0600 root bin
f none bind8/images/slave.gif 0600 root bin
f none bind8/images/stub.gif 0600 root bin
f none bind8/images/forward.gif 0600 root bin
f none bind8/images/no-home.gif 0600 root bin
f none bind8/images/findfree.gif 0600 root bin
f none bind8/images/AAAA.gif 0600 root bin
f none bind8/images/LOC.gif 0600 root bin
f none bind8/config-suse-linux 0600 root bin
f none bind8/config-hpux 0600 root bin
f none bind8/save_text.cgi 0700 root bin
f none bind8/records-lib.pl 0600 root bin
f none bind8/save_zonedef.cgi 0700 root bin
f none bind8/config-solaris-7 0600 root bin
f none bind8/config-osf1 0600 root bin
f none bind8/config-irix 0600 root bin
f none bind8/config-freebsd-3.0 0600 root bin
f none bind8/acl_security.pl 0600 root bin
d none bind8/lang 0700 root bin
f none bind8/lang/en 0600 root bin
f none bind8/lang/ru_SU 0600 root bin
f none bind8/lang/es 0600 root bin
f none bind8/lang/de 0600 root bin
f none bind8/lang/fr 0600 root bin
f none bind8/lang/pt 0600 root bin
f none bind8/lang/zh_TW.Big5 0600 root bin
f none bind8/lang/sv 0600 root bin
f none bind8/lang/it 0600 root bin
f none bind8/lang/zh_CN 0600 root bin
f none bind8/lang/tr 0600 root bin
f none bind8/lang/pl 0600 root bin
f none bind8/lang/ru_RU 0600 root bin
f none bind8/config.info.sv 0600 root bin
f none bind8/defaultacl 0600 root bin
f none bind8/conf_zonedef.cgi 0700 root bin
f none bind8/config.info.pl 0600 root bin
f none bind8/config-aix 0600 root bin
f none bind8/conf_logging.cgi 0700 root bin
f none bind8/save_acls.cgi 0700 root bin
f none bind8/save_files.cgi 0700 root bin
f none bind8/config-turbo-linux 0600 root bin
f none bind8/conf_servers.cgi 0700 root bin
f none bind8/save_logging.cgi 0700 root bin
f none bind8/conf_files.cgi 0700 root bin
f none bind8/save_servers.cgi 0700 root bin
f none bind8/conf_acls.cgi 0700 root bin
f none bind8/save_forwarding.cgi 0700 root bin
f none bind8/save_net.cgi 0700 root bin
f none bind8/conf_forwarding.cgi 0700 root bin
f none bind8/config-unixware 0600 root bin
f none bind8/conf_net.cgi 0700 root bin
f none bind8/save_misc.cgi 0700 root bin
f none bind8/find_free.cgi 0700 root bin
f none bind8/log_parser.pl 0600 root bin
f none bind8/edit_forward.cgi 0700 root bin
f none bind8/conf_misc.cgi 0700 root bin
f none bind8/save_forward.cgi 0700 root bin
f none bind8/edit_soa.cgi 0700 root bin
f none bind8/forward_form.cgi 0700 root bin
f none bind8/edit_options.cgi 0700 root bin
f none bind8/create_forward.cgi 0700 root bin
f none bind8/config-freebsd-2.1 0600 root bin
f none bind8/config-freebsd-3.1 0600 root bin
f none bind8/config.info.ru_RU 0600 root bin
f none bind8/config-freebsd-3.2 0600 root bin
f none bind8/config-openbsd-2.5 0600 root bin
f none bind8/config-redhat-linux-7.1 0600 root bin
f none bind8/config-openserver 0600 root bin
f none bind8/config-macos-1.3 0600 root bin
f none bind8/config.info.tr 0600 root bin
f none bind8/config-macos 0600 root bin
f none bind8/config-openbsd-2.6 0600 root bin
f none bind8/config-corel-linux 0600 root bin
f none bind8/config-freebsd-3.3 0600 root bin
f none bind8/config.info.fr 0600 root bin
f none bind8/config-open-linux 0600 root bin
f none bind8/config-freebsd-3.4 0600 root bin
f none bind8/config.info.ru_SU 0600 root bin
f none bind8/config.info.es 0600 root bin
f none bind8/config-solaris-8 0600 root bin
f none bind8/config-cobalt-linux 0600 root bin
f none bind8/config-debian-linux-2.2 0600 root bin
f none bind8/config-freebsd-4.0 0600 root bin
f none bind8/config-openbsd-2.7 0600 root bin
f none bind8/config.info.zh_TW.Big5 0600 root bin
f none bind8/config-freebsd-5.0 0600 root bin
f none bind8/find_zones.cgi 0700 root bin
f none bind8/config.info.zh_CN 0600 root bin
d none sendmail 0700 root bin
f none sendmail/sendmail-lib.pl 0600 root bin
f none sendmail/stop.cgi 0700 root bin
f none sendmail/module.info 0600 root bin
d none sendmail/images 0700 root bin
f none sendmail/images/icon.gif 0600 root bin
f none sendmail/images/attach.gif 0600 root bin
f none sendmail/images/aliases.gif 0600 root bin
f none sendmail/images/cws.gif 0600 root bin
f none sendmail/images/virtusers.gif 0600 root bin
f none sendmail/images/mailers.gif 0600 root bin
f none sendmail/images/domains.gif 0600 root bin
f none sendmail/images/generics.gif 0600 root bin
f none sendmail/images/masq.gif 0600 root bin
f none sendmail/images/cgs.gif 0600 root bin
f none sendmail/images/opts.gif 0600 root bin
f none sendmail/images/mailq.gif 0600 root bin
f none sendmail/images/access.gif 0600 root bin
f none sendmail/images/relay.gif 0600 root bin
f none sendmail/images/trusts.gif 0600 root bin
f none sendmail/images/boxes.gif 0600 root bin
f none sendmail/images/p1.gif 0600 root bin
f none sendmail/images/p2.gif 0600 root bin
f none sendmail/index.cgi 0700 root bin
f none sendmail/config.info.sv 0600 root bin
f none sendmail/config.info 0600 root bin
f none sendmail/list_aliases.cgi 0700 root bin
f none sendmail/start.cgi 0700 root bin
f none sendmail/edit_alias.cgi 0700 root bin
f none sendmail/config-corel-linux 0600 root bin
f none sendmail/save_alias.cgi 0700 root bin
f none sendmail/edit_afile.cgi 0700 root bin
f none sendmail/config.info.fr 0600 root bin
f none sendmail/aliases-lib.pl 0600 root bin
f none sendmail/config.info.ru_SU 0600 root bin
f none sendmail/list_cws.cgi 0700 root bin
f none sendmail/edit_rfile.cgi 0700 root bin
f none sendmail/save_cws.cgi 0700 root bin
f none sendmail/save_afile.cgi 0700 root bin
f none sendmail/access-lib.pl 0600 root bin
f none sendmail/list_virtusers.cgi 0700 root bin
f none sendmail/save_rfile.cgi 0700 root bin
f none sendmail/virtusers-lib.pl 0600 root bin
f none sendmail/config.info.zh_CN 0600 root bin
f none sendmail/edit_virtuser.cgi 0700 root bin
f none sendmail/save_virtuser.cgi 0700 root bin
f none sendmail/list_mailq.cgi 0700 root bin
f none sendmail/list_mailers.cgi 0700 root bin
f none sendmail/delete_mail.cgi 0700 root bin
f none sendmail/mailers-lib.pl 0600 root bin
f none sendmail/del_mailq.cgi 0700 root bin
f none sendmail/config.info.de 0600 root bin
f none sendmail/save_mailer.cgi 0700 root bin
f none sendmail/list_opts.cgi 0700 root bin
f none sendmail/edit_mailer.cgi 0700 root bin
f none sendmail/list_access.cgi 0700 root bin
f none sendmail/useradmin_update.pl 0600 root bin
f none sendmail/list_generics.cgi 0700 root bin
d none sendmail/help 0700 root bin
f none sendmail/help/alias_name.html 0600 root bin
f none sendmail/help/intro.html 0600 root bin
f none sendmail/help/aliases.html 0600 root bin
f none sendmail/help/opt_MaxQueueRunSize.html 0600 root bin
f none sendmail/help/alias_enabled.html 0600 root bin
f none sendmail/help/alias_to.html 0600 root bin
f none sendmail/help/edit_alias.html 0600 root bin
f none sendmail/help/opt_DS.html 0600 root bin
f none sendmail/help/opt_DR.html 0600 root bin
f none sendmail/help/opt_DH.html 0600 root bin
f none sendmail/help/opt_QueueLA.html 0600 root bin
f none sendmail/help/opt_RefuseLA.html 0600 root bin
f none sendmail/help/opt_MinQueueAge.html 0600 root bin
f none sendmail/help/opt_MaxDaemonChildren.html 0600 root bin
f none sendmail/help/units.html 0600 root bin
f none sendmail/help/opt_ConnectionRateThrottle.html 0600 root bin
f none sendmail/help/opt_Timeout.queuereturn.html 0600 root bin
f none sendmail/help/aliases.fr.html 0600 root bin
f none sendmail/help/opt_Timeout.queuewarn.html 0600 root bin
f none sendmail/help/opt_QueueDirectory.html 0600 root bin
f none sendmail/help/opt_PostMasterCopy.html 0600 root bin
f none sendmail/help/opt_ForwardPath.html 0600 root bin
f none sendmail/help/opt_MinFreeBlocks.html 0600 root bin
f none sendmail/help/opt_MaxMessageSize.html 0600 root bin
f none sendmail/help/opt_LogLevel.html 0600 root bin
f none sendmail/help/opt_SendMimeErrors.html 0600 root bin
f none sendmail/help/alias_enabled.fr.html 0600 root bin
f none sendmail/help/alias_name.fr.html 0600 root bin
f none sendmail/help/alias_to.fr.html 0600 root bin
f none sendmail/help/edit_alias.fr.html 0600 root bin
f none sendmail/help/intro.fr.html 0600 root bin
f none sendmail/help/opt_ConnectionRateThrottle.fr.html 0600 root bin
f none sendmail/help/opt_DH.fr.html 0600 root bin
f none sendmail/help/opt_DR.fr.html 0600 root bin
f none sendmail/help/opt_DS.fr.html 0600 root bin
f none sendmail/help/opt_LogLevel.fr.html 0600 root bin
f none sendmail/help/opt_ForwardPath.fr.html 0600 root bin
f none sendmail/help/opt_MaxDaemonChildren.fr.html 0600 root bin
f none sendmail/help/opt_MaxMessageSize.fr.html 0600 root bin
f none sendmail/help/opt_MaxQueueRunSize.fr.html 0600 root bin
f none sendmail/help/opt_MinFreeBlocks.fr.html 0600 root bin
f none sendmail/help/opt_MinQueueAge.fr.html 0600 root bin
f none sendmail/help/opt_PostMasterCopy.fr.html 0600 root bin
f none sendmail/help/opt_QueueDirectory.fr.html 0600 root bin
f none sendmail/help/opt_QueueLA.fr.html 0600 root bin
f none sendmail/help/opt_RefuseLA.fr.html 0600 root bin
f none sendmail/help/opt_SendMimeErrors.fr.html 0600 root bin
f none sendmail/help/opt_Timeout.queuereturn.fr.html 0600 root bin
f none sendmail/help/opt_Timeout.queuewarn.fr.html 0600 root bin
f none sendmail/help/units.fr.html 0600 root bin
f none sendmail/help/intro.ru_SU.html 0600 root bin
f none sendmail/help/alias_enabled.ru_SU.html 0600 root bin
f none sendmail/help/alias_name.ru_SU.html 0600 root bin
f none sendmail/help/alias_to.ru_SU.html 0600 root bin
f none sendmail/help/aliases.ru_SU.html 0600 root bin
f none sendmail/help/edit_alias.ru_SU.html 0600 root bin
f none sendmail/help/opt_ConnectionRateThrottle.ru_SU.html 0600 root bin
f none sendmail/help/opt_DH.ru_SU.html 0600 root bin
f none sendmail/help/opt_DR.ru_SU.html 0600 root bin
f none sendmail/help/units.ru_SU.html 0600 root bin
f none sendmail/help/opt_DS.ru_SU.html 0600 root bin
f none sendmail/help/opt_ForwardPath.ru_SU.html 0600 root bin
f none sendmail/help/opt_LogLevel.ru_SU.html 0600 root bin
f none sendmail/help/opt_MaxDaemonChildren.ru_SU.html 0600 root bin
f none sendmail/help/alias_to.es.html 0600 root bin
f none sendmail/help/opt_MaxMessageSize.ru_SU.html 0600 root bin
f none sendmail/help/opt_MaxQueueRunSize.ru_SU.html 0600 root bin
f none sendmail/help/opt_MinFreeBlocks.ru_SU.html 0600 root bin
f none sendmail/help/opt_MinQueueAge.ru_SU.html 0600 root bin
f none sendmail/help/opt_PostMasterCopy.ru_SU.html 0600 root bin
f none sendmail/help/opt_QueueDirectory.ru_SU.html 0600 root bin
f none sendmail/help/opt_QueueLA.ru_SU.html 0600 root bin
f none sendmail/help/opt_RefuseLA.ru_SU.html 0600 root bin
f none sendmail/help/opt_SendMimeErrors.ru_SU.html 0600 root bin
f none sendmail/help/opt_Timeout.queuereturn.ru_SU.html 0600 root bin
f none sendmail/help/opt_Timeout.queuewarn.ru_SU.html 0600 root bin
f none sendmail/help/alias_name.es.html 0600 root bin
f none sendmail/help/edit_alias.es.html 0600 root bin
f none sendmail/help/intro.es.html 0600 root bin
f none sendmail/help/opt_ConnectionRateThrottle.es.html 0600 root bin
f none sendmail/help/opt_DH.es.html 0600 root bin
f none sendmail/help/opt_DR.es.html 0600 root bin
f none sendmail/help/opt_DS.es.html 0600 root bin
f none sendmail/help/opt_ForwardPath.es.html 0600 root bin
f none sendmail/help/opt_LogLevel.es.html 0600 root bin
f none sendmail/help/opt_MaxDaemonChildren.es.html 0600 root bin
f none sendmail/help/opt_MaxMessageSize.es.html 0600 root bin
f none sendmail/help/opt_MaxQueueRunSize.es.html 0600 root bin
f none sendmail/help/opt_MinFreeBlocks.es.html 0600 root bin
f none sendmail/help/opt_MinQueueAge.es.html 0600 root bin
f none sendmail/help/opt_PostMasterCopy.es.html 0600 root bin
f none sendmail/help/opt_QueueDirectory.es.html 0600 root bin
f none sendmail/help/opt_QueueLA.es.html 0600 root bin
f none sendmail/help/opt_RefuseLA.es.html 0600 root bin
f none sendmail/help/opt_SendMimeErrors.es.html 0600 root bin
f none sendmail/help/units.es.html 0600 root bin
f none sendmail/help/opt_Timeout.queuereturn.es.html 0600 root bin
f none sendmail/help/opt_Timeout.queuewarn.es.html 0600 root bin
f none sendmail/help/alias_enabled.es.html 0600 root bin
f none sendmail/help/aliases.es.html 0600 root bin
f none sendmail/help/alias_enabled.zh_TW.Big5.html 0600 root bin
f none sendmail/help/alias_name.zh_TW.Big5.html 0600 root bin
f none sendmail/help/alias_to.zh_TW.Big5.html 0600 root bin
f none sendmail/help/aliases.zh_TW.Big5.html 0600 root bin
f none sendmail/help/edit_alias.zh_TW.Big5.html 0600 root bin
f none sendmail/help/intro.zh_TW.Big5.html 0600 root bin
f none sendmail/help/opt_ConnectionRateThrottle.zh_TW.Big5.html 0600 root bin
f none sendmail/help/opt_DH.zh_TW.Big5.html 0600 root bin
f none sendmail/help/opt_DR.zh_TW.Big5.html 0600 root bin
f none sendmail/help/opt_DS.zh_TW.Big5.html 0600 root bin
f none sendmail/help/opt_ForwardPath.zh_TW.Big5.html 0600 root bin
f none sendmail/help/opt_LogLevel.zh_TW.Big5.html 0600 root bin
f none sendmail/help/opt_MaxDaemonChildren.zh_TW.Big5.html 0600 root bin
f none sendmail/help/opt_MaxMessageSize.zh_TW.Big5.html 0600 root bin
f none sendmail/help/opt_MaxQueueRunSize.zh_TW.Big5.html 0600 root bin
f none sendmail/help/opt_MinFreeBlocks.zh_TW.Big5.html 0600 root bin
f none sendmail/help/opt_MinQueueAge.zh_TW.Big5.html 0600 root bin
f none sendmail/help/opt_PostMasterCopy.zh_TW.Big5.html 0600 root bin
f none sendmail/help/opt_QueueDirectory.zh_TW.Big5.html 0600 root bin
f none sendmail/help/opt_QueueLA.zh_TW.Big5.html 0600 root bin
f none sendmail/help/aliases.sv.html 0600 root bin
f none sendmail/help/opt_RefuseLA.zh_TW.Big5.html 0600 root bin
f none sendmail/help/opt_SendMimeErrors.zh_TW.Big5.html 0600 root bin
f none sendmail/help/opt_Timeout.queuereturn.zh_TW.Big5.html 0600 root bin
f none sendmail/help/alias_to.sv.html 0600 root bin
f none sendmail/help/opt_Timeout.queuewarn.zh_TW.Big5.html 0600 root bin
f none sendmail/help/units.zh_TW.Big5.html 0600 root bin
f none sendmail/help/alias_enabled.sv.html 0600 root bin
f none sendmail/help/alias_name.sv.html 0600 root bin
f none sendmail/help/edit_alias.sv.html 0600 root bin
f none sendmail/help/intro.sv.html 0600 root bin
f none sendmail/help/opt_ConnectionRateThrottle.sv.html 0600 root bin
f none sendmail/help/opt_DH.sv.html 0600 root bin
f none sendmail/help/opt_DR.sv.html 0600 root bin
f none sendmail/help/opt_DS.sv.html 0600 root bin
f none sendmail/help/opt_ForwardPath.sv.html 0600 root bin
f none sendmail/help/opt_LogLevel.sv.html 0600 root bin
f none sendmail/help/opt_MaxDaemonChildren.sv.html 0600 root bin
f none sendmail/help/opt_MaxMessageSize.sv.html 0600 root bin
f none sendmail/help/opt_MaxQueueRunSize.sv.html 0600 root bin
f none sendmail/help/opt_MinFreeBlocks.sv.html 0600 root bin
f none sendmail/help/opt_MinQueueAge.sv.html 0600 root bin
f none sendmail/help/opt_PostMasterCopy.sv.html 0600 root bin
f none sendmail/help/opt_QueueDirectory.sv.html 0600 root bin
f none sendmail/help/opt_QueueLA.sv.html 0600 root bin
f none sendmail/help/opt_RefuseLA.sv.html 0600 root bin
f none sendmail/help/opt_SendMimeErrors.sv.html 0600 root bin
f none sendmail/help/opt_Timeout.queuereturn.sv.html 0600 root bin
f none sendmail/help/units.sv.html 0600 root bin
f none sendmail/help/opt_Timeout.queuewarn.sv.html 0600 root bin
f none sendmail/help/opt_dmode.html 0600 root bin
f none sendmail/help/alias_enabled.pl.html 0600 root bin
f none sendmail/help/alias_name.pl.html 0600 root bin
f none sendmail/help/alias_to.pl.html 0600 root bin
f none sendmail/help/aliases.pl.html 0600 root bin
f none sendmail/help/edit_alias.pl.html 0600 root bin
f none sendmail/help/intro.pl.html 0600 root bin
f none sendmail/help/opt_ConnectionRateThrottle.pl.html 0600 root bin
f none sendmail/help/opt_DH.pl.html 0600 root bin
f none sendmail/help/opt_DR.pl.html 0600 root bin
f none sendmail/help/opt_DS.pl.html 0600 root bin
f none sendmail/help/opt_ForwardPath.pl.html 0600 root bin
f none sendmail/help/opt_LogLevel.pl.html 0600 root bin
f none sendmail/help/opt_MaxDaemonChildren.pl.html 0600 root bin
f none sendmail/help/opt_MaxMessageSize.pl.html 0600 root bin
f none sendmail/help/opt_MaxQueueRunSize.pl.html 0600 root bin
f none sendmail/help/opt_MinFreeBlocks.pl.html 0600 root bin
f none sendmail/help/opt_MinQueueAge.pl.html 0600 root bin
f none sendmail/help/opt_PostMasterCopy.pl.html 0600 root bin
f none sendmail/help/opt_QueueDirectory.pl.html 0600 root bin
f none sendmail/help/opt_QueueLA.pl.html 0600 root bin
f none sendmail/help/opt_RefuseLA.pl.html 0600 root bin
f none sendmail/help/opt_SendMimeErrors.pl.html 0600 root bin
f none sendmail/help/opt_Timeout.queuereturn.pl.html 0600 root bin
f none sendmail/help/opt_Timeout.queuewarn.pl.html 0600 root bin
f none sendmail/help/units.pl.html 0600 root bin
f none sendmail/help/opt_dmode.es.html 0600 root bin
f none sendmail/help/intro.ru_RU.html 0600 root bin
f none sendmail/help/alias_enabled.ru_RU.html 0600 root bin
f none sendmail/help/alias_name.ru_RU.html 0600 root bin
f none sendmail/help/alias_to.ru_RU.html 0600 root bin
f none sendmail/help/aliases.ru_RU.html 0600 root bin
f none sendmail/help/opt_DH.ru_RU.html 0600 root bin
f none sendmail/help/edit_alias.ru_RU.html 0600 root bin
f none sendmail/help/opt_ConnectionRateThrottle.ru_RU.html 0600 root bin
f none sendmail/help/opt_DR.ru_RU.html 0600 root bin
f none sendmail/help/units.ru_RU.html 0600 root bin
f none sendmail/help/opt_DS.ru_RU.html 0600 root bin
f none sendmail/help/opt_ForwardPath.ru_RU.html 0600 root bin
f none sendmail/help/opt_LogLevel.ru_RU.html 0600 root bin
f none sendmail/help/opt_MaxDaemonChildren.ru_RU.html 0600 root bin
f none sendmail/help/opt_MaxMessageSize.ru_RU.html 0600 root bin
f none sendmail/help/opt_MaxQueueRunSize.ru_RU.html 0600 root bin
f none sendmail/help/opt_MinFreeBlocks.ru_RU.html 0600 root bin
f none sendmail/help/opt_MinQueueAge.ru_RU.html 0600 root bin
f none sendmail/help/opt_PostMasterCopy.ru_RU.html 0600 root bin
f none sendmail/help/opt_QueueDirectory.ru_RU.html 0600 root bin
f none sendmail/help/opt_QueueLA.ru_RU.html 0600 root bin
f none sendmail/help/opt_RefuseLA.ru_RU.html 0600 root bin
f none sendmail/help/opt_SendMimeErrors.ru_RU.html 0600 root bin
f none sendmail/help/opt_Timeout.queuereturn.ru_RU.html 0600 root bin
f none sendmail/help/opt_Timeout.queuewarn.ru_RU.html 0600 root bin
f none sendmail/help/opt_dmode.pl.html 0600 root bin
f none sendmail/save_opts.cgi 0700 root bin
f none sendmail/config-freebsd 0600 root bin
d none sendmail/lang 0700 root bin
f none sendmail/lang/en 0600 root bin
f none sendmail/lang/ru_SU 0600 root bin
f none sendmail/lang/es 0600 root bin
f none sendmail/lang/de 0600 root bin
f none sendmail/lang/fr 0600 root bin
f none sendmail/lang/pt 0600 root bin
f none sendmail/lang/zh_TW.Big5 0600 root bin
f none sendmail/lang/sv 0600 root bin
f none sendmail/lang/zh_CN 0600 root bin
f none sendmail/lang/tr 0600 root bin
f none sendmail/lang/pl 0600 root bin
f none sendmail/lang/ru_RU 0600 root bin
f none sendmail/generics-lib.pl 0600 root bin
f none sendmail/flushq.cgi 0700 root bin
f none sendmail/edit_generic.cgi 0700 root bin
f none sendmail/edit_access.cgi 0700 root bin
f none sendmail/save_generic.cgi 0700 root bin
f none sendmail/list_masq.cgi 0700 root bin
f none sendmail/list_cgs.cgi 0700 root bin
f none sendmail/save_access.cgi 0700 root bin
f none sendmail/save_masq.cgi 0700 root bin
f none sendmail/config.info.es 0600 root bin
f none sendmail/config-unixware 0600 root bin
f none sendmail/save_cgs.cgi 0700 root bin
f none sendmail/config-solaris 0600 root bin
f none sendmail/config-hpux 0600 root bin
f none sendmail/config-redhat-linux 0600 root bin
f none sendmail/config-slackware-linux 0600 root bin
f none sendmail/config-suse-linux 0600 root bin
f none sendmail/config-debian-linux 0600 root bin
f none sendmail/config-aix 0600 root bin
f none sendmail/list_mail.cgi 0700 root bin
f none sendmail/config-openbsd 0600 root bin
f none sendmail/list_relay.cgi 0700 root bin
f none sendmail/config-openserver 0600 root bin
f none sendmail/save_relay.cgi 0700 root bin
f none sendmail/domain-lib.pl 0600 root bin
f none sendmail/log_parser.pl 0600 root bin
f none sendmail/config-macos 0600 root bin
f none sendmail/list_domains.cgi 0700 root bin
f none sendmail/edit_domain.cgi 0700 root bin
f none sendmail/save_domain.cgi 0700 root bin
f none sendmail/config-solaris-7 0600 root bin
f none sendmail/config-open-linux-2.5 0600 root bin
f none sendmail/list_trusts.cgi 0700 root bin
f none sendmail/config.info.tr 0600 root bin
f none sendmail/save_trusts.cgi 0700 root bin
f none sendmail/config-irix 0600 root bin
f none sendmail/acl_security.pl 0600 root bin
f none sendmail/defaultacl 0600 root bin
f none sendmail/boxes-lib.pl 0600 root bin
f none sendmail/detach.cgi 0700 root bin
f none sendmail/config.info.pl 0600 root bin
f none sendmail/config-open-linux 0600 root bin
f none sendmail/config-debian-linux-2.2 0600 root bin
f none sendmail/config-debian-linux-2.1 0600 root bin
f none sendmail/list_boxes.cgi 0700 root bin
f none sendmail/del_mailqs.cgi 0700 root bin
f none sendmail/view_mail.cgi 0700 root bin
f none sendmail/reply_mail.cgi 0700 root bin
f none sendmail/send_mail.cgi 0700 root bin
f none sendmail/config-cobalt-linux 0600 root bin
f none sendmail/config-open-linux-3.1e 0600 root bin
f none sendmail/config.info.ru_RU 0600 root bin
f none sendmail/config-macos-1.3 0600 root bin
f none sendmail/qdetach.cgi 0700 root bin
f none sendmail/view_mailq.cgi 0700 root bin
f none sendmail/config-solaris-8 0600 root bin
f none sendmail/config-turbo-linux 0600 root bin
f none sendmail/list_us 0600 root bin
f none sendmail/autoreply.pl 0700 root bin
f none sendmail/config-freebsd-5.0 0600 root bin
f none sendmail/config-freebsd-4.0 0600 root bin
f none sendmail/mail_search.cgi 0700 root bin
f none sendmail/config.info.zh_TW.Big5 0600 root bin
f none sendmail/edit_file.cgi 0700 root bin
f none sendmail/save_file.cgi 0700 root bin
d none squid 0700 root bin
d none squid/images 0700 root bin
f none squid/images/up.gif 0600 root bin
f none squid/images/down.gif 0600 root bin
f none squid/images/gap.gif 0600 root bin
f none squid/images/icon.gif 0600 root bin
f none squid/images/ports.gif 0600 root bin
f none squid/images/logs.gif 0600 root bin
f none squid/images/icp.gif 0600 root bin
f none squid/images/acl.gif 0600 root bin
f none squid/images/misc.gif 0600 root bin
f none squid/images/mem.gif 0600 root bin
f none squid/images/admin.gif 0600 root bin
f none squid/images/cache.gif 0600 root bin
f none squid/images/auth.gif 0600 root bin
f none squid/images/progs.gif 0600 root bin
f none squid/images/cachemgr.gif 0600 root bin
f none squid/images/clear.gif 0600 root bin
f none squid/images/nauth.gif 0600 root bin
f none squid/images/calamaris.gif 0600 root bin
f none squid/images/sports.gif 0600 root bin
f none squid/images/smem.gif 0600 root bin
f none squid/squid-lib.pl 0600 root bin
f none squid/index.cgi 0700 root bin
f none squid/save_cache_host.cgi 0700 root bin
f none squid/module.info 0600 root bin
f none squid/config.info 0600 root bin
f none squid/edit_ports.cgi 0700 root bin
f none squid/edit_cache_host.cgi 0700 root bin
f none squid/save_ports.cgi 0700 root bin
f none squid/edit_icp.cgi 0700 root bin
f none squid/edit_acl.cgi 0700 root bin
f none squid/edit_mem.cgi 0700 root bin
f none squid/save_mem.cgi 0700 root bin
f none squid/edit_logs.cgi 0700 root bin
f none squid/save_logs.cgi 0700 root bin
f none squid/save_icp.cgi 0700 root bin
f none squid/edit_cache.cgi 0700 root bin
f none squid/save_cache.cgi 0700 root bin
f none squid/acl.cgi 0700 root bin
f none squid/edit_progs.cgi 0700 root bin
f none squid/save_progs.cgi 0700 root bin
f none squid/http_access.cgi 0700 root bin
f none squid/icp_access.cgi 0700 root bin
f none squid/acl_save.cgi 0700 root bin
f none squid/http_access_save.cgi 0700 root bin
f none squid/icp_access_save.cgi 0700 root bin
f none squid/move_http.cgi 0700 root bin
f none squid/move_icp.cgi 0700 root bin
f none squid/config.info.tr 0600 root bin
f none squid/config.info.pl 0600 root bin
f none squid/config-aix 0600 root bin
f none squid/edit_admin.cgi 0700 root bin
f none squid/low.skill 0600 root bin
f none squid/save_admin.cgi 0700 root bin
f none squid/edit_sports.cgi 0700 root bin
f none squid/init_cache.cgi 0700 root bin
f none squid/save_sports.cgi 0700 root bin
f none squid/start.cgi 0700 root bin
f none squid/restart.cgi 0700 root bin
f none squid/config-redhat-linux-7.0 0600 root bin
f none squid/low.risk 0600 root bin
f none squid/stop.cgi 0700 root bin
f none squid/edit_smem.cgi 0700 root bin
f none squid/config-unixware 0600 root bin
d none squid/lang 0700 root bin
f none squid/lang/en 0600 root bin
f none squid/lang/ru_SU 0600 root bin
f none squid/lang/de 0600 root bin
f none squid/lang/tr 0600 root bin
f none squid/lang/zh_TW.Big5 0600 root bin
f none squid/lang/es 0600 root bin
f none squid/lang/sv 0600 root bin
f none squid/lang/zh_CN 0600 root bin
f none squid/lang/pl 0600 root bin
f none squid/lang/ru_RU 0600 root bin
f none squid/lang/fr 0600 root bin
f none squid/config-openserver 0600 root bin
f none squid/edit_auth.cgi 0700 root bin
f none squid/save_auth.cgi 0700 root bin
f none squid/edit_user.cgi 0700 root bin
f none squid/save_user.cgi 0700 root bin
f none squid/cachemgr.cgi 0700 root bin
f none squid/edit_misc.cgi 0700 root bin
f none squid/save_misc.cgi 0700 root bin
f none squid/chown.cgi 0700 root bin
f none squid/config-solaris 0600 root bin
f none squid/config-hpux 0600 root bin
f none squid/config-freebsd 0600 root bin
f none squid/clear.cgi 0700 root bin
f none squid/config-redhat-linux 0600 root bin
f none squid/config-debian-linux 0600 root bin
f none squid/config-suse-linux 0600 root bin
f none squid/config-slackware-linux 0600 root bin
f none squid/config-osf1 0600 root bin
f none squid/config-irix 0600 root bin
f none squid/config-redhat-linux-6.0 0600 root bin
f none squid/config-openbsd 0600 root bin
f none squid/config-open-linux 0600 root bin
f none squid/config-redhat-linux-6.1 0600 root bin
f none squid/config-turbo-linux 0600 root bin
f none squid/config-corel-linux 0600 root bin
f none squid/config.info.fr 0600 root bin
f none squid/config.info.ru_SU 0600 root bin
f none squid/config.info.es 0600 root bin
f none squid/save_smem.cgi 0700 root bin
f none squid/config-cobalt-linux 0600 root bin
f none squid/parser-lib.pl 0600 root bin
f none squid/config-redhat-linux-6.2 0600 root bin
d none squid/help 0700 root bin
f none squid/help/edit_ports.html 0600 root bin
f none squid/help/intro.html 0600 root bin
f none squid/help/edit_icp.html 0600 root bin
f none squid/help/edit_mem.html 0600 root bin
f none squid/help/edit_logs.html 0600 root bin
f none squid/help/edit_cache.html 0600 root bin
f none squid/help/edit_progs.html 0600 root bin
f none squid/help/edit_acl.html 0600 root bin
f none squid/help/edit_admin.html 0600 root bin
f none squid/help/edit_misc.html 0600 root bin
f none squid/help/edit_acl.zh_TW.Big5.html 0600 root bin
f none squid/help/edit_admin.zh_TW.Big5.html 0600 root bin
f none squid/help/edit_cache.zh_TW.Big5.html 0600 root bin
f none squid/help/edit_icp.zh_TW.Big5.html 0600 root bin
f none squid/help/edit_logs.zh_TW.Big5.html 0600 root bin
f none squid/help/edit_mem.zh_TW.Big5.html 0600 root bin
f none squid/help/edit_misc.zh_TW.Big5.html 0600 root bin
f none squid/help/edit_ports.zh_TW.Big5.html 0600 root bin
f none squid/help/edit_progs.zh_TW.Big5.html 0600 root bin
f none squid/help/intro.zh_TW.Big5.html 0600 root bin
f none squid/help/edit_acl.sv.html 0600 root bin
f none squid/help/edit_admin.sv.html 0600 root bin
f none squid/help/edit_cache.sv.html 0600 root bin
f none squid/help/edit_icp.sv.html 0600 root bin
f none squid/help/edit_logs.sv.html 0600 root bin
f none squid/help/edit_mem.sv.html 0600 root bin
f none squid/help/edit_misc.sv.html 0600 root bin
f none squid/help/edit_ports.sv.html 0600 root bin
f none squid/help/edit_progs.sv.html 0600 root bin
f none squid/help/intro.sv.html 0600 root bin
f none squid/help/edit_acl.pl.html 0600 root bin
f none squid/help/edit_admin.pl.html 0600 root bin
f none squid/help/edit_cache.pl.html 0600 root bin
f none squid/help/edit_icp.pl.html 0600 root bin
f none squid/help/edit_logs.pl.html 0600 root bin
f none squid/help/edit_mem.pl.html 0600 root bin
f none squid/help/edit_misc.pl.html 0600 root bin
f none squid/help/edit_ports.pl.html 0600 root bin
f none squid/help/edit_progs.pl.html 0600 root bin
f none squid/help/intro.pl.html 0600 root bin
f none squid/help/edit_acl.es.html 0600 root bin
f none squid/help/edit_admin.es.html 0600 root bin
f none squid/help/edit_cache.es.html 0600 root bin
f none squid/help/edit_icp.es.html 0600 root bin
f none squid/help/edit_logs.es.html 0600 root bin
f none squid/help/edit_mem.es.html 0600 root bin
f none squid/help/edit_misc.es.html 0600 root bin
f none squid/help/edit_ports.es.html 0600 root bin
f none squid/help/edit_progs.es.html 0600 root bin
f none squid/help/intro.es.html 0600 root bin
f none squid/config.info.zh_TW.Big5 0600 root bin
f none squid/config-lfs-linux 0600 root bin
f none squid/config-macos 0600 root bin
f none squid/config.info.sv 0600 root bin
f none squid/config.info.de 0600 root bin
f none squid/config.info.zh_CN 0600 root bin
f none squid/acl_security.pl 0700 root bin
f none squid/log_parser.pl 0600 root bin
f none squid/medium.skill 0600 root bin
f none squid/defaultacl 0600 root bin
f none squid/always.cgi 0700 root bin
f none squid/always_save.cgi 0700 root bin
f none squid/edit_nuser.cgi 0700 root bin
f none squid/edit_nauth.cgi 0700 root bin
f none squid/save_nuser.cgi 0700 root bin
f none squid/move_always.cgi 0700 root bin
f none squid/calamaris.cgi 0700 root bin
f none squid/never.cgi 0700 root bin
f none squid/never_save.cgi 0700 root bin
f none squid/move_never.cgi 0700 root bin
f none squid/medium.risk 0600 root bin
f none squid/config-open-linux-3.1e 0600 root bin
f none squid/config.info.ru_RU 0600 root bin
f none squid/config-redhat-linux-7.1 0600 root bin
d none bsdexports 0700 root bin
f none bsdexports/bsdexports-lib.pl 0600 root bin
f none bsdexports/config-macos 0600 root bin
f none bsdexports/index.cgi 0700 root bin
f none bsdexports/edit_export.cgi 0700 root bin
d none bsdexports/images 0700 root bin
f none bsdexports/images/icon.gif 0600 root bin
f none bsdexports/module.info 0600 root bin
f none bsdexports/config.info 0600 root bin
f none bsdexports/notes 0600 root bin
f none bsdexports/save_export.cgi 0700 root bin
f none bsdexports/restart_mountd.cgi 0700 root bin
f none bsdexports/delete_export.cgi 0700 root bin
f none bsdexports/config-freebsd 0600 root bin
f none bsdexports/config-openbsd 0600 root bin
f none bsdexports/config.info.fr 0600 root bin
f none bsdexports/config.info.es 0600 root bin
f none bsdexports/config.info.zh_TW.Big5 0600 root bin
f none bsdexports/config.info.sv 0600 root bin
f none bsdexports/config.info.de 0600 root bin
f none bsdexports/config.info.tr 0600 root bin
f none bsdexports/config.info.pl 0600 root bin
f none bsdexports/config.info.zh_CN 0600 root bin
d none hpuxexports 0700 root bin
d none hpuxexports/images 0700 root bin
f none hpuxexports/images/icon.gif 0600 root bin
f none hpuxexports/module.info 0600 root bin
f none hpuxexports/index.cgi 0700 root bin
f none hpuxexports/config.info 0600 root bin
f none hpuxexports/edit_export.cgi 0700 root bin
f none hpuxexports/save_export.cgi 0700 root bin
f none hpuxexports/config-hpux 0600 root bin
f none hpuxexports/hpuxexports-lib.pl 0600 root bin
f none hpuxexports/delete_export.cgi 0700 root bin
f none hpuxexports/restart_exporting.cgi 0700 root bin
f none hpuxexports/config.info.fr 0600 root bin
d none hpuxexports/help 0700 root bin
f none hpuxexports/help/help.html 0600 root bin
f none hpuxexports/help/help.zh_TW.Big5.html 0600 root bin
f none hpuxexports/help/help.sv.html 0600 root bin
f none hpuxexports/help/help.es.html 0600 root bin
f none hpuxexports/config.info.es 0600 root bin
f none hpuxexports/config.info.ru_SU 0600 root bin
f none hpuxexports/config.info.zh_TW.Big5 0600 root bin
f none hpuxexports/config.info.sv 0600 root bin
f none hpuxexports/config.info.de 0600 root bin
f none hpuxexports/config.info.tr 0600 root bin
f none hpuxexports/config.info.pl 0600 root bin
f none hpuxexports/config.info.zh_CN 0600 root bin
f none hpuxexports/config.info.ru_RU 0600 root bin
d none file 0700 root bin
f none file/module.info 0600 root bin
d none file/images 0700 root bin
f none file/images/icon.gif 0600 root bin
f none file/images/file.gif 0600 root bin
f none file/images/binary.gif 0600 root bin
f none file/images/dir.gif 0600 root bin
f none file/images/image.gif 0600 root bin
f none file/images/text.gif 0600 root bin
f none file/images/unknown.gif 0600 root bin
f none file/images/open.gif 0600 root bin
f none file/images/run.gif 0600 root bin
f none file/images/symlink.gif 0600 root bin
f none file/images/device.gif 0600 root bin
f none file/images/pipe.gif 0600 root bin
f none file/images/edit.gif 0600 root bin
f none file/images/refresh.gif 0600 root bin
f none file/images/props.gif 0600 root bin
f none file/images/cut.gif 0600 root bin
f none file/images/copy.gif 0600 root bin
f none file/images/paste.gif 0600 root bin
f none file/images/view.gif 0600 root bin
f none file/images/save.gif 0600 root bin
f none file/images/cancel.gif 0600 root bin
f none file/images/new.gif 0600 root bin
f none file/images/mkdir.gif 0600 root bin
f none file/images/makelink.gif 0600 root bin
f none file/images/rename.gif 0600 root bin
f none file/images/upload.gif 0600 root bin
f none file/images/sdir.gif 0600 root bin
f none file/images/share.gif 0600 root bin
f none file/images/search.gif 0600 root bin
f none file/index.cgi 0700 root bin
f none file/file-lib.pl 0600 root bin
f none file/CbButton.java 0600 root bin
f none file/CbColorButton.java 0600 root bin
f none file/CbColorWindow.java 0600 root bin
f none file/CbImageChooser.java 0600 root bin
f none file/CbScrollbar.java 0600 root bin
f none file/CbSlider.java 0600 root bin
f none file/FileManager.java 0600 root bin
f none file/BorderPanel.java 0700 root bin
f none file/Hierarchy.java 0600 root bin
f none file/MultiColumn.java 0600 root bin
f none file/TabbedPanel.java 0600 root bin
f none file/RemoteFile.class 0600 root bin
f none file/CbButtonGroup.class 0600 root bin
f none file/TabbedPanel.class 0600 root bin
f none file/CbScrollbar.class 0600 root bin
f none file/CbImageChooser.class 0600 root bin
f none file/HierarchyNode.class 0600 root bin
f none file/CbColorWindowCallback.class 0600 root bin
f none file/CbScrollbarCallback.class 0600 root bin
f none file/Hierarchy.class 0600 root bin
f none file/MultiColumn.class 0600 root bin
f none file/MultiColumnCallback.class 0600 root bin
f none file/TabSelector.class 0600 root bin
f none file/CbButtonCallback.class 0600 root bin
f none file/CbScrollbarArrow.class 0600 root bin
f none file/CbSlider.class 0600 root bin
f none file/HierarchyCallback.class 0600 root bin
f none file/FileNode.class 0600 root bin
f none file/BorderPanel.class 0600 root bin
f none file/TabbedDisplayPanel.class 0600 root bin
f none file/CbSliderCallback.class 0600 root bin
f none file/root.cgi 0700 root bin
f none file/FixedFrame.java 0600 root bin
f none file/Util.java 0600 root bin
f none file/ScrollImage.class 0600 root bin
f none file/CbButton.class 0600 root bin
f none file/Util.class 0600 root bin
f none file/CbColorButton.class 0600 root bin
f none file/FixedFrame.class 0600 root bin
f none file/CbColorWindowSwatch.class 0600 root bin
f none file/GrayPanel.java 0600 root bin
f none file/ErrorWindow.java 0600 root bin
f none file/CbColorWindowCube.class 0600 root bin
f none file/CbImageFileWindow.class 0600 root bin
f none file/GrayPanel.class 0600 root bin
f none file/CbColorWindow.class 0600 root bin
f none file/ErrorWindow.class 0600 root bin
f none file/FileManager.class 0600 root bin
f none file/LineInputStream.java 0700 root bin
f none file/LineInputStream.class 0600 root bin
d none file/lang 0700 root bin
f none file/lang/en 0600 root bin
f none file/lang/ru_SU 0600 root bin
f none file/lang/es 0600 root bin
f none file/lang/de 0600 root bin
f none file/lang/fr 0600 root bin
f none file/lang/pt 0600 root bin
f none file/lang/zh_TW.Big5 0600 root bin
f none file/lang/sv 0600 root bin
f none file/lang/it 0600 root bin
f none file/lang/zh_CN 0600 root bin
f none file/lang/tr 0600 root bin
f none file/lang/pl 0600 root bin
f none file/lang/ru_RU 0600 root bin
f none file/ResizePanel.java 0600 root bin
f none file/list.cgi 0700 root bin
f none file/ResizePanel.class 0600 root bin
f none file/show.cgi 0700 root bin
f none file/EditorWindow.class 0600 root bin
f none file/save.cgi 0700 root bin
f none file/PropertiesWindow.class 0600 root bin
f none file/StaticTextField.class 0600 root bin
f none file/StaticTextField.java 0600 root bin
f none file/PermissionsPanel.class 0600 root bin
f none file/chmod.cgi 0700 root bin
f none file/LinedPanel.java 0600 root bin
f none file/LinedPanel.class 0600 root bin
f none file/DeleteWindow.class 0600 root bin
f none file/delete.cgi 0700 root bin
f none file/MkdirWindow.class 0600 root bin
f none file/mkdir.cgi 0700 root bin
f none file/copy.cgi 0700 root bin
f none file/move.cgi 0700 root bin
f none file/Makefile 0600 root bin
f none file/makelink.cgi 0700 root bin
f none file/LinkWindow.class 0600 root bin
f none file/MyFlowLayout.java 0400 root bin
f none file/rename.cgi 0700 root bin
f none file/RenameWindow.class 0600 root bin
f none file/acl_security.pl 0600 root bin
f none file/defaultacl 0600 root bin
f none file/upform.cgi 0700 root bin
f none file/upload.cgi 0700 root bin
f none file/MultiLabel.class 0600 root bin
f none file/lang.cgi 0700 root bin
f none file/SambaShare.class 0600 root bin
f none file/OverwriteWindow.class 0600 root bin
f none file/ThirdsLayout.class 0600 root bin
f none file/list_shares.cgi 0700 root bin
f none file/DFSAdminExport.class 0600 root bin
f none file/StringSplitter.java 0600 root bin
f none file/SharingWindow.class 0600 root bin
f none file/list_exports.cgi 0700 root bin
f none file/save_share.cgi 0700 root bin
f none file/StringSplitter.class 0600 root bin
f none file/StringJoiner.class 0600 root bin
f none file/LinuxExport.class 0600 root bin
f none file/log_parser.pl 0600 root bin
f none file/save_export.cgi 0700 root bin
f none file/search.cgi 0700 root bin
f none file/SearchWindow.class 0600 root bin
d none net 0700 root bin
f none net/module.info 0600 root bin
d none net/images 0700 root bin
f none net/images/icon.gif 0600 root bin
f none net/images/ifcs.gif 0600 root bin
f none net/images/dns.gif 0600 root bin
f none net/images/routes.gif 0600 root bin
f none net/images/hosts.gif 0600 root bin
f none net/net-lib.pl 0600 root bin
f none net/config.info 0600 root bin
f none net/solaris-lib.pl 0600 root bin
f none net/index.cgi 0700 root bin
f none net/list_hosts.cgi 0700 root bin
f none net/edit_host.cgi 0700 root bin
f none net/save_host.cgi 0700 root bin
f none net/list_ifcs.cgi 0700 root bin
f none net/edit_aifc.cgi 0700 root bin
f none net/save_aifc.cgi 0700 root bin
f none net/edit_bifc.cgi 0700 root bin
f none net/save_bifc.cgi 0700 root bin
f none net/redhat-linux-lib.pl 0600 root bin
f none net/edit_dns.cgi 0700 root bin
f none net/save_dns.cgi 0700 root bin
f none net/list_routes.cgi 0700 root bin
f none net/config-solaris 0600 root bin
f none net/save_routes.cgi 0700 root bin
f none net/config-redhat-linux 0600 root bin
f none net/slackware-linux-lib.pl 0600 root bin
f none net/debian-linux-lib.pl 0600 root bin
f none net/suse-linux-lib.pl 0600 root bin
d none net/lang 0700 root bin
f none net/lang/ru_SU 0600 root bin
f none net/lang/en 0600 root bin
f none net/lang/es 0600 root bin
f none net/lang/de 0600 root bin
f none net/lang/fr 0600 root bin
f none net/lang/pt 0600 root bin
f none net/lang/zh_TW.Big5 0600 root bin
f none net/lang/sv 0600 root bin
f none net/lang/zh_CN 0600 root bin
f none net/lang/tr 0600 root bin
f none net/lang/pl 0600 root bin
f none net/lang/ru_RU 0600 root bin
f none net/config-unixware 0600 root bin
f none net/unixware-lib.pl 0600 root bin
f none net/config-open-linux 0600 root bin
f none net/open-linux-lib.pl 0600 root bin
f none net/config-suse-linux 0600 root bin
f none net/turbo-linux-lib.pl 0600 root bin
f none net/config-turbo-linux 0600 root bin
f none net/config.info.fr 0600 root bin
f none net/config.info.ru_SU 0600 root bin
f none net/config.info.es 0600 root bin
f none net/config-freebsd 0600 root bin
f none net/freebsd-lib.pl 0600 root bin
f none net/config.info.zh_TW.Big5 0600 root bin
f none net/config-lfs-linux 0600 root bin
f none net/config.info.sv 0600 root bin
f none net/config-debian-linux 0600 root bin
f none net/config.info.de 0600 root bin
f none net/config.info.zh_CN 0600 root bin
f none net/openbsd-lib.pl 0600 root bin
f none net/config-openbsd 0600 root bin
f none net/log_parser.pl 0600 root bin
f none net/config.info.tr 0600 root bin
f none net/config.info.pl 0600 root bin
f none net/config-cobalt-linux 0600 root bin
f none net/cobalt-linux-lib.pl 0600 root bin
f none net/config.info.ru_RU 0600 root bin
d none dhcpd 0700 root bin
f none dhcpd/config.info 0600 root bin
f none dhcpd/config-redhat-linux-7.0 0600 root bin
f none dhcpd/index.cgi 0700 root bin
f none dhcpd/module.info 0600 root bin
f none dhcpd/save_subnet.cgi 0700 root bin
f none dhcpd/config-freebsd 0600 root bin
d none dhcpd/images 0700 root bin
f none dhcpd/images/subnet.gif 0600 root bin
f none dhcpd/images/shared.gif 0600 root bin
f none dhcpd/images/host.gif 0600 root bin
f none dhcpd/images/group.gif 0600 root bin
f none dhcpd/images/icon.gif 0600 root bin
f none dhcpd/images/pool.gif 0600 root bin
f none dhcpd/images/ctree0.gif 0600 root bin
f none dhcpd/images/ctree1.gif 0600 root bin
f none dhcpd/images/ctree2.gif 0600 root bin
f none dhcpd/images/ctree3.gif 0600 root bin
f none dhcpd/dhcpd-lib.pl 0700 root bin
f none dhcpd/edit_subnet.cgi 0700 root bin
f none dhcpd/save_options.cgi 0700 root bin
f none dhcpd/edit_shared.cgi 0700 root bin
f none dhcpd/edit_options.cgi 0700 root bin
f none dhcpd/config-osf1 0600 root bin
f none dhcpd/save_shared.cgi 0700 root bin
f none dhcpd/edit_host.cgi 0700 root bin
f none dhcpd/save_host.cgi 0700 root bin
f none dhcpd/params-lib.pl 0600 root bin
f none dhcpd/edit_group.cgi 0700 root bin
f none dhcpd/save_group.cgi 0700 root bin
f none dhcpd/config-redhat-linux 0600 root bin
f none dhcpd/config-debian-linux 0600 root bin
f none dhcpd/config-solaris 0600 root bin
f none dhcpd/config-suse-linux 0600 root bin
f none dhcpd/config-slackware-linux 0600 root bin
f none dhcpd/start.cgi 0700 root bin
f none dhcpd/restart.cgi 0700 root bin
f none dhcpd/config.info.pl 0600 root bin
d none dhcpd/help 0700 root bin
f none dhcpd/help/acl.html 0600 root bin
f none dhcpd/help/acl_info.pl.html 0600 root bin
f none dhcpd/help/acl_info.html 0600 root bin
f none dhcpd/edit_pool.cgi 0700 root bin
f none dhcpd/confirm_delete.cgi 0600 root bin
f none dhcpd/save_pool.cgi 0600 root bin
f none dhcpd/acl_security.pl 0600 root bin
f none dhcpd/defaultacl 0600 root bin
f none dhcpd/delete_all.cgi 0600 root bin
f none dhcpd/config-open-linux-3.1e 0600 root bin
f none dhcpd/config.info.ru_RU 0600 root bin
f none dhcpd/config-openserver 0600 root bin
f none dhcpd/config-unixware 0600 root bin
f none dhcpd/list_leases.cgi 0700 root bin
d none dhcpd/lang 0700 root bin
f none dhcpd/lang/en 0600 root bin
f none dhcpd/lang/ru_SU 0600 root bin
f none dhcpd/lang/fr 0600 root bin
f none dhcpd/lang/es 0600 root bin
f none dhcpd/lang/pt 0600 root bin
f none dhcpd/lang/zh_TW.Big5 0600 root bin
f none dhcpd/lang/sv 0600 root bin
f none dhcpd/lang/de 0600 root bin
f none dhcpd/lang/zh_CN 0600 root bin
f none dhcpd/lang/tr 0600 root bin
f none dhcpd/lang/pl 0600 root bin
f none dhcpd/lang/ru_RU 0600 root bin
f none dhcpd/config-openbsd 0600 root bin
f none dhcpd/config-open-linux 0600 root bin
f none dhcpd/config-turbo-linux 0600 root bin
f none dhcpd/config-redhat-linux-7.1 0600 root bin
f none dhcpd/config-suse-linux-7.1 0600 root bin
f none dhcpd/config-corel-linux 0600 root bin
f none dhcpd/config.info.fr 0600 root bin
f none dhcpd/config.info.ru_SU 0600 root bin
f none dhcpd/config.info.es 0600 root bin
f none dhcpd/config-redhat-linux-6.0 0600 root bin
f none dhcpd/config-redhat-linux-6.1 0600 root bin
f none dhcpd/config-cobalt-linux 0600 root bin
f none dhcpd/config-redhat-linux-6.2 0600 root bin
f none dhcpd/config-slackware-linux-4.0 0600 root bin
f none dhcpd/config.info.zh_TW.Big5 0600 root bin
f none dhcpd/config.info.sv 0600 root bin
f none dhcpd/config.info.de 0600 root bin
f none dhcpd/config.info.zh_CN 0600 root bin
f none dhcpd/config-irix 0600 root bin
f none dhcpd/config.info.tr 0600 root bin
f none dhcpd/log_parser.pl 0600 root bin
f none dhcpd/delete_lease.cgi 0700 root bin
d none majordomo 0700 root bin
f none majordomo/majordomo-lib.pl 0600 root bin
f none majordomo/index.cgi 0700 root bin
f none majordomo/module.info 0600 root bin
f none majordomo/config.info 0600 root bin
d none majordomo/images 0700 root bin
f none majordomo/images/icon.gif 0600 root bin
f none majordomo/images/list.gif 0600 root bin
f none majordomo/images/digest.gif 0600 root bin
f none majordomo/images/members.gif 0600 root bin
f none majordomo/images/info.gif 0600 root bin
f none majordomo/images/subs.gif 0600 root bin
f none majordomo/images/mod.gif 0600 root bin
f none majordomo/images/access.gif 0600 root bin
f none majordomo/images/misc.gif 0600 root bin
f none majordomo/images/head.gif 0600 root bin
f none majordomo/images/dig.gif 0600 root bin
f none majordomo/images/mesg.gif 0600 root bin
f none majordomo/edit_info.cgi 0700 root bin
f none majordomo/alias_setup.cgi 0700 root bin
f none majordomo/create_form.cgi 0700 root bin
f none majordomo/edit_list.cgi 0700 root bin
f none majordomo/create_list.cgi 0700 root bin
f none majordomo/edit_members.cgi 0700 root bin
f none majordomo/save_info.cgi 0700 root bin
f none majordomo/save_members.cgi 0700 root bin
f none majordomo/edit_subs.cgi 0700 root bin
f none majordomo/save_mesg.cgi 0700 root bin
f none majordomo/edit_head.cgi 0700 root bin
f none majordomo/edit_mesg.cgi 0700 root bin
f none majordomo/save_subs.cgi 0700 root bin
f none majordomo/save_head.cgi 0700 root bin
f none majordomo/edit_access.cgi 0700 root bin
f none majordomo/config 0600 root bin
f none majordomo/edit_misc.cgi 0700 root bin
f none majordomo/save_access.cgi 0700 root bin
f none majordomo/save_misc.cgi 0700 root bin
f none majordomo/edit_global.cgi 0700 root bin
f none majordomo/delete_list.cgi 0700 root bin
f none majordomo/save_global.cgi 0700 root bin
f none majordomo/acl_security.pl 0600 root bin
f none majordomo/defaultacl 0600 root bin
f none majordomo/save_auto.cgi 0700 root bin
f none majordomo/useradmin_update.pl 0600 root bin
f none majordomo/config-open-linux 0600 root bin
f none majordomo/config-debian-linux-2.2 0600 root bin
f none majordomo/config-suse-linux-6.1 0600 root bin
f none majordomo/config-suse-linux-6.2 0600 root bin
f none majordomo/config.info.fr 0600 root bin
f none majordomo/config.info.ru_SU 0600 root bin
f none majordomo/config-suse-linux-6.3 0600 root bin
f none majordomo/config.info.es 0600 root bin
f none majordomo/digest_form.cgi 0700 root bin
d none majordomo/lang 0700 root bin
f none majordomo/lang/en 0600 root bin
f none majordomo/lang/tr 0600 root bin
f none majordomo/lang/sv 0600 root bin
f none majordomo/lang/es 0600 root bin
f none majordomo/lang/zh_CN 0600 root bin
f none majordomo/create_digest.cgi 0700 root bin
f none majordomo/save_digest.cgi 0700 root bin
f none majordomo/edit_digest.cgi 0700 root bin
f none majordomo/config-suse-linux-6.4 0600 root bin
f none majordomo/config.info.zh_TW.Big5 0600 root bin
f none majordomo/config.info.sv 0600 root bin
f none majordomo/config.info.de 0600 root bin
f none majordomo/config-aix 0600 root bin
f none majordomo/config.info.zh_CN 0600 root bin
f none majordomo/config.info.tr 0600 root bin
f none majordomo/log_parser.pl 0600 root bin
f none majordomo/config.info.pl 0600 root bin
f none majordomo/config-suse-linux-7.0 0600 root bin
f none majordomo/config.info.ru_RU 0600 root bin
f none majordomo/config-suse-linux-7.1 0600 root bin
d none custom 0700 root bin
d none custom/images 0700 root bin
f none custom/images/icon.gif 0600 root bin
f none custom/index.cgi 0700 root bin
f none custom/module.info 0600 root bin
f none custom/custom-lib.pl 0600 root bin
f none custom/acl_security.pl 0700 root bin
f none custom/edit_cmd.cgi 0700 root bin
f none custom/save_cmd.cgi 0700 root bin
f none custom/defaultacl 0600 root bin
f none custom/run.cgi 0700 root bin
d none custom/help 0700 root bin
f none custom/help/intro.html 0600 root bin
f none custom/help/run.html 0600 root bin
f none custom/help/edit.html 0600 root bin
f none custom/help/create.html 0600 root bin
f none custom/help/cmd.html 0600 root bin
f none custom/help/desc.html 0600 root bin
f none custom/help/command.html 0600 root bin
f none custom/help/user.html 0600 root bin
f none custom/help/cmd.fr.html 0600 root bin
f none custom/help/raw.html 0600 root bin
f none custom/help/command.fr.html 0600 root bin
f none custom/help/create.fr.html 0600 root bin
f none custom/help/desc.fr.html 0600 root bin
f none custom/help/edit.fr.html 0600 root bin
f none custom/help/intro.fr.html 0600 root bin
f none custom/help/raw.fr.html 0600 root bin
f none custom/help/run.fr.html 0600 root bin
f none custom/help/user.fr.html 0600 root bin
f none custom/help/cmd.zh_TW.Big5.html 0600 root bin
f none custom/help/command.zh_TW.Big5.html 0600 root bin
f none custom/help/create.zh_TW.Big5.html 0600 root bin
f none custom/help/desc.zh_TW.Big5.html 0600 root bin
f none custom/help/edit.zh_TW.Big5.html 0600 root bin
f none custom/help/intro.zh_TW.Big5.html 0600 root bin
f none custom/help/raw.zh_TW.Big5.html 0600 root bin
f none custom/help/run.zh_TW.Big5.html 0600 root bin
f none custom/help/user.zh_TW.Big5.html 0600 root bin
f none custom/help/cmd.sv.html 0600 root bin
f none custom/help/command.sv.html 0600 root bin
f none custom/help/create.sv.html 0600 root bin
f none custom/help/desc.sv.html 0600 root bin
f none custom/help/edit.sv.html 0600 root bin
f none custom/help/intro.sv.html 0600 root bin
f none custom/help/raw.sv.html 0600 root bin
f none custom/help/run.sv.html 0600 root bin
f none custom/help/user.sv.html 0600 root bin
f none custom/help/desc.es.html 0600 root bin
f none custom/help/command.es.html 0600 root bin
f none custom/help/edit.es.html 0600 root bin
f none custom/help/raw.es.html 0600 root bin
f none custom/help/intro.es.html 0600 root bin
f none custom/help/create.es.html 0600 root bin
f none custom/help/run.es.html 0600 root bin
f none custom/help/user.es.html 0600 root bin
f none custom/help/cmd.es.html 0600 root bin
d none custom/lang 0700 root bin
f none custom/lang/ru_SU 0600 root bin
f none custom/lang/en 0600 root bin
f none custom/lang/es 0600 root bin
f none custom/lang/de 0600 root bin
f none custom/lang/fr 0600 root bin
f none custom/lang/pt 0600 root bin
f none custom/lang/zh_TW.Big5 0600 root bin
f none custom/lang/sv 0600 root bin
f none custom/lang/zh_CN 0600 root bin
f none custom/lang/hu 0600 root bin
f none custom/lang/tr 0600 root bin
f none custom/lang/ru_RU 0600 root bin
f none custom/lang/pl 0600 root bin
f none custom/log_parser.pl 0600 root bin
d none lilo 0700 root bin
d none lilo/images 0700 root bin
f none lilo/images/image.gif 0600 root bin
f none lilo/images/other.gif 0600 root bin
f none lilo/images/icon.gif 0600 root bin
f none lilo/module.info 0600 root bin
f none lilo/edit_image.cgi 0700 root bin
f none lilo/lilo-lib.pl 0600 root bin
f none lilo/index.cgi 0700 root bin
f none lilo/config.info 0600 root bin
f none lilo/edit_other.cgi 0700 root bin
f none lilo/edit_global.cgi 0700 root bin
f none lilo/save_image.cgi 0700 root bin
f none lilo/save_other.cgi 0700 root bin
f none lilo/config 0600 root bin
f none lilo/apply.cgi 0700 root bin
f none lilo/save_global.cgi 0700 root bin
d none lilo/lang 0700 root bin
f none lilo/lang/ru_SU 0600 root bin
f none lilo/lang/en 0600 root bin
f none lilo/lang/es 0600 root bin
f none lilo/lang/de 0600 root bin
f none lilo/lang/fr 0600 root bin
f none lilo/lang/pt 0600 root bin
f none lilo/lang/zh_TW.Big5 0600 root bin
f none lilo/lang/sv 0600 root bin
f none lilo/lang/zh_CN 0600 root bin
f none lilo/lang/hu 0600 root bin
f none lilo/lang/tr 0600 root bin
f none lilo/lang/pl 0600 root bin
f none lilo/lang/ru_RU 0600 root bin
f none lilo/config.info.de 0600 root bin
f none lilo/config.info.fr 0600 root bin
f none lilo/config.info.ru_SU 0600 root bin
f none lilo/config.info.es 0600 root bin
f none lilo/config.info.zh_TW.Big5 0600 root bin
f none lilo/config-lfs-linux 0600 root bin
f none lilo/config.info.sv 0600 root bin
f none lilo/config.info.zh_CN 0600 root bin
f none lilo/config.info.hu 0600 root bin
f none lilo/log_parser.pl 0600 root bin
f none lilo/config.info.tr 0600 root bin
f none lilo/config.info.pl 0600 root bin
f none lilo/config.info.ru_RU 0600 root bin
d none telnet 0700 root bin
f none telnet/config.info 0600 root bin
d none telnet/images 0700 root bin
f none telnet/images/icon.gif 0600 root bin
f none telnet/module.info 0600 root bin
f none telnet/index.cgi 0700 root bin
f none telnet/config 0600 root bin
d none telnet/lang 0700 root bin
f none telnet/lang/ru_SU 0600 root bin
f none telnet/lang/en 0600 root bin
f none telnet/lang/es 0600 root bin
f none telnet/lang/de 0600 root bin
f none telnet/lang/fr 0600 root bin
f none telnet/lang/pt 0600 root bin
f none telnet/lang/zh_TW.Big5 0600 root bin
f none telnet/lang/sv 0600 root bin
f none telnet/lang/it 0600 root bin
f none telnet/lang/zh_CN 0600 root bin
f none telnet/lang/tr 0600 root bin
f none telnet/lang/pl 0600 root bin
f none telnet/lang/ru_RU 0600 root bin
f none telnet/config.info.de 0600 root bin
f none telnet/config.info.fr 0600 root bin
f none telnet/config.info.ru_SU 0600 root bin
f none telnet/config.info.es 0600 root bin
f none telnet/config.info.zh_TW.Big5 0600 root bin
f none telnet/config.info.sv 0600 root bin
f none telnet/config.info.zh_CN 0600 root bin
f none telnet/jta20.jar 0600 root bin
f none telnet/telnet.conf 0600 root bin
f none telnet/ssh.conf 0600 root bin
f none telnet/config.info.tr 0600 root bin
f none telnet/config.info.pl 0600 root bin
f none telnet/config-open-linux-3.1e 0600 root bin
f none telnet/config.info.ru_RU 0600 root bin
d none servers 0700 root bin
d none servers/images 0700 root bin
f none servers/images/unknown.gif 0600 root bin
f none servers/images/icon.gif 0600 root bin
f none servers/images/linux.gif 0600 root bin
f none servers/images/suse.gif 0600 root bin
f none servers/images/caldera.gif 0600 root bin
f none servers/images/freebsd.gif 0600 root bin
f none servers/images/debian.gif 0600 root bin
f none servers/images/redhat.gif 0600 root bin
f none servers/images/solaris.gif 0600 root bin
f none servers/images/cal_spin.gif 0600 root bin
f none servers/images/openbsd.gif 0600 root bin
f none servers/images/hpux.gif 0600 root bin
f none servers/images/sco.gif 0600 root bin
f none servers/images/irix.gif 0600 root bin
f none servers/images/mac.gif 0600 root bin
f none servers/images/mandrake.gif 0600 root bin
f none servers/edit_serv.cgi 0700 root bin
f none servers/module.info 0600 root bin
f none servers/index.cgi 0700 root bin
d none servers/lang 0700 root bin
f none servers/lang/en 0600 root bin
f none servers/lang/ru_SU 0600 root bin
f none servers/lang/es 0600 root bin
f none servers/lang/de 0600 root bin
f none servers/lang/fr 0600 root bin
f none servers/lang/pt 0600 root bin
f none servers/lang/zh_TW.Big5 0600 root bin
f none servers/lang/sv 0600 root bin
f none servers/lang/zh_CN 0600 root bin
f none servers/lang/hu 0600 root bin
f none servers/lang/tr 0600 root bin
f none servers/lang/pl 0600 root bin
f none servers/lang/ru_RU 0600 root bin
f none servers/link.cgi 0700 root bin
f none servers/servers-lib.pl 0600 root bin
f none servers/find.cgi 0700 root bin
f none servers/config 0600 root bin
f none servers/save_serv.cgi 0700 root bin
f none servers/log_parser.pl 0600 root bin
f none servers/config.info.de 0600 root bin
f none servers/config.info 0600 root bin
f none servers/config.info.zh_TW.Big5 0600 root bin
f none servers/config.info.es 0600 root bin
f none servers/config.info.sv 0600 root bin
f none servers/config.info.hu 0600 root bin
f none servers/config.info.tr 0600 root bin
f none servers/config.info.pl 0600 root bin
f none servers/acl_security.pl 0600 root bin
f none servers/config.info.zh_CN 0600 root bin
f none servers/defaultacl 0600 root bin
d none time 0700 root bin
f none time/apply.cgi 0700 root bin
f none time/config 0600 root bin
d none time/images 0700 root bin
f none time/images/icon.gif 0600 root bin
f none time/index.cgi 0700 root bin
f none time/config.info 0600 root bin
f none time/module.info 0600 root bin
f none time/time-lib.pl 0700 root bin
d none time/help 0700 root bin
f none time/help/hardware_time.html 0600 root bin
f none time/help/system_time.html 0600 root bin
f none time/help/index.html 0600 root bin
f none time/help/hardware_time.fr.html 0600 root bin
f none time/help/index.fr.html 0600 root bin
f none time/help/system_time.fr.html 0600 root bin
f none time/help/timeserver.fr.html 0600 root bin
f none time/help/timeserver.html 0600 root bin
f none time/help/hardware_time.es.html 0600 root bin
f none time/help/index.es.html 0600 root bin
f none time/help/system_time.es.html 0600 root bin
f none time/help/timeserver.es.html 0600 root bin
f none time/help/hardware_time.ru_SU.html 0600 root bin
f none time/help/index.ru_SU.html 0600 root bin
f none time/help/system_time.ru_SU.html 0600 root bin
f none time/help/timeserver.ru_SU.html 0600 root bin
f none time/help/index.zh_TW.Big5.html 0600 root bin
f none time/help/hardware_time.zh_TW.Big5.html 0600 root bin
f none time/help/system_time.zh_TW.Big5.html 0600 root bin
f none time/help/timeserver.zh_TW.Big5.html 0600 root bin
f none time/help/hardware_time.sv.html 0600 root bin
f none time/help/index.sv.html 0600 root bin
f none time/help/system_time.sv.html 0600 root bin
f none time/help/timeserver.sv.html 0600 root bin
f none time/help/hardware_time.hu.html 0600 root bin
f none time/help/index.hu.html 0600 root bin
f none time/help/system_time.hu.html 0600 root bin
f none time/help/timeserver.hu.html 0600 root bin
f none time/help/hardware_time.pl.html 0600 root bin
f none time/help/index.pl.html 0600 root bin
f none time/help/system_time.pl.html 0600 root bin
f none time/help/timeserver.pl.html 0600 root bin
f none time/help/hardware_time.ru_RU.html 0600 root bin
f none time/help/index.ru_RU.html 0600 root bin
f none time/help/system_time.ru_RU.html 0600 root bin
f none time/help/timeserver.ru_RU.html 0600 root bin
f none time/acl_security.pl 0600 root bin
d none time/lang 0700 root bin
f none time/lang/en 0600 root bin
f none time/lang/fr 0600 root bin
f none time/lang/de 0600 root bin
f none time/lang/es 0600 root bin
f none time/lang/ru_SU 0600 root bin
f none time/lang/zh_TW.Big5 0600 root bin
f none time/lang/sv 0600 root bin
f none time/lang/zh_CN 0600 root bin
f none time/lang/hu 0600 root bin
f none time/lang/tr 0600 root bin
f none time/lang/pl 0600 root bin
f none time/lang/ru_RU 0600 root bin
f none time/defaultacl 0600 root bin
f none time/config.info.fr 0600 root bin
f none time/try.cgi 0700 root bin
f none time/config.info.de 0600 root bin
f none time/config.info.es 0600 root bin
f none time/config-hpux 0600 root bin
f none time/log_parser.pl 0600 root bin
f none time/config.info.ru_SU 0600 root bin
f none time/config.info.zh_TW.Big5 0600 root bin
f none time/config.info.sv 0600 root bin
f none time/config.info.zh_CN 0600 root bin
f none time/config.info.tr 0600 root bin
f none time/config.info.pl 0600 root bin
f none time/config.info.ru_RU 0600 root bin
f none time/config-macos 0600 root bin
f none time/config-solaris 0600 root bin
d none wuftpd 0700 root bin
d none wuftpd/images 0700 root bin
f none wuftpd/images/misc.gif 0600 root bin
f none wuftpd/images/net.gif 0600 root bin
f none wuftpd/images/aliases.gif 0600 root bin
f none wuftpd/images/log.gif 0600 root bin
f none wuftpd/images/icon.gif 0600 root bin
f none wuftpd/images/class.gif 0600 root bin
f none wuftpd/images/message.gif 0600 root bin
f none wuftpd/images/acl.gif 0600 root bin
f none wuftpd/images/perm.gif 0600 root bin
f none wuftpd/images/alias.gif 0600 root bin
f none wuftpd/images/anon.gif 0600 root bin
d none wuftpd/help 0700 root bin
f none wuftpd/help/message.html 0600 root bin
f none wuftpd/help/intro.html 0600 root bin
f none wuftpd/help/class.html 0600 root bin
f none wuftpd/help/acl.fr.html 0600 root bin
f none wuftpd/help/acl.html 0600 root bin
f none wuftpd/help/net.html 0600 root bin
f none wuftpd/help/log.html 0600 root bin
f none wuftpd/help/alias.html 0600 root bin
f none wuftpd/help/anon.html 0600 root bin
f none wuftpd/help/perm.html 0600 root bin
f none wuftpd/help/misc.html 0600 root bin
f none wuftpd/help/alias.fr.html 0600 root bin
f none wuftpd/help/anon.fr.html 0600 root bin
f none wuftpd/help/class.fr.html 0600 root bin
f none wuftpd/help/intro.fr.html 0600 root bin
f none wuftpd/help/log.fr.html 0600 root bin
f none wuftpd/help/message.fr.html 0600 root bin
f none wuftpd/help/misc.fr.html 0600 root bin
f none wuftpd/help/net.fr.html 0600 root bin
f none wuftpd/help/perm.fr.html 0600 root bin
f none wuftpd/help/acl.es.html 0600 root bin
f none wuftpd/help/alias.es.html 0600 root bin
f none wuftpd/help/anon.es.html 0600 root bin
f none wuftpd/help/class.es.html 0600 root bin
f none wuftpd/help/intro.es.html 0600 root bin
f none wuftpd/help/log.es.html 0600 root bin
f none wuftpd/help/message.es.html 0600 root bin
f none wuftpd/help/misc.es.html 0600 root bin
f none wuftpd/help/net.es.html 0600 root bin
f none wuftpd/help/perm.es.html 0600 root bin
f none wuftpd/help/acl.ru_SU.html 0600 root bin
f none wuftpd/help/alias.ru_SU.html 0600 root bin
f none wuftpd/help/anon.ru_SU.html 0600 root bin
f none wuftpd/help/class.ru_SU.html 0600 root bin
f none wuftpd/help/intro.ru_SU.html 0600 root bin
f none wuftpd/help/log.ru_SU.html 0600 root bin
f none wuftpd/help/message.ru_SU.html 0600 root bin
f none wuftpd/help/misc.ru_SU.html 0600 root bin
f none wuftpd/help/net.ru_SU.html 0600 root bin
f none wuftpd/help/perm.ru_SU.html 0600 root bin
f none wuftpd/help/acl.zh_TW.Big5.html 0600 root bin
f none wuftpd/help/alias.zh_TW.Big5.html 0600 root bin
f none wuftpd/help/anon.zh_TW.Big5.html 0600 root bin
f none wuftpd/help/class.zh_TW.Big5.html 0600 root bin
f none wuftpd/help/intro.zh_TW.Big5.html 0600 root bin
f none wuftpd/help/log.zh_TW.Big5.html 0600 root bin
f none wuftpd/help/message.zh_TW.Big5.html 0600 root bin
f none wuftpd/help/misc.zh_TW.Big5.html 0600 root bin
f none wuftpd/help/net.zh_TW.Big5.html 0600 root bin
f none wuftpd/help/perm.zh_TW.Big5.html 0600 root bin
f none wuftpd/help/acl.sv.html 0600 root bin
f none wuftpd/help/alias.sv.html 0600 root bin
f none wuftpd/help/anon.sv.html 0600 root bin
f none wuftpd/help/class.sv.html 0600 root bin
f none wuftpd/help/intro.sv.html 0600 root bin
f none wuftpd/help/log.sv.html 0600 root bin
f none wuftpd/help/message.sv.html 0600 root bin
f none wuftpd/help/misc.sv.html 0600 root bin
f none wuftpd/help/net.sv.html 0600 root bin
f none wuftpd/help/perm.sv.html 0600 root bin
f none wuftpd/help/acl.pl.html 0600 root bin
f none wuftpd/help/alias.pl.html 0600 root bin
f none wuftpd/help/anon.pl.html 0600 root bin
f none wuftpd/help/class.pl.html 0600 root bin
f none wuftpd/help/intro.pl.html 0600 root bin
f none wuftpd/help/log.pl.html 0600 root bin
f none wuftpd/help/message.pl.html 0600 root bin
f none wuftpd/help/misc.pl.html 0600 root bin
f none wuftpd/help/net.pl.html 0600 root bin
f none wuftpd/help/perm.pl.html 0600 root bin
f none wuftpd/help/acl.ru_RU.html 0600 root bin
f none wuftpd/help/alias.ru_RU.html 0600 root bin
f none wuftpd/help/anon.ru_RU.html 0600 root bin
f none wuftpd/help/class.ru_RU.html 0600 root bin
f none wuftpd/help/intro.ru_RU.html 0600 root bin
f none wuftpd/help/log.ru_RU.html 0600 root bin
f none wuftpd/help/message.ru_RU.html 0600 root bin
f none wuftpd/help/misc.ru_RU.html 0600 root bin
f none wuftpd/help/net.ru_RU.html 0600 root bin
f none wuftpd/help/perm.ru_RU.html 0600 root bin
f none wuftpd/wuftpd-lib.pl 0600 root bin
f none wuftpd/index.cgi 0700 root bin
d none wuftpd/lang 0700 root bin
f none wuftpd/lang/en 0600 root bin
f none wuftpd/lang/de 0600 root bin
f none wuftpd/lang/fr 0600 root bin
f none wuftpd/lang/es 0600 root bin
f none wuftpd/lang/ru_SU 0600 root bin
f none wuftpd/lang/zh_TW.Big5 0600 root bin
f none wuftpd/lang/sv 0600 root bin
f none wuftpd/lang/zh_CN 0600 root bin
f none wuftpd/lang/tr 0600 root bin
f none wuftpd/lang/pl 0600 root bin
f none wuftpd/lang/ru_RU 0600 root bin
f none wuftpd/config.info 0600 root bin
f none wuftpd/module.info 0600 root bin
f none wuftpd/save_message.cgi 0700 root bin
f none wuftpd/edit_class.cgi 0700 root bin
f none wuftpd/edit_message.cgi 0700 root bin
f none wuftpd/save_class.cgi 0700 root bin
f none wuftpd/edit_anon.cgi 0700 root bin
f none wuftpd/edit_acl.cgi 0700 root bin
f none wuftpd/save_acl.cgi 0700 root bin
f none wuftpd/config-open-linux 0600 root bin
f none wuftpd/config-solaris 0600 root bin
f none wuftpd/edit_net.cgi 0700 root bin
f none wuftpd/save_net.cgi 0700 root bin
f none wuftpd/edit_log.cgi 0700 root bin
f none wuftpd/save_log.cgi 0700 root bin
f none wuftpd/restart.cgi 0700 root bin
f none wuftpd/edit_alias.cgi 0700 root bin
f none wuftpd/save_alias.cgi 0700 root bin
f none wuftpd/save_anon.cgi 0700 root bin
f none wuftpd/edit_perm.cgi 0700 root bin
f none wuftpd/save_perm.cgi 0700 root bin
f none wuftpd/edit_misc.cgi 0700 root bin
f none wuftpd/save_misc.cgi 0700 root bin
f none wuftpd/start.cgi 0700 root bin
f none wuftpd/config-redhat-linux 0600 root bin
f none wuftpd/config-suse-linux 0600 root bin
f none wuftpd/config-debian-linux 0600 root bin
f none wuftpd/config-freebsd 0600 root bin
f none wuftpd/config-openbsd 0600 root bin
f none wuftpd/config-slackware-linux 0600 root bin
f none wuftpd/config-corel-linux 0600 root bin
f none wuftpd/config-turbo-linux 0600 root bin
f none wuftpd/config-hpux 0600 root bin
f none wuftpd/config-aix 0600 root bin
f none wuftpd/config-osf1 0600 root bin
f none wuftpd/config-macos 0600 root bin
f none wuftpd/config.info.de 0600 root bin
f none wuftpd/config.info.fr 0600 root bin
f none wuftpd/config.info.es 0600 root bin
f none wuftpd/config.info.ru_SU 0600 root bin
f none wuftpd/config.info.zh_TW.Big5 0600 root bin
f none wuftpd/config-lfs-linux 0600 root bin
f none wuftpd/config.info.sv 0600 root bin
f none wuftpd/config.info.zh_CN 0600 root bin
f none wuftpd/log_parser.pl 0600 root bin
f none wuftpd/config.info.tr 0600 root bin
f none wuftpd/config.info.pl 0600 root bin
f none wuftpd/config.info.ru_RU 0600 root bin
d none syslog 0700 root bin
f none syslog/module.info 0600 root bin
d none syslog/images 0700 root bin
f none syslog/images/icon.gif 0600 root bin
f none syslog/config.info 0600 root bin
f none syslog/syslog-lib.pl 0600 root bin
f none syslog/index.cgi 0700 root bin
d none syslog/lang 0700 root bin
f none syslog/lang/en 0600 root bin
f none syslog/lang/de 0600 root bin
f none syslog/lang/ru_SU 0600 root bin
f none syslog/lang/zh_TW.Big5 0600 root bin
f none syslog/lang/es 0600 root bin
f none syslog/lang/sv 0600 root bin
f none syslog/lang/zh_CN 0600 root bin
f none syslog/lang/tr 0600 root bin
f none syslog/lang/pl 0600 root bin
f none syslog/lang/hu 0600 root bin
f none syslog/lang/ru_RU 0600 root bin
f none syslog/lang/fr 0600 root bin
f none syslog/m4.cgi 0700 root bin
f none syslog/edit_log.cgi 0700 root bin
f none syslog/start.cgi 0700 root bin
f none syslog/restart.cgi 0700 root bin
f none syslog/save_log.cgi 0700 root bin
f none syslog/low.risk 0600 root bin
f none syslog/config-open-linux 0600 root bin
f none syslog/config-solaris 0600 root bin
f none syslog/config-redhat-linux 0600 root bin
f none syslog/config-debian-linux 0600 root bin
f none syslog/config-suse-linux 0600 root bin
f none syslog/config-slackware-linux 0600 root bin
f none syslog/config-freebsd 0600 root bin
f none syslog/config-openbsd 0600 root bin
f none syslog/config-turbo-linux 0600 root bin
f none syslog/config-corel-linux 0600 root bin
f none syslog/config-macos 0600 root bin
f none syslog/config-hpux 0600 root bin
f none syslog/config.info.de 0600 root bin
f none syslog/config-cobalt-linux 0600 root bin
f none syslog/config.info.es 0600 root bin
f none syslog/config-aix 0600 root bin
f none syslog/config.info.ru_SU 0600 root bin
f none syslog/config.info.zh_TW.Big5 0600 root bin
f none syslog/config.info.sv 0600 root bin
f none syslog/config.info.zh_CN 0600 root bin
f none syslog/log_parser.pl 0600 root bin
f none syslog/config-irix 0600 root bin
f none syslog/config.info.tr 0600 root bin
f none syslog/config.info.pl 0600 root bin
f none syslog/config.info.hu 0600 root bin
f none syslog/low.skill 0600 root bin
f none syslog/medium.risk 0600 root bin
f none syslog/config-unixware 0600 root bin
f none syslog/config.info.ru_RU 0600 root bin
f none syslog/config.info.fr 0600 root bin
d none mysql 0700 root bin
f none mysql/mysql-lib.pl 0600 root bin
f none mysql/module.info 0600 root bin
d none mysql/images 0700 root bin
f none mysql/images/db.gif 0600 root bin
f none mysql/images/icon.gif 0600 root bin
f none mysql/images/mysql.gif 0600 root bin
f none mysql/images/table.gif 0600 root bin
f none mysql/images/users.gif 0600 root bin
f none mysql/images/hosts.gif 0600 root bin
f none mysql/images/dbs.gif 0600 root bin
f none mysql/images/tprivs.gif 0600 root bin
f none mysql/images/cprivs.gif 0600 root bin
f none mysql/images/delete.gif 0600 root bin
f none mysql/images/edit.gif 0600 root bin
f none mysql/config.info 0600 root bin
f none mysql/index.cgi 0700 root bin
f none mysql/stop.cgi 0700 root bin
f none mysql/start.cgi 0700 root bin
d none mysql/lang 0700 root bin
f none mysql/lang/en 0600 root bin
f none mysql/lang/de 0600 root bin
f none mysql/lang/zh_TW.Big5 0600 root bin
f none mysql/lang/es 0600 root bin
f none mysql/lang/sv 0600 root bin
f none mysql/lang/it 0600 root bin
f none mysql/lang/zh_CN 0600 root bin
f none mysql/lang/he 0600 root bin
f none mysql/lang/tr 0600 root bin
f none mysql/lang/hu 0600 root bin
f none mysql/lang/pl 0600 root bin
f none mysql/edit_table.cgi 0700 root bin
f none mysql/login.cgi 0700 root bin
f none mysql/edit_db.cgi 0700 root bin
f none mysql/edit_dbase.cgi 0700 root bin
f none mysql/edit_field.cgi 0700 root bin
f none mysql/save_field.cgi 0700 root bin
f none mysql/view_table.cgi 0700 root bin
f none mysql/table_form.cgi 0700 root bin
f none mysql/backup_form.cgi 0700 root bin
f none mysql/backup_db.cgi 0700 root bin
f none mysql/create_table.cgi 0700 root bin
f none mysql/drop_table.cgi 0700 root bin
f none mysql/list_users.cgi 0700 root bin
f none mysql/edit_user.cgi 0700 root bin
f none mysql/save_user.cgi 0700 root bin
f none mysql/list_dbs.cgi 0700 root bin
f none mysql/list_hosts.cgi 0700 root bin
f none mysql/save_db.cgi 0700 root bin
f none mysql/edit_host.cgi 0700 root bin
f none mysql/save_host.cgi 0700 root bin
d none mysql/help 0700 root bin
f none mysql/help/users.html 0600 root bin
f none mysql/help/edit_user.html 0600 root bin
f none mysql/help/create_user.html 0600 root bin
f none mysql/help/user.html 0600 root bin
f none mysql/help/dbs.html 0600 root bin
f none mysql/help/field.html 0600 root bin
f none mysql/help/db.html 0600 root bin
f none mysql/help/edit_db.html 0600 root bin
f none mysql/help/create_db.html 0600 root bin
f none mysql/help/create_tpriv.html 0600 root bin
f none mysql/help/edit_dbase.html 0600 root bin
f none mysql/help/edit_table.html 0600 root bin
f none mysql/help/edit_field.html 0600 root bin
f none mysql/help/newdb_form.html 0600 root bin
f none mysql/help/create_field.html 0600 root bin
f none mysql/help/table_form.html 0600 root bin
f none mysql/help/exec_form.html 0600 root bin
f none mysql/help/intro.html 0600 root bin
f none mysql/help/edit_tpriv.html 0600 root bin
f none mysql/help/tprivs.html 0600 root bin
f none mysql/help/cprivs.html 0600 root bin
f none mysql/help/tpriv.html 0600 root bin
f none mysql/help/create_cpriv.html 0600 root bin
f none mysql/help/edit_cpriv.html 0600 root bin
f none mysql/help/cpriv.html 0600 root bin
f none mysql/help/cpriv.es.html 0600 root bin
f none mysql/help/cprivs.es.html 0600 root bin
f none mysql/help/create_cpriv.es.html 0600 root bin
f none mysql/help/create_db.es.html 0600 root bin
f none mysql/help/create_field.es.html 0600 root bin
f none mysql/help/create_tpriv.es.html 0600 root bin
f none mysql/help/create_user.es.html 0600 root bin
f none mysql/help/db.es.html 0600 root bin
f none mysql/help/dbs.es.html 0600 root bin
f none mysql/help/edit_cpriv.es.html 0600 root bin
f none mysql/help/edit_db.es.html 0600 root bin
f none mysql/help/edit_dbase.es.html 0600 root bin
f none mysql/help/edit_field.es.html 0600 root bin
f none mysql/help/edit_table.es.html 0600 root bin
f none mysql/help/edit_tpriv.es.html 0600 root bin
f none mysql/help/edit_user.es.html 0600 root bin
f none mysql/help/exec_form.es.html 0600 root bin
f none mysql/help/field.es.html 0600 root bin
f none mysql/help/intro.es.html 0600 root bin
f none mysql/help/newdb_form.es.html 0600 root bin
f none mysql/help/table_form.es.html 0600 root bin
f none mysql/help/tpriv.es.html 0600 root bin
f none mysql/help/tprivs.es.html 0600 root bin
f none mysql/help/user.es.html 0600 root bin
f none mysql/help/users.es.html 0600 root bin
f none mysql/help/cpriv.zh_TW.Big5.html 0600 root bin
f none mysql/help/cprivs.zh_TW.Big5.html 0600 root bin
f none mysql/help/create_cpriv.zh_TW.Big5.html 0600 root bin
f none mysql/help/create_db.zh_TW.Big5.html 0600 root bin
f none mysql/help/create_field.zh_TW.Big5.html 0600 root bin
f none mysql/help/create_tpriv.zh_TW.Big5.html 0600 root bin
f none mysql/help/create_user.zh_TW.Big5.html 0600 root bin
f none mysql/help/db.zh_TW.Big5.html 0600 root bin
f none mysql/help/dbs.zh_TW.Big5.html 0600 root bin
f none mysql/help/edit_cpriv.zh_TW.Big5.html 0600 root bin
f none mysql/help/edit_db.zh_TW.Big5.html 0600 root bin
f none mysql/help/edit_dbase.zh_TW.Big5.html 0600 root bin
f none mysql/help/edit_field.zh_TW.Big5.html 0600 root bin
f none mysql/help/edit_table.zh_TW.Big5.html 0600 root bin
f none mysql/help/edit_tpriv.zh_TW.Big5.html 0600 root bin
f none mysql/help/edit_user.zh_TW.Big5.html 0600 root bin
f none mysql/help/exec_form.zh_TW.Big5.html 0600 root bin
f none mysql/help/cpriv.sv.html 0600 root bin
f none mysql/help/field.zh_TW.Big5.html 0600 root bin
f none mysql/help/intro.zh_TW.Big5.html 0600 root bin
f none mysql/help/newdb_form.zh_TW.Big5.html 0600 root bin
f none mysql/help/table_form.zh_TW.Big5.html 0600 root bin
f none mysql/help/tpriv.zh_TW.Big5.html 0600 root bin
f none mysql/help/tprivs.zh_TW.Big5.html 0600 root bin
f none mysql/help/user.zh_TW.Big5.html 0600 root bin
f none mysql/help/users.zh_TW.Big5.html 0600 root bin
f none mysql/help/cprivs.sv.html 0600 root bin
f none mysql/help/create_cpriv.sv.html 0600 root bin
f none mysql/help/create_db.sv.html 0600 root bin
f none mysql/help/create_field.sv.html 0600 root bin
f none mysql/help/create_tpriv.sv.html 0600 root bin
f none mysql/help/create_user.sv.html 0600 root bin
f none mysql/help/db.sv.html 0600 root bin
f none mysql/help/dbs.sv.html 0600 root bin
f none mysql/help/edit_cpriv.sv.html 0600 root bin
f none mysql/help/edit_db.sv.html 0600 root bin
f none mysql/help/edit_dbase.sv.html 0600 root bin
f none mysql/help/edit_field.sv.html 0600 root bin
f none mysql/help/edit_table.sv.html 0600 root bin
f none mysql/help/edit_tpriv.sv.html 0600 root bin
f none mysql/help/edit_user.sv.html 0600 root bin
f none mysql/help/exec_form.sv.html 0600 root bin
f none mysql/help/field.sv.html 0600 root bin
f none mysql/help/intro.sv.html 0600 root bin
f none mysql/help/newdb_form.sv.html 0600 root bin
f none mysql/help/table_form.sv.html 0600 root bin
f none mysql/help/tpriv.sv.html 0600 root bin
f none mysql/help/tprivs.sv.html 0600 root bin
f none mysql/help/user.sv.html 0600 root bin
f none mysql/help/users.sv.html 0600 root bin
f none mysql/help/backup_form.html 0600 root bin
f none mysql/exec_file.cgi 0600 root bin
f none mysql/config-redhat-linux-7.1 0600 root bin
f none mysql/config-suse-linux-7.1 0600 root bin
f none mysql/newdb.cgi 0700 root bin
f none mysql/newdb_form.cgi 0700 root bin
f none mysql/drop_dbase.cgi 0700 root bin
f none mysql/list_tprivs.cgi 0700 root bin
f none mysql/exec.cgi 0700 root bin
f none mysql/exec_form.cgi 0700 root bin
f none mysql/edit_cpriv.cgi 0700 root bin
f none mysql/edit_tpriv.cgi 0700 root bin
f none mysql/save_tpriv.cgi 0700 root bin
f none mysql/list_cprivs.cgi 0700 root bin
f none mysql/save_cpriv.cgi 0700 root bin
f none mysql/config-freebsd 0600 root bin
f none mysql/config 0600 root bin
f none mysql/config-open-linux 0600 root bin
f none mysql/config-redhat-linux 0600 root bin
f none mysql/config-suse-linux 0600 root bin
f none mysql/config-turbo-linux 0600 root bin
f none mysql/config.info.de 0600 root bin
f none mysql/config-debian-linux 0600 root bin
f none mysql/config-cobalt-linux 0600 root bin
f none mysql/config.info.es 0600 root bin
f none mysql/acl_security.pl 0600 root bin
f none mysql/defaultacl 0600 root bin
f none mysql/config.info.zh_TW.Big5 0600 root bin
f none mysql/config-debian-linux-2.2 0600 root bin
f none mysql/config.info.zh_CN 0600 root bin
f none mysql/config.info.sv 0600 root bin
f none mysql/config-aix 0600 root bin
f none mysql/log_parser.pl 0600 root bin
f none mysql/config.info.tr 0600 root bin
f none mysql/config.info.pl 0600 root bin
f none mysql/config-redhat-linux-7.0 0600 root bin
f none mysql/config.info.hu 0600 root bin
d none man 0700 root bin
d none man/images 0700 root bin
f none man/images/icon.gif 0600 root bin
f none man/module.info 0600 root bin
f none man/config-solaris 0600 root bin
f none man/config.info 0600 root bin
f none man/index.cgi 0700 root bin
d none man/lang 0700 root bin
f none man/lang/de 0600 root bin
f none man/lang/en 0600 root bin
f none man/lang/fr 0600 root bin
f none man/lang/ru_SU 0600 root bin
f none man/lang/zh_TW.Big5 0600 root bin
f none man/lang/es 0600 root bin
f none man/lang/sv 0600 root bin
f none man/lang/it 0600 root bin
f none man/lang/zh_CN 0600 root bin
f none man/lang/hu 0600 root bin
f none man/lang/tr 0600 root bin
f none man/lang/pl 0600 root bin
f none man/lang/ru_RU 0600 root bin
f none man/man-lib.pl 0600 root bin
f none man/search.cgi 0700 root bin
f none man/config-open-linux 0600 root bin
f none man/config-redhat-linux 0600 root bin
f none man/config-slackware-linux 0600 root bin
f none man/config-debian-linux 0600 root bin
f none man/config-corel-linux 0600 root bin
f none man/config-suse-linux 0600 root bin
f none man/config-turbo-linux 0600 root bin
f none man/config-freebsd 0600 root bin
f none man/config-openbsd 0600 root bin
f none man/config-macos 0600 root bin
d none man/help 0700 root bin
f none man/help/intro.fr.html 0600 root bin
f none man/help/intro.html 0600 root bin
f none man/help/intro.ru_SU.html 0600 root bin
f none man/help/intro.es.html 0600 root bin
f none man/help/intro.sv.html 0600 root bin
f none man/help/intro.hu.html 0600 root bin
f none man/help/intro.pl.html 0600 root bin
f none man/help/intro.ru_RU.html 0600 root bin
f none man/config.info.fr 0600 root bin
f none man/config-aix 0600 root bin
f none man/config-cobalt-linux 0600 root bin
f none man/config.info.es 0600 root bin
f none man/config.info.ru_SU 0600 root bin
f none man/config.info.zh_TW.Big5 0600 root bin
f none man/config-lfs-linux 0600 root bin
f none man/config.info.sv 0600 root bin
f none man/config.info.de 0600 root bin
f none man/config.info.zh_CN 0600 root bin
f none man/config-irix 0600 root bin
f none man/config.info.hu 0600 root bin
f none man/config.info.tr 0600 root bin
f none man/config.info.pl 0600 root bin
f none man/view_howto.cgi 0700 root bin
f none man/view_doc.cgi 0700 root bin
f none man/view_man.cgi 0700 root bin
f none man/view_kernel.cgi 0700 root bin
f none man/view_kde.cgi 0700 root bin
f none man/view_perl.cgi 0700 root bin
f none man/config-hpux 0600 root bin
f none man/config-open-linux-3.1e 0600 root bin
f none man/config.info.ru_RU 0600 root bin
f none man/config-redhat-linux-7.0 0600 root bin
f none man/config-redhat-linux-7.1 0600 root bin
f none man/config-suse-linux-7.1 0600 root bin
d none inittab 0700 root bin
f none inittab/config 0600 root bin
f none inittab/config.info 0600 root bin
f none inittab/edit_inittab.cgi 0700 root bin
d none inittab/help 0700 root bin
f none inittab/help/action.fr.html 0600 root bin
f none inittab/help/action.html 0600 root bin
f none inittab/help/id.fr.html 0600 root bin
f none inittab/help/id.html 0600 root bin
f none inittab/help/index.fr.html 0600 root bin
f none inittab/help/index.html 0600 root bin
f none inittab/help/process.fr.html 0600 root bin
f none inittab/help/process.html 0600 root bin
f none inittab/help/runlevels.fr.html 0600 root bin
f none inittab/help/runlevels.html 0600 root bin
f none inittab/help/action.ru_SU.html 0600 root bin
f none inittab/help/id.ru_SU.html 0600 root bin
f none inittab/help/index.ru_SU.html 0600 root bin
f none inittab/help/process.ru_SU.html 0600 root bin
f none inittab/help/runlevels.ru_SU.html 0600 root bin
f none inittab/help/action.sv.html 0600 root bin
f none inittab/help/id.sv.html 0600 root bin
f none inittab/help/index.sv.html 0600 root bin
f none inittab/help/process.sv.html 0600 root bin
f none inittab/help/runlevels.sv.html 0600 root bin
f none inittab/help/action.pl.html 0600 root bin
f none inittab/help/id.pl.html 0600 root bin
f none inittab/help/index.pl.html 0600 root bin
f none inittab/help/process.pl.html 0600 root bin
f none inittab/help/runlevels.pl.html 0600 root bin
f none inittab/help/action.ru_RU.html 0600 root bin
f none inittab/help/id.ru_RU.html 0600 root bin
f none inittab/help/index.ru_RU.html 0600 root bin
f none inittab/help/process.ru_RU.html 0600 root bin
f none inittab/help/runlevels.ru_RU.html 0600 root bin
f none inittab/help/action.es.html 0600 root bin
f none inittab/help/id.es.html 0600 root bin
f none inittab/help/index.es.html 0600 root bin
f none inittab/help/process.es.html 0600 root bin
f none inittab/help/runlevels.es.html 0600 root bin
f none inittab/index.cgi 0700 root bin
f none inittab/inittab-lib.pl 0700 root bin
d none inittab/lang 0700 root bin
f none inittab/lang/en 0600 root bin
f none inittab/lang/fr 0600 root bin
f none inittab/lang/ru_SU 0600 root bin
f none inittab/lang/zh_TW.Big5 0600 root bin
f none inittab/lang/es 0600 root bin
f none inittab/lang/sv 0600 root bin
f none inittab/lang/de 0600 root bin
f none inittab/lang/zh_CN 0600 root bin
f none inittab/lang/tr 0600 root bin
f none inittab/lang/pl 0600 root bin
f none inittab/lang/ru_RU 0600 root bin
f none inittab/module.info 0600 root bin
f none inittab/new_inittab.cgi 0700 root bin
f none inittab/save_inittab.cgi 0700 root bin
d none inittab/images 0700 root bin
f none inittab/images/icon.gif 0600 root bin
f none inittab/config.info.fr 0600 root bin
f none inittab/config.info.es 0600 root bin
f none inittab/defaultacl 0600 root bin
f none inittab/log_parser.pl 0600 root bin
f none inittab/config.info.ru_SU 0600 root bin
f none inittab/config.info.zh_TW.Big5 0600 root bin
f none inittab/config.info.sv 0600 root bin
f none inittab/config.info.de 0600 root bin
f none inittab/config.info.zh_CN 0600 root bin
f none inittab/config.info.tr 0600 root bin
f none inittab/config.info.pl 0600 root bin
f none inittab/config.info.ru_RU 0600 root bin
d none raid 0700 root bin
d none raid/images 0700 root bin
f none raid/images/0.gif 0600 root bin
f none raid/images/disk.gif 0600 root bin
f none raid/images/0.ia.gif 0600 root bin
f none raid/images/1.gif 0600 root bin
f none raid/images/1.ia.gif 0600 root bin
f none raid/images/linear.gif 0600 root bin
f none raid/images/linear.ia.gif 0600 root bin
f none raid/images/4.gif 0600 root bin
f none raid/images/4.ia.gif 0600 root bin
f none raid/images/5.gif 0600 root bin
f none raid/images/5.ia.gif 0600 root bin
f none raid/images/icon.gif 0600 root bin
f none raid/module.info 0600 root bin
d none raid/lang 0700 root bin
f none raid/lang/en 0600 root bin
f none raid/lang/ru_SU 0600 root bin
f none raid/lang/zh_TW.Big5 0600 root bin
f none raid/lang/es 0600 root bin
f none raid/lang/sv 0600 root bin
f none raid/lang/de 0600 root bin
f none raid/lang/zh_CN 0600 root bin
f none raid/lang/ru_RU 0600 root bin
f none raid/lang/pl 0600 root bin
f none raid/view_raid.cgi 0700 root bin
f none raid/raid-lib.pl 0600 root bin
f none raid/index.cgi 0700 root bin
f none raid/config.info 0600 root bin
f none raid/raid_form.cgi 0700 root bin
f none raid/save_raid.cgi 0700 root bin
f none raid/mkfs.cgi 0700 root bin
f none raid/create_raid.cgi 0700 root bin
f none raid/config 0600 root bin
f none raid/log_parser.pl 0600 root bin
f none raid/config.info.ru_SU 0600 root bin
f none raid/config.info.zh_TW.Big5 0600 root bin
f none raid/config.info.es 0600 root bin
f none raid/config.info.sv 0600 root bin
f none raid/config.info.de 0600 root bin
f none raid/config.info.zh_CN 0600 root bin
f none raid/config.info.tr 0600 root bin
f none raid/config.info.pl 0600 root bin
f none raid/config.info.ru_RU 0600 root bin
d none postfix 0700 root bin
f none postfix/aliases.cgi 0700 root bin
f none postfix/canonical.cgi 0700 root bin
f none postfix/canonical_edit.cgi 0700 root bin
f none postfix/config.info.de 0600 root bin
f none postfix/config.info 0600 root bin
f none postfix/config.info.fr 0600 root bin
f none postfix/debug.cgi 0700 root bin
f none postfix/defaultacl 0600 root bin
f none postfix/edit_alias.cgi 0700 root bin
f none postfix/edit_canonical_mappings.cgi 0700 root bin
f none postfix/edit_mapping.cgi 0700 root bin
f none postfix/general.cgi 0700 root bin
d none postfix/help 0700 root bin
f none postfix/help/aliases.html 0600 root bin
f none postfix/help/canonical.html 0600 root bin
f none postfix/help/general_opts.html 0600 root bin
f none postfix/help/intro.html 0600 root bin
f none postfix/help/opt_2bounce_notice_recipient.html 0600 root bin
f none postfix/help/opt_access_map_reject_code.html 0600 root bin
f none postfix/help/opt_alias_database.html 0600 root bin
f none postfix/help/opt_alias_maps.html 0600 root bin
f none postfix/help/opt_allow_mail_to_commands.html 0600 root bin
f none postfix/help/opt_allow_mail_to_files.html 0600 root bin
f none postfix/help/opt_allow_untrusted_routing.html 0600 root bin
f none postfix/help/opt_always_bcc.html 0600 root bin
f none postfix/help/opt_best_mx_transport.html 0600 root bin
f none postfix/help/opt_bounce_notice_recipient.html 0600 root bin
f none postfix/help/opt_bounce_size_limit.html 0600 root bin
f none postfix/help/opt_canonical_maps.html 0600 root bin
f none postfix/help/opt_command_time_limit.html 0600 root bin
f none postfix/help/opt_daemon_timeout.html 0600 root bin
f none postfix/help/opt_debug_peer_level.html 0600 root bin
f none postfix/help/opt_debug_peer_list.html 0600 root bin
f none postfix/help/opt_default_database_type.html 0600 root bin
f none postfix/help/opt_default_destination_concurrency_limit.html 0600 root bin
f none postfix/help/opt_default_destination_recipient_limit.html 0600 root bin
f none postfix/help/opt_default_privs.html 0600 root bin
f none postfix/help/opt_default_process_limit.html 0600 root bin
f none postfix/help/opt_default_transport.html 0600 root bin
f none postfix/help/opt_defer_transports.html 0600 root bin
f none postfix/help/opt_delay_notice_recipient.html 0600 root bin
f none postfix/help/opt_delay_warning_time.html 0600 root bin
f none postfix/help/opt_deliver_lock_attempts.html 0600 root bin
f none postfix/help/opt_deliver_lock_delay.html 0600 root bin
f none postfix/help/opt_disable_vrfy_command.html 0600 root bin
f none postfix/help/opt_double_bounce_sender.html 0600 root bin
f none postfix/help/opt_duplicate_filter_limit.html 0600 root bin
f none postfix/help/opt_empty_address_recipient.html 0600 root bin
f none postfix/help/opt_error_notice_recipient.html 0600 root bin
f none postfix/help/opt_fallback_relay.html 0600 root bin
f none postfix/help/opt_fallback_transport.html 0600 root bin
f none postfix/help/opt_fork_attempts.html 0600 root bin
f none postfix/help/opt_fork_delay.html 0600 root bin
f none postfix/help/opt_ipc_idle.html 0600 root bin
f none postfix/help/opt_forward_path.html 0600 root bin
f none postfix/help/opt_hash_queue_depth.html 0600 root bin
f none postfix/help/opt_hash_queue_names.html 0600 root bin
f none postfix/help/opt_header_size_limit.html 0600 root bin
f none postfix/help/opt_home_mailbox.html 0600 root bin
f none postfix/help/opt_hopcount_limit.html 0600 root bin
f none postfix/help/opt_ignore_mx_lookup_error.html 0600 root bin
f none postfix/help/opt_inet_interfaces.html 0600 root bin
f none postfix/help/opt_initial_destination_concurrency.html 0600 root bin
f none postfix/help/opt_invalid_hostname_reject_code.html 0600 root bin
f none postfix/help/opt_ipc_timeout.html 0600 root bin
f none postfix/help/opt_line_length_limit.html 0600 root bin
f none postfix/help/opt_local_command_shell.html 0600 root bin
f none postfix/help/opt_sample.html 0600 root bin
f none postfix/help/opt_local_destination_concurrency_limit.html 0600 root bin
f none postfix/help/opt_local_transport.html 0600 root bin
f none postfix/help/opt_local_destination_recipient_limit.html 0600 root bin
f none postfix/help/opt_local_recipient_maps.html 0600 root bin
f none postfix/help/opt_luser_relay.html 0600 root bin
f none postfix/help/opt_mail_name.html 0600 root bin
f none postfix/help/opt_mail_owner.html 0600 root bin
f none postfix/help/opt_mail_spool_directory.html 0600 root bin
f none postfix/help/opt_mail_version.html 0600 root bin
f none postfix/help/opt_mailbox_command.html 0600 root bin
f none postfix/help/opt_mailbox_transport.html 0600 root bin
f none postfix/help/opt_maps_rbl_domains.html 0600 root bin
f none postfix/help/opt_maps_rbl_reject_code.html 0600 root bin
f none postfix/help/opt_masquerade_domains.html 0600 root bin
f none postfix/help/opt_masquerade_exceptions.html 0600 root bin
f none postfix/help/opt_max_idle.html 0600 root bin
f none postfix/help/opt_max_use.html 0600 root bin
f none postfix/help/opt_maximal_backoff_time.html 0600 root bin
f none postfix/help/opt_maximal_queue_lifetime.html 0600 root bin
f none postfix/help/opt_message_size_limit.html 0600 root bin
f none postfix/help/opt_minimal_backoff_time.html 0600 root bin
f none postfix/help/opt_mydestination.html 0600 root bin
f none postfix/help/opt_mydomain.html 0600 root bin
f none postfix/help/opt_myhostname.html 0600 root bin
f none postfix/help/opt_mynetworks.html 0600 root bin
f none postfix/help/opt_myorigin.html 0600 root bin
f none postfix/help/opt_notify_classes.html 0600 root bin
f none postfix/help/opt_prepend_delivered_header.html 0600 root bin
f none postfix/help/opt_process_id_directory.html 0600 root bin
f none postfix/help/opt_program_directory.html 0600 root bin
f none postfix/help/opt_qmgr_message_active_limit.html 0600 root bin
f none postfix/help/opt_qmgr_message_recipient_limit.html 0600 root bin
f none postfix/help/opt_queue_directory.html 0600 root bin
f none postfix/help/opt_queue_minfree.html 0600 root bin
f none postfix/help/opt_queue_run_delay.html 0600 root bin
f none postfix/help/opt_recipient_canonical_maps.html 0600 root bin
f none postfix/help/opt_recipient_delimiter.html 0600 root bin
f none postfix/help/opt_reject_code.html 0600 root bin
f none postfix/help/opt_relay_domains.html 0600 root bin
f none postfix/help/opt_relay_domains_reject_code.html 0600 root bin
f none postfix/help/opt_relayhost.html 0600 root bin
f none postfix/help/opt_relocated_maps.html 0600 root bin
f none postfix/help/opt_sender_canonical_maps.html 0600 root bin
f none postfix/help/opt_smtp_connect_timeout.html 0600 root bin
f none postfix/help/opt_smtp_data_done_timeout.html 0600 root bin
f none postfix/help/opt_smtp_data_init_timeout.html 0600 root bin
f none postfix/help/opt_smtp_data_xfer_timeout.html 0600 root bin
f none postfix/help/opt_smtp_destination_concurrency_limit.html 0600 root bin
f none postfix/help/opt_smtp_destination_recipient_limit.html 0600 root bin
f none postfix/help/opt_smtp_helo_timeout.html 0600 root bin
f none postfix/help/opt_smtp_mail_timeout.html 0600 root bin
f none postfix/help/opt_smtp_quit_timeout.html 0600 root bin
f none postfix/help/opt_smtp_rcpt_timeout.html 0600 root bin
f none postfix/help/opt_smtpd_banner.html 0600 root bin
f none postfix/help/opt_smtp_skip_4xx_greeting.html 0600 root bin
f none postfix/help/opt_smtp_skip_quit_response.html 0600 root bin
f none postfix/help/relocated.html 0600 root bin
f none postfix/help/transport.html 0600 root bin
f none postfix/help/opt_smtpd_error_sleep_time.html 0600 root bin
f none postfix/help/opt_smtpd_client_restrictions.html 0600 root bin
f none postfix/help/opt_smtpd_etrn_restrictions.html 0600 root bin
f none postfix/help/opt_smtpd_hard_error_limit.html 0600 root bin
f none postfix/help/opt_smtpd_helo_required.html 0600 root bin
f none postfix/help/opt_smtpd_helo_restrictions.html 0600 root bin
f none postfix/help/opt_smtpd_recipient_limit.html 0600 root bin
f none postfix/help/opt_smtpd_recipient_restrictions.html 0600 root bin
f none postfix/help/opt_smtpd_soft_error_limit.html 0600 root bin
f none postfix/help/opt_smtpd_sender_restrictions.html 0600 root bin
f none postfix/help/opt_smtpd_timeout.html 0600 root bin
f none postfix/help/opt_stale_lock_time.html 0600 root bin
f none postfix/help/opt_sun_mailtool_compatibility.html 0600 root bin
f none postfix/help/opt_swap_bangpath.html 0600 root bin
f none postfix/help/opt_transport_maps.html 0600 root bin
f none postfix/help/opt_transport_retry_time.html 0600 root bin
f none postfix/help/opt_trigger_timeout.html 0600 root bin
f none postfix/help/opt_unknown_address_reject_code.html 0600 root bin
f none postfix/help/opt_unknown_client_reject_code.html 0600 root bin
f none postfix/help/opt_unknown_hostname_reject_code.html 0600 root bin
f none postfix/help/opt_virtual_maps.html 0600 root bin
f none postfix/help/virtual.html 0600 root bin
f none postfix/help/aliases.sv.html 0600 root bin
f none postfix/help/canonical.sv.html 0600 root bin
f none postfix/help/general_opts.sv.html 0600 root bin
f none postfix/help/intro.sv.html 0600 root bin
f none postfix/help/opt_2bounce_notice_recipient.sv.html 0600 root bin
f none postfix/help/opt_alias_maps.sv.html 0600 root bin
f none postfix/help/opt_access_map_reject_code.sv.html 0600 root bin
f none postfix/help/opt_alias_database.sv.html 0600 root bin
f none postfix/help/opt_allow_mail_to_commands.sv.html 0600 root bin
f none postfix/help/opt_allow_mail_to_files.sv.html 0600 root bin
f none postfix/help/opt_allow_untrusted_routing.sv.html 0600 root bin
f none postfix/help/opt_always_bcc.sv.html 0600 root bin
f none postfix/help/opt_best_mx_transport.sv.html 0600 root bin
f none postfix/help/opt_bounce_notice_recipient.sv.html 0600 root bin
f none postfix/help/opt_bounce_size_limit.sv.html 0600 root bin
f none postfix/help/opt_canonical_maps.sv.html 0600 root bin
f none postfix/help/opt_command_time_limit.sv.html 0600 root bin
f none postfix/help/opt_daemon_timeout.sv.html 0600 root bin
f none postfix/help/opt_debug_peer_level.sv.html 0600 root bin
f none postfix/help/opt_debug_peer_list.sv.html 0600 root bin
f none postfix/help/opt_default_database_type.sv.html 0600 root bin
f none postfix/help/opt_default_destination_concurrency_limit.sv.html 0600 root bin
f none postfix/help/opt_default_destination_recipient_limit.sv.html 0600 root bin
f none postfix/help/opt_default_privs.sv.html 0600 root bin
f none postfix/help/opt_default_process_limit.sv.html 0600 root bin
f none postfix/help/opt_default_transport.sv.html 0600 root bin
f none postfix/help/opt_defer_transports.sv.html 0600 root bin
f none postfix/help/opt_delay_notice_recipient.sv.html 0600 root bin
f none postfix/help/opt_delay_warning_time.sv.html 0600 root bin
f none postfix/help/opt_deliver_lock_attempts.sv.html 0600 root bin
f none postfix/help/opt_fork_delay.sv.html 0600 root bin
f none postfix/help/opt_deliver_lock_delay.sv.html 0600 root bin
f none postfix/help/opt_disable_vrfy_command.sv.html 0600 root bin
f none postfix/help/opt_double_bounce_sender.sv.html 0600 root bin
f none postfix/help/opt_duplicate_filter_limit.sv.html 0600 root bin
f none postfix/help/opt_empty_address_recipient.sv.html 0600 root bin
f none postfix/help/opt_error_notice_recipient.sv.html 0600 root bin
f none postfix/help/opt_fallback_relay.sv.html 0600 root bin
f none postfix/help/opt_fallback_transport.sv.html 0600 root bin
f none postfix/help/opt_fork_attempts.sv.html 0600 root bin
f none postfix/help/opt_forward_path.sv.html 0600 root bin
f none postfix/help/opt_hash_queue_depth.sv.html 0600 root bin
f none postfix/help/opt_hash_queue_names.sv.html 0600 root bin
f none postfix/help/opt_header_size_limit.sv.html 0600 root bin
f none postfix/help/opt_home_mailbox.sv.html 0600 root bin
f none postfix/help/opt_hopcount_limit.sv.html 0600 root bin
f none postfix/help/opt_ignore_mx_lookup_error.sv.html 0600 root bin
f none postfix/help/opt_inet_interfaces.sv.html 0600 root bin
f none postfix/help/opt_initial_destination_concurrency.sv.html 0600 root bin
f none postfix/help/opt_invalid_hostname_reject_code.sv.html 0600 root bin
f none postfix/help/virtual.sv.html 0600 root bin
f none postfix/help/opt_ipc_idle.sv.html 0600 root bin
f none postfix/help/opt_ipc_timeout.sv.html 0600 root bin
f none postfix/help/opt_line_length_limit.sv.html 0600 root bin
f none postfix/help/opt_local_command_shell.sv.html 0600 root bin
f none postfix/help/opt_local_destination_concurrency_limit.sv.html 0600 root bin
f none postfix/help/opt_local_recipient_maps.sv.html 0600 root bin
f none postfix/help/opt_luser_relay.sv.html 0600 root bin
f none postfix/help/opt_local_destination_recipient_limit.sv.html 0600 root bin
f none postfix/help/opt_local_transport.sv.html 0600 root bin
f none postfix/help/opt_mail_name.sv.html 0600 root bin
f none postfix/help/opt_mail_owner.sv.html 0600 root bin
f none postfix/help/opt_mail_spool_directory.sv.html 0600 root bin
f none postfix/help/opt_mail_version.sv.html 0600 root bin
f none postfix/help/opt_mailbox_command.sv.html 0600 root bin
f none postfix/help/opt_mailbox_transport.sv.html 0600 root bin
f none postfix/help/opt_maps_rbl_domains.sv.html 0600 root bin
f none postfix/help/opt_maps_rbl_reject_code.sv.html 0600 root bin
f none postfix/help/opt_masquerade_domains.sv.html 0600 root bin
f none postfix/help/opt_masquerade_exceptions.sv.html 0600 root bin
f none postfix/help/opt_max_idle.sv.html 0600 root bin
f none postfix/help/opt_max_use.sv.html 0600 root bin
f none postfix/help/opt_maximal_backoff_time.sv.html 0600 root bin
f none postfix/help/opt_maximal_queue_lifetime.sv.html 0600 root bin
f none postfix/help/opt_message_size_limit.sv.html 0600 root bin
f none postfix/help/opt_minimal_backoff_time.sv.html 0600 root bin
f none postfix/help/opt_mydestination.sv.html 0600 root bin
f none postfix/help/opt_mydomain.sv.html 0600 root bin
f none postfix/help/opt_myhostname.sv.html 0600 root bin
f none postfix/help/opt_mynetworks.sv.html 0600 root bin
f none postfix/help/opt_myorigin.sv.html 0600 root bin
f none postfix/help/opt_notify_classes.sv.html 0600 root bin
f none postfix/help/opt_prepend_delivered_header.sv.html 0600 root bin
f none postfix/help/opt_process_id_directory.sv.html 0600 root bin
f none postfix/help/opt_reject_code.sv.html 0600 root bin
f none postfix/help/opt_relayhost.sv.html 0600 root bin
f none postfix/help/opt_program_directory.sv.html 0600 root bin
f none postfix/help/opt_qmgr_message_active_limit.sv.html 0600 root bin
f none postfix/help/opt_qmgr_message_recipient_limit.sv.html 0600 root bin
f none postfix/help/opt_queue_directory.sv.html 0600 root bin
f none postfix/help/opt_queue_minfree.sv.html 0600 root bin
f none postfix/help/opt_queue_run_delay.sv.html 0600 root bin
f none postfix/help/opt_recipient_canonical_maps.sv.html 0600 root bin
f none postfix/help/opt_recipient_delimiter.sv.html 0600 root bin
f none postfix/help/opt_relay_domains.sv.html 0600 root bin
f none postfix/help/opt_relay_domains_reject_code.sv.html 0600 root bin
f none postfix/help/opt_relocated_maps.sv.html 0600 root bin
f none postfix/help/opt_sample.sv.html 0600 root bin
f none postfix/help/opt_sender_canonical_maps.sv.html 0600 root bin
f none postfix/help/opt_smtp_connect_timeout.sv.html 0600 root bin
f none postfix/help/opt_smtp_data_done_timeout.sv.html 0600 root bin
f none postfix/help/opt_smtp_data_init_timeout.sv.html 0600 root bin
f none postfix/help/relocated.sv.html 0600 root bin
f none postfix/help/opt_smtp_data_xfer_timeout.sv.html 0600 root bin
f none postfix/help/opt_smtp_destination_concurrency_limit.sv.html 0600 root bin
f none postfix/help/opt_smtp_destination_recipient_limit.sv.html 0600 root bin
f none postfix/help/opt_smtp_helo_timeout.sv.html 0600 root bin
f none postfix/help/opt_smtp_mail_timeout.sv.html 0600 root bin
f none postfix/help/opt_smtp_quit_timeout.sv.html 0600 root bin
f none postfix/help/opt_smtp_rcpt_timeout.sv.html 0600 root bin
f none postfix/help/opt_smtpd_banner.sv.html 0600 root bin
f none postfix/help/opt_virtual_maps.sv.html 0600 root bin
f none postfix/help/opt_smtp_skip_4xx_greeting.sv.html 0600 root bin
f none postfix/help/opt_smtp_skip_quit_response.sv.html 0600 root bin
f none postfix/help/opt_smtpd_timeout.sv.html 0600 root bin
f none postfix/help/opt_smtpd_client_restrictions.sv.html 0600 root bin
f none postfix/help/opt_smtpd_error_sleep_time.sv.html 0600 root bin
f none postfix/help/opt_smtpd_etrn_restrictions.sv.html 0600 root bin
f none postfix/help/opt_smtpd_hard_error_limit.sv.html 0600 root bin
f none postfix/help/opt_smtpd_helo_required.sv.html 0600 root bin
f none postfix/help/opt_smtpd_helo_restrictions.sv.html 0600 root bin
f none postfix/help/opt_smtpd_recipient_limit.sv.html 0600 root bin
f none postfix/help/opt_smtpd_recipient_restrictions.sv.html 0600 root bin
f none postfix/help/opt_smtpd_sender_restrictions.sv.html 0600 root bin
f none postfix/help/opt_smtpd_soft_error_limit.sv.html 0600 root bin
f none postfix/help/opt_stale_lock_time.sv.html 0600 root bin
f none postfix/help/opt_sun_mailtool_compatibility.sv.html 0600 root bin
f none postfix/help/opt_swap_bangpath.sv.html 0600 root bin
f none postfix/help/opt_transport_maps.sv.html 0600 root bin
f none postfix/help/opt_transport_retry_time.sv.html 0600 root bin
f none postfix/help/opt_trigger_timeout.sv.html 0600 root bin
f none postfix/help/opt_unknown_address_reject_code.sv.html 0600 root bin
f none postfix/help/opt_unknown_client_reject_code.sv.html 0600 root bin
f none postfix/help/opt_unknown_hostname_reject_code.sv.html 0600 root bin
f none postfix/help/transport.sv.html 0600 root bin
d none postfix/images 0700 root bin
f none postfix/images/aliases.gif 0600 root bin
f none postfix/images/canonical.gif 0600 root bin
f none postfix/images/debug.gif 0600 root bin
f none postfix/images/general.gif 0600 root bin
f none postfix/images/icon.gif 0600 root bin
f none postfix/images/ldap.gif 0600 root bin
f none postfix/images/local_delivery.gif 0600 root bin
f none postfix/images/rate.gif 0600 root bin
f none postfix/images/relocated.gif 0600 root bin
f none postfix/images/resource.gif 0600 root bin
f none postfix/images/rewrite.gif 0600 root bin
f none postfix/images/smtp.gif 0600 root bin
f none postfix/images/smtpd.gif 0600 root bin
f none postfix/images/transport.gif 0600 root bin
f none postfix/images/virtual.gif 0600 root bin
f none postfix/index.cgi 0700 root bin
d none postfix/lang 0700 root bin
f none postfix/lang/en 0600 root bin
f none postfix/lang/fr 0600 root bin
f none postfix/lang/de 0600 root bin
f none postfix/lang/sv 0600 root bin
f none postfix/lang/es 0600 root bin
f none postfix/lang/zh_CN 0600 root bin
f none postfix/lang/pl 0600 root bin
f none postfix/ldap.cgi 0700 root bin
f none postfix/local_delivery.cgi 0700 root bin
f none postfix/maps_edit.cgi 0700 root bin
f none postfix/module.info 0600 root bin
f none postfix/postfix-lib.pl 0600 root bin
f none postfix/config 0600 root bin
f none postfix/rate.cgi 0700 root bin
f none postfix/relocated.cgi 0700 root bin
f none postfix/resource.cgi 0700 root bin
f none postfix/rewrite.cgi 0700 root bin
f none postfix/save_alias.cgi 0700 root bin
f none postfix/save_map.cgi 0700 root bin
f none postfix/save_opts.cgi 0700 root bin
f none postfix/save_opts_aliases.cgi 0700 root bin
f none postfix/save_opts_canonical.cgi 0700 root bin
f none postfix/save_opts_misc.cgi 0700 root bin
f none postfix/save_opts_relocated.cgi 0700 root bin
f none postfix/save_opts_transport.cgi 0700 root bin
f none postfix/save_opts_virtual.cgi 0700 root bin
f none postfix/smtp.cgi 0700 root bin
f none postfix/smtpd.cgi 0700 root bin
f none postfix/start.cgi 0700 root bin
f none postfix/stop.cgi 0700 root bin
f none postfix/transport.cgi 0700 root bin
f none postfix/virtual.cgi 0700 root bin
f none postfix/config.info.es 0600 root bin
f none postfix/config.info.sv 0600 root bin
f none postfix/config.info.tr 0600 root bin
f none postfix/config.info.pl 0600 root bin
f none postfix/config.info.zh_CN 0600 root bin
d none webminlog 0700 root bin
d none webminlog/lang 0700 root bin
f none webminlog/lang/en 0600 root bin
f none webminlog/lang/hu 0600 root bin
f none webminlog/lang/tr 0600 root bin
f none webminlog/lang/pl 0600 root bin
f none webminlog/lang/sv 0600 root bin
f none webminlog/lang/es 0600 root bin
f none webminlog/lang/zh_CN 0600 root bin
f none webminlog/lang/nl 0700 root bin
f none webminlog/lang/fr 0600 root bin
d none webminlog/images 0700 root bin
f none webminlog/images/icon.gif 0600 root bin
f none webminlog/search.cgi 0700 root bin
f none webminlog/module.info 0600 root bin
f none webminlog/index.cgi 0700 root bin
f none webminlog/webminlog-lib.pl 0600 root bin
f none webminlog/view.cgi 0700 root bin
d none postgresql 0700 root bin
f none postgresql/module.info 0600 root bin
d none postgresql/images 0700 root bin
f none postgresql/images/icon.gif 0600 root bin
f none postgresql/images/db.gif 0600 root bin
f none postgresql/images/table.gif 0600 root bin
f none postgresql/images/users.gif 0600 root bin
f none postgresql/images/hosts.gif 0600 root bin
f none postgresql/images/grants.gif 0600 root bin
f none postgresql/images/groups.gif 0600 root bin
f none postgresql/index.cgi 0700 root bin
f none postgresql/config.info 0600 root bin
d none postgresql/lang 0700 root bin
f none postgresql/lang/en 0600 root bin
f none postgresql/lang/sv 0600 root bin
f none postgresql/lang/es 0600 root bin
f none postgresql/lang/zh_CN 0600 root bin
f none postgresql/lang/pl 0600 root bin
f none postgresql/defaultacl 0600 root bin
f none postgresql/config-redhat-linux 0600 root bin
f none postgresql/postgresql-lib.pl 0600 root bin
f none postgresql/stop.cgi 0700 root bin
f none postgresql/start.cgi 0700 root bin
f none postgresql/edit_dbase.cgi 0700 root bin
f none postgresql/table_form.cgi 0700 root bin
f none postgresql/create_table.cgi 0700 root bin
f none postgresql/exec_form.cgi 0700 root bin
f none postgresql/exec.cgi 0700 root bin
f none postgresql/drop_dbase.cgi 0700 root bin
f none postgresql/edit_table.cgi 0700 root bin
f none postgresql/drop_table.cgi 0700 root bin
f none postgresql/view_table.cgi 0700 root bin
f none postgresql/edit_field.cgi 0700 root bin
f none postgresql/newdb_form.cgi 0700 root bin
d none postgresql/help 0700 root bin
f none postgresql/help/view_table.html 0600 root bin
f none postgresql/help/list_groups.html 0600 root bin
f none postgresql/help/list_users.html 0600 root bin
f none postgresql/help/list_grants.html 0600 root bin
f none postgresql/help/list_hosts.html 0600 root bin
f none postgresql/help/create_field.es.html 0600 root bin
f none postgresql/help/edit_dbase.es.html 0600 root bin
f none postgresql/help/edit_field.es.html 0600 root bin
f none postgresql/help/edit_table.es.html 0600 root bin
f none postgresql/help/exec_form.es.html 0600 root bin
f none postgresql/help/intro.es.html 0600 root bin
f none postgresql/help/list_grants.es.html 0600 root bin
f none postgresql/help/list_groups.es.html 0600 root bin
f none postgresql/help/list_hosts.es.html 0600 root bin
f none postgresql/help/edit_dbase.html 0600 root bin
f none postgresql/help/edit_table.html 0600 root bin
f none postgresql/help/edit_field.html 0600 root bin
f none postgresql/help/newdb_form.html 0600 root bin
f none postgresql/help/create_field.html 0600 root bin
f none postgresql/help/table_form.html 0600 root bin
f none postgresql/help/exec_form.html 0600 root bin
f none postgresql/help/intro.html 0600 root bin
f none postgresql/help/list_users.es.html 0600 root bin
f none postgresql/help/newdb_form.es.html 0600 root bin
f none postgresql/help/table_form.es.html 0600 root bin
f none postgresql/help/view_table.es.html 0600 root bin
f none postgresql/help/create_field.pl.html 0600 root bin
f none postgresql/help/edit_dbase.pl.html 0600 root bin
f none postgresql/help/edit_field.pl.html 0600 root bin
f none postgresql/help/edit_table.pl.html 0600 root bin
f none postgresql/help/exec_form.pl.html 0600 root bin
f none postgresql/help/intro.pl.html 0600 root bin
f none postgresql/help/list_grants.pl.html 0600 root bin
f none postgresql/help/list_groups.pl.html 0600 root bin
f none postgresql/help/list_hosts.pl.html 0600 root bin
f none postgresql/help/list_users.pl.html 0600 root bin
f none postgresql/help/newdb_form.pl.html 0600 root bin
f none postgresql/help/table_form.pl.html 0600 root bin
f none postgresql/help/view_table.pl.html 0600 root bin
f none postgresql/newdb.cgi 0700 root bin
f none postgresql/save_field.cgi 0700 root bin
f none postgresql/list_locals.cgi 0700 root bin
f none postgresql/list_users.cgi 0700 root bin
f none postgresql/edit_host.cgi 0700 root bin
f none postgresql/edit_user.cgi 0700 root bin
f none postgresql/save_user.cgi 0700 root bin
f none postgresql/list_hosts.cgi 0700 root bin
f none postgresql/login.cgi 0700 root bin
f none postgresql/save_host.cgi 0700 root bin
f none postgresql/log_parser.pl 0600 root bin
f none postgresql/save_grant.cgi 0700 root bin
f none postgresql/list_grants.cgi 0700 root bin
f none postgresql/edit_grant.cgi 0700 root bin
f none postgresql/list_groups.cgi 0700 root bin
f none postgresql/config-suse-linux 0600 root bin
f none postgresql/config-debian-linux 0600 root bin
f none postgresql/edit_group.cgi 0700 root bin
f none postgresql/save_group.cgi 0700 root bin
f none postgresql/config 0600 root bin
f none postgresql/config-cobalt-linux 0600 root bin
f none postgresql/acl_security.pl 0600 root bin
f none postgresql/config-redhat-linux-7.0 0600 root bin
f none postgresql/config-suse-linux-7.0 0600 root bin
f none postgresql/config.info.sv 0600 root bin
f none postgresql/config.info.es 0600 root bin
f none postgresql/config.info.zh_CN 0600 root bin
f none postgresql/config-suse-linux-7.1 0600 root bin
f none postgresql/config-redhat-linux-7.1 0600 root bin
f none postgresql/config.info.pl 0600 root bin
d none xinetd 0700 root bin
d none xinetd/images 0700 root bin
f none xinetd/images/icon.gif 0600 root bin
f none xinetd/module.info 0600 root bin
d none xinetd/lang 0700 root bin
f none xinetd/lang/pl 0600 root bin
f none xinetd/lang/en 0600 root bin
f none xinetd/lang/sv 0600 root bin
f none xinetd/lang/es 0600 root bin
f none xinetd/lang/zh_CN 0600 root bin
f none xinetd/restart.cgi 0700 root bin
f none xinetd/xinetd-lib.pl 0600 root bin
f none xinetd/config.info 0600 root bin
f none xinetd/index.cgi 0700 root bin
f none xinetd/edit_serv.cgi 0700 root bin
f none xinetd/save_serv.cgi 0700 root bin
f none xinetd/start.cgi 0700 root bin
f none xinetd/config-redhat-linux 0600 root bin
f none xinetd/save_defaults.cgi 0700 root bin
f none xinetd/edit_defaults.cgi 0600 root bin
f none xinetd/config-suse-linux 0600 root bin
f none xinetd/config-debian-linux 0600 root bin
f none xinetd/config-freebsd 0600 root bin
f none xinetd/log_parser.pl 0600 root bin
f none xinetd/config.info.pl 0600 root bin
f none xinetd/config.info.sv 0600 root bin
f none xinetd/config.info.es 0600 root bin
f none xinetd/config.info.zh_CN 0600 root bin
f none xinetd/config-suse-linux-7.1 0600 root bin
d none status 0700 root bin
d none status/images 0700 root bin
f none status/images/down.gif 0600 root bin
f none status/images/up.gif 0600 root bin
f none status/images/not.gif 0600 root bin
f none status/images/icon.gif 0600 root bin
f none status/images/quest.gif 0600 root bin
f none status/module.info 0600 root bin
d none status/lang 0700 root bin
f none status/lang/en 0600 root bin
f none status/lang/sv 0600 root bin
f none status/lang/es 0600 root bin
f none status/lang/pl 0600 root bin
f none status/lang/zh_CN 0600 root bin
f none status/lang/nl 0700 root bin
f none status/apache-monitor.pl 0600 root bin
f none status/status-lib.pl 0600 root bin
f none status/index.cgi 0600 root bin
f none status/inetd-monitor.pl 0600 root bin
f none status/xinetd-monitor.pl 0600 root bin
f none status/squid-monitor.pl 0600 root bin
f none status/bind8-monitor.pl 0600 root bin
f none status/dnsadmin-monitor.pl 0600 root bin
f none status/dhcpd-monitor.pl 0600 root bin
f none status/tcp-monitor.pl 0600 root bin
f none status/sendmail-monitor.pl 0600 root bin
f none status/http-monitor.pl 0600 root bin
f none status/config-open-linux 0600 root bin
f none status/edit_mon.cgi 0700 root bin
f none status/save_mon.cgi 0700 root bin
f none status/config.info 0600 root bin
f none status/config 0600 root bin
f none status/config-redhat-linux 0600 root bin
f none status/ping-monitor.pl 0600 root bin
f none status/config-suse-linux 0600 root bin
f none status/config-debian-linux 0600 root bin
f none status/config-corel-linux 0600 root bin
f none status/config-turbo-linux 0600 root bin
f none status/config-slackware-linux 0600 root bin
f none status/config-solaris 0600 root bin
f none status/mysql-monitor.pl 0600 root bin
f none status/proc-monitor.pl 0600 root bin
f none status/edit_sched.cgi 0700 root bin
f none status/config-freebsd 0600 root bin
f none status/save_sched.cgi 0700 root bin
f none status/samba-monitor.pl 0600 root bin
f none status/monitor.pl 0700 root bin
f none status/postgresql-monitor.pl 0600 root bin
d none status/services 0700 root bin
f none status/services/apache.serv 0600 root bin
f none status/services/bind8.serv 0600 root bin
f none status/services/dhcpd.serv 0600 root bin
f none status/services/dnsadmin.serv 0600 root bin
f none status/services/inetd.serv 0600 root bin
f none status/services/mysql.serv 0600 root bin
f none status/services/postgresql.serv 0600 root bin
f none status/services/samba.serv 0600 root bin
f none status/services/nfs.serv 0600 root bin
f none status/services/sendmail.serv 0600 root bin
f none status/services/squid.serv 0600 root bin
f none status/services/xinetd.serv 0600 root bin
f none status/services/postfix.serv 0600 root bin
f none status/exec-monitor.pl 0600 root bin
f none status/config-hpux 0600 root bin
f none status/config.info.sv 0600 root bin
f none status/nfs-monitor.pl 0600 root bin
f none status/config.info.es 0600 root bin
f none status/config.info.pl 0600 root bin
f none status/config.info.zh_CN 0600 root bin
f none status/postfix-monitor.pl 0600 root bin
f none status/config.info.nl 0600 root bin
f none status/file-monitor.pl 0600 root bin
d none cpan 0700 root bin
d none cpan/lang 0700 root bin
f none cpan/lang/en 0600 root bin
f none cpan/lang/es 0600 root bin
f none cpan/lang/pl 0600 root bin
f none cpan/lang/zh_CN 0600 root bin
f none cpan/lang/nl 0700 root bin
f none cpan/lang/ru_SU 0600 root bin
f none cpan/lang/ru_RU 0600 root bin
f none cpan/lang/sv 0600 root bin
d none cpan/images 0700 root bin
f none cpan/images/cat.gif 0600 root bin
f none cpan/images/mod.gif 0600 root bin
f none cpan/images/icon.gif 0600 root bin
f none cpan/config.info 0600 root bin
f none cpan/cpan-lib.pl 0600 root bin
f none cpan/module.info 0600 root bin
f none cpan/cpan.cgi 0700 root bin
f none cpan/config 0600 root bin
f none cpan/edit_mod.cgi 0700 root bin
f none cpan/install.cgi 0600 root bin
f none cpan/download.cgi 0700 root bin
f none cpan/index.cgi 0700 root bin
f none cpan/config.info.sv 0600 root bin
f none cpan/config.info.es 0600 root bin
f none cpan/config.info.pl 0600 root bin
f none cpan/config.info.zh_CN 0600 root bin
f none cpan/config.info.nl 0700 root bin
f none cpan/config.info.ru_SU 0600 root bin
f none cpan/config.info.ru_RU 0600 root bin
d none caldera 0700 root bin
f none caldera/Alphabet.gif 0600 root bin
f none caldera/theme.info 0600 root bin
d none caldera/openldap 0700 root bin
d none caldera/openldap/images 0700 root bin
f none caldera/openldap/images/icon.gif 0600 root bin
d none caldera/images 0700 root bin
d none caldera/images/letters 0700 root bin
f none caldera/images/letters/65.gif 0600 root bin
f none caldera/images/letters/66.gif 0600 root bin
f none caldera/images/letters/67.gif 0600 root bin
f none caldera/images/letters/68.gif 0600 root bin
f none caldera/images/letters/69.gif 0600 root bin
f none caldera/images/letters/70.gif 0600 root bin
f none caldera/images/letters/71.gif 0600 root bin
f none caldera/images/letters/72.gif 0600 root bin
f none caldera/images/letters/73.gif 0600 root bin
f none caldera/images/letters/74.gif 0600 root bin
f none caldera/images/letters/75.gif 0600 root bin
f none caldera/images/letters/76.gif 0600 root bin
f none caldera/images/letters/77.gif 0600 root bin
f none caldera/images/letters/78.gif 0600 root bin
f none caldera/images/letters/79.gif 0600 root bin
f none caldera/images/letters/80.gif 0600 root bin
f none caldera/images/letters/81.gif 0600 root bin
f none caldera/images/letters/82.gif 0600 root bin
f none caldera/images/letters/83.gif 0600 root bin
f none caldera/images/letters/84.gif 0600 root bin
f none caldera/images/letters/85.gif 0600 root bin
f none caldera/images/letters/86.gif 0600 root bin
f none caldera/images/letters/87.gif 0600 root bin
f none caldera/images/letters/88.gif 0600 root bin
f none caldera/images/letters/89.gif 0600 root bin
f none caldera/images/letters/90.gif 0600 root bin
f none caldera/images/letters/97.gif 0600 root bin
f none caldera/images/letters/98.gif 0600 root bin
f none caldera/images/letters/99.gif 0600 root bin
f none caldera/images/letters/100.gif 0600 root bin
f none caldera/images/letters/101.gif 0600 root bin
f none caldera/images/letters/102.gif 0600 root bin
f none caldera/images/letters/103.gif 0600 root bin
f none caldera/images/letters/104.gif 0600 root bin
f none caldera/images/letters/105.gif 0600 root bin
f none caldera/images/letters/106.gif 0600 root bin
f none caldera/images/letters/107.gif 0600 root bin
f none caldera/images/letters/108.gif 0600 root bin
f none caldera/images/letters/109.gif 0600 root bin
f none caldera/images/letters/110.gif 0600 root bin
f none caldera/images/letters/111.gif 0600 root bin
f none caldera/images/letters/112.gif 0600 root bin
f none caldera/images/letters/113.gif 0600 root bin
f none caldera/images/letters/114.gif 0600 root bin
f none caldera/images/letters/115.gif 0600 root bin
f none caldera/images/letters/116.gif 0600 root bin
f none caldera/images/letters/117.gif 0600 root bin
f none caldera/images/letters/118.gif 0600 root bin
f none caldera/images/letters/119.gif 0600 root bin
f none caldera/images/letters/120.gif 0600 root bin
f none caldera/images/letters/121.gif 0600 root bin
f none caldera/images/letters/122.gif 0600 root bin
f none caldera/images/letters/48.gif 0600 root bin
f none caldera/images/letters/49.gif 0600 root bin
f none caldera/images/letters/50.gif 0600 root bin
f none caldera/images/letters/51.gif 0600 root bin
f none caldera/images/letters/52.gif 0600 root bin
f none caldera/images/letters/53.gif 0600 root bin
f none caldera/images/letters/54.gif 0600 root bin
f none caldera/images/letters/55.gif 0600 root bin
f none caldera/images/letters/56.gif 0600 root bin
f none caldera/images/letters/57.gif 0600 root bin
f none caldera/images/letters/33.gif 0600 root bin
f none caldera/images/letters/34.gif 0600 root bin
f none caldera/images/letters/35.gif 0600 root bin
f none caldera/images/letters/36.gif 0600 root bin
f none caldera/images/letters/37.gif 0600 root bin
f none caldera/images/letters/38.gif 0600 root bin
f none caldera/images/letters/39.gif 0600 root bin
f none caldera/images/letters/40.gif 0600 root bin
f none caldera/images/letters/41.gif 0600 root bin
f none caldera/images/letters/42.gif 0600 root bin
f none caldera/images/letters/43.gif 0600 root bin
f none caldera/images/letters/44.gif 0600 root bin
f none caldera/images/letters/45.gif 0600 root bin
f none caldera/images/letters/46.gif 0600 root bin
f none caldera/images/letters/47.gif 0600 root bin
f none caldera/images/letters/58.gif 0600 root bin
f none caldera/images/letters/59.gif 0600 root bin
f none caldera/images/letters/60.gif 0600 root bin
f none caldera/images/letters/61.gif 0600 root bin
f none caldera/images/letters/62.gif 0600 root bin
f none caldera/images/letters/63.gif 0600 root bin
f none caldera/images/letters/64.gif 0600 root bin
f none caldera/images/letters/91.gif 0600 root bin
f none caldera/images/letters/93.gif 0600 root bin
f none caldera/images/letters/94.gif 0600 root bin
f none caldera/images/letters/95.gif 0600 root bin
f none caldera/images/letters/96.gif 0600 root bin
f none caldera/images/letters/123.gif 0600 root bin
f none caldera/images/letters/124.gif 0600 root bin
f none caldera/images/letters/125.gif 0600 root bin
f none caldera/images/letters/126.gif 0600 root bin
f none caldera/images/letters/192.gif 0600 root bin
f none caldera/images/letters/193.gif 0600 root bin
f none caldera/images/letters/194.gif 0600 root bin
f none caldera/images/letters/195.gif 0600 root bin
f none caldera/images/letters/196.gif 0600 root bin
f none caldera/images/letters/197.gif 0600 root bin
f none caldera/images/letters/198.gif 0600 root bin
f none caldera/images/letters/199.gif 0600 root bin
f none caldera/images/letters/200.gif 0600 root bin
f none caldera/images/letters/201.gif 0600 root bin
f none caldera/images/letters/202.gif 0600 root bin
f none caldera/images/letters/203.gif 0600 root bin
f none caldera/images/letters/204.gif 0600 root bin
f none caldera/images/letters/205.gif 0600 root bin
f none caldera/images/letters/206.gif 0600 root bin
f none caldera/images/letters/207.gif 0600 root bin
f none caldera/images/letters/208.gif 0600 root bin
f none caldera/images/letters/209.gif 0600 root bin
f none caldera/images/letters/210.gif 0600 root bin
f none caldera/images/letters/211.gif 0600 root bin
f none caldera/images/letters/212.gif 0600 root bin
f none caldera/images/letters/213.gif 0600 root bin
f none caldera/images/letters/214.gif 0600 root bin
f none caldera/images/letters/215.gif 0600 root bin
f none caldera/images/letters/216.gif 0600 root bin
f none caldera/images/letters/217.gif 0600 root bin
f none caldera/images/letters/218.gif 0600 root bin
f none caldera/images/letters/219.gif 0600 root bin
f none caldera/images/letters/220.gif 0600 root bin
f none caldera/images/letters/221.gif 0600 root bin
f none caldera/images/letters/222.gif 0600 root bin
f none caldera/images/letters/223.gif 0600 root bin
f none caldera/images/letters/224.gif 0600 root bin
f none caldera/images/letters/225.gif 0600 root bin
f none caldera/images/letters/226.gif 0600 root bin
f none caldera/images/letters/227.gif 0600 root bin
f none caldera/images/letters/228.gif 0600 root bin
f none caldera/images/letters/229.gif 0600 root bin
f none caldera/images/letters/230.gif 0600 root bin
f none caldera/images/letters/231.gif 0600 root bin
f none caldera/images/letters/232.gif 0600 root bin
f none caldera/images/letters/233.gif 0600 root bin
f none caldera/images/letters/234.gif 0600 root bin
f none caldera/images/letters/235.gif 0600 root bin
f none caldera/images/letters/236.gif 0600 root bin
f none caldera/images/letters/237.gif 0600 root bin
f none caldera/images/letters/238.gif 0600 root bin
f none caldera/images/letters/239.gif 0600 root bin
f none caldera/images/letters/240.gif 0600 root bin
f none caldera/images/letters/241.gif 0600 root bin
f none caldera/images/letters/242.gif 0600 root bin
f none caldera/images/letters/243.gif 0600 root bin
f none caldera/images/letters/244.gif 0600 root bin
f none caldera/images/letters/245.gif 0600 root bin
f none caldera/images/letters/246.gif 0600 root bin
f none caldera/images/letters/247.gif 0600 root bin
f none caldera/images/letters/248.gif 0600 root bin
f none caldera/images/letters/249.gif 0600 root bin
f none caldera/images/letters/250.gif 0600 root bin
f none caldera/images/letters/251.gif 0600 root bin
f none caldera/images/letters/252.gif 0600 root bin
f none caldera/images/letters/253.gif 0600 root bin
f none caldera/images/letters/254.gif 0600 root bin
f none caldera/images/letters/255.gif 0600 root bin
f none caldera/images/letters/32.gif 0600 root bin
f none caldera/images/blue-bg.gif 0600 root bin
f none caldera/images/folder-off.gif 0600 root bin
f none caldera/images/folder-on.gif 0600 root bin
f none caldera/images/gradient-bg.gif 0600 root bin
f none caldera/images/main-bg-pixel.gif 0600 root bin
f none caldera/images/nav2bg.gif 0600 root bin
f none caldera/images/navbg.gif 0600 root bin
f none caldera/images/pixel-white.gif 0600 root bin
f none caldera/images/spacer.gif 0600 root bin
f none caldera/images/top-grad-stretch.gif 0600 root bin
f none caldera/images/webmin-header.gif 0600 root bin
d none caldera/openslp 0700 root bin
d none caldera/openslp/images 0700 root bin
f none caldera/openslp/images/icon.gif 0600 root bin
d none caldera/acl 0700 root bin
d none caldera/acl/images 0700 root bin
f none caldera/acl/images/icon.gif 0600 root bin
d none caldera/steed 0700 root bin
f none caldera/steed/apache_nav.html 0600 root bin
d none caldera/steed/css 0700 root bin
f none caldera/steed/css/style.css 0600 root bin
d none caldera/steed/hardware 0700 root bin
f none caldera/steed/hardware/fdisk.html 0600 root bin
f none caldera/steed/hardware/lilo.html 0600 root bin
f none caldera/steed/hardware/lpadmin.html 0600 root bin
f none caldera/steed/hardware/net.html 0600 root bin
f none caldera/steed/hardware/raid.html 0600 root bin
f none caldera/steed/hardware/time.html 0600 root bin
f none caldera/steed/hardware.html 0600 root bin
f none caldera/steed/hardware_body.html 0600 root bin
f none caldera/steed/hardware_nav.html 0600 root bin
d none caldera/steed/home 0700 root bin
f none caldera/steed/home/authentication.html 0600 root bin
f none caldera/steed/home/editcats.html 0600 root bin
f none caldera/steed/home/indexpageopts.html 0600 root bin
f none caldera/steed/home/ipaccesscontrol.html 0600 root bin
f none caldera/steed/home/lang.html 0600 root bin
f none caldera/steed/home/logging.html 0600 root bin
f none caldera/steed/home/os.html 0600 root bin
f none caldera/steed/home/portaddress.html 0600 root bin
f none caldera/steed/home/proxys.html 0600 root bin
f none caldera/steed/home/reassignmods.html 0600 root bin
f none caldera/steed/home/upgradewebmin.html 0600 root bin
f none caldera/steed/home/useri.html 0600 root bin
f none caldera/steed/home/webminmods.html 0600 root bin
d none caldera/steed/images 0700 root bin
f none caldera/steed/images/blue-bg.gif 0600 root bin
f none caldera/steed/images/folder-off.gif 0600 root bin
f none caldera/steed/images/folder-on.gif 0600 root bin
f none caldera/steed/images/gradient-bg.gif 0600 root bin
f none caldera/steed/images/icon01.gif 0600 root bin
f none caldera/steed/images/icon02.gif 0600 root bin
f none caldera/steed/images/icon03.gif 0600 root bin
f none caldera/steed/images/icon04.gif 0600 root bin
f none caldera/steed/images/icon05.gif 0600 root bin
f none caldera/steed/images/icon06.gif 0600 root bin
f none caldera/steed/images/icon07.gif 0600 root bin
f none caldera/steed/images/icon08.gif 0600 root bin
f none caldera/steed/images/icon09.gif 0600 root bin
f none caldera/steed/images/icon10.gif 0600 root bin
f none caldera/steed/images/icon11.gif 0600 root bin
f none caldera/steed/images/iconserverT3-01.gif 0600 root bin
f none caldera/steed/images/iconserverT3-02.gif 0600 root bin
f none caldera/steed/images/iconserverT3-03.gif 0600 root bin
f none caldera/steed/images/iconserverT3-04.gif 0600 root bin
f none caldera/steed/images/iconserverT3-05.gif 0600 root bin
f none caldera/steed/images/iconserverT3-06.gif 0600 root bin
f none caldera/steed/images/iconserverT3-07.gif 0600 root bin
f none caldera/steed/images/iconserverT3-08.gif 0600 root bin
f none caldera/steed/images/iconserverT3-09.gif 0600 root bin
f none caldera/steed/images/iconT0-01.gif 0600 root bin
f none caldera/steed/images/iconT0-02.gif 0600 root bin
f none caldera/steed/images/iconT0-03.gif 0600 root bin
f none caldera/steed/images/iconT0-04.gif 0600 root bin
f none caldera/steed/images/iconT0-05.gif 0600 root bin
f none caldera/steed/images/iconT0-06.gif 0600 root bin
f none caldera/steed/images/iconT0-07.gif 0600 root bin
f none caldera/steed/images/iconT0-08.gif 0600 root bin
f none caldera/steed/images/iconT0-09.gif 0600 root bin
f none caldera/steed/images/iconT0-10.gif 0600 root bin
f none caldera/steed/images/iconT0-11.gif 0600 root bin
f none caldera/steed/images/iconT0-12.gif 0600 root bin
f none caldera/steed/images/iconT0-13.gif 0600 root bin
f none caldera/steed/images/iconT1-02.gif 0600 root bin
f none caldera/steed/images/iconT1-03.gif 0600 root bin
f none caldera/steed/images/iconT1-04.gif 0600 root bin
f none caldera/steed/images/iconT1-05.gif 0600 root bin
f none caldera/steed/images/nav2bg.gif 0600 root bin
f none caldera/steed/images/iconT3-01.gif 0600 root bin
f none caldera/steed/images/iconT3-02.gif 0600 root bin
f none caldera/steed/images/iconT3-04.gif 0600 root bin
f none caldera/steed/images/iconT3-05.gif 0600 root bin
f none caldera/steed/images/iconT3-06.gif 0600 root bin
f none caldera/steed/images/iconT3-07.gif 0600 root bin
f none caldera/steed/images/iconT3-08.gif 0600 root bin
f none caldera/steed/images/iconT3-09.gif 0600 root bin
f none caldera/steed/images/iconT3-10.gif 0600 root bin
f none caldera/steed/images/iconT3-12.gif 0600 root bin
f none caldera/steed/images/iconT3-13.gif 0600 root bin
f none caldera/steed/images/iconT3-14.gif 0600 root bin
f none caldera/steed/images/iconT4-01.gif 0600 root bin
f none caldera/steed/images/iconT4-02.gif 0600 root bin
f none caldera/steed/images/iconT4-03.gif 0600 root bin
f none caldera/steed/images/iconT4-04.gif 0600 root bin
f none caldera/steed/images/iconT4-05.gif 0600 root bin
f none caldera/steed/images/iconT4-06.gif 0600 root bin
f none caldera/steed/images/iconT5-01.gif 0600 root bin
f none caldera/steed/images/iconT5-02.gif 0600 root bin
f none caldera/steed/images/iconT5-03.gif 0600 root bin
f none caldera/steed/images/navbg.gif 0600 root bin
f none caldera/steed/images/pixel-white.gif 0600 root bin
f none caldera/steed/images/top-grad-stretch.gif 0600 root bin
f none caldera/steed/images/webmin-header.gif 0600 root bin
f none caldera/steed/images/iconblank.gif 0600 root bin
f none caldera/steed/images/main-bg-pixel.gif 0600 root bin
f none caldera/steed/images/spacer.gif 0600 root bin
f none caldera/steed/index_body.html 0600 root bin
f none caldera/steed/index_nav.html 0600 root bin
d none caldera/steed/others 0700 root bin
f none caldera/steed/others/custom.html 0600 root bin
f none caldera/steed/others/file.html 0600 root bin
f none caldera/steed/others/telnet.html 0600 root bin
f none caldera/steed/others.html 0600 root bin
f none caldera/steed/others_body.html 0600 root bin
f none caldera/steed/others_nav.html 0600 root bin
d none caldera/steed/servers 0700 root bin
f none caldera/steed/servers/ap_apmods.html 0600 root bin
f none caldera/steed/servers/ap_cgi.html 0600 root bin
f none caldera/steed/servers/ap_editdefparam.html 0600 root bin
f none caldera/steed/servers/ap_mime.html 0600 root bin
f none caldera/steed/servers/ap_misc.html 0600 root bin
f none caldera/steed/servers/ap_net_add.html 0600 root bin
f none caldera/steed/servers/ap_pdoptfiles.html 0600 root bin
f none caldera/steed/servers/ap_procs_limits.html 0600 root bin
f none caldera/steed/servers/ap_reconknowmods.html 0600 root bin
f none caldera/steed/servers/apache.html 0600 root bin
f none caldera/steed/servers/apache_body.html 0600 root bin
f none caldera/steed/servers/bind8.html 0600 root bin
f none caldera/steed/servers/dhcpd.html 0600 root bin
f none caldera/steed/servers/dnsadmin.html 0600 root bin
f none caldera/steed/servers/inetd.html 0600 root bin
f none caldera/steed/servers/majordomo.html 0600 root bin
f none caldera/steed/servers/mysql.html 0600 root bin
f none caldera/steed/servers/pap.html 0600 root bin
f none caldera/steed/servers/postfix.html 0600 root bin
f none caldera/steed/servers/postgresql.html 0600 root bin
f none caldera/steed/servers/samba.html 0600 root bin
f none caldera/steed/servers/sendmail.html 0600 root bin
f none caldera/steed/servers/squid.html 0600 root bin
f none caldera/steed/servers/wuftpd.html 0600 root bin
f none caldera/steed/servers.html 0600 root bin
f none caldera/steed/servers_body.html 0600 root bin
f none caldera/steed/servers_nav.html 0600 root bin
d none caldera/steed/system 0700 root bin
f none caldera/steed/system/cron.html 0600 root bin
f none caldera/steed/system/exports.html 0600 root bin
f none caldera/steed/system/init.html 0600 root bin
f none caldera/steed/system/inittab.html 0600 root bin
f none caldera/steed/system/man.html 0600 root bin
f none caldera/steed/system/mount.html 0600 root bin
f none caldera/steed/system/proc.html 0600 root bin
f none caldera/steed/system/quota.html 0600 root bin
f none caldera/steed/system/software.html 0600 root bin
f none caldera/steed/system/syslog.html 0600 root bin
f none caldera/steed/system/useradmin.html 0600 root bin
f none caldera/steed/system_body.html 0600 root bin
f none caldera/steed/system_nav.html 0600 root bin
d none caldera/steed/webmin 0700 root bin
f none caldera/steed/webmin/webminacl.html 0600 root bin
f none caldera/steed/webmin/webminhelp.html 0600 root bin
f none caldera/steed/webmin/webminservers.html 0600 root bin
f none caldera/steed/webmin/webminwebmin.html 0600 root bin
f none caldera/steed/webmin/webminwebminlog.html 0600 root bin
f none caldera/steed/webmin.html 0600 root bin
f none caldera/steed/webmin_body.html 0600 root bin
f none caldera/steed/webmin_nav.html 0600 root bin
f none caldera/steed/index.html 0600 root bin
f none caldera/steed/system.html 0600 root bin
d none caldera/volution 0700 root bin
d none caldera/volution/images 0700 root bin
f none caldera/volution/images/icon.gif 0600 root bin
f none caldera/index.cgi 0700 root bin
f none caldera/style.css 0600 root bin
f none caldera/index_top.cgi 0600 root bin
d none caldera/apache 0700 root bin
d none caldera/apache/images 0700 root bin
f none caldera/apache/images/icon.gif 0600 root bin
d none caldera/bind8 0700 root bin
d none caldera/bind8/images 0700 root bin
f none caldera/bind8/images/icon.gif 0600 root bin
d none caldera/bsdexports 0700 root bin
d none caldera/bsdexports/images 0700 root bin
f none caldera/bsdexports/images/icon.gif 0600 root bin
d none caldera/cpan 0700 root bin
d none caldera/cpan/images 0700 root bin
f none caldera/cpan/images/icon.gif 0600 root bin
d none caldera/cron 0700 root bin
d none caldera/cron/images 0700 root bin
f none caldera/cron/images/icon.gif 0600 root bin
d none caldera/custom 0700 root bin
d none caldera/custom/images 0700 root bin
f none caldera/custom/images/icon.gif 0600 root bin
d none caldera/dfsadmin 0700 root bin
d none caldera/dfsadmin/images 0700 root bin
f none caldera/dfsadmin/images/icon.gif 0600 root bin
d none caldera/dhcpd 0700 root bin
d none caldera/dhcpd/images 0700 root bin
f none caldera/dhcpd/images/icon.gif 0600 root bin
d none caldera/dnsadmin 0700 root bin
d none caldera/dnsadmin/images 0700 root bin
f none caldera/dnsadmin/images/icon.gif 0600 root bin
d none caldera/exports 0700 root bin
d none caldera/exports/images 0700 root bin
f none caldera/exports/images/icon.gif 0600 root bin
d none caldera/fdisk 0700 root bin
d none caldera/fdisk/images 0700 root bin
f none caldera/fdisk/images/icon.gif 0600 root bin
d none caldera/file 0700 root bin
d none caldera/file/images 0700 root bin
f none caldera/file/images/icon.gif 0600 root bin
d none caldera/firewall 0700 root bin
d none caldera/firewall/images 0700 root bin
d none caldera/format 0700 root bin
d none caldera/format/images 0700 root bin
f none caldera/format/images/icon.gif 0600 root bin
d none caldera/help 0700 root bin
d none caldera/help/images 0700 root bin
f none caldera/help/images/icon.gif 0600 root bin
d none caldera/hpuxexports 0700 root bin
d none caldera/hpuxexports/images 0700 root bin
f none caldera/hpuxexports/images/icon.gif 0600 root bin
d none caldera/inetd 0700 root bin
d none caldera/inetd/images 0700 root bin
f none caldera/inetd/images/icon.gif 0600 root bin
d none caldera/init 0700 root bin
d none caldera/init/images 0700 root bin
f none caldera/init/images/icon.gif 0600 root bin
d none caldera/inittab 0700 root bin
d none caldera/inittab/images 0700 root bin
f none caldera/inittab/images/icon.gif 0600 root bin
d none caldera/ipcache 0700 root bin
d none caldera/ipcache/images 0700 root bin
d none caldera/ipweb 0700 root bin
d none caldera/ipweb/images 0700 root bin
d none caldera/lilo 0700 root bin
d none caldera/lilo/images 0700 root bin
f none caldera/lilo/images/icon.gif 0600 root bin
d none caldera/link 0700 root bin
d none caldera/link/images 0700 root bin
f none caldera/link/images/icon.gif 0600 root bin
d none caldera/lpadmin 0700 root bin
d none caldera/lpadmin/images 0700 root bin
f none caldera/lpadmin/images/icon.gif 0600 root bin
d none caldera/majordomo 0700 root bin
d none caldera/majordomo/images 0700 root bin
f none caldera/majordomo/images/icon.gif 0600 root bin
d none caldera/man 0700 root bin
d none caldera/man/images 0700 root bin
f none caldera/man/images/icon.gif 0600 root bin
d none caldera/mount 0700 root bin
d none caldera/mount/images 0700 root bin
f none caldera/mount/images/icon.gif 0600 root bin
d none caldera/mysql 0700 root bin
d none caldera/mysql/images 0700 root bin
f none caldera/mysql/images/icon.gif 0600 root bin
d none caldera/net 0700 root bin
d none caldera/net/images 0700 root bin
f none caldera/net/images/icon.gif 0600 root bin
d none caldera/pam 0700 root bin
d none caldera/pam/images 0700 root bin
f none caldera/pam/images/icon.gif 0600 root bin
d none caldera/pap 0700 root bin
d none caldera/pap/images 0700 root bin
f none caldera/pap/images/icon.gif 0600 root bin
d none caldera/postfix 0700 root bin
d none caldera/postfix/images 0700 root bin
f none caldera/postfix/images/icon.gif 0600 root bin
d none caldera/postgresql 0700 root bin
d none caldera/postgresql/images 0700 root bin
f none caldera/postgresql/images/icon.gif 0600 root bin
d none caldera/proc 0700 root bin
d none caldera/proc/images 0700 root bin
f none caldera/proc/images/icon.gif 0600 root bin
d none caldera/quota 0700 root bin
d none caldera/quota/images 0700 root bin
f none caldera/quota/images/icon.gif 0600 root bin
d none caldera/raid 0700 root bin
d none caldera/raid/images 0700 root bin
f none caldera/raid/images/icon.gif 0600 root bin
d none caldera/samba 0700 root bin
d none caldera/samba/images 0700 root bin
f none caldera/samba/images/icon.gif 0600 root bin
d none caldera/sendmail 0700 root bin
d none caldera/sendmail/images 0700 root bin
f none caldera/sendmail/images/icon.gif 0600 root bin
d none caldera/servers 0700 root bin
d none caldera/servers/images 0700 root bin
f none caldera/servers/images/icon.gif 0600 root bin
d none caldera/software 0700 root bin
d none caldera/software/images 0700 root bin
f none caldera/software/images/icon.gif 0600 root bin
d none caldera/squid 0700 root bin
d none caldera/squid/images 0700 root bin
f none caldera/squid/images/icon.gif 0600 root bin
d none caldera/ssh 0700 root bin
d none caldera/ssh/images 0700 root bin
f none caldera/ssh/images/icon.gif 0600 root bin
d none caldera/status 0700 root bin
d none caldera/status/images 0700 root bin
f none caldera/status/images/icon.gif 0600 root bin
d none caldera/syslog 0700 root bin
d none caldera/syslog/images 0700 root bin
f none caldera/syslog/images/icon.gif 0600 root bin
d none caldera/tcpd 0700 root bin
d none caldera/tcpd/images 0700 root bin
d none caldera/telnet 0700 root bin
d none caldera/telnet/images 0700 root bin
f none caldera/telnet/images/icon.gif 0600 root bin
d none caldera/time 0700 root bin
d none caldera/time/images 0700 root bin
f none caldera/time/images/icon.gif 0600 root bin
d none caldera/useradmin 0700 root bin
d none caldera/useradmin/images 0700 root bin
f none caldera/useradmin/images/icon.gif 0600 root bin
d none caldera/vnc 0700 root bin
d none caldera/vnc/images 0700 root bin
f none caldera/vnc/images/icon.gif 0600 root bin
d none caldera/webmin 0700 root bin
d none caldera/webmin/images 0700 root bin
f none caldera/webmin/images/icon.gif 0600 root bin
d none caldera/webminlog 0700 root bin
d none caldera/webminlog/images 0700 root bin
f none caldera/webminlog/images/icon.gif 0600 root bin
d none caldera/wuftpd 0700 root bin
d none caldera/wuftpd/images 0700 root bin
f none caldera/wuftpd/images/icon.gif 0600 root bin
d none caldera/xinetd 0700 root bin
d none caldera/xinetd/images 0700 root bin
f none caldera/xinetd/images/icon.gif 0600 root bin
f none caldera/template.gif 0600 root bin
f none caldera/config 0600 root bin
d none caldera/certmgr 0700 root bin
d none caldera/certmgr/images 0700 root bin
f none caldera/certmgr/images/icon.gif 0600 root bin
d none caldera/ipchains 0700 root bin
d none caldera/ipchains/images 0700 root bin
f none caldera/ipchains/images/icon.gif 0600 root bin
d none caldera/lkmload 0700 root bin
d none caldera/lkmload/images 0700 root bin
f none caldera/lkmload/images/icon.gif 0600 root bin
d none caldera/nis 0700 root bin
d none caldera/nis/images 0700 root bin
f none caldera/nis/images/icon.gif 0600 root bin
d none caldera/shell 0700 root bin
d none caldera/shell/images 0700 root bin
f none caldera/shell/images/icon.gif 0600 root bin
f none caldera/index_body.cgi 0600 root bin
d none pam 0700 root bin
d none pam/lang 0700 root bin
f none pam/lang/en 0600 root bin
f none pam/lang/es 0600 root bin
f none pam/lang/sv 0600 root bin
f none pam/lang/pl 0600 root bin
f none pam/lang/fr 0600 root bin
d none pam/images 0700 root bin
f none pam/images/icon.gif 0600 root bin
f none pam/images/up.gif 0600 root bin
f none pam/images/down.gif 0600 root bin
f none pam/images/gap.gif 0600 root bin
f none pam/config.info 0600 root bin
f none pam/module.info 0600 root bin
f none pam/index.cgi 0700 root bin
f none pam/pam-lib.pl 0600 root bin
f none pam/edit_pam.cgi 0700 root bin
f none pam/edit_mod.cgi 0700 root bin
f none pam/template.pl 0600 root bin
f none pam/create_pam.cgi 0700 root bin
f none pam/create_form.cgi 0700 root bin
f none pam/delete_pam.cgi 0700 root bin
f none pam/save_mod.cgi 0700 root bin
f none pam/pam_pwdb.so.pl 0600 root bin
f none pam/pam_shells.so.pl 0600 root bin
f none pam/pam_nologin.so.pl 0600 root bin
f none pam/pam_permit.so.pl 0600 root bin
f none pam/pam_deny.so.pl 0600 root bin
f none pam/move.cgi 0700 root bin
f none pam/pam_listfile.so.pl 0600 root bin
f none pam/pam_cracklib.so.pl 0600 root bin
f none pam/pam_filter.so.pl 0600 root bin
f none pam/pam_rhosts_auth.so.pl 0600 root bin
f none pam/pam_env.so.pl 0600 root bin
f none pam/pam_rootok.so.pl 0600 root bin
f none pam/pam_securetty.so.pl 0600 root bin
f none pam/pam_tally.so.pl 0600 root bin
f none pam/pam_time.so.pl 0600 root bin
f none pam/pam_group.so.pl 0600 root bin
f none pam/pam_wheel.so.pl 0600 root bin
f none pam/config-open-linux 0600 root bin
f none pam/config-redhat-linux 0600 root bin
f none pam/pam_motd.so.pl 0600 root bin
f none pam/pam_mail.so.pl 0600 root bin
f none pam/config-debian-linux 0600 root bin
f none pam/config-corel-linux 0600 root bin
f none pam/config-suse-linux 0600 root bin
f none pam/config-turbo-linux 0600 root bin
f none pam/config-cobalt-linux 0600 root bin
f none pam/config.info.es 0600 root bin
f none pam/log_parser.pl 0600 root bin
f none pam/config.info.sv 0600 root bin
f none pam/config.info.pl 0600 root bin
f none pam/pam_stack.so.pl 0600 root bin
d none nis 0700 root bin
d none nis/lang 0700 root bin
f none nis/lang/pl 0600 root bin
f none nis/lang/en 0600 root bin
f none nis/lang/sv 0600 root bin
f none nis/module.info 0600 root bin
f none nis/index.cgi 0700 root bin
f none nis/nis-lib.pl 0600 root bin
d none nis/images 0700 root bin
f none nis/images/client.gif 0600 root bin
f none nis/images/switch.gif 0600 root bin
f none nis/images/icon.gif 0600 root bin
f none nis/images/server.gif 0600 root bin
f none nis/images/tables.gif 0600 root bin
f none nis/images/security.gif 0600 root bin
f none nis/open-linux-lib.pl 0600 root bin
f none nis/edit_rpc.cgi 0600 root bin
f none nis/config.info 0600 root bin
f none nis/edit_client.cgi 0700 root bin
f none nis/redhat-linux-lib.pl 0600 root bin
f none nis/save_client.cgi 0700 root bin
f none nis/edit_switch.cgi 0600 root bin
f none nis/save_switch.cgi 0700 root bin
f none nis/edit_server.cgi 0600 root bin
f none nis/edit_group.cgi 0600 root bin
f none nis/save_server.cgi 0700 root bin
f none nis/edit_tables.cgi 0600 root bin
f none nis/edit_hosts.cgi 0600 root bin
f none nis/save_hosts.cgi 0600 root bin
f none nis/save_group.cgi 0600 root bin
f none nis/save_file.cgi 0700 root bin
f none nis/edit_passwd_shadow.cgi 0600 root bin
f none nis/save_passwd_shadow.cgi 0600 root bin
f none nis/old_edit_passwd_shadow.cgi 0600 root bin
f none nis/edit_services.cgi 0600 root bin
f none nis/save_services.cgi 0600 root bin
f none nis/edit_group_shadow.cgi 0600 root bin
f none nis/save_group_shadow.cgi 0600 root bin
f none nis/edit_passwd_shadow_full.cgi 0600 root bin
f none nis/edit_protocols.cgi 0600 root bin
f none nis/save_protocols.cgi 0600 root bin
f none nis/edit_netgroup.cgi 0600 root bin
f none nis/save_netgroup.cgi 0600 root bin
f none nis/edit_ethers.cgi 0600 root bin
f none nis/nisupdate.conf 0600 root bin
f none nis/config-solaris 0600 root bin
f none nis/edit_networks.cgi 0600 root bin
f none nis/save_networks.cgi 0600 root bin
f none nis/edit_services2.cgi 0600 root bin
f none nis/save_services2.cgi 0600 root bin
f none nis/save_rpc.cgi 0600 root bin
f none nis/edit_passwd.cgi 0600 root bin
f none nis/debian-linux-lib.pl 0600 root bin
f none nis/config-open-linux 0600 root bin
f none nis/config-redhat-linux 0600 root bin
f none nis/edit_netmasks.cgi 0600 root bin
f none nis/solaris-lib.pl 0600 root bin
f none nis/save_ethers.cgi 0600 root bin
f none nis/save_netmasks.cgi 0600 root bin
f none nis/config-solaris-8 0600 root bin
f none nis/config-debian-linux 0600 root bin
f none nis/edit_aliases.cgi 0600 root bin
f none nis/save_aliases.cgi 0600 root bin
f none nis/config.info.pl 0600 root bin
f none nis/save_security.cgi 0700 root bin
f none nis/edit_security.cgi 0700 root bin
f none nis/suse-linux-lib.pl 0600 root bin
f none nis/config-suse-linux 0600 root bin
f none nis/config.info.sv 0600 root bin
d none shell 0700 root bin
f none shell/acl_security.pl 0600 root bin
f none shell/shell-lib.pl 0600 root bin
f none shell/index.cgi 0700 root bin
d none shell/lang 0700 root bin
f none shell/lang/pl 0600 root bin
f none shell/lang/en 0600 root bin
d none shell/images 0700 root bin
f none shell/images/icon.gif 0600 root bin
f none shell/images/shell.jpg 0600 root bin
f none shell/module.info 0600 root bin
f none shell/defaultacl 0600 root bin
f none prototype 0644 root other
i postinstall=./postinstall
i preremove=./preremove
f none /etc/rc3.d/S99webmin=webmin-init 0755 root bin
  07070100048292000041ed0000000000000001000000053ac03c5500000000000000200000000000000000000000000000000c00000003reloc/quota   07070100048293000081a40000000000000002000000013ac038950000137d000000200000000000000000000000000000001c00000003reloc/quota/acl_security.pl   
require './quota-lib.pl';

# acl_security_form(&options)
# Output HTML for editing security options for the quota module
sub acl_security_form
{
local $groups = &quotas_supported() >= 2;

print "<tr> <td valign=top><b>$text{'acl_fss'}</b></td>\n";
print "<td colspan=3>\n";
printf "<input type=radio name=filesys_def value=1 %s> %s\n",
	$_[0]->{'filesys'} eq '*' ? 'checked' : '', $text{'acl_fall'};
printf "<input type=radio name=filesys_def value=1 %s> %s<br>\n",
	$_[0]->{'filesys'} eq '*' ? '' : 'checked', $text{'acl_fsel'};
print "<select width=150 name=filesys multiple size=3>\n";
local ($f, %qcan);
map { $qcan{$_}++ } split(/\s+/, $_[0]->{'filesys'});
foreach $f (&list_filesystems()) {
	if ($f->[4]) {
		printf "<option %s>%s\n",
			$qcan{$f->[0]} ? "selected" : "", $f->[0];
		}
	}
print "</select></td> </tr>\n";

print "<tr> <td colspan=4><hr></td> </tr>\n";

print "<tr> <td><b>$text{'acl_quotaon'}</b></td> <td>\n";
printf "<input type=radio name=enable value=1 %s> $text{'yes'}\n",
	$_[0]->{'enable'} ? "checked" : "";
printf "<input type=radio name=enable value=0 %s> $text{'no'}</td>\n",
	$_[0]->{'enable'} ? "" : "checked";

print "<td><b>$text{'acl_quotanew'}</b></td> <td>\n";
printf "<input type=radio name=default value=1 %s> $text{'yes'}\n",
	$_[0]->{'default'} ? "checked" : "";
printf "<input type=radio name=default value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'default'} ? "" : "checked";

print "<tr> <td><b>$text{'acl_ugrace'}</b></td> <td>\n";
printf "<input type=radio name=ugrace value=1 %s> $text{'yes'}\n",
	$_[0]->{'ugrace'} ? "checked" : "";
printf "<input type=radio name=ugrace value=0 %s> $text{'no'}</td>\n",
	$_[0]->{'ugrace'} ? "" : "checked";

print "<td><b>$text{'acl_vtotal'}</b></td> <td>\n";
printf "<input type=radio name=diskspace value=1 %s> $text{'yes'}\n",
	$_[0]->{'diskspace'} ? "checked" : "";
printf "<input type=radio name=diskspace value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'diskspace'} ? "" : "checked";

if ($groups) {
	print "<td><b>$text{'acl_ggrace'}</b></td> <td>\n";
	printf "<input type=radio name=ggrace value=1 %s> $text{'yes'}\n",
		$_[0]->{'ggrace'} ? "checked" : "";
	printf "<input type=radio name=ggrace value=0 %s> $text{'no'}</td> </tr>\n",
		$_[0]->{'ggrace'} ? "" : "checked";
	}

print "<tr> <td colspan=4><hr></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'acl_uquota'}",
      "</b></td> <td colspan=3>\n";
printf "<input type=radio name=umode value=0 %s>$text{'acl_uall'}<br>\n",
	$_[0]->{'umode'} == 0 ? "checked" : "";
printf "<input type=radio name=umode value=1 %s>$text{'acl_uonly'}\n",
	$_[0]->{'umode'} == 1 ? "checked" : "";
printf "<input name=ucan size=40 value='%s'> %s<br>\n",
	$_[0]->{'umode'} == 1 ? $_[0]->{'users'} : "",
	&user_chooser_button("ucan", 1);
printf "<input type=radio name=umode value=2 %s>$text{'acl_uexcept'}\n",
	$_[0]->{'umode'} == 2 ? "checked" : "";
printf "<input name=ucannot size=40 value='%s'> %s<br>\n",
	$_[0]->{'umode'} == 2 ? $_[0]->{'users'} : "",
	&user_chooser_button("ucannot", 1);
printf "<input type=radio name=umode value=3 %s>$text{'acl_ugroup'}\n",
	$_[0]->{'umode'} == 3 ? "checked" : "";
printf "<input name=upri size=8 value='%s'> %s</td> </tr>\n",
	$_[0]->{'umode'} == 3 ? scalar(getgrgid($_[0]->{'users'})) : "",
	&group_chooser_button("upri", 0);

if ($groups) {
	print "<tr> <td colspan=4><hr></td> </tr>\n";

	print "<tr> <td valign=top><b>$text{'acl_gquota'}",
	      "</b></td> <td colspan=3>\n";
	printf "<input type=radio name=gmode value=0 %s>$text{'acl_gall'}<br>\n",
		$_[0]->{'gmode'} == 0 ? "checked" : "";
	printf "<input type=radio name=gmode value=3 %s>$text{'acl_gnone'}<br>\n",
		$_[0]->{'gmode'} == 3 ? "checked" : "";
	printf "<input type=radio name=gmode value=1 %s>$text{'acl_gonly'}\n",
		$_[0]->{'gmode'} == 1 ? "checked" : "";
	printf "<input name=gcan size=40 value='%s'> %s<br>\n",
		$_[0]->{'gmode'} == 1 ? $_[0]->{'groups'} : "",
		&group_chooser_button("gcan", 1);
	printf "<input type=radio name=gmode value=2 %s>$text{'acl_gexcept'}\n",
		$_[0]->{'gmode'} == 2 ? "checked" : "";
	printf "<input name=gcannot size=40 value='%s'> %s</td> </tr>\n",
		$_[0]->{'gmode'} == 2 ? $_[0]->{'groups'} : "",
		&group_chooser_button("gcannot", 1);
	}
}

# acl_security_save(&options)
# Parse the form for security options for the quota module
sub acl_security_save
{
if ($in{'filesys_def'}) {
	$_[0]->{'filesys'} = "*";
	}
else {
	$_[0]->{'filesys'} = join(" ", split(/\0/, $in{'filesys'}));
	}
$_[0]->{'umode'} = $in{'umode'};
$_[0]->{'users'} = $in{'umode'} == 0 ? "" :
		   $in{'umode'} == 1 ? $in{'ucan'} :
		   $in{'umode'} == 2 ? $in{'ucannot'} :
				       scalar(getgrnam($in{'upri'}));
$_[0]->{'gmode'} = $in{'gmode'};
$_[0]->{'groups'} = $in{'gmode'} == 0 ? "" :
		    $in{'gmode'} == 1 ? $in{'gcan'} : $in{'gcannot'};
$_[0]->{'enable'} = $in{'enable'};
$_[0]->{'default'} = $in{'default'};
$_[0]->{'ugrace'} = $in{'ugrace'};
$_[0]->{'ggrace'} = $in{'ggrace'};
$_[0]->{'diskspace'} = $in{'diskspace'};
}

   07070100048294000081e40000000000000002000000013ac0389500000278000000200000000000000000000000000000001900000003reloc/quota/activate.cgi  #!/usr/local/bin/perl
# activate.cgi
# Turn quotas on or off for some filesystem

require './quota-lib.pl';
&ReadParse();
&can_edit_filesys($in{'dir'}) && $access{'enable'} ||
	&error($text{'activate_eallow'});

if ($in{'active'} == 0) {
	# Turn on quotas
	$whatfailed = $text{'activate_eon'};
	if ($error = &quotaon($in{'dir'}, $in{'mode'})) {
		&error($error);
		}
	&webmin_log("activate", undef, $in{'dir'}, \%in);
	}
else {
	# Turn off quotas
	$whatfailed = $text{'activate_eoff'};
	if ($error = &quotaoff($in{'dir'}, $in{'mode'})) {
		&error($error);
		}
	&webmin_log("deactivate", undef, $in{'dir'}, \%in);
	}
&redirect("");

07070100048295000081e40000000000000002000000013ac03895000002a0000000200000000000000000000000000000001d00000003reloc/quota/check_quotas.cgi  #!/usr/local/bin/perl
# check_quotas.cgi
# Runs quotacheck to update block and file counts on some filesystem

require './quota-lib.pl';
&ReadParse();
$| = 1;
&can_edit_filesys($in{'filesys'}) ||
	&error($text{'check_ecannot'});

&header($text{'check_title'}, "");
print "<hr>\n";
print &text('check_running', $in{'filesys'}), "<p>\n";

&quotacheck($in{'filesys'});
&webmin_log("check", undef, $in{'filesys'});
print "$text{'check_done'}<p>\n";
print "<hr>\n";
if ($in{'source'} eq "user") {
	$retlist_name = $text{'check_ruser'};
} else {
	$retlist_name = $text{'check_rgroup'};
}
&footer("list_$in{'source'}s.cgi?$in{'filesys'}", &text('check_return', $retlist_name));

07070100048296000081a40000000000000002000000013ac03895000024f5000000200000000000000000000000000000002000000003reloc/quota/cobalt-linux-lib.pl   # linux-lib.pl
# Quota functions for all linux version

# quotas_init()
sub quotas_init
{
if (&has_command("quotaon") && &has_command("quotaoff")) {
	return undef;
	}
else {
	return "The quotas package does not appear to be installed on ".
	       "your system\n";
	}
}

# quotas_supported()
# Returns 1 for user quotas, 2 for group quotas or 3 for both
sub quotas_supported
{
return 3;
}

# free_space(filesystem)
# Returns an array containing  btotal, bfree, ftotal, ffree
sub free_space
{
local(@out, @rv);
$out = `df $_[0]`;
$out =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)/;
push(@rv, ($1, $2));
$out = `df -i $_[0]`;
$out =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)/;
push(@rv, ($1, $2));
return @rv;
}

# quota_can(&mnttab, &fstab)
# Can this filesystem type support quotas?
#  0 = No quota support (or not turned on in /etc/fstab)
#  1 = User quotas only
#  2 = Group quotas only
#  3 = User and group quotas
sub quota_can
{
return ($_[1]->[3] =~ /usrquota/ ? 1 : 0) +
       ($_[1]->[3] =~ /grpquota/ ? 2 : 0);
}

# quota_now(&mnttab, &fstab)
# Are quotas currently active?
#  0 = Not active
#  1 = User quotas active
#  2 = Group quotas active
#  3 = Both active
sub quota_now
{
local $rv = 0;
local $dir = $_[0]->[0];
if ($_[0]->[4]%2 == 1) {
	# test user quotas
	if (-r "$dir/quota.user") {
		$out = `$config{'user_quotaon_command'} $dir 2>&1`;
		if ($out =~ /Device or resource busy/i) {
			# already on..
			$rv += 1;
			}
		elsif ($out =~ /Package not installed/i) {
			# No quota support!
			return 0;
			}
		else {
			# was off.. need to turn on again
			`$config{'user_quotaoff_command'} $dir 2>&1`;
			}
		}
	}
if ($_[0]->[4] > 1) {
	# test group quotas
	if (-r "$dir/quota.group") {
		$out = `$config{'group_quotaon_command'} $dir 2>&1`;
		if ($out =~ /Device or resource busy/i) {
			# already on..
			$rv += 2;
			}
		elsif ($out =~ /Package not installed/i) {
			# No quota support!
			return 0;
			}
		else {
			# was off.. need to turn on again
			`$config{'group_quotaoff_command'} $dir 2>&1`;
			}
		}
	}
return $rv;
}

# quotaon(filesystem, mode)
# Activate quotas and create quota files for some filesystem. The mode can
# be 1 for user only, 2 for group only or 3 for user and group
sub quotaon
{
local($out, $qf, @qfile, $flags);
if ($_[1]%2 == 1) {
	# turn on user quotas
	$qf = "$_[0]/quota.user";
	if (!(-r $qf)) {
		open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
		chmod(0600, $qf);
		&system_logged("$config{'quotacheck_command'} $_[0]");
		}
	$out = &backquote_logged("$config{'user_quotaon_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
if ($_[1] > 1) {
	# turn on group quotas
	$qf = "$_[0]/quota.group";
	if (!(-r $qf)) {
		open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
		chmod(0600, $qf);
		&system_logged("$config{'quotacheck_command'} $_[0]");
		}
	$out = &backquote_logged("$config{'group_quotaon_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# quotaoff(filesystem, mode)
# Turn off quotas for some filesystem
sub quotaoff
{
local($out);
if ($_[1]%2 == 1) {
	$out = &backquote_logged("$config{'user_quotaoff_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
if ($_[1] > 1) {
	$out = &backquote_logged("$config{'group_quotaoff_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# user_filesystems(user)
# Fills the array %filesys with details of all filesystem some user has
# quotas on
sub user_filesystems
{
return &parse_quota_output("$config{'user_quota_command'} $_[0]");
}

# user_filesystems(user)
# Fills the array %filesys with details of all filesystem some group has
# quotas on
sub group_filesystems
{
return &parse_quota_output("$config{'group_quota_command'} $_[0]");
}

sub parse_quota_output
{
local($n, $_, %mtab);
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	@m = split(/\s+/);
	$mtab{$m[0]} = $m[1];
	}
close(MTAB);
open(QUOTA, "$_[0] |");
$n=0; while(<QUOTA>) {
	chop;
	if (/^(Disk|\s+Filesystem)/) { next; }
	if (/^(\S+)$/) {
		# Bogus wrapped line
		$filesys{$n,'filesys'} = $mtab{$1};
		<QUOTA>=~/^.{15}.(.{7}).(.{7}).(.{7}).{8}.(.{7}).(.{7}).(.{7})/;
		$filesys{$n,'ublocks'} = int($1);
		$filesys{$n,'sblocks'} = int($2);
		$filesys{$n,'hblocks'} = int($3);
		$filesys{$n,'ufiles'} = int($4);
		$filesys{$n,'sfiles'} = int($5);
		$filesys{$n,'hfiles'} = int($6);
		$n++;
		}
	elsif (/^(.{15}).(.{7}).(.{7}).(.{7}).{8}.(.{7}).(.{7}).(.{7})/) {
		$filesys{$n,'ublocks'} = int($2);
		$filesys{$n,'sblocks'} = int($3);
		$filesys{$n,'hblocks'} = int($4);
		$filesys{$n,'ufiles'} = int($5);
		$filesys{$n,'sfiles'} = int($6);
		$filesys{$n,'hfiles'} = int($7);
		$dev = $1; $dev =~ s/\s+$//g; $dev =~ s/^\s+//g;
		$filesys{$n,'filesys'} = $mtab{$dev};
		$n++;
		}
	}
close(QUOTA);
return $n;
}

# filesystem_users(filesystem)
# Fills the array %user with information about all users with quotas
# on this filesystem. This may not be all users on the system..
sub filesystem_users
{
return &parse_repquota_output(
	"$config{'user_repquota_command'} $_[0]", "user");
}

sub filesystem_groups
{
return &parse_repquota_output(
	"$config{'group_repquota_command'} $_[0]", "group");
}

sub parse_repquota_output
{
local($rep, @rep, $n, $what, $u, @uinfo);
$what = $_[1];
$rep = `$_[0] 2>&1`;
if ($?) { return -1; }
if ($what eq 'user') {
	setpwent();
	while(@uinfo = getpwent()) {
		$hasu{$uinfo[0]}++;
		}
	endpwent();
	}
else {
	setgrent();
	while(@uinfo = getgrent()) {
		$hasu{$uinfo[0]}++;
		}
	endgrent();
	}
@rep = split(/\n/, $rep); @rep = @rep[3..$#rep];
for($n=0; $n<@rep; $n++) {
	if ($rep[$n] =~ /(\S+)\s*[\-\+]{2}(.{8})(.{8})(.{8}).{7}(.{8})(.{6})(.{6})/) {
		$$what{$n,$what} = $1;
		$$what{$n,'ublocks'} = int($2);
		$$what{$n,'sblocks'} = int($3);
		$$what{$n,'hblocks'} = int($4);
		$$what{$n,'ufiles'} = int($5);
		$$what{$n,'sfiles'} = int($6);
		$$what{$n,'hfiles'} = int($7);
		if ($$what{$n,$what} !~ /^\d+$/ && !$hasu{$$what{$n,$what}}) {
			# User/group name was truncated! Try to find him..
			foreach $u (keys %hasu) {
				if (substr($u, 0, length($$what{$n,$what})) eq
				    $$what{$n,$what}) {
					# found him..
					$$what{$n,$what} = $u;
					last;
					}
				}
			}
		}
	}
return $n;
}

# edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles)
sub edit_quota_file
{
local($rv, $line, %mtab, @m);
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	@m = split(/\s+/);
	$mtab{$m[0]} = $m[1];
	}
close(MTAB);
@line = split(/\n/, $_[0]);
for($i=0; $i<@line; $i++) {
	if ($line[$i] =~ /^(\S+): blocks in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/ && $mtab{$1} eq $_[1]) {
		# found lines to change
		$rv .= "$1: blocks in use: $2, limits (soft = $_[2], hard = $_[3])\n";
		$line[++$i] =~ /^\s*inodes in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/;
		$rv .= "\tinodes in use: $1, limits (soft = $_[4], hard = $_[5])\n";
		}
	else { $rv .= "$line[$i]\n"; }
	}
return $rv;
}

# quotacheck(filesystem, mode)
# Runs quotacheck on some filesystem
sub quotacheck
{
$out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1");
if ($?) { return $out; }
return undef;
}

# copy_user_quota(user, [user]+)
# Copy the quotas for some user to many others
sub copy_user_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'user_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# copy_group_quota(group, [group]+)
# Copy the quotas for some group to many others
sub copy_group_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'group_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# get_user_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day
sub get_user_grace
{
return &parse_grace_output($config{'user_grace_command'}, $_[0]);
}

# get_group_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day
sub get_group_grace
{
return &parse_grace_output($config{'group_grace_command'}, $_[0]);
}

# default_grace()
# Returns 0 if grace time can be 0, 1 if zero grace means default
sub default_grace
{
return 0;
}

sub parse_grace_output
{
local(@rv, %mtab, @m);
open(MTAB, "/etc/mtab");
while(<MTAB>) { @m = split(/\s+/); $mtab{$m[0]} = $m[1]; }
close(MTAB);
$ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat";
open(GRACE, "$_[0] |");
while(<GRACE>) {
	if (/^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $mtab{$1} eq $_[1]) {
		@rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5});
		}
	}
close(GRACE);
return @rv;
}

# edit_grace_file(data, filesystem, btime, bunits, ftime, funits)
sub edit_grace_file
{
local($rv, $line, @m, %mtab);
open(MTAB, "/etc/mtab");
while(<MTAB>) { @m = split(/\s+/); $mtab{$m[0]} = $m[1]; }
close(MTAB);
foreach $line (split(/\n/, $_[0])) {
	if ($line =~ /^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $mtab{$1} eq $_[1]) {
		# replace this line
		$line = "$1: block grace period: $_[2] $unit_to_name{$_[3]}, file grace period: $_[4] $unit_to_name{$_[5]}";
		}
	$rv .= "$line\n";
	}
return $rv;
}

# grace_units()
# Returns an array of possible units for grace periods
sub grace_units
{
return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'},
	$text{'grace_days'});
}

%name_to_unit = ( "second", 0, "seconds", 0,
		  "minute", 1, "minutes", 1,
		  "hour", 2, "hours", 2,
		  "day", 3, "days", 3,
		);
foreach $k (keys %name_to_unit) {
	$unit_to_name{$name_to_unit{$k}} = $k;
	}

1;

   07070100048297000081a40000000000000002000000013ac0389500000209000000200000000000000000000000000000002000000003reloc/quota/config-cobalt-linux   display_max=100
user_grace_command=edquota -u -t
group_grace_command=edquota -g -t
group_quotaon_command=quotaon -g
user_quotaoff_command=quotaoff -u
user_quotaon_command=quotaon -u
group_quota_command=quota -v -g
group_copy_command=edquota -g -p
quotacheck_command=quotacheck -u -g
user_quota_command=quota -v -u
user_copy_command=edquota -u -p
group_repquota_command=repquota -g -v
user_repquota_command=repquota -u -v
group_edquota_command=edquota -g
user_edquota_command=edquota -u
group_quotaoff_command=quotaoff -g
   07070100048298000081a40000000000000002000000013ac0389500000209000000200000000000000000000000000000001f00000003reloc/quota/config-corel-linux    display_max=100
user_grace_command=edquota -u -t
group_grace_command=edquota -g -t
group_quotaon_command=quotaon -g
user_quotaoff_command=quotaoff -u
user_quotaon_command=quotaon -u
group_quota_command=quota -v -g
group_copy_command=edquota -g -p
quotacheck_command=quotacheck -u -g
user_quota_command=quota -v -u
user_copy_command=edquota -u -p
group_repquota_command=repquota -g -v
user_repquota_command=repquota -u -v
group_edquota_command=edquota -g
user_edquota_command=edquota -u
group_quotaoff_command=quotaoff -g
   07070100048299000081a40000000000000002000000013ac0389500000209000000200000000000000000000000000000002000000003reloc/quota/config-debian-linux   display_max=100
user_grace_command=edquota -u -t
group_grace_command=edquota -g -t
group_quotaon_command=quotaon -g
user_quotaoff_command=quotaoff -u
user_quotaon_command=quotaon -u
group_quota_command=quota -v -g
group_copy_command=edquota -g -p
quotacheck_command=quotacheck -u -g
user_quota_command=quota -v -u
user_copy_command=edquota -u -p
group_repquota_command=repquota -g -v
user_repquota_command=repquota -u -v
group_edquota_command=edquota -g
user_edquota_command=edquota -u
group_quotaoff_command=quotaoff -g
   0707010004829a000081a40000000000000002000000013ac0389500000203000000200000000000000000000000000000001b00000003reloc/quota/config-freebsd    user_quotaoff_command=quotaoff -u
user_quotaon_command=quotaon -u
group_copy_command=edquota -g -p
quotacheck_command=quotacheck
user_quota_command=quota -v -u
group_grace_command=edquota -t -g
user_repquota_command=repquota -u -v
user_edquota_command=edquota -u
group_quotaoff_command=quotaoff -g
group_quotaon_command=quotaon -g
group_quota_command=quota -v -g
user_copy_command=edquota -u -p
group_repquota_command=repquota -g -v
display_max=100
group_edquota_command=edquota -g
user_grace_command=edquota -t -u
 0707010004829b000081a40000000000000002000000013ac0389500000100000000200000000000000000000000000000001800000003reloc/quota/config-hpux   display_max=100
user_quotaoff_command=quotaoff
user_quotaon_command=quotaon
user_repquota_command=repquota -v
user_grace_command=edquota -t
user_quota_command=quota -v
quotacheck_command=quotacheck
user_edquota_command=edquota
user_copy_command=edquota -p
0707010004829c000081a40000000000000002000000013ac0389500000209000000200000000000000000000000000000001e00000003reloc/quota/config-open-linux display_max=100
user_grace_command=edquota -u -t
group_grace_command=edquota -g -t
group_quotaon_command=quotaon -g
user_quotaoff_command=quotaoff -u
user_quotaon_command=quotaon -u
group_quota_command=quota -v -g
group_copy_command=edquota -g -p
quotacheck_command=quotacheck -u -g
user_quota_command=quota -v -u
user_copy_command=edquota -u -p
group_repquota_command=repquota -g -v
user_repquota_command=repquota -u -v
group_edquota_command=edquota -g
user_edquota_command=edquota -u
group_quotaoff_command=quotaoff -g
   0707010004829d000081a40000000000000002000000013ac0389500000203000000200000000000000000000000000000001b00000003reloc/quota/config-openbsd    user_quotaoff_command=quotaoff -u
user_quotaon_command=quotaon -u
group_copy_command=edquota -g -p
quotacheck_command=quotacheck
user_quota_command=quota -v -u
group_grace_command=edquota -t -g
user_repquota_command=repquota -u -v
user_edquota_command=edquota -u
group_quotaoff_command=quotaoff -g
group_quotaon_command=quotaon -g
group_quota_command=quota -v -g
user_copy_command=edquota -u -p
group_repquota_command=repquota -g -v
display_max=100
group_edquota_command=edquota -g
user_grace_command=edquota -t -u
 0707010004829e000081a40000000000000002000000013ac0389500000209000000200000000000000000000000000000002000000003reloc/quota/config-redhat-linux   display_max=100
user_grace_command=edquota -u -t
group_grace_command=edquota -g -t
group_quotaon_command=quotaon -g
user_quotaoff_command=quotaoff -u
user_quotaon_command=quotaon -u
group_quota_command=quota -v -g
group_copy_command=edquota -g -p
quotacheck_command=quotacheck -u -g
user_quota_command=quota -v -u
user_copy_command=edquota -u -p
group_repquota_command=repquota -g -v
user_repquota_command=repquota -u -v
group_edquota_command=edquota -g
user_edquota_command=edquota -u
group_quotaoff_command=quotaoff -g
   0707010004829f000081a40000000000000002000000013ac0389500000209000000200000000000000000000000000000002300000003reloc/quota/config-slackware-linux    display_max=100
user_grace_command=edquota -u -t
group_grace_command=edquota -g -t
group_quotaon_command=quotaon -g
user_quotaoff_command=quotaoff -u
user_quotaon_command=quotaon -u
group_quota_command=quota -v -g
group_copy_command=edquota -g -p
quotacheck_command=quotacheck -u -g
user_quota_command=quota -v -u
user_copy_command=edquota -u -p
group_repquota_command=repquota -g -v
user_repquota_command=repquota -u -v
group_edquota_command=edquota -g
user_edquota_command=edquota -u
group_quotaoff_command=quotaoff -g
   070701000482a0000081a40000000000000002000000013ac0389500000100000000200000000000000000000000000000001b00000003reloc/quota/config-solaris    display_max=100
user_quotaoff_command=quotaoff
user_quotaon_command=quotaon
user_repquota_command=repquota -v
user_grace_command=edquota -t
user_quota_command=quota -v
quotacheck_command=quotacheck
user_edquota_command=edquota
user_copy_command=edquota -p
070701000482a1000081a40000000000000002000000013ac0389500000209000000200000000000000000000000000000001e00000003reloc/quota/config-suse-linux display_max=100
user_grace_command=edquota -u -t
group_grace_command=edquota -g -t
group_quotaon_command=quotaon -g
user_quotaoff_command=quotaoff -u
user_quotaon_command=quotaon -u
group_quota_command=quota -v -g
group_copy_command=edquota -g -p
quotacheck_command=quotacheck -u -g
user_quota_command=quota -v -u
user_copy_command=edquota -u -p
group_repquota_command=repquota -g -v
user_repquota_command=repquota -u -v
group_edquota_command=edquota -g
user_edquota_command=edquota -u
group_quotaoff_command=quotaoff -g
   070701000482a2000081a40000000000000002000000013ac0389500000209000000200000000000000000000000000000001f00000003reloc/quota/config-turbo-linux    display_max=100
user_grace_command=edquota -u -t
group_grace_command=edquota -g -t
group_quotaon_command=quotaon -g
user_quotaoff_command=quotaoff -u
user_quotaon_command=quotaon -u
group_quota_command=quota -v -g
group_copy_command=edquota -g -p
quotacheck_command=quotacheck -u -g
user_quota_command=quota -v -u
user_copy_command=edquota -u -p
group_repquota_command=repquota -g -v
user_repquota_command=repquota -u -v
group_edquota_command=edquota -g
user_edquota_command=edquota -u
group_quotaoff_command=quotaoff -g
   070701000482a3000081a40000000000000002000000013ac0389500000100000000200000000000000000000000000000001c00000003reloc/quota/config-unixware   display_max=100
user_quotaoff_command=quotaoff
user_quotaon_command=quotaon
user_repquota_command=repquota -v
user_grace_command=edquota -t
user_quota_command=quota -v
quotacheck_command=quotacheck
user_edquota_command=edquota
user_copy_command=edquota -p
070701000482a4000081a40000000000000002000000013ac0389500000372000000200000000000000000000000000000001800000003reloc/quota/config.info   display_max=Maximum number of users or groups to display,0
user_repquota_command=Command to list users on a filesystem,0
group_repquota_command=Command to list groups on a filesystem,0
user_edquota_command=Command to edit user's quota,0
group_edquota_command=Command to edit group's quota,0
user_quota_command=Command to check a user's quota,0
group_quota_command=Command to check a group's quota,0
user_copy_command=Command to copy a user's quota,0
group_copy_command=Command to copy a group's quota,0
user_quotaon_command=Command to turn on user quotas,0
group_quotaon_command=Command to turn on group quotas,0
user_quotaoff_command=Command to turn off user quotas,0
group_quotaoff_command=Command to turn off group quotas,0
quotacheck_command=Command to check quotas,0
user_grace_command=Command to edit user grace times,0
group_grace_command=Command to edit group grace times,0
  070701000482b5000081a40000000000000002000000013ac0389500000056000000200000000000000000000000000000001700000003reloc/quota/defaultacl    noconfig=0
filesys=*
umode=0
gmode=0
enable=1
default=1
ugrace=1
ggrace=1
diskspace=1
  070701000482a5000081a40000000000000002000000013ac0389500000463000000200000000000000000000000000000001b00000003reloc/quota/config.info.de    display_max=Maximale Anzahl anzuzeigender Benutzer und Gruppen,0
user_repquota_command=Kommando um Benutzer eines Dateisystems anzuzeigen,0
group_repquota_command=Kommando zum auflisten der Gruppen auf einem Dateisystem,0
user_edquota_command=Kommando um Quota eines Benutzers zu bearbeiten,0
group_edquota_command=Kommando um Quota einer Gruppe anzuzeigen,0
user_quota_command=Kommando um die Quota eines Benutzers anzuzeigen,0
group_quota_command=Kommando um die Quota einer Gruppe anzuzeigen,0
user_copy_command=Kommando um die Quota eines Benutzers zu kopieren,0
group_copy_command=Kommando um die Quota einer Gruppe zu kopieren,0
user_quotaon_command=Kommando zum aktivieren einer Benutzer-Quota,0
group_quotaon_command=Kommando zum aktivieren einer Gruppen-Quota,0
user_quotaoff_command=Kommando zum deaktivieren einer Benutzer-Quota,0
group_quotaoff_command=Kommando zum deaktivieren einer Gruppen-Quota,0
quotacheck_command=Kommando zum &Uuml;berpr&uuml;fen der Quotas,0
user_grace_command=Kommando zum Bearbeiten der Fristen eines Benutzers,0
group_grace_command=Kommando zum Bearbeiten der Fristen einer Gruppe,0
 070701000482a6000081a40000000000000002000000013ac03895000003f9000000200000000000000000000000000000001b00000003reloc/quota/config.info.es    display_max=M醲imo n鷐ero de usuario o grupos a mostrar,0
user_repquota_command=Comando para listar usuarios en un sistema de archivos,0
group_repquota_command=Comando para listar grupos en un sistema de archivos,0
user_edquota_command=Comando para editar cuota de usuario,0
group_edquota_command=Comando para editar cuota de grupo,0
user_quota_command=Comando para revisar cuota de un usuario,0
group_quota_command=Comando para revisar cuota de un grupo,0
user_copy_command=Comando para copiar cuota de un usuario,0
group_copy_command=Comando para copiar cuota de un grupo,0
user_quotaon_command=Comando para activar cuotas de usuario,0
group_quotaon_command=Comando para activar cuotas de grupo,0
user_quotaoff_command=Comando para desactivar cuotas de usuario,0
group_quotaoff_command=Comando para desactivar cuotas de grupo,0
quotacheck_command=Comando para revisar cuotas,0
user_grace_command=Comando para editar tiempo de gracia de usuario,0
group_grace_command=Comando para editar tiempos de gracia de grupo,0
   070701000482a7000081a40000000000000002000000013ac0389500000453000000200000000000000000000000000000001b00000003reloc/quota/config.info.fr    display_max=Nombre maximum d'usagers et de groupe  afficher,0
user_repquota_command=Commande pour lister les usagers sur un syst鑝e de fichier,0
group_repquota_command=Commande pour lister les groupes sur un syst鑝e de fichier,0
user_edquota_command=Commande pour 閐iter le quota d'un usager,0
group_edquota_command=Commande pour 閐iter le quota d'un groupe,0
user_quota_command=Commande pour v閞ifier le quota d'un usager,0
group_quota_command=Commande pour v閞ifier le quota d'un groupe,0
user_copy_command=Commande pour copier le quota d'un usager,0
group_copy_command=Commande pour copier le quota d'un groupe,0
user_quotaon_command=Commande pour activer les quotas au niveau usager,0
group_quotaon_command=Commande pour activer les quotas au niveau groupe,0
user_quotaoff_command=Commande pour arr阾er les quotas usager,0
group_quotaoff_command=Commande pour arr阾er les quotas groupe,0
quotacheck_command=Commande pour v閞ifier les quotas,0
user_grace_command=Commande pour 閐iter le temps de gr鈉e de l'usager,0
group_grace_command=Commande pour 閐iter le temps de gr鈉e du groupe,0
 070701000482a8000081a40000000000000002000000013ac03895000003ff000000200000000000000000000000000000001b00000003reloc/quota/config.info.pl    display_max=Maksymalna liczba wy秝ietlanych u縴tkownik體 lub grup,0
user_repquota_command=Polecenie wy秝ietlaj眂e u縴tkownik體 w&nbsp;systemie plik體,0
group_repquota_command=Polecenie wy秝ietlaj眂e grupy w&nbsp;systemie plik體,0
user_edquota_command=Polecenie do zmiany quota u縴tkownika,0
group_edquota_command=Polecenie do zmiany quota grupy,0
user_quota_command=Polecenie do sprawdzenia quota u縴tkownika,0
group_quota_command=Polecenie do sprawdzenia quota grupy,0
user_copy_command=Polecenie do skopiowania quota u縴tkownika,0
group_copy_command=Polecenie do skopiowania quota grupy,0
user_quotaon_command=Polecenie do w潮czenia quota u縴tkownik體,0
group_quotaon_command=Polecenie do w潮czenia quota grup,0
user_quotaoff_command=Polecenie do wy潮czenia quota u縴tkownik體,0
group_quotaoff_command=Polecenie do wy潮czenia quota grup,0
quotacheck_command=Polecenie do naliczenia quota,0
user_grace_command=Polecenie do zmiany czasu ulgi dla u縴tkownik體,0
group_grace_command=Polecenie do zmiany czasu ulgi dla grup,0
 070701000482a9000081a40000000000000002000000013ac0389500000439000000200000000000000000000000000000001e00000003reloc/quota/config.info.ru_RU user_quotaoff_command=暑爨礓 潆 恹觌屙 镱朦珙忄蝈朦耜桴 赈铗,0
user_quotaon_command=暑爨礓 潆 怅膻麇龛 镱朦珙忄蝈朦耜桴 赈铗,0
group_copy_command=暑爨礓 潆 觐镨痤忄龛 沭箫镱恹 赈铗,0
quotacheck_command=暑爨礓 潆 镳钼屦觇 赈铗,0
user_quota_command=暑爨礓 潆 镳钼屦觇 镱朦珙忄蝈朦耜桴 赈铗,0
group_grace_command=暑爨礓 潆 疱溧牝桊钼囗 沭箫镱忸泐 怵屐屙 漕矬耜,0
user_repquota_command=暑爨礓 潆 镱赅玎 耧桉赅 镱朦珙忄蝈脲 磬 羿殡钼铋 耔耱屐,0
group_quotaoff_command=暑爨礓 潆 恹觌屙 沭箫镱恹 赈铗,0
user_edquota_command=暑爨礓 潆 疱溧牝桊钼囗 镱朦珙忄蝈朦耜桴 赈铗,0
group_quotaon_command=暑爨礓 潆 怅膻麇龛 沭箫镱恹 赈铗,0
group_quota_command=暑爨礓 潆 镳钼屦觇 沭箫镱恹 赈铗,0
user_copy_command=暑爨礓 潆 觐镨痤忄龛 镱朦珙忄蝈朦耜桴 赈铗,0
group_repquota_command=暑爨礓 潆 镱赅玎 耧桉赅 沭箫 磬 羿殡钼铋 耔耱屐,0
display_max=锑犟桁嚯铄 镱赅琨忄屐铄 觐-忸 镱朦珙忄蝈脲  沭箫,0
group_edquota_command=暑爨礓 潆 疱溧牝桊钼囗 沭箫镱恹 赈铗,0
user_grace_command=暑爨礓 潆 疱溧牝桊钼囗 镱朦珙忄蝈朦耜钽 怵屐屙 漕矬耜,0
   070701000482aa000081a40000000000000002000000013ac0389500000439000000200000000000000000000000000000001e00000003reloc/quota/config.info.ru_SU display_max=砹擞赏撂匚吓 邢肆谫琢磐吓 讼-紫 邢特谙琢耘膛  且招,0
user_repquota_command=胂土文 奶 邢肆诹 有捎肆 邢特谙琢耘膛 瘟 屏侍献鲜 由釉磐,0
group_repquota_command=胂土文 奶 邢肆诹 有捎肆 且招 瘟 屏侍献鲜 由釉磐,0
user_edquota_command=胂土文 奶 遗牧嗽梢献廖裳 邢特谙琢耘特铀扇 俗显,0
group_edquota_command=胂土文 奶 遗牧嗽梢献廖裳 且招邢踪 俗显,0
user_quota_command=胂土文 奶 幸献乓松 邢特谙琢耘特铀扇 俗显,0
group_quota_command=胂土文 奶 幸献乓松 且招邢踪 俗显,0
user_copy_command=胂土文 奶 讼猩蚁琢紊 邢特谙琢耘特铀扇 俗显,0
group_copy_command=胂土文 奶 讼猩蚁琢紊 且招邢踪 俗显,0
user_quotaon_command=胂土文 奶 姿汤夼紊 邢特谙琢耘特铀扇 俗显,0
group_quotaon_command=胂土文 奶 姿汤夼紊 且招邢踪 俗显,0
user_quotaoff_command=胂土文 奶 踪颂擂盼裳 邢特谙琢耘特铀扇 俗显,0
group_quotaoff_command=胂土文 奶 踪颂擂盼裳 且招邢踪 俗显,0
quotacheck_command=胂土文 奶 幸献乓松 俗显,0
user_grace_command=胂土文 奶 遗牧嗽梢献廖裳 邢特谙琢耘特铀锨 滓磐盼 南姓铀,0
group_grace_command=胂土文 奶 遗牧嗽梢献廖裳 且招邢紫窍 滓磐盼 南姓铀,0
   070701000482ab000081a40000000000000002000000013ac038950000044e000000200000000000000000000000000000001b00000003reloc/quota/config.info.sv    display_max=Maximalt antal anv鋘dare och grupper som ska visas,0
user_repquota_command=Kommando f鰎 att visa anv鋘dare p ett filsystem,0
group_repquota_command=Kommando f鰎 att visa grupper p filsystem,0
user_edquota_command=Kommando f鰎 att 鋘dra en anv鋘dares quota,0
group_edquota_command=Kommando f鰎 att 鋘dra en grupps quota,0
user_quota_command=Kommando f鰎 att kontrollera en anv鋘dares quota,0
group_quota_command=Kommando f鰎 att kontrollera en grupps quota,0
user_copy_command=Kommando f鰎 att kopiera en anv鋘dares quota,0
group_copy_command=Kommando f鰎 att kopiera en grupps quota,0
user_quotaon_command=Kommando f鰎 att sl p anv鋘dares quota,0
group_quotaon_command=Kommando f鰎 att sl p gruppers quota,0
user_quotaoff_command=Kommando f鰎 att sl av anv鋘dares quota,0
group_quotaoff_command=Kommando f鰎 att sl av gruppers quota,0
quotacheck_command=Kommando f鰎 att kontrollera quota,0
user_grace_command=Kommando f鰎 att 鋘dra en anv鋘dares tidsintervall f鰎 att 鰒erskrida quota,0
group_grace_command=Kommando f鰎 att 鋘dra en grupps tidsintervall f鰎 att 鰒erskrida quota,0
  070701000482ac000081a40000000000000002000000013ac03895000003f8000000200000000000000000000000000000001b00000003reloc/quota/config.info.tr    display_max=G鰎黱t黮enecek en 鏾k kullan齝 ve grup sy齭,0
user_repquota_command=Bir dosya sistemindeki kullan齝齦ar listeleme komutu,0
group_repquota_command=Bir dosya sistemindeki gruplar listeleme komutu,0
user_edquota_command=Bir kullan齝齨齨 kotas齨 de餴⺶irme komutu,0
group_edquota_command=Bir grubun kotas齨 de餴⺶irme komutu,0
user_quota_command=Bir kullan齝齨齨 kotas齨 kontrol komutu,0
group_quota_command=Bir grubun kotas齨 kontrol komutu,0
user_copy_command=Bir kullan齝齨齨 kotas齨 kopyalama komutu,0
group_copy_command=Bir grubun kotas齨 kopyalama komutu,0
user_quotaon_command=Kullan齝 kotalar齨 aktif hale getirme komutu,0
group_quotaon_command=Grup kotalar齨 aktif hale getirme komutu,0
user_quotaoff_command=Kullan齝 kotalar齨 inaktif etme komutu,0
group_quotaoff_command=Grup kotalar齨 inaktif etme komutu,0
quotacheck_command=Kota kontrol komutu,0
user_grace_command=Kullan齝 gecikme s黵elerini de餴⺶irme komutu,0
group_grace_command=Grup gecikme s黵elerini de餴⺶irme komutu,0
070701000482ad000081a40000000000000002000000013ac03895000002ee000000200000000000000000000000000000001e00000003reloc/quota/config.info.zh_CN display_max=最多显示的用户和组数量,0
user_repquota_command=在一个文件系统上列表显示用户的命令,0
group_repquota_command=在一个文件系统上列表显示组的命令,0
user_edquota_command=编辑用户磁盘配额的命令,0
group_edquota_command=编辑用户组磁盘配额的命令,0
user_quota_command=检查用户磁盘配额的命令,0
group_quota_command=检查用户组磁盘配额的命令,0
user_copy_command=拷贝用户磁盘配额的命令,0
group_copy_command=拷贝用户组磁盘配额的命令,0
user_quotaon_command=打开用户磁盘配额的命令,0
group_quotaon_command=打开用户组磁盘配额的命令,0
user_quotaoff_command=关闭用户盘配额的命令,0
group_quotaoff_command=关闭用户组磁盘配额的命令,0
quotacheck_command=检查磁盘配额的命令,0
user_grace_command=编辑用户使用时间的命令,0
group_grace_command=编辑用户组使用时间的命令,0
  070701000482ae000081a40000000000000002000000013ac03895000002b7000000200000000000000000000000000000002300000003reloc/quota/config.info.zh_TW.Big5    display_max=陪ボ程ㄏノ┪竤舱计ヘ,0
user_repquota_command=郎╰参ㄏノ,0
group_repquota_command=郎╰参竤舱,0
user_edquota_command=絪胯ㄏノ皌肂,0
group_edquota_command=絪胯竤舱皌肂,0
user_quota_command=浪琩ㄏノ皌肂,0
group_quota_command=浪琩竤舱皌肂,0
user_copy_command=īㄏノ皌肂,0
group_copy_command=ī竤舱皌肂,0
user_quotaon_command=币笆ㄏノ皌肂,0
group_quotaon_command币笆竤舱皌肂,0
user_quotaoff_command=闽超ㄏノ皌肂,0
group_quotaoff_command=闽超竤舱皌肂,0
quotacheck_command=浪琩皌肂,0
user_grace_command=絪胯ㄏノ糴丁,0
group_grace_command=絪胯竤舱糴丁,0
 070701000482af000081e40000000000000002000000013ac0389500000506000000200000000000000000000000000000001b00000003reloc/quota/copy_group.cgi    #!/usr/local/bin/perl
# copy_group.cgi
# Copy some group's quota to a number of others

require './quota-lib.pl';
&ReadParse();
$whatfailed = $text{'cgroup_efail'};
$access{'filesys'} eq "*" ||
	&error($text{'cgroup_ecannot'});
&can_edit_group($in{'group'}) ||
	&error($text{'cgroup_egallow'});

if ($in{'dest'} == 0) {
	# Copy to all groups
	setgrent();
	while(@ginfo = getgrent()) { push(@copyto, $ginfo[0]); }
	endgrent();
	}
elsif ($in{'dest'} == 1) {
	# Copy to selected groups
	@copyto = split(/\s+/, $in{'groups'});
	}
elsif ($in{'dest'} == 2) {
	# Copy to groups containing users
	foreach $u (split(/\s+/, $in{'users'})) {
		@uinfo = getpwnam($u);
		@ginfo = getgrgid($uinfo[3]);
		push(@copyto, $ginfo[0]);
		$user{$u}++;
		}
	setgrent();
	while(@ginfo = getgrent()) {
		foreach $m (split(/\s+/, $ginfo[3])) {
			if ($user{$m}) {
				push(@copyto, $ginfo[0]);
				last;
				}
			}
		}
	endgrent();
	}
@copyto = &unique(@copyto);
@copyto = grep { $_ ne $in{'group'} } @copyto;
if (!@copyto) { &error($text{'cgroup_enogroup'}); }
foreach $c (@copyto) {
	&can_edit_group($c) ||
		&error(&text('cgroup_eallowto', $c));
	}

# Do the copy
&copy_group_quota($in{'group'}, @copyto);
&webmin_log("copy", "group", $in{'group'}, \%in);
&redirect("group_filesys.cgi?group=$in{'group'}");

  070701000482b0000081e40000000000000002000000013ac038950000045f000000200000000000000000000000000000002000000003reloc/quota/copy_group_form.cgi   #!/usr/local/bin/perl
# copy_group_form.cgi
# Display a form for copying some group's quotas to others

require './quota-lib.pl';
&ReadParse();
$access{'filesys'} eq "*" ||
	&error($text{'cgform_ecannot'});
&can_edit_group($in{'group'}) ||
	&error($text{'cgform_egroup'});
&header($text{'cgform_title'}, "", "copy_group");
print "<hr>\n";

print "<form action=copy_group.cgi>\n";
print "<input type=hidden name=group value=\"$in{'group'}\">\n";
print "<b>",&text('cgform_copyto', $in{'group'}),"</b><p>\n";
print "<ul>\n";
print "<input type=radio name=dest value=0 checked> ",
      "<b>$text{'cgform_all'}</b><br>\n";
print "<input type=radio name=dest value=1> <b>$text{'cgform_select'}</b>\n";
print "<input name=groups size=30> ",&group_chooser_button("groups",1),"<br>\n";
print "<input type=radio name=dest value=2> ",
      "<b>$text{'cgform_contain'}</b>\n";
print "<input name=users size=30> ",&user_chooser_button("users",1),"<br>\n";
print "<input type=submit value=$text{'cgform_doit'}></form>\n";
print "</ul>\n";

print "<hr>\n";
&footer("group_filesys.cgi?group=$in{'group'}", $text{'cgform_return'});

 070701000482b1000081e40000000000000002000000013ac03895000004b5000000200000000000000000000000000000001a00000003reloc/quota/copy_user.cgi #!/usr/local/bin/perl
# copy_user.cgi
# Copy some user's quota to a number of others

require './quota-lib.pl';
&ReadParse();
$whatfailed = $text{'cuser_efail'};
$access{'filesys'} eq "*" ||
	&error($text{'cuser_ecannot'});
&can_edit_user($in{'user'}) ||
	&error($text{'cuser_euallow'});

if ($in{'dest'} == 0) {
	# Copy to all users
	setpwent();
	while(@uinfo = getpwent()) {
		push(@copyto, $uinfo[0]);
		}
	endpwent();
	}
elsif ($in{'dest'} == 1) {
	# Copy to selected users
	@copyto = split(/\s+/, $in{'users'});
	}
elsif ($in{'dest'} == 2) {
	# Copy to members of groups
	setpwent();
	while(@uinfo = getpwent()) { $ingroup{$uinfo[3]} .= "$uinfo[0] "; }
	endpwent();
	foreach $g (split(/\s+/, $in{'groups'})) {
		@ginfo = getgrnam($g);
		push(@copyto, split(/\s+/, $ingroup{$ginfo[2]}));
		push(@copyto, split(/\s+/, $ginfo[3]));
		}
	}
@copyto = &unique(@copyto);
@copyto = grep { $_ ne $in{'user'} } @copyto;
if (!@copyto) { &error($text{'cuser_enouser'}); }
foreach $c (@copyto) {
	&can_edit_user($c) ||
		&error(&text('cuser_eallowto', $c));
	}

# Do the copy
&copy_user_quota($in{'user'}, @copyto);
&webmin_log("copy", "user", $in{'user'}, \%in);
&redirect("user_filesys.cgi?user=$in{'user'}");

   070701000482b2000081e40000000000000002000000013ac0389500000453000000200000000000000000000000000000001f00000003reloc/quota/copy_user_form.cgi    #!/usr/local/bin/perl
# copy_user_form.cgi
# Display a form for copying some user's quotas to others

require './quota-lib.pl';
&ReadParse();
$access{'filesys'} eq "*" ||
	&error($text{'cuform_ecannot'});
&can_edit_user($in{'user'}) ||
	&error($text{'cuform_euallow'});
&header($text{'cuform_title'}, "", "copy_user");
print "<hr>\n";

print "<form action=copy_user.cgi>\n";
print "<input type=hidden name=user value=\"$in{'user'}\">\n";
print "<b>",&text('cuform_copyto', $in{'user'}),"</b><p>\n";
print "<ul>\n";
print "<input type=radio name=dest value=0 checked> ",
      "<b>$text{'cuform_all'}</b><br>\n";
print "<input type=radio name=dest value=1> <b>$text{'cuform_select'}</b>\n";
print "<input name=users size=30> ",&user_chooser_button("users",1),"<br>\n";
print "<input type=radio name=dest value=2> ",
      "<b>$text{'cuform_members'}</b>\n";
print "<input name=groups size=30> ",&group_chooser_button("groups",1),"<br>\n";
print "<input type=submit value=$text{'cuform_doit'}></form>\n";
print "</ul>\n";

print "<hr>\n";
&footer("user_filesys.cgi?user=$in{'user'}", $text{'cuform_return'});
 070701000482b3000081a40000000000000002000000013ac03895000024f5000000200000000000000000000000000000001f00000003reloc/quota/corel-linux-lib.pl    # linux-lib.pl
# Quota functions for all linux version

# quotas_init()
sub quotas_init
{
if (&has_command("quotaon") && &has_command("quotaoff")) {
	return undef;
	}
else {
	return "The quotas package does not appear to be installed on ".
	       "your system\n";
	}
}

# quotas_supported()
# Returns 1 for user quotas, 2 for group quotas or 3 for both
sub quotas_supported
{
return 3;
}

# free_space(filesystem)
# Returns an array containing  btotal, bfree, ftotal, ffree
sub free_space
{
local(@out, @rv);
$out = `df $_[0]`;
$out =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)/;
push(@rv, ($1, $2));
$out = `df -i $_[0]`;
$out =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)/;
push(@rv, ($1, $2));
return @rv;
}

# quota_can(&mnttab, &fstab)
# Can this filesystem type support quotas?
#  0 = No quota support (or not turned on in /etc/fstab)
#  1 = User quotas only
#  2 = Group quotas only
#  3 = User and group quotas
sub quota_can
{
return ($_[1]->[3] =~ /usrquota/ ? 1 : 0) +
       ($_[1]->[3] =~ /grpquota/ ? 2 : 0);
}

# quota_now(&mnttab, &fstab)
# Are quotas currently active?
#  0 = Not active
#  1 = User quotas active
#  2 = Group quotas active
#  3 = Both active
sub quota_now
{
local $rv = 0;
local $dir = $_[0]->[0];
if ($_[0]->[4]%2 == 1) {
	# test user quotas
	if (-r "$dir/quota.user") {
		$out = `$config{'user_quotaon_command'} $dir 2>&1`;
		if ($out =~ /Device or resource busy/i) {
			# already on..
			$rv += 1;
			}
		elsif ($out =~ /Package not installed/i) {
			# No quota support!
			return 0;
			}
		else {
			# was off.. need to turn on again
			`$config{'user_quotaoff_command'} $dir 2>&1`;
			}
		}
	}
if ($_[0]->[4] > 1) {
	# test group quotas
	if (-r "$dir/quota.group") {
		$out = `$config{'group_quotaon_command'} $dir 2>&1`;
		if ($out =~ /Device or resource busy/i) {
			# already on..
			$rv += 2;
			}
		elsif ($out =~ /Package not installed/i) {
			# No quota support!
			return 0;
			}
		else {
			# was off.. need to turn on again
			`$config{'group_quotaoff_command'} $dir 2>&1`;
			}
		}
	}
return $rv;
}

# quotaon(filesystem, mode)
# Activate quotas and create quota files for some filesystem. The mode can
# be 1 for user only, 2 for group only or 3 for user and group
sub quotaon
{
local($out, $qf, @qfile, $flags);
if ($_[1]%2 == 1) {
	# turn on user quotas
	$qf = "$_[0]/quota.user";
	if (!(-r $qf)) {
		open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
		chmod(0600, $qf);
		&system_logged("$config{'quotacheck_command'} $_[0]");
		}
	$out = &backquote_logged("$config{'user_quotaon_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
if ($_[1] > 1) {
	# turn on group quotas
	$qf = "$_[0]/quota.group";
	if (!(-r $qf)) {
		open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
		chmod(0600, $qf);
		&system_logged("$config{'quotacheck_command'} $_[0]");
		}
	$out = &backquote_logged("$config{'group_quotaon_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# quotaoff(filesystem, mode)
# Turn off quotas for some filesystem
sub quotaoff
{
local($out);
if ($_[1]%2 == 1) {
	$out = &backquote_logged("$config{'user_quotaoff_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
if ($_[1] > 1) {
	$out = &backquote_logged("$config{'group_quotaoff_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# user_filesystems(user)
# Fills the array %filesys with details of all filesystem some user has
# quotas on
sub user_filesystems
{
return &parse_quota_output("$config{'user_quota_command'} $_[0]");
}

# user_filesystems(user)
# Fills the array %filesys with details of all filesystem some group has
# quotas on
sub group_filesystems
{
return &parse_quota_output("$config{'group_quota_command'} $_[0]");
}

sub parse_quota_output
{
local($n, $_, %mtab);
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	@m = split(/\s+/);
	$mtab{$m[0]} = $m[1];
	}
close(MTAB);
open(QUOTA, "$_[0] |");
$n=0; while(<QUOTA>) {
	chop;
	if (/^(Disk|\s+Filesystem)/) { next; }
	if (/^(\S+)$/) {
		# Bogus wrapped line
		$filesys{$n,'filesys'} = $mtab{$1};
		<QUOTA>=~/^.{15}.(.{7}).(.{7}).(.{7}).{8}.(.{7}).(.{7}).(.{7})/;
		$filesys{$n,'ublocks'} = int($1);
		$filesys{$n,'sblocks'} = int($2);
		$filesys{$n,'hblocks'} = int($3);
		$filesys{$n,'ufiles'} = int($4);
		$filesys{$n,'sfiles'} = int($5);
		$filesys{$n,'hfiles'} = int($6);
		$n++;
		}
	elsif (/^(.{15}).(.{7}).(.{7}).(.{7}).{8}.(.{7}).(.{7}).(.{7})/) {
		$filesys{$n,'ublocks'} = int($2);
		$filesys{$n,'sblocks'} = int($3);
		$filesys{$n,'hblocks'} = int($4);
		$filesys{$n,'ufiles'} = int($5);
		$filesys{$n,'sfiles'} = int($6);
		$filesys{$n,'hfiles'} = int($7);
		$dev = $1; $dev =~ s/\s+$//g; $dev =~ s/^\s+//g;
		$filesys{$n,'filesys'} = $mtab{$dev};
		$n++;
		}
	}
close(QUOTA);
return $n;
}

# filesystem_users(filesystem)
# Fills the array %user with information about all users with quotas
# on this filesystem. This may not be all users on the system..
sub filesystem_users
{
return &parse_repquota_output(
	"$config{'user_repquota_command'} $_[0]", "user");
}

sub filesystem_groups
{
return &parse_repquota_output(
	"$config{'group_repquota_command'} $_[0]", "group");
}

sub parse_repquota_output
{
local($rep, @rep, $n, $what, $u, @uinfo);
$what = $_[1];
$rep = `$_[0] 2>&1`;
if ($?) { return -1; }
if ($what eq 'user') {
	setpwent();
	while(@uinfo = getpwent()) {
		$hasu{$uinfo[0]}++;
		}
	endpwent();
	}
else {
	setgrent();
	while(@uinfo = getgrent()) {
		$hasu{$uinfo[0]}++;
		}
	endgrent();
	}
@rep = split(/\n/, $rep); @rep = @rep[3..$#rep];
for($n=0; $n<@rep; $n++) {
	if ($rep[$n] =~ /(\S+)\s*[\-\+]{2}(.{8})(.{8})(.{8}).{7}(.{8})(.{6})(.{6})/) {
		$$what{$n,$what} = $1;
		$$what{$n,'ublocks'} = int($2);
		$$what{$n,'sblocks'} = int($3);
		$$what{$n,'hblocks'} = int($4);
		$$what{$n,'ufiles'} = int($5);
		$$what{$n,'sfiles'} = int($6);
		$$what{$n,'hfiles'} = int($7);
		if ($$what{$n,$what} !~ /^\d+$/ && !$hasu{$$what{$n,$what}}) {
			# User/group name was truncated! Try to find him..
			foreach $u (keys %hasu) {
				if (substr($u, 0, length($$what{$n,$what})) eq
				    $$what{$n,$what}) {
					# found him..
					$$what{$n,$what} = $u;
					last;
					}
				}
			}
		}
	}
return $n;
}

# edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles)
sub edit_quota_file
{
local($rv, $line, %mtab, @m);
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	@m = split(/\s+/);
	$mtab{$m[0]} = $m[1];
	}
close(MTAB);
@line = split(/\n/, $_[0]);
for($i=0; $i<@line; $i++) {
	if ($line[$i] =~ /^(\S+): blocks in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/ && $mtab{$1} eq $_[1]) {
		# found lines to change
		$rv .= "$1: blocks in use: $2, limits (soft = $_[2], hard = $_[3])\n";
		$line[++$i] =~ /^\s*inodes in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/;
		$rv .= "\tinodes in use: $1, limits (soft = $_[4], hard = $_[5])\n";
		}
	else { $rv .= "$line[$i]\n"; }
	}
return $rv;
}

# quotacheck(filesystem, mode)
# Runs quotacheck on some filesystem
sub quotacheck
{
$out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1");
if ($?) { return $out; }
return undef;
}

# copy_user_quota(user, [user]+)
# Copy the quotas for some user to many others
sub copy_user_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'user_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# copy_group_quota(group, [group]+)
# Copy the quotas for some group to many others
sub copy_group_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'group_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# get_user_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day
sub get_user_grace
{
return &parse_grace_output($config{'user_grace_command'}, $_[0]);
}

# get_group_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day
sub get_group_grace
{
return &parse_grace_output($config{'group_grace_command'}, $_[0]);
}

# default_grace()
# Returns 0 if grace time can be 0, 1 if zero grace means default
sub default_grace
{
return 0;
}

sub parse_grace_output
{
local(@rv, %mtab, @m);
open(MTAB, "/etc/mtab");
while(<MTAB>) { @m = split(/\s+/); $mtab{$m[0]} = $m[1]; }
close(MTAB);
$ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat";
open(GRACE, "$_[0] |");
while(<GRACE>) {
	if (/^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $mtab{$1} eq $_[1]) {
		@rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5});
		}
	}
close(GRACE);
return @rv;
}

# edit_grace_file(data, filesystem, btime, bunits, ftime, funits)
sub edit_grace_file
{
local($rv, $line, @m, %mtab);
open(MTAB, "/etc/mtab");
while(<MTAB>) { @m = split(/\s+/); $mtab{$m[0]} = $m[1]; }
close(MTAB);
foreach $line (split(/\n/, $_[0])) {
	if ($line =~ /^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $mtab{$1} eq $_[1]) {
		# replace this line
		$line = "$1: block grace period: $_[2] $unit_to_name{$_[3]}, file grace period: $_[4] $unit_to_name{$_[5]}";
		}
	$rv .= "$line\n";
	}
return $rv;
}

# grace_units()
# Returns an array of possible units for grace periods
sub grace_units
{
return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'},
	$text{'grace_days'});
}

%name_to_unit = ( "second", 0, "seconds", 0,
		  "minute", 1, "minutes", 1,
		  "hour", 2, "hours", 2,
		  "day", 3, "days", 3,
		);
foreach $k (keys %name_to_unit) {
	$unit_to_name{$name_to_unit{$k}} = $k;
	}

1;

   070701000482b4000081a40000000000000002000000013ac03895000024f5000000200000000000000000000000000000002000000003reloc/quota/debian-linux-lib.pl   # linux-lib.pl
# Quota functions for all linux version

# quotas_init()
sub quotas_init
{
if (&has_command("quotaon") && &has_command("quotaoff")) {
	return undef;
	}
else {
	return "The quotas package does not appear to be installed on ".
	       "your system\n";
	}
}

# quotas_supported()
# Returns 1 for user quotas, 2 for group quotas or 3 for both
sub quotas_supported
{
return 3;
}

# free_space(filesystem)
# Returns an array containing  btotal, bfree, ftotal, ffree
sub free_space
{
local(@out, @rv);
$out = `df $_[0]`;
$out =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)/;
push(@rv, ($1, $2));
$out = `df -i $_[0]`;
$out =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)/;
push(@rv, ($1, $2));
return @rv;
}

# quota_can(&mnttab, &fstab)
# Can this filesystem type support quotas?
#  0 = No quota support (or not turned on in /etc/fstab)
#  1 = User quotas only
#  2 = Group quotas only
#  3 = User and group quotas
sub quota_can
{
return ($_[1]->[3] =~ /usrquota/ ? 1 : 0) +
       ($_[1]->[3] =~ /grpquota/ ? 2 : 0);
}

# quota_now(&mnttab, &fstab)
# Are quotas currently active?
#  0 = Not active
#  1 = User quotas active
#  2 = Group quotas active
#  3 = Both active
sub quota_now
{
local $rv = 0;
local $dir = $_[0]->[0];
if ($_[0]->[4]%2 == 1) {
	# test user quotas
	if (-r "$dir/quota.user") {
		$out = `$config{'user_quotaon_command'} $dir 2>&1`;
		if ($out =~ /Device or resource busy/i) {
			# already on..
			$rv += 1;
			}
		elsif ($out =~ /Package not installed/i) {
			# No quota support!
			return 0;
			}
		else {
			# was off.. need to turn on again
			`$config{'user_quotaoff_command'} $dir 2>&1`;
			}
		}
	}
if ($_[0]->[4] > 1) {
	# test group quotas
	if (-r "$dir/quota.group") {
		$out = `$config{'group_quotaon_command'} $dir 2>&1`;
		if ($out =~ /Device or resource busy/i) {
			# already on..
			$rv += 2;
			}
		elsif ($out =~ /Package not installed/i) {
			# No quota support!
			return 0;
			}
		else {
			# was off.. need to turn on again
			`$config{'group_quotaoff_command'} $dir 2>&1`;
			}
		}
	}
return $rv;
}

# quotaon(filesystem, mode)
# Activate quotas and create quota files for some filesystem. The mode can
# be 1 for user only, 2 for group only or 3 for user and group
sub quotaon
{
local($out, $qf, @qfile, $flags);
if ($_[1]%2 == 1) {
	# turn on user quotas
	$qf = "$_[0]/quota.user";
	if (!(-r $qf)) {
		open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
		chmod(0600, $qf);
		&system_logged("$config{'quotacheck_command'} $_[0]");
		}
	$out = &backquote_logged("$config{'user_quotaon_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
if ($_[1] > 1) {
	# turn on group quotas
	$qf = "$_[0]/quota.group";
	if (!(-r $qf)) {
		open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
		chmod(0600, $qf);
		&system_logged("$config{'quotacheck_command'} $_[0]");
		}
	$out = &backquote_logged("$config{'group_quotaon_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# quotaoff(filesystem, mode)
# Turn off quotas for some filesystem
sub quotaoff
{
local($out);
if ($_[1]%2 == 1) {
	$out = &backquote_logged("$config{'user_quotaoff_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
if ($_[1] > 1) {
	$out = &backquote_logged("$config{'group_quotaoff_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# user_filesystems(user)
# Fills the array %filesys with details of all filesystem some user has
# quotas on
sub user_filesystems
{
return &parse_quota_output("$config{'user_quota_command'} $_[0]");
}

# user_filesystems(user)
# Fills the array %filesys with details of all filesystem some group has
# quotas on
sub group_filesystems
{
return &parse_quota_output("$config{'group_quota_command'} $_[0]");
}

sub parse_quota_output
{
local($n, $_, %mtab);
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	@m = split(/\s+/);
	$mtab{$m[0]} = $m[1];
	}
close(MTAB);
open(QUOTA, "$_[0] |");
$n=0; while(<QUOTA>) {
	chop;
	if (/^(Disk|\s+Filesystem)/) { next; }
	if (/^(\S+)$/) {
		# Bogus wrapped line
		$filesys{$n,'filesys'} = $mtab{$1};
		<QUOTA>=~/^.{15}.(.{7}).(.{7}).(.{7}).{8}.(.{7}).(.{7}).(.{7})/;
		$filesys{$n,'ublocks'} = int($1);
		$filesys{$n,'sblocks'} = int($2);
		$filesys{$n,'hblocks'} = int($3);
		$filesys{$n,'ufiles'} = int($4);
		$filesys{$n,'sfiles'} = int($5);
		$filesys{$n,'hfiles'} = int($6);
		$n++;
		}
	elsif (/^(.{15}).(.{7}).(.{7}).(.{7}).{8}.(.{7}).(.{7}).(.{7})/) {
		$filesys{$n,'ublocks'} = int($2);
		$filesys{$n,'sblocks'} = int($3);
		$filesys{$n,'hblocks'} = int($4);
		$filesys{$n,'ufiles'} = int($5);
		$filesys{$n,'sfiles'} = int($6);
		$filesys{$n,'hfiles'} = int($7);
		$dev = $1; $dev =~ s/\s+$//g; $dev =~ s/^\s+//g;
		$filesys{$n,'filesys'} = $mtab{$dev};
		$n++;
		}
	}
close(QUOTA);
return $n;
}

# filesystem_users(filesystem)
# Fills the array %user with information about all users with quotas
# on this filesystem. This may not be all users on the system..
sub filesystem_users
{
return &parse_repquota_output(
	"$config{'user_repquota_command'} $_[0]", "user");
}

sub filesystem_groups
{
return &parse_repquota_output(
	"$config{'group_repquota_command'} $_[0]", "group");
}

sub parse_repquota_output
{
local($rep, @rep, $n, $what, $u, @uinfo);
$what = $_[1];
$rep = `$_[0] 2>&1`;
if ($?) { return -1; }
if ($what eq 'user') {
	setpwent();
	while(@uinfo = getpwent()) {
		$hasu{$uinfo[0]}++;
		}
	endpwent();
	}
else {
	setgrent();
	while(@uinfo = getgrent()) {
		$hasu{$uinfo[0]}++;
		}
	endgrent();
	}
@rep = split(/\n/, $rep); @rep = @rep[3..$#rep];
for($n=0; $n<@rep; $n++) {
	if ($rep[$n] =~ /(\S+)\s*[\-\+]{2}(.{8})(.{8})(.{8}).{7}(.{8})(.{6})(.{6})/) {
		$$what{$n,$what} = $1;
		$$what{$n,'ublocks'} = int($2);
		$$what{$n,'sblocks'} = int($3);
		$$what{$n,'hblocks'} = int($4);
		$$what{$n,'ufiles'} = int($5);
		$$what{$n,'sfiles'} = int($6);
		$$what{$n,'hfiles'} = int($7);
		if ($$what{$n,$what} !~ /^\d+$/ && !$hasu{$$what{$n,$what}}) {
			# User/group name was truncated! Try to find him..
			foreach $u (keys %hasu) {
				if (substr($u, 0, length($$what{$n,$what})) eq
				    $$what{$n,$what}) {
					# found him..
					$$what{$n,$what} = $u;
					last;
					}
				}
			}
		}
	}
return $n;
}

# edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles)
sub edit_quota_file
{
local($rv, $line, %mtab, @m);
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	@m = split(/\s+/);
	$mtab{$m[0]} = $m[1];
	}
close(MTAB);
@line = split(/\n/, $_[0]);
for($i=0; $i<@line; $i++) {
	if ($line[$i] =~ /^(\S+): blocks in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/ && $mtab{$1} eq $_[1]) {
		# found lines to change
		$rv .= "$1: blocks in use: $2, limits (soft = $_[2], hard = $_[3])\n";
		$line[++$i] =~ /^\s*inodes in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/;
		$rv .= "\tinodes in use: $1, limits (soft = $_[4], hard = $_[5])\n";
		}
	else { $rv .= "$line[$i]\n"; }
	}
return $rv;
}

# quotacheck(filesystem, mode)
# Runs quotacheck on some filesystem
sub quotacheck
{
$out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1");
if ($?) { return $out; }
return undef;
}

# copy_user_quota(user, [user]+)
# Copy the quotas for some user to many others
sub copy_user_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'user_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# copy_group_quota(group, [group]+)
# Copy the quotas for some group to many others
sub copy_group_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'group_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# get_user_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day
sub get_user_grace
{
return &parse_grace_output($config{'user_grace_command'}, $_[0]);
}

# get_group_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day
sub get_group_grace
{
return &parse_grace_output($config{'group_grace_command'}, $_[0]);
}

# default_grace()
# Returns 0 if grace time can be 0, 1 if zero grace means default
sub default_grace
{
return 0;
}

sub parse_grace_output
{
local(@rv, %mtab, @m);
open(MTAB, "/etc/mtab");
while(<MTAB>) { @m = split(/\s+/); $mtab{$m[0]} = $m[1]; }
close(MTAB);
$ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat";
open(GRACE, "$_[0] |");
while(<GRACE>) {
	if (/^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $mtab{$1} eq $_[1]) {
		@rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5});
		}
	}
close(GRACE);
return @rv;
}

# edit_grace_file(data, filesystem, btime, bunits, ftime, funits)
sub edit_grace_file
{
local($rv, $line, @m, %mtab);
open(MTAB, "/etc/mtab");
while(<MTAB>) { @m = split(/\s+/); $mtab{$m[0]} = $m[1]; }
close(MTAB);
foreach $line (split(/\n/, $_[0])) {
	if ($line =~ /^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $mtab{$1} eq $_[1]) {
		# replace this line
		$line = "$1: block grace period: $_[2] $unit_to_name{$_[3]}, file grace period: $_[4] $unit_to_name{$_[5]}";
		}
	$rv .= "$line\n";
	}
return $rv;
}

# grace_units()
# Returns an array of possible units for grace periods
sub grace_units
{
return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'},
	$text{'grace_days'});
}

%name_to_unit = ( "second", 0, "seconds", 0,
		  "minute", 1, "minutes", 1,
		  "hour", 2, "hours", 2,
		  "day", 3, "days", 3,
		);
foreach $k (keys %name_to_unit) {
	$unit_to_name{$name_to_unit{$k}} = $k;
	}

1;

   070701000482b6000081e40000000000000002000000013ac03895000001c6000000200000000000000000000000000000001700000003reloc/quota/edgrace.pl    #!/usr/local/bin/perl
# edgrace.pl
# Run by edquota to edit the grace times for some filesystem

require './quota-lib.pl';
$fs = $ENV{'QUOTA_FILESYS'};
$bt = $ENV{'QUOTA_BTIME'};
$bu = $ENV{'QUOTA_BUNITS'};
$ft = $ENV{'QUOTA_FTIME'};
$fu = $ENV{'QUOTA_FUNITS'};
$f = $ARGV[0];

open(FILE, $f);
while(<FILE>) { $qdata .= $_; }
close(FILE);
$nqdata = &edit_grace_file($qdata, $fs, $bt, $bu, $ft, $fu);
open(FILE, "> $f");
print FILE $nqdata;
close(FILE);

  070701000482b7000081e40000000000000002000000013ac03895000008fd000000200000000000000000000000000000002100000003reloc/quota/edit_group_quota.cgi  #!/usr/local/bin/perl
# edit_group_quota.cgi
# Display a form for editing the quotas for a group on some filesystem

require './quota-lib.pl';
&ReadParse();
$u = $in{'group'}; $fs = $in{'filesys'};
&can_edit_group($u) ||
	&error(&text('egroup_eallowgr', $u));
&can_edit_filesys($fs) ||
	&error($text{'egroup_eallowfs'});
&header($text{'egroup_title'}, "", "edit_group_quota");
print "<hr>\n";

@quot = &group_quota($u, $fs);
$first = (@quot == 0);
print "<table border width=100%>\n";
print "<form action=save_group_quota.cgi>\n";
print "<input type=hidden name=group value=\"$u\">\n";
print "<input type=hidden name=filesys value=\"$fs\">\n";
print "<input type=hidden name=source value=$in{'source'}>\n";
print "<tr $tb> <td colspan=2><b>",&text('egroup_quotas', $u, $fs),"</b></td> </tr>\n";
print "<tr $cb> <td width=50%><table width=100%>\n";

if (!$first) {
	print "<tr> <td><b>$text{'egroup_bused'}</b></td> <td>$quot[0]</td> </tr>\n",
	}
print "<tr> <td><b>$text{'egroup_sblimit'}</b></td> <td>\n";
&quota_input("sblocks", $quot[1]);
print "<tr> <td><b>$text{'egroup_hblimit'}</b></td> <td>\n";
&quota_input("hblocks", $quot[2]);
if ($access{'diskspace'}) {
	($binfo, $finfo) = &filesystem_info($fs);
	print "<tr> <td><b>$text{'euser_bdisk'}</b></td>\n";
	print "<td>$binfo</td> </tr>\n";
	}

print "</table></td><td width=50%><table width=100%>\n";
if (!$first) {
	print "<tr> <td><b>$text{'egroup_fused'}</b></td> <td>$quot[3]</td> </tr>\n",
	}
print "<tr> <td><b>$text{'egroup_sflimit'}</b></td> <td>\n";
&quota_input("sfiles", $quot[4]);
print "<tr> <td><b>$text{'egroup_hflimit'}</b></td> <td>\n";
&quota_input("hfiles", $quot[5]);
if ($access{'diskspace'}) {
	print "<tr> <td><b>$text{'euser_fdisk'}</b></td>\n";
	print "<td>$finfo</td> </tr>\n";
	}

print "</table></td></tr></table>\n";

print "<table width=100%><tr>\n";
print "<td><input type=submit value=$text{'egroup_update'}></td>\n";
print "</form><form action=group_filesys.cgi>\n";
print "<input type=hidden name=group value=\"$u\">\n";
print "<td align=right><input type=submit value=\"$text{'egroup_listall'}\"></td>\n";
print "</form></tr></table>\n";

print "<hr>\n";
if ($in{'source'}) { &footer("group_filesys.cgi?group=$u", $text{'egroup_freturn'}); }
else { &footer("list_groups.cgi?$fs", $text{'egroup_greturn'}); }

   070701000482b8000081e40000000000000002000000013ac03895000008e2000000200000000000000000000000000000002000000003reloc/quota/edit_user_quota.cgi   #!/usr/local/bin/perl
# edit_user_quota.cgi
# Display a form for editing the quotas for a user on some filesystem

require './quota-lib.pl';
&ReadParse();
$u = $in{'user'}; $fs = $in{'filesys'};
&can_edit_user($u) ||
	&error(&text('euser_eallowus', $u));
&can_edit_filesys($fs) ||
	&error($text{'euser_eallowfs'});
&header($text{'euser_title'}, "", "edit_user_quota");
print "<hr>\n";

@quot = &user_quota($u, $fs);
$first = (@quot == 0);
print "<table border width=100%>\n";
print "<form action=save_user_quota.cgi>\n";
print "<input type=hidden name=user value=\"$u\">\n";
print "<input type=hidden name=filesys value=\"$fs\">\n";
print "<input type=hidden name=source value=$in{'source'}>\n";
print "<tr $tb> <td colspan=2><b>",&text('euser_quotas', $u, $fs),"</b></td> </tr>\n";
print "<tr $cb> <td width=50%><table width=100%>\n";

if (!$first) {
	print "<tr> <td><b>$text{'euser_bused'}</b></td> <td>$quot[0]</td> </tr>\n",
	}
print "<tr> <td><b>$text{'euser_sblimit'}</b></td> <td>\n";
&quota_input("sblocks", $quot[1]);
print "<tr> <td><b>$text{'euser_hblimit'}</b></td> <td>\n";
&quota_input("hblocks", $quot[2]);
if ($access{'diskspace'}) {
	($binfo, $finfo) = &filesystem_info($fs);
	print "<tr> <td><b>$text{'euser_bdisk'}</b></td>\n";
	print "<td>$binfo</td> </tr>\n";
	}

print "</table></td><td width=50%><table width=100%>\n";
if (!$first) {
	print "<tr> <td><b>$text{'euser_fused'}</b></td> <td>$quot[3]</td> </tr>\n",
	}
print "<tr> <td><b>$text{'euser_sflimit'}</b></td> <td>\n";
&quota_input("sfiles", $quot[4]);
print "<tr> <td><b>$text{'euser_hflimit'}</b></td> <td>\n";
&quota_input("hfiles", $quot[5]);
if ($access{'diskspace'}) {
	print "<tr> <td><b>$text{'euser_fdisk'}</b></td>\n";
	print "<td>$finfo</td> </tr>\n";
	}

print "</table></td></tr></table>\n";

print "<table width=100%><tr>\n";
print "<td><input type=submit value=$text{'euser_update'}></td>\n";
print "</form><form action=user_filesys.cgi>\n";
print "<input type=hidden name=user value=\"$u\">\n";
print "<td align=right><input type=submit value=\"$text{'euser_listall'}\"></td>\n";
print "</form></tr></table>\n";

print "<hr>\n";
if ($in{'source'}) { &footer("user_filesys.cgi?user=$u", $text{'euser_freturn'}); }
else { &footer("list_users.cgi?$fs", $text{'euser_ureturn'}); }

  070701000482b9000081e40000000000000002000000013ac03895000001e2000000200000000000000000000000000000001700000003reloc/quota/edquota.pl    #!/usr/local/bin/perl
# edquota.pl
# Run by edquota to edit some user's quota

$no_acl_check++;
require './quota-lib.pl';
$u = $ENV{'QUOTA_USER'};
$fs = $ENV{'QUOTA_FILESYS'};
$sb = $ENV{'QUOTA_SBLOCKS'};
$hb = $ENV{'QUOTA_HBLOCKS'};
$sf = $ENV{'QUOTA_SFILES'};
$hf = $ENV{'QUOTA_HFILES'};
$f = $ARGV[0];

open(FILE, $f);
while(<FILE>) { $qdata .= $_; }
close(FILE);
$nqdata = &edit_quota_file($qdata, $fs, $sb, $hb, $sf, $hf);
open(FILE, "> $f");
print FILE $nqdata;
close(FILE);

  070701000482ba000081a40000000000000002000000013ac0389500002361000000200000000000000000000000000000001b00000003reloc/quota/freebsd-lib.pl    # openbsd-lib.pl
# Quota functions for openbsd

# quotas_init()
sub quotas_init
{
return undef;
}

# quotas_supported()
# Returns 1 for user quotas, 2 for group quotas or 3 for both
sub quotas_supported
{
return 3;
}

# free_space(filesystem)
# Returns an array containing  btotal, bfree, ftotal, ffree
sub free_space
{
local(@out, @rv);
`df -i $_[0]` =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)\s+\S+\s+(\d+)\s+(\d+)/;
return ($1, $2, $3+$4, $4);
}

# quota_can(&mnttab, &fstab)
# Can this filesystem type support quotas?
#  0 = No quota support (or not turned on in /etc/fstab)
#  1 = User quotas only
#  2 = Group quotas only
#  3 = User and group quotas
sub quota_can
{
return ($_[1]->[3] =~ /userquota/ ? 1 : 0) +
       ($_[1]->[3] =~ /groupquota/ ? 2 : 0);
}

# quota_now(&mnttab, &fstab)
# Are quotas currently active?
#  0 = Not active
#  1 = User quotas active
#  2 = Group quotas active
#  3 = Both active
sub quota_now
{
return $_[0]->[3] =~ /quota/ ? 3 : 0;
}

# quotaon(filesystem, mode)
# Activate quotas and create quota files for some filesystem. The mode can
# be 1 for user only, 2 for group only or 3 for user and group
sub quotaon
{
local($out, $qf, @qfile, $flags);
if ($_[1]%2 == 1) {
	# turn on user quotas
	$qf = "$_[0]/quota.user";
	if (!(-r $qf)) {
		open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
		chmod(0600, $qf);
		&system_logged("$config{'quotacheck_command'} $_[0]");
		}
	$out = &backquote_logged("$config{'user_quotaon_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
if ($_[1] > 1) {
	# turn on group quotas
	$qf = "$_[0]/quota.group";
	if (!(-r $qf)) {
		open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
		chmod(0600, $qf);
		&system_logged("$config{'quotacheck_command'} $_[0]");
		}
	$out = &backquote_logged("$config{'group_quotaon_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# quotaoff(filesystem, mode)
# Turn off quotas for some filesystem
sub quotaoff
{
local($out);
if ($_[1]%2 == 1) {
	$out = &backquote_logged("$config{'user_quotaoff_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
if ($_[1] > 1) {
	$out = &backquote_logged("$config{'group_quotaoff_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# user_filesystems(user)
# Fills the array %filesys with details of all filesystem some user has
# quotas on
sub user_filesystems
{
local($n, $_, %mtab);
open(QUOTA, "$config{'user_quota_command'} $_[0] |");
$n=0; while(<QUOTA>) {
	chop;
	if (/^(Disk|\s+Filesystem)/) { next; }
	if (/^(\S+)$/) {
		# Bogus wrapped line
		$filesys{$n,'filesys'} = $1;
		<QUOTA>=~/^.{15}(.{8}).(.{7})(.{8}).{8}(.{8}).(.{7})(.{8})/;
		$filesys{$n,'ublocks'} = int($1);
		$filesys{$n,'sblocks'} = int($2);
		$filesys{$n,'hblocks'} = int($3);
		$filesys{$n,'ufiles'} = int($4);
		$filesys{$n,'sfiles'} = int($5);
		$filesys{$n,'hfiles'} = int($6);
		$n++;
		}
	elsif (/^(.{15})(.{8}).(.{7})(.{8}).{8}(.{8}).(.{7})(.{8})/) {
		$filesys{$n,'ublocks'} = int($2);
		$filesys{$n,'sblocks'} = int($3);
		$filesys{$n,'hblocks'} = int($4);
		$filesys{$n,'ufiles'} = int($5);
		$filesys{$n,'sfiles'} = int($6);
		$filesys{$n,'hfiles'} = int($7);
		$filesys{$n,'filesys'} = $1;
		$filesys{$n,'filesys'} =~ s/^\s+//g;
		$n++;
		}
	}
close(QUOTA);
return $n;
}

# group_filesystems(group)
# Fills the array %filesys with details of all filesystem some group has
# quotas on
sub group_filesystems
{
local($n, $_, %mtab);
open(QUOTA, "$config{'group_quota_command'} $_[0] |");
$n=0; while(<QUOTA>) {
	chop;
	if (/^(Disk|\s+Filesystem)/) { next; }
	if (/^(\S+)$/) {
		# Bogus wrapped line
		$filesys{$n,'filesys'} = $1;
		<QUOTA>=~/^.{15}(.{8}).(.{7})(.{8}).{8}(.{8}).(.{7})(.{8})/;
		$filesys{$n,'ublocks'} = int($1);
		$filesys{$n,'sblocks'} = int($2);
		$filesys{$n,'hblocks'} = int($3);
		$filesys{$n,'ufiles'} = int($4);
		$filesys{$n,'sfiles'} = int($5);
		$filesys{$n,'hfiles'} = int($6);
		$n++;
		}
	elsif (/^(.{15})(.{8}).(.{7})(.{8}).{8}(.{8}).(.{7})(.{8})/) {
		$filesys{$n,'ublocks'} = int($2);
		$filesys{$n,'sblocks'} = int($3);
		$filesys{$n,'hblocks'} = int($4);
		$filesys{$n,'ufiles'} = int($5);
		$filesys{$n,'sfiles'} = int($6);
		$filesys{$n,'hfiles'} = int($7);
		$filesys{$n,'filesys'} = $1;
		$filesys{$n,'filesys'} =~ s/^\s+//g;
		$n++;
		}
	}
close(QUOTA);
return $n;
}

# filesystem_users(filesystem)
# Fills the array %user with information about all users with quotas
# on this filesystem. This may not be all users on the system..
sub filesystem_users
{
local($rep, @rep, $n, $what);
$rep = `$config{'user_repquota_command'} $_[0] 2>&1`;
if ($?) { return -1; }
@rep = split(/\n/, $rep);
@rep = grep { !/^root\s/ } @rep[3..$#rep];
for($n=0; $n<@rep; $n++) {
	if ($rep[$n] =~ /(\S+)\s+[\-\+]{2}\s+(\d+)\s+(\d+)\s+(\d+)\s.{0,15}\s(\d+)\s+(\d+)\s+(\d+)/ || $rep[$n] =~ /(\S+)\s+..(.{8})(.{8})(.{8}).{7}(.{8})(.{8})(.{8})/) {
		$user{$n,'user'} = $1;
		$user{$n,'ublocks'} = int($2);
		$user{$n,'sblocks'} = int($3);
		$user{$n,'hblocks'} = int($4);
		$user{$n,'ufiles'} = int($5);
		$user{$n,'sfiles'} = int($6);
		$user{$n,'hfiles'} = int($7);
		}
	}
return $n;
}

# filesystem_groups(filesystem)
# Fills the array %group with information about all groups with quotas
# on this filesystem. This may not be all groups on the system..
sub filesystem_groups
{
local($rep, @rep, $n, $what);
$rep = `$config{'group_repquota_command'} $_[0] 2>&1`;
if ($?) { return -1; }
@rep = split(/\n/, $rep);
@rep = @rep[3..$#rep];
for($n=0; $n<@rep; $n++) {
	if ($rep[$n] =~ /(\S+)\s+[\-\+]{2}\s+(\d+)\s+(\d+)\s+(\d+)\s.{0,15}\s(\d+)\s+(\d+)\s+(\d+)/ || $rep[$n] =~ /(\S+)\s+..(.{8})(.{8})(.{8}).{7}(.{8})(.{8})(.{8})/) {
		$group{$n,'group'} = $1;
		$group{$n,'ublocks'} = int($2);
		$group{$n,'sblocks'} = int($3);
		$group{$n,'hblocks'} = int($4);
		$group{$n,'ufiles'} = int($5);
		$group{$n,'sfiles'} = int($6);
		$group{$n,'hfiles'} = int($7);
		}
	}
return $n;
}

# edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles)
sub edit_quota_file
{
local($rv, $line, %mtab, @m);
@line = split(/\n/, $_[0]);
for($i=0; $i<@line; $i++) {
	if ($line[$i] =~ /^(\S+): blocks in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/ && $1 eq $_[1]) {
		# found lines to change
		$rv .= "$1: blocks in use: $2, limits (soft = $_[2], hard = $_[3])\n";
		$line[++$i] =~ /^\s*inodes in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/;
		$rv .= "\tinodes in use: $1, limits (soft = $_[4], hard = $_[5])\n";
		}
	else { $rv .= "$line[$i]\n"; }
	}
return $rv;
}

# quotacheck(filesystem, mode)
# Runs quotacheck on some filesystem
sub quotacheck
{
$out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1");
if ($?) { return $out; }
return undef;
}

# copy_user_quota(user, [user]+)
# Copy the quotas for some user to many others
sub copy_user_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'user_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# copy_group_quota(group, [group]+)
# Copy the quotas for some group to many others
sub copy_group_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'group_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# default_grace()
# Returns 0 if grace time can be 0, 1 if zero grace means default
sub default_grace
{
return 0;
}

# get_user_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day
sub get_user_grace
{
local(@rv, %mtab, @m);
$ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat";
open(GRACE, "$config{'user_grace_command'} $_[0] |");
while(<GRACE>) {
	if (/^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $1 eq $_[0]) {
		@rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5});
		}
	}
close(GRACE);
return @rv;
}

# get_group_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day
sub get_group_grace
{
local(@rv, %mtab, @m);
$ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat";
open(GRACE, "$config{'group_grace_command'} $_[0] |");
while(<GRACE>) {
	if (/^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $1 eq $_[0]) {
		@rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5});
		}
	}
close(GRACE);
return @rv;
}

# edit_grace_file(data, filesystem, btime, bunits, ftime, funits)
sub edit_grace_file
{
local($rv, $line, @m, %mtab);
foreach $line (split(/\n/, $_[0])) {
	if ($line =~ /^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $1 eq $_[1]) {
		# replace this line
		$line = "$1: block grace period: $_[2] $unit_to_name{$_[3]}, file grace period: $_[4] $unit_to_name{$_[5]}";
		}
	$rv .= "$line\n";
	}
return $rv;
}

# grace_units()
# Returns an array of possible units for grace periods
sub grace_units
{
return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'},
	$text{'grace_days'});
}

%name_to_unit = ( "second", 0, "seconds", 0,
		  "minute", 1, "minutes", 1,
		  "hour", 2, "hours", 2,
		  "day", 3, "days", 3,
		);
foreach $k (keys %name_to_unit) {
	$unit_to_name{$name_to_unit{$k}} = $k;
	}

1;

   070701000482bb000081e40000000000000002000000013ac03895000009e4000000200000000000000000000000000000001e00000003reloc/quota/group_filesys.cgi #!/usr/local/bin/perl
# group_filesys.cgi
# List all filesystems for which some group has quotas

require './quota-lib.pl';
&ReadParse();
$u = $in{'group'};
&can_edit_group($u) ||
	&error(&text('gfilesys_ecannot', $u));
&header($text{'gfilesys_title'}, "", "group_filesys");
print "<hr>\n";

foreach $f (&list_filesystems()) {
	if ($f->[4] > 1 && $f->[5] && &can_edit_filesys($f->[0])) {
		push(@fslist, $f->[0]);
		$fslist{$f->[0]}++;
		}
	}

$n = &group_filesystems($u);
if ($n) {
	print "<h3>$text{'gfilesys_all'}<tt>$u</tt></h3>\n";
	print "<table border width=100%>\n";
	print "<tr $tb> <td></td>\n";
	print "<td colspan=3 align=center><b>$text{'gfilesys_blocks'}</b></td>\n";
	print "<td colspan=3 align=center><b>$text{'gfilesys_files'}</b></td> </tr>\n";
	print "<tr $tb> <td><b>$text{'gfilesys_fs'}</b></td>\n";
	print "<td><b>$text{'gfilesys_used'}</b></td> <td><b>$text{'gfilesys_soft'}</b></td>\n";
	print "<td><b>$text{'gfilesys_hard'}</b></td>\n";
	print "<td><b>$text{'gfilesys_used'}</b></td> <td><b>$text{'gfilesys_soft'}</b></td>\n";
	print "<td><b>$text{'gfilesys_hard'}</b></td> </tr>\n";
	for($i=0; $i<$n; $i++) {
		$f = $filesys{$i,'filesys'};
		print "<tr $cb>\n";
		if ($fslist{$f}) {
			print "<td><a href=\"edit_group_quota.cgi?filesys=$f&group=$u&source=1\">$f</a></td>\n";
			}
		else { print "<td>$f</td>\n"; }
		print "<td>$filesys{$i,'ublocks'}</td>\n";
		&print_limit($filesys{$i,'sblocks'});
		&print_limit($filesys{$i,'hblocks'});
		print "<td>$filesys{$i,'ufiles'}</td>\n";
		&print_limit($filesys{$i,'sfiles'});
		&print_limit($filesys{$i,'hfiles'});
		print "</tr>\n";
		}
	print "</table><br>\n";
	}
else {
	print "<b>",&text('gfilesys_nogquota', $u),"</b><br>\n";
	}

print "<table width=100%><tr>\n";
print "<form action=edit_group_quota.cgi>\n";
print "<input type=hidden name=group value=\"$u\">\n";
print "<input type=hidden name=source value=1>\n";
print "<td align=left><input type=submit value=\"$text{'gfilesys_edit'}\">\n";
print "<select name=filesys>\n";
foreach $f (@fslist) { print "<option>$f\n"; }
print "</select></td></form>\n";

if ($access{'filesys'} eq "*") {
	print "<form action=copy_group_form.cgi>\n";
	print "<input type=hidden name=group value=\"$u\">\n";
	print "<td align=right><input type=submit value=\"$text{'gfilesys_copy'}\">\n";
	print "</td></form>\n";
	}
print "</tr></table>\n";

print "<hr>\n";
&footer("", $text{'gfilesys_title'});

sub print_limit
{
if ($_[0] == 0) { print "<td>$text{'quota_unlimited'}</td>\n"; }
else { print "<td>$_[0]</td>\n"; }
}

070701000482bc000081e40000000000000002000000013ac0389500000703000000200000000000000000000000000000002100000003reloc/quota/group_grace_form.cgi  #!/usr/local/bin/perl
# group_grace_form.cgi
# Display a form for editing group grace times for some filesystem

require './quota-lib.pl';
&ReadParse();
$access{'ggrace'} && &can_edit_filesys($in{'filesys'}) ||
	&error($text{'ggracef_ecannot'});
&header($text{'ggracef_title'}, "", "group_grace");
print "<hr>\n";

print "$text{'ggracef_info'}<p>\n";

@gr = &get_group_grace($in{'filesys'});
print "<form action=group_grace_save.cgi>\n";
print "<input type=hidden name=filesys value=\"$in{'filesys'}\">\n";
print "<table border width=100%>\n";
print "<tr $tb> <td colspan=2><b>",&text('ggracef_graces', $in{'filesys'}),"</b></td></tr>\n";

print "<tr $cb> <td width=20%><b>$text{'ggracef_block'}</b></td> <td>\n";
if (&default_grace()) {
	printf "<input type=radio name=bdef value=1 %s> $text{'default'}\n",
		$gr[0] ? "" : "checked";
	printf "<input type=radio name=bdef value=0 %s>\n",
		$gr[0] ? "checked" : "";
	}
print "<input name=btime size=6 value=\"$gr[0]\">";
&select_units("bunits", $gr[1]);
print "</td> </tr>\n";

print "<tr $cb> <td width=20%><b>$text{'ggracef_file'}</b></td> <td>\n";
if (&default_grace()) {
	printf "<input type=radio name=fdef value=1 %s> $text{'default'}\n",
		$gr[2] ? "" : "checked";
	printf "<input type=radio name=fdef value=0 %s>\n",
		$gr[2] ? "checked" : "";
	}
print "<input name=ftime size=6 value=\"$gr[2]\">";
&select_units("funits", $gr[3]);
print "</td> </tr>\n";

print "</table><p>\n";
print "<input type=submit value=$text{'ggracef_update'}></form>\n";

print "<hr>\n";
&footer("list_groups.cgi?$in{'filesys'}", $text{'ggracef_return'});

sub select_units
{
@uarr = &grace_units();
print "<select name=$_[0]>\n";
for($i=0; $i<@uarr; $i++) {
	printf "<option value=$i %s>$uarr[$i]\n",
		$i == $_[1] ? "selected" : "";
	}
print "</select>\n";
}

 070701000482bd000081e40000000000000002000000013ac038950000030c000000200000000000000000000000000000002100000003reloc/quota/group_grace_save.cgi  #!/usr/local/bin/perl
# group_grace_save.cgi
# Update the grace times for groups on some filesystem

require './quota-lib.pl';
&ReadParse();
$whatfailed = $text{'ggraces_esave'};
$access{'ggrace'} && &can_edit_filesys($in{'filesys'}) ||
	&error($text{'ggraces_eedit'});

if ($in{'bdef'}) { push(@args, 0, 0); }
elsif ($in{'btime'} !~ /^[0-9\.]+$/)
	{ &error(&text('ggraces_enumber', $in{'btime'})); }
else { push(@args, ($in{'btime'}, $in{'bunits'})); }

if ($in{'fdef'}) { push(@args, 0, 0); }
elsif ($in{'ftime'} !~ /^[0-9\.]+$/)
	{ &error(&text('ggraces_enumber', $in{'ftime'})); }
else { push(@args, ($in{'ftime'}, $in{'funits'})); }

&edit_group_grace($in{'filesys'}, @args);
&webmin_log("grace", "group", $in{'filesys'}, \%in);
&redirect("list_groups.cgi?$in{'filesys'}");

0707010004554b000041ed0000000000000001000000023ac03c5200000000000000200000000000000000000000000000001100000003reloc/quota/help  0707010004554c000081a40000000000000002000000013ac0389500000241000000200000000000000000000000000000002400000003reloc/quota/help/copy_group.es.html   <header>Copiar Cuotas de Grupo</header>

Esta p醙ina te permite copiar cuotas en todos los sistemas de archivos desde
alg鷑 grupo a otro u otros grupos. Hay tres maneras de seleccionar a qu grupos
copiar:
<dl>
<dt><b>Todos los Grupos</b>
<dd>Las cuotas ser醤 copiadas a cada uno de los dem醩 grupos de tu sistema.
<dt><b>Grupos Seleccionados</b>
<dd>Las cuotas ser醤 copiadas al grupo o grupos seleccionados.
<dt><b>Grupos que Contengan Usuarios</b>
<dd>Las cuotas ser醤 copiadas a todos los grupos en que cualquiera de los
    usuarios seleccionados sea miembro.
</dl>
<hr>

   0707010004554d000081a40000000000000002000000013ac038950000021c000000200000000000000000000000000000002400000003reloc/quota/help/copy_group.fr.html   <header>Copier Quotas d'un Groupe</header>

Cette page vous permet de copier les quotas de tous les syst鑝es de fichier d'un groupe  un autre.  Il y a trois fa鏾ns de choisir quel groupe  qui copier :

<dl>
<dt><b>Tous les Groupes</b>
<dd>Les quotas seront copi閟  tous les autres groupes du syst鑝e.
<dt><b>Groupes S閘ectionn</b>
<dd>Les quotas seront copi閟 aux groupes choisis.
<dt><b>Groupes contenant les Usagers</b>
<dd>Les quotas seront copi閟  tous les groupes dans lequel certains usagers sont membre.
</dl>
<hr>
0707010004554e000081a40000000000000002000000013ac03895000001fc000000200000000000000000000000000000002100000003reloc/quota/help/copy_group.html  <header>Copy Group Quotas</header>

The page allows you to copy quotas on all filesystems for some group to
one or more other groups. There are three ways of choosing which groups to
copy to :
<dl>
<dt><b>All Groups</b>
<dd>Quotas will be copied to every other group on your system.
<dt><b>Selected Groups</b>
<dd>Quotas will be copied to the group or groups selected.
<dt><b>Groups Containing Users</b>
<dd>Quotas will be copied to all groups of which any of the selected users
    is a member.
</dl>
<hr>

0707010004554f000081a40000000000000002000000013ac0389500000239000000200000000000000000000000000000002400000003reloc/quota/help/copy_group.pl.html   <header>Kopiuj quota dla grupy</header>

Ta strona pozwala ci na skopiowanie ustawie quota na wszystkich systemach
plik體 z&nbsp;pewnej grupy do jednej lub kilku innych grup. Istniej trzy
sposoby okre秎enia, do jakich grup kopiowa&nbsp;:
<dl>
<dt><b>Do wszystkich grup</b>
<dd>Quota zostanie skopiowane do wszystkich grup w systemie.
<dt><b>Do wybranych grup</b>
<dd>Quota zostanie skopiowane do zaznaczonej grupy lub grup.
<dt><b>Do grup zawieraj眂ych u縴tkownik體</b>
<dd>Quota zostanie skopiowane do grup, do kt髍ych nale勘 zaznaczeni
    u縴tkownicy.
</dl>
<hr>
   07070100045550000081a40000000000000002000000013ac0389500000223000000200000000000000000000000000000002400000003reloc/quota/help/copy_group.sv.html   <header>Kopiera en grupps quota</header>

P denna sida kan du kopiera quota p alla filsystem fr錸 en grupp till
en eller flera andra grupper. Det finns tre s鋞t att v鋖ja den
eller de grupper som du vill kopiera till:
<dl>
<dt><b>Alla grupper</b>
<dd>Quotan kopieras till alla andra grupper p systemet.
<dt><b>Angivna grupper</b>
<dd>Quotan kopieras till den eller de grupper som du har angivit.
<dt><b>Grupper som inneh錶ler anv鋘dare ...</b>
<dd>Quotan kopieras till alla grupper d鋜 n錱on av de angivna anv鋘darna 鋜
    medlem.
</dl>
<hr>

 07070100045551000081a40000000000000002000000013ac0389500000163000000200000000000000000000000000000002c00000003reloc/quota/help/copy_group.zh_TW.Big5.html   <header>狡籹竤舱皌肂</header>

硂琵眤狡籹琘竤舱郎╰参场皌肂倒ㄤ竤舱. 璸Τ贺よΑ﹚璶狡籹竤舱:
<dl>
<dt><b>场竤舱</b>
<dd>皌肂穦狡籹眤╰参–竤舱.
<dt><b>匡拒竤舱</b>
<dd>皌肂盢穦狡籹眤┮匡拒竤舱.
<dt><b>ㄏノ...竤舱</b>
<dd>皌肂盢穦狡籹┮Τ┮匡拒ㄏノ竤舱.
</dl>
<hr>

 07070100045552000081a40000000000000002000000013ac0389500000266000000200000000000000000000000000000002300000003reloc/quota/help/copy_user.es.html    <header>Copiar Cuotas de Usuario</header>

Esta p醙ina te permite copiar cuotas en todos los sistemas de archivos desde
alg鷑 usuario a otro u otros usuarios. Hay tres maneras de seleccionar a qu
usuarios copiar:
<dl>
<dt><b>Todos los Usuarios</b>
<dd>Las cuotas ser醤 copiadas a cada uno de los dem醩 usuarios de tu sistema.
<dt><b>Usuarios Seleccionados</b>
<dd>Las cuotas ser醤 copiadas al usuario o usuarios seleccionados.
<dt><b>Miembros de Grupos Selectos</b>
<dd>Las cuotas ser醤 copiadas a todos los usuarios que tengan uno de los
    grupos seleccionados como su grupo primario o secundario.
</dl>
<hr>

  07070100045553000081a40000000000000002000000013ac038950000023e000000200000000000000000000000000000002300000003reloc/quota/help/copy_user.fr.html    <header>Copier Quotas d'un Usager</header>

Cette page vous permet de copier les quotas de tous les syst鑝es de fichier d'un usager  d'autres.  Il y a trois fa鏾ns pour choisir  quel usager les copier:
<dl>
<dt><b>Tous les Usagers</b>
<dd>Les quotas seront copier  tous les autres usagers du syst鑝e.
<dt><b>Usagers S閘ectionn閟</b>
<dd>Les quotas seront copi閟 aux usagers choisis.
<dt><b>Membres d'un Groupe S閘ectionn</b>
<dd>Les quotas seront copi閟  tous les usagers des groupes s閘ectionn閟, que ce soit leur groupe primaire ou secondaire.
</dl>
<hr>
  07070100045554000081a40000000000000002000000013ac0389500000210000000200000000000000000000000000000002000000003reloc/quota/help/copy_user.html   <header>Copy User Quotas</header>

The page allows you to copy quotas on all filesystems for some user to
one or more other users. There are three ways of choosing which users to
copy to :
<dl>
<dt><b>All Users</b>
<dd>Quotas will be copied to every other user on your system.
<dt><b>Selected Users</b>
<dd>Quotas will be copied to the user or users selected.
<dt><b>Members of Selected Groups</b>
<dd>Quotas will be copied to all users who have one of the selected groups
    as their primary or a secondary group.
</dl>
<hr>

07070100045555000081a40000000000000002000000013ac03895000002aa000000200000000000000000000000000000002300000003reloc/quota/help/copy_user.pl.html    <header>Kopiuj quota dla u縴tkownik體</header>

Ta strona pozwala ci na skopiowanie ustawie quota na wszystkich systemach
plik體 z&nbsp;pewnego u縴tkownika do jednego lub kilku innych u縴tkownik體.
Istniej trzy sposoby okre秎enia, do jakich grup kopiowa&nbsp;:
<dl>
<dt><b>Do wszystkich u縴tkownik體</b>
<dd>Quota zostanie skopiowane do wszystkich u縴tkownik體 w systemie.
<dt><b>Do Wybranych u縴tkownik體</b>
<dd>Quota zostanie skopiowane do zaznaczonego u縴tkownika lub u縴tkownik體.
<dt><b>Do cz硂nk體 zaznaczonych grup</b>
<dd>Quota zostanie skopiowane do wszystkich u縴tkownik體, dla kt髍ych jedna
    znbsp;zaznaczonych grup jest grup podstawow lub dodatkow.
</dl>
<hr>
  07070100045556000081a40000000000000002000000013ac0389500000250000000200000000000000000000000000000002300000003reloc/quota/help/copy_user.sv.html    <header>Kopiera en anv鋘dares quota</header>

P denna sida kan du kopiera quota p alla filsystem fr錸 en anv鋘dare till
en eller flera andra anv鋘dare. Det finns tre s鋞t att v鋖ja den
eller de anv鋘dare som du vill kopiera till:
<dl>
<dt><b>Alla anv鋘dare</b>
<dd>Quotan kopieras till alla andra anv鋘dare p systemet.
<dt><b>Angivna anv鋘dare</b>
<dd>Quotan kopieras till den eller de anv鋘dare som du har angivit.
<dt><b>Anv鋘dare som ing錼 i grupp(er) ...</b>
<dd>Quotan kopieras till alla anv鋘dare som har n錱on av de angivna grupperna
    som prim鋜 eller sekund鋜 grupp.
</dl>
<hr>
07070100045557000081a40000000000000002000000013ac0389500000176000000200000000000000000000000000000002b00000003reloc/quota/help/copy_user.zh_TW.Big5.html    <header>狡籹ㄏノ皌肂</header>

硂琵眤狡籹琘ㄏノ郎╰参场皌肂倒ㄤㄏノ. 璸Τ贺よΑ﹚璶狡籹ㄏノ:
<dl>
<dt><b>场ㄏノ</b>
<dd>皌肂穦狡籹眤╰参–ㄏノ.
<dt><b>匡拒ㄏノ</b>
<dd>皌肂盢穦狡籹眤┮匡拒ㄏノ.
<dt><b>匡拒竤舱Θ</b>
<dd>皌肂穦狡籹┮匡拒竤舱璶┪Ω璶竤舱ㄏノ.
</dl>
<hr>

  07070100045558000081a40000000000000002000000013ac03895000000df000000200000000000000000000000000000002a00000003reloc/quota/help/edit_group_quota.es.html <header>Editar Cuotas de Grupo</header>

Este formulario te permite editar las cuotas de alg鷑 grupo. Se pueden
digitar o poner como ilimitado cada uno de los l韒ites de hard y soft
respecto a los bloques y archivos.
<hr>

 07070100045559000081a40000000000000002000000013ac03895000000cf000000200000000000000000000000000000002a00000003reloc/quota/help/edit_group_quota.fr.html <header>蒬iter les Quotas d'un Groupe</header>

Cette page vous permet d'閐iter les quotas de tous les membres d'un groupe.  Chacune des limites doive 阾re entr閑 ou ils seront consid閞閟 illimit.
<hr>
 0707010004555a000081a40000000000000002000000013ac03895000000bd000000200000000000000000000000000000002700000003reloc/quota/help/edit_group_quota.html    <header>Edit Group Quota</header>

This form allows you to edit the quotas for some group. Each of the 
hard and soft limits for blocks and files may be entered, or set as
unlimited.
<hr>

   0707010004555b000081a40000000000000002000000013ac03895000000f0000000200000000000000000000000000000002a00000003reloc/quota/help/edit_group_quota.pl.html <header>Zmie quota dla grupy</header>

Ten formularz pozwala zmieni ustawienia quota dla pewnej grupy. Ka縟y
z&nbsp;limit體: twardy i&nbsp;mi阫ki, dla blok體 jak i&nbsp;plik體 mo縠 by
wprowadzony b眃 ustawiony jako nieograniczony.
<hr>
0707010004555c000081a40000000000000002000000013ac03895000000e1000000200000000000000000000000000000002a00000003reloc/quota/help/edit_group_quota.sv.html <header>膎dra quota f鰎 grupp</header>

I detta formul鋜 kan du 鋘dra quotan f鰎 en grupp. Du kan v鋖ja att
ange best鋗da v鋜den f鰎 de h錼da och mjuka gr鋘serna f鰎 block och
filer eller att l錿a dem vara obegr鋘sade.
<hr>

   0707010004555d000081a40000000000000002000000013ac038950000008d000000200000000000000000000000000000003200000003reloc/quota/help/edit_group_quota.zh_TW.Big5.html <header>絪胯竤舱皌肂</header>

虫琵眤絪胯┮匡拒竤舱皌肂. 眤癸郎计┪跋遏计块祑┦, 硁┦, ┪砞﹚Θぃ.
<hr>

   0707010004555e000081a40000000000000002000000013ac03895000000e3000000200000000000000000000000000000002900000003reloc/quota/help/edit_user_quota.es.html  <header>Editar Cuotas de Usuario</header>

Este formulario te permite editar las cuotas de alg鷑 usuario. Se pueden
digitar o poner como ilimitado cada uno de los l韒ites de hard y soft
respecto a los bloques y archivos.
<hr>

 0707010004555f000081a40000000000000002000000013ac03895000000b9000000200000000000000000000000000000002900000003reloc/quota/help/edit_user_quota.fr.html  <header>蒬it les Quotas d'un Usager</header>

Cette page vous permet d'閐iter les quotas d'un usager.  Chacune des limites doive 阾re entr閑 ou ils seront consid閞閟 illimit.
<hr>
   07070100045560000081a40000000000000002000000013ac03895000000bb000000200000000000000000000000000000002600000003reloc/quota/help/edit_user_quota.html <header>Edit User Quota</header>

This form allows you to edit the quotas for some user. Each of the 
hard and soft limits for blocks and files may be entered, or set as
unlimited.
<hr>

 07070100045561000081a40000000000000002000000013ac03895000000fd000000200000000000000000000000000000002900000003reloc/quota/help/edit_user_quota.pl.html  <header>Zmie quota dla u縴tkownika</header>

Ten formularz pozwala zmieni ustawienia quota dla pewnego u縴tkownika.
Ka縟y z&nbsp;limit體: twardy i&nbsp;mi阫ki, dla blok體 jak i&nbsp;plik體
mo縠 by wprowadzony b眃 ustawiony jako nieograniczony.
<hr>
   07070100045562000081a40000000000000002000000013ac03895000000e8000000200000000000000000000000000000002900000003reloc/quota/help/edit_user_quota.sv.html  <header>膎dra quota f鰎 anv鋘dare</header>

I detta formul鋜 kan du 鋘dra quotan f鰎 en anv鋘dare. Du kan v鋖ja att
ange best鋗da v鋜den f鰎 de h錼da och mjuka gr鋘serna f鰎 block och
filer eller att l錿a dem vara obegr鋘sade.
<hr>
07070100045563000081a40000000000000002000000013ac0389500000091000000200000000000000000000000000000003100000003reloc/quota/help/edit_user_quota.zh_TW.Big5.html  <header>絪胯ㄏノ皌肂</header>

虫琵眤絪胯┮匡拒ㄏノ皌肂. 眤癸郎计┪跋遏计块祑┦, 硁┦, ┪砞﹚Θぃ.
<hr>

   07070100045564000081a40000000000000002000000013ac03895000002af000000200000000000000000000000000000002700000003reloc/quota/help/group_filesys.es.html    <header>Cuotas de Grupo</header>

Esta p醙ina lista todos los sistemas de archivo en que alg鷑 grupo tiene
cuotas. Puedes hacer click en los sistemas de archivo para edita su cuota o
seleccionar un sistema de archivos desde el men inferior y hacer click en
<tt>Editar Cuota</tt>. Si un sistema de archivos no est en la lista, no hay
l韒ite en el n鷐ero de archivos o cantidad de espacio que el grupo puede
ocupar en ese sistema de archivos. <p>

Haciendo click en el bot髇 de <tt>Copiar Cuotas</tt> te permite copiar
todas las cuotas para este grupo a uno o m醩 grupos. Esto puede ser 鷗il
si quieres reservar para un n鷐ero de grupos la misma cantidad de espacio
en disco. <p>

<hr>

 07070100045565000081a40000000000000002000000013ac03895000002c4000000200000000000000000000000000000002700000003reloc/quota/help/group_filesys.fr.html    <header>Quotas des Groupes</header>

Cette page liste tous les syst鑝es de fichier sur lesquels des groupes ont des quotas.  Vous pouvez cliquer sur un syst鑝e de fichier de la liste pour 閐iter son quota ou s閘ectionner un syst鑝e de fichier du menu en dessous en cliquant sur <tt>蒬iter Quotas</tt>.   Si un syst鑝e de fichier n'est pas dans la liste c'est qu'il n'a aucune limite du nombre de fichiers ou d'espaces disque qu'un groupe peut occuper sur ce syst鑝e de fichier.<p>

Cliquer sur le bouton <tt>Copier Quotas</tt> vous permettra de copier tous les quotas de ce groupe  d'autres groupes.  Ceci peut 阾re utile si vous voulez allouer  un nombre de groupes le m阭e espace disque.<p>

<hr>
07070100045566000081a40000000000000002000000013ac0389500000258000000200000000000000000000000000000002400000003reloc/quota/help/group_filesys.html   <header>Group Quotas</header>

This page lists all the filesystems on which some group has a quota. You can
click on a filesystem from the list to edit its quota, or select a filesystem
from the menu below and click on <tt>Edit Quota</tt>. If a filesystem is not
on the list there is no limit to the number of files or amount of space the
group may occupy on that filesystem. <p>

Clicking the <tt>Copy Quotas</tt> button allows you to copy all quotas for
this group to one or more other groups. This can be useful if you want to
allocate a number of groups the same amount of disk space. <p>

<hr>

07070100045567000081a40000000000000002000000013ac03895000002bc000000200000000000000000000000000000002700000003reloc/quota/help/group_filesys.pl.html    <header>Quota dla grup</header>

Na tej stronie zobaczysz liste system體 plik體, na kt髍ych ustawiono quota
dla pewnej grupy. Mo縠sz nacisn辨 na system plik體 z&nbsp;listy, aby zmieni
na nim ustawienia quota lub wybra system plik體 z&nbsp;menu poni縠j
i&nbsp;nacisn辨 <tt>Zmie quota</tt>. Je秎i jaki system plik體 nie znajduje
si na li禼ie, to nie ma na nim ogranicze na liczbe plik體 ani na rozmiar
przestrzeni dyskowej zaj阾ej przez t grup. <p>

Naciskaj眂 przycisk <tt>Kopiuj quota</tt> mo縠sz skopiowa wszystkie limity
ustawione dla tej grupy do jednej lub kilku innych grup. Mo縠 to by
u縴teczne je縠li, chcesz przydzieli kilku grupom taki sam rozmiar
przestrzeni dyskowej. <p>

<hr>
07070100045568000081a40000000000000002000000013ac038950000023c000000200000000000000000000000000000002700000003reloc/quota/help/group_filesys.sv.html    <header>Quota f鰎 grupp</header>

P denna sida visas alla filsystem d鋜 n錱on grupp har quota. Klicka p ett
filsystem i listan f鰎 att 鋘dra quota eller v鋖j ett filsystem fr錸 menyn
nedan och tryck p <tt>膎dra quota</tt>. Om n錱ot filsystem inte finns med
p listan 鋜 antalet filer och utrymmet som gruppen f錼 anv鋘da obegr鋘sat
p detta filsystem.

<p>Tryck p <tt>Kopiera quota</tt> f鰎 att kopiera quota fr錸 denna grupp
till en eller flera andra grupper. Detta 鋜 anv鋘dbart om man vill att
m錸ga grupper ska ha tillg錸g till lika mycket diskutrymme var.

<hr>

07070100045569000081a40000000000000002000000013ac03895000001a5000000200000000000000000000000000000002f00000003reloc/quota/help/group_filesys.zh_TW.Big5.html    <header>竤舱皌肂</header>

硂郎╰参Τ砞﹚竤舱皌肂冈灿戈. 眤い郎╰参嘿絪胯皌肂; ┪虫い匡拒璶跑郎╰参, <tt>絪胯合盒皌肂</tt>跑ぇ. 狦郎╰参ぃい, ボ赣郎╰参⊿Τ砞﹚郎计ヘ┪皌肂砞﹚. <p>

<tt>狡籹皌肂</tt>秙琵眤狡籹硂竤舱皌肂倒ㄤ竤舱. 讽眤稱璶ㄏㄤ竤舱Τ皌肂, 硂盢穦Τノ. <p>

<hr>

   0707010004556a000081a40000000000000002000000013ac03895000001f4000000200000000000000000000000000000002500000003reloc/quota/help/group_grace.es.html  <header>Tiempo de Gracia para el Grupo</header>

Los tiempos de gracia son la cantidad de tiempo en que un grupo puede exceder
su l韒ite de soft antes de ser prevenido de no utilizar m醩 espacio en disco
o de no crear m醩 archivos. Una vez que un grupo excede su l韒ite de bloque de
soft, tiene la cantidad de tiempo especificada para reducir su utilizaci髇 de
disco por debajo del l韒ite antes de que sea prevenido de no utilizar m醩
bloques. Lo mismo se aplica al l韒ite de archivos de soft.
<hr>

0707010004556b000081a40000000000000002000000013ac0389500000162000000200000000000000000000000000000002500000003reloc/quota/help/group_grace.fr.html  <header>Temps de Gr鈉e du Groupe</header>

Le temps de gr鈉e est le temps qu'un groupe puisse exc閐er sa limite douce avant de ne plus pouvoir utiliser d'espace disque ou cr閑r plus de fichiers.  Une fois qu'un groupe a exc閐 sa limite douce, il a le temps sp閏ifi pour lib閞er de l'espace disque sous la limite avant qu'elle ne s'applique.

<hr>
  0707010004556c000081a40000000000000002000000013ac0389500000195000000200000000000000000000000000000002200000003reloc/quota/help/group_grace.html <header>Group Grace Times</header>

Grace times are the amount of time a group may exceed its soft limit by
before being prevented from using any more disk space or creating any
more files. Once a group exceeds its soft block limit, it has the specified
amount of time to reduce its disk usage below the limit before it is
prevented from using more blocks. The same applies for the soft file limit.
<hr>

   0707010004556d000081a40000000000000002000000013ac0389500000210000000200000000000000000000000000000002500000003reloc/quota/help/group_grace.pl.html  <header>Czasy ulgi dla grupy</header>

Czasy ulgi s okresem czasu, na jaki grupa mo縠 przekroczy mi阫ki
limit quota, zanim zostan zablokowane mo縧iwo禼i u縴cia jakiejkolwiek
dodatkowej przestrzeni dyskowej i&nbsp;tworzenia nowych plik體. Od chwili,
gdy grupa przekroczy mi阫ki limit, ma ona okre秎ony czas na to, by
zmniejszy rozmiar zajmowanej przestrzeni dyskowej poni縠j limitu. Je秎i
tego nie uczyni zostanie zablokowana mo縧iwo舵 u縴cia przez ni nowych
blok體. To samo stosuje sie do mi阫kiego limitu dla plik體.
<hr>
0707010004556e000081a40000000000000002000000013ac03895000001a6000000200000000000000000000000000000002500000003reloc/quota/help/group_grace.sv.html  <header>Tidsintervall f鰎 grupper</header>

H鋜 anger du den tid som en grupp f錼 鰒erskrida sin mjuka
gr鋘s innan den hindras att anv鋘da mer diskutrymme och skapa nya
filer. N鋜 en grupp 鰒erskrider sin mjuka blockgr鋘s har den det
angivna tidsintervallet p sig att minska diskanv鋘dningen, s att gr鋘sen
inte 鰒erskrids, innan den hindras att anv鋘da fler block. Den mjuka
filgr鋘sen fungerar p liknande s鋞t.
<hr>

  0707010004556f000081a40000000000000002000000013ac03895000000db000000200000000000000000000000000000002d00000003reloc/quota/help/group_grace.zh_TW.Big5.html  <header>竤舱紆┦丁</header>

紆┦丁琌す砛竤舱禬筁ㄤ硁┦丁. 硂琿丁ぇい, 竤舱ご礛ㄏノ合盒丁┪ミ郎. 讽竤舱ㄏノ禬筁ㄤ硁┦丁, ウ穦砞﹚丁璶―竤舱丁ぇず睲埃ㄤ丁.
<hr>

 07070100045570000081a40000000000000002000000013ac0389500000b55000000200000000000000000000000000000001f00000003reloc/quota/help/intro.es.html    <header>Cuotas de Disco</header>

<h3>Introducci髇</h3>
Las cuotas son un m閠odo de controlar cu醤to espacio en disco pueden usar
los usuarios y los grupos. Para cada sistema de archivos puedes colocar
l韒ites de cu醤to espacio en disco y cu醤tos archivos puede utilizar cada
usuario. Algunos sistemas Unix pueden tambien permitirte limitar el espacio
y los archivos utilizados por todos los miembros de alg鷑 grupo. <p>

Las cuotas pueden configurarse s髄amente para sistemas de archivo Unix
locales. Los sistemas de archivo NFS montados desde otros sistemas utilizan
las cuotas de su servidor, si tienen. Los sistemas de archivo no Unix como
MS-DOS o ISO9660 no pueden soportar ning鷑 tipo de cuotas. <p>

Para cada usuario se imponen cuatro l韒ites:
<dl>
<dt><b>L韒ite de bloque por soft</b>
<dd>El n鷐ero de bloques de disco permitidos antes de que se muestre un
    mensaje de aviso.
<dt><b>L韒ite de bloque por hard</b>
<dd>El m醲imo n鷐ero de bloques que un archivo de usuario puede ocupar.
<dt><b>L韒ite de archivo por soft</b>
<dd>El n鷐ero de archivos permitidos antes de que se muestre un mensaje
    de aviso.
<dt><b>L韒ite de archivo por Hard</b>
<dd>El m醲imo n鷐ero de archivos que un usuario puede tener.
</dl>
Los bloques de disco son t韕icamente de 512 o 1024 bytes de tama駉, dependiendo
del sistema operativo. Cuando se calculan las cuotas, todas las medidas
de los archivos son redondeadas al siguiente bloque por encima. Por ello,
incluso los archivos vac韔s usan al menos un bloque. <p>

Para prop髎ito de cuotas de archivo, cada directorio, dispositivo, enlace
simb髄ico o archivo normal es tenido en cuenta para el m醲imo n鷐ero de
archivos que puede tener un usuario. T閏nicamente, la cuota de archivos es
actualmente una cuenta de <i>i-nodos</i>. <p>

<h3>El M骴ulo de Cuotas de Disco</h3>
La p醙ina principal de este modulo muestra una lista de sistemas de archivo
locales que pueden soportar cuotas. Si las cuotas est醤 activadas en este
momento en tu sistema, puedes hacer click en su trayectoria para mostrar
las cuotas de cada usuario. Si no, haciendo click en <tt>Activar Cuotas</tt>
activar las cuotas de ese sistema de archivos. <p>

<if $gconfig{'os_type'} =~ /linux/>
El sistema operativo Linux no permite activar las cuotas a menos que el
sistema de archivos tenga la opci髇 <tt>Usar Cuotas</tt> puesta en el
m骴ulo de los Discos y en el de los Sistemas de archivo. Si ninguno de
tus sistemas de archivo tiene esta opci髇 puesta, no se lista a nadie en la
p醙ina principal. <p>
</if>

Bajo la lista de sistemas de archivo hay un bot髇 para mostrar todas las
cuotas de un usuario seleccionado. Esto ser s髄amente mostrado si al menos
un sistema de archivos tiene activadas las cuotas de usuario. De forma
similar, si al menos un sistema de archivos tiene grupos de cuotas activadas
habr un bot髇 para mostrar todas las cuotas del grupo seleccionado. <p>

<hr>

   07070100045571000081a40000000000000002000000013ac03895000009a8000000200000000000000000000000000000001f00000003reloc/quota/help/intro.fr.html    <header>Quotas Disque</header>

<h3>Introduction</h3>
Les quotas est une m閠hode pour contr鬺er combien d'espace disque chaque utilisateur et groupe peut utiliser.  Pour chaque syst鑝e de fichier vous pouvez placer des limites sur combien d'espace disque et combien de fichier chaques usagers peut utiliser.  Certains syst鑝es Unix vous permettent de limiter  tous les membres d'un groupe.

Les quotas peuvent seulement 阾re configur sur un syst鑝e de fichier Unix local.  Les disques NFS mont de d'autres syst鑝es utilise les quotas du serveur, s'il y en a.  Les syst鑝es de fichier n'appartenant pas  Unix comme MS-DOS ou ISO9660 ne supporte pas les quotas.<p>

Pour chaque usager quatre limites sont impos閑s :
<dl>
<dt><b>Limite douce de bloc</b>
<dd>Le nombre de blocs allou avant qu'un message d'avertissement apparaisse
<dt><b>Limite dure de bloc</b>
<dd>Nombre maximum de blocs qu'un usager peut occuper.
<dt><b>Limite douce de fichier</b>
<dd>Nombre de fichier allou avant qu'un message d'avertissement apparaisse.
<dt><b>Limite dure de fichier</b>
<dd>Nombre maximum de fichiers qu'un usager peut occuper.
</dl>
Les blocs disque occupe g閚閞alement 512  4096 bytes de taille, tout d閜endant du syst鑝e d'exploitation.  Dans le calcul des quotas, toutes les tailles de fichier sont arrondies au bloc le plus pr鑣.  M阭e les fichiers vide utilise au moins un bloc.<p>

Dans les quotas de fichier, m阭e les r閜ertoires, liens symbolique ou fichier normal compte dans le maximum de fichiers qu'un utilisateur peut avoir.  Techniquement, le quota de fichier est celui des <i>inodes</i>.<p>

<h3>Module de Quotas Disque</h3>
La page de ce module affiche la liste des syst鑝es de fichier que supporte quotas.  Si un quota est actif pour un syst鑝e de fichier vous pouvez cliquer sur le chemin pour afficher les quotas de chaque usager.  Sinon, cliquer sur <tt>Activer les Quotas</tt> pour les activer sur le syst鑝e de fichier.<p>

<if $gconfig{'os_type'}  = ~ /linux/>
Le syst鑝e d'exploitation Linux n'alloue pas les quotas tant que le syst鑝e de fichier n'a pas l'option <tt>Utilisation de Quotas</tt> d閒init dans le module de Disque et de Syst鑝e de fichier de Webmin.<p>
</if>

Sous la liste des syst鑝es de fichier se trouve un bouton qui affiche tous les quotas pour un usager s閘ectionn.  Ceci est affich seulement si au moins un syst鑝e de fichier supporte les quotas pour un usager.  Tout comme les groupes.<p>

<hr>
07070100045572000081a40000000000000002000000013ac0389500000936000000200000000000000000000000000000001c00000003reloc/quota/help/intro.html   <header>Disk Quotas</header>

<h3>Introduction</h3>
Quotas are a method of controlling how much disk space users and groups
can use. For each filesystem you can place limits on how much disk space
and how many files each user may use. Some Unix systems may also allow you
to limit the space and files used by all members of some group. <p>

Quotas can only be setup for local Unix filesystems. NFS filesystems mounted
from other systems use the quotas from the server, if any. Non Unix filesystems
like MS-DOS or ISO9660 cannot support quotas at all. <p>

For each user four limits are imposed :
<dl>
<dt><b>Soft block limit</b>
<dd>The number of disk blocks allowed before a warning message is displayed.
<dt><b>Hard block limit</b>
<dd>The maximum number of blocks that the user's file may occupy.
<dt><b>Soft file limit</b>
<dd>The number of files allowed before a warning message is displayed.
<dt><b>Hard file limit</b>
<dd>The maximum number of files that the user may own.
</dl>
Disk blocks are typically 512 or 1024 bytes in size, depending on the
operating system. When computing quotas, all file sizes are rounded up to
the nearest block. Thus even an empty file uses at least on block. <p>

For the purpose of file quotas, every directory, device, symbolic link
or normal file counts towards the maximum number of files a user may own.
Technically, the file quota is actually a quota on <i>inodes</i>. <p>

<h3>The Disk Quotas Module</h3>
The main page of this module shows a list of local filesystems that
can support quotas. If quotas are currently enabled for a filesystem, you
may click on its path to display the quotas for each user. If not, clicking
on <tt>Enabled Quotas</tt> will activate quotas for that filesystem. <p>

<if $gconfig{'os_type'} =~ /linux/>
The Linux operating system does not allow quotas to be turned on unless
the filesystem has the <tt>Use Quotas</tt> option set in the Disks and
Filesystems module. If none of your filesystems have this option set then
none will be listed on the main page. <p>
</if>

Below the list of filesystems is a button for displaying all quotas for
a selected user. This will only be displayed if at least one filesystem has
user quotas enabled. Similarly, if at least one filesystem has group quotas
enabled there will be a button for displaying all quotas for a selected
group. <p>

<hr>

  07070100045573000081a40000000000000002000000013ac0389500000b4d000000200000000000000000000000000000001f00000003reloc/quota/help/intro.pl.html    <header>Quota dla dysk體</header>

<h3>Wprowadzenie</h3>
Quota jest metod ograniczania rozmiaru przestrzeni dyskowej, kt髍a mo縠 by
wykorzystana przez poszczeg髄nych u縴tkownik體 i&nbsp;grupy. Dla ka縟ego
systemu plik體 mo縠sz ustawi limity rozmiaru przestrzeni dyskowej oraz
ilo禼i plik體, kt髍e dany u縴tkownik mo縠 wykorzysta. Niekt髍e systemy
uniksowe mog r體nie pozwala na ograniczenie przestrzeni dyskowej
i&nbsp;plik體 u縴wanych przez wszystkich cz硂nk體 pewnych grup. <p>

Quota moga by ustawione wy潮cznie na lokalnych uniksowych systemach plik體.
Systemy plik體 montowane przez NFS z&nbsp;innych system體 u縴waj quota
z&nbsp;serwera, je秎i takie ustawiono. Nieuiniksowe systemy plik體, takie
jak MS-DOS czy ISO9660 nie wspomagaj quota w&nbsp;og髄e. <p>

Dla ka縟ego u縴tkownika narzucone s cztery limity&nbsp;:
<dl>
<dt><b>Mi阫ki limit blok體</b>
<dd>Liczba blok體 na dysku, po zaj阠iu kt髍ej wy秝ietlane jest ostrze縠nie.
<dt><b>Twardy limit blok體</b>
<dd>Maksymalna liczba blok體 na dysku, kt髍e mog by zaj阾e przez pliki
    u縴tkownika.
<dt><b>Mi阫ki limit plik體</b>
<dd>Liczba plik體, po utworzeniu kt髍ej wy秝ietlane jest ostrze縠nie.
<dt><b>Twardy limit plik體</b>
<dd>Maksymalna liczba plik體, kt髍e u縴tkownik mo縠 posiada.
</dl>
Bloki na dysku s zazwyczaj 512 lub 1024 bajtowe, zale縩ie od systemu
operacyjnego. W&nbsp;czasie naliczania quota wszystkie rozmiary plik體 s
zaokr眊lane w&nbsp;g髍 do najbli縮zego bloku. Wobec czego nawet pusty plik
zu縴wa co najmniej jeden blok. <p>

W&nbsp;przypadku qouta dla plik體 zliczany jest ka縟y katalog, urz眃zenie,
dowi眤anie symboliczne oraz zwyk硑 plik. Ich 潮czna ilo舵 nie mo縠
przekroczy maksymalnej liczby plik體, kt髍e u縴tkownik mo縠 posiada.
Technicznie, qouta dla plik體 jest w&nbsp;rzeczywisto禼i quota dla
<i>i-nod體</i>. <p>

<h3>Modu Quota dla dysk體</h3>
Strona g丑wna tego modu硊 zawiera list lokalnych system體 plik體, kt髍e
mog wspomaga quota. Je秎i quota jest aktualnie w潮czone dla danego systemu
plik體, mo縠sz nacisn辨 na jego 禼ie縞e, aby wy秝ietli quota dla
poszczeg髄nych u縴tkownik體. Je秎i nie, nacisni阠ie <tt>W潮czone quota</tt>
uaktywni quota dla tego systemu plik體. <p>

<if $gconfig{'os_type'} =~ /linux/>
System operacyjny Linux nie pozwala na w潮czenie quota, je秎i dla systemu
plik體 nie ustawiono opcji <tt>U縴waj quota</tt> w&nbsp;module Dyski
i&nbsp;systemy plik體. Je秎i 縜den z&nbsp;twoich system體 plik體 nie ma
ustawionej tej opcji nic nie zostanie wy秝ietlone na g丑wnej stronie. <p>
</if>

Pod list system體 plikowych znajduje sie przycisk do wy秝ietlania
wszystkich quota dla wybranego u縴tkownika. B阣zie on widoczny tylko, je秎i
co najmniej jeden system plik體 ma w潮czone quota dla u縴tkownik體.
Podobnie, je秎i co najmniej jeden system plik體 ma w潮czone quota dla grup,
pojawi si przycisk do wy秝ietlania wszystkich quota dla wybranej grupy. <p>

<hr>
   07070100045574000081a40000000000000002000000013ac03895000008d2000000200000000000000000000000000000001f00000003reloc/quota/help/intro.sv.html    <header>Diskquota</header>

<h3>Introduktion</h3>
Quota 鋜 en metod f鰎 att styra diskanv鋘dning f鰎 anv鋘dare och grupper.
F鰎 varje filsystem kan man begr鋘sa det diskutrymme och antal filer som en
anv鋘dare f錼 utnyttja. I en del Unix-system g錼 det ocks att g鰎a
motsvarande begr鋘sningar f鰎 en grupp.

<p>Man kan endast s鋞ta upp quota f鰎 lokala Unix-filsystem. NFS-filsystem
som monteras fr錸 andra system har quota-inst鋖lningar p det systemet, om
s錮ana finns. Filsystem som inte 鋜 Unix (t ex MS-DOS och ISO9660) st鰀jer
inte alls quotasystemet.

F鰎 varje anv鋘dare kan f鰈jande begr鋘sningar g鰎as:
<dl>
<dt><b>Mjuk blockgr鋘s</b>
<dd>Antal diskblock som f錼 anv鋘das innan ett varningsmeddelande visas.
<dt><b>H錼d blockgr鋘s</b>
<dd>Maximalt antal block som anv鋘darens filer f錼 ta upp.
<dt><b>Mjuk filgr鋘s</b>
<dd>Antal filer som f錼 skapas innan ett varningsmeddelande visas.
<dt><b>H錼d filgr鋘s</b>
<dd>Maximalt antal filer som anv鋘daren f錼 鋑a.
</dl>
Diskblock 鋜 vanligen 512 eller 1024 bytes stora, beroende p operativsystem.
Vid quotaber鋕ning avrundas alla filstorlekar upp錿 till n鋜maste hela
block, vilket g鰎 att till och med en tom fil tar upp minst ett block.

<p>Vid quotaber鋕ning r鋕nas kataloger, diskar, symboliska l鋘kar och
vanliga filer in i filantalet. Tekniskt sett 鋜 filquotan helt enkelt en
quota f鰎 <i>inoder</i>.

<h3>Diskquotamodulen</h3>
Startsidan f鰎 denna modul inneh錶ler en lista 鰒er de lokala filsystem
som st鰀jer quota. Om quota anv鋘ds f鰎 ett filsystem g錼 det att klicka
p dess s鰇v鋑 f鰎 att se quota f鰎 alla anv鋘dare. Om quota inte anv鋘ds
g錼 det att trycka p <tt>Aktivera quota</tt>, s aktiveras quota f鰎
filsystemet.

<if $gconfig{'os_type'} =~ /linux/>
Linux till錿er inte att quota sl錽 p om inte inst鋖lningen <tt>Anv鋘d
quota</tt> har slagits p f鰎 filsystemet i modulen Diskar och filsystem.
Om inget filsystem har denna inst鋖lning p kommer inte heller n錱ot att
visas p startsidan.
</if>

Nedanf鰎 filsystemslistan finns en knapp f鰎 att visa alla quota f鰎 en
viss anv鋘dare. Denna kan endast anv鋘das om minst ett filsystem anv鋘der
quota. P samma s鋞t kommer det att finnas en knapp f鰎 att visa
gruppquota om minst ett filsystem st鰀jer och anv鋘der detta.

<hr>

  07070100045575000081a40000000000000002000000013ac03895000006bf000000200000000000000000000000000000002700000003reloc/quota/help/intro.zh_TW.Big5.html    <header>合盒皌肂</header>

<h3>虏ざ</h3>
合盒皌肂琌北ㄏノ┪竤舱ㄏノ合盒丁よΑ. 癸–郎╰参眤常砞﹚癸合盒丁┪郎计. 琘ㄇ Unix ╰参琵眤癸竤舱い┮Τㄏノ砞﹚. <p>

合盒皌肂砞﹚セ狠 Unix 郎╰参. 眖ㄤ诀本更 NFS 郎╰参琌狝竟诀合盒皌肂. τ獶 Unix 郎╰参ㄒ MS-DOS ┪ ISO9660 ぃや穿合盒皌肂. <p>

癸–ㄏノ砞﹚贺砞﹚:
<dl>
<dt><b>硁┦跋遏计砞﹚</b>
<dd>牡癟瞷玡, す砛ㄏノ合盒丁 (跋遏计).
<dt><b>祑┦跋遏计砞﹚t</b>
<dd>ㄏノ┮ㄏノ程合盒丁 (跋遏计).
<dt><b>硁┦郎</b>
<dd>牡癟瞷玡, す砛局Τ郎计ヘ.
<dt><b>祑┦郎</b>
<dd>ㄏノ┮局Τ程郎计ヘ.
</dl>
合盒跋遏硄盽 512 ┪ 1024 じ舱, ㄌ沮眤穨╰参τぃ. 讽璸衡皌肂, ┮Τ郎常穦秈程钡跋遏计. ┮ㄏ琌郎穦ㄏノ跋遏. <p>

癸郎皌肂, ㄏノ┮局Τ–ヘ魁, 砞称, 才腹硈钡┪郎常穦砆仓璸计ぇい. м砃τē, 郎皌肂龟悔┮ㄏノ <i>inode</i> 计ヘ. <p>

<h3>合盒皌肂家舱</h3>
硂家舱璶礶陪ボや穿皌肂セ狠郎╰参. 狦郎╰参合盒皌肂竒币笆, 眤ウ隔畖陪ボㄤ–ㄏノ皌肂; 狦﹟ゼ币笆, 眤<tt>币笆合盒皌肂</tt>秙币笆郎╰参皌肂. <p>

<if $gconfig{'os_type'} =~ /linux/>
癸 Linux 穨╰参τē, 埃獶眤Τ<tt>合盒籔呼隔郎╰参</tt>家舱い砞﹚赣郎╰参<tt>ㄏノ合盒皌肂</tt>匡兜, 玥眤盢ぃ币笆合盒皌肂. 狦眤⊿Τ郎╰参Τ砞﹚硂匡兜, 硂盢ぃ穦ヴ郎╰参. <p>
</if>

郎╰参秙琌ノ陪ボ匡拒ㄏノ场皌肂. 硂盢穦陪ボぶΤ砞﹚郎╰参皌肂ㄏノ. , 狦Τ郎╰参砞﹚竤舱皌肂, 盢穦Τ秙郡カ┮匡拒竤舱皌肂秙. <p>

<hr>

 07070100045576000081a40000000000000002000000013ac03895000005ae000000200000000000000000000000000000002500000003reloc/quota/help/list_groups.es.html  <header>Grupos de Sistemas de Archivo</header>

El sistema de cuotas de Unix cuenta todos los archivos propiedad de un grupo
para ver la cuota de ese grupo. Los grupos actuales en que est un usuario que
es propietario de archivos, no tienen importancia. <p>

Esta p醙ina lista todos los grupos que tienen cuotas en alg鷑 sistema de
archivos. Puedes hacer click en un nombre de grupo para editar sus cuotas o
seleccionar un grupo del men bajo la lista y hacer click en <tt>Editar
Cuota</tt>. Si un grupo no est en la lista, no hay l韒ite en el n鷐ero de
archivos o de cantidad de espacio en disco que puede usar. <p>

M醩 all de la lista de grupo est el bot髇 de <tt>Editar Tiempos de
Gracia</tt>. Este te lleva a un formulario para editar la cantidad de tiempo
que un grupo est autorizado a exceder su l韒ite de soft antes de ser prevenido
de que utilice m醩 espacio de disco. <p>

Hacer click en el bot髇 <tt>Revisar Cuotas</tt> realiza una exploraci髇
de todo el sistema de archivos para traer toda la utilizaci髇 de los bloques
y archivos de cada grupo hasta la fecha. Esto puede ser necesario si se han
desactivado las cuotas durante alg鷑 tiempo o si s髄o han sido activadas para
algunos grupos. <p>

En la parte inerior de la p醙ina hay un formulario para poder poner las
cuotas iniciales de bloque y archivo de los nuevos grupos. 蓅tas se aplicar醤
s髄o para los grupos creados mediante el m骴ulo de Webmin de Usuarios y
Grupos. <p>

<hr>


  07070100045577000081a40000000000000002000000013ac03895000005a2000000200000000000000000000000000000002500000003reloc/quota/help/list_groups.fr.html  <header>Syst鑝e de Fichier pour Groupes</header>

Le syst鑝e quota Unix compte tous les fichiers appartenant  un groupe formant le quota de ce groupe.  Les groupes r閑ls dans lesquels l'utilisateur qui poss鑔e le fichier est dedans n'importe pas. <p>

Cette page liste tous les groupes qui ont des quotas sur un certain syst鑝e de fichier. Vous pouvez cliquer sur un nom de groupe pour 閐iteur leurs quotas, ou choisir un groupe  partir du menu sous la liste et cliquer sur <tt>蒬iter Quotas</tt>.  Si un groupe n'est pas dans la liste c'est qu'il n'a aucune limite sur le nombre de fichier ou d'espace disque qu'il peut utiliser.<p>

Sous la liste de groupes se trouve le bouton <tt>蒬iter le Temps de Gr鈉e</tt>.  Ceci vous am鑞e  une page pour le temps allou  un groupe de d閜asser sa limite douce avant d'阾re emp阠h d'utiliser plus d'espace disque. <p>

Cliquer le bouton <tt>V閞ification des Quotas</tt> ex閏ute un balayage du syst鑝e de fichier entier pour calculer l'utilisation de bloc et de fichier par chaque groupe. Ceci peut 阾re n閏essaire si les quotas ont 閠 interrompus quelque temps ou s'il vienne d'阾re mit effectif pour un certain groupe. <p>

En bas de la page se trouve un formulaire pour configurer le nombre de bloc initial et de fichier pour de nouveaux groupes.  Ceux-ci seront seulement appliqu閟 pour des groupes cr殚s avec le module de gestion d'utilisateurs et de groupe de Webmin.<p>

<hr>
  07070100045578000081a40000000000000002000000013ac03895000004b8000000200000000000000000000000000000002200000003reloc/quota/help/list_groups.html <header>Filesystem Groups</header>

The Unix quota system counts all files owned by a group towards
the quota for that group. The actual groups in which the user who owns
the file is in does not matter. <p>

This page lists all groups who have quotas on some filesystem. You can
click on a group name to edit their quota, or select a group from the menu
below the list and click on <tt>Edit Quota</tt>. If a group is not on
the list there is no limit on the number of files or the amount of disk
space it may use. <p>

Beneath the list of groups is the <tt>Edit Grace Times</tt> button. This
takes you to a form for editing the amount of time a group is allowed to
exceed his soft limit before being prevented from using any more disk space. <p>

Clicking the <tt>Check Quotas</tt> button performs a scan of the entire
filesystem to bring the block and file usage by each group up to date. This
may be necessary is quotas have been disabled for some time, or if they
have just been enabled for some group. <p>

At the bottom of the page is a form for setting the initial block and
file quotas for new groups. These will only be applied for groups created
with the Webmin Users and Groups module. <p>

<hr>


07070100045579000081a40000000000000002000000013ac0389500000567000000200000000000000000000000000000002500000003reloc/quota/help/list_groups.pl.html  <header>Grupy systemu plik體</header>

Uniksowy system quota system zlicza wszystkie pliki nale勘ce do danej grupy
okre秎aj眂 quota dla tej grupy. Bie勘ca grupa, do kt髍ej nale縴 u縴tkownik
b阣眂y w砤禼icielem pliku nie ma znaczenia. <p>

Ta strona zawiera list wszystkich grup, kt髍e maj quota na pewnym systemie
plik體. Aby zmieni ich quota mo縠sz nacisn辨 nazw grupy lub wybra grup
z&nbsp;menu poni縠j listy i nacisn辨 <tt>Zmie quota</tt>. Je秎i grupy nie
ma na li禼ie, nie ma ona ogranicze na liczb plik體 ani na rozmiar
przestrzeni dyskowej, kt髍ej mo縠 u縴wa. <p>

Poni縠j listy grup znajduje si przycisk <tt>Zmie czasy ulgi</tt>. Prowadzi
on do formularza pozwalaj眂ego na zmiany okres體 czasu, przez jakie wolno
grupie przekracza mi阫ki limit, zanim zostanie jej uniemo縧iwione
zaalokowanie dodatkowej przestrzeni dyskowej. <p>

Naciskaj眂 przycisk <tt>Sprawd quota</tt> powoduje przejrzenie ca砮go
systemu plik體 aby okre秎i aktualn ilo舵 blok體 i plik體 u縴wanych przez
ka縟 z&nbsp;grup. Mo縠 byc to niezb阣ne, je秎i quota by硂 wy潮czone przez
pewien czas lub je秎i zosta硂 w砤秐ie w潮czone dla pewnej grupy. <p>

Na dole strony znajduje si formularz do ustawiania pocz眛kowych limit體
quota dla blok體 i&nbsp;plik體 dla nowych grup. Te warto禼i s stosowane
jedynie w&nbsp;przypadku tworzenia grup przez modu U縴tkownicy i&nbsp;Grupy
Webmina. <p>

<hr>
 0707010004557a000081a40000000000000002000000013ac0389500000506000000200000000000000000000000000000002500000003reloc/quota/help/list_groups.sv.html  <header>Filsystemsgrupper</header>

Quotasystemet p Unix r鋕nar ihop alla filer som 鋑s av en grupp n鋜
gruppquota ska kontrolleras. Det spelar ingen roll vilka grupper
anv鋘daren som 鋑er filerna 鋜 med i.

<p>P denna sida visas alla grupper som har quota p n錱ot filsystem. H鋜
kan man klicka p ett gruppnamn f鰎 att 鋘dra dess quota eller v鋖ja en
grupp fr錸 menyn nedanf鰎 listan och trycka p <tt>膎dra quota</tt>. Om
n錱on grupp inte finns med p listan finns det ingen begr鋘sning f鰎
hur m錸ga filer eller hur mycket diskutrymme som gruppen f錼 anv鋘da.

<p>Nedanf鰎 listan finns knappen <tt>膎dra tidsintervall</tt>. N鋜 man
klickar p den f錼 man upp ett formul鋜 d鋜 man kan st鋖la in den
tid som en grupp f錼 鰒erskrida sin mjuka gr鋘s innan den hindras fr錸 att
utnyttja mer diskutrymme.

<p>Om man trycker p <tt>Kontrollera quota</tt> l鋝er systemet igenom hela
filsystemet och kontrollerar block- och filutnyttjandet f鰎 alla grupper.
Detta kan vara n鰀v鋘digt att g鰎a om quota har varit avst鋘gt n錱on tid
eller om det just har slagits p f鰎 n錱on grupp.

<p>L鋘gst ned p sidan finns ett formul鋜 f鰎 att definiera block-
och filquota f鰎 nya grupper. Dessa inst鋖lningar g鋖ler endast f鰎 de
grupper som skapas med Webmin-modulen Anv鋘dare och grupper.

<hr>


  0707010004557b000081a40000000000000002000000013ac03895000004f4000000200000000000000000000000000000002400000003reloc/quota/help/list_users.es.html   <header>Usuarios de Sistemas de Archivo</header>

Esta p醙ina lista todos los usuarios que tienen cuotas en alg鷑 sistema de
archivos. Puedes hacer click en un nombre de usuario para editar sus cuotas o
seleccionar un usuario del men bajo la lista y hacer click en <tt>Editar
Cuota</tt>. Si un usuario no est en la lista no hay l韒ite en el n鷐ero de
archivos o de cantidad de espacio en disco que puede usar. <p>

M醩 all de la lista de usuarios est el bot髇 de <tt>Editar Tiempos de
Gracia</tt>. Este te lleva a un formulario para editar la cantidad de tiempo
que un usuario est autorizado a exceder su l韒ite de soft antes de ser
prevenido de que no utilice m醩 espacio de disco. <p>

Hacer click en el bot髇 <tt>Revisar Cuotas</tt> realiza una exploraci髇
de todo el sistema de archivos para traer toda la utilizaci髇 de los bloques
y archivos de cada usuario hasta la fecha. Esto puede ser necesario si se han
desactivado las cuotas durante alg鷑 tiempo o si s髄o han sido activadas para
algunos usuarios. <p>

En la parte inferior de la p醙ina hay un formulario para poder poner las
cuotas iniciales de bloque y archivo de los nuevos usuarios. Estas se aplicar醤
s髄o para los usuarios creados mediante el m骴ulo de Webmin de Usuarios y
Grupos. <p>

<hr>


0707010004557c000081a40000000000000002000000013ac03895000004d0000000200000000000000000000000000000002400000003reloc/quota/help/list_users.fr.html   <header>Syst鑝e de Fichier pour Usagers</header>

Cette page liste tous les usagers qui ont des quotas sur un certain syst鑝e de fichier. Vous pouvez cliquer sur un nom d'usager pour 閐iteur ses quotas, ou choisir un usager  partir du menu sous la liste et cliquer sur <tt>蒬iter Quotas</tt>.  Si un usager n'est pas dans la liste c'est qu'il n'a aucune limite sur le nombre de fichier ou d'espace disque qu'il peut utiliser.<p>

Sous la liste d'usager se trouve le bouton <tt>蒬iter le Temps de Gr鈉e</tt>.  Ceci vous am鑞e  une page pour le temps permit  un usager de d閜asser sa limite douce avant d'阾re emp阠h d'utiliser plus d'espace disque. <p>

Cliquer le bouton <tt>V閞ification des Quotas</tt> ex閏ute un balayage du syst鑝e de fichier entier pour calculer l'utilisation de bloc et de fichier par chaque usager. Ceci peut 阾re n閏essaire si les quotas ont 閠 interrompus quelque temps ou s'il vienne d'阾re mit effectif pour un certain usager. <p>

En bas de la page se trouve un formulaire pour configurer le nombre de bloc initial et de fichier pour de nouveaux usagers.  Ceux-ci seront seulement appliqu閟 pour des usagers cr殚s avec le module de gestion d'utilisateurs et de groupe de Webmin.<p>

<hr>
0707010004557d000081a40000000000000002000000013ac0389500000400000000200000000000000000000000000000002100000003reloc/quota/help/list_users.html  <header>Filesystem Users</header>

This page lists all users who have quotas on some filesystem. You can
click on a username to edit their quota, or select a user from the menu
below the list and click on <tt>Edit Quota</tt>. If a user is not on
the list there is no limit on the number of files or the amount of disk
space he may use. <p>

Beneath the list of users is the <tt>Edit Grace Times</tt> button. This
takes you to a form for editing the amount of time a user is allowed to
exceed his soft limit before being prevented from using any more disk space. <p>

Clicking the <tt>Check Quotas</tt> button performs a scan of the entire
filesystem to bring the block and file usage by each user up to date. This
may be necessary is quotas have been disabled for some time, or if they
have just been enabled for some user. <p>

At the bottom of the page is a form for setting the initial block and
file quotas for new users. These will only be applied for users created
with the Webmin Users and Groups module. <p>

<hr>


0707010004557e000081a40000000000000002000000013ac03895000004ee000000200000000000000000000000000000002400000003reloc/quota/help/list_users.pl.html   <header>U縴tkownicy systemu plik體</header>

Ta strona zawiera list wszystkich u縴tkownik體, kt髍zy maj quota na pewnym
systemie plik體. Aby zmieni ich quota mo縠sz nacisn辨 nazw u縴tkownika lub
wybra u縴tkownika z&nbsp;menu poni縠j listy i nacisn辨 <tt>Zmie
quota</tt>. Je秎i u縴tkownika nie ma na li禼ie, nie ma on ogranicze na
liczb plik體 ani na rozmiar przestrzeni dyskowej, kt髍ej mo縠 u縴wa. <p>

Poni縠j listy u縴tkownik體 znajduje si przycisk <tt>Zmie czasy ulgi</tt>.
Prowadzi on do formularza pozwalaj眂ego na zmiany okres體 czasu, przez jakie
wolno u縴tkownikowi przekracza mi阫ki limit, zanim zostanie mu
uniemo縧iwione zaalokowanie dodatkowej przestrzeni dyskowej. <p>

Naciskaj眂 przycisk <tt>Sprawd quota</tt> powoduje przejrzenie ca砮go
systemu plik體 aby okre秎i aktualn ilo舵 blok體 i plik體 u縴wanych przez
ka縟ego z&nbsp;u縴tkownik體. Mo縠 byc to niezb阣ne, je秎i quota by硂
wy潮czone przez pewien czas lub je秎i zosta硂 w砤秐ie w潮czone dla pewnego
u縴tkownika. <p>

Na dole strony znajduje si formularz do ustawiania pocz眛kowych limit體
quota dla blok體 i&nbsp;plik體 dla nowych u縴tkownik體. Te warto禼i s
stosowane jedynie w&nbsp;przypadku tworzenia u縴tkownik體 przez modu
U縴tkownicy i&nbsp;grupy Webmina. <p>

<hr>
  0707010004557f000081a40000000000000002000000013ac0389500000477000000200000000000000000000000000000002400000003reloc/quota/help/list_users.sv.html   <header>Filsystemsanv鋘dare</header>

P denna sida visas alla anv鋘dare som har quota p n錱ot filsystem. H鋜
kan man klicka p ett anv鋘darnamn f鰎 att 鋘dra dess quota eller v鋖ja en
anv鋘dare fr錸 menyn nedanf鰎 listan och trycka p <tt>膎dra quota</tt>. Om
n錱on anv鋘dare inte finns med p listan finns det ingen begr鋘sning f鰎
hur m錸ga filer eller hur mycket diskutrymme den anv鋘daren f錼 utnyttja.

<p>Nedanf鰎 listan finns knappen <tt>膎dra tidsintervall</tt>. N鋜 man
klickar p den f錼 man upp ett formul鋜 d鋜 man kan st鋖la in den
tid som en anv鋘dare f錼 鰒erskrida sin mjuka gr鋘s innan den hindras fr錸 att
utnyttja mer diskutrymme.

<p>Om man trycker p <tt>Kontrollera quota</tt> l鋝er systemet igenom hela
filsystemet och kontrollerar block- och filutnyttjandet f鰎 alla anv鋘dare.
Detta kan vara n鰀v鋘digt att g鰎a om quota har varit avst鋘gt n錱on tid
eller om det just har slagits p f鰎 n錱on anv鋘dare.

<p>L鋘gst ned p sidan finns ett formul鋜 f鰎 att definiera block-
och filquota f鰎 nya anv鋘dare. Dessa inst鋖lningar g鋖ler endast f鰎 de
anv鋘dare som skapas med Webmin-modulen Anv鋘dare och grupper.

<hr>


 07070100045580000081a40000000000000002000000013ac03895000002a2000000200000000000000000000000000000002c00000003reloc/quota/help/list_users.zh_TW.Big5.html   <header>郎╰参ㄏノ</header>

硂┮Τ郎╰参Τ砞﹚合盒皌肂ㄏノ. 眤ㄏノ嘿絪ㄤ皌肂, ┪眖匡拒ㄏノ<tt>絪胯皌肂</tt>. 狦ㄏノぃい, 硂ボ赣ㄏノ郎╰参⊿Τヴ皌肂. <p>

ㄏノㄏノ紆┦ノ<tt>絪胯紆┦丁</tt>秙北. 硂盢琵眤絪胯ㄏノ禬筁ㄤ硁┦膥尿眔丁丁. <p>

<tt>浪琩皌肂</tt>秙苯磞郎╰参ㄏノ┮ㄏノ丁籔计ヘ穝. 合盒皌肂纯竒砆闽超猵, ┪砞﹚ㄏノ皌肂ぇ. 硂笆盢琌ゲ璶. <p>

セ┏狠虫砞﹚穝ㄏノ箇砞跋遏籔郎计ヘ砞﹚. 硂甅ノノ Webmin <tt>ㄏノ籔竤舱</tt>家舱┮ミ穝ㄏノ. <p>

<hr>


  07070100045581000081a40000000000000002000000013ac03895000002ab000000200000000000000000000000000000002600000003reloc/quota/help/user_filesys.es.html <header>Cuotas de Usuario</header>

Esta p醙ina lista todos los sistemas de archivo en que alg鷑 usuario tenga
cuota. Puedes hacer click en un sistema de archivos de la lista para editar
su cuota o seleccionar un sistema de archivos del men inferior y hacer
click en <tt>Editar Cuota</tt>. Si un sistema de archivos no est en la
lista no hay l韒ite en el n鷐ero de archivos o cantidad de espacio que el
usuario puede ocupar en ese sistema de archivos. <p>

Haciendo click en el bot髇 <tt>Copiar Cuotas</tt> te permite copiar todas
las cuotas de este usuario a otros usuarios. Esto puede ser 鷗il si quieres
reservar el mismo espacio de disco para un n鷐ero de usuarios. <p>

<hr>

 07070100045582000081a40000000000000002000000013ac03895000002c1000000200000000000000000000000000000002600000003reloc/quota/help/user_filesys.fr.html <header>Quotas des Usagers</header>

Cette page liste tout les syst鑝es de fichier sur lesquels des usagers ont un quota.  Vous pouvez cliquer sur un syst鑝e de fichier de la liste pour 閐iter son quota ou s閘ectionner un syst鑝e de fichier du menu en dessous en cliquant sur <tt>蒬iter Quotas</tt>.   Si un syst鑝e de fichier n'est pas dans la liste c'est qu'il n'a aucune limite du nombre de fichiers ou d'espaces disque qu'un usager peut occuper sur ce syst鑝e de fichier.<p>

Cliquer sur le bouton <tt>Copier Quotas</tt> vous permettra de copier tous les quotas de cet usager  d'autres usagers.  Ceci peut 阾re utile si vous voulez allouer  un nombre d'usager le m阭e espace disque.<p>

<hr>
   07070100045583000081a40000000000000002000000013ac0389500000252000000200000000000000000000000000000002300000003reloc/quota/help/user_filesys.html    <header>User Quotas</header>

This page lists all the filesystems on which some user has a quota. You can
click on a filesystem from the list to edit its quota, or select a filesystem
from the menu below and click on <tt>Edit Quota</tt>. If a filesystem is not
on the list there is no limit to the number of files or amount of space the
user may occupy on that filesystem. <p>

Clicking the <tt>Copy Quotas</tt> button allows you to copy all quotas for
this user to one or more other users. This can be useful if you want to
allocate a number of users the same amount of disk space. <p>

<hr>

  07070100045584000081a40000000000000002000000013ac03895000002e9000000200000000000000000000000000000002600000003reloc/quota/help/user_filesys.pl.html <header>Quota dla u縴tkownik體</header>

Na tej stronie zobaczysz liste system體 plik體, na kt髍ych ustawiono quota
dla pewnego u縴tkownika. Mo縠sz nacisn辨 na system plik體 z&nbsp;listy, aby
zmieni na nim ustawienia quota lub wybra system plik體 z&nbsp;menu poni縠j
i&nbsp;nacisn辨 <tt>Zmie quota</tt>. Je秎i jaki system plik體 nie znajduje
si na li禼ie, to nie ma na nim ogranicze na liczbe plik體 ani na rozmiar
przestrzeni dyskowej zaj阾ej przez tego u縴tkownika. <p>

Naciskaj眂 przycisk <tt>Kopiuj quota</tt> mo縠sz skopiowa wszystkie limity
ustawione dla tego u縴tkownika do jednego lub kilku innych u縴tkownik體.
Mo縠 to by u縴teczne je縠li, chcesz przydzieli kilku u縴tkownikom taki sam
rozmiar przestrzeni dyskowej. <p>

<hr>
   07070100045585000081a40000000000000002000000013ac038950000024f000000200000000000000000000000000000002600000003reloc/quota/help/user_filesys.sv.html <header>Quota f鰎 anv鋘dare</header>

P denna sida visas alla filsystem d鋜 n錱on anv鋘dare har quota. Klicka p
ett filsystem i listan f鰎 att 鋘dra quota eller v鋖j ett filsystem fr錸 menyn
nedan och tryck p <tt>膎dra quota</tt>. Om n錱ot filsystem inte finns med
p listan 鋜 antalet filer och utrymmet som anv鋘daren f錼 anv鋘da obegr鋘sat
p detta filsystem.

<p>Tryck p <tt>Kopiera quota</tt> f鰎 att kopiera quota fr錸 denna anv鋘dare
till en eller flera andra anv鋘dare. Detta 鋜 anv鋘dbart om man vill att
m錸ga anv鋘dare ska ha tillg錸g till lika mycket diskutrymme var.

<hr>

 07070100045586000081a40000000000000002000000013ac03895000001af000000200000000000000000000000000000002e00000003reloc/quota/help/user_filesys.zh_TW.Big5.html <header>ㄏノ皌肂</header>

硂郎╰参Τ砞﹚ㄏノ皌肂冈灿戈. 眤い郎╰参嘿絪胯皌肂; ┪虫い匡拒璶跑郎╰参, <tt>絪胯合盒皌肂</tt>跑ぇ. 狦郎╰参ぃい, ボ赣郎╰参⊿Τ砞﹚郎计ヘ┪皌肂砞﹚. <p>

<tt>狡籹皌肂</tt>秙琵眤狡籹硂ㄏノ皌肂倒ㄤㄏノ. 讽眤稱璶ㄏㄤㄏノΤ皌肂, 硂盢穦Τノ. <p>

<hr>

 07070100045587000081a40000000000000002000000013ac03895000001ed000000200000000000000000000000000000002400000003reloc/quota/help/user_grace.es.html   <header>Tiempo de Gracia para el Usuario</header>

Los tiempos de gracia son la cantidad de tiempo que un usuario puede
exceder su l韒ite de soft antes de ser prevenido de no utilizar m醩 espacio
de disco o de no crear m醩 archivos. Una vez que el usuario excede su l韒ite
de bloque de soft, tiene la cantidad de tiempo especificado para reducir
su utilizaci髇 de disco bajo el l韒ite antes de que sea prevenido de no usar
m醩 bloques. Lo mismo se aplica al l韒ite de archivos por soft.
<hr>

   07070100045588000081a40000000000000002000000013ac0389500000164000000200000000000000000000000000000002400000003reloc/quota/help/user_grace.fr.html   <header>Temps de Gr鈉e d'un Usager</header>

Le temps de gr鈉e est le temps qu'un usager puisse exc閐er sa limite douce avant de ne plus pouvoir utiliser d'espace disque ou cr閑r plus de fichiers.  Une fois qu'un groupe a exc閐 sa limite douce, il a le temps sp閏ifi pour lib閞er de l'espace disque sous la limite avant qu'elle ne s'applique.

<hr>
07070100045589000081a40000000000000002000000013ac0389500000192000000200000000000000000000000000000002100000003reloc/quota/help/user_grace.html  <header>User Grace Times</header>

Grace times are the amount of time a user may exceed his soft limit by
before being prevented from using any more disk space or creating any
more files. Once a user exceeds his soft block limit, he has the specified
amount of time to reduce his disk usage below the limit before he is
prevented from using more blocks. The same applies for the soft file limit.
<hr>

  0707010004558a000081a40000000000000002000000013ac0389500000221000000200000000000000000000000000000002400000003reloc/quota/help/user_grace.pl.html   <header>Czasy ulgi dla u縴tkownika</header>

Czasy ulgi s okresem czasu, na jaki u縴tkownik mo縠 przekroczy mi阫ki
limit quota, zanim zostan zablokowane mo縧iwo禼i u縴cia jakiejkolwiek
dodatkowej przestrzeni dyskowej i&nbsp;tworzenia nowych plik體. Od chwili,
gdy u縴tkownik przekroczy mi阫ki limit, ma on okre秎ony czas na to, by
zmniejszy rozmiar zajmowanej przestrzeni dyskowej poni縠j limitu. Je秎i
tego nie uczyni zostanie zablokowana mo縧iwo舵 u縴cia przez niego nowych
blok體. To samo stosuje sie do mi阫kiego limitu dla plik體.
<hr>
   0707010004558b000081a40000000000000002000000013ac03895000001b0000000200000000000000000000000000000002400000003reloc/quota/help/user_grace.sv.html   <header>Tidsintervall f鰎 anv鋘dare</header>

H鋜 anger du den tid som en anv鋘dare f錼 鰒erskrida sin mjuka
gr鋘s innan den hindras att anv鋘da mer diskutrymme och skapa nya
filer. N鋜 en anv鋘dare 鰒erskrider sin mjuka blockgr鋘s har den det
angivna tidsintervallet p sig att minska diskanv鋘dningen, s att gr鋘sen
inte 鰒erskrids, innan den hindras att anv鋘da fler block. Den mjuka
filgr鋘sen fungerar p liknande s鋞t.
<hr>

0707010004558c000081a40000000000000002000000013ac03895000000dd000000200000000000000000000000000000002c00000003reloc/quota/help/user_grace.zh_TW.Big5.html   <header>ㄏノ</header>

紆┦丁琌す砛ㄏノ禬筁ㄤ硁┦丁. 硂琿丁ぇい, ㄏノご礛ㄏノ合盒丁┪ミ郎. 讽ㄏノㄏノ禬筁ㄤ硁┦丁, ウ穦砞﹚丁璶―ㄏノ丁ぇず睲埃ㄤ丁.
<hr>

   070701000482be000081a40000000000000002000000013ac0389500001858000000200000000000000000000000000000001800000003reloc/quota/hpux-lib.pl   # hpux-lib.pl
# Quota functions for HPUX

# quotas_init()
sub quotas_init
{
return undef;
}

# quotas_supported()
# Returns 1 for user quotas, 2 for group quotas or 3 for both
sub quotas_supported
{
return 1;
}

# free_space(filesystem)
# Returns an array containing  btotal, bfree, ftotal, ffree
sub free_space
{
local($out);
$out = `df -t $_[0]`;
$out =~ /(\d+) blocks\s+(\d+) files\n.*\s+(\d+) blocks\s+(\d+) files/;
return ($3, $1, $4, $2);
}

# quota_can(&mnttab, &fstab)
# Can this filesystem type support quotas?
#  0 = No quota support (or not turned on in /etc/fstab)
#  1 = User quotas only
#  2 = Group quotas only
#  3 = User and group quotas
sub quota_can
{
return $_[0]->[2] eq "hfs" || $_[0]->[2] eq "vxfs" ? 1 : 0;
}

# quota_now(&mnttab, &fstab)
# Are quotas currently active?
#  0 = Not active
#  1 = User quotas active
#  2 = Group quotas active
#  3 = Both active
sub quota_now
{
return $_[0]->[3] =~ /,quota/ || $_[0]->[3] =~ /^quota/ ? 1 : 0;
}

# filesystem_users(filesystem)
# Fills the array %user with information about all users with quotas
# on this filesystem. This may not be all users on the system..
sub filesystem_users
{
local($rep, @rep, $n, $newfmt);
$rep = `$config{'user_repquota_command'} $_[0] 2>&1`;
if ($?) { return -1; }
@rep = split(/\n/, $rep); @rep = @rep[3..$#rep];
`uname -r` =~ /(\d+)\.(\d+)/;
if ($1 > 10 || $1 == 10 && $2 >= 20) { $newfmt = 1; }
for($n=0; $n<@rep; $n++) {
	if ($newfmt && $rep[$n] =~ /(\S+)\s+..(.{7})(.{7})(.{7}).{13}(.{7})(.{7})(.{7})/ || !$newfmt && $rep[$n] =~ /(\S+)\s+..(\d+)\s+(\d+)\s+(\d+)\s+.{11}(\d+)\s+(\d+)\s+(\d+)/) {
		$user{$n,'user'} = $1;
		$user{$n,'ublocks'} = int($2);
		$user{$n,'sblocks'} = int($3);
		$user{$n,'hblocks'} = int($4);
		$user{$n,'ufiles'} = int($5);
		$user{$n,'sfiles'} = int($6);
		$user{$n,'hfiles'} = int($7);
		$user{$n,'user'} =~ s/^#//g;
		}
	}
return $n;
}

# edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles)
sub edit_quota_file
{
local($rv, $line);
foreach $line (split(/\n/, $_[0])) {
	if ($line =~ /^fs (\S+) blocks \(soft = (\d+), hard = (\d+)\) inodes \(soft = (\d+), hard = (\d+)\)$/ && $1 eq $_[1]) {
		# found line to change
		$line = "fs $_[1] blocks (soft = $_[2], hard = $_[3]) inodes (soft = $_[4], hard = $_[5])";
		}
	$rv .= "$line\n";
	}
return $rv;
}

# quotaon(filesystem, mode)
# Activate quotas and create quota file for some filesystem. The mode can
# be 1 for user only, 2 for group only or 3 for user and group
sub quotaon
{
local($qf, $out);
$qf = "$_[0]/quotas";
if (!(-r $qf)) {
	open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
	chmod(0600, $qf);
	}
$out = &backquote_logged("$config{'user_quotaon_command'} $_[0] 2>&1");
if ($?) { return $out; }
return undef;
}

# quotaoff(filesystem, mode)
# Turn off quotas for some filesystem
sub quotaoff
{
local($out);
$out = &backquote_logged("$config{'user_quotaoff_command'} $_[0] 2>&1");
if ($?) { return $out; }
return undef;
}

# quotacheck(filesystem, mode)
# Runs quotacheck on some filesystem
sub quotacheck
{
$out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1");
if ($?) { return $out; }
return undef;
}

# copy_user_quota(user, [user]+)
# Copy the quotas for some user to many others
sub copy_user_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'user_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# user_filesystems(user)
# Fills the array %filesys with details of all filesystems some user has
# quotas on
sub user_filesystems
{
local($n, $_);
open(QUOTA, "$config{'user_quota_command'} $_[0] |");
$n=0; while(<QUOTA>) {
	chop;
	if (/^(Disk|Filesystem)/) { next; }
	if (/^(\S+)$/) {
		# Bogus wrapped line!
		$filesys{$n,'filesys'} = $1;
		local $nl = <QUOTA>;
		if ($nl =~ /^\s+(\d+)\s+(\d+)\s+(\d+)\s.{0,15}\s(\d+)\s+(\d+)\s+(\d+)/ ||
		    $nl =~ /^.{13}(.{7})(.{7})(.{7}).{12}(.{7})(.{7})(.{7})/) {
			$filesys{$n,'ublocks'} = int($1);
			$filesys{$n,'sblocks'} = int($2);
			$filesys{$n,'hblocks'} = int($3);
			$filesys{$n,'ufiles'} = int($4);
			$filesys{$n,'sfiles'} = int($5);
			$filesys{$n,'hfiles'} = int($6);
			$n++;
			}
		}
	elsif (/^(\S+)\s+(\d+)\s+(\d+)\s+(\d+)\s.{0,15}\s(\d+)\s+(\d+)\s+(\d+)/ ||
	       /^(.{13})(.{7})(.{7})(.{7}).{12}(.{7})(.{7})(.{7})/) {
		$filesys{$n,'filesys'} = $1;
		$filesys{$n,'ublocks'} = int($2);
		$filesys{$n,'sblocks'} = int($3);
		$filesys{$n,'hblocks'} = int($4);
		$filesys{$n,'ufiles'} = int($5);
		$filesys{$n,'sfiles'} = int($6);
		$filesys{$n,'hfiles'} = int($7);
		$filesys{$n,'filesys'} =~ s/\s+$//g;
		$n++;
		}
	}
close(QUOTA);
return $n;
}

# get_user_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day, 4=week, 5=month
sub get_user_grace
{
local(@rv);
$ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat";
open(GRACE, "$config{'user_grace_command'} |");
while(<GRACE>) {
	if (/^fs (\S+) blocks time limit = ([0-9\.]+) (\S+), files time limit = ([0-9\.]+) (\S+)/ && $1 eq $_[0]) {
		if ($2 == 0) { push(@rv, 0, 0); }
		else { push(@rv, $2, $name_to_unit{$3}); }
		if ($4 == 0) { push(@rv, 0, 0); }
		else { push(@rv, $4, $name_to_unit{$5}); }
		}
	}
close(GRACE);
return @rv;
}

# default_grace()
# Returns 0 if grace time can be 0, 1 if zero grace means default
sub default_grace
{
return 1;
}

# edit_grace_file(data, filesystem, btime, bunits, ftime, funits)
sub edit_grace_file
{
local($rv, $line);
foreach $line (split(/\n/, $_[0])) {
	if ($line =~ /^fs (\S+) blocks time limit = ([0-9\.]+) (\S+), files time limit = ([0-9\.]+) (\S+)/ && $1 eq $_[1]) {
		# replace this line
		$line = "fs $_[1] blocks time limit = $_[2] $unit_to_name{$_[3]}, files time limit = $_[4] $unit_to_name{$_[5]}";
		}
	$rv .= "$line\n";
	}
return $rv;
}

# grace_units()
# Returns an array of possible units for grace periods
sub grace_units
{
return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'},
	$text{'grace_days'}, $text{'grace_weeks'}, $text{'grace_months'});
}

%name_to_unit = ( "sec", 0, "secs", 0,
		  "min", 1, "mins", 1,
		  "hour", 2, "hours", 2,
		  "day", 3, "days", 3,
		  "week", 4, "weeks", 4,
		  "month", 5, "months", 5
		);
foreach $k (keys %name_to_unit) {
	$unit_to_name{$name_to_unit{$k}} = $k;
	}

1;
07070100049897000041ed0000000000000001000000023ac03c5400000000000000200000000000000000000000000000001300000003reloc/quota/images    07070100049898000081a40000000000000002000000013ac038930000014e000000200000000000000000000000000000001c00000003reloc/quota/images/icon.gif   GIF89a0 0   櫃櫶烫fff!    ,    0 0  ⻊彥隧椽侈..勨H僿d涫
豴n种	觲鲲|5^d絾H[噔鋒凪!
奋aRt=t官S蔴プTm遵7Xg幃|駧发仪2h埛a丕馄懭3鱤晻Wt轺	F蒆堳*竾征%欽┞殺w
{s6隦Z[(1j[%9L澌Z傡G黄沢閤+畿y-嶋]b容*蕲J~没<灋䓖.秊^<-讕/懋煿{惕誕&癄纗_旙S@j5叭 売趱乐睖E嘆9揳AJ0("di	3μ4k  ;  070701000482bf000081e40000000000000002000000013ac0389500000b55000000200000000000000000000000000000001600000003reloc/quota/index.cgi #!/usr/local/bin/perl
# index.cgi
# Display a list of all local filesystems, and allow editing of quotas
# on those which have quotas turned on. The actual turning on of quotas must
# be done in the mount module first.

require './quota-lib.pl';
&header($text{'index_title'}, "", "intro", "quota", 1);
print "<hr>\n";

$err = &quotas_init();
if ($err) {
	print "<p><b>$err</b><p>\n";
	print "<hr>\n";
	&footer("/", $text{'index_return'});
	exit;
	}

@list = &list_filesystems();
if (@list) {
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'index_fs'}</b></td> <td><b>$text{'index_type'}</b></td>\n";
	print "<td><b>$text{'index_mount'}</b></td> <td><b>$text{'index_status'}</b></td>\n";
	if ($access{'enable'}) {
		print "<td><b>$text{'index_action'}</b></td> </tr>\n";
		}
	else { print "</tr>\n"; }
	foreach $f (@list) {
		$qc = $f->[4];
		$qc = $qc&1 if ($access{'gmode'} == 3);
		next if (!$qc);
		next if (!&can_edit_filesys($f->[0]));
		$qn = $f->[5];
		if ($qc == 1) { $msg = $text{'index_quser'}; }
		elsif ($qc == 2) { $msg = $text{'index_qgroup'}; }
		elsif ($qc == 3) { $msg = $text{'index_qboth'}; }
		if ($qn) { $msg .= " $text{'index_active'}"; $chg = $text{'index_disable'}; }
		else { $msg .= " $text{'index_inactive'}"; $chg = $text{'index_enable'}; }
		if ($qn%2 == 1) { $useractive++; }
		if ($qn > 1) { $groupactive++; }

		print "<tr $cb><td>\n";
		$dir = $f->[0];
		if (!$qn) { print $dir; }
		elsif ($qc == 1)
			{ print "<a href=\"list_users.cgi?$dir+$qc\">$dir</a>";}
		elsif ($qc == 2)
			{ print"<a href=\"list_groups.cgi?$dir+$qc\">$dir</a>";}
		elsif ($qc == 3) {
			print "<a href=\"list_users.cgi?$dir+$qc\">$dir (users)</a><br>";
			print "<a href=\"list_groups.cgi?$dir+$qc\">$dir (groups)</a>";
			}
		print "</td>\n";

		print "<td valign=top>",&foreign_call("mount", "fstype_name", $f->[2]),"</td>\n";
		print "<td valign=top>",&foreign_call("mount", "device_name", $f->[1]),"</td>\n";
		print "<td valign=top>$msg</td>\n";
		if ($access{'enable'}) {
			print "<td valign=top><a href=\"activate.cgi?dir=$dir&active=$qn&mode=$qc\">$chg</a></td>\n";
			}

		print "</tr>\n";
		}
	print "</table>\n";
	}
else { print "<b>$text{'index_nosupport'}</b>.<br>\n"; }

print "<table width=100%><tr>\n";
if ($useractive) {
	print "<form action=user_filesys.cgi>\n";
	print "<td><input type=submit value=\"$text{'index_euser'}\">\n";
	print "<input name=user size=8> ",
	      &user_chooser_button("user", 0),"</td></form>\n";
	}
else { print "<td></td>\n"; }

if ($groupactive) {
	print "<form action=group_filesys.cgi>\n";
	print "<td align=right>\n";
	print "<input type=submit value=\"$text{'index_egroup'}\">\n";
	print "<input name=group size=8> ",
	      &group_chooser_button("group", 0, $useractive ? 1 : 0),
	      "</td></form>\n";
	}
else { print "<td></td>\n"; }
print "</tr></table>\n";

print "<hr>\n";
&footer("/", $text{'index_return'});

   0707010004b13b000041ed0000000000000001000000023ac03c5400000000000000200000000000000000000000000000001100000003reloc/quota/lang  0707010004b13c000081a40000000000000002000000013ac0389500002036000000200000000000000000000000000000001400000003reloc/quota/lang/en   quota_unlimited=Unlimited

acl_fss=Filesystems this user can edit
acl_fall=All filesystems
acl_fsel=Selected..
acl_quotaon=Can enable and disable quotas?
acl_quotanew=Can configure quotas for new users?
acl_ugrace=Can edit user grace times?
acl_vtotal=Can view total disk space?
acl_ggrace=Can edit group grace times?
acl_uquota=Users this user can edit quotas for
acl_gquota=Groups this user can edit quotas for
acl_uall= All users
acl_uonly= Only users
acl_uexcept= All except users
acl_ugroup= Users with primary group
acl_gall= All groups
acl_gnone= No groups
acl_gonly= Only groups
acl_gexcept= All except groups

activate_eallow=You are not allowed to enable or disable quotas on this filesystem
activate_eon=Failed to turn on quotas
activate_eoff=Failed to turn off quotas

check_title=Check Quotas
check_return=$1 list
check_ecannot=You cannot check quotas on this filesystem
check_running=The <tt>quotacheck</tt> command is now being run to check the block and file usage on <tt>$1</tt>. This may take a long time for a very large filesystem...
check_done=... Done. 
check_rgroup=group
check_ruser=user

cgroup_efail=Failed to copy quotas
cgroup_ecannot=You cannot copy quotas
cgroup_egallow=You are not allowed to copy the quotas of this group
cgroup_enogroup=No groups to copy to
cgroup_eallowto=You are not allowed to copy quotas to '$1'

cgform_title=Copy Quotas
cgform_return=group quota
cgform_ecannot=You cannot copy quotas
cgform_egroup=You are not allowed to copy the quotas of this group
cgform_copyto=Copy quotas for <tt>$1</tt> on ALL filesystems to ...
cgform_all=All groups on your system
cgform_select=Selected groups
cgform_contain=Groups containing users
cgform_doit=Copy

cuser_efail=Failed to copy quotas
cuser_ecannot=You cannot copy quotas
cuser_euallow=You are not allowed to copy the quotas of this user
cuser_enouser=No users to copy to
cuser_eallowto=You are not allowed to copy quotas to '$1'

cuform_title=Copy Quotas
cuform_return=user quota
cuform_ecannot=You cannot copy quotas
cuform_euallow=You are not allowed to copy the quotas of this user
cuform_copyto=Copy quotas for <tt>$1</tt> on ALL filesystems to ...
cuform_all=All users on your system
cuform_select=Selected users
cuform_members=Members of selected groups
cuform_doit=Copy

egroup_title=Edit Quota
egroup_freturn=filesystem list
egroup_greturn=group list
egroup_eallowgr=You are not allowed to edit quotas for '$1'
egroup_eallowfs=You are not allowed to edit quotas on this filesystem
egroup_quotas=Quota for <tt>$1</tt> on <tt>$2</tt>
egroup_bused=Blocks Used
egroup_sblimit=Soft Block Limit
egroup_hblimit=Hard Block Limit
egroup_fused=Files Used
egroup_sflimit=Soft File Limit
egroup_hflimit=Hard File Limit
egroup_update=Update
egroup_listall=List All Quotas

euser_title=Edit Quota
euser_freturn=filesystem list
euser_ureturn=user list
euser_eallowus=You are not allowed to edit quotas for '$1'
euser_eallowfs=You are not allowed to edit quotas on this filesystem
euser_quotas=Quota for <tt>$1</tt> on <tt>$2</tt>
euser_bused=Blocks Used
euser_bdisk=Available Blocks on Disk
euser_sblimit=Soft Block Limit
euser_hblimit=Hard Block Limit
euser_fused=Files Used
euser_fdisk=Available Files on Disk
euser_sflimit=Soft File Limit
euser_hflimit=Hard File Limit
euser_update=Update
euser_listall=List All Quotas

gfilesys_title=Group Quotas
gfilesys_return=filesystems list
gfilesys_ecannot=You cannot edit quotas for '$1'
gfilesys_all=All Quotas for 
gfilesys_blocks=Blocks
gfilesys_files=Files
gfilesys_fs=Filesystem
gfilesys_used=Used
gfilesys_soft=Soft Limit
gfilesys_hard=Hard Limit
gfilesys_nogquota=Group <tt>$1</tt> does not have quotas on any filesystem
gfilesys_edit=Edit Quota On:
gfilesys_copy=Copy Quotas

ggracef_title=Grace Times
ggracef_return=group list
ggracef_ecannot=You cannot edit grace times on this filesystem
ggracef_info=Each filesystem has a grace time for block and file quotas. The grace time determines how long a group can remain over the soft limit before no more files are allowed to be created. 
ggracef_graces=Group Grace Times for <tt>$1</tt>
ggracef_block=For block quota
ggracef_file=For file quota
ggracef_update=Update

ggraces_esave=Failed to save grace times
ggraces_eedit=You cannot edit grace times on this filesystem
ggraces_enumber='$1' is not a number

index_quser=User Quotas
index_qgroup=Group Quotas
index_qboth=User and Group Quotas
index_active=Active
index_disable=Disable Quotas
index_inactive=Inactive
index_enable=Enable Quotas
index_title=Disk Quotas
index_fs=Filesystem
index_type=Type
index_mount=Mounted From
index_status=Status
index_action=Action
index_return=index
index_euser=Edit User Quotas:
index_egroup=Edit Group Quotas:
index_nosupport=No local filesystems can support quotas

lgroups_failed=Failed to list groups
lgroups_eallow=You are not allowed to edit quotas on this filesystem
lgroups_title=Filesystem Quotas
lgroups_return=filesystems list
lgroups_toomany=Too many groups have quotas on <tt>$1</tt> to display on one page
lgroups_quotas=All Group Quotas on <tt>$1</tt>
lgroups_blocks=Blocks
lgroups_files=Files
lgroups_group=Group
lgroups_used=Used
lgroups_soft=Soft Limit
lgroups_hard=Hard Limit
lgroups_noquota=No groups have quotas on <tt>$1</tt>
lgroups_equota=Edit Quota For:
lgroups_grace=Edit Grace Times
lgroups_check=Check Quotas

sgroup_egroup=You are not allowed to edit quotas for this group
sgroup_efs=You are not allowed to edit quotas on this filesystem

ssync_ecannot=You cannot set the default quota for this filesystem

suser_euser=You are not allowed to edit quotas for this user
suser_efs=You are not allowed to edit quotas on this filesystem

ufilesys_title=User Quotas
ufilesys_return=filesystems list
ufilesys_ecannot=You cannot edit quotas for '$1'
ufilesys_all=All Quotas for <tt>$1</tt>
ufilesys_blocks=Blocks
ufilesys_files=Files
ufilesys_fs=Filesystem
ufilesys_used=Used
ufilesys_soft=Soft Limit
ufilesys_hard=Hard Limit
ufilesys_nouquota=User <tt>$1</tt> does not have quotas on any filesystem
ufilesys_edit=Edit Quota On:
ufilesys_copy=Copy Quotas

ugracef_title=Grace Times
ugracef_return=user list
ugracef_ecannot=You cannot edit grace times on this filesystem
ugracef_info=Each filesystem has a grace time for block and file quotas. The grace time determines how long a user can remain over the soft limit before no more files are allowed to be created. 
ugracef_graces=User Grace Times for <tt>$1</tt>
ugracef_block=For block quota
ugracef_file=For file quota
ugracef_update=Update

ugraces_esave=Failed to save grace times
ugraces_eedit=You cannot edit grace times on this filesystem
ugraces_enumber='$1' is not a number

lusers_failed=Failed to list users
lusers_eallow=You are not allowed to edit quotas on this filesystem
lusers_title=Filesystem Quotas
lusers_return=filesystems list
lusers_toomany=Too many users have quotas on <tt>$1</tt> to display on one page
lusers_qoutas=All User Quotas on <tt>$1</tt>
lusers_blocks=Blocks
lusers_files=Files
lusers_user=User
lusers_used=Used
lusers_soft=Soft Limit
lusers_hard=Hard Limit
lusers_noquota=No users have quotas on <tt>$1</tt>
lusers_equota=Edit Quota For:
lusers_egrace=Edit Grace Times
lusers_check=Check Quotas
lusers_info=Webmin can be configured to automatically set the quotas on this filesystem when a new Unix user is created. This will only work when the $1 Webmin module is used to add users.
lusers_useradmin=Users and Groups
lusers_newuser=New User Quotas
lusers_sblimit=Soft Block Limit
lusers_hblimit=Hard Block Limit
lusers_sflimit=Soft File Limit
lusers_hflimit=Hard File Limit
lusers_apply=Apply

grace_seconds=Seconds
grace_minutes=Minutes
grace_hours=Hours
grace_days=Days
grace_weeks=Weeks
grace_months=Months

log_activate_u=Enabled user quotas on $1
log_activate_g=Enabled group quotas on $1
log_activate_ug=Enabled user and group quotas on $1
log_deactivate_u=Disabled user quotas on $1
log_deactivate_g=Disabled group quotas on $1
log_deactivate_ug=Disabled user and group quotas on $1
log_save=Changed quotas for $1 on $2
log_sync=Changed new user quotas on $1
log_grace_u=Changed user grace times on $1
log_grace_g=Changed group grace times on $1
log_check=Checked quotas on $1
log_copy_u=Copied user $1's quotas
log_copy_g=Copied group $1's quotas

  0707010004b13d000081a40000000000000002000000013ac038950000259b000000200000000000000000000000000000001400000003reloc/quota/lang/es   quota_unlimited=Ilimitada

acl_fss=Sistemas de archivo que este usuario puede editar
acl_fall=Todos los sistemas de archivo
acl_fsel=Los seleccionados...
acl_quotaon=縋uede activar y desactivar las cuotas?
acl_quotanew=縋uede configurar cuotas para nuevos usuarios?
acl_ugrace=縋uede editar tiempos de gracia de usuarios?
acl_vtotal=縋uede ver espacio total en disco?
acl_ggrace=縋uede editar tiempos de gracia de grupos?
acl_uquota=Usuarios a los que este usuario puede editar cuotas
acl_gquota=Grupos a los que este usuario puede editar cuotas
acl_uall= Todos los usuarios
acl_uonly= S髄o los usuarios
acl_uexcept= Todos excepto los usuarios
acl_ugroup= Usuarios con grupo primario
acl_gall= Todos los grupos
acl_gnone= Ning鷑 grupo
acl_gonly= S髄o los grupos
acl_gexcept= Todos excepto los grupos

activate_eallow=No est醩 autorizado a activar o desactivar cuotas en este sistema de archivos
activate_eon=No pude encender las cuotas
activate_eoff=No pude apagar las cuotas

check_title=Revisar Cuotas
check_return=lista $1
check_ecannot=No puedes revisar cuotas en este sistema de archivos
check_running=El comando <tt>quotacheck</tt> se est ejecutando ahora para revisar el bloque y uso de archivo en <tt>$1</tt>. Esto puede llevar un largo tiempo si el sistema de archivos es muy grande...
check_done=... Hecho.
check_rgroup=grupo
check_ruser=usuario

cgroup_efail=No pude copiar las cuotas
cgroup_ecannot=No puedes copiar las cuotas
cgroup_egallow=No est醩 autorizado a copiar las cuotas de este grupo
cgroup_enogroup=No hay grupos a donde copiar
cgroup_eallowto=No est醩 autorizado a copiar cuotas a '$1'

cgform_title=Copiar Cuotas
cgform_return=Cuota de grupo
cgform_ecannot=No puedes copiar cuotas
cgform_egroup=No est醩 autorizado a copiar las cuotas de este grupo
cgform_copyto=Copiar cuotas para <tt>$1</tt> en TODOS los sistemas de archivo a..
cgform_all=Todos los grupos en tu sistema
cgform_select=Grupos seleccionados
cgform_contain=Grupos conteniendo usuarios
cgform_doit=Copiar

cuser_efail=No pude copiar cuotas
cuser_ecannot=No puedes copiar cuotas
cuser_euallow=No est醩 autorizado a copiar las cuotas de este usuario
cuser_enouser=No hay usuarios a donde copiar
cuser_eallowto=No esta autorizado a copiar cuotas a '$1'

cuform_title=Copiar Cuotas
cuform_return=cuota de usuario
cuform_ecannot=No puedes copiar cuotas
cuform_euallow=No est醩 autorizado a copiar las cuotas de este usuario
cuform_copyto=Copiar cuotas para <tt>$1</tt> en TODOS los sistemas de archivo a...
cuform_all=Todos los usuarios en tu sistema
cuform_select=Usuarios seleccionados
cuform_members=Miembros del grupos selectos
cuform_doit=Copiar

egroup_title=Editar Cuota
egroup_freturn=lista de sistemas de archivo
egroup_greturn=lista de grupos
egroup_eallowgr=No est醩 autorizado a editar cuotas para '$1'
egroup_eallowfs=No est醩 autorizado a editar cuotas en este sistema de archivos
egroup_quotas=Cuota para <tt>$1</tt> en <tt>$2</tt>
egroup_bused=Bloques Usados
egroup_sblimit=L韒ite de Bloques por Soft
egroup_hblimit=L韒ite de Bloques por Hard
egroup_fused=Archivos Usados
egroup_sflimit=L韒ite de Archivos por Soft
egroup_hflimit=L韒ite de Archivos por Hard
egroup_update=Actualizar
egroup_listall=Listar Todas las Cuotas

euser_title=Editar Cuota
euser_freturn=lista de sistemas de archivo
euser_ureturn=lista de usuarios
euser_eallowus=No est醩 autorizado a editar cuotas para '$1'
euser_eallowfs=No est醩 autorizado a editar cuotas en este sistema de archivos
euser_quotas=Cuota para <tt>$1</tt> en <tt>$2</tt>
euser_bused=Bloques Usados
euser_sblimit=L韒ite de Bloques por Soft
euser_hblimit=L韒ite de Bloques por Hard
euser_fused=Archivos Usados
euser_sflimit=L韒ite de Archivos por Soft
euser_hflimit=L韒ite de Archivos por Hard
euser_update=Actualizar
euser_listall=Listar Todas las Cuotas

gfilesys_title=Cuotas de Grupo
gfilesys_return=lista de sistemas de archivo
gfilesys_ecannot=No puedes editar cuotas para '$1'
gfilesys_all=Todas las Cuotas para
gfilesys_blocks=Bloques
gfilesys_files=Archivos
gfilesys_fs=Sistema de Archivos
gfilesys_used=Usado
gfilesys_soft=L韒ite por Soft
gfilesys_hard=L韒ite por Hard
gfilesys_nogquota=El grupo <tt>$1</tt> no tiene cuotas en ning鷑 sistema de archivos
gfilesys_edit=Editar Cuota En:
gfilesys_copy=Copiar Cuotas

ggracef_title=Tiempos de Gracia
ggracef_return=lista de grupos
ggracef_ecannot=No puedes editar tiempos de gracia en este sistema de archivos
ggracef_info=Cada sistema de archivos tiene un tiempo de gracia para las cuotas de bloques y archivos. El tiempo de gracia determina cu醤to puede un grupo permanecer sobre el l韒ite de soft antes de que no se le permita crear m醩 archivos.
ggracef_graces=Tiempos de Gracia de Grupo para <tt>$1</tt>
ggracef_block=Para cuota de bloque
ggracef_file=Para cuota de archivo
ggracef_update=Actualizar

ggraces_esave=No pude salvar tiempos de gracia
ggraces_eedit=No puedes editar tiempos de gracia en este sistema de archivos
ggraces_enumber='$1' no es un n鷐ero

index_quser=Cuotas de Usuario
index_qgroup=Cuotas de Grupo
index_qboth=Cuotas de Usuario y Grupo
index_active= Activa
index_disable=Desactivar Cuotas
index_inactive= Inactiva
index_enable=Activar Cuotas
index_title=Cuotas de Disco
index_fs=Sistema de Archivos
index_type=Tipo
index_mount=Montado Desde
index_status=Estado
index_action=Acci髇
index_return=韓dice
index_euser=Editar Cuotas de Usuario:
index_egroup=Editar Cuotas de Grupo:
index_nosupport=No hay sistemas de archivo locales que puedan soportar cuotas

lgroups_failed=No pude listar grupos
lgroups_eallow=No est醩 autorizado a editar cuotas en este sistema de archivos
lgroups_title=Cuotas de Sistema de Archivos
lgroups_return=listar sistema de archivos
lgroups_toomany=Demasiados grupos tienen cuotas en <tt>$1</tt> para mostrarlas en una p醙ina
lgroups_quotas=Todas las Cuotas de Grupo en <tt>$1</tt>
lgroups_blocks=Bloques
lgroups_files=Archivos
lgroups_group=Grupos
lgroups_used=Usado
lgroups_soft=L韒ite por Soft
lgroups_hard=L韒ite por Hard
lgroups_noquota=No hay grupos que tengan cuotas en <tt>$1</tt>
lgroups_equota=Editar Cuota Para:
lgroups_egrace=Editar Tiempos de Gracia
lgroups_check=Revisar Cuotas

sgroup_egroup=No est醩 autorizado a editar las cuotas para este grupo
sgroup_efs=No est醩 autorizado a editar las cuotas en este sistema de archivos

ssync_ecannot=No puedes poner la cuota por defecto para este sistema de archivos

suser_euser=No est醩 autorizado a editar las cuotas de este usuario
suser_efs=No est醩 autorizado a editar las cuotas en este sistema de archivos

ufilesys_title=Cuotas de Usuario
ufilesys_return=lista de sistema de archivos
ufilesys_ecannot=No puedes editar cuotas para '$1'
ufilesys_all=Todas las Cuotas para <tt>$1</tt>
ufilesys_blocks=Bloques
ufilesys_files=Archivos
ufilesys_fs=Sistema de Archivos
ufilesys_used=Usado
ufilesys_soft=L韒ite por Soft
ufilesys_hard=L韒ite por Hard
ufilesys_nouquota=El usuario <tt>$1</tt> no tiene cuotas en este sistema de archivos
ufilesys_edit=Editar Cuota En:
ufilesys_copy=Copiar Cuotas

ugracef_title=Tiempos de Gracia
ugracef_return=lista de usuarios
ugracef_ecannot=No puedes editar tiempos de gracia en este sistema de archivos
ugracef_info=Cada sistema de archivos tiene un tiempo de gracia para las cuotas de bloque y de archivo. El tiempo de gracia determina cu醤to puede permanecer un usuario sobre el l韒ite de soft antes de que no se le permita crear m醩 archivos.
ugracef_graces=Tiempos de Gracia de Usuario <tt>$1</tt>
ugracef_block=Para cuota de bloque
ugracef_file=Para cuota de archivo
ugracef_update=Actualizar

ugraces_esave=No pude salvar tiempos de gracia
ugraces_eedit=No puedes editar tiempos de gracia en este sistema de archivos
ugraces_enumber='$1' no es un n鷐ero

lusers_failed=No pude listar usuarios
lusers_eallow=No est醩 autorizado a editar cuotas en este sistema de archivos
lusers_title=Cuotas de Sistema de Archivos
lusers_return=lista de sistemas de archivo
lusers_toomany=Demasiados usuarios tiene cuotas aqu <tt>$1</tt> para ser mostradas en una p醙ina
lusers_qoutas=Todas las Cuotas de Usuario aqu <tt>$1</tt>
lusers_blocks=Bloques
lusers_files=Archivos
lusers_user=Usuario
lusers_used=Usado
lusers_soft=L韒ite por Soft
lusers_hard=L韒ite por Hard
lusers_noquota=No hay usuarios que tengan cuotas
lusers_equota=Editar Cuota Para:
lusers_egrace=Editar Tiempos de Gracia
lusers_check=Revisar Cuotas
lusers_info=Webmin puede ser configurado para poner autom醫icamente las cuotas en este sistema de archivos cada vez que un nuevo usuario de Unix sea creado. Esto s髄o funcionar cuando los $1 el m骴ulo de Webmin es utilizado para a馻dir usarios.
lusers_useradmin=Usuarios y Grupos
lusers_newuser=Nuevas Cuotas de Usuario
lusers_sblimit=L韒ite de Bloque por Soft
lusers_hblimit=L韒ite de Bloque por Hard
lusers_sflimit=L韒ite de Archivo por Soft
lusers_hflimit=L韒ite de Archivo por Hard
lusers_apply=Aplicar

grace_seconds=Segundos
grace_minutes=Minutos
grace_hours=Horas
grace_days=D韆s
grace_weeks=Semanas
grace_months=Meses

log_activate_u=Cuotas de usuario activadas en $1
log_activate_g=Cuotas de grupo activadas en $1
log_activate_ug=Cuotas de usuario y grupo activadas en $1
log_deactivate_u=Cuotas de usuario desactivadas en $1
log_deactivate_g=Cuotas de grupo desactivadas en $1
log_deactivate_ug=Cuotas de usuario y grupo desactivadas en $1
log_save=Cuotas cambiadas para $1 en $2
log_sync=Cuotas de nuevo usuario cambiadas en $1
log_grace_u=Cambiados per韔dos de gracia de usuario en $1
log_grace_g=Cambiados per韔dos de gracia de grupo en $1
log_check=Revisadas cuotas en $1
log_copy_u=Copiadas cuotas de usuario $1's
log_copy_g=Copiadas cuotas de grupo $1's

 0707010004b13e000081a40000000000000002000000013ac0389500002553000000200000000000000000000000000000001400000003reloc/quota/lang/pl   quota_unlimited=Brak

acl_fss=Systemy plik體, kt髍e ten u縴tkownik mo縠 zmienia
acl_fall=Wszystkie
acl_fsel=Wybrane..
acl_quotaon=Mo縠 w潮cza i&nbsp;wy潮cza quota?
acl_quotanew=Mo縠 zmienia ustawienia quota dla nowych u縴tkownik體?
acl_ugrace=Mo縠 zmienia czasy ulgi dla u縴tkownik體?
acl_vtotal=Mo縠 ogl眃a 潮czn ilo舵 miejsca na dysku?
acl_ggrace=Mo縠 zmienia czasy ulgi dla grup?
acl_uquota=Mo縠 zmienia quota dla u縴tkownik體 dla 
acl_gquota=Mo縠 zmienia quota dla grup dla
acl_uall= Wszystkich u縴tkownik體
acl_uonly= Tylko dla u縴tkownik體
acl_uexcept= Wszystkich opr骳z u縴tkownik體
acl_ugroup= U縴tkownik體 z&nbsp;grup g丑wn
acl_gall= Wszystkich grup
acl_gnone= 痑dnej grupy
acl_gonly= Tylko dla grup
acl_gexcept= Wszystkich opr骳z grup

activate_eallow=Nie masz uprawnie do w潮czania ani wyl眂zania quota dla tego systemu plik體
activate_eon=Nie uda硂 si w潮czy quota
activate_eoff=Nie uda硂 si wy潮czy quota

check_title=Sprawd Quota
check_return=listy $1
check_ecannot=Nie masz uprawnie do weryfikacji poprawno禼i quota na tym systemie plik體
check_running=Zosta uruchomiony program <tt>quotacheck</tt> w&nbsp;celu zbadania wykorzystania blok體 i&nbsp;plik體 na <tt>$1</tt>. Na du縴m systemie plik體 mo縠 to zaj辨 sporo czasu...
check_done=... Zako馽zono. 
check_rgroup=grup
check_ruser=u縴tkownik體

cgroup_efail=Nie uda硂 si skopiowa quota
cgroup_ecannot=Nie masz uprawnie do kopiowania quota
cgroup_egallow=Nie masz uprawnie do kopiowania quota tej grupy
cgroup_enogroup=Nie podano grup, do kt髍ych kopiowa
cgroup_eallowto=Nie masz uprawnie do kopiowania quota do '$1'

cgform_title=Kopiuj quota
cgform_return=quota dla grupy
cgform_ecannot=Nie masz uprawnie do kopiowania quota
cgform_egroup=Nie masz uprawnie do kopiowania quota tej grupy
cgform_copyto=Kopiuj quota dla <tt>$1</tt> na WSZYSTKICH systemach plik體 do ...
cgform_all=Wszystkich grup w&nbsp;systemie
cgform_select=Wybranych grup
cgform_contain=Grup zawieraj眂ych u縴tkownik體
cgform_doit=Kopiuj

cuser_efail=Nie uda硂 si skopiowa quota
cuser_ecannot=Nie masz uprawnie do kopiowania quota
cuser_euallow=Nie masz uprawnie do kopiowania quota tego u縴tkownika
cuser_enouser=Nie podano u縴tkownik體, do kt髍ych kopiowa
cuser_eallowto=Nie masz uprawnie do kopiowania quota do '$1'

cuform_title=Kopiuj quota
cuform_return=quota dla u縴tkownika
cuform_ecannot=Nie masz uprawnie do kopiowania quota
cuform_euallow=Nie masz uprawnie do kopiowania quota tego u縴tkownika
cuform_copyto=Kopiuj quota dla <tt>$1</tt> na WSZYSTKICH systemach plik體 do ...
cuform_all=Wszystkich u縴tkownik體 systemu
cuform_select=Wybranych u縴tkownik體
cuform_members=Cz硂nk體 wybranych grup
cuform_doit=Kopiuj

egroup_title=Zmie quota
egroup_freturn=listy system體 plik體
egroup_greturn=listy grup
egroup_eallowgr=Nie masz uprawnie do zmiany quota dla '$1'
egroup_eallowfs=Nie masz uprawnie do zmiany quota na tym systemie plik體
egroup_quotas=Quota dla <tt>$1</tt> na <tt>$2</tt>
egroup_bused=Blok體 u縴wanych
egroup_sblimit=Mi阫ki limit dla blok體
egroup_hblimit=Twardy limit dla blok體
egroup_fused=Plik體 u縴wanych
egroup_sflimit=Mi阫ki limit dla plik體
egroup_hflimit=Twardy limit dla plik體
egroup_update=Aktualizuj
egroup_listall=Poka wszystkie quota

euser_title=Zmie quota
euser_freturn=listy system體 plik體
euser_ureturn=listy u縴tkownik體
euser_eallowus=Nie masz uprawnie do zmiany quota dla '$1'
euser_eallowfs=Nie masz uprawnie do zmiany quota na tym systemie plik體
euser_quotas=Quota dla <tt>$1</tt> na <tt>$2</tt>
euser_bused=Blok體 u縴wanych
euser_bdisk=Blok體 dost阷nych na dysku
euser_sblimit=Mi阫ki limit dla blok體
euser_hblimit=Twardy limit dla blok體
euser_fused=Plik體 u縴wanych
euser_fdisk=Plik體 dost阷nych na dysku
euser_sflimit=Mi阫ki limit dla plik體
euser_hflimit=Twardy limit dla plik體
euser_update=Aktualizuj
euser_listall=Poka wszystkie quota

gfilesys_title=Quota dla grup
gfilesys_return=lista system體 plik體
gfilesys_ecannot=Nie masz uprawnie do zmiany quota dla '$1'
gfilesys_all=Wszystkie quota dla 
gfilesys_blocks=Blok體
gfilesys_files=Plik體
gfilesys_fs=System plik體
gfilesys_used=U縴wane
gfilesys_soft=Mi阫ki limit
gfilesys_hard=Twardy limit
gfilesys_nogquota=Grupa <tt>$1</tt> nie posiada quota na 縜dnym systemie plik體
gfilesys_edit=Zmie quota na:
gfilesys_copy=Kopiuj quota

ggracef_title=Czasy ulgi
ggracef_return=listy grup
ggracef_ecannot=Nie masz uprawnie do zmiany czas體 ulgi dla tego systemu plik體
ggracef_info=Ka縟y system plik體 posiada czas ulgi dla blok體 i&nbsp;dla plik體. Czas ulgi ukre秎a jak d硊go mi阫ki limit mo縠 by przekroczony przez grup, zanim zostanie zablokowana mo縧iwo舵 tworzenia nowych plik體. 
ggracef_graces=Czasy ulgi dla grupy dla <tt>$1</tt>
ggracef_block=Dla quota dla blok體
ggracef_file=Dla quota dla plik體
ggracef_update=Aktualizuj

ggraces_esave=Nie uda硂 si zapisa czas體 ulgi
ggraces_eedit=Nie masz uprawnie do zmiany czas體 ulgi dla tego systemu plik體
ggraces_enumber='$1' nie jest liczb

index_quser=Quota dla u縴tkownik體
index_qgroup=Quota dla grup
index_qboth=Quota dla u縴tkownik體 i&nbsp;grup
index_active=w潮czone
index_disable=Wy潮cz quota
index_inactive=wy潮czone
index_enable=W潮cz quota
index_title=Quota na dyskach
index_fs=System plik體
index_type=Rodzaj
index_mount=Rezyduj眂y na
index_status=Stan
index_action=Dzia砤nie
index_return=indeksu
index_euser=Zmie quota dla u縴tkownika:
index_egroup=Zmie quota dla grupy:
index_nosupport=痑den lokalny system plik體 nie obs硊guje quota

lgroups_failed=Nie uda硂 si pokaza listy grup
lgroups_eallow=Nie masz uprawnie do zmiany quota na tym systemie plik體
lgroups_title=Quota na systemie plik體
lgroups_return=listy system體 plik體
lgroups_toomany=Zbyt wiele grup posiada quota na <tt>$1</tt>, aby wy秝ietli je na jednej stronie 
lgroups_quotas=Quota wszystkich grup na <tt>$1</tt>
lgroups_blocks=Blok體
lgroups_files=Plik體
lgroups_group=Grup
lgroups_used=U縴wane
lgroups_soft=Mi阫ki limit
lgroups_hard=Twardy limit
lgroups_noquota=痑dna grupa nie posiada quota na <tt>$1</tt>
lgroups_equota=Zmie quota dla:
lgroups_egrace=Zmie czasy ulgi
lgroups_check=Sprawd quota

sgroup_egroup=Nie masz uprawnie do zmiany quota dla tej grupy
sgroup_efs=Nie masz uprawnie do zmiany quota na tym systemie plik體

ssync_ecannot=Nie masz uprawnie do ustawiania domy秎nych limit體 quota dla tego systemu plikow

suser_euser=Nie masz uprawnie do zmiany quota dla tego u縴tkownika
suser_efs=Nie masz uprawnie do zmiany quota na tym systemie plik體

ufilesys_title=Quota dla u縴tkownik體
ufilesys_return=listy system體 plik體
ufilesys_ecannot=Nie masz uprawnie do zmiany quota dla '$1'
ufilesys_all=Wszystkie quota dla <tt>$1</tt>
ufilesys_blocks=Blok體
ufilesys_files=Plik體
ufilesys_fs=System plik體
ufilesys_used=U縴wane
ufilesys_soft=Mi阫ki limit
ufilesys_hard=Twardy limit
ufilesys_nouquota=U縴tkownik <tt>$1</tt> nie posiada quota na zadnym systemie plik體
ufilesys_edit=Zmie quota na:
ufilesys_copy=Kopiuj quota

ugracef_title=Czasy ulgi
ugracef_return=listy u縴tkownik體
ugracef_ecannot=Nie masz uprawnie do zmiany czas體 ulgi dla tego systemu plik體
ugracef_info=Ka縟y system plik體 posiada czas ulgi dla blok體 i&nbsp;plik體. Czas ulgi ukre秎a jak d硊go mi阫ki limit mo縠 by przekroczony przez u縴tkownika, zanim zostanie zablokowana mo縧iwo舵 tworzenia nowych plik體. 
ugracef_graces=Czasy ulgi dla u縴tkownika dla <tt>$1</tt>
ugracef_block=Dla quota dla blok體
ugracef_file=Dla quota dla plik體
ugracef_update=Aktualizuj

ugraces_esave=Nie uda硂 si zapisa czas體 ulgi
ugraces_eedit=Nie masz uprawnie do zmiany czas體 ulgi dla tego systemu plik體
ugraces_enumber='$1' nie jest liczb

lusers_failed=Failed to list users
lusers_eallow=Nie masz uprawnie do zmiany quota dla tego systemu plik體
lusers_title=Quota dla systemu plik體
lusers_return=listy system體 plik體
lusers_toomany=Zbyt wielu u縴tkownik體 posiada quota na <tt>$1</tt>, aby wy秝ietli ich na jednej stronie 
lusers_qoutas=Quota wszystkich u縴tkownik體 na <tt>$1</tt>
lusers_blocks=Blok體
lusers_files=Plik體
lusers_user=U縴tkownik
lusers_used=U縴wane
lusers_soft=Mi阫ki limit
lusers_hard=Twardy limit
lusers_noquota=痑den u縴tkownik nie ma quota na <tt>$1</tt>
lusers_equota=Zmie quota dla:
lusers_egrace=Zmie czasy ulgi
lusers_check=Sprawd quota
lusers_info=Webmina mo縩a skonfigurowa tak, aby automatycznie ustawia quota na tym systemie plik體 podczas tworzenia nowego u縴tkownika Uniksa. B阣zie to dzia砤 jedynie gdy u縴tkownicy b阣 dodawani przy u縴ciu modu硊 Webmina <tt>$1</tt>.
lusers_useradmin=U縴tkownicy i&nbsp;grupy
lusers_newuser=Quota dla nowego u縴tkownika
lusers_sblimit=Mi阫ki limit dla blok體
lusers_hblimit=Twardy limit dla blok體
lusers_sflimit=Mi阫ki limit dla plik體
lusers_hflimit=Twardy limit dla plik體
lusers_apply=Zastosuj

grace_seconds=Sekund
grace_minutes=Minut
grace_hours=Godzin
grace_days=Dni
grace_weeks=Tygodni
grace_months=Miesi阠y

log_activate_u=W潮czono quota dla u縴tkownik體 na $1
log_activate_g=W潮czono quota dla grup na $1
log_activate_ug=W潮czono quota dla u縴tkownik體 i&nbsp;grup na $1
log_deactivate_u=Wy潮czono quota dla u縴tkownik體 na $1
log_deactivate_g=Wy潮czono quota dla grup na $1
log_deactivate_ug=Wy潮czono quota dla u縴tkownik體 i&nbsp;grup na $1
log_save=Zmieniono quota dla $1 na $2
log_sync=Zmieniono quota dla nowych u縴tkownik體 na $1
log_grace_u=Zmieniono czasy ulgi dla u縴tkownik體 na $1
log_grace_g=Zmieniono czasy ulgi dla grup na $1
log_check=Sprawdzono quota na $1
log_copy_u=Skopiowano quota u縴tkownika $1
log_copy_g=Skopiowano quota grupy $1
 0707010004b13f000081a40000000000000002000000013ac038950000001a000000200000000000000000000000000000001400000003reloc/quota/lang/pt   quota_unlimited=Ilimitado
  0707010004b140000081a40000000000000002000000013ac0389500002127000000200000000000000000000000000000001400000003reloc/quota/lang/sv   quota_unlimited=Obegr鋘sad

acl_fss=Filsystem som denna anv鋘dare f錼 鋘dra i
acl_fall=Alla filsystem
acl_fsel=Angivna ...
acl_quotaon=Kunna sl p och av quota?
acl_quotanew=Kunna st鋖la in quota f鰎 nya anv鋘dare?
acl_ugrace=Kunna 鋘dra tidsintervall f鰎 anv鋘dare?
acl_vtotal=Kunna se totalt diskutrymme?
acl_ggrace=Kunna 鋘dra tidsintervall f鰎 grupper?
acl_uquota=Anv鋘dare som denna anv鋘dare f錼 鋘dra quota f鰎
acl_gquota=Grupper som denna anv鋘dare f錼 鋘dra quota f鰎
acl_uall= Alla anv鋘dare
acl_uonly= Endast anv鋘darna
acl_uexcept= Alla anv鋘dare utom
acl_ugroup= Anv鋘dare med prim鋜 grupp
acl_gall= Alla grupper
acl_gnone= Inga grupper
acl_gonly= Endast grupperna
acl_gexcept= Alla grupper utom

activate_eallow=Du f錼 inte sl p och av quota p detta filsystem
activate_eon=Det gick inte att sl p quota
activate_eoff=Det gick inte att sl av quota

check_title=Kontrollera quota
check_return=Lista 鰒er $1
check_ecannot=Du f錼 inte kontrollera quota p detta filsystem
check_running=Kommandot <tt>quotacheck</tt> k鰎s nu f鰎 att kontrollera block- och filanv鋘dningen p <tt>$1</tt>. Om det 鋜 ett stort filsystem kan detta ta en stund ...
check_done=... Klart.
check_rgroup=grupp
check_ruser=anv鋘dare

cgroup_efail=Det gick inte att kopiera quota
cgroup_ecannot=Du f錼 inte kopiera quota
cgroup_egallow=Du f錼 inte kopiera denna grupps quota
cgroup_enogroup=Du har inte angivit n錱on grupp att kopiera till
cgroup_eallowto=Du f錼 inte kopiera quota till '$1'

cgform_title=Kopiera quota
cgform_return=gruppquota
cgform_ecannot=Du f錼 inte kopiera quota
cgform_egroup=Du f錼 inte kopiera denna grupps quota
cgform_copyto=Kopiera quota f鰎 <tt>$1</tt> p ALLA filsystem till ...
cgform_all=Alla grupper p ditt system
cgform_select=Angivna grupper
cgform_contain=Grupper med f鰈jande anv鋘dare
cgform_doit=Kopiera

cuser_efail=Det gick inte att kopiera quota
cuser_ecannot=Du f錼 inte kopiera quota
cuser_euallow=Du f錼 inte kopiera denna anv鋘dares quota
cuser_enouser=Du har inte angivit n錱on anv鋘dare att kopiera till
cuser_eallowto=Du f錼 inte kopiera quota till '$1'

cuform_title=Kopiera quota
cuform_return=anv鋘darquota
cuform_ecannot=Du f錼 inte kopiera quota
cuform_euallow=Du f錼 inte kopiera denna anv鋘dares quota
cuform_copyto=Kopiera quota f鰎 <tt>$1</tt> p ALLA filsystem till ...
cuform_all=Alla anv鋘dare p ditt system
cuform_select=Angivna anv鋘dare
cuform_members=Medlemmar i angivna grupper
cuform_doit=Kopiera

egroup_title=膎dra quota
egroup_freturn=filsystemslista
egroup_greturn=grupplista
egroup_eallowgr=Du f錼 inte 鋘dra quota f鰎 '$1'
egroup_eallowfs=Du f錼 inte 鋘dra quota p detta filsystem
egroup_quotas=Quota f鰎 <tt>$1</tt> p <tt>$2</tt>
egroup_bused=Anv鋘da block
egroup_sblimit=Mjuk blockgr鋘s
egroup_hblimit=H錼d blockgr鋘s
egroup_fused=Anv鋘da filer
egroup_sflimit=Mjuk filgr鋘s
egroup_hflimit=H錼d filgr鋘s
egroup_update=Uppdatera
egroup_listall=Lista alla quota

euser_title=膎dra quota
euser_freturn=filsystemslista
euser_ureturn=anv鋘darlista
euser_eallowus=Du f錼 inte 鋘dra quota f鰎 '$1'
euser_eallowfs=Du f錼 inte 鋘dra quota p detta filsystem
euser_quotas=Quota f鰎 <tt>$1</tt> p <tt>$2</tt>
euser_bused=Anv鋘da block
euser_sblimit=Mjuk blockgr鋘s
euser_hblimit=H錼d blockgr鋘s
euser_fused=Anv鋘da filer
euser_sflimit=Mjuk filgr鋘s
euser_hflimit=H錼d filgr鋘s
euser_update=Uppdatera
euser_listall=Lista alla quota

gfilesys_title=Gruppquota
gfilesys_return=filsystemslista
gfilesys_ecannot=Du f錼 inte 鋘dra quota f鰎 '$1'
gfilesys_all=Alla quota f鰎 
gfilesys_blocks=Block
gfilesys_files=Filer
gfilesys_fs=Filsystem
gfilesys_used=Anv鋘da
gfilesys_soft=Mjuk gr鋘s
gfilesys_hard=H錼d gr鋘s
gfilesys_nogquota=Gruppen <tt>$1</tt> har ingen quota p n錱ot filsystem
gfilesys_edit=膎dra quota p:
gfilesys_copy=Kopiera quota

ggracef_title=Tidsintervall
ggracef_return=grupplista
ggracef_ecannot=Du f錼 inte 鋘dra tidsintervall p detta filsystem
ggracef_info=Varje filsystem har ett tidsintervall f鰎 block- och filquota. Detta tidsintervall anger hur l鋘ge en grupp f錼 鰒erskrida sin mjuka gr鋘s innan den hindras att skapa fler filer.
ggracef_graces=Grupptidsintervall f鰎 <tt>$1</tt>
ggracef_block=F鰎 blockquota
ggracef_file=F鰎 filquota
ggracef_update=Uppdatera

ggraces_esave=Det gick inte att spara tidsintervall
ggraces_eedit=Du f錼 inte 鋘dra tidsintervall p detta filsystem
ggraces_enumber='$1' 鋜 inte ett antal

index_quser=Anv鋘darquota
index_qgroup=Gruppquota
index_qboth=Anv鋘dar- och gruppquota
index_active=Aktiv
index_disable=Sl av quota
index_inactive=Inaktiv
index_enable=Sl p quota
index_title=Diskquota
index_fs=Filsystem
index_type=Typ
index_mount=Monterad fr錸
index_status=Status
index_action=Funktion
index_return=index
index_euser=膎dra anv鋘darquota:
index_egroup=膎dra gruppquota:
index_nosupport=Inget lokalt filsystem st鰀jer quota

lgroups_failed=Det gick inte att lista grupper
lgroups_eallow=Du f錼 inte 鋘dra quota p detta filsystem
lgroups_title=Filsystemsquota
lgroups_return=filsystemslista
lgroups_toomany=Det 鋜 f鰎 m錸ga grupper som har quota p <tt>$1</tt> f鰎 att det ska g att visa p en sida
lgroups_quotas=Alla gruppquota p <tt>$1</tt>
lgroups_blocks=Block
lgroups_files=Filer
lgroups_group=Grupp
lgroups_used=Anv鋘d
lgroups_soft=Mjuk gr鋘s
lgroups_hard=H錼d gr鋘s
lgroups_noquota=Ingen grupp har quota p <tt>$1</tt>
lgroups_equota=膎dra quota f鰎:
lgroups_grace=膎dra tidsintervall
lgroups_check=Kontrollera quota

sgroup_egroup=Du f錼 inte 鋘dra quota f鰎 denna grupp
sgroup_efs=Du f錼 inte 鋘dra quota p detta filsystem

ssync_ecannot=Du f錼 inte st鋖la in standardquota f鰎 detta filsystem

suser_euser=Du f錼 inte 鋘dra quota f鰎 denna anv鋘dare
suser_efs=Du f錼 inte 鋘dra quota p detta filsystem

ufilesys_title=Anv鋘darquota
ufilesys_return=filsystemslista
ufilesys_ecannot=Du f錼 inte 鋘dra quota f鰎 '$1'
ufilesys_all=All quota f鰎 <tt>$1</tt>
ufilesys_blocks=Block
ufilesys_files=Filer
ufilesys_fs=Filsystem
ufilesys_used=Anv鋘d
ufilesys_soft=Mjuk gr鋘s
ufilesys_hard=H錼d gr鋘s
ufilesys_nouquota=Anv鋘dare <tt>$1</tt> har ingen quota p n錱ot filsystem
ufilesys_edit=膎dra quota p:
ufilesys_copy=Kopiera quota

ugracef_title=Tidsintervall
ugracef_return=anv鋘darlista
ugracef_ecannot=Du f錼 inte 鋘dra tidsintervall p detta filsystem
ugracef_info=Varje filsystem har ett tidsintervall f鰎 block- och filquota. Detta tidsintervall anger hur l鋘ge en anv鋘dare f錼 鰒erskrida sin mjuka gr鋘s innan den hindras att skapa fler filer.
ugracef_graces=Anv鋘dartidsintervall f鰎 <tt>$1</tt>
ugracef_block=F鰎 blockquota
ugracef_file=F鰎 filquota
ugracef_update=Uppdatera

ugraces_esave=Det gick inte att spara tidsintervall
ugraces_eedit=Du f錼 inte 鋘dra tidsintervall p detta filsystem
ugraces_enumber='$1' 鋜 inte ett antal

lusers_failed=Det gick inte att lista anv鋘dare
lusers_eallow=Du f錼 inte 鋘dra quota p detta filsystem
lusers_title=Filsystemsquota
lusers_return=filsystemslista
lusers_toomany=Det 鋜 f鰎 m錸ga anv鋘dare som har quota p <tt>$1</tt> f鰎 att det ska g att visa p en sida
lusers_qoutas=All anv鋘darquota p <tt>$1</tt>
lusers_blocks=Block
lusers_files=Filer
lusers_user=Anv鋘dare
lusers_used=Anv鋘d
lusers_soft=Mjuk gr鋘s
lusers_hard=H錼d gr鋘s
lusers_noquota=Ingen anv鋘dare har quota p <tt>$1</tt>
lusers_equota=膎dra quota f鰎:
lusers_egrace=膎dra tidsintervall
lusers_check=Kontrollera quota
lusers_info=Webmin kan st鋖las in att automatiskt s鋞ta quota p detta filsystem n鋜 en ny Unix-anv鋘dare skapas. Detta fungerar endast d Webmin-modulen $1 anv鋘ds f鰎 att l鋑ga till anv鋘dare.
lusers_useradmin=Anv鋘dare och grupper
lusers_newuser=Quota f鰎 nya anv鋘dare
lusers_sblimit=Mjuk blockgr鋘s
lusers_hblimit=H錼d blockgr鋘s
lusers_sflimit=Mjuk filgr鋘s
lusers_hflimit=H錼d filgr鋘s
lusers_apply=Ta i drift

grace_seconds=Sekunder
grace_minutes=Minuter
grace_hours=Timmar
grace_days=Dagar
grace_weeks=Veckor
grace_months=M錸ader

log_activate_u=Slog p anv鋘darquota p $1
log_activate_g=Slog p gruppquota p $1
log_activate_ug=Slog p anv鋘dar- och gruppquota p $1
log_deactivate_u=Slog av anv鋘darquota $1
log_deactivate_g=Slog av gruppquota p $1
log_deactivate_ug=Slog av anv鋘dar- och gruppquota p $1
log_save=膎drade quota f鰎 $1 p $2
log_sync=膎drade quota f鰎 nya anv鋘dare p $1
log_grace_u=膎drade tidsintervall f鰎 anv鋘dare p $1
log_grace_g=膎drade tidsintervall f鰎 grupper p $1
log_check=Kontrollerade quota p $1
log_copy_u=Kopierade anv鋘daren $1s quota
log_copy_g=Kopierade gruppen $1s quota

 0707010004b141000081a40000000000000002000000013ac038950000242f000000200000000000000000000000000000001400000003reloc/quota/lang/tr   quota_unlimited=Limitsiz

acl_fss=Dosya sistemleri bu kullan齝 taraf齨dan de餴⺶irilebilir
acl_quotaon=Kotalar a琮p kapatabilsin?
acl_quotanew=Yeni kullan齝齦ar i鏸n kotalar yap齦and齬abilsin?
acl_ugrace=Kullan齝 gecikme zamanlar齨 de餴⺶irebilsin?
acl_vtotal=Toplan disk kapasitesini g鰎ebilsin?
acl_ggrace=Grup gecikme zamanlar齨 de餴⺶irebilsin?
acl_uquota=Bu kullan齝齨齨 kotalar齨 de餴⺶irebilece餴 kullan齝齦ar
acl_gquota=Bu grubun kotalar齨 de餴⺶irebilece餴 kullan齝齦ar
acl_uall= B黷黱 kullan齝齦ar
acl_uonly= Sadece bu kullan齝齦ar
acl_uexcept= Bu kullan齝齦ar hari
acl_ugroup= Birincil grubundaki kullan齝齦ar
acl_gall= B黷黱 gruplar
acl_gnone= Hi鏱ir grup
acl_gonly= Sadece bu gruplar
acl_gexpect= Bu gruplar hari

activate_eallow=Bu dosya sistemindeki kotalar a琮p kapamak i鏸n izininiz yoktur
activate_eon=Kotalar齨 aktif hale getirilmesinde hata olu⺶u
activate_eoff=Kotalar齨 kapat齦mas齨da hata olu⺶u

check_title=Kotalar kontrol et
check_return=$1 listesi
check_ecannot=Bu dosya sistemindeki kotalar kontrol ettiremezsiniz
check_running=<tt>quotacheck</tt> komutu 㱮mdi <tt>$1</tt>'deki dosya ve blok kullan齧lar齨 ara⺶齬齳or. 莖k b鼀黭 dosya sistemlerinde bu uzun zaman alabilir...
check_done=... Bitti. 
check_rgroup=grup
check_ruser=kullan齝

cgroup_efail=Kotalar齨 kopyalanmas齨da hata olu⺶u
cgroup_ecannot=Kotalar kopyalayamazs齨齴
cgroup_egallow=Bu grubun kotalar齨 kopyalamak i鏸n izininiz yoktur
cgroup_enogroup=Kopyalanacak grup yok
cgroup_eallowto='$1''e kotalar kopyalamak i鏸n izininiz yoktur

cgform_title=Kotalar Kopyala
cgform_return=grup kotas
cgform_ecannot=Kotalar kopyalayamaz齭n
cgform_egroup=Bu grubun kotalar齨 kopyalamak i鏸n izininiz yoktur
cgform_copyto=B黷黱 dosya sistemlerinde <tt>$1</tt> i鏸n kotalar kopyalan齳or ...
cgform_all=Sistemdeki b黷黱 gruplar
cgform_select=Se鏸li gruplar
cgform_contain=Kullan齝 i鏴ren gruplar
cgform_doit=Kopyala

cuser_efail=Kotalar齨 kopyalanmas齨da hata olu⺶u
cuser_ecannot=Kotalar kopyalayamazs齨齴
cuser_euallow=Bu kullan齝齨齨 kotalar齨 kopyalamak i鏸n izininiz yoktur
cuser_enouser=Kopyalanacak kullan齝 yok
cuser_eallowto='$1'e kotalar kopyalamak i鏸n izininiz yoktur

cuform_title=Kotalar Kopyala
cuform_return=kullan齝 kotas
cuform_ecannot=Kotalar kopyalayamzs齨齴
cuform_euallow=Bu kullan齝 i鏸n kopyalar kopyalamak i鏸n izininiz yoktur
cuform_copyto=B黷黱 dosya sistemlerinde <tt>$1</tt> i鏸n kotalar kopyalan齳or ...
cuform_all=Sistemdeki b黷黱 kullan齝齦ar
cuform_select=Se鏸li kullan齝齦ar
cuform_members=Se鏸li grubun 鼀eleri
cuform_doit=Kopyaa

egroup_title=Kotay De餴⺶ir
egroup_freturn=dosya sistemi listesi
egroup_greturn=grup listesi
egroup_eallowgr='$1'in kotalar齨 de餴⺶irmek i鏸n izininiz yoktur
egroup_eallowfs=Bu dosya sistemindeki kotalar de餴⺶irmek i鏸n izininiz yoktur
egroup_quotas=<tt>$2</tt>deki <tt>$1</tt> i鏸n Kota
egroup_bused=Kullan齦an Blok
egroup_sblimit=Soft Blok Limiti
egroup_hblimit=Hard Blok Limiti
egroup_fused=Kullan齦an Dosya
egroup_sflimit=Soft Dosya Limiti
egroup_hflimit=Hard Dosya Limiti
egroup_update=G黱celle
egroup_listall=B黷黱 kotalar listele

euser_title=Kotay De餴⺶ir
euser_freturn=dosya sistemi listesi
euser_ureturn=kullanc listesi
euser_eallowus='$1in kotalar齨 de餴⺶irmek i鏸n izininiz yoktur'
euser_eallowfs=Bu dosya sistemindeki kotalar de餴⺶irmek i鏸n izininiz yoktur
euser_quotas=<tt>$2</tt>deki <tt>$1</tt> i鏸n Kota
euser_bused=Kullan齦an Blok
euser_sblimit=Soft Blok Limiti
euser_hblimit=Hard Blok Limiti
euser_fused=Kullan齦an Dosya
euser_sflimit=Soft Dosya Limiti
euser_hflimit=Hard Dosya Limiti
euser_update=G黱celle 
euser_listall=B黷黱 Kotalar Listele

gfilesys_title=Grup Kotalar
gfilesys_return=dosyasistemi listesi
gfilesys_ecannot='$1' i鏸n kotalar de餴⺶iremezsiniz
gfilesys_all=B黷黱 Kotalar
gfilesys_blocks=Blok
gfilesys_files=Dosya
gfilesys_fs=Dosa sistemi
gfilesys_used=Kullan齦an
gfilesys_soft=Soft Limit
gfilesys_hard=Hard Limit
gfilesys_nogquota=Grup <tt>$1</tt> bu dosya sisteminde kotaya sahip de餴l
gfilesys_edit=Burada Kota De餴⺶ir:
gfilesys_copy=Kotalar Kopyala

ggracef_title=Gecikme Zamanlar
ggracef_return=grup listesi
ggracef_ecannot=Bu dosya sistemindeki gecikme zamanlar齨 de餴⺶iremezsiniz.
ggracef_info=Her dosya sistemi blok ve dosya i鏸n bir gecikme zaman齨a sahiptir. Gecikme zaman kullan齝齨齨 soft limiti a⺶齨da daha fazla dosya olu⺶uramadan 鰊ceki s黵eyi belirler.
ggracef_graces=<tt>$1</tt> i鏸n Grup Gecikme Zamanlar
ggracef_block=Blok kotas i鏸n
ggracef_file=Dosya kotas i鏸n
ggracef_update=G黱celle

ggraces_esave=Gecikme zamanlar齨齨 kaydedilmesinde hata olu⺶u
ggraces_eedit=Bu dosya sistemindeki gecikme zamanlar齨 de餴⺶iremezsiniz
ggraces_enumber='$1' bir numara de餴ldir

index_quser=Kullan齝 Kotalar
index_qgroup=Grup Kotalar
index_qboth=Kullan齝 ve Grup Kotalar
index_active=Aktif
index_disable=Kotalar Kapat
index_inactive=Inaktif
index_enable=Kotalar A
index_title=Disk Kotalar
index_fs=Dosya sistemi
index_type=Tip
index_mount=Ba餷and
index_status=Durum
index_action=蔺lem
index_index=indeks
index_euser=Kullan齝 Kotalar齨 De餴⺶ir:
index_egroup=Grup Kotalar齨 De餴⺶ir:
index_nosupport=Yerel dosya sisteminde desteklenen kota yok

lgroups_failed=Gruplar齨 listelenmesinde hata olu⺶u
lgroups_eallow=Bu dosya sisteminde kotalar de餴⺶irmek i鏸n izininiz yoktur
lgroups_title=Dosya sistemi kotalar
lgroups_return=dosya sistemi listesi
lgroups_toomany=<tt>$1</tt>'de 1 sayfada g鰏terilemeyecek kadar 鏾k kotaya sahip grup var
lgroups_quotas=<tt>$1</tt>'deki B黷黱 Grup Kotalar
lgroups_blocks=Blok
lgroups_files=Dosya
lgroups_group=Grup
lgroups_used=Kullan齦an
lgroups_soft=Soft Limit
lgroups_hard=Hard Limit
lgroups_noquota=<tt>$1</tt>'de kotaya sahip grup yok
lgroups_equota=Bunun i鏸n kotay de餴⺶ir:
lgroups_grace=Gecikme Zamanlar齨 De餴⺶ir
lgroups_check=Kotalar Kontrol Et

sgroup_egroup=Bu grubun kotalar de餴⺶irmek i鏸n izininiz yoktur
sgroup_efs=Bu dosya sistemindeki kotalar de餴⺶irmek i鏸n izininiz yoktur.

save_sync_0=Bu dosya sisteminde 鰊tan齧l kota olu⺶uramazs齨齴

suser_euser=Bu kullan齝齨齨 kotalar齨 de餴⺶irmek i鏸n izininiz yoktur
suser_efs=Bu dosya sistemindeki kotalar de餴⺶irmek i鏸n izininiz yoktur.

ufilesys_title=Kullan齝 Kotalar
ufilesys_return=dosya sistemleri listesi
ufilesys_ecannot='$1' i鏸n kotalar de餴⺶iremezsiniz
ufilesys_all=<tt>$1</tt> i鏸n B黷黱 Kotalar
ufilesys_blocks=Blok
ufilesys_files=Dosya
ufilesys_fs=Dosya Sistemi
ufilesys_used=Kullan齦an
ufilesys_soft=Soft Limit
ufilesys_hard=Hard Limit
ufilesys_nouquota=<tt>$1</tt> kullan齝齭 bu dosya sisteminde herhangi bir kotaya sahip de餴ldir
ufilesys_edit=Buradaki Kotalar De餴⺶ir:
ufilesys_copy=Kotalar Kopyala

ugracef_title=Gecikme Zamanlar
ugracef_return=kullan齝 listesi
ugracef_ecannot=Bu dosya sistemindeki gecikme s黵elerini de餴⺶iremezsiniz
ugracef_info=Her dosya sistemi blok ve dosya i鏸n bir gecikme zaman齨a sahiptir. Gecikme zaman kullan齝齨齨 soft limiti a⺶齨da daha fazla dosya olu⺶uramadan 鰊ceki s黵eyi belirler.
ugracef_graces=<tt>$1</tt> i鏸n Kullan齝 Gecikme S黵eleri
ugracef_block=Blok kotalar i鏸n
ugracef_file=Dosya kotalar i鏸n
ugracef_update=G黱celle

ugraces_esave=Gecikme s黵elerinin kaydedilmesinde hata olu⺶u
ugraces_eedit=Bu dosya sistemindeki gecikme s黵elerini de餴⺶iremezsiniz
ugraces_enumber='$1' bir say de餴ldir

lusers_failed=Kullan齝齦ar齨 listelenmesinde hata olu⺶u
lusers_eallow=Bu dosya sistemindeki kotalar de餴⺶irmek i鏸n izininiz yoktur
lusers_title=Dosya sistemi kotalar
lusers_return=dosya sistemleri listesi
lusers_toomany=Burada bir sayfada g鰏terilmeyecek kadar fazla kotaya sahip kullan齝 var
lusers_qoutas=<tt>$1</tt>'deki B黷黱 Kullan齝 Kotalar
lusers_blocks=Blok
lusers_files=Dosya
lusers_user=Kullan齝
lusers_used=Kullan齦an
lusers_soft=Soft Limit
lusers_hard=Hard Limit
lusers_noquota=Burada kotaya sahip kullan齝 yok 
lusers_equota=Kotalar De餴⺶ir:
lusers_egrace=Gecikme S黵elerini De餴⺶ir
lusers_check=Kotalar Kontrol Et
lusers_info=Webmin yeni bir Unix kullan齝齭 olu⺶uruldu饀nda bu dosya sistemindeki kotas齨齨 otomatik olarak ayarlanmas i鏸n yap齦and齬齦abilir.Bu sadece kullan齝 eklenirken Webmin Kullan齝齦ar ve Gruplar Mod黮 kullan齦d齨da ge鏴rlidir
lusers_useradmin=Kullan齝齦ar ve Gruplar
lusers_newuser=Yeni Kullan齝 Kotalar
lusers_sblimit=Soft Blok Limiti
lusers_hblimit=Hard Blok Limiti
lusers_sflimit=Soft Dosya Limiti
lusers_hflimit=Hard Dosya Limiti
lusers_apply=Uygula

grace_seconds=Saniye
grace_minutes=Dakika
grace_hours=Saat
grace_days=G黱
grace_weeks=Hafta
grace_months=Ay

log_activate_u=$1'de kullan齝 kotalar aktif hale getirildi
log_activate_g=$1'de grup kotalar aktif hale getirildi
log_activate_ug=$1'de kullan齝 ve grup kotalar aktif hale getirildi
log_deactivate_u=$1'de kullan齝 kotalar kapat齦d
log_deactivate_g=$1'de grup kotalar kapat齦d
log_deactivate_ug=$1'de kullan齝 ve grup kotalar kapat齦d
log_save=$2'de $1 i鏸n kotalar de餴⺶irildi
log_sync=$1'de yeni kullan齝 kotalar de餴⺶irildi
log_grace_u=$1'de kullan齝 gecikme zamanlar de餴⺶irildi
log_grace_g=$1'de grup gecikme zamanlar de餴⺶irildi
log_check=$1'de kotalar kontrol edildi
log_copy_u=Kullan齝 $1'in kotalar kopyaland
log_copy_g=Grup $1'in kotalar kopyaland

 0707010004b142000081a40000000000000002000000013ac03895000018a4000000200000000000000000000000000000001700000003reloc/quota/lang/zh_CN    quota_unlimited=无限

acl_fss=这个用户可编辑文件系统
acl_fall=所有文件系统
acl_fsel=已选的..
acl_quotaon=允许还是禁止磁盘配额?
acl_quotanew=是否新用户磁盘配额限制?
acl_ugrace=是否可编辑用户使用时间?
acl_vtotal=是否可以查看总共磁盘空间?
acl_ggrace=是否可以编辑组使用时间?
acl_uquota=用户中的这个用户可以编辑磁盘配额针对
acl_gquota=组中的这个用户可以编辑配额针对
acl_uall= 所有用户
acl_uonly= 仅用户
acl_uexcept= 所有其它用户
acl_ugroup= 主组用户
acl_gall= 所有组
acl_gnone= 没有组
acl_gonly= 只有组
acl_gexcept= 所有其它用户

activate_eallow=在本文件系统上不能启用和禁止磁盘配额
activate_eon=打开配额失败
activate_eoff=关闭配额失败

check_title=检查配额
check_return=$1 列表
check_ecannot=不能检查本文件系统的文件配额
check_running=<tt>配额检查</tt>命令在<tt>$1</tt>上将进行文件和磁盘块的检查,对于一个大硬盘需要很长时间
check_done=... 执行
check_rgroup=组
check_ruser=用户

cgroup_efail=拷贝配额失败
cgroup_ecannot=不能拷贝配额
cgroup_egallow=不能拷贝这个组的配额
cgroup_enogroup=没有组可拷贝到
cgroup_eallowto=不允许拷贝配额到 '$1'

cgform_title=拷贝配额
cgform_return=组配额
cgform_ecannot=不能拷贝配额
cgform_egroup=不允许拷贝这个组的配额
cgform_copyto=拷贝所有文件系统<tt>$1</tt>的文件配额
cgform_all=系统是的所有组
cgform_select=选定组
cgform_contain=包含用户的组
cgform_doit=拷贝

cuser_efail=拷贝组失败
cuser_ecannot=不能拷贝配额
cuser_euallow=不允许拷贝这个用户的配额
cuser_enouser=没有用户拷贝到
cuser_eallowto=不允许拷贝配额到'$1'

cuform_title=拷贝配额
cuform_return=用户配额
cuform_ecannot=不能拷贝配额
cuform_euallow=不允许拷贝这个用户的
cuform_copyto=拷贝所用文件系统的配额<tt>$1</tt>到
cuform_all=系统是的所用用户
cuform_select=选定的用户
cuform_members=选定组成员
cuform_doit=拷贝

egroup_title=编辑配额
egroup_freturn=文件系统列表
egroup_greturn=组列表
egroup_eallowgr=不允许编辑 '$1'的文件配额
egroup_eallowfs=不允许编辑文件系统的配额
egroup_quotas=<tt>$2</tt>是的<tt>$1</tt>配额
egroup_bused=已用块
egroup_sblimit=软块限制
egroup_hblimit=硬块限制
egroup_fused=文件使用
egroup_sflimit=认软文件限制
egroup_hflimit=硬文件限制
egroup_update=更新
egroup_listall=列表所有配额

euser_title=编辑配额
euser_freturn=文件系统列表
euser_ureturn=用户列表
euser_eallowus=不允许编辑'$1'的配额
euser_eallowfs=不允许编辑本文件系统的配额
euser_quotas=<tt>$2</tt>上<tt>$1</tt>的配额
euser_bused=已用块
euser_sblimit=软块限制
euser_hblimit=硬块限制
euser_fused=已用文件
euser_sflimit=软文件限制
euser_hflimit=硬文件限制
euser_update=更新
euser_listall=列表所用配额

gfilesys_title=组配额
gfilesys_return=文件列表
gfilesys_ecannot=不能编辑'$1'的文件配额
gfilesys_all=所有配额对
gfilesys_blocks=块
gfilesys_files=文件
gfilesys_fs=文件系统
gfilesys_used=已用
gfilesys_soft=软限制
gfilesys_hard=硬限制
gfilesys_nogquota=组 <tt>$1</tt> 在任何文件系统上都没有配额限制
gfilesys_edit=编辑配置限额:
gfilesys_copy=拷贝配额

ggracef_title=使用时间
ggracef_return=组列表
ggracef_ecannot=不能编辑文件系统是的使用时间
ggracef_info=每个文件系统都有块和文件配额使用时间. 使用时间决定了一个组在没有更多的文件建立之前保留的时间
ggracef_graces=<tt>$1</tt>的组使用时间
ggracef_block=对块配额
ggracef_file=对文件配额
ggracef_update=更新

ggraces_esave=保存使用时间失败
ggraces_eedit=不能编辑文件系统的使用时间
ggraces_enumber='$1' 不是数字

index_quser=用户配额
index_qgroup=组配额
index_qboth=用户和组配额
index_active=激活
index_disable=禁止配额
index_inactive=非激活
index_enable=允许配额
index_title=磁盘配额
index_fs=文件系统
index_type=类型
index_mount=挂接自
index_status=状态
index_action=动作
index_return=索引
index_euser=编辑用户配额:
index_egroup=编辑组配额:
index_nosupport=本地文件系统不支持配额

lgroups_failed=组列表失败
lgroups_eallow=不允许编辑这个文件系统上的配额
lgroups_title=文件系统配额
lgroups_return=文件系统列表
lgroups_toomany=显示在一页用户组上的<tt>$1</tt>配置太多
lgroups_quotas=在<tt>$1</tt>所有组的配置
lgroups_blocks=块
lgroups_files=文件
lgroups_group=组
lgroups_used=已用
lgroups_soft=软限制
lgroups_hard=硬限制
lgroups_noquota=在<tt>$1</tt>没有组限制
lgroups_equota=编辑配额为:
lgroups_grace=编辑修饰的次数
lgroups_check=检查配额

sgroup_egroup=不允许编辑这个组的配额
sgroup_efs=不允许编辑这个文件系统的配额

ssync_ecannot=不能设置这个文件系统的配额

suser_euser=不允许编辑这个用户的配额
suser_efs=不允许编辑这个文件系统的配额

ufilesys_title=用户配额
ufilesys_return=文件系统列表
ufilesys_ecannot=不能编辑'$1'的配额
ufilesys_all=<tt>$1</tt>的所有配额
ufilesys_blocks=块
ufilesys_files=文件
ufilesys_fs=文件系统
ufilesys_used=已用
ufilesys_soft=软限制
ufilesys_hard=硬限制
ufilesys_nouquota=用户<tt>$1</tt> 没有在任何文件系统配额
ufilesys_edit=编辑配额在:
ufilesys_copy=拷贝配额

ugracef_title=使用时间
ugracef_return=用户列表
ugracef_ecannot=不能编辑本文件系统的的使用时间
ugracef_info=每个文件系统都块和文件的有使用时间.这个使用时间决定的用户的在没有更多文件建立前的保留时间
ugracef_graces=用户保留时间为<tt>$1</tt>
ugracef_block=为块的配额
ugracef_file=对文件配额
ugracef_update=更新

ugraces_esave=保存使用时间失败
ugraces_eedit=不能编辑本文件系统上的使用时间
ugraces_enumber='$1' 不是数

lusers_failed=列表用户失败
lusers_eallow=不允许编辑本文件系统上的配额
lusers_title=文件系统配额
lusers_return=文件系统列表
lusers_toomany=配额用户太多<tt>$1</tt>显示在一页上
lusers_qoutas=所有用户使用配额<tt>$1</tt>
lusers_blocks=块
lusers_files=文件
lusers_user=用户
lusers_used=已用
lusers_soft=软限制
lusers_hard=硬限制
lusers_noquota=没有用户使用配额
lusers_equota=编辑配额针对:
lusers_egrace=编辑使用时间
lusers_check=检查配额
lusers_info=Webmin 可以配置为建立新用户时在本文件系统上自动配额限制. 正常工作的必须条件是 $1 Webmin 模块用来添加用户
lusers_useradmin=用户, 组和 口令
lusers_newuser=新用户配额
lusers_sblimit=软块限制
lusers_hblimit=硬块限制
lusers_sflimit=软文件限制
lusers_hflimit=硬文件限制
lusers_apply=改动生效

grace_seconds=秒
grace_minutes=分钟
grace_hours=小时
grace_days=天
grace_weeks=星期
grace_months=月

log_activate_u=在 $1 上用户能够进行用户配额
log_activate_g=在 $1 上能够进行组配额
log_activate_ug=在 $1 上能够进行用户和组配额
log_deactivate_u=在 $1 上取消用户配额
log_deactivate_g=在 $1 上取消组配额
log_deactivate_ug=在 $1 上取消用户和组配额
log_save=在 $2 上改变 $1 的配额
log_sync=在 $1 上改变新用户的配额
log_grace_u=在 $1 上改变用户修饰的次数
log_grace_g=在 $1 上改变组修饰的次数
log_check=在 $1 上检查配额
log_copy_u=拷贝用户 $1 的配额
log_copy_g=拷贝组$1 的配额
070701000482c0000081a40000000000000002000000013ac03895000024f5000000200000000000000000000000000000001900000003reloc/quota/linux-lib.pl  # linux-lib.pl
# Quota functions for all linux version

# quotas_init()
sub quotas_init
{
if (&has_command("quotaon") && &has_command("quotaoff")) {
	return undef;
	}
else {
	return "The quotas package does not appear to be installed on ".
	       "your system\n";
	}
}

# quotas_supported()
# Returns 1 for user quotas, 2 for group quotas or 3 for both
sub quotas_supported
{
return 3;
}

# free_space(filesystem)
# Returns an array containing  btotal, bfree, ftotal, ffree
sub free_space
{
local(@out, @rv);
$out = `df $_[0]`;
$out =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)/;
push(@rv, ($1, $2));
$out = `df -i $_[0]`;
$out =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)/;
push(@rv, ($1, $2));
return @rv;
}

# quota_can(&mnttab, &fstab)
# Can this filesystem type support quotas?
#  0 = No quota support (or not turned on in /etc/fstab)
#  1 = User quotas only
#  2 = Group quotas only
#  3 = User and group quotas
sub quota_can
{
return ($_[1]->[3] =~ /usrquota/ ? 1 : 0) +
       ($_[1]->[3] =~ /grpquota/ ? 2 : 0);
}

# quota_now(&mnttab, &fstab)
# Are quotas currently active?
#  0 = Not active
#  1 = User quotas active
#  2 = Group quotas active
#  3 = Both active
sub quota_now
{
local $rv = 0;
local $dir = $_[0]->[0];
if ($_[0]->[4]%2 == 1) {
	# test user quotas
	if (-r "$dir/quota.user") {
		$out = `$config{'user_quotaon_command'} $dir 2>&1`;
		if ($out =~ /Device or resource busy/i) {
			# already on..
			$rv += 1;
			}
		elsif ($out =~ /Package not installed/i) {
			# No quota support!
			return 0;
			}
		else {
			# was off.. need to turn on again
			`$config{'user_quotaoff_command'} $dir 2>&1`;
			}
		}
	}
if ($_[0]->[4] > 1) {
	# test group quotas
	if (-r "$dir/quota.group") {
		$out = `$config{'group_quotaon_command'} $dir 2>&1`;
		if ($out =~ /Device or resource busy/i) {
			# already on..
			$rv += 2;
			}
		elsif ($out =~ /Package not installed/i) {
			# No quota support!
			return 0;
			}
		else {
			# was off.. need to turn on again
			`$config{'group_quotaoff_command'} $dir 2>&1`;
			}
		}
	}
return $rv;
}

# quotaon(filesystem, mode)
# Activate quotas and create quota files for some filesystem. The mode can
# be 1 for user only, 2 for group only or 3 for user and group
sub quotaon
{
local($out, $qf, @qfile, $flags);
if ($_[1]%2 == 1) {
	# turn on user quotas
	$qf = "$_[0]/quota.user";
	if (!(-r $qf)) {
		open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
		chmod(0600, $qf);
		&system_logged("$config{'quotacheck_command'} $_[0]");
		}
	$out = &backquote_logged("$config{'user_quotaon_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
if ($_[1] > 1) {
	# turn on group quotas
	$qf = "$_[0]/quota.group";
	if (!(-r $qf)) {
		open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
		chmod(0600, $qf);
		&system_logged("$config{'quotacheck_command'} $_[0]");
		}
	$out = &backquote_logged("$config{'group_quotaon_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# quotaoff(filesystem, mode)
# Turn off quotas for some filesystem
sub quotaoff
{
local($out);
if ($_[1]%2 == 1) {
	$out = &backquote_logged("$config{'user_quotaoff_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
if ($_[1] > 1) {
	$out = &backquote_logged("$config{'group_quotaoff_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# user_filesystems(user)
# Fills the array %filesys with details of all filesystem some user has
# quotas on
sub user_filesystems
{
return &parse_quota_output("$config{'user_quota_command'} $_[0]");
}

# user_filesystems(user)
# Fills the array %filesys with details of all filesystem some group has
# quotas on
sub group_filesystems
{
return &parse_quota_output("$config{'group_quota_command'} $_[0]");
}

sub parse_quota_output
{
local($n, $_, %mtab);
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	@m = split(/\s+/);
	$mtab{$m[0]} = $m[1];
	}
close(MTAB);
open(QUOTA, "$_[0] |");
$n=0; while(<QUOTA>) {
	chop;
	if (/^(Disk|\s+Filesystem)/) { next; }
	if (/^(\S+)$/) {
		# Bogus wrapped line
		$filesys{$n,'filesys'} = $mtab{$1};
		<QUOTA>=~/^.{15}.(.{7}).(.{7}).(.{7}).{8}.(.{7}).(.{7}).(.{7})/;
		$filesys{$n,'ublocks'} = int($1);
		$filesys{$n,'sblocks'} = int($2);
		$filesys{$n,'hblocks'} = int($3);
		$filesys{$n,'ufiles'} = int($4);
		$filesys{$n,'sfiles'} = int($5);
		$filesys{$n,'hfiles'} = int($6);
		$n++;
		}
	elsif (/^(.{15}).(.{7}).(.{7}).(.{7}).{8}.(.{7}).(.{7}).(.{7})/) {
		$filesys{$n,'ublocks'} = int($2);
		$filesys{$n,'sblocks'} = int($3);
		$filesys{$n,'hblocks'} = int($4);
		$filesys{$n,'ufiles'} = int($5);
		$filesys{$n,'sfiles'} = int($6);
		$filesys{$n,'hfiles'} = int($7);
		$dev = $1; $dev =~ s/\s+$//g; $dev =~ s/^\s+//g;
		$filesys{$n,'filesys'} = $mtab{$dev};
		$n++;
		}
	}
close(QUOTA);
return $n;
}

# filesystem_users(filesystem)
# Fills the array %user with information about all users with quotas
# on this filesystem. This may not be all users on the system..
sub filesystem_users
{
return &parse_repquota_output(
	"$config{'user_repquota_command'} $_[0]", "user");
}

sub filesystem_groups
{
return &parse_repquota_output(
	"$config{'group_repquota_command'} $_[0]", "group");
}

sub parse_repquota_output
{
local($rep, @rep, $n, $what, $u, @uinfo);
$what = $_[1];
$rep = `$_[0] 2>&1`;
if ($?) { return -1; }
if ($what eq 'user') {
	setpwent();
	while(@uinfo = getpwent()) {
		$hasu{$uinfo[0]}++;
		}
	endpwent();
	}
else {
	setgrent();
	while(@uinfo = getgrent()) {
		$hasu{$uinfo[0]}++;
		}
	endgrent();
	}
@rep = split(/\n/, $rep); @rep = @rep[3..$#rep];
for($n=0; $n<@rep; $n++) {
	if ($rep[$n] =~ /(\S+)\s*[\-\+]{2}(.{8})(.{8})(.{8}).{7}(.{8})(.{6})(.{6})/) {
		$$what{$n,$what} = $1;
		$$what{$n,'ublocks'} = int($2);
		$$what{$n,'sblocks'} = int($3);
		$$what{$n,'hblocks'} = int($4);
		$$what{$n,'ufiles'} = int($5);
		$$what{$n,'sfiles'} = int($6);
		$$what{$n,'hfiles'} = int($7);
		if ($$what{$n,$what} !~ /^\d+$/ && !$hasu{$$what{$n,$what}}) {
			# User/group name was truncated! Try to find him..
			foreach $u (keys %hasu) {
				if (substr($u, 0, length($$what{$n,$what})) eq
				    $$what{$n,$what}) {
					# found him..
					$$what{$n,$what} = $u;
					last;
					}
				}
			}
		}
	}
return $n;
}

# edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles)
sub edit_quota_file
{
local($rv, $line, %mtab, @m);
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	@m = split(/\s+/);
	$mtab{$m[0]} = $m[1];
	}
close(MTAB);
@line = split(/\n/, $_[0]);
for($i=0; $i<@line; $i++) {
	if ($line[$i] =~ /^(\S+): blocks in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/ && $mtab{$1} eq $_[1]) {
		# found lines to change
		$rv .= "$1: blocks in use: $2, limits (soft = $_[2], hard = $_[3])\n";
		$line[++$i] =~ /^\s*inodes in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/;
		$rv .= "\tinodes in use: $1, limits (soft = $_[4], hard = $_[5])\n";
		}
	else { $rv .= "$line[$i]\n"; }
	}
return $rv;
}

# quotacheck(filesystem, mode)
# Runs quotacheck on some filesystem
sub quotacheck
{
$out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1");
if ($?) { return $out; }
return undef;
}

# copy_user_quota(user, [user]+)
# Copy the quotas for some user to many others
sub copy_user_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'user_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# copy_group_quota(group, [group]+)
# Copy the quotas for some group to many others
sub copy_group_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'group_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# get_user_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day
sub get_user_grace
{
return &parse_grace_output($config{'user_grace_command'}, $_[0]);
}

# get_group_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day
sub get_group_grace
{
return &parse_grace_output($config{'group_grace_command'}, $_[0]);
}

# default_grace()
# Returns 0 if grace time can be 0, 1 if zero grace means default
sub default_grace
{
return 0;
}

sub parse_grace_output
{
local(@rv, %mtab, @m);
open(MTAB, "/etc/mtab");
while(<MTAB>) { @m = split(/\s+/); $mtab{$m[0]} = $m[1]; }
close(MTAB);
$ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat";
open(GRACE, "$_[0] |");
while(<GRACE>) {
	if (/^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $mtab{$1} eq $_[1]) {
		@rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5});
		}
	}
close(GRACE);
return @rv;
}

# edit_grace_file(data, filesystem, btime, bunits, ftime, funits)
sub edit_grace_file
{
local($rv, $line, @m, %mtab);
open(MTAB, "/etc/mtab");
while(<MTAB>) { @m = split(/\s+/); $mtab{$m[0]} = $m[1]; }
close(MTAB);
foreach $line (split(/\n/, $_[0])) {
	if ($line =~ /^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $mtab{$1} eq $_[1]) {
		# replace this line
		$line = "$1: block grace period: $_[2] $unit_to_name{$_[3]}, file grace period: $_[4] $unit_to_name{$_[5]}";
		}
	$rv .= "$line\n";
	}
return $rv;
}

# grace_units()
# Returns an array of possible units for grace periods
sub grace_units
{
return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'},
	$text{'grace_days'});
}

%name_to_unit = ( "second", 0, "seconds", 0,
		  "minute", 1, "minutes", 1,
		  "hour", 2, "hours", 2,
		  "day", 3, "days", 3,
		);
foreach $k (keys %name_to_unit) {
	$unit_to_name{$name_to_unit{$k}} = $k;
	}

1;

   070701000482c1000081e40000000000000002000000013ac0389500000c22000000200000000000000000000000000000001c00000003reloc/quota/list_groups.cgi   #!/usr/local/bin/perl
# list_groups.cgi
# Lists all the groups with quotas on some filesystem

require './quota-lib.pl';
$f = $ARGV[0];
$whatfailed = $text{'lgroups_failed'};
&can_edit_filesys($f) ||
	&error($text{'lgroups_eallow'});

# List quotas
&header($text{'lgroups_title'}, "", "list_groups");
print "<hr>\n";
$n = &filesystem_groups($f);
if ($n > $config{'display_max'}) {
	print "<b>",&text('lgroups_toomany', $f),"</b><br>\n";
	}
elsif ($n) {
	print "<h3>",&text('lgroups_quotas', $f),"</h3>\n";
	print "<table border width=100%>\n";
	print "<tr $tb> <td></td>\n";

	($binfo, $finfo) = &filesystem_info($f, \%group, $n);
	print "<td colspan=3 align=center>\n";
	print "<b>$text{'lgroups_blocks'}</b> &nbsp;&nbsp;&nbsp; ($binfo)\n"
		if ($access{'diskspace'});
	print "</td> <td colspan=3 align=center>\n";
	print "<b>$text{'lgroups_files'}</b> &nbsp;&nbsp;&nbsp; ($finfo)\n"
		if ($access{'diskspace'});
	print "</td> </tr>\n";
	print "<tr $tb> <td><b>$text{'lgroups_group'}</b></td>\n";
	print "<td><b>$text{'lgroups_used'}</b></td> <td><b>$text{'lgroups_soft'}</b></td>\n";
	print "<td><b>$text{'lgroups_hard'}</b></td>\n";
	print "<td><b>$text{'lgroups_used'}</b></td> <td><b>$text{'lgroups_soft'}</b></td>\n";
	print "<td><b>$text{'lgroups_hard'}</b></td> </tr>\n";
	@order = (0 .. $n-1);
	@order = sort { $group{$b,'ublocks'} <=> $group{$a,'ublocks'} } @order;
	foreach $i (@order) {
		next if (!&can_edit_group($group{$i,'group'}));
		print "<tr $cb>\n";
		print "<td><a href=\"edit_group_quota.cgi?group=$group{$i,'group'}",
		      "&filesys=$f&source=0\">$group{$i,'group'}</a></td>\n";
		print "<td>$group{$i,'ublocks'}</td>\n";
		&print_limit($group{$i,'sblocks'});
		&print_limit($group{$i,'hblocks'});
		print "<td>$group{$i,'ufiles'}</td>\n";
		&print_limit($group{$i,'sfiles'});
		&print_limit($group{$i,'hfiles'});
		print "</tr>\n";
		}
	print "</table><br>\n";
	}
else {
	print "<b>",&text('lgroups_noquota', $f),"</b><br>\n";
	}

print "<table width=100%><tr>\n";
print "<form action=edit_group_quota.cgi>\n";
print "<input type=hidden name=filesys value=\"$f\">\n";
print "<input type=hidden name=source value=0>\n";
print "<td align=left width=33%>\n";
print "<input type=submit value=\"$text{'lgroups_equota'}\">\n";
print "<input name=group size=8> ",
      &group_chooser_button("group",0),"</td></form>\n";

if ($access{'ggrace'}) {
	print "<form action=group_grace_form.cgi>\n";
	print "<input type=hidden name=filesys value=\"$f\">\n";
	print "<td align=center width=33%>\n";
	print "<input type=submit value=\"$text{'lgroups_grace'}\">\n";
	print "</td></form>\n";
	}
else { print "<td width=33%></td>\n"; }

print "<form action=check_quotas.cgi>\n";
print "<input type=hidden name=filesys value=\"$f\">\n";
print "<input type=hidden name=source value=group>\n";
print "<td align=right width=33%><input type=submit value=\"$text{'lgroups_check'}\">\n";
print "</td></form> </tr></table>\n";

print "<hr>\n";
&footer("", $text{'lgroups_return'});

sub print_limit
{
if ($_[0] == 0) { print "<td>$text{'quota_unlimited'}</td>\n"; }
else { print "<td>$_[0]</td>\n"; }
}

  070701000482c2000081e40000000000000002000000013ac038940000100c000000200000000000000000000000000000001b00000003reloc/quota/list_users.cgi    #!/usr/local/bin/perl
# list_users.cgi
# Lists all the users with quotas on some filesystem

require './quota-lib.pl';
$f = $ARGV[0];
$whatfailed = $text{'lusers_failed'};
&can_edit_filesys($f) ||
	&error($text{'lusers_eallow'});

# List quotas
&header($text{'lusers_title'}, "", "list_users");
print "<hr>\n";
$n = &filesystem_users($f);
if ($n > $config{'display_max'}) {
	print "<b>", &text('lusers_toomany', $f), "</b><br>\n";
	}
elsif ($n) {
	print "<h3>",&text('lusers_qoutas', $f),"</h3>\n";
	print "<table border width=100%>\n";
	print "<tr $tb> <td><br></td>\n";

	($binfo, $finfo) = &filesystem_info($f, \%user, $n);
	print "<td colspan=3 align=center>\n";
	print "<b>$text{'lusers_blocks'}</b> &nbsp;&nbsp;&nbsp; ($binfo)\n"
		if ($access{'diskspace'});
	print "</td> <td colspan=3 align=center>\n";
	print "<b>$text{'lusers_files'}</b> &nbsp;&nbsp;&nbsp; ($finfo)\n"
		if ($access{'diskspace'});

	print "</td> </tr>\n";
	print "<tr $tb> <td><b>$text{'lusers_user'}</b></td>\n";
	print "<td><b>$text{'lusers_used'}</b></td> <td><b>$text{'lusers_soft'}</b></td>\n";
	print "<td><b>$text{'lusers_hard'}</b></td>\n";
	print "<td><b>$text{'lusers_used'}</b></td> <td><b>$text{'lusers_soft'}</b></td>\n";
	print "<td><b>$text{'lusers_hard'}</b></td> </tr>\n";
	@order = (0 .. $n-1);
	@order = sort { $user{$b,'ublocks'} <=> $user{$a,'ublocks'} } @order;
	foreach $i (@order) {
		next if (!&can_edit_user($user{$i,'user'}));
		print "<tr $cb>\n";
		print "<td><a href=\"edit_user_quota.cgi?user=$user{$i,'user'}",
		      "&filesys=$f&source=0\">$user{$i,'user'}</a></td>\n";
		print "<td>$user{$i,'ublocks'}</td>\n";
		&print_limit($user{$i,'sblocks'});
		&print_limit($user{$i,'hblocks'});
		print "<td>$user{$i,'ufiles'}</td>\n";
		&print_limit($user{$i,'sfiles'});
		&print_limit($user{$i,'hfiles'});
		print "</tr>\n";
		}
	print "</table><br>\n";
	}
else {
	print "<b>",&text('lusers_noquota', $f),"</b><br>\n";
	}

print "<table width=100%><tr>\n";
print "<form action=edit_user_quota.cgi>\n";
print "<input type=hidden name=filesys value=\"$f\">\n";
print "<input type=hidden name=source value=0>\n";
print "<td align=left width=33%>\n";
print "<input type=submit value=\"$text{'lusers_equota'}\">\n";
print "<input name=user size=8> ",
      &user_chooser_button("user", 0),"</td></form>\n";

if ($access{'ugrace'}) {
	print "<form action=user_grace_form.cgi>\n";
	print "<input type=hidden name=filesys value=\"$f\">\n";
	print "<td align=center width=33%>\n";
	print "<input type=submit value=\"$text{'lusers_egrace'}\">\n";
	print "</td></form>\n";
	}
else { print "<td width=33%></td>\n"; }

print "<form action=check_quotas.cgi>\n";
print "<input type=hidden name=filesys value=\"$f\">\n";
print "<input type=hidden name=source value=user>\n";
print "<td align=right width=33%><input type=submit value=\"$text{'lusers_check'}\">\n";
print "</td></form> </tr></table>\n";

if ($access{'default'}) {
	print "<hr>\n";
	print &text('lusers_info', $text{'lusers_useradmin'});
	print "<p>\n";

	@dquot = split(/\s+/, $config{"sync_$f"});
	print "<form action=save_sync.cgi>\n";
	print "<input type=hidden name=filesys value=\"$f\">\n";
	print "<table width=100% border> <tr $tb>\n";
	print "<td colspan=2><b>$text{'lusers_newuser'}</b></td> </tr> <tr $cb>\n";

	print "<td width=50%><table><tr>\n";
	print "<td><b>$text{'lusers_sblimit'}</b></td> <td>\n";
	&quota_input("sblocks", $dquot[0]);
	print "</td> </tr><tr> <td><b>$text{'lusers_hblimit'}</b></td> <td>\n";
	&quota_input("hblocks", $dquot[1]);
	print "</td> </tr></table></td>\n";

	print "<td width=50%><table><tr>\n";
	print "<td><b>$text{'lusers_sflimit'}</b></td> <td>\n";
	&quota_input("sfiles", $dquot[2]);
	print "</td> </tr><tr> <td><b>$text{'lusers_hflimit'}</b></td> <td>\n";
	&quota_input("hfiles", $dquot[3]);
	print "</td> </tr></table></td>\n";
	print "</tr> </table><p>\n";
	print "<input type=submit value=$text{'lusers_apply'}></form>\n";
	}

print "<hr>\n";
&footer("", $text{'lusers_return'});

sub print_limit
{
if ($_[0] == 0) { print "<td>$text{'quota_unlimited'}</td>\n"; }
else { print "<td>$_[0]</td>\n"; }
}

070701000482c3000081a40000000000000002000000013ac03895000004bb000000200000000000000000000000000000001a00000003reloc/quota/log_parser.pl # log_parser.pl
# Functions for parsing this module's logs

require './quota-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p) = @_;
if ($action eq 'activate') {
	return &text($p->{'mode'} == 1 ? 'log_activate_u' :
		     $p->{'mode'} == 2 ? 'log_activate_g' :
		     'log_activate_ug', "<tt>$object</tt>");
	}
elsif ($action eq 'deactivate') {
	return &text($p->{'mode'} == 1 ? 'log_deactivate_u' :
		     $p->{'mode'} == 2 ? 'log_deactivate_g' :
		     'log_deactivate_ug', "<tt>$object</tt>");
	}
elsif ($action eq 'save') {
	return &text('log_save', "<tt>$object</tt>",
				 "<tt>$p->{'filesys'}</tt>");
	}
elsif ($action eq 'sync') {
	return &text('log_sync', "<tt>$object</tt>");
	}
elsif ($action eq 'grace') {
	return &text($type eq 'user' ? 'log_grace_u' : 'log_grace_g',
		     "<tt>$object</tt>");
	}
elsif ($action eq 'check') {
	return &text('log_check', "<tt>$object</tt>");
	}
elsif ($action eq 'copy') {
	return &text($type eq 'user' ? 'log_copy_u' : 'log_copy_g',
		     "<tt>$object</tt>");
	}
else {
	return undef;
	}
}

 070701000482c4000081a40000000000000002000000013ac03893000001ed000000200000000000000000000000000000001800000003reloc/quota/module.info   desc_zh_CN=磁盘限额
name=Quota
desc_pt=Quotas de Disco
depends=mount
desc_tr=Disk Kotalar
desc_fr=Quotas des Disques
desc_es=Cuotas de Disco
desc_de=Festplatten-Quotas
desc_sv=Diskquota
desc_ru_SU=渖铀献倥 胱显
desc_pl=Quota na dyskach
category=system
os_support=solaris redhat-linux slackware-linux debian-linux suse-linux hpux freebsd open-linux unixware turbo-linux openbsd corel-linux cobalt-linux
desc_zh_TW.Big5=合盒皌肂
desc=Disk Quotas
risk=low medium high
desc_ru_RU=蔫耜钼 殊铗
   070701000482c5000081e40000000000000002000000013ac03895000006c9000000200000000000000000000000000000001200000003reloc/quota/notes Solaris
-------
The quota or rq options in /etc/vfstab are only used by quotaon -a at boot
time, to determine whether to turn on quotas for the filesystem.
When quotas are activated, the quota option is added to /etc/mnttab. Actually
mounting with this option is pointless - only the quotaon command can really
turn on quotas.

When quotas are newly enabled for a filesystem and a user assigned block
limits (but not file), these limits seem to take effect immediately. 
When the file limits are turned on, they also take effect immediately
(but the number of existing files does not seem to be computed).

On the other hand, blocks used are always recorded even if the quotas
are set to 'unlimited'.

Linux
-----
The usrquota and grpquota options in /etc/fstab are used by quotaon
whenever it is run. Unlike solaris, the filesystem must exist in the fstab
file (and have quota options) for quotaon to do anything. Also, quotaon does
not update the mtab file when quotas are turned on (but does complain if 
quotas are activated twice). Similarly, quotaoff does nothing unless the
quota options are given in /etc/fstab
The quota option documented in the man pages seems to be totally ignored - 
only usrquota and grpquota are used by quotaon.

Quotas seem to have some problems under redhat linux using kernel 2.0.21
(redhat 5.1). quotacheck and repquota will often hang when both user and
group quotas are active at the same time. Each can be used separately
with no problems though (as long as a quotacheck is done after creating
the quotas file!)

When quotas are enable for some filesystem, they take effect immediately for
both files and blocks. Even if a user creates files and then has quotas
set, the counts will be up to date.

   070701000482c6000081a40000000000000002000000013ac03895000024f5000000200000000000000000000000000000001e00000003reloc/quota/open-linux-lib.pl # linux-lib.pl
# Quota functions for all linux version

# quotas_init()
sub quotas_init
{
if (&has_command("quotaon") && &has_command("quotaoff")) {
	return undef;
	}
else {
	return "The quotas package does not appear to be installed on ".
	       "your system\n";
	}
}

# quotas_supported()
# Returns 1 for user quotas, 2 for group quotas or 3 for both
sub quotas_supported
{
return 3;
}

# free_space(filesystem)
# Returns an array containing  btotal, bfree, ftotal, ffree
sub free_space
{
local(@out, @rv);
$out = `df $_[0]`;
$out =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)/;
push(@rv, ($1, $2));
$out = `df -i $_[0]`;
$out =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)/;
push(@rv, ($1, $2));
return @rv;
}

# quota_can(&mnttab, &fstab)
# Can this filesystem type support quotas?
#  0 = No quota support (or not turned on in /etc/fstab)
#  1 = User quotas only
#  2 = Group quotas only
#  3 = User and group quotas
sub quota_can
{
return ($_[1]->[3] =~ /usrquota/ ? 1 : 0) +
       ($_[1]->[3] =~ /grpquota/ ? 2 : 0);
}

# quota_now(&mnttab, &fstab)
# Are quotas currently active?
#  0 = Not active
#  1 = User quotas active
#  2 = Group quotas active
#  3 = Both active
sub quota_now
{
local $rv = 0;
local $dir = $_[0]->[0];
if ($_[0]->[4]%2 == 1) {
	# test user quotas
	if (-r "$dir/quota.user") {
		$out = `$config{'user_quotaon_command'} $dir 2>&1`;
		if ($out =~ /Device or resource busy/i) {
			# already on..
			$rv += 1;
			}
		elsif ($out =~ /Package not installed/i) {
			# No quota support!
			return 0;
			}
		else {
			# was off.. need to turn on again
			`$config{'user_quotaoff_command'} $dir 2>&1`;
			}
		}
	}
if ($_[0]->[4] > 1) {
	# test group quotas
	if (-r "$dir/quota.group") {
		$out = `$config{'group_quotaon_command'} $dir 2>&1`;
		if ($out =~ /Device or resource busy/i) {
			# already on..
			$rv += 2;
			}
		elsif ($out =~ /Package not installed/i) {
			# No quota support!
			return 0;
			}
		else {
			# was off.. need to turn on again
			`$config{'group_quotaoff_command'} $dir 2>&1`;
			}
		}
	}
return $rv;
}

# quotaon(filesystem, mode)
# Activate quotas and create quota files for some filesystem. The mode can
# be 1 for user only, 2 for group only or 3 for user and group
sub quotaon
{
local($out, $qf, @qfile, $flags);
if ($_[1]%2 == 1) {
	# turn on user quotas
	$qf = "$_[0]/quota.user";
	if (!(-r $qf)) {
		open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
		chmod(0600, $qf);
		&system_logged("$config{'quotacheck_command'} $_[0]");
		}
	$out = &backquote_logged("$config{'user_quotaon_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
if ($_[1] > 1) {
	# turn on group quotas
	$qf = "$_[0]/quota.group";
	if (!(-r $qf)) {
		open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
		chmod(0600, $qf);
		&system_logged("$config{'quotacheck_command'} $_[0]");
		}
	$out = &backquote_logged("$config{'group_quotaon_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# quotaoff(filesystem, mode)
# Turn off quotas for some filesystem
sub quotaoff
{
local($out);
if ($_[1]%2 == 1) {
	$out = &backquote_logged("$config{'user_quotaoff_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
if ($_[1] > 1) {
	$out = &backquote_logged("$config{'group_quotaoff_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# user_filesystems(user)
# Fills the array %filesys with details of all filesystem some user has
# quotas on
sub user_filesystems
{
return &parse_quota_output("$config{'user_quota_command'} $_[0]");
}

# user_filesystems(user)
# Fills the array %filesys with details of all filesystem some group has
# quotas on
sub group_filesystems
{
return &parse_quota_output("$config{'group_quota_command'} $_[0]");
}

sub parse_quota_output
{
local($n, $_, %mtab);
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	@m = split(/\s+/);
	$mtab{$m[0]} = $m[1];
	}
close(MTAB);
open(QUOTA, "$_[0] |");
$n=0; while(<QUOTA>) {
	chop;
	if (/^(Disk|\s+Filesystem)/) { next; }
	if (/^(\S+)$/) {
		# Bogus wrapped line
		$filesys{$n,'filesys'} = $mtab{$1};
		<QUOTA>=~/^.{15}.(.{7}).(.{7}).(.{7}).{8}.(.{7}).(.{7}).(.{7})/;
		$filesys{$n,'ublocks'} = int($1);
		$filesys{$n,'sblocks'} = int($2);
		$filesys{$n,'hblocks'} = int($3);
		$filesys{$n,'ufiles'} = int($4);
		$filesys{$n,'sfiles'} = int($5);
		$filesys{$n,'hfiles'} = int($6);
		$n++;
		}
	elsif (/^(.{15}).(.{7}).(.{7}).(.{7}).{8}.(.{7}).(.{7}).(.{7})/) {
		$filesys{$n,'ublocks'} = int($2);
		$filesys{$n,'sblocks'} = int($3);
		$filesys{$n,'hblocks'} = int($4);
		$filesys{$n,'ufiles'} = int($5);
		$filesys{$n,'sfiles'} = int($6);
		$filesys{$n,'hfiles'} = int($7);
		$dev = $1; $dev =~ s/\s+$//g; $dev =~ s/^\s+//g;
		$filesys{$n,'filesys'} = $mtab{$dev};
		$n++;
		}
	}
close(QUOTA);
return $n;
}

# filesystem_users(filesystem)
# Fills the array %user with information about all users with quotas
# on this filesystem. This may not be all users on the system..
sub filesystem_users
{
return &parse_repquota_output(
	"$config{'user_repquota_command'} $_[0]", "user");
}

sub filesystem_groups
{
return &parse_repquota_output(
	"$config{'group_repquota_command'} $_[0]", "group");
}

sub parse_repquota_output
{
local($rep, @rep, $n, $what, $u, @uinfo);
$what = $_[1];
$rep = `$_[0] 2>&1`;
if ($?) { return -1; }
if ($what eq 'user') {
	setpwent();
	while(@uinfo = getpwent()) {
		$hasu{$uinfo[0]}++;
		}
	endpwent();
	}
else {
	setgrent();
	while(@uinfo = getgrent()) {
		$hasu{$uinfo[0]}++;
		}
	endgrent();
	}
@rep = split(/\n/, $rep); @rep = @rep[3..$#rep];
for($n=0; $n<@rep; $n++) {
	if ($rep[$n] =~ /(\S+)\s*[\-\+]{2}(.{8})(.{8})(.{8}).{7}(.{8})(.{6})(.{6})/) {
		$$what{$n,$what} = $1;
		$$what{$n,'ublocks'} = int($2);
		$$what{$n,'sblocks'} = int($3);
		$$what{$n,'hblocks'} = int($4);
		$$what{$n,'ufiles'} = int($5);
		$$what{$n,'sfiles'} = int($6);
		$$what{$n,'hfiles'} = int($7);
		if ($$what{$n,$what} !~ /^\d+$/ && !$hasu{$$what{$n,$what}}) {
			# User/group name was truncated! Try to find him..
			foreach $u (keys %hasu) {
				if (substr($u, 0, length($$what{$n,$what})) eq
				    $$what{$n,$what}) {
					# found him..
					$$what{$n,$what} = $u;
					last;
					}
				}
			}
		}
	}
return $n;
}

# edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles)
sub edit_quota_file
{
local($rv, $line, %mtab, @m);
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	@m = split(/\s+/);
	$mtab{$m[0]} = $m[1];
	}
close(MTAB);
@line = split(/\n/, $_[0]);
for($i=0; $i<@line; $i++) {
	if ($line[$i] =~ /^(\S+): blocks in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/ && $mtab{$1} eq $_[1]) {
		# found lines to change
		$rv .= "$1: blocks in use: $2, limits (soft = $_[2], hard = $_[3])\n";
		$line[++$i] =~ /^\s*inodes in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/;
		$rv .= "\tinodes in use: $1, limits (soft = $_[4], hard = $_[5])\n";
		}
	else { $rv .= "$line[$i]\n"; }
	}
return $rv;
}

# quotacheck(filesystem, mode)
# Runs quotacheck on some filesystem
sub quotacheck
{
$out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1");
if ($?) { return $out; }
return undef;
}

# copy_user_quota(user, [user]+)
# Copy the quotas for some user to many others
sub copy_user_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'user_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# copy_group_quota(group, [group]+)
# Copy the quotas for some group to many others
sub copy_group_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'group_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# get_user_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day
sub get_user_grace
{
return &parse_grace_output($config{'user_grace_command'}, $_[0]);
}

# get_group_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day
sub get_group_grace
{
return &parse_grace_output($config{'group_grace_command'}, $_[0]);
}

# default_grace()
# Returns 0 if grace time can be 0, 1 if zero grace means default
sub default_grace
{
return 0;
}

sub parse_grace_output
{
local(@rv, %mtab, @m);
open(MTAB, "/etc/mtab");
while(<MTAB>) { @m = split(/\s+/); $mtab{$m[0]} = $m[1]; }
close(MTAB);
$ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat";
open(GRACE, "$_[0] |");
while(<GRACE>) {
	if (/^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $mtab{$1} eq $_[1]) {
		@rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5});
		}
	}
close(GRACE);
return @rv;
}

# edit_grace_file(data, filesystem, btime, bunits, ftime, funits)
sub edit_grace_file
{
local($rv, $line, @m, %mtab);
open(MTAB, "/etc/mtab");
while(<MTAB>) { @m = split(/\s+/); $mtab{$m[0]} = $m[1]; }
close(MTAB);
foreach $line (split(/\n/, $_[0])) {
	if ($line =~ /^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $mtab{$1} eq $_[1]) {
		# replace this line
		$line = "$1: block grace period: $_[2] $unit_to_name{$_[3]}, file grace period: $_[4] $unit_to_name{$_[5]}";
		}
	$rv .= "$line\n";
	}
return $rv;
}

# grace_units()
# Returns an array of possible units for grace periods
sub grace_units
{
return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'},
	$text{'grace_days'});
}

%name_to_unit = ( "second", 0, "seconds", 0,
		  "minute", 1, "minutes", 1,
		  "hour", 2, "hours", 2,
		  "day", 3, "days", 3,
		);
foreach $k (keys %name_to_unit) {
	$unit_to_name{$name_to_unit{$k}} = $k;
	}

1;

   070701000482c7000081a40000000000000002000000013ac0389500002361000000200000000000000000000000000000001b00000003reloc/quota/openbsd-lib.pl    # openbsd-lib.pl
# Quota functions for openbsd

# quotas_init()
sub quotas_init
{
return undef;
}

# quotas_supported()
# Returns 1 for user quotas, 2 for group quotas or 3 for both
sub quotas_supported
{
return 3;
}

# free_space(filesystem)
# Returns an array containing  btotal, bfree, ftotal, ffree
sub free_space
{
local(@out, @rv);
`df -i $_[0]` =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)\s+\S+\s+(\d+)\s+(\d+)/;
return ($1, $2, $3+$4, $4);
}

# quota_can(&mnttab, &fstab)
# Can this filesystem type support quotas?
#  0 = No quota support (or not turned on in /etc/fstab)
#  1 = User quotas only
#  2 = Group quotas only
#  3 = User and group quotas
sub quota_can
{
return ($_[1]->[3] =~ /userquota/ ? 1 : 0) +
       ($_[1]->[3] =~ /groupquota/ ? 2 : 0);
}

# quota_now(&mnttab, &fstab)
# Are quotas currently active?
#  0 = Not active
#  1 = User quotas active
#  2 = Group quotas active
#  3 = Both active
sub quota_now
{
return $_[0]->[3] =~ /quota/ ? 3 : 0;
}

# quotaon(filesystem, mode)
# Activate quotas and create quota files for some filesystem. The mode can
# be 1 for user only, 2 for group only or 3 for user and group
sub quotaon
{
local($out, $qf, @qfile, $flags);
if ($_[1]%2 == 1) {
	# turn on user quotas
	$qf = "$_[0]/quota.user";
	if (!(-r $qf)) {
		open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
		chmod(0600, $qf);
		&system_logged("$config{'quotacheck_command'} $_[0]");
		}
	$out = &backquote_logged("$config{'user_quotaon_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
if ($_[1] > 1) {
	# turn on group quotas
	$qf = "$_[0]/quota.group";
	if (!(-r $qf)) {
		open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
		chmod(0600, $qf);
		&system_logged("$config{'quotacheck_command'} $_[0]");
		}
	$out = &backquote_logged("$config{'group_quotaon_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# quotaoff(filesystem, mode)
# Turn off quotas for some filesystem
sub quotaoff
{
local($out);
if ($_[1]%2 == 1) {
	$out = &backquote_logged("$config{'user_quotaoff_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
if ($_[1] > 1) {
	$out = &backquote_logged("$config{'group_quotaoff_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# user_filesystems(user)
# Fills the array %filesys with details of all filesystem some user has
# quotas on
sub user_filesystems
{
local($n, $_, %mtab);
open(QUOTA, "$config{'user_quota_command'} $_[0] |");
$n=0; while(<QUOTA>) {
	chop;
	if (/^(Disk|\s+Filesystem)/) { next; }
	if (/^(\S+)$/) {
		# Bogus wrapped line
		$filesys{$n,'filesys'} = $1;
		<QUOTA>=~/^.{15}(.{8}).(.{7})(.{8}).{8}(.{8}).(.{7})(.{8})/;
		$filesys{$n,'ublocks'} = int($1);
		$filesys{$n,'sblocks'} = int($2);
		$filesys{$n,'hblocks'} = int($3);
		$filesys{$n,'ufiles'} = int($4);
		$filesys{$n,'sfiles'} = int($5);
		$filesys{$n,'hfiles'} = int($6);
		$n++;
		}
	elsif (/^(.{15})(.{8}).(.{7})(.{8}).{8}(.{8}).(.{7})(.{8})/) {
		$filesys{$n,'ublocks'} = int($2);
		$filesys{$n,'sblocks'} = int($3);
		$filesys{$n,'hblocks'} = int($4);
		$filesys{$n,'ufiles'} = int($5);
		$filesys{$n,'sfiles'} = int($6);
		$filesys{$n,'hfiles'} = int($7);
		$filesys{$n,'filesys'} = $1;
		$filesys{$n,'filesys'} =~ s/^\s+//g;
		$n++;
		}
	}
close(QUOTA);
return $n;
}

# group_filesystems(group)
# Fills the array %filesys with details of all filesystem some group has
# quotas on
sub group_filesystems
{
local($n, $_, %mtab);
open(QUOTA, "$config{'group_quota_command'} $_[0] |");
$n=0; while(<QUOTA>) {
	chop;
	if (/^(Disk|\s+Filesystem)/) { next; }
	if (/^(\S+)$/) {
		# Bogus wrapped line
		$filesys{$n,'filesys'} = $1;
		<QUOTA>=~/^.{15}(.{8}).(.{7})(.{8}).{8}(.{8}).(.{7})(.{8})/;
		$filesys{$n,'ublocks'} = int($1);
		$filesys{$n,'sblocks'} = int($2);
		$filesys{$n,'hblocks'} = int($3);
		$filesys{$n,'ufiles'} = int($4);
		$filesys{$n,'sfiles'} = int($5);
		$filesys{$n,'hfiles'} = int($6);
		$n++;
		}
	elsif (/^(.{15})(.{8}).(.{7})(.{8}).{8}(.{8}).(.{7})(.{8})/) {
		$filesys{$n,'ublocks'} = int($2);
		$filesys{$n,'sblocks'} = int($3);
		$filesys{$n,'hblocks'} = int($4);
		$filesys{$n,'ufiles'} = int($5);
		$filesys{$n,'sfiles'} = int($6);
		$filesys{$n,'hfiles'} = int($7);
		$filesys{$n,'filesys'} = $1;
		$filesys{$n,'filesys'} =~ s/^\s+//g;
		$n++;
		}
	}
close(QUOTA);
return $n;
}

# filesystem_users(filesystem)
# Fills the array %user with information about all users with quotas
# on this filesystem. This may not be all users on the system..
sub filesystem_users
{
local($rep, @rep, $n, $what);
$rep = `$config{'user_repquota_command'} $_[0] 2>&1`;
if ($?) { return -1; }
@rep = split(/\n/, $rep);
@rep = grep { !/^root\s/ } @rep[3..$#rep];
for($n=0; $n<@rep; $n++) {
	if ($rep[$n] =~ /(\S+)\s+[\-\+]{2}\s+(\d+)\s+(\d+)\s+(\d+)\s.{0,15}\s(\d+)\s+(\d+)\s+(\d+)/ || $rep[$n] =~ /(\S+)\s+..(.{8})(.{8})(.{8}).{7}(.{8})(.{8})(.{8})/) {
		$user{$n,'user'} = $1;
		$user{$n,'ublocks'} = int($2);
		$user{$n,'sblocks'} = int($3);
		$user{$n,'hblocks'} = int($4);
		$user{$n,'ufiles'} = int($5);
		$user{$n,'sfiles'} = int($6);
		$user{$n,'hfiles'} = int($7);
		}
	}
return $n;
}

# filesystem_groups(filesystem)
# Fills the array %group with information about all groups with quotas
# on this filesystem. This may not be all groups on the system..
sub filesystem_groups
{
local($rep, @rep, $n, $what);
$rep = `$config{'group_repquota_command'} $_[0] 2>&1`;
if ($?) { return -1; }
@rep = split(/\n/, $rep);
@rep = @rep[3..$#rep];
for($n=0; $n<@rep; $n++) {
	if ($rep[$n] =~ /(\S+)\s+[\-\+]{2}\s+(\d+)\s+(\d+)\s+(\d+)\s.{0,15}\s(\d+)\s+(\d+)\s+(\d+)/ || $rep[$n] =~ /(\S+)\s+..(.{8})(.{8})(.{8}).{7}(.{8})(.{8})(.{8})/) {
		$group{$n,'group'} = $1;
		$group{$n,'ublocks'} = int($2);
		$group{$n,'sblocks'} = int($3);
		$group{$n,'hblocks'} = int($4);
		$group{$n,'ufiles'} = int($5);
		$group{$n,'sfiles'} = int($6);
		$group{$n,'hfiles'} = int($7);
		}
	}
return $n;
}

# edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles)
sub edit_quota_file
{
local($rv, $line, %mtab, @m);
@line = split(/\n/, $_[0]);
for($i=0; $i<@line; $i++) {
	if ($line[$i] =~ /^(\S+): blocks in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/ && $1 eq $_[1]) {
		# found lines to change
		$rv .= "$1: blocks in use: $2, limits (soft = $_[2], hard = $_[3])\n";
		$line[++$i] =~ /^\s*inodes in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/;
		$rv .= "\tinodes in use: $1, limits (soft = $_[4], hard = $_[5])\n";
		}
	else { $rv .= "$line[$i]\n"; }
	}
return $rv;
}

# quotacheck(filesystem, mode)
# Runs quotacheck on some filesystem
sub quotacheck
{
$out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1");
if ($?) { return $out; }
return undef;
}

# copy_user_quota(user, [user]+)
# Copy the quotas for some user to many others
sub copy_user_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'user_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# copy_group_quota(group, [group]+)
# Copy the quotas for some group to many others
sub copy_group_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'group_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# default_grace()
# Returns 0 if grace time can be 0, 1 if zero grace means default
sub default_grace
{
return 0;
}

# get_user_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day
sub get_user_grace
{
local(@rv, %mtab, @m);
$ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat";
open(GRACE, "$config{'user_grace_command'} $_[0] |");
while(<GRACE>) {
	if (/^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $1 eq $_[0]) {
		@rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5});
		}
	}
close(GRACE);
return @rv;
}

# get_group_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day
sub get_group_grace
{
local(@rv, %mtab, @m);
$ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat";
open(GRACE, "$config{'group_grace_command'} $_[0] |");
while(<GRACE>) {
	if (/^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $1 eq $_[0]) {
		@rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5});
		}
	}
close(GRACE);
return @rv;
}

# edit_grace_file(data, filesystem, btime, bunits, ftime, funits)
sub edit_grace_file
{
local($rv, $line, @m, %mtab);
foreach $line (split(/\n/, $_[0])) {
	if ($line =~ /^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $1 eq $_[1]) {
		# replace this line
		$line = "$1: block grace period: $_[2] $unit_to_name{$_[3]}, file grace period: $_[4] $unit_to_name{$_[5]}";
		}
	$rv .= "$line\n";
	}
return $rv;
}

# grace_units()
# Returns an array of possible units for grace periods
sub grace_units
{
return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'},
	$text{'grace_days'});
}

%name_to_unit = ( "second", 0, "seconds", 0,
		  "minute", 1, "minutes", 1,
		  "hour", 2, "hours", 2,
		  "day", 3, "days", 3,
		);
foreach $k (keys %name_to_unit) {
	$unit_to_name{$name_to_unit{$k}} = $k;
	}

1;

   070701000482c8000081e40000000000000002000000013ac03895000013e2000000200000000000000000000000000000001900000003reloc/quota/quota-lib.pl  # quota-lib.pl
# Common functions for quota management.

do '../web-lib.pl';
&init_config();
do "./$gconfig{'os_type'}-lib.pl";
%access = &get_module_acl();
&foreign_require("mount", "mount-lib.pl");

# list_filesystems()
# Returns a list of details of local filesystems on which quotas are supported
#  directory device type options quotacan quotanow
sub list_filesystems
{
local $f;
local @mtab = &foreign_call("mount", "list_mounted");
foreach $f (&foreign_call("mount", "list_mounts")) {
	$fmap{$f->[0],$f->[1]} = $f;
	}
map { $_->[4] = &quota_can($_, $fmap{$_->[0],$_->[1]}) } @mtab;
map { $_->[5] = &quota_now($_, $fmap{$_->[0],$_->[1]}) } @mtab;
return grep { $_->[4] } @mtab;
}

# parse_options(type, options)
# Convert an options string for some filesystem into the associative
# array %options
sub parse_options
{
local($_);
undef(%options);
if ($_[0] ne "-") {
	foreach (split(/,/, $_[0])) {
		if (/^([^=]+)=(.*)$/) { $options{$1} = $2; }
		else { $options{$_} = ""; }
		}
	}
}

# user_quota(user, filesystem)
# Returns an array of  ublocks, sblocks, hblocks, ufiles, sfiles, hfiles
# for some user, or an empty array if no quota has been assigned
sub user_quota
{
local (%user, $n, $i);
$n = &filesystem_users($_[1]);
for($i=0; $i<$n; $i++) {
	if ($user{$i,'user'} eq $_[0]) {
		return ( $user{$i,'ublocks'}, $user{$i,'sblocks'},
			 $user{$i,'hblocks'}, $user{$i,'ufiles'},
			 $user{$i,'sfiles'},  $user{$i,'hfiles'} );
		}
	}
return ();
}

# group_quota(group, filesystem)
# Returns an array of  ublocks, sblocks, hblocks, ufiles, sfiles, hfiles
# for some group, or an empty array if no quota has been assigned
sub group_quota
{
local (%group, $n, $i);
$n = &filesystem_groups($_[1]);
for($i=0; $i<$n; $i++) {
	if ($group{$i,'group'} eq $_[0]) {
		return ( $group{$i,'ublocks'}, $group{$i,'sblocks'},
			 $group{$i,'hblocks'}, $group{$i,'ufiles'},
			 $group{$i,'sfiles'},  $group{$i,'hfiles'} );
		}
	}
return ();
}

# edit_user_quota(user, filesys, sblocks, hblocks, sfiles, hfiles)
sub edit_user_quota
{
$ENV{'EDITOR'} = $ENV{'VISUAL'} = "./edquota.pl";
$ENV{'QUOTA_USER'} = $_[0];
$ENV{'QUOTA_FILESYS'} = $_[1];
$ENV{'QUOTA_SBLOCKS'} = $_[2];
$ENV{'QUOTA_HBLOCKS'} = $_[3];
$ENV{'QUOTA_SFILES'} = $_[4];
$ENV{'QUOTA_HFILES'} = $_[5];
&system_logged("$config{'user_edquota_command'} $_[0]");
}

# edit_group_quota(group, filesys, sblocks, hblocks, sfiles, hfiles)
sub edit_group_quota
{
$ENV{'EDITOR'} = $ENV{'VISUAL'} = "./edquota.pl";
$ENV{'QUOTA_GROUP'} = $_[0];
$ENV{'QUOTA_FILESYS'} = $_[1];
$ENV{'QUOTA_SBLOCKS'} = $_[2];
$ENV{'QUOTA_HBLOCKS'} = $_[3];
$ENV{'QUOTA_SFILES'} = $_[4];
$ENV{'QUOTA_HFILES'} = $_[5];
&system_logged("$config{'group_edquota_command'} $_[0]");
}

# edit_user_grace(filesystem, btime, bunits, ftime, funits)
# Change the grace times for blocks and files on some filesystem
sub edit_user_grace
{
$ENV{'EDITOR'} = $ENV{'VISUAL'} = "./edgrace.pl";
$ENV{'QUOTA_FILESYS'} = $_[0];
$ENV{'QUOTA_BTIME'} = $_[1];
$ENV{'QUOTA_BUNITS'} = $_[2];
$ENV{'QUOTA_FTIME'} = $_[3];
$ENV{'QUOTA_FUNITS'} = $_[4];
&system_logged($config{'user_grace_command'});
}

# edit_group_grace(filesystem, btime, bunits, ftime, funits)
# Change the grace times for blocks and files on some filesystem
sub edit_group_grace
{
$ENV{'EDITOR'} = $ENV{'VISUAL'} = "./edgrace.pl";
$ENV{'QUOTA_FILESYS'} = $_[0];
$ENV{'QUOTA_BTIME'} = $_[1];
$ENV{'QUOTA_BUNITS'} = $_[2];
$ENV{'QUOTA_FTIME'} = $_[3];
$ENV{'QUOTA_FUNITS'} = $_[4];
&system_logged($config{'group_grace_command'});
}

# quota_input(name)
sub quota_input
{
printf "<td><input type=radio name=$_[0]_def value=1 %s> $text{'quota_unlimited'}\n",
	$_[1]==0 ? "checked" : "";
printf "<input type=radio name=$_[0]_def value=0 %s>\n",
	$_[1]==0 ? "" : "checked";
printf "<input name=$_[0] size=8 value=\"%s\"></td> </tr>\n",
	$_[1]==0 ? "" : $_[1];
}

# can_edit_filesys(filesys)
sub can_edit_filesys
{
local $fs;
foreach $fs (split(/\s+/, $access{'filesys'})) {
	return 1 if ($fs eq "*" || $fs eq $_[0]);
	}
return 0;
}

# can_edit_user(user)
sub can_edit_user
{
if ($access{'umode'} == 0) {
	return 1;
	}
elsif ($access{'umode'} == 3) {
	local @u = getpwnam($_[0]);
	return $access{'users'} == $u[3];
	}
else {
	local ($u, %ucan);
	map { $ucan{$_}++ } split(/\s+/, $access{'users'});
	return $access{'umode'} == 1 && $ucan{$_[0]} ||
	       $access{'umode'} == 2 && !$ucan{$_[0]};
	}
}

# can_edit_group(group)
sub can_edit_group
{
return 1 if ($access{'gmode'} == 0);
return 0 if ($access{'gmode'} == 3);
local ($g, %gcan);
map { $gcan{$_}++ } split(/\s+/, $access{'groups'});
return $access{'gmode'} == 1 && $gcan{$_[0]} ||
       $access{'gmode'} == 2 && !$gcan{$_[0]};
}

# filesystem_info(filesystem, &hash, count)
sub filesystem_info
{
local @fs = &free_space($_[0]);
if ($_[1]) {
	local $bt = 0;
	local $ft = 0;
	local $i;
	for($i=0; $i<$_[2]; $i++) {
		$bt += $_[1]->{$i,'hblocks'};
		$ft += $_[1]->{$i,'hfiles'};
		}
	return ( "$fs[0] total / $fs[1] free / $bt granted",
		 "$fs[2] total / $fs[3] free / $ft granted" );
	}
else {
	return ( "$fs[0] total / $fs[1] free",
		 "$fs[2] total / $fs[3] free" );
	}
}

  070701000482c9000081a40000000000000002000000013ac03895000024f5000000200000000000000000000000000000002000000003reloc/quota/redhat-linux-lib.pl   # linux-lib.pl
# Quota functions for all linux version

# quotas_init()
sub quotas_init
{
if (&has_command("quotaon") && &has_command("quotaoff")) {
	return undef;
	}
else {
	return "The quotas package does not appear to be installed on ".
	       "your system\n";
	}
}

# quotas_supported()
# Returns 1 for user quotas, 2 for group quotas or 3 for both
sub quotas_supported
{
return 3;
}

# free_space(filesystem)
# Returns an array containing  btotal, bfree, ftotal, ffree
sub free_space
{
local(@out, @rv);
$out = `df $_[0]`;
$out =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)/;
push(@rv, ($1, $2));
$out = `df -i $_[0]`;
$out =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)/;
push(@rv, ($1, $2));
return @rv;
}

# quota_can(&mnttab, &fstab)
# Can this filesystem type support quotas?
#  0 = No quota support (or not turned on in /etc/fstab)
#  1 = User quotas only
#  2 = Group quotas only
#  3 = User and group quotas
sub quota_can
{
return ($_[1]->[3] =~ /usrquota/ ? 1 : 0) +
       ($_[1]->[3] =~ /grpquota/ ? 2 : 0);
}

# quota_now(&mnttab, &fstab)
# Are quotas currently active?
#  0 = Not active
#  1 = User quotas active
#  2 = Group quotas active
#  3 = Both active
sub quota_now
{
local $rv = 0;
local $dir = $_[0]->[0];
if ($_[0]->[4]%2 == 1) {
	# test user quotas
	if (-r "$dir/quota.user") {
		$out = `$config{'user_quotaon_command'} $dir 2>&1`;
		if ($out =~ /Device or resource busy/i) {
			# already on..
			$rv += 1;
			}
		elsif ($out =~ /Package not installed/i) {
			# No quota support!
			return 0;
			}
		else {
			# was off.. need to turn on again
			`$config{'user_quotaoff_command'} $dir 2>&1`;
			}
		}
	}
if ($_[0]->[4] > 1) {
	# test group quotas
	if (-r "$dir/quota.group") {
		$out = `$config{'group_quotaon_command'} $dir 2>&1`;
		if ($out =~ /Device or resource busy/i) {
			# already on..
			$rv += 2;
			}
		elsif ($out =~ /Package not installed/i) {
			# No quota support!
			return 0;
			}
		else {
			# was off.. need to turn on again
			`$config{'group_quotaoff_command'} $dir 2>&1`;
			}
		}
	}
return $rv;
}

# quotaon(filesystem, mode)
# Activate quotas and create quota files for some filesystem. The mode can
# be 1 for user only, 2 for group only or 3 for user and group
sub quotaon
{
local($out, $qf, @qfile, $flags);
if ($_[1]%2 == 1) {
	# turn on user quotas
	$qf = "$_[0]/quota.user";
	if (!(-r $qf)) {
		open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
		chmod(0600, $qf);
		&system_logged("$config{'quotacheck_command'} $_[0]");
		}
	$out = &backquote_logged("$config{'user_quotaon_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
if ($_[1] > 1) {
	# turn on group quotas
	$qf = "$_[0]/quota.group";
	if (!(-r $qf)) {
		open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
		chmod(0600, $qf);
		&system_logged("$config{'quotacheck_command'} $_[0]");
		}
	$out = &backquote_logged("$config{'group_quotaon_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# quotaoff(filesystem, mode)
# Turn off quotas for some filesystem
sub quotaoff
{
local($out);
if ($_[1]%2 == 1) {
	$out = &backquote_logged("$config{'user_quotaoff_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
if ($_[1] > 1) {
	$out = &backquote_logged("$config{'group_quotaoff_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# user_filesystems(user)
# Fills the array %filesys with details of all filesystem some user has
# quotas on
sub user_filesystems
{
return &parse_quota_output("$config{'user_quota_command'} $_[0]");
}

# user_filesystems(user)
# Fills the array %filesys with details of all filesystem some group has
# quotas on
sub group_filesystems
{
return &parse_quota_output("$config{'group_quota_command'} $_[0]");
}

sub parse_quota_output
{
local($n, $_, %mtab);
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	@m = split(/\s+/);
	$mtab{$m[0]} = $m[1];
	}
close(MTAB);
open(QUOTA, "$_[0] |");
$n=0; while(<QUOTA>) {
	chop;
	if (/^(Disk|\s+Filesystem)/) { next; }
	if (/^(\S+)$/) {
		# Bogus wrapped line
		$filesys{$n,'filesys'} = $mtab{$1};
		<QUOTA>=~/^.{15}.(.{7}).(.{7}).(.{7}).{8}.(.{7}).(.{7}).(.{7})/;
		$filesys{$n,'ublocks'} = int($1);
		$filesys{$n,'sblocks'} = int($2);
		$filesys{$n,'hblocks'} = int($3);
		$filesys{$n,'ufiles'} = int($4);
		$filesys{$n,'sfiles'} = int($5);
		$filesys{$n,'hfiles'} = int($6);
		$n++;
		}
	elsif (/^(.{15}).(.{7}).(.{7}).(.{7}).{8}.(.{7}).(.{7}).(.{7})/) {
		$filesys{$n,'ublocks'} = int($2);
		$filesys{$n,'sblocks'} = int($3);
		$filesys{$n,'hblocks'} = int($4);
		$filesys{$n,'ufiles'} = int($5);
		$filesys{$n,'sfiles'} = int($6);
		$filesys{$n,'hfiles'} = int($7);
		$dev = $1; $dev =~ s/\s+$//g; $dev =~ s/^\s+//g;
		$filesys{$n,'filesys'} = $mtab{$dev};
		$n++;
		}
	}
close(QUOTA);
return $n;
}

# filesystem_users(filesystem)
# Fills the array %user with information about all users with quotas
# on this filesystem. This may not be all users on the system..
sub filesystem_users
{
return &parse_repquota_output(
	"$config{'user_repquota_command'} $_[0]", "user");
}

sub filesystem_groups
{
return &parse_repquota_output(
	"$config{'group_repquota_command'} $_[0]", "group");
}

sub parse_repquota_output
{
local($rep, @rep, $n, $what, $u, @uinfo);
$what = $_[1];
$rep = `$_[0] 2>&1`;
if ($?) { return -1; }
if ($what eq 'user') {
	setpwent();
	while(@uinfo = getpwent()) {
		$hasu{$uinfo[0]}++;
		}
	endpwent();
	}
else {
	setgrent();
	while(@uinfo = getgrent()) {
		$hasu{$uinfo[0]}++;
		}
	endgrent();
	}
@rep = split(/\n/, $rep); @rep = @rep[3..$#rep];
for($n=0; $n<@rep; $n++) {
	if ($rep[$n] =~ /(\S+)\s*[\-\+]{2}(.{8})(.{8})(.{8}).{7}(.{8})(.{6})(.{6})/) {
		$$what{$n,$what} = $1;
		$$what{$n,'ublocks'} = int($2);
		$$what{$n,'sblocks'} = int($3);
		$$what{$n,'hblocks'} = int($4);
		$$what{$n,'ufiles'} = int($5);
		$$what{$n,'sfiles'} = int($6);
		$$what{$n,'hfiles'} = int($7);
		if ($$what{$n,$what} !~ /^\d+$/ && !$hasu{$$what{$n,$what}}) {
			# User/group name was truncated! Try to find him..
			foreach $u (keys %hasu) {
				if (substr($u, 0, length($$what{$n,$what})) eq
				    $$what{$n,$what}) {
					# found him..
					$$what{$n,$what} = $u;
					last;
					}
				}
			}
		}
	}
return $n;
}

# edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles)
sub edit_quota_file
{
local($rv, $line, %mtab, @m);
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	@m = split(/\s+/);
	$mtab{$m[0]} = $m[1];
	}
close(MTAB);
@line = split(/\n/, $_[0]);
for($i=0; $i<@line; $i++) {
	if ($line[$i] =~ /^(\S+): blocks in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/ && $mtab{$1} eq $_[1]) {
		# found lines to change
		$rv .= "$1: blocks in use: $2, limits (soft = $_[2], hard = $_[3])\n";
		$line[++$i] =~ /^\s*inodes in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/;
		$rv .= "\tinodes in use: $1, limits (soft = $_[4], hard = $_[5])\n";
		}
	else { $rv .= "$line[$i]\n"; }
	}
return $rv;
}

# quotacheck(filesystem, mode)
# Runs quotacheck on some filesystem
sub quotacheck
{
$out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1");
if ($?) { return $out; }
return undef;
}

# copy_user_quota(user, [user]+)
# Copy the quotas for some user to many others
sub copy_user_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'user_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# copy_group_quota(group, [group]+)
# Copy the quotas for some group to many others
sub copy_group_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'group_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# get_user_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day
sub get_user_grace
{
return &parse_grace_output($config{'user_grace_command'}, $_[0]);
}

# get_group_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day
sub get_group_grace
{
return &parse_grace_output($config{'group_grace_command'}, $_[0]);
}

# default_grace()
# Returns 0 if grace time can be 0, 1 if zero grace means default
sub default_grace
{
return 0;
}

sub parse_grace_output
{
local(@rv, %mtab, @m);
open(MTAB, "/etc/mtab");
while(<MTAB>) { @m = split(/\s+/); $mtab{$m[0]} = $m[1]; }
close(MTAB);
$ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat";
open(GRACE, "$_[0] |");
while(<GRACE>) {
	if (/^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $mtab{$1} eq $_[1]) {
		@rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5});
		}
	}
close(GRACE);
return @rv;
}

# edit_grace_file(data, filesystem, btime, bunits, ftime, funits)
sub edit_grace_file
{
local($rv, $line, @m, %mtab);
open(MTAB, "/etc/mtab");
while(<MTAB>) { @m = split(/\s+/); $mtab{$m[0]} = $m[1]; }
close(MTAB);
foreach $line (split(/\n/, $_[0])) {
	if ($line =~ /^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $mtab{$1} eq $_[1]) {
		# replace this line
		$line = "$1: block grace period: $_[2] $unit_to_name{$_[3]}, file grace period: $_[4] $unit_to_name{$_[5]}";
		}
	$rv .= "$line\n";
	}
return $rv;
}

# grace_units()
# Returns an array of possible units for grace periods
sub grace_units
{
return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'},
	$text{'grace_days'});
}

%name_to_unit = ( "second", 0, "seconds", 0,
		  "minute", 1, "minutes", 1,
		  "hour", 2, "hours", 2,
		  "day", 3, "days", 3,
		);
foreach $k (keys %name_to_unit) {
	$unit_to_name{$name_to_unit{$k}} = $k;
	}

1;

   070701000482ca000081e40000000000000002000000013ac0389500000292000000200000000000000000000000000000002100000003reloc/quota/save_group_quota.cgi  #!/usr/local/bin/perl
# save_group_quota.cgi
# Update the quota for some group

require './quota-lib.pl';
&ReadParse();

&can_edit_group($in{'group'}) ||
	&error($text{'sgroup_egroup'});
&can_edit_filesys($in{'filesys'}) ||
	&error($text{'sgroup_efs'});
&edit_group_quota($in{'group'}, $in{'filesys'},
		  $in{'sblocks_def'} ? 0 : $in{'sblocks'},
		  $in{'hblocks_def'} ? 0 : $in{'hblocks'},
		  $in{'sfiles_def'} ? 0 : $in{'sfiles'},
		  $in{'hfiles_def'} ? 0 : $in{'hfiles'});
&webmin_log("save", "group", $in{'group'}, \%in);
if ($in{'source'}) { &redirect("group_filesys.cgi?group=$in{'group'}"); }
else { &redirect("list_groups.cgi?$in{'filesys'}"); }

  070701000482cb000081e40000000000000002000000013ac03895000002da000000200000000000000000000000000000001a00000003reloc/quota/save_sync.cgi #!/usr/local/bin/perl
# save_sync.cgi
# Save default quotas

require './quota-lib.pl';
$access{'default'} && &can_edit_filesys($in{'filesys'}) ||
	&error($text{'ssync_ecannot'});
&ReadParse();
&lock_file("$module_config_directory/config");
$v = join(' ',
	($in{'sblocks_def'} ? 0 : $in{'sblocks'},
	 $in{'hblocks_def'} ? 0 : $in{'hblocks'},
	 $in{'sfiles_def'} ? 0 : $in{'sfiles'},
	 $in{'hfiles_def'} ? 0 : $in{'hfiles'}) );
$k = "sync_$in{'filesys'}";
if ($v eq "0 0 0 0") { delete($config{$k}); }
else { $config{$k} = $v; }
&write_file("$module_config_directory/config", \%config);
&unlock_file("$module_config_directory/config");
&webmin_log("sync", "user", $in{'filesys'}, \%in);
&redirect("list_users.cgi?$in{'filesys'}");

  070701000482cc000081e40000000000000002000000013ac038950000027f000000200000000000000000000000000000002000000003reloc/quota/save_user_quota.cgi   #!/usr/local/bin/perl
# save_user_quota.cgi
# Update the quota for some user

require './quota-lib.pl';
&ReadParse();

&can_edit_user($in{'user'}) ||
	&error($text{'suser_euser'});
&can_edit_filesys($in{'filesys'}) ||
	&error($text{'suser_efs'});
&edit_user_quota($in{'user'}, $in{'filesys'},
		 $in{'sblocks_def'} ? 0 : $in{'sblocks'},
		 $in{'hblocks_def'} ? 0 : $in{'hblocks'},
		 $in{'sfiles_def'} ? 0 : $in{'sfiles'},
		 $in{'hfiles_def'} ? 0 : $in{'hfiles'});
&webmin_log("save", "user", $in{'user'}, \%in);
if ($in{'source'}) { &redirect("user_filesys.cgi?user=$in{'user'}"); }
else { &redirect("list_users.cgi?$in{'filesys'}"); }

 070701000482cd000081a40000000000000002000000013ac03895000024f5000000200000000000000000000000000000002300000003reloc/quota/slackware-linux-lib.pl    # linux-lib.pl
# Quota functions for all linux version

# quotas_init()
sub quotas_init
{
if (&has_command("quotaon") && &has_command("quotaoff")) {
	return undef;
	}
else {
	return "The quotas package does not appear to be installed on ".
	       "your system\n";
	}
}

# quotas_supported()
# Returns 1 for user quotas, 2 for group quotas or 3 for both
sub quotas_supported
{
return 3;
}

# free_space(filesystem)
# Returns an array containing  btotal, bfree, ftotal, ffree
sub free_space
{
local(@out, @rv);
$out = `df $_[0]`;
$out =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)/;
push(@rv, ($1, $2));
$out = `df -i $_[0]`;
$out =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)/;
push(@rv, ($1, $2));
return @rv;
}

# quota_can(&mnttab, &fstab)
# Can this filesystem type support quotas?
#  0 = No quota support (or not turned on in /etc/fstab)
#  1 = User quotas only
#  2 = Group quotas only
#  3 = User and group quotas
sub quota_can
{
return ($_[1]->[3] =~ /usrquota/ ? 1 : 0) +
       ($_[1]->[3] =~ /grpquota/ ? 2 : 0);
}

# quota_now(&mnttab, &fstab)
# Are quotas currently active?
#  0 = Not active
#  1 = User quotas active
#  2 = Group quotas active
#  3 = Both active
sub quota_now
{
local $rv = 0;
local $dir = $_[0]->[0];
if ($_[0]->[4]%2 == 1) {
	# test user quotas
	if (-r "$dir/quota.user") {
		$out = `$config{'user_quotaon_command'} $dir 2>&1`;
		if ($out =~ /Device or resource busy/i) {
			# already on..
			$rv += 1;
			}
		elsif ($out =~ /Package not installed/i) {
			# No quota support!
			return 0;
			}
		else {
			# was off.. need to turn on again
			`$config{'user_quotaoff_command'} $dir 2>&1`;
			}
		}
	}
if ($_[0]->[4] > 1) {
	# test group quotas
	if (-r "$dir/quota.group") {
		$out = `$config{'group_quotaon_command'} $dir 2>&1`;
		if ($out =~ /Device or resource busy/i) {
			# already on..
			$rv += 2;
			}
		elsif ($out =~ /Package not installed/i) {
			# No quota support!
			return 0;
			}
		else {
			# was off.. need to turn on again
			`$config{'group_quotaoff_command'} $dir 2>&1`;
			}
		}
	}
return $rv;
}

# quotaon(filesystem, mode)
# Activate quotas and create quota files for some filesystem. The mode can
# be 1 for user only, 2 for group only or 3 for user and group
sub quotaon
{
local($out, $qf, @qfile, $flags);
if ($_[1]%2 == 1) {
	# turn on user quotas
	$qf = "$_[0]/quota.user";
	if (!(-r $qf)) {
		open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
		chmod(0600, $qf);
		&system_logged("$config{'quotacheck_command'} $_[0]");
		}
	$out = &backquote_logged("$config{'user_quotaon_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
if ($_[1] > 1) {
	# turn on group quotas
	$qf = "$_[0]/quota.group";
	if (!(-r $qf)) {
		open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
		chmod(0600, $qf);
		&system_logged("$config{'quotacheck_command'} $_[0]");
		}
	$out = &backquote_logged("$config{'group_quotaon_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# quotaoff(filesystem, mode)
# Turn off quotas for some filesystem
sub quotaoff
{
local($out);
if ($_[1]%2 == 1) {
	$out = &backquote_logged("$config{'user_quotaoff_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
if ($_[1] > 1) {
	$out = &backquote_logged("$config{'group_quotaoff_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# user_filesystems(user)
# Fills the array %filesys with details of all filesystem some user has
# quotas on
sub user_filesystems
{
return &parse_quota_output("$config{'user_quota_command'} $_[0]");
}

# user_filesystems(user)
# Fills the array %filesys with details of all filesystem some group has
# quotas on
sub group_filesystems
{
return &parse_quota_output("$config{'group_quota_command'} $_[0]");
}

sub parse_quota_output
{
local($n, $_, %mtab);
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	@m = split(/\s+/);
	$mtab{$m[0]} = $m[1];
	}
close(MTAB);
open(QUOTA, "$_[0] |");
$n=0; while(<QUOTA>) {
	chop;
	if (/^(Disk|\s+Filesystem)/) { next; }
	if (/^(\S+)$/) {
		# Bogus wrapped line
		$filesys{$n,'filesys'} = $mtab{$1};
		<QUOTA>=~/^.{15}.(.{7}).(.{7}).(.{7}).{8}.(.{7}).(.{7}).(.{7})/;
		$filesys{$n,'ublocks'} = int($1);
		$filesys{$n,'sblocks'} = int($2);
		$filesys{$n,'hblocks'} = int($3);
		$filesys{$n,'ufiles'} = int($4);
		$filesys{$n,'sfiles'} = int($5);
		$filesys{$n,'hfiles'} = int($6);
		$n++;
		}
	elsif (/^(.{15}).(.{7}).(.{7}).(.{7}).{8}.(.{7}).(.{7}).(.{7})/) {
		$filesys{$n,'ublocks'} = int($2);
		$filesys{$n,'sblocks'} = int($3);
		$filesys{$n,'hblocks'} = int($4);
		$filesys{$n,'ufiles'} = int($5);
		$filesys{$n,'sfiles'} = int($6);
		$filesys{$n,'hfiles'} = int($7);
		$dev = $1; $dev =~ s/\s+$//g; $dev =~ s/^\s+//g;
		$filesys{$n,'filesys'} = $mtab{$dev};
		$n++;
		}
	}
close(QUOTA);
return $n;
}

# filesystem_users(filesystem)
# Fills the array %user with information about all users with quotas
# on this filesystem. This may not be all users on the system..
sub filesystem_users
{
return &parse_repquota_output(
	"$config{'user_repquota_command'} $_[0]", "user");
}

sub filesystem_groups
{
return &parse_repquota_output(
	"$config{'group_repquota_command'} $_[0]", "group");
}

sub parse_repquota_output
{
local($rep, @rep, $n, $what, $u, @uinfo);
$what = $_[1];
$rep = `$_[0] 2>&1`;
if ($?) { return -1; }
if ($what eq 'user') {
	setpwent();
	while(@uinfo = getpwent()) {
		$hasu{$uinfo[0]}++;
		}
	endpwent();
	}
else {
	setgrent();
	while(@uinfo = getgrent()) {
		$hasu{$uinfo[0]}++;
		}
	endgrent();
	}
@rep = split(/\n/, $rep); @rep = @rep[3..$#rep];
for($n=0; $n<@rep; $n++) {
	if ($rep[$n] =~ /(\S+)\s*[\-\+]{2}(.{8})(.{8})(.{8}).{7}(.{8})(.{6})(.{6})/) {
		$$what{$n,$what} = $1;
		$$what{$n,'ublocks'} = int($2);
		$$what{$n,'sblocks'} = int($3);
		$$what{$n,'hblocks'} = int($4);
		$$what{$n,'ufiles'} = int($5);
		$$what{$n,'sfiles'} = int($6);
		$$what{$n,'hfiles'} = int($7);
		if ($$what{$n,$what} !~ /^\d+$/ && !$hasu{$$what{$n,$what}}) {
			# User/group name was truncated! Try to find him..
			foreach $u (keys %hasu) {
				if (substr($u, 0, length($$what{$n,$what})) eq
				    $$what{$n,$what}) {
					# found him..
					$$what{$n,$what} = $u;
					last;
					}
				}
			}
		}
	}
return $n;
}

# edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles)
sub edit_quota_file
{
local($rv, $line, %mtab, @m);
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	@m = split(/\s+/);
	$mtab{$m[0]} = $m[1];
	}
close(MTAB);
@line = split(/\n/, $_[0]);
for($i=0; $i<@line; $i++) {
	if ($line[$i] =~ /^(\S+): blocks in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/ && $mtab{$1} eq $_[1]) {
		# found lines to change
		$rv .= "$1: blocks in use: $2, limits (soft = $_[2], hard = $_[3])\n";
		$line[++$i] =~ /^\s*inodes in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/;
		$rv .= "\tinodes in use: $1, limits (soft = $_[4], hard = $_[5])\n";
		}
	else { $rv .= "$line[$i]\n"; }
	}
return $rv;
}

# quotacheck(filesystem, mode)
# Runs quotacheck on some filesystem
sub quotacheck
{
$out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1");
if ($?) { return $out; }
return undef;
}

# copy_user_quota(user, [user]+)
# Copy the quotas for some user to many others
sub copy_user_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'user_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# copy_group_quota(group, [group]+)
# Copy the quotas for some group to many others
sub copy_group_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'group_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# get_user_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day
sub get_user_grace
{
return &parse_grace_output($config{'user_grace_command'}, $_[0]);
}

# get_group_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day
sub get_group_grace
{
return &parse_grace_output($config{'group_grace_command'}, $_[0]);
}

# default_grace()
# Returns 0 if grace time can be 0, 1 if zero grace means default
sub default_grace
{
return 0;
}

sub parse_grace_output
{
local(@rv, %mtab, @m);
open(MTAB, "/etc/mtab");
while(<MTAB>) { @m = split(/\s+/); $mtab{$m[0]} = $m[1]; }
close(MTAB);
$ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat";
open(GRACE, "$_[0] |");
while(<GRACE>) {
	if (/^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $mtab{$1} eq $_[1]) {
		@rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5});
		}
	}
close(GRACE);
return @rv;
}

# edit_grace_file(data, filesystem, btime, bunits, ftime, funits)
sub edit_grace_file
{
local($rv, $line, @m, %mtab);
open(MTAB, "/etc/mtab");
while(<MTAB>) { @m = split(/\s+/); $mtab{$m[0]} = $m[1]; }
close(MTAB);
foreach $line (split(/\n/, $_[0])) {
	if ($line =~ /^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $mtab{$1} eq $_[1]) {
		# replace this line
		$line = "$1: block grace period: $_[2] $unit_to_name{$_[3]}, file grace period: $_[4] $unit_to_name{$_[5]}";
		}
	$rv .= "$line\n";
	}
return $rv;
}

# grace_units()
# Returns an array of possible units for grace periods
sub grace_units
{
return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'},
	$text{'grace_days'});
}

%name_to_unit = ( "second", 0, "seconds", 0,
		  "minute", 1, "minutes", 1,
		  "hour", 2, "hours", 2,
		  "day", 3, "days", 3,
		);
foreach $k (keys %name_to_unit) {
	$unit_to_name{$name_to_unit{$k}} = $k;
	}

1;

   070701000482ce000081e40000000000000002000000013ac038950000196f000000200000000000000000000000000000001b00000003reloc/quota/solaris-lib.pl    # solaris-lib.pl
# Quota functions for solaris 2.5+

# quotas_init()
sub quotas_init
{
return undef;
}

# quotas_supported()
# Returns 1 for user quotas, 2 for group quotas or 3 for both
sub quotas_supported
{
return 1;
}

# free_space(filesystem)
# Returns an array containing  btotal, bfree, ftotal, ffree
sub free_space
{
local($out);
$out = `df -t $_[0]`;
$out =~ /(\d+) blocks\s+(\d+) files\n.*\s+(\d+) blocks\s+(\d+) files/;
return ($3, $1, $4, $2);
}

# quota_can(&mnttab, &fstab)
# Can this filesystem type support quotas?
#  0 = No quota support (or not turned on in /etc/fstab)
#  1 = User quotas only
#  2 = Group quotas only
#  3 = User and group quotas
sub quota_can
{
return $_[0]->[2] eq "ufs" ? 1 : 0;
}

# quota_now(&mnttab, &fstab)
# Are quotas currently active?
#  0 = Not active
#  1 = User quotas active
#  2 = Group quotas active
#  3 = Both active
sub quota_now
{
return $_[0]->[3] =~ /,quota/ || $_[0]->[3] =~ /^quota/ ? 1 : 0;
}

# filesystem_users(filesystem)
# Fills the array %user with information about all users with quotas
# on this filesystem. This may not be all users on the system..
sub filesystem_users
{
local($rep, @rep, $n, %hasu, $u);
$rep = `$config{'user_repquota_command'} $_[0] 2>&1`;
if ($?) { return -1; }
setpwent();
while(@uinfo = getpwent()) {
	$hasu{$uinfo[0]}++;
	}
endpwent();
@rep = split(/\n/, $rep); @rep = @rep[3..$#rep];
for($n=0; $n<@rep; $n++) {
	if ($rep[$n] =~ /(\S+)\s+[\-\+]{2}\s+(\d+)\s+(\d+)\s+(\d+)\s+.{0,15}\s+(\d+)\s+(\d+)\s+(\d+)/ || $rep[$n] =~ /(\S+)\s+[\-\+]{2}(.{7})(.{7})(.{7}).{13}(.{7})(.{7})(.{7})/) {
		$user{$n,'user'} = $1;
		$user{$n,'ublocks'} = int($2);
		$user{$n,'sblocks'} = int($3);
		$user{$n,'hblocks'} = int($4);
		$user{$n,'ufiles'} = int($5);
		$user{$n,'sfiles'} = int($6);
		$user{$n,'hfiles'} = int($7);
		$user{$n,'user'} =~ s/^#//g;
		if ($user{$n,'user'} !~ /^\d+$/ && !$hasu{$user{$n,'user'}}) {
			# Username was truncated! Try to find him..
			foreach $u (keys %hasu) {
				if (substr($u, 0, length($user{$n,'user'})) eq
				    $user{$n,'user'}) {
					# found him..
					$user{$n,'user'} = $u;
					last;
					}
				}
			}
		}
	}
return $n;
}

# edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles)
sub edit_quota_file
{
local($rv, $line);
foreach $line (split(/\n/, $_[0])) {
	if ($line =~ /^fs (\S+) blocks \(soft = (\d+), hard = (\d+)\) inodes \(soft = (\d+), hard = (\d+)\)$/ && $1 eq $_[1]) {
		# found line to change
		$line = "fs $_[1] blocks (soft = $_[2], hard = $_[3]) inodes (soft = $_[4], hard = $_[5])";
		}
	$rv .= "$line\n";
	}
return $rv;
}

# quotaon(filesystem, mode)
# Activate quotas and create quota file for some filesystem. The mode can
# be 1 for user only, 2 for group only or 3 for user and group
sub quotaon
{
local($qf, $out);
$qf = "$_[0]/quotas";
if (!(-r $qf)) {
	open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
	chmod(0600, $qf);
	}
$out = &backquote_logged("$config{'user_quotaon_command'} $_[0] 2>&1");
if ($?) { return $out; }
return undef;
}

# quotaoff(filesystem, mode)
# Turn off quotas for some filesystem
sub quotaoff
{
local($out);
$out = &backquote_logged("$config{'user_quotaoff_command'} $_[0] 2>&1");
if ($?) { return $out; }
return undef;
}

# quotacheck(filesystem, mode)
# Runs quotacheck on some filesystem
sub quotacheck
{
$out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1");
if ($?) { return $out; }
return undef;
}

# copy_user_quota(user, [user]+)
# Copy the quotas for some user to many others
sub copy_user_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'user_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# user_filesystems(user)
# Fills the array %filesys with details of all filesystems some user has
# quotas on
sub user_filesystems
{
local($n, $_);
open(QUOTA, "$config{'user_quota_command'} $_[0] |");
$n=0; while(<QUOTA>) {
	chop;
	if (/^(Disk|Filesystem)/i) { next; }
	if (/^(\S+)$/) {
		# Bogus wrapped line!
		$filesys{$n,'filesys'} = $1;
		local $nl = <QUOTA>;
		if ($nl =~ /^\s+(\d+)\s+(\d+)\s+(\d+)\s.{0,15}\s(\d+)\s+(\d+)\s+(\d+)/ ||
		    $nl =~ /^.{13}(.{7})(.{7})(.{7}).{12}(.{7})(.{7})(.{7})/) {
			$filesys{$n,'ublocks'} = int($1);
			$filesys{$n,'sblocks'} = int($2);
			$filesys{$n,'hblocks'} = int($3);
			$filesys{$n,'ufiles'} = int($4);
			$filesys{$n,'sfiles'} = int($5);
			$filesys{$n,'hfiles'} = int($6);
			$n++;
			}
		}
	elsif (/^(\S+)\s+(\d+)\s+(\d+)\s+(\d+)\s.{0,15}\s(\d+)\s+(\d+)\s+(\d+)/ ||
	       /^(.{13})(.{7})(.{7})(.{7}).{12}(.{7})(.{7})(.{7})/) {
		$filesys{$n,'filesys'} = $1;
		$filesys{$n,'ublocks'} = int($2);
		$filesys{$n,'sblocks'} = int($3);
		$filesys{$n,'hblocks'} = int($4);
		$filesys{$n,'ufiles'} = int($5);
		$filesys{$n,'sfiles'} = int($6);
		$filesys{$n,'hfiles'} = int($7);
		$filesys{$n,'filesys'} =~ s/\s+$//g;
		$n++;
		}
	}
close(QUOTA);
return $n;
}

# get_user_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day, 4=week, 5=month
sub get_user_grace
{
local(@rv);
$ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat";
open(GRACE, "$config{'user_grace_command'} |");
while(<GRACE>) {
	if (/^fs (\S+) blocks time limit = ([0-9\.]+) (\S+), files time limit = ([0-9\.]+) (\S+)/ && $1 eq $_[0]) {
		if ($2 == 0) { push(@rv, 0, 0); }
		else { push(@rv, $2, $name_to_unit{$3}); }
		if ($4 == 0) { push(@rv, 0, 0); }
		else { push(@rv, $4, $name_to_unit{$5}); }
		}
	}
close(GRACE);
return @rv;
}

# default_grace()
# Returns 0 if grace time can be 0, 1 if zero grace means default
sub default_grace
{
return 1;
}

# edit_grace_file(data, filesystem, btime, bunits, ftime, funits)
sub edit_grace_file
{
local($rv, $line);
foreach $line (split(/\n/, $_[0])) {
	if ($line =~ /^fs (\S+) blocks time limit = ([0-9\.]+) (\S+), files time limit = ([0-9\.]+) (\S+)/ && $1 eq $_[1]) {
		# replace this line
		$line = "fs $_[1] blocks time limit = $_[2] $unit_to_name{$_[3]}, files time limit = $_[4] $unit_to_name{$_[5]}";
		}
	$rv .= "$line\n";
	}
return $rv;
}

# grace_units()
# Returns an array of possible units for grace periods
sub grace_units
{
return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'},
	$text{'grace_days'}, $text{'grace_weeks'}, $text{'grace_months'});
}

%name_to_unit = ( "sec", 0, "secs", 0,
		  "min", 1, "mins", 1,
		  "hour", 2, "hours", 2,
		  "day", 3, "days", 3,
		  "week", 4, "weeks", 4,
		  "month", 5, "months", 5
		);
foreach $k (keys %name_to_unit) {
	$unit_to_name{$name_to_unit{$k}} = $k;
	}

1;

 070701000482cf000081a40000000000000002000000013ac03895000024f5000000200000000000000000000000000000001e00000003reloc/quota/suse-linux-lib.pl # linux-lib.pl
# Quota functions for all linux version

# quotas_init()
sub quotas_init
{
if (&has_command("quotaon") && &has_command("quotaoff")) {
	return undef;
	}
else {
	return "The quotas package does not appear to be installed on ".
	       "your system\n";
	}
}

# quotas_supported()
# Returns 1 for user quotas, 2 for group quotas or 3 for both
sub quotas_supported
{
return 3;
}

# free_space(filesystem)
# Returns an array containing  btotal, bfree, ftotal, ffree
sub free_space
{
local(@out, @rv);
$out = `df $_[0]`;
$out =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)/;
push(@rv, ($1, $2));
$out = `df -i $_[0]`;
$out =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)/;
push(@rv, ($1, $2));
return @rv;
}

# quota_can(&mnttab, &fstab)
# Can this filesystem type support quotas?
#  0 = No quota support (or not turned on in /etc/fstab)
#  1 = User quotas only
#  2 = Group quotas only
#  3 = User and group quotas
sub quota_can
{
return ($_[1]->[3] =~ /usrquota/ ? 1 : 0) +
       ($_[1]->[3] =~ /grpquota/ ? 2 : 0);
}

# quota_now(&mnttab, &fstab)
# Are quotas currently active?
#  0 = Not active
#  1 = User quotas active
#  2 = Group quotas active
#  3 = Both active
sub quota_now
{
local $rv = 0;
local $dir = $_[0]->[0];
if ($_[0]->[4]%2 == 1) {
	# test user quotas
	if (-r "$dir/quota.user") {
		$out = `$config{'user_quotaon_command'} $dir 2>&1`;
		if ($out =~ /Device or resource busy/i) {
			# already on..
			$rv += 1;
			}
		elsif ($out =~ /Package not installed/i) {
			# No quota support!
			return 0;
			}
		else {
			# was off.. need to turn on again
			`$config{'user_quotaoff_command'} $dir 2>&1`;
			}
		}
	}
if ($_[0]->[4] > 1) {
	# test group quotas
	if (-r "$dir/quota.group") {
		$out = `$config{'group_quotaon_command'} $dir 2>&1`;
		if ($out =~ /Device or resource busy/i) {
			# already on..
			$rv += 2;
			}
		elsif ($out =~ /Package not installed/i) {
			# No quota support!
			return 0;
			}
		else {
			# was off.. need to turn on again
			`$config{'group_quotaoff_command'} $dir 2>&1`;
			}
		}
	}
return $rv;
}

# quotaon(filesystem, mode)
# Activate quotas and create quota files for some filesystem. The mode can
# be 1 for user only, 2 for group only or 3 for user and group
sub quotaon
{
local($out, $qf, @qfile, $flags);
if ($_[1]%2 == 1) {
	# turn on user quotas
	$qf = "$_[0]/quota.user";
	if (!(-r $qf)) {
		open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
		chmod(0600, $qf);
		&system_logged("$config{'quotacheck_command'} $_[0]");
		}
	$out = &backquote_logged("$config{'user_quotaon_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
if ($_[1] > 1) {
	# turn on group quotas
	$qf = "$_[0]/quota.group";
	if (!(-r $qf)) {
		open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
		chmod(0600, $qf);
		&system_logged("$config{'quotacheck_command'} $_[0]");
		}
	$out = &backquote_logged("$config{'group_quotaon_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# quotaoff(filesystem, mode)
# Turn off quotas for some filesystem
sub quotaoff
{
local($out);
if ($_[1]%2 == 1) {
	$out = &backquote_logged("$config{'user_quotaoff_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
if ($_[1] > 1) {
	$out = &backquote_logged("$config{'group_quotaoff_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# user_filesystems(user)
# Fills the array %filesys with details of all filesystem some user has
# quotas on
sub user_filesystems
{
return &parse_quota_output("$config{'user_quota_command'} $_[0]");
}

# user_filesystems(user)
# Fills the array %filesys with details of all filesystem some group has
# quotas on
sub group_filesystems
{
return &parse_quota_output("$config{'group_quota_command'} $_[0]");
}

sub parse_quota_output
{
local($n, $_, %mtab);
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	@m = split(/\s+/);
	$mtab{$m[0]} = $m[1];
	}
close(MTAB);
open(QUOTA, "$_[0] |");
$n=0; while(<QUOTA>) {
	chop;
	if (/^(Disk|\s+Filesystem)/) { next; }
	if (/^(\S+)$/) {
		# Bogus wrapped line
		$filesys{$n,'filesys'} = $mtab{$1};
		<QUOTA>=~/^.{15}.(.{7}).(.{7}).(.{7}).{8}.(.{7}).(.{7}).(.{7})/;
		$filesys{$n,'ublocks'} = int($1);
		$filesys{$n,'sblocks'} = int($2);
		$filesys{$n,'hblocks'} = int($3);
		$filesys{$n,'ufiles'} = int($4);
		$filesys{$n,'sfiles'} = int($5);
		$filesys{$n,'hfiles'} = int($6);
		$n++;
		}
	elsif (/^(.{15}).(.{7}).(.{7}).(.{7}).{8}.(.{7}).(.{7}).(.{7})/) {
		$filesys{$n,'ublocks'} = int($2);
		$filesys{$n,'sblocks'} = int($3);
		$filesys{$n,'hblocks'} = int($4);
		$filesys{$n,'ufiles'} = int($5);
		$filesys{$n,'sfiles'} = int($6);
		$filesys{$n,'hfiles'} = int($7);
		$dev = $1; $dev =~ s/\s+$//g; $dev =~ s/^\s+//g;
		$filesys{$n,'filesys'} = $mtab{$dev};
		$n++;
		}
	}
close(QUOTA);
return $n;
}

# filesystem_users(filesystem)
# Fills the array %user with information about all users with quotas
# on this filesystem. This may not be all users on the system..
sub filesystem_users
{
return &parse_repquota_output(
	"$config{'user_repquota_command'} $_[0]", "user");
}

sub filesystem_groups
{
return &parse_repquota_output(
	"$config{'group_repquota_command'} $_[0]", "group");
}

sub parse_repquota_output
{
local($rep, @rep, $n, $what, $u, @uinfo);
$what = $_[1];
$rep = `$_[0] 2>&1`;
if ($?) { return -1; }
if ($what eq 'user') {
	setpwent();
	while(@uinfo = getpwent()) {
		$hasu{$uinfo[0]}++;
		}
	endpwent();
	}
else {
	setgrent();
	while(@uinfo = getgrent()) {
		$hasu{$uinfo[0]}++;
		}
	endgrent();
	}
@rep = split(/\n/, $rep); @rep = @rep[3..$#rep];
for($n=0; $n<@rep; $n++) {
	if ($rep[$n] =~ /(\S+)\s*[\-\+]{2}(.{8})(.{8})(.{8}).{7}(.{8})(.{6})(.{6})/) {
		$$what{$n,$what} = $1;
		$$what{$n,'ublocks'} = int($2);
		$$what{$n,'sblocks'} = int($3);
		$$what{$n,'hblocks'} = int($4);
		$$what{$n,'ufiles'} = int($5);
		$$what{$n,'sfiles'} = int($6);
		$$what{$n,'hfiles'} = int($7);
		if ($$what{$n,$what} !~ /^\d+$/ && !$hasu{$$what{$n,$what}}) {
			# User/group name was truncated! Try to find him..
			foreach $u (keys %hasu) {
				if (substr($u, 0, length($$what{$n,$what})) eq
				    $$what{$n,$what}) {
					# found him..
					$$what{$n,$what} = $u;
					last;
					}
				}
			}
		}
	}
return $n;
}

# edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles)
sub edit_quota_file
{
local($rv, $line, %mtab, @m);
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	@m = split(/\s+/);
	$mtab{$m[0]} = $m[1];
	}
close(MTAB);
@line = split(/\n/, $_[0]);
for($i=0; $i<@line; $i++) {
	if ($line[$i] =~ /^(\S+): blocks in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/ && $mtab{$1} eq $_[1]) {
		# found lines to change
		$rv .= "$1: blocks in use: $2, limits (soft = $_[2], hard = $_[3])\n";
		$line[++$i] =~ /^\s*inodes in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/;
		$rv .= "\tinodes in use: $1, limits (soft = $_[4], hard = $_[5])\n";
		}
	else { $rv .= "$line[$i]\n"; }
	}
return $rv;
}

# quotacheck(filesystem, mode)
# Runs quotacheck on some filesystem
sub quotacheck
{
$out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1");
if ($?) { return $out; }
return undef;
}

# copy_user_quota(user, [user]+)
# Copy the quotas for some user to many others
sub copy_user_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'user_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# copy_group_quota(group, [group]+)
# Copy the quotas for some group to many others
sub copy_group_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'group_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# get_user_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day
sub get_user_grace
{
return &parse_grace_output($config{'user_grace_command'}, $_[0]);
}

# get_group_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day
sub get_group_grace
{
return &parse_grace_output($config{'group_grace_command'}, $_[0]);
}

# default_grace()
# Returns 0 if grace time can be 0, 1 if zero grace means default
sub default_grace
{
return 0;
}

sub parse_grace_output
{
local(@rv, %mtab, @m);
open(MTAB, "/etc/mtab");
while(<MTAB>) { @m = split(/\s+/); $mtab{$m[0]} = $m[1]; }
close(MTAB);
$ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat";
open(GRACE, "$_[0] |");
while(<GRACE>) {
	if (/^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $mtab{$1} eq $_[1]) {
		@rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5});
		}
	}
close(GRACE);
return @rv;
}

# edit_grace_file(data, filesystem, btime, bunits, ftime, funits)
sub edit_grace_file
{
local($rv, $line, @m, %mtab);
open(MTAB, "/etc/mtab");
while(<MTAB>) { @m = split(/\s+/); $mtab{$m[0]} = $m[1]; }
close(MTAB);
foreach $line (split(/\n/, $_[0])) {
	if ($line =~ /^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $mtab{$1} eq $_[1]) {
		# replace this line
		$line = "$1: block grace period: $_[2] $unit_to_name{$_[3]}, file grace period: $_[4] $unit_to_name{$_[5]}";
		}
	$rv .= "$line\n";
	}
return $rv;
}

# grace_units()
# Returns an array of possible units for grace periods
sub grace_units
{
return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'},
	$text{'grace_days'});
}

%name_to_unit = ( "second", 0, "seconds", 0,
		  "minute", 1, "minutes", 1,
		  "hour", 2, "hours", 2,
		  "day", 3, "days", 3,
		);
foreach $k (keys %name_to_unit) {
	$unit_to_name{$name_to_unit{$k}} = $k;
	}

1;

   070701000482d0000081a40000000000000002000000013ac03895000024f5000000200000000000000000000000000000001f00000003reloc/quota/turbo-linux-lib.pl    # linux-lib.pl
# Quota functions for all linux version

# quotas_init()
sub quotas_init
{
if (&has_command("quotaon") && &has_command("quotaoff")) {
	return undef;
	}
else {
	return "The quotas package does not appear to be installed on ".
	       "your system\n";
	}
}

# quotas_supported()
# Returns 1 for user quotas, 2 for group quotas or 3 for both
sub quotas_supported
{
return 3;
}

# free_space(filesystem)
# Returns an array containing  btotal, bfree, ftotal, ffree
sub free_space
{
local(@out, @rv);
$out = `df $_[0]`;
$out =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)/;
push(@rv, ($1, $2));
$out = `df -i $_[0]`;
$out =~ /Mounted on\n\S+\s+(\d+)\s+\d+\s+(\d+)/;
push(@rv, ($1, $2));
return @rv;
}

# quota_can(&mnttab, &fstab)
# Can this filesystem type support quotas?
#  0 = No quota support (or not turned on in /etc/fstab)
#  1 = User quotas only
#  2 = Group quotas only
#  3 = User and group quotas
sub quota_can
{
return ($_[1]->[3] =~ /usrquota/ ? 1 : 0) +
       ($_[1]->[3] =~ /grpquota/ ? 2 : 0);
}

# quota_now(&mnttab, &fstab)
# Are quotas currently active?
#  0 = Not active
#  1 = User quotas active
#  2 = Group quotas active
#  3 = Both active
sub quota_now
{
local $rv = 0;
local $dir = $_[0]->[0];
if ($_[0]->[4]%2 == 1) {
	# test user quotas
	if (-r "$dir/quota.user") {
		$out = `$config{'user_quotaon_command'} $dir 2>&1`;
		if ($out =~ /Device or resource busy/i) {
			# already on..
			$rv += 1;
			}
		elsif ($out =~ /Package not installed/i) {
			# No quota support!
			return 0;
			}
		else {
			# was off.. need to turn on again
			`$config{'user_quotaoff_command'} $dir 2>&1`;
			}
		}
	}
if ($_[0]->[4] > 1) {
	# test group quotas
	if (-r "$dir/quota.group") {
		$out = `$config{'group_quotaon_command'} $dir 2>&1`;
		if ($out =~ /Device or resource busy/i) {
			# already on..
			$rv += 2;
			}
		elsif ($out =~ /Package not installed/i) {
			# No quota support!
			return 0;
			}
		else {
			# was off.. need to turn on again
			`$config{'group_quotaoff_command'} $dir 2>&1`;
			}
		}
	}
return $rv;
}

# quotaon(filesystem, mode)
# Activate quotas and create quota files for some filesystem. The mode can
# be 1 for user only, 2 for group only or 3 for user and group
sub quotaon
{
local($out, $qf, @qfile, $flags);
if ($_[1]%2 == 1) {
	# turn on user quotas
	$qf = "$_[0]/quota.user";
	if (!(-r $qf)) {
		open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
		chmod(0600, $qf);
		&system_logged("$config{'quotacheck_command'} $_[0]");
		}
	$out = &backquote_logged("$config{'user_quotaon_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
if ($_[1] > 1) {
	# turn on group quotas
	$qf = "$_[0]/quota.group";
	if (!(-r $qf)) {
		open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
		chmod(0600, $qf);
		&system_logged("$config{'quotacheck_command'} $_[0]");
		}
	$out = &backquote_logged("$config{'group_quotaon_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# quotaoff(filesystem, mode)
# Turn off quotas for some filesystem
sub quotaoff
{
local($out);
if ($_[1]%2 == 1) {
	$out = &backquote_logged("$config{'user_quotaoff_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
if ($_[1] > 1) {
	$out = &backquote_logged("$config{'group_quotaoff_command'} $_[0] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# user_filesystems(user)
# Fills the array %filesys with details of all filesystem some user has
# quotas on
sub user_filesystems
{
return &parse_quota_output("$config{'user_quota_command'} $_[0]");
}

# user_filesystems(user)
# Fills the array %filesys with details of all filesystem some group has
# quotas on
sub group_filesystems
{
return &parse_quota_output("$config{'group_quota_command'} $_[0]");
}

sub parse_quota_output
{
local($n, $_, %mtab);
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	@m = split(/\s+/);
	$mtab{$m[0]} = $m[1];
	}
close(MTAB);
open(QUOTA, "$_[0] |");
$n=0; while(<QUOTA>) {
	chop;
	if (/^(Disk|\s+Filesystem)/) { next; }
	if (/^(\S+)$/) {
		# Bogus wrapped line
		$filesys{$n,'filesys'} = $mtab{$1};
		<QUOTA>=~/^.{15}.(.{7}).(.{7}).(.{7}).{8}.(.{7}).(.{7}).(.{7})/;
		$filesys{$n,'ublocks'} = int($1);
		$filesys{$n,'sblocks'} = int($2);
		$filesys{$n,'hblocks'} = int($3);
		$filesys{$n,'ufiles'} = int($4);
		$filesys{$n,'sfiles'} = int($5);
		$filesys{$n,'hfiles'} = int($6);
		$n++;
		}
	elsif (/^(.{15}).(.{7}).(.{7}).(.{7}).{8}.(.{7}).(.{7}).(.{7})/) {
		$filesys{$n,'ublocks'} = int($2);
		$filesys{$n,'sblocks'} = int($3);
		$filesys{$n,'hblocks'} = int($4);
		$filesys{$n,'ufiles'} = int($5);
		$filesys{$n,'sfiles'} = int($6);
		$filesys{$n,'hfiles'} = int($7);
		$dev = $1; $dev =~ s/\s+$//g; $dev =~ s/^\s+//g;
		$filesys{$n,'filesys'} = $mtab{$dev};
		$n++;
		}
	}
close(QUOTA);
return $n;
}

# filesystem_users(filesystem)
# Fills the array %user with information about all users with quotas
# on this filesystem. This may not be all users on the system..
sub filesystem_users
{
return &parse_repquota_output(
	"$config{'user_repquota_command'} $_[0]", "user");
}

sub filesystem_groups
{
return &parse_repquota_output(
	"$config{'group_repquota_command'} $_[0]", "group");
}

sub parse_repquota_output
{
local($rep, @rep, $n, $what, $u, @uinfo);
$what = $_[1];
$rep = `$_[0] 2>&1`;
if ($?) { return -1; }
if ($what eq 'user') {
	setpwent();
	while(@uinfo = getpwent()) {
		$hasu{$uinfo[0]}++;
		}
	endpwent();
	}
else {
	setgrent();
	while(@uinfo = getgrent()) {
		$hasu{$uinfo[0]}++;
		}
	endgrent();
	}
@rep = split(/\n/, $rep); @rep = @rep[3..$#rep];
for($n=0; $n<@rep; $n++) {
	if ($rep[$n] =~ /(\S+)\s*[\-\+]{2}(.{8})(.{8})(.{8}).{7}(.{8})(.{6})(.{6})/) {
		$$what{$n,$what} = $1;
		$$what{$n,'ublocks'} = int($2);
		$$what{$n,'sblocks'} = int($3);
		$$what{$n,'hblocks'} = int($4);
		$$what{$n,'ufiles'} = int($5);
		$$what{$n,'sfiles'} = int($6);
		$$what{$n,'hfiles'} = int($7);
		if ($$what{$n,$what} !~ /^\d+$/ && !$hasu{$$what{$n,$what}}) {
			# User/group name was truncated! Try to find him..
			foreach $u (keys %hasu) {
				if (substr($u, 0, length($$what{$n,$what})) eq
				    $$what{$n,$what}) {
					# found him..
					$$what{$n,$what} = $u;
					last;
					}
				}
			}
		}
	}
return $n;
}

# edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles)
sub edit_quota_file
{
local($rv, $line, %mtab, @m);
open(MTAB, "/etc/mtab");
while(<MTAB>) {
	@m = split(/\s+/);
	$mtab{$m[0]} = $m[1];
	}
close(MTAB);
@line = split(/\n/, $_[0]);
for($i=0; $i<@line; $i++) {
	if ($line[$i] =~ /^(\S+): blocks in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/ && $mtab{$1} eq $_[1]) {
		# found lines to change
		$rv .= "$1: blocks in use: $2, limits (soft = $_[2], hard = $_[3])\n";
		$line[++$i] =~ /^\s*inodes in use: (\d+), limits \(soft = (\d+), hard = (\d+)\)$/;
		$rv .= "\tinodes in use: $1, limits (soft = $_[4], hard = $_[5])\n";
		}
	else { $rv .= "$line[$i]\n"; }
	}
return $rv;
}

# quotacheck(filesystem, mode)
# Runs quotacheck on some filesystem
sub quotacheck
{
$out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1");
if ($?) { return $out; }
return undef;
}

# copy_user_quota(user, [user]+)
# Copy the quotas for some user to many others
sub copy_user_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'user_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# copy_group_quota(group, [group]+)
# Copy the quotas for some group to many others
sub copy_group_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'group_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# get_user_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day
sub get_user_grace
{
return &parse_grace_output($config{'user_grace_command'}, $_[0]);
}

# get_group_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day
sub get_group_grace
{
return &parse_grace_output($config{'group_grace_command'}, $_[0]);
}

# default_grace()
# Returns 0 if grace time can be 0, 1 if zero grace means default
sub default_grace
{
return 0;
}

sub parse_grace_output
{
local(@rv, %mtab, @m);
open(MTAB, "/etc/mtab");
while(<MTAB>) { @m = split(/\s+/); $mtab{$m[0]} = $m[1]; }
close(MTAB);
$ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat";
open(GRACE, "$_[0] |");
while(<GRACE>) {
	if (/^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $mtab{$1} eq $_[1]) {
		@rv = ($2, $name_to_unit{$3}, $4, $name_to_unit{$5});
		}
	}
close(GRACE);
return @rv;
}

# edit_grace_file(data, filesystem, btime, bunits, ftime, funits)
sub edit_grace_file
{
local($rv, $line, @m, %mtab);
open(MTAB, "/etc/mtab");
while(<MTAB>) { @m = split(/\s+/); $mtab{$m[0]} = $m[1]; }
close(MTAB);
foreach $line (split(/\n/, $_[0])) {
	if ($line =~ /^(\S+): block grace period: (\d+) (\S+), file grace period: (\d+) (\S+)/ && $mtab{$1} eq $_[1]) {
		# replace this line
		$line = "$1: block grace period: $_[2] $unit_to_name{$_[3]}, file grace period: $_[4] $unit_to_name{$_[5]}";
		}
	$rv .= "$line\n";
	}
return $rv;
}

# grace_units()
# Returns an array of possible units for grace periods
sub grace_units
{
return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'},
	$text{'grace_days'});
}

%name_to_unit = ( "second", 0, "seconds", 0,
		  "minute", 1, "minutes", 1,
		  "hour", 2, "hours", 2,
		  "day", 3, "days", 3,
		);
foreach $k (keys %name_to_unit) {
	$unit_to_name{$name_to_unit{$k}} = $k;
	}

1;

   070701000482d1000081e40000000000000002000000013ac03895000018c2000000200000000000000000000000000000001c00000003reloc/quota/unixware-lib.pl   # unixware-lib.pl
# Quota functions for UnixWare 7

# quotas_init()
sub quotas_init
{
return undef;
}

# quotas_supported()
# Returns 1 for user quotas, 2 for group quotas or 3 for both
sub quotas_supported
{
return 1;
}

# free_space(filesystem)
# Returns an array containing  btotal, bfree, ftotal, ffree
sub free_space
{
local($out);
$out = `df -t $_[0]`;
$out =~ /(\d+) blocks\s+(\d+) files\n.*\s+(\d+) blocks\s+(\d+) files/;
return ($3, $1, $4, $2);
}

# quota_can(&mnttab, &fstab)
# Can this filesystem type support quotas?
#  0 = No quota support (or not turned on in /etc/fstab)
#  1 = User quotas only
#  2 = Group quotas only
#  3 = User and group quotas
sub quota_can
{
return $_[0]->[2] eq "ufs" || $_[0]->[2] eq "vxfs" ? 1 : 0;
}

# quota_now(&mnttab, &fstab)
# Are quotas currently active?
#  0 = Not active
#  1 = User quotas active
#  2 = Group quotas active
#  3 = Both active
sub quota_now
{
return $_[0]->[3] =~ /,quota/ || $_[0]->[3] =~ /^quota/ ? 1 : 0;
}

# filesystem_users(filesystem)
# Fills the array %user with information about all users with quotas
# on this filesystem. This may not be all users on the system..
sub filesystem_users
{
local($rep, @rep, $n, %hasu, $u);
$rep = &backquote_logged("$config{'user_repquota_command'} $_[0] 2>&1");
if ($?) { return -1; }
setpwent();
while(@uinfo = getpwent()) {
	$hasu{$uinfo[0]}++;
	}
endpwent();
@rep = split(/\n/, $rep); @rep = @rep[3..$#rep];
for($n=0; $n<@rep; $n++) {
	if ($rep[$n] =~ /(\S+)\s+..\s+(\d+)\s+(\d+)\s+(\d+).*(\d+)\s+(\d+)\s+(\d+)/ || $rep[$n] =~ /(\S+)\s+..(.{7})(.{7})(.{7}).{13}(.{7})(.{7})(.{7})/) {
		$user{$n,'user'} = $1;
		$user{$n,'ublocks'} = int($2);
		$user{$n,'sblocks'} = int($3);
		$user{$n,'hblocks'} = int($4);
		$user{$n,'ufiles'} = int($5);
		$user{$n,'sfiles'} = int($6);
		$user{$n,'hfiles'} = int($7);
		$user{$n,'user'} =~ s/^#//g;
		if ($user{$n,'user'} !~ /^\d+$/ && !$hasu{$user{$n,'user'}}) {
			# Username was truncated! Try to find him..
			foreach $u (keys %hasu) {
				if (substr($u, 0, length($user{$n,'user'})) eq
				    $user{$n,'user'}) {
					# found him..
					$user{$n,'user'} = $u;
					last;
					}
				}
			}
		}
	}
return $n;
}

# edit_quota_file(data, filesys, sblocks, hblocks, sfiles, hfiles)
sub edit_quota_file
{
local($rv, $line);
foreach $line (split(/\n/, $_[0])) {
	if ($line =~ /^fs (\S+) blocks \(soft = (\d+), hard = (\d+)\) inodes \(soft = (\d+), hard = (\d+)\)$/ && $1 eq $_[1]) {
		# found line to change
		$line = "fs $_[1] blocks (soft = $_[2], hard = $_[3]) inodes (soft = $_[4], hard = $_[5])";
		}
	$rv .= "$line\n";
	}
return $rv;
}

# quotaon(filesystem, mode)
# Activate quotas and create quota file for some filesystem. The mode can
# be 1 for user only, 2 for group only or 3 for user and group
sub quotaon
{
local($qf, $out);
$qf = "$_[0]/quotas";
if (!(-r $qf)) {
	open(QUOTAFILE, "> $qf"); close(QUOTAFILE);
	chmod(0600, $qf);
	}
$out = &backquote_logged("$config{'user_quotaon_command'} $_[0] 2>&1");
if ($?) { return $out; }
return undef;
}

# quotaoff(filesystem, mode)
# Turn off quotas for some filesystem
sub quotaoff
{
local($out);
$out = &backquote_logged("$config{'user_quotaoff_command'} $_[0] 2>&1");
if ($?) { return $out; }
return undef;
}

# quotacheck(filesystem, mode)
# Runs quotacheck on some filesystem
sub quotacheck
{
$out = &backquote_logged("$config{'quotacheck_command'} $_[0] 2>&1");
if ($?) { return $out; }
return undef;
}

# copy_user_quota(user, [user]+)
# Copy the quotas for some user to many others
sub copy_user_quota
{
for($i=1; $i<@_; $i++) {
	$out = &backquote_logged("$config{'user_copy_command'} $_[0] $_[$i] 2>&1");
	if ($?) { return $out; }
	}
return undef;
}

# user_filesystems(user)
# Fills the array %filesys with details of all filesystems some user has
# quotas on
sub user_filesystems
{
local($n, $_);
open(QUOTA, "$config{'user_quota_command'} $_[0] |");
$n=0; while(<QUOTA>) {
	chop;
	if (/^(Disk|Filesystem)/) { next; }
	if (/^(\S+)$/) {
		# Bogus wrapped line!
		$filesys{$n,'filesys'} = $1;
		<QUOTA> =~ /^.{13}(.{7})(.{7})(.{7}).{12}(.{7})(.{7})(.{7})/;
		$filesys{$n,'ublocks'} = int($1);
		$filesys{$n,'sblocks'} = int($2);
		$filesys{$n,'hblocks'} = int($3);
		$filesys{$n,'ufiles'} = int($4);
		$filesys{$n,'sfiles'} = int($5);
		$filesys{$n,'hfiles'} = int($6);
		$n++;
		}
	elsif (/^(.{13})(.{7})(.{7})(.{7}).{12}(.{7})(.{7})(.{7})/) {
		$filesys{$n,'filesys'} = $1;
		$filesys{$n,'ublocks'} = int($2);
		$filesys{$n,'sblocks'} = int($3);
		$filesys{$n,'hblocks'} = int($4);
		$filesys{$n,'ufiles'} = int($5);
		$filesys{$n,'sfiles'} = int($6);
		$filesys{$n,'hfiles'} = int($7);
		$filesys{$n,'filesys'} =~ s/\s+$//g;
		$n++;
		}
	}
close(QUOTA);
return $n;
}

# get_user_grace(filesystem)
# Returns an array containing  btime, bunits, ftime, funits
# The units can be 0=sec, 1=min, 2=hour, 3=day, 4=week, 5=month
sub get_user_grace
{
local(@rv);
$ENV{'EDITOR'} = $ENV{'VISUAL'} = "cat";
open(GRACE, "$config{'user_grace_command'} |");
while(<GRACE>) {
	if (/^fs (\S+) blocks time limit = ([0-9\.]+) (\S+), files time limit = ([0-9\.]+) (\S+)/ && $1 eq $_[0]) {
		if ($2 == 0) { push(@rv, 0, 0); }
		else { push(@rv, $2, $name_to_unit{$3}); }
		if ($4 == 0) { push(@rv, 0, 0); }
		else { push(@rv, $4, $name_to_unit{$5}); }
		}
	}
close(GRACE);
return @rv;
}

# default_grace()
# Returns 0 if grace time can be 0, 1 if zero grace means default
sub default_grace
{
return 1;
}

# edit_grace_file(data, filesystem, btime, bunits, ftime, funits)
sub edit_grace_file
{
local($rv, $line);
foreach $line (split(/\n/, $_[0])) {
	if ($line =~ /^fs (\S+) blocks time limit = ([0-9\.]+) (\S+), files time limit = ([0-9\.]+) (\S+)/ && $1 eq $_[1]) {
		# replace this line
		$line = "fs $_[1] blocks time limit = $_[2] $unit_to_name{$_[3]}, files time limit = $_[4] $unit_to_name{$_[5]}";
		}
	$rv .= "$line\n";
	}
return $rv;
}

# grace_units()
# Returns an array of possible units for grace periods
sub grace_units
{
return ($text{'grace_seconds'}, $text{'grace_minutes'}, $text{'grace_hours'},
	$text{'grace_days'}, $text{'grace_weeks'}, $text{'grace_months'});
}

%name_to_unit = ( "sec", 0, "secs", 0,
		  "min", 1, "mins", 1,
		  "hour", 2, "hours", 2,
		  "day", 3, "days", 3,
		  "week", 4, "weeks", 4,
		  "month", 5, "months", 5
		);
foreach $k (keys %name_to_unit) {
	$unit_to_name{$name_to_unit{$k}} = $k;
	}

1;

  070701000482d2000081e40000000000000002000000013ac03895000009d7000000200000000000000000000000000000001d00000003reloc/quota/user_filesys.cgi  #!/usr/local/bin/perl
# user_filesys.cgi
# List all filesystems for which some user has quotas

require './quota-lib.pl';
&ReadParse();
$u = $in{'user'};
&can_edit_user($u) ||
	&error(&text('ufilesys_ecannot', $u));
&header($text{'ufilesys_title'}, "", "user_filesys");
print "<hr>\n";

foreach $f (&list_filesystems()) {
	if ($f->[4]%2 && $f->[5] && &can_edit_filesys($f->[0])) {
		push(@fslist, $f->[0]);
		$fslist{$f->[0]}++;
		}
	}

$n = &user_filesystems($u);
if ($n) {
	print "<h3>",&text('ufilesys_all', $u),"</h3>\n";
	print "<table border width=100%>\n";
	print "<tr $tb> <td><br></td>\n";
	print "<td colspan=3 align=center><b>$text{'ufilesys_blocks'}</b></td>\n";
	print "<td colspan=3 align=center><b>$text{'ufilesys_files'}</b></td> </tr>\n";
	print "<tr $tb> <td><b>$text{'ufilesys_fs'}</b></td>\n";
	print "<td><b>$text{'ufilesys_used'}</b></td> <td><b>$text{'ufilesys_soft'}</b></td>\n";
	print "<td><b>$text{'ufilesys_hard'}</b></td>\n";
	print "<td><b>$text{'ufilesys_used'}</b></td> <td><b>$text{'ufilesys_soft'}</b></td>\n";
	print "<td><b>$text{'ufilesys_hard'}</b></td> </tr>\n";
	for($i=0; $i<$n; $i++) {
		$f = $filesys{$i,'filesys'};
		print "<tr $cb>\n";
		if ($fslist{$f}) {
			print "<td><a href=\"edit_user_quota.cgi?filesys=$f&user=$u&source=1\">$f</a></td>\n";
			}
		else { print "<td>$f</td>\n"; }
		print "<td>$filesys{$i,'ublocks'}</td>\n";
		&print_limit($filesys{$i,'sblocks'});
		&print_limit($filesys{$i,'hblocks'});
		print "<td>$filesys{$i,'ufiles'}</td>\n";
		&print_limit($filesys{$i,'sfiles'});
		&print_limit($filesys{$i,'hfiles'});
		print "</tr>\n";
		}
	print "</table><br>\n";
	}
else {
	print "<b>",&text('ufilesys_nouquota', $u),"</b><p>\n";
	}

print "<table width=100%><tr>\n";
print "<form action=edit_user_quota.cgi>\n";
print "<input type=hidden name=user value=\"$u\">\n";
print "<input type=hidden name=source value=1>\n";
print "<td align=left><input type=submit value=\"$text{'ufilesys_edit'}\">\n";
print "<select name=filesys>\n";
foreach $f (@fslist) { print "<option>$f\n"; }
print "</select></td></form>\n";

if ($access{'filesys'} eq "*") {
	print "<form action=copy_user_form.cgi>\n";
	print "<input type=hidden name=user value=\"$u\">\n";
	print "<td align=right><input type=submit value=\"$text{'ufilesys_copy'}\">\n";
	print "</td></form>\n";
	}
print "</tr></table>\n";

print "<hr>\n";
&footer("", $text{'ufilesys_return'});

sub print_limit
{
if ($_[0] == 0) { print "<td>$text{'quota_unlimited'}</td>\n"; }
else { print "<td>$_[0]</td>\n"; }
}

 070701000482d3000081e40000000000000002000000013ac03895000006fd000000200000000000000000000000000000002000000003reloc/quota/user_grace_form.cgi   #!/usr/local/bin/perl
# user_grace_form.cgi
# Display a form for editing user grace times for some filesystem

require './quota-lib.pl';
&ReadParse();
$access{'ugrace'} && &can_edit_filesys($in{'filesys'}) ||
	&error($text{'ugracef_ecannot'});
&header($text{'ugracef_title'}, "", "user_grace");
print "<hr>\n";

print "$text{'ugracef_info'}<p>\n";

@gr = &get_user_grace($in{'filesys'});
print "<form action=user_grace_save.cgi>\n";
print "<input type=hidden name=filesys value=\"$in{'filesys'}\">\n";
print "<table border width=100%>\n";
print "<tr $tb> <td colspan=2><b>",&text('ugracef_graces', $in{'filesys'}),"</b></td></tr>\n";

print "<tr $cb> <td width=20%><b>$text{'ugracef_block'}</b></td> <td>\n";
if (&default_grace()) {
	printf "<input type=radio name=bdef value=1 %s> $text{'default'}\n",
		$gr[0] ? "" : "checked";
	printf "<input type=radio name=bdef value=0 %s>\n",
		$gr[0] ? "checked" : "";
	}
print "<input name=btime size=6 value=\"$gr[0]\">";
&select_units("bunits", $gr[1]);
print "</td> </tr>\n";

print "<tr $cb> <td width=20%><b>$text{'ugracef_file'}</b></td> <td>\n";
if (&default_grace()) {
	printf "<input type=radio name=fdef value=1 %s> $text{'default'}\n",
		$gr[2] ? "" : "checked";
	printf "<input type=radio name=fdef value=0 %s>\n",
		$gr[2] ? "checked" : "";
	}
print "<input name=ftime size=6 value=\"$gr[2]\">";
&select_units("funits", $gr[3]);
print "</td> </tr>\n";

print "</table><p>\n";
print "<input type=submit value=$text{'ugracef_update'}></form>\n";

print "<hr>\n";
&footer("list_users.cgi?$in{'filesys'}", $text{'ugracef_return'});

sub select_units
{
@uarr = &grace_units();
print "<select name=$_[0]>\n";
for($i=0; $i<@uarr; $i++) {
	printf "<option value=$i %s>$uarr[$i]\n",
		$i == $_[1] ? "selected" : "";
	}
print "</select>\n";
}

   070701000482d4000081e40000000000000002000000013ac0389500000307000000200000000000000000000000000000002000000003reloc/quota/user_grace_save.cgi   #!/usr/local/bin/perl
# user_grace_save.cgi
# Update the grace times for users on some filesystem

require './quota-lib.pl';
&ReadParse();
$whatfailed = $text{'ugraces_esave'};
$access{'ugrace'} && &can_edit_filesys($in{'filesys'}) ||
	&error($text{'ugraces_eedit'});

if ($in{'bdef'}) { push(@args, 0, 0); }
elsif ($in{'btime'} !~ /^[0-9\.]+$/)
	{ &error(&text('ugraces_enumber', $in{'btime'})); }
else { push(@args, ($in{'btime'}, $in{'bunits'})); }

if ($in{'fdef'}) { push(@args, 0, 0); }
elsif ($in{'ftime'} !~ /^[0-9\.]+$/)
	{ &error(&text('ugraces_enumber', $in{'ftime'})); }
else { push(@args, ($in{'ftime'}, $in{'funits'})); }

&edit_user_grace($in{'filesys'}, @args);
&webmin_log("grace", "user", $in{'filesys'}, \%in);
&redirect("list_users.cgi?$in{'filesys'}");

 070701000482d5000081a40000000000000002000000013ac03895000003c8000000200000000000000000000000000000002000000003reloc/quota/useradmin_update.pl   
do './quota-lib.pl';

# useradmin_create_user(&details)
# Sets quotas on chosen filesystems
sub useradmin_create_user
{
local ($k, $fs);
foreach $k (keys %config) {
	if ($k =~ /^sync_(\S+)$/) {
		# found a filesystem to set quotas on
		$fs = $1;
		@quot = split(/\s+/, $config{$k});
		&edit_user_quota($_[0]->{'user'}, $fs, @quot);
		}
	}
}

# useradmin_delete_user(&details)
# Zero the quotas of a deleted user
sub useradmin_delete_user
{
$n = &list_filesystems();
for($i=0; $i<$n; $i++) {
	if ($filesys{$i,'quotacan'} && $filesys{$i,'quotanow'}) {
		$fslist{$filesys{$i,'dir'}}++;
		}
	}
$n = &user_filesystems($_[0]->{'user'});
for($i=0; $i<$n; $i++) {
	$f = $filesys{$i,'filesys'};
	if ($fslist{$f}) {
		# user has quota, and filesystem is local
		&edit_user_quota($_[0]->{'user'}, $f, 0, 0, 0, 0);
		}
	}
}

# useradmin_modify_user(&details)
# Quotas are stored by UID, so no need to change anything
# when a username changes.
sub useradmin_modify_user
{
}

1;

0707010004dd91000041ed0000000000000001000000043ac03c5600000000000000200000000000000000000000000000000b00000003reloc/raid    0707010004dd92000081a40000000000000002000000013ac038b100000029000000200000000000000000000000000000001200000003reloc/raid/config raidtab=/etc/raidtab
mdstat=/proc/mdstat
   0707010004dd93000081a40000000000000002000000013ac038b100000043000000200000000000000000000000000000001700000003reloc/raid/config.info    raidtab=RAID configuration file,0
mdstat=Kernel RAID status file,0
 0707010004dd94000081a40000000000000002000000013ac038b100000044000000200000000000000000000000000000001a00000003reloc/raid/config.info.de raidtab=RAID Konfigurationsdatei,0
mdstat=Kernel RAID Statusdatei,0
0707010004dd95000081a40000000000000002000000013ac038b100000056000000200000000000000000000000000000001a00000003reloc/raid/config.info.es raidtab=Archivo de configuraci髇 RAID,0
mdstat=Archivo de estado del RAID de Kernel,0
  0707010004dd96000081a40000000000000002000000013ac038b10000004c000000200000000000000000000000000000001a00000003reloc/raid/config.info.pl raidtab=Plik konfiguracji RAIDu,0
mdstat=Plik stanu RAIDu w&nbsp; kernelu,0
0707010004dd97000081a40000000000000002000000013ac038b100000046000000200000000000000000000000000000001d00000003reloc/raid/config.info.ru_RU  mdstat=咪屦睇 羿殡 耦耱龛 RAID,0
raidtab=脏殡 觐眙桡箴圉梃 RAID,0
  0707010004dd98000081a40000000000000002000000013ac038b100000046000000200000000000000000000000000000001d00000003reloc/raid/config.info.ru_SU  raidtab=媪侍 讼纹汕找撩缮 RAID,0
mdstat=衲乓钨 屏侍 酉釉涎紊 RAID,0
  0707010004dd99000081a40000000000000002000000013ac038b100000048000000200000000000000000000000000000001a00000003reloc/raid/config.info.sv raidtab=Inst鋖lningsfil f鰎 RAID,0
mdstat=Statusfil f鰎 RAID i k鋜nan,0
0707010004dd9a000081a40000000000000002000000013ac038b100000049000000200000000000000000000000000000001a00000003reloc/raid/config.info.tr raidtab=RAID yap齦and齬ma dosyas,0
mdstat=莈kirdek RAID durum dosyas,0
   0707010004dd9b000081a40000000000000002000000013ac038b100000034000000200000000000000000000000000000001d00000003reloc/raid/config.info.zh_CN  raidtab=RAID 配置文件,0
mdstat=内核 RAID 状态文件,0
0707010004dd9c000081a40000000000000002000000013ac038b100000037000000200000000000000000000000000000002200000003reloc/raid/config.info.zh_TW.Big5 raidtab=合盒皚舱篈郎,0
mdstat=み合盒皚篈郎,0
 0707010004dd9d000081e40000000000000002000000013ac038b1000007cb000000200000000000000000000000000000001b00000003reloc/raid/create_raid.cgi    #!/usr/local/bin/perl
# create_raid.cgi
# Create raid set

require './raid-lib.pl';
&ReadParse();
&lock_file($config{'raidtab'});
$conf = &get_raidtab();

# Build config file structure
&error_setup($text{'create_err'});
$raid = { 'name' => 'raiddev',
	  'value' => $in{'device'},
	  'members' => \@members };
push(@members, { 'name' => 'raid-level',
		 'value' => $in{'level'} } );
push(@members, { 'name' => 'persistent-superblock',
		 'value' => $in{'super'} } );
push(@members, { 'name' => 'chunk-size',
		 'value' => $in{'chunk'} } );
if ($in{'parity'}) {
	push(@members, { 'name' => 'parity-algorithm',
			 'value' => $in{'parity'} } );
	}

# Add RAID disks
@disks = split(/\0/, $in{'disks'});
if (!@disks) {
	&error($text{'create_edisks'});
	}
elsif ($in{'level'} == 1 && @disks < 2) {
	&error($text{'create_edisks2'});
	}
push(@members, { 'name' => 'nr-raid-disks',
		 'value' => scalar(@disks)+($in{'pdisk'} ? 1 : 0) } );
for($i=0; $i<@disks; $i++) {
	push(@members, { 'name' => 'device',
			 'value' => $disks[$i],
			 'members' => [ { 'name' => 'raid-disk',
					  'value' => $i } ] } );
	}

# Add spares
@spares = split(/\0/, $in{'spares'});
if (@spares) {
	push(@members, { 'name' => 'nr-spare-disks',
			 'value' => scalar(@spares) } );
	for($i=0; $i<@spares; $i++) {
		if (&indexof($spares[$i], @disks) != -1) {
			&error(&text('create_espare', $spares[$i]));
			}
		push(@members, { 'name' => 'device',
				 'value' => $spares[$i],
				 'members' => [ { 'name' => 'spare-disk',
						  'value' => $i } ] } );
		}
	}

# Add parity disk
if ($in{'pdisk'}) {
	&indexof($in{'pdisk'}, @disks) < 0 || &error($text{'create_epdisk'});
	push(@members, { 'name' => 'device',
			 'value' => $in{'pdisk'},
			 'members' => [ { 'name' => 'parity-disk',
					  'value' => 0 } ] } );
	}

&create_raid($raid);
&unlock_file($config{'raidtab'});
if ($err = &make_raid($raid, $in{'force'})) {
	&delete_raid($raid);
	&error($err);
	}
&webmin_log("create", undef, $in{'device'}, \%in);
&redirect("");

 0707010004f496000041ed0000000000000001000000023ac03c5600000000000000200000000000000000000000000000001200000003reloc/raid/images 0707010004f497000081a40000000000000002000000013ac038b10000022c000000200000000000000000000000000000001800000003reloc/raid/images/0.gif   GIF89a0 0   槝樔倘湡淏DBoqoCCCUUU帋幥乔沣厛   ,-,vvv999rrr222驳瞖ee!Made with GIMP !    ,    0 0    巇i瀐j嗑p牢(,躼.吏礻类N肢	:W@:w%6_已痾TfW*躯妋H6k媠n-蘾9遚竁喘怏T{wyAk儎卲Q`妶c噺]妔sZC厎D|dvinwkS唓歛'拁殽獫擯榎O煹湻i磣尲犃攣帨`罥藄筕÷膌﹥讒笆瓳童S诉媽崁矠D沣陉庤侮氩仐茛粕g询1③豏祷迱dK 缾@丂孈 纴*奌燻A*0t袪缼$q@ 4è e盄6泪@"H`)瘭	 来!鐡樌`
H壓	犳之>:	isB7ùX敨W=)繠谝ㄒ3 HZB帋怌\p	AI擸閬CyP丠V 絸"蹕\H萨 ;0707010004f498000081a40000000000000002000000013ac038b10000022c000000200000000000000000000000000000001b00000003reloc/raid/images/0.ia.gif    GIF89a0 0   苅i飕soU10怮OU00j??籤`擘⒅}}筒[Y   9汸PI((%擮O@##軑墌KK!Made with GIMP !    ,    0 0    巇i瀐j嗑p牢(,躼.吏礻类N肢	:W@:w%6_已痾TfW*躯妋H6k媠n-蘾9遚竁喘怏T{wyAk儎卲Q`妶c噺]妔sZC厎D|dvinwkS唓歛'拁殽獫擯榎O煹湻i磣尲犃攣帨`罥藄筕÷膌﹥讒笆瓳童S诉媽崁矠D沣陉庤侮氩仐茛粕g询1③豏祷迱dK 缾@丂孈 纴*奌燻A*0t袪缼$q@ 4è e盄6泪@"H`)瘭	 来!鐡樌`
H壓	犳之>:	isB7ùX敨W=)繠谝ㄒ3 HZB帋怌\p	AI擸閬CyP丠V 絸"蹕\H萨 ;0707010004f499000081a40000000000000002000000013ac038b10000023d000000200000000000000000000000000000001800000003reloc/raid/images/1.gif   GIF89a0 0   倘槝槣煖BDB222TTTnpnRTR妼娏牧茑躤ee   787エ,-,厛匶[Y!Made with GIMP !   ,    0 0  '巇Y琲刖*饥p硪鮨#倦<Y4cGbR笵楔T皠K尧v%}F&雟瑓赌跀.S膘p{X汫8淣哆Eyda亅ch[r墔uQ$~cr\_mY弜3Y,X剶S沑帎瀻W憤殬{帉[棁仭搉爼E磫k珐坢坷uz惼杆噬酞蝹楼E爬~訏仗啄澲敜犀眧]欓贰}暭焷诎篂岵具廴芒}赕奰<颞軚雄翭軤9產羾t帚4ㄢl/@@┺|8`D淒〤4(@繟4h燖倴 饳r@<hD8`i詴>鷘仍Dx癇acz1
≧+t ?帻P鱪 u?,罌U/ 鎫p嗬<_ 瓋H呼у罜4欯u褷紝Y捓W^79扢D ;   0707010004f49a000081a40000000000000002000000013ac038b10000023d000000200000000000000000000000000000001b00000003reloc/raid/images/1.ia.gif    GIF89a0 0   鲮苅i蕇oU10@##i>>嶱Oh>=竊]鐭滝伺~KK   F''褈z9$瞇YpDC!Made with GIMP !   ,    0 0  '巇Y琲刖*饥p硪鮨#倦<Y4cGbR笵楔T皠K尧v%}F&雟瑓赌跀.S膘p{X汫8淣哆Eyda亅ch[r墔uQ$~cr\_mY弜3Y,X剶S沑帎瀻W憤殬{帉[棁仭搉爼E磫k珐坢坷uz惼杆噬酞蝹楼E爬~訏仗啄澲敜犀眧]欓贰}暭焷诎篂岵具廴芒}赕奰<颞軚雄翭軤9產羾t帚4ㄢl/@@┺|8`D淒〤4(@繟4h燖倴 饳r@<hD8`i詴>鷘仍Dx癇acz1
≧+t ?帻P鱪 u?,罌U/ 鎫p嗬<_ 瓋H呼у罜4欯u褷紝Y捓W^79扢D ;   0707010004f49b000081a40000000000000002000000013ac038b100000503000000200000000000000000000000000000001800000003reloc/raid/images/4.gif   GIF89a0 0   掎挹葳ぅぽ噍钠谋潮车城饲忍揉汔陡毒辆炊储＂嚼将í槝潩澓胶杭郝坡ΗΣ床ウヂ怕洓洘牊柯科势蹈怠ⅰ牋牤悲饭窛灊牎犈膳湝溓糖粕骗够攻Д┇┤巳聊翞煘们每每煙煯爱ě扯车返伎純剝888ACABDBdedrrrUUU帋幥乔獏垍   ,-,YZY999沣+,+898oqolll洕泈xw摃676!Made with GIMP !    ,    0 0  䜣 們剠唶垑彁寠晻潪		枽
	灜牥
Ё潿郸粻懒籂掏 !溴 "圮#$%趱&'祉(]鐯 (む護 臯皹Hq鈯-,竊拉b芵%` 菃`c(N`轵%%B1i怃
(檐T-渊Re鞎HY-蚒4,A'b|ぺ摋/v[泭祯K聾VM恖〈㘎[塴薼缹g薛溅!;家╱咫7
o嗄3囶:v埫峓|.莺夼C0蟐=|	舯,象鐋麙馒p繞P燖乇.狞0b艎3n	憰倪1j瑡 ,蜌`偱%I搨R0敡\憐T鲹25岛炸aCVEdw
滑p馟V1ㄕ(蠵;gψ`豩c	6攚F78 )FY=栐<偯("<餉}f=ㄩW
洙c(褸j5g沰s~K9蹿~!躵%i($甜"N蚎'%!i!椲)R鑹蒧:尷巚^畷 }侃&,$靝@T儸愤楜m)HwE!YYya騖M0%rV咟祼碡U '獦"溉)7奖傘鹦? 怉1C  漠B:Er+F+G$GA pB(q劘K0q劙5U,朚8LG0炊, A0!H2l+aPDB磱-J,l澞6,r2[诚F Q+l紖磄谭	Hq
惈鸸*1!&TH[pJ+1抵鎆D洚籋#5UaL!某 蜿s叶v$5!  ; 0707010004f49c000081a40000000000000002000000013ac038b100000504000000200000000000000000000000000000001b00000003reloc/raid/images/4.ia.gif    GIF89a0 0   魉契睦裿v魃年軌囖媺飒レ魑枢弽鏇椷寠蝩u鍤栕個}苅i蓀p銝掋敀椋炓yy軏壯xx闋溔mm蘱q鏉欕─謢}邜屚tt蛂r蹎勦憦毵⑸nn飕リΓ貋佲搼褆z諃~歙ョ煖蕅q楗犳牄賳勜厓觶z迧夁帉錁暞VVH''T0/U10}JJ擮Oj??籤`擘⒉[Y   9oBBI((%7怮O奙M蓂n淨Q羑f猄SE&&!Made with GIMP !    ,    0 0  䜣 們剠唶垑彁寠晻潪		枽
	灜牥
Ё潿郸粻懒籂掏 !溴 "圮#$%趱#祉&]鐯 (溹護 臨Hqb+,癭拉b芵%` 菃\c(N`轵%%B1i怃
(檐T-渊Re鞎HY-蚒4,A#^|ぺ摋/v[泭祯K聾VM恖〈㘎[塴薼@実薛溅!;家╱咫7)
o嗄3囶:v埫峓|.莺夼C0蟐=|	舯,象鐋麙壶p繞P燖乇.狞0b艎3n	憰倪1j瑡 ,蜌`偱%I搨R0敡\憐T鲹05岛炸aCEdw
蓁p馟V/ㄕ(壤;gψ`豩c	3攚F48 V)FY=朤<RC(b<餉}f=ㄩW	洙c&褸j5g沰s~9蹿~!躵%i($酿"N蚎'%!i!椲)R鑹蒧7 欇h 檀鱡$鄍@T儸愤	h&Du鮏P哾e鍏	.X萻5翑萗蚍B2礳W湪b,郻к羝
;F悆;鹄C@ @ 件犽 A|pH澀1劕DQ0A1D傪
F黗伳脪讛盭&0>亜艳:劙 鴢 秗k睘+J,0Hn河阐稟1鸢^阞C,監4隦
r潦[垶
JC81籉1-襗?衲`幕W{釘祟"嵲E0p诡陔螶呲言 ;0707010004f49d000081a40000000000000002000000013ac038b1000004bb000000200000000000000000000000000000001800000003reloc/raid/images/5.gif   GIF89a0 0   掎挹葳ぅぽ噍钠谋潮车城饲忍揉汔陡毒辆炊储＂嚼将í槝潩澓胶杭郝坡ΗΣ床ウヂ怕洓洘牊柯科势蹈怠ⅰ牋牤悲饭放膳翘瞧善巳牎犃牧灍灝爱们莽ě潪潨湝够攻Д┇┛每煙煭乔荱UU{}{IIIBDBmom]^]888驳矃垍xyxjkj噰嚜   999帋帥灈BCB,-,oqoeeerrrXZX剣刌[Y:;:676$$$mnm湡渪zxCCC沣銢潧伎;<;JKJ摃+,+ABA湃舮{y[[[cdc!Made with GIMP !    ,    0 0  䜣 們剠唶垑彁寠晻潪		枽
	灜牥
Ё潿郸粻懒籂掏 !溴 "圮#$%趱寧憪韮&]鐯&M淺eT'姟HA1*c痐%怑嬠璪>妾扑籞T4lX蓶殛Y磇$痠葀襐膽澕g陑歓谅%倃太G颺>}, (,xpIx拎䅟!J垄譕9壚D効4C饴ū/祪C隍畋1曻[*'浺ń陨盨筤厗W鬨簎灲2u
UV豔犬]+H6撡梙K*涴+[穚_F0碑*c*_縺w颤攁绳磑t崙+,3瓮卮暞'袲K8歵居誁&誯鮴 J+'坢X$廝 儌缟Zm饢r|5G]($04`8Hu薬荾+1 B*"螺z鏸訟5偅`NK@=r$窿侼憛p a0`LⅡ\僜88P%!揍嚿%#|餰:穿<翪砒餋@	臐&!D翇G磯I捗G(潦K pK0qD	凌Nz H G@牛!E'S@慇T紶ΗF慏FRQ笂 畩ΟBq6C瑕U(zJ懪
KlSh
遗箳洪	Ld昱`勓 pF1*6q d攣(7ll鏍hf渷 VDl	檻屏齞淗  ; 0707010004f49e000081a40000000000000002000000013ac038b1000004b9000000200000000000000000000000000000001b00000003reloc/raid/images/5.ia.gif    GIF89a0 0   魉契睦裿v魃年軌囖媺飒レ魑枢弽鏇椷寠蝩u鍤栕個}苅i蓀p銝掋敀椋炓yy軏壯xx闋溔mm蘱q鏉欕─謢}邜屚tt蛂r蹎勦憦毵㈧軎Ｘ亖歙ョ煖蕅q賳勯觶z蒼n鈸懷|z諃~鏍涁厓擘??S\55U10峆NsFFH''軑壊[Y濹Q哅M碮Y   I((籤`蓅nT//9怮O~KK擮OoCB盵XpDCJ))%E&&/婲N蕇o烻RU00蜕qn錁昁**^55羑f7R//辘　TRqDD{JJ!Made with GIMP !    ,    0 0  䜣 們剠唶垑彁寠晻潪		枽
	灜牥
Ё潿郸粻懒籂掏 !溴 "圮#$%趱寧憪韮&]鐯&M淺eT'姟HA1*c痐%怑嬠璪>妾扑籞T4lX蓶殛Y磇$痠葀襐膽澕g陑甭%倃太G颺>}, (,xpIp拎䅟!J垄譕9壚D効4C饴ū/祪C隍畋1曻[*'浺ń陨盨筤厗W鬨簎灲2u
UV豔犬]+H6撡梙K*涴+[穚]F0碑*c*_縺w颤攁绳磑t崙+,3瓮卮暞'袲K8歵>毽@&誯鮴 #'坢X$廝 儌缟Zm饢r|5G]($2`8Hu薬荾+1 *"螺z鏸5偅`NK@=r$窿侼憛p穁帬0@LⅡ\僜AibTI垎苪鴄r山鹑xil迉C#忎燙1;Ax鯼	> DBp罅l1D傌0F皉伳H慏?,:17材L4(8焉L$.べi8ED駚 QH袲<┆d*CLh3僯EPaU魥*奥&駝W`雪 Yq毹>!懑 l罞
- C駚_a ∟ZiF噐虫 7宝塿!d 琶RP1e芟艍 ;   0707010004f49f000081a40000000000000002000000013ac038b1000000db000000200000000000000000000000000000001b00000003reloc/raid/images/disk.gif    GIF87a0 0   鴺槝忍   ,    0 0  磩彥隧醂7呣\F軭z遐E琚膊昃H,梩mCx; ;噼3$n2瑢$I黫(TZ4Z烮s邃酩S陊)k彟磵季v$N块Go$w亲鈬"Bcb抙&Q哢gF瑰鯣竏b	歑96J簒甘讴u 穳9:厃,<L\l|寽誊禳輁  ; 0707010004f4a0000081a40000000000000002000000013ac038b10000060b000000200000000000000000000000000000001b00000003reloc/raid/images/icon.gif    GIF89a0 0   噔嘁找纠粳盹砼扰嚼交净僚疗势撬侨倘缕录考季检铎负该泼┇┆ぅて善瘹洑ΗΦ傅陡斗狗柯靠每炊矗ぃ櫃櫝党辜咕辆泛发＂殮毇背杯杭函帛洔浨是聊僚膳逝绦讨谥肇赵自íㄓ钟仲治椅宗赚洓浢敲召账退够蛊绕舶履履饶īō似豢槐幢烂篮胶泊猜怕　槝俺敖两富府爱捶疮隘ういい扯扯苟牎牘祭寄悄娇睫徂谳谳噍钠魔ěウム汔捣禎潩Θ牊、牋潪澓缓鲼鎏翁湝滭痱鹎糖ェト巳灍灍煙         !Made with GIMP !    ,    0 0  䜣 們剠唶垑憫 寧悞敄槡彎灂 	
í安炊┇背 夯
巧撕跋延侍幸
 徙彗殡怃宙桕
 x!b|8班A}H朽
旇缿c	'P嘠cG E捥格淝#U<Xa 剛7C`÷燣6q*猩隅虤B囶	览68瘛A/>:店宅N桝旿*枝0堆s美H㱮c诰U&窓3+詤碹癭惧0儐5l芾立B朰韪保2<zL甽9箧挝渷瘃c 諅I0ae2\(1A d佣;7蘧儰RddF淴p抅|嵒B2!曛着蓰	J薲Y',阚纗P苈桹傀.W錀B4餈{%
P@v5@!LA6 n豈X!〢QEk児"W,,f羴媄ǜⅷ"/#3  畃褏	$0膾嫡杸F|AH*射扖<皠4冷a怈>\uf檊r鍋歭r)Kb怚#
&Hx
)噻6
J(R氳'F\艚$a啸齍*2娶C"&^@痖í易狝悇cBe\嚯柋洊 艸祳 箽q
+3$@{釷P礆欶	H &j7蝿2 逼
Q虁c h.竝2闚沍*銨U刟E	m
  !1P.-<*A*j(D憜R< (_| E鲓)_n|纮虁阆汤so捞劀HuHG#8FXr8<幂掷2<嚯I磥疨髊k!`;PfxX寔8馌TT;躠&虔烹︽	3T@E鋺_泂^脘鱣y,攏"|儺哄B箕:"_ ;}枦 哆n`:锼眬B鹇r&鴬喣許弳	X纜髠膎Z9/~2磱5鲯|耜]嵕!烇螚 ↓麉牼惧$,徔箨珳逯 図q颸橼32 ㄡ刾搐5籮Z4漠z琠	a" ; 0707010004f4a1000081a40000000000000002000000013ac038b10000023b000000200000000000000000000000000000001d00000003reloc/raid/images/linear.gif  GIF89a0 0   鴺槝忍萊TR聊羙qoBDB驳矞煖厛222妼   エ[Y!!!eee787,-,茑躹vvCCCnpn!Made with GIMP !   ,    0 0  '巇i瀐獖A刖*`吒鹞|@]寳
徆馾D:嵤%╅B礿f?W頾遤葰挹`p軙酸p}導譒@x~vo^#nU墔X,寘cBS彁gB噵}檝崨侭晽様.棑湁儳枬濱爼d>奼瓪>巻稛cＡ儭o▓ぁs蕼歉腷癨澦讨闲徒有%愿荕峑詹惔峁懢癶鍸瑐翴駾鈣抏tk #P览 0@戔m P`@亗34褉A 豟 儕n<Hi氓G@I捔3瞭lD`犮儎2x(鵤	喚绬Fp×
#w@u纮
,0堗瞓Wb^`)兛B甿5慘a三 0p爪`餿"7(橹瑽20 瘌僒-+@g儍
S+訷盗j栙6 ; 0707010004f4a2000081a40000000000000002000000013ac038b10000023b000000200000000000000000000000000000002000000003reloc/raid/images/linear.ia.gif   GIF89a0 0   銎ii飕>=鐭湊QOU10軑壥so瞇Y@##竊]   褈zpDC+~KKF''9$鏊艣PPU00嶱O!Made with GIMP !   ,    0 0  '巇i瀐獖A刖*`吒鹞|@]寳
徆馾D:嵤%╅B礿f?W頾遤葰挹`p軙酸p}導譒@x~vo^#nU墔X,寘cBS彁gB噵}檝崨侭晽様.棑湁儳枬濱爼d>奼瓪>巻稛cＡ儭o▓ぁs蕼歉腷癨澦讨闲徒有%愿荕峑詹惔峁懢癶鍸瑐翴駾鈣抏tk #P览 0@戔m P`@亗34褉A 豟 儕n<Hi氓G@I捔3瞭lD`犮儎2x(鵤	喚绬Fp×
#w@u纮
,0堗瞓Wb^`)兛B甿5慘a三 0p爪`餿"7(橹瑽20 瘌僒-+@g儍
S+訷盗j栙6 ; 0707010004dd9e000081e40000000000000002000000013ac038b100000559000000200000000000000000000000000000001500000003reloc/raid/index.cgi  #!/usr/local/bin/perl
# index.cgi
# Display all RAID devices

require './raid-lib.pl';
&header($text{'index_title'}, "", undef, 1, 1);
print "<hr>\n";

# Check if raid is installed
if (!-r $config{'mdstat'}) {
	print "<p><b>",&text('index_emdstat',
			     "<tt>$config{'mdstat'}</tt>"),"</b><p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}
if (!&has_command('mkraid') || !&has_command('raidstart')) {
	print "<p><b>$text{'index_emkraid'}</b><p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

# Display configured raid devices
$conf = &get_raidtab();
if (@$conf) {
	foreach $c (@$conf) {
		$lvl = &find_value('raid-level', $c->{'members'});
		push(@titles, $c->{'value'});
		push(@images, $c->{'active'} ? "images/$lvl.gif"
					     : "images/$lvl.ia.gif");
		push(@links, "view_raid.cgi?idx=$c->{'index'}");
		}
	&icons_table(\@links, \@titles, \@images);
	}
else {
	print "<p><b>$text{'index_none'}</b><p>\n";
	}
print "<form action=raid_form.cgi>\n";
print "<input type=submit value='$text{'index_add'}'>\n";
print "<select name=level>\n";
print "<option value=linear>$text{'linear'}\n";
print "<option value=0>$text{'raid0'}\n";
print "<option value=1>$text{'raid1'}\n";
print "<option value=4>$text{'raid4'}\n";
print "<option value=5>$text{'raid5'}\n";
print "</select></form>\n";

print "<hr>\n";
&footer("/", $text{'index'});

   07070100050b31000041ed0000000000000001000000023ac03c5600000000000000200000000000000000000000000000001000000003reloc/raid/lang   07070100050b32000081a40000000000000002000000013ac038b100000a83000000200000000000000000000000000000001300000003reloc/raid/lang/de    index_title=Linux RAID
index_none=Keine RAID Laufwerke konfiguriert
index_add=Erstelle RAID Laufwerk mit Level:
index_return=RAID Laufwerke
index_emdstat=Die Kernel RAID Status Datei $1 existiert nicht auf diesem System. Der Kernel scheint RAID nicht zu unterst&uuml;tzen.
index_emkraid=Die RAID Tools sind nicht auf Ihrem System installiert.

linear=Zusammengef&uuml;gt (Linear)
raid0=Striped (RAID0)
raid1=Gespiegelt (RAID1)
raid4=Parit&auml;t (RAID4)
raid5=Redundant (RAID5)

create_title=Erstelle RAID Laufwerk
create_header=RAID Laufwerkeinstellungen
create_device=Laufwerks-Datei
create_level=RAID Level
create_disks=Partitionen im RAID
create_spares=Ersatz-Partitionen
create_pdisk=Parit&auml;ts-Partition
create_pauto=Automatisch
create_nodisks=Es sind keine freien Partitionen verf&uuml;gbar f&uuml;r RAID.
create_super=Persistenter Superblock?
create_parity=Parit&auml;ts-Algorithmus
create_chunk=Chunk Gr&ouml;遝
create_force=Erzwinge Initialisierung des RAID?
create_rdev=RAID Laufwerk $1
create_err=Das Erstellen des RAID Laufwerks schlug fehl
create_edisks=Es wurden keine Partitionen ausgew&auml;hlt
create_edisks2=Mindestens zwei Partitionen m&uuml;ssen f&uuml;r Spiegeln ausgew&auml;hlt sein
create_espare=Die Ersatz-Partition $1 kann nicht gleichzeitig eine RAID Partition sein.
create_epdisk=Die Parit&auml;t-Partition kann nicht gleichzeitig RAID Partition sein

view_title=RAID Laufwerk
view_header=RAID Laufwerkseinstellungen device options
view_device=Ger&auml;tedatei
view_level=RAID Level
view_status=Status
view_mounted=Aktiv und gemounted auf $1
view_active=Aktiv
view_inactive=Inaktiv
view_super=Persistenter Superblock?
view_parity=Parit&auml;ts-Algorithmus
view_chunk=Chunk Gr&ouml;遝
view_stop=Deaktivieren
view_start=Aktivieren
view_mkfs=Erstelle ext2 Dateisystem ..
view_disks=Partitionen im RAID
view_spares=Ersatz-Partitionen
view_size=Nutzbare Gr&ouml;sse
view_resync=Prozent von Neu-Synchronisation fertig
view_down=(Down)
view_cannot=Dieses RAID Laufwerk kann nicht modifiziert werden, da es im Moment gemounted ist.

mkfs_title=Erstelle Dateisystem
mkfs_header=Dieses Formular gestattet es Ihnen, ein neues Ext2 Dateisystem auf $1 zu erstellen. <b>Jegliche</b> existierenden Daten wernden dabei unwiderruflich gel&ouml;scht!
mkfs_options=Einstellungen des neuen Linux Dateisystems
mkfs_err=Fehler beim Erstellen des Dateisystems
mkfs_exec=F&uuml;hre Kommando $1 aus ..
mkfs_failed=.. Kommando schlug fehl!
mkfs_ok=.. Kommando erfolgreich beendet.

emkraid=<tt>mkraid</tt> schluf fehl : $1
eraidstop=<tt>raidstop</tt> schlug fehl : $1
eraidstart=<tt>raidstart</tt> schlug fehl : $1
eforce=Sie m&uuml;ssen die Initialisierung dieses RAID erzwingen : $1

 07070100050b33000081a40000000000000002000000013ac038b100000967000000200000000000000000000000000000001300000003reloc/raid/lang/en    index_title=Linux RAID
index_none=No RAID devices configured.
index_add=Create RAID device of level:
index_return=RAID devices
index_emdstat=The kernel RAID status file $1 does not exist on your system. Your kernel probably does not support RAID.
index_emkraid=The RAID tools package is not installed on your system.

linear=Concatenated (Linear)
raid0=Striped (RAID0)
raid1=Mirrored (RAID1)
raid4=Parity (RAID4)
raid5=Redundant (RAID5)

create_title=Create RAID Device
create_header=RAID device options
create_device=Device file
create_level=RAID level
create_disks=Partitions in RAID
create_spares=Spare partitions
create_pdisk=Parity partition
create_pauto=Automatic
create_nodisks=No free partitions are available for RAID.
create_super=Persistent superblock?
create_parity=Parity algorithm
create_chunk=Chunk size
create_force=Force initialisation of RAID?
create_rdev=RAID device $1
create_err=Failed to create RAID
create_edisks=No partitions selected
create_edisks2=At least 2 partitions must be selected for mirroring
create_espare=Spare partition $1 cannot also be a RAID partition
create_epdisk=Parity partition cannot also be a RAID partition

view_title=RAID Device
view_header=RAID device options
view_device=Device file
view_level=RAID level
view_status=Status
view_mounted=Active and mounted on $1
view_active=Active
view_inactive=Inactive
view_super=Persistent superblock?
view_parity=Parity algorithm
view_chunk=Chunk size
view_stop=Deactivate
view_start=Activate
view_mkfs=Create ext2 filesystem ..
view_disks=Partitions in RAID
view_spares=Spare partitions
view_size=Usable size
view_resync=Percent of resync done
view_down=(Down)
view_cannot=This RAID device cannot be modified as it is currently mounted.

mkfs_title=Create Filesystem
mkfs_header=This form allows you to build a new Linux EXT2 filesystem on $1. <b>All</b> existing data will be erased!
mkfs_options=New Linux filesystem options
mkfs_err=Failed to create filesystem
mkfs_exec=Executing command $1 ..
mkfs_failed=.. command failed!
mkfs_ok=.. command complete.

emkraid=<tt>mkraid</tt> failed : $1
eraidstop=<tt>raidstop</tt> failed : $1
eraidstart=<tt>raidstart</tt> failed : $1
eforce=You must force the initialisation of this RAID : $1

log_create=Created $1 RAID device $2
log_stop=Deactivated RAID device $1
log_start=Activated RAID device $1
log_delete=Deleted RAID device $1
log_mkfs=Created $1 filesystem on $2

 07070100050b34000081a40000000000000002000000013ac038b100000af2000000200000000000000000000000000000001300000003reloc/raid/lang/es    index_title=RAID de Linux
index_none=No hay configurados dispositivos de RAID.
index_add=Crear dispositivo de RAID de nivel:
index_return=Dispositivos de RAID
index_emdstat=El archivo de estado de RAID del kernel $1 no existe en tu sistema. Tu kernel probablemente no soporta RAID.
index_emkraid=El paquete de herramientas de RAID no est instalado en tu sistema.

linear=Concatenado (Tangencial)
raid0=A franjas (RAID0)
raid1=Espejo (RAID1)
raid4=Paridad (RAID4)
raid5=Redundante (RAID5)

create_title=Crear Dispositivo de RAID
create_header=Opciones de dispositivo de RAID
create_device=Archivo de dispositivo
create_level=Nivel de RAID
create_disks=Particiones en el RAID
create_spares=Particiones de Reserva
create_pdisk=Partici髇 de paridad
create_pauto=Autom醫ico
create_nodisks=No hay particiones libres para el RAID.
create_super=縎uperbloque persistente?
create_parity=Algoritmo de paridad
create_chunk=Medida del trozo
create_force=縁uerzo la inicializaci髇 del RAID?
create_rdev=Dispositivo de RAID $1
create_err=No pude crear el RAID
create_edisks=No se han seleccionado particiones
create_edisks2=Se deben de seleccionar al menos 2 particiones para hacer el espejo
create_espare=La partici髇 de reserva $1 no puede ser tambi閚 una partici髇 de RAID
create_epdisk=La partici髇 de paridad no puede ser tambi閚 una particici髇 de RAID

view_title=Dispositivo de RAID
view_header=Opciones de dispositivo de RAID
view_device=Archivo de dispositivo
view_level=Nivel de RAID
view_status=Estado
view_mounted=Activo y montado en $1
view_active=Activo
view_inactive=Inactivo
view_super=縎uperbloque persistente?
view_parity=Algoritmo de paridad
view_chunk=Medidad de trozo
view_stop=Desactivar
view_start=Activar
view_mkfs=Crear sistema de archivos ext2...
view_disks=Particiones en el RAID
view_spares=Particiones de reserva
view_size=Medida utilizable
view_resync=Porcentaje de resincronismo hecho
view_down=(Abajo)
view_cannot=Este dispositivo de RAID no puede ser modificado ya que est montado en este momento.

mkfs_title=Crear Sistema de Archivos
mkfs_header=Este formulario te permite construir un nuevo sistema de archivos EXT2 de Linux en $1. <b>Todos</b> los datos que ya existan ser醤 borrados!
mkfs_options=Opciones de nuevo sistema de archivos de Linux
mkfs_err=No pude crear sistema de archivos
mkfs_exec=Ejecutando comando $1...
mkfs_failed=... all el comando!
mkfs_ok=... comando completado.

emkraid=<tt>mkraid</tt> fall: $1
eraidstop=<tt>raidstop</tt> fall: $1
eraidstart=<tt>raidstart</tt> fall: $1
eforce=Debes de forzar la inicializaci髇 de este RAID: $1

log_create=Creado raid $1 dispositivo $2
log_stop=Desactivado dispositivo de raid $1
log_start=Activado dispositivo de raid $1
log_delete=Borrado dispositivo de raid $1
log_mkfs=Creado sistema de archivo $1 en $2

  07070100050b35000081a40000000000000002000000013ac038b100000a69000000200000000000000000000000000000001300000003reloc/raid/lang/pl    index_title=RAID w&nbsp;Linuksie
index_none=Nie skonfigurowano urz眃ze RAID
index_add=Utw髍z urz眃zenie RAID poziomu:
index_return=Urz眃zenia RAID
index_emdstat=W&nbsp;systemie brak pliku stanu RAID w&nbsp;kernelu $1. Prawdopodobnie Tw骿 kernel nie obs硊guje RAID.
index_emkraid=W&nbsp;systemie nie zainstalowano pakietu narz阣zi RAID.

linear=Z潮czenie (liniowo)
raid0=Rozdzielenie (RAID0)
raid1=Powielenie (RAID1)
raid4=Z&nbsp;parzysto禼i (RAID4)
raid5=Nadmiarowy (RAID5)

create_title=Utw髍z urz眃zenie RAID
create_header=Opcje urz眃zenia RAID
create_device=Plik urz眃zenia
create_level=Poziom RAID
create_disks=Partycje w&nbsp;RAID
create_spares=Partycja zapasowa
create_pdisk=Partycja parzysto禼i
create_pauto=Automatycznie
create_nodisks=Brak wolnych partycji dost阷nych dla RAID.
create_super=Trwa硑 superblok?
create_parity=Algorytm parzysto禼i
create_chunk=Rozmiar fragmentu
create_force=Wymusi inicjalizacj RAID?
create_rdev=Urz眃zenie RAID $1
create_err=Nie uda硂 si utworzy RAID
create_edisks=Nie wybrano partycji
create_edisks2=Dla powielania trzeba wybra co najmniej 2 partycje
create_espare=Partycja zapasowa $1 nie mo縠 by jednocze秐ie partycj RAID
create_epdisk=Partycja parzysto禼i nie mo縠 by jednocze秐ie partycj RAID

view_title=Urz眃zenie RAID
view_header=Opcje urz眃zenia RAID
view_device=Plik urz眃zenia
view_level=Poziom RAID
view_status=Stan
view_mounted=Aktywne i&nbsp;zamontowane w&nbsp;$1
view_active=Aktywne
view_inactive=Nieaktywne
view_super=Trwa硑 superblok?
view_parity=Algorytm parzysto禼i
view_chunk=Rozmiar fragmentu
view_stop=Dezaktywuj
view_start=Aktywuj
view_mkfs=Utw髍z system plik體 ext2 ..
view_disks=Partycje w&nbsp;RAID
view_spares=Partycje zapasowe
view_size=U縴teczny rozmiar
view_resync=Procent odtworzenia
view_down=(nieczynne)
view_cannot=Tego urz眃zenia RAID nie mo縩a zmienia, gdy jest aktualnie zamontowane.

mkfs_title=Utw髍z system plik體
mkfs_header=Za pomoc tego formularza mo縠sz utworzy nowy system plik體 Linuksa EXT2 na $1. <b>Wszystkie</b> istniej眂e dane zostan usuni阾e!
mkfs_options=Opcje nowego systemu plik體 Linuksa
mkfs_err=Nie uda硂 si utworzy systemu plik體
mkfs_exec=Wykonywanie polecenia $1 ..
mkfs_failed=.. nie powiod硂 si!
mkfs_ok=.. zako馽zone.

emkraid=<tt>mkraid</tt> nie powiod硂 si&nbsp;: $1
eraidstop=<tt>raidstop</tt> nie powiod硂 si&nbsp;: $1
eraidstart=<tt>raidstart</tt> nie powiod硂 si&nbsp;: $1
eforce=Musisz wymusi inicjalizacj tego RAID&nbsp;: $1

log_create=Utworzono $1 raid device $2
log_stop=Dezaktywowano urz眃zenie RAID $1
log_start=Aktywowano urz眃zenie RAID $1
log_delete=Usuni阾o urz眃zenie RAID $1
log_mkfs=Utworzono $1 system plik體 na $2

   07070100050b36000081a40000000000000002000000013ac038b1000009f5000000200000000000000000000000000000001600000003reloc/raid/lang/ru_RU emkraid= 铠栳赅 <tt>mkraid</tt> : $1
mkfs_title=杨玟囗桢 脏殡钼铋 谚耱屐
view_status=杨耱龛
index_none=湾 耜铐翳泱痂痤忄眄 RAID 篑蝠铋耱.
view_super=项耱眄 耋镥疳腩?
view_active=狸蜩忭
eraidstart=铠栳赅 <tt>raidstart</tt> : $1
view_device=脏殡 篑蝠铋耱忄
mkfs_exec=蔓镱腠 觐爨礓  $1 ..
create_title=杨玟囗桢  RAID 玉蝠铋耱忄
create_epdisk=朽玟咫 麇蝽铖蜩 礤 祛驽 钿眍怵屐屙眍 猁螯 RAID 疣玟咫铎
create_pauto=棱蝾爨蜩麇耜
create_header=相疣戾蝠 RAID 篑蝠铋耱忄
index_add=杨玟囹 RAID 篑蝠铋耱忸 箴钼:
view_mkfs=杨玟囹 羿殡钼簋 耔耱屐 ext2 ..
view_spares=砚钺钿睇 疣玟咫
create_edisks=湾 恹狃囗 疣玟咫
create_level=羽钼屙 RAID
create_pdisk=朽玟咫 麇蝽铖蜩
view_stop=腻嚓蜩忤痤忄螯
raid0=Striped (RAID0) - 疣耧疱溴脲眄
raid1=Mirrored (RAID1) - 铗疣驽眄
raid4=Parity (RAID4) -  麇蝽铖螯
raid5=Redundant (RAID5) - 铗赅珙篑蝾轺桠
create_disks=朽玟咫  RAID
view_start=狸蜩忤痤忄螯
view_mounted=狸蜩忭  耢铐蜩痤忄眄 磬 $1
view_title=RAID 玉蝠铋耱忸
view_down=(物簌屙)
create_nodisks=湾 疋钺钿睇 疣玟咫钼, 漕耱箫睇 潆 RAID.
view_size=念耱箫睇 钺
create_rdev=RAID 篑蝠铋耱忸 $1
view_parity=离泐痂蜢 麇蝽铖蜩
view_level=羽钼屙 RAID
create_device=脏殡 篑蝠铋耱忄
index_return=RAID 篑蝠铋耱忄
create_chunk=朽珈屦 鬣黻
view_disks=朽玟咫  RAID
view_inactive=湾嚓蜩忭
create_spares=砚钺钿睇 疣玟咫
eforce=蔓 漕腈睇 纛瘃桊钼囹 桧桷栲腓玎鲨 溧眄钽 RAID : $1
create_edisks2=枢 扈龛祗 2 疣玟咫 漕腈睇 猁螯 恹狃囗 潆 铗疣驽龛
view_resync=橡铞屙 皲咫囗眍 疱耔眭痤龛玎鲨
view_cannot=泥眄铄 RAID 篑蝠铋耱忸 礤 祛驽 猁螯 祛滂翳鲨痤忄眄, 镱耜铍  磬耱 祛戾眚 铐 耢铐蜩痤忄眄.
view_header=相疣戾蝠 RAID 篑蝠铋耱忄
create_force=灶瘃桊钼囹 桧桷栲腓玎鲨 RAID?
mkfs_header=泥眄 纛痨 镱玮铍弪 锣 耦玟囹 眍怏 羿殡钼簋 耔耱屐 Linux EXT2 磬 $1. <blink>马桁囗桢.</blink> <b>埋</b> 耋耱怏桢 磬 礤 溧眄 狍潴 耱屦螓!
create_err=硒栳赅 镳 耦玟囗梃 RAID
create_super=项耱眄 耋镥疳腩?
select_part=$1 篑蝠铋耱忸 $2 疣玟咫 $3
linear=Concatenated (Linear) - 耠栩
index_title=Linux RAID
index_emkraid=相赍 RAID 篁桦栩 (RAID tools) 礤 桧耱嚯腓痤忄 磬 忄 耔耱屐.
mkfs_options=相疣戾蝠 眍忸 羿殡钼铋 耔耱屐 Linux
index_emdstat=咪屦睇 羿殡 耦耱龛 RAID $1 礤 耋耱怏弪. 骂珈铈眍 忄 漯 礤 镱滗屦骅忄弪 RAID.
mkfs_failed=.. 铠栳赅!
view_chunk=朽珈屦 鬣黻
create_espare=砚钺钿睇 疣玟咫 $1 礤 祛驽 钿眍怵屐屙眍 猁螯 RAID 疣玟咫铎
eraidstop=铠栳赅 <tt>raidstop</tt> : $1
mkfs_ok=.. 镱腠 篑镥.
mkfs_err=硒栳赅 镳 耦玟囗梃 羿殡钼铋 耔耱屐
create_parity=离泐痂蜢 麇蝽铖蜩
   07070100050b37000081a40000000000000002000000013ac038b1000009fb000000200000000000000000000000000000001600000003reloc/raid/lang/ru_SU index_title=Linux RAID
index_none=钆 铀衔粕钦疑蚁琢挝偃 RAID 沼砸鲜釉.
index_add=笙谀猎 RAID 沼砸鲜釉紫 找献窝:
index_return=RAID 沼砸鲜釉琢
index_emdstat=衲乓钨 屏侍 酉釉涎紊 RAID $1 闻 诱菖釉渍旁. 飨谕现蜗 琢叟 涯蚁 闻 邢哪乓稚琢旁 RAID.
index_emkraid=鹆伺 RAID 赵商稍 (RAID tools) 闻 晌釉撂躺蚁琢 瘟 琢叟 由釉磐.

linear=Concatenated (Linear) - 犹稍倥
raid0=Striped (RAID0) - 伊有遗呐膛挝倥
raid1=Mirrored (RAID1) - 显伊峙挝倥
raid4=Parity (RAID4) -  夼晕嫌载
raid5=Redundant (RAID5) - 显肆谙沼韵兽勺倥

create_title=笙谀廖膳  RAID 跤砸鲜釉琢
create_header=鹆伊团砸 RAID 沼砸鲜釉琢
create_device=媪侍 沼砸鲜釉琢
create_level=跻献盼 RAID
create_disks=蛄谀盘  RAID
create_spares=笞下夏钨 伊谀盘
create_pdisk=蛄谀盘 夼晕嫌陨
create_pauto=嶙韵土陨夼铀
create_nodisks=钆 幼下夏钨 伊谀盘献, 南釉招钨 奶 RAID.
create_super=鹣釉涎挝偈 诱信衣滔?
create_parity=崽窍疑酝 夼晕嫌陨
create_chunk=蛄谕乓 蘖嗡
create_force=嫦矣梢献猎 晌擅闪躺诹蒙 RAID?
create_rdev=RAID 沼砸鲜釉紫 $1
create_err=镗陕肆 幸 酉谀廖缮 RAID
create_edisks=钆 踪乱廖 伊谀盘
create_edisks2=肓 蜕紊驼 2 伊谀盘 南讨钨 沦载 踪乱廖 奶 显伊峙紊
create_espare=笞下夏钨 伊谀盘 $1 闻 拖峙 夏蜗滓磐盼蜗 沦载 RAID 伊谀盘贤
create_epdisk=蛄谀盘 夼晕嫌陨 闻 拖峙 夏蜗滓磐盼蜗 沦载 RAID 伊谀盘贤

view_title=RAID 跤砸鲜釉紫
view_header=鹆伊团砸 RAID 沼砸鲜釉琢
view_device=媪侍 沼砸鲜釉琢
view_level=跻献盼 RAID
view_status=笙釉涎紊
view_mounted=崴陨孜  油衔陨蚁琢挝 瘟 $1
view_active=崴陨孜
view_inactive=钆了陨孜
view_super=鹣釉涎挝偈 诱信衣滔?
view_parity=崽窍疑酝 夼晕嫌陨
view_chunk=蛄谕乓 蘖嗡
view_stop=渑了陨咨蚁琢载
view_start=崴陨咨蚁琢载
view_mkfs=笙谀猎 屏侍献绽 由釉磐 ext2 ..
view_disks=蛄谀盘  RAID
view_spares=笞下夏钨 伊谀盘
view_size=湎釉招钨 下吲
view_resync=鹨厦盼 幽盘廖蜗 遗由稳蚁紊诹蒙
view_down=(镄蛰盼)
view_cannot=淞挝吓 RAID 沼砸鲜釉紫 闻 拖峙 沦载 拖纳粕蒙蚁琢挝, 邢铀咸厮  瘟釉涎萆 拖团卧 衔 油衔陨蚁琢挝.

mkfs_title=笙谀廖膳 媪侍献鲜 笊釉磐
mkfs_header=淞挝裂 葡彝 邢谧咸雅 髁 酉谀猎 蜗渍 屏侍献绽 由釉磐 Linux EXT2 瘟 $1. <blink>魑赏廖膳.</blink> <b>饔</b> 诱菖釉渍垒膳 瘟 闻 牧挝倥 抡恼 釉乓再!
mkfs_options=鹆伊团砸 蜗紫 屏侍献鲜 由釉磐 Linux
mkfs_err=镗陕肆 幸 酉谀廖缮 屏侍献鲜 由釉磐
mkfs_exec=髻邢涛牙 讼土文  $1 ..
mkfs_failed=.. 羡陕肆!
mkfs_ok=.. 邢涛偈 沼信.

select_part=$1 沼砸鲜釉紫 $2 伊谀盘 $3
emkraid= 羡陕肆 <tt>mkraid</tt> : $1
eraidstop=羡陕肆 <tt>raidstop</tt> : $1
eraidstart=羡陕肆 <tt>raidstart</tt> : $1
eforce=髻 南讨钨 葡矣梢献猎 晌擅闪躺诹蒙 牧挝锨 RAID : $1

 07070100050b38000081a40000000000000002000000013ac038b1000009e6000000200000000000000000000000000000001300000003reloc/raid/lang/sv    index_title=Linux RAID
index_none=Du har inte konfigurerat n錱on RAID-disk.
index_add=L鋑g till RAID-disk p niv:
index_return=RAID-diskar
index_emdstat=RAID-statusfilen $1 finns inte p ditt system. Din k鋜na st鰀jer f鰎modligen inte RAID.
index_emkraid=RAID-verktygspaketet har inte installerats p ditt system.

linear=Sammanfogad (linj鋜t)
raid0=Striped (RAID0)
raid1=Speglad (RAID1)
raid4=Paritet (RAID4)
raid5=Redundant (RAID5)

create_title=Skapa RAID-disk
create_header=Inst鋖lningar f鰎 RAID-disk
create_device=Diskfil
create_level=RAID-niv
create_disks=RAID-partitioner
create_spares=Reservpartitioner
create_pdisk=Paritetspartition
create_pauto=Automatisk
create_nodisks=Det finns inga lediga partitioner som 鋜 tillg鋘gliga f鰎 RAID.
create_super=Permanent superblock?
create_parity=Paritetsalgoritm
create_chunk=Storlek p delarna
create_force=Tvingande initialisering av RAID?
create_rdev=RAID-disk $1
create_err=Det gick inte att skapa RAID
create_edisks=Du har inte angivit n錱ra partitioner
create_edisks2=Minst 2 partitioner m錽te anges f鰎 spegling
create_espare=Reservpartition $1 f錼 inte vara en RAID-partition ocks
create_epdisk=Paritetspartitionen f錼 inte vara en RAID-partition ocks

view_title=RAID-disk
view_header=Inst鋖lningar f鰎 RAID-disk
view_device=Diskfil
view_level=RAID-niv
view_status=Status
view_mounted=Aktiv och monterad p $1
view_active=Aktiv
view_inactive=Inaktiv
view_super=Permanent superblock?
view_parity=Paritetsalgorimt
view_chunk=Storlek p delarna
view_stop=Deaktivera
view_start=Aktivera
view_mkfs=Skapa ext2-filsystem ...
view_disks=RAID-partitioner
view_spares=Reservpartitioner
view_size=Anv鋘dbart utrymme
view_resync=Andel resync utf鰎d
view_down=(Nere)
view_cannot=Denna RAID-disk kan inte 鋘dras eftersom den 鋜 monterad.

mkfs_title=Skapa filsystem
mkfs_header=I detta formul鋜 kan du bygga upp ett nytt EXT2-filsystem f鰎 Linux p $1. <b>Alla</b> existerande data kommer att raderas!
mkfs_options=Inst鋖lningar f鰎 nytt Linux-filsystem
mkfs_err=Det gick inte att bygga filsystemet
mkfs_exec=Utf鰎 kommando $1 ...
mkfs_failed=... kommandot gick inte att utf鰎a.
mkfs_ok=... kommandot utf鰎t.

emkraid=<tt>mkraid</tt> misslyckades: $1
eraidstop=<tt>raidstop</tt> misslyckades: $1
eraidstart=<tt>raidstart</tt> misslyckades: $1
eforce=Du m錽te tvinga fram initialisering av denna RAID-disk: $1

log_create=Lade till $1 raid-disk $2
log_stop=Deaktiverade raid-disk $1
log_start=Aktiverade raid-disk $1
log_delete=Tog bort raid-disk $1
log_mkfs=Skapade $1 filsystem p $2
  07070100050b39000081a40000000000000002000000013ac038b10000075b000000200000000000000000000000000000001600000003reloc/raid/lang/zh_CN index_title=Linux RAID
index_none=没有 RAID 设备配置
index_add=创建此等级的 RAID 设备
index_return=RAID 设备
index_emdstat=在您的系统中没发现内核的 RAID 状态文件$1,您的系统内核可能不支持 RAID.
index_emkraid=不能在您的系统上安装 RAID 工具包.

linear=已联接(线性)
raid0=Striped (RAID0)
raid1=Mirrored (RAID1)
raid4=Parity (RAID4)
raid5=Redundant (RAID5)

create_title=创建 RAID 设备
create_header=RAID 设备选项
create_device=设备文件
create_level=RAID 等级
create_disks=在 RAID 中的分区
create_spares=空闲分区
create_pdisk=同位分区
create_pauto=自动
create_nodisks=RAID 没有空闲分区使用
create_super=保留超级块?
create_parity=同位算法
create_chunk=块的大小
create_force=强制初始化
create_rdev=RAID 设备 $1
create_err=创建 RAID 失败
create_edisks=没有选择分区
create_edisks2=至少要为镜像选择两个分区
create_espare=空闲分区 $1 也不是 RAID 分区
create_epdisk=同位分区也不是 RAID 分区

view_title=RAID 设备
view_header=RAID 设备选项
view_device=Device 文件
view_level=RAID 等级
view_status=状态
view_mounted=激活并已加载到 $1
view_active=激活
view_inactive=未激活
view_super=保留超级块?
view_parity=同位算法
view_chunk=块的大小
view_stop=屏蔽
view_start=激活
view_mkfs=创建 ext2 文件系统
view_disks=RAID 分区
view_spares=空闲分区
view_size=可用空间
view_resync=已重新同步的百分比
view_down=(Down)
view_cannot=RAID 设备在被加载时不能更改.

mkfs_title=创建文件系统
mkfs_header=您可利用下表在 $1 上新建一个 Linux EXT2 文件系统.<b>所有</b>旧数据将会丢失!
mkfs_options=n新的 Linux 文件系统选项
mkfs_err=创建文件系统失败
mkfs_exec=执行命令 $1 ..
mkfs_failed=.. 命令失败!
mkfs_ok=.. 命令完成.

emkraid=<tt>mkraid</tt> 失败: $1
eraidstop=<tt>raidstop</tt> 失败: $1
eraidstart=<tt>raidstart</tt> 失败: $1
eforce=您只有强行安装 RAID :$1

log_create=已创建 $1 RAID 设备 $2
log_stop=已屏蔽 RAID 设备 $1
log_start=已激活 RAID 设备 $1
log_delete=已删除 RAID 设备 $1 
log_mkfs=已在 $2 上创建 $1 文件系统
 07070100050b3a000081a40000000000000002000000013ac038b1000007dd000000200000000000000000000000000000001b00000003reloc/raid/lang/zh_TW.Big5    index_title=Linux 合盒皚
index_none=⊿Τ合盒皚砞称砆舱篈.
index_add=ミ合盒皚砞称单:
index_return=合盒皚砞称
index_emdstat=み合盒皚篈郎 $1 ぃ眤╰参. 眤みぃや穿合盒皚.
index_emkraid=眤╰参﹟ゼ杆合盒皚ㄣ甅ン.

linear=﹃羛 (絬┦)
raid0=ユ岿 (RAID0)
raid1=琈甮 (RAID1)
raid4=じ (RAID4)
raid5=称穿 (RAID5)

create_title=ミ合盒皚砞称
create_header=合盒皚砞称匡兜
create_device=砞称北郎
create_level=合盒皚单
create_disks=合盒皚いだ澄跋
create_spares=称穿だ澄跋
create_pdisk=じ浪琩だ澄跋
create_pauto=笆
create_nodisks=⊿Τフだ澄跋倒合盒皚ㄏノ.
create_super=琌ㄏノ尿┦ superblock?
create_parity=じ簍衡猭
create_chunk=计秖
create_force=琌眏币笆合盒皚?
create_rdev=合盒皚砞称 $1
create_err=礚猭ミ合盒皚
create_edisks=⊿Τ匡拒だ澄跋
create_edisks2=ぶ璶匡拒 2 だ澄跋ㄑ琈甮ㄏノ
create_espare=称穿だ澄跋 $1 ぃ合盒皚だ澄跋
create_epdisk=じ浪琩だ澄跋ぃ合盒皚だ澄跋

view_title=合盒皚砞称
view_header=合盒皚砞称匡兜
view_device=砞称北郎
view_level=合盒皚单
view_status=篈
view_mounted=竒币笆本更 $1
view_active=笲い
view_inactive=氨ゎㄏノ
view_super=琌ㄏノ尿┦ superblock?
view_parity=じ簍衡猭
view_chunk=计秖
view_stop=ㄏぇぃ笲
view_start=笲い
view_mkfs=ミ EXT2 郎╰参...
view_disks=合盒皚いだ澄跋
view_spares=称穿だ澄跋
view_size=ぃㄏノ
view_resync=ЧΘ穝˙κだゑ
view_down=(Down)
view_cannot=硂合盒皚礚猭砆跑, ウヘ玡タ砆本更.

mkfs_title=ミ郎╰参
mkfs_header=硂虫琵眤ミ穝 Linux EXT2 郎╰参 $1 . <b>场</b>瞷戈盢穦砆睲埃!
mkfs_options=穝糤 Linux 郎╰参匡兜
mkfs_err=礚猭ミ郎╰参
mkfs_exec=磅︽㏑ $1 い...
mkfs_failed=... ㏑ア毖!
mkfs_ok=... ㏑ЧΘ.

emkraid=<tt>(ミ合盒皚) mkraid</tt> ア毖: $1
eraidstop=<tt>(氨ゎ合盒皚) raidstop</tt> ア毖: $1
eraidstart=<tt>(币笆合盒皚) raidstart</tt> ア毖: $1
eforce=眤ゲ斗眏硂合盒皚﹍て: $1

   0707010004dd9f000081a40000000000000002000000013ac038b1000002ff000000200000000000000000000000000000001900000003reloc/raid/log_parser.pl  # log_parser.pl
# Functions for parsing this module's logs

require './raid-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p) = @_;
if ($action eq 'create') {
	return &text('log_create', $text{$p->{'level'}}, "<tt>$object</tt>");
	}
elsif ($action eq 'stop') {
	return &text('log_stop', "<tt>$object</tt>");
	}
elsif ($action eq 'start') {
	return &text('log_start', "<tt>$object</tt>");
	}
elsif ($action eq 'delete') {
	return &text('log_delete', "<tt>$object</tt>");
	}
elsif ($action eq 'mkfs') {
	return &text('log_mkfs', "<tt>EXT2</tt>", "<tt>$object</tt>");
	}
else {
	return undef;
	}
}

 0707010004dda0000081e40000000000000002000000013ac038b100000413000000200000000000000000000000000000001400000003reloc/raid/mkfs.cgi   #!/usr/local/bin/perl
# mkfs.cgi
# Create a new linux filesystem

require './raid-lib.pl';
&foreign_require("fdisk", "fdisk-lib.pl");
&foreign_require("proc", "proc-lib.pl");

&ReadParse();
&error_setup($text{'mkfs_err'});
&foreign_call("fdisk", "error_setup", $text{'mkfs_err'});
&foreign_call("fdisk", "ReadParse");
$conf = &get_raidtab();
$raid = $conf->[$in{'idx'}];
$cmd = &foreign_call("fdisk", "mkfs_parse", "ext2", $raid->{'value'});

$lvl = &find_value('raid-level', $raid->{'members'});
$chunk = &find_value('chunk-size', $raid->{'members'});
if ($lvl >= 4) {
	$bs = $in{'ext2_b_def'} ? 4096 : $in{'ext2_b'};
	}

&header($text{'mkfs_title'}, "");
print "<hr>\n";
print &text('mkfs_exec', "<tt>$cmd</tt>"),"<p>\n";
print "<pre>\n";
&foreign_call("proc", "safe_process_exec_logged", $cmd, 0, 0, STDOUT, undef, 1);
print "</pre>\n";

if ($?) { print "<b>$text{'mkfs_failed'}</b> <p>\n"; }
else { print "$text{'mkfs_ok'} <p>\n"; }
&webmin_log("mkfs", undef, $raid->{'value'}, \%in);

print "<hr>\n";
&footer("", $text{'index_return'});

 0707010004dda1000081a40000000000000002000000013ac038b10000017a000000200000000000000000000000000000001700000003reloc/raid/module.info    name=RAID
desc_pt=RAID do Linux
desc_tr=Linux RAID
desc_es=RAID de Linux
desc_sv=Linux RAID
desc_ru_SU=Linux RAID
desc_pl=RAID w&nbsp;Linuksie
category=hardware
os_support=redhat-linux open-linux slackware-linux debian-linux suse-linux turbo-linux corel-linux cobalt-linux
desc_zh_TW.Big5=Linux 合盒皚
desc=Linux RAID
risk=high
desc_zh_CN=Linux 磁盘阵列
desc_ru_RU=Linux RAID
  0707010004dda2000081a40000000000000002000000013ac038b100000fef000000200000000000000000000000000000001700000003reloc/raid/raid-lib.pl    # raid-lib.pl
# Functions for managing RAID

do '../web-lib.pl';
&init_config();

%container = ( 'raiddev', 1,
	       'device', 1 );

# get_raidtab()
# Parse the raid config file into a list of devices
sub get_raidtab
{
local ($raiddev, $device, %mdstat);
return \@get_raidtab_cache if (defined(@get_raidtab_cache));

# Read the mdstat file
open(MDSTAT, $config{'mdstat'});
while(<MDSTAT>) {
	if (/^(md\d+)\s*:\s+(\S+)\s+(\S+)\s+(.*)\s+(\d+)\s+blocks.*resync=(\d+)/) {
		$mdstat{"/dev/$1"} = [ $2, $3, $4, $5, $6 ];
		}
	elsif (/^(md\d+)\s*:\s+(\S+)\s+(\S+)\s+(.*)\s+(\d+)\s+blocks/) {
		$mdstat{"/dev/$1"} = [ $2, $3, $4, $5 ];
		}
	elsif (/^(md\d+)\s*:\s+(\S+)\s+(\S+)\s+(.*)/) {
		$mdstat{"/dev/$1"} = [ $2, $3, $4 ];
		$_ = <MDSTAT>;
		if (/\s+(\d+)\s+blocks.*resync=(\d+)/) {
			$mdstat{"/dev/$1"}->[3] = $1;
			$mdstat{"/dev/$1"}->[4] = $2;
			}
		elsif (/\s+(\d+)\s+blocks/) {
			$mdstat{"/dev/$1"}->[3] = $1;
			}
		}
	}
close(MDSTAT);

# Read the raidtab file
local $lnum = 0;
open(RAID, $config{'raidtab'});
while(<RAID>) {
	s/\r|\n//g;
	s/#.*$//;
	if (/^\s*(\S+)\s+(\S+)/) {
		local $dir = { 'name' => lc($1),
			       'value' => $2,
			       'line' => $lnum,
			       'eline' => $lnum };
		if ($dir->{'name'} =~ /^(raid|spare|parity|failed)-disk$/) {
			push(@{$device->{'members'}}, $dir);
			$device->{'eline'} = $lnum;
			$raiddev->{'eline'} = $lnum;
			}
		elsif ($dir->{'name'} eq 'raiddev') {
			$dir->{'index'} = scalar(@get_raidtab_cache);
			push(@get_raidtab_cache, $dir);
			}
		else {
			push(@{$raiddev->{'members'}}, $dir);
			$raiddev->{'eline'} = $lnum;
			}
		if ($dir->{'name'} eq 'device') {
			$device = $dir;
			}
		elsif ($dir->{'name'} eq 'raiddev') {
			$raiddev = $dir;
			local $m = $mdstat{$dir->{'value'}};
			$dir->{'active'} = $m->[0] eq 'active';
			$dir->{'level'} = $m->[1] =~ /raid(\d+)/ ? $1 : $m->[1];
			$dir->{'devices'} = [ map { /(\S+)\[\d+\]/; "/dev/$1" }
						  split(/\s+/, $m->[2]) ];
			$dir->{'size'} = $m->[3];
			$dir->{'resync'} = $m->[4];
			$dir->{'recovery'} = $m->[5];
			}
		}
	$lnum++;
	}
close(RAID);
return \@get_raidtab_cache;
}

# create_raid(&raid)
# Create a new raid set
sub create_raid
{
$lref = &read_file_lines($config{'raidtab'});
$_[0]->{'line'} = @$lref;
push(@$lref, &directive_lines($_[0]));
$_[0]->{'eline'} = @$lref - 1;
&flush_file_lines();
}

# delete_raid(&raid)
# Delete a raid set from the config file
sub delete_raid
{
$lref = &read_file_lines($config{'raidtab'});
splice(@$lref, $_[0]->{'line'}, $_[0]->{'eline'} - $_[0]->{'line'} + 1);
&flush_file_lines();
}

# make_raid(&raid, force)
# Call mkraid to make a raid set
sub make_raid
{
local $f = $_[1] ? "--really-force" : "";
local $out = &backquote_logged("mkraid $f $_[0]->{'value'} 2>&1 </dev/null");
return $? ? &text($out =~ /force/i ? 'eforce' : 'emkraid', "<pre>$out</pre>")
	  : undef;
}

# activate_raid(&raid)
# Activate a raid set
sub activate_raid
{
local $out = &backquote_logged("raidstart $_[0]->{'value'} 2>&1");
&error(&text('eraidstart', "<tt>$out</tt>")) if ($?);
}

# activate_raid(&raid)
# Deactivate a raid set
sub deactivate_raid
{
local $out = &backquote_logged("raidstop $_[0]->{'value'} 2>&1");
&error(&text('eraidstop', "<tt>$out</tt>")) if ($?);
}

# directive_lines(&directive, indent)
sub directive_lines
{
local @rv = ( "$_[1]$_[0]->{'name'}\t$_[0]->{'value'}" );
foreach $m (@{$_[0]->{'members'}}) {
	push(@rv, &directive_lines($m, $_[1]."\t"));
	}
return @rv;
}

# find(name, &array)
sub find
{
local($c, @rv);
foreach $c (@{$_[1]}) {
	if ($c->{'name'} eq $_[0]) {
		push(@rv, $c);
		}
	}
return @rv ? wantarray ? @rv : $rv[0]
           : wantarray ? () : undef;
}

# find_value(name, &array)
sub find_value
{
local(@v);
@v = &find($_[0], $_[1]);
if (!@v) { return undef; }
elsif (wantarray) { return map { $_->{'value'} } @v; }
else { return $v[0]->{'value'}; }
}

local %flang = &load_language('fdisk');
$text{'select_part'} = $flang{'select_part'};
$text{'select_mpart'} = $flang{'select_mpart'};
$text{'select_device'} = $flang{'select_device'};
$text{'select_fd'} = $flang{'select_fd'};

1;

 0707010004dda3000081e40000000000000002000000013ac038b1000011c4000000200000000000000000000000000000001900000003reloc/raid/raid_form.cgi  #!/usr/local/bin/perl
# raid_form.cgi
# Display a form for creating a raid device

require './raid-lib.pl';
&foreign_require("fdisk", "fdisk-lib.pl");
&foreign_require("mount", "mount-lib.pl");
&ReadParse();
$conf = &get_raidtab();

# Display headers
$max = 0;
foreach $c (@$conf) {
	if ($c->{'value'} =~ /md(\d+)$/ && $1 >= $max) {
		$max = $1+1;
		}
	}
&header($text{'create_title'}, "");
$raid = { 'value' => "/dev/md$max",
	  'members' => [ { 'name' => 'raid-level',
			   'value' => $in{'level'} },
			 { 'name' => 'persistent-superblock',
			   'value' => 1 }
		       ] };
print "<hr>\n";

# Find partitions used by raid
foreach $c (@$conf) {
	foreach $d (&find_value('device', $c->{'members'})) {
		if ($c eq $raid) {
			$sel{$d}++;
			}
		else {
			$used{$d}++;
			}
		}
	}

# Find mounted partitions
foreach $m (&foreign_call("mount", "list_mounted")) {
	$used{$m->[1]}++;
	$mounted{$m->[1]} = $m->[0];
	}
foreach $m (&foreign_call("mount", "list_mounts")) {
	$used{$m->[1]}++;
	}

# Find available partitions
foreach $d (&foreign_call("fdisk", "list_disks")) {
	foreach $p (&foreign_call("fdisk", "list_partitions", $d->{'device'})) {
		next if ($used{$p->{'device'}} || $p->{'extended'});
		if ($p->{'type'} eq '83') {
			local $label = `e2label $p->{'device'} 2>/dev/null`;
			chop($label);
			next if ($used{"LABEL=$label"});
			}
		$tag = &foreign_call("fdisk", "tag_name", $p->{'type'});
		$disks .= sprintf "<option value='%s'>%s %s\n",
			$p->{'device'}, $p->{'desc'},
			$tag ? "($tag)" : "";
		}
	}
foreach $c (@$conf) {
	if ($c->{'active'} && !$used{$c->{'value'}}) {
		$disks .= sprintf "<option value='%s'>%s\n",
				$c->{'value'},
				&text('create_rdev', substr($c->{'value'}, -1));
		}
	}
if (!$disks) {
	print "<p><b>$text{'create_nodisks'}</b> <p>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}

print "<form action=create_raid.cgi>\n";
print "<input type=hidden name=idx value='$in{'idx'}'>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'create_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'create_device'}</b></td>\n";
print "<td><tt>$raid->{'value'}</tt></td> </tr>\n";
print "<input type=hidden name=device value='$raid->{'value'}'>\n";

$lvl = &find_value('raid-level', $raid->{'members'});
print "<tr> <td><b>$text{'create_level'}</b></td>\n";
print "<td>",$lvl eq 'linear' ? $text{'linear'}
			      : $text{"raid$lvl"},"</td> </tr>\n";
print "<input type=hidden name=level value='$lvl'>\n";

$super = &find_value('persistent-superblock', $raid->{'members'});
print "<tr> <td><b>$text{'create_super'}</b></td>\n";
printf "<td><input name=super type=radio value=1 %s> %s\n",
	$super ? 'checked' : '', $text{'yes'};
printf "<input name=super type=radio value=0 %s> %s</td> </tr>\n",
	$super ? '' : 'checked', $text{'no'};

if ($lvl eq '5') {
	$parity = &find_value('parity-algorithm', $raid->{'members'});
	print "<tr> <td><b>$text{'create_parity'}</b></td>\n";
	print "<td><select name=parity>\n";
	foreach $a ('', 'left-asymmetric', 'right-asymmetric',
		    'left-symmetric', 'right-symmetric') {
		printf "<option value='%s' %s>%s\n",
			$a, $parity eq $a ? 'selected' : '',
			$a ? $a : $text{'default'};
		}
	print "</select></td> </tr>\n";
	}

$chunk = &find_value('chunk-size', $raid->{'members'});
print "<tr> <td><b>$text{'create_chunk'}</b></td>\n";
print "<td><select name=chunk>\n";
for($i=4; $i<=4096; $i*=2) {
	printf "<option value=%d %s>%d kB\n",
		$i, $chunk == $i ? 'selected' : '', $i;
	}
print "</select></td> </tr>\n";

# Display partitions in raid, spares and parity
print "<tr> <td valign=top><b>$text{'create_disks'}</b></td>\n";
print "<td><select name=disks multiple size=4>\n";
print $disks;
print "</select></td> </tr>\n";

if ($lvl >= 4) {
	print "<tr> <td valign=top><b>$text{'create_spares'}</b></td>\n";
	print "<td><select name=spares multiple size=4>\n";
	print $disks;
	print "</select></td> </tr>\n";
	}

if ($lvl == 4) {
	print "<tr> <td valign=top><b>$text{'create_pdisk'}</b></td>\n";
	print "<td><select name=pdisk>\n";
	print "<option value='' selected>$text{'create_auto'}\n";
	print $disks;
	print "</select></td> </tr>\n";
	}

print "<tr> <td><b>$text{'create_force'}</b></td>\n";
print "<td><input type=radio name=force value=1> $text{'yes'}\n";
print "<input type=radio name=force value=0 checked> $text{'no'}\n";
print "</td> </tr>\n";

print "</table></td></tr></table>\n";

print "<input type=submit value='$text{'create'}'></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

0707010004dda4000081e40000000000000002000000013ac038b10000056c000000200000000000000000000000000000001900000003reloc/raid/save_raid.cgi  #!/usr/local/bin/perl
# save_raid.cgi
# Activate, deactivate, delete or make a filesystem on a raid set

require './raid-lib.pl';
&ReadParse();
$conf = &get_raidtab();
$old = $conf->[$in{'idx'}];

if ($in{'delete'}) {
	# Delete a RAID set
	&lock_file($config{'raidtab'});
	&deactivate_raid($old) if ($old->{'active'});
	&delete_raid($old);
	&unlock_file($config{'raidtab'});
	&webmin_log("delete", undef, $old->{'value'});
	&redirect("");
	}
elsif ($in{'mkfs'}) {
	# Display form for making a filesystem
	&foreign_require("fdisk", "fdisk-lib.pl");
	&header($text{'mkfs_title'}, "");
	print "<hr>\n";

	print "<p>",&text('mkfs_header', "<tt>$old->{'value'}</tt>"),"<br>\n";
	print "<form action=mkfs.cgi>\n";
	print "<input type=hidden name=idx value='$in{'idx'}'>\n";
	print "<table border width=100%>\n";
	print "<tr $tb><td><b>$text{'mkfs_options'}</b></td> </tr>\n";
	print "<tr $cb><td><table width=100%>\n";
	&foreign_call("fdisk", "mkfs_options", "ext2");
	print "</table></td></tr></table>\n";
	print "<input type=submit value='$text{'create'}'></form>\n";

	print "<hr>\n";
	&footer("", $text{'index_return'});
	}
elsif ($in{'start'}) {
	# Start raid device
	&activate_raid($old);
	&webmin_log("start", undef, $old->{'value'});
	&redirect("");
	}
elsif ($in{'stop'}) {
	# Stop raid device
	&deactivate_raid($old);
	&webmin_log("stop", undef, $old->{'value'});
	&redirect("");
	}

0707010004dda5000081e40000000000000002000000013ac038b100000ec6000000200000000000000000000000000000001900000003reloc/raid/view_raid.cgi  #!/usr/local/bin/perl
# view_raid.cgi
# Display information about a raid device

require './raid-lib.pl';
&foreign_require("fdisk", "fdisk-lib.pl");
&foreign_require("mount", "mount-lib.pl");
&ReadParse();

&header($text{'view_title'}, "");
$conf = &get_raidtab();
$raid = $conf->[$in{'idx'}];
print "<hr>\n";

# Find mounted partitions
foreach $m (&foreign_call("mount", "list_mounted")) {
	$mounted{$m->[1]} = $m->[0];
	}

print "<form action=save_raid.cgi>\n";
print "<input type=hidden name=idx value='$in{'idx'}'>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'view_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'view_device'}</b></td>\n";
print "<td><tt>$raid->{'value'}</tt></td> </tr>\n";

$lvl = &find_value('raid-level', $raid->{'members'});
print "<tr> <td><b>$text{'view_level'}</b></td>\n";
print "<td>",$lvl eq 'linear' ? $text{'linear'}
			      : $text{"raid$lvl"},"</td> </tr>\n";

$m = $mounted{$raid->{'value'}};
print "<tr> <td><b>$text{'view_status'}</b></td> <td>\n";
print $m ? &text('view_mounted', "<tt>$m</tt>") :
      $raid->{'active'} ? $text{'view_active'} :
			  $text{'view_inactive'};
print "</td> </tr>\n";

if ($raid->{'size'}) {
	print "<tr> <td><b>$text{'view_size'}</b></td>\n";
	print "<td>$raid->{'size'} blocks</td> </tr>\n";
	}
if ($raid->{'resync'}) {
	print "<tr> <td><b>$text{'view_resync'}</b></td>\n";
	print "<td>$raid->{'resync'} \%</td> </tr>\n";
	}

$super = &find_value('persistent-superblock', $raid->{'members'});
print "<tr> <td><b>$text{'view_super'}</b></td>\n";
print "<td>",$super ? $text{'yes'} : $text{'no'},"</td> </tr>\n";

if ($lvl eq '5') {
	$parity = &find_value('parity-algorithm', $raid->{'members'});
	print "<tr> <td><b>$text{'view_parity'}</b></td>\n";
	print "<td>",$parity ? $parity : $text{'default'},"</td> </tr>\n";
	}

$chunk = &find_value('chunk-size', $raid->{'members'});
print "<tr> <td><b>$text{'view_chunk'}</b></td>\n";
print "<td>$chunk kB</td> </tr>\n";

# Display partitions in RAID
print "<tr> <td valign=top><b>$text{'view_disks'}</b></td> <td>\n";
foreach $d (&find('device', $raid->{'members'})) {
	if (&find('raid-disk', $d->{'members'}) ||
            &find('parity-disk', $d->{'members'})) {
		if ($d->{'value'} =~ /(h|s)d(\S+)(\d+)$/) {
			print &text('select_part', $1 eq 'h' ? 'IDE' : 'SCSI',
				    uc($2), "$3"),"\n";
			}
		elsif ($d->{'value'} =~ /rd\/c(\d+)d(\d+)p(\d+)$/) {
			print &text('select_mpart', "$1", "$2", "$3");
			}
		else {
			print $d->{'value'},"\n";
			}
		if (&indexof($d->{'value'}, @{$raid->{'devices'}}) < 0 &&
		    $raid->{'active'}) {
			print "<font color=#ff0000>$text{'view_down'}</font>\n";
			}
		print "<br>\n";
		}
	}
print "</td> </tr>\n";

# Display spare partitions
foreach $d (&find('device', $raid->{'members'})) {
	if (&find('spare-disk', $d->{'members'})) {
		if ($d->{'value'} =~ /(h|s)d(\S+)(\d+)$/) {
			$sp .= &text('select_part', $1 eq 'h' ? 'IDE' : 'SCSI',
				    uc($2), "$3")."<br>\n";
			}
		else {
			$sp .= $d->{'value'}."<br>\n";
			}
		}
	}
if ($sp) {
	print "<tr> <td valign=top><b>$text{'view_spares'}</b></td> <td>\n";
	print $sp,"</td> </tr>\n";
	}

print "</table></td></tr></table>\n";

if ($mounted{$raid->{'value'}}) {
	print "<br><b>$text{'view_cannot'}</b> <p>\n";
	}
else {
	if ($raid->{'active'}) {
		print "<input type=submit name=stop ",
		      "value='$text{'view_stop'}'>&nbsp;\n";
		}
	else {
		print "<input type=submit name=start ",
		      "value='$text{'view_start'}'>&nbsp;\n";
		}
	print "<input type=submit name=delete value='$text{'delete'}'>&nbsp;\n";
	if ($raid->{'active'}) {
		print "<input type=submit name=mkfs ",
		      "value='$text{'view_mkfs'}'>&nbsp;\n";
		}
	}
print "</form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

  0707010000bb62000081e40000000000000002000000013ac038860000013b000000200000000000000000000000000000001700000003reloc/referer_save.cgi    #!/usr/local/bin/perl
# redirect_save.cgi
# Redirect to the original URL, and optionally save the redirect flag

require './web-lib.pl';
&init_config();
&ReadParse();

if ($in{'referer_again'}) {
	$gconfig{'referer'} = 1;
	&write_file("$config_directory/config", \%gconfig);
	}
&redirect($in{'referer_original'});

 0707010000bb63000081e40000000000000002000000013ac0388600000b8f000000200000000000000000000000000000000e00000003reloc/rpc.cgi #!/usr/local/bin/perl
# rpc.cgi
# Handles remote_foreign_require and remote_foreign_call requests from
# other webmin servers. State is preserved by starting a process for each
# session that listens for requests on a named pipe (and dies after a few
# seconds of inactivity)
# access{'rpc'}  0=not allowed 1=allowed 2=allowed if root or admin

do './web-lib.pl';
use POSIX;
&init_config();
if ($ENV{'REQUEST_METHOD'} eq 'POST') {
	read(STDIN, $rawarg, $ENV{'CONTENT_LENGTH'});
	}
else {
	$rawarg = $ENV{'QUERY_STRING'};
	}
$arg = &unserialise_variable($rawarg);
print "Content-type: text/plain\n\n";

# Can this user make remote calls?
%access = &get_module_acl();
if ($access{'rpc'} == 0 || $access{'rpc'} == 2 &&
    $ENV{'REMOTE_USER'} ne 'admin' && $ENV{'REMOTE_USER'} ne 'root') {
	print STDERR "invalid user $ENV{'REMOTE_USER'} ($access{'rpc'})\n";
	print &serialise_variable( { 'status' => 0 } );
	exit;
	}

if ($arg->{'newsession'}) {
	# Need to fork a new session-handler process
	$fifo1 = &tempname();
	$fifo2 = &tempname();
	mkfifo($fifo1, 0700);
	mkfifo($fifo2, 0700);
	if (!fork()) {
		# This is the subprocess where execution really happens
		$SIG{'ALRM'} = "fifo_timeout";
		untie(*STDIN);
		untie(*STDOUT);
		close(STDIN);
		close(STDOUT);
		close(miniserv::SOCK);
		local $stime = time();
		while(1) {
			local ($rawcmd, $cmd, $rv);
			alarm(10);
			open(FIFO, $fifo1) || last;
			while(<FIFO>) {
				$rawcmd .= $_;
				}
			close(FIFO);
			alarm(0);
			$cmd = &unserialise_variable($rawcmd);
			if ($cmd->{'action'} eq 'quit') {
				# time to end this session (after the reply)
				$rv = { 'time' => time() - $stime };
				}
			elsif ($cmd->{'action'} eq 'require') {
				# require a library
				&foreign_require($cmd->{'module'},
						 $cmd->{'file'});
				$rv = { 'session' => [ $fifo1, $fifo2 ] };
				}
			elsif ($cmd->{'action'} eq 'call') {
				# execute a function
				$rv = &foreign_call($cmd->{'module'},
						    $cmd->{'func'},
						    @{$cmd->{'args'}});
				}
			elsif ($cmd->{'action'} eq 'eval') {
				# eval some perl code
				$rv = eval $cmd->{'code'};
				}
			open(FIFO, ">$fifo2");
			print FIFO &serialise_variable( { 'status' => 1,
							  'rv' => $rv } );
			close(FIFO);
			last if ($cmd->{'action'} eq 'quit');
			}
		unlink($fifo1);
		unlink($fifo2);
		exit;
		}
	$session = [ $fifo1, $fifo2 ];
	}
else {
	# Use the provided session id
	$session = $arg->{'session'};
	}

if ($arg->{'action'} eq 'ping') {
	# Just respond with an OK
	print &serialise_variable( { 'status' => 1 } );
	}
elsif ($arg->{'action'} eq 'check') {
	# Check if some module is supported
	print &serialise_variable(
		{ 'status' => 1,
		  'rv' => &foreign_check($arg->{'module'}) } );
	}
else {
	# Pass the request on to the subprocess
	open(FIFO, ">$session->[0]");
	print FIFO $rawarg;
	close(FIFO);
	open(FIFO, $session->[1]);
	while(<FIFO>) {
		print;
		}
	close(FIFO);
	}

sub fifo_timeout
{
unlink($fifo1);
unlink($fifo2);
exit;
}

 070701000521de000041ed0000000000000001000000053ac03c5c00000000000000200000000000000000000000000000000c00000003reloc/samba   070701000521df000081a40000000000000002000000013ac0388e00002a34000000200000000000000000000000000000001c00000003reloc/samba/acl_security.pl   
require './samba-lib.pl';

# acl_security_form(&options)
# Output HTML for editing security options for the samba module
sub acl_security_form
{
print "<tr>\n<td><b>$text{'acl_apply'}</b></td> <td>\n";
printf "<input type=radio name=apply value=1 %s> $text{'yes'}\n",
		$_[0]->{'apply'} ? "checked" : "";
printf "<input type=radio name=apply value=0 %s> $text{'no'}</td>\n",
		$_[0]->{'apply'} ? "" : "checked";
print "</tr>\n";

print "<tr>\n<td><b>$text{'acl_view_all_con'}</b></td> <td>\n";
printf "<input type=radio name=view_all_con value=1 %s> $text{'yes'}\n",
		$_[0]->{'view_all_con'} ? "checked" : "";
printf "<input type=radio name=view_all_con value=0 %s> $text{'no'}</td>\n",
		$_[0]->{'view_all_con'} ? "" : "checked";
print "</tr>\n";

print "<tr>\n<td><b>$text{'acl_kill_con'}</b></td> <td>\n";
printf "<input type=radio name=kill_con value=1 %s> $text{'yes'}\n",
		$_[0]->{'kill_con'} ? "checked" : "";
printf "<input type=radio name=kill_con value=0 %s> $text{'no'}</td>\n",
		$_[0]->{'kill_con'} ? "" : "checked";
print "</tr>\n";

print "<tr> <td colspan=4><hr></td> </tr>\n";

print "<tr>\n<td><b>$text{'acl_conf_net'}</b></td> <td>\n";
printf "<input type=radio name=conf_net value=1 %s> $text{'yes'}\n",
		$_[0]->{'conf_net'} ? "checked" : "";
printf "<input type=radio name=conf_net value=0 %s> $text{'no'}</td>\n",
		$_[0]->{'conf_net'} ? "" : "checked";
print "</tr>\n";

print "<tr>\n<td><b>$text{'acl_conf_smb'}</b></td> <td>\n";
printf "<input type=radio name=conf_smb value=1 %s> $text{'yes'}\n",
		$_[0]->{'conf_smb'} ? "checked" : "";
printf "<input type=radio name=conf_smb value=0 %s> $text{'no'}</td>\n",
		$_[0]->{'conf_smb'} ? "" : "checked";
print "</tr>\n";

print "<tr>\n<td><b>$text{'acl_conf_pass'}</b></td> <td>\n";
printf "<input type=radio name=conf_pass value=1 %s> $text{'yes'}\n",
		$_[0]->{'conf_pass'} ? "checked" : "";
printf "<input type=radio name=conf_pass value=0 %s> $text{'no'}</td>\n",
		$_[0]->{'conf_pass'} ? "" : "checked";
print "</tr>\n";

print "<tr>\n<td><b>$text{'acl_conf_print'}</b></td> <td>\n";
printf "<input type=radio name=conf_print value=1 %s> $text{'yes'}\n",
		$_[0]->{'conf_print'} ? "checked" : "";
printf "<input type=radio name=conf_print value=0 %s> $text{'no'}</td>\n",
		$_[0]->{'conf_print'} ? "" : "checked";
print "</tr>\n";

print "<tr>\n<td><b>$text{'acl_conf_misc'}</b></td> <td>\n";
printf "<input type=radio name=conf_misc value=1 %s> $text{'yes'}\n",
		$_[0]->{'conf_misc'} ? "checked" : "";
printf "<input type=radio name=conf_misc value=0 %s> $text{'no'}</td>\n",
		$_[0]->{'conf_misc'} ? "" : "checked";
print "</tr>\n";

print "<tr>\n<td><b>$text{'acl_swat'}</b></td> <td>\n";
printf "<input type=radio name=swat value=1 %s> $text{'yes'}\n",
		$_[0]->{'swat'} ? "checked" : "";
printf "<input type=radio name=swat value=0 %s> $text{'no'}</td>\n",
		$_[0]->{'swat'} ? "" : "checked";
print "</tr>\n";

print "<tr> <td colspan=4><hr></td> </tr>\n";

# encripted passwords
print "<tr>\n<td $tb><b>$text{'acl_enc_passwd_opts'}</b></td></tr> \n";

print "<tr>\n<td><b>$text{'acl_view_users'}</b></td> <td>\n";
printf "<input type=radio name=view_users value=1 %s> $text{'yes'}\n",
		$_[0]->{'view_users'} ? "checked" : "";
printf "<input type=radio name=view_users value=0 %s> $text{'no'}</td>\n",
		$_[0]->{'view_users'} ? "" : "checked";
print "</tr>\n";

print "<tr>\n<td><b>$text{'acl_maint_users'}</b></td> <td>\n";
printf "<input type=radio name=maint_users value=1 %s> $text{'yes'}\n",
		$_[0]->{'maint_users'} ? "checked" : "";
printf "<input type=radio name=maint_users value=0 %s> $text{'no'}</td>\n",
		$_[0]->{'maint_users'} ? "" : "checked";
print "</tr>\n";

print "<tr>\n<td><b>$text{'acl_maint_makepass'}</b></td> <td>\n";
printf "<input type=radio name=maint_makepass value=1 %s> $text{'yes'}\n",
		$_[0]->{'maint_makepass'} ? "checked" : "";
printf "<input type=radio name=maint_makepass value=0 %s> $text{'no'}</td>\n",
		$_[0]->{'maint_makepass'} ? "" : "checked";
print "</tr>\n";

print "<tr>\n<td><b>$text{'acl_maint_sync'}</b></td> <td>\n";
printf "<input type=radio name=maint_sync value=1 %s> $text{'yes'}\n",
		$_[0]->{'maint_sync'} ? "checked" : "";
printf "<input type=radio name=maint_sync value=0 %s> $text{'no'}</td>\n",
		$_[0]->{'maint_sync'} ? "" : "checked";
print "</tr>\n";

print "<tr> <td colspan=4><hr></td> </tr>\n";

# hide
print "<tr>\n<td><b>$text{'acl_hide'}</b></td> <td>\n";
printf "<input type=radio name=hide value=1 %s> $text{'yes'}\n",
		$_[0]->{'hide'} == 1 ? "checked" : "";
printf "<input type=radio name=hide value=0 %s> $text{'no'}</td>\n",
		$_[0]->{'hide'} == 0 ? "checked" : "";
print "</tr>\n";

print "<tr> <td colspan=4><hr></td> </tr>\n";

# global acls
print "<tr>\n<td><b>$text{'acl_afs'}</b></td>\n";
print "<td colspan=3>\n";
printf "<input type=checkbox name=c_fs value=1 %s> %s\n",
		$_[0]->{'c_fs'} ? "checked" : "", $text{"acl_c"};
printf "<input type=checkbox name=r_fs value=1 %s> %s\n",
		$_[0]->{'r_fs'} ? "checked" : "", $text{"acl_r"};
printf "<input type=checkbox name=w_fs value=1 %s> %s\n",
		$_[0]->{'w_fs'} ? "checked" : "", $text{"acl_w"};
print "</td> </tr>\n";

print "<tr>\n<td><b>$text{'acl_aps'}</b></td>\n";
print "<td colspan=3>\n";
printf "<input type=checkbox name=c_ps value=1 %s> %s\n",
		$_[0]->{'c_ps'} ? "checked" : "", $text{"acl_c"};
printf "<input type=checkbox name=r_ps value=1 %s> %s\n",
		$_[0]->{'r_ps'} ? "checked" : "", $text{"acl_r"};
printf "<input type=checkbox name=w_ps value=1 %s> %s\n",
		$_[0]->{'w_ps'} ? "checked" : "", $text{"acl_w"};
print "</td> </tr>\n";

print "<tr>\n<td><b>$text{'acl_copy'}</b></td> <td>\n";
printf "<input type=radio name=copy value=1 %s> $text{'yes'}\n",
		$_[0]->{'copy'} ? "checked" : "";
printf "<input type=radio name=copy value=0 %s> $text{'no'}</td>\n",
		$_[0]->{'copy'} ? "" : "checked";
print "</tr>\n";

print "<tr> <td colspan=4><hr></td> </tr>\n";

# per-share acls
print "<tr><td><b>$text{'acl_per_fs_acls'}</b></td> <td>\n";
printf "<input type=radio name=per_fs_acls value=1 %s> $text{'yes'}\n",
		$_[0]->{'per_fs_acls'} ? "checked" : "";
printf "<input type=radio name=per_fs_acls value=0 %s> $text{'no'}\n",
		$_[0]->{'per_fs_acls'} ? "" : "checked";
print "</td></tr>\n";

print "<tr><td><b>$text{'acl_per_ps_acls'}</b></td> <td>\n";
printf "<input type=radio name=per_ps_acls value=1 %s> $text{'yes'}\n",
		$_[0]->{'per_ps_acls'} ? "checked" : "";
printf "<input type=radio name=per_ps_acls value=0 %s> $text{'no'}\n",
		$_[0]->{'per_ps_acls'} ? "" : "checked";
print "</td></tr>\n";

print "<tr> <td colspan=4><hr></td> </tr>\n";

# table
print "<tr> <td colspan=4>\n<table border width=100%>\n";
printf "<th $tb colspan=7><b>%s</b></th>\n", $text{'acl_per_share_acls'};
print "<tr $tb>\n";
printf "<td rowspan=2><b>%s</b></td>\n", $text{'acl_sname'};
printf "<td rowspan=2><b>%s</b></td>\n", $text{'acl_saccess'};
printf "<td rowspan=2><b>%s</b></td>\n", $text{'acl_sconn'};
printf "<th colspan=4><b>%s</b></th>\n", $text{'acl_sopthdr'};
print "</tr>\n<tr $tb>\n";
printf "<td><b>%s</b></td>\n", $text{'acl_ssec'};
printf "<td><b>%s</b></td>\n", $text{'acl_sperm'};
printf "<td><b>%s</b></td>\n", $text{'acl_snaming'};
printf "<td><b>%s<br>%s</b></td>\n", $text{'acl_smisc'}, $text{'acl_sprn'};
print "</tr>\n";

foreach (&list_shares()) {
	&display_acl_row($_[0], $_);
	}
print "</table> </td> </tr>\n";
}

# acl_security_save(&options)
# Parse the form for security options for the samba module
sub acl_security_save
{
if ($in{'r_fs'} < $in{'w_fs'} || $in{'r_ps'} < $in{'w_ps'}) {
	$whatfailed = $text{'acl_err'};
	&error($text{'acl_ernow'});
	}
$_[0]->{'apply'}=$in{'apply'};
$_[0]->{'view_all_con'}=$in{'view_all_con'};
$_[0]->{'kill_con'}=$in{'kill_con'};
$_[0]->{'conf_net'}=$in{'conf_net'};
$_[0]->{'conf_smb'}=$in{'conf_smb'};
$_[0]->{'conf_pass'}=$in{'conf_pass'};
$_[0]->{'conf_print'}=$in{'conf_print'};
$_[0]->{'conf_misc'}=$in{'conf_misc'};
$_[0]->{'swat'}=$in{'swat'};
$_[0]->{'hide'}=$in{'hide'};
$_[0]->{'per_fs_acls'}=$in{'per_fs_acls'};
$_[0]->{'per_ps_acls'}=$in{'per_ps_acls'};
$_[0]->{'c_fs'}=$in{'c_fs'};
$_[0]->{'r_fs'}=$in{'r_fs'};
$_[0]->{'w_fs'}=$in{'w_fs'};
$_[0]->{'c_ps'}=$in{'c_ps'};
$_[0]->{'r_ps'}=$in{'r_ps'};
$_[0]->{'w_ps'}=$in{'w_ps'};
$_[0]->{'copy'}=$in{'copy'};
$_[0]->{'view_users'}=$in{'view_users'};
$_[0]->{'maint_users'}=$in{'maint_users'};
$_[0]->{'maint_makepass'}=$in{'maint_makepass'};
$_[0]->{'maint_sync'}=$in{'maint_sync'};

foreach (keys %in) {
	  $_[0]->{$1} .= $in{$_} if /^\w\w_(ACL\w\w_\w+)$/;
	  }
}

# display_acl_row(\%access, $share_name)									
sub display_acl_row
{
local($acc,$name)=@_;
local %share;
&get_share($name);
local $stype=&istrue('printable') ? 'ps' : 'fs';
local $aclname='ACL' . $stype . '_' . $name;

#display row
print "<tr>\n";
printf $stype eq 'fs' ? "<td><b>%s</b></td>\n" : 
						"<td><b><i>%s</i></td>\n", $name;
&display_acl_cell($acc, $name, 'r', 'w', $aclname, 
				  $text{'acl_na'}, $text{'acl_r1'}, $text{'acl_rw'});
&display_acl_cell($acc, $name, 'v', 'V', $aclname, 
				  $text{'acl_na'}, $text{'acl_view'}, $text{'acl_kill'});
&display_acl_cell($acc, $name, 's', 'S', $aclname, 
				  $text{'acl_na'}, $text{'acl_view'}, $text{'acl_edit'});
$stype eq 'fs' ? &display_acl_cell($acc, $name, 'p', 'P', $aclname, 
				  $text{'acl_na'}, $text{'acl_view'}, $text{'acl_edit'}) : 
				  print "<td> </td>\n";
$stype eq 'fs' ? &display_acl_cell($acc, $name, 'n', 'N', $aclname, 
				$text{'acl_na'}, $text{'acl_view'}, $text{'acl_edit'}) :
				print "<td> </td>\n";
&display_acl_cell($acc, $name, 'o', 'O', $aclname, 
				  $text{'acl_na'}, $text{'acl_view'}, $text{'acl_edit'});
print "</tr>\n";		
}

#display_acl_cell(\%access, $name, 
#				  $rperm, $wperm, $aclname, 
#				  $text1, $text2, $text3)
sub display_acl_cell
{
local ($acc, $name, $rp, $wp, $aclname, $text1, $text2, $text3) = @_;
local $rn = $rp . $wp . '_' . $aclname;

print "<td>\n";
if($acc->{$aclname}) { 
	printf "<input type=radio name=$rn value='' %s> %s<br>\n",
			!&perm_to($rp, $acc, $aclname) ? 
				"checked" : "", $text1;
	printf "<input type=radio name=$rn value='$rp' %s> %s<br>\n",
			&perm_to($rp, $acc, $aclname) && 
			!&perm_to($rp.$wp, $acc, $aclname) ? 
				"checked" : "",$text2;
	printf "<input type=radio name=$rn value='$rp$wp' %s> %s\n",
			&perm_to($rp.$wp, $acc, $aclname) ? 
				"checked" : "", $text3;
	}
else {
	printf "<input type=radio name=$rn value='' checked> %s<br>\n",
			$text1;
	printf "<input type=radio name=$rn value='$rp'> %s<br>\n", 
			$text2;
	printf "<input type=radio name=$rn value='$rp$wp'> %s\n",
			$text3;
	}
print "</td>\n";
}

# perm_to($permissions_string,\%access,$ACLname)
# check only per-share permissions
sub perm_to
{
local $acl=$_[1]->{$_[2]};
foreach (split //,$_[0]) {
	return 0 if index($acl,$_) == -1;
	}
return 1;
}
		
1;
070701000521e0000081e40000000000000002000000013ac0388d000005f4000000200000000000000000000000000000001a00000003reloc/samba/ask_epass.cgi #!/usr/local/bin/perl
# ask_epass.cgi
# Display a form asking for password conversion options

require './samba-lib.pl';
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pmpass'}")
        unless $access{'maint_makepass'};
# display
&header($text{'convert_title'}, "");
print "<hr>\n";

print &text('convert_msg', 'conf_pass.cgi'),"<p>\n";

print "<form action=make_epass.cgi>\n";

print "<input type=checkbox name=skip value=1 checked> ",
      $text{'convert_noconv'};
print "<input name=skip_list size=40 value=\"$config{dont_convert}\"> ",
	&user_chooser_button("skip_list", 1),"<p>\n";

print "<input type=checkbox name=update value=1 checked> ",
      $text{'convert_update'}," <p>\n";

print "<input type=checkbox name=add value=1 checked> ",
      $text{'convert_add'},"<p>\n";

print "<input type=checkbox name=delete value=1> ",
      $text{'convert_delete'}, "<p>\n";

print "<table> <tr>\n";
print "<td valign=top>$text{'convert_newuser'}</td>\n";
print "<td><input type=radio name=newmode value=0 checked>$text{'convert_nopasswd'}<br>\n";
print "<input type=radio name=newmode value=1>$text{'convert_lock'}<br>\n";
print "<input type=radio name=newmode value=2>$text{'convert_passwd'}\n",
      "<input type=password name=newpass size=20></td>\n";
print "</tr> </table>\n";

print "<input type=submit value=\"$text{'convert_convert'}\"> </form>\n";

print "<hr>\n";
&footer("", $text{'index_sharelist'});

070701000521e1000081e40000000000000002000000013ac0388d000013c5000000200000000000000000000000000000001a00000003reloc/samba/conf_misc.cgi #!/usr/local/bin/perl
# conf_misc.cgi
# Display other options

require './samba-lib.pl';

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcm'}") unless $access{'conf_misc'};

&header($text{'misc_title'}, "");
print "<hr>\n";

&get_share("global");
print "<form action=save_misc.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'misc_title'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'misc_debug'}</b></td>\n";
print "<td><select name=debug_level>\n";
foreach $d ("", 0 .. 10) {
	printf "<option value=\"$d\" %s> %s\n",
		&getval("debug level") eq $d ? "selected" : "",
		$d eq "" ? $text{'default'} : $d;
	}
print "</select></td>\n";

print "<td><b>$text{'misc_cachecall'}</b></td>\n";
printf "<td nowrap><input type=radio name=getwd_cache value=yes %s> $text{'yes'}\n",
	&istrue("getwd cache") ? "checked" : "";
printf "<input type=radio name=getwd_cache value=no %s> $text{'no'}</td> </tr>\n",
	&istrue("getwd cache") ? "" : "checked";

print "<tr> <td><b>$text{'misc_lockdir'}</b></td>\n";
print "<td colspan=3>\n";
printf "<input type=radio name=lock_directory_def value=1 %s> $text{'default'}\n",
	&getval("lock directory") eq "" ? "checked" : "";
printf "&nbsp; <input type=radio name=lock_directory_def value=0 %s>\n",
	&getval("lock directory") eq "" ? "" : "checked";
printf "<input name=lock_directory size=30 value=\"%s\">\n",
	&getval("lock directory");
print &file_chooser_button("lock_directory", 1);
print "</td> </tr>\n";

print "<tr> <td><b>$text{'misc_log'}</b></td>\n";
print "<td colspan=3>\n";
printf "<input type=radio name=log_file_def value=1 %s> $text{'default'}\n",
	&getval("log file") eq "" ? "checked" : "";
printf "&nbsp; <input type=radio name=log_file_def value=0 %s>\n",
	&getval("log file") eq "" ? "" : "checked";
printf "<input name=log_file size=30 value=\"%s\">\n",
	&getval("log file");
print &file_chooser_button("log_file", 0);
print "</td> </tr>\n";

print "<tr> <td><b>$text{'misc_maxlog'}</b></td>\n";
printf "<td nowrap><input type=radio name=max_log_size_def value=1 %s> $text{'default'}\n",
	&getval("max log size") eq "" ? "checked" : "";
printf "<input type=radio name=max_log_size_def value=0 %s>\n",
	&getval("max log size") eq "" ? "" : "checked";
printf "<input name=max_log_size size=5 value=\"%s\">kB</td>\n",
	&getval("max log size");

print "<tr> <td><b>$text{'misc_rawread'}</b></td>\n";
printf "<td nowrap><input type=radio name=read_raw value=yes %s> $text{'yes'}\n",
	&isfalse("read raw") ? "" : "checked";
printf "<input type=radio name=read_raw value=no %s> $text{'no'}</td>\n",
	&isfalse("read raw") ? "checked" : "";

print "<td><b>$text{'misc_rawwrite'}</b></td>\n";
printf "<td nowrap><input type=radio name=write_raw value=yes %s> $text{'yes'}\n",
	&isfalse("write raw") ? "" : "checked";
printf "<input type=radio name=write_raw value=no %s> $text{'no'}</td> </tr>\n",
	&isfalse("write raw") ? "checked" : "";

print "<td><b>$text{'overlapread'}</b></td>\n";
printf "<td nowrap><input type=radio name=read_size_def value=1 %s> $text{'default'}\n",
	&getval("read size") eq "" ? "checked" : "";
printf "<input type=radio name=read_size_def value=0 %s>\n",
	&getval("read size") eq "" ? "" : "checked";
printf "<input name=read_size size=5 value=\"%s\">$text{'config_bytes'}</td> </tr>\n",
	&getval("read size");

print "<tr> <td><b>$text{'misc_chroot'}</b></td>\n";
print "<td colspan=3>\n";
printf "<input type=radio name=root_directory_def value=1 %s> $text{'config_none'}\n",
	&getval("root directory") eq "" ? "checked" : "";
printf "&nbsp; <input type=radio name=root_directory_def value=0 %s>\n",
	&getval("root directory") eq "" ? "" : "checked";
printf "<input name=root_directory size=30 value=\"%s\">\n",
	&getval("root directory");
print &file_chooser_button("root_directory", 1);
print "</td> </tr>\n";

print "<tr> <td><b>$text{'misc_smbrun'}</b></td>\n";
print "<td colspan=3>\n";
printf "<input type=radio name=smbrun_def value=1 %s> $text{'default'}\n",
	&getval("smbrun") eq "" ? "checked" : "";
printf "&nbsp; <input type=radio name=smbrun_def value=0 %s>\n",
	&getval("smbrun") eq "" ? "" : "checked";
printf "<input name=smbrun size=30 value=\"%s\">\n",
	&getval("smbrun");
print &file_chooser_button("smbrun", 0);
print "</td> </tr>\n";

print "<tr> <td><b>$text{'misc_clienttime'}</b></td>\n";
printf "<td><input name=time_offset size=4 value=\"%d\">$text{'config_mins'}</td>\n",
	&getval("time offset");

print "<td><b>$text{'misc_readprediction'}</b></td>\n";
printf "<td nowrap><input type=radio name=read_prediction value=yes %s> $text{'yes'}\n",
	&istrue("read prediction") ? "checked" : "";
printf "<input type=radio name=read_prediction value=no %s> $text{'no'}</td> </tr>\n",
	&istrue("read prediction") ? "" : "checked";


print "</table></tr></td></table><p>\n";
print "<input type=submit value=$text{'save'}></form><p>\n";

print "<hr>\n";
&footer("", $text{'index_sharelist'});


   070701000521e2000081e40000000000000002000000013ac0388d00001255000000200000000000000000000000000000001900000003reloc/samba/conf_net.cgi  #!/usr/local/bin/perl
# conf_net.cgi
# Display Unix networking options

require './samba-lib.pl';

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcn'}") unless $access{'conf_net'};

&header($text{'net_title'}, "");
print "<hr>\n";

&get_share("global");

print "<form action=save_net.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'net_title'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";
print "<tr> <td><b>$text{'net_idle'}</b></td>\n";
printf "<td><input type=radio name=dead_time_def value=1 %s> $text{'config_never'}\n",
	&getval("dead time") eq "" ? "checked" : "";
printf "<input type=radio name=dead_time_def value=0 %s>\n",
	&getval("dead time") eq "" ? "" : "checked";
printf "<input name=dead_time size=5 value=\"%s\"> $text{'config_mins'}</td> </tr>\n",
	&getval("dead time");

print "<tr> <td><b>$text{'net_trustlist'}</b></td>\n";
printf "<td><input type=radio name=hosts_equiv_def value=1 %s> $text{'config_none'}\n",
	&getval("hosts equiv") eq "" ? "checked" : "";
printf "<input type=radio name=hosts_equiv_def value=0 %s>",
	&getval("hosts equiv") eq "" ? "" : "checked";
printf "<input name=hosts_equiv size=20 value=\"%s\">\n",
	&getval("hosts equiv");
print &file_chooser_button("hosts_equiv", 0);
print "</td> </tr>\n";

print "<tr> <td valign=top><b>$text{'net_netinterface'}</b></td>\n";
print "<td>\n";
printf "<input type=radio name=interfaces_def value=1 %s> $text{'net_auto'}&nbsp;\n",
	&getval("interfaces") ? "" : "checked";
printf "<input type=radio name=interfaces_def value=0 %s> $text{'net_uselist'}<br>\n",
	&getval("interfaces") ? "checked" : "";
print "<table border>\n";
print "<tr> <td><b>$text{'net_interface'}</b></td> <td><b>$text{'net_netmask'}</b></td> </tr>\n";
@iflist = split(/\s+/, &getval("interfaces"));
$len = @iflist ? @iflist+1 : 2;
for($i=0; $i<$len; $i++) {
	print "<tr>\n";
	if ($iflist[$i] =~ /^([0-9\.]+)\/([0-9]+)$/) {
		for($j=0; $j<$2; $j++) { $pw += 2**(31-$j); }
		$n = sprintf "%u.%u.%u.%u",
				($pw>>24)&0xff, ($pw>>16)&0xff,
				($pw>>8)&0xff, ($pw)&0xff;
		print "<td><input name=interface_ip$i value=$1 size=15></td>\n";
		print "<td><input name=interface_nm$i value=$n size=15></td>\n";
		}
	elsif ($iflist[$i] =~ /^([0-9\.]+)\/([0-9\.]+)$/) {
		print "<td><input name=interface_ip$i value=$1 size=15></td>\n";
		print "<td><input name=interface_nm$i value=$2 size=15></td>\n";
		}
	else {
		print "<td><input name=interface_ip$i size=15></td>\n";
		print "<td><input name=interface_nm$i size=15></td>\n";
		}
	print "</tr>\n";
	}
print "</table></td> </tr>\n";

print "<tr> <td><b>$text{'net_keepalive'}</b></td>\n";
printf "<td><input type=radio name=keepalive_def value=1 %s> $text{'net_notsend'}\n",
	&getval("keepalive") eq "" ? "checked" : "";
printf "<input type=radio name=keepalive_def value=0 %s>\n",
	&getval("keepalive") eq "" ? "" : "checked";
print "$text{'net_every'}\n";
printf "<input name=keepalive size=5 value=\"%s\">$text{'config_secs'}</td> </tr>\n",
	&getval("keepalive");

print "<tr> <td><b>$text{'net_maxpacket'}</b></td>\n";
printf "<td><input type=radio name=max_xmit_def value=1 %s> $text{'default'}\n",
	&getval("max xmit") eq "" ? "checked" : "";
printf "<input type=radio name=max_xmit_def value=0 %s>\n",
	&getval("max xmit") eq "" ? "" : "checked";
printf "<input name=max_xmit size=5 value=\"%s\"> $text{'config_bytes'}</td> </tr>\n",
	&getval("max xmit");

print "<tr> <td><b>$text{'net_listen'}</b></td>\n";
printf "<td><input type=radio name=socket_address_def value=1 %s> $text{'config_all'}\n",
	&getval("socket address") eq "" ? "checked" : "";
printf "<input type=radio name=socket_address_def value=0 %s>\n",
	&getval("socket address") eq "" ? "" : "checked";
printf "<input name=socket_address size=15 value=\"%s\"></td> </tr>\n",
	&getval("socket address");

print "<tr> <td valign=top><b>$text{'net_socket'}</b></td>\n";
print "<td><table>\n";
foreach (split(/\s+/, &getval("socket options"))) {
	if (/^([A-Z\_]+)=(.*)/) { $sopts{$1} = $2; }
	else { $sopts{$_} = ""; }
	}
for($i=0; $i<@sock_opts; $i++) {
	$sock_opts[$i] =~ /^([A-Z\_]+)(.*)$/;
	if ($i%2 == 0) { print "<tr>\n"; }
	printf "<td><input type=checkbox name=$1 value=1 %s> $1\n",
		defined($sopts{$1}) ? "checked" : "";
	if ($2 eq "*") {
		printf "<input size=5 name=\"$1_val\" value=\"%s\">\n",
			$sopts{$1};
		}
	print "</td>\n";
	if ($i%2 == 1) { print "<tr>\n"; }
	}
print "</table></td> </tr>\n";

print "</table></td></tr></table><p>\n";
print "<input type=submit value=$text{'save'}></form><p>\n";

print "<hr>\n";
&footer("", $text{'index_sharelist'});

   070701000521e3000081e40000000000000002000000013ac0388d00000ecc000000200000000000000000000000000000001a00000003reloc/samba/conf_pass.cgi #!/usr/local/bin/perl
# conf_pass.cgi
# Display password options options

require './samba-lib.pl';

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcp'}") unless $access{'conf_pass'};

&header($text{'passwd_title'}, "");
print "<hr>\n";

&get_share("global");

print "<form action=save_pass.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'passwd_title'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";
print "<tr> <td><b>$text{'passwd_encrypt'}</b></td>\n";
printf "<td><input type=radio name=encrypt_passwords value=yes %s> $text{'yes'}\n",
	&istrue("encrypt passwords") ? "checked" : "";
printf "&nbsp; <input type=radio name=encrypt_passwords value=no %s> $text{'no'}</td>\n",
	&istrue("encrypt passwords") ? "" : "checked";

print "<td><b>$text{'passwd_allownull'}</b></td>\n";
printf "<td><input type=radio name=null_passwords value=yes %s> $text{'yes'}\n",
	&istrue("null passwords") ? "checked" : "";
printf "$gap <input type=radio name=null_passwords value=no %s> $text{'no'}</td></tr>\n",
	&istrue("null passwords") ? "" : "checked";

print "<tr> <td><b>$text{'passwd_program'}</b></td>\n";
printf "<td><input type=radio name=passwd_program_def value=1 %s> $text{'default'}\n",
	&getval("passwd program") eq "" ? "checked" : "";
printf "<input type=radio name=passwd_program_def value=0 %s>\n",
	&getval("passwd program") eq "" ? "" : "checked";
printf "<input size=15 name=passwd_program value=\"%s\"></td>\n",
	&getval("passwd program");

print "<td><b>$text{'passwd_case'}</b></td>\n";
printf "<td><input name=password_level size=4 value=\"%d\"></td> </tr>\n",
	&getval("password level");

print "<tr> <td valign=top><b>$text{'passwd_chat'}</b></td>\n";
print "<td colspan=3>\n";
printf "<input type=radio name=passwd_chat_def value=1 %s> $text{'default'}\n",
	&getval("passwd chat") eq "" ? "checked" : "";
printf "<input type=radio name=passwd_chat_def value=0 %s> $text{'passwd_below'}<br>\n",
	&getval("passwd chat") eq "" ? "" : "checked";
print "<table border> <tr><td><b>$text{'passwd_waitfor'}</b></td> <td><b>$text{'passwd_send'}</b></td></tr>\n";
$pc = &getval("passwd chat");
while($pc =~ /^"([^"]*)"\s*(.*)/ || $pc =~ /^(\S+)\s*(.*)/) {
	if ($send) { push(@send, $1); $send = 0; }
	else { push(@recv, $1); $send = 1; }
	$pc = $2;
	}
for($i=0; $i<(@recv < 5 ? 5 : @recv+1); $i++) {
	printf "<tr><td><input name=chat_recv_$i value=\"%s\" size=20></td>\n",
		$recv[$i] eq "." ? "" : $recv[$i];
	printf "<td><input name=chat_send_$i value=\"%s\" size=20></td></tr>\n",
		$send[$i];
	}
print "</table></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'passwd_map'}</b></td>\n";
print "<td colspan=3>\n";
printf "<input type=radio name=username_map_def value=1 %s> $text{'config_none'}\n",
	&getval("username map") eq "" ? "checked" : "";
printf"<input type=radio name=username_map_def value=0 %s> $text{'passwd_below'}<br>\n",
	&getval("username map") eq "" ? "" : "checked";
print "<table border> <tr><td><b>$text{'passwd_unixuser'}</b></td>\n";
print "                   <td><b>$text{'passwd_winuser'}</b></td></tr>\n";
open(UMAP, &getval("username map"));
while(<UMAP>) {
	chop; s/[#;].*$//g;
	if (/^\s*(\S+)\s*=\s*"([^"]*)"/ || /^\s*(\S+)\s*=\s*(.*)$/) {
		push(@uunix, $1);
		push(@uwin, $2);
		}
	}
close(UMAP);
for($i=0; $i<@uunix+1; $i++) {
	printf "<tr> <td><input name=umap_unix_$i size=8 value=\"%s\"></td>\n",
		$uunix[$i];
	printf "<td><input name=umap_win_$i size=30 value=\"%s\"></td> </tr>\n",
		$uwin[$i];
	}
print "</table></td> </tr>\n";

print "</table></td></tr></table><p>\n";
print "<input type=submit value=$text{'save'}></form><p>\n";

print "<hr>\n";
&footer("", $text{'index_sharelist'});
070701000521e4000081e40000000000000002000000013ac0388d00000931000000200000000000000000000000000000001b00000003reloc/samba/conf_print.cgi    #!/usr/local/bin/perl
# conf_print.cgi
# Display printing options

require './samba-lib.pl';

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcprint'}") unless $access{'conf_print'};
 
&header($text{'print_title'}, "");
print "<hr>\n";

&get_share("global");

print "<form action=save_print.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'print_title'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'print_style'}</b></td>\n";
print "<td><select name=printing>\n";
printf "<option value=\"\" %s> $text{'default'}\n",
	&getval("printing") eq "" ? "selected" : "";
foreach $s ("bsd", "sysv", "hpux", "aix", "qnx", "plp", "cups") {
	printf "<option value=$s %s> %s\n",
		&getval("printing") eq $s ? "selected" : "", uc($s);
	}
print "</select></td>\n";

print "<td><b>$text{'print_show'}</b></td>\n";
printf "<td><input type=radio name=load_printers value=yes %s> $text{'yes'}\n",
	&istrue("load printers") ? "checked" : "";
printf "<input type=radio name=load_printers value=no %s> $text{'no'}</td></tr>\n",
	&istrue("load printers") ? "" : "checked";

print "<tr> <td><b>$text{'print_printcap'}</b></td>\n";
print "<td colspan=3>\n";
printf "<input type=radio name=printcap_name_def value=1 %s> $text{'default'}\n",
	&getval("printcap name") eq "" ? "checked" : "";
printf "&nbsp;&nbsp; <input type=radio name=printcap_name_def value=0 %s>\n",
	&getval("printcap name") eq "" ? "" : "checked";
printf "<input name=printcap_name size=25 value=\"%s\">\n",
	&getval("printcap name");
print &file_chooser_button("printcap_name", 0);
print "</td> </tr>\n";

print "<tr> <td><b>$text{'print_cachetime'}</b></td>\n";
print "<td colspan=3>\n";
printf "<input type=radio name=lpq_cache_time_def value=1 %s> $text{'default'}\n",
	&getval("lpq cache time") == 0 ? "checked" : "";
printf "&nbsp;&nbsp; <input type=radio name=lpq_cache_time_def value=0 %s>\n",
	&getval("lpq cache time") == 0 ? "" : "checked";
printf "<input name=lpq_cache_time size=5 value=\"%s\"> $text{'config_secs'}</td> </tr>\n",
	&getval("lpq cache time");

print "</table></td></tr></table><p>\n";
print "<input type=submit value=$text{'save'}></form><p>\n";

print "<hr>\n";
&footer("", $text{'index_sharelist'});
   070701000521e5000081e40000000000000002000000013ac0388d000018c7000000200000000000000000000000000000001900000003reloc/samba/conf_smb.cgi  #!/usr/local/bin/perl
# conf_smb.cgi
# Display Windows networking options

require './samba-lib.pl';

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcs'}") unless $access{'conf_smb'};

&header($text{'smb_title'}, "");
print "<hr>\n";

&get_share("global");

print "<form action=save_smb.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'smb_title'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";
$gap = "&nbsp;" x 3;

print "<tr> <td><b>$text{'smb_workgroup'}</b></td>\n";
print "<td colspan=3>\n";
printf "<input type=radio name=workgroup_def value=1 %s> $text{'default'}\n",
	&getval("workgroup") eq "" ? "checked" : "";
printf "$gap <input type=radio name=workgroup_def value=0 %s>\n",
	&getval("workgroup") eq "" ? "" : "checked";
printf "<input name=workgroup size=15 value=\"%s\"></td> </tr>\n",
	&getval("workgroup");

print "<tr> <td><b>$text{'smb_wins'}</b></td>\n";
print "<td colspan=3>\n";
printf "<input type=radio name=wins value=0 %s> $text{'smb_winsserver'}\n",
	&isfalse("wins support") ? "" : "checked";
printf "$gap <input type=radio name=wins value=1 %s> $text{'smb_useserver'}\n",
	&getval("wins server") eq "" ? "" : "checked";
printf "<input name=wins_server size=10 value=\"%s\">\n",
	&getval("wins server");
printf "$gap <input type=radio name=wins value=2 %s> $text{'config_neither'}\n",
      &isfalse("wins support") && &getval("wins server") eq "" ? "checked" : "";
print "</td> </tr>\n";

print "<tr> <td><b>$text{'smb_description'}</b></td>\n";
print "<td colspan=3>\n";
printf "<input type=radio name=server_string_def value=1 %s> $text{'default'}\n",
	&getval("server string") eq "" ? "checked" : "";
printf "$gap <input type=radio name=server_string_def value=0 %s>\n",
	&getval("server string") eq "" ? "" : "checked";
printf "<input name=server_string size=20 value=\"%s\"></td> </tr>\n",
	&getval("server string");

print "<tr> <td><b>$text{'smb_name'}</b></td>\n";
printf "<td><input name=netbios_name size=15 value=\"%s\"></td>\n",
	&getval("netbios name");

print "<td><b>$text{'smb_aliase'}</b></td>\n";
printf "<td><input name=netbios_aliases size=30 value=\"%s\"></td> </tr>\n",
	&getval("netbios aliases");

print "<tr> <td><b>$text{'smb_default'}</b></td>\n";
print "<td><select name=default>\n";
printf "<option value=\"\" %s> $text{'config_none'}\n", &getval("default") eq "";
foreach $s (&list_shares()) {
	next unless &can('r', \%access, $s) || !$access{'hide'};
	printf "<option value=\"$s\" %s> $s\n",
		&getval("default") eq $s ? "selected" : "";
	}
print "</select></td>\n";

print "<td><b>$text{'smb_show'}</b></td>\n";
print "<td rowspan=2><select name=auto_services multiple size=3>\n";
foreach $s (split(/s\+/, &getval("auto services"))) { $autos{$s}++; }
foreach $s (&list_shares()) {
	next unless &can('r', \%access, $s) || !$access{'hide'};
	printf "<option value=\"$s\" %s> $s\n",
		$autos{$s} ? "checked" : "";
	}
print "</select></td> </tr>\n";

print "<tr> <td><b>$text{'smb_disksize'}</b></td>\n";
print "<td colspan=2>\n";
printf "<input type=radio name=max_disk_size_def value=1 %s> $text{'smb_unlimited'}\n",
	&getval("max disk size") eq "" ? "checked" : "";
printf "$gap <input type=radio name=max_disk_size_def value=0 %s>\n",
	&getval("max disk size") eq "" ? "" : "checked";
printf "<input name=max_disk_size size=5 value=\"%s\"> kB</td>\n",
	&getval("max disk size");

print "<tr> <td><b>$text{'smb_winpopup'}</b></td>\n";
printf "<td><input name=message_command size=15 value=\"%s\"></td>\n",
	&getval("message command");

print "<td><b>$text{'smb_priority'}</b></td>\n";
printf "<td><input name=os_level size=5 value=\"%d\"></td> </tr>\n",
	&getval("os level");

print "<tr> <td><b>$text{'smb_protocol'}</b></td>\n";
print "<td><select name=protocol>\n";
printf "<option value=\"\" %s> $text{'default'}\n",
	&getval("protocol") eq "" ? "selected" : "";
foreach $p (@protocols) {
	printf "<option value=\"$p\" %s> $p\n",
		&getval("protocol") eq $p ? "selected" : "";
	}
print "</select></td>\n";

print "<td><b>$text{'smb_master'}</b></td>\n";
printf "<td><input type=radio name=preferred_master value=yes %s> $text{'yes'}\n",
	&isfalse("preferred master") ? "" : "checked";
printf "$gap <input type=radio name=preferred_master value=no %s> $text{'no'}</td> </tr>\n",
	&isfalse("preferred master") ? "checked" : "";

print "<tr> <td><b>$text{'smb_security'}</b></td>\n";
print "<td><select name=security>\n";
printf "<option value='' %s> $text{'default'}\n",
	&getval("security") ? "" : "selected";
printf "<option value=share %s> $text{'smb_sharelevel'}\n",
	&getval("security") =~ /^share$/i ? "selected" : "";
printf "<option value=user %s> $text{'smb_userlevel'}\n",
	&getval("security") =~ /^user$/i ? "selected" : "";
printf "<option value=server %s> $text{'smb_passwdserver'}\n",
	&getval("security") =~ /^server$/i ? "selected" : "";
printf "<option value=domain %s> $text{'smb_domain'}\n",
	&getval("security") =~ /^domain$/i ? "selected" : "";
print "</select></td>\n";

print "<td><b>$text{'smb_passwdserver'}</b></td>\n";
printf "<td><input name=password_server size=10 value=\"%s\"></td> </tr>\n",
	&getval("password server");

print "<tr> <td valign=top><b>$text{'smb_announce'}</b></td>\n";
print "<td colspan=3>\n";
printf "<input type=radio name=remote_def value=1 %s> $text{'smb_nowhere'}\n",
	&getval("remote announce") ? "" : "checked";
printf "$gap <input type=radio name=remote_def value=0 %s> $text{'smb_fromlist'}<br>\n",
	&getval("remote announce") ? "checked" : "";
print "<table border> <tr> <td><b>$text{'smb_ip'}</b></td> ",
      "<td>$text{'smb_asworkgroup'}</td> </tr>\n";
@rem = split(/\s+/, &getval("remote announce")); $len = @rem ? @rem+1 : 2;
for($i=0; $i<$len; $i++) {
	print "<tr>\n";
	if ($rem[$i] =~ /^([\d\.]+)\/(.+)$/) { $ip = $1; $wg = $2; }
	elsif ($rem[$i] =~ /^([\d\.]+)$/) { $ip = $1; $wg = ""; }
	else { $ip = $wg = ""; }
	print "<td><input name=remote_ip$i size=15 value=\"$ip\"></td>\n";
	print "<td><input name=remote_wg$i size=15 value=\"$wg\"></td>\n";
	print "</tr>\n";
	}
print "</table></td> </tr>\n";

print "</table></td></tr></table><p>\n";
print "<input type=submit value=$text{'save'}></form><p>\n";

print "<hr>\n";
&footer("", $text{'index_sharelist'});

 070701000521e6000081a40000000000000002000000013ac0388d000001ad000000200000000000000000000000000000001700000003reloc/samba/config-aix    list_printers_command=ls /etc/lp/printers
text_lists=0
smb_passwd=/usr/local/bin/smbpasswd
samba_password_program=/usr/local/bin/smbpasswd
dont_convert=root daemon bin sys adm lp smtp uucp nuucp listen nobody noaccess nobody4
samba_status_program=/usr/local/bin/smbstatus
smb_conf=/usr/local/lib/smb.conf
samba_server=/usr/local/bin/smbd
name_server=/usr/local/bin/nmbd
run_from_inetd=0
swat_path=/usr/local/bin/swat
sort_mode=0
   070701000521e7000081a40000000000000002000000013ac0388d000001b3000000200000000000000000000000000000002000000003reloc/samba/config-cobalt-linux   list_printers_command=lpc status | grep "[A-z0-9]:" | sed -e 's/://g'
smb_passwd=/etc/smbpasswd
dont_convert=root bin daemon adm lp sync shutdown halt mail news uucp operator games gopher ftp nobody postgres
samba_password_program=/usr/bin/smbpasswd
samba_status_program=/usr/bin/smbstatus
samba_server=/usr/sbin/smbd
name_server=/usr/sbin/nmbd
smb_conf=/etc/smb.conf
text_lists=0
run_from_inetd=0
swat_path=/usr/sbin/swat
sort_mode=0
 070701000521e8000081a40000000000000002000000013ac0388d0000019d000000200000000000000000000000000000001f00000003reloc/samba/config-corel-linux    list_printers_command=lpc status | grep "[A-z0-9]:" | sed -e 's/://g'
smb_passwd=/etc/samba/smbpasswd
dont_convert=root bin daemon adm lp sync shutdown halt mail news uucp operator games gopher ftp nobody
samba_password_program=/usr/bin/smbpasswd
samba_status_program=/usr/bin/smbstatus
samba_server=/usr/sbin/smbd
name_server=/usr/sbin/nmbd
smb_conf=/etc/samba/smb.conf
text_lists=0
run_from_inetd=0
sort_mode=0
   070701000521e9000081a40000000000000002000000013ac0388d00000191000000200000000000000000000000000000002000000003reloc/samba/config-debian-linux   list_printers_command=lpc status | grep "[A-z0-9]:" | sed -e 's/://g'
smb_passwd=/etc/smbpasswd
dont_convert=root bin daemon adm lp sync shutdown halt mail news uucp operator games gopher ftp nobody
samba_password_program=/usr/bin/smbpasswd
samba_status_program=/usr/bin/smbstatus
samba_server=/usr/sbin/smbd
name_server=/usr/sbin/nmbd
smb_conf=/etc/smb.conf
text_lists=0
run_from_inetd=1
sort_mode=0
   070701000521ea000081a40000000000000002000000013ac0388d0000019d000000200000000000000000000000000000002400000003reloc/samba/config-debian-linux-2.1   list_printers_command=lpc status | grep "[A-z0-9]:" | sed -e 's/://g'
smb_passwd=/etc/samba/smbpasswd
dont_convert=root bin daemon adm lp sync shutdown halt mail news uucp operator games gopher ftp nobody
samba_password_program=/usr/bin/smbpasswd
samba_status_program=/usr/bin/smbstatus
samba_server=/usr/sbin/smbd
name_server=/usr/sbin/nmbd
smb_conf=/etc/samba/smb.conf
text_lists=0
run_from_inetd=0
sort_mode=0
   070701000521eb000081a40000000000000002000000013ac0388d0000019d000000200000000000000000000000000000002400000003reloc/samba/config-debian-linux-2.2   list_printers_command=lpc status | grep "[A-z0-9]:" | sed -e 's/://g'
smb_passwd=/etc/samba/smbpasswd
dont_convert=root bin daemon adm lp sync shutdown halt mail news uucp operator games gopher ftp nobody
samba_password_program=/usr/bin/smbpasswd
samba_status_program=/usr/bin/smbstatus
samba_server=/usr/sbin/smbd
name_server=/usr/sbin/nmbd
smb_conf=/etc/samba/smb.conf
text_lists=0
run_from_inetd=0
sort_mode=0
   070701000521ec000081a40000000000000002000000013ac0388d00000223000000200000000000000000000000000000001b00000003reloc/samba/config-freebsd    alt_smb_conf=/usr/local/etc/smb.conf.default
dont_convert=root daemon bin sys adm lp smtp uucp nuucp listen nobody noaccess nobody4 pop lp mail postmaster news man games
list_printers_command=lpc status | grep "[A-z0-9]:" | sed -e 's/://g'
name_server=/usr/local/sbin/nmbd
run_from_inetd=0
samba_password_program=/usr/local/bin/smbpasswd
samba_server=/usr/local/sbin/smbd
samba_status_program=/usr/local/bin/smbstatus
smb_conf=/usr/local/etc/smb.conf
smb_passwd=/usr/local/private/smbpasswd
text_lists=0
swat_path=/usr/local/sbin/swat
sort_mode=0
 070701000521ed000081a40000000000000002000000013ac0388d000001c8000000200000000000000000000000000000001800000003reloc/samba/config-hpux   list_printers_command=ls /usr/spool/lp/request
smb_passwd=/usr/local/samba/private/smbpasswd
text_lists=0
dont_convert=root daemon bin sys adm uucp lp nuucp hpdb nobody
name_server=/usr/local/samba/bin/nmbd
smb_conf=/usr/local/samba/lib/smb.conf
samba_server=/usr/local/samba/bin/smbd
run_from_inetd=0
samba_password_program=/usr/local/samba/bin/smbpasswd
samba_status_program=/usr/local/samba/bin/smbstatus
swat_path=/usr/local/samba/bin/swat
sort_mode=0
070701000521ee000081a40000000000000002000000013ac0388d000001db000000200000000000000000000000000000001800000003reloc/samba/config-irix   list_printers_command=ls /etc/lp/printers
smb_passwd=/usr/local/samba/private/smbpasswd
text_lists=0
dont_convert=root daemon bin sys adm lp smtp uucp nuucp listen nobody noaccess nobody4
name_server=/usr/local/samba/bin/nmbd
smb_conf=/usr/local/samba/lib/smb.conf
samba_server=/usr/local/samba/bin/smbd
run_from_inetd=0
samba_password_program=/usr/local/samba/bin/smbpasswd
samba_status_program=/usr/local/samba/bin/smbstatus
swat_path=/usr/local/samba/bin/swat
sort_mode=0
 070701000521ef000081a40000000000000002000000013ac0388d000001b3000000200000000000000000000000000000001d00000003reloc/samba/config-lfs-linux  list_printers_command=lpc status | grep "[A-z0-9]:" | sed -e 's/://g'
text_lists=0
smb_passwd=/etc/smbpasswd
dont_convert=root bin daemon adm lp sync shutdown halt mail news uucp operator games gopher ftp nobody postgres
smb_conf=/etc/smb.conf
name_server=/usr/sbin/nmbd
samba_server=/usr/sbin/smbd
run_from_inetd=0
swat_path=/usr/sbin/swat
sort_mode=0
samba_password_program=/usr/bin/smbpasswd
samba_status_program=/usr/bin/smbstatus
 070701000521f0000081a40000000000000002000000013ac0388e000001f7000000200000000000000000000000000000001900000003reloc/samba/config-macos  list_printers_command=lpc status | grep "[A-z0-9]:" | sed -e 's/://g'
smb_passwd=/usr/local/samba/private/smbpasswd
text_lists=0
dont_convert=root daemon bin sys adm lp smtp uucp nuucp listen nobody noaccess nobody4
name_server=/usr/local/samba/bin/nmbd
smb_conf=/usr/local/samba/lib/smb.conf
samba_server=/usr/local/samba/bin/smbd
run_from_inetd=0
samba_password_program=/usr/local/samba/bin/smbpasswd
samba_status_program=/usr/local/samba/bin/smbstatus
swat_path=/usr/local/samba/bin/swat
sort_mode=0
 070701000521f1000081a40000000000000002000000013ac0388d000001f3000000200000000000000000000000000000001e00000003reloc/samba/config-open-linux smb_passwd=/etc/samba.d/smbpasswd
text_lists=0
dont_convert=root bin daemon adm lp sync shutdown halt mail news uucp operator games gopher ftp nobody postgres
name_server=/usr/sbin/nmbd
alt_smb_conf=/etc/samba.d/smb.conf.sample
smb_conf=/etc/samba.d/smb.conf
samba_server=/usr/sbin/smbd
swat_path=/usr/sbin/swat
run_from_inetd=0
samba_password_program=/usr/bin/smbpasswd
samba_status_program=/usr/bin/smbstatus
sort_mode=0
start_cmd=/etc/rc.d/init.d/samba start
stop_cmd=/etc/rc.d/init.d/samba stop
 070701000521f2000081a40000000000000002000000013ac0388d00000223000000200000000000000000000000000000001b00000003reloc/samba/config-openbsd    alt_smb_conf=/usr/local/etc/smb.conf.default
dont_convert=root daemon bin sys adm lp smtp uucp nuucp listen nobody noaccess nobody4 pop lp mail postmaster news man games
list_printers_command=lpc status | grep "[A-z0-9]:" | sed -e 's/://g'
name_server=/usr/local/sbin/nmbd
run_from_inetd=0
samba_password_program=/usr/local/bin/smbpasswd
samba_server=/usr/local/sbin/smbd
samba_status_program=/usr/local/bin/smbstatus
smb_conf=/usr/local/etc/smb.conf
smb_passwd=/usr/local/private/smbpasswd
text_lists=0
swat_path=/usr/local/sbin/swat
sort_mode=0
 070701000521f3000081a40000000000000002000000013ac0388d000001db000000200000000000000000000000000000001e00000003reloc/samba/config-openserver list_printers_command=ls /etc/lp/printers
text_lists=0
smb_passwd=/usr/local/samba/private/smbpasswd
samba_password_program=/usr/local/samba/bin/smbpasswd
dont_convert=root daemon bin sys adm lp smtp uucp nuucp listen nobody noaccess nobody4
samba_status_program=/usr/local/samba/bin/smbstatus
smb_conf=/usr/local/samba/lib/smb.conf
samba_server=/usr/local/samba/bin/smbd
name_server=/usr/local/samba/bin/nmbd
run_from_inetd=0
swat_path=/usr/local/samba/bin/swat
sort_mode=0
 070701000521f4000081a40000000000000002000000013ac0388d000001db000000200000000000000000000000000000001800000003reloc/samba/config-osf1   list_printers_command=ls /etc/lp/printers
smb_passwd=/usr/local/samba/private/smbpasswd
text_lists=0
dont_convert=root daemon bin sys adm lp smtp uucp nuucp listen nobody noaccess nobody4
name_server=/usr/local/samba/bin/nmbd
smb_conf=/usr/local/samba/lib/smb.conf
samba_server=/usr/local/samba/bin/smbd
run_from_inetd=0
samba_password_program=/usr/local/samba/bin/smbpasswd
samba_status_program=/usr/local/samba/bin/smbstatus
swat_path=/usr/local/samba/bin/swat
sort_mode=0
 070701000521f5000081a40000000000000002000000013ac0388d000001fb000000200000000000000000000000000000002000000003reloc/samba/config-redhat-linux   list_printers_command=lpc status | grep "[A-z0-9]:" | sed -e 's/://g'
smb_passwd=/etc/smbpasswd
dont_convert=root bin daemon adm lp sync shutdown halt mail news uucp operator games gopher ftp nobody postgres
samba_password_program=/usr/bin/smbpasswd
samba_status_program=/usr/bin/smbstatus
samba_server=/usr/sbin/smbd
name_server=/usr/sbin/nmbd
smb_conf=/etc/smb.conf
text_lists=0
run_from_inetd=0
swat_path=/usr/sbin/swat
sort_mode=0
start_cmd=/etc/rc.d/init.d/smb start
stop_cmd=/etc/rc.d/init.d/smb stop
 070701000521f6000081a40000000000000002000000013ac0388d00000233000000200000000000000000000000000000002400000003reloc/samba/config-redhat-linux-7.0   list_printers_command=lpc status | grep "[A-z0-9]:" | sed -e 's/://g'
smb_passwd=/etc/samba/smbpasswd
dont_convert=root bin daemon adm lp sync shutdown halt mail news uucp operator games gopher ftp nobody postgres apache named xfs rpcuser rpc mailnull squid
samba_password_program=/usr/bin/smbpasswd
samba_status_program=/usr/bin/smbstatus
samba_server=/usr/sbin/smbd
name_server=/usr/sbin/nmbd
smb_conf=/etc/samba/smb.conf
text_lists=0
run_from_inetd=0
swat_path=/usr/sbin/swat
sort_mode=0
start_cmd=/etc/rc.d/init.d/smb start
stop_cmd=/etc/rc.d/init.d/smb stop
 070701000521f7000081a40000000000000002000000013ac0388e00000233000000200000000000000000000000000000002400000003reloc/samba/config-redhat-linux-7.1   list_printers_command=lpc status | grep "[A-z0-9]:" | sed -e 's/://g'
smb_passwd=/etc/samba/smbpasswd
dont_convert=root bin daemon adm lp sync shutdown halt mail news uucp operator games gopher ftp nobody postgres apache named xfs rpcuser rpc mailnull squid
samba_password_program=/usr/bin/smbpasswd
samba_status_program=/usr/bin/smbstatus
samba_server=/usr/sbin/smbd
name_server=/usr/sbin/nmbd
smb_conf=/etc/samba/smb.conf
text_lists=0
run_from_inetd=0
swat_path=/usr/sbin/swat
sort_mode=0
start_cmd=/etc/rc.d/init.d/smb start
stop_cmd=/etc/rc.d/init.d/smb stop
 070701000521f8000081a40000000000000002000000013ac0388d000001da000000200000000000000000000000000000002300000003reloc/samba/config-slackware-linux    list_printers_command=lpc status | grep "[A-z0-9]:" | sed -e 's/://g'
smb_passwd=/etc/smbpasswd
dont_convert=halt operator root shutdown sync bin ftp daemon adm lp mail postmaster news uucp man games guest nobody
samba_password_program=/usr/bin/smbpasswd
samba_status_program=/usr/bin/smbstatus
samba_server=/usr/sbin/smbd
name_server=/usr/sbin/nmbd
smb_conf=/etc/smb.conf
alt_smb_conf=/etc/smb.conf-sample
text_lists=0
run_from_inetd=1
swat_path=/usr/sbin/swat
sort_mode=0
  070701000521f9000081a40000000000000002000000013ac0388d000001ec000000200000000000000000000000000000002700000003reloc/samba/config-slackware-linux-7.0    list_printers_command=lpc status | grep "[A-z0-9]:" | sed -e 's/://g'
smb_passwd=/usr/lib/samba/private/smbpasswd
dont_convert=halt operator root shutdown sync bin ftp daemon adm lp mail postmaster news uucp man games guest nobody
samba_password_program=/usr/bin/smbpasswd
samba_status_program=/usr/bin/smbstatus
samba_server=/usr/sbin/smbd
name_server=/usr/sbin/nmbd
smb_conf=/etc/smb.conf
alt_smb_conf=/etc/smb.conf-sample
text_lists=0
run_from_inetd=1
swat_path=/usr/sbin/swat
sort_mode=0
070701000521fa000081a40000000000000002000000013ac0388e000001ec000000200000000000000000000000000000002700000003reloc/samba/config-slackware-linux-7.1    list_printers_command=lpc status | grep "[A-z0-9]:" | sed -e 's/://g'
smb_passwd=/usr/lib/samba/private/smbpasswd
dont_convert=halt operator root shutdown sync bin ftp daemon adm lp mail postmaster news uucp man games guest nobody
samba_password_program=/usr/bin/smbpasswd
samba_status_program=/usr/bin/smbstatus
samba_server=/usr/sbin/smbd
name_server=/usr/sbin/nmbd
smb_conf=/etc/smb.conf
alt_smb_conf=/etc/smb.conf-sample
text_lists=0
run_from_inetd=1
swat_path=/usr/sbin/swat
sort_mode=0
070701000521fb000081a40000000000000002000000013ac0388d000001db000000200000000000000000000000000000001b00000003reloc/samba/config-solaris    list_printers_command=ls /etc/lp/printers
smb_passwd=/usr/local/samba/private/smbpasswd
text_lists=0
dont_convert=root daemon bin sys adm lp smtp uucp nuucp listen nobody noaccess nobody4
name_server=/usr/local/samba/bin/nmbd
smb_conf=/usr/local/samba/lib/smb.conf
samba_server=/usr/local/samba/bin/smbd
run_from_inetd=0
samba_password_program=/usr/local/samba/bin/smbpasswd
samba_status_program=/usr/local/samba/bin/smbstatus
swat_path=/usr/local/samba/bin/swat
sort_mode=0
 070701000521fc000081a40000000000000002000000013ac0388d00000209000000200000000000000000000000000000001e00000003reloc/samba/config-suse-linux list_printers_command=lpc status | grep "[A-z0-9]:" | sed -e 's/://g'
smb_passwd=/etc/smbpasswd
dont_convert=root bin daemon adm lp sync shutdown halt mail news uucp operator games gopher ftp nobody gnats empress adabas wwwrun squid fax postgres lnx mdom yard
samba_password_program=/usr/bin/smbpasswd
samba_status_program=/usr/bin/smbstatus
samba_server=/usr/sbin/smbd
name_server=/usr/sbin/nmbd
smb_conf=/etc/smb.conf
alt_smb_conf=/etc/smb.conf.sample
text_lists=0
run_from_inetd=0
swat_path=/usr/sbin/swat
sort_mode=0
   070701000521fd000081a40000000000000002000000013ac0388d000001b3000000200000000000000000000000000000001f00000003reloc/samba/config-turbo-linux    list_printers_command=lpc status | grep "[A-z0-9]:" | sed -e 's/://g'
smb_passwd=/etc/smbpasswd
dont_convert=root bin daemon adm lp sync shutdown halt mail news uucp operator games gopher ftp nobody postgres
samba_password_program=/usr/bin/smbpasswd
samba_status_program=/usr/bin/smbstatus
samba_server=/usr/sbin/smbd
name_server=/usr/sbin/nmbd
smb_conf=/etc/smb.conf
text_lists=0
run_from_inetd=0
swat_path=/usr/sbin/swat
sort_mode=0
 070701000521fe000081a40000000000000002000000013ac0388d000001db000000200000000000000000000000000000001c00000003reloc/samba/config-unixware   list_printers_command=ls /etc/lp/printers
smb_passwd=/usr/local/samba/private/smbpasswd
text_lists=0
dont_convert=root daemon bin sys adm lp smtp uucp nuucp listen nobody noaccess nobody4
name_server=/usr/local/samba/bin/nmbd
smb_conf=/usr/local/samba/lib/smb.conf
samba_server=/usr/local/samba/bin/smbd
run_from_inetd=0
samba_password_program=/usr/local/samba/bin/smbpasswd
samba_status_program=/usr/local/samba/bin/smbstatus
swat_path=/usr/local/samba/bin/swat
sort_mode=0
 070701000521ff000081a40000000000000002000000013ac0388d00000202000000200000000000000000000000000000001800000003reloc/samba/config.info   smb_conf=Location of the Samba configuration file,0
smb_passwd=Location of the Samba password file,3
samba_status_program=Full path to smbstatus,0
samba_password_program=Full path to smbpasswd,0
samba_server=Full path to smbd,0
name_server=Full path to nmbd,0
swat_path=Full path to swat,3,None
dont_convert=List of Unix users not to add to the samba password list,0
sort_mode=Sort users and groups by name,1,1-Yes,0-No
start_cmd=Command to start Samba servers,3,None
stop_cmd=Command to stop Samba servers,3,None
  07070100052200000081a40000000000000002000000013ac0388d0000028f000000200000000000000000000000000000001b00000003reloc/samba/config.info.es    smb_conf=Localizaci髇 del archivo de configuraci髇 de Samba,0
smb_passwd=Localizaci髇 del archivo de claves de acceso de Samba,3
samba_status_program=Trayectoria completa a smbstatus,0
samba_password_program=Trayectoria completa a smbpasswd,0
samba_server=Trayectoria completa a smbd,0
name_server=Trayectoria completa a nmbd,0
swat_path=Trayectoria completa a swat,3,Ninguna
dont_convert=Lista de usuarios de Unix que no se a馻den a lista de claves de acceso de samba,0
sort_mode=Clasificar usuarios y grupos por nombre,1,1-S,0-No
start_cmd=Comando para arrancar los servidores Samba,3,Ninguno
stop_cmd=Comando para parar los servidores Samba,3,Ninguno
 07070100052201000081a40000000000000002000000013ac0388d000001f8000000200000000000000000000000000000001b00000003reloc/samba/config.info.fr    smb_conf=Chemin du fichier de configuration de Samba,0
smb_passwd=Chemin du fichier de mots de passe de Samba,3
samba_status_program=Chemin de smbstatus,0
samba_password_program=Chemin de smbpasswd,0
samba_server=Chemin de l'ex閏utable smbd,0
name_server=Chemin de l'ex閏utable nmbd,0
swat_path=Chemin de l'ex閏utable swat,3,Aucun
dont_convert=Les usagers Unix  ne pas ajouter  la liste des mots de passe Samba,0
sort_mode=Trier les usagers et les groupes par ordre alphabetique,1,1-Oui,0-Non
07070100052202000081a40000000000000002000000013ac0388d00000261000000200000000000000000000000000000001b00000003reloc/samba/config.info.pl    smb_conf=Lokalizacja pliku konfiguracyjnego Samby,0
smb_passwd=Lokalizacja pliku hase Samby,3
samba_status_program=Pe硁a 禼ie縦a do <tt>smbstatus</tt>,0
samba_password_program=Pe硁a 禼ie縦a do <tt>smbpasswd</tt>,0
samba_server=Pe硁a 禼ie縦a do <tt>smbd</tt>,0
name_server=Pe硁a 禼ie縦a do <tt>nmbd</tt>,0
swat_path=Pe硁a 禼ie縦a do <tt>swat</tt>,3,Brak
dont_convert=Lista u縴tkownik體 Uniksa nie dodawanych do listy hase Samby,0
sort_mode=Porz眃kowa u縴tkownik體 i&nbsp;grupy wg nazw,1,1-Tak,0-Nie
start_cmd=Polecenie uruchamiaj眂e serwery Samby,3,Brak
stop_cmd=Polecenie zatrzymuj眂e serwery Samby,3,Brak
   07070100052203000081a40000000000000002000000013ac0388e000001b4000000200000000000000000000000000000001e00000003reloc/samba/config.info.ru_RU smb_passwd=朽耧铍铈屙桢 羿殡 镟痤脲 Samba,3
dont_convert=扬桉铌 镱朦珙忄蝈脲 Unix 礤 怅膻鬣屐  镱朦珙忄蝈腓 samba,0
name_server=项腠 矬螯  nmbd,0
smb_conf=朽耧铍铈屙桢 羿殡 觐眙桡箴圉梃 Samba,0
samba_server=项腠 矬螯  smbd,0
swat_path=项腠 矬螯  swat,3,湾
sort_mode=语铕漕麒螯 镱朦珙忄蝈脲  沭箫稃 镱 桁屙,1,1-泥,0-湾
samba_password_program=项腠 矬螯  smbpasswd,0
samba_status_program=项腠 矬螯  smbstatus,0
0707010005220a000081a40000000000000002000000013ac0388d00000121000000200000000000000000000000000000001700000003reloc/samba/defaultacl    c_fs=1
r_fs=1
w_fs=1
c_ps=1
r_ps=1
w_ps=1
hide=0
ACLfs_global=rwvVsSpPnNoO
ACLps_global=rwvVsSoO
per_fs_acls=0
per_ps_acls=0
swat=1
conf_misc=1
conf_print=1
conf_pass=1
conf_smb=1
conf_net=1
apply=1
copy=1
view_all_con=1
kill_con=1
maint_users=1
view_users=1
maint_sync=1
maint_makepass=1
   07070100052204000081a40000000000000002000000013ac0388d000001b4000000200000000000000000000000000000001e00000003reloc/samba/config.info.ru_SU smb_conf=蛄有咸现盼膳 屏侍 讼纹汕找撩缮 Samba,0
smb_passwd=蛄有咸现盼膳 屏侍 辛蚁膛 Samba,3
samba_status_program=鹣涛偈 姓载  smbstatus,0
samba_password_program=鹣涛偈 姓载  smbpasswd,0
samba_server=鹣涛偈 姓载  smbd,0
name_server=鹣涛偈 姓载  nmbd,0
swat_path=鹣涛偈 姓载  swat,3,钆
dont_convert=笮捎纤 邢特谙琢耘膛 Unix 闻 姿汤蘖磐偃  邢特谙琢耘躺 samba,0
sort_mode=跣弦涯限稍 邢特谙琢耘膛  且招匈 邢 赏盼,1,1-淞,0-钆
07070100052205000081a40000000000000002000000013ac0388d00000262000000200000000000000000000000000000001b00000003reloc/samba/config.info.sv    smb_conf=Inst鋖lningsfilen f鰎 Samba finns h鋜,0
smb_passwd=L鰏enordsfilen f鰎 Samba finns h鋜,3
samba_status_program=Fullst鋘dig s鰇v鋑 till smbstatus,0
samba_password_program=Fullst鋘dig s鰇v鋑 till smbpasswd,0
samba_server=Fullst鋘dig s鰇v鋑 till smbd,0
name_server=Fullst鋘dig s鰇v鋑 till nmbd,0
swat_path=Fullst鋘dig s鰇v鋑 till swat,3,Ingen
dont_convert=Lista 鰒er Unix-anv鋘dare som inte ska l鋑gas till samba-l鰏enordslistan,0
sort_mode=Sortera anv鋘dare och grupper efter namn,1,1-Ja,0-Nej
start_cmd=Kommando f鰎 att starta Samba-servrar,3,Inget
stop_cmd=Kommando f鰎 att stanna Samba-servrar,3,Inget
  07070100052206000081a40000000000000002000000013ac0388d000001a8000000200000000000000000000000000000001b00000003reloc/samba/config.info.tr    smb_conf=Samba yap齦and齬ma dosyas齨齨 yeri,0
smb_passwd=Samba parola dosyas yeri,3
samba_status_program=smbstatus'un tam yeri,0
samba_password_program=smbpasswd'齨 tam yeri,0
samba_server=smbd'in tam yeri,0
name_server=nmbd'in tam yeri,0
swat_path=swat'in tam yeri,3,Hi鏱iri
dont_convert=Samba parol dosyas齨a eklenmeyen Unix kullan齝齦ar dosyas,0
sort_mode=Kullan齝 ve gruplar isimlerine g鰎e s齬ala,1,1-Evet,0-Hay齬
07070100052207000081a40000000000000002000000013ac0388d000001b4000000200000000000000000000000000000001e00000003reloc/samba/config.info.zh_CN smb_conf=Samba配置文件所在位置,0
smb_passwd=Samba password文件所在位置,3
samba_status_program=smbstatus的完整路径,0
samba_password_program=smbpasswd的完整路径,0
samba_server=smbd的完整路径,0
name_server=nmbd的完整路径,0
swat_path=swat的完整路径,3,无
dont_convert=不需加到sambe password列表的Unix用户的列表,0
sort_mode=按名字对用户和组排序,1,1-是,0-否
start_cmd=启动 Samba servers 的目录,3,None
stop_cmd=停止 Samba servers 的目录,3,None
07070100052208000081a40000000000000002000000013ac0388d0000017f000000200000000000000000000000000000002300000003reloc/samba/config.info.zh_TW.Big5    smb_conf=Samba 舱篈郎竚,0
smb_passwd=Samba 盞絏郎竚,3
samba_status_program= smbstatus 祘ΑЧ俱隔畖,0
samba_password_program= smbpasswd 祘ΑЧ俱隔畖,0
samba_server= smbd 祘ΑЧ俱隔畖,0
name_server= nmbd 祘ΑЧ俱隔畖,0
swat_path= swat 祘ΑЧ俱隔畖,3,None
dont_convert=ぃす砛 Samba  Unix ㄏノ,0
sort_mode=琌ㄌ沮嘿逼ㄏノ籔竤舱,1,1-琌,0-
 07070100052209000081e40000000000000002000000013ac0388d00000387000000200000000000000000000000000000001c00000003reloc/samba/create_copy.cgi   #!/usr/local/bin/perl
# create_copy.cgi
# Display a form for creating a new copy

require './samba-lib.pl';

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcopy'}") unless $access{'copy'};
 
&header($text{'create_title'}, "");
print "<hr>\n";

print $text{'create_msg'};
print "<p>\n";
print "<form action=save_copy.cgi>\n";
print "<table>\n";
print "<tr> <td><b>$text{'create_from'}</b></td>\n";
print "<td><select name=copy>\n";
foreach $c (&list_shares()) {
	if ($c eq "global") { next; }
	print "<option>$c\n";
	}
print "</select></td> </tr>\n";
print "<tr> <td><b>$text{'create_name'}</b></td>\n";
print "<td><input size=15 name=name></td> </tr>\n";
print "</table>\n";
print "<input type=submit value=$text{'create'}></form><p>\n";

print "<hr>\n";
&footer("", $text{'index_sharelist'});

 0707010005220b000081e40000000000000002000000013ac0388d0000020b000000200000000000000000000000000000001d00000003reloc/samba/delete_euser.cgi  #!/usr/local/bin/perl

require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pmusers'}")
        unless $access{'maint_users'} && $access{'view_users'};
# delete		
&lock_file($config{'smb_passwd'});
@list = &list_users();
&delete_user($list[$in{'idx'}]);
&unlock_file($config{'smb_passwd'});
&webmin_log("delete", "euser", $list[$in{'idx'}]->{'name'});
&redirect("edit_epass.cgi");

 0707010005220c000081e40000000000000002000000013ac0388d000002b3000000200000000000000000000000000000001d00000003reloc/samba/delete_share.cgi  #!/usr/local/bin/perl
# delete_share.cgi
# Delete an existing share

require './samba-lib.pl';
&ReadParse();

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pds'}") 
	unless &can('rw', \%access, $in{share});
# delete
&error_setup($text{'error_delshare'});
&lock_file($config{'smb_conf'});
foreach $s (&list_shares()) {
	&get_share($s);
	if (&getval("copy") eq $in{share}) {
		&error(&text('error_delcopy', $s));
		}
	}
&delete_share($in{share});
&drop_samba_acl(\%access, $in{share});
&unlock_file($config{'smb_conf'});
&webmin_log("delete", $in{'type'}, $in{share});
&redirect("");

 0707010005220d000081e40000000000000002000000013ac0388d00000401000000200000000000000000000000000000001b00000003reloc/samba/edit_epass.cgi    #!/usr/local/bin/perl
# edit_epass.cgi
# Display a list of samba users for editing

require './samba-lib.pl';
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pvusers'}")
        unless $access{'view_users'};
# display
&header($text{'smbuser_title'}, "");
print "<hr>\n";

@ulist = &list_users();
@ulist = sort { $a->{'name'} cmp $b->{'name'} } @ulist
	if ($config{'sort_mode'});
if (@ulist) {
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'smbuser_list'}</b></td> </tr>\n";
	print "<tr $cb> <td><table width=100%>\n";
	for($i=0; $i<@ulist; $i++) {
		$u = $ulist[$i];
		if ($i%4 == 0) { print "<tr>\n"; }
		print "<td><a href='edit_euser.cgi?idx=$u->{'index'}'>",
		      "$u->{'name'}</a></td>\n";
		if ($i%4 == 3) { print "</tr>\n"; }
		}
	print "</table></td> </tr></table><p>\n";
	}
else { print "<b>$text{'smbuser_nouser'}</b> <p>\n"; }

print "<hr>\n";
&footer("", $text{'index_sharelist'});
   0707010005220e000081e40000000000000002000000013ac0388d00000c13000000200000000000000000000000000000001b00000003reloc/samba/edit_euser.cgi    #!/usr/local/bin/perl
# edit_euser.cgi
# Edit an existing samba user

require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pvusers'}")
        unless $access{'view_users'};
# display		
&header($text{'euser_title'}, "");
@ulist = &list_users();
$u = $ulist[$in{'idx'}];
print "<hr>\n";

print "<form action=save_euser.cgi>\n";
print "<input type=hidden name=idx value=\"$in{'idx'}\">\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'euser_title'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td align=right><b>$text{'euser_name'}</b></td>\n";
print "<td><font size=+1><i>$u->{'name'}</i></font></td>\n";

print "<td align=right><b>$text{'euser_uid'}</b></td>\n";
print "<td><input name=uid size=5 value=\"$u->{'uid'}\"></td> </tr>\n";

print "<tr> <td align=right><b>$text{'euser_passwd'}</b></td>\n";
$locked = ($u->{'pass1'} eq ("X" x 32));
$nopass = ($u->{'pass1'} =~ /^NO PASSWORD/);
printf "<td colspan=3><input type=radio name=ptype value=0 %s> $text{'euser_noaccess'}\n",
	$locked ? "checked" : "";
printf "<input type=radio name=ptype value=1 %s> $text{'euser_nopw'}\n",
	$nopass ? "checked" : "";
printf "<input type=radio name=ptype value=2 %s> $text{'euser_currpw'}\n",
	$locked||$nopass ? "" : "checked";
print "<input type=radio name=ptype value=3> $text{'euser_newpw'}\n";
print "<input type=password name=pass size=20></td> </tr>\n";

if (!$u->{'opts'}) {
	# Old-style samba user
	print "<tr> <td align=right><b>$text{'euser_realname'}</b></td> <td colspan=3>\n";
	print "<input name=realname size=40 value='$u->{'real'}'></td> </tr>\n";

	print "<tr> <td align=right><b>$text{'euser_homedir'}</b></td>\n";
	print "<td><input name=homedir size=30 value='$u->{'home'}'></td>\n";

	print "<td align=right><b>$text{'euser_shell'}</b></td>\n";
	printf "<td><input name=shell size=15 value='%s'></td> </tr>\n",
		$u->{'shell'};
	}
else {
	# New-style samba user
	print "<input type=hidden name=new value=1>\n";
	map { $opt{uc($_)}++ } @{$u->{'opts'}};
	print "<tr> <td valign=top><b>$text{'euser_option'}</b></td> <td colspan=3>\n";
	@ol = ($text{'euser_normal'}, "U", $text{'euser_nopwrequired'}, "N",
	       $text{'euser_disable'}, "D", $text{'euser_trust'}, "W");
	for($i=0; $i<@ol; $i+=2) {
		printf "<input type=checkbox name=opts value=%s %s> %s<br>\n",
			$ol[$i+1], $opt{$ol[$i+1]} ? "checked" : "", $ol[$i];
		delete($opt{$ol[$i+1]});
		}
	foreach $oo (keys %opt) {
		print "<input type=hidden name=opts value=$oo>\n";
		}
	print "</td> </tr>\n";
	}

print "</table></td></tr></table>\n";
print "<table width=100%>\n";
print "<tr> <td><input type=submit value=$text{'save'}></td>\n";
print "</form><form action=\"delete_euser.cgi\">\n";
print "<input type=hidden name=idx value=\"$in{'idx'}\">\n";
print "<td align=right><input type=submit value=$text{'delete'}></td> </tr>\n";
print "</form></table><p>\n";

print "<hr>\n";
&footer("edit_epass.cgi", $text{'index_userlist'});

 0707010005220f000081e40000000000000002000000013ac0388d00000d16000000200000000000000000000000000000001b00000003reloc/samba/edit_fmisc.cgi    #!/usr/local/bin/perl
# edit_fmisc.cgi
# Edit misc file options

require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pvfmisc'}")
		unless &can('ro', \%access, $in{'share'});
# display
$s = $in{'share'};
if ($s eq "global") {
	&header($text{'fmisc_title'}, "");
	}
else {
	&header($text{'fmisc_title'}, "");
	print "<center><font size=+1>", &text('fmisc_for', $s),"</font></center>\n";
	}
&get_share($s);
print "<hr>\n";

print "<form action=save_fmisc.cgi>\n";
print "<input type=hidden name=old_name value=\"$s\">\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'misc_title'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td align=right><b>$text{'fmisc_lockfile'}</b></td>\n";
print "<td>",&yesno_input("locking"),"</td>\n";

print "<td align=right><b>$text{'fmisc_maxconn'}</b></td>\n";
printf "<td><input type=radio name=max_connections_def value=1 %s> $text{'smb_unlimited'}\n",
	&getval("max connections") == 0 ? "checked" : "";
printf "<input type=radio name=max_connections_def value=0 %s>\n",
	&getval("max connections") > 0 ? "checked" : "";
printf "<input size=6 name=max_connections value=\"%s\"></td> </tr>\n",
	&getval("max connections") > 0 ? &getval("max connections") : "";

print "<tr> <td align=right><b>$text{'fmisc_fake'}</b></td>\n";
print "<td>",&yesno_input("fake oplocks"),"</td>\n";

print "<td align=right><b>$text{'fmisc_sharemode'}</b></td>\n";
print "<td>",&yesno_input("share modes"),"</td> </tr>\n";

print "<tr> <td align=right><b>$text{'fmisc_strict'}</b></td>\n";
print "<td>",&yesno_input("strict locking"),"</td>\n";

print "<td align=right><b>$text{'fmisc_sync'}</b></td>\n";
print "<td>",&yesno_input("sync always"),"</td> </tr>\n";

print "<tr> <td align=right><b>$text{'fmisc_volume'}</b></td>\n";
printf "<td colspan=3><input type=radio name=volume_def value=1 %s> $text{'fmisc_sameas'}\n",
	&getval("volume") eq "" ? "checked" : "";
printf "<input type=radio name=volume_def value=0 %s>\n",
	&getval("volume") eq "" ? "" : "checked";
printf "<input size=25 name=volume value=\"%s\"></td> </tr>\n",
	&getval("volume");

print "</table><table>\n";

print "<tr> <td align=right><b>$text{'fmisc_unixdos'}</b></td>\n";
printf"<td><input name=mangled_map size=40 value=\"%s\"></td></tr>\n",
	&getval("mangled map");

print "<tr> <td align=right><b>$text{'fmisc_conncmd'}</b></td>\n";
printf "<td><input name=preexec size=40 value=\"%s\"></td> </tr>\n",
	&getval("preexec");

print "<tr> <td align=right><b>$text{'fmisc_disconncmd'}</b></td>\n";
printf "<td><input name=postexec size=40 value=\"%s\"></td> </tr>\n",
	&getval("postexec");

print "<tr> <td align=right><b>$text{'fmisc_rootconn'}</b></td>\n";
printf "<td><input name=root_preexec size=40 value=\"%s\"></td> </tr>\n",
	&getval("root preexec");

print "<tr> <td align=right><b>$text{'fmisc_rootdisconn'}</b></td>\n";
printf "<td><input name=root_postexec size=40 value=\"%s\"></td> </tr>\n",
	&getval("root postexec");

print "</table> </td></tr></table><p>\n";
print "<input type=submit value=$text{'save'}>"
	if &can('wO', \%access, $in{'share'});
print "</form>\n";
print "<hr>\n";
&footer("edit_fshare.cgi?share=".&urlize($s), $text{'index_fileshare'});

  07070100052210000081e40000000000000002000000013ac0388d0000095b000000200000000000000000000000000000001b00000003reloc/samba/edit_fname.cgi    #!/usr/local/bin/perl
# edit_fname.cgi
# Edit file naming options

require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pvfname'}")
        unless &can('rn', \%access, $in{'share'});
# display
$s = $in{'share'};
if ($s eq "global") {
	&header($text{'fname_title1'}, "");
	}
else {
	&header($text{'fname_title2'}, "");
	print "<center><font size=+1>",&text('fmisc_for', $s),"</font></center>\n";
	}
&get_share($s);
print "<hr>\n";

print "<form action=save_fname.cgi>\n";
print "<input type=hidden name=old_name value=\"$s\">\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'fname_option'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td align=right><b>$text{'fname_manglecase'}</b></td>\n";
print "<td>",&yesno_input("mangle case"),"</td>\n";

print "<td align=right><b>$text{'fname_case'}</b></td>\n";
print "<td>",&yesno_input("case sensitive"),"</td> </tr>\n";

print "<tr> <td align=right><b>$text{'fname_defaultcase'}</b></td>\n";
printf "<td><input type=radio name=default_case value=lower %s> $text{'fname_lower'}\n",
	&getval("default case") =~ /lower/i ? "checked" : "";
printf "<input type=radio name=default_case value=upper %s> $text{'fname_upper'}</td>\n",
	&getval("default case") =~ /upper/i ? "checked" : "";

print "<td align=right><b>$text{'fname_preserve'}</b></td>\n";
print "<td>",&yesno_input("preserve case"),"</td> </tr>\n";

print "<tr> <td align=right><b>$text{'fname_shortpreserve'}</b></td>\n";
print "<td>",&yesno_input("short preserve case"),"</td>\n";

print "<td align=right><b>$text{'fname_hide'}</b></td>\n";
print "<td>",&yesno_input("hide dot files"),"</td> </tr>\n";

print "<tr> <td align=right><b>$text{'fname_archive'}</b></td>\n";
print "<td>",&yesno_input("map archive"),"</td>\n";

print "<td align=right><b>$text{'fname_hidden'}</b></td>\n";
print "<td>",&yesno_input("map hidden"),"</td> </tr>\n";

print "<tr> <td align=right><b>$text{'fname_system'}</b></td>\n";
print "<td>",&yesno_input("map system"),"</td>\n";

print "</table> </td></tr></table><p>\n";
print "<input type=submit value=$text{'save'}>"
	if &can('wN', \%access, $in{'share'});
print "</form>\n";
print "<hr>\n";
&footer("edit_fshare.cgi?share=".&urlize($s), $text{'index_fileshare'});

 07070100052211000081e40000000000000002000000013ac0388d0000094d000000200000000000000000000000000000001b00000003reloc/samba/edit_fperm.cgi    #!/usr/local/bin/perl
# edit_fperm.cgi
# Edit file permissions options

require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pvperm'}")
        unless &can('rp', \%access, $in{'share'});
# display
$s = $in{'share'};
if ($s eq "global") {
	&header($text{'fperm_title1'}, "");
	}
else {
	&header($text{'fperm_title2'}, "");
	print "<center><font size=+1>", &text('fmisc_for', $s), "</font></center>\n";
	}
&get_share($s);
print "<hr>\n";

print "<form action=save_fperm.cgi>\n";
print "<input type=hidden name=old_name value=\"$s\">\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'fperm_option'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td align=right><b>$text{'fperm_filemode'}</b></td>\n";
printf "<td><input name=create_mode size=5 value=\"%s\"></td>\n",
	&getval("create mode");

print "<td align=right><b>$text{'fperm_dirmode'}</b></td>\n";
printf "<td><input name=directory_mode size=5 value=\"%s\"></td> </tr>\n",
	&getval("directory mode");

print "<tr> <td align=right><b>$text{'fperm_notlist'}</b></td>\n";
printf "<td colspan=3><input name=dont_descend size=40 value=\"%s\"></td>\n",
	&getval("dont descend");
print "</tr>\n";

print "<tr> <td align=right><b>$text{'fperm_forceuser'}</b></td>\n";
&username_input("force user", "None");

print "<td align=right><b>$text{'fperm_forcegrp'}</b></td>\n";
&groupname_input("force group", "None");

print "<tr> <td align=right><b>$text{'fperm_link'}</b></td>\n";
print "<td>",&yesno_input("wide links"),"</td>\n";

print "<td align=right><b>$text{'fperm_delro'}</b></td>\n";
print "<td>",&yesno_input("delete readonly"),"</td> </tr>\n";

print "<tr> <td align=right><b>$text{'fperm_forcefile'}</b></td>\n";
printf "<td><input name=force_create_mode size=5 value=\"%s\"></td>\n",
	&getval("force create mode");

print "<td align=right><b>$text{'fperm_forcedir'}</b></td>\n";
printf "<td><input name=force_directory_mode size=5 value=\"%s\"></td> </tr>\n",
	&getval("force directory mode");

print "</table> </td></tr></table><p>\n";
print "<input type=submit value=$text{'save'}>" 
	if &can('wP', \%access, $in{'share'});
print "</form>\n";
print "<hr>\n";
&footer("edit_fshare.cgi?share=".&urlize($s), $text{'index_fileshare'});

   07070100052212000081e40000000000000002000000013ac0388d00000f3f000000200000000000000000000000000000001c00000003reloc/samba/edit_fshare.cgi   #!/usr/local/bin/perl
# edit_fshare.cgi
# Display a form for editing or creating a new directory share

require './samba-lib.pl';
&ReadParse();
$s = $in{'share'};
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if(!$s) {
    &error("$text{'eacl_np'} $text{'eacl_pcfs'}")
	    unless $access{'c_fs'};
	}
else {
	&error("$text{'eacl_np'} $text{'eacl_pafs'}")
        unless &can('r', \%access, $in{'share'});
    }
# display
if ($s) {
	&header($s eq 'global' ? $text{'share_title1'} : $text{'share_title2'}, "");
	&get_share($s);
	}
else {
	&header($text{'share_title3'}, "");
	}
print "<hr>\n";

print "<form action=save_fshare.cgi>\n";
if ($s) { print "<input type=hidden name=old_name value=\"$s\">\n"; }

# Vital share options..
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'share_info'}</b></td> </tr>\n";
print "<tr $cb> <td><table cellpadding=2>\n";
if ($s ne "global") {
	if ($copy = &getval("copy")) {
		print "<tr> <td colspan=4><b>",&text('share_copy', $copy),
		      "</b></td> </tr>\n";
		}
	print "<tr> <td align=right><b>$text{'share_name'}</b></td>\n";
	printf "<td colspan=3><input type=radio name=homes value=0 %s>\n",
		$s eq "homes" ? "" : "checked";
	printf "<input size=10 name=share value=\"%s\">&nbsp;&nbsp;&nbsp;\n",
		$s eq "homes" ? "" : $s;
	printf "<input type=radio name=homes value=1 %s> $text{'share_home'}\n",
		$s eq "homes" ? "checked" : "";
	print "</td> </tr>\n";
	}

print "<tr> <td align=right><b>$text{'share_dir'}</b></td>\n";
printf "<td colspan=3><input name=path size=40 value=\"%s\">\n",
	&getval("path");
print &file_chooser_button("path", 1);
print "</td> </tr>\n";

print "<tr> <td align=right><b>$text{'share_available'}</b></td>\n";
print "<td>",&yesno_input("available"),"</td>\n";

print "<td align=right><b>$text{'share_browseable'}</b></td>\n";
print "<td>",&yesno_input("browseable"),"</td> </tr>\n";

print "<td align=right><b>$text{'share_comment'}</b></td>\n";
printf "<td colspan=3><input size=40 name=comment value=\"%s\"></td> </tr>\n",
	&getval("comment");

print "</table> </td></tr></table><p>\n";
if ($s eq "global") {
	print "<input type=submit value=$text{'save'}> </form>\n";
	}
elsif ($s) {
	print "<table width=100%> <tr>\n";
	print "<td align=left><input type=submit value=$text{'save'}></td>\n"
		if &can('rw', \%access, $s);
	print "</form><form action=view_users.cgi>\n";
	print "<input type=hidden name=share value=\"$s\">\n";
	print "<td align=center><input type=submit value=\"$text{'share_view'}\"></td>\n"
		if &can('rv', \%access, $s);
	print "</form><form action=delete_share.cgi>\n";
	print "<input type=hidden name=share value=\"$s\">\n";
	print "<input type=hidden name=type value=fshare>\n";
	print "<td align=right><input type=submit value=$text{'delete'}></td>\n"
		if &can('rw', \%access, $s);
	print "</form> </tr> </table>\n";
	}
else {
	print "<input type=submit value=$text{'create'}> </form>\n";
	}

if ($s) {
	# Icons for other share options
	$us = "share=".&urlize($s);
	local (@url, @text, @icon, $disp);
	if (&can('rs',\%access, $s)) {
		push(@url,  "edit_sec.cgi?$us");
		push(@text, $text{'share_security'});
		push(@icon, "images/icon_2.gif");
		$disp++;
		}
	if (&can('rp',\%access, $s)) {
		push(@url,  "edit_fperm.cgi?$us");
		push(@text, $text{'share_permission'});
		push(@icon, "images/icon_7.gif");
		$disp++;
		}
	if (&can('rn',\%access, $s)) {
		push(@url,  "edit_fname.cgi?$us");
		push(@text, $text{'share_naming'});
		push(@icon, "images/icon_8.gif");
		$disp++;
		}
	if (&can('ro',\%access, $s)) {
		push(@url,  "edit_fmisc.cgi?$us");
		push(@text, $text{'share_misc'});
		push(@icon, "images/icon_4.gif");
		$disp++;
		}
	if ($disp) {
		print "<hr>\n";
		print "<h3>$text{'share_option'}</h3>\n";
		&icons_table(\@url, \@text, \@icon);
		}
	}

print "<hr>\n";
&footer("", $text{'index_sharelist'});

 07070100052213000081e40000000000000002000000013ac0388d00000f5c000000200000000000000000000000000000001b00000003reloc/samba/edit_popts.cgi    #!/usr/local/bin/perl
# edit_popts.cgi
# Edit print-share specific options

require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pvpopt'}")
        unless &can('ro', \%access, $in{'share'});
# display
$s = $in{'share'};
if ($s eq "global") {
	&header($text{'print_title1'}, "");
	}
else {
	&header($text{'print_title2'}, "");
	}
&get_share($s);
print "<hr>\n";

print "<form action=save_popts.cgi>\n";
print "<input type=hidden name=old_name value=\"$s\">\n";

# Printer options
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'print_option'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'print_minspace'}</b></td>\n";
printf "<td><input name=min_print_space size=5 value=\"%d\"></td>\n",
	&getval("min print space");

print "<td><b>$text{'print_postscript'}</b></td>\n";
print "<td>",&yesno_input("postscript"),"</td> </tr>\n";

print "<tr> <td><b>$text{'print_command'}</b></td>\n";
printf "<td colspan=3>\n";
printf "<input type=radio name=print_command_def value=1 %s> $text{'default'}\n",
	&getval("print command") eq "" ? "checked" : "";
printf "&nbsp;&nbsp;<input type=radio name=print_command_def value=0 %s>\n",
	&getval("print command") ne "" ? "checked" : "";
printf "<input name=print_command size=30 value=\"%s\"></td> </tr>\n",
	&getval("print command");

print "<tr> <td><b>$text{'print_queue'}</b></td>\n";
printf "<td colspan=3>\n";
printf "<input type=radio name=lpq_command_def value=1 %s> $text{'default'}\n",
	&getval("lpq command") eq "" ? "checked" : "";
printf "&nbsp;&nbsp;<input type=radio name=lpq_command_def value=0 %s>\n",
	&getval("lpq command") ne "" ? "checked" : "";
printf "<input name=lpq_command size=30 value=\"%s\"></td> </tr>\n",
	&getval("lpq command");

print "<tr> <td><b>$text{'print_delete'}</b></td>\n";
printf "<td colspan=3>\n";
printf "<input type=radio name=lprm_command_def value=1 %s> $text{'default'}\n",
	&getval("lprm command") eq "" ? "checked" : "";
printf "&nbsp;&nbsp;<input type=radio name=lprm_command_def value=0 %s>\n",
	&getval("lprm command") ne "" ? "checked" : "";
printf "<input name=lprm_command size=30 value=\"%s\"></td> </tr>\n",
	&getval("lprm command");

print "<tr> <td><b>$text{'print_pause'}</b></td>\n";
printf "<td colspan=3>\n";
printf "<input type=radio name=lppause_command_def value=1 %s> $text{'config_none'}\n",
	&getval("lppause command") eq "" ? "checked" : "";
printf "&nbsp;&nbsp;<input type=radio name=lppause_command_def value=0 %s>\n",
	&getval("lppause command") ne "" ? "checked" : "";
printf "<input name=lppause_command size=30 value=\"%s\"></td> </tr>\n",
	&getval("lppause command");

print "<tr> <td><b>$text{'print_unresume'}</b></td>\n";
printf "<td colspan=3>\n";
printf "<input type=radio name=lpresume_command_def value=1 %s> $text{'config_none'}\n",
	&getval("lpresume command") eq "" ? "checked" : "";
printf "&nbsp;&nbsp;<input type=radio name=lpresume_command_def value=0 %s>\n",
	&getval("lpresume command") ne "" ? "checked" : "";
printf "<input name=lpresume_command size=30 value=\"%s\"></td> </tr>\n",
	&getval("lpresume command");

print "<tr> <td><b>$text{'print_driver'}</b></td>\n"; 
print "<td colspan=3>\n";
printf "<input type=radio name=printer_driver_def value=1 %s> $text{'config_none'}\n",
	&getval("printer driver") eq "" ? "checked" : "";
printf "&nbsp;&nbsp;<input type=radio name=printer_driver_def value=0 %s>\n",
	&getval("printer driver") ne "" ? "checked" : "";
printf "<input name=printer_driver size=30 value=\"%s\"></td> </tr>\n",
	&getval("printer driver");

print "</table> </td></tr></table><p>\n";
print "<input type=submit value=$text{'save'}>"
	if &can('wO', \%access, $in{'share'}); 
print "</form><p>\n";
print "<hr>\n";
&footer("edit_pshare.cgi?share=".&urlize($s), $text{'index_printershare'});

07070100052214000081e40000000000000002000000013ac0388d00001135000000200000000000000000000000000000001c00000003reloc/samba/edit_pshare.cgi   #!/usr/local/bin/perl
# edit_pshare.cgi
# Display a form for editing or creating a new printer share

require './samba-lib.pl';
&ReadParse();
$s = $in{'share'};
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if(!$s) {
	&error("$text{'eacl_np'} $text{'eacl_pcps'}")
        unless $access{'c_ps'};
	}
else {
	&error("$text{'eacl_np'} $text{'eacl_paps'}")
        unless &can('r', \%access, $in{'share'});
	}
# display
if ($s) {
	&header($s eq 'global' ? $text{'pshare_title1'} : $text{'pshare_title2'}, "");
	&get_share($s);
	}
else {
	&header($text{'pshare_title3'}, "");
	}
print "<hr>\n";

print "<form action=save_pshare.cgi>\n";
if ($s) { print "<input type=hidden name=old_name value=\"$s\">\n"; }

# Vital share options..
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'pshare_info'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";
if ($s ne "global") {
	if ($copy = &getval("copy")) {
		print "<tr> <td colspan=4><b>", &text('share_copy',$copy),"</b></td> </tr>\n";
		}
	print "<tr> <td><b>$text{'pshare_name'}</b></td>\n";
	printf "<td colspan=3><input type=radio name=printers value=0 %s>\n",
		$s eq "printers" ? "" : "checked";
	printf "<input size=10 name=share value=\"%s\">&nbsp;&nbsp;&nbsp;\n",
		$s eq "printers" ? "" : $s;
	printf "<input type=radio name=printers value=1 %s> $text{'pshare_all'}\n",
		$s eq "printers" ? "checked" : "";
	print "</td> </tr>\n";
	}

print "<tr> <td><b>$text{'pshare_unixprn'}</b></td>\n";
if (&foreign_check("lpadmin")) {
	&foreign_require("lpadmin", "lpadmin-lib.pl");
	@plist = &foreign_call("lpadmin", "list_printers");
	}
elsif ($config{'list_printers_command'}) {
	@plist = split(/\s+/ , `$config{'list_printers_command'}`);
	}
if (@plist) {
	print "<td><select name=printer>\n";
	printf "<option value=\"\" %s> %s\n",
		&getval("printer") eq "" ? "checked" : "",
		$s eq "global" ? $text{'config_none'} : $text{'default'};
	foreach $p (@plist) {
		printf "<option value=\"$p\" %s> $p\n",
			$p eq &getval("printer") ? "selected" : "";
		}
	print "</select></td>\n";
	}
else {
	print "<td><input name=printer size=8></td>\n";
	}

print "<td><b>$text{'pshare_spool'}</b></td>\n";
printf "<td><input name=path size=35 value=\"%s\">\n",
	&getval("path");
print &file_chooser_button("path", 1);
print "</td> </tr>\n";

print "<tr> <td><b>$text{'share_available'}</b></td>\n";
print "<td>",&yesno_input("available"),"</td>\n";

print "<td><b>$text{'share_browseable'}</b></td>\n";
print "<td>",&yesno_input("browseable"),"</td> </tr>\n";

print "<td align=right><b>$text{'share_comment'}</b></td>\n";
printf "<td colspan=3 align=left>\n";
printf "<input size=40 name=comment value=\"%s\"></td> </tr>\n",
	&getval("comment");

print "</table> </td></tr></table><p>\n";

if ($s eq "global") {
	print "<input type=submit value=$text{'save'}> </form><p>\n";
	}
elsif ($s) {
	print "<table width=100%> <tr>\n";
	print "<td align=left><input type=submit value=$text{'save'}></td>\n"
		if &can('rw', \%access, $s);
	print "</form><form action=view_users.cgi>\n";
	print "<input type=hidden name=share value=\"$s\">\n";
	print "<input type=hidden name=printer value=1>\n";
	print "<td align=center><input type=submit value=\"$text{'index_view'}\"></td>\n"
		if &can('rv', \%access, $s);
	print "</form><form action=delete_share.cgi>\n";
	print "<input type=hidden name=share value=\"$s\">\n";
	print "<input type=hidden name=type value=pshare>\n";
	print "<td align=right><input type=submit value=$text{'delete'}></td>\n"
		if &can('rw', \%access, $s);
	print "</form> </tr> </table> <p>\n";
	}
else {
	print "<input type=submit value=$text{'create'}> </form><p>\n";
	}

if ($s) {
	# Icons for other share options
    $us = "share=".&urlize($s);
    local (@url, @text, @icon, $disp);
    if (&can('rs',\%access, $s)) {
        push(@url,  "edit_sec.cgi?$us");
        push(@text, $text{'share_security'});
        push(@icon, "images/icon_2.gif");
        $disp++;
        }
    if (&can('ro',\%access, $s)) {
        push(@url,  "edit_popts.cgi?$us");
        push(@text, $text{'print_option'});
        push(@icon, "images/icon_3.gif");
        $disp++;
        }
    if ($disp) {
        print "<hr>\n";
        print "<h3>$text{'share_option'}</h3>\n";
        &icons_table(\@url, \@text, \@icon);
        }
	}

print "<hr>\n";
&footer("", $text{'index_sharelist'});
   07070100052215000081e40000000000000002000000013ac0388d00001690000000200000000000000000000000000000001900000003reloc/samba/edit_sec.cgi  #!/usr/local/bin/perl
# edit_sec.cgi
# Edit security options for some file or print share

require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pvsec'}")
        unless &can('rs', \%access, $in{'share'});
# display
$s = $in{'share'};
if ($s eq "global") {
	&header($text{'sec_index1'}, "");
	}
else {
	&header($text{'sec_index2'}, "");
	print "<center><font size=+1>",&text('fmisc_for', $s), "</font></center>\n";
	}
&get_share($s);
print "<hr>\n";

print "<form action=save_sec.cgi>\n";
print "<input type=hidden name=old_name value=\"$s\">\n";

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'share_security'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td align=right><b>$text{'sec_writable'}</b></td>\n";
print "<td>",&yesno_input("writable"),"</td>\n";

print "<td align=right><b>$text{'sec_guest'}</b></td>\n";
printf "<td><input type=radio name=guest value=0 %s> $text{'config_none'}\n",
	&istrue("public") ? "" : "checked";
printf "<input type=radio name=guest value=1 %s> $text{'yes'}\n",
	&istrue("public") && !&istrue("guest only") ? "checked" : "";
printf "<input type=radio name=guest value=2 %s> $text{'sec_guestonly'}</td> </tr>\n",
	&istrue("public") && &istrue("guest only") ? "checked" : "";

print "<tr> <td align=right><b>$text{'sec_guestaccount'}</b></td>\n";
&username_input("guest account", "Default");

print "<td align=right><b>$text{'sec_limit'}</b></td>\n";
print "<td>",&yesno_input("only user"),"</td> </tr>\n";

print "<tr> <td align=right><b>$text{'sec_allowhost'}</b></td>\n";
printf "<td colspan=3><input type=radio name=allow_hosts_all value=1 %s> $text{'config_all'}\n",
	&getval("allow hosts") eq "" ? "checked" : "";
print "&nbsp;&nbsp;\n";
printf "<input type=radio name=allow_hosts_all value=0 %s> $text{'sec_onlyallow'}:\n",
	&getval("allow hosts") eq "" ? "" : "checked";
printf "<input name=allow_hosts size=35 value=\"%s\"></td> </tr>\n",
	&getval("allow hosts");

print "<tr> <td align=right><b>$text{'sec_denyhost'}</b></td>\n";
printf "<td colspan=3><input type=radio name=deny_hosts_all value=1 %s> $text{'config_none'}\n",
	&getval("deny hosts") eq "" ? "checked" : "";
print "&nbsp;&nbsp;\n";
printf "<input type=radio name=deny_hosts_all value=0 %s> $text{'sec_onlydeny'}:\n",
	&getval("deny hosts") eq "" ? "" : "checked";
printf "<input name=deny_hosts size=35 value=\"%s\"></td> </tr>\n",
	&getval("deny hosts");

print "<tr> <td align=right><b>$text{'sec_revalidate'}</b></td>\n";
print "<td>",&yesno_input("revalidate"),"</td> </tr>\n";

@valid_users = split(/\s*,\s*/, &getval("valid users"));
print "<tr> <td align=right><b>$text{'sec_validuser'}</b></td> <td colspan=3>\n";
printf "<input name=valid_users_u size=40 value=\"%s\"> %s</td> </tr>\n",
	join(' ', grep { !/^@/ } @valid_users),
	&user_chooser_button("valid_users_u", 1);
print "<tr> <td align=right><b>$text{'sec_validgroup'}</b></td> <td colspan=3>\n";
printf "<input name=valid_users_g size=40 value=\"%s\"> %s</td> </tr>\n",
	join(' ', map { s/@//;$_ } grep { /^@/ } @valid_users),
	&group_chooser_button("valid_users_g", 1);

@invalid_users = split(/\s*,\s*/, &getval("invalid users"));
print "<tr> <td align=right><b>$text{'sec_invaliduser'}</b></td> <td colspan=3>\n";
printf "<input name=invalid_users_u size=40 value=\"%s\"> %s</td> </tr>\n",
	join(' ', grep { !/^@/ } @invalid_users),
	&user_chooser_button("invalid_users_u", 1);
print "<tr> <td align=right><b>$text{'sec_invalidgroup'}</b></td> <td colspan=3>\n";
printf "<input name=invalid_users_g size=40 value=\"%s\"> %s</td> </tr>\n",
	join(' ', map { s/@//;$_ } grep { /^@/ } @invalid_users),
	&group_chooser_button("invalid_users_g", 1);

print "<tr> <td colspan=4><hr></td> </tr>\n";

@user = split(/\s*,\s*/, &getval("user"));
print "<tr> <td align=right><b>$text{'sec_possibleuser'}</b></td> <td>\n";
printf "<input name=user_u size=20 value=\"%s\"> %s</td>\n",
	join(' ', grep { !/^@/ } @user),
	&user_chooser_button("user_u", 1);
print "<td align=right><b>$text{'sec_possiblegroup'}</b></td> <td colspan=3>\n";
printf "<input name=user_g size=20 value=\"%s\"> %s</td> </tr>\n",
	join(' ', map { s/@//;$_ } grep { /^@/ } @user),
	&group_chooser_button("user_g", 1);

@read_list = split(/\s*,\s*/, &getval("read list"));
print "<tr> <td align=right><b>$text{'sec_rouser'}</b></td> <td>\n";
printf "<input name=read_list_u size=20 value=\"%s\"> %s</td>\n",
	join(' ', grep { !/^@/ } @read_list),
	&user_chooser_button("read_list_u", 1);
print "<td align=right><b>$text{'sec_rogroup'}</b></td> <td colspan=3>\n";
printf "<input name=read_list_g size=20 value=\"%s\"> %s</td> </tr>\n",
	join(' ', map { s/@//;$_ } grep { /^@/ } @read_list),
	&group_chooser_button("read_list_g", 1);

@write_list = split(/\s*,\s*/, &getval("write list"));
print "<tr> <td align=right><b>$text{'sec_rwuser'}</b></td> <td>\n";
printf "<input name=write_list_u size=20 value=\"%s\"> %s</td>\n",
	join(' ', grep { !/^@/ } @write_list),
	&user_chooser_button("write_list_u", 1);
print "<td align=right><b>$text{'sec_rwgroup'}</b></td> <td>\n";
printf "<input name=write_list_g size=20 value=\"%s\"> %s</td> </tr>\n",
	join(' ', map { s/@//;$_ } grep { /^@/ } @write_list),
	&group_chooser_button("write_list_g", 1);

print "</table><table border width=100%>\n";

print "</table> </td></tr></table><p>\n";
print "<input type=submit value=$text{'save'}>" 
	if &can('wS', \%access, $in{'share'});
print "</form>\n";
print "<hr>\n";
if (&istrue("printable"))
	{ &footer("edit_pshare.cgi?share=".&urlize($s), $text{'index_printershare'}); }
else
	{ &footer("edit_fshare.cgi?share=".&urlize($s), $text{'index_fileshare'}); }

07070100052216000081e40000000000000002000000013ac0388d000003e7000000200000000000000000000000000000001a00000003reloc/samba/edit_sync.cgi #!/usr/local/bin/perl
# edit_sync.cgi
# Allow the user to edit auto updating of Samba accounts by useradmin

require './samba-lib.pl';
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pmsync'}")
        unless $access{'maint_sync'};
# display
&header($text{'esync_title'}, "");
print "<hr>\n";

print $text{'esync_msg'}, "<p>\n";

print "<form action=save_sync.cgi>\n";
printf "<input type=checkbox name=add value=1 %s>\n",
	$config{'sync_add'} ? "checked" : "";
print "$text{'esync_add'}<p>\n";

printf "<input type=checkbox name=change value=1 %s>\n",
	$config{'sync_change'} ? "checked" : "";
print "$text{'esync_chg'}<p>\n";

printf "<input type=checkbox name=delete value=1 %s>\n",
	$config{'sync_delete'} ? "checked" : "";
print "$text{'esync_del'}<p>\n";
print "<input type=submit value=\"", $text{'esync_apply'}, "\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_sharelist'});

 07070100053b1a000041ed0000000000000001000000023ac03c5a00000000000000200000000000000000000000000000001100000003reloc/samba/help  07070100053b1b000081a40000000000000002000000013ac0388d000023a3000000200000000000000000000000000000001e00000003reloc/samba/help/help.es.html <body bgcolor=#ffffff>
<title>Gestor de Samba</title>
<center><img src="images/samba.gif"></center><br>
<h2><i>Esta p醙ina de ayuda est incompleta</i></h2>
<hr>
<h3>Introducci髇</h3>
Samba es un programa de uso libre que permite que PCs ejecutando Windows
95 y NT accedan a archivos e impresoras de tu sistema Unix como su 閟te
fuera un servidor de archivos/impresoras de Windows. Algunos sistemas Unix
como Redhat Linux incluyen Samba como parte de la instalaci髇 est醤dar,
mientras que otros requieren que lo descargues e instales de forma separada. <p>

Si no tienes Samba instalado en tu sistema, la p醙ina principal de m骴ulo
se quejar de que no puede encontrar el archivo de configuraci髇 de Samba y
te ser imposible el compartir tus archivos o directorios. Si realmente
tienes instalado Samba pero te da este mensaje de error, revisa la
<a href="/config.cgi?samba">configuraci髇 del m骴ulo</a> para asegurarte de
que Webmin est mirando en el lugar correcto para buscar el archivo de
configuraci髇 y los programas de Samba. <p>

Asumiento que Samba est instalado de forma correcta, la p醙ina principal
del m骴ulo mostrar una lista de todas las comparticiones de archivo e
impresora definidas en tu sistema. Si Webmin determina que el ervidor
Samba no est ejecutando, tendr醩 la posibilidad de intentar arrancar el
servidor. Esto puede ser necesario si Samba no se arranc con el Sistema. <p>

<hr>
<h3>Creando una Compartici髇 Samba</h3>
A Samba file share is a directory that can be mounted by client PC's. Every
share has a short name such as <tt>docs</tt> or <tt>www</tt>, which maps
to some directory on your Unix system. A share is typically referred to
by a client using the <tt>\\server\share</tt> notation. <p>

To create a share, click on the <tt>Create File Share</tt> link below
the list of existing shares on the main page. This will display a form
allowing you to enter the details of the new share. Although Samba
supports a large number of parameters for each share, the most important
ones are:<p>
<table border width=100%>
<tr> <td><b>Share Name</b></td>
<td>Every share must have a name, used by clients to refer to it. One
special case is the <tt>All home directories</tt> share, explained later.
</td> </tr>
<tr> <td><b>Path</b></td>
<td>The directory to be shared. Clients using this share can only access
files in or below this directory.</td> </tr>
<tr> <td><b>Writable</b></td>
<td>Determines whether clients can write to files and directories in
this share.</td> </tr>
<tr> <td><b>Guest access</b></td>
<td>If a share allows guest users, clients can access it without needing to
provide a valid name and password. A share can either disallow guest users,
allow guests and normal users, or allow guests only.</td></tr>
</table>
For information about other share options, see the <b>Advanced Options</b>
section below. <p>

Once you have entered the details of a new share and clicked the
<tt>Create</tt> button, it will be immediately available to client PC's.
Assuming everything is set up correctly on your network, users will be
able to use the <tt>Network Neighbourhood</tt> function under Windows
to see your server and all its shares. The newly created share can then
be mapped to a drive letter on the PC. <p>

<hr>
<h3>Creating a Printer Share</h3>
A Samba printer share is a local or remote Unix printer that you want
to make available to PC clients. Like file shares, every printer share
has a short name (like <tt>hp5si</tt>), and is referred to using the
<tt>\\server\share</tt> notation. <p>

To create a new printer share, click on the <tt>Create Printer Share</tt>
like from the main page. This will display a form similar to the one
used for creating file shares, in which you can enter the details of the
new share. The most important options for a new printer share are :<p>
<table border width=100%>
<tr> <td><b>Share Name</b></td>
<td>Every share must have a name, used by clients to refer to it. One
special case is the <tt>All printers</tt> share, explained later.
</td> </tr>
<tr> <td><b>Printer</b></td>
<td>The Unix printer to be shared. This can be any printer that you would
print to using the <tt>lpr</tt> command.</td> </tr>
<tr> <td><b>Path</b></td>
<td>The directory in which temporary print files </td> </tr>
<tr> <td><b>Guest access</b></td>
<td>If a share allows guest users, clients can access it without needing to
provide a valid name and password. A share can either disallow guest users,
allow guests and normal users, or allow guests only.</td></tr>
<tr> <td><b>Printer type</b></td>
<td>The name of the printer driver that should be used for this printer.
If you enter a value for this option and it matches a printer drive on
client PCs, then users will not have to choose a printer driver when adding
this printer.</td> </tr>
</table><p>

As with file shares, many more options are available for print shares.
As soon as a printer share is added, it will be available to clients.
Under Windows 95 and NT, a printer can be added using the <tt>Add Printer</tt> option in the printers control panel. Once added, the user
can print to it like any local or network printer. <p>

<hr>
<h3>Creating a Copy</h3>


<hr>
<h3>Editing a Share</h3>
To edit an existing share, click on its name from the list of shares on
the main page. This will display the same form used for creating a share,
allowing you to modify all options and parameters. To save your changes,
click on the <tt>Apply</tt> button at the bottom-left of the page. <p>

To delete a share, click on the <tt>Delete</tt> button at the bottom-right
of the page. Existing users will not be immediately disconnected - however,
no new users will be able to connect to the share. <p>


<hr>
<h3>Users and Security</h3>
For shares that do not allow guest access, Samba expects the client
to provide a username and password. Typically, these are checked against
the Unix user list which can be updated by the <a href=/useradmin/>User
Manager</a> module. Samba can also keep its own username and password list -
see the <b>Encrypted Passwords</b> section for more details. <p>

Some versions of Windows do not allow the user to provide a username when accessing a share - instead, the username provided when 'logging in' to
Windows is used. If all client users login to Windows using the same
username that they use for Unix, then this is not a problem. If not, you
have 2 options:
<ol>
<li>Windows 95 and NT can mount a share manually, either by typing
    <tt>net use <i>drive:</i> <i>share</i></tt> at the command prompt or by
    clicking the map network drive button in a file window and entering
    the share path. In both cases, the share can be in the format
    <tt>\\server\share%user</tt>, where <i>user</i> is the username to
    login to the server with. <p>
<li>Samba can be configured to attempt to match the password provided
    against a list of users, in order to find the correct username. 
    The <tt>Unix users</tt> share option allows you to specify the users
    or groups of users to check against. Beware that using this option
    with a large number of users is not very secure, because 2 people may
    have the same password. <p>
</ul>

<hr>
<h3>Encrypted Passwords</h3>
Normally, passwords sent over the network between a Samba server and PC
clients are not encrypted. This is bad for 2 reasons :
<ol>
<li>Anyone can listen in on your network and capture other people's
    passwords. <br>
<li>The latest versions on Windows 9x and NT refuse to send passwords
    unencrypted. Users trying to access your Samba server from these
    systems will get an error message like <tt>???</tt>. This change
    first appeared in NT service pack 3. <br>
</ol><p>

Fortunately, Samba can use encrypted passwords. However, it is not
possible to match passwords sent by clients against the normal Unix
password file because of the different forms of encryption used. For this
reason, Samba must maintain its own list of users and passwords. <p>

To switch Samba into encrypted password mode, you must:
<ol>
<li>Make sure your version of Samba supports password encryption. In
    the <tt>Password Options</tt> page, set the <tt>Encrypted
    passwords</tt> option to yes. If this fails, you will need to download
    or compile a version with encrypted password support. <p>
<li>Click on the <tt>Convert Unix users to Samba users</tt> link at the
    bottom of the main page. This will take you to a page in which you
    can convert some or all of your existing Unix users to Samba users.
    Usernames, real names, UIDs and shells will be converted - but
    passwords will not. <p>
<li>To assign passwords to users, use the <tt>Edit Samba user list</tt>
    option on the main page. This will display a list of all Samba users,
    from which you can choose a user to edit. The password for each user
    can either be <tt>Locked</tt> (no login allowed), <tt>No Password</tt>
    (no password needed) or some password that you enter. <p>
</ul>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Return to module</a><p>
 

 07070100053b1c000081a40000000000000002000000013ac0388d0000230f000000200000000000000000000000000000001b00000003reloc/samba/help/help.html    <body bgcolor=#ffffff>
<title>Samba Manager</title>
<center><img src="images/samba.gif"></center><br>
<h2><i>This help page is incomplete</i></h2>
<hr>
<h3>Introduction</h3>
Samba is a freeware program that allows PC's running Windows 95 and NT
to access files and printers on your Unix system, as though it is a
Windows file/print server. Some Unix systems such as Redhat Linux include
Samba as part of the standard installation, while most others require you
to download and install it separately. <p>

If you don't have Samba installed on your system, the module's main
page will complain that it cannot find the Samba configuration file and
you will be unable to share any files or directories. If you do have
Samba installed but are getting this error message, check the 
<a href="/config.cgi?samba">module configuration</a> to make sure that
Webmin is looking in the right place for the configuration file and
Samba programs. <p>

Assuming Samba is installed properly, the module's main page will
display a list of all the file and printer shares defined on your system.
If Webmin determines that the Samba server is not running, you will be
given the option of attempting to start the server. This may be necessary
if Samba is not started at bootup time. <p>

<hr>
<h3>Creating a File Share</h3>
A Samba file share is a directory that can be mounted by client PC's. Every
share has a short name such as <tt>docs</tt> or <tt>www</tt>, which maps
to some directory on your Unix system. A share is typically referred to
by a client using the <tt>\\server\share</tt> notation. <p>

To create a share, click on the <tt>Create File Share</tt> link below
the list of existing shares on the main page. This will display a form
allowing you to enter the details of the new share. Although Samba
supports a large number of parameters for each share, the most important
ones are:<p>
<table border width=100%>
<tr> <td><b>Share Name</b></td>
<td>Every share must have a name, used by clients to refer to it. One
special case is the <tt>All home directories</tt> share, explained later.
</td> </tr>
<tr> <td><b>Path</b></td>
<td>The directory to be shared. Clients using this share can only access
files in or below this directory.</td> </tr>
<tr> <td><b>Writable</b></td>
<td>Determines whether clients can write to files and directories in
this share.</td> </tr>
<tr> <td><b>Guest access</b></td>
<td>If a share allows guest users, clients can access it without needing to
provide a valid name and password. A share can either disallow guest users,
allow guests and normal users, or allow guests only.</td></tr>
</table>
For information about other share options, see the <b>Advanced Options</b>
section below. <p>

Once you have entered the details of a new share and clicked the
<tt>Create</tt> button, it will be immediately available to client PC's.
Assuming everything is set up correctly on your network, users will be
able to use the <tt>Network Neighbourhood</tt> function under Windows
to see your server and all its shares. The newly created share can then
be mapped to a drive letter on the PC. <p>

<hr>
<h3>Creating a Printer Share</h3>
A Samba printer share is a local or remote Unix printer that you want
to make available to PC clients. Like file shares, every printer share
has a short name (like <tt>hp5si</tt>), and is referred to using the
<tt>\\server\share</tt> notation. <p>

To create a new printer share, click on the <tt>Create Printer Share</tt>
like from the main page. This will display a form similar to the one
used for creating file shares, in which you can enter the details of the
new share. The most important options for a new printer share are :<p>
<table border width=100%>
<tr> <td><b>Share Name</b></td>
<td>Every share must have a name, used by clients to refer to it. One
special case is the <tt>All printers</tt> share, explained later.
</td> </tr>
<tr> <td><b>Printer</b></td>
<td>The Unix printer to be shared. This can be any printer that you would
print to using the <tt>lpr</tt> command.</td> </tr>
<tr> <td><b>Path</b></td>
<td>The directory in which temporary print files </td> </tr>
<tr> <td><b>Guest access</b></td>
<td>If a share allows guest users, clients can access it without needing to
provide a valid name and password. A share can either disallow guest users,
allow guests and normal users, or allow guests only.</td></tr>
<tr> <td><b>Printer type</b></td>
<td>The name of the printer driver that should be used for this printer.
If you enter a value for this option and it matches a printer drive on
client PCs, then users will not have to choose a printer driver when adding
this printer.</td> </tr>
</table><p>

As with file shares, many more options are available for print shares.
As soon as a printer share is added, it will be available to clients.
Under Windows 95 and NT, a printer can be added using the <tt>Add Printer</tt> option in the printers control panel. Once added, the user
can print to it like any local or network printer. <p>

<hr>
<h3>Creating a Copy</h3>


<hr>
<h3>Editing a Share</h3>
To edit an existing share, click on its name from the list of shares on
the main page. This will display the same form used for creating a share,
allowing you to modify all options and parameters. To save your changes,
click on the <tt>Apply</tt> button at the bottom-left of the page. <p>

To delete a share, click on the <tt>Delete</tt> button at the bottom-right
of the page. Existing users will not be immediately disconnected - however,
no new users will be able to connect to the share. <p>


<hr>
<h3>Users and Security</h3>
For shares that do not allow guest access, Samba expects the client
to provide a username and password. Typically, these are checked against
the Unix user list which can be updated by the <a href=/useradmin/>User
Manager</a> module. Samba can also keep its own username and password list -
see the <b>Encrypted Passwords</b> section for more details. <p>

Some versions of Windows do not allow the user to provide a username when accessing a share - instead, the username provided when 'logging in' to
Windows is used. If all client users login to Windows using the same
username that they use for Unix, then this is not a problem. If not, you
have 2 options:
<ol>
<li>Windows 95 and NT can mount a share manually, either by typing
    <tt>net use <i>drive:</i> <i>share</i></tt> at the command prompt or by
    clicking the map network drive button in a file window and entering
    the share path. In both cases, the share can be in the format
    <tt>\\server\share%user</tt>, where <i>user</i> is the username to
    login to the server with. <p>
<li>Samba can be configured to attempt to match the password provided
    against a list of users, in order to find the correct username. 
    The <tt>Unix users</tt> share option allows you to specify the users
    or groups of users to check against. Beware that using this option
    with a large number of users is not very secure, because 2 people may
    have the same password. <p>
</ul>

<hr>
<h3>Encrypted Passwords</h3>
Normally, passwords sent over the network between a Samba server and PC
clients are not encrypted. This is bad for 2 reasons :
<ol>
<li>Anyone can listen in on your network and capture other people's
    passwords. <br>
<li>The latest versions on Windows 9x and NT refuse to send passwords
    unencrypted. Users trying to access your Samba server from these
    systems will get an error message like <tt>???</tt>. This change
    first appeared in NT service pack 3. <br>
</ol><p>

Fortunately, Samba can use encrypted passwords. However, it is not
possible to match passwords sent by clients against the normal Unix
password file because of the different forms of encryption used. For this
reason, Samba must maintain its own list of users and passwords. <p>

To switch Samba into encrypted password mode, you must:
<ol>
<li>Make sure your version of Samba supports password encryption. In
    the <tt>Password Options</tt> page, set the <tt>Encrypted
    passwords</tt> option to yes. If this fails, you will need to download
    or compile a version with encrypted password support. <p>
<li>Click on the <tt>Convert Unix users to Samba users</tt> link at the
    bottom of the main page. This will take you to a page in which you
    can convert some or all of your existing Unix users to Samba users.
    Usernames, real names, UIDs and shells will be converted - but
    passwords will not. <p>
<li>To assign passwords to users, use the <tt>Edit Samba user list</tt>
    option on the main page. This will display a list of all Samba users,
    from which you can choose a user to edit. The password for each user
    can either be <tt>Locked</tt> (no login allowed), <tt>No Password</tt>
    (no password needed) or some password that you enter. <p>
</ul>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Return to module</a><p>
 

 07070100053b1d000081a40000000000000002000000013ac0388d000023f5000000200000000000000000000000000000001e00000003reloc/samba/help/help.sv.html <body bgcolor=#ffffff>
<title>Samba-hanteraren</title>
<center><img src="images/samba.gif"></center>
<h2><i>Denna hj鋖psida 鋜 inte f鋜dig</i></h2>
<hr>
<h3>Introduktion</h3>
Samba 鋜 ett freeware-program som g鰎 att PC med Windows 95 och NT ska
kunna komma 錿 filer och skrivare p ett Unix-system som om den vore en
Windows-fil/skrivarserver. I en del Unix-system, t ex RedHat Linux, f鰈jer
Samba med i standardinstallationen, medan de flesta system kr鋠er att man
ladder ned och installerar det separat.

<p>Om Samba inte finns installerat p ditt system kommer startsidan f鰎
denna modul att inneh錶la ett felmeddelande som inneb鋜 att systemet inte
kan hitta inst鋖lningsfilen f鰎 Samba, och det kommer inte att g att
dela n錱ra filer och kataloger. Om Samba 鋜 installerat
och du 鋘d f錼 detta felmeddelande b鰎 du kontrollera
<a href="/config.cgi?samba">modulinst鋖lningarna</a> s att Webmin letar
p r鋞t st鋖le efter inst鋖lningsfilen och Samba-program.

<p>Om Samba 鋜 ordentligt installerat kommer startsidan att inneh錶la en
lista 鰒er alla fil- och skrivarresurser p systemet. Om Webmin har
uppt鋍kt att Samba-servern inte 鋜 ig錸g finns det ocks m鰆lighet att
starta servern via startsidan. Detta kan beh鰒a g鰎as om Samba inte startar
vid systemstart.

<hr>
<h3>Skapa en filresurs</h3>
En filresurs i Samba 鋜 en katalog som kan monteras av klient-PC. Varje
resurs har ett kortnamn, t ex <tt>docs</tt> eller <tt>www</tt>, som
motsvarar en katalog p Unix-systemet. Klienten anv鋘der normalt notationen
<tt>\\server\resurs</tt> f鰎 att komma 錿 resursen.

<p>Klicka p <tt>Skapa filresurs</tt> nedanf鰎 listan 鰒er befintliga
resurser f鰎 att skapa en ny filresurs. Du f錼 d upp ett formul鋜 d鋜
uppgifter om den nya resursen kan skrivas in. Samba st鰀jer en stor
m鋘gd inst鋖lningar, men de viktigaste 鋜:

<table border width=100%>
<tr> <td><b>Resursnamn</b></td>
<td>Varje resurs m錽te ha ett namn som klienterna anv鋘der f鰎 att komma
錿 den. Ett specialfall 鋜 resursen <tt>Alla hemkataloger</tt> som f鰎klaras
senare.
</td> </tr>
<tr> <td><b>S鰇v鋑</b></td>
<td>Katalogen som utg鰎 resursen. Klienter som anv鋘der resursen kan endast
komma 錿 filer i eller under katalogen.</td> </tr>
<tr> <td><b>謕pna f鰎 skrivning</b></td>
<td>H鋜 best鋗mer man om klienter f錼 skriva i filer och kataloger i denna
resurs.</td> </tr>
<tr> <td><b>舤komst f鰎 g鋝ter</b></td>
<td>Om man till錿er g鋝tanv鋘dare f鰎 en resurs kan klienterna komma 錿 den
utan att ange n錱ot l鰏enord. Man kan v鋖ja att inte till錿a g鋝tanv鋘dare,
till錿a b錮e g鋝t- och vanliga anv鋘dare eller att till錿a endast
g鋝tanv鋘dare.</td></tr>
</table>
Information om 鰒riga resursinst鋖lningar finns i avsnittet <b>Ytterligare
inst鋖lningar</b> nedan.

<p>N鋜 man har skrivit in uppgifter om den nya resursen trycker man p
<tt>Skapa</tt>. Resursen kommer direkt att bli tillg鋘glig f鰎 klienterna.
Om allt 鋜 uppsatt ordentligt p ens n鋞verk kommer anv鋘darna att kunna
anv鋘da funktionen <tt>N鋞verksomgivning</tt> under Windows f鰎 att se
servern och alla dess resurser. Den nyss skapade resurser kan d tilldelas
en enhetsbokstav p PC:n.

<hr>
<h3>Skapa en skrivarresurs</h3>
En skrivarresurs i Samba 鋜 en lokal eller annan Unix-skrivare som man vill
ska vara tillg鋘glig 鋠en f鰎 PC-klienter. Precis som f鰎 filresurser har
varje skrivarresurs ett kortnamn ( <tt>hp5si</tt>) och klienterna kommer
錿 den med hj鋖p av notationen <tt>\\server\resurs</tt>.

<p>Man klickar p l鋘ken <tt>Skapa skrivarresurs</tt> f鰎 att skapa en ny
skrivarresurs och f錼 d upp ett liknande formul鋜 som n鋜 man skapar
filresurser. D鋜 skriver man in uppgifter om den nya resursern. De viktigaste
inst鋖lningarna f鰎 en skrivarresurs 鋜:
<table border width=100%>
<tr> <td><b>Resursnamn</b></td>
<td>Varje resurs m錽te ha ett namn som klienter anv鋘der f鰎 att komma 錿 den.
Ett specialfall 鋜 resursen <tt>Alla skrivare</tt> som f鰎klaras senare.
</td> </tr>
<tr> <td><b>Skrivare</b></td>
<td>Den Unix-skrivare som utg鰎 resursen. Det kan vara vilken skrivare som
helst, som man kan skriva till med kommandot <tt>lpr</tt>.</td> </tr>
<tr> <td><b>S鰇v鋑</b></td>
<td>Katalog f鰎 tempor鋜a skrivarfiler.</td> </tr>
<tr> <td><b>G鋝t錿komst</b></td>
<td>Om man till錿er g鋝tanv鋘dare f鰎 en resurs kan klienterna komma 錿 den
utan att ange n錱ot l鰏enord. Man kan v鋖ja att inte till錿a g鋝tanv鋘dare,
till錿a b錮e g鋝t- och vanliga anv鋘dare eller att till錿a endast
g鋝tanv鋘dare.</td></tr>
<tr> <td><b>Skrivartyp</b></td>
<td>Namn p den skrivardrivrutin som ska anv鋘das. Om man skriver in ett
namn som motsvarar en skrivardrivrutin p klienterna kommer anv鋘darna inte
att beh鰒a v鋖ja skrivardrivrutin n鋜 denna skrivare l鋑gs till.</td> </tr>
</table>

<p>Precis som f鰎 filresurser kan man g鰎a m錸ga fler inst鋖lningar.
S fort en skrivarresurs skapats blir den tillg鋘glig f鰎 klienterna.
Under Windows 95 och NT kan man l鋑ga till en skrivare med inst鋖lningen
<tt>Add Printer</tt> p skrivarkontrollpanelen. N鋜 skrivaren v鋖 lagts till
kan anv鋘daren skriva ut p den som p vilken annan n鋞verks- eller lokal
skrivare som helst.

<hr>
<h3>Skapa en kopia</h3>


<hr>
<h3>膎dra resurs</h3>
Man klickar p ett resursnamn i listan f鰎 att 鋘dra uppgifter om den, och
f錼 d upp samma formul鋜 som n鋜 resurser skapas. Man skriver in de 鋘dringar
man vill g鰎a och trycker sedan p <tt>Spara</tt> l鋘gst ned till v鋘ster.

<p>Man trycker p <tt>Ta bort</tt> l鋘gst ned till h鰃er f鰎 att ta bort
en resurs. De anv鋘dare som f鰎 tillf鋖let anv鋘der resursen kommer inte att
kastas ut, men det g錼 inte att g鰎a nya uppkopplingar.

<hr>
<h3>Anv鋘dare och s鋕erhet</h3>
F鰎 resurser d鋜 g鋝tanv鋘dare inte till錿s kommer Samba att beg鋜a att
klienten skickar ett anv鋘darnamn och ett l鰏enord. Vanligen kontrolleras
dessa mot Unix-anv鋘darlistan, som h錶ls  jour med modulen
<a href=/useradmin/>Anv鋘darhanteraren</a>. Samba kan ocks underh錶la en
egen lista med anv鋘darnamn och l鰏enord; se avsnittet <b>Krypterade
l鰏enord</b> f鰎 mer information.

<p>En del Windows-versioner till錿er inte att anv鋘daren anger ett anv鋘darnamn
d en resurs efterfr錱as, utan anv鋘der ist鋖let det namn som angavs d
anv鋘daren "loggade in" p Windows. Om samma anv鋘darnamn anv鋘ds b錮e p
Windows och Unix 鋜 detta inte ett problem. Om s inte 鋜 fallet finns det
tv alternativ:
<ol>
<li>Windows 95 och NT kan montera resurser manuellt genom att man skriver
    <tt>net use <i>drive:</i> <i>resurs</i></tt> vid kommandoprompten eller
    att man trycker p n鋞verksknappen i ett filf鰊ster och skriver in
    s鰇v鋑en f鰎 resursen. F鰎 b錮a dessa s鋞t g鋖ler att resursen skrivs
    p formen <tt>\\server\resurs%anv鋘dare</tt>, d鋜 <i>anv鋘dare</i> 鋜 det
    anv鋘darnamn man vill anv鋘da f鰎 att logga in p servern.
<li>Samba kan st鋖las in f鰎 att s鰇a efter den anv鋘dare som h鰎 till det
    l鰏enord som anges. Alternativet <tt>Unix-anv鋘dare</tt> inneb鋜 att
    man kan ange de anv鋘dare eller grupper som ska s鰇as igenom. Observera
    att detta inte 鋜 s鋜skilt s鋕ert om antalet anv鋘dare som ska s鰇as
    igenom blir stort, eftersom det d 鋜 stor risk att flera anv鋘dare har
    samma l鰏enord.
</ul>

<hr>
<h3>Krypterade l鰏enord</h3>
Vanligtvis skickas l鰏enord okrypterade 鰒er n鋞verket mellan Sambaservern
och PC-klienten. Detta 鋜 inte bra av f鰈jande anledningar:
<ol>
<li>Vem som helst kan tjuvlyssna p n鋞verket och d f tillg錸g till 
    andras l鰏enord.
<li>De senaste versionerna av Windows 9x och NT kan inte skicka l鰏enord
    okrypterade. Om en anv鋘dare d f鰎s鰇er komma 錿 Sambaservern fr錸 ett
    s錮ant system kommer den att f felmeddelandet <tt>???</tt>. 膎dringen
    finns fr錸 och med NT-servicepaket 3.
</ol>

Samba st鰀jer kryptering av l鰏enord, men det g錼 inte att kontrollera de
l鰏enord som klienterna skickar mot den vanliga Unix-l鰏enordsfilen eftersom
det inte 鋜 samma kryptering som anv鋘ds. Av denna anledning m錽te Samba
ha en egen lista 鰒er anv鋘dare och l鰏enord.

<p>S h鋜 g鰎 man f鰎 att st鋖la om Samba till att acceptera krypterade
l鰏enord:
<ol>
<li>Kontrollera att Samba-versionen st鰀jer l鰏enordskryptering. S鋞t
    inst鋖lningen <tt>Krypterade l鰏enord</tt> i
    <tt>L鰏enordsinst鋖lningar</tt> till Ja. Om det inte fungerar m錽te
    en version med st鰀 f鰎 l鰏enordskryptering h鋗tas eller kompileras.
<li>Klicka p <tt>Omvandla Unix-anv鋘dare till Samba-anv鋘dare</tt> l鋘gst
    ned p startsidan. Man f錼 d upp en sida d鋜 man kan v鋖ja att omvandla
    alla eller bara n錱ra av Unix-anv鋘darna till Samba-anv鋘dare.
    Anv鋘darnamn, riktiga namn, UID och skal kommer att omvandlas, men inte
    l鰏enord.
<li>Anv鋘d inst鋖lningen <tt>膎dra Samba-anv鋘darlista</tt> f鰎 att skriva
    in l鰏enord. Den visar en lista 鰒er alla Samba-anv鋘dare, d鋜 man kan
    v鋖ja den anv鋘dare man vill l鋑ga till l鰏enord f鰎. F鰎 varje anv鋘dare
    kan man s鋞ta l鰏enordet till <tt>L錽t</tt> (inloggning sp鋜rad),
    <tt>Inget l鰏enord</tt> (inget l鰏enord beh鰒er anges) eller det l鰏enord
    som ska anges vid inloggning.
</ul>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Tillbaka till modul</a>
 

   0707010005669e000041ed0000000000000001000000023ac03c5a00000000000000200000000000000000000000000000001300000003reloc/samba/images    0707010005669f000081a40000000000000002000000013ac0388d00000441000000200000000000000000000000000000001c00000003reloc/samba/images/icon.gif   GIF89a0 0   鼢鳡ⅳ铑钸哌qrs捶乎谙羰碟珑鈾櫃../壬牲颔慥VV|~傊鬃篌篚nP猩糲fi   &''!!!	趱觞S増墛988+     CDD蹗|隬13 -豸飵摌a8.f3R&骜狺线鞆弿)+. (g眭稃蒴112灜浻误杗蜮桀fш


接猱咒)趋墮獳KT 3b!
篪忪节鴯弟⊥適y*堚 A僄9  ⑹茶8=C 犷壙0,*I嵾\羣] 瀿壛
W\bg MNO 烫掏屯舷闲行挝螞洓湝湚殮fff            !Made with GIMP ,    0 0  䜣 們剠唶垑妺實帍悜挀敃杺棗洊煉	

畫
毊 !!"##$%&'()*+,& `礟纰.^(D#	,蒟0C儊h崖
Q脝朎簛9`垁儙'*浔崯'T樹# 傝P h塨萇狓.H駜H#2D+犃DGB螋&軭掄倰%8<(皝IoTˊ列普L篳"M<侐 J貺呟禪6楧 +P(散迳-\<t馚0a6腀棨4H E(J芼q m赥聰)sD7*%	7惲虙3K濪A&蛃5諰-
'
4`se2:<y>eE涻k$vI 4 B|Ppnāo苲e6'<欣;p6闙wD_緯B1,tL孛`qdWJT啵P墁 x枓K"!T躷惺拫勷蹹De#绤Zm扇 
T爮楿N2菤l堕鏇o褹Gu豠w辛"糸鐭(x鋺魴}顏"6噼D:)D阦%pv鷉牉喓j戛é*┆︻彡*侶:氕瞓鲫k"  ;   070701000566a0000081a40000000000000002000000013ac0388d00000139000000200000000000000000000000000000001e00000003reloc/samba/images/icon_0.gif GIF89a0 0   烫虣櫃fff          !    ,    0 0  很0睝珪87粱穪&:Ci灋P峫t瘴愘8y缂=^@ 鎲E─1汯"歹鲫*-饍 #炊,淦{/鈱(壋縗sEYb[pxxW%{儔j憠ktg審Z嫇洑垰q湞煛w淺ぅc瘖姳洞┈~g揪āv~恉 2皠皵/!蓀翀艩茄磼揫'褔梿薔荢"f腱l|镯m蝮聃]豇瘥铨 唒 A梳 Ba豓納"@A&BH  ;   070701000566a1000081a40000000000000002000000013ac0388d0000014d000000200000000000000000000000000000001e00000003reloc/samba/images/icon_1.gif GIF89a0 0   烫虣櫃fff          !    ,    0 0  很0睝珪87粱穪&:Ci灋P峫t瘴愘8y缂=^@ 鎲E─1汯"歹湂=倴犩n箮缱;>磱o飊0棷賭W墡7鎢]w @u乹乼i~
z噠塴fd弲%坿巖媽~{i洅昿vkx漰j崼碁焎病动П翱偔麓牌~怂茓o佬 2溔划蓆/!袧奱远鏋簚a萱ー簗 竐=XVA(皪攤"\爌aC凜8,屶a"繮q!c瀺1晟"E
嫄Lx寪  ;   070701000566ae000081a40000000000000002000000013ac0388d00000113000000200000000000000000000000000000001e00000003reloc/samba/images/icon_2.gif GIF89a0 0   烫虣櫃fff            !    ,    0 0  很0蔍8死{讬'8yB俫B]z秮:渕}鲯嚨炩!鰧粻Ya倻MJ	酼礧捌 gu@鬡U?賍w咵/羆巷}y剕&z剢巻 憭弾崈棌晧殩瀧ぅⅲ洜~挱疁埓捣祲悎恫【聥炼拦贸皺橇幣派维泄氏斎已虆乇趰*徭乳 庄飶B蝮趱鲼	 ; 070701000566af000081a40000000000000002000000013ac0388d0000014a000000200000000000000000000000000000001e00000003reloc/samba/images/icon_3.gif GIF89a0 0   烫虣櫃fff            !    ,    0 0  很0蔍8溡}_葘@V&*刯'7[濔遥黕耫1瞔	擯bJm2y摘9蓏瓕鳮瀳4xqǹErc.利鮷Pw~x>亗}剟H儕0噽憭tj枟7Od湞牎U￥ЖI琣壊鲍w夯犯劆懒0@颧蕏形尰事0傩猜淘逸澾犥8忤哨闾隧衩7媵耋q/<#D@緑+め)x爨l帣獦頱5I菠蓳  ;  070701000566b0000081a40000000000000002000000013ac0388d000001cc000000200000000000000000000000000000001e00000003reloc/samba/images/icon_4.gif GIF89a0 0   櫃櫶烫   !    ,    0 0  ⻊	甲岒蛬T睼c陖耯箿c#槎+倂窝莞h%A 9洂舯@瀂
罧9=榍Z鈋/L瀨荾7&嬎[篡g制礸陞*U{ag&2鵂非%' XXSgGG(貴╱虏Y雎s)驋y赧9%33历:`
{  蓑z袺;;埴`{汸睖塥0 m潦郜 D-1离,卷,L:-蜰.l-峠觐n6<,唀#棌簝盞妗聢
5A瀴吼c灞hZi5r諭#+v躻蔅儇TⅰH幬B戞焯	1=c滗Y4MO倈*麻枽Nw蕠R,t怓吤顷濶^杰
uiY'QZ'3q昃w滼d硚祸羷遯簸唘p(EJ编槓n琷夊;)kV咘!葤1  ;070701000566b1000081a40000000000000002000000013ac0388d00000147000000200000000000000000000000000000001e00000003reloc/samba/images/icon_5.gif GIF89a0 0   烫虣櫃fff            !    ,    0 0  很0禓珢8?羬譧V嶄x卆喹靲坦蕀m愎庉C饷L*'G落9*蝁:綈儼xLf喟爳隍
嫝侌哶1髗.郒rs儎s.Z2|厡噣~1揈悅zG橳(dh:ガx?$^O眆2Xkk钒礆v弄滿茢審
A瓍 厙謙g綊棉<
遾邈'煦畎y冧髏~黯栩耦麂 \淎B锊\pQ縜	溫揂庥穦 韊＇O枏 ; 070701000566b2000081a40000000000000002000000013ac0388d0000017c000000200000000000000000000000000000001e00000003reloc/samba/images/icon_6.gif GIF89a0 0   櫃櫶烫fff            !    ,    0 0  驉蒊0嬎{&vd鯄0攍坒伜顶
<訛:殂傿褢;茠=鈗皠F洩%褄d*租鯁?桱  b鈯R蘄籵漋|孾/&{7~-*5}(,m%M-匵;$擩姉2搈牎m3D?Sⅹぅ漎īnW痲%殯_:g%f`g{櫝xz谅脟巔[<竫tTPw誶hvI5#4佲呮墣尫鏸悞嶒&朄"X
鸩BP5脩)D巄]8鏔詩Y'^Tp蟼紛n彝 5B眂&	仮(册,(偆闰$藥.a9p$脴8Tdp皴K?冴T94h螇攔瞵)恎JQ5櫀d合J ;070701000566b3000081a40000000000000002000000013ac0388d0000014c000000200000000000000000000000000000001e00000003reloc/samba/images/icon_7.gif GIF89a0 0   烫虣櫃fff            !    ,    0 0  很0蔍8帅 貚Nf炴FRA杈檬爵薘+D8H	罵q莐:廔釖懷呂"霭Y硒7芼╕.3Pq@啁傟ct3mj<僲`\>9SFN橫1C帤M煓湑!V_#[TU帯玆剹hd窲氮sw舥羬壬喡~+粳B淹 莻$%俟重&圳b,贽9 噦耔熵晚o郑<7觯萘鄃徚! ;|们H辛勌碍SvA[s溡U蹾;:矚瀽g&4.K  ;070701000566b4000081a40000000000000002000000013ac0388d000001ed000000200000000000000000000000000000001e00000003reloc/samba/images/icon_8.gif GIF89a0 0      櫃櫶烫fff         !    ,    0 0  暑2憩鰧\漦邾8歊s曐藌0蛼_銿蚜V 趶6S萮n鋺Y蘌+氲\H c@4窛z	?'v亸霺窀橾Nxbdec噥妛 垔em唎嫀昽p彈3倿杻攞牑倣煝爔瓃Σ湙v櫏啘帉翚门e惱z仕$~蛗兴弦显右3仲O]5&V"鋂@錼}W燕醨8贘45垴瘀8Be巻?{Jp蘡R愝'w "憣:黣こO.KCABXH[綬.K謰$!_檍I
埌6g吐i^*騔,蔲p畱L-志煵&庥厠弻:Bｃ銥覅=膒>?J牌!籥o推v腽Ux9h挦[;怲 珻
-!抎y 鰞B搿乞嫣S.宄椔ゑ憿棅<膃裄%  ;   070701000566b5000081a40000000000000002000000013ac0388d0000048b000000200000000000000000000000000000001e00000003reloc/samba/images/icon_9.gif GIF89a0 0        3  f       3  33 3f 3 3 3 f  f3 ff f f f   3 檉 櫃 櫶    3 蘤 虣 烫    3 f   3  3 33 f3 3 3 33 33333f3333333f 3f33ff3f3f3f3 333檉3櫃3櫶33 333蘤3虣3烫33 333f333f  f 3f ff 檉 蘤 f3 f33f3ff3檉3蘤3ff ff3fffff檉f蘤ff f3f檉f櫃f櫶ff f3f蘤f虣f烫ff f3fff檉蘤   3 f 櫃 虣 3 333f3櫃3虣3檉 檉3檉f檉櫃f虣f櫃 櫃3櫃f櫃櫃櫶櫃櫶 櫶3櫶f櫶櫃烫櫶 3f櫃虣   3 f 櫶 烫 3 333f3櫶3烫3蘤 蘤3蘤f蘤櫶f烫f虣 虣3虣f虣櫶櫶虣烫 烫3烫f烫櫶烫烫 3f櫶烫   3 f   3 333f333f f3fffff 3檉櫃櫶 3蘤虣烫 3f!Made with GIMP !   ,   0 !   H盃羶篔劝偖RA{H雹纉/ ,慈憽+   =際侧GK<塺幃2轵錍W8g鈚5焰胊肵沼gE柀"Kζ睱檖甞叆U!+W	r-@冬YT蚛氪ej4株H頃YW晑i4r覄6.--*佾/	腱玸稴]展1琓fEY43+澕Β獀^誋冹漏3賂噇S<w阯惄覮ψ补硗诨tS敥樂鼟@瀥Qqz叒{ 藁W_mf疳/÷*R瞾PW蜠踽闁蛛K潾?JQ94Y筊Hf8x恄/4A~箳邇覓RBHT  蒯嶺悎* ; 07070100052217000081e40000000000000002000000013ac0388d00001a19000000200000000000000000000000000000001600000003reloc/samba/index.cgi #!/usr/local/bin/perl
# index.cgi
# Display a list of available samba shares. Special shares (like [homes] and
# [printers]) are included as well.

require './samba-lib.pl';

%access = &get_module_acl();

&header($text{'index_title'}, "", undef, 1, 1);
print "<hr>\n";

if (!-x $config{'samba_server'}) {
	print &text('error_nosamba', $config{'samba_server'}, "/config.cgi?$module_name");
	print "<p>\n<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

# Check the samba version
if (`$config{'samba_server'} -v 2>&1` =~ /(Version|Samba)\s+[^0-9 ]*(\d+)\.(\S+)/i ||
    `$config{'samba_server'} -V 2>&1` =~ /(Version|Samba)\s+[^0-9 ]*(\d+)\.(\S+)/i) {
	# Save version number
	$v1 = $2; $v2 = $3;
	$v2 =~ s/[^0-9]//g;
	$samba_version = "$v1.$v2";
	open(VERSION, ">$module_config_directory/version");
	print VERSION $samba_version,"\n";
	close(VERSION);
	}
else {
	print &text('error_version', $config{'samba_server'}, "/config.cgi?$module_name");
	print "<p>\n<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

@empty = &list_shares();
if (!@empty && (-r $config{alt_smb_conf})) {
	# Copy the sample smb.conf file to the real location
	# This is a hack for slackware
	`cp $config{alt_smb_conf} $config{smb_conf} 2>&1`;
	}
if (!(-r $config{smb_conf})) {
	print &text('error_config', $config{'smb_conf'}, "/config.cgi?$module_name");
	print "<p>\n<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

&get_share("global");
if (&getval("config") || &getval("include")) {
	print "$text{'error_include'}<p>\n<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

foreach $s (&list_shares()) {
	next unless &can('r', \%access, $s) || !$access{'hide'};
	$us = "share=".&urlize($s);
	if ($s eq "global") { next; }
	if (!$donefirst) {
		print "<table width=100% border>\n";
		print "<tr $tb> <td><b>$text{'index_sharename'}</b></td> <td><b>$text{'index_path'}</b></td>\n";
		print "         <td><b>$text{'index_security'}</b></td> </tr>\n";
		$donefirst = 1;
		}
	&get_share($s);
	print "<tr $cb>\n";
	if ($cp = &getval("copy")) { $cp = "(copy of <i>$cp</i>)"; }
	if (&istrue("printable")) {
		print "<td><a href=\"edit_pshare.cgi?$us\">$s</a> $cp</td>\n";
		}
	else {
		print "<td><a href=\"edit_fshare.cgi?$us\">$s</a> $cp</td>\n";
		}

	# Output location / path info
	if ($s eq "homes") {
		$p = "<i>$text{'index_homedir'}</i>";
		}
	elsif ($s eq "printers") {
		$p = "<i>$text{'index_allprinter'}</i>";
		}
	elsif (&istrue("printable")) {
		$p = &getval("printer") ? $text{'index_printer'}." ".&getval("printer")
					: $text{'index_defaultprn'};
		}
	else {
		$p = &getval("path");
		}
	print "<td>$p</td>\n";

	# Output security information
	if (&istrue("printable")) {
		if (&getval("valid users")) {
			# Only accessible to some users..
			$sc = $text{'index_printableto'}." ".
				&user_list(&getval("valid users"));
			}
		elsif (&istrue("public")) {
			# Accessible to everyone
			$sc = $text{'index_prneveryone'};
			}
		else {
			$sc = $text{'index_prnalluser'};
			}
		}
	elsif (&istrue("writable")) {
		# Default is read/write access
		if (&istrue("public")) {
			# No password needed..
			$sc = $text{'index_rwpublic'};
			}
		else {
			# Password needed..
			if (&getval("read list")) {
				$sc = &text('index_readonly', &user_list(&getval("read list")));
				}
			else {
				$sc = $text{'index_rwalluser'};
				}
			}
		}
	else {
		# Default is read-only access
		if (&istrue("public")) {
			# No password needed..
			$sc = $text{'index_roeveryone'};
			}
		else {
			# Password needed..
			if (&getval("write list")) {
				$sc = &text('index_readwrite', &user_list(&getval("read list")));
				}
			else {
				$sc = $text{'index_roalluser'};
				}
			}
		}
	print "<td>$sc</td>\n";
	print "</tr>\n";
	}
if ($donefirst) { print "</table>\n"; }
else { print "<b>$text{'index_noshares'}</b>. <p>\n"; }

print "<a href=\"edit_fshare.cgi\">$text{'index_createfileshare'}</a>\n"
	if $access{'c_fs'};
print "&nbsp;&nbsp;&nbsp;&nbsp;\n";
print "<a href=\"edit_pshare.cgi\">$text{'index_createprnshare'}</a>\n"
	if $access{'c_ps'};
print "&nbsp;&nbsp;&nbsp;&nbsp;\n";
print "<a href=\"create_copy.cgi\">$text{'index_createcopy'}</a>\n"
	if $access{'copy'};
print "&nbsp;&nbsp;&nbsp;&nbsp;\n";
print "<a href=\"view_users.cgi\">$text{'index_view'}</a><p>\n"
	if $access{'view_all_con'};

@gc_acl = qw(conf_net conf_smb conf_pass conf_print	conf_misc  
			  ACLfs_global ACLps_global swat);
@gc_progs = ("conf_net.cgi", "conf_smb.cgi", "conf_pass.cgi",
	     "conf_print.cgi", "conf_misc.cgi", "edit_fshare.cgi?share=global",
	     "edit_pshare.cgi?share=global");
@gc_names = ($text{'global_unixnetwork'}, $text{'global_winnetwork'},
	     $text{'global_auth'}, $text{'global_printing'},
	     $text{'global_misc'}, $text{'global_filedefault'},
	     $text{'global_prndefault'});
@gc_icons = ("images/icon_0.gif", "images/icon_1.gif", "images/icon_2.gif",
	     "images/icon_3.gif", "images/icon_4.gif", "images/icon_5.gif",
	     "images/icon_6.gif");
if (&has_command($config{'swat_path'})) {
	push(@gc_progs, "swat.cgi");
	push(@gc_names, "SWAT");
	push(@gc_icons, "images/icon_9.gif");
	}

foreach $i (0..$#gc_acl) {
	next unless $access{$gc_acl[$i]};
	push(@gc_progs1, $gc_progs[$i]);
	push(@gc_names1, $gc_names[$i]);
	push(@gc_icons1, $gc_icons[$i]);
	$disp++;
	}

if ($disp) {
	print "<hr>\n";
	print "<h3>$text{'global_title'}</h3>\n";
	&icons_table(\@gc_progs1, \@gc_names1, \@gc_icons1, $gconfig{'nocols'});
	}

&get_share("global");
if (&istrue("encrypt passwords") && $config{smb_passwd}) {
	# Encrypted passwords are on.. output links
	if ($access{'view_users'} ||
		$access{'maint_makepass'} ||
		$access{'maint_sync'}) {
		print "<hr>\n";
		print "<h3>$text{'global_password'}</h3>\n";
		}
	print "<ul>\n";
	print "<li> <a href=edit_epass.cgi>$text{'global_edit'}</a>. <p>\n"
		if $access{'view_users'};
	print "<li> <a href=ask_epass.cgi>$text{'global_convert'}</a>. <p>\n"
		if $access{'maint_makepass'};
	print "<li> <a href=edit_sync.cgi>$text{'global_sync'}</a>. <p>\n"
		if $access{'maint_sync'};
	print "</ul>\n";
	}

if ($access{'apply'}) {
	$isrun = &is_samba_running();
	if ($isrun == 0) {
		print "<hr>\n";
		print "<form action=start.cgi>\n";
		print "<table width=100%><tr>\n";
		print "<td><input type=submit value=\"$text{'index_start'}\"></td>\n";
		print "<td>$text{'index_startmsg'}</td>\n";
		print "</tr></table></form>\n";
		}
	elsif ($isrun == 1) {
		print "<hr>\n";
		print "<form action=restart.cgi>\n";
		print "<table width=100%><tr>\n";
		print "<td><input type=submit value=\"$text{'index_restart'}\"></td>\n";
		print "<td>$text{'index_restartmsg'}</td>\n";
		print "</tr></table></form>\n";
		}
	}

print "<hr>\n";
&footer("/", $text{'index'});
   07070100052218000081e40000000000000002000000013ac0388d00000308000000200000000000000000000000000000001a00000003reloc/samba/kill_user.cgi #!/usr/local/bin/perl
# kill_user.cgi
# Kill a samba process connecting to some client

require './samba-lib.pl';
&ReadParse();

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if ($in{share}) { # this may be cracked very easy, don't know how to do better :(
	# per-share acls ...
	&error("$text{'eacl_np'} $text{'eacl_pkill'}") 
		unless &can('rvV',\%access, $in{share}); # read, view conn, kill conn
	}
else {
	&error("$text{'eacl_np'} $text{'eacl_pgkill'}") 
		unless $access{'view_all_con'} && $access{'kill_con'};
	}
	
&kill_logged('TERM', $in{pid});
&webmin_log("kill", undef, $in{'pid'}, \%in);
if ($in{share}) { &redirect("view_users.cgi?share=$in{share}"); }
else { &redirect("view_users.cgi"); }

07070100057d8d000041ed0000000000000001000000023ac03c5b00000000000000200000000000000000000000000000001100000003reloc/samba/lang  07070100057d8e000081a40000000000000002000000013ac0388d000044c2000000200000000000000000000000000000001400000003reloc/samba/lang/en   index_title=Samba Share Manager
index_sharelist=share list
index_userlist=user list
index_fileshare=file share
index_printershare=printer share
index_shareconf=share configuration

index_sharename=Share Name
index_path=Path
index_security=Security
index_homedir=All Home Directories
index_allprinter=All Printers
index_printer=Printer
index_defaultprn=Default printer
index_printableto=Printable to
index_prneveryone=Printable to everyone
index_prnalluser=Printable to all known users
index_rwpublic=Read/write to everyone
index_readonly=Read only to $1<br>Read/write to all other known users
index_rwalluser=Read/write to all known users
index_roeveryone=Read only to everyone
index_readwrite=Read/write to $1<br>Read only to all other known users
index_roalluser=Read only to all known users
index_noshares=No Samba shares defined
index_createfileshare=Create a new file share
index_createprnshare=Create a new printer share
index_createcopy=Create a new copy
index_view=View All Connections
index_start=Start Samba Servers
index_startmsg=The Samba servers do not appear to be running on your system. This means that the shares listed above will not be accessible to other computers.
index_restart=Restart Samba Servers
index_restartmsg=Click this button to restart the running Samba servers on your system. This will force the current configuration to be applied.

config_mins=Mins
config_secs=Secs
config_bytes=Bytes
config_never=Never
config_all=All
config_neither=Neither

global_title=Global Configuration
global_unixnetwork=Unix Networking
global_winnetwork=Windows Networking
global_auth=Authentication
global_printing=Windows to Unix Printing
global_misc=Miscellaneous Options
global_filedefault=File Share Defaults
global_prndefault=Printer Share Defaults
global_password=Encrypted Passwords
global_edit=Edit Samba users and passwords
global_convert=Convert Unix users to Samba users
global_sync=Configure automatic Unix and Samba user synchronisation

error_nosamba=The Samba server executable <tt>$1</tt> was not found. Either Samba is not installed on your system or your <a href="$2">module configuration</a> is incorrect.
error_version=Webmin failed to get the version of your Samba server executable <tt>$1</tt>. Check your <a href="$2">module configuation</a>to make sure this is the correct path.
error_config=The configuration file $1 was not found. Most likely Samba is not installed on your system, or your <a href="$2">module configuration</a> is incorrect.
error_include=Webmin cannot handle Samba config files that use the <tt>config</tt> or <tt>include</tt> directives.
error_delshare=Failed to delete share
error_delcopy=The share '$1' copies from this share
error_savename=Failed to save file naming

convert_title=Convert Users
convert_msg=This form allows you to synchronize the Unix and Samba user list. When Samba is using <a href=$1>encrypted passwords</a>, a separate list of users and passwords is used instead of the system user list.
convert_noconv=Don't convert or remove these users:
convert_update=Update existing Samba users from their Unix details
convert_add=Add new Samba users from the Unix user list 
convert_delete=Delete Samba users who do not exist under Unix 
convert_newuser=For newly created users, set the password to:
convert_nopasswd=No password
convert_lock=Account locked
convert_passwd=Use this password
convert_convert=Convert Users

misc_title=Miscellaneous Options
misc_debug=Debug Level
misc_cachecall=Cache <tt>getwd()</tt> calls?
misc_lockdir=Lock directory
misc_log=Log file
misc_maxlog=Max log size
misc_rawread=Allow raw reads?
misc_rawwrite=Allow raw writes?
misc_overlapread=Overlapping read size
misc_chroot=<tt>chroot()</tt> directory
misc_smbrun=Path to <tt>smbrun</tt>
misc_clienttime=Client time offset
misc_readprediction=Read prediction?

net_title=Unix Networking Options
net_idle=Idle time before disconnect
net_trustlist=Trusted hosts/users file
net_netinterface=Network interfaces
net_auto=Automatic
net_uselist=Use list...
net_interface=Interface
net_netmask=Netmask
net_keepalive=Keepalive packets
net_notsend=Don't send any
net_every=Send every
net_maxpacket=Maximum packet size
net_listen=Listen on address
net_socket=Socket options

passwd_title=Password Options
passwd_encrypt=Use encrypted passwords?
passwd_allownull=Allow null passwords?
passwd_program=Password program
passwd_case=Password case difference
passwd_chat=Change password chat
passwd_below=Listed below:
passwd_waitfor=Wait for
passwd_send=Send
passwd_map=Username mapping
passwd_unixuser=Unix Users
passwd_winuser=Windows Users

print_title=Printing Options
print_style=Unix print style
print_show=Show all printers?
print_printcap=Printcap file
print_cachetime=Printer status cache time

smb_title=Windows Networking Options
smb_workgroup=Workgroup
smb_wins=WINS mode
smb_winsserver=Be WINS server
smb_useserver=Use server
smb_description=Server description
smb_name=Server name
smb_aliase=Server aliases
smb_default=Default service
smb_show=Always show services
smb_disksize=Max reported disk size
smb_unlimited=Unlimited
smb_winpopup=Winpopup command
smb_priority=Master browser priority
smb_protocol=Highest protocol
smb_master=Master browser?
smb_security=Security
smb_sharelevel=Share level
smb_userlevel=User level
smb_passwdserver=Password server
smb_domain=Domain
smb_announce=Remote announce to
smb_nowhere=Nowhere
smb_fromlist=From list...
smb_ip=IP Address
smb_asworkgroup=<b>As Workgroup</b> (optional)

create_title=Create Copy
create_msg=A copy share will inherit all its default values from the share you choose. If the source share is changed, so will the copy. 
create_from=Share to copy from:
create_name=New share name:

smbuser_title=Samba Users
smbuser_list=Samba User List
smbuser_nouser=No Samba users defined

euser_title=Edit Samba User
euser_name=Username
euser_uid=Unix UID
euser_passwd=Password
euser_noaccess=No access
euser_nopw=No password
euser_currpw=Current password
euser_newpw=New password
euser_realname=Real name
euser_homedir=Home directory
euser_shell=Shell
euser_option=User options
euser_normal=Normal user
euser_nopwrequired=No password required
euser_disable=Account disabled
euser_trust=Workstation trust account

fmisc_title=Miscellaneous File Defaults
fmisc_for=For share <tt>$1</tt>
fmisc_lockfile=Do file locking?
fmisc_maxconn=Max connections
fmisc_fake=Fake oplocks?
fmisc_sharemode=Use share modes?
fmisc_strict=Strict locking?
fmisc_sync=Sync after writes?
fmisc_volume=Volume name
fmisc_sameas=Same as share
fmisc_unixdos=Unix-DOS file name map
fmisc_conncmd=Command to run on connect
fmisc_disconncmd=Command to run on disconnect
fmisc_rootconn=Command to run on connect <i>as root</i>
fmisc_rootdisconn=Command to run on disconnect <i>as root</i>

fname_title1=File Naming Defaults
fname_title2=Edit File Naming
fname_option=File Naming Options
fname_manglecase=Mangle Case?
fname_case=Case Sensitive?
fname_defaultcase=Default Case?
fname_lower=Lower
fname_upper=Upper
fname_preserve=Preserve Case?
fname_shortpreserve=Short Preserve Case?
fname_hide=Hide dot files?
fname_archive=Save DOS archive flag?
fname_hidden=Save DOS hidden flag?
fname_system=Save DOS system flag?

fperm_title1=File Permissions Defaults
fperm_title2=Edit File Permissions
fperm_option=File Permission Options
fperm_filemode=New Unix file mode
fperm_dirmode=New Unix directory mode
fperm_notlist=Directories not to list
fperm_forceuser=Force Unix user
fperm_forcegrp=Force Unix group
fperm_link=Allow symlinks outside share?
fperm_delro=Can delete readonly files?
fperm_forcefile=Force Unix file mode
fperm_forcedir=Force Unix directory mode

share_title1=File Share Defaults
share_title2=Edit File Share
share_title3=Create File Share
share_info=Share Information
share_copy=This share is a copy of <i>$1</i>
share_name=Share name
share_home=Home Directories Share
share_dir=Directory to share
share_available=Available?
share_browseable=Browseable?
share_comment=Share Comment
share_view=View Connections
share_option=Other Share Options
share_security=Security and Access Control
share_permission=File Permissions
share_naming=File Naming
share_misc=Miscellaneous Options

print_title1=Printer Option Defaults
print_title2=Edit Printer Options
print_option=Printer Options
print_minspace=Miniumum free space
print_postscript=Force postscript printing
print_command=Print command
print_queue=Display queue command
print_delete=Delete job command
print_pause=Pause job command
print_unresume=Unresume job command
print_driver=Printer Driver

pshare_title1=Printer Share Defaults
pshare_title2=Edit Printer Share
pshare_title3=Create Printer Share
pshare_info=Share Information
pshare_name=Share name
pshare_all=All Printers Share
pshare_unixprn=Unix Printer
pshare_spool=Spool directory

sec_index1=Security Defaults
sec_index2=Edit Security
sec_writable=Writable?
sec_guest=Guest Access?
sec_guestonly=Guest only
sec_guestaccount=Guest Unix user
sec_limit=Limit to possible list?
sec_allowhost=Hosts to allow
sec_onlyallow=Only allow
sec_denyhost=Hosts to deny
sec_onlydeny=Only deny
sec_revalidate=Revalidate users?
sec_validuser=Valid users
sec_validgroup=Valid groups
sec_invaliduser=Invalid users
sec_invalidgroup=Invalid groups
sec_possibleuser=Possible users
sec_possiblegroup=Possible groups
sec_rouser=Read only users
sec_rogroup=Read only groups
sec_rwuser=Read/write users
sec_rwgroup=Read/write groups

esync_title=User Synchronisation
esync_msg=Webmin can be configured so that changes to the Unix user list will automatically be applied to the Samba user list. This will only work when the <tt>Users and Groups</tt> Webmin module is used to add, delete or change users.
esync_add=Add a Samba user when a Unix user is added
esync_chg=Change the Samba user when a Unix user is changed
esync_del=Delete the Samba user when a Unix user is deleted
esync_apply=Apply

mkpass_title=Convert Users
mkpass_convfail=Failed to convert user
mkpass_msg=Converting Unix users...
mkpass_skip=being skipped
mkpass_same=is already the same
mkpass_update=being updated
mkpass_del=being deleted
mkpass_passfail=Failed to set password

savecopy_fail=Failed to create copy
savecopy_global=The name 'global' cannot be used for a share
savecopy_exist=A share called '$1' already exists

saveuser_fail=Failed to save user
saveuser_uid='$1' is not a valid Unix UID
saveuser_colon=Real name cannot contain the character :
saveuser_home=The home directory '$1' does not exist
saveuser_shell=$1 is not a valid shell
saveuser_pass=Failed to change password using smbpasswd : $1

savefmisc_fail=Failed to save miscellaneous options
savefmisc_number='$1' is not a valid number of connections

savefperm_fail=Failed to save file permissions
savefperm_mode='$1' is not a valid Unix file mode

savefshare_fail=Failed to save share
savefshare_nopath=No path given
savefshare_exist=A share called '$1' already exists
savefshare_mode='$1' is not a valid share name
savefshare_global=The name 'global' cannot be used for a shar

savemisc_fail=Failed to save options
savemisc_lockdir=The directory containing the lock directory does not exist
savemisc_logdir=The directory containing the log file does not exist
savemisc_logsize='$1' is not a valid log size
savemisc_overlap='$1' is not a valid overlapping read size
savemisc_chroot=The chroot directory '$1' does not exist
savemisc_smbrun=The smbrun program '$1' does not exist or is not executable
savemisc_time='$1' is not a valid time offset

savenet_fail=Failed to save options
savenet_timeout='$1' is not a valid disconnect timeout
savenet_ip='$1' is not a valid IP byte
savenet_keep='$1' is not a valid keepalive interval
savenet_maxxmit='$1' is not a valid maximum packet size

savepass_fail=Failed to save options
savepass_nopass=Your version of Samba does not support encrypted passwords
savepass_passwd=No password changing program given
savepass_level='$1' is not a valid password case difference
savepass_chat=The change password chat sequence is empty

savepopts_fail=Failed to save printer options
savepopts_number=Minimum free space must be a number

saveprint_fail=Failed to save options
saveprint_printcap=The printcap file '$1' does not exist
saveprint_cache='$1' is not a valid cache time

savepshare_fail=Failed to save printer share
savepshare_exist=A share called '$1' already exists
savepshare_name='$1' is not a valid share name
savepshare_global=The name 'global' cannot be used for a share

savesec_fail=Failed to save security

savesmb_fail=Failed to save options
savesmb_size='$1' is not a valid disk size
savesmb_oslevel='$1' is not a valid master browser priority
savesmb_server=You must enter a password server

start_err=Failed to start Samba servers
start_fail=$1 failed

swats_fail=Failed to save username
swats_user=Missing SWAT username

viewu_index=Current Users
viewu_list=Current users of $1
viewu_share=Share
viewu_user=User
viewu_group=Group
viewu_from=Connected from
viewu_time=Connected at
viewu_pid=Process ID
viewu_msg1=Click on a process ID from the list above to disconnect that user.
viewu_msg2=There are no currently connected users

log_apply=Restarted Samba servers
log_start=Started Samba servers
log_save_fshare=Modified file share $1
log_save_pshare=Modified printer share $1
log_save_sec=Modified security and access control for share $1
log_save_fperm=Modified file permissions for share $1
log_save_fname=Modified file naming for share $1
log_save_fmisc=Modified miscellaneous options for share $1
log_save_popts=Modified printer options for share $1
log_default_fshare=Changed file share defaults
log_default_pshare=Changed printer share defaults
log_kill=Disconnected process $1
log_skill=Disconnected process $1 from share $2
log_create_fshare=Created file share $1
log_create_pshare=Created printer share $1
log_delete_fshare=Deleted file share $1
log_delete_pshare=Deleted printer share $1
log_net=Changed Unix networking options
log_smb=Changed Windows networking options
log_pass=Changed authentication options
log_print=Changed Windows to Unix printing options
log_misc=Changed miscellaneous options
log_sync=Configured Unix user synchronisation
log_epass=Converted Unix users to Samba users
log_epass_l=Converted Unix users to Samba users ($1 created, $2 modified, $3 deleted)
log_copy=Copied share $2 to $1
log_save_euser=Modified Samba user $1
log_delete_euser=Deleted Samba user $1

swat_title=SWAT Login
swat_list=SWAT Login
swat_msg1=Your current SWAT username and password are incorrect. Use the form below to login again.
swat_msg2=An username and password are required to login to SWAT. This can normally be any user on your system.
swat_msg3=You cannot run SWAT through Webmin, as your Samba configuration has the <tt>$1:...</tt> (allow hosts) option set.
swat_msg4=However, you may be able to connect to SWAT directly at $1
swat_username=Username
swat_password=Password
swat_login=Login
swat_clear=Clear

eacl_aviol=Access control violation
eacl_np=You have not permissions to
eacl_papply=restart this service
eacl_pcn=edit unix networking options
eacl_pcs=edit smb networking options
eacl_pcp=edit password options
eacl_pcprint=edit printing options
eacl_pcm=edit misc options
eacl_pcswat=use SWAT
eacl_pcopy=copy shares
eacl_pconn_all=view all connections
eacl_pconn=view connections for this share
eacl_pgkill=kill connections
eacl_pkill=kill this connection
eacl_pus=update share
eacl_pcs=create share
eacl_pds=delete share
eacl_pusec=update security and access control options for this share
eacl_pufperm=update file permission options for this share
eacl_pufname=update file naming options for this share
eacl_pufmisc=update misc. options for this share
eacl_pupopt=update printer options for this share
eacl_pmpass=initialize SAMBA users database
eacl_pmsync=maintain UNIX-SAMBA users synchronization
eacl_pmusers=maintain SAMBA users
eacl_pvusers=access SAMBA users
eacl_pvfmisc=access misc. options for this share
eacl_pvfname=access file naming options for this share
eacl_pvperm=access file permission options for this share
eacl_pvsec=access security and access control options for this share
eacl_pvpopt=access printer options for this share
eacl_pafs=access this file share
eacl_paps=access this printer share
eacl_pcps=create printer share
eacl_pcfs=create file share

acl_apply=Can apply changes?
acl_view_all_con=Can view all connections?
acl_kill_con=Can remove connections?
acl_conf_net=Can configure UNIX network options?
acl_conf_smb=Can configure Windows network options?
acl_conf_pass=Can configure authentication options?
acl_conf_print=Can configure printers options?
acl_conf_misc=Can configure misc. options?
acl_swat=Can use SWAT?
acl_enc_passwd_opts=Encripted password options.
acl_view_users=Can view SAMBA users database?
acl_maint_users=Can edit SAMBA users?
acl_maint_makepass=Can convert UNIX users to SAMBA users?
acl_maint_sync=Can maintain auto UNIX to SAMBA users sync?
acl_hide=Hide inaccessible objects?
acl_c=create
acl_r=read
acl_w=write
acl_afs=Access file shares
acl_aps=Access print shares
acl_copy=Can copy shares?
acl_per_fs_acls=Enable per-file_share acls?
acl_per_ps_acls=Enable per-print_share acls?
acl_per_share_acls=Per-share ACLs...
acl_ernow=If you want to enable write access in global ACLs for some object type you must also enable read access for this object type.
acl_sname=Share name
acl_saccess=Access share
acl_sconn=Connections
acl_sopthdr=Share options
acl_ssec=security
acl_sperm=permissions
acl_snaming=file naming
acl_smisc=miscellanious
acl_sprn=or printer
acl_na=n/a
acl_r1=read only
acl_rw=read write
acl_view=view
acl_kill=kill
acl_edit=edit
  07070100057d8f000081a40000000000000002000000013ac0388d00004737000000200000000000000000000000000000001400000003reloc/samba/lang/es   index_title=Gestor de Comparticiones Samba
index_sharelist=lista de comparticiones
index_userlist=lista de usuarios
index_fileshare=compartici髇 de archivos
index_printershare=compartici髇 de impresoras
index_shareconf=configuraci髇 de compartici髇

index_sharename=Nombre de Compartici髇
index_path=Trayectoria
index_security=Seguridad
index_homedir=Todos los Directorios de Inicio
index_allprinter=Todas las Impresoras
index_printer=Impresora
index_defaultprn=Impresora por defecto
index_printableto=Imprimible para
index_prneveryone=Imprimible para todo el mundo
index_prnalluser=Imprimible para todos los usuarios conocidos
index_rwpublic=Lectura/escritura para todo el mundo
index_readonly=S髄o lectura para $1<br>Lectura/escritura para todos los dem醩 usuarios conocidos
index_rwalluser=Lectura/escritura para todos los usuarios conocidos
index_roeveryone=S髄o lectura para todo el mundo
index_readwrite=Lectura/escritura para $1<br>S髄o lectura para todos los dem醩 usuarios conocidos
index_roalluser=S髄o lectura para todos los usuarios conocidos
index_noshares=No se han definido comparticiones de Samba
index_createfileshare=Crear una nueva compartici髇 de archivo
index_createprnshare=Crear una nueva compartici髇 de impresora
index_createcopy=Crear una nueva copia
index_view=Ver Todas las Conexiones
index_start=Arrancar Servidores Samba
index_startmsg=Los servidores samba no parece que est閚 siendo ejecutados en tu sistema. Esto quiere decir que las comparticiones listadas arriba no estar醤 accesibles a los dem醩 ordenadores.
index_restart=Rearrancar Servidores Samba
index_restartmsg=Haz click en este bot髇 para rearrancar los servidores samba en ejecuci髇 de tu sistema. Esto forzar que la actual configuraci髇 sea aplicada.

config_mins=Mins
config_secs=Segs
config_bytes=Octetos
config_never=Nunca
config_all=Todos(as)
config_neither=Ninguno(a)

global_title=Configuraci髇 Global
global_unixnetwork=Red de Unix
global_winnetwork=Red de Windows
global_auth=Autentificaci髇
global_printing=Impresi髇 de Windows a Unix
global_misc=Opciones Varias
global_filedefault=Valores por defecto de Compartici髇 de Archivos
global_prndefault=Valores por defecto de Compartici髇 de Impresoras
global_password=Claves de Acceso Encriptadas
global_edit=Editar usuarios de Samba y sus claves de acceso
global_convert=Convertir usuarios de Unix a usuarios de samba
global_sync=Configurar la sicronizaci髇 autom醫ica de usuarios de Unix y Samba

error_nosamba=No se ha encontrado el ejecutable <tt>$1</tt> del servidor samba. O samba no est instalado en tu sistema o tu <a href="$2">configuraci髇 del m骴ulo</a> is incorrecta.
error_version=Webmin no ha podido obtener la versi髇 de tu ejecutable de servidor samba <tt>$1</tt>. Revisa tu <a href="$2">configuraci髇 del m骴ulo</a> para asegurarte de que la trayectoria es la correcta.
error_config=No se ha encontrado el archivo de configuraci髇 $1. Los m醩 seguro es que Samba no est instalado en tu sistema o que la <a href="$2">configuraci髇 del m骴ulo</a> sea incorrecta.
error_include=Webmin no puede manejar los archivos de configuraci髇 de samba que utilicen las directivas <tt>config</tt> o <tt>include</tt>.
error_delshare=No pude borrar la compartici髇
error_delcopy=La compartici髇 '$1' se copia desde esta compartici髇
error_savename=No pude salvar c髆o dar nombre a archivos

convert_title=Convertir Usuarios
convert_msg=Este formulario te permite sicronizar la lista de usuarios de Unix y Samba. Cuando Samba usa <a href=$1>claves de acceso encriptadas</a>, se usa una lista separada de usuarios y claves de acceso en vez de la lista de usuarios del sistema.
convert_noconv=No convertir o quitar estos usuarios:
convert_update=Actualizar los usuarios ya existentes en Samba a partir de sus detalles en Unix
convert_add=A馻dir nuevos usuarios de Samba a  partir de la lista de usuarios de Unix
convert_delete=Borrar los usuarios de Samba que no existen en Unix
convert_newuser=Para los reci閚 creados usuarios, poner la clave de acceso a:
convert_nopasswd=Sin clave de acceso
convert_lock=Cuenta bloqueada
convert_passwd=Usa esta clave de acceso
convert_convert=Convertir Usuarios

misc_title=Opciones Varias
misc_debug=Nivel de depuraci髇
misc_cachecall=緾ach de llamadas <tt>getwd()</tt>?
misc_lockdir=Directorio de bloqueo
misc_log=Archivo de historial
misc_maxlog=M醲ima medida de historial
misc_rawread=縋ermito lecturas sin usar b鷉er?
misc_rawwrite=縋ermito escrituras sin usar b鷉er?
misc_overlapread=Medida de lectura solapada
misc_chroot=directorio de <tt>chroot()</tt>
misc_smbrun=Trayectoria a <tt>smbrun</tt>
misc_clienttime=Desplazamiento de hora del Cliente
misc_readprediction=縋redicci髇 de Lectura?

net_title=Opciones de Red de Unix
net_idle=Tiempo que transcurre antes de desconectar
net_trustlist=Archivo de usarios/m醧uinas fiables
net_netinterface=Interfaces de Red
net_auto=Autom醫ico(a)
net_uselist=Usar lista...
net_interface=Interfaz
net_netmask=M醩cara de Red
net_keepalive=Paquetes a mantener vivos
net_notsend=No enviar ninguno
net_every=Enviar cada
net_maxpacket=M醲ima medida de paquete
net_listen=Escuchar en direcci髇
net_socket=Opciones de Socket

passwd_title=Opciones de Clave de Acceso
passwd_encrypt=縐so claves de acceso encriptadas?
passwd_allownull=縋ermito claves de acceso nulas?
passwd_program=Programa de Claves de Acceso
passwd_case=Diferencio entre May鷖culas/min鷖culas en Clave de acceso
passwd_chat=Charla para cambiar la clave de acceso
passwd_below=Listado debajo:
passwd_waitfor=Esperar por
passwd_send=Enviar
passwd_map=Mapeo de Nombres de Usuario
passwd_unixuser=Usuarios de Unix
passwd_winuser=Usuarios de Windows

print_title=Opciones de Impresi髇
print_style=Estilo de impresi髇 de Unix
print_show=縑er todas las impresoras?
print_printcap=Archivo printcap
print_cachetime=Tiempo de cach de estado de impresora

smb_title=Opciones de Red de Windows
smb_workgroup=Grupo de Trabajo
smb_wins=modo WINS
smb_winsserver=Ser un servidor WINS
smb_useserver=Usar servidor
smb_description=Descripci髇 del servidor
smb_name=Nombre del servidor
smb_aliase=Aliases del Servidor
smb_default=Servicio por defecto
smb_show=Mostrar siempre los servicios
smb_disksize=M醲ima medida reportada de disco
smb_unlimited=Ilimitada
smb_winpopup=Comando para Winpopup (Enviar mensaje)
smb_priority=Prioridad del hojeador maestro
smb_protocol=Protocolo mayor
smb_master=縃ojeador maestro?
smb_security=Seguridad
smb_sharelevel=Nivel de Compartici髇
smb_userlevel=Nivel de Usuario
smb_passwdserver=Servidor de Claves de Acceso
smb_domain=Dominio
smb_announce=El remoto se anuncia a
smb_nowhere=Ninguno
smb_fromlist=Desde la lista...
smb_ip=Direcci髇 IP
smb_asworkgroup=<b>Como Grupo de Trabajo</b> (opcional)

create_title=Crear Copia
create_msg=Una compartici髇 copiada heredar todos sus valores por defecto de la compartici髇 que se seleccione. Si se cambia la compartici髇 emisora tambi閚 lo har la copia.
create_from=Compartici髇 desde donde copiar:
create_name=Nuevo nombre de compartici髇:

smbuser_title=Usuarios de Samba
smbuser_list=Lista de Usuarios de Samba
smbuser_nouser=No se han definido usuarios de Samba

euser_title=Editar Usuario de Samba
euser_name=Nombre de usuario
euser_uid=UID de Unix
euser_passwd=Clave de Acceso
euser_noaccess=Sin acceso
euser_nopw=Sin clave de acceso
euser_currpw=Clave de acceso actual
euser_newpw=Nueva clave de acceso
euser_realname=Nombre real
euser_homedir=Directorio inicial
euser_shell=Shell
euser_option=Opciones de usario
euser_normal=Usuario normal
euser_nopwrequired=No se requiere clave de acceso
euser_disable=Cuenta desactivada
euser_trust=Cuenta fiable de estaci髇 de trabajo

fmisc_title=Valores varios por defecto de archivo
fmisc_for=Para compartici髇 <tt>$1</tt>
fmisc_lockfile=縃ago bloqueo de archivo?
fmisc_maxconn=M醲 conexiones
fmisc_fake=緽loqueos oportunistas falsos?
fmisc_sharemode=縐so modos de compartici髇?
fmisc_strict=緽loqueo estricto?
fmisc_sync=縎incronizo tras escribir?
fmisc_volume=Nombre de volumen
fmisc_sameas=Igual que la compartici髇
fmisc_unixdos=Mapa de nombre de archivo de Unix a DOS
fmisc_conncmd=Comando a ejecutar al conectarse
fmisc_disconncmd=Comando a ejecutar al desconectarse
fmisc_rootconn=Comando a ejecutar al conectarser <i>como root</i>
fmisc_rootdisconn=Comando a ejecutar al desconectarse <i>como root</i>

fname_title1=Valores por defecto de C髆o dar Nombre a Archivos
fname_title2=Editar C髆o dar Nombre a Archivos
fname_option=Opciones de C髆o dar Nombre a Archivos
fname_manglecase=縄gnorar May鷖culas en nombres cortos?
fname_case=縎ensible a May鷖culas?
fname_defaultcase=縈ay鷖culas/Min鷖culas por Defecto?
fname_lower=Min鷖culas
fname_upper=May鷖culas
fname_preserve=縋reservo may鷖culas/min鷖culas?
fname_shortpreserve=縋reservo may鷖culas/min鷖culas en nombres cortos?
fname_hide=縊culto archivos que empiezan por punto?
fname_archive=縎alvo el atributo de archivo de DOS?
fname_hidden=縎alvo el atributo de oculto de DOS?
fname_system=縎alvo el atributo de sistema de DOS?

fperm_title1=Valores por Defecto de Permisos de Archivo
fperm_title2=Editar Permisos de Archivo
fperm_option=Opciones de Permisos de Archivo
fperm_filemode=Nuevo modo de Archivo de Unix
fperm_dirmode=Nuevo modo de Directorio de Unix
fperm_notlist=Directorios a no listar
fperm_forceuser=Forzar usuario de Unix
fperm_forcegrp=Forzar grupo de Unix
fperm_link=縋ermito enlaces simb髄icos fuera de la compartici髇?
fperm_delro=縋uedo borrar archivos de s髄o lectura?
fperm_forcefile=Forzar modo de archivo de Unix
fperm_forcedir=Forzar modo de directorio de Unix

share_title1=Valores por defecto de Compartici髇 de Archivos
share_title2=Editar Compartici髇 de Archivo
share_title3=Crear Compartici髇 de Archivo
share_info=Informaci髇 de Compartici髇
share_copy=Esta compartici髇 es una copia de <i>$1</i>
share_name=Nombre de Compartici髇
share_home=Compartici髇 de Directorios de Inicio
share_dir=Directorio a compartir
share_available=緿isponible?
share_browseable=縃ojeable?
share_comment=Comentario de Compartici髇
share_view=Ver Conexiones
share_option=Otras opciones de Compartici髇
share_security=Control de Seguridad y Acceso
share_permission=Permisos de Archivo
share_naming=C髆o dar Nombre a Archivos
share_misc=Opciones varias

print_title1=Opciones por defecto de Impresora
print_title2=Editar Opciones de Impresora
print_option=Opciones de Impresora
print_minspace=Espacio m韓imo libre
print_postscript=Forzar impresi髇 postscript
print_command=Comando de Impresi髇
print_queue=Comando para ver la cola
print_delete=Comando para borrar tarea
print_pause=Comando para poner tarea en pausa
print_unresume=Comando para reiniciar tarea
print_driver=Controlador de Impresora

pshare_title1=Valores por defecto de Impresora
pshare_title2=Editar Compartici髇 de Impresora
pshare_title3=Crear Compartici髇 de Impresora
pshare_info=Informaci髇 de Compartici髇
pshare_name=Nombre de Compartici髇
pshare_all=Compartici髇 de Todas las Impresoras
pshare_unixprn=Impresora de Unix
pshare_spool=Directorio de Spool

sec_index1=Valores por defecto de Seguridad
sec_index2=Editar Seguridad
sec_writable=縎e puede escribir?
sec_guest=緼cceso de Invitado?
sec_guestonly=S髄o invitado
sec_guestaccount=Usuario invitado de Unix
sec_limit=縇imito a lista de posibles?
sec_allowhost=M醧uinas a autorizar
sec_onlyallow=S髄o permitir:
sec_denyhost=M醧uinas a denegar
sec_onlydeny=S髄o denegar:
sec_revalidate=縍evalidar usuarios?
sec_validuser=Usuarios v醠idos
sec_validgroup=Grupos v醠idos
sec_invaliduser=Usuarios inv醠idos
sec_invalidgroup=Grupos inv醠idos
sec_possibleuser=Usuarios posibles
sec_possiblegroup=Grupos posibles
sec_rouser=Usuarios de s髄o lectura
sec_rogroup=Grupos de s髄o lectura
sec_rwuser=Usuarios de lectura/escritura
sec_rwgroup=Grupos de lectura/escritura

esync_title=Sincronizaci髇 de Usuario
esync_msg=Se puede configurar Webmin de tal manera que los cambios en la lista de usuarios de Unix sean autom醫icamente aplicados a la lista de usuarios de Samba. Esto s髄o funcionar cuando el m骴ulo de Webmin de <tt>Usuarios y Grupos</tt> sea utilizado para a馻dir, borrar y cambiar usuarios.
esync_add=A馻dir usuario de Samba al crear un usuario de Unix
esync_chg=Cambiar el usuario de Samba cuando se cambie el de Unix
esync_del=Borrar el usuario de Samba al borrar el de Unix
esync_apply=Aplicar

mkpass_title=Convertir Usuarios
mkpass_convfail=No pude convertir usuario
mkpass_msg=Convirtiendo usuarios de Unix...
mkpass_skip=siendo saltado
mkpass_same=ya es el mismo
mkpass_update=siendo actualizado
mkpass_del=siendo borrado
mkpass_passfail=No pude poner la clave de acceso

savecopy_fail=No pude crear la copia
savecopy_global=No se puede utilizar el nombre 'global' para una compartici髇
savecopy_exist=Ya existe una compartici髇 llamada '$1'

saveuser_fail="No pude salvar el usuario"
saveuser_uid="'$1' no es una UID v醠ida de Unix"
saveuser_colon=El nombre real no puede contener el car醕ter:
saveuser_home=No existe el directorio inicial '$1'
saveuser_shell=$1 no es un shell v醠ido
saveuser_pass=No pude cambiar la clave de acceso mediante smbpasswd : $1

savefmisc_fail=No pude salvar las opciones varias
savefmisc_number='$1' no es un n鷐ero v醠ido de conexiones

savefperm_fail=No pude salvar permisos de archivo
savefperm_mode='$1' no es un nombre v醠ido de archivo Unix

savefshare_fail=No pude salvar compartici髇
savefshare_nopath=No se ha digitado la trayectoria
savefshare_exist=Ya existe una compartici髇 llamada '$1'
savefshare_mode="'$1' no es un nombre v醠ido de compartici髇
savefshare_global="No se puede usar el nombre 'global' para una compartici髇

savemisc_fail=No pude salvar las opciones
savemisc_lockdir=No existe el directorio especificado en el Directorio de Bloqueo
savemisc_logdir=No existe el directorio especificado en el Directorio de Historial
savemisc_logsize='$1' no es una medida v醠ida de historial
savemisc_overlap='$1' no es una medida v醠ida de solapamiento de lectura
savemisc_chroot=No existe el directorio de chroot '$1'
savemisc_smbrun=El programa smbrun '$1' no existe o no es ejecutable
savemisc_time='$1' no es un desplazamiento de tiempo v醠ido

savenetfail=No pude salvar las opciones
savenettimeout='$1' no es un tiempo v醠ido de desconexi髇
savenet_ip='$1' no es un byte de IP v醠ido
savenet_keep='$1' no es un intervalo v醠ido de manterner_vivo
savenet_maxxmit='$1' no es una medida v醠ida de paquete m醲imo

savepass_fail=No pude salvar las opciones
savepass_nopass=Tu versi髇 de samba no soporta claves de acceso encriptadas
savepass_passwd=No se ha digitado programa para el cambio de claves de acceso
savepass_level='$1' no es una diferencia v醠ida entre may鷖culas/min鷖culas para claves de acceso
savepass_chat=La secuencia de charla para cambio de clave de acceso est vac韆

savepopts_fail=No pude salvar opciones de impresora
savepopts_number=El espacio m韓imo libre debe de ser un n鷐ero

saveprint_fail=No pude salvar las opciones
saveprint_printcap=No existe el archivo de printcap '$1'
saveprint_cache='$1' no es un tiempo v醠ido de cach

savepshare_fail=No puede salvar compartici髇 de impresora
savepshare_exist=Ya existe una compartici髇 llamada '$1'
savepshare_name='$1' no es un nombre v醠ido de compartici髇
savepshare_global=No se puede usar el nombre 'global' para una compartici髇

savesec_fail=No pude salvar la seguridad

savesmb_fail=No pude salvar las opciones
savesmb_size='$1' no es una medida de disco v醠ida
savesmb_oslevel='$1' no es una prioridad v醠ida de hojeador maestro
savesmb_server=Debes de digitar un servidor de claves de acceso

start_err=No pude arrancar los servidores samba
start_fail=$1 fall

swats_fail=No pude salvar el nombre de usuario
swats_user=Nombre de usuario de SWAT sin poner

viewu_index=Usuarios en curso
viewu_list=Usuarios en curso de <i>$1</i>
viewu_share=Compartici髇
viewu_user=Usuario
viewu_group=Grupo
viewu_from=Conectado desde
viewu_time=Conectado a las
viewu_pid=ID del proceso
viewu_msg1=Haz click en una ID de proceso de la lista superior para desconectar al usuario.
viewu_msg2=En este momento no hay usuarios conectados

log_apply=Servidores Samba rearrancados
log_start=Arrancados servidores Samba
log_save_fshare=Modificada compartici髇 de archivo $1
log_save_pshare=Modificada comprtici髇 de impresora $1
log_save_sec=Modificada seguridad y control de acceso para compartici髇 $1
log_save_fperm=Modificados permisos de archivo para compartici髇 $1
log_save_fname=Modificado nombrado de archivos para compartici髇 $1
log_save_fmisc=Modificadas opciones varias para compartici髇 $1
log_save_popts=Modificadas opciones de impresora para compartici髇 $1
log_default_fshare=Cambiados valores por defecto de compartici髇 de archivo
log_default_pshare=Cambiados valores por defecto de compartici髇 de impresora
log_kill=Proceso $1 desconectado
log_skill=Desconectado proceso $1 desde compartici髇 $2
log_create_fshare=Creada compartici髇 de archivo $1
log_create_pshare=Creada compartici髇 de impresora $1
log_delete_fshare=Borrada compartici髇 de archivo $1
log_delete_pshare=Borrada comartici髇 de impresora $1
log_net=Cambiadas opciones de red de Unix
log_smb=Cambiadas opciones de red de Windows
log_pass=Cambiadas opciones de autenticaci髇
log_print=Cambiadas opciones de impresi de Windows a Unix
log_misc=Cambiadas opciones varias
log_sync=Configurada sincronizaci髇 de usuario de Unix
log_epass=Convertidos usuarios Unix a Samba
log_epass_l=Convertidos usuarios Unix a usuarios Samba ($1 creados, $2 modificados, $3 borrados)
log_copy=Copiada compartici髇 $2 a $1
log_save_euser=Modificado usuario Samba $1
log_delete_euser=Borrado usuario Samba $1

swat_title=Hacer login a SWAT
swat_list=Hacer login a SWAT
swat_msg1=Tu nombre de usuario y clave de acceso a SWAT son incorrectos. Usa el formulario inferior para hacer login de nuevo.
swat_msg2=Es necesario que digites un nombre de usuario y clave de acceso para hacer login a SWAT. Puede ser cualquier usuario de tu sistema.
swat_msg3=No puedes ejecutar SWAT desde Webmin ya que tu configuraci髇 de Samba tiene la opci髇 <tt>$1:...</tt> (permitir m醧uinas) puesta.
swat_msg4=Sin embargo, puedes conectar a SWAT directamente en $1
swat_username=Nombre de usuario
swat_password=Clave de Acceso
swat_login=Hacer login
swat_clear=Limpiar

 07070100057d90000081a40000000000000002000000013ac0388d0000507a000000200000000000000000000000000000001400000003reloc/samba/lang/pl   index_title=Zarz眃ca zasob體 Samby
index_sharelist=listy zasob體
index_userlist=listy u縴tkownik體
index_fileshare=zasobu dyskowego
index_printershare=drukarki sieciowej
index_shareconf=konfiguracji zasobu

index_sharename=Nazwa zasobu
index_path=ie縦a
index_security=Bezpiecze駍two
index_homedir=Wszystkie katalogi domowe
index_allprinter=Wszystkie drukarki
index_printer=Drukarka
index_defaultprn=Drukarka domy秎na
index_printableto=Prawo drukowania dla
index_prneveryone=Prawo drukowania dla wszystkich
index_prnalluser=Prawo drukowania dla znanych u縴tkownik體
index_rwpublic=Odczyt i&nbsp;zapis dla wszystkich
index_readonly=Tylko do odczytu dla $1<br>Odczyt i&nbsp;zapis dla innych znanych u縴tkownik體
index_rwalluser=Odczyt i&nbsp;zapis dla znanych u縴tkownik體
index_roeveryone=Tylko do odczytu dla wszystkich
index_readwrite=Odczyt i&nbsp;zapis dla $1<br>Tylko do odczytu dla innych znanych u縴tkownik體
index_roalluser=Tylko do odczytu dla znanych u縴tkownik體
index_noshares=Nie zdefiniowano zasob體 Samby
index_createfileshare=Utw髍z nowy zas骲 dyskowy
index_createprnshare=Utw髍z now drukark sieciow
index_createcopy=Utw髍z now kopi
index_view=Poka wszystkie po潮czenia
index_start=Uruchom serwery Samby
index_startmsg=W&nbsp;Twoim systemie nie ma dzia砤j serwery Samby. Oznacza to, 縠 powy縮ze zasoby nie b阣 dost阷ne z&nbsp;innych komputer體.
index_restart=Restartuj serwery Samby
index_restartmsg=Naci秐ij ten przycisk, aby zrestartowa serwery Samby w&nbsp;Twoim systemie. Wymusi to zastosowanie bie勘cej konfiguracji.

config_mins=min.
config_secs=sek.
config_bytes=bajt體
config_never=Nigdy
config_all=Wszystkie
config_neither=痑den

global_title=Konfiguracja og髄na
global_unixnetwork=Sie Uniksa
global_winnetwork=Sie Windows
global_auth=Autoryzacja
global_printing=Drukowanie z&nbsp;Windows pod Uniksem
global_misc=Opcje r罂ne
global_filedefault=Domy秎ne ustawienia zasob體 dyskowych
global_prndefault=Domy秎ne ustawienia drukarek sieciowych
global_password=Has砤 zaszyfrowane
global_edit=Zmie u縴tkownik體 i&nbsp;has砤 Samby
global_convert=Przetw髍z u縴tkownik體 Uniksa na u縴tkownik體 Samby
global_sync=Konfiguruj automatyczn synchronizacj u縴tkownik體 Uniksa i&nbsp;Samby

error_nosamba=Nie znaleziono progrzmu serwera Samby <tt>$1</tt>. Samba nie jest zainstalowana w&nbsp;Twoim systemie lub Twoja <a href="$2">konfiguracja modu硊</a> jest nieprawid硂wa.
error_version=Webminowi nie uda硂 si uzyska wersji Twojego programu serwera Samby <tt>$1</tt>. Sprawd swoj <a href="$2">konfiguracj modu硊</a>, aby si upewni, 縠 禼ie縦a jest prawid硂wa.
error_config=Nie znaleziono pliku konfiguracyjnego $1. Najprawdopodobniej w&nbsp;Twoim systemie nie zainstalowano Samby lub Twoja <a href="$2">konfiguracja modu硊</a> jest nieprawid硂wa.
error_include=Webmin nie obs硊guje plik體 konfiguracyjnych Samby, kt髍e korzystaj z&nbsp;dyrektyw <tt>config</tt> lub <tt>include</tt>.
error_delshare=Nie uda硂 sie usun辨 zasobu
error_delcopy=Zas骲 '$1' jest kopi tego zasobu
error_savename=Nie uda硂 si zachowa nazewnictwa plik體

convert_title=Przetw髍z u縴tkownik體
convert_msg=Za pomoc tego formularza mo縠sz zsynchronizowa listy u縴tkownik體 Uniksa i&nbsp;Samby. Gdy Samba korzysta z&nbsp;<a href=$1>zaszyfrowanych hase</a>, zamiast systemowej listy u縴tkownik體 u縴wana jest osobna lista u縴tkownik體 i&nbsp;hase.
convert_noconv=Nie konwertuj ani nie usuwaj nast阷uj眂ych u縴tkownik體:
convert_update=Aktualizuj istniej眂ych u縴tkownik體 Samby na podstawie ich danych z&nbsp;Uniksa
convert_add=Dodaj nowych u縴tkownik體 Samby na podstawie listy u縴tkownik體 Uniksa
convert_delete=Usu u縴tkownik體 Samby, kt髍zy nie istniej pod Uniksem 
convert_newuser=Ustaw has砤 nowo utworzonych u縴tkownik體 jako:
convert_nopasswd=Brak has砤
convert_lock=Konto zablokowane
convert_passwd=Nast阷uj眂e has硂
convert_convert=Przetw髍z u縴tkownik體

misc_title=Opcje r罂ne
misc_debug=Poziom logowania
misc_cachecall=Buforowa wywo砤nia <tt>getwd()</tt>?
misc_lockdir=Zablokowa katalog
misc_log=Plik logu
misc_maxlog=Maks. rozmiar logu
misc_rawread=Pozwoli na niskopoziomowe odczyty?
misc_rawwrite=Pozwoli na niskopoziomowe zapisy?
misc_overlapread=Overlapping read size
misc_chroot=Katalog <tt>chroot()</tt>
misc_smbrun=ie縦a do <tt>smbrun</tt>
misc_clienttime=R罂nica czasu klienta
misc_readprediction=Przewidywanie odczyt體?

net_title=Opcje sieci Uniksa
net_idle=Czas bezczynno禼i przed roz潮czeniem
net_trustlist=Plik zaufanych host體/u縴tkownik體
net_netinterface=Interfejsy sieciowe
net_auto=Automatycznie
net_uselist=Z&nbsp;listy...
net_interface=Interfejsy
net_netmask=Maska sieci
net_keepalive=Pakiety podtrzymuj眂e
net_notsend=Nie wysy砤j 縜dnych
net_every=Wysy砤j co
net_maxpacket=Maksymalny rozmiar pakietu
net_listen=Nas硊chuj na adresach
net_socket=Opcje gniazda

passwd_title=Opcje hase
passwd_encrypt=U縴wa hase zaszyfrowanych?
passwd_allownull=Pozwala na puste has砤?
passwd_program=Program zmiany has砤
passwd_case=R罂nicowanie wielko禼i liter w&nbsp;has砤ch
passwd_chat=Konwersacja zmiany has砤 (chat)
passwd_below=Poni縮ze:
passwd_waitfor=Czekaj na
passwd_send=Wy秎ij
passwd_map=Podstawianie nazw u縴tkownik體
passwd_unixuser=U縴tkownicy Uniksa
passwd_winuser=U縴tkownicy Windows

print_title=Opcje drukowania
print_style=Rodzaj drukowania uniksowego
print_show=Pokazywa wszyskie drukarki?
print_printcap=Plik opisu drukarek (printcap)
print_cachetime=Czas buforowania stanu drukarki

smb_title=Opcje sieci Windows
smb_workgroup=Grupa robocza
smb_wins=Tryb WINS
smb_winsserver=By serwerem WINS
smb_useserver=U縴wa serwera
smb_description=Opis serwera
smb_name=Nazwa serwera
smb_aliase=Aliasy serwera
smb_default=Us硊ga domy秎na
smb_show=Zawsze pokazywa us硊gi
smb_disksize=Maks. podawany rozmiar dysku
smb_unlimited=Nieograniczony
smb_winpopup=Polecenie winpopup
smb_priority=Priorytet nadrz阣nego <tt>browsera</tt>
smb_protocol=Najwy縮zy protok蟪
smb_master=Nadrz阣ny <tt>browser</tt>?
smb_security=Bezpiecze駍two
smb_sharelevel=Na poziomie zasob體
smb_userlevel=Na poziomie u縴tkownik體
smb_passwdserver=Serwer autoryzacji
smb_domain=Domena
smb_announce=Rozg砤sza si zdalnie
smb_nowhere=Nigdzie
smb_fromlist=Z&nbsp;listy...
smb_ip=Adresom IP
smb_asworkgroup=<b>Jako grupa robocza</b> (opcjonalnie)

create_title=Utw髍z kopi
create_msg=Skopiowany zas骲 odziedziczy wszystkie domy秎ne ustawienia z&nbsp;wybranego przez Ciebie zasobu. Je秎i zmieniony zostanie zas骲 紃骴硂wy, to kopia r體nie. 
create_from=Skopiowa zas骲 z:
create_name=Nazwa nowego zasobu:

smbuser_title=U縴tkownicy Samby
smbuser_list=Lista u縴tkownik體 Samby
smbuser_nouser=Nie zdefiniowano u縴tkownik體 Samby

euser_title=Zmie u縴tkownika Samby
euser_name=Nazwa u縴tkownika
euser_uid=Numer UID w&nbsp;Uniksie
euser_passwd=Has硂
euser_noaccess=Bez dost阷u
euser_nopw=Bez has砤
euser_currpw=Bie勘ce has硂
euser_newpw=Nowe has硂
euser_realname=Rzeczywista nazwa
euser_homedir=Katalog domowy
euser_shell=Pow硂ka
euser_option=Opcje u縴tkownika
euser_normal=Zwyk硑 u縴tkownik
euser_nopwrequired=Has硂 nie wymagane
euser_disable=Konto zablokowane
euser_trust=Konto zaufane dla stacji roboczej

fmisc_title=R罂ne ustawienia domy秎ne dla plik體
fmisc_for=Dla zasobu <tt>$1</tt>
fmisc_lockfile=Blokowanie plik體?
fmisc_maxconn=Maks. ilo舵 po潮cze
fmisc_fake=Fake oplocks?
fmisc_sharemode=U縴wa tryb體 zasobu?
fmisc_strict=Blokowanie dok砤dne?
fmisc_sync=Zrzut bufor體 po zapisie?
fmisc_volume=Nazwa wolumenu
fmisc_sameas=Taka jak zasobu
fmisc_unixdos=Konwersja nazw plik體 Unix-DOS
fmisc_conncmd=Polecenie wykonywane przy po潮czeniu
fmisc_disconncmd=Polecenie wykonywane przy roz潮czeniu
fmisc_rootconn=Polecenie wykonywane przy po潮czeniu <i>jako root</i>
fmisc_rootdisconn=Polecenie wykonywane przy roz潮czeniu <i>jako root</i>

fname_title1=Domy秎ne ustawienia nazw plik體
fname_title2=Zmie nazewnictwo plik體
fname_option=Opcje nazewnictwa plik體
fname_manglecase=Przekszta砪a wielko舵 liter?
fname_case=Rozr罂nia wielko舵 liter?
fname_defaultcase=Domy秎na wielko舵 liter
fname_lower=Ma砮
fname_upper=Wielkie
fname_preserve=Zachowywa wielko舵 liter?
fname_shortpreserve=Zachowywa wielko舵 liter w&nbsp;kr髏kich nazwach?
fname_hide=Ukry pliki zaczynaj眂e si od kropki?
fname_archive=Zachowywa atrybut DOS-a &quot;archiwalny&quot;?
fname_hidden=Zachowywa atrybut DOS-a &quot;ukryty&quot;?
fname_system=Zachowywa atrybut DOS-a &quot;systemowy&quot;?

fperm_title1=Domy秎ne prawa do plik體
fperm_title2=Zmie prawa do plik體
fperm_option=Opcje praw do plik體
fperm_filemode=Atrybuty uniksowe dla nowych plik體
fperm_dirmode=Atrybuty uniksowe dla nowych katalog體
fperm_notlist=Katalogi nie wy秝ietlane
fperm_forceuser=Wymusza u縴tkownika Uniksa
fperm_forcegrp=Wymusza grup Uniksa
fperm_link=Pozwala na dowi眤ania symboliczne poza zas骲?
fperm_delro=Pozwoli usuwa pliki &quot;tylko do odczytu&quot;?
fperm_forcefile=Wymusza atrybuty uniksowe dla plik體
fperm_forcedir=Wymusza atrybuty uniksowe dla katalog體

share_title1=Domy秎ne ustawienia zasob體 dyskowych
share_title2=Zmie zas骲 dyskowy
share_title3=Utw髍z zas骲 dyskowy
share_info=Informacje o&nbsp;zasobie
share_copy=Ten zas骲 jest kopi <i>$1</i>
share_name=Nazwa zasobu
share_home=Zas骲 katalog體 domowych
share_dir=Udost阷niany katalog
share_available=Dostepno舵?
share_browseable=Przegl眃anie?
share_comment=Uwagi o&nbsp;zasobie
share_view=Poka po潮czenia
share_option=Inne opcje zasobu
share_security=Bezpiecze駍two i&nbsp;kontrola dost阷u
share_permission=Prawa do plik體
share_naming=Nazewnictwo plik體
share_misc=Opcje r罂ne

print_title1=Domy秎ne ustawienia opcji drukarek
print_title2=Zmie opcje drukarek
print_option=Opcje drukarek
print_minspace=Minimalna ilo舵 wolnego miejsca
print_postscript=Wymusi drukowanie postscriptowe
print_command=Polecenie drukowania
print_queue=Polecenie wy秝ietlenia kolejki
print_delete=Polecenie usuni阠ia zadania
print_pause=Polecenie wstrzymania zadania
print_unresume=Polecenie wznowienia zadania
print_driver=Sterownik drukarki

pshare_title1=Domy秎ne ustawienia drukarek sieciowych
pshare_title2=Zmie drukark sieciow
pshare_title3=Utw髍z drukark sieciow
pshare_info=Informacje o&nbsp;drukarce
pshare_name=Nazwa drukarki
pshare_all=Zas骲 wszystkich drukarek
pshare_unixprn=Drukarka uniksowa
pshare_spool=Katalog kolejki

sec_index1=Domy秎ne ustawienia bezpiecze駍twa
sec_index2=Zmie bezpiecze駍two
sec_writable=Prawo zapisu?
sec_guest=Dost阷 dla go禼i?
sec_guestonly=Tylko go舵
sec_guestaccount=U縴tkownik Uniksa b阣眂y go禼iem
sec_limit=Ograniczy do listy mo縧iwych?
sec_allowhost=Pozw髄 hostom
sec_onlyallow=Pozw髄 jedynie
sec_denyhost=Zabro hostom
sec_onlydeny=Zabro jedynie
sec_revalidate=Autoryzowa przy ka縟ym po潮czeniu?
sec_validuser=Dozwoleni u縴tkownicy
sec_validgroup=Dozwolone grupy
sec_invaliduser=Niedozwoleni u縴tkownicy
sec_invalidgroup=Niedozwolone grupy
sec_possibleuser=Mo縧iwi u縴tkownicy
sec_possiblegroup=Mo縧iwe grupy
sec_rouser=U縴tkownicy &quot;tylko do odczytu&quot;
sec_rogroup=Grupy &quot;tylko do odczytu&quot;
sec_rwuser=U縴tkownicy z&nbsp;prawami odczytu/zapisu
sec_rwgroup=Grupy z&nbsp;prawami odczytu/zapisu

esync_title=Synchronizacja u縴tkownik體
esync_msg=Webmina mo縩a skonfigurowa tak, aby zmiany listy u縴tkownik體 Uniksa mia硑 automatycznie zastosowanie do listy u縴tkownik體 Samby. B阣zie to dzia砤 jedynie, gdy u縴tkownicy s dodawani, usuwani, zmieniani przy pomocy modu硊 Webmina <tt>U縴tkownicy i&nbsp;grupy</tt>.
esync_add=Dodawaj u縴tkownika Samby, gdy dodawany jest u縴tkownik Uniksa
esync_chg=Zmie u縴tkownika Samby, gdy zmieniany jest u縴tkownik Uniksa
esync_del=Usu u縴tkownika Samby, gdy usuwany jest u縴tkownik Uniksa
esync_apply=Zastosuj

mkpass_title=Przetw髍z u縴tkownik體
mkpass_convfail=Nie uda硂 si przetworzy u縴tkownik體
mkpass_msg=Przetwarzanie u縴tkownik體 Uniksa...
mkpass_skip=- pomini阾o
mkpass_same=- brak r罂nic
mkpass_update=- zaktualizowano
mkpass_del=- usuni阾o
mkpass_passfail=Nie uda硂 si ustawi has砤

savecopy_fail=Nie uda硂 si utworzy kopii
savecopy_global=Nie mo縩a nada zasobowi nazwy 'global'
savecopy_exist=Zas骲 o&nbsp;nazwie '$1' ju istnieje

saveuser_fail=Nie uda硂 si zachowa u縴tkownika
saveuser_uid='$1' nie jest poprawnym numerem UID Uniksa
saveuser_colon=Rzeczywista nazwa nie mo縠 zawiera znaku :
saveuser_home=Katalog domowy '$1' nie istnieje
saveuser_shell=$1 nie jest poprawn pow硂k
saveuser_pass=Nie uda硂 si zmieni has砤 przy pomocy <tt>smbpasswd</tt>: $1

savefmisc_fail=Nie uda硂 si zachowa opcji r罂nych
savefmisc_number='$1' nie jest poprawn liczb po潮cze

savefperm_fail=Nie uda硂 si zachowa praw do plik體
savefperm_mode='$1' nie jest poprawnym uniksowym trybem pliku

savefshare_fail=Nie uda硂 si zachowa zasobu
savefshare_nopath=Nie podano 禼ie縦i
savefshare_exist=Zas骲 o&nbsp;nazwie '$1' ju istnieje
savefshare_mode='$1' nie jest poprawn nazw zasobu
savefshare_global=Nie mo縩a nada zasobowi nazwy 'global'

savemisc_fail=Nie uda硂 si zachowa opcji"
savemisc_lockdir=The directory containing the lock directory does not exist
savemisc_logdir=The directory containing the log file does not exist
savemisc_logsize='$1' nie jest poprawnym rozmiarem logu
savemisc_overlap='$1' is not a valid overlapping read size
savemisc_chroot=Katalog chroot '$1' nie istnieje
savemisc_smbrun=Program smbrun '$1' nie istnieje lub nie jest wykonywalny
savemisc_time='$1' nie jest poprawn r罂nic czasu

savenet_fail=Nie uda硂 si zachowa opcji
savenet_timeout='$1' nie jest poprawnym czasem roz潮czenia
savenet_ip='$1' nie jest poprawnym bajtem IP
savenet_keep='$1' nie jest poprawnym okresem podtrzymania
savenet_maxxmit='$1' nie jest poprawnym maksymalnym rozmiarem pakietu

savepass_fail=Nie uda硂 si zachowa opcji
savepass_nopass=Twoja wersja Samby nie obs硊guje szyfrowanych hase
savepass_passwd=Nie podano programu zmiany has砤
savepass_level='$1' nie jest poprawnym poziomem r罂nicowania wielko禼i liter
savepass_chat=Konwersacja zmiany has砤 (chat) jest pusta

savepopts_fail=Nie uda硂 si zachowa opcji drukarek
savepopts_number=Minimalna ilo舵 wolnego miejsca musi by liczb

saveprint_fail=Nie uda硂 si zachowa opcji
saveprint_printcap=Plik opisu drukarek (printcap) '$1' nie istnieje
saveprint_cache='$1' nie jest poprawnym czasem bufurowania

savepshare_fail=Nie uda硂 si zachowa drukarki sieciowej
savepshare_exist=Zas骲 o&nbsp;nazwie '$1' ju istnieje
savepshare_name='$1' nie jest poprawn nazw zasobu
savepshare_global=Nie mo縩a nada zasobowi nazwy 'global'

savesec_fail=Nie uda硂 si zachowa bezpiecze駍twa

savesmb_fail=Nie uda硂 si zachowa opcji
savesmb_size='$1' nie jest poprawnym rozmiarem dysku
savesmb_oslevel='$1' nie jest poprawnym priorytetem nadrz阣nego <tt>browsera</tt>
savesmb_servel=Musisz poda serwer autoryzacji

start_err=Nie uda硂 si uruchomi serwer體 Samby
start_fail=$1 nie zosta uruchomiony

swats_fail=Nie uda硂 si zachowa nazwy u縴tkownika
swats_user=Nie podano nazwy u縴tkownika dla SWAT-a

viewu_index=Bie勘cy u縴tkownicy
viewu_list=Bie勘cy u縴tkownicy $1
viewu_share=Zas骲
viewu_user=U縴tkownik
viewu_group=Grupa
viewu_from=Pod潮czony z
viewu_time=Czas pod潮czenia
viewu_pid=ID procesu
viewu_msg1=Naci秐ij na numer ID procesu z&nbsp;powy縮zej listy, aby od潮czy danego u縴tkownika.
viewu_msg2=Brak pod潮czonych w&nbsp;tej chwili u縴tkownik體

log_apply=Zrestartowano serwery Samby
log_start=Uruchomiono serwery Samby
log_save_fshare=Zmieniono zas骲 dyskowy $1
log_save_pshare=Zmieniono drukark sieciow $1
log_save_sec=Zmieniono opcje bezpiecze駍twa i&nbsp;kontroli dost阷u dla zasobu $1
log_save_fperm=Zmieniono prawa do plik體 dla zasobu $1
log_save_fname=Zmieniono opcje nazewnictwa plik體 dla zasobu $1
log_save_fmisc=Zmieniono opcje r罂ne dla zasobu $1
log_save_popts=Zmieniono opcje drukarki dla zasobu $1
log_default_fshare=Zmieniono ustawienia domy秎ne zasob體 plikowych
log_default_pshare=Zmieniono ustawienia domy秎ne drukarek sieciowych
log_kill=Roz潮czono proces $1
log_skill=Od潮czono proces $1 od zasobu $2
log_create_fshare=Utworzono zas骲 plikowy $1
log_create_pshare=Utworzono drukark sieciow $1
log_delete_fshare=Skasowano zas骲 plikowy $1
log_delete_pshare=Skasowano drukark sieciow $1
log_net=Zmieniono opcje sieci Uniksa
log_smb=Zmieniono opcje sieci Windows
log_pass=Zmieniono opcje autoryzacji
log_print=Zmieniono opcje drukowania z&nbsp;Windows pod Uniksem
log_misc=Zmieniono opcje r罂ne
log_sync=Skonfigurowano synchronizacj u縴tkownik體 z&nbsp;Uniksem
log_epass=Przetworzono u縴tkownik體 Uniksa na u縴tkownik體 Samby
log_epass_l=Przetworzono u縴tkownik體 Uniksa na u縴tkownik體 Samby ($1 utworzono, $2 zmieniono, $3 usuni阾o)
log_copy=Skopiowano zas骲 $2 do $1
log_save_euser=Zmieniono u縴tkownika Samby $1
log_delete_euser=Usuni阾o u縴tkownika Samby $1

swat_title=Logowanie do SWAT-a
swat_list=Logowanie do SWAT-a
swat_msg1=Twoja bie勘ca nazwa u縴tkownika SWAT-a i&nbsp;has硂 s nieprawid硂we. Zaloguj si ponownie przy pomocy poni縮zego formularza.
swat_msg2=Nazwa u縴tkownika i&nbsp;has硂 s niezb阣ne aby zalogowa si do SWAT-a. Zazwyczaj mo縠 to by dowolny u縴tkownik Twojego systemu.
swat_msg3=Nie mo縠sz uruchamia SWAT-a poprzez Webmina, poniewa masz w潮czon opcj <tt>$1:...</tt> (allow hosts) w&nbsp;konfiguracji Samby.
swat_msg4=Jednak縠, m骻砨y si po潮czy ze SWAT-em bezpo秗ednio poprzez $1
swat_username=Nazwa u縴tkownika
swat_password=Has硂
swat_login=Zaloguj si
swat_clear=Wyczy舵

eacl_aviol=Naruszenie kontroli dost阷u
eacl_np=Nie masz uprawnie do
eacl_papply=restartoania tej us硊gi
eacl_pcn=zmiany opcji sieci Uniksa
eacl_pcs=zmiany opcji sieci smb
eacl_pcp=zmiany opcji hase
eacl_pcprint=zmiany opcji drukowania
eacl_pcm=zmiany opcji r罂nych
eacl_pcswat=korzystania ze SWAT-a
eacl_pcopy=kopiowania zasob體
eacl_pconn_all=ogl眃ania wszystkich po潮cze
eacl_pconn=ogl眃ania po潮cze do tego zasobu
eacl_pgkill=przerywania po潮cze
eacl_pkill=przerwania tego po潮czenia
eacl_pus=zmiany zasob體
eacl_pcs=tworzenia zasob體
eacl_pds=kasowania zasob體
eacl_pusec=zmiany opcji zabezpiecze i&nbsp;kontroli dost阷u dla tego zasobu
eacl_pufperm=zmiany opcji praw do plik體 dla tego zasobu
eacl_pufname=zmiany opcji nazewnictwa plik體 dla tego zasobu
eacl_pufmisc=zmiany opcji r罂nych dla tego zasobu
eacl_pupopt=zmiany opcji drukarek dla tego zasobu
eacl_pmpass=inicjalizacji bazy u縴tkownik體 Samby
eacl_pmsync=zarz眃zania synchronizacj u縴tkownik體 Unix-Samba
eacl_pmusers=zarz眃zania u縴tkownikami Samby
eacl_pvusers=dost阷u do u縴tkownik體 Samby
eacl_pvfmisc=dost阷u do opcji r罂nych dla tego zasobu
eacl_pvfname=dost阷u do opcji nazewnictwa plik體 dla tego zasobu
eacl_pvperm=dost阷u do opcji praw do plik體 dla tego zasobu
eacl_pvsec=dost阷u do zabezpiecze i&nbsp;kontroli dost阷u dla tego zasobu
eacl_pvpopt=dost阷u do opcji drukarek dla tego zasobu
eacl_pafs=dost阷u do tego zasobu plikowego
eacl_paps=dost阷u do tej drukarki wsp蟪dzielonej
eacl_pcps=tworzenia drukarek wsp蟪dzielonych
eacl_pcfs=tworzenia zasob體 plikowych

acl_apply=Mo縠 zastosowa zmian?
acl_view_all_con=Mo縠 przegl眃a wszystkie po潮czenia?
acl_kill_con=Mo縠 przerywa po潮czenia?
acl_conf_net=Mo縠 konfigurowa ustawienia sieci Uniksa?
acl_conf_smb=Mo縠 konfigurowa ustawienia sieci Windows?
acl_conf_pass=Mo縠 konfigurowa ustawienia autoryzacji?
acl_conf_print=Mo縠 konfigurowa ustawienia drukarek?
acl_conf_misc=Mo縠 konfigurowa ustawienia r罂ne?
acl_swat=Mo縠 korzysta ze SWAT-a?
acl_enc_passwd_opts=Opcje szyfrowania hase.
acl_view_users=Mo縠 przegl眃a baz u縴tkownik體 Samby?
acl_maint_users=Mo縠 zmienia u縴tkownik體 Samby?
acl_maint_makepass=Mo縠 przetwarza u縴tkownik體 Uniksa na u縴tkownik體 Samby?
acl_maint_sync=Mo縠 zarz眃za automatyczn synchronizacj u縴tkownik體 Uniksa z u縴tkownikami Samby?
acl_hide=Ukrywa niedost阷ne obiekty?
acl_c=tworzenie
acl_r=odczyt
acl_w=zapis
acl_afs=Dost阷 do zasob體 plikowych
acl_aps=Dost阷 do drukarek wsp蟪dzielonych
acl_copy=Mo縠 kopiowa zasoby?
acl_per_fs_acls=W潮czy ACL-e dla poszczeg髄nych zasob體 plikowych?
acl_per_ps_acls=W潮czy ACL-e dla poszczeg髄nych drukarek wsp蟪dzielonych?
acl_per_share_acls=ACL-e dla poszczeg髄nych zasob體...
acl_ernow=Je秎i chcesz w潮czy w&nbsp;og髄nych ACL-ach dla pewnego rodzaju obiekt體 dost阷 z&nbsp;prawem zapisu, to musisz r體nie w潮czy prawo do odczytu dla tego rodzaju obiekt體.
acl_sname=Nazwa zasobu
acl_saccess=Dost阷 do zasobu
acl_sconn=Po潮czenia
acl_sopthdr=Opcje zasobu
acl_ssec=zabezpieczenia
acl_sperm=uprawnienia
acl_snaming=nazewnictwo plik體
acl_smisc=r罂ne
acl_sprn=lub drukarka
acl_na=n/a
acl_r1=tylko do odczytu
acl_rw=do odczytu i&nbsp;zapisu
acl_view=obejrzyj
acl_kill=zabij
acl_edit=zmie
  07070100057d91000081a40000000000000002000000013ac0388d00003971000000200000000000000000000000000000001700000003reloc/samba/lang/ru_RU    savefmisc_number='$1' 礤 怆弪 漕矬耱桁 觐腓麇耱忸 耦邃桧屙栝
misc_clienttime=鸯妁屙桢 觌桢眚 镱 怵屐屙
convert_lock=窿滏弪 玎犭铌桊钼囗
pshare_title1=相疣戾蝠 疱耋瘃 镥鬣蜩
pshare_title2=绣溧牝桊钼囗桢 镟疣戾蝠钼 镥鬣蜩
pshare_title3=杨玟囗桢 疱耋瘃 镥鬣蜩
net_keepalive=相赍螓 keepalive
smb_default=彦疴桉 镱 箪铍鬣龛
savefshare_exist=绣耋瘃  桁屙屐 '$1' 箧 耋耱怏弪
config_neither=悟觌栩
fperm_forceuser=青耱噔栩 桉镱朦珙忄螯 Unix 镱朦珙忄蝈
net_title=相疣戾蝠 Unix 皴蜩
smb_fromlist=如 耧桉赅...
sec_revalidate=Revalidate 镱朦珙忄蝈脲?
sec_rwuser=阻蜞桢/镨 镱朦珙忄蝈腓
index_printershare=镥鬣蝽 疱耋瘃
fmisc_lockfile=岭铌桊钼觇 羿殡钼?
fname_defaultcase=绣汨耱 镱 箪铍鬣龛?
create_from=暑镨痼屐 疱耋瘃:
saveprint_fail=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼
print_queue=暑爨礓 潆 镱赅玎 铟屦邃
global_convert=橡孱狃噻钼囗桢 镱朦珙忄蝈脲 Unix  镱朦珙忄蝈腓 Samba
saveuser_home=念爨栝 赅蜞腩 '$1' 礤 耋耱怏弪
smb_security=铃珙镟耥铖螯
print_cachetime=吗屐 挲痤忄龛 耦耱龛 镳桧蝈疣
swats_user=悟耋蝰蜮箦 SWAT 桁 镱朦珙忄蝈
fmisc_conncmd=暑爨礓 玎矬耜噱爨 镳 镱漶铄滂礤龛
smb_description=物桉囗桢 皴疴屦
print_command=暑爨礓 潆 镥鬣蜩
fname_lower=丸骓栝
savemisc_overlap='$1' 礤 怆弪 漕矬耱桁 疣珈屦铎 overlapping read
share_copy=泥眄 疱耋瘃 怆弪 觐镨彘 <i>$1</i>
misc_cachecall=数痤忄螯 恹珙恹 <tt>getwd()</tt>?
smb_name=褥 皴疴屦
net_socket=相疣戾蝠 耦赍蜞
global_title=吾 磬耱痤殛
fmisc_sharemode=锐镱朦珙忄螯 share modes?
share_view=橡铖祛蝠 耦邃桧屙栝
convert_passwd=锐镱朦珙忄螯 溧眄 镟痤朦
index_homedir=埋 漕爨桢 赅蜞腩汨
euser_normal=吾睇 镱朦珙忄蝈朦
misc_title=橡铟桢 镟疣戾蝠
sec_allowhost=朽琊屮屙睇 躅耱
savepass_nopass=锣 忮瘃 samba 礤 镱滗屦骅忄弪 麴钼囗睇 镟痤腓
savepass_chat=仰屙囵栝 桤戾礤龛 镟痤 矬耱
euser_homedir=念爨栝 赅蜞腩
global_prndefault=相疣戾蝠 潆 镥鬣蝽 疱耋瘃钼
passwd_program=橡钽疣祆 潆 镟痤脲
misc_maxlog=锑犟. 疣珈屦 骟痦嚯
global_filedefault=相疣戾蝠 潆 羿殡钼 疱耋瘃钼
print_title1=相疣戾蝠 疱耋瘃钼 镥鬣蜩
print_title2=绣溧牝桊钼囗桢 镟疣戾蝠钼 镥鬣蜩
savemisc_logsize='$1' 礤 怆弪 漕矬耱桁 疣珈屦铎 骟痦嚯
pshare_info=软纛痨圉  疱耋瘃
savemisc_smbrun=橡钽疣祆 smbrun '$1' 礤 耋耱怏弪, 桦 礤 怆弪 桉镱腠屐铋
index_printer=橡桧蝈
euser_title=绣溧牝桊钼囗桢 镱朦珙忄蝈
saveuser_colon=绣嚯铄 桁 礤 祛驽 耦溴疰囹 耔焘铍:
create_title=杨玟囗桢 觐镨
print_printcap=脏殡 Printcap
savepshare_fail=硒栳赅 镳 耦躔囗屙梃 疱耋瘃 镥鬣蜩
smbuser_list=扬桉铌 镱朦珙忄蝈脲 Samba
esync_title=谚眭痤龛玎鲨 镱朦珙忄蝈脲
fname_archive=杨躔囗螯 囵蹊忭 囹痂狍 DOS?
fmisc_sameas=亦觐-驽 赅 疱耋瘃
smb_wins=绣骅 WINS
fmisc_fake=Fake oplocks?
misc_rawread=朽琊屮栩 "覃瘥" 黩屙?
error_nosamba=锐镱腠屐 祛潴朦 皴疴屦 samba <tt>$1</tt> 铗耋蝰蜮箦. 髓犷 samba 礤 篑蜞眍怆屙 磬 锣 耔耱屐, 桦 <a href="$2">觐眙桡箴圉 祛潴</a> 礤忮痦.
index_printableto=骂珈铈磬 镥鬣螯 潆
net_auto=棱蝾爨蜩麇耜
euser_uid=Unix UID
esync_msg=Webmin 祛驽 猁螯 磬耱痤屙 蜞, 黩 怦 桤戾礤龛  徉珏 溧眄 镱朦珙忄蝈脲 Unix 狍潴 噔蝾爨蜩麇耜 耔眭痤龛玷痤忄螯  徉珙 溧眄 镱朦珙忄蝈脲 Samba. 蒡 忸珈铈眍  蝾 耠篦噱, 觐沅 潆 漕徉怆屙, 桤戾礤龛 桦 箐嚯屙 镱朦珙忄蝈脲 狍溴 桉镱朦珙忄螯 Webmin 祛潴朦 <tt>项朦珙忄蝈腓  灭箫稃</tt>.
sec_rogroup=翌朦觐 麒蜞桢 沭箫稃
savepopts_fail=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼 镥鬣蜩
sec_guest=妙耱邂铋 狺滏弪?
fmisc_strict=Strict locking?
passwd_chat=殃痂矧 桤戾礤龛 镟痤
config_mins=惕.
fmisc_unixdos=Unix-DOS 铗钺疣驽龛 桁屙 羿殡钼
share_misc=橡铟桢 镟疣戾蝠
smb_aliase=像邂漕龛禧 皴疴屦
savenet_keep='$1' 礤 怆弪 漕矬耱桁 桧蝈疴嚯铎 keepalive
index_noshares=绣耋瘃 Samba 铗耋蝰蜮簋
index_sharelist=耧桉铌 疱耋瘃钼
savemisc_time='$1' 礤 怆弪 漕矬耱桁 怵屐屙睇 耢妁屙桢
fname_title1=橡噔桦 桁屙钼囗 羿殡钼
fname_title2=绣溧牝桊钼囗桢 镳噔桦 桁屙钼囗 羿殡钼
print_title=相疣戾蝠 镥鬣蜩
saveprint_cache='$1' 礤 怆弪 漕矬耱桁 怵屐屙屐 挲痤忄龛
savemisc_fail=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼
share_comment=暑祆屙蜞痂  疱耋瘃
print_pause=暑爨礓 潆 镳桀耱囗钼觇 玎溧龛
fperm_option=相疣戾蝠 羿殡钼 镳噔
smb_winpopup=暑爨礓 Winpopup
euser_disable=窿滏弪 玎犭铌桊钼囗
convert_msg=泥眄 纛痨 镱玮铍弪 锣 耔眭痤龛玷痤忄螯 耧桉觇 镱朦珙忄蝈脲 Unix  Samba. 篷腓 Samba 桉镱朦珞弪 <a href=$1>麴钼囗睇 镟痤腓</a>, 蝾 忪羼蝾 耔耱屐眍泐 耧桉赅 镱朦珙忄蝈脲 桉镱朦珞弪 铗溴朦睇 耧桉铌 镱朦珙忄蝈脲  镟痤朦彘.
euser_passwd=相痤朦
smb_passwdserver=彦疴屦 镟痤脲
fname_hidden=杨躔囗螯 耜瘥螓 囹痂狍 DOS?
savepshare_global=褥 'global' 礤 祛驽 桉镱朦珙忄螯 潆 疱耋瘃
sec_guestonly=翌朦觐 泐耱邂铋
index_roalluser=翌朦觐 黩屙桢 潆 怦艴 桤忮耱睇 镱朦珙忄蝈脲
error_delcopy=绣耋瘃 '$1' 觐镨痼弪 襦 磬 皴
passwd_encrypt=锐镱朦珙忄螯 麴钼囗睇 镟痤腓?
savesmb_server=蔓 漕腈睇 忖羼蜩 皴疴屦 镟痤脲
passwd_map=悟钺疣驽龛 桁屙 镱朦珙忄蝈脲
start_err=硒栳赅 镳 耱囵蝈 皴疴屦 samba
index_restartmsg=袜骒栩 磬  觏铒牦  镥疱玎矬耜 疣犷蜞邈 皴疴屦 samba. 蒡 嚓蜩忤玷痼弪 怦 桤戾礤龛  蝈牦 觐眙桡箴圉梃.
passwd_waitfor=捂桎囹
index_rwpublic=昨屙桢/玎镨顸 潆 怦艴
index_prnalluser=骂珈铈磬 镥鬣螯 潆 怦艴 桤忮耱睇 镱朦珙忄蝈脲
print_show=埋 腓 镳桧蝈瘥 镱赅琨忄螯?
config_all=埋
savenet_fail=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼
convert_update=吾眍忤螯 耋耱怏桴 镱朦珙忄蝈脲 Samba 磬铖眍忮 桧纛痨圉梃 Unix
saveuser_shell=$1 礤 怆弪 漕矬耱桁 shell
smb_useserver=锐镱朦珙忄螯 皴疴屦
share_dir=枢蜞腩 疱耋瘃
savefshare_global=褥 'global' 礤 祛驽 桉镱朦珙忄螯 赅 桁 疱耋瘃
net_netmask=锑耜 皴蜩
savepass_level='$1' 礤 怆弪 漕矬耱桁 疣珉梓桢 疱汨耱疣 镟痤
savemisc_lockdir=枢蜞腩 耦溴疰帙栝 镱潢囹嚯钽  犭铌桊钼赅扈 礤 耋耱怏弪
savepshare_exist=绣耋瘃  桁屙屐 '$1' 箧 耋耱怏弪
share_info=软纛痨圉  疱耋瘃
misc_smbrun=象螯  <tt>smbrun</tt>
smb_asworkgroup=<b>枢 沭箫镟</b> (忸珈铈眍)
index_createcopy=杨玟囹 眍怏 觐镨 疱耋瘃
euser_realname=袜耱 桁/觐祆屙蜞痂
global_sync=袜耱痤殛 噔蝾爨蜩麇耜铋 耔眭痤龛玎鲨 镱朦珙忄蝈脲 Unix  Samba
sec_invalidgroup=湾溴轳蜮簋 沭箫稃
savefshare_nopath=象螯 礤 玎溧
savepshare_name='$1' 礤 怆弪 漕矬耱桁 桁屙屐 疱耋瘃
smb_winsserver=羊囹 WINS 皴疴屦铎
savefperm_fail=硒栳赅 镳 耦躔囗屙梃 镳噔 羿殡钼
savemisc_chroot=枢蜞腩 chroot '$1' 礤 耋耱怏弪
smb_sharelevel=羽钼屙 疱耋瘃
fmisc_rootconn=暑爨礓 玎矬耜噱爨  镳桠桦邈桢 <i>root</i> 镳 镱漶铄滂礤龛
misc_overlapread=襄疱牮桢 疣珈屦 黩屙
mkpass_skip=镳铒簌屙
passwd_allownull=念矬耜囹 矬耱 镟痤腓?
net_notsend=湾 镱覃豚螯 忸钺
smb_title=相疣戾蝠 Windows 皴蜩
mkpass_msg=橡孱狃噻钼囗桢 镱朦珙忄蝈脲 Unix...
euser_trust=念忮痂蝈朦睇 狺滏弪 疣犷. 耱囗鲨
savepopts_number=惕. 疋钺钿眍 镳铖蝠囗耱忸 .. 鲨麴铋
savecopy_global=褥 'global' 礤 祛驽 桉镱朦珙忄螯 潆 疱耋瘃
global_auth=荔蝈眚梏桕圉
sec_possiblegroup=骂珈铈睇 沭箫稃
print_driver=酿嚅忮 镳桧蝈疣
passwd_winuser=Windows 镱朦珙忄蝈腓
print_option=相疣戾蝠 镳桧蝈疣
start_fail=$1 礤篑镥
print_delete=暑爨礓 潆 箐嚯屙 玎溧龛
esync_chg=如戾龛螯 镱朦珙忄蝈 Samba 镳 桤戾礤龛 镱朦珙忄蝈 Unix
smb_domain=念戾
share_title1=相疣戾蝠 羿殡钼 疱耋瘃钼
share_title2=绣溧牝桊钼囗桢 羿殡钼钽 疱耋瘃
share_title3=杨玟囗桢 羿殡钼钽 疱耋瘃
smb_protocol=袜桠 箴钼屙 镳铗铌铍
fname_manglecase=Mangle 疱汨耱?
smb_userlevel=羽钼屙 镱朦珙忄蝈
convert_title=橡孱狃噻钼囗桢 镱朦珙忄蝈脲
sec_onlydeny=青镳弪栩 蝾朦觐
index_readonly=翌朦觐 黩屙桢 潆 $1<br>昨屙桢/玎镨顸 潆 怦艴 漯筱桴 桤忮耱睇 镱朦珙忄蝈脲
savemisc_logdir=枢蜞腩 耦溴疰帙栝 骟痦嚯 羿殡 礤 耋耱怏弪
pshare_all=绣耋瘃 - 埋 镳桧蝈瘥
net_maxpacket=锑犟. 疣珈屦 镟赍蜞
fmisc_maxconn=锑犟. 耦邃桧屙栝
savefperm_mode='$1' 礤 怆 漕矬耱桁 镳噔囔 漕耱箫 Unix 羿殡
fmisc_for=碾 疱耋瘃 <tt>$1</tt>
sec_possibleuser=骂珈铈睇 镱朦珙忄蝈腓
smbuser_nouser=项朦珙忄蝈脲 Samba 礤
passwd_case=朽珉梓桢 疱汨耱疣 耔焘. 镟痤
global_printing=襄鬣螯  Windows 磬 Unix
sec_rwgroup=阻蜞桢/镨 沭箫稃
global_misc=橡铟桢 磬耱痤殛
savesmb_fail=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼
pshare_spool=枢蜞腩 耧箅屦
smb_priority=橡桀痂蝈 汶噔眍泐 狃囿珏疣
fperm_link=朽琊屮栩 耔焘铍梓羼觇 耨觇 玎 镳邃咫 疱耋瘃?
smb_master=秒噔睇 狃囿珏?
saveuser_uid='$1' 礤 怆弪 漕矬耱桁 Unix UID
euser_nopw=湾 镟痤
fperm_delro=填驽 箐嚯螯 羿殡 蝾朦觐-潆-黩屙?
config_never=丸觐沅
index_createfileshare=杨玟囹 眍恹 羿殡钼 疱耋瘃
savenet_ip='$1' 礤 怆弪 漕矬耱桁 IP
sec_guestaccount=Unix 镱朦珙忄蝈朦 潆 泐耱邂钽 狺滏弪
index_userlist=耧桉铌 镱朦珙忄蝈脲
index_view=橡铖祛蝠 耦邃桧屙栝
sec_validgroup=腻轳蜮簋 沭箫稃
sec_onlyallow=朽琊屮栩 蝾朦觐
saveuser_pass=硒栳赅 镳 桤戾礤龛 镟痤  桉镱朦珙忄龛屐 smbpasswd : $1
print_style=诣 耔耱屐 镥鬣蜩 Unix
viewu_list=义牦 镫钼囹咫 $1
mkpass_update=钺眍怆屙
fname_option=相疣戾蝠 桁屙钼囗 羿殡钼
viewu_share=绣耋瘃
convert_delete=愉嚯栩 镱朦珙忄蝈脲 Samba 铗耋蝰蜮簋  Unix 
savesmb_oslevel='$1' 礤 怆弪 漕矬耱桁 镳桀痂蝽蝾 汶噔眍泐 狃囿珏疣
fname_system=杨躔囗螯 耔耱屐睇 囹痂狍 DOS?
fperm_forcegrp=青耱噔栩 桉镱朦珙忄螯 Unix 沭箫矬
fmisc_title=橡铟桢 羿殡钼 镟疣戾蝠
fmisc_rootdisconn=暑爨礓 玎矬耜噱爨  镳桠桦邈桢 <i>root</i> 镳 铗耦邃桧屙梃
viewu_index=义牦 镱朦珙忄蝈腓
smb_nowhere=丸觐泐
pshare_name=褥 疱耋瘃
index_sharename=褥 疱耋瘃
convert_nopasswd=湾 镟痤
misc_chroot=<tt>chroot()</tt> 赅蜞腩
smbuser_title=项朦珙忄蝈腓 Samba
index_defaultprn=橡桧蝈 镱 箪铍鬣龛
error_version=Webmin 礤 耢钽 镱塍麒螯 忮瘃棹 桉镱腠屐钽 祛潴 皴疴屦 samba  <tt>$1</tt>. 橡钼屦 <a href="$2">觐眙桡箴圉 祛潴</a> 黩钺 筢邃栩  镳噔桦铖蜩 矬蝈.
smb_workgroup=朽犷鬣 沭箫镟
sec_limit=毋疣龛麒螯 漕 忸珈铈眍泐 耧桉赅?
savepass_fail=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼
sec_index1=相疣戾蝠 徨珙镟耥铖蜩
sec_index2=绣溧牝桊钼囗桢 镟疣戾蝠钼 徨珙镟耥铖蜩
fmisc_sync=厌痤 狍翦痤 镱耠 玎镨耔?
share_available=念耱箫屙?
print_unresume=暑爨礓 潆  忸珙犴钼脲龛 玎溧龛
passwd_title=相疣戾蝠 镟痤脲
create_name=褥 眍忸泐 疱耋瘃:
convert_convert=橡孱狃噻钼囹 镱朦珙忄蝈脲
convert_newuser=碾 忭钼 耦玟噔噱禧 镱朦珙忄蝈脲, 篑蜞眍忤螯 镟痤朦:
mkpass_fail=硒栳赅 镳 镳孱狃噻钼囗梃 镱朦珙忄蝈
misc_log=脏殡 潆 骟痦嚯
index_prneveryone=骂珈铈磬 镥鬣螯 潆 怦艴
sec_writable=朽琊屮屙 玎镨顸?
savesec_fail=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼 徨珙镟耥铖蜩
index_fileshare=羿殡钼 疱耋瘃
swats_fail=硒栳赅 镳 耦躔囗屙梃 桁屙 镱朦珙忄蝈
euser_newpw=皖恹 镟痤朦
esync_del=愉嚯栩 镱朦珙忄蝈 Samba 镳 箐嚯屙梃 镱朦珙忄蝈 Unix
misc_lockdir=枢蜞腩 潆 犭铌桊钼铌
fname_hide=殃瘥忄螯 "羿殡  蝾麝铋"?
config_secs=彦.
fperm_forcedir=青耱噔栩 桉镱朦珙忄螯 Unix-疱骅 漕耱箫  赅蜞腩汔
fname_preserve=杨躔囗螯 疱汨耱?
index_allprinter=埋 镳桧蝈瘥
index_restart=襄疱玎矬耱栩 皴疴屦 Samba
mkpass_passfail=硒栳赅 镳 玎溧龛 镟痤
sec_validuser=腻轳蜮簋 镱朦珙忄蝈腓
saveuser_fail=硒栳赅 镳 耦躔囗屙梃 镱朦珙忄蝈
index_rwalluser=昨屙桢/玎镨顸 潆 怦艴 桤忮耱睇 镱朦珙忄蝈脲
net_interface=软蝈痿彘
fname_upper=洛瘐龛
error_savename=硒栳赅 镳 耦躔囗屙梃 桁屙钼囗 羿殡钼
sec_rouser=翌朦觐 麒蜞桢 镱朦珙忄蝈腓
fname_shortpreserve=Short Preserve Case?
euser_nopwrequired=湾 蝠遽箦 镟痤
smb_unlimited=湾钽疣龛麇眍
euser_option=相疣戾蝠 镱朦珙忄蝈
mkpass_same=箧 耦怙噤帼
saveprint_printcap=脏殡 printcap '$1' 礤 耋耱怏弪
index_start=羊囵蝾忄螯 皴疴屦 Samba
smb_disksize=锑犟. 镱赅琨忄屐 疣珈屦 滂耜
share_option=酿筱桢 镟疣戾蝠 疱耋瘃
misc_debug=羽钼屙 铗豚潢
euser_name=褥
index_roeveryone=翌朦觐 黩屙桢 潆 怦艴
fperm_forcefile=青耱噔栩 桉镱朦珙忄螯 Unix-疱骅 漕耱箫  羿殡囔
net_idle=亦殪囿 漕 疣琥邃桧屙
fmisc_volume=褥 蝾爨
index_title=脏殡/镳桧 皴疴屦 Samba
print_minspace=惕. 疋钺钿眍 镳铖蝠囗耱忸
euser_currpw=义牦 镟痤朦
pshare_unixprn=Unix 镳桧蝈
misc_rawwrite=朽琊屮栩 "覃瘥" 玎镨耔?
sec_denyhost=青镳妁屙睇 躅耱
error_include=Webmin 礤 祛驽 疣犷蜞螯  羿殡囔 觐眙桡箴圉梃 samba 耦溴疰帙桁 滂疱牝桠 <tt>config</tt> 桦 <tt>include</tt>.
error_delshare=硒栳赅 镳 箐嚯屙梃 疱耋瘃
savecopy_exist=绣耋瘃  桁屙屐 '$1' 箧 耋耱怏弪
share_permission=橡噔 磬 羿殡
savefmisc_fail=硒栳赅 镳 耦躔囗屙梃 镳铟桴 镟疣戾蝠钼
smb_show=埋邈溧 镱赅琨忄螯 皴疴桉
share_security=语疣怆屙桢 徨珙镟耥铖螯  漕耱箫铎
share_name=褥 疱耋瘃
fperm_filemode=皖恹 疱骅 漕耱箫 羿殡钼 Unix
index_startmsg=项躅驽, 黩 samba 皴疴屦 礤 玎矬. 蒡 铉磬鬣弪, 黩 疱耋瘃 镥疱麒耠屙睇 恹 礤 漕耱箫睇 漯筱桁 觐祜蝈疣  皴蜩.
index_createprnshare=杨玟囹 眍恹 镥鬣蝽 疱耋瘃
fperm_dirmode=皖恹 疱骅 漕耱箫 赅蜞腩泐 Unix
fname_case=左怦蜮栩咫屙  疱汨耱痼?
mkpass_title=橡孱狃噻钼囹 镱朦珙忄蝈脲
share_browseable=妈溴?
error_config=暑眙桡箴圉桀眄 羿殡 $1 礤 磬殇屙. 殃铕邋 怦邈 Samba 礤 篑蜞眍怆屙 磬 锣 耔耱屐, 桦 <a href="$2">觐眙桡箴圉 祛潴</a> 礤忮痦.
savesmb_size='$1' 礤 怆弪 漕矬耱桁 疣珈屦铎 滂耜
share_naming=褥屙钼囗桢 羿殡钼
euser_shell=Shell
fperm_notlist=枢蜞腩汨 礤 镱赅琨忄屐  耧桉赍
net_uselist=如 耧桉赅...
savepass_passwd=湾 玎溧磬 镳钽疣祆 潆 桤戾礤龛 镟痤脲
savefshare_fail=硒栳赅 镳 耦躔囗屙梃 疱耋瘃
net_listen=橡铖塍忄螯 噤疱
smb_ip=IP 噤疱
sec_invaliduser=湾溴轳蜮簋 镱朦珙忄蝈腓
viewu_msg2=项潢膻麇眄 镱朦珙忄蝈脲 礤
global_unixnetwork=Unix 彦螯
esync_add=念徉忤螯 镱朦珙忄蝈 Samba 镳 漕徉怆屙梃 镱朦珙忄蝈 Unix
passwd_unixuser=Unix 镱朦珙忄蝈腓
passwd_send=项耠囹
savenet_timeout='$1' 礤 怆弪 漕矬耱桁 蜞殪囿蝾 铗耦邃桧屙
index_path=象螯
create_msg=暑镨 箜囫脲潴弪 怦 珥圜屙 镱 箪铍鬣龛 铗 恹狃囗眍泐 锣扈 疱耋瘃. 橡 桤戾礤龛 桉躅漤钽 疱耋瘃, 蜞赕 镱戾弪  邈 觐镨. 
share_home=绣耋瘃-念爨桢 赅蜞腩汨
passwd_below=青溧 龛驽
fmisc_disconncmd=暑爨礓 玎矬耜噱爨 镳 铗耦邃桧屙梃
savenet_maxxmit='$1' 礤 怆弪 漕矬耱桁 爨觇爨朦睇 疣珈屦铎 疣赍蜞
index_readwrite=昨屙桢/玎镨顸 潆 $1<br>翌朦觐 黩屙桢 潆 潆 怦艴 漯筱桴 桤忮耱睇 镱朦珙忄蝈脲
mkpass_del=箐嚯屙
global_edit=绣溧牝桊钼囗桢 镱朦珙忄蝈脲  镟痤脲 Samba
savecopy_fail=硒栳赅 镳 耦玟囗梃 觐镨
print_postscript=青耱噔栩 镥鬣蜞螯  postscript
global_winnetwork=Windows 彦螯
convert_noconv=湾 镳孱狃噻钼囹  礤 箐嚯螯 耠邃簋 镱朦珙忄蝈脲:
misc_readprediction=语疱驿帼 黩屙桢?
fperm_title1=橡噔桦 疣玟圜 镳噔 磬 羿殡
fperm_title2=绣溧牝桊钼囗桢 羿殡钼 镳噔
euser_noaccess=湾 漕耱箫
index_security=铃珙镟耥铖螯
global_password=罔麴钼囗桢 镟痤脲
convert_add=念徉忤螯 眍恹 镱朦珙忄蝈脲 Samba 桤 耧桉赅 镱朦珙忄蝈脲 Unix 
net_netinterface=彦蝈恹 桧蝈痿彘覃
net_trustlist=脏殡  漕忮疱眄 躅耱囔/镱朦珙忄蝈扈
savefshare_mode='$1' 礤 怆弪 漕矬耱桁 桁屙屐 疱耋瘃
smb_announce=愉嚯屙眍 铒钼妁屙桢 潆
   07070100057d92000081a40000000000000002000000013ac0388d00003996000000200000000000000000000000000000001700000003reloc/samba/lang/ru_SU    index_title=媪侍/幸晌 优易乓 Samba
index_sharelist=有捎纤 遗诱矣献
index_userlist=有捎纤 邢特谙琢耘膛
index_fileshare=屏侍献偈 遗诱矣
index_printershare=信蘖晕偈 遗诱矣

index_sharename=橥 遗诱矣
index_path=鹫载
index_security=馀谙辛游嫌载
index_homedir=饔 南土畚膳 肆粤滔巧
index_allprinter=饔 幸晌耘屹
index_printer=鹨晌耘
index_defaultprn=鹨晌耘 邢 胀咸蘖紊
index_printableto=飨谕现瘟 信蘖载 奶
index_prneveryone=飨谕现瘟 信蘖载 奶 子湃
index_prnalluser=飨谕现瘟 信蘖载 奶 子湃 哨着釉钨 邢特谙琢耘膛
index_rwpublic=盼膳/诹猩迂 奶 子湃
index_readonly=粝特讼 拊盼膳 奶 $1<br>盼膳/诹猩迂 奶 子湃 囊涨扇 哨着釉钨 邢特谙琢耘膛
index_rwalluser=盼膳/诹猩迂 奶 子湃 哨着釉钨 邢特谙琢耘膛
index_roeveryone=粝特讼 拊盼膳 奶 子湃
index_readwrite=盼膳/诹猩迂 奶 $1<br>粝特讼 拊盼膳 奶 奶 子湃 囊涨扇 哨着釉钨 邢特谙琢耘膛
index_roalluser=粝特讼 拊盼膳 奶 子湃 哨着釉钨 邢特谙琢耘膛
index_noshares=蚺诱矣 Samba 显诱杂宰绽
index_createfileshare=笙谀猎 蜗踪 屏侍献偈 遗诱矣
index_createprnshare=笙谀猎 蜗踪 信蘖晕偈 遗诱矣
index_createcopy=笙谀猎 蜗渍 讼猩 遗诱矣
index_view=鹨嫌拖砸 酉拍晌盼墒
index_start=笤烈韵琢载 优易乓 Samba
index_startmsg=鹣认峙, 拊 samba 优易乓 闻 诹姓菖.  馅瘟蘖旁, 拊 遗诱矣 信遗奚犹盼钨 踪叟 闻 南釉招钨 囊涨赏 讼托乩耘伊  优陨.
index_restart=鹋遗诹姓釉稍 优易乓 Samba
index_restartmsg=盍滞稍 瘟 茉 宋闲苏 难 信遗诹姓铀 伊孪粤垒徘 优易乓 samba.  了陨咨谏艺旁 子 哨团闻紊  耘苏菖 讼纹汕找撩缮.

config_mins=砩.
config_secs=笈.
config_never=钌讼悄
config_all=饔
config_neither=镌颂擂稍

global_title=锫萆 瘟釉蚁仕
global_unixnetwork=Unix 笈载
global_winnetwork=Windows 笈载
global_auth=嵴耘卧善伤撩裳
global_printing=鹋蘖载  Windows 瘟 Unix
global_misc=鹨限膳 瘟釉蚁仕
global_filedefault=鹆伊团砸 奶 屏侍献偃 遗诱矣献
global_prndefault=鹆伊团砸 奶 信蘖晕偃 遗诱矣献
global_password=埔献廖膳 辛蚁膛
global_edit=蚺牧嗽梢献廖膳 邢特谙琢耘膛  辛蚁膛 Samba
global_convert=鹨畔乱邻献廖膳 邢特谙琢耘膛 Unix  邢特谙琢耘躺 Samba
global_sync=盍釉蚁仕 磷韵土陨夼铀鲜 由稳蚁紊诹蒙 邢特谙琢耘膛 Unix  Samba

error_nosamba=橛邢涛雅唾 拖恼特 优易乓 samba <tt>$1</tt> 显诱杂宰张. 焐孪 samba 闻 沼粤蜗滋盼 瘟 髁叟 由釉磐, 商 <a href="$2">讼纹汕找撩裳 拖恼萄</a> 闻着椅.
error_version=Webmin 闻 油锨 邢陶奚载 着矣衫 捎邢涛雅拖窍 拖恼萄 优易乓 samba  <tt>$1</tt>. 鹨献乓卦 <a href="$2">讼纹汕找撩裳 拖恼萄</a> 拊下 章拍稍赜  幸磷商匚嫌陨 姓耘.
error_config=胂纹汕找撩上挝偈 屏侍 $1 闻 瘟誓盼. 笏弦排 子徘 Samba 闻 沼粤蜗滋盼 瘟 髁叟 由釉磐, 商 <a href="$2">讼纹汕找撩裳 拖恼萄</a> 闻着椅.
error_include=Webmin 闻 拖峙 伊孪粤载  屏侍镣 讼纹汕找撩缮 samba 酉呐抑凛赏 纳遗嗽勺 <tt>config</tt> 商 <tt>include</tt>.
error_delshare=镗陕肆 幸 漳撂盼缮 遗诱矣
error_delcopy=蚺诱矣 '$1' 讼猩艺旁友 恿 瘟 优卵
error_savename=镗陕肆 幸 酉纫廖盼缮 赏盼献廖裳 屏侍献

convert_title=鹨畔乱邻献廖膳 邢特谙琢耘膛
convert_msg=淞挝裂 葡彝 邢谧咸雅 髁 由稳蚁紊谏蚁琢载 有捎松 邢特谙琢耘膛 Unix  Samba. 逵躺 Samba 捎邢特谡旁 <a href=$1>凵埔献廖钨 辛蚁躺</a>, 韵 淄庞韵 由釉磐蜗窍 有捎肆 邢特谙琢耘膛 捎邢特谡旁友 显呐特钨 有捎纤 邢特谙琢耘膛  辛蚁特攀.
convert_noconv=钆 幸畔乱邻献僮猎  闻 漳撂言 犹拍绽萆 邢特谙琢耘膛:
convert_update=锫蜗咨载 诱菖釉渍垒扇 邢特谙琢耘膛 Samba 瘟嫌蜗着 晌葡彝撩缮 Unix
convert_add=湎铝咨载 蜗踪 邢特谙琢耘膛 Samba 哨 有捎肆 邢特谙琢耘膛 Unix 
convert_delete=跄撂稍 邢特谙琢耘膛 Samba 显诱杂宰绽萆  Unix 
convert_newuser=涮 孜献 酉谀磷僚唾 邢特谙琢耘膛, 沼粤蜗咨载 辛蚁特:
convert_nopasswd=钆 辛蚁萄
convert_lock=饫闹旁 诹绿纤梢献廖
convert_passwd=橛邢特谙琢载 牧挝偈 辛蚁特
convert_convert=鹨畔乱邻献猎 邢特谙琢耘膛

misc_title=鹨限膳 辛伊团砸
misc_debug=跻献盼 显塘乃
misc_cachecall=胲凵蚁琢载 踪谙踪 <tt>getwd()</tt>?
misc_lockdir=肓粤滔 奶 绿纤梢献纤
misc_log=媪侍 奶 终椅撂
misc_maxlog=砹擞. 伊谕乓 终椅撂
misc_rawread=蛄谝袍稍 "淤屹" 拊盼裳?
misc_rawwrite=蛄谝袍稍 "淤屹" 诹猩由?
misc_overlapread=鹋遗艘僭膳 伊谕乓 拊盼裳
misc_chroot=<tt>chroot()</tt> 肆粤滔
misc_smbrun=鹫载  <tt>smbrun</tt>
misc_clienttime=笸泡盼膳 颂膳卧 邢 滓磐盼
misc_readprediction=跣遗帜晾菖 拊盼膳?

net_title=鹆伊团砸 Unix 优陨
net_idle=袅释琳 南 伊谶拍晌盼裳
net_trustlist=媪侍  南着遗挝偻 认釉镣/邢特谙琢耘萄蜕
net_netinterface=笈耘踪 晌耘移攀淤
net_auto=嶙韵土陨夼铀
net_uselist=橼 有捎肆...
net_interface=槲耘移攀
net_netmask=砹铀 优陨
net_keepalive=鹆伺再 keepalive
net_notsend=钆 邢淤塘载 紫下菖
net_maxpacket=砹擞. 伊谕乓 辛伺粤
net_listen=鹨嫌陶凵琢载 聊遗
net_socket=鹆伊团砸 酉伺粤

passwd_title=鹆伊团砸 辛蚁膛
passwd_encrypt=橛邢特谙琢载 凵埔献廖钨 辛蚁躺?
passwd_allownull=湎姓铀猎 姓釉倥 辛蚁躺?
passwd_program=鹨锨伊屯 奶 辛蚁膛
passwd_case=蛄谔赊膳 遗巧釉伊 由妥. 辛蚁萄
passwd_chat=笏疑性 哨团闻紊 辛蚁萄
passwd_below=牧 紊峙
passwd_waitfor=镏赡猎
passwd_send=鹣犹猎
passwd_map=镌下伊峙紊 赏盼 邢特谙琢耘膛
passwd_unixuser=Unix 邢特谙琢耘躺
passwd_winuser=Windows 邢特谙琢耘躺

print_title=鹆伊团砸 信蘖陨
print_style=羯 由釉磐 信蘖陨 Unix
print_show=饔 躺 幸晌耘屹 邢肆谫琢载?
print_printcap=媪侍 Printcap
print_cachetime=饕磐 塑凵蚁琢紊 酉釉涎紊 幸晌耘伊

smb_title=鹆伊团砸 Windows 优陨
smb_workgroup=蛄孪蘖 且招辛
smb_wins=蚺稚 WINS
smb_winsserver=笤猎 WINS 优易乓贤
smb_useserver=橛邢特谙琢载 优易乓
smb_description=镄捎廖膳 优易乓
smb_name=橥 优易乓
smb_aliase=鹩抛南紊唾 优易乓
smb_default=笈易捎 邢 胀咸蘖紊
smb_show=饔徘牧 邢肆谫琢载 优易捎
smb_disksize=砹擞. 邢肆谫琢磐偈 伊谕乓 纳铀
smb_unlimited=钆锨伊紊夼蜗
smb_winpopup=胂土文 Winpopup
smb_priority=鹨上疑耘 翘磷蜗窍 乱琳谂伊
smb_protocol=盍勺儆凵 找献盼 幸显纤咸
smb_master=缣磷钨 乱琳谂?
smb_security=馀谙辛游嫌载
smb_sharelevel=跻献盼 遗诱矣
smb_userlevel=跻献盼 邢特谙琢耘萄
smb_passwdserver=笈易乓 辛蚁膛
smb_domain=湎团
smb_announce=跄撂盼蜗 闲献泡盼膳 奶
smb_nowhere=钌讼窍
smb_fromlist=橼 有捎肆...
smb_ip=IP 聊遗
smb_asworkgroup=<b>肓 且招辛</b> (紫谕现蜗)

create_title=笙谀廖膳 讼猩
create_msg=胂猩 瘴劣膛恼旁 子 谖赁盼裳 邢 胀咸蘖紊 显 踪乱廖蜗窍 髁蜕 遗诱矣. 鹨 哨团闻紊 捎认奈锨 遗诱矣, 粤酥 邢团窝旁友  徘 讼猩. 
create_from=胂猩艺磐偈 遗诱矣:
create_name=橥 蜗紫窍 遗诱矣:

smbuser_title=鹣特谙琢耘躺 Samba
smbuser_list=笮捎纤 邢特谙琢耘膛 Samba
smbuser_nouser=鹣特谙琢耘膛 Samba 闻

euser_title=蚺牧嗽梢献廖膳 邢特谙琢耘萄
euser_name=橥
euser_uid=Unix UID
euser_passwd=鹆蚁特
euser_noaccess=钆 南釉招
euser_nopw=钆 辛蚁萄
euser_currpw=襞苏萆 辛蚁特
euser_newpw=钕踪 辛蚁特
euser_realname=盍釉涎菖 赏/讼屯盼粤疑
euser_homedir=湎土畚墒 肆粤滔
euser_shell=Shell
euser_option=鹆伊团砸 邢特谙琢耘萄
euser_normal=锫俎钨 邢特谙琢耘特
euser_nopwrequired=钆 砸怕张 辛蚁萄
euser_disable=饫闹旁 诹绿纤梢献廖
euser_trust=湎着疑耘特钨 吕闹旁 伊孪. 釉廖蒙

fmisc_title=鹨限膳 屏侍献倥 辛伊团砸
fmisc_for=涮 遗诱矣 <tt>$1</tt>
fmisc_lockfile=馓纤梢献松 屏侍献?
fmisc_maxconn=砹擞. 酉拍晌盼墒
fmisc_fake=Fake oplocks?
fmisc_sharemode=橛邢特谙琢载 share modes?
fmisc_strict=Strict locking?
fmisc_sync=舐蚁 抡婆蚁 邢犹 诹猩由?
fmisc_volume=橥 韵土
fmisc_sameas=袅讼-峙 肆 遗诱矣
fmisc_unixdos=Unix-DOS 显下伊峙紊 赏盼 屏侍献
fmisc_conncmd=胂土文 诹姓铀僚土 幸 邢挠吓纳闻紊
fmisc_disconncmd=胂土文 诹姓铀僚土 幸 显酉拍晌盼缮
fmisc_rootconn=胂土文 诹姓铀僚土  幸勺商徘膳 <i>root</i> 幸 邢挠吓纳闻紊
fmisc_rootdisconn=胂土文 诹姓铀僚土  幸勺商徘膳 <i>root</i> 幸 显酉拍晌盼缮

fname_title1=鹨磷商 赏盼献廖裳 屏侍献
fname_title2=蚺牧嗽梢献廖膳 幸磷商 赏盼献廖裳 屏侍献
fname_option=鹆伊团砸 赏盼献廖裳 屏侍献
fname_manglecase=Mangle 遗巧釉?
fname_case=子宰稍盘盼  遗巧釉艺?
fname_defaultcase=蚺巧釉 邢 胀咸蘖紊?
fname_lower=钌治墒
fname_upper=髋胰紊
fname_preserve=笙纫廖言 遗巧釉?
fname_shortpreserve=Short Preserve Case?
fname_hide=笏屹琢载 "屏侍  韵匏鲜"?
fname_archive=笙纫廖言 烈壬孜偈 猎疑抡 DOS?
fname_hidden=笙纫廖言 铀屹再 猎疑抡 DOS?
fname_system=笙纫廖言 由釉磐钨 猎疑抡 DOS?

fperm_title1=鹨磷商 伊谀赁 幸磷 瘟 屏侍
fperm_title2=蚺牧嗽梢献廖膳 屏侍献偃 幸磷
fperm_option=鹆伊团砸 屏侍献偃 幸磷
fperm_filemode=钕踪 遗稚 南釉招 屏侍献 Unix
fperm_dirmode=钕踪 遗稚 南釉招 肆粤滔窍 Unix
fperm_notlist=肓粤滔巧 闻 邢肆谫琢磐倥  有捎伺
fperm_forceuser=釉磷稍 捎邢特谙琢载 Unix 邢特谙琢耘萄
fperm_forcegrp=釉磷稍 捎邢特谙琢载 Unix 且招姓
fperm_link=蛄谝袍稍 由妥咸赊庞松 佑偬松 诹 幸拍盘 遗诱矣?
fperm_delro=硐峙 漳撂言 屏侍 韵特讼-奶-拊盼裳?
fperm_forcefile=釉磷稍 捎邢特谙琢载 Unix-遗稚 南釉招  屏侍镣
fperm_forcedir=釉磷稍 捎邢特谙琢载 Unix-遗稚 南釉招  肆粤滔橇

share_title1=鹆伊团砸 屏侍献偃 遗诱矣献
share_title2=蚺牧嗽梢献廖膳 屏侍献锨 遗诱矣
share_title3=笙谀廖膳 屏侍献锨 遗诱矣
share_info=槲葡彝撩裳  遗诱矣
share_copy=淞挝偈 遗诱矣 炎萄旁友 讼猩攀 <i>$1</i>
share_name=橥 遗诱矣
share_home=蚺诱矣-湎土畚膳 肆粤滔巧
share_dir=肓粤滔 遗诱矣
share_available=湎釉招盼?
share_browseable=魃呐?
share_comment=胂屯盼粤疑  遗诱矣
share_view=鹨嫌拖砸 酉拍晌盼墒
share_option=湟涨膳 辛伊团砸 遗诱矣
share_security=跣伊滋盼膳 屡谙辛游嫌载  南釉招贤
share_permission=鹨磷 瘟 屏侍
share_naming=橥盼献廖膳 屏侍献
share_misc=鹨限膳 辛伊团砸

print_title1=鹆伊团砸 遗诱矣献 信蘖陨
print_title2=蚺牧嗽梢献廖膳 辛伊团砸献 信蘖陨
print_option=鹆伊团砸 幸晌耘伊
print_minspace=砩. 幼下夏蜗 幸嫌砸廖釉紫
print_postscript=釉磷稍 信蘖粤载  postscript
print_command=胂土文 奶 信蘖陨
print_queue=胂土文 奶 邢肆诹 限乓拍
print_delete=胂土文 奶 漳撂盼裳 诹牧紊
print_pause=胂土文 奶 幸上釉廖献松 诹牧紊
print_unresume=胂土文 奶  紫谙挛献膛紊 诹牧紊
print_driver=湟潦着 幸晌耘伊

pshare_title1=鹆伊团砸 遗诱矣 信蘖陨
pshare_title2=蚺牧嗽梢献廖膳 辛伊团砸献 信蘖陨
pshare_title3=笙谀廖膳 遗诱矣 信蘖陨
pshare_info=槲葡彝撩裳  遗诱矣
pshare_name=橥 遗诱矣
pshare_all=蚺诱矣 - 饔 幸晌耘屹
pshare_unixprn=Unix 幸晌耘
pshare_spool=肓粤滔 有仗乓

sec_index1=鹆伊团砸 屡谙辛游嫌陨
sec_index2=蚺牧嗽梢献廖膳 辛伊团砸献 屡谙辛游嫌陨
sec_writable=蛄谝袍盼 诹猩迂?
sec_guest=缦釉抛鲜 吕闹旁?
sec_guestonly=粝特讼 窍釉抛鲜
sec_guestaccount=Unix 邢特谙琢耘特 奶 窍釉抛锨 吕闹旁
sec_limit=锴伊紊奚载 南 紫谕现蜗窍 有捎肆?
sec_allowhost=蛄谝袍盼钨 认釉
sec_onlyallow=蛄谝袍稍 韵特讼
sec_denyhost=幸泡盼钨 认釉
sec_onlydeny=幸旁稍 韵特讼
sec_revalidate=Revalidate 邢特谙琢耘膛?
sec_validuser=渑视宰绽萆 邢特谙琢耘躺
sec_validgroup=渑视宰绽萆 且招匈
sec_invaliduser=钆呐视宰绽萆 邢特谙琢耘躺
sec_invalidgroup=钆呐视宰绽萆 且招匈
sec_possibleuser=飨谕现钨 邢特谙琢耘躺
sec_possiblegroup=飨谕现钨 且招匈
sec_rouser=粝特讼 奚粤垒膳 邢特谙琢耘躺
sec_rogroup=粝特讼 奚粤垒膳 且招匈
sec_rwuser=粤垒膳/猩壅萆 邢特谙琢耘躺
sec_rwgroup=粤垒膳/猩壅萆 且招匈

esync_title=笊稳蚁紊诹蒙 邢特谙琢耘膛
esync_msg=Webmin 拖峙 沦载 瘟釉蚁盼 粤, 拊 子 哨团闻紊  铝谂 牧挝偃 邢特谙琢耘膛 Unix 抡恼 磷韵土陨夼铀 由稳蚁紊谏蚁琢载友  铝谙 牧挝偃 邢特谙琢耘膛 Samba.  紫谕现蜗  韵 犹辙僚, 讼悄 奶 南铝滋盼裳, 哨团闻紊 商 漳撂盼裳 邢特谙琢耘膛 抡呐 捎邢特谙琢载友 Webmin 拖恼特 <tt>鹣特谙琢耘躺  缫招匈</tt>.
esync_add=湎铝咨载 邢特谙琢耘萄 Samba 幸 南铝滋盼缮 邢特谙琢耘萄 Unix
esync_chg=橼团紊载 邢特谙琢耘萄 Samba 幸 哨团闻紊 邢特谙琢耘萄 Unix
esync_del=跄撂稍 邢特谙琢耘萄 Samba 幸 漳撂盼缮 邢特谙琢耘萄 Unix

mkpass_title=鹨畔乱邻献猎 邢特谙琢耘膛
mkpass_fail=镗陕肆 幸 幸畔乱邻献廖缮 邢特谙琢耘萄
mkpass_msg=鹨畔乱邻献廖膳 邢特谙琢耘膛 Unix...
mkpass_skip=幸闲蛰盼
mkpass_same=罩 酉仔聊晾
mkpass_update=下蜗滋盼
mkpass_del=漳撂盼
mkpass_passfail=镗陕肆 幸 诹牧紊 辛蚁萄

savecopy_fail=镗陕肆 幸 酉谀廖缮 讼猩
savecopy_global=橥 'global' 闻 拖峙 捎邢特谙琢载友 奶 遗诱矣
savecopy_exist=蚺诱矣  赏盼磐 '$1' 罩 诱菖釉渍旁

saveuser_fail=镗陕肆 幸 酉纫廖盼缮 邢特谙琢耘萄
saveuser_uid='$1' 闻 炎萄旁友 南姓釉赏偻 Unix UID
saveuser_colon=蚺撂匚吓 赏 闻 拖峙 酉呐抑猎 由妥咸:
saveuser_home=湎土畚墒 肆粤滔 '$1' 闻 诱菖釉渍旁
saveuser_shell=$1 闻 炎萄旁友 南姓釉赏偻 shell
saveuser_pass=镗陕肆 幸 哨团闻紊 辛蚁萄  捎邢特谙琢紊磐 smbpasswd : $1

savefmisc_fail=镗陕肆 幸 酉纫廖盼缮 幸限扇 辛伊团砸献
savefmisc_number='$1' 闻 炎萄旁友 南姓釉赏偻 讼躺夼釉紫 酉拍晌盼墒

savefperm_fail=镗陕肆 幸 酉纫廖盼缮 幸磷 屏侍献
savefperm_mode='$1' 闻 炎萄涝友 南姓釉赏偻 幸磷镣 南釉招 Unix 屏侍

savefshare_fail=镗陕肆 幸 酉纫廖盼缮 遗诱矣
savefshare_nopath=鹫载 闻 诹牧
savefshare_exist=蚺诱矣  赏盼磐 '$1' 罩 诱菖釉渍旁
savefshare_mode='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 遗诱矣
savefshare_global=橥 'global' 闻 拖峙 捎邢特谙琢载友 肆 赏 遗诱矣

savemisc_fail=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献
savemisc_lockdir=肓粤滔 酉呐抑凛墒 邢乃猎撂锨  绿纤梢献肆蜕 闻 诱菖釉渍旁
savemisc_logdir=肓粤滔 酉呐抑凛墒 终椅撂匚偈 屏侍 闻 诱菖釉渍旁
savemisc_logsize='$1' 闻 炎萄旁友 南姓釉赏偻 伊谕乓贤 终椅撂
savemisc_overlap='$1' 闻 炎萄旁友 南姓釉赏偻 伊谕乓贤 overlapping read
savemisc_chroot=肓粤滔 chroot '$1' 闻 诱菖釉渍旁
savemisc_smbrun=鹨锨伊屯 smbrun '$1' 闻 诱菖釉渍旁, 商 闻 炎萄旁友 捎邢涛雅拖
savemisc_time='$1' 闻 炎萄旁友 南姓釉赏偻 滓磐盼钨 油泡盼膳

savenet_fail=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献
savenet_timeout='$1' 闻 炎萄旁友 南姓釉赏偻 粤释琳韵 显酉拍晌盼裳
savenet_ip='$1' 闻 炎萄旁友 南姓釉赏偻 IP
savenet_keep='$1' 闻 炎萄旁友 南姓釉赏偻 晌耘易撂贤 keepalive
savenet_maxxmit='$1' 闻 炎萄旁友 南姓釉赏偻 土松土特钨 伊谕乓贤 伊伺粤

savepass_fail=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献
savepass_nopass=髁哿 着矣裳 samba 闻 邢哪乓稚琢旁 凵埔献廖钨 辛蚁躺
savepass_passwd=钆 诹牧瘟 幸锨伊屯 奶 哨团闻紊 辛蚁膛
savepass_level='$1' 闻 炎萄旁友 南姓釉赏偻 伊谔赊膳 遗巧釉伊 辛蚁萄
savepass_chat=竺盼烈墒 哨团闻紊 辛蚁萄 姓釉

savepopts_fail=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献 信蘖陨
savepopts_number=砩. 幼下夏蜗 幸嫌砸廖釉紫 .. 蒙埔鲜

saveprint_fail=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献
saveprint_printcap=媪侍 printcap '$1' 闻 诱菖釉渍旁
saveprint_cache='$1' 闻 炎萄旁友 南姓釉赏偻 滓磐盼磐 塑凵蚁琢紊

savepshare_fail=镗陕肆 幸 酉纫廖盼缮 遗诱矣 信蘖陨
savepshare_exist=蚺诱矣  赏盼磐 '$1' 罩 诱菖釉渍旁
savepshare_name='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 遗诱矣
savepshare_global=橥 'global' 闻 拖峙 捎邢特谙琢载友 奶 遗诱矣

savesec_fail=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献 屡谙辛游嫌陨
savesmb_fail=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献
savesmb_size='$1' 闻 炎萄旁友 南姓釉赏偻 伊谕乓贤 纳铀
savesmb_oslevel='$1' 闻 炎萄旁友 南姓釉赏偻 幸上疑晕韵 翘磷蜗窍 乱琳谂伊
savesmb_server=髻 南讨钨 鬃庞陨 优易乓 辛蚁膛

start_err=镗陕肆 幸 釉烈耘 优易乓 samba
start_fail=$1 闻沼信畚

swats_fail=镗陕肆 幸 酉纫廖盼缮 赏盼 邢特谙琢耘萄
swats_user=镌诱杂宰张 SWAT 赏 邢特谙琢耘萄

viewu_index=襞苏萆 邢特谙琢耘躺
viewu_list=襞苏萆 刑刳献猎盘 $1
viewu_share=蚺诱矣
viewu_msg2=鹣乃汤夼挝偃 邢特谙琢耘膛 闻
  07070100057d93000081a40000000000000002000000013ac0388d00004e78000000200000000000000000000000000000001400000003reloc/samba/lang/sv   index_title=Resurshanterare f鰎 Samba
index_sharelist=resurslista
index_userlist=anv鋘darlista
index_fileshare=filresurs
index_printershare=skrivarresurs
index_shareconf=resurskonfiguration
index_yes=Ja
index_no=Nej

index_sharename=Resursnamn
index_path=S鰇v鋑
index_security=S鋕erhet
index_homedir=Alla hemkataloger
index_allprinter=Alla skrivare
index_printer=Skrivare
index_defaultprn=Standardskrivare
index_printableto=Kunna anv鋘das av
index_prneveryone=Kunna anv鋘das av alla
index_prnalluser=Kunna anv鋘das av alla k鋘da anv鋘dare
index_rwpublic=L鋝- och skrivbar f鰎 alla
index_readonly=Endast l鋝bar f鰎 $1<br>L鋝- och skrivbar f鰎 鰒riga k鋘da anv鋘dare
index_rwalluser=L鋝- och skrivbar f鰎 alla k鋘da anv鋘dare
index_roeveryone=Endast l鋝bar f鰎 alla
index_readwrite=L鋝- och skrivbar f鰎 $1<br>Endast l鋝bar f鰎 鰒riga k鋘da anv鋘dare
index_roalluser=Endast l鋝bar f鰎 alla k鋘da anv鋘dare
index_noshares=Du har inte definierat n錱on Samba-resurs
index_createfileshare=L鋑g till en filresurs
index_createprnshare=L鋑g till en skrivarresurs
index_createcopy=L鋑g till en kopia
index_view=Visa alla uppkopplingar
index_start=Starta Samba-servrar
index_startmsg=Samba-servrarna verkar inte k鰎as p ditt system. Detta medf鰎 att resurserna som r鋕nas upp ovan inte g錼 att komma 錿 fr錸 andra datorer.
index_restart=Starta om Samba-servrar
index_restartmsg=Tryck p denna knapp f鰎 att starta om de Samba-servrar som k鰎s p ditt system. De inst鋖lningar du nu har gjort kommer att tas i drift.

config_mins=minuter
config_secs=sekund
config_bytes=byte
config_never=Aldrig
config_all=Alla
config_neither=Ingen
config_default=Standard

global_title=Globala inst鋖lningar
global_unixnetwork=Unix-n鋞verk
global_winnetwork=Windows-n鋞verk
global_auth=Autentisering
global_printing=Windows-Unix-skrivning
global_misc=Blandade inst鋖lningar
global_filedefault=Standardinst鋖lningar f鰎 filresurs
global_prndefault=Standardinst鋖lningar f鰎 skrivarresurs
global_password=Krypterade l鰏enord
global_edit=膎dra Samba-anv鋘dare och l鰏enord
global_convert=G鰎 om Unix-anv鋘dare till Samba-anv鋘dare
global_sync=G鰎 inst鋖lningar f鰎 automatisk synkronisering mellan Unix- och Samba-anv鋘dare

error_nosamba=Samba-serverprogrammet <tt>$1</tt> kunde inte hittas. Samba verkar inte ha installerats p ditt system, eller ocks 鋜 dina <a href="$2">modulinst鋖lningar</a> felaktiga.
error_version=Webmin kunde inte hitta n錱ot versionsnummer p ditt Samba-serverprogram <tt>$1</tt>. Kontrollera i dina <a href="$2">modulinst鋖lningar</a> att du verkligen har angivit r鋞t s鰇v鋑.
error_config=Inst鋖lningsfilen file $1 kunde inte hittas. Det troligaste 鋜 att Samba inte installerats p ditt system, eller ocks 鋜 dina <a href="$2">modulinst鋖lningar</a> felaktiga.
error_include=Webmin kan inte hantera inst鋖lningsfiler f鰎 Samba som anv鋘der n錱ot av direktiven <tt>config</tt> och <tt>include</tt>.
error_delshare=Det gick inte att ta bort resursen
error_delcopy=Resursen '$1' kopierar denna resurs
error_savename=Det gick inte att spara filnamnet

convert_title=G鰎 om Unix-anv鋘dare till Samba-anv鋘dare
convert_msg=I detta formul鋜 kan du synkronisera listorna med Unix- och Samba-anv鋘dare. Om Samba k鰎 med <a href=$1>krypterade l鰏enord</a>, kommer en separat lista med anv鋘dare och l鰏enord att anv鋘das ist鋖let f鰎 systemets lista med anv鋘dare.
convert_noconv=Flytta inte 鰒er och ta inte bort f鰈jande anv鋘dare:
convert_update=Uppdatera befintliga Samba-anv鋘dare med deras Unix-uppgifter
convert_add=L鋑g till Samba-anv鋘dare fr錸 Unix-anv鋘darlistan
convert_delete=Ta bort Samba-anv鋘dare som inte finns under Unix
convert_newuser=S鋞t f鰈jande l鰏enord f鰎 nya anv鋘dare:
convert_nopasswd=Inget l鰏enord
convert_lock=Kontot l錽t
convert_passwd=Anv鋘d detta l鰏enord
convert_convert=Flytta 鰒er anv鋘dare

misc_title=Blandade inst鋖lningar
misc_debug=Debuggningsniv
misc_cachecall=Cacha <tt>getwd()</tt>-anrop?
misc_lockdir=L錽katalog
misc_log=Loggfil
misc_maxlog=Maximal loggstorlek
misc_rawread=Till錿a r l鋝ning?
misc_rawwrite=Till錿a r skrivning?
misc_overlapread=Storlek f鰎 鰒erskjutande l鋝ning
misc_chroot=<tt>chroot()</tt>-katalog
misc_smbrun=S鰇v鋑 till <tt>smbrun</tt>
misc_clienttime=Client time offset
misc_readprediction=L鋝a i f鰎v鋑?

net_title=Inst鋖lningar f鰎 Unix-n鋞verk
net_idle=V鋘tetid f鰎e nedkoppling
net_trustlist=Fil med betrodda datorer/anv鋘dare
net_netinterface=N鋞verkskort
net_auto=Automatiskt
net_uselist=Anv鋘d lista ...
net_interface=Interface
net_netmask=N鋞mask
net_keepalive=Keepalive-paket
net_notsend=Skicka inga
net_every=Skicka var
net_maxpacket=Maximal paketstorlek
net_listen=Lyssna p adress
net_socket=Socket-inst鋖lningar

passwd_title=L鰏enordsinst鋖lningar
passwd_encrypt=Ska krypterade l鰏enord anv鋘das?
passwd_allownull=Ska tomma l鰏enord till錿as?
passwd_program=L鰏enordsprogram
passwd_case=I l鰏enordet g鰎s skillnad p sm och stora bokst鋠er
passwd_chat=Str鋘gsekvens f鰎 att 鋘dra l鰏enord
passwd_below=Angivet nedan:
passwd_waitfor=V鋘ta p
passwd_send=Skicka
passwd_map=Uppslagning av anv鋘darnamn
passwd_unixuser=Unix-anv鋘dare
passwd_winuser=Windows-anv鋘dare

print_title=Skrivarinst鋖lningar
print_style=Unix-utskrifter
print_show=Visa alla skrivare?
print_printcap=Printcap-fil
print_cachetime=Hur l鋘ge ska skrivarstatus cachas?

smb_title=Inst鋖lningar f鰎 Windows-n鋞verk
smb_workgroup=Arbetsgrupp
smb_wins=WINS-mode
smb_winsserver=Vara WINS-server
smb_useserver=Anv鋘d server
smb_description=Serverbeskrivning
smb_name=Servernamn
smb_aliase=Serveralias
smb_default=Standardtj鋘st
smb_show=Visa alltid tj鋘ster
smb_disksize=Maximal angiven diskstorlek
smb_unlimited=Obegr鋘sad
smb_winpopup=Kommando f鰎 Winpopup
smb_priority=Prioritet f鰎 master browser
smb_protocol=H鰃sta protokoll
smb_master=Master browser?
smb_security=S鋕erhet
smb_sharelevel=Resursniv
smb_userlevel=Anv鋘darniv
smb_passwdserver=L鰏enordsserver
smb_domain=Dom鋘
smb_announce=Skicka meddelande till
smb_nowhere=Ingenstans
smb_fromlist=Fr錸 lista ...
smb_ip=IP-adress
smb_asworkgroup=<b>Som arbetsgrupp</b> (valfritt)

create_title=Skapa kopia
create_msg=En kopierad resurs 鋜ver alla standardv鋜den fr錸 den valda resursen. Om originalet 鋘dras kommer kopian ocks att g鰎a det.
create_from=Resurs som ska kopieras:
create_name=Namn p ny resurs:

smbuser_title=Samba-anv鋘dare
smbuser_list=Lista 鰒er Samba-anv鋘dare
smbuser_nouser=Du har inte definierat n錱ra Samba-anv鋘dare

euser_title=膎dra Samba-anv鋘dare
euser_name=Anv鋘darnamn
euser_uid=Unix-UID
euser_passwd=L鰏enord
euser_noaccess=Ingen 錿komst
euser_nopw=Inget l鰏enord
euser_currpw=Nuvarande l鰏enord
euser_newpw=Nytt l鰏enord
euser_realname=Namn i verkligheten
euser_homedir=Hemkatalog
euser_shell=Skal
euser_option=Anv鋘darinst鋖lningar
euser_normal=Normal anv鋘dare
euser_nopwrequired=Ingen l鰏enord beh鰒s
euser_disable=Kontot avst鋘gt
euser_trust=Betrott arbetsstationskonto

fmisc_title=Blandade standardinst鋖lningar f鰎 filer
fmisc_for=F鰎 resurs <tt>$1</tt>
fmisc_lockfile=L錽a fil?
fmisc_maxconn=Maximalt antal uppkopplingar
fmisc_fake=Fejka op-l錽?
fmisc_sharemode=Anv鋘da resurs-mode?
fmisc_strict=Strikt l錽?
fmisc_sync=Synkronisera efter skrivning?
fmisc_volume=Volymnamn
fmisc_sameas=Samma som resursen
fmisc_unixdos=講ers鋞tning av Unix-DOS-filnamn
fmisc_conncmd=Kommando vid uppkoppling
fmisc_disconncmd=Kommando vid nedkoppling
fmisc_rootconn=Kommando vid uppkoppling <i>som root</i>
fmisc_rootdisconn=Kommando vid nedkoppling <i>som root</i>

fname_title1=Standardv鋜den f鰎 filnamngivning
fname_title2=膎dra filnamngivning
fname_option=Inst鋖lningar f鰎 filnamngivning
fname_manglecase=G鰎a om allt till stora/sm bokst鋠er?
fname_case=Kastberoende (skillnad p stora och sm bokst鋠er)?
fname_defaultcase=Standard?
fname_lower=Sm
fname_upper=Stora
fname_preserve=Beh錶la stora och sm bokst鋠er som de 鋜?
fname_shortpreserve=Beh錶la stora och sm bokst鋠er?
fname_hide=G鰉ma punktfiler?
fname_archive=Spara DOS-arkivflaggan?
fname_hidden=Spara DOS G鰉d-flagga?
fname_system=Spara DOS systemflagga?

fperm_title1=Standardv鋜den f鰎 filr鋞tigheter
fperm_title2=膎dra filr鋞tigheter
fperm_option=Inst鋖lningar f鰎 filr鋞tigheter
fperm_filemode=Mode f鰎 nya Unix-filer
fperm_dirmode=Mode f鰎 nya Unix-kataloger
fperm_notlist=Kataloger som inte ska listas
fperm_forceuser=S鋞t Unix-anv鋘dare
fperm_forcegrp=S鋞t Unix-grupp
fperm_link=Till錿a symboliska l鋘kar som g錼 utanf鰎 resursen?
fperm_delro=Kunna ta bort filer som endast 鋜 l鋝bara?
fperm_forcefile=Anv鋘d alltid Unix-filmode
fperm_forcedir=Anv鋘d alltid Unix-katalogmode

share_title1=Standardv鋜den f鰎 filresurser
share_title2=膎dra filresurs
share_title3=L鋑g till filresurs
share_info=Uppgifter om filresurs
share_copy=Denna resurs 鋜 en kopia av <i>$1</i>
share_name=Resursens namn
share_home=Hemkatalogresurs
share_dir=Kataloger som ska delas
share_available=Tillg鋘gligt?
share_browseable=L鋝bart (kunna se filer)?
share_comment=Resurskommentar
share_view=Visa uppkopplingar
share_option=講riga resursinst鋖lningar
share_security=S鋕erhet och 錿komstkontroll
share_permission=Filr鋞tigheter
share_naming=Filnamngivning
share_misc=Blandade inst鋖lningar

print_title1=Standardinst鋖lningar f鰎 skrivare
print_title2=膎dra skrivarinst鋖lningar
print_option=Skrivarinst鋖lningar
print_minspace=Minsta lediga utrymme
print_postscript=Alltid postscript-utskrift
print_command=Utskriftskommando
print_queue=Kommando f鰎 att se utskriftsk鰊
print_delete=Kommando f鰎 att ta bort utskriftsjobb
print_pause=Kommando f鰎 att stanna utskriftsjobb
print_unresume=Kommando f鰎 att inte 錿eruppta utskriftsjobb
print_driver=Skrivardrivrutin

pshare_title1=Standardv鋜den f鰎 skrivarresurser
pshare_title2=膎dra skrivarresurs
pshare_title3=L鋑g till skrivarresurs
pshare_info=Uppgifter om resursen
pshare_name=Resursnamn
pshare_all=Resurs f鰎 alla skrivare
pshare_unixprn=Unix-skrivare
pshare_spool=Spool-katalog

sec_index1=Standardv鋜den f鰎 錿komst
sec_index2=膎dra 錿komst
sec_writable=Skrivbart?
sec_guest=Har guest tillg錸g?
sec_guestonly=Endast guest
sec_guestaccount=Endast Unix-g鋝tanv鋘dare
sec_limit=Begr鋘sning p M鰆liga-listan?
sec_allowhost=Till錿 f鰈jande datorer
sec_onlyallow=Till錿 endast:
sec_denyhost=Neka f鰈jande datorer
sec_onlydeny=Neka endast:
sec_revalidate=Bekr鋐ta anv鋘dare igen?
sec_validuser=Giltiga anv鋘dare
sec_validgroup=Giltiga grupper
sec_invaliduser=Ogiltiga anv鋘dare
sec_invalidgroup=Ogiltiga grupper
sec_possibleuser=M鰆liga anv鋘dare
sec_possiblegroup=M鰆liga grupper
sec_rouser=Anv鋘dare som endast f錼 l鋝a
sec_rogroup=Grupper som endast f錼 l鋝a
sec_rwuser=Anv鋘dare som f錼 l鋝a och skriva
sec_rwgroup=Grupper som f錼 l鋝a och skriva

esync_title=Anv鋘darsynkronisering
esync_msg=Webmin kan st鋖las in s att 鋘dringar av Unix-anv鋘dare automatiskt ocks g鰎s f鰎 motsvarande Samba-anv鋘dare. Detta fungerar dock bara d Webmin-modulen <tt>Anv鋘dare och grupper</tt> anv鋘ds f鰎 att l鋑ga till, ta bort eller 鋘dra anv鋘dare.
esync_add=L鋑g till en Samba-anv鋘dare n鋜 en Unix-anv鋘dare l鋑gs till
esync_chg=膎dra Samba-anv鋘daren n鋜 motsvarande Unix-anv鋘dare 鋘dras
esync_del=Ta bort Samba-anv鋘daren n鋜 motsvarande Unix-anv鋘dare tas bort
esync_apply=Ta i drift

mkpass_title=G鰎 om anv鋘dare
mkpass_convfail=Det gick inte att g鰎a om anv鋘dare
mkpass_msg=G鰎 om Unix-anv鋘dare ...
mkpass_skip=hoppas 鰒er
mkpass_same=鋜 redan samma
mkpass_update=uppdateras
mkpass_del=tas bort
mkpass_passfail=Det gick inte att s鋞ta l鰏enordet

savecopy_fail=Det gick inte att skapa en kopia
savecopy_global=Du f錼 inte anv鋘da namnet 'global' p en resurs
savecopy_exist=Det finns redan en resurs med namnet '$1'

saveuser_fail=Det gick inte att spara anv鋘dare
saveuser_uid='$1' 鋜 inte ett giltigt Unix-UID
saveuser_colon=Det verkliga namnet f錼 inte inneh錶la tecknet :
saveuser_home=Hemkatalogen '$1' finns inte
saveuser_shell=$1 鋜 inte ett giltigt skal
saveuser_pass=Det gick inte att byta l鰏enord med smbpasswd: $1

savefmisc_fail=Det gick inte att spara blandade inst鋖lningar
savefmisc_number='$1' 鋜 inte ett giltigt antal uppkopplingar

savefperm_fail=Det gick inte att spara filr鋞tigheter
savefperm_mode='$1' 鋜 inte en giltig Unix-filmod

savefshare_fail=Det gick inte att spara resursen
savefshare_nopath=Du har inte angivit n錱on s鰇v鋑
savefshare_exist=Det finns redan en resurs med namnet '$1'
savefshare_mode='$1' 鋜 inte ett giltigt resursnamn
savefshare_global=Du f錼 inte anv鋘da namnet 'global' p en resurs

savemisc_fail=Det gick inte att spara inst鋖lningarna
savemisc_lockdir=Katalogen som ska inneh錶la l錽katalogen finns inte
savemisc_logdir=Katalogen som ska inneh錶la loggfilen finns inte
savemisc_logsize='$1' 鋜 inte en giltig loggstorlek
savemisc_overlap='$1' 鋜 inte en giltig storlek f鰎 鰒erskjutande l鋝ning
savemisc_chroot=chroot-katalogen '$1' finns inte
savemisc_smbrun=smbrun-programmet '$1' finns inte eller g錼 inte att k鰎a
savemisc_time='$1' 鋜 inte en giltig time offset

save_net_fail=Det gick inte att spara inst鋖lningar
save_net_timeout='$1' 鋜 inte en giltig tidsgr鋘s f鰎 nedkoppling
save_net_ip='$1' 鋜 inte en giltig IP-byte
save_net_keep='$1' 鋜 inte ett giltigt keepalive-intervall
save_net_maxxmit='$1' 鋜 inte en giltig maximal paketstorlek

save_pass_fail=Det gick inte att spara inst鋖lningar
save_pass_nopass=Din Samba-version st鰀jer inte krypterade l鰏enord
save_pass_passwd=Du har inte angivit n錱ot program som kan 鋘dra l鰏enord
save_pass_level='$1' 鋜 inte en giltig kastskillnad f鰎 l鰏enord
save_pass_chat=Str鋘gsekvensen f鰎 att 鋘dra l鰏enord 鋜 tom

save_popts_fail=Det gick inte att spara skrivarinst鋖lningar
save_popts_number=Minsta lediga utrymme m錽te vara ett tal

save_print_fail=Det gick inte att spara inst鋖lningar
save_print_printcap=Printcap-filen '$1' finns inte
save_print_cache='$1' 鋜 inte en giltig cache-tid

save_pshare_fail=Det gick inte att spara skrivarresurs
save_pshare_exist=Det finns redan en resurs med namnet '$1'
save_pshare_name='$1' 鋜 inte ett giltigt resursnamn
save_pshare_global=Du f錼 inte anv鋘da namnet 'global' p en resurs

save_sec_fail=Det gick inte att spara s鋕erhetsinst鋖lningar

save_smb_fail=Det gick inte att spara inst鋖lningar
save_smb_size='$1' 鋜 inte en giltig diskstorlek
save_smb_oslevel='$1' 鋜 inte en giltig prioritet f鰎 master browser
save_smb_server=Du m錽te ange en l鰏enordsserver

start_err=Det gick inte att starta n錱on Samba-server
start_fail=$1 misslyckades

swats_fail=Det gick inte att spara anv鋘darnamn
swats_user=SWAT-anv鋘darnamn fattas

viewu_index=Uppkopplade anv鋘dare
viewu_list=Anv鋘dare uppkopplade till $1
viewu_share=Resurs
viewu_user=Anv鋘dare
viewu_group=Grupp
viewu_from=Uppkopplad fr錸
viewu_time=Kopplade upp vid
viewu_pid=Process-ID
viewu_msg1=Klicka p ett process-ID i listan ovan f鰎 att koppla ned anv鋘daren.
viewu_msg2=F鰎 tillf鋖let 鋜 ingen anv鋘dare uppkopplad

log_apply=Startade om Samba-servrar
log_start=Startade Samba-servrar
log_save_fshare=Modifierade filresurs $1
log_save_pshare=Modifierade skrivarresurs $1
log_save_sec=Modifierade s鋕erhet och 錿komstkontroll f鰎 resurs $1
log_save_fperm=Modifierade filr鋞tigheter f鰎 resurs $1
log_save_fname=Modifierade filnamngivning f鰎 resurs $1
log_save_fmisc=Modifierade blandade inst鋖lningar f鰎 resurs $1
log_save_popts=Modifierade skrivarinst鋖lningar f鰎 resurs $1
log_default_fshare=膎drade standardinst鋖lningar f鰎 filresursen
log_default_pshare=膎drade standardinst鋖lningar f鰎 skrivarresursen
log_kill=Br鰐 f鰎bindelsen till process $1
log_skill=Br鰐 f鰎bindelsen till process $1 fr錸 resurs $2
log_create_fshare=Lade till filresurs $1
log_create_pshare=Lade till skrivarresurs $1
log_delete_fshare=Tog bort filresurs $1
log_delete_pshare=Tog bort skrivarresurs $1
log_net=膎drade inst鋖lningar f鰎 Unix-n鋞verk
log_smb=膎drade inst鋖lningar f鰎 Windows-n鋞verk
log_pass=膎drade autentiseringsinst鋖lningar
log_print=膎drade inst鋖lningar f鰎 Windows-Unix-skrivning
log_misc=膎drade blandade inst鋖lningar
log_sync=Konfigurerade synkronisering av Unix-anv鋘dare
log_epass=Gjorde om Unix-anv鋘dare till Samba-anv鋘dare
log_epass_l=Gjorde om Unix-anv鋘dare till Samba-anv鋘dare ($1 skapade, $2 modifierade, $3 borttagna)
log_copy=Kopierade resurs $2 to $1
log_save_euser=Modifierade Samba-anv鋘dare $1
log_delete_euser=Tog bort Samba-anv鋘dare $1

swat_title=SWAT-inloggning
swat_list=SWAT-inloggning
swat_msg1=Ditt SWAT-anv鋘darnamn och -l鰏enord 鋜 felaktiga. Logga in igen i formul鋜et nedan.
swat_msg2=Du beh鰒er ett anv鋘darnamn och ett l鰏enord f鰎 att kunna logga in p SWAT. Det g錼 oftast bra med valfri anv鋘dare i systemet.
swat_msg3=Det g錼 inte att k鰎a SWAT via Webmin, eftersom dina Samba-inst鋖lningar har variabeln <tt>$1:...</tt> (allow hosts) satt.
swat_msg4=D鋜emot g錼 det att koppla upp sig direkt mot SWAT p $1
swat_username=Anv鋘darnamn
swat_password=L鰏enord
swat_login=Logga in
swat_clear=Rensa

eacl_aviol=R鋞tighets鰒ertr鋎else
eacl_np=Du har inte r鋞tighet att
eacl_papply=starta om denna tj鋘st
eacl_pcn=鋘dra inst鋖lningar f鰎 Unix-n鋞verk
eacl_pcs=鋘dra inst鋖lningar f鰎 Samba-n鋞verk
eacl_pcp=鋘dra l鰏enordsinst鋖lningar
eacl_pcprint=鋘dra skrivarinst鋖lningar
eacl_pcm=鋘dra blandade inst鋖lningar
eacl_pcswat=anv鋘da SWAT
eacl_pcopy=kopiera utdelade resurser
eacl_pconn_all=se alla f鰎bindelser
eacl_pconn=se f鰎bindelser f鰎 denna resurs
eacl_pgkill=sl ihj鋖 f鰎bindelser
eacl_pkill=sl ihj鋖 denna f鰎bindelse
eacl_pus=uppdatera resurs
eacl_pcs=l鋑ga till resurs
eacl_pds=ta bort resurs
eacl_pusec=uppdatera inst鋖lningar f鰎 s鋕erhet och 錿komstkontroll f鰎 denna resurs
eacl_pufperm=uppdatera inst鋖lningar f鰎 filr鋞tigheter f鰎 denna resurs
eacl_pufname=uppdatera inst鋖lningar f鰎 filnamngivning f鰎 denna resurs
eacl_pufmisc=uppdatera blandade inst鋖lningar f鰎 denna resurs
eacl_pupopt=uppdatera skrivarinst鋖lningar f鰎 denna resurs
eacl_pmpass=initialisera SAMBA-anv鋘dardatabasen
eacl_pmsync=underh錶la synkroniseringen mellan UNIX- och SAMBA-anv鋘dare
eacl_pmusers=underh錶la SAMBA-anv鋘dare
eacl_pvusers=komma 錿 SAMBA-anv鋘dare
eacl_pvfmisc=komma 錿 blandade inst鋖lningar f鰎 denna resurs
eacl_pvfname=komma 錿 inst鋖lningar f鰎 filnamngivning f鰎 denna resurs
eacl_pvperm=komma 錿 inst鋖lningar f鰎 filr鋞tigheter f鰎 denna resurs
eacl_pvsec=komma 錿 inst鋖lningar f鰎 s鋕erhet och 錿komstkontroll f鰎 denna resurs
eacl_pvpopt=komma 錿 skrivarinst鋖lningar f鰎 denna resurs
eacl_pafs=komma 錿 denna filresurs
eacl_paps=komma 錿 denna skrivarresurs
eacl_pcps=l鋑ga till en skrivarresurs
eacl_pcfs=l鋑ga till en filresurs

acl_apply=Kunna ta 鋘dringar i drift?
acl_view_all_con=Kunna se alla f鰎bindelser?
acl_kill_con=Kunna ta bort f鰎bindelser?
acl_conf_net=Kunna g鰎a inst鋖lningar f鰎 Unix-n鋞verk?
acl_conf_smb=Kunna g鰎a inst鋖lningar f鰎 Windows-n鋞verk?
acl_conf_pass=Kunna g鰎a l鰏enordsinst鋖lningar?
acl_conf_print=Kunna g鰎a skrivarinst鋖lningar?
acl_conf_misc=Kunna g鰎a blandade inst鋖lningar?
acl_swat=Kunna anv鋘da SWAT?
acl_enc_passwd_opts=Inst鋖lningar f鰎 krypterat l鰏enord
acl_view_users=Kunna se databasen med SAMBA-anv鋘dare?
acl_maint_users=Kunna 鋘dra SAMBA-anv鋘dare?
acl_maint_makepass=Kunna omvandla Unix-anv鋘dare till SAMBA-anv鋘dare?
acl_maint_sync=Kunna underh錶la automatisk synkronisering av omvandlingen Unix - SAMBA-anv鋘dare?
acl_hide=G鰉ma objekt som inte ska kommas 錿?
acl_c=skapa
acl_r=l鋝a
acl_w=skriva
acl_afs=Komma 錿 filresurser
acl_aps=Komma 錿 skrivarresurser
acl_copy=Kunna kopiera resurser?
acl_per_fs_acls=Sl p 錿komstlistor per filresurs?
acl_per_ps_acls=Sl p 錿komstlistor per skrivarresurs?
acl_per_share_acls=舤komstlistor per resurs
acl_ernow=Om du vill g鰎a n錱on objekttyp 錿komlig f鰎 skrivning i de globala 錿komstlistorna m錽te du ocks till錿a 錿komst f鰎 l鋝ning f鰎 denna objekttyp.
acl_sname=Resursnam
acl_saccess=Resursen 錿komlig
acl_sconn=F鰎bindelser
acl_sopthdr=Inst鋖lningar f鰎 resurs
acl_ssec=s鋕erhet
acl_sperm=r鋞tigheter
acl_snaming=filnamngivning
acl_smisc=blandade
acl_sprn=eller skrivare
acl_na=n/a
acl_r1=f鰎 l鋝ning
acl_rw=f鰎 skrivning
acl_view=se
acl_kill=sl ihj鋖
acl_edit=鋘dra
07070100057d94000081a40000000000000002000000013ac0388d00003e88000000200000000000000000000000000000001400000003reloc/samba/lang/tr   index_title=Samba Paylam Y鰊eticisi
index_sharelist=paylam listesi
index_userlist=kullan齝 listesi
index_fileshare=dosya paylam
index_printershare=yaz齝 paylam

index_sharename=Paylam Ad
index_path=Yolu
index_security=G黺enlik
index_homedir=B黷黱 Ev Dizinleri
index_allprinter=B黷黱 Yaz齝齦ar
index_printer=Yaz齝
index_defaultprn=謓tan齧l yaz齝
index_printableto=Yaz齦abilir
index_prneveryone=Herkes i鏸n yaz齦abilir
index_prnalluser=B黷黱 bilinen kullan齝齦ar i鏸n yaz齦abilir
index_rwpublic=Herkes i鏸n Okunur/Yaz齨齬
index_readonly=$1 i鏸n sadece okunur.<br>Di餰r b黷黱 bilinen kullan齝齦ar i鏸n Okunur/Yaz齨齬
index_rwalluser=B黷黱 bilinen kullan齝齦ar i鏸n Okunur/Yaz齨齬
index_roeveryone=Herkes i鏸n sadece okunur
index_readwrite=$1 i鏸n Okunur/Yaz齨齬.<br>Di餰r b黷黱 bilinen kullan齝齦ar i鏸n sadece okunur.
index_roalluser=B黷黱 bilinen kullan齝齦ar i鏸鏽 sadece okunur.
index_noshares=Samba paylam tan齧lanmad
index_createfileshare=Yeni bir dosya paylam olu⺶ur
index_createprnshare=Yeni bir yaz齝 paylam olu⺶ur
index_createcopy=Yeni bir kopya olu⺶ur
index_view=B黷黱 ba餷ant齦ar g鰏ter
index_start=Samba Sunucular Baat
index_startmsg=Samba sunucular齨 sisteminizde 鏰lmad tespit edildi. Bu paylam listesine di餰r bilgisayarlar齨 ulaas齨 engelleyecektir
index_restart=Samba Sunucular Yeniden Baat
index_restartmsg=Bu butonu t齥layarak sisteminizde 鏰lmakta olan samba sunucusunu yeniden baatabilirsiniz. B鰕lece mevcut yap齦and齬ma uygulanm olacakt齬.

config_mins=Dak
config_secs=San
config_never=Asla
config_all=Hepsi
config_neither=輐isi de de餴l

global_title=Global Yap齦and齬ma
global_unixnetwork=Unix A瘕
global_winnetwork=Windows A瘕
global_auth=Onaylama
global_printing=Unix Yaz齝齭齨a Windows
global_misc=莈㱮tli Se鏴nekler
global_filedefault=Dosya Paylam 謓tan齧l齦ar
global_prndefault=Yaz齝 Paylam 謓tan齧l齦ar
global_password=辤frelenmi Parolalar
global_edit=Samba kullan齝 ve 㱮frelerini de餴⺶ir
global_convert=Unix kullan齝齦ar齨 Samba kullan齝齦ar齨a d鰊t黵.
global_sync=Otomatik Unix ve Samba kullan齝 e䏝amanlamas齨 yap齦and齬

error_nosamba=Samba sunucusu 鏰lt齬齦abiliri <tt>$1</tt> bulunamad. Sisteminizde Samba sunucusu kurulmam ya da <a href="$2">mod黮 yap齦and齬man齴</a> yanl olabilir.
error_version=Webmin Samba sunucusu 鏰lt齬齦abiliri olan <tt>$1</tt>'in s黵黰黱 okuyamad. Do餽u yolu belirtmek i鏸n <a href="$2">mod黮 yap齦and齬ma</a>n齴 kontrol ediniz.
error_config=Yap齦and齬ma dosyas $1 bulunamad. B鼀黭 ihtimalle sisteminize Samba kurulmamt齬, ya da  <a href="$2">mod黮 yap齦and齬ma</a>n齴 yanlt齬
error_include=Webmin <tt>config</tt> ya da <tt>include</tt> komutlar齨 kullanmak i鏸n yap齦and齬ma dosyas齨 kullanamad.
error_delshare=Paylam齨 silinmesinde hata olu⺶u
error_delcopy=Bu paylam '$1' paylam齨dan kopyalanmt齬
error_savename=Dosya ad齨齨 kaydedilmesinde hata olu⺶u

convert_title=Kullan齝齦ar D鰊t黵
convert_msg=Bu form Samba ve Unix kullan齝齦ar齨齨 e䏝amanlamas齨 yapmak i鏸n kullan齦齬. Samba <a href=$1>encrypted passwords</a> se鏴ne餴ni kulland齨da, sistem kullan齝齦ar齨齨 yerine kullan齝 ve 㱮frelerin ayr齦m listesi kullan齦齬.
convert_noconv=Bu kullan齝齦ar silme ya da d鰊t黵me:
convert_update=Mevcut Samba kullan齝齦ar齨齨 Unix ayr齨t齦ar齨 g黱celle⺶ir
convert_add=Unix kullan齝齦ar listesinden yeni Samba kullan齝齦ar ekle
convert_delete=Unix alt齨da bulunmayan Samba kullan齝齦ar齨 sil
convert_newuser=Yeni olu⺶urulan kullan齝齦ar i鏸n, 㱮fre olarak bunu ver:
convert_nopasswd=㱮fre yok
convert_lock=Alan kilitlendi
convert_passwd=Bu 㱮freyi kullan
convert_convert=Kullan齝齦ar D鰊t黵

misc_title=莈㱮tli Se鏴nekler
misc_debug=Hatas齴la⺶齬ma Seviyesi
misc_cachecall=Cache <tt>getwd()</tt>'yi 鏰瘕rs齨 m?
misc_lockdir=Kilit dizini
misc_log=Kay齮 dosyas
misc_maxlog=En 鏾k kay齮 boyutu
misc_rawread=Ham okumalara izin verilsin mi?
misc_rawwrite=Ham yazmalara izin verilsin mi?
misc_overlapread=躶t黶te okuma boyutu
misc_chroot=<tt>chroot()</tt> dizini
misc_smbrun=<tt>smbrun</tt> yolu
misc_clienttime=輘temci zaman dengesi
misc_readprediction=Tahmini okuma?

net_title=Unix A Se鏴nekleri
net_idle=Ba餷ant kesilmesinden 鰊ceki bekleme s黵esi
net_trustlist=Do餽ulanm makineler/kullan齝齦ar dosyas
net_netinterface=A aray鼁leri
net_auto=Otomatik
net_uselist=Listeyi kullan...
net_interface=Aray鼁
net_netmask=A maskesi
net_keepalive=Keepalive paketleri
net_notsend=Hi鏱ir㧐y g鰊derme
net_maxpacket=En 鏾k paket boyutu
net_listen=Adresi dinle
net_socket=Soket se鏴nekleri

passwd_title=Parola Se鏴nekleri
passwd_encrypt=辤frelenmi parolalar kullan齦s齨 m?
passwd_allownull=Bo 㱮freler kabul edilsin mi?
passwd_program=Parola program
passwd_case=Parola harfleri farkl olmal
passwd_chat=Parola sorma ifadelerini de餴⺶ir
passwd_below=Listeliler:
passwd_waitfor=Bekle
passwd_send=G鰊der
passwd_map=Kullan齝 ad haritaland齬mas
passwd_unixuser=Unix Kullan齝齦ar
passwd_winuser=Windows Kullan齝齦ar

print_title=Yaz齝 Se鏴nekleri
print_style=Unix yaz齧 stili
print_show=B黷黱 yaz齝齦ar g鰏ter?
print_printcap=Printcap dosyas
print_cachetime=Yaz齝 durumu cache zaman

smb_title=Windows A Se鏴nekleri
smb_workgroup=莂lma Grubu
smb_wins=WINS modu
smb_winsserver=WINS sunucu ol
smb_useserver=Sunucu kullan
smb_description=Sunucu a琮klamas
smb_name=Sunucu ad
smb_aliase=Sunucu tkma isimleri
smb_default=謓tan齧l servis
smb_show=Servisleri her zaman g鰏ter
smb_disksize=Bildirilem en 鏾k disk boyutu
smb_unlimited=Limitsiz
smb_winpopup=Winpopup komutu
smb_priority=Ana taray齝 鰊celi餴
smb_protocol=En y黭sek protokol
smb_master=Ana taray齝?
smb_security=G黺enlik
smb_sharelevel=Paylam seviyesi
smb_userlevel=Kullan齝 seviyesi
smb_passwdserver=辤fre sunucusu
smb_domain=Alan
smb_announce=Uzkatan bildir
smb_nowhere=Hi鏱iryer
smb_fromlist=Listeden...
smb_ip=IP Adresi
smb_asworkgroup=<b>莂lma grubu olarak</b> (se鏸me ba餷)

create_title=Kopya Olu⺶ur
create_msg=Bir kopya paylam se鐃i餴niz paylamdaki b黷黱 鰊tan齧l de餰rleri al齬. E餰r kaynak de餴⺶irilirse, kopyas da de餴⺶irilir
create_from=Buradan kopyay payla⺶齬:
create_name=Yeni paylam ismi:

smbuser_title=Samba Kullan齝齦ar
smbuser_list=Samba Kullan齝 Listesi
smbuser_nouser=Samba kullan齝齦ar tan齧lanmad

euser_title=Samba Kullan齝齭齨齨 De餴⺶ir
euser_name=Kullan齝 ad
euser_uid=Unix UID
euser_passwd=辤fre
euser_noaccess=Giri yok
euser_nopw=Parola yok
euser_currpw=Mevcut parola
euser_newpw=Yeni parola
euser_realname=Ger鏴k ismi
euser_homedir=Ev dizini
euser_shell=Kabuk
euser_option=Kullan齝 se鏴nekleri
euser_normal=Normal kullan齝
euser_nopwrequired=辤fre gerekmiyor
euser_disable=Hesap kapat齦d
euser_trust=蔺 istasyonu onaylama hesab

fmisc_title=莈㱮tli Dosya 謓tan齧l齦ar
fmisc_for=<tt>$1</tt> paylam i鏸n
fmisc_lockfile=Dosya kilitlensin mi?
fmisc_maxconn=En 鏾k ba餷ant
fmisc_fake=Fake oplocks 鰖elli餴 kullan齦s齨 m?
fmisc_sharemode=Paylam modlar kullan齦s齨 m?
fmisc_strict=Kilitlemeler tam olsun?
fmisc_sync=Yaz齧lardan sonra sync yap齦s齨 m?
fmisc_volume=Volume ismi
fmisc_sameas=Paylam ile ayn
fmisc_unixdos=Unix-DOS dosya ad haritas
fmisc_conncmd=Ba餷ant i鏸n kullan齦acak komut
fmisc_disconncmd=Ba餷ant齳 kesmek i鏸n kullan齦acak komut
fmisc_rootconn=<i>Root olarak</i> ba餷ant i鏸n kullan齦acak komut
fmisc_rootdisconn=<i>Root olarak</i> ba餷ant齳 kesmek i鏸n kullan齦acak komut

fname_title1=Dosya 輘imlendirme 謓tan齧l齦ar
fname_title2=Dosya 輘imlendirmesini De餴⺶ir
fname_option=Dosya 輘imlendirme Se鏴nekleri
fname_manglecase=Harfler k黮t黮s黱 m?
fname_case=Harf duyarl齦 olsun mu?
fname_defaultcase=謓tan齧l harf bi鏸mi?
fname_lower=K黭
fname_upper=B鼀黭
fname_preserve=Harfle saklans齨 m?
fname_shortpreserve=Harfler k齭a saklans齨 齧?
fname_hide=Noktal dosyalar saklans齨 m?
fname_archive=DOS ar㱮v dosyalar齨 sakla?
fname_hidden=DOS gizli dosyalar齨 sakla?
fname_system=DOS sistem dosyalar齨 sakla?

fperm_title1=Dosya 輟inleri 謓tan齧l齦ar
fperm_title2=Dosya 輟inlerini De餴⺶ir
fperm_option=Dosya 輟in Se鏴nekleri
fperm_filemode=Yeni Unix dosyas modu
fperm_dirmode=Yeni Unix dizini modu
fperm_notlist=Dizinleri listeleme
fperm_forceuser=Unix kullan齝齭 olarak kullan
fperm_forcegrp=Unix grubu olarak kullan
fperm_link=Sembolik linklerin d paylamlara eri㱮mine izin verilsin?
fperm_delro=Sadece okunur dosyalar silinebilsin mi?
fperm_forcefile=Unix dosya modunu kullan
fperm_forcedir=Unix dizin modunu kullan

share_title1=Dosya Paylam 謓tan齧l齦ar
share_title2=Dosya Paylam齨 De餴⺶ir
share_title3=Dosya Paylam Olu⺶ur
share_info=Paylam Bilgisi
share_copy=Bu paylam <i>$1</i>'in kopyas齞齬
share_name=Paylam ad
share_home=Ev Dizinleri Paylam
share_dir=Paylam dizini
share_available=Ulalabilir?
share_browseable=Taranabilir?
share_comment=Paylam a琮klamas
share_view=Ba餷ant齦aro G鰏ter
share_option=Di餰r Paylam Se鏴nekleri
share_security=G黺enlik ve Giri Kontrol
share_permission=Dosya 輟inleri
share_naming=Dosya 輘imlendirme
share_misc=莈㱮tli Se鏴nekler

print_title1=Yaz齝 Se鏴nekleri 謓tan齧l齦ar
print_title2=Yaz齝 Se鏴neklerini De餴⺶ir
print_option=Yaz齝 Se鏴nekleri
print_minspace=En az bo alan
print_postscript=Postscript yaz齧 yap
print_command=Yazd齬齧 komutu
print_queue=Kuyruk komutunu g鰎黱t黮e
print_delete=蔺 komutunu sil
print_pause=蔺 komutunu durdur
print_unresume=蔺 komutunu devam ettirme
print_driver=Yaz齝 S黵點黶

pshare_title1=Yaz齝 Se鏴nekleri 謓tan齧l齦ar
pshare_title2=Yaz齝 Paylam齨 De餴⺶ir
pshare_title3=Yaz齝 Paylam Olu⺶ur
pshare_info=Paylam Bilgisi
pshare_name=Paylam Ad
pshare_all=B黷黱 Yaz齝齦ar齨 Paylam
pshare_unixprn=Unix Yaz齝齭
pshare_spool=Tutma dizini

sec_index1=G黺enlik 謓tan齧l齦ar
sec_index2=G黺enli餴 De餴⺶ir
sec_writable=Yaz齦abilir?
sec_guest=Ziyaret鏸 Giri㱮 yap齦s齨 m?
sec_guestonly=Sadece ziyaret鏸
sec_guestaccount=Ziyaret鏸 Unix kullan齝齭
sec_limit=Olumlu liste s齨齬land齬齦s齨 m?
sec_allowhost=Makine izinleri
sec_onlyallow=Sadece izin verilenler:
sec_denyhost=輟in verilmeyen makineler
sec_onlydeny=Sadece izin verilmeyenler:
sec_revalidate=Kullan齝齦ar tekrar onaylans齨 m?
sec_validuser=Ge鏴rli kullan齝齦ar
sec_validgroup=Ge鏴rli gruplar
sec_invaliduser=Ge鏴rsiz kullan齝齦ar
sec_invalidgroup=Ge鏴rsiz gruplar
sec_possibleuser=M黰k黱 kullan齝齦ar
sec_possiblegroup=M黰k黱 gruplar
sec_rouser=Sadece okuyabilir kullan齝齦ar
sec_rogroup=Sadece okuyabilir gruplar
sec_rwuser=Okuma/Yazma izinli kullan齝齦ar
sec_rwgroup=Okuman/Yazma izinli gruplar

esync_title=Kullan齝 E䏝amanlamas
esync_msg=Webmin, Unix kullan齝齦ar listesi de餴⺶i餴nde otomatik olarak Samba kullan齝 listesini de de餴⺶irecek 㧐kilde yap齦and齬齦abilir. Bu sadece kullan齝 ekleme, silme ve de餴⺶irme iemleri <tt>Kullan齝 ve Gruplar</tt> Webmin mod黮 kullan齦arak yap齦d齨da m黱k黱d黵.
esync_add=Bir Unix kullan齝齭 eklendi餴nde Samba kullan齝齭 ekle
esync_chg=Bir Unix kullan齝齭 de餴⺶irildi餴nde Samba kullan齝齭 de餴⺶ir
esync_del=Bir Unix kullan齝齭 silindi餴nde Samab kullan齝齭 sil

mkpass_title=Kullan齝 D鰊t黵
mkpass_fail=Kullan齝齨齨 d鰊t黵黮mesinde hata olu⺶u
mkpass_msg=Unix kullan齝齦ar d鰊t黵黮鼀or...
mkpass_skip=olu⺷m ge鏸ldi
mkpass_same=her zaman ayn齭
mkpass_update=olu⺷m g黱cellendir
mkpass_del=olu⺷m silindi
mkpass_passfail=辤fre verilmedinde hata olu⺶u


savecopy_fail=Kopya olu⺶urulmas齨da hata olu⺶u
savecopy_global='Global' ismi bir paylam i鏸n kullan齦amaz
savecopy_exist='$1' paylam her zaman mevcut

saveuser_fail=Kullan齝齨齨 kaydedilmesinde hata olu⺶u
saveuser_uid='$1' ge鏴rli bir Unix UID'si de餴ldir
saveuser_colon=Ger鏴k isim bu karakteri i鏴rmemelidir :
saveuser_home=Ev dizini '$1' mevcut de餴ldir
saveuser_shell=$1 ge鏴rli bir kabuk de餴ldir
saveuser_pass=smbpasswd kullan齦arak parolan齨 de餴⺶irilmesinde hata olu⺶u : $1

savefmisc_fail=莈㱮tli se鏴neklerin kaydedilmesinde hata olu⺶u
savefmisc_number='$1' ge鏴rli bir ba餷ant say齭 de餴ldir

savefperm_fail=Dosya izinlerinin kaydedilmesinde hata olu⺶u
savefperm_mode='$1' ge鏴rli bir Unix dosya modu de餴ldir

savefshare_fail=Paylam齨 kaydedilmesinde hata olu⺶u
savefshare_nopath=Yol girilmedi
savefshare_exist='$1' paylam her zaman mevcut
savefshare_mode='$1' ge鏴rli bir paylam ismi de餴ldir
savefshare_global='global' ismi bir paylam i鏸n kullan齦amaz

savemisc_fail=Se鏴neklerin kaydedilmesinde hata olu⺶u
savemisc_lockdir=Dizin i鏴ri餴 kilit dizini mevcut de餴l
savemisc_logdir=Dizin i鏴ri餴 kilit dizini mevcut de餴l
savemisc_logsize='$1' ge鏴rli bir kay齮 boyutu de餴ldir
savemisc_overlap='$1' ge鏴rli bir 黶t黶te okuma boyutu de餴ldir
savemisc_chroot=chroot dizini '$1' mevcut de餴ldir
savemisc_smbrun=smbrun program '$1' mevcut de餴l ya da 鏰lt齬齦amaz
savemisc_time='$1' ge鏴rli bir denge zaman de餴ldir

savenet_fail=Se鏴neklerin kaydedilmesinde hata olu⺶u
savenet_timeout='$1' ge鏴rli bir ba餷ant kopma s黵esi de餴ldir
savenet_ip='$1' ge鏴rli bir IP byte' de餴ldir
savenet_keep='$1' ge鏴rli bir keepalive aral de餴ldir
savenet_maxxmit='$1' ge鏴rli bir en 鏾k pakey boyutu de餴ldir
savepass_fail=Se鏴neklerin kaydedilmesinde hata olu⺶u
savepass_nopass=Samba s黵黰黱鼁 encrypt passwords se鏴ne餴ni desteklememektedir
savepass_passwd=Parola de餴⺶irme program girilmedi
savepass_level='$1' ge鏴rli bir parola harf farkl齦 de餴ldir
savepass_chat=Parola de餴⺶irme sorular齨齨 s齬as bo
savepopts_fail=Yaz齝 se鏴neklerinin kaydedilmesinde hata olu⺶u
savepopts_number=En az bo alan bir say olmal齞齬
saveprint_fail=Se鏴neklerin kaydedilmesinde hata olu⺶u
saveprint_printcap=printcap dosyas '$1' mevcut de餴ldir
saveprint_cache='$1' ge鏴rli bir cache s黵esi de餴ldir
savepshare_fail=Yaz齝 paylam齨齨 kaydedilmesinde hata olu⺶u
savepshare_exist='$1' paylam her zaman mevcut
savepshare_name='$1' ge鏴rli bir paylam ismi de餴ldir
savepshare_global='global' ismi bir paylam ismi olarak kullan齦amaz
savesec_fail=G黺enli餴n kaydedilmesinde hata olu⺶u
savesmb_fail=Se鏴neklerin kaydedilmesinde hata olu⺶u
savesmb_size='$1' ge鏴rli bir dik boyutu de餴ldir
savesmb_oslevel='$1' ge鏴rli bir ana taray齝 鰊celi餴 de餴ldir
savesmb_server=Bir parola sunucusu girmelisiniz
start_err=Samba sunuuclar齨 baat齦mas齨da hata olu⺶u
start_fail=$1 hata!
swats_fail=Kullan齝 ad齨齨 kaydedilmesinde hata olu⺶u
swats_user=SWAT kullan齝 ad bulunamad
viewu_index=Mevcut kullan齝齦ar
viewu_list=<i>$1</i>'in mevcut kullan齝齦ar
viewu_share=Paylam
viewu_msg2=Ba餷 kullan齝 yok

log_apply=Samba sunucular yeniden baat齦d
log_start=Samba sunucular baat齦d
log_save_fshare=$1 dosya paylam de餴⺶irildi
log_save_pshare=$1 yaz齝 payla de餴⺶irildi
log_save_sec=Paylam $1 i鏸n g黺enlik ve giri kontrol de餴⺶irildi
log_save_fperm=Paylam $1 i鏸n dosya haklar de餴⺶irildi
log_save_fname=Paylam $1 i鏸n dosya isimlendirme de餴⺶irildi
log_save_fmisc=Paylam $1 i鏸n 鏴㱮tli se鏴nekler de餴⺶irildi
log_save_popts=Paylam $1 i鏸n yaz齝 se鏴nekleri de餴⺶irildi
log_default_fshare=Dosya paylam 鰊tan齧l齦ar de餴⺶irildi
log_default_pshare=Yaz齝 paylam 鰊tan齧l齦ar de餴⺶irildi
log_kill=蔺lem $1'e ba餷ant kesildi
log_skill=Paylam $2'deki iem $1'e ba餷ant kesildi
log_create_fshare=Dosya paylam $1 olu⺶uruldu
log_create_pshare=Yaz齝 paylam $1 olu⺶uruldu
log_delete_fshare=Dosya paylam $1 silindi
log_delete_pshare=Yaz齝 paylam $1 silindi
log_net=Unix a se鏴nekleri de餴⺶irildi
log_smb=Windows a se鏴nekleri de餴⺶irildi
log_pass=Onaylama se鏴nekleri de餴⺶irildi
log_print=Unix'e Windows'tan yazd齬ma se鏴nekleri de餴⺶irildi
log_misc=莈㱮tli se鏴nekler de餴⺶irildi
log_sync=Unix kullan齝 e䏝amanlamas de餴⺶irildi
log_epass=Unix kullan齝齦ar Samba kullan齝齦ar齨a d鰊t黵黮d
log_epass_l=Unix kullan齝齦ar Samba kullan齝齦ar齨a d鰊t黵黮d ($1 olu⺶uruldu, $2 de餴⺶irildi, $3 silindi)
log_copy=Paylam $2, $1'e kopyaland
log_save_euser=Samba kullan齝齭 $1 de餴⺶irildi
log_delete_euser=Samba kullan齝齭 $1 silindi

07070100057d95000081a40000000000000002000000013ac0388d00002c4e000000200000000000000000000000000000001700000003reloc/samba/lang/zh_CN    index_title=Windows Samba协议 共享文件管理
index_sharelist=共享列表
index_userlist=用户列表
index_fileshare=文件列表
index_printershare=打印机共享
index_shareconf=共享配置

index_sharename=共享名
index_path=路径
index_security=安全
index_homedir=用户目录
index_allprinter=所有的打印机
index_printer=打印机
index_defaultprn=缺省打印机
index_printableto=允许打印的是
index_prneveryone=都允许打印
index_prnalluser=已知用户允许打印
index_rwpublic=都可以读/写
index_readonly=$1只读<br>其他已只用户可读/写
index_rwalluser=所有已知用户可以读/写
index_roeveryone=都可以读
index_readwrite=$1可以读/写<br>其他已知用户可以读/写
index_roalluser=所有已知用户可读
index_noshares=没有设定samba共享
index_createfileshare=建立新的文件共享
index_createprnshare=建立新的打印机共享
index_createcopy=建立新的拷贝
index_view=查看所有的连接
index_start=启动Samba服务
index_startmsg=系统没有运行samba服务. 这样列出的共享其他计算机是不到的.
index_restart=启动Samba服务
index_restartmsg=单击按扭重新启动samba服务,当前配置会立即生效.

config_mins=分
config_secs=秒
config_bytes=字节
config_never=立刻
config_all=所有的
config_neither=没有任何一个

global_title=全局设置
global_unixnetwork=Unix 网络
global_winnetwork=Windows 网络
global_auth=认证
global_printing=Windows 到 Unix 打印
global_misc=杂项操作
global_filedefault=缺省文件共享
global_prndefault=缺省打印机共享
global_password=加密口令
global_edit=编辑Samba用户和密码
global_convert=转换Unix用户到samba用户
global_sync=Unix and Samba 用户自动同步配置

error_nosamba=samba 服务启动<7/>$1</tt> 没有找到. 系统没有安装<a href=\$2\>模块配置</a> 错误
error_version=Webmin 不能得到 samba 服务的版本号 <tt>$1</tt>. 检查 <a href=\$2\>模块配置</a>确信路径正确.
error_config=配置文件 $1 没有找到. 很可能 Samba 没有安装或者 <a href=\$2\>模块配置</a> 错误
error_include=使用<tt>config</tt> 或<tt>include</tt> 指令 webmin 不能处理samba配置文件
error_delshare=删除共享失败
error_delcopy=共享 '$1' 拷贝自本共享
error_savename=保存文件名时失败

convert_title=转换用户
convert_msg=这种形式可以同步Unix 和 Samba 用户列表. Samba<a href=$1>加密口令</a>使用独立的用户口令表而不是系统用户列表
convert_noconv=不要转换或者删除下列用户:
convert_update=使用Unix用户的详细信息更新已存在的samba用户列表
convert_add=使用Unix用户列表更新samba 用户列表
convert_delete=在Unix下不存在的用户删除其Samba用户
convert_newuser=对于近来新建立的用户设置口令为:
convert_nopasswd=没有口令
convert_lock=锁定帐号
convert_passwd=使用口令
convert_convert=转换用户

misc_title=杂项选择
misc_debug=调试级别
misc_cachecall=缓冲<tt>getwd()</tt> 调用?
misc_lockdir=锁定目录
misc_log=日志文件
misc_maxlog=最大日志
misc_rawread=允许以原始raw方式读?
misc_rawwrite=允许以原始raw方式写?
misc_overlapread=重叠写的大小
misc_chroot=<tt>chroot()</tt> 目录
misc_smbrun=<tt>smbrun</tt>路径
misc_clienttime=客户时间偏移
misc_readprediction=预读?

net_title=Unix 网络操作
net_idle=在断线之前停滞时间
net_trustlist=信任主机/用户文件
net_netinterface=网络接口
net_auto=自动
net_uselist=使用列表...
net_interface=接口
net_netmask=掩码
net_keepalive=激活的包
net_notsend=不要再发送
net_every=Send every
net_maxpacket=最小包大小
net_listen=监听地址
net_socket=Socket 操作

passwd_title=密码操作
passwd_encrypt=使用加密密码?
passwd_allownull=允许空密码?
passwd_program=密码编程
passwd_case=密码大小写不一致
passwd_chat=改变密码
passwd_below=监听这些:
passwd_waitfor=等待
passwd_send=发送
passwd_map=用户名映射
passwd_unixuser=Unix 用户
passwd_winuser=Windows 用户

print_title=打印操作
print_style=Unix 打印风格
print_show=显示所有的打印机?
print_printcap=打印性能文件
print_cachetime=打印状态缓冲时间

smb_title=Windows 网络操作
smb_workgroup=工作组
smb_wins=WINS 模式
smb_winsserver=作为WINS服务器
smb_useserver=使用服务
smb_description=服务描述
smb_name=服务名称
smb_aliase=服务别名
smb_default=缺省服务
smb_show=总是显示服务
smb_disksize=报告磁盘空间的最大值
smb_unlimited=无限
smb_winpopup=Winpopup 命令
smb_priority=主浏览器优先级
smb_protocol=最优先协议
smb_master=主浏览器?
smb_security=安全
smb_sharelevel=共享级别
smb_userlevel=用户级别
smb_passwdserver=密码服务(器)
smb_domain=域
smb_announce=远程发布
smb_nowhere=哪里也没有
smb_fromlist=来自列表...
smb_ip=IP 地址
smb_asworkgroup=<b>作为工作组</b> (选项)

create_title=建立拷贝
create_msg=复制共享继承选择共享的所有属性. 原共享属性变化后复制共享属性随之改变
create_from=共享复制自:
create_name=新的共享名:

smbuser_title=Samba 用户
smbuser_list=Samba 用户列表
smbuser_nouser=没有 Samba 用户

euser_title=编辑 Samba 用户
euser_name=用户名
euser_uid=Unix UID
euser_passwd=密码
euser_noaccess=不能使用
euser_nopw=没有密码
euser_currpw=当前密码
euser_newpw=新密码
euser_realname=真正名称
euser_homedir=用户根目录
euser_shell=Shell
euser_option=用户操作
euser_normal=普通用户
euser_nopwrequired=无需密码
euser_disable=帐号禁止
euser_trust=工作站信任帐号

fmisc_title=缺省杂项文件
fmisc_for=共享<tt>$1</tt>
fmisc_lockfile=锁定文件?
fmisc_maxconn=最大连接
fmisc_fake=假冒 oplocks?
fmisc_sharemode=使用共享模式?
fmisc_strict=严格锁定?
fmisc_sync=写后同步?
fmisc_volume=卷标名称
fmisc_sameas=与共享相同
fmisc_unixdos=Unix-DOS 文件名映射图
fmisc_conncmd=连接时运行的命令
fmisc_disconncmd=断线时运行的命令
fmisc_rootconn=连接时运行的命令 <i>作为root</i>
fmisc_rootdisconn=断线时运行的命令 <i>作为root</i>

fname_title1=缺省文件名
fname_title2=编辑文件名
fname_option=文件名选项
fname_manglecase=混合大小写?
fname_case=大小写敏感?
fname_defaultcase=缺省大小写?
fname_lower=小写
fname_upper=大写
fname_preserve=保持大小写?
fname_shortpreserve=不管大小写?
fname_hide=隐藏"."文件名?
fname_archive=保存 DOS 归档标志?
fname_hidden=保存 DOS 隐藏标志?
fname_system=保存 DOS 系统标志?

fperm_title1=文件许可缺省
fperm_title2=编辑文件许可
fperm_option=文件许可选项
fperm_filemode=新 Unix 文件模式
fperm_dirmode=新 Unix 目录模式
fperm_notlist=目录不列出
fperm_forceuser=强制 Unix 用户
fperm_forcegrp=强制 Unix 组
fperm_link=允许在共享外符号连接?
fperm_delro=能删除只读文件吗?
fperm_forcefile=强制Unix 文件模式
fperm_forcedir=强制 Unix 目录模式

share_title1=文件共享缺省
share_title2=编辑文件共享
share_title3=建立文件共享
share_info=共享信息
share_copy=本共享是<i>$1</i>的拷贝
share_name=共享名
share_home=共享的根目录
share_dir=共享的根(home)目录
share_available=有效?
share_browseable=可浏览?
share_comment=共享注释
share_view=查看连接
share_option=其他共享选择项
share_security=密码和使用控制
share_permission=文件许可
share_naming=文件命名
share_misc=杂项选择

print_title1=打印机选项缺省值
print_title2=编辑打印机选项
print_option=打印机选项
print_minspace=最小自由空间
print_postscript=强制 postscript 打印
print_command=打印命令
print_queue=显示队列命令
print_delete=删除打印进程命令
print_pause=暂停打印进程命令
print_unresume=中断打印进程命令
print_driver=打印设备

pshare_title1=打印机共享缺省
pshare_title2=编辑打印共享
pshare_title3=建立打印共享
pshare_info=共享信息
pshare_name=共享名
pshare_all=所有打印机共享
pshare_unixprn=Unix 打印机
pshare_spool=伪脱机目录

sec_index1=密码缺省
sec_index2=编辑安全
sec_writable=可写?
sec_guest=Guest 可用?
sec_guestonly=仅仅 Guest 
sec_guestaccount=Guest Unix 用户
sec_limit=限制可能的列表?
sec_allowhost=允许的主机
sec_onlyallow=仅仅允许
sec_denyhost=禁止的主机
sec_onlydeny=仅仅禁止
sec_revalidate=重新确认用户?
sec_validuser=合法用户
sec_validgroup=合法组
sec_invaliduser=非法用户
sec_invalidgroup=非法组
sec_possibleuser=可能用户
sec_possiblegroup=可能组
sec_rouser=只读用户
sec_rogroup=只读组
sec_rwuser=可读/写的用户
sec_rwgroup=可读/写的组

esync_title=用户同步
esync_msg=Webmin 是可配置的,因此 <tt>用户和组</tt> Webmin 模块对用户进行添加删除改变时,Unix 用户列表的更改会自动反应到 Samba 用户列表.
esync_add=添加Unix用户也随之添加Samba 用户
esync_chg=Unix用户变更Samba用户也随之变化
esync_del=Unix用户删除Samba用户也随之删除
esync_apply=Apply

mkpass_title=用户转换
mkpass_convfail=转换用户失败
mkpass_msg=转换Unix用户...
mkpass_skip=跳过
mkpass_same=已经相同
mkpass_update=更新
mkpass_del=删除
mkpass_passfail=设置密码失败

savecopy_fail=拷贝失败
savecopy_global='global'单词不能当做共享名
savecopy_exist='$1'共享已经存在

saveuser_fail=保存用户失败
saveuser_uid='$1' 错误的Unix UID
saveuser_colon=真名不能包含该字符:
saveuser_home=用户根目录'$1' 不存在
saveuser_shell=$1 是错误的shell
saveuser_pass=使用smbpasswd更改密码失败 : $1

savefmisc_fail=保存杂项选择失败
savefmisc_number='$1' 错误的连接数

savefperm_fail=保存文件许可失败
savefperm_mode='$1' 错误的文件模式 mode

savefshare_fail=保存共享失败
savefshare_nopath=没有给定路径
savefshare_exist='$1'共享已经存在
savefshare_mode='$1' 错误共享名
savefshare_global='global'单词不能作为共享名称

savemisc_fail=保存选项失败
savemisc_lockdir=包含锁定的目录不存在
savemisc_logdir=包含日志的目录不存在
savemisc_logsize='$1' 错误的日志大小
savemisc_overlap='$1' 错误的重叠读大小
savemisc_chroot=chroot 目录'$1' 不存在
savemisc_smbrun=smbrun 程序'$1' 没有或不可执行
savemisc_time='$1' 错误的时间偏移

savenet_fail=保存失败
savenet_timeout='$1' 错误的断线超时
savenet_ip='$1' 错误IP 字节
savenet_keep='$1' 错误 keepalive interval
savenet_maxxmit='$1' 错误的最大包大小

savepass_fail=保存失败
savepass_nopass=这个版本的samba不支持口令加密
savepass_passwd=程序给定的口令没有改变
savepass_level='$1' 错误口令(大小写不同)
savepass_chat=改变口令的对话框是空的

savepopts_fail=保存打印寂寞设置失败
savepopts_number=最小自由空间必须是数字

saveprint_fail=保存设置失败
saveprint_printcap=打印性能文件'$1' 不存在
saveprint_cache='$1' 错误的缓冲时间

savepshare_fail=保存打印共享失败
savepshare_exist='$1'共享已经存在
savepshare_name='$1' 错误的共享名
savepshare_global='global'单词不能作为共享名

savesec_fail=保存安全设置失败

savesmb_fail=保存选项失败
savesmb_size='$1' 错误的磁盘空间
savesmb_oslevel='$1' 错误的主浏览器属性
savesmb_server=必须输入密码服务器

start_err=启动samba服务失败
start_fail=$1 失败

swats_fail=保存用户名失败
swats_user=丢失 SWAT 用户名

viewu_index=当前用户
viewu_list=$1 的当前用户
viewu_share=共享
viewu_user=用户
viewu_group=组
viewu_from=联接来自
viewu_time=联接到
viewu_pid=进程 ID
viewu_msg1=点击上表中的进程的 ID 中断与用户的联接.
viewu_msg2=没有在线用户

log_apply=重新启动 Samba 服务器
log_start=启动 Samba 服务器
log_save_fshare=更新文件共享 $1
log_save_pshare=更新打印机共享 $1
log_save_sec=为共享 $1 更改安全和访问控制
log_save_fperm=为共享 $1 更改文件权限
log_save_fname=为共享 $1 更改文件命名
log_save_fmisc=为共享 $1 更改多方面的选项
log_save_popts=为共享 $1 更改打印机选项
log_default_fshare=改变文件共享缺省值
log_default_pshare=改变打印机共享缺省值
log_kill=中断进程 $1
log_skill=为共享 $2 中断进程 $1
log_create_fshare=创建文件共享 $1
log_create_pshare=创建打印机共享 $1
log_delete_fshare=删除文件共享 $1
log_delete_pshare=删除打印机共享 $1
log_net=改变 Unix 网络选项
log_smb=改变 Windows 网络选项
log_pass=改变认证选项
log_print=改变 Windows 到 Unix 的打印选项
log_misc=改变多类选项
log_sync=配置 Unix 用户同步性
log_epass=转变 Unix 用户为 Samba 用户
log_epass_l=转变 Unix 用户为 Samba 用户($1 创建, $2 更新, $3 删除)
log_copy=拷贝共享 $2 到 $1
log_save_euser=更新 Samba 用户 $1
log_delete_euser=删除 Samba 用户 $1

swat_title=SWAT 登陆
swat_list=SWAT 登陆
swat_msg1=您当前的 SWAT 用户名和口令不正确.请用下表列出的重试.
swat_msg2=登陆 SWAT 需要用户名和口令,这可以是您系统中的任一用户.
swat_msg3=您不能通过 Webmin 运行 SWAT,是因为您的 Samba 配置中有<tt>$1:...</tt>(允许的客户)集合.
swat_msg4=无论如何,您均可以通过 $1 联接到 SWAT.
swat_username=用户
swat_password=口令
swat_login=登陆
swat_clear=清理
  07070100052219000081a40000000000000002000000013ac0388e0000051e000000200000000000000000000000000000001a00000003reloc/samba/log_parser.pl # log_parser.pl
# Functions for parsing this module's logs

require './samba-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p, $long) = @_;
if ($action eq 'save') {
	if ($object eq 'global') {
		return $text{"log_default_${type}"};
		}
	else {
		return &text("log_save_${type}", "<tt>$object</tt>");
		}
	}
elsif ($action eq 'create') {
	return &text("log_create_${type}", "<tt>$object</tt>");
	}
elsif ($action eq 'delete') {
	return &text("log_delete_${type}", "<tt>$object</tt>");
	}
elsif ($action eq 'copy') {
	return &text('log_copy', "<tt>$object</tt>", "<tt>$p->{'copy'}</tt>");
	}
elsif ($action eq 'epass') {
	return &text($long ? 'log_epass_l' : 'log_epass',
		     int($p->{'created'}), int($p->{'modified'}),
		     int($p->{'deleted'}));
	}
elsif ($type eq 'euser') {
	return &text("log_${action}_euser", "<tt>$object</tt>");
	}
elsif ($action eq 'kill') {
	if ($p->{'share'}) {
		return &text('log_skill', "<tt>$object</tt>",
			     "<tt>$p->{'share'}</tt>");
		}
	else {
		return &text('log_kill', "<tt>$object</tt>");
		}
	}
elsif ($text{"log_${action}"}) {
	return $text{"log_${action}"};
	}
else {
	return undef;
	}
}

  0707010005221a000081e40000000000000002000000013ac0388d00000d1c000000200000000000000000000000000000001b00000003reloc/samba/make_epass.cgi    #!/usr/local/bin/perl
# make_epass.cgi
# Create or update the samba password file from the list of Unix users

require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pmpass'}")
		unless $access{'maint_makepass'};
# make
&header($text{'mkpass_title'}, "");
$whatfailed = $text{'mkpass_convfail'};
$| = 1;
print "<hr>\n";

$config{'smb_passwd'} =~ /^(.*)\/([^\/]+)$/;
mkdir($1, 0700);
&lock_file($config{'smb_passwd'});
@ulist = &list_users();
map { $suser{$_->{'name'}} = $_ } @ulist;

print "<h3>$text{'mkpass_msg'}</h3>\n";
foreach $u (split(/[ \t,]/ , $in{"skip_list"})) {
	$dont_convert{$u}++;
	}
print "<table border width=100%><tr><td bgcolor=#c0c0c0><pre>\n";
setpwent();
while(@uinfo = getpwent()) {
	local ($c1, $c2, $m);
	$uexists{$uinfo[0]}++;
	local $su = $suser{$uinfo[0]};
	if ($dont_convert{$uinfo[0]}) {
		$m = "$uinfo[0] $text{'mkpass_skip'}";
		}
	elsif ($su && $in{"update"}) {
		if ($su->{'opts'}) {
			# new-style user
			if ($uinfo[2] == $su->{'uid'}) {
				$m = "$uinfo[0] $text{'mkpass_same'}";
				}
			else {
				$su->{'uid'} = $uinfo[2];
				$su->{'real'} = $uinfo[6];
				&modify_user($su);
				$m = "$uinfo[0] $text{'mkpass_update'}";
				$c1 = "<i>"; $c2 = "</i>";
				$modified++;
				}
			}
		else {
			# old-style user
			if ($uinfo[2] == $su->{'uid'} &&
			    $uinfo[6] eq $su->{'real'} &&
			    $uinfo[7] eq $su->{'home'} &&
			    $uinfo[8] eq $su->{'shell'}) {
				$m = "$uinfo[0] $text{'mkpass_same'}";
				}
			else {
				$su->{'uid'} = $uinfo[2];
				$su->{'real'} = $uinfo[6];
				$su->{'home'} = $uinfo[7];
				$su->{'shell'} = $uinfo[8];
				&modify_user($su);
				$m = "$uinfo[0] $text{'mkpass_update'}";
				$c1 = "<i>"; $c2 = "</i>";
				$modified++;
				}
			}
		}
	elsif ($in{"add"} && !$su) {
		local $nu = { 'name' => $uinfo[0],
			      'uid' => $uinfo[2] };
		local @flags = ("U");
		$c1 = "<b>"; $c2 = "</b>";
		$m = "$uinfo[0] being added";
		if ($in{'newmode'} == 0) {
			$nu->{'pass1'} = "NO PASSWORDXXXXXXXXXXXXXXXXXXXXX";
			$nu->{'pass2'} = ("X" x 32);
			push(@flags, "N");
			}
		else {
			$nu->{'pass1'} = $nu->{'pass2'} = ("X" x 32);
			if ($in{'newmode'} == 2) {
				$setpass{$uinfo[0]} = $in{'newpass'};
				}
			else { push(@flags, "D"); }
			}
		if ($samba_version < 2) {
			$nu->{'real'} = $uinfo[6];
			$nu->{'home'} = $uinfo[7];
			$nu->{'shell'} = $uinfo[8];
			}
		else {
			$nu->{'opts'} = \@flags;
			}
		&create_user($nu);
		$created++;
		}
	if ($m) { printf "$c1%-40.40s$c2%s", $m, ++$c%2 ? "" : "\n"; }
	}
endpwent();

# Delete missing users, if needed
if ($in{"delete"}) {
	foreach $u (@ulist) {
		if (!$uexists{$u->{'name'}}) {
			# delete this samba user..
			$m = "$u->{'name'} $text{'mkpass_del'}";
			&delete_user($u);
			printf "<b><font color=#ff0000>%-40.40s</font></b>%s",
				$m, ++$c%2 ? "" : "\n";
			$deleted++;
			}
		}
	}

# Update the passwords of new users
foreach $u (keys %setpass) {
	&set_password($u, $setpass{$u}) ||
		&error($text{'mkpass_passfail'});
	}
&unlock_file($config{'smb_passwd'});
&webmin_log("epass", undef, undef, { 'modified' => $modified,
				     'created' => $created,
				     'deleted' => $deleted } );

print "</pre></td></tr></table>\n";
print "<hr>\n";
&footer("", $text{'index_sharelist'});

0707010005221b000081a40000000000000002000000013ac0388d000002c5000000200000000000000000000000000000001800000003reloc/samba/module.info   desc_zh_CN=Samba Windows 文件共享
name=Samba Manager
desc_pt=Partilha de Ficheiros de Windows com Samba
depends=inetd
desc_tr=Samba Windows Dosya Paylam
desc_fr=Partage Windows avec Samba
desc_es=Compartici髇 de Archivos de Windows mediante Samba
desc_de=Windows Dateifreigabe
desc_sv=Fildelning med Samba
desc_ru_SU=媪侍-优易乓 Samba
desc_pl=Udost阷nianie dla Windows przez Samb
category=servers
os_support=solaris redhat-linux debian-linux slackware-linux aix suse-linux hpux freebsd osf1 irix open-linux openserver unixware turbo-linux openbsd corel-linux cobalt-linux lfs-linux macos
desc_zh_TW.Big5=Samba 跌怠郎だㄉ
desc=Samba Windows File Sharing
risk=low medium high
desc_ru_RU=脏殡-皴疴屦 Samba
   0707010005221c000081a40000000000000002000000013ac0388d0000197c000000200000000000000000000000000000001800000003reloc/samba/opts.pl.dev   # opts.pl
# Defines which smb.conf options are available in which samba versions

# default_options(&array, version)
# Fills in the given associative array with the default value for all
# supported options, based on the given samba version
sub default_options
{
@op = ( [ "admin users",		"",		1.905,	1 ],
	[ "announce as",		"NT",		???,	0 ],
	[ "announce version",		"4.2",		???,	0 ],
	[ "auto services",		"",		0,	0 ],
	[ "=preload" ],
	[ "allow hosts",		"",		0,	0 ],
	[ "=hosts allow" ],
	[ "alternate permissions",	"no",		1.916,	1 ],
	[ "available",			"yes",		1.513,	1 ],
	[ "bind interfaces only",	"false",	1.918,	0 ],
	[ "browseable",			"yes",		0,	1 ],
	[ "browse list",		"yes",		0,	0 ],
	[ "case sensitive",		"no",		0,	0 ],
	[ "=case sig names" ],
	[ "character set",		"",		0,	0 ],
	[ "client code page",		"850",		1.917,	0 ],
	[ "comment",			"",		0,	1 ],
	[ "copy",			"",		0,	1 ],
	[ "create mode",		"0744",		0,	1 ],
	[ "=create mask" ],
	[ "dead time",			0,		0,	0 ],
	[ "debug level",		"",		1.900,	0 ],
	[ "=log level" ],
	[ "default case",		"lower",	1.800,	1 ],
	[ "default service",		"",		1.700,	0 ],
	[ "=default" ],
	[ "delete readonly",		"no",		0,	1 ],
	[ "deny hosts",			"",		1.525,	1 ],
	[ "=hosts deny" ],
	[ "delete veto files",		"false",	???,	1 ],
	[ "dfree command",		"",		1.541,	0 ],
	[ "directory mask",		"0755",		???,	1 ],
	[ "=directory mode" ],
	[ "dns proxy",			"yes",		???,	0 ],
	[ "domain controller",		"no",		1.916,	0 ],
	[ "domain logons",		"no",		1.916,	0 ],
	[ "domain master",		"no",		1.916,	0 ],
	[ "dont descend",		"",		1.522,	1 ],
	[ "dos filetimes",		"false",	???,	1 ],
	[ "encrypt passwords",		"false",	0,	0 ],
	[ "fake oplocks",		"no",		0,	1 ],
	[ "follow symlinks",		"yes",		0,	1 ],
	[ "force create mode",		"0000",		???,	1 ],
	[ "force directory mode",	"0000",		???,	1 ],
	[ "force group",		"",		1.802,	1 ],
	[ "group" ],
	[ "force user",			"",		1.913,	1 ],
	[ "getwd cache",		"no",		1.703,	0 ],
	[ "guest account",		"nobody",	1.900,	1 ],
	[ "guest only",			"no",		1.604,	1 ],
	[ "=only guest" ],
	[ "hide dot files",		"yes",		1.802,	1 ],
	[ "hide files",			"",		???,	1 ],
	[ "homedir map",		"",		???,	0 ],
	[ "hosts equiv",		"",		1.800,	0 ],
	[ "interfaces",			"",		???,	0 ],
	[ "invalid users",		"",		1.800,	1 ],
	[ "keep alive",			0,		0,	0 ],
	[ "lm announce",		"auto",		???,	0 ],
	[ "lm interval",		60,		???,	0 ],
	[ "load printers",		"yes",		1.802,	0 ],
	[ "local master",		"yes",		???,	0 ],
	[ "lock directory",		"",		1.705,	0 ],
	[ "=lock dir" ],
	[ "locking",			"yes",		1.609,	1 ],
	[ "log file",			"",		1.900,	0 ],
	[ "logon drive",		"",		???,	0 ],
	[ "logon home",			"",		???,	0 ],
	[ "logon path",			"",		???,	0 ],
	[ "logon script",		"",		???,	0 ],
	[ "lppause command",		"",		0,	0 ],
	[ "lpq cache time",		10,		1.914,	0 ],
	[ "lpq command",		"",		???,	1 ],
	[ "lpresume command",		"",		???,	1 ],
	[ "lprm command",		"",		???,	1 ],
	[ "magic output",		"",		1.700,	1 ],
	[ "magic script",		"",		1.700,	1 ],
	[ "mangle case",		"no",		0,	1 ],
	[ "mangled map",		"",		1.802,	1 ],
	[ "mangled names",		"yes",		1.800,	1 ],
	[ "mangling char",		"~",		1.800,	1 ],
	[ "mangled stack",		50,		1.700,	0 ],
	[ "map archive",		"yes",		1.913,	1 ],
	[ "map hidden",			"no",		0,	1 ],
	[ "map system",			"no",		0,	1 ],
	[ "max connections",		0,		1.705,	1 ],
	[ "max disk size",		0,		???,	0 ],
	[ "max log size",		5000,		1.900,	0 ],
	[ "max mux",			50,		1.802,	0 ],
	[ "max ttl",			14400,		1.915,	0 ],
	[ "max wins ttl",		259200,		???,	0 ],
	[ "max xmit",			65535,		1.525,	0 ],
	[ "message command",		"",		1.901,	0 ],
	[ "min print space",		0,		1.914,	1 ],
	[ "min wins ttl",		21600,		???,	0 ],
	[ "netbios aliases",		"",		???,	0 ],
	[ "netbios name",		"",		???,	0 ],
	[ "nis homedir",		"false",	???,	0 ],
	[ "null passwords",		"no",		1.803,	0 ],
	[ "only user",			"false",	1.703,	1 ],
	[ "oplocks",			"true",		1.918,	1 ],
	[ "os level",			???,		???,	0 ],
	[ "passwd chat",		"",		1.914,	0 ],
	[ "passwd program",		"/bin/passwd",	0 ],
	[ "password level",		0,		1.700,	0 ],
	[ "password server",		"",		1.900,	0 ], # multiple
	[ "path",			"",		0,	1 ],
	[ "=directory" ],
	[ "postexec",			"",		1.906,	1 ],
	[ "postscript",			"false",	1.801,	1 ],
	[ "preexec",			"",		0,	1 ],
	[ "=exec" ],
	[ "preferred master",		"no",		???,	0 ],
	[ "preserve case",		"no",		0,	1 ],
	[ "print command",		"",		1.518,	1 ],
	[ "printable",			"no",		0,	1 ],
	[ "=print ok" ],
	[ "printcap name",		"",		1.513,	0 ],
	[ "printer",			"",		0,	1 ],
	[ "=printer name" ],
	[ "printer driver",		"",		0,	1 ],
	[ "printer driver file",	"",		???,	0 ],
	[ "printer driver location",	"",		???,	1 ],
	[ "printing",			"",		1.918,	1 ],
	[ "printing",			"",		0,	0 ],
	[ "protocol",			"NT1",		1.603,	0 ],
	[ "public",			"no",		0,	1 ],
	[ "=guest ok" ],
	[ "read list",			"",		1.802,	1 ],
	[ "read prediction",		"false",	1.705,	0 ],
	[ "read raw",			"yes",		1.700,	0 ],
	[ "read size",			2048,		1.900,	0 ],
	[ "remote announce",		"",		???,	0 ],
	[ "remote browse sync",		"",		???,	0 ],
	[ "revalidate",			"false",	1.902,	1 ],
	[ "root directory",		"/",		1.522,	0 ],
	[ "=root" ],
	[ "=root dir" ],
	[ "root preexec",		"",		1.9.11,	1 ],
	[ "root postexec",		"",		1.9.11,	1 ],
	[ "security",			"SHARE",	1.609,	0 ],
	[ "server string",		"",		1.800,	0 ],
	[ "shared file entries",	113,		???,	0 ],
	[ "shared mem size",		102400,		???,	0 ],
	[ "smb passwd file",		"",		1.914,	0 ],
	[ "smbrun",			"",		1.911,	0 ],
	[ "share modes",		"yes",		1.913,	1 ],
	[ "short preserve case",	"no",		1.914,	1 ],
	[ "socket address",		"",		???,	0 ],
	[ "socket options",		"",		1.903,	0 ],
	[ "status",			"yes",		1.803,	0 ],
	[ "strict locking",		"no",		1.900,	1 ],
	[ "strip dot",			"no",		1.900,	1 ],
	[ "syslog",			1,		???,	0 ],
	[ "syslog only",		"no",		???,	0 ],
	[ "sync always",		"no",		1.914,	1 ],
	[ "time offset",		0,		???,	0 ],
	[ "time server",		"false",	???,	0 ],
	[ "unix realname",		"no",		???,	0 ],
	[ "user",			"",		1.502,	1 ],
	[ "=username" ],
	[ "username level",		0,		???,	0 ],
	[ "username map",		"",		1.913,	0 ],
	[ "valid chars",		"",		1.912,	1 ],
	[ "valid users",		"",		1.800,	1 ],
	[ "veto files",			"",		???,	1 ],
	[ "veto oplock files",		"",		???,	1 ],
	[ "volume",			"",		0,	1 ],
	[ "wide links",			"yes",		0,	1 ],
	[ "wins proxy",			"no",		???,	0 ],
	[ "wins server",		"",		???,	0 ],
	[ "wins support",		"no",		???,	0 ],
	[ "workgroup",			"",		1.913,	0 ],
	[ "writable",			"no",		1.513,	1 ],
	[ "=write ok" ],
	[ "write list",			"",		1.802,	1 ],
	[ "write raw",			"yes",		1.913,	0 ],

	[ "exec" ],
	[ "max packet" ]
        );
}

0707010005221d000081e40000000000000002000000013ac0388d000003d5000000200000000000000000000000000000001800000003reloc/samba/restart.cgi   #!/usr/local/bin/perl
# restart.cgi
# Kill all smbd and nmdb processes and re-start them

require './samba-lib.pl';
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_papply'}") unless $access{'apply'};
 
if ($config{'stop_cmd'}) {
	&system_logged("$config{'stop_cmd'} >/dev/null 2>&1 </dev/null");
	}
else {
	@smbpids = &find_byname("smbd");
	@nmbpids = &find_byname("nmbd");
	&kill_logged('TERM', @smbpids, @nmbpids);
	}

if ($config{'start_cmd'}) {
	$rv = &system_logged("$config{'start_cmd'} >/dev/null 2>&1 </dev/null");
	if ($rv) { &error(&text('start_fail', $config{'start_cmd'})); }
	}
else {
	$rv = &system_logged("$config{samba_server} </dev/null");
	if ($rv) { &error(&text('start_fail', $config{samba_server})); }
	$rv = &system_logged("$config{name_server} </dev/null");
	if ($rv) { &error(&text('start_fail', $config{samba_server})); }
	}
&webmin_log("apply");
&redirect("");

   0707010005221e000081a40000000000000002000000013ac0388d000036bc000000200000000000000000000000000000001900000003reloc/samba/samba-lib.pl  # samba-lib.pl
# Common functions for editing the samba config file

do '../web-lib.pl';
&init_config();

# Get the samba version
if (open(VERSION, "$module_config_directory/version")) {
	chop($samba_version = <VERSION>);
	close(VERSION);
	}

# list_shares()
# List all the shares from the samba config file
sub list_shares
{
local(@rv, $_);
open(SAMBA, $config{smb_conf});
while(<SAMBA>) {
	chop; s/;.*$//g; s/^\s*#.*$//g;
	if (/^\s*\[([^\]]+)\]/) {
		push(@rv, $1);
		}
	}
close(SAMBA);
return @rv;
}


# get_share(share, [array])
# Fills the associative array %share with the parameters from the given share
sub get_share
{
local($found, $_, $first, $arr);
$arr = (@_==2 ? $_[1] : "share");
undef(%$arr);
open(SAMBA, $config{smb_conf});
while(<SAMBA>) {
	chop; s/^\s*;.*$//g; s/^\s*#.*$//g;
	if (/^\s*\[([^\]]+)\]/) {
		# Start of share section
		$first = 1;
		if ($found) { last; }
		elsif ($1 eq $_[0]) { $found = 1; $$arr{share_name} = $1; }
		}
	elsif ($found && /^\s*([^=]*\S)\s*=\s*(.*)$/) {
		# Directives inside a section
		if (lc($1) eq "read only") {
			# bastard special case.. change to writable
			$$arr{'writable'} = $2 =~ /yes|true|1/i ? "no" : "yes";
			}
		else { $$arr{lc($1)} = $2; }
		}
	elsif (!$first && /^\s*([^=]*\S)\s*=\s*(.*)$/ && $_[0] eq "global") {
		# Directives outside a section! Assume to be part of [global]
		$$arr{share_name} = "global";
		$$arr{lc($1)} = $2;
		$found = 1;
		}
	}
close(SAMBA);
return $found;
}


# create_share(name)
# Add an entry to the config file
sub create_share
{
open(CONF, ">> $config{smb_conf}");
print CONF "\n";
print CONF "[$_[0]]\n";
foreach $k (grep {!/share_name/} (keys %share)) {
	print CONF "\t$k = $share{$k}\n";
	}
close(CONF);
}


# modify_share(oldname, newname)
# Change a share (and maybe it's name)
sub modify_share
{
local($_, @conf, $replacing, $first);
open(CONF, $config{smb_conf});
@conf = <CONF>;
close(CONF);
open(CONF, "> $config{smb_conf}");
for($i=0; $i<@conf; $i++) {
	chop($_ = $conf[$i]); s/;.*$//g; s/#.*$//g;
	if (/^\s*\[([^\]]+)\]/) {
		$first = 1;
		if ($replacing) { $replacing = 0; }
		elsif ($1 eq $_[0]) {
			print CONF "[$_[1]]\n";
			foreach $k (grep {!/share_name/} (keys %share)) {
				print CONF "\t$k = $share{$k}\n";
				}
			print CONF "\n";
			$replacing = 1;
			}
		}
	elsif (!$first && /^\s*([^=]*\S)\s*=\s*(.*)$/ && $_[0] eq "global") {
		# found start of directives outside any share - assume [global]
		$first = 1;
		print CONF "[$_[1]]\n";
		foreach $k (grep {!/share_name/} (keys %share)) {
			print CONF "\t$k = $share{$k}\n";
			}
		print CONF "\n";
		$replacing = 1;
		}
	if (!$replacing) { print CONF $conf[$i]; }
	}
close(CONF);
}


# delete_share(share)
# Delete some share from the config file
sub delete_share
{
local($_, @conf, $deleting);
open(CONF, $config{smb_conf});
@conf = <CONF>;
close(CONF);
open(CONF, "> $config{smb_conf}");
for($i=0; $i<@conf; $i++) {
	chop($_ = $conf[$i]); s/;.*$//g;
	if (/^\s*\[([^\]]+)\]/) {
		if ($deleting) { $deleting = 0; }
		elsif ($1 eq $_[0]) {
			print CONF "\n";
			$deleting = 1;
			}
		}
	if (!$deleting) { print CONF $conf[$i]; }
	}
close(CONF);
}


# list_connections([share])
# Uses the smbstatus program to return a list of connections a share. Each
# element of the returned list is of the form:
#  share, user, group, pid, hostname, date/time
sub list_connections
{
local($l, $started, @rv);
foreach $l (split(/\n/ , `$config{samba_status_program}`)) {
	if ($l =~ /^----/) { $started = 1; }
	if ($started && $l =~ /^(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(.*)\s+\(\S+\)\s+(.*)$/ && (!$_[0] || $1 eq $_[0] || $1 eq $2 && $_[0] eq "homes")) {
		push(@rv, [ $1, $2, $3, $4, $5, $6 ]);
		}
	}
return @rv;
}


# istrue(key)
# Checks if the value of this key (or it's synonyms) in %share is true
sub istrue
{
return &getval($_[0]) =~ /yes|true|1/i;
}


# isfalse(key)
# Checks if the value of this key (or it's synonyms) in %share is false
sub isfalse
{
return &getval($_[0]) =~ /no|false|0/i;
}


# getval(name)
# Given the name of a key in %share, return the value. Also looks for synonyms.
# If the value is not found, a default is looked for.. this can come from
# a copied section, the [global] configuration section, or from the SAMBA
# defaults. This means that getval() always returns something..
sub getval
{
local($_, $copy);
if ($synon{$_[0]}) {
	foreach (split(/,/, $synon{$_[0]})) {
		if (defined($share{$_})) { return $share{$_}; }
		}
	}
if (defined($share{$_[0]})) {
	return $share{$_[0]};
	}
elsif ($_[0] ne "copy" && ($copy = $share{"copy"})) {
	# this share is a copy.. get the value from the source
	local(%share);
	&get_share($copy);
	return &getval($_[0]);
	}
else {
	# return the default value...
	return &default_value($_[0]);
	}
return undef;
}


# setval(name, value, [default])
# Sets some value in %share. Synonyms with the same meaning are removed.
# If the value is the same as the share or given default, dont store it
sub setval
{
local($_);
if (@_ == 3) {
	# default was given..
	$def = $_[2];
	}
elsif ($_[0] ne "copy" && ($copy = $share{"copy"})) {
	# get value from copy source..
	local(%share);
	&get_share($copy);
	$def = &getval($_[0]);
	}
else {
	# get global/samba default
	$def = &default_value($_[0]);
	}
if ($_[1] eq $def || ($def !~ /\S/ && $_[1] !~ /\S/) ||
    ($def =~ /^(true|yes|1)$/i && $_[1] =~ /^(true|yes|1)$/i) ||
    ($def =~ /^(false|no|0)$/i && $_[1] =~ /^(false|no|0)$/i)) {
	# The value is the default.. delete this entry
	&delval($_[0]);
	}
else {
	if ($synon{$_[0]}) {
		foreach (split(/,/, $synon{$_[0]})) {
			delete($share{$_});
			}
		}
	$share{$_[0]} = $_[1];
	}
}


# delval(name)
# Delete a value from %share (and it's synonyms)
sub delval
{
local($_);
if ($synon{$_[0]}) {
	foreach (split(/,/, $synon{$_[0]})) {
		delete($share{$_});
		}
	}
else { delete($share{$_[0]}); }
}


# default_value(name)
# Returns the default value for a parameter
sub default_value
{
local($_, %global);

# First look in the [global] section.. (unless this _is_ the global section)
if ($share{share_name} ne "global") {
	&get_share("global", "global");
	if ($synon{$_[0]}) {
		foreach (split(/,/, $synon{$_[0]})) {
			if (defined($global{$_})) { return $global{$_}; }
			}
		}
	if (defined($global{$_[0]})) { return $global{$_[0]}; }
	}

# Else look in the samba defaults
if ($synon{$_[0]}) {
	foreach (split(/,/, $synon{$_[0]})) {
		if (exists($default_values{$_})) {
			return $default_values{$_};
			}
		}
	}
return $default_values{$_[0]};
}


# The list of synonyms used by samba for parameter names
@synon = (	"writable,write ok,writeable",
		"public,guest ok",
		"printable,print ok",
		"allow hosts,hosts allow",
		"deny hosts,hosts deny",
		"create mode,create mask",
		"directory mode,directory mask",
		"path,directory",
		"exec,preexec",
		"group,force group",
		"only guest,guest only",
		"user,username,users",
		"default,default service",
		"auto services,preload",
		"lock directory,lock dir",
		"max xmit,max packet",
		"root directory,root dir,root",
		"case sensitive,case sig names"
	 );
foreach $s (@synon) {
	foreach $ss (split(/,/ , $s)) {
		$synon{$ss} = $s;
		}
	}


# Default values for samba configuration parameters
%default_values = (	"allow hosts",undef,
			"alternate permissions","no",
			"available","yes",
			"browseable","yes",
			"comment",undef,
			"create mode","755",
			"directory mode","755",
			"default case","lower",
			"case sensitive","no",
			"mangle case","no",
			"preserve case","no",
			"short preserve case","no",
			"delete readonly","no",
			"deny hosts",undef,
			"dont descend",undef,
			"force group",undef,
			"force user",undef,
			"force create mode","000",
			"force directory mode","000",
			"guest account","nobody",	# depends
			"guest only","no",
			"hide dot files","yes",
			"invalid users",undef,
			"locking","yes",
			"lppause command",undef,	# depends
			"lpq command",undef,		# depends
			"lpresume command",undef,	# depends
			"lprm command",undef,		#depends
			"magic output",undef,		# odd..
			"magic script",undef,
			"mangled map",undef,
			"mangled names","yes",
			"mangling char","~",
			"map archive","yes",
			"map system","no",
			"map hidden","no",
			"max connections",0,
			"only user","no",
			"fake oplocks","no",
			"min print space",0,
			"path",undef,
			"postscript","no",
			"preexec",undef,
			"print command",undef,
#			"print command","lpr -r -P %p %s",
			"printer",undef,
			"printer driver",undef,
			"public","no",
			"read list",undef,
			"revalidate","no",
			"root preexec",undef,
			"root postexec",undef,
			"set directory","no",
			"share modes","yes",
			"strict locking","no",
			"sync always","no",
			"user",undef,
			"valid chars",undef,
			"volume",undef,		# depends
			"wide links","yes",
			"wins support","no",
			"writable","no",
			"write list",undef );

# user_list(list)
# Convert a samba unix user list into a more readable form
sub user_list
{
local($u, @rv);
foreach $u (split(/[ \t,]+/ , $_[0])) {
	if ($u =~ /^\@(.*)$/) { push(@rv, "group <tt>$1</tt>"); }
	else { push(@rv, "<tt>$u</tt>"); }
	}
return join("," , @rv);
}


# yesno_input(name)
# Returns HTML for a true/false option
sub yesno_input
{
($n = $_[0]) =~ s/ /_/g;
return sprintf "<input type=radio name=$n value=yes %s> $text{'yes'}\n".
	       "<input type=radio name=$n value=no %s> $text{'no'}\n",
		&istrue($_[0]) ? "checked" : "",
		&isfalse($_[0]) ? "checked" : "";
}

# username_input(name)
# Outputs HTML for an username field
sub username_input
{
($n = $_[0]) =~ s/ /_/g;
$v = &getval($_[0]);
print "<td><input name=$n size=8 value=\"$v\"> ",
	&user_chooser_button($n, 0),"</td>\n";
}

# username_input(name, default)
sub groupname_input
{
($n = $_[0]) =~ s/ /_/g;
$v = &getval($_[0]);
print "<td><input name=$n size=8 value=\"$v\"> ",
	&group_chooser_button($n, 0),"</td>\n";
}



@sock_opts = ("SO_KEEPALIVE", "SO_REUSEADDR", "SO_BROADCAST", "TCP_NODELAY", 
	      "IPTOS_LOWDELAY", "IPTOS_THROUGHPUT", "SO_SNDBUF*", "SO_RCVBUF*",
	      "SO_SNDLOWAT*", "SO_RCVLOWAT*");

@protocols = ("CORE", "COREPLUS", "LANMAN1", "LANMAN2", "NT1");


# list_users()
# Returns an array of all the users from the samba password file
sub list_users
{
local(@rv, @b, $_, $lnum);
open(PASS, $config{'smb_passwd'});
while(<PASS>) {
	$lnum++;
	chop;
	s/#.*$//g;
	local @b = split(/:/, $_);
	next if (@b < 4);
	local $u = { 'name' => $b[0],  'uid' => $b[1],
		     'pass1' => $b[2], 'pass2' => $b[3] };
	if ($samba_version >= 2 && $b[4] =~ /^\[/) {
		$b[4] =~ s/[\[\] ]//g;
		$u->{'opts'} = [ split(//, $b[4]) ];
		$u->{'change'} = $b[5];
		}
	else {
		$u->{'real'} = $b[4];
		$u->{'home'} = $b[5];
		$u->{'shell'} = $b[6];
		}
	$u->{'index'} = scalar(@rv);
	$u->{'line'} = $lnum-1;
	push(@rv, $u);
	}
close(PASS);
return @rv;
}

# create_user(&user)
# Add a user to the samba password file
sub create_user
{
open(PASS, ">>$config{'smb_passwd'}");
print PASS &user_string($_[0]);
close(PASS);
chown(0, 0, $config{'smb_passwd'});
chmod(0600, $config{'smb_passwd'});
}

# modify_user(&user)
# Change an existing samba user
sub modify_user
{
&replace_file_line($config{'smb_passwd'}, $_[0]->{'line'}, &user_string($_[0]));
}

# delete_user(&user)
# Delete a samba user
sub delete_user
{
&replace_file_line($config{'smb_passwd'}, $_[0]->{'line'});
}

sub user_string
{
local @u = ($_[0]->{'name'}, $_[0]->{'uid'},
	    $_[0]->{'pass1'}, $_[0]->{'pass2'});
if ($_[0]->{'opts'}) {
	push(@u, sprintf "[%-11s]", join("", @{$_[0]->{'opts'}}));
	push(@u, sprintf "LCT-%X", time());
	}
else {
	push(@u, $_[0]->{'real'}, $_[0]->{'home'}, $_[0]->{'shell'});
	}
return join(":", @u),"\n";
}

# set_password(user, password)
# Changes the password of a user in the encrypted password file
sub set_password
{
local($out);
$out = `$config{'samba_password_program'} "$_[0]" "$_[1]" 2>&1 </dev/null`;
return $out =~ /changed/;
}

# is_samba_running()
# Returns 0 if not, 1 if it is, or 2 if run from (x)inetd
sub is_samba_running
{
local ($found_inet, @smbpids, @nmbpids);
if (&foreign_check("inetd")) {
	&foreign_require("inetd", "inetd-lib.pl");
	foreach $inet (&foreign_call("inetd", "list_inets")) {
		$found_inet++ if (($inet->[8] =~ /smbd/ ||
				   $inet->[9] =~ /smbd/) && $inet->[1]);
		}
	}
elsif (&foreign_check("xinetd")) {
	&foreign_require("xinetd", "xinetd-lib.pl");
	foreach $xi (&foreign_call("xinetd", "get_xinetd_config")) {
		local $q = $xi->{'quick'};
		$found_inet++ if ($q->{'disable'}->[0] ne 'yes' &&
				  $q->{'server'}->[0] =~ /smbd/);
		}
	}
@smbpids = &find_byname("smbd");
@nmbpids = &find_byname("nmbd");
return !$found_inet && !@smbpids && !@nmbpids ? 0 :
       !$found_inet ? 1 : 2;
}

# can($permissions_string, \%access, [$sname])
# check global and per-share permissions:
#
# $permissions_string = any exists permissions except 'c' (creation).
# \%access = ref on what get_module_acl() returns.
sub can
{
local ($acl, $stype, @perm);
local ($perm, $acc, $sname) = @_;
@perm  = split(//, $perm);
$sname = $in{'old_name'} || $in{'share'} unless $sname;

{	local %share;
	&get_share($sname); # use local %share
	$stype = &istrue('printable') ? 'ps' : 'fs';
	}

# check global acl (r,w)
foreach (@perm) {
	next if ($_ ne 'r') && ($_ ne 'w');
	return 0 unless $acc->{$_ . '_' . $stype};
	}

# check per-share acl
if ($acc->{'per_' . $stype . '_acls'}) {
    $acl = $acc->{'ACL' . $stype . '_' . $sname};
    foreach (@perm) {
#        next if $_ eq 'c'; # skip creation perms for per-share acls
		return 0 if index($acl, $_) == -1;
		}
	}
return 1;	
}

# save_samba_acl($permissions_string, \%access, $share_name)
sub save_samba_acl
{
local ($p, $a, $s)=@_;
defined(%share) || &get_share($s); # use global %share
local $t=&istrue('printable') ? 'ps' : 'fs';
$a->{'ACL'. $t .'_'. $s} = $p;
#undef($can_cache);
return &save_module_acl($a);
}

# drop_samba_acl(\%access, $share_name)
sub drop_samba_acl
{
local ($a, $s)=@_;
defined(%share) || &get_share($s); # use global %share
local $t=&istrue('printable') ? 'ps' : 'fs';
delete($a->{'ACL'. $t .'_' . $s});
#undef($can_cache);
return &save_module_acl($a);
}

1;

0707010005221f000081e40000000000000002000000013ac0388d000002d2000000200000000000000000000000000000001a00000003reloc/samba/save_copy.cgi #!/usr/local/bin/perl
# save_copy.cgi
# Create a new, empty share that is a copy of an existing one

require './samba-lib.pl';
&ReadParse();

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcopy'}") unless $access{'copy'};
 
$whatfailed = $text{'savecopy_fail'};
&lock_file($config{'smb_conf'});
if ($in{"name"} eq "global") {
	&error($text{'savecopy_global'});
	}
if (&indexof($in{"name"}, &list_shares()) >= 0) {
	&error(&text('savecopy_exist', $in{name}));
	}
&setval("copy", $in{copy});
&create_share($in{name});
&unlock_file($config{'smb_conf'});
&webmin_log("copy", undef, $in{'name'}, \%in);
&redirect("");

  07070100052220000081e40000000000000002000000013ac0388d0000063a000000200000000000000000000000000000001b00000003reloc/samba/save_euser.cgi    #!/usr/local/bin/perl
# save_euser.cgi
# Save an existing samba user

require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pmusers'}")
        unless $access{'maint_users'} && $access{'view_users'};
# save		
$whatfailed = $text{'saveuser_fail'};
&lock_file($config{'smb_passwd'});
@list = &list_users();
$u = $list[$in{'idx'}];

# check inputs
$in{'uid'} =~ /^\d+$/ || &error(&text('saveuser_uid', $in{'uid'}));
$u->{'uid'} = $in{'uid'};
if ($in{'new'}) {
	$u->{'opts'} = [ split(/\0/, $in{'opts'}) ];
	}
else {
	$in{'realname'} !~ /:/ ||
		&error($text{'saveuser_colon'});
	(-d $in{'homedir'}) ||
		&error(&text('saveuser_home', $in{'homedir'}));
	(-x $in{'shell'}) || &error(&text('saveuser_shell', $in{'shell'}));
	$u->{'home'} = $in{'homedir'};
	$u->{'shell'} = $in{'shell'};
	$u->{'real'} = $in{'realname'};
	}

# apply changes
if ($in{ptype} == 0) {
	$u->{'pass1'} = $u->{'$pass2'} = ("X" x 32);
	}
elsif ($in{ptype} == 1) {
	$u->{'pass1'} = "NO PASSWORDXXXXXXXXXXXXXXXXXXXXX";
	$u->{'pass2'} = ("X" x 32);
	}
elsif ($in{ptype} == 3) {
	# changing password.. need to set later with smbpasswd
	$u->{'pass1'} = $u->{'$pass2'} = ("X" x 32);
	$set_passwd = 1;
	}
&modify_user($u);

# Call password change program if necessary
if ($set_passwd) {
	&set_password($u->{'name'}, $in{'pass'}) ||
		&error(&text('saveuser_pass', $error));
	}
&unlock_file($config{'smb_passwd'});
&webmin_log("save", "euser", $u->{'name'}, $u);

&redirect("edit_epass.cgi");

  07070100052221000081e40000000000000002000000013ac0388d00000562000000200000000000000000000000000000001b00000003reloc/samba/save_fmisc.cgi    #!/usr/local/bin/perl
# save_fmisc.cgi
# Save a misc options for a file share

require './samba-lib.pl';
&ReadParse();
&lock_file($config{'smb_conf'});
&get_share($in{old_name});

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pufmisc'}")
            unless &can('rwoO', \%access, $in{old_name});
# save
$whatfailed = $text{'savefmisc_fail'};
# Random options
&setval("mangled map", $in{mangled_map});
&setval("locking", $in{locking});
if ($in{max_connections_def}) { &setval("max connections", 0); }
else {
	($in{max_connections} =~ /^\d+$/ && $in{max_connections} > 0) ||
		&error(&text('savefmisc_number', $in{max_connections}));
	&setval("max connections", $in{max_connections});
	}
&setval("fake oplocks", $in{fake_oplocks});
&setval("share modes", $in{share_modes});
&setval("strict locking", $in{strict_locking});
&setval("sync always", $in{sync_always});
&setval("volume", $in{volume_def} ? "" : $in{volume});
&setval("preexec", $in{preexec});
&setval("postexec", $in{postexec});
&setval("root preexec", $in{root_preexec});
&setval("root postexec", $in{root_postexec});

&modify_share($in{old_name}, $in{old_name});
&unlock_file($config{'smb_conf'});
&webmin_log("save", "fmisc", $in{old_name}, \%in);
&redirect("edit_fshare.cgi?share=".&urlize($in{old_name}));

  07070100052222000081e40000000000000002000000013ac0388d0000042f000000200000000000000000000000000000001b00000003reloc/samba/save_fname.cgi    #!/usr/local/bin/perl
# save_fname.cgi
# Save file naming options

require './samba-lib.pl';
&ReadParse();
&lock_file($config{'smb_conf'});
&get_share($in{old_name});

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pufname'}")
            unless &can('rwnN', \%access, $in{old_name});
# save
$whatfailed = $text{'error_savename'};
# File nameing options
&setval("mangle case", $in{mangle_case});
&setval("case sensitive", $in{case_sensitive});
&setval("default case", $in{default_case}, "lower");
&setval("preserve case", $in{preserve_case});
&setval("short preserve case", $in{short_preserve_case});
&setval("hide dot files", $in{hide_dot_files});
&setval("map archive", $in{map_archive});
&setval("map hidden", $in{map_hidden});
&setval("map system", $in{map_system});

&modify_share($in{old_name}, $in{old_name});
&unlock_file($config{'smb_conf'});
&webmin_log("save", "fname", $in{old_name}, \%in);
&redirect("edit_fshare.cgi?share=".&urlize($in{old_name}));

 07070100052223000081e40000000000000002000000013ac0388d00000491000000200000000000000000000000000000001b00000003reloc/samba/save_fperm.cgi    #!/usr/local/bin/perl
# save_fperm.cgi
# Save file permissions options

require './samba-lib.pl';
&ReadParse();
&lock_file($config{'smb_conf'});
&get_share($in{old_name});

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pufperm'}")
            unless &can('rwpP', \%access, $in{old_name});
# save
$whatfailed = $text{'savefperm_fail'};
# File nameing options
$in{create_mode} =~ /^0?[0-7]{3}$/ ||
	&error(&text('savefperm_mode', $in{create_mode}));
&setval("create mode", $in{create_mode});
&setval("directory mode", $in{directory_mode});
&setval("force create mode", $in{force_create_mode});
&setval("force directory mode", $in{force_directory_mode});
&setval("delete readonly", $in{delete_readonly});
&setval("dont descend", $in{dont_descend});
&setval("force user", $in{force_user});
&setval("force group", $in{force_group});
&setval("wide links", $in{wide_links});

&modify_share($in{old_name}, $in{old_name});
&unlock_file($config{'smb_conf'});
&webmin_log("save", "fperm", $in{old_name}, \%in);
&redirect("edit_fshare.cgi?share=".&urlize($in{old_name}));

   07070100052224000081e40000000000000002000000013ac0388d00000775000000200000000000000000000000000000001c00000003reloc/samba/save_fshare.cgi   #!/usr/local/bin/perl
# save_fshare.cgi
# Save a new or edited file share

require './samba-lib.pl';
&ReadParse();
&lock_file($config{'smb_conf'});
&get_share($in{old_name}) if $in{old_name};

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if ($in{old_name}) {
    &error("$text{'eacl_np'} $text{'eacl_pus'}") 
		unless &can('rw', \%access, $in{old_name});
	}
else {
    &error("$text{'eacl_np'} $text{'eacl_pcs'}") unless $access{'c_fs'};
	}

$whatfailed = $text{'savefshare_fail'};
# store share options
if ($in{old_name} eq "global") {
	$name = "global";
	}
else {
	$name = $in{"homes"} ? "homes" : $in{"share"};
	if ($in{"path"} !~ /\S/ && !$in{"homes"}) {
		&error($text{'savefshare_nopath'});
		}
	}
&setval("path", $in{"path"});
&setval("available", $in{"available"});
&setval("browseable", $in{"browseable"});
&setval("comment", $in{"comment"});

# Check for clash
if ($name ne "global") {
	foreach (&list_shares()) {
		$exists{$_}++;
		}
	if (!$in{old_name} && $exists{$name}) {
		&error(&text('savefshare_exist', $name));
		}
	elsif ($in{old_name} ne $name && $exists{$name}) {
		&error(&text('savefshare_exist', $name));
		}
	elsif ($name !~ /^[A-z0-9_\$ ]+$/) {
		&error(&text('savefshare_mode', $name));
		}
	elsif ($name eq "global") {   # unreachable code ? EB
		&error($text{'savefshare_global'});
		}
	}

# Update config file
if ($in{old_name}) {
	# Changing an existing share
	&modify_share($in{old_name}, $name);
	if ($name ne $in{old_name}) {
		local $oldacl=$access{'ACLfs_' . $in{old_name}};
		&drop_samba_acl(\%access, $in{old_name});
		&save_samba_acl($oldacl, \%access, $name);
		}
	}
else {
	# Creating a new share
	&create_share($name);
	&save_samba_acl('rwvVsSpPnNoO', \%access, $name);
	}
&unlock_file($config{'smb_conf'});
&webmin_log($in{old_name} ? "save" : "create", "fshare", $name, \%in);
&redirect("");
   07070100052225000081e40000000000000002000000013ac0388d00000870000000200000000000000000000000000000001a00000003reloc/samba/save_misc.cgi #!/usr/local/bin/perl
# save_misc.cgi
# Save inputs from conf_misc.cgi

require './samba-lib.pl';
&ReadParse();
&lock_file($config{'smb_conf'});
$global = &get_share("global");

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcm'}") unless $access{'conf_misc'};
 
$whatfailed = $text{'savemisc_fail'};
&setval("debug level", $in{debug_level}, "");

&setval("getwd cache", $in{getwd_cache}, "no");

if (!$in{lock_directory_def} && !(-d &parent_dir($in{lock_directory}))) {
	&error($text{'savemisc_lockdir'});
	}
&setval("lock directory", $in{lock_directory_def}?"":$in{lock_directory}, "");

if (!$in{log_file_def} && !(-d &parent_dir($in{log_file}))) {
	&error($text{'savemisc_logdir'});
	}
&setval("log file", $in{log_file_def} ? "" : $in{log_file}, "");

if (!$in{max_log_size_def} && $in{max_log_size} !~ /^\d+$/) {
	&error(&text('savemisc_logsize',$in{max_log_size}));
	}
&setval("max log size", $in{max_log_size_def} ? 0 : $in{max_log_size}, 0);

&setval("read raw", $in{read_raw}, "yes");

&setval("write raw", $in{write_raw}, "yes");

if (!$in{read_size_def} && $in{read_size} !~ /^\d+$/) {
	&error(&text('savemisc_overlap',$in{read_size}));
	}
&setval("read size", $in{read_size_def} ? 0 : $in{read_size}, 0);

if (!$in{root_directory_def} && !(-d $in{root_directory})) {
	&error(&text('savemisc_chroot', $in{root_directory}));
	}
&setval("root directory", $in{root_directory_def}?"":$in{root_directory}, "");

if (!$in{smbrun_def} && !(-x $in{smbrun})) {
	&error(&text('savemisc_smbrun', $in{smbrun}));
	}
&setval("smbrun", $in{smbrun_def} ? "" : $in{smbrun}, "");

if (!$in{time_offset_def} && $in{time_offset} !~ /^\d+$/) {
	&error(&text('savemisc_time',$in{time_offset}));
	}
&setval("time offset", $in{time_offset_def} ? 0 : $in{time_offset}, 0);

&setval("read prediction", $in{read_prediction}, "no");

if ($global) { &modify_share("global", "global"); }
else { &create_share("global"); }
&unlock_file($config{'smb_conf'});
&webmin_log("misc", undef, undef, \%in);
&redirect("");

sub parent_dir
{
$_[0] =~ /^(.*\/)[^\/]+$/; return $1;
}
07070100052226000081e40000000000000002000000013ac0388d000007d8000000200000000000000000000000000000001900000003reloc/samba/save_net.cgi  #!/usr/local/bin/perl
# save_net.cgi
# Save inputs from conf_net.cgi

require './samba-lib.pl';
&ReadParse();
&lock_file($config{'smb_conf'});
$global = &get_share("global");

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcn'}") unless $access{'conf_net'};

$whatfailed = $text{'savenet_fail'};
if (!$in{dead_time_def} && $in{dead_time} !~ /^\d+$/) {
	&error(&text('savenet_timeout', $in{dead_time}));
	}
&setval("dead time", $in{dead_time_def} ? 0 : $in{dead_time}, 0);

&setval("hosts equiv", $in{hosts_equiv_def} ? "" : $in{hosts_equiv}, "");

if ($in{interfaces_def}) { &delval("interfaces"); }
else {
	for($i=0; defined($in{"interface_ip$i"}); $i++) {
		if ($in{"interface_ip$i"} !~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/)
			{ next; }
		@ip = ($1, $2, $3, $4);
		if ($in{"interface_nm$i"} !~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/)
			{ next; }
		@nm = ($1, $2, $3, $4);
		foreach $j (@ip, @nm) {
			if ($j < 0 || $j > 255) {
				&error(&text('savenet_ip', $j));
				}
			}
		push(@ifaces, join('.',@ip)."/".join('.',@nm));
		}
	&setval("interfaces", join(' ', @ifaces), "");
	}

if (!$in{keepalive_def} && $in{keepalive} !~ /^\d+$/) {
	&error(&text('savenet_keep', $in{keepalive}));
	}
&setval("keepalive", $in{keepalive_def} ? 0 : $in{keepalive}, 0);

if (!$in{max_xmit_def} && $in{max_xmit} !~ /^\d+$/) {
	&error(&text('savenet_maxxmit', $in{max_xmit}));
	}
&setval("max xmit", $in{max_xmit_def} ? 0 : $in{max_xmit}, 0);

&setval("socket address",
	$in{socket_address_def} ? "" : $in{socket_address}, "");

foreach (@sock_opts) {
	/^([A-Z\_]+)(.*)$/;
	if ($2 eq "*") {
		if ($in{$1}) { push(@sopts, "$1=".$in{"$1_val"}); }
		}
	else {
		if ($in{$1}) { push(@sopts, $1); }
		}
	}
&setval("socket options", join(' ',@sopts), "");

if ($global) { &modify_share("global", "global"); }
else { &create_share("global"); }
&unlock_file($config{'smb_conf'});
&webmin_log("net", undef, undef, \%in);
&redirect("");

07070100052227000081e40000000000000002000000013ac0388d00000944000000200000000000000000000000000000001a00000003reloc/samba/save_pass.cgi #!/usr/local/bin/perl
# save_pass.cgi
# Save inputs from conf_pass.cgi

require './samba-lib.pl';
&ReadParse();
&lock_file($config{'smb_conf'});
$global = &get_share("global");

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcp'}") unless $access{'conf_pass'};

$whatfailed = $text{'savepass_fail'};
$nopass = (`$config{samba_password_program} 2>&1 </dev/null` =~ /encryption not selected/);
if ($in{encrypt_passwords} eq "yes" && $nopass) {
	&error($text{'savepass_nopass'});
	}
&setval("encrypt passwords", $in{encrypt_passwords}, "no");

&setval("null passwords", $in{null_passwords}, "no");

if (!$in{passwd_program_def} && !$in{passwd_program}) {
	&error($text{'savepass_passwd'});
	}
&setval("passwd program", $in{passwd_program_def}?"":$in{passwd_program}, "");

$in{password_level} =~ /^\d+$/ ||
	&error(&text('savepass_level', $in{password_level}));
&setval("password level", $in{password_level}, 0);

if ($in{passwd_chat_def}) { &delval("passwd chat"); }
else {
	for($i=0; defined($in{"chat_recv_$i"}); $i++) {
		push(@chat, $in{"chat_recv_$i"});
		push(@chat, $in{"chat_send_$i"});
		}
	$clast = -1;
	for($i=0; $i<@chat; $i++) {
		if ($chat[$i] =~ /\S/) { $clast = $i; }
		}
	if ($clast < 0) {
		&error($text{'savepass_chat'});
		}
	@chat = @chat[0 .. $clast];
	@chat = map { /^$/ ? "." : /^\S+$/ ? $_ : "\"$_\""; } @chat;
	&setval("passwd chat", join(' ', @chat));
	}

$mapfile = &getval("username map");
if ($in{username_map_def}) { &delval("username map"); }
else {
	if (!$mapfile) {
		$config{smb_conf} =~ /^(.*)\/[^\/]+$/;
		$mapfile = "$1/user.map";
		}
	&setval("username map", $mapfile);
	for($i=0; defined($in{"umap_unix_$i"}); $i++) {
		if ($in{"umap_unix_$i"} =~ /\S/ && $in{"umap_win_$i"} =~ /\S/) {
			if ($in{"umap_win_$i"} =~ /\s/) {
				push(@umap, $in{"umap_unix_$i"}."=\"".
					    $in{"umap_win_$i"}."\"");
				}
			else {
				push(@umap, $in{"umap_unix_$i"}."=".
					    $in{"umap_win_$i"});
				}
			}
		}
	&lock_file($mapfile);
	open(UMAP, "> $mapfile");
	foreach $line (@umap) {
		print UMAP "$line\n";
		}
	close(UMAP);
	&unlock_file($mapfile);
	}

if ($global) { &modify_share("global", "global"); }
else { &create_share("global"); }
&unlock_file($config{'smb_conf'});
&webmin_log("pass", undef, undef, \%in);
&redirect("");

07070100052228000081e40000000000000002000000013ac0388d00000508000000200000000000000000000000000000001b00000003reloc/samba/save_popts.cgi    #!/usr/local/bin/perl
# save_popts.cgi
# Save printer options

require './samba-lib.pl';
&ReadParse();
&lock_file($config{'smb_conf'});
&get_share($in{'old_name'});

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pupopt'}")
  		unless &can('rwoO', \%access, $in{old_name});
# save
$whatfailed = $text{'savepopts_fail'};
# printer options
$in{min_print_space} =~ /^\d+$/ ||
	&error($text{'savepopts_number'});
&setval("min print space", $in{min_print_space});
&setval("postscript", $in{postscript});
&setval("print command", $in{print_command_def} ? "" : $in{print_command});
&setval("lpq command", $in{lpq_command_def} ? "" : $in{lpq_command});
&setval("lprm command", $in{lprm_command_def} ? "" : $in{lprm_command});
&setval("lppause command",
	$in{lppause_command_def} ? "" : $in{lppause_command});
&setval("lpresume command",
	$in{lpresume_command_def} ? "" : $in{lpresume_command});
&setval("printer driver",
	$in{printer_driver_def} ? "" : $in{printer_driver});

# Update config file
&modify_share($in{old_name}, $in{old_name});
&unlock_file($config{'smb_conf'});
&webmin_log("save", "popts", $in{old_name}, \%in);
&redirect("edit_pshare.cgi?share=".&urlize($in{old_name}));

07070100052229000081e40000000000000002000000013ac0388d000003d1000000200000000000000000000000000000001b00000003reloc/samba/save_print.cgi    #!/usr/local/bin/perl
# save_print.cgi
# Save inputs from conf_print.cgi

require './samba-lib.pl';
&ReadParse();
&lock_file($config{'smb_conf'});
$global = &get_share("global");

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcprint'}") unless $access{'conf_print'};
 
$whatfailed = $text{'saveprint_fail'};
&setval("printing", $in{printing}, "");

&setval("load printers", $in{load_printers}, "no");

&setval("printcap name", $in{printcap_name_def} ? "" : $in{printcap_name}, "");

if (!$in{lpq_cache_time_def} && $in{lpq_cache_time} !~ /^\d+$/) {
	&error(&text('saveprint_cache', $in{lpq_cache_time}));
	}
&setval("lpq cache time", $in{lpq_cache_time_def} ? 0 : $in{lpq_cache_time}, 0);

if ($global) { &modify_share("global", "global"); }
else { &create_share("global"); }
&unlock_file($config{'smb_conf'});
&webmin_log("print", undef, undef, \%in);
&redirect("");
   0707010005222a000081e40000000000000002000000013ac0388d000007fe000000200000000000000000000000000000001c00000003reloc/samba/save_pshare.cgi   #!/usr/local/bin/perl
# save_pshare.cgi
# Save a new or edited printer share

require './samba-lib.pl';
&ReadParse();
&lock_file($config{'smb_conf'});
&get_share($in{old_name}) if $in{old_name};

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if ($in{old_name}) {
    &error("$text{'eacl_np'} $text{'eacl_pus'}") 
		unless &can('rw', \%access, $in{old_name});
    }
else {
    &error("$text{'eacl_np'} $text{'eacl_pcs'}") unless $access{'c_ps'};
    }

$whatfailed = $text{'savepshare_fail'};
if ($in{old_name} eq "global") {
	$name = "global";
	}
else {
	# store share options
	$name = $in{printers} ? "printers" : $in{"share"};
	}
#if ($in{"path"} !~ /\S/ && !$in{"printers"}) {
#	&error("No spool directory given");
#	}
&setval("printer", $in{"printer"});
&setval("path", $in{"path"});
&setval("available", $in{"available"});
&setval("browseable", $in{"browseable"});
if ($name ne "global") { &setval("printable", "yes"); }
&setval("comment", $in{"comment"});

# Check for clash
if ($name ne "global") {
	foreach (&list_shares()) {
	        $exists{$_}++;
	        }
	if (!$in{old_name} && $exists{$name}) {
	        &error(&text('savepshare_exist', $name));
	        }
	elsif ($in{old_name} ne $name && $exists{$name}) {
	        &error(&text('savepshare_exist', $name));
	        }
	elsif ($name !~ /^[A-z0-9_\$ ]+$/) {
		&error(&text('savepshare_name', $name));
		}
	elsif ($name eq "global") {
		&error($text{'savepshare_global'});
		}
	}

# Update config file
if ($in{old_name}) {
	# Changing an existing share
	&modify_share($in{old_name}, $name);
	if ($name ne $in{old_name}) {
		local $oldacl=$access{'ACLps_' . $in{old_name}};
		&drop_samba_acl(\%access, $in{old_name});
		&save_samba_acl($oldacl, \%access, $name);
	    }
    }
else {
    # Creating a new share
    &create_share($name);
	&save_samba_acl('rwvVsSoO', \%access, $name);
    }
&unlock_file($config{'smb_conf'});
&webmin_log($in{old_name} ? "save" : "create", "pshare", $name, \%in);
&redirect("");

  0707010005222b000081e40000000000000002000000013ac0388d00000815000000200000000000000000000000000000001900000003reloc/samba/save_sec.cgi  #!/usr/local/bin/perl
# save_sec.cgi
# Save secuirty options for a share

require './samba-lib.pl';
&ReadParse();
&lock_file($config{'smb_conf'});
&get_share($in{old_name});

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pusec'}")
	        unless &can('rwsS', \%access, $in{old_name});
# save				
$whatfailed = $text{'savesec_fail'};
&delval("read only");
&setval("writable", $in{writable});
if ($in{guest} == 0) {
	&delval("public"); &delval("guest only");
	}
elsif ($in{guest} == 1) {
	&setval("public", "yes"); &delval("guest only");
	}
else {
	&setval("public", "yes"); &setval("guest only", "yes");
	}
&setval("valid users",
	join(',', split(/\s+/, $in{'valid_users_u'}),
		  map { '@'.$_ } split(/\s+/, $in{'valid_users_g'})));
&setval("invalid users",
	join(',', split(/\s+/, $in{'invalid_users_u'}),
		  map { '@'.$_ } split(/\s+/, $in{'invalid_users_g'})));
&setval("user",
	join(',', split(/\s+/, $in{'user_u'}),
		  map { '@'.$_ } split(/\s+/, $in{'user_g'})));
&setval("read list",
	join(',', split(/\s+/, $in{'read_list_u'}),
		  map { '@'.$_ } split(/\s+/, $in{'read_list_g'})));
&setval("write list",
	join(',', split(/\s+/, $in{'write_list_u'}),
		  map { '@'.$_ } split(/\s+/, $in{'write_list_g'})));
if (!$in{allow_hosts_all} && $in{allow_hosts} =~ /\S/) {
	&setval("allow hosts", $in{allow_hosts});
	}
else { &delval("allow hosts"); }
if (!$in{deny_hosts_all} && $in{deny_hosts} =~ /\S/) {
	&setval("deny hosts", $in{deny_hosts});
	}
else { &delval("deny hosts"); }
&setval("guest account", $in{guest_account});
&setval("only user", $in{only_user});
&setval("revalidate", $in{revalidate});

&modify_share($in{old_name}, $in{old_name});
&unlock_file($config{'smb_conf'});
&webmin_log("save", "sec", $in{old_name}, \%in);
# the follwing have bug !!!: not work with global share. EB
if (&istrue("printable"))
	{ &redirect("edit_pshare.cgi?share=".&urlize($in{old_name})); }
else
	{ &redirect("edit_fshare.cgi?share=".&urlize($in{old_name})); }

   0707010005222c000081e40000000000000002000000013ac0388d000008b8000000200000000000000000000000000000001900000003reloc/samba/save_smb.cgi  #!/usr/local/bin/perl
# save_net.cgi
# Save inputs from conf_net.cgi

require './samba-lib.pl';
&ReadParse();
&lock_file($config{'smb_conf'});
$global = &get_share("global");

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcs'}") unless $access{'conf_smb'};

$whatfailed = $text{'savesmb_fail'};
&setval("workgroup", $in{workgroup_def} ? "" : $in{workgroup}, "");

if ($in{'wins'} == 0) {
	&delval("wins server");
	&setval("wins support", "true");
	}
elsif ($in{'wins'} == 1) {
	&setval("wins support", "false");
	&setval("wins server", $in{'wins_server'}, "");
	}
else {
	&delval("wins server");
	&setval("wins support", "false");
	}

&setval("server string", $in{server_string_def} ? "" : $in{server_string}, "");

&setval("netbios name", $in{'netbios_name'}, "");

&setval("netbios aliases", $in{'netbios_aliases'}, "");

&setval("default", $in{default}, "");

&setval("auto services", join(' ', split(/\0/, $in{auto_services})), "");

if (!$in{max_disk_size_def} && $in{max_disk_size} !~ /^\d+$/) {
	&error(&text('savesmb_size', $in{max_disk_size}));
	}
&setval("max disk size", $in{max_disk_size_def} ? 0 : $in{max_disk_size}, 0);

&setval("message command", $in{message_command}, "");

$in{os_level} =~ /^\d+$/ ||
	&error(&text('savesmb_oslevel', $in{os_level}));
&setval("os level", $in{os_level}, 0);

&setval("protocol", $in{protocol}, "");

&setval("preferred master", $in{preferred_master}, "yes");

&setval("security", $in{security}, "");

if ($in{security} eq "server" && $in{password_server} !~ /\S/) {
	&error($text{'savesmb_server'});
	}
&setval("password server", $in{password_server}, "");

if ($in{remote_def}) { &delval("remote announce"); }
else {
	for($i=0; defined($in{"remote_ip$i"}); $i++) {
		if ($in{"remote_ip$i"} !~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)/)
			{ next; }
		push(@rem, $in{"remote_ip$i"} .
		   ($in{"remote_wg$i"} =~ /\S/ ? "/".$in{"remote_wg$i"} : ""));
		}
	&setval("remote announce", join(' ', @rem), "");
	}

if ($global) { &modify_share("global", "global"); }
else { &create_share("global"); }
&unlock_file($config{'smb_conf'});
&webmin_log("smb", undef, undef, \%in);
&redirect("");

0707010005222d000081e40000000000000002000000013ac0388d00000286000000200000000000000000000000000000001a00000003reloc/samba/save_sync.cgi #!/usr/local/bin/perl
# save_sync.cgi
# Save unix-samba synchronisation options

require './samba-lib.pl';
&ReadParse();
# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pmsync'}")
        unless $access{'maint_sync'};
# save
&lock_file("$module_config_directory/config");
foreach $s ("add", "change", "delete") {
	if ($in{$s}) { $config{"sync_$s"} = 1; }
	else { delete($config{"sync_$s"}); }
	}
&write_file("$module_config_directory/config", \%config);
&unlock_file("$module_config_directory/config");
&webmin_log("sync");
&redirect("");

  0707010005222e000081e40000000000000002000000013ac0388d00000314000000200000000000000000000000000000001600000003reloc/samba/start.cgi #!/usr/local/bin/perl
# start.cgi
# Attempt to start the smbd and nmbd processes

require './samba-lib.pl';
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_papply'}") unless $access{'apply'};
 
&error_setup($text{'start_err'});

if ($config{'start_cmd'}) {
	$rv = &system_logged("$config{'start_cmd'} >/dev/null 2>&1 </dev/null");
	if ($rv) { &error(&text('start_fail', $config{'start_cmd'})); }
	}
else {
	$rv = &system_logged("$config{samba_server} </dev/null");
	if ($rv) { &error(&text('start_fail', $config{samba_server})); }
	$rv = &system_logged("$config{name_server} </dev/null");
	if ($rv) { &error(&text('start_fail', $config{name_server})); }
	}
&webmin_log("start");
&redirect("");

0707010005222f000081e40000000000000002000000013ac0388d00000c1b000000200000000000000000000000000000001500000003reloc/samba/swat.cgi  #!/usr/local/bin/perl
# swat.cgi
# Pass everything to samba's SWAT tool

require './samba-lib.pl';
&ReadParse();

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcswat'}") unless $access{'swat'};

# Check is hosts allow is in force
&get_share("global");
if (&getval('allow hosts')) {
	&header($text{'error'}, "");
	print "<hr>\n";
	print "<p>", &text('swat_msg3', $text{'sec_onlyallow'}), "<p>\n";
	&foreign_require("inetd", "inetd-lib.pl");
	local @inets = &foreign_call("inetd", "list_inets");
	foreach $i (@inets) {
		if ($i->[3] eq 'swat' && $i->[1]) {
			# swat is configured in inetd!
			local $p = getservbyname('swat', 'tcp');
			$url = "http://$ENV{'SERVER_NAME'}:$p/";
			print &text('swat_msg4', "<a href='$url'>$url</a>"), "<p>\n";
			}
		}
	print "<hr>\n";
	&footer("", $text{'index_sharelist'});
	exit;
	}

# Check if we have the password
&read_file("$module_config_directory/swat", \%swat) || &ask_password();

# Execute SWAT process
pipe(OUTr, OUTw);
pipe(INr, INw);
local $pid = fork();
if (!$pid) {
	untie(*STDIN);
	untie(*STDOUT);
	untie(*STDERR);
	open(STDIN, "<&INr");
	open(STDOUT, ">&OUTw");
	open(STDERR, ">&OUTw");
	close(OUTr); close(INw);
	undef %ENV;
	exec($config{'swat_path'});
	print "Exec failed : $!\n";
	exit 1;
	}
close(OUTw); close(INr);

# Feed HTTP request and read output
$auth = &encode_base64("$swat{'user'}:$swat{'pass'}");
$auth =~ s/\n//g;
select(INw); $| = 1; select(STDOUT);
if ($ENV{'REQUEST_METHOD'} eq 'GET') {
	print INw "GET $ENV{'PATH_INFO'}?$in HTTP/1.0\n";
	print INw "Authorization: basic $auth\n";
	print INw "\n";
	}
else {
	print INw "POST $ENV{'PATH_INFO'} HTTP/1.0\r\n";
	print INw "Authorization: basic $auth\r\n";
	print INw "Content-length: ",length($in),"\r\n";
	print INw "Content-type: application/x-www-form-urlencoded\r\n";
	print INw "\r\n",$in;
	}
close(INw);
$reply = <OUTr>;
if ($reply =~ /\s401\s/) {
	&ask_password();
	}
$url = "/$module_name/swat.cgi";
while(<OUTr>) {
	s/src="(\/[^"]*)"/src="$url$1"/gi;
	s/href="(\/[^"]*)"/href="$url$1"/gi;
	s/action="(\/[^"]*)"/action="$url$1"/gi;
	print $_;
	}

print "<hr>\n";
&footer("/$module_name/", $text{'index_sharelist'});

sub ask_password
{
&header($text{'swat_title'}, "");
print "<hr>\n";
if (%swat) {
	print $text{'swat_msg1'}, " <br>\n";
	}
else {
	print $text{'swat_msg2'}, " <br>\n";
	}
print "<form action=swat_save.cgi>\n";
print "<center><table border>\n";
print "<tr $tb> <td><b>$text{'swat_list'}</b></td> </tr>\n";
print "<tr $cb> <td><table cellpadding=2>\n";
print "<tr> <td><b>$text{'swat_username'}</b></td>\n";
print "<td><input name=user size=20 value='$swat{'user'}'></td> </tr>\n";
print "<tr> <td><b>$text{'swat_password'}</b></td>\n";
print "<td><input name=pass size=20 type=password></td> </tr>\n";
print "</table></td></tr></table>\n";
print "<input type=submit value=\"", $text{'swat_login'},
      "\"> <input type=reset value=\"", $text{'swat_clear'}, "\">\n";
print "</center></form><hr>\n";
&footer("", $text{'index_sharelist'});
exit;
}

 07070100052230000081e40000000000000002000000013ac0388d0000023e000000200000000000000000000000000000001a00000003reloc/samba/swat_save.cgi #!/usr/local/bin/perl
# swat_save.cgi
# Save the entered SWAT username and password

require './samba-lib.pl';
&ReadParse();

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
&error("$text{'eacl_np'} $text{'eacl_pcswat'}") unless $access{'swat'};
 
$whatfailed = $text{'swats_fail'};
$in{'user'} || &error($text{'swats_user'});
&write_file("$module_config_directory/swat", { 'user' => $in{'user'},
					       'pass' => $in{'pass'} });
chmod(0600, "$module_config_directory/swat");
&redirect("swat.cgi");

  07070100052231000081a40000000000000002000000013ac0388d000009d7000000200000000000000000000000000000002000000003reloc/samba/useradmin_update.pl   
do './samba-lib.pl';

# useradmin_create_user(&details)
# Create a new samba user if sync is enabled
sub useradmin_create_user
{
&get_share("global");
if (&istrue("encrypt passwords") && $config{'smb_passwd'} &&
    $config{'sync_add'} && !&get_user($_[0]->{'user'})) {
	# Add a user to smbpasswd
	&lock_file($config{'smb_passwd'});
	local $u = { 'name' => $_[0]->{'user'},
		     'uid' => $_[0]->{'uid'} };
	if ($samba_version >= 2) {
		local @opts = ("U");
		push(@opts, "N") if ($_[0]->{'passmode'} == 0);
		push(@opts, "D") if ($_[0]->{'passmode'} == 1);
		$u->{'opts'} = \@opts;
		}
	else {
		$u->{'real'} = $_[0]->{'real'};
		$u->{'home'} = $_[0]->{'home'};
		$u->{'shell'} = $_[0]->{'shell'};
		}
	$u->{'pass1'} = $u->{'pass2'} = ("X" x 32);
	if ($_[0]->{'passmode'} == 0)
		{ $u->{'pass1'} = "NO PASSWORDXXXXXXXXXXXXXXXXXXXXX"; }
	&create_user($u);
	if ($_[0]->{'passmode'} == 3)
		{ &set_password($_[0]->{'user'}, $_[0]->{'plainpass'}); }
	&unlock_file($config{'smb_passwd'});
	}
}

# useradmin_delete_user(&details)
# Delete a samba user
sub useradmin_delete_user
{
&get_share("global");
if (&istrue("encrypt passwords") && $config{'smb_passwd'} &&
    $config{'sync_delete'} && ($u = &get_user($_[0]->{'user'}))) {
	# Delete the user
	&lock_file($config{'smb_passwd'});
	&delete_user($u);
	&unlock_file($config{'smb_passwd'});
	}
}

# useradmin_modify_user(&details)
# Update a samba user
sub useradmin_modify_user
{
&get_share("global");
if (&istrue("encrypt passwords") && $config{'smb_passwd'} &&
    $config{'sync_change'} && ($u = &get_user($_[0]->{'olduser'}))) {
	# Update details
	&lock_file($config{'smb_passwd'});
	$u->{'uid'} = $_[0]->{'uid'};
	$u->{'name'} = $_[0]->{'user'};
	if ($u->{'opts'}) {
		local @opts = grep { !/[ND]/ } @{$u->{'opts'}};
		push(@opts, "N") if ($_[0]->{'passmode'} == 0);
		push(@opts, "D") if ($_[0]->{'passmode'} == 1);
		$u->{'opts'} = \@opts;
		}
	else {
		$u->{'real'} = $_[0]->{'real'};
		$u->{'home'} = $_[0]->{'home'};
		$u->{'shell'} = $_[0]->{'shell'};
		}
	if ($_[0]->{'passmode'} == 0) {
		$u->{'pass1'} = "NO PASSWORDXXXXXXXXXXXXXXXXXXXXX";
		$u->{'pass2'} = ("X" x 32);
		}
	elsif ($_[0]->{'passmode'} == 1) {
		$u->{'pass1'} = $u->{'pass2'} = ("X" x 32);
		}
	&modify_user($u);
	if ($_[0]->{'passmode'} == 3) {
		&set_password($_[0]->{'user'}, $_[0]->{'plainpass'});
		}
	&unlock_file($config{'smb_passwd'});
	}
}

sub get_user
{
local @ulist = &list_users();
local $u;
foreach $u (@ulist) {
	return $u if ($u->{'name'} eq $_[0]);
	}
return undef;
}

1;

 07070100052232000081e40000000000000002000000013ac0388d0000071e000000200000000000000000000000000000001b00000003reloc/samba/view_users.cgi    #!/usr/local/bin/perl
# view_users.cgi
# Display users connected to a share

require './samba-lib.pl';
&ReadParse();

# check acls
%access = &get_module_acl();
&error_setup("<blink><font color=red>$text{'eacl_aviol'}</font></blink>");
if ($in{share}) { # this may be cracked very easy, don't know how to do better :    # per-share acls ...
    # per-share acls ...
	&error("$text{'eacl_np'} $text{'eacl_pconn'}") 
		unless &can('rv',\%access, $in{share});
	}
else {
	&error("$text{'eacl_np'} $text{'eacl_pconn_all'}") 
		unless $access{'view_all_con'};
	} 
&header($text{'viewu_index'}, "");
print "<hr>\n";

if ($in{share}) {
	print "<h3>",&text('viewu_list',"<i>$in{share}</i>"),"</h3>\n";
	@cons = &list_connections($in{'share'});
	}
else { @cons = &list_connections(); }
if (@cons) {
	print "<table border width=100%>\n";
	print "<tr $tb>\n";
	if (!$in{'share'}) { print "<td><b>$text{'viewu_share'}</b></td>\n"; }
	print "<td><b>$text{'viewu_user'}</b></td>\n";
	print "<td><b>$text{'viewu_group'}</b></td>\n";
	print "<td><b>$text{'viewu_from'}</b></td>\n";
	print "<td><b>$text{'viewu_time'}</b></td>\n";
	print "<td><b>$text{'viewu_pid'}</b></td> </tr>\n";
	foreach $c (@cons) {
		print "<tr $cb>\n";
		if (!$in{'share'}) { print "<td>$c->[0]</td>\n"; }
		print "<td>$c->[1]</td> <td>$c->[2]</td>\n";
		print "<td>$c->[4]</td> <td>$c->[5]</td>\n";
		print "<td><a href=\"kill_user.cgi?share=$in{'share'}&pid=$c->[3]\">$c->[3]</a></td>\n";
		print "</tr>\n";
		}
	print "</table><p>\n";
	print $text{'viewu_msg1'}, " <br>\n";
	}
else {
	print "<b>$text{'viewu_msg2'}</b>.\n";
	}
print "<p>\n";

print "<hr>\n";
if ($in{share}) {
	&footer($in{printer} ? "edit_pshare.cgi?share=$in{share}"
			     : "edit_fshare.cgi?share=$in{share}",
		$text{'index_shareconf'});
	}
else { &footer("", $text{'index_sharelist'}); }

  0707010005948d000041ed0000000000000001000000053ac03c7100000000000000200000000000000000000000000000000f00000003reloc/sendmail    0707010005948e000081a40000000000000002000000013ac0389c00001127000000200000000000000000000000000000001d00000003reloc/sendmail/access-lib.pl  # access-lib.pl
# Functions for the access_db table

# access_dbm(&config)
# Returns the filename and type of the access database, or undef if none
sub access_dbm
{
foreach $f (&find_type("K", $_[0])) {
        if ($f->{'value'} =~ /^access\s+(\S+)[^\/]+(\S+)$/) {
		return ($2, $1);
                }
	}
return undef;
}

# access_file(&config)
# Returns the filename of the text access file, or undef if none
sub access_file
{
return &find_textfile($config{'access_file'}, &access_dbm($_[0]));
}

# list_access(textfile)
sub list_access
{
local($lnum, @rv);
$lnum = 0;
open(ACC, $_[0]);
while(<ACC>) {
	s/\r|\n//g;     # remove newlines
	s/#.*$//g;	# remove comments
	if (/^(\S+)\s+(.*)/) {
		local(%acc);
		$acc{'from'} = $1;
		$acc{'action'} = $2;
		$acc{'line'} = $lnum;
		$acc{'num'} = scalar(@rv);
		push(@rv, \%acc);
		}
	$lnum++;
	}
close(ACC);
return @rv;
}

# create_access(&details, textfile, dbmfile, dbmtype)
# Create a new access database entry
sub create_access
{
local(%acc);
open(ACC, ">> $_[1]");
print ACC "$_[0]->{'from'}\t$_[0]->{'action'}\n";
close(ACC);
if ($_[3] eq "dbm") {
	dbmopen(%acc, $_[2], 0644);
	$acc{$_[0]->{'from'}} = $_[0]->{'action'};
	dbmclose(%acc);
	}
else { &run_makemap($_[1], $_[2], $_[3]); }
}

# delete_access(&details, textfile, dbmfile, dbmtype)
# Delete an existing access entry
sub delete_access
{
local(@acc, %acc);
open(ACC, $_[1]);
@acc = <ACC>;
close(ACC);
splice(@acc, $_[0]->{'line'}, 1);
open(ACC, "> $_[1]");
print ACC @acc;
close(ACC);
if ($_[3] eq "dbm") {
	dbmopen(%acc, $_[2], 0644);
	delete($acc{$_[0]->{'from'}});
	dbmclose(%acc);
	}
else { &run_makemap($_[1], $_[2], $_[3]); }
}

# modify_access(&old, &details, textfile, dbmfile, dbmtype)
# Change an existing access entry
sub modify_access
{
local(@acc, %acc);
open(ACC, $_[2]);
@acc = <ACC>;
close(ACC);
splice(@acc, $_[0]->{'line'}, 1, "$_[1]->{'from'}\t$_[1]->{'action'}\n");
open(ACC, "> $_[2]");
print ACC @acc;
close(ACC);
if ($_[4] eq "dbm") {
	dbmopen(%acc, $_[3], 0644);
	delete($acc{$_[0]->{'from'}});
	$acc{$_[1]->{'from'}} = $_[1]->{'action'};
	dbmclose(%acc);
	}
else { &run_makemap($_[2], $_[3], $_[4]); }
}

# access_form([&details])
sub access_form
{
local($v, $mode, $addr);
$v = $_[0];
print "<form action=save_access.cgi>\n";
if ($_[0]) { print "<input type=hidden name=num value=$v->{'num'}>\n"; }
else { print "<input type=hidden name=new value=1>\n"; }
print "<table border>\n";
print "<tr $tb> <td><b>",$v ? $text{'sform_edit'} : $text{'sform_create'},
      "</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

local $src = $v->{'from'} =~ /^\S+\@\S+$/ ? 0 :
	     $v->{'from'} =~ /^[0-9\.]+$/ ? 1 :
	     $v->{'from'} =~ /^\S+\@$/ ? 2 :
	     $v->{'from'} =~ /^[A-z0-9\-\.]+$/ ? 3 : 0;
print "<tr> <td><b>$text{'sform_source'}</b></td>\n";
print "<td colspan=2><select name=from_type>\n";
for($i=0; $i<4; $i++) {
	printf "<option value=$i %s>%s\n",
		$i == $src ? "selected" : "", $text{"sform_type$i"};
	}
print "</select>\n";
$v->{'from'} =~ s/\@$//g if ($src == 2);
print "<input name=from size=25 value=\"$v->{'from'}\"></td> </tr>\n";

print "<tr> <td><b>$text{'action'}</b></td>\n";
printf "<td><input type=radio name=action value=OK %s> $text{'sform_ok'}</td>\n", $v->{'action'} eq "OK" || !$v->{'action'} ? "checked" : "";
printf "<td><input type=radio name=action value=RELAY %s> $text{'sform_relay'}</td> </tr>\n", $v->{'action'} eq "RELAY" ? "checked" : "";
print "<tr> <td></td>\n";
printf "<td><input type=radio name=action value=REJECT %s> $text{'sform_reject'}</td>\n", $v->{'action'} eq "REJECT" ? "checked" : "";
printf "<td><input type=radio name=action value=DISCARD %s> $text{'sform_discard'}</td> </tr>\n", $v->{'action'} eq "DISCARD" ? "checked" : "";
if ($v->{'action'} =~ /(\d+)\s*(.*)$/) { $err = $1; $msg = $2; }
print "<tr> <td></td>\n";
printf "<td colspan=2><input type=radio name=action value=0 %s> $text{'sform_err'}\n",
	$err ? "checked" : "";
print "<input name=err size=4 value=\"$err\"> $text{'sform_msg'}\n";
print "<input name=msg size=20 value=\"$msg\"></td> </tr>\n";

print "<tr> <td colspan=3 align=right>\n";
if ($_[0]) {
        print "<input type=submit value='$text{'save'}'>\n";
        print "<input type=submit name=delete value='$text{'delete'}'>\n";
        }
else { print "<input type=submit value='$text{'create'}'>\n"; }
print "</td> </tr>\n";
print "</table></td></tr></table></form>\n";
}

1;

 0707010005948f000081a40000000000000002000000013ac0389c000029c5000000200000000000000000000000000000001f00000003reloc/sendmail/acl_security.pl    
require './sendmail-lib.pl';

# acl_security_form(&options)
# Output HTML for editing security options for the sendmail module
sub acl_security_form
{
print "<tr> <td><b>$text{'acl_opts'}</b></td> <td>\n";
printf "<input type=radio name=opts value=1 %s> $text{'yes'}\n",
	$_[0]->{'opts'} ? "checked" : "";
printf "<input type=radio name=opts value=0 %s> $text{'no'}</td>\n",
	$_[0]->{'opts'} ? "" : "checked";

print "<td><b>$text{'acl_cws'}</b></td> <td>\n";
printf "<input type=radio name=cws value=1 %s> $text{'yes'}\n",
	$_[0]->{'cws'} ? "checked" : "";
printf "<input type=radio name=cws value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'cws'} ? "" : "checked";

print "<tr> <td><b>$text{'acl_masq'}</b></td> <td>\n";
printf "<input type=radio name=masq value=1 %s> $text{'yes'}\n",
	$_[0]->{'masq'} ? "checked" : "";
printf "<input type=radio name=masq value=0 %s> $text{'no'}</td>\n",
	$_[0]->{'masq'} ? "" : "checked";

print "<td><b>$text{'acl_trusts'}</b></td> <td>\n";
printf "<input type=radio name=trusts value=1 %s> $text{'yes'}\n",
	$_[0]->{'trusts'} ? "checked" : "";
printf "<input type=radio name=trusts value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'trusts'} ? "" : "checked";

print "<tr> <td><b>$text{'acl_cgs'}</b></td> <td>\n";
printf "<input type=radio name=cgs value=1 %s> $text{'yes'}\n",
	$_[0]->{'cgs'} ? "checked" : "";
printf "<input type=radio name=cgs value=0 %s> $text{'no'}</td>\n",
	$_[0]->{'cgs'} ? "" : "checked";

print "<td><b>$text{'acl_relay'}</b></td> <td>\n";
printf "<input type=radio name=relay value=1 %s> $text{'yes'}\n",
	$_[0]->{'relay'} ? "checked" : "";
printf "<input type=radio name=relay value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'relay'} ? "" : "checked";

print "<tr> <td><b>$text{'acl_mailers'}</b></td> <td>\n";
printf "<input type=radio name=mailers value=1 %s> $text{'yes'}\n",
	$_[0]->{'mailers'} ? "checked" : "";
printf "<input type=radio name=mailers value=0 %s> $text{'no'}</td>\n",
	$_[0]->{'mailers'} ? "" : "checked";

print "<td><b>$text{'acl_access'}</b></td> <td>\n";
printf "<input type=radio name=access value=1 %s> $text{'yes'}\n",
	$_[0]->{'access'} ? "checked" : "";
printf "<input type=radio name=access value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'access'} ? "" : "checked";

print "<tr> <td><b>$text{'acl_domains'}</b></td> <td>\n";
printf "<input type=radio name=domains value=1 %s> $text{'yes'}\n",
	$_[0]->{'domains'} ? "checked" : "";
printf "<input type=radio name=domains value=0 %s> $text{'no'}</td>\n",
	$_[0]->{'domains'} ? "" : "checked";

print "<td><b>$text{'acl_stop'}</b></td> <td>\n";
printf "<input type=radio name=stop value=1 %s> $text{'yes'}\n",
	$_[0]->{'stop'} ? "checked" : "";
printf "<input type=radio name=stop value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'stop'} ? "" : "checked";

print "<tr> <td><b>$text{'acl_mailq'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=mailq value=2 %s> $text{'acl_viewdel'}\n",
	$_[0]->{'mailq'} == 2 ? "checked" : "";
printf "<input type=radio name=mailq value=1 %s> $text{'acl_view'}\n",
	$_[0]->{'mailq'} == 1 ? "checked" : "";
printf "<input type=radio name=mailq value=0 %s> $text{'no'}</td> </tr>\n",
	$_[0]->{'mailq'} == 0 ? "checked" : "";

print "<tr> <td colspan=4><hr></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'acl_virtusers'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=vmode value=0 %s> $text{'acl_none'}\n",
	$_[0]->{'vmode'} == 0 ? "checked" : "";
printf "<input type=radio name=vmode value=1 %s> $text{'acl_all'}<br>\n",
	$_[0]->{'vmode'} == 1 ? "checked" : "";
printf "<input type=radio name=vmode value=2 %s> $text{'acl_matching'}\n",
	$_[0]->{'vmode'} == 2 ? "checked" : "";
printf "<input name=vaddrs size=40 value='%s'></td> </tr>\n",
	$_[0]->{'vaddrs'};

print "<tr> <td><b>$text{'acl_vtypes'}</b></td>\n";
print "<td colspan=3>\n";
for($n=0; $n<3; $n++) {
	printf "<input type=checkbox name=vedit_%s value=1 %s> %s\n",
		$n, $_[0]->{"vedit_$n"} ? "checked" : "", $text{"acl_vtype$n"};
	}
print "</td> </tr>\n";

print "<tr> <td><b>$text{'acl_vmax'}</b></td>\n";
printf "<td colspan=3><input type=radio name=vmax_def value=1 %s> %s\n",
	$_[0]->{'vmax'} ? "" : "checked", $text{'acl_unlimited'};
printf "<input type=radio name=vmax_def value=0 %s>\n",
	$_[0]->{'vmax'} ? "checked" : "";
printf "<input name=vmax size=5 value='%s'></td> </tr>\n",
	$_[0]->{'vmax'};

print "<tr> <td colspan=4><hr></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'acl_aliases'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=amode value=0 %s> $text{'acl_none'}\n",
	$_[0]->{'amode'} == 0 ? "checked" : "";
printf "<input type=radio name=amode value=1 %s> $text{'acl_all'}<br>\n",
	$_[0]->{'amode'} == 1 ? "checked" : "";
printf "<input type=radio name=amode value=2 %s> $text{'acl_matching'}\n",
	$_[0]->{'amode'} == 2 ? "checked" : "";
printf "<input name=aliases size=40 value='%s'></td> </tr>\n",
	$_[0]->{'aliases'};

print "<tr> <td><b>$text{'acl_atypes'}</b></td> <td colspan=3>\n";
for($n=1; $n<6; $n++) {
	printf "<input type=checkbox name=aedit_%s value=1 %s> %s\n",
		$n, $_[0]->{"aedit_$n"} ? "checked" : "",
		$text{"acl_atype$n"};
	}
print "</td> </tr>\n";

print "<tr> <td><b>$text{'acl_amax'}</b></td>\n";
printf "<td colspan=3><input type=radio name=amax_def value=1 %s> %s\n",
	$_[0]->{'amax'} ? "" : "checked", $text{'acl_unlimited'};
printf "<input type=radio name=amax_def value=0 %s>\n",
	$_[0]->{'amax'} ? "checked" : "";
printf "<input name=amax size=5 value='%s'></td> </tr>\n",
	$_[0]->{'amax'};

print "<tr> <td><b>$text{'acl_apath'}</b></td>\n";
printf "<td colspan=3><input name=apath size=40 value='%s'> %s</td> </tr>\n",
	$_[0]->{'apath'}, &file_chooser_button("apath", 1);

print "<tr> <td colspan=4><hr></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'acl_outgoing'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=omode value=0 %s> $text{'acl_none'}\n",
	$_[0]->{'omode'} == 0 ? "checked" : "";
printf "<input type=radio name=omode value=1 %s> $text{'acl_all'}<br>\n",
	$_[0]->{'omode'} == 1 ? "checked" : "";
printf "<input type=radio name=omode value=2 %s> $text{'acl_matching'}\n",
	$_[0]->{'omode'} == 2 ? "checked" : "";
printf "<input name=oaddrs size=40 value='%s'></td> </tr>\n",
	$_[0]->{'oaddrs'};

print "<tr> <td colspan=4><hr></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'acl_read'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=mmode value=0 %s> $text{'acl_none'}\n",
	$_[0]->{'mmode'} == 0 ? "checked" : "";
printf "<input type=radio name=mmode value=4 %s> $text{'acl_same'}\n",
	$_[0]->{'mmode'} == 4 ? "checked" : "";
printf "<input type=radio name=mmode value=1 %s> $text{'acl_all'}<br>\n",
	$_[0]->{'mmode'} == 1 ? "checked" : "";
printf "<input type=radio name=mmode value=2 %s> $text{'acl_users'}\n",
	$_[0]->{'mmode'} == 2 ? "checked" : "";
printf "<input name=musers size=40 value='%s'> %s<br>\n",
	$_[0]->{'mmode'} == 2 ? $_[0]->{'musers'} : "",
	&user_chooser_button("musers", 1);
printf "<input type=radio name=mmode value=3 %s> $text{'acl_userse'}\n",
	$_[0]->{'mmode'} == 3 ? "checked" : "";
printf "<input name=muserse size=40 value='%s'> %s<br>\n",
	$_[0]->{'mmode'} == 3 ? $_[0]->{'musers'} : "",
	&user_chooser_button("muserse", 1);
printf "<input type=radio name=mmode value=5 %s> $text{'acl_usersg'}\n",
	$_[0]->{'mmode'} == 5 ? "checked" : "";
printf "<input name=musersg size=8 value='%s'> %s</td> </tr>\n",
	$_[0]->{'mmode'} == 5 ? scalar(getgrgid($_[0]->{'musers'})) : "",
	&group_chooser_button("musersg");

print "<tr> <td valign=top><b>$text{'acl_from'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=fmode value=0 %s> $text{'acl_any'}<br>\n",
	$_[0]->{'fmode'} == 0 ? "checked" : "";
printf "<input type=radio name=fmode value=1 %s> $text{'acl_fdoms'}\n",
	$_[0]->{'fmode'} == 1 ? "checked" : "";
printf "<input name=fdoms size=40 value='%s'><br>\n",
	$_[0]->{'fmode'} == 1 ? $_[0]->{'from'} : '';
printf "<input type=radio name=fmode value=2 %s> $text{'acl_faddrs'}\n",
	$_[0]->{'fmode'} == 2 ? "checked" : "";
printf "<input name=faddrs size=40 value='%s'><br>\n",
	$_[0]->{'fmode'} == 2 ? $_[0]->{'from'} : '';
printf "<input type=radio name=fmode value=3 %s> $text{'acl_fdom'}\n",
	$_[0]->{'fmode'} == 3 ? "checked" : "";
printf "<input name=fdom size=20 value='%s'><br>\n",
	$_[0]->{'fmode'} == 3 ? $_[0]->{'from'} : '';
print "</td> </tr>\n";

print "<tr> <td><b>$text{'acl_attach'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=attach_def value=1 %s> %s\n",
	$_[0]->{'attach'}<0 ? 'checked' : '', $text{'acl_unlimited'};
printf "<input type=radio name=attach_def value=0 %s>\n",
	$_[0]->{'attach'}<0 ? '' : 'checked';
printf "<input name=attach size=5 value='%s'> kB\n",
	$_[0]->{'attach'}<0 ? '' : $_[0]->{'attach'};
print "</td> </tr>\n";

print "<tr> <td><b>$text{'acl_sent'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=sent_def value=1 %s> %s\n",
	$_[0]->{'sent'} ? '' : 'checked', $text{'acl_none'};
printf "<input type=radio name=sent_def value=0 %s>\n",
	$_[0]->{'sent'} ? 'checked' : '';
printf "<input name=sent size=13 value='%s'> %s</td> </tr>\n",
	$_[0]->{'sent'}, &user_chooser_button("sent");
}

# acl_security_save(&options)
# Parse the form for security options for the sendmail module
sub acl_security_save
{
$_[0]->{'opts'} = $in{'opts'};
$_[0]->{'cws'} = $in{'cws'};
$_[0]->{'masq'} = $in{'masq'};
$_[0]->{'trusts'} = $in{'trusts'};
$_[0]->{'cgs'} = $in{'cgs'};
$_[0]->{'relay'} = $in{'relay'};
$_[0]->{'mailq'} = $in{'mailq'};
$_[0]->{'mailers'} = $in{'mailers'};
$_[0]->{'access'} = $in{'access'};
$_[0]->{'domains'} = $in{'domains'};
$_[0]->{'stop'} = $in{'stop'};
$_[0]->{'vmode'} = $in{'vmode'};
$_[0]->{'vaddrs'} = $in{'vmode'} == 2 ? $in{'vaddrs'} : "";
$_[0]->{'vmax'} = $in{'vmax_def'} ? undef : $in{'vmax'};
foreach $i (0..2) {
	$_[0]->{"vedit_$i"} = $in{"vedit_$i"};
	}
$_[0]->{'amode'} = $in{'amode'};
$_[0]->{'aliases'} = $in{'amode'} == 2 ? $in{'aliases'} : "";
$_[0]->{'amax'} = $in{'amax_def'} ? undef : $in{'amax'};
$_[0]->{'apath'} = $in{'apath'};
foreach $i (1..5) {
	$_[0]->{"aedit_$i"} = $in{"aedit_$i"};
	}
$_[0]->{'omode'} = $in{'omode'};
$_[0]->{'oaddrs'} = $in{'omode'} == 2 ? $in{'oaddrs'} : "";
$_[0]->{'mmode'} = $in{'mmode'};
$_[0]->{'musers'} = $in{'mmode'} == 2 ? $in{'musers'} :
		    $in{'mmode'} == 3 ? $in{'muserse'} :
		    $in{'mmode'} == 5 ? scalar(getgrnam($in{'musersg'})) : "";
$_[0]->{'fmode'} = $in{'fmode'};
$_[0]->{'from'} = $in{'fmode'} == 0 ? undef :
		  $in{'fmode'} == 1 ? $in{'fdoms'} :
		  $in{'fmode'} == 2 ? $in{'faddrs'} : $in{'fdom'};
$_[0]->{'attach'} = $in{'attach_def'} ? -1 : $in{'attach'};
$_[0]->{'sent'} = $in{'sent_def'} ? '' : $in{'sent'};
}

   07070100059490000081a40000000000000002000000013ac0389c00001651000000200000000000000000000000000000001e00000003reloc/sendmail/aliases-lib.pl # aliases-lib.pl
# Alias file functions

# aliases_file(&config)
# Returns the alias filenames
sub aliases_file
{
if ($config{'alias_file'}) { return [ $config{'alias_file'} ]; }
else {
	local(@afiles, $o);
	foreach $o (&find_type("O", $_[0])) {
		if ($o->{'value'} =~ /^\s*AliasFile=(.*)$/) {
			push(@afiles, split(/,/, $1));
			}
		}
	map { s/dbm:// } @afiles;
	return \@afiles;
	}
}

# list_aliases(files)
# Returns an array of data structures, each containing information about
# one sendmail alias
sub list_aliases
{
local($lnum, @rv, $file, $lalias);
local @skip = split(/\s+/, $config{'alias_skip'});
foreach $file (@{$_[0]}) {
	$lnum = 0;
	open(AFILE, $file);
	while(<AFILE>) {
		s/\r|\n//g;	# remove newlines
		if (/^(#*)\s*([^:$ ]+)\s*:\s*(.*)$/) {
			local(%alias, @values, $v);
			$alias{'eline'} = $alias{'line'} = $lnum;
			$alias{'file'} = $file;
			$alias{'enabled'} = $1 ? 0 : 1;
			$alias{'name'} = $2;
			$v = $alias{'value'} = $3;
			while($v =~ /^\s*,?\s*()"([^"]+)"(.*)$/ ||
			      $v =~ /^\s*,?\s*(\|)"([^"]+)"(.*)$/ ||
			      $v =~ /^\s*,?\s*()([^,\s]+)(.*)$/) {
				push(@values, $1.$2); $v = $3;
				}
			$alias{'values'} = \@values;
			$alias{'num'} = scalar(@rv);
			if (&indexof($alias{'name'}, @skip) < 0) {
				push(@rv, \%alias);
				$lalias = \%alias;
				}
			}
		elsif (/^(#*)\s+(\S.*)$/ && $lalias &&
		       ($1 && !$lalias->{'enabled'} ||
			!$1 && $lalias->{'enabled'})) {
			# continuation of last alias
			$lalias->{'eline'} = $lnum;
			local $v = $2;
			$lalias->{'value'} .= $v;
			while($v =~ /^\s*,?\s*()"([^"]+)"(.*)$/ ||
			      $v =~ /^\s*,?\s*(\|)"([^"]+)"(.*)$/ ||
			      $v =~ /^\s*,?\s*()([^,\s]+)(.*)$/) {
				push(@{$lalias->{'values'}}, $1.$2); $v = $3;
				}
			}
		else { $lalias = undef; }
		$lnum++;
		}
	close(AFILE);
	}
return @rv;
}

# alias_form([alias])
# Display a form for editing or creating an alias. Each alias can map to
# 1 or more programs, files, lists or users
sub alias_form
{
local($a, @values, $v, $type, $val, @typenames);
$a = $_[0];
if ($a) { @values = @{$a->{'values'}}; }
@typenames = map { $text{"aform_type$_"} } (0 .. 5);
$typenames[0] = "&lt;$typenames[0]&gt;";

print "<form method=post action=save_alias.cgi>\n";
if ($a) { print "<input type=hidden name=num value=$a->{'num'}>\n"; }
else { print "<input type=hidden name=new value=1>\n"; }
print "<table border>\n";
print "<tr $tb> <td><b>",$a ? $text{'aform_edit'}
			    : $text{'aform_create'},"</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";
print "<tr> <td>",&hlink("<b>$text{'aform_name'}</b>","alias_name"),"</td>\n";
printf "<td><input name=name size=20 value=\"%s\"></td> </tr>\n",
	$a ? $a->{'name'} : "";
print "<tr> <td>",&hlink("<b>$text{'aform_enabled'}</b>",
			 "alias_enabled"),"</td>\n";
printf "<td><input type=radio name=enabled value=1 %s> $text{'yes'}\n",
	!$a || $a->{'enabled'} ? "checked" : "";
printf "<input type=radio name=enabled value=0 %s> $text{'no'}</td> </tr>\n",
	!$a || $a->{'enabled'} ? "" : "checked";
for($i=0; $i<=@values; $i++) {
	($type, $val) = $values[$i] ? &alias_type($values[$i]) : (0, "");
	print "<tr> <td valign=top>",
	      &hlink("<b>$text{'aform_val'}</b>","alias_to"),"</td>\n";
	print "<td><select name=type_$i>\n";
	for($j=0; $j<@typenames; $j++) {
		if (!$j || $access{"aedit_$j"}) {
			printf "<option value=$j %s>$typenames[$j]\n",
				$type == $j ? "selected" : "";
			}
		}
	print "</select>\n";
	print "<input name=val_$i size=30 value=\"$val\">\n";
	if ($type == 2 && $a) {
		print "<a href='edit_afile.cgi?file=$val&num=$a->{'num'}'>",
		      "$text{'aform_afile'}</a>\n";
		}
	elsif ($type == 5 && $a) {
		print "<a href='edit_rfile.cgi?file=$val&num=$a->{'num'}'>",
		      "$text{'aform_afile'}</a>\n";
		}
	print "</td> </tr>\n";
	}
print "<tr> <td colspan=2 align=right>\n";
if ($a) {
	print "<input type=submit value=$text{'save'}>\n";
	print "<input type=submit name=delete value=$text{'delete'}>\n";
	}
else { print "<input type=submit value=$text{'create'}>\n"; }
print "</td> </tr>\n";
print "</table></td></tr></table></form>\n";
}

# create_alias(&details, files, [norebuild])
# Create a new alias
sub create_alias
{
local(%aliases);
open(AFILE, ">>".$_[1]->[0]);
print AFILE $_[0]->{'enabled'} ? "" : "# ", $_[0]->{'name'}, ": ",
	    join(',', map { /\s/ ? "\"$_\"" : $_ } @{$_[0]->{'values'}}),"\n";
close(AFILE);
&system_logged("newaliases >/dev/null 2>&1") if (!$_[2]);
}

# delete_alias(&details)
sub delete_alias
{
local $lref = &read_file_lines($_[0]->{'file'});
local $len = $_[0]->{'eline'} - $_[0]->{'line'} + 1;
splice(@$lref, $_[0]->{'line'}, $len);
&flush_file_lines();
&system_logged("newaliases >/dev/null 2>&1");
}

# modify_alias(&old, &details)
# Update some existing alias
sub modify_alias
{
local $str = ($_[1]->{'enabled'} ? "" : "# ") . $_[1]->{'name'} . ": " .
	     join(',', map { /\s/ ? "\"$_\"" : $_ } @{$_[1]->{'values'}});
local $lref = &read_file_lines($_[0]->{'file'});
local $len = $_[0]->{'eline'} - $_[0]->{'line'} + 1;
splice(@$lref, $_[0]->{'line'}, $len, $str);
&flush_file_lines();
&system_logged("newaliases >/dev/null 2>&1");
}

# alias_type(string)
# Return the type and destination of some alias string
sub alias_type
{
local @rv;
if ($_[0] =~ /^\|$module_config_directory\/autoreply.pl\s+(\S+)/) {
	@rv = (5, $1);
	}
elsif ($_[0] =~ /^\|(.*)$/) {
	@rv = (4, $1);
	}
elsif ($_[0] =~ /^(\/.*)$/) {
	@rv = (3, $1);
	}
elsif ($_[0] =~ /^:include:(.*)$/) {
	@rv = (2, $1);
	}
else {
	@rv = (1, $_[0]);
	}
return wantarray ? @rv : $rv[0];
}

# lock_alias_files(&files)
sub lock_alias_files
{
foreach $f (@{$_[0]}) {
	&lock_file($f);
	}
}

# unlock_alias_files(&files)
sub unlock_alias_files
{
foreach $f (@{$_[0]}) {
	&unlock_file($f);
	}
}

1;

   07070100059491000081e40000000000000002000000013ac0389d000006c2000000200000000000000000000000000000001c00000003reloc/sendmail/autoreply.pl   #!/usr/local/bin/perl
# autoreply.pl
# Simple autoreply script

# read sendmail module config
$p = -l $0 ? readlink($0) : $0;
$p =~ /^(.*)\/[^\/]+$/;
open(CONF, "$1/config");
while(<CONF>) {
	if (/^(\S+)=(.*)/) {
		$config{$1} = $2;
		}
	}
close(CONF);

# read headers and body
while(<STDIN>) {
	s/\r|\n//g;
	if (/^(\S+):\s+(.*)/) {
		$header{lc($1)} = $2;
		}
	elsif (!$_) { last; }
	}
while(<STDIN>) {
	$body .= $_;
	}
if ($header{'from'} =~ /mailer-daemon/i) {
	print STDERR "Cancelling autoreply to bounced email\n";
	exit 1;
	}
if ($header{'x-webmin-autoreply'}) {
	print STDERR "Cancelling autoreply to an autoreply\n";
	exit 1;
	}

# work out the correct to address
@to = split(/\s*,\s*/, $header{'to'});
$to = $to[0];
foreach $t (@to) {
	if ($t =~ /([^<>\s,'"\@]+)\@([A-z0-9\-\.\!]+)/ && $1 eq $ARGV[1]) {
		$to = $t;
		}
	}

# build list of default reply headers
$rheader{'From'} = $to;
$rheader{'To'} = $header{'reply-to'} ? $header{'reply-to'}
				     : $header{'from'};
$rheader{'Subject'} = "Autoreply to $header{'subject'}";
$rheader{'X-Webmin-Autoreply'} = 1;
$rheader{'X-Originally-To'} = $header{'to'};

# read the autoreply file
if (open(AUTO, $ARGV[0])) {
	while(<AUTO>) {
		s/\$SUBJECT/$header{'subject'}/g;
		s/\$FROM/$header{'from'}/g;
		s/\$TO/$to/g;
		s/\$DATE/$header{'date'}/g;
		s/\$BODY/$body/g;
		if (/^(\S+):\s*(.*)/ && !$doneheaders) {
			$rheader{$1} = $2;
			}
		else {
			$rbody .= $_;
			$doneheaders = 1;
			}
		}
	close(AUTO);
	}
else {
	$body = "Autoreply file $ARGV[0] does not exist!\n";
	}

# run sendmail and feed it the reply
open(MAIL, "|$config{'sendmail_path'} -t");
foreach $h (keys %rheader) {
	print MAIL "$h: $rheader{$h}\n";
	}
print MAIL "\n";
print MAIL $rbody;
close(MAIL);

  07070100059492000081a40000000000000002000000013ac0389c0000456a000000200000000000000000000000000000001c00000003reloc/sendmail/boxes-lib.pl   # boxes-lib.pl
# Functions to parsing user mail files

use POSIX;

# list_mails(user, [start], [end])
sub list_mails
{
local (@rv, $h, $done);
local @index = &build_index($_[0]);
local ($start, $end);
if (@_ == 1) {
	$start = 0; $end = @index-1;
	}
elsif ($_[2] < 0) {
	$start = @index+$_[2]-1; $end = @index+$_[1]-1;
	$start = $start<0 ? 0 : $start;
	}
else {
	$start = $_[1]; $end = $_[2];
	$end = @index-1 if ($end >= @index);
	}
@rv = map { undef } @index;
open(MAIL, &user_mail_file($_[0]));
for($i=$start; $i<=$end; $i++) {
	local ($mail, $line, @headers);
	seek(MAIL, $index[$i]->[0], 0);

	# read RFC822 headers
	$mail->{'line'} = $index[$i]->[1];
	local $lnum = 0;
	while(1) {
		$lnum++;
		($line = <MAIL>) =~ s/\r|\n//g;
		$mail->{'size'} += length($line);
		last if ($line =~ /^$/);
		if ($line =~ /^(\S+):\s*(.*)/) {
			push(@headers, [ $1, $2 ]);
			}
		elsif ($line =~ /^(\s+.*)/) {
			$headers[$#headers]->[1] .= $1 unless($#headers < 0);
			}
		}
	$mail->{'headers'} = \@headers;
	foreach $h (@headers) {
		$mail->{'header'}->{lc($h->[0])} = $h->[1];
		}

	# read the mail body
	while(1) {
		$line = <MAIL>;
		last if (!$line || $line =~ /^From\s+.*\d+\n/);
		$lnum++;
		$mail->{'size'} += length($line);
		$mail->{'body'} .= $line;
		}
	$mail->{'eline'} = $mail->{'line'} + $lnum - 1;
	$mail->{'idx'} = $i;
	$rv[$i] = $mail;
	}
return @rv;
}

# search_mail(user, field, match)
# Returns an array of messages matching some search
sub search_mail
{
local @index = &build_index($_[0]);
local (@rv, $i);
open(MAIL, &user_mail_file($_[0]));
for($i=@index-1; $i>=0; $i--) {
	local ($mail, $line, @headers);
	seek(MAIL, $index[$i]->[0], 0);

	# read mail headers
	$mail->{'line'} = $index[$i]->[1];
	local $lnum = 0;
	while(1) {
		$lnum++;
		($line = <MAIL>) =~ s/\r|\n//g;
		$mail->{'size'} += length($line);
		last if ($line =~ /^$/);
		if ($line =~ /^(\S+):\s*(.*)/) {
			push(@headers, [ $1, $2 ]);
			}
		elsif ($line =~ /^(\s+.*)/) {
			$headers[$#headers]->[1] .= $1;
			}
		}
	$mail->{'headers'} = \@headers;
	foreach $h (@headers) {
		$mail->{'header'}->{lc($h->[0])} = $h->[1];
		}

	# read mail body
	while(1) {
		$line = <MAIL>;
		last if (!$line || $line =~ /^From\s+.*\d+\n/);
		$lnum++;
		$mail->{'size'} += length($line);
		$mail->{'body'} .= $line;
		}
	$mail->{'eline'} = $mail->{'line'} + $lnum - 1;
	$mail->{'idx'} = $i;
	if ($_[1] eq 'body') {
		push(@rv, $mail) if ($mail->{'body'} =~ /$_[2]/i);
		}
	elsif ($_[1] eq 'size') {
		push(@rv, $mail) if ($mail->{'size'} > $_[2]);
		}
	else {
		push(@rv, $mail) if ($mail->{'header'}->{$_[1]} =~ /$_[2]/i);
		}
	}
return @rv;

}

# build_index(user)
sub build_index
{
local @index;
local @ist = stat("$module_config_directory/$_[0].index");
local @st = stat(&user_mail_file($_[0]));

if (open(INDEX, "$module_config_directory/$_[0].index")) {
	@index = map { /(\d+)\s+(\d+)/; [ $1, $2 ] } <INDEX>;
	close(INDEX);
	}

if (!@ist || !@st || $ist[9] < $st[9]) {
	# The mail file is newer than the index
	local $fromok = 1;
	local ($l, $ll);
	if (open(MAIL, &user_mail_file($_[0]))) {
		local $il = $#index;
		local $i;
		for($i=($il>100 ? 100 : $il); $i>=0; $i--) {
			$l = $index[$il-$i];
			seek(MAIL, $index[$il-$i]->[0], 0);
			$ll = <MAIL>;
			$fromok = 0 if ($ll !~ /^From\s+.*\d+\n/);
			}
		}
	else { $fromok = 0; }
	local ($pos, $lnum);
	if (scalar(@index) && $fromok && $st[7] > $l->[0]) {
		# Mail file seems to have gotten bigger, most likely
		# because new mail has arrived ... only reindex the new mails
		$pos = $l->[0] + length($ll);
		$lnum = $l->[1] + 1;
		}
	else {
		# Mail file has changed in some other way ... do a rebuild
		$pos = 0;
		$lnum = 0;
		undef(@index);
		seek(MAIL, 0, 0);
		}
	while(<MAIL>) {
		if (/^From\s+.*\d+\n/) {
			push(@index, [ $pos, $lnum ]);
			}
		$pos += length($_);
		$lnum++;
		}
	close(MAIL);
	open(INDEX, ">$module_config_directory/$_[0].index");
	print INDEX map { $_->[0]." ".$_->[1]."\n" } @index;
	close(INDEX);
	}
return @index;
}

# parse_mail(&mail)
# Extracts the attachments from the mail body
sub parse_mail
{
local $ct = $_[0]->{'header'}->{'content-type'};
local (@attach, $h, $a);
if ($ct =~ /multipart\/(\S+)/i && ($ct =~ /boundary="([^"]+)"/i ||
				   $ct =~ /boundary=([^;\s]+)/i)) {
	# Multipart MIME message
	local $bound = "--".$1;
	local @lines = split(/\n/, $_[0]->{'body'});
	local $l;
	local $max = @lines;
	while($l < $max && $lines[$l++] ne $bound) {
		# skip to first boundary
		}
	while(1) {
		# read attachment headers
		local (@headers, $attach);
		while($lines[$l]) {
			if ($lines[$l] =~ /^(\S+):\s*(.*)/) {
				push(@headers, [ $1, $2 ]);
				}
			elsif ($lines[$l] =~ /^(\s+.*)/) {
				$headers[$#headers]->[1] .= $1;
				}
			$l++;
			}
		$l++;
		$attach->{'headers'} = \@headers;
		foreach $h (@headers) {
			$attach->{'header'}->{lc($h->[0])} = $h->[1];
			}
		if ($attach->{'header'}->{'content-type'} =~ /^([^;]+)/) {
			$attach->{'type'} = lc($1);
			}
		else {
			$attach->{'type'} = 'text/plain';
			}
		if ($attach->{'header'}->{'content-disposition'} =~
		    /filename="([^"]+)"/i) {
			$attach->{'filename'} = $1;
			}
		elsif ($attach->{'header'}->{'content-disposition'} =~
		       /filename=([^;\s]+)/i) {
			$attach->{'filename'} = $1;
			}
		elsif ($attach->{'header'}->{'content-type'} =~
		    /name="([^"]+)"/i) {
			$attach->{'filename'} = $1;
			}

		# read the attachment body
		while($l < $max && $lines[$l] !~ /^$bound(--)?$/) {
			$attach->{'data'} .= $lines[$l]."\n";
			$l++;
			}

		# decode if necessary
		if (lc($attach->{'header'}->{'content-transfer-encoding'}) eq
		    'base64') {
			$attach->{'data'} = &b64decode($attach->{'data'});
			}
		elsif (lc($attach->{'header'}->{'content-transfer-encoding'}) eq
		       'x-uue') {
			$attach->{'data'} = &uudecode($attach->{'data'});
			}
		elsif (lc($attach->{'header'}->{'content-transfer-encoding'}) eq
		       'quoted-printable') {
			$attach->{'data'} = &quoted_decode($attach->{'data'});
			}

		$attach->{'idx'} = scalar(@attach);
		push(@attach, $attach) if (@headers || $attach->{'data'});
		if ($attach->{'type'} eq 'message/rfc822') {
			# Decode this included email as well
			local ($amail, @aheaders, $i);
			local @alines = split(/\n/, $attach->{'data'});
			while($i < @alines && $alines[$i]) {
				if ($alines[$i] =~ /^(\S+):\s*(.*)/) {
					push(@aheaders, [ $1, $2 ]);
					}
				elsif ($alines[$i] =~ /^(\s+.*)/) {
					$aheaders[$#aheaders]->[1] .= $1;
					}
				$i++;
				}
			$amail->{'headers'} = \@aheaders;
			foreach $h (@aheaders) {
				$amail->{'header'}->{lc($h->[0])} = $h->[1];
				}
			splice(@alines, 0, $i);
			$amail->{'body'} = join("\n", @alines)."\n";
			&parse_mail($amail);
			map { $_->{'idx'} += scalar(@attach) }
			    @{$amail->{'attach'}};
			push(@attach, @{$amail->{'attach'}});
			}
		elsif ($attach->{'type'} =~ /multipart\/(\S+)/i) {
			# This attachment contains more attachments
			local $amail = { 'header' => $attach->{'header'},
					 'body' => $attach->{'data'} };
			&parse_mail($amail);
			pop(@attach);
			map { $_->{'idx'} += scalar(@attach) }
			    @{$amail->{'attach'}};
			push(@attach, @{$amail->{'attach'}});
			}
		last if ($l >= $max || $lines[$l] eq "$bound--");
		$l++;
		}
	$_[0]->{'attach'} = \@attach;
	}
elsif ($_[0]->{'body'} =~ /begin\s+([0-7]+)\s+(\S+)/i) {
	# Message contains uuencoded file(s)
	local @lines = split(/\n/, $_[0]->{'body'});
	local ($attach, $rest);
	foreach $l (@lines) {
		if ($l =~ /begin\s+([0-7]+)\s+(\S+)/i) {
			$attach = { 'type' => &guess_type($2),
				    'idx' => scalar(@{$_[0]->{'attach'}}),
				    'filename' => $2 };
			push(@{$_[0]->{'attach'}}, $attach);
			}
		elsif ($l =~ /^end/ && $attach) {
			$attach = undef;
			}
		elsif ($attach) {
			$attach->{'data'} .= unpack("u", $l);
			}
		else {
			$rest .= $l;
			}
		}
	if ($rest =~ /\S/) {
		# Some leftover text
		push(@{$_[0]->{'attach'}},
			{ 'type' => "text/plain",
			  'idx' => scalar(@{$_[0]->{'attach'}}),
			  'data' => $rest });
		}
	}
elsif ($_[0]->{'header'}->{'content-transfer-encoding'} eq 'base64') {
	# Signed body section
	$ct =~ s/;.*$//;
	$_[0]->{'attach'} = [ { 'type' => lc($ct),
				'idx' => 0,
				'data' => &b64decode($_[0]->{'body'}) } ];
	}
else {
	# One big attachment (probably text)
	local ($type, $body);
	($type = $ct) =~ s/;.*$//;
	$type = 'text/plain' if (!$type);
	if ($_[0]->{'header'}->{'content-transfer-encoding'} eq 'base64') {
		$body = &b64decode($_[0]->{'body'});
		}
	else {
		$body = $_[0]->{'body'};
		}
	$_[0]->{'attach'} = [ { 'type' => lc($type),
				'idx' => 0,
				'data' => $body } ];
	}
}

# delete_mail(user, &mail, ...)
# Delete mail messages from a user by copying the file and rebuilding the index
sub delete_mail
{
local @m = sort { $a->{'line'} <=> $b->{'line'} } @_[1..@_-1];
local $i = 0;
local $f = &user_mail_file($_[0]);
local $lnum = 0;
local %dline;
local ($dpos = 0, $dlnum = 0);
local @index;

open(SOURCE, $f);
open(DEST, ">$f.del");
while(<SOURCE>) {
	if ($i >= @m || $lnum < $m[$i]->{'line'}) {
		if (/^From\s+.*\d+\n/) {
			push(@index, [ $dpos, $dlnum ]);
			}
		$dpos += length($_);
		$dlnum++;
		local $w = (print DEST $_);
		if (!$w) {
			local $e = $?;
			close(DEST);
			close(SOURCE);
			unlink("$f.del");
			&error("Write failed : $e");
			}
		}
	elsif ($lnum == $m[$i]->{'eline'}) {
		$dline{$m[$i]->{'line'}}++;
		$i++;
		}
	$lnum++;
	}
close(SOURCE);
close(DEST);
local @st = stat($f);
unlink($f);
open(INDEX, ">$module_config_directory/$_[0].index");
print INDEX map { $_->[0]." ".$_->[1]."\n" } @index;
close(INDEX);
rename("$f.del", $f);
chown($st[4], $st[5], $f);
chmod($st[2], $f);
}

# send_mail(&mail, [file])
sub send_mail
{
local (%header, $h);
foreach $h (@{$_[0]->{'headers'}}) {
	$header{lc($h->[0])} = $h->[1];
	}
local @from = &address_parts($header{'from'});
if ($_[1]) {
	# Just append the email to a file using mbox format
	local @tm = localtime(time());
	open(MAIL, ">>$_[1]");
	print MAIL strftime("From $from[0] %a %b %e %H:%M:%S %Y\n", @tm);
	push(@{$_[0]->{'headers'}},
		[ 'Date', strftime("%a, %d %b %Y %H:%M:%S %Z", @tm) ]);
	}
elsif ($config{'send_mode'}) {
	# Connect to SMTP server
	&open_socket($config{'send_mode'}, 25, MAIL);
	&smtp_command(MAIL);
	&smtp_command(MAIL, "helo ".&from_hostname()."\n");
	&smtp_command(MAIL, "mail from: $from[0]\n");
	foreach $u (&address_parts($header{'to'}.",".$header{'cc'}.
						 ",".$header{'bcc'})) {
		&smtp_command(MAIL, "rcpt to: $u\n");
		}
	&smtp_command(MAIL, "data\n");
	}
else {
	# Start sendmail
	open(MAIL, "| $config{'sendmail_path'} -t -f$from[0] >/dev/null 2>&1");
	}
foreach $h (@{$_[0]->{'headers'}}) {
	print MAIL $h->[0],": ",$h->[1],"\n";
	}
print MAIL "MIME-Version: 1.0\n";
local $bound = "--------".time();
print MAIL "Content-Type: multipart/mixed; boundary=\"$bound\"\n";
print MAIL "\n";

# Send attachments
print MAIL "This is a multi-part message in MIME format.\n";
foreach $a (@{$_[0]->{'attach'}}) {
	print MAIL "--",$bound,"\n";
	local $enc;
	foreach $h (@{$a->{'headers'}}) {
		print MAIL $h->[0],": ",$h->[1],"\n";
		$enc = $h->[1] if (lc($h->[0]) eq 'content-transfer-encoding');
		}
	print MAIL "\n";
	if (lc($enc) eq 'base64') {
		print MAIL &encode_base64($a->{'data'});
		}
	else {
		print MAIL $a->{'data'};
		print MAIL "\n" if ($a->{'data'} !~ /\n$/);
		}
	}
print MAIL "--",$bound,"--\n";
if ($config{'send_mode'} && !$_[1]) {
	&smtp_command(MAIL, ".\n");
	&smtp_command(MAIL, "quit\n");
	}
close(MAIL);
}

# b64decode(string)
# Converts a string from base64 format to normal
sub b64decode
{
    local($str) = $_[0];
    local($res);
    $str =~ tr|A-Za-z0-9+=/||cd;
    $str =~ s/=+$//;
    $str =~ tr|A-Za-z0-9+/| -_|;
    while ($str =~ /(.{1,60})/gs) {
        my $len = chr(32 + length($1)*3/4);
        $res .= unpack("u", $len . $1 );
    }
    return $res;
}

sub guess_type
{
local $e;
if (!%mime_types) {
	open(MIME, "../mime.types");
	while(<MIME>) {
		s/\r|\n//g;
		s/#.*$//g;
		local @s = split(/\s+/);
		foreach $e (@s[1..$#s]) {
			$mime_types{$e} = $s[0];
			}
		}
	close(MIME);
	}
if ($_[0] =~ /\.([A-z0-9]+)$/ && $mime_types{$1}) {
	return $mime_types{$1};
	}
return "application/octet-stream";
}

# can_read_mail(user)
sub can_read_mail
{
return 0 if ($access{'mmode'} == 0);
return 1 if ($access{'mmode'} == 1);
return 1 if ($_[0] && $access{'sent'} eq $_[0]);
local $u;
if ($access{'mmode'} == 2) {
	foreach $u (split(/\s+/, $access{'musers'})) {
		return 1 if ($u eq $_[0]);
		}
	return 0;
	}
elsif ($access{'mmode'} == 4) {
	return 1 if ($_[0] eq $ENV{'REMOTE_USER'});
	}
elsif ($access{'mmode'} == 5) {
	local @u = getpwnam($_[0]);
	return $u[3] == $access{'musers'};
	}
elsif ($access{'mmode'} == 3) {
	foreach $u (split(/\s+/, $access{'musers'})) {
		return 0 if ($u eq $_[0]);
		}
	return 1;
	}
return 0;	# can't happen!
}

# from_hostname()
sub from_hostname
{
local ($d, $masq);
local $conf = &get_sendmailcf();
foreach $d (&find_type("D", $conf)) {
	if ($d->{'value'} =~ /^M\s*(\S*)/) { $masq = $1; }
	}
return $masq ? $masq : &get_system_hostname();
}

# mail_from_queue(qfile, dfile)
sub mail_from_queue
{
local $mail;
open(QF, $_[0]);
while(<QF>) {
	s/\r|\n//g;
	if (/^H\?[^\?]*\?(\S+):\s+(.*)/ || /^H(\S+):\s+(.*)/) {
		push(@headers, [ $1, $2 ]);
		}
	elsif (/^(\s+.*)/) {
		$headers[$#headers]->[1] .= $1;
		}
	}
close(QF);
$mail->{'headers'} = \@headers;
foreach $h (@headers) {
	$mail->{'header'}->{lc($h->[0])} = $h->[1];
	}

# Read the mail body
open(DF, $_[1]);
while(<DF>) {
	$mail->{'body'} .= $_;
	}
close(DF);
return $mail;
}

# wrap_lines(text, width)
# Given a multi-line string, return an array of lines wrapped to
# the given width
sub wrap_lines
{
local @rv;
local $w = $_[1];
foreach $rest (split(/\n/, $_[0])) {
	if ($rest =~ /\S/) {
		while($rest =~ /^(.{1,$w}\S*)\s*([\0-\377]*)$/) {
			push(@rv, $1);
			$rest = $2;
			}
		}
	else {
		# Empty line .. keep as it is
		push(@rv, $rest);
		}
	}
return @rv;
}

# smtp_command(handle, command)
sub smtp_command
{
local ($m, $c) = @_;
print $m $c;
local $r = <$m>;
if ($r !~ /^[23]\d+/) {
	&error(&text('send_esmtp', "<tt>$c</tt>", "<tt>$r</tt>"));
	}
}

# address_parts(string)
sub address_parts
{
local @rv;
local $rest = $_[0];
while($rest =~ /([^<>\s,'"\@]+\@[A-z0-9\-\.\!]+)(.*)/) {
	push(@rv, $1);
	$rest = $2;
	}
return @rv;
}

# link_urls(text)
sub link_urls
{
local $r = $_[0];
$r =~ s/((http|ftp|https|mailto):[^><"'\s&]+)/<a href="$1">$1<\/a>/g;
return $r;
}

# uudecode(text)
sub uudecode
{
local @lines = split(/\n/, $_[0]);
local ($l, $data);
for($l=0; $lines[$l] !~ /begin\s+([0-7]+)\s/i; $l++) { }
while($lines[++$l]) {
	$data .= unpack("u", $lines[$l]);
	}
return $data;
}

sub simplify_date
{
if ($_[0] =~ /^(\S+),\s+0*(\d+)\s+(\S+)\s+(\d+)\s+(\d+):(\d+)/) {
	return "$2/$3/$4 $5:$6";
	}
return $_[0];
}

# simplify_from(from)
# Simplifies a From: address for display in the list mail
sub simplify_from
{
local $rv = &decode_mimewords($_[0]);
$rv =~ s/<[^>]+>//g;
return $rv ? &html_escape($rv) : $text{'mail_nonefrom'};
}

# simplify_subject(subject)
sub simplify_subject
{
local $rv = &decode_mimewords($_[0]);
return $rv =~ /\S/ ? &html_escape($rv) : "<br>";
}

# quoted_decode(text)
sub quoted_decode
{
local $t = $_[0];
$t =~ s/=\n//g;
$t =~ s/=(\S\S)/pack("c",hex($1))/ge;
return $t;
}

sub decode_mimewords {
    my $encstr = shift;
    my %params = @_;
    my @tokens;
    $@ = '';           ### error-return

    ### Collapse boundaries between adjacent encoded words:
    $encstr =~ s{(\?\=)\r?\n[ \t](\=\?)}{$1$2}gs;
    pos($encstr) = 0;
    ### print STDOUT "ENC = [", $encstr, "]\n";

    ### Decode:
    my ($charset, $encoding, $enc, $dec);
    while (1) {
	last if (pos($encstr) >= length($encstr));
	my $pos = pos($encstr);               ### save it

	### Case 1: are we looking at "=?..?..?="?
	if ($encstr =~    m{\G             # from where we left off..
			    =\?([^?]*)     # "=?" + charset +
			     \?([bq])      #  "?" + encoding +
			     \?([^?]+)     #  "?" + data maybe with spcs +
			     \?=           #  "?="
			    }xgi) {
	    ($charset, $encoding, $enc) = ($1, lc($2), $3);
	    $dec = (($encoding eq 'q') ? _decode_Q($enc) : _decode_B($enc));
	    push @tokens, [$dec, $charset];
	    next;
	}

	### Case 2: are we looking at a bad "=?..." prefix? 
	### We need this to detect problems for case 3, which stops at "=?":
	pos($encstr) = $pos;               # reset the pointer.
	if ($encstr =~ m{\G=\?}xg) {
	    $@ .= qq|unterminated "=?..?..?=" in "$encstr" (pos $pos)\n|;
	    push @tokens, ['=?'];
	    next;
	}

	### Case 3: are we looking at ordinary text?
	pos($encstr) = $pos;               # reset the pointer.
	if ($encstr =~ m{\G                # from where we left off...
			 ([\x00-\xFF]*?    #   shortest possible string,
			  \n*)             #   followed by 0 or more NLs,
		         (?=(\Z|=\?))      # terminated by "=?" or EOS
			}xg) {
	    length($1) or die "MIME::Words: internal logic err: empty token\n";
	    push @tokens, [$1];
	    next;
	}

	### Case 4: bug!
	die "MIME::Words: unexpected case:\n($encstr) pos $pos\n\t".
	    "Please alert developer.\n";
    }
    return join('',map {$_->[0]} @tokens);
}

# _decode_Q STRING
#     Private: used by _decode_header() to decode "Q" encoding, which is
#     almost, but not exactly, quoted-printable.  :-P
sub _decode_Q {
    my $str = shift;
    $str =~ s/_/\x20/g;                                # RFC-1522, Q rule 2
    $str =~ s/=([\da-fA-F]{2})/pack("C", hex($1))/ge;  # RFC-1522, Q rule 1
    $str;
}

# _decode_B STRING
#     Private: used by _decode_header() to decode "B" encoding.
sub _decode_B {
    my $str = shift;
    &decode_base64($str);
}

# user_mail_file(user)
sub user_mail_file
{
if ($config{'mail_dir'}) {
	return "$config{'mail_dir'}/$_[0]";
	}
else {
	local @u = getpwnam($_[0]);
	return "$u[7]/mbox";
	}
}

1;
  07070100059493000081a40000000000000002000000013ac0389c00000131000000200000000000000000000000000000001a00000003reloc/sendmail/config-aix sendmail_cf=/etc/sendmail.cf
sendmail_pid=/etc/sendmail.pid
makemap_path=makemap
sendmail_command=startsrc -s sendmail -a -bd -q30m
sendmail_path=/usr/sbin/sendmail
mail_dir=/var/spool/mail
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
alias_skip=COMPONENT_NAME FUNCTIONS ORIGINS
   07070100059494000081a40000000000000002000000013ac0389d0000013b000000200000000000000000000000000000002300000003reloc/sendmail/config-cobalt-linux    sendmail_cf=/etc/sendmail.cf
sendmail_pid=/var/run/sendmail.pid
makemap_path=makemap
sendmail_command=/etc/rc.d/init.d/sendmail start
sendmail_stop_command=/etc/rc.d/init.d/sendmail stop
sendmail_path=/usr/lib/sendmail
mail_dir=/var/spool/mail
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
 07070100059495000081a40000000000000002000000013ac0389c00000106000000200000000000000000000000000000002200000003reloc/sendmail/config-corel-linux sendmail_cf=/etc/mail/sendmail.cf
sendmail_pid=/var/run/sendmail.pid
makemap_path=makemap
sendmail_command=/usr/lib/sendmail -bd -q1h
sendmail_path=/usr/lib/sendmail
mail_dir=/var/spool/mail
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
  07070100059496000081a40000000000000002000000013ac0389c00000101000000200000000000000000000000000000002300000003reloc/sendmail/config-debian-linux    sendmail_cf=/etc/sendmail.cf
sendmail_pid=/var/run/sendmail.pid
makemap_path=makemap
sendmail_command=/usr/lib/sendmail -bd -q1h
sendmail_path=/usr/lib/sendmail
mail_dir=/var/spool/mail
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
   07070100059497000081a40000000000000002000000013ac0389c00000106000000200000000000000000000000000000002700000003reloc/sendmail/config-debian-linux-2.1    sendmail_cf=/etc/mail/sendmail.cf
sendmail_pid=/var/run/sendmail.pid
makemap_path=makemap
sendmail_command=/usr/lib/sendmail -bd -q1h
sendmail_path=/usr/lib/sendmail
mail_dir=/var/spool/mail
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
  07070100059498000081a40000000000000002000000013ac0389c00000106000000200000000000000000000000000000002700000003reloc/sendmail/config-debian-linux-2.2    sendmail_cf=/etc/mail/sendmail.cf
sendmail_pid=/var/run/sendmail.pid
makemap_path=makemap
sendmail_command=/usr/lib/sendmail -bd -q1h
sendmail_path=/usr/lib/sendmail
mail_dir=/var/spool/mail
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
  07070100059499000081a40000000000000002000000013ac0389c00000128000000200000000000000000000000000000001e00000003reloc/sendmail/config-freebsd makemap_path=makemap
alias_file=
sendmail_pid=/var/run/sendmail.pid
mailers_file=
sendmail_cf=/etc/sendmail.cf
virtusers_file=
sendmail_command=/usr/sbin/sendmail -bd -q30m
sendmail_path=/usr/sbin/sendmail
mail_dir=/var/mail
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
0707010005949a000081a40000000000000002000000013ac0389d0000012d000000200000000000000000000000000000002200000003reloc/sendmail/config-freebsd-4.0 makemap_path=makemap
alias_file=
sendmail_pid=/var/run/sendmail.pid
mailers_file=
sendmail_cf=/etc/mail/sendmail.cf
virtusers_file=
sendmail_command=/usr/sbin/sendmail -bd -q30m
sendmail_path=/usr/sbin/sendmail
mail_dir=/var/mail
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
   0707010005949b000081a40000000000000002000000013ac0389d0000012d000000200000000000000000000000000000002200000003reloc/sendmail/config-freebsd-5.0 makemap_path=makemap
alias_file=
sendmail_pid=/var/run/sendmail.pid
mailers_file=
sendmail_cf=/etc/mail/sendmail.cf
virtusers_file=
sendmail_command=/usr/sbin/sendmail -bd -q30m
sendmail_path=/usr/sbin/sendmail
mail_dir=/var/mail
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
   0707010005949c000081a40000000000000002000000013ac0389c00000103000000200000000000000000000000000000001b00000003reloc/sendmail/config-hpux    sendmail_cf=/etc/mail/sendmail.cf
sendmail_pid=/etc/mail/sendmail.pid
makemap_path=makemap
sendmail_command=/sbin/init.d/sendmail start
sendmail_path=/usr/sbin/sendmail
mail_dir=/var/mail
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
 0707010005949d000081a40000000000000002000000013ac0389c0000014b000000200000000000000000000000000000001b00000003reloc/sendmail/config-irix    access_file=
sendmail_cf=/etc/sendmail.cf
virtusers_file=
makemap_path=makemap
sendmail_path=/usr/lib/sendmail
sendmail_pid=/etc/sendmail.pid
alias_file=
domains_file=
sendmail_command=/usr/lib/sendmail -bd -q1h
mailers_file=
generics_file=
mail_dir=/var/mail
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
 0707010005949e000081a40000000000000002000000013ac0389c00000122000000200000000000000000000000000000001c00000003reloc/sendmail/config-macos   makemap_path=makemap
mail_dir=/var/mail
sendmail_path=/usr/sbin/sendmail
sendmail_pid=/var/run/sendmail.pid
alias_file=
sendmail_command=/usr/sbin/sendmail -bd
mailers_file=
sendmail_cf=/etc/sendmail.cf
virtusers_file=
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
  0707010005949f000081a40000000000000002000000013ac0389d00000127000000200000000000000000000000000000002000000003reloc/sendmail/config-macos-1.3   makemap_path=makemap
mail_dir=/var/mail
sendmail_path=/usr/sbin/sendmail
sendmail_pid=/var/run/sendmail.pid
alias_file=
sendmail_command=/usr/sbin/sendmail -bd
mailers_file=
sendmail_cf=/etc/mail/sendmail.cf
virtusers_file=
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
 070701000594a2000081a40000000000000002000000013ac0389c00000131000000200000000000000000000000000000002100000003reloc/sendmail/config-open-linux  sendmail_cf=/etc/sendmail.cf
sendmail_pid=/var/run/sendmail.pid
makemap_path=makemap
sendmail_command=/etc/rc.d/init.d/mta start
sendmail_stop_command=/etc/rc.d/init.d/mta stop
sendmail_path=/usr/lib/sendmail
mail_dir=/var/spool/mail
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
   070701000594a3000081a40000000000000002000000013ac0389c00000136000000200000000000000000000000000000002500000003reloc/sendmail/config-open-linux-2.5  sendmail_cf=/etc/mail/sendmail.cf
sendmail_pid=/var/run/sendmail.pid
makemap_path=makemap
sendmail_command=/etc/rc.d/init.d/mta start
sendmail_stop_command=/etc/rc.d/init.d/mta stop
sendmail_path=/usr/lib/sendmail
mail_dir=/var/spool/mail
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
  070701000594a4000081a40000000000000002000000013ac0389d00000136000000200000000000000000000000000000002600000003reloc/sendmail/config-open-linux-3.1e sendmail_cf=/etc/mail/sendmail.cf
sendmail_pid=/var/run/sendmail.pid
makemap_path=makemap
sendmail_command=/etc/rc.d/init.d/mta start
sendmail_stop_command=/etc/rc.d/init.d/mta stop
sendmail_path=/usr/lib/sendmail
mail_dir=/var/spool/mail
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
  070701000594a5000081a40000000000000002000000013ac0389c00000111000000200000000000000000000000000000001e00000003reloc/sendmail/config-openbsd makemap_path=makemap
alias_file=
sendmail_pid=/var/run/sendmail.pid
mailers_file=
sendmail_cf=/etc/sendmail.cf
virtusers_file=
sendmail_command=/usr/sbin/sendmail -bd -q30m
sendmail_path=/usr/sbin/sendmail
mail_dir=/var/mail
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
   070701000594a6000081a40000000000000002000000013ac0389c0000012c000000200000000000000000000000000000002100000003reloc/sendmail/config-openserver  sendmail_cf=/etc/sendmail.cf
sendmail_pid=/etc/mail/sendmail.pid
makemap_path=makemap
sendmail_command=/etc/init.d/sendmail start
sendmail_stop_command=/etc/init.d/sendmail stop
sendmail_path=/usr/lib/sendmail
mail_dir=/var/mail
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
070701000594a7000081a40000000000000002000000013ac0389c0000013b000000200000000000000000000000000000002300000003reloc/sendmail/config-redhat-linux    sendmail_cf=/etc/sendmail.cf
sendmail_pid=/var/run/sendmail.pid
makemap_path=makemap
sendmail_command=/etc/rc.d/init.d/sendmail start
sendmail_stop_command=/etc/rc.d/init.d/sendmail stop
sendmail_path=/usr/lib/sendmail
mail_dir=/var/spool/mail
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
 070701000594a8000081a40000000000000002000000013ac0389c00000101000000200000000000000000000000000000002600000003reloc/sendmail/config-slackware-linux sendmail_cf=/etc/sendmail.cf
sendmail_pid=/var/run/sendmail.pid
makemap_path=makemap
sendmail_command=/usr/lib/sendmail -bd -q1h
sendmail_path=/usr/lib/sendmail
mail_dir=/var/spool/mail
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
   070701000594a9000081a40000000000000002000000013ac0389c0000012c000000200000000000000000000000000000001e00000003reloc/sendmail/config-solaris sendmail_cf=/etc/sendmail.cf
sendmail_pid=/etc/mail/sendmail.pid
makemap_path=makemap
sendmail_command=/etc/init.d/sendmail start
sendmail_stop_command=/etc/init.d/sendmail stop
sendmail_path=/usr/lib/sendmail
mail_dir=/var/mail
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
070701000594aa000081a40000000000000002000000013ac0389c00000185000000200000000000000000000000000000002000000003reloc/sendmail/config-solaris-7   access_file=
sendmail_cf=/etc/mail/sendmail.cf
virtusers_file=
makemap_path=makemap
sendmail_path=/usr/lib/sendmail
sendmail_pid=/etc/mail/sendmail.pid
alias_file=
domains_file=
sendmail_command=/etc/init.d/sendmail start
sendmail_stop_command=/etc/init.d/sendmail stop
mailers_file=
generics_file=
mail_dir=/var/mail
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
   070701000594ab000081a40000000000000002000000013ac0389d00000185000000200000000000000000000000000000002000000003reloc/sendmail/config-solaris-8   access_file=
sendmail_cf=/etc/mail/sendmail.cf
virtusers_file=
makemap_path=makemap
sendmail_path=/usr/lib/sendmail
sendmail_pid=/etc/mail/sendmail.pid
alias_file=
domains_file=
sendmail_command=/etc/init.d/sendmail start
sendmail_stop_command=/etc/init.d/sendmail stop
mailers_file=
generics_file=
mail_dir=/var/mail
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
   070701000594b1000081a40000000000000002000000013ac0389c00000101000000200000000000000000000000000000002100000003reloc/sendmail/config-suse-linux  sendmail_cf=/etc/sendmail.cf
sendmail_pid=/var/run/sendmail.pid
makemap_path=makemap
sendmail_command=/usr/lib/sendmail -bd -q1h
sendmail_path=/usr/lib/sendmail
mail_dir=/var/spool/mail
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
   070701000594b5000081a40000000000000002000000013ac0389d0000013b000000200000000000000000000000000000002200000003reloc/sendmail/config-turbo-linux sendmail_cf=/etc/sendmail.cf
sendmail_pid=/var/run/sendmail.pid
makemap_path=makemap
sendmail_command=/etc/rc.d/init.d/sendmail start
sendmail_stop_command=/etc/rc.d/init.d/sendmail stop
sendmail_path=/usr/lib/sendmail
mail_dir=/var/spool/mail
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
 070701000594b6000081a40000000000000002000000013ac0389c0000012c000000200000000000000000000000000000001f00000003reloc/sendmail/config-unixware    sendmail_cf=/etc/sendmail.cf
sendmail_pid=/etc/mail/sendmail.pid
makemap_path=makemap
sendmail_command=/etc/init.d/sendmail start
sendmail_stop_command=/etc/init.d/sendmail stop
sendmail_path=/usr/lib/sendmail
mail_dir=/var/mail
perpage=20
sort_mode=0
wrap_width=80
order_mail=0
smrsh_dir=/etc/smrsh
070701000594b7000081a40000000000000002000000013ac0389b0000047a000000200000000000000000000000000000001b00000003reloc/sendmail/config.info    sendmail_cf=Full path to sendmail.cf,8
sendmail_pid=Full path to sendmail pid file,8
sendmail_command=Command to start sendmail in server mode,0
sendmail_stop_command=Command to stop sendmail,3,Kill process
mailq_refresh=Seconds to wait before refreshing mail queue,3,Don't refresh
perpage=Mail messages to display per page,0
wrap_width=Width to wrap mail messages at,0
sort_mode=Sort tables by,1,0-Order in file,1-Name
send_mode=Send mail via connection to,3,Sendmail executable
order_mail=When reading mail start at,1,0-Latest,1-Oldest
makemap_path=Makemap comand,0
sendmail_path=Sendmail command,0
alias_file=Full path to sendmail aliases file,3,Automatic
virtusers_file=Source file for virtusers database,3,Same as DBM
mailers_file=Source file for mailertable database,3,Same as DBM
generics_file=Source file for generics database,3,Same as DBM
access_file=Source file for the access database,3,Same as DBM
domains_file=Source file for the domains database,3,Same as DBM
mail_dir=User mail file location,3,$HOME/mbox
smrsh_dir=SMRSH directory,3,None
wrap_mode=Wrapping mode in mail textarea,1,-Default,wrap=on-On,wrap=off-Off,wrap=auto-Auto

  070701000594b8000081a40000000000000002000000013ac0389c0000049b000000200000000000000000000000000000001e00000003reloc/sendmail/config.info.de sendmail_cf=Voller Pfad zu sendmail.cf,8
sendmail_pid=Voller Pfad zur sendmail PID Datei,8
sendmail_command=Kommando zum starten von Sendmail im Server Modus,0
sendmail_stop_command=Kommando zum Stoppen von Sendmail,3,Prozess killen
mailq_refresh=Sekunden, nach denen die Ausgabe der Warteschlange aktualisiert wird,3,Keine Aktualisierung
perpage=Mails pro Seite,0
wrap_width=Breite, bei denen Mails umgebrochen werden sollen,0
sort_mode=Sortiere Tabellen nach,1,0-Reihenfolge aus Datei,1-Name
send_mode=Sende email &uuml;ber Verbindung zu,3,Sendmail executable
order_mail=Beim email lesen starte bei,1,0-Neuester,1-&Auml;ltester
makemap_path=Makemap Kommando,0
sendmail_path=Sendmail Kommando,0
alias_file=Volle Pfad zur Sendmail Alias Datei,3,Automatisch
virtusers_file=Quell Datei f&uuml;r virtusers Datenbank,3,Gleicher wie DBM
mailers_file=Quell Datei f&uuml;r mailertable Datenbank,3,Gleicher wie DBM
generics_file=Quell Datei f&uuml;r generics Datenbank,3,Gleicher wie DBM
access_file=Quell Datei f&uuml;r access Datenbank,3,Gleicher wie DBM
domains_file=Quell Datei f&uuml;r domains Datenbank,3,Gleicher wie DBM
mail_dir=Verzeichnis mit Benutzermail Dateien,3,$HOME/mbox
 070701000594b9000081a40000000000000002000000013ac0389c0000051b000000200000000000000000000000000000001e00000003reloc/sendmail/config.info.es sendmail_cf=Trayectoria completa a sendmail.cf,0
sendmail_pid=Trayectoria completa a archivo de pid de sendmail,0
sendmail_command=Comando para arrancar sendmail en modo servidor,0
sendmail_stop_command=Comando para parar sendmail,3,Matar proceso
mailq_refresh=Segundos a esperar antes de refrescar la cola de correo,3,No refrescar
perpage=Mensajes de correo a mostrar por p醙ina,0
wrap_width=Ancho en el que continuar en otra l韓ea los mensajes de correo,0
sort_mode=Clasificar tablas por,1,0-Orden en archivo,1-Nombre
send_mode=Enviar correo a trav閟 de la conexi髇 a,3,Ejecutable Sendmail
order_mail=Al leer correo comenzar por el,1,0-趌timo,1-M醩 viejo
makemap_path=Comando Makemap,0
sendmail_path=Comando Sendmail,0
alias_file=Trayectoria completa a archivo de alias de sendmail,3,Autom醫ica
virtusers_file=Archivo fuente para base de datos de usuarios virtuales,3,La misma que DBM
mailers_file=Archivo fuente para base de datos tabla de carteros,3,La misma que DBM
generics_file=Archivo fuente para base de datos de gen閞icos,3,La misma que DBM
access_file=Archivo fuente la base de datos de acceso,3,La misma que DBM
domains_file=Archivo fuente para la base de datos de dominios,3,La misma que DBM
mail_dir=Directorio de archivo de usuario de correo,3,$HOME/mbox
smrsh_dir=Directorio SMRSH,3,Ninguno
 070701000594c2000081a40000000000000002000000013ac0389c00000401000000200000000000000000000000000000001e00000003reloc/sendmail/config.info.fr sendmail_cf=Chemin du fichier sendmail.cf,0
sendmail_pid=Chemin du fichier de num閞o de processus,0
sendmail_command=Commande pour d閙arrer le serveur sendmail,0
sendmail_stop_command=Commande pour arr阾er sendmail,3,Tuer le processus
mailq_refresh=Nombre de secondes d'attente avant de rafra頲hir la file d'attente des couriel,3,Ne pas rafra頲hir
makemap_path=Commande 'makemap',0
perpage=Nombre de couriel affich par page,0
sort_mode=Tri les tables par,1,0-Ordre dans le fichier,1-Par nom
sendmail_path=Commande sendmail,0
alias_file=Chemin du fichier d'alias,3,Automatique
virtusers_file=Fichier source de base de donn閑 des usagers virtuels,3,M阭e que DBM
mailers_file=Fichier source de base de donn閑 des tables de poste,3,M阭e que DBM
generics_file=Fichier source de base de donn閑 g閚閞ique,3,M阭e que DBM
access_file=Fichier source de base de donn閑 d'acc鑣,3,M阭e que DBM
domains_file=Fichier source de base de donn閑 des domaines,3,M阭e que DBM
mail_dir=R閜ertoire des fichier de couriel des usagers,3,$HOME/mbox
   070701000594c9000081a40000000000000002000000013ac0389c000004a2000000200000000000000000000000000000001e00000003reloc/sendmail/config.info.pl sendmail_cf=Pe硁a 禼ie縦a do sendmail.cf,8
sendmail_pid=Pe硁a 禼ie縦a do pliku z PID sendmaila,8
sendmail_command=Polecenie uruchamiaj眂e sendmaila jako server,0
sendmail_stop_command=Polecenie zatrzymuj眂e sendmaila,3,Zabij proces
mailq_refresh=Przed od秝ie縠niem kolejki czekaj sekund,3,Nie od秝ie縜j
perpage=Liczba wiadomo禼i na stronie,0
wrap_width=m linie wiadomo禼i w kolumnie,0
sort_mode=Wy秝ietlaj tabele wg,1,0-Porz眃ku w zbiorze,1-Nazwy
send_mode=Wysy砤j poczt 潮cz眂 si z,3,Programem sendmail
order_mail=Czytaj眂 poczt zacznij od,1,0-Najnowszej,1-Najstarszej
makemap_path=Polecenie <tt>makemap</tt>,0
sendmail_path=Polecenie <tt>sendmail</tt>,0
alias_file=Pe硁a 禼ie縦a do pliku alias體 sendmaila,3,Automatycznie
virtusers_file=Plik 紃骴硂wy bazy danych <tt>virtusers</tt>,3,Ten sam co DBM
mailers_file=Plik 紃骴硂wy bazy danych <tt>mailertable</tt>,3,Ten sam co DBM
generics_file=Plik 紃骴硂wy bazy danych <tt>generics</tt>,3,Ten sam co DBM
access_file=Plik 紃骴硂wy bazy danych <tt>access</tt>,3,Ten sam co DBM
domains_file=Plik 紃骴硂wy bazy danych <tt>domains</tt>,3,Ten sam co DBM
mail_dir=Skrzynki pocztowe u縴tkownik體,3,$HOME/mbox
smrsh_dir=Katalog SMRSH,3,Brak
  070701000594ca000081a40000000000000002000000013ac0389d00000389000000200000000000000000000000000000002100000003reloc/sendmail/config.info.ru_RU  sendmail_stop_command=暑爨礓 潆 铖蜞眍怅 sendmail,3,俞栩 镳铞羼
mail_dir=枢蜞腩 镱朦珙忄蝈朦耜桴 镱黩钼 羿殡钼,3,$HOME/mbox
access_file=锐躅漤 羿殡 潆 徉琨 溧眄 access,3,亦觐-驽 赅 DBM
mailq_refresh=殃铍 皴牦礓 驿囹 漕 钺眍怆屙 镱黩钼铋 铟屦邃,3,湾 钺眍怆螯
perpage=项赅琨忄螯 镱黩钼 耦钺龛 磬 耱疣龛鲶,0
sendmail_cf=项腠 矬螯  sendmail.cf,0
virtusers_file=锐躅漤 羿殡 潆 徉琨 溧眄 virtusers,3,亦觐-驽 赅 DBM
makemap_path=Makemap 觐爨礓,0
sendmail_pid=项腠 矬螯  pid 羿殡 sendmail,0
sendmail_path=Sendmail 觐爨礓,0
alias_file=项腠 矬螯  羿殡 锺邂漕龛祛 sendmail,3,棱蝾爨蜩麇耜
domains_file=锐躅漤 羿殡 潆 徉琨 溧眄 domains,3,亦觐-驽 赅 DBM
sendmail_command=暑爨礓 潆 耱囵蜞 sendmail  疱骅戾 皴疴屦,0
mailers_file=锐躅漤 羿殡 潆 徉琨 溧眄 mailertable,3,亦觐-驽 赅 DBM
generics_file=锐躅漤 羿殡 潆 徉琨 溧眄 generic,3,亦觐-驽 赅 DBM
   070701000594cb000081a40000000000000002000000013ac0389c00000389000000200000000000000000000000000000002100000003reloc/sendmail/config.info.ru_SU  sendmail_cf=鹣涛偈 姓载  sendmail.cf,0
sendmail_pid=鹣涛偈 姓载  pid 屏侍 sendmail,0
sendmail_command=胂土文 奶 釉烈粤 sendmail  遗稚团 优易乓,0
sendmail_stop_command=胂土文 奶 嫌粤蜗姿 sendmail,3,趼稍 幸厦庞
mailq_refresh=笏咸厮 优苏文 帜猎 南 下蜗滋盼裳 邢拊献鲜 限乓拍,3,钆 下蜗滋言
makemap_path=Makemap 讼土文,0
sendmail_path=Sendmail 讼土文,0
alias_file=鹣涛偈 姓载  屏侍 杏抛南紊拖 sendmail,3,嶙韵土陨夼铀
virtusers_file=橛认奈偈 屏侍 奶 铝谫 牧挝偃 virtusers,3,袅讼-峙 肆 DBM
mailers_file=橛认奈偈 屏侍 奶 铝谫 牧挝偃 mailertable,3,袅讼-峙 肆 DBM
generics_file=橛认奈偈 屏侍 奶 铝谫 牧挝偃 generic,3,袅讼-峙 肆 DBM
access_file=橛认奈偈 屏侍 奶 铝谫 牧挝偃 access,3,袅讼-峙 肆 DBM
domains_file=橛认奈偈 屏侍 奶 铝谫 牧挝 domains,3,袅讼-峙 肆 DBM
mail_dir=肓粤滔 邢特谙琢耘特铀扇 邢拊献偃 屏侍献,3,$HOME/mbox
perpage=鹣肆谫琢载 邢拊献偃 酉下菖紊 瘟 釉伊紊谜,0
   070701000594cc000081a40000000000000002000000013ac0389b00000472000000200000000000000000000000000000001e00000003reloc/sendmail/config.info.sv sendmail_cf=Fullst鋘dig s鰇v鋑 till sendmail.cf,0
sendmail_pid=Fullst鋘dig s鰇v鋑 till PID-fil f鰎 sendmail,0
sendmail_command=Kommando f鰎 att starta sendmail i servermod,0
sendmail_stop_command=Kommando f鰎 att stanna sendmail,3,Kill process
mailq_refresh=V鋘tetid (sekunder) f鰎 att uppdatera e-postk鰊,3,Uppdatera inte
perpage=Antal e-postbrev per sida,0
wrap_width=Maximal bredd f鰎 e-postbrev (ombrytning sker),0
sort_mode=Sortera tabeller efter,1,0-ordningen i filen,1-Namn
send_mode=Skicka e-post via f鰎bindelse till,3,Sendmail executable
order_mail=N鋜 jag l鋝er e-post vill jag b鰎ja l鋝a det,1,0-senaste,1-鋖dsta
makemap_path=Makemap-kommando,0
sendmail_path=Sendmail-kommando,0
alias_file=Fullst鋘dig s鰇v鋑 till aliasfil f鰎 sendmail,3,Automatisk
virtusers_file=K鋖lfil f鰎 virtusers-databas,3,Samma som DBM
mailers_file=K鋖lfil f鰎 mailertable-databas,3,Samma som DBM
generics_file=K鋖lfil f鰎 generics-databas,3,Samma som DBM
access_file=K鋖lfil f鰎 access-databas,3,Samma som DBM
domains_file=K鋖lfil f鰎 dom鋘-databas,3,Samma som DBM
mail_dir=Anv鋘darkatalog f鰎 e-postfiler,3,$HOME/mbox
smrsh_dir=SMRSH-katalog,3,Ingen
  070701000594cd000081a40000000000000002000000013ac0389c00000461000000200000000000000000000000000000001e00000003reloc/sendmail/config.info.tr sendmail_cf=sendmail.cf dosyas齨齨 tam yeri,8
sendmail_pid=Sendmail pid dosyas齨齨 tam yeri,8
sendmail_command=Sendmail'i sunucu modunda 鏰lt齬ma komutu,0
sendmail_stop_command=Sendmail'i durdurma komutu,3,蔺lemi 鰈d黵
mailq_refresh=Posta kuyru饀nun tazelenme s黵esi(saniye),3,Don't refresh
perpage=Sayfa bana g鰏terilecek mesaj say齭,0
wrap_width=Birle⺶irilem mesaj say齭,0
sort_mode=Tablolar s齬alama 㧐kli,1,0-Dosyadaki s齬ayla,1-輘imle
send_mode=Ba餷ant ile postay g鰊der,3,Sendmail 鏰lt齬齦abiliri
order_mail=Postalar齨 okunma s齬as,1,0-En son,1-En eski
makemap_path=Makemap komutu,0
sendmail_path=Sendmail komutu,0
alias_file=Sendmail takma adlar dosyas齨齨 tam yolu,3,Automatic
virtusers_file=Virtusers veritaban dosyas齨齨 kaynak dosyas,3,DBM ile ayn
mailers_file=Mailertable veritaban dosyas齨齨 kaynak dosyas,3,DBM ile ayn
generics_file=Senerics veritaban dosyas齨齨 kaynak dosyas,3,DBM ile ayn
access_file=Giri veritaban dosyas齨齨 kaynak dosyas,3,DBM ile ayn
domains_file=Alan veritaban dosyas齨齨 kaynak dosyas,3,DBM ile ayn
mail_dir=Kullan齝 posta dosyas dizini,3,$HOME/mbox
   070701000594ce000081a40000000000000002000000013ac0389c0000034a000000200000000000000000000000000000002100000003reloc/sendmail/config.info.zh_CN  sendmail_cf=sendmail.cf的全路径,0
sendmail_pid=sendmail pid 文件的全路径,0
sendmail_command=在服务器模式启动 sendmail 的命令,0
sendmail_stop_command=停止sendmail的命令,3,杀死进程
mailq_refresh=在刷新邮件队列之前等待的以秒为单位的时间,3,不刷新
perpage=每页显示的邮件数目,0
wrap_width=邮件内容自动换行的宽度,0
sort_mode=排序表格的依据,0-文件,1-名字
send_mode=通过什么连接发送邮件,3,Sendmail 可执行程序
order_mail=阅读邮件的顺序,1,0-最近,1-最老
makemap_path=Makemap 命令,0
sendmail_path=Sendmail 命令,0
alias_file=sendmail 别名的全路径,3,自动
virtusers_file=虚拟用户数据库的源文件,3,等同于 DBM
mailers_file=mailertable 数据库的源文件,3,等同于 DBM
generics_file=通用数据库的源文件,3,等同于 DBM
access_file=控制数据库的源文件,3,等同于 DBM
domains_file=域数据库的源文件,3,等同于 DBM
mail_dir=用户邮件文件目录,3,$HOME/mbox
smrsh_dir=SMRSH 目录,3,无
  070701000594e2000081a40000000000000002000000013ac0389e00000385000000200000000000000000000000000000002600000003reloc/sendmail/config.info.zh_TW.Big5 sendmail_cf= sendmail.cf Ч俱隔畖,0
sendmail_pid= sendmail PID郎Ч俱隔畖,0
sendmail_command=狝竟家Α币笆 Sendmail ,0
sendmail_stop_command=氨ゎ Sendmail ,3,炳奔祘
mailq_refresh=穝秎ン︻丁筳丁,3,ぃ璶穝
perpage=–陪ボ秎ン癟计ヘ,0
wrap_width=秎ン癟笆传︽糴,0
sort_mode=逼よΑ,1,0-郎ず抖,1-嘿
send_mode=患癳秎ン硈钡祘Α,3,Sendmail 磅︽郎
order_mail=弄秎ン逼よΑ,1,0-穝侣,1-侣穝
makemap_path=Makemap ㏑,0
sendmail_path=Sendmail ㏑,0
alias_file= sendmail 郎Ч俱隔畖,3,笆
virtusers_file=店览ㄏノ戈畐﹍郎,3,籔戈畐郎
mailers_file=秎ン患癳戈畐﹍郎,3,籔戈畐郎
generics_file=硄ノ戈畐﹍郎,3,籔戈畐郎
access_file=戈畐﹍郎,3,籔戈畐郎
domains_file=呼办戈畐﹍郎,3,籔戈畐郎
mail_dir=ㄏノ秎ン郎ヘ魁,3,$HOME/mbox
   070701000594e3000081a40000000000000002000000013ac0389c000000ed000000200000000000000000000000000000001a00000003reloc/sendmail/defaultacl opts=1
cws=1
masq=1
trusts=1
cgs=1
relay=1
mailq=2
noconfig=0
vmode=1
mailers=1
access=1
amode=1
aedit_1=1
aedit_2=1
aedit_3=1
aedit_4=1
aedit_5=1
omode=1
domains=1
stop=1
vedit_0=1
vedit_1=1
vedit_2=1
mmode=1
fmode=0
apath=/
attach=-1

   07070100059545000081e40000000000000002000000013ac0389c000002b5000000200000000000000000000000000000001d00000003reloc/sendmail/del_mailq.cgi  #!/usr/local/bin/perl
# del_mailq.cgi
# Delete some mail message from the queue

require './sendmail-lib.pl';
&ReadParse();
&error_setup($text{'delq_err'});
$access{'mailq'} == 2 || &error($text{'delq_ecannot'});
$in{'file'} =~ /\.\./ && &error($text{'delq_ecannot'});

$qfile = $in{'file'};
($dfile = $qfile) =~ s/\/qf/\/df/;
($lfile = $qfile) =~ s/\/qf/\/xf/;

if (-r $lfile) {
	&error($text{'delq_locked'});
	}

open(QFILE, $qfile);
while(<QFILE>) {
	if (/^[^\-]*To:\s+(.*)/) { $to = $1; }
	elsif (/^[^\-]*From:\s+(.*)/) { $from = $1; }
	}
close(QFILE);

unlink($qfile);
unlink($dfile);
&webmin_log("delmailq", undef, undef, { 'to' => $to, 'from' => $from });
&redirect("list_mailq.cgi");

   07070100059546000081e40000000000000002000000013ac0389d0000039a000000200000000000000000000000000000001e00000003reloc/sendmail/del_mailqs.cgi #!/usr/local/bin/perl
# del_mailqs.cgi
# Delete some mail messages from the queue

require './sendmail-lib.pl';
&ReadParse();
&error_setup($text{'delq_err'});
$access{'mailq'} == 2 || &error($text{'delq_ecannot'});
&header($text{'delq_title'}, "");
print "<hr><p>\n";

$count = 0;
foreach $file (split(/\0/, $in{'file'})) {
	print &text('delq_file', "<tt>$file</tt>"),"&nbsp;&nbsp;&nbsp;\n";
	if ($file =~ /\.\./) {
		print $text{'delq_efile'},"<br>\n";
		next;
		}
	if (!-r $file) {
		print $text{'delq_egone'},"<br>\n";
		next;
		}

	$qfile = $file;
	($dfile = $qfile) =~ s/\/qf/\/df/;
	($lfile = $qfile) =~ s/\/qf/\/xf/;

	if (-r $lfile) {
		print $text{'delq_elocked'},"<br>\n";
		next;
		}

	unlink($qfile);
	unlink($dfile);
	print $text{'delq_ok'},"<br>\n";
	$count++;
	}
&webmin_log("delmailq", undef, undef, { 'count' => $count }) if ($count);
print "<p><hr>\n";
&footer("list_mailq.cgi", $text{'mailq_return'});

  07070100059547000081e40000000000000002000000013ac0389c0000028e000000200000000000000000000000000000001f00000003reloc/sendmail/delete_mail.cgi    #!/usr/local/bin/perl
# delete_mail.cgi
# Delete multiple messages

require './sendmail-lib.pl';
require './boxes-lib.pl';
&ReadParse();
&can_read_mail($in{'user'}) || &error($text{'delete_ecannot'});
@delete = sort { $a <=> $b } split(/\0/, $in{'d'});
@delete || &error($text{'delete_enone'});
$gconfig{'logfiles'} = 0;
&lock_file(&user_mail_file($in{'user'}));
@mail = &list_mails($in{'user'}, $delete[0], $delete[@delete-1]);
foreach $d (@delete) {
	push(@delmail, $mail[$d]);
	}
&delete_mail($in{'user'}, @delmail);
&unlock_file(&user_mail_file($in{'user'}));
&webmin_log("delmail", undef, undef, \%in);
&redirect("list_mail.cgi?user=$in{'user'}");

  07070100059548000081e40000000000000002000000013ac0389d0000016e000000200000000000000000000000000000001a00000003reloc/sendmail/detach.cgi #!/usr/local/bin/perl
# detach.cgi
# View one attachment from a message

require './sendmail-lib.pl';
require './boxes-lib.pl';

&ReadParse();
@mail = &list_mails($in{'user'}, $in{'idx'}, $in{'idx'});
$mail = $mail[$in{'idx'}];
&parse_mail($mail);
$attach = $mail->{'attach'}->[$in{'attach'}];

print "Content-type: $attach->{'type'}\n\n";
print $attach->{'data'};

  0707010005957e000081a40000000000000002000000013ac0389c00000c18000000200000000000000000000000000000001d00000003reloc/sendmail/domain-lib.pl  # domains-lib.pl
# Functions for the domains table

# domains_dbm(&config)
# Returns the filename and type of the domains database, or undef if none
sub domains_dbm
{
foreach $f (&find_type("K", $_[0])) {
        if ($f->{'value'} =~ /^domaintable\s+(\S+)[^\/]+(\S+)$/) {
		return ($2, $1);
                }
	}
return undef;
}

# domains_file(&config)
# Returns the filename of the text domains file, or undef if none
sub domains_file
{
return &find_textfile($config{'domains_file'}, &domains_dbm($_[0]));
}

# list_domains(textfile)
sub list_domains
{
local($lnum, @rv);
$lnum = 0;
open(DOM, $_[0]);
while(<DOM>) {
	s/\r|\n//g;     # remove newlines
	s/#.*$//g;	# remove comments
	if (/^(\S+)\s+(.*)/) {
		local(%dom);
		$dom{'from'} = $1;
		$dom{'to'} = $2;
		$dom{'line'} = $lnum;
		$dom{'num'} = scalar(@rv);
		push(@rv, \%dom);
		}
	$lnum++;
	}
close(DOM);
return @rv;
}

# create_domain(&details, textfile, dbmfile, dbmtype)
# Create a new domain mapping
sub create_domain
{
local(%dom);
open(DOM, ">> $_[1]");
print DOM "$_[0]->{'from'}\t$_[0]->{'to'}\n";
close(DOM);
if ($_[3] eq "dbm") {
	dbmopen(%dom, $_[2], 0644);
	$dom{$_[0]->{'from'}} = $_[0]->{'to'};
	dbmclose(%dom);
	}
else { &run_makemap($_[1], $_[2], $_[3]); }
}

# delete_domain(&details, textfile, dbmfile, dbmtype)
# Delete an existing domain mapping
sub delete_domain
{
local(@dom, %dom);
open(DOM, $_[1]);
@dom = <DOM>;
close(DOM);
splice(@dom, $_[0]->{'line'}, 1);
open(DOM, "> $_[1]");
print DOM @dom;
close(DOM);
if ($_[3] eq "dbm") {
	dbmopen(%dom, $_[2], 0644);
	delete($dom{$_[0]->{'from'}});
	dbmclose(%dom);
	}
else { &run_makemap($_[1], $_[2], $_[3]); }
}

# modify_domain(&old, &details, textfile, dbmfile, dbmtype)
# Change an existing domain
sub modify_domain
{
local(@dom, %dom);
open(DOM, $_[2]);
@dom = <DOM>;
close(DOM);
splice(@dom, $_[0]->{'line'}, 1, "$_[1]->{'from'}\t$_[1]->{'to'}\n");
open(DOM, "> $_[2]");
print DOM @dom;
close(DOM);
if ($_[4] eq "dbm") {
	dbmopen(%dom, $_[3], 0644);
	delete($dom{$_[0]->{'from'}});
	$dom{$_[1]->{'from'}} = $_[1]->{'to'};
	dbmclose(%dom);
	}
else { &run_makemap($_[2], $_[3], $_[4]); }
}

# domain_form([&details])
sub domain_form
{
local $v = $_[0];
print "<form action=save_domain.cgi>\n";
if ($_[0]) { print "<input type=hidden name=num value=$v->{'num'}>\n"; }
else { print "<input type=hidden name=new value=1>\n"; }
print "<table border>\n";
print "<tr $tb> <td><b>",$v ? $text{'dform_edit'} : $text{'dform_create'},
      "</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>From domain</b></td>\n";
print "<td><input name=from size=25 value=\"$v->{'from'}\"></td> </tr>\n";

print "<tr> <td><b>To domain</b></td>\n";
print "<td><input name=to size=25 value=\"$v->{'to'}\"></td> </tr>\n";

print "<tr> <td colspan=3 align=right>\n";
if ($_[0]) {
        print "<input type=submit value=\"$text{'save'}\">\n";
        print "<input type=submit name=delete value=\"$text{'delete'}\">\n";
        }
else { print "<input type=submit value=\"$text{'create'}\"\n"; }
print "</td> </tr>\n";
print "</table></td></tr></table></form>\n";
}

1;

0707010005957f000081e40000000000000002000000013ac0389c000001a2000000200000000000000000000000000000001f00000003reloc/sendmail/edit_access.cgi    #!/usr/local/bin/perl
# edit_access.cgi
# Edit an existing access rule

require './sendmail-lib.pl';
require './access-lib.pl';
&ReadParse();
$access{'access'} || &error($text{'aform_ecannot'});
$conf = &get_sendmailcf();
@accs = &list_access(&access_file($conf));

&header($text{'aform_edit'}, "");
print "<hr>\n";
&access_form($accs[$in{'num'}]);
print "<hr>\n";
&footer("list_access.cgi", $text{'access_return'});

  07070100059580000081e40000000000000002000000013ac0389c00000386000000200000000000000000000000000000001e00000003reloc/sendmail/edit_afile.cgi #!/usr/local/bin/perl
# edit_afile.cgi
# Display the contents of an address file

require './sendmail-lib.pl';
&ReadParse();
if (substr($in{'file'}, 0, length($access{'apath'})) ne $access{'apath'}) {
	&error(&text('afile_efile', $in{'file'}));
	}

&header($text{'afile_title'}, "");
print "<hr>\n";
open(FILE, $in{'file'});
@lines = <FILE>;
close(FILE);

print "<b>",&text('afile_desc', "<tt>$in{'file'}</tt>"),"</b><p>\n";

print "<form action=save_afile.cgi method=post>\n";
print "<input type=hidden name=file value=\"$in{'file'}\">\n";
print "<input type=hidden name=num value=\"$in{'num'}\">\n";
print "<textarea name=text rows=20 cols=80>",
	join("", @lines),"</textarea><p>\n";
print "<input type=submit value=\"$text{'save'}\"> ",
      "<input type=reset value=\"$text{'afile_undo'}\">\n";
print "</form>\n";

print "<hr>\n";
&footer("edit_alias.cgi?num=$in{'num'}", $text{'aform_return'});

  07070100059581000081e40000000000000002000000013ac0389c00000277000000200000000000000000000000000000001e00000003reloc/sendmail/edit_alias.cgi #!/usr/local/bin/perl
# edit_alias.cgi
# Edit an existing sendmail alias

require './sendmail-lib.pl';
require './aliases-lib.pl';
&ReadParse();
$conf = &get_sendmailcf();
@aliases = &list_aliases(&aliases_file($conf));
$a = $aliases[$in{'num'}];
$access{'amode'} == 1 ||
$access{'amode'} == 2 && $a->{'name'} =~ /$access{'aliases'}/ ||
	&error($text{'aform_ecannot'});
foreach $v (@{$a->{'values'}}) {
	$access{"aedit_".&alias_type($v)} ||
		&error($text{'aform_ecannot'});
	}

&header($text{'aform_edit'}, "", "edit_alias");
print "<hr>\n";
&alias_form($a);
print "<hr>\n";
&footer("list_aliases.cgi", $text{'aliases_return'});

 07070100059582000081e40000000000000002000000013ac0389c000001a2000000200000000000000000000000000000001f00000003reloc/sendmail/edit_domain.cgi    #!/usr/local/bin/perl
# edit_domain.cgi
# Edit an existing domain

require './sendmail-lib.pl';
require './domain-lib.pl';
&ReadParse();
$access{'domains'} || &error($text{'dform_ecannot'});
$conf = &get_sendmailcf();
@doms = &list_domains(&domains_file($conf));

&header($text{'dform_edit'}, "");
print "<hr>\n";
&domain_form($doms[$in{'num'}]);
print "<hr>\n";
&footer("list_domains.cgi", $text{'domains_return'});

  07070100059583000081e40000000000000002000000013ac0389e00000985000000200000000000000000000000000000001d00000003reloc/sendmail/edit_file.cgi  #!/usr/local/bin/perl
# edit_file.cgi
# Display the contents of a file for editing

require './sendmail-lib.pl';
&error_setup($text{'file_err'});
&ReadParse();
$conf = &get_sendmailcf();
if ($in{'mode'} eq 'aliases') {
	require './aliases-lib.pl';
	$file = &aliases_file($conf)->[$in{'idx'}];
	$return = "list_aliases.cgi";
	$rmsg = $text{'aliases_return'};
	$access{'amode'} == 1 && $access{'aedit_1'} && $access{'aedit_2'} &&
	    $access{'aedit_3'} && $access{'aedit_4'} && $access{'aedit_5'} &&
	    $access{'amax'} == 0 && $access{'apath'} eq '/' ||
	    &error($text{'file_ealiases'});
	}
elsif ($in{'mode'} eq 'virtusers') {
	require './virtusers-lib.pl';
	$file = &virtusers_file($conf);
	$return = "list_virtusers.cgi";
	$rmsg = $text{'virtusers_return'};
	$access{'vmode'} == 1 && $access{'vedit_0'} && $access{'vedit_1'} &&
	    $access{'vedit_2'} && $access{'vmax'} == 0 ||
	    &error($text{'file_evirtusers'});
	}
elsif ($in{'mode'} eq 'mailers') {
	require './mailers-lib.pl';
	$file = &mailers_file($conf);
	$return = "list_mailers.cgi";
	$rmsg = $text{'mailers_return'};
	$access{'mailers'} || &error($text{'file_emailers'});
	}
elsif ($in{'mode'} eq 'generics') {
	require './generics-lib.pl';
	$file = &generics_file($conf);
	$return = "list_generics.cgi";
	$rmsg = $text{'generics_return'};
	$access{'omode'} == 1 || &error($text{'file_egenerics'});
	}
elsif ($in{'mode'} eq 'domains') {
	require './domain-lib.pl';
	$file = &domains_file($conf);
	$return = "list_domains.cgi";
	$rmsg = $text{'domains_return'};
	$access{'domains'} || &error($text{'file_edomains'});
	}
elsif ($in{'mode'} eq 'access') {
	require './access-lib.pl';
	$file = &access_file($conf);
	$return = "list_access.cgi";
	$rmsg = $text{'access_return'};
	$access{'access'} || &error($text{'file_eaccess'});
	}
else { &error($text{'file_emode'}); }

&header($text{'file_title'}, "");
print "<hr>\n";
open(FILE, $file);
@lines = <FILE>;
close(FILE);

print "<b>",&text('file_desc', "<tt>$file</tt>"),"</b><p>\n";

print "<form action=save_file.cgi method=post>\n";
print "<input type=hidden name=mode value=\"$in{'mode'}\">\n";
print "<input type=hidden name=idx value=\"$in{'idx'}\">\n";
print "<textarea name=text rows=20 cols=80>",
	join("", @lines),"</textarea><p>\n";
print "<input type=submit value=\"$text{'save'}\"> ",
      "<input type=reset value=\"$text{'file_undo'}\">\n";
print "</form>\n";

print "<hr>\n";
&footer($return, $rmsg);

   07070100059584000081e40000000000000002000000013ac0389c000001fd000000200000000000000000000000000000002000000003reloc/sendmail/edit_generic.cgi   #!/usr/local/bin/perl
# edit_generic.cgi
# Edit an existing generic

require './sendmail-lib.pl';
require './generics-lib.pl';
&ReadParse();
$conf = &get_sendmailcf();
@gens = &list_generics(&generics_file($conf));
$access{'omode'} == 1 ||
$access{'omode'} == 2 && $gens[$in{'num'}]->{'from'} =~ /$access{'oaddrs'}/ ||
	&error($text{'gform_ecannot'});

&header($text{'gform_edit'}, "");
print "<hr>\n";
&generic_form($gens[$in{'num'}]);
print "<hr>\n";
&footer("list_generics.cgi", $text{'generics_return'});
   07070100059585000081e40000000000000002000000013ac0389c000001a4000000200000000000000000000000000000001f00000003reloc/sendmail/edit_mailer.cgi    #!/usr/local/bin/perl
# edit_mailer.cgi
# Edit an existing mailer

require './sendmail-lib.pl';
require './mailers-lib.pl';
&ReadParse();
$access{'mailers'} || &error($text{'mform_ecannot'});
$conf = &get_sendmailcf();
@virts = &list_mailers(&mailers_file($conf));

&header($text{'mform_edit'}, "");
print "<hr>\n";
&mailer_form($virts[$in{'num'}]);
print "<hr>\n";
&footer("list_mailers.cgi", $text{'mailers_return'});
07070100059586000081e40000000000000002000000013ac0389c00000388000000200000000000000000000000000000001e00000003reloc/sendmail/edit_rfile.cgi #!/usr/local/bin/perl
# edit_rfile.cgi
# Display the contents of an autoreply file

require './sendmail-lib.pl';
&ReadParse();
if (substr($in{'file'}, 0, length($access{'apath'})) ne $access{'apath'}) {
	&error(&text('rfile_efile', $in{'file'}));
	}

&header($text{'rfile_title'}, "");
print "<hr>\n";
open(FILE, $in{'file'});
@lines = <FILE>;
close(FILE);

print "<b>",&text('rfile_desc', "<tt>$in{'file'}</tt>"),"</b><p>\n";

print "<form action=save_rfile.cgi method=post>\n";
print "<input type=hidden name=file value=\"$in{'file'}\">\n";
print "<input type=hidden name=num value=\"$in{'num'}\">\n";
print "<textarea name=text rows=20 cols=80>",
	join("", @lines),"</textarea><p>\n";
print "<input type=submit value=\"$text{'save'}\"> ",
      "<input type=reset value=\"$text{'rfile_undo'}\">\n";
print "</form>\n";

print "<hr>\n";
&footer("edit_alias.cgi?num=$in{'num'}", $text{'aform_return'});

07070100059587000081e40000000000000002000000013ac0389c00000209000000200000000000000000000000000000002100000003reloc/sendmail/edit_virtuser.cgi  #!/usr/local/bin/perl
# edit_virtuser.cgi
# Edit an existing virtuser

require './sendmail-lib.pl';
require './virtusers-lib.pl';
&ReadParse();
$conf = &get_sendmailcf();
@virts = &list_virtusers(&virtusers_file($conf));
$access{'vmode'} == 1 ||
$access{'vmode'} == 2 && $virts[$in{'num'}]->{'from'} =~ /$access{'vaddrs'}/ ||
	&error($text{'vform_ecannot'});

&header($text{'vform_edit'}, "");
print "<hr>\n";
&virtuser_form($virts[$in{'num'}]);
print "<hr>\n";
&footer("list_virtusers.cgi", $text{'virtusers_return'});

   07070100059588000081e40000000000000002000000013ac0389c00000200000000200000000000000000000000000000001a00000003reloc/sendmail/flushq.cgi #!/usr/local/bin/perl
# flushq.cgi
# Run sendmail -vq and display the output

require './sendmail-lib.pl';
$| = 1;
&header($text{'flushq_title'}, "");
print "<hr><p>\n";

$cmd = "$config{'sendmail_path'} -v -q";
print &text('flushq_desc', "<tt>$cmd</tt>"),"<br>\n";
print "<pre>";
&foreign_require("proc", "proc-lib.pl");
&foreign_call("proc", "safe_process_exec_logged", $cmd, 0, 0, STDOUT, undef, 1);
print "</pre>\n";
&webmin_log("flushq");

print "<hr>\n";
&footer("list_mailq.cgi", $text{'mailq_return'});

07070100059589000081a40000000000000002000000013ac0389c00000c46000000200000000000000000000000000000001f00000003reloc/sendmail/generics-lib.pl    # generics-lib.pl
# Functions for the generics table

# generics_dbm(&config)
# Returns the filename and type of the generics database, or undef if none
sub generics_dbm
{
foreach $f (&find_type("K", $_[0])) {
        if ($f->{'value'} =~ /^generics\s+(\S+)[^\/]+(\S+)$/) {
		return ($2, $1);
                }
	}
return undef;
}

# generics_file(&config)
# Returns the filename of the text generics file, or undef if none
sub generics_file
{
return &find_textfile($config{'generics_file'}, &generics_dbm($_[0]));
}

# list_generics(textfile)
sub list_generics
{
local($lnum, @rv);
$lnum = 0;
open(GEN, $_[0]);
while(<GEN>) {
	s/\r|\n//g;     # remove newlines
	s/#.*$//g;	# remove comments
	if (/^(\S+)\s+(.*)/) {
		local(%virt);
		$virt{'from'} = $1;
		$virt{'to'} = $2;
		$virt{'line'} = $lnum;
		$virt{'num'} = scalar(@rv);
		push(@rv, \%virt);
		}
	$lnum++;
	}
close(GEN);
return @rv;
}

# create_generic(&details, textfile, dbmfile, dbmtype)
# Create a new generic mapping
sub create_generic
{
local(%virt);
open(GEN, ">> $_[1]");
print GEN "$_[0]->{'from'}\t$_[0]->{'to'}\n";
close(GEN);
if ($_[3] eq "dbm") {
	dbmopen(%virt, $_[2], 0644);
	$virt{$_[0]->{'from'}} = $_[0]->{'to'};
	dbmclose(%virt);
	}
else { &run_makemap($_[1], $_[2], $_[3]); }
}

# delete_generic(&details, textfile, dbmfile, dbmtype)
# Delete an existing generic mapping
sub delete_generic
{
local(@virt, %virt);
open(GEN, $_[1]);
@virt = <GEN>;
close(GEN);
splice(@virt, $_[0]->{'line'}, 1);
open(GEN, "> $_[1]");
print GEN @virt;
close(GEN);
if ($_[3] eq "dbm") {
	dbmopen(%virt, $_[2], 0644);
	delete($virt{$_[0]->{'from'}});
	dbmclose(%virt);
	}
else { &run_makemap($_[1], $_[2], $_[3]); }
}

# modify_generic(&old, &details, textfile, dbmfile, dbmtype)
# Change an existing generic
sub modify_generic
{
local(@virt, %virt);
open(GEN, $_[2]);
@virt = <GEN>;
close(GEN);
splice(@virt, $_[0]->{'line'}, 1, "$_[1]->{'from'}\t$_[1]->{'to'}\n");
open(GEN, "> $_[2]");
print GEN @virt;
close(GEN);
if ($_[4] eq "dbm") {
	dbmopen(%virt, $_[3], 0644);
	delete($virt{$_[0]->{'from'}});
	$virt{$_[1]->{'from'}} = $_[1]->{'to'};
	dbmclose(%virt);
	}
else { &run_makemap($_[2], $_[3], $_[4]); }
}

sub generic_form([&details])
{
local $g = $_[0];
print "<form action=save_generic.cgi>\n";
if ($g) { print "<input type=hidden name=num value=$g->{'num'}>\n"; }
else { print "<input type=hidden name=new value=1>\n"; }
print "<table border>\n";
print "<tr $tb> <td><b>",$g ? $text{'gform_edit'} : $text{'gform_create'},
      "</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'gform_from'}</b></td>\n";
print "<td><input name=from size=30 value=\"$g->{'from'}\"></td> </tr>\n";
print "<tr> <td><b>$text{'gform_to'}</b></td>\n";
print "<td><input name=to size=30 value=\"$g->{'to'}\"></td> </tr>\n";

print "<tr> <td colspan=3 align=right>\n";
if ($_[0]) {
        print "<input type=submit value=\"$text{'save'}\">\n";
        print "<input type=submit name=delete value=\"$text{'delete'}\">\n";
        }
else { print "<input type=submit value=\"$text{'create'}\">\n"; }
print "</td> </tr>\n";
print "</table></td></tr></table></form>\n";
}

1;

  0707010005abca000041ed0000000000000001000000023ac03c6b00000000000000200000000000000000000000000000001400000003reloc/sendmail/help   0707010005abcb000081a40000000000000002000000013ac0389c0000009e000000200000000000000000000000000000002a00000003reloc/sendmail/help/alias_enabled.es.html <header>Alias Activado</header>

Determina si el alias est activado en este momento. Los alias desactivados
son ignorados al procesar correo entrante.
<hr>

  0707010005abcc000081a40000000000000002000000013ac0389c00000098000000200000000000000000000000000000002a00000003reloc/sendmail/help/alias_enabled.fr.html <header>Activ l'Alias</header>

D閠ermine si l'alias est activ.  Les alias d閟activ sont ignor dans le processus de r閏eption de couriel.<p>

<hr>

0707010005abcd000081a40000000000000002000000013ac0389c00000092000000200000000000000000000000000000002700000003reloc/sendmail/help/alias_enabled.html    <header>Alias Enabled</header>

Determines if this alias is currently enabled. Disabled aliases are ignored
when processing incoming email.
<hr>

  0707010005abce000081a40000000000000002000000013ac0389c000000a8000000200000000000000000000000000000002a00000003reloc/sendmail/help/alias_enabled.pl.html <header>Alias aktywny</header>

Okre秎a, czy ten alias jest w chwili obecnej aktywny. Aliasy nie aktywne s
ignorowane podczas przetwarzania przychodz眂ej poczty.
<hr>
0707010005abcf000081a40000000000000002000000013ac0389c000000a0000000200000000000000000000000000000002d00000003reloc/sendmail/help/alias_enabled.ru_RU.html  <header>像邂漕龛 狸蜩忮</header>

物疱溴弪 嚓蜩忮 腓 锺邂漕龛  磬耱 祛戾眚. 湾嚓蜩忭 锺邂漕龛禧 桡眍痂痼 镳 钺疣犷蜿 怩钿 镱黩. 
<hr>

0707010005abd0000081a40000000000000002000000013ac0389c000000a0000000200000000000000000000000000000002d00000003reloc/sendmail/help/alias_enabled.ru_SU.html  <header>鹩抛南紊 崴陨着</header>

镄遗呐萄旁 了陨着 躺 杏抛南紊  瘟釉涎萆 拖团卧. 钆了陨孜倥 杏抛南紊唾 汕蜗疑艺涝友 幸 下伊孪运 兹夏演攀 邢拊. 
<hr>

0707010005abd1000081a40000000000000002000000013ac0389c000000a2000000200000000000000000000000000000002a00000003reloc/sendmail/help/alias_enabled.sv.html <header>Alias aktiverat</header>

H鋜 v鋖jer du om detta alias ska aktiveras. Alias som inte 鋜 aktiverade
anv鋘ds inte i hanteringen av inkommande e-post.
<hr>

  0707010005abd2000081a40000000000000002000000013ac0389c00000065000000200000000000000000000000000000003200000003reloc/sendmail/help/alias_enabled.zh_TW.Big5.html <header>琌ㄏノ</header>

∕﹚琌璶ㄏノ硂. 砆闽超盢ぃ穦砆ノ秈筿秎ン.
<hr>

   0707010005abd3000081a40000000000000002000000013ac0389c000000e5000000200000000000000000000000000000002700000003reloc/sendmail/help/alias_name.es.html    <header>Direcci髇 de Alias</header>

Esta es la direcci髇 de la que se est haciendo alias. No debe de incluir
un dominio - por ello la direcci髇 deber韆 de figurar como <tt>ventas</tt>
en lugar de <tt>ventas@foo.com</tt>.
<hr>

   0707010005abd4000081a40000000000000002000000013ac0389c000000ce000000200000000000000000000000000000002700000003reloc/sendmail/help/alias_name.fr.html    <header>Alias d'Adresse</header>

Ceci est l'adresse duquel un alias sera fait.  Il ne doit pas inclure le nom de domaine, ainsi l'adresse doit 阾re <tt>ventes</tt> et non <tt>ventes@foo.com</tt>.<p>

<hr>
  0707010005abd5000081a40000000000000002000000013ac0389c000000b8000000200000000000000000000000000000002400000003reloc/sendmail/help/alias_name.html   <header>Alias Address</header>

This is the address being aliased. It must not include a domain - so the
address should be like <tt>sales</tt> instead of <tt>sales@foo.com</tt>.
<hr>

0707010005abd6000081a40000000000000002000000013ac0389c000000c2000000200000000000000000000000000000002700000003reloc/sendmail/help/alias_name.pl.html    <header>Adres aliasu</header>

Jest to adres, kt髍ego alias dotyczy. Nie mo縠 on zawiera nazwy domeny -
czyli powinien by postaci <tt>sprzedawca</tt> zamiast
<tt>sprzedawca@foo.com</tt>.
<hr>
  0707010005abd7000081a40000000000000002000000013ac0389c000000d5000000200000000000000000000000000000002a00000003reloc/sendmail/help/alias_name.ru_RU.html <header>冷疱 像邂漕龛爨</header>

蒡 噤疱 潆 觐蝾痤泐 恹 耦玟噱蝈 锺邂漕龛. 雾 礤 漕腈屙 怅膻鬣螯 桁 漕戾磬 - 蜞觇 钺疣珙 噤疱 漕腈屙 恹汶溴螯 赅 <tt>sales</tt>,  礤 赅 <tt>sales@foo.com</tt>. 
<hr>

   0707010005abd8000081a40000000000000002000000013ac0389c000000d5000000200000000000000000000000000000002a00000003reloc/sendmail/help/alias_name.ru_SU.html <header>崮遗 鹩抛南紊土</header>

 聊遗 奶 讼韵蚁窍 踪 酉谀僚耘 杏抛南紊. 镂 闻 南讨盼 姿汤蘖载 赏 南团瘟 - 粤松 下伊谙 聊遗 南讨盼 踪翘涯旁 肆 <tt>sales</tt>,  闻 肆 <tt>sales@foo.com</tt>. 
<hr>

   0707010005abd9000081a40000000000000002000000013ac0389c000000cc000000200000000000000000000000000000002700000003reloc/sendmail/help/alias_name.sv.html    <header>Alias-adress</header>

H鋜 skriver du in den adress som utg鰎 alias. Adressen f錼 inte inneh錶la
n錱on dom鋘; skriv allts t ex <tt>marknad</tt> ist鋖let f鰎
<tt>marknad@foretaget.se</tt> .
<hr>

0707010005ac05000081a40000000000000002000000013ac0389c0000077a000000200000000000000000000000000000001f00000003reloc/sendmail/help/intro.html    <header>Sendmail Configuration</header>

<h3>Introduction to Sendmail</h3>
Sendmail is the standard Unix program for mail transport and delivery.
When a user on your system wants to send email to someone on another host,
sendmail is the program that does the actual process of delivering the
mail. Similarly, when someone on another system sends mail to one of your
users, sendmail will receive the email and store it in the user's mail
file. <p>

Sendmail is an MTA (mail transport agent) only, meaning that it does not
present any user interface to people wishing to send email. Programs like
Eudora, elm or /bin/mail that users actually interact with a called MUAs
(mail user agents). An MUA does not deliver email itself, instead it simply
passes the email on to sendmail to do the delivery. <p>

User MUAs can be run either directly on your system (MUAs like pine, elm
or /bin/mail), or on a separate host which may be a single-user PC (for MUAs
like Eudora, Exchange and Netscape Communicator). In the first case,
mail is sent be directly invoking sendmail and passing the message to it,
and received by reading the user's mail spool file. For MUAs run on other
hosts, mail is sent by connecting to the sendmail process on your system
using the SMTP protocol, and received by connecting to a separate POP3
server. <p>

<h3>The Sendmail Module</h3>
The main page of this module shows a table of icons, each for configuring
a different part of sendmail's functionality. However, the features behind
some icons may not be available, if they have not been setup in your
<tt>sendmail.cf</tt>. When installing sendmail, you can choose which features
are available by editing an <tt>.mc</tt>, which is converted by <tt>m4</tt>
into your <tt>sendmail.cf</tt>. Many features (such as Address Mapping,
Domain Masquerading and Spam Control) may not be available unless you have
enabled them at install time. <p>

<hr>

  0707010005abda000081a40000000000000002000000013ac0389c00000096000000200000000000000000000000000000002f00000003reloc/sendmail/help/alias_name.zh_TW.Big5.html    <header>秎ン</header>

盢璶砞﹚筿秎ン. ウぃ呼办 - ┮莱赣钩琌 <tt>sales</tt> τぃ琌 <tt>sales@foo.com</tt>..
<hr>

  0707010005abdb000081a40000000000000002000000013ac0389c0000041e000000200000000000000000000000000000002500000003reloc/sendmail/help/alias_to.es.html  <header>Alias A</header>

Cada alias puede redirigir correo a varios receptores y cada receptor
puede ser uno de los siguientes:
<dl>
<dt><b>Direcci髇 de Correo</b>
<dd>O bien una direcci髇 completa de correo como <tt>foo@bar.com</tt>, o
    el nombre de otro usuario de tu sistema como <tt>jcameron</tt>.
<dt><b>Direcciones en Archivo</b>
<dd>Para esta clase de alias debes de especificar la trayectoria completa
    de un archivo que contenga una lista de direcciones de correo, una en
    cada l韓ea. Cada direcci髇 puede ir totalmente calificada o ser el
    nombre de otro usuario de tu sistema.
<dt><b>Escribir en Archivo</b>
<dd>En este caso, el correo ser escrito en el archivo especificado. Para
    hacer que se pierda todo el correo de alguna direcci髇, pon
    <tt>/dev/null</tt> como nombre de archivo.
<dt><b>Alimentar a Programa</b>
<dd>Cada vez que un mensaje de correo llega para este alias, el programa
    especificado ser ejecutado y todo el mensaje de correo (cabeceras y
    cuerpo) pasado a 閘 como entrada est醤dar.
</dl>
<hr>

  0707010005abdc000081a40000000000000002000000013ac0389c0000039b000000200000000000000000000000000000002500000003reloc/sendmail/help/alias_to.fr.html  <header>Alias </header>

Chacun des alias peut rediriger les couriels  plusieurs destinataires et chacun des destinataires peut 阾re un des suivants :
<dl>
<dt><b>Adresse Couriel</b>
<dd>Autant une adresse compl鑤e comme <tt>foo@bar.com</tt>, ou le nom de l'autre usager de votre syst鑝e, comme <tt>joe</tt>.
<dt><b>Adresses d'un Fichier</b>
<dd>Pour ce type d'alias vous devez sp閏ifier le chemin complet d'un fichier contenant une liste de couriel, un par ligne.
<dt><b>蒫rire dans un Fichier</b>
<dd>Dans ce cas, les couriels vont 阾re 閏rit dans un fichier sp閏ifique.  Pour simplement jeter les couriels de certaines adresses, simplement mettre <tt>/dev/null</tt> comme nom de fichier.
<dt><b>Donner  un programme</b>
<dd>Chaque fois qu'un couriel arrive pour cet alias, le programme sp閏ifi sera ex閏uter et le courrier entier (ent阾e et contenu) pass  celui-ci dans l'entr閑 standard.
</dl>
<hr>
 0707010005abdd000081a40000000000000002000000013ac0389c000003aa000000200000000000000000000000000000002200000003reloc/sendmail/help/alias_to.html <header>Alias To</header>

Each alias may redirect mail to several recipients, and each recipient
may be one of the following :
<dl>
<dt><b>Email Address</b>
<dd>Either a full email address like <tt>foo@bar.com</tt>, or the name of
    another user on your system like <tt>jcameron</tt>.
<dt><b>Addresses in File</b>
<dd>For this kind of alias you must specify the full path to a file
    containing a list of email addresses, one per line. Each address can
    be either fully qualified, or the name of another user on your system.
<dt><b>Write to File</b>
<dd>In this case, email will be written to the specified file. To have all
    email to some address thrown away, give <tt>/dev/null</tt> as the filename.
<dt><b>Feed to Program</b>
<dd>Each time an email message arrives for this alias, the specified program
    will be executed and the entire email message (headers and body) passed
    to it on the standard input.
</dl>
<hr>

  0707010005abde000081a40000000000000002000000013ac0389c0000042f000000200000000000000000000000000000002500000003reloc/sendmail/help/alias_to.pl.html  <header>Tre舵 aliasu</header>

Ka縟y z&nbsp;alias體 mo縠 przekierowywa poczt do kilku miejsc, a&nbsp;ka縟e 
z&nbsp;nich mo縠 by jednym z:
<dl>
<dt><b>Adresem pocztowym</b>
<dd>Albo pe硁y adres, jak np. <tt>foo@bar.com</tt>, albo nazwa innego
    u縴tkownika w&nbsp;twoim systemie, np. <tt>jcameron</tt>.
<dt><b>List adres體 w&nbsp;pliku</b>
<dd>W&nbsp;tym przypadku musisz okre秎i pe硁 禼ie縦 do pliku zawieraj眂ego
    list adres體 pocztowych, po jednym w&nbsp;ka縟ej linii. Ka縟y z&nbsp;nich
    mo縠 by albo pe硁ym adresem, albo nazw innego u縴tkownika w&nbsp;twoim
    systemie.
<dt><b>Zapisem do pliku</b>
<dd>W&nbsp;tym przypadku wiadomo舵 zostanie zapisana w zadanym pliku. Je秎i
    chcesz wyrzuci ca潮 poczt skierowan na pewne adresy, podaj
    <tt>/dev/null</tt> jako nazw pliku.
<dt><b>Przekierowaniem do programu</b>
<dd>Za ka縟ym razem, kiedy przyb阣zie wiadomo舵 zaadresowana na ten alias
    uruchomiony zostanie wymieniony program a&nbsp;ca砤 wiadomo舵 (nag丑wki
    i&nbsp;tre舵) zostanie przekazana na jego standardowe wej禼ie.
</dl>
<hr>
 0707010005abdf000081a40000000000000002000000013ac0389c000003f5000000200000000000000000000000000000002800000003reloc/sendmail/help/alias_to.ru_RU.html   <header>像邂漕龛 </header>

枢驿 锺邂漕龛 祛驽 镥疱磬镳噔螯 镱黩  礤耜铍桁 噤疱襦蜞,  赅驿 噤疱襦 祛驽 镳邃耱噔螯 耦犷 钿桧 桤 耠邃簋 忄痂囗蝾:
<dl>
<dt><b>项黩钼 冷疱</b>
<dd>枢 镱腠 镱黩钼 噤疱 蜩镟 <tt>foo@bar.com</tt>, 蜞  桁 漯筱钽 镱朦珙忄蝈 磬 忄 耔耱屐, 磬镳桁屦 <tt>jcameron</tt>.
<dt><b>冷疱襦  脏殡</b>
<dd>碾 溧眄钽 蜩镟 锺邂漕龛爨 恹 漕腈睇 箨噻囹 镱腠 矬螯  羿殡 耦溴疰帙屐 耧桉铌 镱黩钼 噤疱耦, 镱 钿眍祗  耱痤赍. 枢驿 桤 噤疱耦 祛驽 猁螯 赅 镱腠 镱黩钼 噤疱耦, 蜞  桁屙屐 漯筱钽 镱朦珙忄蝈 磬 忄 耔耱屐.
<dt><b>青镨顸  脏殡</b>
<dd> 溧眄铎 耠篦噱, 怦 镱黩 狍溴 玎镨覃忄螯  箨噻囗睇 羿殡. 袜镳桁屦 潆 腓赈桎圉梃 怦彘 镱黩 桎簌彘 磬 礤觇 噤疱, 箨噫栩  赅麇耱忮 蜞觐泐 羿殡 <tt>/dev/null</tt>.
<dt><b>襄疱溧鬣  橡钽疣祆</b>
<dd>枢驿 疣 觐沅 镱黩 镳桴钿栩 磬 溧眄 锺邂漕龛, 玎矬耜噱蝰 箨噻囗磬 镳钽疣祆,  怦 镱黩钼铄 耦钺龛 (玎泐腩怅  蝈腩) 镥疱溧弪 磬 澹 耱囗溧痱睇 怩钿.
</dl>
<hr>

   0707010005abe0000081a40000000000000002000000013ac0389c000003f5000000200000000000000000000000000000002800000003reloc/sendmail/help/alias_to.ru_SU.html   <header>鹩抛南紊 </header>

肓帜偈 杏抛南紊 拖峙 信遗瘟幸磷萄载 邢拊  闻铀咸厮赏 聊遗恿粤,  肆帜偈 聊遗恿 拖峙 幸拍釉磷萄载 酉孪 夏晌 哨 犹拍绽萆 琢疑廖韵:
<dl>
<dt><b>鹣拊献偈 崮遗</b>
<dd>肓 邢涛偈 邢拊献偈 聊遗 陨辛 <tt>foo@bar.com</tt>, 粤  赏 囊涨锨 邢特谙琢耘萄 瘟 琢叟 由釉磐, 瘟幸赏乓 <tt>jcameron</tt>.
<dt><b>崮遗恿  媪侍</b>
<dd>涮 牧挝锨 陨辛 杏抛南紊土 踪 南讨钨 账邻猎 邢涛偈 姓载  屏侍 酉呐抑凛磐 有捎纤 邢拊献偃 聊遗酉, 邢 夏蜗驼  釉蚁伺. 肓帜偈 哨 聊遗酉 拖峙 沦载 肆 邢涛偻 邢拊献偻 聊遗酉, 粤  赏盼磐 囊涨锨 邢特谙琢耘萄 瘟 琢叟 由釉磐.
<dt><b>猩迂  媪侍</b>
<dd> 牧挝贤 犹辙僚, 子 邢拊 抡呐 诹猩淤琢载友  账邻廖钨 屏侍. 盍幸赏乓 奶 躺俗赡撩缮 子攀 邢拊 赡蛰攀 瘟 闻松 聊遗, 账林稍  肆夼釉着 粤讼窍 屏侍 <tt>/dev/null</tt>.
<dt><b>鹋遗牧蘖  鹨锨伊屯</b>
<dd>肓帜偈 伊 讼悄 邢拊 幸扇夏稍 瘟 牧挝偈 杏抛南紊, 诹姓铀僚杂 账邻廖瘟 幸锨伊屯,  子 邢拊献吓 酉下菖紊 (诹窍滔姿  耘滔) 信遗牧旁友 瘟 牛 釉廖牧以钨 兹夏.
</dl>
<hr>

   0707010005abe1000081a40000000000000002000000013ac0389c000003ad000000200000000000000000000000000000002500000003reloc/sendmail/help/alias_to.sv.html  <header>Alias f鰎</header>

Ett alias kan representera flera mottagare och varje mottagare kan vara
n錱ot av nedanst錯nde:
<dl>
<dt><b>E-postadress</b>
<dd>Antingen en fullst鋘dig e-postadress (t ex <tt>foo@bar.com</tt>) eller
    n錱ot anv鋘darnamn i systemet (t ex <tt>jcameron</tt>).
<dt><b>Adresser i en fil</b>
<dd>H鋜 m錽te en fullst鋘dig s鰇v鋑 till en fil anges. Filen ska inneh錶la
    e-postadresser, en per rad. E-postadresserna kan anges som fullst鋘diga
    adresser eller som anv鋘darnamn i systemet.
<dt><b>Skriv till fil</b>
<dd>Med detta val skrivs e-post ut till den angivna filen. Om man vill kasta
    all e-post till en viss adress kan man ange filen <tt>/dev/null</tt> som
    mottagare.
<dt><b>Skicka till program</b>
<dd>D e-post kommer till detta alias kommer det angivna programmet att utf鰎as
    och hela e-postmeddelandet (huvud och kropp) kommer att skickas till
    programmet via standard input.
</dl>
<hr>

   0707010005abe2000081a40000000000000002000000013ac0389c0000028f000000200000000000000000000000000000002d00000003reloc/sendmail/help/alias_to.zh_TW.Big5.html  <header></header>

–常р秎ン旧Μン, τΜン琌:
<dl>
<dt><b>筿秎ン</b>
<dd>ヴЧ俱筿秎ンㄒ <tt>goo@bar.com</tt>, ┪琌眤╰参ㄏノ嘿ㄒ <tt>jcameron</tt>.
<dt><b>秎ン郎</b>
<dd>癸硂摸, 眤ゲ斗﹚筿秎ン嘿郎, –︽. –常琌Ч俱┪眤╰参ㄏノ.
<dt><b>糶郎</b>
<dd>硂猵, 筿秎ン盢穦砆糶﹚郎ぇい. 癸璶メ斌倒琘┮Τ秎ン, 眤盢ぇ <tt>/dev/null</tt> ぇい.
<dt><b>癳倒祘Α</b>
<dd>–讽筿笷硂, ﹚祘Α盢穦砆磅︽, 俱秎ン癟 (夹繷籔セ砰) 常穦竒パ夹非块癳倒﹚祘Α.
</dl>
<hr>

 0707010005abe3000081a40000000000000002000000013ac0389c0000043f000000200000000000000000000000000000002400000003reloc/sendmail/help/aliases.es.html   <header>Alias de Correo</header>

Los alias de correo la manera en que sendmail redirige el correo desde
algunas direcciones de tu sistema hacia otro destino. Ese destino puede
ser un usuario de tu sistema, una direcci髇 de correo de otro sistema,
un archivo o la entrada a un programa. Los alias se aplican para <b>todos</b>
los dominios para los cuales tu sistema accepte correo. Por ello, si tu
sistema acept correo para los dominios <tt>abc.com</tt> y <tt>xyz.com</tt>,
un alias para la direcci髇 <tt>foo</tt> redirigir韆 el correo de ambos
<tt>foo@abc.com</tt> y <tt>foo@xyz.com</tt>. <p>

En la parte superior de esta p醙ina hay un formulario para digitar los
detalles de un nuevo alias de correo. M醩 all del formulario hay una lista
de alias existentes y de destinatarios de correo redirigido. Para editar
una alias, haz click en su nombre. <p>

Si est醩 usando el m骴ulo de Majordomo, puedes darte cuenta de varios alias
como <tt>Majordomo</tt>, <tt>owner-listname</tt> o <tt>listname-request</tt>.
No modifiques estos alias a menos que sepas lo que est醩 haciendo. <p>
<hr>

 0707010005abe4000081a40000000000000002000000013ac0389c00000431000000200000000000000000000000000000002400000003reloc/sendmail/help/aliases.fr.html   <header>Alias de Couriel</header>

Les alias de couriel sont la fa鏾n que Sendmail utilise pour rediriger les couriels d'une adresse  une autre de votre syst鑝e.  Cette destination peut 阾re un usager sur votre syst鑝e, une adresse d'un autre syst鑝e, un fichier ou l'entr閑 d'un programme.  Les alias s'appliquent pour <b>tout</b> domaines dont votre syst鑝e accepte des couriel.  Alors si votre syst鑝e accepte des couriel du domaine <tt>abc.com</tt> et <tt>xyz.com</tt>, un alias sur l'adresse <tt>foo</tt> redirige les couriels envoyer autant sur <tt>foo@abc.com</tt> que <tt>foo@xyz.com</tt>.<p>

Au haut de la page se trouve le formulaire pour entrer les d閠ails pour cr閑r un nouvel alias.  Et en dessous ce trouve la liste des alias et de leurs destinations des couriels redirig.  Pour 閐iter un alias, cliquer sur son nom.<p>

Si vous utilisez le module Majordomo, vous pouvez noter plusieurs alias comme <tt>Majordomo</tt>, <tt>owner-listname</tt> ou <tt>listname-request</tt>.  Ne pas modifier ces alias  moins de savoir ce que vous faites.<p>

<hr>
   0707010005abe9000081a40000000000000002000000013ac0389c000003d5000000200000000000000000000000000000002100000003reloc/sendmail/help/aliases.html  <header>Mail Aliases</header>

Mail aliases are sendmail's way of redirecting mail from some address
on your system to another destination. That destination can be a
user on your system, an email address on another system, a file or
the input to a program. Aliases apply for <b>all</b> domains for which
your system accepts email. Thus, if your system accepted mail for the
domains <tt>abc.com</tt> and <tt>xyz.com</tt>, an alias for the address
<tt>foo</tt> would redirect mail sent to both <tt>foo@abc.com</tt> and
<tt>foo@xyz.com</tt>. <p>

At the top of this page is a form for entering the details of a new mail
alias. Beneath the form is a list of existing aliases and the destination(s)
for redirected email. To edit an alias, click on its name. <p>

If you are using the Majordomo module, you may notice several aliases
like <tt>Majordomo</tt>, <tt>owner-listname</tt> or <tt>listname-request</tt>.
Do not modify these aliases unless you know what you are doing. <p>
<hr>

   0707010005abea000081a40000000000000002000000013ac0389c00000448000000200000000000000000000000000000002400000003reloc/sendmail/help/aliases.pl.html   <header>Aliasy pocztowe</header>

Aliasy pocztowe stanowi mechanizm sendmaila dla przekierowywania poczty
z&nbsp;pewnych adres體 w&nbsp;systemie gdzie indziej. Mo縠 to by inny
u縴tkownik twojego systemu, adres pocztowy obs硊giwany przez inny system,
plik lub przekierowanie do programu. Aliasy maj zastosowanie do
<b>wszystkich</b> domen, dla kt髍ych tw骿 system przyjmuje poczt.
Wobec czego, je縠li tw骿 system przyjmuje poczt dla domen <tt>abc.com</tt>
i&nbsp;<tt>xyz.com</tt>, utworzenie aliasu dla adresu <tt>foo</tt> spowoduje
przekierowanie poczty wys砤nej zar體no do <tt>foo@abc.com</tt>, jak te do
<tt>foo@xyz.com</tt>. <p>

W&nbsp;g髍nej cz甓ci strony znajduje si formularz do wprowadzania danych
dla nowego aliasu. Poni縠j formularza jest lista istniej眂ych alias體
i&nbsp;miejsc(a) przeznaczenia przekierowywanej poczty. Aby zmodyfikowa 
alias naci秐ij jego nazw. <p>

Je縠li u縴wasz modu硊 Majordomo, zauwa縴sz kilka alias體 takich, jak 
<tt>Majordomo</tt>, <tt>owner-listname</tt> lub <tt>listname-request</tt>.
Nie zmieniaj tych alias體, chyba 縠 wiesz co robisz. <p>
<hr>
0707010005abeb000081a40000000000000002000000013ac0389c00000459000000200000000000000000000000000000002700000003reloc/sendmail/help/aliases.ru_RU.html    <header>项黩钼 像邂漕龛禧</header>

项黩钼 锺邂漕龛禧 -  耧铖钺 镥疱磬镳噔脲龛 镱黩  sendmail  礤觐蝾瘥 噤疱耦 忄 耔耱屐 磬 漯筱桢 磬珥圜屙. 亦觇 磬珥圜屙桢 祛驽 猁螯 镱朦珙忄蝈朦 磬 忄 耔耱屐, 镱黩钼 噤疱 磬 漯筱铋 耔耱屐, 羿殡 桦 怩钿 镳钽疣祆. 像邂漕龛禧 镳桁屙桁 觐 <b>怦屐</b> 漕戾磬, 潆 觐蝾瘥 忄 耔耱屐 镳桧桁噱 镱黩. 亦觇 钺疣珙, 羼腓 忄 耔耱屐 镳桧桁噱 镳桧桁噱 镱黩 铗 漕戾眍 <tt>abc.com</tt>  <tt>xyz.com</tt>, 蝾 锺邂漕龛 潆 噤疱襦 <tt>foo</tt> 狍溴 镥疱磬镳噔螯 镱黩 镱覃豚屐簋 磬 <tt>foo@abc.com</tt>  <tt>foo@xyz.com</tt>.
<p>

 忮瘐 溧眄铋 耱疣龛鳆 磬躅滂蝰 纛痨 潆 忖钿 镟疣戾蝠钼 眍忸泐 镱黩钼钽 锺邂漕龛爨. 项 纛痨铋 磬躅滂蝰 耧桉铌 耋耱怏桴 锺邂漕龛祛  桴 磬珥圜屙 潆 镥疱磬镳噔脲龛 镱黩. 碾  疱溧牝桊钼囗 锺邂漕龛爨, 觌桕龛蝈 磬 邈 桁屙.
<p>

篷腓 恹 桉镱朦珞弪 祛潴朦 潆 Majordomo, 恹 祛驽蝈 筲桎弪 礤耜铍 镳邃铒疱溴脲眄 锺邂漕龛祛, 蜩镟 <tt>Majordomo</tt>, <tt>owner-listname</tt> 桦 <tt>listname-request</tt>. 湾 桤戾轵  锺邂漕龛禧 羼腓 恹 蝾黜 礤 筲屦屙  蝾, 黩 恹 溴豚弪.
<p>
<hr>

   0707010005abf0000081a40000000000000002000000013ac0389c00000459000000200000000000000000000000000000002700000003reloc/sendmail/help/aliases.ru_SU.html    <header>鹣拊献倥 鹩抛南紊唾</header>

鹣拊献倥 杏抛南紊唾 - 茉 有嫌下 信遗瘟幸磷膛紊 邢拊  sendmail  闻讼韵屹 聊遗酉 琢叟 由釉磐 瘟 囊涨膳 瘟谖赁盼裳. 袅松 瘟谖赁盼膳 拖峙 沦载 邢特谙琢耘特 瘟 琢叟 由釉磐, 邢拊献偈 聊遗 瘟 囊涨鲜 由釉磐, 屏侍 商 兹夏 幸锨伊屯. 鹩抛南紊唾 幸赏盼赏 讼 <b>子磐</b> 南团瘟, 奶 讼韵屹 琢哿 由釉磐 幸晌赏僚 邢拊. 袅松 下伊谙, 庞躺 琢哿 由釉磐 幸晌赏僚 幸晌赏僚 邢拊 显 南团蜗 <tt>abc.com</tt>  <tt>xyz.com</tt>, 韵 杏抛南紊 奶 聊遗恿 <tt>foo</tt> 抡呐 信遗瘟幸磷萄载 邢拊 邢淤塘磐绽 瘟 <tt>foo@abc.com</tt>  <tt>foo@xyz.com</tt>.
<p>

 着胰 牧挝鲜 釉伊紊觅 瘟认纳杂 葡彝 奶 鬃夏 辛伊团砸献 蜗紫窍 邢拊献锨 杏抛南紊土. 鹣 葡彝鲜 瘟认纳杂 有捎纤 诱菖釉渍垒扇 杏抛南紊拖  扇 瘟谖赁盼裳 奶 信遗瘟幸磷膛紊 邢拊. 涮  遗牧嗽梢献廖裳 杏抛南紊土, 颂伤紊耘 瘟 徘 赏盼.
<p>

逵躺 踪 捎邢特谡旁 拖恼特 奶 Majordomo, 踪 拖峙耘 兆赡旁 闻铀咸厮 幸拍闲遗呐膛挝偃 杏抛南紊拖, 陨辛 <tt>Majordomo</tt>, <tt>owner-listname</tt> 商 <tt>listname-request</tt>. 钆 哨团窝试 茉 杏抛南紊唾 庞躺 踪 韵尬 闻 兆乓盼  韵, 拊 踪 呐塘旁.
<p>
<hr>

   0707010005abf3000081a40000000000000002000000013ac0389c000003b6000000200000000000000000000000000000002400000003reloc/sendmail/help/aliases.sv.html   <header>E-postalias</header>

E-postalias 鋜 ett s鋞t f鰎 sendmail att skicka e-post vidare fr錸 en
adress i systemet. Mottagaren kan vara en anv鋘dare i systemet eller n錱on
annanstans, en fil eller ett program. Dessa alias g鋖ler f鰎 <b>alla</b>
dom鋘er som systemet tar emot e-post till. Om systemet t ex tar emot e-post
till dom鋘erna <tt>abc.com</tt> och <tt>xyz.com</tt>, kommer aliaset
<tt>foo</tt> att skicka vidare e-post b錮e till <tt>foo@abc.com</tt> och
<tt>foo@xyz.com</tt>.

<p<H鰃st upp p denna sida finns ett formul鋜 f鰎 uppgifter om nya e-postalias.
Nedanf鰎 formul鋜et finns en lista 鰒er befintliga alias med mottagare.
Klicka p ett alias f鰎 att 鋘dra uppgifter om det.

<p>Om du anv鋘der modulen Majordomo kommer det att finnas n錱ra f鰎definierade
alias, t ex <tt>Majordomo</tt>, <tt>owner-listname</tt> och
<tt>listname-request</tt>. 膎dra inga uppgifter f鰎 dessa alias om du inte
verkligen vet vad du h錶ler p med.
<hr>

  0707010005abf4000081a40000000000000002000000013ac0389c000002db000000200000000000000000000000000000002c00000003reloc/sendmail/help/aliases.zh_TW.Big5.html   <header>秎ン</header>

秎ン琌 Sendmail 穝旧眤╰参琘ㄇ秎ンㄤヘ夹よΑ. 硂ヘ夹琌眤╰参, ╰参筿秎ン, 郎┪块倒祘Α. 穦甅ノ<b>┮Τ</b>眤╰参钡Μ呼办; 碞琌弧狦眤╰参钡Μ倒 <tt>abc.com</tt> 籔 <tt>xyz.com</tt> 秎ン, 倒 <tt>foo</tt> 盢穦旧┮Τ倒 <tt>foo@abc.com</tt> 籔 <tt>foo@xyz.com</tt> 秎ン. <p>

硂郴狠琌块穝秎ン冈灿戈虫. セ陪ボ┮Τ瞷籔ㄤヘ夹. 璶絪胯, 璶翴匡ㄤ嘿. <p>

狦眤Τㄏノ Majordomo 家舱, 眤穦猔種ㄇ <tt>Majordomo</tt>, <tt>owner-listname</tt> ┪ <tt>listname-request</tt> 单单; ぃ璶跑硂ㄇ砞﹚, 埃獶眤絋﹚笵眤ぐ或. <p>
<hr>

 0707010005abf5000081a40000000000000002000000013ac0389c000000f0000000200000000000000000000000000000002700000003reloc/sendmail/help/edit_alias.es.html    <header>Editar Alias</header>

Esta p醙ina te permite editar un alias existente mediante la modificaci髇
de sus detalles y haciendo click en el bot髇 de <tt>Salvar</tt>. Para
borrar el alias, s韒plemente haz click en <tt>Borrar</tt>.
<hr>

0707010005abf6000081a40000000000000002000000013ac0389c00000078000000200000000000000000000000000000002700000003reloc/sendmail/help/edit_alias.fr.html    <header>蒬iter un Alias</header>

Cette page vous permet d'閐iter un alias existant en modifiant ses d閠ails.<p>

<hr>

0707010005abf7000081a40000000000000002000000013ac0389c000000cb000000200000000000000000000000000000002400000003reloc/sendmail/help/edit_alias.html   <header>Edit Alias</header>

This page allows you to edit an existing alias by modifying its details
and clicking on the <tt>Save</tt> button. To delete the alias, simply click
on <tt>Delete</tt>.
<hr>

 0707010005abf8000081a40000000000000002000000013ac0389c000000d2000000200000000000000000000000000000002700000003reloc/sendmail/help/edit_alias.pl.html    <header>Zmie alias</header>

Ta strona pozwala na zmian istniej眂ego aliasu poprzez modyfikacj jego
danych i naci秐i阠ie przycisku <tt>Zachowaj</tt>. Aby usun辨 alias, po prostu
naci秐ij <tt>Usu</tt>.
<hr>
  0707010005abf9000081a40000000000000002000000013ac0389c000000f8000000200000000000000000000000000000002a00000003reloc/sendmail/help/edit_alias.ru_RU.html <header>绣溧牝桊钼囗桢 像邂漕龛爨</header>

泥眄 耱疣龛鲟 镱玮铍弪 忄 疱溧牝桊钼囹 耋耱怏栝 锺邂漕龛 矬蝈 桤戾礤龛 邈 镟疣戾蝠钼  磬驵蜩 磬 觏铒牦 <tt>杨躔囗栩</tt>. 碾 箐嚯屙 锺邂漕龛爨 镳铖蝾 磬骒栩 磬 <tt>愉嚯栩</tt>.
<hr>

0707010005abfa000081a40000000000000002000000013ac0389c000000f8000000200000000000000000000000000000002a00000003reloc/sendmail/help/edit_alias.ru_SU.html <header>蚺牧嗽梢献廖膳 鹩抛南紊土</header>

淞挝裂 釉伊紊昧 邢谧咸雅 琢 遗牧嗽梢献猎 诱菖釉渍垒墒 杏抛南紊 姓耘 哨团闻紊 徘 辛伊团砸献  瘟至陨 瘟 宋闲苏 <tt>笙纫廖稍</tt>. 涮 漳撂盼裳 杏抛南紊土 幸嫌韵 瘟滞稍 瘟 <tt>跄撂稍</tt>.
<hr>

0707010005abfb000081a40000000000000002000000013ac0389c000000c4000000200000000000000000000000000000002700000003reloc/sendmail/help/edit_alias.sv.html    <header>膎dra alias</header>

P denna sida kan du 鋘dra uppgifter om ett befintligt alias. Tryck p
<tt>Spara</tt> n鋜 du 鋜 klar eller tryck p <tt>Ta bort</tt> f鰎 att ta
bort ett alias.
<hr>

0707010005abfc000081a40000000000000002000000013ac0389c00000099000000200000000000000000000000000000002f00000003reloc/sendmail/help/edit_alias.zh_TW.Big5.html    <header>絪胯</header>

硂琵眤竒パ跑冈灿戈<tt>纗</tt>秙, 絪胯瞷. 璶埃, 璶<tt>埃</tt>.
<hr>

   0707010005ac02000081a40000000000000002000000013ac0389c00000880000000200000000000000000000000000000002200000003reloc/sendmail/help/intro.es.html <header>Configuraci髇 de Sendmail</header>

<h3>Introducci髇 a Sendmail</h3>
Sendmail es el programa est醤dar de Unix para transportar y entregar correo.
Cuando un usuario bajo tu sistema desea enviar correo a alguien de otra
m醧uina sendmail es el programa que realiza actualmente el proceso de
entregar el correo. Simil醨mente, cuando alguien de otro sistema env韆
correo a uno de tus usuarios, sendmail recibir el correo y lo almacenar
en el archivo de correo del usuario. <p>

Sendmail es s髄amente un MTA (agente de transporte de correo "mail"),
queriendo esto decir que no presenta ninguna interfaz de usuario a la
gente que desee enviar correo. Programas como Eudora, elm o /bin/mail con
los que los usuarios interact鷄n son llamados MUA (agentes de correo del
usuario). Un MUA no entrega correo por s mismo, en su lugar s髄o pasa
el correo a sendmail para que 閟te lo haga. <p>

Los MUAs de usuario pueden ser ejecutados dir閏tamente en tu sistema (MUAs
como pine, elm o /bin/mail) o en una m醧uina a parte que puede ser un PC
monousuario (para MUAs como Eudora, Exchange y Communicator de Netscape).
En el primer caso, el correo es enviado dir閏tamente invocando sendmail y
pas醤dole el mensaje y recibido mediante la lectura del archivo de spool
de correo del usuario. Para MUAs ejecutados en otra m醧uina, el correo es
enviado conectando al proceso de sendmail de tu sistema mediante el
protocolo SMTP y recibido conectando a un servidor a parte POP3. <p>

<h3>El M骴ulo Sendmail</h3>
La p醙ina principal de este m骴ulo muestra una tabla de iconos, cada uno se
usa para configurar diferentes partes de la funcionalidad de sendmail.
Sin embargo, las caracter韘ticas que hay tras algunos iconos puede que no
est閚 disponibles si no han sido configuradas en tu <tt>sendmail</tt>.
Al instalar sendmail, puedes seleccionar qu caracter韘ticas est醤 disponibles
mediante la edici髇 de un <tt>.mc</tt> que es convertido mediante <tt>m4</tt>
en tu <tt>sendmail.cf</tt>. Muchas caracter韘ticas (como el Mapeo de
Direcciones, Enmascaramiento de Dominio y Control de 'a Rechazar') puede
que no est閚 disponibles a menos que las hayas activado en la instalaci髇. <p>

<hr>

0707010005ac04000081a40000000000000002000000013ac0389c00000842000000200000000000000000000000000000002200000003reloc/sendmail/help/intro.fr.html <header> Configuration de Sendmail</header>

<h3>Introduction  Sendmail</h3>
Sendmail est l'application standard sous Unix de transport et de livraison de couriel.  Quand un usager sur votre syst鑝e veut envoyer un couriel  quelqu'un d'un autre h魌e, Sendmail est le programme qui fait le processus d'envoyer le couriel.  De la m阭e fa鏾n, quand quelqu'un d'un autre syst鑝e envoie un couriel  un de vos usager, Sendmail le re鏾it et le sauvegarde dans le fichier de l'usager.<p>

Sendmail est un MTA (mail transport agent) seulement, ce qui signifie qu'il ne pr閟ente aucune interface aux personnes qui veulent envoyer de couriel.  Des applications Eudora, elm ou /bin/mail sont ce qui interagit avec l'utilisateur, ils sont appel閟 MUA (mail user agents).  Un MUA ne livre pas les couriel en lui-m阭e, il simplifie l'envoie de couriel  Sendmail pour qu'il le livre.<p>

Les MUA des usagers peuvent s'ex閏uter directement sur votre syst鑝e (comme pine, elm ou /bin/mail), ou sur un h魌e s閜ar qui peut 阾re un PC d'un simple usager ( comme Eudora, Exchange et Netscape Communicator).  Dans le premier cas, le couriel peut 阾re envoy directement  Sendmail et re鐄 dans le fichier usager de file d'attente.  Pour les MUA sur d'autre h魌es, les couriel sont envoy en se connectant au processus de Sendmail utilisant le protocole SMTP et en les recevants en se connectant sur un serveur  part POP3.<p>

<h3>Le Module Sendmail</h3>
La page principale de ce module affiche une table avec des ic鬾es, chacun pour configurer une partie diff閞ente des fonctionnalit閟 de Sendmail.  Cependant, certaine fonction derri鑢e certains ic鬾es peuvent ne pas 阾re disponibles, s'ils n'ont pas 閠 configur dans <tt>sendmail.cf</tt>.  Au moment d'installer Sendmail, vous pouvez choisir quel fonctions seront disponible en 閐itant <tt>.mc</tt>, qui est converti par <tt>m4</tt> en votre <tt>sendmail.cf</tt>.  Plusieurs fonctions (comme les plans d'adresse, le camouflage de domaine et le contr鬺e de spam) peuvent ne pas 阾re disponible tant que vous ne les activ pas au moment de l'installation.<p>

<hr>
  0707010005ac06000081a40000000000000002000000013ac0389c000008cd000000200000000000000000000000000000002200000003reloc/sendmail/help/intro.pl.html <header>Konfiguracja Sendmaila</header>

<h3>Wprowadzenie do Sendmaila</h3>
Sendmail jest standardowym uniksowym programem do przekazywania
i&nbsp;dor阠zania poczty. Kiedy kt髍y z&nbsp;u縴tkownik體 twojego systemu
zechce wys砤 wiadomo舵 na inny komputer, sendmail pe硁i rol programu
dor阠zaj眂ego. Podobnie, kiedy kto z&nbsp;innego systemu wy秎e wiadomo舵
do kt髍ego z&nbsp;twoich u縴tkownik體, sendmail odbierze t wiadomo舵
i&nbsp;zachowa j w&nbsp;pliku z&nbsp;jego poczt. <p>

Sendmail jest jedynie MTA (mail transport agent - programem do transportu
poczty), tzn. 縠 on nie zawiera 縜dnego interfejsu u縴tkownika dla os骲
chc眂ych wys砤 wiadom蠖. Programy takie jak Eudora, elm czy /bin/mail,
kt髍ymi u縴tkownik si bezpo秗ednio komunikuje s nazywane MUA (mail user
agent - program pocztowy u縴tkownika). MUA nie dor阠za wiadomo禼i
samodzielnie, a&nbsp;jedynie przekazuje j do sendmaila w&nbsp;celu
dor阠zenia. <p>

MUA u縴tkownik體 mog by uruchomione zar體noo bezpo秗ednio w&nbsp;twoim
systemie (MUA takie jak: pine, elm, czy /bin/mail), jak te na osobnym
komputerze, kt髍ym mo縠 by osobisty PC (w przypadku MUA takich jak: Eudora,
Exchange, Outlook, czy Netscape Communicator). W&nbsp;pierwszym przypadku
poczta jest wysy砤na poprzez bezpo秗ednie wywo砤nie sendmaila
i&nbsp;przekazanie mu wiadomo禼i, za odbierana poprzez odczyt z&nbsp;pliku
poczty u縴tkownika. W&nbsp;przypadku MUAs dzia砤j眂ych na innych komputerach
poczta jest wysy砤na poprzez po潮czenie si z&nbsp;sendmailem na twoim
komputerze przy u縴ciu protoko硊 SMTP, a odbierana poprzez po潮czenie
z&nbsp;osobnym serwerem POP3 lub IMAP. <p>

<h3>Modu Sendmaila</h3>
G丑wna strona tego modu硊 pokazuje tablic ikon, ka縟a do konfiguracji
innego zestawu funkcji sendmaila. Jednak縠, funkcje za niekt髍ymi ikonami
mog by niedost阷ne, je秎i nie zosta硑 ustawione w twoim
<tt>sendmail.cf</tt> podczas instalacji. W czasie instalacji mo縩a wybra,
kt髍e funkcje maj by dost阷ne poprzez edycj pliku <tt>.mc</tt>
przetwarzanego p蠹niej przez program <tt>m4</tt> do postaci

<tt>sendmail.cf</tt>. Wiele funkcji (takich jak: Mapowanie Adres體,
Maskowanie Domen czy Kontrola Spamu) mo縠 by dost阷nych jedynie pod
warunkiem, 縠 zosta硑 w潮czone podczas instalacji. <p>
<hr>
   0707010005ac07000081a40000000000000002000000013ac0389c000008f6000000200000000000000000000000000000002500000003reloc/sendmail/help/intro.ru_RU.html  <header>暑眙桡箴圉 Sendmail</header>

<h3>骡邃屙桢  Sendmail</h3>
Sendmail -  耱囗溧痱磬 Unix 镳钽疣祆 潆 铗镳噔觇  漕耱噔觇 镱黩 (镱黩钼钽 蝠囗耧铕蜞). 暑沅 镱朦珙忄蝈朦 忄 耔耱屐 躅麇 铗镳噔栩 尻蝠铐眢 镱黩 觐祗-腓犷 磬 漯筱铎 躅耱, 蝾 sendmail 恹镱腠弪 怦 礤钺躅滂禧 溴轳蜮 镱 漕耱噔赍 镱黩. 理嚯钽梓眍, 羼腓 牝-腓犷 磬 漯筱铎 躅耱 镱覃豚弪 镱黩 钿眍祗 桤 镱朦珙忄蝈脲 忄 耔耱屐, sendmail 镳桧桁噱  镱黩  耦躔囗弪 澹  镱黩钼 羿殡圊 (镱黩钼 赅) 镱朦珙忄蝈脲.
<p>

Sendmail -  蝾朦觐 MTA (mail transport agent - 蝠囗耧铕蝽 镱黩钼 嚆屙). 蒡 铉磬鬣弪, 黩 铐 礤 镳邃铖蜞怆弪 赅觐泐-腓犷 桧蝈痿彘襦 潆 镱朦珙忄蝈脲 疣犷蜞桴  镱黩铋. 橡钽疣祆 蜩镟 Eudora, elm 桦 /bin/mail  觐蝾瘥扈 钺眍 疣犷蜞 镱朦珙忄蝈腓 - 磬琨忄 MUAs (mail user agents - 镱黩钼 镱朦珙忄蝈朦耜桢 嚆屙螓). 燕扈 镱 皴徨 MUA 礤 漕耱噔 镱黩, 铐 镳铖蝾 镥疱溧 澹 sendmail 潆 漕耱噔觇.
<p>

项朦珙忄蝈朦耜桢 嚆屙螓 (MUAs) 祛泱 桉镱腠螯 赅 礤镱耩邃耱忮眄 磬 忄 耔耱屐 (MUAs 蜩镟 pine, elm 桦 /bin/mail), 蜞  磬 铗溴朦眍 躅耱, 觐蝾瘥 祛驽 猁螯 忄 鲜 (潆 MUAs 蜩镟 Eudora, Exchange  Netscape Communicator).  镥疴铎 耠篦噱 铗镳噔赅 镱黩 铖簌羼蜮弪 镳禧 玎矬耜铎 镳钽疣祆 sendmail  镥疱溧麇 彘 镱黩钼钽 耦钺龛,  镳桢 铖簌羼蜮弪 黩屙桢 镱朦珙忄蝈朦耜钽 镱黩钼钽 羿殡 (镱黩钼钽 赅). 骂 怛铕铎 耠篦噱 (潆 MUAs 磬 铗溴朦眍 躅耱) 镱黩 铗覃豚弪 矬蝈 耦邃桧屙  镳铞羼耦 sendmail 磬 忄 耔耱屐 镱 镳铗铌铍 SMTP,  镱塍麇龛 矬蝈 耦邃桧屙  铗溴朦睇 POP3 皴疴屦铎.
<p>

<h3>填潴朦 Sendmail</h3>
秒噔磬 耱疣龛鲟 溧眄钽 祛潴 镱赅琨忄弪 耧桉铌 镨牝钽疣祆, 恹犷 赅觐-腓犷 桤 龛 镱玮铍弪 磬耱疣桠囹 疣珉梓睇 囫镥牝 趔黻鲨铐桊钼囗 sendmail. 武磬觐 礤觐蝾瘥 鬣耱 觐眙桡箴圉梃 祛泱 猁螯 礤漕耱箫睇, 羼腓  羿殡 觐眙桡箴圉梃 <tt>sendmail.cf</tt> 礤 耦铗忮蝰蜮簋 滂疱牝桠. 橡 桧耱嚯鲨 sendmail, 恹 祛驽蝈 恹狃囹 - 赅觇 镟疣戾蝠 漕耱箫睇, 矬蝈 疱溧牝桊钼囗 羿殡 <tt>.mc</tt>, 觐蝾瘥  疋铪 铟屦邃 觐祜桦桊箦蝰  忄 <tt>sendmail.cf</tt>  镱祛 爨牮铒痤鲥耨铕 <tt>m4</tt>. 添铈羼蜮 镟疣戾蝠钼 (蜞觇 赅 冷疱耥 项漶蜞眍怅, 念戾眄 锑耜桊钼赅  暑眚痤朦 Spam) 祛泱 猁螯 礤漕耱箫睇 漕 蝈 镱, 镱赅 恹 礤 嚓蜩忤玷痼弪 桴 忸 怵屐 桧耱嚯鲨.
<p>

<hr>

  0707010005ac08000081a40000000000000002000000013ac0389c000008f6000000200000000000000000000000000000002500000003reloc/sendmail/help/intro.ru_SU.html  <header>胂纹汕找撩裳 Sendmail</header>

<h3>髯拍盼膳  Sendmail</h3>
Sendmail - 茉 釉廖牧以瘟 Unix 幸锨伊屯 奶 显幸磷松  南釉磷松 邢拊 (邢拊献锨 砸廖有弦粤). 胂悄 邢特谙琢耘特 琢叟 由釉磐 认夼 显幸磷稍 芴潘砸衔握 邢拊 讼驼-躺孪 瘟 囊涨贤 认釉, 韵 sendmail 踪邢涛雅 子 闻下认纳唾 呐视宰裳 邢 南釉磷伺 邢拊. 嵛撂锨赊蜗, 庞躺 嗽-躺孪 瘟 囊涨贤 认釉 邢淤塘旁 邢拊 夏蜗驼 哨 邢特谙琢耘膛 琢叟 由釉磐, sendmail 幸晌赏僚 茉 邢拊  酉纫廖雅 牛  邢拊献偃 屏侍寥 (邢拊献偃 演伤寥) 邢特谙琢耘膛.
<p>

Sendmail - 茉 韵特讼 MTA (mail transport agent - 砸廖有弦晕偈 邢拊献偈 燎盼).  馅瘟蘖旁, 拊 衔 闻 幸拍嫌粤滋雅 肆讼窍-躺孪 晌耘移攀恿 奶 邢特谙琢耘膛 伊孪粤垒扇  邢拊鲜. 鹨锨伊屯 陨辛 Eudora, elm 商 /bin/mail  讼韵屹蜕 下俎蜗 伊孪粤涝 邢特谙琢耘躺 - 瘟谫琢涝友 MUAs (mail user agents - 邢拊献倥 邢特谙琢耘特铀膳 燎盼再). 罅蜕 邢 优屡 MUA 闻 南釉磷萄涝 邢拊, 衔 幸嫌韵 信遗牧涝 牛 sendmail 奶 南釉磷松.
<p>

鹣特谙琢耘特铀膳 燎盼再 (MUAs) 拖钦 捎邢涛言赜 肆 闻邢右拍釉着挝 瘟 琢叟 由釉磐 (MUAs 陨辛 pine, elm 商 /bin/mail), 粤  瘟 显呐特蜗 认釉, 讼韵屹 拖峙 沦载 琢 痣 (奶 MUAs 陨辛 Eudora, Exchange  Netscape Communicator).  信易贤 犹辙僚 显幸磷肆 邢拊 嫌蛰庞宰萄旁友 幸淹偻 诹姓铀贤 幸锨伊屯 sendmail  信遗牧夼 攀 邢拊献锨 酉下菖紊,  幸膳 嫌蛰庞宰萄旁友 拊盼膳 邢特谙琢耘特铀锨 邢拊献锨 屏侍 (邢拊献锨 演伤). 飨 自弦贤 犹辙僚 (奶 MUAs 瘟 显呐特蜗 认釉) 邢拊 显淤塘旁友 姓耘 酉拍晌盼裳  幸厦庞酉 sendmail 瘟 琢叟 由釉磐 邢 幸显纤咸 SMTP,  邢陶夼紊 姓耘 酉拍晌盼裳  显呐特钨 POP3 优易乓贤.
<p>

<h3>硐恼特 Sendmail</h3>
缣磷瘟 釉伊紊昧 牧挝锨 拖恼萄 邢肆谫琢旁 有捎纤 猩嗽锨伊屯, 踪孪 肆讼-躺孪 哨 紊 邢谧咸雅 瘟釉伊勺猎 伊谔赊钨 劣信嗽 普嗡蒙衔梢献廖裳 sendmail. 锬瘟讼 闻讼韵屹 蘖釉 讼纹汕找撩缮 拖钦 沦载 闻南釉招钨, 庞躺  屏侍 讼纹汕找撩缮 <tt>sendmail.cf</tt> 闻 酉显着杂宰绽萆 纳遗嗽勺. 鹨 晌釉撂萄蒙 sendmail, 踪 拖峙耘 踪乱猎 - 肆松 辛伊团砸 南釉招钨, 姓耘 遗牧嗽梢献廖裳 屏侍 <tt>.mc</tt>, 讼韵屹  幼侠 限乓拍 讼托商梢张杂  琢 <tt>sendmail.cf</tt>  邢拖葚 土艘闲蚁门佑弦 <tt>m4</tt>. 砦现庞宰 辛伊团砸献 (粤松 肆 崮遗游倥 鹣挠粤蜗姿, 湎团挝裂 砹铀梢献肆  胂卧蚁特 Spam) 拖钦 沦载 闻南釉招钨 南 耘 邢, 邢肆 踪 闻 了陨咨谏艺旁 扇 紫 滓磐 晌釉撂萄蒙.
<p>

<hr>

  0707010005ac09000081a40000000000000002000000013ac0389c00000752000000200000000000000000000000000000002200000003reloc/sendmail/help/intro.sv.html <header>Sendmail-inst鋖lningar</header>

<h3>Introduktion till Sendmail</h3>
Sendmail 鋜 standard-Unix-programmet f鰎 e-postbefordran. Om en anv鋘dare i
systemet vill skicka e-post till n錱on som sitter vid en annan dator 鋜 det
sendmail som skickar e-postmeddelandet. P liknande s鋞t 鋜 det sendmail
som tar emot e-postmeddelanden fr錸 andra system och lagrar dem i
anv鋘darens e-postfil.

<p>Sendmail 鋜 bara en MTA (mail transport agent), vilket betyder att den
inte har n錱ot anv鋘dargr鋘ssnitt f鰎 den som vill skicka ett
e-postmeddelande. Program som anv鋘darna k鰎 f鰎 att skicka och ta emot
e-post, som Eudora, elm och /bin/mail, kallas MUA (mail user agent). En MUA
skickar inte e-post, utan vidarebefordrar den endast till sendmail, som
f錼 ta hand om sj鋖va skickandet.

<p>En MUA kan k鰎as p systemet (t ex pine, elm och /bin/mail) eller p en
separat dator (t ex Eudora, Exchange och Netscape Communicator). I det
f鰎sta fallet skickas e-post genom att sendmail direkt kontaktas och
meddelandet 鰒erf鰎s, och e-post tas emot genom att meddelandet lagras i
anv鋘darens e-post-spool-fil, d鋜 MUAn l鋝er det. Om en MUA k鰎s p en ensam
dator skickas
e-post genom att datorn kopplar upp sig till sendmail-processen p systemet
med SMTP-protokollet, och e-post tas emot genom att datorn kopplar upp sig
till en s鋜skild POP3-server.

<h3>Sendmail-modulen</h3>
Startsidan f鰎 denna modul inneh錶ler en tabell med ikoner, d鋜 varje ikon
representerar en del av sendmails funktionalitet. En del funktioner bakom
ikonerna kan saknas om de inte har satts upp i <tt>sendmail.cf</tt>. N鋜
man installerar sendmail kan man v鋖ja de funktioner som ska finnas genom att
鋘dra en <tt>.mc</tt> som konverteras av <tt>m4</tt> till <tt>sendmail.cf</tt>.
M錸ga funktioner, t ex dom鋘maskering och spamskydd, m錽te aktiveras vid
installationen f鰎 att finnas tillg鋘gliga.

<hr>

  0707010005ac0a000081a40000000000000002000000013ac0389c00000537000000200000000000000000000000000000002a00000003reloc/sendmail/help/intro.zh_TW.Big5.html <header>Sendmail 舱篈</header>

<h3>Sendmail 虏ざ</h3>
Sendmail 琌夹非 Unix 秎ン肚块籔患癳祘Α. 讽眤╰参ㄏノ稱璶盚筿秎ン倒ㄤ诀ㄏノ, Sendmail 琌磅︽龟悔患癳祘祘Α. , 癸ㄤ╰参ㄏノ盚癳秎ン倒眤╰参ㄏノ, Sendmail 穦钡Μ硂ㄇ秎ン纗ㄏノ獺絚郎ぇい. <p>

Sendmail 琌 MTA (秎ン肚块瞶), 硂ボぃヴㄏノざ倒璶患癳秎ン. ㄤㄒ Eudora, elm ┪ /bin/mail 琌籔ㄏノが笆 MUA (秎ンㄏノ瞶). 礛τ MUA ぃ穦患癳秎ン, τㄏ矪瞶璶―パ Sendmail 璽砫患癳. <p>

ㄏノ MUA 钡眤╰参磅︽ (ㄒ pine, elm ┪ /bin/mail) ┪ㄤ PC 磅︽ (ㄒ Eudora, Exchange ┪ Netscape 硄癟產). 材猵, 秎ン琌钡㊣ Sendmail, 盢秎ンセ砰癳倒 Sendmail; ┪钡弄ㄏノ獺ン︻郎. 癸ㄤ╰参磅︽ MUA τē, 患癳秎ン琌竒パ SMTP 籔眤╰参 Sendmail 祘硈钡, ㄏノ肂 POP3 狝竟钡Μ獺ン. <p>

<h3>Sendmail 家舱</h3>
硂家舱陪ボ╰瓜ボ, –常舱篈ぃ场だ Sendmail . 礛τ, 琘ㄇ瓜ボ┮癸莱ぃㄏノ. 硂琌眤 <tt>sendmail.cf</tt> い砞﹚⊿Τ闽. 讽杆 Sendmail , 眤絪胯 <tt>.mc</tt> 郎匡拒璶ㄏノ,  <tt>m4</tt> 锣传Θ眤 <tt>semdmail.cf</tt>. 砛 (ㄒ秎ン癸莱, 呼办鞍杆籔︰В秎ン北单) ゲ斗璶眤杆も笆币笆ぇ. <p>

<hr>

 0707010005ac0b000081a40000000000000002000000013ac0389c000000e6000000200000000000000000000000000000003700000003reloc/sendmail/help/opt_ConnectionRateThrottle.es.html    <header>M醲imas Conexiones / segundo</header>

Determina el m醲imo n鷐ero de mensajes entrantes de correo aceptados por
segundo. Es 鷗il si el correo entrante est utilizando demasiada memoria
o tiempo de UCP de tu sistema.
<hr>

  0707010005ac0c000081a40000000000000002000000013ac0389c000000dd000000200000000000000000000000000000003700000003reloc/sendmail/help/opt_ConnectionRateThrottle.fr.html    <header>Connexions Maximum par Secondes</header>

D閒init le nombre maximum de couriels accept par secondes.  Utile si les couriels entrant utilise trop de m閙oire et de puissance processeur sur votre syst鑝e.<p>

<hr>

   0707010005ac24000081a40000000000000002000000013ac0389c00000164000000200000000000000000000000000000002300000003reloc/sendmail/help/opt_DH.es.html    <header>Remitir correo de usuarios locales a m醧uina</header>

A menos que se seleccione <tt>Entregar localmente</tt>, todo el correo que
ser韆 normalmente entregado a usuarios locales ser remitido a la m醧uina
especificada. Es 鷗il si tu sistema es una estaci髇 de trabajo compartida
y deseas que todo el correo vaya a un servidor de correo com鷑.
<hr>

0707010005ac0d000081a40000000000000002000000013ac0389c000000cf000000200000000000000000000000000000003400000003reloc/sendmail/help/opt_ConnectionRateThrottle.html   <header>Max connections / second</header>

Determines the maximum number of incoming email messages accepted per
second. Useful if incoming mail is using up too much memory or CPU time
on your system.
<hr>

 0707010005ac0e000081a40000000000000002000000013ac0389c00000128000000200000000000000000000000000000003700000003reloc/sendmail/help/opt_ConnectionRateThrottle.pl.html    <header>Maks. ilo舵 po潮cze / sekund</header>

Ta opcja okre秎a maksymaln ilo舵 wiadomo禼i przychodz眂ych, kt髍e mog by
przyj阾e w&nbsp;ci眊u sekundy. U縴teczna, je秎i odbieranie poczty
przychodz眂ej zajmuje zbyt du縪 pami阠i RAM lub nadmiernie obci笨a procesor
w&nbsp;twoim systemie.

<hr>
0707010005ac0f000081a40000000000000002000000013ac0389c000000e7000000200000000000000000000000000000003a00000003reloc/sendmail/help/opt_ConnectionRateThrottle.ru_RU.html <header>锑犟. 耦邃桧屙栝 / 皴牦礓</header>

物疱溴弪 爨犟桁嚯铄 麒耠 怩钿 镱黩钼 耦狴屙栝  皴牦礓. 项脲珥 铒疱溴螯, 羼腓 怩钿 镱黩 铗龛爨弪 耠桫觐 祉钽 疱耋瘃钼 镟蜩 桦 镳铞羼耦疣 磬 忄 耔耱屐.
<hr>

 0707010005ac10000081a40000000000000002000000013ac0389c000000e7000000200000000000000000000000000000003a00000003reloc/sendmail/help/opt_ConnectionRateThrottle.ru_SU.html <header>砹擞. 酉拍晌盼墒 / 优苏文</header>

镄遗呐萄旁 土擞赏撂匚吓 奚犹 兹夏演扇 邢拊献偃 酉螺盼墒  优苏文. 鹣膛谖 闲遗呐萄载, 庞躺 兹夏演裂 邢拊 显紊土旁 犹邵讼 臀锨 遗诱矣献 辛脱陨 商 幸厦庞酉伊 瘟 琢叟 由釉磐.
<hr>

 0707010005ac22000081a40000000000000002000000013ac0389c000000fa000000200000000000000000000000000000003700000003reloc/sendmail/help/opt_ConnectionRateThrottle.sv.html    <header>Maximalt antal uppkopplingar/sekund</header>

H鋜 anges det maximala antalet inkommande e-postmeddelanden som kan tas
emot varje sekund. Detta kan vara anv鋘dbart om inkommande e-post tar upp
f鰎 mycket minne eller CPU-tid p systemet.
<hr>

  0707010005ac23000081a40000000000000002000000013ac0389c00000096000000200000000000000000000000000000003f00000003reloc/sendmail/help/opt_ConnectionRateThrottle.zh_TW.Big5.html    <header>–い程硈挡计</header>

∕﹚–┮璶钡Μ程秈秎ン癟计ヘ. 讽眤╰参Τび獺ン秈ㄏノび CPU 丁┪癘拘砰盢穦Τ腊.
<hr>

  0707010005ac25000081a40000000000000002000000013ac0389c0000016f000000200000000000000000000000000000002300000003reloc/sendmail/help/opt_DH.fr.html    <header>Diriger les Couriels des Usagers Locaux  l'H魌e</header>

Tant que <tt>Livr localement</tt> est choisit, tout les couriels qui devraient normalement 阾re envoy aux usagers locaux vont 阾re envoy  l'h魌e sp閏ifi.  Utile si votre syst鑝e est une station de travail partag et que vous voulez que tout vos couriels aille  un serveur commun.<p>

<hr>
 0707010005ac26000081a40000000000000002000000013ac0389c0000012d000000200000000000000000000000000000002000000003reloc/sendmail/help/opt_DH.html   <header>Forward mail for local users to host</header>

Unless <tt>Deliver locally</tt> is chosen, all mail that would normally
be delivered to local users will be forwarded to the specified host.
Useful if your system is a shared workstation and you want
all mail to go to a common mail server.
<hr>

   0707010005ac27000081a40000000000000002000000013ac0389c00000172000000200000000000000000000000000000002300000003reloc/sendmail/help/opt_DH.pl.html    <header>Przeka poczt dla u縴tkownik體 lokalnych do komputera</header>

Je縠li nie wybrano <tt>Dor阠zaj lokalnie</tt>, ca砤 poczta, kt髍a by砤by
normalnie dor阠zana lokalnym u縴tkownikom, zostanie przekazana do podanego
komputera. U縴teczne, je秎i tw骿 system jest wsp蟪u縴tkowan stacj robocz
i&nbsp;chcesz, aby ca砤 poczta trafia砤 na wsp髄ny serwer pocztowy.
<hr>
  0707010005ac28000081a40000000000000002000000013ac0389c0000016e000000200000000000000000000000000000002600000003reloc/sendmail/help/opt_DH.ru_RU.html <header>襄疱覃豚螯 镱黩 腩赅朦睇 镱朦珙忄蝈脲 磬 躅耱</header>

项赅 礤 恹狃囗 <tt>祟赅朦磬 漕耱噔赅</tt>, 怦 镱黩, 觐蝾疣  眍痨 漕耱噔弪 腩赅朦睇 镱朦珙忄蝈, 狍溴 镥疱磬镳噔脲磬 磬 箨噻囗睇 躅耱. 泥眄 镟疣戾蝠 镱脲珏, 羼腓 忄 耔耱屐 怆弪 疣玟咫屐铋 疣犷麇 耱囗鲨彘  恹 躅蜩蝈, 黩钺 怦 镱黩 躅滂豚 磬 钺 镱黩钼 皴疴屦.
<hr>

  0707010005ac29000081a40000000000000002000000013ac0389c0000016e000000200000000000000000000000000000002600000003reloc/sendmail/help/opt_DH.ru_SU.html <header>鹋遗淤塘载 邢拊 滔肆特钨 邢特谙琢耘膛 瘟 认釉</header>

鹣肆 闻 踪乱廖 <tt>煜肆特瘟 南釉磷肆</tt>, 子 邢拊, 讼韵伊  蜗彝 南釉磷萄旁友 滔肆特钨 邢特谙琢耘萄, 抡呐 信遗瘟幸磷膛瘟 瘟 账邻廖钨 认釉. 淞挝偈 辛伊团砸 邢膛谂, 庞躺 琢哿 由釉磐 炎萄旁友 伊谀盘雅拖 伊孪夼 釉廖蒙攀  踪 认陨耘, 拊下 子 邢拊 认纳塘 瘟 下萆 邢拊献偈 优易乓.
<hr>

  0707010005ac2a000081a40000000000000002000000013ac0389c00000145000000200000000000000000000000000000002300000003reloc/sendmail/help/opt_DH.sv.html    <header>Skicka e-post till lokala anv鋘dare vidare till dator</header>

Om man inte har valt <tt>Dela ut lokalt</tt> kommer all e-post till lokala
anv鋘dare att skickas till den angivna datorn. Detta 鋜 anv鋘dbart om
systemet 鋜 en delad arbetsstation och man vill att e-post ska skickas till
en gemensam e-postserver.
<hr>

   0707010005ac2b000081a40000000000000002000000013ac0389c000000e4000000200000000000000000000000000000002b00000003reloc/sendmail/help/opt_DH.zh_TW.Big5.html    <header>セ狠ㄏノ锣癳秎ン诀</header>

埃獶匡拒<tt>セ狠患癳</tt>, ┮Τ常穦患癳セ狠ㄏノ秎ン常穦砆癳﹚诀. 讽眤╰参琌だㄉ┦, τ眤辨┮Τ秎ン常穦笷秎ン狝竟盢穦Τノ.
<hr>

0707010005ac2c000081a40000000000000002000000013ac0389c000001a1000000200000000000000000000000000000002300000003reloc/sendmail/help/opt_DR.es.html    <header>Remitir nombres de usuario no calificados a m醧uina</header>

A menos que se seleccione <tt>Entregar localmente</tt>, cualquier correo
enviado por los usuarios locales a un nombre de usuario sin calificar
(como <tt>jcameron</tt>) ser remitido a la m醧uina especificada. Es 鷗il
si tu sistema es una estaci髇 de trabajo compartida y deseas que todo el
correo vaya a parar a un servidor de correo com鷑.
<hr>

   0707010005ac2d000081a40000000000000002000000013ac0389c00000183000000200000000000000000000000000000002300000003reloc/sendmail/help/opt_DR.fr.html    <header>Diriger les Noms d'Usager Non Qualifi  l'H魌e</header>

Tant que <tt>Livr localement</tt> est choisit, tout les couriels envoy par un usager local  un usager non qualifi (sans de @ et de nom de domaine) seront envoy  l'h魌e sp閏ifi.  Utile si votre syst鑝e est une station de travail partag et que vous voulez que tout vos couriels aille  un serveur commun.<p>

<hr>

 0707010005ac41000081a40000000000000002000000013ac0389c00000146000000200000000000000000000000000000002000000003reloc/sendmail/help/opt_DR.html   <header>Forward unqualified usernames to host</header>

Unless <tt>Deliver locally</tt> is chosen, any mail sent by local users to
an unqualified username (like <tt>jcameron</tt>) will be forwarded to the
specified host. Useful if your system is a shared workstation and you want
all mail to go to a common mail server.
<hr>

  0707010005ac42000081a40000000000000002000000013ac0389c00000193000000200000000000000000000000000000002300000003reloc/sendmail/help/opt_DR.pl.html    <header>Przeka poczt z&nbsp;niepe硁ym adresem do komputera</header>

Je縠li nie wybrano <tt>Dor阠zaj lokalnie</tt>, ca砤 poczta wys砤na przez
lokalnych u縴tkownik體 na niepe硁y adres docelowy (jak np. <tt>jcameron</tt>)
zostanie przekazana do podanego komputera. U縴teczne, je秎i tw骿 system jest
wsp蟪u縴tkowan stacj robocz i&nbsp;chcesz, aby ca砤 poczta trafia砤 na
wsp髄ny serwer pocztowy.
<hr>
 0707010005ac43000081a40000000000000002000000013ac0389c0000019c000000200000000000000000000000000000002600000003reloc/sendmail/help/opt_DR.ru_RU.html <header>襄疱覃豚螯 镱黩 礤桤忮耱睇 镱朦珙忄蝈脲 磬 躅耱</header>

篷腓 礤 恹狃囗 <tt>祟赅朦磬 漕耱噔赅</tt>, 怦 镱黩 镱覃豚屐 腩赅朦睇扈 镱朦珙忄蝈扈 潆 礤桤忮耱眍泐 镱朦珙忄蝈 (磬镳桁屦 <tt>jcameron</tt>) 狍溴 镥疱磬镳噔脲磬 磬 箨噻囗睇 躅耱. 泥眄 忸珈铈眍耱 镱脲珥, 羼腓 忄 耔耱屐 怆弪 疣玟咫屐铋 疣犷麇 耱囗鲨彘  恹 躅蜩蝈, 黩钺 怦 镱黩 躅滂豚 磬 钺 镱黩钼 皴疴屦.
<hr>

0707010005ac44000081a40000000000000002000000013ac0389c0000019c000000200000000000000000000000000000002600000003reloc/sendmail/help/opt_DR.ru_SU.html <header>鹋遗淤塘载 邢拊 闻哨着釉钨 邢特谙琢耘膛 瘟 认釉</header>

逵躺 闻 踪乱廖 <tt>煜肆特瘟 南釉磷肆</tt>, 子 邢拊 邢淤塘磐裂 滔肆特钨蜕 邢特谙琢耘萄蜕 奶 闻哨着釉蜗窍 邢特谙琢耘萄 (瘟幸赏乓 <tt>jcameron</tt>) 抡呐 信遗瘟幸磷膛瘟 瘟 账邻廖钨 认釉. 淞挝裂 紫谕现蜗釉 邢膛谖, 庞躺 琢哿 由釉磐 炎萄旁友 伊谀盘雅拖 伊孪夼 釉廖蒙攀  踪 认陨耘, 拊下 子 邢拊 认纳塘 瘟 下萆 邢拊献偈 优易乓.
<hr>

0707010005ac45000081a40000000000000002000000013ac0389c00000159000000200000000000000000000000000000002300000003reloc/sendmail/help/opt_DR.sv.html    <header>Skicka e-post till ok鋘da anv鋘dare vidare till dator</header>

Om man inte har valt <tt>Dela ut lokalt</tt> kommer e-post fr錸 lokala
anv鋘dare till en ok鋘d anv鋘dare att skickas till den angivna datorn.
Detta 鋜 anv鋘dbart om systemet 鋜 en delad arbetsstation och man vill
att e-post ska skickas till en gemensam e-postserver.
<hr>

   0707010005ac46000081a40000000000000002000000013ac0389c00000105000000200000000000000000000000000000002b00000003reloc/sendmail/help/opt_DR.zh_TW.Big5.html    <header>锣癳ぃㄏノ嘿诀</header>

埃獶匡拒<tt>セ狠患癳</tt>, ┮Τパセ狠ㄏノ┮祇ぃㄏノ嘿 (ㄒ jcameron) 秎ン常穦砆锣癳﹚诀い. 讽眤╰参琌だㄉ┦, τ眤辨┮Τ秎ン常穦笷秎ン狝竟盢穦Τノ.
<hr>

   0707010005ac47000081a40000000000000002000000013ac0389c00000158000000200000000000000000000000000000002300000003reloc/sendmail/help/opt_DS.es.html    <header>Enviar correo saliente a trav閟 de la m醧uina</header>

A menos que se seleccione <tt>Entregar localmente</tt>, cualquier correo
saliente no destinado a los usuarios de tu sistema ser enviando a la
m醧uina especificada. Es 鷗il si tu sistema est tras un cortafuegos y por
ello no puede entregar correo de internet dir閏tamente.
<hr>

0707010005ac48000081a40000000000000002000000013ac0389c00000154000000200000000000000000000000000000002300000003reloc/sendmail/help/opt_DS.fr.html    <header>Envoyer les Couriel Sortant via l'H魌e</header>

Tant que <tt>Livr directement</tt> n'est pas choisi, Sendmail doit envoyer tout les couriels sortant qui ne sont pas destin aux usagers locaux  un h魌e donn.  Ceci peut 阾re utile si votre syst鑝e est derri鑢e un pare-feu et ne peut envoyer un couriel directement.<p>

<hr>
0707010005ac49000081a40000000000000002000000013ac0389c00000128000000200000000000000000000000000000002000000003reloc/sendmail/help/opt_DS.html   <header>Send outgoing mail via host</header>

Unless <tt>Delivery directly</tt> is chosen, sendmail will forward any
outgoing mail not destined for users of your system to the given host.
This can be useful if your system is behind a firewall and so cannot
deliver internet email directly.
<hr>

0707010005ac4a000081a40000000000000002000000013ac0389c0000017c000000200000000000000000000000000000002300000003reloc/sendmail/help/opt_DS.pl.html    <header>Wysy砤j poczt za po秗ednictwem komputera</header>

Je縠li nie wybierzesz <tt>Dor阠zaj bezpo秗ednio</tt>, sendmail b阣zie
przekazywa wszelk poczt wychodz眂 nie skierowan do u縴tkownik體 twojego
systemu do podanego komputera. Mo縠 to by u縴teczne, je秎i tw骿 system
znajduje si za firewallem i, w&nbsp;zwi眤ku z&nbsp;tym, nie mo縠 dor阠za
poczty bezpo秗ednio.
<hr>
0707010005ac4b000081a40000000000000002000000013ac0389c0000016c000000200000000000000000000000000000002600000003reloc/sendmail/help/opt_DS.ru_RU.html <header>悟覃豚螯 桉躅 镱黩 麇疱 躅耱</header>

篷腓 礤 恹狃囗 <tt>橡爨 漕耱噔赅</tt>, sendmail 狍溴 镥疱磬镳噔螯 膻猁 桉躅 耦钺龛 礤 镳邃磬珥圜屙睇 潆 镱朦珙忄蝈脲 忄 耔耱屐 磬 溧眄 躅耱. 蒡 忸珈铈眍耱 祛驽 猁螯 镱脲珥, 羼腓 忄 耔耱屐 磬躅滂蝰 玎 戾骜弪邂 疣眍,  蜞觇 钺疣珙 礤 祛驽 磬镳祗 漕耱噔螯 镱黩.
<hr>

0707010005ac4c000081a40000000000000002000000013ac0389c0000016c000000200000000000000000000000000000002600000003reloc/sendmail/help/opt_DS.ru_SU.html <header>镌淤塘载 捎认难菡 邢拊 夼遗 认釉</header>

逵躺 闻 踪乱廖 <tt>鹨淹裂 南釉磷肆</tt>, sendmail 抡呐 信遗瘟幸磷萄载 汤沦 捎认难萆 酉下菖紊 闻 幸拍瘟谖赁盼钨 奶 邢特谙琢耘膛 琢叟 由釉磐 瘟 牧挝偈 认釉.  紫谕现蜗釉 拖峙 沦载 邢膛谖, 庞躺 琢哿 由釉磐 瘟认纳杂 诹 团钟旁抛偻 芩伊蜗,  粤松 下伊谙 闻 拖峙 瘟幸淹绽 南釉磷萄载 邢拊.
<hr>

0707010005ac4d000081a40000000000000002000000013ac0389c0000013f000000200000000000000000000000000000002300000003reloc/sendmail/help/opt_DS.sv.html    <header>Skicka utg錯nde e-post via dator</header>

Om man inte har valt <tt>Dela ut direkt</tt> kommer sendmail att skicka
utg錯nde e-post, som inte ska till anv鋘dare i systemet, till den angivna
datorn. Detta 鋜 anv鋘dbart om systemet finns bakom en brandv鋑g och d鋜f鰎
inte kan skicka internet-e-post direkt.
<hr>

 0707010005ac4e000081a40000000000000002000000013ac0389c000000d9000000200000000000000000000000000000002b00000003reloc/sendmail/help/opt_DS.zh_TW.Big5.html    <header>竒パ诀癳癳秎ン</header>

埃獶匡拒<tt>セ狠患癳</tt>, Sendmail 穦р┮ΤΜンぃ琌セ狠ㄏノ癳秎ン锣癳﹚诀. 狦眤╰参留旅ň鲤ぇτぃ钡患癳呼悔呼隔筿秎ン盢穦Τノ.
<hr>

   0707010005ac4f000081a40000000000000002000000013ac0389c000001a8000000200000000000000000000000000000002c00000003reloc/sendmail/help/opt_ForwardPath.es.html   <header>Archivos de remisi髇 de usuario</header>

El valor especificado para esta opci髇 debe de ser un lista separada por
comas de nombres de trayectoria que determine en d髇de mira sendmail para
encontrar el archivo de remitir por-usuario al entregar correo. Las variables
<tt>$z</tt> para el directorio inicial de usuario y <tt>$w</tt> para el
nombre de m醧uina del sistema pueden ser utilizadas en la trayectoria.
<hr>

0707010005ac50000081a40000000000000002000000013ac0389c00000180000000200000000000000000000000000000002c00000003reloc/sendmail/help/opt_ForwardPath.fr.html   <header>Fichiers des Usagers de Redirection</header>

La valeur de cette option doit 阾re une liste (s閜ar par des virgules) des chemins qui d閠ermine o Sendmail cherche la redirection par usager pour l'envoie de couriel.  Les variables <tt>$z</tt> est pour le r閜ertoire personnel de l'usager et <tt>$w</tt> pour le nom d'h魌e peuvent 阾re utilis pour le nom de chemin.<p>

<hr>

0707010005ac51000081a40000000000000002000000013ac0389c00000151000000200000000000000000000000000000002900000003reloc/sendmail/help/opt_ForwardPath.html  <header>User forward files</header>

The value specified for this option must be a colon-separated list of
pathnames that determines where sendmail looks for the per-user forwarding
file when delivering email. The variables <tt>$z</tt> for the user's home
directory and <tt>$w</tt> for the system hostname can be used in the path.
<hr>

   0707010005ac52000081a40000000000000002000000013ac0389c00000188000000200000000000000000000000000000002c00000003reloc/sendmail/help/opt_ForwardPath.pl.html   <header>Pliki przekazywania poczty u縴tkownika</header>

W&nbsp;tej opcji nale縴 poda rozdzielon dwukropkami list pe硁ych 禼ie縠k
do plik體, kt髍ych sendmail b阣zie poszukiwa podczas dor阠zania poczty,
w celu okre秎enia w砤禼iwych dla u縴tkownika regu przekazywania poczty.
Mo縩a u縴wa zmiennych: <tt>$z</tt> jako katalogu domowego u縴tkownika oraz
<tt>$w</tt> jako nazwy systemu.
<hr>
0707010005ad4f000081a40000000000000002000000013ac0389c00000232000000200000000000000000000000000000002300000003reloc/sendmail/help/opt_dmode.html    <header>Delivery mode</header>

Controls when messages send to this mail server are delivered. Possible options
are :
<ul>
<li><b>Background</b><br>
    Messages are delivered as soon as possible in the background.<p>
<li><b>Queue only</b><br>
    Submitted messages are merely placed in the queue, and not delivered
    until the queue is flushed manually.<p>
<li><b>Interactive</b><br>
    Messages are delivered immediately.<p>
<li><b>Deferred</b><br>
    Like <i>Queue only</i>, but no DNS or NIS lookups are done for submitted
    messages.<p>
</ul>

<hr>

  0707010005ac53000081a40000000000000002000000013ac0389c0000018b000000200000000000000000000000000000002f00000003reloc/sendmail/help/opt_ForwardPath.ru_RU.html    <header>项朦珙忄蝈朦耜桢 羿殡 镥疱磬镳噔脲龛</header>

琼圜屙桢 溧眄钽 镟疣戾蝠 漕腈屙 猁螯 耧桉铌 镱腠 桁屙 羿殡钼 疣玟咫屙睇 溻铄蝾麒扈,  觐蝾瘥 sendmail 棂弪 镱朦钼囹咫牦 桧纛痨圉棹  镥疱磬镳噔脲龛 镳 漕耱噔赍 镱黩.  矬蝈恹 桁屙圊 羿殡钼 祛骓 桉镱朦珙忄螯 镳邃铒疱溴脲眄 镥疱戾眄: <tt>$z</tt> - 漕爨栝 赅蜞腩 镱朦珙忄蝈  <tt>$w</tt> - 桁 躅耱 耔耱屐.
<hr>

 0707010005ac54000081a40000000000000002000000013ac0389c0000018b000000200000000000000000000000000000002f00000003reloc/sendmail/help/opt_ForwardPath.ru_SU.html    <header>鹣特谙琢耘特铀膳 屏侍 信遗瘟幸磷膛紊</header>

赁盼膳 牧挝锨 辛伊团砸 南讨盼 沦载 有捎纤 邢涛偃 赏盼 屏侍献 伊谀盘盼钨 淖吓韵奚淹,  讼韵屹 sendmail 奢旁 邢特献猎盘赜苏 晌葡彝撩衫  信遗瘟幸磷膛紊讶 幸 南釉磷伺 邢拊.  姓耘踪 赏盼寥 屏侍献 拖治 捎邢特谙琢载 幸拍闲遗呐膛挝倥 信遗团挝倥: <tt>$z</tt> - 南土畚墒 肆粤滔 邢特谙琢耘萄  <tt>$w</tt> - 赏 认釉 由釉磐.
<hr>

 0707010005ac55000081a40000000000000002000000013ac0389c0000012a000000200000000000000000000000000000002c00000003reloc/sendmail/help/opt_ForwardPath.sv.html   <header>Anv鋘darnas forward-filer</header>

H鋜 anges en kolon-separerad lista 鰒er s鰇v鋑ar som anger var sendmail ska
leta efter forward-filer f鰎 anv鋘darna i systemet. Man kan anv鋘da
variablerna <tt>$z</tt> f鰎 en anv鋘dares hemkatalog och <tt>$w</tt>
f鰎 systemdatornamet i s鰇v鋑arna.
<hr>

  0707010005ac56000081a40000000000000002000000013ac0389c000000f5000000200000000000000000000000000000003400000003reloc/sendmail/help/opt_ForwardPath.zh_TW.Big5.html   <header>ㄏノ笆锣盚砞﹚郎</header>

硂计ゲ斗琌玙腹だ隔畖嘿, 硂∕﹚ Sendmail 患癳秎ン, 璶ㄇよт碝ㄏノ硁盚砞﹚郎. ㄏノ跑计: <tt>$z</tt> ボㄏノ產ヘ魁; <tt>$w</tt> ボ╰参诀嘿.
<hr>

   0707010005ac57000081a40000000000000002000000013ac0389c000000a9000000200000000000000000000000000000002900000003reloc/sendmail/help/opt_LogLevel.es.html  <header>Nivel de Historial</header>

Esta opci髇 determina la cantidad de informaci髇 que sendmail escribe en
su archivo de historial a trav閟 de <tt>syslog</tt>.
<hr>

   0707010005ac58000081a40000000000000002000000013ac0389c000000a0000000200000000000000000000000000000002900000003reloc/sendmail/help/opt_LogLevel.fr.html  <header>Niveau de Journal</header>

Cette option d閠ermine la quantit d'information que Sendmail 閏rira dans le fichier journal via <tt>syslog</tt>.<p>

<hr>

0707010005ac59000081a40000000000000002000000013ac0389c00000088000000200000000000000000000000000000002600000003reloc/sendmail/help/opt_LogLevel.html <header>Log level</header>

This option determines the amount of information sendmail writes to its log
file via <tt>syslog</tt>.
<hr>

0707010005ac5a000081a40000000000000002000000013ac0389c0000009e000000200000000000000000000000000000002900000003reloc/sendmail/help/opt_LogLevel.pl.html  <header>Poziom logowania</header>

Ta opcja okre秎a ilo舵 informacji, jakie sendmail zapisuje do swojego logu
za po秗ednictwem programu <tt>syslog</tt>.
<hr>
  0707010005ac5b000081a40000000000000002000000013ac0389c000000a8000000200000000000000000000000000000002c00000003reloc/sendmail/help/opt_LogLevel.ru_RU.html   <header>羽钼屙 骟痦嚯桤圉梃</header>

泥眄 镟疣戾蝠 铒疱溴弪 觐腓麇耱忸 桧纛痨圉梃, 觐蝾痼 sendmail 玎镨覃忄弪  疋铋 骟痦嚯 麇疱 耔耱屐 <tt>syslog</tt>.
<hr>

0707010005ac5c000081a40000000000000002000000013ac0389c000000a8000000200000000000000000000000000000002c00000003reloc/sendmail/help/opt_LogLevel.ru_SU.html   <header>跻献盼 终椅撂哨撩缮</header>

淞挝偈 辛伊团砸 闲遗呐萄旁 讼躺夼釉紫 晌葡彝撩缮, 讼韵艺 sendmail 诹猩淤琢旁  幼鲜 终椅撂 夼遗 由釉磐 <tt>syslog</tt>.
<hr>

0707010005ac5d000081a40000000000000002000000013ac0389c00000087000000200000000000000000000000000000002900000003reloc/sendmail/help/opt_LogLevel.sv.html  <header>Loggniv</header>

Denna inst鋖lning anger hur mycket information sendmail ska skriva i sin loggfil
via <tt>syslog</tt>.
<hr>

 0707010005ac5e000081a40000000000000002000000013ac0389c00000070000000200000000000000000000000000000003100000003reloc/sendmail/help/opt_LogLevel.zh_TW.Big5.html  <header>魁单</header>

硂匡兜∕﹚ Sendmail 璶竒パ <tt>syslog</tt> 糶ぶ闽癟讽ㄤ魁郎い.
<hr>

0707010005ac5f000081a40000000000000002000000013ac0389c000000f8000000200000000000000000000000000000003200000003reloc/sendmail/help/opt_MaxDaemonChildren.es.html <header>M醲imo n鷐ero de procesos hijo</header>

Esta opci髇 controla el m醲imo n鷐ero de procesos hijo que sendmail
arrancar para manejar el correo entrante. Es 鷗il si se est usando
demasiada memoria para procesar los mensajes entrantes.
<hr>

0707010005ac60000081a40000000000000002000000013ac0389c000000eb000000200000000000000000000000000000003200000003reloc/sendmail/help/opt_MaxDaemonChildren.fr.html <header>Nombre Maximal de Processus Enfants</header>

Cette option contr鬺e le nombre de processus que Sendmail peut d閙arrer pour prendre les couriels entrant.  Utile si trop de m閙oire est utilis pour la r閏eption de couriel.
<hr>

 0707010005acf0000081a40000000000000002000000013ac0389c00000124000000200000000000000000000000000000002800000003reloc/sendmail/help/opt_QueueLA.es.html   <header>Media de carga m醲ima para enviar</header>

Determina la media de carga m醩 all de la cual los mensajes salientes ya
no ser醤 enviados sino puestos en cola para una entrega posterior. Esta
opci髇 es 鷗il para prevenir que una actividad fuerte de correo sobrecargue
tu sistema.
<hr>

0707010005ac75000081a40000000000000002000000013ac0389c000000db000000200000000000000000000000000000002f00000003reloc/sendmail/help/opt_MaxDaemonChildren.html    <header>Max child processes</header>

This option controls the maximum number of child processes sendmail will
start to handle incoming email. Useful if too much memory is being used
processing incoming messages.
<hr>

 0707010005ac76000081a40000000000000002000000013ac0389c00000101000000200000000000000000000000000000003200000003reloc/sendmail/help/opt_MaxDaemonChildren.pl.html <header>Maks. ilo舵 proces體 potomnych</header>

Ta opcja okre秎a maksymaln ilo舵 proces體 potomnych, jakie sendmail
uruchomi w&nbsp;celu obs硊縠nia przychodz眂ej poczty. U縴teczna, je縠li
przetwarzanie przychodz眂ej poczty zajmuje zbyt du縪 pami阠i.
<hr>
   0707010005ac78000081a40000000000000002000000013ac0389c00000121000000200000000000000000000000000000003500000003reloc/sendmail/help/opt_MaxDaemonChildren.ru_RU.html  <header>锑犟桁嚯铄 麒耠 漕麇痦桴 镳铞羼耦</header>

泥眄 镟疣戾蝠 铒疱溴弪 爨犟桁嚯铄 麒耠 漕麇痦桴 镳铞羼耦 sendmail, 耱囵蝾忄眄 潆 钺疣犷蜿 怩钿 镱黩. 泥眄 镟疣戾蝠 镱脲珏 镳 耠桫觐 犷朦 觐腓麇耱忮 桉镱朦珞屐铋 镟蜩 潆 钺疣犷蜿 怩钿 耦钺龛.
<hr>

   0707010005ac79000081a40000000000000002000000013ac0389c00000121000000200000000000000000000000000000003500000003reloc/sendmail/help/opt_MaxDaemonChildren.ru_SU.html  <header>砹擞赏撂匚吓 奚犹 南夼椅扇 幸厦庞酉</header>

淞挝偈 辛伊团砸 闲遗呐萄旁 土擞赏撂匚吓 奚犹 南夼椅扇 幸厦庞酉 sendmail, 釉烈韵琢挝偃 奶 下伊孪运 兹夏演攀 邢拊. 淞挝偈 辛伊团砸 邢膛谂 幸 犹邵讼 孪特巯 讼躺夼釉着 捎邢特谡磐鲜 辛脱陨 奶 下伊孪运 兹夏演扇 酉下菖紊.
<hr>

   0707010005ac7b000081a40000000000000002000000013ac0389c00000108000000200000000000000000000000000000003200000003reloc/sendmail/help/opt_MaxDaemonChildren.sv.html <header>Maximalt antal underprocesser</header>

H鋜 st鋖ler man in det maximala antalet underprocesser som sendmail f錼
starta f鰎 att hantera inkommande e-post. Detta 鋜 anv鋘dbart om sendmail
anv鋘der f鰎 mycket minne f鰎 att ta hand om inkommande e-post.
<hr>

0707010005ac7c000081a40000000000000002000000013ac0389c0000009c000000200000000000000000000000000000003a00000003reloc/sendmail/help/opt_MaxDaemonChildren.zh_TW.Big5.html <header>程祘计ヘ</header>

硂匡兜北 Sendmail 盢穦币笆ぶ祘矪瞶┮Τ秈筿秎ン. 讽ㄏノび癘拘砰矪瞶秈秎ン, 盢穦Τノ. 
<hr>

0707010005ac7d000081a40000000000000002000000013ac0389c000000e9000000200000000000000000000000000000002f00000003reloc/sendmail/help/opt_MaxMessageSize.es.html    <header>M醲ima medida del mensaje</header>

Esta opci髇 controla el tama駉 m醲imo de mensaje que sendmail aceptar de
un usuario local o de un servidor de correo remoto. Cualquier mensaje que
exceda este tama駉 ser cancelado.
<hr>

   0707010005ac7e000081a40000000000000002000000013ac0389c000000ef000000200000000000000000000000000000002f00000003reloc/sendmail/help/opt_MaxMessageSize.fr.html    <header>Taille Maximale d'un Couriel</header>

Cette option contr鬺e la taille maximale que Sendmail accepte d'un couriel d'un usager local ou d'un serveur distant.  Tout les couriels qui d閜asse cette taille seront renvoy.<p>

<hr>
 0707010005ac7f000081a40000000000000002000000013ac0389c000000cd000000200000000000000000000000000000002c00000003reloc/sendmail/help/opt_MaxMessageSize.html   <header>Max message size</header>

This option controls the maximum sized message that sendmail will accept
from a local user or remote mail server. Any messages exceeding this size
will be bounced.
<hr>

   0707010005ac80000081a40000000000000002000000013ac0389c000000f9000000200000000000000000000000000000002f00000003reloc/sendmail/help/opt_MaxMessageSize.pl.html    <header>Maks. rozmiar wiadomo禼i</header>

Ta opcja okre秎a maksymalny rozmiar wiadomo禼i, kt髍a zostanie przyj阾a
przez sendmaila od lokalnego u縴tkownika lub zdalnego serwera poczty.
Ka縟a wiadomo舵 o&nbsp;wi阫szym rozmiarze zostanie odbita.
<hr>
   0707010005ac82000081a40000000000000002000000013ac0389c0000010b000000200000000000000000000000000000003200000003reloc/sendmail/help/opt_MaxMessageSize.ru_RU.html <header>锑犟桁嚯 疣珈屦 耦钺龛</header>

泥眄 镟疣戾蝠 铒疱溴弪 爨犟桁嚯 疣珈屦 耦钺龛 镳桧桁噱禧 潆 钺疣犷蜿 sendmail铎 铗 腩赅朦睇 镱朦珙忄蝈脲 桦 箐嚯屙睇 镱黩钼 皴疴屦钼. 塔猁 耦钺龛 镳邂帼 溧眄 疣珈屦 狍潴 铗狃铠屙.
<hr>

 0707010005ac83000081a40000000000000002000000013ac0389c0000010b000000200000000000000000000000000000003200000003reloc/sendmail/help/opt_MaxMessageSize.ru_SU.html <header>砹擞赏撂匚偈 伊谕乓 酉下菖紊</header>

淞挝偈 辛伊团砸 闲遗呐萄旁 土擞赏撂匚偈 伊谕乓 酉下菖紊 幸晌赏僚唾 奶 下伊孪运 sendmail贤 显 滔肆特钨 邢特谙琢耘膛 商 漳撂盼钨 邢拊献偃 优易乓献. 炖沦 酉下菖紊 幸抛氽晾萆 牧挝偈 伊谕乓 抡恼 显乱羡盼.
<hr>

 0707010005ac84000081a40000000000000002000000013ac0389c000000b6000000200000000000000000000000000000002f00000003reloc/sendmail/help/opt_MaxMessageSize.sv.html    <header>Maximal brevstorlek</header>

H鋜 st鋖ler man in hur stora e-postbrev sendmail tar emot fr錸 en
lokal anv鋘dare eller annan e-postserver. St鰎re brev studsar tillbaka.
<hr>

  0707010005acc7000081a40000000000000002000000013ac0389c000000a3000000200000000000000000000000000000003700000003reloc/sendmail/help/opt_MaxMessageSize.zh_TW.Big5.html    <header>程秎ン</header>

硂匡兜北 Sendmail 穦钡Μ程秎ン, ぃ阶琌ㄓセ狠ㄏノ┪环狠秎ン狝竟秎ン, ヴ禬筁硂秎ン常穦砆癶.
<hr>

 0707010005acc8000081a40000000000000002000000013ac0389c000000ac000000200000000000000000000000000000003000000003reloc/sendmail/help/opt_MaxQueueRunSize.es.html   <header>M醲ima medida de cola</header>

Esta opci髇 determina el n鷐ero m醲imo de mensajes de correo en cola que
sendmail procesar en una s髄a ejecuci髇 de la cola.
<hr>

0707010005acc9000081a40000000000000002000000013ac0389c000000b0000000200000000000000000000000000000003000000003reloc/sendmail/help/opt_MaxQueueRunSize.fr.html   <header>Taille Maximum de la File d'Attente</header>

Cette option d閠ermine le nombre maximum de couriels qui peuvent 阾re gard dans la file d'attente de Sendmail.<p>

<hr>

0707010005acca000081a40000000000000002000000013ac0389c0000009b000000200000000000000000000000000000002d00000003reloc/sendmail/help/opt_MaxQueueRunSize.html  <header>Maximum queue size</header>

This option determines the maximum number of queued email messages that
sendmail will process in one queue run.
<hr>

 0707010005accb000081a40000000000000002000000013ac0389c000000be000000200000000000000000000000000000003000000003reloc/sendmail/help/opt_MaxQueueRunSize.pl.html   <header>Maksymalny rozmiar kolejki</header>

Ta opcja okre秎a maksymaln ilo舵 wiadomo禼i z&nbsp;kolejki, kt髍e sendmail
b阣zie przetwarza podczas ka縟orazowego przetwarzania kolejki.
<hr>
  0707010005accc000081a40000000000000002000000013ac0389c000000b1000000200000000000000000000000000000003300000003reloc/sendmail/help/opt_MaxQueueRunSize.ru_RU.html    <header>锑犟桁嚯 疣珈屦 铟屦邃</header>

泥眄 镟疣戾蝠 铒疱溴弪 爨犟桁嚯铄 麒耠 镱黩钼 耦钺龛  铟屦邃, 觐蝾痤 sendmail 狍溴 钺疣徉螓忄螯 玎 钿桧 疣.
<hr>

   0707010005accd000081a40000000000000002000000013ac0389c000000b1000000200000000000000000000000000000003300000003reloc/sendmail/help/opt_MaxQueueRunSize.ru_SU.html    <header>砹擞赏撂匚偈 伊谕乓 限乓拍</header>

淞挝偈 辛伊团砸 闲遗呐萄旁 土擞赏撂匚吓 奚犹 邢拊献偃 酉下菖紊  限乓拍, 讼韵蚁 sendmail 抡呐 下伊铝再琢载 诹 夏晌 伊.
<hr>

   0707010005acce000081a40000000000000002000000013ac0389c00000091000000200000000000000000000000000000003000000003reloc/sendmail/help/opt_MaxQueueRunSize.sv.html   <header>Maximal k鰏torlek</header>

H鋜 st鋖ler man in det maximala antalet k鯽de e-postmeddelanden som
sendmail tar hand om i en k鰎unda.
<hr>

   0707010005accf000081a40000000000000002000000013ac0389c00000065000000200000000000000000000000000000003800000003reloc/sendmail/help/opt_MaxQueueRunSize.zh_TW.Big5.html   <header>程︻</header>

硂匡兜∕﹚–Ω Sendmail 矪瞶秎ン︻┮璶矪瞶程秎ン计ヘ.
<hr>

   0707010005acd0000081a40000000000000002000000013ac0389c00000135000000200000000000000000000000000000002e00000003reloc/sendmail/help/opt_MinFreeBlocks.es.html <header>M韓imo espacio en disco libre</header>

Si menos de la cantidad especificada es liberada, sendmail se negar a
poner en cola cualquier mensaje entrante desde otros sistemas. Es 鷗il para
prevenir que sendmail utilice todo el espacio del sistema de archivos
donde se aloja el directorio de cola.
<hr>

   0707010005acd1000081a40000000000000002000000013ac0389c00000169000000200000000000000000000000000000002e00000003reloc/sendmail/help/opt_MinFreeBlocks.fr.html <header>Espace Disque Minimum</header>

Si moins que la quantit d'espace disque sp閏ifi est disponible, Sendmail refusera de mettre dans sa file d'attente les messages entrant des autres syst鑝es.  Utile pour pr関enir Sendmail d'utiliser tout l'espace disque sur le syst鑝e de fichier dans lequel les couriels sont plac dans la file d'attente.<p>

<hr>
   0707010005acd2000081a40000000000000002000000013ac0389c00000121000000200000000000000000000000000000002b00000003reloc/sendmail/help/opt_MinFreeBlocks.html    <header>Min free disk space</header>

If less than the specified amount of disk space is free, sendmail will
refuse to queue up any incoming messages from other systems. Useful to
prevent sendmail from using up all the space on the filesystem in which
the queue directory is stored.
<hr>

   0707010005acd3000081a40000000000000002000000013ac0389c00000161000000200000000000000000000000000000002e00000003reloc/sendmail/help/opt_MinFreeBlocks.pl.html <header>Min. ilo舵 wolnego miejsca na dysku</header>

Je秎i ilo舵 wolnego miejsca na dysku jest mniejsza ni podana, sendmail
odm體i kolejkowania jakichkolwiek wiadomo禼i przychodz眂ych z innych
system體. U縴teczne zabezpieczenie przed ca砶owitym wyczerpaniem wolnego
miejsca w&nbsp;tym systemie plik體, w&nbsp;kt髍ym znajduje si katalog
kolejki.
<hr>
   0707010005ad51000081a40000000000000002000000013ac0389c00000100000000200000000000000000000000000000002200000003reloc/sendmail/help/units.es.html 
Este tiempo debe de ser suministrado como un n鷐ero seguido de un car醕ter
para las unidades, como <tt>30m</tt> o <tt>1d</tt>. Son unidades v醠idas
<tt>s</tt> = segundos, <tt>m</tt> = minutos, <tt>h</tt> = horas,
<tt>d</tt> = d韆s y <tt>w</tt> = semanas.
0707010005acd4000081a40000000000000002000000013ac0389c00000192000000200000000000000000000000000000003100000003reloc/sendmail/help/opt_MinFreeBlocks.ru_RU.html  <header>惕龛爨朦眍 疋钺钿眍 滂耜钼铄 镳铖蝠囗耱忸</header>

篷腓 觐腓麇耱忸 疋钺钿眍泐 滂耜钼钽 镳铖蝠囗耱忄 戾睃, 麇 箨噻囗  溧眄铎 镟疣戾蝠, sendmail 礤 狍溴 耱噔栩  铟屦邃 磬 钺疣犷蜿 膻猁 怩钿 耦钺龛 铗 漯筱桴 耔耱屐. 泥眄 镟疣戾蝠 镱脲珏 潆 镳邃铗怵帙屙 桉镱朦珙忄龛 sendmail铎 怦邈 镳铖蝠囗耱忄  羿殡钼铋 耔耱屐, 沅 疣耧铍铈屙 赅蜞腩  铟屦邃 耦钺龛.
<hr>

  0707010005acd5000081a40000000000000002000000013ac0389c00000192000000200000000000000000000000000000003100000003reloc/sendmail/help/opt_MinFreeBlocks.ru_SU.html  <header>砩紊土特蜗 幼下夏蜗 纳铀献吓 幸嫌砸廖釉紫</header>

逵躺 讼躺夼釉紫 幼下夏蜗窍 纳铀献锨 幸嫌砸廖釉琢 团呜叟, 夼 账邻廖  牧挝贤 辛伊团砸, sendmail 闻 抡呐 釉磷稍  限乓拍 瘟 下伊孪运 汤沦 兹夏演膳 酉下菖紊 显 囊涨扇 由釉磐. 淞挝偈 辛伊团砸 邢膛谂 奶 幸拍显滓凛盼裳 捎邢特谙琢紊 sendmail贤 子徘 幸嫌砸廖釉琢  屏侍献鲜 由釉磐, 悄 伊有咸现盼 肆粤滔  限乓拍乩 酉下菖紊.
<hr>

  0707010005acd6000081a40000000000000002000000013ac0389c00000141000000200000000000000000000000000000002e00000003reloc/sendmail/help/opt_MinFreeBlocks.sv.html <header>Nedre gr鋘s f鰎 ledigt diskutrymme</header>

Om det inte finns s mycket ledigt diskutrymme som man har angivit h鋜
kommer sendmail inte att k鯽 inkommande e-postmeddelanden fr錸 andra
system. Detta 鋜 anv鋘dbart f鰎 att hindra sendmail fr錸 att ta upp allt
utrymme p filsystemet som k鰇atalogen finns p.
<hr>

   0707010005acd7000081a40000000000000002000000013ac0389c000000c2000000200000000000000000000000000000003600000003reloc/sendmail/help/opt_MinFreeBlocks.zh_TW.Big5.html <header>程玂痙合盒丁</header>

狦合盒丁┮﹚合盒丁, Sendmail 盢穦┶荡盢ヴパㄤ╰参┮ㄓ癟秎ン︻い. 癸 Sendmail ㄏノび郎╰参丁纗︻盢穦Τノ.
<hr>

  0707010005acd8000081a40000000000000002000000013ac0389c000000b2000000200000000000000000000000000000002c00000003reloc/sendmail/help/opt_MinQueueAge.es.html   <header>Tiempo M韓imo antes de reintentar enviar</header>

El tiempo m韓imo que un mensaje esperar en la cola antes de que sendmail
intente reenviarlo.
<include units.es>
<hr>

  0707010005acd9000081a40000000000000002000000013ac0389c000000c2000000200000000000000000000000000000002c00000003reloc/sendmail/help/opt_MinQueueAge.fr.html   <header>Temps Minimum Avant de R閑ssayer l'Envoie</header>

Le temps minimum qu'un message patiente dans la file d'attente avant que Sendmail essai de le r-envoyer.

<include units>
<hr>
  0707010005acda000081a40000000000000002000000013ac0389c000000a0000000200000000000000000000000000000002900000003reloc/sendmail/help/opt_MinQueueAge.html  <header>Min time before retrying send</header>

The minimum time a message will wait in the queue before sendmail attempts
to re-send it.
<include units>
<hr>

0707010005acdb000081a40000000000000002000000013ac0389c000000b2000000200000000000000000000000000000002c00000003reloc/sendmail/help/opt_MinQueueAge.pl.html   <header>Min. czas przed powt髍na pr骲 wys砤nia</header>

Jest to minimalny czas przez jaki wiadomo舵 musi czeka w&nbsp;kolejce na
powt髍n pr骲 wys砤nia.
<include units>
<hr>
  0707010005acdc000081a40000000000000002000000013ac0389c000000d5000000200000000000000000000000000000002f00000003reloc/sendmail/help/opt_MinQueueAge.ru_RU.html    <header>惕龛爨朦眍 怵屐 镥疱 镱怛铕眍 铗覃腙铋</header>

惕龛爨朦眍 怵屐, 觐蝾痤 耦钺龛 狍溴 磬躅滂螯  铟屦邃 镥疱 蝈 赅 sendmail 镳邃镳桁弪 镱稃蜿 镱耠囹 邈 忭钼.
<p>

<include units>
<hr>

   0707010005acdd000081a40000000000000002000000013ac0389c000000d5000000200000000000000000000000000000002f00000003reloc/sendmail/help/opt_MinQueueAge.ru_SU.html    <header>砩紊土特蜗 滓磐 信遗 邢自弦蜗 显淤趟鲜</header>

砩紊土特蜗 滓磐, 讼韵蚁 酉下菖紊 抡呐 瘟认纳载友  限乓拍 信遗 耘 肆 sendmail 幸拍幸赏旁 邢匈运 邢犹猎 徘 孜献.
<p>

<include units>
<hr>

   0707010005acde000081a40000000000000002000000013ac0389c000000ba000000200000000000000000000000000000002c00000003reloc/sendmail/help/opt_MinQueueAge.sv.html   <header>Minsta v鋘tetid f鰎e 錿eruts鋘dningsf鰎s鰇</header>

H鋜 anges den minsta tid som sendmail ska v鋘ta innan den f鰎s鰇er s鋘da
om ett k鯽t e-postmeddelande.
<include units>
<hr>

  0707010005acdf000081a40000000000000002000000013ac0389c00000070000000200000000000000000000000000000003400000003reloc/sendmail/help/opt_MinQueueAge.zh_TW.Big5.html   <header>刚患癳程丁筳丁</header>

Sendmail 穝沽刚患癳︻い秎ン程单丁.
<include units>
<hr>

0707010005ace0000081a40000000000000002000000013ac0389c0000012c000000200000000000000000000000000000002f00000003reloc/sendmail/help/opt_PostMasterCopy.es.html    <header>Enviar mensajes de error a</header>

Esta opci髇 determina a qu direcci髇 sendmail env韆 notificaciones de
fallos en la entrega (adem醩 de a la persona que envi en fallido correo).
Por defecto es a la direcci髇 local <tt>Postmaster</tt>, que es normalmente
alias hacia <tt>root</tt>.
<hr>

0707010005ace1000081a40000000000000002000000013ac0389c00000130000000200000000000000000000000000000002f00000003reloc/sendmail/help/opt_PostMasterCopy.fr.html    <header>Envoyer les Couriels d'Erreur </header>

Cette option d閠ermine  quel adresse Sendmail envoie les notes sur les envoies rater (en plus de la personne qui a envoy le couriel).  Par d閒aut c'est l'adresse locale <tt>Postmaster</tt>, qui est g閚閞alement un alias de <tt>root</tt>.<p>

<hr>
0707010005ace2000081a40000000000000002000000013ac0389c00000123000000200000000000000000000000000000002c00000003reloc/sendmail/help/opt_PostMasterCopy.html   <header>Send error messages to</header>

This option determines which address sendmail sends notifications of
delivery failures to (in addition to the person who sent the failed email).
By default it is the local address <tt>Postmaster</tt>, which is usually
aliased to <tt>root</tt>.
<hr>

 0707010005ace3000081a40000000000000002000000013ac0389c00000164000000200000000000000000000000000000002f00000003reloc/sendmail/help/opt_PostMasterCopy.pl.html    <header>Informacje o&nbsp;b酬dach wysy砤j do</header>

Ta opcja okre秎a, na jaki adres sendmail wysy砤 zawiadomienia o&nbsp;b酬dach
w&nbsp;dor阠zaniu poczty (dodatkowo informacja ta jest wysy砤na do nadawcy
wiadomo禼i, kt髍ej nie uda硂 si dor阠zy). Domy秎nie jest to lokalny adres
<tt>Postmaster</tt>, kt髍y zazwyczaj jest aliasem do <tt>root</tt>.
<hr>
0707010005ace4000081a40000000000000002000000013ac0389c00000162000000200000000000000000000000000000003200000003reloc/sendmail/help/opt_PostMasterCopy.ru_RU.html <header>悟覃豚螯 耦钺龛 钺 铠栳赅 </header>

泥眄 镟疣戾蝠 铒疱溴弪 噤疱 磬 觐蝾瘥 sendmail 铗覃豚弪 耦钺龛 钺 铠栳赅 漕耱噔觇 ( 漕镱腠屙桢  蝾祗, 黩 耦钺龛 钺 铠栳赍 蜞赕 忸玮痤弪  噤疱襦蝮 镱耠噔祗 镱黩). 项 箪铍鬣龛 -  腩赅朦睇 噤疱 <tt>Postmaster</tt>, 觐蝾瘥 钺眍 怆弪 锺邂漕龛祛 潆 <tt>root</tt>.
<hr>

  0707010005ace5000081a40000000000000002000000013ac0389c00000162000000200000000000000000000000000000003200000003reloc/sendmail/help/opt_PostMasterCopy.ru_SU.html <header>镌淤塘载 酉下菖紊 下 羡陕肆 </header>

淞挝偈 辛伊团砸 闲遗呐萄旁 聊遗 瘟 讼韵屹 sendmail 显淤塘旁 酉下菖紊 下 羡陕肆 南釉磷松 ( 南邢涛盼膳  韵驼, 拊 酉下菖紊 下 羡陕伺 粤酥 紫谧蚁萘旁友  聊遗恿哉 邢犹磷叟驼 邢拊). 鹣 胀咸蘖紊 - 茉 滔肆特钨 聊遗 <tt>Postmaster</tt>, 讼韵屹 下俎蜗 炎萄旁友 杏抛南紊拖 奶 <tt>root</tt>.
<hr>

  0707010005ace6000081a40000000000000002000000013ac0389c00000120000000200000000000000000000000000000002f00000003reloc/sendmail/help/opt_PostMasterCopy.sv.html    <header>Skicka felmeddelanden till</header>

H鋜 anger man den adress som sendmail ska skicka meddelanden om misslyckade
e-posts鋘dningar till (f鰎utom att meddelande skickas till avs鋘daren).
Fr錸 b鰎jan 鋜 denna adress <tt>Postmaster</tt> som vanligen 鋜 alias f鰎
<tt>root</tt>.
<hr>

0707010005ace7000081a40000000000000002000000013ac0389c000000c7000000200000000000000000000000000000003700000003reloc/sendmail/help/opt_PostMasterCopy.zh_TW.Big5.html    <header>癳岿粇癟倒</header>

硂匡兜∕﹚ Sendmail 璶癳患癳ア毖魁癸禜 (穦患癳倒方祇獺). 箇砞猵, 硄盽琌癳セ狠 <tt>Postmaster</tt>, 硂琌 <tt>root</tt> ぇ.
<hr>

 0707010005ace8000081a40000000000000002000000013ac0389c000000d9000000200000000000000000000000000000002f00000003reloc/sendmail/help/opt_QueueDirectory.es.html    <header>Directorio de cola de Correo</header>

Esta opci髇 te permite configurar qu directorio utiliza sendmail para
almacenar mensajes de correo en cola. No lo cambies a menos que sepas lo
que est醩 haciendo.
<hr>

   0707010005ace9000081a40000000000000002000000013ac0389c000000fc000000200000000000000000000000000000002f00000003reloc/sendmail/help/opt_QueueDirectory.fr.html    <header>R閜ertoire de la File d'Attente de Couriel</header>

Cette option vous permet de configurer quel r閜ertoire Sendmail utilise pour emmagasiner les couriel de sa file d'attente.  Ne pas le changer  moins de savoir ce que vous faites.

<hr>
0707010005acea000081a40000000000000002000000013ac0389c000000c7000000200000000000000000000000000000002c00000003reloc/sendmail/help/opt_QueueDirectory.html   <header>Mail queue directory</header>

This option allows you to configure which directory sendmail uses for
storing queued email messages. Do not change it unless you know what you
are doing.
<hr>

 0707010005aceb000081a40000000000000002000000013ac0389c000000cb000000200000000000000000000000000000002f00000003reloc/sendmail/help/opt_QueueDirectory.pl.html    <header>Katalog kolejkowania poczty</header>

Ta opcja pozwala ci okre秎i, jakiego katalogu sendmail b阣zie u縴wa do
przechowywania kolejki wiadomo禼i. Nie zmieniaj go, chyba 縠 wiesz co
robisz. 
<hr>
 0707010005acec000081a40000000000000002000000013ac0389c000000de000000200000000000000000000000000000003200000003reloc/sendmail/help/opt_QueueDirectory.ru_RU.html <header>枢蜞腩 镱黩钼铋 铟屦邃</header>

泥眄 镟疣戾蝠 镱玮铍弪 忄 磬耱痤栩, 赅觐 赅蜞腩 桉镱朦珞弪 sendmail 潆 躔囗屙 铟屦邃 镱黩钼 耦钺龛. 湾 戾轵, 邈 羼腓 蝾黜 礤 筲屦屙  疋铊 溴轳蜮.
<hr>

  0707010005aced000081a40000000000000002000000013ac0389c000000de000000200000000000000000000000000000003200000003reloc/sendmail/help/opt_QueueDirectory.ru_SU.html <header>肓粤滔 邢拊献鲜 限乓拍</header>

淞挝偈 辛伊团砸 邢谧咸雅 琢 瘟釉蚁稍, 肆讼 肆粤滔 捎邢特谡旁 sendmail 奶 纫廖盼裳 限乓拍 邢拊献偃 酉下菖紊. 钆 团窝试, 徘 庞躺 韵尬 闻 兆乓盼  幼仙 呐视宰裳.
<hr>

  0707010005acee000081a40000000000000002000000013ac0389c000000d8000000200000000000000000000000000000002f00000003reloc/sendmail/help/opt_QueueDirectory.sv.html    <header>Katalog f鰎 e-postk</header>

H鋜 anger man den katalog som sendmail ska anv鋘da f鰎 att lagra k鯽de
e-postmeddelanden. Man ska <i>inte</i> 鋘dra detta om man inte verkligen
vet vad man h錶ler p med.
<hr>

0707010005acf1000081a40000000000000002000000013ac0389c0000012e000000200000000000000000000000000000002800000003reloc/sendmail/help/opt_QueueLA.fr.html   <header>Charge Maximal d'Envoie</header>

D閠ermine la charge maximale avant que Sendmail cesse d'envoyer des couriels, les mettants dans sa file d'attente et les livrer plus tard.  Cette option est utile pour pr関enir un trafic de couriel intense qui risque de surcharger votre syst鑝e.<p>

<hr>
  0707010005acef000081a40000000000000002000000013ac0389c00000089000000200000000000000000000000000000003700000003reloc/sendmail/help/opt_QueueDirectory.zh_TW.Big5.html    <header>秎ン︻ヘ魁</header>

硂匡兜琵眤舱篈 Sendmail 璶ノ纗逼祘い筿秎ン癟. 埃獶眤絋﹚眤ぐ或, 玥ぃ璶э跑ウ.
<hr>

   0707010005acf2000081a40000000000000002000000013ac0389c00000102000000200000000000000000000000000000002500000003reloc/sendmail/help/opt_QueueLA.html  <header>Max load average for sending</header>

Determines the load average beyond which outgoing messages are no longer
sent, but instead queued for later delivery. This option is useful for
preventing heavy mail activity from overloading your system.
<hr>

  0707010005acf3000081a40000000000000002000000013ac0389c0000015e000000200000000000000000000000000000002800000003reloc/sendmail/help/opt_QueueLA.pl.html   <header>Maks. obci笨enie systemu przy wysy砤niu</header>

Okre秎a warto舵 progow 秗edniego obci笨enia systemu, po przekroczeniu
kt髍ej sendmail przestanie wysy砤 wiadomo禼i, kolejkuj眂 je zamiast tego
w&nbsp;celu p蠹niejszego dor阠zenia. Ta opcja ma na celu zapobie縠nie przed
przeci笨eniem twojego systemu przez zbyt du勘 aktywno舵 pocztow.
<hr>
  0707010005acf4000081a40000000000000002000000013ac0389c0000013b000000200000000000000000000000000000002b00000003reloc/sendmail/help/opt_QueueLA.ru_RU.html    <header>锑犟桁嚯 耩邃 玎沭箸赅 潆 铗覃腙</header>

物疱溴弪 耩邃睨 玎沭箸牦 恹 觐蝾痤 桉躅 耦钺龛 犷朦 礤 铗覃豚, 眍 镳钿铍驵 耱噔栩  铟屦邃 潆 溧朦礤轼彘 漕耱噔觇. 泥眄 镟疣戾蝠 镱脲珏 潆 镳邃铗怵帙屙 镥疱沭箸觇 忄 耔耱屐 恹耦觐 嚓蜩忭铖螯 尻蝠铐眍 镱黩.
<hr>

 0707010005acf5000081a40000000000000002000000013ac0389c0000013b000000200000000000000000000000000000002b00000003reloc/sendmail/help/opt_QueueLA.ru_SU.html    <header>砹擞赏撂匚裂 右拍窝 诹且遮肆 奶 显淤趟</header>

镄遗呐萄旁 右拍卫 诹且遮苏 踪叟 讼韵蚁 捎认难萆 酉下菖紊 孪特叟 闻 显淤塘涝友, 蜗 幸夏咸至涝 釉磷稍赜  限乓拍 奶 牧特闻售攀 南釉磷松. 淞挝偈 辛伊团砸 邢膛谂 奶 幸拍显滓凛盼裳 信遗且遮松 琢叟 由釉磐 踪酉讼 了陨孜嫌载 芴潘砸衔蜗 邢拊.
<hr>

 0707010005acf6000081a40000000000000002000000013ac0389c0000013d000000200000000000000000000000000000002800000003reloc/sendmail/help/opt_QueueLA.sv.html   <header>Maximal genomsnittlig last f鰎 s鋘dning</header>

H鋜 anger man maximal genomsnittlig last. Om lasten 鰒erstiger detta v鋜de
kommer utg錯nde e-post inte att skickas, utan k鯽s och skickas vid ett
senare tillf鋖le. Detta 鋜 anv鋘dbart om man vill f鰎hindra att stora
e-posttoppar ska 鰒erlasta systemet.
<hr>

   0707010005acf7000081a40000000000000002000000013ac0389c0000009f000000200000000000000000000000000000003000000003reloc/sendmail/help/opt_QueueLA.zh_TW.Big5.html   <header>癳秎ン程キА璽更</header>

∕﹚讽キА璽更筁计氨ゎ患癳穝秎ン, 度盢穝秎ン竚︻い┑矪瞶. 硂匡兜ňゎ眤╰参禬更.
<hr>

 0707010005acf8000081a40000000000000002000000013ac0389c00000150000000200000000000000000000000000000002900000003reloc/sendmail/help/opt_RefuseLA.es.html  <header>Media de carga m醲ima para recibir</header>

Determina la media de carga m醩 all de la cual sendmail no aceptar m醩
mensajes entrantes a trav閟 de SMTP forzando a otros servidores de correo
a ponerlos en cola para una entrega posterior. Esto es 鷗il para prevenir
que un fuerte tr醘ico de correo sobrecargue tu sistema.
<hr>

0707010005acf9000081a40000000000000002000000013ac0389c00000166000000200000000000000000000000000000002900000003reloc/sendmail/help/opt_RefuseLA.fr.html  <header>Charge Maximal de R閏eption</header>

D閠ermine la charge maximale avant que Sendmail refuse les couriels entrant par SMTP, for鏰nt les autres serveurs de couriel a les mettre dans leurs files d'attente et les envoyer plus tard.  Cette option est utile pour pr関enir un trafic de couriel intense qui risque de surcharger votre syst鑝e.<p>

<hr>
  0707010005acfa000081a40000000000000002000000013ac0389c0000012b000000200000000000000000000000000000002600000003reloc/sendmail/help/opt_RefuseLA.html <header>Max load average for receiving</header>

Determines the load average beyond which sendmail no longer accepts
incoming messages via SMTP, forcing other mail servers to queue them for
later delivery.  This option is useful
for preventing heavy mail traffic from overloading your system.
<hr>

 0707010005acfb000081a40000000000000002000000013ac0389c00000184000000200000000000000000000000000000002900000003reloc/sendmail/help/opt_RefuseLA.pl.html  <header>Maks. obci笨enie systemu przy odbieraniu</header>

Okre秎a warto舵 progow 秗edniego obci笨enia systemu, po przekroczeniu
kt髍ej sendmail przestanie przyjmowa wiadomo禼i przychodz眂e przez SMTP,
zmuszaj眂 inne serwery pocztowe do kolejkowania ich w&nbsp;celu dor阠zenia
p蠹niej. Ta opcja ma na celu zapobie縠nie przed przeci笨eniem twojego
systemu przez du縴 ruch pocztowy.
<hr>
0707010005acfc000081a40000000000000002000000013ac0389c00000153000000200000000000000000000000000000002c00000003reloc/sendmail/help/opt_RefuseLA.ru_RU.html   <header>锑犟桁嚯 耩邃 玎沭箸赅 潆 镳桢爨</header>

物疱溴弪 耩邃睨 玎沭箸牦 恹 觐蝾痤 sendmail 犷朦 礤 镳桧桁噱 耦钺龛 镱 SMTP, 玎耱噔 漯筱桢 镱黩钼 皴疴屦 耱噔栩 耦钺龛  铟屦邃 潆 犷脲 镱玟礤 漕耱噔觇. 泥眄 镟疣戾蝠 镱脲珏 潆 镳邃铗怵帙屙 镥疱沭箸觇 忄 耔耱屐 恹耦觇 镱黩钼 蝠圄桕铎.
<hr>

 0707010005acff000081a40000000000000002000000013ac0389c00000153000000200000000000000000000000000000002c00000003reloc/sendmail/help/opt_RefuseLA.ru_SU.html   <header>砹擞赏撂匚裂 右拍窝 诹且遮肆 奶 幸膳土</header>

镄遗呐萄旁 右拍卫 诹且遮苏 踪叟 讼韵蚁 sendmail 孪特叟 闻 幸晌赏僚 酉下菖紊 邢 SMTP, 诹釉磷萄 囊涨膳 邢拊献倥 优易乓 釉磷稍 酉下菖紊  限乓拍 奶 孪膛 邢谀闻 南釉磷松. 淞挝偈 辛伊团砸 邢膛谂 奶 幸拍显滓凛盼裳 信遗且遮松 琢叟 由釉磐 踪酉松 邢拊献偻 砸疗伤贤.
<hr>

 0707010005ad00000081a40000000000000002000000013ac0389c0000016a000000200000000000000000000000000000002900000003reloc/sendmail/help/opt_RefuseLA.sv.html  <header>Maximal genomsnittlig last f鰎 mottagning</header>

H鋜 anger man maximal genomsnittlig last. Om lasten 鰒erstiger detta v鋜de
kommer inkommande e-post via SMTP inte att tas emot, utan andra e-postservar
m錽te k鯽 dem och skicka dem vid ett senare tillf鋖le. Detta 鋜 anv鋘dbart
om man vill f鰎hindra att stora e-posttoppar ska 鰒erlasta systemet.
<hr>

  0707010005ad01000081a40000000000000002000000013ac0389c000000c1000000200000000000000000000000000000003100000003reloc/sendmail/help/opt_RefuseLA.zh_TW.Big5.html  <header>钡Μ秎ン程キА璽更</header>

∕﹚讽キА璽更筁计氨ゎ竒パ SMTP 钡Μ穝秎ン, 硂盢眏ㄤ秎ン狝竟盢穝秎ン竚ㄤ︻い┑患癳. 硂匡兜ňゎ眤╰参禬更.
<hr>

   0707010005ad52000081a40000000000000002000000013ac0389c0000011b000000200000000000000000000000000000002200000003reloc/sendmail/help/units.fr.html <header>Unit de Temps</header>

Ce temps doit 阾re donn comme un num閞o suivi d'un caract鑢e pour l'unit, comme <tt>30m</tt> ou <tt>1d</tt>.  Les unit閟 valides sont <tt>s</tt> = secondes, <tt>m</tt> = minutes, <tt>h</tt> = heures, <tt>d</tt> = jours et <tt>w</tt> semaines.

<hr> 0707010005ad02000081a40000000000000002000000013ac0389c0000012e000000200000000000000000000000000000002f00000003reloc/sendmail/help/opt_SendMimeErrors.es.html    <header>縇a codificaci髇 MIME pone en la calle los mensajes?</header>

Determina si los mensajes a poner en la calle deben de ser enviados en formato
MIME multi-parte o como simples mensajes de texto. Usa la 鷏tima opci髇 si
tienes muchos usuarios ejecutando clientes que no pueden manejar MIME.
<hr>

  0707010005ad37000081a40000000000000002000000013ac0389c00000119000000200000000000000000000000000000002f00000003reloc/sendmail/help/opt_SendMimeErrors.fr.html    <header>L'encodage MIME du Message de Rebond</header>

D閠ermine si le message de rebond doit 阾re envoy dans un format MIME multiple ou un simple fichier texte.  Utiliser la derni鑢e option si vous avez plusieurs usagers utilisant des clients qui ne supporte pas MIME.<p>

<hr>

   0707010005ad38000081a40000000000000002000000013ac0389c000000fe000000200000000000000000000000000000002c00000003reloc/sendmail/help/opt_SendMimeErrors.html   <header>MIME-encode bounce messages?</header>

Determines whether bounce messages should be send in multi-part MIME format,
or as a simple plain text message. Use the latter option if you have lots of
users running clients that cannot handle MIME.
<hr>

  0707010005ad39000081a40000000000000002000000013ac0389c00000165000000200000000000000000000000000000002f00000003reloc/sendmail/help/opt_SendMimeErrors.pl.html    <header>Kodowanie MIME odbitych wiadomo禼i?</header>

Okre秎a, czy odbita w&nbsp;wyniku b酬du wiadomo舵 ma by wys砤na jako
wielocz甓ciowa w formacie MIME (multipart/mixed), czy jako zwyk砤 wiadomo舵
tekstowa (text/plain). U縴j drugiej opcji, je縠li posiadasz wielu
u縴tkownik體 korzystaj眂ych z&nbsp; klient體 poczty nie obs硊guj眂ych
standardu MIME.
<hr>
   0707010005ad3a000081a40000000000000002000000013ac0389c0000012a000000200000000000000000000000000000003200000003reloc/sendmail/help/opt_SendMimeErrors.ru_RU.html <header>'悟耜嚓桠帼' 耦钺龛  MIME-觐滂痤怅?</header>

物疱溴弪, 觐沅 '铗耜嚓桠帼' 耦钺龛 漕腈睇 铗覃豚螯  MIME 纛痨囹, 桦 镳铖蝾 蝈犟蝾忸 纛痨囹. 锐镱朦珞轵 怛铕铋 忄痂囗 羼腓  忄 祉钽 镱朦珙忄蝈脲 疣犷蜞桴  镳钽囔爨扈-觌桢眚囔 礤 箪妣扈 疣犷蜞螯  MIME.
<hr>

  0707010005ad3b000081a40000000000000002000000013ac0389c0000012a000000200000000000000000000000000000003200000003reloc/sendmail/help/opt_SendMimeErrors.ru_SU.html <header>'镌铀了勺晾萆' 酉下菖紊  MIME-讼纳蚁姿?</header>

镄遗呐萄旁, 讼悄 '显铀了勺晾萆' 酉下菖紊 南讨钨 显淤塘载友  MIME 葡彝猎, 商 幸嫌韵 耘擞韵紫 葡彝猎. 橛邢特谡试 自弦鲜 琢疑廖 庞躺  琢 臀锨 邢特谙琢耘膛 伊孪粤垒扇  幸锨镣土蜕-颂膳卧镣 闻 胀爬萆蜕 伊孪粤载  MIME.
<hr>

  0707010005ad3c000081a40000000000000002000000013ac0389c00000109000000200000000000000000000000000000002f00000003reloc/sendmail/help/opt_SendMimeErrors.sv.html    <header>MIME-koda studsade brev?</header>

H鋜 st鋖ler man in om studsade e-postmeddelanden ska skickas i flerdelat
MIME-format eller som rena textmeddelanden. Det senare alternativet b鰎
v鋖jas om man i systemet har m錸ga klienter som inte kan hantera MIME.
<hr>

   0707010005ad3d000081a40000000000000002000000013ac0389c000000b6000000200000000000000000000000000000003700000003reloc/sendmail/help/opt_SendMimeErrors.zh_TW.Big5.html    <header>琌紆 MIME 絪絏秎ン?</header>

∕﹚癶秎ン琌璶场だ MIME Α癳, ┪璶癳ゅ癟. 讽眤计ㄏノ礚猭矪瞶 MIME 秎ン, 叫ㄏノ匡拒"".
<hr>

  0707010005ad3e000081a40000000000000002000000013ac0389c000001cf000000200000000000000000000000000000003400000003reloc/sendmail/help/opt_Timeout.queuereturn.es.html   <header>Tiempo antes de darse por vencido</header>

Si la entrega de un mensaje falla por alguna raz髇 temporal (como que el
servidor destinatario est ca韉o), sendmail mantendr el correo en su
cola por la cantidad de tiempo especificado por esta opci髇, reintentando
la entrega ocasion醠mente. Una vez que el tiempo l韒ite se alcance, un
mensaje a poner en la calle ser enviado de vuelva al remitente y el mensaje
ser descartado. <p>
<include units.es>
<hr>

 0707010005ad3f000081a40000000000000002000000013ac0389c000001c5000000200000000000000000000000000000003400000003reloc/sendmail/help/opt_Timeout.queuereturn.fr.html   <header>Temps Avant d'Abandonner</header>

Quand l'envoie d'un couriel rate pour une raison temporaire (comme le serveur de destination est arr阾), Sendmail va garder le couriel dans sa file d'attente et essayer de le r-envoyer occasionnellement.  Une fois que ce temps limite sera atteint, un couriel sera envoyer  l'閙etteur du couriel l'informant de l'abandon de l'envoie avant de le supprimer de sa file d'attente.<p>

<include units>
<hr>
   0707010005ad40000081a40000000000000002000000013ac0389c00000191000000200000000000000000000000000000003100000003reloc/sendmail/help/opt_Timeout.queuereturn.html  <header>Time before giving up</header>

When delivery of a message fails for some temporary reason (such as the
destination server being down), sendmail will keep the email in its queue
for the amount of time specified by this option, retrying delivery occasionally.
Once the time limit is reached, a bounce message will be sent back to the
sender and the message discarded. <p>
<include units>
<hr>

   0707010005ad41000081a40000000000000002000000013ac0389c000001d1000000200000000000000000000000000000003400000003reloc/sendmail/help/opt_Timeout.queuereturn.pl.html   <header>Czas, po kt髍ym wiadomo舵 jest odrzucana</header>

Gdy pr骲a dor阠z阯ia jakiej wiadomo禼i zako馽zy si niepowodzeniem
z&nbsp;powodu tymczasowego problemu (np. gdy serwer docelowy jest
nieczynny), sendmail b阣zie trzyma wiadomo舵 w&nbsp;kolejce przez czas
okre秎ony w&nbsp;tej opcji, pr骲uj眂 okresowo wiadomo舵 dor阠za.
W&nbsp;chwili, gdy ten czas up硑nie, kopia wiadomo禼i zostanie odbita do
nadawcy a&nbsp;orygina porzucony. <p>

<include units>
<hr>
   0707010005ad42000081a40000000000000002000000013ac0389c000001af000000200000000000000000000000000000003700000003reloc/sendmail/help/opt_Timeout.queuereturn.ru_RU.html    <header>吗屐 漕 腓赈桎圉梃 礤铗铖豚眄 耦钺龛</header>

篷腓 漕耱噔赅 耦钺龛 礤 镳铠豚 镱 礤觐蝾瘥 怵屐屙睇 镳梓桧囔 (磬镳桁屦 皴疴屦 - 噤疱襦 猁 恹觌屙), sendmail 耦躔囗栩 耦钺龛  铟屦邃 磬 怵屐 箨噻囗眍  溧眄铎 镟疣戾蝠, 镥痂钿梓羼觇 稃蜞顸 邈 铗铖豚螯. 橡 桉蝈麇龛 溧眄钽 腓扈蜞 怵屐屙, '铗耜嚓桠帼' 耦钺龛 狍溴 镱耠囗 钺疣蝽  耦钺龛 桤 铟屦邃 狍溴 箐嚯屙.
<p>
<include units>
<hr>

 0707010005ad43000081a40000000000000002000000013ac0389c000001af000000200000000000000000000000000000003700000003reloc/sendmail/help/opt_Timeout.queuereturn.ru_SU.html    <header>饕磐 南 躺俗赡撩缮 闻显嫌塘挝偃 酉下菖紊</header>

逵躺 南釉磷肆 酉下菖紊 闻 幸羡塘 邢 闻讼韵屹 滓磐盼钨 幸赊晌镣 (瘟幸赏乓 优易乓 - 聊遗恿 沦 踪颂擂盼), sendmail 酉纫廖稍 酉下菖紊  限乓拍 瘟 滓磐 账邻廖蜗  牧挝贤 辛伊团砸, 信疑夏赊庞松 匈粤延 徘 显嫌塘载. 鹨 捎耘夼紊 牧挝锨 躺蜕粤 滓磐盼, '显铀了勺晾菖' 酉下菖紊 抡呐 邢犹廖 下伊晕  酉下菖紊 哨 限乓拍 抡呐 漳撂盼.
<p>
<include units>
<hr>

 0707010005ad44000081a40000000000000002000000013ac0389c0000019c000000200000000000000000000000000000003400000003reloc/sendmail/help/opt_Timeout.queuereturn.sv.html   <header>Tid tills servern ska sluta f鰎s鰇a</header>

N鋜 sendmail misslyckas att skicka e-post p grund av n錱ot tillf鋖ligt fel
(t ex att mottagarservern 鋜 nere) sparar sendmail meddelandet i e-postk鰊
den angivna tiden. Under denna tid f鰎s鰇er sendmail att skicka om
meddelandet d och d. N鋜 tidsgr鋘sen 鋜 uppn錮d skickas ett studsmeddelande
till avs鋘daren och meddelandet kastas.
<include units>
<hr>

0707010005ad45000081a40000000000000002000000013ac0389c0000011b000000200000000000000000000000000000003c00000003reloc/sendmail/help/opt_Timeout.queuereturn.zh_TW.Big5.html   <header>斌玡单丁</header>

讽ㄇ既┦硑Θ秎ン礚猭患癳 (ㄒヘ夹狝竟闽超), Sendmail 穦盢赣秎ン玂痙︻い硂匡兜┮﹚丁, 硂琿丁い尿穝沽刚患癳. 讽笷硂丁, 癶ン癟穦砆癳倒盚ンメ斌硂癟. <p>
<include units>
<hr>

 0707010005ad46000081a40000000000000002000000013ac0389c000001d0000000200000000000000000000000000000003200000003reloc/sendmail/help/opt_Timeout.queuewarn.es.html <header>Tiempo antes de enviar un aviso</header>

Si la entrega de un mensaje falla por alguna raz髇 temporal (como que el
servidor destinatario est ca韉o), sendmail mantendr el correo en su
cola por la cantidad de tiempo especificado por esta opci髇, reintentando
la entrega ocasion醠mente. Una vez que el tiempo l韒ite se alcance, un
mensaje ser enviado de vuelva al remitente inform醤dole del retraso en
la entrega del mensaje. <p>

<include units.es>
<hr>

0707010005ad47000081a40000000000000002000000013ac0389c000001b2000000200000000000000000000000000000003200000003reloc/sendmail/help/opt_Timeout.queuewarn.fr.html <header>Temps Avant d'Envoyer un Avertissement</header>

Quand l'envoie d'un couriel rate pour une raison temporaire (comme le serveur de destination est arr阾), Sendmail va garder le couriel dans sa file d'attente et essayer de le r-envoyer occasionnellement.  Une fois que ce temps limite sera atteint, un couriel sera envoyer  l'閙etteur du couriel l'informant du d閘ais dans l'envoie du couriel.<p>

<include units>
<hr>
  0707010005ad48000081a40000000000000002000000013ac0389c0000018b000000200000000000000000000000000000002f00000003reloc/sendmail/help/opt_Timeout.queuewarn.html    <header>Time before sending warning</header>

When delivery of a message fails for some temporary reason (such as
the destination server being down), sendmail will keep the email in its
queue, retrying delivery occasionally. Once this warning time limit has
been reached, a message will be sent back to the sender informing him of
the delay in delivering the message. <p>

<include units>
<hr>

 0707010005ad49000081a40000000000000002000000013ac0389c000001bc000000200000000000000000000000000000003200000003reloc/sendmail/help/opt_Timeout.queuewarn.pl.html <header>Czas, po kt髍ym wysy砤ne jest ostrze縠nie</header>

Gdy pr骲a dor阠z阯ia jakiej wiadomo禼i zako馽zy si niepowodzeniem
z&nbsp;powodu tymczasowego problemu (np. gdy serwer docelowy jest nieczynny),
sendmail b阣zie trzyma wiadomo舵 w&nbsp;kolejce pr骲uj眂 j okresowo
dor阠za. W&nbsp;chwili, gdy ten czas up硑nie, do nadawcy zostanie wys砤na
kopia wiadomo禼i z informacj, 縠 wyst眕i op蠹nienie w dor阠zeniu. <p>

<include units>
<hr>
0707010005ad4a000081a40000000000000002000000013ac0389c00000195000000200000000000000000000000000000003500000003reloc/sendmail/help/opt_Timeout.queuewarn.ru_RU.html  <header>吗屐 镥疱 铗覃腙铋 镳邃箫疱驿屙</header>

篷腓 漕耱噔赅 耦钺龛 礤 镳铠豚 镱 礤觐蝾瘥 怵屐屙睇 镳梓桧囔 (磬镳桁屦 皴疴屦 - 噤疱襦 猁 恹觌屙), sendmail sendmail 耦躔囗栩 耦钺龛  铟屦邃, 镥痂钿梓羼觇 稃蜞顸 邈 铗铖豚螯. 项 镳铠羼蜮梃 箨噻囗眍泐  溧眄铎 镟疣戾蝠 怵屐屙, 耦钺龛  镳邃箫疱驿屙桢  玎溴疰赍  漕耱噔赍 镱黩 狍溴 铗铖豚眍 钺疣蝽.
<p>

<include units>
<hr>

   0707010005ad4b000081a40000000000000002000000013ac0389c00000195000000200000000000000000000000000000003500000003reloc/sendmail/help/opt_Timeout.queuewarn.ru_SU.html  <header>饕磐 信遗 显淤趟鲜 幸拍招遗帜盼裳</header>

逵躺 南釉磷肆 酉下菖紊 闻 幸羡塘 邢 闻讼韵屹 滓磐盼钨 幸赊晌镣 (瘟幸赏乓 优易乓 - 聊遗恿 沦 踪颂擂盼), sendmail sendmail 酉纫廖稍 酉下菖紊  限乓拍, 信疑夏赊庞松 匈粤延 徘 显嫌塘载. 鹣 幸羡庞宰缮 账邻廖蜗窍  牧挝贤 辛伊团砸 滓磐盼, 酉下菖紊  幸拍招遗帜盼膳  诹呐抑伺  南釉磷伺 邢拊 抡呐 显嫌塘蜗 下伊晕.
<p>

<include units>
<hr>

   0707010005ad4c000081a40000000000000002000000013ac0389c00000172000000200000000000000000000000000000003200000003reloc/sendmail/help/opt_Timeout.queuewarn.sv.html <header>Tid tills varning skickas</header>

N鋜 sendmail misslyckas att skicka e-post p grund av n錱ot tillf鋖ligt fel
(t ex att mottagarservern 鋜 nere) sparar sendmail meddelandet i e-postk鰊
och f鰎s鰇er att skicka om det d och d. N鋜 tidsgr鋘sen 鋜 n錮d skickas
ett varningsmeddelande till avs鋘daren om att e-postmeddelandet f鰎senats.

<p><include units>
<hr>

  0707010005ad4d000081a40000000000000002000000013ac0389c000000f8000000200000000000000000000000000000003a00000003reloc/sendmail/help/opt_Timeout.queuewarn.zh_TW.Big5.html <header>癳牡玡单丁</header>

讽ㄇ既┦硑Θ秎ン礚猭患癳 (ㄒヘ夹狝竟闽超), Sendmail 穦盢赣秎ン玂痙︻い尿穝沽刚患癳. 讽笷硂牡丁, 癟穦砆癳倒盚ン硄ㄤ硂患癳┑筐. <p>

<include units>
<hr>

0707010005ad4e000081a40000000000000002000000013ac0389c0000027b000000200000000000000000000000000000002600000003reloc/sendmail/help/opt_dmode.es.html <header>Mode de entrega</header>

Controla cu醤do los mensajes enviados a este servidor de correo son entregados.
Las opciones posibles con:
<ul>
<li><b>Segundo plano</b><br>
    Los mensajes son entregados tan pronto como sea posible en segundo plano.<p>
<li><b>S髄o poner en cola</b><br>
    Los mensajes sometidos son m閞amente puestos en cola, no son entregados
    hasta que la cola es vaciada manu醠mente.<p>
<li><b>Interactivo</b><br>
    Los mensajes son entregados inmedi醫amente.<p>
<li><b>Diferido</b><br>
    Como <i>S髄o poner en cola</i>, pero no se hace b鷖queda de DNS o NIS de
    los mensajes sometidos.
</ul>

<hr>

 0707010005ad53000081a40000000000000002000000013ac0389c000000eb000000200000000000000000000000000000001f00000003reloc/sendmail/help/units.html    
This time must be given as a number followed by a character
for the units, such as <tt>30m</tt> or <tt>1d</tt>. Valid units are
<tt>s</tt> = seconds, <tt>m</tt> = minutes, <tt>h</tt> = hours,
<tt>d</tt> = days and <tt>w</tt> = weeks.
 0707010005ad50000081a40000000000000002000000013ac0389c000002a0000000200000000000000000000000000000002600000003reloc/sendmail/help/opt_dmode.pl.html <header>Tryb dor阠zania</header>

Okre秎a, kiedy maj by dor阠zane wiadomo禼i przys砤ne do niniejszego
serwera. Dost阷ne mo縧iwo禼i to:
<ul>
<li><b>W&nbsp;tle</b><br>
    Wiadomo禼i s dor阠zane tak szybko jak to mo縧iwe, w&nbsp;tle. <p>
<li><b>Tylko kolejkowanie</b><br>
    Dostarczone wiadomo禼i s po prostu umieszczane w&nbsp;kolejce
    i&nbsp;nie s dor阠zane a do chwili r阠znie wydanego polecenia
    opr罂nienia kolejki. <p>
<li><b>Interakcyjnie</b><br>
    Wiadomosci s dor阠zane natychmiast.<p>
<li><b>Deferred</b><br>
    Jak <i>Tylko kolejkowanie</i>, lecz nie s wykonywane przeszukiwania DNS
    i&nbsp;NIS dla dostarczonych wiadomo禼i. <p>
</ul>

<hr>
0707010005ad54000081a40000000000000002000000013ac0389c00000102000000200000000000000000000000000000002200000003reloc/sendmail/help/units.pl.html 
Czas musi by podany jako liczba, po kt髍ej bezpo秗ednio nast阷uje
oznaczenie jednostki, np. <tt>30m</tt> lub <tt>1d</tt>.
Dozwolonymi jednostkami s
<tt>s</tt> = sekundy, <tt>m</tt> = minuty, <tt>h</tt> = godziny,
<tt>d</tt> = dni i <tt>w</tt> = tygodnie.
  0707010005ad55000081a40000000000000002000000013ac0389c00000112000000200000000000000000000000000000002500000003reloc/sendmail/help/units.ru_RU.html  
蒡 怵屐 漕腈眍 猁螯 玎镨襦眍, 赅 麒耠  镱耠邃簋 耔焘铍铎 钺铉磬鬣桁 邃桧桷 桤戾疱龛, 磬镳桁屦 <tt>30m</tt> 桦 <tt>1d</tt>. 念矬耱桁 邃. 桤戾疱龛 怆 <tt>s</tt> = 皴牦礓, <tt>m</tt> = 扈眢螓, <tt>h</tt> = 鬣覃, <tt>d</tt> = 漤  <tt>w</tt> = 礤溴腓.
  0707010005ad56000081a40000000000000002000000013ac0389c00000112000000200000000000000000000000000000002500000003reloc/sendmail/help/units.ru_SU.html  
 滓磐 南讨蜗 沦载 诹猩恿蜗, 肆 奚犹  邢犹拍绽萆 由妥咸贤 下馅瘟蘖垒赏 拍晌擅 哨团遗紊, 瘟幸赏乓 <tt>30m</tt> 商 <tt>1d</tt>. 湎姓釉赏偻 拍. 哨团遗紊 炎萄涝友 <tt>s</tt> = 优苏文, <tt>m</tt> = 蜕握再, <tt>h</tt> = 蘖淤, <tt>d</tt> = 奈  <tt>w</tt> = 闻呐躺.
  0707010005ad57000081a40000000000000002000000013ac0389c000000fb000000200000000000000000000000000000002200000003reloc/sendmail/help/units.sv.html 
Detta tidsintervall m錽te anges som ett tal f鰈jt av en bokstav som markerar
enhet, t ex <tt>30m</tt> eller <tt>1d</tt>. Giltiga enheter 鋜
<tt>s</tt> = sekunder, <tt>m</tt> = minuter, <tt>h</tt> = timmar,
<tt>d</tt> = dagar och <tt>w</tt> = veckor.
 0707010005ad58000081a40000000000000002000000013ac0389c000000b0000000200000000000000000000000000000002a00000003reloc/sendmail/help/units.zh_TW.Big5.html 
丁ゲ斗璶计籔丁虫硈よΑ倒ぉ, ㄒ <tt>30m</tt> ┪ <tt>1d</tt>. Τ虫  <tt>s</tt> = , <tt>m</tt> = だ, <tt>h</tt> = ,
<tt>d</tt> = ら, <tt>w</tt> = ㏄.
0707010005d971000041ed0000000000000001000000023ac03c6c00000000000000200000000000000000000000000000001600000003reloc/sendmail/images 0707010005d972000081a40000000000000002000000013ac0389b00000122000000200000000000000000000000000000002100000003reloc/sendmail/images/access.gif  GIF89a0 0   烫虣櫃fff           !    ,    0 0  很0蔍8胪`(巇Yh寥攫号t峑v^OzK緺,"," L*k儴$):煥 *%V职/\誶瞶.椣辴{&赝]誮酚雫[pi`億倉墜}俇xLHr崐姌儝[僜晢{槕a湨惄搫{憶ū嚘拰溁﹟攈l砤祔矾瞮苔罇櫏ぞ悿敪笌澞纹m员dZ靃眈f駎#& 
H班 ;  0707010005d973000081a40000000000000002000000013ac0389b0000018d000000200000000000000000000000000000002200000003reloc/sendmail/images/aliases.gif GIF89a0 0   烫櫃檉ff         !Made with GIMP !   ,    0 0  蒊8胪;`(巇	z琹刖皜N阘 顳OB+
萠pF4:唫R8tZ	些肮书t种駺嬖-/怂徤}玾飗^螠q8utmz|~iaFK{}\7媌p攁崕q悪V洔灍 礀彽彻祷糡究3谅呐侨仕Ψ紊醒逃韵)&圮'顿)ぅ邽俬a>Z膽R@洌+P餭Ⅲ鬤阤蕬詯z0]蔚櫮偁5xIsP囙P:Hqc瀷) *	#HY|49怞;z+b蓙%25懦g蝛@僋  ;   0707010005d974000081a40000000000000002000000013ac0389b0000004d000000200000000000000000000000000000002100000003reloc/sendmail/images/attach.gif  GIF89a   览犁+    !    ,       D zK4儷霜I1諌
'$&hg ;   0707010005d975000081a40000000000000002000000013ac0389b0000016f000000200000000000000000000000000000002000000003reloc/sendmail/images/boxes.gif   GIF89a0 0   烫櫃檉ff       !Made with GIMP !   ,    0 0  蒊8胪`(巇i灗珸瓵.8][7钕Ⅶ+關蘑hJ.熐忬Ievφl葄梉I鱇V'z蚽唬悴'爐 >徸蟚亖uh^厙bz}搲8唙昒梽彍漁棝垼KウАE梻⿷瞋怌腹d量2罽簈箚颗哵1寺率醚脱啬潭蛔行棉胀捱嵴句蔗嬖沌潢殂誓碹琐疖c8ろ頫:^O瀖CXC*.(薄3j塄Q埱 CI菠	  ; 0707010005d976000081a40000000000000002000000013ac0389b00000178000000200000000000000000000000000000001e00000003reloc/sendmail/images/cgs.gif GIF89a0 0   烫   櫃檉ff       !Made with GIMP !   ,    0 0  蒊8胪Ahf@杇;0.,觰|悝==C疲'╈0洑'%渘6r1踥X忑V苂z蚽贿>笟 仫^镗t們厒~{}崓/墪夿w憮u儎唲杫媽帨拋Ζī弽瓟瘱帪~睂换礋"缐陆幍犐1ウ莡衴$曳誼⒂噡+绍v撺遻$袖珥嗋总鐖堳麇孜龋鳇賉H`=|餮+7猘;镦笲笲*nQ焷)B嚿(S猏y虒K  ;0707010005d977000081a40000000000000002000000013ac0389b0000010a000000200000000000000000000000000000001e00000003reloc/sendmail/images/cws.gif GIF89a0 0   fff!    ,    0 0  釀彥送偖趬伡躮狤&bI&}火岐痽譻;遻蓿_2濷GP-9Z缵墣败嬊洳耿=sV>#mNO4烐鶎閼m爲蒹早g"5dwH鴆創$#"%拏i)鋺Π礔鏵z姎蔣盒9鸙U)gWj3%狦D%4鶊Qえ鴳躭樚XH|w鲖K账趐妄.>奧螔幡沅灱+染(-d4漃  ;  0707010005d978000081a40000000000000002000000013ac0389b00000100000000200000000000000000000000000000002200000003reloc/sendmail/images/domains.gif GIF89a0 0   fff      !    ,    0 0  褎彥隧唟S5桡q潄ya(N&榌鸼0夁'嫞h踓e喞.!~抒蕡l驉$趑琂┗mw鑻墢7豓Mサ鎞裓P畿髍:谗'(AX鑠埲牳ㄐ鑘p70	閤Y鵋筰殓墍箟鷋Z蛎鞘珕E0洅挡釆Vｃc鬌fV詃e黴,能f臷禗ML絣鹟=,#f靷&V譀!筋頭  ;0707010005d979000081a40000000000000002000000013ac0389b00000185000000200000000000000000000000000000002300000003reloc/sendmail/images/generics.gif    GIF89a0 0   烫   櫃檉ff       !Made with GIMP !   ,    0 0  蒊8胪`翲歭
滦蜗映-悝纬((嫓#-撏輷	揘1诗%珴p粧oW<巶/$`蚽贿逊躆铠>u儎唭~}帋乛寣媽挃a唴噮搨杮Η殠瑫畓皛ù牰x腹换碂5懒Q括従葁0~M律蟰袽)U钟瓝湟M*秦遨躆觌銓隗舻讁 腃陰@{$圚!"頰鏾+&B/@!傯鑠b=~(⒛e蕮.伇{G肠蜎M舞 ;   0707010005d97a000081a40000000000000002000000013ac0389b0000013a000000200000000000000000000000000000001f00000003reloc/sendmail/images/icon.gif    GIF89a0 0   烫櫃檉ff       !   ,    0 0  蒊8胪`(巇i瀐l刖ptm選爌H,嚼`燶6暺(怈淠'鞦珪鴸L'+膮l扢函鋣絅8躵[{{}~y們tnU乫@NChi夿e\M揾殯?灈A棛攋jO│i灇潨阿擛湑Gz純箰厂煫禄D罯芇k薖E室行章僮綁捅娃懮究u早t殛^祉R篝貊鼬2 
H盃羶7D  ;  0707010005d97b000081a40000000000000002000000013ac0389b000000f8000000200000000000000000000000000000002200000003reloc/sendmail/images/mailers.gif GIF89a0 0   fff      !    ,    0 0  蓜彥隧b|椽惏軳K琿"|'ea樊e哟梞⒓y奄~21g橫z9=淤&E%鯅/荼H`Nl禈w熱q9哙髺=A鱃A噁Fx坸葓肛&88I)i猷棭吧權	ZIZZx讴授殼BR谱u昳5箂庥"S&鸘;腡v鮐$ぼd鞙麪;}=]15e饮,礻釱蜽  ;0707010005d97c000081a40000000000000002000000013ac0389b00000176000000200000000000000000000000000000002000000003reloc/sendmail/images/mailq.gif   GIF89a0 0   烫櫃檉ff      !Made with GIMP !   ,    0 0  䎬很0蔍8胪;宒i灗 .忄顎蜠M陑坁飃+辧H璚琗草r!揦>徏煐Ez鐳様-罭cV椎W訤p5吔莝_uDb|0J/h6z |~}{乼僀晥f奡i弆%oq攄抂﹣3嘖g煂!惍懌?璕&,洿濴犇偗救
；痺y由>蠔$谡B󆈩繋芝襗抛x█馥w罄亨渇冓!()鉢總 n/濻HM`C嚌>*D	儻(&#X珟葕酛溰慠-G瑋$牔蜎8s陓沙	  ;  0707010005d97d000081a40000000000000002000000013ac0389b0000014f000000200000000000000000000000000000001f00000003reloc/sendmail/images/masq.gif    GIF89a0 0   fff烫   櫃         !    ,    0 0  很0継㏕.1x墯@t迍U 	箳I抴+f榥[韌膣vF"睪.懜$挾;V5Z]9炁 6婶ra酁f2@-{[胅5Mi6訲k亜{3y厜|垔厓8崅寗hT亹~+q]殩憻9rt["csOF.vld[TKl穬こ$嚎_福D緪*nx虙 X@w攝!?Z彙*磶!坂忮勭厭檩帢唥鄑囪9$(杈繾-桊瘱@/癛'惜吪+xJ7抽 I菠蓳(S猏沈A ; 0707010005d97e000081a40000000000000002000000013ac0389b000001cc000000200000000000000000000000000000001f00000003reloc/sendmail/images/opts.gif    GIF89a0 0   櫃櫶烫   !    ,    0 0  ⻊	甲岒蛬T睼c陖耯箿c#槎+倂窝莞h%A 9洂舯@瀂
罧9=榍Z鈋/L瀨荾7&嬎[篡g制礸陞*U{ag&2鵂非%' XXSgGG(貴╱虏Y雎s)驋y赧9%33历:`
{  蓑z袺;;埴`{汸睖塥0 m潦郜 D-1离,卷,L:-蜰.l-峠觐n6<,唀#棌簝盞妗聢
5A瀴吼c灞hZi5r諭#+v躻蔅儇TⅰH幬B戞焯	1=c滗Y4MO倈*麻枽Nw蕠R,t怓吤顷濶^杰
uiY'QZ'3q昃w滼d硚祸羷遯簸唘p(EJ编槓n琷夊;)kV咘!葤1  ;0707010005d97f000081a40000000000000002000000013ac0389b00000037000000200000000000000000000000000000001d00000003reloc/sendmail/images/p1.gif  GIF89a      !   ,       L f枢[拥豱 ; 0707010005d980000081a40000000000000002000000013ac0389b00000037000000200000000000000000000000000000001d00000003reloc/sendmail/images/p2.gif  GIF89a      !   ,       L f枢[拥豱 ; 0707010005d981000081a40000000000000002000000013ac0389b00000188000000200000000000000000000000000000002000000003reloc/sendmail/images/relay.gif   GIF89a0 0   烫櫃檉ff         !Made with GIMP !   ,    0 0  蒊8k`(vhl+斨9塘<8S'減U(騶?Ip4
卿d淨)俍痴+dRv互l.傚L{诃軰+fn0Ti`.y\l*%\8彁,昄 灍牎ⅲ泍Ι钡炒?祷冀静嚎旅↖那痉├势纪翁0矣灾##于$侈 噔莩遐鐫栝3噼犧瘠鶨鲽瘽>)鄆 倿叞(匌抴癮AA聋G馺艁$1*淙P嗝z喡堁c=壀:毺(*2}8SB)
郜 ;0707010005d982000081a40000000000000002000000013ac0389b00000186000000200000000000000000000000000000002100000003reloc/sendmail/images/trusts.gif  GIF89a0 0      fff烫!    ,    0 0  ⻊彥隧&X
厧躲OG~J:"ㄘ芫涄-`愓坶8A醡5榈宐啽U(姖旿秺nRfF6#8_砪_踂TfJ力7@q坵 g(鰓@s羧w枛鴓t贅y'篱偃&h皯$宸:[v儤踄囀餣:瑳眤覉4琫滒!都鸆槣J扲e工骰M躪M編-{巆))㖞~J蚙_m 進u&)骔僪x,0麌/犅hN`瀀馺<朻LLn|t罧婽聶e%=螙塣嬜瓚'Y<喪張⑵- 萒Po:昮U4>燜佃幈d藲[  ;  0707010005d983000081a40000000000000002000000013ac0389b000001c3000000200000000000000000000000000000002400000003reloc/sendmail/images/virtusers.gif   GIF89a0 0   烫櫃檉ff         !Made with GIMP !   ,    0 0  蒊8S阑`萯渉珸^(陷&╧K崩F賯8灢uL&Paty"X		櫍
`@.9晦蔗PK萫Kp樦謓<~恕uY{s&)PS審'Zo|@g'倶橞棞妭p}'墭R洀尒\媰+ ~*惓祿嚖<縵敻耗;魄羠:畏首刭谯?/哚沐枥殡吶戾顼囫6稥5$饕L鹼}Zr%O唈~蜥驠iW?JAP9Fh_蟿验菲262籹类w夻t襊'≒TT*E蛃MQ軘JD[/o&B誗*S>&结創,={S閳3漱<鼩Al?瞗F%棆涆穐胝  ; 0707010005958a000081e40000000000000002000000013ac0389b000010aa000000200000000000000000000000000000001900000003reloc/sendmail/index.cgi  #!/usr/local/bin/perl
# index.cgi
# Display icons for various things that can be configured in sendmail

require './sendmail-lib.pl';

# check for mail-only user
if (!$access{'opts'} && !$access{'cws'} && !$access{'masq'} &&
    !$access{'trusts'} && !$access{'vmode'} && !$access{'amode'} &&
    !$access{'omode'} && !$access{'cgs'} && !$access{'relay'} &&
    !$access{'mailq'} && !$access{'mailers'} && !$access{'access'} &&
    !$access{'domains'} && $access{'mmode'}) {
	if ($access{'mmode'} == 2 && $access{'musers'} !~ /\s/) {
		&redirect("/$module_name/list_mail.cgi?user=$access{'musers'}");
		}
	elsif ($access{'mmode'} == 4) {
		&redirect("/$module_name/list_mail.cgi?".
			  "user=$ENV{'REMOTE_USER'}");
		}
	else {
		&redirect("/$module_name/list_boxes.cgi");
		}
	}

&header($text{'index_title'}, "", "intro", 1, 1);
print "<hr>\n";

# Check if sendmail is actually installed
if (!-x $config{'sendmail_path'}) {
	print "<p>",&text('index_epath', "<tt>$config{'sendmail_path'}</tt>",
			  "/config.cgi?$module_name"),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

# Check if the config file exists, and is the right version
if (!-r $config{'sendmail_cf'}) {
	print "<p>",&text('index_econfig', "<tt>$config{'sendmail_cf'}</tt>",
			  "/config.cgi?$module_name"),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}
$conf = &get_sendmailcf();
if (!&check_sendmail_version($conf)) {
	print "<p>$text{'index_eversion'}<p>\n";
	print "<hr>\n";
	&footer("/", "index");
	exit;
	}

@olinks =  ( "list_opts.cgi", "list_aliases.cgi", "list_cws.cgi", "list_masq.cgi", "list_trusts.cgi", "list_virtusers.cgi", "list_mailers.cgi", "list_generics.cgi", "list_cgs.cgi", "list_domains.cgi", "list_access.cgi", "list_relay.cgi", "list_mailq.cgi", "list_boxes.cgi" );

@otitles = ( "$text{'opts_title'} (O)", "$text{'aliases_title'} (aliases)", "$text{'cws_title'} (Cw)", "$text{'masq_title'} (CM)", "$text{'trusts_title'} (T)", "$text{'virtusers_title'} (virtuser)", "$text{'mailers_title'} (mailertable)", "$text{'generics_title'} (generics)", "$text{'cgs_title'} (CG)", "$text{'domains_title'} (domaintable)", "$text{'access_title'} (access)", "$text{'relay_title'} (CR)", "$text{'mailq_title'} (mailq)", "$text{'boxes_title'}"); 

@oicons =  ( "images/opts.gif", "images/aliases.gif", "images/cws.gif", "images/masq.gif", "images/trusts.gif", "images/virtusers.gif", "images/mailers.gif", "images/generics.gif", "images/cgs.gif", "images/domains.gif", "images/access.gif", "images/relay.gif", "images/mailq.gif", "images/boxes.gif" );

&filter_icons($access{'opts'}, "list_opts.cgi");
&filter_icons($access{'cws'}, "list_cws.cgi");
&filter_icons($access{'masq'}, "list_masq.cgi");
&filter_icons($access{'trusts'}, "list_trusts.cgi");
&filter_icons($access{'vmode'}, "list_virtusers.cgi");
&filter_icons($access{'amode'}, "list_aliases.cgi");
&filter_icons($access{'omode'}, "list_generics.cgi");
&filter_icons($access{'cgs'}, "list_cgs.cgi");
&filter_icons($access{'relay'}, "list_relay.cgi");
&filter_icons($access{'mailq'}, "list_mailq.cgi");
&filter_icons($access{'mailers'}, "list_mailers.cgi");
&filter_icons($access{'access'}, "list_access.cgi");
&filter_icons($access{'domains'}, "list_domains.cgi");
&filter_icons($access{'mmode'}, "list_boxes.cgi");

&icons_table(\@olinks, \@otitles, \@oicons);

if ($access{'stop'}) {
	print "<hr>\n";
	if (open(PID, $config{'sendmail_pid'})) {
		chop($pid = <PID>);
		close(PID);
		}
	if ($pid && kill(0, $pid)) {
		print "<table cellpadding=5 width=100%><tr><td>\n";
		print "<form action=stop.cgi>\n";
		print "<input type=hidden name=pid value=$pid>\n";
		print "<input type=submit value=\"$text{'index_stop'}\">\n";
		print "</td> <td>$text{'index_stopmsg'}\n";
		}
	else {
		print "<table cellpadding=5 width=100%><tr><td>\n";
		print "<form action=start.cgi>\n";
		print "<input type=submit value=\"$text{'index_start'}\">\n";
		print "</td> <td>",&text('index_startmsg',
		      "<tt>$config{'sendmail_command'}</tt>"),"\n";
		}
	print "</td></tr></table></form>\n";
	}

print "<hr>\n";
&footer("/", $text{'index'});

sub filter_icons
{
if (!$_[0]) {
	local $idx = &indexof($_[1], @olinks);
	splice(@olinks, $idx, 1);
	splice(@otitles, $idx, 1);
	splice(@oicons, $idx, 1);
	}
}

  0707010005f31c000041ed0000000000000001000000023ac03c6f00000000000000200000000000000000000000000000001400000003reloc/sendmail/lang   0707010005f31d000081a40000000000000002000000013ac0389c00005e94000000200000000000000000000000000000001700000003reloc/sendmail/lang/de    index_title=Sendmail Konfiguration
index_econfig=Die Sendmail Konfigurationsdatei $1 existiert nicht. Eventuell ist Ihre <a href='$2'>Modul Konfiguration</a> inkorrekt.
index_eversion=Ihre Sendmail Konfigurationsdatei scheint nicht f黵 die letzte Version von Sendmail zu sein. Webmin unterst&uuml;tzt lediglich Sendmail Version 8.8 und h&ouml;her.
index_epath=Die ausf&uuml;hrbare Datei $1 ist nicht auf Ihrem System installiert Vielleicht ist Ihre <a href='$2'>Modul Konfiguration</a> fehlerhaft oder Sendmail ist nicht installiert
index_return=Sendmail Konfiguration
index_stop=Sendmail stoppen
index_stopmsg=Klicken Sie auf diesen Button, um den laufenden Sendmail Prozess zu stoppen. Dies wird die Auslieferung von E-Mail zu Benutzern des lokalen Systems von anderen Systemen stoppen und Clients davon abhalten, dieses System als Mailserver zum Versand von E-Mails zu benutzen.
index_start=Sendmail starten
index_startmsg=Klicken Sie auf dieses Button um Sendmail mit dem Kommando $1 zu starten. Bis dies getan ist wird keine E-Mail von anderen Systemen zu lokalen Benutzern ausgeliefert und Clients k&ouml;nnen dieses System nicht als Mailserver zum Mail-Versand benutzen.

opts_title=Sendmail Einstellungen
opts_ecannot=Sie haben keine Berechtigung Sendmail Einstellungen zu bearbeiten
opts_ds=Sende ausgehende via Host
opts_direct=Liefere direkt aus
opts_dr=Leite unqualifizierte Benutzernamen weiter zu Host
opts_dh=Leite Mail f&uuml;r lokale Benutzer weiter zu Host
opts_local=Liefere lokal aus
opts_queuela=Maximaler Lade-Durchschnitt zum Senden
opts_refusela=Maximaler Lade-Durchschnitt zum Empfangen
opts_maxch=Maximale Anzahl Subprozesse
opts_throttle=Maximale Anzahl Verbindungen / Sekunde
opts_minqueueage=Minimal Zeit vor dem erneuten Sende-Versuch
opts_runsize=Maximale Warteschlangen-L&auml;nge
opts_queuereturn=Zeit bevor aufgegeben wird
opts_queuewarn=Zeit bevor eine Warnung gesendet wird
opts_queue=Verzeichnis der Warteschlange
opts_postmaster=Sende Fehlermeldungen an
opts_forward=Benutzer Weiterleitungs-Dateien
opts_minfree=Minimaler freier Speicherplatz
opts_maxmessage=Maximale Nachrichten-Gr&ouml;sse
opts_loglevel=Log Level
opts_mimebounce=MIME-kodierte Bounce Nachrichten?
opts_default=Standard
opts_save=Speichern und anwenden
opts_err=Fehler beim Speichern der Einstellungen
opts_ehost='$1' ist kein g&uuml;ltiger Host oder Domain
opts_einvalid='$1' ist kein g&uuml;ltiger Wert f&uuml;r '$2'
opts_blame=Datei Sicherheitseinstellungen
opts_selected=Ausgew&auml;hlte..

aliases_title=Mail Aliase
aliases_ecannot=Sie haben keine Berechtigung, die Aliase zu bearbeiten
aliases_addr=Adresse
aliases_to=Alias auf..
aliases_type1=Adresse $1
aliases_type2=Adressen in Datei $1
aliases_type3=Datei $1
aliases_type4=Programm $1
aliases_type5=Automatische Antwort Datei $1
aliases_none=Keine
aliases_return=Alias Liste

aform_type0=Kein
aform_type1=E-Mail Adresse
aform_type2=Adressen in Datei
aform_type3=Schreibe in Datei
aform_type4=Gebe an Programm
aform_type5=Automatische Antwort aus Datei
aform_edit=Alias bearbeiten
aform_create=Alias erstellen
aform_name=Adresse
aform_enabled=Aktiviert?
aform_val=Alias zu

asave_err=Fehler beim Speichern des Alias
asave_ecannot2=Sie haben keine Berechtigung, Aliase zu bearbeiten
asave_ecannot=Sie haben keine Berechtigung, Aliase zu bearbeiten
asave_emax=Sie haben keine Berechtigung, mehr als $1 Aliase zu erstellen
asave_eaddr='$1' ist keine g&uuml;ltige Adresse
asave_ealready=Es existiert bereits ein Alias f&uuml;r '$1'
asave_ematch=Sie haben nur die Berechtigung Aliase zu erstellen, die mit '$1' &uuml;bereinstimmen
asave_etype=Sie haben nicht die Berechtigung, Aliase dieses Typs zu erstellen
asave_etype1='$1' ist keine g&uuml;ltige E-Mail Adresse
asave_etype2=Adressen Datei '$1' existiert nicht oder ist ung&uuml;ltig
asave_etype3='$1' ist kein g&uuml;ltiger Dateiname
asave_etype4='$1' ist kein g&uuml;ltiges Programm oder existiert nicht
asave_etype5=Datei '$1' f&uuml;r automatische Antwort ist entweder ung&uuml;ltig oder existiert nicht
asave_etype4none=Kein Programm angegeben

cws_title=Lokale Domains
cws_ecannot=Sie haben keine Berechtigung, lokale Domains zu bearbeiten
cws_domains=Domains die von diesem Server behandelt werden
cws_desc1=Abgesehen von $1 wird Sendmail nur E-Mail f&uuml;r lokale Auslieferung akzeptieren f&uuml;r Domains und Hostnamen, die in der Textbox auf der linken Seite aufgelistet sind. Wenn Sie wollen, dass Ihr Mailserver mehrere E-Mail-Domains behandelt, dann m&uuml;ssen diese in der Box aufgelistet sein.
cws_desc2=Beachten Sie, dass es normalerweise nicht ausreicht, eine Domain einfach in die Liste einzutragen. Sie m&uuml;ssen weiterhin sicherstellen, dass ein DNS Eintrag f&uuml;r diese Domain existiert und auf dieses System verweist (insbesondere ein MX-Eintrag!).
cws_err=Fehler beim Speichern der lokalen Domains
cws_ehost='$1' ist kein g&uuml;ltiger Host- oder Domainname
cws_eip='$1' ist eine IP Adresse, keine Domain

masq_title=Domain Maskierung
masq_ecannot=Sie haben keine Berechtigung, die Maskierung zu konfigurieren
masq_domain=Maskiere als Domain
masq_domains=Domains, die maskiert werden sollen
masq_desc1=Falls eine Domain oben angegeben ist, wird Sendmail die Absender- (<tt>From-</tt>) Adresse f&uuml;r alle ausgehenden E-Mails so &auml;ndern, als w&uuml;rden Sie von dieser Domain kommen. Zus&auml;tzlich werden die Absender- (<tt>From-</tt>) Adressen von E-Mails, die durch Ihr System transferiert werden von einer der Domains, die links angegeben sind, auf die gleiche Weise ge&auml;ndert. Beachten Sie, dass jede Domain-Maskierung f&uuml;r einzelne Benutzer durch Seite "<a href='$1'>Ausgehende Adressen</a>" &uuml;berschrieben werden kann.
masq_desc2=Diese Funktion kann n&uuml;tzlich sein, wenn Sie wollen, das E-Mails von Ihrem System von Ihrem Domain Namen und nicht von ihrem Hostnamen kommen soll oder wenn Ihr System ein Mailverteiler f&uuml;r eine Reihe anderer Hosts ist, die Ihre eigenen Mailserver betreiben.
masq_err=Fehler beim Speichern der Domain Maskierung
masq_edomain='$1' ist keine g&uuml;ltige Domain zur Maskierung 
masq_ehost='$1' ist kein g&uuml;ltiger Host- oder Domain Name
masq_eip='$1' ist eine IP Adresse, kein Domain Name

trusts_title=Vertraute Benutzer
trusts_ecannot=Sie haben keine Berechtigung, Benutzer denen vertraut wird zu bearbeiten
trusts_users=Lokale Benutzer, denen von Sendmail getraut wird
trusts_desc=Wenn ein lokaler Benutzer versucht E-Mails zu versenden, wird Sendmail ihm nur gestatten, eine andere <tt>From:</TT> Adresse anzugeben, wenn er in der Liste links steht. Diese Einschr&auml;nkung h&auml;lt Benutzer davon ab, gef&auml;lschte <TT>From:</TT> Adressen in E-Mails zu benutzen, die von Ihrem System aus gesendet werden.
trusts_err=Fehler beim Speichern der Benutzer, denen vertraut wird
trusts_euser='$1' ist kein g&uuml;ltiger Benutzer

virtusers_title=Adress-Mapping
virtusers_ecannot=Sie haben keine Berechtigung, das Adress-Mapping zu bearbeiten
virtusers_edirective=Ihre Sendmail Konfiguration hat nicht die ben&ouml;tigte Direktive f&uuml;r Adress-Mapping
virtusers_efile=Die Text Datei $1, von der die Adress-Mapping Datenbank $2 generiert wird, exitiert nicht. Vielleicht m&uuml;ssen Sie die <a href='$3'>Modul Konfiguration</a> bearbeiten, um den korrekten Pfad zu benutzen.
virtusers_desc1=Adress-Mappings sind vergleichbar mit <a href='$1'>Aliasen</a>, aber sie zielen mehr auf Systeme, die mehrere E-Mail Domainen behandeln. Sie k&ouml;nen benutzt werden, um ganze Domains zu einer einzigen Adresse umzuleiten, um Benutzer mit einem Namen in mehreren Domains zu behandeln oder um alle E-Mails zu einer Domain zu einer anderen umzuleiten.
virtusers_desc2=Beachten Sie, dass Sie einen Eintrag in der Tabelle f&uuml;r <a href='$1'>lokale Domains</a> f&uuml;r alle Domains haben m&uuml;ssen, f&uuml;r die Adress-Mapping benutzt wird. Ebenso muss im DNS Eintrag ein MX-Eintrag vorhanden sein f&uuml;r jede Domain vorhanden sein, der auf Ihre System verweist.
virtusers_for=Mail f&uuml;r..
virtusers_to=Sende an..
virtusers_error=Fehler $1
virtusers_domain=Domain $1
virtusers_address=Adresse $1
virtusers_return=Adress-Mapping Liste

vform_edit=Mapping bearbeiten
vform_create=Mapping erstellen
vform_for=Mail f&uuml;r
vform_address=Adresse
vform_domain=Domain
vform_to=Sende an
vform_error=Gebe Fehler zur&uuml;ck
vform_end=Zum Ende bewegen
vform_ecannot=Sie haben keine Berechtigung, dieses Adress-Mapping zu bearbeiten

vsave_ecannot=Sie haben keine Berechtigung, Adress-Mappings zu bearbeiten
vsave_ecannot2=Sie haben keine Berechtigung, dieses Adress-Mapping zu bearbeiten
vsave_emax=Sie haben keine Berechtigung, mehr als $1 Adress-Mappings zu erstellen
vsave_err=Fehler beim Speichern des Adress-Mappings
vsave_efrom='$1' ist kein g&uuml;ltige Adresse
vsave_efromdup=Ein Adress-Mapping f&uuml;r '$1' ist bereits definiert
vsave_edom='$1' ist keine g&uuml;ltige Domain
vsave_edomdup=Ein Adress-Mapping f&uuml;r '$1' ist bereits definiert
vsave_ematch=Die Quell-Adresse entspricht nicht '$1'
vsave_ecannot3=Sie haben keine Berechtigung, Adress-Mappings zu erstellen
vsave_eaddr='$1' ist keine g&uuml;ltige Adresse
vsave_ecannot4=Sie haben keine Berechtigung, Mappings zu Domains zu erstellen
vsave_edomdom=Es kann nur eine Domain auf eine andere Domain umgeleitet werden
vsave_ecannot5=Sie haben keine Berechtigung, ein Mapping zu definieren, das einen Fehler zur&uuml;ckgibt

mailers_title=Domain Routing
mailers_cannot=Sie haben keine Berechtigung, das Domain Routing zu bearbeiten
mailers_edirective=Ihre Sendmail Konfigurationsdatei enth&auml;lt nicht die notwendige Direktive f&uuml;r Domain Routing.
mailers_efile=Die Text Datei $1 von der die Domain Routing Datenbank $2 generiert wird, existiert nicht. Vielleicht m&uuml;ssen Sie die <a href='$3'>Modul Konfiguration</a> anpasen, um den korrekten Pfad zu benutzen.
mailers_desc1=Domain Routing stellt ein Mittel zur Verf&uuml;gung, um spezielle Transfer-Methoden f&uuml;r bestimmte Domains festzulegen. Dies kann n&uuml;tzlich sein, wenn Ihr System ein Gateway f&uuml;r Mailserver ist, die nicht von ausserhalb Ihre Netzwerkes erreichbar sind oder wenn Sie alle E-Mails f&uuml;r eine bestimmte Domain &uuml;ber einen anderen Server leiten wollen.
mailers_desc2=Sie sollten <b>keinen</b> Eintrag bei den <a href='$1'>lokalen Domains</a> haben f&uuml;r eine geroutete Domain. Wie auch immer, Sie sollten einen DNS MX Eintrag f&uuml;r alle Domains, f&uuml;r die dieses Gateway zust&auml;ndig ist, haben, der auf Ihr System zeigt.
mailers_for=Mail f&uuml;r..
mailers_delivery=Auslieferung
mailers_to=Sende an..
mailers_return=Domain Routing Liste

mform_edit=Routing bearbeiten
mform_create=Routing erstellen
mform_for=Mail f&uuml;r
mform_host=Host
mform_domain=Domain
mform_delivery=Auslieferung
mform_to=Sende an
mform_ignore=Ignoriere MX Eintrag f&uuml;r SMTP Auslieferung
mform_smtp=SMTP
mform_esmtp=Erweitertes SMTP
mform_smtp8=8-bit SMTP
mform_relay=SMTP Weiterleitung
mform_local=Lokaler Benutzer
mform_prog=Gebe an Programm
mform_uucp=UUCP
mform_usenet=Poste ins USENET
mform_fax=HylaFAX
mform_pop=POP3
mform_procmail=Procmail
mform_mail11=DECnet mail11
mform_error=Fehler
mform_ecannot=Sie haben keine Berechtigung, das Domain-Routing zu bearbeiten

msave_ecannot=Sie haben keine Berechtigung, das Domain-Routing zu bearbeiten
msave_err=Fehler beim Speichern des Domain Routings
msave_edomain='$1' ist kein g&uuml;ltiger Host oder Domain
msave_edup=Es ist bereits Domain routing f&uuml;r '$1' definiert

generics_title=Ausgehende Adressen
generics_cannot=Sie haben keine Berechtigung, ausgehende Adressen zu bearbeiten
generics_econfig=Ihre Sendmail Konfigurationsdatei enth&auml;lt nicht die entsprechende Direktive f&uuml;r ausgehende Adressen.
generics_efile=Die Text Datei $1 von der die Datenbank $2 f&uuml;r ausgehende Adressen generiert wird existiert nicht. Vielleicht m&uuml;ssen Sie die <a href='$3'>Modul Konfiguration</a> anpassen, um den korrekten Pfad zu benutzen.
generics_desc1=Das Mapping von ausgehenden Adressen gestattet es Ihnen, <tt>From:</tt> Adressen von E-Mails, die von Ihrem System oder durch Ihr System von Hosts aus ihrem lokalen Netzwerk gesendet werden, zu ver&auml;ndern. Dies kann n&uuml;tzlich sein, wenn Sie mehrere Domains auf dem System verwalten und E-Mails von Usern so erscheinen lassen wollen, als k&auml;men sie von anderen Domains.
generics_desc2=Beachten Sie, dass Sie einen Eintrag auf der Seite <a href='$1'>Ausgehende Domains</a> f&uuml;r jede Domain haben m&uuml;ssen, f&uuml;r die Sie Mapping von ausgehenden Adressen benutzen m&ouml;chten. Beachten Sie auch, dass das Mapping f&uuml;r ausgehende Adresse nicht bei E-Mail funktioniert, die an lokale Benutzer ausgeliert wird.
generics_from=Mail von..
generics_to=&Auml;ndern zu..
generics_return=ausgehende Adress-Mapping Liste

gform_edit=Mapping bearbeiten
gform_create=Mapping erstellen
gform_from=Mail von
gform_to=&Auml;ndern zu
gform_ecannot=Sie haben keine Berechtigung, diese ausgehende Adresse zu bearbeiten

gsave_ecannot=Sie haben keine Berechtigung, ausgehende Adressen zu bearbeiten
gsave_ecannot2=Sie haben keine Berechtigung, diese Ausgehende Adresse zu bearbeiten
gsave_err=Fehler beim Speichern der ausgehenden Adresse
gsave_efrom='$1' ist keine g&uuml;ltige Absenderadresse
gsave_ematch=Die Absenderadresse entspricht nicht '$1'
gsave_eto='$1' ist keine g&uuml;ltige neue Adresse

cgs_title=Ausgehende Domains
cgs_ecannot=Sie haben keine Berechtigung, ausgehende Domains zu bearbeiten
cgs_header=Domains von ausgehenden Adressen
cgs_desc=Abgesehen von E-Mails die von lokalen Benutzern versendet werden wird Sendmail nur bei den Domains <a href='$1'>Mapping f&uuml;r ausgehende Adressen</A> durchf&uuml;hren, die in der Textbox rechts augelistet sind. Also muss die Domain aus der From-Adresse in dieser Liste enhalten sein, damit das Mapping f&uuml;r ausgehende Domains funktioniert.
cgs_err=Fehler beim Speichern von ausgehenden Domains
cgs_ehost='$1' ist kein g&uuml;ltiger Host- oder Domain Name
cgs_eip='$1' ist eine IP Adresse, keine Domain

domains_title=Domain Mapping
domains_ecannot=Sie haben keine Berechtigung, das Domain Mapping zu bearbeiten
domains_econfig=Ihre Sendmail Konfiguraitonsdatei enth&auml;lt nicht die notwendige Direktive f&uuml;r Domain Mapping.
domains_efile=Die Text Datei $1 von der die Datenbank $2 f&uuml;r Domain Mapping generiert wird existiert nicht. Vielleicht m&uuml;ssen Sie die <a href='$3'>Modul Konfiguration</a> anpassen, um den korrekten Pfad zu benutzen.
domains_desc=Das Domain Mapping ver&auml;ndert die <tt>To:</tt> Adresse von Mails die von Ihrem System gesendet oder weitergeleitet werden, oder die an lokale Benutzer ausgeliefert werden. Ebenso wird die <TT>From:</TT> Adresse von weitergeleiteten Nachrichten oder Nachrichten an lokale Benutzer ver&auml;ndert. Dies kann n&uuml;tzlich sein, wenn sich Ihr Domain Name &auml;ndert und Sie alle Vorkommen des alten Domain Namens in den neuen &auml;ndern wollen.
domains_from=Von Domain..
domains_to=Zu Domain..
domains_return=Domain Mapping Liste

dform_edit=Mapping bearbeiten
dform_create=Mapping erstellen
dform_from=Von Domain
dform_to=Zu Domain
dform_ecannot=Sie haben keine Berechtigung, das Domain Mapping zu bearbeiten

dsave_ecannot=Sie haben keine Berechtigung, das Domain Mapping zu bearbeiten
dsave_err=Fehler beim Speichern des Domain Mappings
dsave_edomain='$1' ist kein g&uuml;ltiger Domain Name

access_title=Spam Kontrolle
access_ecannot=Sie haben keine Berechtigung, die Spam Kontrolle zu konfigurieren
access_econfig=Ihre Sendmail Konfigurationsdatei enth&auml;lt nicht die notwendige Direktive f&uuml;r Spam Kontrolle
access_efile=Die Text Datei $1 von der die Datenbank $2 f&uuml;r die Spam Kontrolle generiert wird existiert nicht. Vielleicht m&uuml;ssen Sie die <a href='$3'>Modul Konfiguration</a> anpassen, um den korrekten Pfad zu benutzen.
access_desc1=Sendmail's Spam Kontrolle erm&ouml;glicht es Ihnen, Ihr System vor Spam zu sch&uuml;tzen, indem es E-Mails von bestimmten Adressen abweist. Ebenso verhindert es, dass Spammer Ihr System zum Weiterleiten von Spam benutzen. Standard-m&auml;ssig akzeptiert Sendmail alle E-Mails f&uuml;r lokale Benutzer, verweigert jedoch allen Clients oder Mailservern E-Mail &uuml;ber Ihr System weiter zu leiten. Typischerweise werden Sie Anti-Spam-Regeln hinzuf&uuml;gen, um E-Mails von Spammern abzuweisen und Regeln, um anderen Maschinen auf ihrem Netz das Weiterleiten von E-Mail &uuml;ber Ihr System zu gestatten.
access_desc2=Beachten Sie, dass Sendmail standardm&auml;ssig allen Mailclients, die E-Mail von Ihrem System versenden, gestattet, E-Mail via SMTP an jedes Ziel weiterzuleiten. Also ist es nicht notwendig, das lokale <tt>127.0.0</tt> Netzwerk zur Liste der erlaubter Weiterleiter einzutragen.
access_source=Quelle..
access_action=Aktion..
access_return=Spam-Kontroll-Liste

sform_edit=Spam-Kontroll-Regel bearbeiten
sform_create=Spam-Kontroll-Regel erstellen
sform_source=Mail Quelle
sform_type0=E-Mailadresse
sform_type1=Netzwerk
sform_type2=Benutzer
sform_type3=Domain
sform_action=Aktion
sform_ok=Akzeptieren
sform_relay=Erlaube Weiterleitung
sform_reject=Abweisen
sform_discard=Leise l&ouml;schen
sform_err=Fehler Code
sform_msg=Nachricht
sform_ecannot=Sie haben keine Berechtigung, die Spam-Kontrolle zu konfigurieren

ssave_ecannot=Sie haben keine Berechtigung, die Spam-Kontrolle zu konfigurieren
ssave_err=Fehler beim Speichern der Anti-Spam-Regel
ssave_etype0='$1' ist keine g&uuml;ltige Adresse
ssave_etype1='$1' ist keine g&uuml;ltige Netzwerk Adresse
ssave_etype2='$1' ist kein g&uuml;ltiger Benutzername
ssave_etype3='$1' ist keine g&uuml;ltige Domain
ssave_ecode='$1' ist kein g&uuml;ltiger SMTP Fehler Code

relay_title=Weiterleitungs Domains
relay_ecannot=Sie haben keine Berechtigung, Weiterleitungs Domains zu bearbeiten
relay_eversion=Nur Sendmail Versionen 8.9 und h&ouml;her unterst&uuml;tzen das Weiterleitungs-Merkmal
relay_domains=Domains, zu denen Weiterleitung erlaubt ist
relay_desc1=Falls nicht schon durch eine <a href='$1'>Spam Kontroll</a> Regel erlaubt, wird Sendmail das Weiterleiten nur von Domains gestatten, die links aufgelistet sind. Eingehende Mail, die nicht f&uuml;r einen lokalen Benutzer und nicht f&uuml;r eine hier angegebene Domain sind, werden abgewiesen.
relay_desc2=Wenn Ihr System als Gateway f&uuml;r mehrere Domains arbeitet, die nicht direkt (durch Benutzen des <a href='$1'>Domain Routing</a> Merkmals), von ausserhalb des Netzwerks zu erreichen sind, sollten alle solche Domains hier aufgelistet sein.
relay_domains=Domains, zu denen Weiterleitung gestattet ist.
relay_err=Fehler beim Speichern der Weiterleitungs-Domains.
relay_edomain='$1' ist kein g&uuml;ltiger Domain Name

mailq_title=Mail Warteschlange
mailq_ecannot=Sie haben keine Berechtigung, die Mail Warteschlange einzusehen
mailq_id=Mail ID
mailq_sent=Gesendet
mailq_from=Von
mailq_to=An
mailq_size=Gr&ouml;&szlig;e
mailq_status=Status
mailq_unknown=Unbekannt
mailq_sending=Wird gesendet
mailq_dmsg=Klicken Sie auf eine ID oben in der Liste, um die Nachricht aus der Warteschlange zu lesen. 
mailq_force=Um die sofortige Auslieferung der Mail in der Warteschlange zu erzwingen, klicken Sie <a href='$1'>hier</a>.
mailq_none=Es sind im Moment keine Nachrichten in der Warteschlange f&uuml;r die Auslieferung
mailq_return=Mail Wartschlange

flushq_title=Liefere Warteschlange aus
flushq_desc=Erzwinge die Auslieferung von E-Mails in der Warteschlange mit dem Kommando $1 ..

delq_err=Fehler beim L&ouml;schen der Nachricht
delq_ecannot=Sie haben keine Berechtigungm E-Mails aus der Warteschlagen zu nehmen
delq_locked=Blockiert zum Senden

boxes_title=Benutzer Postf&auml;cher
boxes_user=Benutzer
boxes_size=Postfach Gr&ouml;&szlig;e
boxes_none=Keine mail
boxes_return=Postf&auml;cher
boxes_ecannot=Sie haben keine Berechtigung, E-Mails zu lesen

mail_title=Benutzer E-Mail
mail_from=Von
mail_date=Datum
mail_subject=Betreff
mail_to=An
mail_cc=Cc
mail_bcc=Bcc
mail_pri=Priorit&auml;t
mail_highest=H&ouml;chste
mail_high=Hoch
mail_normal=Normal
mail_low=Niedrig
mail_lowest=Niedrigste
mail_for=In $1
mail_delete=L&ouml;sche gew&auml;hlte Nachrichten
mail_compose=Neue E-Mail schreiben
mail_return=Benutzer E-Mail
mail_pos=Nachrichten $1 zu $2 von $3
mail_ecannot=Sie haben keine Berechtigung, die E-Mail dieses Benutzers zu lesen
mail_all=Alle ausw&auml;hlen
mail_invert=Invertiere Auswahl
mail_search=Suche in Nachrichten wo
mail_body=Body (Text)
mail_match=&uuml;bereinstimmt mit
mail_ok=Finde

view_title=E-Mail lesen
view_desc=Nachricht $1 in $2
view_qdesc=Nachricht $1 aus Warteschlange
view_headers=Mail Header
view_attach=Anh&auml;nge
view_reply=Beantworten
view_reply2=Beantworten an alle
view_forward=Weiterleiten
view_delete=L&ouml;schen
view_ecannot=Sie haben keine Berechtigung, die E-Mail dieses Benutzers zu lesen

compose_title=E-Mail verfassen
reply_title=Antworte auf E-Mail
forward_title=E-Mail weiterleiten
reply_headers=Mail Header
reply_attach=Weitergeleitete Anh&auml;nge
reply_attach2=Anh&auml;nge
reply_send=Senden
reply_ecannot=Sie haben keine Berechtigung, eine E-Mail als dieser Benutzer zu senden

send_err=Fehler beim Senden der E-Mail
send_eto=Fehlende Empf&auml;nger-Adresse
send_title=Mail gesendet
send_ok=Mail erfolgreich an $1 gesendet
send_ecannot=Sie haben keine Berechtigung, E-Mails als dieser Benutzer zu senden
send_esmtp=SMTP Kommando $1 schlug fehl : $2
send_efile=Angeh&auml;ngte Datei $1 existiert nicht

delete_ecannot=Sie haben keine Berechtigung, mails dieses Benutzers zu l&ouml;schen
delete_enone=Keine Mail ausgew&auml;hlt zum L&ouml;schen

search_title=Suchergebnis
search_ecannot=Sie haben keine Berechtigung, die E-Mail dieses Benutzer zu durchsuchen
search_ematch=Sie m&uuml;ssen ein Text eingeben, der zutreffen soll
search_none=Keine Nachrichten gefunden.
search_results=Mail Nachrichten passend zu $1 ..

file_title=Sendmail Datei bearbeiten
file_desc=Benutzen Sie die Textbox unten, um die Sendmaildatei $1 manuell zu bearbeiten.
file_undo=Ver&auml;nderungen r&uuml;ckg&auml;ngig machen
file_edit=$1 manuell bearbeiten
file_ealiases=Sie d&uuml;rfen die Alias Datei nur bearbeiten, wenn Sie Zugriff auf alle Aliase haben.
file_evirtusers=Sie d&uuml;rfen de Adress-Umsetzungs-Datei nur bearbeiten, wenn Sie Zugriff auf alle Umsetzungen haben.
file_emailers=Sie haben keine Berechtigung, die Datei f&uuml;r Domain-Routing zu bearbeiten.
file_egenerics=Sie d&uuml;rfen die Datei f&uuml;r ausgehende Adressen nur bearbeiten, wenn Sie Zugriff auf alle ausgehenden Adressen haben.
file_edomains=Sie haben keine Berechtigung, die Datei f&uuml;r Domain-Umsetzung zu bearbeiten
file_eaccess=Sie haben keine Berechtigung, die Datei f&uuml;r Spam-Kontrolle zu bearbeiten
file_emode=Unbekannter Modus!
file_err=Das Bearbeiten der Datei schlug fehl

acl_opts=Darf Sendmail Optionen bearbeiten?
acl_cws=Darf lokale Domains bearbeiten?
acl_masq=Darf Domain Maskierung bearbeiten?
acl_trusts=Darf vertraute Benutzer bearbeiten?
acl_cgs=Darf ausgehende Domains bearbeiten?
acl_relay=Darf Weiterleitungs-Domains bearbeiten?
acl_mailers=Darf Domain Routing konfigurieren?
acl_access=Darf Spam Kontroll konfigurieren?
acl_domains=Darf Domain Mapping konfigurieren?
acl_stop=Darf Sendmail starten und stoppen?
acl_mailq=Darf Mail Warteschlange verwalten?
acl_viewdel=Lesen und L&ouml;schen
acl_view=Nur Lesen
acl_virtusers=Adress-Mappings, die dieser Benutzer bearbeiten darf
acl_none=Keine
acl_all=Alle
acl_matching=Entpsrechende
acl_vtypes=Adress-Mapping Typen, die dieser Benutzer bearbeiten darf
acl_vtype0=Fehler R&uuml;ckgabe 
acl_vtype1=An Domain
acl_vtype2=An Adresse
acl_vmax=Maximale Anzahl Adress-Mappings
acl_unlimited=Beliebig
acl_aliases=Aliase, die dieser Benutzer bearbeiten darf
acl_atypes=Alias Typen, die dieser Benutzer bearbeiten darf
acl_atype1=E-Mail Adresse
acl_atype2=Adressen in Datei
acl_atype3=Schreibe in Datei
acl_atype4=Gebe an Programm
acl_atype5=Automatische Antwort
acl_amax=Maximale Anzahl Aliase
acl_outgoing=Ausgehende Adressen, die dieser Benutzer bearbeiten darf
acl_read=Benutzer, dessen E-Mail gelesen werden d&uuml;rfen
acl_users=Nur Benutzer
acl_userse=Alle, ausser Benutzer
acl_apath=Schr&auml;nke Dateien und Programme ein auf Verzeichnis 
0707010005f31e000081a40000000000000002000000013ac0389c00005ae8000000200000000000000000000000000000001700000003reloc/sendmail/lang/en    index_title=Sendmail Configuration
index_econfig=The sendmail config file $1 does not exist. Maybe your <a href='$2'>module configuration</a> is incorrect.
index_eversion=Your sendmail config file does not appear to be for the latest sendmail version. Webmin only supports versions 8.8 and above.
index_epath=The sendmail executable $1 is not installed on your system. Maybe your <a href='$2'>module configuration</a> is incorrect, or sendmail is not installed.
index_return=sendmail configuration
index_stop=Stop Sendmail
index_stopmsg=Click this button to stop the running sendmail process. This will stop mail from being delivered to local users from other systems, and prevent clients using this system as a mail server from sending mail.
index_start=Start Sendmail
index_startmsg=Click this button to start sendmail with the command $1. Until this is done mail will not be delivered to local users from other systems, and clients will not be able to use this system as a mail server.

opts_title=Sendmail Options
opts_ecannot=You are not allowed to edit sendmail options
opts_ds=Send outgoing mail via host
opts_direct=Deliver directly
opts_dr=Forward unqualified usernames to host
opts_dh=Forward mail for local users to host
opts_local=Deliver locally
opts_queuela=Max load average for sending
opts_refusela=Max load average for receiving
opts_maxch=Max child processes
opts_throttle=Max connections / second
opts_minqueueage=Min time before retrying send
opts_runsize=Maximum queue size
opts_queuereturn=Time before giving up
opts_queuewarn=Time before sending warning
opts_queue=Mail queue directory
opts_postmaster=Send error messages to
opts_forward=User forward files
opts_minfree=Min free disk space
opts_maxmessage=Max message size
opts_loglevel=Log level
opts_mimebounce=MIME-encode bounce messages?
opts_default=Default
opts_save=Save and Apply
opts_err=Failed to save options
opts_ehost='$1' is not a valid host or domain name
opts_einvalid='$1' is not a valid value for '$2'
opts_blame=File security options
opts_selected=Selected..
opts_blocks=blocks
opts_bytes=bytes
opts_dmode=Delivery mode
opts_background=Background
opts_queue-only=Queue only
opts_interactive=Interactive
opts_deferred=Deferred

aliases_title=Mail Aliases
aliases_ecannot=You are not allowed to edit aliases
aliases_addr=Address
aliases_to=Alias to..
aliases_type1=Address $1
aliases_type2=Addresses in file $1
aliases_type3=File $1
aliases_type4=Program $1
aliases_type5=Autoreply file $1
aliases_none=None
aliases_return=alias list

aform_type0=None
aform_type1=Email address
aform_type2=Addresses in file
aform_type3=Write to file
aform_type4=Feed to program
aform_type5=Autoreply from file
aform_edit=Edit Alias
aform_create=Create Alias
aform_name=Address
aform_enabled=Enabled?
aform_val=Alias to
aform_afile=Edit..
aform_return=alias

afile_title=Edit Address File
afile_desc=Use the text area below to edit the addresses in the file $1.
afile_efile=You are not allowed to edit $1.
afile_undo=Undo Changes

rfile_title=Edit Autoreply File
rfile_desc=Use the text area below to edit the autoreply message in $1. The message may contain the macros $SUBJECT, $FROM, $TO, $DATE and $BODY which will be expanded when the autoreply is activated.
rfile_efile=You are not allowed to edit $1.
rfile_undo=Undo Changes

asave_err=Failed to save alias
asave_ecannot2=You are not allowed to edit aliases
asave_ecannot=You are not allowed to edit this alias
asave_emax=You are not allowed to create more than $1 aliases
asave_eaddr='$1' is not a valid address
asave_ealready=An alias for '$1' already exists
asave_ematch=You are only allowed to create aliases matching '$1'
asave_etype=You cannot create aliases of this type
asave_etype1='$1' is not a valid email address
asave_etype2=Addresses file '$1' is not valid or does not exist
asave_etype3='$1' is not a valid filename
asave_etype4='$1' is not a valid program or does not exist
asave_etype5=Autoreply file '$1' is not valid or does not exist
asave_etype4none=No program given

cws_title=Local Domains
cws_ecannot=You are not allowed to edit local domains
cws_domains=Domains handled by this server
cws_desc1=Apart from mail to $1, sendmail will only accept for local delivery mail for domains and hostnames listed in the text box to the left. If you want your mail server to handle multiple email domains, they must all be listed on this form.
cws_desc2=Note that merely including a domain in the list is not usually enough. You must also make sure that a DNS record for the domain exists, and points to your system.
cws_err=Failed to save local domains
cws_ehost='$1' is not a valid host or domain name
cws_eip='$1' is an IP address, not a domain

masq_title=Domain Masquerading
masq_ecannot=You are not allowed to configure masquerading
masq_domain=Masquerade as domain
masq_domains=Domains to be masqueraded
masq_desc1=If a domain is given above, sendmail will alter the <tt>From</tt> address of all outgoing messages to appear to come from that domain. In addition, any email messages passing through your system from one of the hosts or domains listed to the left will also have their <tt>From</tt> addresses modified in the same way. Note that any domain masquerading defined here can be overriden for specific users using the <a href='$1'>Outgoing Addresses</a> page.
masq_desc2=This feature can be useful if you want email from your system to appear to come from your domain name rather than your hostname, or if your system is the mail hub for number of other hosts running their own mailservers.
masq_err=Failed to save domain masquerading
masq_edomain='$1' is not a valid domain to masquerade as
masq_ehost='$1' is not a valid host or domain name
masq_eip='$1' is an IP address, not a domain

trusts_title=Trusted Users
trusts_ecannot=You are not allowed to edit trusted users
trusts_users=Local users trusted by sendmail
trusts_desc=If a local user tries to send email, sendmail will only allow the user to provide a different <tt>From:</tt> address if the user is on the list to the left. This restriction exists to prevent users from forging email with faked <tt>From:</tt> addresses origination from your system.
trusts_err=Failed to save trusted users
trusts_euser='$1' is not a valid user

virtusers_title=Address Mapping
virtusers_ecannot=You are not allowed to edit address mappings
virtusers_edirective=Your sendmail configuration file does not have the necessary directive for address mapping.
virtusers_efile=The text file $1 from which the address mapping database $2 is built does not exist. Maybe you need to modify the <a href='$3'>module configuration</a> to use the correct path.
virtusers_desc1=Address mappings are similar to <a href='$1'>aliases</a>, but are more suited to a system that handles multiple email domains. They can be used to redirect mail for an entire domain to one address, handle users with the same name in different domains, or map all mail from one domain to another.
virtusers_desc2=Note that you must have an entry in the <a href='$1'>local domains</a> table for any domains used for address mapping, and there must be a DNS MX record for each domain pointing to your system.
virtusers_for=Mail for..
virtusers_to=Send to..
virtusers_error=Error $1
virtusers_domain=Domain $1
virtusers_address=Address $1
virtusers_return=address mapping list

vform_edit=Edit Mapping
vform_create=Create Mapping
vform_for=Mail for
vform_address=Address
vform_domain=Domain
vform_to=Send to
vform_msg=message
vform_error=Return error
vform_err_nouser=nouser
vform_err_nohost=nohost
vform_err_unav=unavailable
vform_err_temp=tempfail
vform_err_proto=protocol
vform_end=Move to end
vform_ecannot=You are not allowed to edit this address mapping

vsave_ecannot=You are not allowed to edit address mappings
vsave_ecannot2=You are not allowed to edit this address mapping
vsave_emax=You are not allowed to create more than $1 address mappings
vsave_err=Failed to save address mapping
vsave_efrom='$1' is not a valid address
vsave_efromdup=Address mapping for '$1' is already defined
vsave_edom='$1' is not a valid domain
vsave_edomdup=Address mapping for '$1' is already defined
vsave_ematch=The source address does not match '$1'
vsave_ecannot3=You are not allowed to create mappings to addresses
vsave_eaddr='$1' is not a valid address
vsave_ecannot4=You are not allowed to create mappings to domains
vsave_edomdom=Only a domain can be mapped to another domain
vsave_ecannot5=You are not allowed to create mappings that return an error

mailers_title=Domain Routing
mailers_cannot=You are not allowed to edit domain routing
mailers_edirective=Your sendmail configuration file does not have the necessary directive for domain routing.
mailers_efile=The text file $1 from which the domain routing database $2 is built does not exist. Maybe you need to modify the <a href='$3'>module configuration</a> to use the correct path.
mailers_desc1=Domain routing provides a way to define a special transfer method for mail to certain domains. This can be useful if your system is a gateway for mail servers that cannot be reached from outside your network, or if you want to force all mail for a particular domain to be routed through some other server.
mailers_desc2=You should <b>not</b> have an entry in the <a href='$1'>local domains</a> list for any routed domains. However, you should have a DNS MX record pointing to your system for any domains that it is a gateway for.
mailers_for=Mail for..
mailers_delivery=Delivery
mailers_to=Send to..
mailers_return=domain routing list

mform_edit=Edit Routing
mform_create=Create Routing
mform_for=Mail for
mform_host=Host
mform_domain=Domain
mform_delivery=Delivery
mform_to=Send to
mform_ignore=Ignore MX for SMTP delivery
mform_smtp=SMTP
mform_esmtp=Extended SMTP
mform_smtp8=8-bit SMTP
mform_relay=SMTP relay
mform_local=Local user
mform_prog=Feed to program
mform_uucp=UUCp
mform_usenet=Post to USENET
mform_fax=HylaFAX
mform_pop=POP3
mform_procmail=Procmail
mform_mail11=DECnet mail11
mform_error=Error
mform_ecannot=You are not allowed to edit domain routing

msave_ecannot=You are not allowed to edit domain routing
msave_err=Failed to save domain routing
msave_edomain='$1' is not a valid host or domain
msave_edup=Domain routing for '$1' is already defined

generics_title=Outgoing Addresses
generics_cannot=You are not allowed to edit outgoing addresses
generics_econfig=Your sendmail configuration file does not have the necessary directive for outgoing address mapping.
generics_efile=The text file $1 from which the outgoing address database $2 is built does not exist. Maybe you need to modify the <a href='$3'>module configuration</a> to use the correct path.
generics_desc1=Outgoing address mapping allows you to modify the <tt>From:</tt> addresses of mail send out from your system, or through your system by other hosts on your local network. This can be useful if you are hosting multiple domains on the one system, and want mail from some users to appear to come from a different domain.
generics_desc2=Note that you must have an entry in the <a href='$1'>outgoing domains</a> table for each domain which there are addresses you want outgoing mapping done for. Also note that outgoing address mapping does not work for mail being delivered to local users.
generics_from=Mail from..
generics_to=Change to..
generics_return=address mapping list

gform_edit=Edit Mapping
gform_create=Create Mapping
gform_from=Mail from
gform_to=Change to
gform_ecannot=You are not allowed to edit this outgoing address

gsave_ecannot=You are not allowed to edit outgoing addresses
gsave_ecannot2=You are not allowed to edit this outgoing address
gsave_err=Failed to save outgoing address
gsave_efrom='$1' is not a valid from address
gsave_ematch=The from address does not match '$1'
gsave_eto='$1' is not a valid new address

cgs_title=Outgoing Domains
cgs_ecannot=You are not allowed to edit outgoing domains
cgs_header=Outgoing address domains
cgs_desc=Apart from mail sent by local users, sendmail will only perform <a href='$1'>outgoing address</a> mapping for mail from hosts or domains listed in the text box to the right. Thus for an outgoing address entry to work the domain in the from address must be included in this list.
cgs_err=Failed to save outgoing domains
cgs_ehost='$1' is not a valid host or domain name
cgs_eip='$1' is an IP address, not a domain

domains_title=Domain Mapping
domains_ecannot=You are not allowed to edit domain mapping
domains_econfig=Your sendmail configuration file does not have the necessary directive for domain mapping.
domains_efile=The text file $1 from which the domain mapping database $2 is built does not exist. Maybe you need to modify the <a href='$3'>module configuration</a> to use the correct path.
domains_desc=Domain mapping modifies the <tt>To:</tt> address of messages sent out from, relayed through or delivered to users on your system. The <tt>From:</tt> address of relayed messages or messages to local users is also modified. This can be useful if your domain name changes, and you want to change all occurrances of the old domain to the new one.
domains_from=From domain..
domains_to=To domain..
domains_return=domain mapping list

dform_edit=Edit Mapping
dform_create=Create Mapping
dform_from=From domain
dform_to=To domain
dform_ecannot=You are not allowed to edit domain mapping

dsave_ecannot=You are not allowed to edit domain mapping
dsave_err=Failed to save domain mapping
dsave_edomain='$1' is not a valid domain name

access_title=Spam Control
access_ecannot=You are not allowed to configure spam control
access_econfig=Your sendmail configuration file does not have the necessary directive for spam control.
access_efile=The text file $1 from which the spam control database $2 is built does not exist. Maybe you need to modify the <a href='$3'>module configuration</a> to use the correct path.
access_desc1=Sendmail's spam control feature allows you to prevent spam from reaching your users by rejecting mail from certain addresses, and to prevent spammers from using your system to relay mail. By default sendmail will accept mail from any address for a local user, but prevent any client or mail server from relaying mail through your system. Typically you would add spam control rules to reject mail from spammers, and rules to allow other machines on your network to relay mail through your system.
access_desc2=Note that sendmail will by default allow mail clients running on your system to relay mail via SMTP to any destination. Thus there is no need to add the local <tt>127.0.0</tt> network to the list of those allowed to relay.
access_source=Source..
access_action=Action..
access_return=spam control list

sform_edit=Edit Spam Control Rule
sform_create=Create Spam Control Rule
sform_source=Mail source
sform_type0=Email Address
sform_type1=Network
sform_type2=User
sform_type3=Domain
sform_action=Action
sform_ok=Accept
sform_relay=Allow relaying
sform_reject=Reject
sform_discard=Discard silently
sform_err=Error code
sform_msg=Message
sform_ecannot=You are not allowed to configure spam control

ssave_ecannot=You are not allowed to configure spam control
ssave_err=Failed to save spam control rule
ssave_etype0='$1' is not a valid address
ssave_etype1='$1' is not a valid network address
ssave_etype2='$1' is not a valid username
ssave_etype3='$1' is not a valid domain
ssave_ecode='$1' is not a valid SMTP error code

relay_title=Relay Domains
relay_ecannot=You are not allowed to edit relay domains
relay_eversion=Only sendmail versions 8.9 and above support the relay domains feature.
relay_domains=Domains to which relaying is allowed
relay_desc1=Unless allowed by the <a href='$1'>spam control</a> rules, sendmail will only permit relaying to domains listed in the text box to the left. Incoming mail messages that are not for a local user and not for one of the listed domains will be rejected.
relay_desc2=If your system is serving as a gateway for several domains that are not directly accessible from outside your network (using the <a href='$1'>domain routing</a> feature), then all those domains should be listed here.
relay_err=Failed to save relay domains
relay_edomain='$1' is not a valid domain name

mailq_title=Mail Queue
mailq_ecannot=You are not allowed to view the mail queue
mailq_id=Mail ID
mailq_sent=Sent
mailq_from=From
mailq_to=To
mailq_size=Size
mailq_status=Status
mailq_unknown=Unknown
mailq_sending=Sending
mailq_dmsg=To view a message from the mail queue, click on its ID in the list above.
mailq_force=To force the immediate delivery of queued of mail, <a href='$1'>click here</a>.
mailq_none=No mail messages are currently queued for delivery
mailq_delete=Delete selected messages
mailq_return=mail queue

flushq_title=Flush Queue
flushq_desc=Forcing the attempted delivery of mail with the command $1 ..

delq_err=Failed to delete message
delq_ecannot=You are not allowed to dequeue messages
delq_locked=File is currently locked for sending
delq_enone=No messages to delete selected
delq_title=Deleting Messages
delq_file=Deleting mail file $1 ..
delq_efile=invalid filename!
delq_egone=already deleted or delivered
delq_elocked=locked for sending
delq_ok=deleted ok

boxes_title=User Mailboxes
boxes_user=User
boxes_size=Mailbox size
boxes_none=No mail
boxes_return=mailboxes
boxes_sent=Sent mail
boxes_ecannot=You are not allowed to read email

mail_title=User Email
mail_from=From
mail_date=Date
mail_subject=Subject
mail_to=To
mail_cc=Cc
mail_bcc=Bcc
mail_pri=Priority
mail_highest=Highest
mail_high=High
mail_normal=Normal
mail_low=Low
mail_lowest=Lowest
mail_for=In $1
mail_sent=In sent mail list
mail_size=Size
mail_delete=Delete selected messages
mail_compose=Compose new mail
mail_return=user email
mail_pos=Messages $1 to $2 of $3
mail_none=This mailbox has no messages
mail_ecannot=You are not allowed to read this user's email
mail_all=Select all
mail_invert=Invert selection
mail_search=Find messages where
mail_body=Body
mail_match=matches
mail_ok=Search
mail_nonefrom=None

view_title=Read Email
view_desc=Message $1 in $2
view_sent=Message $1 in sent mail list
view_qdesc=Queued message $1
view_headers=Mail headers
view_attach=Attachments
view_reply=Reply
view_reply2=Reply to all
view_enew=Edit as new
view_forward=Forward
view_delete=Delete
view_ecannot=You are not allowed to read this user's email

compose_title=Compose Email
reply_title=Reply to Email
forward_title=Forward Email
reply_headers=Mail headers
reply_attach=Forwarded attachments
reply_attach2=Attachments
reply_send=Send
reply_ecannot=You are not allowed to send mail as this user

send_err=Failed to send mail
send_eto=Missing To address
send_efrom=Missing From address
send_title=Mail Sent
send_ok=Mail sent successfully to $1
send_ecannot=You are not allowed to send mail as this user
send_esmtp=SMTP command $1 failed : $2
send_efile=Attached file $1 does not exist
send_eattach=Attachments cannot total more that $1 kB in size.
send_eperms=User $1 cannot read $2
send_eperms2=You are not allowed to send file $1

delete_ecannot=You are now allowed to delete mail from this user
delete_enone=No mail selected to delete

search_title=Search Results
search_ecannot=You are not allowed to search this user's email
search_ematch=You must enter text to match against.
search_none=No messages found.
search_results=Mail messages matching $1 ..

file_title=Edit Sendmail File
file_desc=Use the text box below to manually edit the Sendmail file $1.
file_undo=Undo Changes
file_edit=Manually edit $1
file_ealiases=You can only edit an aliases file if you have access to all aliases.
file_evirtusers=You can only edit the address mappings file if you have access to all address mappings.
file_emailers=You are not allowed to edit the domain routing file.
file_egenerics=You can only edit the outgoing addresses file if you have access to all outgoing addresses.
file_edomains=You are not allowed to edit the domain mapping file.
file_eaccess=You are not allowed to edit the spam control file.
file_emode=Unknown mode!
file_err=Failed to edit file

acl_opts=Can edit sendmail options?
acl_cws=Can edit local domains?
acl_masq=Can configure domain masquerading?
acl_trusts=Can edit trusted users?
acl_cgs=Can edit outgoing domains?
acl_relay=Can edit relay domains?
acl_mailers=Can configure domain routing?
acl_access=Can configure spam control?
acl_domains=Can configure domain mapping?
acl_stop=Can start and stop sendmail?
acl_mailq=Can manage mail queue?
acl_viewdel=View and delete
acl_view=View only
acl_virtusers=Address mappings this user can edit
acl_none=None
acl_same=User with same name
acl_all=All
acl_matching=Matching
acl_vtypes=Address mapping types this user can edit
acl_vtype0=Return error
acl_vtype1=To domain
acl_vtype2=To address
acl_vmax=Maximum number of address mappings
acl_unlimited=Unlimited
acl_aliases=Aliases this user can edit
acl_atypes=Alias types this user can edit
acl_atype1=Email address
acl_atype2=Addresses in file
acl_atype3=Write to file
acl_atype4=Feed to program
acl_atype5=Autoreply
acl_amax=Maximum number of aliases
acl_outgoing=Outgoing addresses this user can edit
acl_read=Users whose mail can be read
acl_users=Only users
acl_userse=All except users
acl_usersg=Members of group
acl_from=Allowable From addresses
acl_any=Any address
acl_fdoms=Mailbox @ domains
acl_faddrs=Listed addresses
acl_fdom=Any address @ domain
acl_apath=Limit files and program to directory
acl_attach=Maximum total attachments size
acl_sent=Store sent mail in mailbox

log_opts=Changed sendmail options
log_alias_create=Created alias $1
log_alias_modify=Modified alias $1
log_alias_delete=Deleted alias $1
log_alias_manual=Manually edited alias file $1
log_cws=Changed local domains
log_masq=Changed domain masquerading
log_trusts=Changed trusted users
log_virtuser_create=Created address mapping $1
log_virtuser_modify=Modified address mapping $1
log_virtuser_delete=Deleted address mapping $1
log_virtuser_manual=Manually edited address mapping file $1
log_mailer_create=Created domain routing $1
log_mailer_modify=Modified domain routing $1
log_mailer_delete=Deleted domain routing $1
log_mailer_manual=Manually edited domain routing file $1
log_generic_create=Created outgoing address $1
log_generic_modify=Modified outgoing address $1
log_generic_delete=Deleted outgoing address $1
log_generic_manual=Manually edited outgoing address file $1
log_cgs=Changed outgoing domains
log_domain_create=Created domain mapping $1
log_domain_modify=Modified domain mapping $1
log_domain_delete=Deleted domain mapping $1
log_domain_manual=Manually edited domain mapping file $1
log_access_create=Created spam control for $1
log_access_modify=Modified spam control for $1
log_access_delete=Deleted spam control for $1
log_access_manual=Manually edited spam control file $1
log_relay=Changed relay domains
log_flushq=Flushed mail queue
log_delmailq=Deleted mail from $1 from queue
log_delmailqs=Deleted $1 mails from queue
log_stop=Stopped sendmail daemon
log_start=Started sendmail daemon
log_delmail=Deleted $1 messages from $2
log_send=Sent mail to $1

match_from=From: matches
match_subject=Subject: matches
match_to=To: matches
match_cc=Cc: matches
match_date=Date: matches
match_body=Body matches
match_size=Size is greater than
0707010005f31f000081a40000000000000002000000013ac0389c00006831000000200000000000000000000000000000001700000003reloc/sendmail/lang/es    index_title=Configuraci髇 de Sendmail
index_econfig=El archivo de configuraci髇 de sendmail $1 no existe. Quiz醩 tu <a href='$2'>configuraci髇 del m骴ulo</a> es incorrecta.
index_eversion=Tu archivo de configuraci髇 de sendmail no parece ser la 鷏tima versi髇. Webmin s髄o soporta versiones 8.8 y superiores.
index_epath=El ejecutable de sendmail $1 no est instalado en tu sistema. Quiz tu <a href='$2'>configuraci髇 de m骴ulo</a> es incorrecta o sendmail no est instalado.
index_return=configuraci髇 de sendmail
index_stop=Parar Sendmail
index_stopmsg=Haz click en este bot髇 para parar el proceso en curso de sendmail. Esto har que se pare el env韔 de correo a los usuarios locales desde otros sistemas y har que los clientes que utilicen este sistema como servidor de correo no puedan usarlo.
index_start=Arrancar Sendmail
index_startmsg=Haz click en este bot髇 para arrancar sendmail con el comando $1. Hasta que se haga esto, el correo no ser entregado a los usuarios locales desde otros sistemas y los clientes no podr醤 utilizar este sistema como un servidor de correo.

opts_title=Opciones de Sendmail
opts_ecannot=No est醩 autorizado a editar las opciones de sendmail
opts_ds=Enviar correo saliente a trav閟 de la m醧uina
opts_direct=Entregar directamente
opts_dr=Remitir nombres de usuario no calificados a la m醧uina
opts_dh=Remitir correo para usuarios locales a la m醧uina
opts_local=Entregar localmente
opts_queuela=Media de carga m醲ima para enviar
opts_refusela=Media de carga m醲ima para recibir
opts_maxch=M醲imo n鷐ero de procesos hijo
opts_throttle=M醲imas conexiones / segundo
opts_minqueueage=Tiempo m韓imo ante de reintentar enviar
opts_runsize=M醲ima medida de cola
opts_queuereturn=Tiempo antes de darse por vencido
opts_queuewarn=Tiempo antes de enviar un aviso
opts_queue=Directorio de cola de correo
opts_postmaster=Enviar mensajes de error a
opts_forward=Archivos de remisi髇 de usuario
opts_minfree=Espacio m韓imo libre en disco
opts_maxmessage=M醲ima medida de mensaje
opts_loglevel=Nivel de historial
opts_mimebounce=codificaci髇-MIME pone en la calle los mensajes?
opts_default=Por defecto
opts_save=Salvar y Aplicar
opts_err=Error al salvar opciones
opts_ehost='$1' no es un nombre de m醧uina o de dominio v醠ido
opts_einvalid='$1' no es un valor v醠ido para '$2'
opts_blame=Opciones de seguridad de archivo
opts_selected=Seleccionado...
opts_blocks=bloques
opts_bytes=octetos
opts_dmode=Modo de entrega
opts_background=Segundo plano
opts_queue-only=S髄o poner en cola
opts_interactive=Interactivo
opts_deferred=Diferido

aliases_title=Alias de Correo
aliases_ecannot=No est醩 autorizado a editar alias
aliases_addr=Direcci髇
aliases_to=Alias de..
aliases_type1=Direcci髇 $1
aliases_type2=Direcciones en archivo $1
aliases_type3=Archivo $1
aliases_type4=Programa $1
aliases_type5=Archivo de autor閜lica $1
aliases_none=Ninguno
aliases_return=lista de alias

aform_type0=Ninguna
aform_type1=Direcci髇 de Correo
aform_type2=Direcciones en archivo
aform_type3=Escribir en archivo
aform_type4=Alimentar a programa
aform_type5=Archivo para autor閜lica
aform_edit=Editar Alias
aform_create=Crear Alias
aform_name=Direcci髇
aform_enabled=緼ctivado?
aform_val=Alias de
aform_afile=Editar...
aform_return=alias

afile_title=Editar Archivo de Direcciones
afile_desc=Usar el 醨ea de texto inferior para editar las direcciones en el archivo $1.
afile_efile=No est醩 autorizado a editar $1.
afile_undo=Deshacer los Cambios

rfile_title=Editar Archivo de Autor閜lica
rfile_desc=Usar el 醨ea de texto inferior para editar el mensaje de autor閜lica en $1. El mensaje puede contener las macros $SUBJECT, $FROM, $TO, $DATE y $BODY que ser醤 expandidas cuando la autor閜lica est activada.
rfile_efile=No est醩 autorizado a editar $1.
rfile_undo=Deshacer los Cambios

asave_err=Error al salvar alias
asave_ecannot2=No est醩 autorizado a editar alias
asave_ecannot=No est醩 autorizado a editar este alias
asave_emax=No est醩 autorizado a crear m醩 de $1 alias
asave_eaddr='$1' no es una direcci髇 v醠ida
asave_ealready=Ya existe un alias para '$1'
asave_ematch=S髄o est醩 autorizado a crear alias que coincidan con '$1'
asave_etype=No puedes crear alias de este tipo
asave_etype1='$1' no es una direcci髇 de correo v醠ida
asave_etype2=El archivo de direcciones '$1' no es v醠ido o no existe
asave_etype3='$1' no es un nombre de archivo v醠ido
asave_etype4='$1' no es un programa v醠ido o no existe
asave_etype5=Archivo de autor閜lica '$1' no es v醠ido o no existe
asave_etype4none=No se ha suministrado programa alguno

cws_title=Dominios Locales
cws_ecannot=No est醩 autorizado a editar dominios locales
cws_domains=Dominios manejados por este servidor
cws_desc1=Adem醩 de enviar correo a $1, sendmail s髄o aceptar para entrega local correo para dominios y nombres de m醧uina listados en la caja de texto de la izquierda. Si deseas que tu servidor de correo maneje dominios de correo m鷏tiples, estos han de estar listados en este formulario.
cws_desc2=Date cuenta de que con s髄o incluir un dominio en la lista no es suficiente. Adem醩 tienes que asegurarte de que existe un registro DNS para ese dominio y que apunta a tu sistema.
cws_err=Error al salvar dominios locales
cws_ehost='$1' no es un nombre de m醧uina o de dominio v醠ido
cws_eip='$1' es una direcci髇 IP, no un dominio

masq_title=Enmascaramiento de Dominio
masq_ecannot=No est醩 autorizado a configurar enmascaramiento
masq_domain=Enmascarar como dominio
masq_domains=Dominios a ser enmascarados
masq_desc1=Si se digita un dominio arriba, sendmail alterar las direcciones <tt>Desde (From)</tt> de todos los mensaje salientes para que parezcan venir desde ese dominio. Adem醩, cualquier mensaje de email que pase a trav閟 de tu sistema desde alguna de las m醧uinas o dominios listados a la izquierda tendr su direcci髇 <tt>Desde (From)</tt> modificada de igual manera. Ten en cuenta que cualquier enmascaramiento de dominio definido aqu puede ser no tenido en cuenta por usuarios espec韋icos que utilicen la p醙ina de <a href='$1'>Direcciones de Salida</a>.
masq_desc2=Esta caracter韘tica puede ser 鷗il si deseas que el correo de tu sistema parezca que viene desde tu nombre de dominio en vez de tu nombre de m醧uina o si tu sistema es el concentrador de correo para un n鷐ero de otras m醧uinas que tienen sus propios servidores de correo.
masq_err=Error al salvar enmascaramiento de dominio.
masq_edomain='$1' no es un dominio a enmascarar v醠ido
masq_ehost='$1' no es una m醧uina o nombre de dominio v醠ido
masq_eip='$1' es una direcci髇 IP, no un dominio

trusts_title=Usuarios Fiables
trusts_ecannot=No est醩 autorizado a editar usuarios fiables
trusts_users=Usuarios locales en que sendmail conf韆
trusts_desc=Si un usuario local intenta enviar correo, sendmail permitir s髄o que el usuario suministre una direcci髇 <tt>Desde: (From:)</tt> diferente si el usuario est en la lista de la izquierda. Esta restricci髇 existe para prevenir que los usuarios env韊n correo con direcciones <tt>Desde: (From:)</tt> falsas desde tu sistema.
trusts_err=Error al salvar usuarios fiables
trusts_euser='$1' no es un usuario v醠ido

virtusers_title=Mapeo de Direcciones
virtusers_ecannot=No est醩 autorizado a mapear direcciones
virtusers_edirective=Tu archivo de configuraci髇 de sendmail no tiene la directiva necesaria para el mapeo de direcciones.
virtusers_efile=El archivo de texto $1 desde el cual la base de datos de mapeo de direcciones $2 es constru韉a no existe. Quiz necesitas modificar la <a href='$3'>configuraci髇 del m骴ulo</a> para utilizar la trayectoria correcta.
virtusers_desc1=Los mapeos de direcciones son similares a los <a href='$1'>alias</a>, pero son m醩 adecuados en un sistema que maneja dominios de correo m鷏tiples. Pueden ser utilizados para redirigir correo para un dominio completo a una sola direcci髇, manejar usuarios con el mismo nombre en diferentes dominios o mapear todo el correo desde un dominio a otro.
virtusers_desc2=Ten en cuenta que tienes que tener una entrada en la tabla de <a href='$1'>dominios locales</a> para cualquier dominio usado por el mapeo de direcciones y que debe de haber un registro MX de DNS para cada dominio que apunte a tu sistema.
virtusers_for=Correo para...
virtusers_to=Enviar a...
virtusers_error=Error $1
virtusers_domain=Dominio $1
virtusers_address=Direcci髇 $1
virtusers_return=lista de mapeo de direcciones

vform_edit=Edita Mapeo
vform_create=Crear Mapeo
vform_for=Correo para
vform_address=Direcci髇
vform_domain=Dominio
vform_to=Enviar a
vform_msg=mensaje
vform_error=Devolver error
vform_err_nouser=usuario inexistente
vform_err_nohost=m醧uina inexistente
vform_err_unav=no disponible
vform_err_temp=fallo temporal
vform_err_proto=protocolo
vform_end=Move al final
vform_ecannot=No est醩 autorizado a editar este mapeo de direcci髇

vsave_ecannot=No est醩 autorizado a editar mapeo de direcciones
vsave_ecannot2=No est醩 autorizado a editar este mapeo de direcci髇
vsave_emax=No est醩 autorizado a crear m醩 de $1 mapeos de direcciones
vsave_err=Error al salvar mapeo de direcciones
vsave_efrom='$1' no es una direcci髇 v醠ida
vsave_efromdup=Ya est definido el mapeo de direcci髇 '$1'
vsave_edom='$1' no es un dominio v醠ido
vsave_edomdup=Ya est definido el mapeo de direcci髇 para '$1'
vsave_ematch=La direcci髇 emisora no coincide con '$1'
vsave_ecannot3=No est醩 autorizado a crear mapeos a direcciones
vsave_eaddr='$1' no es una direcci髇 v醠ida
vsave_ecannot4=No est醩 autorizado a crear mapeos a dominios
vsave_edomdom=S髄o un dominio puede ser mapeado a otro dominio
vsave_ecannot5=No est醩 autorizado a crear mapeos que devuelvan un error

mailers_title=Enrutamiento de Dominio
mailers_cannot=No est醩 autorizado a editar enrutamiento de dominio
mailers_edirective=Tu archivo de configuraci髇 de sendmail no tiene la directiva necesaria para enrutamiento de dominio.
mailers_efile=El archivo de texto $1 desde el que se construye la base de datos de enrutamiento de dominio $2 no existe. Quiz necesitas modificar la <a href='$3'>configuraci髇 del m骴ulo</a> para usar la trayectoria correcta.
mailers_desc1=El enrutamiento de dominio proporciona un modo de definir un m閠odo de transferencia especial de env韔 de correo a ciertos dominios. Esto puede ser 鷗il si tu sistema es un pasarela para servidores de correo que no pueden ser alcanzados desde fuera de tu red o si quieres forzar que todo el correo para un dominio en particular sea enrutado a trav閟 de alg鷑 otro servidor.
mailers_desc2=<b>No</b> deber韆s de tener entrada alguna en la lista de <a href='$1'>dominios locales</a> para cualquier dominio que est enrutado. Sin embargo, deber韆s tener un registro MX de DNS apuntando a tu sistema para cualquier dominio que sea un pasarela para 閘.
mailers_for=Correo para...
mailers_delivery=Entrega
mailers_to=Enviar a...
mailers_return=lista de enrutamiento de dominio

mform_edit=Editar Enrutamiento
mform_create=Crear Enrutamiento
mform_for=Correo para
mform_host=M醧uina
mform_domain=Dominio
mform_delivery=Entrega
mform_to=Enviar a
mform_ignore=Ignorar MX para entrega SMTP
mform_smtp=SMTP
mform_esmtp=SMTP Extendido
mform_smtp8=SMTP de 8 bits
mform_relay=A trav閟 m韆 con SMTP
mform_local=Usuario local
mform_prog=Alimentar programa
mform_uucp=UUCp
mform_usenet=Correo a USENET
mform_fax=HylaFAX
mform_pop=POP3
mform_procmail=Procmail
mform_mail11=DECnet mail11
mform_error=Error
mform_ecannot=No est醩 autorizado a editar enrutamiento de dominio

msave_ecannot=No est醩 autorizado a salvar enrutamiento de dominio
msave_err=Error al salvar enrutamiento de dominio
msave_edomain='$1' no es una m醧uina o dominio v醠ido
msave_edup=Ya est definidio el enrutamiento de dominio para '$1'

generics_title=Direcciones de Salida
generics_cannot=No est醩 autorizado a editar direcciones de salida
generics_econfig=Tu archivo de configuraci髇 de sendmail no tiene la directiva necesaria para mapear direcciones de salida.
generics_efile=El archivo de texto $1 desde el cual se crea la base de datos de direcciones de salida $2 no existe. Quiz necesitas modificar la <a href='$3'>configuraci髇 del m骴ulo</a> para usar la trayectoria correcta.
generics_desc1=El mapeo de direcciones de salida te permite modificar las direcciones <tt>Desde: (From:)</tt> del correo que sale de tu sistema o a trav閟 de tu sistema desde otras m醧uinas de tu red local. Esto puede ser 鷗il si est醩 siendo el anfitri髇 de m鷏tiples dominios en tu sistema y deseas que el correo de algunos usuarios parezca que viene de un dominio diferente.
generics_desc2=Ten en cuenta que tienes que tener una entrada en la tabla de <a href='$1'>dominios salientes</a> para cada dominio del que haya direcciones que quieras mapear. Ten en cuenta tambi閚 que el mapeo de direcciones salientes no funciona para el correo entregado a usuarios locales.
generics_from=Correo desde...
generics_to=Cambia a..
generics_return=lista de mapeo de direcciones

gform_edit=Editar Mapeo
gform_create=Crear Mapeo
gform_from=Correo desde
gform_to=Cambia a
gform_ecannot=No est醩 autorizado a editar esta direcci髇 de salida

gsave_ecannot=No est醩 autorizado a salvar esta direcci髇 de salida
gsave_ecannot2=No est醩 autorizado a salvar esta direcci髇 de salida
gsave_err=Error al salvar direcci髇 de salida
gsave_efrom='$1' no es una direcci髇 'desde' v醠ida
gsave_ematch=La direcci髇 'desde' no coincide con '$1'
gsave_eto='$1' no es una nueva direcci髇 v醠ida

cgs_title=Dominios de Salida
cgs_ecannot=No est醩 autorizado a editar dominios de salida
cgs_header=Dominios de Direcciones Salientes
cgs_desc=Adem醩 del correo enviado por los usuarios locales, sendmail realizar s髄o mapeo de <a href='$1'>direcci髇 de salida</a> para el correo desde m醧uinas o dominios listados en la caja de texto de la izquierda. Por lo tanto, para que una entrada de direcci髇 de salida funcione, el dominio de la direcci髇 'desde' debe de estar inclu韉o en la lista.
cgs_err=Error al salvar dominios salientes
cgs_ehost='$1' no es un nombre de m醧uina o dominio v醠ido
cgs_eip='$1' es una direcci髇 IP, no un dominio

domains_title=Mapeo de Dominio
domains_ecannot=No est醩 autorizado a editar mapeo de dominio
domains_econfig=Tu archivo de configuraci髇 de sendmail no tiene la directiva necesaria para mapeos de dominio.
domains_efile=El archivo de texto $1 desde el cual se construye la base de datos de mapeo de direcciones $2 no existe. Quiz necesitas modificar la <a href='$3'>configuraci髇 del m骴ulo</a> para usar la trayectoria correcta.
domains_desc=El mapeo de dominios modifica la direcci髇 <tt>A: (To:)</tt> de los mensajes enviados desde, pasados a trav閟 de o entregados a usuarios de tu sistema. La direcci髇 <tt>Desde: (From:)</tt> de los mensajes pasados a trav閟 de ti o de los enviados a usuarios locales tambi閚 es modificada. Esto puede ser 鷗il si tu nombre de dominio cambia y quieres cambiar todas las ocurrencias del viejo dominio por el nuevo.
domains_from=Desde dominio...
domains_to=A dominio...
domains_return=lista de mapeo de dominios

dform_edit=Editar Mapeo
dform_create=Crear Mapeo
dform_from=Desde dominio
dform_to=A dominio
dform_ecannot=No est醩 autorizado a editar mapeo de dominio

dsave_ecannot=No est醩 autorizado a editar mapeo de dominio
dsave_err=Error al salvar mapeo de dominio
dsave_edomain='$1' no es un nombre de dominio v醠ido

access_title=Control de 'a Rechazar'
access_ecannot=No est醩 autorizado a configurar control de 'a rechazar'
access_econfig=Tu archivo de configuraci髇 de sendmail no tiene la directiva necesaria para control de 'a rechazar'.
access_efile=El archivo de texto $1 desde el cual se construye la base de datos de mapeo de direcciones $2 no existe. Quiz necesitas modificar la <a href='$3'>configuraci髇 del m骴ulo</a> para utilizar la trayectoria correcta.
access_desc1=Las caracter韘ticas de control de 'a rechazar' de sendmail te permite prevenir que el correo no deseado llegue a tus usuario mediante el rechazo del correo de ciertas direcciones y as prevenir que los usuarios que lo env韆n utilicen tu sistema para enviar correo a trav閟 de 閘. Por defecto sendmail aceptar correo desde cualquier direcci髇 hacia tus usuarios locales pero tendr previsto que cualquier cliente o servidor de correo env韊 el mismo a trav閟 de tu sistema. T韕icamente lo que debes hacer es a馻dir reglas de control de correo de 'a rechazar' para as rechazar el correo enviado por esta gente y tambi閚 debes de a馻dir reglas que permitan a otras m醧uinas de tu red el enviar correo a trav閟 de tu sistema.
access_desc2=Ten en cuenta que sendmail permitir por defecto a los clientes de correo que trabajan en tu sistema el enviar correo v韆 SMTP a cualquier direcci髇. Por ello, no hay necesidad de a馻dir la red local <tt>127.0.0</tt> a la lista de los que est醤 autorizados a enviar correo a trav閟 de ti.
access_source=Emisor...
access_action=Acci髇..
access_return=lista de control de 'a rechazar'

sform_edit=Editar Regla de Control de 'a Rechazar'
sform_create=Crear Regla de Control de 'a Rechazar'
sform_source=Fuente de correo
sform_type0=Direcci髇 de Correo
sform_type1=Red
sform_type2=Usuario
sform_type3=Dominio
sform_action=Acci髇
sform_ok=Aceptar
sform_relay=Permitir a trav閟 m韆
sform_reject=Rechazar
sform_discard=Descartar en silencio
sform_err=C骴igo de error
sform_msg=Mensaje
sform_ecannot=No est醩 autorizado a configurar control de 'a Rechazar'

ssave_ecannot=No est醩 autorizado a configurar control de 'a Rechazar'
ssave_err=Error al salvar regla de control de 'a rechazar'
ssave_etype0='$1' no es una direcci髇 v醠ida
ssave_etype1='$1' no es una direcci髇 de red v醠ida
ssave_etype2='$1' no es un nombre de usuario v醠ido
ssave_etype3='$1' no es un dominio v醠ido
ssave_ecode='$1' no es un c骴igo de error SMTP v醠ido

relay_title=Dominios de A trav閟 m韆
relay_ecannot=No est醩 autorizado a editar dominios de a trav閟 m韆
relay_eversion=S髄o las versiones de sendmail 8.9 y superiores soportan la caracter韘tica de dominios de a trav閟 m韆.
relay_domains=Dominios autorizados a enviar a trav閟 m韆
relay_desc1=A menos que est閟 autorizado por las reglas de <a href='$1'>control de 'a rechazar'</a>, sendmail s髄o permitir enviar correo a trav閟 m韆 a los dominios listados en la caja de texto de la izquierda. Los mensajes de correo entrantes que no sean para usuarios locales o para cualquiera de los dominios listados, ser醤 rechazados.
relay_desc2=Si tu sistema sirve de pasarela de varios dominios que no son directamente accesibles desde fuera de tu red (usando la caracter韘tica de <a href='$1'>enrutamiento de dominio</a>), entonces todos esos dominios deber韆n de estar listados aqu.
relay_err=Error al salvar dominios de 'a trav閟 m韆'
relay_edomain='$1' no es un nombre de dominio v醠ido

mailq_title=Cola de Correo
mailq_ecannot=No est醩 autorizado a ver la cola de correo
mailq_id=ID de Correo
mailq_sent=Enviado
mailq_from=Desde
mailq_to=A
mailq_size=Medida
mailq_status=Estado
mailq_unknown=Desconocido
mailq_sending=Enviando
mailq_dmsg=Para ver un mensaje de la cola de correo, haz click en su ID de la lista superior.
mailq_force=Para forzar la entrega inmediata de correo en cola, <a href='$1'>haz click aqu</a>.
mailq_none=En este momento no hay mensajes de correo en cola pendientes de ser entregados
mailq_return=cola de correo
mailq_delete=Borrar mensajes seleccionados
mailq_return=cola de correo

flushq_title=Limpiar Cola
flushq_desc=Forzando la ya intentada entrega de correo con el comando $1...

delq_err=Error al quitar mensaje
delq_ecannot=No est醩 autorizado a quitar mensajes de la cola
delq_locked=En este momento est bloqueado para ser enviado
delq_enone=No se han seleccionado mensajes que borrar
delq_title=Borrando Mensajes
delq_file=Borrando archivo de correo $1...
delq_efile=ombre de archivo inv醠ido!
delq_egone=ya borrado o entregado
delq_elocked=bloqueado para ser enviado
delq_ok=Borrado ok

boxes_title=Buzones de Usuario
boxes_user=Usuario
boxes_size=Medida de Buz髇
boxes_none=No hay correo
boxes_return=buzones
boxes_ecannot=No est醩 autorizado a leer correo

mail_title=Correo de Usuario
mail_from=Desde
mail_date=Fecha
mail_subject=Asunto
mail_to=A
mail_cc=Cc
mail_bcc=Bcc
mail_pri=Prioridad
mail_highest=La mayor
mail_high=Alta
mail_normal=Normal
mail_low=Baja
mail_lowest=La m醩 baja
mail_for=En $1
mail_size=Medida
mail_delete=Borrar mensajes seleccionados
mail_compose=Componer nuevo correo
mail_return=correo de usuario
mail_pos=Mensajes $1 a $2 de $3
mail_none=Este buz髇 no tiene mensajes
mail_ecannot=No est醩 autorizado a leer el correo de este usuario
mail_all=Seleccionar todos
mail_invert=Invertir selecci髇
mail_search=Hallar mensajes donde
mail_body=Cuerpo
mail_match=que coincida con
mail_ok=Buscar
mail_nonefrom=Ninguno

view_title=Leer Correo
view_desc=Mensaje $1 en $2
view_qdesc=Mensaje en cola $1
view_headers=Cabeceras de Correo
view_attach=Adjuntados
view_reply=Responder
view_reply2=Reponder a todos
view_forward=Remitir a
view_delete=Borrar
view_ecannot=No est醩 autorizado a leer el correo de este usuario

compose_title=Componer Correo
reply_title=Responder a Correo
forward_title=Remitir Correo
reply_headers=Cabeceras de Correo
reply_attach=Adjuntados remitidos
reply_attach2=Adjuntados
reply_send=Enviar
reply_ecannot=No est醩 autorizado a enviar correo a este usuario

send_err=Error al enviar correo
send_eto=Direcci髇 'A' sin poner
send_efrom=Direcci髇 'De' sin poner
send_title=Correo enviado
send_ok=Correo enviado correctamente a $1
send_ecannot=No est醩 autorizado a enviar correo como este usuario
send_esmtp=Ha fallado el comando SMTP $1 : $2
send_efile=El archivo inclu韉o $1 no existe
send_eattach=Los archivos inclu韉os no pueden exceder m醩 de 1kB de medida
send_eperms=El usuario $1 no puede leer $2
send_eperms2=No est醩 autorizado a enviar archivo $1

delete_ecannot=No est醩 autorizado a borrar correo de este usuario
delete_enone=No se ha seleccionado correo para ser borrado

search_title=Resultados de la b鷖queda
search_ecannot=No est醩 autorizado a buscar en este correo de usuario
search_ematch=Debes de digitar un texto que coincida con algo.
search_none=No se han encontrado mensajes.
search_results=Mensajes de correo que coinciden con $1...

file_title=Editar Archivo de Sendmail
file_desc=Usar la caja de texto inferior para editar manu醠mente el archivo de Sendmail $1.
file_undo=Deshacer los Cambios
file_edit=Editar manu醠mente $1
file_ealiases=S髄o puedes editar un archivo de aliases si tienes acceso a todos los aliases.
file_evirtusers=S髄o puedes editar el archivo de mapeo de direcciones si tienes acceso a todos los mapeos de direcciones.
file_emailers=No est醩 autorizado a editar el archivo de enturamiento de dominio.
file_egenerics=S髄o puedes editar el archivo de direcciones salientes si tienes acceso a todas las direcciones salientes.
file_edomains=No est醩 autorizado a editar el archivo de mapeo de dominio.
file_eaccess=No est醩 autorizado a editar el archivo de control de 'a rechazar'.
file_emode=odo desconocido!
file_err=No pude editar el archivo

acl_opts=縋uedo editar opciones de sendmail?
acl_cws=縋uedo editar dominios locales?
acl_masq=縋uedo configurar enmascaramiento de dominio?
acl_trusts=縋uedo editar usuarios fiables?
acl_cgs=縋uedo editar dominios salientes?
acl_relay=縋uedo editar dominios de enviar a trav閟 m韆?
acl_mailers=縋uedo configurar enrutamiento de dominio?
acl_access=縋uedo configurar control de 'a rechazar'?
acl_domains=縋uedo configurar mapeo de dominio?
acl_stop=縋uedo arrancar y parar sendmail?
acl_mailq=縋uedo manejar la cola de correo?
acl_viewdel=Ver y borrar
acl_view=Ver s髄amente
acl_virtusers=Mapeos de direcci髇 que este usuario puede editar
acl_none=Ninguno
acl_same=Usuario con mismo nombre
acl_all=Todos
acl_matching=Que coincidan con
acl_vtypes=Tipos de mapeo de direcci髇 que este usuario puede editar
acl_vtype0=Error devuelto
acl_vtype1=A dominio
acl_vtype2=A direcci髇
acl_vmax=N鷐ero m醲imo de mapeo de direcciones
acl_unlimited=Ilimitado
acl_aliases=Alias que este usuario puede editar
acl_atypes=Tipos de alias que este usuario puede editar
acl_atype1=Direcci髇 de correo
acl_atype2=Direcciones en archivo
acl_atype3=Escribir en archivo
acl_atype4=Alimentar a programa
acl_atype5=Autor閜lica
acl_amax=N鷐ero m醲imo de alias
acl_outgoing=Direcciones salientes que este usuario puede editar
acl_read=Usuarios cuyo correo puede ser le韉o
acl_users=Usuarios
acl_userse=Todos excepto los usuarios
acl_from=Direcciones 'desde' autorizadas
acl_any=Cualquier direcci髇
acl_fdoms=Buzones en dominios
acl_faddrs=Direcciones listadas
acl_fdom=Cualquier direcci髇 en dominio
acl_apath=Limitar archivos y programa a directorio
acl_attach=Medida m醲ima total de archivos a incluir

log_opts=Cambiadas opciones de sendmail
log_alias_create=Creado alias $1
log_alias_modify=Modificado alias $1
log_alias_delete=Borrado alias $1
log_alias_manual=Archivo de alias editado manu醠mente $1
log_cws=Cambiados dominios locales
log_masq=Cambiado enmascaramiento de dominio
log_trusts=Cambiados usuarios fiables
log_virtuser_create=Creado mapeo de direcci髇 $1
log_virtuser_modify=Modificado mapeo de direcci髇 $1
log_virtuser_delete=Borrado mapeo de direcci髇 $1
log_virtuser_manual=Editado manu醠mente archivo de mapeo de direcci髇 $1
log_mailer_create=Creado enrutamiento de dominio $1
log_mailer_modify=Modificado enrutamiento de dominio $1
log_mailer_delete=Borrado enrutamiento de dominio $1
log_mailer_manual=Editado manu醠mente archivo de enrutamiento de dominio $1
log_generic_create=Creada direcci髇 saliente $1
log_generic_modify=Modificada direcci髇 saliente $1
log_generic_delete=Borrada direcci髇 saliente $1
log_generic_manual=Editado manu醠mente archivo de direcci髇 saliente $1
log_cgs=Cambiados dominios salientes
log_domain_create=Creado mapeo de dominio $1
log_domain_modify=Modificado mapeo de dominio $1
log_domain_delete=Borrado mapeo de dominio $1
log_domain_manual=Editado manu醠mente archivo de mapeo de dominio $1
log_access_create=Creado control de 'a rechazar' para $1
log_access_modify=Modificado control de 'a rechazar' para $1
log_access_delete=Borrado control de 'a rechazar' para $1
log_access_manual=Editado manu醠mente archivo de control de 'a rechazar' para $1
log_relay=Cambiados dominios de rel
log_flushq=Cola de correo vaciada
log_delmailq=Borrado correo de $1 de la cola
log_delmailqs=Borrados $1 correos de la cola
log_stop=Daemon de sendmail parado
log_start=Daemon de sendmail arrancado
log_delmail=Borrados $1 mensajes de $2
log_send=Enviado correo a $1

match_from=De: coincide
match_subject=Asunto: coincide
match_to=Para: coincide
match_cc=Cc: coincide
match_date=Fecha: coincide
match_body=Cuerpo coincide
match_size=La medida es mayor que
   0707010005f320000081a40000000000000002000000013ac0389c000052d3000000200000000000000000000000000000001700000003reloc/sendmail/lang/fr    index_title=Configuration de Sendmail
index_econfig=Le fichier de configuration de Sendmail '$1' n'existe pas.  Peut-阾re que la <a href='$2'>configuration du module</a> est incorrecte.
index_eversion=Votre fichier de configuration de Sendmail ne semble pas 阾re de la derni鑢e version.  Webmin supporte seulement les versions 8.8 et sup閞ieur.
index_epath=L'ex閏utable Sendmail '$1' n'est pas install sur votre syst鑝e.  Peut-阾re votre <a href='$2'>configuration de module</a> est incorrrect ou Sendmail n'est pas install.
index_return=configuration de sendmail
index_stop=Arr阾er Sendmail
index_stopmsg=Appuyer sur ce bouton pour arr阾er le processus de Sendmail.  Ceci va arr阾er le service de livraison de courrier aux usagers des autres syst鑝es et pr関enir ceux de ce syst鑝e d'en envoyer.
index_start=D閙arrer Sendmail
index_startmsg=Cliquer sur ce bouton d閙arrera Sendmail avec la commande '$1'.  Jusqu' ce que cela soit fait, les courriers des usagers locaux ne pourront plus 阾re envoyer et ce syst鑝e fermer le service de courrier.

opts_title=Options Sendmail
opts_ecannot=Vous n'阾es pas autoris  閐iter les options de Sendmail.
opts_ds=Envoie des courrier sortant par l'h魌e
opts_direct=Livrer directement
opts_dr=Diriger les noms d'usager non qualifi vers l'h魌e
opts_dh=Diriger les courrier des usagers locaux vers l'h魌e
opts_local=Livrer localement
opts_queuela=Charge maximale pour la livraison
opts_refusela=Charge maximale pour la r閏eption
opts_maxch=Nombre de sous-processus maximum
opts_throttle=Nombre de connexions par secondes maximums
opts_minqueueage=Temps minimum avant de r閑ssayer d'envoyer
opts_runsize=Taille maximum de la file d'attente
opts_queuereturn=Temps d'attente avant d'abandonner
opts_queuewarn=temps d'attente avant d'envoyer un avertissement
opts_queue=R閜ertoire de file d'attente
opts_postmaster=Envoyer les messages d'erreur 
opts_forward=Fichier d'envoi d'usager
opts_minfree=Espace disque minimum
opts_maxmessage=Taille maximum des messages
opts_loglevel=Niveau d'audit
opts_mimebounce=Rebond de messages encoder par MIME?
opts_default=D閒aut
opts_save=Enregistrer et Appliquer
opts_err=Impossible d'enregistrer les options
opts_ehost=$1 n'est pas un h魌e ou nom de domaine valide
opts_einvalid=$1 n'est pas une valeur valide pour $2
opts_blocks=blocks
opts_bytes=bytes

aliases_title=Alias de Courrier
aliases_ecannot=Vous n'阾es pas autoris  閐iter les alias
aliases_addr=Adresse
aliases_to=Alias vers
aliases_type1=Adresse $1
aliases_type2=Adresses dans un fichier $1
aliases_type3=Fichier $1
aliases_type4=Programme $1
aliases_none=Aucun
aliases_return=liste d'alias

aform_type0=Aucun
aform_type1=Adresse courrier
aform_type2=Adresses dans un fichier
aform_type3=蒫rire dans un fichier
aform_type4=Fournir  un programme
aform_edit=蒬iter un Alias
aform_create=Cr閑r un Alias
aform_name=Adresse
aform_enabled=Activ?
aform_val=Alias vers

asave_err=Impossible d'enregistrer l'alias
asave_ecannot2=Vous n'阾es pas autoris  閐iter les alias
asave_ecannot=Vous n'阾es pas autoris  閐iter cet alias
asave_emax=Vous n'阾es pas autoris  cr閑r plus qu'$1 alias
asave_eaddr=$1 n'est pas une adresse valide
asave_ealready=Un alias pour $1 existe d閖
asave_ematch=Vous n'阾es pas autoris  cr閑r un alias correspondant pour $1
asave_etype=Vous n'阾es pas autoris cr閑r un alias de ce type
asave_etype1=$1 n'est pas une adresse courrier valide
asave_etype2=Le fichier d'adresses '$1' n'existe pas
asave_etype3='$1' n'est pas un nom de fichier valide
asave_etype4='$1' n'est pas un programme ou n'existe pas
asave_etype4none=Aucun programme sp閏ifi

cws_title=Domaines Locaux
cws_ecannot=Vous n'阾es pas autoris  閐iter les domaines locaux
cws_domains=Domaines pris en main par ce serveur
cws_desc1=En dehors des courrier pour $1, Sendmail va seulement accepter les courrier local des domaines et noms d'h魌es list閟  gauche.  Si vous voulez que votre serveur de courrier supporte les domaines multiples, ils doivent 阾re list閟.
cws_desc2=Not qu'inclure le domaine dans la liste n'est pas assez, vous devez aussi vous assurer qu'il poss鑔e un enregistrement DNS qui pointe sur votre syst鑝e.
cws_err=Impossible d'enregistrer les domaines locaux
cws_ehost=$1 n'est pas un h魌e ou un domaine valide
cws_eip=$1 est une adresse IP, non un domaine

masq_title=Camouflage de Domaine
masq_ecannot=Vous n'阾es pas autoris  configurer le camouflage
masq_domain=Camoufler comme domaine
masq_domains=Domaines  camoufler
masq_desc1=Si un domaine est list si dessus, Sendmail va modifier la provenance de tout les courrier sortant pour les faire appara顃re comme venant de ce domaine.  De plus, tout courrier passant au travers de votre syst鑝e d'un des h魌es ou domaine list  gauche vont aussi avoir leur provenance modifi閑 de la m阭e fa鏾n.  Not que tout camouflage d閒ini ici peut 阾re 閏raser pour des usagers sp閏ifiques dans la page <a href='$1'>Adresses Sortante</a>.
masq_desc2=Cette option peut 阾re utile si vous voulez que les courriers sortant de votre syst鑝e apparaisse comme le nom de domaine et non le nom d'h魌e ou si votre syst鑝e est utilis comme hub de courrier d'autre h魌e ex閏utant leur propre serveur de courrier.
masq_err=Impossible d'enregistrer le camouflage de domaine
masq_edomain=$1 n'est pas un domaine valide pour camoufler
masq_ehost=$1 n'est pas un h魌e ou un nom de domaine valide
masq_eip=$1 est une adresse IP et non un domaine

trusts_title=Usagers Confiants
trusts_ecannot=Vous n'阾es pas autoris  閐iter les usagers confiant
trusts_users=Usagers locaux dont Sendmail fait confiance
trusts_desc=Si un usager local est dans la liste  gauche et il tente d'envoyer un courrier, Sendmail va accepter seulement qu'il sp閏ifie une provenance d'adresse diff閞ente.  Cette restriction existe pour pr関enir les usagers de forg des courriers avec de fausse provenance que celle de votre syst鑝e.
trusts_err=Impossible de sauver les usagers confiants
trusts_euser=$1 n'est pas un usager valide

virtusers_title=Association d'Adresses
virtusers_ecannot=Vous n'阾es pas autoris  閐iter une association d'adresses
virtusers_edirective=Votre configuration de Sendmail n'a pas les directives n閏essaires pour les associations d'adresses
virtusers_efile=Le fichier texte '$1'  partir duquel est tir閑 la base de donn閑 $2 des associations d'adresses n'existe pas.  Peut-阾re que vous devriez modifier la <a href='$3'>configuration du module</a> et choisir le chemin correct
virtusers_desc1=Les associations d'adresses sont semblables aux <a href='$1'>alias</a>, mais sont pr閒閞able pour un syst鑝e qui g鑢e des domaines de courrier multiple.  Ils peuvent 阾re utilis閟 pour rediriger les courriers d'un domaine entier  une adresse, g閞er les usagers avec la m阭e adresse dans plusieurs domaines, ou de g閞er les courrier d'un domaine  un autre.
virtusers_desc2=Noter que vous devez avoir une entr閑 dans la table <a href='$1'>domaines locaux</a> de tous les domaines utilis閟 dans les associations d'adresses et ils doivent avoir une section MX dans l'enregistrement DNS de chaque domaine pointant sur votre syst鑝e.
virtusers_for=Courrier pour
virtusers_to=Envoyer 
virtusers_error=Erreur $1
virtusers_domain=Domaine $1
virtusers_address=Adresse $1
virtusers_return=liste d'associations d'adresses

vform_edit=蒬iter Association
vform_create=Cr閑r Association
vform_for=Courrier pour
vform_address=Adresse
vform_domain=Domaine
vform_to=Envoyer 
vform_msg=message
vform_error=Retourner erreur
vform_end=Deplacer  la fin
vform_ecannot=Vous n'阾es pas autoris  閐iter cette association d'adresses

vsave_ecannot=Vous n'阾es pas autoris  閐iter une association d'adresses
vsave_ecannot2=Vous n'阾es pas autoris  閐iter cette association d'adresses
vsave_emax=Vous n'阾es pas autoris  cr閑r plus que $1 associations d'adresses
vsave_err=Impossible d'enregistrer l'association d'adresses
vsave_efrom=$1 n'est pas une adresse valide
vsave_efromdup=Une association d'adresses pour $1 existe d閖
vsave_edom=$1 n'est pas un domaine valide
vsave_edomdup=Une association d'adresses pour $1 existe d閖
vsave_ematch=L'adresse source ne correspond pas  $1
vsave_ecannot3=Vous n'阾es pas autoris  cr閑r une association d'adresse
vsave_eaddr=$1 n'est pas une adresse valide
vsave_ecannot4=Vous n'阾es pas autoris  cr閑r une association d'adresses pour un domaine
vsave_edomdom=Seulement un domaine peut 阾re associ  un autre domaine
vsave_ecannot5=Vous n'阾es pas autoris  cr閑r une association qui retourne une erreur

mailers_title=Routage de Domaine
mailers_cannot=Vous n'阾es pas autoris d'閐iter un routage de domaine
mailers_edirective=Votre configuration de Sendmail n'a pas les directives n閏essaires au routage de domaine.
mailers_efile=Le fichier texte '$1' duquel la base de donn閑 de routage de domaine $2 est tir閑 n'existe pas.  Peut-阾re vous avez besoin de modifier la <a href='$3'>configuration du module</a> pour utiliser les chemins corrects.
mailers_desc1=Le routage de domaine est une fa鏾n de d閒inir une m閠hode de transfert de courrier pour certains domaines.  Ceci peut 阾re utile si votre syst鑝e est une passerelle pour un serveur de courrier qui ne peut 阾re accessible de l'ext閞ieur du r閟eau, ou si vous voulez forcer chacun des courriers, pour une raison particuli鑢e,  阾re dirig vers d'autres serveurs.
mailers_desc2=Vous ne devriez <b>pas</b> avoir une entr閑 dans la liste des <a href='$1'>domaines locaux</a> pour tout domaine rout. Sinon, vous devez avoir le champ MX dans vos enregistrements DNS qui passe par votre passerelle.
mailers_for=Courrier pour
mailers_delivery=Livraison
mailers_to=Envoy 
mailers_return=liste de routage de domaine

mform_edit=蒬iter un Routage
mform_create=Cr閑r un Routage
mform_for=Courrier pour
mform_host=H魌e
mform_domain=Domaine
mform_delivery=Livraison
mform_to=Envoyer 
mform_ignore=Ignorer le champ DNS MX pour la livraison SMTP
mform_smtp=SMTP
mform_esmtp=SMTP 蓆endu
mform_smtp8=SMTP 8-bit
mform_relay=Relais SMTP
mform_local=Usager local
mform_prog=Fournir au programme
mform_uucp=UUUCp
mform_usenet=Envoyer  USENET
mform_fax=HylaFAX
mform_pop=POP3
mform_procmail=Procmail
mform_mail11=Courrier DECnet
mform_error=Erreur
mform_ecannot=Vous n'阾es pas autoris  閐iter un routage de domaine

msave_ecannot=Vous n'阾es pas autoris  閐iter un routage de domaine
msave_err=Impossible d'enregistrer le routage de domaine
msave_edomain='$1' n'est pas un h魌e ou un domaine valide
msave_edup=Un routage de domaine pour '$1' existe d閖

generics_title=Adresses Sortante
generics_cannot=Vous n'阾es pas autoris  閐iter une adresse sortante
generics_econfig=Votre fichier de configuration de Sendmail ne semble pas avoir les directives n閏essaires pour des plans des adresses sortantes
generics_efile=Le fichier texte '$1' duquel la base de donn閑 d'adresse sortante $2 est tir閑 n'existe pas.  Peut-阾re avez-vous besoin de modifier la <a href='$3'>configuration du module</a> pour utiliser le chemin correct.
generics_desc1=Les plans d'adresse sortante vous permet de modifier la provenance des courrier envoy en dehors de votre syst鑝e, ou au travers de votre syst鑝e d'un autre h魌e  votre r閟eau local.  Ceci peut 阾re utile si vous avec des domaines multiples sur un syst鑝e et que vous voulez que les courriers de quelques usagers apparaissent comme venant d'un domaine diff閞ent.
generics_desc2=Notez que vous devez avoir une entr閑 dans la table <a href='$1'>domaines sortant</a> pour chaque domaine que vous voulez que des adresses aient les plans d'appliqu閟.
generics_from=Courrier de
generics_to=Changer pour
generics_return=liste de plans d'adresse

gform_edit=蒬iter un Plan
gform_create=Cr閑r un Plan
gform_from=Courrier de
gform_to=Changer pour
gform_ecannot=Vous n'阾es pas autoris  閐iter cette adresse sortante

gsave_ecannot=Vous n'阾es pas autoris  閐iter une adresse sortante
gsave_ecannot2=Vous n'阾es pas autoris  閐iter cette adresse sortante
gsave_err=Impossible d'enregistrer l'adresse sortante
gsave_efrom=$1 n'est pas une adresse valide
gsave_ematch=Cette forme d'adresse ne correspond pas  $1
gsave_eto=$1 n'est pas une nouvelle adresse valide

cgs_title=Domaines Sortant
cgs_ecannot=Vous n'阾es pas autoris  閐iter un domaine sortant
cgs_header=Adresse de domaines sortant
cgs_desc=Ind閜endamment du courrier envoy par les utilisateurs locaux, Sendmail ex閏utera seulement le plan de l'<a href='$1'>adresse sortante</a> pour le courrier des h魌es ou domaines list閟 dans la bo顃e de texte  la droite.  Ainsi, pour qu'une entr閑 d'adresse sortante fonctionne, le domaine doit 阾re inclut dans la liste.
cgs_err=Impossible d'enregistrer les domaines sortant
cgs_ehost=$1 n'est pas un h魌e ou un nom de domaine valide
cgs_eip=$1 est une adresse IP, non un domaine

domains_title=Plans de Domaine
domains_ecannot=Vous n'阾es pas autoris  閐iter un plan de domaine
domains_econfig=Votre fichier de configuration de Sendmail n'a pas les directives n閏essaires pour les plans de domaine.
domains_efile=Le fichier texte '$1' duquel la base de donn閑 $2 est tir閑 n'existe pas.  Peut-阾re avez-vous besoin de modifier la <a href='$3'>configuration du module</a> pour utiliser le chemin correct.
domains_desc=Les plans de domaine modifie l'adresse de destination des courriers envoy de, relay ou livr  votre syst鑝e.  L'adresse de provenance du message relay ou du message  l'usager local est aussi modifi閑.  Ceci peut 阾re utile si vos noms de domaines changent et que vous voulez changer toutes les occurrences de votre vieux domaine au nouveau.
domains_from=Du domaine
domains_to=Au domaine
domains_return=liste de plans de domaine

dform_edit=蒬iter un Plan
dform_create=Cr閑r un Plan
dform_from=Du domaine
dform_to=Au domaine
dform_ecannot=Vous n'阾es pas autoris  閐iter un plan de domaine

dsave_ecannot=Vous n'阾es pas autoris  閐iter un plan de domaine
dsave_err=Impossible d'enregistrer le plan de domaine
dsave_edomain=$1 n'est pas un nom domaine valide

access_title=Contr鬺e du Spam
access_ecannot=Vous n'阾es pas autoris  configurer le contr鬺e du spam
access_econfig=Votre fichier de configuration n'a pas les directives n閏essaires pour le contr鬺e du spam.
access_efile=Le fichier texte '$1' duquel la base de donn閑 $2 est tir閑 n'existe pas.  Peut-阾re avez-vous besoin de modifier la <a href='$3'>configuration du module</a> pour utiliser le chemin correct.
access_desc1=La fonction de contr鬺e du spam de Sendmail vous permet de pr関enir le pollupostage d'atteindre vos usagers en rejetant les courriers de certaines adresses et en pr関enant les spammeurs d'utiliser votre syst鑝e pour rediriger leurs courriers.  Par d閒aut Sendmail accepte tout les courriers des usagers interne, mais emp阠he tout client ou serveur de courrier de passer par votre syst鑝e.  G閚閞alement, vous devriez ajouter des r鑗les de contr鬺e de spam pour rejeter les courriers des spammeurs, et des r鑗les pour autoriser d'autres machines sur votre r閟eau de diriger leurs courriers au travers de votre syst鑝e.
access_desc2=Noter que, par d閒aut, Sendmail accepte les clients roulant sur votre syst鑝e d'envoyer des courriers  par SMTP  n'importe quelle destination.  Alors, il n'y a aucun besoin d'ajouter le r閟eau <tt>127.0.0</tt>  la liste de ceux qui sont autoris.
access_source=Source
access_action=Action
access_return=liste de contr鬺e de spam

sform_edit=蒬iter une R鑗le de Contr鬺e de Spam
sform_create=Cr閑r une R鑗le de Contr鬺e de Spam
sform_source=Source du courrier
sform_type0=Adresse Courrier
sform_type1=R閟eau
sform_type2=Usager
sform_type3=Domaine
sform_action=Action
sform_ok=Accepter
sform_relay=Autoris la redirection
sform_reject=Rejeter
sform_discard=Supprimer discr鑤ement
sform_err=Code d'erreur
sform_msg=Message
sform_ecannot=Vous n'阾es pas autoris  configurer le contr鬺e de spam

ssave_ecannot=Vous n'阾es pas autoris  configurer le contr鬺e du spam
ssave_err=Impossible d'enregistrer la r鑗le de contr鬺e de spam
ssave_etype0=$1 n'est pas une adresse valide
ssave_etype1=$1 n'est pas un r閟eau valide
ssave_etype2=$1 n'est pas un nom d'usager valide
ssave_etype3=$1 n'est pas un domaine valide
ssave_ecode=$1 n'est pas un code d'erreur SMTP valide

relay_title=Relayer les Domaines
relay_ecannot=Vous n'阾es pas autoris  閐iter les relais de domaines
relay_eversion=Seulement Sendmail 8.9 ou plus r閏ent supporte la fonction de relais.
relay_domains=Domaines que le relayage est autoris
relay_desc1=Tant que ce n'est pas autoris par les r鑗les de <a href='$1'>contr鬺e de spam</a>, Sendmail permet seulement au domaines list閟 ci-dessous de relayer par votre syst鑝e.  Les courriers entrant qui ne sont pas pour un usager local et non pour un des domaines list閟 seront rejet.
relay_desc2=Si votre syst鑝e sert de passerelle  plusieurs domaines qui ne sont pas directement accessible  l'ext閞ieur de votre r閟eau (en utilisant la fonction <a href='$1'>routage de domaine</a>) ces domaines doivent 阾re list閟 ci-dessous.
relay_err=Impossible d'enregistrer les domaines relay閟
relay_edomain=$1 n'est pas un nom de domaine valide

mailq_title=File d'Attente de Courrier
mailq_ecannot=Vous n'阾es pas autoris  voir la file d'attente de courrier
mailq_id=Num閞o de courrier
mailq_sent=Envoy
mailq_from=De
mailq_to=
mailq_status=蓆at
mailq_unknown=Inconnu
mailq_sending=Envoie
mailq_dmsg=Pour voir un courrier de la file d'attente, cliquer sur son num閞o dans la liste ci-dessus
mailq_force=Pour forcer la livraison imm閐iate d'un courrier de la file, <<a href='$1'>cliquer ici</a>.
mailq_none=Aucun courrier est pr閟entement dans la file d'attente
mailq_return=file d'attente de courrier

flushq_title=Vider la File d'Attente
flushq_desc=Forcer la livraison des courriers avec la commande '$1'

delq_err=Impossible de supprimer le courrier de la file d'attente
delq_ecannot=Vous n'阾es pas autoris  supprimer un courrier de la file d'attente
delq_locked=Verrouiller pour l'instant pour l'envoie

boxes_title=Bo顃es  Lettre des Usagers
boxes_user=Usagers
boxes_size=Taille de la bo顃e aux lettres
boxes_none=Aucun courrier
boxes_return=bo顃es aux lettres des usagers
boxes_ecannot=Vous n'阾es pas autoris  lire les courriers des usagers

mail_title=Courrier de l'Usager
mail_from=De
mail_date=Date
mail_subject=Sujet
mail_to=
mail_cc=Copie carbone
mail_for=Dans $1
mail_size=Taille
mail_delete=Supprimer les messages s閘ectionn閟
mail_compose=蒫rire un nouveau courrier
mail_return=courrier de l'usager
mail_pos=Courriers $1  $2 de $3
mail_none=Cette bo顃e aux lettres n'a aucun courrier
mail_ecannot=Vous n'阾es pas autoris  lire les courriers des usagers
mail_all=Selectionner tout
mail_invert=Selectioner l'inverse

view_title=Lire un Courrier
view_desc=Courrier $1 dans $2
view_qdesc=Courrier $1 de la file d'attente
view_headers=Ent阾es du courrier
view_attach=Attachements
view_reply=R閜ondre
view_reply2=R閜ondre  tous
view_forward=Renvoyer
view_delete=Supprimer
view_ecannot=Vous n'阾es pas autoris  lire les courriers des usagers

compose_title=蒫rire un Courrier
reply_title=R閜ondre au Courrier
forward_title=Rediriger un Courrier
reply_headers=Ent阾es du courrier
reply_attach=Attachement envoy
reply_attach2=Attachements
reply_send=Envoyer
reply_ecannot=Vous n'阾es pas autoris  envoyer un courrier de cet usager

send_err=Impossible d'envoyer le courrier
send_eto=Adresse du destinataire manquante
send_efrom=Adresse de l'閙etteur manquant
send_title=Courrier Envoy
send_ok=Courrier envoy avec succ鑣  $1
send_ecannot=Vous n'阾es pas autoris  envoyer un courrier de cet usager
send_esmtp=Impossible d'ex閏uter la commande SMTP $1 : $2

delete_ecannot=Vous n'阾es pas autoris  supprimer les courriers de cet usager

acl_opts=Peut 閐iter les options de Sendmail?
acl_cws=Peut 閐iter les domaines local?
acl_masq=Peut configurer le camouflage de domaine?
acl_trusts=Peut 閐iter les usagers confiants?
acl_cgs=Peut 閐iter les domaines sortants?
acl_relay=Peut 閐iter le relayage de domaines?
acl_mailers=Peut configurer le routage de domaine?
acl_access=Peut configurer le contr鬺e de spam?
acl_domains=Peut configurer les plans de domaines?
acl_stop=Peut arr阾er et d閙arrer Sendmail?
acl_mailq=Peut g閞er la file d'attente des courriers?
acl_viewdel=Voir et supprimer
acl_view=Voir seulement
acl_virtusers=Plans d'adresse que cet usager peut 閐iter
acl_none=Aucun
acl_all=Tous
acl_matching=Correspondant
acl_vtypes=Types de plan d'adresse que cet usager peut 閐iter
acl_vtype0=Erreur de retour
acl_vtype1=Au domaine
acl_vtype2= l'adresse
acl_vmax=Nombre maximum de plans d'adresse
acl_unlimited=Illimit
acl_aliases=Alias que cet usager peut 閐iter
acl_atypes=Types d'alias que cet usager peut 閐iter
acl_atype1=Adresse courrier
acl_atype2=Adresse dans fichier
acl_atype3=蒫rire dans un fichier
acl_atype4=Donner  un programme
acl_amax=Nombre maximum d'alias
acl_outgoing=Adresses sortantes que cet usager peut 閐iter
acl_read=Usagers dont les courriers peuvent 阾re lu
acl_users=Seulement les usagers
acl_userse=Tous
acl_from=Des adresses
acl_any=De toutes les adresses
acl_fdoms=Bo顃e aux lettres des domaines
acl_faddrs=Adresses list閑s
acl_fdom=Toutes les adresses d'un domaines
 0707010005f321000081a40000000000000002000000013ac0389d000068f6000000200000000000000000000000000000001700000003reloc/sendmail/lang/pl    index_title=Konfiguracja Sendmaila
index_econfig=Plik konfiguracyjny Sendmaila $1 nie istnieje. Mo縧iwe, 縠 <a href='$2'>konfiguracja modu硊</a> jest nieprawid硂wa.
index_eversion=Istniej眂y plik konfiguracyjny Sendmaila nie jest przeznaczony dla najnowszej wersji Sendmaila. Webmin obs硊guje wy潮cznie wersj 8.8 i&nbsp;wy縮ze.
index_epath=Program Sendmail $1 nie jest zainstalowany na tym komputerze. Mo縧iwe, 縠 <a href='$2'>konfiguracja modu硊</a> jest nieprawid硂wa lub Sendmail nie zosta zainstalowany.
index_return=konfiguracji sendmaila
index_stop=Zatrzymaj Sendmaila
index_stopmsg=Naci秐ij ten przycisk aby zatrzyma Sendmaila. Spowoduje to zaprzestanie dor阠zania lokalnym u縴tkownikom poczty pochodz眂ej z&nbsp;innych system體, jak r體nie uniemo縧iwi u縴wanie tego systemu jako serwera poczty wychodz眂ej.
index_start=Uruchom Sendmaila
index_startmsg=Naci秐ij ten przycisk aby uruchomi Sendmaila poleceniem $1. Dop髃i tego nie uczynisz, poczta z&nbsp;innych system體 nie b阣zie dor阠zana lokalnym u縴tkownikom oraz stacje klienckie nie b阣 mog硑 u縴wa tego systemu jako serwera poczty wychodz眂ej.

opts_title=Ustawienia Sendmaila
opts_ecannot=Nie masz uprawnie do zmiany ustawie Sendmaila
opts_ds=Wysy砤j poczt za po秗ednictwem komputera
opts_direct=Dor阠zaj bezpo秗ednio
opts_dr=Przeka poczt z&nbsp;niepe硁ym adresem do komputera
opts_dh=Przeka poczt dla u縴tkownik體 lokalnych do komputera
opts_local=Dor阠zaj lokalnie
opts_queuela=Maks. obci笨enie systemu przy wysy砤niu
opts_refusela=Maks. obci笨enie systemu przy odbieraniu
opts_maxch=Maks. ilo舵 proces體 potomnych
opts_throttle=Maks. ilo舵 po潮cze / sekund
opts_minqueueage=Min. czas przed powt髍na pr骲 wys砤nia
opts_runsize=Maksymalny rozmiar kolejki
opts_queuereturn=Czas, po kt髍ym wiadomo舵 jest odrzucana
opts_queuewarn=Czas, po kt髍ym wysy砤ne jest ostrze縠nie
opts_queue=Katalog kolejkowania poczty
opts_postmaster=Informacje o&nbsp;b酬dach wysy砤j do
opts_forward=Pliki przekazywania poczty u縴tkownika
opts_minfree=Min. ilo舵 wolnego miejsca na dysku
opts_maxmessage=Maks. rozmiar wiadomo禼i
opts_loglevel=Poziom logowania
opts_mimebounce=Kodowanie MIME odbitych wiadomo禼i?
opts_default=Domy秎ne
opts_save=Zapisz i zastosuj
opts_err=Nie uda硂 si zachowa ustawie
opts_ehost='$1' nie jest prawid硂w nazw komputera ani domeny
opts_einvalid='$1' nie jest prawid硂w warto禼i dla '$2'
opts_blame=Ustawienia bezpiecze駍twa plik體
opts_selected=Wybrano..
opts_blocks=blok體
opts_bytes=bajt體
opts_dmode=Tryb dor阠zania
opts_background=W&nbsp;tle
opts_queue-only=Tylko kolejka
opts_interactive=Interakcyjnie
opts_deferred=Odroczone

aliases_title=Aliasy pocztowe
aliases_ecannot=Nie masz uprawnie do modyfikacji alias體
aliases_addr=Adres
aliases_to=Alias..
aliases_type1=Adres $1
aliases_type2=Adresy w&nbsp;pliku $1
aliases_type3=Plik $1
aliases_type4=Program $1
aliases_type5=Plik z&nbsp;automatyczn odpowiedzi $1
aliases_none=Brak
aliases_return=listy alias體

aform_type0=Brak
aform_type1=Adres e-mail
aform_type2=Adresy w&nbsp;pliku
aform_type3=Zapisz do pliku
aform_type4=Przekieruj do programu
aform_type5=Automatyczna odpowied z&nbsp;pliku
aform_edit=Zmie alias
aform_create=Utw髍z alias
aform_name=Adres
aform_enabled=Aktywny?
aform_val=Alias
aform_afile=Zmie..
aform_return=aliasu

afile_title=Zmie plik z adresami
afile_desc=U縴j pola tekstowego poni縠j do zmiany adres體 w&nbsp;pliku $1.
afile_efile=Nie masz uprawnie do zmiany $1.
afile_undo=Cofnij zmiany

rfile_title=Zmie plik automatycznej odpowiedzi
rfile_desc=U縴j pola tekstowego poni縠j do modyfikacji komunikatu automatycznej odpowiedzi w&nbsp;$1. Ten komunikat mo縠 zawiera makra $SUBJECT, $FROM, $TO, $DATE i&nbsp;$BODY, kt髍e b阣 rozwini阾e podczas aktywacji automatycznek odpowiedzi.
rfile_efile=Nie masz uprawnie do modyfikacji $1.
rfile_undo=Cofnij zmiany

asave_err=Nie uda硂 si zachowa aliasu
asave_ecannot2=Nie masz uprawnie do modyfikacji alias體
asave_ecannot=Nie masz uprawnie do zmiany tego aliasu
asave_emax=Nie masz uprawnie, aby utworzy wi阠ej ni $1 alias體
asave_eaddr='$1' nie jest poprawnym adresem
asave_ealready=Alias dla '$1' ju istnieje
asave_ematch=Wolno ci tworzy jedynie aliasy wg wzorca '$1'
asave_etype=Nie mo縠sz tworzy alias體 tego typu
asave_etype1='$1' nie jest poprawnym adresem e-mail
asave_etype2=Plik z&nbsp;adresami '$1' nie jest poprawny lub nie istnieje
asave_etype3='$1' nie jest poprawn nazw pliku
asave_etype4='$1' nie jest poprawnym programem lub nie istnieje
asave_etype5=Plik automatycznej odpowiedzi '$1' nie jest poprawny lub nie istnieje
asave_etype4none=Nie podano programu

cws_title=Domeny lokalne
cws_ecannot=Nie masz uprawnie do zmian lokalnych domen
cws_domains=Domeny obs硊giwane przez ten serwer
cws_desc1=Opr骳z poczty adresowanej do $1, Sendmail b阣zie przyjmowa w&nbsp;celu lokalnego dor阠zenia jedynie poczt adresowan do domen wymienionych w&nbsp;okienku po lewej. Je秎i chcesz, aby tw骿 serwer pocztowy obs硊giwa wiele domen pocztowych, wszystkie one musz by wymienione w&nbsp;tym formularzu.
cws_desc2=Zauwa, 縠 dopisanie tu domeny zazwyczaj nie wystarcza. Musisz r體nie upewni si, 縠 istnieje w&nbsp;DNS wpis dla tej domeny, oraz 縠 wskazuje on na tw骿 system.
cws_err=Nie uda硂 si zachowa domen lokalnych
cws_ehost='$1' nie jest prawid硂w nazw komputera ani domeny
cws_eip='$1' jest adresem IP, a&nbsp;nie nazw domeny

masq_title=Maskowanie domen
masq_ecannot=Nie masz uprawnie do konfiguracji maskowania
masq_domain=Zamaskuj jako domen
masq_domains=Domeny, kt髍e maj by zamaskowane
masq_desc1=Je秎i podana jest domena powy縠j, Sendmail zmodyfikuje adres 紃骴硂wy (<tt>From:</tt>) poczty wychodz眂ej tak, aby wygl眃a硂, 縠 pochodzi ona z&nbsp;tej domeny. Dodatkowo ka縟a wiadomo舵 przechodz眂a przez ten system, a&nbsp;pochodz眂a z&nbsp;kt髍egokolwiek z&nbsp;komputer體 lub domen wymienionych w&nbsp;okienku po lewej b阣zie r體nie mia砤 adres 紃骴硂wy (pole <tt>From:</tt>) zmodyfikowany w&nbsp;ten sam spos骲. Zauwa, 縠 jakiekolwiek maskowanie zdefiniowane tutaj mo縠 by nadpisane dla poszczeg髄nych u縴tkownik體 przy u縴ciu strony <a href='$1'>Adresy Wychodz眂e</a>.
masq_desc2=Ta funkcja mo縠 by u縴teczna je縠li chcesz aby poczta wys砤na z&nbsp;twojego systemu wygl眃a砤 jak pochodz眂a z&nbsp;twojej domeny a&nbsp;nie z&nbsp;twojego komputera. A tak縠, je秎i tw骿 system stanowi centrum pocztowe dla pewnej liczby innych komputer體, na kt髍ych uruchomione s serwery pocztowe.
masq_err=Nie uda硂 si zachowa maskowania domen
masq_edomain='$1' nie jest prawid硂w domen maskuj眂
masq_ehost='$1' nie jest prawid硂w nazw komputera ani domeny
masq_eip='$1' jest adresem IP, a&nbsp;nie nazw domeny

trusts_title=Zaufani u縴tkownicy
trusts_ecannot=Nie masz uprawnie do modyfikacji listy zaufanych u縴tkownik體
trusts_users=Lokalni zaufani u縴tkownicy
trusts_desc=Je秎i u縴tkownik lokalny spr骲uje wys砤 wiadomo舵, musi on znajdowa si na li禼ie po lewej, aby Sendmail pozwoli mu poda inny adres 紃骴硂wy (<tt>From:</tt>). To ograniczenie ma na celu uniemo縧iwienie podawania fa硈zywego adresu 紃骴硂wego (<tt>From:</tt>) u縴tkownikom wysy砤j眂ym poczt z&nbsp;twojego systemu.
trusts_err=Nie uda硂 si zachowa listy zaufanych u縴tkownik體
trusts_euser='$1' nie jest prawid硂w nazw u縴tkownika

virtusers_title=Podstawianie adres體
virtusers_ecannot=Nie masz uprawnie do modyfikacji podstawiania adres體
virtusers_edirective=Tw骿 plik konfiguracyjny Sendmaila nie zawiera cz甓ci niezb阣nej dla podstawiania adres體.
virtusers_efile=Plik teksowy $1, na podstawie kt髍ego jest tworzona baza danych podstawie adres體 $2 nie istnieje. By mo縠 musisz zmieni <a href='$3'>konfiguracj modu硊</a> aby korzysta z&nbsp;prawid硂wej 禼ie縦i.
virtusers_desc1=Podstawianie adres體 jest podobne do <a href='$1'>alias體</a>, ale bardziej w砤禼iwe dla systemu, kt髍y obs硊guje wiele domen pocztowych. Mo縩a je wykorzysta do przekierowywania poczty dla ca硑ch domen na jeden adres, posiada u縴tkownik體 o&nbsp;tej samej nazwie w&nbsp;r罂nych domenach lub przekierowywa ca潮 poczt z&nbsp;jednej domeny do innej.
virtusers_desc2=Zauwa, 縠 musisz mie wpis w&nbsp;tabeli <a href='$1'>domen lokalnych</a> dla ka縟ej domeny, dla kt髍ej robisz podstawienie adresu, jak te musi istnie rekord MX w&nbsp;DNS dla ka縟ej z&nbsp;tych domen wskazuj眂y na tw骿 system.
virtusers_for=Poczta dla..
virtusers_to=Wy秎ij do..
virtusers_error=B潮d $1
virtusers_domain=Domena $1
virtusers_address=Adres $1
virtusers_return=listy podstawie adres體

vform_edit=Zmie podstawienie
vform_create=Nowe podstawienie
vform_for=Poczta dla
vform_address=Adres
vform_domain=Domena
vform_to=Wy秎ij do
vform_msg=Wiadomo舵
vform_error=Zwr箧 b潮d
vform_err_nouser=brak u縴tkownika
vform_err_nohost=brak komputera
vform_err_unav=niedost阷ny
vform_err_temp=tymczasowy
vform_err_proto=b潮d protoko硊
vform_end=Przenie na koniec
vform_ecannot=Nie masz prawa do zmiany podstawienia dla tego adresu

vsave_ecannot=Nie masz uprawnie do modyfikacji podstawiania adres體
vsave_ecannot2=Nie masz uprawnie do zmiany podstawienia dla tego adresu
vsave_emax=Nie masz uprawnie do utworzenia wi阠ej ni $1 podstawie adresu
vsave_err=Nie uda硂 si zachowa podstawie adres體
vsave_efrom='$1' nie jest prawid硂wym adresem
vsave_efromdup=Podstawienie dla adresu '$1' ju jest zdefiniowane
vsave_edom='$1' nie jest prawid硂w nazw domeny
vsave_edomdup=Podstawienie dla adresu '$1' ju jest zdefiniowane
vsave_ematch=Adres 紃骴硂wy nie pasuje do '$1'
vsave_ecannot3=Nie masz uprawnie do modyfikacji podstawiania adres體
vsave_eaddr='$1' nie jest prawid硂wym adresem
vsave_ecannot4=Nie masz uprawnie do tworzenia podstawie dla domen
vsave_edomdom=Jedynie domena mo縠 by podstawiona za inn domen
vsave_ecannot5=Nie masz uprawnie do tworzenia podstawie, kt髍e generuj b潮d

mailers_title=Routing wed硊g domen
mailers_cannot=routing wed硊g domen
mailers_edirective=Tw骿 plik konfiguracyjny Sendmaila nie zawiera cz甓ci niezb阣nej dla routingu wed硊g domen.
mailers_efile=Plik tekstowy $1, na podstawie kt髍ego jest tworzona baza danych routingu wed硊g domen $2 nie istnieje. By mo縠 musisz zmieni <a href='$3'>konfiguracj modu硊</a> aby korzysta z&nbsp;prawid硂wej 禼ie縦i.
mailers_desc1=Routing wed硊g domen zapewnia spos骲 na zdefiniowanie specyficznego sposobu przekazywania poczty dla poszczeg髄nych domen. Mo縠 to by u縴teczne w&nbsp;przypadku, gdy tw骿 system stanowi bram do serwer體 pocztowych, kt髍e s nieosi眊alne spoza twojej sieci lub je秎i chcesz wymusi, aby ca砤 poczta skierowana do pewnych domen przechodzi砤 przez pewien inny serwer.
mailers_desc2=<b>Nie</b> powiniene mie wpisu na li禼ie <a href='$1'>domen lokalnych</a> dla 縜dnej z&nbsp;domen do kt髍ych routujesz. Jednak縠, powiniene mie rekord MX w&nbsp;DNS wskazuj眂y na tw骿 system dla ka縟ej domeny, dla kt髍ej jest on bram.
mailers_for=Poczta dla..
mailers_delivery=Dor阠zanie
mailers_to=Wy秎ij do..
mailers_return=listy routingu wed硊g domen

mform_edit=Popraw routing
mform_create=Utw髍z routing
mform_for=Poczta dla
mform_host=Komputer
mform_domain=Domena
mform_delivery=Dor阠zanie
mform_to=Wy秎ij do
mform_ignore=Ignoruj MX przy dor阠zaniu SMTP
mform_smtp=SMTP
mform_esmtp=Rozszerzony SMTP
mform_smtp8=8-bitowy SMTP
mform_relay=Komputer po秗ednicz眂y SMTP
mform_local=U縴tkownik lokalny
mform_prog=Przeka do programu
mform_uucp=UUCP
mform_usenet=Wy秎ij do USENET-u
mform_fax=HylaFAX
mform_pop=POP3
mform_procmail=Procmail
mform_mail11=DECnet mail11
mform_error=B潮d
mform_ecannot=Nie masz uprawnie do modyfikacji routingu wed硊g domen

msave_ecannot=Nie masz uprawnie do modyfikacji routingu wed硊g domen
msave_err=Nie uda硂 si zachowa routingu wed硊g domen
msave_edomain='$1' nie jest prawid硂w nazw komputera ani domeny
msave_edup=Routing dla domeny '$1' jest ju zdefiniowany

generics_title=Adresy wychodz眂e
generics_cannot=Nie masz uprawnie do modyfikacji adres體 wychodz眂ych
generics_econfig=Tw骿 plik konfiguracyjny Sendmaila nie zawiera cz甓ci niezb阣nej dla podstawiania adres體 wychodz眂ych.
generics_efile=Plik tekstowy $1, na podstawie kt髍ego jest tworzona baza danych adres體 wychodz眂ych $2 nie istnieje. By mo縠 musisz zmieni <a href='$3'>konfiguracj modu硊</a> aby korzysta z&nbsp;prawid硂wej 禼ie縦i.
generics_desc1=Podstawianie adres體 wychodz眂ych pozwala na modyfikacj adresu 紃骴硂wego (<tt>From:</tt>) poczty wys砤nej spoza twojego systemu lub przekazywanej poprzez przez inne komputery w&nbsp;twojej lokalnej sieci. Moze ono by u縴teczne je秎i obs硊gujesz wiele domen w&nbsp;tym systemie i&nbsp;chcesz, aby poczta pochodz眂a od pewnych u縴tkownik體 wygl眃a砤 jak pochodz眂a z&nbsp;innej domeny.
generics_desc2=Zauwa, 縠 musisz mie wpis w&nbsp;tabeli <a href='$1'>domen wychodz眂ych</a> dla kazdej domeny, dla adres體 z&nbsp;kt髍ej chcesz dokona podstawienia adresu wychodz眂ego. Zauwa, 縠 podstawianie adres體 wychodz眂ych nie dzia砤 dla poczty dor阠zanej lokalnym u縴tkownikom.
generics_from=Poczta z..
generics_to=Zmie na..
generics_return=listy podstawie adres體

gform_edit=Zmie podstawienie
gform_create=Nowe podstawienie
gform_from=Poczta z
gform_to=Zmie na
gform_ecannot=Nie masz uprawnie do zmiany tego adresu wychodz眂ego

gsave_ecannot=Nie masz uprawnie do modyfikacji adres體 wychodz眂ych
gsave_ecannot2=Nie masz uprawnie do zmiany tego adresu wychodz眂ego
gsave_err=Nie uda硂 sie zachowa adres體 wychodz眂ych
gsave_efrom='$1' nie jest prawid硂wym adresem 紃骴硂wym
gsave_ematch=Adres 縭骴硂wy nie pasuje do '$1'
gsave_eto='$1' nie jest prawid硂wym nowym adresem

cgs_title=Domeny wychodz眂e
cgs_ecannot=Nie masz uprawnie do modyfikacji domen wychodz眂ych
cgs_header=Adresy domen wychodz眂ych
cgs_desc=Pomin眞szy poczt wys砤n przez lokalnych u縴tkownik體, Sendmail b阣zie stosowa podstawianie <a href='$1'>adres體 wychodz眂ych</a> wy潮cznie do poczty pochodz眂ej z komputer體 lub domen wymienionych w okienku po prawej. Zatem, aby adres wychodz眂y dzia砤, domena 紃骴硂wa (<tt>From:</tt>) musi by wymieniona na tej li禼ie.
cgs_err=Nie uda硂 sie zachowa domen wychodz眂ych
cgs_ehost='$1' nie jest prawid硂w nazw komputera ani domeny
cgs_eip='$1' jest adresem IP, a&nbsp;nie nazw domeny

domains_title=Podstawianie domen
domains_ecannot=Nie masz uprawnie do modyfikacji podstawiania domen
domains_econfig=Tw骿 plik konfiguracyjny Sendmaila nie zawiera cz甓ci niezb阣nej dla podstawiania domen.
domains_efile=Plik tekstowy $1, na podstawie kt髍ego jest tworzona baza danych podstawiania adres體 $2 nie istnieje. By mo縠 musisz zmieni <a href='$3'>konfiguracj modu硊</a> aby korzysta z&nbsp;prawid硂wej 禼ie縦i.
domains_desc=Podstawianie domen zmienia adres docelowy (<tt>To:</tt>) wiadomo禼i wysy砤nych, przekazywanych lub dor阠zanych u縴tkownikom twojego systemu. Zmieniany jest r體nie adres 縭骴硂wy (<tt>From:</tt>) wiadomo禼i przekazywanych lub przeznaczonych dla u縴tkownik體 lokalnych. Mo縠 to by u縴teczne, je縠li nazwa twojej domeny ulaga zmianie a&nbsp;ty chcesz zmieni star nazw domeny na now we wszystkich miejscach, gdzie ona wyst阷uje.
domains_from=Z domeny..
domains_to=Do domeny..
domains_return=listy podstawie domen

dform_edit=Zmie podstawienie
dform_create=Nowe podstawienie
dform_from=Z domeny
dform_to=Do domeny
dform_ecannot=Nie masz uprawnie do modyfikacji podstawiania domen

dsave_ecannot=Nie masz uprawnie do modyfikacji podstawiania domen
dsave_err=Nie uda硂 si zachowa podstawie domen
dsave_edomain='$1' nie jest prawid硂w nazw domeny

access_title=Kontrola spamu
access_ecannot=Nie masz uprawnie do konfigurowania kontroli spamu
access_econfig=Tw骿 plik konfiguracyjny Sendmaila nie zawiera cz甓ci niezb阣nej dla kontroli spamu.
access_efile=Plik tekstowy $1, na podstawie kt髍ego jest tworzona baza danych kontroli spamu $2 nie istnieje. By mo縠 musisz zmieni <a href='$3'>konfiguracj modu硊</a> aby korzysta z&nbsp;prawid硂wej 禼ie縦i.
access_desc1=Wbudowane w&nbsp;Sendmaila funkcje kontroli spamu umo縧iwiaj ci zapobie縠nie dor阠zaniu spamu twoim u縴tkownikom poprzez odrzucenie poczty pochodz眂ej z&nbsp;pewnych adres體 oraz uniemo縧iwienie spamerom korzystania z&nbsp;twojego systemu w&nbsp;celu rozsy砤nia poczty. Domy秎nie, Sendmail przyjmuje poczt do u縴tkownik體 lokalnych z&nbsp;dowolnego adresu ale uniemo縧iwia po秗edniczenie w&nbsp;przesy砤niu poczty pochodz眂ej z&nbsp;dowolnej stacji klienckiej czy serwera pocztowego. W&nbsp;typowej konfiguracji powiniene doda regu硑 kontroli spamu odrzucaj眂e poczt od spamer體 oraz regu硑 pozwalaj眂e na przekazywanie poczty pochodz眂ej z&nbsp;innych komputer體 w&nbsp;twojej sieci.
access_desc2=Zauwa, 縠 domy秎nie Sendmail pozwoli klientom poczty dzia砤j眂ym bezpo秗ednio na twoim systemie na przesy砤nie poczty przy u縴ciu protoko硊 SMTP w&nbsp;dowolnym kierunku. Wobec tego nie ma potrzeby dodawa sieci lokalnej <tt>127.0.0</tt> do listy tych, od kt髍ych poczta b阣zie przekazywana.
access_source=瑀骴硂..
access_action=Akcja..
access_return=listy regu kontroli spamu

sform_edit=Popraw regu酬
sform_create=Utw髍z regu酬
sform_source=瑀骴硂 poczty
sform_type0=Adres pocztowy
sform_type1=Sie
sform_type2=U縴tkownik
sform_type3=Domena
sform_action=Akcja
sform_ok=Przyjmij
sform_relay=Zezw髄 na przekazywanie
sform_reject=Odrzu
sform_discard=Zignoruj milcz眂o
sform_err=Kod b酬du
sform_msg=Komunikat
sform_ecannot=Nie masz uprawnie do konfigurowania kontroli spamu

ssave_ecannot=Nie masz uprawnie do konfigurowania kontroli spamu
ssave_err=Nie uda硂 si zachowa regu硑 kontroli spamu
ssave_etype0='$1' nie jest prawid硂wym adresem
ssave_etype1='$1' nie jest prawid硂wym adresem sieci
ssave_etype2='$1' nie jest prawid硂w nazw u縴tkownika
ssave_etype3='$1' nie jest prawid硂w nazw domeny
ssave_ecode='$1' nie jest prawid硂wym kodem b酬du SMTP

relay_title=Przekazywanie poczty
relay_ecannot=Nie masz uprawnie do zmiany konfiguracji przekazywania poczty
relay_eversion=Jedynie Sendmail w&nbsp;wersji 8.9 i&nbsp;wy縮zej posiadaj kontrol przekazywania poczty
relay_domains=Przekazywanie poczty mo縧iwe do domen
relay_desc1=Je秎i nie pozwolisz inaczej w&nbsp;<a href='$1'>kontroli spamu</a>, Sendmail umo縧iwi przekazywanie poczty jedynie do domen wymienionych w&nbsp;okienku po lewej. Poczta przychodz眂a nie przeznaczona dla lokalnych u縴tkownik體 ani do wymienionych domen b阣zie odrzucana.
relay_desc2=Je秎i tw骿 system jest bramk dla pewnych domen, kt髍e nie s bezpo秗ednio dost阷ne z&nbsp;sieci zewn阾rznej (przy u縴ciu <a href='$1'>routingu wed硊g domen</a>), w體czas wszystkie te domeny powinny by tu wymienione.
relay_err=Nie uda硂 si zachowa konfiguracji przekazywania poczty
relay_edomain='$1' nie jest prawid硂w nazw domeny

mailq_title=Kolejka poczty
mailq_ecannot=Nie masz uprawnie do przeghl眃ania kolejki poczty
mailq_id=Nr ID wiadomo禼i
mailq_sent=Wys砤na
mailq_from=Od
mailq_to=Do
mailq_size=Rozmiar
mailq_status=Status
mailq_unknown=Nieznany
mailq_sending=Wysy砤nie
mailq_dmsg=Aby obejrze wiadomo舵 z&nbsp;kolejki, naci秐ij na jej nr ID na li禼ie powy縠j
mailq_force=Aby wymusi natychmiastowe dor阠zenie wiadomo禼i z&nbsp;kolejki, <a href='$1'>naci秐ij tutaj</a>.
mailq_none=Brak wiadomo禼i w&nbsp;kolejce
mailq_delete=Kasuj wybrane wiadomo禼i
mailq_return=kolejki poczty

flushq_title=Opr罂nij kolejk
flushq_desc=Wymuszenie pr骲y dor阠zenia poczty poleceniem $1 ..

delq_err=Nie uda硂 sie skasowa wiadomo禼i
delq_ecannot=Nie masz uprawnie do usuwania wiadomo禼i z&nbsp;kolejki
delq_locked=Plik jest obecnie zablokowany ze wzgl阣u na wysy砤nie
delq_enone=Nie wybrano wiadomo禼i do skasowania
delq_title=Kasowanie wiadomo禼i
delq_file=Kasowanie pliku poczty $1 ..
delq_efile=niew砤禼iwa nazwa pliku!
delq_egone=ju skasowane lub dor阠zone
delq_elocked=zablokowane ze wzgl阣u na wysy砤nie
delq_ok=skasowane pomy秎nie

boxes_title=Skrzynki pocztowe
boxes_user=U縴tkownik
boxes_size=Rozmiar skrzynki
boxes_none=Brak poczty
boxes_return=listy skrzynek pocztowych
boxes_sent=Poczta wys砤na
boxes_ecannot=Nie masz uprawnie do czytania poczty

mail_title=Poczta u縴tkownika
mail_from=Od
mail_date=Wys砤no
mail_subject=Temat
mail_to=Do
mail_cc=DW
mail_bcc=UDW
mail_pri=Priorytet
mail_highest=Najwy縮zy
mail_high=Wysoki
mail_normal=Zwyk硑
mail_low=Niski
mail_lowest=Najni縮zy
mail_for=W $1
mail_sent=Na li禼ie poczty wys砤nej
mail_size=Rozmiar
mail_delete=Skasuj wybrane wiadomo禼i
mail_compose=Utw髍z now wiadomo舵
mail_return=skrzynki u縴tkownika
mail_pos=Wiadomo禼i od $1 do $2 z $3
mail_none=Brak wiadomo禼i w&nbsp;tej skrzynce
mail_ecannot=Nie masz uprawnie do czytania poczty tego u縴tkownika
mail_all=Wybierz wszystko
mail_invert=Odwr箧 zaznaczenia
mail_search=Znajd wiadomo禼i, w&nbsp;kt髍ych
mail_body=Tre舵
mail_match=zawiera
mail_ok=Szukaj
mail_nonefrom=Brak

view_title=Czytaj poczt
view_desc=Wiadomo舵 $1 w&nbsp;$2
view_sent=Wiadomo舵 $1 na li禼ie poczty wys砤nej
view_qdesc=Wiadomo舵 w&nbsp;kolejce $1
view_headers=Nag丑wki wiadomo禼i
view_attach=Za潮czniki
view_reply=Odpowiedz
view_reply2=Odpowiedz wszystkim
view_enew=Edytuj jako now
view_forward=Przeka dalej
view_delete=Skasuj
view_ecannot=Nie masz uprawnie do czytania poczty tego u縴tkownika

compose_title=Utw髍z wiadomo舵
reply_title=Odpowiedz na wiadomo舵
forward_title=Przeka dalej
reply_headers=Nag丑wki wiadomo禼i
reply_attach=Przekazywane za潮czniki
reply_attach2=Za潮czniki
reply_send=Wy秎ij
reply_ecannot=Nie masz uprawnie do czytania poczty jako ten u縴tkownik

send_err=Nie uda硂 si wys砤 wiadomo禼i
send_eto=Brak adresu docelowego
send_efrom=Brak adresu 紃骴硂wego
send_title=Wiadomo舵 wys砤na
send_ok=Wiadomo舵 pomy秎nie wys砤na do $1
send_ecannot=Nie masz uprawnie do wysy砤nia poczty jako ten u縴tkownik
send_esmtp=Polecenie SMTP $1 zako馽zy硂 sie b酬dem : $2
send_efile=Plik za潮cznika $1 nie istnieje
send_eattach=１czny rozmiar za潮cznik體 nie mo縠 przekracza $1 kB.
send_eperms=U縴tkownik $1 nie ma uprawnie do czytania $2
send_eperms2=Nie masz uprawnie do wys砤nia pliku $1

delete_ecannot=Nie masz uprawnie do kasowania poczty tego u縴tkownika
delete_enone=Nie zaznaczono wiadomo禼i do skasowania

search_title=Wyniki poszukiwania
search_ecannot=Nie masz uprawnie do przeszukiwania poczty tego u縴tkownika
search_ematch=Musisz wprowadzi poszukiwany tekst
search_none=Nie znaleziono 縜dnej wiadomo禼i
search_results=Wiadomo禼i zawieraj眂e "$1" ..

file_title=Zmie plik Sendmaila
file_desc=U縴j pola tekstowego poni縠j do r阠znej zmiany pliku Sendmaila $1.
file_undo=Cofnij zmiany
file_edit=Modyfikuj r阠znie $1
file_ealiases=Plik alias體 mo縠sz zmienia jedynie gdy masz dost阷 do wszystkich alias體.
file_evirtusers=Plik podstawiania adres體 mo縠sz zmienia jedynie gdy masz dost阷 do do wszystkich podstawie adres體.
file_emailers=Nie masz uprawnie do modyfikacji pliku routingu wed硊g domen.
file_egenerics=Plik adres體 wychodz眂ych mo縠sz zmienia jedynie gdy masz dost阷 do wszystkich adres體 wychodz眂ych.
file_edomains=Nie masz uprawnie do modyfikacji pliku podstawiania domen.
file_eaccess=Nie masz uprawnie do modyfikacji pliku kontroli spamu.
file_emode=Nieznany tryb!
file_err=Nie uda硂 si zmodyfikowa pliku

acl_opts=Mo縠 zmienia konfiguracj modu硊?
acl_cws=Mo縠 zmienia domeny lokalne?
acl_masq=Mo縠 konfiguowa maskowanie domen?
acl_trusts=Mo縠 zmienia zaufanych u縴tkownik體?
acl_cgs=Mo縠 zmienia domeny wychodz眂e?
acl_relay=Mo縠 zmienia przekazywanie z/do domen?
acl_mailers=Mo縠 konfigurowa routing wed硊g domen?
acl_access=Mo縠 konfigurowa kontrol spamu?
acl_domains=Mo縠 konfigurowa podstawianie domen?
acl_stop=Mo縠 zatrzymywa i uruchamia Sendmaila?
acl_mailq=Mo縠 zarz眃za kolejk poczty?
acl_viewdel=Przegl眃 i usuwanie
acl_view=Tylko przegl眃anie
acl_virtusers=Podstawienia adres體, kt髍e ten u縴tkownik mo縠 zmienia
acl_none=痑dne
acl_same=U縴tkownika o&nbsp;tej samej nazwie
acl_all=Wszystkie
acl_matching=Wg wzorca
acl_vtypes=Rodzaje podstawie adres體, kt髍e u縴tkownik mo縠 zmienia
acl_vtype0=Generacja b酬du
acl_vtype1=Dla domeny
acl_vtype2=Dla adresu
acl_vmax=Maksymalna ilo舵 podstawie adres體
acl_unlimited=Bez ogranicze
acl_aliases=Aliasy, kt髍e ten u縴tkownik mo縠 zmienia
acl_atypes=Typy alias體, kt髍e ten u縴tkownik mo縠 zmienia
acl_atype1=Adres e-mail
acl_atype2=Adresy z pliku
acl_atype3=Zapisz do pliku
acl_atype4=Przekieruj do programu
acl_atype5=Automatyczna odpowied
acl_amax=Maksymalna liczba alias體
acl_outgoing=Adresy wychodz眂e, kt髍e ten u縴tkownik mo縠 zmienia
acl_read=U縴tkownicy, kt髍ych poczta mo縠 by czytana
acl_users=Tylko u縴tkownicy
acl_userse=Opr骳z u縴tkownik體
acl_usersg=Cz硂nkowie grupy 
acl_from=Dozwolone adresy 紃骴硂we
acl_any=Dowolny adres
acl_fdoms=Skrzynka @ domeny
acl_faddrs=Wymienione adresy
acl_fdom=Dowolny adres @ domena
acl_apath=Ograniczy pliki i&npsp;programy do umieszczonych w&npsp;katalogu
acl_attach=Maksymalny 潮czny rozmiar za潮cznik體
acl_sent=Przechowywa wys砤n poczt w&nbsp;skrzynce

log_opts=Zmieniono opcje Sendmaila
log_alias_create=Utworzono alias $1
log_alias_modify=Zmieniono alias $1
log_alias_delete=Usuni阾o alias $1
log_alias_manual=R阠znie zmodyfikowano plik alias體 $1
log_cws=Zmieniono domeny lokalne
log_masq=Zmieniono maskowanie domen
log_trusts=Zmieniono zaufanych u縴tkownik體
log_virtuser_create=Utworzono podstawienie dla adresu $1
log_virtuser_modify=Zmieniono podstawienie dla adresu $1
log_virtuser_delete=Usuni阾o podstawienie dla adresu $1
log_virtuser_manual=R阠znie zmodyfikowano plik podstawie adres體 $1
log_mailer_create=Utworzono routing dla domeny $1
log_mailer_modify=Zmieniono routing dla domeny $1
log_mailer_delete=Usuni阾o routing dla domeny $1
log_mailer_manual=R阠znie zmodyfikowano plik routingu wg domen $1
log_generic_create=Utworzono adres wychodz眂y $1
log_generic_modify=Zmieniono adres wychodz眂y $1
log_generic_delete=Usuni阾o adres wychodz眂y $1
log_generic_manual=R阠znie zmodyfikowano plik adres體 wychodz眂ych $1
log_cgs=Zmieniono domeny wychodz眂e
log_domain_create=Utworzono podstawienie dla domeny $1
log_domain_modify=Zmieniono podstawienie dla domeny $1
log_domain_delete=Usuni阾o podstawienie dla domeny $1
log_domain_manual=R阠znie zmodyfikowano plik podstawie dla domen $1
log_access_create=Utworzono regu酬 kontroli spamu dla $1
log_access_modify=Zmieniono regu酬 kontroli spamu dla $1
log_access_delete=Usuni阾o regu酬 kontroli spamu dla $1
log_access_manual=R阠znie zmodyfikowano plik kontroli spamu $1
log_relay=Zmieniono przekazywanie poczty wg domen
log_flushq=Opr罂niono kolejk poczty
log_delmailq=Usuni阾o wiadomo舵 $1 z&nbsp;kolejki
log_delmailqs=Usuni阾o $1 wiadomo禼i z&nbsp;kolejki
log_stop=Zatrzymano serwer Sendmaila
log_start=Uruchomiono serwer Sendmaila
log_delmail=Usuni阾o $1 wiadomo禼i z&nbsp;$2
log_send=Wys砤no wiadomo舵 do $1

match_from=From: pasuje
match_subject=Subject: pasuje
match_to=To: pasuje
match_cc=Cc: pasuje
match_date=Date: pasuje
match_body=Tre舵 pasuje
match_size=Rozmiar jest wi阫szy ni
  0707010005f322000081a40000000000000002000000013ac0389c000051d2000000200000000000000000000000000000001700000003reloc/sendmail/lang/pt    index_title=Configura玢o do Sendmail
index_econfig=O ficheiro de configura玢o do sendmail $1 n鉶 existe. Talvez a <a href='$2'>configura玢o do m骴ulo</a> esteja incorreta.
index_eversion=O ficheiro de configura玢o do sendmail n鉶 aparenta pertencer  ultima vers鉶 do sendmail. O Webmin apenas suporta a vers鉶 8.8 ou superior.
index_return=configura玢o do sendmail
index_stop=Parar o Sendmail
index_stopmsg=Clique neste bot鉶 para parar o processo em curso do sendmail. Desta forma, n鉶 poder ser distribuido correio de utilizadores locais para outros sistemas, al閙 de impossibilitar o uso deste sistema como servidor de correio.
index_start=Iniciar o Sendmail
index_startmsg=Clique neste bot鉶 para iniciar o Sendmail com o comando $1. At que isto seja feito, o correio n鉶 poder ser distribuido de utilizadores locais para outros sistemas, al閙 de n鉶 se poder usar este sistema como um servidor de correio.

opts_title=Op珲es do Sendmail
opts_ecannot=Voc n鉶 est autorizado para editar as op珲es do sendmail
opts_ds=Enviar correio de sa韉a via anfitri鉶
opts_direct=Distribuir directamente
opts_dr=Remeter nomes de utilizadores n鉶 qualificados para o anfitri鉶
opts_dh=Remeter correio para utilizadores locais para o anfitri鉶
opts_local=Entregar localmente
opts_queuela=M閐ia de carga m醲ima para enviar
opts_refusela=M閐ia de carga m醲ima para receber
opts_maxch=N鷐ero m醲imo de processos filhos
opts_throttle=Liga珲es m醲imas / segundo
opts_minqueueage=Tempo m韓imo antes de voltar a tentar enviar
opts_runsize=Tamanho m醲imo da fila
opts_queuereturn=Tempo antes de desistir
opts_queuewarn=Tempo antes de enviar aviso
opts_queue=Direct髍io de fila de correio
opts_postmaster=Enviar mensagens de erro para
opts_forward=Ficheiros de redirecionamento de utilizador
opts_minfree=Espa鏾 m韓imo livre em disco
opts_maxmessage=Tamanho m醲imo da mensagem
opts_loglevel=N韛el de historial
opts_mimebounce=Colocar codifica玢o-MIME nas mensagens?
opts_default=Predefinido
opts_save=Guardar e Aplicar
opts_err=Erro ao guardar op珲es
opts_ehost='$1' n鉶  um anfitri鉶 ou nome de dom韓io v醠ido
opts_einvalid='$1' n鉶  um valor v醠ido para '$2'
opts_blocks=blocks
opts_bytes=bytes

aliases_title=Aliases de Correio
aliases_ecannot=Voc n鉶 est autorizado para editar aliases
aliases_addr=Enderesso
aliases_to=Alias para..
aliases_type1=Endere鏾 $1
aliases_type2=Endere鏾s no ficheiro $1
aliases_type3=Ficheiro $1
aliases_type4=Programa $1
aliases_none=Nenhuma
aliases_return=lista de aliases

aform_type0=Nenhuma
aform_type1=Endere鏾 de email
aform_type2=Endere鏾s no ficheiro
aform_type3=Escrever para o ficheiro
aform_type4=Alimentar programa
aform_edit=Editar Alias
aform_create=Criar Alias
aform_name=Endere鏾
aform_enabled=Activado?
aform_val=Alias para

asave_err=Erro ao guardar alias
asave_ecannot2=Voc n鉶 est autorizado para editar aliases
asave_ecannot=Voc n鉶 est autorizado para editar esta alias
asave_emax=Voc n鉶 est autorizado para criar mais do que $1 aliases
asave_eaddr='$1' n鉶  um endere鏾 v醠ido
asave_ealready=J existe uma alias para '$1'
asave_ematch=Voc apenas est autorizado para criar aliases que coincidam com '$1'
asave_etype=Voc n鉶 pode criar aliases deste tipo
asave_etype1='$1' n鉶  um endere鏾 de e-mail v醠ido
asave_etype2=O ficheiro de endere鏾s $1 n鉶 existe
asave_etype3='$1' n鉶  um nome de ficheiro v醠ido
asave_etype4='$1' n鉶  um programa ou n鉶 existe
asave_etype4none=N鉶 foi fornecido programa algum

cws_title=Dom韓ios Locais
cws_ecannot=Voc n鉶 est autorizado para editar dom韓ios locais
cws_domains=Dom韓ios manejados por este servidor
cws_desc1=Fora o correio para $1, o sendmail ir apenas aceitar para entrega local correio para os dom韓ios e nomes de anfitri鮡s listados na caixa de texto da esquerda. Se voc desejar que o seu servidor de correio maneje multiplos dom韓ios de email, eles ter鉶 de estar listados neste formul醨io.
cws_desc2=Note que o facto de apenas incluir um dom韓io na lista n鉶  geralmente o suficiente. Ter de ter a certeza que um registo de DNS para o dom韓io exista, e esteja apontado para o seu sistema.
cws_err=Erro ao guardar dom韓ios locais
cws_ehost='$1' n鉶  um anfitri鉶 ou nome de dom韓io v醠ido
cws_eip='$1'  um endere鏾 IP, n鉶 um dom韓io

masq_title=Domain Masquerading
masq_ecannot=You are not allowed to configure masquerading
masq_domain=Mascarar como dom韓io
masq_domains=Dom韓ios para serem mascarados
masq_desc1=Se introduzir um dom韓io em cima, o sendmail ir alterar os endere鏾s <tt>De (From)</tt> de forma a que todas as mensagens sa韉as aparentem vir desse dom韓io. Al閙 disso, qualquer mensagem de email que passe pelo seu sistema de um dos anfitri鮡s ou dom韓ios listados  esquerda ter鉶 tamb閙 os seus endere鏾s <tt>De (From)</tt> modificados de igual forma. Note que qualquer m醩cara de dom韓io definida aqui pode ser ultrapassada para utilizadores espec韋icos usando a p醙ina de <a href='$1'>Endere鏾s de Sa韉a</a>.
masq_desc2=Esta caracter韘tica pode ser 鷗il se voc desejar que o email do seu sistema aparente vir do nome do seu dom韓io em vez do nome do seu anfitri鉶, ou se o seu sistema  o hub de correio para outros anfitri鮡s correndo os seus servidores de correio.
masq_err=Failed to save domain masquerading
masq_edomain='$1' n鉶  um dom韓io a mascarar v醠ido
masq_ehost='$1' n鉶  um anfitri鉶 ou nome de dom韓io v醠ido
masq_eip='$1'  um endere鏾 IP, n鉶 um dom韓io

trusts_title=Utilizadores de Confian鏰
trusts_ecannot=Voc n鉶 est autorizado para editar utilizadores de confian鏰
trusts_users=Utilizadores locais em que o sendmail confia
trusts_desc=Se um utilizador local tentar enviar email, o sendmail apenas permitir que o utilizador ministre um endere鏾 <tt>De: (From:)</tt> diferente se o utilizador estiver na lista da esquerda. Esta restri玢o existe para prevenir que utilizadores forgem o email com endere鏾s <tt>De: (From:)</tt> falsos com origem no seu servidor.
trusts_err=Erro ao guardar utilizadores de confian鏰
trusts_euser='$1' n鉶  um utilizador v醠ido

virtusers_title=Mapeamento de Endere鏾s
virtusers_ecannot=Voc n鉶 est autorizado para editar mapeamento de endere鏾s
virtusers_edirective=O ficheiro de configura玢o do sendmail n鉶 cont閙 a directiva necess醨ia para mapeamento de endere鏾s.
virtusers_efile=O ficheiro de texto $1 do qual a base de dados de mapeamento de endere鏾s $2  constru韉a n鉶 existe. Talvez voc necessite de modificar a <a href='$3'>configura玢o do m骴ulo</a> para usar o caminho correcto.
virtusers_desc1=Os mapeamentos de endere鏾s s鉶 similares 鄐 <a href='$1'>aliases</a>, mas s鉶 mais adequados para um sistema que trabalha com dom韓ios de correio multiplos. Os mapeamentos podem ser usados para redirecionar correio para um dom韓io completo a um s endere鏾, suportar utilizadores com o mesmo nome em diferentes dom韓io ou mapear todo o correio de um dom韓io para outro.
virtusers_desc2=Note que voc tem que ter um entrada na tabela de <a href='$1'>dom韓ios locais</a> para quaisquer dom韓ios usados para mapeamento de endere鏾s, e deve existir um registo MX (Mail eXchange) do DNS para cada dom韓io apontado para o seu sistema.
virtusers_for=Correio para..
virtusers_to=Enviar para..
virtusers_error=Erro $1
virtusers_domain=Dom韓io $1
virtusers_address=Endere鏾 $1
virtusers_return=lista de mapeamento de endere鏾s

vform_edit=Editar Mapeamento
vform_create=Criar Mapeamento
vform_for=Correio para
vform_address=Endere鏾
vform_domain=Dom韓io
vform_to=Enviar para
vform_error=Devolver erro
vform_ecannot=Voc n鉶 est autorizado para editar este mapeamento de endere鏾s

vsave_ecannot=Voc n鉶 est autorizado para editar mapeamentos de endere鏾s
vsave_ecannot2=Voc n鉶 est autorizado para editar este mapeamento de endere鏾s
vsave_emax=Voc n鉶 est autorizado para criar mais do que $1 mapeamentos de endere鏾s
vsave_err=Erro ao guardar mapeamento de endere鏾s
vsave_efrom='$1' n鉶  um endere鏾 v醠ido
vsave_efromdup=J est definido um mapeamento de endere鏾s para '$1'
vsave_edom='$1' n鉶  um dom韓io v醠ido
vsave_edomdup=J est definido um mapeamento de endere鏾s para '$1'
vsave_ematch=O endere鏾 de origem n鉶 coincide com '$1'
vsave_ecannot3=Voc n鉶 est autorizado para criar mapeamentos para endere鏾s
vsave_eaddr='$1' n鉶  um endere鏾 v醠ido
vsave_ecannot4=Voc n鉶 est autorizado para criar mapeamentos para dom韓ios
vsave_edomdom=Apenas um dom韓io pode ser mapeado para outro dom韓io
vsave_ecannot5=Voc n鉶 est autorizado para criar mapeamentos que devolvam um erro

mailers_title=Routing de Dom韓ios
mailers_cannot=Voc n鉶 est autorizado para editar routing de dom韓ios
mailers_edirective=O ficheiro de configura玢o do sendmail n鉶 cont閙 a directiva necess醨ia para routing de dom韓ios.
mailers_efile=O ficheiro de texto $1 do qual a base de dados de routing de dom韓ios $2  constru韉a n鉶 existe. Talvez voc necessite de modificar a <a href='$3'>configura玢o do m骴ulo</a> para usar o caminho correcto.
mailers_desc1=O routing de dom韓ios proporciona a defini玢o de um m閠odo de transfer阯cia especial de envio de correio para certos dom韓ios.Isto pode ser 鷗il se o seu sistema  um gateway para servidores que n鉶 s鉶 alcan鏰dos de fora da sua rede, ou se voc quiser for鏰r que todo o correio para um dom韓io em particular seja expedido por outro servidor.
mailers_desc2=Voc <b>n鉶</b> deve ter uma entrada na lista de <a href='$1'>dom韓ios locais</a> para quaisquer dom韓ios em routing. De qualquer forma, voc dever ter um registo MX do DNS apontando para o seu sistema qualquer dom韓io que seja um gateway para ele.
mailers_for=Correio para..
mailers_delivery=Entrega
mailers_to=Enviar para..
mailers_return=lista de routing de dom韓ios

mform_edit=Editar Routing
mform_create=Criar Routing
mform_for=Correio para
mform_host=Anfitri鉶
mform_domain=Dom韓io
mform_delivery=Entrega
mform_to=Enviar para
mform_ignore=Ignorar MX para entrega SMTP
mform_smtp=SMTP
mform_esmtp=SMTP extendido
mform_smtp8=SMTP de 8-bit
mform_relay=SMTP relay
mform_local=Utilizador local
mform_prog=Alimentar programa
mform_uucp=UUCp
mform_usenet=Correio para USENET
mform_fax=HylaFAX
mform_pop=POP3
mform_procmail=Procmail
mform_mail11=DECnet mail11
mform_error=Erro
mform_ecannot=Voc n鉶 est autorizado para editar routing de dom韓ios

msave_ecannot=Voc n鉶 est autorizado para guardar routing de dom韓ios
msave_err=Erro ao guardar routing de dom韓ios
msave_edomain='$1' n鉶  um anfitri鉶 ou dom韓io v醠ido
msave_edup=J est definido um routing de dom韓io para '$1'

generics_title=Endere鏾s de Sa韉a
generics_cannot=Voc n鉶 est autorizado para editar endere鏾s de sa韉a
generics_econfig=O ficheiro de configura玢o do sendmail n鉶 cont閙 a directiva necess醨ia para endere鏾s de sa韉a.
generics_efile=O ficheiro de texto $1 do qual a base de dados de endere鏾s de sa韉a $2  constru韉a n鉶 existe. Talvez voc necessite de modificar a <a href='$3'>configura玢o do m骴ulo</a> para usar o caminho correcto.
generics_desc1=O mapeamento de endere鏾s de sa韉a permite-lhe modificar os endere鏾s <tt>De: (From:)</tt> do correio que sai do seu sistema ou atrav閟 do seu sistema por outros anfitri鮡s na sua rede local. Isto pode ser 鷗il se voc est a alojar m鷏tiplos dom韓ios no seu sistema e que o correio de alguns utilizadores aparentem vir de um dom韓io diferente.
generics_desc2=Note que voc tem que ter uma entrada na tabela de <a href='$1'>dom韓ios de sa韉a</a> para cada dom韓io em que h endere鏾s que voc queira mapear. Tenha em conta tamb閙 que o mapeamento de endere鏾s de sa韉a n鉶 funciona para correio que seja entregue para utilizadores locais.
generics_from=Correio de..
generics_to=Alterar para..
generics_return=lista de mapeamento de endere鏾s

gform_edit=Editar Mapeamento
gform_create=Criar Mapeamento
gform_from=Correio de
gform_to=Alterar para
gform_ecannot=Voc n鉶 est autorizado para editar este endere鏾 de sa韉a

gsave_ecannot=Voc n鉶 est autorizado para editar endere鏾s de sa韉a
gsave_ecannot2=Voc n鉶 est autorizado para editar este endere鏾 de sa韉a
gsave_err=Erro ao guardar endere鏾 de sa韉a
gsave_efrom='$1' n鉶  um endere鏾 'de' (from) v醠ido
gsave_ematch=O endere鏾 'de' (from) n鉶 coincide com '$1'
gsave_eto='$1' n鉶  um novo enedere鏾 v醠ido

cgs_title=Dom韓io de Sa韉a
cgs_ecannot=Voc n鉶 est autorizado para editar dom韓ios de sa韉a
cgs_header=Dom韓ios de endere鏾s de sa韉a
cgs_desc=Fora o correio enviado por utilizadores locais, o sendmail apenas realizar o mapeamento de <a href='$1'>endere鏾s de sa韉a</a> para correio de anfitri鮡s ou dom韓ios listados na caixa de texto da direita. Assim, para que uma entrada de endere鏾 de sa韉a funcione, o dom韓io presente no endere鏾 'de' (from) tem de estar inclu韉o nesta lista.
cgs_err=Erro ao guardar dom韓ios de sa韉a
cgs_ehost='$1' n鉶  um nome de anfitri鉶 ou de dom韓io v醠ido
cgs_eip='$1'  um endere鏾 IP, n鉶 um dom韓io

domains_title=Mapeamento de Dom韓io
domains_ecannot=Voc n鉶 est autorizado para editar mapeamento de dom韓io
domains_econfig=O ficheiro de configura玢o do sendmail n鉶 cont閙 a directiva necess醨ia para mapeamento de dom韓io.
domains_efile=O ficheiro de texto $1 do qual a base de dados de mapeamento de endere鏾s $2  constru韉a n鉶 existe. Talvez voc necessite de modificar a <a href='$3'>configura玢o do m骴ulo</a> para usar o caminho correcto.
domains_desc=O mapeamento de dom韓io modifica o endere鏾 <tt>Para (To:)</tt> das mensagens enviadas de, passadas por relay ou entregues a utilizadores no seu sistema. Os endere鏾s <tt>Para (From:)</tt> de mensagens passadas por relay ou para utilizadores locais tamb閙 s鉶 mofificadas. Isto pode ser 鷗il se o nome do seu dom韓io for alterado e quiser alterar todas as ocorr阯cias do dom韓io antigo para o novo.
domains_from=Do dom韓io..
domains_to=Para o dom韓io..
domains_return=lista de mapeamento de dom韓ios

dform_edit=Editar Mapeamento
dform_create=Criar Mapeamento
dform_from=Do dom韓io
dform_to=Para o dom韓io
dform_ecannot=Voc n鉶 est autorizado para editar mapeamento de dom韓ios

dsave_ecannot=Voc n鉶 est autorizado para editar mapeamento de dom韓ios
dsave_err=Erro ao guardar mapeamento de dom韓io
dsave_edomain='$1' n鉶  um nome de dom韓io v醠ido

access_title=Controle de Spam
access_ecannot=Voc n鉶 est autorizado para configurar o controle de spam
access_econfig=O ficheiro de configura玢o do sendmail n鉶 cont閙 a directiva necess醨ia para controle de spam.
access_efile=O ficheiro de texto $1 do qual a base de dados de mapeamento de endere鏾s $2  constru韉a n鉶 existe. Talvez voc necessite de modificar a <a href='$3'>configura玢o do m骴ulo</a> para usar o caminho correcto.
access_desc1=A caracter韘tica de controle de spam do sendmail permite-lhe prevenir que o correio n鉶 desejado chegue aos seus utilizadores atrav閟 da rejei玢o de correio de certos endere鏾s e prevenir que spammers usem o seu sistema para enviar correio por relay. Por defeito, o sendmail aceitar correio de qualquer endere鏾 para um utilizador local, mas previne que qualquer cliente ou servidor de correio envie correio por relay atrav閟 do seu sistema. Em princ韕io voc ir adicionar regras de controle de spam para rejeitar correio de spammers e regras para permitir que outras m醧uinas na sua rede que enviem correio por relay atrav閟 do seu sistema.
access_desc2=Note que o sendmail permitir, por defeito, que clientes de correio que correm no seu sistema enviem correio via SMTP para qualquer destino. Desta forma, n鉶  necess醨io adicionar a rede local <tt>127.0.0</tt>  lista dos est鉶 autorizados para enviar correio atrav閟 do seu sistema.
access_source=Emissor..
access_action=Ac玢o..
access_return=lista de controlo de spam

sform_edit=Editar Regra de Controlo de Spam
sform_create=Criar Regra de Controlo de Spam
sform_source=Fonte de correio
sform_type0=Endere鏾 de Email
sform_type1=Rede
sform_type2=Utilizador
sform_type3=Dom韓io
sform_action=Ac玢o
sform_ok=Aceitar
sform_relay=Permitir relaying
sform_reject=Rejeitar
sform_discard=Descartar silenciosamente
sform_err=C骴igo de erro
sform_msg=Menssagem
sform_ecannot=Voc n鉶 est autorizado para configurar o controlo de spam

ssave_ecannot=Voc n鉶 est autorizado para configurar o controlo de spam
ssave_err=Erro ao guardar regra de controlo de spam
ssave_etype0='$1' n鉶  um endere鏾 v醠ido
ssave_etype1='$1' n鉶  um endere鏾 de rede v醠ido
ssave_etype2='$1' n鉶  um nome de utilizador v醠ido
ssave_etype3='$1' n鉶  um dom韓io v醠ido
ssave_ecode='$1' n鉶  um c骴igo de erro SMTP v醠ido

relay_title=Dom韓ios de Relay
relay_ecannot=Voc n鉶 est autorizado para editar dom韓ios de relay
relay_eversion=Apenas as vers鮡s 8.9 ou superior do sendmail suportam a caracter韘tica de dom韓ios de relay.
relay_domains=Dom韓ios autorizados a fazer relaying
relay_desc1=A n鉶 ser que seja permitido pelas regras do <a href='$1'>controlo de spam</a>, o sendmail permitir apenas o relaying aos dom韓ios listados na caixa de texto da esquerda. As mensagens de correio que chegam que n鉶 sejam para um utilizador local ou qualquer dos dom韓ios listados, ser鉶 rejeitados.s
relay_desc2=If your system is serving as a gateway for several domains that are not directly accessible from outside your network (using the <a href='$1'>domain routing</a> feature), then all those domains should be listed here.
relay_domains=Dom韓ios autorizados a fazer relaying
relay_err=Erro ao guardar dom韓ios de relay
relay_edomain='$1' n鉶  um nome de dom韓io v醠ido

mailq_title=Lista de espera de correio
mailq_ecannot=Voc n鉶 est autorizado para visualizar a lista de espera de correio
mailq_id=ID do Correio
mailq_sent=Enviado
mailq_from=De
mailq_to=Para
mailq_status=Estado
mailq_unknown=Desconhecido
mailq_sending=A Enviar
mailq_dmsg=Para ver uma mensagem da lista de correio, clique na sua ID na lista acima.
mailq_force=Para for鏰r a entrega imediato de correio em lista de espera, <a href='$1'>clique aqui</a>.
mailq_none=N鉶 h mensagens de correio neste momento em lista de espera para entraga
mailq_return=lista de espera de correio

flushq_title=Limpar Lista de Espera de Correio
flushq_desc=A for鏰r a tentativa de entrega de correio com o comando $1 ..

delq_err=Erro ao remover mensagem
delq_ecannot=Voc n鉶 est autorizado para retirar mensagens da lista de espera de correio
delq_locked=Neste momento est bloqueado para ser enviado

boxes_title=Caixas de Correio do Utilizador
boxes_user=Utilizador
boxes_size=Tamanho da caixa de correio
boxes_none=Sem correio
boxes_return=caixas de correio
boxes_ecannot=Voc n鉶 est autorizado para ler email

mail_title=Email do Utilizador
mail_from=De
mail_date=Data
mail_subject=Assunto
mail_to=Para
mail_cc=Cc
mail_for=Em $1
mail_compose=Compor novo correio
mail_return=email do utilizador
mail_ecannot=Voc n鉶 est autorizado para ler o correio deste utilizador

view_title=Ler Correio
view_desc=Mensagem $1 em $2
view_qdesc=Mensagem em lista de espera $1
view_headers=Caba鏰lhos de correio
view_attach=Anexos
view_reply=Responder ao autor
view_reply2=Responder a todos
view_forward=Reenviar
view_delete=Apagar
view_ecannot=Voc n鉶 est autorizado para ler o correio deste utilizador

compose_title=Compor Email
reply_title=Responder ao Email
forward_title=Reenviar Email
reply_headers=Cabe鏰lhos de Correio
reply_attach=Anexos Reenviados
reply_attach2=Anexos
reply_send=Enviar
reply_ecannot=Voc n鉶 est autorizado para enviar correio como sendo este utilizador

send_err=Erro ao enviar correio
send_eto=Falta o endere鏾 do destinat醨io
send_title=Correio enviado
send_ok=O correio foi enviado com sucesso para $1
send_ecannot=Voc n鉶 est autorizado para enviar correio como sendo este utilizador

acl_opts=Pode editar op珲es de sendmail?
acl_cws=Pode editar dom韓ios locais?
acl_masq=Pode configurar m醩caras de dom韓ios?
acl_trusts=Pode editar utilizadores de confian鏰?
acl_cgs=Pode editar dom韓ios de sa韉a?
acl_relay=Pode editar dom韓ios de relay?
acl_mailers=Pode configurar routing de dom韓ios?
acl_access=Pode configurar controlo de spam?
acl_domains=Pode configurar mapeamento de dom韓ios?
acl_stop=Pode iniciar e parar o sendmail?
acl_mailq=Pode administrar lista de espera de correio?
acl_viewdel=Ver e apagar
acl_view=Ver apenas
acl_virtusers=Mapeamentos de endere鏾s que este utilizador pode editar
acl_none=Nenhum
acl_all=Todos
acl_matching=Igual a
acl_vtypes=Tipos de mapeamentos de endere鏾s que este utilizador pode editar
acl_vtype0=Devolver erro
acl_vtype1=Para o dom韓io
acl_vtype2=Para o endere鏾
acl_vmax=Numero m醲imo de mapeamentos de endere鏾s
acl_unlimited=Ilimitado
acl_aliases=Aliases que este utilizador pode editar
acl_atypes=Tipos de aliases que este utilizador pode editar
acl_atype1=Endere鏾 de email
acl_atype2=Endere鏾s no ficheiro
acl_atype3=Escrever para o ficheiro
acl_atype4=Alimentar para o programa
acl_amax=N鷐ero m醲imo de aliases
acl_outgoing=Endere鏾s de sa韉a que este utilizador pode editar
acl_read=Utilizadores cujo correio pode ser lido
acl_users=Utilizadores
  0707010005f323000081a40000000000000002000000013ac0389d00004e37000000200000000000000000000000000000001a00000003reloc/sendmail/lang/ru_RU mform_smtp=SMTP
opts_minfree=惕. 疋钺钿眍 滂耜钼铄 镳铖蝠囗耱忸
access_return=耧桉铌 spam 觐眚痤
vsave_edomdom=翌朦觐 漕戾 祛驽 猁螯  镱漶蜞眍怅 漯筱铎 漕戾眢
cws_ehost='$1' 礤 怆弪 漕矬耱桁 桁屙屐 躅耱 桦 漕戾磬
acl_unlimited=湾钽疣龛麇眍
mform_host=疹耱
boxes_none=湾 镱黩
view_reply2=悟忮蜩螯 怦屐
cws_title=祟赅朦睇 念戾睇
flushq_desc=狸蜩忤玎鲨 镱稃蜿 漕耱噔觇 镱黩 觐爨礓铋 $1 ..
vform_domain=念戾
domains_econfig=锣 羿殡 觐眙桡箴圉梃 sendmail 礤 桁邋 礤钺躅滂祛 滂疱牝桠 潆 镱漶蜞眍怅 漕戾眍.
view_qdesc=杨钺龛 $1  铟屦邃
mform_pop=POP3
mform_usenet=项耠囹  USENET
aliases_type1=冷疱耋 $1
aform_name=冷疱
aliases_type2=冷疱襦  羿殡 $1
aliases_type3=脏殡 $1
aliases_type4=橡钽疣祆 $1
ssave_etype0='$1' 礤 怆弪 漕矬耱桁 噤疱耦
ssave_etype1='$1' 礤 怆弪 漕矬耱桁 噤疱耦 皴蜩
ssave_etype2='$1' 礤 怆弪 漕矬耱桁 桁屙屐 镱朦珙忄蝈
ssave_etype3='$1' 礤 怆弪 漕矬耱桁 漕戾眍
opts_direct=橡爨 漕耱噔赅
delq_locked=青犭铌桊钼囗 潆 铗覃腙
mform_smtp8=8-徼 SMTP
acl_access=填驽 疱溧牝桊钼囹 spam 觐眚痤朦?
dform_edit=绣溧牝桊钼囗桢 项漶蜞眍怅
mailq_sent=项耠囹
send_ecannot=锣 礤 疣琊屮屙 铗覃豚螯 镱黩  赅麇耱忮 溧眄钽 镱朦珙忄蝈
vsave_edomdup=项漶蜞眍怅 噤疱襦 潆 '$1' 箧 铒疱溴脲磬
sform_relay=朽琊屮栩 蝠囗耠鲨
mform_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 漕戾眄簋 爨瘌痼蜩玎鲨
acl_amax=锑犟桁嚯铄 麒耠 锺邂漕龛祛
virtusers_to=项耠囹 磬..
mailq_unknown=湾桤忮耱眍
vsave_emax=锣 礤 疣琊屮屙 耦玟噔囹 犷脲 $1 噤疱耥 镱漶蜞眍忸
cws_desc1=署铎 镱黩 潆 $1, sendmail 潆 腩赅朦眍 漕耱噔觇 镱黩 狍溴 屮 镳桧桁囹 耦钺龛 蝾朦觐 潆 漕戾眍  躅耱钼 镥疱麒耠屙睇  蝈犟蝾忸 镱脲 耠邂. 篷腓 恹 躅蜩蝈, 黩钺 忄 镱黩钼 皴疴屦 钺疣徉螓忄 祉铈羼蜮 镱黩钼 漕戾眍, 怦 铐 漕腈睇 猁螯 镥疱麒耠屙  铎 镱脲 (/ 镳钺咫/镥疱忸潲 耱痤觇).
cws_desc2=青戾螯蝈, 黩 镳铖蝾 箨噻囗桢 漕戾磬  溧眄铎 耧桉赍 钺眍 礤漕耱囹铟眍. 蔓 漕腈睇 蜞赕 猁螯 筲屦屙, 黩 耋耱怏弪 DNS 玎镨顸 潆 溧眄钽 漕戾磬   铐 箨噻噱 磬 忄 耔耱屐.
opts_queuela=锑犟. 耩邃 玎沭箸赅 潆 铗覃腙
acl_read=项朦珙忄蝈腓, 鼽 镱黩 祛驽 猁螯 镳铟栩囗
vform_address=冷疱
mailq_title=项黩钼 西屦邃
asave_err=硒栳赅 耦躔囗屙 锺邂漕龛爨
mform_relay=SMTP 蝠囗耠蝾
opts_err=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼
reply_send=悟铖豚螯
sform_edit=绣溧牝桊钼囗桢 橡噔桦 Spam 暑眚痤
reply_attach=襄疱覃豚屐 怅膻麇龛
msave_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 漕戾眄簋 爨瘌痼蜩玎鲨
sform_action=腻轳蜮桢
mail_for= $1
cgs_ehost='$1' 礤 怆弪 漕矬耱桁 桁屙屐 躅耱 桦 漕戾磬
trusts_users=祟赅朦睇 镱朦珙忄蝈腓,<br> 觐蝾瘥 漕忮弪 sendmail
mailers_to=项耠囹 磬..
mailq_id=ID 耦钺龛
cgs_title=锐躅 念戾睇
send_ok=项黩 篑镥 铗镳噔脲磬 潆 $1
access_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 spam 觐眚痤朦
domains_return=耧桉铌 漕戾眄 镱漶蜞眍忸
generics_cannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹  桉躅  噤疱襦
delq_ecannot=锣 礤 疣琊屮屙 筢桊囹 耦钺龛 桤 铟屦邃
domains_from=如 漕戾磬..
msave_edup=念戾眄 爨瘌痼蜩玎鲨 潆 '$1' 箧 铒疱溴脲磬
view_reply=悟忮蜩螯
trusts_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 漕忮疱眄 镱朦珙忄蝈脲
reply_headers=项黩钼 玎泐腩怅
ssave_err=硒栳赅 镳 耦躔囗屙梃 镳噔桦 spam 觐眚痤
acl_vtype0=骂玮疣 铠栳觇
acl_vtype1=碾 漕戾磬
acl_vtype2=碾 噤疱襦
acl_matching=杨怙噤帼 
relay_title=念戾眄 茵囗耠鲨
domains_desc=念戾眄 镱漶蜞眍怅 桤戾弪 <tt>To:</tt> 噤疱 耦钺龛 铗覃豚屐 忸忭, 蝠囗耠桊箦禧 麇疱 桦 漕耱噔屐 镱朦珙忄蝈 忄 耔耱屐. <tt>From:</tt> 噤疱 蝠囗耠桊箦禧 耦钺龛 桦 耦钺龛 腩赅朦睇 镱朦珙忄蝈 蜞赕 桤戾弪. 蒡 祛驽 猁螯 镱脲珥 羼腓 忄 漕戾眄铄 桁 桤戾龛腩顸  恹 躅蜩蝈 桤戾龛螯 怦 镱镟溧桢  忄 耱囵 桁屙 漕戾磬 磬 眍恹.
mailq_to=碾
mform_delivery=念耱噔赅
acl_vtypes=诣稃 噤疱耥 镱漶蜞眍忸, 疱溧牝桊箦禧 溧眄 镱朦珙忄蝈脲
mform_local=祟赅朦眍泐 镱朦珙忄蝈
generics_efile=义犟蝾恹 羿殡 $1 桤 觐蝾痤泐 耱痤栩 徉玎 溧眄 桉躅 噤疱耦 $2 礤 耋耱怏弪. 骂珈铈眍 忄 礤钺躅滂祛 桤戾龛螯 <a href='$3'>觐眙桡箴圉棹 祛潴</a> 潆 篑蜞眍怅 觐痧尻蝽钽 矬蜩.
index_stop=务蜞眍忤螯 Sendmail
mform_fax=HylaFAX
gform_edit=绣溧牝桊钼囗桢 项漶蜞眍忸
view_forward=襄疱耠囹
sform_source=项黩钼 桉蝾黜桕
relay_desc1=篷腓 礤 疣琊屮屙  镳噔桦圊 <a href='$1'>spam 觐眚痤</a>, sendmail 镱玮铍栩 铖簌羼蜮螯 蝠囗耠鲨  漕戾睇 镥疱麒耠屙睇  镱脲 耠邂. 迈钿 镱黩钼 耦钺龛 礤 镳邃磬珥圜屙睇 潆 腩赅朦眍泐 镱朦珙忄蝈 桦 潆 钿眍泐 桤 镥疱麒耠屙睇 漕戾眍 狍潴 铗狃铠屙.
relay_desc2=篷腓 忄 耔耱屐 趔黻鲨铐桊箦 赅  潆 礤耜铍桴 漕戾眍, 觐蝾瘥 礤漕耱箫睇 磬镳祗 桤忭 忄 皴蜩 (桉镱朦珞 趔黻鲨 <a href='$1'>漕戾眄铋 爨瘌痼蜩玎鲨</a>), 蝾沅 怦  漕戾睇 漕腈睇 猁螯 镥疱麒耠屙 玟羼.
dsave_err=硒栳赅 镳 耦躔囗屙梃 漕戾眄铋 镱漶蜞眍怅
virtusers_efile=义犟蝾恹 羿殡 $1 桤 觐蝾痤泐 耱痤栩 徉玎 溧眄 镱漶蜞眍怅 噤疱耦 $2 礤 耋耱怏弪. 骂珈铈眍 忄 礤钺躅滂祛 桤戾龛螯 <a href='$3'>觐眙桡箴圉棹 祛潴</a> 潆 篑蜞眍怅 觐痧尻蝽钽 矬蜩.
mform_mail11=DECnet mail11
acl_view=翌朦觐 镳铖祛蝠
vform_to=项耠囹 磬
domains_efile=义犟蝾恹 羿殡 $1 桤 觐蝾痤泐 耱痤栩 徉玎 溧眄 镱漶蜞眍忸 $2 礤 耋耱怏弪. 骂珈铈眍 忄 礤钺躅滂祛 桤戾龛螯 <a href='$3'>觐眙桡箴圉棹 祛潴</a> 潆 篑蜞眍怅 觐痧尻蝽钽 矬蜩.
gsave_ecannot2=锣 礤 疣琊屮屙 疱溧牝桊钼囹 铗 桉躅 噤疱
opts_runsize=锑犟. 疣珈屦 铟屦邃
acl_all=埋
asave_etype=蔓 礤 祛驽蝈 耦玟噔囹 锺邂漕龛禧 溧眄钽 蜩镟
acl_masq=填驽 觐眙桡箴桊钼囹 漕戾眄簋 爨耜桊钼牦?
ssave_ecode='$1' 礤 怆弪 漕矬耱桁 觐漕 SMTP 铠栳觇
acl_vmax=锑犟桁嚯铄 麒耠 噤疱耥 镱漶蜞眍忸
access_efile=义犟蝾恹 羿殡 $1 桤 觐蝾痤泐 耱痤栩 徉玎 溧眄 漕耱箫 $2 礤 耋耱怏弪. 骂珈铈眍 忄 礤钺躅滂祛 桤戾龛螯 <a href='$3'>觐眙桡箴圉棹 祛潴</a> 潆 篑蜞眍怅 觐痧尻蝽钽 矬蜩.
vsave_ematch=冷疱 桉蝾黜桕 礤 耦怙噤噱  '$1'
acl_outgoing=锐躅 噤疱襦, 疱溧牝桊箦禧 溧眄 镱朦珙忄蝈脲
vsave_ecannot2=锣 礤 疣琊屮屙 疱溧牝桊钼囹 溧眄簋 镱漶蜞眍怅 噤疱耦
vsave_ecannot3=锣 礤 疣琊屮屙 耦玟噔囹 镱漶蜞眍怅 磬 噤疱襦
vsave_ecannot4=锣 礤 疣琊屮屙 耦玟噔囹 镱漶蜞眍怅 磬 漕戾睇
vsave_ecannot5=锣 礤 疣琊屮屙 耦玟噔囹 镱漶蜞眍怅 觐蝾瘥 忸玮疣 铠栳牦
vform_edit=绣溧牝桊钼囗桢 项漶蜞眍怅
mailq_return=镱黩钼簋 铟屦邃
sform_ok=橡桧螯
send_err=硒栳赅 镳 铗覃腙 镱黩
asave_ealready=像邂漕龛 潆 '$1' 箧 耋耱怏弪
send_eto=悟耋蝰蜮箦 噤疱 <tt>碾</tt>
mailers_efile=义犟蝾恹 羿殡 $1 桤 觐蝾痤泐 耱痤栩 徉玎 溧眄 漕戾眄铋 爨瘌痼蜩玎鲨 $2 礤 耋耱怏弪. 骂珈铈眍 忄 礤钺躅滂祛 桤戾龛螯 <a href='$3'>觐眙桡箴圉棹 祛潴</a> 潆 篑蜞眍怅 觐痧尻蝽钽 矬蜩.
acl_virtusers=冷疱耥 镱漶蜞眍怅, 疱溧牝桊箦禧 溧眄 镱朦珙忄蝈脲
mform_for=项黩 潆
aliases_return=耧桉铌 锺邂漕龛祛
boxes_size=朽珈屦 赅
acl_mailq=填驽 箫疣怆螯 镱黩钼铋 铟屦邃?
opts_default=项 箪铍鬣龛
vsave_err=硒栳赅 镳 耦躔囗屙梃 镱漶蜞眍怅 噤疱耦
vform_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 溧眄簋 镱漶蜞眍怅 噤疱耦
access_econfig=锣 羿殡 觐眙桡箴圉梃 sendmail 礤 桁邋 礤钺躅滂祛 滂疱牝桠 潆 spam 觐眚痤.
acl_aliases=像邂漕龛禧, 疱溧牝桊箦禧 溧眄 镱朦珙忄蝈脲
relay_domains=念戾睇  疣琊屮屙眍 蝠囗耠鲨彘 
aform_create=杨玟囹 像邂漕龛
view_title=昨屙桢 项黩
boxes_user=项朦珙忄蝈朦
mform_esmtp=朽聒桊屙眍 SMTP
view_ecannot=锣 礤 疣琊屮屙 麒蜞螯 镱黩 溧眄钽 镱朦珙忄蝈
cws_eip='$1' 怆弪 IP 噤疱耦, 礤 桁屙屐 漕戾磬
gform_create=杨玟囗桢 项漶蜞眍忸
acl_viewdel=橡铖祛蝠  箐嚯屙桢
sform_reject=悟狃铖栩
mform_create=杨玟囗桢 锑瘌痼蜩玎鲨
mailq_from=悟
opts_queuereturn=吗屐 漕 腓赈桎圉梃 礤铗铖豚眄 耦钺龛
vsave_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 镱漶蜞眍怅 噤疱耦
relay_edomain='$1' 礤 怆弪 漕矬耱桁 桁屙屐 漕戾磬
gsave_err=硒栳赅 镳 耦躔囗屙梃 桉躅泐 噤疱襦
opts_loglevel=羽钼屙 骟痦嚯桤圉梃 耦猁蜩
index_eversion=锣 觐眙桡箴圉桀眄 羿殡 sendmail 礤 耦铗忮蝰蜮箦 镱耠邃礤 忮瘃梃. Webmin 镱滗屦骅忄弪 蝾朦觐 忮瘃梃 8.8  恹.
boxes_ecannot=锣 礤 疣琊屮屙 麒蜞螯 镱黩
dsave_edomain='$1' 礤 怆弪 漕矬耱桁 桁屙屐 漕戾磬
generics_title=锐躅 冷疱襦
cws_domains=念戾睇 箫疣怆屐 桁 皴疴屦铎
opts_postmaster=悟覃豚螯 耦钺龛 钺 铠栳赅 
sform_create=杨玟囗桢 橡噔桦 Spam 暑眚痤
gsave_eto='$1' 礤 怆弪 漕矬耱桁 眍恹 噤疱耦
cgs_header=锐躅 噤疱耥 漕戾睇
view_delete=愉嚯栩
virtusers_title=项漶蜞眍怅 冷疱耦
virtusers_edirective=锣 羿殡 觐眙桡箴圉梃 sendmail 礤 桁邋 礤钺躅滂祛 滂疱牝桠 潆 镱漶蜞眍怅 噤疱耦.
vsave_efrom='$1' 礤 怆弪 漕矬耱桁 噤疱耦
gform_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 铗 桉躅 噤疱
mform_domain=念戾
domains_title=念戾眄 项漶蜞眍怅
mailers_return=耧桉铌 漕戾眄铋 爨瘌痼蜩玎鲨
sform_err=暑 铠栳觇
cws_err=硒栳赅 镳 耦躔囗屙梃 腩赅朦睇 漕戾眍
mform_ignore=茹眍痂痤忄螯 MX 潆 SMTP 漕耱噔觇
opts_bytes=徉轵
opts_forward=项朦珙忄蝈朦耜桢 羿殡 镥疱磬镟怆屙栝
generics_desc1=锐躅 噤疱耥 镱漶蜞眍怅 镱玮铍 忄 桤戾螯 噤疱 <tt>From:</tt> 潆 镱黩 铗覃豚屐铋 桤 忄 耔耱屐, 桦 麇疱 忄 耔耱屐 漯筱桁 躅耱囔 忄 腩赅朦眍 皴蜩. 蒡 祛驽 猁螯 镱脲珥, 羼腓 忄 耔耱屐 桁邋 礤耜铍 漕戾眍  恹 躅蜩蝈, 黩钺 镱黩 铗 礤觐蝾瘥 镱朦珙忄蝈脲 桉躅滂豚 桤 漯筱桴 漕戾眍.
generics_desc2=青戾螯蝈, 黩 恹 漕腈睇 桁弪 玎镨顸  蜞犭桷 <a href='$1'>桉躅 漕戾眍</a> 潆 赅驿钽 桤 漕戾眍, 潆 鼽桴 噤疱耦 恹 躅蜩蝈 皲咫囹 桉躅 镱漶蜞眍怅. 亦赕 桁彘蝈  忤潴, 黩 镱漶蜞眍怅 桉躅 噤疱耦 礤 疣犷蜞弪 潆 镱黩 漕耱噔屐铋 腩赅朦睇 镱朦珙忄蝈.
opts_queue=枢蜞腩 镱黩钼铋 铟屦邃
access_title=Spam 暑眚痤朦
mform_uucp=UUCP
opts_mimebounce=悟耜嚓桠帼 耦钺龛  MIME-觐滂痤怅?
opts_maxmessage=锑犟. 疣珈屦 耦钺龛
opts_local=祟赅朦磬 漕耱噔赅
mform_to=项耠囹 磬
virtusers_desc1=项漶蜞眍怅 噤疱耦 铟屙 镱躅驵 磬 <a href='$1'>锺邂漕龛禧</a>, 眍 犷朦 镱漉钿栩 潆 耔耱屐 箫疣怆桴 祉铈羼蜮铎 漕戾眍. 雾 祛驽 猁螯 桉镱朦珙忄磬 潆 镥疱磬镳噔脲龛 镱黩 怦邈 漕戾磬 磬 钿桧 噤疱, 钺疣犷蜿铋 镱朦珙忄蝈脲  钿桧嚓钼 桁屙屐  疣珥 漕戾磬, 桦 镱漶蜞眍怅铋 怦彘 镱黩 铗 钿眍泐 漕戾磬 漯筱铎.
virtusers_desc2=青戾螯蝈, 黩 恹 漕腈睇 桁弪 玎镨顸  蜞犭桷 <a href='$1'>腩赅朦睇 漕戾眍</a> 潆 膻猁 漕戾眍 桉镱朦珞桴 镱漶蜞眍怅 噤疱耦,  蜞赕 漕腈磬 猁螯  磬腓麒 DNS 玎镨顸 MX 潆 赅驿钽 漕戾磬, 箨噻帼 磬 忄 耔耱屐.
masq_domains=念戾睇 潆 爨耜桊钼觇
gsave_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 桉躅 噤疱襦
acl_users=项朦珙忄蝈腓
access_action=腻轳蜮桢..
send_title=项黩 铗镳噔脲磬
virtusers_for=项黩 潆..
gsave_efrom='$1' 礤 怆弪 漕矬耱桁 <tt>From:</tt> 噤疱耦
mailers_title=念戾眄 锑瘌痼蜩玎鲨
mform_procmail=Procmail
access_desc1=扬铖钺眍耱 Sendmail  觐眚痤膻 spam (镱黩钼钽 祗耦疣) 镱玮铍弪 忄 镳邃铗怵囹栩 镱塍麇龛 礤眢骓 耦钺龛 矬蝈 铗狃囫囗 镱黩 镱塍鬣屐铋  铒疱溴脲眄 噤疱耦  镳邃铗怵囹栩 桉镱朦珙忄龛 忄 耔耱屐 潆 蝠囗耠鲨 镱黩 珉铙禧屙龛觐. 项 箪铍鬣龛 sendmail 镳桧桁噱 镱黩 潆 腩赅朦睇 镱朦珙忄蝈脲  膻犷泐 噤疱襦, 眍 玎镳妁噱 蝠囗耠桊钼囹 镱黩 麇疱 忄 耔耱屐 膻犷祗 镱朦珙忄蝈膻 桦 镱黩钼铎 皴疴屦. 吾眍 恹 狍溴蝈 漕徉怆螯 镳噔桦 觐眚痤 spam 潆 铗狃囫囗 镱黩 珉铙禧屙龛觐  镳噔桦 镱玮铍桢 漯筱桁 镱黩钼 爨磬 忄 皴蜩 蜞痦耠桊钼囹 镱黩 麇疱 忄 耔耱屐.
access_desc2=青戾螯蝈, 黩 sendmail 镱 箪铍鬣龛 镱玮铍栩 镱黩钼 觌桢眚囔 忄 耔耱屐 蝠囗耠桊钼囹 镱黩 镱 SMTP 磬 膻犷 噤疱 磬珥圜屙. 亦觇 钺疣珙 礤 礤钺躅滂蝾耱 漕徉怆螯 眍戾 腩赅朦眍 皴蜩 <tt>127.0.0</tt>  耧桉铌 疣琊屮屙睇 潆 蝠囗耠鲨.
index_return=戾睨 觐眙桡箴圉梃
asave_emax=锣 礤 疣琊屮屙 耦玟噔囹 犷脲 $1 锺邂漕龛祛
dform_from=如 漕戾磬
masq_edomain='$1' 礤 怆弪 漕矬耱桁 漕戾眍 潆 爨耜桊钼觇 赅
opts_dh=襄疱覃豚螯 镱黩 腩赅朦睇 镱朦珙忄蝈脲 磬 躅耱
opts_dr=襄疱覃豚螯 镱黩 礤桤忮耱睇 镱朦珙忄蝈脲 磬 躅耱
opts_ds=悟覃豚螯 桉躅 镱黩 麇疱 躅耱
delq_err=硒栳赅 箐嚯屙 耦钺龛
mailq_dmsg=碾 镳铖祛蝠 耦钺龛 桤 镱黩钼铋 铟屦邃 磬骒栩 礤 邈 ID  耧桉赍 龛驽.
index_stopmsg=袜骒栩 磬  觏铒牦, 黩钺 铖蜞眍忤螯 疣犷蜞栝 镳铞羼 sendmail. 蒡 铖蜞眍忤 漕耱噔牦 镱黩 腩赅朦睇 镱朦珙忄蝈  礤 溧耱 觌桢眚囔 桉镱朦珞桁  耔耱屐  赅麇耱忮 镱黩钼钽 皴疴屦 铗覃豚螯 镱黩.
virtusers_address=冷疱 $1
aliases_addr=冷疱
generics_from=项黩 铗..
sform_ecannot=锣 礤 疣琊屮屙 磬耱疣桠囹 spam 觐眚痤朦
mailers_desc1=念戾眄 爨瘌痼蜩玎鲨 钺羼镥麒忄弪 耧铖钺 铒疱溴脲龛 耧弼栲朦眍泐 戾蝾溧 镥疱溧麒 镱黩  铒疱溴脲眄 漕戾睇. 蒡 祛驽 猁螯 镱脲珥 羼腓 忄 耔耱屐 怆弪 铎 潆 镱黩钼 皴疴屦钼, 觐蝾瘥 礤漕耱箫睇 桤忭 忄 皴蜩, 桦 羼腓 恹 躅蜩蝈 镳桧箐栩咫 爨瘌痼蜩玷痤忄螯 镱黩  铗溴朦睇 漕戾 麇疱 礤觇 漯筱铋 皴疴屦.
mailers_desc2= 忄 <b>礤 漕腈眍</b> 猁螯 玎镨耔  耧桉赍 <a href='$1'>腩赅朦睇 漕戾眍</a> 潆 膻猁 爨瘌痼蜩玷痼屐 漕戾眍. 武磬觐 恹 漕腈睇 桁弪 DNS 玎镨顸 MX 箨噻帼 磬 忄 耔耱屐 潆 膻猁 漕戾眍, 潆 觐蝾瘥 恹 怆弪羼 铎.
mail_cc=暑镨
sform_msg=杨钺龛
opts_queuewarn=吗屐 漕 镳邃箫疱驿屙  礤铗铖豚眄 耦钺龛
forward_title=襄疱覃腙 杨钺龛
aliases_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 锺邂漕龛禧
trusts_err=硒栳赅 镳 耦躔囗屙梃 漕忮疱眄 镱朦珙忄蝈脲
sform_type0=项黩钼 冷疱
sform_type1=彦螯
sform_type2=项朦珙忄蝈朦
sform_type3=念戾
ssave_ecannot=锣 礤 疣琊屮屙 磬耱疣桠囹 spam 觐眚痤朦
asave_ecannot2=锣 礤 疣琊屮屙 疱溧牝桊钼囹 锺邂漕龛禧
aliases_none=丸觐祗
sform_discard=悟狃铖栩 徨 筲邃铎脲龛
mailq_force=碾 礤戾潆屙眍 漕耱噔觇 耦钺龛 桤 铟屦邃 <a href='$1'>骒栩 颃溧</a>.
cgs_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 桉躅 漕戾睇
mform_edit=绣溧牝桊钼囗桢 锑瘌痼蜩玎鲨
opts_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 镟疣戾蝠
mail_subject=义爨
trusts_desc=篷腓 腩赅朦睇 镱朦珙忄蝈朦 稃蜞弪 镱耠囹 镱黩, sendmail 疣琊屮栩 桤戾螯 噤疱 <tt>From:</tt> 蝾朦觐 镱朦珙忄蝈膻 桤 耧桉赅 耠邂. 蒡 钽疣龛麇龛 耋耱怏弪 潆 镳邃铗怵帙屙 铗镳噔觇 镱朦珙忄蝈扈 镱黩  羿朦恹扈 噤疱襦扈 <tt>From:</tt> 桤 忄 耔耱屐.
access_source=锐蝾黜桕..
virtusers_domain=念戾 $1
compose_title=杨玟囗桢 杨钺龛
gform_to=如戾龛螯 磬
dform_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 漕戾眄簋 镱漶蜞眍怅
vsave_efromdup=项漶蜞眍怅 噤疱襦 潆 '$1' 箧 铒疱溴脲磬
mailq_ecannot=锣 礤 疣琊屮屙 镳铖爨蝠桠囹 镱黩钼簋 铟屦邃
mail_title=项黩 项朦珙忄蝈
opts_ehost='$1' 礤 怆弪 漕矬耱桁 桁屙屐 躅耱 桦 漕戾磬
virtusers_return=耧桉铌 镱漶蜞眍怅 噤疱耦
acl_none=丸麇泐
asave_ematch=锣 疣琊屮屙 耦玟噔囹 锺邂漕龛禧 耦怙噤帼 蝾朦觐  '$1'
opts_title=相疣戾蝠 Sendmail
masq_ehost='$1' 礤 怆弪 漕矬耱桁 桁屙屐 躅耱 桦 漕戾磬
aform_val=像邂漕龛 
opts_blocks=犭铌钼
relay_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 漕戾眄簋 蝠囗耠鲨
aform_type0=丸觐祗
aform_type1=项黩钼铎 噤疱耋
aform_type2=冷疱襦  羿殡
aform_type3=青镨耔  羿殡
aform_type4=襄疱覃腙  镳钽疣祆
mailers_cannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 漕戾眄簋 爨瘌痼蜩玎鲨
domains_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 漕戾眄簋 镱漶蜞眍怅
view_desc=杨钺龛 $1  $2 
dsave_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 漕戾眄簋 镱漶蜞眍怅
gsave_ematch=冷疱 <tt>From:</tt> 礤 耦怙噤噱  '$1'
masq_title=锑耜桊钼赅 念戾眍
mail_to=碾
aliases_title=项黩钼 像邂漕龛禧
vsave_edom='$1' 礤 怆弪 漕矬耱桁 漕戾眍
acl_cgs=填驽 疱溧牝桊钼囹 桉躅 漕戾睇?
trusts_euser='$1' 礤 怆弪 漕矬耱桁 镱朦珙忄蝈脲
index_econfig=暑眙桡箴圉桀眄 羿殡 sendmail $1 礤 耋耱怏弪. 骂珈铈眍, 黩 <a href='$2'>觐眙桡箴圉 祛潴</a> 礤忮痦.
view_headers=项黩钼 玎泐腩怅
trusts_title=念忮疱眄 项朦珙忄蝈腓
dform_to= 漕戾
index_start=青矬耱栩 Sendmail
gform_from=项黩 铗
mailers_for=项黩 潆..
cgs_eip='$1' 怆弪 IP 噤疱耦, 礤 漕戾眍
mailq_sending=悟镳噔赅
cws_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 腩赅朦睇 漕戾睇
msave_edomain='$1' 礤 怆弪 漕矬耱桁 桁屙屐 躅耱 桦 漕戾磬
vsave_eaddr='$1' 礤 怆弪 漕矬耱桁 噤疱耦
generics_econfig=锣 羿殡 觐眙桡箴圉梃 sendmail 礤 桁邋 礤钺躅滂祛 滂疱牝桠 潆 桉躅 噤疱耥 镱漶蜞眍忸.
index_title=暑眙桡箴圉 Sendmail
asave_etype4none=橡钽疣祆 礤 玎溧磬
masq_desc1=篷腓 恹 箨噻囗 漕戾, sendmail 狍溴 桤戾螯 噤疱 <tt>From</tt> 怦艴 桉躅 耦钺龛 镱漶蜞眍怅铋 溧眄钽 桁屙 漕戾磬. 念镱腠栩咫, 膻猁 镱黩钼 耦钺龛 镳铛钿 麇疱 忄 耔耱屐 铗 钿眍泐 桤 躅耱钼 桦 漕戾眍 镥疱麒耠屙睇 耠邂 蜞赕 狍潴 桁弪 桤戾礤眄 镱漕犴 钺疣珙 桴 <tt>From</tt> 噤疱. 青戾螯蝈, 黩 膻徉 爨耜桊钼赅 漕戾磬 铒疱溴脲眄 玟羼, 祛驽 猁螯 镥疱铒疱溴脲磬 潆 铗溴朦睇 镱朦珙忄蝈脲 磬 耱疣龛鲥 <a href='$1'>锐躅 冷疱襦</a>.
masq_desc2=蒡 铖钺屙眍耱 祛驽 猁螯 镱脲珥, 羼腓 恹 躅蜩蝈 黩钺 镱黩 桎簌  忄 爨睇 镳邃耱噔豚顸 赅 镱黩 桎簌  忄泐 漕戾眄钽 桁屙,  礤  忄 爨睇, 桦 蜞赕 祛驽 猁螯 镱脲珥, 羼腓 忄 耔耱屐 疣犷蜞弪 赅 镱黩钼 觐眦屙蝠囹铕 潆 漯筱桴 躅耱钼 桁妣 疋铊 镱黩钼 皴疴屦.
reply_title=悟忮 磬 杨钺龛
view_attach=玛膻麇龛
opts_save=杨躔囗栩  狸蜩忤玷痤忄螯
opts_maxch=锑犟. 麒耠 漕麇痦桴 镳铞羼耦
aform_edit=绣溧牝桊钼囹 像邂漕龛
mail_return=镱黩 镱朦珙忄蝈
mailq_none=西屦邃 礤 耦溴疰栩 镱黩钼 耦钺龛 潆 漕耱噔觇
msave_err=硒栳赅 镳 耦躔囗屙梃 爨瘌痼蜩玎鲨 漕戾眍
acl_opts=填驽 疱溧牝桊钼囹 镟疣戾蝠 sendmail?
aliases_to=像邂漕龛 ..
acl_relay=填驽 疱溧牝桊钼囹 漕戾眄簋 蝠囗耠鲨?
index_startmsg=袜骒栩 磬  觏铒牦, 黩钺 玎矬耱栩 sendmail 觐爨礓铋 $1. 念 蝈 镱, 镱赅  礤 皲咫囗, 镱黩 礤 祛驽 猁螯 漕耱噔脲磬 腩赅朦睇 镱朦珙忄蝈  觌桢眚 礤 耢钽篁 桉镱朦珙忄螯  耔耱屐  赅麇耱忮 镱黩钼钽 皴疴屦.
reply_ecannot=锣 礤 疣琊屮屙 铗覃豚螯 镱黩  赅麇耱忮 溧眄钽 镱朦珙忄蝈
domains_to= 漕戾..
masq_eip='$1' 怆弪 IP 噤疱耦, 礤 漕戾眍
boxes_title=项黩钼 啭桕
flushq_title=厌痤 西屦邃
mail_ecannot=锣 礤 疣琊屮屙 麒蜞螯 镱黩 溧眄钽 镱朦珙忄蝈
reply_attach2=玛膻麇龛
opts_minqueueage=惕. 怵屐 镥疱 镱怛铕眍 铗覃腙铋
cgs_err=硒栳赅 镳 耦躔囗屙梃 桉躅 漕戾眍
mailers_delivery=念耱噔赅
mailq_status=羊囹篑
masq_ecannot=锣 礤 疣琊屮屙 觐眙桡箴桊钼囹 爨耜桊钼牦
acl_atype1=项黩钼 噤疱襦
acl_atype2=冷疱襦  羿殡
acl_atype3=青镨顸  羿殡
acl_atype4=襄疱溧鬣  镳钽疣祆
vform_error=骂玮疣 铠栳觇
acl_atypes=诣稃 锺邂漕龛祛, 疱溧牝桊箦禧 溧眄 镱朦珙忄蝈脲
opts_einvalid='$1' 礤 怆弪 漕矬耱桁 珥圜屙桢 潆 '$2'
acl_cws=填驽 疱溧牝桊钼囹 腩赅朦睇 漕戾睇?
acl_trusts=填驽 疱溧牝桊钼囹 漕忮疱眄 镱朦珙忄蝈脲?
generics_return=耧桉铌 噤疱耥 镱漶蜞眍忸
asave_eaddr='$1' 礤 怆弪 漕矬耱桁 噤疱耦
dform_create=杨玟囗桢 项漶蜞眍怅
masq_err=硒栳赅 镳 耦躔囗屙梃 漕戾眄铋 爨耜桊钼觇
opts_refusela=锑犟. 耩邃 玎沭箸赅 潆 镳桢爨
mailers_edirective=锣 羿殡 觐眙桡箴圉梃 sendmail 礤 桁邋 礤钺躅滂祛 滂疱牝桠 潆 漕戾眄铋 爨瘌痼蜩玎鲨
vform_for=项黩 潆
acl_mailers=填驽 疱溧牝桊钼囹 漕戾眄簋 爨瘌痼蜩玎鲨?
virtusers_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 镱漶蜞眍怅 噤疱耦
mform_error=硒栳赅
boxes_return=镱黩钼 觇
masq_domain=锑耜桊钼囹 赅 漕戾
generics_to=如戾龛螯 磬..
relay_err=硒栳赅 镳 耦躔囗屙梃 漕戾眄铋 蝠囗耠鲨
acl_stop=填驽 耱囵蝾忄螯  铖蜞磬怆桠囹 sendmail?
mform_prog=迈钿 镳钽疣祆
acl_domains=填驽 觐眙桡箴桊钼囹 漕戾眄簋 镱漶蜞眍怅?
aform_enabled=狸蜩忮?
mail_date=泥蜞
mail_compose=杨玟囹 眍忸 耦钺龛
cgs_desc=湾玎忤耔祛 铗 镱黩 铗覃豚屐铋 腩赅朦睇扈 镱朦珙忄蝈扈, sendmail 狍溴 蝾朦觐 铖簌羼蜮螯 镱漶蜞眍怅 <a href='$1'>桉躅 噤疱耦</a> 潆 镱黩 铗 躅耱钼 桦 漕戾眍 镥疱麒耠屙睇  镱脲 耠邂. 亦觇 钺疣珙 潆 疣犷螓 桉躅泐 噤疱襦, 漕戾 <tt>From:</tt> 噤疱襦 漕腈屙 猁螯 怅膻麇  铗 耧桉铌.
opts_throttle=锑犟. 耦邃桧屙栝 / 皴.
vform_create=杨玟囗桢 项漶蜞眍怅
virtusers_error=硒栳赅 $1
relay_eversion=翌朦觐 sendmail 忮瘃梃 8.9  恹 镱滗屦骅忄弪 漕戾眄簋 蝠囗耠鲨
asave_etype1='$1' 礤 怆弪 漕矬耱桁 镱黩钼 噤疱耦
asave_etype2=冷疱耥 羿殡 '$1' 礤 耋耱怏弪
asave_etype3='$1' 礤 怆弪 漕矬耱桁 桁屙屐 羿殡
asave_etype4='$1' 礤 怆弪 镳钽疣祆铋 桦 礤 耋耱怏弪
asave_ecannot=锣 礤 疣琊屮屙 疱溧牝桊钼囹 铗 锺邂漕龛
mail_from=悟
 0707010005f324000081a40000000000000002000000013ac0389c00004e58000000200000000000000000000000000000001a00000003reloc/sendmail/lang/ru_SU index_title=胂纹汕找撩裳 Sendmail
index_econfig=胂纹汕找撩上挝偈 屏侍 sendmail $1 闻 诱菖釉渍旁. 飨谕现蜗, 拊 <a href='$2'>讼纹汕找撩裳 拖恼萄</a> 闻着椅.
index_eversion=髁 讼纹汕找撩上挝偈 屏侍 sendmail 闻 酉显着杂宰张 邢犹拍闻 着矣缮. Webmin 邢哪乓稚琢旁 韵特讼 着矣缮 8.8  踪叟.
index_return=团卫 讼纹汕找撩缮
index_stop=镉粤蜗咨载 Sendmail
index_stopmsg=盍滞稍 瘟 茉 宋闲苏, 拊下 嫌粤蜗咨载 伊孪粤垒墒 幸厦庞 sendmail.  嫌粤蜗咨 南釉磷苏 邢拊 滔肆特钨 邢特谙琢耘萄  闻 牧釉 颂膳卧镣 捎邢特谡垒赏 茉 由釉磐  肆夼釉着 邢拊献锨 优易乓 显淤塘载 邢拊.
index_start=姓釉稍 Sendmail
index_startmsg=盍滞稍 瘟 茉 宋闲苏, 拊下 诹姓釉稍 sendmail 讼土文鲜 $1. 湎 耘 邢, 邢肆 茉 闻 幽盘廖, 邢拊 闻 拖峙 沦载 南釉磷膛瘟 滔肆特钨 邢特谙琢耘萄  颂膳卧 闻 油锨赵 捎邢特谙琢载 茉 由釉磐  肆夼釉着 邢拊献锨 优易乓.

opts_title=鹆伊团砸 Sendmail
opts_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 辛伊团砸
opts_ds=镌淤塘载 捎认难菡 邢拊 夼遗 认釉
opts_direct=鹨淹裂 南釉磷肆
opts_dr=鹋遗淤塘载 邢拊 闻哨着釉钨 邢特谙琢耘膛 瘟 认釉
opts_dh=鹋遗淤塘载 邢拊 滔肆特钨 邢特谙琢耘膛 瘟 认釉
opts_local=煜肆特瘟 南釉磷肆
opts_queuela=砹擞. 右拍窝 诹且遮肆 奶 显淤趟
opts_refusela=砹擞. 右拍窝 诹且遮肆 奶 幸膳土
opts_maxch=砹擞. 奚犹 南夼椅扇 幸厦庞酉
opts_throttle=砹擞. 酉拍晌盼墒 / 优.
opts_minqueueage=砩. 滓磐 信遗 邢自弦蜗 显淤趟鲜
opts_runsize=砹擞. 伊谕乓 限乓拍
opts_queuereturn=饕磐 南 躺俗赡撩缮 闻显嫌塘挝偃 酉下菖紊
opts_queuewarn=饕磐 南 幸拍招遗帜盼裳  闻显嫌塘挝偃 酉下菖紊讶
opts_queue=肓粤滔 邢拊献鲜 限乓拍
opts_postmaster=镌淤塘载 酉下菖紊 下 羡陕肆 
opts_forward=鹣特谙琢耘特铀膳 屏侍 信遗瘟辛滋盼墒
opts_minfree=砩. 幼下夏蜗 纳铀献吓 幸嫌砸廖釉紫
opts_maxmessage=砹擞. 伊谕乓 酉下叟紊
opts_loglevel=跻献盼 终椅撂哨撩缮 酉沦陨
opts_mimebounce=镌铀了勺晾萆 酉下菖紊  MIME-讼纳蚁姿?
opts_default=鹣 胀咸蘖紊
opts_save=笙纫廖稍  崴陨咨谏蚁琢载
opts_err=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献
opts_ehost='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 认釉 商 南团瘟
opts_einvalid='$1' 闻 炎萄旁友 南姓釉赏偻 谖赁盼膳 奶 '$2'
opts_blocks=绿纤献
opts_bytes=铝试

aliases_title=鹣拊献倥 鹩抛南紊唾
aliases_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 杏抛南紊唾
aliases_addr=崮遗
aliases_to=鹩抛南紊 ..
aliases_type1=崮遗诱 $1
aliases_type2=崮遗恿  屏侍 $1
aliases_type3=媪侍 $1
aliases_type4=鹨锨伊屯 $1
aliases_none=钌讼驼
aliases_return=有捎纤 杏抛南紊拖

aform_type0=钌讼驼
aform_type1=鹣拊献贤 聊遗诱
aform_type2=崮遗恿  屏侍
aform_type3=猩由  屏侍
aform_type4=鹋遗淤趟  幸锨伊屯
aform_edit=蚺牧嗽梢献猎 鹩抛南紊
aform_create=笙谀猎 鹩抛南紊
aform_name=崮遗
aform_enabled=崴陨着?
aform_val=鹩抛南紊 

asave_err=镗陕肆 酉纫廖盼裳 杏抛南紊土
asave_ecannot2=髁 闻 伊谝袍盼 遗牧嗽梢献猎 杏抛南紊唾
asave_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 茉显 杏抛南紊
asave_emax=髁 闻 伊谝袍盼 酉谀磷猎 孪膛 $1 杏抛南紊拖
asave_eaddr='$1' 闻 炎萄旁友 南姓釉赏偻 聊遗酉
asave_ealready=鹩抛南紊 奶 '$1' 罩 诱菖釉渍旁
asave_ematch=髁 伊谝袍盼 酉谀磷猎 杏抛南紊唾 酉仔聊晾萆 韵特讼  '$1'
asave_etype=髻 闻 拖峙耘 酉谀磷猎 杏抛南紊唾 牧挝锨 陨辛
asave_etype1='$1' 闻 炎萄旁友 南姓釉赏偻 邢拊献偻 聊遗酉
asave_etype2=崮遗游偈 屏侍 '$1' 闻 诱菖釉渍旁
asave_etype3='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 屏侍
asave_etype4='$1' 闻 炎萄旁友 幸锨伊屯鲜 商 闻 诱菖釉渍旁
asave_etype4none=鹨锨伊屯 闻 诹牧瘟

cws_title=煜肆特钨 湎团钨
cws_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 滔肆特钨 南团钨
cws_domains=湎团钨 招伊滋雅唾 茉赏 优易乓贤
cws_desc1=胍贤 邢拊 奶 $1, sendmail 奶 滔肆特蜗 南釉磷松 邢拊 抡呐 袍 幸晌赏猎 酉下菖紊 韵特讼 奶 南团蜗  认釉献 信遗奚犹盼钨  耘擞韵紫 邢膛 犹抛. 逵躺 踪 认陨耘, 拊下 琢 邢拊献偈 优易乓 下伊铝再琢 臀现庞宰 邢拊献偃 南团蜗, 子 衔 南讨钨 沦载 信遗奚犹盼  茉贤 邢膛 (/ 幸下盘/信遗紫馁 釉蚁松).
cws_desc2=团载耘, 拊 幸嫌韵 账邻廖膳 南团瘟  牧挝贤 有捎伺 下俎蜗 闻南釉猎限蜗. 髻 南讨钨 粤酥 沦载 兆乓盼, 拊 诱菖釉渍旁 DNS 诹猩迂 奶 牧挝锨 南团瘟   衔 账邻僮僚 瘟 琢壅 由釉磐.
cws_err=镗陕肆 幸 酉纫廖盼缮 滔肆特钨 南团蜗
cws_ehost='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 认釉 商 南团瘟
cws_eip='$1' 炎萄旁友 IP 聊遗酉, 闻 赏盼磐 南团瘟

masq_title=砹铀梢献肆 湎团蜗
masq_ecannot=髁 闻 伊谝袍盼 讼纹汕找梢献猎 土铀梢献苏
masq_domain=砹铀梢献猎 肆 南团
masq_domains=湎团钨 奶 土铀梢献松
masq_desc1=逵躺 踪叟 账邻廖 南团, sendmail 抡呐 哨团窝载 聊遗 <tt>From</tt> 子湃 捎认难萆 酉下菖紊 邢挠粤蜗姿鲜 牧挝锨 赏盼 南团瘟. 湎邢涛稍盘匚, 汤沦 邢拊献倥 酉下菖紊 幸先夏演膳 夼遗 琢壅 由釉磐 显 夏蜗窍 哨 认釉献 商 南团蜗 信遗奚犹盼钨 犹抛 粤酥 抡恼 赏旁 哨团闻挝偈 邢南挛偻 下伊谙 扇 <tt>From</tt> 聊遗. 团载耘, 拊 汤铝 土铀梢献肆 南团瘟 闲遗呐膛挝裂 谀庞, 拖峙 沦载 信遗闲遗呐膛瘟 奶 显呐特钨 邢特谙琢耘膛 瘟 釉伊紊门 <a href='$1'>橛认难萆 崮遗恿</a>.
masq_desc2= 嫌下盼蜗釉 拖峙 沦载 邢膛谖, 庞躺 踪 认陨耘 拊下 邢拊 赡蛰裂  琢叟 土凵钨 幸拍釉磷萄塘迂 肆 邢拊 赡蛰裂  琢叟窍 南团挝锨 赏盼,  闻  琢叟 土凵钨, 商 粤酥 拖峙 沦载 邢膛谖, 庞躺 琢哿 由釉磐 伊孪粤旁 肆 邢拊献偈 讼蚊盼砸猎弦 奶 囊涨扇 认釉献 赏爬萆 幼仙 邢拊献倥 优易乓.
masq_err=镗陕肆 幸 酉纫廖盼缮 南团挝鲜 土铀梢献松
masq_edomain='$1' 闻 炎萄旁友 南姓釉赏偻 南团蜗 奶 土铀梢献松 肆
masq_ehost='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 认釉 商 南团瘟
masq_eip='$1' 炎萄旁友 IP 聊遗酉, 闻 南团蜗

trusts_title=湎着遗挝倥 鹣特谙琢耘躺
trusts_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 南着遗挝偃 邢特谙琢耘膛
trusts_users=煜肆特钨 邢特谙琢耘躺,<br> 讼韵屹 南着已旁 sendmail
trusts_desc=逵躺 滔肆特钨 邢特谙琢耘特 匈粤旁友 邢犹猎 邢拊, sendmail 伊谝袍稍 哨团窝载 聊遗 <tt>From:</tt> 韵特讼 邢特谙琢耘汤 哨 有捎肆 犹抛.  锨伊紊夼紊 诱菖釉渍旁 奶 幸拍显滓凛盼裳 显幸磷松 邢特谙琢耘萄蜕 邢拊  屏特凵踪蜕 聊遗恿蜕 <tt>From:</tt> 哨 琢叟 由釉磐.
trusts_err=镗陕肆 幸 酉纫廖盼缮 南着遗挝偃 邢特谙琢耘膛
trusts_euser='$1' 闻 炎萄旁友 南姓釉赏偻 邢特谙琢耘膛

virtusers_title=鹣挠粤蜗姿 崮遗酉
virtusers_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 邢挠粤蜗姿 聊遗酉
virtusers_edirective=髁 屏侍 讼纹汕找撩缮 sendmail 闻 赏排 闻下认纳拖 纳遗嗽勺 奶 邢挠粤蜗姿 聊遗酉.
virtusers_efile=襞擞韵踪 屏侍 $1 哨 讼韵蚁窍 釉蚁稍友 铝诹 牧挝偃 邢挠粤蜗姿 聊遗酉 $2 闻 诱菖釉渍旁. 飨谕现蜗 琢 闻下认纳拖 哨团紊载 <a href='$3'>讼纹汕找撩衫 拖恼萄</a> 奶 沼粤蜗姿 讼乙潘晕锨 姓陨.
virtusers_desc1=鹣挠粤蜗姿 聊遗酉 限盼 邢认至 瘟 <a href='$1'>杏抛南紊唾</a>, 蜗 孪特叟 邢娜夏稍 奶 由釉磐 招伊滋牙萆 臀现庞宰贤 南团蜗. 镂 拖峙 沦载 捎邢特谙琢瘟 奶 信遗瘟幸磷膛紊 邢拊 子徘 南团瘟 瘟 夏晌 聊遗, 下伊孪运鲜 邢特谙琢耘膛  夏晌了献偻 赏盼磐  伊谖偃 南团瘟, 商 邢挠粤蜗姿鲜 子攀 邢拊 显 夏蜗窍 南团瘟 囊涨贤.
virtusers_desc2=团载耘, 拊 踪 南讨钨 赏旁 诹猩迂  粤绿擅 <a href='$1'>滔肆特钨 南团蜗</a> 奶 汤沦 南团蜗 捎邢特谡垒扇 邢挠粤蜗姿 聊遗酉,  粤酥 南讨瘟 沦载  瘟躺奚 DNS 诹猩迂 MX 奶 肆帜锨 南团瘟, 账邻僮晾萘 瘟 琢壅 由釉磐.
virtusers_for=鹣拊 奶..
virtusers_to=鹣犹猎 瘟..
virtusers_error=镗陕肆 $1
virtusers_domain=湎团 $1
virtusers_address=崮遗 $1
virtusers_return=有捎纤 邢挠粤蜗姿 聊遗酉

vform_edit=蚺牧嗽梢献廖膳 鹣挠粤蜗姿
vform_create=笙谀廖膳 鹣挠粤蜗姿
vform_for=鹣拊 奶
vform_address=崮遗
vform_domain=湎团
vform_to=鹣犹猎 瘟
vform_error=飨谧伊 羡陕松
vform_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 牧挝绽 邢挠粤蜗姿 聊遗酉

vsave_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 邢挠粤蜗姿 聊遗酉
vsave_ecannot2=髁 闻 伊谝袍盼 遗牧嗽梢献猎 牧挝绽 邢挠粤蜗姿 聊遗酉
vsave_emax=髁 闻 伊谝袍盼 酉谀磷猎 孪膛 $1 聊遗游偃 邢挠粤蜗紫
vsave_err=镗陕肆 幸 酉纫廖盼缮 邢挠粤蜗姿 聊遗酉
vsave_efrom='$1' 闻 炎萄旁友 南姓釉赏偻 聊遗酉
vsave_efromdup=鹣挠粤蜗姿 聊遗恿 奶 '$1' 罩 闲遗呐膛瘟
vsave_edom='$1' 闻 炎萄旁友 南姓釉赏偻 南团蜗
vsave_edomdup=鹣挠粤蜗姿 聊遗恿 奶 '$1' 罩 闲遗呐膛瘟
vsave_ematch=崮遗 捎韵尬伤 闻 酉仔聊僚  '$1'
vsave_ecannot3=髁 闻 伊谝袍盼 酉谀磷猎 邢挠粤蜗姿 瘟 聊遗恿
vsave_eaddr='$1' 闻 炎萄旁友 南姓釉赏偻 聊遗酉
vsave_ecannot4=髁 闻 伊谝袍盼 酉谀磷猎 邢挠粤蜗姿 瘟 南团钨
vsave_edomdom=粝特讼 南团 拖峙 沦载  邢挠粤蜗姿 囊涨贤 南团握
vsave_ecannot5=髁 闻 伊谝袍盼 酉谀磷猎 邢挠粤蜗姿 讼韵屹 紫谧伊萘涝 羡陕苏

mailers_title=湎团挝裂 砹役艺陨诹蒙
mailers_cannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 南团挝绽 土役艺陨诹蒙
mailers_edirective=髁 屏侍 讼纹汕找撩缮 sendmail 闻 赏排 闻下认纳拖 纳遗嗽勺 奶 南团挝鲜 土役艺陨诹蒙
mailers_efile=襞擞韵踪 屏侍 $1 哨 讼韵蚁窍 釉蚁稍友 铝诹 牧挝偃 南团挝鲜 土役艺陨诹蒙 $2 闻 诱菖釉渍旁. 飨谕现蜗 琢 闻下认纳拖 哨团紊载 <a href='$3'>讼纹汕找撩衫 拖恼萄</a> 奶 沼粤蜗姿 讼乙潘晕锨 姓陨.
mailers_desc1=湎团挝裂 土役艺陨诹蒙 下庞信奚琢旁 有嫌下 闲遗呐膛紊 有琶闪特蜗窍 团韵牧 信遗牧奚 邢拊  闲遗呐膛挝倥 南团钨.  拖峙 沦载 邢膛谖偻 庞躺 琢哿 由釉磐 炎萄旁友 厶磊贤 奶 邢拊献偃 优易乓献, 讼韵屹 闻南釉招钨 哨孜 琢叟 优陨, 商 庞躺 踪 认陨耘 幸晌漳稍盘匚 土役艺陨谏蚁琢载 邢拊  显呐特钨 南团 夼遗 闻松 囊涨鲜 优易乓.
mailers_desc2= 琢 <b>闻 南讨蜗</b> 沦载 诹猩由  有捎伺 <a href='$1'>滔肆特钨 南团蜗</a> 奶 汤沦 土役艺陨谏艺磐偃 南团蜗. 锬瘟讼 踪 南讨钨 赏旁 DNS 诹猩迂 MX 账邻僮晾菡 瘟 琢壅 由釉磐 奶 汤沦 南团蜗, 奶 讼韵屹 踪 炎萄旁庞 厶磊贤.
mailers_for=鹣拊 奶..
mailers_delivery=湎釉磷肆
mailers_to=鹣犹猎 瘟..
mailers_return=有捎纤 南团挝鲜 土役艺陨诹蒙

mform_edit=蚺牧嗽梢献廖膳 砹役艺陨诹蒙
mform_create=笙谀廖膳 砹役艺陨诹蒙
mform_for=鹣拊 奶
mform_host=柘釉
mform_domain=湎团
mform_delivery=湎釉磷肆
mform_to=鹣犹猎 瘟
mform_ignore=榍蜗疑蚁琢载 MX 奶 SMTP 南釉磷松
mform_smtp=SMTP
mform_esmtp=蛄盂梢盼蜗 SMTP
mform_smtp8=8-律 SMTP
mform_relay=SMTP 砸廖犹言弦
mform_local=煜肆特蜗窍 邢特谙琢耘萄
mform_prog=魅夏 幸锨伊屯
mform_uucp=UUCP
mform_usenet=鹣犹猎  USENET
mform_fax=HylaFAX
mform_pop=POP3
mform_procmail=Procmail
mform_mail11=DECnet mail11
mform_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 南团挝绽 土役艺陨诹蒙
mform_error=镗陕肆

msave_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 南团挝绽 土役艺陨诹蒙
msave_err=镗陕肆 幸 酉纫廖盼缮 土役艺陨诹蒙 南团蜗
msave_edomain='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 认釉 商 南团瘟
msave_edup=湎团挝裂 土役艺陨诹蒙 奶 '$1' 罩 闲遗呐膛瘟

generics_title=橛认难萆 崮遗恿
generics_cannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎  捎认难萆  聊遗恿
generics_econfig=髁 屏侍 讼纹汕找撩缮 sendmail 闻 赏排 闻下认纳拖 纳遗嗽勺 奶 捎认难萆 聊遗游偃 邢挠粤蜗紫.
generics_efile=襞擞韵踪 屏侍 $1 哨 讼韵蚁窍 釉蚁稍友 铝诹 牧挝偃 捎认难萆 聊遗酉 $2 闻 诱菖釉渍旁. 飨谕现蜗 琢 闻下认纳拖 哨团紊载 <a href='$3'>讼纹汕找撩衫 拖恼萄</a> 奶 沼粤蜗姿 讼乙潘晕锨 姓陨.
generics_desc1=橛认难萆 聊遗游倥 邢挠粤蜗姿 邢谧咸牙 琢 哨团窝载 聊遗 <tt>From:</tt> 奶 邢拊 显淤塘磐鲜 哨 琢叟 由釉磐, 商 夼遗 琢壅 由釉磐 囊涨赏 认釉镣 琢叟 滔肆特蜗 优陨.  拖峙 沦载 邢膛谖偻, 庞躺 琢哿 由釉磐 赏排 闻铀咸厮 南团蜗  踪 认陨耘, 拊下 邢拊 显 闻讼韵屹 邢特谙琢耘膛 捎认纳塘 哨 囊涨扇 南团蜗.
generics_desc2=团载耘, 拊 踪 南讨钨 赏旁 诹猩迂  粤绿擅 <a href='$1'>捎认难萆 南团蜗</a> 奶 肆帜锨 哨 南团蜗, 奶 挢扇 聊遗酉 踪 认陨耘 幽盘猎 捎认难萆 邢挠粤蜗姿. 袅酥 赏攀耘  咨恼, 拊 邢挠粤蜗姿 捎认难萆 聊遗酉 闻 伊孪粤旁 奶 邢拊 南釉磷萄磐鲜 滔肆特钨 邢特谙琢耘萄.
generics_from=鹣拊 显..
generics_to=橼团紊载 瘟..
generics_return=有捎纤 聊遗游偃 邢挠粤蜗紫

gform_edit=蚺牧嗽梢献廖膳 鹣挠粤蜗紫
gform_create=笙谀廖膳 鹣挠粤蜗紫
gform_from=鹣拊 显
gform_to=橼团紊载 瘟
gform_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 茉显 捎认难萆 聊遗

gsave_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 捎认难萆 聊遗恿
gsave_ecannot2=髁 闻 伊谝袍盼 遗牧嗽梢献猎 茉显 捎认难萆 聊遗
gsave_err=镗陕肆 幸 酉纫廖盼缮 捎认难菖窍 聊遗恿
gsave_efrom='$1' 闻 炎萄旁友 南姓釉赏偻 <tt>From:</tt> 聊遗酉
gsave_ematch=崮遗 <tt>From:</tt> 闻 酉仔聊僚  '$1'
gsave_eto='$1' 闻 炎萄旁友 南姓釉赏偻 蜗踪 聊遗酉

cgs_title=橛认难萆 湎团钨
cgs_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 捎认难萆 南团钨
cgs_header=橛认难萆 聊遗游倥 南团钨
cgs_desc=钆诹咨由拖 显 邢拊 显淤塘磐鲜 滔肆特钨蜕 邢特谙琢耘萄蜕, sendmail 抡呐 韵特讼 嫌蛰庞宰萄载 邢挠粤蜗姿 <a href='$1'>捎认难萆 聊遗酉</a> 奶 邢拊 显 认釉献 商 南团蜗 信遗奚犹盼钨  邢膛 犹抛. 袅松 下伊谙 奶 伊孪再 捎认难菖窍 聊遗恿, 南团 <tt>From:</tt> 聊遗恿 南讨盼 沦载 姿汤夼  茉显 有捎纤.
cgs_err=镗陕肆 幸 酉纫廖盼缮 捎认难萆 南团蜗
cgs_ehost='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 认釉 商 南团瘟
cgs_eip='$1' 炎萄旁友 IP 聊遗酉, 闻 南团蜗

domains_title=湎团挝裂 鹣挠粤蜗姿
domains_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 南团挝绽 邢挠粤蜗姿
domains_econfig=髁 屏侍 讼纹汕找撩缮 sendmail 闻 赏排 闻下认纳拖 纳遗嗽勺 奶 邢挠粤蜗姿 南团蜗.
domains_efile=襞擞韵踪 屏侍 $1 哨 讼韵蚁窍 釉蚁稍友 铝诹 牧挝偃 邢挠粤蜗紫 $2 闻 诱菖釉渍旁. 飨谕现蜗 琢 闻下认纳拖 哨团紊载 <a href='$3'>讼纹汕找撩衫 拖恼萄</a> 奶 沼粤蜗姿 讼乙潘晕锨 姓陨.
domains_desc=湎团挝裂 邢挠粤蜗姿 哨团窝旁 <tt>To:</tt> 聊遗 酉下菖紊 显淤塘磐偃 紫孜, 砸廖犹梢张唾 夼遗 商 南釉磷萄磐偃 邢特谙琢耘萄 琢叟 由釉磐. <tt>From:</tt> 聊遗 砸廖犹梢张唾 酉下菖紊 商 酉下菖紊 滔肆特钨 邢特谙琢耘萄 粤酥 哨团窝旁友.  拖峙 沦载 邢膛谖偻 庞躺 琢叟 南团挝吓 赏 哨团紊滔迂  踪 认陨耘 哨团紊载 子 邢辛牧垒膳  琢 釉烈倥 赏盼 南团瘟 瘟 蜗踪.
domains_from=橼 南团瘟..
domains_to= 南团..
domains_return=有捎纤 南团挝偃 邢挠粤蜗紫

dform_edit=蚺牧嗽梢献廖膳 鹣挠粤蜗姿
dform_create=笙谀廖膳 鹣挠粤蜗姿
dform_from=橼 南团瘟
dform_to= 南团
dform_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 南团挝绽 邢挠粤蜗姿

dsave_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 南团挝绽 邢挠粤蜗姿
dsave_err=镗陕肆 幸 酉纫廖盼缮 南团挝鲜 邢挠粤蜗姿
dsave_edomain='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 南团瘟

access_title=Spam 胂卧蚁特
access_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 spam 讼卧蚁特
access_econfig=髁 屏侍 讼纹汕找撩缮 sendmail 闻 赏排 闻下认纳拖 纳遗嗽勺 奶 spam 讼卧蚁萄.
access_efile=襞擞韵踪 屏侍 $1 哨 讼韵蚁窍 釉蚁稍友 铝诹 牧挝偃 南釉招 $2 闻 诱菖釉渍旁. 飨谕现蜗 琢 闻下认纳拖 哨团紊载 <a href='$3'>讼纹汕找撩衫 拖恼萄</a> 奶 沼粤蜗姿 讼乙潘晕锨 姓陨.
access_desc1=笮嫌下蜗釉 Sendmail  讼卧蚁汤 spam (邢拊献锨 驼酉伊) 邢谧咸雅 琢 幸拍显滓猎稍 邢陶夼紊 闻握治偃 酉下菖紊 姓耘 显乱劣僮廖裳 邢拊 邢陶蘖磐鲜  闲遗呐膛挝偃 聊遗酉  幸拍显滓猎稍 捎邢特谙琢紊 琢叟 由釉磐 奶 砸廖犹衙缮 邢拊 谔险唾厶盼紊讼. 鹣 胀咸蘖紊 sendmail 幸晌赏僚 邢拊 奶 滔肆特钨 邢特谙琢耘膛  汤孪窍 聊遗恿, 蜗 诹幸泡僚 砸廖犹梢献猎 邢拊 夼遗 琢壅 由釉磐 汤孪驼 邢特谙琢耘汤 商 邢拊献贤 优易乓. 锫俎蜗 踪 抡呐耘 南铝滋言 幸磷商 讼卧蚁萄 spam 奶 显乱劣僮廖裳 邢拊 谔险唾厶盼紊讼  幸磷商 邢谧咸牙萆 囊涨赏 邢拊献偻 土凵瘟 琢叟 优陨 粤椅犹梢献猎 邢拊 夼遗 琢壅 由釉磐.
access_desc2=团载耘, 拊 sendmail 邢 胀咸蘖紊 邢谧咸稍 邢拊献偻 颂膳卧镣 琢叟 由釉磐 砸廖犹梢献猎 邢拊 邢 SMTP 瘟 汤孪 聊遗 瘟谖赁盼裳. 袅松 下伊谙 闻 闻下认纳韵釉 南铝滋言 蜗团 滔肆特蜗 优陨 <tt>127.0.0</tt>  有捎纤 伊谝袍盼钨 奶 砸廖犹衙缮.
access_source=橛韵尬伤..
access_action=渑视宰膳..
access_return=有捎纤 spam 讼卧蚁萄

sform_edit=蚺牧嗽梢献廖膳 鹨磷商 Spam 胂卧蚁萄
sform_create=笙谀廖膳 鹨磷商 Spam 胂卧蚁萄
sform_source=鹣拊献偈 捎韵尬伤
sform_type0=鹣拊献偈 崮遗
sform_type1=笈载
sform_type2=鹣特谙琢耘特
sform_type3=湎团
sform_action=渑视宰膳
sform_ok=鹨晌言
sform_relay=蛄谝袍稍 砸廖犹衙衫
sform_reject=镌乱嫌稍
sform_discard=镌乱嫌稍 屡 兆拍贤膛紊
sform_err=胂 羡陕松
sform_msg=笙下菖紊
sform_ecannot=髁 闻 伊谝袍盼 瘟釉伊勺猎 spam 讼卧蚁特

ssave_ecannot=髁 闻 伊谝袍盼 瘟釉伊勺猎 spam 讼卧蚁特
ssave_err=镗陕肆 幸 酉纫廖盼缮 幸磷商 spam 讼卧蚁萄
ssave_etype0='$1' 闻 炎萄旁友 南姓釉赏偻 聊遗酉
ssave_etype1='$1' 闻 炎萄旁友 南姓釉赏偻 聊遗酉 优陨
ssave_etype2='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 邢特谙琢耘萄
ssave_etype3='$1' 闻 炎萄旁友 南姓釉赏偻 南团蜗
ssave_ecode='$1' 闻 炎萄旁友 南姓釉赏偻 讼南 SMTP 羡陕松

relay_title=湎团挝裂 粢廖犹衙裳
relay_ecannot=髁 闻 伊谝袍盼 遗牧嗽梢献猎 南团挝绽 砸廖犹衙衫
relay_eversion=粝特讼 sendmail 着矣缮 8.9  踪叟 邢哪乓稚琢旁 南团挝绽 砸廖犹衙衫
relay_domains=湎团钨  伊谝袍盼蜗 砸廖犹衙膳 
relay_desc1=逵躺 闻 伊谝袍盼  幸磷商寥 <a href='$1'>spam 讼卧蚁萄</a>, sendmail 邢谧咸稍 嫌蛰庞宰萄载 砸廖犹衙衫  南团钨 信遗奚犹盼钨  邢膛 犹抛. 魅夏演膳 邢拊献倥 酉下菖紊 闻 幸拍瘟谖赁盼钨 奶 滔肆特蜗窍 邢特谙琢耘萄 商 奶 夏蜗窍 哨 信遗奚犹盼钨 南团蜗 抡恼 显乱羡盼.
relay_desc2=逵躺 琢哿 由釉磐 普嗡蒙衔梢张 肆 厶磊 奶 闻铀咸厮扇 南团蜗, 讼韵屹 闻南釉招钨 瘟幸淹绽 哨孜 琢叟 优陨 (捎邢特谡 普嗡蒙 <a href='$1'>南团挝鲜 土役艺陨诹蒙</a>), 韵悄 子 茉 南团钨 南讨钨 沦载 信遗奚犹盼 谀庞.
relay_err=镗陕肆 幸 酉纫廖盼缮 南团挝鲜 砸廖犹衙缮
relay_edomain='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 南团瘟

mailq_title=鹣拊献裂 镛乓拍
mailq_ecannot=髁 闻 伊谝袍盼 幸嫌土砸勺猎 邢拊献绽 限乓拍
mailq_id=ID 酉下菖紊
mailq_sent=鹣犹猎
mailq_from=镌
mailq_to=涮
mailq_status=笤猎沼
mailq_unknown=钆哨着釉蜗
mailq_sending=镌幸磷肆
mailq_dmsg=涮 幸嫌拖砸 酉下菖紊 哨 邢拊献鲜 限乓拍 瘟滞稍 闻 徘 ID  有捎伺 紊峙.
mailq_force=涮 闻团奶盼蜗 南釉磷松 酉下菖紊 哨 限乓拍 <a href='$1'>滞稍 永牧</a>.
mailq_none=镛乓拍 闻 酉呐抑稍 邢拊献偃 酉下菖紊 奶 南釉磷松
mailq_return=邢拊献绽 限乓拍

flushq_title=舐蚁 镛乓拍
flushq_desc=崴陨咨诹蒙 邢匈运 南釉磷松 邢拊 讼土文鲜 $1 ..

delq_err=镗陕肆 漳撂盼裳 酉下菖紊
delq_ecannot=髁 闻 伊谝袍盼 章梢猎 酉下菖紊 哨 限乓拍
delq_locked=绿纤梢献廖 奶 显淤趟

boxes_title=鹣拊献倥 褫伤
boxes_user=鹣特谙琢耘特
boxes_size=蛄谕乓 演伤
boxes_none=钆 邢拊
boxes_return=邢拊献倥 演伤
boxes_ecannot=髁 闻 伊谝袍盼 奚粤载 邢拊

mail_title=鹣拊 鹣特谙琢耘萄
mail_from=镌
mail_date=淞粤
mail_subject=襞土
mail_to=涮
mail_cc=胂猩
mail_for= $1
mail_compose=笙谀猎 蜗紫 酉下菖紊
mail_return=邢拊 邢特谙琢耘萄
mail_ecannot=髁 闻 伊谝袍盼 奚粤载 邢拊 牧挝锨 邢特谙琢耘萄

view_title=盼膳 鹣拊
view_desc=笙下菖紊 $1  $2 
view_qdesc=笙下菖紊 $1  限乓拍
view_headers=鹣拊献倥 诹窍滔姿
view_attach=魉汤夼紊
view_reply=镌着陨载
view_reply2=镌着陨载 子磐
view_forward=鹋遗犹猎
view_delete=跄撂稍
view_ecannot=髁 闻 伊谝袍盼 奚粤载 邢拊 牧挝锨 邢特谙琢耘萄

compose_title=笙谀廖膳 笙下菖紊
reply_title=镌着 瘟 笙下菖紊
forward_title=鹋遗淤趟 笙下菖紊
reply_headers=鹣拊献倥 诹窍滔姿
reply_attach=鹋遗淤塘磐倥 姿汤夼紊
reply_attach2=魉汤夼紊
reply_send=镌嫌塘载
reply_ecannot=髁 闻 伊谝袍盼 显淤塘载 邢拊  肆夼釉着 牧挝锨 邢特谙琢耘萄

send_err=镗陕肆 幸 显淤趟 邢拊
send_eto=镌诱杂宰张 聊遗 <tt>涮</tt>
send_title=鹣拊 显幸磷膛瘟
send_ok=鹣拊 沼信畚 显幸磷膛瘟 奶 $1
send_ecannot=髁 闻 伊谝袍盼 显淤塘载 邢拊  肆夼釉着 牧挝锨 邢特谙琢耘萄

acl_opts=硐峙 遗牧嗽梢献猎 辛伊团砸 sendmail?
acl_cws=硐峙 遗牧嗽梢献猎 滔肆特钨 南团钨?
acl_masq=硐峙 讼纹汕找梢献猎 南团挝绽 土铀梢献苏?
acl_trusts=硐峙 遗牧嗽梢献猎 南着遗挝偃 邢特谙琢耘膛?
acl_cgs=硐峙 遗牧嗽梢献猎 捎认难萆 南团钨?
acl_relay=硐峙 遗牧嗽梢献猎 南团挝绽 砸廖犹衙衫?
acl_mailers=硐峙 遗牧嗽梢献猎 南团挝绽 土役艺陨诹蒙?
acl_access=硐峙 遗牧嗽梢献猎 spam 讼卧蚁特?
acl_domains=硐峙 讼纹汕找梢献猎 南团挝绽 邢挠粤蜗姿?
acl_stop=硐峙 釉烈韵琢载  嫌粤瘟滋勺猎 sendmail?
acl_mailq=硐峙 招伊滋言 邢拊献鲜 限乓拍乩?
acl_viewdel=鹨嫌拖砸  漳撂盼膳
acl_view=粝特讼 幸嫌拖砸
acl_virtusers=崮遗游倥 邢挠粤蜗姿, 遗牧嗽梢张唾 牧挝偻 邢特谙琢耘膛
acl_none=钌夼窍
acl_all=饔
acl_matching=笙仔聊晾萆 
acl_vtypes=羯匈 聊遗游偃 邢挠粤蜗紫, 遗牧嗽梢张唾 牧挝偻 邢特谙琢耘膛
acl_vtype0=飨谧伊 羡陕松
acl_vtype1=涮 南团瘟
acl_vtype2=涮 聊遗恿
acl_vmax=砹擞赏撂匚吓 奚犹 聊遗游偃 邢挠粤蜗紫
acl_unlimited=钆锨伊紊夼蜗
acl_aliases=鹩抛南紊唾, 遗牧嗽梢张唾 牧挝偻 邢特谙琢耘膛
acl_atypes=羯匈 杏抛南紊拖, 遗牧嗽梢张唾 牧挝偻 邢特谙琢耘膛
acl_atype1=鹣拊献倥 聊遗恿
acl_atype2=崮遗恿  屏侍
acl_atype3=猩迂  屏侍
acl_atype4=鹋遗牧蘖  幸锨伊屯
acl_amax=砹擞赏撂匚吓 奚犹 杏抛南紊拖
acl_outgoing=橛认难萆 聊遗恿, 遗牧嗽梢张唾 牧挝偻 邢特谙琢耘膛
acl_read=鹣特谙琢耘躺, 挢 邢拊 拖峙 沦载 幸限稍廖
acl_users=鹣特谙琢耘躺
0707010005f325000081a40000000000000002000000013ac0389d00005d53000000200000000000000000000000000000001700000003reloc/sendmail/lang/sv    index_title=Inst鋖lningar f鰎 sendmail
index_econfig=Inst鋖lningsfilen $1 f鰎 sendmail finns inte. Dina <a href='$2'>modulinst鋖lningar</a> kanske 鋜 felaktiga.
index_eversion=Din inst鋖lningsfil f鰎 sendmail verkar inte h鰎a till den senaste sendmail-versionen. Webmin st鰀jer endast version 8.8 och h鰃re.
index_epath=Den exekverbara sendmail-filen $1 finns inte p ditt system. Dina <a href='$2'>modulinst鋖lningar</a> kanske 鋜 felaktiga eller ocks har sendmail inte installerats.
index_return=inst鋖lningar f鰎 sendmail
index_stop=Stanna sendmail
index_stopmsg=Tryck p denna knapp f鰎 att stanna den k鰎ande sendmail-processen. Detta g鰎 s att ingen e-post fr錸 andra system delas ut till lokala anv鋘dare och hindrar klienter som anv鋘der detta system som e-postserver att skicka e-post.
index_start=Starta sendmail
index_startmsg=Tryck p denna knapp f鰎 att starta sendmail med kommando $1. Innan sendmail startats delas ingen e-post fr錸 andra system ut till lokala anv鋘dare, och e-postklienter kan inte anv鋘da detta system som e-postserver.

opts_title=Inst鋖lningar f鰎 sendmail
opts_ecannot=Du f錼 inte 鋘dra sendmail-inst鋖lningarna
opts_ds=Skicka utg錯nde e-post via dator
opts_direct=Dela ut direkt
opts_dr=Skicka e-post till ok鋘da anv鋘dare vidare till dator
opts_dh=Skicka e-post till lokala anv鋘dare vidare till dator
opts_local=Dela ut lokalt
opts_queuela=Maximal genomsnittlig last f鰎 s鋘dning
opts_refusela=Maximal genomsnittlig last f鰎 mottagning
opts_maxch=Maximalt antal underprocesser
opts_throttle=Maximalt antal uppkopplingar/sekund
opts_minqueueage=Minsta v鋘tetid f鰎e 錿eruts鋘dningsf鰎s鰇
opts_runsize=Maximal k鰏torlek
opts_queuereturn=Tid tills servern ska sluta f鰎s鰇a
opts_queuewarn=Tid tills varning skickas
opts_queue=Katalog f鰎 e-postk
opts_postmaster=Skicka felmeddelanden till
opts_forward=Anv鋘darnas forward-filer
opts_minfree=Nedre gr鋘s f鰎 ledigt diskutrymme
opts_maxmessage=Maximal brevstorlek
opts_loglevel=Loggniv
opts_mimebounce=MIME-koda studsade brev?
opts_default=Standard
opts_save=Spara och genomf鰎
opts_err=Det gick inte att spara inst鋖lningarna
opts_ehost='$1' 鋜 inte ett giltigt dator- eller dom鋘namn
opts_einvalid='$1' 鋜 inte ett giltigt v鋜de f鰎 '$2'
opts_blame=Inst鋖lningar f鰎 filskydd
opts_selected=Valda ...
opts_blocks=blocks
opts_bytes=bytes
opts_dmode=S鋘dningsmod
opts_background=Bakgrunden
opts_queue-only=k鯽 endast
opts_interactive=Interaktiva
opts_deferred=F鰎senade

aliases_title=E-postalias
aliases_ecannot=Du f錼 inte 鋘dra alias
aliases_addr=Adress
aliases_to=Alias f鰎 ...
aliases_type1=Adress $1
aliases_type2=Adresser i fil $1
aliases_type3=Fil $1
aliases_type4=Program $1
aliases_type5=Automatsvarsfil $1
aliases_none=Inga
aliases_return=aliaslista

aform_type0=Inget
aform_type1=E-postadress
aform_type2=Adresser i fil
aform_type3=Skriv till fil
aform_type4=Skicka till program
aform_type5=Automatsvar fr錸 fil
aform_edit=膎dra alias
aform_create=Skapa alias
aform_name=Adress
aform_enabled=Aktiverat?
aform_val=Alias f鰎
aform_afile=膎dra ...
aform_return=alias

afile_title=膎dra adressfil
afile_desc=Anv鋘d inmatningsrutan nedan f鰎 att 鋘dra adresserna i filen $1
afile_efile=Du f錼 inte 鋘dra $1
afile_undo=舗gra 鋘dringar

rfile_title=膎dra filen f鰎 automatsvar
rfile_desc=Anv鋘d inmatningsrutan nedan f鰎 att 鋘dra automatsvarsmeddelandet i $1. Meddelandet f錼 inneh錶la f鰈jande makron: $SUBJECT, $FROM, $TO, $DATE och $BODY. Dessa kommer att expanderas d automatsvaret aktiveras.
rfile_efile=Du f錼 inte 鋘dra $1.
rfile_undo=舗gra 鋘dringar

asave_err=Det gick inte att spara alias
asave_ecannot2=Du f錼 inte 鋘dra alias
asave_ecannot=Du f錼 inte 鋘dra detta alias
asave_emax=Du f錼 inte skapa fler 鋘 $1 alias
asave_eaddr='$1' 鋜 inte en giltig adress
asave_ealready=Det finns redan ett alias f鰎 '$1'
asave_ematch=Du f錼 bara skapa alias som st鋗mer 鰒erens med '$1'
asave_etype=Du f錼 inte skapa alias av denna typ
asave_etype1='$1' 鋜 inte en giltig e-postadress
asave_etype2=Adressfilen '$1' 鋜 inte giltig eller finns inte
asave_etype3='$1' 鋜 inte ett giltigt filnamn
asave_etype4='$1' 鋜 inte ett giltigt program eller finns inte
asave_etype5=Automatsvarsfilen '$1' 鋜 inte giltig eller finns inte
asave_etype4none=Du har inte angivit n錱ot program

cws_title=Lokala dom鋘er
cws_ecannot=Du f錼 inte 鋘dra lokala dom鋘er
cws_domains=Dom鋘er som administreras av denna server
cws_desc1=Bortsett fr錸 e-post till $1 accepterar sendmail f鰎 lokal utdelning endast e-post till datorer och dom鋘er som r鋕nats upp i textrutan till v鋘ster. Om du vill att din e-postserver ska hantera flera e-postdom鋘er m錽te alla dessa r鋕nas upp i denna ruta.
cws_desc2=Observera att det normalt inte r鋍ker med att ta med en dom鋘 i listan. Du m錽te ocks skapa en DNS-post f鰎 dom鋘en, som pekar p ditt system.
cws_err=Det gick inte att spara lokala dom鋘er
cws_ehost='$1' 鋜 inte ett giltigt dator- eller dom鋘namn
cws_eip='$1' 鋜 en IP-adress, inte en dom鋘

masq_title=Maskering av dom鋘er
masq_ecannot=Du f錼 inte konfigurera maskeringen
masq_domain=Maskera som dom鋘
masq_domains=Dom鋘er som ska maskeras
masq_desc1=Om du har angivit en dom鋘 h鰃st upp kommer sendmail att g鰎a s att <tt>From</tt>-adressen f鰎 all utg錯nde e-post ser ut att finnas i denna dom鋘. Dessutom kommer alla e-postbrev som passerar ditt system fr錸 n錱on dator eller dom鋘 i listan till v鋘ster ocks att f sina <tt>From</tt>-adresser 鋘drade p detta vis. Observera att anv鋘dare kan g runt dom鋘maskeringen som definieras h鋜 genom att anv鋘da <a href='$1'>Utg錯nde adresser</a>-sidan.
masq_desc2=Detta tillval kan vara anv鋘dbart om du vill att e-post fr錸 ditt system ska se ut att komma fr錸 dom鋘en ist鋖let f鰎 fr錸 en enskild dator, eller om ditt system 鋜 e-postserver f鰎 datorer som k鰎 sina egna e-postservrar.
masq_err=Det gick inte att spara maskering av dom鋘er
masq_edomain='$1' 鋜 inte en giltig dom鋘 att maskera som
masq_ehost='$1' 鋜 inte ett giltigt dator- eller dom鋘namn
masq_eip='$1' 鋜 en IP-adress, inte en dom鋘

trusts_title=Betrodda anv鋘dare
trusts_ecannot=Du f錼 inte 鋘dra betrodda anv鋘dare
trusts_users=Lokala anv鋘dare som sendmail litar p
trusts_desc=Om en lokal anv鋘dare f鰎s鰇er skicka e-post, kommer sendmail endast att till錿a anv鋘daren att 鋘dra <tt>From:</tt>-adressen om han/hon finns p listan till v鋘ster. Denna restriktion finns f鰎 att f鰎hindra att anv鋘dare skickar e-post med falska avs鋘daradresser fr錸 ditt system.
trusts_err=Det gick inte att spara betrodda anv鋘dare
trusts_euser='$1' 鋜 inte en giltig anv鋘dare

virtusers_title=Adressomskrivningar
virtusers_ecannot=Du f錼 inte 鋘dra adressomskrivningar
virtusers_edirective=Din inst鋖lningsfil f鰎 sendmail inneh錶ler inte n鰀v鋘digt direktiv f鰎 adressomskrivning.
virtusers_efile=Textfilen $1 som adressomskrivningsdatabasen $2 byggs upp fr錸 finns inte. Du kanske beh鰒er 鋘dra i <a href='$3'>modulinst鋖lningarna</a> s att r鋞t s鰇v鋑 anv鋘ds.
virtusers_desc1=Adressomskrivningar liknar <a href='$1'>alias</a>, men 鋜 b鋞tre anpassade till ett system som hanterar flera e-postdom鋘er. De kan anv鋘das f鰎 att dirigera om e-post f鰎 en hel dom鋘 till en adress, hantera anv鋘dare med samma namn i skilda dom鋘er och skicka vidare all e-post fr錸 en dom鋘 till en annan.
virtusers_desc2=Observera att du m錽te ha lagt till en post i tabellen 鰒er <a href='$1'>lokala dom鋘er</a> f鰎 att dom鋘en ska kunna anv鋘das f鰎 adressomskrivning. Dessutom m錽te det finnas en DNS-MX-post f鰎 varje dom鋘 som pekar p ditt system.
virtusers_for=E-post till ...
virtusers_to=Skicka till ...
virtusers_error=Fel $1
virtusers_domain=Dom鋘 $1
virtusers_address=Adress $1
virtusers_return=adressomskrivningslista

vform_edit=膎dra adressomskrivning
vform_create=L鋑g till adressomskrivning
vform_for=E-post till
vform_address=Adress
vform_domain=Dom鋘
vform_to=Skicka till
vform_msg=meddelande
vform_error=Skicka felmeddelande
vform_err_nouser=ingen anv鋘dare
vform_err_nohost=ingen dator
vform_err_unav=otillg鋘glig
vform_err_temp=tillf鋖ligt fel
vform_err_proto=protokoll
vform_end=G till slutet
vform_ecannot=Du f錼 inte 鋘dra denna adressomskrivning

vsave_ecannot=Du f錼 inte 鋘dra adressomskrivningar
vsave_ecannot2=Du f錼 inte 鋘dra denna adressomskrivning
vsave_emax=Du f錼 inte l鋑ga upp mer 鋘 $1 adressomskrivningar
vsave_err=Det gick inte att spara adressomskrivningen
vsave_efrom='$1' 鋜 inte en giltig adress
vsave_efromdup=Det finns redan en adressomskrivning f鰎 '$1'
vsave_edom='$1' 鋜 inte en giltig dom鋘
vsave_edomdup=Det finns redan en adressomskrivning f鰎 '$1'
vsave_ematch=Ursprungsadressen st鋗mer inte med '$1'
vsave_ecannot3=Du f錼 inte l鋑ga upp omskrivningar till adresser
vsave_eaddr='$1' 鋜 inte en giltig adress
vsave_ecannot4=Du f錼 inte l鋑ga upp omskrivningar till dom鋘er
vsave_edomdom=Du kan bara skriva om en dom鋘 till en annan dom鋘
vsave_ecannot5=Du f錼 inte l鋑ga upp omskrivningar som ger fel

mailers_title=Dom鋘routing
mailers_cannot=Du f錼 inte 鋘dra dom鋘routingen
mailers_edirective=Din inst鋖lningsfil f鰎 sendmail inneh錶ler inte n鰀v鋘digt direktiv f鰎 dom鋘routing.
mailers_efile=Textfilen $1 som dom鋘routingdatabasen $2 byggs upp fr錸 finns inte. Du kanske beh鰒er 鋘dra dina <a href='$3'>modulinst鋖lningar</a> s att r鋞t s鰇v鋑 anv鋘ds.
mailers_desc1=Dom鋘routing 鋜 ett s鋞t att definiera en speciell 鰒erf鰎ingsmetod f鰎 e-post till vissa dom鋘er. Detta 鋜 anv鋘dbart om ditt system 鋜 gateway f鰎 e-postservrar som inte kan n錽 utifr錸 eller om du vill routa all e-post fr錸 en dom鋘 genom en annan server.
mailers_desc2=Det b鰎 <b>inte</b> finnas n錱on post i listan 鰒er <a href='$1'>lokala dom鋘er</a> f鰎 de routade dom鋘erna. D鋜emot b鰎 det finnas en DNS-MX-post som pekar p ditt system f鰎 varje dom鋘 som systemet agerar gateway f鰎.
mailers_for=E-post till ...
mailers_delivery=Befordran
mailers_to=Skicka till ...
mailers_return=dom鋘routinglista

mform_edit=膎dra routing
mform_create=L鋑g till routing
mform_for=E-post till
mform_host=Dator
mform_domain=Dom鋘
mform_delivery=Befordran
mform_to=Skicka till
mform_ignore=Ignorera MX f鰎 SMTP-befordran
mform_smtp=SMTP
mform_esmtp=Ut鰇ad SMTP
mform_smtp8=8-bitars-SMTP
mform_relay=SMTP-rel
mform_local=Lokal anv鋘dare
mform_prog=Skicka till program
mform_uucp=UUCp
mform_usenet=Posta till USENET
mform_fax=HylaFAX
mform_pop=POP3
mform_procmail=Procmail
mform_mail11=DECnet mail11
mform_error=Fel
mform_ecannot=Du f錼 inte 鋘dra dom鋘routing

msave_ecannot=Du f錼 inte 鋘dra dom鋘routing
msave_err=Det gick inte att spara dom鋘routing
msave_edomain='$1' 鋜 inte en giltig dator eller dom鋘
msave_edup=Det finns redan en dom鋘routing f鰎 '$1'

generics_title=Utg錯nde adresser
generics_cannot=Du f錼 inte 鋘dra utg錯nde adresser
generics_econfig=Din inst鋖lningsfil f鰎 sendmail inneh錶ler inte n鰀v鋘digt direktiv f鰎 omskrivning av utg錯nde adresser.
generics_efile=Textfilen $1 som databasen $2 f鰎 utg錯nde adresser byggs upp fr錸 finns inte. Du kanske beh鰒er 鋘dra dina <a href='$3'>modulinst鋖lningar</a> s att r鋞t s鰇v鋑 anv鋘ds.
generics_desc1=Omskrivning av utg錯nde adresser g鰎 att du kan 鋘dra <tt>From:</tt>-adresser p e-postbrev som skickas fr錸 ditt system eller skickas via ditt system fr錸 andra datorer p det lokala n鋞verket. Detta 鋜 anv鋘dbart om systemet hyser flera dom鋘er och du vill att e-post fr錸 vissa anv鋘dare ska se ut att komma fr錸 en annan dom鋘.
generics_desc2=Observera att det m錽te finnas en post i tabellen f鰎<a href='$1'>utg錯nde dom鋘er</a> f鰎 varje dom鋘 med adresser som du vill ha utg錯nde adressomskrivning f鰎. Observera ocks att adressomskrivningen inte fungerar f鰎 e-postbrev till lokala anv鋘dare.
generics_from=E-post fr錸 ...
generics_to=膎dra till ...
generics_return=adressomskrivningslista

gform_edit=膎dra adressomskrivning
gform_create=L鋑g till adressomskrivning
gform_from=E-post fr錸
gform_to=膎dra till
gform_ecannot=Du f錼 inte 鋘dra denna utg錯nde adress

gsave_ecannot=Du f錼 inte 鋘dra utg錯nde adresser
gsave_ecannot2=Du f錼 inte 鋘dra denna utg錯nde adress
gsave_err=Det gick inte att spara utg錯nde adresser
gsave_efrom='$1' 鋜 inte en giltig avs鋘daradress
gsave_ematch=Avs鋘daradressen st鋗mer inte med '$1'
gsave_eto='$1' 鋜 inte en giltig ny adress

cgs_title=Utg錯nde dom鋘er
cgs_ecannot=Du f錼 inte 鋘dra utg錯nde dom鋘er
cgs_header=Utg錯nde adressdom鋘er
cgs_desc=Bortsett fr錸 e-post som skickas av lokala anv鋘dare kommer sendmail endast att utf鰎a omskrivning av <a href='$1'>utg錯nde adresser</a> f鰎 e-post fr錸 datorer och dom鋘er som angivit i textrutan till h鰃er. F鰎 att en omskrivning f鰎 en utg錯nde adress ska fungera m錽te allts dom鋘en i avs鋘daradressen finnas i denna lista.
cgs_err=Det gick inte att spara utg錯nde dom鋘er
cgs_ehost='$1' 鋜 inte ett giltigt dator- eller dom鋘namn
cgs_eip='$1' 鋜 en IP-adress, inte en dom鋘

domains_title=Dom鋘omskrivning
domains_ecannot=Du f錼 inte 鋘dra dom鋘omskrivningar
domains_econfig=Din inst鋖lningsfil f鰎 sendmail inneh錶ler inte n鰀v鋘digt direktiv f鰎 dom鋘omskrivning.
domains_efile=Textfilen $1 som databasen $2 f鰎 dom鋘omskrivningar byggs upp fr錸 finns inte. Du kanske beh鰒er 鋘dra dina <a href='$3'>modulinst鋖lningar</a> s att r鋞t s鰇v鋑 anv鋘ds.
domains_desc=Dom鋘omskrivningar 鋘drar <tt>To:</tt>-adressen f鰎 e-post skickad fr錸, genom eller till ditt system.<tt>From:</tt>adressen f鰎 rel鋋de e-postbrev och brev till lokala anv鋘dare 鋘dras ocks. Detta 鋜 anv鋘dbart om du byter dom鋘namn och vill 鋘dra alla f鰎ekomster av det gamla namnet till det nya.
domains_from=Fr錸 dom鋘 ...
domains_to=Till dom鋘 ...
domains_return=dom鋘omskrivningslista

dform_edit=膎dra omskrivning
dform_create=L鋑g till omskrivning
dform_from=Fr錸 dom鋘
dform_to=Till dom鋘
dform_ecannot=Du f錼 inte 鋘dra dom鋘omskrivningar

dsave_ecannot=Du f錼 inte 鋘dra dom鋘omskrivningar
dsave_err=Det gick inte att spara dom鋘omskrivningar
dsave_edomain='$1' 鋜 inte ett giltigt dom鋘namn

access_title=Spam-kontroll
access_ecannot=Du f錼 inte konfigurera spam-kontrollen
access_econfig=Din inst鋖lningsfil f鰎 sendmail inneh錶ler inte n鰀v鋘digt direktiv f鰎 spam-kontroll.
access_efile=Textfilen $1 som databasen $2 f鰎 spam-kontroll byggs upp fr錸 finns inte. Du kanske beh鰒er 鋘dra dina <a href='$3'>modulinst鋖lningar</a> s att r鋞t s鰇v鋑 anv鋘ds.
access_desc1=Sendmails spam-kontroll g鰎 att dina anv鋘dare kan slippa spam genom att e-post fr錸 vissa adresser kastas. Kontrollen kan ocks anv鋘das f鰎 att hindra spammare att anv鋘da ditt system f鰎 att skicka ut e-post. Standardinst鋖lningen 鋜 att sendmail accepterar e-post fr錸 alla adresser till lokala anv鋘dare, men att den inte skickar vidare e-post fr錸 en annan e-postserver. Vanligtvis m錽te du allts sj鋖v l鋑ga till regler f鰎 att kasta e-post fr錸 spammare och f鰎 att till錿a andra e-postservrar att skicka e-post via ditt system.
access_desc2=Observera att sendmail som standard till錿er e-postklienter p ditt system att skicka vidare e-post via SMTP vart som helst. Detta inneb鋜 att du inte beh鰒er l鋑ga till det lokala n鋞verket <tt>127.0.0</tt> till listan 鰒er n鋞verk som f錼 skicka post genom systemet.
access_source=Ursprung ...
access_action=舤g鋜d ...
access_return=spam-kontrollista

sform_edit=膎dra spam-regel
sform_create=L鋑g till spam-regel
sform_source=E-postursprung
sform_type0=E-postadress
sform_type1=N鋞verk
sform_type2=Anv鋘dare
sform_type3=Dom鋘
sform_action=舤g鋜d
sform_ok=Acceptera
sform_relay=Till錿 rel鋋nde
sform_reject=Kasta
sform_discard=Kasta utan felmeddelande
sform_err=Felkod
sform_msg=Meddelande
sform_ecannot=Du f錼 inte 鋘dra spam-kontrollen

ssave_ecannot=Du f錼 inte 鋘dra spam-kontrollen
ssave_err=Det gick inte att spara spam-regeln
ssave_etype0='$1' 鋜 inte en giltig adress
ssave_etype1='$1' 鋜 inte en giltig n鋞verksadress
ssave_etype2='$1' 鋜 inte ett giltigt anv鋘darnamn
ssave_etype3='$1' 鋜 inte en giltig dom鋘
ssave_ecode='$1' 鋜 inte en giltig SMTP-felkod

relay_title=Rel鋋 dom鋘er
relay_ecannot=Du f錼 inte 鋘dra rel鋋de dom鋘er
relay_eversion=Endast sendmail version 8.9 och h鰃re st鰀jer rel鋋de dom鋘er.
relay_domains=Dom鋘er till錿na att rel鋋 till
relay_desc1=Sendmail rel鋋r endast till dom鋘er som till錿s via <a href='$1'>spam-reglerna</a> och dom鋘er som angivits i textrutan till v鋘ster. Inkommande e-post som inte ska till n錱on lokal anv鋘dare eller n錱on h鋜 angiven dom鋘 kommer att kastas.
relay_desc2=Om ditt system agerar gateway f鰎 andra dom鋘er som inte 鋜 direkt tillg鋘gliga fr錸 utsidan av ditt n鋞verk (med hj鋖p av <a href='$1'>dom鋘routing</a>), m錽te alla dessa dom鋘er anges h鋜.
relay_err=Det gick inte att spara rel鋋de dom鋘er
relay_edomain='$1' 鋜 inte ett giltigt dom鋘namn

mailq_title=E-postk
mailq_ecannot=Du f錼 inte titta p e-postk鰊
mailq_id=E-post-ID
mailq_sent=S鋘t
mailq_from=Fr錸
mailq_to=Till
mailq_size=Storlek
mailq_status=Status
mailq_unknown=Ok鋘d
mailq_sending=Skickar
mailq_dmsg=Klicka p ett ID i ovanst錯nde lista f鰎 att f upp brevet fr錸 e-postk鰊.
mailq_force=<a href='$1'>Tryck h鋜</a> f鰎 att omedelbart skicka k鯽d e-post.
mailq_none=E-postk鰊 鋜 tom.
mailq_return=e-postk
mailq_delete=Ta bort de valda meddelandena

flushq_title=Skicka k鯽de brev
flushq_desc=F鰎s鰇er skicka k鯽d e-post nu med kommando $1 ...

delq_err=Det gick inte att ta bort brevet
delq_ecannot=Du f錼 inte ta bort brevet
delq_locked=Filen 鋜 f鰎 tillf鋖let l錽t eftersom brev skickas
delq_enone=Du har inte valt n錱ot brev som ska tas bort
delq_title=Tar bort brev
delq_file=Tar bort brevfil file $1 ...
delq_efile=ogiltigt filnamn!
delq_egone=redan borttaget eller skickat
delq_elocked=l錽t eftersom brev skickas
delq_ok=klart

boxes_title=Anv鋘darnas brevl錮or
boxes_user=Anv鋘dare
boxes_size=Storlek p brevl錮a
boxes_none=Inga brev
boxes_return=brevl錮or
boxes_ecannot=Du f錼 inte l鋝a e-post

mail_title=Anv鋘dar-e-post
mail_from=Fr錸
mail_date=Datum
mail_subject=膔ende
mail_to=Till
mail_cc=Kopia till
mail_bcc=Osynlig kopia till
mail_pri=Prioritet
mail_highest=H鰃sta
mail_high=H鰃
mail_normal=Normal
mail_low=L錱
mail_lowest=L鋑sta
mail_for=I $1
mail_size=Storlek
mail_delete=Radera angivna brev
mail_compose=Skriv nytt brev
mail_return=anv鋘darpost
mail_pos=Brev $1 till $2 i $3
mail_none=Denna brevl錮a 鋜 tom
mail_ecannot=Du f錼 inte l鋝a e-post till denna anv鋘dare
mail_all=V鋖j allt
mail_invert=V鋖j allt utom redan valt
mail_search=S鰇 meddelanden d鋜
mail_body=Brevkroppen
mail_match=inneh錶ler
mail_ok=S鰇
mail_nonefrom=Ingen

view_title=L鋝 e-post
view_desc=Brev $1 i $2
view_qdesc=K鯽d e-post $1
view_headers=Rubriker
view_attach=Bilagor
view_reply=Svara
view_reply2=Svara till alla
view_forward=Skicka vidare
view_delete=Radera
view_ecannot=Du f錼 inte l鋝a e-post till denna anv鋘dare

compose_title=Skriv brev
reply_title=Svara p brev
forward_title=Skicka vidare brev
reply_headers=Rubriker
reply_attach=Vidares鋘da bilagor
reply_attach2=Bilagor
reply_send=Skicka
reply_ecannot=Du f錼 inte skicka e-post som denna anv鋘dare

send_err=Det gick inte att skicka brevet
send_eto=Mottagaradress saknas
send_efrom=Avs鋘daradress saknas
send_title=Skickat brev
send_ok=Brevet skickat till $1
send_ecannot=Du f錼 inte skicka e-post som denna anv鋘dare
send_esmtp=SMTP-kommando $1 misslyckades: $2
send_efile=Den bifogade filen $1 finns inte
send_eattach=Den sammanlagda storleken p bilagorna f錼 inte vara st鰎re 鋘 $1 kB
send_eperms=Anv鋘dare $1 kan inte l鋝a $2
send_eperms2=Du f錼 inte skicka filen $1

delete_ecannot=Du f錼 inte radera e-post fr錸 denna anv鋘dare
delete_enone=Du har inte angivit vilket meddelande som ska tas bort

search_title=S鰇resultat
search_ecannot=Du f錼 inte s鰇a i denna anv鋘dares e-post
search_ematch=Du m錽te ange en text som brevet ska inneh錶la
search_none=Inget brev passade in p angivna villkor
search_results=Brev som matchar $1 ...

file_title=膎dra Sendmail-filen
file_desc=Anv鋘d inmatningsrutan nedan f鰎 att manuellt 鋘dra i Sendmail-filen $1
file_undo=舗gra 鋘dringar
file_edit=膎dra $1 manuellt
file_ealiases=Du kan bara 鋘dra en alias-fil om du har tillg錸g till alla alias.
file_evirtusers=Du kan bara 鋘dra adress鰒ers鋞tningsfilen om du har tillg錸g till alla adress鰒ers鋞tningar. 
file_emailers=Du f錼 inte 鋘dra dom鋘routingsfilen.
file_egenerics=Du f錼 bara 鋘dra filen f鰎 utg錯nde adresser om du har tillg錸g till alla utg錯nde adresser.
file_edomains=Du f錼 inte 鋘dra dom鋘鰒ers鋞tningsfilen. 
file_eaccess=Du f錼 inte 鋘dra spam-kontrollfilen. 
file_emode=Ok鋘d mode!
file_err=Det gick inte att 鋘dra filen

acl_opts=Kunna 鋘dra sendmail-inst鋖lningar?
acl_cws=Kunna 鋘dra lokala dom鋘er?
acl_masq=Kunna konfigurera maskering av dom鋘er?
acl_trusts=Kunna 鋘dra betrodda anv鋘dare?
acl_cgs=Kunna 鋘dra utg錯nde dom鋘er?
acl_relay=Kunna 鋘dra rel鋋de dom鋘er?
acl_mailers=Kunna konfigurera dom鋘routing?
acl_access=Kunna konfigurera spam-kontroll?
acl_domains=Kunna konfigurera dom鋘omskrivning?
acl_stop=Kunna starta och stanna sendmail?
acl_mailq=Kunna g鰎a ingrepp i e-postk鰊?
acl_viewdel=Granska och radera
acl_view=Endast granska
acl_virtusers=Adressomskrivningar som denna anv鋘dare f錼 鋘dra
acl_none=Inga
acl_same=Anv鋘dare med samma namn
acl_all=Alla
acl_matching=Som st鋗mer med
acl_vtypes=Adressomskrivningstyper som denna anv鋘dare f錼 鋘dra
acl_vtype0=Ge fel
acl_vtype1=Till dom鋘
acl_vtype2=Till adress
acl_vmax=Maximalt antal adressomskrivningar
acl_unlimited=Obegr鋘sat
acl_aliases=Alias som denna anv鋘dare f錼 鋘dra
acl_atypes=Aliastyper som denna anv鋘dare f錼 鋘dra
acl_atype1=E-postadress
acl_atype2=Adresser i fil
acl_atype3=Skriv till fil
acl_atype4=Skicka till program
acl_atype5=Automatsvar
acl_amax=Maximalt antal alias
acl_outgoing=Utg錯nde adresser som denna anv鋘dare f錼 鋘dra
acl_read=Anv鋘dare vars e-post f錼 l鋝as
acl_users=Endast anv鋘dare
acl_userse=Alla utom anv鋘dare
acl_usersg=Medlemmar i grupp
acl_from=Till錿na avs鋘daradresser
acl_any=Alla
acl_fdoms=brevl錮a@dom鋘er
acl_faddrs=Angivna adresser
acl_fdom=valfri adress@dom鋘
acl_apath=Begr鋘sa filer och program till katalog
acl_attach=Maximal sammanlagd storlek p bilagor 

log_opts=膎drade sendmail-inst鋖lningar
log_alias_create=Lade till alias $1
log_alias_modify=Modifierade alias $1
log_alias_delete=Tog bort alias $1
log_alias_manual=膎drade aliasfilen $1 f鰎 hand
log_cws=膎drade lokala dom鋘er
log_masq=膎drade dom鋘maskering
log_trusts=膎drade betrodda anv鋘dare
log_virtuser_create=Lade till adressomskrivning $1
log_virtuser_modify=Modifierade adressomskrivning $1
log_virtuser_delete=Tog bort adressomskrivning $1
log_virtuser_manual=膎drade adressomskrivningsfilen $1 f鰎 hand
log_mailer_create=Lade till dom鋘routing $1
log_mailer_modify=Modifierade dom鋘routing $1
log_mailer_delete=Tog bort dom鋘routing $1
log_mailer_manual=膎drade dom鋘routingfilen $1 f鰎 hand
log_generic_create=Lade till utg錯nde adress $1
log_generic_modify=Modifierade utg錯nde adress $1
log_generic_delete=Tog bort utg錯nde adress $1
log_generic_manual=膎drade filen $1 med utg錯nde adresser f鰎 hand
log_cgs=膎drade utg錯nde dom鋘er
log_domain_create=Lade till dom鋘omskrivning $1
log_domain_modify=Modifierade dom鋘omskrivning $1
log_domain_delete=Tog bort dom鋘omskrivning $1
log_domain_manual=膎drade dom鋘omskrivningsfilen $1 f鰎 hand
log_access_create=Lade till spam-kontroll f鰎 $1
log_access_modify=Modifierade spam-kontroll f鰎 $1
log_access_delete=Tog bort spam-kontroll f鰎 $1
log_access_manual=膎drade spam-kontrollfilen $1 f鰎 hand
log_relay=膎drade rel鋋de dom鋘er
log_flushq=Skickade k鯽de brev
log_delmailq=Tog bort brev fr錸 $1 fr錸 k鰊
log_delmailqs=Tog bort $1 brev fr錸 k鰊
log_stop=Stannade sendmail-demonen
log_start=Startade sendmail-demonen
log_delmail=Tog bort $1 brev fr錸 $2
log_send=Skickade e-post till $1

match_from=From: matchar
match_subject=Subject: matchar
match_to=To: matchar
match_cc=Cc: matchar
match_date=Date: matchar
match_body=Inneh錶let matchar
match_size=Storleken mer 鋘
 0707010005f326000081a40000000000000002000000013ac0389d00005b92000000200000000000000000000000000000001700000003reloc/sendmail/lang/tr    index_title=Sendmail Yap齦and齬mas
index_econfig=Sendmail yap齦and齬ma dosyas $1 mevcuut de餴l.Sizin <a href='$2'>mod黮 yap齦and齬man齴</a> do餽u olmayabilir
index_eversion=Sendmail yap齦and齬ma dosyan齴齨 versiyonu belirlenenden k黭.Webmin sadece Sendmail 8.8 ve 黶t黱 destekler
index_epath=Sendmail 鏰lt齬齦abilir dosyas sisteminize kurulu de餴l.Sizin<a href='$2'>mod黮 yap齦and齬ma</a> dosyan齴 do餽u olmayabilir ya da sisteminizde sendmail kurulu olmayabilir
index_return=sendmail yap齦and齬mas
index_stop=Sendmail'i Durdur
index_stopmsg=Bu butonu t齥layarak 鏰lan sendmail iemini durdurabilirsiniz. Durdu饀nda di餰r sistemlerden yerel kullan齝齦ara g鰊derilen postalar duracak ve posta g鰊dermek i鏸n posta sunucusu kullanan istemcilerin iemleri engellenecektir
index_start=Sendmail'i 莂lt齬
index_startmsg=Bu butonu t齥layarak sendmail'in 鏰lmas齨 sa餷ayabilirsiniz. Bu iem bitene kadar di餰r sistemlerden yerel kullan齝齦ara posta gelmeyecek ve posta g鰊dermek i鏸n posta sunucusu olarak kullanan istemciler kullanamayacakt齬

opts_title=Sendmail Se鏴nekleri
opts_ecannot=Sendmail se鏴neklerini de餴⺶irmeye izininiz yoktur
opts_ds=D postalar makineye g鰊der
opts_direct=Do餽udan g鰊der
opts_dr=Mutlak kullan齝 isimlerini makineye g鰊der
opts_dh=Yerel kullan齝齦ar i鏸n postay makineye d鰊d黵
opts_local=Yerel olarak da瘕t
opts_queuela=G鰊derme i鏸n en 鏾k y黭leme s齨齬
opts_refusela=Almak i鏸n en 鏾k y黭leme s齨齬
opts_maxch=En 鏾k 鏾cuk iem say齭
opts_throttle=En 鏾k / saniye
opts_minqueueage=G鰊dermeden 鰊ceki en k齭a zaman
opts_runsize=En b鼀黭 kuyruk boyutu
opts_queuereturn=Vazge鏸lmeden 鰊ceki s黵e
opts_queuewarn=G鰊derme uyar齭齨dan 鰊ceki s黵e
opts_queue=Posta kuyruk dizini
opts_postmaster=Hata mesajlar g鰊der
opts_forward=Kullan齝 d鰊d黵me dosyalar
opts_minfree=En az bo disk alan
opts_maxmessage=En b鼀黭 mesaj boyutu
opts_loglevel=Log seviyesi
opts_mimebounce=Srama mesajlar齨 MIME 㱮frele?
opts_default=謓tan齧l
opts_save=Kaydet ve Uygula
opts_err=Se鏴neklerin kaydedilmesinde hata olu⺶u
opts_ehost='$1' ge鏴rli bir makine ya da alan ismi de餴l
opts_einvalid='$1', '$2' i鏸n ge鏴rli bir de餰r de餴l
opts_blame=Dosya g黺enlik se鏴nekleri
opts_selected=Se鏸li..
opts_blocks=blok
opts_bytes=byte
opts_dmode=Da瘕t齝 modu
opts_background=Arka plan
opts_queue-only=Sadece kuyruk
opts_interactive=Etkile㱮mli
opts_deferred=Ertelendi

aliases_title=Posta Takma Adlar
aliases_ecannot=Takma adlar de餴⺶irmenize izin verilmedi
aliases_addr=Adresler
aliases_to=Takma isim ..
aliases_type1=Adres $1
aliases_type2=$1 dosyas齨daki adresler
aliases_type3=$1 dosyas
aliases_type4=$1 program
aliases_type5=$1 dosyas齨 geri g鰊der
aliases_none=Hi鏱iri
aliases_return=takma isim listesi

aform_type0=Hi鏱iri
aform_type1=E-posta adresi
aform_type2=Dosyadaki adresler
aform_type3=Dosyaya yaz
aform_type4=Program besle 
aform_type5=Dosyadan geri g鰊der
aform_edit=Takma isimleri de餴⺶ir
aform_create=Takma isim olu⺶ur
aform_name=Adres
aform_enabled=Ge鏴rli mi?
aform_val=Takma isim
aform_afile= De餴⺶ir...
aform_return=takma isim

afile_title=Adres Dosyas齨 De餴⺶ir
afile_desc=$1 dosyas齨daki adresleri de餴⺶irmek i鏸n d鼁 metin yaz齭 kutusunu kullan齨齴.
afile_efile=$1'i de餴⺶irmek i鏸n izininiz yoktur.
afile_undo=De餴㱮klikleri Geri Al

rfile_title=Otomatik Geri G鰊derilem Mesaj De餴⺶ir
rfile_desc=$1'deki otomatik geri g鰊derilem mesaj de餴⺶irmek i鏸n d鼁 metin yaz齭 alan齨 kullan齨齴.Geri g鰊derme aktif hale getirildi餴nde mesaj $SUBJECT, $FROM, $TO, $DATE ve $BODY makrolar eklenerek genietilebilir.
rfile_efile=$1'i de餴⺶irmek i鏸n izininiz yoktur
efile_undo=De餴㱮klikleri Geri Al

asave_err=Takma isimlerinin kaydedilmesinde hata olu⺶u
asave_ecannot2=Takma isimleri de餴⺶irmenize izin verilmedi
asave_ecannot=Bu takma isimi de餴⺶irmenize izin verilmedi
asave_emax=$1'den daha 鏾k takma isim de餴⺶irmenize izin verilmedi
asave_eaddr='$1' ge鏴rli bir adres de餴l
asave_ealready=$1 i鏸n bir takma isim her zaman mevcut
asave_ematch=Sadece takma isimleri olu⺶ururken karla⺶齬malar yapman齴a izin verildi
asave_etype=Bu tipin takma isimlerini olu⺶uramazs齨齴
asave_etype1='$1' ge鏴rli bir e-posta adresi de餴l
asave_etype2=$1 adres dosyas ge鏴rli de餴l ya da mevcut de餴l
asave_etype3='$1' ge鏴rli bir dosya ismi de餴l
asave_etype4='$1' ge鏴rli bir program de餴l ya da mevcut de餴l
asave_etype5=Geri d鰊d黵me dosyas $1 ge鏴rli de餴l ya da mevcut de餴l
asave_etype4none=Program girilmedi

cws_title=Yerel Alanlar
cws_ecannot=Yerel alanlar de餴⺶irmenize izin verilmedi
cws_domains=Alanlar bu sunucu taraf齨dan tutulmaktad齬
cws_desc1=$1'e gelen posta hari, sendmail sadece sol taraftaki yaz kutusundaki alan ve makine adlar i鏸n yerel posta da瘕t齝齦齨 yapacakt齬. E餰r 鏾klu e-posta alanlar齨 tutmak istiyorsan齴 bu formda listelemelisiniz. 
cws_desc2=Listedeki bir alan genellikle tek bana yeterli de餴ldir.
cws_err=Yerel alanlanlar齨 kaydedilmesinde hata olu⺶u
cws_ehost='$1' ge鏴rli bir alan ya da makine ismi de餴l
cws_eip='$1' bir IP adresidir, alan ad de餴ldir

masq_title=Alan Maskeleme
masq_ecannot=Maskelemeyi yap齦and齬man齴a izininiz yoktur
masq_domain=Alan maskele
masq_domains=Maskelenmi olan alanlar
masq_desc1=E餰r bir alan yukar gidiyorsa, sendmail bu alandan gelen g鰎黱en b黷黱 d mesajlar齨 <tt>From</tt> adres k齭m齨 de餴⺶irecektir.Ayr齝a sisteminizden ge鏴n soldaki listedeki alan ya da makine isimlerinden gelen postalarda da <tt>From</tt> k齭m da ayn yolla de餴⺶irilecektir.Tan齨lanan bu alan maskelemeleri 鰊emli kullan齝齦ar齨 kulland <a href='$1'>D Adresler</a> sayfas齨dan 鰊emli olmal齞齬
masq_desc2=Bu mesaj makine ad齨齴dan g鰊dermektense alan齨齴daki sisteminizden  g鰊dermek isterseniz, ya da sisteminizi di餰r makinelerin 鏰lan posta sunucular齨齨 merkezi yapmak i鏸n  olduk鏰 kullanl齞齬  
masq_err=Alan maskelemesinin kaydedilmesinde hata olu⺶u
masq_edomain='$1' maskelenecek ge鏴rli bir alan ad de餴l
masq_ehost='$1' ge鏴rli bir alan ya da makine ad de餴l
masq_eip='$1' bir IP adresidir, alan ad de餴ldir

trusts_title=Do餽ulanm Kullan齝齦ar
trusts_ecannot=Do餽ulanm kullan齝齦ar de餴⺶irmek i鏸n izininiz yoktur
trusts_users=Sendmail ile do餽ulanm yerel kullan齝齦ar
trusts_desc=Yerel kullan齝齦ar e-posta g鰊dermeyi denedi餴nde, e餰r kullan齝 soldaki listede ise sendmail farkl bir <tt>From:</tt> kullan齝齭齨a posta g鰊derilmesine izin verir.
trusts_err=Do餽ulanm kullan齝齦ar齨 kaydedilmesinde hata olu⺶u
trusts_euser='$1' ge鏴rli bir kullan齝 ed de餴l

virtusers_title=Adres Haritaland齬ma
virtusers_ecannot=Adres haritaland齬mas齨 de餴⺶irmek i鏸n izininiz yoktur
virtusers_edirective=Sendmail yap齦and齬ma dosyan齴 adres haritaland齬mas i鏸n gerekli komutlar i鏴rmiyor
virtusers_efile=Adres haritaland齬ma veritaban $2'nin ins齨da kullan齦an $1 yaz dosyas mevcut de餴l.Belki do餽u yolu bulmak i鏸n <a href='$3'>mod黮 yap齦and齬mas</a>y de餴⺶irmeye ihtiyac齨齴 vard齬
virtusers_desc1=Adres haritaland齬malar <a href='$1'>takma adlar</a>a benzer. Fakat daha 鏾k 鏾klu e-posta alanlar齨 tutmak i鏸n kullan齦an bir sistemdir.Bir adresin b黷黱 alanlar齨a do餽udan posta g鰊dermek i鏸n, farkl alanlardaki ayn kullan齝齦ar齨 hesaplar齨 kontrol etmek i鏸n ya da bir alandan di餰r birine g鰊derilen postalar haritaland齬mak i鏸n kullan齦齬
virtusers_desc2=Adres haritaland齬ma i鏸n kullan齦an herhangi alanlar <a href='$1'>yerel alanlar</a> tablosuna girmelisiniz ve sisteminizdeki alan齨 tan齧lanmas i鏸n DNS MX kay齮lar齨 girmelisiniz
virtusers_for=Posta..
virtusers_to=G鰊der..
virtusers_error=$1 Hatas
virtusers_domain=$1 Alan
virtusers_address=$1 Adresi
virtusers_return=adres haritaland齬ma listesi

vform_edit=Haritaland齬may De餴⺶ir
vform_create=Haritaland齬ma Olu⺶ur
vform_for=Posta
vform_address=Adres
vform_domain=Alan
vform_to=g鰊der
vform_msg=mesaj
vform_error=Olun hata
vform_err_nouser=kullan齝 yok
vform_err_nohost=makine yok
vform_err_unav=ulalamaz
vform_err_temp=ge鏸ci hata
vform_err_proto=protokol
vform_end=Sona ta
vform_ecannot=Bu adres haritaland齬mas齨 de餴⺶irmek i鏸n izininiz yoktur

vsave_ecannot=Adres haritaland齬mas齨 de餴⺶irmek i鏸n izininiz yoktur
vsave_ecannot2=Bu adres haritaland齬mas齨 de餴⺶irmek i鏸n izininiz yoktur
vsave_emax=$1'den fazla adres haritaland齬mas olu⺶urmak i鏸n izininiz yoktur
vsave_err=Adres haritaland齬mas齨齨 kaydedilmesinde hata olu⺶u
vsave_efrom='$1' ge鏴rli bir adres de餴l
vsave_efromdup=$1 i鏸n adres haritas her zaman tan齧l
vsave_edom='$1' ge鏴rli bir alan de餴l
vsave_edomdup=$1 i鏸n adres haritas her zaman tan齧l
vsave_ematch=Kaynak adresi '$1'e benzemiyor
vsave_ecannot3=Adres haritalar齨 olu⺶urmak i鏸n izininiz yoktur
vsave_eaddr='$1' ge鏴rli bir adres de餴l
vsave_ecannot4=Alan haritalar齨 olu⺶urmak i鏸n izininiz yoktur
vsave_edomdom=Di餰r alan i鏸n sadece bir alan haritaland齬齦abilir
vsave_ecannot5=Hata haritalar齨 olu⺶urmak i鏸n izininiz yoktur

mailers_title=Alan Y鰊lendirme
mailers_cannot=Alan y鰊lendirmeleri de餴⺶irmenize izin verilmemi⺶ir
mailers_edirective=Sendmail yap齦and齬ma dosyan齴 alan y鰊eldirme i鏸n gerekli komutlar i鏴rmiyor
mailers_efile=Alan y鰊lendirme veri taban $2'nin ins齨da kullan齦an $1 dosyas mevcut de餴l 
mailers_desc1=Alan y鰊lendirmeyi sa餷aman齨 bir yolu da belirli alanlara posta g鰊dermek i鏸n 鰖el transfer y鰊temi tan齧lamakt齬. Sisteminiz posta sunucular i鏸n bir a ge鏸di ise a瘕n齴a dar齞an ulalamaz ya da isterseniz di餰r sunucudan y鰊lendirilmi olan par鏰l alan i鏸n  sistminizi glendirebilirsiniz.
mailers_desc2=Herhangi y鰊lendirilmi alanlar i鏸n <a href='$1'>yerel alanlar</a> listesine bir㧐y girmemelisiniz.Bununla birlikte, herhangi alanda a ge鏸di olan sisteminiz i鏸n DNS MX kayd齨a sahip olmal齭齨齴
mailers_for=Posta..
mailers_delivery=Da瘕t齝
mailers_to=G鰊der..
mailers_return=alan y鰊lendirme listesi

mform_edit=Y鰊lendirmeyi De餴⺶ir
mform_create=Y鰊lendirme Olu⺶ur
mform_for=Posta
mform_host=Makine Ad
mform_domain=Alan
mform_delivery=Da瘕t齝
mform_to=G鰊der
mform_ignore=SMTP da瘕t齝齦ar i鏸n MX'leri ge
mform_smtp=SMTP
mform_esmtp=Uzat齦m SMTP
mform_smtp8=8-bit SMTP
mform_relay=SMTP iletimi
mform_local=Yerel kullan齝
mform_prog=Program besle
mform_uucp=UUCp
mform_usenet=USENET'e  g鰊der
mform_fax=HylaFAX
mform_pop=POP3
mform_procmail=Procmail
mform_mail11=DECnet mail11
mform_error=Hata
mform_ecannot=Alan y鰊lendirmeyi de餴⺶irmeye izininiz yoktur

msave_ecannot=Alan y鰊lendirmeyi de餴⺶irmeye izininiz yoktur
msave_err=Alan y鰊lendirmenin kaydedilmesinde sorun olu⺶u
msave_edomain='$1' ge鏴rli bir makine ya da alan ad de餴ldir
msave_edup='$1' i鏸n alan y鰊lendirme her zaman mevcut

generics_title=Da Giden Adresler
generics_cannot=Da giden adresleri de餴⺶irmeye hakk齨齴 yoktur
generics_econfig=Sendmail yap齦and齬ma dosyan齴 d adres haritaland齬mas i鏸n gerekli komutlar i鏴rmiyor
generics_efile=D adres veritaban $2'nin ins齨da kullan齦an $1 yaz
dosyas mevcut de餴ldir.Do餽u yolu bulmak i鏸n <a href='$3'>mod黮
yap齦and齬mas</a>n de餴⺶irmeniz gerekmektedir 
generics_desc1=D adres haritalar sisteminizden ya da yerel a瘕n齴daki di餰r makinelerden g鰊derilen postalar齨 <tt>From:</tt> adres k齭齧lar齨齨 de餴⺶irilmesine izin verir.
generics_desc2=<a href='$1'>Da alanlar</a> tablosunda olmas齨 istedi餴niz d haritaland齬ma i鏸n her alan girmeniz gerekmektedir.Bu da adresleme haritaland齬mas yerel kullan齝齦ara g鰊derilmi olan postalar i鏸n 鏰lmaz
generics_from=Posta..
generics_to=De餴⺶ir...
generics_return=adres haritaland齬ma listesi

gform_edit=Haritaland齬may De餴⺶ir
gform_create=Haritaland齬ma Olu⺶ur
gform_from=Posta
gform_to=De餴⺶ir
gform_ecannot=Bu d adresi de餴⺶irmenize izin verilmemi⺶ir

gsave_ecannot=D adresleri de餴⺶irmenize izin verilmemi⺶ir
gsave_ecannot2=Bu d adresi de餴⺶irmenize izin verilmemi⺶ir
gsave_err=D adresin kaydedilmesinde hata olu⺶u
gsave_efrom='$1' ge鏴rli bir gelen adresi de餴l
gsave_ematch=From adresi '$1'e uymuyor
gsave_eto='$1' ge鏴rli bir yeni adres de餴l

cgs_title=Da Giden Alanlar
cgs_ecannot=Da giden alanlar de餴⺶irmeye hakk齨齴 yoktur
cgs_header=D adres alanlar
cgs_desc=Yerel kullan齝齦ara g鰊derilen mesajlar haricinde, sendmail sadece sa餯aki yaz kutusunda listelenmi makine ya da alanlardan gelen postalar i鏸n <a href='$1'>d adres</a> haritaland齬mas齨 yapar.Bu 㧐kilde d adres girieri listede bulunan adreslerdeki alanlarda 鏰l齬
cgs_err=D alan齨 kaydedilmesinde hata olu⺶u
cgs_ehost='$1' ge鏴rli bir alan ya da makine de餴l
cgs_eip='$1' bir IP adresidir, alan de餴ldir.

domains_title=Alan Haritaland齬mas
domains_ecannot=Alan haritaland齬mas齨 de餴⺶irmeye izininiz yoktur.
domains_econfig=Sendmail yap齦and齬ma dosyan齴 alan haritaland齬mas i鏸n gerekli komutlar i鏴rmiyor.
domains_efile=Adres haritaland齬ma veritaban $2'nin ins齨da kullan齦an $1 yaz dosyas mevcut de餴l.Do餽u yolu kullanabilmek i鏸n belki de <a href='$3'>mod黮 yap齦and齬ma</a>y de餴⺶irmeniz gerekmektedir.
domains_desc=Alan haritaland齬mas sisteminizdeki kullan齝齦ara iletilenden ya da g鰊derilen postalardaki <tt>To:</tt> adres k齭m齨 de餴⺶irir.
domains_from=Alandan..
domains_to=Alana..
domains_return=alan haritaland齬ma listesi

dform_edit=Haritaland齬may de餴⺶ir
dform_create=Haritaland齬ma Olu⺶ur
dform_from=Alandan
dform_to=Alana
dform_ecannot=Haritaland齬may de餴⺶irmeye izininiz yoktur

dsave_ecannot=Alan haritaland齬mas齨 de餴⺶irmeye izininiz yoktur.
dsave_err=Alan haritaland齬mas齨齨 kaydedilmesinde hata olu⺶u
dsave_edomain='$1' ge鏴rli bir alan ad de餴ldir

access_title=Spam Kontrol
access_ecannot=Spam kontrol yap齦and齬mas齨 de餴⺶irmeye izininiz yoktur.
access_econfig=Sendmail yap齦and齬ma dosyan齴da spam kontrol i鏸n gerekli komutlar i鏴rmemektedir.
access_efile=Adres haritaland齬ma veritaban $2'nin ins齨da kullan齦an $1 yaz dosyas mevcut de餴ldir.Do餽u yol tan齧lamalar齨 bulmak i鏸n belki de  <a href='$3'>mod黮 yap齦and齬mas</a>n de餴⺶irmelisiniz.
access_desc1=Sendmail'in spam kontrol 鰖elli餴, belirli adreslerden  reddedilen postalar ile eri㱮len kullan齝齦ar齨齴dan yap齦an spam'i ve posta g鰊dermek i鏸n sisteminizi kullanan reddedilen spammer' engellemenize izin verir. 謓tan齧l sendmail yap齦and齬mas yerel kullan齝齳a herhangi bir adresten gelen postalar kabul eder, ama sisteminizden g鰊derilenler herhangi bir posta sunucusu ya da istemcisi taraf齨dan reddedilir.
access_desc2=Sendmail sisteminizde posta istemcilerinin herhangi bir hedefe SMTP yoluyla g鰊dermesine izin verir. B鰕lece g鰊derme izini listesine yerel <tt>127.0.0</tt> a瘕n eklemenize ihtiya kalmayacakt齬
access_source=Kaynak..
access_action=Servis..
access_return=spam kontrol listesi

sform_edit=Spam Kontrol Kurallar齨 De餴⺶ir
sform_create=Spam Kontrol Kural Olu⺶ur
sform_source=Posta Kayna瘕
sform_type0=E-posta adresi
sform_type1=A
sform_type2=Kullan齝
sform_type3=Alan
sform_action=Servis
sform_ok=Kabul
sform_relay=輑etime 輟in Ver
sform_reject=Reddet
sform_discard=Sil
sform_err=Hata kodu
sform_msg=Mesaj
sform_ecannot=Spam kontrol yap齦and齬mas齨 de餴⺶irmeye izininiz yoktur.

ssave_ecannot=Spam kontrol yap齦and齬mas齨 de餴⺶irmeye izininiz yoktur.
ssave_err=Spam kontrol kurallar齨齨 kaydedilmesinde hata olu⺶u
ssave_etype0='$1' ge鏴rli bir adres de餴ldir
ssave_etype1='$1' ge鏴rli bir a maskesi de餴ldir
ssave_etype2='$1' ge鏴rli bir kullan齝 ad de餴ldir
ssave_etype3='$1' ge鏴rli bir alan de餴ldir
ssave_ecode='$1' ge鏴rli bir SMTP hata kodu de餴ldir

relay_title=輑etilen Alanlar
relay_ecannot=輑etilen alanlar de餴⺶irmeye izininiz yoktur.
relay_eversion=Sendmail'in sadece 8.9 ve 鼁eri s黵黰leri iletilen alanlar 鰖elli餴ni destekler
relay_domains=Alanlar齨 iletilmesi kabul edildi
relay_desc1=<a href='$1'>Spam kontrol</a> kurallar kabul edilmezse, sendmail sadece soldaki yaz kutusunda listelenmi alanlara g鰊derilmesine izin verir. E餰r gelen mesajlar yerel kullan齝 ya da listedeki kullan齝齦ardan birine ait de餴lse reddedilir.
relay_desc2=E餰r sisteminiz 鏴㱮tli alanlar i鏸n a ge鏸di hizmeti sunuyorsa a瘕n齴a listelenmi alanlar hari dar齞an do餽udan eri㱮lemez (<a href='$1'>alan y鰊lendirme</a> 鰖elli餴 kullan齦齬).
relay_err=Alan iletiliminin kaydedilmesinde hata olu⺶u
relay_edomain='$1' ge鏴rli bir lan ad de餴ldir

mailq_title=Posta Kuyru饀
mailq_ecannot=Posta kuyru饀nu g鰎mek i鏸n izininiz yoktur.
mailq_id=Posta ID
mailq_sent=G鰊der
mailq_from=Nereden
mailq_to=Nereye
mailq_size=Boyut
mailq_status=Durum
mailq_unknown=Bilinmeyen
mailq_sending=G鰊derilen
mailq_dmsg=E-posta kuyru饀ndaki mesajlar g鰎mek i鏸n listedeki numaras齨 t齥lay齨齴
mailq_force=E-postan齨 da瘕t齝 komutu i鏸n <a href='$1'>buray t齥lay齨齴</a>.
mailq_none=Da瘕t齧 i鏸n kuyru餫 konulmu mesaj yok
mailq_return=posta kuyru饀

flushq_title=Kuyru饀 Bolt
flushq_desc=$1 komutu ile postan齨 da瘕t齧 deneniyor ..

delq_err=Mesaj齨 silinmesinde hata olu⺶u
delq_ecannot=Mesajlar kuyruktan 琮karmak i鏸n izininiz yoktur
delq_locked=G鰊deme iemi kilitlendi

boxes_title=Kullan齝 Posta Kutular
boxes_user=Kullan齝
boxes_size=Posta kutusu boyutu
boxes_none=Postas yok
boxes_return=posta kutular
boxes_ecannot=E-posta'n齨 okunmas齨da hata olu⺶u

mail_title=Kullan齝 E-Posta
mail_from=Nereden
mail_date=Tarih
mail_subject=Konu
mail_to=Nereye
mail_cc=Cc
mail_bcc=Bcc
mail_pri=謓celik
mail_highest=En y黭sek
mail_high=Y黭sek
mail_normal=Normal
mail_low=D黭
mail_lowest=en d黭
mail_for=$1'de
mail_size=Boyut
mail_delete=Se鏸len mesajlar sil
mail_compose=Yeni posta olu⺶ur
mail_return=Kullan齝 e-posta
mail_pos=Mesaj $1 to $2 of $3
mail_none=Bu posta kutusu mesaj i鏴rmiyor
mail_ecannot=Bu kullan齝齨齨 e-postas齨 okumak i鏸n izininiz yoktur
mail_all=Hepsini se
mail_invert=Se鏸mi ters 鏴vir
mail_search=Mesajlar齨 aran齦aca瘕 yer
mail_body=Mesaj i鏴ri餴
mail_match=matches
mail_ok=Ara

view_title=E-posta oku
view_desc=Mesaj $1, $2'de
view_qdesc=Kuyru餫 konulmu mesaj $1
view_headers=Posta ba齥lar
view_attach=Ekler
view_reply=Geri g鰊der
view_reply2=Hepsine geri g鰊der
view_forward=D鰊d黵
view_delete=Sil
view_ecannot=Bu kullan齝齨齨 e-postas齨 okumak i鏸n izininiz yoktur

compose_title=E-posta G鰊der
reply_title=E-postay Geri G鰊der
forward_title=E-postay D鰊d黵
reply_headers=Posta ba齥lar
reply_attach=D鰊d黵黮m ekler
reply_attach2=Ekler
reply_send=G鰊der
reply_ecannot=Bu kullan齝 olarak e-posta g鰊dermek i鏸n izininiz yoktur

send_err=Postan齨 g鰊derilmesinde hata olu⺶u
send_eto=Nereye adresini girmelisiniz
send_efrom=Nereden adresini girmelisiniz
send_title=Posta G鰊der
send_ok=Posta $1'e bar齳la g鰊derildi
send_ecannot=Bu kullan齝 olarak e-posta g鰊dermek i鏸n izininiz yoktur
send_esmtp=SMTP komutu $1'de hata olu⺶u : $2
send_efile=Eklenen dosya $1 mevcut de餴l
send_eattach=Ek dosyalar齨 boyutu $1 KB'den daha b鼀黭 olmamal齞齬lar.
send_eperms=$1 kullan齝齭 $2'yi okuyamaz

delete_ecannot=Bu kullan齝 olarak e-posta silmek i鏸n izininiz yoktur
delete_enone=Silmek i鏸n posta silinmedi

search_title=Arama sonu鏻ar
search_ecannot=Bu kullan齝 e-postalar齨 aramak i鏸n izininiz yoktur
search_ematch=Takip eden kutuya bir yaz girmelisiniz
search_none=Mesaj bulunamad.
search_results=Posta mesajlar bak齦齳or $1 ..

file_title=Sendmail Dosyas齨 De餴⺶ir
file_desc=Sendmail dosyas $1'u elle de餴⺶irmek i鏸n d鼁 metin yaz齭 kutusunu kullan齨齴.
file_undo=De餴㱮klikleri Geri Al
file_edit=$1'i elle de餴⺶ir
file_ealiases=E餰r b黷黱 takma isimler i鏸n izininiz varsa takma isim dosyas齨 de餴⺶irebilirsiniz.
file_evirtusers=B黷黱 adres haritaland齬malar i鏸n izininiz varsa adres haritaland齬ma dosyas齨 de餴⺶irebilirsiniz
file_emailers=Alan y鰊lendirme dosyas齨 de餴⺶irmek i鏸n izininiz yoktur.
file_egenerics=B黷黱 da giden adresle i鏸n izininiz varsa da giden adres dosyas齨 de餴⺶iebilirsiniz.
file_edomins=Alan haritaland齬ma dosyas齨 de餴⺶irmeye izininiz yoktur
file_eaccess=Spam kontrol dosyas齨 de餴⺶irmek i鏸n izininiz yoktur.
file_emode=Bilinmeyen mod!
file_err=Dosyan齨 de餴⺶irilmesinde hata olu⺶u

acl_opts=Sendmail se鏴neklerini de餴⺶irebilsin?
acl_cws=Yerel alanlar de餴⺶irebilirsin?
acl_masq=Alan maskelemeyi yap齦and齬abilsin?
acl_trusts=Do餽ulanm kullan齝齦ar de餴⺶irebilsin?
acl_cgs=Da giden mesaj alanlar de餴⺶irebilsin?
acl_relay=G鰊derilen alanlar de餴⺶irebilsin?
acl_mailers=Alan y鰊lendirmeyi de餴⺶irebilsin?
acl_access=Spam kontrol黱 de餴⺶irebilsin?
acl_domains=Alan haritaland齬may yap齦and齬abilsin?
acl_stop=Sendmail'i durdurup baatabilsin?
acl_mailq=Posta kuyru饀nu y鰊etebilsin?
acl_viewdel=G鰏ter ve Sil
acl_view=Sadece G鰏ter
acl_virtusers=Adres haritaland齬may bu kullan齝 de餴⺶irebilir
acl_none=Hi鏱iri
acl_all=Hepsi
acl_matching=Arama
acl_vtypes=Adres haritaland齬ma tiplerini bu kullan齝 de餴⺶irebilir
acl_vtype0=Hata d鰊d
acl_vtype1=Alana
acl_vtype2=Adrese
acl_vmax=Adres haritaland齬man齨 en 鏾k say齭
acl_unlimited=Limitsiz
acl_aliases=Takma adlar bu kullan齝 taraf齨dan de餴⺶irilebilir
acl_atypes=Takma ad tipleri bu kullan齝 taraf齨dan de餴⺶irilebilir
acl_atype1=E-post adresi
acl_atype2=Dosyadaki adresler
acl_atype3=Dosyaya yaz
acl_atype4=Program besle
acl_atype5=Otomatik geri d鰊d黵
acl_amax=En 鏾k takma ad say齭
acl_outgoing=Da giden mesajlar bu kullan齝 taraf齨dan de餴⺶irilebilir
acl_read=Kullan齝齦ar齨 okuyabilecekleri postalar
acl_users=Sadece kullan齝齦ar
acl_userse=Kullan齝齦ardan ba⺧a herkes
acl_from=輟in verilebilir From: adresleri
acl_any=Herhangi bir adres
acl_fdoms=Posta kutusu @ alanlar
acl_faddrs=Listelenmi alanlar
acl_fdom=Herhangi adres @ alan
acl_apath=Dizin i鏸n program ve dosya limitleri
acl_attach=En 鏾k toplam posta ek dosyalar boyutu

log_opts=Sendmail se鏴nekleri de餴⺶irildi
log_alias_create=Takma isim $1 olu⺶uruldu
log_alias_modify=Takma isim $1 de餴⺶irildi
log_alias_delete=Takma isim $1 silindi
log_alias_manual=Takma isim dosyas $1 elle de餴⺶irildi
log_cws=Yerel alanlar de餴⺶irildi
log_masq=Alan maskeleme de餴⺶irildi
log_trusts=Do餽ulanm kullan齝齦ar de餴⺶irildi
log_virtuser_create=Adres haritaland齬mas $1 olu⺶uruldu
log_virtuser_modify=Adres haritaland齬mas $1 de餴⺶irildi
log_virtuser_delete=Adres haritaland齬mas $1 silindi
log_virtuser_manual=Adres haritaland齬mas dosyas $1 elle de餴⺶irildi
log_mailer_create=Alan y鰊lendirme $1 olu⺶uruldu
log_mailer_modify=Alan y鰊lendirme $1 de餴⺶irildi
log_mailer_delete=Alan y鰊lendirme $1 silindi
log_mailer_manual=Alan y鰊lendirme dosyas $1 elle de餴⺶irildi
log_generic_create=Da giden adres $1 olu⺶uruldu
log_generic_modify=Da giden adres $1 de餴⺶irildi
log_generic_delete=Da giden adres $1 silindi
log_generic_manual=Da giden adres dosyas $1 elle de餴⺶irildi
log_cgs=Da giden alanlar de餴⺶irilid
log_domain_create=Alan haritaland齬mas $1 olu⺶uruldu
log_domain_modify=Alan haritaland齬mas $1 de餴⺶irildi
log_domain_delete=Alan haritaland齬mas $1 silindi
log_domain_manual=Alan haritaland齬ma dosyas $1 elle de餴⺶irildi
log_access_create=$1 i鏸n spam kontrol olu⺶uruldu
log_access_modify=$1 i鏸n spam kontrol de餴⺶irildi
log_access_delete=$1 i鏸n spam kontrol silindi
log_access_manual=Spam kontrol dosyas $1 elle de餴⺶irildi
log_relay=輑etilen alanlar de餴⺶irildi
log_flushq=Posta kuyru饀 bolt齦d
log_delmailq=Kuyrukta $1'den posta silindi
log_stop=Sendmail durduruldu
log_start=Sendmail baat齦d
log_delmail=$2'den $1 mesaj silindi
log_send=$1'e posta g鰊derildi

  0707010005f327000081a40000000000000002000000013ac0389d00003980000000200000000000000000000000000000001a00000003reloc/sendmail/lang/zh_CN index_title=邮件发送配置
index_econfig=邮件发送配置文件 $1 不存在. 可能<a href='$2'>配置模块</a> 错误.
index_eversion=邮件发送配置文件不是针对最新的邮件发送程序版本.Webmin 仅支持 版本8.8 或者更高.
index_epath=邮件发送可执行 $1 没有安装在系统中. 可能<a href='$2'>配置模块</a> 错误,或者邮件发送程序没有安装.
index_return=邮件发送配置
index_stop=停止邮件发送
index_stopmsg=单击按扭停止邮件发送进程. 这时停止本地用户从其它系统的邮件接受,同时客户机会把本系统当做邮件服务器.
index_start=启动邮件发送
index_startmsg=单击按扭使用命令 $1 启动.这时启动本地用户从其它系统的邮件接收,同时客户机会不能把本系统当做邮件服务器

opts_title=邮件发送选项
opts_ecannot=不允许编辑邮件发送选项
opts_ds=经由主机发送邮件
opts_direct=邮件收发路径
opts_dr=向主机发送用户名
opts_dh=向主机发送用户邮件
opts_local=本机收发
opts_queuela=最大发送负载均值
opts_refusela=最大接收负载均值
opts_maxch=最大子进程
opts_throttle=最大 连接数/秒
opts_minqueueage=发送重试最小时间间隔
opts_runsize=队列最大值
opts_queuereturn=放弃时间间隔
opts_queuewarn=发送警报时间间隔
opts_queue=邮件队列目录
opts_postmaster=发送错误信息到
opts_forward=用户forward文件
opts_minfree=最小未使用磁盘空间
opts_maxmessage=最大信息值
opts_loglevel=日志级别
opts_mimebounce=MIME-编码 bounce 信息?
opts_default=缺省
opts_save=保存和应用
opts_err=保存选项失败
opts_ehost='$1' 错误的主机或域名
opts_einvalid='$2'的错误值 '$1'
opts_blame=文件安全选项
opts_selected=已选择..
opts_blocks=块
opts_bytes=字节
opts_dmode=接收方式
opts_background=背景
opts_queue-only=仅仅查询
opts_interactive=交互
opts_deferred=服从

aliases_title=邮件别名
aliases_ecannot=不允许编辑别名
aliases_addr=地址
aliases_to=定义别名到..
aliases_type1=地址 $1
aliases_type2=在文件 $1 中的地址
aliases_type3=文件 $1
aliases_type4=规划 $1
aliases_type5=自动回复文件 $1
aliases_none=无
aliases_return=别名列表

aform_type0=无
aform_type1=邮件地址
aform_type2=文件中的地址
aform_type3=写入文件
aform_type4=提供到程序
aform_type5=自动回复来自文件
aform_edit=编辑别名
aform_create=建立别名
aform_name=地址
aform_enabled=允许
aform_val=定义别名到
aform_afile=编辑..
aform_return=别名

afile_title=编辑地址文件
afile_desc=使用下面的文本区,在文件 $1 中编辑地址.
afile_efile=您不能编辑 $1.
afile_undo=不做改变

rfile_title=编辑自动回复文件
rfile_desc=使用下面的文本区,在文件 $1 中编辑自动回复信息.该信息包括$SUBJECT, $FROM, $TO, $DATE 和 $BODY 等大量内容,当激活自动回复时,它还将继续增大.
rfile_efile=您不能编辑 $1.
rfile_undo=不改变

asave_err=保存别名失败
asave_ecannot2=不允许编辑别名
asave_ecannot=不允许编辑别名
asave_emax=建立别名的最大值 $1
asave_eaddr=错误地址'$1'
asave_ealready=别名 '$1' 已存在
asave_ematch=只能建立和'$1'匹配的别名
asave_etype=不能建立这种类型的别名
asave_etype1=错误的邮件地址'$1'
asave_etype2=地址文件 '$1' 不存在
asave_etype3=错误的文件名'$1'
asave_etype4='$1'不是程序或不存在
asave_etype5=自动回复文件 '$1' 无效或不存在
asave_etype4none=没有给出程序

cws_title=本地域
cws_ecannot=不能编辑本地域
cws_domains=本服务器处理的域
cws_desc1=$1和mail不同, 仅接受列在左表中的本地域和主机的邮件收发，如果需要邮件服务器处理多个邮件域,需要添加到该列表中.
cws_desc2=通常在列表中只包括一个域是不够的.也应当确认存在该域的DNS记录,并且指向当前系统
cws_err=保存本地域失败
cws_ehost=错误的主机或域名'$1'
cws_eip='$1'是IP 地址不是域

masq_title=域名伪装
masq_ecannot=不能配置伪装
masq_domain=伪装作域名
masq_domains=域名被伪装
masq_desc1=如果给出上述域名,则sendmail的邮件<tt>发送地址</tt>来自该域.而且任何主机和域经过本系统<tt>发送</tt>邮件也来自该域.然而,域伪装可以使用<a hred='$1'>发送地址</a>页覆盖
masq_desc2=这种特性很有用,比如希望你的邮件看来来自域而不是你的主机,或者本主机是许多其它运行邮件服务的主机的中心
masq_err=保存域名伪装失败
masq_edomain=错误的伪装域名'$1'
masq_ehost=错误的伪装域名'$1'
masq_eip='$1' 是IP地址,不是域

trusts_title=可信任用户
trusts_ecannot=不能编辑可信用户
trusts_users=sendmail 信任本地用户
trusts_desc=如果本地用户试图发送邮件, sendmail 仅允许列于左表中的用户指定不同的<tt>From:</tt> 地址. 这个限制可以防止他人利用你的系统发送假冒<tt>From:</tt>地址的邮件.
trusts_err=保存信任用户失败
trusts_euser='$1' 是非法用户

virtusers_title=地址映像
virtusers_ecannot=不能编辑地址映像
virtusers_edirective=邮件发送配置文件没有必需的地址映像指令
virtusers_efile=用于建立地址映像数据库$2的文本文件$1不存在.需要修改<a href='$3'>配置模块</a>设定正确路径
virtusers_desc1=地址映像类似<a href='$1'>别名</a>, 而且更加适合一个系统多个邮件域的情况. 能够重定向整个域到一个地址, 在不同的域中用相同的名字, 或者把一个域的邮件映像到另一个域
virtusers_desc2=必须在<a href='$1'>本地域</a>表中有一个入口,用于任何域的地址映像.每个域也必须有一个DNS MX纪录指向系统
virtusers_for=发送给..
virtusers_to=发送给..
virtusers_error=错误$1
virtusers_domain=域 $1
virtusers_address=地址$1
virtusers_return=地址映像列表

vform_edit=编辑映像
vform_create=建立映像
vform_for=发送给..
vform_address=地址
vform_domain=域
vform_to=发送给
vform_msg=信息
vform_error=返回错误
vform_err_nouser=无用户
vform_err_nohost=无客户机
vform_err_unav=无效
vform_err_temp=暂时失败
vform_err_proto=协议
vform_end=移动到最后
vform_ecannot=不能编辑地址映像

vsave_ecannot=不能编辑地址映像
vsave_ecannot2=不能编辑该地址映像
vsave_emax=不能建立超过$1地址映像
vsave_err=保存地址映像失败
vsave_efrom=错误地址'$1'
vsave_efromdup='$1'的地址映像已经存在
vsave_edom=错误的域'$1'
vsave_edomdup='$1'的地址映像已经存在
vsave_ematch=源地址和'$1'不匹配
vsave_ecannot3=不能建立地址映像
vsave_eaddr=错误地址'$1'
vsave_ecannot4=不能建立域的地址映像
vsave_edomdom=对于另外的域只能一个域可以映像
vsave_ecannot5=不能建立地址映像返回错误

mailers_title=域路由
mailers_cannot=不能编辑域路由
mailers_edirective=邮件发送配置文件没有域路由必需的指令.
mailers_efile=建立域路由数据库$2所需文本文件$1不存在.修改<a href='$3'>模块配置</a>设定正确路径
mailers_desc1=域路由为发送邮件到特定的几个域提供了一种方法.对于系统是不能用于从外部到达的邮件服务网关或者强制特定域的所有的邮件通过某些服务器.
mailers_desc2=<b>不</b>应该在<a href='$1'>本地域</a>列表中有任何路由域入口,但是任何路由域应该有指向本系统的DNS MX纪录.
mailers_for=发送给..
mailers_delivery=收发
mailers_to=发送给..
mailers_return=域路由列表

mform_edit=编辑路由
mform_create=建立路由
mform_for=发送给..
mform_host=主机
mform_domain=域
mform_delivery=收发
mform_to=发送给
mform_ignore=忽视SMTP的MX收发
mform_smtp=SMTP
mform_esmtp=扩展的 SMTP
mform_smtp8=8位 SMTP
mform_relay=SMTP 应答
mform_local=本地用户
mform_prog=送往程序
mform_uucp=UUCp
mform_usenet=传递给 USENET
mform_fax=HylaFAX
mform_pop=POP3
mform_procmail=Procmail
mform_mail11=DECnet mail11
mform_error=错误
mform_ecannot=不能编辑域路由

msave_ecannot=不能编辑域路由
msave_err=保存域路由失败
msave_edomain=错误的主机或域'$1'
msave_edup=域路由 '$1' 已存在

generics_title=发送地址
generics_cannot=不能编辑域路由地址
generics_econfig=邮件发送配置文件没有发送地址映像必需的指令.
generics_efile=建立发送地址数据库$2所需的文本文件$1不存在.需要修改<a href='$3'>配置模块</a>设置正确路径.
generics_desc1=发送地址映像允许修改系统的邮件<tt>发送:</tt> 地址,或者局域网上其它通过本系统的主机.用于一个系统上有多个域, 而又需要某些用户的邮件似乎来自不同的域.
generics_desc2=每个需要映像的邮件发送域中需要一个<a href='$1'>发送域</a>表.本地用户不能使用发送地址映像.
generics_from=邮件来自..
generics_to=改变到..
generics_return=地址映像列表

gform_edit=编辑映像
gform_create=建立映像
gform_from=邮件来自
gform_to=改变到
gform_ecannot=不能编辑发送邮件地址

gsave_ecannot=不能编辑邮件发送地址
gsave_ecannot2=不能编辑邮件发送地址
gsave_err=保存邮件发送地址失败
gsave_efrom=错误地址'$1'
gsave_ematch=来源地址和'$1'不匹配
gsave_eto=错误的新地址'$1'

cgs_title=邮件发送域
cgs_ecannot=不能编辑发送域
cgs_header=发送地址域
cgs_desc=为了区分本地用户的邮件,sendmail只进行列于右框主机和域的<a href='$1'>发送地址</a>映像.因此,发送地址一定要包括在这个表中.
cgs_err=保存发送域失败
cgs_ehost=错误的主机或域名'$1'
cgs_eip='$1' 是IP地址,不是域

domains_title=域映像
domains_ecannot=不能编辑域映像
domains_econfig=邮件发送配置文件没有域映像所必需的指令
domains_efile=建立地址映像数据库$2需要的文本文件 $1 不存在. 需要修改<a href='$3'>配置模块</a>设置正确的路径
domains_desc=域名映像修改信息的返回、接收<tt>发送:</tt>地址,复信的<tt>发自:</tt>地址也被修改.用于域名更改和旧域向新域的转化
domains_from=来自域..
domains_to=到域..
domains_return=域映像列表

dform_edit=编辑映像
dform_create=建立映像
dform_from=来自域
dform_to=到域
dform_ecannot=不能编辑域映像

dsave_ecannot=不能编辑域映像
dsave_err=保存域映像失败
dsave_edomain=错误的域名'$1'

access_title=垃圾邮件控制
access_ecannot=不能编辑垃圾邮件控制
access_econfig=邮件配制文件没有垃圾邮件控制所必须的指令
access_efile=地址映像数据库$2需要的文本文件$1不存在,修改 <a href='$3'>配置模块</a> 指向正确的路径
access_desc1=Sendmail 的垃圾邮件控制使得你的用户可以拒收某些地址的垃圾邮件, 并且阻止垃圾邮件制作者使用你的服务器. 缺省设置是接收本地用户的所有邮件, 但是禁止任何客户和邮件服务器通过本系统回复邮件. 典型设置是添加拒收垃圾邮件,允许本网络上的用户可以通过本系统回复邮件.
access_desc2=sendmail 缺省设置允许本机上的客户可以通过 SMTP 任意发送邮件.无需在允许回复列表中添加本机<tt>127.0.0</tt> 网络地址.
access_source=源..
access_action=操作..
access_return=垃圾邮件列表

sform_edit=编辑垃圾邮件控制规则
sform_create=建立垃圾邮件控制规则
sform_source=邮件来源
sform_type0=邮件地址
sform_type1=网络
sform_type2=用户
sform_type3=域
sform_action=操作
sform_ok=接受
sform_relay=允许恢复
sform_reject=拒绝
sform_discard=抛弃
sform_err=错误代码
sform_msg=信息
sform_ecannot=不能配置垃圾邮件控制

ssave_ecannot=不能编辑垃圾邮件控制
ssave_err=保存垃圾邮件控制规则失败
ssave_etype0=错误地址'$1'
ssave_etype1=错误网络地址'$1'
ssave_etype2=错误用户名'$1'
ssave_etype3=错误的域'$1'
ssave_ecode=错误的SMTP错误代码'$1'

relay_title=回复域
relay_ecannot=不能编辑恢复域
relay_eversion=只有sendmail版本8.9以上才支持回复域属性.
relay_domains=允许回复域
relay_desc1=除非在<a href='$1'>垃圾邮件控制</a>允许, 否则sendmail仅允许列在左侧文本对话框中的域回复邮件.所有非本地和列表域中的用户邮件信息都会被拒收
relay_desc2=假如本系统是几个不能和外部连接的域的网关(使用<a href='$1'>域路由</a> 特性), 那么所有的域都应当列在这里
relay_err=保存回复域失败
relay_edomain=非法域名'$1'

mailq_title=邮件队列
mailq_ecannot=不能编辑邮件队列
mailq_id=邮件 ID
mailq_sent=发送
mailq_from=来自
mailq_to=到
mailq_size=大小
mailq_status=状态
mailq_unknown=未知
mailq_sending=发送
mailq_dmsg=查看邮件队列中的邮件信息, 单击上表中的邮件ID号
mailq_force=强行收发队列中的邮件, <a href='$1'>单击这里</a>.
mailq_none=当前队列中没有邮件
mailq_return=邮件队列

flushq_title=快速队列
flushq_desc=强制使用命令$1 收取邮件..

delq_err=删除信息失败
delq_ecannot=不能打乱信息队列
delq_locked=当前锁定发送

boxes_title=用户邮箱
boxes_user=用户
boxes_size=邮件箱大小
boxes_none=没有邮件
boxes_return=邮件箱
boxes_ecannot=不能读邮件

mail_title=用户邮件
mail_from=来自
mail_date=日期
mail_subject=标题
mail_to=到
mail_cc=转送
mail_bcc=Bcc
mail_pri=优先级
mail_highest=最高
mail_high=高
mail_normal=一般
mail_low=低
mail_lowest=最低
mail_for=在 $1
mail_size=大小
mail_delete=删除选择的信息
mail_compose=编写新邮件
mail_return=用户邮件
mail_pos=$3的信息$1 到 $2
mail_none=邮箱空
mail_ecannot=该用户邮件你没有阅读权力
mail_all=全部选定
mail_invert=反选
mail_search=找到信息出处
mail_body=文体
mail_match=匹配
mail_ok=搜索
mail_nonefrom=无

view_title=读邮件
view_desc=$2中的信息$1
view_qdesc=队列信息$1
view_headers=邮件头
view_attach=附件
view_reply=回复
view_reply2=回复给所有
view_forward=转发
view_delete=删除
view_ecannot=不允许读该用户邮件

compose_title=编写邮件
reply_title=回复邮件
forward_title=转发邮件
reply_headers=邮件头
reply_attach=添加附件
reply_attach2=附件
reply_send=发送
reply_ecannot=不允许作为这个用户发送邮件

send_err=邮件发送失败
send_eto=地址丢失
send_efrom=地址丢失
send_title=邮件发送
send_ok=邮件成功的发送到 $1
send_ecannot=不允许作为这个用户发送邮件
send_esmtp=SMTP 命令 $1 失败: $2
send_efile=附件 $1 不存在
send_eattach=附件大小总量不能超过 $1 kB
send_eperms=用户 $1 不能阅读 $2

delete_ecannot=不能删除这个用户的邮件
delete_enone=没选择要删除的邮件

search_title=搜索结果
search_ecannot=您不能搜索该用户的邮件
search_ematch=您必须输入要关键字
search_none=没找到信息
search_results=邮件信息匹配 $1..

file_title=编辑 Sendmail 文件
file_desc=利用下表您可手工编辑Sendmail 文件 $1
file_undo=不改变
file_edit=手工编辑 $1
file_ealiases=如果您要访问所有别名,您只有能编辑别名文件.
file_evirtusers=如果您要访问所有地址映射,您只有编辑地址映射文件.
file_emailers=您不能编辑域名路由文件.
file_egenerics=如果您要访问所有出口地址,您只有编辑地址出口文件.
file_edomains=您不能编辑域名映射文件.
file_eaccess=您不能编辑间隔控制文件
file_emode=不知道的模式!
file_err=编辑文件失败

acl_opts=是否可以编辑发送邮件选项?
acl_cws=是否可以编辑本地域?
acl_masq=是否可以配置域伪装?
acl_trusts=是否可以编辑可信用户?
acl_cgs=是否可以编辑发送域?
acl_relay=是否可以编辑回复域?
acl_mailers=是否可以编辑域路由?
acl_access=是否可以编辑垃圾邮件控制?
acl_domains=是否可以编辑域映像?
acl_stop=是否可启动停止sendmail?
acl_mailq=是否可管理邮件队列?
acl_viewdel=查看和删除
acl_view=仅查看
acl_virtusers=映像到本用户的地址可以编辑
acl_none=无
acl_all=所有
acl_matching=匹配
acl_vtypes=映像到本类用户的地址可以编辑
acl_vtype0=返回错误
acl_vtype1=到域
acl_vtype2=到地址
acl_vmax=最大地址映像
acl_unlimited=无限
acl_aliases=本用户别名可编辑
acl_atypes=本类用户可编辑
acl_atype1=邮件类型
acl_atype2=文件中的地址
acl_atype3=写入文件
acl_atype4=提供给程序
acl_atype5=自动回复
acl_amax=最大别名
acl_outgoing=本用户发送地址可编辑
acl_read=这些用户邮件可读
acl_users=仅用户
acl_userse=所有其它用户
acl_from=允许地址
acl_any=任何地址
acl_fdoms=邮箱 @ 域
acl_faddrs=列表地址
acl_fdom=任何地址@域
acl_apath=限制文件和程序到目录
acl_attach=最大附件大小

log_opts=改变 sendmail 选项
log_alias_create=创建别名 $1
log_alias_modify=更新别名 $1
log_alias_delete=删除别名 $1
log_alias_manual=手工编辑别名文件 $1
log_cws=改变本地域名
log_masq=改变域名伪装
log_trusts=改变信任的用户表
log_virtuser_create=创建地址映射 $1
log_virtuser_modify=更新地址映射 $1
log_virtuser_delete=删除地址映射 $1
log_virtuser_manual=手工编辑地址映射文件 $1
log_mailer_create=创建域名路由 $1
log_mailer_modify=更新域名路由 $1
log_mailer_delete=删除域名路由 $1
log_mailer_manual=手工编辑域名路由文件 $1
log_generic_create=创建出口地址 $1
log_generic_modify=更新出口地址 $1
log_generic_delete=删除出口地址 $1
log_generic_manual=手工编辑出口地址文件 $1
log_cgs=改变出口域名
log_domain_create=创建域名映射 $1
log_domain_modify=更新域名映射 $1
log_domain_delete=删除域名映射 $1
log_domain_manual=手工编辑域名映射文件 $1
log_access_create=为 $1 创建间隔控制
log_access_modify=为 $1 更新间隔控制
log_access_delete=为 $1 删除间隔控制
log_access_manual=手工编辑间隔控制文件 $1
log_relay=改变转送域名
log_flushq=刷新邮件队列
log_delmailq=从队列 $1 删除邮件
log_stop=停止 sendmail 守护
log_start=启动 sendmail 守护
log_delmail=从 $2 删除信息
log_send=发送邮件到 $1
0707010005f328000081a40000000000000002000000013ac0389c000039a4000000200000000000000000000000000000001f00000003reloc/sendmail/lang/zh_TW.Big5    index_title=Sendmail 舱篈
index_econfig=Sendmail 舱篈郎 $1 ぃ. 琌眤<a href='$2'>家舱舱篈</a>Τ岿粇.
index_eversion=眤 Sendmail 舱篈郎ぃ琌程穝 Sendmail ┮ㄏノ. Webmin や穿材 8.8 狾籔 Sendmail.
index_epath=Sendmail 磅︽郎 $1 ⊿Τ杆眤╰参. 琌眤<a href='$2'>家舱舱篈</a>Τ岿粇, ┪琌 Sendmail ﹟ゼ砆杆.
index_return=Sendmail 舱篈
index_stop=氨ゎ Sendmail
index_stopmsg=硂秙氨ゎ Sendmail 祘. 硂盢穦氨ゎ患癳┮Τ倒セ狠ㄏノ秎ン, ňゎめ狠ノ硂秎ン狝竟患癳秎ン.
index_start=币笆 Sendmail
index_startmsg=硂秙竒パ $1 币笆 Sendmail 祘. 埃獶ЧΘ硂笆, 秎ン盢礚猭患癳倒セ狠ㄏノ, τめ狠ぃ竒パ硂秎ン狝竟患癳秎ン.

opts_title=Sendmail 匡兜
opts_ecannot=眤ぃ砆す砛絪胯 Sendmail 匡兜
opts_ds=竒パ诀癳癳秎ン
opts_direct=钡患癳
opts_dr=锣癳ぃㄏノ嘿诀
opts_dh=セ狠ㄏノ锣癳秎ン诀
opts_local=セ狠患癳
opts_queuela=癳秎ン程キА璽更
opts_refusela=钡Μ秎ン程キА璽更
opts_maxch=程祘计ヘ
opts_throttle=–い程硈挡计
opts_minqueueage=刚患癳程丁筳丁
opts_runsize=程︻
opts_queuereturn=斌玡单丁
opts_queuewarn=癳牡玡单丁
opts_queue=秎ン︻ヘ魁
opts_postmaster=癳岿粇癟倒
opts_forward=ㄏノ笆锣盚砞﹚郎
opts_minfree=程玂痙合盒丁
opts_maxmessage=程秎ン
opts_loglevel=魁单
opts_mimebounce=琌紆 MIME 絪絏秎ン?
opts_default=箇砞
opts_save=纗甅ノ
opts_err=礚猭纗匡兜
opts_ehost='$1' ぃ琌Τ诀┪呼办嘿
opts_einvalid='$1' ぃ琌Τ计倒 '$2'
opts_blame=郎匡兜
opts_selected=匡拒...

aliases_title=秎ン
aliases_ecannot=眤ぃ砆す砛絪胯
aliases_addr=秎ン
aliases_to=...
aliases_type1=秎ン $1
aliases_type2=秎ン郎 $1
aliases_type3=郎 $1
aliases_type4=祘Α $1
aliases_type5=笆滦郎 $1
aliases_none=礚
aliases_return=

aform_type0=礚
aform_type1=筿秎ン
aform_type2=秎ン郎
aform_type3=糶郎
aform_type4=癳倒祘Α
aform_type5=笆眖郎滦
aform_edit=絪胯
aform_create=ミ
aform_name=秎ン
aform_enabled=琌ㄏノ?
aform_val=

asave_err=礚猭纗
asave_ecannot2=眤ぃ砆す砛絪胯
asave_ecannot=眤ぃ砆す砛絪胯硂
asave_emax=眤ぃ砆す砛ミ禬筁 $1 
asave_eaddr='$1' ぃ琌Τ秎ン
asave_ealready= '$1' 竒
asave_ematch=眤砆す砛ミ才 '$1'
asave_etype=眤ぃミ硂贺摸
asave_etype1='$1' ぃ琌Τ筿秎ン
asave_etype2=秎ン '$1' ぃ
asave_etype3='$1' ぃ琌Τ郎嘿
asave_etype4='$1' ぃ琌祘Α┪ぃ
asave_etype5=笆滦郎 '$1' ぃ
asave_etype4none=⊿Τ矗ㄑ祘Α

cws_title=セ狠呼办
cws_ecannot=眤ぃ砆す砛絪胯セ狠呼办
cws_domains=パ硂狝竟矪瞶呼办
cws_desc1=埃患癳倒 $1 秎ンぇ, Sendmail 钡ㄓセ狠┪琌オ娩ゅよ遏い诀籔呼办ぇ秎ン患癳. 狦眤辨眤秎ン狝竟矪瞶筿秎ン呼办, 眤ゲ斗盢ぇ硂虫ぇい.
cws_desc2=猔種: 度硂い呼办硄盽ぃìタ絋矪瞶秎ン. 眤ゲ斗絋﹚赣呼办Τ DNS 魁, 硂╰参.
cws_err=礚猭纗セ狠呼办
cws_ehost='$1' ぃ琌Τ诀┪呼办嘿
cws_eip='$1' 琌 IP , ぃ琌呼办嘿

masq_title=呼办鞍杆
masq_ecannot=眤ぃ砆す砛舱篈呼办鞍杆
masq_domain=鞍杆Θ呼办
masq_domains=璶砆鞍杆呼办
masq_desc1=狦Τ倒﹚呼办, Sendmail 盢穦跑┮Τ癳秎ン <tt>ㄓ方 (From)</tt> 逆, 秎ン盢砆跌眖赣呼办癳. τヴㄓオ娩呼办竒筁眤╰参秎ン穦砆矪瞶. 猔種: 呼办鞍杆﹚竡砆ヴ疭﹚ㄏノㄏノ<a href='$1'>癳秎ン</a>τ溃.
masq_desc2=讽眤辨眤筿秎ンㄓ琌眖眤呼办祇τぃ琌眖硂诀祇, ┪眤╰参琌秎ン诀栋床竟ㄏノ, 硂盢獶盽Τノ.
masq_err=礚猭纗呼办鞍杆
masq_edomain='$1' ぃ琌Τ璶砆鞍杆呼办嘿
masq_ehost='$1' ぃ琌Τ诀┪呼办嘿
masq_eip='$1' 琌 IP , ぃ琌呼办嘿

trusts_title=獺ヴㄏノ
trusts_ecannot=眤ぃ砆す砛絪胯獺ヴㄏノ
trusts_users=Sendmail 獺ヴセ狠ㄏノ
trusts_desc=讽ㄏノ沽刚璶癳筿秎ン, Sendmail す砛硂いㄏノㄏノぃ <tt>ㄓ方 (From)</tt> 逆. 硂盢磷ㄏノノ眤╰参祇Τ鞍硑 <tt>ㄓ方 (From)</tt> 逆鞍硑筿秎ン.
trusts_err=礚猭纗獺ヴㄏノ
trusts_euser='$1' ぃ琌Τㄏノ

virtusers_title=秎ン癸莱
virtusers_ecannot=眤ぃ砆す砛絪胯秎ン癸莱
virtusers_edirective=眤 Sendmail 舱篈郎⊿Τゲ璶秎ン癸莱㏑.
virtusers_efile=ゅ郎 $1 ㄓ秎ン癸莱戈畐 $2 ぃ. 眤惠璶跑<a href='$3'>家舱舱篈</a>ㄏノタ絋隔畖.
virtusers_desc1=秎ン癸莱<a href='$1'>秎ン</a>, 皌筿秎ン呼办矪瞶. ウノ眖硈尿呼办旧秎ン秎ン, 矪瞶ぃ呼办ㄏノ嘿, ┪琌盢场秎ンパ呼办癸莱ㄤ.
virtusers_desc2=猔種: 眤ぶゲ斗块<a href='$1'>セ狠呼办</a>倒ヴㄏノ硂呼办癸莱呼办, τゲ斗璶盢–呼办 DNS MX 魁眤╰参.
virtusers_for=秎患倒...
virtusers_to=癳...
virtusers_error=岿粇 $1
virtusers_domain=呼办 $1
virtusers_address=秎ン $1
virtusers_return=秎ン癸莱

vform_edit=絪胯秎ン癸莱
vform_create=ミ秎ン癸莱
vform_for=秎患倒
vform_address=
vform_domain=呼办嘿
vform_to=癳
vform_msg=癟
vform_error=莱岿粇
vform_end=簿挡Ю
vform_ecannot=眤ぃ砆す砛絪胯硂秎ン癸莱

vsave_ecannot=眤ぃ砆す絪胯秎ン癸莱
vsave_ecannot2=眤ぃ砆す砛絪胯硂秎ン癸莱
vsave_emax=眤ぃ砆す砛ミ禬筁 $1 秎ン癸莱
vsave_err=礚猭纗秎ン癸莱
vsave_efrom='$1' ぃ琌Τ秎ン
vsave_efromdup=倒 '$1' 秎ン癸莱竒砆﹚竡
vsave_edom='$1' ぃ琌Τ呼办嘿
vsave_edomdup=倒 '$1' 秎ン癸莱竒砆﹚竡
vsave_ematch=ㄓ方秎ンぃ才 '$1'
vsave_ecannot3=眤ぃ砆す砛ミ癸莱秎ン
vsave_eaddr='$1' ぃ琌Τ
vsave_ecannot4=眤ぃ砆す砛ミ癸莱呼办
vsave_edomdom=Τ呼办砆癸莱呼办
vsave_ecannot5=眤ぃ砆す砛ミ莱岿粇癸莱

mailers_title=呼办隔パ
mailers_cannot=眤ぃ砆す砛絪胯呼办隔パ
mailers_edirective=眤 Sendmail 舱篈郎⊿Τゲ璶呼办隔パ㏑.
mailers_efile=ゅ郎 $1 ㄓ呼办隔パ戈畐 $2 ぃ. 眤惠璶跑<a href='$3'>家舱舱篈</a>ㄏノタ絋隔畖.
mailers_desc1=呼办隔パ矗ㄑよΑ﹚竡秎盚琘ㄇ呼办┮ノ疭肚块よΑ. 狦眤╰参琌ㄤぃ场呼隔狝竟筯笵竟, ┪琌眤璶眏┮Τ倒疭﹚呼办秎ンゲ斗璶竒筁琘ㄇ狝竟, 硂盢獶盽Τノ.
mailers_desc2=眤<b>ぃ</b>莱赣<a href='$1'>セ狠呼办</a>い﹚竡璶砞﹚隔パ呼办. 礛τ眤莱赣璶盢р眤╰参讽筯笵竟╰参 DNS MX 魁眤╰参.
mailers_for=秎患倒...
mailers_delivery=盚癳
mailers_to=癳倒...
mailers_return=呼办隔パ

mform_edit=絪胯隔パ
mform_create=ミ隔パ
mform_for=秎患倒
mform_host=诀
mform_domain=呼办嘿
mform_delivery=盚癳
mform_to=癳倒
mform_ignore=癸 SMTP 盚癳┛菠 MX 魁
mform_smtp=SMTP
mform_esmtp=┑ SMTP
mform_smtp8=8 じ SMTP
mform_relay=SMTP い膥
mform_local=セ狠ㄏノ
mform_prog=癳倒祘Α
mform_uucp=UUCp
mform_usenet=眎禟 USENET
mform_fax=HylaFAX
mform_pop=POP3
mform_procmail=Procmail
mform_mail11=DECnet mail11
mform_error=岿粇
mform_ecannot=眤ぃ砆す砛絪胯呼办隔パ

msave_ecannot=眤ぃ砆す砛絪胯呼办隔パ
msave_err=礚猭纗呼办隔パ
msave_edomain='$1' ぃ琌Τ诀┪呼办嘿
msave_edup=倒 '$1' 呼办隔パ竒砆﹚竡

generics_title=癳秎ン
generics_cannot=眤ぃ砆す砛絪胯癳秎ン
generics_econfig=眤 Sendmail 舱篈郎⊿Τゲ璶癳秎ン㏑.
generics_efile=ゅ郎 $1 ㄓ癳秎ン戈畐 $2 ぃ. 眤惠璶跑<a href='$3'>家舱舱篈</a>ㄏノタ絋隔畖.
generics_desc1=癳秎ン癸莱す砛眤跑パ眤╰参癳秎ン, ┪竒パ眤╰参秎ン <tt>ㄓ方 (From)</tt> 逆. 讽眤╰参ㄏノ呼办┪辨琘ㄇㄏノ癬ㄓ钩琌ㄏノぃ呼办, 硂盢獶盽Τノ.
generics_desc2=猔種: 眤ぶゲ斗块<a href='$1'>癳秎ン呼办</a>倒ヴㄏノ硂癳秎ン呼办. , 癳秎ン盢ぃ穦紇臫患癳セ狠ㄏノ秎ン.
generics_from=秎患...
generics_to=э跑Θ...
generics_return=秎ン癸莱

gform_edit=絪胯秎ン癸莱
gform_create=ミ秎ン癸莱
gform_from=秎患
gform_to=э跑Θ
gform_ecannot=眤ぃ砆す砛絪胯硂癳秎ン

gsave_ecannot=眤ぃ砆す砛絪胯癳秎ン
gsave_ecannot2=眤ぃ砆す砛絪胯硂癳秎ン
gsave_err=礚猭纗癳秎ン
gsave_efrom='$1' ぃ琌Τㄓ方秎ン
gsave_ematch=ㄓ方秎ンぃ才 '$1'
gsave_eto='$1' ぃ琌Τ穝秎ン

cgs_title=癳秎ン呼办
cgs_ecannot=眤ぃ砆す砛絪胯癳秎ン呼办
cgs_header=癳秎ン呼办
cgs_desc=埃パセ狠ㄏノ┮患癳秎ン, Sendmail 穦矪瞶オ娩ゅよ遏い诀籔呼办ぇ<a href='$1'>癳秎ン</a>. ┮璶ㄏ癳秎ンタ盽笲, 赣呼办ゲ斗硂虫ぇい.
cgs_err=礚猭纗癳秎ン呼办
cgs_ehost='$1' ぃ琌Τ诀┪呼办嘿
cgs_eip='$1' 琌 IP , ぃ琌呼办嘿

domains_title=呼办癸莱
domains_ecannot=眤ぃ砆す砛絪胯呼办癸莱
domains_econfig=眤 Sendmail 舱篈郎⊿Τゲ璶呼办癸莱㏑.
domains_efile=ゅ郎 $1 ㄓ呼办癸莱戈畐 $2 ぃ. 眤惠璶跑<a href='$3'>家舱舱篈</a>ㄏノタ絋隔畖.
domains_desc=呼癸莱盢跑パ眤╰参┮癳秎ン, 竒パ眤╰参い膥秎ン, ┪癳眤╰来ㄏノ秎ンぇ <tt>ヘ夹 (To)</tt> 逆. 癸い膥秎ン┪倒セ狠ㄏノ秎ンぇ <tt>ㄓ方 (From)</tt> 逆穦砆跑. 狦眤璶跑呼办, τ琌盢┮Τ侣呼办嘿跑Θ穝呼办嘿, 硂盢獶盽Τノ.
domains_from=ㄓ方呼办...
domains_to=ヘ夹呼办...
domains_return=呼办癸莱

dform_edit=絪胯秎ン癸莱
dform_create=ミ秎ン癸莱
dform_from=ㄓ方呼办
dform_to=ヘ夹呼办
dform_ecannot=眤ぃ砆す砛絪胯秎ン癸莱

dsave_ecannot=眤ぃ砆す砛絪胯秎ン癸莱
dsave_err=礚猭纗秎ン癸莱
dsave_edomain='$1' ぃ琌Τ呼办嘿

access_title=︰В秎ン北
access_ecannot=眤ぃ砆す砛舱篈︰В秎ン北
access_econfig=眤 Sendmail 舱篈郎⊿Τゲ璶︰В秎ン北㏑.
access_efile=ゅ郎 $1 ㄓ︰В秎ン北戈畐 $2 ぃ. 眤惠璶跑<a href='$3'>家舱舱篈</a>ㄏノタ絋隔畖.
access_desc1=Sendmail ︰В秎ン北す砛眤玂臔眤ㄏノ┶Μ疭﹚ㄓ方秎ン, ňゎㄤノ眤╰参い膥盚祇︰В秎ン. 箇砞猵琌す砛ヴ秎ンㄓ方, 琌ňゎヴㄏノ狠┪矗ウ秎ン狝竟い膥盚癳秎ン. τē, 眤虑パ糤︰В秎ン北砏玥┶荡疭﹚秎ンㄓ方, 砞﹚ㄏノ眤╰参い膥盚癳秎ンㄤ诀竟ぇ砏玥.
access_desc2=猔種: Sendmaill 箇砞す砛眤╰参磅︽め狠祘Α竒パ SMTP い膥盚秎ンヴヘ夹. ┮⊿Τゲ璶糤 <tt>127.0.0</tt> 硂呼隔钡い膥秎ン盚癳い.
access_source=ㄓ方...
access_action=笆...
access_return=︰В秎ン北

sform_edit=絪胯︰В秎ン北砏玥
sform_create=ミ︰В秎ン北砏玥
sform_source=秎ンㄓ方
sform_type0=筿秎ン
sform_type1=呼隔
sform_type2=ㄏノ嘿
sform_type3=呼办嘿
sform_action=笆
sform_ok=钡
sform_relay=す砛い膥秎ン
sform_reject=┶荡
sform_discard=繰メ斌
sform_err=岿粇絏
sform_msg=癟
sform_ecannot=眤ぃ砆す砛舱篈︰В秎ン北

ssave_ecannot=眤ぃ砆す砛舱篈︰В秎ン北
ssave_err=礚猭纗︰В秎ン北砏玥
ssave_etype0='$1' ぃ琌Τ秎ン
ssave_etype1='$1' ぃ琌Τ呼隔
ssave_etype2='$1' ぃ琌Τㄏノ嘿
ssave_etype3='$1' ぃ琌Τ呼办嘿
ssave_ecode='$1' ぃ琌Τ SMTP 岿粇絏

relay_title=い膥呼办
relay_ecannot=眤ぃ砆す砛絪胯い膥呼办
relay_eversion=Τ Sendmail セ 8.9 籔や穿い膥呼办.
relay_domains=す砛い膥盚癳呼办
relay_desc1=埃獶琌パ<a href='$1'>︰В秎ン北</a>砏玥┮す砛猵, Sendmail す砛オ娩ゅよ遏い呼办ㄏノい膥秎ン. ┮Τぃ琌倒セ狠ㄏノ┪琌ぃい呼办秎ン常穦砆┶荡.
relay_desc2=狦眤╰参琌讽ぃ钡籔呼隔硈钡呼办ぇ筯笵竟ㄏノ (ㄏノ<a href='$1'>呼办隔パ</a>), 玥┮Τêㄇ呼办常莱赣璶砆硂ㄠ.
relay_err=礚猭纗い膥呼办
relay_edomain='$1' ぃ琌Τ呼办嘿

mailq_title=秎ン︻
mailq_ecannot=眤ぃ砆す砛浪跌秎ン︻
mailq_id=秎ン絪腹
mailq_sent=秎ン丁
mailq_from=ㄓ方
mailq_to=ヘ夹
mailq_status=篈
mailq_unknown=ゼ
mailq_sending=患癳い
mailq_dmsg=璶眖秎ン︻い浪跌秎ン癟, 叫い秎ン絪腹.
mailq_force=璶眏ミ癳︻い秎ン, 叫<a href='$1'>硂ㄠ</a>.
mailq_none=⊿Τ︻い单盚癳秎ン
mailq_return=秎ン︻

flushq_title=睲瞶︻
flushq_desc=㏑ $1 眏沽刚患癳秎ンい...

delq_err=礚猭簿埃癟
delq_ecannot=眤ぃ砆す砛睲瞶秎ン︻
delq_locked=ヘ玡タ癳τ砆玛﹚

boxes_title=ㄏノ獺絚
boxes_user=ㄏノ嘿
boxes_size=獺絚
boxes_none=⊿Τ秎ン
boxes_return=獺絚
boxes_ecannot=眤ぃ砆す砛弄筿秎ン

mail_title=ㄏノ筿秎ン
mail_from=盚ン
mail_date=ら戳
mail_subject=肈
mail_to=Μン
mail_cc=捌セй癳
mail_bcc=留旅捌セ
mail_pri=纔
mail_highest=程蔼
mail_high=蔼
mail_normal=
mail_low=
mail_lowest=程
mail_for= $1
mail_size=
mail_delete=埃匡拒秎ン
mail_compose=糶穝秎ン
mail_return=ㄏノ筿秎ン
mail_pos=秎ン $1  $2  $3
mail_none=獺絚い⊿Τ秎ン
mail_ecannot=眤ぃ砆す砛弄硂ㄏノ秎ン
mail_all=匡拒场
mail_invert=は匡
mail_search=т碝秎ン, ㄤい
mail_body=セ砰
mail_match=才
mail_ok=穓碝

view_title=弄筿秎ン
view_desc=秎ン $1  $2
view_qdesc=︻い秎ン $1
view_headers=秎ン夹繷
view_attach=ンЖ盿
view_reply=滦
view_reply2=滦倒场
view_forward=锣盚
view_delete=埃
view_ecannot=眤ぃ砆す砛弄硂ㄏノ秎ン

compose_title=糶筿秎ン
reply_title=滦筿秎ン
forward_title=锣盚筿秎ン
reply_headers=秎ン夹繷
reply_attach=锣盚ンЖ盿
reply_attach2=ンЖ盿
reply_send=癳
reply_ecannot=眤ぃ砆す砛硂ㄏノ嘿癳秎ン

send_err=秎ン癳ア毖
send_eto=框アΜン秎ン
send_efrom=框ア盚ン秎ン
send_title=癳秎ン
send_ok=秎ンΘ癳倒 $1
send_ecannot=眤ぃ砆す砛硂ㄏノ嘿癳秎ン
send_esmtp=SMTP ㏑ $1 ア毖: $2

delete_ecannot=眤ぃ砆す砛埃硂ㄏノ秎ン
delete_enone=⊿Τ匡拒璶埃秎ン

search_title=穓碝挡狦
search_ecannot=眤ぃ砆す砛穓碝硂ㄏノ秎ン
search_ematch=眤ゲ斗块穓碝兵ン
search_none=тぃ才秎ン.
search_results=才兵ン '$1' 秎ン...

acl_opts=琌絪胯 Sendmail 匡兜?
acl_cws=琌絪胯セ狠呼办?
acl_masq=琌舱篈呼办鞍杆?
acl_trusts=琌絪胯獺ヴㄏノ?
acl_cgs=琌絪胯癳秎ン呼办?
acl_relay=琌絪胯い膥呼办?
acl_mailers=琌舱篈呼办隔パ?
acl_access=琌舱篈︰В秎ン北?
acl_domains=琌舱篈呼办癸莱?
acl_stop=琌币笆籔氨ゎ Sendmail?
acl_mailq=琌恨瞶秎ン︻?
acl_viewdel=浪跌籔埃
acl_view=Τ浪跌
acl_virtusers=硂ㄏノ絪胯秎ン癸莱
acl_none=礚
acl_all=场
acl_matching=才痹瓃
acl_vtypes=硂ㄏノ絪胯秎ン癸莱贺摸
acl_vtype0=莱岿粇
acl_vtype1=呼办
acl_vtype2=秎ン
acl_vmax=秎ン癸莱程计ヘ
acl_unlimited=礚
acl_aliases=硂ㄏノ絪胯
acl_atypes=硂ㄏノ絪胯贺摸
acl_atype1=筿秎ン
acl_atype2=秎ン郎い
acl_atype3=糶郎
acl_atype4=癳倒祘Α
acl_atype5=笆滦
acl_amax=程计ヘ
acl_outgoing=硂ㄏノ絪胯癳秎ン
acl_read=弄ㄇㄏノ秎ン
acl_users=Τㄏノ
acl_userse=场, 埃ㄏノ
acl_from=ㄌ沮秎ンす砛
acl_any=ヴ秎ン
acl_fdoms=獺絚呼办
acl_faddrs=秎ン
acl_fdom=ヴ秎ン呼办
0707010005958b000081e40000000000000002000000013ac0389c000006e2000000200000000000000000000000000000001f00000003reloc/sendmail/list_access.cgi    #!/usr/local/bin/perl
# list_access.cgi
# Display a list of all domain and address mappings

require './sendmail-lib.pl';
require './access-lib.pl';
$access{'access'} || &error($text{'access_ecannot'});
&header($text{'access_title'}, "");
print "<hr>\n";

$conf = &get_sendmailcf();
$afile = &access_file($conf);
($adbm, $adbmtype) = &access_dbm($conf);
if (!$adbm) {
	# No Kaccess directive in sendmail.cf
	print "<p><b>",$text{'access_econfig'},"</b> <p>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}
if (!-r $afile) {
	# Text file not found
	print "<p><b>",&text('access_efile', "<tt>$afile</tt>",
	      "<tt>$adbm</tt>", "/config.cgi?$module_name"),"</b> <p>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}
@accs = &list_access($afile);

&access_form();
if (@accs) {
	# sort if needed
	if ($config{'sort_mode'} == 1) {
		@accs = sort { $a->{'from'} cmp $b->{'from'} } @accs;
		}

	# render table of access rules
	$mid = int((@accs+1)/2);
	print "<table width=100%> <tr><td width=50% valign=top>\n";
	&accs_table(@accs[0..$mid-1]);
	print "</td><td width=50% valign=top>\n";
	if ($mid < @accs) { &accs_table(@accs[$mid..$#accs]); }
	print "</td></tr> </table><br>\n";
	}
print "<a href='edit_file.cgi?mode=access'>",
	&text('file_edit', "<tt>$afile</tt>"),"</a><p>\n";
print $text{'access_desc1'},"<p>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

sub accs_table
{
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'access_source'}</b></td> ",
      "<td><b>$text{'access_action'}</b></td> </tr>\n";
foreach $m (@_) {
	print "<tr $cb> <td><a href=\"edit_access.cgi?num=$m->{'num'}\">",
	      "$m->{'from'}</a></td>\n";
	print "<td>$m->{'action'}</td> </tr>\n";
	}
print "</table>\n";
}

  0707010005958c000081e40000000000000002000000013ac0389c00000951000000200000000000000000000000000000002000000003reloc/sendmail/list_aliases.cgi   #!/usr/local/bin/perl
# list_aliases.cgi
# Displays a list of all aliases

require './sendmail-lib.pl';
require './aliases-lib.pl';
$access{'amode'} || &error($text{'aliases_ecannot'});
&header($text{'aliases_title'}, "", "aliases");
print "<hr>\n";

$conf = &get_sendmailcf();
@aliases = &list_aliases(&aliases_file($conf));
if ($access{'amode'} == 2) {
	@aliases = grep { $_->{'name'} =~ /$access{'aliases'}/ } @aliases;
	}
@aliases = grep { local $rv = 1;
		  foreach $v (@{$_->{'values'}}) {
			$rv = 0 if (!$access{"aedit_".&alias_type($v)});
			}
		  $rv;
		} @aliases;

&alias_form();
if (@aliases) {
	# sort if needed
	if ($config{'sort_mode'} == 1) {
		@aliases = sort { lc($a->{'name'}) cmp lc($b->{'name'}) }
				@aliases;
		}

	# find a good place to split
	$lines = 0;
	for($i=0; $i<@aliases; $i++) {
		$aline[$i] = $lines;
		$al = scalar(@{$aliases[$i]->{'values'}});
		$lines += ($al ? $al : 1);
		}
	$midline = int(($lines+1) / 2);
	for($mid=0; $mid<@aliases && $aline[$mid] < $midline; $mid++) { }

	# render tables
	print "<table width=100%> <tr><td width=50% valign=top>\n";
	&aliases_table(@aliases[0..$mid-1]);
	print "</td><td width=50% valign=top>\n";
	if ($mid < @aliases) { &aliases_table(@aliases[$mid..$#aliases]); }
	print "</td></tr> </table><br>\n";
	}

if ($access{'amode'} == 1 && $access{'aedit_1'} && $access{'aedit_2'} &&
    $access{'aedit_3'} && $access{'aedit_4'} && $access{'aedit_5'} &&
    $access{'amax'} == 0 && $access{'apath'} eq '/') {
	$i = 0;
	foreach $f (@{&aliases_file($conf)}) {
		print "<a href='edit_file.cgi?mode=aliases&idx=$i'>",
			&text('file_edit', "<tt>$f</tt>"),
			"</a>&nbsp;&nbsp;\n";
		$i++;
		}
	print "<p>\n";
	}

print "<hr>\n";
&footer("", $text{'index_return'});

sub aliases_table
{
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'aliases_addr'}</b></td> ",
      "<td><b>$text{'aliases_to'}</b></td> </tr>\n";
foreach $a (@_) {
	print "<tr $cb>\n";
	print "<td valign=top><a href=\"edit_alias.cgi?num=$a->{'num'}\">",
	      $a->{'enabled'} ? "" : "<i>",$a->{'name'},
	      $a->{'enabled'} ? "" : "</i>","</a></td>\n";
	print "<td>\n";
	foreach $v (@{$a->{'values'}}) {
		($anum, $astr) = &alias_type($v);
		print &text("aliases_type$anum", "<tt>$astr</tt>"),"<br>\n";
		}
	if (!@{$a->{'values'}}) { print "<i>$text{'aliases_none'}</i>\n"; }
	print "</td> </tr>\n";
	}
print "</table>\n";
}

   0707010005958d000081e40000000000000002000000013ac0389c000007bc000000200000000000000000000000000000001e00000003reloc/sendmail/list_boxes.cgi #!/usr/local/bin/perl
# list_boxes.cgi
# List the mailboxes of all local users

require './sendmail-lib.pl';
require './boxes-lib.pl';

if ($access{'mmode'} == 0) {
	&error($text{'boxes_ecannot'});
	}
elsif ($access{'mmode'} == 2) {
	if ($access{'musers'} =~ /^\S+$/) {
		&redirect("list_mail.cgi?user=$access{'musers'}");
		exit;
		}
	foreach $u (split(/\s+/, $access{'musers'})) {
		$ucan{$u}++;
		}
	}
elsif ($access{'mmode'} == 3) {
	foreach $u (split(/\s+/, $access{'musers'})) {
		$ucant{$u}++;
		}
	}
elsif ($access{'mmode'} == 4) {
	&redirect("list_mail.cgi?user=$ENV{'REMOTE_USER'}");
	}

&header($text{'boxes_title'}, "");
print "<hr>\n";

setpwent();
while(@u = getpwent()) {
	next if (!$ucan{$u[0]} && $access{'mmode'} == 2);
	next if ($ucant{$u[0]} && $access{'mmode'} == 3);
	next if ($u[0] ne $ENV{'REMOTE_USER'} && $access{'mmode'} == 4);
	next if ($u[3] != $access{'musers'} && $access{'mmode'} == 5);
	local @st = stat(&user_mail_file($u[0]));
	push(@users, [ $u[0], $st[7] ]);
	$done_sent++ if ($u[0] eq $access{'sent'});
	}
endpwent();
@users = sort { $b->[1] <=> $a->[1] } @users;
if ($access{'sent'} && !$done_sent) {
	local @st = stat(&user_mail_file($access{'sent'}));
	push(@users, [ $access{'sent'}, $st[7] ]);
	}

print "<table width=100%><tr><td valign=top width=50%>\n";
$mid = int((@users+1) / 2);
&users_table(@users[0 .. $mid-1]);
print "</td><td valign=top width=50%>\n";
&users_table(@users[$mid .. $#users]);
print "</td></tr></table><p>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

sub users_table
{
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'boxes_user'}</b></td> ",
      "<td><b>$text{'boxes_size'}</b></td> </tr>\n";
foreach $u (@_) {
	print "<tr $cb> <td><a href=\"list_mail.cgi?user=$u->[0]\">",
	      $u->[0] eq $access{'sent'} ? $text{'boxes_sent'} : $u->[0],
	      "</a></td>\n";
	print "<td>",defined($u->[1]) ? $u->[1]
				      : $text{'boxes_none'},"</td> </tr>\n";
	}
print "</table>\n";
}

0707010005958e000081e40000000000000002000000013ac0389c000004cb000000200000000000000000000000000000001c00000003reloc/sendmail/list_cgs.cgi   #!/usr/local/bin/perl
# list_cgs.cgi
# List domains for which outgoing address mapping is done

require './sendmail-lib.pl';
$access{'cgs'} || &error($text{'cgs_ecannot'});
&header($text{'cgs_title'}, "");
print "<hr>\n";

$conf = &get_sendmailcf();
foreach $f (&find_type("F", $conf)) {
	if ($f->{'value'} =~ /^G[^\/]*(\/\S+)/) { $cgfile = $1; }
	}
if ($cgfile) {
	# get domains listed in a separate file
	open(CG, $cgfile);
	while(<CG>) {
		s/\r|\n//g;
		s/#.*$//g;
		if (/\S/) { push(@dlist, $_); }
		}
	close(CG);
	}

# Add domains from sendmail.cf
foreach $f (&find_type("C", $conf)) {
	if ($f->{'value'} =~ /^G\s*(.*)$/) {
		push(@dlist, split(/\s+/, $1));
		}
	}

print "<form method=post action=save_cgs.cgi>\n";
print "<input type=hidden name=cgfile value=\"$cgfile\">\n";
print "<table cellpadding=5 width=100%><tr><td valign=top nowrap>\n";
print "<b>$text{'cgs_header'}</b><br>\n";
print "<textarea name=dlist rows=15 cols=65>",
	join("\n", @dlist),"</textarea><br>\n";
print "<input type=submit value=\"$text{'save'}\">\n";

print "</td><td valign=top>\n";
print &text('cgs_desc', "list_generics.cgi"),"<p>\n";
print "</td></tr></table>\n";
print "</form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

 0707010005958f000081e40000000000000002000000013ac0389c000004ed000000200000000000000000000000000000001c00000003reloc/sendmail/list_cws.cgi   #!/usr/local/bin/perl
# list_cws.cgi
# List domains for which we accept mail

require './sendmail-lib.pl';
$access{'cws'} || &error($text{'cws_ecannot'});
&header($text{'cws_title'}, "");
print "<hr>\n";

$conf = &get_sendmailcf();
foreach $f (&find_type("F", $conf)) {
	if ($f->{'value'} =~ /^w[^\/]*(\/\S+)/) { $cwfile = $1; }
	}
if ($cwfile) {
	# get domains listed in a separate file
	open(CW, $cwfile);
	while(<CW>) {
		s/\r|\n//g;
		s/#.*$//g;
		if (/\S/) { push(@dlist, $_); }
		}
	close(CW);
	}

# Add domains from sendmail.cf
foreach $f (&find_type("C", $conf)) {
	if ($f->{'value'} =~ /^w\s*(.*)$/) {
		push(@dlist, split(/\s+/, $1));
		}
	}

print "<form method=post action=save_cws.cgi>\n";
print "<input type=hidden name=cwfile value=\"$cwfile\">\n";
print "<table cellpadding=5 width=100%><tr><td valign=top nowrap>\n";
print "<b>$text{'cws_domains'}</b><br>\n";
print "<textarea name=dlist rows=15 cols=65>",
	join("\n", @dlist),"</textarea><br>\n";
print "<input type=submit value=\"$text{'save'}\">\n";

print "</td><td valign=top>\n";
print &text('cws_desc1', "<tt>".&get_system_hostname()."</tt>"),"<p>\n";
print $text{'cws_desc2'},"\n";
print "</td></tr></table>\n";
print "</form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});


   07070100059590000081e40000000000000002000000013ac0389c000006d3000000200000000000000000000000000000002000000003reloc/sendmail/list_domains.cgi   #!/usr/local/bin/perl
# list_domains.cgi
# Display a list of all domain mappings

require './sendmail-lib.pl';
require './domain-lib.pl';
$access{'domains'} || &error($text{'domains_ecannot'});
&header($text{'domains_title'}, "");
print "<hr>\n";

$conf = &get_sendmailcf();
$dfile = &domains_file($conf);
($ddbm, $ddbmtype) = &domains_dbm($conf);
if (!$ddbm) {
	# No Kdomain directive in sendmail.cf
	print "<p><b>",$text{'domains_econfig'},"</b> <p>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}
if (!-r $dfile) {
	# Text file not found
	print "<p><b>",&text('domains_efile', "<tt>$dfile</tt>",
	      "<tt>$ddbm</tt>", "/config.cgi?$module_name"),"</b> <p>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}
@doms = &list_domains($dfile);

&domain_form();
if (@doms) {
	# sort if needed
	if ($config{'sort_mode'} == 1) {
		@doms = sort { $a->{'from'} cmp $b->{'from'} } @doms;
		}

	# render table of domains
	$mid = int((@doms+1)/2);
	print "<table width=100%> <tr><td width=50% valign=top>\n";
	&doms_table(@doms[0..$mid-1]);
	print "</td><td width=50% valign=top>\n";
	if ($mid < @doms) { &doms_table(@doms[$mid..$#doms]); }
	print "</td></tr> </table><br>\n";
	}
print "<a href='edit_file.cgi?mode=domains'>",
	&text('file_edit', "<tt>$dfile</tt>"),"</a><p>\n";
print $text{'domains_desc'},"<p>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

sub doms_table
{
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'domains_from'}</b></td> ",
      "<td><b>$text{'domains_to'}</b></td> </tr>\n";
foreach $m (@_) {
	print "<tr $cb> <td><a href=\"edit_domain.cgi?num=$m->{'num'}\">",
	      "$m->{'from'}</a></td>\n";
	print "<td>$m->{'to'}</td> </tr>\n";
	}
print "</table>\n";
}

 07070100059591000081e40000000000000002000000013ac0389c00000a77000000200000000000000000000000000000002100000003reloc/sendmail/list_generics.cgi  #!/usr/local/bin/perl
# list_generics.cgi
# Display a list of addresses for outgoing address mapping

require './sendmail-lib.pl';
require './generics-lib.pl';
$access{'omode'} || &error($text{'generics_cannot'});
&header($text{'generics_title'}, "");
print "<hr>\n"; 

$conf = &get_sendmailcf();
$gfile = &generics_file($conf);
($gdbm, $gdbmtype) = &generics_dbm($conf);
if (!$gdbm) {
	# No Kgenerics directive in sendmail.cf
	print "<p><b>$text{'generics_econfig'}</b> <p>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}
if (!-r $gfile) {
	# Text file not found
	print "<p><b>",&text('generics_efile', "<tt>$gfile</tt>",
	      "<tt>$gdbm</tt>", "/config.cgi?$module_name"),"</b> <p>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}
@gens = &list_generics($gfile);
if ($access{'omode'} == 2) {
	@gens = grep { $_->{'from'} =~ /$access{'oaddrs'}/ } @gens;
	}

&generic_form();
if (@gens) {
	# sort if needed
	if ($config{'sort_mode'} == 1) {
		@gens = sort sort_by_domain @gens;
		}

	# render table of generics
	$mid = int((@gens+1)/2);
	print "<table width=100%> <tr><td width=50% valign=top>\n";
	&gens_table(@gens[0..$mid-1]);
	print "</td><td width=50% valign=top>\n";
	if ($mid < @gens) { &gens_table(@gens[$mid..$#gens]); }
	print "</td></tr> </table><br>\n";
	}
if ($access{'omode'} == 1) {
	print "<a href='edit_file.cgi?mode=generics'>",
		&text('file_edit', "<tt>$gfile</tt>"),"</a><p>\n";
	}

print $text{'generics_desc1'},"<p>\n";
print &text('generics_desc2', "list_cgs.cgi"),"<br>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

sub gens_table
{
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'generics_from'}</b></td> ",
      "<td><b>$text{'generics_to'}</b></td></tr>\n";
foreach $g (@_) {
	print "<tr $cb> <td><a href=\"edit_generic.cgi?num=$g->{'num'}\">",
	      "<tt>$g->{'from'}</tt></a></td>\n";
	print "<td>$g->{'to'}</td> </tr>\n";
	}
print "</table>\n";
}

# Notes - The G class lists domains for which outgoing-address translation
# is done. If a mapping for an address like 'foo' exists, it applied for
# from addresses like 'foo' or 'foo@anything'. However, a mapping for
# 'foo@foo.com' applies only for that exact address
# By default, the G class contains only the full local hostname 
# (like florissa.home). Sendmail automatically adds the full hostname
# to unqualified addresses sent locally or through smtp (so <foo> becomes
# <foo@florissa.home>
# The G class can be defined by CG statements in sendmail.cf, or by a
# FG/path line to use an external file..

# If there is a generics mapping from an unqualified name, then it will
# apply for all domains in the G class.

 07070100059592000081e40000000000000002000000013ac0389c0000121e000000200000000000000000000000000000001d00000003reloc/sendmail/list_mail.cgi  #!/usr/local/bin/perl
# list_mail.cgi
# List the mail messages for some user

require './sendmail-lib.pl';
require './boxes-lib.pl';
&ReadParse();
&can_read_mail($in{'user'}) || &error($text{'mail_ecannot'});

$sentbox = $in{'user'} eq $access{'sent'};
&header($text{'mail_title'}, "");
print "<center><font size=+2>",
      $sentbox ? $text{'mail_sent'} :
      &text('mail_for', "<tt>".&user_mail_file($in{'user'})."</tt>"),
      "</font></center>\n";
print "<hr>\n";

if (!defined($in{'start'}) && $config{'order_mail'}) {
	# View mail from the oldest
	@mail = reverse(&list_mails($in{'user'}, 0, $config{'perpage'}-1));
	$in{'start'} = @mail-$config{'perpage'};
	$in{'start'} = 0 if ($in{'start'} < 0);
	}
else {
	# View mail from the most recent
	@mail = reverse(&list_mails($in{'user'},
			-$in{'start'}, -$in{'start'}-$config{'perpage'}+1));
	}
if ($in{'start'} || @mail > $config{'perpage'}) {
	print "<center>\n";
	if ($in{'start'}+$config{'perpage'} < @mail) {
		printf "<a href='list_mail.cgi?user=%s&start=%d'>%s</a>\n",
			$in{'user'}, $in{'start'}+$config{'perpage'},
			'<img src=/images/left.gif border=0 align=middle>';
		}
	local $s = @mail-$in{'start'};
	local $e = @mail-$in{'start'}-$config{'perpage'}+1;
	print "<font size=+1>",&text('mail_pos', $s, $e < 1 ? 1 : $e,
				     scalar(@mail)),"</font>\n";
	if ($in{'start'}) {
		printf "<a href='list_mail.cgi?user=%s&start=%d'>%s</a>\n",
			$in{'user'}, $in{'start'}-$config{'perpage'},
			'<img src=/images/right.gif border=0 align=middle>';
		}
	print "</center>\n";
	}

if (!@mail) {
	print "<b>$text{'mail_none'}</b><p>\n";
	}
else {
	print "<form action=delete_mail.cgi>\n";
	print "<input type=hidden name=user value='$in{'user'}'>\n";
	print "<table border width=100%>\n";
	print "<tr $tb> <td>&nbsp;</td> ",
	      $sentbox ? "<td><b>$text{'mail_to'}</b></td>"
		       : "<td><b>$text{'mail_from'}</b></td> ",
	      "<td><b>$text{'mail_date'}</b></td> ",
	      "<td><b>$text{'mail_size'}</b></td> ",
	      "<td><b>$text{'mail_subject'}</b></td> </tr>\n";
	}

for($i=$in{'start'}; $i<@mail && $i<$in{'start'}+$config{'perpage'}; $i++) {
	local $idx = $mail[$i]->{'idx'};
	print "<tr $cb>\n";
	print "<td><input type=checkbox name=d value=$idx></td>\n";
	print "<td nowrap><a href='view_mail.cgi?user=$in{'user'}&idx=$idx'>",
              &simplify_from($mail[$i]->{'header'}->{$sentbox ? 'to' : 'from'}),
	      "</td>\n";
	print "<td nowrap>",&simplify_date($mail[$i]->{'header'}->{'date'}),
	      "</td>\n";
	print "<td nowrap>",int($mail[$i]->{'size'}/1000)+1," kB","</td>\n";
	print "<td><table border=0 cellpadding=0 cellspacing=0 width=100%>",
	      "<tr><td>",&simplify_subject($mail[$i]->{'header'}->{'subject'}),
	      "</td> <td align=right>";
	if ($mail[$i]->{'header'}->{'content-type'} =~ /multipart\/\S+/i) {
		print "<img src=images/attach.gif>";
		}
	local $p = int($mail[$i]->{'header'}->{'x-priority'});
	if ($p == 1) {
		print "&nbsp;<img src=images/p1.gif>";
		}
	elsif ($p == 2) {
		print "&nbsp;<img src=images/p2.gif>";
		}
	print "</td></tr></table></td> </tr>\n";
	}
if (@mail) {
	print "</table>\n";
	print "<a href='' onClick='for(i=0; i<document.forms[0].d.length; i++) { document.forms[0].d[i].checked = true; } return false'>$text{'mail_all'}</a>&nbsp;\n";
	print "<a href='' onClick='for(i=0; i<document.forms[0].d.length; i++) { document.forms[0].d[i].checked = !document.forms[0].d[i].checked; } return false'>$text{'mail_invert'}</a>&nbsp;\n";
	}

print "<table width=100%> <tr>\n";
if (@mail) {
	print "<td>\n";
	print "<input type=submit name=delete value=\"$text{'mail_delete'}\">\n";
	print "</td></form>\n";
	}
if (!$sentbox) {
	print "<form action=reply_mail.cgi>\n";
	print "<input type=hidden name=user value=\"$in{'user'}\">\n";
	print "<input type=hidden name=new value=1>\n";
	print "<td align=right><input type=submit ",
	      "value=\"$text{'mail_compose'}\"></td>\n";
	}
print "</form> </tr></table>\n";

if (@mail) {
	print "<hr>\n";
	print "<form action=mail_search.cgi>\n";
	print "<input type=hidden name=user value=\"$in{'user'}\">\n";
	print "<b>$text{'mail_search'}</b>\n";
	print "<select name=field>\n";
	foreach $f ('from', 'subject', 'to', 'cc', 'date', 'body', 'size') {
		printf "<option value=%s>%s\n", $f, $text{"match_$f"};
		}
	print "</select>\n";
	print "<input name=match size=20>\n";
	print "&nbsp;<input type=submit value='$text{'mail_ok'}'\n";
	print "</form><p>\n";
	}

print "<hr>\n";
if ($access{'mmode'} == 2 && $access{'musers'} =~ /^\S+$/ ||
    $access{'mmode'} == 4) {
	&footer("", $text{'index_return'});
	}
else {
	&footer("list_boxes.cgi", $text{'boxes_return'});
	}

  07070100059593000081e40000000000000002000000013ac0389c000007d5000000200000000000000000000000000000002000000003reloc/sendmail/list_mailers.cgi   #!/usr/local/bin/perl
# list_mailers.cgi
# Display a list of mailertable domains

require './sendmail-lib.pl';
require './mailers-lib.pl';

$access{'mailers'} || &error($text{'mailers_cannot'});
&header($text{'mailers_title'}, "");
print "<hr>\n";

$conf = &get_sendmailcf();
$mfile = &mailers_file($conf);
($mdbm, $mdbmtype) = &mailers_dbm($conf);
if (!$mdbm) {
	# No Kmailertable directive in sendmail.cf
	print "<p><b>$text{'mailers_edirective'}</b> <p>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}
if (!-r $mfile) {
	# Text file not found
	print "<p><b>",&text('mailers_efile', "<tt>$mfile</tt>",
	      "<tt>$mdbm</tt>", "/config.cgi?$module_name"),"</b> <p>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}
@mailers = &list_mailers($mfile);

&mailer_form();
if (@mailers) {
	# sort if needed
	if ($config{'sort_mode'} == 1) {
		@mailers = sort { $a->{'domain'} cmp $b->{'domain'} } @mailers;
		}

	# render table of mailers
	$mid = int((@mailers+1)/2);
	print "<table width=100%> <tr><td width=50% valign=top>\n";
	&mailers_table(@mailers[0..$mid-1]);
	print "</td><td width=50% valign=top>\n";
	if ($mid < @mailers) { &mailers_table(@mailers[$mid..$#mailers]); }
	print "</td></tr> </table><br>\n";
	}
print "<a href='edit_file.cgi?mode=mailers'>",
	&text('file_edit', "<tt>$mfile</tt>"),"</a><p>\n";

print $text{'mailers_desc1'},"<p>\n";
print &text('mailers_desc2', 'list_cws.cgi'),"<br>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

sub mailers_table
{
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'mailers_for'}</b></td> ",
      "<td><b>$text{'mailers_delivery'}</b></td> ",
      "<td><b>$text{'mailers_to'}</b></td> </tr>\n";
foreach $m (@_) {
	print "<tr $cb>\n";
	print "<td><a href=\"edit_mailer.cgi?num=$m->{'num'}\">",
	      "$m->{'domain'}</a></td>\n";
	$md = $mailer_desc{$m->{'mailer'}};
	print "<td>",$md ? $md : $m->{'mailer'},"</td>\n";
	print "<td>$m->{'dest'}</td> </tr>\n";
	}
print "</table>\n";
}

   07070100059594000081e40000000000000002000000013ac0389c00000b6c000000200000000000000000000000000000001e00000003reloc/sendmail/list_mailq.cgi #!/usr/local/bin/perl
# list_mailq.cgi
# Display the current mail queue

require './sendmail-lib.pl';
$access{'mailq'} || &error($text{'mailq_ecannot'});
print "Refresh: $config{'mailq_refresh'}\r\n"
	if ($config{'mailq_refresh'});
&header($text{'mailq_title'}, "");
print "<hr><p>\n";

$conf = &get_sendmailcf();
foreach $mqueue (&mailq_dir($conf)) {
	opendir(QDIR, $mqueue);
	push(@qfiles, map { "$mqueue/$_" } grep { /^qf/ } readdir(QDIR));
	closedir(QDIR);
	}

if (@qfiles) {
	print "<form action=del_mailqs.cgi>\n";
	print "<table border width=100%>\n";
	print "<tr $tb> ";
	if ($access{'mailq'} == 2) {
		print "<td><br></td> ";
		}
	print "<td><b>$text{'mailq_id'}</b></td> ",
	      "<td><b>$text{'mailq_sent'}</b></td> ",
	      "<td><b>$text{'mailq_from'}</b></td> ",
              "<td><b>$text{'mailq_to'}</b></td> ",
              "<td><b>$text{'mailq_size'}</b></td> ",
	      "<td><b>$text{'mailq_status'}</b></td> </tr>\n";
	foreach $f (@qfiles) {
		($n = $f) =~ s/^.*\///;
		$from = $to = $date = $text{'mailq_unknown'};
		$status = $text{'mailq_sending'};
		open(QFILE, $f) || next;
		while(<QFILE>) {
			if (/^[^\-]*To:\s+(.*)/) { $to = $1; }
			elsif (/^[^\-]*From:\s+(.*)/) { $from = $1; }
			elsif (/^[^\-]*Date:\s+(.*)/) { $date = $1; }
			elsif (/^M(.*)/) { $status = $1; }
			}
		close(QFILE);
		$from =~ s/</&lt;/g; $from =~ s/>/&gt;/g;
		$to =~ s/</&lt;/g; $to =~ s/>/&gt;/g;
		$date =~ s/\+.*//g;
		($d = $f) =~ s/\/qf/\/df/;
		@st = stat($d);
		if ($st[7] > 1000000) {
			$size = int($st[7] / 1000000)." MB";
			}
		elsif ($st[7] > 1000) {
			$size = int($st[7] / 1000)." kB";
			}
		else {
			$size = "$st[7] b";
			}
		print "<tr $cb>\n";
		if ($access{'mailq'} == 2) {
			print "<td><input type=checkbox name=file ",
			      "value=$f></td>\n";
			print "<td><font size=1><a href=\"view_mailq.cgi?",
			      "file=$f\">$n</a></font></td>\n";
			}
		else {
			print "<td><font size=1>$n</font></td>\n";
			}
		print "<td><font size=1>$date</font></td>\n";
		print "<td><font size=1>$from</font></td>\n";
		print "<td><font size=1>$to</font></td>\n";
		print "<td><font size=1>$size</font></td>\n";
		print "<td><font size=1>$status</font></td>\n";
		print "</tr>\n";
		}
	print "</table>\n";
	print "<a href='' onClick='for(i=0; i<document.forms[0].file.length; i++) { document.forms[0].file[i].checked = true; } return false'>$text{'mail_all'}</a>&nbsp;\n";
	print "<a href='' onClick='for(i=0; i<document.forms[0].file.length; i++) { document.forms[0].file[i].checked = !document.forms[0].file[i].checked; } return false'>$text{'mail_invert'}</a>&nbsp;<p>\n";
	if ($access{'mailq'} == 2) {
		print "<input type=submit value='$text{'mailq_delete'}'><p>\n";
		print "<hr><p>",$text{'mailq_dmsg'},"<br>\n";
		}
	print &text('mailq_force', 'flushq.cgi'),"<p>\n";
	print "</form>\n";
	}
else {
	print "<b>$text{'mailq_none'}</b> <p>\n";
	}

print "<hr>\n";
&footer("", $text{'index_return'});

07070100059595000081e40000000000000002000000013ac0389c000005bd000000200000000000000000000000000000001d00000003reloc/sendmail/list_masq.cgi  #!/usr/local/bin/perl
# list_masq.cgi
# List domains for which masquerading is done

require './sendmail-lib.pl';
$access{'masq'} || &error($text{'masq_ecannot'});
&header($text{'masq_title'}, "");
print "<hr>\n";
$conf = &get_sendmailcf();

# Get the domain we masquerade as
foreach $d (&find_type("D", $conf)) {
	if ($d->{'value'} =~ /^M\s*(\S*)/) { $masq = $1; }
	}

# Get masq domains from a file
foreach $f (&find_type("F", $conf)) {
	if ($f->{'value'} =~ /^M[^\/]*(\S*)/) { $cmfile = $1; }
	} 
if ($cmfile) {
	open(CM, $cmfile);
	while(<CM>) {
		s/\r|\n//g;
		s/#.*$//g;
		if (/\S/) { push(@mlist, $_); }
		}
	close(CM);
	}

# Add domains from sendmail.cf
foreach $m (&find_type("C", $conf)) {
	if ($m->{'value'} =~ /^M\s*(.*)$/) {
		push(@mlist, split(/\s+/, $1));
		}
	}
print "<form method=post action=save_masq.cgi>\n";
print "<input type=hidden name=cmfile value=\"$cmfile\">\n";
print "<b>$text{'masq_domain'}</b>\n";
print "<input name=masq size=30 value=\"$masq\"><br>\n";

print "<table cellpadding=5 width=100%><tr><td valign=top nowrap>\n";
print "<b>$text{'masq_domains'}</b><br>\n";
print "<textarea name=mlist rows=15 cols=65>",
	join("\n", @mlist),"</textarea><br>\n";
print "<input type=submit value=\"$text{'save'}\">\n";

print "</td><td valign=top>\n";
print &text('masq_desc1', 'list_generics.cgi'),"<p>\n";
print $text{'masq_desc2'},"\n";
print "</td></tr></table>\n";
print "</form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

   07070100059596000081e40000000000000002000000013ac0389c00001914000000200000000000000000000000000000001d00000003reloc/sendmail/list_opts.cgi  #!/usr/local/bin/perl
# list_opts.cgi
# A form for editing options set with the 'O foo=bar' directive,
# and other things.

require './sendmail-lib.pl';
$access{'opts'} || &error($text{'opts_ecannot'});
&header($text{'opts_title'}, "");
print "<hr>\n";

$conf = &get_sendmailcf();
$default = $text{'opts_default'};
print "<form action=save_opts.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'opts_title'}</b></td></tr>\n";
print "<tr $cb> <td><table width=100%>\n";

($dsstr, $ds) = &find_type2("D", "S", $conf);
print "<tr> <td>",&hlink("<b>$text{'opts_ds'}</b>","opt_DS"),
      "</td> <td colspan=3>\n";
printf "<input type=radio name=DS_def value=1 %s> $text{'opts_direct'}\n",
	$ds ? "" : "checked";
printf "<input type=radio name=DS_def value=0 %s>\n",
	$ds ? "checked" : "";
print "<input name=DS size=25 value=\"$ds\"></td> </tr>\n";

($drstr, $dr) = &find_type2("D", "R", $conf);
print "<tr> <td>",&hlink("<b>$text{'opts_dr'}</b>",
			 "opt_DR"),"</td>\n";
print "<td colspan=3>\n";
printf "<input type=radio name=DR_def value=1 %s> $text{'opts_local'}\n",
	$dr ? "" : "checked";
printf "<input type=radio name=DR_def value=0 %s>\n",
	$dr ? "checked" : "";
print "<input name=DR size=25 value=\"$dr\"></td> </tr>\n";

($dhstr, $dh) = &find_type2("D", "H", $conf);
print "<tr> <td>",&hlink("<b>$text{'opts_dh'}</b>",
			 "opt_DH"),"</td>\n";
print "<td colspan=3>\n";
printf "<input type=radio name=DH_def value=1 %s> $text{'opts_local'}\n",
	$dh ? "" : "checked";
printf "<input type=radio name=DH_def value=0 %s>\n",
	$dh ? "checked" : "";
print "<input name=DH size=25 value=\"$dh\"></td> </tr>\n";

($dmstr, $dm) = &find_option("DeliveryMode", $conf);
print "<tr> <td>",&hlink("<b>$text{'opts_dmode'}</b>","opt_dmode"),
      "</td> <td colspan=3>\n";
printf "<input type=radio name=DeliveryMode value='' %s> $text{'default'}\n",
	$dm ? '' : 'checked';
foreach $dmo ('background', 'queue-only', 'interactive', 'deferred') {
	local $dmoc = substr($dmo, 0, 1);
	printf "<input type=radio name=DeliveryMode value=%s %s> %s\n",
		$dmo, $dm =~ /^$dmoc/ ? 'checked' : '', $text{"opts_$dmo"};
	}
print "</td> </tr>\n";

print "<tr>\n";
&option_input($text{'opts_queuela'}, "QueueLA", $conf, $default, 6);
&option_input($text{'opts_refusela'}, "RefuseLA", $conf, $default,6);
print "</tr>\n";

print "<tr>\n";
&option_input($text{'opts_maxch'}, "MaxDaemonChildren",
	      $conf, $default, 6);
&option_input($text{'opts_throttle'}, "ConnectionRateThrottle",
	      $conf, $default, 6);
print "</tr>\n";

print "<tr>\n";
&option_input($text{'opts_minqueueage'}, "MinQueueAge",
	      $conf, $default, 6);
&option_input($text{'opts_runsize'}, "MaxQueueRunSize", $conf, $default, 8);
print "</tr>\n";

print "<tr>\n";
&option_input($text{'opts_queuereturn'}, "Timeout.queuereturn",
	      $conf, $default, 6);
&option_input($text{'opts_queuewarn'}, "Timeout.queuewarn",
	      $conf, $default, 6);
print "</tr>\n";

print "<tr>\n";
&option_input($text{'opts_queue'}, "QueueDirectory", $conf, $default, 35);
print "</tr>\n";

print "<tr>\n";
&option_input($text{'opts_postmaster'}, "PostMasterCopy",
	      $conf, "Postmaster", 35);
print "</tr>\n";

print "<tr>\n";
&option_input($text{'opts_forward'}, "ForwardPath", $conf, $default, 35);
print "</tr>\n";

print "<tr>\n";
&option_input($text{'opts_minfree'}, "MinFreeBlocks",
	      $conf, $default, 8, $text{'opts_blocks'});
&option_input($text{'opts_maxmessage'}, "MaxMessageSize",
	      $conf, $default, 10, $text{'opts_bytes'});
print "</tr>\n";

print "<tr>\n";
&option_input($text{'opts_loglevel'}, "LogLevel", $conf, $default, 4);
($vstr, $v) = &find_option("SendMimeErrors", $conf);
print "<td>",&hlink("<b>$text{'opts_mimebounce'}</b>","opt_SendMimeErrors"),
      "</td> <td>\n";
printf "<input type=radio name=SendMimeErrors value=True %s> $text{'yes'}\n",
	$v eq "True" ? "checked" : "";
printf "<input type=radio name=SendMimeErrors value=False %s> $text{'no'}\n",
	$v eq "True" ? "" : "checked";
print "</td> </tr>\n";

print "<tr>\n";
($bstr, $b) = &find_option("DontBlameSendmail", $conf);
print "<td valign=top>",&hlink("<b>$text{'opts_blame'}</b>",
      "opt_DontBlameSendmail"),"</td> <td colspan=3>\n";
printf "<input type=radio name=DontBlameSendmail_def value=1 %s> %s\n",
	$b ? '' : 'checked', $text{'default'};
printf "<input type=radio name=DontBlameSendmail_def value=0 %s> %s<br>\n",
	$b ? 'checked' : '', $text{'opts_selected'};
map { $b{lc($_)} = 1 } split(/[\s,]+/, $b);
printf "<select name=DontBlameSendmail size=5 multiple>\n";
foreach $bo ('Safe', 'AssumeSafeChown', 'ClassFileInUnsafeDirPath',
	     'DontWarnForwardFileInUnsafeDirPath', 'ErrorHeaderInUnsafeDirPath',
	     'GroupWritableDirPathSafe', 'GroupWritableForwardFileSafe',
	     'GroupWritableIncludeFileSafe', 'GroupWritableAliasFile',
	     'HelpFileInUnsafeDirPath', 'WorldWritableAliasFile',
	     'ForwardFileInGroupWritableDirPath',
	     'IncludeFileInGroupWritableDirPath', 'ForwardFileInUnsafeDirPath',
	     'IncludeFileInUnsafeDirPath', 'ForwardFileInUnsafeDirPathSafe',
	     'IncludeFileInUnsafeDirPathSafe', 'MapInUnsafeDirPath',
	     'LinkedAliasFileInWritableDir', 'LinkedClassFileInWritableDir',
	     'LinkedForwardFileInWritableDir', 'LinkedIncludeFileInWritableDir',
	     'LinkedMapInWritableDir', 'LinkedServiceSwitchFileInWritableDir',
	     'FileDeliveryToHardLink', 'FileDeliveryToSymLink',
	     'RunProgramInUnsafeDirPath', 'RunWritableProgram',
	     'WriteMapToHardLink', 'WriteMapToSymLink', 'WriteStatsToHardLink',
	     'WriteStatsToSymLink', 'TrustStickyBit', 'NonRootSafeAddr') {
	printf "<option %s>%s\n", $b{lc($bo)} ? 'selected' : '', $bo;
	delete($b{lc($bo)});
	}
foreach $bo (keys %b) {
	print "<option selected>$bo\n";
	}
print "</select></td> </tr>\n";

print "</table></td></tr></table><p>\n";
print "<input type=submit value=\"$text{'opts_save'}\"></form>\n";
print "<hr>\n";
&footer("", $text{'index_return'});

# option_input(desc, name, &config, default, size, units)
sub option_input
{
local ($vstr, $v) = &find_option($_[1], $_[2]);
printf "<td>".&hlink("<b>$_[0]</b>","opt_".$_[1])."</td> <td %s nowrap>\n",
	$_[4] > 20 ? "colspan=3" : "";
printf "<input type=radio name=$_[1]_def value=1 %s> $_[3]\n",
	defined($v) ? "" : "checked";
printf "<input type=radio name=$_[1]_def value=0 %s>\n",
	defined($v) ? "checked" : "";
print "<input name=$_[1] size=$_[4] value=\"$v\"> $_[5]</td>\n";
}

07070100059597000081e40000000000000002000000013ac0389c00000620000000200000000000000000000000000000001e00000003reloc/sendmail/list_relay.cgi #!/usr/local/bin/perl
# list_relay.cgi
# List domains to while relaying is allowed

require './sendmail-lib.pl';
$access{'relay'} || &error($text{'relay_ecannot'});
&header($text{'relay_title'}, "");
print "<hr>\n";

$conf = &get_sendmailcf();
$ver = &find_type("V", $conf);
if ($ver->{'value'} !~ /^(\d+)/ || $1 < 8) {
	# Only sendmail 8.9 and above supports relay domains (I think)
	print "<p><b>",$text{'relay_eversion'},"</b> <p>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}

foreach $f (&find_type("F", $conf)) {
	if ($f->{'value'} =~ /^R[^\/]*(\/\S+)/) { $relayfile = $1; }
	}
if ($relayfile) {
	# get domains listed in a separate file
	open(RELAY, $relayfile);
	while(<RELAY>) {
		s/\r|\n//g;
		s/#.*$//g;
		if (/\S/) { push(@dlist, $_); }
		}
	close(RELAY);
	}

# Add domains from sendmail.cf
foreach $f (&find_type("C", $conf)) {
	if ($f->{'value'} =~ /^R\s*(.*)$/) {
		push(@dlist, split(/\s+/, $1));
		}
	}

print "<form method=post action=save_relay.cgi>\n";
print "<input type=hidden name=relayfile value=\"$relayfile\">\n";
print "<table cellpadding=5 width=100%><tr><td valign=top nowrap>\n";
print "<b>$text{'relay_domains'}</b><br>\n";
print "<textarea name=dlist rows=15 cols=65>",
	join("\n", @dlist),"</textarea><br>\n";
print "<input type=submit value=\"$text{'save'}\">\n";

print "</td><td valign=top>\n";
print &text('relay_desc1', "list_access.cgi"),"<p>\n";
print &text('relay_desc2', "list_mailers.cgi"),"<br>\n";
print "</td></tr></table>\n";
print "</form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});


07070100059598000081e40000000000000002000000013ac0389c000004f5000000200000000000000000000000000000001f00000003reloc/sendmail/list_trusts.cgi    #!/usr/local/bin/perl
# list_trusts.cgi
# List users trusted by sendmail

require './sendmail-lib.pl';
$access{'trusts'} || &error($text{'trusts_ecannot'});
&header($text{'trusts_title'}, "");
print "<hr>\n";

$conf = &get_sendmailcf();
foreach $f (&find_type("F", $conf)) {
	if ($f->{'value'} =~ /^t[^\/]*(\/\S+)/) { $ctfile = $1; }
	}
if ($ctfile) {
	# get users listed in a separate file
	open(CT, $ctfile);
	while(<CT>) {
		s/\r|\n//g;
		s/#.*$//g;
		if (/\S/) { push(@tlist, $_); }
		}
	close(CT);
	}

# Add users from sendmail.cf
foreach $f (&find_type("T", $conf)) {
	push(@tlist, $f->{'value'});
	}
foreach $f (&find_type("C", $conf)) {
	if ($f->{'value'} =~ /^t\s*(.*)$/) {
		push(@tlist, split(/\s+/, $1));
		}
	}

print "<form method=post action=save_trusts.cgi>\n";
print "<input type=hidden name=ctfile value=\"$ctfile\">\n";
print "<table cellpadding=5 width=100%><tr><td valign=top nowrap>\n";
print "<b>$text{'trusts_users'}</b><br>\n";
print "<textarea name=tlist rows=15 cols=30>",
	join("\n", @tlist),"</textarea><br>\n";
print "<input type=submit value=\"$text{'save'}\">\n";

print "</td><td valign=top>\n";
print $text{'trusts_desc'},"<p>\n";
print "</td></tr></table>\n";
print "</form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});


   07070100059599000081a40000000000000002000000013ac0389d00000001000000200000000000000000000000000000001700000003reloc/sendmail/list_us    
   0707010005959a000081e40000000000000002000000013ac0389c00000967000000200000000000000000000000000000002200000003reloc/sendmail/list_virtusers.cgi #!/usr/local/bin/perl
# list_virtusers.cgi
# Display a list of all domain and address mappings

require './sendmail-lib.pl';
require './virtusers-lib.pl';
$access{'vmode'} || &error($text{'virtusers_ecannot'});
&header($text{'virtusers_title'}, "");
print "<hr>\n";

$conf = &get_sendmailcf();
$vfile = &virtusers_file($conf);
($vdbm, $vdbmtype) = &virtusers_dbm($conf);
if (!$vdbm) {
	# No Kvirtuser directive in sendmail.cf
	print "<p><b>$text{'virtusers_edirective'}</b> <p>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}
if (!-r $vfile) {
	# Text file not found
	print "<p><b>",&text('virtusers_efile', "<tt>$vfile</tt>",
	      "<tt>$vdbm</tt>", "/config.cgi?$module_name"),"</b><p>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}
@virts = &list_virtusers($vfile);
if ($access{'vmode'} == 2) {
	@virts = grep { $_->{'from'} =~ /$access{'vaddrs'}/ } @virts;
	}
@virts = grep { $access{"vedit_".&virt_type($_->{'to'})} } @virts; 

&virtuser_form();
if (@virts) {
	# sort if needed
	if ($config{'sort_mode'} == 1) {
		@virts = sort sort_by_domain @virts;
		}

	# render table of virtusers
	$mid = int((@virts+1)/2);
	print "<table width=100%> <tr><td width=50% valign=top>\n";
	&virts_table(@virts[0..$mid-1]);
	print "</td><td width=50% valign=top>\n";
	if ($mid < @virts) { &virts_table(@virts[$mid..$#virts]); }
	print "</td></tr> </table><br>\n";
	}
if ($access{'vmode'} == 1 && $access{'vedit_0'} && $access{'vedit_1'} &&
    $access{'vedit_2'} && $access{'vmax'} == 0) {
	print "<a href='edit_file.cgi?mode=virtusers'>",
		&text('file_edit', "<tt>$vfile</tt>"),"</a><p>\n";
	}

print &text('virtusers_desc1', 'list_aliases.cgi'),"<p>\n";
print &text('virtusers_desc2', 'list_cws.cgi'),"<br>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

sub virts_table
{
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'virtusers_for'}</b></td> ",
      "<td><b>$text{'virtusers_to'}</b></td> </tr>\n";
foreach $m (@_) {
	print "<tr $cb> <td><a href=\"edit_virtuser.cgi?num=$m->{'num'}\">",
	      "<tt>$m->{'from'}</tt></a></td> <td>\n";
	if ($m->{'to'} =~ /^error:(.*)$/) {
		print &text('virtusers_error', "<tt>$1</tt>");
		}
	elsif ($m->{'to'} =~ /^\%1\@(\S+)$/) {
		print &text('virtusers_domain', "<tt>$1</tt>");
		}
	else {
		print &text('virtusers_address', "<tt>$m->{'to'}</tt>");
		}
	print "</td> </tr>\n";
	}
print "</table>\n";
}

 0707010005959b000081a40000000000000002000000013ac0389c000004a4000000200000000000000000000000000000001d00000003reloc/sendmail/log_parser.pl  # log_parser.pl
# Functions for parsing this module's logs

require './sendmail-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p, $long) = @_;
if ($type eq 'alias' || $type eq 'virtuser' || $type eq 'mailer' ||
    $type eq 'generic' || $type eq 'domain' || $type eq 'access') {
	return &text("log_${type}_${action}", "<tt>$object</tt>");
	}
elsif ($action eq 'delmailq') {
	if ($p->{'from'}) {
		return &text("log_delmailq", &extract_email($p->{'from'}));
		}
	else {
		return &text("log_delmailqs", $p->{'count'});
		}
	}
elsif ($action eq 'delmail') {
	local @d = split(/\0/, $p->{'d'});
	return &text("log_delmail", scalar(@d), "<tt>$p->{'user'}</tt>");
	}
elsif ($action eq 'send') {
	return &text('log_send', &extract_email($p->{'to'}));
	}
elsif ($text{"log_$action"}) {
	return $text{"log_$action"};
	}
else {
	return undef;
	}
}

sub extract_email
{
if ($_[0] =~ /([^<>"' \(\)]+\@[^<>"' \(\)]+)/) {
	return "<tt>$1</tt>";
	}
elsif ($_[0] =~ /<(\S+)>/) {
	return "<tt>$1</tt>";
	}
else {
	return $_[0];
	}
}

0707010005959c000081e40000000000000002000000013ac0389e000009a5000000200000000000000000000000000000001f00000003reloc/sendmail/mail_search.cgi    #!/usr/local/bin/perl
# mail_search.cgi
# Find mail messages matching some pattern

require './sendmail-lib.pl';
require './boxes-lib.pl';
&ReadParse();
&can_read_mail($in{'user'}) || &error($text{'search_ecannot'});
$in{'match'} || &error($text{'search_ematch'});

&header($text{'search_title'}, "");
print "<center><font size=+2>",
      &text('mail_for', "<tt>".&user_mail_file($in{'user'})."</tt>"),
      "</font></center>\n";
print "<hr>\n";
print "<p><b>",&text('search_results', "<tt>$in{'match'}</tt>"),"</b><p>\n";

@rv = &search_mail($in{'user'}, $in{'field'}, $in{'match'});
if (@rv) {
	print "<form action=delete_mail.cgi>\n";
	print "<input type=hidden name=user value='$in{'user'}'>\n";
	print "<table border width=100%>\n";
	print "<tr $tb> <td>&nbsp;</td> ",
	      "<td><b>$text{'mail_from'}</b></td> ",
	      "<td><b>$text{'mail_date'}</b></td> ",
	      "<td><b>$text{'mail_size'}</b></td> ",
	      "<td><b>$text{'mail_subject'}</b></td> </tr>\n";
	}
foreach $m (@rv) {
	local $idx = $m->{'idx'};
	print "<tr $cb>\n";
	print "<td><input type=checkbox name=d value=$idx></td>\n";
	print "<td nowrap><a href='view_mail.cgi?user=$in{'user'}&idx=$idx'>",
	      &simplify_from($m->{'header'}->{'from'}),"</td>\n";
	print "<td nowrap>",&simplify_date($m->{'header'}->{'date'}),"</td>\n";
	print "<td nowrap>",int($m->{'size'}/1000)+1," kB","</td>\n";
	print "<td><table border=0 cellpadding=0 cellspacing=0 width=100%>",
	      "<tr><td>",&simplify_subject($m->{'header'}->{'subject'}),
	      "</td> <td align=right>";
	if ($m->{'header'}->{'content-type'} =~ /multipart\/\S+/i) {
		print "<img src=images/attach.gif>";
		}
	local $p = int($m->{'header'}->{'x-priority'});
	if ($p == 1) {
		print "&nbsp;<img src=images/p1.gif>";
		}
	elsif ($p == 2) {
		print "&nbsp;<img src=images/p2.gif>";
		}
	print "</td></tr></table></td> </tr>\n";
	}
if (@rv) {
	print "</table>\n";
	print "<a href='' onClick='for(i=0; i<document.forms[0].d.length; i++) { document.forms[0].d[i].checked = true; } return false'>$text{'mail_all'}</a>&nbsp;\n";
	print "<a href='' onClick='for(i=0; i<document.forms[0].d.length; i++) { document.forms[0].d[i].checked = !document.forms[0].d[i].checked; } return false'>$text{'mail_invert'}</a>&nbsp;<p>\n";
	print "<input type=submit name=delete ",
	      "value=\"$text{'mail_delete'}\"></form><p>\n";
	}
else {
	print "<b>$text{'search_none'}</b> <p>\n";
	}

print "<hr>\n";
&footer("list_boxes.cgi", $text{'boxes_return'});

   0707010005959d000081a40000000000000002000000013ac0389c00001144000000200000000000000000000000000000001e00000003reloc/sendmail/mailers-lib.pl # mailers-lib.pl
# Functions for editing the mailertable database

# mailers_dbm(&config)
# Returns the filename of the mailertable database and type, or undef if none
sub mailers_dbm
{
foreach $f (&find_type("K", $_[0])) {
        if ($f->{'value'} =~ /^mailertable\s+(\S+)[^\/]+(\/\S+)$/) {
		return ($2, $1);
                }
	}
return undef;
}

# mailers_file(&config)
# Returns the filename of the text mailertable file, or undef if none
sub mailers_file
{
return &find_textfile($config{'mailers_file'}, &mailers_dbm($_[0]));
}

# list_mailers(textfile)
sub list_mailers
{
local($lnum, @rv);
$lnum = 0;
open(MAILER, $_[0]);
while(<MAILER>) {
	s/\r|\n//g;     # remove newlines
	s/#.*$//g;	# remove comments
	if (/^(\S+)\s+([^: ]+):(.*)/) {
		local(%virt);
		$virt{'domain'} = $1;
		$virt{'mailer'} = $2;
		$virt{'dest'} = $3;
		$virt{'line'} = $lnum;
		$virt{'num'} = scalar(@rv);
		push(@rv, \%virt);
		}
	$lnum++;
	}
close(MAILER);
return @rv;
}

# create_mailer(&details, textfile, dbmfile, dbmtype)
sub create_mailer
{
local(%mailer);
open(MAILER, ">> $_[1]");
print MAILER "$_[0]->{'domain'}\t$_[0]->{'mailer'}:$_[0]->{'dest'}\n";
close(MAILER);
if ($_[3] eq "dbm") {
	dbmopen(%mailer, $_[2], 0644);
	$mailer{$_[0]->{'domain'}} = "$_[0]->{'mailer'}:$_[0]->{'dest'}";
	dbmclose(%mailer);
	}
else { &run_makemap($_[1], $_[2], $_[3]); }
}

# modify_mailer(&old, &details, textfile, dbmfile, dbmtype)
sub modify_mailer
{
local(@mailer, %mailer);
open(MAILER, $_[2]);
@mailer = <MAILER>;
close(MAILER);
splice(@mailer, $_[0]->{'line'}, 1,
       "$_[1]->{'domain'}\t$_[1]->{'mailer'}:$_[1]->{'dest'}\n");
open(MAILER, "> $_[2]");
print MAILER @mailer;
close(MAILER);
if ($_[3] eq "dbm") {
	dbmopen(%mailer, $_[3], 0644);
	delete($mailer{$_[0]->{'domain'}});
	$mailer{$_[1]->{'domain'}} = "$_[1]->{'mailer'}:$_[1]->{'dest'}";
	dbmclose(%mailer);
	}
else { &run_makemap($_[2], $_[3], $_[4]); }
}

# delete_mailer(&old, textfile, dbmfile, dbmtype)
sub delete_mailer
{
local(@mailer, %mailer);
open(MAILER, $_[1]);
@mailer = <MAILER>;
close(MAILER);
splice(@mailer, $_[0]->{'line'}, 1);
open(MAILER, "> $_[1]");
print MAILER @mailer;
close(MAILER);
if ($_[3] eq "dbm") {
	dbmopen(%mailer, $_[2], 0644);
	delete($mailer{$_[0]->{'domain'}});
	dbmclose(%mailer);
	}
else { &run_makemap($_[1], $_[2], $_[3]); }
}

# mailer_form([&details])
sub mailer_form
{
local($m, $mode, $addr, $conf, $ml, $dest, $nomx);
$m = $_[0];
print "<form action=save_mailer.cgi>\n";
if ($_[0]) { print "<input type=hidden name=num value=$m->{'num'}>\n"; }
else { print "<input type=hidden name=new value=1>\n"; }
print "<table border>\n";
print "<tr $tb> <td><b>",$_[0] ? $text{'mform_edit'} : $text{'mform_create'},
      "</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

$dom = $m->{'domain'} =~ /^\.(\S+)$/;
print "<tr> <td><b>$text{'mform_for'}</b></td>\n";
printf "<td><input type=radio name=from_type value=0 %s> %s</td>\n",
	$dom ? "" : "checked", $text{'mform_host'};
printf "<td><input name=from_host size=20 value=\"%s\"></td> </tr>\n",
	$dom ? "" : $m->{'domain'};
print "<tr> <td></td>\n";
printf "<td nowrap><input type=radio name=from_type value=1 %s> %s</td>\n",
	$dom ? "checked" : "", $text{'mform_domain'};
printf "<td><input name=from_dom size=20 value=\"%s\"></td> </tr>\n",
	$dom ? $1 : "";

print "<tr> <td><b>$text{'mform_delivery'}</b></td> ",
      "<td colspan=2><select name=mailer>\n";
$conf = &get_sendmailcf();
foreach $ml ( { 'value' => 'error' }, &find_type("M", $conf)) {
	$ml->{'value'} =~ /^([^ ,]+)/;
	printf "<option value=$1 %s>%s\n",
	    $m->{'mailer'} eq $1 || !$_[0] && $1 eq "smtp" ? "selected" : "",
	    $text{"mform_$1"} ? $text{"mform_$1"} : $1;
	}
print "</select></td> </tr>\n";

if ($m->{'dest'} =~ /^\[(\S+)\]$/) { $dest = $1; $nomx = 1; }
else { $dest = $m->{'dest'}; }
print "<tr> <td valign=top><b>$text{'mform_to'}</b></td>\n";
print "<td colspan=2><input name=dest size=30 value=\"$dest\"><br>\n";
printf "<input type=checkbox name=nomx value=1 %s>\n",
	$nomx ? "checked" : "";
print $text{'mform_ignore'},"\n";
print "</td> </tr>\n";

print "<tr> <td colspan=3 align=right>\n";
if ($_[0]) {
        print "<input type=submit value=\"$text{'save'}\">\n";
        print "<input type=submit name=delete value=\"$text{'delete'}\">\n";
        }
else { print "<input type=submit value=\"$text{'create'}\">\n"; }
print "</td> </tr>\n";
print "</table></td></tr></table></form>\n";
}

1;

0707010005959e000081a40000000000000002000000013ac0389b0000025b000000200000000000000000000000000000001b00000003reloc/sendmail/module.info    desc_zh_CN=Sendmail 配置
name=Sendmail
desc_pt=Configura玢o do Sendmail
desc_tr=Sendmail Yap齦and齬mas
desc_fr=Configuration de Sendmail
desc_es=Configuraci髇 de Sendmail
desc_de=Sendmail Konfiguration
desc_sv=Sendmail-inst鋖lningar
desc_ru_SU=胂纹汕找撩裳 Sendmail
desc_pl=Konfiguracja Sendmaila
category=servers
os_support=solaris slackware-linux redhat-linux suse-linux debian-linux freebsd hpux irix macos open-linux openserver unixware turbo-linux openbsd corel-linux cobalt-linux aix
desc_zh_TW.Big5=Sendmail 舱篈
desc=Sendmail Configuration
risk=low medium high
desc_ru_RU=暑眙桡箴圉 Sendmail
 0707010005959f000081e40000000000000002000000013ac0389d000001e9000000200000000000000000000000000000001b00000003reloc/sendmail/qdetach.cgi    #!/usr/local/bin/perl
# detach.cgi
# View one attachment from a message

require './sendmail-lib.pl';
require './boxes-lib.pl';

&ReadParse();
$access{'mailq'} || &error($text{'mailq_ecannot'});
$in{'file'} =~ /\.\./ && &error($text{'mailq_ecannot'});
$qfile = $in{'file'};
($dfile = $qfile) =~ s/\/qf/\/df/;
$mail = &mail_from_queue($qfile, $dfile);
&parse_mail($mail);
$attach = $mail->{'attach'}->[$in{'attach'}];

print "Content-type: $attach->{'type'}\n\n";
print $attach->{'data'};

   070701000595a0000081e40000000000000002000000013ac0389d000015c5000000200000000000000000000000000000001e00000003reloc/sendmail/reply_mail.cgi #!/usr/local/bin/perl
# Display a form for replying to an email

require './sendmail-lib.pl';
require './boxes-lib.pl';

&ReadParse();
&can_read_mail($in{'user'}) || &error($text{'reply_ecannot'});
if ($in{'new'}) {
	# Composing a new email
	&header($text{'compose_title'}, "");
	}
else {
	# Replying or forwarding
	@mails = &list_mails($in{'user'}, $in{'idx'}, $in{'idx'});
	$mail = $mails[$in{'idx'}];

	if ($in{'delete'}) {
		&delete_mail($in{'user'}, $mail);
		&redirect("list_mail.cgi?user=$in{'user'}");
		exit;
		}
	&header($in{'forward'} ? $text{'forward_title'} :
		$in{'enew'} ? $text{'compose_title'} :
			      $text{'reply_title'}, "");
	&parse_mail($mail);

	if ($in{'enew'}) {
		$to = $mail->{'header'}->{'to'};
		$from = $mail->{'header'}->{'from'};
		$cc = $mail->{'header'}->{'cc'};
		$ouser = $1 if ($from =~ /^(\S+)\@/);
		}
	else {
		if (!$in{'forward'}) {
			$to = $mail->{'header'}->{'reply-to'};
			$to = $mail->{'header'}->{'from'} if (!$to);
			}
		$cc = $mail->{'header'}->{'to'}.", ".
		      $mail->{'header'}->{'cc'} if ($in{'rall'});
		}
	$subject = $mail->{'header'}->{'subject'};
	$subject = "Re: ".$subject if ($subject !~ /^Re/i && !$in{'forward'} &&
							     !$in{'enew'});
	$subject = "Fwd: ".$subject if ($subject !~ /^Fwd/i && $in{'forward'});

	@attach = @{$mail->{'attach'}};
	foreach $a (@attach) {
		if ($a->{'type'} eq 'text/plain') {
			$body = $a;
			if ($in{'enew'}) {
				$quote = $body->{'data'};
				}
			else {
				foreach $l (&wrap_lines($body->{'data'}, 70)) {
					$quote .= "> $l\n";
					}
				}
			last;
			}
		}
	$quote = $mail->{'header'}->{'from'}." wrote ..\n".$quote
		if ($quote && !$in{'enew'});
	if ($in{'forward'} || $in{'enew'}) {
		@attach = grep { $_ ne $body } @attach;
		}
	else {
		undef(@attach);
		}
	}
print "<hr>\n";

print "<form action=send_mail.cgi method=post enctype=multipart/form-data>\n";
print "<input type=hidden name=user value='$in{'user'}'>\n";
print "<input type=hidden name=ouser value='$ouser'>\n";
print "<input type=hidden name=idx value='$in{'idx'}'>\n";
print "<input type=hidden name=new value='$in{'new'}'>\n";

print "<table width=100% border=1>\n";
print "<tr> <td $tb><b>$text{'reply_headers'}</b></td> </tr>\n";
print "<tr> <td $cb><table width=100%>\n";
print "<tr> <td><b>$text{'mail_from'}</b></td>\n";
if ($access{'fmode'} == 0) {
	$from = $in{'user'}.'@'.&from_hostname() if (!$from);
	print "<td><input name=from size=40 value='$from'></td>\n";
	}
elsif ($access{'fmode'} == 1) {
	local $u = $ouser ? $ouser : $in{'user'};
	print "<td><select name=from>\n";
	foreach $f (split(/\s+/, $access{'from'})) {
		printf "<option %s>%s\n",
			$from eq "$u\@$f" ? 'selected' : '', "$u\@$f";
		}
	print "</select></td>\n";
	}
elsif ($access{'fmode'} == 2) {
	print "<td><select name=from>\n";
	foreach $f (split(/\s+/, $access{'from'})) {
		printf "<option %s>%s\n",
			$from eq $f ? 'selected' : '', $f;
		}
	print "</select></td>\n";
	}
elsif ($access{'fmode'} == 3) {
	print "<td><input name=from size=10>$ouser\@$access{'from'}</td>\n";
	}
print "<td><b>$text{'mail_to'}</b></td> ",
      "<td><input name=to size=40 value='$to'></td> </tr>\n";
print "<tr> <td><b>$text{'mail_cc'}</b></td> ",
      "<td><input name=cc size=40 value='$cc'></td>\n";
print "<td><b>$text{'mail_bcc'}</b></td> ",
      "<td><input name=bcc size=40 value=''></td> </tr>\n";
print "<tr> <td><b>$text{'mail_subject'}</b></td> ",
      "<td><input name=subject size=40 value='$subject'></td>\n";
print "<td><b>$text{'mail_pri'}</b></td> ",
      "<td><select name=pri>\n",
      "<option value=1>$text{'mail_highest'}\n",
      "<option value=2>$text{'mail_high'}\n",
      "<option value='' selected>$text{'mail_normal'}\n",
      "<option value=4>$text{'mail_low'}\n",
      "<option value=5>$text{'mail_lowest'}\n",
      "</select></td> </tr>\n";
print "</table></td></tr></table><p>\n";

print "<table width=100% border=1><tr><td $cb>",
      "<textarea rows=20 cols=80 name=body $config{'wrap_mode'}>",$quote,
      "</textarea></td></tr></table><p>\n";

# Display forwarded attachments
if (@attach) {
	print "<table width=100% border=1>\n";
	print "<tr> <td $tb><b>$text{'reply_attach'}</b></td> </tr>\n";
	print "<tr> <td $cb>\n";
	foreach $a (@attach) {
		push(@titles, $a->{'filename'} ? $a->{'filename'}
					       : $a->{'type'});
		push(@links, "detach.cgi?user=$in{'user'}&idx=$in{'idx'}&attach=$a->{'idx'}");
		push(@icons, "images/boxes.gif");
		print "<input type=hidden name=forward value=$a->{'idx'}>\n";
		}
	&icons_table(\@links, \@titles, \@icons, 8);
	print "</td></tr></table><p>\n";
	}

# Add form for more attachments
print "<table width=100% border=1>\n";
print "<tr $tb> <td colspan=3><b>$text{'reply_attach2'}</b></td> </tr>\n";

print "<tr $cb> <td><input type=file size=20 name=attach0></td>\n";
print "<td><input type=file size=20 name=attach1></td>\n";
print "<td><input type=file size=20 name=attach2></td> </tr>\n";

print "<tr $cb> <td><input type=file size=20 name=attach3></td>\n";
print "<td><input type=file size=20 name=attach4></td>\n";
print "<td><input type=file size=20 name=attach5></td> </tr>\n";

print "<tr $cb> <td><input name=file0 size=20> ",
	&file_chooser_button("file0"),"</td>\n";
print "<td><input name=file1 size=20> ",
        &file_chooser_button("file1"),"</td>\n";
print "<td><input name=file2 size=20> ",
	&file_chooser_button("file2"),"</td> </tr>\n";

print "</table><p>\n";
print "<input type=submit value=\"$text{'reply_send'}\"></form>\n";

print "<hr>\n";
&footer("list_mail.cgi?user=$in{'user'}", $text{'mail_return'});

   070701000595a1000081e40000000000000002000000013ac0389c0000064b000000200000000000000000000000000000001f00000003reloc/sendmail/save_access.cgi    #!/usr/local/bin/perl
# save_access.cgi
# Save, create or delete an access rule

require './sendmail-lib.pl';
require './access-lib.pl';
&ReadParse();
$access{'access'} || &error("You are not allowed to configure spam control");
$conf = &get_sendmailcf();
$afile = &access_file($conf);
&lock_file($afile);
($adbm, $adbmtype) = &access_dbm($conf);
@accs = &list_access($afile);
if (!$in{'new'}) { $a = $accs[$in{'num'}]; }

if ($in{'delete'}) {
	# delete some rule
	$loga = $a;
	&delete_access($a, $afile, $adbm, $adbmtype);
	}
else {
	# Saving or creating.. check inputs
	$whatfailed = "Failed to save spam control rule";
	$from = $in{'from'};
	$in{'from_type'} == 0 && $from !~ /^[^\@ ]+\@[A-z0-9\.\-]+$/ &&
		&error(&text('ssave_etype0', $from));
	$in{'from_type'} == 1 && $from !~ /^[0-9\.]+$/ &&
		&error(&text('ssave_etype1', $from));
	$in{'from_type'} == 2 && $from !~ /^[^\@ ]+$/ &&
		&error(&text('ssave_etype2', $from));
	$in{'from_type'} == 3 && $from !~ /^[A-z0-9\.\-]+$/ &&
		&error(&text('ssave_etype3', $from));
	$from .= '@' if ($in{'from_type'} == 2);

	if ($in{'action'}) { $action = $in{'action'}; }
	else {
		$in{'err'} =~ /^\d\d\d$/ ||
			&error(&text('ssave_ecode', $in{'err'}));
		$action = "$in{'err'} $in{'msg'}";
		}

	%newa = ( 'from', $from, 'action', $action );
	if ($in{'new'}) { &create_access(\%newa, $afile, $adbm, $adbmtype); }
	else { &modify_access($a, \%newa, $afile, $adbm, $adbmtype); }
	$loga = \%newa;
	}
&unlock_file($afile);
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
	    "access", $loga->{'from'}, $loga);
&redirect("list_access.cgi");

 070701000595a2000081e40000000000000002000000013ac0389c00000189000000200000000000000000000000000000001e00000003reloc/sendmail/save_afile.cgi #!/usr/local/bin/perl
# save_afile.cgi
# Save an addresses file

require './sendmail-lib.pl';
&ReadParse();
if (substr($in{'file'}, 0, length($access{'apath'})) ne $access{'apath'}) {
	&error(&text('afile_efile', $in{'file'}));
	}

$in{'text'} =~ s/\r//g;
$in{'text'} =~ s/\n*$/\n/;
open(FILE, ">$in{'file'}");
print FILE $in{'text'};
close(FILE);
&redirect("edit_alias.cgi?num=$in{'num'}");

   070701000595a3000081e40000000000000002000000013ac0389c00000ced000000200000000000000000000000000000001e00000003reloc/sendmail/save_alias.cgi #!/usr/local/bin/perl
# save_alias.cgi
# Save or delete a new or existing alias

require './sendmail-lib.pl';
require './aliases-lib.pl';
&ReadParse();
&error_setup($text{'asave_err'});
$access{'amode'} > 0 || &error($text{'asave_ecannot2'});
$conf = &get_sendmailcf();
$afile = &aliases_file($conf);
&lock_alias_files($afile);
@aliases = &list_aliases($afile);
foreach $ex (@aliases) { $exists{lc($ex->{'name'})}++; }
if (!$in{'new'}) {
	$a = $aliases[$in{'num'}];
	foreach $v (@{$a->{'values'}}) {
		$access{"aedit_".&alias_type($v)} ||
			&error($text{'asave_ecannot'});
		}
	$access{'amode'} == 1 || $a->{'name'} =~ /$access{'aliases'}/ ||
		&error($text{'asave_ecannot'});
	}
elsif ($access{'amax'}) {
	local @cliases = grep { local $rv = 1;
		  foreach $v (@{$_->{'values'}}) {
			$rv = 0 if (!$access{"aedit_".&alias_type($v)});
			}
		  $rv;
		} @aliases;
	if ($access{'amode'} == 2) {
		@cliases = grep { $_->{'name'} =~ /$access{'aliases'}/ }
				@aliases;
		}
	&error(&text('asave_emax', $access{'amax'}))
		if (@caliases >= $access{'amax'});
	}

if ($in{'delete'}) {
	# delete some alias
	$loga = $a;
	&delete_alias($a, $afile);
	}
else {
	# saving or creating .. check inputs
	$in{'name'} =~ /^[^:@ ]+$/ ||
		&error(&text('asave_eaddr', $in{'name'}));
	if ($in{'new'} || uc($a->{'name'}) ne uc($in{'name'})) {
		# is this name taken?
		for($i=0; $i<@aliases; $i++) {
			if (uc($in{'name'}) eq uc($aliases[$i]->{'name'})) {
				&error(&text('asave_ealready', $in{'name'}));
				}
			}
		}
	$access{'vmode'} == 1 || $in{'name'} =~ /$access{'aliases'}/ ||
		&error(&text('asave_ematch', $access{'aliases'}));
	for($i=0; defined($t = $in{"type_$i"}); $i++) {
		!$t || $access{"aedit_$t"} ||
			&error($text{'asave_etype'});
		$v = $in{"val_$i"};
		if ($t == 1 && $v !~ /^(\S+)$/) {
			&error(&text('asave_etype1', $v));
			}
		elsif ($t == 2 && !&check_aliasfile($v, 1)) {
			&error(&text('asave_etype2', $v));
			}
		elsif ($t == 3 && $v !~ /^\/(\S+)$/) {
			&error(&text('asave_etype3', $v));
			}
		elsif ($t == 4) {
			$v =~ /^(\S+)/ || &error($text{'asave_etype4none'});
			(-x $1) && &check_aliasfile($1, 0) ||
				&error(&text('asave_etype4', $1));
			}
		elsif ($t == 5 && !&check_aliasfile($v, 1)) {
			&error(&text('asave_etype5', $v));
			}
		if ($t == 1 || $t == 3) { push(@values, $v); }
		elsif ($t == 2) { push(@values, ":include:$v"); }
		elsif ($t == 4) { push(@values, "|$v"); }
		elsif ($t == 5) {
			push(@values, "|$module_config_directory/autoreply.pl ".
				      "$v $in{'name'}");
			&system_logged("cp autoreply.pl $module_config_directory");
			&system_logged("chmod 755 $module_config_directory/config");
			if (-d $config{'smrsh_dir'}) {
				&system_logged("ln -s $module_config_directory/autoreply.pl $config{'smrsh_dir'}/autoreply.pl");
				}
			}
		}

	$newa{'name'} = $in{'name'};
	$newa{'values'} = \@values;
	$newa{'enabled'} = $in{'enabled'};
	if ($in{'new'}) { &create_alias(\%newa, $afile); }
	else { &modify_alias($a, \%newa, $afile); }
	$loga = \%newa;
	}
&unlock_alias_files($afile);
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
	    "alias", $loga->{'name'}, $loga);
&redirect("list_aliases.cgi");

sub check_aliasfile
{
return 0 if (!-r $_[0] && !$_[1]);
return substr($_[0], 0, length($access{'apath'})) eq $access{'apath'};
}

   070701000595a4000081e40000000000000002000000013ac0389c00000440000000200000000000000000000000000000001c00000003reloc/sendmail/save_cgs.cgi   #!/usr/local/bin/perl
# save_cgs.cgi
# Save sendmail.cg list

require './sendmail-lib.pl';
&ReadParse();
$access{'cgs'} || &error($text{'cgs_ecannot'});
&error_setup($text{'cgs_err'});
&lock_file($config{'sendmail_cf'});
$conf = &get_sendmailcf();
@dlist = split(/\s+/, $in{'dlist'});
foreach $d (@dlist) {
	$d =~ /^[A-z0-9\-\.]+$/ ||
		&error(&text('cgs_ehost', $d));
	&check_ipaddress($d) &&
		&error(&text('cgs_eip', $d));
	}
@dlist = &unique(@dlist);

# get old cw directives
@old = grep { $_->{'value'} =~ /^G/ } &find_type("C", $conf);

if ($in{'cgfile'}) {
	# If there is a .cg file, write all domains to it and take any
	# out of sendmail.cf
	&lock_file($in{'cgfile'});
	open(CG, "> $in{'cgfile'}");
	foreach $d (@dlist) { print CG $d,"\n"; }
	close(CG);
	&unlock_file($in{'cgfile'});
	}
else {
	# Stick all domains in sendmail.cf
	foreach $d (@dlist) {
		push(@new, { 'type' => 'C',
			     'values' => [ "G$d" ] });
		}
	}
&save_directives($conf, \@old, \@new);
&flush_file_lines();
&unlock_file($config{'sendmail_cf'});
&restart_sendmail();
&webmin_log("cgs");
&redirect("");

070701000595a5000081e40000000000000002000000013ac0389c0000046c000000200000000000000000000000000000001c00000003reloc/sendmail/save_cws.cgi   #!/usr/local/bin/perl
# save_cws.cgi
# Save sendmail.cw list

require './sendmail-lib.pl';
&ReadParse();
$access{'cws'} || &error($text{'cws_ecannot'});
&error_setup($text{'cws_err'});
&lock_file($config{'sendmail_cf'});
$conf = &get_sendmailcf();
@dlist = split(/\s+/, $in{'dlist'});
foreach $d (@dlist) {
	$d =~ /^[A-z0-9\-\.]+$/ ||
		&error(&text('cws_ehost', $d));
	#&check_ipaddress($d) &&
	#	&error(&text('cws_eip', $d));
	}
@dlist = &unique(@dlist);

# get old cw directives
@old = grep { $_->{'value'} =~ /^w/ } &find_type("C", $conf);

if ($in{'cwfile'}) {
	# If there is a .cw file, write all domains to it and take any
	# out of sendmail.cf
	&lock_file($in{'cwfile'});
	open(CW, "> $in{'cwfile'}");
	foreach $d (@dlist) { print CW $d,"\n"; }
	close(CW);
	&unlock_file($in{'cwfile'});
	}
else {
	# Stick all domains in sendmail.cf
	foreach $d (@dlist) {
		push(@new, { 'type' => 'C',
			     'values' => [ "w$d" ] });
		}
	}
&save_directives($conf, \@old, \@new);
&flush_file_lines();
&unlock_file($config{'sendmail_cf'});
&restart_sendmail();
&webmin_log("cws");
&redirect("");
#&header("foo");
#print "<h1>bar</h1>\n";

070701000595a6000081e40000000000000002000000013ac0389c000004a1000000200000000000000000000000000000001f00000003reloc/sendmail/save_domain.cgi    #!/usr/local/bin/perl
# save_domain.cgi
# Save, create or delete an address mapping

require './sendmail-lib.pl';
require './domain-lib.pl';
&ReadParse();
$access{'domains'} || &error($text{'dsave_ecannot'});
$conf = &get_sendmailcf();
$dfile = &domains_file($conf);
&lock_file($dfile);
($ddbm, $ddbmtype) = &domains_dbm($conf);
@doms = &list_domains($dfile);
if (!$in{'new'}) { $d = $doms[$in{'num'}]; }
foreach $du (@doms) { $already{$du->{'from'}}++; }

if ($in{'delete'}) {
	# delete some mapping
	$logd = $d;
	&delete_domain($d, $dfile, $ddbm, $ddbmtype);
	}
else {
	# Saving or creating.. check inputs
	&error_setup($text{'dsave_err'});
	$in{'from'} =~ /^[A-z0-9\.\-]+$/ ||
		&error(&text('dsave_edomain', $in{'from'}));
	$in{'to'} =~ /^[A-z0-9\.\-]+$/ ||
		&error(&text('dsave_edomain', $in{'to'}));
	$newd{'from'} = $in{'from'};
	$newd{'to'} = $in{'to'};
	if ($in{'new'}) { &create_domain(\%newd, $dfile, $ddbm, $ddbmtype); }
	else { &modify_domain($d, \%newd, $dfile, $ddbm, $ddbmtype); }
	$logd = \%newd;
	}
&unlock_file($dfile);
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
	    "domain", $logd->{'from'}, $logd);
&redirect("list_domains.cgi");

   070701000595a7000081e40000000000000002000000013ac0389e000009c1000000200000000000000000000000000000001d00000003reloc/sendmail/save_file.cgi  #!/usr/local/bin/perl
# save_file.cgi
# Save a manually edited file

require './sendmail-lib.pl';
&error_setup($text{'file_err'});
&ReadParse();
$conf = &get_sendmailcf();
if ($in{'mode'} eq 'aliases') {
	require './aliases-lib.pl';
	$file = &aliases_file($conf)->[$in{'idx'}];
	$return = "list_aliases.cgi";
	$post = "newaliases";
	$access{'amode'} == 1 && $access{'aedit_1'} && $access{'aedit_2'} &&
	    $access{'aedit_3'} && $access{'aedit_4'} && $access{'aedit_5'} &&
	    $access{'amax'} == 0 && $access{'apath'} eq '/' ||
	    &error($text{'file_ealiases'});
	$log = "alias";
	}
elsif ($in{'mode'} eq 'virtusers') {
	require './virtusers-lib.pl';
	$file = &virtusers_file($conf);
	($vdbm, $vdbmtype) = &virtusers_dbm($conf);
	$return = "list_virtusers.cgi";
	$post = "$config{'makemap_path'} $vdbmtype $vdbm <$file";
	$access{'vmode'} == 1 && $access{'vedit_0'} && $access{'vedit_1'} &&
	    $access{'vedit_2'} && $access{'vmax'} == 0 ||
	    &error($text{'file_evirtusers'});
	$log = "virtuser";
	}
elsif ($in{'mode'} eq 'mailers') {
	require './mailers-lib.pl';
	$file = &mailers_file($conf);
	($mdbm, $mdbmtype) = &mailers_dbm($conf);
	$return = "list_mailers.cgi";
	$post = "$config{'makemap_path'} $mdbmtype $mdbm <$file";
	$access{'mailers'} || &error($text{'file_emailers'});
	$log = "mailer";
	}
elsif ($in{'mode'} eq 'generics') {
	require './generics-lib.pl';
	$file = &generics_file($conf);
	($gdbm, $gdbmtype) = &generics_dbm($conf);
	$return = "list_generics.cgi";
	$post = "$config{'makemap_path'} $gdbmtype $gdbm <$file";
	$access{'omode'} == 1 || &error($text{'file_egenerics'});
	$log = "generic";
	}
elsif ($in{'mode'} eq 'domains') {
	require './domain-lib.pl';
	$file = &domains_file($conf);
	($ddbm, $ddbmtype) = &domains_dbm($conf);
	$return = "list_domains.cgi";
	$post = "$config{'makemap_path'} $ddbmtype $ddbm <$file";
	$access{'domains'} || &error($text{'file_edomains'});
	$log = "domain";
	}
elsif ($in{'mode'} eq 'access') {
	require './access-lib.pl';
	$file = &access_file($conf);
	($adbm, $adbmtype) = &access_dbm($conf);
	$return = "list_access.cgi";
	$post = "$config{'makemap_path'} $adbmtype $adbm <$file";
	$access{'access'} || &error($text{'file_eaccess'});
	$log = "access";
	}
else { &error($text{'file_emode'}); }

$in{'text'} =~ s/\r//g;
&lock_file($file);
open(FILE, ">$file");
print FILE $in{'text'};
close(FILE);
&unlock_file($file);
&webmin_log("manual", $log, $file);

&system_logged("$post >/dev/null 2>&1") if ($post);
&redirect($return);

   070701000595a8000081e40000000000000002000000013ac0389c00000545000000200000000000000000000000000000002000000003reloc/sendmail/save_generic.cgi   #!/usr/local/bin/perl
# save_generic.cgi
# Save, create or delete an outgoing address mapping

require './sendmail-lib.pl';
require './generics-lib.pl';
&ReadParse();
$access{'omode'} || &error($text{'gsave_ecannot'});
$conf = &get_sendmailcf();
$gfile = &generics_file($conf);
&lock_file($gfile);
($gdbm, $gdbmtype) = &generics_dbm($conf);
@gens = &list_generics($gfile);
if (!$in{'new'}) {
	$g = $gens[$in{'num'}];
	$access{'omode'} == 1 || $g->{'from'} =~ /$access{'oaddrs'}/ ||
		&error($text{'gsave_ecannot2'});
	}

if ($in{'delete'}) {
	# delete some mapping
	$logg = $g;
	&delete_generic($g, $gfile, $gdbm, $gdbmtype);
	}
else {
	# Saving or creating.. check inputs
	&error_setup($text{'gsave_err'});
	$in{'from'} =~ /^\S+$/ ||
		&error(&text('gsave_efrom', $in{'from'}));
	$access{'omode'} == 1 || $in{'from'} =~ /$access{'oaddrs'}/ ||
		&error(&text('gsave_ematch', $access{'oaddrs'}));
	$in{'to'} =~ /^\S+\@\S+$/ ||
		&error(&text('gsave_eto', $in{'to'}));
	$newg{'from'} = $in{'from'};
	$newg{'to'} = $in{'to'};
	if ($in{'new'}) { &create_generic(\%newg, $gfile, $gdbm, $gdbmtype); }
	else { &modify_generic($g, \%newg, $gfile, $gdbm, $gdbmtype); }
	$logg = \%newg;
	}
&unlock_file($gfile);
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
	    "generic", $logg->{'from'}, $logg);
&redirect("list_generics.cgi");

   070701000595a9000081e40000000000000002000000013ac0389c000005a0000000200000000000000000000000000000001f00000003reloc/sendmail/save_mailer.cgi    #!/usr/local/bin/perl
# save_mailer.cgi
# Save, create or delete a mailertable entry

require './sendmail-lib.pl';
require './mailers-lib.pl';
&ReadParse();
$access{'mailers'} || &error($text{'msave_ecannot'});
$conf = &get_sendmailcf();
$mfile = &mailers_file($conf);
&lock_file($mfile);
($mdbm,$mdbmtype) = &mailers_dbm($conf);
@mailers = &list_mailers($mfile);
foreach $ml (@mailers) { $already{$ml->{'domain'}}++; }
if (!$in{'new'}) { $m = $mailers[$in{'num'}]; }

if ($in{'delete'}) {
	# delete some mailer entry
	$logm = $m;
	&delete_mailer($m, $mfile, $mdbm, $mdbmtype);
	}
else {
	# Saving or creating.. check inputs
	&error_setup($text{'msave_err'});
	$domain = $in{'from_type'} ? ".$in{'from_dom'}" : $in{'from_host'};
	$domain =~ /^[A-z0-9\-\.]+$/ ||
		&error(&text('msave_edomain', $domain));
	if ($already{$domain} && ($in{'new'} || $m->{'domain'} ne $domain)) {
		&error(&text('msave_edup', $domain));
		}
	$mailer = $in{'mailer'};
	$dest = $in{'dest'};

	$newm{'domain'} = $domain;
	$newm{'mailer'} = $mailer;
	$newm{'dest'} = $in{'nomx'} && $mailer =~ /smtp|relay/ ? "[$dest]"
							       : $dest;
	if ($in{'new'}) { &create_mailer(\%newm, $mfile, $mdbm, $mdbmtype); }
	else { &modify_mailer($m, \%newm, $mfile, $mdbm, $mdbmtype); }
	$logm = \%newm;
	}
&unlock_file($mfile);
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
	    "mailer", $logm->{'domain'}, $logm);
&redirect("list_mailers.cgi");

070701000595aa000081e40000000000000002000000013ac0389c0000057e000000200000000000000000000000000000001d00000003reloc/sendmail/save_masq.cgi  #!/usr/local/bin/perl
# save_masq.cgi
# Save domain masquerading

require './sendmail-lib.pl';
&ReadParse();
$access{'masq'} || &error($text{'masq_ecannot'});
&error_setup($text{'masq_err'});
&lock_file($config{'sendmail_cf'});
$conf = &get_sendmailcf();
$in{'masq'} =~ /^[A-z0-9\-\.]*$/ ||
	&error(&text('masq_edomain', $in{'masq'}));
@mlist = split(/\s+/, $in{'mlist'});
foreach $m (@mlist) {
	$m =~ /^[A-z0-9\-\.]+$/ ||
		&error(&text('masq_ehost', $m));
	&check_ipaddress($m) &&
		&error(&text('masq_eip', $m));
	}
@mlist = &unique(@mlist);

# Update the DM directive (if there is one)
foreach $d (&find_type("D", $conf)) {
	if ($d->{'value'} =~ /^M/) { push(@dmconf, $d); }
	}
&save_directives($conf, \@dmconf,
		 [ { 'type' => 'D', 'values' => [ "M$in{'masq'}" ] } ]);

# Get old CM directives
@old = grep { $_->{'value'} =~ /^M/ } &find_type("C", $conf);

if ($in{'cmfile'}) {
	# If there is a cm file, write all domains to it and take any
	# out of sendmail.cf
	&lock_file($in{'cmfile'});
	open(CM, "> $in{'cmfile'}");
	foreach $m (@mlist) { print CM $m,"\n"; }
	close(CM);
	&unlock_file($in{'cmfile'});
	}
else {
	# Put all domains in sendmail.cf
	foreach $m (@mlist) {
		push(@new, { 'type' => 'C',
			     'values' => [ "M$m" ] });
		}
	}
&save_directives($conf, \@old, \@new);
&flush_file_lines();
&unlock_file($config{'sendmail_cf'});
&restart_sendmail();
&webmin_log("masq");
&redirect("");

  070701000595ab000081e40000000000000002000000013ac0389c00000a11000000200000000000000000000000000000001d00000003reloc/sendmail/save_opts.cgi  #!/usr/local/bin/perl
# save_opts.cgi
# Save various sendmail options

require './sendmail-lib.pl';
&ReadParse();
$access{'opts'} || &error($text{'opts_ecannot'});
&error_setup($text{'opts_err'});
&lock_file($config{'sendmail_cf'});
$conf = &get_sendmailcf();

# Save directives
&save_doption("S", "DS", 1);
&save_doption("R", "DR", 1);
&save_doption("H", "DH", 1);

# Save other options
&save_option("QueueLA", '[\d\.]+', $text{'opts_queuela'});
&save_option("RefuseLA", '[\d\.]+', $text{'opts_refusela'});
&save_option("MaxDaemonChildren", '\d+', $text{'opts_maxch'});
&save_option("ConnectionRateThrottle", '\d+', $text{'opts_throttle'});
&save_option("MinQueueAge", '\d+\S', $text{'opts_minqueueage'});
&save_option("MaxQueueRunSize", '\d+', $text{'opts_runsize'});
&save_option("Timeout.queuereturn", '\d+[dmhwsy]', $text{'opts_queuereturn'});
&save_option("Timeout.queuewarn", '\d+[dmhwsy]', $text{'opts_queuewarn'});
&save_option("QueueDirectory", '\/\S+', $text{'opts_queue'});
&save_option("PostMasterCopy", '\S+', $text{'opts_postmaster'});
&save_option("ForwardPath", '\S+', $text{'opts_forward'});
&save_option("MinFreeBlocks", '\d+', $text{'opts_minfree'});
&save_option("MaxMessageSize", '\d+', $text{'opts_maxmessage'});
&save_option("LogLevel", '\d+', $text{'opts_loglevel'});
$in{'DontBlameSendmail'} =~ s/\0/ /g;
&save_option("DontBlameSendmail", '.*\S.*', $text{'opts_blame'});
&save_option("SendMimeErrors", '.*');
$in{'DeliveryMode_def'} = 1 if (!$in{'DeliveryMode'});
&save_option("DeliveryMode", '.*');
&flush_file_lines();
&unlock_file($config{'sendmail_cf'});
&restart_sendmail();
&webmin_log("opts", undef, undef, \%in);
&redirect("");

# save_doption(type2, input, blank)
sub save_doption
{
local ($oldstr, $old) = &find_type2("D", $_[0], $conf);
@oldlist = $oldstr ? ( $oldstr ) : ( );
if ($in{"$_[1]_def"}) {
	@newlist = $_[2] && $oldstr ?
			( { 'type' => 'D', 'values' => [ $_[0] ] } ) : ( );
	}
elsif ($in{$_[1]} !~ /^\S+$/) {
	&error(&text('opts_ehost', $in{$_[1]}));
	}
else {
	@newlist = ( { 'type' => 'D', 'values' => [ $_[0].$in{$_[1]} ] } );
	}
&save_directives($conf, \@oldlist, \@newlist);
}

# save_option(name, regexp, what)
sub save_option
{
local ($oldstr, $old) = &find_option($_[0], $conf);
local @oldlist = $oldstr ? ( $oldstr ) : ( );
local (@newlist, $re); $re = $_[1];
if ($in{"$_[0]_def"}) { @newlist = (); }
elsif ($in{$_[0]} !~ /^$re$/) {
	&error(&text('opts_einvalid', $in{$_[0]}, $_[2]));
	}
else { @newlist = ( { 'type' => 'O', 'values' => [ " $_[0]=$in{$_[0]}" ] } ); }
&save_directives($conf, \@oldlist, \@newlist);
}

   070701000595ac000081e40000000000000002000000013ac0389c0000042e000000200000000000000000000000000000001e00000003reloc/sendmail/save_relay.cgi #!/usr/local/bin/perl
# save_relay.cgi
# Save relay domains list

require './sendmail-lib.pl';
&ReadParse();
$access{'relay'} || &error($text{'relay_ecannot'});
&error_setup($text{'relay_err'});
&lock_file($config{'sendmail_cf'});
$conf = &get_sendmailcf();
@dlist = split(/\s+/, $in{'dlist'});
foreach $d (@dlist) {
	$d =~ /^[A-z0-9\-\.]+$/ ||
		&error(&text('relay_edomain', $d));
	}
@dlist = &unique(@dlist);

# get old CR directives
@old = grep { $_->{'value'} =~ /^R/ } &find_type("C", $conf);

if ($in{'relayfile'}) {
	# If there is a relay file, write all domains to it and take any
	# out of sendmail.cf
	&lock_file($in{'relayfile'});
	open(RELAY, "> $in{'relayfile'}");
	foreach $d (@dlist) { print RELAY $d,"\n"; }
	close(RELAY);
	&unlock_file($in{'relayfile'});
	}
else {
	# Stick all domains in sendmail.cf
	foreach $d (@dlist) {
		push(@new, { 'type' => 'C',
			     'values' => [ "R$d" ] });
		}
	}
&save_directives($conf, \@old, \@new);
&flush_file_lines();
&unlock_file($config{'sendmail_cf'});
&restart_sendmail();
&webmin_log("relay");
&redirect("");

  070701000595ad000081e40000000000000002000000013ac0389c0000016e000000200000000000000000000000000000001e00000003reloc/sendmail/save_rfile.cgi #!/usr/local/bin/perl
# save_rfile.cgi
# Save an autoreply file

require './sendmail-lib.pl';
&ReadParse();
if (substr($in{'file'}, 0, length($access{'apath'})) ne $access{'apath'}) {
	&error(&text('rfile_efile', $in{'file'}));
	}

$in{'text'} =~ s/\r//g;
open(FILE, ">$in{'file'}");
print FILE $in{'text'};
close(FILE);
&redirect("edit_alias.cgi?num=$in{'num'}");

  070701000595ae000081e40000000000000002000000013ac0389c0000045e000000200000000000000000000000000000001f00000003reloc/sendmail/save_trusts.cgi    #!/usr/local/bin/perl
# save_trusts.cgi
# Save trusted users list

require './sendmail-lib.pl';
&ReadParse();
$access{'trusts'} || &error($text{'trusts_ecannot'});
&error_setup($text{'trusts_err'});
&lock_file($config{'sendmail_cf'});
$conf = &get_sendmailcf();
@tlist = split(/\s+/, $in{'tlist'});
foreach $u (@tlist) {
	@uinfo = getpwnam($u);
	@uinfo || &error(&text('trusts_euser', $u));
	}
@tlist = &unique(@tlist);

# get old T directives
@old = &find_type("T", $conf);
foreach $f (&find_type("C", $conf)) {
	if ($f->{'value'} =~ /^t\s*(.*)$/) {
		push(@old, $f);
		}
	}

if ($in{'ctfile'}) {
	# If there is a .ct file, write all users to it and take any
	# out of sendmail.cf
	&lock_file($in{'ctfile'});
	open(CT, "> $in{'ctfile'}");
	foreach $u (@tlist) { print CT $u,"\n"; }
	close(CT);
	&unlock_file($in{'ctfile'});
	}
else {
	# Stick all users in sendmail.cf
	foreach $u (@tlist) {
		push(@new, { 'type' => 'T',
			     'values' => [ $u ] });
		}
	}
&save_directives($conf, \@old, \@new);
&flush_file_lines();
&unlock_file($config{'sendmail_cf'});
&restart_sendmail();
&webmin_log("trusts");
&redirect("");

  070701000595af000081e40000000000000002000000013ac0389c00000a64000000200000000000000000000000000000002100000003reloc/sendmail/save_virtuser.cgi  #!/usr/local/bin/perl
# save_virtuser.cgi
# Save, create or delete an address mapping

require './sendmail-lib.pl';
require './virtusers-lib.pl';
&ReadParse();
$access{'vmode'} > 0 || &error($text{'vsave_ecannot'});
$conf = &get_sendmailcf();
$vfile = &virtusers_file($conf);
&lock_file($vfile);
($vdbm, $vdbmtype) = &virtusers_dbm($conf);
@virts = &list_virtusers($vfile);
foreach $vu (@virts) { $already{$vu->{'from'}}++; }
if (!$in{'new'}) {
	$v = $virts[$in{'num'}];
	$access{'vmode'} == 1 || $v->{'from'} =~ /$access{'vaddrs'}/ ||
		&error($text{'vsave_ecannot2'});
	}
elsif ($access{'vmax'}) {
	local @cvirts =
		grep { $access{"vedit_".&virt_type($_->{'to'})} } @virts;
	if ($access{'vmode'} == 2) {
		@cvirts = grep { $_->{'from'} =~ /$access{'vaddrs'}/ } @cvirts;
		}
	&error(&text('vsave_emax', $access{'vmax'}))
		if (@cvirts >= $access{'vmax'});
	}

if ($in{'delete'}) {
	# delete some mapping
	$logv = $v;
	&delete_virtuser($v, $vfile, $vdbm, $vdbmtype);
	}
else {
	# Saving or creating.. check inputs
	&error_setup($text{'vsave_err'});
	if ($in{'from_type'} == 0) {
		$in{'from_addr'} =~ /^(\S+)\@(\S+)$/ ||
			&error(&text('vsave_efrom', $in{'from_addr'}));
		$from = $in{'from_addr'};
		if ($already{$from} && ($in{'new'} || $v->{'from'} ne $from)) {
			&error(&text('vsave_efromdup', $in{'from_addr'}));
			}
		}
	else {
		$in{'from_dom'} =~ /^([^\@ ]+)$/ ||
			&error(&text('vsave_edom', $in{'from_dom'}));
		$from = "\@$in{'from_dom'}";
		if ($already{$from} && ($in{'new'} || $v->{'from'} ne $from)) {
			&error(&text('vsave_edomdup', $in{'from_dom'}));
			}
		}
	$access{'vmode'} == 1 || $from =~ /$access{'vaddrs'}/ ||
		&error(&text('vsave_ematch', $access{'vaddrs'}));
	if ($in{'to_type'} == 2) {
		$access{"vedit_2"} ||
			&error($text{'vsave_ecannot3'});
		$in{'to_addr'} =~ /^([^\s,]+)$/ ||
			&error(&text('vsave_eaddr', $in{'to_addr'}));
		$to = $in{'to_addr'};
		}
	elsif ($in{'to_type'} == 1) {
		$access{"vedit_1"} ||
			&error($text{'vsave_ecannot4'});
		$in{'to_dom'} =~ /^([^\@ ]+)$/ ||
			&error(&text('vsave_edom', $in{'to_dom'}));
		$in{'from_type'} == 1 ||
			&error($text{'vsave_edomdom'});
		$to = "\%1\@$in{'to_dom'}";
		}
	else {
		$access{"vedit_0"} ||
			&error($text{'vsave_ecannot5'});
		$to = "error:$in{'to_code'} $in{'to_error'}";
		}

	$newv{'from'} = $from;
	$newv{'to'} = $to;
	if ($in{'new'}) { &create_virtuser(\%newv, $vfile, $vdbm, $vdbmtype); }
	else { &modify_virtuser($v, \%newv, $vfile, $vdbm, $vdbmtype); }
	$logv = \%newv;
	}
&unlock_file($vfile);
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
	    "virtuser", $logv->{'from'}, $logv);
&redirect("list_virtusers.cgi");

070701000595b0000081e40000000000000002000000013ac0389d00001064000000200000000000000000000000000000001d00000003reloc/sendmail/send_mail.cgi  #!/usr/local/bin/perl
# send_mail.cgi
# Send off an email message

require './sendmail-lib.pl';
require './boxes-lib.pl';

# Check inputs
&ReadParseMime();
&can_read_mail($in{'user'}) || &error($text{'send_ecannot'});
&error_setup($text{'send_err'});
$in{'to'} || &error($text{'send_eto'});
if ($access{'fmode'} == 0) {
	$in{'from'} || &error($text{'send_efrom'});
	}
elsif ($access{'fmode'} == 1) {
	foreach $f (split(/\s+/, $access{'from'})) {
		$found++ if ("$in{'user'}\@$f" eq $in{'from'} ||
			     "$in{'ouser'}\@$f" eq $in{'from'});
		}
	&error($text{'send_efrom'}) if (!$found);
	}
elsif ($access{'fmode'} == 2) {
	foreach $f (split(/\s+/, $access{'from'})) {
		$found++ if ($f eq $in{'from'});
		}
	&error($text{'send_efrom'}) if (!$found);
	}
elsif ($access{'fmode'} == 3) {
	$in{'from'} .= "\@$access{'from'}";
	}

# Construct the email
$mail->{'headers'} = [ [ 'From', $in{'from'} ],
		       [ 'Subject', $in{'subject'} ],
		       [ 'To', $in{'to'} ],
		       [ 'Cc', $in{'cc'} ],
		       [ 'Bcc', $in{'bcc'} ],
		       [ 'X-Originating-IP', $ENV{'REMOTE_ADDR'} ],
		       [ 'X-Mailer', "Webmin ".&get_webmin_version() ] ];
push(@{$mail->{'headers'}}, [ 'X-Priority', $in{'pri'} ]) if ($in{'pri'});
$in{'body'} =~ s/\r//g;
if ($in{'body'} =~ /\S/) {
	@attach = ( { 'headers' => [ [ 'Content-Type', 'text/plain' ],
				     [ 'Content-Transfer-Encoding', '7bit' ] ],
		      'data' => $in{'body'} } );
	}
foreach $i (0 .. 5) {
	# Add uploaded attachment
	next if (!$in{"attach$i"});
	local $type = $in{"attach${i}_content_type"}."; name=\"".
		      $in{"attach${i}_filename"}."\"";
	local $disp = "inline; filename=\"".
		      $in{"attach${i}_filename"}."\"";
	push(@attach, { 'data' => $in{"attach${i}"},
			'headers' => [ [ 'Content-type', $type ],
				       [ 'Content-Disposition', $disp ],
				       [ 'Content-Transfer-Encoding',
					 'base64' ] ] });
	$atotal += length($in{"attach${i}"});
	}
foreach $i (0 .. 2) {
	# Add server-side attachment
	next if (!$in{"file$i"});
	-r $in{"file$i"} || &error(&text('send_efile', $in{"file$i"}));
	if ($in{'user'} ne 'root') {
		# Is this mailbox user allowed to read the attachment?
		pipe(CHr, CHw);
		if (!fork()) {
			close(CHr);
			@u = getpwnam($in{'user'});
			$( = $u[3]; $) = "$u[3] $u[3]";
			$< = $> = $u[2];
			if (!open(TEST, $in{"file$i"})) {
				print CHw "$!\n";
				}
			exit;
			}
		close(CHw);
		chop($resp = <CHr>);
		close(CHr);
		$resp && &error(&text('send_eperms',
				      $in{'user'}, $in{"file$i"}));
		%gaccess = &get_module_acl(undef, "");
		substr($in{"file$i"}, 0, length($gaccess{'root'})) eq
			$gaccess{'root'} || &error(&text('send_eperms2',
						   	 $in{"file$i"}));
		}
	local $data;
	open(DATA, $in{"file$i"}) || &error(&text('send_efile', $in{"file$i"}));
	while(<DATA>) {
		$data .= $_;
		}
	close(DATA);
	$in{"file$i"} =~ s/^.*\///;
	local $type = &guess_type($in{"file$i"})."; name=\"".$in{"file$i"}."\"";
	local $disp = "inline; filename=\"".$in{"file$i"}."\"";
	push(@attach, { 'data' => $data,
			'headers' => [ [ 'Content-type', $type ],
				       [ 'Content-Disposition', $disp ],
				       [ 'Content-Transfer-Encoding',
					 'base64' ] ] });
	$atotal += length($data);
	}
@fwd = split(/\0/, $in{'forward'});
if (@fwd) {
	# Add forwarded attachments
	@mail = &list_mails($in{'user'}, $in{'idx'}, $in{'idx'});
	$fwdmail = $mail[$in{'idx'}];
	&parse_mail($fwdmail);
	foreach $f (@fwd) {
		push(@attach, $fwdmail->{'attach'}->[$f]);
		$atotal += length($fwdmail->{'attach'}->[$f]->{'data'});
		}
	}
$mail->{'attach'} = \@attach;
if ($access{'attach'} >= 0 && $atotal > $access{'attach'}*1024) {
	&error(&text('send_eattach', $access{'attach'}));
	}

# Send it off
&send_mail($mail);
if ($access{'sent'}) {
	# Save a copy in the sent mailbox
	local $sfile = &user_mail_file($access{'sent'});
	&send_mail($mail, $sfile);
	&system_logged("chown $access{'sent'} $sfile 2>/dev/null");
	}
&webmin_log("send", undef, undef, { 'from' => $in{'from'}, 'to' => $in{'to'} });
&header($text{'send_title'}, "");
print "<hr>\n";

print "<p>",&text('send_ok', "<tt>".&html_escape($in{'to'})."</tt>"),"<p>\n";
print "<hr>\n";
&footer("list_mail.cgi?user=$in{'user'}", $text{'mail_return'});

070701000595b1000081a40000000000000002000000013ac0389b00001450000000200000000000000000000000000000001f00000003reloc/sendmail/sendmail-lib.pl    # sendmail-lib.pl
# Functions for managing sendmail aliases, domains and mappings.
# Only sendmail versions 8.8 and above are supported

do '../web-lib.pl';
&init_config();
%access = &get_module_acl();

# get_sendmailcf()
# Parses sendmail.cf and return a reference to an array of options.
# Each line is a single character directive, followed by a list of values?
sub get_sendmailcf
{
if (!@sendmailcf_cache) {
	local($lnum, $i);
	$lnum = 0; $i = 0;
	open(CF, $config{'sendmail_cf'});
	while(<CF>) {
		s/^#.*$//g;	# remove comments
		s/\r|\n//g;	# remove newlines
		if (/^(\S)(\s*(.*))$/) {
			local(%opt);
			$opt{'type'} = $1;
			$opt{'value'} = $3;
			$opt{'values'} = [ split(/\s+/, $2) ];
			$opt{'line'} = $lnum;
			$opt{'eline'} = $opt{'line'};
			$opt{'pos'} = $i++;
			push(@sendmailcf_cache, \%opt);
			}
		$lnum++;
		}
	close(CF);
	}
return \@sendmailcf_cache;
}

# check_sendmail_version(&config)
# Is the sendmail config file a usable version?
sub check_sendmail_version
{
local $ver = &find_type("V", $_[0]);
return $ver && $ver->{'value'} =~ /^(\d+)/ && $1 >= 7;
}

# save_directives(&config, &oldvalues, &newvalues)
# Given 2 arrays of directive structures, this function will replace the
# old ones with the new. If the old list is empty, new directives are added
# to the end of the config file. If the new list is empty, all old directives
# are removed. If both exist, new ones replace old..
sub save_directives
{
local(@old) = @{$_[1]};
local(@new) = @{$_[2]};
$lref = &read_file_lines($config{'sendmail_cf'});
for($i=0; $i<@old || $i<@new; $i++) {
	if ($i >= @old) {
		# A new directive has been added.. put it at the end of the file
		$new[$i]->{'line'} = scalar(@$lref);
		$new[$i]->{'eline'} = $new[$i]->{'line'}+1;
		push(@$lref, &directive_line($new[$i]));
		push(@{$_[0]}, $new[$i]);
		}
	elsif ($i >= @new) {
		# A directive was deleted
		$ol = $old[$i]->{'eline'} - $old[$i]->{'line'} + 1;
		splice(@$lref, $old[$i]->{'line'}, $ol);
		&renumber($_[0], $old[$i]->{'eline'}, -$ol);
		splice(@{$_[0]}, &indexof($old[$i], @{$_[0]}), 1);
		}
	else {
		# A directive was changed
		$ol = $old[$i]->{'eline'} - $old[$i]->{'line'} + 1;
		splice(@$lref, $old[$i]->{'line'}, $ol,
		       &directive_line($new[$i]));
		$new[$i]->{'line'} = $new[$i]->{'eline'} = $old[$i]->{'line'};
		&renumber($_[0], $old[$i]->{'eline'}, 1-$ol);
		$_[0]->[&indexof($old[$i], @{$_[0]})] = $new[$i];
		}
	}
}

# directive_line(&details)
sub directive_line
{
return $_[0]->{'type'}.join(' ', @{$_[0]->{'values'}});
}

# renumber(config, line, offset)
sub renumber
{
foreach $d (@{$_[0]}) {
	if ($d->{'line'} > $_[1]) { $d->{'line'} += $_[2]; }
	if ($d->{'eline'} > $_[1]) { $d->{'eline'} += $_[2]; }
	}
}

# find_type(name, &config)
# Returns an array of config directives of some type
sub find_type
{
local($c, @rv);
foreach $c (@{$_[1]}) {
	if ($c->{'type'} eq $_[0]) {
		push(@rv, $c);
		}
	}
return @rv ? wantarray ? @rv : $rv[0]
           : wantarray ? () : undef;
}

# find_option(name, &config)
# Returns the structure and value of some option directive
sub find_option
{
local(@opts, $o);
@opts = &find_type("O", $_[1]);
foreach $o (@opts) {
	if ($o->{'value'} =~ /^\s*([^=]+)=(.*)$/ && $1 eq $_[0]) {
		# found it.. return
		return wantarray ? ($o, $2) : $2;
		}
	}
return undef;
}

# find_type2(type1, type2, &config)
# Returns the structure and value of some directive
sub find_type2
{
local @types = &find_type($_[0], $_[2]);
local $t;
foreach $t (@types) {
	if ($t->{'value'} =~ /^(\S)(.*)$/ && $1 eq $_[1]) {
		return ($t, $2);
		}
	}
return undef;
}

# restart_sendmail()
# Send a SIGHUP to sendmail
sub restart_sendmail
{
local($pid);
if (open(PID, $config{'sendmail_pid'})) {
	chop($pid = <PID>);
	close(PID);
	if ($pid) { &kill_logged('HUP', $pid); }
	}
else { &kill_logged('HUP', &find_byname("sendmail")); }
}

# run_makemap(textfile, dbmfile, type)
sub run_makemap
{
local($out);
$out = &backquote_logged("$config{'makemap_path'} $_[2] $_[1] <\"$_[0]\" 2>&1");
if ($?) { &error("makemap failed : <pre>$out</pre>"); }
}

# find_textfile(config, dbm)
sub find_textfile
{
local($conf, $dbm) = @_;
if ($conf) { return $conf; }
elsif (!$dbm) { return undef; }
elsif ($dbm =~ /^(.*)\.(db|dbm|pag|dir|hash)$/i && -r $1) {
	# Database is like /etc/virtusertable.db, text is /etc/virtusertable
	return $1;
	}
elsif ($dbm =~ /^(.*)\.(db|dbm|pag|dir|hash)$/i && -r "$1.txt") {
	# Database is like /etc/virtusertable.db, text is /etc/virtusertable.txt
	return "$1.txt";
	}
elsif (-r "$dbm.txt") {
	# Database is like /etc/virtusertable, text is /etc/virtusertable.txt
	return "$dbm.txt";
	}
else {
	# Text and database have same name
	return $dbm;
	}
}

# mailq_dir($conf)
sub mailq_dir
{
local ($opt, $mqueue) = &find_option("QueueDirectory", $_[0]);
if (!$mqueue) { return ( "/var/spool/mqueue" ); }
elsif ($mqueue =~ /\*|\?/) {
	return split(/\s+/, `echo $mqueue`);
	}
else {
	return ( $mqueue );
	}
}

sub sort_by_domain
{
local ($a1, $a2, $b1, $b2);
if ($a->{'from'} =~ /^(.*)\@(.*)$/ && (($a1, $a2) = ($1, $2)) &&
    $b->{'from'} =~ /^(.*)\@(.*)$/ && (($b1, $b2) = ($1, $2))) {
	return $a2 cmp $b2 ? $a2 cmp $b2 : $a1 cmp $b1;
	}
else {
	return $a->{'from'} cmp $b->{'from'};
	}
}

070701000595b2000081e40000000000000002000000013ac0389c00000153000000200000000000000000000000000000001900000003reloc/sendmail/start.cgi  #!/usr/local/bin/perl
# start.cgi
# Start sendmail

require './sendmail-lib.pl';
$access{'stop'} || &error("You are not allowed to start sendmail");
$whatfailed = "Failed to start sendmail";
$out = &backquote_logged("$config{'sendmail_command'} </dev/null 2>&1");
if ($?) { &error("<tt>$out</tt>"); }
&webmin_log("start");
&redirect("");

 070701000595b3000081e40000000000000002000000013ac0389b000001f1000000200000000000000000000000000000001800000003reloc/sendmail/stop.cgi   #!/usr/local/bin/perl
# stop.cgi
# Stop the running sendmail process

require './sendmail-lib.pl';
&ReadParse();
$access{'stop'} || &error("You are not allowed to stop sendmail");
$whatfailed = "Failed to stop sendmail";
if ($config{'sendmail_stop_command'}) {
	$out = &backquote_logged("$config{'sendmail_stop_command'} </dev/null 2>&1");
	if ($?) { &error("<tt>$out</tt>"); }
	}
else {
	&kill_logged('KILL', $in{'pid'});
	unlink($config{'sendmail_pid'});
	}
&webmin_log("stop");
&redirect("");

   070701000595b4000081a40000000000000002000000013ac0389c00000462000000200000000000000000000000000000002300000003reloc/sendmail/useradmin_update.pl    
do './sendmail-lib.pl';
do './aliases-lib.pl';

# useradmin_create_user(&details)
sub useradmin_create_user
{
}

# useradmin_delete_user(&details)
# Delete this user's mail file and remove from any aliases
sub useradmin_delete_user
{
local $dir = $config{'mail_dir'};
if ($dir && -d $dir) {
	unlink("$dir/$_[0]->{'user'}");
	unlink("$dir/.$_[0]->{'user'}.pop");
	}
local $conf = &get_sendmailcf();
local $afile = &aliases_file($conf);
local @aliases = &list_aliases($afile);
foreach $a (@aliases) {
	return if ($a->{'name'} eq $_[0]->{'user'});
	}
foreach $a (@aliases) {
	local @nv = grep { $_ ne $_[0]->{'user'} } @{$a->{'values'}};
	if (scalar(@nv) != scalar(@{$a->{'values'}})) {
		$a->{'values'} = \@nv;
		&modify_alias($a, $a);
		}
	}
}

# useradmin_modify_user(&details)
sub useradmin_modify_user
{
local $dir = $config{'mail_dir'};
if ($dir && -d $dir) {
	local $mfile = "$dir/$_[0]->{'olduser'}";
	local @st = stat($mfile);
	if ($st[4] != $_[0]->{'uid'}) {
		chown($_[0]->{'uid'}, $st[5], $mfile);
		}
	if ($_[0]->{'olduser'} ne $_[0]->{'user'}) {
		&rename_logged($mfile, "$dir/$_[0]->{'user'}");
		}
	}
}

1;

  070701000595b5000081e40000000000000002000000013ac0389d00000ed1000000200000000000000000000000000000001d00000003reloc/sendmail/view_mail.cgi  #!/usr/local/bin/perl
# view_mail.cgi
# View a single email message 

require './sendmail-lib.pl';
require './boxes-lib.pl';

$force_charset = '';
&ReadParse();
&can_read_mail($in{'user'}) || &error($text{'view_ecannot'});

$sentbox = $in{'user'} eq $access{'sent'};
&header($text{'view_title'}, "");
@mail = &list_mails($in{'user'}, $in{'idx'}, $in{'idx'});
$mail = $mail[$in{'idx'}];
&parse_mail($mail);

print "<center>\n";
if ($in{'idx'}) {
	print "<a href='view_mail.cgi?user=$in{'user'}&idx=",$in{'idx'}-1,
	      "'><img src=/images/left.gif border=0 align=middle></a>\n";
	}
print "<font size=+1>", &text($sentbox ? 'view_sent':'view_desc', $in{'idx'}+1,
	    "<tt>".&user_mail_file($in{'user'})."</tt>"),"</font>\n";
if ($in{'idx'} < @mail-1) {
	print "<a href='view_mail.cgi?user=$in{'user'}&idx=",$in{'idx'}+1,
	      "'><img src=/images/right.gif border=0 align=middle></a>\n";
	}
print "</center>\n";
print "<hr>\n";

print "<form action=reply_mail.cgi>\n";
print "<input type=hidden name=user value='$in{'user'}'>\n";
print "<input type=hidden name=idx value='$in{'idx'}'>\n";

print "<table width=100% border=1>\n";
print "<tr> <td $tb><b>$text{'view_headers'}</b></td> </tr>\n";
print "<tr> <td $cb><table width=100%>\n";
print "<tr> <td><b>$text{'mail_from'}</b></td> ",
      "<td>",&html_escape(&decode_mimewords($mail->{'header'}->{'from'})),
      "</td> </tr>\n";
print "<tr> <td><b>$text{'mail_to'}</b></td> ",
      "<td>",&html_escape(&decode_mimewords($mail->{'header'}->{'to'})),
      "</td> </tr>\n";
print "<tr> <td><b>$text{'mail_cc'}</b></td> ",
      "<td>",&html_escape(&decode_mimewords($mail->{'header'}->{'cc'})),
      "</td> </tr>\n" if ($mail->{'header'}->{'cc'});
print "<tr> <td><b>$text{'mail_date'}</b></td> ",
      "<td>",&html_escape($mail->{'header'}->{'date'}),"</td> </tr>\n";
print "<tr> <td><b>$text{'mail_subject'}</b></td> ",
      "<td>",&html_escape(&decode_mimewords($mail->{'header'}->{'subject'})),
      "</td> </tr>\n";
print "</table></td></tr></table><p>\n";

# Find body attachment
@attach = @{$mail->{'attach'}};
foreach $a (@attach) {
	if ($a->{'type'} eq 'text/plain' || $a->{'type'} eq 'text') {
		$body = $a;
		last;
		}
	}
if ($body) {
	print "<table width=100% border=1><tr><td $cb><pre>\n";
	foreach $l (&wrap_lines($body->{'data'}, $config{'wrap_width'})) {
		print &link_urls(&html_escape($l)),"\n";
		}
	print "</pre></td></tr></table><p>\n";
	}

# Display other attachments
@attach = grep { $_ ne $body } @attach;
if (@attach) {
	print "<table width=100% border=1>\n";
	print "<tr> <td $tb><b>$text{'view_attach'}</b></td> </tr>\n";
	print "<tr> <td $cb>\n";
	foreach $a (@attach) {
		local $fn;
		$size = (int(length($a->{'data'})/1000)+1)." Kb";
		if ($a->{'filename'}) {
			push(@titles, "$a->{'filename'}<br>$size");
			$fn = $a->{'filename'};
			}
		else {
			push(@titles, "$a->{'type'}<br>$size");
			$a->{'type'} =~ /\/(\S+)$/;
			$fn = "file.$1";
			}
		$fn =~ s/ /_/g;
		push(@links, "detach.cgi/$fn?user=$in{'user'}&idx=$in{'idx'}&attach=$a->{'idx'}");
		push(@icons, "images/boxes.gif");
		}
	&icons_table(\@links, \@titles, \@icons, 8);
	print "</td></tr></table><p>\n";
	}

# Display buttons
if ($sentbox) {
	print "<input type=submit value=\"$text{'view_enew'}\" name=enew>\n";
	}
else {
	print "<input type=submit value=\"$text{'view_reply'}\" name=reply>\n";
	print "<input type=submit value=\"$text{'view_reply2'}\" name=rall>\n";
	}
print "<input type=submit value=\"$text{'view_forward'}\" name=forward>\n";
print "&nbsp;&nbsp;&nbsp;\n";
print "<input type=submit value=\"$text{'view_delete'}\" name=delete>\n";
print "</form>\n";

print "<hr>\n";
$s = int((@mail - $in{'idx'}) / $config{'perpage'}) * $config{'perpage'};
&footer("list_mail.cgi?user=$in{'user'}&start=$s", $text{'mail_return'});

   070701000595b6000081e40000000000000002000000013ac0389d000009f7000000200000000000000000000000000000001e00000003reloc/sendmail/view_mailq.cgi #!/usr/local/bin/perl
# view_mailq.cgi
# Display some message from the mail queue

require './sendmail-lib.pl';
require './boxes-lib.pl';
&ReadParse();
$access{'mailq'} || &error($text{'mailq_ecannot'});
$in{'file'} =~ /\.\./ && &error($text{'mailq_ecannot'});
$qfile = $in{'file'};
($dfile = $qfile) =~ s/\/qf/\/df/;

$mail = &mail_from_queue($qfile, $dfile);
&parse_mail($mail);

&header($text{'view_title'}, "");
($name = $in{'file'}) =~ s/^.*\///;
print "<center><font size=+1>",&text('view_qdesc', "<tt>$name</tt>"),
      "</font></center>\n";
print "<hr>\n";

print "<form action=del_mailq.cgi>\n";
print "<input type=hidden name=file value='$in{'file'}'>\n";
print "<table width=100% border=1>\n";
print "<tr> <td $tb><b>$text{'view_headers'}</b></td> </tr>\n";
print "<tr> <td $cb><table width=100%>\n";
print "<tr> <td><b>$text{'mail_from'}</b></td> ",
      "<td>",&html_escape($mail->{'header'}->{'from'}),"</td> </tr>\n";
print "<tr> <td><b>$text{'mail_to'}</b></td> ",
      "<td>",&html_escape($mail->{'header'}->{'to'}),"</td> </tr>\n";
print "<tr> <td><b>$text{'mail_cc'}</b></td> ",
      "<td>",&html_escape($mail->{'header'}->{'cc'}),"</td> </tr>\n"
	if ($mail->{'header'}->{'cc'});
print "<tr> <td><b>$text{'mail_date'}</b></td> ",
      "<td>",&html_escape($mail->{'header'}->{'date'}),"</td> </tr>\n";
print "<tr> <td><b>$text{'mail_subject'}</b></td> ",
      "<td>",&html_escape($mail->{'header'}->{'subject'}),"</td> </tr>\n";
print "</table></td></tr></table><p>\n";

# Find body attachment
@attach = @{$mail->{'attach'}};
foreach $a (@attach) {
	if ($a->{'type'} eq 'text/plain') {
		$body = $a;
		last;
		}
	}
if ($body) {
	print "<table width=100% border=1><tr><td $cb><pre>\n";
	foreach $l (&wrap_lines($body->{'data'}, $config{'wrap_width'})) {
		print &link_urls(&html_escape($l)),"\n";
		}
	print "</pre></td></tr></table><p>\n";
	}

# Display other attachments
@attach = grep { $_ ne $body } @attach;
if (@attach) {
	print "<table width=100% border=1>\n";
	print "<tr> <td $tb><b>$text{'view_attach'}</b></td> </tr>\n";
	print "<tr> <td $cb>\n";
	foreach $a (@attach) {
		push(@titles, $a->{'filename'} ? $a->{'filename'}
					       : $a->{'type'});
		push(@links, "qdetach.cgi?file=$qfile&attach=$a->{'idx'}");
		push(@icons, "images/boxes.gif");
		}
	&icons_table(\@links, \@titles, \@icons, 8);
	print "</td></tr></table><p>\n";
	}

# Display buttons
print "<input type=submit value=\"$text{'view_delete'}\" name=delete>\n";
print "</form>\n";

print "<hr>\n";
&footer("list_mailq.cgi", $text{'mailq_return'});

 070701000595b7000081a40000000000000002000000013ac0389c00001370000000200000000000000000000000000000002000000003reloc/sendmail/virtusers-lib.pl   # virtusers-lib.pl
# Functions for the virtusers table

# virtusers_dbm(&config)
# Returns the filename and type of the virtusers database, or undef if none
sub virtusers_dbm
{
foreach $f (&find_type("K", $_[0])) {
        if ($f->{'value'} =~ /^virtuser\s+(\S+)[^\/]+(\S+)$/) {
		return ($2, $1);
                }
	}
return undef;
}

# virtusers_file(&config)
# Returns the filename of the text virtusers file, or undef if none
sub virtusers_file
{
return &find_textfile($config{'virtusers_file'}, &virtusers_dbm($_[0]));
}

# list_virtusers(textfile)
sub list_virtusers
{
local($lnum, @rv);
$lnum = 0;
open(VIRT, $_[0]);
while(<VIRT>) {
	s/\r|\n//g;     # remove newlines
	s/#.*$//g;	# remove comments
	if (/^(\S+)\s+(.*)/) {
		local(%virt);
		$virt{'from'} = $1;
		$virt{'to'} = $2;
		$virt{'line'} = $lnum;
		$virt{'num'} = scalar(@rv);
		push(@rv, \%virt);
		}
	$lnum++;
	}
close(VIRT);
return @rv;
}

# create_virtuser(&details, textfile, dbmfile, dbmtype)
# Create a new virtuser mapping
sub create_virtuser
{
local(%virt);
open(VIRT, ">> $_[1]");
print VIRT "$_[0]->{'from'}\t$_[0]->{'to'}\n";
close(VIRT);
if ($_[3] eq "dbm") {
	dbmopen(%virt, $_[2], 0644);
	$virt{$_[0]->{'from'}} = $_[0]->{'to'};
	dbmclose(%virt);
	}
else { &run_makemap($_[1], $_[2], $_[3]); }
}

# delete_virtuser(&details, textfile, dbmfile, dbmtype)
# Delete an existing virtuser mapping
sub delete_virtuser
{
local(@virt, %virt);
open(VIRT, $_[1]);
@virt = <VIRT>;
close(VIRT);
splice(@virt, $_[0]->{'line'}, 1);
open(VIRT, "> $_[1]");
print VIRT @virt;
close(VIRT);
if ($_[3] eq "dbm") {
	dbmopen(%virt, $_[2], 0644);
	delete($virt{$_[0]->{'from'}});
	dbmclose(%virt);
	}
else { &run_makemap($_[1], $_[2], $_[3]); }
}

# modify_virtuser(&old, &details, textfile, dbmfile, dbmtype)
# Change an existing virtuser
sub modify_virtuser
{
local(@virt, %virt);
open(VIRT, $_[2]);
@virt = <VIRT>;
close(VIRT);
splice(@virt, $_[0]->{'line'}, 1, "$_[1]->{'from'}\t$_[1]->{'to'}\n");
open(VIRT, "> $_[2]");
print VIRT @virt;
close(VIRT);
if ($_[4] eq "dbm") {
	dbmopen(%virt, $_[3], 0644);
	delete($virt{$_[0]->{'from'}});
	$virt{$_[1]->{'from'}} = $_[1]->{'to'};
	dbmclose(%virt);
	}
else { &run_makemap($_[2], $_[3], $_[4]); }
}

# virtuser_form([&details])
sub virtuser_form
{
local($v, $mode, $addr);
$v = $_[0];
print "<form action=save_virtuser.cgi>\n";
if ($_[0]) { print "<input type=hidden name=num value=$v->{'num'}>\n"; }
else { print "<input type=hidden name=new value=1>\n"; }
print "<table border>\n";
print "<tr $tb> <td><b>",$v ? $text{'vform_edit'} : $text{'vform_create'},
      "</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

$addr = !$_[0] || $v->{'from'} =~ /^(\S+)\@(\S+)$/;
print "<tr> <td><b>$text{'vform_for'}</b></td>\n";
printf "<td><input type=radio name=from_type value=0 %s> %s</td>\n",
	$addr ? "checked" : "", $text{'vform_address'};
printf "<td><input name=from_addr size=20 value=\"%s\"></td> </tr>\n",
	$addr ? $v->{'from'} : "";
print "<tr> <td></td>\n";
printf "<td><input type=radio name=from_type value=1 %s> %s</td>\n",
	$addr ? "" : "checked", $text{'vform_domain'};
printf "<td><input name=from_dom size=15 value=\"%s\"></td> </tr>\n",
	$addr ? "" : substr($v->{'from'}, 1);

$mode = $v->{'to'} =~ /^error:(\S+)\s*(.*)$/ ? 0 :
	$v->{'to'} =~ /^\%1\@(\S+)$/ ? 1 :
	$v->{'to'} =~ /^(.*)$/ ? 2 : 2;
print "<tr> <td><b>$text{'vform_to'}</b></td>\n";
printf "<td><input type=radio name=to_type value=2 %s> %s</td>\n",
	$mode == 2 ? "checked" : "", $text{'vform_address'};
printf "<td><input name=to_addr size=20 value=\"%s\"></td> </tr>\n",
	$mode == 2 ? $1 : "";
print "<tr> <td></td>\n";
printf "<td><input type=radio name=to_type value=1 %s> %s</td>\n",
	$mode == 1 ? "checked" : "", $text{'vform_domain'};
printf "<td><input name=to_dom size=15 value=\"%s\"></td> </tr>\n",
	$mode == 1 ? $1 : "";
print "<tr> <td></td>\n";
printf "<td><input type=radio name=to_type value=0 %s> %s</td>\n",
	$mode == 0 ? "checked" : "", $text{'vform_error'};
print "<td><select name=to_code>\n";
foreach $ecode ("$text{'vform_err_nouser'}", "$text{'vform_err_nohost'}",
	"$text{'vform_err_unav'}", "$text{'vform_err_temp'}",
	"$text{'vform_err_proto'}") {
	printf "<option %s>$ecode\n", $1 eq $ecode ? "selected" : "";
	}
print "</select> $text{'vform_msg'}\n";
printf "<input name=to_error size=15 value=\"%s\"></td> </tr>\n",
	$mode == 0 ? $2 : "";

print "<tr> <td colspan=3 align=right>\n";
if ($_[0]) {
        print "<input type=submit value=\"$text{'save'}\">\n";
        print "<input type=submit name=delete value=\"$text{'delete'}\">\n";
        }
else { print "<input type=submit value=\"$text{'create'}\">\n"; }
print "</td> </tr>\n";
print "</table></td></tr></table></form>\n";
}

# virt_type(string)
# Return the type and destination of some virtuser target
sub virt_type
{
local @rv;
if ($_[0] =~ /^error:(.*)$/) {
	@rv = (0, $1);
	}
elsif ($_[0] =~ /^\%1\@(\S+)$/) {
	@rv = (1, $1);
	}
else {
	@rv = (2, $_[0]);
	}
return wantarray ? @rv : $rv[0];
}

1;

07070100060725000041ed0000000000000001000000043ac03c7400000000000000200000000000000000000000000000000e00000003reloc/servers 07070100060726000081a40000000000000002000000013ac038a600000761000000200000000000000000000000000000001e00000003reloc/servers/acl_security.pl #!/usr/bin/perl
#

require './servers-lib.pl';

# acl_security_form(&options)
# Output HTML for editing security options for the servers module
sub acl_security_form
{
print "<tr> <td valign=top><b>$text{'acl_servers'}</b></td>\n";
print "<td colspan=3>\n";
printf "<input type=radio name=servers_def value=1 %s> %s\n",
        $_[0]->{'servers'} eq '*' ? 'checked' : '', $text{'acl_sall'};
printf "<input type=radio name=servers_def value=0 %s> %s<br>\n",
        $_[0]->{'servers'} eq '*' ? '' : 'checked', $text{'acl_ssel'};
print "<select name=servers multiple size=4 width=15>\n";
local @servers = sort { $a->{'host'} cmp $b->{'host'} } &list_servers();
local ($z, %zcan);
map { $zcan{$_}++ } split(/\s+/, $_[0]->{'servers'});
foreach $z (sort { $a->{'value'} cmp $b->{'value'} } @servers) {
        printf "<option value='%s' %s>%s\n",
                $z->{'host'},
                $zcan{$z->{'host'}} ? "selected" : "",
                $z->{'host'} ;
        }
print "</select></td></tr>\n";

print "<tr> <td><b>$text{'acl_edit'}</b></td> <td>\n";
printf "<input type=radio name=edit value=1 %s> $text{'yes'}\n",
        $_[0]->{'edit'} ? "checked" : "";
printf "<input type=radio name=edit value=0 %s> $text{'no'}</td>\n",
        $_[0]->{'edit'} ? "" : "checked";

print "<td><b>$text{'acl_find'}</b></td> <td>\n";
printf "<input type=radio name=find value=1 %s> $text{'yes'}\n",
        $_[0]->{'find'} ? "checked" : "";
printf "<input type=radio name=find value=0 %s> $text{'no'}</td> </tr>\n",
        $_[0]->{'find'} ? "" : "checked";


}

# acl_security_save(&options)
# Parse the form for security options for the servers module
sub acl_security_save
{
if ($in{'servers_def'}) {
        $_[0]->{'servers'} = "*";
        }
else {
        $_[0]->{'servers'} = join(" ", split(/\0/, $in{'servers'}));
        }
$_[0]->{'edit'} = $in{'edit'};
$_[0]->{'find'} = $in{'find'};
}

   07070100060727000081a40000000000000002000000013ac038a500000016000000200000000000000000000000000000001500000003reloc/servers/config  resolve=1
scan_time=5
  07070100060728000081a40000000000000002000000013ac038a500000060000000200000000000000000000000000000001a00000003reloc/servers/config.info resolve=Resolve found server addresses,1,1-Yes,0-No
scan_time=Time to wait for scan responses,0
07070100060729000081a40000000000000002000000013ac038a500000079000000200000000000000000000000000000001d00000003reloc/servers/config.info.de  resolve=L&ouml;se Adressen gefundener Server auf,1,1-Ja,0-Nein
scan_time=Zeit, die beim Scan auf Antwort gewartet wird,0
   0707010006072a000081a40000000000000002000000013ac038a500000079000000200000000000000000000000000000001d00000003reloc/servers/config.info.es  resolve=Resolver direcciones de servidor hallado,1,1-S,0-No
scan_time=Tiempo a esperar para respuestas de exploraci髇,0
   0707010006072b000081a40000000000000002000000013ac038a50000008b000000200000000000000000000000000000001d00000003reloc/servers/config.info.hu  resolve=A fellelt szerverek c韒閎鮨 visszakeress黭 a nev黭et?,1,1-Igen,0-Nem
scan_time=Keres閟kor mennyi ideig v醨junk a v醠aszra? [sec],0
 0707010006072c000081a40000000000000002000000013ac038a60000006e000000200000000000000000000000000000001d00000003reloc/servers/config.info.pl  resolve=Rozwi眤ywa znalezione adresy serwer體,1,1-Tak,0-Nie
scan_time=Czas oczekiwania na wynik skanowania,0
  0707010006072d000081a40000000000000002000000013ac038a500000060000000200000000000000000000000000000001d00000003reloc/servers/config.info.sv  resolve=Sl upp funna serveradresser,1,1-Ja,0-Nej
scan_time=V鋘tetid f鰎 att titta efter svar,0
0707010006072e000081a40000000000000002000000013ac038a50000006e000000200000000000000000000000000000001d00000003reloc/servers/config.info.tr  resolve=Bulunan sunucu adreslerini 琏z黰le,1,1-Evet,0-Hay齬
scan_time=Yan齮lar taramak i鏸n bekleme s黵esi,0
  0707010006072f000081a40000000000000002000000013ac038a600000040000000200000000000000000000000000000002000000003reloc/servers/config.info.zh_CN   resolve=解析主机地址,1,1-是,0-否
scan_time=等待扫描应答的时间,0
07070100060730000081a40000000000000002000000013ac038a50000002e000000200000000000000000000000000000002500000003reloc/servers/config.info.zh_TW.Big5  resolve=琌秆猂т狝竟?,1,1-琌,0-
  07070100060731000081a40000000000000002000000013ac038a600000018000000200000000000000000000000000000001900000003reloc/servers/defaultacl  servers=*
edit=1
find=1
07070100060732000081e40000000000000002000000013ac038a5000008a0000000200000000000000000000000000000001c00000003reloc/servers/edit_serv.cgi   #!/usr/local/bin/perl
# edit_serv.cgi
# Edit or create a webmin server

require './servers-lib.pl';
&ReadParse();
$access{'edit'} || &error($text{'edit_ecannot'});

if ($in{'new'}) {
	&header($text{'create_title'}, "");
	}
else {
	&header($text{'edit_title'}, "");
	$s = &get_server($in{'id'});
	&can_use_server($s) || &error($text{'edit_ecannot'});
	}
print "<hr>\n";

print "<form action=save_serv.cgi>\n";
print "<input type=hidden name=new value='$in{'new'}'>\n";
print "<input type=hidden name=id value='$in{'id'}'>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'edit_details'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'edit_host'}</b></td>\n";
print "<td><input name=host size=30 value='$s->{'host'}'></td>\n";

print "<td><b>$text{'edit_port'}</b></td>\n";
print "<td><input name=port size=5 value='$s->{'port'}'></td> </tr>\n";

print "<tr> <td><b>$text{'edit_type'}</b></td> <td><select name=type>\n";
foreach $t (@server_types) {
	printf "<option value='%s' %s>%s\n",
		$t->[0], $t->[0] eq $s->{'type'} ? 'selected' : '',
		$t->[1];
	}
print "</select></td>\n";

print "<td><b>$text{'edit_ssl'}</b></td> <td>\n";
printf "<input type=radio name=ssl value=1 %s> $text{'yes'}\n",
	$s->{'ssl'} ? 'checked' : '';
printf "<input type=radio name=ssl value=0 %s> $text{'no'}</td> </tr>\n",
	$s->{'ssl'} ? '' : 'checked';

print "<tr> <td valign=top><b>$text{'edit_link'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=mode value=0 %s> $text{'edit_mode0'}<br>\n",
	$s->{'user'} ? '' : 'checked';
printf "<input type=radio name=mode value=1 %s> $text{'edit_mode1'}\n",
	$s->{'user'} ? 'checked' : '';
print "$text{'edit_user'} <input name=user size=10 value='$s->{'user'}'>\n";
print "$text{'edit_pass'} <input type=password name=pass size=10 value='$s->{'pass'}'>\n";
print "</td> </tr>\n";

print "</table></td></tr></table>\n";

print "<table width=100%><tr><td>\n";
print "<input type=submit value=\"$text{'save'}\"></td>";
if (!$in{'new'}) {
	print "<td align=right>\n";
	print "<input type=submit name=delete value=Delete></td>";
	}
print "</tr></table></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

07070100060733000081e40000000000000002000000013ac038a500000ad0000000200000000000000000000000000000001700000003reloc/servers/find.cgi    #!/usr/local/bin/perl
# find.cgi
# Broadcast to other webmin servers

require './servers-lib.pl';
&ReadParse();
$access{'find'} || &error($text{'find_ecannot'});
use Socket;

foreach $s (&list_servers()) {
	$server{gethostbyname($s->{'host'})}++;
	}

# create the broadcast socket
$port = $config{'listen'} ? $config{'listen'} : 10000;
socket(BROAD, PF_INET, SOCK_DGRAM, getprotobyname("udp")) ||
	&error("socket failed : $!");
setsockopt(BROAD, SOL_SOCKET, SO_BROADCAST, pack("l", 1));

if (defined($in{'scan'})) {
	# send to all addresses on the given network
	$in{'scan'} =~ /^(\d+\.\d+\.\d+)\.0$/ || &error($text{'find_escan'});
	for($i=0; $i<256; $i++) {
		push(@broad, "$1.$i");
		}
	$limit = $config{'scan_time'};
	}
else {
	# broadcast to some useful addresses
	$myip = &to_ipaddress(&get_system_hostname());
	if ($myip =~ /^(\d+\.\d+\.\d+)\.\d+$/) {
		push(@broad, "$1.255");
		$myaddr{inet_aton($myip)}++;
		}
	push(@broad, "255.255.255.255");
	if (&foreign_check("net")) {
		&foreign_require("net", "net-lib.pl");
		foreach $a (&foreign_call("net", "active_interfaces")) {
			push(@broad, $a->{'broadcast'}) if ($a->{'broadcast'});
			$myaddr{inet_aton($a->{'address'})}++
				if ($a->{'address'});
			}
		}
	$limit = 2;
	}
foreach $b (&unique(@broad)) {
	send(BROAD, "webmin", 0, sockaddr_in($port, inet_aton($b)));
	}

# Get and display responses
$| = 1;
&header($text{'find_title'}, "");
print "<hr><p>\n";
$id = $tmstart = time();
while(time()-$tmstart < $limit) {
	local $rin;
	vec($rin, fileno(BROAD), 1) = 1;
	if (select($rin, undef, undef, 1)) {
		local $buf;
		local $from = recv(BROAD, $buf, 1024, 0);
		next if (!$from);
		local ($fromport, $fromaddr) = sockaddr_in($from);
		local $fromip = inet_ntoa($fromaddr);
		if ($fromip !~ /\.(255|0)$/ && !$already{$fromip}++) {
			local ($host, $port, $ssl) = split(/:/, $buf);
			if ($config{'resolve'}) {
				local $byname = gethostbyaddr($fromaddr,
							      AF_INET);
				$host = !$host && $byname ? $byname :
					!$host && !$byname ? $fromip :
							     $host;
				}
			else {
				$host = $fromip;
				}
			local $url = ($ssl ? 'https' : 'http').
				     "://$host:$port/";
			if ($server{$fromaddr}) {
				print &text('find_already',
					    "<tt>$url</tt>"),"<br>\n";
				}
			elsif ($myaddr{$fromaddr}) {
				print &text('find_me',
					    "<tt>$url</tt>"),"<br>\n";
				}
			else {
				print &text('find_new',
					    "<tt>$url</tt>"),"<br>\n";
				local $serv = {	'id' => $id++,
						'ssl' => $ssl,
						'type' => 'unknown',
						'port' => $port,
						'host' => $host };
				&save_server($serv);
				&webmin_log("find", "server", $host, $serv);
				}
			$found++;
			}
		}
	}
print "$text{'find_none'}<p>\n" if (!$found);

print "<p><hr>\n";
&footer("", $text{'index_return'});

07070100061ee7000041ed0000000000000001000000023ac03c7300000000000000200000000000000000000000000000001500000003reloc/servers/images  07070100061eee000081a40000000000000002000000013ac038a500009211000000200000000000000000000000000000002200000003reloc/servers/images/cal_spin.gif GIF89a 4        3  f      3  3 33 f3 3 3 f  f 3f ff 檉 蘤    3 f 櫃 虣    3 f 櫶 烫    3 f    3  33 3f 3 3 333 33333f333333f3 f33f3ff3檉3蘤33 333f3櫃3虣33 333f3櫶3烫33 333f333 f  f3 ff f f f3f 3f33ff3f3f3fff ff3fffff檉f蘤f檉 檉3檉f檉櫃f虣f蘤 蘤3蘤f蘤櫶f烫ff f3fffff   3 檉 櫃 櫶 3 333檉3櫃3櫶3f f3f檉f櫃f櫶f櫃 櫃3櫃f櫃櫃櫶櫃虣 虣3虣f虣櫶櫶虣 3檉櫃櫶   3 蘤 虣 烫 3 333蘤3虣3烫3f f3f蘤f虣f烫f櫶 櫶3櫶f櫶櫃烫櫶烫 烫3烫f烫櫶烫烫 3蘤虣烫   3 f   3 333f333f f3fff檉蘤 3f櫃虣 3f櫶烫 3f                                                                                                                        !NETSCAPE2.0 ,     4 G YH0諤儷L笎∶*寛pb膰
f刋编艈>82銱'V;8r帐U-璕晩P猅╚崮Y萓猈9『IhO湳lEU(曄滰o"濟敥記KU P 簔龏J硚痼瀑75@猬
:货彑皆鋻X立姇i坅%仁
@齓翃&獪;s2jt枵螩}F}戟)嬉爡Yh覜>=荈險烢唺s訵垇OSㄊ (g$岂鏥 j6嵹+j赢Os剁邴6K鞫M稽孢6u钗玧Bg搔*鋃-旴rm癀睧^ヒ	Gq幁鄻O梆Gu	bg!p娏矟eW橣遷?諗Q濋Tg炲&P嬱SM峹詗奾Uw櫟(踀%i?q鲇4C疽豵O8t資W]u皑獺堵LAbUbx#5#h褒h奙瀔炨遊0 x笘^ki翓V*_~l僬
T銰漼T焫捠锦腫P旔P滜軇R鰢T祦亻#v箵嗿i┄巣*╥Juいb( z JO霶'檤颢儃餫|芰嚥序Q█鍂X殱4歯ME昚嵄晽蓊T&{ 灚藁4.%畽!z媃*永
uN纣dc袸桱嘅Z=1搄煀嶁~奫稪荬赨釼lRx韭o釷葻~過Z r|~}啒Zt畝XgUq
伆怏*á蕮灄&n磁8T膨5z]z卮nQ9絥:憌銕縴闦絽 蚯@f磾%Vv&V]役b0簹ey薠彛哴1[ h導視t	婋	 鄎9_*'!刉@/5)嗀胴M凎x\酆Ｎ鎉嶌rZ疙=噫)沵劏`[够諉鉖5#5zVV"鬈族籎 哢9貺K_<n毓T/銾椤hTy癰~D鶃9r;q##P!>F-'gy @R	KU搝:臁?華甦=/{OgEG揼J劒wii>Q笱w,N'檰舁茂郮(9碞祢? K慜巄#澃鎎纚陀x倱E<=呲	瀎詾晲7:I藞\寄'余鰰 (厢櫻%溼(荍Hd蔛R铦y尚U$d_桼HE灎O媅旝
窢-*0"籅*`+]罥虦HL層
咐@P7Q匒X'<鎕櫔櫼)q[_/觗)1峉┢揂R(腣-s.7藼T?*\'8K 敵b膽'a庈	髄S饵KiΡ"}<L穉bPr脖{烘(▂g場8\U8蝢眘]摵嘚U<鶳歾鉑鴈閯1\"!p,\芍n該熮xl/迲U毢&Cx堄0劇b纻$闀tc滵S舕鑵Uvr".ⅱE@贳鄮RF_(kR^在R椃"?t鷬臾式"岨硧铚/^酵A刌覔婜$Qv敱(.诰它-姎QーYEl掌!
九%=錏窖裧D-|_冕
篩鑱I#8[r4见}I7-2撄l岭3錛M箶姍yMK蛩]y船y)?i+p|モ匭Ns钵U卣u眿6W<:b噀氝f3>珻0邯M8棚0NMW4垢抭%O Bf!痧蕖h+T纎~W  +8栊%(泥,兩
爞l凉	饎rZ7o!礉&.!oa穂)Egq揮 愄摓%*8$伓&妄)9EW蟼∣,*{V楰pLT,u8隊囋憙%頏;钇飋s^k蛑暍唍关撄HfYLV	 A
@x*H淪:k蕬樀=\A9PH挫p呫垞r儶濯鄧*l⊙偑hJ7U堲+蚳GC
扤簪/PSz詾󐃍峧LkZ詵>(ン皡L撕
C0$(衼PX W窤!
菐怣 鸍獺M&mib谡祏Biw[╰笉蔶O;芤喤礢9韎總&瓒)剁mno扣垤Ne埬龘S:#J傍7Da媂 !庰22獎*阍踒K漇-嶱;yi濖颌氟)漃Ml轕7;v鮓塩埲膎圡"d* 鞦;鞄f媚巔頹Z犱3?粥鐺閝鎖*,/莡!領嗀膸!6	衛訐R6F	箋&戵y灛8(蠆=W虉鋳Q紭B,玲$SBJlD隗z𯘄L憬v")v垽ae烩7鵄橿A軤蠷?競榞庇^迶'H^e5F,74よA是`gC撷肦(]曠鸦.謞臚鰇褗p爂瞲拁耾&%f鞁Nn覠]9Q
g8Yi-v悖	0uG8 ^粪#>-\#$瑓'﹤o釲攖鴣赪2TPz駋Rw渤諔忈P 
]``Tr”5紒y秙1+5ΒBl┞1@蠾麘LVQA~勷c2H葍84泜  <>膄`腇I姓=T钉[B鍟儥'L鼊1嵴a蚲X鷦T擋WITy褻$%籸`栻湑\E:1讉吏僆%z-咵'R鯣'G48禼[%6抉e楑VpP灥+ゃ<uM鈛u諅砹]僓X4垾R~骦沏s]0麰:1#甑}秙_懁Ne<晆\i袜$0]U皡缘
萦=夾Wwe5r犙5}45e$H⒙v4]Q;;眱&
慡INCgsz莈2OH>2p;WH肁{;征]E剠*Lt<KA.7_A8F(拼&9o俢ゞ"i6qIhYD6p錝+ c'sN拲
倛L%Fd砫C鍽/異"墺#'1嶵I'1鰠2[駌 We3貴:GX驃P亥堓C1豻喸5蚖q?駜_o翄4'b<傄5ZQ)/謅4s禤J=坫/n20謚鯪閬5ｂ7˙t窷LUK'薱>贂2h晊摹С莹贑v奱4獲|袮籥[脸.干Y;%鯽璾Qt麹ted#E.擟,9鉊NGQ@崋x5H_C鞲rm)L秴&P$@讋5楤鉋M駧毂1%+b5籴貥7/B 0l捵7X灞D:鵨砤綑朜o%C鶥脲%2%闀w農V字zg籦I偢6Q:04, x%Ki闆W誷椛St锠皮U畹}赍8m+c沚0)i礁8T繽齯\*p *zk蔘osv凂应a荊yAYKT46麷xCd$噮鍠j
僢v!'*`兟$@92<巘' 挨!	 O餱o+@v%0d$	IvG{+獔|&4j+鏕襴O1._0K俀o!V&其L鸻9:
r[@
y (  ┻D〤Vzpd*) 0,C甌偱\r"W#3b%1斐tхaM(蜹亗~ 伄睑ИBO衵畡k AuJ詁+PK懧Q +K怛"W摖R5k鋅T$Ykw塓}#幎x/+楗f喰f或Yt(埞絇xQ,wv,vp|玴c6* 洅L1EH[锷辞宕礙K碨{碪&兊F\+礯坏Q氲T{cH8
g脤{漥Y2+硻艾哹W鞍蘎寺,Q|癙踕:芶脯y嚝笁浉堺笇箮箶;箹桓椲笜还嶋S窝Mq碮G$害[合眳`+ ,    < 2 G 	旿 狟笿
崂B_溔愨D埁$曾p!A]L祼d莵Qē薂琓岵??唽X0旻	*愋+QZh昐- 狟跸A)鼨杖燝.TX!T爆Y泆蚙磌Y筚?y┾ЁP)AR\魲$F煯*醮e旲T鵄T/鼒R帽+UBtI殝Tkn鵽Q(瑁溝blH粹l=扊浇e盥緒面)Pb!銣绳賀E+[鬞夞$芼}桄圎颈D))槆 24u獣14o8遥q]Q.1|*Ub崁楔誘-鍟UP列xgXN砆Z溋bM5W{溽GVaPf﹛aQ謸Y&逶揂厕*!RUEM間扸囱戚A肮O尽羟T\$euOL6詌@cP"U扻抠F垙dR7橠狯%E苅粹q庺$鄩' 誕_ar&鬳X	'I1L.Hte2塪Bnn%詻′滻砿艗*琤S8OLv仏輊顿窲,+0'僒褸W=垝G裏朅仸⑨M q-z梻ZTOZR絷nK[璡\r裡(y囫G8	擳叚Q撵藧*卑r+疨礵赹+＞*i'詄	9lB 噽睺T听X努蒏烵!湫杜遢h-i>Ⅵ}"雨⿲囪Eb*饘
d鷈XvZdm'絃VNC龂VYW3y璱捜%A$oOn鄭钎N矕祐*dCU}i跦鍪(*Q:'軹d>A恎w羡禶k&=I欿0鋪ZZ佥%籀洃笛C/Mw-廨者h-ㄛ##)9.J
倵胉窩й逫y魬I殍鑩6襝芆斮褾笸箰+:捼攷lA鴗)eF	鋂迸*+w*pT怍榊qQC~脘 M,偵烐B罏蔢0蝗謭癸碒j丗[d@XA缷T78(9萅.敀X硭讗􇶄椄0錤$*極獥浽瞳M嵎b!A惮呍⑺*滖4-/1尐g凡厠m駩ZdQ <&儀Vs抵MBD=V垏rL瀸$諪丗僭葌永X懪}NI廡z譅*桄wL湐_沃ｍ!媃*Q姤`蠫+x鉧(鍥|d鋄燘嫮<扞槼9XA圴ocQnLF*T 腻╟甥y雞梢T.y$崝%qs8'k乆噬p3诣1~鈰甬銭&*薝篻獦榡:~B趻(鶟髊+I冝E J105rC3僠孟慪
"mRff枹(Lq嶓JB-5 !    ,    < 2  	旿犃_"*BBr坖!E'斒旻侱0と惎BTO晝)q#蜌2S*詐aD仺"未埿e'U扸墤設J!冝糌般巍ij礨ue沥L*U鷩fO8覸*揼*ESE[駨乇V辈臞俟卼v$(Qq2撒蟈醄孯.屯W+J蘆瞓C梱*d枆协诗	Ftq砬}搑48 偁	簳蓂║c鎏5r*yi弋cU蝴藘:*憊TQ9~<桘v34熨j|箖2$闃癁-趀鏭  r|
}Q!DY曅L粊$UR穄v )`@6S|鍓C埮7
姹卲R 仱rP洷曎w顿Nf1柃嬝*玊a$)噒槨`鄎F襂Z"梥鞘5謀缅5U案
 c帀鈺5WWAB! ^z9+FR賾巌H)梺D閼XZY!X^,^事
 ~D5'檇R*6跰X崋汦q拞*:銰KUh鸊傞!柢}@J垚ˊ蛟&T鐴EI!)*j欳覷	_`-'S縑丟~ [挰籎撉)ty瀦$誆E砚馟r猄P&&H)邝G[lUd+*心掜襅硬[AMp)噴磟;
)p,|鸲屄鎯q%]B盅緕U(<硦3UXc+脂掦昆(%㈠蒸觭忭7恈渔馟'<S5蟃!K7W脢蘉1囱!汼!E棅浸/)文bM55[3盗#
;J棜B
I菃3熄R,箱|3扽銊+誟碵1呚珛伇芐<0眬h2B汬!-逬Ь.氨1捼輺鑧銀諜傾5麧y黌-籉.靨 骀砩q~[n`hEm炅"~)葋梙鬥YZ騼慓*)倬KΠ哷0鰄釴"rtuO蛹_N~ b┇GRz檥狄>"睜bK^耂l"@"}擝樃蕇朇峠~嵆奊|礉-u㎞`襙掀&懰J@c淏涓dN諵煈bQ2閺C让B"惓蠮=滼鯅I
慪罼宒▃誘0c炢$婈i峩竷D頳;痼憍&樫嵁 a$葖鬚<'痲"w?$'B@c瞿=3變農憏檶 p!ZT朥犰%812Nw俋3^Q4曥M袶R(E5蒜帕g 襛羌漉捸!k垼$R7顲I.彬辡b靑'硡?翳}熁蚙騠4馤I9┬B$z;)E<B菍鉘蔧や虌嚬AQ)Y(eB%\"沫Q+9$钬R3*9j鷲r6樔4鐇Y%*阂|*~礮僗橤_瀿⒐|hC垁  !    ,    < 2  	旿 狟S*40誁
!2豍a脙r誴aA	r<"狤QM|h c蔜/~|eS'JS朤鵴`L橽 )]s嬓欰W颥H釨1~橐痐痼(AE&
蒔g苼S鷵ti*\頩P'U蔔}hV鏏y"尰2錡+w#啐P!癧"梾況裰9]h甊+獝?8曵9hQ模璿
駁*戟
d(〤乂Ru═*皔';d抔O7;薥ZP燙q摄蓰*@囄驏汀失8罒棔*U恉*[踨碎鬃zTa橦鲄泥U凊4恖H 琝ａ5铂*⿺襖Xy罠}8%贛T躳掅5謑Xc嵶D#K,(&
B\4Gd*x,阳u釘8F谩" %贔嗁v8y+侙迸\1狁1R>.禇b鈮C讋3馇劒e&賋q鈞HZ闝銴Xe4褵酯 D緬歞yAYLUd崀J閼b]h鹽茎姉偒}Ux~戺噈[伾U|4ZFY]U諥匱
殕,6gA鳹G(HE鉘领竄lvbL9睌]奿眻諥寢G浔锞U郠	$S_*ujb!仚>H[榢./纗8誔凉妻糧%$Б鲭rL鹮nY猜,酼媓k哈j(=J SRjJ-*2僜嶔YK2緾3螑怛綣w┼lu-PD┆襜]瀌uW擈L5蛀濘獷.羟zノ襊`陝bD濁3郡85誸澅纼T賬]TH=)跆2繉送底y萀顮鳵ui召	!)盤(F矛1q稠e⑹℉⊕}	鎾庻6`1UE{賀椶⒉芎M豪U阅tIqq<璬Q腞鲔]
躱頣鴔b*T@X润帞苨邇BW(圽y傘@P
謤巁X鋳G鶈-儽軲%@犉
%麶YEA颾涙瓸鏠Y * =l[仳嫐A迪-蓳螹庖垢"C謄|虬鱔!<紜狓:詐﹣趄Eh
ガBC:b*W;,tゴ=Ia锭驳狸9u,6敗%3\感5欴#⺁(埧
擙X'<p344t#'屺G"[p抻%1剏t	O栆GJ;=釷,WQ峌4莍JAP簇&v
斱e.0躤,攭* 眾銊l/亖X諯桜腵x
敂C08#%5(
\lD-笂?)舧桖烫|慉袼嶵猇XK倃驄LZ矲鐳芻E娦娩慴A7v㈩挓癓勠Ｄ4薁姲DS賰L鰂柳2!鳃Wσ顿酳!凵fV@檏1mkQ*麢執薿^俼%煙y5;j!y〡	C<8誋Qt涪偂砇:瓪條鉙盺gOP閷Z'橵掇~oQ閂 !    ,    < 2  	暘羴*te0+BL!	*4啊@v$葠`肂2獆rd!U6RTè`JT捥(漳qj蘗PcM崺`甖Uj┯ИT!鯄pbC2憵载愥L巵VR鲂O椘bダ=櫔$袳:Uj*/牽>e凳赗Xyib蒕a撕鳘:栊_+U狿┾鏞g蟍瘨Ux3X痭M8t#Q擳Q$鯬)@3
kU颱猙礛'U衐UcUm[jU9箶m躑 簐mw铥志_60,姳朳硋聧8!欚"A薬睏篺-褡湹*輩譣4材B5g峽优FHqnt菨w涣h袂OTaEXAs*癟胉x糢S]X┰Q齛+郵肑灔2鈵lQ艕簠'4鹿  WRC3聴
^4鑓橻\鋋`V(Fb [狰`蜁UA费n~敍慥l&fWG勪H冡モd柙谽絎T\ b arQ蕁竃Q&DFhM+眲 酓y鞤N槱眗鶪h峸桌@!.扺輨E;獄蚽詩!X齉伾蒂_ 为欽[$P,1y徿A3醘釁鏮yU糆}4岘襣g赺舶翬qT厗,弑A9a訲Ga墨閲fyl唶f6钄趓锎pTc峹綔
,黸"萙鋪G<徏賍疥鎧kW\R\:槞<G鼼~餖E貯H郧襘"嵧g%Q"+I湃U	$蟄kη葾R厷肍躧2桞矂4諶廈* 2
誜S萣ヾW瘺HS敱5蠿篝憍宧38C试@RAE容氲7*2-1舜+U敻3悵愹寢 -on*IW!J捥6悿8搄5Γ~u~玊!^桮^錝稻搆失4U膒5息?髮3珢瞲!僟!筲y^W腢#崹bX纲銆4
脥bD糅4G伛Gv 韨拺g/勁4＠H;涄溪峢kw9冢(粤焞麧覥B?ゐmS衘浒饑w訅摳Z3初T鱐ǔ*D十盨M8枺榡牐4畧?\餢F朆恑GS 嶕鴩;垥拻揚7I蕑剾<櫎V!爠撎(pZ勱VF邸佂d蝦柼鄟]跼搯贐悘袢睟WD揖増1ò誣 駭=`,峌l!+9-舀幪襊稼SMi8啦簡e崊戨9T欂晲疟b釨霹/懮=~芈T濧嘃努墧h/=饸+ 釃}蒁樢儫巘稠錫敨駼对応瑁)滵*襢懏:soB=-R瓺4ⅰw増`[(zXQ臘戡9礤,〣)啷RPk⒛2P,P
'*edM貍偅W0KP涤##hr缿M酁KrE}E蒥*虙烱&竹MS3W-0/捙X#豟頤帾ZT=!N芈坆 &眀c誜匬B睴t`C湐/⑼`鋔醦l61h帰3賔%懦f塵Z溡稅R璿赦最懁iKT撫F厰4孒币稝R欏+\3!'泄w痯1紞^`XLF蒄*門E兽馗w"畖颾豙VT !    ,    < 2  	晩+,tP!罛	簜楯!ET	
ū+ 1綵xb_Qt叞牚U蟅aLHs酖';堁aH;9:,鬜暤Y赚]洢T)+k睼罛2c脪4鳖え萭女cA籉鲒丐h&mV礥?M|篷釯T+Z讠d	鑙P趷嗤674H3睭棽
D?B冝鈾
@l揃砎脼w钉笓j遦踩
豉镶揇2魢惜):U嚻f咑Z4@1妏@麃*仈[{Z1zNU鴳
鮧伌鳤u<唚後}g厁 䜩
iV5﹉u親蓖栆嘝醄!yTC )鳴Eg濽q趙W豶汷=鎿I瀁袂i魢1淲聲棅奜)G誨嶔ZC<鍪嵚菼X罞y\Yb嶁aD葊
)條vQC[歽7慥"yXQ厹%n!% y鰯,瓉艮c8褿ya敟g仈r垗'灕 鶈憌lY#Sc謡型W铏騎Z珗鄩洛鬐蒪*㏄碦N/YBAF漅圷[* w辴渹v覮G:]歍R舶B'(睯YwRkO2JVT5褦隄[麬!*D殏腥R覣<磽眙Ln玿#嫜俳邬A爌埆报B瘠怭(xM胮v喦x鋺G藊尭*Ζ姁g铂
N8蓤n筳蜏#V敛藋鼞此TH\坸^萠
黍L错甂枞颶蜜qM滑thJ'硡 ~g*wH5h疀鹒*4%嗧G遥愐,=b途-F)燀96蠎)%KiU*19"1僄 e㏕q媗咤靯
-蜈r!滸呦见*伋<蜉B潱︵Ч值nKGIA3卑f燩灚7PK
5墩￤
a绫7氙}員鸏掊,p!硋d}VF]┦[?J撸剢5燈裶閍MU"F塉陳萍杯lvD幡█剆燏	X鄓E.recY賌VB愨b9y単X%BM4擶(g麗睟g$4螏f媿XU|$IX(:枤f!*霨侧嵎$/狝.IMLW洂(僿 "e褂锳+2帀蜗翫UT-获hBC5V+@AB塯謈峏8$S奄T*篟幀,d橹哦8荰麷z笅蜙
,捳'谺u圲壬[蛭澕4'8抰/<S
鯐丂
Rz窴*穌,U塜v鉄p訢)<$攲畤@lA9褠幟F+ hK泮蜪Q"!sI園秵娢h麲\\
!禝67i菵鐂貍v諯屝J(腞a!旽s聶g埨I -寿櫤f8N祰,cq
殐(<昪悊"'頿9?,!V叏Mj.4*f骤*AXрw嵜湆3!賵C	(坳i#椖,娐6y吷奪羛蠦埪!*X猣a妑b1搾`o&)`)F澶/!K4軔艝 鶋`檿啊l/龐Rⅰ膖,<+蒑雀莫ㄔ7塃,惙奨tR閄,蟭@澤磖[塻酩wJ妋躜挮冖D堕勬k3@u:耽顅\婡2屟JG(ㄥ甂(貮 !    ,    < 2  	暘罷Q
岖叏F4垚崂]5$("肂	喬x戉+Q杁圧U!U(:≒!脦潉感 M'=刃*@咼
*PR@ <8r蔠$劘:郝 J:t鲮叶JUq魵j霡;毜"?Z%u!@z[膛l[()V1酔篶"瑙奰Ε5-!?Tx②q牫,僔惰棩鋬┒x喓敪軑醉箠-ZbH嗇X(銆BoT4恱q消Ob)%O[C\9怃怴蔻|rA锨峽嶢%F?譟駠YT]waU汱Y锣W"榰~缜俇羺f)W覬墑`D5Y E&t[l絍򴤴厞F堅M槶窜dYG<)K=s5謀邮*.齛厔巺8悏	1HE4eC猉$4职銟1y,&槏蚘4rE_Z呈!烓q*|)*f^論殽R|枳乺簵姉睤鮀  ii捬\檬!~ jM+4嗆k罱)釭c岲b楙^¨譊C!I換鳏崣ヂ]M掗膾V赦e U膀%+l崆aj1
挸XV巈&ep阧伲荲盝扱U崆鏥亝	葏j,4]s4-訧5憡$+1燵y橇U棅帤諛c藤臏A俴蚘周陴
W1踩ZL'枡芍怤]B悛椫x咷j~溲成$熂癙噮%Uy$"uu5\0矟U亣蓎WrSqad俾6sC0莌舀涹楆*\rpB
)聋e漰d碿ォ
艱04U<]
_](<硦3q淈锹旐k	eSl"rR,`&+!躳r;S5侠孽6 輸
T《gNp5)宵[3碿眭絳煹恊劏銹俍)籿仟!0埭8觶=脋揷7軯蟄N佑"ajv,w躸sME蕞H韅Y佳t1H,!&@岊`	驰垅W苍H?畴史t-椤俇9, 8慟醡A硾M,2Cstr恄漝\謝5$!?榥a&隠譩#筐g1X@
1哺嘂fC%p{P,#褖寔漪?亐蜬闤樃鹆8%4g佌箕訕&pp守穃癔hl瀶啒RS+"柡F梊(ss趧H恄誔洬菮j啫+炰F閻腏亾t
/YQ[呫X学ˊ%V觻蚊踙I ;9蠬|]胒惷2塡挖昚X挗偓膫;VN媂计Fg醾檼((诣A欟鈻y G:'%圲旤侷
蔽:訦=朼Pu多0E矀<W円黙V8![%妧銫#蒪!魋U郧&	hc居?TA[023愎:!@跆
缘-驠3*!e㏕YB;嘍蔿:嗶闙	J!~Z叴"*Q1篘3逾舔-s覮屡藬.䓖j⒅Nǜ5W甶J!%9陽+	
:蓱鄿-my!H駳k馫曨|d戂)杺7Y)^驋Tb哫 4耎敇葢~雪R
2!鐳Y]鯡6礏琑柶董衮拧=Bi*rG=s=Z黰pせ>鑽	 !    ,    < 2  	旿 猈U AS0斋鴬郉E]オ8誇;F摇翃~养P"A亝:攈0"**m
Ty肖荁2W抹麓
*\騪慖QでEr惕0'I
!苐悤*z禭鵦e藷塧+h攆@崋,箙,S.z!kEO暀錷HoP+EB$仞i[鱫灧Wv9rg省&KZ4	ǖ胫e猰捍J[衃M
颞i诈{⺮璧m蹨蟰迾.O	3b禽ㄚgL&|8塟$}碘WQA韑栺V鐵熨saEuTG7呣pU*謀3+ORly垎瀄龖4`{魷I^觍"^醟2籽"Wa攼^-4Q$〣b儷(H蕚
毟蕪玪啎C嬱URuYU袺["59H,?茠=^%+#N5呏誑d4%豆e悋h	 桞'B,5P54╜ 嚁B5寻掋TIPozJG拠?侃U*ZH玕鉪怳d*唲奻k鹢g揓4*	IC:帅Y1QQb[|T(AM/U3*U(+P+y`{璖腁藶M.苏尐(5Z
礝莂y鴳2祳!rXd_u:,B踚S劓1
o絹$矮-嵿8犘p垺Na[$脁TA 操氛躚W񸀳NVa蜖秈腽gB<o侫.k矴C驘s〗颛5:绗r笫4*<闾闼 蚳^,Q93m"B鞮5P~]r蕗"怅gRz肆褾秚鏏3嘩鉒
囁o乨4))竸饥. r葿wg$<眿蕑樼h榬
h翰磱5蔁	-羯
c}入=:萤]%犔) 諨袈k粝锖圠榐JO苾珪H8Cj冦磙凹藳-V'u5]赣
1忳箸Fc煰
津2	舑韦Js@Y凔S铘`+@<a3"Ｗ迭 Yb焸B蘃羀4信6﹌0`R癇峩处X鸉yMX2瘜9%y咉Z.0▎茆-j擘翬倄峆S鑑狊昞iIK嬟 X%?E醝茣?漣P熉惇簦鈵袸瑎匫t$囍a[釖嬅}
b虍g{鷸慲$漫垊(癭P塮衽kL5
鸘<徣闡[XV奤浍昸盉k冖V%恦:妔贖It*腳栓▍-mt誉4?爷"爐蚘斻旟)瑽嬡c灖-y{擼4吐櫫唰3鵤^Q枟艦ó1圱あ0H_Sn%k\︸J%呝杺3*鑴!m譀,1D毵M)g褍r温腦1#3闟猜w藒/d 栋視4煸f^詅QI]堿x-鹪d2)!碃枈唙2筒/傌宻a赦D讍6d)蔁i劃?俩誨r祶_亼P,檷┈e玒} !    ,    < 2  	旿 狤"(蠻獓
絙0!翀S-*鳭`!*誁!獙埵$F俒黮!D扁蓳rY桎菋>A秾0釯
齌di*D鳳淹揈E奷Y眊N侲Q奬Z匥=[螯蓸抌BW
-櫔ㄋM
湼5斋-V産鍙头G骦鋢QdA;"恊薣>俣g輿\A鹟(V蔃Q"u5燯=斒7酦婽ik+迩728燖朳偔p福?=,芘
I9犔昷} ?}媙llh莕MG巪lQリ歇C扜y踯l8峊贎乼躪-葎謀c!+*R@鍚@6)&扠誛*X 玕S釋2ZX,跼鍡d^囆h+2!乗M叚T砪[軇擴爙tZoTA垳5S什J K錻+lj枨r^34F=杺W珍鉆<,諼硦UR,J粕J,⒛X! @憍怑q佸UJ6A窲燢媽裓3屺6^覬,炞V婝嶈Rh敀!莙奻孲鈑㱮鐚雾曏c*H偍葂丗s珜珮E坵ylH彥tj郥16P盽軩+屩榊叄珸U癒E楯!閰覦x樴Wq倍)4衷#Tx笡鄳GJ酫卪吁6/P<9t[珐燯p簲K)耲)ox)RC}Y鍠g鏣5腥R+4h*.耲1蛉名噄媋谛%dU z,5睺1嗷@A(獝3伸驿愃T7駁nけ丘盍2
)<銓謏麧<lQH冂Σ@cE嚅>癞[鞮5踩=嗜
S昣Xcs鵫倨謙,鉘kw,諸搖軧雺盺肚覦鳺M觧x~=娷r揜蚝斧%*,SVBJ 溨摆姕芹W4[T幱F
hR\椭 黥*恝\飨?s|F:烮Mv,r湡K& j,u	C漅秗"柪,.c糝Ze(Pc财, !9v9l@As麫ko'歘B镊	B鉎
瘍ハ9獝E 銭g"鸤!HFV"豑V◥,X-(C錛ED6e◇實3}蒩膪睠頸zxM崢=p!\8S湲j皞
vJ彬$捾
B嘣吏1Z厫5X=/T鞝QbwM匷E洜婾拟猔Eu?i峽覯邁魶<洠懆A収(Jc绦ざ"腽-A
蛹V<瑽w4勀e弐徺疋矎xe#4!aPe∕娕3鴥3蟵脡侅("@2O埲)KC(弣鼆柢=d脘豶孛Y帇V螜2銬夗-b塬撃.挿Q}b废 癠苧'N*瑝E慤軅輊6
垽诞"9濫噓唇qE*'鵆a磋ah疡抍*4瀕R(羲駿朧
[00u#B)`棽o1,勧黿8(瓾lv:j愽v誫罵 I醀涊渾#ラ	t@楼滴.hm壥dE9禋魤抸"澔g1Z罭怰C@x覔濺)琕妧  !    ,    < 2  	鮆`*W匯z*绽亝:D8PbC6\匕*SI\1$BTqc薚咡栩#虤"5倈H觓茢+^艰阛?U騪'FU度D5碢Q伅宆eh2!G/襹b暔V猉賿'碣	/$豷.財Z	Q穙薀恆6<Y瞙貎q罠+p僳薶旻U痙礩tW	t(*k矹璟P @竡鵼!W滲+庬h%!僦珹籪峺sh筸G$J鈴58＊j拫mU燖蚲蚮e鳕?们(鯽羾U挪&K*@oI迩+蘛s峼C墫buRV=憚
,萧W,仠e卥-x+爆捠1,w≡Yf醋@眃╘嚝艗`s
颞爖q垈
&ぷG巵U済YV,恤肥Y)6g+稌H)H*傚If錉O巚擯葏r錂w枑珨hye!G憅%t誄5鯳4蒩筞x;95懅個Tw]pE厔殾綊ayi\渖銀杠5&捩Xdw弖缳*R 鈛榞4WBU閣,菕J=%拺i
y侦5鸰|概隘6l附yD幡奸浘&Z诺珼TT亣経詪H銪褥DE芣~瞕竗5堏.蹑慓Rx8|o-B蠫\葑汳I(T!占6%z睱)辝泷囀yGT垃鍼/qv>印x
G印0,碙鸢!%.頛^B*:2)(/-笃鬷菞I%M,琹H5蒛aeO4l]?髮3ぜ0炮ij恈tsW>*r儂V鉓3p套y=l釺UiC彤蓫捱51承砡5蝷韕灸vET媑6,竻gu閠yy镙wSQi!檵橅Y虋,侦湝鲁0[/w5-<x|>貽5瞁舓仳
㏒XC>t縗/M;捙F
KVQ+6d& z苊\喖韛#決<虔腱簔4ns捍趟^{孛騏』P''h訑}l2k<o 魀:._^5瑻m|I抲餋T@ヾ隨5 a鍖HZ槈歊 釻\樨]栒瑗B鼀茢B;@Q#陳あ篪(H駛`切)	6% 5枹硎T=J憿* H=礙	＆蒌 彌扖}u毻30i圱 򿈮D湟磹<+;$㎏Cj敎)!Dh<OV0 贰X
Z 檆厼衛4Nr裋r龄詥}岼鎮"'d]#邬觹睠3jN$ャ巐3侃F悬 
仸4q)葈$浖黚?J銍5H-`裺9崅2[G滄x:Q袶銇F磪苘7Fb塪n挄扝F"馅幤
q鰤'9	bbtr硾崪苨沦,妞 ftkd-鑱)i.錕螥1鵮	]]f)zX蔙謷瘓d|炑芧挛粶	50宔躡蚡哰y㎎笯髽慔&II颔V-牠b1趮F癦熻:do1	鍷X偪钬JV湜H:髠曐I腎娌T[恫寛%蜠/+V臀蕜/┱*Z.	zB(M !    ,    < 2  	鮆 獊
D╬`猅*漯 _湗收@墔<r\缺c*2<(并IC狧m|坖釬jDy觗C.mj4T( @F2f?5鮴枇E6M蝑傩艐"=jtlY@妁沌弛獲)tH,*逛1k呖~(n膴衐艕Jx裛e玥轑-[襆钮鄹(sl閜*V:d-Z琔玝h圱有Ub@濊戥O甕?jM妃o燯譅E縡u暄甝c氩鸘﨟}H暒b;{候簕k铂
萙+碲璆鰺?BP-*b'|骾瞿[伆掃,赚騁!(T圱	敃G^塇UL!U|+①f5池妒I~偀叒l庞C?)7EG+指XE 誠g輰3^邮*笔帾苠Q\$W*;iUdt騣Vu衐H_ 就$嵭≧+ "轠=鯭墇^
挷4铂rH濁v晘r鍀驀A?Q\Umt盄`襡跬蜴u=c%~麁踏誼%vu^Ub$4玊|er$vk#u辢T[莸欳琵敡M汮+罟xetun1i\<儫,lc輊濰A(ㄕYK+烰(!UH萉5u5WK4f衻:4'Y娴共(堟羛gmm{衳蒠织bR	寠*颦麌{HYCgxZ4麲y鴣2綕Y\%W绤鋯霋彦iU鄎r(岢寇抏橞vF鉀dZ哂~糗骦krв@]jl譱3慿3 [ iM譆3*c=
)｛ 2噬*3L挸隧嵻G 	`;驤譟彚󃢈C氏BWa贃朸詴r.M,2)肃毡R
D<3+屳)w}梔$;槚怕38WW,熏]M3盭S3w囅"査t*涫夏7婧Q证,搌鉞3L)/煎絙骽 b圴懬C=魃Bs崌砡e<橣
J犆奬F亸=黙蛠_d尋&@壢芼Q=:著础潓
)NFb靖E*p毜擾3(\Vf5*4!a{觺覑a琭溡 鈙崳DgX亜F4鵸f儊蠾链騲萓D
UZVxR濌収峔珘mq賊#·f;XuZ.";瞏厠"!7igWL0%HBQ桅Dv2'W汢旔摗Tdg;m!W垪瞲寞d"=笁Q5n
U>1*弯f蜡	$fR%%1箠PYc	兀烻Qi覂8伖%訝>54介T趇E5V厽X愪y$孤布鼑昒 b,*7!从&nHH愌涩V鈷截=襂< 臖,涴≒v#2M縭BG界:弲*Q"癇J崳4蟾磻苅_@M鎔|!E_兩壊偪鬧
Q繁0kJ*`駥跮(L姸R聨l廞'ya3羜!U鷮E3悂篮斔-t噷攔A膚鲆瑴<蔘L-蚣９$楩裢R炮iR3N驞*e "℃D濨擹29吶RP蕳镇:M%:	迤-dＯ忖壎殜媘)O"逅.5 珳GH(o肼櫷胃%m丂25  ! d   ,    < 2  	厞`!偗

,T盃+儻6D
誂叐%$橊菍5
ū燗惄ZL艕酖壂T:妊dA唻B旨Xs)Ⅱ
h*U猙Y揺璱Sh謋Ak郉婥->LXh#藗D=t逖X蠘Bu识5k挟酮妒5縝=9QプU誜-叇T0 @
搓毈k租螉k錒爧&
碟菳te蒍鹟U*Ub狛泌彑?T莻驳.q5鵓"E偑.u?啘臵誸曮濞XS	9阢h6*'w摦b
!@U兯员第症蛡粖. 虾苆鏭*逛袬萝*臮sp9+遼错稪*~P鬓5擴v葫検h傏俵xZT唉Ek	V5
+T數V}濒P*鋺" 	f蛫"Sm启殑rEs*~l補VDHn<故r鑅Q郥謩圧鹳杅L4V!祫袸@a6込珷&醷MAH).F沜楔$+zowy钁s旉),鑡4Ρ樹椢Q mOu哘忹-(K)[Tq葄辫QM陕
z<m,鐕鷛桟崶c*敭倿嵵惂郱}r沿{蠨╩u怾桁n&m剻 SG_磤X9g!矱e笝乭琕涰y计翵5
y殯V褛k-浩Q船欎沒%K狏Y舎2丕憓婽淞"j%tj^妡袬-s敍LB*hM侂B呚RxC12U(魊^y伔,珨嗈瀩Jh`NtC慓m2[卮慩 綄霫X+w濾S;鸊s谘`缤氉`茛o驻闿	嶇j$Ⅶ云MG蒁1
) 2J豞m袴\ヒ騂栺阨<#X6,Z{挖(<髮3じ䎬2S糛.鈝⒕,XG[%w	)橡錏穲疹淁烛鎲?cEe3\孋s蜚畵5招7鵹	魮U94=o1062咍c㏎!6k3hg;甂洃遅Rb竂loLrk饰&狇Mr敨k疣5* 7@Y_d2毄荸jMI螲f2Ao_麣?9-餾鹸I舝ve@(g謕5 眰駛F霙"﹩P&k麠艸t哎$*楻衐5L":闞n铏/Iu蘺 p5精8"c沿P妯T蒕瓾曇n鈼婁m涒T溓 
nY鋮4f?炔鎑础jD漅J惝6'.阻詪觢Q襳' '~铁棩2单莒VV毢
诂\\猘%5cNL{T鑱1珋Z枔
h紼2g@去嶄902壦e24+bㄣ玃r?\#%2='嶴9剝2艩4
X裍虐"髺鷢+(B盭悛cZ+W鞷怢倱1P"I嚉*N覯玪	!飐蓾褺A1h-J嵢V? f,嗗++扔C齜0=擼锉!HI?眡+庩~!腃]伻蘑&2卛眐薣6,锤TB鹹*~鋹媗d瀄
揭U彰爁	52&揦P9陒癥=潓1+螡2璈5-":`嵠]坻X悥%廿l固5F>飏*院／s\凨唏躚T/T繠Oi婼秡菱*yP曝1傃5T5X(g副橂k懙椑*醆A騾袠;`蒼W.,榶!良壞"U谵6拰	桀铂訏玙棃藁57 !    ,    < 2  	鮆 獊
D╬`猅*漯 _湗收@墔<r\缺c*2<(并IC狧m|坖釬jDy觗C.mj4T( @F2f?5鮴枇E6M蝑傩艐"=jtlY@妁沌弛獲)tH,*逛1k呖~(n膴衐艕Jx裛e玥轑-[襆钮鄹(sl閜*V:d-Z琔玝h圱有Ub@濊戥O甕?jM妃o燯譅E縡u暄甝c氩鸘﨟}H暒b;{候簕k铂
萙+碲璆鰺?BP-*b'|骾瞿[伆掃,赚騁!(T圱	敃G^塇UL!U|+①f5池妒I~偀叒l庞C?)7EG+指XE 誠g輰3^邮*笔帾苠Q\$W*;iUdt騣Vu衐H_ 就$嵭≧+ "轠=鯭墇^
挷4铂rH濁v晘r鍀驀A?Q\Umt盄`襡跬蜴u=c%~麁踏誼%vu^Ub$4玊|er$vk#u辢T[莸欳琵敡M汮+罟xetun1i\<儫,lc輊濰A(ㄕYK+烰(!UH萉5u5WK4f衻:4'Y娴共(堟羛gmm{衳蒠织bR	寠*颦麌{HYCgxZ4麲y鴣2綕Y\%W绤鋯霋彦iU鄎r(岢寇抏橞vF鉀dZ哂~糗骦krв@]jl譱3慿3 [ iM譆3*c=
)｛ 2噬*3L挸隧嵻G 	`;驤譟彚󃢈C氏BWa贃朸詴r.M,2)肃毡R
D<3+屳)w}梔$;槚怕38WW,熏]M3盭S3w囅"査t*涫夏7婧Q证,搌鉞3L)/煎絙骽 b圴懬C=魃Bs崌砡e<橣
J犆奬F亸=黙蛠_d尋&@壢芼Q=:著础潓
)NFb靖E*p毜擾3(\Vf5*4!a{觺覑a琭溡 鈙崳DgX亜F4鵸f儊蠾链騲萓D
UZVxR濌収峔珘mq賊#·f;XuZ.";瞏厠"!7igWL0%HBQ桅Dv2'W汢旔摗Tdg;m!W垪瞲寞d"=笁Q5n
U>1*弯f蜡	$fR%%1箠PYc	兀烻Qi覂8伖%訝>54介T趇E5V厽X愪y$孤布鼑昒 b,*7!从&nHH愌涩V鈷截=襂< 臖,涴≒v#2M縭BG界:弲*Q"癇J崳4蟾磻苅_@M鎔|!E_兩壊偪鬧
Q繁0kJ*`駥跮(L姸R聨l廞'ya3羜!U鷮E3悂篮斔-t噷攔A膚鲆瑴<蔘L-蚣９$楩裢R炮iR3N驞*e "℃D濨擹29吶RP蕳镇:M%:	迤-dＯ忖壎殜媘)O"逅.5 珳GH(o肼櫷胃%m丂25  !    ,    < 2  	鮆`*W匯z*绽亝:D8PbC6\匕*SI\1$BTqc薚咡栩#虤"5倈H觓茢+^艰阛?U騪'FU度D5碢Q伅宆eh2!G/襹b暔V猉賿'碣	/$豷.財Z	Q穙薀恆6<Y瞙貎q罠+p僳薶旻U痙礩tW	t(*k矹璟P @竡鵼!W滲+庬h%!僦珹籪峺sh筸G$J鈴58＊j拫mU燖蚲蚮e鳕?们(鯽羾U挪&K*@oI迩+蘛s峼C墫buRV=憚
,萧W,仠e卥-x+爆捠1,w≡Yf醋@眃╘嚝艗`s
颞爖q垈
&ぷG巵U済YV,恤肥Y)6g+稌H)H*傚If錉O巚擯葏r錂w枑珨hye!G憅%t誄5鯳4蒩筞x;95懅個Tw]pE厔殾綊ayi\渖銀杠5&捩Xdw弖缳*R 鈛榞4WBU閣,菕J=%拺i
y侦5鸰|概隘6l附yD幡奸浘&Z诺珼TT亣経詪H銪褥DE芣~瞕竗5堏.蹑慓Rx8|o-B蠫\葑汳I(T!占6%z睱)辝泷囀yGT垃鍼/qv>印x
G印0,碙鸢!%.頛^B*:2)(/-笃鬷菞I%M,琹H5蒛aeO4l]?髮3ぜ0炮ij恈tsW>*r儂V鉓3p套y=l釺UiC彤蓫捱51承砡5蝷韕灸vET媑6,竻gu閠yy镙wSQi!檵橅Y虋,侦湝鲁0[/w5-<x|>貽5瞁舓仳
㏒XC>t縗/M;捙F
KVQ+6d& z苊\喖韛#決<虔腱簔4ns捍趟^{孛騏』P''h訑}l2k<o 魀:._^5瑻m|I抲餋T@ヾ隨5 a鍖HZ槈歊 釻\樨]栒瑗B鼀茢B;@Q#陳あ篪(H駛`切)	6% 5枹硎T=J憿* H=礙	＆蒌 彌扖}u毻30i圱 򿈮D湟磹<+;$㎏Cj敎)!Dh<OV0 贰X
Z 檆厼衛4Nr裋r龄詥}岼鎮"'d]#邬觹睠3jN$ャ巐3侃F悬 
仸4q)葈$浖黚?J銍5H-`裺9崅2[G滄x:Q袶銇F磪苘7Fb塪n挄扝F"馅幤
q鰤'9	bbtr硾崪苨沦,妞 ftkd-鑱)i.錕螥1鵮	]]f)zX蔙謷瘓d|炑芧挛粶	50宔躡蚡哰y㎎笯髽慔&II颔V-牠b1趮F癦熻:do1	鍷X偪钬JV湜H:髠曐I腎娌T[恫寛%蜠/+V臀蕜/┱*Z.	zB(M !    ,    < 2  	旿 狤"(蠻獓
絙0!翀S-*鳭`!*誁!獙埵$F俒黮!D扁蓳rY桎菋>A秾0釯
齌di*D鳳淹揈E奷Y眊N侲Q奬Z匥=[螯蓸抌BW
-櫔ㄋM
湼5斋-V産鍙头G骦鋢QdA;"恊薣>俣g輿\A鹟(V蔃Q"u5燯=斒7酦婽ik+迩728燖朳偔p福?=,芘
I9犔昷} ?}媙llh莕MG巪lQリ歇C扜y踯l8峊贎乼躪-葎謀c!+*R@鍚@6)&扠誛*X 玕S釋2ZX,跼鍡d^囆h+2!乗M叚T砪[軇擴爙tZoTA垳5S什J K錻+lj枨r^34F=杺W珍鉆<,諼硦UR,J粕J,⒛X! @憍怑q佸UJ6A窲燢媽裓3屺6^覬,炞V婝嶈Rh敀!莙奻孲鈑㱮鐚雾曏c*H偍葂丗s珜珮E坵ylH彥tj郥16P盽軩+屩榊叄珸U癒E楯!閰覦x樴Wq倍)4衷#Tx笡鄳GJ酫卪吁6/P<9t[珐燯p簲K)耲)ox)RC}Y鍠g鏣5腥R+4h*.耲1蛉名噄媋谛%dU z,5睺1嗷@A(獝3伸驿愃T7駁nけ丘盍2
)<銓謏麧<lQH冂Σ@cE嚅>癞[鞮5踩=嗜
S昣Xcs鵫倨謙,鉘kw,諸搖軧雺盺肚覦鳺M觧x~=娷r揜蚝斧%*,SVBJ 溨摆姕芹W4[T幱F
hR\椭 黥*恝\飨?s|F:烮Mv,r湡K& j,u	C漅秗"柪,.c糝Ze(Pc财, !9v9l@As麫ko'歘B镊	B鉎
瘍ハ9獝E 銭g"鸤!HFV"豑V◥,X-(C錛ED6e◇實3}蒩膪睠頸zxM崢=p!\8S湲j皞
vJ彬$捾
B嘣吏1Z厫5X=/T鞝QbwM匷E洜婾拟猔Eu?i峽覯邁魶<洠懆A収(Jc绦ざ"腽-A
蛹V<瑽w4勀e弐徺疋矎xe#4!aPe∕娕3鴥3蟵脡侅("@2O埲)KC(弣鼆柢=d脘豶孛Y帇V螜2銬夗-b塬撃.挿Q}b废 癠苧'N*瑝E慤軅輊6
垽诞"9濫噓唇qE*'鵆a磋ah疡抍*4瀕R(羲駿朧
[00u#B)`棽o1,勧黿8(瓾lv:j愽v誫罵 I醀涊渾#ラ	t@楼滴.hm壥dE9禋魤抸"澔g1Z罭怰C@x覔濺)琕妧  !    ,    < 2  	旿 猈U AS0斋鴬郉E]オ8誇;F摇翃~养P"A亝:攈0"**m
Ty肖荁2W抹麓
*\騪慖QでEr惕0'I
!苐悤*z禭鵦e藷塧+h攆@崋,箙,S.z!kEO暀錷HoP+EB$仞i[鱫灧Wv9rg省&KZ4	ǖ胫e猰捍J[衃M
颞i诈{⺮璧m蹨蟰迾.O	3b禽ㄚgL&|8塟$}碘WQA韑栺V鐵熨saEuTG7呣pU*謀3+ORly垎瀄龖4`{魷I^觍"^醟2籽"Wa攼^-4Q$〣b儷(H蕚
毟蕪玪啎C嬱URuYU袺["59H,?茠=^%+#N5呏誑d4%豆e悋h	 桞'B,5P54╜ 嚁B5寻掋TIPozJG拠?侃U*ZH玕鉪怳d*唲奻k鹢g揓4*	IC:帅Y1QQb[|T(AM/U3*U(+P+y`{璖腁藶M.苏尐(5Z
礝莂y鴳2祳!rXd_u:,B踚S劓1
o絹$矮-嵿8犘p垺Na[$脁TA 操氛躚W񸀳NVa蜖秈腽gB<o侫.k矴C驘s〗颛5:绗r笫4*<闾闼 蚳^,Q93m"B鞮5P~]r蕗"怅gRz肆褾秚鏏3嘩鉒
囁o乨4))竸饥. r葿wg$<眿蕑樼h榬
h翰磱5蔁	-羯
c}入=:萤]%犔) 諨袈k粝锖圠榐JO苾珪H8Cj冦磙凹藳-V'u5]赣
1忳箸Fc煰
津2	舑韦Js@Y凔S铘`+@<a3"Ｗ迭 Yb焸B蘃羀4信6﹌0`R癇峩处X鸉yMX2瘜9%y咉Z.0▎茆-j擘翬倄峆S鑑狊昞iIK嬟 X%?E醝茣?漣P熉惇簦鈵袸瑎匫t$囍a[釖嬅}
b虍g{鷸慲$漫垊(癭P塮衽kL5
鸘<徣闡[XV奤浍昸盉k冖V%恦:妔贖It*腳栓▍-mt誉4?爷"爐蚘斻旟)瑽嬡c灖-y{擼4吐櫫唰3鵤^Q枟艦ó1圱あ0H_Sn%k\︸J%呝杺3*鑴!m譀,1D毵M)g褍r温腦1#3闟猜w藒/d 栋視4煸f^詅QI]堿x-鹪d2)!碃枈唙2筒/傌宻a赦D讍6d)蔁i劃?俩誨r祶_亼P,檷┈e玒} !    ,    < 2  	暘罷Q
岖叏F4垚崂]5$("肂	喬x戉+Q杁圧U!U(:≒!脦潉感 M'=刃*@咼
*PR@ <8r蔠$劘:郝 J:t鲮叶JUq魵j霡;毜"?Z%u!@z[膛l[()V1酔篶"瑙奰Ε5-!?Tx②q牫,僔惰棩鋬┒x喓敪軑醉箠-ZbH嗇X(銆BoT4恱q消Ob)%O[C\9怃怴蔻|rA锨峽嶢%F?譟駠YT]waU汱Y锣W"榰~缜俇羺f)W覬墑`D5Y E&t[l絍򴤴厞F堅M槶窜dYG<)K=s5謀邮*.齛厔巺8悏	1HE4eC猉$4职銟1y,&槏蚘4rE_Z呈!烓q*|)*f^論殽R|枳乺簵姉睤鮀  ii捬\檬!~ jM+4嗆k罱)釭c岲b楙^¨譊C!I換鳏崣ヂ]M掗膾V赦e U膀%+l崆aj1
挸XV巈&ep阧伲荲盝扱U崆鏥亝	葏j,4]s4-訧5憡$+1燵y橇U棅帤諛c藤臏A俴蚘周陴
W1踩ZL'枡芍怤]B悛椫x咷j~溲成$熂癙噮%Uy$"uu5\0矟U亣蓎WrSqad俾6sC0莌舀涹楆*\rpB
)聋e漰d碿ォ
艱04U<]
_](<硦3q淈锹旐k	eSl"rR,`&+!躳r;S5侠孽6 輸
T《gNp5)宵[3碿眭絳煹恊劏銹俍)籿仟!0埭8觶=脋揷7軯蟄N佑"ajv,w躸sME蕞H韅Y佳t1H,!&@岊`	驰垅W苍H?畴史t-椤俇9, 8慟醡A硾M,2Cstr恄漝\謝5$!?榥a&隠譩#筐g1X@
1哺嘂fC%p{P,#褖寔漪?亐蜬闤樃鹆8%4g佌箕訕&pp守穃癔hl瀶啒RS+"柡F梊(ss趧H恄誔洬菮j啫+炰F閻腏亾t
/YQ[呫X学ˊ%V觻蚊踙I ;9蠬|]胒惷2塡挖昚X挗偓膫;VN媂计Fg醾檼((诣A欟鈻y G:'%圲旤侷
蔽:訦=朼Pu多0E矀<W円黙V8![%妧銫#蒪!魋U郧&	hc居?TA[023愎:!@跆
缘-驠3*!e㏕YB;嘍蔿:嗶闙	J!~Z叴"*Q1篘3逾舔-s覮屡藬.䓖j⒅Nǜ5W甶J!%9陽+	
:蓱鄿-my!H駳k馫曨|d戂)杺7Y)^驋Tb哫 4耎敇葢~雪R
2!鐳Y]鯡6礏琑柶董衮拧=Bi*rG=s=Z黰pせ>鑽	 !    ,    < 2  	晩+,tP!罛	簜楯!ET	
ū+ 1綵xb_Qt叞牚U蟅aLHs酖';堁aH;9:,鬜暤Y赚]洢T)+k睼罛2c脪4鳖え萭女cA籉鲒丐h&mV礥?M|篷釯T+Z讠d	鑙P趷嗤674H3睭棽
D?B冝鈾
@l揃砎脼w钉笓j遦踩
豉镶揇2魢惜):U嚻f咑Z4@1妏@麃*仈[{Z1zNU鴳
鮧伌鳤u<唚後}g厁 䜩
iV5﹉u親蓖栆嘝醄!yTC )鳴Eg濽q趙W豶汷=鎿I瀁袂i魢1淲聲棅奜)G誨嶔ZC<鍪嵚菼X罞y\Yb嶁aD葊
)條vQC[歽7慥"yXQ厹%n!% y鰯,瓉艮c8褿ya敟g仈r垗'灕 鶈憌lY#Sc謡型W铏騎Z珗鄩洛鬐蒪*㏄碦N/YBAF漅圷[* w辴渹v覮G:]歍R舶B'(睯YwRkO2JVT5褦隄[麬!*D殏腥R覣<磽眙Ln玿#嫜俳邬A爌埆报B瘠怭(xM胮v喦x鋺G藊尭*Ζ姁g铂
N8蓤n筳蜏#V敛藋鼞此TH\坸^萠
黍L错甂枞颶蜜qM滑thJ'硡 ~g*wH5h疀鹒*4%嗧G遥愐,=b途-F)燀96蠎)%KiU*19"1僄 e㏕q媗咤靯
-蜈r!滸呦见*伋<蜉B潱︵Ч值nKGIA3卑f燩灚7PK
5墩￤
a绫7氙}員鸏掊,p!硋d}VF]┦[?J撸剢5燈裶閍MU"F塉陳萍杯lvD幡█剆燏	X鄓E.recY賌VB愨b9y単X%BM4擶(g麗睟g$4螏f媿XU|$IX(:枤f!*霨侧嵎$/狝.IMLW洂(僿 "e褂锳+2帀蜗翫UT-获hBC5V+@AB塯謈峏8$S奄T*篟幀,d橹哦8荰麷z笅蜙
,捳'谺u圲壬[蛭澕4'8抰/<S
鯐丂
Rz窴*穌,U塜v鉄p訢)<$攲畤@lA9褠幟F+ hK泮蜪Q"!sI園秵娢h麲\\
!禝67i菵鐂貍v諯屝J(腞a!旽s聶g埨I -寿櫤f8N祰,cq
殐(<昪悊"'頿9?,!V叏Mj.4*f骤*AXрw嵜湆3!賵C	(坳i#椖,娐6y吷奪羛蠦埪!*X猣a妑b1搾`o&)`)F澶/!K4軔艝 鶋`檿啊l/龐Rⅰ膖,<+蒑雀莫ㄔ7塃,惙奨tR閄,蟭@澤磖[塻酩wJ妋躜挮冖D堕勬k3@u:耽顅\婡2屟JG(ㄥ甂(貮 !    ,    < 2  	暘羴*te0+BL!	*4啊@v$葠`肂2獆rd!U6RTè`JT捥(漳qj蘗PcM崺`甖Uj┯ИT!鯄pbC2憵载愥L巵VR鲂O椘bダ=櫔$袳:Uj*/牽>e凳赗Xyib蒕a撕鳘:栊_+U狿┾鏞g蟍瘨Ux3X痭M8t#Q擳Q$鯬)@3
kU颱猙礛'U衐UcUm[jU9箶m躑 簐mw铥志_60,姳朳硋聧8!欚"A薬睏篺-褡湹*輩譣4材B5g峽优FHqnt菨w涣h袂OTaEXAs*癟胉x糢S]X┰Q齛+郵肑灔2鈵lQ艕簠'4鹿  WRC3聴
^4鑓橻\鋋`V(Fb [狰`蜁UA费n~敍慥l&fWG勪H冡モd柙谽絎T\ b arQ蕁竃Q&DFhM+眲 酓y鞤N槱眗鶪h峸桌@!.扺輨E;獄蚽詩!X齉伾蒂_ 为欽[$P,1y徿A3醘釁鏮yU糆}4岘襣g赺舶翬qT厗,弑A9a訲Ga墨閲fyl唶f6钄趓锎pTc峹綔
,黸"萙鋪G<徏賍疥鎧kW\R\:槞<G鼼~餖E貯H郧襘"嵧g%Q"+I湃U	$蟄kη葾R厷肍躧2桞矂4諶廈* 2
誜S萣ヾW瘺HS敱5蠿篝憍宧38C试@RAE容氲7*2-1舜+U敻3悵愹寢 -on*IW!J捥6悿8搄5Γ~u~玊!^桮^錝稻搆失4U膒5息?髮3珢瞲!僟!筲y^W腢#崹bX纲銆4
脥bD糅4G伛Gv 韨拺g/勁4＠H;涄溪峢kw9冢(粤焞麧覥B?ゐmS衘浒饑w訅摳Z3初T鱐ǔ*D十盨M8枺榡牐4畧?\餢F朆恑GS 嶕鴩;垥拻揚7I蕑剾<櫎V!爠撎(pZ勱VF邸佂d蝦柼鄟]跼搯贐悘袢睟WD揖増1ò誣 駭=`,峌l!+9-舀幪襊稼SMi8啦簡e崊戨9T欂晲疟b釨霹/懮=~芈T濧嘃努墧h/=饸+ 釃}蒁樢儫巘稠錫敨駼对応瑁)滵*襢懏:soB=-R瓺4ⅰw増`[(zXQ臘戡9礤,〣)啷RPk⒛2P,P
'*edM貍偅W0KP涤##hr缿M酁KrE}E蒥*虙烱&竹MS3W-0/捙X#豟頤帾ZT=!N芈坆 &眀c誜匬B睴t`C湐/⑼`鋔醦l61h帰3賔%懦f塵Z溡稅R璿赦最懁iKT撫F厰4孒币稝R欏+\3!'泄w痯1紞^`XLF蒄*門E兽馗w"畖颾豙VT !    ,    < 2  	旿 狟S*40誁
!2豍a脙r誴aA	r<"狤QM|h c蔜/~|eS'JS朤鵴`L橽 )]s嬓欰W颥H釨1~橐痐痼(AE&
蒔g苼S鷵ti*\頩P'U蔔}hV鏏y"尰2錡+w#啐P!癧"梾況裰9]h甊+獝?8曵9hQ模璿
駁*戟
d(〤乂Ru═*皔';d抔O7;薥ZP燙q摄蓰*@囄驏汀失8罒棔*U恉*[踨碎鬃zTa橦鲄泥U凊4恖H 琝ａ5铂*⿺襖Xy罠}8%贛T躳掅5謑Xc嵶D#K,(&
B\4Gd*x,阳u釘8F谩" %贔嗁v8y+侙迸\1狁1R>.禇b鈮C讋3馇劒e&賋q鈞HZ闝銴Xe4褵酯 D緬歞yAYLUd崀J閼b]h鹽茎姉偒}Ux~戺噈[伾U|4ZFY]U諥匱
殕,6gA鳹G(HE鉘领竄lvbL9睌]奿眻諥寢G浔锞U郠	$S_*ujb!仚>H[榢./纗8誔凉妻糧%$Б鲭rL鹮nY猜,酼媓k哈j(=J SRjJ-*2僜嶔YK2緾3螑怛綣w┼lu-PD┆襜]瀌uW擈L5蛀濘獷.羟zノ襊`陝bD濁3郡85誸澅纼T賬]TH=)跆2繉送底y萀顮鳵ui召	!)盤(F矛1q稠e⑹℉⊕}	鎾庻6`1UE{賀椶⒉芎M豪U阅tIqq<璬Q腞鲔]
躱頣鴔b*T@X润帞苨邇BW(圽y傘@P
謤巁X鋳G鶈-儽軲%@犉
%麶YEA颾涙瓸鏠Y * =l[仳嫐A迪-蓳螹庖垢"C謄|虬鱔!<紜狓:詐﹣趄Eh
ガBC:b*W;,tゴ=Ia锭驳狸9u,6敗%3\感5欴#⺁(埧
擙X'<p344t#'屺G"[p抻%1剏t	O栆GJ;=釷,WQ峌4莍JAP簇&v
斱e.0躤,攭* 眾銊l/亖X諯桜腵x
敂C08#%5(
\lD-笂?)舧桖烫|慉袼嶵猇XK倃驄LZ矲鐳芻E娦娩慴A7v㈩挓癓勠Ｄ4薁姲DS賰L鰂柳2!鳃Wσ顿酳!凵fV@檏1mkQ*麢執薿^俼%煙y5;j!y〡	C<8誋Qt涪偂砇:瓪條鉙盺gOP閷Z'橵掇~oQ閂 !    ,    < 2  	旿犃_"*BBr坖!E'斒旻侱0と惎BTO晝)q#蜌2S*詐aD仺"未埿e'U扸墤設J!冝糌般巍ij礨ue沥L*U鷩fO8覸*揼*ESE[駨乇V辈臞俟卼v$(Qq2撒蟈醄孯.屯W+J蘆瞓C梱*d枆协诗	Ftq砬}搑48 偁	簳蓂║c鎏5r*yi弋cU蝴藘:*憊TQ9~<桘v34熨j|箖2$闃癁-趀鏭  r|
}Q!DY曅L粊$UR穄v )`@6S|鍓C埮7
姹卲R 仱rP洷曎w顿Nf1柃嬝*玊a$)噒槨`鄎F襂Z"梥鞘5謀缅5U案
 c帀鈺5WWAB! ^z9+FR賾巌H)梺D閼XZY!X^,^事
 ~D5'檇R*6跰X崋汦q拞*:銰KUh鸊傞!柢}@J垚ˊ蛟&T鐴EI!)*j欳覷	_`-'S縑丟~ [挰籎撉)ty瀦$誆E砚馟r猄P&&H)邝G[lUd+*心掜襅硬[AMp)噴磟;
)p,|鸲屄鎯q%]B盅緕U(<硦3UXc+脂掦昆(%㈠蒸觭忭7恈渔馟'<S5蟃!K7W脢蘉1囱!汼!E棅浸/)文bM55[3盗#
;J棜B
I菃3熄R,箱|3扽銊+誟碵1呚珛伇芐<0眬h2B汬!-逬Ь.氨1捼輺鑧銀諜傾5麧y黌-籉.靨 骀砩q~[n`hEm炅"~)葋梙鬥YZ騼慓*)倬KΠ哷0鰄釴"rtuO蛹_N~ b┇GRz檥狄>"睜bK^耂l"@"}擝樃蕇朇峠~嵆奊|礉-u㎞`襙掀&懰J@c淏涓dN諵煈bQ2閺C让B"惓蠮=滼鯅I
慪罼宒▃誘0c炢$婈i峩竷D頳;痼憍&樫嵁 a$葖鬚<'痲"w?$'B@c瞿=3變農憏檶 p!ZT朥犰%812Nw俋3^Q4曥M袶R(E5蒜帕g 襛羌漉捸!k垼$R7顲I.彬辡b靑'硡?翳}熁蚙騠4馤I9┬B$z;)E<B菍鉘蔧や虌嚬AQ)Y(eB%\"沫Q+9$钬R3*9j鷲r6樔4鐇Y%*阂|*~礮僗橤_瀿⒐|hC垁  !    ,    < 2  	旿 狟笿
崂B_溔愨D埁$曾p!AAVLヱ`苿*dQ`藛VT鑠fA'J呢p嵬q$Tエ*1烒)$1cMA鯄J*L櫘Z!牛`aT5d*3阃;?鯨鮣K=[琹褍鬒尌[孹3╓督:懰萁U 亇BPQ&裯鮄.翏Lu圞橛!斾鐒>	uU短_]愶呔a鋲QT苏3逢~x!H#)
; +U脯á釵臄鹯
詇鴉忤*cw=:p皔諾|9gs摓裇L冉oC丂fkn=BVqdUM蜋7譧! rHF\0P鎼et*檷6昄娊)謁X!扞f舦.&跧yU5鐠N*Mt葎伆hH)嘍V匽U<!袀"'T(幋b$M
 睯 O 迩bP漺錎嬡%慦R*C~i鐞l!賘#Yu蓼Hf佫$洓b*寙y轂c湳輨&n+!sN┮瑙廁 迧CU慞鸛^tR[灝*<肑,⺮AET(イ喿闡Y輪Y*灢
4比b5謾UP嬊譨a茟N8-洎澄B,槕捛y霬E癿mzF氕
昹Ae稏*螧s5瞈s 证薾~碖C9$忻昲`毸姜,蠔鹢4乗c] ０祟q兡:駕嵖滋騩莁倈p籙寳豯i*~М!颥讨D#p 衂鱈入R{hZ9UC穟V*兵鹟讨x1樜黴3g6(蠦XUeb*胞5J/蒴姡鋪紌#薢gv瑝鮽囲硨薭.覷Xg龊~oQ搏笫=鱳奇:烁u"Y晩esVyVW垮v皁憅q哼U錵c謕b誶,"?k╘鐰懋U黰僱^%oF聸▽^h⿴韸▓nO\惸L煐(顏`&嚇奤鸌Z圮(诺
挮P! .，鄔圕	NE"Tu鍹Qj*@摱4炝D#僆!B踃\* )侩.萗寖^*灥+1*庝%MHIE徉b##	臏s鼬'T 膯捖@{郸G┰}&穦A腂臻Oi*(.岕x睤蘿FSi蟵庘*`!爲r'璱哶の7薡慞kP樏茶蓫S厾pW3-B麤殩31!0J@ㄠ(:众罡nE銉蔊馿娍3^,+秚恴]翂Lz摑b:/J#櫲LHV蕥涎L!䜣潱貐8蝰慿2櫌鼲S羅!黗6r䜩淶X.g瀿,5(<罃I%稺郠U詋AUen1h.炔ю腞iZ<槠L6詬|4Q !This GIF file was assembled with GIF Construction Set from:

Alchemy Mindworks Inc.
P.O. Box 500
Beeton, Ontario
L0G 1A0
CANADA.

This comment block will not appear in files created with a registered version of GIF Construction Set !GIFCONnb1.0            CA_LOGO_big.GIF 
           
Clipboard            I:\cal4\calb012.gif            I:\cal4\calb024.gif   	         I:\cal4\calb036.GIF            I:\cal4\calb048.GIF            I:\cal4\calb060.GIF            I:\cal4\calb072.GIF            I:\cal4\calb084.GIF            I:\cal4\calb096.GIF            I:\cal4\calb108.GIF            I:\cal4\calb120.gif            I:\cal4\calb108.GIF            I:\cal4\calb096.GIF            I:\cal4\calb084.GIF            I:\cal4\calb072.GIF   !         I:\cal4\calb060.GIF   #         I:\cal4\calb048.GIF   %         I:\cal4\calb036.GIF   '         I:\cal4\calb024.gif   )         I:\cal4\calb012.gif 
  +         
Clipboard  ;   07070100061eef000081a40000000000000002000000013ac038a500000ab4000000200000000000000000000000000000002100000003reloc/servers/images/caldera.gif  GIF89a0 0   V*偰屄鼛L聢埰拍毅魴#7枽星tぺ糳V萎匿篪烀玞劮)g捗hㄞdLCi斣僱赍胍抣轈I%7碛宿(牫褧诙暚杷浙篚鲠s]寻拯陡簇TT酏鹶隔!w骨"48僬鼐呐顓d兽+B{出䲠t劊雾泥装-}嫨~浧*gⅦu\桧ざ24疃勀s斈*咎璀&偔譏偧鸼]颲VY{籂羫g蝓DQ猂d-$4D齾曽墼'2o眚葶鞌汨溂晡荞垳莝溚"."#7蝽瑦帳蚇氃N嵦娄膃尷+霉诡Z`馄瑳顛lM}产}f覅岉葑V吔+7牬灬s|嗷陪7齑听lp鳯Y洖"Jt蔉4.a捒5D蜶4詔X薴Y\p斺ⅳ銚`0x烘铂2@熋皲lO.L銍h焉\b蝲x垒鬉兝磍h嵎鉲鐻O頊宏湪*D=F鍦柍DB助=I譡Tn村{`鄚嚵=ODqび,9V徫禳痣挖禴D茠|侍犀价秡斠枻芯剽栖e}㈩潭j炘q尭唠瑦芓d辧|謳t䦟劥节臙T缔=<炈择"$1辒 >幪$V堄h^詞暽鹀t䙡堽t偵涸⻊tセ!⺄`+䱷]h鼫z迒7y逮ク,┭15L擖峳魔77耲d煲漕搌帋5h熽:T pJd惈洭.F詺壕呢卧8!Made with GIMP !
  ,    0 0   	H癭羫*\劝∶	(a%啿1琇屓慲o婽懆唸B礐(}鉍菄0l-扢$T﹤A閽'竱i'磆⿸SvP#'
褋,!";>漎{+室穲挶O^簩a
:須R!囕拥幦\\LFn垝乄市焩>`8D銚缍蔮魝荧讍14蟅棁徟皠怯
>"<D.3oKP碈艽+{.淗`b<)YF'*9沘,&DH浆N|蠟_毻卞B-k翇!nt."与旔O黳]l駞q曕d程0BA;$PB琴!辮%#la|/DX$ds;7%d懪Yt1fOl盓0盾G3h$姨B5`拋'弻襈;t銰vt!2|埌[t#0騶qKqt0`腣℉:輡猛 -#4G澣4#-而x鈿t唁-糒i7W琧Sh犇3bA[tp䜩t悆"4c嫆敘x@媞軅h cA{攕=SLQ 鯤A6~榪0 F>q 聜+悈 銫嘴鄷G膆 2( N8S|芾5讇G>撣nqF4s@爲l皯Y#(E寫,82靶;耗辽F,程"纫0aH@/魥e屟(17―烫</惿!躡榔H 揙A鈩ASts
 劤J/<蘟C\虦h2蠕LU媩5D傲L 3糁肷8`.捞蹹q$爕9,瓤a.娽 P 睤ox鈱@窤,y涿5h浔yhd鵃3藺閏e@	`鉮cL0<魶	潴+<鹇C&&,0 ｇ2D皠陎f眱
XH0	饊栏F迂w畇!&0=挔豋 .L!K1*B藹 	溍d1!鏱S剙爣9z $$迁3t犮JS埨3@^蠧j犌窣	xQ c8a"磦捐0;#韶 pd!: 56b3该 F	$aihZ$ 皭臔隗僈tm:!1(@捓4嵭狞0&瓨&4褕藹 b覟cc鄝;  Tb鏄"瘧塋堋4盍st脏A\3$[V蠆(h"怈+癅	滯0俧堋XA*{洳葯.}!褛 爛班<~\蹐G0<$A牘`#睢,a]
U 1淏"0\▲!3$Ｍ  
,@ hr~ 孯宐悒庫i#U8G(
PEp蓌爈
P#0e4A繲 䅟-黴=\蝡F瘁奊琧 卍x`邎0壤舩.A_$wPA )槝⻊3啤tCYP	)h續m俇   *	=6皣JXb 摖l珋蜄賞衼I*螥9衾匽#抰.`)7鬮疈Dl Yc68V1癝≦瀬 \噶@你指/0岙"钖.8霰S) 6盅+lb陕檒监而AH+|#Y湧 17糀悅湣)8裵H湢5vP<栲,P lh燳x 钹蔆d,癡 X!+圓x繢8灐g剜6*@a厳 g	^;D牳傪巁x@覑\
墠緋fd hB饴oゃ0Q.$80彥wM煸&H@  ;07070100061ef0000081a40000000000000002000000013ac038a50000086b000000200000000000000000000000000000002000000003reloc/servers/images/debian.gif   GIF89a0 0   倐劼履BBD聠準L忖洫Bd症炊"\秊岅仑覓L曛涫Bt獠舔螋2\蔙勚f""$bbd趥ⅳT蜮祢受T鲆焘挻霾在r滉⒛*d2d乙遭F勣姶酊:l.\蔎|蔤拻擱RTt銎苕谲224rrt
TT鈿减涸戟木LT舨泊酎输燹v溭绿茷存涸襧斺偆T>t灾幀綛t"\聄旘萝諶勞谲願词:t襈|钰漕毤觜陟

妸屖侍JJL茙觎猹闹B|**,jjl趩T颌奈2l艟*d譤殮淶Z\::<zz|\缶则TT汉件骠滢zぺj斊姢
T猗暮"\芺勱圃跂淳T蛞涠^|毤.l襷溌J|2d畈月Z勨b旑挻抟晕n斊6l鎺逮萝鎟溛f屢&d鏆碱L鲦祧武>l蝆岅掬\婢舔災趎唵勂颇FFD骀洳&\蜼&&$ffd熘v滄δ种轧蔔|枛擵VT664vvt逓疾T抖殆揿制叹&\襐勣捃帋屛翁NNL铑煲F|..,nnl.d灋淾^\>><~~|揪籍狥l蔉|N茴幖\猞家柆鈻傣对釰勎T綟t蚱苁>t钷濑揿颚奈6l蛑溱灱疃云啢T鲡赧输鈯挈.d潢阡\瞠搪Tvり禾鎮N匎鳇迒な\j溡T>t鲵粑R勣偓TJ|!Made with GIMP !
  ,    0 0   	H班纘>轙傊鞧漴3H雹E傱陝燖l菐35媉嶵鲕突纫嗉T鬡干撉>K5(@s揖E 淸賿='羦谋潇埑諛_乿脘8姃蝅褗髝9'僘KqDHy`暧M+庶﹜腞籞v::9闦鼠鏘7LW台銩菈6蜍,懒瘄琮X1唙{枠+7裡*檛X蔪7_航-S瓲沢荮>0_溩'渗騚或鯗塰j孖l栿<bb;/:袴坓転鮝D#5蚺仨擂#窳%7$e髷t憞檖庝!=フW0慓	夬慮A髉搹丬q	t鲂q7箟鲘)yX髞笴y|盺燖JL3Im聒 濦浼睆:蹸烢瞵r 3J8爜&$:V銷7"淞;
4O90樴?ネs	軵O戃b<&D00@T圕凧釳3Ih⒋ 
03 (4鄟n抎p	ZtX0X答CE tdA捛DXDG技翸E 悈*n緣AI攽+,磻(it*承2趮(
"PP`?焕移,"氺"+j2K/] 澜P=  0獷磒 /㭎了流. 须羗@}挔oi `孈脴陔)4`+/]h 蠧だ0徹P 劝  䅟i愹0F梆?/怕m"傽.1 袐@a p堂$M
癒t?a獳1䴓∨=FS -鮧 D8擶孞犮<@肂+寪P伩|>嘆m榏/}@0.,皑!J-@Cq賜<9冡='n绷=m<糑AP7 P驃? &旞)潌嵀?硈 
 痶a0駷4!ɡ+"
hq =p
\  0 x熲紈
( 胒紑G貟A.d
_ 羿4錉|m(. lu1蕍0a0
[2~!X  NQ`蹵 ;D(
P敪藇RX`3貍 逐燗繕*Q纀 (|A婤提U珺/ 0焘辫幈嗺e<%晘bW旭埿	 o餏湋m@+箬拋锠	蠈殀dQ瑦9D%歺(t巉L贖*g9洧 C<:5KQ瀫c皧葼蔨氞繾騋峆"(G3釶8<蝲&剘悏v詟懭F6祔$ >X艻NDS;h8騋w吉澬;9羷?0>[2rtK惱紁倇鬗鋈8.簟5@=H蓏d@  ; 07070100061ef1000081a40000000000000002000000013ac038a500000680000000200000000000000000000000000000002100000003reloc/servers/images/freebsd.gif  GIF89a0 0   !!!)))cccsss敂敎湝档到浇破莆挝种洲揶治西珑skk尬物揶谓睫破寋{渐kk禍湱寣茰渟ZZB11ZBBB)){JJ孞J{91s91渟kZ1)9)9)R1){9)R91k9)絉1kB1淛)缰蝛ZR礪1ZJBkJ9擱1孯1凧)1璟)sZJkRB刏9渒B絪1祂)刱RkR9刢B渒9祘B1蝱)镧奁擹刢9渒1祘1苿1寋c渼c攞Z薜{sZ9B苿)匹sR攕B祫9絼1謹1螌)苿!迶!单尩渟瓟k瓌B茢B锃B茖1茖)謹)迶餃屴茢9逌)绁)鐪鐪餃靠麋湆k瓟c渰9芝B绛9绁!綔R违J芝9镏攧sJ频{鳐秣飳湐湱淡顼锃浇RZZ诛锏挝)11劖淡莆敪祘敎ソ苿湧k敟c剶サ絪敟Z{宬湹J劌Z尛Zs凚c{1k攞湹Z劌Js1c9sk{莆諶k凚k1Z剶湧1R{BZ{)Bc1JsJZ{ks19J19R!)B)1Rゥ瓌剬ss{BBJRRcJJcRRs191J1)9B1J拗薜sks剓凴JRJBJB9BcRcZJZJ9JB1B))1)R!BB)9R)B攧孯BJ9)1Z)B9)cRZB19c)BsZcc1B骗单寯B)1k1BZ9B宬s刢kR19J)1B!)k)9B!祵攲ckkBJR)1k9B祘刢19s9B)渃k擱Zk199Bc)19B19{)1k!)R199B19)1)1!)!)!)1!)!!!Made with GIMP !
  ,    0 0   	H盃羶*\劝∶#>l#眀60铏+#F弊頩礥!C秇钰)+驙+:蠑膖萬淒|A灩Cv&魢限*V棅`纏醄6z隙j惺>{騨趗晾"|趟鷥kAx蜍釗V钪#Ioy#o俣j 蔺cQ疁=s襔檢$箄跇UA0p#淌A觱瓡o搌仚眒)册澏j*悃@紇谑1冎v爫2J櫃s'廭7
襺枪\7y%麓Ic-偪す厂彏6麾㳠讽Y7{鯲0,%巵5磪腈疅>w莺]鳜诔k蘃3辤}嘆W	S=锔y釺s蘝摖Dm #┏蛒蟞c蘹,#7qs7 !j钠5毙3;.筇1龘F_X% BK罯d黃抏#偙,c3.黅髣@c<阕5沲&谸k汤22﨏C=髱=頻&A,蚤c蝩3巗愦风@uT銦婗鬝O9氛蓖呞鹩炡<#8zPZ8cO7笉殺⺳8]Zy侦嘘@<f祵$I)?輙j2.弛擿O=G3q轟貌硫X	
tM94昏6寝5圮騦y悉0Ω酓-諺脗痋iq`Ｌ耕=3?卡腘Z$彍N0(3司婒(L澚c5)h3iDv$揟b+ 鹗,蘦ｒр膒p饞k合勠0侶%廆怏$歭b呫2K K/P0q,O0嘵 &沗律)聣支4.rP:銨/CxL
-b*" bN!>斈6>裉蘩l_腵!蛩/1 iQih吝2比ⅹ;輸珯2fk#;T亞岙譶 ;07070100061ef2000081a40000000000000002000000013ac038a5000001b3000000200000000000000000000000000000001e00000003reloc/servers/images/hpux.gif GIF89a0 0   赃烫儡廓煪U_*_*?!Made with GIMP !   ,    0 0  蒊8胪`(巇i瀐靂H,洗繦q觸_払o d:慔x(1@垚/h怼Ew寨8`x墚(悏 r7礜腹G?縬kyb{4}ComE俻P<丗TvW俆C4<_{:K28RXD恮aО矲琯9G1Ix瞦窩b朏^^F兝x挵觸g歐虋擦螚踎种酱鑟=躟6仓 壼D坡妌`q魱<Z!+^礣:眐咨列刲軖E_氬yC`<O*52)[I#鷣蔠灁*W姳舢\h7]*s宑@]l翠5%KN4穜&脙Ni	| 驥i4-瞛菔但庄`脢;" ; 07070100061ef3000081a40000000000000002000000013ac038a5000005f6000000200000000000000000000000000000001e00000003reloc/servers/images/icon.gif GIF89a0 0   B毬勨怃腇FDj牝鋇<挝烃挃""$倐匎驿钴>
虙挃蝥糈谲埠破膄fd姠匂鲷觋旌掴魡挝鼈傯鼟掫jr搭铎ⅱ224疽磰簍湭揶狐侣鼁z|魡幠殮Z4骀鋯FDz蝌魊甌翰代揶挗勱挈种::<J$⑹將ⅳZZ\r种轧ⅳ鞛R汉紇rt觎*骀鼛我於饵枛纛铧庶妸趄鳇揶F忖霬JLnn狶乙轧枖..,帋岨觎訤
詾灉鳅侣躩jl帰匂鳇觋"忖鼕唵舨颤~~纛铘Ζ664捑t惨げ揪鼁瞈枽屍泣~~|灋洞>><Ζぞ炯帋酤鲷乙蕯骀祢螯揶鋿桙!Made with GIMP ,    0 0   	H盃羶*\劝∶#J淗雹艐3j苋便C馈B&q0亮!嚄0a鰄噶!7bD郼鉖藛=㘎#A$5 :D"勄袇-cZ￥懤	7d	HG糮罋癵$e4RrhR'夎傍5
6dr8涗W渡纆;靫貞鬣$9oX2烲eC2録l怌2ZH歚.J纴GP啒y淅&pf噚<y"梲蜞蛞6*M歯<8陵>UNfJ嶠y∨@Z0锫
怉xf惏洧艩A'F9$缥}!8蚵{鄎3鈭!bE!1C呠罤W鼙 2宭寥/孭a!x饤菆^ 宒HV窹w0耪撩徛Y\<#%@R怢2Y?b乚H!M)裥CL\:/ 54鹦D嚋AFk=壁~<猜1腁4淅G=叙M91D s.m剄1碅
佽5!@1杂婽盒*G藂膽*湰b
	榓F
蹵稟u &檢鈩9瓏阅霣jA厣褴v]t褲&鼒恞敯4I軄郺Y%V0Hy/詑{宲庎馚#`QY劆E圅YQ	W詗	x8B[蹵	3da厛[lA#H	'垚墫0氯[\30CU'oB趔蟃m粞H'襆7眙 ;  07070100061ef4000081a40000000000000002000000013ac038a5000002ce000000200000000000000000000000000000001e00000003reloc/servers/images/irix.gif GIF89a0 0   泾摸鯒嘄騱hZH:,镲镦猥醎_哌咭&&舷匣换獨殮妸妦}p}嶎vvvfff_r酻UUEEE=Q111!!!   !Made with GIMP !
 ? ,    0 0  焢H,徣蒷:熜╰J璟潗萺瓇J%R椱嬈TL俷?'捁B2"0	斏|H  r%uPr?Y`vy%s$}_`哋 % D欱`#Ce怐`匯zC%B殯C燼R%lCz胆Q厂巂#`奀O釜v%#E裈朻?$"昙荻Q[C尡霩轖%涞浃%">\&瓑3Va桖鸚b爡2X扒凜=y@琙 X嫝n"憢?$╘翦0笐s唫M!e0=豂繫讷\*%d(脥葌茳樴鐑S"  f㏕*潢T*;泙g貫5癮廖`y怀羂ɑ髁*g嵇`觅3犽 o\眰冁=8壁*O	|81迨2B梳P_v圉羴癕鉋9儩B湇0显='丨餹挿搀`K烴]簱嫘漌呔齴鲱J@救鍑孫9z鯞苊GBz~捘鲶脒峡繎  ;  07070100061ef5000081a40000000000000002000000013ac038a5000007ec000000200000000000000000000000000000001f00000003reloc/servers/images/linux.gif    GIF89a0 0   拏L媛聞<BL噔湎",zU陋|P却4▎bbf滥蔫豇宄
蠖^F,俲拗径|&黪赅
:&$$瀿\\渓夂纫茸智NRV钼鸡襆4號RBltx剢蘼t[XP蒇瞬肼)酞(B6缶r_喱斫詳620pdD歷$觋橘粋Л蝼(蚵	,"gjn移れ	贩紨攬MHO仝茼潞|蝥"檷塿VR8(玟迉^(也X耱艏瀐牑詽衩hef蚝$!蜿坾\氘侏枤燦NS聘殝_FJL蠛ZJ4獨d瑀帋愾鲻,,2矶
痪榴鲴囟 畮剖虖m!稊畖F.	紝fN移亩志d勃剉nd敿欯巉抮ZRTV^d馕:20笇$嫖tD>4v^<也d|V0DD聻$戮瑏~|J>4挹l诰znL恫爅VD&*$vz|尬6嬷敹獆葕歳TH<<8,镬媵0棠纞Z2:<讵4梾a寛t湒剅N 籍槩4様x蓺几痊渪藓4EC@延觕WG掭擐イ軡5.,薏D尉擵>UE)屎$$(ttx终讂uq$畘,妚,矌<钿墚$姒&廒涉含藓挝谰rZ4B:8鲱魩哾晼檍R$帄將~4秗螢$种&$ZFL膦j跂雎灋ざ~藜h獋<拗在胜怄郺fh唳婢手冤!Made with GIMP !
  ,    0 0   	H癭-s雒犆#
i" (悇靿缺#5,V瑂J3(!栍馄b2M餷8櫜鍬"-炧1+6k橲dK$Ak+Z爾 %Mf'c*{E<剟c侪R *嵤骗扙;b;唝赢 﨤蛤鰾ME竡#啽tB憴A毟ェ纴:苽B洡
羞!Y伷?炒纁慲"!,7斾pd3lp駣c0Y`Е艝怋Gh:乯dy脿I8-z狛苑=zA翯m0X憀郡斂lI竱ks娳B$t~`L,[sO6W2(2婨@W焯?愊辯G桓D@C犕$%裣J!"xS寡D憉宵皣{(
R简C><  擜寃3貾5外D\/dU=
3聐驢^朮HQF9 (▓pq1虒釛k疞5u#巿 n!'剓d倹阅息BLU巁嫟"
柺yi坅孉悢3<撩B8匂*g灷ZGE$誎.80洇p'宷聶-D窺- 樢+8E憂蛮湭姩)
&0`璄p丐b1绯wl)(屜fp伜癡詎M@q＼歹
!湚f怐<R6-慙#V鬮皽[l龟聎3.副 恅8|溲@尢9劑嫁駀痆擛.Y箚￥碐>磩 }動嫤n!#"I紉$*亐庋z$7叞乘丫yi>鮄皟u竵A#:ばQ.鮐O坬C2脇天迷1  @鸟Q-阡慓qq冃# 痞pI19|Q
訡<穹O驙羵j鋬?é*寍AJ(慓:褝
貮$M针饆 蕏b鼞囘迸9X瑺D颾/愸@鴡醚7qt垹
r%<' 忤鳳亣`.l7xB览g	 
2`:w\a纏  %攆凕Rq;兲A◢報9腁籣0l1[<x 噠淞s[2Q0堷(F1爫<悆9X,P嘺A" \9%@囧"騼["褷!辅瑐Xp6H绬B$繣vp瑺&鑷M媆$" >燙:*xqF+1衏笯QR多峏<b`";(:`Sa9d郖u$  ;07070100061ef6000081a40000000000000002000000013ac038a50000089b000000200000000000000000000000000000001d00000003reloc/servers/images/mac.gif  GIF89a0 /   !!!)))111999BBBJJJRRRcccsss寣寽湝浇挝无揶珑顼镲鼢鼢镲)!! 档 191顼镛珑剬宬ss{剟物琪无缃昼缔揎轿尬顼黠!)1洲绲ノ昼妻溒浦铳滴剶狡9BRテ尩s滅k斵无轿锃睫サ諦JZ剶淡器cs敂尌謩溛溄c屴沃绲轿s{尛湹飻)1B數s斵s滣Z{芞勣Z勭9c!1k浦灯锃界s劖k{k勂Zs祍旂k屴Rk璼kc岟Z勶R{鏙s轇k)B凚k)R)R)R浇妻湧絳劀轿Zc{湱迍{c勣k岋!9Z{諾{轗s諾Bc絉{顱c9Z)Z9)屛诛キ骗斤RZs灯JRk寽螠BJc剶茢マ{屍sk岟c勶1B{Z{鏡s轏k諦c9Z1R9キ谨サ飳溨剶螖ョ9BckRk!B)9sRs鏙k轏k1R浦到蕲抵剬璫k尌调RZ{JRs寽轇Z紹Z!J1J1J)B1)斘蕙c{颮k9J)9)91ゥ敎螠マ{劦s{璳s19k!)Z9J1B)!尩谨湧鏙Z!1)湱调キ J R!  岀顼镲髌浦浇汁ゥ!!)99Jcc11BBBZ!))999RBBc1!9    {      溒狡   !Made with GIMP !
  ,    0 /   	H盃A<8劝∶狆阿艃hp便,餒!L(梢`4礈W罛箾n贶审(W乭叄HlB㊣J AR,蓫<C瞗KH x0ㄓ剮t`︰%X!N
:O*4b8#菍*F萈Ax|樓
2惕捗擯储怞W"4桍C吺4x鹦[#嗠0 Y蕎8
J敤<9詠蘎4Ⅴ6絼0诈y詧D噙b2^u佼{w(憘鮱<r裝枟^聗	G2x萴顜见)O濤&}\Zr衙]戛,胤]份鳞~慩#E%っ/榙袵仏劍5稽A书A悅換鍱#忎#R谬
 歞両yVX1>褕戃=橋(鄓G饛,庺HI$翎&	仐X嵬>歌Qbhe俭2洇[蒱YD楛錋	%I&憳閸>检a楈q?栊#92D>[:溢烮f悳'ej剀儖鰜33C~9<AKR2
%賶檊殹0!(@8Ro窖bf龝*$稵値槈窺缺.洩&|*燾(埚鏇(麰醫R裙n 攘d	欬#Phs/忴~
(応a"瀤捤骨",耴w圔私麋缗孃疈$b!r凸,1m泽;]逈,j膛nl'8鐋5琚釬僪	丧鶇r羲0c壠4'
7Kr'钱R?L蔽砝C寞浤+哟@:P	赒l8郗O48<曼秓1-nA52>0'氰丸絅(y4週<O蜔h幎9'+偰駨;Ph懩壧潋Ⅸ图H3矍z9鳇#	-~J!(袻:匀尉42H埞c}樠3道Ci妯<碤c>1lHc嗋'嘥通!驱C贪F肴;蜤呃8B奀*76%Dp啅Bu0a翁羄Lc >票膥tcA謅0@"
馒U敹7R.pA錅f5鴀h銭!葛u$
p鞃饠秾拷蝔i3勴G5耇8軘伔豫n$救贝鞶gl'P1I7l"幹'!覌榢#倰痼Yg岍|仹?y+(嘋峃屢T*扑@旍DH嗱E< !H痛P-|湀d'v,N鉦謀-<潓D2D疳0汤*赋U'<軮+hi痥	鰅 x釤_(關恟蠥m"毿(e―'獔B 9V@帋捗梃^鄟4d LjRh,滻饛膖&h淟n <-I 罀  ; 07070100061ef7000081a40000000000000002000000013ac038a5000003e5000000200000000000000000000000000000002200000003reloc/servers/images/mandrake.gif GIF89a0 0   麋鬓髦魑髌锲锝锏锃铳绁鐪鐢鐚鐒辿辳辦謈諾諶諮諦9鼢鼢鼢謈髦R魑9魑1魑)魑!髌髌髌髌 鹘 镲麋秣珑麋顼掮镛揎洲镏掮种缥昼挝缙无破藿妻到汁抵违湧茢テ敎茖溄寯絼斀剬祘尩{劦s劦s劖k{璫{璫s璫ssk!Made with GIMP !
  ,    0 0  䜣們剠唶垑妺實帍悜挀敃枟槞殝
洅(爯#(('珝
&%&!眾!&$)(%&)2$雌(;,竻 哑'71
'(#阋皵1>'&L竕'袠罿*ahB眱!鶭( A伊 qC+1亖@繡 8	馩dD霯尠  ORa凢祃ㄓ儍 <H袄 I\(z餚镽W8!#$Qㄩ5d&@ l#	嗾V⑽<tp怬P#y店>|
欣'"qo	aNd["(60腍ZD挒黨$/9霮K($!Id$娸钩羅憐,箲踆嫍@閱 @kL翪:S$#	嚋(b馒?<3 R
#I~J喇剣鷥瑎M $=$aC4倇劋`-蜓C&I
E$憚剕3H7拎 ⺳倖愜F鳣CG儼`C@軤!x(斾唷yC馉CB2a5za0M%2霡~懨%2@+Y`舶A$鴸藱hΙ鏆l堕&  ;   07070100061ef8000081a40000000000000002000000013ac038a500000680000000200000000000000000000000000000002100000003reloc/servers/images/openbsd.gif  GIF89a0 0   !!!)))cccsss敂敎湝档到浇破莆挝种洲揶治西珑skk尬物揶谓睫破寋{渐kk禍湱寣茰渟ZZB11ZBBB)){JJ孞J{91s91渟kZ1)9)9)R1){9)R91k9)絉1kB1淛)缰蝛ZR礪1ZJBkJ9擱1孯1凧)1璟)sZJkRB刏9渒B絪1祂)刱RkR9刢B渒9祘B1蝱)镧奁擹刢9渒1祘1苿1寋c渼c攞Z薜{sZ9B苿)匹sR攕B祫9絼1謹1螌)苿!迶!单尩渟瓟k瓌B茢B锃B茖1茖)謹)迶餃屴茢9逌)绁)鐪鐪餃靠麋湆k瓟c渰9芝B绛9绁!綔R违J芝9镏攧sJ频{鳐秣飳湐湱淡顼锃浇RZZ诛锏挝)11劖淡莆敪祘敎ソ苿湧k敟c剶サ絪敟Z{宬湹J劌Z尛Zs凚c{1k攞湹Z劌Js1c9sk{莆諶k凚k1Z剶湧1R{BZ{)Bc1JsJZ{ks19J19R!)B)1Rゥ瓌剬ss{BBJRRcJJcRRs191J1)9B1J拗薜sks剓凴JRJBJB9BcRcZJZJ9JB1B))1)R!BB)9R)B攧孯BJ9)1Z)B9)cRZB19c)BsZcc1B骗单寯B)1k1BZ9B宬s刢kR19J)1B!)k)9B!祵攲ckkBJR)1k9B祘刢19s9B)渃k擱Zk199Bc)19B19{)1k!)R199B19)1)1!)!)!)1!)!!!Made with GIMP !
  ,    0 0   	H盃羶*\劝∶#>l#眀60铏+#F弊頩礥!C秇钰)+驙+:蠑膖萬淒|A灩Cv&魢限*V棅`纏醄6z隙j惺>{騨趗晾"|趟鷥kAx蜍釗V钪#Ioy#o俣j 蔺cQ疁=s襔檢$箄跇UA0p#淌A觱瓡o搌仚眒)册澏j*悃@紇谑1冎v爫2J櫃s'廭7
襺枪\7y%麓Ic-偪す厂彏6麾㳠讽Y7{鯲0,%巵5磪腈疅>w莺]鳜诔k蘃3辤}嘆W	S=锔y釺s蘝摖Dm #┏蛒蟞c蘹,#7qs7 !j钠5毙3;.筇1龘F_X% BK罯d黃抏#偙,c3.黅髣@c<阕5沲&谸k汤22﨏C=髱=頻&A,蚤c蝩3巗愦风@uT銦婗鬝O9氛蓖呞鹩炡<#8zPZ8cO7笉殺⺳8]Zy侦嘘@<f祵$I)?輙j2.弛擿O=G3q轟貌硫X	
tM94昏6寝5圮騦y悉0Ω酓-諺脗痋iq`Ｌ耕=3?卡腘Z$彍N0(3司婒(L澚c5)h3iDv$揟b+ 鹗,蘦ｒр膒p饞k合勠0侶%廆怏$歭b呫2K K/P0q,O0嘵 &沗律)聣支4.rP:銨/CxL
-b*" bN!>斈6>裉蘩l_腵!蛩/1 iQih吝2比ⅹ;輸珯2fk#;T亞岙譶 ;07070100061ef9000081a40000000000000002000000013ac038a500000569000000200000000000000000000000000000002000000003reloc/servers/images/redhat.gif   GIF89a0 0   骀淦颇ⅱ唲rrtjjl倐剼殰侣拟怃乙>><::<zz|珺BD

664汉**,觎ffdRRT适..,2zvR*>
nB

""$Z"j膊J
^.ΖNNL&fF
r224枛2
vvt6
ZZ\b谮軍揶躂妸宯nl~*FFD铑忐揪V"螋鲻鬮bd种詭帉挝!Made with GIMP !
  ,    0 0  䜣們剠 	啌敃
湞枻灙グ皵稻捁 !"#$%&!' ()*+,--.忖./0102 34蕺56驿汜-789:Z靀5!)hy笐>䌷餻衙 〆⑴泗9RZ8T
RKCj R鵋秞qJI|丸酈噽5,馚g萹#j11敗壇%醶|0釀h蓢#]湪礏A!&繛榮q)販n惃M渏攬"#3N	W遉1jQ2鐯!<疂亦瘒闪摄($鋗*褽圢2о 鵹5jD%a惰酇晵*0~:竻w& u恿鉪D壄jF歖涖1cJ蠟菱	Q|錤8蓂M%=F1棩A䦂4.0u湐`谻豉gN0鴵
VX驵 驻zW4慉*佊汗嗄:缾bf`金I緓饻n伦a|!舌賐吭 Cn8驁爒:侢猩b兜i!琛嘜0#劦爛 \ 囐)>菂@秞衽`	!9%彲踔蒓溲歬&1
a1褋n嶉c⊕_s迭版d PF1D<`<Tq'釯酅擹0@牛k歲'a< 7魛C[xJ她眬瑍K(Pl,"G(!砩6Hh鸈X琾喍f黀@0憚PlP@/線&H贐J燉纣$ j+鹄!湳X 琑J朰叿燼喡鮖 0(↗E壊d<*^@ +瑎D
CH	棳4  d楺FHLB :雥'袗驓!jPbt于"S匤癏A/譳R褋
{6	d媣HQ,Tl0%龆
d7!T(p1赿燼踵啝 棥棱孲B呪	@.v
鋆y.	( 5W ;   07070100061f00000081a40000000000000002000000013ac038a5000001f6000000200000000000000000000000000000001d00000003reloc/servers/images/sco.gif  GIF89a0 0   鞜貮 钽堦	廒戅招氀惹づ$季-6煵贌?拹I厗R櫶y}[lsd`jmS`vFW@f:M 3!Made with GIMP !   ,    0 0  '巇i瀐l刖p,蟭m選|@裛H,徣d20"8熜╰J
氄瑅K笂竅#R筡0$聬z?`!r嶝飜%騶千b刦媼}XNey巁effiⅶN~悂f梬槩噇
漰\柪翙廧宑垊e妊艀绷讦m琑及ㄤ﹀許抒溏蕣竛詡口龞i紒出瑺Aeu. "5 1O\E窮簓濯⑧﨎榾裝RF沗g褏奣.z	v癟淢(餖剽螫w*p)j H|垰鼔髵綖#j菔椅啳I,要]硕穙!橩樊莼x箨菟凤 ;  07070100061f01000081a40000000000000002000000013ac038a50000035a000000200000000000000000000000000000002100000003reloc/servers/images/solaris.gif  GIF89a0 0   鼢镲珑揶种挝破浇档ゥ湝敂寣剟{{sskkccZZRRJJBB9911))!!  秣鼢掮镧秣秣掮髦揎沃缃妻沃锲午寽蝱屍s劷k{礪k睫譁ノk{絚s礪k礡c缔キ諮ZZ瑽R9Jブ敎螌斊{劷剬苨{絢s礳k礪c璕Z璊Rワ秣鼢珑鬓揎种镂午破缃睫档!Made with GIMP !
  ,    0 0  䜣們剠唶垑妺實帍悜挀敃枟槞殯湏煉ア﹨粴緟翛喗▊
勗鋫锂锬	桏傂箭1p颬,!阜藱 8|犂頋5G0HpX埨姕餻#>hh@鄽紼ㄝ5I.$4J%	5J餘V3櫾腵幆誮"塙$X眰癹)	8)bD菐砱鋰0灗P绚7b8盚E5l賾C噹9欛鉏$棐萷°#3賏銸2嗢脯9砮"DQ5崹,v.#DH6掋sT%@妼灊F操差腁`凘>(,绷4|򰇥jK槰噷饈繣q聞犋箅呦靠  ;  07070100061f06000081a40000000000000002000000013ac038a5000001f0000000200000000000000000000000000000001e00000003reloc/servers/images/suse.gif GIF89a0 0   篪裥淝EQ-\;h磂嫽s⑷彮蠞怪莨荜誸璚椔佽胥镲镞哌舷峡靠療煙弿ppp```PPP@@@000      !Made with GIMP !
 ? ,    0 0  焢H,徣蒷:熜╰J璟瑅隧z苦08`樝hs佈]茵膏-蕊q侊Po~僫
Kv剬g|tH崜lF摑||湠~p
E·	 瓁檞D磆? r汣h壗	Gf繤艧?gNf?e慍	溽礕f闾釪碌闓v式虼隕牮祷莕C
㘚(〇3'咝@雹艐3f4捫 CI瞕I1(S猏刹ニ0c蕼I肠蜎8 ;07070100061f0d000081a40000000000000002000000013ac038a5000008d0000000200000000000000000000000000000002100000003reloc/servers/images/unknown.gif  GIF89a0 0   >>>zzz揪疚问揶陉赕妸姃拻蝌頡RP灋...鲻騜bb&&&
侣虏伯谮"""jjj破露恫骀恸种褺BBnnn唵哣VV汉篟NN
治暑铌~vr适柒挹NNN拨


坡篰VR*倐偤勃竞并枛戮衡廪vvr露惨势666拪&nfb凭禢FDΖ⑩谮乙抑椅赕釬FF纹潞谥*&&^^\赈獠事掘铌倆x铌骣蝌挹趾懂驸蘧伯寒
22.殮歳rn凭綽^^伯***椅莆事憾帋嶫JJ谝
拗枝灇fff:2.B>>*""rjb妭~"
拵孼RN椅jb^潞簴枛汉翰参势谥6.*ZNN径猖灇殏~|
忖"~~~铑睥ⅱ^ZX示局乙
.*&凭浩侣赕嫖破ZZZ&NJJ事戮抖问述鳅
势柒揶戮径伯势漫rnn枎奲ZT示侯骀翰谮径沂舒忖~zzzvvf^Z坪"挹诰憾2.+&"njj妴.&!F>;温骆揶觋赕骀治


潞

VRR倂r:66殩柧膊铌露
椅饰挝适势戮
枓嶸NNrff灑殮谝肄揶蝌蝣鲻蝾rrr""

种222懂
vvvf^^膊矑妸.**!Made with GIMP !
  ,    0 0   	H盃羶*<h)训#&\g(懩%lＥ茝刟橤(.;濯7F$YBF蠵燬v	&kJ磾Z+c魨au'@鍸z+OQ$\馌\屛 
&箐扩(-ibDs汵T谴@涿崸OI鏅撃蘚" %dqL3-萀N"谘娧斔Ij[畡 $	鞾,羄涟侣択岀nAk!衆勃e.旨]Dg!A,幨磠漓"3W$鑋﹥片{0fM鏄-{K芫Y藖<# qY砽王壁笔剭0`gA7[襃+缠倖"澬傾* 9@爽r7h σ嶡\膦#筪膿 衏VB态鷾s<杳M妋@痢(uM>X1 础3,灿虰$崞.Ir+駙F夹#椳2O(QG,q L睭圔枞呠X砃嶓$ob*(皣@"=mr鐱B铇鉓&I3#逶鍹HA:1L10w3( p&繬慆1
4#I+WPx
4\6jAX阠&& @" ┰p20B>贪餕
5&鷗餗P@1$ , 瘩%胁hGA鐳`髓釬)$%?豩>碨0FbH 4妬@3IbN7V勨2 拞N瑴馄!U0Ｉ)z!癐鷺3DpL栓&a9孹cK瀽h8
Z窣硟'; >mB亞>`r':ⅳ(鶷((M)ぐ(廅c\@5cH0El嘝(侼 兤衅3+:?-馣|q0a缊翥7@q1$ #溛矣%叼鰼t\a	圵$値$>燸2
	q3⿶饖6 悁A4au 虁@  銖:戳$n	?"p傾@"︹d F焊"^qhC擗$尠	(磥U捫DRv鄮	#p怉笎.	牷5]N :騛6湢1pnQ,Il`{犇"b 帯	* h糂幦;灐!貈:<'}窣m闌 vo樑哩戣 K4Jum0πH#HE*01&	J樖.<憘e劉aF `A)罾B1 =2(_羶焘x塄V堸9@@♂働NG倕蠢w仪5唘2(-俼1%罼fD&%鐯	材(D	竫 滆.蘃D>1坃x
炐DJ瓵勧酵尃嘎rf虄牎xdW$J搂T|%3疈B02.xb桗卼樎8姁黗酪2a@C)K$b-澳)勧僨lt	#|袇W0BwD闎,F楤G暘B,駣TAY 謰乪綀i ;07070100060734000081e40000000000000002000000013ac038a5000005c0000000200000000000000000000000000000001800000003reloc/servers/index.cgi   #!/usr/local/bin/perl
# Display a list of other webmin servers

require './servers-lib.pl';
&header($text{'index_title'}, "", undef, 1, 1);
print "<hr>\n";

@servers = grep { &can_use_server($_) }
	   sort { $a->{'host'} cmp $b->{'host'} } &list_servers();
if (@servers) {
	if ($access{'edit'}) {
		@titles = map { "$_->{'host'}:$_->{'port'}</a> <a href='edit_serv.cgi?id=$_->{'id'}'>(".$text{'index_edit'}.")" } @servers;
		}
	else {
		@titles = map { "$_->{'host'}:$_->{'port'}" } @servers;
		}
	@icons = map { "images/$_->{'type'}.gif" } @servers;
	@links = map { $_->{'user'} ? "link.cgi/$_->{'id'}/"
				    : &make_url($_) } @servers;
	&icons_table(\@links, \@titles, \@icons, undef, "target=_top");
	}
else {
	print "<b>$text{'index_none'}</b> <p>\n";
	}

print "<a href='edit_serv.cgi?new=1'>$text{'index_add'}</a> <p>\n"
    if $access{'edit'};

print "<hr>\n",
    "<table width=100%>\n",
    "<form action=find.cgi>\n",
    "<tr> <td><input type=submit value=\"$text{'index_broad'}\"></td>\n",
    "<td>$text{'index_findmsg'}</td> </tr>\n",
    "</form>\n",
    "<form action=find.cgi>\n",
    "<tr> <td><input type=submit value=\"$text{'index_scan'}\"></td>\n",
    "<td>",&text('index_scanmsg','<input name=scan size=15>'),"</td> </tr>\n",
    "</form>\n",
    "</table>\n"
    if $access{'find'};

print "<hr>\n";
&footer("/", $text{'index'});

sub make_url
{
return sprintf "http%s://%s:%d/",
	$_[0]->{'ssl'} ? 's' : '', $_[0]->{'host'}, $_[0]->{'port'};
}
070701000636e3000041ed0000000000000001000000023ac03c7300000000000000200000000000000000000000000000001300000003reloc/servers/lang    070701000636e4000081a40000000000000002000000013ac038a5000004ea000000200000000000000000000000000000001600000003reloc/servers/lang/de index_title=Webmin Server
index_none=Es wurden keine Server registriert
index_add=Neuen Server registrieren
index_broad=Broadcast f&uuml;r Server
index_findmsg=Klicken Sie auf diesen Button, um automatisch alle Webmin Server (Versionen 0.75 und h&ouml;her) in Ihrem lokalen Netzwerk zu finden.
index_scan=Scanne nach Servern
index_scanmsg=Clicken Sie auf diesen Button um alle Adressen im Netzwerk $1 nach Webmin Servern zu scannen (Version 0.75 oder h&ouml;her)
index_return=Servern

edit_title=Server bearbeiten
create_title=Server registrieren
edit_details=Server-Details
edit_host=Hostname
edit_port=Port
edit_type=Server-Typ
edit_ssl=SSL Server?
edit_link=Link Typ
edit_mode0=Normaler Link zu Server
edit_mode1=Login via Webmin mit
edit_user=Benutzername
edit_pass=Passwort

save_err=Fehler beim Speichern des Servers
save_ehost=Fehlender oder ung&uuml;ltiger Hostname
save_eport=Fehlender oder ung&uuml;ltiger Port
save_euser=Fehlender Username
save_epass=Fehlendes Passwort

find_title=Server suchen
find_new=Neuen Server bei $1 gefunden
find_already=Bekannten Server bei $1 gefunden
find_me=Diesen Server bei $1 gefunden
find_escan=Das Netzwerk, dass gescannt werden soll muss ein Klasse C Netz sein.
find_none=Kein Server antworteten auf den Scan.

  070701000636e5000081a40000000000000002000000013ac038a500000660000000200000000000000000000000000000001600000003reloc/servers/lang/en index_title=Webmin Servers
index_edit=edit
index_none=No servers have been registered.
index_add=Register a new server
index_broad=Broadcast for servers
index_findmsg=Click this button to automatically find any version 0.75 or above Webmin servers on your local network.
index_scan=Scan for servers
index_scanmsg=Click this button to check every address on the network $1 for Webmin servers of version 0.75 or above.
index_return=servers

edit_title=Edit Server
create_title=Register Server
edit_details=Server details
edit_host=Hostname
edit_port=Port
edit_type=Server type
edit_ssl=SSL server?
edit_link=Link type
edit_mode0=Normal link to server
edit_mode1=Login via Webmin with
edit_user=username
edit_pass=password
edit_ecannot=You are not allowed to edit servers

save_err=Failed to save server
save_ehost=Missing or invalid hostname
save_eport=Missing or invalid port
save_euser=Missing username
save_epass=Missing password

find_title=Find Servers
find_new=Found new server at $1
find_already=Found known server at $1
find_me=Found this server at $1
find_escan=The network to scan must be a class C network address.
find_none=No servers responsed to the scan.
find_ecannot=You are not allowed to find servers

log_modify=Modified server $1
log_create=Registered server $1
log_delete=Deleted server $1
log_find=Found server $1

link_elogin=Failed to login to $1 as $2
link_ecannot=You are not allowed to use this server
link_essl=You do not have the perl Net::SSLeay library installed

lib_other=Other

acl_edit=Can edit servers
acl_find=Can find servers
acl_servers=Can use servers
acl_sall=All Servers
acl_ssel=Selected..

070701000636e6000081a40000000000000002000000013ac038a500000769000000200000000000000000000000000000001600000003reloc/servers/lang/es index_title=Servidores Webmin
index_edit=editar
index_none=No se han registrado servidores.
index_add=Registrar un nuevo servidor
index_broad=Retransmisi髇 para Servidores
index_findmsg=Haz click en este bot髇 para buscar autom醫icamente cualquier versi髇 0,75 o superior de servidores Webmin en tu red local
index_scan=Explorar por Servidores
index_scanmsg=Haz click en este bot髇 para revisar cada direcci髇 de la red $1 buscando servidores Webmin de la versi髇 0,75 o superior.
index_return=servidores

edit_title=Editar Servidor
create_title=Registrar Servidor
edit_details=Detalles de Servidor
edit_host=M醧uina
edit_port=Puerto
edit_type=Tipo de Servidor
edit_ssl=縎ervidor SSL?
edit_link=Tipo de enlace
edit_mode0=Enlace normal a servidor
edit_mode1=Login via Webmin con
edit_user=nombre de usuario
edit_pass=clave de acceso
edit_ecannot=No est醩 autorizado a editar servidores

save_err=Error al salvar servidor
save_ehost=Nombre de M醧uina inv醠ido o sin poner
save_eport=Puerto inv醠ido o sin poner
save_euser=Nombre de usuario sin poner
save_epass=Clave de acceso sin poner

find_title=Hallar Servidores
find_new=Encontrado nuevo servidor en $1
find_already=Encontrado servidor conocido en $1
find_me=Encontrado este servidor en $1
find_escan=La red a explorar debe de ser de una direcci髇 red de clase C.
find_none=No han respondido servidores a la exploaci髇.
find_ecannot=No est醩 autorizado a hallar servidores

log_modify=Modificado servidor $1
log_create=Registrado servidor $1
log_delete=Borrado servidor $1
log_find=Hallado servidor $1

link_elogin=No pude hacer login a $1 como $2
link_ecannot=No est醩 autorizado a usar este servidor
link_essl=No tienes la biblioteca de perl Net::SSLeay instalada

lib_other=Otro

acl_edit=Puede editar servidores
acl_find=Puede hallar servidores
acl_servers=Puede usar servidores
acl_sall=Todos los Servidores
acl_ssel=Los seleccionados...

   070701000636e7000081a40000000000000002000000013ac038a500000414000000200000000000000000000000000000001600000003reloc/servers/lang/fr index_title=Serveurs Webmin
index_none=Aucuns serveurs n'ont 閠 enregistr閟.
index_add=Enregistrer un nouveau serveur
index_find=Trouver les Serveurs
index_findmsg=Cliquer sur ce bouton pour automatiquement trouver tous les serveurs Webmin de version 0.75 ou sup閞ieure sur ce r閟eau local.
index_return=liste des serveurs

edit_title=蒬iter un Serveur
create_title=Enregistrer le Serveur
edit_details=D閠ails du serveur
edit_host=Nom d'h魌e
edit_port=Port
edit_type=Type de serveur
edit_ssl=Serveur SSL?
edit_link=Type de lien
edit_mode0=Lien normal au serveur
edit_mode1=Ouverture de session via Webmin avec
edit_user=nom d'utilisateur
edit_pass=mot de passe

save_err=Impossible d'enregistrer le serveur
save_ehost=Nom d'h魌e invalide ou introuvable
save_eport=Port invalide ou introuvable
save_euser=Nom d'utilisateur introuvable
save_epass=Mot de passe introuvable

find_title=Trouver Serveurs
find_new=Nouveau serveur trouv  l'adresse $1
find_already=Serveur connu trouv  l'adresse $1
find_me=Ce serveur a 閠 trouv  l'adresse $1

070701000636e8000081a40000000000000002000000013ac038a5000005ec000000200000000000000000000000000000001600000003reloc/servers/lang/hu # webmin-0.82/servers/lang/hu
# Translated by <kissg@sztaki.hu>

index_title=Webmin szerverek
index_none=Nincs egy regisztr醠t szerver sem
index_add=趈 szerver regisztr醠醩a
index_broad=Keres閟 itt
index_findmsg=Ezt a gombot nyomd meg, ha fel akarod kutatni a helyi h醠髗aton m鹝鰀 (legal醔b 0.75 verzi骿) Webmin szervereket
index_scan=Keres閟 m醩hol
index_scanmsg=Ezt a gombot nyomd meg, ha a $1 h醠髗aton l関 (legal醔b 0.75 verzi骿) szervereket keresed
index_return=a szerverekhez

edit_title=Szerver adatainak v醠toztat醩a
create_title=趈 szerver regisztr醠醩a
edit_details=A szerver adatai
edit_host=G閜n関
edit_port=Por&#116;
edit_type=Szerver t韕usa
edit_ssl=SSL szerver?
edit_link=Kapcsolat t韕usa
edit_mode0=K鰖vetlen kapcsolat a szerverhez
edit_mode1=Bel閜閟 <b>ezen</b> a szerveren kereszt黮 az al醔bi m骴on.<br>
edit_user=Azonos韙:
edit_pass=Jelsz:

save_err=Nem siker黮t elmenteni a konfigur醕i髏
save_ehost=Hi醤yzik vagy hib醩 a g閜n関
save_eport=Hi醤yzik vagy hib醩 a portsz醡
save_euser=Hi醤yzik a felhaszn醠 azonos韙骿a
save_epass=Hi醤yzik a jelsz

find_title=Szerverek keres閟e
find_new=趈 szerver: $1
find_already=M醨 ismert szerver: $1
find_me=Saj醫 g閜黱k: $1
find_escan=Csak C m閞et h醠髗atot adhatsz meg
find_none=Egyetlen szerver sem v醠aszolt a felh韛醩unkra

log_modify=$1 szerver m骴os韙va
log_create=$1 szerver regisztr醠va
log_delete=$1 szerver t鰎鰈ve
log_find=Fellelt szerver: $1

link_elogin=Nem siker黮t bel閜ni $2-k閚t a $1 g閜re
070701000636e9000081a40000000000000002000000013ac038a500000771000000200000000000000000000000000000001600000003reloc/servers/lang/pl index_title=Serwery Webmina
index_edit=zmie
index_none=Nie zarejestrowano 縜dnych serwer體.
index_add=Zarejestruj nowy serwer
index_broad=Rozg硂 zapytanie o serwery
index_findmsg=Naci秐ij ten przycisk, aby automatycznie znale兼 wszystkie serwery Webmina w&nbsp;wersji 0.75 lub wy縮zej w&nbsp;sieci lokalnej.
index_scan=Szukaj serwer體 skanuj眂
index_scanmsg=Naci秐ij ten przycisk, aby sprawdzi wszystkie adresy w&nbsp;sieci $1 pod k眛em wyst阷owania serwer體 Webmina w&nbsp;wersji 0.75 lub wy縮zej.
index_return=serwer體

edit_title=Zmie serwer
create_title=Zarejestruj serwer
edit_details=Dane serwera
edit_host=Nazwa hosta
edit_port=Port
edit_type=Rodzaj serwera
edit_ssl=Po潮czenie SSL?
edit_link=Rodzaj po潮czenia
edit_mode0=Zwyk砮 po潮cznie z serwerem
edit_mode1=Logowanie poprzez Webmina jako
edit_user=u縴tkownik
edit_pass=has硂
edit_ecannot=Nie masz uprawnie do zmian serwer體

save_err=Nie uda硂 si zachowa serwera
save_ehost=Nie podana lub niepoprawna nazwa hosta.
save_eport=Nie podany lub niepoprawny port.
save_euser=Nie podano nazwy u縴tkownika.
save_epass=Nie podano has砤.

find_title=Szukaj serwer體
find_new=Znaleziono nowy serwer na $1
find_already=Znaleziono wcze秐iej znany serwer na $1
find_me=Znaleziono niniejszy serwer na $1
find_escan=Skanowana sie musi by sieci o&nbsp;adresie klasy C.
find_none=痑den serwer nie odpowiedzia na skanowanie.
find_ecannot=Nie masz uprawnie do poszukiwania serwer體

log_modify=Zmieniono serwer $1
log_create=Zarejestrowano serwer $1
log_delete=Usuni阾o serwer $1
log_find=Znaleziono serwer $1

link_elogin=Nie uda硂 si zalogowa do $1 jako $2
link_ecannot=Nie masz uprawnie do korzystania z tego serwera
link_essl=Nie masz zainstalowanej biblioteki perla Net::SSLeay

lib_other=Inny

acl_edit=Mo縠 zmienia serwery
acl_find=Mo縠 poszukiwa serwer體
acl_servers=Mo縠 korzysta z&nbsp;serwer體
acl_sall=Wszystkich
acl_ssel=Wybranych..
   070701000636ea000081a40000000000000002000000013ac038a5000003cc000000200000000000000000000000000000001600000003reloc/servers/lang/pt index_title=Servidores Webmin
index_none=N鉶 foram registados nehuns servidores.
index_add=Registar novo servidor
index_find=Procurar servidores
index_findmsg=Clique neste bot鉶 para autom醫icamente encontrar qualquer Webmin vers鉶 0.75 ou superior na sua rede local.
index_return=servidores

edit_title=Editar Servidor
create_title=Registar Servidor
edit_details=Detalhes do servidor
edit_host=Nome do Anfitri鉶
edit_port=Porta
edit_type=Tipo de servidor
edit_ssl=Servidor SSL?
edit_link=Tipo de liga玢o
edit_mode0=Liga玢o normal ao servidor
edit_mode1=Login via Webmin com
edit_user=username
edit_pass=password

save_err=Erro ao guardar servidor
save_ehost=Nome de anfitri鉶 inv醠ido ou em falta
save_eport=Porta inv醠ida ou em falta
save_euser=Username em falta
save_epass=Password em falta

find_title=Procurar Servidores
find_new=Foi encontrado um novo servidor em $1
find_already=Foi encontrado um servidor conhecido em $1
find_me=Foi encontrado este servidor em $1
070701000636eb000081a40000000000000002000000013ac038a5000003b4000000200000000000000000000000000000001900000003reloc/servers/lang/ru_RU  save_epass=悟耋蝰蜮箦 镟痤朦
save_err=硒栳赅 镳 耦躔囗屙梃 皴疴屦
index_none=湾 玎疱汨耱痂痤忄眍 龛 钿眍泐 皴疴屦.
create_title=绣汨耱疣鲨 彦疴屦
index_add=青疱汨耱痂痤忄螯 眍恹 皴疴屦
index_find=锐赅螯 彦疴屦
edit_mode0=皖痨嚯铄 耦邃桧屙桢  皴疴屦铎
edit_mode1=迈钿 麇疱 Webmin 
edit_type=诣 皴疴屦
index_findmsg=袜骒栩 磬  觏铒牦, 黩钺 噔蝾爨蜩麇耜 磬轵 怦 皴疴屦 Webmin 忮瘃梃 0.75  恹  忄 腩赅朦眍 皴蜩.
edit_host=褥 躅耱
edit_user=桁屙屐 镱朦珙忄蝈
save_ehost=悟耋蝰蜮箦 桦 礤忮痦铄 桁 躅耱
save_euser=悟耋蝰蜮箦 桁 镱朦珙忄蝈
index_return=皴疴屦
edit_details=相疣戾蝠 皴疴屦
edit_port=项痱
find_already=袜殇屙 桤忮耱睇 皴疴屦 磬 $1
save_eport=悟耋蝰蜮箦 桦 礤忮痦 镱痱
edit_title=绣溧牝桊钼囗桢 彦疴屦
edit_ssl=SSL 皴疴屦?
index_title=彦疴屦 Webmin
find_new=袜殇屙 眍恹 皴疴屦 磬 $1
find_title=项桉 彦疴屦钼
find_me=袜殇屙 耦狁蜮屙睇 皴疴屦 at $1
edit_link=诣 疋玷
edit_pass=镟痤脲
070701000636ec000081a40000000000000002000000013ac038a5000003b8000000200000000000000000000000000000001900000003reloc/servers/lang/ru_SU  index_title=笈易乓 Webmin
index_none=钆 诹遗巧釉疑蚁琢蜗 紊 夏蜗窍 优易乓.
index_add=遗巧釉疑蚁琢载 蜗踪 优易乓
index_find=橛肆载 笈易乓
index_findmsg=盍滞稍 瘟 茉 宋闲苏, 拊下 磷韵土陨夼铀 瘟试 子 优易乓 Webmin 着矣缮 0.75  踪叟  琢叟 滔肆特蜗 优陨.
index_return=优易乓

edit_title=蚺牧嗽梢献廖膳 笈易乓
create_title=蚺巧釉伊蒙 笈易乓
edit_details=鹆伊团砸 优易乓
edit_host=橥 认釉
edit_port=鹣以
edit_type=羯 优易乓
edit_ssl=SSL 优易乓?
edit_link=羯 幼掩
edit_mode0=钕彝撂匚吓 酉拍晌盼膳  优易乓贤
edit_mode1=魅夏 夼遗 Webmin 
edit_user=赏盼磐 邢特谙琢耘萄
edit_pass=辛蚁膛

save_err=镗陕肆 幸 酉纫廖盼缮 优易乓
save_ehost=镌诱杂宰张 商 闻着椅吓 赏 认釉
save_eport=镌诱杂宰张 商 闻着椅偈 邢以
save_euser=镌诱杂宰张 赏 邢特谙琢耘萄
save_epass=镌诱杂宰张 辛蚁特

find_title=鹣捎 笈易乓献
find_new=盍誓盼 蜗踪 优易乓 瘟 $1
find_already=盍誓盼 哨着釉钨 优易乓 瘟 $1
find_me=盍誓盼 酉掠宰盼钨 优易乓 at $1

070701000636ed000081a40000000000000002000000013ac038a5000006c9000000200000000000000000000000000000001600000003reloc/servers/lang/sv index_title=Webmin-servrar
index_edit=鋘dra
index_none=Ingen server har registrerats.
index_add=Registrera en ny server
index_broad=S鰇 servrar via broadcast
index_findmsg=Tryck p denna knapp f鰎 att automatiskt s鰇a efter Webmin-servrar av version 0.75 eller h鰃re p ditt lokala n鋞verk.
index_scan=S鰇 servrar
index_scanmsg=Tryck p denna knapp f鰎 att s鰇a p varje adress p n鋞verket $1 efter Webmin-servrar med version 0.75 eller h鰃re. 
index_return=servrar

edit_title=膎dra server
create_title=Registrera server
edit_details=Uppgifter om server
edit_host=Datornamn
edit_port=Port
edit_type=Servertyp
edit_ssl=SSL-server?
edit_link=L鋘ktyp
edit_mode0=Normal l鋘kning till server
edit_mode1=Logga in via Webmin med
edit_user=anv鋘darnamn
edit_pass=l鰏enord
edit_ecannot=Du f錼 inte 鋘dra servrar

save_err=Det gick inte att spara servern
save_ehost=Datornamn saknas eller 鋜 felaktigt angivet
save_eport=Port saknas eller 鋜 felaktigt angiven
save_euser=Anv鋘darnamn saknas
save_epass=L鰏enord saknas

find_title=S鰇 server
find_new=Ny server hittades p $1
find_already=K鋘d server hittades p $1
find_me=Denna server hittades p $1
find_escan=N鋞verket som ska avs鰇as m錽te vara av klass C
find_none=Inga servrar svarade p s鰇ningen.
find_ecannot=Du f錼 inte s鰇a efter servrar

log_modify=Modifierade server $1
log_create=Registrerade server $1
log_delete=Tog bort server $1
log_find=Hittade server $1

link_elogin=Det gick inte att logga in p $1 som $2
link_ecannot=Du f錼 inte anv鋘da denna server
link_essl=Du har inte installerat Perl-biblioteket Net::SSLeay

lib_other=講rigt

acl_edit=Kunna 鋘dra servrar
acl_find=Kunna s鰇a efter servrar
acl_servers=Kunna anv鋘da servrar
acl_sall=Alla servrar
acl_ssel=Angivna ...
   070701000636ee000081a40000000000000002000000013ac038a5000004b9000000200000000000000000000000000000001600000003reloc/servers/lang/tr index_title=Webmin Sunucular
index_none=Kay齮 edilen sunucu yok
index_add=Yeni sunucu kaydet
index_broad=A餯a Sunucu Ara
index_findmsg=Webmin sunucular齨齨 bu sistemdeki 0.75 ve daha 黶t s黵黰lerini aramak i鏸n t齥lay齨齴
index_scan=Sunucu Ara
index_scanmsg=Webmin sunucular齨 0.75 ve daha 黶t versiyonlar $1 a瘕ndaki her adresi kontrol etmesi i鏸n t齥lay齨齴
index_return=sunucular

edit_title=Sunucuyu De餴⺶ir
create_title=Sunucu Kaydet
edit_details=Sunucu Ayr齨t齦ar
edit_host=Makine Ad
edit_port=Port
edit_type=Sunucu Tipi
edit_ssl=SSL sunucusu?
edit_link=Link tipi
edit_mode0=Sunucuya normal link
edit_mode1=Webmin ile login
edit_user=kullan齝 ad
edit_pass=㱮fre

save_err=Sunucunun kaydedilmesinde hata olu⺶u
save_ehost=Kay齪 ya da yanl makine ad
save_eport=Kay齪 ya da yanl port
save_euser=Kay齪 kullan齝 ad
save_epass=Kay齪 㱮fre

find_title=Sunucu Ara
find_new=$1'de yeni sunucu bul
find_already=$1'de bilinen sunucu bul
find_me=$1'de bu sunucuyu bul
find_escan=Tarama i鏸n a C, a adres s齨齠齨da olmal齞齬
find_none=Taramada yeni sunucu bulunamad

log_modify=$1 sunucusu de餴⺶irildi
log_create=$1 sunucusu kaydedildi
log_delete=$1 sunucusu silindi
log_find=$1 sunucusu bulundu

   070701000636ef000081a40000000000000002000000013ac038a5000004fc000000200000000000000000000000000000001900000003reloc/servers/lang/zh_CN  index_title=Webmin 服务器
index_none=没有注册服务器
index_add=注册一个新的服务器
index_broad=广播服务器
index_findmsg=点击该按钮可自动在您的本地网络搜索0.75版本或更高的 Webmin 服务器.
index_scan=服务器扫描
index_scanmsg=点击该按钮可查找网络 $1 上的每一个地址,以找到0.75版本或更高的 Webmin 服务器
index_return=服务器

edit_title=编辑服务器
create_title=注册服务器
edit_details=服务器详述
edit_host=客户机名称
edit_port=端口
edit_type=服务器类型
edit_ssl=SSL 服务器?
edit_link=联接类型
edit_mode0=正常联接到服务器
edit_mode1=经由 Webmin 注册到
edit_user=用户名
edit_pass=口令
edit_ecannot=您不能编辑服务器

save_err=存储服务器失败
save_ehost=丢失或无效的客户名
save_eport=丢失或无效的端口
save_euser=丢失的客户名
save_epass=丢失的口令

find_title=寻找服务器
find_new=在 $1 寻找新服务器
find_already=在 $1 找到已知的服务器
find_me=在 $1 找到该服务器
find_escan=要扫描的网络必须为 C 类网址.
find_none=没有扫描到服务器
find_ecannot=您不能搜索服务器

log_modify=已更新服务器 $1
log_create=已注册服务器 $1
log_delete=已删除服务器 $1
log_find=找到服务器 $1

link_elogin=按照 $2 登陆 $1 失败
link_ecannot=您不能使用该服务器
link_essl=您没有安装 perl 的 Net::SSLeay 库

acl_edit=能够编辑服务器
acl_find=能够找到服务器
acl_servers=能够使用服务器
acl_sall=所有服务器
acl_ssel=已选择的..

070701000636f0000081a40000000000000002000000013ac038a5000002f4000000200000000000000000000000000000001e00000003reloc/servers/lang/zh_TW.Big5 index_title=Webmin 狝竟ま
index_none=ヘ玡⊿Τ爹ヴ狝竟.
index_add=爹穝狝竟
index_find=т碝狝竟
index_findmsg=硂秙眤跋办呼隔, 笆てт碝ヴセ 0.75 ┪ Webmin 狝竟.
index_return=狝竟

edit_title=絪胯狝竟
create_title=爹狝竟
edit_details=狝竟冈灿戈
edit_host=诀嘿
edit_port=硄癟梆
edit_type=狝竟摸
edit_ssl=琌ㄏノ SSL 诀?
edit_link=硈挡摸
edit_mode0=狝竟硈挡
edit_mode1=祅 Webmin :
edit_user=ㄏノ嘿
edit_pass=盞絏

save_err=礚猭纗狝竟
save_ehost=框ア┪岿粇诀嘿
save_eport=框ア┪岿粇硄癟梆
save_euser=框アㄏノ嘿
save_epass=框ア盞絏

find_title=т碝狝竟
find_new= $1 т穝狝竟
find_already= $1 т狝竟
find_me= $1 т硂狝竟

07070100060735000081e40000000000000002000000013ac038a5000010f5000000200000000000000000000000000000001700000003reloc/servers/link.cgi    #!/usr/local/bin/perl
# link.cgi
# Forward the URL from path_info on to another webmin server

require './servers-lib.pl';
$ENV{'PATH_INFO'} =~ /^\/(\d+)(.*)$/ ||
	&error("Bad PATH_INFO : $ENV{'PATH_INFO'}");
$path = $2 ? $2 : '/';
if ($ENV{'QUERY_STRING'}) {
	$path .= '?'.$ENV{'QUERY_STRING'};
	}
elsif (@ARGV) {
	$path .= '?'.join('+', @ARGV);
	}
$s = &get_server($1);
&can_use_server($s) || &error($text{'link_ecannot'});
$url = "/$module_name/link.cgi/$s->{'id'}";
$| = 1;
$meth = $ENV{'REQUEST_METHOD'};

if ($s->{'ssl'}) {
	# connect using SSL (maybe through a proxy)
	eval "use Net::SSLeay";
	$@ && &error($text{'link_essl'});
	eval "Net::SSLeay::SSLeay_add_ssl_algorithms()";
	eval "Net::SSLeay::load_error_strings()";
	$ssl_ctx = Net::SSLeay::CTX_new() ||
		&error("Failed to create SSL context");
	$ssl_con = Net::SSLeay::new($ssl_ctx) ||
		&error("Failed to create SSL connection");
	if ($gconfig{'http_proxy'} =~ /^http:\/\/(\S+):(\d+)/ &&
	    !&no_proxy($s->{'host'})) {
		&open_socket($1, $2, SOCK);
		print SOCK "CONNECT $s->{'host'}:$s->{'port'} HTTP/1.0\r\n";
		print SOCK "\r\n";
		}
	else {
		&open_socket($s->{'host'}, $s->{'port'}, SOCK);
		}
	Net::SSLeay::set_fd($ssl_con, fileno(SOCK));
	Net::SSLeay::connect($ssl_con) || &error("SSL connect() failed");
	&write_sock_line("$meth $path HTTP/1.0\r\n");
	}
else {
	# connect to the remote server (maybe through a proxy)
	if ($gconfig{'http_proxy'} =~ /^http:\/\/(\S+):(\d+)/ &&
	    !&no_proxy($s->{'host'})) {
		&open_socket($1, $2, SOCK);
		&write_sock_line("$meth http://$s->{'host'}:$s->{'port'}$path ".
				 "HTTP/1.0\r\n");
		}
	else {
		&open_socket($s->{'host'}, $s->{'port'}, SOCK);
		&write_sock_line("$meth $path HTTP/1.0\r\n");
		}
	}

# Send request headers
&write_sock_line("Host: $s->{'host'}\r\n");
&write_sock_line("User-agent: Webmin\r\n");
$auth = &encode_base64("$s->{'user'}:$s->{'pass'}");
$auth =~ s/\n//g;
&write_sock_line("Authorization: basic $auth\r\n");
&write_sock_line(sprintf "Webmin-servers: %s://%s:%d/$module_name/\n",
			 $ENV{'HTTPS'} eq "ON" ? "https" : "http",
			 $ENV{'SERVER_NAME'}, $ENV{'SERVER_PORT'});
$cl = $ENV{'CONTENT_LENGTH'};
&write_sock_line("Content-length: $cl\r\n") if ($cl);
&write_sock_line("Content-type: $ENV{'CONTENT_TYPE'}\r\n")
	if ($ENV{'CONTENT_TYPE'});
&write_sock_line("\r\n");
if ($cl) {
	read(STDIN, $post, $cl);
	&write_sock_line($post);
	}

# read back the headers
$dummy = &read_sock_line();
while(1) {
	($headline = &read_sock_line()) =~ s/\r|\n//g;
	last if (!$headline);
	$headline =~ /^(\S+):\s+(.*)$/ || &error("Bad header");
	$header{lc($1)} = $2;
	$headers .= $headline."\n";
	}

if ($header{'location'} =~ /^(http|https):\/\/$s->{'host'}:$s->{'port'}(.*)$/) {
	# fix a redirect
	&redirect("$url$2");
	exit;
	}
elsif ($header{'www-authenticate'}) {
	# Invalid login
	&error(&text('link_elogin', $s->{'host'}, $s->{'user'}));
	}
else {
	# just output the headers
	print $headers,"\n";
	}

# read back the rest of the page
if ($header{'content-type'} =~ /text\/html/) {
	while($_ = &read_sock_line()) {
		s/src='(\/[^']*)'/src='$url$1'/gi;
		s/src="(\/[^"]*)"/src="$url$1"/gi;
		s/src=(\/[^ "'>]*)/src=$url$1/gi;
		s/href='(\/[^']*)'/href='$url$1'/gi;
		s/href="(\/[^"]*)"/href="$url$1"/gi;
		s/href=(\/[^ >"']*)/href=$url$1/gi;
		s/action='(\/[^']*)'/action='$url$1'/gi;
		s/action="(\/[^"]*)"/action="$url$1"/gi;
		s/action=(\/[^ "'>]*)/action=$url$1/gi;
		print;
		}
	}
else {
	while($buf = &read_sock_data(1024)) {
		print $buf;
		}
	}
close(SOCK);

sub write_sock_line
{
if ($ssl_con) {
	foreach (@_) {
		Net::SSLeay::write($ssl_con, $_);
		}
	}
else {
	print SOCK @_;
	}
}

sub read_sock_line
{
local($idx, $more, $rv);
if ($ssl_con) {
	while(($idx = index($read_buffer, "\n")) < 0) {
		# need to read more..
		if (!($more = Net::SSLeay::read($ssl_con))) {
			# end of the data
			$rv = $read_buffer;
			undef($read_buffer);
			return $rv;
			}
		$read_buffer .= $more;
		}
	$rv = substr($read_buffer, 0, $idx+1);
	$read_buffer = substr($read_buffer, $idx+1);
	return $rv;
	}
else { return <SOCK>; }
}

sub read_sock_data
{
if ($ssl_con) {
	local($rv);
	if (length($read_buffer)) {
		$rv = $read_buffer;
		undef($read_buffer);
		return $rv;
		}
	else {
		return Net::SSLeay::read($ssl_con, $_[0]);
		}
	}
else {
	local($buf);
	read(SOCK, $buf, $_[0]) || return undef;
	return $buf;
	}
}

   07070100060736000081a40000000000000002000000013ac038a50000028f000000200000000000000000000000000000001c00000003reloc/servers/log_parser.pl   # log_parser.pl
# Functions for parsing this module's logs

require './servers-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p) = @_;
if ($action eq 'modify') {
	return &text('log_modify', "<tt>$object</tt>");
	}
elsif ($action eq 'create') {
	return &text('log_create', "<tt>$object</tt>");
	}
elsif ($action eq 'find') {
	return &text('log_find', "<tt>$object</tt>");
	}
elsif ($action eq 'delete') {
	return &text('log_delete', "<tt>$object</tt>");
	}
else {
	return undef;
	}
}

 07070100060737000081a40000000000000002000000013ac038a5000001a3000000200000000000000000000000000000001a00000003reloc/servers/module.info name=Servers
desc_pt=蚽dex de Servidores Webmin
desc_tr=Webmin Sunucular 輓deksi
desc_fr=Serveurs Webmin
desc_es=蚽dice de Servidores Webmin
desc_de=Webmin Server Index
desc_sv=Webmin-serverindex
desc_hu=Webmin szerverek
desc_ru_SU=笈易乓 Webmin
desc_pl=Lista serwer體 Webmina
category=webmin
desc_zh_TW.Big5=Webmin 狝竟ま
desc=Webmin Servers Index
risk=high
desc_zh_CN=查找Webmin服务器
desc_ru_RU=彦疴屦 Webmin
 07070100060738000081e40000000000000002000000013ac038a50000044f000000200000000000000000000000000000001c00000003reloc/servers/save_serv.cgi   #!/usr/local/bin/perl
# save_serv.cgi
# Save or delete a server

require './servers-lib.pl';
&ReadParse();
$access{'edit'} || &error($text{'edit_ecannot'});
&error_setup($text{'save_err'});

if ($in{'id'}) {
	$serv = &get_server($in{'id'});
	&can_use_server($serv) || &error($text{'edit_ecannot'});
	}

if ($in{'delete'}) {
	# delete the server
	&delete_server($in{'id'});
	&webmin_log("delete", "server", $serv->{'host'}, $serv); 
	}
else {
	# validate inputs
	$in{'host'} =~ /^\S+$/ || &error($text{'save_ehost'});
	$in{'port'} =~ /^\d+$/ || &error($text{'save_eport'});
	if ($in{'mode'}) {
		$in{'user'} =~ /\S/ || &error($text{'save_euser'});
		$in{'pass'} =~ /\S/ || &error($text{'save_epass'});
		}

	# save the server
	%serv = ( 'host' => $in{'host'},
		  'port' => $in{'port'},
		  'type' => $in{'type'},
		  'ssl' => $in{'ssl'} );
	if ($in{'mode'}) {
		$serv{'user'} = $in{'user'};
		$serv{'pass'} = $in{'pass'};
		}
	$serv{'id'} = $in{'new'} ? time() : $in{'id'};
	&save_server(\%serv);
	&webmin_log($in{'new'} ? 'create' : 'modify', 'server',
		    $serv{'host'}, \%serv);
	}
&redirect("");

 07070100060739000081a40000000000000002000000013ac038a5000005ea000000200000000000000000000000000000001d00000003reloc/servers/servers-lib.pl  # servers-lib.pl
# Common functions for managing servers

do '../web-lib.pl';
&init_config();
%access = &get_module_acl();

sub list_servers
{
local ($f, @rv);
opendir(DIR, $module_config_directory);
while($f = readdir(DIR)) {
	if ($f =~ /^(\d+)\.serv$/) {
		push(@rv, &get_server($1));
		}
	}
closedir(DIR);
return @rv;
}

# get_server(id)
sub get_server
{
local $serv;
$serv->{'id'} = $_[0];
&read_file("$module_config_directory/$_[0].serv", $serv) || return undef;
return $serv;
}

# save_server(&server)
sub save_server
{
&lock_file("$module_config_directory/$_[0]->{'id'}.serv");
&write_file("$module_config_directory/$_[0]->{'id'}.serv", $_[0]);
&unlock_file("$module_config_directory/$_[0]->{'id'}.serv");
}

# delete_server(id)
sub delete_server
{
&lock_file("$module_config_directory/$_[0].serv");
unlink("$module_config_directory/$_[0].serv");
&unlock_file("$module_config_directory/$_[0].serv");
}

# can_use_server(&server)
sub can_use_server
{
return 1 if ($access{'servers'} eq '*');
foreach $s (split(/\s+/, $access{'servers'})) {
	return 1 if ($_[0]->{'host'} eq $s);
	}
return 0;
}

@server_types = ( [ 'caldera', 'OpenLinux' ],
		  [ 'redhat', 'Redhat Linux' ],
		  [ 'suse', 'SuSE Linux' ],
		  [ 'debian', 'Debian Linux' ],
		  [ 'mandrake', 'Mandrake Linux' ],
		  [ 'linux', 'Linux' ],
		  [ 'freebsd', 'FreeBSD' ],
		  [ 'solaris', 'Solaris' ],
		  [ 'hpux', 'HP/UX' ],
		  [ 'sco', 'SCO' ],
		  [ 'mac', 'Macintosh' ],
		  [ 'irix', 'IRIX' ],
		  [ 'unknown', $text{'lib_other'} ] );


1;

  0707010000bb64000081e40000000000000002000000013ac03886000005df000000200000000000000000000000000000001800000003reloc/session_login.cgi   #!/usr/local/bin/perl
# session_login.cgi
# Display the login form used in session login mode

require './web-lib.pl';
&init_config();
&ReadParse();
print "Set-Cookie: user=x; path=/\n" if ($in{'logout'});
&header();
print "<hr>\n";

print "<center>\n";
if (defined($in{'failed'})) {
	print "<h3>$text{'session_failed'}</h3><p>\n";
	}
elsif ($in{'logout'}) {
	print "<h3>$text{'session_logout'}</h3><p>\n";
	}
elsif ($in{'timed_out'}) {
	print "<h3>",&text('session_timed_out', int($in{'timed_out'}/60)),"</h3><p>\n";
	}
print "<form action=/session_login.cgi method=post>\n";
print "<input type=hidden name=page value='$in{'page'}'>\n";
print "<table border width=40%>\n";
print "<tr $tb> <td><b>$text{'session_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table cellpadding=3>\n";
$host = $ENV{'HTTP_HOST'};
$host =~ s/:\d+//g;
print "<tr> <td colspan=2 align=center>",
      &text('session_mesg', "<tt>$host</tt>"),"</td> </tr>\n";
print "<tr> <td><b>$text{'session_user'}</b></td>\n";
print "<td><input name=user size=20 value='$in{'failed'}'></td> </tr>\n";
print "<tr> <td><b>$text{'session_pass'}</b></td>\n";
print "<td><input name=pass size=20 type=password></td> </tr>\n";
print "<tr> <td colspan=2 align=center><input type=submit value='$text{'session_login'}'>\n";
print "<input type=reset value='$text{'session_clear'}'><br>\n";
print "<input type=checkbox name=save value=1> $text{'session_save'}</td> </tr>\n";
print "</table></td></tr></table><p><hr>\n";
print "</form></center>\n";

 0707010000bb65000081e40000000000000002000000013ac0388600003ce6000000200000000000000000000000000000000f00000003reloc/setup.sh    #!/bin/sh
# setup.sh
# This script should be run after the webmin archive is unpacked, in order
# to setup the various config files

# Find install directory
cd `dirname $0`
wadir=`pwd`;
ver=`cat $wadir/version`

echo "***********************************************************************"
echo "*            Welcome to the Webmin setup script, version $ver         *"
echo "***********************************************************************"
echo "Webmin is a web-based interface that allows Unix-like operating"
echo "systems and common Unix services to be easily administered."
echo ""

# Only root can run this
id | grep "uid=0(" >/dev/null
if [ $? != "0" ]; then
	echo "ERROR: The Webmin install script must be run as root";
	echo "";
	exit 1;
fi

# Display install directory
echo "Installing Webmin in $wadir ..."
allmods=`cd $wadir; ls */module.info | sed -e 's/\/module.info//g' | xargs echo`
echo ""

# Ask for webmin config directory
echo "***********************************************************************"
echo "Webmin uses separate directories for configuration files and log files."
echo "Unless you want to run multiple versions of Webmin at the same time"
echo "you can just accept the defaults."
echo ""
printf "Config file directory [/etc/webmin]: "
if [ "$config_dir" = "" ]; then
	read config_dir
fi
if [ "$config_dir" = "" ]; then
	config_dir=/etc/webmin
fi
abspath=`echo $config_dir | grep "^/"`
if [ "$abspath" = "" ]; then
	echo "Config directory must be an absolute path"
	echo ""
	exit 2
fi
if [ ! -d $config_dir ]; then
	mkdir $config_dir;
	if [ $? != 0 ]; then
		echo "ERROR: Failed to create directory $config_dir"
		echo ""
		exit 2
	fi
fi
if [ -r "$config_dir/config" ]; then
	echo "Found existing Webmin configuration in $config_dir"
	echo ""
	upgrading=1
fi

# Check if upgrading from an old version
if [ "$upgrading" = 1 ]; then
	# Get current var path
	var_dir=`cat $config_dir/var-path`

	# Get current perl path
	perl=`cat $config_dir/perl-path`

	# Stop old version
	$config_dir/stop >/dev/null 2>&1

	# Update ACLs
	$perl $wadir/newmods.pl $config_dir $allmods

	# Get old os name and version
	os_type=`grep "^os_type=" $config_dir/config | sed -e 's/os_type=//g'`
	os_version=`grep "^os_version=" $config_dir/config | sed -e 's/os_version=//g'`
	real_os_type=`grep "^real_os_type=" $config_dir/config | sed -e 's/real_os_type=//g'`
	real_os_version=`grep "^real_os_version=" $config_dir/config | sed -e 's/real_os_version=//g'`

	# Get old root, host, port, ssl and boot flag
	oldwadir=`grep "^root=" $config_dir/miniserv.conf | sed -e 's/root=//g'`
	host=`grep "^host=" $config_dir/miniserv.conf | sed -e 's/host=//g'`
	port=`grep "^port=" $config_dir/miniserv.conf | sed -e 's/port=//g'`
	ssl=`grep "^ssl=" $config_dir/miniserv.conf | sed -e 's/ssl=//g'`
	atboot=`grep "^atboot=" $config_dir/miniserv.conf | sed -e 's/atboot=//g'`

	# Update miniserv.conf with new root directory and mime types file
	grep -v "^root=" $config_dir/miniserv.conf | grep -v "^mimetypes=" >/tmp/$$.miniserv.conf
	mv /tmp/$$.miniserv.conf $config_dir/miniserv.conf
	echo "root=$wadir" >> $config_dir/miniserv.conf
	echo "mimetypes=$wadir/mime.types" >> $config_dir/miniserv.conf
	grep logout= $config_dir/miniserv.conf >/dev/null
	if [ $? != "0" ]; then
		echo "logout=$config_dir/logout-flag" >> $config_dir/miniserv.conf
	fi
	
	# Check for third-party modules in old version
	if [ "$wadir" != "$oldwadir" ]; then
		echo "Checking for third-party modules .."
		if [ "$webmin_upgrade" != "" ]; then
			autothird=1
		fi
		$perl $wadir/thirdparty.pl $wadir $oldwadir $autothird
		echo "..done"
		echo ""
	fi
else
	# Config directory exists .. make sure it is not in use
	ls $config_dir | grep -v rpmsave >/dev/null 2>&1
	if [ "$?" = "0" -a "$config_dir" != "/etc/webmin" ]; then
		echo "ERROR: Config directory $config_dir is not empty"
		echo ""
		exit 2
	fi

	# Ask for log directory
	printf "Log file directory [/var/webmin]: "
	if [ "$var_dir" = "" ]; then
		read var_dir
	fi
	if [ "$var_dir" = "" ]; then
		var_dir=/var/webmin
	fi
	abspath=`echo $var_dir | grep "^/"`
	if [ "$abspath" = "" ]; then
		echo "Log file directory must be an absolute path"
		echo ""
		exit 3
	fi
	if [ ! -d $var_dir ]; then
		mkdir $var_dir
		if [ $? != 0 ]; then
			echo "ERROR: Failed to create directory $var_dir"
			echo ""
			exit 3
		fi
	fi
	echo ""

	# Ask where perl is installed
	echo "***********************************************************************"
	echo "Webmin is written entirely in Perl. Please enter the full path to the"
	echo "Perl 5 interpreter on your system."
	echo ""
	if [ -x /usr/bin/perl ]; then
		perldef=/usr/bin/perl
	elif [ -x /usr/local/bin/perl ]; then
		perldef=/usr/local/bin/perl
	else
		perldef=""
	fi
	if [ "$perl" = "" ]; then
		if [ "$perldef" = "" ]; then
			printf "Full path to perl: "
			read perl
			if [ "$perl" = "" ]; then
				echo "ERROR: No path entered!"
				echo ""
				exit 4
			fi
		else
			printf "Full path to perl (default $perldef): "
			read perl
			if [ "$perl" = "" ]; then
				perl=$perldef
			fi
		fi
	fi
	echo ""

	# Test perl 
	echo "Testing Perl ..."
	if [ ! -x $perl ]; then
		echo "ERROR: Failed to find perl at $perl"
		echo ""
		exit 5
	fi
	$perl -e 'print "foobar\n"' 2>/dev/null | grep foobar >/dev/null
	if [ $? != "0" ]; then
		echo "ERROR: Failed to run test perl script. Maybe $perl is"
		echo "not the perl interpreter, or is not installed properly"
		echo ""
		exit 6
	fi
	$perl -e 'exit ($] < 5.002 ? 1 : 0)'
	if [ $? = "1" ]; then
		echo "ERROR: Detected old perl version. Webmin requires"
		echo "perl 5.002 or better to run"
		echo ""
		exit 7
	fi
	$perl -e 'use Socket; print "foobar\n"' 2>/dev/null | grep foobar >/dev/null
	if [ $? != "0" ]; then
		echo "ERROR: Perl Socket module not installed. Maybe Perl has"
		echo "not been properly installed on your system"
		echo ""
		exit 8
	fi
	$perl -e '$c = crypt("xx", "yy"); exit($c ? 0 : 1)'
	if [ $? != "0" ]; then
		echo "ERROR: Perl crypt function does not work. Maybe Perl has"
		echo "not been properly installed on your system"
		echo ""
		exit 8
	fi
	echo "Perl seems to be installed ok"
	echo ""

	# Ask for operating system type
	echo "***********************************************************************"
	if [ "$os_type" = "" ]; then
		$perl $wadir/oschooser.pl $wadir/os_list.txt /tmp/$$.os $autoos
		if [ $? != 0 ]; then
			exit $?
		fi
		. /tmp/$$.os
		rm -f /tmp/$$.os
	fi
	echo "Operating system name:    $real_os_type"
	echo "Operating system version: $real_os_version"
	echo ""

	# Ask for web server port, name and password
	echo "***********************************************************************"
	echo "Webmin uses its own password protected web server to provide access"
	echo "to the administration programs. The setup script needs to know :"
	echo " - What port to run the web server on. There must not be another"
	echo "   web server already using this port."
	echo " - The login name required to access the web server."
	echo " - The password required to access the web server."
	echo " - The hostname of this system that the web server should use."
	echo " - If the webserver should use SSL (if your system supports it)."
	echo " - Whether to start webmin at boot time."
	echo ""
	printf "Web server port (default 10000): "
	if [ "$port" = "" ]; then
		read port
		if [ "$port" = "" ]; then
			port=10000
		fi
	fi
	if [ $port -lt 1 ]; then
		echo "ERROR: $port is not a valid port number"
		echo ""
		exit 11
	fi
	if [ $port -gt 65535 ]; then
		echo "ERROR: $port is not a valid port number. Port numbers cannot be"
		echo "       greater than 65535"
		echo ""
		exit 12
	fi
	$perl -e 'use Socket; socket(FOO, PF_INET, SOCK_STREAM, getprotobyname("tcp")); setsockopt(FOO, SOL_SOCKET, SO_REUSEADDR, pack("l", 1)); bind(FOO, sockaddr_in($ARGV[0], INADDR_ANY)) || exit(1); exit(0);' $port
	if [ $? != "0" ]; then
		echo "ERROR: TCP port $port is already in use by another program"
		echo ""
		exit 13
	fi
	printf "Login name (default admin): "
	if [ "$login" = "" ]; then
		read login
		if [ "$login" = "" ]; then
			login="admin"
		fi
	fi
	echo $login | grep : >/dev/null
	if [ "$?" = "0" ]; then
		echo "ERROR: Username contains a : character"
		echo ""
		exit 14
	fi
	printf "Login password: "
	if [ "$password" = "" -a "$crypt" = "" ]; then
		stty -echo
		read password
		stty echo
		printf "\n"
		printf "Password again: "
		stty -echo
		read password2
		stty echo
		printf "\n"
		if [ "$password" != "$password2" ]; then
			echo "ERROR: Passwords don't match"
			echo ""
			exit 14
		fi
		echo $password | grep : >/dev/null
		if [ "$?" = "0" ]; then
			echo "ERROR: Password contains a : character"
			echo ""
			exit 14
		fi
	fi
	defhost=`hostname`
	printf "Web server hostname (default $defhost): "
	if [ "$host" = "" ]; then
		read host
		if [ "$host" = "" ]; then
			host=$defhost
		fi
	fi
	if [ "$ssl" = "" ]; then
		ssl=0
		$perl -e 'use Net::SSLeay' >/dev/null 2>/dev/null
		if [ $? = "0" ]; then
			printf "Use SSL (y/n): "
			read sslyn
			if [ "$sslyn" = "y" -o "$sslyn" = "Y" ]; then
				ssl=1
			fi
		else
			echo "The Perl SSLeay library is not installed. SSL not available."
			rm -f core
		fi
	fi

	# Ask whether to run at boot time
	if [ "$atboot" = "" ]; then
		initsupp=`grep "^os_support=" $wadir/init/module.info | sed -e 's/os_support=//g' | grep $os_type`
		atboot=0
		if [ "$initsupp" != "" ]; then
			printf "Start Webmin at boot time (y/n): "
			read atbootyn
			if [ "$atbootyn" = "y" -o "$atbootyn" = "Y" ]; then
				atboot=1
			fi
		else
			echo "Webmin does not support being started at boot time on your system."
		fi
	fi
	makeboot=$atboot

	# Create webserver config file
	echo $perl > $config_dir/perl-path
	echo $var_dir > $config_dir/var-path
	echo "***********************************************************************"
	echo "Creating web server config files.."
	cfile=$config_dir/miniserv.conf
	echo "port=$port" >> $cfile
	echo "root=$wadir" >> $cfile
	echo "host=$host" >> $cfile
	echo "mimetypes=$wadir/mime.types" >> $cfile
	echo "addtype_cgi=internal/cgi" >> $cfile
	echo "realm=Webmin Server" >> $cfile
	echo "logfile=$var_dir/miniserv.log" >> $cfile
	echo "pidfile=$var_dir/miniserv.pid" >> $cfile
	echo "logtime=168" >> $cfile
	echo "ppath=$ppath" >> $cfile
	echo "ssl=$ssl" >> $cfile
	echo "env_WEBMIN_CONFIG=$config_dir" >> $cfile
	echo "env_WEBMIN_VAR=$var_dir" >> $cfile
	echo "atboot=$atboot" >> $cfile
	echo "logout=$config_dir/logout-flag" >> $cfile
	echo "listen=10000" >> $cfile
	echo "denyfile=\\.pl\$" >> $cfile
	if [ "$allow" != "" ]; then
		echo "allow=$allow" >> $cfile
	fi
	if [ "$session" != "" ]; then
		echo "session=$session" >> $cfile
	else
		echo "session=1" >> $cfile
	fi

	ufile=$config_dir/miniserv.users
	if [ "$crypt" != "" ]; then
		echo "$login:$crypt:0" > $ufile
	else
		$perl -e 'print "$ARGV[0]:",crypt($ARGV[1], "XX"),":0\n"' "$login" "$password" > $ufile
	fi
	chmod 600 $ufile
	echo "userfile=$ufile" >> $cfile

	kfile=$config_dir/miniserv.pem
	cp $wadir/miniserv.pem $kfile
	chmod 600 $kfile
	echo "keyfile=$config_dir/miniserv.pem" >> $cfile

	chmod 600 $cfile
	echo "..done"
	echo ""

	echo "Creating access control file.."
	afile=$config_dir/webmin.acl
	rm -f $afile
	echo "$login: $allmods" >> $afile
	chmod 600 $afile
	echo "..done"
	echo ""

fi

if [ "$noperlpath" = "" ]; then
	echo "Inserting path to perl into scripts.."
	(find $wadir -name '*.cgi' -print ; find $wadir -name '*.pl' -print) | $perl $wadir/perlpath.pl $perl -
	echo "..done"
	echo ""
fi

echo "Creating start and stop scripts.."
rm -f $config_dir/stop $config_dir/start
echo "#!/bin/sh" >>$config_dir/start
echo "echo Starting Webmin server in $wadir" >>$config_dir/start
echo "trap '' 1" >>$config_dir/start
uname -a | grep -i 'HP/*UX' >/dev/null
if [ $? = "0" ]; then
	echo "exec $wadir/miniserv.pl $config_dir/miniserv.conf &" >>$config_dir/start
else
	echo "exec $wadir/miniserv.pl $config_dir/miniserv.conf" >>$config_dir/start
fi

echo "#!/bin/sh" >>$config_dir/stop
echo "echo Stopping Webmin server in $wadir" >>$config_dir/stop
echo "kill \`cat $var_dir/miniserv.pid\`" >>$config_dir/stop
chmod 755 $config_dir/start $config_dir/stop
echo "..done"
echo ""

if [ "$upgrading" = 1 ]; then
	echo "Updating config files.."
else
	echo "Copying config files.."
fi
$perl $wadir/copyconfig.pl $os_type $os_version $wadir $config_dir "" $allmods
if [ "$upgrading" != 1 ]; then
	echo "os_type=$os_type" >> $config_dir/config
	echo "os_version=$os_version" >> $config_dir/config
	echo "real_os_type=$real_os_type" >> $config_dir/config
	echo "real_os_version=$real_os_version" >> $config_dir/config
	if [ -r /etc/system.cnf ]; then
		# Found a caldera system config file .. get the language
		source /etc/system.cnf
		if [ "$CONF_LST_LANG" = "us" ]; then
			CONF_LST_LANG=en
		elif [ "$CONF_LST_LANG" = "uk" ]; then
			CONF_LST_LANG=en
		fi
		grep "lang=$CONF_LST_LANG," $wadir/lang_list.txt >/dev/null 2>&1
		if [ "$?" = 0 ]; then
			echo "lang=$CONF_LST_LANG" >> $config_dir/config
		fi
	fi
else
	# one-off hack to set log variable in config from miniserv.conf
	grep log= $config_dir/config >/dev/null
	if [ "$?" = "1" ]; then
		grep log= $config_dir/miniserv.conf >> $config_dir/config
		grep logtime= $config_dir/miniserv.conf >> $config_dir/config
		grep logclear= $config_dir/miniserv.conf >> $config_dir/config
	fi
fi
echo $ver > $config_dir/version
echo "..done"
echo ""

if [ "$makeboot" = "1" ]; then
	echo "Configuring Webmin to start at boot time.."
	(cd $wadir/init ; WEBMIN_CONFIG=$config_dir WEBMIN_VAR=$var_dir $wadir/init/atboot.pl)
	echo "..done"
	echo ""
fi

if [ "$nouninstall" = "" ]; then
	echo "Creating uninstall script $config_dir/uninstall.sh .."
	cat >$config_dir/uninstall.sh <<EOF
#!/bin/sh
printf "Are you sure you want to uninstall Webmin? (y/n) : "
read answer
printf "\n"
if [ "\$answer" = "y" ]; then
	$config_dir/stop
	if [ "$atboot" = "1" ]; then
		(cd $wadir/init ; WEBMIN_CONFIG=$config_dir WEBMIN_VAR=$var_dir $wadir/init/delboot.pl)
	fi
	echo "Deleting $wadir .."
	rm -rf $wadir
	echo "Deleting $config_dir .."
	rm -rf $config_dir
	echo "Done!"
fi
EOF
	chmod +x $config_dir/uninstall.sh
	echo "..done"
	echo ""
fi

echo "Changing ownership and permissions .."
chown -R root:bin $config_dir
chmod -R og-rw $config_dir
chmod 755 $config_dir/sendmail/config >/dev/null 2>&1
chmod 755 $config_dir/sendmail/autoreply.pl >/dev/null 2>&1
if [ "$nochown" = "" ]; then
	chown -R root:bin $wadir
	#chmod -R og-rwx $wadir
	if [ $var_dir != "/var" ]; then
		chown -R root:bin $var_dir
		chmod -R og-rwx $var_dir
	fi
fi
echo "..done"
echo ""

if [ "$nostart" = "" ]; then
	echo "Attempting to start Webmin mini web server.."
	$config_dir/start
	if [ $? != "0" ]; then
		echo "ERROR: Failed to start web server!"
		echo ""
		exit 14
	fi
	echo "..done"
	echo ""

	echo "***********************************************************************"
	echo "Webmin has been installed and started successfully. Use your web"
	echo "browser to go to"
	echo ""
	if [ "$ssl" = "1" ]; then
		echo "  https://$host:$port/"
	else
		echo "  http://$host:$port/"
	fi
	echo ""
	echo "and login with the name and password you entered previously."
	echo ""
	if [ "$ssl" = "1" ]; then
		echo "Because Webmin uses SSL for encryption only, the certificate"
		echo "it uses is not signed by one of the recognized CAs such as"
		echo "Verisign. When you first connect to the Webmin server, your"
		echo "browser will ask you if you want to accept the certificate"
		echo "presented, as it does not recognize the CA. Say yes."
		echo ""
	fi
fi

  07070100064d57000041ed0000000000000001000000043ac03c7400000000000000200000000000000000000000000000000c00000003reloc/shell   07070100064d58000081a40000000000000002000000013ac038bf000001c8000000200000000000000000000000000000001c00000003reloc/shell/acl_security.pl   
do './shell-lib.pl';

# acl_security_form(&options)
# Output HTML for editing security options for the shell module
sub acl_security_form
{
print "<tr> <td><b>$text{'acl_user'}</b></td>\n";
print "<td><input name=user size=8 value='$_[0]->{'user'}'> ",
      &user_chooser_button("user"),"</td> </tr>\n";
}

# acl_security_save(&options)
# Parse the form for security options for the shell module
sub acl_security_save
{
$_[0]->{'user'} = $in{'user'};
}

07070100064d59000081a40000000000000002000000013ac038bf0000000a000000200000000000000000000000000000001700000003reloc/shell/defaultacl    user=root
  07070100066620000041ed0000000000000001000000023ac03c7400000000000000200000000000000000000000000000001300000003reloc/shell/images    07070100066621000081a40000000000000002000000013ac038bf00000a76000000200000000000000000000000000000001c00000003reloc/shell/images/icon.gif   GIF89a0 0   唫d饩,揶軚瀸毒蹿聹覟$Ξゎ铘嬉て誓畣,钷闹以示ぎ瀯捕痔陋|啂勂萍骀洳獤\灕滘婺谮苴秚孓增鳇乙讨颇聳4凭吉铈戽蝲鲱湮侍谝芫洞帠劼颇知\孚滩斁敬孓湮履逓稏d鲫艟都ゎ跍憾雌录勃ゎ觎致屢片治酞挝號枌翰录驸滢姨鲱翕阡灋斨胜蝌舳含觋鞖枌Ζ溡抟懿铂冖,坪紴~D翁鼎|庖軖巘赕纛謡ⅱ毬灸竞兼诩事填牯治塥鲵艸忖溱片茷<铧庖际适緤4种远栋势剃骐寒旑孳挹呗<示硫骝暌沂纹钉挌屸谲戮魂揸職D媸l什勞<倞|钼歃殀簽d夂l症<畩H为l微L枓屸苿纹任4譃$帋勎麓灇勚氏制滄脂蜮鸡歞趾|簹\蕈4邯勨洲膊ぶ周竞储侱媸剨妕尧,憾枤戅衷灑棪拗葜鲦軒拕贲谀馄T殮斅歍廪錃灁壕釜蝾羰颇贽墚Δ挅囀旅蜿橼斡Ｒ涡侣娟怆孚宥帛害劍潞缄诖8移腾茢曛ゆ咒谝晕兢懂あ蝲懂都蜿舢谥则孳孚苴周潞崔掬枮斊侍捕雌颇骀熠阡孓芤以凭莫Δ铈赧铎问枣谠揪兼揿温坍坡闹卧挝詵枖翰存忪抟增铧质螯逗处Δ膊!Made with GIMP !
  ,    0 0   	H盃羶*\劝∶#2D $j9Z犧H%繡坄j薗LXFp1c0潨鬭阄C蕚L剻	#漭F屼a咰>P婛1幞泀L~)啀;邳嗬︽##尐佲%<鞇-b耆悂
dV<`匐-尯#qd埥a/>9E F贪bG
玞.噦麁A嚟12	Q#L>頟⊿儷溪wR贬哻`!L4|羋D攁>z)!趁Zo勅鑳靼鄨傽峟?敿#]a詫E.e窵袽/n▉EＦ8h6嗖;肵
{邙斝~怉o1佤們#儡撂10/覢{ 
o6~槖}膧M刎袽蔌侻.乾a6(矊3攫PH'豸26眉1P扛P-矙2欋0O鴲$p	+p6@捥4莆腦c@#d4 参u|駙. wDs%O鄟7\扔䦛厬09鮍J躠O51l/~X
(j耎杠%.p 琑K'`CL葷@	眱G笖I4拠#犩#j衻#b鄠M34	haG0巹0!>
詪*蜾cD跍R/ q0d潴;馼JyJsD嫒嬆睠Qa崱$鼜0@斠 #	}桢2a`((1c;p駞/ㄔ覎?飫L^d腟噃>鐎b9騇爔佂>卖垁OwA塔s"y凲(饯3?l糛
9Mh樌哵!hD5$=瑷-
槀█Pq駟&楶2#-`r/腒-&`焖敯H;玎b00oH饶駨'P援J/m袅x趼腝覈0刎儌r顇∨>翺a匄E, 0鑠. A o皡b0-魭僜惷侠;pQ屛!o圥鼙Al繟^#FA嘚噜\la6!30E)y竵擛腒蘩9溽厎烀匯蹸*僠t騚dN`.l釒}/ !瑏5D萑c
~@Hoh 悁養{?x傽8渃 宠4簆
"ht  se峛嗦5z5 *郠轅t(;0*婦AF"ρ塟楤笎> 宱N0悂!琯翗9鹇{!铇陸{福 ;z
'グ鈥!をH 畞w08癆媔宑硅,p@拿L蓛8AL#荘!簷B漰A7Z袊0剽9
 U|]楩)鶴坸C!8鑲<娏0屷邩405l(0C5蠥L88豍/ㄢ1淞恅劂
忉 A	H0胹T0勧禅84埫cHE坱0Qh?横%紑#惼儃詡概8V~肌H+-"8 ^袄8nAm@ (x啻
5#鋱*T媮7蹄|x5C@*p`付厍8J褝`予!壌@m還O新韩H~wㄡ 羿B*鷄僜haq嘍@(7!腊8 鄟88A1訶z"疯啤p囨FDl懒L乩愤概0\`
( n0)N嘤赂E$繞坑x|H"P)鶓.膩鉖E*鳴
嶔B B'靉7x@葏L#)亦蟵剚禯/*&嗦譎G溞>"騲丠黙卋tCq圕h4箴A0艫稞 p鄦T9饌愸緌勷'		媮C樜处7綈  ;  07070100066622000081a40000000000000002000000013ac038bf0000b44a000000200000000000000000000000000000001d00000003reloc/shell/images/shell.jpg   JFIF  K K  6Photoshop 3.0 8BIM      K     K    8BIM             8BIM
       8BIM'     
        8BIM     H /ff  lff       /ff         2    Z         5    -        8BIM     p                8BIM          @  @    8BIM	                       JFIF  H H   'File written by Adobe Photoshop 4.0  Adobe d     			
   "   ?          	
         	
 3 !1AQa"q2憽盉#$R羈34r傃C%扴疳馽s5⒉&D揟dE拢t6襏鈋虺劽觰泱F'敜叴暷凿籁蹬斟鮒fv問Χ浦骣7GWgw嚄Х亲琪 5 !1AQaq"2亼”B#罵佯3$b醨倰CScs4%⒉&5乱D揟dEU6te怛硠糜u泱F敜叴暷凿籁蹬斟鮒fv問Χ浦骣'7GWgw嚄Х   ? 781ヮ釥擆陦 岉ｔv 5粰  詴鄊?炆搼峈`陙 忷轃鶰?8T?蚺挎[ ぷ尰'︽.~)琱谊 蝟鳓麙鞄"78T?蚺挎[ ひ_:?坛 I鸑6仵 <z_i莵鷍 蟧鳍'.殊/T	徻L 2淆&楛 朥 沢䲟^.2q 覹䓖/碿扥璤 'Y鞄)> ?~鍟婵  燓~}P :剧 妟Μ m岿$绶 $憫'趶紫灖P;  慂< 蕙艨+倪u媖 =岿$1ef谌疝唢C場G> ?> 濂艨)亲开帿G+脜 Μ黕唢R鮤醟 9哭憫旌祟M鮍躸L洠颦澱zwTプ綮唀U[蚾}f@xs欭m痡餵累:x>+?臜彨y讆J俀暁P$恤荏9'搂 詴5贱u胴/}阦oN>韫xd鶸熶N寉7嫸待M殇u蠕 j2I樽麔麄 盼烻:w煯~鼖譒6必y1舄 ?1鬺 4r,┩d:薩*`浩-瑗s廏6氝頠8佚戬 rP萴T61膈qn终粀緰@箻fM喦:璑莅1菘E枰-磓1O4U㧟*' m "儕瞬*6賾`~鞣魀謤:倍沧9	滸"}諞頯眳璹N窎%Jl5?鲔?)縢 麐G宵妐樕婧;A6擖沎嚎鶫%瑉oM<嵝隠 &龘覝儗5 ろ鶦鈷矫鞼鵝 +黆 鈔稂;y嶤徻.?饛 猺麸馯 壂O巑 暘8钆阳京 &e 腨 P弩齨>漲┶%{鱓1襰O=旷^Q哣;B巤<b >︳详貇]"?棚#z_漮?}柇态蕅Y好c襮鉕块回Y诡’n=~档7}３怿鶲埕)o借8洬//持鸧M苟趘9曮董靔'K苘w鉢 緱|ws浸瑹リ5蕶睒[=C蹈7喯三?砘濋 諵W媙鰪贏ц溷境鎄Z 胁-酆%:愙'庾 R桿薳`dM韑粯: 麈菇.扮o纳u2 O Gj|q蜺Q>骳"R t絭赓亻 丫6[ ,T~ rr軂- ｉt紱轡=: ｛逫+y8饕鼑~nh bG艙*9笔$嫬鮑餷雃刳,s奇"A }⿵vN茰魉O絸F婀s揄 凣-囤1c脼摞++块6m6鯘fi bλj ?遷齯1棲fmm卜nc)烽B渾lkx 粏浨雇o/㈡:宵韃ぇ镰蛀d齉^￣*驱<d逦蛛 蔠 婏麷燑7 VTq輮音灣 $g醷珻+{ [1殉淆只 =絴齖慱}巤<泧?砒 拔?鄰齗婟W鉥2i被踫Ls嚨,v w鴂躸涻螩/N7駵0峬n瓡諔`賏邏氝kYc汐鑉驮 2 黒寗シ%:蟁襘靝诃q?O莕6[淆殖鬥 尡玅fNmO∟.}苶肵6匚﨨虇3P}铌犴簦?委+殛阖2)郡o7 0﹎ 酼ァ第ytn&O鲔閅 )@紡B4宔蛩勣Bb	荴烼陣Fh嗃U陱R赎打C栗"{詎訥WS皕栔傋豯eW褿轹6靮绎Q<砀z蹇毓髡 [U1I=?-噾幧[岋M2'sz憣bJ愈緪豤*沷qoc畹葂:徻"枳妐腽9 Sa哐`唵鄱哐饻逴#%e旨熶苞#䥇)E#1尗	UE:附E5驽剽\胲R撙曝=|齁毾憝湅N=訍+⒈犥t酹7 冇^鞁玠 {Yi7 踡v>?齤艢孥曊韜▆7v舅靕2巍m_g *轰"@蜚 篨/粩9V警o媼艨w媶贳詂鉠枉?;c燓蛚| l啃㥮蝎}:芹匛$固]°罂敥z<碽: 譫,穉鲐7-?蚐/#T璽裁廰┡酊忯淚q#筝箭-鲲zc(|B撅蔠U嚍VO䙡p^T=['惠鎃麶  缱ㄣ筜郁~篶 un 蟧_?择眹镞X? / 蟧_?!禑 Ｈ菗ｌ逿沢轫a啮嗱d簐 )Y闭汜届屛桍Q瑎Z鳃[= 鍿 叕%岁7$:Gg馱扭賳}7A瘉78= 姳朿 窿z憯嚍榄藻R~訦麴#亽烺琴鶲G 定簹博惹pvh氜8嚌隮ng魁䥇.Ｒ;]j羋邦srp=萧r猻w譙,綮 炊䲣丰c2縈峱龃赿z嗑最*O涥芎SDp1摸w:tER嵉-r?砬g*禎鄂
苦m?彲 籎V鋴i陵|:9 撻Y击v辉 窊e廗猑拮b埒w䏝b2︵螊勼鬴窡r怇zE葁:5U<K溒V鎺L廟颀6誏'ャi9崶唪/r粭=_1趓, G I丹T禲幟怜I染C秨"o断J燌KkY紽姛卬%7媧甋~彺?殉襬~?澋N坛~M櫗~镰x 籧}7鍐劚W鴟泇乁..祩稄N簝=F,伢3n穷7﹐䌷S欧d颙2 :[0$N爭橾仵4渣l=呚 搡埝鏌e4~ 銅氋闀饦\進Z鍵;K妍w;茼考锄gF~饰K\柿X8滚=六O?たk cp飦鼔B>c蠇甍J鯚馿 塉 鹌O眣嶎'鳚鵚 /麵S  煬QCr/贼n !u+䓖z餏6Eg鳢:R<~䓖z餤um蕪'F<彽}G#?瓠kr'詰 b=# 
W趹暐召Q苉叽91瓄5'殅/3	qt鶲;紸$疸 觯箪⺳鶨u荦~ㄐ'0虢醮	%碛?蘒,捞!35Z= 犊GJ嵫AjT叽'⑶▎灞环具知k2Y z曶梩倘儜M瑇餾﹞芟鹯Fk\萻辊枬蛰S涰汕ο蟝/休) 滞苔蘖3'援 睎捲-/5s閏z擎直眶昜蛩箮:暜[岻魺k+㥮弒猣E韛浅達痗向ic賫燄l@乔ノe芉碬厛乒缀祷觛綅硬劤-"豾e2遍覺hcX详迟 n吙"奴觪)④偲昵6癨=兄5哓k俘头ń璮6-xu稟=緺散烺n腲栕淿ZY愩c蓮0{Z汽kk?1链櫭陲隉萒3䞍开"K -葚顅2絪黋堹鼅O祔p:;9邤痋 鴳 幧 霄蒸?瑔>痷2?% 肓闃aW紏d 娘S 聴 绶
痯 ]律铥W员T?.  3◆䶮掻嶘铬課仕浌v紫筯銦鮓嶗忷瑶'{呠q铛阕慟K 鑔{殔?馏蒉ｄ鶕絪燌琮T I淇裎胅 l!輁q嬾gO$幥n3.U躃}8夕骖kL蚕殃3逽宠,q3~/服趓q2 Х#j銍p7胷P%茪羕\N筑惞蟬縂]um G b蝶/9蟕}o|ns,x&4o鐍k} 煪" Z)銔鮋<|j$O姼≤;嚙偮翍x;螄4 袲}伉琧,x'痢s 齉8譄 慟w鷼犷$y殷 |C坵Wx=绸[S..;,$5 i享)e.{& <x7點齀`!櫅A$)'啃R 阺歓荑~娏叁񉕂|棗:?x從痋 鴳 幧 削/"鏏檘詑螊卓艧$1[' ?軞7Y拄/ 7:'鞐@O髇	^鎄7WkDD毈馼$貮K{A/螀8|X 鼕壉熓?賥﨓}抔錹 ~q60垞⺧框)紽i3髃 ⒕廔铧泠姎 鼕伿ｓ薝魥I魪hw~o鹒>煡zq檹7蟄魖H诮陛賢-o艬) J邞_I
健甍Ｗ疿癘#蚴#/猃腴"譃@*>昣高#炉lw~t酲 E3瞎岿%鞜馊凊; 蹝A 嚬t䦛?高)5環唨 4H
]鹂 8BIM         'File written by Adobe Photoshop 4.0  !Adobe d                   






""                              !10A2"@P#%5B$6p34&'7 
  !1AQ"aq2B亼Rbr倰#3 ”癣猜褻Scs儞0鹆３$45崦DTdtP疋驍訞銊翠%6p        0@!P1"2BRb餽`p#3C捖s⒉S冣虺    炖                                                               9瘧 罉` 1 菊B閫艸 d繾           V30H袘曇+,a韴釖PsJQ$ 钄%W挄#, D諺膲=X贪睋'Ⅺ/Ou  *9	BㄔG檑劸敔YJ擨	P% + %H
 h懍戣瞂伯经譸  ╟*p驛`-P襐腁L偂恃]畼C肺 
侣`yJTa底殙!貋I3裐+$轷V  C89$襌0礑i+#*V ばH%c
*"2!
*裇Uc唨H襳葦懗音鸀  
v1搂ykyl 
 尅!	Xu;憠EJ驪D霷荲D F$屘e倢鷁烻^ L8Vx竭_:u惽@  (匑 @""B燘!,茮9阗釋0I]}I J8^8膴罕k胫c  繞 倎    
 P臵N蠁=5L鷀鼼疇 G>瀜堄捛窘 痀 0   @ P( @
p(3哻0臑鱛Qk  Q醩挄#,[媵^ `  ( * 
@  '缜&}ぷ`  缑澄塨達:鯓
`   刢.撒瓗Ψ7&l词I(倛 (倛N8$髦絸 壪溞%摟^ 境0  x瘔\<*右Ij\墂V|獵漛蒭褋隿   (+販3q傚L潆г氺  |鴦(+l圻橼C  @c畫)&径n醐l_j踡2玔7犉3鮱櫅YI超趷荋 R婎'p箤檞Q锇  P9r釹H?^谨}d0 @b薣&k辰6s枯産ZUy遻v&|虱L藁8遫U瀥皌謈:及%蓍拰圔+y淐J$L鎘Qk  Pq藞匩KOn蓦}$8)ywa籤詼榤W1,-s氄窾[濚M荎毺Mu铔Z<賨k!擿椭q媣廾  [尼樸酙蝒咴  s$ [on界}$1AAG媴n~殰Kf奚幍^kGEo右JJ={Y归r貳o7g裺蜎Ｕ"荷>1韓诓祯 刅8n8#絢  99sD`-莺鲘魫繾o戞Xuj煎蓹騔;f+|譃墺W灕浳.eU_{竢Xt抷-o泀*猺嗡WyYv 娢'癓氙  9>|Bsp喃o^竭}& <.荢2跓5洟酵侩s导\齡S峐合T袁辴筶墨庳v嫡2<佞]kes犆oY0"澄p黴皓gcu艮  :>+{耳HpRU泬m備]Dq仓莃5sz提Mg阭4苍揎[峜j祵羸Z=堞Q5ノw鄣瀝擞Y3(5= B+/$柕敉  鐭>/0交*
W1q番槶UGEoV4櫟蝧花瘦誆蜷闤7w漲ノ鐅牒<\:k6犬,昝壽覆i獾淽龣 "瘜痨蝌逞b问腴涁  9>\^e.]粀]nC偁hqcX瞣鳜鎎迭軟.孑宙瘑隉/裫镂仇O觸趙>矾窎gO質妪簅Fo臠b殍lnq懋釾穔|鍙Σ&Q軼,粵玝p騃;=o閧  9>\[8圥\詈軉D钧ks7谥2汛覾誈杛韲彮扯q緒jo婢澘*┽糨啛篼yu昔辿筕玗袭鹼玙鑌縖2簗馍絗i鉳g澽頥疒i疾@U睘瀆`俶u骏颬  婕鵴y憇碹狠篺,簤,W爆璯Y浘萏Mt礋-祒{1.煭揶tv字W
f怯Yl崴]条务>wkg锈冠嚹鰈A嗾シH毝皅溚k[&蕶蛋*肩渱 泏骏疨  鏈鵴墕BF穅交烂桟暎rV,=-k湴颵XT?醭~?吠r鶿sl訫bLh49挚9瞭諿8懎峼豼rS秃w>瓱顋<蹮k=志趟6乂8嫃${瓆#{  6缢2+/{w韴阺7Mm熳蚸碀Ff用璞鹹辋gm泽m5l麙5烷逛?Iて祔蜎15覧焛<.S垆~/[7忐o枤y}欁骖鱯ntY,蜔@q)伺9濇簘!z 4缢3	"8货碥饭蜩錅毃秚諮R97閇黈诤~算e0卦VU䌷Uh4刂9磚諸蝺3c環-;狐鏞晸廫 F47_槭且.鱏W洴"穴十'溂&鱖>  a蠗檪(漖簐顊1%头ピfcE谤jчq僦洪(砿屨g湑Z5謴祐諸蛃k觶lf筒+槞K:赩/棩'驘Su憜桛4谽|,瞛%W溾3彆o5郡 梤迩fb垝蔸躅{豓1r煅6帤穃醅k硉BZ杶+j籍Unw淺旯屰籯*f窓梩搒9秃虵mw泮捼鞠撧蔬3畈6禆昇s塏>)+	7哼炎  r迀羹b$栵忒q盅W品籥g5蝭滨毛?铭Vo諀舒g墼璼盞G⒆1ぽS滚諰蚾污4fUb諐祙OZ矽絿茯V睂媗/嵉緔额S8屻6Y街緩絸 晄迦鎍b壦z镒穄匔涀M龅厹襶b馏緟a夕龔7満y烞谦.3滞町猳O滅\珉T碹Y35婩4槕`萑5毳苵衰鍅6c胹砑	t<箐\鶿劑<G<寄萖5~嵔 晄迦蕰蓗镞捣鎀=鋫锖n:徫齷 杈G7n毈洗娍4觳钹7犵2nv+莧捦c巰-,J4R私S副 9.z赣s沒!m揝些s溂la%僕枸  9O>\0縩誻閣vh312谖/楄篾,斗洕Z9煢 V祰塱6E误v壠_;k輾,頻话)鉓诸-&鐅IX娣悱^闶V)瓊∠<Rr癜懮b志嬜p  滠啾彝铦鹶洡Vq},蓐桉殢享k橐>6!o}n2倩嚂OX铌紮6Z%唖⑼现wz簂%赢牭>Y舡K瀖}zR?嶸ow9氆n菹@с<Fr剨溚庯柰v  G藦%H/E磉碷H脢諽6g]j緊Ψ咄q鯹W<薒|f褡T顂y垛跅6]浳毆r彻差箢鱷厹i3m鮒"枮氀鍫鐩]Uyf邵uNY瀀謃珬井Qg軔<I伺%#K轸n簚 迩敘"蹄魐k〢X蜩2厴.g:9佞粢c淼阿僦柱紥突[契䲢烋楟s
酆嬊6N梒獿6殬癯揠背瞢\5呵OoO5穘{(溂襤%掫/]@ 恟闶YY,迯呖f但甝烱6[禐X棒逕臬~跃+梘湹<K蟍獨╭ 电躓搡殷菂Z鮱襎1涳]璨秀齥戚>&^槞:\簂=8伴梐
^3某宋蒆%掫3]@ 忬逅寪彼;w熳R  1漱n"d邰苭afY奪剁黈~铚3旋
锒碶%洢B,}-杦Zc.H倆/籟6VN 緔鈙棔嶥Y屪P  <鵵贅Ik;黛桼 嘓j砶殛红鏾絢q,{..佪[鐁6z.緦9j碲柱gc┙眨r朜,.q沷債翫=雖╅ 凷9鐗N~R;朚o柰u  E蠗/欝	(椠+筆0 孹<afgn鴉llf授%МV弓r沼渐鹋媳擽Y緑唙:+|粆-J Q櫴qY颂Il裐  嚐[2$bGE磉彪lpP +毓粯yf{SK蝆(F獆X雁V嬅裬滙廭峢广/Z刣劭蓣璮e噁 T*淩s驣Bf山}疇 葃q屐)z7n龂ZP*8m4谥7M2(犀蚆O5煹畜篆漂:遲hy骘盅yf勺T9睡U隙裂昃&9癹挨1@)姬8Qf苫6簚 !缜柌@;v7n衎鑗=澲I潾^鐋{#&飈8趸聵艢我6}/,尻轳3j:F雜,Z@@維夌暸泈鑍u  =藦0f7$硯徾縜重AM F驻阵yI躰犟p潭v沯0眛輌=.>拼畇嗡[砿狄)つ艞Y%喀硛 T挋苢I8bb踊&簚 缑柌 zK襷鲭谲丂AD簩躿3牦4~譄2芍Z.}砏0巅p閜s4X6Z⑩墡 Q 奯)溺?9趙予]t  5藝2諭$9z_~齯8(慪泡ne<着u9cg9淟鼳u耖.Z雯bFh0豬赫%F尚啖 P(淜9驠憸韢:}畝 乒p鎧蘢滼^涆縕i⑴誚\:$Z<oN襢◢颩afej条=l0ぽ赙 T@ I8敒w紧]  媟嵬祬(==f(倫繲<螦`5沧痱Y"嘶湀変AZD驐2蟡  8@*ゑ溼Il志冞@  饧竤k枌yu/GКM0
`!妧個)"砄A  Q 艖詂*"H驼"懰<O<詢RKF镄{  [mr鋾喳zz舶晙  
伮 

 
 C獰,嚒狠藻&鉝i3奼渄挮沄豸  迕溰陖=URNAU臔       <芻I揃扵R9N)淔F奔韀轸  [qs	$摋趱5c     PP   怈  )9鈞蔃屚沪緛這  廛忄A掇涇h諸釋Y%cYJ鍟9篋諔&寊$$ :CF毑#塒矖C0窻5L酆k  /舷蝞)
!j潐A虵覶畁P靨姇垚娜扫""%V%J6埳嶻厒栴汑{  )讼/8奅HP镠h 戁Y	㎎錔跂w$瀴c4嘡癉薆$@qDD◢盧d硥&%k敼嵊@餇  q^~畄$蔢械擪4曒6Κ"@狢憴旻鎎,j砨Ag潰"H弼劄,Yip胗t  %讼A<鋪1潙)(甈S^璅T偉%晳QedYH錔琸*倲厇CI挬K涮缨掷 &攳綢d@)(Y"t"+DPb塕2#腍蜹怓獪圕-V跬h                                                                                                                                  燪
!D(吶(ⅱTB圦
****8D("ⅱⅱ｜呟C,0倐PPPP

A牋悻 牋碅圽B臕AAA 纈澺e8!烲濒鱀(g2镗刾彙H*AC8 腷武=3  F0魺刾





妬\W笗舚+塡J郠j釽笗漠%q+塡J狻


吪 牋;酌{ # 纙/兀尲J?薀棒邥涘囼囲6#<桶㘎龁A瀎V蒁犲蒁甁?撂倩`3l岝猗塓M鸀$ q彲3LF鶡暈碔PN	{`~g韷L@燭`侕fl2甶檈鷳P%0铏夀f財立?6[!樘豰禝~＂P1韧觺l纪眝胐7緮蛦A濢掿"。2b韱蓹
h堎G褭驈M鹍楄扺幣b矲樇0h妱9鎙6魺/1(`0~4n吓辂b禡転Q3a#;艸&gqL)!#ロ3`栲鬆'TbS啡┢9fl6倾欨凾碱M8羖S1q)浖h腡谴)揦^SwQ1沛 ' 28鏅佰巊鍡( 潶Gb	儊聇0:,殫塤Y5蟟)韯趶4媶崼瑳-憎)ず…l┉槅.原% I,蠑d鎫YyI妱L	L8򳒿i詹*y2-	愾蓵j$蕳懦-騃橤(禪4棛4毪"$>嶏-E180i媽P:$蛝巊╟虆7dC86keFt墖Z6d柦p4j煶独5仲Q/僯_艛鱓I{\恞&񆺒"8特lｈ凷2訋莟 
氣S9顩misi╡#侒'祆N唾卦H9挐2o邮おl0關脏躥m恛欍+C1缊U\貼栴m6平蚯1;c嫸 洕;墉韘7d悖D#L&3a?螱 pfFb鶆1嵛4捾'铦#;t龓/o0Ln[J莉`%T6`nノ俬D4!屚7鄎f%亰"Mpkd:U#e"tf'鎫`桶zqhU|胶Y頳聘qf (笗a3o#<脕)橆H妼b垈VNl&萋p1膆vvO;lO添 0萸S儣5)蔂(獭0櫚濆屰簊b亖""査w6窝8?E3l闭踻p S7fb9佂７柼%,yD&l2|s?|嶚p"$;6*076.DECNV澳"uk6;煕犂&煅S7跅n╯苤f 锡饚TTa冓s狵D){,CW`u#W`u'R 酘遣xNp闫(飫蛿q吖A;5–D鞔6拡蕵饸b4铦:9>fh幫	{3l癣8纋 俿牃丞廳犐苴("糗fl27;8乴h寷y&KI9l溽L[侚涹&n庅5'$拇D,.償$迮fl2|s;r83l 臷榼簈艁袿j4&槃夑?3t凉苑R渀 禵1N|UDt搚KE蠧$筒7;緇b櫠0[-
瓨鵯 b1NG槯潯n辂GT陀;郕hD拇' 変亄i鞪誀2疼'3緃鋘貶S豛茘"
 W蕩媢 S凘:翛5rq8 滀<擟Pi*a4屻+u6P倾欅牐6蘍[ㄅZ h亗za潦(瓊f椟塘鄯R墘4#(繞簞T3疼#s煕#60DqFPW蔛B~:瘚6D岹$"T`@z3v溶钴徒h帇e"*)0栳,帻趖f铦 & `B:_Fn滭"0俧迡!W蔖焉閲FnLO:74zSvQ殴蒹bS6鬘8E0-酝レ洼矲╂$h78 涢M#s擔)灀! B鎴蚬鉌l'炫蚄鋳h嚗7l嵨餂`螴鷥,D悅[!	R耐瀈 Jn滭v鬨PZá蠶iMz-@ɡ緽櫥7櫦瘴1M@"2WW韯=9踐0ns粱z'|ケB!P脿鶛绢s>P症@P%矌#_Nv肉3煕涷.
*穃WhQ8
XQ(k獕\%';A橥 蝵hⅱ妲H `



ぽ妿-蝵lJn呙谜0D.K惼v滭呱51M!D悖3度茜鍽Q粱z瘙霅r987l恤狳="#0f購蛽洍7.nA頫芄箂+橿銞镐f9{厈甞醊閊閊霔糤糤篧篧糤糤糤糤糤篧竁航疹痷{^犄B鳁冀孱咃顓鲊a4L1鶓(G牋0 '43m淉De鴄QHP@a@@(G,pn魿)F%懊Ts盐Tp嚑 *8F8倎
***8 <
#槣[
罙AC40P@( P
@(((.!q圽B竻.!q圽B飧q圽W     燶備 (TB妸妸圦QQ㖞2ㄥ0尼a榕EE c瀎谽@!渮Q󂰞QC彔Ss疼$}攂}Бq3d}zC哖倖!CD1妭##s(&+踍邛懋踈羛\臕q\T
倐倐PPPPPPP\W舚\J釽漠%q+塡
郠歴疼#7帄3+7㖞v摹瀎Vo靟妌y橻框佣凉鎒n 罙hE碢響<汰咦倐傍`?7<态哒Jr;|0	玊b燭T=S(嗤矻氏P屦容;渃;l嵪30g⊿v/坃椑鈜78}'m懝鎒gゲ	ㄠA_嫸A5峇P鬩盓瀎Vz'DPA|N;d鋚+鄎v舼;m怈El巜m懝鎎pg`剽v靝;|.鳞b9E屜3+3槍蠤'lF楢討&爢.奻w飯L橡f 庒聒ΑWW忷?ㄢ恽:  0	儒v財腆7&嫘`tG 幚i(R:`:K秛9T喵'/尮m*u3I%巌咆nN!s;c87|7!3)5M捾漩罤:磶%:eXp'V=壋抟f拋L5釩bgAL(﹃SF鈥G+禤Gg~7 膱QG )-g握MMt礎琢ZW" ╭N1,?K#梔2籰屜3tqf@ ＆L紓k鎀98剋_q	踐茿K氁品洣2躳牱D爢;l4脱艡	傒o圢R鍡 D&''咆|罓庿>jW:{鈯F `p7l盙鐧簡-/塓裴0k&);籨08傴庹.0	!nP捻懝鎜)竻l軸浞跈=/	褥籬 ワ靽07坣ㄣ8;c懟鏅E躂l亖-!:y嘁'sNA
;渹ぞ\陎0峋%比蒹? M蔅娸Id]U, 8攑6 m圕 &}G,7禙漵?un.;(*Y\险C- wbv:圓1紞T:禙餀pn.誆簊b扗P8r|P_圓;鄔u'UZj&5藾#w听裃A7 庰[ `歜.柾0(茴Ga柏@E \潯(m兌容;tp	
棌筆凶供筛"庒p慓┻ "偆p鏟宇aqv鶡(閮qT拧骯鏍b赌`0	Ev拉&l7 "T槆Oic鄩哤韾s?|BnH塭"( b垈"(#愵仂Eq窫LT 樿>{脼数驦#sE0懒DD1P9N? 嗗wEC` 墏h&+ef粨啵曐d鎫儅瓥貰爢+(&凩Ta嗚钲 3鱃1P[#④f墀埪(#tLV谻襳鶡!7覇-慓圗纀*;|q鏅糛&鶾0##E|A2堐;`B(o欫鋙Pq%  P垩9w听	灅1P8攓 溇8庂 CoD霧蒹?tp	緪@榕j00'  镀*%AI踒Sw 欓躟牐"8JEEEAAq
鶪l嵨 涢n1妸倓栲怗 QP*


L韮皀w勏R


锠0r簜傉EGt>橤奻w勥PDNHèè鷩lJn鶡綟睃,T蕍"浘g夫X0鴅Q
腆7G 嗊薔%7听(!夫訍︼ 1f顣顣顣顢&曨曨坍k掍.J+掍ⅱ.K掓巩k汍附膄/q{嫐\5蛃\%M4脱C`2個G爎 è罍劇緂稂(qf1G僿听銊3眯2C8G孮泥S3縳#壪"倐!榸唷!媠罜(((((c 牋牋牎0P\B傗牋竻.!吥.!q圽W牳+娾 !     5曉2v跽酆豈斫q趋o[妍煰/荦u~骐索'_囶N究ru觖摨趋__:螨亲最>究q貂麐,.?v#,-#癤\~雓_u/籞纵鞬顤坯Kb麜箎妻竞墋meU3险SG戛悷 槄麿泐竁5骁\茴!晍7;孧趾雙+畹鑍.ダ#u瘍鑍. 洯姆顣宣祕{乸籛练j鬾躔r7氬鲓舙B骪嶆絵昙甠z'颱】z瓋疷渽戤z獸鵙蕺I7簳骱悕颔鞪=㈡{5?沧掝蒟鈡`C砋簖薥麣硧{McG瞠;ExC弟Bgo顾p铟▇骷喛忽紣硝Z w脨$DBt!竤跌a2TP 燝"	 @#$拰
8C1貝"I (4琅8j ZG婭w" 鞟妅B )>闆1李gb5q笶5sCW闓Dx斵Q# 菪W$N玆]bC凘 iS*C垏禼CY蒩桑A!′颌&拋<@8階䁖7,蠅{#S膱' 稟槤墑DCQ哑b sN  #X鎹 j&*6 44亜5p駙|
:"笎 僘A帕爜-翜H!璻k 姺镔紬锡`FJ畴九跕u浀庆}Т鑫踸:鹷d["儽/犾(裿緤	ぞ囊捺d^§]脉顮p豪舵扛][任玘魼璸瓉5
鵤︺!寪艷/窼能樗M艻B綝翲B酟嵚:緶煾S侘x}聵\)溼]NWH(藎Ｈcml忣轒 Y溼鴲A^9嫾繿燩@%A@燭
釺
飧+娾/l/m蚌貙/fZ%捑欽鶽u魌髓镴4嬳鬌m
鹐鸧M疮驰糙Q壁
61N霒廦肱vk姃藂1b鑡磤;o(,ネ籗豌垷 3a锳A彟rC

Jqh婲*v<轗 4q6 粃叭T=m=`Wq 徿x
輾O(+3Ｙ髖O麱痹(鷤駵O怸秇zG鄪頠p柨澌讥祫枥"A駯継f历臙 J１襅y疚" "|覿$2SH歰頡{%.,c腡q彣Wt 徸閃,!X7	 峊I>1v*e\'\i聸tc>2i輞Дェ<~嫷$羫スQ[贼在$蟚M扗搃O揢.c]U!R^Azg纂+	銬I6~胪鍂D#F0卓7lQU.H┘M烺=顇糦$垤秼M]5L︷晡剸|尘J 迂{V杮龕澋Yu鶬桏陬腲eNe捐明JOr1寴菂@⒒榁"\{^o+4A$獉艃 |n貼Z时!□z*:j:rl0u窹T徲b尰た杘蓈7?承'mqw	=Q刏'h柿秭
vk腂／9潍艇玪=谎 +>'D"=|3y[ Om馞鉂{踲Q蜫9捽仉+*[a*m禥婾`埑b;VR K乘論G榻䴖梡$Y锧&{v痭逷t;a乁|\酔s&9Ew榽莪#H=u表偌胤g	媚=寤&6[n輦瀺宮鼋噎2ㄤ醴.JΑ進贌熼vY'艨V僻鰥l穒wU禍i隄蘃jy僰g6T5綸]琖TZ"枭瓡Q.b1]膻=]瓓讘評p湾榼a绵洝 ?秅蘫s雇t闈v澊輟簀毿鵶Aｌ驭!Ogeo触>E篾w	:1 /f演"蚆兌鞤zV駰v%阴%柀bN0ob歁5喩昗1琫Ep3雖b挰M会帆a鯕/忛珎{瀘,侓 ;鴵㳠莶螝貺T訲诃L覆-鬠4:Gj旟t鬝鰟鯶s:譪(檐-踲	} fл8樨縘s4gg淸n爴砩n省摄犒恳吻U0I牐桵!捓mU歃姷硾惍壅績燶Pi浰捝#厍&=鸦藩焍OZ%[歜"+檑1漐√e謽Oリ戆l慝乏威圹E⑾u換G1饤郢娌椃V望l讗b僬播簀炁%_刊WN軧*ム蹲O]艛1竈dK*	袆u襆2^%w啉齩㘚N 
辁鲗轡?襣萣庬.張輪BWd k'M&C庳qD郫s)vri/瑃ZN9砏^滈7闻$N遏檌櫖庘菤.嗲瘫[`秂{(骰k
y曮&v)鞓泽2猘OI孬緰娧A魌宭Ъ*%Ju窖晧]鵁埘悏(淂黄o.%伞7S桂7e&Ml遁-=軎遝:偖抯\乞m驄阧遌k5m禴ik嫖2澤& 	]姾3(:轹Z*k鸋WM┄i.1蚔Ym7殻
{D┏/V鰄Kj笩徲.i麜﨑	獨 ('Z.2gJ8曔坷V顷Z桨wL冀 h!>5軓喦莅s僂示D=%=歿鯍QO钻&S維5W駯-敆铒Bjm6j嫦Б)wF騟leU0擵g1;s*嚥M溗-甞]褱桿t贵n觿￢柟苼1刮]M骿Z諶Q跏7刷`S掮桐"歎-鈑.劾{伥建@癡C隁9"镼浰.d"<2韰s薲u植uQh#癦逹&莚m聥叭}EC&藞W9E麦&l娚叺柅_暨ow楝瓮o6踤壎Yid7钡剡7 鹪郌U4揋L爇({d鶔mv
i專l骇駮x璸曊(ⅪPk.35壠鉟.欸[孑nㄩ霽侬檡毒}-毜Q^@至T衘@A裶&=*絝蝣軥l
鹌降籥p鈊鬲YOZ球l鵤飒錰籘K桽"誣錾5&a獥蝅鉂j＾'姻z
I糙)您~8伪悠Wov饼Ⅱckβ0J孵檦輷r朤塶hh檎J|麉D芉奄┹:畣W Э埆鍂籐s$I愖.2%6k僛tW~壉T凊DF DtF熯櫦 l雰4^ 柗d峨WpMH俅禰ず珪~跪WtK6踦愭Kp*錒椰Rj(/h`, 4﹍Z䴗省眦Q穓ll鱎~譒0斐8Y-昌玗纝E鶳僓\禠梛符龥粗5οJシ媕'鸼飔),6袮Gzp袹`蝽敉闍 lEw镳u# Bo 浰蝺c9"郵嗣蛑飓	鷞o莜V凫滈牞揥N拚.L姎{廷赸GSo熒$2a鞉軳畆沖h5fκ獋>莈綟]cv祚={筟閹龄ZC}簕p鷰容WJI珠=┐n篲)肧陉斧漸絕顐逰a岛朒泑婾秎汾'6柀w枿F爺P to0瞻;n傪痕伯炠l慱QWs穃i鱖9柡*j仅r蓈I傉_)*id斚*鏔讵^盧轹尾M-罷稪枭縱墟蹃vF虼詾T"籓';:Wg橀U2輏胫鱍踴饤s6t蔣47_d鵏m吾"倴譇:m要睛"亿FR镖Yj稶<}瘇玩E甈 勑*靓霬綗篩EJ昒Q"酠qギj沶篢Q堠*Q+瞆v*眞硊褂)g峊謬6岧e?C趩赧a翺ag縢禡3k/錗L幾rf鯷 f嫬2
钕r|hE^澛GY択t?|6D邯)佧礐	詳t齺圳C
 岐夲垹A$C黯o/納来" 磱`?漤仨Xx^ヌWkC+膴毆:荓ぜ[G:T罱rt_*UT簮l坊舴严梢H]瀁j杇匍g并D)宸惇皍墳鍐繁埭S#晨;\-魭D*瞫$H霠识uY&~}汑戤荿-Vゲe\k汷,\[趱=劚挙K=琸n.W闒 呬4醒O庻o0眠啂邔@褁LG皠v鞌译&H筎郄K槸墂u+參ⅰ註娬>=礦缛橤v肥砊>畫琌};曏孷匈&泤嫥乡gv&3?荼t鐑fhiH2閵v帚铞K5゜]玻嵕S[(〆襌t:k,桯Т>隬S>]?`珶to\秨談祶杠┄dMmU蠭瓧Qy +?彡I鷪  売菒 浱${(腂$宦0趝鳭機2離帐2嫠顤:氉Z.B问險5蓇篔嵟鯧窏6挭[泌@>儽Z?趘O匬伇廽睏A蕩啁6钲療ru~５*磰尴F吖vq辞垛鏬n<朓椶.偿L蹿吚J愂ywk芎2G砈Ob焁骰/瞃耏^A Q""& 7槤	鷲鱤H玎颀*梿
猌j┇琹擼B{;=偐:盗柀=捴貼桿嫂Q"忠耪羲窗覱禾m-鄊V肖g硊x亿禉K醋倡8?T翦5蚦-礱攠Z壴謺|6倝栄a[邋堕粏6E洀e:錹:e簜&砍麐狪橁 婒'鴝忹鄝衲?!f u Ct=⊥vzj<靤eN僩]l棭5绎鯫玱^欢ski,w+m|媴g%2.1z/T款}J踃谮
饱塞7薥%v卺k#枯R晉濎[-黏JO礲帩Π屹雐Z- 	S4]o6.惠+雂PR行峡5嵒[p礨j+雓n蛀D箵顆簹%;E禠婒)5咧0Q^4齘B玩G5章n縊?吢濗l雔猋SY"嗛MX膈仌╂N玌諱|eT5/;勲5秧l.+琝[k*欻t恭韚,祉,惽q碚b4}}*韘=裎撝ㄤ莐麉m隼觃}賤;櫍44趄))*Q仡峫歽7嬦4漛L壵秊V罱>x个*e5捿T1峩Q^G 8 T刡Q>3o1 斬; 嗥赂cQG.xTST殮涥koz鶖霁-e=沦[j核瘯y堤对諭梶犼4*軺*汑5櫐柖蘀'f"嗡+澂&酨#"览.t?鸧赒焨h蜒S+巯:喭9黐SW.(^Y}窾乙役(畐:浤鶽J嫾鲧MIh毕|諙踭殙舸釲
?鴻珍<辌囓僽v冪餩㤘	蜈醦矵〒6e疫*買"T箄7jj5M查&&}<}w:獄吹S)
又颟莸騽賠fj洭㖞檝梥U鑝LH]掓闦:[k*猳鱫¨礫遐+*o昈癐ざ州\绻桖v
栛玭Si(龖H^I3A5&o1}.%肦卅擒餦MX8)%蜺秹*Q&畕+9揪遅e│糚=鰥$髭n=釭W琩毘ɑR:瀍Sk(璂d[	'铘踋&鰩ㄓ:璿箚ⅲ璌wi镟墅媑譡e2舋礢蜐6拨W>篍甂(识t讴傔[\4歽21
駽媘3=吏	'q|墰7>-!(->
谻`厼L!掍3g跡]4%D諶辢$吊傣K伕性J沞笻毶一e?稱隅椱*t扙U緃漧腠呞沯贡靰:He岃.U7.紹?f妇灃胦桿\趼寒㈨U6).圫蕼n64歽rに!敘紟@滴4吂 曗<嫑诉洧
t 
cG?忞@;M}$┪=稰5锭塄蚻7 蓾殘TRu
嘘[u
榃T耳蟦镏袭貊 wU詑昷4钝昐h鑘開Q6k鉣2踞>S錓f.]="庁瓛鵟Z r紝	锻i鳚郠臒"骝鎉 犡浟@墸$2訇貽Io禋kUE,阨摡)哉丢o┎蟤4;c(}geal顮鈒}}哭 n\鲅鉏栅{鯘炩镽-糯rX婶璼橭.巿襕]T:~絁鯯屝蜡#G沓D&@怄撲\轣芸R袊8貤x'Y冃+礚Yn縖狵氉姭{ズ蘿L猇妝斢畆h曜:7
栔[鸖!o gco鳙 b蚳懳戆5咓j:iv汱購籠Q2d殖趀T魭0椆TR痹較a檓鄪'摈D孫4﨏湾鈤狍(:酂榤湲"瀖5蜗po寡矡矺c(<\i鲫\fSOx覛媁N╃o霷剿WN琹鉾硊檅m赾仄X浜鐌韜6蜜贓D箹#%蔰端o\龃VV6T灚*d玥
7圍劆@%趚o01	蹌9x'T=,檽h閕.Vy輒舫&輓挞w癌.47v譟虃ドr竀郜湱綎禤+た籿g聂<m]⒈旜玃&蛅藑+]欵$ ο%=畝8天蹶雃5鳄Pnr婒4>俙內"L<P轤?躡
帳@唷燙9W%斛
7
#攀矾P:聚u攎=潛E}√,>MD汗T)粲fLd蓕q厩c铨瞦u(简歼终侪+j)h逵娢裮愱幭w獩+/<uZEo啡ソ薶k}紜 1袠	'1>(齘B湾▽#5吡C鶦+灿N*娋灢!r軑;T赻舻F殅u擵[鋀葮2m;叿|薓0{叄K溬?]陬枕牋慁柣]柾2闭5V謃摠Q5呆钐!髕2%F迊^F 纘!懐墘>A湾簖譊6迥5躉傕i嚑B*媸}賅姉`.扄鮇澴μ?%翝6刂謚+h娄跼(;k}h軿O縮籘J狠%>嘲丈禱)e咀v5睇粲.韙aC熬Iχ6簺篬X`爢蔠扏鹻8^&泫7枆l<?=碑K"-cZ kJhP

	枡S賉b甿=|卉g輎輔Υ製pdR踄,別隘bP牔r镼}綫&!铵桗%y 聟R!蟐'忎轠6[啋礿餙cJu%;椥覧床傽 哹漲+dSR榆﹋'挓x返徏Hd哵(]QW(炩fr埿愔耨0 轠诛臅菑7#鸓﨔S與淼刁kfZnt旉挙\(e[$规2U㈤%纠丿$凈S\婴K埴|L?7栞1l.'弬磕埻阳c:L.卐4身c茩r薑QcIEy?F螬:籸韡L棂7柫磁膺閒r\備ⅱⅱW ⅱ
***!rQQQQQQQ@èèⅲ凾Q+&N-Pt棄! 7 藶Po倘;坳}妎W>S簜<_旑*]楀K*茆<﹖(yV鈬暜PW!鍆丮颦寞史~V畞颦hC蕌厏S yJ蔝(!*翱( |)T9~Q驅覐&<烎<渃5粒散?揃鼩&/沈椾1N擥	1P(yB?敥ｙF#婶k騷C蓴ev炗"!蟱>`掞訦-?f蛐y)|5l:u.襖! `i皅qp鈩  i駄! 磤sBtH(€]Q婡!8窪 躬棱2-3/歍DY筶堐 縡蚣蜽8啀儯?(臛S⿱@E葷AA母
  繾^	(竸h<縆$t鼲B1?+荾aq.薈KK	$8p$莡P+?筌轚囖*+応1D@@袬胅PDFF
P珮q/D.4i/(D 鳣N1DL"H %
:&'種1軇 徘U麤蔩" ~ $q-\	%怭溻光I蒤\P朩'Jr帼-p.c兠L 庄m4; 1oA盌`e=⒏E叇A涡箙婗圽\SP圓.(8/k叱voY{-萨##鄋畯,(
挚 携秉J弨) 熼奏
u 琥u 琦 向椸	+Z(/-忇_&/SPW郖>集雷狰'皟'#酁士鯼弬鸏O儃Q?;R餺l_凔`_凔x凛/凛;凛褈铖!輻羁	鲪唟?嘂餋棉@怮愢<I 鈕"<O銹?妡嵑j瞯  ? 蹼璳鰞8措槄疉嬝钄箻婰n"鶧E玕岈咊]i"蓓勨Sf豖蹈6峟&D!O釧辎焬kяh玮Ob媊U荥E瀺旽5U枼睥籢N鋠*獢薧d*玞2zNyBF毧硌鉧9賮el祏爅'娩YS蹲橲Kl袨憰2qW鉞崟-T毰,/&j嶼UUv㖞-5" b% 岆5?.とc?o鱌4溤圉B廛泊		*猍ar緖`蠔竷o,>;4鱾q#'B侕j5{答s@菵偳
嗇4p,羉#_
p淓阉鮮l!P陬~u到楧Jeu-紻蝜E聊t涝xW墨廲笍s涼 )"%iUp溑蔭yq晩獞涟題吭價艞歲/4w滨?什к鷁:忡ut迀tJy漞[qx倿q`殁刃~5W曈w>镧堮聵刹v矿眵;_'w(盡d"P懁r湥W*═w㳠閺M鍖]8麜~伊4<HDD垐攄x瞡e<T錩28,o)脐$瞠睚焳2x鍒(uH`'&N1B獂鲋瞒偍H9蚑.佳x刲@彆<J>8昃2l礡╂h4H楧E1&巛@侌┩R0XsQ#厔y
""Qb蔭Jz㱮j{%q鍒1bY4嶲蛘*懡 g绦Lb2t1鳐x2x<	偱b汚睬u?X<H惸橓S穰	偯Dt┞t槇	俛④.旈珼^&穹镸"	1僪糣c溊樁徚b皯犘(疐b皟'#鎷h_1M/帇mrj儠鍮畩<uGA&堃O吳mPKR缘-KR&ォjZ々jZ枼﹋Z枼﹋:侦 ? 切抱千肙&m6僁5躘癣拽簨冭駋kq+獺鯴纅衎=1)娰vcTq@嶈b$k却h4  7猉2鹆7憀5#5I妦h鉪醕7咏腨4^ )喔!實t8J捎鹈骀,ekA8瞤淓譐n.蚥qct翋死拆褶K铃{s長漞pk)@r澘瘰醿Ш<Y箩審肸蒊仨⺻豖:tE竎MW邸<弖d/缘,'U凫&,}`譌癿錝	M爧緣氭覀7朣h.yd{1颛M <#U牴滑%{僂dM牷16帤蹕覾0笅{&	吶^捺躃樉5籎-茞Taq⿲4疎師:|;  ?  縱鑕怈+V8a糠豔艔哐豔艎艍嘬鴉=斊_-Nr你(㧏菐#鶗哭'蹚鎂 x焠'麶赺Z焠?欄>43蝶鋦h楍;Y觊涾腰巫餂语埒腰矣镗语埒顸矣镗语埒濈hTL禝'脧遆|h)V蟠P傷s莯旓;BM 2|x徑G茝|h徑G茝適?|c瘢髌>?{g砬風}庚岑>軂疬師n$噽（(閼1執=阁锐嚪 漎圑,齭
憄$懀 xiУ#F湵?yT磖}?*~龍S詙鮦:回}R)珚5憸鼞G峹筳铫彊∣僁L紉vGt蠯1H54笭掝炘	E]懹0"}$#
 $N8A%扩kHWJ搻L膩K2e*湥N bY-',饊f$
+.蘳諓N漻炂〆扉夰9妽=xMLl嗗ěOf
z6鬕g鷆愜魪6邒貕  杵	6"ZK峳5剛薆z@銆[i牎P	P"9&榤+踿RM9J馄
r$J撎搷B暒6裐檚3z4侷甧K箠2茒P酰'<B諊f2凱J@-XU偄NZ趱鈸Q蟦&sSAu蘂^98蜱>蘒缋罴9Pf 檝~蘗"鲥ぜ陹麉Ys爀N窒u曦 t怓毖糼貐Y蓧蝦亚聘D c	漷南4膮'R5 * u罒鎥8 	I卯+鹆鄲$U8 咋?睦2湩\渢D燎9D翣)HgΩ!D$弥廂	q膷L郡F絧'S:廱*毸\UYOg+X婑$T蠋&0粹b橚X┮x犺脆釒讧)=4"攧 iF硲)Hd4槝',隒帹 h8*3c."X&? 俤e階*[#\bXp@漟晉tH-8 7_迵7>"X"0灅櫓牢&p夎黫BU荰勯 #L铣8=r}3り垟毖*∽R|' 	Τ
e壝廹D憤鞭谋p壥唲餉數4幖uL瀬@x"#)4懅斋嗲Q<p鄤淍渼$"凥k┈q藗$1N磅犻櫇N c>孡
(RCT&u鯨WFq!檭勂	 Nr靝狃犞:F 壱pD嶻虨0p<${		vbgM裐@JA9r欬
q橃F<u崎腰銅k3 袓)豳 崥F&S9ヅ$qs爅8&s8塕_YEE黔櫰bQ隖
蔅歟4=垳办D.&勲'X3臢嫂<1谞鲟郌悐pNr5+玅儔杪*t K惽D粗G(C畉h娿I8Κ慭{19WG:8 	Q2
z窭X@&r\聂~H 衊uE*9	S\r廩
BR3├蠋)Q:9N燤啓<x塩8/鱀-39桅gT
lvct>栕闆鮲哝S7!C瓢4樓LK,唹G[洓呄"
枹z%=+摤.)馜縼]<:~,$害A趆韇李$眠'鞕 w{ IvMg鴳鼟頲鴲'.門磝g筺梆%鑓^侅|H燄{	a|$顊櫵鎊鴳鼮釻,粊 Ot\瘗'~$	n珌鯪麳挿U蟬6堞炓%*鈸戣芷s"Gv躃Pm鲜 n蹘"陴#鵮笥4/饫眠愔卛餭剃IJ庇蛪.赔hI施Hq恎猛娵揪欴H	q覑@㎜NdD*荴"CD"癲&A燴R!*R:F1>堾*'X 6⿳36N ,譒W=s怺P憴敯RP0墑嶫< !9JP$峱壣\3$s1D3O5)３	:e:7/,驕FlDH謢垚<q乖L kd与汋v誉?F`I鈳% 辋垾欁X萱; 4J葚钠&1=樐鯿賹Of11墝Of1=樐&1宑#懾萇`G!>(觯停詙磝Ｚ4>詙桙D鸔鎇鞧榢腛6鞬糘秇龤}諢籊艔軾|X瓫鞈馽6%鮄麜枯#馀lm烃+豁岏-黊谳枃崋,L瞰2u;_.-鱩/6怭雔6暏蘒*Js&*4+,+8"R狳皺	徢\nY忢l~櫩Wm,}# 薡2噌峉譎551^糥揝'况 朝;鸯坧瑙"焿峉+X艹且佚;~擈寝滖$席5H邱)睘!/螼鰃僮z6E|!J焊 O`8搯鲞瞋j~胂枵p恅KE腑G鋪炫瀺 霎 f菟't衟杪覻D鏫 	椹1%9zm季Wg/濿0g┡	欕3苘OW钗 唳L*6炸FB:I耍nn畓捕Mヲ抷赓R踵矖3<50礀^E勬餭4脍閭兽J芒H..g禟aY|87p禱綀全%xdx曺虗3倷A墹 偦枑焲!5鼝L鬷璭 qD7 e7躲胞~h閃1鄨琤B奠A槵a) -u刓O䴔厦,摙罺\鯋旜L,X4烩J枏'nu述U蕹9	恨/)L㎏O牪Km奟$陣摏mY>v!D稅焍n娈&PR鎁$敪$)M琺!P髩轏)BdB]3鐡镄辺i6恁牑)臞"jR帐Z曒F&
m.
鱯s祃鎑黯蝔o湃窾赤5t暕磻>呪+*琮
c%i$V=槩拟c鹱^钖羔*槕踵3巁適縉撰顬耂 W>8峿}84廧-I幏祛~礠#Uk缓O.輶Q<=%鮵6|/+鬛氣瘾1廍l豼@v弢喲芳颣 >U(N我鯬幱41v掙
昿<&>嵟t_泿"H*R( 詸E薢Z筙JJ窈7Z皺t薗q#朊\O:	?尅>鉕<漼塉挕磪打 [Ξ斴 Z罯I幡-7萯Wゲ媐扞找<V媸c37裖6>鯗& |鳚?l佷@Y拹h9扜Z&1鳮＿p+{'*EOb8L"膎0?綵巷埘{縙g彫躭貣樒D窸	TH蔖衫?B柯HU舝D--6-k玨Usr󒺉b栅词y(N*W9kW9k坳-祌
摹昉XY鄯Z惍睌较Sy常;kH褚瘍n"聂W1s/f颯靧:惩J廯'屒硂锃恵D"愆U嵚猐9A?H硫x欫窲7丠mG*/4N勡 蟱UE晷xs茝|!硒僆8峘:)窻t^Z狨>緒蔻膭/b+珎%螇O_f项錙翏礖]暀(簘8銉鋗硬;铙庋l!緧 !4	瞬
P乞缎戹:}覝幋>櫻'.&輮赠鉒\e渠hH$[玿!ニ畵仍嬜e0薶m'匤*W柩 (II A袪a娃夲 Xn章g<FoE'嬲龥額n'P狳帖f嘾i槏]x阌J髌4觯qVC-gY紡Wc;颯@		8	朣隦=峹GV卜|玤%K2N谎%脮T銑鞿m;jW{M嗢沇薦+Z觢虏}迩~8<篚腹rY躊S歔)B9-4&躚鬲姸x嵬E浉&幞4＂hW䎱R舲B垤だ  鴭媮b]C+(Gu
悷b	'?=p﹒ {瞟0稶葽*<@NI*き9*:
T9.6滋\%蒃2貳E眩#f蔺伫
L淚甪=h扢ui'催鴶蒕棴12tu7鹠烽戧霢潷Y)#罊Rq単I餌迩^9稃	*Q胿锻糇徧[癓 ?p℃豲燋m砻晒Y辜筁熂U>RR俐嗡K趍^锘绣Q頁蛁=颶SgVtyD{讂-.牧a翩=柿o遜f被%魝x"Pb臵甋搿葄j滛歝?P胈;p趝滧`C,$E寄斷.+峝勠#梩创趕蹷 B変伒猏1s~$-y-Y朞8飸(Ne/ci?'#*雡<=掌]梇鷗矸驔
垬P罜X鮫戏ovT尃萉8峇<g丐W巪Q稿S槎欲彡鱵蚘奖:&顶芘懧晧OOf痀11囦L瓱旤VV堲+&"鴮$4蔝蓏砹萇h趞耻萚(縶q#st"箁P匋鼡?謚尢姲B.F稊d↗衒 薅<ィ塼壥B缠Yr耉儥
IP覓&撛1t&爞yDa術4Z稰`(i戩翄eSr脔!{S睘脔/瑒妣:恉\0觹灷桾胢毞f辝w頦%考墭E鰦za玽泼i	OXc讓ヮ抯8蔲|n霄掤{憳+0aCA鮋O睇鑦Xf肔WX!!3!ZL8J<q斧_JkW顂R.u虯ｐ i 	痢灅4▔c簿g芠鮧p6稨讗C.ь..8GHT6D@m逆B罦0x碗5擫锳'*8y㎡:HxA;v錖(}Y攸蕸戛46)@.姪$$'
A$秺"3J爺炀3焠稷軷O朣aX蟛4繪(`i荡琹%佩4$7闤Zb}9  '$'I:父縋挳*H:&H=zj童慴}簡覈z戤森沢襫,印
J筧3蛾舭晬>ワ琽逤碂(0	衿渘I yk遺杰抳JnI斍A砟+`OF8怃甑{7贽KC扎;|?匼5蛝KEG炟[s苠塽'注峔~ -虩8坎4m袥唵6U/i D酇'/1-擭貹'P鷈<蜋砇筣
柎烨Z6R兲S '頲w%KVvI L袽旲〝u牂翧[ゑ)鍇F╩裫蕼懃U$
`Ru倅o呁晘o<4豫"|x榋2銢I!玸U.+i舩転惬(蓊㏑q7·艄瓬O{ yj>ベiq縸p釅N|S3`	枝\1隔烮k>痺NT麍JiX棷 淍酿奶])璇u囤ぉF@A7(M罕6纣u7ラI{);t溔a+R示V槟旄缟钬%-湕IN%┸蟒RP纼嘮筬l闦v衸hi舝鍟cR揅觉)蜋e嘚 %c.褋漈鞦0娱T惗z5悾(2罥 #燜薶ZH	hI髀,xH鯯U#FQqt7
B	$	<欶艄qASm磓欶u/郂#卋翁U廵!珄+Qt4=鬄#む諤cW9[e9wnnOJ趻驨y磝桜)C擱E6盓侧娓叶闬稹韞尰2+#1N.蘐訤鵹龘犄u'眕?CT愙隌5iD犌F繞 耪k鑟N烪迁$
榥紊!w畒m>v轾|搚擋禷羚遼~誶o$B迳k殕Q溘D+t<ODv鞏(89?舐小4z痤閨鵞3鋥ve鮸烍$寗]X捹.,x佟宥& 雧騰嚭Mzd%r観<P素eT壯_鵥]幖^43%L<⿳i
槑<雐氁RE	て闟B猽敧勳﹉J教'f]<Pk賸 (uM獟慗敁弡R瑱5W	僗揪Q窝_B挑%綒x檇I负%鏶埻萇傓X桼P株>Z戤懱frQ鸑G轇-B劇殿.T鼎嵓3贵.;O;eh[O.炚-洵'掋J:&
I8u\醧鳖∮-1磇%奥5闱抰%鲥賅=排>$4{q9AD碢E浽鸞Pe墹o+錷-o汧暕玙%恮讆掲Ff[Ins{90暁:6]F敩Q@贁*厣鋵T彦圝踁f悺1w'3;晍<汃焫$j"簩-Ｊmdp症 19N.
D僡.i萙T}0I瀡3S螁传"$"鋩0O祁G篅憘\EI+\L顽V垫堰E油俆J祴d酱鴌*)(+V^fH鍞敹璊#*}0侏覚璛挘遁═&Gh{鮡O@e:S泐6靥゜u%=艺矘sz]趎巂4%%)頡潏[顧%"&糿留粸JU媘墉|祾w崹+祊襢[L90 !h鸑\6鉺>労劔蘒
顡蒧Uc[j蘈鴊&c`铦:褎磏Ya樱醶5pG茿銓h8q淜V':K鑻9顸醴ㄆ犔6踳
笲I疓w鸜u詝呶@0u耾揔;篘劰蛃明餉贐舩A嚪K苙睯煲y虛/叓/x鉖񋊸e垍ら湼)曗耹袡祎覕⑩2涱)%va（Sg0蝞Z&撿聈=j#
ic薤﹖u"}n彲c魨狸]9咶\>渑镜$7j1簎S|(閴釙!沗A*9蚰 N\ PE整
v錪澶悌贤狸Bwz'钖9t_5	BGX挵嘮狶む銐<祘羔侺"\慅蠱g.桿C[02Q隞)Ja斎8'5i|梓巣!鬙搸淣`2鯾瘁嬧e5X篿㧏軀㏎繴烅	;龄﹉.U4彅X頄Ｑ3舯%m飇e﹐┮K媠掞M踘鋏<梚`dq'+P笔IGu3i褧CO顡蔐;函楙E睊i澇萙a嶔聅籬└3碏U丰#郈n2岸軯V诖╢Jb	"|歮f}瞯'电}oV拥h騐筨Q9>3(f4c_P糾茎$j
%I+Ln穞,纲=髇弣棭y鮆嵪蹯p u/臜<%藕0搃'哆媸逷顰椈R:*鯾铞y俜O４3琪}'竼m;pN	聄塉 奣陚隒3崉kp>髺鰺sm鍦J峩	娝=G1曖sS萋i9l:娐[i=%忧-籞蟦箌歽裠\桯R鉁雲衔f戢隥烀壭TFS"g雹&e)Hq灱>c井蘓]bdOI鯼*=F楯$0命洣_om誠祣X夼<}$櫲鎅w=/K欧zgt侞CC鍥<弚	邲磃m@踧姄甠:巐6*i膮!CH1#oK`C朏e#炦蕛踖&	L淐瓩▕9H6f贕kgP湸"踴66掉k賍羾R$B厶炂a猈渕=蹑h魎2+╞宄Ap蔦雭 U侧|澺S+JU頤嬞c携貚򷷽=\蠢.疽:*0剉"殪Sn襕I訴:痋扐Xg軧8燔Q8蚎s~崷6;e
br懹0@	B%毬襤d=g糾&羃帅#孞:s<s9屨'竜拸%埼牿Zdr柈詗=骸[藊滣蟃O5	uc0Wl隇@Y窻#獃$08u&D荍増vXf2=x隻bS畼'7?鮲:}埰倱=uui儬"﨎C衇③猀B8颹脏[V嶛?B/HIWJ雰柩煞s熕銨}僋J衕(b厧-炌;鸻P'蜩額r泂瞢2¨O繽蕔$UaR湢刐$<楩舨IYiiS圚橲f媘=覔铗CotIT3&Q癌IpL.	i纐歩觱(!羛蓄W部t旛)7u匿潵9)?
燣泊琿ゆ	幖^l樮S饮~0:洰貄ノb8 穏孱鄉e贳 韂簮Gp潵B圈Dd@釘2朮閊诐{Dx<槫1v擝.!'d楯BB2p銖怊u柾沢B0镠頃蛝!W$Q)R攜(@頃|o@:eV輶f栄埱馶*胻願=rg讯;则椡/%呪鉶<箉–F樖L驒u簝隥p(焇&t泵K非
tNT顬宵盶<&窪馂#d耩仮 嶁9暖V诹S栾OJ~a.驷1 m	翰)忿6$叅`拴斡磭.碲璺媅78懳O{蕀宁

m[*J盜6;hU簧*躻p髙蠜#鴀馐$墭q憖
-芓9.32璊黺a*|I
h驋8馆颦巤s瓡欏T绺q尽snh贞脈鼵為+┥辉蚐#2	饝辗苞諺锹噲罓*-5.0覊(I1v曄1意e膈w[:=!',1k1%-"钢JP脣沤挢H諠{ji粏r4eD嶴忒脢榍ǚA扨
杣$	晉0骣窮F姀@B
"训<	煉鸾)j}鮿2靥禎 G駇徜煝艾 鱦 廷昺簺9^箹胰3noj踚摜kW=j媅a烁篿"Zd-_汍pR簤~Xv刺i讔 Gb塧燢濷鎉鮲8&倥vI&纗bzSS畇宷苶悿o*c]>捋擫乿=矘Z宇Zr/簿傹戜.g秓轈4譍z軗,p爘玗9漤绞
dq酙荙	躓錏雜宇浹瞨m晄V濷㘚怭媸衐釴 1	V7纾涸梱畑qo綳^Y#溡禱$!+2挱`墹-7(m]g栎?I崖/獵鞬攪颽й3m豫i<
篐(+i趢∥gb{V騲奡.騅鳓?娱=$(C蕣揢<爛5蕐-%-'Q荺9[m%k:拺橣9t导皌	鏀]飃葶-擉M旞顃婑:璶vO!wg@lU 柉骪\莼CL%kX')FU粂y7%.櫮湽欫菾踧秥搃%+~T焉g蝴窴M$!	!	HキA)H殧LI	Q范a斩騽挼〩mE皗T蟆f紻齬?,;<sO`趾爇8"F僄 嵰{靅鮲 鍡35昈0%]C%疻聛垵酰yㄣ鑴v_g玡n旐鸧抳剱驕Z~瓰曄g借	芘v嬵鷫q祎7蛓嫃贶須W笌晼詶歗m慊<棪c核秴'蜝/琕R3皈舵笀B$_Z敍踡.6猤矒藛\aa茤じ9缼T:脺ГT瑆妵穄闛ペM桭3N_{2C箦-鋑[G頃儴RA訦賅偔,8<睷枬4&較r膳(j9汓脥A叾pZJ{"Q[诬7?2?鯋邶閺翳摈嶡阰g@驛O)涵1I{st䦅P['蝅笘S膙荀	肾憃喉忢,"X舔曫～f剾e		8啥溎k鞷;鑬z>Y<泽P!{忤l猦矨(*w娩&	(!mt釈 ┺护觟Wk勐眙;氒匷AtG^6}\	 悳悜U-]*煮W㈩挖蠒.J烅疹"繸0べ嗩攼$鲔P.>>羾)=!讓z3埫┖{泮}[*с*4V僃11壯禆:*#緢耷:k錾)Z亝稐昻l-秀&瞶酦g*O9=' ,剣6Z概8R﹍	管赇:6柸铥HK崿-萙L7棘U桛[愨&TYs扦刣禞J痬罊I斳.R近1縲YJnl丁55>vd9ln卒偐芯N*%+罂Y詆}TI淮巗d錔徴骜>-7m"H#溌鵍>仒8佱阓Y嗾漠Y&8仕頟洊唹犱_劋:徍柬	x#揍F穹'tU.#釩肸 Og佰漖韘KH<	R擆a'4赱旕)%堀瞽7爷Vu蒦鳍5cv::U#袍WU睫擕5軡k#祗x7鬼汰殥)$S/悷p敟!! 	  怘刋侪!k叓捤b猂嫜崦k[y琖"啍(∈J"湥I~7n渄y顟菺縿躱o访攂驯0夃劋r鐌.UE揙謶鐊7呙 鑧{)穖"@t疄暲檝崶带p旉 v:堹潲哟}s犅x耐D狹tE*t崎哟箎宿瓉D墦Jv H塳妸
L鯼N晻#{媵t~棬#退梜j>2)嫋铆+a)V疖#*趛 X堽#箷閧氣襲A8褈醦皶鏹yI坤萂*I洫狠筀-豺D蕷5]睫騅6JQ遈蹄汁炓;K鲇]#柬酼w+蛖l左6 纒粎碴B泀%+I] /L薂沞瀞*狾n讖椵觇kタ慦冩鮋;谢Nc燅F檗<9:tep鎩"絰0阷,%R酘她Tov{b鄄駬錨翇)叛
:s蛭)聏鼍o+計瘑噎ii3黠/═$Gc蟸9E\-E瞷QDCn8<劫7 股詑%s姠饡蹵us^鸹3芝8?|6沼Г竈禎90紌a單\&噍]Mv吢郤樮惑 瀘蝫5%钶襗V貺筃szN湛gu瀾7车 髵馘-}锔吀蜠吆t屖讬g悗
7yJ羨蠅68ZA赺|╝鐢\z镵籾脢篣4嘇課FD緸'R砃糚鉞8脝7P7)z秞,.TC'痋	醺礎櫈娕%灼B7戮叡P儰Jwh釿籅: \Nf]k7Hw.趓2愲{m鏭箩礭6淩t傏栆悦﹊﨎极k賌E*鹯1vj肀/k蠃7茴猥=庋#x钆S=&暐=香溧郛Ju t崜磽妔U恝3]勫y汾瑟罟Vyg螥v钕遐O"v訍扺`-b昊U'兔Wl&阦#"婤瞻╣|趶,gl审齙/奸"莮2b綡b鉖;
Wt蹪K汚蕅ｏ朴~17m$i藤ov焟.26皆R7k鎭y赒)P"忭?=l]
嘀撿F鐽梕瘨z梠N]*|!
0倜+JWgf-TF恿O煻Qw蕞=G驒:魴nX鎝鍗誉烢:rV旝馎!╤*#7t遭
w濃r!{樟%-$郪(芳O铸\)鱦D爎敚蒻摇怂;08S@酙カ?釟鵘%2J@扲( 9d聫@您k恦3抣笳* g -,蹲騧%^6瑺)<暃24庨pP 筞+$斱初W=5b螨*覆$唌擕訊7'鰂\^逬钋況  Fd夰t
吽焒pp瀮)硩肗w絒H栆m3OD娸:	 B1槕5悓F欶zH鲸&伄礭狂械糕聿傷E)鏣5噎k甥脇螙w.Sy`p硊d,P檬驅-?0鞲叴35t仳之尞Ａ绉貋柬M鹴YH洚\ぢ滼桗e纪覦雈	H-\5硄n４厊$+樃^虺I=薓袲ゆ,K掻\.署廔JR⑩d3|折謔8炦cY^湰喊椚%j賔D !稂)P$hA嶃䴔~y2楓z墿A藳禣#绬鷆鸘,\砗O懴)宱M詇屠魡韂殩戅G俾煺什}芿3+0*|

o)b5鹷d_z}堓┊旞)约=咿-|8jq!9慎K啓MhJ@颋^︻蒹沴伍P呓v7嗶P騦手壑[蔕冃（7[En漬+>QQm腑T}2扃簑%<_u齞! "CPJF,顶7回＋)I4燂簋e↘-%-糙r"塉Dz5殨鑚%
q8=根举|?夛e啇褿Cf$7M畵啳d呈Ix壄f-5蝧giq觃[俺橪Nw蠞p)倔蝫惈m奕x$dJ攔〔打漲|皂聼綪^鸶蕂墑 '哇3诖谆sR$ 甑满q颱
:fF)S尃h&57Y彦i飠
~?H鬑k>92鈨咷'7譅QZ+B07}馬梧檢\鄱vzO璑G洋愝烏d亠4涎淛巬呚藷鍆v”u鸘娪!x%价瘽n萊T簜&ic挩mn.W)樀綎蒙鶝佦v掴		-\4@y儕N臂6産;觲y6B蟋 Hej/( %魋 ][J&s槢栯韾鈢+瘥x鬢擴qn 毃 lか驨;谪~栈曇b漁脝辠;榘磈爁梿瀾抗阯黻慒荇w磺*夶ο谂m︶儜g膓1wJ【恞禖?幼@)]B貗妱穛))4舷艽塹fw荟:暩;枂o|帳&7助腛循N礌d亠茬鸋秂<瘆cГ_緤bp囷3拜`キKt蛘-9>s{nQ1T瞅i鸒9	苒疙毦5)O)j皷賓癟jO)荾Wl畉4￢蝦[J瀾髱煉砄鏲绎]╠J缆!h+崤6飑M窗}
揾 菃瘦t澜紂/o\ gZA3蒼37=~踱 嗩
枩襔*<鏺!洊璀'鴖JZ訢嶋涉鍻钔峰綬y篇<>)鵷B	嵊漙L	恌3紀誡	膖茰嵇刺bO妼k謲U甶32&u裏Vf4KL皪貂l{鹘IJ劻[Jm.蔼⿻墘嶪Ot瀊鵫帊M珃n潋踀n跦健Yo粲,湱)r掹>u凊▏m蹹宄sj枋v瀘押坕州%	2到"x f樉蹮呗罤C栀苟Ur摙级椡T!鹥U晦9I鋫sz2曨8k铗脛剨	玞:籘;娈;G29	ul簽I蕫痻ê茚D9j訑/幰釠碢<溑#殹测<3&.mG)h9ェm芁n=鎖%%瓶)2讐詑硞罥釶攏棃鄣籱
瀺础P#耎7s8帵瓒圆;磨?諦諍m-訟7GR赇-)k溘鱦梤浮st;匇O癣'
= c橽;Qo港w严渚鮬a%wwM枒十人C嶾-&檫)v	牏O瘸婉郰Yｖq%惞剳:?u鬫3m藇胈磑w栣?蠎g孚|隁 鵥28捿
唛<銗朱 K[Б蜁蹤I$K-衔袱徨0兘w脪 〖僥/+5释鬂0昽7C$),沝恌掱o)t/掹(*^訆年,仴駨z╚-窪魨獯b稧灖晦龒#髲D埬靐&'D犻4奃2g揪~;蕻dIz1匽8m.资}3N藳t%攥閥愐/佪{鋖踈冬突馨蚨_Gmiq錫[瘄4劶)A斬窸焰涔踇痮驷v&;<59l/滢鍮须tP桀m詅(壥c莍则醷而舳W 鬾+$鞉痽s餍鷱⒖穊橹(ZWv濷o[q鸐+U'檽鐟鄖呒礅鉾梘^j~簺觲烦旴蛐藫沯濌釈7⌒5gHT1細觟v^t〾#賳茞杖z浗渮R曻皋赘KH釦*W縂Sw瞍>風蜚xoNb%io暻%圄)%溨f"罐湒傣踸(;竢蝤廗薥抝VF#暧炽7tn呅4>J枱隔+J["JZ6xt~傔熺伜羃抡'n%漥p笞檅s'q|嵛祁G昋_n缦紧嬺-@F*殼Z芏沶懲U诠夲虉劙[M就D?妮*纵6蜠}$!敗,皫C 攺2 8=U孔弞╮bSQb|槶q2塊GbQ=蹟nvc娰殃?"r俏;uLa砟錍Y<#鈲鰗沷| $0q鉫春势I鈩瞰颛鱱滞氜%Ki縀Si穿跥肩搖滯f[羄摶2C2悡騱優子&姹TQ3J:y鲫~G呤dVhT囤t8坁榛=竦 ;<戜謪|趽 ︶9n%浂N厞热$n豸鲟L昛7'2|C!HX
JW聙昛紉
埝:3>櫩r頞┚->蔧9r|秚B恈D役藁軲怡轮)(>鵳訏挳\u阕Ql{柡涀y(;F撁/(G粙f{/H 8zW<U+'*曊设X 瀃縟徫tp剳-莺+~SO傋/膫 斮*I费9w&Jy(鵭.72
冤魩兇崃农蝚>q 砨
l楋@柁*i絣伲屗媔E疄n橾,羰な饧1ㄊ踑υf*\,)]麵	 i z╮}功渀H*獻鈨勅f$H蚜H轄O 步炅 1髱翗?渪"@La3瘑&I!=h遜Pe鼎霃羂嗹]捎熬真廘始ZB～喥{[栃鑜譨試 頤
]珇摵>毾敠佸甗]椒萋o霿翌wg烟󂅏r>o.静#橶n淜G鄔p撖(濌狼 鵯9o8ky凵nZ屼豖洅$.廓j =,9瓷6汒腹engk縂擥尋鋴啩硉.2F:崫郗&q霍敯 t頪s讅$4 粺-鈩 O艐Kc蔱栃$g鱬,顶q瑚j昊桵盹
PzUx+VDxq耡o皰*鬩迣3(-c縚;驷忯诛s甾7C@U]_~饧趡躿!磤霑)B踾y萔檩R@蛓v$庉总罨O-钊窷团微籞v導mp) %"HBD拺凇<云騖v柫謻Yi9|鬣瓌у溺*SI蜘?+M|b$+燛5V篶w牝薜畓E%鲙Fc砝*%S謧N&7裹盲写T〥l wKVD,琞!NZ鄞略*
汢[W篖gFF]X -~鱞e暽崶 ?
.頖虂3*穜yr8諰;^n鬱f秡I縧U$Mヱ䌷?,绲q%蒈砅Z>v佚Nm彚勩柰潩9;C篣晨= !眱m軚 腿虖6N莴猯鴌6凃n編皔聼rüd司}豐$#4Y[濄z3pH3餾: 蒞o$(}~U蟯学脣蓁”1km薹;迓mV[嫨奫ya=阢Q漥龡s[镼;\x\庴 钲5方验/畄)J=9-с瞒v飐"[9喷_%m柺YI虅.?宪|跚i騦芿(該RL:驋VB淶S寪挷=0]!O,*狨彃麢{滎銰q+ic訆y*吿1&S璭(敧t仆88"槹8L椠傺鶀\鏞EG2痗4跄K9鑹鹛蟐1読燧~	/笗)/-|$f=iJ夔v褢粍4叮慲耆笒5.盷i.璠A杍浼籛鸑蝵泃]沇W媕4U澠o鄋膊仒亢.U騨&v&醵蜣t怱硊j攺砛[IG6D賍嫲窣柫鶩廚敲.Rfm+帡鎉m温矡}嶞浙q);疴l睡絯He@xC,n{~mズ8Jz4劔ò崶Y礀L<禦侲籹y耰歒轞鸪C幐⑺#;4,#藓 縭籩戦/'≤謋仏藵>R按wl欙=)溓錄頋騊踙An眨6涱刮轤m bH猛<鑊O剴#w窵熟$痿h熰璾趔"!J4 崤隌滿 	覱YW蓦縑de+f鎡F＆$#]31畧P
(撙 匂n .2办╮忍埖N魙嚆-┣V寘JRB篈.邥&蹇轫匛楚QIT螅罿 1綑6a+iy焛垬)╓\Cs俄/箪 塷蟀澻掖嚪eA<彿c掙9鑳v鼝磾埏v	Pソ闓i埤月\案殎愙屳O䴔/+vRD輅噾瀑殗墯&f照%3鵩ボ錨O/~iJ<Ю嵿漬2镛7/辏x謗	渢職俱M鯅唄﹊[#係qc鬚ガ	J:詀Wn&蕧罄區喿侑蕔M@錟耂R!ll蝣蝗U硟莫 整熿Ｎj咤~複)yr
Xo毭%y9P嶫xy=诠藢5W儴悛2CiR評屇骑m腻q栌O罿R~^"滾x?茍櫭pj婳珃]f晗籙?X*猞纈.*E(%屸S嶘喈P夋r菽胎@E氃赸穤荪 )匆紭.n嫍,9鬱暣O{薒麇~r乌e瓆瘎擜{9v棙5^韙忑樺6偸襪飸<鲱Q乃渻驁钣 &照t炑r莏瘽o )w蜘栾楴+砭q榁.郝E侮5巫蓛>喻w:<I+%]襹饮萺羭椥淡壖菑l銑8拑眛'U踇(駹纲黢磯u吱萏螀8G~犥%]恒勇i烣哝袠u$燃2髷锔僼j=:垡V嗨n莻逨zN驳[寒JN[羅F聕嵂o-$⑨H暩UK+梤桤^輗角陕D墪jfI5*Y頃+uiBJ擝Gd羘.踯 e;3lx欌iX6p煍\竤|/o'甛'T挍dng楃&_鬚\"Y#D囙&e妣8q X%9pE稄$>鳃礧v噀 蝆茆z眩)Y&7釚汚隴熈)荰	S帹cm糡垸
詢E'轈j砲q(TW鵇H倱階u(>坡МI豛%Nz嗞菝{(
铧Bmwg"/%%Z簅;邲\獻%詒t袧嬬&6蘒赖?`d秭5殇錏诀d豲%t$[|j'o菖诀a3q!fZT烟戹挑崼竛骻3jhV川fA馻0佘/笉顄<戭g握候)淉[
[J%a嵹崼f{0A锑鸈鋑 凇DZ蹓激T|欒鹓^?Y宥:怳%M踇冼z缡Fem,準Q桩W彠1%$盹6樿Y(禥翓n窆馺=p轘坮鮡舚貲y[譏匀K@qr3'嵱馼2B穓kYT>E~4 椸>縊x╬乗腍aS+Yk(F0)M\Z⒇求>Аd+I%s杺 g蠢遞R氻x鸷7覕瓧@}lM[>Y)榡鍜KO8"D6襶簳池偉趣笐碅姣呃e舢雞
:里yN0炞澌悑p禹詤&都m/ぽ忻８,荬sR鐩s昏忏u^姻尤幻*拆頫Lz+緙僚8望卍8l|鱈欕搪_魃嶐t鶫i&
茙庉9熩;筈 伇>蒯瘛WJ[踻(t蠛3鍽醘閂竴3翴S)$袱旚瓀￤Gk6㥮宪聅寛H让(瀣丏6焲&-煳)E-侓檤 7覟]$$讏挹掘:6m匂{Q(銩[%	璆 I噊V$荤} 傿杸a?r剘也=?繲*}宾bF'*zI3S(::'B}[壭YfLRGO kO	u酁8&s%薿{q/<莼仐\l執%歅斋坋%断ジ@JFQOEO薷唋員$*[乶<钧#E*喉+fN餕ん.-摋琺昻縯甘眚YD铔6r◣曰r珡庭*r鐇8N9H馬ぅ1#*s]:O%q擸R\YQ殢.-SnU蓕欑J'i=垄帚y萟蝶=萌5wlH貉n瑱豔旣(
籵f1嘚形熃f7[菫郒鉠c馄鯲諦Do狻D伋,鶦/搨脢t钯;|2J曁c竖/瑡嫸孥+*a7$3優俗/r3鶘釨g.歩8%im錆5檑R.倩w﹀' 韀鑍葻簤媆紨矀鳺t鉃eO讯煻浗揸奆又狢)o:nS洿栲&尬遄舳Z,曹硅汮|(曱６<桭W怬jM筞惍K猽旜畈菣h嬔gx赢-JT3&夊B0H	P爾/x≦鹛NQ)H埇勮1匁c<a塛=_蝉wU湜f橏1)G	敻2"0T0膗漮%膰%	岶'褖馜 pu*'怩"Z
鉑[+抺0沰;虐跭K3p灆2z&椲G7&x眧侔砲R趞0J傭嗆og"魿w珬T鉭@(eN~僊[<-n墉<IqY&跜\栻邓鍳］富鍶藡eI哎摏;)9v:U聑I	% `戅*@BD駹&SjQ男Js.)'\"該4〩@(膩5'饁勦4
2樖'QI"BB$墳=B槕?乎w'竒嗔槥璖擵 I	`e臱捱鲖 略N&P"y=s@SS/Vrn丞/*Gd燤~,.眭da磄R J~4*荪M!2.r'輜=K%7埇杶M=葫筍:8袷菥P^*`熹鵏黍q桢聴g!
JTMFG枵沲l嫌x≒f>^Zc9z*湶僊|P蓴紜鋧攉3)c憜:8鄿A肱5讓B埉Y釐阩'r攥 bpE騴D%]8亿B
朖掼3驽mllC-\-nYqD()Fdェ菇+粂SN*铛n)a(;拧迪9YQ	y3l:$'聴*.n,Z)HB 敊e蘋渽t橶}"!鰭襔浑盲邋[庺庼<δY贍l*釘'絢U粘枟徏0
扥g饬"&4嶂#Yc鞢\;?货o岺d缞L~^8◥"漨P'彽g(逕鎽?(虗r,S禄钄劚敗- 6祔u/$獢wNr3鰫攢慇 %#)溎╣X 3O *	衵秗{
涮	V&瑻N 腑uc勧]靦T鮫獟忍螠#Q'\屃苮B攋$M8A嶇<})祀2潢结卥幡5HT{Q翆狆脄O@闉蟇q绬 蟼C]"'醌か揅歚j瀛濆簲h+掤	G#c,	]Y欭<~鮣-莾7扉O6琯咔灢,螏B4.虂塬鉋dH腎S餍?t $Vu3{pIE渾n慺uMJ蹉唾#川榝袓;J夢61Zl鱦zJ墤B袚/1[{\e.旊	谮乑臾D~韒ぱ5グ&緔^詞閙=]1鰻烠23"朧 ~}ㄚ盽&L}艧>詞渖_/v墘鑰'蹩鹉晤菉
齢觯鶀~磠PO痼Ld闛鋲 W蕈鱮﹥ .樕哪 喒:D@u結"Cv糔懸"#|鉸!侯'叻輜;q鉂 醴钲犞i媁橲++Vr0AE2赂誄赚L謚4`:熏恔 .槁\您穳鞽嗾膇0,p槣TL妬& "pz芔墳皧}x-8AT鴎枥戹卌,(&癴$'聺1T'08V$eZq2RR枅4R歝)HLK猪}h 鱎$P'CL褾3鼂◥_?釐(`MMbd聠c3#妹= 卾!)T尓8醽,qT櫲謿)耣J$D挐3胗::蟋鞹x%
I'孡覶	琋Uf櫃:'ID蓵82$饟%33A\8#H	蚋u諬杺p橊0Yx fP 櫲焠$2&ZF;S壢e::馷棴1聄銣  噖彁焀t橩6殂豃T5芲顗`N 藠h债 .3应'2む熎XD膏L藛8樖(5h"撁蚱b0檳懨=11)N]x =堗鄿2"s	萍M)Zv"唃H愼鈆錖+3J谧\"rだ<Q屇匁窭&)L+dH櫃熒 蝑絮爃8舙欟爯6dgf&1H!G妏di(5V糮f\F	tb场靔HL惺\1S迁餉麓 @聏n$1Wq譅塲8蝧剳丧"`譍Q燦槦b()%/u腓阻钽蕨者w" 奈5窭侰屃襱	Ep 夑奣`gz8D帀(侂G[胓衤5PH蠨R`耖p'	Х( 	懀
g>珋翝40 81墛食枅寑ごFs4#f╁肜 La!犇誝WQ*a2劉D螘$E 2&椁?	:A'寁񲴐煰恑) 溤4𽨪櫵\p4狘癋8p衿3=."3D:むVi4:xb0 墯甪D{P0D閫侤湆拇閷D尰19謟;,VD	a讪餭\猆讐:R掚{☉应鵺┠攺W|N暟&H谭(A*	:銬V偄宓RgYD41)h塩鑹4*+Q9藗	荴犞_<QHh丅R+賶摸	湼kA焒2匀襱:bJY圢!垈襦擫壩S牧I28垹9 
"\漇8兔*VBN蚇5檶:A罒ZT9覞%0双F1:UT雞ⅵy尷霢謕阏雌槈F誼x鄬3,(:栲崿qTH狢'獞b*5x1)NT覬樞tOLLH5鑳JH趢8v鎬@瀮'I&t峲.篂塂;i*O!_鍧曜//Z+m-尒Ks	[.+涆E/喯Rxl)碱荵繈煅瘢遬熤G蠓%请ｙ銦翥躐M 訌浊箸?榍脬燈沲腰跸鷔䙡琮8齶S+䲠蹽箸?閲脬 閲?_0 笂o艴韥 "钦=~?" 燺炜鼧2 P?馃 P 錏?'圅C u披' *?齻|v渠?灒嚾/跹M鲎莜鉋7E7郊s趶骣邼M韐 飈 +k>7W铜|g縒铜+峖齖6瘩烗\Sz赾>S擢妎k_靱$7イ错晋9ww縌天珟圻▕o8\|?XyW 恝浡苲| 鲅/M#<鼾糎^Yw>捵飶赅执盟迮o廽沤'^:z焰#疼煻n&Yd煯kT~钗戠氂6虛彏k?35砬馦钏m18偆竻ōYB6[*妲   07070100064d5a000081e40000000000000002000000013ac038bf0000069a000000200000000000000000000000000000001600000003reloc/shell/index.cgi #!/usr/local/bin/perl
# index.cgi
# Show the shell user interface

require './shell-lib.pl';
%access = &get_module_acl();
&ReadParse();
&header($text{'index_title'}, "", undef, 0, 1, undef, undef, undef,
	"onLoad='window.scroll(0, 10000); document.forms[0].cmd.focus()'");
print "<hr>\n";

$pwd = $in{'pwd'} ? $in{'pwd'} : "/";
if (!$in{'clear'}) {
	$history = &un_urlize($in{'history'});
	if ($in{'cmd'}) {
		# Execute the latest command
		chdir($pwd);
		$history .= "<b>&gt; $in{'cmd'}</b>\n";
		if ($in{'cmd'} =~ /^cd\s+(.*)$/) {
			if (!chdir($1)) {
				$history .= "$1: $!\n";
				}
			else {
				chop($pwd = `pwd`);
				}
			}
		else {
			$in{'cmd'} =~ s/\\/\\\\/g;
			$in{'cmd'} =~ s/"/\\"/g;
			$in{'cmd'} =~ s/`/\\`/g;
			$out = `su $access{'user'} -c "$in{'cmd'}" 2>&1`;
			$out =~ s/&/&amp;/g;
			$out =~ s/</&lt;/g;
			$out =~ s/>/&gt;/g;
			$history .= $out;
			}
		}
	}

# Show the history and command input
if ($history) {
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'index_history'}</b></td> </tr>\n";
	print "<tr $cb> <td><pre>";
	print $history;
	print "</pre></td></tr> </table><p>\n";
	print "<hr>\n";
	}

print "$text{'index_desc'}<br>\n";
print "<form action=index.cgi method=post>\n";
print "<table width=100%><tr>\n";
print "<td><input type=submit value='$text{'index_ok'}'>\n";
print "<input name=cmd size=50></td>\n";
print "<td align=right><input type=submit name=clear ",
      "value='$text{'index_clear'}'></td>\n";
print "</tr> </table>\n";
print "<input type=hidden name=pwd value='$pwd'>\n";
print "<input type=hidden name=history value='",&urlize($history),"'>\n";
print "</form>\n";

print "<hr>\n";
&footer("/", $text{'index'});

  07070100067bb2000041ed0000000000000001000000023ac03c7400000000000000200000000000000000000000000000001100000003reloc/shell/lang  07070100067bb3000081a40000000000000002000000013ac038bf0000012a000000200000000000000000000000000000001400000003reloc/shell/lang/en   index_title=Command Shell
index_ok=Execute command:
index_history=Command history
index_clear=Clear history
index_desc=Enter a Unix shell command to execute in the text field below. The <tt>cd</tt> command may be used to change directory for subsequent commands.

acl_user=Execute commands as user
  07070100067bb4000081a40000000000000002000000013ac038bf0000014d000000200000000000000000000000000000001400000003reloc/shell/lang/pl   index_title=Linia polece
index_ok=Wykonaj polecenie:
index_history=Historia polece
index_clear=Wyczy舵 histori
index_desc=Podaj w&nbsp;polu tekstowym poni縠j polecenie pow硂ki Uniksa, kt髍e ma by wykonanae. Za pomoc polecenia <tt>cd</tt> mo縩a zmieni katalog dla nast阷nych polece.

acl_user=Wykona polecenie jako u縴tkownik
   07070100064d5b000081a40000000000000002000000013ac038bf0000003e000000200000000000000000000000000000001800000003reloc/shell/module.info   name=Shell
desc=Command Shell
desc_pl=Linia polece
risk=high
  07070100064d5c000081a40000000000000002000000013ac038bf00000039000000200000000000000000000000000000001900000003reloc/shell/shell-lib.pl  # shell-lib.pl

do '../web-lib.pl';
&init_config();

1;

   07070100069310000041ed0000000000000001000000053ac03c7b00000000000000200000000000000000000000000000000f00000003reloc/software    07070100069311000081a40000000000000002000000013ac03896000007f7000000200000000000000000000000000000001a00000003reloc/software/apt-lib.pl # apt-lib.pl
# Functions for installing packages from debian APT

# update_system_input()
# Returns HTML for entering a package to install
sub update_system_input
{
return "$text{'apt_input'} <input name=update size=20>";
}

# update_system_install()
# Install some package with apt
sub update_system_install
{
local (@rv, @newpacks);
print "<b>",&text('apt_install', "<tt>apt-get -y -f install $in{'update'}</tt>"),"</b><p>\n";
print "<pre>";
&additional_log('exec', undef, "apt-get -y -f install \"$in{'update'}\"");
open(CMD, "apt-get -y -f install \"$in{'update'}\" 2>&1 </dev/null |");
while(<CMD>) {
	if (/setting\s+up\s+(\S+)/i) {
		push(@rv, $1);
		}
	elsif (/packages\s+will\s+be\s+upgraded/i ||
	       /new\s+packages\s+will\s+be\s+installed/i) {
		print;
		$line = $_ = <CMD>;
		$line =~ s/^\s+//; $line =~ s/\s+$//;
		push(@newpacks, split(/\s+/, $line));
		}
	print;
	}
close(CMD);
if (!@rv && $config{'package_system'} ne 'debian' && !$?) {
	# Other systems don't list the packages installed!
	@rv = @newpacks;
	}
print "</pre>\n";
if ($?) { print "<b>$text{'apt_failed'}</b><p>\n"; }
else { print "<b>$text{'apt_ok'}</b><p>\n"; }
return @rv;
}

# update_system_form()
# Shows a form for updating all packages on the system
sub update_system_form
{
print "<h3>$text{'apt_form'}</h3>\n";
print "<form action=apt_upgrade.cgi>\n";
print "<table>\n";

print "<tr> <td><b>$text{'apt_update'}</b></td>\n";
print "<td><input type=radio name=update value=1 checked> $text{'yes'}\n";
print "<input type=radio name=update value=0> $text{'no'}</td> </tr>\n";

print "<tr> <td><b>$text{'apt_dist'}</b></td>\n";
print "<td><input type=radio name=dist value=1> $text{'yes'}\n";
print "<input type=radio name=dist value=0 checked> $text{'no'}</td> </tr>\n";

print "<tr> <td><b>$text{'apt_sim'}</b></td>\n";
print "<td><input type=radio name=sim value=1> $text{'yes'}\n";
print "<input type=radio name=sim value=0 checked> $text{'no'}</td> </tr>\n";

print "</table>\n";
print "<input type=submit value='$text{'apt_apply'}'></form>\n";
}

 07070100069312000081e40000000000000002000000013ac03896000006cf000000200000000000000000000000000000001f00000003reloc/software/apt_upgrade.cgi    #!/usr/local/bin/perl
# apt_upgrade.cgi
# Upgrade a debian system

require './software-lib.pl';
&ReadParse();

&header($text{'apt_upgrade'}, "");

if ($in{'update'}) {
	print "<hr>\n";
	print "<b>",&text('apt_updatedesc',
			  "<tt>apt-get update</tt>"),"</b><p>\n";
	print "<pre>";
	&additional_log("exec", undef, "apt-get update");
	open(CMD, "apt-get update 2>&1 </dev/null |");
	while(<CMD>) {
		print;
		}
	close(CMD);
	print "</pre>\n";
	if ($?) {
		print "<b>$text{'apt_updatefailed'}</b><p>\n";
		print "<hr>\n";
		&footer("", $text{'index_return'});
		exit;
		}
	else { print "<b>$text{'apt_updateok'}</b><p>\n"; }
	}

print "<hr>\n";
$opts = $in{'sim'} ? "-s -y -f" : "-y -f";
$cmd = $in{'dist'} ? "dist-upgrade" : "upgrade";
print "<b>",&text($in{'sim'} ? 'apt_upgradedescsim' : 'apt_upgradedesc', "<tt>apt-get $opts $cmd</tt>"),"</b><p>\n";
print "<pre>";
&additional_log("exec", undef, "apt-get $opts $cmd");
open(CMD, "apt-get $opts $cmd 2>&1 </dev/null |");
while(<CMD>) {
	if (/setting\s+up\s+(\S+)/i) {
		push(@packs, $1);
		}
	elsif (/packages\s+will\s+be\s+upgraded/i ||
	       /new\s+packages\s+will\s+be\s+installed/i) {
		print;
		$line = $_ = <CMD>;
		$line =~ s/^\s+//; $line =~ s/\s+$//;
		push(@newpacks, split(/\s+/, $line));
		}
	print;
	}
close(CMD);
if (!@rv && $config{'package_system'} ne 'debian' && !$?) {
	# Other systems don't list the packages installed!
	@packs = @newpacks;
	}
print "</pre>\n";
if ($?) { print "<b>$text{'apt_upgradefailed'}</b><p>\n"; }
else { print "<b>$text{'apt_upgradeok'}</b><p>\n"; }

foreach $p (@packs) {
	local @pinfo = &show_package_info($p);
	}
&webmin_log("apt", "check", undef, { 'packages' => \@packs }) if (@packs);

print "<hr>\n";
&footer("", $text{'index_return'});

 07070100069313000081e40000000000000002000000013ac0389600000179000000200000000000000000000000000000001900000003reloc/software/close.cgi  #!/usr/local/bin/perl
# close.cgi
# Remove some class from the open list

require './software-lib.pl';
&ReadParse();
open(HEIROPEN, "$module_config_directory/heiropen");
@heiropen = <HEIROPEN>;
close(HEIROPEN);
open(HEIROPEN, "> $module_config_directory/heiropen");
print HEIROPEN grep { $_ ne "$in{'what'}\n" } @heiropen;
close(HEIROPEN);
&redirect("index.cgi#$in{'what'}");

   07070100069314000081e40000000000000002000000013ac0389600000096000000200000000000000000000000000000001c00000003reloc/software/closeall.cgi   #!/usr/local/bin/perl
# closeall.cgi
# Empty the open list

require './software-lib.pl';
unlink("$module_config_directory/heiropen");
&redirect("");

  07070100069315000081a40000000000000002000000013ac0389600000013000000200000000000000000000000000000002300000003reloc/software/config-cobalt-linux    package_system=rpm
 07070100069316000081a40000000000000002000000013ac0389600000016000000200000000000000000000000000000002200000003reloc/software/config-corel-linux package_system=debian
  07070100069317000081a40000000000000002000000013ac0389600000016000000200000000000000000000000000000002300000003reloc/software/config-debian-linux    package_system=debian
  07070100069318000081a40000000000000002000000013ac0389600000017000000200000000000000000000000000000001e00000003reloc/software/config-freebsd package_system=freebsd
 07070100069319000081a40000000000000002000000013ac0389600000014000000200000000000000000000000000000001b00000003reloc/software/config-hpux    package_system=hpux
0707010006931a000081a40000000000000002000000013ac0389600000013000000200000000000000000000000000000002100000003reloc/software/config-open-linux  package_system=rpm
 0707010006931b000081a40000000000000002000000013ac0389600000017000000200000000000000000000000000000001e00000003reloc/software/config-openbsd package_system=openbsd
 0707010006931c000081a40000000000000002000000013ac0389600000016000000200000000000000000000000000000002100000003reloc/software/config-openserver  package_system=pkgadd
  0707010006931d000081a40000000000000002000000013ac0389500000013000000200000000000000000000000000000002300000003reloc/software/config-redhat-linux    package_system=rpm
 0707010006931e000081a40000000000000002000000013ac0389600000019000000200000000000000000000000000000002600000003reloc/software/config-slackware-linux package_system=slackware
   0707010006931f000081a40000000000000002000000013ac0389500000016000000200000000000000000000000000000001e00000003reloc/software/config-solaris package_system=pkgadd
  07070100069320000081a40000000000000002000000013ac0389500000013000000200000000000000000000000000000002100000003reloc/software/config-suse-linux  package_system=rpm
 07070100069321000081a40000000000000002000000013ac0389600000013000000200000000000000000000000000000002200000003reloc/software/config-turbo-linux package_system=rpm
 07070100069322000081a40000000000000002000000013ac0389500000016000000200000000000000000000000000000001f00000003reloc/software/config-unixware    package_system=pkgadd
  07070100069323000081a40000000000000002000000013ac038950000007e000000200000000000000000000000000000001b00000003reloc/software/config.info    package_system=Package management system,1,rpm-RPM,pkgadd-Solaris,hpux-HPUX,freebsd-FreeBSD,slackware-Slackware,debian-Debian
  07070100069324000081a40000000000000002000000013ac038960000007c000000200000000000000000000000000000001e00000003reloc/software/config.info.de package_system=Paket Management System,1,rpm-RPM,pkgadd-Solaris,hpux-HPUX,freebsd-FreeBSD,slackware-Slackware,debian-Debian
07070100069325000081a40000000000000002000000013ac0389600000083000000200000000000000000000000000000001e00000003reloc/software/config.info.es package_system=Sistema de gesti髇 de Paquetes,1,rpm-RPM,pkgadd-Solaris,hpux-HPUX,freebsd-FreeBSD,slackware-Slackware,debian-Debian
 07070100069326000081a40000000000000002000000013ac0389600000085000000200000000000000000000000000000001e00000003reloc/software/config.info.fr package_system=Syst鑝e de gestion des composants,1,rpm-RPM,pkgadd-Solaris,hpux-HPUX,freebsd-FreeBSD,slackware-Slackware,debian-Debian   07070100069327000081a40000000000000002000000013ac0389600000081000000200000000000000000000000000000001e00000003reloc/software/config.info.pl package_system=System zarz眃zania pakietami,1,rpm-RPM,pkgadd-Solaris,hpux-HPUX,freebsd-FreeBSD,slackware-Slackware,debian-Debian
   07070100069328000081a40000000000000002000000013ac0389600000080000000200000000000000000000000000000002100000003reloc/software/config.info.ru_RU  package_system=谚耱屐 箫疣怆屙 镟赍蜞扈,1,rpm-RPM,pkgadd-Solaris,hpux-HPUX,freebsd-FreeBSD,slackware-Slackware,debian-Debian
07070100069329000081a40000000000000002000000013ac0389600000080000000200000000000000000000000000000002100000003reloc/software/config.info.ru_SU  package_system=笊釉磐 招伊滋盼裳 辛伺粤蜕,1,rpm-RPM,pkgadd-Solaris,hpux-HPUX,freebsd-FreeBSD,slackware-Slackware,debian-Debian
0707010006932a000081a40000000000000002000000013ac03896000000e0000000200000000000000000000000000000001e00000003reloc/software/config.info.sv package_system=Pakethanteringssystem,1,rpm-RPM,pkgadd-Solaris,hpux-HPUX,freebsd-FreeBSD,slackware-Slackware,debian-Debian
update_system=Automatiskt installationssystem,1,apt-Debian APT,rhn-Redhat Network,cup-Caldera CUPDATE
0707010006932b000081a40000000000000002000000013ac038960000007a000000200000000000000000000000000000001e00000003reloc/software/config.info.tr package_system=Paket y鰊etim sistemi,1,rpm-RPM,pkgadd-Solaris,hpux-HPUX,freebsd-FreeBSD,slackware-Slackware,debian-Debian
  0707010006932c000081a40000000000000002000000013ac0389600000073000000200000000000000000000000000000002100000003reloc/software/config.info.zh_CN  package_system=软件包管理系统,1,rpm-RPM,pkgadd-Solaris,hpux-HPUX,freebsd-FreeBSD,slackware-Slackware,debian-Debian
 0707010006932d000081a40000000000000002000000013ac0389600000075000000200000000000000000000000000000002600000003reloc/software/config.info.zh_TW.Big5 package_system=甅ン恨瞶╰参摸,1,rpm-RPM,pkgadd-Solaris,hpux-HPUX,freebsd-FreeBSD,slackware-Slackware,debian-Debian
   0707010006932e000081a40000000000000002000000013ac038960000135e000000200000000000000000000000000000001d00000003reloc/software/debian-lib.pl  # debian-lib.pl
# Functions for debian DPKG package management

# list_packages([package]*)
# Fills the array %packages with a list of all packages
sub list_packages
{
local $i = 0;
local $arg = @_ ? join(" ", @_) : "";
open(PKGINFO, "dpkg --list $arg |");
while(<PKGINFO>) {
	next if (/^\|/ || /^\+/);
	if (/^ii..(\S+)\s+(\S+)\s+(.*)/) {
		$packages{$i,'name'} = $1;
		$packages{$i,'class'} = &alphabet_name($1);
		$packages{$i,'desc'} = $3;
		$i++;
		}
	}
close(PKGINFO);
return $i;
}

sub alphabet_name
{
return lc($_[0]) =~ /^[a-e]/ ? "A-E" :
       lc($_[0]) =~ /^[f-j]/ ? "F-J" :
       lc($_[0]) =~ /^[k-o]/ ? "K-O" :
       lc($_[0]) =~ /^[p-t]/ ? "P-T" :
       lc($_[0]) =~ /^[u-z]/ ? "U-Z" : "Other";
}

# package_info(package)
# Returns an array of package information in the order
#  name, class, description, arch, version, vendor, installtime
sub package_info
{
local $out = `dpkg --print-avail $_[0] 2>&1`;
return () if ($? || $out =~ /Package .* is not available/i);
local @rv = ( $_[0], &alphabet_name($_[0]) );
push(@rv, $out =~ /Description:\s+([\0-\177]*\S)/i ? $1
						   : $text{'debian_unknown'});
push(@rv, $out =~ /Architecture:\s+(\S+)/i ? $1 : $text{'debian_unknown'});
push(@rv, $out =~ /Version:\s+(\S+)/i ? $1 : $text{'debian_unknown'});
push(@rv, $out =~ /Maintainer:\s+(.*)/i ? &html_escape($1)
					 : $text{'debian_unknown'});
push(@rv, $text{'debian_unknown'});
return @rv;
}

# check_files(package)
# Fills in the %files array with information about the files belonging
# to some package. Values in %files are  path type user group mode size error
sub check_files
{
local $i = 0;
local $file;
open(PKGINFO, "dpkg --listfiles $_[0] |");
while($file = <PKGINFO>) {
	$file =~ s/\r|\n//g;
	next if ($file !~ /^\/[^\.]/);
	local @st = stat($file);
	$files{$i,'path'} = $file;
	$files{$i,'type'} = -l $file ? 3 :
			    -d $file ? 1 : 0;
	$files{$i,'user'} = getpwuid($st[4]);
	$files{$i,'group'} = getgrgid($st[5]);
	$files{$i,'mode'} = sprintf "%o", $st[2] & 07777;
	$files{$i,'size'} = $st[7];
	$files{$i,'link'} = readlink($file);
	$i++;
	}
return $i;
}

# installed_file(file)
# Given a filename, fills %file with details of the given file and returns 1.
# If the file is not known to the package system, returns 0
# Usable values in %file are  path type user group mode size packages
sub installed_file
{
local $out = `dpkg --search $_[0] 2>&1`;
return 0 if ($out =~ /not found/i);
$out =~ s/:\s+\S+\n$//;
local @pkgin = split(/[\s,]+/, $out);
local @st = stat($_[0]);
$file{'path'} = $_[0];
$file{'type'} = -l $_[0] ? 3 :
		-d $_[0] ? 1 : 0;
$file{'user'} = getpwuid($st[4]);
$file{'group'} = getgrgid($st[5]);
$file{'mode'} = sprintf "%o", $st[2] & 07777;
$file{'size'} = $st[7];
$file{'link'} = readlink($_[0]);
$file{'packages'} = join(" ", @pkgin);
return 1;
}

# is_package(file)
sub is_package
{
local $out = `dpkg --info $_[0] 2>&1`;
return $? || $out !~ /Package:/ ? 0 : 1;
}

# file_packages(file)
# Returns a list of all packages in the given file, in the form
#  package description
sub file_packages
{
local $out = `dpkg --info $_[0] 2>&1`;
local $name;
if ($out =~ /Package:\s+(\S+)/i && ($name=$1) &&
    $out =~ /Description:\s+(.*)/i) {
	return ( "$name $1" );
	}
return ();
}

# install_options(file, package)
# Outputs HTML for choosing install options
sub install_options
{
print "<tr> <td><b>$text{'debian_depends'}</b></td>\n";
print "<td><input type=radio name=depends value=1> $text{'yes'}\n";
print "<input type=radio name=depends value=0 checked> $text{'no'}</td> </tr>\n";

print "<tr> <td><b>$text{'debian_conflicts'}</b></td>\n";
print "<td><input type=radio name=conflicts value=1> $text{'yes'}\n";
print "<input type=radio name=conflicts value=0 checked> $text{'no'}</td> </tr>\n";

print "<tr> <td><b>$text{'debian_overwrite'}</b></td>\n";
print "<td><input type=radio name=overwrite value=1> $text{'yes'}\n";
print "<input type=radio name=overwrite value=0 checked> $text{'no'}</td> </tr>\n";

print "<tr> <td><b>$text{'debian_downgrade'}</b></td>\n";
print "<td><input type=radio name=downgrade value=1> $text{'yes'}\n";
print "<input type=radio name=downgrade value=0 checked> $text{'no'}</td> </tr>\n";
}

# install_package(file, package)
# Installs the package in the given file, with options from %in
sub install_package
{
local $args = ($in{'depends'} ? " --force-depends" : "").
	      ($in{'conflicts'} ? " --force-conflicts" : "").
	      ($in{'overwrite'} ? " --force-overwrite" : "").
	      ($in{'downgrade'} ? " --force-downgrade" : "");
local $out = &backquote_logged("dpkg --install $args $_[0] 2>&1 </dev/null");
if ($?) {
	return "<pre>$out</pre>";
	}
return undef;
}

# delete_package(package)
# Totally remove some package
sub delete_package
{
local $out = &backquote_logged("dpkg --remove $_[0] 2>&1 </dev/null");
if ($? || $out =~ /which isn.t installed/i) {
	return "<pre>$out</pre>";
	}
return undef;
}

sub package_system
{
return $text{'debian_manager'};
}

1;

  0707010006932f000081e40000000000000002000000013ac03896000000b0000000200000000000000000000000000000001f00000003reloc/software/delete_file.cgi    #!/usr/local/bin/perl
# delete_file.cgi
# Delete a downloaded package that is no longer needed

require './software-lib.pl';
&ReadParse();
unlink($in{'file'});
&redirect("");

07070100069330000081e40000000000000002000000013ac038950000052f000000200000000000000000000000000000001f00000003reloc/software/delete_pack.cgi    #!/usr/local/bin/perl
# delete_pack.cgi
# Ask if the user wants to delete a package, and if so do it

require './software-lib.pl';
&ReadParse();
$p = $in{'package'};
&error_setup(&text('delete_err', $p));
(@pinfo = &package_info($p)) ||
	&error(&text('delete_epack', $p));

if ($in{'sure'}) {
	# do the deletion
	&list_packages($in{'package'});
	if ($error = &delete_package($in{'package'})) {
		&error($error);
		}
	&webmin_log("delete", "package", $p, { 'desc' => $packages{0,'desc'} });
	if ($in{'search'}) {
		&redirect("search.cgi?search=$in{'search'}");
		}
	else {
		&redirect("");
		}
	}
else {
	# Ask if the user is sure..
	&header($text{'delete_title'}, "", "delete");
	print "<hr>\n";

	$n = &check_files($p);
	$sz = 0;
	for($i=0; $i<$n; $i++) {
		if ($files{$i,'type'} == 0) { $sz += $files{$i,'size'}; }
		}
	print "<center>\n";
	print &text('delete_rusure', "<b>$p</b>", $n, $sz),"<br>\n";
	print "<form action=delete_pack.cgi>\n";
	print "<input type=hidden name=package value=\"$p\">\n";
	print "<input type=hidden name=sure value=1>\n";
	print "<input type=hidden name=search value=\"$in{'search'}\">\n";
	print "<input type=submit value=\"$text{'delete_ok'}\"></center>\n";
	print "</form>\n";

	print "<hr>\n";
	&footer("edit_pack.cgi?search=$in{'search'}&package=".&urlize($p),
		$text{'edit_return'});
	}

 07070100069331000081e40000000000000002000000013ac038950000057d000000200000000000000000000000000000001e00000003reloc/software/do_install.cgi #!/usr/local/bin/perl
# do_install.cgi
# Do the actual installation of a package from a file

require './software-lib.pl';
&ReadParse();
&error_setup(&text('do_err', $in{'package'}));
$| = 1;

&header($text{'do_title'}, "");

foreach $p (&file_packages($in{'file'})) {
	# attempt to install
	print "<hr>\n";
	($package, $desc) = split(/\s+/, $p, 2);
	$error = &install_package($in{'file'}, $package);
	if ($error) {
		print "<h3>",&text('do_efailed', $error),"</h3>\n";
		print $text{'do_efailedmsg1'},"<p>\n";
		if ($in{'need_unlink'}) {
			print &text('do_efailedmsg2',
				"delete_file.cgi?file=".
				&urlize($in{'file'})),"<p>\n";
			}
		print "<hr>\n";
		&footer("", $text{'index_return'});
		exit;
		}
	if ($in{'need_unlink'}) { unlink($in{'file'}); }

	# display information
	@pinfo = &show_package_info($package);
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'do_files'}</b></td> </tr>\n";
	print "<tr $cb> <td><table width=100%>\n";
	$n = &check_files($package);
	for($i=0; $i<$n; $i++) {
		if ($i%2 == 0) { print "<tr>\n"; }
		print "<td width=50%>$files{$i,'path'}</td>\n";
		if ($i%2 == 1) { print "</tr>\n"; }
		}
	print "</table></td></tr></table><p>\n";
	&list_packages($package);
	&webmin_log('install', 'package', $package,
		    { 'desc' => $packages{0,'desc'},
		      'class' => $packages{0,'class'} });
	}

print "<hr>\n";
&footer("", $text{'index_return'});

   07070100069332000081e40000000000000002000000013ac0389500000794000000200000000000000000000000000000001d00000003reloc/software/edit_pack.cgi  #!/usr/local/bin/perl
# edit_pack.cgi
# Displays the details of an existing package, with links to uninstall and
# other options

require './software-lib.pl';
&header($text{'edit_title'}, "", "edit_pack");
&ReadParse();
print "<hr>\n";
@pinfo = &package_info($in{'package'});

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'edit_details'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";
print "<tr> <td valign=top width=20%><b>$text{'edit_desc'}</b></td>\n";
print "<td colspan=3><font size=+1><pre>$pinfo[2]</pre></font></td> </tr>\n";

print "<tr> <td width=20%><b>$text{'edit_pack'}</b></td> <td>$pinfo[0]</td>\n";
print "<td width=20%><b>$text{'edit_class'}</b></td> <td>",
      $pinfo[1] ? $pinfo[1] : $text{'edit_none'},"</td> </tr>\n";

print "<tr> <td width=20%><b>$text{'edit_ver'}</b></td> <td>$pinfo[4]</td>\n";
print "<td width=20%><b>$text{'edit_vend'}</b></td> <td>$pinfo[5]</td> </tr>\n";

print "<tr> <td width=20%><b>$text{'edit_arch'}</b></td> <td>$pinfo[3]</td>\n";
print "<td width=20%><b>$text{'edit_inst'}</b></td> <td>$pinfo[6]</td> </tr>\n";
print "</table></td></tr></table><p>\n";

print "<table width=100%> <tr>\n";
print "<form action=list_pack.cgi>\n";
print "<input type=hidden name=package value=\"$pinfo[0]\">\n";
print "<input type=hidden name=search value=\"$in{'search'}\">\n";
print "<td align=left><input type=submit value=\"$text{'edit_list'}\"></td>\n";
print "</form>\n";
print "<form action=delete_pack.cgi>\n";
print "<input type=hidden name=package value=\"$pinfo[0]\">\n";
print "<input type=hidden name=search value=\"$in{'search'}\">\n";
print "<td align=right>\n";
print "<input type=submit value=\"$text{'edit_uninst'}\"></td>\n";
print "</form>\n";
print "</tr> </table><p>\n";

print "<hr>\n";
if ($in{'search'}) {
	&footer("search.cgi?search=$in{'search'}", $text{'search_return'});
	}
else {
	&footer("index.cgi#$pinfo[1]", $text{'index_return'});
	}


07070100069333000081e40000000000000002000000013ac03895000008c5000000200000000000000000000000000000001d00000003reloc/software/file_info.cgi  #!/usr/local/bin/perl
# file_info.cgi
# Display information about a file owned by the package management system

require './software-lib.pl';
&ReadParse();
$f = $in{'file'};
&header($text{'file_title'}, "", "file_info");
print "<hr>\n";

$f =~ s/\/$//;
if ($f !~ /^\//) {
	# if the filename is not absolute, look for it
	foreach $p (split(/:/, $ENV{'PATH'})) {
		last if (&installed_file("$p/$f"));
		}
	}
else {
	# absolute path.. must exist in DB
	&installed_file($f);
	}

if (!%file) {
	print "<h3>",&text('file_notfound', "<i>$f</i>"),"</h3>\n";
	}
else {
	# display file info
	$nc = "width=10% nowrap";
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'file_title'}</b></td> </tr>\n";
	print "<tr $cb> <td><table width=100%>\n";

	print "<tr> <td $nc><b>$text{'file_path'}</b></td>\n";
	print "<td colspan=3><font size=+1>$file{'path'}</font></td> </tr>\n";

	print "<tr> <td $nc><b>$text{'file_type'}</b></td>\n";
	print "<td>$type_map[$file{'type'}]</td>\n";

	if ($file{'type'} != 3 && $file{'type'} != 4) {
		print "<td $nc><b>$text{'file_perms'}</b></td>\n";
		print "<td>$file{'mode'}</td> </tr>\n";

		print "<tr> <td $nc><b>$text{'file_owner'}</b></td>\n";
		print "<td>$file{'user'}</td>\n";
		print "<td $nc><b>$text{'file_group'}</b></td>\n";
		print "<td>$file{'group'}</td> </tr>\n";

		if ($file{'type'} == 0) {
			print "<tr> <td $nc><b>$text{'file_size'}</b></td>\n";
			print "<td>$file{'size'}</td> </tr>\n";
			}
		}
	else {
		print "<td $nc><b>$text{'file_link'}</b></td>\n";
		print "<td>$file{'link'}</td> </tr>\n";
		}
	print "</table></tr> </tr></table><p>\n";

	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'file_pack'}</b></td> ",
	      "<td><b>$text{'file_class'}</b></td> ",
	      "<td><b>$text{'file_desc'}</b></td> </tr>\n";
	$n = &list_packages(split(/\s+/, $file{'packages'}));
	for($i=0; $i<$n; $i++) {
		print "<tr $cb> <td><a href=\"edit_pack.cgi?package=",
		      &urlize($packages{$i,'name'}),
		      "\">$packages{$i,'name'}</a></td>\n";
		$c = $packages{$i,'class'};
		print "<td>",$c ? $c : $text{'file_none'},"</td>\n";
		print "<td>$packages{$i,'desc'}</td> </tr>\n";
		}
	print "</table><p>\n";
	}

print "<hr>\n";
&footer("", $text{'index_return'});

   07070100069334000081a40000000000000002000000013ac03896000011ae000000200000000000000000000000000000001e00000003reloc/software/freebsd-lib.pl # bsd-lib.pl
# Functions for FreeBSD package management

use POSIX;
chop($system_arch = `uname -m`);
$package_dir = "/var/db/pkg";

# list_packages([package]*)
# Fills the array %packages with a list of all packages
sub list_packages
{
local $i = 0;
local $arg = @_ ? join(" ", @_) : "-a";
open(PKGINFO, "pkg_info -I $arg |");
while(<PKGINFO>) {
	if (/^(\S+)\s+(.*)/) {
		$packages{$i,'name'} = $1;
		$packages{$i,'class'} = "";
		$packages{$i,'desc'} = $2;
		$i++;
		}
	}
close(PKGINFO);
return $i;
}

# package_info(package)
# Returns an array of package information in the order
#  name, class, description, arch, version, vendor, installtime
sub package_info
{
local $out = `pkg_info $_[0] 2>&1`;
return () if ($?);
local @rv = ( $_[0] );
push(@rv, "");
push(@rv, $out =~ /Description:\n([\0-\177]*\S)/i ? $1 : $text{'bsd_unknown'});
push(@rv, $system_arch);
push(@rv, $_[0] =~ /-([^\-]+)$/ ? $1 : $text{'bsd_unknown'});
push(@rv, "FreeBSD");
local @st = stat("$package_dir/$_[0]");
push(@rv, @st ? ctime($st[9]) : $text{'bsd_unknown'});
return @rv;
}

# check_files(package)
# Fills in the %files array with information about the files belonging
# to some package. Values in %files are  path type user group mode size error
sub check_files
{
local $i = 0;
local $file;
open(PKGINFO, "pkg_info -L $_[0] |");
while($file = <PKGINFO>) {
	$file =~ s/\r|\n//g;
	next if ($file !~ /^\//);
	local @st = stat($file);
	$files{$i,'path'} = $file;
	$files{$i,'type'} = -l $file ? 3 :
			    -d $file ? 1 : 0;
	$files{$i,'user'} = getpwuid($st[4]);
	$files{$i,'group'} = getgrgid($st[5]);
	$files{$i,'mode'} = sprintf "%o", $st[2] & 07777;
	$files{$i,'size'} = $st[7];
	$files{$i,'link'} = readlink($file);
	$i++;
	}
return $i;
}

# installed_file(file)
# Given a filename, fills %file with details of the given file and returns 1.
# If the file is not known to the package system, returns 0
# Usable values in %file are  path type user group mode size packages
sub installed_file
{
local (%packages, $file, $i, @pkgin);
local $n = &list_packages();
for($i=0; $i<$n; $i++) {
	open(PKGINFO, "pkg_info -L $packages{$i,'name'} |");
	while($file = <PKGINFO>) {
		$file =~ s/\r|\n//g;
		if ($file eq $_[0]) {
			# found it
			push(@pkgin, $packages{$i,'name'});
			}
		}
	close(PKGINFO);
	}
if (@pkgin) {
	local @st = stat($_[0]);
	$file{'path'} = $_[0];
	$file{'type'} = -l $_[0] ? 3 :
			-d $_[0] ? 1 : 0;
	$file{'user'} = getpwuid($st[4]);
	$file{'group'} = getgrgid($st[5]);
	$file{'mode'} = sprintf "%o", $st[2] & 07777;
	$file{'size'} = $st[7];
	$file{'link'} = readlink($_[0]);
	$file{'packages'} = join(" ", @pkgin);
	return 1;
	}
else {
	return 0;
	}
}

# is_package(file)
sub is_package
{
local ($desc, $contents);
open(TAR, "gunzip -c $_[0] | tar tf - |");
while(<TAR>) {
	$desc++ if (/^\+DESC/);
	$contents++ if (/^\+CONTENTS/);
	}
close(TAR);
return $desc && $contents;
}

# file_packages(file)
# Returns a list of all packages in the given file, in the form
#  package description
sub file_packages
{
local $temp = &tempname();
mkdir($temp, 0700);
system("cd $temp ; gunzip -c $_[0] | tar xf - +CONTENTS +COMMENT >/dev/null 2>&1");
local ($comment, $name);
open(COMMENT, "$temp/+COMMENT");
($comment = <COMMENT>) =~ s/\r|\n//g;
close(COMMENT);
open(CONTENTS, "$temp/+CONTENTS");
while(<CONTENTS>) {
	$name = $1 if (/^\@name\s+(\S+)/);
	}
close(CONTENTS);
unlink("$temp/+COMMENT", "$temp/+CONTENTS");
rmdir($temp);
return ( "$name $comment" );
}

# install_options(file, package)
# Outputs HTML for choosing install options
sub install_options
{
print "<tr> <td><b>$text{'bsd_scripts'}</b></td>\n";
print "<td><input type=radio name=scripts value=0 checked> $text{'yes'}\n";
print "<input type=radio name=scripts value=1> $text{'no'}</td> </tr>\n";

print "<tr> <td><b>$text{'bsd_force'}</b></td>\n";
print "<td><input type=radio name=force value=1> $text{'yes'}\n";
print "<input type=radio name=force value=0 checked> $text{'no'}</td> </tr>\n";
}

# install_package(file, package)
# Installs the package in the given file, with options from %in
sub install_package
{
local $args = ($in{"scripts"} ? " -I" : "").
	      ($in{"force"} ? " -f" : "");
local $out = &backquote_logged("pkg_add $args $_[0] 2>&1");
if ($?) {
	return "<pre>$out</pre>";
	}
return undef;
}

# delete_package(package)
# Totally remove some package
sub delete_package
{
local $out = &backquote_logged("pkg_delete $_[0] 2>&1");
if ($?) { return "<pre>$out</pre>"; }
return undef;
}

sub package_system
{
return &text('bsd_manager', "FreeBSD");
}



1;
  0707010006a837000041ed0000000000000001000000023ac03c7a00000000000000200000000000000000000000000000001400000003reloc/software/help   0707010006a838000081a40000000000000002000000013ac038950000011f000000200000000000000000000000000000002300000003reloc/software/help/delete.es.html    <header>Borrar Paquete</header>

Esta p醙ina te permite confirmar la anulaci髇 de un paquete instalado.
A causa de que algunos archivos del paquete pueden estar siendo compartidos
por otros, la cantidad de espacio en disco que se reclame puede ser
inferior a la cantidad mostrada.
<hr>

 0707010006a839000081a40000000000000002000000013ac038950000010b000000200000000000000000000000000000002300000003reloc/software/help/delete.fr.html    <header>Suprimer un composant</header>

Cette page vous permet de confirmer la supprimer d'un composant
install. Comme plusieurs des fichiers de ce composant peuvent
阾re partag閟 avec d'autre, l'espace disque r閏up閞 peut 阾re
moindre que ce qui est affich.
<hr>
 0707010006a83a000081a40000000000000002000000013ac03895000000f8000000200000000000000000000000000000002000000003reloc/software/help/delete.html   <header>Delete Package</header>

This page allows you to confirm the deletion of an installed package.
Because some of the files in this package may be shared with others,
the amount of disk space reclaimed may be less that the amount shown.
<hr>

0707010006a83b000081a40000000000000002000000013ac03895000000fb000000200000000000000000000000000000002300000003reloc/software/help/delete.hu.html    <header>Csomag t鰎l閟e</header>

Ezen az oldalon telep韙ett csomagot t鰎鰈het. Mivel a csomagban l関
f醞lok k鰖鰐t akadhat olyan, melyek m醩 csomagokkal vannak megosztva,
ez閞t a visszanyert lemezter黮et mennyis間e kevesebb lehet a mutatottn醠.
<hr>
 0707010006a83c000081a40000000000000002000000013ac0389600000111000000200000000000000000000000000000002300000003reloc/software/help/delete.pl.html    <header>Usu pakiet</header>

Ta strona pozwala Ci potwierdzi usuni阠ie zainstalowanego pakietu.
Ze wzgl阣u na to, 縠 niekt髍e pliki w&nbsp;pakiecie mog by wsp蟪dzielone
z&nbsp;innymi pakietami, ilo舵 odzyskiwanego miejsca na dysku mo縠 by
mniejsza ni pokazano.
<hr>

   0707010006a83d000081a40000000000000002000000013ac03895000000e3000000200000000000000000000000000000002300000003reloc/software/help/delete.sv.html    <header>Ta bort paket</header>

H鋜 kan man bekr鋐ta att man vill ta bort ett installerat paket. Eftersom
en del filer kan vara gemensamma med andra paket kan det diskutrymme som
frig鰎s vara mindre 鋘 det som anges h鋜.
<hr>

 0707010006a83e000081a40000000000000002000000013ac03895000000ad000000200000000000000000000000000000002b00000003reloc/software/help/delete.zh_TW.Big5.html    <header>埃甅ン</header>

硂璶―眤絋粄琌璶埃竒杆甅ン. 琘ㄇ赣甅ン┮ㄏノ郎籔ㄤ甅ン┮ㄉ, ┮龟悔ノ合盒丁穦ゑ┮陪ボ菠.
<hr>

   0707010006a83f000081a40000000000000002000000013ac038950000011e000000200000000000000000000000000000002600000003reloc/software/help/edit_pack.es.html <header>Editar Paquete</header>

Esta p醙ina muestra informaci髇 acerca de un paquete instalado. El bot髇
de <tt>Listar Archivos</tt> muestra una lista de todos los archivos que
conforman este paquete, mientras que el bot髇 de <tt>Desinstalar</tt>
inicia el proceso de anulaci髇.
<hr>

  0707010006a840000081a40000000000000002000000013ac0389500000124000000200000000000000000000000000000002600000003reloc/software/help/edit_pack.fr.html <header>蒬iter un composant</header>

Cette page affiche des informations sur un composant install.
Le bouton <tt>liste des fichiers</tt> affiche tous les fichiers
contenus dans le composant, tandis que le bouton <tt>D閟installer</tt>
d閙arre le processus de suppression du composant.
<hr>

0707010006a841000081a40000000000000002000000013ac03895000000fb000000200000000000000000000000000000002300000003reloc/software/help/edit_pack.html    <header>Edit Package</header>

This page displays information about an installed package. The <tt>List
Files</tt> button shows a list of all files that make up this package,
while the <tt>Uninstall</tt> button begins the process of deleting it.
<hr>

 0707010006a842000081a40000000000000002000000013ac0389500000105000000200000000000000000000000000000002600000003reloc/software/help/edit_pack.hu.html <header>Csomag szerkeszt閟e</header>

Ez az oldal inform醕i髃at jelen韙 meg egy telep韙ett csomagr髄. A
<tt>F醞lok list醶醩a</tt> nyom骻omb egy list醫 mutat meg a csomag 
醠tal l閠rehozott f醞lok, m韌 a <tt>T鰎l閟</tt> gomb a t鰎l閟
folyamat醫 kezdi meg.
<hr>

   0707010006a843000081a40000000000000002000000013ac0389600000106000000200000000000000000000000000000002600000003reloc/software/help/edit_pack.pl.html <header>Zmie pakiet</header>

Ta strona podaje informacje o&nbsp;zainstalowanym pakiecie. Przycisk
<tt>Poka pliki</tt> pokazuje list wszystkich plik體, kt髍e tworz ten
pakiet, podczas gdy przycisk <tt>Odinstaluj</tt>rozpoczyna proces usuwania
pakietu.
<hr>

  0707010006a844000081a40000000000000002000000013ac03895000000e6000000200000000000000000000000000000002600000003reloc/software/help/edit_pack.sv.html <header>膎dra paket</header>

P denna sida visas information om ett installerat paket. Knappen <tt>Lista
filer</tt> visar en lista 鰒er alla filer i paketet och <tt>Avinstallera</tt>
p錬鰎jar processen att ta bort paketet.
<hr>

  0707010006a845000081a40000000000000002000000013ac03895000000a3000000200000000000000000000000000000002e00000003reloc/software/help/edit_pack.zh_TW.Big5.html <header>絪胯甅ン</header>

硂陪ボ闽杆甅ン闽戈癟. <tt>郎</tt>秙┮Τ硂甅ン郎, <tt>秆埃杆</tt>秙埃硂甅ン.
<hr>

 0707010006a846000081a40000000000000002000000013ac03895000000ae000000200000000000000000000000000000002800000003reloc/software/help/excludedocs.es.html   <header>縄nstalar documentaci髇?</header>

Si se selecciona esta opci髇, cualquier documentaci髇 que venga con el
paquete ser instalada as como el programa en curso.
<hr>

  0707010006a847000081a40000000000000002000000013ac03895000000ac000000200000000000000000000000000000002800000003reloc/software/help/excludedocs.fr.html   <header>Installer la documentation?</header>

Si cette option est choisie, toute documentation qui accompagne le
composant sera install閑 avec le reste du programme.
<hr>

0707010006a848000081a40000000000000002000000013ac03895000000a8000000200000000000000000000000000000002500000003reloc/software/help/excludedocs.html  <header>Install documentation?</header>

If this option is chosen, any documentation that comes with the package
will be installed along with the actual program.
<hr>

0707010006a849000081a40000000000000002000000013ac038950000008d000000200000000000000000000000000000002800000003reloc/software/help/excludedocs.hu.html   <header>Dokument醕i telep韙閟e</header>

Ha ezt az opci髏 bekapcsolja, akkor minden - a csomaggal j醨 - dokument醕i髏
is feltelep韙.
<hr>

   0707010006a84a000081a40000000000000002000000013ac03896000000b8000000200000000000000000000000000000002800000003reloc/software/help/excludedocs.pl.html   <header>Instalowa dokumentacj?</header>

Je秎i ta opcja zostanie wybrana, wraz z&nbsp;bie勘cym programem zostanie
zainstalowana ca砤 przychodz眂a z&nbsp;pakietem dokumentacja.
<hr>

0707010006a84b000081a40000000000000002000000013ac03895000000a0000000200000000000000000000000000000002800000003reloc/software/help/excludedocs.sv.html   <header>Installera dokumentation?</header>

Om man v鋖jer detta kommer dokumentationen som f鰈jer med paketet att
installeras tillsammans med programmet.
<hr>

0707010006a84c000081a40000000000000002000000013ac038950000005e000000200000000000000000000000000000003000000003reloc/software/help/excludedocs.zh_TW.Big5.html   <header>琌杆ゅン?</header>

狦匡拒硂匡兜, ┮Τ硂甅ンい弧ゅン常穦砆杆.
<hr>

  0707010006a84d000081a40000000000000002000000013ac0389500000123000000200000000000000000000000000000002600000003reloc/software/help/file_info.es.html <header>Informaci髇 de Archivo</header>

Esta p醙ina muestra toda la informaci髇 disponible acerca de alg鷑 archivo
del sistema de gesti髇 de paquetes, as como una lista de los paquetes de
que es miembro el archivo. Haz click en un nombre de paquete para averiguar
m醩 acerca de 閘.

<hr>

 0707010006a84e000081a40000000000000002000000013ac038950000010c000000200000000000000000000000000000002600000003reloc/software/help/file_info.fr.html <header>Information des fichiers</header>

Cette page affiche toutes les informations disponibles sur certains
fichiers du syst鑝e de gestion des composants, ainsi qu'une liste des
composants dont le fichier fait partie. Cliquez sur ue nom pour en savoir plus.

<hr>

0707010006a84f000081a40000000000000002000000013ac03895000000fa000000200000000000000000000000000000002300000003reloc/software/help/file_info.html    <header>File Information</header>

This page displays all available information about some file from the
packages management system, as well as a list of package that the file
is a member of. Click on a package name to find out more about it.

<hr>

  0707010006a850000081a40000000000000002000000013ac0389600000115000000200000000000000000000000000000002600000003reloc/software/help/file_info.pl.html <header>Informacje o&nbsp;pliku</header>

Ta strona pokazuje wszelkie dost阷ne informacje dotycz眂e pewnego pliku
w&nbsp;systemie zarz眃zania pakietami, jak te list pakiet體, do kt髍ych
dany plik nale縴. Naci秐ij na nazw pakietu, aby dowiedzie si o&nbsp;nim
wi阠ej.
<hr>

   0707010006a851000081a40000000000000002000000013ac03895000000e2000000200000000000000000000000000000002600000003reloc/software/help/file_info.sv.html <header>Filinformation</header>

H鋜 visas all tillg鋘glig information om en vald fil i pakethanteringssystemet
och en lista 鰒er de paket som filen ing錼 i. Klicka p ett pakets namn f鰎
att f mer information om det.

<hr>

  0707010006a852000081a40000000000000002000000013ac038950000008e000000200000000000000000000000000000002e00000003reloc/software/help/file_info.zh_TW.Big5.html <header>郎戈癟</header>

硂陪ボ┮Τㄓ郎恨瞶╰参郎闽戈癟, 硂郎┮妮甅ン. 甅ン嘿т戈癟.

<hr>

  0707010006a853000081a40000000000000002000000013ac03895000000b7000000200000000000000000000000000000002400000003reloc/software/help/install.es.html   <header>Instalar Paquete</header>

Esta p醙ina te permite seleccionar qu paquete instalar del archivo de
paquetes seleccionado y qu opciones utilizar durante la instalaci髇.

<hr>

 0707010006a854000081a40000000000000002000000013ac03895000000c1000000200000000000000000000000000000002400000003reloc/software/help/install.fr.html   <header>Installer un composant</header>

Cette page vous permet de choisir quel composant installer  partir
de quel fichier et quelles options seront utilis閑s durant son installation.

<hr>

   0707010006a855000081a40000000000000002000000013ac03895000000ad000000200000000000000000000000000000002100000003reloc/software/help/install.html  <header>Install Package</header>

This page allows you to select which package to install from the chosen
package file, and which options to use during installation.

<hr>

   0707010006a856000081a40000000000000002000000013ac038960000009d000000200000000000000000000000000000002400000003reloc/software/help/install.pl.html   <header>Zainstaluj pakiet</header>

Ta strona umo縧iwia ci wybranie pakietu do zainstalowania z&nbsp;wybranego
pliku oraz ustawienie opcji instalacji.
<hr>

   0707010006a857000081a40000000000000002000000013ac038950000009a000000200000000000000000000000000000002400000003reloc/software/help/install.sv.html   <header>Installera paket</header>

H鋜 kan man v鋖ja det paket man vill installera och g鰎a de inst鋖lningar
som ska anv鋘das under installationen.
<hr>

  0707010006a858000081a40000000000000002000000013ac038950000005a000000200000000000000000000000000000002c00000003reloc/software/help/install.zh_TW.Big5.html   <header>杆甅ン</header>

硂琵眤匡拒璶杆甅ン籔砞﹚杆璶ㄏノ匡兜.

<hr>

  0707010006a859000081a40000000000000002000000013ac0389500000912000000200000000000000000000000000000002200000003reloc/software/help/intro.es.html <header>Paquetes de Software</header>

<h3>Introducci髇 a Paquetes</h3>
Un paquete de software es una colecci髇 de archivos que conforman un programa.
Estos archivos pueden ser combinados en un archivo de paquete para su
distribuci髇 o descarga, para ser extra韉os y colocados en sus correctas
localizaciones cuando el paquete es instalado. <p>

Un sistema de gesti髇 de paquetes automatiza la mayor韆 del trabajo durante
la instalaci髇 y anulaci髇 de programas. A causa de que los paquetes est醤
normalmente pre-compilados, no te has de preocupar acerca de guiones de
<tt>Makefile</tt> y <tt>configure</tt> durante la instalaci髇. A causa de
que el sistema de gesti髇 de paquetes hace un seguimiento de todos los
paquetes, puede anular todo rastro de un programa en la desinstalaci髇.<p>

<h3>Paquetes Instalados</h3>
Los paquetes se organizan dentro de clases y subclases, como <tt>Sistema</tt>
o <tt>X11/Utilities</tt>. Al principio de la p醙ina principal hay un 醨bol
de carpetas y paquetes en los cuales cada carpeta representa una clase.
Para abrir una carpeta, s韒plemente haz click en ella. Para ver m醩
informaci髇 acerca de un paquete, haz click en su nombre. <p>

Bajo el 醨bol de paquetes hay un formulario para poder buscar en la base
de datos del paquete. Esto buscar aquellos paquetes cuyos nombres o
descripciones coincidan con cualquier texto que digites. <p>

<h3>Instalar un Nuevo Paquete</h3>
Bajo el bot髇 de b鷖queda de paquetes hay un formulario para instalar un
nuevo paquete. Puedes instalar desde un archivo de tu sistema, desde un
archivo del ordenador donde est醩 ejecutando tu navegador web o desde una
direcci髇 URL FTP o HTTP. En este 鷏timo caso, Webmin contactar con el
servidor FTP o sitio web y descargar el archivo de paquete. Si tu sistema
est tras un cortafuegos, aseg鷕ate de tener configurados los servidores
proxy corr閏tamente en el m骴ulo de <i>Configuraci髇 de Webmin</i>.<p>

<h3>Identificar un Archivo</h3>
En la parte inferior de la p醙ina principal hay un formulario para
identificar alg鷑 archivo de tu sistema. Puedes digitar una trayectoria
absoluta como <tt>/etc/inetd.conf</tt> o un comando como <tt>elm</tt>.
Webmin intentar encontrar el archivo en el sistema de gesti髇 de paquetes
y mostrar informaci髇 acerca del archivo y paquetes que lo utilizan.<p>

<hr>

  0707010006a85a000081a40000000000000002000000013ac0389500000950000000200000000000000000000000000000002200000003reloc/software/help/intro.fr.html <header>Composants Logiciel</header>

<h3>Introduction aux composants</h3>
Un composant logiciel est un ensemble de fichiers qui forment un programme.
Ces fichiers peuvent 阾re combin閟 dans un seul paquet pour 阾re distribu閟 ou
t閘閏harg閟 puis d'阾re d閏ompress閟 et plac閟 au bon endroit lors de
l'installation du composant. <p>

Un syst鑝e de gestion de composant automatise la majorit du travail
d'installation et de suppression des programmes. Parceque les composants
sont g閚閞alement pr-compil閟, vous n'avez pas  vous pr閛ccuper des
<tt>Makefiles</tt> et <tt>configure</tt> durant l'installation. Comme
le syst鑝e de gestion garde toutes les informations des composants install閟,
il peut supprimer toutes les traces d'un programme lors de la
d閟installation. <p>

<h3>Composants install閟</h3>
Les composants sont organis閟 en cat間ories et sous-cat間ories, comme
<tt>System</tt> ou <tt>X11/Utilities</tt>. En haut de la page principale
se trouve une arborescence de dossiers et composants, dans laquelle chaque
dossier repr閟ente une cat間orie. Pour ouvrir un dossier, cliquez simplement
dessus. Pour voir plus d'informations sur un composant, cliquez sur son nom. <p>

Sous l'arborescence se trouve un formulaire pour rechercher dans la base de
donn閑s des composants. Ceci cherchera des composants dont le nom ou la
description correspond au texte que vous aurez saisi. <p>

<h3>Installer un nouveau composant</h3>
Sous la recherche de composant se trouve un autre formulaire pour installer
un nouveau composant. Vous pouvez l'installer soit  partir d'un fichier
pr閟ent sur le syst鑝e, d'un fichier pr閟nt sur l'ordinateur o vous ex閏utez
votre navigateur web ou encore d'une adresse FTP ou HTTP. Dans le dernier cas,
Webmin contactera le serveur FTP ou Web et t閘閏hargera le fichier. Si votre
syst鑝e se trouve derri鑢e un firewall, assurez-vous que vous avez correctement
configur le serveur proxy dans le module de <i>Configuration de Webmin</i>. <p>

<h3>Identifier un Fichier</h3>
Au bas de la page se trouve un formulaire pour identifier des fichiers de votre
syst鑝e. Vous pouvez saisir n'importe quel chemin absolu comme
<tt>/etc/inetd.conf</tt>, ou un commande comme <tt>elm</tt>. Webmin va tenter
de trouver le fichier dans le syst鑝e de gestion des composants et affichera
des informations sur ce fichier et les composants qui l'utilisent. <p>

<hr>

0707010006a85b000081a40000000000000002000000013ac03895000007e6000000200000000000000000000000000000001f00000003reloc/software/help/intro.html    <header>Software Packages</header>

<h3>Introduction to Packages</h3>
A software package is a collection of files that make up a program. These
files may all be combined into one package file for distribution or
downloading, to be extracted and placed in their correct locations when
the package is installed. <p>

A package management system automates most of the work in installing and
deleting programs. Because packages are usually pre-compiled, you do not
have to worry about <tt>Makefiles</tt> and <tt>configure</tt> scripts when
installing. Because the package management system keeps track of all
packages, it can remove all trace of a program when uninstalling. <p>

<h3>Installed Packages</h3>
Packages are organised into classes and subclasses, like <tt>System</tt>
or <tt>X11/Utilities</tt>. At the top of the main page is a tree of folders
and packages, in which each folder represents a class. To open a folder, simply
click on it. To view more information about a package, click on its name. <p>

Below the package tree is a form for searching the package database. This
will search for packages whose name or description matches whatever text
you enter. <p>

<h3>Install a New Package</h3>
Below the package search button is a form for installing a new package.
You may install either from a file on your system, a file on the computer
on which you are running your web browser, or from an FTP or HTTP URL.
In the last case, Webmin will contact the FTP server or web site and download
the package file. If your system is behind a firewall, make sure you have
the proxy servers configured correctly in the <i>Webmin Configuration</i>
module. <p>

<h3>Identify a File</h3>
At the bottom of the main page is a form for identifying some file on
your system. You may enter either an absolute path like
<tt>/etc/inetd.conf</tt>, or a command like <tt>elm</tt>. Webmin will attempt
to find the file in the package management system, and display information
about the file and the packages that use it. <p>

<hr>

  0707010006a85c000081a40000000000000002000000013ac0389600000901000000200000000000000000000000000000002200000003reloc/software/help/intro.pl.html <header>Pakiety oprogramowania</header>

<h3>Wprowadzenie do pakiet體</h3>
Pakiet oprogramowania jest zbiorem plik體, kt髍e tworz program. Pliki te
mog by po潮czone w&nbsp;jeden plik pakietu w&nbsp;celu dystrybucji lub
pobierania. S one wydzielane i&nbsp;umieszczane w&nbsp;swoich prawid硂wych
lokalizacjach podczas instalacji pakietu. <p>

System zarz眃zania pakietami automatyzuje wi阫szo舵 pracy podczas instalacji
i&nbsp;kasowania program體. Ze wzgl阣u na to, 縠 pakiety zazwyczaj zawieraj
skompilowane progrzmy, nie musisz si prsejmowa plikami <tt>Makefile</tt>
i&nbsp;skryptami <tt>configure</tt> podczas instalacji. A jako 縠 system
zarz眃zania pakietami 秎edzi wszystkie pakiety, mo縠 on usun辨 wszelkie 秎ady
programu podczas jego odinstalowywania. <p>

<h3>Zainstalowane pakiety</h3>
Pakiety s zorganizowane w&nbsp;klasy i&nbsp;podklasy takie, jak
<tt>System</tt> lub <tt>X11/Utilities</tt>. W&nbsp;g髍nej cz甓ci g丑wnej
strony znajduje si drzewo folder體 i&nbsp;pakiet體, w kt髍ym ka縟y folder
reprezentuje klas. Aby otworzy folder, wystarczy klikn辨 na nim. Aby
zobaczy informacje o&nbsp;pakiecie, kliknij na jego nazwie. <p>

Poni縠j drzewa pakiet體 znajduje si formularz s硊勘cy do przeszukiwania
bazy pakiet體. Umo縧iwia on poszukiwanie pakiet體, kt髍ych nazwa lub opis
pasuj do tego co wprowadzono. <p>

<h3>Zainstaluj nowy pakiet</h3>
Poni縠j przycisku poszukiwania pakiet體 znajduje si formularz do instalacji
nowych pakiet體. Instalacj mo縩a przeprowadzi zar體no z&nbsp;pliku
w&nbsp;systemie, pliku na komputerze, na kt髍ym dzia砤 przegl眃arka, jak te
z&nbsp;zadanego URL-a FTP lub HTTP. W&nbsp;tym ostatnim przypadku, Webmin
skomunikuje si z&nbsp;serwerem FTP lub witryn i&nbsp;pobierze plik pakietu.
Je秎i system znajduje si za firewallem, musisz si upewni, 縠 s
prawid硂wo skonfigurowane w&nbsp;module <i>Konfiguracja Webmina</i> serwery
proxy. <p>

<h3>Zidentyfikuj plik</h3>
Na samym dole strony g丑wnej znajduje si formularz do identyfikacji
wybranego pliku w&nbsp;systemie. Mo縠sz tu poda bezwzgl阣n 禼ie縦, np.
<tt>/etc/inetd.conf</tt> lub polecenie typu <tt>elm</tt>. Webmin podejmie
pr骲 znalezienia pliku w&nbsp;systemie zarz眃zania pakietami,
a&nbsp;nast阷nie wy秝ietli informacje o&nbsp;tym pliku i&nbsp;pakietach, do
kt髍ych nale縴. <p>
<hr>

   0707010006a85d000081a40000000000000002000000013ac03895000007e4000000200000000000000000000000000000002200000003reloc/software/help/intro.sv.html <header>Programpaket</header>

<h3>Introduktion till paket</h3>
Ett programpaket 鋜 en samling filer som tillsammans utg鰎 ett program. Dessa
filer kan samlas ihop till en paketfil som kan distribueras och laddas ned
och sedan packas upp, s att filerna kan placeras p r鋞t st鋖len n鋜 paketet
installeras.

<p>Ett pakethanteringssystem automatiserar mycket av installation och
radering av program. Programmen i paketen 鋜 oftast f鋜digkompilerade, vilket
g鰎 att man inte beh鰒er bry sig om n錱ra <tt>Makefiler</tt> eller
<tt>konfigureringsscript</tt> n鋜 man installerar paketet.
Pakethanteringssystemet h錶ler reda p paketen och kan d鋜f鰎 ta bort allt
som h鰎 till ett visst paket n鋜 det ska avinstalleras.

<h3>Installerade paket</h3>
Paketen 鋜 ordnade i klasser och underklasser, t ex <tt>System</tt> och
<tt>X11/Utilities</tt>. H鰃st upp p startsidan finns ett tr鋎 med mappar
och paket, d鋜 varje mapp representerar en klass. Klicka p en mapp f鰎
att 鰌pna den och klicka p ett paketnamn f鰎 att f mer information om
paketet.

<p>Nedanf鰎 pakettr鋎et finns ett s鰇formul鋜, d鋜 man kan skriva in text
och sedan s鰇a i paketdatabasen efter paket vars namn eller beskrivning
matchar texten.

<h3>Installera ett nytt paket</h3>
Nedanf鰎 S鰇-knappen finns ett formul鋜 f鰎 att installera ett nytt paket.
Man kan installera fr錸 en fil p systemet, en fil p datorn man k鰎
webbrowsern p eller fr錸 en FTP- eller HTTP-url. I det senare fallet
kommer Webmin att kontakta FTP- eller webservern och ladda ned paketfilen.
Om systemet finns bakom en brandv鋑g 鋜 det viktigt att f鰎st kontrollera
i modulen <i>Webmin-inst鋖lningar</i> att proxyservern 鋜 korrekt inst鋖ld.

<h3>Identifiera en fil</h3>
L鋘gst ned p startsidan finns ett formul鋜 f鰎 att identifiera en fil i
systemet. Fyll i en absolut s鰇v鋑, t ex <tt>/etc/inetd.conf</tt>, eller ett
kommando, t ex <tt>elm</tt>. Webmin kommer att leta efter filen i
pakethanteringssystemet och visa information om filen och om de paket som
anv鋘der den.

<hr>

0707010006a85e000081a40000000000000002000000013ac0389500000544000000200000000000000000000000000000002a00000003reloc/software/help/intro.zh_TW.Big5.html <header>硁砰甅ン</header>

<h3>甅ン虏ざ</h3>
硁砰甅ン琌ㄇ疭﹚祘Α郎栋. 硂ㄇ郎砆俱甅ン郎ぇい局床┪更, τ硁砰杆, 硂ㄇ郎穦砆秆秨タ絋竚. <p>

硁砰甅ン恨瞶╰参穦笆杆┪埃祘Α. 甅ン祘Α硄盽常琌箇絪亩Ч拨秈郎, ┮杆筁祘い眤ぃ惠璶踞み <tt>Makefiles</tt> 籔 <tt>configure</tt> ㏑絑. τ甅ン恨瞶╰参穦發萝┮Τ甅ン, ┮簿埃ヴ祘Α. <p>

<h3>竒杆甅ン</h3>
┮Τ硁砰甅ン常穦ㄌ沮ㄤ摸籔摸俱瞶, ㄒ <tt>System</tt> ┪ <tt>X11/Utilities</tt> 单单. 郴狠琌┮Τ甅ン计, ㄤい–戈Жボ摸. 璶秨币戈Ж, 璶翴匡; 璶浪跌甅ン闽戈癟, 璶翴匡甅ン嘿. <p>

甅ン琌穓碝甅ン戈畐虫. 硂穦т碝ヴ嘿┪弧才眤﹚ゅ甅ン. <p>

<h3>杆穝甅ン</h3>
甅ン穓碝秙虫ㄏノ杆穝甅ン. 眤眖眤セ狠郎╰参郎, 眤磅︽呼聅凝竟ぇ╰参郎┪ FTP/HTTP URL 杆ぇ. 程猵, Webmin 盢穦硈絬┮﹚ FTP/HTTP 狝竟眔┮﹚郎. 狦眤╰参竚ň鲤よ, 叫絋﹚眤Τ <i>Webmin 舱篈</i>いタ絋砞﹚瞶狝竟戈癟. <p>

<h3>粄郎</h3>
┏狠虫ノ粄眤╰参疭﹚郎. 眤ゲ斗块荡癸隔畖ㄒ <tt>/etc/inetd.conf</tt> ┪琌ㄒ <tt>elm</tt>. Webmin 穦沽刚眖甅ン恨瞶╰参いт碝赣郎, ㄏノウ甅ン. <p>

<hr>

0707010006a85f000081a40000000000000002000000013ac03895000003ce000000200000000000000000000000000000002600000003reloc/software/help/list_pack.es.html <header>Archivos de Paquete</header>

Esta ventana lista todos los archivos contenidos en alg鷑 paquete. Para cada
archivo se muestra la siguiente informaci髇:
<dl>
<dt><b>Trayectoria</b></dt>
<dd>El nombre absoluto de trayectorua para este archivo de paquete. Si es un
    enlace simb髄ico, la trayectoria incluir el destino del enlace. Haz click
    sobre la trayectoria para ver m醩 informaci髇 acerca de este archivo.
<dt><b>Propietario</b></dt>
<dd>El usuario Unix que deber韆 de ser el propietario de este archivo.
<dt><b>Grupo</b></dt>
<dd>El grupo Unix que deber韆 de ser el propietario de este archivo.
<dt><b>Tipo</b></dt>
<dd>Qu tipo de archivo o directorio es.
<dt><b>Medida</b></dt>
<dd>El tama駉 que deber韆 de tener este archivo.
<dt><b>Status</b></dt>
<dd>A menos que este archivo se pueda editar, esta columna mostrar cualquier
    discrepancia entre la medida correcta, propietario y suma de chequeo del
    archivo y sus valores actuales.
</dl>

<hr>

  0707010006a860000081a40000000000000002000000013ac03895000003a0000000200000000000000000000000000000002600000003reloc/software/help/list_pack.fr.html <header>Fichiers des composants</header>

Cette page liste tous les fichiers contenus dans un composant.
 Pour chaque fichier les informations suivantes sont affich閑s :
<dl>
<dt><b>Chemin</b></dt>
<dd>Le chemin absolu de ce fichier. Si c'est un lien symbolique,
    la cible de ce lien va 阾re incluse au chemin. Cliquez sur le chemin
    d'acc鑣 pour avoir plus d'informations sur le fichier.
<dt><b>Propri閠aire</b></dt>
<dd>L'utilisateur Unix qui devrait poss鑔er ce fichier.
<dt><b>Groupe</b></dt>
<dd>Le groupe Unix qui devrait poss鑔er ce fichier.
<dt><b>Type</b></dt>
<dd>Le type de fichier ou de r閜ertoire dont il s'agit.
<dt><b>Taille</b></dt>
<dd>La taille que le fichier devrait avoir.
<dt><b>蓆at</b></dt>
<dd>A moins que le fichier soit cens 阾re modifiable, cette colonne affiche
    toutes les anomalies entre la taille, le propri閠aire et le 'checksum'
    du fichier et leurs valeurs courantes.
</dl>

<hr>

0707010006a861000081a40000000000000002000000013ac038950000033c000000200000000000000000000000000000002300000003reloc/software/help/list_pack.html    <header>Package Files</header>

This screen lists all files contained in some package. For each file, the
following information is displayed :
<dl>
<dt><b>Path</b></dt>
<dd>The absolute pathname to this package file. If this is a symbolic link,
    the path will include the link target. Click on the path to view more
    information about this file.
<dt><b>Owner</b></dt>
<dd>The Unix user who should own this file.
<dt><b>Group</b></dt>
<dd>This Unix group who should own this file.
<dt><b>Type</b></dt>
<dd>What type of file or directory this is.
<dt><b>Size</b></dt>
<dd>The size this file should be.
<dt><b>Status</b></dt>
<dd>Unless the file is supposed to be editable, this column will display any
    discrepancies between the correct size, ownership and checksum of the file
    and their current values.
</dl>

<hr>

0707010006a862000081a40000000000000002000000013ac03896000003c6000000200000000000000000000000000000002600000003reloc/software/help/list_pack.pl.html <header>Pliki pakietu</header>

Na tem ekranie pokazano wszystkie pliki zawarte w&nbsp;pewnym pakiecie.
Przy ka縟ym pliku znajduj si nast阷uj眂e informacje&nbsp;:
<dl>
<dt><b>ie縦a</b></dt>
<dd>Bezwzgl阣na 禼ie縦a do tego pliku. W&nbsp;przypadku dowi眤a
    symbolicznych, 禼ie縦a b阣zie zawiera砤 cel dowi眤ania. Naci秐ij na
    禼ie縦 aby zobaczy wi阠ej informacji o&nbsp;tym pliku.
<dt><b>W砤禼iciel</b></dt>
<dd>U縴tkownik Uniksa, kt髍y powinien by w砤禼icielem tego pliku.
<dt><b>Grupa</b></dt>
<dd>Grupa Unisa, do kt髍ej plik powinien nale縠.
<dt><b>Rodzaj</b></dt>
<dd>Jaki jest to rodzaj pliku lub katalogu.
<dt><b>Rozmiar</b></dt>
<dd>Rozmiar, jaki ten plik powinien mie.
<dt><b>Stan</b></dt>
<dd>Je縧i plik nie jest zaznaczony jako konfiguracyjny, w&nbsp;tej kolumnie
    zostan pokazane wszelkie rozbie縩o禼i pomi阣zy w砤禼iwymi
    i&nbsp;bie勘cymi warto禼iami rozmiaru, praw w砤sno禼i i&nbsp;sumy
    kontrolnej dla tego pliku. 
</dl>

<hr>

  0707010006a8c4000081a40000000000000002000000013ac03895000002ee000000200000000000000000000000000000002600000003reloc/software/help/list_pack.sv.html <header>Paketfiler</header>

H鋜 listas alla filer som ing錼 i n錱ot paket. F鰎 varje fil visas f鰈jande
information:
<dl>
<dt><b>S鰇v鋑</b></dt>
<dd>Absolut s鰇v鋑 till denna paketfil. Om s鰇v鋑en 鋜 en symbolisk l鋘k
    kommer l鋘km錶et ocks att visas. Klicka p s鰇v鋑en f鰎 att f mer
    information om filen.
<dt><b>膅are</b></dt>
<dd>Den Unix-anv鋘dare som borde 鋑a filen.
<dt><b>Grupp</b></dt>
<dd>Den Unix-grupp som borde 鋑a filen.
<dt><b>Typ</b></dt>
<dd>Fil- eller katalogtyp.
<dt><b>Storlek</b></dt>
<dd>Den storlek som filen borde ha.
<dt><b>Status</b></dt>
<dd>Om filen inte ska kunna 鋘dras kommer alla skillnader mellan korrekta
    och nuvarande v鋜den p storlek, 鋑are och checksummor f鰎 filen att visas
    h鋜.
</dl>

<hr>

  0707010006a8c7000081a40000000000000002000000013ac038950000025f000000200000000000000000000000000000002e00000003reloc/software/help/list_pack.zh_TW.Big5.html <header>甅ン郎</header>

硂礶┮Τ甅ンい┮郎. 癸–郎, 穦陪ボ戈癟:
<dl>
<dt><b>隔畖</b></dt>
<dd>硂甅ン郎荡癸隔畖. 狦硂琌才腹硈挡, 隔畖盢穦硈挡ヘ夹. 隔畖浪跌闽硂郎冈灿戈.
<dt><b>局Τ</b></dt>
<dd>莱赣局Τ硂郎 Unix ㄏノ.
<dt><b>竤舱</b></dt>
<dd>莱赣局Τ硂郎 Unix 竤舱.
<dt><b>摸</b></dt>
<dd>硂郎┪ヘ魁摸.
<dt><b></b></dt>
<dd>甅ンい硂郎﹍.
<dt><b>篈</b></dt>
<dd>埃獶硂郎箇戳絪胯, 硂逆盢穦陪ボヴ痷龟╰参籔魁ぃ猵, ㄒ郎, 局Τ舦, 郎浪琩单单.
</dl>

<hr>

 0707010006a8c8000081a40000000000000002000000013ac03895000000b6000000200000000000000000000000000000002300000003reloc/software/help/nodeps.es.html    <header>縄gnorar dependencias?</header>

A menos que se seleccione esta opci髇, no podr醩 instalar un paquete que
depende de otros paquetes que no han sido todav韆 instalados.
<hr>

  0707010006a8cb000081a40000000000000002000000013ac03895000000c9000000200000000000000000000000000000002300000003reloc/software/help/nodeps.fr.html    <header>Ignorer les d閜endances?</header>

Tant que cette option n'est pas choisie, vous serez incapable
d'installer un composant qui d閜end d'un autre composant qui n'est
pas d閖 install. <p>
<hr>

   0707010006a8cc000081a40000000000000002000000013ac03895000000be000000200000000000000000000000000000002000000003reloc/software/help/nodeps.html   <header>Ignore dependencies?</header>

Unless this option is chosen, you will not be able to install a package
that depends on other packages that you do not currently have installed.
<hr>

  0707010006a8cd000081a40000000000000002000000013ac03896000000d1000000200000000000000000000000000000002300000003reloc/software/help/nodeps.pl.html    <header>Ignorowa zale縩o禼i?</header>

Je秎i nie zaznaczono tej opcji, nie b阣ziesz mie mo縧iwo禼i zainstalowania
pakietu wymagaj眂ego innych pakiet體, kt髍e z&nbsp;kolei nie s obecnie
zainstalowane.
<hr>

   0707010006a8d0000081a40000000000000002000000013ac03895000000af000000200000000000000000000000000000002300000003reloc/software/help/nodeps.sv.html    <header>Strunta i beroenden?</header>

Om man v鋖jer Nej h鋜 kommer man inte att kunna installera paket som
beror p n錱ot annat paket som inte redan finns installerat.
<hr>

 0707010006a8d1000081a40000000000000002000000013ac0389500000076000000200000000000000000000000000000002b00000003reloc/software/help/nodeps.zh_TW.Big5.html    <header>琌┛菠ㄌ┦?</header>

埃獶眤Τ匡硂匡兜, 眤盢ぃ杆甅ンㄤ┮ㄌ甅ンゼ杆眤╰参.
<hr>

  0707010006a8d2000081a40000000000000002000000013ac03895000000dd000000200000000000000000000000000000002600000003reloc/software/help/noscripts.es.html <header>縀jecuto guiones de instalaci髇?</header>

Cuando se selecciona esta opci髇, cualquier gui髇 de pre o post instalaci髇
del archivo de paquete ser ejecutado necesariamente durante el proceso de
instalaci髇.
<hr>

   0707010006a8d3000081a40000000000000002000000013ac03895000000c8000000200000000000000000000000000000002600000003reloc/software/help/noscripts.fr.html <header>Ex閏uter les scripts d'installation?</header>

Quand cette option est choisie, tout script pre- et post-installation
sera ex閏ut comme pr関u par le processus d'installation normal.<p>

<hr>

0707010006a8d4000081a40000000000000002000000013ac03895000000c1000000200000000000000000000000000000002300000003reloc/software/help/noscripts.html    <header>Execute install scripts?</header>

When this option is chosen, any pre- or post-installation scripts in the
package file will be executed as necessary during the install process.
<hr>

   0707010006a8d5000081a40000000000000002000000013ac03896000000c0000000200000000000000000000000000000002600000003reloc/software/help/noscripts.pl.html <header>Uruchomi skrypty instalacyjne?</header>

Je秎i zaznaczono t opcj, wszelkie przed- i&nbsp;poinstalacyjne skrypty
zostan uruchomione jako niezb阣ne podczas procesu instalacji.
<hr>

0707010006a8d6000081a40000000000000002000000013ac03895000000ca000000200000000000000000000000000000002600000003reloc/software/help/noscripts.sv.html <header>Utf鰎a installationsscript?</header>

Om man valt detta kommer alla installationsscript (inklusive f鰎- och
efterscript) i paketfilen att anses n鰀v鋘diga att utf鰎a under installationen.
<hr>

  0707010006a8d7000081a40000000000000002000000013ac0389500000078000000200000000000000000000000000000002e00000003reloc/software/help/noscripts.zh_TW.Big5.html <header>琌磅︽㏑催絑?</header>

讽匡拒硂匡兜, ヴ甅ンい玡竚┪竚甆絑常穦杆祘い砆磅︽.
<hr>

0707010006a8d8000081a40000000000000002000000013ac038950000011d000000200000000000000000000000000000002700000003reloc/software/help/oldpackage.es.html    <header>縎ustituyo nueva versi髇 por la vieja?</header>

A menos que se seleccione esta opci髇, el intento de actualizar cualquier
paquete ya instalado a una versi髇 <b>m醩 vieja</b> fallar. Esta opci髇
s髄o funcionar cuando tambi閚 se selecciona <tt>緼ctualizar paquete?</tt>.
<hr>

   0707010006a8d9000081a40000000000000002000000013ac0389500000140000000200000000000000000000000000000002700000003reloc/software/help/oldpackage.fr.html    <header>Remplacer la version courante par une ancienne?</header>

A moins de choisr cette option, toute tentative de mise  jour d'un
composant d閖 install vers une version plus <b>ancienne</b> 閏houera.
Cette option ne fonctionne que si l'option <tt>Mettre  jour le
composant?</tt> est elle-aussi activ閑. <p>
<hr>

0707010006a8da000081a40000000000000002000000013ac03895000000f5000000200000000000000000000000000000002400000003reloc/software/help/oldpackage.html   <header>Replace new version with old?</header>

Unless this option is chosen, attempting to ugrade an already installed
package to an <b>older</b> version will fail. This option only works when
<tt>Upgrade package?</tt> is chosen as well.
<hr>

   0707010006a8db000081a40000000000000002000000013ac038960000011a000000200000000000000000000000000000002700000003reloc/software/help/oldpackage.pl.html    <header>Zast眕i nowsz wersj przez starsz?</header>

Je秎i nie zaznaczono tej opcji, pr骲a aktualizacji ju zainstalowanego
pakietu przez <b>starsz</b> wersj nie powiedzie si. Ta opcja dzia砤
jedynie, gdy zostanie r體nie zaznaczona opcja <tt>Aktualizowa pakiet?</tt> 
<hr>

  0707010006a8dc000081a40000000000000002000000013ac03895000000fe000000200000000000000000000000000000002700000003reloc/software/help/oldpackage.sv.html    <header>Byta ut en ny version mot en 鋖dre?</header>

Om man inte v鋖jer detta kommer det inte att g att uppgradera ett
installerat paket till en <b>鋖dre</b> version. Denna inst鋖lning fungerar
bara om <tt>Uppgradera paket?</tt> ocks har valts.
<hr>

  0707010006a8dd000081a40000000000000002000000013ac03895000000bc000000200000000000000000000000000000002f00000003reloc/software/help/oldpackage.zh_TW.Big5.html    <header>琌ノ耕侣郎耕穝?</header>

埃獶匡拒硂匡兜, ヴ刚帝盢瞷甅ンど<b>耕侣</b>セ常穦ア毖. 硂匡兜Τ匡拒<tt>琌璶狜甅ン?</tt> 匡兜穦Τ.
<hr>

0707010006a8de000081a40000000000000002000000013ac038950000010f000000200000000000000000000000000000002900000003reloc/software/help/replacefiles.es.html  <header>縎obreescribo archivos?</header>

Si se selecciona esta opci髇, el paquete ser instalado incluso si contiene
archivos que est醤 en conflicto con un paquete ya instalado. Los archivos
ya existentes ser醤 sobreescritos por los nuevos durante la instalaci髇.
<hr>

 0707010006a8df000081a40000000000000002000000013ac038950000010f000000200000000000000000000000000000002900000003reloc/software/help/replacefiles.fr.html  <header>蒫raser les fichiers?</header>

Si cette option est choisie, le composant sera install m阭e s'il contient
des fichiers entrant en conflit avec ceux d'un composant d閖 install. Les
fichiers existants seront 閏ras閟 par les nouveaux durant l'installation.
<hr>

 0707010006a8e9000081a40000000000000002000000013ac03895000000f5000000200000000000000000000000000000002600000003reloc/software/help/replacefiles.html <header>Overwrite files?</header>

If this option is selected, the package will be installed even if it
contains files that conflict with an already installed package. The existing
files will be overwritten by the new during installation.
<hr>

   0707010006a8ea000081a40000000000000002000000013ac03896000000f3000000200000000000000000000000000000002900000003reloc/software/help/replacefiles.pl.html  <header>Nadpisywa pliki?</header>

Je秎i zaznaczono t opcj, pakiet zostanie zainstalowany nawet wtedy, gdy
zawiera pliki koliduj眂e z&nbsp;ju zainstalowanym pakietem. Istniej阠e pliki
zostan nadpisane przez nowe podczas instalacji.
<hr>

 0707010006a8eb000081a40000000000000002000000013ac03895000000f2000000200000000000000000000000000000002900000003reloc/software/help/replacefiles.sv.html  <header>Skriva 鰒er filer?</header>

Om man v鋖jer detta kommer paketet att installeras 鋠en om det inneh錶ler
filer som redan finns i ett annat installerat paket. Filerna ifr錱a kommer
att skrivas 鰒er med de nya under installationen.
<hr>

  0707010006a8ec000081a40000000000000002000000013ac038950000009c000000200000000000000000000000000000003100000003reloc/software/help/replacefiles.zh_TW.Big5.html  <header>琌璶籠糶郎?</header>

狦Τ匡硂匡兜, ㄏ甅ン┮郎籔竒杆甅ン郎侥, 硂甅ン穦砆杆; τ郎穦砆穝杆┮籠糶.
<hr>

0707010006a8ed000081a40000000000000002000000013ac038950000008e000000200000000000000000000000000000002800000003reloc/software/help/replacepkgs.es.html   <header>縎obreescribir paquete?</header>

Si se selecciona esta opci髇, el paquete ser reinstalado incluso si ya
existe en tu sistema.
<hr>

  0707010006a8ee000081a40000000000000002000000013ac0389500000090000000200000000000000000000000000000002800000003reloc/software/help/replacepkgs.fr.html   <header>蒫raser le composant?</header>

Si cette option est choisie, le composant sera install m阭e
s'il l'閠ait d閖 sur votre syst鑝e.
<hr>

0707010006a8ef000081a40000000000000002000000013ac0389500000090000000200000000000000000000000000000002500000003reloc/software/help/replacepkgs.html  <header>Overwrite package?</header>

If this option is chosen, the package will be re-installed even if it
already exists on your system.
<hr>

0707010006a8f3000081a40000000000000002000000013ac03895000000a2000000200000000000000000000000000000002100000003reloc/software/help/root.es.html  <header>Direcotorio Ra韟</header>

Realiza toda la instalaci髇 relat韛amente a este directorio. No modifiques
閟te a menos que sepas lo que est醩 haciendo.
<hr>

  0707010006a8f0000081a40000000000000002000000013ac0389600000097000000200000000000000000000000000000002800000003reloc/software/help/replacepkgs.pl.html   <header>Nadpisa pakiet?</header>

Je秎i zaznaczono t opcj, pakiet zostanie przeinstalowany nawet wtedy, gdy
ju znajduje si w&nbsp;systemie.
<hr>

 0707010006a8f1000081a40000000000000002000000013ac0389500000088000000200000000000000000000000000000002800000003reloc/software/help/replacepkgs.sv.html   <header>Skriva 鰒er paket?</header>

Om man v鋖jer detta kommer paketet att installeras igen 鋠en om det redan
finns p systemet.
<hr>

0707010006a8f2000081a40000000000000002000000013ac0389500000076000000200000000000000000000000000000003000000003reloc/software/help/replacepkgs.zh_TW.Big5.html   <header>琌璶籠糶甅ン?</header>

狦匡拒硂匡兜, 硂甅ン盢穦砆穝杆, ㄏ硂甅ン竒杆眤╰参.
<hr>

  0707010006a8f4000081a40000000000000002000000013ac03895000000a3000000200000000000000000000000000000002100000003reloc/software/help/root.fr.html  <headerR閜ertoire racine</header>

Ex閏ute l'installation avec ce r閜ertoire comme racine. Ne modifiez
pas ce choix  moins de savoir ce que vous faites.<p>
<hr>

 0707010006a8f5000081a40000000000000002000000013ac0389500000093000000200000000000000000000000000000001e00000003reloc/software/help/root.html <header>Root Directory</header>

Perform all installation relative to this directory. Do not modify this
unless you know what you are doing.
<hr>

 0707010006a8f6000081a40000000000000002000000013ac0389600000092000000200000000000000000000000000000002100000003reloc/software/help/root.pl.html  <header>Katalog g丑wny</header>

Ca砤 instalacja zostanie przeprowadzona wzgl阣em tego katalogu. Nie zmieniaj
go, chyba 縠 wiesz co robisz.
<hr>

  0707010006a8f7000081a40000000000000002000000013ac038950000009b000000200000000000000000000000000000002100000003reloc/software/help/root.sv.html  <header>Rotkatalog</header>

All installation g鰎s relativt denna katalog. R鰎 inte denna inst鋖lning
om du inte verkligen vet vad du h錶ler p med.
<hr>

 0707010006a8f8000081a40000000000000002000000013ac038950000006c000000200000000000000000000000000000002900000003reloc/software/help/root.zh_TW.Big5.html  <header>ヘ魁</header>

┮Τ杆常穦盢癸硂ヘ魁. <b>ぃ璶</b>跑硂砞﹚, 埃獶眤笵眤ぐ或.
<hr>

0707010006a8f9000081a40000000000000002000000013ac03895000000db000000200000000000000000000000000000002300000003reloc/software/help/search.es.html    <header>B鷖queda de Paquete</header>

Muestra una lista de todos los paquetes que coinciden con una b鷖queda
realizada desde la p醙ina principal. Haz click en un nombre de paquete para
ver sus detalles completos.
<hr>

 0707010006a8fa000081a40000000000000002000000013ac03895000000d3000000200000000000000000000000000000002300000003reloc/software/help/search.fr.html    <header>Recherche de composants</header>

Affiche la liste de tout les composants qui correspondent  une recherche
depuis la page principale. Cliquez sur le nom d'un composant pour avoir
plus de d閠ails.
<hr>

 0707010006a8fb000081a40000000000000002000000013ac03895000000a3000000200000000000000000000000000000002000000003reloc/software/help/search.html   <header>Package Search</header>

Displays a list of all packages that matched a search from the main page.
Click on a package name to view its full details.
<hr>

 0707010006a8fc000081a40000000000000002000000013ac03896000000c6000000200000000000000000000000000000002300000003reloc/software/help/search.pl.html    <header>Szukanie pakietu</header>

Pokazuje list wszystkich pakiet體, kt髍e pasuj do wzorca podanego na
stronie g丑wnej. Naci秐ij na nazw pakietu, aby obejrze pe硁 informacj
o&nbsp;nim.
<hr>

  0707010006a8fd000081a40000000000000002000000013ac03895000000a9000000200000000000000000000000000000002300000003reloc/software/help/search.sv.html    <header>Pakets鰇ning</header>

H鋜 visas en lista 鰒er alla paket fr錸 s鰇ningen p startsidan. Klicka p
ett paketnamn f鰎 att f reda p information om paketet.
<hr>

   0707010006a8fe000081a40000000000000002000000013ac0389500000065000000200000000000000000000000000000002b00000003reloc/software/help/search.zh_TW.Big5.html    <header>甅ン穓碝</header>

陪ボ才ㄓ礶穓碝兵ン甅ン. 甅ン嘿浪跌Ч俱灿竊.
<hr>

   0707010006a8ff000081a40000000000000002000000013ac03895000000de000000200000000000000000000000000000002400000003reloc/software/help/upgrade.es.html   <header>緼ctualizar paquete?</header>

Cuando se instala una nueva versi髇 de un paquete que ya existe en tu
sistema, puedes seleccionar esta opci髇. La versi髇 vieja ser entonces
borrada y sustitu韉a por la nueva.
<hr>

  0707010006a900000081a40000000000000002000000013ac03895000000eb000000200000000000000000000000000000002400000003reloc/software/help/upgrade.fr.html   <header>Mettre le composant  jour?</header>

En installant une version plus r閏ente d'un composant d閖 pr閟ent sur
votre syst鑝e, vous devez choisir cette option. L'ancienne version
sera supprim閑 et remplac閑 par la nouvelle.
<hr>

 0707010006a901000081a40000000000000002000000013ac03895000000cb000000200000000000000000000000000000002100000003reloc/software/help/upgrade.html  <header>Upgrade package?</header>

When installing a newer version of a package already on your system, you
must choose this option. The old version will then be deleted and replaced
with the new.
<hr>

 0707010006a902000081a40000000000000002000000013ac03896000000d5000000200000000000000000000000000000002400000003reloc/software/help/upgrade.pl.html   <header>Aktualizowa pakiet?</header>

Musisz zaznaczy t opcj podczas instalacji nowszej wersji pakietu ju
zainstalowanego w&nbsp;systemie. Stara wersja zostanie w體czas usuni阾a
i&nbsp;zast眕iona now.
<hr>

   0707010006a903000081a40000000000000002000000013ac03895000000bd000000200000000000000000000000000000002400000003reloc/software/help/upgrade.sv.html   <header>Uppgradera paket?</header>

N鋜 en ny version av ett redan installerat paket ska installeras m錽te
denna inst鋖lning g鰎as. Den nya versionen ers鋞ter den gamla, som raderas.
<hr>

   0707010006a904000081a40000000000000002000000013ac038950000008c000000200000000000000000000000000000002c00000003reloc/software/help/upgrade.zh_TW.Big5.html   <header>琌璶狜甅ン?</header>

讽杆竒眤╰参甅ン耕穝セ, 眤ゲ斗匡拒硂匡兜. 耕侣セ盢穦砆埃, 砆穝セ.
<hr>

07070100069335000081a40000000000000002000000013ac0389600002755000000200000000000000000000000000000001b00000003reloc/software/hpux-lib.pl    # hpux-lib.pl
# Functions for HP-UX package management

# list_packages([package]*)
# Fills the array %packages with all or listed packages
sub list_packages
{
local($i, $name, $class, @contents, $products, $title_flag);
$i = 0;
$products = join(' ', @_);
$name = "";

open(SW, "swlist -v -a title -a contents |");
while(<SW>) {
	s/#.*$//g;
# bundles and unbundled products
	if (/^  (\S*)/) {
		$name = $1;
		$packages{$i,'name'} = $1;
		$packages{$i,'class'} = $1;
		}
        if (/^bundle/ || /^product/) {
                $title_flag = 1;
                }
	if (/^title\s+(.*)/ && $title_flag) {
		$packages{$i,'desc'} = $1;
		if ($products eq "" || (index $products,$name) ne -1) {
			$i++;
			}
                $title_flag = "";
		}
# bundeled products
	if (/^contents\s+(.*)/) {
		@contents = split(/\./, $1);
		$packages{$i,'name'} = "$name.$contents[0]";
		$packages{$i,'class'} = $name;
		if (($products eq "" ||
		     (index $products,"$contents[0]") ne -1) &&
		    $packages{$i,'name'} ne $packages{$i - 1,'name'} ) {
			$i++;
			}
		}
	}
close(SW);

return $i;
}

# package_info(package)
# Returns an array of package information in the order
#  name, class, description, arch, version, vendor, installtime
sub package_info
{
local(@name, $level, $name, $class, $desc, $arch, $version, $vendor, $date);

$name = $_[0];
@name = split(/\./, $name);
$class = $name[0];

open(SW, "swlist -l product -v -a vendor.title -a title -a revision -a architecture -a date $name | ");
while(<SW>) {
	s/#.*$//g;
	if (/^date\s+(.*)/ &&
	    ($name[1] eq "" && $date eq "" || $name[1] ne "")) {
		$date = $1;
		}
	if (/^architecture\s+(.*)/ &&
	    ($name[1] eq "" && $arch eq "" || $name[1] ne "")) {
		$arch = $1;
		}
	if (/^revision\s+(.*)/ &&
	    ($name[1] eq "" && $version eq "" || $name[1] ne "")) {
		$version = $1;
		}
	if (/^vendor\.title\s+(.*)/ &&
	    ($name[1] eq "" && $vendor eq "" || $name[1] ne "")) {
		$vendor = $1;
		}
	if (/^title\s+(.*)/ &&
	    ($name[1] eq "" && $desc eq "" || $name[1] ne "")) {
		$desc = $1;
		}
	}
close(SW);

return ($name, $class, $desc, $arch, $version, $vendor, $date);
}

# is_package(file)
# Check if some file is a package file
sub is_package
{
local($out);
$out = `swlist -s $_[0] 2>&1`;
return $out !~ /ERROR:   /;
}

# file_packages(file)
# Returns a list of all packages in the given file, in the form
#  package description
sub file_packages
{
local(@list);
open(SW, "swlist -s $_[0] |");
while(<SW>) {
	s/#.*$//g;
	if (/^  (\S*)\s+(\S*)/) {
		push (@list, "$1 $2");
		}
	}
close(SW);

return @list;
}

# install_options(file, package)
# Outputs HTML for choosing install options for some package
sub install_options
{
print "<tr> <td align=right><b>Create target path?</b></td>\n";
print "<td>\n";
print "<input type=radio name=create_target_path value=1 checked> Yes\n";
print "<input type=radio name=create_target_path value=0> No\n";
print "</td>\n";

print "<td align=right><b>Mount all filesystems?</b></td>\n";
print "<td>\n";
print "<input type=radio name=mount_all_filesystems value=1 checked> Yes\n";
print "<input type=radio name=mount_all_filesystems value=0> No\n";
print "</td></tr>\n";

print "<tr> <td align=right><b>Reinstall?</b></td>\n";
print "<td>\n";
print "<input type=radio name=reinstall value=1> Yes\n";
print "<input type=radio name=reinstall value=0 checked> No\n";
print "</td>\n";

print "<td align=right><b>Reinstall files?</b></td>\n";
print "<td>\n";
print "<input type=radio name=reinstall_files value=1 checked> Yes\n";
print "<input type=radio name=reinstall_files value=0> No\n";
print "</td></tr>\n";

print "<tr><td align=right><b>Reinstall files use checksum?</b></td>\n";
print "<td>\n";
print "<input type=radio name=reinstall_files_use_cksum value=1 checked> Yes\n";
print "<input type=radio name=reinstall_files_use_cksum value=0> No\n";
print "</td>\n";

print "<td align=right><b>Allow multiple versions?</b></td>\n";
print "<td>\n";
print "<input type=radio name=allow_multiple_versions value=1> Yes\n";
print "<input type=radio name=allow_multiple_versions value=0 checked> No\n";
print "</td></tr>\n";

print "<tr> <td align=right><b>Defer configure?</b></td>\n";
print "<td>\n";
print "<input type=radio name=defer_configure value=1> Yes\n";
print "<input type=radio name=defer_configure value=0 checked> No\n";
print "</td>\n";

print "<td align=right><b>Autorecover product?</b></td>\n";
print "<td>\n";
print "<input type=radio name=autorecover_product value=1> Yes\n";
print "<input type=radio name=autorecover_product value=0 checked> No\n";
print "</td></tr>\n";

print "<tr> <td align=right><b>Allow downdate?</b></td>\n";
print "<td>\n";
print "<input type=radio name=allow_downdate value=1> Yes\n";
print "<input type=radio name=allow_downdate value=0 checked> No\n";
print "</td>\n";

print "<td align=right><b>Allow incompatible?</b></td>\n";
print "<td>\n";
print "<input type=radio name=allow_incompatible value=1> Yes\n";
print "<input type=radio name=allow_incompatible value=0 checked> No\n";
print "</td></tr>\n";

print "<tr> <td align=right><b>Autoselect dependencies?</b></td>\n";
print "<td>\n";
print "<input type=radio name=autoselect_dependencies value=1 checked> Yes\n";
print "<input type=radio name=autoselect_dependencies value=0> No\n";
print "</td>\n";

print "<td align=right><b>Enforce dependencies?</b></td>\n";
print "<td>\n";
print "<input type=radio name=enforce_dependencies value=1 checked> Yes\n";
print "<input type=radio name=enforce_dependencies value=0> No\n";
print "</td></tr>\n";

print "<tr> <td align=right><b>Enforce scripts?</b></td>\n";
print "<td>\n";
print "<input type=radio name=enforce_scripts value=1 checked> Yes\n";
print "<input type=radio name=enforce_scripts value=0> No\n";
print "</td>\n";

print "<td align=right><b>Enforce disk space analysis?</b></td>\n";
print "<td>\n";
print "<input type=radio name=enforce_dsa value=1 checked> Yes\n";
print "<input type=radio name=enforce_dsa value=0> No\n";
print "</td></tr>\n";

print "<td></td> <td></td> </tr>\n";

print "<tr> <td align=right><b>Root directory</b></td>\n";
print "<td colspan=3><input name=root size=40 value=\"/\">\n";
print &file_chooser_button("root", 1); print "</td> </tr>\n";
}

# install_package(file, package)
# Install the given package from the given file, using options from %in
sub install_package
{
foreach $o ('create_target_path',
	    'mount_all_filesystems',
	    'reinstall',
	    'reinstall_files',
	    'reinstall_files_use_cksum',
	    'allow_multiple_versions',
	    'defer_configure',
	    'autorecover_product',
	    'allow_downdate',
	    'allow_incompatible',
	    'autoselect_dependencies',
	    'enforce_dependencies',
	    'enforce_scripts',
	    'enforce_dsa') {
	if ($in{$o}) { $opts .= " -x $o=true"; }
	else { $opts .= " -x $o=false"; }
	}
if ($in{'root'} =~ /^\/.+/) {
	if (!(-d $in{'root'})) {
		return "Root directory '$in{'root'}' does not exist";
		}
	$opts .= " -r $in{'root'}";
	}
$out = &backquote_logged("swinstall -s $_[0] $opts $_[1] 2>&1");
if ($?) { return "<pre>$out</pre>"; }
return undef;
}

# check_files(package)
# Fills in the %files array with information about the files belonging
# to some package.
sub check_files
{
local($i, $path); $i = -1;
open(SW, "swlist -l file -v -a path -a owner -a group -a type -a link_source -a size $_[0] | ");
while(<SW>) {
	s/#.*$//g;
	if (/^path\s+(.*)/) {
		$i++;
		$files{$i,'path'} = $1;
		$files{$i,'size'} = "-";
		$files{$i,'user'} = "-";
		$files{$i,'group'} = "-";
		$files{$i,'link'} = "";
		$path = $1;
		}
	if (/^owner\s+(.*)/ && $path ne "") {
		$files{$i,'user'} = $1;
		}
	if (/^group\s+(.*)/ && $path ne "") {
		$files{$i,'group'} = $1;
		}
	if (/^type\s+(.*)/ && $path ne "") {
                $files{$i,'type'} = $1 eq "f" ? 0 :
                                    $1 eq "d" ? 1 :
                                    $1 eq "s" ? 3 :
                                    $1 eq "h" ? 4 :
                                    -1;
		}
	if (/^link_source\s+(.*)/ && $path ne "") {
		$files{$i,'link'} = $1;
		}
	if (/^size\s+(.*)/ && $path ne "") {
		$files{$i,'size'} = $1;
		$path = "";
		}
	$files{$i,'error'} = "\n";
	}
close(SW);
return $i;
}

# installed_file(file)
# Given a filename, fills %file with details of the given file and returns 1.
# If the file is not known to the package system, returns 0
sub installed_file
{
local($path, $search, @tmp, $product, $product_flag, $path_flag);
$search = $_[0];

open(SW, "swlist -l file -v -a path -a owner -a group -a type -a link_source -a mode -a size | ");
while(<SW>) {
#	s/#.*$//g;
        if (/^product/) {
                $product_flag = 1;
                }
	if (/^# (\S*)/ && $product_flag) {
		@tmp = split(/\./, $1);
		$product = $tmp[0];
                $product_flag = "";
		}
	if (/^path\s+(.*)/) {
		if ($1 eq $search) {
			$file{'path'} = $1;
			$file{'size'} = "-";
			$file{'user'} = "-";
			$file{'mode'} = "-";	
			$file{'group'} = "-";
			if ((index $file{'packages'},$product) eq -1) {
				$file{'packages'} = join(' ', $product, $file{'packages'});
				}
			$path_flag = 1;
			}
		else {
			$path_flag = "";
			}
		}
	if (/^owner\s+(.*)/ && $path_flag) {
		$file{'user'} = $1;
		}
	if (/^group\s+(.*)/ && $path_flag) {
		$file{'group'} = $1;
		}
	if (/^type\s+(.*)/ && $path_flag) {
                $file{'type'} = $1 eq "f" ? 0 :
                                $1 eq "d" ? 1 :
                                $1 eq "s" ? 3 :
                                $1 eq "h" ? 4 :
                                -1;
		}
	if (/^link_source\s+(.*)/ && $path_flag) {
		$file{'link'} = $1;
		}
	if (/^mode\s+(.*)/ && $path_flag) {
		$file{'mode'} = $1;
		}
	if (/^size\s+(.*)/ && $path_flag) {
		$file{'size'} = $1;
		}
	$file{'error'} = "\n";
	}
close(SW);

if ($file{'packages'} ne "") { return 1; }
else { undef(%file); return 0; }
}

# delete_package(package)
# Attempt to remove some package
sub delete_package
{
$out = &backquote_logged("swremove $_[0] 2>&1");
if ($out) { return "<pre>$out</pre>"; }
return undef;
}

sub package_system
{
return "HP-UX SW";
}

1;

   0707010006c0ec000041ed0000000000000001000000023ac03c7a00000000000000200000000000000000000000000000001600000003reloc/software/images 0707010006c0ed000081a40000000000000002000000013ac0389500000070000000200000000000000000000000000000002000000003reloc/software/images/close.gif   GIF89a    烫虣櫃fff!    ,       A﹒劀b糼"啝ph踶Z:V
S凔岂袡v氾0烋5‖g<枓%撱|v釜鯅鮤 ;0707010006c0ee000081a40000000000000002000000013ac0389500000129000000200000000000000000000000000000001f00000003reloc/software/images/icon.gif    GIF89a0 0      烫蘤ff!    ,    0 0  鷦彥隧
T貗TNl庵y	帾U寒V8火-骀伪40f妼yaN凘(+鄎&,鮥*碤0TJfq竐7Yc洦:墁D塾l%琏Ww6g瘅垐x鍢梄Y7蓈墮D94泫yXyBj'j〩)	圩婜k蹓[霅#v壒脔浪%|kW齼9@]m}'Imw]澀]=^G=衇N3La蟦珙J畘镙幘井O_oO 屦潾鱪`羮铗雌∧  ;   0707010006c0ef000081a40000000000000002000000013ac038950000006b000000200000000000000000000000000000001f00000003reloc/software/images/open.gif    GIF89a    烫虣櫃fff!    ,       <﹒劀b糼"啝ph踶v蔙芪碶辺Ηy嵇9隆mX)U晛	岯=訥 ; 0707010006c0f0000081a40000000000000002000000013ac038950000007b000000200000000000000000000000000000001f00000003reloc/software/images/pack.gif    GIF89a       烫蘤ff!    ,       L⑺j斀(S7蜯uZXV:'
狻殿/*瞒~O喣/8D摾漴46=(耔B礡r卉zi.R  ; 07070100069336000081e40000000000000002000000013ac0389500000d7d000000200000000000000000000000000000001900000003reloc/software/index.cgi  #!/usr/local/bin/perl
# index.cgi
# Lists all installed packages

require './software-lib.pl';
&header($text{'index_title'}, "", "intro", 0, 1);
print "<hr>\n";
$spacer = "&nbsp;"x3;

# work out the package heirarchy..
$n = &list_packages();
for($i=0; $i<$n; $i++) {
	push(@pack, $packages{$i,'name'});
	push(@class, $packages{$i,'class'});
	push(@desc, $packages{$i,'desc'});
	}
$heir{""} = "";
foreach $c (sort { $a cmp $b } &unique(@class)) {
	if (!$c) { next; }
	@w = split(/\//, $c);
	$p = join('/', @w[0..$#w-1]);
	if (!defined($heir{$p})) {
		$pp = join('/', @w[0..$#w-2]);
		$heir{$pp} .= "$p\0";
		}
	$heir{$p} .= "$c\0";
	$hasclasses++;
	}

# get the current open list
open(HEIROPEN, "$module_config_directory/heiropen");
while(<HEIROPEN>) {
	chop;
	$heiropen{$_}++;
	}
close(HEIROPEN);
$heiropen{""}++;

# traverse the heirarchy
print "<h3>$text{'index_installed'}</h3>\n";
print "<table width=100%>\n";
&traverse("", 0);
print "</table>\n";
if ($hasclasses) {
	print "<a href=closeall.cgi>$text{'index_close'}</a> $spacer\n";
	print "<a href=openall.cgi>$text{'index_open'}</a><p>\n";
	}

print "<form action=search.cgi>\n";
print "<input type=submit value=\"$text{'index_search'}\">\n";
print "<input name=search size=30>\n";
print "</form>\n";

print "<hr>\n";
print "<h3>$text{'index_install'}</h3>\n";
print &text('index_installmsg', &package_system()),"<p>\n";
print "<form action=install_pack.cgi method=post ",
      "enctype=multipart/form-data>\n";
print "<input type=radio name=source value=0 checked> $text{'index_local'}\n";
print "<input name=local size=50>\n";
print &file_chooser_button("local", 0, 1); print "<br>\n";
print "<input type=radio name=source value=1> $text{'index_uploaded'}\n";
print "<input type=file name=upload size=20><br>\n";
print "<input type=radio name=source value=2> $text{'index_ftp'}\n";
print "<input name=url size=50><br>\n";
if ($has_update_system) {
	print "<input type=radio name=source value=3>\n";
	print &update_system_input(),"<br>\n";
	}
print "<input type=submit value=\"$text{'index_installok'}\">\n";
print "</form>\n";

print "<hr>\n";
print "<h3>$text{'index_ident'}</h3>\n";
print &text('index_identmsg', &package_system()),"<br>\n";
print "<form action=file_info.cgi>\n";
print "<input type=submit value=\"$text{'index_identok'}\">\n";
print "<input name=file size=30>\n";
print &file_chooser_button("file", 0, 2);
print "</form>\n";

if ($has_update_system && defined(&update_system_form)) {
	print "<hr>\n";
	&update_system_form();
	}

print "<hr>\n";
&footer("/", $text{'index'});

sub traverse
{
local($s, $act, $i);
print "<tr> <td>", $spacer x $_[1];
if ($_[0]) {
	print "<a name=\"$_[0]\"></a>\n";
	$act = $heiropen{$_[0]} ? "close" : "open";
	print "<a href=\"$act.cgi?what=",&urlize($_[0]),"\">";
	$_[0] =~ /([^\/]+)$/;
	print "<img border=0 src=images/$act.gif></a>&nbsp; $1</td>\n",
	}
else { print "<img src=images/close.gif> <i>$text{'index_all'}</i></td>\n"; }
print "<td><br></td> </tr>\n";
if ($heiropen{$_[0]}) {
	# print sub-folders followed by packages
	for($i=0; $i<@pack; $i++) {
		if ($class[$i] eq $_[0]) {
			print "<tr> <td>", $spacer x ($_[1]+1);
			print "<img border=0 src=images/pack.gif></a>&nbsp;\n";
			print "<a href=\"edit_pack.cgi?package=",
			      &urlize($pack[$i]),"\">$pack[$i]</a></td>\n";
			print "<td>$desc[$i]</td>\n";
			print "</tr>\n";
			}
		}
	foreach $s (&unique(split(/\0+/, $heir{$_[0]}))) {
		&traverse($s, $_[1]+1);
		}
	}
}

   07070100069337000081e40000000000000002000000013ac0389500000ccf000000200000000000000000000000000000002000000003reloc/software/install_pack.cgi   #!/usr/local/bin/perl
# install_pack.cgi
# Install a package from some source

require './software-lib.pl';
$| = 1;
if ($ENV{REQUEST_METHOD} eq "POST") { &ReadParseMime(); }
else { &ReadParse(); $no_upload = 1; }
&error_setup($text{'install_err'});

if ($in{source} == 0) {
	# installing from local file (or maybe directory)
	if (!$in{'local'})
		{ &error($text{'install_elocal'}); }
	if (!-r $in{'local'})
		{ &error(&text('install_elocal2', $in{'local'})); }
	$source = $in{'local'};
	$pfile = $in{'local'};
	$need_unlink = 0;
	}
elsif ($in{source} == 1) {
	# installing from upload .. store file in temp location
	if ($no_upload) {
		&error($text{'install_eupload'});
		}
	$in{'upload_filename'} =~ /([^\/\\]+$)/;
	$pfile = &tempname("$1");
	open(PFILE, "> $pfile");
	print PFILE $in{'upload'};
	close(PFILE);
	$source = $in{'upload_filename'};
	$need_unlink = 1;
	}
elsif ($in{source} == 2) {
	# installing from URL.. store downloaded file in temp location
	$in{'url'} =~ /\/([^\/]+)\/*$/;
	$pfile = &tempname("$1");
	if ($in{'url'} =~ /^http:\/\/([^\/]+)(\/.*)$/) {
		# Make a HTTP request
		$host = $1; $page = $2; $port = 80;
		if ($host =~ /^(.*):(\d+)$/) { $host = $1; $port = $2; }
		&http_download($host, $port, $page, $pfile);
		}
	elsif ($in{'url'} =~ /^ftp:\/\/([^\/]+)(\/.*)$/) {
		$host = $1; $file = $2;
		&ftp_download($host, $file, $pfile);
		}
	else { &error(&text('install_eurl', $in{'url'})); }
	$source = $in{'url'};
	$need_unlink = 1;
	}
elsif ($in{'source'} == 3) {
	# installing from some update system
	&header($text{'install_title'}, "", "install");
	print "<hr>\n";
	@packs = &update_system_install();

	print "<hr>\n" if (@packs);
	foreach $p (@packs) {
		local @pinfo = &show_package_info($p);
		}
	&webmin_log($config{'update_system'}, "install", undef,
		    { 'packages' => \@packs } ) if (@packs);

	print "<hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}

# Check validity
if (!&is_package($pfile)) {
	if (-d $pfile) {
		&error(&text('install_edir', &package_system()));
		}
	else {
		# attempt to uncompress
		local $unc = &uncompress_if_needed($pfile, $need_unlink);
		if ($unc ne $pfile) {
			# uncompressed ok..
			if (!&is_package($unc)) {
				unlink($unc);
				&error(&text('install_ezip',
					     &package_system()));
				}
			$pfile = $unc;
			}
		else {
			# uncompress failed.. give up
			unlink($pfile) if ($need_unlink);
			&error(&text('install_efile', &package_system()));
			}
		}
	}

# ask for package to install and install options
&header($text{'install_title'}, "", "install");
@rv = &file_packages($pfile);
print "<hr>\n";

print "<form action=do_install.cgi>\n";
print "<input type=hidden name=file value=\"$pfile\">\n";
print "<input type=hidden name=need_unlink value=\"$need_unlink\">\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'install_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";
print "<tr> <td valign=top><b>$text{'install_packs'}</b></td>\n";
print $wide_install_options ? "<td colspan=3>\n" : "<td>\n";
foreach (@rv) {
	($p, $d) = split(/\s+/, $_, 2);
	print "$d ($p)<br>\n";
	}
&install_options($pfile, $p);
print "</table></td></tr>\n";
print "</table><p><input type=submit value=\"$text{'install_ok'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});


 0707010006d69b000041ed0000000000000001000000023ac03c7a00000000000000200000000000000000000000000000001400000003reloc/software/lang   0707010006d69c000081a40000000000000002000000013ac0389600000fe8000000200000000000000000000000000000001700000003reloc/software/lang/de    index_title=Software Pakete
index_installed=Installierte Pakete
index_close=Alle schliessen
index_open=Alle &ouml;ffnen
index_search=Suche nach Paket:
index_install=Neues Paket installieren
index_installmsg=W&auml;hlen Sie den Ort, von dem das neue $1 Paket installiert werden soll..
index_local=Aus lokaler Datei
index_uploaded=Aus upgeloadeter Datei
index_ftp=Von ftp oder http URL
index_installok=Installiere
index_ident=Datei identifizieren
index_identmsg=Geben Sie ein Kommando oder den Pfadnamen einer Datei ein, nachdem die $1 Datenbank durchsucht werden soll
index_identok=Suche nach:
index_return=Paket Liste

search_title=Paket Suche
search_nomatch=Keine Pakete gefunden f&uuml;r $1
search_none=Keine
search_desc=Beschreibung
search_class=Klasse
search_pack=Paket
search_match=Entsprechendes Paket zu $1

edit_title=Paket bearbeiten
edit_details=Paket-Details
edit_desc=Beschreibung
edit_pack=Paket
edit_class=Klasse
edit_none=Keine
edit_ver=Version
edit_vend=Hersteller
edit_arch=Architektur
edit_inst=Installiert
edit_list=Dateien auflisten
edit_uninst=De-Installieren
edit_return=Paket Details

list_title=Paket Dateien
list_files=Dateien f&uuml;r Paket $1
list_path=Pfad
list_owner=Besitzer
list_group=Gruppe
list_type=Typ
list_size=Gr&ouml;sse
list_status=Status

delete_err=Fehler beim L&ouml;schen des Paketes $1
delete_epack=Das Paket $1 existiert nicht
delete_title=Paket loeschen
delete_rusure=Sind Sie sicher, das sie das Paket $1 l&ouml;schen wollen? Bis zu $2 Dateien ($3 bytes) werden unwiderruflich gel&ouml;scht werden.
delete_ok=L&ouml;schen

file_title=Datei Informationen
file_notfound=Es sind keine Informationen zu $1 verf&uuml;gbar
file_path=Pfad
file_type=Typ
file_perms=Rechte
file_owner=Besutzer
file_group=Gruppe
file_size=Gr&ouml;sse
file_link=Link zu
file_pack=Paket
file_class=Klasse
file_desc=Beschreibung
file_none=Keine

install_err=Fehler beim Installieren des Paketes
install_elocal=Keine lokale Datei angegeben
install_elocal2='$1' existiert nicht
install_eupload=Ihr Browser unterst&uuml;tzt keine Datei-Uploads
install_eurl=Unverst&auml;ndliche URL '$1'
install_edir=Kein g&uuml;ltiges $1 Verzeichnis
install_ezip=Keine g&uuml;ltige komprimierte oder gzippte $1 Datei
install_efile=Kein g&uuml;ltige $1 Datei
install_title=Paket installieren
install_header=Paket installieren
install_packs=Zu installierende(s) Paket(e)
install_ok=Installieren

do_err=Fehler beim installieren von Paket $1
do_title=Paket installieren
do_efailed=Installation schlug fehl : $1
do_efailedmsg1=Sie k&ouml;nnen versuche, das Paket erneut zu installieren, indem Sie zu&uuml;ck gehen und andere Installations-Einstellungen w&auml;hlen
do_efailedmsg2=Anderenfalls <a href='$1'>klicken Sie hier, um die tempor&auml;re Paket Datei zu l&ouml;schen</a>, um Speicherplatz zu sparen.
do_success=Das Paket $1 wurde erfolgreich installiert
do_details=Paket-Details
do_desc=Beschreibung
do_class=Klasse
do_pack=Paket
do_ver=Version
do_vend=Hersteller
do_arch=Architektur
do_inst=Installiert
do_none=Keine
do_files=Paket Dateien

pkgadd_root=Root Verzeichnis
pkgadd_eroot=Root Verzeichnis '$1' existiert nicht
pkgadd_unknown=Unbekannt

rpm_upgrade=Paket upgraden?
rpm_replacepkgs=Paket &uuml;berschreiben?
rpm_nodeps=Abh&auml;ngigkeiten ignorieren?
rpm_oldpackage=Ersetze neue Version mit alter?
rpm_noscripts=F&uuml;hre Installations-Scripts aus?
rpm_excludedocs=Installiere Dokumentation?
rpm_replacefiles=&Uuml;berschreibe Dateien?
rpm_root=Root Verzeichnis
rpm_eroot=Root Verzeichnis '$1' existiert nicht

bsd_unknown=Unbekannt
bsd_scripts=F&uuml;hre Pre- und Post-Installationsscripts aus?
bsd_force=Erzwinge Installation auch wenn ben&ouml;tigte Pakete fehlen?

slack_unclass=Andere
slack_unknown=Unbekannt
slack_missing=Fehlt
slack_root=Root Verzeichnis
slack_eroot=Fehlende oder ung&uuml;ltiges Root Verzeichnis

debian_unknown=Unbekannt
debian_depends=Ignoriere Abh&auml;ngigkeits-Probleme?
debian_conflicts=Ignoriere Paket-Konflikte?
debian_overwrite=&Uuml;berschreibe Dateien aus anderen Paketen?
debian_downgrade=Ersetze neueres Paket mit altem?

0707010006d69d000081a40000000000000002000000013ac03896000018b6000000200000000000000000000000000000001700000003reloc/software/lang/en    index_title=Software Packages
index_installed=Installed Packages
index_close=Close All
index_open=Open All
index_search=Search For Package:
index_install=Install a New Package
index_installmsg=Select the location to install a new $1 package from..
index_local=From local file
index_uploaded=From uploaded file
index_ftp=From ftp or http URL
index_installok=Install
index_ident=Identify a File
index_identmsg=Enter a command or the pathname of a file to search the $1 database for.
index_identok=Search For:
index_all=All Packages
index_return=package list

search_title=Package Search
search_nomatch=No packages matched $1
search_none=None
search_desc=Description
search_class=Class
search_pack=Package
search_match=Packages matching $1
search_return=search results

edit_title=Edit Package
edit_details=Package Details
edit_desc=Description
edit_pack=Package
edit_class=Class
edit_none=None
edit_ver=Version
edit_vend=Vendor
edit_arch=Architecture
edit_inst=Installed
edit_list=List Files
edit_uninst=Uninstall
edit_return=package details

list_title=Package Files
list_files=Files for Package $1
list_path=Path
list_owner=Owner
list_group=Group
list_type=Type
list_size=Size
list_status=Status
list_ok=OK

delete_err=Failed to delete package $1
delete_epack=The package $1 does not exist
delete_title=Delete Package
delete_rusure=Are you sure you want to delete the package $1 ? Up to $2 files ($3 bytes) will be deleted forever.
delete_ok=Delete

file_title=File Information
file_notfound=No information about $1 is available
file_path=Path
file_type=Type
file_perms=Permissions
file_owner=Owner
file_group=Group
file_size=Size
file_link=Link To
file_pack=Package
file_class=Class
file_desc=Description
file_none=None

install_err=Failed to install package
install_elocal=No local file given
install_elocal2='$1' does not exist
install_eupload=Your browser does not support file uploads
install_eurl=Incomprehensible URL '$1'
install_edir=Not a valid $1 directory
install_ezip=Not a valid compressed or gzipped $1 file
install_efile=Not a valid $1 file
install_title=Install Package
install_header=Install package
install_packs=Package(s) to be installed
install_ok=Install

do_err=Failed to install package $1
do_title=Install Package
do_efailed=Install failed : $1
do_efailedmsg1=You may attempt to install again by going back to the previous page and selecting different install options.
do_efailedmsg2=Otherwise, <a href='$1'>click here to delete the temporary package file</a> in order to save disk space.
do_success=Package $1 was installed successfully
do_details=Package Details
do_desc=Description
do_class=Class
do_pack=Package
do_ver=Version
do_vend=Vendor
do_arch=Architecture
do_inst=Installed
do_none=None
do_files=Package Files

pkgadd_root=Root directory
pkgadd_eroot=Root directory '$1' does not exist
pkgadd_unknown=Unknown
pkgadd_manager=System V Package Manager

rpm_upgrade=Upgrade package?
rpm_replacepkgs=Overwrite package?
rpm_nodeps=Ignore dependencies?
rpm_oldpackage=Replace new version with old?
rpm_noscripts=Execute install scripts?
rpm_excludedocs=Install documentation?
rpm_replacefiles=Overwrite files?
rpm_root=Root directory
rpm_eroot=Root directory '$1' does not exist

bsd_unknown=Unknown
bsd_scripts=Execute pre and post install scripts?
bsd_force=Force install if missing prerequisites?
bsd_manager=$1 Package Manager  

slack_unclass=Other
slack_unknown=Unknown
slack_missing=Missing
slack_root=Root directory
slack_eroot=Missing or invalid root directory
slack_manager=Slackware Package Manager

debian_unknown=Unknown
debian_depends=Ignore dependancy problems?
debian_conflicts=Ignore package conflicts?
debian_overwrite=Overwrite files from other packages?
debian_downgrade=Replace newer package with old?
debian_manager=Debian DPKG

log_install_package=Installed package $1
log_install_apt_l=Installed package(s) $1 from APT
log_install_apt=Installed $2 package(s) from APT
log_check_apt_l=Upgraded package(s) $1 from APT
log_check_apt=Upgraded $2 package(s) from APT
log_delete=Uninstalled package $1

rhn_input=Package from Redhat Network
rhn_install=Installing package(s) with command $1 ..
rhn_ok=.. install complete.
rhn_failed=.. install failed!
rhn_title=Select RHN package
rhn_pack=Package
rhn_version=Version
rhn_form=Redhat Network Options
rhn_auto=Automatically check for updates?
rhn_interval=Checking interval
rhn_secs=seconds
rhn_apply=Save and Apply
rhn_now=Save and Check Now
rhn_err=Failed to save RHN options
rhn_einterval=Missing or invalid interval
rhn_einterval2=Checking interval must be at least 120 seconds
rhn_check=Checking For Updates
rhn_checkdesc=Checking for updated packages from the Redhat Network with command $1 ..
rhn_nocheck=.. no packages updated.
rhn_proxy=Proxy server URL for downloading
rhn_none=Disabled
rhn_eproxy=Missing or invalid proxy server
rhn_skip=Skip packages matching

apt_input=Package from APT
apt_install=Installing package(s) with command $1 ..
apt_ok=.. install complete.
apt_failed=.. install failed!
apt_form=Upgrade All Packages
apt_update=Resynchronize package list (<tt>update</tt>)
apt_dist=Perform distribution upgrade (<tt>upgrade-dist</tt>)
apt_sim=Only show which packages would be upgraded
apt_apply=Upgrade Now
apt_upgrade=Upgrade All Packages
apt_updatedesc=Resynchronizing package list with command $1 ..
apt_updatefailed=.. resynchronization failed!
apt_updateok=.. resynchronization complete.
apt_upgradedesc=Upgrading all packages with command $1 ..
apt_upgradedescsim=Simulating upgrade of all packages with command $1 ..
apt_upgradefailed=.. upgrade failed!
apt_upgradeok=.. upgrade complete.

rpm_missing=Missing
rpm_checkfail=Failed $1 check
rpm_md5=MD5
rpm_fsize=file size
rpm_sym=symlink
rpm_mtime=modification time
rpm_dev=device
rpm_user=user ownership
rpm_perm=permissions
rpm_group=group ownership
rpm_erpm=RPM $1 not found : $2

soft_reg=Regular File
soft_dir=Directory
soft_spec=Special File
soft_sym=Symbolic Link
soft_hard=Hard LinkHard Link
soft_edit=Editable File
soft_efunc=Failed to load functions for $1 package system.
soft_euncompress=File is compressed, but the <tt>uncompress</tt> command was not found on your system.
soft_euncmsg=Failed to uncompress file : $1
soft_egzip=File is gzipped, but the gzip command was not found on your system.
soft_egzmsg=Failed to gunzip file : $

  0707010006d69e000081a40000000000000002000000013ac0389600000ff9000000200000000000000000000000000000001700000003reloc/software/lang/es    index_title=Paquetes de Software
index_installed=Paquetes Instalados
index_close=Cerrar Todos
index_open=Abrir Todos
index_search=Buscar Paquete:
index_install=Instalar Nuevo Paquete
index_installmsg=Selecciona la localizaci髇 desde donde instalar el paquete $1 ...
index_local=Desde archivo local
index_uploaded=Desde archivo cargado
index_ftp=Desde direcci髇 URL ftp o http
index_installok=Instalar
index_ident=Identificar un Archivo
index_identmsg=Digite un comando o la trayectoria de un archivo donde buscar la base de datos $1.
index_identok=Buscar:
index_return=lista de paquetes

search_title=B鷖queda de paquetes
search_nomatch=No hay paquetes que coincidan con $1
search_none=Ninguno
search_desc=Descripci髇
search_class=Clase
search_pack=Paquete
search_match=Paquetes que coinciden con $1
search_return=resultados de la b鷖queda

edit_title=Editar Paquete
edit_details=Detalles del Paquete
edit_desc=Descripci髇
edit_pack=Paquete
edit_class=Clase
edit_none=Ninguno
edit_ver=Versi髇
edit_vend=Vendedor
edit_arch=Arquitectura
edit_inst=Instalado
edit_list=Listar Archivos
edit_uninst=Desinstalar
edit_return=detalles del paquete

list_title=Archivos del Paquete
list_files=Archivos para el paquete $1
list_path=Trayectoria
list_owner=Propietario
list_group=Grupo
list_type=Tipo
list_size=Medida
list_status=Estado

delete_err=Error en borrado del paquete $1
delete_epack=El paquete $1 no existe
delete_title=Borrar Paquete
delete_rusure=縀st醩 seguro de querer borrar el paquete $1? Tantos como $2 archivos ($3 bytes) ser醤 borrados para siempre jam醩.
delete_ok=Borrar

file_title=Informaci髇 de Archivo
file_notfound=No hay informaci髇 disponible para $1
file_path=Trayectoria
file_type=Tipo
file_perms=Permisos
file_owner=Propietario
file_group=Grupo
file_size=Medida
file_link=Enlaza Con
file_pack=Paquete
file_class=Clase
file_desc=Descripci髇
file_none=Ninguna

install_err=Error al instalar paquete
install_elocal=No se ha suministrado el archivo local
install_elocal2='$1' no existe
install_eupload=Tu navegador no soporta carga de archivos
install_eurl=Direcci髇 URL '$1' incompresible
install_edir=No hay un directorio $1 v醠ido
install_ezip=No hay un archivo comprimido .Z o -gz $1
install_efile=No hay archivo $1 v醠ido
install_title=Instalar Paquete
install_header=Instalar paquete
install_packs=Paquete(s) a instalar
install_ok=Instalar

do_err=Error al instalar paquete $1
do_title=Instalar Paquete
do_efailed=Instalaci髇 fallida: $1
do_efailedmsg1=Puedes intentar instalar de nuevo yendo a la p醙ina previa y seleccionando diferentes opciones de instalaci髇.
do_efailedmsg2=En caso contrario, <a href='$1'>haz click aqu para borrar el archivo temporal del paquete</a> con el fin de ahorrar espacio en disco.
do_success=El Paquete $1 se instal con 閤ito
do_details=Detalles del Paquete
do_desc=Descripci髇
do_class=Clase
do_pack=Paquete
do_ver=Versi髇
do_vend=Vendedor
do_arch=Arquitectura
do_inst=Instalado
do_none=Ninguno
do_files=Archivos del Paquete

pkgadd_root=Directorio Raiz
pkgadd_eroot=El directorio raiz '$1' no existe
pkgadd_unknown=Desconocido

rpm_upgrade=緼ctualizo el paquete?
rpm_replacepkgs=縎obreescribo el paquete?
rpm_nodeps=縄gnoro las dependencias?
rpm_oldpackage=縍eemplazo la nueva versi髇 con la anterior?
rpm_noscripts=縀jecuto guiones de instalaci髇?
rpm_excludedocs=縄nstalo la documentaci髇?
rpm_replacefiles=縎obreescribo los archivos?
rpm_root=Directorio Raiz
rpm_eroot=El directorio raiz '$1' no existe

bsd_unknown=Desconocido
bsd_scripts=縀jecuto los guiones de pre y post instalaci髇?
bsd_force=縁uerzo la instalaci髇 si hay prerequistos que no est醤?

slack_unclass=Otro
slack_unknown=Desconocido
slack_missing=Perdido
slack_root=Directorio raiz
slack_eroot=Directorio Raiz perdido o inv醠ido

debian_unknown=Desconocido
debian_depends=縄gnoro problemas de dependencias?
debian_conflicts=縄gnoro conflictos de paquetes?
debian_overwrite=縎obreescribo archivos de otros paquetes?
debian_downgrade=縍eemplazo el paquete m醩 reciente con el anterior?

log_install_package=Instalado paquete $1
log_delete=Desinstalado paquete $1

   0707010006d69f000081a40000000000000002000000013ac0389600001013000000200000000000000000000000000000001700000003reloc/software/lang/fr    index_title=Composants logiciels
index_installed=Composants install閟
index_close=Tout fermer
index_open=Tout ouvrir
index_search=Chercher un composant
index_install=Installer un nouveau composant
index_installmsg=Choisissez d'o installer un nouveau composant $1
index_local=Un fichier local
index_uploaded=Un fichier t閘閏harg
index_ftp=Une adresse FTP ou HTTP
index_installok=Installer
index_ident=Identifier un fichier
index_identmsg=Entrer une commande ou le chemin d'acc鑣 d'un fichier  rechercher dans la base de donn閑 des composants $1
index_identok=Rechercher:
index_return=composants install閟

search_title=Chercher un composant
search_nomatch=Aucun composant $1 correspondant
search_none=Aucun
search_desc=Description
search_class=Classe
search_pack=Composant
search_match=Composant correspondant  $1

edit_title=蒬iter un composant
edit_details=D閠ail du composant
edit_desc=Description
edit_pack=Composant
edit_class=Classe
edit_none=Aucun
edit_ver=Version
edit_vend=Fournisseur
edit_arch=Architecture
edit_inst=Install le
edit_list=Liste des fichiers
edit_uninst=D閟installer
edit_return=d閠ails du composant

list_title=Fichiers du composant
list_files=Fichiers du composant $1
list_path=Chemin
list_owner=Propri閠aire
list_group=Groupe
list_type=Type
list_size=Taille
list_status=蓆at

delete_err=Impossible de supprimer le composant $1
delete_epack=Le composant $1 n'existe pas
delete_title=Supprimer un composant
delete_rusure=蕋es-vous sur de vouloir supprimer le composant $1 contenant $2 fichiers ($3 octets) d閒initivement?
delete_ok=Supprimer

file_title=Informations sur un fichier
file_notfound=Aucune information disponible pour $1
file_path=Chemin
file_type=Type
file_perms=Permissions
file_owner=Propri閠aire
file_group=Groupe
file_size=Taille
file_link=Lier 
file_pack=Composant
file_class=Classe
file_desc=Description
file_none=Aucun

install_err=Impossible d'installer le composant
install_elocal=Aucun nom de fichier local sp閏ifi
install_elocal2='$1' n'existe pas
install_eupload=Votre navigateur ne supporte pas l'envoi de fichiers
install_eurl=Lien '$1' incompr閔ensible
install_edir=$1 n'est pas un r閜ertoire valide
install_ezip=$1 n'est pas un fichier compress ou gzipp valide
install_efile=Fichier $1 invalide
install_title=Installer un composant
install_header=Installer un composant
install_packs=Composants  installer
install_ok=Installer

do_err=Impossible d'installer le composant $1
do_title=Installer un composant
do_efailed=Installation impossible : $1
do_efailedmsg1=Vous pouvez r閑ssayer d'installer le composant de nouveau en retournant  la page pr閏閐ente et en choisissant des options d'installation diff閞entes
do_efailedmsg2=Sinon, <a href='$1'>cliquez ici pour supprimer le fichier temporaire du composant</a> pour r閏up閞er de l'espace disque.
do_success=Le composant $1 a 閠 install correctement
do_details=D閠ails du composant
do_desc=Description
do_class=Classe
do_pack=Composant
do_ver=Version
do_vend=Fournisseur
do_arch=Architecture
do_inst=Install le
do_none=Aucun
do_files=Fichiers du composant

pkgadd_root=R閜ertoire racine
pkgadd_eroot=Le r閜ertoire racine '$1' n'existe pas
pkgadd_unknown=Inconnu

rpm_upgrade=Mettre le composant  jour?
rpm_replacepkgs=蒫raser le composant?
rpm_nodeps=Ignorer les d閜endances?
rpm_oldpackage=Remplacer la version courante par une plus ancienne?
rpm_noscripts=Ex閏uter les scripts d'installation?
rpm_excludedocs=Installer la documentation?
rpm_replacefiles=蒫raser les fichiers?
rpm_root=R閜ertoire racine
rpm_eroot=Le r閜ertoire racine '$1' est introuvable

bsd_unknown=Inconnu
bsd_scripts=Ex閏uter les script pre/post-installation?
bsd_force=Forcer l'installation m阭e s'il manque des pr閞equis?

slack_unclass=Autre
slack_unknown=Inconnu
slack_missing=Manquant
slack_root=R閜ertoire racine
slack_eroot=R閜ertoire racine introuvable

debian_unknown=Inconnu
debian_depends=Ignorer les probl鑝es de d閜endances?
debian_conflicts=Ignorer les conflits entre composants?
debian_overwrite=蒫raser les fichiers des autres composants?
debian_downgrade=Remplacer un nouveau composant par un plus ancien?
 0707010006d6a0000081a40000000000000002000000013ac0389600000f2c000000200000000000000000000000000000001700000003reloc/software/lang/hu    index_title=Szoftver csomagok
index_installed=Telep韙ett csomagok
index_close=謘szes bez醨醩a
index_open=謘szes megnyit醩a
index_search=Csomag keres閟e:
index_install=趈 csomag telep韙閟e
index_installmsg=V醠assza ki a helyet, ahonnan az 鷍 $1 csomagot telep韙i...
index_local=Helyi f醞lb髄
index_uploaded=Felt鰈t鰐t f醞lb髄
index_ftp=Ftp vagy http URL-r鮨
index_installok=Telep韙
index_ident=F醞l azonos韙醩a
index_identmsg=Adja meg a parancs nev閠 vagy a f醞l el閞閟i 鷗vonal醫 a(z) $1 adatb醶isban val keres閟hez.
index_identok=Keres閟:
index_return=a csomagok list醞醜oz

search_title=Csomag keres閟e
search_nomatch=Nincs $1 karakterl醤cot tartalmaz csomag
search_none=Nincs
search_desc=Le韗醩
search_class=Oszt醠y
search_pack=Csomag
search_match=A(z) $1 karakterl醤cot tartalmaz csomagok

edit_title=Csomag szerkeszt閟e
edit_details=Csomag r閟zletei
edit_desc=Le韗醩
edit_pack=Csomag
edit_class=Osz醠y
edit_none=Nincs
edit_ver=Verzi
edit_vend=Terjeszt
edit_arch=Architekt鷕a
edit_inst=Telep韙ett
edit_list=F醞lok list醶醩a
edit_uninst=T鰎l閟
edit_return=a csomag r閟zleteihez

list_title=Csomag f醞ljai
list_files=A(z) $1 csomag f醞ljai
list_path=趖vonal
list_owner=Tulajdonos
list_group=Csoport
list_type=T韕us
list_size=M閞et
list_status=羖lapot

delete_err=A(z) $1 csomag t鰎l閟e nem siker黮t
delete_epack=A(z) $1 csomag nem l閠ezik
delete_title=Csomag t鰎l閟e
delete_rusure=Biztosan t鰎鰈ni akarja a(z) $1 csomagot? $2 darab f醞l ($3 b醞t) 鰎鰇re le lesz t鰎鰈ve.
delete_ok=T鰎鰈

file_title=F醞l inform醕i髃
file_notfound=A(z) $1 f醞lr髄 inform醕i nem 閞het el
file_path=趖vonal
file_type=T韕us
file_perms=Jogosults醙ok
file_owner=Tulajdonos
file_group=Csoport
file_size=M閞et
file_link=Link
file_pack=Csomag
file_class=Oszt醠y
file_desc=Le韗醩
file_none=Nincs

install_err=A csomag telep韙閟e nem siker黮t
install_elocal=Helyi f醞l megad醩a nem t鰎t閚t meg
install_elocal2=A(z) '$1' nem l閠ezik
install_eupload=Az 謓 b鰊g閟z鮦e nem t醡ogatja a f醞lok felt鰈t閟閠
install_eurl=A(z) '$1' URL 閞telmezhetetlen
install_edir=A(z) $1 k鰊yvt醨 閞v閚ytelen
install_ezip=A(z) $1 閞v閚ytelen t鰉鰎韙ett vagy gzipelt f醞l.
install_efile=A(z) $1 閞v閚ytelen f醞l
install_title=Csomag telep韙閟e
install_header=Csomag telep韙閟e
install_packs=A csomag(ok) telep韙閟e megt鰎t閚t
install_ok=Telep韙

do_err=A(z) $1 csomag telep韙閟e nem siker黮t
do_title=Csomag telep韙閟e
do_efailed=A telep韙閟 nem siker黮t : $1
do_efailedmsg1=謓 az el鮶 oldalra visszamenve k黮鰊b鰖 telep韙閟i m骴ozatokat v醠aszthat ki, majd 鷍ra megk韘閞elheti a telep韙閟t
do_efailedmsg2=M醩k黮鰊ben <a href='$1'>kattintson ide az ideiglenes csomagf醞lok t鰎l閟閔ez</a>, mellyel lemezter黮etet szabad韙hat fel.
do_success=A(z) $1 csomag telep韙閟e siker黮t
do_details=Csomag r閟zletei
do_desc=Le韗醩
do_class=Oszt醠y
do_pack=Csomag
do_ver=Verzi
do_vend=Terjeszt
do_arch=Architekt鷕a
do_inst=Telep韙ett
do_none=Nincs
do_files=Csomag f醞ljai

pkgadd_root=Gy鰇閞k鰊yvt醨
pkgadd_eroot=A(z) '$1' gy鰇閞k鰊yvt醨 nem l閠ezik
pkgadd_unknown=Ismeretlen

rpm_upgrade=Csomag friss韙閟e?
rpm_replacepkgs=Csomag fel黮韗醩a?
rpm_nodeps=Depedenci醟 mell鮶閟e?
rpm_oldpackage=Az 鷍 v醠tozat kicser閘閟e a r間ire?
rpm_noscripts=A telep韙鮯zkriptek v間rehajt醩a?
rpm_excludedocs=Dokument醕i telep韙閟e?
rpm_replacefiles=F醞lok fel黮韗醩a?
rpm_root=Gy鰇閞k鰊yvt醨
rpm_eroot=A(z) '$1' gy鰇閞k鰊yvt醨 nem l閠ezik

bsd_unknown=Ismeretlen
bsd_scripts=Az 'el' 閟 'ut' telep韙鮯zkriptek v間rehajt醩a?
bsd_force=Telep韙閟 hi醤yz el鮢elt閠elek eset閚 is?

slack_unclass=Egy閎
slack_unknown=Ismeretlen
slack_missing=Hi醤yz
slack_root=Gy鰇閞k鰊yvt醨
slack_eroot=Hi醤yz vagy 閞v閚ytelen gy鰇閞k鰊yvt醨

debian_unknown=Hi醤yz
debian_depends=A f黦g鮯間i probl閙醟 mell鮶閟e?
debian_conflicts=A csomag黷k鰖閟ek mell鮶閟e?
debian_overwrite=M醩 csomagok f醞ljainak fel黮韗醩a?
debian_downgrade=Az 鷍abb csomag kicser閘閟e a r間ire?

0707010006d6a1000081a40000000000000002000000013ac038960000136f000000200000000000000000000000000000001700000003reloc/software/lang/pl    index_title=Pakiety oprogramowania
index_installed=Zainstalowane pakiety
index_close=Zamknij wszystkie
index_open=Otw髍z wszystkie
index_search=Szukaj pakietu:
index_install=Zainstaluj nowy pakiet
index_installmsg=Podaj lokalizacj z&nbsp;jakiej b阣zie instalowany nowy pakiet $1..
index_local=Z&nbsp;pliku lokalnego
index_uploaded=Z&nbsp;pliku przes砤nego
index_ftp=Z&nbsp;serwera ftp lub http, URL
index_installok=Zainstaluj
index_ident=Zidentyfikuj plik
index_identmsg=Podaj polecenie lub 禼ie縦 do pliku, aby go poszuka w&nbsp;bazie $1.
index_identok=Szukaj:
index_all=Wszystkie pakiety
index_return=listy pakiet體

search_title=Szukanie pakietu
search_nomatch=Nie znaleziono pakietu dla $1
search_none=Brak
search_desc=Opis
search_class=Klasa
search_pack=Pakiet
search_match=Pakiety dla $1
search_return=wynik體 poszukiwania

edit_title=Zmie pakiet
edit_details=Informacje o&nbsp;pakiecie
edit_desc=Opis
edit_pack=Pakiet
edit_class=Klasa
edit_none=Brak
edit_ver=Wersja
edit_vend=Dystrybutor
edit_arch=Architektura
edit_inst=Zainstalowany
edit_list=Lista plik體
edit_uninst=Odinstaluj
edit_return=informacji o&nbsp;pakiecie

list_title=Pliki pakietu
list_files=Pliki w&nbsp;pakiecie $1
list_path=ie縦a
list_owner=W砤禼iciel
list_group=Grupa
list_type=Rodzaj
list_size=Rozmiar
list_status=Stan
list_ok=OK

delete_err=Nie uda硂 si usun辨 pakietu $1
delete_epack=Pakiet $1 nie istnieje
delete_title=Usu pakiet
delete_rusure=Czy na pewno chcesz usun辨 pakiet $1? $2 plik體 ($3 bajt體) zostanie nieodwracalnie skasowanych.
delete_ok=Usu

file_title=Informacje o pliku
file_notfound=Brak dost阷nych informacji o&nbsp;pliku $1
file_path=ie縦a
file_type=Rodzaj
file_perms=Uprawnienia
file_owner=W砤禼iciel
file_group=Grupa
file_size=Rozmiar
file_link=Dowi眤anie do
file_pack=Pakiet
file_class=Klasa
file_desc=Opis
file_none=Brak

install_err=Nie uda硂 si zainstalowa pakietu
install_elocal=Nie podano pliku lokalnego
install_elocal2='$1' nie istnieje
install_eupload=Twoja przegl眃arka nie obs硊guje przesy砤nia plik體
install_eurl=Niezrozumia硑 URL '$1'
install_edir=Niew砤禼iwy katalog $1
install_ezip=Niew砤禼iwy spakowany plik $1
install_efile=Niew砤禼iwy plik $1
install_title=Zainstaluj pakiet
install_header=Zainstaluj pakiet
install_packs=Pakiet(y) do zainstalowania
install_ok=Instaluj

do_err=Nie uda硂 si zainstalowa pakietu $1
do_title=Instalalacja pakietu
do_efailed=Instalacja si nie powiod砤&nbsp;: $1
do_efailedmsg1=Mo縠sz spr骲owa zainstalowa ponownie wracaj眂 do poprzedniej strony i&nbsp;wybieraj眂 inne opcje instalacyjne.
do_efailedmsg2=W&nbsp;przeciwnym przypadku <a href='$1'>naci秐ij tutaj, aby usun辨 pliki tymczasowe pakietu</a> dla zaoszcz阣zenia miejsca na dysku.
do_success=Pakiet $1 zosta pomy秎nie zainstalowany
do_details=Informacje o&nbsp;pakiecie
do_desc=Opis
do_class=Klasa
do_pack=Pakiet
do_ver=Wersja
do_vend=Dystrybutor
do_arch=Architektura
do_inst=Zainstalowany
do_none=Brak
do_files=Pliki w&nbsp;pakiecie

pkgadd_root=Katalog g丑wny
pkgadd_eroot=Katalog g丑wny '$1' nie istnieje
pkgadd_unknown=Nieznany
pkgadd_manager=zarz眃cy pakiet體 Systemu V

rpm_upgrade=Aktualizowa pakiet?
rpm_replacepkgs=Nadpisa pakiet?
rpm_nodeps=Ignorowa zale縩o禼i?
rpm_oldpackage=Zast眕i nowsz wersj przez starsz?
rpm_noscripts=Uruchomi skrypty instalacyjne?
rpm_excludedocs=Instalowa dokumentacj?
rpm_replacefiles=Nadpisywa pliki?
rpm_root=Katalog g丑wny
rpm_eroot=Katalog g丑wny '$1' nie istnieje

bsd_unknown=Nieznany
bsd_scripts=Uruchomi skrypty przed- i&nbsp;poinstalacyjne?
bsd_force=Wymusi instalacj przy braku wymaganych?
bsd_manager=zarz眃cy pakiet體 $1

slack_unclass=Inny
slack_unknown=Nieznany
slack_missing=Brak
slack_root=Katalog g丑wny
slack_eroot=Brak lub niew砤禼iwy katalog g丑wny
slack_manager=zarz眃cy pakiet體 Slackware

debian_unknown=Nieznany
debian_depends=Ignorowa problemy z&nbsp;zale縩o禼iami?
debian_conflicts=Ignorowa konflikty pakiet體?
debian_overwrite=Nadpisywa pliki z&nbsp;innych pakiet體?
debian_downgrade=Zast眕i nowszy pakiet przez starszy?
debian_manager=DPKG Debiana

log_install=Zainstalowano pakiet $1
log_delete=Odinstalowano pakiet $1

rpm_missing=Brak
rpm_checkfail=Niezgodno舵 $1
rpm_md5=sumy kontrolnej MD5
rpm_fsize=rozmiaru pliku
rpm_sym=dowi眤ania symbolicznego
rpm_mtime=czasu modyfikacji
rpm_dev=pliku urz眃zenia
rpm_user=u縴tkownika
rpm_perm=uprawnie
rpm_group=grupy
rpm_erpm=Nie znaleziono RPM-a $1&nbsp;: $2 

soft_reg=Zwyk硑 plik
soft_dir=Katalog
soft_spec=Plik specjalny
soft_sym=Dowi眤anie symboliczne
soft_hard=Dowi眤anie twarde
soft_edit=Plik konfiguracyjny
soft_efunc=Nie uda硂 sie za砤dowa funkcji obs硊guj眂ych system pakiet體 $1.
soft_euncompress=Plik jest spakowany, a&nbsp;nie znaleziono w&nbsp;systemie polecenia <tt>uncompress</tt>.
soft_euncmsg=Nie uda硂 si rozpakowa&nbsp;: $1
soft_egzip=Plik jest spakowany gzipem, a&nbsp;nie znaleziono w&nbsp;systemie polecenia <tt>gzip</tt>.
soft_egzmsg=Nie uda硂 si rozpakowa pliku spakowanego gzipem&nbsp;: $1

 0707010006d6a2000081a40000000000000002000000013ac0389600000f22000000200000000000000000000000000000001700000003reloc/software/lang/pt    index_title=Pacotes de Software
index_installed=Pacotes Instalados
index_close=Fechar Todos
index_open=Abrir Todos
index_search=Procurar Pacote:
index_install=Instalar Novo Pacote
index_installmsg=Seleccione a localiza玢o de onde quer instalar o novo pacote $1 ..
index_local=De ficheiro local
index_uploaded=De um ficheiro carregado
index_ftp=De um URL ftp ou http
index_installok=Instalar
index_ident=Identificar um Ficheiro
index_identmsg=Introduza um comando ou um caminho do ficheiro para procurar na base de dados $1.
index_identok=Procurar Por:
index_return=lista de pacotes

search_title=Procura de Pacotes
search_nomatch=N鉶 h pacotes que coincidam com $1
search_none=Nenhum
search_desc=Descri玢o
search_class=Classe
search_pack=Pacote
search_match=Pacotes que coincidem com $1

edit_title=Editar Pacote
edit_details=Detalhes do Pacote
edit_desc=Descri玢o
edit_pack=Pacote
edit_class=Classe
edit_none=Nenhum
edit_ver=Vers鉶
edit_vend=Vendedor
edit_arch=Arquitectura
edit_inst=Instalado
edit_list=Listar Ficheiros
edit_uninst=Desinstalar
edit_return=detalhes do pacote

list_title=Ficheiros do Pacote
list_files=Ficheiros para o Pacote $1
list_path=Caminho
list_owner=Propriet醨io
list_group=Grupo
list_type=Tipo
list_size=Tamanho
list_status=Estado

delete_err=Erro ao apagar o pacote $1
delete_epack=O pacote $1 n鉶 existe
delete_title=Apagar Pacote
delete_rusure=Tem a certeza que quer apagar o pacote $1 ? Todos os $2 ficheiros ($3 bytes) ser鉶 apagados para sempre.
delete_ok=Apagar

file_title=Informa玢o do Ficheiro
file_notfound=N鉶 est dispon韛el a informa玢o acerca de $1
file_path=Caminho
file_type=Tipo
file_perms=Permiss鮡s
file_owner=Propriet醨io
file_group=Grupo
file_size=Tamanho
file_link=Enla鏰r Com
file_pack=Pacote
file_class=Classe
file_desc=Descri玢o
file_none=Nenhum

install_err=Erro ao instalar pacote
install_elocal=N鉶 foi dado nenhum ficheiro local
install_elocal2='$1' n鉶 existe
install_eupload=O seu navegador n鉶 suporta carregamento de ficheiros
install_eurl=O URL '$1'  imcompreens韛el
install_edir=N鉶  um direct髍io $1 v醠ido
install_ezip=N鉶  um ficheiro comprimido ou do gzip $1 v醠ido
install_efile=N鉶  um ficheiro $1 v醠ido
install_title=Instalar Pacote
install_header=Instalar Pacote
install_packs=Pacote(s) a instalar
install_ok=Instalar

do_err=Erro ao instalar pacote $1
do_title=Instalar Pacote
do_efailed=Erro na instala玢o : $1
do_efailedmsg1=Vov pode tentar instalar de novo voltando atr醩  p醙ina anterior seleccionando diferentes op珲es de instala玢o.
do_efailedmsg2=Caso contr醨io, <a href='$1'>clique aqui para apagar o pacote tempor醨io</a> com o fim de ganhar espa鏾 em disco.
do_success=O pacote $1 foi instalado com sucesso
do_details=Detalhes do Pacote
do_desc=Descri玢o
do_class=Classe
do_pack=Pacote
do_ver=Vers鉶
do_vend=Vendedor
do_arch=Arquitectura
do_inst=Instalado
do_none=Nenhum
do_files=Ficheiros do Pacote

pkgadd_root=Direct髍io ra韟
pkgadd_eroot=o direct髍io ra韟 '$1' n鉶 existe
pkgadd_unknown=Desconhecido

rpm_upgrade=Actualizar pacote?
rpm_replacepkgs=Sobreposicionar pacote?
rpm_nodeps=Ignorar depend阯cias?
rpm_oldpackage=Substituir a nova vers鉶 pela a antiga?
rpm_noscripts=Executar gui鮡s de instala玢o?
rpm_excludedocs=Instalar documenta玢o?
rpm_replacefiles=Sobreposicionar ficheiros?
rpm_root=Direct髍io ra韟
rpm_eroot=O direct髍io ra韟 '$1' n鉶 existe

bsd_unknown=Desconhecido
bsd_scripts=Executar gui鮡s de pr e p髎 instala玢o?
bsd_force=For鏰r a instala玢o se faltarem os pr-requesitos?

slack_unclass=Outro
slack_unknown=Desconhecido
slack_missing=Em falta
slack_root=Direct髍io ra韟
slack_eroot=Direct髍io ra韟 inv醠ido ou em falta

debian_unknown=Desconhecido
debian_depends=Ignorar problemas de depend阯cia?
debian_conflicts=Ignorar conflito de pacotes?
debian_overwrite=Sobrep魊 ficheiros de outros pacotes?
debian_downgrade=Substituir a nova vers鉶 pela a antiga?
  0707010006d6a3000081a40000000000000002000000013ac0389600000e41000000200000000000000000000000000000001a00000003reloc/software/lang/ru_RU edit_list=橡铖祛蝠 脏殡钼
edit_inst=玉蜞眍怆屙
index_open=朽玮屦眢螯 埋
edit_class=孰囫
install_efile=湾忮痦 羿殡 $1
index_identmsg=骡邃栩 觐爨礓 桦 矬蝈忸 桁 羿殡 潆 邈 镱桉赅  徉珏 溧眄 $1.
file_title=软纛痨圉  脏殡
install_err=硒栳赅 镳 篑蜞眍怅 镟赍蜞
debian_overwrite=襄疱镨覃忄螯 羿殡 桤 漯筱桴 镟赍蝾?
edit_none=湾
do_vend=项耱噔
list_owner=码噤咫弼
do_class=孰囫
pkgadd_root=暑痦邂铋 赅蜞腩
index_ident=蠕屙蜩翳鲨痤忄螯 脏殡
bsd_scripts=蔓镱腠螯 漕  镱耠-桧耱嚯鲨铐睇 聆屙囵梃?
install_ezip=湾忮痦 compress 桦 gzip 羿殡 $1
slack_unknown=湾桤忮耱屙
rpm_oldpackage=青戾龛螯 眍怏 忮瘃棹 耱囵铋?
do_files=脏殡 相赍蜞
slack_root=暑痦邂铋 赅蜞腩
do_err=硒栳赅 镳 篑蜞眍怅 镟赍蜞 $1
do_desc=物桉囗桢
rpm_noscripts=锐镱腠栩 桧耱嚯鲨铐睇 聆屙囵梃?
debian_depends=茹眍痂痤忄螯 镳钺脲禧  玎忤耔祛耱扈?
do_arch=鲤蹊蝈牝箴
install_title=玉蜞眍怅 相赍蜞
search_title=项桉 相赍蝾
search_match=相赍螓 耦怙噤帼  $1
install_ok=玉蜞眍忤螯
pkgadd_unknown=湾桤忮耱屙
install_header=玉蜞眍怅 镟赍蜞
file_type=诣
install_edir=湾忮痦 赅蜞腩 $1
rpm_replacefiles=襄疱镨襦螯 羿殡?
do_pack=相赍
file_perms=橡噔
list_type=诣
file_size=朽珈屦
debian_unknown=湾桤忮耱屙
rpm_upgrade=吾眍忤螯 镟赍?
delete_err=硒栳赅 镳 箐嚯屙梃 镟赍蜞 $1
file_class=孰囫
bsd_force=灶瘃桊钼囹 篑蜞眍怅, 溧驽 羼腓 礤 礤钺躅滂禧 篑腩忤?
index_install=玉蜞眍怅 皖忸泐 相赍蜞
list_group=灭箫镟
search_desc=物桉囗桢
index_uploaded=青沭箧屙眍泐 羿殡
list_size=朽珈屦
search_nomatch=湾 镟赍蝾 耦怙噤帼  $1
install_packs=相赍螓 潆 篑蜞眍怅
index_installed=玉蜞眍怆屙睇 相赍螓
rpm_replacepkgs=襄疱镨襦螯 镟赍?
do_efailedmsg1=蔓 祛驽蝈 镱稃蜞螯 镳钼羼蜩 篑蜞眍怅 耥钼, 忮痦筲顸 磬 镳邃簌簋 耱疣龛鲶 恹狃噔 漯赉桢 篑蜞眍忸黜 镟疣戾蝠.
do_efailedmsg2=软圜 <a href='$1'>磬骒栩 颃溧 潆 箐嚯屙 怵屐屙眍泐 羿殡 镟赍蜞</a>, 黩钺 铐 礤 玎龛爨 戾耱 磬 滂耜.
delete_title=愉嚯屙桢 相赍蜞
search_pack=相赍
slack_eroot=湾 忖邃屙 桦 礤忮痦 觐痦邂铋 赅蜞腩
do_inst=玉蜞眍怆屙
edit_ver=洛瘃
rpm_nodeps=茹眍痂痤忄螯 玎忤耔祛耱?
index_search=项桉 相赍蜞:
debian_conflicts=茹眍痂痤忄螯 觐眙腓牝 镟赍蝾?
index_installok=玉蜞眍忤螯
search_class=孰囫
slack_missing=项蝈
index_return=耧桉铌 镟赍蝾
do_none=湾
bsd_unknown=湾桤忮耱屙
list_title=脏殡 相赍蜞
delete_ok=愉嚯栩
index_local=祟赅朦眍泐 羿殡
file_owner=码噤咫弼
file_notfound=湾 桧纛痨圉梃  $1
edit_vend=项耱噔
file_desc=物桉囗桢
do_ver=洛瘃
slack_unclass=酿筱铋
edit_details=相疣戾蝠 相赍蜞
index_ftp=ftp 桦 http URL
do_details=相疣戾蝠 相赍蜞
debian_downgrade=青戾龛螯 眍恹 镟赍 犷脲 耱囵?
list_status=杨耱龛
file_pack=相赍
rpm_eroot=暑痦邂铋 赅蜞腩 '$1' 礤 耋耱怏弪
edit_title=绣溧牝桊钼囗桢 相赍蜞
edit_desc=物桉囗桢
edit_arch=鲤蹊蝈牝箴
search_none=湾
do_success=相赍 $1 篑蜞眍怆屙 篑镥
delete_epack=相赍 $1 礤 耋耱怏弪
index_title=橡钽疣祆睇 相赍螓
do_title=玉蜞眍怅 相赍蜞
index_close=砚屦眢螯 埋
edit_pack=相赍
do_efailed=硒栳赅 镳 篑蜞眍怅 : $1 
file_link=疡赅 磬
edit_return=镟疣戾蝠 镟赍蜞
file_path=象螯
file_group=灭箫镟
pkgadd_eroot=暑痦邂铋 赅蜞腩 '$1' 礤 耋耱怏弪
index_installmsg=蔓徨痂蝈 戾耱 潆 篑蜞眍怅 眍忸泐 镟赍蜞 $1 桤..
edit_uninst=愉嚯屙桢
install_eurl=湾桉麇痫帼 URL '$1'
list_path=象螯
delete_rusure=蔓 筲屦屙, 黩 恹 躅蜩蝈 箐嚯栩 镟赍 $1 ? $2 羿殡钼 ($3 徉轵) 狍潴 箐嚯屙 徨玮铉怵囹眍.
rpm_excludedocs=玉蜞眍忤螯 漕牦戾眚圉棹?
install_elocal=湾 溧 腩赅朦睇 羿殡
rpm_root=暑痦邂铋 赅蜞腩
list_files=脏殡 潆 相赍蜞 $1
index_identok=锐赅螯:
install_eupload=锣 狃囿珏 礤 镱滗屦骅忄眚 玎沭箸牦 羿殡钼
file_none=湾
install_elocal2='$1' 礤 耋耱怏弪
   0707010006d6a4000081a40000000000000002000000013ac0389600000e4e000000200000000000000000000000000000001a00000003reloc/software/lang/ru_SU index_title=鹨锨伊屯钨 鹆伺再
index_installed=跤粤蜗滋盼钨 鹆伺再
index_close=笞乓握载 饔
index_open=蛄谧乓握载 饔
index_search=鹣捎 鹆伺粤:
index_install=跤粤蜗姿 钕紫窍 鹆伺粤
index_installmsg=髻屡疑耘 团釉 奶 沼粤蜗姿 蜗紫窍 辛伺粤 $1 哨..
index_local=煜肆特蜗窍 屏侍
index_uploaded=且罩盼蜗窍 屏侍
index_ftp=ftp 商 http URL
index_installok=跤粤蜗咨载
index_ident=槟盼陨粕蒙蚁琢载 媪侍
index_identmsg=髯拍稍 讼土文 商 姓耘紫 赏 屏侍 奶 徘 邢捎肆  铝谂 牧挝偃 $1.
index_identok=橛肆载:
index_return=有捎纤 辛伺韵

search_title=鹣捎 鹆伺韵
search_nomatch=钆 辛伺韵 酉仔聊晾萆  $1
search_none=钆
search_desc=镄捎廖膳
search_class=胩劣
search_pack=鹆伺
search_match=鹆伺再 酉仔聊晾萆  $1

edit_title=蚺牧嗽梢献廖膳 鹆伺粤
edit_details=鹆伊团砸 鹆伺粤
edit_desc=镄捎廖膳
edit_pack=鹆伺
edit_class=胩劣
edit_none=钆
edit_ver=髋矣裳
edit_vend=鹣釉磷萆
edit_arch=嵋壬耘嗽找
edit_inst=跤粤蜗滋盼
edit_list=鹨嫌拖砸 媪侍献
edit_uninst=跄撂盼膳
edit_return=辛伊团砸 辛伺粤

list_title=媪侍 鹆伺粤
list_files=媪侍 奶 鹆伺粤 $1
list_path=鹫载
list_owner=魈聊盘琶
list_group=缫招辛
list_type=羯
list_size=蛄谕乓
list_status=笙釉涎紊

delete_err=镗陕肆 幸 漳撂盼缮 辛伺粤 $1
delete_epack=鹆伺 $1 闻 诱菖釉渍旁
delete_title=跄撂盼膳 鹆伺粤
delete_rusure=髻 兆乓盼, 拊 踪 认陨耘 漳撂稍 辛伺 $1 ? $2 屏侍献 ($3 铝试) 抡恼 漳撂盼 屡谧馅滓猎蜗.
delete_ok=跄撂稍

file_title=槲葡彝撩裳  媪侍
file_notfound=钆 晌葡彝撩缮  $1
file_path=鹫载
file_type=羯
file_perms=鹨磷
file_owner=魈聊盘琶
file_group=缫招辛
file_size=蛄谕乓
file_link=笥偬肆 瘟
file_pack=鹆伺
file_class=胩劣
file_desc=镄捎廖膳
file_none=钆

install_err=镗陕肆 幸 沼粤蜗姿 辛伺粤
install_elocal=钆 牧 滔肆特钨 屏侍
install_elocal2='$1' 闻 诱菖釉渍旁
install_eupload=髁 乱琳谂 闻 邢哪乓稚琢卧 诹且遮苏 屏侍献
install_eurl=钆捎夼倚僮晾萆 URL '$1'
install_edir=钆着椅偈 肆粤滔 $1
install_ezip=钆着椅偈 compress 商 gzip 屏侍 $1
install_efile=钆着椅偈 屏侍 $1
install_title=跤粤蜗姿 鹆伺粤
install_header=跤粤蜗姿 辛伺粤
install_packs=鹆伺再 奶 沼粤蜗姿
install_ok=跤粤蜗咨载

do_err=镗陕肆 幸 沼粤蜗姿 辛伺粤 $1
do_title=跤粤蜗姿 鹆伺粤
do_efailed=镗陕肆 幸 沼粤蜗姿 : $1 
do_efailedmsg1=髻 拖峙耘 邢匈粤载友 幸献庞陨 沼粤蜗姿 游献, 着椅兆凵迂 瘟 幸拍倌蛰绽 釉伊紊谜 踪乱磷 囊饲膳 沼粤蜗紫尬倥 辛伊团砸.
do_efailedmsg2=槲赁 <a href='$1'>瘟滞稍 永牧 奶 漳撂盼裳 滓磐盼蜗窍 屏侍 辛伺粤</a>, 拊下 衔 闻 诹紊土 团釉 瘟 纳铀.
do_success=鹆伺 $1 沼粤蜗滋盼 沼信畚
do_details=鹆伊团砸 鹆伺粤
do_class=胩劣
do_desc=镄捎廖膳
do_pack=鹆伺
do_ver=髋矣裳
do_vend=鹣釉磷萆
do_arch=嵋壬耘嗽找
do_inst=跤粤蜗滋盼
do_none=钆
do_files=媪侍 鹆伺粤

pkgadd_unknown=钆哨着釉盼
pkgadd_root=胂椅抛鲜 肆粤滔
pkgadd_eroot=胂椅抛鲜 肆粤滔 '$1' 闻 诱菖釉渍旁

rpm_upgrade=锫蜗咨载 辛伺?
rpm_replacepkgs=鹋遗猩恿载 辛伺?
rpm_nodeps=榍蜗疑蚁琢载 诹咨由拖釉?
rpm_oldpackage=团紊载 蜗渍 着矣衫 釉烈鲜?
rpm_noscripts=橛邢涛稍 晌釉撂萄蒙衔钨 用盼烈缮?
rpm_excludedocs=跤粤蜗咨载 南苏团卧撩衫?
rpm_replacefiles=鹋遗猩恿载 屏侍?
rpm_root=胂椅抛鲜 肆粤滔
rpm_eroot=胂椅抛鲜 肆粤滔 '$1' 闻 诱菖釉渍旁

bsd_unknown=钆哨着釉盼
bsd_scripts=髻邢涛言 南  邢犹-晌釉撂萄蒙衔钨 用盼烈缮?
bsd_force=嫦矣梢献猎 沼粤蜗姿, 牧峙 庞躺 闻 闻下认纳唾 沼滔咨?

slack_unclass=湟涨鲜
slack_unknown=钆哨着釉盼
slack_missing=鹣耘已
slack_root=胂椅抛鲜 肆粤滔
slack_eroot=钆 鬃拍盼 商 闻着椅偈 讼椅抛鲜 肆粤滔

debian_unknown=钆哨着釉盼
debian_depends=榍蜗疑蚁琢载 幸下膛唾  诹咨由拖釉淹?
debian_conflicts=榍蜗疑蚁琢载 讼纹躺嗽 辛伺韵?
debian_overwrite=鹋遗猩淤琢载 屏侍 哨 囊涨扇 辛伺韵?
debian_downgrade=团紊载 蜗踪 辛伺 孪膛 釉烈偻?

  0707010006d6a5000081a40000000000000002000000013ac038960000169d000000200000000000000000000000000000001700000003reloc/software/lang/sv    index_title=Programpaket
index_installed=Installerade paket
index_close=St鋘g allt
index_open=謕pna allt
index_search=S鰇 efter paket:
index_install=Installera ett nytt paket
index_installmsg=V鋖j varifr錸 du vill installera det nya paketet <tt>$1</tt>:
index_local=Fr錸 lokal fil
index_uploaded=Fr錸 nedladdad fil
index_ftp=Fr錸 ftp eller http, URL
index_installok=Installera
index_ident=Identifiera en fil
index_identmsg=Ange kommando eller s鰇v鋑en till en fil som systemet ska s鰇a efter i databasen <tt>$1</tt>.
index_identok=S鰇 efter:
index_return=paketlista

search_title=Pakets鰇ning
search_nomatch=Inget paket st鋗de med $1
search_none=Inget
search_desc=Beskrivning
search_class=Klass
search_pack=Paket
search_match=Paket som st鋗mer med $1
search_return=s鰇resultat

edit_title=膎dra paket
edit_details=Uppgifter om paket
edit_desc=Beskrivning
edit_pack=Paket
edit_class=Klass
edit_none=Ingen
edit_ver=Version
edit_vend=Leverant鰎
edit_arch=Arkitektur
edit_inst=Installerat
edit_list=Lista filer
edit_uninst=Avinstallera
edit_return=uppgifter om paket

list_title=Paketfiler
list_files=Filer tillh鰎ande paket $1
list_path=S鰇v鋑
list_owner=膅are
list_group=Grupp
list_type=Typ
list_size=Storlek
list_status=Status

delete_err=Det gick inte att ta bort paket $1
delete_epack=Paket $1 finns inte
delete_title=Ta bort paket
delete_rusure=Vill du verkligen ta bort paket $1? Upp till $2 filer ($3 bytes) kommer att raderas permanent.
delete_ok=Ta bort

file_title=Filinformation
file_notfound=Det finns ingen tillg鋘glig information om $1
file_path=S鰇v鋑
file_type=Typ
file_perms=R鋞tigheter
file_owner=膅are
file_group=Grupp
file_size=Storlek
file_link=L鋘k till
file_pack=Paket
file_class=Klass
file_desc=Beskrivning
file_none=Ingen

install_err=Det gick inte att installera paketet
install_elocal=Du har inte angivit n錱on lokal fil
install_elocal2='$1' finns inte
install_eupload=Din browser st鰀jer inte nedladdning av filer
install_eurl=URL:en '$1' 鋜 obegriplig
install_edir=Inte en giltig $1-katalog
install_ezip=Inte en giltig komprimerad eller gzippad $1-fil
install_efile=Inte en giltig $1-fil
install_title=Installera paket
install_header=Installera paket
install_packs=Paket som ska installeras
install_ok=Installera

do_err=Det gick inte att installera paket $1
do_title=Installera paket
do_efailed=Installationen misslyckades: $1
do_efailedmsg1=Du kan f鰎s鰇a att g鰎a om installationen genom att g tillbaka till f鰎eg錯nde sida och 鋘dra installationsinst鋖lningarna.
do_efailedmsg2=Annars kan du <a href='$1'>klicka h鋜</a> f鰎 att radera den tempor鋜a paketfilen f鰎 att spara diskutrymme.
do_success=Paket $1 har installerats
do_details=Uppgifter om paket
do_desc=Beskrivning
do_class=Klass
do_pack=Paket
do_ver=Version
do_vend=Leverant鰎
do_arch=Arkitektur
do_inst=Installerat
do_none=Inget
do_files=Paketfiler

pkgadd_root=Rotkatalog
pkgadd_eroot=Rotkatalog '$1' finns inte
pkgadd_unknown=Ok鋘d

rpm_upgrade=Uppgradera paket?
rpm_replacepkgs=Skriva 鰒er paket?
rpm_nodeps=Strunta i beroenden?
rpm_oldpackage=Byta ut en ny version mot en 鋖dre?
rpm_noscripts=Utf鰎a installationsscript?
rpm_excludedocs=Installera dokumentation?
rpm_replacefiles=Skriva 鰒er filer?
rpm_root=Rotkatalog
rpm_eroot=Rotkatalog '$1' finns inte

bsd_unknown=Ok鋘d
bsd_scripts=Utf鰎a pre- och postinstallationsscript?
bsd_force=Driva igenom installation 鋠en om n鰀v鋘diga f鰎uts鋞tningar ej 鋜 uppfyllda?

slack_unclass=講rig
slack_unknown=Ok鋘d
slack_missing=Saknas
slack_root=Rotkatalog
slack_eroot=Rotkatalog saknas eller 鋜 felaktigt angiven

debian_unknown=Ok鋘d
debian_depends=Strunta i beroendeproblem?
debian_conflicts=Strunta i paketkonflikter?
debian_overwrite=Skriva 鰒er filer fr錸 andra paket?
debian_downgrade=Byta ut nyare paket mot 鋖dre?

log_install_package=Installerade paket $1
log_install_apt_l=Installerade paket $1 fr錸 APT
log_install_apt=Installerade $2 paket fr錸 APT
log_check_apt_l=Uppgraderade paket $1 fr錸 APT
log_check_apt=Uppgraderade $2 paket fr錸 APT
log_delete=Avinstallerade paket $1

rhn_input=Paket fr錸 Redhat Network
rhn_install=Installerar paket med kommando $1 ...
rhn_ok=... installationen klar.
rhn_failed=... installationen misslyckades!
rhn_title=Ange RHN-paket
rhn_pack=Paket
rhn_version=Version
rhn_form=inst鋖lningar f鰎 Redhat Network
rhn_auto=Kontrollera automatiskt om uppgraderingar finns?
rhn_interval=Kontrollintervall
rhn_secs=sekunder
rhn_apply=Spara och ta i drift
rhn_now=Spara och kontrollera nu
rhn_err=Det gick inte att spara RHN-inst鋖lningarna
rhn_einterval=Intervallet saknas eller 鋜 felaktigt
rhn_einterval2=Kontrollintervallet m錽te vara minst 120 sekunder
rhn_check=Kontrollerar om det finns uppdateringar
rhn_checkdesc=Kontrollerar om det finns uppdaterade paket fr錸 Redhat Network med hj鋖p av kommandot $1 ...
rhn_nocheck=... inga paket uppdaterades.
rhn_proxy=Proxyserver-URL f鰎 nedladdning
rhn_none=Avslagen
rhn_eproxy=Proxyserver saknas eller 鋜 felaktigt angiven
rhn_skip=Hoppa 鰒er paket som matchar

apt_input=Paket fr錸 Debian APT
apt_install=Installerar paket med kommandot $1 ...
apt_ok=... installationen klar.
apt_failed=... installationen misslyckades!
apt_form=Uppgradera alla paket
apt_update=Synkronisera paketlistan (<tt>update</tt>)
apt_dist=Utf鰎 distributionsuppgradering (<tt>upgrade-dist</tt>)
apt_sim=Visa endast vilka paket som borde uppgraderas
apt_apply=Uppgradera nu
apt_upgrade=Uppgradera alla paket
apt_updatedesc=Synkroniserar paketlistan med kommandot $1 ...
apt_updatefailed=... synkroniseringen misslyckades!
apt_updateok=... synkroniseringen klar.
apt_upgradedesc=Uppgraderar alla paket med kommandot $1 ...
apt_upgradedescsim=Simulerar uppgradering av alla paket med kommandot $1 ...
apt_upgradefailed=... uppgraderingen mislyckades!
apt_upgradeok=... uppgraderingen klar.
   0707010006d6a6000081a40000000000000002000000013ac0389600000e58000000200000000000000000000000000000001700000003reloc/software/lang/tr    index_title=Yaz齦齧 Paketleri
index_installed=Kurulu Paketler
index_close=Hepsini Kapa
index_open=Hepsini A
index_search=Paketleri Ara:
index_install=Yeni bir paket kur
index_installmsg=Yeni bir $1 paketi kurmak i鏸n bir yer se鏸niz..
index_local=Yerel dosyadan
index_uploaded=Y黭lenen dosyadan
index_ftp=Ftp ya da http adresinden..
index_installok=Kur
index_ident=Bir dosyay tan齧la
index_identmsg=$1 veritaban arama i鏸n bir dosya ya da komut yolu giriniz..
index_identok=Ara:
index_return=paket listesi

search_title=Paket Ara
search_nomatch=Eenilen paket yok $1
search_none=Hi鏱iri
search_desc=A琮klama
search_class=S齨齠
search_pack=Paket
search_match=Paketler karla⺶齬齦齳or $1
search_return=arama sonu鏻ar

edit_title=Paketi De餴⺶ir
edit_details=Paket Ayr齨t齦ar
edit_desc=A琮klama
edit_pack=Paket
edit_class=S齨齠
edit_none=Hi鏱iri
edit_ver=S黵黰
edit_vend=Kurum
edit_arch=Mimari
edit_inst=Tarih
edit_list=Paketteki dosyalar listele
edit_uninst=Kald齬
edit_return=paket ayr齨t齦ar

list_title=Paket Dosyalar
list_files=$1 Paketi i鏸n Dosyalar
list_path=Yol
list_owner=Sahibi
list_group=Grup
list_type=Tip
list_size=Boyut
list_status=Durum

delete_err=$1 paketinin silinmesinde hata olu⺶u
delete_epack=$1 paketi mevcut de餴l
delete_title=Paketi Sil
delete_rusure=$1 paketini silmek istedi餴nizden eminmisiniz? $2 dosyalar($3 byte) silinecektir.
delete_ok=Sil

file_title=Dosya Bilgisi
file_notfound=$1 hakk齨da ulalabilir bilgi mevcut de餴l
file_path=Yol
file_type=Tip
file_perms=輟inler
file_owner=Sahibi
file_group=Grubu
file_size=Boyut
file_link=Link 
file_pack=Paket
file_class=S齨齠
file_desc=A琮klama
file_none=Hi鏱iri

install_err=Paket kurulumunda hata olu⺶u
install_elocal=Al齨an yerel dosya yok
install_elocal2='$1' mevcut de餴l
install_eupload=Taray齝齨齴 dosya y黭lemeleri kabul etmemektedir
install_eurl=Anlalmayan URL '$1'
install_edir=Ge鏴rli bir $1 dizini de餴l
install_ezip=Ge鏴rli bir s齥t齬齦m ya da gziplenmi dosya de餴l
install_efile=Ge鏴rli bir $1 dosyas de餴l
install_title=Paketi Kur
install_header=Paketi kur
install_packs=Paket(ler) kurulumu olmal齞齬
install_ok=Kur

do_err=$1 paketinin kurulmas齨da hata olu⺶u
do_title=Paketi Kur
do_efailed=Kurulum hatas: $1
do_efailedmsg1=Tekrar kurulum i鏸n bir 鰊ceki sayfaya geri d鰊黳 farkl kurulum se鏴nekleri se鏼elisiniz.
do_efailedmsg2=Olmazsa, disk alan a鏼ak i鏸n <a href='$1'>ge鏸ci paket dosyalar齨 silmek i鏸n buray t齥lay齨齴</a>
do_success=$1 paketi bar齳la kuruldu
do_details=Pakey Ayr齨t齦ar
do_desc=A琮klama
do_class=S齨齠
do_pack=Paket
do_ver=S黵黰
do_vend=Kurum
do_arch=Mimari
do_inst=Kuruldu
do_none=Hi鏱iri
do_files=Paket dosyalar

pkgadd_root=K鰇 dizini
pkgadd_eroot=Root dizini '$1' mevcut de餴l
pkgadd_unknown=Bilinmeyen

rpm_upgrade=Paketleri g黱celle?
rpm_replacepkgs=Paketleri 黶t黱e yaz?
rpm_nodeps=Gereklileri yoksay?
rpm_oldpackage=Yni s黵黰黱 eskisiyle de餴⺶ir?
rpm_noscripts=Kurulum programc齥lar齨 鏰lt齬?
rpm_excludedocs=D鰇黰antasyon kurulsun?
rpm_replacefiles=Dosyalar 鼁erine yaz?
rpm_root=Root dizini
rpm_eroot=Root dizini $1 mevcut de餴l

bsd_unknown=Bilinmeyen
bsd_scripts=謓 ve arka kurulum programc齥lar齨 鏰lt齬?
bsd_force=謓ceden gerekli olan dosyalar yok ise yine de kurulsun?

slack_unclass=Di餰ri
slack_unknown=Bilinmeyen
slack_missing=Kay齪
slack_root=Root dizini
slack_eroot=Kay齪 ya da yanl root dizini

debian_unknown=Bilinmeyen
debian_depends=Ba瘕ml齦齥 sorunlar齨 yoksay?
debian_conflicts=Paket 鏰kmalar齨 yoksay?
debian_overwrite=Di餰r paketlerin dosyalar齨 鼁erine yaz?
debian_downgrade=Eskisini daha yenisiyle de餴⺶ir?

log_install_package=$1 paketi kuruldu
log_delete=$1 paketi kald齬齦d

0707010006d6a7000081a40000000000000002000000013ac0389600000ad5000000200000000000000000000000000000001a00000003reloc/software/lang/zh_CN index_title=软件包
index_installed=安装软件包
index_close=全部关闭
index_open=o全部打开
index_search=寻找软件包:
index_install=安装新软件包
index_installmsg=选择安装新软件包 $1 的位置...
index_local=自本地文件
index_uploaded=自上传的文件
index_ftp=从ftp or http 的 URL
index_installok=安装
index_ident=校验一个文件
index_identmsg=输入文件的命令或路径搜索 $1 数据库.
index_identok=搜索:
index_return=文件包列表

search_title=文件包搜索
search_nomatch=没有文件包匹配 $1
search_none=没有
search_desc=描述
search_class=类
search_pack=软件包
search_match=软件包匹配 $1
search_return=搜索结果

edit_title=编辑软件包
edit_details=软件包明细
edit_desc=描述
edit_pack=软件包
edit_class=类
edit_none=无
edit_ver=版本
edit_vend=厂商
edit_arch=技术
edit_inst=安装
edit_list=列表文件
edit_uninst=删除
edit_return=软件包明细

list_title=软件包文件
list_files=软件包 $1 的文件
list_path=路径
list_owner=所有者
list_group=小组
list_type=类型
list_size=大小
list_status=状态

delete_err=删除软件包 $1 失败
delete_epack=软件包 $1 不存在
delete_title=删除软件包
delete_rusure=确定删除软件包 $1 ? 直到 $2 文件 ($3 字节) 将永久删除.
delete_ok=删除

file_title=文件信息
file_notfound=没有 $1 的有关信息
file_path=路径
file_type=类型
file_perms=许可
file_owner=所有者
file_group=小组
file_size=大小
file_link=联接到
file_pack=软件包
file_class=类
file_desc=描述
file_none=无

install_err=安装软件包失败
install_elocal=没有给出本地文件
install_elocal2='$1' 不存在
install_eupload=浏缆器不支持文件上传功能
install_eurl=错误的 URL '$1'
install_edir=非法路径 $1 
install_ezip=错误的压缩文件$1
install_efile=非法文件 $1 
install_title=安装软件包
install_header=安装软件包
install_packs=即将安装的软建包
install_ok=安装

do_err=安装软件包 $1 失败
do_title=安装软件包
do_efailed=安装失败 : $1
do_efailedmsg1=可以返回前页选择不同选项重新安装
do_efailedmsg2=否则, <a href='$1'>点击这里删除临时文件</a>节省磁盘空间
do_success=软件包 $1 安装成功
do_details=软件包明细
do_desc=描述
do_class=类
do_pack=软件包
do_ver=版本
do_vend=厂商
do_arch=技术
do_inst=安装
do_none=无
do_files=软件包文件

pkgadd_root=根目录
pkgadd_eroot=根目录 '$1' 不存在
pkgadd_unknown=未知

rpm_upgrade=软件包更新?
rpm_replacepkgs=覆盖软件包?
rpm_nodeps=忽略依赖性?
rpm_oldpackage=替换旧版本?
rpm_noscripts=执行安装吗?
rpm_excludedocs=安装文挡?
rpm_replacefiles=覆盖文件?
rpm_root=根目录
rpm_eroot=根目录'$1' 不存在

bsd_unknown=未知
bsd_scripts=执行预安装和提交安装描述?
bsd_force=如果丢失前导信息强行安装?

slack_unclass=其它
slack_unknown=未知
slack_missing=丢失
slack_root=根目录
slack_eroot=没有或非法的根目录

debian_unknown=未知
debian_depends=忽略依赖性问题?
debian_conflicts=忽略软件包混乱?
debian_overwrite=用另外的软件包覆盖文件?
debian_downgrade=覆盖旧的软件包?

log_install_package=安装软件包 $1
log_delete=删除软件包 $1

   0707010006d6a8000081a40000000000000002000000013ac0389600000b49000000200000000000000000000000000000001f00000003reloc/software/lang/zh_TW.Big5    index_title=硁砰甅ン
index_installed=竒杆甅ン
index_close=闽超场
index_open=秨币场
index_search=穓碝甅ン:
index_install=杆穝甅ン
index_installmsg=匡拒杆穝 $1 甅ン﹍竚...
index_local=眖セ狠郎
index_uploaded=眖肚郎
index_ftp=眖 FTP ┪ HTTP URL
index_installok=杆
index_ident=粄郎
index_identmsg=块㏑┪郎隔畖穓碝 $1 戈畐.
index_identok=т碝ヘ夹:
index_return=甅ン

search_title=甅ン穓碝
search_nomatch=⊿Τ甅ン才 '$1'
search_none=礚
search_desc=磞瓃
search_class=だ摸
search_pack=甅ン
search_match=甅ン才 '$1'

edit_title=絪胯甅ン
edit_details=絪胯冈灿戈
edit_desc=磞瓃
edit_pack=甅ン
edit_class=だ摸
edit_none=礚
edit_ver=セ
edit_vend=紅坝
edit_arch=巨キ
edit_inst=杆
edit_list=郎
edit_uninst=秆埃杆
edit_return=甅ン冈灿戈

list_title=甅ン郎
list_files=甅ン $1 郎
list_path=隔畖
list_owner=局Τ
list_group=竤舱
list_type=摸
list_size=
list_status=篈

delete_err=礚猭埃甅ン $1
delete_epack=甅ン $1 ぃ
delete_title=埃甅ン
delete_rusure=眤絋﹚璶埃甅ン $1 盾? 羆Τ $2 郎 ($3 じ舱) 盢穦砆ッ环埃.
delete_ok=絋﹚埃

file_title=郎戈癟
file_notfound=⊿Τ闽 $1 郎戈癟
file_path=隔畖
file_type=摸
file_perms=舦
file_owner=局Τ
file_group=竤舱
file_size=
file_link=硈挡
file_pack=甅ン
file_class=だ摸
file_desc=磞瓃
file_none=礚

install_err=礚猭杆甅ン
install_elocal=⊿Τ矗ㄑセ狠郎
install_elocal2='$1' ぃ
install_eupload=眤聅凝竟ぃや穿郎肚
install_eurl=礚猭瞶秆 URL '$1'
install_edir=ぃ琌Τ $1 ヘ魁
install_ezip=ぃ琌Τ溃罽郎┪ gzip $1 郎
install_efile=ぃ琌Τ $1 郎
install_title=杆甅ン
install_header=杆甅ン
install_packs=璶砆杆甅ン
install_ok=杆

do_err=礚猭杆甅ン $1
do_title=杆甅ン
do_efailed=杆ア毖: $1
do_efailedmsg1=眤刚帝玡匡拒ぃ杆匡兜穝杆Ω.
do_efailedmsg2=ぃ礛杠, <a href='$1'>硂ㄠ埃既甅ン郎</a>竊合盒丁.
do_success=甅ン $1 Θ砆杆
do_details=甅ン冈灿戈
do_desc=磞瓃
do_class=だ摸
do_pack=甅ン
do_ver=セ
do_vend=紅坝
do_arch=巨キ
do_inst=杆
do_none=礚
do_files=甅ン郎

pkgadd_root=ヘ魁
pkgadd_eroot=ヘ魁 '$1' ぃ
pkgadd_unknown=ゼ

rpm_upgrade=琌璶狜甅ン?
rpm_replacepkgs=琌璶籠糶甅ン?
rpm_nodeps=琌┛菠ㄌ┦?
rpm_oldpackage=琌ノ耕侣郎耕穝?
rpm_noscripts=琌磅︽㏑催絑?
rpm_excludedocs=琌杆ゅン?
rpm_replacefiles=琌籠糶郎?
rpm_root=ヘ魁
rpm_eroot=ヘ魁 '$1' ぃ

bsd_unknown=ゼ
bsd_scripts=琌磅︽ 箇/竚 杆㏑絑?
bsd_force=狦框ア玡竚璶―, 琌眏杆?

slack_unclass=ㄤ
slack_unknown=ゼ
slack_missing=框ア
slack_root=ヘ魁
slack_eroot=框ア┪岿粇ヘ魁

debian_unknown=ゼ
debian_depends=琌┛菠ㄌ┦拜肈?
debian_conflicts=琌┛菠甅ン侥?
debian_overwrite=琌籠糶ㄓㄤ甅ン郎?
debian_downgrade=琌ノ耕穝甅ン耕侣?

   07070100069338000081e40000000000000002000000013ac03895000006ef000000200000000000000000000000000000001d00000003reloc/software/list_pack.cgi  #!/usr/local/bin/perl
# list_pack.cgi
# List all the files in some package

require './software-lib.pl';
&ReadParse();
&header($text{'list_title'}, "", "list_pack");
print "<hr>\n";

print "<h3>",&text('list_files', "<tt>$in{'package'}</tt>"),"</h3>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'list_path'}</b></td> ",
      "<td><b>$text{'list_owner'}</b></td> ",
      "<td><b>$text{'list_group'}</b></td> ",
      "<td><b>$text{'list_type'}</b></td> ",
      "<td><b>$text{'list_size'}</b></td> ",
      "<td><b>$text{'list_status'}</b></td> </tr>\n";
$n = &check_files($in{'package'});
for($i=0; $i<$n; $i++) {
	$sz = $files{$i,'size'};
	$ty = $files{$i,'type'};
	print "<tr $cb>\n";
	$ls = "<a href=\"file_info.cgi?file=".&urlize($files{$i,'path'})."\">";
	$le = "</a>";
	if ($ty == 3 || $ty == 4) {
		print "<td valign=top>$ls$files{$i,'path'} -> ",
		      "$files{$i,'link'}$le</td>\n";
		print "<td><br></td> <td><br></td>\n";
		}
	else {
		print "<td valign=top>$ls$files{$i,'path'}$le</td>\n";
		print "<td valign=top>$files{$i,'user'}</td>\n";
		print "<td valign=top>$files{$i,'group'}</td>\n";
		}
	print "<td valign=top>$type_map[$ty]</td>\n";
	if ($ty != 0) { $sz = "<br>"; }
	elsif ($sz > 1000000) { $sz = sprintf "%d MB", $sz/1000000; }
	elsif ($sz > 1000) { $sz = sprintf "%d kB", $sz/1000; }
	else { $sz .= " B"; }
	print "<td valign=top>$sz</td>\n";
	$err = $files{$i,'error'};
	if ($err) {
		$err =~ s/</&lt;/g;
		$err =~ s/>/&gt;/g;
		$err =~ s/\n/<br>/g;
		print "<td valign=top><font color=#ff0000>$err</font></td>\n";
		}
	else { print "<td valign=top>$text{'list_ok'}</td>\n"; }
	print "</tr>\n";
	}
print "</table><p>\n";

print "<hr>\n";
&footer("edit_pack.cgi?package=".&urlize($in{'package'}), $text{'edit_return'});

 07070100069339000081a40000000000000002000000013ac038960000037d000000200000000000000000000000000000001d00000003reloc/software/log_parser.pl  # log_parser.pl
# Functions for parsing this module's logs

require './software-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p, $long) = @_;
if ($action eq 'install') {
	return &text("log_install_package", "<tt>$object</tt>");
	}
elsif ($action eq 'apt') {
	local @p = split(/\0/, $p->{'packages'});
	return &text($long || @p < 2 ? "log_${type}_apt_l" : "log_${type}_apt",
		     "<tt>".join(" ",@p)."</tt>", scalar(@p));
	}
elsif ($action eq 'rhn') {
	local @p = @{$p->{'packages'}};
	return &text($long || @p < 2 ? "log_${type}_rhn_l" : "log_${type}_rhn",
		     "<tt>".join(" ",@p)."</tt>", scalar(@p));
	}
elsif ($action eq 'delete') {
	return &text('log_delete', "<tt>$object</tt>");
	}
else {
	return undef;
	}
}

   0707010006933a000081a40000000000000002000000013ac03896000002a5000000200000000000000000000000000000001b00000003reloc/software/module.info    desc_zh_CN=软件包
name=PackageAdmin
desc_pt=Pacotes de Software
desc_tr=Yaz齦齧 Paketleri
desc_fr=Composants Logiciels
desc_es=Paquetes de Software
desc_sv=Programpaket
desc_de=Software Pakete
desc_hu=Szoftver csomagok
desc_ru_SU=砼闻闹乓 痫
desc_pl=Pakiety oprogramowania
category=system
os_support=solaris redhat-linux suse-linux hpux open-linux openserver unixware freebsd/3.0 freebsd/3.1 freebsd/3.2 freebsd/3.3 freebsd/4.0 slackware-linux/4.0 slackware-linux/7.0 slackware-linux/7.1 debian-linux/2.0 debian-linux/2.1 debian-linux/2.2 turbo-linux openbsd corel-linux cobalt-linux freebsd/5.0
desc_zh_TW.Big5=硁砰甅ン
desc=Software Packages
risk=high
desc_ru_RU=体礤滏屦 衔
   0707010006933b000081e40000000000000002000000013ac03896000000fd000000200000000000000000000000000000001800000003reloc/software/open.cgi   #!/usr/local/bin/perl
# open.cgi
# Add some class to the open list

require './software-lib.pl';
&ReadParse();
open(HEIROPEN, ">> $module_config_directory/heiropen");
print HEIROPEN "$in{'what'}\n";
close(HEIROPEN);
&redirect("index.cgi#$in{'what'}");

   0707010006933c000081e40000000000000002000000013ac03896000001a3000000200000000000000000000000000000001b00000003reloc/software/openall.cgi    #!/usr/local/bin/perl
# openall.cgi
# Add all classes to the open list

require './software-lib.pl';
open(HEIROPEN, "> $module_config_directory/heiropen");
$n = &list_packages();
for($i=0; $i<$n; $i++) {
	@w = split(/\//, $packages{$i,'class'});
	for($j=0; $j<@w; $j++) {
		push(@list, join('/', @w[0..$j]));
		}
	}
@list = &unique(@list);
foreach $c (@list) { print HEIROPEN "$c\n"; }
close(HEIROPEN);
&redirect("");

 0707010006933d000081a40000000000000002000000013ac03896000011a7000000200000000000000000000000000000001e00000003reloc/software/openbsd-lib.pl # openbsd-lib.pl
# Functions for OpenBSD package management

use POSIX;
chop($system_arch = `uname -m`);
$package_dir = "/var/db/pkg";

# list_packages([package]*)
# Fills the array %packages with a list of all packages
sub list_packages
{
local $i = 0;
local $arg = @_ ? join(" ", @_) : "-a";
open(PKGINFO, "pkg_info -I $arg |");
while(<PKGINFO>) {
	if (/^(\S+)\s+(.*)/) {
		$packages{$i,'name'} = $1;
		$packages{$i,'class'} = "";
		$packages{$i,'desc'} = $2;
		$i++;
		}
	}
close(PKGINFO);
return $i;
}

# package_info(package)
# Returns an array of package information in the order
#  name, class, description, arch, version, vendor, installtime
sub package_info
{
local $out = `pkg_info $_[0] 2>&1`;
return () if ($?);
local @rv = ( $_[0] );
push(@rv, "");
push(@rv, $out =~ /Description:\n([\0-\177]*\S)/i ? $1 : $text{'bsd_unknown'});
push(@rv, $system_arch);
push(@rv, $_[0] =~ /-([^\-]+)$/ ? $1 : $text{'bsd_unknown'});
push(@rv, "OpenBSD");
local @st = stat("$package_dir/$_[0]");
push(@rv, @st ? ctime($st[9]) : $text{'bsd_unknown'});
return @rv;
}

# check_files(package)
# Fills in the %files array with information about the files belonging
# to some package. Values in %files are  path type user group mode size error
sub check_files
{
local $i = 0;
local $file;
open(PKGINFO, "pkg_info -L $_[0] |");
while($file = <PKGINFO>) {
	$file =~ s/\r|\n//g;
	next if ($file !~ /^\//);
	local @st = stat($file);
	$files{$i,'path'} = $file;
	$files{$i,'type'} = -l $file ? 3 :
			    -d $file ? 1 : 0;
	$files{$i,'user'} = getpwuid($st[4]);
	$files{$i,'group'} = getgrgid($st[5]);
	$files{$i,'mode'} = sprintf "%o", $st[2] & 07777;
	$files{$i,'size'} = $st[7];
	$files{$i,'link'} = readlink($file);
	$i++;
	}
return $i;
}

# installed_file(file)
# Given a filename, fills %file with details of the given file and returns 1.
# If the file is not known to the package system, returns 0
# Usable values in %file are  path type user group mode size packages
sub installed_file
{
local (%packages, $file, $i, @pkgin);
local $n = &list_packages();
for($i=0; $i<$n; $i++) {
	open(PKGINFO, "pkg_info -L $packages{$i,'name'} |");
	while($file = <PKGINFO>) {
		$file =~ s/\r|\n//g;
		if ($file eq $_[0]) {
			# found it
			push(@pkgin, $packages{$i,'name'});
			}
		}
	close(PKGINFO);
	}
if (@pkgin) {
	local @st = stat($_[0]);
	$file{'path'} = $_[0];
	$file{'type'} = -l $_[0] ? 3 :
			-d $_[0] ? 1 : 0;
	$file{'user'} = getpwuid($st[4]);
	$file{'group'} = getgrgid($st[5]);
	$file{'mode'} = sprintf "%o", $st[2] & 07777;
	$file{'size'} = $st[7];
	$file{'link'} = readlink($_[0]);
	$file{'packages'} = join(" ", @pkgin);
	return 1;
	}
else {
	return 0;
	}
}

# is_package(file)
sub is_package
{
local ($desc, $contents);
open(TAR, "gunzip -c $_[0] | tar tf - |");
while(<TAR>) {
	$desc++ if (/^\+DESC/);
	$contents++ if (/^\+CONTENTS/);
	}
close(TAR);
return $desc && $contents;
}

# file_packages(file)
# Returns a list of all packages in the given file, in the form
#  package description
sub file_packages
{
local $temp = &tempname();
mkdir($temp, 0700);
system("cd $temp ; gunzip -c $_[0] | tar xf - +CONTENTS +COMMENT >/dev/null 2>&1");
local ($comment, $name);
open(COMMENT, "$temp/+COMMENT");
($comment = <COMMENT>) =~ s/\r|\n//g;
close(COMMENT);
open(CONTENTS, "$temp/+CONTENTS");
while(<CONTENTS>) {
	$name = $1 if (/^\@name\s+(\S+)/);
	}
close(CONTENTS);
unlink("$temp/+COMMENT", "$temp/+CONTENTS");
rmdir($temp);
return ( "$name $comment" );
}

# install_options(file, package)
# Outputs HTML for choosing install options
sub install_options
{
print "<tr> <td><b>$text{'bsd_scripts'}</b></td>\n";
print "<td><input type=radio name=scripts value=0 checked> $text{'yes'}\n";
print "<input type=radio name=scripts value=1> $text{'no'}</td>\n";

print "<td><b>$text{'bsd_force'}</b></td>\n";
print "<td><input type=radio name=force value=1> $text{'yes'}\n";
print "<input type=radio name=force value=0 checked> $text{'no'}</td> </tr>\n";
}

# install_package(file, package)
# Installs the package in the given file, with options from %in
sub install_package
{
local $args = ($in{"scripts"} ? " -I" : "").
	      ($in{"force"} ? " -f" : "");
local $out = &backquote_logged("pkg_add $args $_[0] 2>&1");
if ($?) {
	return "<pre>$out</pre>";
	}
return undef;
}

# delete_package(package)
# Totally remove some package
sub delete_package
{
local $out = &backquote_logged("pkg_delete $_[0] 2>&1");
if ($?) { return "<pre>$out</pre>"; }
return undef;
}

sub package_system
{
return &text('bsd_manager', "OpenBSD");
}



1;
 0707010006933e000081a40000000000000002000000013ac03896000018f7000000200000000000000000000000000000001d00000003reloc/software/pkgadd-lib.pl  # pkgadd-lib.pl
# Functions for solaris package management

&foreign_require("proc", "proc-lib.pl");

# list_packages([package]*)
# Fills the array %packages with a list of all packages
sub list_packages
{
local($_, $list, $i); $i = 0;
$list = join(' ', @_);
open(PKGINFO, "pkginfo $list |");
while(<PKGINFO>) {
	if (/^(\S+)\s+(\S+)\s+(.*)$/) {
		$packages{$i,'name'} = $2;
		$packages{$i,'class'} = $1;
		$packages{$i,'desc'} = $3;
		$i++;
		}
	}
close(PKGINFO);
return $i;
}

# package_info(package)
# Returns an array of package information in the order
#  name, class, description, arch, version, vendor, installtime
sub package_info
{
local($out, @rv);
$out = `pkginfo -l $_[0] 2>&1`;
if ($out =~ /^ERROR:/) { return (); }
push(@rv, $_[0]);
push(@rv, $out =~ /CATEGORY:\s+(.*)\n/ ? $1 : "");
push(@rv, $out =~ /DESC:\s+(.*)\n/ ? $1 :
	  $out =~ /NAME:\s+(.*)\n/ ? $1 : $_[0]);
push(@rv, $out =~ /ARCH:\s+(.*)\n/ ? $1 : $text{'pkgadd_unknown'});
push(@rv, $out =~ /VERSION:\s+(.*)\n/ ? $1 : $text{'pkgadd_unknown'});
push(@rv, $out =~ /VENDOR:\s+(.*)\n/ ? $1 : $text{'pkgadd_unknown'});
push(@rv, $out =~ /INSTDATE:\s+(.*)\n/ ? $1 : $text{'pkgadd_unknown'});
return @rv;
}

# is_package(file)
# Tests if some file is a valid package file
sub is_package
{
local ($ph, $ppid) = &foreign_call("proc", "pty_process_exec",
				   "pkgadd", "-d", $_[0]);
$rv = &wait_for($ph, 'ERROR', 'Select package|more choices');
close($ph);
return $rv;
}

# file_packages(file)
# Returns a list of all packages in the given file, in the form
#  package description
sub file_packages
{
local ($ph, $ppid) = &foreign_call("proc", "pty_process_exec",
				   "pkgadd", "-d", $_[0]);
&wait_for($ph, 'available:');
while($rv = &wait_for($ph, 'Select package',
			   '\r?\n\s+(\d+)\s+(\S+)\s+(.*)\r?\n',
			   'more choices.*:')) {
        if ($rv == 1) { push(@rv, "$matches[2] $matches[3]"); }
        else { &sysprint($ph, "\n"); }
	}
close($ph);
return @rv;
}

# install_options(file, package)
# Outputs HTML for choosing install options
sub install_options
{
print "<tr> <td>",&hlink("<b>$text{'pkgadd_root'}</b>","root"),"</td>\n";
print "<td colspan=3><input name=root size=30 value=/>\n";
print &file_chooser_button("root", 1); print "</td> </tr>\n";
}

# install_package(file, package)
# Installs the package in the given file, with options from %in
sub install_package
{
local(@opts, %seen, $wf, $rv, $old_input);
if ($in{'root'} =~ /^\/.+/) {
	if (!(-d $in{'root'})) { &error(&text('pkgadd_eroot', $in{'root'})); }
	@opts = ("-R", $in{'root'});
	}
local ($ph, $ppid) = &foreign_call("proc", "pty_process_exec_logged",
				   "pkgadd", "-d", $_[0], @opts, $_[1]);
while(1) {
	$wf = &wait_for($ph, '(.*) \[\S+\]',
			     'Installation of \S+ failed',
			     'Installation of \S+ was successful',
			     'No changes were made to the system');
	if ($wf == 0) {
		# some question which should not have appeared before
		if ($seen{$matches[1]}++) {
			$rv = "<pre>$old_input$wait_for_input</pre>";
			last;
			}
		&sysprint($ph, "y\n");
		}
	elsif ($wf == 1 || $wf == 3) {
		# failed for some reason.. give up
		$rv = "<pre>$old_input$wait_for_input</pre>";
		last;
		}
	elsif ($wf == 2) {
		# done ok!
		$rv = undef;
		last;
		}
	$old_input = $wait_for_input;
	}
close($ph);
return $rv;
}


# check_files(package)
# Fills in the %files array with information about the files belonging
# to some package. Values in %files are  path type user group mode size error
sub check_files
{
local($i, %errs, $curr, $line, %file);
undef(%files);
$chk = `pkgchk -n $_[0] 2>&1`;
while($chk =~ /^(\S+): (\S+)\n((\s+.*\n)+)([\0-\177]*)$/) {
	if ($1 eq "ERROR") { $errs{$2} = $3; }
	$chk = $5;
	}

open(CHK, "pkgchk -l $_[0] 2>&1 |");
FILES: for($i=0; 1; $i++) {
	# read one package
	$curr = "";
	while(1) {
		if (!($line = <CHK>)) { last FILES; }
		if ($line =~ /Current status/) { $line = <CHK>; last; }
		$curr .= $line;
		}

	# extract information
	&parse_pkgchk($curr);
	foreach $k (keys %file) { $files{$i,$k} = $file{$k}; }
	$files{$i,'error'} = $errs{$files{$i,'path'}};
	}
close(CHK);
return $i;
}

# installed_file(file)
# Given a filename, fills %file with details of the given file and returns 1.
# If the file is not known to the package system, returns 0
# Usable values in %file are  path type user group mode size packages
sub installed_file
{
$temp = &tempname();
open(TEMP, "> $temp");
print TEMP "$_[0]\n";
close(TEMP);

$out = `pkgchk -l -i $temp 2>&1`;
unlink($temp);
if ($out =~ /\S/) {
	&parse_pkgchk($out);
	return 1;
	}
else { return 0; }
}

# delete_package(package)
# Totally remove some package
sub delete_package
{
local($ph, $pth, $ppid, $wf, %seen, $old_input);
local ($ph, $ppid) = &foreign_call("proc", "pty_process_exec_logged",
				   "pkgrm", $_[0]);
if (&wait_for($ph, 'remove this package', 'ERROR')) {
	return "package does not exist";
	}
&sysprint($ph, "y\n");
while(1) {
	$wf = &wait_for($ph, '(.*) \[\S+\]',
			     'Removal of \S+ failed',
			     'Removal of \S+ was successful');
	if ($wf == 0) {
		# some question which should not have appeared before
		if ($seen{$matches[1]}++) {
			$rv = "<pre>$old_input$wait_for_input</pre>";
			last;
			}
		&sysprint($ph, "y\n");
		}
	elsif ($wf == 1) {
		# failed for some reason.. give up
		$rv = "<pre>$old_input$wait_for_input</pre>";
		last;
		}
	elsif ($wf == 2) {
		# done ok!
		$rv = undef;
		last;
		}
	$old_input = $wait_for_input;
	}
close($ph);
return $rv;
}

# parse_pkgchk(output)
# Parse output about one file from pkgchk into the array %file
sub parse_pkgchk
{
undef(%file);
if ($_[0] =~ /Pathname:\s+(.*)/) { $file{'path'} = $1; }
if ($_[0] =~ /Type:\s+(.*)/) {
	$file{'type'} = $1 eq "regular file" ? 0 :
			$1 eq "directory" ? 1 :
			$1 eq "special file" ? 2 :
			$1 eq "symbolic link" ? 3 :
			$1 eq "linked file" ? 4 :
			$1 eq "volatile file" ? 5 :
			$1 eq "editted file" ? 5 :
			$1 eq "edited file" ? 5 :
			-1;
	}
if ($_[0] =~ /Source of link:\s+(\S+)/) { $file{'link'} = $1; }
if ($_[0] =~ /Expected owner:\s+(\S+)/) { $file{'user'} = $1; }
if ($_[0] =~ /Expected group:\s+(\S+)/) { $file{'group'} = $1; }
if ($_[0] =~ /Expected mode:\s+(\S+)/) { $file{'mode'} = $1; }
if ($_[0] =~ /size \(bytes\):\s+(\d+)/) { $file{'size'} = $1; }
if ($_[0] =~ /following packages:\n(((\s+.*\n)|\n)+)/)
	{ $file{'packages'} = join(' ', split(/\s+/, $1)); }
}


sub package_system
{
return $text{'pkgadd_manager'};
}

1;

 0707010006933f000081a40000000000000002000000013ac0389600000c47000000200000000000000000000000000000001a00000003reloc/software/rhn-lib.pl # rhn-lib.pl
# Functions for installing packages from the redhat network

$up2date_config = "/etc/sysconfig/rhn/up2date";
$rhn_sysconfig = "/etc/sysconfig/rhn/rhnsd";

# update_system_input()
# Returns HTML for entering a package to install
sub update_system_input
{
return "$text{'rhn_input'} <input name=update size=20> <input type=button onClick='window.ifield = document.forms[1].update; chooser = window.open(\"rhn.cgi\", \"chooser\", \"toolbar=no,menubar=no,scrollbars=yes,width=300,height=300\")' value=\"...\">";
}

# update_system_install()
# Install some package with up2date
sub update_system_install
{
local @rv;
print "<b>",&text('rhn_install', "<tt>up2date $in{'update'}</tt>"),"</b><p>\n";
print "<pre>";
&additional_log('exec', undef, "up2date \"$in{'update'}\"");
open(CMD, "up2date \"$in{'update'}\" 2>&1 |");
while(<CMD>) {
	while(s/^[^\015]+\015([^\012])/$1/) { }
	if (/installing.*\/([^\/\s]+)\-([^\-]+)\-([^\-]+)\.rpm/i) {
		push(@rv, $1);
		}
	print;
	}
close(CMD);
print "</pre>\n";
if ($?) { print "<b>$text{'rhn_failed'}</b><p>\n"; }
else { print "<b>$text{'rhn_ok'}</b><p>\n"; }
return @rv;
}

# update_system_form()
# Show a form for configuring the redhat update agent
sub update_system_form
{
print "<h3>$text{'rhn_form'}</h3>\n";
print "<form action=rhn_check.cgi>\n";
print "<table>\n";

local $auto = &check_on_boot("rhnsd");
print "<tr> <td><b>$text{'rhn_auto'}</b></td>\n";
printf "<td><input type=radio name=auto value=1 %s> %s\n",
	$auto ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=auto value=0 %s> %s</td> </tr>\n",
	$auto ? '' : 'checked', $text{'no'};

local %rhnsd;
&read_env_file($rhn_sysconfig, \%rhnsd);
print "<tr> <td><b>$text{'rhn_interval'}</b></td>\n";
print "<td><input name=interval size=5 value='$rhnsd{'INTERVAL'}'> ",
      "$text{'rhn_secs'}</td> </tr>\n";

local $conf = &read_up2date_config();
print "<tr> <td><b>$text{'rhn_proxy'}</b></td>\n";
printf "<td><input type=radio name=proxy_on value=0 %s> %s\n",
	$conf->{'enableProxy'}->{'value'} ? '' : 'checked', $text{'rhn_none'};
printf "<input type=radio name=proxy_on value=1 %s> %s\n",
	$conf->{'enableProxy'}->{'value'} ? 'checked' : '';
printf "<input name=proxy size=40 value='%s'></td> </tr>\n",
	$conf->{'pkgProxy'}->{'value'};

print "<tr> <td valign=top><b>$text{'rhn_skip'}</b></td>\n";
print "<td><textarea name=skip rows=3 cols=40>",
      join("\n", split(/;/, $conf->{'pkgSkipList'}->{'value'})),
      "</textarea></td> </tr>\n";

print "</table>\n";
print "<input type=submit value='$text{'rhn_apply'}'>\n";
print "<input type=submit name=now value='$text{'rhn_now'}'></form>\n";
}

# read_up2date_config()
sub read_up2date_config
{
local %conf;
local $lnum = 0;
open(CONF, $up2date_config);
while(<CONF>) {
	s/\r|\n//g; s/#.*$//;
	if (/^([^=\s]+)=(.*)$/) {
		$conf{$1} = { 'name' => $1,
			      'value' => $2,
			      'line' => $lnum };
		}
	$lnum++;
	}
close(CONF);
return \%conf;
}

# save_up2date_config(&config, name, value)
sub save_up2date_config
{
local $lref = &read_file_lines($up2date_config);
local $old = $_[0]->{$_[1]};
if ($old) {
	$lref->[$old->{'line'}] = "$_[1]=$_[2]";
	}
}

1;

 07070100069340000081e40000000000000002000000013ac0389600000449000000200000000000000000000000000000001700000003reloc/software/rhn.cgi    #!/usr/local/bin/perl
# rhn.cgi
# Display a list of packages available for download from RHN

require './software-lib.pl';
$bgcolor = defined($gconfig{'cs_page'}) ? $gconfig{'cs_page'} : "ffffff";
$link = defined($gconfig{'cs_link'}) ? $gconfig{'cs_link'} : "0000ee";
$text = defined($gconfig{'cs_text'}) ? $gconfig{'cs_text'} : "000000";
&PrintHeader();
print <<EOF;
<html>
<head><title>$text{'rhn_title'}</title>
<script>
function sel(p)
{
window.opener.ifield.value = p;
window.close();
return false;
}
</script>
</head><body bgcolor=#$bgcolor link=#$link vlink=#$link text=#$text>
EOF

print "<table width=100%>\n";
print "<tr> <td><b>$text{'rhn_pack'}</b></td> ",
      "<td colspan=2 align=right><b>$text{'rhn_version'}</b></td> </tr>\n";
open(UP, "up2date -l |");
while(<UP>) {
	if ($dashes && /^(\S+)\s+(\S+)\s+(\S+)\s*$/) {
		print "<tr>\n";
		print "<td><a href='' onClick='sel(\"$1\")'>$1</a></td>\n";
		print "<td align=right>$2</td>\n";
		print "<td width=5% nowrap>- $3</td>\n";
		print "</tr>\n";
		}
	elsif (/^----/) { $dashes++; }
	}
close(UP);
print "</table></body></html>\n";

   07070100069341000081a40000000000000002000000013ac03896000006e8000000200000000000000000000000000000001d00000003reloc/software/rhn_check.cgi  #!/usr/local/bin/perl
# rhn_check.cgi
# Save redhat network checking options

require './software-lib.pl';
&ReadParse();
&error_setup($text{'rhn_err'});
$conf = &read_up2date_config();

# Validate inputs
$in{'interval'} =~ /^\d+$/ || &error($text{'rhn_einterval'});
$in{'interval'} >= 120 || &error($text{'rhn_einterval2'});
!$in{'proxy_on'} && $in{'proxy'} eq '' ||
	$in{'proxy'} =~ /^http:\/\/\S+$/ || &error($text{'rhn_eproxy'});
@skip = split(/\s+/, $in{'skip'});

# Save and apply
&save_up2date_config($conf, "enableProxy", $in{'proxy_on'});
&save_up2date_config($conf, "pkgProxy", $in{'proxy'});
&save_up2date_config($conf, "pkgSkipList", join(";", @skip));
&flush_file_lines();
&read_env_file($rhn_sysconfig, \%rhnsd);
$rhnsd{'INTERVAL'} = $in{'interval'};
&write_env_file($rhn_sysconfig, \%rhnsd);
if ($in{'auto'}) {
	&enable_on_boot("rhnsd");
	}
else {
	&disable_on_boot("rhnsd");
	}
local $init = &init_script("rhnsd");
&system_logged("$init stop >/dev/null 2>&1");
if ($in{'auto'}) {
	&system_logged("$init start >/dev/null 2>&1");
	}

if ($in{'now'}) {
	# Run rhn_check now ..
	&header($text{'rhn_check'}, "");
	print "<hr>\n";
	print "<b>",&text('rhn_checkdesc', "<tt>rhn_check</tt>"),"</b><p>\n";
	print "<pre>";
	&additional_log('exec', undef, "rhn_check");
	open(CMD, "rhn_check 2>&1 |");
	while(<CMD>) {
		while(s/^[^\015]+\015([^\012])/$1/) { }
		if (/\/([^\/\s]+)\-([^\-]+)\-([^\-]+)\.rpm/i) {
			push(@packs, $1);
			}
		print;
		}
	close(CMD);
	print "</pre>\n";

	@packs || print "<b>$text{'rhn_nocheck'}</b><p>\n";
	foreach $p (@packs) {
		local @pinfo = &show_package_info($p);
		}
	&webmin_log("rhn", "check", undef, { 'packages' => \@packs })
		if (@packs);
	print "<hr>\n";
	&footer("", $text{'index_return'});
	}
else {
	&redirect("");
	}

07070100069342000081a40000000000000002000000013ac038960000194f000000200000000000000000000000000000001a00000003reloc/software/rpm-lib.pl # rpm-lib.pl
# Functions for redhat linux package management

# list_packages([package]*)
# Fills the array %packages with all or listed packages
sub list_packages
{
local($i, $list); $i = 0;
$list = @_ ? join(' ', @_) : "-a";
open(RPM, "rpm -q $list --queryformat \"%{NAME}-%{VERSION}\\n%{GROUP}\\n%{SUMMARY}\\n\\n\" |");
while($packages{$i,'name'} = <RPM>) {
	chop($packages{$i,'name'});
	chop($packages{$i,'class'} = <RPM>);
	while(<RPM>) {
		s/\r|\n/ /g;
		last if (!/\S/);
		$packages{$i,'desc'} .= $_;
		}
	$i++;
	}
close(RPM);
return $i;
}

# package_info(package)
# Returns an array of package information in the order
#  name, class, description, arch, version, vendor, installtime
sub package_info
{
local(@rv, @tmp, $d);
open(RPM, "rpm -q $_[0] --queryformat \"%{NAME}-%{VERSION}\\n%{GROUP}\\n%{ARCH}\\n%{VERSION}\\n%{VENDOR}\\n%{INSTALLTIME}\\n\" 2>/dev/null |");
@tmp = <RPM>;
chop(@tmp);
if (!@tmp) { return (); }
close(RPM);
open(RPM, "rpm -q $_[0] --queryformat \"%{DESCRIPTION}\" |");
while(<RPM>) { $d .= $_; }
close(RPM);
return ($tmp[0], $tmp[1], $d, $tmp[2], $tmp[3], $tmp[4], &make_date($tmp[5]));
}

# is_package(file)
# Check if some file is a package file
sub is_package
{
local($out);
if (-d $_[0]) {
	# a directory .. see if it contains any .rpm files
	opendir(DIR, $_[0]);
	local @list = grep { /\.rpm$/ } readdir(DIR);
	closedir(DIR);
	return @list ? 1 : 0;
	}
else {
	# just a normal file
	$out = `rpm -q -p $_[0] 2>&1`;
	return $out !~ /does not appear|No such file/;
	}
}

# file_packages(file)
# Returns a list of all packages in the given file, in the form
#  package description
sub file_packages
{
if (-d $_[0]) {
	local @rv;
	open(RPM, "cd $_[0] ; rpm -q -p *.rpm --queryformat \"%{NAME}-%{VERSION} %{SUMMARY}\\n\" 2>&1 |");
	while(<RPM>) {
		chop;
		push(@rv, $_) if (!/does not appear|query of.*failed/);
		}
	close(RPM);
	return @rv;
	}
else {
	local($out);
	$out = `rpm -q -p $_[0] --queryformat "%{NAME}-%{VERSION} %{SUMMARY}" 2>&1`;
	return ($out);
	}
}

$wide_install_options = 1;

# install_options(file, package)
# Outputs HTML for choosing install options for some package
sub install_options
{
print "<tr>\n";
print &yesno_input($text{'rpm_upgrade'}, "upgrade", 1, 0, 1);
print &yesno_input($text{'rpm_replacepkgs'}, "replacepkgs", 1, 0);
print "</tr>\n";

print "<tr>\n";
print &yesno_input($text{'rpm_nodeps'}, "nodeps", 1, 0);
print &yesno_input($text{'rpm_oldpackage'}, "oldpackage", 1, 0);
print "</tr>\n";

print "<tr>\n";
print &yesno_input($text{'rpm_noscripts'}, "noscripts", 0, 1);
print &yesno_input($text{'rpm_excludedocs'}, "excludedocs", 0, 1);
print "</tr>\n";

print "<tr>\n";
print &yesno_input($text{'rpm_replacefiles'}, "replacefiles", 1, 0);
print "<td align=right>",&hlink("<b>$text{'rpm_root'}</b>","root"),"</td>\n";
print "<td><input name=root size=25 value=\"/\">\n";
print &file_chooser_button("root", 1),"</td> </tr>\n";
}

sub yesno_input
{
local $cy = $_[2] ^ $_[4] ? "" : "checked";
local $cn = $_[3] ^ $_[4] ? "" : "checked";
return  "<td align=right>".&hlink("<b>$_[0]</b>", $_[1])."</td> <td>\n".
	"<input type=radio name=$_[1] value=$_[2] $cy> $text{'yes'}\n".
	"<input type=radio name=$_[1] value=$_[3] $cn> $text{'no'}</td>\n";
}

# install_package(file, package)
# Install the given package from the given file, using options from %in
sub install_package
{
local $file = $_[0];
foreach $o ('oldpackage', 'replacefiles', 'replacepkgs', 'noscripts',
	    'excludedocs', 'nodeps', 'upgrade') {
	if ($in{$o}) { $opts .= " --$o"; }
	}
if ($in{'root'} =~ /^\/.+/) {
	if (!(-d $in{'root'})) {
		return &text('rpm_eroot', $in{'root'});
		}
	$opts .= " --root $in{'root'}";
	}
if (-d $file) {
	# Find the package in the directory
	local ($f, $out);
	opendir(DIR, $file);
	while($f = readdir(DIR)) {
		next if ($f !~ /\.rpm$/);
		($out = `rpm -q -p $file/$f --queryformat '%{NAME}-%{VERSION}' 2>&1`) =~ s/\r|\n//g;
		if ($out eq $_[1]) {
			$file = "$file/$f";
			last;
			}
		}
	closedir(DIR);
	&error(&text('rpm_erpm', $_[1], $out)) if ($file eq $_[0]);
	}
local $temp = &tempname();
local $rv = &system_logged("rpm -i $opts $file >$temp 2>&1");
local $out = `cat $temp`;
unlink($temp);
if ($rv) {
	return "<pre>$out</pre>";
	}
return undef;
}

# check_files(package)
# Fills in the %files array with information about the files belonging
# to some package. Values in %files are  path type user group size error
sub check_files
{
local($i, $_, @w, %errs, $epath); $i = 0;
open(RPM, "rpm -V $_[0] |");
while(<RPM>) {
	/^(.{8}) (.) (.*)$/;
	if ($1 eq "missing ") {
		$errs{$3} = $text{'rpm_missing'};
		}
	else {
		$epath = $3;
		@w = grep { $_ ne "." } split(//, $1);
		$errs{$epath} =
			join("\n", map { &text('rpm_checkfail', $etype{$_}) } @w);
		}
	}
close(RPM);
open(RPM, "rpm -q $_[0] -l --dump |");
while(<RPM>) {
	chop;
	@w = split(/ /);
	$files{$i,'path'} = $w[0];
	if ($w[10] ne "X") { $files{$i,'link'} = $w[10]; }
	$files{$i,'type'} = $w[10] ne "X" ? 3 :
			    (-d $w[0]) ? 1 :
			    $w[7] ? 5 : 0;
	$files{$i,'user'} = $w[5];
	$files{$i,'group'} = $w[6];
	$files{$i,'size'} = $w[1];
	$files{$i,'error'} = $w[7] ? "" : $errs{$w[0]};
	$i++;
	}
close(RPM);
return $i;
}

# installed_file(file)
# Given a filename, fills %file with details of the given file and returns 1.
# If the file is not known to the package system, returns 0
# Usable values in %file are  path type user group mode size packages
sub installed_file
{
local($pkg, @w, $_);
undef(%file);
$pkg = `rpm -q -f $_[0] --queryformat "%{NAME}-%{VERSION}\\n" 2>&1`;
if ($pkg =~ /not owned/ || $?) { return 0; }
@pkgs = split(/\n/, $pkg);
open(RPM, "rpm -q $pkgs[0] -l --dump |");
while(<RPM>) {
	chop;
	@w = split(/ /);
	if ($w[0] eq $_[0]) {
		$file{'packages'} = join(' ', @pkgs);
		$file{'path'} = $w[0];
		if ($w[10] ne "X") { $files{$i,'link'} = $w[10]; }
		$file{'type'} = $w[10] ne "X" ? 3 :
				(-d $w[0]) ? 1 :
				$w[7] ? 5 : 0;
		$file{'user'} = $w[5];
		$file{'group'} = $w[6];
		$file{'mode'} = substr($w[4], -4);
		$file{'size'} = $w[1];
		last;
		}
	}
close(RPM);
return 1;
}

# delete_package(package)
# Attempt to remove some package
sub delete_package
{
$out = &backquote_logged("rpm -e $_[0] 2>&1");
if ($out) { return "<pre>$out</pre>"; }
return undef;
}

sub package_system
{
return "RPM";
}

%etype = (	"5", $text{'rpm_md5'},	"S", $text{'rpm_fsize'},
		"L", $text{'rpm_sym'},	"T", $text{'rpm_mtime'},
		"D", $text{'rpm_dev'},	"U", $text{'rpm_user'},
		"M", $text{'rpm_perm'},	"G", $text{'rpm_group'} );

1;

 07070100069343000081e40000000000000002000000013ac03896000004fc000000200000000000000000000000000000001a00000003reloc/software/search.cgi #!/usr/local/bin/perl
# search.cgi
# Display a list of packages where the name or description matches some string

require './software-lib.pl';
&ReadParse();

$n = &list_packages();
$s = $in{'search'};
for($i=0; $i<$n; $i++) {
	if ($packages{$i,'name'} =~ /$s/i || $packages{$i,'desc'} =~ /$s/i) {
		push(@match, $i);
		}
	}
if (@match == 1) {
	$p = $packages{$match[0],'name'};
	&redirect("edit_pack.cgi?package=".&urlize($p));
	exit;
	}

&header($text{'search_title'}, "", "search");
print "<hr>\n";
if (@match) {
	print "<h3>",&text('search_match', "<tt>$s</tt>"),"</h3>\n";
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'search_pack'}</b></td> ",
	      "<td><b>$text{'search_class'}</b></td> ",
	      "<td><b>$text{'search_desc'}</b></td> </tr>\n";
	foreach $i (@match) {
		print "<tr $cb>\n";
		print "<td><a href=\"edit_pack.cgi?search=$s&package=",
		      &urlize($packages{$i,'name'}),"\">$packages{$i,'name'}",
		      "</a></td>\n";
		$c = $packages{$i,'class'};
		print "<td>",$c ? $c : $text{'search_none'},"</td>\n";
		print "<td>$packages{$i,'desc'}</td>\n";
		print "</tr>\n";
		}
	print "</table><p>\n";
	}
else {
	print "<h3>",&text('search_nomatch', "<tt>$s</tt>"),"</h3>\n";
	}

print "<hr>\n";
&footer("", $text{'index_return'});

07070100069344000081a40000000000000002000000013ac038960000164a000000200000000000000000000000000000002000000003reloc/software/slackware-lib.pl   # slackware-lib.pl
# Functions for slackware package management

$package_dir = "/var/log/packages";
%class_map = (	'a',	'Base Linux system',
		'ap',	'Applications',
		'd',	'Program development',
		'des',	'Crypt library',
		'e',	'GNU Emacs',
		'f',	'FAQs and documentation',
		'gtk',	'GTK+ and GNOME programs',
		'k',	'Linux kernel source',
		'kde',	'KDE desktop and programs',
		'n',	'Networking',
		't',	'TeX',
		'tcl',	'TcL/Tk',
		'xap',	'X applications',
		'xd',	'X server development',
		'xv',	'XView programs',
		'y',	'Games' );
use POSIX;
chop($system_arch = `uname -m`);

# list_packages([package]*)
# Fills the array %packages with a list of all packages
sub list_packages
{
local ($i, $f, @list);
opendir(DIR, $package_dir);
local @list = @_ ? @_ : grep { !/^\./ } readdir(DIR);
$i = 0;
foreach $f (@list) {
	$packages{$i,'name'} = $f;
	$packages{$i,'class'} = $text{'slack_unclass'};
	open(PKG, "$package_dir/$f");
	while(<PKG>) {
		if (/^PACKAGE LOCATION:\s+disk([a-z]+)\d+/i) {
			$packages{$i,'class'} = $class_map{$1};
			}
		elsif (/^PACKAGE DESCRIPTION:/i) {
			local $desc = <PKG>;
			$desc =~ s/^\S+:\s+//;
			$desc =~ s/\n//;
			$packages{$i,'desc'} = $desc;
			}
		}
	close(PKG);
	$i++;
	}
closedir(DIR);
return $i;
}

# package_info(package)
# Returns an array of package information in the order
#  name, class, description, arch, version, vendor, installtime
sub package_info
{
local @rv = ( $_[0], $text{'slack_unclass'}, $text{'slack_unknown'},
	      $system_arch, $text{'slack_unknown'}, "Slackware" );
local @st = stat("$package_dir/$_[0]");
$rv[6] = ctime($st[9]);
open(PKG, "$package_dir/$_[0]");
while(<PKG>) {
	if (/^PACKAGE LOCATION:\s+disk([a-z]+)\d+/i) {
		$rv[1] = $class_map{$1};
		}
	elsif (/^PACKAGE DESCRIPTION:/i) {
		$rv[2] = "";
		while(<PKG>) {
			last if (/^FILE LIST/i);
			s/^\S+: *//;
			if (!$rv[2] && /([0-9][0-9\.]*)/) {
				$rv[4] = $1;
				}
			$rv[2] .= $_;
			}
		$rv[2] =~ s/\s+$//;
		}
	}
close(PKG);
return @rv;
}

# check_files(package)
# Fills in the %files array with information about the files belonging
# to some package. Values in %files are  path type user group mode size error
sub check_files
{
local $i = 0;
local $file;
open(PKG, "$package_dir/$_[0]");
while(<PKG>) {
	last if (/^FILE LIST:/i);
	}
while($file = <PKG>) {
	$file =~ s/\r|\n//g;
	next if ($file eq "./");
	$file = '/'.$file;
	$files{$i,'path'} = $file;
	local @st = stat($file);
	if (@st) {
		$files{$i,'type'} = -l $file ? 3 :
				    -d $file ? 1 : 0;
		$files{$i,'user'} = getpwuid($st[4]);
		$files{$i,'group'} = getgrgid($st[5]);
		$files{$i,'mode'} = sprintf "%o", $st[2] & 07777;
		$files{$i,'size'} = $st[7];
		$files{$i,'link'} = readlink($file);
		}
	else {
		$files{$i,'type'} = $file =~ /\// ? 1 : 0;
		$files{$i,'user'} = $files{$i,'group'} =
		 $files{$i,'mode'} = $files{$i,'size'} = $text{'slack_unknown'};
		$files{$i,'error'} = $text{'slack_missing'};
		}
	$i++;
	}
return $i;
}

# installed_file(file)
# Given a filename, fills %file with details of the given file and returns 1.
# If the file is not known to the package system, returns 0
# Usable values in %file are  path type user group mode size packages
sub installed_file
{
local ($f, $file, @pkgin);
opendir(DIR, $package_dir);
while($f = readdir(DIR)) {
	next if ($f =~ /^\./);
	open(PKG, "$package_dir/$f");
	while(<PKG>) {
		last if (/^FILE LIST:/);
		}
	while($file = <PKG>) {
		next if ($file eq "./");
		$file =~ s/[\/\r\n]+$//;
		$file = '/'.$file;
		if ($_[0] eq $file) {
			# found it!
			push(@pkgin, $f);
			last;
			}
		}
	close(PKG);
	}
closedir(DIR);
if (@pkgin) {
	local @st = stat($_[0]);
	$file{'path'} = $_[0];
	$file{'type'} = -l $_[0] ? 3 :
			-d $_[0] ? 1 : 0;
	$file{'user'} = getpwuid($st[4]);
	$file{'group'} = getgrgid($st[5]);
	$file{'mode'} = sprintf "%o", $st[2] & 07777;
	$file{'size'} = $st[7];
	$file{'link'} = readlink($_[0]);
	$file{'packages'} = join(" ", @pkgin);
	return 1;
	}
else {
	return 0;
	}
}

# is_package(file)
sub is_package
{
local $count;
open(TAR, "gunzip -c $_[0] | tar tf - 2>&1 |");
while(<TAR>) {
	$count++ if (/^[^\/\s]\S+/);
	}
close(TAR);
return $count < 2 ? 0 : 1;
}

# file_packages(file)
# Returns a list of all packages in the given file, in the form
#  package description
sub file_packages
{
if ($_[0] !~ /^(.*)\/(([^\/]+)(\.tgz|\.tar\.gz))$/) {
	return "$_[0] $text{'slack_unknown'}";
	}
local ($dir, $file, $base) = ($1, $2, $3);
local $diskfile;
opendir(DIR, $dir);
while($f = readdir(DIR)) {
	if ($f =~ /^disk\S+\d+$/ || $f eq 'package_descriptions') {
		# found the slackware disk file
		$diskfile = "$dir/$f";
		last;
		}
	}
closedir(DIR);
return "$base $text{'slack_unknown'}" if (!$diskfile);

# read the disk file
local $desc;
open(DISK, $diskfile);
while(<DISK>) {
	if (/^$base:\s*(.*)/) {
		$desc = $1;
		last;
		}
	}
close(DISK);
return $desc ? "$base $desc" : "$base $text{'slack_unknown'}";
}

# install_options(file, package)
# Outputs HTML for choosing install options
sub install_options
{
print "<tr> <td><b>$text{'slack_root'}</b></td>\n";
print "<td colspan=3><input name=root size=30 value='/'> ",
	&file_chooser_button("root", 1),"</td> </tr>\n";
}

# install_package(file, package)
# Installs the package in the given file, with options from %in
sub install_package
{
return $text{'slack_eroot'} if (!-d $in{'root'});
$ENV{'ROOT'} = $in{'root'};
local $out = &backquote_logged("installpkg $_[0] 2>&1");
if ($?) {
	return "<pre>$out</pre>";
	}
return undef;
}

# delete_package(package)
# Totally remove some package
sub delete_package
{
local $out = &backquote_logged("removepkg $_[0] 2>&1");
if ($?) { return "<pre>$out</pre>"; }
return undef;
}



sub package_system
{
return $text{'slack_manager'};
}

1;

  07070100069345000081a40000000000000002000000013ac03896000012e5000000200000000000000000000000000000001f00000003reloc/software/software-lib.pl    # software-lib.pl
# A generalized system for package management on solaris, linux, etc..

do '../web-lib.pl';
&init_config();

# Use the appropriate function set for whatever package management system
# we are using.
if (-r "./$config{package_system}-lib.pl") {
	do "./$config{package_system}-lib.pl";
	}
else {
	&error(&text('soft_efunc', $config{package_system}));
	}

# Guess which update system we are using
if (&has_command("up2date") && &has_command("rhn_check")) {
	do "./rhn-lib.pl";
	$has_update_system = 1;
	}
elsif (&has_command("apt-get")) {
	do "./apt-lib.pl";
	$has_update_system = 1;
	}
elsif (&has_command("cupdate")) {
	# not done yet!
	}

# uncompress_if_needed(file, disposable)
# If some file needs to be uncompressed or ungzipped, do it and return the
# new temp file path. Otherwise, return the original path.
sub uncompress_if_needed
{
open(PFILE, $_[0]);
read(PFILE, $two, 2);
close(PFILE);
if ($two eq "\037\235") {
	if (!&has_command("uncompress")) {
		unlink($_[0]) if ($_[1]);
		&error($text{'soft_euncompress'});
		}
	local $temp = $_[0] =~ /\/([^\/]+)\.Z/i ? &tempname("$1")
						: &tempname();
	local $out = `uncompress -c $_[0] 2>&1 >$temp`;
	unlink($_[0]) if ($_[1]);
	if ($?) {
		unlink($temp);
		&error(&text('soft_euncmsg', $out));
		}
	return $temp;
	}
elsif ($two eq "\037\213") {
	if (!&has_command("gunzip")) {
		unlink($_[0]) if ($_[1]);
		&error($text{'soft_egzip'});
		}
	local $temp = $_[0] =~ /\/([^\/]+)\.gz/i ? &tempname("$1")
						 : &tempname();
	local $out = `gunzip -c $_[0] 2>&1 >$temp`;
	unlink($_[0]) if ($_[1]);
	if ($?) {
		unlink($temp);
		&error(&text('soft_egzmsg', $out));
		}
	return $temp;
	}
return $_[0];
}

# check_on_boot(action)
# Returns 1 if some action is run at boot, 0 otherwise
sub check_on_boot
{
&foreign_require("init", "init-lib.pl");
local %iconfig = &foreign_config("init");
local @boot = &foreign_call("init", "get_inittab_runlevel");
local $boot = 0;
foreach $s (&foreign_call("init", "action_levels", "S", $_[0])) {
	local ($l, $p) = split(/\s+/, $s);
	$boot = 1 if (&indexof($l, @boot) >= 0);
	}
local %daemon;
if ($boot && $iconfig{'daemons_dir'} &&
    &read_env_file("$iconfig{'daemons_dir'}/$_[0]", \%daemon)) {
	$boot = lc($daemon{'ONBOOT'}) eq 'yes' ? 1 : 0;
	}
return $boot;
}

# enable_on_boot(action)
# Make some action run at boot time
sub enable_on_boot
{
&foreign_require("init", "init-lib.pl");
local %iconfig = &foreign_config("init");
local @boot = &foreign_call("init", "get_inittab_runlevel");
local $boot = 0;
foreach $s (&foreign_call("init", "action_levels", "S", $_[0])) {
	local ($l, $p) = split(/\s+/, $s);
	$boot = 1 if (&indexof($l, @boot) >= 0);
	}
&foreign_call("init", "add_rl_action", $_[0], $boot[0], "S",
	      "9" x $iconfig{'order_digits'}) if (!$boot);
local %daemon;
if ($iconfig{'daemons_dir'} &&
    &read_env_file("$iconfig{'daemons_dir'}/$_[0]", \%daemon)) {
	$daemon{'ONBOOT'} = 'yes';
	&write_env_file("$iconfig{'daemons_dir'}/$_[0]", \%daemon);
	}
}

# disable_on_boot(action)
# Make some action not run at boot time
sub disable_on_boot
{
&foreign_require("init", "init-lib.pl");
local %iconfig = &foreign_config("init");
if ($iconfig{'daemons_dir'} &&
    &read_env_file("$iconfig{'daemons_dir'}/$_[0]", \%daemon)) {
	$daemon{'ONBOOT'} = 'no';
	&write_env_file("$iconfig{'daemons_dir'}/$_[0]", \%daemon);
	}
else {
	foreach $s (&foreign_call("init", "action_levels", "S", $_[0])) {
		local @s = split(/\s+/, $s);
		&foreign_call("init", "delete_rl_action", $_[0], $s[0], "S");
		}
	}
}

# init_script(action)
# Returns the full path to some init script
sub init_script
{
local %iconfig = &foreign_config("init");
return "$iconfig{'init_dir'}/$_[0]";
}

# show_package_info(package)
sub show_package_info
{
@pinfo = &package_info($_[0]);
return () if (!@pinfo);
print "<h3>",&text('do_success', $_[0]),"</h3>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'do_details'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";
print "<tr> <td valign=top width=20%><b>$text{'do_desc'}</b></td>\n";
print "<td colspan=3><font size=+1><pre>$pinfo[2]</pre></font></td> </tr>\n";

print "<tr> <td width=20%><b>$text{'do_pack'}</b></td> <td>$pinfo[0]</td>\n";
print "<td width=20%><b>$text{'do_class'}</b></td> <td>",
	$pinfo[1] ? $pinfo[1] : $text{'do_none'},"</td> </tr>\n";

print "<tr> <td width=20%><b>$text{'do_ver'}</b></td> <td>$pinfo[4]</td>\n";
print "<td width=20%><b>$text{'do_vend'}</b></td> <td>$pinfo[5]</td> </tr>\n";

print "<tr> <td width=20%><b>$text{'do_arch'}</b></td> <td>$pinfo[3]</td>\n";
print "<td width=20%><b>$text{'do_inst'}</b></td> <td>$pinfo[6]</td> </tr>\n";
print "</table></td></tr></table><p>\n";
return @pinfo;
}

@type_map = (	$text{'soft_reg'},	$text{'soft_dir'},	$text{'soft_spec'},
		$text{'soft_sym'},	$text{'soft_hard'},	$text{'soft_edit'} );

   0707010000eb55000041ed0000000000000001000000053ac03c8600000000000000200000000000000000000000000000000c00000003reloc/squid   0707010000eb56000081e40000000000000002000000013ac0389e000022f0000000200000000000000000000000000000001400000003reloc/squid/acl.cgi   #!/usr/local/bin/perl
# acl.cgi
# Display a form for editing or creating a new ACL

require './squid-lib.pl';
&ReadParse();
$conf = &get_config();

if ($in{'type'}) {
	&header($text{'acl_header1'}, "", undef, 0, 0, 0, &restart_button());
	$type = $in{'type'};
	}
else {
	&header($text{'acl_header2'}, "", undef, 0, 0, 0, &restart_button());
	@acl = @{$conf->[$in{'index'}]->{'values'}};
	$type = $acl[1];
	if ($acl[2] =~ /^"(.*)"$/) {
		# read from file
		open(FILE, $1);
		chop(@vals = <FILE>);
		close(FILE);
		$file = $1;
		}
	else { @vals = @acl[2..$#acl]; }
	if ($type =~ /^(src|dst|srcdomain|dstdomain|user|myip)$/) {
		@vals = sort { $a cmp $b } @vals;
		}
	elsif ($type eq "port") {
		@vals = sort { $a <=> $b } @vals;
		}
	@deny = grep { $_->{'values'}->[1] eq $acl[0] }
			&find_config("deny_info", $conf);
	}
print "<hr>\n";

print "<form action=acl_save.cgi method=post>\n";
if (@acl) {
	print "<input type=hidden name=index value=$in{'index'}>\n";
	print "<input type=hidden name=file value=$file>\n";
	}
if (@deny) {
	print "<input type=hidden name=dindex value=$deny[0]->{'index'}>\n";
	}
print "<input type=hidden name=type value=$type>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$acl_types{$type} ACL</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td nowrap><b>$text{'acl_name'}</b></td>\n";
print "<td><input name=name size=20 value=\"$acl[0]\"></td>\n";

if ($type eq "src") {
	print "<tr> <td colspan=2><table>\n";
	print "<tr> <td><b>$text{'acl_fromip'}</b></td> ",
		"<td><b>$text{'acl_toip'}</b></td>\n";
	print "     <td><b>$text{'acl_nmask'}</b></td> </tr>\n";
	for($i=0; $i<=@vals; $i++) {
		if ($vals[$i] =~ /^([\d\.]+)-([\d\.]+)\/([\d\.]+)$/) {
			$from = $1; $to = $2; $mask = $3;
			}
		elsif ($vals[$i] =~ /^([\d\.]+)\/([\d\.]+)$/) {
			$from = $1; $to = ""; $mask = $2;
			}
		else { $from = $to = $mask = ""; }
		print "<tr>\n";
		print "<td><input name=from_$i size=15 value=\"$from\"></td>\n";
		print "<td><input name=to_$i size=15 value=\"$to\"></td>\n";
		print "<td><input name=mask_$i size=15 value=\"$mask\"></td>\n";
		print "</tr>\n";
		}
	print "</table></td> </tr>\n";
	}
elsif ($type eq "dst" || $type eq "myip") {
	print "<tr> <td colspan=2><table>\n";
	print "<tr> <td><b>$text{'acl_ipaddr'}</b></td> ",
		"<td><b>$text{'acl_nmask'}</b></td> </tr>\n";
	for($i=0; $i<=@vals; $i++) {
		if ($vals[$i] =~ /^([\d\.]+)\/([\d\.]+)$/) {
			$ip = $1; $mask = $2;
			}
		else { $ip = $mask = ""; }
		print "<tr>\n";
		print "<td><input name=ip_$i size=15 value=\"$ip\"></td>\n";
		print "<td><input name=mask_$i size=15 value=\"$mask\"></td>\n";
		print "</tr>\n";
		}
	print "</table></td> </tr>\n";
	}
elsif ($type eq "srcdomain") {
	print "<tr> <td valign=top><b>$text{'acl_domains'}</b></td>\n";
	print "<td><textarea name=vals rows=6 cols=20>",join("\n", @vals),
	      "</textarea></td> </tr>\n";
	}
elsif ($type eq "dstdomain") {
	print "<tr> <td valign=top><b>$text{'acl_domains'}</b></td>\n";
	print "<td><textarea name=vals rows=6 cols=20>",join("\n", @vals),
	      "</textarea></td> </tr>\n";
	}
elsif ($type eq "time") {
	local $vals = join(' ', @vals);
	if ($vals =~ /[A-Z]+/) {
		foreach $d (split(//, $vals)) {
			$day{$d}++;
			}
		}
	if ($vals =~ /(\d+):(\d+)-(\d+):(\d+)/) {
		$h1 = $1; $m1 = $2;
		$h2 = $3; $m2 = $4;
		$hour++;
		}
	print "<tr> <td valign=top><b>$text{'acl_dofw'}</b></td> <td>\n";
	printf "<input type=radio name=day_def value=1 %s> $text{'acl_all'}\n",
		%day ? "" : "checked";
	printf "<input type=radio name=day_def value=0 %s> $text{'acl_sel'}<br>\n",
		%day ? "checked" : "";
	%day_name = ( 'S', $text{'acl_dsun'}, 
                      'M', $text{'acl_dmon'}, 
                      'T', $text{'acl_dtue'},
		      'W', $text{'acl_dwed'}, 
                      'H', $text{'acl_dthu'}, 
                      'F', $text{'acl_dfri'},
		      'A', $text{'acl_dsat'} );
	print "<select name=day multiple size=7>\n";
	foreach $d ('S', 'M', 'T', 'W', 'H', 'F', 'A') {
		printf "<option value=$d %s> $day_name{$d}\n",
			$day{$d} ? "selected" : "";
		}
	print "</select></td> </tr>\n";

	print "<tr> <td valign=top><b>$text{'acl_hofd'}</b></td> <td>\n";
	printf "<input type=radio name=hour_def value=1 %s> $text{'acl_all'}\n",
		$hour ? "" : "checked";
	printf "&nbsp;<input type=radio name=hour_def value=0 %s>\n",
		$hour ? "checked" : "";
	print "<input name=h1 size=2 value=\"$h1\">:";
	print "<input name=m1 size=2 value=\"$m1\"> $text{'acl_to'} ";
	print "<input name=h2 size=2 value=\"$h2\">:";
	print "<input name=m2 size=2 value=\"$m2\"></td> </tr>\n";
	}
elsif ($type eq "url_regex") {
	print "<tr> <td valign=top><b>$text{'acl_regexp'}</b></td>\n";
	print "<td><textarea name=vals rows=6 cols=20>",join("\n", @vals),
	      "</textarea></td> </tr>\n";
	}
elsif ($type eq "urlpath_regex") {
	print "<tr> <td valign=top><b>$text{'acl_regexp'}</b></td>\n";
	print "<td><textarea name=vals rows=6 cols=20>",join("\n", @vals),
	      "</textarea></td> </tr>\n";
	}
elsif ($type eq "port") {
	print "<tr> <td valign=top><b>$text{'acl_tcpports'}</b></td>\n";
	printf "<td><input name=vals size=30 value=\"%s\"></td> </tr>\n",
		join(" ", @vals);
	}
elsif ($type eq "proto") {
	print "<tr> <td valign=top><b>$text{'acl_urlproto'}</b></td> <td>\n";
	foreach $p (@vals) { $proto{$p}++; }
	foreach $p ('http', 'ftp', 'gopher', 'wais', 'cache_object') {
		printf "<input type=checkbox name=vals value=$p %s> $p\n",
			$proto{$p} ? "checked" : "";
		}
	print "</td> </tr>\n";
	}
elsif ($type eq "method") {
	print "<tr> <td valign=top><b>$text{'acl_reqmethods'}</b></td> <td>\n";
	foreach $m (@vals) { $meth{$m}++; }
	foreach $m ('GET', 'POST', 'HEAD', 'CONNECT', 'PUT', 'DELETE') {
		printf "<input type=checkbox name=vals value=$m %s> $m\n",
			$meth{$m} ? "checked" : "";
		}
	print "</td> </tr>\n";
	}
elsif ($type eq "browser") {
	print "<tr> <td valign=top><b>$text{'acl_bregexp'}</b></td>\n";
	printf "<td><input name=vals size=30 value=\"%s\"></td> </tr>\n",
		join(' ', @vals);
	}
elsif ($type eq "user") {
	print "<tr> <td valign=top><b>$text{'acl_pusers'}</b></td>\n";
	print "<td><textarea name=vals rows=6 cols=20 wrap>",
		join("\n", @vals),"</textarea></td> </tr>\n";
	}
elsif ($type eq "src_as" || $type eq "dst_as") {
	print "<tr> <td valign=top><b>$text{'acl_asnum'}</b></td>\n";
	printf "<td><input name=vals size=20 value=\"%s\"></td> </tr>\n",
		join(' ', @vals);
	}
elsif ($type eq "proxy_auth" && $squid_version < 2.3) {
	print "<tr> <td valign=top><b>$text{'acl_rtime'}</b></td>\n";
	print "<td><input name=vals size=8 value=\"$vals[0]\"></td> </tr>\n";
	}
elsif ($type eq "proxy_auth" && $squid_version >= 2.3) {
	print "<tr> <td valign=top><b>$text{'acl_eusers'}</b></td>\n";
	print "<td><textarea name=vals rows=6 cols=20 wrap>",
		join("\n", @vals),"</textarea></td> </tr>\n";
	}
elsif ($type eq "proxy_auth_regex") {
	print "<tr> <td valign=top><b>$text{'acl_eusers'}</b></td>\n";
	local $caseless;
	if ($vals[0] eq '-i') {
		$caseless++;
		shift(@vals);
		}
	printf "<td><input type=checkbox name=caseless value=1 %s> %s<br>\n",
		$caseless ? 'checked' : '', $text{'acl_case'};
	print "<textarea name=vals rows=6 cols=20 wrap>",
		join("\n", @vals),"</textarea></td> </tr>\n";
	}
elsif ($type eq "srcdom_regex" || $type eq "dstdom_regex") {
	print "<tr> <td valign=top><b>$text{'acl_regexp'}</b></td>\n";
	print "<td><textarea name=vals rows=6 cols=20>",join("\n", @vals),
	      "</textarea></td> </tr>\n";
	}
elsif ($type eq "ident") {
	print "<tr> <td valign=top><b>$text{'acl_rfcusers'}</b></td>\n";
	print "<td><textarea name=vals rows=6 cols=20 wrap>",
		join(' ', @vals),"</textarea></td> </tr>\n";
	}
elsif ($type eq "maxconn") {
	print "<tr> <td valign=top><b>$text{'acl_mcr'}</b></td>\n";
	print "<td><input name=vals size=8 value=\"$vals[0]\"></td> </tr>\n";
	}
elsif ($type eq "myport") {
	print "<tr> <td valign=top><b>$text{'acl_psp'}</b></td>\n";
	print "<td><input name=vals size=8 value=\"$vals[0]\"></td> </tr>\n";
	}
elsif ($type eq "snmp_community") {
	print "<tr> <td valign=top><b>$text{'acl_scs'}</b></td>\n";
	print "<td><input name=vals size=15 value=\"$vals[0]\"></td> </tr>\n";
	}
elsif ($type eq "req_mime_type") {
	print "<tr> <td valign=top><b>$text{'acl_rmt'}</b></td>\n";
	print "<td><input name=vals size=15 value=\"$vals[0]\"></td> </tr>\n";
	}
elsif ($type eq "arp") {
	print "<tr> <td valign=top><b>$text{'acl_arp'}</b></td>\n";
	print "<td><textarea name=vals rows=6 cols=20>",join("\n", @vals),
	      "</textarea></td> </tr>\n";
	}

print "<tr> <td><b>$text{'acl_failurl'}</b></td>\n";
printf "<td><input name=deny size=25 value=\"%s\"></td> </tr>\n",
	@deny ? $deny[0]->{'values'}->[0] : "";

print "</table></td></tr></table><br>\n";
print "<input type=submit value=$text{'acl_buttsave'}>\n";
if (!$in{'type'}) { print "<input type=submit value=$text{'acl_buttdel'} name=delete>\n"; }
print "</form>\n";

print "<hr>\n";
&footer("edit_acl.cgi", $text{'acl_return'});

0707010000eb57000081e40000000000000002000000013ac0389e000019e9000000200000000000000000000000000000001900000003reloc/squid/acl_save.cgi  #!/usr/local/bin/perl
# acl_save.cgi
# Save or delete an ACL

require './squid-lib.pl';
&ReadParse();
&lock_file($config{'squid_conf'});
$conf = &get_config();
$whatfailed = $text{'aclsave_failsave'};

@acls = &find_config("acl", $conf);
@denys = &find_config("deny_info", $conf);
if (defined($in{'index'})) {
	$acl = $conf->[$in{'index'}];
	}
if (defined($in{'dindex'})) {
	$deny = $conf->[$in{'dindex'}];
	}
if ($in{'delete'}) {
	# Is there more than one ACL with this name?
	$name = $acl->{'values'}->[0];
	foreach $a (&find_config("acl", $conf)) {
		$count++ if ($a->{'values'}->[0] eq $name);
		}

	# Is this ACL in use?
	$whatfailed = $text{'aclsave_faildel'};
	if ($count == 1) {
		foreach $h (&find_config("http_access", $conf)) {
			@v = @{$h->{'values'}};
			for($i=1; $i<@v;  $i++) {
				if ($v[$i] eq $name || $v[$i] eq "!$name") {
					&error($text{'aclsave_epr'});
					}
				}
			}
		foreach $h (&find_config("icp_access", $conf)) {
			@v = @{$h->{'values'}};
			for($i=1; $i<@v;  $i++) {
				if ($v[$i] eq $in{'name'} ||
				    $v[$i] eq "!$in{'name'}") {
					&error($text{'aclsave_eicpr'});
					}
				}
			}
		}
	splice(@acls, &indexof($acl, @acls), 1);
	if ($deny) { splice(@denys, &indexof($deny, @denys), 1); }
	$logacl = $acl;
	}
else {
	# Check ACL details
	$in{'name'} =~ /^\S+$/ || &error($text{'aclsave_ename'});
	$changed++ if ($acl && $in{'name'} ne $acl->{'values'}->[0]);
	for($i=0; $i<@acls; $i++) {
		if ($changed && $acls[$i]->{'values'}->[0] eq $in{'name'}) {
			&error(&text('aclsave_eexists',$in{'name'}));
			}
		}

	if ($in{'type'} eq "src") {
		for($i=0; defined($from = $in{"from_$i"}); $i++) {
			$to = $in{"to_$i"}; $mask = $in{"mask_$i"};
			next if (!$from && !$to && !$mask);
			&check_ipaddress($from) ||
			       &error(&text('aclsave_efrom',$from));
			!$to || &check_ipaddress($to) ||
			       &error(&text('aclsave_eto',$to));
			$mask =~ /^\d+$/ || &check_ipaddress($mask) ||
			       &error(&text('aclsave_enmask',$mask));
			if ($to) { push(@vals, "$from-$to/$mask"); }
			else { push(@vals, "$from/$mask"); }
			}
		}
	elsif ($in{'type'} eq "dst" || $in{'type'} eq "myip") {
		for($i=0; defined($ip = $in{"ip_$i"}); $i++) {
			$mask = $in{"mask_$i"};
			next if (!$mask || !$ip);
			&check_ipaddress($ip) ||
				&error(&text('aclsave_eip',$ip));
			$mask =~ /^\d+$/ || &check_ipaddress($mask) ||
			       &error(&text('aclsave_enmask',$mask));
			push(@vals, "$ip/$mask");
			}
		}
	elsif ($in{'type'} eq "srcdomain") {
		push(@vals, split(/\s+/, $in{'vals'}));
		if (!@vals) { &error($text{'aclsave_ecdom'}); }
		}
	elsif ($in{'type'} eq "dstdomain") {
		push(@vals, split(/\s+/, $in{'vals'}));
		if (!@vals) { &error($text{'aclsave_esdom'}); }
		}
	elsif ($in{'type'} eq "time") {
		if (!$in{'day_def'}) {
			push(@vals, join('', split(/\0/, $in{'day'})));
			}
		if (!$in{'hour_def'}) {
			$in{'h1'} =~ /^\d+$/ || &error($text{'aclsave_eshour'});
			$in{'h2'} =~ /^\d+$/ || &error($text{'aclsave_eehour'});
			$in{'m1'} =~ /^\d+$/ || &error($text{'aclsave_esmin'});
			$in{'m2'} =~ /^\d+$/ || &error($text{'aclsave_eemin'});
			push(@vals, "$in{'h1'}:$in{'m1'}-$in{'h2'}:$in{'m2'}");
			}
		}
	elsif ($in{'type'} eq "url_regex") {
		push(@vals, split(/\s+/, $in{'vals'}));
		}
	elsif ($in{'type'} eq "urlpath_regex") {
		push(@vals, split(/\s+/, $in{'vals'}));
		}
	elsif ($in{'type'} eq "port") {
		push(@vals, split(/\s+/, $in{'vals'}));
		}
	elsif ($in{'type'} eq "proto") {
		push(@vals, split(/\0/, $in{'vals'}));
		}
	elsif ($in{'type'} eq "method") {
		push(@vals, split(/\0/, $in{'vals'}));
		}
	elsif ($in{'type'} eq "browser" || $in{'type'} eq "snmp_community") {
		push(@vals, $in{'vals'});
		}
	elsif ($in{'type'} eq "user" || $in{'type'} eq "ident") {
		push(@vals, split(/\s+/, $in{'vals'}));
		}
	elsif ($in{'type'} eq "src_as" || $in{'type'} eq "dst_as") {
		push(@vals, split(/\s+/, $in{'vals'}));
		}
	elsif ($in{'type'} eq "proxy_auth" && $squid_version < 2.3) {
		push(@vals, $in{'vals'}) if ($in{'vals'});
		}
	elsif ($in{'type'} eq "proxy_auth" && $squid_version >= 2.3) {
		push(@vals, split(/\s+/, $in{'vals'}));
		}
	elsif ($in{'type'} eq "proxy_auth_regex") {
		push(@vals, "-i") if ($in{'caseless'});
		push(@vals, split(/\s+/, $in{'vals'}));
		}
	elsif ($in{'type'} eq "srcdom_regex" || $in{'type'} eq "dstdom_regex") {
		push(@vals, split(/\s+/, $in{'vals'}));
		}
	elsif ($in{'type'} eq "myport") {
		$in{'vals'} =~ /^\d+$/ ||
			&error("'$in{'vals'}' is not a valid port number");
		push(@vals, $in{'vals'});
		}
	elsif ($in{'type'} eq "maxconn") {
		$in{'vals'} =~ /^\d+$/ ||
		    &error("'$in{'vals'}' is not a valid number of requests");
		push(@vals, $in{'vals'});
		}
	elsif ($in{'type'} eq "arp") {
		push(@vals, split(/\s+/, $in{'vals'}));
		}

	if ($in{'file'}) {
		&can_access($in{'file'}) ||
			&error(&text('aclsave_efile', $in{'file'}));
		&lock_file($in{'file'});
		open(FILE, ">$in{'file'}");
		foreach $v (@vals) {
			print FILE $v,"\n";
			}
		close(FILE);
		&unlock_file($in{'file'});
		@vals = ( $in{'name'}, $in{'type'}, "\"$in{'file'}\"" );
		}
	else {
		if ($vals[0] =~ /^"(.*)"$/) {
			local $f = $1;
			&can_access($f) ||
				&error(&text('aclsave_efile', $f));
			if ($f !~ /^\// && $access{'root'} ne '/') {
				$vals[0] = "\"$access{'root'}/$f\"";
				}
			
			}
		@vals = ( $in{'name'}, $in{'type'}, @vals );
		}
	$logacl = $newacl = { 'name' => 'acl', 'values' => \@vals };
	if ($acl) { splice(@acls, &indexof($acl, @acls), 1, $newacl); }
	else { push(@acls, $newacl); }

	$newdeny = { 'name' => 'deny_info',
		     'values' => [ $in{'deny'}, $vals[0] ] };
	$didx = &indexof($deny, @denys);
	if ($deny && $in{'deny'}) { $denys[$didx] = $newdeny; }
	elsif ($deny) { splice(@denys, $didx, 1); }
	elsif ($in{'deny'}) { push(@denys, $newdeny); }

	# Update http_access and icp_access directives if the ACL was renamed
	if ($changed) {
		@https = &find_config("http_access", $conf);
		@icps = &find_config("icp_access", $conf);
		$on = $acl->{'values'}->[0];
		foreach $c (@https, @icps) {
			for($j=1; $j<@{$c->{'values'}}; $j++) {
				if ($c->{'values'}->[$j] eq $on) {
					$c->{'values'}->[$j] = $in{'name'};
					}
				elsif ($c->{'values'}->[$j] eq "!$on") {
					$c->{'values'}->[$j] = "!$in{'name'}";
					}
				}
			}
		&save_directive($conf, "http_access", \@https);
		&save_directive($conf, "icp_access", \@icps);
		}
	}
&save_directive($conf, "acl", \@acls);
&save_directive($conf, "deny_info", \@denys);
&flush_file_lines();
&unlock_file($config{'squid_conf'});
&webmin_log($in{'delete'} ? 'delete' : $acl ? 'modify' : 'create',
	    'acl', $logacl->{'values'}->[0], \%in);
&redirect("edit_acl.cgi");

   0707010000eb58000081e40000000000000002000000013ac0389f000001da000000200000000000000000000000000000001c00000003reloc/squid/acl_security.pl   
require './squid-lib.pl';

# acl_security_form(&options)
# Output HTML for editing security options for the squid module
sub acl_security_form
{
print "<tr> <td><b>$text{'acl_root'}</b></td>\n";
printf "<td colspan=3><input name=root size=40 value='%s'> %s</td> </tr>\n",
	$_[0]->{'root'}, &file_chooser_button("root", 1);
}

# acl_security_save(&options)
# Parse the form for security options for the squid module
sub acl_security_save
{
$_[0]->{'root'} = $in{'root'};
}

  0707010000eb59000081e40000000000000002000000013ac0389f000007ac000000200000000000000000000000000000001700000003reloc/squid/always.cgi    #!/usr/local/bin/perl
# always.cgi
# A form for editing or creating http_access directives

require './squid-lib.pl';
&ReadParse();
$conf = &get_config();

if (!defined($in{'index'})) {
	&header($text{'always_create'}, "",
		undef, 0, 0, 0, &restart_button());
	}
else {
	&header($text{'always_edit'}, "",
		undef, 0, 0, 0, &restart_button());
	@always = @{$conf->[$in{'index'}]->{'values'}};
	}
print "<hr>\n";

print "<form action=always_save.cgi>\n";
if (@always) {
	print "<input type=hidden name=index value=$in{'index'}>\n";
	}
print "<table border>\n";
print "<tr $tb> <td><b>$text{'always_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'ahttp_a'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=action value=allow %s> $text{'ahttp_a1'}\n",
	$always[0] eq "allow" ? "checked" : "";
printf "<input type=radio name=action value=deny %s> $text{'ahttp_d'}</td> </tr>\n",
	$always[0] eq "allow" ? "" : "checked";

for($i=1; $i<@always; $i++) { $match{$always[$i]}++; }
@acls = grep { !$done{$_->{'values'}->[0]}++ } &find_config("acl", $conf);
$r = @acls; $r = 10 if ($r > 10);

print "<tr> <td valign=top><b>$text{'ahttp_ma'}</b></td>\n";
print "<td valign=top><select name=yes multiple size=$r width=100>\n";
foreach $a (@acls) {
	printf "<option %s>%s\n",
		$match{$a->{'values'}->[0]} ? "selected" : "",
		$a->{'values'}->[0];
	}
print "</select></td>\n";

print "<td valign=top><b>$text{'ahttp_dma'}</b></td>\n";
print "<td valign=top><select name=no multiple size=$r width=100>\n";
foreach $a (@acls) {
	printf "<option %s>%s\n",
		$match{"!$a->{'values'}->[0]"} ? "selected" : "",
		$a->{'values'}->[0];
	}
print "</select></td> </tr>\n";

print "</table></td></tr></table><br>\n";
print "<input type=submit value=$text{'buttsave'}>\n";
if (@always) { print "<input type=submit value=$text{'buttdel'} name=delete>\n"; }
print "</form>\n";

print "<hr>\n";
&footer("edit_acl.cgi", $text{'ahttp_return'});

0707010000eb5a000081e40000000000000002000000013ac0389f000003d7000000200000000000000000000000000000001c00000003reloc/squid/always_save.cgi   #!/usr/local/bin/perl
# always_save.cgi
# Save or delete an always_direct directive

require './squid-lib.pl';
&ReadParse();
&lock_file($config{'squid_conf'});
$conf = &get_config();

@always = &find_config("always_direct", $conf);
if (defined($in{'index'})) {
	$always = $conf->[$in{'index'}];
	}
if ($in{'delete'}) {
	# delete this restriction
	splice(@always, &indexof($always, @always), 1);
	}
else {
	# update or create
	@vals = ( $in{'action'} );
	foreach $y (split(/\0/, $in{'yes'})) { push(@vals, $y); }
	foreach $n (split(/\0/, $in{'no'})) { push(@vals, "!$n"); }
	$newalways = { 'name' => 'always_direct', 'values' => \@vals };
	if ($always) { splice(@always, &indexof($always, @always),
			      1, $newalways); }
	else { push(@always, $newalways); }
	}
&save_directive($conf, "always_direct", \@always);
&flush_file_lines();
&unlock_file($config{'squid_conf'});
&webmin_log($in{'delete'} ? 'delete' : $always ? 'modify' : 'create', "always");
&redirect("edit_icp.cgi");

 0707010000eb5b000081e40000000000000002000000013ac0389e000001b2000000200000000000000000000000000000001900000003reloc/squid/cachemgr.cgi  #!/usr/local/bin/perl
# cachemgr.cgi
# Run the squid cachemgr.cgi program

require './squid-lib.pl';
$mgr = $config{'cachemgr_path'};
if (&has_command($mgr)) {
	$| = 1;
	open(MGR, "$mgr ".join(" ", @ARGV)." |");
	while(<MGR>) {
		print;
		}
	close(MGR);
	}
else {
	&header($text{'cach_err'}, "");
	print "<hr>\n";
	print &text('cach_nfound',$mgr,$module_name);
	print "\n<p>\n";
	}
print "<hr>\n";
&footer("", $text{'cach_return'});

  0707010000eb5c000081e40000000000000002000000013ac0389f000008cd000000200000000000000000000000000000001a00000003reloc/squid/calamaris.cgi #!/usr/local/bin/perl
# calamaris.cgi
# Run calamaris on the squid logfile(s)

require './squid-lib.pl';
&header($text{'calamaris_title'}, "");
print "<hr>\n";

# is calamaris installed?
if (!&has_command($config{'calamaris'})) {
	print "<p>",&text('calamaris_eprog', "<tt>$config{'calamaris'}</tt>",
			  "/config.cgi?$module_name"),"<p><hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}

# are there any logfiles to analyse?
$ld = $config{'log_dir'};
opendir(DIR, $ld);
while($f = readdir(DIR)) {
	local @st = stat("$ld/$f");
	if ($f =~ /^access.log.*gz$/) {
		push(@files, [ "gunzip -c $ld/$f |", $st[9] ]);
		}
	elsif ($f =~ /^access.log.*Z$/) {
		push(@files, [ "uncompress -c $ld/$f |", $st[9] ]);
		}
	elsif ($f =~ /^access.log/) {
		push(@files, [ "$ld/$f", $st[9] ]);
		}
	}
closedir(DIR);
if (!@files) {
	print "<p>",&text('calamaris_elogs', "<tt>$ld</tt>",
			  "/config.cgi?$module_name"),"<p><hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}

# run calamaris, parsing newest files and records first
$temp = &tempname();
open(CAL, "| $config{'calamaris'} $config{'cal_args'} >$temp 2>/dev/null");
if ($config{'cal_max'}) {
	# read only the last N lines
	print &text('calamaris_last', $config{'cal_max'}),"<p>\n";
	@files = sort { $b->[1] <=> $a->[1] } @files;
	$lnum = 0;
	foreach $f (@files) {
		$left = $config{'cal_max'} - $lnum;
		last if ($left <= 0);
		if ($f->[0] =~ /\|$/) {
			open(LOG, "$f->[0] tail -$left |");
			}
		else {
			open(LOG, "tail -$left $f->[0] |");
			}
		while(<LOG>) {
			print CAL $_;
			$lnum++;
			}
		close(LOG);
		}
	}
else {
	# read all the log files
	foreach $f (@files) {
		open(LOG, $f->[0]);
		while(read(LOG, $buf, 1024) > 0) {
			print CAL $buf;
			}
		close(LOG);
		}
	}
close(CAL);

# Put the calamaris output into a nice webmin like table.
$date = localtime(time());
print "<table border width=100%>\n";
print "<tr $tb> <td><b>",&text('calamaris_gen', $date),"</b></td> </tr>\n";
print "<tr $cb> <td>\n";

open(OUT, $temp);
while(<OUT>) {
	if (/<\s*\/head/i || /<\s*body/i) { $inbody = 1; }
	elsif (/<\s*\/body/i) { $inbody = 0; }
	elsif ($inbody) { print; }
	}
close(OUT);
unlink($temp);

# Close it.
print "</td></tr></table><p>";

print "<hr>\n";
&footer("", $text{'index_return'});

   0707010000eb5d000081e40000000000000002000000013ac0389e00000581000000200000000000000000000000000000001600000003reloc/squid/chown.cgi #!/usr/local/bin/perl
# chown.cgi
# Change permissions on cache/log/pid files after a user change

require './squid-lib.pl';
$| = 1;
&header($text{'chown_header'}, "");
print "<hr>\n";
$conf = &get_config();

# Stop squid
if ($pidstruct = &find_config("pid_filename", $conf)) {
	$pidfile = $pidstruct->{'values'}->[0];
	}
else { $pidfile = $config{'pid_file'}; }
if (open(PID, $pidfile)) {
	<PID> =~ /(\d+)/; $pid = $1;
	close(PID);
	}
if ($pid && kill(0, $pid)) {
	print "<p>$text{'chown_stop'}<br>\n";
	system("$config{'squid_path'} -f $config{'squid_conf'} ".
	       "-k shutdown >/dev/null 2>&1");
	for($i=0; $i<40; $i++) {
		if (!kill(0, $pid)) { last; }
		sleep(1);
		}
	print "$text{'chown_done'}<br>\n";
	$stopped++;
	}

# Change ownership
print "<p>$text{'chown_chown'}<br>\n";
($user, $group) = &get_squid_user($conf);
&chown_files($user, $group, $conf);
print "$text{'chown_done'}<br>\n";

# Re-start Squid
if ($stopped) {
	print "<p>$text{'chown_restart'}<br>\n";
	$temp = &tempname();
	system("$config{'squid_path'} -sY -f $config{'squid_conf'} >$temp 2>&1 </dev/null &");
	sleep(3);
	$errs = `cat $temp`;
	unlink($temp);
	if ($errs) {
		system("$config{'squid_path'} -k shutdown -f $config{'squid_conf'} >/dev/null 2>&1");
		print "$text{'chown_failrestart'}<br>\n";
		print "<pre>$errs</pre>\n";
		}
	print "$text{'chown_done'}<br>\n";
	}

print "<hr>\n";
&footer("", $text{'chown_return'});

   0707010000eb5e000081e40000000000000002000000013ac0389f000009e5000000200000000000000000000000000000001600000003reloc/squid/clear.cgi #!/usr/local/bin/perl
# clear.cgi
# Delete the cache, chown the directory to the correct user and re-run squid -z

require './squid-lib.pl';
&ReadParse();
$| = 1;
$config{'cache_dir'} =~ /^\/\S+/ || &error("Cache directory not set");
&header($text{'clear_header'}, "");
print "<hr>\n";
$conf = &get_config();

if (!$in{'confirm'}) {
	print "<p>";
	print $text{'clear_msgclear'},"<br>\n";
	print $text{'clear_msgclear2'},"<br>\n";
	print "<form action=clear.cgi>\n";
	print "<center><input type=submit name=confirm ",
	      "value=\"$text{'clear_buttclear'}\"></center></form>\n";
	print "<hr>\n";
	&footer("", $text{'clear_return'});
	exit;
	}

# Stop squid
if ($pidstruct = &find_config("pid_filename", $conf)) {
	$pidfile = $pidstruct->{'values'}->[0];
	}
else { $pidfile = $config{'pid_file'}; }
if (open(PID, $pidfile)) {
	<PID> =~ /(\d+)/; $pid = $1;
	close(PID);
	}
if ($pid && kill(0, $pid)) {
	print "<p>$text{'clear_stop'}<br>\n";
	&system_logged("$config{'squid_path'} -f $config{'squid_conf'} ".
	               "-k shutdown >/dev/null 2>&1");
	for($i=0; $i<40; $i++) {
		if (!kill(0, $pid)) { last; }
		sleep(1);
		}
	print "$text{'clear_done'}<br>\n";
	$stopped++;
	}

# Get list of cache dirs
if (@cachestruct = &find_config("cache_dir", $conf)) {
	if ($squid_version >= 2.3) {
		@caches = map { $_->{'values'}->[1] } @cachestruct;
		}
	else {
		@caches = map { $_->{'values'}->[0] } @cachestruct;
		}
	}
else { @caches = ( $config{'cache_dir'} ); }

# Delete old cache files and re-create with same permissions!
print "<p>$text{'clear_del'}<br>\n";
foreach $c (@caches) {
	@st = stat($c);
	if (@st) {
		&system_logged("rm -rf $c >/dev/null 2>&1");
		mkdir($c, 0755);
		chown($st[4], $st[5], $c);
		chmod($st[2], $c);
		}
	}
print "$text{'clear_done'}<br>\n";

$cmd = "$config{'squid_path'} -f $config{'squid_conf'} -z";
print "<p>".&text('clear_init',$cmd)."<br>\n";
print "<pre>\n";
&additional_log('exec', undef, $cmd);
open(INIT, "$cmd 2>&1 |");
while(<INIT>) {
	print;
	}
close(INIT);
print "</pre>\n";
print "$text{'clear_done'}<br>\n";

# Try to re-start squid
if ($stopped) {
	$temp = &tempname();
	&system_logged("$config{'squid_path'} -sY -f $config{'squid_conf'} >$temp 2>&1 </dev/null &");
	sleep(3);
	$errs = `cat $temp`;
	unlink($temp);
	if ($errs) {
		&system_logged("$config{'squid_path'} -k shutdown -f $config{'squid_conf'} >/dev/null 2>&1");
		print "$text{'clear_failrestart'}<br>\n";
		print "<pre>$errs</pre>\n";
		}
	}

&webmin_log("clear");
print "<hr>\n";
&footer("", $text{'clear_return'});

   0707010000eb5f000081a40000000000000002000000013ac0389e000000f0000000200000000000000000000000000000001700000003reloc/squid/config-aix    log_dir=/var/squid/logs
squid_path=/usr/local/bin/squid
cache_dir=/var/squid/cache
squid_conf=/etc/squid/squid.conf
pid_file=/var/squid/logs/squid.pid
cachemgr_path=/usr/local/bin/cachemgr.cgi
calamaris=calamaris
cal_max=50000
cal_args=-aw
0707010000eb60000081a40000000000000002000000013ac0389f000000ef000000200000000000000000000000000000002000000003reloc/squid/config-cobalt-linux   log_dir=/home/squid/logs
squid_path=/home/squid/bin/squid
cache_dir=/home/squid/cache
squid_conf=/etc/squid/squid.conf
pid_file=/etc/squid/squid.pid
cachemgr_path=/home/squid/bin/cachemgr.cgi
calamaris=calamaris
cal_max=50000
cal_args=-aw
 0707010000eb61000081a40000000000000002000000013ac0389f000000d5000000200000000000000000000000000000001f00000003reloc/squid/config-corel-linux    log_dir=/var/log/squid
squid_path=squid
cache_dir=/var/spool/squid
squid_conf=/etc/squid.conf
pid_file=/var/run/squid.pid
cachemgr_path=/usr/lib/cgi-bin/cachemgr.cgi
calamaris=calamaris
cal_max=50000
cal_args=-aw
   0707010000eb62000081a40000000000000002000000013ac0389f000000d5000000200000000000000000000000000000002000000003reloc/squid/config-debian-linux   log_dir=/var/log/squid
squid_path=squid
cache_dir=/var/spool/squid
squid_conf=/etc/squid.conf
pid_file=/var/run/squid.pid
cachemgr_path=/usr/lib/cgi-bin/cachemgr.cgi
calamaris=calamaris
cal_max=50000
cal_args=-aw
   0707010000eb63000081a40000000000000002000000013ac0389f0000010e000000200000000000000000000000000000001b00000003reloc/squid/config-freebsd    log_dir=/usr/local/squid/logs
squid_path=/usr/local/sbin/squid
cache_dir=/usr/local/squid/cache
squid_conf=/usr/local/etc/squid/squid.conf
pid_file=/usr/local/squid/logs/squid.pid
cachemgr_path=/usr/local/sbin/cachemgr.cgi
calamaris=calamaris
cal_max=50000
cal_args=-aw
  0707010000eb64000081a40000000000000002000000013ac0389e00000118000000200000000000000000000000000000001800000003reloc/squid/config-hpux   log_dir=/usr/local/squid/logs
squid_path=/usr/local/squid/bin/squid
cache_dir=/usr/local/squid/cache
squid_conf=/usr/local/squid/etc/squid.conf
pid_file=/usr/local/squid/logs/squid.pid
cachemgr_path=/usr/local/squid/bin/cachemgr.cgi
calamaris=calamaris
cal_max=50000
cal_args=-aw
0707010000eb65000081a40000000000000002000000013ac0389f00000118000000200000000000000000000000000000001800000003reloc/squid/config-irix   log_dir=/usr/local/squid/logs
squid_path=/usr/local/squid/bin/squid
cache_dir=/usr/local/squid/cache
squid_conf=/usr/local/squid/etc/squid.conf
pid_file=/usr/local/squid/logs/squid.pid
cachemgr_path=/usr/local/squid/bin/cachemgr.cgi
calamaris=calamaris
cal_max=50000
cal_args=-aw
0707010000eb66000081a40000000000000002000000013ac0389f000000f9000000200000000000000000000000000000001d00000003reloc/squid/config-lfs-linux  log_dir=/usr/squid/logs
cache_dir=/usr/squid/cache
squid_path=/usr/squid/bin/squid
squid_conf=/usr/squid/etc/squid.conf
pid_file=/usr/squid/logs/squid.pid
cachemgr_path=/usr/apache/cgi-bin/cachemgr.cgi
calamaris=calamaris
cal_max=50000
cal_args=-aw
   0707010000eb67000081a40000000000000002000000013ac0389f00000118000000200000000000000000000000000000001900000003reloc/squid/config-macos  log_dir=/usr/local/squid/logs
squid_path=/usr/local/squid/bin/squid
cache_dir=/usr/local/squid/cache
squid_conf=/usr/local/squid/etc/squid.conf
pid_file=/usr/local/squid/logs/squid.pid
cachemgr_path=/usr/local/squid/bin/cachemgr.cgi
calamaris=calamaris
cal_max=50000
cal_args=-aw
0707010000eb68000081a40000000000000002000000013ac0389f00000130000000200000000000000000000000000000001e00000003reloc/squid/config-open-linux log_dir=/var/log/squid
squid_path=squid
cache_dir=/var/spool/squid
squid_conf=/etc/squid.d/squid.conf
pid_file=/var/run/squid.pid
cachemgr_path=/home/httpd/cgi-bin/cachemgr.cgi
squid_start=/etc/rc.d/init.d/squid start
squid_stop=/etc/rc.d/init.d/squid stop
calamaris=calamaris
cal_max=50000
cal_args=-aw
0707010000eb69000081a40000000000000002000000013ac0389f00000132000000200000000000000000000000000000002300000003reloc/squid/config-open-linux-3.1e    log_dir=/var/log/squid.d
squid_path=squid
cache_dir=/var/spool/squid
squid_conf=/etc/squid.d/squid.conf
pid_file=/var/run/squid.pid
cachemgr_path=/home/httpd/cgi-bin/cachemgr.cgi
squid_start=/etc/rc.d/init.d/squid start
squid_stop=/etc/rc.d/init.d/squid stop
calamaris=calamaris
cal_max=50000
cal_args=-aw
  0707010000eb6a000081a40000000000000002000000013ac0389f0000010e000000200000000000000000000000000000001b00000003reloc/squid/config-openbsd    log_dir=/usr/local/squid/logs
squid_path=/usr/local/sbin/squid
cache_dir=/usr/local/squid/cache
squid_conf=/usr/local/etc/squid/squid.conf
pid_file=/usr/local/squid/logs/squid.pid
cachemgr_path=/usr/local/sbin/cachemgr.cgi
calamaris=calamaris
cal_max=50000
cal_args=-aw
  0707010000eb6b000081a40000000000000002000000013ac0389e00000118000000200000000000000000000000000000001e00000003reloc/squid/config-openserver log_dir=/usr/local/squid/logs
squid_path=/usr/local/squid/bin/squid
cache_dir=/usr/local/squid/cache
squid_conf=/usr/local/squid/etc/squid.conf
pid_file=/usr/local/squid/logs/squid.pid
cachemgr_path=/usr/local/squid/bin/cachemgr.cgi
calamaris=calamaris
cal_max=50000
cal_args=-aw
0707010000eb6c000081a40000000000000002000000013ac0389f00000118000000200000000000000000000000000000001800000003reloc/squid/config-osf1   log_dir=/usr/local/squid/logs
squid_path=/usr/local/squid/bin/squid
cache_dir=/usr/local/squid/cache
squid_conf=/usr/local/squid/etc/squid.conf
pid_file=/usr/local/squid/logs/squid.pid
cachemgr_path=/usr/local/squid/bin/cachemgr.cgi
calamaris=calamaris
cal_max=50000
cal_args=-aw
0707010000eb6d000081a40000000000000002000000013ac0389f000000d8000000200000000000000000000000000000002000000003reloc/squid/config-redhat-linux   log_dir=/var/log/squid
squid_path=squid
cache_dir=/var/spool/squid
squid_conf=/etc/squid.conf
pid_file=/var/run/squid.pid
cachemgr_path=/home/httpd/cgi-bin/cachemgr.cgi
calamaris=calamaris
cal_max=50000
cal_args=-aw
0707010000eb6e000081a40000000000000002000000013ac0389f0000012e000000200000000000000000000000000000002400000003reloc/squid/config-redhat-linux-6.0   log_dir=/var/log/squid
squid_path=squid
cache_dir=/var/spool/squid
squid_conf=/etc/squid/squid.conf
pid_file=/var/run/squid.pid
cachemgr_path=/home/httpd/cgi-bin/cachemgr.cgi
squid_start=/etc/rc.d/init.d/squid start
squid_stop=/etc/rc.d/init.d/squid stop
calamaris=calamaris
cal_max=50000
cal_args=-aw
  0707010000eb6f000081a40000000000000002000000013ac0389f0000012e000000200000000000000000000000000000002400000003reloc/squid/config-redhat-linux-6.1   log_dir=/var/log/squid
squid_path=squid
cache_dir=/var/spool/squid
squid_conf=/etc/squid/squid.conf
pid_file=/var/run/squid.pid
cachemgr_path=/home/httpd/cgi-bin/cachemgr.cgi
squid_start=/etc/rc.d/init.d/squid start
squid_stop=/etc/rc.d/init.d/squid stop
calamaris=calamaris
cal_max=50000
cal_args=-aw
  0707010000eb70000081a40000000000000002000000013ac0389f0000012e000000200000000000000000000000000000002400000003reloc/squid/config-redhat-linux-6.2   log_dir=/var/log/squid
squid_path=squid
cache_dir=/var/spool/squid
squid_conf=/etc/squid/squid.conf
pid_file=/var/run/squid.pid
cachemgr_path=/home/httpd/cgi-bin/cachemgr.cgi
squid_start=/etc/rc.d/init.d/squid start
squid_stop=/etc/rc.d/init.d/squid stop
calamaris=calamaris
cal_max=50000
cal_args=-aw
  0707010000eb71000081a40000000000000002000000013ac0389e0000012e000000200000000000000000000000000000002400000003reloc/squid/config-redhat-linux-7.0   log_dir=/var/log/squid
squid_path=squid
cache_dir=/var/spool/squid
squid_conf=/etc/squid/squid.conf
pid_file=/var/run/squid.pid
cachemgr_path=/home/httpd/cgi-bin/cachemgr.cgi
squid_start=/etc/rc.d/init.d/squid start
squid_stop=/etc/rc.d/init.d/squid stop
calamaris=calamaris
cal_max=50000
cal_args=-aw
  0707010000eb72000081a40000000000000002000000013ac0389f0000012e000000200000000000000000000000000000002400000003reloc/squid/config-redhat-linux-7.1   log_dir=/var/log/squid
squid_path=squid
cache_dir=/var/spool/squid
squid_conf=/etc/squid/squid.conf
pid_file=/var/run/squid.pid
cachemgr_path=/home/httpd/cgi-bin/cachemgr.cgi
squid_start=/etc/rc.d/init.d/squid start
squid_stop=/etc/rc.d/init.d/squid stop
calamaris=calamaris
cal_max=50000
cal_args=-aw
  0707010000eb73000081a40000000000000002000000013ac0389f00000118000000200000000000000000000000000000002300000003reloc/squid/config-slackware-linux    log_dir=/usr/local/squid/logs
squid_path=/usr/local/squid/bin/squid
cache_dir=/usr/local/squid/cache
squid_conf=/usr/local/squid/etc/squid.conf
pid_file=/usr/local/squid/logs/squid.pid
cachemgr_path=/usr/local/squid/bin/cachemgr.cgi
calamaris=calamaris
cal_max=50000
cal_args=-aw
0707010000eb74000081a40000000000000002000000013ac0389e00000118000000200000000000000000000000000000001b00000003reloc/squid/config-solaris    log_dir=/usr/local/squid/logs
squid_path=/usr/local/squid/bin/squid
cache_dir=/usr/local/squid/cache
squid_conf=/usr/local/squid/etc/squid.conf
pid_file=/usr/local/squid/logs/squid.pid
cachemgr_path=/usr/local/squid/bin/cachemgr.cgi
calamaris=calamaris
cal_max=50000
cal_args=-aw
0707010000eb75000081a40000000000000002000000013ac0389f000000cf000000200000000000000000000000000000001e00000003reloc/squid/config-suse-linux log_dir=/var/squid/logs
squid_path=squid
cache_dir=/var/squid/cache
squid_conf=/etc/squid.conf
pid_file=/var/run/squid.pid
cachemgr_path=/usr/sbin/cachemgr.cgi
calamaris=calamaris
cal_max=50000
cal_args=-aw
 0707010000eb76000081a40000000000000002000000013ac0389f000000d8000000200000000000000000000000000000001f00000003reloc/squid/config-turbo-linux    log_dir=/var/log/squid
squid_path=squid
cache_dir=/var/spool/squid
squid_conf=/etc/squid.conf
pid_file=/var/run/squid.pid
cachemgr_path=/home/httpd/cgi-bin/cachemgr.cgi
calamaris=calamaris
cal_max=50000
cal_args=-aw
0707010000eb77000081a40000000000000002000000013ac0389e00000118000000200000000000000000000000000000001c00000003reloc/squid/config-unixware   log_dir=/usr/local/squid/logs
squid_path=/usr/local/squid/bin/squid
cache_dir=/usr/local/squid/cache
squid_conf=/usr/local/squid/etc/squid.conf
pid_file=/usr/local/squid/logs/squid.pid
cachemgr_path=/usr/local/squid/bin/cachemgr.cgi
calamaris=calamaris
cal_max=50000
cal_args=-aw
0707010000eb78000081a40000000000000002000000013ac0389e000001f5000000200000000000000000000000000000001800000003reloc/squid/config.info   squid_conf=Full path to squid config file,0
squid_start=Command to start squid,3,Automatic
squid_stop=Command to stop squid,3,Automatic
squid_path=Squid executable,0
pid_file=Full path to PID file,0
cache_dir=Full path to squid cache directory,0
cachemgr_path=Squid cachemgr.cgi executable,0
log_dir=Full path to squid log directory,0
calamaris=Path to calamaris log analysis program,3,Not installed
cal_args=Arguments to calamaris command,0
cal_max=Maximum log lines to pass to calamaris,3,Unlimited
   0707010000eb79000081a40000000000000002000000013ac0389f000001a8000000200000000000000000000000000000001b00000003reloc/squid/config.info.de    squid_conf=Absoluter Pfad zur Squid Konfigurationsdatei,0
squid_start=Kommando zum Starten von Squid,3,Automatisch
squid_stop=Kommando zum Stoppen von Squid,3,Automatisch
squid_path=Ausf&uuml;hrbare Datei von Squid,0
pid_file=Absoluter Pfad zu PID Datei,0
cache_dir=Absoluter Pfad zum Squid Cache Verzeichnis,0
cachemgr_path=Ausf&uuml;hrbare Datei zum Squid cachemgr.cgi,0
log_dir=Absoluter Pfad zum Squid Log Verzeichnis,0
0707010000eb7a000081a40000000000000002000000013ac0389f0000027b000000200000000000000000000000000000001b00000003reloc/squid/config.info.es    squid_conf=Trayectoria completa a archivo de configuraci髇 de squid,0
squid_start=Comando para arrancar squid,3,Autom醫ico
squid_stop=Comando para parar squid,3.Autom醫ico
squid_path=Ejecutable Squid,0
pid_file=Trayectoria completa a archivo PID,0
cache_dir=Trayectoria completa a directorio de cach de squid,0
cachemgr_path=Ejecutable cachemgr.cgi de Squid,0
log_dir=Trayectoria completa a directorio de historial de squid,0
calamaris=Trayectoria a programa de an醠isis de historial de calamaris,3,No instalado
cal_args=Argumentos para comando calamaris,0
cal_max=N鷐ero m醲imo de l韓eas de historial a pasar a calamaris,3,Ilimitado
 0707010000eb7b000081a40000000000000002000000013ac0389f0000023d000000200000000000000000000000000000001b00000003reloc/squid/config.info.fr    squid_conf=Chemin du fichier de configuration de squid,0
squid_path=Ex閏utable de squid,0
pid_file=Chemin du fichier de num閞o de processus,0
cache_dir=R閜ertoire cache de squid,0
cachemgr_path=Chemin de l'ex閏utable 'cachemgr.cgi',0
log_dir=R閜ertoire d'audit de squid,0
squid_start=Commande de d閙arrage de squid,3,Automatique
squid_stop=Commande d'arr阾 de squid,3,Automatique
calamaris=Chemin vers le programme d'analyse de log calamaris,3,Non install
cal_args=Arguments de la commande calamaris,0
cal_max=Nb maximum de lignes de log  passer  calamaris,3,Non limit
   0707010000eb7c000081a40000000000000002000000013ac0389e00000284000000200000000000000000000000000000001b00000003reloc/squid/config.info.pl    squid_conf=Pe硁a 禼ie縦a do pliku konfiguracyjnego Squida,0
squid_start=Polecenie uruchamiaj眂e Squida,3,Automatycznie
squid_stop=Polecenie zatrzymuj眂e Squida,3,Automatycznie
squid_path=Program Squid,0
pid_file=Pe硁a 禼ie縦a do pliku z&nbsp;numerem PID Squida,0
cache_dir=Pe硁a 禼ie縦a do katalogu cache Squida,0
cachemgr_path=Program <tt>cachemgr.cgi</tt> Squida,0
log_dir=Pe硁a 禼ie縦a do katalogu log體 Squida,0
calamaris=ie縦a do programu analizy log體 <tt>calamaris</tt>,3,Nie zainstalowano
cal_args=Argumenty dla polecenia <tt>calamaris</tt>,0
cal_max=Maksymalna liczba linii logu przekazywanych do <tt>calamaris</tt>,3,Nieograniczona
0707010000eb7d000081a40000000000000002000000013ac0389f0000011a000000200000000000000000000000000000001e00000003reloc/squid/config.info.ru_RU log_dir=项腠 矬螯  赅蜞腩泱 骟痦嚯钼 squid,0
cache_dir=项腠 矬螯  挲 赅蜞腩泱 squid,0
squid_path=锐镱腠屐 祛潴朦 squid,0
squid_conf=项腠 矬螯  羿殡 觐眙桡箴圉梃 squid,0
pid_file=项腠 矬螯  PID 羿殡 squid,0
cachemgr_path=锐镱腠屐 祛潴朦 cachemgr.cgi 潆 squid,0
  0707010000eb7e000081a40000000000000002000000013ac0389f0000011a000000200000000000000000000000000000001e00000003reloc/squid/config.info.ru_SU squid_conf=鹣涛偈 姓载  屏侍 讼纹汕找撩缮 squid,0
squid_path=橛邢涛雅唾 拖恼特 squid,0
pid_file=鹣涛偈 姓载  PID 屏侍 squid,0
cache_dir=鹣涛偈 姓载  塑 肆粤滔钦 squid,0
cachemgr_path=橛邢涛雅唾 拖恼特 cachemgr.cgi 奶 squid,0
log_dir=鹣涛偈 姓载  肆粤滔钦 终椅撂献 squid,0
  0707010000eb7f000081a40000000000000002000000013ac0389f00000250000000200000000000000000000000000000001b00000003reloc/squid/config.info.sv    squid_conf=Fullst鋘dig s鰇v鋑 till inst鋖lningsfil f鰎 squid,0
squid_start=Kommando f鰎 att starta squid,3,Automatiskt
squid_stop=Kommando f鰎 att stanna squid,3,Automatiskt
squid_path=Squid-k鰎fil,0
pid_file=Fullst鋘dig s鰇v鋑 till PID-fil,0
cache_dir=Fullst鋘dig s鰇v鋑 till squid-cache-katalog,0
cachemgr_path=Squid-cachemgr.cgi-k鰎fil,0
log_dir=Fullst鋘dig s鰇v鋑 till squid-loggkatalog,0
calamaris=S鰇v鋑 till logganalyseringsprogrammet calamaris,3,Inte installerat
cal_args=Argument till calamaris-kommando,0
cal_max=Maximalt antal loggrader som ska skickas till calamaris,3,Obegr鋘sat
0707010000eb80000081a40000000000000002000000013ac0389e0000015f000000200000000000000000000000000000001b00000003reloc/squid/config.info.tr    squid_conf=Squid yap齦and齬ma dosyas齨齨 tam yolu,0
squid_start=Squid'i baatma komutu,3,Otomatik
squid_stop=Squid'i durdurma komutu,3,Otomatik
squid_path=Squid 鏰lt齬齦abiliri,0
pid_file=PID dosyas齨齨 tam yeri,0
cache_dir=Squid cache dizinin tam yeri,0
cachemgr_path=Squid cachemgr.cgi 鏰lt齬齦abilir,0
log_dir=Squid kay齮 dizininin tam yeri,0
 0707010000eb81000081a40000000000000002000000013ac0389f00000175000000200000000000000000000000000000001e00000003reloc/squid/config.info.zh_CN squid_conf=squid 配置文件的全路径,0
squid_start=启动 squid的命令,3,自动
squid_stop=停止 stop squid 的命令,3,自动
squid_path=Squid 可执行,0
pid_file=PID 文件的全路径,0
cache_dir=squid缓冲目录的全路径,0
cachemgr_path=Squid cachemgr.cgi 可执行,0
log_dir=日志目录的全路径,0
calamaris=到达 calamaris 日志分析程序的路径,3,没有安装
cal_max=传递给  calamaris 的最大日志行数,3,无限
   0707010000eb82000081a40000000000000002000000013ac0389f00000128000000200000000000000000000000000000002300000003reloc/squid/config.info.zh_TW.Big5    squid_conf= Squid 舱篈郎Ч俱隔畖,0
squid_start=币笆 Squid ㏑,3,笆
squid_stop=氨ゎ Squid ㏑,3,笆
squid_path=Squid 磅︽郎,0
pid_file= PID 郎Ч俱隔畖,0
cache_dir= Squid еヘ魁Ч俱隔畖,0
cachemgr_path=Squid  cachemgr.cgi 磅︽郎,0
log_dir= Squid 魁ヘ魁Ч俱隔畖,0
0707010000eb83000081a40000000000000002000000013ac0389f00000007000000200000000000000000000000000000001700000003reloc/squid/defaultacl    root=/
 0707010000eb84000081e40000000000000002000000013ac0389e00000e7e000000200000000000000000000000000000001900000003reloc/squid/edit_acl.cgi  #!/usr/local/bin/perl
# edit_acl.cgi
# Display a list of all ACLs and restrictions using them

require './squid-lib.pl';
&header($text{'eacl_header'}, "", "edit_acl", 0, 0, 0, &restart_button());
$conf = &get_config();

print "<hr><p>\n";
print "<table border cellpadding=5 width=100%><tr>\n";
print "<td rowspan=2 valign=top width=50%>\n";
@acl = &find_config("acl", $conf);
if (@acl) {
	# List all defined access control directives
	print "<h3>$text{'eacl_acls'}</h3>\n";
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'eacl_name'}</b></td>\n"; 
	print "<td><b>$text{'eacl_type'}</b></td>\n";
	print "<td><b>$text{'eacl_match'}</b></td> </tr>\n";
	foreach $a (@acl) {
		@v = @{$a->{'values'}};
		print "<tr $cb>\n";
		print "<td><a href=\"acl.cgi?index=$a->{'index'}\">",
		      "$v[0]</a></td>\n";
		print "<td nowrap>$acl_types{$v[1]}</td>\n";
		print "<td>",join(' ', @v[2..$#v]),"</td>\n";
		print "</tr>\n";
		}
	print "</table>\n";
	}
else {
	print "<b>$text{'eacl_noacls'}</b><br>\n";
	}
print "<form action=acl.cgi>\n";
print "<input type=submit value=\"$text{'eacl_buttcreate'}\">\n";
print "<select name=type>\n";
foreach $t (sort { $acl_types{$a} cmp $acl_types{$b} } keys %acl_types) {
	print "<option value=$t>$acl_types{$t}\n";
	}
print "</select></form>\n";

print "</td><td valign=top width=50%>\n";
@http = &find_config("http_access", $conf);
if (@http) {
	print "<h3>$text{'eacl_pr'}</h3>\n";
	print "<table border width=100%>\n";
	print "<tr $tb><td width=10%><b>$text{'eacl_act'}</b></td>\n";
	print "<td><b>$text{'eacl_acls1'}</b></td>\n";
	print "<td width=10%><b>$text{'eacl_move'}</b></td> </tr>\n";
	$hc = 0;
	foreach $h (@http) {
		@v = @{$h->{'values'}};
		if ($v[0] eq "allow") {
			$v[0] = $text{'eacl_allow'};
		} else {
			$v[0] = $text{'eacl_deny'};
		}
		print "<tr $cb>\n";
		print "<td><a href=\"http_access.cgi?index=$h->{'index'}\">",
		      "$v[0]</a></td>\n";
		print "<td>",join(' ', @v[1..$#v]),"</td>\n";
		print "<td>\n";
		if ($hc != @http-1) {
			print "<a href=\"move_http.cgi?$hc+1\">",
			      "<img src=images/down.gif border=0></a>";
			}
		else { print "<img src=images/gap.gif>"; }
		if ($hc != 0) {
			print "<a href=\"move_http.cgi?$hc+-1\">",
			      "<img src=images/up.gif border=0></a>";
			}
		print "</td></tr>\n";
		$hc++;
		}
	print "</table>\n";
	}
else {
	print "<b>$text{'eacl_nopr'}</b><br>\n";
	}
print "<a href=http_access.cgi?new=1>$text{'eacl_addpr'}</a>\n";
print "</td></tr><tr><td valign=top width=50%>\n";

@icp = &find_config("icp_access", $conf);
if (@icp) {
	print "<h3>$text{'eacl_icpr'}</h3>\n";
	print "<table border width=100%>\n";
	print "<tr $tb> <td width=10%><b>$text{'eacl_act'}</b></td>\n"; 
	print "<td><b>$text{'eacl_acls1'}</b></td>\n";
	print "<td width=10%><b>$text{'eacl_move'}</b></td> </tr>\n";
	$ic = 0;
	foreach $i (@icp) {
		@v = @{$i->{'values'}};
		if ($v[0] eq "allow") {
			$v[0] = $text{'eacl_allow'};
		} else {
			$v[0] = $text{'eacl_deny'};
		}
		print "<tr $cb>\n";
		print "<td><a href=\"icp_access.cgi?index=$i->{'index'}\">",
		      "$v[0]</a></td>\n";
		print "<td>",join(' ', @v[1..$#v]),"</td>\n";
		print "<td>\n";
		if ($ic != @icp-1) {
			print "<a href=\"move_icp.cgi?$ic+1\">",
			      "<img src=images/down.gif border=0></a>";
			}
		else { print "<img src=images/gap.gif>"; }
		if ($ic != 0) {
			print "<a href=\"move_icp.cgi?$ic+-1\">",
			      "<img src=images/up.gif border=0></a>";
			}
		print "</td></tr>\n";
		$ic++;
		}
	print "</table>\n";
	}
else {
	print "<b>$text{'eacl_noicpr'}</b><br>\n";
	}
print "<a href=icp_access.cgi?new=1>$text{'eacl_addicpr'}</a>\n";

print "</td></tr></table><p>\n";

print "<hr>\n";
&footer("", $text{'eacl_return'});

  0707010000eb85000081e40000000000000002000000013ac0389e00000c2f000000200000000000000000000000000000001b00000003reloc/squid/edit_admin.cgi    #!/usr/local/bin/perl
# edit_admin.cgi
# A form for editing admin options

require './squid-lib.pl';
&header($text{'eadm_header'}, "", "edit_admin", 0, 0, 0, &restart_button());
print "<hr>\n";
$conf = &get_config();

print "<form action=save_admin.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'eadm_aao'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

if ($squid_version < 2) {
	print "<tr>\n";
	$v = &find_config("cache_effective_user", $conf);
	print "<td><b>$text{'eadm_runasuu'}</b></td> <td colspan=3>\n";
	printf "<input type=radio name=effective_def value=1 %s> $text{'eadm_nochange'}\n",
		$v ? "" : "checked";
	printf "&nbsp;<input type=radio name=effective_def value=0 %s>\n",
		$v ? "checked" : "";
	print $text{'eadm_user'} ,&unix_user_input("effective_u",
				       $v->{'values'}->[0]),"\n";
	print $text{'eadm_group'} ,&unix_group_input("effective_g",
					 $v->{'values'}->[1]),"\n";
	print "</td> </tr>\n";
	}
else {
	print "<tr>\n";
	print &opt_input($text{'eadm_runasuu'}, "cache_effective_user", $conf,
			 $text{'eadm_nochange'}, 8,
			 &user_chooser_button("cache_effective_user", 0));
	print &opt_input($text{'eadm_runasug'}, "cache_effective_group", $conf,
			 $text{'eadm_nochange'}, 8,
			 &group_chooser_button("cache_effective_group", 0));
	print "</tr>\n";
	}

if ($squid_version >= 2) { 
        print "<tr>\n";
        print &opt_input($text{'eadm_par'}, "proxy_auth_realm",
                         $conf, $text{'eadm_default'}, 40); 
        print "</tr>\n";      
        }               

print "<tr>\n";
print &opt_input($text{'eadm_cmemail'}, "cache_mgr",
		 $conf, $text{'eadm_default'}, 35);
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'eadm_vhost'}, "visible_hostname",
		 $conf, $text{'eadm_auto'}, 35);
print "</tr>\n";

if ($squid_version < 2) {
	print "<tr>\n";
	print &opt_input($text{'eadm_annto'}, "announce_to",
			 $conf, $text{'eadm_default'}, 40);
	print "</tr>\n";

	print "<tr>\n";
	print &opt_input($text{'eadm_every'}, "cache_announce", $conf,
			 $text{'eadm_never'}, 6, "hours");
	print "</tr>\n";
	}
else {
	print "<tr>\n";
	print &opt_input($text{'eadm_uniq'}, "unique_hostname",
			 $conf, $text{'eadm_auto'}, 35);
	print "</tr>\n";

	if ($squid_version >= 2.4) {
		print "<tr>\n";
		print &opt_input($text{'eadm_haliases'}, "hostname_aliases",
				 $conf, $text{'eadm_none'}, 35);
		print "</tr>\n";
		}

	print "<tr>\n";
	print &opt_input($text{'eadm_cah'}, "announce_host", $conf,
			 $text{'eadm_default'}, 20);
	print &opt_input($text{'eadm_cap'}, "announce_port", $conf,
			 $text{'eadm_default'}, 6);
	print "</tr>\n";

	print "<tr>\n";
	print &opt_input($text{'eadm_caf'}, "announce_file", $conf,
			 $text{'eadm_none'}, 35, &file_chooser_button("announce_file"));
	print "</tr>\n";

	print "<tr>\n";
	print &opt_time_input($text{'eadm_annp'}, "announce_period", $conf,
			      $text{'eadm_default'}, 4);
	print "</tr>\n";
	}

print "</table></td></tr></table><br>\n";
print "<input type=submit value=$text{'eadm_buttsave'}></form>\n";

print "<hr>\n";
&footer("", $text{'eadm_return'});

 0707010000eb86000081e40000000000000002000000013ac0389e00000887000000200000000000000000000000000000001a00000003reloc/squid/edit_auth.cgi #!/usr/local/bin/perl
# edit_auth.cgi
# Display authentication options and list of proxy users

require './squid-lib.pl';
&header($text{'eauth_header'}, "", undef, 0, 0, 0, &restart_button());
print "<hr>\n";
$conf = &get_config();

print "<form action=save_auth.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'eauth_aopt'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

$v = &find_config("proxy_auth", $conf);
$authfile = $v->{'values'}->[0];
$authdom = $v->{'values'}->[1];
print "<tr> <td><b>$text{'eauth_puf'}</b></td> <td>\n";
printf "<input type=radio name=authfile_def value=1 %s> $text{'eauth_none'}&nbsp;\n",
	$authfile ? "" : "checked";
printf "<input type=radio name=authfile_def value=0 %s>\n",
	$authfile ? "checked" : "";
printf "<input name=authfile size=30 value=\"%s\">\n",
	$authfile ? $authfile : "";
print &file_chooser_button("authfile"),"</td> </tr>\n";

print "<tr>\n";
print "<td><b>$text{'eauth_nologin'}</b></td> <td>\n";
printf "<input type=radio name=authdom_def value=1 %s> $text{'eauth_none'}&nbsp;\n",
	$authdom ? "" : "checked";
printf "<input type=radio name=authdom_def value=0 %s>\n",
	$authdom ? "checked" : "";
printf "<input name=authdom size=20 value=\"%s\"></td>\n",
	$authdom ? $authdom : "";
print "</tr>\n";

print "</table></td></tr></table><br>\n";
print "<input type=submit value=$text{'eauth_buttsave'}></form>\n";

if ($authfile) {
	print "<hr>\n";
	print $text{'eauth_msgaccess'};
	print "\n<p>\n";
	@users = &list_auth_users($authfile);
	if (@users) {
		print "<table border width=100%>\n";
		print "<tr $tb> <td><b>$text{'eauth_pusers'}</b></td> </tr>\n";
		print "<tr $cb> <td><table width=100%>\n";
		for($i=0; $i<@users; $i++) {
			print "<tr>\n" if ($i%4 == 0);
			print "<td width=25%><a href=\"edit_user.cgi?",
			      "index=$i\">$users[$i]->{'user'}</a></td>\n";
			print "</tr>\n" if ($i%4 == 3);
			}
		while($i++%4) { print "<td width=25%></td>\n"; }
		print "</table></td></tr></table>\n";
		}
	else {
		print "<b>$text{'eauth_nopusers'}</b> <p>\n";
		}
	print "<a href=\"edit_user.cgi?new=1\">$text{'eauth_addpuser'}</a><p>\n";
	}

print "<hr>\n";
&footer("", $text{'eauth_return'});

 0707010000eb87000081e40000000000000002000000013ac0389e0000211c000000200000000000000000000000000000001b00000003reloc/squid/edit_cache.cgi    #!/usr/local/bin/perl
# edit_cache.cgi
# A form for editing cache options

require './squid-lib.pl';
&header($text{'ec_header'}, "", "edit_cache", 0, 0, 0, &restart_button());
print "<hr>\n";
$conf = &get_config();

print "<form action=save_cache.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'ec_cro'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
@dirs = &find_config("cache_dir", $conf);
print "<td valign=top><b>$text{'ec_cdirs'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=cache_dir_def value=1 %s>$text{'ec_default'}\n",
	@dirs ? "" : "checked";
printf "<input type=radio name=cache_dir_def value=0 %s>$text{'ec_listed'}<br>\n",
	@dirs ? "checked" : "";
print "<table border>\n";
if ($squid_version >= 2) {
	print "<tr $tb> <td><b>$text{'ec_directory'}</b></td>\n";
	if ($squid_version >= 2.3) {
		print "<td><b>$text{'ec_type'}</b></td>\n";
		if ($squid_version >= 2.4) {
			print "<td><b>$text{'ec_mos'}</b></td>\n";
			}
		}
	print "<td><b>$text{'ec_size'}</b></td>\n";
	print "<td><b>$text{'ec_1dirs'}</b></td>\n";
	print "<td><b>$text{'ec_2dirs'}</b></td> </tr>\n";
	}
for($i=0; $i<=@dirs; $i++) {
	@dv = $i<@dirs ? @{$dirs[$i]->{'values'}} : ();
	print "<tr $cb>\n";
	if ($squid_version >= 2.4) {
		print "<td><input name=cache_dir_$i size=30 ",
		      "value=\"$dv[2]\"></td>\n";
		print "<td><select name=cache_type_$i>\n";
		printf "<option value=ufs %s>$text{'ec_u'}\n",
			$dv[0] eq 'ufs' ? 'selected' : '';
		printf "<option value=diskd %s>$text{'ec_diskd'}\n",
			$dv[0] eq 'diskd' ? 'selected' : '';
		printf "<option value=asyncufs %s>$text{'ec_ua'}\n",
			$dv[0] eq 'asyncufs' ? 'selected' : '';
		print "</select></td>\n";
		print "<td><input name=cache_mos_$i size=8 ",
		      "value=\"$dv[1]\"></td>\n";
		print "<td><input name=cache_size_$i size=8 ",
		      "value=\"$dv[3]\"></td>\n";
		print "<td><input name=cache_lv1_$i size=8 ",
		      "value=\"$dv[4]\"></td>\n";
		print "<td><input name=cache_lv2_$i size=8 ",
		      "value=\"$dv[5]\"></td>\n";
		}
	elsif ($squid_version >= 2.3) {
		print "<td><input name=cache_dir_$i size=30 ",
		      "value=\"$dv[1]\"></td>\n";
		print "<td><select name=cache_type_$i>\n";
		printf "<option value=ufs %s>$text{'ec_u'}\n",
			$dv[0] eq 'ufs' ? 'selected' : '';
		printf "<option value=asyncufs %s>$text{'ec_ua'}\n",
			$dv[0] eq 'asyncufs' ? 'selected' : '';
		print "</select></td>\n";
		print "<td><input name=cache_size_$i size=8 ",
		      "value=\"$dv[2]\"></td>\n";
		print "<td><input name=cache_lv1_$i size=8 ",
		      "value=\"$dv[3]\"></td>\n";
		print "<td><input name=cache_lv2_$i size=8 ",
		      "value=\"$dv[4]\"></td>\n";
		}
	elsif ($squid_version >= 2) {
		print "<td><input name=cache_dir_$i size=30 ",
		      "value=\"$dv[0]\"></td>\n";
		print "<td><input name=cache_size_$i size=8 ",
		      "value=\"$dv[1]\"></td>\n";
		print "<td><input name=cache_lv1_$i size=8 ",
		      "value=\"$dv[2]\"></td>\n";
		print "<td><input name=cache_lv2_$i size=8 ",
		      "value=\"$dv[3]\"></td>\n";
		}
	else {
		print "<td><input name=cache_dir_$i size=30 ",
		      "value=\"$dv[0]\"></td>\n";
		}
	print "</tr>\n";
	}
print "</table></td> </tr>\n";
print "<tr> <td colspan=4><hr></td> </tr>\n";

if ($squid_version < 2) {
	print "<tr>\n";
	print &opt_input($text{'ec_1dirs1'}, "swap_level1_dirs", $conf,
			 $text{'ec_default'}, 6);
	print &opt_input($text{'ec_2dirs2'}, "swap_level2_dirs", $conf,
			 $text{'ec_default'}, 6);
	print "</tr>\n";
	}

print "<tr>\n";
if ($squid_version < 2) {
	print &opt_input($text{'ec_aos'}, "store_avg_object_size", $conf,
			 $text{'ec_default'}, 6, $text{'ec_kb'});
	}
else {
	print &opt_bytes_input($text{'ec_aos'}, "store_avg_object_size",
			       $conf, $text{'ec_default'}, 6);
	}
print &opt_input($text{'ec_opb'}, "store_objects_per_bucket", $conf,
		 $text{'ec_default'}, 6);
print "</tr>\n";

if ($squid_version < 2) {
	print "<tr>\n";
	print &list_input($text{'ec_ncuc'}, "cache_stoplist",
			  $conf, 1, $text{'ec_default'});
	print "</tr>\n";

	print "<tr>\n";
	print &list_input($text{'ec_ncum'}, "cache_stoplist_pattern",
			  $conf, 1, $text{'ec_default'});
	print "</tr>\n";
	}
print "<tr> <td valign=top><b>$text{'ec_ncua'}</b></td> <td>\n";
@acls = grep { !$acldone{$_->{'values'}->[0]}++ } &find_config("acl", $conf);
@v = &find_config("no_cache", $conf);
foreach $v (@v) {
	foreach $ncv (@{$v->{'values'}}) {
		$noca{$ncv}++;
		}
	}
foreach $acl (@acls) {
	$aclv = $acl->{'values'}->[0];
	printf "<input type=checkbox name=no_cache value=$aclv %s>$aclv\n",
		$noca{$aclv} ? "checked" : "";
	}
print "</td>\n";
print &opt_time_input($text{'ec_mct'}, "reference_age", $conf,
		      $text{'default'}, 6);
print "</tr>\n";

print "<tr>\n";
if ($squid_version >= 2) {
	if ($squid_version >= 2.3) {
		print &opt_bytes_input($text{'ec_mrbs'},
			"request_body_max_size", $conf, $text{'default'}, 6);
		print &opt_bytes_input($text{'ec_mrhs'},
			"request_header_max_size", $conf, $text{'default'}, 6);
		print "</tr>\n";

		print "<tr>\n";
		print &opt_bytes_input($text{'ec_mrbs1'},
			"reply_body_max_size", $conf, $text{'default'}, 6);
		}
	else {
		print &opt_bytes_input($text{'ec_mrs'}, "request_size",
				       $conf, $text{'default'}, 6);
		}
	print &opt_time_input($text{'ec_frct'},
			      "negative_ttl", $conf, $text{'default'}, 4);
	}
else {
	print &opt_input($text{'ec_mrs'}, "request_size", $conf,
			 $text{'default'}, 8, $text{'ec_kb'});
	print &opt_input($text{'ec_frct'}, "negative_ttl", $conf,
			 $text{'default'}, 4, $text{'ec_mins'});
	}
print "</tr>\n";

print "<tr>\n";
if ($squid_version < 2) {
	print &opt_input($text{'ec_dlct'}, "positive_dns_ttl", $conf,
			 $text{'default'}, 4, $text{'ec_mins'});
	print &opt_input($text{'ec_fdct'}, "negative_dns_ttl", $conf,
			 $text{'default'}, 4, $text{'ec_mins'});
	}
else {
	print &opt_time_input($text{'ec_dlct'}, "positive_dns_ttl",
			      $conf, $text{'default'}, 4);
	print &opt_time_input($text{'ec_fdct'}, "negative_dns_ttl",
			      $conf, $text{'default'}, 4);
	}
print "</tr>\n";

if ($squid_version < 2) {
	print "<tr>\n";
	print &opt_input($text{'ec_ct'}, "connect_timeout", $conf,
			 $text{'default'}, 4, $text{'ec_secs'});
	print &opt_input($text{'ec_rt'}, "read_timeout", $conf,
			 $text{'default'}, 4, $text{'ec_secs'});
	print "</tr>\n";

	print "<tr>\n";
	print &opt_input($text{'ec_mcct'}, "client_lifetime", $conf,
			 $text{'default'}, 4, $text{'ec_mins'});
	print &opt_input($text{'ec_mst'}, "shutdown_lifetime", $conf,
			 $text{'default'}, 4, $text{'ec_mins'});
	print "</tr>\n";
	}
else {
	print "<tr>\n";
	print &opt_time_input($text{'ec_ct'}, "connect_timeout", $conf,
			      $text{'default'}, 4);
	print &opt_time_input($text{'ec_rt'}, "read_timeout", $conf,
			      $text{'default'}, 4);
	print "<tr>\n";

	print "</tr>\n";
	print &opt_time_input($text{'ec_sst'}, "siteselect_timeout",
			      $conf, $text{'default'}, 4);
	print &opt_time_input($text{'ec_crt'}, "request_timeout",
			      $conf, $text{'default'}, 4);
	print "</tr>\n";

	print "<tr>\n";
	print &opt_time_input($text{'ec_mcct'}, "client_lifetime",
			      $conf, $text{'default'}, 4);
	print &opt_time_input($text{'ec_mst'}, "shutdown_lifetime",
			      $conf, $text{'default'}, 4);
	print "</tr>\n";

	print "<tr>\n";
	print &choice_input($text{'ec_hcc'}, "half_closed_clients",
			    $conf, "on", $text{'on'}, "on", $text{'off'}, "off");
	print &opt_time_input($text{'ec_pt'}, "pconn_timeout",
			      $conf, $text{'default'}, 4);
	print "</tr>\n";
	}

if ($squid_version < 2) {
	print "<tr> <td><b>$text{'ec_wr'}</b></td> <td colspan=3>\n";
	$v = &find_config("wais_relay", $conf);
	printf "<input type=radio name=wais_relay_def value=1 %s> $text{'none'}\n",
		$v ? "" : "checked";
	printf "<input type=radio name=wais_relay_def value=0 %s> $text{'ec_host'}\n",
		$v ? "checked" : "";
	@wrv = $v ? @{$v->{'values'}} : ();
	print "<input size=20 name=wais_relay1 value=\"$wrv[0]\">&nbsp;$text{'ec_port'}\n";
	print "<input size=6 name=wais_relay2 value=\"$wrv[1]\"></td>\n";
	print "</tr>\n";
	}
else {
	print "<tr>\n";
	print &opt_input($text{'ec_wrh'}, "wais_relay_host",
			 $conf, $text{'none'}, 20);
	print &opt_input($text{'ec_wrp'}, "wais_relay_port",
			 $conf, $text{'default'}, 6);
	print "</tr>\n";
	}

print "</table></td></tr></table><br>\n";
print "<input type=submit value=$text{'buttsave'}></form>\n";

print "<hr>\n";
&footer("", $text{'ec_return'});

0707010000eb88000081e40000000000000002000000013ac0389e00001917000000200000000000000000000000000000002000000003reloc/squid/edit_cache_host.cgi   #!/usr/local/bin/perl
# edit_cache_host.cgi
# Display a form for editing or creating a cache_host line

require './squid-lib.pl';
&ReadParse();
$conf = &get_config();
$cache_host = $squid_version >= 2 ? "cache_peer" : "cache_host";
if ($in{'new'}) {
	&header($text{'ech_header'}, "", undef, 0, 0, 0, &restart_button());
	}
else {
	&header($text{'ech_header1'}, "", undef, 0, 0, 0, &restart_button());
	@chl = &find_config($cache_host, $conf);
	@ch = @{$chl[$in{'num'}]->{'values'}};
	for($i=4; $i<@ch; $i++) {
		if ($ch[$i] =~ /^(\S+)=(\S+)$/) { $opts{$1} = $2; }
		else { $opts{$ch[$i]} = 1; }
		}
	}
print "<hr>\n";

print "<form action=save_cache_host.cgi>\n";
if ($in{'new'}) { print "<input type=hidden name=new value=1>\n"; }
else { print "<input type=hidden name=num value=$in{'num'}>\n"; }
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'ech_cho'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'ech_h'}</b></td>\n";
print "<td><input name=host size=20 value=\"$ch[0]\"></td>\n";

%ts = (	"parent"=> $text{"ech_parent"},
	"sibling"=>$text{"ech_sibling"},
	"multicast"=>$text{"ech_multicast"} );
print "<td><b>$text{'ech_t'}</b></td>\n";
print "<td><select name=type>\n";
foreach $t (keys %ts) {
	printf "<option value=$t %s>$ts{$t}\n", $t eq $ch[1] ? "selected" : "";
	}
print "</select></td> </tr>\n";

print "<tr> <td><b>$text{'ech_pp'}</b></td>\n";
print "<td><input name=proxy size=6 value=\"$ch[2]\"></td>\n";

print "<td><b>$text{'ech_ip'}</b></td>\n";
print "<td><input name=icp size=6 value=\"$ch[3]\"></td> </tr>\n";

print "<tr> <td><b>$text{'ech_po'}</b></td>\n";
printf "<td><input type=radio name=proxy-only value=1 %s> $text{'ech_y'}\n",
	$opts{'proxy-only'} ? "checked" : "";
printf "<input type=radio name=proxy-only value=0 %s> $text{'ech_n'}</td>\n",
	$opts{'proxy-only'} ? "" : "checked";

print "<td><b>$text{'ech_siq'}</b></td>\n";
printf "<td><input type=radio name=no-query value=0 %s> $text{'ech_y'}\n",
	$opts{'no-query'} ? "" : "checked";
printf "<input type=radio name=no-query value=1 %s> $text{'ech_n'}</td> </tr>\n",
	$opts{'no-query'} ? "checked" : "";

print "<tr> <td><b>$text{'ech_dc'}</b></td>\n";
printf "<td><input type=radio name=default value=1 %s> $text{'ech_y'}\n",
	$opts{'default'} ? "checked" : "";
printf "<input type=radio name=default value=0 %s> $text{'ech_n'}</td>\n",
	$opts{'default'} ? "" : "checked";

print "<td><b>$text{'ech_rrc'}</b></td>\n";
printf "<td><input type=radio name=round-robin value=1 %s> $text{'ech_y'}\n",
	$opts{'round-robin'} ? "checked" : "";
printf "<input type=radio name=round-robin value=0 %s> $text{'ech_n'}</td> </tr>\n",
	$opts{'round-robin'} ? "" : "checked";

print "<tr> <td><b>$text{'ech_ittl'}</b></td>\n";
printf "<td><input type=radio name=ttl_def value=1 %s> $text{'ech_d'}\n",
	$opts{'ttl'} ? "" : "checked";
printf "<input type=radio name=ttl_def value=0 %s>\n",
	$opts{'ttl'} ? "checked" : "";
print "<input name=ttl size=6 value=\"$opts{'ttl'}\"></td>\n";

print "<td><b>$text{'ech_cw'}</b></td>\n";
printf "<td><input type=radio name=weight_def value=1 %s> $text{'ech_d'}\n",
	$opts{'weight'} ? "" : "checked";
printf "<input type=radio name=weight_def value=0 %s>\n",
	$opts{'weight'} ? "checked" : "";
print "<input name=weight size=6 value=\"$opts{'weight'}\"></td> </tr>\n";

if ($squid_version >= 2) {
	print "<tr> <td><b>$text{'ech_co'}</b></td>\n";
	printf "<td><input type=radio name=closest-only value=1 %s> $text{'ech_y'}\n",
		$opts{'closest-only'} ? "checked" : "";
	printf "<input type=radio name=closest-only value=0 %s> $text{'ech_n'}</td>\n",
		$opts{'closest-only'} ? "" : "checked";

	print "<td><b>$text{'ech_nd'}</b></td>\n";
	printf "<td><input type=radio name=no-digest value=1 %s> $text{'ech_y'}\n",
		$opts{'no-digest'} ? "checked" : "";
	printf "<input type=radio name=no-digest value=0 %s> $text{'ech_n'}</td> </tr>\n",
		$opts{'no-digest'} ? "" : "checked";

	print "<tr> <td><b>$text{'ech_nne'}</b></td>\n";
	printf "<td><input type=radio name=no-netdb-exchange value=1 %s> $text{'ech_y'}\n",
		$opts{'no-netdb-exchange'} ? "checked" : "";
	printf "<input type=radio name=no-netdb-exchange value=0 %s> $text{'ech_n'}</td>\n",
		$opts{'no-netdb-exchange'} ? "" : "checked";

	print "<td><b>$text{'ech_nd1'}</b></td>\n";
	printf "<td><input type=radio name=no-delay value=1 %s> $text{'ech_y'}\n",
		$opts{'no-delay'} ? "checked" : "";
	printf "<input type=radio name=no-delay value=0 %s> $text{'ech_n'}</td> </tr>\n",
		$opts{'no-delay'} ? "" : "checked";

	if ($squid_version >= 2.1) {
		print "<td><b>$text{'ech_ltp'}</b></td> <td colspan=3>\n";
		printf "<input type=radio name=login value=0 %s> $text{'ech_nl'}\n",
			$opts{'login'} ? "" : "checked";
		printf "<input type=radio name=login value=1 %s>\n",
			$opts{'login'} ? "checked" : "";
		local ($user, $pass) = split(/:/, $opts{'login'});
		print "$text{'ech_u'} <input name=login_user size=15 value=\"$user\">\n";
		print "$text{'ech_p'} <input name=login_pass size=15 value=\"$pass\">\n";
		print "</td> </tr>\n";
		}
	}

print "<tr> <td><b>$text{'ech_mr'}</b></td>\n";
printf "<td><input type=radio name=multicast-responder value=1 %s> $text{'ech_y'}\n",
	$opts{'multicast-responder'} ? "checked" : "";
printf "<input type=radio name=multicast-responder value=0 %s> $text{'ech_n'}</td>\n",
	$opts{'multicast-responder'} ? "" : "checked";
print "</tr>\n";


if (!$in{'new'}) {
	@chd = &find_config($cache_host."_domain", $conf);
	foreach $chd (@chd) {
		@chdv = @{$chd->{'values'}};
		if ($chdv[0] eq $ch[0]) {
			# found a record for this host..
			for($i=1; $i<@chdv; $i++) {
				if ($chdv[$i] =~ /^\!(\S+)$/) {
					push(@dontq, $1);
					}
				else { push(@doq, $chdv[$i]); }
				}
			}
		}
	}
print "<tr> <td valign=top><b>$text{'ech_qhfd'}</b></td>\n";
print "<td><textarea name=doq rows=6 cols=25>",join("\n", @doq),
      "</textarea></td>\n";
print "<td valign=top><b>$text{'ech_dqfd'}</b></td>\n";
print "<td><textarea name=dontq rows=6 cols=25>",join("\n", @dontq),
      "</textarea></td> </tr>\n";

print "</table></td></tr></table>\n";
print "<table width=100%><tr>\n";
print "<td><input type=submit value=$text{'ech_buttsave'}></td> <td align=right>\n";
if (!$in{'new'}) { print "<input type=submit value=$text{'ech_buttdel'} name=delete>\n"; }
print "</td></tr></table>\n";
print "</form>\n";

print "<hr>\n";
&footer("edit_icp.cgi", $text{'ech_return'});

 0707010000eb89000081e40000000000000002000000013ac0389e0000158d000000200000000000000000000000000000001900000003reloc/squid/edit_icp.cgi  #!/usr/local/bin/perl
# edit_icp.cgi
# A form for editing options for communication with other caches

require './squid-lib.pl';
&header($text{'eicp_header'}, "", "edit_icp", 0, 0, 0, &restart_button());
$conf = &get_config();
$cache_host = $squid_version >= 2 ? "cache_peer" : "cache_host";

print "<hr><p>\n";
@ch = &find_config($cache_host, $conf);
if (@ch) {
	print "<h3>$text{'eicp_opcs'}</h3>\n";
	$mid = int((@ch+1)/2);
	print "<table width=100%><tr> <td width=50% valign=top>\n";
	&cache_table(0, $mid-1);
	print "</td><td width=50% valign=top>\n";
	if ($mid < @ch) { &cache_table($mid, $#ch); }
	print "</td> </tr></table>\n";
	}
else { print "<b>$text{'eicp_nocd'}</b>.<p>\n"; }
print "<a href=\"edit_cache_host.cgi?new=1\">$text{'eicp_aac'}</a><p>\n";

print "<hr>\n";
print "<form action=save_icp.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'eicp_cso'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

if ($squid_version < 2) {
	print "<tr>\n";
	print &list_input($text{'eicp_fdfd'}, "local_domain", $conf);
	print &address_input($text{'eicp_fdfi'}, "local_ip", $conf);
	print "</tr>\n";

	print "<tr>\n";
	print &list_input($text{'eicp_dif'}, "inside_firewall", $conf);
	print &address_input($text{'eicp_iif'}, "firewall_ip", $conf);
	print "</tr>\n";
	}

print "<tr>\n";
print &list_input($text{'eicp_dfuc'}, "hierarchy_stoplist",
		  $conf, 1, $text{'default'});
print "</tr>\n";

if ($squid_version < 2) {
	print "<tr>\n";
	print &choice_input($text{'eicp_bpfsp'},
			    "single_parent_bypass",
			    $conf, "off", $text{'yes'}, "on", $text{'no'}, "off");
	print &choice_input($text{'eicp_ssip'}, "source_ping", $conf, "off",
			    $text{'yes'}, "on", $text{'no'}, "off");
	print "</tr>\n";

	print "<tr>\n";
	print &opt_input($text{'eicp_crt'}, "neighbor_timeout", $conf,
			 $text{'default'}, 4, $text{'eicp_secs'});
	print "</tr>\n";
	}
else {
	print "<tr>\n";
	print &opt_input($text{'eicp_iqt'}, "icp_query_timeout", $conf,
			 $text{'default'}, 8, "ms");
	print &opt_input($text{'eicp_mit'}, "mcast_icp_query_timeout",
			 $conf, $text{'default'}, 8, "ms");
	print "</tr>\n";

	print "<tr>\n";
	print &opt_input($text{'eicp_dpt'}, "dead_peer_timeout", $conf,
			 $text{'default'}, 8, $text{'eicp_secs'});
	print "</tr>\n";
	}

if ($squid_version >= 2.3) {
	# Display always/never_direct options
	print "<tr> <td colspan=4><hr></td> </tr>\n";

	print "<tr> <td colspan=2 valign=top width=50%>\n";
	@always = &find_config("always_direct", $conf);
	if (@always) {
		print "<b>$text{'eicp_always'}</b><p>\n";
		print "<table border>\n";
		print "<tr $tb><td width=10%><b>$text{'eacl_act'}</b></td>\n";
		print "<td><b>$text{'eacl_acls1'}</b></td>\n";
		print "<td width=10%><b>$text{'eacl_move'}</b></td> </tr>\n";
		$hc = 0;
		foreach $h (@always) {
			@v = @{$h->{'values'}};
			if ($v[0] eq "allow") {
				$v[0] = $text{'eacl_allow'};
			} else {
				$v[0] = $text{'eacl_deny'};
			}
			print "<tr $cb>\n";
			print "<td><a href=\"always.cgi?index=$h->{'index'}\">",
			      "$v[0]</a></td>\n";
			print "<td>",join(' ', @v[1..$#v]),"</td>\n";
			print "<td>\n";
			if ($hc != @always-1) {
				print "<a href=\"move_always.cgi?$hc+1\">",
				      "<img src=images/down.gif border=0></a>";
				}
			else { print "<img src=images/gap.gif>"; }
			if ($hc != 0) {
				print "<a href=\"move_always.cgi?$hc+-1\">",
				      "<img src=images/up.gif border=0></a>";
				}
			print "</td></tr>\n";
			$hc++;
			}
		print "</table>\n";
		}
	else {
		print "<b>$text{'eicp_noalways'}</b><p>\n";
		}
	print "<a href=always.cgi?new=1>$text{'eicp_addalways'}</a>\n";

	print "</td> <td colspan=2 valign=top width=50%>\n";
	@never = &find_config("never_direct", $conf);
	if (@never) {
		print "<b>$text{'eicp_never'}</b><p>\n";
		print "<table border>\n";
		print "<tr $tb><td width=10%><b>$text{'eacl_act'}</b></td>\n";
		print "<td><b>$text{'eacl_acls1'}</b></td>\n";
		print "<td width=10%><b>$text{'eacl_move'}</b></td> </tr>\n";
		$hc = 0;
		foreach $h (@never) {
			@v = @{$h->{'values'}};
			if ($v[0] eq "allow") {
				$v[0] = $text{'eacl_allow'};
			} else {
				$v[0] = $text{'eacl_deny'};
			}
			print "<tr $cb>\n";
			print "<td><a href=\"never.cgi?index=$h->{'index'}\">",
			      "$v[0]</a></td>\n";
			print "<td>",join(' ', @v[1..$#v]),"</td>\n";
			print "<td>\n";
			if ($hc != @never-1) {
				print "<a href=\"move_never.cgi?$hc+1\">",
				      "<img src=images/down.gif border=0></a>";
				}
			else { print "<img src=images/gap.gif>"; }
			if ($hc != 0) {
				print "<a href=\"move_never.cgi?$hc+-1\">",
				      "<img src=images/up.gif border=0></a>";
				}
			print "</td></tr>\n";
			$hc++;
			}
		print "</table>\n";
		}
	else {
		print "<b>$text{'eicp_nonever'}</b><p>\n";
		}
	print "<a href=never.cgi?new=1>$text{'eicp_addnever'}</a>\n";
	print "</td> </tr>\n";
	}

print "</table></td></tr></table><br>\n";
print "<input type=submit value=$text{'buttsave'}></form>\n";

print "<hr>\n";
&footer("", $text{'eicp_return'});

# cache_table(start, end)
sub cache_table
{
print "<table border width=100%>\n";
print "<tr $tb> <td><b>Hostname</b></td> <td><b>Type</b></td>\n";
print "<td><b>Proxy port</b></td> <td><b>ICP port</b></td> </tr>\n";
for($i=$_[0]; $i<=$_[1]; $i++) {
	@chv = @{$ch[$i]->{'values'}};
	print "<tr $cb>\n";
	print "<td><a href=\"edit_cache_host.cgi?num=$i\">$chv[0]</a></td>\n";
	print "<td>$chv[1]</td>\n";
	print "<td>$chv[2]</td>\n";
	print "<td>$chv[3]</td>\n";
	print "</tr>\n";
	}
print "</table>\n";
}

   0707010000eb8a000081e40000000000000002000000013ac0389e00000b40000000200000000000000000000000000000001a00000003reloc/squid/edit_logs.cgi #!/usr/local/bin/perl
# edit_logs.cgi
# A form for editing logging options

require './squid-lib.pl';
&header($text{'elogs_header'}, "", "edit_logs", 0, 0, 0, &restart_button());
print "<hr>\n";
$conf = &get_config();

print "<form action=save_logs.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'elogs_lalo'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
print &opt_input($text{'elogs_alf'}, "cache_access_log", $conf, $text{'default'}, 20);
print &opt_input($text{'elogs_dlf'}, "cache_log", $conf, $text{'default'}, 20);
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'elogs_slf'}, "cache_store_log", $conf, $text{'default'}, 20);
print &opt_input($text{'elogs_cmf'}, "cache_swap_log", $conf, $text{'default'}, 20);
print "</tr>\n";

print "<tr>\n";
print &choice_input($text{'elogs_uhlf'}, "emulate_httpd_log", $conf,
		    "off", $text{'yes'}, "on", $text{'no'}, "off");
print &choice_input($text{'elogs_lmh'}, "log_mime_hdrs", $conf,
		    "off", $text{'yes'}, "on", $text{'no'}, "off");
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'elogs_ualf'}, "useragent_log", $conf, $text{'none'}, 20);
print &opt_input($text{'elogs_pf'}, "pid_filename", $conf, $text{'default'}, 20);
print "</tr>\n";

if ($squid_version >= 2.2) {
	@ident = &find_config("ident_lookup_access", $conf);
	foreach $i (@ident) {
		local @v = @{$i->{'values'}};
		if ($v[0] eq "allow") { map { $ila{$_}++ } @v[1..$#v]; }
		elsif ($v[0] eq "deny" && $v[1] ne "all") { $bad_ident++; }
		}
	if (!$bad_ident) {
		print "<tr><td valign=top><b>$text{'elogs_prilfa'}</b></td> <td colspan=3>\n";
		@acls = &find_config("acl", $conf);
		foreach $acl (@acls) {
			$aclv = $acl->{'values'}->[0];
			printf "<input type=checkbox name=ident_lookup_access ".
			       "value=$aclv %s>$aclv\n",
				$ila{$aclv} ? "checked" : "";
			}
		print "</td> </tr>\n";
		}
	else { print "<input type=hidden name=complex_ident value=1>\n"; }
	print "<tr>\n";
	print &opt_time_input($text{'elogs_rit'}, "ident_timeout",
			      $conf, $text{'default'}, 6);
	}
else {
	print "<tr>\n";
	print &choice_input($text{'elogs_dril'}, "ident_lookup", $conf,
			    "off", $text{'yes'}, "on", $text{'no'}, "off");
	}
print &choice_input($text{'elogs_lfh'}, "log_fqdn", $conf,
		    "off", $text{'yes'}, "on", $text{'no'}, "off");
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'elogs_ln'}, "client_netmask", $conf, $text{'default'}, 15);
print &opt_input($text{'elogs_do'}, "debug_options", $conf, $text{'default'}, 15);
print "</tr>\n";

if ($squid_version >= 2) {
	print "<tr>\n";
	print &opt_input($text{'elogs_mht'}, "mime_table",
			 $conf, $text{'default'}, 20);
	print "</tr>\n";
	}

print "</table></td></tr></table><br>\n";
print "<input type=submit value=$text{'buttsave'}></form>\n";

print "<hr>\n";
&footer("", $text{'elogs_return'});

0707010000eb8b000081e40000000000000002000000013ac0389e00000a45000000200000000000000000000000000000001900000003reloc/squid/edit_mem.cgi  #!/usr/local/bin/perl
# edit_mem.cgi
# A form for editing memory usage options

require './squid-lib.pl';
&header($text{'emem_header'}, "", "edit_mem", 0, 0, 0, &restart_button());
print "<hr>\n";
$conf = &get_config();

print "<form action=save_mem.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'emem_maduo'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
if ($squid_version < 2) {
	print &opt_input($text{'emem_mul'}, "cache_mem", $conf,
			 $text{'default'}, 6, $text{'emem_mb'});
	print &opt_input($text{'emem_dul'}, "cache_swap",
			 $conf, $text{'default'}, 6, $text{'emem_mb'});
	}
else {
	print &opt_bytes_input($text{'emem_mul'}, "cache_mem", $conf,
			       $text{'default'}, 6);
	print &opt_input($text{'emem_fcs'}, "fqdncache_size", $conf,
			 $text{'default'}, 8);
	}
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'emem_mhwm'}, "cache_mem_high", $conf,
		 $text{'default'}, 4, "%");
print &opt_input($text{'emem_mlwm'}, "cache_mem_low", $conf,
		 $text{'default'}, 4, "%");
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'emem_dhwm'}, "cache_swap_high", $conf,
		 $text{'default'}, 4, "%");
print &opt_input($text{'emem_dlwm'}, "cache_swap_low", $conf,
		 $text{'default'}, 4, "%");
print "</tr>\n";

print "<tr>\n";
if ($squid_version < 2) {
	print &opt_input($text{'emem_mcos'}, "maximum_object_size",
			 $conf, $text{'default'}, 8, $text{'emem_kb'});
	}
else {
	print &opt_bytes_input($text{'emem_mcos'},
			       "maximum_object_size", $conf, $text{'default'}, 6);
	}
print &opt_input($text{'emem_iacs'}, "ipcache_size", $conf,
		 $text{'default'}, 6, $text{'emem_e'});
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'emem_ichwm'}, "ipcache_high", $conf,
		 $text{'default'}, 4, "%");
print &opt_input($text{'emem_iclwm'}, "ipcache_low", $conf,
		 $text{'default'}, 4, "%");
print "</tr>\n";

if ($squid_version >= 2.4) {
	print "<tr>\n";
	print &select_input($text{'emem_crp'}, "cache_replacement_policy", $conf, '',
			    $text{'default'}, '', $text{'emem_lru'}, 'lru',
			    $text{'emem_gdsf'}, 'heap GDSF', $text{'emem_lfuda'}, 'heap LFUDA',
			    $text{'emem_hlru'}, 'heap LRU');
	print &select_input($text{'emem_mrp'}, "memory_replacement_policy", $conf, '',
			    $text{'default'}, '', $text{'emem_lru'}, 'lru',
			    $text{'emem_gdsf'}, 'heap GDSF', $text{'emem_lfuda'}, 'heap LFUDA',
			    $text{'emem_hlru'}, 'heap LRU');
	print "</tr>\n";
	}

print "</table></td></tr></table><br>\n";
print "<input type=submit value=$text{'buttsave'}></form>\n";

print "<hr>\n";
&footer("", $text{'emem_return'});

   0707010000eb8c000081e40000000000000002000000013ac0389e00000e76000000200000000000000000000000000000001a00000003reloc/squid/edit_misc.cgi #!/usr/local/bin/perl
# edit_misc.cgi
# A form for edit misc options

require './squid-lib.pl';
&header($text{'emisc_header'}, "", "edit_misc", 0, 0, 0, &restart_button());
print "<hr>\n";
$conf = &get_config();

print "<form action=save_misc.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'emisc_mo'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
print &opt_input($text{'emisc_sdta'}, "dns_testnames", $conf,
		 $text{'default'}, 40);
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'emisc_slr'}, "logfile_rotate", $conf,
		 $text{'default'}, 6);
print &opt_input($text{'emisc_dd'}, "append_domain", $conf, $text{'none'}, 10);
print "</tr>\n";

if ($squid_version < 2) {
	print "<tr>\n";
	print &opt_input($text{'emisc_sp'}, "ssl_proxy", $conf, $text{'none'}, 15);
	print &opt_input($text{'emisc_nghp'}, "passthrough_proxy",
			 $conf, $text{'none'}, 15);
	print "</tr>\n";
	}

print "<tr>\n";
print &opt_input($text{'emisc_emt'}, "err_html_text", $conf, $text{'none'}, 40);
print "</tr>\n";

print "<tr>\n";
print &choice_input($text{'emisc_pcs'}, "client_db", $conf,
		    "on", $text{'yes'}, "on", $text{'no'}, "off");
print &choice_input($text{'emisc_xffh'}, "forwarded_for", $conf,
		    "on", $text{'yes'}, "on", $text{'no'}, "off");
print "</tr>\n";

print "<tr>\n";
print &choice_input($text{'emisc_liq'}, "log_icp_queries", $conf,
		    "on", $text{'yes'}, "on", $text{'no'}, "off");
print &opt_input($text{'emisc_mdh'}, "minimum_direct_hops", $conf,
		 $text{'default'}, 6);
print "</tr>\n";

print "<tr>\n";
print &choice_input($text{'emisc_kmffu'}, "memory_pools", $conf,
		    "on", $text{'yes'}, "on", $text{'no'}, "off");
if ($squid_version >= 2) {
	print &opt_bytes_input($text{'emisc_aomtk'}, "memory_pools_limit",
			       $conf, $text{'emisc_u'}, 6);
	}
print "</tr>\n";

print "<tr>\n";
if ($squid_version >= 2.2) {
	foreach $a (&find_config("anonymize_headers", $conf)) {
		@ap = @{$a->{'values'}};
		$anon = shift(@ap);
		push(@anon, @ap);
		}
	print "<td valign=top><b>$text{'emisc_htpt'}</b></td> ",
	      "<td colspan=3>\n";
	printf "<input type=radio name=anon_mode value=0 %s> $text{'emisc_ah'}<br>\n",
		$anon ? "" : "checked";
	printf "<input type=radio name=anon_mode value=1 %s> $text{'emisc_oh'}\n",
		$anon eq "allow" ? "checked" : "";
	printf "<input name=anon_allow size=50 value='%s'><br>\n",
		$anon eq "allow" ? join(" ", @anon) : "";
	printf "<input type=radio name=anon_mode value=2 %s> $text{'emisc_ae'}\n",
		$anon eq "deny" ? "checked" : "";
	printf "<input name=anon_deny size=50 value='%s'>\n",
		$anon eq "deny" ? join(" ", @anon) : "";
	print "</td> </tr> <tr>\n";
	}
else {
	print &choice_input($text{'emisc_a'}, "http_anonymizer", $conf,
			    "off", $text{'emisc_off'}, "off", 
				$text{'emisc_std'}, "standard",
			    $text{'emisc_par'}, "paranoid");
	}
print &opt_input($text{'emisc_fua'}, "fake_user_agent", $conf, $text{'none'}, 15);

print "</tr><tr>\n";
print &opt_input($text{'emisc_hah'}, "httpd_accel_host", $conf,
                 $text{'default'}, 50);
print "</tr><tr>\n";
print &opt_input($text{'emisc_hap'}, "httpd_accel_port", $conf,
                 $text{'default'}, 10);
print "</tr><tr>\n";
print &choice_input($text{'emisc_hawp'}, "httpd_accel_with_proxy",
                  $conf, "off", $text{'on'}, "on", $text{'off'}, "off");
print &choice_input($text{'emisc_hauhh'}, "httpd_accel_uses_host_header", 
                  $conf, "off", $text{'yes'}, "on", $text{'no'}, "off");
print "</tr><tr>\n";
print "</table></td></tr></table><br>\n";
print "<input type=submit value=$text{'buttsave'}></form>\n";
print "<hr>\n";
&footer("", $text{'emisc_return'});

  0707010000eb8d000081e40000000000000002000000013ac0389f0000042f000000200000000000000000000000000000001b00000003reloc/squid/edit_nauth.cgi    #!/usr/local/bin/perl
# edit_nauth.cgi
# Display a list of proxy users

require './squid-lib.pl';
&header($text{'eauth_header'}, "", undef, 0, 0, 0, &restart_button());
print "<hr>\n";
$conf = &get_config();

$authprog = &find_value("authenticate_program", $conf);
if ($authprog =~ /(\S+)\s+(\/\S+)$/) {
	$authfile = $2;
	}

print &text('eauth_nmsgaccess', "<tt>$authfile</tt>"),"<p>\n";
@users = &list_auth_users($authfile);
if (@users) {
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'eauth_pusers'}</b></td> </tr>\n";
	print "<tr $cb> <td><table width=100%>\n";
	for($i=0; $i<@users; $i++) {
		print "<tr>\n" if ($i%4 == 0);
		print "<td width=25%><a href=\"edit_nuser.cgi?",
		      "index=$i\">$users[$i]->{'user'}</a></td>\n";
		print "</tr>\n" if ($i%4 == 3);
		}
	while($i++%4) { print "<td width=25%></td>\n"; }
	print "</table></td></tr></table>\n";
	}
else {
	print "<b>$text{'eauth_nopusers'}</b> <p>\n";
	}
print "<a href=\"edit_nuser.cgi?new=1\">$text{'eauth_addpuser'}</a><p>\n";

print "<hr>\n";
&footer("", $text{'eauth_return'});

 0707010000eb8e000081e40000000000000002000000013ac0389f000005ec000000200000000000000000000000000000001b00000003reloc/squid/edit_nuser.cgi    #!/usr/local/bin/perl
# edit_user.cgi
# A form for adding or editing a squid user

require './squid-lib.pl';
&ReadParse();
if ($in{'new'}) {
	&header($text{'euser_header'}, "");
	}
else {
	&header($text{'euser_header1'}, "");
	$conf = &get_config();
	$authprog = &find_value("authenticate_program", $conf);
	if ($authprog =~ /(\S+)\s+(\/\S+)$/) {
		@users = &list_auth_users($2);
		%user = %{$users[$in{'index'}]};
		}
	}
print "<hr>\n";

print "<form action=save_nuser.cgi>\n";
print "<input type=hidden name=index value=$in{'index'}>\n";
print "<input type=hidden name=new value=$in{'new'}>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'euser_pud'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'euser_u'}</b></td>\n";
print "<td><input name=user size=25 value=\"$user{'user'}\"></td> </tr>\n";

print "<tr> <td><b>$text{'euser_p'}</b></td> <td>\n";
if (%user) {
	print "<input type=radio name=pass_def value=1 checked> $text{'euser_u1'}\n";
	print "<input type=radio name=pass_def value=0>\n";
	print "<input name=pass size=20 type=password></td> </tr>\n";
	}
else {
	print "<input name=pass size=20 type=password></td> </tr>\n";
	}
print "</table></td></tr></table>\n";
if (%user) {
	print "<input type=submit value=\"$text{'save'}\">\n";
	print "<input type=submit name=delete value=\"$text{'delete'}\">\n";
	}
else {
	print "<input type=submit value=\"$text{'create'}\">\n";
	}
print "</form>\n";

print "<hr>\n";
&footer("edit_nauth.cgi", $text{'euser_return'});

0707010000eb8f000081e40000000000000002000000013ac0389e00000945000000200000000000000000000000000000001b00000003reloc/squid/edit_ports.cgi    #!/usr/local/bin/perl
# edit_ports.cgi
# A form for editing ports and other networking options

require './squid-lib.pl';
&header($text{'eports_header'}, "", "edit_ports", 0, 0, 0, &restart_button());
print "<hr>\n";
$conf = &get_config();

print "<form action=save_ports.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'eports_pano'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
if ($squid_version >= 2.3) {
	print "<td valign=top><b>$text{'eports_paap'}</b></td>\n";
	print "<td colspan=3><table border>\n";
	print "<tr $tb> <td><b>$text{'eports_p'}</b></td>\n",
	      "<td><b>$text{'eports_hia'}</b></td> </tr>\n";
	foreach $p (&find_config('http_port', $conf)) {
		push(@ports, @{$p->{'values'}});
		}
	$i = 0;
	foreach $p (@ports, '') {
		print "<tr $cb>\n";
		printf "<td><input name=port_$i size=6 value='%s'></td> <td>\n",
			$p =~ /(\d+)$/ ? $1 : '';
		printf "<input type=radio name=addr_def_$i value=1 %s> All\n",
			$p =~ /:/ ? '' : 'checked';
		printf "<input type=radio name=addr_def_$i value=0 %s>\n",
			$p =~ /:/ ? 'checked' : '';
		printf "<input name=addr_$i size=20 value='%s'></td>\n",
			$p =~ /^(\S+):/ ? $1 : '';
		print "</tr>\n";
		$i++;
		}

	print "</table></td></tr>\n";
	print "<tr>\n";
	print &opt_input($text{'eports_ip'}, "icp_port", 
				$conf, $text{'default'}, 6);
	}
else {
	print &opt_input($text{'eports_pp'}, "http_port", 
				$conf, $text{'default'}, 6);
	print &opt_input($text{'eports_ip'}, "icp_port", 
				$conf, $text{'default'}, 6);
	print "</tr>\n";

	print "<tr>\n";
	print &opt_input($text{'eports_ita'}, "tcp_incoming_address",
			 $conf, $text{'eports_a'}, 15);
	}

print &opt_input($text{'eports_ota'}, "tcp_outgoing_address",
		 $conf, $text{'eports_a'}, 15);
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'eports_oua'}, "udp_outgoing_address",
		 $conf, $text{'eports_a'}, 15);
print &opt_input($text{'eports_iua'}, "udp_incoming_address",
		 $conf, $text{'eports_a'}, 15);
print "</tr>\n";

print "<tr>\n";
print &address_input($text{'eports_mg'}, "mcast_groups", $conf, 0);
print &opt_input($text{'eports_trb'}, "tcp_recv_bufsize", $conf,
		 $text{'eports_od'}, 6);
print "</tr>\n";

print "</table></td></tr></table><br>\n";
print "<input type=submit value=$text{'buttsave'}></form>\n";

print "<hr>\n";
&footer("", $text{'eports_return'});

   0707010000eb90000081e40000000000000002000000013ac0389e00000a33000000200000000000000000000000000000001b00000003reloc/squid/edit_progs.cgi    #!/usr/local/bin/perl
# edit_progs.cgi
# A form for editing helper program options

require './squid-lib.pl';
&header($text{'eprogs_header'}, "", "edit_progs", 0, 0, 0, &restart_button());
print "<hr>\n";
$conf = &get_config();

print "<form action=save_progs.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'eprogs_chpo'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
if ($squid_version < 2) {
	print &opt_input($text{'eprogs_sfp'}, "ftpget_program", $conf,
			 $text{'default'}, 40, &file_chooser_button("ftpget_program"));
	print "</tr>\n";

	print "<tr>\n";
	print &opt_input($text{'eprogs_fo'}, "ftpget_options", $conf, $text{'default'}, 15);
	}
else {
	print &opt_input($text{'eprogs_fcv'}, "ftp_list_width", $conf,
			 $text{'default'}, 6, $text{'eprogs_c'});
	}
print &opt_input($text{'eprogs_afl'}, "ftp_user", $conf, $text{'default'}, 15);
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'eprogs_sdp'}, "cache_dns_program", $conf, $text{'default'}, 40,
		 &file_chooser_button("cache_dns_program"));
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'eprogs_nodp'}, "dns_children", $conf, $text{'default'}, 5);
print &choice_input($text{'eprogs_adtr'}, "dns_defnames", $conf, "off",
		    $text{'yes'}, "on", $text{'no'}, "off");
print "</tr>\n";

if ($squid_version >= 2) {
	print "<tr>\n";
	print &opt_input($text{'eprogs_dsa'}, "dns_nameservers", $conf,
			 $text{'eprogs_fr'}, 35);
	print "</tr>\n";
	}

print "<tr>\n";
print &opt_input($text{'eprogs_ccp'}, "unlinkd_program", $conf,
		 $text{'default'}, 40, &file_chooser_button("unlinkd_program"));
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'eprogs_spp'}, "pinger_program", $conf,
		 $text{'default'}, 40, &file_chooser_button("pinger_program"));
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'eprogs_crp'}, "redirect_program", $conf,
		 $text{'none'}, 40, &file_chooser_button("redirect_program"));
print "</tr>\n";

print "<tr>\n";
print &opt_input($text{'eprogs_norp'}, "redirect_children", $conf,
		 $text{'default'}, 6);
print "</tr>\n";

if ($squid_version >= 2) {
	print "<tr>\n";
	print &opt_input(
		$text{'eprogs_cap'}, "authenticate_program",
		$conf, $text{'none'}, 40,&file_chooser_button("authenticate_program"));
	print "</tr>\n";

	print "<tr>\n";
	print &opt_input($text{'eprogs_noap'},
			 "authenticate_children", $conf, $text{'default'}, 6);
	print "</tr>\n";
	}

print "</table></td></tr></table><br>\n";
print "<input type=submit value=$text{'buttsave'}></form>\n";

print "<hr>\n";
&footer("", $text{'eprogs_return'});

 0707010000eb91000081e40000000000000002000000013ac0389e00000fce000000200000000000000000000000000000001a00000003reloc/squid/edit_smem.cgi #!/usr/local/bin/perl
# edit_smem.cgi
# A form for editing simple memory and disk usage options

require './squid-lib.pl';
&header($text{'emem_dheader'}, "", "", 0, 0, 0, &restart_button());
print "<hr>\n";
$conf = &get_config();

print "<form action=save_smem.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'emem_maduo'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
if ($squid_version < 2) {
	print &opt_input($text{'emem_mul'}, "cache_mem", $conf,
			 $text{'default'}, 6, $text{'emem_mb'});
	print &opt_input($text{'emem_dul'}, "cache_swap",
			 $conf, $text{'default'}, 6, $text{'emem_mb'});
	}
else {
	print &opt_bytes_input($text{'emem_mul'}, "cache_mem", $conf,
			       $text{'default'}, 6);
	print &opt_input($text{'emem_fcs'}, "fqdncache_size", $conf,
			 $text{'default'}, 8);
	}
print "</tr>\n";

print "<tr>\n";
if ($squid_version < 2) {
	print &opt_input($text{'emem_mcos'}, "maximum_object_size",
			 $conf, $text{'default'}, 8, $text{'emem_kb'});
	}
else {
	print &opt_bytes_input($text{'emem_mcos'},
			       "maximum_object_size", $conf, $text{'default'}, 6);
	}
print &opt_input($text{'emem_iacs'}, "ipcache_size", $conf,
		 $text{'default'}, 6, $text{'emem_e'});
print "</tr>\n";

print "<tr> <td colspan=4><hr></td> </tr>\n";

print "<tr>\n";
@dirs = &find_config("cache_dir", $conf);
print "<td valign=top><b>$text{'ec_cdirs'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=cache_dir_def value=1 %s>$text{'ec_default'}\n",
	@dirs ? "" : "checked";
printf "<input type=radio name=cache_dir_def value=0 %s>$text{'ec_listed'}<br>\n",
	@dirs ? "checked" : "";
print "<table border>\n";
if ($squid_version >= 2) {
	print "<tr $tb> <td><b>$text{'ec_directory'}</b></td>\n";
	if ($squid_version >= 2.3) {
		print "<td><b>$text{'ec_type'}</b></td>\n";
		}
	print "<td><b>$text{'ec_size'}</b></td>\n";
	print "<td><b>$text{'ec_1dirs'}</b></td>\n";
	print "<td><b>$text{'ec_2dirs'}</b></td> </tr>\n";
	}
for($i=0; $i<=@dirs; $i++) {
	@dv = $i<@dirs ? @{$dirs[$i]->{'values'}} : ();
	print "<tr $cb>\n";
	if ($squid_version >= 2.3) {
		print "<td><input name=cache_dir_$i size=30 ",
		      "value=\"$dv[1]\"></td>\n";
		print "<td><select name=cache_type_$i>\n";
		printf "<option value=ufs %s>$text{'ec_u'}\n",
			$dv[0] eq 'ufs' ? 'selected' : '';
		printf "<option value=asyncufs %s>$text{'ec_ua'}\n",
			$dv[0] eq 'asyncufs' ? 'selected' : '';
		print "</select></td>\n";
		print "<td><input name=cache_size_$i size=8 ",
		      "value=\"$dv[2]\"></td>\n";
		print "<td><input name=cache_lv1_$i size=8 ",
		      "value=\"$dv[3]\"></td>\n";
		print "<td><input name=cache_lv2_$i size=8 ",
		      "value=\"$dv[4]\"></td>\n";
		}
	elsif ($squid_version >= 2) {
		print "<td><input name=cache_dir_$i size=30 ",
		      "value=\"$dv[0]\"></td>\n";
		print "<td><input name=cache_size_$i size=8 ",
		      "value=\"$dv[1]\"></td>\n";
		print "<td><input name=cache_lv1_$i size=8 ",
		      "value=\"$dv[2]\"></td>\n";
		print "<td><input name=cache_lv2_$i size=8 ",
		      "value=\"$dv[3]\"></td>\n";
		}
	else {
		print "<td><input name=cache_dir_$i size=30 ",
		      "value=\"$dv[0]\"></td>\n";
		}
	print "</tr>\n";
	}
print "</table></td> </tr>\n";

if ($squid_version < 2) {
	print "<tr>\n";
	print &opt_input($text{'ec_1dirs1'}, "swap_level1_dirs", $conf,
			 $text{'ec_default'}, 6);
	print &opt_input($text{'ec_2dirs2'}, "swap_level2_dirs", $conf,
			 $text{'ec_default'}, 6);
	print "</tr>\n";
	}

print "<tr>\n";
if ($squid_version < 2) {
	print &opt_input($text{'ec_aos'}, "store_avg_object_size", $conf,
			 $text{'ec_default'}, 6, $text{'ec_kb'});
	}
else {
	print &opt_bytes_input($text{'ec_aos'}, "store_avg_object_size",
			       $conf, $text{'ec_default'}, 6);
	}
print &opt_input($text{'ec_opb'}, "store_objects_per_bucket", $conf,
		 $text{'ec_default'}, 6);
print "</tr>\n";



print "</table></td></tr></table><br>\n";
print "<input type=submit value=$text{'buttsave'}></form>\n";

print "<hr>\n";
&footer("", $text{'emem_return'});

  0707010000eb92000081e40000000000000002000000013ac0389e00000941000000200000000000000000000000000000001c00000003reloc/squid/edit_sports.cgi   #!/usr/local/bin/perl
# edit_sports.cgi
# A form for editing simple networking options

require './squid-lib.pl';
&header($text{'eports_header'}, "", "", 0, 0, 0, &restart_button());
print "<hr>\n";
$conf = &get_config();

print "<form action=save_sports.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'eports_pano'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr>\n";
if ($squid_version >= 2.3) {
	print "<td valign=top><b>$text{'eports_paap'}</b></td>\n";
	print "<td colspan=3><table border>\n";
	print "<tr $tb> <td><b>$text{'eports_p'}</b></td>\n",
	      "<td><b>$text{'eports_hia'}</b></td> </tr>\n";
	foreach $p (&find_config('http_port', $conf)) {
		push(@ports, @{$p->{'values'}});
		}
	$i = 0;
	foreach $p (@ports, '') {
		print "<tr $cb>\n";
		printf "<td><input name=port_$i size=6 value='%s'></td> <td>\n",
			$p =~ /(\d+)$/ ? $1 : '';
		printf "<input type=radio name=addr_def_$i value=1 %s> All\n",
			$p =~ /:/ ? '' : 'checked';
		printf "<input type=radio name=addr_def_$i value=0 %s>\n",
			$p =~ /:/ ? 'checked' : '';
		printf "<input name=addr_$i size=20 value='%s'></td>\n",
			$p =~ /^(\S+):/ ? $1 : '';
		print "</tr>\n";
		$i++;
		}

	print "</table></td></tr>\n";
	}
else {
	print &opt_input($text{'eports_pp'}, "http_port", 
				$conf, $text{'default'}, 6);
	print &opt_input($text{'eports_ita'}, "tcp_incoming_address",
			 $conf, $text{'eports_a'}, 15);
	print "</tr>\n";
	}

print "<tr>\n";
print &opt_input($text{'emisc_sdta'}, "dns_testnames", $conf,
		 $text{'default'}, 40);
print "</tr>\n";

print "<tr> <td colspan=4><hr></td> </tr>\n";

print "</tr><tr>\n";
print &opt_input($text{'emisc_hah'}, "httpd_accel_host", $conf,
                 $text{'default'}, 50);
print "</tr><tr>\n";
print &opt_input($text{'emisc_hap'}, "httpd_accel_port", $conf,
                 $text{'default'}, 10);
print "</tr><tr>\n";
print &choice_input($text{'emisc_hawp'}, "httpd_accel_with_proxy",
                  $conf, "off", $text{'on'}, "on", $text{'off'}, "off");
print &choice_input($text{'emisc_hauhh'}, "httpd_accel_uses_host_header", 
                  $conf, "off", $text{'yes'}, "on", $text{'no'}, "off");
print "</tr><tr>\n";

print "</table></td></tr></table><br>\n";
print "<input type=submit value=$text{'buttsave'}></form>\n";

print "<hr>\n";
&footer("", $text{'eports_return'});

   0707010000eb93000081e40000000000000002000000013ac0389e000005b9000000200000000000000000000000000000001a00000003reloc/squid/edit_user.cgi #!/usr/local/bin/perl
# edit_user.cgi
# A form for adding or editing a squid user

require './squid-lib.pl';
&ReadParse();
if ($in{'new'}) {
	&header($text{'euser_header'}, "");
	}
else {
	&header($text{'euser_header1'}, "");
	$conf = &get_config();
	@users = &list_auth_users(
			&find_config("proxy_auth", $conf)->{'values'}->[0]);
	%user = %{$users[$in{'index'}]};
	}
print "<hr>\n";

print "<form action=save_user.cgi>\n";
print "<input type=hidden name=index value=$in{'index'}>\n";
print "<input type=hidden name=new value=$in{'new'}>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'euser_pud'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'euser_u'}</b></td>\n";
print "<td><input name=user size=25 value=\"$user{'user'}\"></td> </tr>\n";

print "<tr> <td><b>$text{'euser_p'}</b></td> <td>\n";
if (%user) {
	print "<input type=radio name=pass_def value=1 checked> $text{'euser_u1'}\n";
	print "<input type=radio name=pass_def value=0>\n";
	print "<input name=pass size=20 type=password></td> </tr>\n";
	}
else {
	print "<input name=pass size=20 type=password></td> </tr>\n";
	}
print "</table></td></tr></table>\n";
if (%user) {
	print "<input type=submit value=$text{'buttsave'}>\n";
	print "<input type=submit name=delete value=$text{'buttdel'}>\n";
	}
else {
	print "<input type=submit value=$text{'euser_buttcreat'}>\n";
	}
print "</form>\n";

print "<hr>\n";
&footer("edit_auth.cgi", $text{'euser_return'});

   0707010006ee49000041ed0000000000000001000000023ac03c8100000000000000200000000000000000000000000000001100000003reloc/squid/help  0707010006ee4a000081a40000000000000002000000013ac0389f000006db000000200000000000000000000000000000002200000003reloc/squid/help/edit_acl.es.html <header>Control de Acceso</header>

<b>Listas de control de acceso</b>: ACLs son listas de t閞minos con los que hay que coincidir mediante el uso de expresiones regulares o literales. Un ACL puede tambi閚 ser un archivo que contenga un elemento o expresi髇 regular por l韓ea. La rejilla ACL de esta p醙ina tiene varios campos que pueden ser editados. Tambi閚 se pueden crear nuevas ACLs.
<p>
Los campos presentes son:
<p>
<em>Nombre</em> es el nombre por el cual se puede identificar a la ACL. Al crear una <b>Restricci髇 Proxy</b> este es el nombre usado para definir lo que se est restringiendo.
<p>
<em>Tipo</em> es el tipo de informaci髇 que debe de coincidir con la ACL.
<p>
<em>Que coincida con...</em> es la direcci髇, puerto, direcci髇 (URL), usuario, etc... que debe de coincidir con la ACL.
<p>
<b>Restricciones Proxy</b>: Son las reglas que permiten o deniegan un requerimiento dado bas醤dose en si su ACL coincide con el requerimiento espec韋ico. Hay tres campos en esta rejilla.
<p>
<em>Acci髇</em> puede ser o <em>permitir</em> o <em>denegar</em>.
<p>
<em>ACLs</em> son las ACLs que han de coincidir para decidir si el requerimiento se permite o se deniega. Si van precedidas de un signo de cierre de exclamaci髇 la ACL ser negada, en otras palabras todo <em>excepto</em> los miembros de esa ACL ser醤 autorizados o denegados.
<p>
<em>Mover</em> permite mover el orden de restricciones de la lista. El orden en que aparecen es importante porque Squid s髄o lee la lista hasta que encuentra la primera coincidencia.
<p>
<b>Restricciones ICP</b>: Esta rejilla es para restricciones de requerimientos ICP.  Los requerminentos ICP son requeridos desde otras cach閟 vecinas. Esta secci髇 funciona igual que las <b>Restricciones Proxy</b>.

<hr>
 0707010006ee4b000081a40000000000000002000000013ac0389f00000644000000200000000000000000000000000000001f00000003reloc/squid/help/edit_acl.html    <header>Access Control</header>

<b>Access control lists</b>: ACLs are lists of terms to be matched using regulard expressions of literal expressions.  An ACL may also be a file that contains one item or regular expression per line. The ACL box on this page has several fields which may be edited.  New ACLs may also be created.
<p>
The fields present are:
<p>
<em>Name</em> is the name by which the ACL can be identified.  When creating a <b>Proxy Restriction</b> this is the name used to define what is being restricted.
<p>
<em>Type</em> is the type of information that the ACL is to be matched against. 
<p>
<em>Matching..</em> is the address, port, URL, user, etc. that the ACL will be matching to.
<p>
<b>Proxy restrictions</b>: Proxy restrictions are rules that either allow or deny a given request based on whether its ACL matches the specifics of the reuqest.  There are three fields in this box.
<p>
<em>Action</em> is either <em>allow</em> or <em>deny</em>.
<p>
<em>ACLs</em> are the ACLs that will be matched against to decide whether the request is allowed or denied.  If prepended by an exclamation point the ACL will be negated, in other words everything <em>except</em> members of that ACL will be allowed or denied. 
<p>
<em>Move</em> allows the order of restrictions in the list.  The order in which they appear is important, because Squid only reads the list until it has found the first match.
<p>
<b>ICP restrictions</b>: This box is for restricting ICP requests.  ICP requests are requests from other neighbor caches.  This section work the same as <b>Proxy restrictions</b>.

<hr>
0707010006ee4c000081a40000000000000002000000013ac0389f00000686000000200000000000000000000000000000002200000003reloc/squid/help/edit_acl.pl.html <header>Kontrola dost阷u</header>

<b>Listy kontroli dost阷u</b>: ACL s to listy termin體, do kt髍ych
dopasowywane s wyra縠nia regularne lub znakowe. ACL mo縠 r體nie by
plikiem zawieraj眂ym jedn pozycj lub wyra縠nie regularne w&nbsp;linii.
Ramka ACL na tej stronie zawira kilka p髄, kt髍e mog byc zmieniane. Mo縩a
r體nie utworzy now ACL. <p>

Obecne s pola:
<p>

<em>Nazwa</em> jest nazw, po kt髍ej ACL jest identyfikowana. Podczas
tworzenia <b>Ograniczenia proxy</b> nazwa ta s硊縴 do okre秎enia, co jest
ograniczane. <p>

<em>Typ</em> jest rodzajem informacji, z&nbsp;kt髍 ACL ma byc por體nywana.
<p>

<em>Wzorzec..</em> jest adresem, portem, URL-em, u縴tkownikiem, itd., kt髍y
jako ACL ma by por體nywany. <p>

<b>Ograniczenia proxy</b>: Ograniczenia proxy s regu砤mi, kt髍e albo
dopuszczaj albo blokuj okre秎one zapytania na podsatawie tego, czy jego
ACL pasuje do element體 zapytania. S trzy pola w&nbsp;tej ramce. <p>

<em>Dzia砤nie</em> jest albo <em>pozw髄</em> albo <em>zabro</em>. <p>

<em>ACL</em> s ACL-ami, z&nbsp;kt髍ymi b阣 wykonywane por體nania, aby
okre秎i, czy zapytanie zostanie dopuszczone czy zablokowane. Poprzedzenie
ACL wykrzyknikiem oznacza jej negacj, innymi s硂wy wszystko <em>opr骳z</em>
cz硂nk體 ACL zostanie dopuszczone albo zablokowane. <p>

<em>Przesu</em> zmienia kolejno舵 ogranicze na li禼ie. Kolejno舵,
w&nbsp;jakiej si one pojawiaj, jest wa縩a, gdy Squid czyta list jedynie
do pierwszego spe硁ionego trafienia. <p>

<b>Ograniczenia ICP</b>: Ta ramka s硊縴 do ograniczania zapyta ICP.
Zapytania ICP s zapytaniami od innych, s眘iednich proxy. Ta cz甓 dzia砤
tak samo jak <b>Ograniczenia proxy</b>.

<hr>
  0707010006ee4d000081a40000000000000002000000013ac0389f00000641000000200000000000000000000000000000002200000003reloc/squid/help/edit_acl.sv.html <header>舤komstkontroll</header>

<b>Listor f鰎 錿komstkontroll</b>: 舤komstlistor (ACL:er) 鋜 listor med
villkor som ska matchas av regulj鋜a uttryck. En 錿komstlista kan ocks vara
en fil d鋜 varje rad inneh錶ler ett regulj鋜t uttryck eller en post. Rutan f鰎
錿komstlistor p denna sida har flera 鋘dringsbara f鋖t, och det g錼 ocks att
l鋑ga till 錿komstlistorr.

<p>F鰈jande f鋖t finns:

<p><em>Namn</em> 鋜 錿komstlistans identitet. N鋜 man skapar en
<b>proxy-begr鋘sning</b> 鋜 det detta namn som definierar vad som begr鋘sas.

<p><em>Typ</em> 鋜 den informationstyp som 錿komstlistan ska matchas mot.

<p><em>Matchar ...</em> 鋜 den adress, port, URL, anv鋘dare, etc som
錿komstlistan ska matcha.

<p><b>Proxy-begr鋘sningar</b>: Proxy-begr鋘sningar 鋜 regler som sl鋚per
igenom eller sp鋜rar en f鰎fr錱ning baserat p om dess 錿komstlista matchar
f鰎fr錱ningen. Det finns tre f鋖t i denna ruta:

<p><em>舤g鋜d</em> 鋜 antingen <em>till錿</em> eller <em>sp鋜ra</em>.

<p><em>Listor</em> 鋜 de 錿komstlistor som f鰎fr錱ningen matchas mot f鰎 att se om den ska till錿as eller sp鋜ras. Om ACL:en f鰎eg錽 av ett utropstecken kommer den att negeras, dvs allt <em>utom</em> poster i denna ACL kommer att till錿as eller sp鋜ras.

<p><em>Flytta</em> g鰎 att du kan 鋘dra ordningen p listans begr鋘sningar. Ordningen 鋜 viktig, eftersom Squid bara l鋝er i listan tills den hittar n錱ot som matchar.

<p><b>ICP-begr鋘sningar</b>: Denna ruta anv鋘ds f鰎 att begr鋘sa ICP-f鰎fr錱ningar.  ICP-f鰎fr錱ningar 鋜 signaler fr錸 andra cacher. F鋖ten fungerar likadant som f鰎 <b>Proxy-begr鋘sningar</b>.

<hr>
   0707010006ee4e000081a40000000000000002000000013ac0389f0000041a000000200000000000000000000000000000002a00000003reloc/squid/help/edit_acl.zh_TW.Big5.html <header>北</header>

<b>北 (ACL)</b>: ACL 琌ㄏノタ砏ボΑ┪ゅ磞瓃才兜ヘ.  ACL 琌–︽珹兜ヘ┪琌タ砏ボΑ郎. 硂 ACL 虫计絪胯逆, τミ穝 ACL.
<p>
逆霓霓:
<p>
<em>嘿</em> 琌硂 ACL 砆醚嘿. 讽ミ<b>瞶狝竟</b>, 硂嘿ノ﹚竡.
<p>
<em>摸</em> 琌硂 ACL 璶才摸. 
<p>
<em>才</em> 琌, 硄癟梆, URL, ㄏノ单单, 琌 ACL 璶才癸禜
<p>
<b>瞶狝竟</b>: 硂琌ㄌ沮才 ACL 兵ン璶す砛┪┶荡砏玥. 硂娩Τ逆:
<p>
<em>笆</em> 琌 <em>す砛</em> ┪ <em>┶荡</em>.
<p>
<em>北</em> 琌∕﹚璶す砛┪┶荡耞兵ン. 硂穦紇臫才 ACL 痹瓃癸禜, 碞琌弧<em>埃</em> ACL いΘぇ, ㄤ癸禜盢璶砆す砛┪┶荡. 
<p>
<em>簿笆</em> す砛眤逼い抖. 硂逼抖琌獶盽璶,  Squid 穦ㄌゑ癸–痹瓃才祇瞷, 獽穦氨ゎゑ癸磅︽.
<p>
<b>ICP </b>: ノ ICP 璶―. ICP 璶―琌眖ㄤеㄓ璶―. 硂娩よΑ籔<b>瞶狝竟</b>.

<hr>
  0707010006ee4f000081a40000000000000002000000013ac0389f00000861000000200000000000000000000000000000002400000003reloc/squid/help/edit_admin.es.html   <header>Opciones Administrativas</header>

<b>Ejecutar como usuario Unix</b>: Por defecto es 'nobody' o 'squid' dependiendo del sistema. Si la cach es ejecutada como root, cambiar su ID efectiva/real a este valor.
<p>
<b>Ejecutar como grupo Unix</b>: Por defecto es 'nogroup' o 'squid' dependiendo del sistema. Si la cach es ejecutada como root, cambiar su ID de grupo efectiva/real a este valor.
<p>
<b>Campo de autenticaci髇 Proxy</b>: Especifica el nombre de esfera de influencia que es reportado al cliente para autenticaci髇 proxy (parte del texto que el usuario ver al ser solicitado por su nombre y clave de acceso).
<p>
<b>Direcci髇 de correo del gestor de cach</b>: Por defecto es 'webmaster' o 'root' dependiendo del sistema. Direcci髇 de correo del gestor local de cach que recibir correo si la cach finaliza.
<p>
<b>Nombre de m醧uina visible</b>: Si quieres presentar un nombre especial de m醧uina en los mensajes de error, etc... entonces define 閟te. De otro modo, el valor devuelto de gethostname() ser utilizado. Si tienes m鷏tiples cach閟 en un grupo y hay errores acerca de reenv韔-IP tienes que hacer que tengan nombres individuales con este valor.
<p>
<b>Nombre 鷑ico de m醧uina</b>: Si quieres tener m鷏tiples m醧uinas con el mismo <b>nombre visible de m醧uina</b>, entonces tienes que dar a cada m醧uina un <b>nombre 鷑ico de m醧uina</b> de tal manera que se puedan detectar los bucles de reenv韔.
<p>
<b>M醧uina de anuncio de cach</b>: Nombre de m醧uina donde los mensajes de anuncio ser醤 enviados. Para saber m醩 sobre las jerarqu韆s de cach mira en <a href="http://www.squid-cache.org/Doc/FAQ/FAQ-4.html" target="Reference">Las PRF (FAQ) de Squid</a>.  Por defecto es 'tracker.ircache.net' si el anuncio est activado mediante un per韔do de anunciaci髇.
<p>
<b>Puerto de anuncio de cach</b>: Puerto de m醧uina a donde se env韆n los mensajes de anunciaci髇. Por defecto 3131 al activar la anunciaci髇.
<p>
<b>Per韔do de anunciaci髇</b>: Frecuencia de anunciaciones.  Activa anunciaciones a una jerarqu韆 de cach mediante el valor de '1 d韆'. Por defecto es '0', el cual desactiva las anunciaciones.

<hr>

   0707010006ee50000081a40000000000000002000000013ac0389f00000778000000200000000000000000000000000000002100000003reloc/squid/help/edit_admin.html  <header>Administrative Options</header>

<b>Run as Unix user</b>: Default is 'nobody' or 'squid' dependent on system.  If the cache is run as root, it will change its effective/real ID to this value.
<p>
<b>Run as Unix group</b>: Default is 'nogroup' or 'squid' dependent on system.  If the cache is run as root, it will change its effective/real group ID to this value.
<p>
<b>Proxy authentication realm</b>: Specifies the realm name which is to be reported to the client for proxy authentication (part of the text the user will see when prompted their username and password).
<p>
<b>Cache manager email address</b>: Default is 'webmaster' or 'root' dependent on system.  Email-address of local cache manager who will receive mail if the cache dies.
<p>
<b>Visible hostname</b>: If you want to present a special hostname in error messages, etc, then define this.  Otherwise, the return value of gethostname() will be used. If you have multiple caches in a cluster and get errors about IP-forwarding you must set them to have individual names with this setting.
<p>
<b>Unique hostname</b>: If you want to have multiple machines with the same <b>Visible hostname</b> then you must give each machine a different <b>Unique hostname</b> so that forwarding loops can be detected.
<p>
<b>Cache announce host</b>: Hostname where announcement messages will be sent.  Find out more about cache hierarchies from <a href="http://www.squid-cache.org/Doc/FAQ/FAQ-4.html" target="Reference">The Squid FAQ</a>.  Defaults to 'tracker.ircache.net' when announcement is enabled by setting an announce period.
<p>
<b>Cache announce port</b>: Host port where announcement messages will be sent.  Defaults to 3131 when announcement is enabled. 
<p>
<b>Announcement period</b>: Frequency of announcements.  Enable announcements to a cache heirarchy by setting this to '1 day'.  The default is '0' which turns off announcement.

<hr>

0707010006ee51000081a40000000000000002000000013ac0389f00000895000000200000000000000000000000000000002400000003reloc/squid/help/edit_admin.pl.html   <header>Opcje administracyjne</header>

<b>Uruchom jako u縴tkownik Uniksa</b>: Domy秎nie jest 'nobody' lub 'squid'
w&nbsp;zale縩o禼i od systemu. Je秎i proxy jest uruchomione jako root, zmieni
ono sw骿 efektywny/rzeczywisty UID na t warto舵. <p>

<b>Uruchom jako grupa Uniksa</b>: Domy秎nie jest 'nogroup' lub 'squid'
w&nbsp;zale縩o禼i od systemu. Je秎i proxy jest uruchomione jako root, zmieni
ono sw骿 efektywny/rzeczywisty ID grupy na t warto舵. <p>

<b>Dziedzina autoryzacji proxy</b>: Okre秎a nazw dziedziny, kt髍a b阣zie
zakomunikowana klientowi dla autoryzacji proxy (cz甓 tekstu, kt髍
u縴tkownik zobaczy, gdy zostanie poproszony o&nbsp;nazw u縴tkownika
i&nbsp;has硂). <p>

<b>Adres e-mail zarz眃cy proxy</b>: Domy秎nie jest 'webmaster' or 'root'
w&nbsp;zale縩o禼i od systemu. Adres e-mail lokalnego zarz眃cy proxy, kt髍y
b阣zie otrzymywa wiadomo舵 w&nbsp;padu proxy. <p>

<b>Widoczna nazwa hosta</b>: Je秎i chcesz przedstawi okre秎on nazw hosta
w&nbsp;komunikatach o&nbsp;b酬dach itp., to podaj j tu. W przeciwnym razie
b阣zie u縴ta warto舵 zwracana przez gethostname(). Je秎i posiadasz wiele
proxy w&nbsp;klastrze i&nbsp;otrzymujesz b酬dy dotycz眂e przekazywania IP,
musisz nada im indywidualne nazwy za pomoc tego ustawienia. <p>

<b>Unikalna nazwa hosta</b>: Je秎i chcesz mie wiele maszyn z&nbsp;t sam
<b>Widoczn nazw hosta</b> to musisz nada ka縟ej z&nbsp;nich inn
<b>Unikaln nazw hosta</b> tak, aby zap阾lanie podczas przekazywania mog硂
zosta wykryte. <p>

<b>Host rozg砤szania cache</b>: Nazwa hosta, do kt髍ego b阣 wysy砤ne
komunikaty rozg硂szeniowe. Wi阠ej na temat hierarchii proxy znajdziesz
w&nbsp;<a href="http://www.squid-cache.org/Doc/FAQ/FAQ-4.html"
target="Reference">FAQ-u Squida</a>. Domy秎nie jest to
'tracker.ircache.net', je秎i rozg砤szanie zosta硂 w潮czone poprzez podanie
okresu rozg砤szania. <p>

<b>Port rozg砤szania cache</b>: Port hosta, na kt髍y komunikaty
rozg硂szeniowe b阣 wysy砤ne. Domy秎nie jest to 3131, gdy rozg砤szanie jest
w潮czone. <p>

<b>Cz阺totliwo舵 rozg砤szania</b>: Cz阺totliwo舵 rozg硂sze. W潮cz
rozg砤szanie do hierarchii proxy poprzez ustawienia jej na '1 dzie'.
Domy秎nie jest '0', co wy潮cza rozg砤szanie.

<hr>

   0707010006ee52000081a40000000000000002000000013ac0389f00000807000000200000000000000000000000000000002400000003reloc/squid/help/edit_admin.sv.html   <header>Administrativa inst鋖lningar</header>

<b>K鰎 som Unix-anv鋘dare</b>: Standardinst鋖lningen 鋜 'nobody' eller
'squid', beroende p systemet. Om cache k鰎s som root, kommer det att
byta ID till det du anger h鋜.

<p><b>K鰎 som Unix-grupp</b>: Standardinst鋖lningen 鋜 'nogroup' eller
'squid', beroende p systemet. Om cache k鰎s som root, kommer det att
byta grupp-ID till det du anger h鋜.

<p><b>Proxy-autentiseringsomr錮e</b>: Anger det omr錮esnamn som ska
skickas till klienten f鰎 proxy-autentisering (en del av den text som
anv鋘daren f錼 se n鋜 han tillfr錱as om anv鋘darnamn och l鰏enord).

<p><b>Cache-administrat鰎ens e-postadress</b>: Standardinst鋖lningen
鋜 'webmaster' eller 'root', beroende p systemet. E-postadressen f鰎
den lokala cache-administrat鰎en som ska f ett meddelande om cachen
d鰎.

<p><b>Synligt datornamn</b>: Om du vill att ett s鋜skilt datornamn ska
visas i felmeddelanden och liknande, kan du ange detta namn h鋜. Om
inget namn anges h鋜 kommer resultatet av gethostname() att
anv鋘das. Om du har satt upp flera cacher i ett kluster och f錼
felmeddelanden om IP-s鋘dningar m錽te du ge cacherna individuella namn
h鋜.

<p><b>Unikt datornamn</b>: Om du vill att flera maskiner ska ha samma
<b>synliga datornamn</b> m錽te du ocks ange olika <b>unika
datornamn</b> f鰎 dem h鋜, s att rundg錸gar kan uppt鋍kas.

<p><b>Dator f鰎 cache-meddelanden</b>: Dator som ska ta emot
annonseringsmeddelanden. Du kan l鋝a mer om cache-hierarkier p <a
href="http://www.squid-cache.org/Doc/FAQ/FAQ-4.html"
target="Reference">The Squid FAQ</a>. Standardrouten g錼 till
'tracker.ircache.net' n鋜 Annonsering aktiverats genom att ett
annonseringsintervall satts.

<p><b>Port f鰎 cache-meddelanden</b>: Datorport som ska ta emot
annonseringsmeddelanden. Standardinst鋖lningen 鋜 3131 n鋜 Annonsering
aktiverats.

<p><b>Annonseringsintervall</b>: Frekvens f鰎
annonseringsmeddelanden. Aktivera annonsering till en cache-hierarki
genom att s鋞ta detta v鋜de till '1 dag'. Standardv鋜det 鋜 '0',
vilket deaktiverar annonseringen.

<hr>
 0707010006ee53000081a40000000000000002000000013ac0389f00000527000000200000000000000000000000000000002c00000003reloc/squid/help/edit_admin.zh_TW.Big5.html   <header>恨瞶匡兜</header>

<b> Unix ㄏノ磅︽</b>: ㄌ沮眤╰参ぃ, 箇砞 'nobody' ┪ 'squid'. 狦е琌 root ōだ磅︽, ウ穦рΤ (痷龟) ōだち传Θ硂计.
<p>
<b> Unix 竤舱磅︽</b>: ㄌ沮眤╰参ぃ, 箇砞 'nobody' ┪ 'squid'. 狦е琌 root ōだ磅︽, ウ穦рΤ (痷龟) ōだち传Θ硂计.
<p>
<b>瞶狝竟粄靡絛瞅</b>: ﹚璶め狠秈︽瞶狝竟粄靡絛瞅. ㄏノ盢穦砆矗ボㄏノ嘿籔盞絏.
<p>
<b>е恨瞶筿秎ン</b>: ㄌ沮眤╰参ぃ, 箇砞 'webmaster' ┪ 'root'. 狦е奔, 硂秎ン盢穦Μ筿秎ン硄.
<p>
<b>ǎ诀嘿</b>: 狦眤稱璶岿粇癟いΤ﹚诀嘿, 叫﹚竡硂兜. 玥杠岿粇癟盢穦ㄏノ gethostname() ┮肚嘿陪ボ嘿. 狦眤Τе翺栋よΑ磅︽ IP 锣癳よΑ眔岿粇癟, 眤ゲ斗硂砞﹚﹚縒ミ嘿.
<p>
<b>斑诀嘿</b>: 狦眤辨诀ㄏノ<b>ǎ诀嘿</b>, 玥眤ゲ斗倒ぉ–诀竟ぃ<b>斑诀嘿</b>, よ盎代锣癳癹伴.
<p>
<b>еそ诀</b>: そ癟璶癳诀嘿. 戈癟叫 <a href="http://www.squid-cache.org/Doc/FAQ/FAQ-4.html" target="Reference">The Squid FAQ</a> 琩高. 箇砞そ 'tracker.ircache.net'.
<p>
<b>еそ硄癟梆</b>: そ癟璶癳诀硄癟梆. 箇砞 3131. 
<p>
<b>そ丁</b>: そ繵瞯. 砞﹚ '1 ぱ' 币笆そ. 箇砞 '0' 盢闽超そ.

<hr>

 0707010006ee54000081a40000000000000002000000013ac0389f0000162f000000200000000000000000000000000000002400000003reloc/squid/help/edit_cache.es.html   <header>Opciones de Cach</header>

<b>Directorios de Cach</b>: Puedes especificar m鷏tiples l韓eas de directorios de cach para ampliar la cach entre diferentes particiones de disco.<p>

<em>Directorio</em> es un directorio de nivel superior donde se almacenan los archivos de intercambio de cach. Si deseas utilizar todo un disco para hacer cach, entonces aqu puedes poner el directorio de anclaje. El directorio debe de existir y ser escribible por el proceso de Squid. Squid NO crear el directorio si no existe.
<p>
<em>Medida</em> es la cantidad de espacio en disco (MB) a usar bajo este directorio. Por defecto son 100MB. Cambia esto para adaptarlo a tu configuraci髇.
<p>
<em>Directorios de primer nivel</em> es el n鷐ero de subdirectorios de primer nivel que se crear醤 bajo <em>Directorio</em>.  Por defecto son 16.
<p>
<em>Directorios de segundo nivel</em> es el n鷐ero de subdirectorios de segundo nivel que se crear醤 bajo cada directorio de primer nivel. Por defecto son 256.
<P>
<b>Media de la Medida del Objeto</b>: Por defecto son 13 KB. Se usa para estimar el n鷐ero de objectos que tu cach puede mantener.
<p>
<b>Objectos por cubo</b>: Por defecto son 50. N鷐ero de objetivos de objetos por cubo en la tabla hash de almacenamiento. Bajar este valor incrementa el n鷐ero total de cubos y tambi閚 el porcentaje de mantenimiento de almacenamiento.
<p>
<b>No hacer Cach de URLs para las ACLs</b>: Por defecto ninguna. Selecciona cualquier ACL para las que no deseas que Squid lleve cach de sus datos. Es 鷗il para definir un servidor web interno del que no se debe de llevar cach.
<p>
<b>Tiempo m醲imo de cach</b>: Por defecto 1 a駉. Este par醡etro define la edad m醲ima de LRU (Unidad menos le韉a). Por ejemplo, poner '1 semana' har que los objetos sean quitados si no han sido accedidos durante una semana o m醩.
<p>
<b>Tiempo para fallo de requerimiento de cach</b> Por defecto 5 minutos. Tiempo-a-Vivir (TTL) para requerimientos fallidos. Ciertos tipos de fallos (como "conexi髇 rechazada y "404 No Hallado") son negat韛amente puestos en cach por una cantidad de tiempo configurable. Ten en cuenta que esto es diferente del cach negativo de las b鷖quedas DNS.
<p>
<b>Tiempo de cach de b鷖queda DNS</b>: Por defecto 6 horas (360 minutos).  Timempo-a-Vivir (TTL) para cach positivo de b鷖quedas exitosas en DNS. Si quieres minimizar el uso de ipcach de Squid, pon esto a 1 y no a 0.
<p>
<b>Tiempo fallido de cach de DNS</b>: Por defecto 5 minutos.  Tiempo-a-Vivir (TTL) para cach negativo de b鷖quedas fallidas de DNS.
<p>
<b>Tiempo de espera para Conectar</b>: Por defecto 120 segundos. Algunos sistemas (not醔lemente Linux) no pueden realizar adecu醖amente el agotamiento de requerimientos de tiempo de conexi髇. Por ello, el proceso Squid fuerza su propio control de tiempo en las conexiones de servidores. Este par醡etro especifica cu醤to tiempo esperar para que la conexi髇 se complete.
<p>
<b>Tiempo de espera para Leer</b>: Por defecto 15 minutos. El tiempo m醲imo de lectura que se aplica en conexiones del lado servidor. Tras cada lectura [read()] con 閤ito, el tiempo ser extendido en esta cantidad. Si no se lee dato alguno de nuevo tras esta cantidad de tiempo, el requerimiento es abortado y puesto en el historial con ERR_READ_TIMEOUT.
<p>
<b>Tiempo de espera para selecci髇 de Sitio</b>: Por defecto 4 segundos. Para URN a m鷏tiples URLs.
<p>
<b>Tiempo de espera para requerimiento de Cliente</b>: Por defecto 15 minutos. El tiempo de espera de lectura se aplica a conexiones del lado del servidor. Tras cada lectura [read()] con 閤ito, el tiempo de espera se extiende en esta cantidad. Si no se lee dato alguno tras esta cantidad de tiempo, el requerimiento es abortado y puesto en el historial con ERR_READ_TIMEOUT.
<p>
<b>Tiempo m醲imo para conexi髇 de cliente</b>: Por defecto 1 d韆. La m醲ima cantidad de tiempo que un cliente (navegador) est autorizado a permanecer conectado al proceso de cach. Esto protege la Cach de tener un mont髇 de sockets (y por ello descriptores de archivo) arrancados en estado CLOSE_WAIT desde clientes remotos que se marchan sin cerrar adecu醖amente (o por fallo de red o debido a una pobre implementaci髇).
<p>
<b>Tiempo m醲imo de apagado</b>: Por defecto 30 segundos. Al recibir SIGTERM o SIGHUP, la cach es puesta en modo "apagado pendiente" hasta que todos los sockets activos son cerrados. Este valor es el tiempo de vida a poner para todos los descriptores abiertos durante el modo de apagado. Cualquier cliente activo tras esta cantidad de segundos recibir un mensaje de 'tiempo agotado'.
<p>
<b>Clientes medio-cerrados</b>:  Por defecto 'activado'.  Algunos clientes pueden cerrar la parte que env韆 de sus conexiones TCP mientras dejan sus partes receptoras abiertas. Algunas veces, Squid no puede saber la diferencia entre una conexi髇 TCP medio cerrada y otra compl閠amente cerrada. Por defecto, las conexiones medio cerradas de clientes se mantienen abiertas hasta que una lectura [read()] o escritura [write()] en el socket devuelva un error. Cambia esta opci髇 a 'desactivada' y Squid cerrar inmedi醫amente las conexiones de cliente cuando una lectura [read()] devuelva "no hay m醩 datos que leer".
<p>
<b>Tiempo m醲imo persitente</b>: Por defecto es 120 segundos. Tiempo m醲imo para conexiones ociosas persistentes a clientes, servidores y otros proxys. Las conexiones persistentes son desactivadas si este valor es inferior a 10 segundos.
<p>
<b>M醧uina rel de WAIS</b>: Por defecto ninguna. Nombre de m醧uina o direcci髇 donde enviar requerimientos de WAIS.
<p>
<b>Puerto rel de WAIS</b>: Por defecto ninguno. Puerto donde dirigir los requerimientos de WAIS.

<hr>
 
 0707010006ee55000081a40000000000000002000000013ac0389f00001331000000200000000000000000000000000000002100000003reloc/squid/help/edit_cache.html  <header>Cache Options</header>

<b>Cache Directories</b>: You can specify multiple cache directory lines to spread the cache among different disk partitions.<p>

<em>Directory</em> is a top-level directory where cache swap files will be stored.  If you want to use an entire disk for caching, then this can be the mount-point directory. The directory must exist and be writable by the Squid process.  Squid will NOT create this directory for you.
<p>
<em>Size</em> is the amount of disk space (MB) to use under this directory.  The default is 100 MB.  Change this to suit your configuration.
<p>
<em>1st level dirs</em> is the number of first-level subdirectories which will be created under the <em>Directoryi</em>.  The default is 16.
<p>
<em>2nd level dirs</em> is the number of second-level subdirectories which will be created under each first-level directory.  The default is 256.
<P>
<b>Average Object Size</em>: Defaults to 13 kB. Average object size, used to estimate number of objects your cache can hold.
<p>
<b>Objects per bucket</b>: Defaults to 50.  Target number of objects per bucket in the store hash table. Lowering this value increases the total number of buckets and also the storage maintenance rate.
<p>
<b>Don't Cache URLs for ACLs</b>: Defaults to none.  Select any ACLs for which you do not want Squid to cache data.  Helpful for defining an internal web server that should not be cached.
<p>
<b>Maximum cache time</b>: Defaults to 1 year.  This parameter defines the maximum LRU age.  For example, setting this to '1 week' will cause objects to be removed if they have not been accessed for a week or more.
<p>
<b>Failed request cache time</b> Defaults to 5 minutes.  Time-to-Live (TTL) for failed requests.  Certain types of failures (such as "connection refused" and "404 Not Found") are negatively-cached for a configurable amount of time.  Note that this is different from negative caching of DNS lookups.
<p>
<b>DNS lookup cache time</b>: Defaults to 6 hours (360 minutes).  Time-to-Live (TTL) for positive caching of successful DNS lookups.  If you want to minimize the use of Squid's ipcache, set this to 1, not 0.
<p>
<b>Failed DNS cache time</b>: Defaults to 5 minutes.  Time-to-Live (TTL) for negative caching of failed DNS lookups.
<p>
<b>Connect Timeout</b>: Default is 120 seconds.  Some systems (notably Linux) can not be relied upon to properly time out connect(2) requests.  Therefore the Squid process enforces its own timeout on server connections.  This parameter specifies how long to wait for the connect to complete.
<p>
<b>Read timeout</b>: Default is 15 minutes.  The read_timeout is applied on server-side connections.  After each successful read(), the timeout will be extended by this amount.  If no data is read again after this amount of time, the request is aborted and logged with ERR_READ_TIMEOUT.
<p>
<b>Site selection timeout</b>: Default is 4 seconds.  For URN to multiple URL's URL selection.
<p>
<b>Client request timeout</b>: Default is 15 minutes.  The read_timeout is applied on server-side connections.  After each successful read(), the timeout will be extended by this amount.  If no data is read again after this amount of time, the request is aborted and logged with ERR_READ_TIMEOUT.
<p>
<b>Max client connect time</b>: Default is 1 day.  The maximum amount of time that a client (browser) is allowed to remain connected to the cache process.  This protects the Cache from having a lot of sockets (and hence file descriptors) tied up in a CLOSE_WAIT state from remote clients that go away without properly shutting down (either because of a network failure or because of a poor client implementation).
<p>
<b>Max shutdown time</b>: Defaults to 30 seconds.  When SIGTERM or SIGHUP is received, the cache is put into "shutdown pending" mode until all active sockets are closed. This value is the lifetime to set for all open descriptors during shutdown mode.  Any active clients after this many seconds will receive a 'timeout' message.
<p>
<b>Half-closed clients</b>:  Defaults to 'on'.  Some clients may shutdown the sending side of their TCP connections, while leaving their receiving sides open.  Sometimes, Squid can not tell the difference between a half-closed and a fully-closed TCP connection.  By default, half-closed client connections are kept open until a read(2) or write(2) on the socket returns an error.  Change this option to 'off' and Squid will immediately close client connections when read(2) returns "no more data to read".
<p>
<b>Persistant timeout</b>: Defaults to 120 seconds.  Timeout for idle persistent connections to clients, servers and other proxies.  Persistent connections will be disabled if this is less than 10 seconds.
<p>
<b>WAIS relay host</b>: Default is none.  Hostname or address to relay WAIS requests to.
<p>
<b>WAIS relay port</b>: Default is none.  Port to direct relay WAIS requests to.

<hr>
 
   0707010006ee56000081a40000000000000002000000013ac0389f00001619000000200000000000000000000000000000002400000003reloc/squid/help/edit_cache.pl.html   <header>Opcje buforowania</header>

<b>Katalogi bufor體</b>: Mo縠sz poda kilka katalog體 bufor體 cache, po
jednym w&nbsp;linii, aby rozdzieli bufory pomi阣zy r罂ne partycje dysk體.
<p>

<em>Katalog</em> jest katalogiem najwy縮zego poziomu, w&nbsp;kt髍ym b阣
przechowywane pliki wymiany proxy. Je秎i ca硑 dysk ma by wykorzystany na
bufory, nale縴 tu poda miejsce jego zamontowania. Katalog musi istnie
i&nbsp;proces Squida musi mie prawo zapisu w&nbsp;nim. Squid NIE utworzy
tego katalogu za ciebie. <p> 

<em>Rozmiar</em> jest ilo禼i przestrzeni dyskowej (w&nbsp;MB), kt髍a mo縠
by wykorzystana w&nbsp;tym katalogu. Domy秎nie jest to 100&nbsp;MB. Dobierz
warto舵 do swojej konfiguracji. <p>
 
<em>Kat. 1. poziomu</em> jest liczb katalog體 pierwszego poziomu, kt髍e
zostan utworzone w&nbsp;<em>Katalogu</em>. Domy秎nie 16. <p>

<em>Kat. 2. poziomu</em> jest liczb katalog體 drugiego poziomu, kt髍e
zostan utworzone w&nbsp;ka縟ym z&nbsp;katalog體 pierwszego poziomu.
Domy秎nie 256. <p>  

<b>edni rozmiar obiektu</em>: Domy秎nie 13&nbsp;kB. edni rozmiar obiektu
u縴wany do oszacowania liczby obiekt體, jaka mo縠 by przechowywana
w&nbsp;buforach cache. <p>
 
<b>Obiekt體 w&nbsp;porcji</b>: Domy秎nie 50. docelowa liczba obiekt體
w&nbsp;porcji w&nbsp;przechowywanej tablicy haszy. Obni縠nie tej warto禼i
powoduje zwi阫szenie og髄nej liczby porcji, jak r體nie szybko禼i
zarz眃zania buforami cache. <p>
 
<b>Nie buforuj URL-i dla ACL</b>: Domy秎nie 縜den. Wybierz dowoln ACL, dla
kt髍ej nie chcesz, aby Squid buforowa dane. Pomaga zdefiniowa wewn阾rzny
serwer WWW, do kt髍ego dost阷 nie powinien by buforowany. <p>

<b>Maksymalny czas buforowania</b>: Domy秎nie 1 rok. Ten parametr okre秎a
maksymalny wiek LRU. Na przyk砤d, ustawienie na '1 tydzie' spowoduje, 縠
obiekty, do kt髍ych nie by硂 dost阷u prez tydzie lub d硊縠j zostan
usuni阾e. <p>

<b>Czas buforowania b酬dnych zapyta</b> Domy秎nie 5 minut. Czas 縴cia (TTL)
b酬dnych zapyta. Pewne rodzaje zapyta (takie jak "odmowa po潮czenia" lub
"404 nie znaleziono") s buforowane negatywnie przez okre秎ony okres czasu.
Zauwa, 縠 nie jest to to samo, co negatywne buforowanie wynik體
przeszukiwania DNS. <p>

<b>Czas buforowania przeszukiwa DNS</b>: Domy秎nie 6 godzin (360 minut).
Czas 縴cia dla pozytywnego buforowania wynik體 przeszukiwania DNS. Je縠li
chcesz zminimalizowa korzystanie z&nbsp;bufor體 IP Squida, ustaw to na 1,
nie na 0. <p>

<b>Czas buforowania b酬dow DNS</b>: Domy秎nie 5 minut. Czas 縴cia (TTL) dla
negatywnego buforowania b酬dnych wynik體 przeszukiwania DNS. <p>

<b>Czas przeterminowania po潮czenia</b>: Domy秎nie 120 sekund. Na niekt髍ych
systemach (w&nbsp;szczeg髄no禼i na Linuksie) nie mo縩a polega
w&nbsp;kwestii prawid硂wego przeterminowywania zapyta connect(2).
W&nbsp;zwi眤ku z&nbsp;tym proces Squida wymusza sw骿 w砤sny czas
przeterminowania dla po潮cze z&nbsp;serwerami. <p>
 
<b>Czas przeterminowania odczytu</b>: Domy秎nie 15 minut. Stosuje si go
przy po潮czeniach od strony serwera. Po ka縟ym pomy秎nie zako馽zonym read(),
czas przeterminowania b阣zie przed硊縜ny do tej warto禼i. Je秎i w&nbsp;ci眊u
tego czasu nie zostan ponownie przeczytane 縜dne dane, zapytanie jest
anulowane i&nbsp;logowane z&nbsp;b酬dem ERR_READ_TIMEOUT. <p>

<b>Czas przeterminowania wyboru miejsca</b>: Domy秎nie 4 sekundy. Dla URN do
wieloURL-owego wyboru. <p>

<b>Czas przeterminowania zapytania klienta</b>: Domy秎nie 15 minut. Stosuje
si goStosuje si go przy po潮czeniach od strony serwera. Po ka縟ym
pomy秎nie zako馽zonym read(), czas przeterminowania b阣zie przed硊縜ny do
tej warto禼i. Je秎i w&nbsp;ci眊u tego czasu nie zostan ponownie przeczytane
縜dne dane, zapytanie jest anulowane i&nbsp;logowane z&nbsp;b酬dem
ERR_READ_TIMEOUT. <p>

<b>Maks. czas po潮czenia z&nbsp;klientem</b>: Domy秎nie 1 dzie. Maksymalny
okres czasu, przez kt髍y klient (przegl眃arka) mo縠 by po潮czona
z&nbsp;procesem proxy. Zapobiega to posiadaniu przez proxy wielu gniazd
(i&nbsp;w&nbsp;zwi眤ku z&nbsp;tym deskryptor體 plik體) przywi眤anych
w&nbsp;stanie CLOSE_WAIT do zdalnych klient體, kt髍zy si roz潮czyli bez
poprawnego zamkni阠ia po潮czenia (z&nbsp;powodu nieprawid硂wej pracy sieci
lub z&nbsp;powodu kiepskiej implementacji klienta). <p>

<b>Maks. czas wy潮czania</b>: Domy秎nie 30 sekund. Gdy proxy otrzy ma sygna
SIGTERM lub SIGTERM jest on wprowadzany w&nbsp;stan "zawieszonego
zamkni阠ia" a wszystkie aktywne gniazda zostan zamkni阾e. Warto舵 ta jest
czasem 縴cia ustawianym dla wszystkich otwartych deskryptor體 w&nbsp;trybie
zamykania. Wszyscy aktywni klienci po tej ilo禼i sekund otrzymaj komunikat
o&nbsp;przeterminowaniu po潮czenia ('timeout'). <p>

<b>Klienci p蟪zamkni阠i</b>:  Domy秎nie 'w潮czone'. Niekt髍zy klienci mog
zamyka wysy砤j眂 stron swoich po潮cze TCP, pozostawiaj眂 otwart stron
odbieraj眂. Niekiedy SquidSquid ma problemy z&nbsp;odr罂nieniem po潮cze
TCP p蟪zamkni阾ych od ca砶owicie zamkni阾ych. Domy秎nie, po潮czenia
p蟪zamkni阾e s utrzymywane a read(2) lub write(2) dla gniazda zwr骳i b潮d.
Je秎i zmienisz t opcj na 'wy潮czone', Squid b阣zie zamyka po潮czenie
klienta natychmiast po zwr骳eniu przez read(2) "nie ma wi阠ej danych do
odczytu". <p>

<b>Sta硑 czas przeterminowania</b>: Domy秎nie 120 sekund. Czas
przeterminowania dla trwa硑ch ja硂wych po潮cze z&nbsp;klientami, serwerami
i&nbsp;innymi proxy. Trwa砮 po潮czenia b阣 niemo縧iwe, je秎i warto舵 ta
b阣zie mniejsza ni 10 sekund. <p>

<b>Host przekazywania WAIS</b>: Domy秎nie 縜den. Nazwa lub adres hosta, do
kt髍ego b阣 przekazywane zapytania WAIS. <p>

<b>Port przekazywania WAIS</b>: Domy秎nie 縜den. Port, na kt髍y b阣
przekazywane zapytania WAIS.

<hr>
 
   0707010006ee57000081a40000000000000002000000013ac0389f00001416000000200000000000000000000000000000002400000003reloc/squid/help/edit_cache.sv.html   <header>Cache-inst鋖lningar</header>

<b>Cache-kataloger</b>: Du kan ange flera cache-kataloger f鰎 att
sprida cachen 鰒er flera diskpartitioner.

<p><em>Katalog</em> 鋜 en toppniv錵atalog d鋜 cachernas swapfiler
l鋑gs. Om du vill anv鋘da en hel disk f鰎 cachning kan du ange
monteringspunktens katalog h鋜. Katalogen m錽te finnas och vara
skrivbar f鰎 Squid-processen. Squid kommer INTE att skapa katalogen 錿
dig.

<p><em>Storlek</em> 鋜 det diskutrymme (MB) som ska anv鋘das under
denna katalog. Standardv鋜det 鋜 100 MB. St鋖l in detta s att det
passar dina inst鋖lningar.

<p><em>F鰎staniv錵ataloger</em> 鋜 antalet underkataloger p f鰎sta
niv錸 som ska skapas under <em>Katalog</em>. Standardv鋜det 鋜 16.

<p><em>Andraniv錵ataloger</em> 鋜 antalet underkataloger p andra
niv錸, som ska skapas under varje f鰎staniv錵atalog. Standardv鋜det 鋜
256.

<P><b>Medelstorlek p objekt</em>: Standardv鋜det 鋜 13
kB. Medelstorlek f鰎 de filer som ska cachas; anv鋘ds f鰎 att
uppskatta antalet filer som cachen kan ta emot.

<p><b>Antal objekt per katalog</b>: Standardv鋜det 鋜 50. Antal objekt
per katalog i lagringshashtabellen. Om detta v鋜de minskas 鰇as
antalet kataloger samt underh錶lsbehovet f鰎 dessa.

<p><b>Cacha inte URL:er f鰎 錿komstlistor</b>: Standardinst鋖lningen
鋜 Ingen.  Ange de 錿komstlistor som Squid inte ska cacha data
f鰎. Detta 鋜 anv鋘dbart om du vill s鋞ta upp en intern webserver som
inte ska cachas.

<p><b>Maximal cachetid</b>: Standardv鋜det 鋜 1 錼. Parametern anger
maximal LRU-錶der. Om du exempelvis s鋞ter denna till '1 vecka' kommer
alla objekt tas bort som inte har r鰎ts p minst en vecka.

<p><b>Cachetid f鰎 misslyckad f鰎fr錱ning</b> Standardv鋜det 鋜 5
minuter. Time-to-Live (TTL) f鰎 misslyckade f鰎fr錱ningar. Vissa
sorters fel (t ex "connection refused" and "404 Not Found") cachas
negativt under en viss tid som g錼 att st鋖la in. Observera att detta
inte 鋜 samma sak som negativ cachning av DNS-uppslagningar.

<p><b>Cachetid f鰎 DNS-uppslagning</b>: Standardv鋜det 鋜 6 timmar
(360 minuter). Time-to-Live (TTL) f鰎 positiv cachning av lyckade
DNS-uppslagningar. F鰎 att minimera anv鋘dningen av Squids ipcache ska
denna parameter s鋞tas till 1, <b>inte 0</b>.

<p><b>Cachetid f鰎 misslyckad DNS-uppslagning</b>: Standardv鋜det 鋜 5
minuter. Time-to-Live (TTL) f鰎 negativ cachning av misslyckade
DNS-uppslagningar.

<p><b>Tidsgr鋘s f鰎 uppkoppling</b>: Standardv鋜det 鋜 120
sekunder. Vissa system (s鋜skilt Linux) har ingen funktionalitet f鰎
att strypa connect(2)-f鰎fr錱ningar. D鋜f鰎 l鋑ger Squid-processen p
en egen tidsgr鋘s p serveruppkopplingar. Denna parameter anger hur
l鋘ge processen ska v鋘ta p att uppkopplingen ska fullbordas.

<p><b>Tidsgr鋘s f鰎 l鋝ning</b>: Standardv鋜det 鋜 15
minuter. Variabeln read_timeout anv鋘ds vid serveruppkopplingar. Efter
varje lyckad read() 鰇as tidsgr鋘sen med detta v鋜de. Om inga data
l鋝ts under denna tid avbryts f鰎fr錱ningen och loggas med
ERR_READ_TIMEOUT.

<p><b>Tidsgr鋘s f鰎 siteval</b>: Standardv鋜det 鋜 4 sekunder. Detta
anv鋘ds f鰎 URL-val vid URN f鰎 flera URL:er.

<p><b>Tidsgr鋘s f鰎 klientf鰎fr錱ning</b>:  Standardv鋜det 鋜 15
minuter. read_timeout anv鋘ds p serverns sida av uppkopplingen. Efter
varje lyckad read() kommer tidsgr鋘sen att f鰎l鋘gas med detta
v鋜de. Om en klient inte har s鋘t n錱on f鰎fr錱ning under denna tid,
bryts f鰎bindelsen.

<p><b>Maximal uppkopplingstid f鰎 klient</b>: Standardv鋜det 鋜 1
dag. Den l鋘gsta tid en klient (browser) f錼 vara uppkopplad mot
cacheprocessen. Detta hindrar att cachen f錼 en massa sockets (och
d鋜med ocks fildeskriptorer) fastl錽ta i CLOSE_WAIT-l鋑e f鰎 att
klienter f鰎svinner utan att avsluta f鰎bindelsen ordentligt (p grund
av n鋞verkstrassel eller d錶ig klientimplementation).

<p><b>Maximal avst鋘gningstid</b>: Standardv鋜det 鋜 30 sekunder. N鋜
processen tar emot SIGTERM eller SIGHUP g錼 cachen in i "v鋘tar p
stopp"-l鋑e tills alla sockets har st鋘gts. Denna parameter anger den
livsl鋘gd som alla 鰌pna deskriptorer ges i avst鋘gningsl鋑et. Om det
finns n錱ra aktiva klienter kvar efter denna tid f錼 de ett
'timeout'-meddelande.

<p><b>Halvst鋘gda klienter</b>: Standardv鋜det 鋜 "p". En del
klienter sl錼 av s鋘dningssidan av sina TCP-f鰎bindelser, men l鋗nar
mottagningssidan 鰌pen.  Ibland kan Squid inte k鋘na skillnad p en
halvst鋘gd och en helt avslutad TCP-f鰎bindelse. Det vanliga beteendet
鋜 att halvst鋘gda klientf鰎bindelser h錶ls 鰌pna tills en read(2)
eller write(2) p denna socket ger ett felmeddelande. Om inst鋖lningen
鋘dras till "av" kommer Squid omedelbart att st鋘ga klientf鰎bindelser
d read(2) returnerar "no more data to read".

<p><b>Kvardr鰆ande tidsgr鋘s</b>: Standardv鋜det 鋜 120
sekunder. Tidsgr鋘s f鰎 v鋘tande kvardr鰆ande uppkopplingar till
klienter, servrar och andra maskiner.  Kvardr鰆ande uppkopplingar
kommer att sl錽 av om denna gr鋘s 鋜 mindre 鋘 10 sekunder.

<p><b>Dator f鰎 WAIS-rel</b>: Standardinst鋖lningen 鋜
ingen. Datornamn eller -adress som WAIS-f鰎fr錱ningar ska skickas
till.

<p><b>Port f鰎 WAIS-rel</b>: Standardinst鋖lningen 鋜 ingen. Port som
WAIS-f鰎fr錱ningar ska skickas till.

<hr>
  0707010006ee58000081a40000000000000002000000013ac0389f00000cc9000000200000000000000000000000000000002c00000003reloc/squid/help/edit_cache.zh_TW.Big5.html   <header>е匡兜</header>

<b>еヘ魁</b>: 眤﹚еヘ魁︽盢еず甧だ床ぃ合盒だ澄跋ぇい.<p>

<em>ヘ魁</em> 琌ユ传郎盢纗郴狠ヘ魁. 狦眤﹁呼ㄏノ俱合盒е, 硂琌赣ヘ魁本更翴. 硂ヘ魁ゲ斗砆 Squid 祘┮糶. Squid 盢ぃ穦眤ミ硂ヘ魁.
<p>
<em></em> 琌璶硂ヘ魁璶ㄏノ合盒丁. 箇砞 100 MB. э跑硂匡兜才眤惠璶.
<p>
<em>材糷ヘ魁计秖</em> 琌<em>ヘ魁</em>璶ミ材糷ヘ魁计秖, 箇砞 16.
<p>
<em>材糷ヘ魁计秖</em> 琌璶–<em>材糷ヘ魁</em>ミヘ魁计秖, 箇砞 256.
<P>
<b>キАン</em>: 箇砞 13 kB. 硂琌ノ箇︳眤е┮纗ン计秖.
<p>
<b>–跋办いン计ヘ</b>: 箇砞 50. –跋办いン计ヘ琌砆纗馒搓ぇい. 硂计盢穦糤跋办计ヘ籔纗砰蝴臔Ω计.
<p>
<b>ぃ璶е URL ず甧</b>: 箇砞 '礚;. 匡拒ヴ眤ぃ辨 Squid е ACL. ﹚竡ず场呼磷е琌Τ腊.
<p>
<b>程е丁</b>: 箇砞 1 . 硂把计﹚竡程 LRU 丁. 羭ㄒτē, 砞﹚Θ '1 ㏄' 盢穦簿笆簿埃┮Τ禬筁㏄⊿Τ郎.
<p>
<b>ア毖璶―е丁/b> 箇砞 5 だ牧. 硂琌璶―ア毖丁 (TTL) . 硂摸ア毖 (ㄒ "硈絬砆┶" ┪ "404 тぃ" 穦纗еい, τ硂е盢﹚丁ア. 猔種: 硂籔ア毖 DNS 琩高ぃ.
<p>
<b>DNS 琩高е丁</b>: 箇砞 6 . 硂琌Θ DNS 琩高丁 (TTL) . 箇砞 6  (360 だ牧). 狦眤辨 Squid  IP е罽程, 叫砞﹚ 1 τぃ琌0.
<p>
<b>ア毖 DNS е丁</b>: 箇砞 5 だ牧. 硂琌 DNS 琩高ア毖е丁 (TTL) .
<p>
<b>硈钡筄</b>: 箇砞 120 . 琘ㄇ╰参 (疭琌 Linux) 礚猭タ絋矪瞶硂摸璶―. ┮ Squid 祘眏ㄏノ硈钡筄. 硂匡兜﹚硈絬ЧΘ玡┮璶单丁.
<p>
<b>弄筄</b>: 箇砞 15 だ牧. 弄筄琌甅ノ狝竟狠硈絬. –Θ read() ぇ, 筄穦糤硂计秖. 狦丁筁戈⊿ΤΩ弄, 硂璶―穦砆斌 ERR_READ_TIMEOUT 魁.
<p>
<b>狠翴匡拒筄</b>: 箇砞 4 . 癸 URN  URL  URL 匡拒.
<p>
<b>め狠璶―筄</b>: 箇砞 15 だ牧. 硂弄筄莱ノ狝竟狠硈絬. –Θ read() ぇ, 筄穦糤硂计秖. 狦丁筁戈⊿ΤΩ弄, 硂璶―穦砆斌 ERR_READ_TIMEOUT 魁.
<p>
<b>程め狠硈钡丁</b>: 箇砞 1 ぱ. 硂琌–め狠 (聅凝竟) 尿硈絬程丁. 硂磷еΤび础畒矪单闽超篈, τ环狠ㄏノ竒瞒秨⊿Τ闽超硈絬 (琌呼隔い耞┪め狠策篋).
<p>
<b>程闽超丁</b>: 箇砞 30 . 讽Μ SIGTERM ┪ SIGHUG 北癟, е穦秈单闽篈┮Τすい础畒闽超. 硂计琌硂家Α┮Τ秨币い硈絬ネ㏑戳丁. ヴ笲いめ狠筁硂琿丁, 常穦Μ '筄' 癟.
<p>
<b>闽超め狠</b>:  箇砞 '秨'. Τㄇめ狠穦闽超ㄤ癳 TCP 硈絬, τ痙ㄤ钡Μ TCP 硈絬. 琘ㄇ猵, Squid 礚猭だ侩闽超籔闽超 TCP 硈絬. 箇砞猵, 硂闽超硈絬穦砆玂秨币, Τヴ read() ┪ write() 岿粇祇ネ础畒. э跑硂匡兜 '闽', Squid 盢穦Μ read() 肚 "⊿Τ戈璶弄" ミㄨ闽超硂硈絬.
<p>
<b>尿筄</b>: 箇砞 120 . 硂琌癸盯竚い籔め狠, 狝竟┪ㄤ瞶狝竟尿硈絬北. 尿硈ン盢穦砆闽超狦硂计 10 .
<p>
<b>WAIS い膥诀</b>: 箇砞礚. 硂琌 WAIS い膥诀┪ IP .
<p>
<b>WAIS い膥硄癟梆</b>: 箇砞礚. 硂琌璶旧 WAIS 璶―┮ㄏノ硄癟梆.

<hr>
 
   0707010006ee59000081a40000000000000002000000013ac0389f000007be000000200000000000000000000000000000002200000003reloc/squid/help/edit_icp.es.html <header>Otras Cach閟</header>

<b>Otros servidores proxy de cach</b>: Esto lista todas las cach閟 hermanas, padres y multidifusi髇 configuradas. Haz click en el nombre de m醧uina o en la direcci髇 para editar o ver la configuraci髇 completa. <p>

<b>Dir閏tamente recoger URLs conteniendo</b>: Por defecto ".cgi" y "?". Permite forzar a Squid a siempre recoger ciertos tipos de contenido dir閏tamente desde el servidor origen. Norm醠mente esto no necesita modificaci髇 alguna ya que la mayor韆 de las cosas se manejan autom醫icamente desde Squid sin tocar nada. <p>

<b>Tiempo de espera de consulta ICP</b>: Por defecto un valor '髉timo'. Si deseas pasar por alto el valor determinado por Squid, pon esto a no cero. El valor por defecto en versiones antiguas de Squid era 2000. <p>

<b>Tiempo de espera de multienlace ICP</b>: Por defecto 2000 mseg o 2 segundos. Para pares multidifusi髇, Squid env韆 regul醨mente "indagaciones" ICP para contar cu醤tos otros pares est醤 escuchando en las direcciones multidifusi髇 dadas. Este valor especifica por cu醤to tiempo deber韆 de esperar Squid para contar todas las respuestas.<p>

<b>Tiempo de espera de par muerto</b>: Por defecto 10 segundos. Controla por cu醤to tiempo Squid espera para declarar una cach de par como "muerta". Si no hay respuestas ICP recibidas en esta cantidad de tiempo, Squid declarar el par como muerto y no esperar recibir respuestas ICP posteriores. Sin embargo, contin鷄 enviando consultas ICP y marcar el par como vivo al recibir la primera respuesta ICP. <p>

Este tiempo de espera tambi閚 afecta si Squid espera recibir respuestas ICP desde los pares. Si transcurren m醩 de 'par_muerto' segundos desde que la 鷏tima respuesta ICP fue recibida, Squid no esperar recibir una respuesta ICP en la siguiente consulta. As, si tu tiempo entre requerimientos es mayor que este tiempo de espera, ver醩 un mont髇 de requerimientos enviados DIR蒀TAMENTE a los servidores origen en vez de a tus padres. <p>

<hr>

  0707010006ee5a000081a40000000000000002000000013ac0389f000006e7000000200000000000000000000000000000001f00000003reloc/squid/help/edit_icp.html    <header>Other Caches</header>

<b>Other proxy cache servers</b>: This lists all currently configured sibling, parent, and multicast, caches.  Click on the hostname or address to edit or see it complete configuration. <p>

<b>Directly fetch URLs containing</b>: Defaults to ".cgi" and "?".  Allows you to force Squid to always fetch certain content types directly from the origin server.  Ordinarily this needs no modification, as most things are handled automatically by Squid without help. <p>

<b>ICP query timeout</b>: Defaults to an 'optimal' value.  If you want to override the value determined by Squid, set this to a non-zero value.  The default in old versions of Squid was 2000. <p>

<b>Multicast ICP timeout</b>: Defaults to 2000msec or 2 seconds.  For Multicast peers, Squid regularly sends out ICP "probes" to count how many other peers are listening on the given multicast address.  This value specifies how long Squid should wait to count all the replies.<p>

<b>Dead peer timeout</b>: Defaults to 10 seconds.  This controls how long Squid waits to declare a peer cache as "dead."  If there are no ICP replies received in this amount of time, Squid will declare the peer dead and not expect to receive any further ICP replies.  However, it continues to send ICP queries, and will mark the peer as alive upon receipt of the first subsequent ICP reply. <p>

This timeout also affects when Squid expects to receive ICP replies from peers.  If more than 'dead_peer' seconds have passed since the last ICP reply was received, Squid will not expect to receive an ICP reply on the next query.  Thus, if your time between requests is greater than this timeout, you will see a lot of requests sent DIRECT to origin servers instead of to your parents. <p>

<hr>

 0707010006ee5b000081a40000000000000002000000013ac0389f00000863000000200000000000000000000000000000002200000003reloc/squid/help/edit_icp.pl.html <header>Inne proxy</header>

<b>Inne buforuj眂e serwery proxy</b>: Pokazane s wszystkie (r體noprawne,
macierzyste i multicastowe) aktualnie skonfigurowane serwery proxy. Naci秐ij
na nazw hosta lub adres wybranego serwera, aby zmieni lub obejrze jego
aktualn konfiguracj. <p>

<b>Sprowadza bezpo秗ednio URL-e zawieraj眂e</b>: Domy秎nie ".cgi"
i&nbsp;"?". Pozwala zmusi Squida, aby zawsze sprowadza strony pewnego
rodzaju bezpo秗ednio z&npsp;紃骴硂wego serwera. Zazwyczaj opcja ta nie
wymaga zmiany jak wi阫szo舵 rzeczy, kt髍e s obs硊giwane przez Squida
automatycznie. <p>

<b>Czas przeterminowania zapytania ICP</b>: Domy秎nie ma warto舵
'optymaln'. Je秎i chcesz nadpisa warto舵 ustalon przez Squida, podaj
warto舵 niezerow. W&nbsp;starych wersjach Squida warto禼i domy秎n by硂
2000. <p>

<b>Czas przeterminowania multicastu ICP</b>: Domy秎nie 2000&nbsp;ms, czyli
2&nbsp;sekundy. Do uczestnik體 wymiany multicastowej Squid regularnie
wysy砤 "sond" ICP, aby policzy ilu innych uczestnik體 s硊cha na zadanym
adresie multicastowym. Ta warto舵 okre秎a, jak d硊go Squid powinien czeka
na odpowiedzi, aby wszystkie policzy. <p>

<b>Czas uznania partnera za nieczynnego</b>: Domy秎nie 10 sekund. Ta opcja
decyduje, jak d硊go Squid b阣zie czeka przed uznaniem partnera proxy za
nieczynnego. Je秎i w&nbsp;ci眊u tego czasu nie nadejdzie odpowied ICP,
Squid uzna, 縠 partner nie dzia砤 i&nbsp;nie b阣zie oczekiwa od niego
縜dnych dalszych odpowiedzi ICP. Jednak縠, b阣zie on nadal wysy砤 zapytania
ICP i&nbsp;zaznaczy sobie, 縠 partner dzia砤 po otrzymaniu od niego
pierwszej odpowiedzi ICP. <p>

Ten okres przeterminowania ma r體nie znaczenie, gdy Squid oczekuje na
odpowied ICP od innych proxy. Je秎i od chwili otrzymania ostatniej
odpowiedzi ICP up硑n瓿o wi阠ej sekund, ni podano w powy縮zej opcji, Squid
nie b阣zie oczekiwa odpowiedzi ICP na swoje nast阷ne zapytanie. Wobec tego,
je秎i ustawiony przez Ciebie czas pomi阣zy wysy砤nymi zapytaniami ICP jest
wi阫szy od tego czasu przeterminowania, b阣ziesz obserwowa mn髎two zapyta
wysy砤nych BEZPOEDNIO do 紃骴硂wych serwer體 zamiast do Twoich
macierzystych proxy. <p>

<hr>
 0707010006ee5c000081a40000000000000002000000013ac0389f00000796000000200000000000000000000000000000002200000003reloc/squid/help/edit_icp.sv.html <header>講riga cachar</header>

<b>講riga proxy-cache-servrar</b>: H鋜 listas alla likst鋖lda, 鰒erordnade och
multicast-cachar som f鰎 n鋜varande konfigurerats. Klicka p datornamnet
eller adressen f鰎 att 鋘dra eller inspektera alla dess inst鋖lningar.

<p><b>Omedelbart h鋗ta URL:er som inneh錶ler</b>: Standardinst鋖lningen 鋜
".cgi" och "?".  Detta kan anv鋘das f鰎 att tvinga Squid att alltid h鋗ta
vissa typer direkt fr錸 ursprungsservern. Vanligtvis beh鰒er detta inte 鋘dras,
eftersom det mesta hanteras automatiskt av Squid utan annan inblandning.

<p><b>Tidsgr鋘s f鰎 ICP-uppslagning</b>: Standardinst鋖lningen 鋜 ett
"optimalt" v鋜de. F鰎 att ett annat v鋜de 鋘 det som Squid har best鋗t ska
anv鋘das, ska denna parameter ges ett v鋜de skilt fr錸 noll. Standardv鋜det
i 鋖dre versioner av Squid var 2000.

<p><b>Tidsgr鋘s f鰎 multicast-ICP</b>: Standardv鋜det 鋜 2000 ms, dvs 2
sekunder. Squid skickar regelbundet ut ICP-"prober" till multicast-motparter
f鰎 att se hur m錸ga motparter som lyssnar p den angivna multicast-adressen.
Denna parameter anger hur l錸g tid Squid ska v鋘ta innan den r鋕nar svaren.

<p><b>Tidsgr鋘s f鰎 d鰀 motpart</b>: Standardv鋜det 鋜 10 sekunder.
Denna parameter anger hur l鋘ge Squid ska v鋘ta innan en motpart anses "d鰀".
Om Squid inte tar emot n錱ra ICP-svar inom denna tid anser den att motparten
鋜 d鰀 och f鰎v鋘tar sig inte n錱ra fler ICP-svar. Squid forts鋞ter dock att
skicka ICP-uppslagningar och kommer att betrakta motparten som levande s fort
den skickar ett ICP-svar igen.

<p>Denna tidsgr鋘s p鍁erkar ocks om Squid f鰎v鋘tar sig ICP-svar fr錸 sina
motparter. Om mer 鋘 'dead_peer' sekunder har g錿t sedan det senaste
ICP-svaret, kommer Squid inte att f鰎v鋘ta sig n錱ot ICP-svar p n鋝ta
uppslagning. Om tiden mellan tv uppslagningar 鋜 l鋘gre 鋘 denna tidsgr鋘s
kommer allts m錸ga uppslagningar att skickas direkt till ursprungsservern
ist鋖let f鰎 till den 鰒erordnade.

<hr>

  0707010006ee5d000081a40000000000000002000000013ac0389f000004bf000000200000000000000000000000000000002a00000003reloc/squid/help/edit_icp.zh_TW.Big5.html <header>ㄤе</header>

<b>ㄤ瞶狝е狝竟</b>: 硂┮Τ竒舱篈キ︽, 村籔翴肚癳е. ㄤ诀嘿┪ IP 絪胯┪砞﹚赣诀ㄤ匡兜. <p>

<b>钡 URL ず甧</b>: 箇砞 ".cgi" 籔 "?". 硂す砛眤钡眖﹍狝竟眔┮﹚ず甧摸. τē, 硂ぃ惠璶э跑, 计ㄆ叭常穦砆 Squid 笆矪瞶. <p>

<b>ICP 琩高筄</b>: 箇砞 '程ㄎて' 计. 狦眤辨ㄏパ Squid 笆∕﹚计礚, 砞﹚硂獶 0 计. 耕侣セ Squid 盢计箇砞 2000. <p>

<b>翴肚块 ICP 筄</b>: 箇砞 2000 稬 (2 ). 癸翴肚癳キ︽诀, Squid 穦癳 ICP 盎代璸衡Τぶキ︽诀菏钮硂翴肚块竚. 硂计﹚竡 Squid 璶单莱丁.<p>

<b>キ︽诀筄</b>: 箇砞 10 . 硂计∕﹚ Squid 粄﹚キ︽е玡单丁. 璶﹚丁い常⊿ΤΜ赣诀 ICP 莱, Squid 盢穦粄﹚硂キ︽诀竒, ぃ箇戳穦Μ秈˙ ICP 莱. 礛τ, ウご穦尿癳 ICP 琩高, τΜ莱穝ボ赣诀. <p>

硂筄穦紇臫 Squid 箇戳眖キ︽诀Μ ICP. 狦籔ΩΜ ICP 莱丁竒筁硂砞﹚, Squid 盢ぃ穦籔ㄤΜ ICP 琩高莱. 碞琌弧, 狦眤琩高丁筳丁硂计, 眤盢穦ㄇ琩高<b>钡</b>癳倒﹍诀τぃ琌村. <p>

<hr>

 0707010006ee5e000081a40000000000000002000000013ac0389f000014ef000000200000000000000000000000000000002300000003reloc/squid/help/edit_logs.es.html    <header>Historial</header>

<b>Archivo de acceso de historial</b>: Por defecto depende del sistema, norm醠mente en alg鷑 sitio de <tt>/var</tt>. Lleva historial de la actividad de requerimientos de cliente. Contiene una entrada por cada requerimiento HTTP e ICP recibidos. <p>

<b>Depurar archivo de historial</b>: Por defecto depende del sistema. Archivo de historial de cach. Es donde va la informaci髇 general sobre el comportamiento de tu cach. Puedes incrementar la cantidad de datos almacenados en este archivo mediante <b>Opciones de depuraci髇</b>. <p>

<b>Archivo de almacenamiento de historial</b>: Por defecto depende del sistema. Lleva historial de las actividades del gestor de almacenaje. Muestra qu objectos son rechazados de la cach y qu objetos son salvados y por cu醤to tiempo. Para desactivarlo, digita "ninguno (none)". No hay utilidades para analizar estos datos, por ello lo puedes desactivar tranqu韑amente. <p>

<b>Archivo de metadatos de cach</b>: Por defecto es 'swap.log' en cada directorio de cach. Este archivo de historial mantiene los metadatos de los objetos salvados en disco. Es usado para reconstruir la cach durante el arranque. Norm醠mente este archivo reside en cada directorio de cach, pero puedes especificar aqu un nombre alternativo de trayectoria. Date cuenta de que tienes que poner el nombre completo de archivo, no s髄o su directorio. Ya que esto es el 韓dice para toda la lista del objeto O PUEDES rotarlo peri骴icamente!. <p>

Si se usa %s en el nombre del archivo, ser reemplazado con una representaci髇 del nombre de directorio de cach donde cada / se reemplaza por '.'. Esto es necesario para permitir a馻dir/quitar l韓eas de directorio de cach si se usa un historial de intercambio alternativo. <p>

Si tiene m醩 de un directorio de cach y %s no se usa en el nombre, entonces estos historiales de intercambio tendr醤 nombres como: <p>
<ul>
<li>cache_swap_log.00
<li>cache_swap_log.01
<li>cache_swap_log.02
</ul>
<p>
La extensi髇 numerada (que es a馻dida autom醫icamente) se corresponde con el orden de las l韓eas del directorio de cach en la configuraci髇. Si cambias el orden de las l韓eas de la entrada del directorio de cach en este archivo, entonces estos archivos de historial NO se corresponder醤 con la entrada correcta de directorio de cach (a menos que manu醠mente los renombres). Recomendamos que NO uses esta opci髇. Es mejor mantener estos archivos de historial en cada directorio de cach. <p>

<b>Usar formato de historial HTTPD</b>: Por defecto es no. La cach puede emular el formato de archivo de historia que muchos programas 'httpd' utilizan. Para desactivar/activar esta emulaci髇, activa o desactiva este valor. Por defecto se utiliza el formato de historial nativo ya que incluye informaci髇 鷗il que utiliza el analizador de historial espec韋ico de Squid.
<p>
<b>Llevar historial de cabeceras MIME</b>: Por defecto es no. La cach puede grabar ambas cabeceras MIME de requerimiento y de respuesta para cada transacci髇 HTTP. Las cabeceras son codificadas de forma segura y aparecer醤 como dos campos encerrados entre corchetes al final del historial de acceso (para ambos formatos httpd emulado y nativo). Para activar este historial activa este valor.
<p>
<b>Archivo de historial de agente de usuario</b>: Por defecto ninguno. Si configurado con la opci髇 de configuraci髇 de "--enable-useragent-log", Squid escribir el campo de Agente-de-Usuario de requerimientos HTTP en el nombre de archivo especificado aqu.
<p>
<b>Archivo de PID</b>: Por defecto depende del sistema. Un nombre de archivo donde escribir la id de proceso. Para desactivarlo, pon ninguno 'none'.
<p>
<b>Realizar b鷖quedas de indentidad para ACLs</b>: Por defecto ninguna. Realiza b鷖queda de identidad para hallar el nombre de usuario de clientes que acceden a cualquiera de estas ACLs.
<p>
<b>Tiempo de espera de identificaci髇 RFC931</b>: Por defecto es 30 segundos. Tiempo m醲imo a esperar por requermientos IDENT. Si este valor es demasiado grande y activaste cualquier b鷖queda de identidad, entonces pod韆s ser susceptible de ser denegado el servicio al tener muchos requerimientos de identidad de forma inmediata.
<p>
<b>Llevar historial de nombres completos de m醧uina</b>: Por defecto es no. Llevar el nombre completo de m醧uina de los clientes.
<p>
<b>M醩cara de red de historial</b>: Por defecto es 255.255.255.255.  Una m醩cara de red para direcciones de cliente en archivos de historial y salida de cachemgr. Cambia esto para proteger la privacidad de tus clientes de cach. Una m醩cara de red de 255.255.255.0 har que se lleve historial de todas las IPs en ese rango con el 鷏timo d韌ito a cero.
<p>
<b>Opciones de depuraci髇</b>: Por defecto es "ALL,1 (TODO,1)". Las opciones de historial son puestas como secci髇, nivel donde cada archivo emisor es asignado una 鷑ica secci髇. Niveles inferiores dan como resultado una menor depuraci髇 completa. El nivel 9 puede resultar en un archivo de historial enorme, por ello ten cuidado. La palabra m醙ica "ALL (TODOS)" pone niveles de depuraci髇 para todas las secciones. Recomendamos ejecutar norm醠mente con "ALL,1 (TODO)"
<p>
<b>Tabla de cabeceras MIME</b>: Trayectoria a tabla MIME de Squid. No deber韆s necesitar cambiar esto, pero el archivo por defecto contiene ejemplos e informaci髇 de formato por si deseas cambiarlo.

<hr>
 0707010006ee5f000081a40000000000000002000000013ac0389f000010eb000000200000000000000000000000000000002000000003reloc/squid/help/edit_logs.html   <header>Logging</header>

<b>Access log file</b>: Default is system dependent, usually somewhere in <tt>/var</tt>.  Logs the client request activity.  Contains an entry for every HTTP and ICP request received. <p>

<b>Debug log file</b>: Default is system dependent.  Cache logging file. This is where general information about your cache's behaviour goes. You can increase the amount of data logged to this file with the <b>Debug options</b>. <p>

<b>Storage log file</b>: Default is system dependent.  Logs the activities of the storage manager.  Shows which objects are ejected from the cache, and which objects are saved and for how long.  To disable, enter "none". There are not really utilities to analyse this data, so you can safely disable it.<p>

<b>Cache metadata file</b>: Default is swap.log in each cache directory.  This log file holds the metadata of objects saved on disk.  It is used to rebuild the cache during startup.  Normally this file resides in each cache directory, but you may specify an alternate pathname here.  Note you must give a full filename, not just a directory. Since this is the index for the whole object list you CANNOT periodically rotate it! <p>

If %s can be used in the file name then it will be replaced with a representation of the cache directory name where each / is replaced with '.'. This is needed to allow adding/removing cache directory lines when an alternate cache swap log is being used. <p>

If have more than one cache directory, and %s is not used in the name then these swap logs will have names such as: <p>
<ul>
<li>cache_swap_log.00
<li>cache_swap_log.01
<li>cache_swap_log.02
</ul>
<p>
The numbered extension (which is added automatically) corresponds to the order of the cache directory lines in the configuration.  If you change the order of the cache directory lines in this file, then these log files will NOT correspond to the correct cache directory entry (unless you manually rename them).  We recommend that you do NOT use this option.  It is better to keep these log files in each cache directory. <p>

<b>Use HTTPD log format</b>: Defaults to no.  The Cache can emulate the log file format which many 'httpd' programs use.  To disable/enable this emulation, set this value to off or on.  The default is to use the native log format since it includes useful information that Squid-specific log analysers use.
<p>
<b>Log MIME headers</b>: Defaults to no.  The Cache can record both the request and the response MIME headers for each HTTP transaction.  The headers are encoded safely and will appear as two bracketed fields at the end of the access log (for either the native or httpd-emulated log formats).  To enable this logging set this to on.
<p>
<b>User agent log file</b>: Default is none.  If configured with the "--enable-useragent-log" configure  option, Squid will write the User-Agent field from HTTP requests to the filename specified here.
<p>
<b>PID file</b>: Default is system dependent.  A filename to write the process-id to.  To disable, enter "none".
<p>
<b>Perform RFC931 ident lookups for ACLs</b>: Default is none.  Perform ident lookups to find the username of clients accessing anything in these ACLs.
<p>
<b>RFC931 ident timeout</b>: Default is 30 seconds. Maximum time to wait for IDENT requests.  If this is too high, and you enabled any ident lookups, then you might be susceptible to denial-of-service by having many ident requests going at once.
<p>
<b>Log full hostnames</b>: Default is no.  Logs the full hostname of clients. 
<p>
<b>Logging netmask</b>: Default is 255.255.255.255.  A netmask for client addresses in logfiles and cachemgr output. Change this to protect the privacy of your cache clients. A netmask of 255.255.255.0 will log all IP's in that range with the last digit set to '0'.
<p>
<b>Debug options</b>: Default is "ALL,1".  Logging options are set as section,level where each source file is assigned a unique section.  Lower levels result in less Full debugging (level 9) can result in a very large log file, so be careful.  The magic word "ALL" sets debugging levels for all sections.  We recommend normally running with "ALL,1".
<p>
<b>MIME headers table</b>: Pathname to Squid's MIME table. You shouldn't need to change, but the default file contains examples and formatting information if you do.

<hr>
 0707010006ee60000081a40000000000000002000000013ac0389f00001333000000200000000000000000000000000000002300000003reloc/squid/help/edit_logs.pl.html    <header>Logowanie</header>

<b>Log dost阷u</b>: Domy秎ny zale縴 od systemu, zazwyczaj gdzie
w&nbsp;<tt>/var</tt>. Loguje aktywno舵 zapyta klient體. Zawiera zapisy
o&nbsp;ka縟ym otrzymanym zapytaniu HTTP i&nbsp;ICP. <p>

<b>Log pracy proxy</b>: Domy秎ny zale縴 od systemu. Plik logowania proxy.
Jest to miejsce, do kt髍ego trafiaj informacje o&nbsp;zachowaniu Twojego
proxy. Mo縠sz zwi阫szy ilo舵 logowanej w&nbsp;tym pliku informacji za
pomoc <b>Opcji 秎edzenia</b>. <p>

<b>Log bufor體</b>: Domy秎ny zale縴 od systemu. Loguje aktywno舵 zarz眃cy
bufor體 cache. Pokazuje, kt髍e obiekty s wyrzucane z&bufor體, a&nbsp;kt髍e
s zachowywane i&nbsp;jak d硊go. Aby wy潮czy to logowanie, wisz "none".
Naprawd nie ma narz阣zi do analizy tych danych, wi阠 mo縠sz to spokojnie
wy潮czy. <p>

<b>Plik metadanych dla bufor體</b>: Domy秎nie <tt>swap.log</tt>
w&nbsp;ka縟ym katalogu bufor體. Ten log zawiera metadane obiekt體 zapisanych
na dysku. Jest u縴wany do przybudowywania bufor體 podczas startu. Plik ten
znajduje si normalnie w&nbsp;ka縟ym katalogu bufor體, ale mo縠sz poda tu
inn 禼ie縦. Zauwa, 縠 musisz poda pe硁 nazw pliku, a&nbsp;nie jedynie
katalag. Jako 縠 jest to plik indeksowy dla ca砮j listy obiekt體, NIE WOLNO
Ci go okresowo czy禼i! <p>

Je秎i '%s' zostanie u縴te w&nbsp;nazwie pliku, zostanie zast眕ione przez
nazw pliku logu, w&nbsp;kt髍ej ka縟y znak '/' zast眕iono przez '.'. Jest to
potrzebne, aby umo縧iwi dodawanie/usuwanie linii z&nbsp;nazwami katalog體
gdy kolejny log bufor體 cache jest w&nbsp;u縴ciu. <p>

Je秎i masz wi阠ej ni jeden katalog bufor體 a&nbsp;nie u縴wasz '%s'
w&nbsp;nazwie, w體czas poszczeg髄ne logi b阣 mia硑 nazwy takie, jak: <p>

<ul>
<li>cache_swap_log.00
<li>cache_swap_log.01
<li>cache_swap_log.02
</ul>
<p>

Numery w&nbsp;ko馽體kach nazw (dodawane automatycznie) odpowiadaj
kolejno禼i linii katalog體 bufor體 cache w&nbsp;konfiguracji.  Je秎i
zmienisz podan kolejno舵 katalog體, w體czas te logi NIE b阣 odpowiada硑
prawid硂wym wpisom z&nbsp;nazwami katalog體 bufor體 (chyba, 縠 zmienisz ich
nazwy r阠znie). Zaleca si NIE u縴wanie tej opcji. Lepiej trzyma pliki
log體 w&nbsp;odpowiednich katalogach bufor體 cache. <p>

<b>U縴wa formatu log體 HTTPD</b>: Domy秎nie nie. Proxy mo縠 emulowa format
log體 u縴wany przez wiele program體 'httpd'. Aby emulacj wy潮czy/w潮czy
ustaw t warto舵 odpowiednio na Nie lub Tak. Domy秎ne jest u縴wanie
wewn阾rznego formatu log體, poniewa zawiera on u縴teczne informacje
wykorzystywane przez zorientowane na Squida analizatory log體. <p>

<b>Logowa nag丑wki MIME</b>: Domy秎nie nie. Proxy mo縠 zapisywa nag丑wki
MIME zar體no dla zapyta, jak i&nbsp;dla odpowiedzi dla ka縟ej operacji
HTTP. Nag丑wki s bezpiecznie zakodowane i&nbsp;pojawiaj si jako dwa uj阾e
w&nbsp;nawiasy pola na ko馽u wpisu do logu dost阷u (zar體no dla wewn阾rznego
formatu Squida, jak i&nbsp;dla emulacji httpd). Aby w潮czy to logowanie
ust眞 opcj na Tak. <p>

<b>Log program體 u縴tkownika</b>: Domy秎nie brak. Je秎i podczas konfiguracji
przed kompilacj w潮czono opcj "--enable-useragent-log", Squid b阣zie
zapisywa pole "User-Agent" zapyta HTTP (zawieraj眂e zazwyczaj dane
okre秎aj眂e uzywan przegl眃ark) do okre秎onego tu pliku. <p>

<b>Plik z&nbsp;numerem PID</b>: Domy秎ny zale縴 od systemu. Nazwa pliku, do
kt髍ego jest zapisywany numer procesu (PID). Aby go nie u縴wa wpisz "none".
<p>

<b>Wykonywa identyfikacj RFC931 dla ACL</b>: Domy秎nie dla 縜dnych.
Wykonywanie zapyta identyfikacyjnych, aby okre秎i nazwy u縴tkownik體
uzyskuj眂ych dost阷 do czegokolwiek podpadaj眂ego pod te ACL. <p>

<b>Czas przeterminowania identyfikacji wg RFC931</b>: Domy秎nie 30 sekund.
Maksymalny czas oczekiwania na wyniki zapyta IDENT. Je秎i jest zbyt du縴
i&nbsp;w潮czy砮 zapytania identa, mo縠sz doprowadzi do zablokowania us硊gi
(DoS) poprzez zbyt wiele jednocze秐ie wykonywanych zapyta ident. <p>

<b>Logowa pe硁e nazwy host體</b>: Domy秎nie nie. Logowanie pe硁ej (FQDN)
nazwy host體 klient體. <p>

<b>Maska logowania</b>: Domy秎n jest 255.255.255.255. Maska dla adres體
klient體 w&nbsp;logach oraz wyniku cachemgr. Zmie j, je秎i chcesz choni
prywatno舵 swoich klient體. Przy masce 255.255.255.0 wszystkie IP b阣
logowane z&nbsp;ostatni cyfr ustawion na '0'. <p>

<b>Opcje 秎edzenia</b>: Domy秎nie "ALL,1".  S to opcje logowania ustawiana
jako "sekcja,poziom", gdzie ka縟y plik kodu 紃骴硂wego jest przypisany do
unikalnej sekcji. Ustawienie ni縮zego poziomu powoduje logowanie mniejszej
ilo禼i informacji, ni pe硁e 秎edzenie (poziom 9), przy kt髍ym mo縠 powsta
bardzo du縴 log, wi阠 b眃 ostro縩y. Magiczne s硂wo "ALL" ustawia poziomy
秎edzenia dla wszystkich sekcji. Zazwyczaj zaleca si uruchamianie
z&nbsp;"ALL,1". <p>

<b>Tablica nag丑wk體 MIME</b>: ie縦a do tablicy MIME Squida. Nie powinno
by potrzeby zmiany tej opcji, ale standardowy plik zawiera przyk砤dy
i&nbsp;opis sk砤dni, gdyby takowa wyst眕i砤.

<hr>
 0707010006ee61000081a40000000000000002000000013ac0389f0000125c000000200000000000000000000000000000002300000003reloc/squid/help/edit_logs.sv.html    <header>Loggning</header>

<b>Loggfil f鰎 錿komst</b>: Standardinst鋖lningen 鋜 systemberoende, men
vanligen n錱onstans i <tt>/var</tt>. Loggar klientf鰎fr錱ningar. Inneh錶ler
en post f鰎 varje HTTP- och ICP-uppslagning som mottagits.

<p><b>Loggfil f鰎 debuggning</b>: Standardinst鋖lningen 鋜 systemberoende.
Cache-loggfil. Det 鋜 h鋜 som allm鋘 information om cachens uppf鰎ande hamnar.
Det g錼 att 鰇a den datam鋘gd som loggas till denna fil i
<b>Debuggningsinst鋖lningarna</b>.

<p><b>Loggfil f鰎 lagring</b>: Standardinst鋖lningen 鋜 systemberoende.
Loggar lagringshanterarens aktivitet. Visar de objekt som kastas ut fr錸
cachen och de som sparas, samt hur l鋘ge de sparas. V鋖j "ingen" f鰎 att sl
av detta. Det finns egentligen inga verktyg f鰎 att analysera denna logg, s
det g鰎 inget om man sl錼 av den.

<p><b>Fil f鰎 cache-metadata</b>: Standardinst鋖lningen 鋜 swap.log i varje
cache-katalog. Denna loggfil inneh錶ler metadata om de objekt som sparats p
disk och anv鋘ds f鰎 att bygga upp cachen igen vid start. Vanligtvis ligger
denna fil i varje cache-katalog, men det g錼 ocks att ange en annan s鰇v鋑
h鋜. Observera att ett fullst鋘digt filnamn m錽te anges, inte bara en
katalog. Eftersom detta 鋜 index f鰎 hela objektlistan g錼 det INTE att
rotera den regelbundet!

<p>Om det g錼 att anv鋘da % i filnamnet kommer det att ers鋞tas med en
representation av cache-katalogens namn, d鋜 alla '/' ers鋞ts med '.'. Detta
beh鰒s f鰎 att till錿a att cache-kataloger l鋑gs till och tas bort n鋜 en
annan cache-swap-logg anv鋘ds.

<p>Om det finns mer 鋘 en cache-katalog och det inte g錼 att anv鋘da % i
filnamnen, kommer dessa swap-loggar ha namn i stil med:
<ul>
<li>cache_swap_log.00
<li>cache_swap_log.01
<li>cache_swap_log.02
</ul>

<p>Numren p slutet (som l鋑gs till automatiskt) motsvarar ordningen p
cache-katalogernas rader i inst鋖lningarna. Om man 鋘drar ordning p
raderna kommmer loggfilerna INTE att motsvara r鋞t cache-katalog, om man inte
d鰌er om dem f鰎 hand. Vi rekommenderar att denna inst鋖lning INTE anv鋘ds.
Det 鋜 b鋞tre att h錶la dessa loggfiler i varsin cache-katalog.

<p><b>Anv鋘da HTTPD-loggformat</b>: Standardinst鋖lningen 鋜 nej. Cachen kan
generera det loggfilformat som m錸ga 'httpd'-program anv鋘der. S鋞t denna
parameters v鋜de till av eller p f鰎 att sl av eller p genereringen.
Standardformatet 鋜 att anv鋘da det inbyggda loggformatet, eftersom det
inneh錶ler anv鋘dbar information som Squid-specifika analysprogram anv鋘der.

<p><b>Logga MIME-huvuden</b>: Standardinst鋖lningen 鋜 nej. Cachen kan l鋝a
b錮e uppslagnings- och svars-MIME-huvudena f鰎 varje HTTP-transaktion.
Huvudena 鋜 s鋕ert kodade och kommer att lagras som tv f鋖t inom
hakparenteser i slutet p 錿komstloggen (f鰎 inbyggt eller httpd-genererande
loggformat). V鋖j p f鰎 att sl p denna loggning.

<p><b>Loggfil f鰎 anv鋘darprogram</b>: Standardinst鋖lnignen 鋜 ingen.
Om Squid konfigureras med inst鋖lningen "--enable-useragent-log", kommer den
att logga User-Agent-f鋖tet i HTTP-f鰎fr錱ningen till den fil som anges h鋜.

<p><b>PID-fil</b>: Standardinst鋖lningen 鋜 systemberoende. Ange ett filnamn
dit process-id ska skrivas. Ange "ingen" f鰎 att sl av detta.

<p><b>Utf鰎a RFC931-identitetsuppslagningar f鰎 錿komstlistor</b>:
Standardinst鋖lningen 鋜 ingen. Sl錼 upp identiteterna f鰎 att hitta
datornamnen p de klienter som f鰎s鰇er komma 錿 n錱ot i dessa 錿komstlistor.

<p><b>Tidsgr鋘s f鰎 RFC931-identitet</b>: Standardv鋜det 鋜 30 sekunder. Detta
鋜 den l鋘gsta tid som Squid ska v鋘ta p IDENT-uppslagningar. Om detta v鋜de
鋜 f鰎 h鰃t och alla identitetsuppslagningar ska utf鰎as, kan man r錵a ut f鰎
en denial-of-service genom att man har f鰎 m錸ga uppslagningar p g錸g
samtidigt.

<p><b>Logga fullst鋘diga datornamn</b>: Standardinst鋖lningen 鋜 nej. Loggar
fullst鋘digt datornamn f鰎 klienterna.

<p><b>Loggningsn鋞mask</b>: Standardv鋜det 鋜 255.255.255.255. N鋞mask f鰎
klientadresser i loggfiler och cachemgr-utmatningar. 膎dra denna f鰎 att
skydda cache-klienternas integritet. N鋞masken 255.255.255.0 g鰎 att alla
IP-adresser x.x.x.0-255 loggas.

<p><b>Debuggningsinst鋖lningar</b>: Standardinst鋖lningen 鋜 "ALL,1".
Loggningsinst鋖lningarna s鋞ts som sektion,niv d鋜 varje k鋖lfil f錼 en
egen sektion. L鋑re niv錯r g鰎 att f鋜re saker loggas. Fullst鋘dig debuggning
(niv 9) kan ge en v鋖digt stor loggfil, s var f鰎siktig med detta. Det
magiska ordet "ALL" s鋞ter debuggningsniv錸 f鰎 samtliga sektioner. Vi
rekommenderar att man vanligtvis k鰎 med "ALL,1".

<p><b>Tabell 鰒er MIME-huvuden</b>: S鰇v鋑 till Squids MIME-tabell. Denna ska
inte beh鰒a 鋘dras, men om du g鰎 det inneh錶ler standardfilen exempel och
formateringsupplysningar.

<hr>
0707010006ee62000081a40000000000000002000000013ac0389f00000b6d000000200000000000000000000000000000002b00000003reloc/squid/help/edit_logs.zh_TW.Big5.html    <header>魁</header>

<b>魁郎</b>: 箇砞ㄌ╰参τ跑, 常穦 <tt>/var</tt>. 硂癘魁め狠璶―猵, ┮Τ HTTP 籔 ICP 璶―. <p>

<b>埃岿魁郎</b>: 箇砞ㄌ╰参τ跑. 硂琌闽眤е︽跑て┦戈癟. 眤э跑<b>埃岿匡兜</b>い砞﹚糤搭魁絛瞅. <p>

<b>纗魁郎</b>: 箇砞ㄌ╰参τ跑. 魁┮Τ纗砰い笆, 陪ボㄇン砆е┮┶荡, τㄇン砆纗单. 璶闽超硂块 "none". パ⊿Τヴㄣノだ猂硂ㄇ戈, ┮眤闽超ぇ.<p>

<b>еいざ戈郎</b>: 箇砞–еヘ魁い swap.log 郎. 硂魁郎玂纗合盒ンいざ戈. 硂砆ノ币笆穝ミе. τē, 硂郎–еヘ魁, 眤硂娩﹚隔畖. 猔種: 眤ゲ斗倒ぉЧ俱郎嘿τぃ琌Τヘ魁. パ硂郎琌┮Τンま, ┮眤ぃэ跑ウ! <p>

狦 %s ㄏノ郎嘿, 玥ウ穦砆еヘ魁嘿┮瞷. 癸す砛糤/簿埃еヘ魁︽籔ユ传郎硂琌ゲ璶. <p>

狦眤Τеヘ魁, τ %s ⊿Τノ郎嘿, 玥ユ传魁郎穦砆㏑Θ钩妓Α:: <p>
<ul>
<li>cache_swap_log.00
<li>cache_swap_log.01
<li>cache_swap_log.02
</ul>
<p>
絪腹┑郎 (笆糤) 癸莱舱篈郎いеヘ魁抖. 狦眤э跑еヘ魁抖, 玥硂ㄇ郎<b>ぃ穦</b>癸莱タ絋ヘ魁 (埃獶眤も笆э跑ぇ). и某眤<b>ぃ璶</b>ㄏノ硂匡兜, 玂硂魁郎–еヘ魁い耕. <p>

<b>ㄏノ HTTPD 魁郎Α</b>: 箇砞 ''. Squid 家览砛ぃ 'httpd' 祘Α┮ㄏノ魁郎. 璶闽超/币笆硂家览, 盢硂计砞﹚/琌. 箇砞琌ㄏノ Squid 魁郎Α, ウ砛 Squid 砛ㄤ魁だ猂竟┮矗ㄑ戈癟.
<p>
<b>魁 MIME 夹繷</b>: 箇砞 ''. Squid 癘魁癸– HTTP 肚块┮璶―┪莱 MIME 夹繷. 硂ㄇ夹繷穦絪絏瞷魁郎逆ぇい (癸ネ┪家览魁郎А). 璶币笆硂叫盢匡兜砞﹚ '琌'.
<p>
<b>ㄏノ瞶魁郎</b>: 箇砞 '礚'. 狦絪亩Τㄏノ "--enable-useragent_log" 匡兜, Squid 盢 HTTP 璶―夹繷い User-Agent 逆魁﹚硂娩郎い.
<p>
<b>PID 郎</b>: 箇砞ㄌ╰参τ獽. 硂琌魁祘絪腹郎. 璶闽超硂, 块 "none".
<p>
<b>北璶― RFC931 ōだ琩高</b>: 箇砞 '礚'. 硂璶―讽め狠ヴ戈癟,  RFC931 秈︽ōだ琩高.
<p>
<b>RFC931 ōだ琩高筄</b>: 箇砞 30 . 硂琌癸琩高璶―程单丁. 狦硂计砞び蔼, τ眤币笆ヴōだ琩高杠, 眤穦綝秖璶―┶荡狝叭ю阑.
<p>
<b>魁Ч俱诀嘿</b>: 箇砞 ''. 硂癘魁め狠Ч俱诀嘿. 
<p>
<b>呼隔綛竛魁</b>: 箇砞 '255.255.255.255'. 硂琌癸魁郎籔е恨瞶块┮ㄏノめ狠綛竛. э跑硂计玂臔眤еめ狠留╬舦.  255.255.255.0 綛竛穦癘魁┮Τ硂絛瞅い IP.
<p>
<b>埃岿匡兜</b>: 箇砞 "ALL,1". 魁匡兜琌ㄌ沮跋办砞﹚, 单琌–ㄓ方郎砆﹚斑跋办. 耕蔼单 (9) 玻ネ獶盽郎, 叫み. τ "ALL" 砞﹚魁–跋办. и某猵, ㄏノ "ALL,1".
<p>
<b>MIME 夹繷</b>:  Squid  MIME 隔畖. 眤ぃ莱赣э跑硂砞﹚, 箇砞郎絛ㄒ籔Α戈癟.

<hr>
   0707010006ee63000081a40000000000000002000000013ac0389f00000bc3000000200000000000000000000000000000002200000003reloc/squid/help/edit_mem.es.html <header>Uso de Memoria</header>

<b>L韒ite de uso de memoria</b>: Por defecto 8 MB.  <p>
NOTA: Este par醡etro no especifica la medida m醲ima por
proceso. Coloca un l韒ite en un aspecto del uso de
memoria de Squid. Squid usa la memoria para otras cosas
tambi閚. Tu proceso puede llegar a ser dos o tres veces
mayor que el valor que pongas aqu.
<p>
Especifica la cantidad ideal de memoria a usar para:
<ul>
<li>Objetos En-Tr醤sito
<li>Objetos Calientes
<li>Objetos de Cach-Negativa
</ul>
<p>
Los datos para estos objetos se almacenan en bloques de 4 KB.
Este par醡etro especifica el l韒ite superior ideal de la
medida total de bloques de 4 KB reservados. Los objetos
En-Tr醤sito se llevan la prioridad mayor.
<p>
Los objetos En-tr醤sito tienen prioridad sobre los dem醩. Si
se necesita espacio adicional para los datos que llegan, se
liberan los objetos calientes y los de cach negativa. En
otras palabras, los objetos calientes y de cach negativa
llenan el espacio no usado que no haga falta para otros
objetos en-tr醤sito.
<p>
Si las circustancias lo requieren, este l韒ite puede ser
excedido. Espec韋icamente, si tu porcentaje de requerimientos
entrantes requiere m醩 de esta cantidad de memoria para
mantener los objetos en-tr醤sito, Squid exceder este l韒ite
para satisfacer los nuevos requerimientos. Cuando la carga
se decremente, se liberar醤 los bloques hasta que se alcance
el nivel de pleamar. De ah en adelante, se usar醤 los
bloques para almacenar objetos calientes.
<p>

<b>Medida de cach NDCC (FQDN)</b>: Por defecto es 1024. N鷐ero m醲imo de entradas de cach de Nombre de Dominio Compl閠amente Calificado. <p>

<b>Marca de pleamar de Memoria</b>: Por defecto es 95%. Al alcanzar esta marca de pleamar, los objetos calientes y los en tr醤sito se liberan de memoria. <p>

<b>Marca de bajamar de Memoria</b>: Por defecto es 90%. Tras alcanzar la marca de pleamar, Squid liberar memoria hasta que el uso baje por debajo de la marca de bajamar. <p>

<b>Marca de pleamar de disco</b>: Por defecto es 95%. Al alcanzar esta marca de pleamar, Squid empezar a limpiar el disco agres韛amente. <p>

<b>Marca de bajamar de disco</b>: Por defecto es 90%.  Tras alcanzar la marca de pleamar, Squid continuar limpiando el disco hasta llegar por debajo de esta marca de bajamar. <p>

<b>Medida m醲ima de objeto de cach</b>: Por defecto 4096 KB. Este valor limita la medida de los objetos que se almacenar醤 en la cach. Cualquier cosa por encima de esta medida nunca ser puesta en cach y debe de ser cargada desde el servidor original cada vez. <p>

<b>Medida de cach de la direcci髇 IP</b>: Por defecto es 1024. N鷐ero de entradas a almacenar en la cach de IP. <p>

<b>Marca de pleamar de cach IP</b>: Por defecto es 95%. El punto en el cual Squid limpia las entradas de cach de IP. <p>

<b>Marca de bajamar de cach IP</b>: Por defecto es 90%.  Tras empezar el vaciado de cach IP, este continuar hasta que el n鷐ero de entradas en la cach IP caiga por debajo de este porcentaje. <p>

<hr>


 0707010006ee64000081a40000000000000002000000013ac0389f00000a6a000000200000000000000000000000000000001f00000003reloc/squid/help/edit_mem.html    <header>Memory Usage</header>

<b>Memory usage limit</b>: Defaults to 8MB.  <p>
NOTE: This parameter does not specify the maximum process
size.  It places a limit on one aspect of Squid's memory
usage.  Squid uses memory for other things as well.
Your process will probably become twice or three times
as big as the value you put here. 
<p>
It specifies the ideal amount of memory to be used
for:
<ul>
<li>In-Transit objects
<li>Hot Objects
<li>Negative-Cached objects
</ul>
<p>
Data for these objects are stored in 4 kB blocks.  This
parameter specifies the ideal upper limit on the total size of
4 kB blocks allocated.  In-Transit objects take the highest
priority.
<p>
In-transit objects have priority over the others.  When
additional space is needed for incoming data, negative-cached
and hot objects will be released.  In other words, the
negative-cached and hot objects will fill up any unused space
not needed for in-transit objects.
<p>
If circumstances require, this limit will be exceeded.
Specifically, if your incoming request rate requires more than
this amount of memory to hold in-transit objects, Squid will
exceed this limit to satisfy the new requests.  When the load
decreases, blocks will be freed until the high-water mark is
reached.  Thereafter, blocks will be used to store hot
objects.
<p>

<b>FQDN cache size</b>: Defaults to 1024.  Maximum number of Fully Qualified Domain Name cache entries. <p>

<b>Memory high-water mark</b>: Defaults to 95%.  When this high mark is reached, hot objects and in transit objects will be released to free memory. <p>

<b>Memory low-water mark</b>: Defaults to 90%.  After the high water mark is reached, Squid will free memory until usage has dropped below this mark. <p>

<b>Disk high-water mark</b>: Defaults to 95%.  When this high mark is reached, Squid will begin aggressively flushing the disk. <p>

<b>Disk low-water mark</b>: Defaults to 90%.  After the high water mark is reached, Squid will continue to flush the disk until usage drops below this mark. <p>

<b>Maximum cached object size</b>: Defaults to 4096 kB.  This setting limits the size of objects that will be stored by the cache.  Anything over this size will never be cached and must be loaded from the origin server everytime. <p>

<b>IP address cache size</b>: Defaults to 1024.  Number of entries to be stored in the IP cache. <p>

<b>IP cache high-water mark</b>: Defaults to 95%.  The point at which Squid begins to flush IP cache entries. <p>

<b>IP cache low-water mark</b>: Defaults to 90%.  After IP cache flushing begins, it will continue until the number of entries in the IP cache drops below this percentage. <p>

<hr>


  0707010006ee65000081a40000000000000002000000013ac0389f00000b7d000000200000000000000000000000000000002200000003reloc/squid/help/edit_mem.pl.html <header>Zu縴cie pami阠i</header>

<b>Limit zu縴cia pami阠i</b>: Domy秎nie 8&nbsp;MB. <p>

UWAGA: Ten parametr nie okre秎a maksymalnego rozmiaru procesu. Ustawia on
ograniczenie tylko na jeden aspekt zu縴cia pami阠i przez Squida. Squid u縴wa
pami赕 r體nie do innych cel體. Tw骿 process zajmie prawdopodobnie dwa lub
trzy razy tyle pami阠i, ile ustawisz w&nbsp;tej opcji. <p>

Okre秎a ona idealn ilo舵 pami阠i zu縴wanej na:
<ul>
<li>Obiekty "w&nbsp;drodze"
<li>Obiekty "gor眂e:
<li>Obiekty negatywnie buforowane
</ul>
<p>

Dane dla tych obiekt體 s przechowywane w&nbsp;4&nbsp;kB blokach. Parametr
ten okre秎a idealn g髍n granic dla ca砶owitego rozmiaru przydzielonych
4&nbsp;kB blok體. Obiekty "w&nbsp;drodze" maj najwy縮zy priorytet. <p>

Obiekty "w drodze" maj priorytet wy縮zy ni inne. Gdy potrzebne jest
miejsce na przychodz眂e dane, zwalniane s obiekty buforowane negatywnie
oraz "gor眂e". Innymi s硂wy, buforowane negatywnie oraz "gor眂e" obiekty
zape硁i ca潮 nieu縴wan przestrze niepotrzebn dla obiekt體
"w&nbsp;drodze". <p>

Je秎i okoliczno禼i tego wymagaj, granica ta zostanie przekroczona.
W&nbsp;szczeg髄no禼i, je縠li ilo舵 przychodz眂ych zapyta b阣zie wymaga砤
wi阠ej ni podano pami阠i na przechowanie obiekt體 "w&nbsp;drodze", Squid
przekroczy t granic aby zrealizowa nowe zapytania. Gdy obci眤enie si
zmniejszy, bloki b阣 zwalniane a do osi眊ni阠ia g髍nego progu.
Dalsze wolne bloki b阣 wykorzystywane do przechowywania "gor眂ych"
obiekt體. <p>

<b>Rozmiar bufora nazw host體 (FQDN)</b>: Domy秎nie 1024. Maksymalna liczba
wpis體 zawieraj眂ych w&nbsp;pe硁i kwalifikowane nazwy host體 (FQDN). <p>

<b>G髍ny pr骻 dla pami阠i</b>: Domy秎nie 95%. Gdy ten znacznik
zostanie osi眊ni阾y, obiekty "gor眂e" oraz obiekty "w&nbsp;drodze" b阣
zwalniane aby zwolni pami赕. <p>

<b>Dolny pr骻 dla pami阠i</b>: Domy秎nie 90%. Po osi眊ni阠iu g髍nego
progu Squid b阣zie zwalnia pami赕 a jej zu縴cie spadnie poni縠j
tego znacznika. <p>

<b>G髍ny pr骻 dla dysku</b>: Domy秎nie 95%. Gdy ten znacznik zostanie
osi眊ni阾y, Squid b阣zie agresywnie opr罂nia dysk. <p>

<b>Dolny pr骻 dla dysku</b>: Domy秎nie 90%. Po osi眊ni阠iu g髍nego
progu Squid b阣zie kontynuowa opr罂nianie dysku a jego zu縴cie
spadnie poni縠j tego znacznika. <p>

<b>Maksymalny rozmiar buforowanego obiektu</b>: Domy秎nie 4096&nbsp;kB. To
ustawienie ogranicza rozmiar obiekt體, kt髍e b阣 przechowywane w buforach
cache. Nic, co przekracza ten rozmiar nie b阣zie buforowane i&nbsp;musi by
za ka縟ym razem za砤dowane ze 紃骴硂wego serwera. <p>

<b>Rozmiar bufora adres體 IP</b>: Domy秎nie 1024. Liczba wpis體
przechowywanych w&nbsp;buforze IP. <p>

<b>G髍ny pr骻 dla bufora IP</b>: Domy秎nie 95%. Punkt, przy kt髍ym
Squid zaczyna usuwa wpisy IP z&nbsp;bufora. <p>

<b>Dolny pr骻 dla bufora IP</b>: Domy秎nie 90%. Po rozpocz阠iu
opr罂niania bufora IP, b阣zie ono kontynuowane a liczba wpis體
w&nbsp;buforze IP spadnie poni縠j tego odsetka. <p>

<hr>
   0707010006ee66000081a40000000000000002000000013ac0389f00000ba3000000200000000000000000000000000000002200000003reloc/squid/help/edit_mem.sv.html <header>Minnesutnyttjande</header>

<b>Minnesbegr鋘sning</b>: Standardv鋜det 鋜 8 MB.

<p>OBS: Denna parameter s鋞ter ingen begr鋘sning f鰎 processtorleken, utan
begr鋘sar endast Squids minnesutnyttjande i ett avseende. Squid anv鋘der
minnet 鋠en till andra saker. Processen kommer antagligen att bli tv eller
tre g錸ger s stor som det v鋜de du anger h鋜.

<p>Parametern anger den ideala minnes錿g錸gen f鰎:
<ul>
<li>Objekt som h錶ler p att 鰒erf鰎as
<li>Nyligen anv鋘da objekt
<li>Objekt som cachats negativt
</ul>

<p>Data f鰎 dessa objekt lagras i 4 kB-block. Denna parameter anger den
ideala 鰒re begr鋘sningen p det totala antalet allokerade 4 kB-block.
Objekt som h錶ler p att 鰒erf鰎as har h鰃st prioritet.

<p>Objekt som h錶ler p att 鰒erf鰎as har h鰃re prioritet 鋘 鰒riga. Om
ytterligare utrymme kr鋠s f鰎 inkommande data kastas objekt som cachats
negativt och som nyligen anv鋘ts. De negativt cachade objekten samt de
nyligen anv鋘da objekten tar allts upp allt utrymme som inte beh鰒s till
objekt som h錶ler p att 鰒erf鰎as.

<p>Om omst鋘digheterna kr鋠er detta kommer denna begr鋘sning att 鰒erskridas.
S鋜skilt om takten f鰎 inkommande f鰎fr錱ningar kr鋠er mer 鋘 detta
minnesutrymme f鰎 att hantera objekt som ska 鰒erf鰎as, kommer Squid att
鰒erskrida gr鋘sen, f鰎 att kunna ta hand om nya f鰎fr錱ningar. N鋜
belastningen minskar kommer block att frig鰎as tills h鰃vattenm鋜ket n錿ts
och d鋜efter kommer blocken att anv鋘das f鰎 nyligen anv鋘da objekt.

<p><b>FD(FQDN)-cachestorlek</b>: Standardv鋜det 鋜 1024. Det maximala antalet
cacheposter med Fullst鋘diga Dom鋘namn.

<p><b>"H鰃vattenm鋜ke" f鰎 minne</b>: Standardv鋜det 鋜 95 %. N鋜 denna gr鋘s
n錽 kommer nyligen anv鋘da objekt och objekt som h錶ler p att 鰒erf鰎as att
kastas bort f鰎 att frig鰎a minne.

<p><b>"L錱vattenm鋜ke" f鰎 minne</b>: Standardv鋜det 鋜 90 %. N鋜
h鰃vattenm鋜ket n錿ts kommer Squid att forts鋞ta att frig鰎a minne tills
minnesutnyttjande g錿t nedanf鰎 denna gr鋘s.

<p><b>"H鰃vattenm鋜ke" f鰎 disk</b>: Standardv鋜det 鋜 95 %. N鋜 denna gr鋘s
n錽 kommer Squid att b鰎ja rensa disk-cachen fr錸 de 鋖dsta objekten.

<p><b>"L錱vattenm鋜ke" f鰎 disk</b>: Standardv鋜det 鋜 90 %. N鋜
h鰃vattenm鋜ket n錿ts kommer Squid att forts鋞ta att rensa disk-cachen tills
det upptagna utrymmet g錿t nedanf鰎 denna gr鋘s.

<p><b>Maximal storlek f鰎 cachade objekt</b>: Standardv鋜det 鋜 4096 kB. Denna
variabel begr鋘sar storleken p de objekt som lagras i cachen. St鰎re objekt
kommer aldrig att cachas utan m錽te h鋗tas fr錸 ursprungsservern varje g錸g.

<p><b>Storlek f鰎 IP-adress-cache</b>: Standardv鋜det 鋜 1024. Antalet poster
som f錼 lagras i IP-cachen.

<p><b>"H鰃vattenm鋜ke" f鰎 IP-cache</b>: Standardv鋜det 鋜 95 %. N鋜 denna
gr鋘s n錽 kommer Squid att b鰎ja rensa ut IP-poster ur cachen.

<p><b>"L錱vattenm鋜ke" f鰎 IP-cache</b>: Standardv鋜det 鋜 90 %. N鋜 Squid har
b鰎jat att rensa i IP-cachen kommer den att forts鋞ta tills posternas antal
g錼 under denna andel.

<hr>


 0707010006ee67000081a40000000000000002000000013ac0389f000006a6000000200000000000000000000000000000002a00000003reloc/squid/help/edit_mem.zh_TW.Big5.html <header>癘拘砰ㄏノ秖</header>

<b>癘拘砰ㄏノ秖</b>: 箇砞 8MB.  <p>
爹: 硂把计⊿Τ﹚程祘. 硂琌 Squid 芠翴┮,  Squid ㄏノ癘拘砰碞ㄤ祘Α. 眤祘穦琌硂计 2  3 . 
<p>
ウ﹚瞶稱癘拘砰ㄏノ秖倒:
<ul>
<li>肚块いン
<li>ㄏノいン
<li>еン
</ul>
<p>
硂ㄇン琌 4 kB 跋遏纗. 硂把计﹚眔 4 kB 跋遏瞶稱. 肚块いンΤ程蔼纔舦.
<p>
肚块いン纔舦蔼ㄤ. 讽秈ン惠璶丁, е籔ㄏノいン穦砆睦. 碞琌弧е籔ㄏノいン穦恶骸ゼ砆肚块いンㄏノ丁.
<p>
狦龟悔猵Τ惠璶, 硂砆禬筁. ㄒ讽眤秈璶―硉蔼ノ纗ン癘拘砰, Squid 盢穦禬筁硂骸ì穝璶―. 讽璽更, 跋遏穦砆睦笷蔼ノ秖夹癘. 碞琌弧跋遏穦ノ纗ㄏノいン.
<p>

<b>FQDN е</b>: 箇砞 1024. 癸呼籔嘿е魁计ヘ. <p>

<b>癘拘砰蔼ノ秖夹癘</b>: 箇砞 95%. 讽笷蔼ノ秖夹癘, ㄏノい籔肚块いン穦砆睦癘拘砰. <p>

<b>癘拘砰ノ秖夹癘</b>: 箇砞 90%. 讽笷蔼ノ秖夹癘, Squid 穦睦癘拘砰ノ秖夹癘. <p>

<b>合盒蔼ノ秖夹癘</b>: 箇砞 95%. 讽笷蔼ノ秖夹癘, Squid 穦秨﹍睲埃合盒. <p>

<b>合盒ノ秖夹癘</b>: 箇砞 90%. 箇砞 90%. 讽笷蔼ノ秖夹癘, Squid 穦膥尿睲埃合盒ノ秖夹癘.

<b>程еン</b>: 箇砞 4096 kB. 硂砞﹚砆е纗ン. ヴゑ硂计ン常ぃ穦砆е, τゲ斗钡眖﹍诀更. <p>

<b>IP е</b>: 箇砞 1024. 纗 IP еい兜ヘ计ヘ. <p>

<b>IP е蔼ノ秖夹癘</b>: 箇砞 95%. 笷硂翴, Squid 穦秨﹍睲埃 IP е兜ヘ. <p>

<b>IP еノ秖夹癘</b>: 箇砞 90%. 讽秨﹍睲埃 IP е兜ヘ, ウ盢穦尿 IP е兜ヘ硂κだゑ. <p>

<hr>


  0707010006ee68000081a40000000000000002000000013ac0389f00001587000000200000000000000000000000000000002300000003reloc/squid/help/edit_misc.es.html    <header>Opciones Varias</header>

<b>Iniciar direcciones de prueba de DNS</b>: Servidores de DNS consultados por Squid para probar si las b鷖quedas DNS funcionan corr閏tamente.
<p>
<b>Rotaciones de archivo de historial SIGUSR1</b>: Por defecto es 10 o 0, dependiendo del sistema. Especifica el n鷐ero de rotaciones de archivo de historial a realizar al digitar 'squid -k rotate'.  Por defecto es 10, lo cual rotar con extensiones 0 a 9. Ponerlo a 0 desactivar la rotaci髇, pero los archivos de historial a鷑 se reabren y cierran. Esto te permitir renombrar los archivos de historial por t mismo justo antes de enviar la se馻l de rotaci髇.
<p>
Nota: el comando 'squid -k rotate' norm醠mente env韆 la se馻l USR1 al proceso Squid en ejecuci髇. Bajo ciertas situaciones (p.ej. en Linux con E/S As韓crona), USR1 se usa para otros prop髎itos, por ello '-k rotate' usa otra se馻l.  Es mejor acostumbrarse a usar 'squid -k rotate' en vez de 'kill -USR1 <pid>'.
<p>
<b>Texto de mensajes de error</b>: Texto HTML a incluir en mensajes de error. Haz que esto sea una URL donde "mailto (enviar correo a)" a tu direcci髇 de admin o quiz醩 s髄o un enlace a la p醙ina Web de tu organizaci髇.
<p>
Para incluir esto en tus mensajes de error, debes de reescribir tus archivos de plantilla de error (hallados en el directorio "errors"). Donde desees que la l韓ea 'err_html_text' aparezca, inserta un marca %L en el archivo de plantillas de error.
<p>
<b>Estad韘ticas por cliente</b>: Si deseas desactivar la recolecci髇 de estad韘ticas por cliente, desactiva la client_db aqu.
<p>
<b>Cabecera de X-Reenviado-Para</b>: Por defecto est activa. Si se pone, Squid inlcuir tu direcci髇 IP de sistema o tu nombre de sistema en los requerimientos IP que env韊. Por defecto, se asemeja a los requerimientos HTTP que env韆. Por defecto se asemeja a:
<p>
<center>X-Forwarded-For: 192.1.2.3</center>
<p>
Si desactivas esto, aparecer como:
<p>
<center>X-Forwarded-For: desconocido</center>
<p>
<b>Llevar historial de consultas ICP</b>: Por defecto activo. Si se pone, las consultas ICP son puestas en 'access.log'. Puedes querer desactivar esto si tu carga ICP es MUY alta par as acelerar las cosas o para simplificar el an醠isis del historial.
<p>
<b>Saltos directos m韓imos</b>: Por defecto son 4. Si utilizas el ping de ICMP, haz recogidas directas para los sitios que no est閚 m醩 lejos de estos saltos.
<p>
<b>Mant閚 la memoria para uso futuro</b>: Por defecto es 's'. Si se pone, Squid mantendr bloques de memoria reservada (pero no usada) para uso futuro. Si la memoria es primordial en tu sistema y crees que la biblioteca malloc es mejor que las rutinas de Squid, deasactiva esto.
<p>
<b>Cantidad de memoria a mantener</b>: Por defecto es 'Ilimitada'. Si se pone a un valor que no sea cero, Squid mantendr como mucho el l韒ite especificado de memoria reservada (pero no usada) en bloques de memoria. Todos los requerimientos de liberaci髇 [free()] que excedan este l韒ite ser醤 manejados por tu biblioteca  malloc. Squid no prereserva ninguna memoria, s髄o mantiene de forma segura objetos que de otra forma ser韆n liberados. Por ello, es m醩 seguro poner l韒ites a bloques de memoria (memory_pools_limit) a un valor razon醔lemente alto incluso si tu configuraci髇 usar as menos memoria.
<p>
Si no se pone (por defecto) o se pone a cero, Squid mantendr toda la memoria que pueda. Es decir que no habr l韒ite en la cantidad total de memoria usada para mantener-segura.
<p>
<b>Cabeceras a pasar dir閏tamente</b>: Por defecto es 'Todas las cabeceras'. Esta opci髇 reemplaza la vieja 'http_anonymizer' por algo que es mucho m醩 configurable. Ahora puedes especificar ex醕tamente qu cabeceras est醤 autorizadas o cual van a ser quitadas de los requerimientos de salida.
<p>
Hay dos maneras de usar esta opci髇. Puedes permitir cabeceras espec韋icas (denegando as las otras) o puedes denegar cabeceras espec韋icas (autorizando as las otras).
<p>
<b>Usuario-Agente Falso</b>: Por defecto es 'ninguno'. Si filtras la cabecera de Usuario-Agente con la opci髇 <b>Cabeceras a pasar dir閏tamente</b> puede causar que algunos servidores Web rechacen tu requerimiento. Usa esto para falsearlo.
<p>
<b>M醧uina Aceleradora HTTP</b>: Por defecto es 'ninguna'. Si deseas ejecutar Squid como un acelerador httpd, pon esta direcci髇 del servidor HTTP real.
<p>
<b>Puerto Acelerador HTTP</b>: Por defecto es 'ninguno'. Adem醩 de poner la <b>M醧uina Aceleradora HTTP</b> debes de poner el puerto real de servidores, aqu, si est醩 usando Squid como un acelerador.
<p>
<b>Acelerador HTTP Con Proxy</b>: Por defecto est desactivado. Act韛alo si deseas que tu Squid actue como un proxy tradicional mientras suministra tambi閚 aceleraci髇 HTTP. Esta opci髇 deber韆 de activarse si se usa un proxy transparente.
<p>
<b>Acelerador HTTP Usa Cabecera de M醧uina</b>: Por defecto est desactivado. Los requerimientos HTTP/1.1 incluyen una cabecera de 'M醧uina:' que es b醩icamente el nombre de m醧uina del URL. Squid puede ser un acelerador para diferentes servidores HTTP s髄o con mirar a esta cabecera. Sin embargo, Squid NO revisa el valor de la cabecera de M醧uina, por ello esto abre un gran agujero de seguridad. Recomendamos que esta opci髇 permanezca desactivada a menos que est閟 seguro de lo que est醩 haciendo.
<p>
Sin embargo, necesitar activar esta opci髇 si ejecutas Squid como un proxy transparente, De otra manera, los servidores virtuales que requieran la cabecera 'M醧uina:' no ser puestos en cach de forma adecuada.

<hr>
 0707010006ee69000081a40000000000000002000000013ac0389f0000130b000000200000000000000000000000000000002000000003reloc/squid/help/edit_misc.html   <header>Miscellaneous Options</header>

<b>Startup DNS test addresses</b>: DNS servers that Squid will query to test whether DNS lookups are working correctly.
<p>
<b>SIGUSR1 logfile rotations</b>: Defaults to 10 or 0, dependent on system.  Specifies the number of logfile rotations to make when you type 'squid -k rotate'.  The default is 10, which will rotate with extensions 0 through 9.  Setting logfile_rotate to 0 will disable the rotation, but the logfiles are still closed and re-opened.  This will enable you to rename the logfiles yourself just before sending the rotate signal.
<p>
Note, the 'squid -k rotate' command normally sends a USR1 signal to the running squid process.  In certain situations (e.g. on Linux with Async I/O), USR1 is used for other purposes, so -k rotate uses another signal.  It is best to get in the habit of using 'squid -k rotate' instead of 'kill -USR1 <pid>'.
<p>
<b>Error messages text</b>: HTML text to include in error messages.  Make this a "mailto" URL to your admin address, or maybe just a link to your organizations Web page.
<p>
To include this in your error messages, you must rewrite the error template files (found in the "errors" directory).  Wherever you want the 'err_html_text' line to appear, insert a %L tag in the error template file.
<p>
<b>Per-client statistics</b>: If you want to disable collecting per-client statistics, then turn off client_db here.
<p>
<b>X-Forwarded-For header</b>: Default is 'on'.  If set, Squid will include your system's IP address or name in the HTTP requests it forwards.  By default it looks like in the HTTP requests it forwards.  By default it looks like this:
<p>
<center>X-Forwarded-For: 192.1.2.3</center>
<p>
If you disable this, it will appear as:
<p>
<center>X-Forwarded-For: unknown</center>
<p>
<b>Log ICP queries</b>: Default is 'on'. If set, ICP queries are logged to access.log. You may wish do disable this if your ICP load is VERY high to speed things up or to simplify log analysis.
<p>
<b>Minimum direct hops</b>: Default is 4.  If using the ICMP pinging stuff, do direct fetches for sites which are no more than this many hops away.
<p>
<b>Keep memory for future use</b>: Default is 'yes'.  If set, Squid will keep pools of allocated (but unused) memory available for future use.  If memory is a premium on your system and you believe your malloc library outperforms Squid routines, disable this.
<p>
<b>Amount of memory to keep</b>: Default is 'Unlimited'.  If set to a non-zero value, Squid will keep at most the specified limit of allocated (but unused) memory in memory pools. All free() requests that exceed this limit will be handled by your malloc library. Squid does not pre-allocate any memory, just safe-keeps objects that otherwise would be free()d. Thus, it is safe to set memory_pools_limit to a reasonably high value even if your configuration will use less memory.
<p>
If not set (default) or set to zero, Squid will keep all memory it can. That is, there will be no limit on the total amount of memory used for safe-keeping.
<p>
<b>Headers to pass through</b>: Default is 'All headers'.  This option replaces the old 'http_anonymizer' option with something that is much more configurable.  You may now specify exactly which headers are to be allowed, or which are to be removed from outgoing requests.
<p>
There are two methods of using this option.  You may either allow specific headers (thus denying all others), or you may deny specific headers (thus allowing all others). 
<p>
<b>Fake User-Agent</b>: Default is 'none'.  If you filter the User-Agent header with the <b>Headers to pass through</b> option it may cause some Web servers to refuse your request.  Use this to fake one up.
<p>
<b>HTTP Accel Host</b>: Default is 'none'.  If you want to run Squid as an httpd accelerator, set this to the address of the real HTTP server.
<p>
<b>HTTP Accel Port</b>: Default is 'none'.  In addition to setting the <b>HTTP Accel Host</b> you must set the real servers port, here, if you are using Squid as an accelerator.
<p>
<b>HTTP Accel With Proxy</b>: Default is 'off'.  Enable this if you would like for your Squid to act as a traditional proxy while also providing HTTP acceleration.  This option should also be enabled when using transparent proxying.
<p>
<b>HTTP Accel Uses Host Header</b>: Default is off.  HTTP/1.1 requests include a Host: header which is basically the hostname from the URL.  Squid can be an accelerator for different HTTP servers by looking at this header.  However, Squid does NOT check the value of the Host header, so it opens a big security hole.  We recommend that this option remain disabled unless you are sure of what you are doing.
<p>
However, you will need to enable this option if you run Squid as a transparent proxy.  Otherwise, virtual servers which require the Host: header will not be properly cached.

<hr>
 0707010006ee6a000081a40000000000000002000000013ac0389f000015ef000000200000000000000000000000000000002300000003reloc/squid/help/edit_misc.pl.html    <header>Opcje r罂ne</header>

<b>Pocz眛kowe kontrolne adresy DNS</b>: Serwery DNS, do kt髍ych Squid wy秎e
zapytania, aby sprawdzi czy przeszukiwania DNS dzia潮j prawid硂wo. <p>

<b>Rotacja logu po SIGUSR1</b>: Domy秎nie 10 lub 0, w zale縩o禼i od systemu.
Okre秎a liczb rotacji logu, kt髍e b阣 wykonane, gdy wpiszesz 'squid -k
rotate'. Warto禼i domy秎n jest 10, co spowoduje rotacj
z&nbsp;rozszerzeniami od 0 do 9. Ustawienie tego parametru na 0 wy潮czy
rotacj, ale logi b阣 nadal zamykane i&nbsp;otwierane powt髍nie. Umo縧iwi
ci to samodzieln zmian nazw log體 chwil przed wys潮niem sygra硊 rotacji.
<p>   

Zauwa, 縠 polecenie 'squid -k rotate' zazwyczaj wysy砤 sygna USR1 do
dzia砤j眂ego procesu Squida. W&nbsp;pewnych sytuacjach (np. na Linuksie
z&nbsp;asynchroniczn obs硊g wej禼ia/wyj禼ia) USR1 jest wykorzystywany do
innych cel體, wi阠 rotacja -k korzysta z&nbsp;innego sygna硊. Lepiej mie
nawyk u縴wania 'squid -k rotate' zamiast 'kill -USR1 <pid>'. <p>

<b>Tekst w&nbsp;komunikatach b酬d體</b>: Tekst HTML umieszczany
w&nbsp;komunikatach b酬d體. Wpisz tu URL "mailto" na adres twojego
administratora lub, by mo縠, przekierowanie do strony WWW twojej
organizacji. <p>  

Aby umie禼i to w&nbsp;twoich komunikatach o&nbsp;b酬dach, musisz
zmodyfikowa wzorcowe pliki komunikat體 o&nbsp;b酬dach (znajduj眂e si
w&nbsp;katalogu "errors"). Gdziekolwiek chcesz, aby powy縮za linia si
pojawi砤, wstaw w&nbsp;pliku znacznik '%L'. <p>

<b>Statystyka wg klient體</b>: Je秎i chcesz wy潮czy tworzenie statystyk
dla ka縟ego klienta, wy潮cz t opcj. <p>

<b>Nag丑wek X-Forwarded-For</b>: Domy秎nie w潮czony. Je秎i opcja ta jest
w潮czona, Squid b阣zie do潮cza nazw lub adres IP Twojego systemu do
zapyta, kt髍e przekazuje. Domy秎nie wygl眃a on jak w&nbsp;przekazywanym
zapytaniu HTTP, czyli jak: <p>

<center>X-Forwarded-For: 192.1.2.3</center> 
<p>

Je秎i wy潮czysz t opcj, b阣zie wygl眃a jak:
<p>

<center>X-Forwarded-For: unknown</center> <p>

<b>Logowa zapytania ICP</b>: Domy秎nie w潮czone. Je秎i opcja ta jest
w潮czona, zapytania ICP s logowane do access.log. Je秎i obci笨enie ICP
Twojego Squida jest BARDZO du縠, mo縠sz chcie to
wy潮czy, aby przyspieszy dzia砤nie i&nbsp;upro禼i analiz logu. <p>

<b>Minimalna liczba bezpo秗ednich skok體</b>: Domy秎nie 4. Je秎i
wykorzystywane jest pingowanie ICMP, dla miejsc, kt髍e s nie dalej ni
podana liczba przeskok體 b阣zie wykonywane pobieranie bezpo秗ednie
pobieranie. <p>

<b>Zachowa pami赕 na przysz硂舵</b>: Domy秎nie 'Tak'. Je秎i ta opcja jest
w潮czona, Squid b阣zie utrzymywa przydzielone (ale nieu縴wane) obszary
pami阠i dla przysz砮go wykorzystania. Je秎i pami赕 jest cenna w&twoim
systemie i&nbsp;s眃zisz, 縠 twoja biblioteka zarz眃zania pami阠i jest
wydajniejsza ni procedury Squida, wy潮cz j.

<b>Zachowywana ilo舵 pami阠i</b>: Domy秎nie 'Nieograniczona'. Je秎i podano
warto舵 niezerow, Squid b阣zie utrzymywa co najmniej podan ilo舵
przydzielonej (ale nieu縴wanej) pami阠i. Wszystkie wywo砤nia free(), kt髍e
przekrocz t granic b阣 obs硊giwane przez twoj bibliotek zarz眃zania
pami阠i. Squid nie przydziela wst阷nie 縜dnej pami阠i lecz, po prostu,
przechowuje obiekty, kt髍e w&nbsp;przeciwnym przypadku by硑by zwolnione.
Wobec tego, mo縩a bezpiecznie ustawi stosunkowo wysok warto舵 tej opcji
nawet, je秎i twoja konfiguracja b阣zie wykorzystywa砤 mniej pami阠i. <p>

Je秎i warto舵 tego parametru nie jest ustawiona (domy秎nie) lub ustawiona na
zero, Squid b阣zie utrzymywa tyle pami阠i ile zdo砤. Oznacza to, 縠 nie
b阣zie 縜dnego ograniczenia na 潮czn ilo舵 pami阠i wykorzystywan do
przechowywania. <p>

<b>Przepuszczanie nag丑wk體</b>: Domy秎nie 'Wszystkie nag丑wki'. Opcja ta
zast阷uje stary parametr 'Ukrywanie to縮amo禼i' czym, co jest du縪 lepiej
konfigurowalne. Mo縩a obecnie poda, kt髍e dok砤dnie nag丑wki powinny,
a&nbsp;kt髍e nie powinny by usuni阾e z&nbsp;wychodz眂ych zapyta. <p>

S dwie metody wykorzystania tej opcji. Mo縩a albo przepuszcza okre秎one
nag丑wki (blokuj眂 wszystkie inne), albo blokowa okre秎one nag丑wki
(przepuszczaj眂 wszystkie inne). <p>

<b>Fa硈zywy program u縴tkownika</b>: Domy秎nie 'brak'. Je秎i nag丑wek
'User-Agent' jest odfiltrowywany w&nbsp;opcji <b>Przepuszczanie
nag丑wk體</b>, mo縠 to powodowa odrzucanie zapyta przez niekt髍e serwery
WWW. U縴cie tej opcji pozwala go podrobi. <p> 

<b>Host akceleracji HTTP</b>: Domy秎nie 'brak'. Je秎i Squid ma dzia砤 jako
akcelerator httpd, nale縴 poda tu adres rzeczywistego serwera HTTP. <p>

<b>Port akceleracji HTTP</b>: Domy秎nie 'brak'. Dodatkowo podaj眂 <b>Host
akceleracji HTTP</b>, trzeba tu poda port rzeczywistego serwera, o&nbsp;ile
Squid ma dzia砤 jako akcelerator. <p>

<b>Akceleracja HTTP i&nbsp;proxy</b>: Domy秎nie wy潮czone. Opcj t nale縴
w潮czy, je秎i Squid ma dzia砤 jako tradycyjne proxy a&nbsp;jednocze秐ie
stanowi akcelerator HTTP. Opcja ta powinna by w潮czona dla przezroczystego
proxy. <p> 

<b>Akceleracja HTTP korzysta z&nbsp;nag丑wka Host</b>: Domy秎nie wy潮czone.
Zapytania HTTP/1.1 zawieraj nag丑wek 'Host:', kt髍y zasadniczo zawiera
nazw hosta z&nbsp;URL-a. Squid mo縠 stanowi akcelerator dla r罂nych
serwer體 HTTP spogl眃aj眂 na ten nag丑wek. Jednak縠, Squid NIE sprawdza
zawarto禼i nag丑wka 'Host:', wi阠 otwiera si tu du縜 dziura
w&nbsp;bezpiecze駍twie. Zaleca si pozostawienie tej opcji wy潮czonej, chyba
縠 jeste pewien, i wiesz co robisz. <p>

Jednak縠, trzeba b阣zie w潮czy t opcj, je秎i Squid ma dzia砤 jako
przezroczyste proxy. W&nbsp;przeciwnym przypadku, zapytania do serwer體
wirtualnych wymagaj眂ych nag丑wka 'Host:', nie b阣 prawid硂wo buforowane.

<hr>
 0707010006ee6b000081a40000000000000002000000013ac0389f00001462000000200000000000000000000000000000002300000003reloc/squid/help/edit_misc.sv.html    <header>Blandade inst鋖lningar</header>

<b>DNS-testadresser vid start</b>: DNS-servrar som Squid ska skicka
f鰎fr錱ningar till f鰎 att testa att DNS-uppslagningarna fungerar.

<p><b>SIGUSR1-loggfilsrotationer</b>: Standardv鋜det 鋜 10 eller 0 beroende p
systemet. Parametern anger det antal loggfilsrotationer som utf鰎s n鋜 man
skriver 'squid -k rotate'. V鋜det 10 roterar alla filer med 鋘delser 0 till
och med 9. Om variabeln logfile_rotate s鋞ts till 0 kommer rotationen att
sl錽 av, men filerna kommer fortfarande att st鋘gas och 鰌pnas igen. Detta
g鰎 att man kan d鰌a om loggfilerna sj鋖v innan man skickar rotate-kommandot.

<p>Observera att kommandot 'squid -k rotate' vanligtvis skickar en USR1-signal
till den squid-process som k鰎s. I vissa situationer (t ex p Linux med Async
I/O) anv鋘ds USR1 till andra saker, s -k rotate skickar en annan signal. Det
鋜 b鋝t att du v鋘jer dig vid att skriva 'squid -k rotate' ist鋖let f鰎
'kill 'USR1 <pid>'.

<p><b>Felmeddelandetext</b>: HTML-text som ska skickas med felmeddelanden.
Ange g鋜na en "mailto"-URL till admin-adressen eller kanske bara en l鋘k till
f鰎etagets websida.

<p>F鰎 att denna text ska skrivas in i felmeddelandena m錽te man skriva om
felfilsmallarna (finns i katalogen "errors"). D鋜 texten i 'err_html_text'
ska st s鋞ter man in taggen %L i mallfilen.

<p><b>Statistik per klient</b> Om man vill sl av funktionen att samla in
statistik per klient sl錼 man av client_db h鋜.

<p><b>X-Forwarded-For-rubrik</b>: Standardinst鋖lningen 鋜 'p'. Squid
skickar med systemets IP-adress eller namn i de HTTP-f鰎fr錱ningar den skickar
vidare om parametern 鋜 p錽lagen. Detta 鋜 standardutseendet:

<p><center>X-Forwarded-For: 192.1.2.3</center>

<p>Om inst鋖lningen 鋜 avslagen ser det ut s h鋜:

<p><center>X-Forwarded-For: unknown</center>

<p><b>Logga ICP-uppslagningar</b>: Standardinst鋖lningen 鋜 'p'. 
IP-uppslagningar loggas till access.log om parametern 鋜 p錽lagen. Om ens
ICP-trafik 鋜 mycket h鰃 鋜 det bra att sl av denna f鰎 att snabba upp
systemet eller f鰎 att f鰎enkla logganalyser.

<p><b>Minimalt antal direkta hops</b>: Standardv鋜det 鋜 4. Om man anv鋘der
ICMP-ping b鰎 man utf鰎a direkta h鋗tningar f鰎 siter som 鋜 n鋜mre 鋘 detta
antal hops bort.

<p><b>Spara minne f鰎 framtida bruk</b>: Standardinst鋖lningen 鋜 'ja'.
Om detta 鋜 p錽laget kommer Squid att h錶la en del allokerat, men outnyttjat,
minne tillg鋘gligt f鰎 framtida bruk. Om du har ont om minne och tror att ditt
malloc-bibliotek presterar b鋞tre 鋘 Squid-rutinerna b鰎 du sl av denna
inst鋖lning.

<p><b>Sparad minnesm鋘gd</b>: Standardinst鋖lningen 鋜 'Obegr鋘sad'. Om v鋜det
s鋞ts till n錱ot tal skilt fr錸 noll kommer Squid spara h鰃st s mycket
allokerat, outnyttjat minne i minnesbankar. Alla free()-f鰎fr錱ningar som
鰒erstiger denna gr鋘s kommer att hanteras av malloc-biblioteket. Squid
allokerar inte minne i f鰎v鋑 utan sparar endast objekt som annars skulle
kastas av free(). Det 鋜 allts ofarligt att s鋞ta en ganska h鰃 gr鋘s, 鋠en
om systemet anv鋘der mindre minne.

<p>Om inget v鋜de (standard) eller v鋜det noll angivits, kommer Squid att
spara s mycket minne som m鰆ligt s att det allts inte finns n錱on
begr鋘sning f鰎 den minnesm鋘gd som anv鋘ds f鰎 att spara objekt.

<p><b>Huvuden som sl鋚ps igenom</b>: Standardinst鋖lningen 鋜 'Alla'. Denna
inst鋖lning ers鋞ter den gamla 'http_anonymizer'-variabeln med en som g錼 att
konfigurera i st鰎re utstr鋍kning. Nu g錼 det att ange precis de huvuden som
鋜 eller inte 鋜 till錿na och vilka som ska tas bort fr錸 utg錯nde
f鰎fr錱ningar.

<p>Det finns tv s鋞t att anv鋘da denna inst鋖lning; antingen sl鋚pa igenom
vissa, angivna huvuden (och d鋜med sp鋜ra alla andra) eller sp鋜ra vissa,
angivna huvuden (och d鋜med sl鋚pa igenom alla andra).

<p><b>F鰎falska anv鋘darprogram</b>: Standardinst鋖lningen 鋜 'inget'. Om
User-Agent-huvudet filtreras med inst鋖lningen <b>Huvuden som sl鋚ps igenom</b>
kommer det att medf鰎a att en del webservrar inte svarar p f鰎fr錱ningar.
Denna inst鋖lning anv鋘ds f鰎 att f鰎falska ett huvud.

<p><b>HTTP Accel-dator</b>: Standardinst鋖lningen 鋜 'ingen'. Om man vill
k鰎a Squid som en httpd-accelerator ska adressen till HTTP-servern anges h鋜.

<p><b>HTTP Accel-port</b>: Standardinst鋖lningen 鋜 'ingen'. Om inst鋖lningen
<b>HTTP Accel-dator</b> anv鋘ds m錽te ocks HTTP-serverns port anges h鋜.

<p><b>HTTP Accel med proxy</b>: Standardinst鋖lningen 鋜 'av'. Sl p denna
om Squid ska anv鋘das som en vanlig proxy samtidigt som den ska agera
HTTP-accelerator. Den b鰎 ocks sl錽 p om transparent proxying anv鋘ds.

<p><b>HTTP Accel anv鋘der Host-huvud</b>: Standardinst鋖lningen 鋜 'av'.
HTTP/1.1-f鰎fr錱ningar inneh錶ler ett Host:-huvud, som i grund och botten 鋜
datornamnet i URL:en. Squid kan agera accelerator f鰎 flera HTTP-servrar
genom att titta p detta huvud. Squid kontrollerar dock INTE v鋜det f鰎 detta
Host-huvud, vilket utg鰎 ett enormt s鋕erhetsh錶. Vi rekommenderar att denna
inst鋖lning f鰎blir avslagen om man inte verkligen vet vad man h錶ler p med.

<p>Det 鋜 dock n鰀v鋘digt att sl p den om Squid k鰎s som en transparent
proxy, annars kommer inte virtuella servrar, som beh鰒er Host-huvudet, att
cachas ordentligt.

<hr>
  0707010006ee6e000081a40000000000000002000000013ac0389f0000043a000000200000000000000000000000000000002100000003reloc/squid/help/edit_ports.html  <header>Ports and Networking</header>

<b>Proxy port</b>: Defaults to 3128.  This value sets what port your Squid server will listen on for http requests.  Client browsers will need to be configured to connect to a proxy on this port, or transparency will need to be setup, also. <p>

<b>ICP port</b>: The port number where Squid sends and receives ICP requests to and from neighbor caches.  Default is 3130.  To disable use "0".  May be overridden with -u on the command line. <p>

<b>Incoming TCP Address</b>: Defaults to none.  Defines the HTTP socket which accepts connections from clients and other caches. <p>

<b>Outgoing TCP Address</b>: Defaults to none.  Defines the HTTP socket for connections made to remote servers and other caches. <p>

<b>Outgoing UDP Address</b>: Defaults to none.  Defines the ICP socket receiving packets from other caches. <p>

<b>Incoming UDP Address</b>: Defaults to none.  Defines the socket for ICP packets being sent out to other caches. <p>

<b>TCP receive buffer</b>: Size of the TCP buffer.  Defaults to the OS receive buffer. <p>

<hr>

  0707010006ee6c000081a40000000000000002000000013ac0389f00000d9d000000200000000000000000000000000000002b00000003reloc/squid/help/edit_misc.zh_TW.Big5.html    <header>ㄤ匡兜</header>

<b>癬﹍ DNS 代刚</b>: Squid ノ代刚 DNS 琩高琌タ盽笲 DNS 狝竟.
<p>
<b>SIGUSR1 魁郎近锣</b>: ㄌ沮╰参ぃ, 箇砞 10 ┪ 0. ﹚讽眤ㄏノ 'squid -k rotate' 魁郎近锣计ヘ. 箇砞 10, 硂穦盢魁郎糤眖 0  9 絪腹. 盢硂计砞﹚ 0 穦闽超魁郎近锣, 魁郎ご穦闽超穝秨币; 硂盢琵眤癳近锣獺腹玡︽跑魁郎嘿.
<p>
猔種: 'squid -k rotate' ㏑硄盽穦癳 USR1 獺腹倒磅︽い squid 祘. 琘ㄇ猵 (ㄒㄏノ獶˙ I/O  Linux), USR1 獺腹穦ノㄤ, ┮ '-k rotate' 穦ㄏノㄤ獺腹. 眤程ㄏノ 'squid -k rotate' τぃ璶ㄏノ 'kill -USR1 <pid>'.
<p>
<b>岿粇癟ゅ</b>: 岿粇癟 HTML ゅ. 眤ㄏノ "mailto" URL 倒眤恨瞶, ┪硈挡眤舱麓呼.
<p>
璶ま眤岿粇癟, 眤ゲ斗糶岿粇癟絛セ郎 ( "error" ヘ魁いт). ヴ眤辨瞷 'err_html_txt' 瞷よ, 础 %L 絛セ郎い.
<p>
<b>癸–め狠参璸</b>: 狦眤辨闽超癸–め狠秈︽参璸, 叫砞﹚ "闽".
<p>
<b>ㄏノ X-锣癳-倒 夹繷</b>: 箇砞 '秨'. 狦Τ砞﹚, Squid 盢穦р眤╰参 IP 竚┪嘿 HTTP 璶―锣癳. 箇砞猵, ウ癬钩琌 HTTP 璶―锣癳, ㄒ:
<p>
<center>X-Forwarded-For: 192.1.2.3</center>
<p>
狦闽超硂, ウ盢跑Θ:
<p>
<center>X-Forwarded-For: unknown</center>
<p>
<b>魁 ICP 琩高</b>: 箇砞 ''. 狦砞﹚, ICP 琩高盢穦砆魁 access.log い. 狦眤 ICP 璽更讽蔼, 眤穦辨闽超硂硉矪瞶, ㄏ眔魁郎耕虏虫τだ猂.
<p>
<b>程钡铬臘计</b>: 箇砞 4. 狦Τㄏノ ICMP モ, 璶铬臘计硂计, 獽秈︽钡弄.
<p>
<b>玂癘拘砰ㄑゼㄓㄏノ</b>: 箇砞 '琌'. 狦砞﹚, Squid 盢穦玂ㄇ皌竚 (﹟ゼㄏノ) 癘拘砰ㄑゼㄓㄏノ. 狦眤╰参癘拘砰琌Τ, τ眤獺眤 malloc ㄧΑ畐耕 Squid ㄧΑ, 闽超硂.
<p>
<b>玂痙癘拘砰计秖</b>: 箇砞 '礚'. 狦砞﹚獶 0 计, Squiud 盢穦玂痙┮﹚癘拘砰计秖皌竚 (﹟ゼㄏノ) 癘拘砰. ┮Τ禬筁硂 free() 璶―穦パ眤 malloc ㄧΑ畐矪瞶. Squid ぃ穦箇皌竚ヴ癘拘砰, 琌玂ぃ莱砆睦癘拘砰. ┮盢硂计砞耕蔼琌, 羇ㄏ眤舱篈盢ㄏノ耕ぶ癘拘砰.
<p>
狦⊿Τ砞﹚ (箇砞) ┪砞﹚Θ 0, Squid 盢穦荷玂癘拘砰. 碞琌弧癸ノ玂痙癘拘砰计秖盢ぃ穦Τ.
<p>
<b>钡禫夹繷</b>: 箇砞 '场夹繷'. 硂匡兜侣 'http_anonumizer' 匡兜砞﹚狥﹁. 眤瞷﹚す砛疭﹚夹繷, ┪琌簿埃疭﹚夹繷.
<p>
ΤよΑㄏノ硂匡兜. 眤す砛﹚夹繷 (┶荡ㄤ); ┪┶荡疭﹚夹繷 (す砛ㄤ). 
<p>
<b>安ㄏノ瞶</b>: 箇砞 '礚'. 狦眤ㄏノ<b>钡筁夹繷</b>筁耾ㄏノ瞶竟夹繷, 硂ㄏ琘ㄇ呼狝竟┶荡眤璶―; 獽惠璶ㄏノ安ㄏノ瞶夹繷.
<p>
<b>HTTPD 硉诀</b>: 箇砞 '礚'. 狦眤辨盢 Squid 磅︽Θ HTTPD 硉竟, 砞﹚硂匡兜龟悔 HTTP 狝竟.
<p>
<b>HTTPD 硉硄癟梆</b>: 箇砞 '礚'. <b>HTTPD 硉诀┑砞﹚</b>, 讽眤盢 Squid 磅︽Θ HTTPD 硉竟, 眤ゲ斗砞﹚痷龟狝竟硄癟梆.
<p>
<b>HTTPD 硉籔瞶狝竟</b>: 箇砞 '闽'. 狦眤辨 Squid Τ肚参瞶狝竟は莱矗ㄑ HTTPD 硉, 砞﹚硂匡兜. 讽ㄏノ肚块瞶狝竟, 硂匡兜莱赣璶币笆.
<p>
<b>HTTPD 硉ㄏノ诀夹繷</b>: 箇砞 '闽'. HTTP/1.1 璶―诀夹繷, 硂琌 URL 诀嘿膀セ. Squid 竒パ琩癟硂夹繷τぃ HTTP 狝竟硉竟. 礛τ, Squid <b>ぃ穦</b> 浪琩诀夹繷计, ┮穦琌腨簗瑌. и某闽超硂匡兜埃獶眤絋﹚眤ヘ.
<p>
礛τ, 讽眤盢 Squid 肚块瞶狝竟, 眤穦惠璶币笆硂匡兜. 玥杠, 店览诀璶―诀夹繷盢ぃ穦砆タ盽е.

<hr>
   0707010006ee6d000081a40000000000000002000000013ac0389f000004a8000000200000000000000000000000000000002400000003reloc/squid/help/edit_ports.es.html   <header>Puertos y Trabajo en Red</header>

<b>Puerto Proxy</b>: Por defecto es 3128. Este valor dice en qu puerto escuchar tu servidor Squid por requerimientos http. Los navegadores cliente necesitar醤 ser configurados para conectarse al proxy en este puerto o la transparencia deber tambi閚 de ser configurada. <p>

<b>Puerto ICP</b>: El n鷐ero de puerto donde Squid env韆 y recibe requerimientos ICP hacia y desde cach閟 vecinas. Por defecto es 3130. Para desactivarlo usa el "0". Puede ser ignorado mediante la l韓ea de comando -u. <p>

<b>Direcciones TCP de Entrada</b>: Por defecto ninguna. Define el socket HTTP que acepta conexiones desde clientes y otras cach閟. <p>

<b>Direcciones TCP de Salida</b>: Por defecto es ninguna. Define el socket HTTP para conexiones realizadas a servidores remotos y a otras cach閟. <p>

<b>Direcciones UDP de Salida</b>: Por defecto es ninguna. Define el socket ICP que recibe paquetes de otras cach閟. <p>

<b>Direcciones UDP de Entrada</b>: Por defecto es ninguna. Define el socket para los paquetes ICP que se env韆n a otras cach閟. <p>

<b>B鷉er de recepci髇 TCP</b>: Medida del b鷉er TCP. Por defecto es el b鷉er de recepci髇 del SO. <p>

<hr>
0707010006ee6f000081a40000000000000002000000013ac0389f00000475000000200000000000000000000000000000002400000003reloc/squid/help/edit_ports.pl.html   <header>Porty i&nbsp;sie</header>

<b>Port proxy</b>: Domy秎nie 3128. Ta warto舵 okra秎a, na kt髍ym porcie
serwer Squid b阣zie nas硊chiwa zapyta http. Nale縴 skonfigurowa
przegl眃arki tak, aby 潮czy硑 si z&nbsp;proxy na tym porcie lub trzeba
b阣zie r體nie ustawi przezroczyste proxy. <p>

<b>Port ICP</b>: Domy秎nie 3130. Numer portu z&nbsp;kt髍ego Squid wysy砤
zapytania ICP do s眘iednich proxy i&nbsp;na kt髍ym odbiera takie zapytania
od nich. Aby wy潮czy wpisz "0". Ustawienie mo縠 by zast眕ione przez opcj
-u linii polece. <p>

<b>Przychodz眂y adres TCP</b>: Domy秎nie 縜den. Definiuje gniazdo HTTP,
kt髍e przyjmuje po潮czenia od klient體 i&nbsp;innych proxy. <p>

<b>Wychodz眂y adres TCP</b>: Domy秎nie 縜den. Definiuje gniazdo HTTP, dla
po潮cze ze zdalnymi serwerami i&nbsp;innymi proxy. <p>

<b>Wychodz眂y adres UDP</b>: Domy秎nie 縜den. Definiuje gniazdo ICP
odbieraj眂e pakiety od innych proxy. <p>

<b>Przychodz眂y adres UDP</b>: Domy秎nie 縜den. Definiuje gniazdo dla
pakiet體 ICP wysy砤nych do innych proxy. <p>

<b>Bufor odbiorczy TCP</b>: Rozmiar buforu TCP. Domy秎nie okre秎ony przez OS
bufor odbiorczy. <p>

<hr>
   0707010006ee70000081a40000000000000002000000013ac0389f00000481000000200000000000000000000000000000002400000003reloc/squid/help/edit_ports.sv.html   <header>Portar och n鋞verk</header>

<b>Proxy-port</b>: Standardv鋜det 鋜 3128. H鋜 anges den port som Squid-servern
ska lyssna efter http-f鰎fr錱ningar p. Klientbrowsers m錽te st鋖las in att
koppla upp sig mot en proxy p denna port, och/eller s m錽te Squid k鰎as
transparent.

<p><b>ICP-port</b>: Det portnummer som Squid skickar och tar emot
ICP-uppslagningar fr錸 n鋜liggande cacher p. Standardport 鋜 3130. F鰎 att
sl av detta anges "0". Variabeln kan ocks sl錽 ut av -u p kommandoraden.

<p><b>Utg錯nde TCP-adress</b>: Standardinst鋖lningen 鋜 ingen. Anger den
HTTP-socket som g鰎 uppkopplingar mot andra servrar och cacher.

<p><b>Inkommande TCP-adress</b>: Standardinst鋖lningen 鋜 ingen. Anger den
HTTP-socket som tar emot uppkopplingar fr錸 klienter och andra cacher.

<p><b>Utg錯nde UDP-adress</b>: Standardinst鋖lningen 鋜 ingen. Anger den
ICP-socket som tar emot paket fr錸 andra cacher.

<p><b>Inkommande UDP-adress</b>: Standardinst鋖lningen 鋜 ingen. Anger den
socket som skickar ICP-paket till andra cacher.

<p><b>TCP-mottagningsbuffer</b>: Storleken p TCP-buffern. Standardv鋜det 鋜
operativsystemets mottagningsbuffer.

<hr>

   0707010006ee71000081a40000000000000002000000013ac0389f000002d7000000200000000000000000000000000000002c00000003reloc/squid/help/edit_ports.zh_TW.Big5.html   <header>硄癟梆籔呼隔匡兜</header>

<b>瞶狝竟硄癟梆</b>: 箇砞 3128. 硂计琌眤 Squid 璶菏钮硄癟梆. め狠聅凝竟ゲ斗璶舱篈祘Αノ硂硄癟梆. <p>

<b>ICP 硄癟梆</b>: 箇砞 3130. 硂琌 Squid 钡Μ┪癳 ICP 璶―倒綟е┮ㄏノ硄癟梆. 砞﹚ 0 盢穦闽超硂. τ砆㏑匡兜 -u ┮ы. <p>

<b>秈 TCP </b>: 箇砞 '礚'. ﹚竡钡め狠┪ㄤе HTTP 础畒ㄓ方. <p>

<b>ゼ癳 TCP </b>: 箇砞 '礚'. ﹚竡璶硈钡环狠狝竟┪ㄤе HTTP 础畒ヘ夹. <p>

<b>秈 UDP </b>: 箇砞 '礚'. ﹚竡眖ㄤе钡 ICP ㄓ方. <p>

<b>癳 UDP </b>: 箇砞 '礚'. ﹚竡璶癳倒ㄤе ICP ヘ夹. <p>

<b>TCP 钡Μ絯侥跋</b>: TCP 絯侥跋. 箇砞穨╰参钡Μ絯侥跋. <p>

<hr>

 0707010006ee72000081a40000000000000002000000013ac0389f00000e4d000000200000000000000000000000000000002400000003reloc/squid/help/edit_progs.es.html   <header>Programas de Ayuda</header>

<b>Ancho de columna FTP</b>: Por defecto es 32. Pone el ancho de los listados ftp. Se debe poner para adaptarse al ancho del navegador est醤dar. Ponerlo muy peque駉 puede cortar nombres largos de archivo al navegar por sitios ftp.
<p>
<b>Login an髇imo FTP</b>: Por defecto es 'Squid@'. Si deseas que la clave de acceso an髇ima sea m醩 informativa (y activar el uso de servidores ftp de recogida), pon esto a algo razonable para tu dominio, como wwwusuario@enalg鷑lugar.red.<p>
 La raz髇 de que esto no tenga por defecto dominio es que el requerimiento puede realizarse en nombre de un usuario de cualquier dominio, dependiendo de c髆o se use la cach. Alg鷑 servidor ftp tambi閚 valida que la direcci髇 de correo sea v醠ida (por ejemplo perl.com).
<p>
<b>Programa DNS de Squid</b>: Por defecto es dnsserver. Especifica la localizaci髇 del ejecutable para el proceso dnslookup. El valor por defecto es un servidor de nombres de cach no-por-bloques que est instalado con Squid por defecto.
<p>
<b>N鷐ero de programas DNS</b>: Por defecto es 5. El n鷐ero de procesos lanzados para el servicio de b鷖queda de nombre de DNS. Para cach閟 muy cargadas en grandes servidores, deber韆s prob醔lemente incrementar este valor a, al menos, 10. El m醲imo es 32.
<p>
<b>A馻dir dominio a requerimientos</b>: Por defecto est desactivado. Norm醠mente el 'dnsserver' desactiva la opci髇 del resolutor RES_DEFNAMES (ve res_init(3)). Esto previene que las cach閟 dentro de una jerarqu韆 interpreten nombres de m醧uina de componentes simples loc醠mente. Para permitir que dnsserver maneje nombre de componentes simples, activa esta opci髇.
<p>
<b>Direcciones de servidor DNS</b>: Por defecto se utiliza el archivo 'resolv.conf'. Utiliza esto si deseas especificar una lista de servidores de nombre DNS (direcciones IP) para utilizar en vez de los datos en tu archivo '/etc/resolv.conf'.
<p>
<b>Programa de limpieza de cach</b>: Por defecto es 'unlinkd'. Especifica la localizaci髇 del ejecutable para el proceso de borrado de archivo. Esto puede no ser necesario si utilizas e/s as韓crona ya que es manejado por un hilo en algunas versiones.
<p>
<b>Program de sonido (ping) de Squid</b>: Por defecto es 'pinger'. Especifica la localizaci髇 del ejecutable para proceso de sonido de ping. Esto es s髄o 鷗il si has configurado Squid (durante la compilaci髇) con la opci髇 '--enable-icmp'.
<p>
<b>programa de redireccionamiento de Cliente</b>: Por defecto ninguno. Especifica la localizaci髇 del ejecutable para el redireccionador de URL. Ya que se puede realizar casi cualquier funci髇 no hay ninguna inclu韉a. Mira las Notas-de-Versi髇 para informaci髇 sobre c髆o escribir uno.
<p>
<b>N鷐ero de programas de redireccionamiento</b>: Por defecto es 5 si se configura un redireccionador. El n鷐ero de proceso de redireccionamiento a lanzar. Si arrancas demasiados pocos, Squid tendr que esperar para que ellos procesen un mont髇 de URLs, ralentizando el sistema. Si arrancas demasiados, utilizar醤 RAM y otros recursos del sistema.
<p>
<b>Programa de Autenticaci髇 de Cliente</b>: Por defecto ninguno. Especifica el comando para autenticadores externos. Un programa as, lee una l韓ea que contenga "nombre de usuario clave de acceso" y replica "OK" o "ERR" en un bucle sin fin. Si usas un autenticador, aseg鷕ate de tener 1 acl del tipo proxy_auth.<p>
Si deseas usar la autenticaci髇 tradicional de proxy, pon esta l韓ea a algo como /usr/bin/ncsa_auth /usr/etc/passwd. Asumiendo que ncsa_auth ha sido compilado e instalado en tu sistema.
<p>
<b>N鷐ero de programas de autenticaci髇</b>: Por defecto es 5 si se ha activado la autenticaci髇.

<hr>
   0707010006ee73000081a40000000000000002000000013ac0389f00000cb0000000200000000000000000000000000000002100000003reloc/squid/help/edit_progs.html  <header>Helper Programs</header>

<b>FTP column width</b>: Default is 32.  Sets the width of ftp listings. This should be set to fit in the width of a standard browser. Setting this too small can cut off long filenames when browsing ftp sites.
<p>
<b>Anon FTP login</b>: Default is 'Squid@'.  If you want the anonymous login password to be more informative (and enable the use of picky ftp servers), set this to something resonable for your domain, like wwwuser@somewhere.net.<p>
 The reason why this is domainless by default is that the request can be made on the behalf of a user in any domain, depending on how the cache is used. Some ftp server also validate that the email address is valid (for example perl.com).
<p>
<b>Squid DNS program</b>: Default is dnsserver.  Specify the location of the executable for dnslookup process.  The default is a non-blocking caching nameserver that is installed with Squid by default.
<p>
<b>Number of DNS programs</b>: Default is 5.  The number of processes spawned to service DNS name lookups. For heavily loaded caches on large servers, you should probably increase this value to at least 10.  The maximum is 32.
<p>
<b>Append domain to requests</b>: Default is off.  Normally the 'dnsserver' disables the RES_DEFNAMES resolver option (see res_init(3)).  This prevents caches in a hierarchy from interpreting single-component hostnames locally.  To allow dnsserver to handle single-component names, enable this option.
<p>
<b>DNS server addresses</b>: Default is to use the resolv.conf file.  Use this if you want to specify a list of DNS name servers (IP addresses) to use instead of those given in your /etc/resolv.conf file.
<p>
<b>Cache clearing program</b>: Default is 'unlinkd'.  Specify the location of the executable for file deletion process. This may not be needed if you are using async-io since it's handled by a thread in some versions.
<p>
<b>Squid ping program</b>: Defaults to 'pinger'.  Specify the location of the executable for the pinger process. This is only useful if you configured Squid (during compliation) with the '--enable-icmp' option.
<p>
<b>Custom redirect program</b>: Defaults to none.  Specify the location of the executable for the URL redirector. Since they can perform almost any function there isn't one included. See the Release-Notes for information on how to write one.
<p>
<b>Number of redirect programs</b>: Defaults to 5 if a redirector is configured.  The number of redirector processes to spawn. If you start too few Squid will have to wait for them to process a backlog of URLs, slowing it down. If you start too many they will use RAM and other system resources.
<p>
<b>Custom Authentication program</b>: Defaults to none.  Specify the command for the external authenticator.  Such a program reads a line containing "username password" and replies "OK" or "ERR" in an endless loop.  If you use an authenticator, make sure you have 1 acl of type proxy_auth.<p>
If you want to use the traditional proxy authentication, set this line to something like /usr/bin/ncsa_auth /usr/etc/passwd.  Assuming ncsa_auth has been compiled and installed on your system.
<p>
<b>Number of authentication programs</b>: Defaults to 5 if an authenticator has been enabled.

<hr>
0707010006ee74000081a40000000000000002000000013ac0389f00000e14000000200000000000000000000000000000002400000003reloc/squid/help/edit_progs.pl.html   <header>Programy pomocnicze</header>

<b>Szeroko舵 kolumny FTP</b>: Domy秎nie 32 znaki. Okre秎a szeroko舵
listowania FTP. To ustawienie powinno odpowiada szeroko禼i standardowej
przegl眃arki. Ustawienie zbyt ma砮j warto禼i mo縠 spowodowa obci阠ie
d硊gich nazw podczas przegl眃ania serwer體 ftp. <p> 

<b>Anonimowy login FTP</b>: Domy秎nie 'Squid@'. Je秎i chcesz, aby has硂 przy
logowaniu si Squida jako u縴tkownik 'anonymous' nios硂 wi阠ej informacji
(i&nbsp;umo縧iwi硂 korzystanie ze szczeg髄nie wybrednych serwer體 ftp),
ustaw tu co odpowiedniego dla twojej domeny, jak wwwuser@somewhere.net. <p>

Powodem, dla kt髍ego jest to domy秎nie pozbawione domeny jest, 縠by
zapytania mog硑 by wykonywane w&nbsp;imieniu u縴tkownika z&nbsp;dowolnej
domeny, u縴tkownik z&nbsp;kt髍ej korzysta z&nbsp;proxy. Niekt髍e serwery ftp
sprawdzaj r體nie poprawno舵 adresu pocztowego (na przyk砤d perl.com). <p>

<b>Program DNS Squida</b>: Domy秎nie 'dnsserver'. Okre秎a po硂縠nie programu
odpytuj眂ego DNS. Program domy秎ny jest buforuj眂ym serwerem DNS
instalowanym domy秎nie wraz ze Squidem. <p>

<b>Liczba program體 DNS</b>: Domy秎nie 5. Liczba proces體 potomnych
obs硊guj眂ych przeszukiwania DNS. Dla silnie obci笨onych proxy na du縴ch
serwerach prawdopodobnie powiniene zwi阫szy t warto舵 do co najmniej 10.
Warto禼i maksymaln jest 32. <p>

<b>Dodawa domen do zapyta</b>: Domy秎nie nie. Normalnie 'dnsserver'
wy潮cza opcj RES_DEFNAMES resolvera (patrz res_init(3)). Zapobiega to
interpretacji jednosk砤dnikowych nazw host體 lokalnie, przez proxy
w&nbsp;hierarchii. W潮czenie tej opcji umo縧iwia dnsserverowi obs硊giwa
jednosk砤dnikowe nazwy. <p>  

<b>Adresy serwer體 DNS</b>: Domy秎ne jest korzystanie z&nbsp;pliku
resolv.conf. Opcja ta umo縧iwia okre秎enie listy serwer體 DNS (ich adres體
IP), kt髍e b阣 wykorzystywane zamiast wymienionych w&nbsp;pliku
/etc/resolv.conf. <p>

<b>Program opr罂niaj眂y bufory cache</b>: Domy秎nie 'unlinkd'. Okre秎a
po硂縠nie programu kasuj眂ego pliki. Opcja ta mo縠 nie by potrzebna, je縠li
korzystasz z&nbsp;asynchronicznego wej禼ia/wyj禼ia, gdy w&nbsp;niekt髍ych
wersjach jest to obs硊giwane przez w眛ek Squida. <p>

<b>Program ping Squida</b>: Domy秎nie 'pinger'. Okre秎a po硂縠nie programu
pinguj眂ego. Jest u縴teczna jedynie, gdy Squid zosta skonfigurowany
(podczas kompilacji) z&nbsp;opcj '--enable-icmp'. <p>

<b>Wybrany program przekierowuj眂y</b>: Domy秎nie 縜den. Okre秎a po硂縠nie
programu przekierowuj眂ego URL-e. Nie za潮czono 縜dnego, gdy taki program
mo縠 spe硁ia prawie dowoln funkcj. Po informacje, jak taki program
napisa, zajrzyj do 'Release-Notes'. <p>

<b>Liczba program體 przekierowuj眂ych</b>: Domy秎nie 5, je秎i jakis program
przekierowuj眂y podano. Liczba potomnych program體 przekierowuj眂ych. Je秎i
uruchomisz ich zbyt ma硂 Squid b阣zie musia czeka na wst阷ne przetworzenie
przez nie URL-i, co go spowolni. Je秎i uruchomisz ich za du縪, zu縴j zbyt
du縪 RAM-u i&nbsp;innych zasob體 systemowych. <p>

<b>Wybrany program autoryzuj眂y</b>: Domy秎nie 縜den. Okre秎a zewn阾rzne
polecenie autoryzuj眂e. Taki program czyta lini postaci "nazwa_u縴tkownika
has硂" i&nbsp;odpowiada w&nbsp;niesko馽zono舵 "OK" lub "ERR". Je秎i u縴wasz
programu autoryzuj眂ego, upewnij si, 縠 masz jedn ACL typu proxy_auth. <p>

Jesli chcesz u縴wa tradycyjnej autoryzacji proxy, wpisz w&nbsp;tej linii
co, w&nbsp;rodzaju /usr/bin/ncsa_auth /usr/etc/passwd. Zak砤daj眂, 縠
ncsa_auth zosta skompilowany i&nbsp;zainstalowany w&nbsp;Twoim systemie.
<p>

<b>Liczba program體 autoryzuj眂ych</b>: Domy秎nie 5, je秎i jakis program,
autoryzuj眂y podano.

<hr>
0707010006ee75000081a40000000000000002000000013ac0389f00000d86000000200000000000000000000000000000002400000003reloc/squid/help/edit_progs.sv.html   <header>Hj鋖pprogram</header>

<b>FTP-kolumnbredd</b>: Standardv鋜det 鋜 32. Anger bredden p ftp-listningar.
V鋜det b鰎 s鋞tas s att det passar bredden p en vanlig browser. Om v鋜det
s鋞ts f鰎 l錱t kan l錸ga filnamn klippas n鋜 ftp-siter listas.

<p><b>Anonym FTP-inloggning</b>: Standardinst鋖lningen 鋜 'Squid@'. Om man vill
att l鰏enordet f鰎 anonym inloggning ska vara mer informativt (och m鰆ligg鰎a
anv鋘dning av petiga ftp-servrar) kan detta s鋞tas till n錱ot som verkar
rimligt f鰎 dom鋘en, t ex wwwperson@n錱onstans.net.

<p>Anledningen till att standardv鋜det inte har n錱on dom鋘 鋜 att
f鰎fr錱ningen kan g鰎as f鰎 en anv鋘dare under vilken dom鋘 som helst, beroende
p hur cachen anv鋘ds. En del ftp-servrar kontrollerar ocks att e-postadressen
finns (exempelvis perl.com).

<p><b>Squid DNS-program</b>: Standardinst鋖lningen 鋜 dnsserver. Ange var
det k鰎bara programmet finns f鰎 dnslookup-processen. Standarden 鋜 en
icke-blockerande, cachande namnserver som installerats med Squid.

<p><b>Antal DNS-program</b>: Standardv鋜det 鋜 5. Antalet processer som
startas f鰎 att betj鋘a DNS-namnuppslagningar. F鰎 tungt belastade cacher p
stora servrar b鰎 detta nog 鰇as till minst 10. Maximum 鋜 32.

<p><b>謕pna dom鋘 f鰎 f鰎fr錱ningar</b>: Standardinst鋖lningen 鋜 'av'.
Vanligtvis sl錼 'dnsserver' av inst鋖lningen RES_DEFNAMES-uppslagning (se
res_init(3)). Detta g鰎 att hierarkiska cacher inte kan tolka enkomponentsnamn
lokalt. Sl p denna inst鋖lning f鰎 att dnsserver ska kunna hantera
enkomponentsnamn.

<p><b>DNS-serveradresser</b>: Standardinst鋖lningen 鋜 att anv鋘da filen
resolv.conf . Anv鋘d denna inst鋖lning f鰎 att ange en lista 鰒er
DNS-namnservrar (IP-adresser) som ska anv鋘das ist鋖let f鰎 dem som angivits
i filen /etc/resolv.conf .

<p><b>Cache-rensingsprogram</b>: Standardinst鋖lningen 鋜 'unlinkd'. Ange
var det k鰎bara programmet f鰎 filraderingsprocessen finns. Detta kanske
inte beh鰒s om async-io anv鋘ds eftersom det anv鋘der tr錮ar i en del
versioner.

<p><b>Squid ping-program</b>: Standardinst鋖lningen 鋜 'pinger'. Ange var
det k鰎bara programmet f鰎 pinger-processen finns. Detta kan endast anv鋘das
om Squid kompilerades med flaggan '--enable-icmp' .

<p><b>Eget omdirigeringsprogram</b>: Standardinst鋖lningen 鋜 inget. Ange
var det k鰎bara programmet f鰎 URL-omdirigering finns. Eftersom detta kan
inbegripa ungef鋜 vilken funktion som helst finns det inget i detta paket.
Se release-anteckningarna f鰎 mer information om hur man skriver ett.

<p><b>Antal omdirigeringsprogram</b>: Standardv鋜det 鋜 5 om ett
omdirigeringsprogram angivits. Detta anger antalet omdirigeringsprocesser som
kan startas. Om f鰎 f startas kommer Squid att f v鋘ta tills de har kommit
igenom en massa URL:er, vilket sl鯽r ned det. Om f鰎 m錸ga startas kommer de
att i on鰀an ta upp RAM och andra systemresurser.

<p><b>Eget autentiseringsprogram</b>: Standardinst鋖lningen 鋜 inget. Ange
ett kommando f鰎 extern autentiserare. Ett s錮ant program l鋝er en rad som
inneh錶ler "anv鋘darnamn l鰏enord" och svarar "OK" eller "ERR" i en loop utan
slut. Se till att ha en 錿komstlista av typen proxy_auth om en autentiserare
ska anv鋘das.

<p>Om vanlig proxy-autentisering ska anv鋘das ska man ange n錱ot i stil med
/usr/bin/ncsa_auth /usr/etc/passwd h鋜, under f鰎uts鋞tning att ncsa_auth
har kompilerats och installerats p systemet.

<p><b>Antal autentiseringsprogram</b>: Standardv鋜det 鋜 5 om en autentiserare
slagits p.

<hr>
  0707010006ee76000081a40000000000000002000000013ac0389f00000837000000200000000000000000000000000000002c00000003reloc/squid/help/edit_progs.zh_TW.Big5.html   <header>徊祘Α</header>

<b>FTP 逆糴</b>: 箇砞 32. 砞﹚ FTP 菏钮糴. 硂莱赣璶籔夹非聅凝竟砞﹚. 砞﹚び盢穦ㄏ聅凝 FTP 郎砆掉耞.
<p>
<b>拔 FTP 祅</b>: 箇砞 'Squid@'. 狦眤辨拔祅盞絏タ砏 (ㄏノ珼ㄏノ盞絏 FTP 狝竟), 盢硂砞﹚Θは莱眤呼办, ㄒ wwwuser@somewhere.net.<p>
 
箇砞ㄏノ礚呼办琌は莱ヴ呼办, ㄌ沮ㄏノ硂е. Τㄇ FTP 狝竟璶―筿秎ン琌Τ (ㄒ perl.com).
<p>
<b>Squid DNS 祘Α</b>: 箇砞 dnsserver. 眤硂娩﹚ㄤ DNS 琩高祘磅︽郎. 箇砞琌ぃノе嘿狝竟, τ籔砞籔 Squid 癬杆.
<p>
<b>DNS 祘Α计秖</b>: 箇砞 5. 硂ㄏ璴ネ DNS 嘿琩高狝叭祘计秖. 癸狝竟蔼璽更еτē, 眤莱赣璶糤硂计ぶ 10. 程 32.
<p>
<b>糤呼办璶―</b>: 箇砞 '闽'. 猵, dnsserver 穦闽超 RES_DEFNAMES 秆猂竟匡兜 (把σ res_init(3)). 硂ňゎеセ狠虫诀嘿. 璶す砛 dnsserver 矪瞶虫诀嘿, 币笆硂匡兜.
<p>
<b>DNS 狝竟</b>: 箇砞ㄏノ resolv.conf 砞﹚. 狦眤稱璶﹚ DNS 嘿狝癬 (IP ), τぃㄏノ resolv.conf 砞﹚惠璶砞﹚.
<p>
<b>睲埃е祘Α</b>: 箇砞 'unlinkd'. ﹚倒郎埃祘磅︽郎. 讽眤ㄏノ獶˙ I/O 硂盢ぃ砆惠璶, ウ琌砆ㄤ祘Α┮矪瞶.
<p>
<b>Squid ping 祘Α</b>: 箇砞 'pinger'. ﹚ ping 祘磅︽郎. 硂穦眤絪亩 Squid 晟﹚ '--enable-icmp' 穦Τノ.
<p>
<b>璹旧祘Α</b>: 箇砞 '礚'. ﹚ URL 旧竟磅︽郎. 硂玻ネ碭┮Τゼ, 浪跌 Release-Notes 眔糶戈癟.
<p>
<b>旧祘Α计秖</b>: 箇砞 5. 硂琌璶璴ネ旧祘计秖. 狦眤砞﹚びぶ, 玥眤ゲ斗璶单碞Τ磅︽Ч拨, ┮穦硉; τ狦眤币笆び, 硂盢穦ノ癘拘砰籔ㄤ╰参戈方.
<p>
<b>璹粄靡祘Α</b>: 箇砞 '礚'. ﹚场粄靡祘Α. 硂妓祘Α琌ノ弄 嘿/盞絏 郎, 莱 タ絋/岿粇. 狦ㄏノ粄靡祘Α, 叫絋﹚眤Τ porxy_auth 摸 ACL.<p>
狦眤璶ㄏノ肚参瞶狝竟粄靡, 盢硂︽砞﹚Θ钩琌 /usr/bin/ncsa_auth /usr/etc/passwd 砞﹚. (安砞眤Τ杆 ncsa_auth 眤╰参).
<p>
<b>粄靡祘Α计秖</b>: 箇砞 5, 狦Τ币笆粄靡.

<hr>
 0707010006ee77000081a40000000000000002000000013ac0389f00000621000000200000000000000000000000000000001f00000003reloc/squid/help/intro.es.html    <header>Configuraci髇 de Squid</header>

<h3>Introducci髇 a Squid</h3>
Squid es un demonio servidor proxy de cach de web compl閠amente caracterizado. Squid permite que tu servidor salve copias locales de distantes objetos web. Cuando estos objetos son accedidos de nuevo por alguien de la red local, los objetos se cargar醤 m醩 r醦ido y no consumir醤 m醩 ancho de banda recogiendo el objeto otra vez del servidor original. Esto puede producir alivio en redes muy concurridas y proveer de un entorno de red m醩 responsable, sobre todo. <p>

Otro beneficio de usar Squid es del de los controles de acceso. Squid provee de capacidades extensivas para acceso por bloques a ciertos sitios, usuarios, redes, contenido de tipos de datos, etc... Squid puede operar en modo transparente, modo proxy tradicional y proxy inverso (acelerador httpd). <p>

<h3>El M骴ulo Squid</h3>
La p醙ina principal de este m骴ulo muestra una tabla de iconos, cada uno para configurar aspectos de Squid. Al ser configurado Squid por primera vez, todos los valores ser醤 puestos a sus valores por defecto. Para ver cual son, s韒plemente refi閞ete a la p醙ina de ayuda para cada p醙ina de configuraci髇.
<p>
La mayor韆 de las p醙ina de ayuda para este m骴ulo fueron estra韉as del archivo de configuraci髇 por defecto 'squid.conf' inclu韉o en cada instalaci髇 de Squid. Se puede hallar m醩 informaci髇 en <a href="http://www.squid-cache.org" target="Reference">La P醙ina Hogar de Squid</a>.
<p>
<hr>
Por favor, informa de cualquier incorrecci髇 a <a href="mailto:joe@swelltech.com">Joe Cooper</a>.

   0707010006ee78000081a40000000000000002000000013ac0389f00000597000000200000000000000000000000000000001c00000003reloc/squid/help/intro.html   <header>Squid Configuration</header>

<h3>Introduction to Squid</h3>
Squid is a full featured web caching proxy server daemon.  Squid allows your server to save local copies of distant web objects.  When these objects are accessed again by anyone on the local network, the objects will load faster and will not consume more bandwidth fetching the object again from the origin server.  This can relieve strain on crowded networks and provide a more responsive network environment overall. <p>

Another benefit of using Squid, is that of access controls.  Squid provides extensive capabilities for blocking access to certain sites, users, networks, types of data content, etc.  Squid can operate in transparent mode, traditional proxy mode, and reverse proxy (httpd accelerator) mode. <p>

<h3>The Squid Module</h3>
The main page of this module displays a table of icons, each for configuring specific aspects of Squid.  When first configuring Squid, all values will be set to their defaults.  To see what those defaults are, simply refer to the help page for each configuration page.
<p>
The majority of the help pages for this module were extracted from the default squid.conf file included in every installation of Squid.  More information can be found at <a href="http://www.squid-cache.org" target="Reference">The Squid Homepage</a>.
<p>
<hr>
Please report any corrections to <a href="mailto:joe@swelltech.com">Joe Cooper</a>.

 0707010006ee79000081a40000000000000002000000013ac0389f00000643000000200000000000000000000000000000001f00000003reloc/squid/help/intro.pl.html    <header>Konfiguracja Squida</header>

<h3>Wprowadzenie do Squida</h3>
Squid jest buforuj眂ym serwerem proxy WWW o&nbsp;pe硁ych mo縧iwo禼iach.
Squid umo縧iowia przechowywanie na Twoim serwerze lokalnych kopii odleg硑ch
obiekt體 WWW. Podczas ponownego dost阷u do tych obiekt體 przez kogokolwiek
w&nbsp;lokalnej sieci zostan one za砤dowane szybciej i&nbsp;nie spowoduje
zu縴cia pasma na ponowne sprowadzenie obiektu z&nbsp;pierwotnego serwera.
Mo縠 to odci笨y zat硂czone sieci i&nbsp;zapewni skr骳enie czasu odpowiedzi 
og蟪u 秗odowiska sieciowego. <p>

Inn korzy禼i z&nbsp;u縴wania Squida jest kontrola dost阷u. Squid zapewnia
szerokie mo縧iwo禼i blokowania dost阷u do pewnych miejsc, dla pewnych
u縴tkownik體, sieci, rodzaj體 transmitowanych danych, itd. Squid mo縠
pracowa w&nbsp;trybach: przezroczystym, jako tradycyjne proxy oraz jako
odwrotne proxy (akcelerator httpd). <p>

<h3>Modu Squida</h3> 
G丑wna strona tego modu硊 ukazuje tablic ikon, ka縟a s硊勘ca do
konfiguracji okre秎onego ustawienia Squida. Podczas pierwszej konfiguracji
Squida wszystkim parametrom zostan nadane warto禼i domy秎ne. Aby zobaczy,
jakie s te warto禼i domy秎ne, po prostu odwo砤j si do strony pomocy
odowiedniej dla danej strony konfiguracji. <p>

Wi阫szo舵 stron pomocy dla tego modu硊 zosta砤 zaczerpni阾a
z&nbsp;domy秎nego pliku squid.conf, zawartego w&nbsp;ka縟ej instalacji
Squida. Wi阠ej informacji mo縩a znale兼 na
<a href="http://www.squid-cache.org" target="Reference">stronie domowej
Squida</a>. <p>
<hr>

Prosz sygnalizowa wszystkie poprawki do
<a href="mailto:joe@swelltech.com">Joe Coopera</a>.
 0707010006ee7a000081a40000000000000002000000013ac0389f00000636000000200000000000000000000000000000001f00000003reloc/squid/help/intro.sv.html    <header>Squid-inst鋖lningar</header>

<h3>Introduktion till Squid</h3>
Squid 鋜 en cachande proxy-webserverdemon med alla funktioner. Med Squid kan
servern spara lokala kopior p web-objekt som h鋗tats fr錸 andra servrar.
N鋝ta g錸g n錱on p det lokala n鋞verket vill h鋗ta ett s錮ant objekt h鋗tas
det fr錸 cachen, vilket g鰎 att det g錼 mycket fortare att ladda ned och
kommer inte att ta upp s mycket bandbredd f鰎 att h鋗ta samma objekt igen
fr錸 ursprungsservern. Detta kan l鋞ta belastningen f鰎 n鋞verk med m錸ga
anv鋘dare och 鰒erlag ge snabbare svarstider.

<p>En annan f鰎del med att anv鋘da Squid 鋜 att det m鰆ligg鰎 錿komstkontroll.
Squid medger omfattande m鰆ligheter att blockera 錿komst f鰎 vissa siter,
anv鋘dare, n鋞verk, typ av datainneh錶l osv. Squid kan k鰎as i transparent mod,
traditionell proxy-mod och omv鋘d proxy mod (httpd-accelerator).

<h3>Squid-modulen</h3>
Huvudsidan f鰎 denna modul inneh錶ler en m鋘gd ikoner som var och en h鰎 till
inst鋖lningar f鰎 en viss del av Squid. F鰎sta g錸gen som inst鋖lningar f鰎
Squid g鰎s kommer alla variabler att ha sina standardv鋜den. G till respektive
hj鋖psida f鰎 att f se dessa standardv鋜den.

<p>De flesta hj鋖psidor f鰎 denna modul 鋜 utdrag ur standardfilen squid.conf
som finns med varje Squid-installation. Mer information finns p
<a href="http://www.squid-cache.org" target="Reference">Squids hemsida</a>.

<hr>
Eventuella buggrapporter skickas till <a href="mailto:joe@swelltech.com">Joe Cooper</a>.
Felrapporter f鰎 de svenska sidorna skickas till <a href="mailto:lisa@cendio.se">Lisa Hallingstr鰉</a>.

  0707010006ee7b000081a40000000000000002000000013ac0389f000003f9000000200000000000000000000000000000002700000003reloc/squid/help/intro.zh_TW.Big5.html    <header>Squid 舱篈</header>

<h3>Squid 虏ざ</h3>
Squid 琌呼е瞶狝竟臔祘Α. Squid 琵眤狝竟盢环狠呼ン纗セ狠; ヴセ狠呼隔ㄏノ璶ン, 硂ㄇン钡パセ狠矗ㄑ, τぃ惠璶Ω禣繵糴眖﹍诀更. 硂嘿產呼隔吏挂. <p>

ㄏノ Squid 痲矪北. Squid 矗ㄑΤ北疭﹚, ㄏノ, 呼隔, 戈ず甧摸单单. Squid 磅︽肚块家Α, 肚参瞶狝家Α籔 HTTPD 硉竟家Α. <p>

<h3>Squid 家舱</h3>
硂家舱璶礶陪ボ╰瓜ボ, –常砞﹚疭﹚ Squid 场だ. 材Ω舱篈 Squid , ┮Τ计常穦砆砞Θ箇砞. 璶浪跌匡兜箇砞, 璶把σ–舱篈弧.
<p>
硂家舱璶弧琌ㄓ箇砞 squid.conf 郎, – Squid 甅ンぇい. 戈癟 <a href="http://www.squid-cache.org" target="Reference">The Squid Homepage</a> т.
<p>
<hr>
叫厨ヴ岿粇倒 <a href="mailto:joe@swelltech.com">Joe Cooper</a>; 癸陆亩岿粇叫厨倒 <a href="mailto:shyue@sonoma.com.tw">Jing-Jong Shyue</a>.

   0707010000eb94000081e40000000000000002000000013ac0389e000007a8000000200000000000000000000000000000001c00000003reloc/squid/http_access.cgi   #!/usr/local/bin/perl
# http_access.cgi
# A form for editing or creating a proxy access restriction

require './squid-lib.pl';
&ReadParse();
$conf = &get_config();

if (!defined($in{'index'})) {
	&header($text{'ahttp_header'}, "",
		undef, 0, 0, 0, &restart_button());
	}
else {
	&header($text{'ahttp_header1'}, "",
		undef, 0, 0, 0, &restart_button());
	@http = @{$conf->[$in{'index'}]->{'values'}};
	}
print "<hr>\n";

print "<form action=http_access_save.cgi>\n";
if (@http) {
	print "<input type=hidden name=index value=$in{'index'}>\n";
	}
print "<table border>\n";
print "<tr $tb> <td><b>$text{'ahttp_pr'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'ahttp_a'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=action value=allow %s> $text{'ahttp_a1'}\n",
	$http[0] eq "allow" ? "checked" : "";
printf "<input type=radio name=action value=deny %s> $text{'ahttp_d'}</td> </tr>\n",
	$http[0] eq "allow" ? "" : "checked";

for($i=1; $i<@http; $i++) { $match{$http[$i]}++; }
@acls = grep { !$done{$_->{'values'}->[0]}++ } &find_config("acl", $conf);
$r = @acls; $r = 10 if ($r > 10);

print "<tr> <td valign=top><b>$text{'ahttp_ma'}</b></td>\n";
print "<td valign=top><select name=yes multiple size=$r width=100>\n";
foreach $a (@acls) {
	printf "<option %s>%s\n",
		$match{$a->{'values'}->[0]} ? "selected" : "",
		$a->{'values'}->[0];
	}
print "</select></td>\n";

print "<td valign=top><b>$text{'ahttp_dma'}</b></td>\n";
print "<td valign=top><select name=no multiple size=$r width=100>\n";
foreach $a (@acls) {
	printf "<option %s>%s\n",
		$match{"!$a->{'values'}->[0]"} ? "selected" : "",
		$a->{'values'}->[0];
	}
print "</select></td> </tr>\n";

print "</table></td></tr></table><br>\n";
print "<input type=submit value=$text{'buttsave'}>\n";
if (@http) { print "<input type=submit value=$text{'buttdel'} name=delete>\n"; }
print "</form>\n";

print "<hr>\n";
&footer("edit_acl.cgi", $text{'ahttp_return'});

0707010000eb95000081e40000000000000002000000013ac0389e000003d2000000200000000000000000000000000000002100000003reloc/squid/http_access_save.cgi  #!/usr/local/bin/perl
# http_access_save.cgi
# Save or delete a proxy restriction

require './squid-lib.pl';
&ReadParse();
&lock_file($config{'squid_conf'});
$conf = &get_config();
$whatfailed = $text{'sahttp_ftspr'};

@https = &find_config("http_access", $conf);
if (defined($in{'index'})) {
	$http = $conf->[$in{'index'}];
	}
if ($in{'delete'}) {
	# delete this restriction
	splice(@https, &indexof($http, @https), 1);
	}
else {
	# update or create
	@vals = ( $in{'action'} );
	foreach $y (split(/\0/, $in{'yes'})) { push(@vals, $y); }
	foreach $n (split(/\0/, $in{'no'})) { push(@vals, "!$n"); }
	$newhttp = { 'name' => 'http_access', 'values' => \@vals };
	if ($http) { splice(@https, &indexof($http, @https), 1, $newhttp); }
	else { push(@https, $newhttp); }
	}
&save_directive($conf, "http_access", \@https);
&flush_file_lines();
&unlock_file($config{'squid_conf'});
&webmin_log($in{'delete'} ? 'delete' : $http ? 'modify' : 'create', "http");
&redirect("edit_acl.cgi");

  0707010000eb96000081e40000000000000002000000013ac0389e00000758000000200000000000000000000000000000001b00000003reloc/squid/icp_access.cgi    #!/usr/local/bin/perl
# icp_access.cgi
# A form for editing or creating an ICP access restriction

require './squid-lib.pl';
&ReadParse();
$conf = &get_config();

if (!defined($in{'index'})) {
	&header($text{'aicp_header'}, "",
		undef, 0, 0, 0, &restart_button());
	}
else {
	&header($text{'aicp_header1'}, "",
		undef, 0, 0, 0, &restart_button());
	@icp = @{$conf->[$in{'index'}]->{'values'}};
	}
print "<hr>\n";

print "<form action=icp_access_save.cgi>\n";
if (@icp) {
	print "<input type=hidden name=index value=$in{'index'}>\n";
	}
print "<table border>\n";
print "<tr $tb> <td><b>$text{'aicp_ir'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'aicp_a'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=action value=allow %s> $text{'aicp_a1'}\n",
	$icp[0] eq "allow" ? "checked" : "";
printf "<input type=radio name=action value=deny %s> $text{'aicp_d'}</td> </tr>\n",
	$icp[0] eq "allow" ? "" : "checked";

for($i=1; $i<@icp; $i++) { $match{$icp[$i]}++; }
@acls = &find_config("acl", $conf);
$r = @acls; $r = 10 if ($r > 10);

print "<tr> <td valign=top><b>$text{'aicp_ma'}</b></td>\n";
print "<td><select name=yes multiple rows=$r width=100>\n";
foreach $a (@acls) {
	printf "<option %s>%s\n",
		$match{$a->{'values'}->[0]} ? "selected" : "",
		$a->{'values'}->[0];
	}
print "</select></td>\n";

print "<td valign=top><b>$text{'aicp_dma'}</b></td>\n";
print "<td><select name=no multiple rows=$r width=100>\n";
foreach $a (@acls) {
	printf "<option %s>%s\n",
		$match{"!$a->{'values'}->[0]"} ? "selected" : "",
		$a->{'values'}->[0];
	}
print "</select></td> </tr>\n";

print "</table></td></tr></table><br>\n";
print "<input type=submit value=$text{'buttsave'}>\n";
if (@icp) { print "<input type=submit value=$text{'buttdel'} name=delete>\n"; }
print "</form>\n";

print "<hr>\n";
&footer("edit_acl.cgi", $text{'aicp_return'});

0707010000eb97000081e40000000000000002000000013ac0389e000003bd000000200000000000000000000000000000002000000003reloc/squid/icp_access_save.cgi   #!/usr/local/bin/perl
# icp_access_save.cgi
# Save or delete a proxy restriction

require './squid-lib.pl';
&ReadParse();
&lock_file($config{'squid_conf'});
$conf = &get_config();
$whatfailed = $text{'saicp_ftsir'};

@icps = &find_config("icp_access", $conf);
if (defined($in{'index'})) {
	$icp = $conf->[$in{'index'}];
	}
if ($in{'delete'}) {
	# delete this restriction
	splice(@icps, &indexof($icp, @icps), 1);
	}
else {
	# update or create
	@vals = ( $in{'action'} );
	foreach $y (split(/\0/, $in{'yes'})) { push(@vals, $y); }
	foreach $n (split(/\0/, $in{'no'})) { push(@vals, "!$n"); }
	$newicp = { 'name' => 'icp_access', 'values' => \@vals };
	if ($icp) { splice(@icps, &indexof($icp, @icps), 1, $newicp); }
	else { push(@icps, $newicp); }
	}
&save_directive($conf, "icp_access", \@icps);
&flush_file_lines();
&unlock_file($config{'squid_conf'});
&webmin_log($in{'delete'} ? 'delete' : $icp ? 'modify' : 'create', "icp");
&redirect("edit_acl.cgi");

   070701000703ba000041ed0000000000000001000000023ac03c8300000000000000200000000000000000000000000000001300000003reloc/squid/images    070701000703bb000081a40000000000000002000000013ac0389e00000113000000200000000000000000000000000000001b00000003reloc/squid/images/acl.gif    GIF89a0 0   烫虣櫃fff            !    ,    0 0  很0蔍8死{讬'8yB俫B]z秮:渕}鲯嚨炩!鰧粻Ya倻MJ	酼礧捌 gu@鬡U?賍w咵/羆巷}y剕&z剢巻 憭弾崈棌晧殩瀧ぅⅲ洜~挱疁埓捣祲悎恫【聥炼拦贸皺橇幣派维泄氏斎已虆乇趰*徭乳 庄飶B蝮趱鲼	 ; 070701000703bc000081a40000000000000002000000013ac0389e000000c8000000200000000000000000000000000000001d00000003reloc/squid/images/admin.gif  GIF89a0 0   烫蘤ff   !    ,    0 0  檮彥隧斒┴\酂[聛犡屾2隁y0礼C跲浿z胹鶁嬥"Gt蓭盲怩l:IP@g氷l柫糭	9盏r槲裸6【沩z+_熥7'8XHE(胤鳪'蚋&%鵈iYiy蒕y竐笝勹)u梲萙*妕h:kQ  ;070701000703bd000081a40000000000000002000000013ac0389e00000186000000200000000000000000000000000000001c00000003reloc/squid/images/auth.gif   GIF89a0 0      fff烫!    ,    0 0  ⻊彥隧&X
厧躲OG~J:"ㄘ芫涄-`愓坶8A醡5榈宐啽U(姖旿秺nRfF6#8_砪_踂TfJ力7@q坵 g(鰓@s羧w枛鴓t贅y'篱偃&h皯$宸:[v儤踄囀餣:瑳眤覉4琫滒!都鸆槣J扲e工骰M躪M編-{巆))㖞~J蚙_m 進u&)骔僪x,0麌/犅hN`瀀馺<朻LLn|t罧婽聶e%=螙塣嬜瓚'Y<喪張⑵- 萒Po:昮U4>燜佃幈d藲[  ;  070701000703be000081a40000000000000002000000013ac0389e0000010a000000200000000000000000000000000000001d00000003reloc/squid/images/cache.gif  GIF89a0 0   烫虣櫃fff            !    ,    0 0  很0蔍8帅 貚Nf炴FRA杈檬爵薘[脁倔=堫K膼袢&桳厯峃U鎢E〧倎xL./w
j塯I蹐@浅糊9痏鈘t儎1[5x厡噣a}{Tz杦>棟af倊i牗毆9'_AhGll窰煢揦┕悩4崊徖 薂勇\目溋泑邽拶い墉嫥蒕	 ;  070701000703bf000081a40000000000000002000000013ac0389e00000100000000200000000000000000000000000000002000000003reloc/squid/images/cachemgr.gif   GIF89a0 0      櫃櫶烫fff         !    ,    0 0  很0禓]xWe	7^誈&毷怹
~4l焑K烁杰罋#r炌(G郥P鞊j卹経6kg縞s麝e［\﹟N?n秫紐锨亗儎厗}墛Kq+敃枟槞枃湞瀫姟{寙慛毆珬煯⒊w/#%摤綒崩翢茨秳窪V咎蟯蜄i視岹(謹刳锈沅L	 ;070701000703c0000081a40000000000000002000000013ac0389e0000042d000000200000000000000000000000000000002100000003reloc/squid/images/calamaris.gif  GIF89a0 0   CF	 	>@  7:;> 58鳧G"4779>A锧C.169<?#&-0**''^`,/36),瘃((2244釺T))	OO  
9<膻  銶M?B	PP88RR  錕K<<--]_*-痤//轣^$'!暨[[鍴H%)锧@=?犍
CC鐱B	"";;137:+.!豇 $筢VV44釹S..00&&BE!Made with GIMP !   ,    0 0  䜣們剠唶垑妺實帄 彋		牏。
泲暢	獓暋慷背忱粌
Γ兢	‘ !"ァ#$%侺淍(	 汝譎T俋簇溻 ,J銦2T9埰/垐j紓E绕峂8lk]籆:f磧G廏>~z
2凥""E$奻男憉	4JⅳGL5hb1GJ闕#(釬$錡)bk4E袙*V]仌唳)Q)勫询,"擱\H媍PEh嬨P讲舮钳B偌WP?'養h 钉}亵)乯呺J誗& RMI桜/Ｅ6署	>9郇甿C揋4Jm!琖4& 瞜!8H" (鄝  S!0PW!9匯泴T;uH俄I廐HHo$卵 d羟#3(圛丁勅鴶褖嵏袦 f斅_"ghL鋱	聫}$4z)ik|旽_1$皳掵l@B1CD格F榩 鴛讏劻襽6峱S,啜R20鉒褉2蚘5(>Y)蕩g辈遥bE*鐀禾7Y$j`i"慔"|j戛 ;   070701000703c1000081a40000000000000002000000013ac0389e000000ef000000200000000000000000000000000000001d00000003reloc/squid/images/clear.gif  GIF89a0 0      !   ,    0 0  茖彥隧ZG非V^2鍢d瀶~S隞#訍#8鲦航伫N&欙犼旵i<跇P1f齟玏爜Jmy逛芨靔哠製缣逗-瘌7:{拰s^_洋$h椂Ⅶ坵儤确y「Yy('	豀爪Y踬拐W'G鑈筕jZ&稍旰鶚獄蒛k;厮玵u[+鼖宩\<絣2L=m=~Q  ; 070701000703c2000081a40000000000000002000000013ac0389e0000006c000000200000000000000000000000000000001c00000003reloc/squid/images/down.gif   GIF89a    哪膔rr   !Made with GIMP !
  ,       +湉汙"I砹U迟i滣eJ僢A僆m.杯薲N  ;070701000703c3000081a40000000000000002000000013ac0389e00000049000000200000000000000000000000000000001b00000003reloc/squid/images/gap.gif    GIF89a    !Made with GIMP !
   ,       剰┧蹿嫵> ;   070701000703c4000081a40000000000000002000000013ac0389e00000154000000200000000000000000000000000000001c00000003reloc/squid/images/icon.gif   GIF89a0 0   櫃檉ff烫           !    ,    0 0  很0起
貍,搷狯u枮 茶酴榫1D浀帑杰:n暎癏,m/D4蛯)S娥砭伴钌汾姦)覷鸐:&愤踓o俵wz<{)H$}J哯y|?^.抌k墄巹摑~V6優2n|y畢毐篺穒憯v#哩毎~槵##醒c9o柂 刭a噘╝涙谚5涍酦侑瘃?篦鴭+麝+n爣' L$\/BlM`Bc,^褷S#/}M6@2F菛0$  ;070701000703c5000081a40000000000000002000000013ac0389e00000103000000200000000000000000000000000000001b00000003reloc/squid/images/icp.gif    GIF89a0 0   烫虣櫃fff!    ,    0 0  詣彥隧+貃)~Gc]&殜琩建:C乮卑1v嚀'瑃`盽波0唨O1h汾隄-2elv犛-qi縎WiU7籁非g╭刪踔3527关═I)!ㄧij)觬(Z醩`歸*懪5[苏;蝴爸\(<L5閍嗘5fd帱l咆远=u嵀绞濇畕C=鬲K媖V  ; 070701000703c6000081a40000000000000002000000013ac0389e000001d6000000200000000000000000000000000000001c00000003reloc/squid/images/logs.gif   GIF89a0 0   櫃檉ff烫            !   ,    0 0  㧏	18[汹麪h$xㄣ卄Yv芎0諍'z7ZDg;3IQ墪s4q愙(ザi+C惠c
bo]韪7Lg\y疓/鷒$zhwak唦#:僫N"妏寍墤巃y敄"槒D慶w嶥6廳V:猺6X圥矋~瓭櫒 海朅秞皾杭絅l9萴
材灯.,VI,汜Y謉T餭X>鎚遺o)VKA旺鏝*W歶7綺>1菩TA#*=冟湬酕Wwh,4駧G捙B塍缪J嫯4籏5杉僤憯=Z瀌鰘4"'.mM3櫹檱j厷7區蔶掙>D'4%#r臛_e8J2親g:窘86c%N堬T 馵霎粤幝S掆
i0;o 赦 錌嬑燙M鶥 ;  070701000703c7000081a40000000000000002000000013ac0389e000000fb000000200000000000000000000000000000001b00000003reloc/squid/images/mem.gif    GIF89a0 0      fff烫!    ,    0 0  虅彥隧蹿嫵Na v^枺T︹扫.聙!嫽:{?衟4鏀荕Ri劸4蟖慩 俤蠗祃蟧.LW脱@S缩~础睯鯊~稉闭E7亲w笚騐崆撒((CiGh鰲棍9g楪蔉竫i飞蓶鏳)*@+;奒炮;員3z槿{ elX'趝鸯 嶮n~帪~R  ; 070701000703c8000081a40000000000000002000000013ac0389e000001cc000000200000000000000000000000000000001c00000003reloc/squid/images/misc.gif   GIF89a0 0   櫃櫶烫   !    ,    0 0  ⻊	甲岒蛬T睼c陖耯箿c#槎+倂窝莞h%A 9洂舯@瀂
罧9=榍Z鈋/L瀨荾7&嬎[篡g制礸陞*U{ag&2鵂非%' XXSgGG(貴╱虏Y雎s)驋y赧9%33历:`
{  蓑z袺;;埴`{汸睖塥0 m潦郜 D-1离,卷,L:-蜰.l-峠觐n6<,唀#棌簝盞妗聢
5A瀴吼c灞hZi5r諭#+v躻蔅儇TⅰH幬B戞焯	1=c滗Y4MO倈*麻枽Nw蕠R,t怓吤顷濶^杰
uiY'QZ'3q昃w滼d硚祸羷遯簸唘p(EJ编槓n琷夊;)kV咘!葤1  ;070701000703c9000081a40000000000000002000000013ac0389e00000186000000200000000000000000000000000000001d00000003reloc/squid/images/nauth.gif  GIF89a0 0      fff烫!    ,    0 0  ⻊彥隧&X
厧躲OG~J:"ㄘ芫涄-`愓坶8A醡5榈宐啽U(姖旿秺nRfF6#8_砪_踂TfJ力7@q坵 g(鰓@s羧w枛鴓t贅y'篱偃&h皯$宸:[v儤踄囀餣:瑳眤覉4琫滒!都鸆槣J扲e工骰M躪M編-{巆))㖞~J蚙_m 進u&)骔僪x,0麌/犅hN`瀀馺<朻LLn|t罧婽聶e%=螙塣嬜瓚'Y<喪張⑵- 萒Po:昮U4>燜佃幈d藲[  ;  070701000703ca000081a40000000000000002000000013ac0389e000001de000000200000000000000000000000000000001d00000003reloc/squid/images/ports.gif  GIF89a0 0   fff烫   櫃         !    ,    0 0  很0独璨t龜*Ｓ]榃ミ鎾*倬+薥=w1}"赿'$nN筏蓛順=塼*X嫬^砡*@鰱穏q椝nw尊q\m纂v;铽醎|{~y乗
媶噝k{\峿弾抭妺潟漻] 牉寠R寉灆￢廠ぅ┉ごT潹颅衰拦捛夏T 患蕾召呜僦棕浊滂煦赕怃麴锺篪蝥叔kg磔?:濧啌hn猞3j|@预C"!挙挾T
ftl	r@hf股sB蜝;骝tJQ琝哛舰t檎疪眾倞E,Pc奞骃3ァ篎E5+U〈襃,卜6J洛p簣v耦銌P演谯7p=yOIqB倫V茱q@	C秝佼嗤K慈"膱藭<% ;  070701000703cb000081a40000000000000002000000013ac0389e00000127000000200000000000000000000000000000001d00000003reloc/squid/images/progs.gif  GIF89a0 0   櫃!    ,    0 0  ⻊彥隧c
誹┸髡C}昷i(:*`*6匙=坦b瞋Ow帠完{盽&h纫鑘bKC鍔卿r|,嫣仡羀f9鞂鎤R渫哄麽#h澉棁8栌x概带U%6卛瞄 瞧*:J蕟仲F俢凍橨猢77曯W橕击胴膅|H琝kD8窴I咞曺d93錠z鹾睚=z
反J譂.郅+'+y躻n?#赚M瘣瀗YzS蔂A3缋1by$6k/B ; 070701000703cc000081a40000000000000002000000013ac0389e000000fb000000200000000000000000000000000000001c00000003reloc/squid/images/smem.gif   GIF89a0 0      fff烫!    ,    0 0  虅彥隧蹿嫵Na v^枺T︹扫.聙!嫽:{?衟4鏀荕Ri劸4蟖慩 俤蠗祃蟧.LW脱@S缩~础睯鯊~稉闭E7亲w笚騐崆撒((CiGh鰲棍9g楪蔉竫i飞蓶鏳)*@+;奒炮;員3z槿{ elX'趝鸯 嶮n~帪~R  ; 070701000703cd000081a40000000000000002000000013ac0389e000001de000000200000000000000000000000000000001e00000003reloc/squid/images/sports.gif GIF89a0 0   fff烫   櫃         !    ,    0 0  很0独璨t龜*Ｓ]榃ミ鎾*倬+薥=w1}"赿'$nN筏蓛順=塼*X嫬^砡*@鰱穏q椝nw尊q\m纂v;铽醎|{~y乗
媶噝k{\峿弾抭妺潟漻] 牉寠R寉灆￢廠ぅ┉ごT潹颅衰拦捛夏T 患蕾召呜僦棕浊滂煦赕怃麴锺篪蝥叔kg磔?:濧啌hn猞3j|@预C"!挙挾T
ftl	r@hf股sB蜝;骝tJQ琝哛舰t檎疪眾倞E,Pc奞骃3ァ篎E5+U〈襃,卜6J洛p簣v耦銌P演谯7p=yOIqB倫V茱q@	C秝佼嗤K慈"膱藭<% ;  070701000703ce000081a40000000000000002000000013ac0389e00000067000000200000000000000000000000000000001a00000003reloc/squid/images/up.gif GIF89a    哪膔rr   !Made with GIMP !
  ,       &湉
倈'戍炫Io蝲b%斅e柫俁G;S鮯砯 ; 0707010000eb98000081e40000000000000002000000013ac0389e00001425000000200000000000000000000000000000001600000003reloc/squid/index.cgi #!/usr/local/bin/perl
# index.cgi
# Display a menu of different kinds of options

require './squid-lib.pl';

# Check for squid config file
if (!-r $config{'squid_conf'}) {
	&header($text{'index_header'}, "", undef, 1, 1);
	print "<hr>\n";
	print "<p>";
	print &text('index_msgnoconfig',$config{'squid_conf'},
		$module_name);
	print "\n<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index_return'});
	exit;
	}

# Check for the squid executable
if (!&has_command($config{'squid_path'})) {
	&header($text{'index_header'}, "", undef, 1, 1);
	print "<hr>\n";
	print "<p>";
	print &text('index_msgnoexe',$config{'squid_path'},
		$module_name);
	print "\n<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index_return'});
	exit;
	}

# Check the version number
$ver = `$config{'squid_path'} -v 2>&1`;
if ($ver =~ /(1\.1)\.\d+/ || $ver =~ /(1)\.NOVM/ ||
    $ver =~ /(2\.0)\./ || $ver =~ /(2\.1)\./ || $ver =~ /(2\.2)\./ ||
    $ver =~ /(2\.3)\./ || $ver =~ /(2\.4)\./) {
	# Save version number
	open(VERSION, ">$module_config_directory/version");
	print VERSION $1,"\n";
	close(VERSION);
	$squid_version = $1;
	}
else {
	&header($text{'index_header'}, "", undef, 1, 1);
	print "<hr>\n";
	print "<p>";
	print $text{'index_msgnosupported'};
	print "\n<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index_return'});
	exit;
	}

# Check for the cache directory
$conf = &get_config();
if (@cachestruct = &find_config("cache_dir", $conf)) {
	if ($squid_version >= 2.4) {
		@caches = map { $_->{'values'}->[2] } @cachestruct;
		}
	elsif ($squid_version >= 2.3) {
		@caches = map { $_->{'values'}->[1] } @cachestruct;
		}
	else {
		@caches = map { $_->{'values'}->[0] } @cachestruct;
		}
	}
else { @caches = ( $config{'cache_dir'} ); }
foreach $c (@caches) {
	if (!-d $c || !-d "$c/00") { $not_init++; }
	}
if ($not_init) {
	&header($text{'index_header'}, "", undef, 1, 1);
	print "<hr>\n";
	print "<p><center>\n";
	if (@caches > 1) {
		print &text('index_msgnodir1', join(", ", @caches));
		}
	else {
		print &text('index_msgnodir2', $cache);
		}
	print $text{'index_msgnodir3'},"<br>\n";
	print "<form action=init_cache.cgi>\n";
	print "<input type=submit value=\"$text{'index_buttinit'}\">\n";
	if (!&find_config("cache_effective_user", $conf)) {
		print $text{'index_asuser'}," ",&unix_user_input("user"),
			"<p>\n";
		}
	else {
		print "<input type=hidden name=nouser value=1>\n";
		}
	print "<input type=hidden name=caches value=\"",
		join(" ",@caches),"\">\n";
	print "</form></center>\n";
	print "<hr>\n";
	}
else {
	&header($text{'index_header'}, "", "intro",
		1, 1, 0, &restart_button());
	print "<hr>\n";
	}

$authprog = &find_value("authenticate_program", $conf);
if ($authprog =~ /(\S+)\s+(\/\S+)$/) {
	open(AUTH, $2);
	local $line = <AUTH>;
	close(AUTH);
	if (!$line || $line =~ /^(\S+):(\S+)/) {
		$auth = 2;
		}
	}
elsif ($squid_version < 2) {
	$auth = 1;
	}
$calamaris = &has_command($config{'calamaris'});
if ($access{'simple'} == 2) {
	# Display only the most basic option icons
	@otitles = ( $text{'index_portsnets'}, $text{'index_mdusage'},
		     $text{'index_actrl'},
		     ($auth ? ( $text{'index_proxyauth'} ) : ( ) ),
		     $text{'index_rebuild'},
		     $calamaris ? ( $text{'index_calamaris'} ) : ( ) );
	@olinks = ( "edit_sports.cgi", "edit_smem.cgi", "edit_acl.cgi",
		     ($auth == 1 ? ( "edit_auth.cgi" ) :
		      $auth == 2 ? ( "edit_nauth.cgi" ) : ( ) ),
		    "clear.cgi",
		    $calamaris ? ( "calamaris.cgi" ) : ( ) );
	}
elsif ($access{'simple'} == 1) {
	# Display most option icons
	@otitles = ( $text{'index_portsnets'}, $text{'index_musage'},
		     $text{'index_logging'}, $text{'index_copts'}, 
		     $text{'index_actrl'}, $text{'index_admopts'},
		     ($auth ? ( $text{'index_proxyauth'} ) : ( ) ),
		     $text{'index_miscopt'}, $text{'index_rebuild'},
		     $calamaris ? ( $text{'index_calamaris'} ) : ( ) );
	@olinks =  ( "edit_ports.cgi", "edit_mem.cgi",
		     "edit_logs.cgi", "edit_cache.cgi",
		     "edit_acl.cgi", "edit_admin.cgi",
		     ($auth == 1 ? ( "edit_auth.cgi" ) :
		      $auth == 2 ? ( "edit_nauth.cgi" ) : ( ) ),
		     "edit_misc.cgi", "clear.cgi",
		     $calamaris ? ( "calamaris.cgi" ) : ( ) );
	}
else {
	# Display all option icons
	@otitles = ( $text{'index_portsnets'}, $text{'index_othercaches'}, 
		     $text{'index_musage'}, $text{'index_logging'},
		     $text{'index_copts'}, $text{'index_hprogs'}, 
		     $text{'index_actrl'}, $text{'index_admopts'},
		     ($auth ? ( $text{'index_proxyauth'} ) : ( ) ),
		     $text{'index_miscopt'}, $text{'index_cms'},
		     $text{'index_rebuild'},
		     $calamaris ? ( $text{'index_calamaris'} ) : ( ) );
	@olinks =  ( "edit_ports.cgi", "edit_icp.cgi", "edit_mem.cgi",
		     "edit_logs.cgi", "edit_cache.cgi", "edit_progs.cgi",
		     "edit_acl.cgi", "edit_admin.cgi",
		     ($auth == 1 ? ( "edit_auth.cgi" ) :
		      $auth == 2 ? ( "edit_nauth.cgi" ) : ( ) ),
		     "edit_misc.cgi", "cachemgr.cgi", "clear.cgi",
		     $calamaris ? ( "calamaris.cgi" ) : ( ) );
	}
@oicons =  map { $t=$_; $t=~s/cgi/gif/; $t=~s/edit_//; "images/$t" } @olinks;
&icons_table(\@olinks, \@otitles, \@oicons);

print "<hr>\n";
&footer("/", $text{'index_return'});

   0707010000eb99000081e40000000000000002000000013ac0389e000005e6000000200000000000000000000000000000001b00000003reloc/squid/init_cache.cgi    #!/usr/local/bin/perl
# init_cache.cgi
# Initialize the cache by running squid with the -z option

require './squid-lib.pl';
&ReadParse();
$whatfailed = $text{'icache_ftic'};

# set user to run squid as..
&lock_file($config{'squid_conf'});
$conf = &get_config();
if (!$in{'nouser'}) {
	$in{'user'} || &error($text{'icache_ymcautrsa'});
	@uinfo = getpwnam($in{'user'});
	@ginfo = getgrgid($uinfo[3]);
	if ($squid_version < 2) {
		$dir = { 'name' => 'cache_effective_user',
			 'values' => [ $in{'user'}, $ginfo[0] ] };
		&save_directive($conf, "cache_effective_user", [ $dir ]);
		}
	else {
		$dir = { 'name' => 'cache_effective_user',
			 'values' => [ $in{'user'} ] };
		&save_directive($conf, "cache_effective_user", [ $dir ]);
		$dir = { 'name' => 'cache_effective_group',
			 'values' => [ $ginfo[0] ] };
		&save_directive($conf, "cache_effective_group", [ $dir ]);
		}
	&flush_file_lines();
	}
&unlock_file($config{'squid_conf'});

# Initialize the cache
$| = 1;
($user, $group) = &get_squid_user($conf);
if ($user) {
	foreach $c (split(/\s+/, $in{'caches'})) {
		mkdir($c, 0755);
		}
	}
&chown_files($user, $group, $conf);
&header($text{'icache_title'}, "");
print "<hr>\n";
$cmd = "$config{'squid_path'} -f $config{'squid_conf'} -z";
print "<p>", &text('icache_itscwtc',$cmd), "<br>\n";
print "<pre>\n";
&additional_log('exec', undef, $cmd);
open(INIT, "$cmd 2>&1 |");
while(<INIT>) {
	print;
	}
close(INIT);
print "</pre>\n";
&webmin_log("init");

print "<hr>\n";
&footer("", $text{'icache_return'});

  07070100071d92000041ed0000000000000001000000023ac03c8400000000000000200000000000000000000000000000001100000003reloc/squid/lang  07070100071d93000081a40000000000000002000000013ac0389f00004834000000200000000000000000000000000000001400000003reloc/squid/lang/de   index_header=Squid Proxy Server
index_msgnoconfig=Die Squid Konfigurationsdatei <tt>$1</tt> existiert nicht. Falls Squid installiert ist, passen Sie Ihre <a href=/config.cgi?$2 >Modul Konfiguration</a> an, um die korrekten Pfade zu benutzen
index_msgnoexe=Die ausf&uuml;hrbare Datei von Squid mit Namen <tt>$1</tt> existiert nicht. Falls Squid installiert ist, passen Sie Ihre <a href=/config.cgi?$2 >Modul Konfiguration</a> an, um die korrekten Pfade zu benutzen.
index_msgnosupported=Ihre Version von Squid wird von Webmin nicht unterst&uuml;tzt. Lediglich die Versionen<tt>1.1</tt>, <tt>2.0</tt>, <tt>2.1</tt>, <tt>2.2</tt> und <tt>2.3</tt> werden von diesem Modul unterst&uuml;tzt.
index_msgnodir1=Ihre Squid Cache Verzeichnisse <tt>$1</tt> wurden noch nicht initialisiert.
index_msgnodir2=Ihr Squid Cache Verzeichnis <tt>$1</tt> wurde noch nicht initialisiert.
index_msgnodir3=Dies muss erledigt werden, bevor Squid gestartet werden kann.
index_buttinit=Initialisiere Cache
index_asuser=als Unix Benutzer
index_portsnets=Ports und Netzworkeinstellungen
index_othercaches=Andere Caches
index_musage=Speichernutzung
index_logging=Logging
index_copts=Cache Einstellungen
index_hprogs=Hilfsprogramme
index_actrl=Zugriffskontrolle
index_admopts=Administrative Einstellungen
index_proxyauth=Proxy Authentifizierung
index_miscopt=Sonstige Einstellungen
index_cms=Cache Manager Statistiken
index_rebuild=Leere Cache und baue neu auf
index_return=Index

buttsave=Speichern
buttdel=L&ouml;schen
buttcreat=Erstellen
yes=Ja
no=Nein
default=Standard
none=Kein
on=An
off=Aus

acl_header1=ACL erstellem
acl_header2=ACL bearbeiten
acl_name=ACL Name
acl_fromip=Von IP
acl_toip=Zu IP
acl_nmask=Netzmaske
acl_ipaddr=IP Adresse
acl_domains=Domains
acl_dofw=Tage der Woche
acl_sel=Ausgew&auml;hlte..
acl_all=Alle
acl_dsun=Sonntag
acl_dmon=Montag
acl_dtue=Dienstag
acl_dwed=Mittwoch
acl_dthu=Donnerstag
acl_dfri=Freitag
acl_dsat=Samstag
acl_hofd=Stunden des Tages
acl_to=zu
acl_regexp=Regul&auml;rer Ausdruck
acl_tcpports=TCP Ports
acl_urlproto=URL Protokolle
acl_reqmethods=Anfrage Methoden
acl_bregexp=Browser Regexp
acl_pusers=Proxy Benutzer
acl_asnum=ALS Zahlen
acl_rtime=Aktualisierungszeit
acl_rfcusers=RFC931 Benutzer
acl_mcr=Maximale Anzahl gleichzeitiger Anfragen
acl_psp=Proxy Server Port
acl_scs=SNMP Community String
acl_failurl=Fehler URL
acl_buttsave=Spechern
acl_buttdel=L&ouml;schen
acl_return=ACL Liste

aclsave_failsave=Fehler beim Speichern der ACL
aclsave_faildel=Fehler beim L&ouml;schen der ACL
aclsave_epr=Diese ACL wird von einer Proxy Regel benutzt
aclsave_eicpr=Diese ACL wird von einer ICP Regel benutzt
aclsave_ename=Ung&uuml;ltiger ACL Name
aclsave_eexists=Eine ACL mit dem Namen '$1' existiert bereits
aclsave_efrom='$1' ist keine g&uuml;ltige "Von" IP Adresse
aclsave_eto='$1' ist keine g&uuml;ltige "Zu" IP Adresse
aclsave_enmask='$1' ist keine g&uuml;ltige Netzmaske
aclsave_eip='$1' ist keine g&uuml;ltige IP Adresse
aclsave_ecdom=Keine Client Domains angegeben
aclsave_esdom=Keine Server Domains angegeben
aclsave_eshour=Ung&uuml;ltige Stunde f&uuml;r Beginn
aclsave_eehour=Ung&uuml;ltige Stunde f&uuml;r Ende
aclsave_esmin=Ung&uuml;ltige Minute f&uuml;r Beginn
aclsave_eemin=Ung&uuml;ltige Minute f&uuml;r Ende

cach_err=Fehler
cach_nfound=Das Squid Cache Manager Programm <tt>$1</tt> konnte auf Ihrem System nicht gefunden werden. Vielleicht ist Ihre <a href=/config.cgi?$2 >Modul Konfiguration</a> fehlerhaft.
cach_return=Squid Index

chown_header=&Auml;ndere Besitzer
chown_stop=Stoppe Squid ...
chown_done=.. Fertig
chown_chown=&Auml;ndere Besitzer ...
chown_restart=Starte Squid neu ...
chown_failrestart=Fehler beim Neustart von Squid ..

clear_header=Leere Cache und erstelle neu
clear_msgclear=Sind Sie sicher, dass Sie den Cache leeren und neu erstellen wollen? Dies wird <b>alle</b> Dateien, die sich im Cache befinden l&ouml;schen und den Squid Server neu starten.
clear_msgclear2=Sie sollten sicherstellen, dass Sie diesen Cache nicht nutzen, um mit dem Webmin Server zu kommunizieren, sonst wird die Verbindung getrennt werden, wenn Sie diesen Cache abschalten.
clear_buttclear=Leere Cache und erstelle neu
clear_stop=Stoppe Squid ...
clear_done=.. Fertig
clear_del=L&ouml;sche alte Cache Dateien ..
clear_init=Initialisiere den Squid Cache mit dem Kommando <tt>$1</tt> ..
clear_failrestart=Fehler beim Neustart von Squid ..
clear_return=Squid Index

eacl_header=Zugriffskontrolle
eacl_acls=Zugriffskontroll-Listen (ACL)
eacl_name=Name
eacl_type=Typ
eacl_match=Passt auf..
eacl_noacls=Keine ACLs definiert
eacl_buttcreate=Erstelle neue ACL
eacl_pr=Proxy Beschr&aouml;nkungen
eacl_act=Aktion
eacl_acls1=ACLs
eacl_move=Bewege
eacl_nopr=Keine Proxy Beschr&auml;nkungen definiert
eacl_addpr=F&uuml;ge Proxy Beschr&auml;nkung hinzu
eacl_icpr=ICP Beschr&auml;nkungen
eacl_noicpr=Keine ICP Beschr&auml;nkungen definiert
eacl_addicpr=F&uuml;ge ICP Beschr&auml;nkung hinzu
eacl_return=Squid Index

eadm_header=Administrative Einstellungen
eadm_aao=Administrative und Ank&uuml;ndigungs-Einstellungen
eadm_runasuu=F&uuml;hre aus als Unix Benutzer
eadm_nochange=Keine &Auml;nderung
eadm_user=Benutzer
eadm_group=Gruppe
eadm_runasug=F&uuml;hre aus als Unix Gruppe
eadm_par=Proxy Authentifizierungs-Umgebung
eadm_default=Standard
eadm_cmemail=Cache Manager email Adresse
eadm_vhost=Angezeigter Hostname
eadm_uniq=Eindeutiger Hostname
eadm_auto=Automatisch
eadm_annto=Gebe Cache bekannt an
eadm_annevery=Gebe Cache an alle
eadm_never=Nie
eadm_uniqhn=Eindeutiger Hostname
eadm_cah=Cache Bekanntmachungs-Host
eadm_cap=Cache Bekanntmachungs-Port
eadm_caf=Cache Bekanntmachungs-Datei
eadm_none=Keine(r)
eadm_annp=Bekanntmachungs-Intervall
eadm_buttsave=Speichern
eadm_return=Squid Index

eauth_header=Proxy Authentifizierung
eauth_aopt=Authentifizierungs-Einstellungen
eauth_puf=Proxy Benutzer Datei
eauth_none=Keine
eauth_nologin=Keine Login ben&ouml;tigt f&uuml;r Domain
eauth_buttsave=Speichern
eauth_msgaccess=Der Zugriff aud Ihren Procy Server ist beschr&auml;nkt auf die Benutzer, die unten angegeben sind. Nach dem hinzuf&uuml;gen oder l&ouml;schen eines Benutzers muss Squid neu gestartet werden, damit die &Auml;nderungen aktiv werden.
eauth_pusers=Proxy Benutzer
eauth_nopusers=Derzeit sind keine Proxy Benutzer definiert.
eauth_addpuser=Einen neuen Proxy Benutzer hinzuf&uuml;gen
eauth_return=Squid Index

ec_header=Cache Einstellungen
ec_cro=Cache und Anfrage Einstellungen
ec_cdirs=Cache Verzeichnisse
ec_default=Standard
ec_listed=Aufgelistete..
ec_directory=Verzeichnis
ec_type=Typ
ec_size=Gr&ouml;sse (MB)
ec_1dirs=Verz. der ersten Ebene
ec_2dirs=Verz. der zweiten Ebene
ec_u=UFS
ec_ua=Async UFS
ec_1dirs1=Verz. der ersten Ebene
ec_2dirs2=Verz. der zweiten Ebene
ec_aos=Durchschnittliche Objektgr&ouml;sse
ec_kb=kB
ec_mins=Minuten
ec_secs=Sekunden
ec_opb=Objects pro Verzeichnis
ec_ncuc=Cache URLs nicht, die folgendes enthalten
ec_ncum=Cache URLs nicht, die auf folgendes passen
ec_ncua=Cache URLs nicht, f&uuml;r folgende ACLs
ec_mct=Maximale Cache Zeit
ec_mrbs=Maximale Anfrage Datei Gr&ouml;sse
ec_mrhs=Maximale Anfrage Header Gr&ouml;sse
ec_mrbs1=Maximale Antwort Datei Gr&ouml;sse
ec_mrs=Maximale Anfrage Gr&ouml;sse
ec_frct=Verweildauer von Fehler-Antworten im Cache
ec_dlct=DNS Lookup Cache Dauer
ec_fdct=Fehlgeschlagene DNS Lookup Cache Dauer
ec_ct=Verbindungs-Timeout
ec_rt=Lese Timeout
ec_mcct=Maximale Verbindungszeit f&uuml;r Clients
ec_mst=Maximale Shutdown Zeit
ec_sst=Seiten Auswahl Timeout
ec_crt=Client Anfrage Timeout
ec_hcc=Halb-geschlossene Clients?
ec_pt=Persistenter Timeout
ec_wr=WAIS Relais
ec_none=Keines
ec_host=Host
ec_port=Port
ec_wrh=WAIS Relais Host
ec_wrp=WAIS Relais Port
ec_buttsave=Speichern
ec_return=Squid Index

ech_header=Cache Host erstellen
ech_header1=Cache Host bearbeiten
ech_cho=Cache Host Einstellungen
ech_h=Hostname
ech_parent=&uuml;bergeordneter
ech_sibling=untergeordneter
ech_multicast=multicast
ech_t=Typ
ech_pp=Proxy Port
ech_ip=ICP Port
ech_po=Ausschlie遧ich Proxy?
ech_y=Ja
ech_n=Nein
ech_siq=Sende ICP Anfragen?
ech_dc=Standard Cache?
ech_rrc=Round-robin Cache?
ech_ittl=ICP Time-to-live
ech_d=Standard
ech_cw=Cache Gewichtung
ech_co=Nur n&auml;hesten?
ech_nd=Keine Auswahl?
ech_nne=Kein NetDB Austausch?
ech_nd1=Keine Verz&ouml;gerung?
ech_ltp=Login auf Proxy
ech_nl=Kein Login
ech_u=Benutzer:
ech_p=Passwort:
ech_mr=Multicast Antworter?
ech_qhfd=Frage bei Host an f&uuml;r Domains
ech_dqfd=Frage nicht an f&uuml;r Domains
ech_buttsave=Speichern
ech_buttdel=L&ouml;schen
ech_return=Cache Liste

eicp_header=Andere Caches
eicp_opcs=Andere Proxy Cache Server
eicp_nocd=Keine anderen Caches definiert
eicp_aac=Einen anderen Cache hinzuf&uuml;gen
eicp_cso=Cache Auswahl Einstellungen
eicp_fdfd=Hole direkt von Domains
eicp_fdfi=Hole direkt von IPs
eicp_dif=Domains innerhalb eines Firewalls
eicp_iif=IPs innerhalb eines Firewalls
eicp_dfuc=Hole URLs direkt, die folgendes enthalten
eicp_d=Standard
eicp_bpfsp=Umgehe Ping f黵 einfachen &Uuml;bergeordneten?
eicp_y=Ja
eicp_n=Nein
eicp_ssip=Sende Quelle in Ping?
eicp_crt=Cache Antwort Timeout
eicp_iqt=ICP Anfrage Timeout
eicp_mit=Multicase ICP Timeout
eicp_dpt=Timeout f&uuml;r abgebrochenden Kontakt
eicp_h=Hostname
eicp_t=Typ
eicp_pp=Proxy Port
eicp_ip=ICP Port
eicp_return=Squid Index

elogs_header=Logging
elogs_lalo=Logging und Logdatei Einstellungen
elogs_alf=Zugriffs-Logdatei
elogs_dlf=Debug-Logdatei
elogs_slf=Storage Logdatei
elogs_cmf=Cache Metadata Datei
elogs_uhlf=Benutze HTTPD Log-Format?
elogs_lmh=Logge MIME Header?
elogs_ualf=User agent Logdatei
elogs_pf=PID Datei
elogs_prilfa=F&uuml;hre RFC931 ident lookups f&uuml;r ACLs aus
elogs_rit=RFC931 ident Timeout
elogs_dril=Mache RFC931 Ident Lookups?
elogs_lfh=Logge vollen Hostnamen?
elogs_ln=Logging Netzmask
elogs_do=Debug Einstellungen
elogs_mht=MIME Header Tabelle
elogs_return=Squid Index

emem_header=Speichernutzung
emem_maduo=Speicher- und Plattennutzungs-Einstellungen
emem_mul=Speichernutzungs-Limit
emem_dul=Plattennutzungs-Limit
emem_fcs=FQDN Cache Gr&ouml;sse
emem_mb=MB
emem_kb=kB
emem_mhwm=Speicher "Hochwasser-Grenze"
emem_mlwm=Speicher "Niedrigwasser-Grenze"
emem_dhwm=Platten "Hochwasser-Grenze"
emem_dlwm=Platten "Niedrigwasser-Grenze"
emem_mcos=Maximale Gr&ouml;sse gecachter Objekte
emem_iacs=IP Adressen Cache Gr&ouml;sse
emem_e=Eintr&auml;ge
emem_ichwm=IP Cache Hochwasser-Marke
emem_iclwm=IP Cache Niedrigwasser-Marke
emem_return=Squid Index

emisc_header=Sonstige Einstellungen
emisc_mo=Sonstige Einstellungen
emisc_sdta=Startup DNS Test Adressen
emisc_slr=SIGUSR1 logfile rotations
emisc_dd=Standard Domain
emisc_sp=SSL Proxy
emisc_nghp=Non-GET HTTP Proxy
emisc_emt=Fehler-Meldungs-Text
emisc_pcs=Statistiken pro Client?
emisc_xffh=X-Forwarded-For Header?
emisc_liq=Logge ICP Anfragen?
emisc_mdh=Minimale direkte Hops
emisc_kmffu=Reserviere Speicher f&uuml;r zuk&uuml;nftige Nutzung?
emisc_aomtk=Gr&ouml;sse des zu reservierenden Speichers
emisc_u=Beliebig
emisc_htpt=Header, die durchgehen
emisc_ah=Alle Header
emisc_oh=Nur folgende Header
emisc_ae=Alle au遝r
emisc_a=Anonymizer?
emisc_off=Aus
emisc_std=Standard
emisc_par=Paranoid
emisc_fua=Falscher User-Agent
emisc_return=Squid Index
emisc_hauhh=HTTP Accel Benutzt Host Header
emisc_hah=HTTP Accel Host
emisc_hap=HTTP Accel Port
emisc_hawp=HTTP Accel mit Proxy

eports_header=Ports und Netzwerk
eports_pano=Port- und Netzwerk Einstellungen
eports_paap=Proxy addresses and ports
eports_p=Port
eports_hia=Hostname/IP Adresse
eports_pp=Proxy Port
eports_ip=ICP Port
eports_ota=Ausgehende TCP Adresse
eports_ita=Eingehende TCP Adresse
eports_a=Jegliche
eports_oua=Ausgehende UDP Adresse
eports_iua=Eingehende UDP Adresse
eports_mg=Multicast Gruppen
eports_trb=TCP Empfangspuffer
eports_od=OS Standard
eports_return=Squid Index

eprogs_header=Hilfsprogramme
eprogs_chpo=Einstellungen f&uuml;r Cache Hilfsprogramme
eprogs_sfp=Squid FTP Programm
eprogs_fo=FTP Einstellungen
eprogs_fcv=FTP Spalten Breite
eprogs_c=Zeichen
eprogs_afl=Anon FTP Login
eprogs_sdp=Squid DNS Programm
eprogs_nodp=Anzahl DNS Programme
eprogs_adtr=H&auml;nge Domain an Anfragen an
eprogs_dsa=DNS Server Adressen
eprogs_fr=Aus resolv.conf
eprogs_ccp=Cache Reinigungs-Programm
eprogs_spp=Squid Ping Programm
eprogs_crp=Eigenes Weiterleitungsprogramm
eprogs_norp=Anzahl Weiterleitungsprogramme
eprogs_cap=Eigenes Authentifizierungsprogramm
eprogs_noap=Anzahl Authentifizierungsprogramme
eprogs_return=Squid Index

euser_header=Proxy Benutzer erstellen
euser_header1=Proxy Benutzer bearbeiten
euser_pud=Proxy Benutzer Details
euser_u=Benutzername
euser_p=Passwort
euser_u1=Unver&auml;ndert
euser_return=Benutzerliste

ahttp_header=Proxy Regel ertellen
ahttp_header1=Proxy Regel bearbeiten
ahttp_pr=Proxy Regel
ahttp_a=Aktion
ahttp_a1=Gestatten
ahttp_d=Verweigern
ahttp_ma=Passende ACLs
ahttp_dma=Nicht passende ACLs
ahttp_return=ACL Liste

sahttp_ftspr=Fehler beim Speichern der Proxy Regel

aicp_header=ICP Regel erstellen
aicp_header1=ICP Regel bearbeiten
aicp_ir=ICP Regel
aicp_a=Aktion
aicp_a1=Gestatten
aicp_d=Verweigern
aicp_ma=Passende ACLs
aicp_dma=Nicht passende ACLs
aicp_return=ACL Liste

saicp_ftsir=Fehler beim Speichern der ICP Regel

icache_ftic=Fehler beim initialisieren des Caches
icache_ymcautrsa=Sie m&uuml;ssen einen Benutzer definieren, als der Squid ausgef&uuml;hrt werden soll
icache_header=Initialisiere Cache
icache_itscwtc=Initialisiere den Squid cache mit dem Kommando <tt>$1</tt> ..
icache_return=Squid Index

restart_ftrs=Fehler bei der Rekonfiguration von Squid

sadmin_ftsao=Fehler beim Speichern der adminstrativen Einstellungen
sadmin_header=&Auml;ndere Besitzer
sadmin_msg1=Sie haben den Benutzer oder die Gruppe ge&auml;ndert, als der Squid ausgef&uuml;hrt wird. Damit dies richtig funktioniert, sollten die Besitzrechte aller Cache- und Logdateien aktualisiert und Squid neu gestartet werden.
sadmin_buttco=&Auml;ndere Besitzer
sadmin_return=Index
sadmin_inavea='$1' ist keine g&uuml;ltige email Adresse
sadmin_inavh='$1' ist kein g&uuml;ltiger Hostname
sadmin_inavap='$1' ist keine g&uuml;ltiges Bekanntgabe-Intervall
sadmin_inavp='$1' ist kein g&uuml;ltiger Port

sauth_ftsao=Fehler beim Speichern der Authentifizierungs-Einstellungen
sauth_iomuf=Fehlender oder ung&uuml;ltiger Benutzerdatei-Name
sauth_iomd=Fehlende oder ung&uuml;ltige Domain
sauth_msg1=Ihre Version von Squid wurde nicht mit der Unterst&uuml;tzung f&uuml;r Proxy Authentifizierung compiliert.

scache_ftsco=Fehler beim Speichern der Cache Einstellungen
scache_emsg0=Sie m&uuml;ssen mindestens ein Cache Verzeichnis angeben
scache_emsg1=Das Cache Verzeichnis '$1' existiert nicht
scache_emsg2='$1' ist keine g&uuml;ltige Anfrage Gr&ouml;sse
scache_emsg3='$1' ist keine g&uuml;ltige Cachedauer f&uuml;r fehlgeschlagene Anfragen
scache_emsg4='$1' ist keine g&uuml;ltige DNS Cachedauer
scache_emsg5='$1' ist kein g&uuml;ltiger Timeout
scache_emsg6='$1' ist keine g&uuml;ltige Zeit
scache_emsg7='$1' ist keine g&uuml;ltige Anzahl von Verzeichnissen
scache_emsg8=Anzahl an Verzeichnissen muss >= 1 sein
scache_emsg9=Anzahl an Verzeichnissen muss <= 256 sein
scache_emsg10='$1' ist keine g&uuml;ltige Objekt Gr&ouml;sse
scache_emsg11='$1' ist keine g&uuml;ltige Anzahl an Objekten
scache_emsg12='$1' ist keine g&uuml;ltige Verzeichnis Gr&ouml;sse
scache_emsg13='$1' ist kein g&uuml;ltiger Host
scache_emsg14='$1' ist kein g&uuml;ltiger Port

schost_ftsc=Fehler beim Speichern des Caches
schost_emsg1='$1' ist kein g&uuml;ltiger Cache Hostname
schost_emsg2='$1' ist kein g&uuml;ltiger Proxy Port
schost_emsg3='$1' ist kein g&uuml;ltiger ICP Port
schost_emsg4='$1' ist keine g&uuml;ltige Time-to-live
schost_emsg5='$1' ist keine g&uuml;ltige Gewichtung

sicp_ftsco=Fehler beim Speichern der Cache Einstellungen
sicp_emsg1='$1' ist kein g&uuml;ltiger Timeout

slogs_ftslo=Fehler beim Speichern der Logging Einstellungen
slogs_emsg1='$1' ist kein absoluter Dateiname
slogs_emsg2='$1' ist kein g&uuml;ltiger Dateiname
slogs_emsg3=Das Verzeichnis '$1' existiert nicht
slogs_emsg4='$1' ist keine g&uuml;ltige Netzmaske
slogs_emsg5='$1' ist keine g&uuml;ltige Liste mit Debug Einstellungen

smem_ftsmo=Fehler beim Speichern der Speicher-Einstellungen
smem_emsg1='$1' ist keine g&uuml;ltige Cache Gr&ouml;sse
smem_emsg2='$1' ist keine g&uuml;ltige "Hochwasser-Marke"
smem_emsg3='$1' ist keine g&uuml;ltige "Niedrigwasser-Marke"
smem_emsg4='$1' ist keine g&uuml;ltige Objektgr&ouml;sse

smisc_ftso=Fehler beim Speichern der Einstellungen
smisc_emsg1='$1' ist keine g&uuml;ltige Anzahl an Rotationen
smisc_emsg2='$1' ist keine g&uuml;ltige Domain
smisc_emsg3='$1' ist kein g&uuml;ltiger Proxy
smisc_emsg4='$1' ist keine g&uuml;ltige Anzahl an Hops

sport_ftspo=Fehler beim Speichern der Port Einstellungen
sport_emsg1='$1' ist keine g&uuml;ltige Port Nummer
sport_emsg2='$1' ist keine g&uuml;ltige Adresse
sport_emsg3='$1' ist keine g&uuml;ltige Puffergr&ouml;sse

sprog_ftshpo=Fehler beim Speichern der Einstellungen f&uuml;r Hilfsprogramme
sprog_emsg1=Fehlende FTP Einstellungen
sprog_emsg2='$1' ist kein g&uuml;ltige Programm
sprog_emsg3='$1' ist kein ausf&uuml;hrbares Programm
sprog_emsg4='$1' ist kein g&uuml;ltiger FTP Login
sprog_emsg5='$1' ist keine g&uuml;ltige Anzahl von Programmen
sprog_emsg6='$1' ist keine g&uuml;ltige Spaltenbreite
sprog_emsg7=Es wurden keine DNS Server angegeben
sprog_emsg8='$1' ist keine g&uuml;ltige IP Adresse

suser_ftsu=Fehler beim Speichern des Benutzers
suser_emsg1=Fehlender oder ung&uuml;ltiger Benutzername

start_ftsq=Fehler beim Starten von Squid
stop_ftsq=Fehler beim Stoppen von Squid

lib_emsg1='$1' ist keine g&uuml;ltige IP Adresse
lib_seconds=Sekunden
lib_minutes=Minuten
lib_hours=Stunden
lib_days=Tage
lib_weeks=Wochen
lib_fortnights=Zwei Wochen
lib_months=Monate
lib_years=Jahre
lib_decades=Jahrzehnte
lib_emsg2='$1' ist keine g&uuml;ltige Anzahl von $2
lib_kb=kBs
lib_mb=MBs
lib_gb=GBs
lib_emsg3='$1' ist keine g&uuml;ltige Anzahl von $2
lib_aclca=Client Adresse
lib_aclwsa=Web Server Adresse
lib_aclch=Client Hostname
lib_aclwsh=Web Server Hostname
lib_acldat=Datum und Zeit
lib_aclur=URL Regexp
lib_aclupr=URL Pfad Regexp
lib_aclup=URL Port
lib_aclup1=URL Protokoll
lib_aclrm=Anfrage Methode
lib_aclbr=Browser Regexp
lib_aclpl=Proxy Login
lib_aclsan=Quelle AS Nummer
lib_acldan=Ziel AS Nummer
lib_aclea=Externes Auth
lib_aclcr=Client Regexp
lib_aclwsr=Web Server Regexp
lib_aclru=RFC931 Benutzer
lib_aclpia=Proxy IP Adresse
lib_aclmc=Maximale Anzahl Verbindungen
lib_aclpp=Proxy Port
lib_aclsc=SNMP Community
lib_buttac=&Auml;nderungen anwenden
lib_buttss=Stoppe Squid
lib_buttss1=Starte Squid

07070100071d94000081a40000000000000002000000013ac0389f00004b26000000200000000000000000000000000000001400000003reloc/squid/lang/en   index_header=Squid Proxy Server
index_msgnoconfig=The Squid config file <tt>$1</tt> does not exist. If you have Squid installed, adjust your <a href=/config.cgi?$2 >module configuration</a> to use the correct paths.
index_msgnoexe=The Squid executable <tt>$1</tt> does not exist. If you have Squid installed, adjust your <a href=/config.cgi?$2 >module configuration</a> to use the correct path.
index_msgnosupported=Your version of Squid is not supported by Webmin. Only versions <tt>1.1</tt>, <tt>2.0</tt>, <tt>2.1</tt>, <tt>2.2</tt> and <tt>2.3</tt> are supported by this module.
index_msgnodir1=Your Squid cache directories <tt>$1</tt> have not been initialized.
index_msgnodir2=Your Squid cache directory <tt>$1</tt> has not been initialized.
index_msgnodir3=This must be done before Squid can be run.
index_buttinit=Initialize Cache
index_asuser=as Unix user
index_portsnets=Ports and Networking
index_othercaches=Other Caches
index_musage=Memory Usage
index_mdusage=Memory and Disk Usage
index_logging=Logging
index_copts=Cache Options
index_hprogs=Helper Programs
index_actrl=Access Control
index_admopts=Administrative Options
index_proxyauth=Proxy Authentication
index_miscopt=Miscellaneous Options
index_cms=Cache Manager Statistics
index_rebuild=Clear and Rebuild Cache
index_calamaris=Calamaris Log Analysis
index_return=index

buttsave=Save
buttdel=Delete
buttcreat=Create
yes=Yes
no=No
default=Default
none=None
on=On
off=Off

acl_header1=Create ACL
acl_header2=Edit ACL
acl_name=ACL Name
acl_fromip=From IP
acl_toip=To IP
acl_nmask=Netmask
acl_ipaddr=IP Address
acl_domains=Domains
acl_dofw=Days of the Week
acl_sel=Selected..
acl_all=All
acl_dsun=Sunday
acl_dmon=Monday
acl_dtue=Tuesday
acl_dwed=Wednesday
acl_dthu=Thursday
acl_dfri=Friday
acl_dsat=Saturday
acl_hofd=Hours of the Day
acl_to=to
acl_regexp=Regular Expressions
acl_tcpports=TCP Ports
acl_urlproto=URL Protocols
acl_reqmethods=Request Methods
acl_bregexp=Browser Regexp
acl_pusers=Proxy Users
acl_eusers=External Auth Users
acl_case=Ignore case?
acl_eusersre=External Auth User Regexps
acl_asnum=AS Numbers
acl_rtime=Refresh Time
acl_rfcusers=RFC931 Users
acl_mcr=Maximum Concurrent Requests
acl_psp=Proxy Server Port
acl_scs=SNMP Community String
acl_rmt=Request MIME Type
acl_arp=Client ethernet addresses
acl_failurl=Failure URL
acl_buttsave=Save
acl_buttdel=Delete
acl_return=ACL list

aclsave_failsave=Failed to save ACL
aclsave_faildel=Failed to delete ACL
aclsave_epr=This ACL is being used by a proxy restriction
aclsave_eicpr=This ACL is being used by an ICP restriction
aclsave_ename=Invalid ACL name
aclsave_eexists=An ACL called '$1' already exists
aclsave_efrom='$1' is not a valid From IP address
aclsave_eto='$1' is not a valid To IP address
aclsave_enmask='$1' is not a valid netmask
aclsave_eip='$1' is not a valid IP address
aclsave_ecdom=No client domains given
aclsave_esdom=No server domains given
aclsave_eshour=Invalid starting hour
aclsave_eehour=Invalid ending hour
aclsave_esmin=Invalid starting min
aclsave_eemin=Invalid ending min
aclsave_efile=You are not allowed to write to the ACL file '$1'

cach_err=Error
cach_nfound=The Squid cache manager program <tt>$1</tt> was not found on your system. Maybe your <a href=/config.cgi?$2 >module configuration</a> is incorrect.
cach_return=squid index

chown_header=Change Ownership
chown_stop=Stopping squid ...
chown_done=.. Done
chown_chown=Changing ownership ...
chown_restart=Re-starting Squid ...
chown_failrestart=Failed to re-start Squid ..
chown_return=squid index

clear_header=Clear and Rebuild Cache
clear_msgclear=Are you sure you want to clear and rebuild your Squid cache? This will delete <b>all</b> the files you have cached and re-start your Squid server.
clear_msgclear2=You should make sure you are not using this cache to communicate with this Webmin server, or you will be disconnected when the cache is shut down.
clear_buttclear=Clear and Rebuild Cache
clear_stop=Stopping squid ...
clear_done=.. Done
clear_del=Deleting old cache files ..
clear_init=Initializing the Squid cache with the command <tt>$1</tt> ..
clear_failrestart=Failed to re-start Squid ..
clear_return=squid index

eacl_header=Access Control
eacl_acls=Access control lists
eacl_name=Name
eacl_type=Type
eacl_match=Matching..
eacl_noacls=No ACLs defined
eacl_buttcreate=Create new ACL
eacl_pr=Proxy restrictions
eacl_act=Action
eacl_acls1=ACLs
eacl_move=Move
eacl_nopr=No proxy restrictions defined
eacl_addpr=Add proxy restriction
eacl_icpr=ICP restrictions
eacl_noicpr=No ICP restrictions defined
eacl_addicpr=Add ICP restriction
eacl_return=squid index
eacl_allow=Allow
eacl_deny=Deny

eadm_header=Administrative Options
eadm_aao=Administrative and Announce Options
eadm_runasuu=Run as Unix user
eadm_nochange=No change
eadm_user=User
eadm_group=Group
eadm_runasug=Run as Unix group
eadm_par=Proxy authentication realm
eadm_default=Default
eadm_cmemail=Cache manager email address
eadm_vhost=Visible hostname
eadm_uniq=Unique hostname
eadm_haliases=Other cache DNS names
eadm_none=None
eadm_auto=Automatic
eadm_annto=Announce cache to
eadm_annevery=Announce cache every
eadm_never=Never
eadm_uniqhn=Unique hostname
eadm_cah=Cache announce host
eadm_cap=Cache announce port
eadm_caf=Cache announce file
eadm_none=None
eadm_annp=Announcement period
eadm_buttsave=Save
eadm_return=squid index

eauth_header=Proxy Authentication
eauth_aopt=Authentication Options
eauth_puf=Proxy users file
eauth_none=None
eauth_nologin=No login needed for domain
eauth_buttsave=Save
eauth_msgaccess=Access to your proxy server is limited to the users listed below. After adding, deleting or removing a user Squid must be stopped and started again for the changes to take effect.
eauth_nmsgaccess=Access to your proxy server is limited to the users listed below, taken from the file $1.
eauth_pusers=Proxy Users
eauth_nopusers=No proxy users are currently defined.
eauth_addpuser=Add a new proxy user
eauth_return=squid index

ec_header=Cache Options
ec_cro=Caching and Request Options
ec_cdirs=Cache directories
ec_default=Default
ec_listed=Listed..
ec_directory=Directory
ec_type=Type
ec_mos=Obj. size (kB)
ec_size=Size (MB)
ec_1dirs=1st level dirs
ec_2dirs=2nd level dirs
ec_u=UFS
ec_ua=Async UFS
ec_diskd=DISKD
ec_1dirs1=First level directories
ec_2dirs2=Second level directories
ec_aos=Average object size
ec_kb=kB
ec_mins=mins
ec_secs=secs
ec_opb=Objects per bucket
ec_ncuc=Don't cache URLs containing
ec_ncum=Don't cache URLs matching
ec_ncua=Don't cache URLs for ACLs
ec_mct=Maximum cache time
ec_mrbs=Maximum request body size
ec_mrhs=Maximum request headers size
ec_mrbs1=Maximum reply body size
ec_mrs=Maximum request size
ec_frct=Failed request cache time
ec_dlct=DNS lookup cache time
ec_fdct=Failed DNS cache time
ec_ct=Connect timeout
ec_rt=Read timeout
ec_mcct=Max client connect time
ec_mst=Max shutdown time
ec_sst=Site selection timeout
ec_crt=Client request timeout
ec_hcc=Half-closed clients?
ec_pt=Persistant timeout
ec_wr=WAIS relay
ec_none=None
ec_host=Host
ec_port=Port
ec_wrh=WAIS relay host
ec_wrp=WAIS relay port
ec_buttsave=Save
ec_return=squid index

ech_header=Create Cache Host
ech_header1=Edit Cache Host
ech_cho=Cache Host Options
ech_h=Hostname
ech_parent=parent
ech_sibling=sibling
ech_multicast=multicast
ech_t=Type
ech_pp=Proxy port
ech_ip=ICP port
ech_po=Proxy only?
ech_y=Yes
ech_n=No
ech_siq=Send ICP queries?
ech_dc=Default cache?
ech_rrc=Round-robin cache?
ech_ittl=ICP time-to-live
ech_d=Default
ech_cw=Cache weighting
ech_co=Closest only?
ech_nd=No digest?
ech_nne=No NetDB exchange?
ech_nd1=No delay?
ech_ltp=Login to proxy
ech_nl=No login
ech_u=User:
ech_p=Pass:
ech_mr=Multicast responder?
ech_qhfd=Query host for domains
ech_dqfd=Don't query for domains
ech_buttsave=Save
ech_buttdel=Delete
ech_return=cache list

eicp_header=Other Caches
eicp_opcs=Other proxy cache servers
eicp_nocd=No other caches defined
eicp_aac=Add another cache
eicp_cso=Cache Selection Options
eicp_fdfd=Fetch directly from domains
eicp_fdfi=Fetch directly from IPs
eicp_dif=Domains inside firewall
eicp_iif=IPs inside firewall
eicp_dfuc=Directly fetch URLs containing
eicp_d=Default
eicp_bpfsp=Bypass ping for single parent?
eicp_y=Yes
eicp_n=No
eicp_secs=secs
eicp_ssip=Send source in ping?
eicp_crt=Cache reply timeout
eicp_iqt=ICP query timeout
eicp_mit=Multicase ICP timeout
eicp_dpt=Dead peer timeout
eicp_h=Hostname
eicp_t=Type
eicp_pp=Proxy port
eicp_ip=ICP port
eicp_return=squid index
eicp_always=ACLs to fetch directly
eicp_noalways=No direct fetch ACLs defined
eicp_addalways=Add ACLs to fetch directly
eicp_never=ACLs never to fetch directly
eicp_nonever=No never direct fetch ACLs defined
eicp_addnever=Add ACLs never to fetch directly

elogs_header=Logging
elogs_lalo=Logging and Logfile Options
elogs_alf=Access log file
elogs_dlf=Debug log file
elogs_slf=Storage log file
elogs_cmf=Cache metadata file
elogs_uhlf=Use HTTPD log format?
elogs_lmh=Log MIME headers?
elogs_ualf=User agent log file
elogs_pf=PID file
elogs_prilfa=Perform RFC931 ident lookups for ACLs
elogs_rit=RFC931 ident timeout
elogs_dril=Do RFC931 ident lookups?
elogs_lfh=Log full hostnames?
elogs_ln=Logging netmask
elogs_do=Debug options
elogs_mht=MIME headers table
elogs_return=squid index

emem_dheader=Memory and Disk Usage
emem_header=Memory Usage
emem_maduo=Memory and Disk Usage Options
emem_mul=Memory usage limit
emem_dul=Disk usage limit
emem_fcs=FQDN cache size
emem_mb=MB
emem_kb=kB
emem_mhwm=Memory high-water mark
emem_mlwm=Memory low-water mark
emem_dhwm=Disk high-water mark
emem_dlwm=Disk low-water mark
emem_mcos=Maximum cached object size
emem_iacs=IP address cache size
emem_e=entries
emem_ichwm=IP cache high-water mark
emem_iclwm=IP cache low-water mark
emem_crp=Disk replacement policy
emem_lru=Least recently used
emem_gdsf=Greedy-dual size frequency
emem_lfuda=Dynamic least frequently used
emem_hlru=Heap least frequently used
emem_return=squid index
emem_mrp=Memory replacement policy

emisc_header=Miscellaneous Options
emisc_mo=Miscellaneous Options
emisc_sdta=Startup DNS test addresses
emisc_slr=SIGUSR1 logfile rotations
emisc_dd=Default domain
emisc_sp=SSL proxy
emisc_nghp=Non-GET HTTP proxy
emisc_emt=Error messages text
emisc_pcs=Per-client statistics?
emisc_xffh=X-Forwarded-For header?
emisc_liq=Log ICP queries?
emisc_mdh=Minimum direct hops
emisc_kmffu=Keep memory for future use?
emisc_aomtk=Amount of memory to keep
emisc_u=Unlimited
emisc_htpt=Headers to pass through
emisc_ah=All headers
emisc_oh=Only headers
emisc_ae=All except
emisc_a=Anonymizer?
emisc_off=Off
emisc_std=Standard
emisc_par=Paranoid
emisc_fua=Fake User-Agent
emisc_return=squid index
emisc_hauhh=HTTP Accel Uses Host Header
emisc_hah=HTTP Accel Host
emisc_hap=HTTP Accel Port
emisc_hawp=HTTP Accel With Proxy

eports_header=Ports and Networking
eports_pano=Ports and Networking Options
eports_paap=Proxy addresses and ports
eports_p=Port
eports_hia=Hostname/IP address
eports_pp=Proxy port
eports_ip=ICP port
eports_ota=Outgoing TCP address
eports_ita=Incoming TCP address
eports_a=Any
eports_oua=Outgoing UDP address
eports_iua=Incoming UDP address
eports_mg=Multicast groups
eports_trb=TCP receive buffer
eports_od=OS default
eports_return=squid index

eprogs_header=Helper Programs
eprogs_chpo=Cache Helper Program Options
eprogs_sfp=Squid FTP program
eprogs_fo=FTP options
eprogs_fcv=FTP column width
eprogs_c=chars
eprogs_afl=Anon FTP login
eprogs_sdp=Squid DNS program
eprogs_nodp=Number of DNS programs
eprogs_adtr=Append domain to requests
eprogs_dsa=DNS server addresses
eprogs_fr=From resolv.conf
eprogs_ccp=Cache clearing program
eprogs_spp=Squid ping program
eprogs_crp=Custom redirect program
eprogs_norp=Number of redirect programs
eprogs_cap=Custom Authentication program
eprogs_noap=Number of authentication programs
eprogs_return=squid index

euser_header=Create Proxy User
euser_header1=Edit Proxy User
euser_pud=Proxy User Details
euser_u=Username
euser_p=Password
euser_u1=Unchanged
euser_return=users list

ahttp_header=Create Proxy Restriction
ahttp_header1=Edit Proxy Restriction
ahttp_pr=Proxy Restriction
ahttp_a=Action
ahttp_a1=Allow
ahttp_d=Deny
ahttp_ma=Match ACLs
ahttp_dma=Don't match ACLs
ahttp_return=ACL list

sahttp_ftspr=Failed to save proxy restriction

aicp_header=Create ICP Restriction
aicp_header1=Edit ICP Restriction
aicp_ir=ICP Restriction
aicp_a=Action
aicp_a1=Allow
aicp_d=Deny
aicp_ma=Match ACLs
aicp_dma=Don't match ACLs
aicp_return=ACL list

saicp_ftsir=Failed to save ICP restriction

icache_ftic=Failed to initialize cache
icache_ymcautrsa=You must choose a user to run Squid as
icache_itscwtc=Initializing the Squid cache with the command <tt>$1</tt> ..
icache_return=squid index
icache_title=Initialize Cache

restart_ftrs=Failed to reconfigure squid

sadmin_ftsao=Failed to save administrative options
sadmin_header=Change Ownership
sadmin_msg1=You have changed the user or group that Squid runs as. For this to take effect properly, the ownership of all cache and log files should be updated and Squid re-started.
sadmin_buttco=Change Ownership
sadmin_return=squid index
sadmin_inavea='$1' is not a valid email address
sadmin_inavh='$1' is not a valid hostname
sadmin_inavap='$1' is not a valid announcement period
sadmin_inavp='$1' is not a valid port

sauth_ftsao=Failed to save authentication options
sauth_iomuf=Invalid or missing users filename
sauth_iomd=Invalid or missing domain
sauth_msg1=Your version of Squid has not been compiled with support for proxy authentication

scache_ftsco=Failed to save cache options
scache_emsg0=You must enter at least one cache directory
scache_emsg1=The cache directory '$1' does not exist
scache_emsg2='$1' is not a valid request size
scache_emsg3='$1' is not a valid failed request cache time
scache_emsg4='$1' is not a valid DNS cache time
scache_emsg5='$1' is not a valid timeout
scache_emsg6='$1' is not a valid time
scache_emsg7='$1' is not a valid number of directories
scache_emsg8=Number of directories must be >= 1
scache_emsg9=Number of directories must be <= 256
scache_emsg10='$1' is not a valid object size
scache_emsg11='$1' is not a valid number of objects
scache_emsg12='$1' is not a valid directory size
scache_emsg13='$1' is not a valid host
scache_emsg14='$1' is not a valid port

schost_ftsc=Failed to save cache
schost_emsg1='$1' is not a valid cache hostname
schost_emsg2='$1' is not a valid proxy port
schost_emsg3='$1' is not a valid ICP port
schost_emsg4='$1' is not a valid time-to-live
schost_emsg5='$1' is not a valid weighting

sicp_ftsco=Failed to save cache options
sicp_emsg1='$1' is not a valid timeout

slogs_ftslo=Failed to save logging options
slogs_emsg1='$1' is not an absolute filename
slogs_emsg2='$1' is not a valid filename
slogs_emsg3=The directory '$1' does not exist
slogs_emsg4='$1' is not a valid netmask
slogs_emsg5='$1' is not a valid debug options list

smem_ftsmo=Failed to save memory options
smem_emsg1='$1' is not a valid cache size
smem_emsg2='$1' is not a valid high-water mark
smem_emsg3='$1' is not a valid low-water mark
smem_emsg4='$1' is not a valid object size

smisc_ftso=Failed to save options
smisc_emsg1='$1' is not a valid number of rotations
smisc_emsg2='$1' is not a valid domain
smisc_emsg3='$1' is not a valid proxy
smisc_emsg4='$1' is not a valid number of hops

sport_ftspo=Failed to save port options
sport_emsg1='$1' is not a valid port number
sport_emsg2='$1' is not a valid address
sport_emsg3='$1' is not a valid buffer size

sprog_ftshpo=Failed to save helper program options
sprog_emsg1=Missing FTP options
sprog_emsg2='$1' is not a valid program
sprog_emsg3='$1' is not an executable program
sprog_emsg4='$1' is not a valid FTP login
sprog_emsg5='$1' is not a valid number of programs
sprog_emsg6='$1' is not a valid column width
sprog_emsg7=No DNS servers entered
sprog_emsg8='$1' is not a valid IP address

suser_ftsu=Failed to save user
suser_emsg1=Invalid or missing username

start_ftsq=Failed to start squid
stop_ftsq=Failed to stop squid

calamaris_title=Calamaris Log Analysis
calamaris_last=Limiting analysis to last $1 lines of logs ..
calamaris_eprog=The calamaris executable $1 was not found. Maybe it is not installed on your system, or your <a href='$2'>module configuration</a> is incorrect.
calamaris_elogs=The log directory $1 does not contain any <tt>access.log</tt> files. Maybe squid has not been run yet, or your <a href='$2'>module configuration</a> is incorrect.
calamaris_gen=Report generated on $1

lib_emsg1='$1' is not a valid IP address
lib_seconds=seconds
lib_minutes=minutes
lib_hours=hours
lib_days=days
lib_weeks=weeks
lib_fortnights=fortnights
lib_months=months
lib_years=years
lib_decades=decades
lib_emsg2='$1' is not a valid number of $2
lib_kb=kBs
lib_mb=MBs
lib_gb=GBs
lib_emsg3='$1' is not a valid number of $2
lib_aclca=Client Address
lib_aclwsa=Web Server Address
lib_aclch=Client Hostname
lib_aclwsh=Web Server Hostname
lib_acldat=Date and  Time
lib_aclur=URL Regexp
lib_aclupr=URL Path Regexp
lib_aclup=URL Port
lib_aclup1=URL Protocol
lib_aclrm=Request Method
lib_aclbr=Browser Regexp
lib_aclpl=Proxy Login
lib_aclsan=Source AS Number
lib_acldan=Dest AS Number
lib_aclea=External Auth
lib_aclcr=Client Regexp
lib_aclwsr=Web Server Regexp
lib_aclru=RFC931 User
lib_aclpia=Proxy IP Address
lib_aclmc=Maximum Connections
lib_aclpp=Proxy Port
lib_aclsc=SNMP Community
lib_aclrmt=Request MIME Type
lib_aclarp=Ethernet Address
lib_aclear=External Auth Rexexp
lib_buttac=Apply Changes
lib_buttss=Stop Squid
lib_buttss1=Start Squid

log_ports=Changed ports and networking options
log_icp=Changed other cache options
log_mem=Changed memory usage options
log_logs=Changed logging options
log_cache=Changed cache options
log_progs=Changed helper program options
log_admin=Changed administrative options
log_misc=Changed miscellaneous options
log_clear=Cleared and rebuilt cache
log_acl_create=Created ACL $1
log_acl_modify=Modified ACL $1
log_acl_delete=Deleted ACL $1
log_http_create=Created proxy restriction
log_http_modify=Modified proxy restriction
log_http_delete=Deleted proxy restriction
log_http_move=Moved proxy restriction
log_icp_create=Created ICP restriction
log_icp_modify=Modified ICP restriction
log_icp_delete=Deleted ICP restriction
log_icp_move=Moved ICP restriction
log_stop=Stopped proxy server
log_start=Started proxy server
log_apply=Applied changes
log_host_create=Created cache host $1
log_host_modify=Modified cache host $1
log_host_delete=Deleted cache host $1
log_init=Initialized cache
log_user_create=Created proxy user $1
log_user_delete=Deleted proxy user $1
log_user_modify=Modified proxy user $1
log_always_create=Created direct fetch ACLs
log_always_modify=Modified direct fetch ACLs
log_always_delete=Deleted direct fetch ACLs
log_always_move=Moved direct fetch ACLs
log_never_create=Created never direct fetch ACLs
log_never_modify=Modified never direct fetch ACLs
log_never_delete=Deleted never direct fetch ACLs
log_never_move=Moved never direct fetch ACLs

acl_root=Root directory for ACL files

always_create=Create Direct Fetch
always_edit=Edit Direct Fetch
always_header=Directly fetch requests matching ACLs

never_create=Create Indirect Fetch
never_edit=Edit Indirect Fetch
never_header=Never directly fetch requests matching ACLs

  07070100071d95000081a40000000000000002000000013ac0389f0000573a000000200000000000000000000000000000001400000003reloc/squid/lang/es   index_header=Servidor Proxy Squid
index_msgnoconfig=El archivo de configuraci髇 de Squid <tt>$1</tt> no existe. Si tienes instalado Squid, ajusta tu <a href=/config.cgi?$2 >configuraci髇 del m骴ulo</a> para que utilice trayectorias correctas.
index_msgnoexe=El ejecutable Squid <tt>$1</tt> no existe.  Si tienes instalado Squid, ajusta tu <a href=/config.cgi?$2 >configuraci髇 del m骴ulo</a> para que utilice trayectorias correctas.
index_msgnosupported=Tu versi髇 de Squid no est soportada por Webmin. S髄o las versiones <tt>1.1</tt>, <tt>2.0</tt>, <tt>2.1</tt>, <tt>2.2</tt> y <tt>2.3</tt> est醤 soportadas por este m骴ulo.
index_msgnodir1=Tus directorios de cach de Squid <tt>$1</tt> no han sido inicializados.
index_msgnodir2=Tu directorio de cach de Squid <tt>$1</tt> no ha sido inicializado.
index_msgnodir3=Esto tiene que realizarse antes de que Squid se ejecute.
index_buttinit=Inicializar Cach
index_asuser=como usuario Unix
index_portsnets=Puertos y Trabajo en Red
index_othercaches=Otras Cach閟
index_musage=Uso de Memoria
index_mdusage=Uso de Memoria y de Disco
index_logging=Historial
index_copts=Opciones de Cach
index_hprogs=Programas de Ayuda
index_actrl=Control de Acceso
index_admopts=Opciones Administrativas
index_proxyauth=Autentificaci髇 Proxy
index_miscopt=Opciones Varias
index_cms=Estad韘ticas de Gestor de Cach
index_rebuild=Limpiar y Reconstruir Cach
index_calamaris=An醠isis de historial de Calamaris
index_return=韓dice

buttsave=Salvar
buttdel=Borrar
buttcreat=Crear
yes=S
no=No
default=Por defecto
none=Ninguno
on=Activado
off=Desactivado

acl_header1=Crear ACL
acl_header2=Editar ACL
acl_name=Nombre ACL
acl_fromip=Desde IP
acl_toip=A IP
acl_nmask=M醩cara de Red
acl_ipaddr=Direcci髇 IP
acl_domains=Dominios
acl_dofw=D韆s de la Semana
acl_sel=Seleccionado...
acl_all=Todos
acl_dsun=Domingo
acl_dmon=Lunes
acl_dtue=Martes
acl_dwed=Mi閞coles
acl_dthu=Jueves
acl_dfri=Viernes
acl_dsat=S醔ado
acl_hofd=Horas del D韆
acl_to=a
acl_regexp=Expresiones Regulares
acl_tcpports=Puertos TCP
acl_urlproto=Protocolos URL
acl_reqmethods=M閠odos de Requerimiento
acl_bregexp=Expresiones de Navegador
acl_pusers=Usuarios Proxy
acl_eusers=Usuarios Externos Autorizados
acl_case=縄gnoro may鷖culas?
acl_eusersre=RegExp de Usuarios Externos Autorizados
acl_asnum=N鷐eros AS
acl_rtime=Tiempo de Refresco
acl_rfcusers=Usuarios RFC931
acl_mcr=M醲imo n鷐ero de Requerimientos Concurrentes
acl_psp=Puerto del Servidor Proxy
acl_scs=Candena de Comunidad SNMP
acl_rmt=Tipo de Requerimiento MIME
acl_arp=Direcciones de cliente ethernet
acl_failurl=URL de Fallo
acl_buttsave=Salvar
acl_buttdel=Borrar
acl_return=Lista ACL

aclsave_failsave=No pude salvar ACL
aclsave_faildel=No pude borrar ACL
aclsave_epr=Esta ACL est siendo usada por una restricci髇 proxy
aclsave_eicpr=Esta ACL est siendo usada por una restricci髇 ICP
aclsave_ename=Nombre de ACL inv醠ida
aclsave_eexists=Ya existe una ACL llamada '$1'
aclsave_efrom='$1' no es una direcci髇 IP 'Desde' v醠ida
aclsave_eto='$1' no es una direcci髇 IP 'A' v醠ida
aclsave_enmask='$1' no es una m醩cara de red v醠ida
aclsave_eip='$1' no es una direcci髇 IP v醠ida
aclsave_ecdom=No se han suministrado dominios de cliente
aclsave_esdom=No se han suministrado dominios de servidor
aclsave_eshour=Hora de inicio inv醠ida
aclsave_eehour=Hora de finalizaci髇 inv醠ida
aclsave_esmin=Minuto de inicio inv醠ido
aclsave_eemin=Minuto de finalizaci髇 inv醠ido
aclsave_efile=No est醩 autorizado a escribir en en archivo de ACL '$1'

cach_err=Error
cach_nfound=El programa manejador de cach de Squid <tt>$1</tt> no ha sido hallado en tu sistema. Quiz tu <a href=/config.cgi?$2 >configuraci髇 de m骴ulo</a> es incorrecta.
cach_return=韓dice de squid

chown_header=Cambiar Propietario
chown_stop=Parando squid...
chown_done=... Hecho
chown_chown=Cambiando propietario...
chown_restart=Rearrancando Squid...
chown_failrestart=No pude rearrancar Squid...
chown_return=韓dice de squid

clear_header=Limpiar y Reconstruir Cach
clear_msgclear=縀st醩 seguro de querer limpiar y reconstruir tu cach de Squid? Esto borrar <b>todos</b> los archivos que tengan cach y rearrancar tu servidor Squid.
clear_msgclear2=Deber韆s de asegurarte que no est醩 usando esta cach para comunicarte con este servidor Webmin o ser醩 desconectado cuando la cach se desconecte.
clear_buttclear=Limpiar y Reconstruir Cach
clear_stop=Parando Squid...
clear_done=... Hecho
clear_del=Borrando archivos de cach viejos...
clear_init=Inicializando la cach de Squid con el comando <tt>$1</tt> ...
clear_failrestart=No pude rearrancar Squid...
clear_return=韓dice de squid

eacl_header=Control de Acceso
eacl_acls=Listas de control de Acceso
eacl_name=Nombre
eacl_type=Tipo
eacl_match=Coincidiendo con...
eacl_noacls=No se han definido ACLs
eacl_buttcreate=Crear nueva ACL
eacl_pr=Restricciones Proxy
eacl_act=Acci髇
eacl_acls1=ACLs
eacl_move=Mover
eacl_nopr=No se han definido restrictiones proxy
eacl_addpr=A馻dir restricci髇 proxy
eacl_icpr=Restricciones ICP
eacl_noicpr=No se han definido restricciones ICP
eacl_addicpr=A馻dir restricci髇 ICP
eacl_return=韓dice squid
eacl_allow=Permitir
eacl_deny=Denegar

eadm_header=Opciones Administrativas
eadm_aao=Opciones Administrativas y de Anuncio
eadm_runasuu=Ejecutar como usuario Unix
eadm_nochange=Sin cambios
eadm_user=Usuario
eadm_group=Grupo
eadm_runasug=Ejecutar como grupo Unix
eadm_par=Campo de autentificaci髇 del proxy
eadm_default=Por defecto
eadm_cmemail=Direcci髇 e-mail del gestor de cach
eadm_vhost=Nombre de m醧uina visible
eadm_uniq=Nombre de m醧uina 鷑ica
eadm_haliases=Otros nombres de cach DNS
eadm_none=Ninguno
eadm_auto=Autom醫ico
eadm_annto=Anunciar cach a
eadm_annevery=Anunciar cach cada
eadm_never=Nunca
eadm_uniqhn=Nombre de m醧uina 鷑ica
eadm_cah=M醧uina de anuncio de cach
eadm_cap=Puerto de anuncio de cach
eadm_caf=Archivo de anuncio de cach
eadm_none=Ninguna
eadm_annp=Per韔do de Anunciaci髇
eadm_buttsave=Salvar
eadm_return=韓dice de squid

eauth_header=Autentificaci髇 de Proxy
eauth_aopt=Opciones de Autentificaci髇
eauth_puf=Archivo de usuarios de Proxy
eauth_none=Ninguno
eauth_nologin=No se necesita login para el dominio
eauth_buttsave=Salvar
eauth_msgaccess=El acceso a tu servidor proxy est limitado a los usuarios listados debajo. Tras a馻dir, borrar o quitar un usuario, Squid tiene que ser parado y arrancado de nuevo para que los cambios surtan efecto.
eauth_nmsgaccess=El acceso a tu servidor proxy est limitado a los usuarios listados debajo, cogidos del archivo $1.
eauth_pusers=Usuarios Proxy
eauth_nopusers=No se han definido usuarios de proxy en este momento.
eauth_addpuser=A馻dir un nuevo usuario de proxy
eauth_return=韓dice de squid

ec_header=Opciones de Cach
ec_cro=Opcions de Cach y de Requerimiento
ec_cdirs=Directorios de Cach
ec_default=Por defecto
ec_listed=Relaci髇...
ec_directory=Directorio
ec_type=Tipo
ec_mos=Medida Obj. (KB)
ec_size=Medida (MB)
ec_1dirs=Directorios de Primer nivel
ec_2dirs=Directorios de Segundo nivel
ec_u=UFS
ec_ua=UFS as韓crono
ec_diskd=DISKD
ec_1dirs1=Directorios de primer nivel
ec_2dirs2=Directorios de segundo nivel
ec_aos=Media de la medida del objeto
ec_kb=kB
ec_mins=m韓utos
ec_secs=segundos
ec_opb=Objetos por cubo
ec_ncuc=No hacer cach de URLs que contengan
ec_ncum=No hacer cach de URLs que coincidan
ec_ncua=No hacer cach de URLs para las ACLs
ec_mct=Tiempo m醲imo de cach
ec_mrbs=M醲imo requerimiento de medida de cuerpo
ec_mrhs=M醲imo requerimiento de medida de cabeceras
ec_mrbs1=M醲ima medida de cuerpo de r閜lica
ec_mrs=M醲ima medida de requerimiento
ec_frct=Fall el requerimiento de tiempo de cach
ec_dlct=Tiempo de cach de b鷖queda de DNS
ec_fdct=Fall el tiempo de cach de DNS
ec_ct=Tiempo de espera para conectar
ec_rt=Tiempo de espera para leer
ec_mcct=Tiempo m醲imo de conexi髇 de cliente
ec_mst=Tiempo m醲imo de apagado
ec_sst=Tiempo de espera de selecci髇 de sitio
ec_crt=Tiempo de espera de requerimiento de cliente
ec_hcc=緾lientes medio-cerrados?
ec_pt=Tiempo de espera persistente
ec_wr=Rel WAIS
ec_none=Ninguno
ec_host=M醧uina
ec_port=Puerto
ec_wrh=M醧uina de rel WAIS
ec_wrp=Puerto de rel WAIS
ec_buttsave=Salvar
ec_return=韓dice de squid

ech_header=Crear M醧uina de Cach
ech_header1=Editar M醧uina de Cach
ech_cho=Opciones de M醧uina de Cach
ech_h=Nombre de M醧uina
ech_parent=padre
ech_sibling=hermano
ech_multicast=multidifusi髇
ech_t=Tipo
ech_pp=Puerto Proxy
ech_ip=Puerto ICP
ech_po=縎髄o Proxy?
ech_y=S
ech_n=No
ech_siq=縀nv韔 consultas ICP?
ech_dc=緾ach por defecto?
ech_rrc=緾ach propuesta?
ech_ittl=Tiempo-que-est-vivo ICP
ech_d=Por defecto
ech_cw=Peso de la Cach
ech_co=縎髄o la m醩 cercana?
ech_nd=縎in resumen?
ech_nne=縎in intercambio NetDB?
ech_nd1=縎in retardo?
ech_ltp=Login a proxy
ech_nl=Sin login
ech_u=Usuario:
ech_p=Clave de Acceso:
ech_mr=緾ontestador Multidifusi髇?
ech_qhfd=Consultar m醧uina para dominios
ech_dqfd=No consultar para dominios
ech_buttsave=Salvar
ech_buttdel=Borrar
ech_return=lista de cach

eicp_header=Otras Cach閟
eicp_opcs=Otros servidores de cach proxy
eicp_nocd=No se han definido otras cach閟
eicp_aac=A馻dir otra cach
eicp_cso=Opciones de Selecci髇 de Cach
eicp_fdfd=Recoger dir閏tamente de los dominios
eicp_fdfi=Recoger dir閏tamente de las IPs
eicp_dif=Dominios dentro del cortafuegos
eicp_iif=IPs dentro del cortafuegos
eicp_dfuc=Dir閏tamente recoger URLs que contengan
eicp_d=Por defecto
eicp_bpfsp=縋asar por alto sonido (ping) para padre soltero?
eicp_y=S
eicp_n=No
eicp_secs=segs
eicp_ssip=縀nviar fuente dentro de sonido (ping)?
eicp_crt=Tiempo de espera de r閜lica de cach
eicp_iqt=Tiempo de espera de consulta ICP
eicp_mit=Tiempo de espera de ICP multidifusi髇
eicp_dpt=Tiempo de espera de par muerto
eicp_h=Nombre de m醧uina
eicp_t=Tipo
eicp_pp=Puerto Proxy
eicp_ip=Puerto ICP
eicp_return=韓dice de squid
eicp_always=ACLs a recoger dir閏tamente
eicp_noalways=No se han definido ACL de recogida directa
eicp_addalways=A馻dir ACLs a recoger dir閏tamente
eicp_never=ACLs a nunca recoger dir閏tamente
eicp_nonever=No se hand definido ACLs de nunca recoger dir閏tamente
eicp_addnever=A馻dir ACLs de donde nunca recoger dir閏tamente

elogs_header=Historial
elogs_lalo=Opciones de Historial y de archivo de Historial
elogs_alf=Archivo de acceso a historial
elogs_dlf=Depurar archivo de historial
elogs_slf=Almacenaje de archivo de historial
elogs_cmf=Archivo de metadatos de Cach
elogs_uhlf=縐sar formato de historial HTTPD?
elogs_lmh=縇levar historial de cabeceras MIME?
elogs_ualf=Archivo de historial de agente de usuario
elogs_pf=Archivo PID
elogs_prilfa=Realizar b鷖quedas de identidad RFC931 para las ACLs
elogs_rit=Tiempo de espera de identificaci髇 RFC931
elogs_dril=縃acer b鷖quedas de identificaci髇 RFC931?
elogs_lfh=縇levar historial de nombres de m醧uina completos?
elogs_ln=M醩cara de red de historial
elogs_do=Opciones de depuraci髇
elogs_mht=Tabla de cabeceras MIME
elogs_return=韓dice de squid

emem_dheader=Uso de Memoria y Disco
emem_header=Uso de Memoria
emem_maduo=Opciones de Uso de Memoria y de Disco
emem_mul=L韒ite de uso de memoria
emem_dul=L韒ite de uso de disco
emem_fcs=Medida de cach FQDN
emem_mb=MB
emem_kb=kB
emem_mhwm=Marca de Pleamar de Memoria
emem_mlwm=Marca de Bajamar de Memoria
emem_dhwm=Marca de Pleamar de Disco
emem_dlwm=Marca de Bajamar de Disco
emem_mcos=Medida m醲ima de objeto de cach
emem_iacs=Medida de cach de direcci髇 IP
emem_e=entradas
emem_ichwm=Marca de Pleamar de cach IP
emem_iclwm=Marca de Bajamar de cach IP
emem_crp=Pol韙ica de reemplazamiento de disco
emem_lru=Menos usado reci閚temente
emem_gdsf=Frecuencia de medida dual Greedy
emem_lfuda=Din醡icamente menos usado frecu閚temente
emem_hlru=Pila menos usada frecu閚temente
emem_return=韓dice de squid
emem_mrp=Pol韙ica de reemplazamiento de Memoria

emisc_header=Opciones Varias
emisc_mo=Opciones de Opciones Varias
emisc_sdta=Iniciar direcciones de prueba de DNS
emisc_slr=Rotaciones de archivo de historial SIGUSR1
emisc_dd=Dominio por defecto
emisc_sp=Proxy SSL
emisc_nghp=Proxy HTTP No-GET
emisc_emt=Texto de mensajes de error
emisc_pcs=縀stad韘ticas por cliente?
emisc_xffh=緾abecera de X-Reenviado-Para (X-Forwarded-For)?
emisc_liq=縇levo historial de consultas ICP?
emisc_mdh=N鷐ero m韒ino de saltos directos
emisc_kmffu=縈antener la memoria para uso futuro?
emisc_aomtk=Cantidad de memoria a mantener
emisc_u=Ilimitada
emisc_htpt=Cabeceras a pasar directamente
emisc_ah=Todas las cabeceras
emisc_oh=S髄o las cabeceras
emisc_ae=Todas excepto
emisc_a=縃acer an髇imas?
emisc_off=Desactivado
emisc_std=Est醤dar
emisc_par=Paranoico
emisc_fua=Usuario-Agente Falso
emisc_return=韓dice de squid
emisc_hauhh=Acelerador HTTP Usa Cabecera de M醧uina
emisc_hah=M醧uina Aceleradora HTTP
emisc_hap=Puerto Acelerador HTTP
emisc_hawp=Acelerador HTTP con Proxy

eports_header=Puertos y Trabajo en Red
eports_pano=Opciones de Puertos y Trabajo en Red
eports_paap=Direcciones Proxy y puertos
eports_p=Puerto
eports_hia=Nombre de m醧uina/Direcci髇 IP
eports_pp=Puerto Proxy
eports_ip=Puerto ICP
eports_ota=Direcci髇 TCP de salida
eports_ita=Direcci髇 TCP de entrada
eports_a=Cualquiera
eports_oua=Direcci髇 UDP de salida
eports_iua=Direcci髇 UDP de entrada
eports_mg=Grupos de multidifusi髇
eports_trb=B鷉er de recepci髇 TCP
eports_od=el de por defecto del SO
eports_return=韓dice de squid

eprogs_header=Programas de Ayuda
eprogs_chpo=Opciones de Programas de Ayuda de Cach
eprogs_sfp=Programa FTP de Squid
eprogs_fo=Opciones de FTP
eprogs_fcv=Ancho de columna FTP
eprogs_c=caracteres
eprogs_afl=Login an髇imo FTP
eprogs_sdp=Programa DNS de Squid
eprogs_nodp=N鷐ero de programas de DNS
eprogs_adtr=A馻dir dominio a requerimientos
eprogs_dsa=Direcciones de servidor DNS
eprogs_fr=De resolv.conf
eprogs_ccp=Programa de limpieza de Cach
eprogs_spp=Programa de sonido (ping) de Squid
eprogs_crp=Programa de redireccionamiento de Cliente
eprogs_norp=N鷐ero de programas de redireccionamiento
eprogs_cap=Programa de Autentificaci髇 de Cliente
eprogs_noap=N鷐ero de programas de autentificaci髇
eprogs_return=韓dice de squid

euser_header=Crear Usuario de Proxy
euser_header1=Editar Usuario de Proxy
euser_pud=Detalles de Usuario de Proxy
euser_u=Nombre de Usuario
euser_p=Clave de Acceso
euser_u1=Sin cambios
euser_return=lista de usuarios

ahttp_header=Crear Restricciones de Proxy
ahttp_header1=Editar Restricciones de Proxy
ahttp_pr=Restricci髇 de Proxy
ahttp_a=Acci髇
ahttp_a1=Permitir
ahttp_d=Denegar
ahttp_ma=Coincidir con ACLs
ahttp_dma=No coincidir con ACLs
ahttp_return=Lista de ACL

sahttp_ftspr=No pude salvar restricci髇 proxy

aicp_header=Crear Restricci髇 ICP
aicp_header1=Editar Restricci髇 ICP
aicp_ir=Restricci髇 ICP
aicp_a=Acci髇
aicp_a1=Permitir
aicp_d=Denegar
aicp_ma=Coincidir con ACLs
aicp_dma=No coincidir con ACLs
aicp_return=Lista de ACL

saicp_ftsir=No pude salvar restricci髇 ICP

icache_ftic=No pude inicializar cach
icache_ymcautrsa=Debes de seleccionar un usuario para que ejecute Squid
icache_header=Inicializar Cach
icache_itscwtc=Inicializando la cach de Squid con el comando <tt>$1</tt>...
icache_return=韓dice de squid

restart_ftrs=No pude reconfigurar squid

sadmin_ftsao=No pude salvar opciones administrativas
sadmin_header=Cambiar Propiedad
sadmin_msg1=Has cambiado el usuario o grupo bajo el cual se ejecuta Squid. Para que tenga efecto deb韉amente, la propiedad de todos los archivos de historial y de cach deber韆 de ser actualizada y Squid rearrancado.
sadmin_buttco=Cambiar Propiedad
sadmin_return=韓dice
sadmin_inavea='$1' no es una direcci髇 v醠ida de correo
sadmin_inavh='$1' no es un nombre v醠ido de m醧uina
sadmin_inavap='$1' no es un per韔do de anunciaci髇 v醠ido
sadmin_inavp='$1' no es un puerto v醠ido

sauth_ftsao=No pude salvar opciones de autentificaci髇
sauth_iomuf=Nombre de archivo de usuarios inv醠ido o sin poner
sauth_iomd=dominio inv醠ido o sin poner
sauth_msg1=Tu versi髇 de Squid no ha sido compilada con soporte para autentificaci髇 proxy

scache_ftsco=No pude salvar opciones de cach
scache_emsg0=Debes de digitar al menos un directorio de cach
scache_emsg1=El directorio de cach '$1' no existe
scache_emsg2='$1' no es una medida de requerimiento v醠ida
scache_emsg3='$1' no es un tiempo de requerimiento de cach v醠ido
scache_emsg4='$1' no es un tiempo de cach de DNS v醠ido
scache_emsg5='$1' no es un tiempo de espera v醠ido
scache_emsg6='$1' no es un tiempo v醠ido
scache_emsg7='$1' no es un n鷐ero v醠ido de directorios
scache_emsg8=El n鷐ero de directorios debe de ser >= 1
scache_emsg9=El n鷐ero de directorios debe de ser <= 256
scache_emsg10='$1' no es una medida de objeto v醠ida
scache_emsg11='$1' no es un n鷐ero v醠ido de objetos
scache_emsg12='$1' no es una medida v醠ida de directorio
scache_emsg13='$1' no es una m醧uina v醠ida
scache_emsg14='$1' no es un puerto v醠ido

schost_ftsc=No pude salvar cach
schost_emsg1='$1' no es un nombre de m醧uina de cach v醠ido
schost_emsg2='$1' no es un puerto proxy v醠ido
schost_emsg3='$1' no es un puerto ICP v醠ido
schost_emsg4='$1' no es un tiempo-que-est-vivo v醠ido
schost_emsg5='$1' no es un peso v醠ido

sicp_ftsco=No puede salvar opciones de cach
sicp_emsg1='$1' no es un tiempo de espera v醠ido

slogs_ftslo=No pude salvar opciones de historial
slogs_emsg1='$1' no es un nombre de archivo absoluto
slogs_emsg2='$1' no es un nombre de archivo v醠ido
slogs_emsg3=El directorio '$1' no existe
slogs_emsg4='$1' no es una m醩cara de red v醠ida
slogs_emsg5='$1' no es una lista v醠ida de opciones de depuraci髇

smem_ftsmo=No pude salvar opciones de memoria
smem_emsg1='$1' no es una medida de cach v醠ida
smem_emsg2='$1' no es una marca de pleamar v醠ida
smem_emsg3='$1' no es una marca de bajamar v醠ida
smem_emsg4='$1' no es una medida de obeto v醠ida

smisc_ftso=No pude salvar las opciones
smisc_emsg1='$1' no es un n鷐ero v醠ido de rotaciones
smisc_emsg2='$1' no es un dominio v醠ido
smisc_emsg3='$1' no es un proxy v醠ido
smisc_emsg4='$1' no es un n鷐ero v醠ido de saltos

sport_ftspo=No pude salvar opciones de puerto
sport_emsg1='$1' no es un n鷐ero de puerto v醠ido
sport_emsg2='$1' no es una direcci髇 v醠ida
sport_emsg3='$1' no es una medida v醠ida de b鷉er

sprog_ftshpo=No pude salvar opciones de programa de ayuda
sprog_emsg1=Opciones FTP sin poner
sprog_emsg2='$1' no es un programa v醠ido
sprog_emsg3='$1' no es un programa ejecutable
sprog_emsg4='$1' no es un login FTP v醠ido
sprog_emsg5='$1' no es un n鷐ero de programas v醠ido
sprog_emsg6='$1' no es un ancho de columna v醠ido
sprog_emsg7=No se han digitado servidores DNS
sprog_emsg8='$1' no es una direcci髇 IP v醠ida

suser_ftsu=No pude salvar usuario
suser_emsg1=Nombre de usuario inv醠ido o sin poner

start_ftsq=No pude arrancar squid
stop_ftsq=No pude parar squid

calamaris_title=An醠isis de Historial de Calamaris
calamaris_last=Limitando an醠isis a las $1 鷏timas l韓eas de historiales...
calamaris_eprog=No se ha encontrado el ejecutable '$1' de calamaris. Quiz醩 no est instalado en tu sistema o tu <a href='$2'>configuraci髇 del m骴ulo</a> es incorrecta.
calamaris_elogs=El archivo de historial $1 no contiene archivos <tt>access.log</tt>. Quiz醩 a鷑 no se ha ejecutado squid o tu <a href='$2'>configuraci髇 del m骴ulo</a> es incorrecta.
calamaris_gen=Informe generado en $1

lib_emsg1='$1' no es una direcci髇 IP v醠ida
lib_seconds=segundos
lib_minutes=minutos
lib_hours=horas
lib_days=d韆s
lib_weeks=semanas
lib_fortnights=quincenas
lib_months=meses
lib_years=a駉s
lib_decades=d閏adas
lib_emsg2='$1' no es un n鷐ero v醠ido de $2
lib_kb=kBs
lib_mb=MBs
lib_gb=GBs
lib_emsg3='$1' no es un n鷐ero v醠ido de $2
lib_aclca=Direcci髇 de Cliente
lib_aclwsa=Direcci髇 de Servidor Web
lib_aclch=Nombre de M醧uina de Cliente
lib_aclwsh=Nombre de M醧uina de Servidor Web
lib_acldat=Fecha y Hora
lib_aclur=Expresi髇 URL
lib_aclupr=Expresi髇 de Trayectoria URL
lib_aclup=Puerto URL
lib_aclup1=Protocolo URL
lib_aclrm=M閠odo de Requerimiento
lib_aclbr=Expresi髇 de Navegador
lib_aclpl=Login en Proxy
lib_aclsan=N鷐ero de fuente AS
lib_acldan=N鷐ero de destino AS
lib_aclea=Autentificaci髇 Externa
lib_aclcr=Expresi髇 de Cliente
lib_aclwsr=Expresi髇 de Servidor Web
lib_aclru=Usuario RFC931
lib_aclpia=Direcci髇 IP de Proxy
lib_aclmc=M醲imas Conexiones
lib_aclpp=Puerto Proxy
lib_aclsc=Comunidad SNMP
lib_aclrmt=Requerir Tipo MIME
lib_aclarp=Direcci髇 Ethernet
lib_aclear=Regexp de Autorizaci髇 Externa
lib_buttac=Aplicar Cambios
lib_buttss=Parar Squid
lib_buttss1=Arrancar Squid

log_ports=Cambiadas opciones de puertos y de red
log_icp=Cambiadas otras opciones de cach
log_mem=Cambiadas opciones de uso de memoria
log_logs=Cambiadas opciones de historial
log_cache=Cambiadas opciones de cach
log_progs=Cambiadas opciones de programa ayudante
log_admin=Cambiadas opciones administrativas
log_misc=Cambiadas opciones varias
log_clear=Cach limpiada y reconstru韉a
log_acl_create=Creada ACL $1
log_acl_modify=Modificada ACL $1
log_acl_delete=Borrada ACL $1
log_http_create=Creada restricci髇 proxy
log_http_modify=Modificada restricci髇 proxy
log_http_delete=Borrada restricci髇 proxy
log_http_move=Movida restricci髇 proxy
log_icp_create=Creada restricci髇 ICP
log_icp_modify=Modificada restricci髇 ICP
log_icp_delete=Borrada restricci髇 ICP
log_icp_move=Movida restricci髇 ICP
log_stop=Parado servidor proxy
log_start=Arrancado servidor proxy
log_apply=Cambios aplicados
log_host_create=Creada m醧uina de cach $1
log_host_modify=Modificada m醧uina de cach $1
log_host_delete=Borrada m醧uina de cach $1
log_init=Cach inicializado
log_user_create=Creado usuario de proxy $1
log_user_delete=Borrado usuario de proxy $1
log_user_modify=Modificado usuario de proxy $1
log_always_create=Creada recogida directar ACLs
log_always_modify=Modificada recogida directa ACLs
log_always_delete=Borrada recogida directa ACLs
log_always_move=Movida recogida directar ACLs
log_never_create=Creada nunca recoger dir閏tamente ACLs
log_never_modify=Modificada nunca recoger dir閏tamente ACLs
log_never_delete=Borrada nunca recoger dir閏tamente ACLs
log_never_move=Movida nunca recoger dir閏tamente ACLs

acl_root=Directorio ra韟 para los archivos ACL

always_create=Crear Recogida Directa
always_edit=Editar Recogida Directa
always_header=Dir閏tamente recoger requerimientos que coincidan con ACLs

never_create=Crear Recogida Indirecta
never_edit=Editar Recogida Indirecta
never_header=Nunca recoger dir閏tamente requerimientos que coincidan con ACLs

  07070100071d96000081a40000000000000002000000013ac0389f00005a71000000200000000000000000000000000000001400000003reloc/squid/lang/fr   index_header=Serveur proxy Squid
index_msgnoconfig=Le fichier de configuration <tt>$1</tt> de squid n'existe pas. Si Squid est install, modifiez la <a href=/config.cgi?$2 >configuration du module</a> pour avoir le bon chemin d'acc鑣.
index_msgnoexe=Le fichier executable <tt>$1</tt> n'existe pas. Si Squid est install sur votre syst鑝e, modifiez la <a href=/config.cgi?$2 >configuration du modul</a> pour avoir le bon chemin d'acc鑣.
index_msgnosupported=Votre version de Squid n'est pas support閑 par webmin. Seules les versions <tt>1.1</tt>, <tt>2.0</tt>, <tt>2.1</tt>, <tt>2.2</tt> et <tt>2.3</tt> sont support閑s par ce module.
index_msgnodir1=Les r閜ertoires de cache de Squid <tt>$1</tt> n'ont pas 閠 initialis閟.
index_msgnodir2=Le r閜ertoire de cache de Squid <tt>$1</tt> n'a pas 閠 initialis.
index_msgnodir3=Ceci doit 阾re fait avant le d閙arrage de Squid.
index_buttinit=Initialisation du cache
index_asuser=comme utilisateur Unix
index_portsnets=Ports et options de r閟eau
index_othercaches=Ajouter un cache
index_musage=Utilisation de la m閙oire
index_mdusage=Utilisation de la m閙oire et du disque
index_logging=Fichiers logs
index_copts=Options du cache
index_hprogs=Programmes utiles
index_actrl=Listes d'acc鑣
index_admopts=Administraiton de la m閙oire-cache
index_proxyauth=Authentication du proxy
index_miscopt=Options diverses
index_cms=Suivie du cache
index_rebuild=Vider et r-initialiser la m閙oire-cache
index_calamaris=Calamaris Log Analysis
index_return=l'index de squid

buttsave=Sauver
buttdel=D閠ruire
buttcreat=Cr閑r
yes=Oui
no=Non
default=D閒aut
none=Aucun
on=Marche
off=Arr阾

acl_header1=Cr閑r ACL
acl_header2=Editer ACL
acl_name=Nom ACL
acl_fromip=de l'IP
acl_toip= l'IP
acl_nmask=Masque de r閟eau
acl_ipaddr=Adresse IP
acl_domains=Domaines
acl_dofw=Jours de la semaine
acl_sel=Selection..
acl_all=Tous
acl_dsun=Dimanche
acl_dmon=Lundi
acl_dtue=Mardi
acl_dwed=Mercredi
acl_dthu=Jeudi
acl_dfri=Vendredi
acl_dsat=Samedi
acl_hofd=Heures de la journ閑s
acl_to=
acl_regexp=Expressions rationnelles
acl_tcpports=Ports TCP
acl_urlproto=Protocols URL
acl_reqmethods=Methodes de la demande
acl_bregexp=Browser Regexp
acl_pusers=Utilisateurs Proxy
acl_eusers=Utilisateurs externes autoris閟
acl_case=Ignorer casse?
acl_eusersre=Expression rationnelle pour utilisateurs autoris閟
acl_asnum=AS Numbers
acl_rtime=Temps de refraichissement
acl_rfcusers=Utilisateurs RFC931
acl_mcr=Maximum Concurrent Requests
acl_psp=Port du serveur proxy
acl_scs=SNMP Community String
acl_rmt=Request MIME Type
acl_arp=Client ethernet addresses
acl_failurl=Failure URL
acl_buttsave=Sauver
acl_buttdel=Supprimer
acl_return=Liste ACL

aclsave_failsave=Ne peut sauver l'ACL
aclsave_faildel=Ne peut supprimer l'ACL
aclsave_epr=Cette ACL est appliqu閑  une autorisation d'acc鑣 du proxy
aclsave_eicpr=Cette ACL est appliqu閑 aux demandes ICP
aclsave_ename=Nom ACL invalide
aclsave_eexists=l'ACL '$1' existe d閖
aclsave_efrom='$1' n'est pas valide pour le champ "de l'IP"
aclsave_eto='$1' n'est pas valide pour le champ " l'IP"
aclsave_enmask='$1' n'est pas un masque de r閟eau correct
aclsave_eip='$1' n'est pas une adresse IP correcte
aclsave_ecdom=Le domaine pour le client n'est pas sp閏ifi
aclsave_esdom=Le domaine pour le serveur n'est pas sp閏ifi
aclsave_eshour=Heure de d閜art invalide
aclsave_eehour=Heure de fin invalide
aclsave_esmin=Minute de d閜art invalide
aclsave_eemin=Minute de fin invalide
aclsave_efile=Vous n'etes pas autoriez  閏rire dans le fichhier ACL '$1'

cach_err=Erreur
cach_nfound=Le programme g閞ant le cache Squid <tt>$1</tt> n'a pas 閠 trouv sur ce serveur. Votre fichier <a href=/config.cgi?$2 >de configuration du module</a> est peut-阾re incorrect.
cach_return=l'index de squid

chown_header=Changer de propri閠aire
chown_stop=Arr阾er squid ...
chown_done=.. fait
chown_chown=Changer de propri閠aire ...
chown_restart=Re-d閙arrer Squid ...
chown_failrestart=Erreur lors du re-d閙arrage de Squid ..
chown_return=l'index de squid

clear_header=Vider et reconstruire le cache
clear_msgclear=Etes-vous s鹯 de vouloir vider et reconstruire le cache de Squid ? Ceci d閠ruira <b>tous</b> les fichiers pr閟ents dans le cache.
clear_msgclear2=Vous devez etre s鹯 de ne pas utiliser ce cache pour communiquer avec le serveur webmin, auquel cas vous seriez d閏onnect lors de la d閟activation du cache.
clear_buttclear=Vider et reconstruire le cache
clear_stop=Arr阾 de Squid ...
clear_done=.. Fait
clear_del=Suppression des anciens fichiers du cache ..
clear_init=Initialisation du cache squid avec le commande <tt>$1</tt> ..
clear_failrestart=Erreur lors du re-d閙arrage de Squid ..
clear_return=l'index de squid

eacl_header=Control d'acc鑣
eacl_acls=Listes des contr鬺es d'acc鑣
eacl_name=Nom
eacl_type=Type
eacl_match=Correspond..
eacl_noacls=Pas de fichiers ACL d閒inis
eacl_buttcreate=Cr閑r une nouvelle ACL
eacl_pr=Restrictions du proxy
eacl_act=Action
eacl_acls1=ACL
eacl_move=D閜lacer
eacl_nopr=Aucune restriction proxy d閒inie
eacl_addpr=Ajouter une restriction au proxy
eacl_icpr=Restriction ICP
eacl_noicpr=Pas de restriction ICP d閒inie
eacl_addicpr=Ajouter une restriction ICP
eacl_return=l'index de squid
eacl_allow=Autoriser
eacl_deny=Interdit

eadm_header=Options administratives
eadm_aao=Options administratives et Annonces
eadm_runasuu=D閙arrer avec l'utilisateur Unix
eadm_nochange=Aucun changement
eadm_user=Utilisateur
eadm_group=Groupe
eadm_runasug=D閙arrer avec le groupe Unix
eadm_par=Proxy authentication realm
eadm_default=D閒aut
eadm_cmemail=Adresse email de l'administrateur de la m閙oire cache
eadm_vhost=Nom d'h魌e non visible
eadm_uniq=Nom d'h魌e unique
eadm_haliases=Autres cache DNS
eadm_none=Aucun
eadm_auto=Automatique
eadm_annto=D閏larer la m閙oire cache 
eadm_annevery=D閏larer la m閙oire cache toute
eadm_never=Jamais
eadm_uniqhn=Nom d'h魌e unique
eadm_cah=Cache announce host
eadm_cap=Cache announce port
eadm_caf=Cache announce file
eadm_none=None
eadm_annp=Interval entre annonces
eadm_buttsave=Sauver
eadm_return=l'index de squid

eauth_header=Authentication du proxy
eauth_aopt=Options d'authentication
eauth_puf=Fichier des utilisateurs du proxy
eauth_none=Aucun
eauth_nologin=Pas d'authentification pour le domaine
eauth_buttsave=Sauver
eauth_msgaccess=L'acc鑣 au serveur proxy est limit aux utilisateurs cit閟 ci-dessous. Apr鑣 l'ajout ou la suppression d'un utilisateur, squid doit 阾re re-d閙arr pour que les modifications soient prises en compte.
eauth_nmsgaccess=L'acc鑣 au serveur proxy est limit aux utilisateurs cit閟 ci-dessous. Ces utilisateurs sont 閚um閞閟 dans le fichier $1.
eauth_pusers=Utilisateurs
eauth_nopusers=Aucun utilisateur proxy n'est actuellement cr殚.
eauth_addpuser=Ajouter un utilisateur proxy
eauth_return=l'index de squid

ec_header=Options du cache
ec_cro=Options de requ阾es et de cache
ec_cdirs=R閜ertoire de cache
ec_default=Defaut
ec_listed=Enum閞ation..
ec_directory=R閜ertoire
ec_type=Type
ec_mos=Taille obj. (kB)
ec_size=Taille (MB)
ec_1dirs=R閜ertoires de niveau 1
ec_2dirs=R閜ertoires de niveau 2
ec_u=UFS
ec_ua=Async UFS
ec_diskd=DISKD
ec_1dirs1=R閜ertoires de niveau 1
ec_2dirs2=R閜ertoires de niveau 2
ec_aos=taille moyenne
ec_kb=kB
ec_mins=mins
ec_secs=secs
ec_opb=Objets par bucket
ec_ncuc=Ne pas cacher les URLs contenants
ec_ncum=Ne pas cacher les URLs correspondants
ec_ncua=Ne pas cacher les URLs pour les ACLs
ec_mct=Temps maximum de cache
ec_mrbs=Taille maximale des requ阾es
ec_mrhs=Taille maximale des en-t阾es de requ阾es
ec_mrbs1=Taille maximale du corps de retour
ec_mrs=Taille maximale de la requ阾e
ec_frct=Failed request cache time
ec_dlct=DNS lookup cache time
ec_fdct=Failed DNS cache time
ec_ct=Temps de connection d閜ass
ec_rt=Temps mort pour lecture de fichier
ec_mcct=Dur閑 maximale d'une connection d'un client
ec_mst=Temps maximale pour arr阾 du serveur
ec_sst=Temps maximale pour selectionner une site
ec_crt=Temps maximale d'attente de la demande d'un client
ec_hcc=Permettre au clients de fermer la cot de la transmission? 
ec_pt=Temps maximale pour la connexion TCP persistante
ec_wr=Le nom h魌e et port de WAIS
ec_none=None
ec_host=H魌e
ec_port=Port
ec_wrh=Le nom h魌e de WAIS
ec_wrp=Le port de WAIS
ec_buttsave=Sauver
ec_return=l'index de squid

ech_header=Cr閑r un lien avec un proxy
ech_header1=Editer un lien
ech_cho=Param鑤res d'un lien
ech_h=H魌e
ech_parent=parent
ech_sibling=sibling
ech_multicast=multicast
ech_t=Type
ech_pp=Port proxy
ech_ip=Port ICP
ech_po=Proxy seul?
ech_y=Oui
ech_n=Non
ech_siq=Envoyer une requ阾e ICP?
ech_dc=Cache par d閒aut?
ech_rrc=Circulaire des d閙andes?
ech_ittl=Temp maximal pour la demande ICP
ech_d=D閒aut
ech_cw=Coefficient de ponderation du cache
ech_co=Les plus proches?
ech_nd=Pas de synth鑣e?
ech_nne=Pas d'閏hange de NetDB?
ech_nd1=Pas de retard?
ech_ltp=Connection au proxy
ech_nl=pas de login
ech_u=User:
ech_p=Pass:
ech_mr=Membre du group 'multicast'?
ech_qhfd=Demander l'h魌e pour les domaines
ech_dqfd=Ne pas demander l'h魌e pour les domaines
ech_buttsave=Sauver
ech_buttdel=Supprimer
ech_return=cache list

eicp_header=Autres caches
eicp_opcs=Autre serveur de cache proxy
eicp_nocd=Pas d'autre cache d閒ini
eicp_aac=Ajouter un nouveau cache
eicp_cso=Cache Selection Options
eicp_fdfd=R閏up閞er directement dans les domaines
eicp_fdfi=R閏up閞er directement dans les IPs
eicp_dif=Domaines  l'int閞ieur d'un 'firewall'
eicp_iif=IPs   l'int閞ieur d'un firewall
eicp_dfuc=Rechercher les URL contenant
eicp_d=D閒aut
eicp_bpfsp=Bypass ping for single parent?
eicp_y=Oui
eicp_n=Non
eicp_secs=secs
eicp_ssip=Envoy une requ阾e ping?
eicp_crt=Temp maximal pour la reponse du cache
eicp_iqt=Temp maximal pour une demande ICP
eicp_mit=Temp maximal pour une demande ICP 'multicast'
eicp_dpt=Temp maximal pour declarer un cache mort
eicp_h=Nom d'h魌e
eicp_t=Type
eicp_pp=Port proxy
eicp_ip=Port ICP
eicp_return=l'index de squid
eicp_always=Les listes d'ac鑣s pour r閏up閞er directement
eicp_noalways=Les listes d'ac鑣s pour r閏up閞er directement ne sont pas d閒inies
eicp_addalways=Ajouter listes d'ac鑣s pour r閏up閞er directement
eicp_never=Les listes d'ac鑣s pour ne pas r閏up閞er directement
eicp_nonever=Les listes d'ac鑣s pour ne pas r閏up閞er directement ne sont pas d閒inies
eicp_addnever=Les listes d'ac鑣s pour ne r閏up閞er jamais directement

elogs_header=Enregistrement 
elogs_lalo=Options d'enregistrement et des fichiers logs
elogs_alf=Fichier d'enregistrement l'Ac鑣s
elogs_dlf=Fichier d'enregistrement D閎oguer
elogs_slf=Fichier d'enregistrement Stockage
elogs_cmf=Cache metadata file
elogs_uhlf=Utiliser le format d'enregistrement HTTPD?
elogs_lmh=Enregistrer les en-t阾es MIME?
elogs_ualf=User agent log file
elogs_pf=Fichier PID
elogs_prilfa=Perform RFC931 ident lookups for ACLs
elogs_rit=RFC931 ident timeout
elogs_dril=Do RFC931 ident lookups?
elogs_lfh=Enregistrer nom d'h魌e complet?
elogs_ln=Logging netmask
elogs_do=Les options de d閎oguer
elogs_mht=Les en-t阾es MIME
elogs_return=l'index de squid

emem_dheader=Utilisation de la m閙oire et des disques
emem_header=Utilisation de la m閙oire
emem_maduo=Options d'utilisation de la m閙oire et des disques
emem_mul=Limite d'utilisation de la m閙oire
emem_dul=Limite d'utilisation des disques
emem_fcs=FQDN cache size
emem_mb=Moctetes
emem_kb=koctetes
emem_mhwm=Memory: niveau haut de remplissage
emem_mlwm=Memory: niveau bas de remplissage
emem_dhwm=Disque: niveau haut de remplissage
emem_dlwm=Disque: niveau bas de remplissage
emem_mcos=La taille maximal d'objet
emem_iacs=La taille maximal de la m閙oire pour les adresses IP
emem_e=entr閑s
emem_ichwm=cache IP: niveau haut de remplissage
emem_iclwm=cache IP: niveau bas de remplissage
emem_crp=Algorithme de remplacement sur disque
emem_lru=Utilis le plus r閏ement
emem_gdsf=Greedy-dual size frequency
emem_lfuda=Dynamic least frequently used
emem_hlru=Heap least frequently used
emem_return=l'index de squid
emem_mrp=Algorithme de remplacement dans la m閙oire

emisc_header=Options diverses
emisc_mo=Options diverses
emisc_sdta=Startup DNS test addresses
emisc_slr=SIGUSR1 logfile rotations
emisc_dd=Domaine par d閒aut
emisc_sp=proxy SSL
emisc_nghp=Non-GET HTTP proxy
emisc_emt=Error messages text
emisc_pcs=La statistic pour les clients?
emisc_xffh=l'en-t阾e X-Forwarded-For?
emisc_liq=Enregistrer les demandes ICP?
emisc_mdh=Minimum direct hops
emisc_kmffu=Keep memory for future use?
emisc_aomtk=Amount of memory to keep
emisc_u=Unlimited
emisc_htpt=Headers to pass through
emisc_ah=Tous les en-t阾es
emisc_oh=Que des en-t阾es
emisc_ae=Tous  l'exception de
emisc_a=Anonymizer?
emisc_off=Off
emisc_std=Standard
emisc_par=Paranoid
emisc_fua=Fake User-Agent
emisc_return=squid index
emisc_hauhh=L'en-t阾e HTTP Accel Uses Host
emisc_hah=HTTP Accel Host
emisc_hap=HTTP Accel Port
emisc_hawp=HTTP Accel With Proxy

eports_header=Ports et r閟eau
eports_pano=Options des ports et de r閟eau
eports_paap=Adresse proxy et port
eports_p=Port
eports_hia=Adresse de nom d'h魌e/IP
eports_pp=Port proxy
eports_ip=Port ICP
eports_ota=Adresse TCP sortante
eports_ita=Adresse TCP entrante
eports_a=Tous
eports_oua=Adresse UDP sortante
eports_iua=Adresse UDP entrante
eports_mg=Groupe multicast
eports_trb=M閙oire de la r閏eption pour TCP
eports_od=OS par d閒aut
eports_return=index de squid

eprogs_header=Programmes d'aide
eprogs_chpo=Les options pour le programm d'aide de cache
eprogs_sfp=Le programm Squid FTP
eprogs_fo=Options FTP
eprogs_fcv=Largeur des colonnes FTP
eprogs_c=chars
eprogs_afl=Le nom d'utilisateur FTP 'anonymous'
eprogs_sdp=Le programme squid DNS
eprogs_nodp=Nombre de programme DNS
eprogs_adtr=Ajouter la domaine pour la demande
eprogs_dsa=Adresse du serveur DSN
eprogs_fr=de resolv.conf
eprogs_ccp=Programme d'initialisation du cache
eprogs_spp=Le programme squid 'ping'
eprogs_crp=Le programme de la redirection control閑
eprogs_norp=Nombre des processus de la redirection
eprogs_cap=Le programme d'Authentification control
eprogs_noap=Nombre de programme d'authentification
eprogs_return=index de squid

euser_header=Cr閑r un utilisateur proxy
euser_header1=Editer un utilisateur proxy
euser_pud=Details d'un utilsateurs proxy
euser_u=Nom de connection
euser_p=Mot de passe
euser_u1=Non modifi
euser_return=liste des utilisateurs

ahttp_header=Cr閑r une restrcition du proxy
ahttp_header1=Editer une restriction du proxy
ahttp_pr=Restriction du proxy
ahttp_a=Action
ahttp_a1=Autoris
ahttp_d=Interdit
ahttp_ma=Conforme ACLs
ahttp_dma=Non conforme ACLs
ahttp_return=Liste ACL

sahttp_ftspr=Impossible de sauvegarder la restriction du proxy

aicp_header=Cr閑r une restriction ICP
aicp_header1=Editer une restriction ICP
aicp_ir=Restriction ICP
aicp_a=Actiom
aicp_a1=Autoris
aicp_d=Interdit
aicp_ma=Conforme ACLs
aicp_dma=Non conforme ACLs
aicp_return=Liste ACL

saicp_ftsir=Impossible de sauver la restriction ICP

icache_ftic=Erreur lors de l'initialisation du cache
icache_ymcautrsa=Vous devez selectionner un utilisateur pour d閙arrer Squid comme
icache_itscwtc=Initialisation du cache de Squid  l'aide de la commande <tt>$1</tt> ..
icache_return=index de squid
icache_title=Cache initializ

restart_ftrs=Impossible de reconfigur squid

sadmin_ftsao=Impossible de sauver les options d'administration
sadmin_header=Changer le propri閠aire
sadmin_msg1=Vous avez chang les noms d'utilisateur et de groupe de squid. Pour que les changements soient effectifs, l'appartenance de tous les fichiers de cache et des fichiers de logs doivent 阾re mis  jour, et Squid doit 阾re red閙arr

sadmin_buttco=Changer de propri閠aire
sadmin_return=index de squid
sadmin_inavea='$1' n'est pas une adresse email valide
sadmin_inavh='$1' n'est pas un nom d'h魌e valide
sadmin_inavap='$1' n'est pas une p閞iode d'annonce valide
sadmin_inavp='$1' n'est pas un port valide

sauth_ftsao=Impossible de sauver les options d'authentification
sauth_iomuf=Fichier utilisateur invalide ou manquant
sauth_iomd=Domaine invalide ou manquant
sauth_msg1=Cette version de Squid  閠 compil閑 avec le support des authentifications proxy

scache_ftsco=Impossible de sauver les options du cache
scache_emsg0=Vous devez entrer au moins un r閜ertoire de cache
scache_emsg1=Le r閜ertoire de cache '$1' n'existe pas
scache_emsg2='$1' n'est pas la taille valide
scache_emsg3='$1' is not a valid failed request cache time
scache_emsg4='$1' n'est pas un temps de cache DNS valide
scache_emsg5='$1' n'est pas un d閘ais valide
scache_emsg6='$1' n'est pas une heure valide
scache_emsg7='$1' n'est pas un nombre de r閜ertoire valide
scache_emsg8=Le nombre de r閜ertoire doit 阾re >= 1
scache_emsg9=Le nombre de r閜ertoire doit 阾re <= 256
scache_emsg10='$1' n'est pas une taille d'objet valide
scache_emsg11='$1' n'est pas un nombre d'objet valide
scache_emsg12='$1' n'est pas une taille de r閜ertoire valide
scache_emsg13='$1' n'est pas un nom d'h魌e valide
scache_emsg14='$1' n'est pas un port valide

schost_ftsc=Impossible de sauver le cache
schost_emsg1='$1' n'est pas un nom de cache valide
schost_emsg2='$1' n'est pas un port proxy valide
schost_emsg3='$1' n'est pas un port ICP valide
schost_emsg4='$1' n'est pas un temps de vie valide
schost_emsg5='$1' n'est pas un coefficient de ponderation du cache
sicp_ftsco=Impossible de sauver les options de cache
sicp_emsg1='$1' n'est pas un d閘ais valide

slogs_ftslo=Impossible de sauver les options de connections
slogs_emsg1='$1' n'est pas un nom absolu de fichier
slogs_emsg2='$1' n'est pas un nom de fichier valide
slogs_emsg3=Le r閜ertoire '$1' n'existe pas
slogs_emsg4='$1' n'est pas un masque de r閟eau valide
slogs_emsg5='$1' n'est pas une liste d'options de d閎oguage valide

smem_ftsmo=Imposssible de sauver les options de m閙oire
smem_emsg1='$1' n'est pas une taille de cache valide
smem_emsg2='$1' n'est pas un niveau haut de remplissage
smem_emsg3='$1' n'est pas un niveau bas de remplissage
smem_emsg4='$1' n'est pas une taille d'objet valide

smisc_ftso=Impossible de sauver les options
smisc_emsg1='$1' n'est pas un nom de rotation valide
smisc_emsg2='$1' n'est pas un domaine valide
smisc_emsg3='$1' n'est pas un proxy valide
smisc_emsg4='$1' is not a valid number of hops

sport_ftspo=Impossible de sauver les options de port
sport_emsg1='$1' n'est pas un num閞o de port valide
sport_emsg2='$1' n'est pas une adresse valide
sport_emsg3='$1' n'est pas une taille de buffer valide

sprog_ftshpo=Impossible de sauver les options des programmes d'aide
sprog_emsg1=Options FTP manquantes
sprog_emsg2='$1' n'est pas un programme valide
sprog_emsg3='$1' n'est pas un programme ex閏utable
sprog_emsg4='$1' n'est pas un nom de connection FTP valide
sprog_emsg5='$1' n'est pas un nombre de programme valide
sprog_emsg6='$1' n'est pas une largeur de colonne valide
sprog_emsg7=Vous n'avez pas sp閏ifi de serveur DNS
sprog_emsg8='$1' n'est pas une adresse IP valdie

suser_ftsu=Impossible de sauver l'utilisateur
suser_emsg1=Nom d'utilisateur invalide ou manquant

start_ftsq=Impossible de d閙arrer Squid
stop_ftsq=Impossible d'arr閠er Squid

calamaris_title=Analyse des enregistrement Calamaris
calamaris_last=Limiter les analyses de logs sur les $1 derni鑢es lignes des fichiers de trace ..
calamaris_eprog=L'executable calamaris $1 ne pas trouv. Peut-阾re Calamaris n'est pas install sur votre system ou votre <a href='$2'>module configuration</a> n'est pas corect.
calamaris_elogs=Le repertoire de log $1 ne contient pas de fichier <tt>access.log</tt>. Squid n'a peut-阾re pas 閠 d閙arr, ou votre <a href='$2'>configuration du module</a> n'est pas correcte.
calamaris_gen=Rapport g閚閞 dans $1

lib_emsg1='$1' n'est pas une adresse IP valide
lib_seconds=secondes
lib_minutes=minutes
lib_hours=heures
lib_days=jours
lib_weeks=semaines
lib_fortnights=fortnights
lib_months=mois
lib_years=ann閑s
lib_decades=decades
lib_emsg2='$1' n'est pas un nombre valide de $2
lib_kb=kBs
lib_mb=MBs
lib_gb=GBs
lib_emsg3='$1' n'est pas un nombre valide de $2
lib_aclca=Adresse cliente
lib_aclwsa=Adresse du serveur WEB
lib_aclch=H魌e client
lib_aclwsh=Nom d'h魌e du serveur WEB
lib_acldat=Date et Heure
lib_aclur=L'expression rationelle pour URL
lib_aclupr=L'expression rationelle pour le chemin de URL
lib_aclup=Port URL
lib_aclup1=Protocol URL
lib_aclrm=M閠hode de r閟olution
lib_aclbr=L'expression rationelle pour navigateur
lib_aclpl=nom de connexion au proxy
lib_aclsan=Le nombre du system autonome source
lib_acldan=Le nombre du system autonome de destination
lib_aclea=Authentification ext閞ieur
lib_aclcr=L'expression rationelle pour client
lib_aclwsr=L'expression rationelle pour serveur Web
lib_aclru=Utilisateur RFC931
lib_aclpia=Adresse IP du proxy
lib_aclmc=Nombre maximal de connection
lib_aclpp=Num閞o de port du Proxy
lib_aclsc=Communaut SNMP
lib_aclrmt=Request MIME Type
lib_aclarp=Adresse Ethernet
lib_aclear=L'expression rationelle pour l'authentification ext閞ieur
lib_buttac=Appliquer les changements
lib_buttss=Arreter Squid
lib_buttss1=D閙arrer Squid

log_ports=Changer les options de port et de r閟eau
log_icp=Changer d'autres options du cache
log_mem=Changer des options de l'utilisation de la m閙oire
log_logs=Changer des options de connection
log_cache=Changer des options du cache
log_progs=Changer des options des programmes d'aide
log_admin=Changer des options d'administration
log_misc=Changer des options divers
log_clear=Nettoyer et reconstruire le cache
log_acl_create=Cr閑r ACL $1
log_acl_modify=Modifier ACL $1
log_acl_delete=Effacer ACL $1
log_http_create=Cr閑r une restriction du proxy
log_http_modify=Modifier une restriction du proxy
log_http_delete=Effacer une restriction du proxy
log_http_move=D閜lacer une restriction du proxy
log_icp_create=Cr閑r une resctriction ICP
log_icp_modify=Modifier une restriction ICP
log_icp_delete=Effacer une restriction ICP
log_icp_move=D閜lacer une restriction ICP
log_stop=Arret du serveur proxy
log_start=Mise ne route du serveur proxy
log_apply=Appliquer les changements
lien avec un proxy
log_host_create=Le lien avec un proxy $1 est cr殚
log_host_modify=Le lien avec un proxy $1 est modifi
log_host_delete=Le lien avec un proxy $1 est supprim
log_init=Initialiser le cache
log_user_create=Cr閑r un utilisateur proxy $1
log_user_delete=Effacer un utilisateur proxy $1
log_user_modify=Modifier un utilisateur proxy $1
log_always_create=La liste d'ac鑣s pour r閏up閞er directement est cr殚e
log_always_modify=La liste d'ac鑣s pour r閏up閞er directement est modifi閑
log_always_delete=La liste d'ac鑣s pour r閏up閞er directement est effac閑
log_always_move=La liste d'ac鑣s pour r閏up閞er directement est replac閑
log_never_create=La liste d'ac鑣s pour ne pas r閏up閞er directement est cr殚e.
log_never_modify=La liste d'ac鑣s pour ne pas r閏up閞er directement est modifi閑
log_never_delete=La liste d'ac鑣s pour ne pas r閏up閞er directement est effac閑
log_never_move=La liste d'ac鑣s pour ne pas r閏up閞er directement est remplac閑

acl_root=R閜ertoire racine des fichiers ACL

always_create=Cr閑r la liste d'ac鑣s pour r閏up閞er directement
always_edit=Editer la liste d'ac鑣s pour r閏up閞er directement
always_header=La liste d'ac鑣s pour l'en-t阾e des demandes pour r閏up閞er directement.

never_create=Create Indirect Fetch
never_edit=Edit Indirect Fetch
never_header=Never directly fetch requests matching ACLs

   07070100071d97000081a40000000000000002000000013ac0389f000055b1000000200000000000000000000000000000001400000003reloc/squid/lang/pl   index_header=Serwer proxy Squid
index_msgnoconfig=Plik konfiguracyjny Squida <tt>$1</tt> nie istnieje. Je秎i Squid jest zainstalowany, dostosuj swoj <a href=/config.cgi?$2 >konfiguracj modu硊</a>, aby korzysta砤 z&nbsp;prawid硂wych 禼ie縠k.
index_msgnoexe=Program Squida <tt>$1</tt> nie istnieje. Je秎i Squid jest zainstalowany, dostosuj swoj <a href=/config.cgi?$2 >konfiguracj modu硊</a>, aby korzysta砤 z&nbsp;prawid硂wej 禼ie縦i.
index_msgnosupported=Webmin nie obs硊guje Twojej wersji Squida. Jedynie wersje <tt>1.1</tt>, <tt>2.0</tt>, <tt>2.1</tt>, <tt>2.2</tt> i&nbsp;<tt>2.3</tt> s obs硊giwane przez ten modu.
index_msgnodir1=Twoje katalogi bufor體 Squida <tt>$1</tt> nie zosta硑 zainicjalizowane. 
index_msgnodir2=Tw骿 katalog bufor體 Squida <tt>$1</tt> nie zosta zainicjalizowany. 
index_msgnodir3=Dopiero jak to uczynisz, b阣zie mo縩a uruchomi Squida.
index_buttinit=Inicjalizuj bufory cache
index_asuser=jako u縴tkownik Uniksa
index_portsnets=Porty i&nbsp;sie
index_othercaches=Inne proxy
index_musage=Wykorzystanie pami阠i
index_mdusage=Wykorzystanie pami阠i i&nbsp;dysku
index_logging=Logowanie
index_copts=Opcje buforowania
index_hprogs=Programy pomocnicze
index_actrl=Kontrola dost阷u
index_admopts=Opcje administracyjne
index_proxyauth=Autoryzacja proxy
index_miscopt=Opcje r罂ne
index_cms=Statystyki zarz眃cy bufor體 cache
index_rebuild=Wyczy舵 i&nbsp;przebuduj bufory cache
index_calamaris=Analizator log體 Calamaris
index_return=indeksu

buttsave=Zachowaj
buttdel=Usu
buttcreat=Utw髍z
yes=Tak
no=Nie
default=Domy秎ne
none=Brak
on=W潮czone
off=Wy潮czone

acl_header1=Utw髍z ACL
acl_header2=Zmie ACL
acl_name=Nazwa ACL
acl_fromip=Z&nbsp;IP
acl_toip=Do IP
acl_nmask=Maska sieci
acl_ipaddr=Adresy IP
acl_domains=Domeny
acl_dofw=Dni tygodnia
acl_sel=Wybrane..
acl_all=Wszystkie
acl_dsun=Niedziela
acl_dmon=Poniedzia砮k
acl_dtue=Wtorek
acl_dwed=oda
acl_dthu=Czwartek
acl_dfri=Pi眛ek
acl_dsat=Sobota
acl_hofd=Godziny dnia
acl_to=do
acl_regexp=Wyra縠nia regularne
acl_tcpports=Porty TCP
acl_urlproto=Protoko硑 URL-i
acl_reqmethods=Metody zapyta
acl_bregexp=Wyra縠nie regularne dla przegl眃arki
acl_pusers=U縴tkownicy proxy
acl_eusers=Zewn阾rzni autoryzowani u縴tkownicy
acl_case=Uto縮amia wielkie i&nbsp;ma砮 litery?
acl_eusersre=Wyra縠nie regularne dla zewn阾rznych autoryzowanych u縴tkownik體
acl_asnum=Numery AS
acl_rtime=Czas od秝ie縜nia
acl_rfcusers=U縴tkownicy RFC931
acl_mcr=Maksymalna liczba konkurencyjnych zapyta
acl_psp=Port serwera proxy
acl_scs=馽uch wsp髄noty SNMP
acl_rmt=Typ MIME 勘dania
acl_arp=Edres ethernetowy klienta
acl_failurl=URL b酬du
acl_buttsave=Zachowaj
acl_buttdel=Usu
acl_return=listy ACL

aclsave_failsave=Nie uda硂 si zachowa ACL
aclsave_faildel=Nie uda硂 si usun辨 ACL
aclsave_epr=Ta ACL jest u縴wana przez ograniczenie proxy
aclsave_eicpr=Ta ACL jest u縴wana przez ograniczenie ICP
aclsave_ename=Niepoprawna nazwa ACL
aclsave_eexists=ACL o&nbsp;nazwie '$1' ju istnieje
aclsave_efrom='$1' nie jest poprawnym 紃骴硂wym (<tt>From</tt>) adresem IP
aclsave_eto='$1' nie jest poprawnym docelowym (<tt>To</tt>) adresem IP
aclsave_enmask='$1' nie jest poprawn mask sieci
aclsave_eip='$1' nie jest poprawnym adresem IP
aclsave_ecdom=Nie podano domeny klient體
aclsave_esdom=Nie podano domeny serwera
aclsave_eshour=Niepoprawna godzina rozpocz阠ia
aclsave_eehour=Niepoprawna godzina zako馽zenia
aclsave_esmin=Niepoprawna minuta rozpocz阠ia
aclsave_eemin=Niepoprawna minuta zako馽zenia
aclsave_efile=Nie masz praw zapisu do pliku ACL '$1'

cach_err=B潮d
cach_nfound=Nie znaleziono programu zarz眃cy bufor體 cache Squida <tt>$1</tt> w&nbsp;Twoim systemie. By mo縠 Twoja <a href=/config.cgi?$2 >konfiguracja modu硊</a> jest nieprawid硂wa.
cach_return=indeksu squida

chown_header=Zmie w砤禼iciela
chown_stop=Zatrzymywanie Squida ...
chown_done=.. Zako馽zone
chown_chown=Zmiana w砤禼iciela ...
chown_restart=Restart Squida ...
chown_failrestart=Nie uda硂 sie zrestartowa Squida ..
chown_return=indeksu squida

clear_header=Wyczy舵 i przebuduj cache
clear_msgclear=Czy jeste pewien, 縠 chcesz wyczy禼i i&nbsp;przebudowa bufory cache Twojego Squida? Spowoduje to usuni阠ie <b>wszystkich</b> plik體, z&nbsp;bufor體 cache oraz restart serwera Squid.
clear_msgclear2=Powiniene si upewni, 縠 nie u縴wasz tego proxy do komunikacji z&nbsp;serwerem Webmina lub zostaniesz roz潮czony w&nbsp;chwili wy潮czenia proxy.
clear_buttclear=Wyczy舵 i&nbsp;przebuduj bufory cache
clear_stop=Zatrzymywanie Squida ...
clear_done=.. Zako馽zone
clear_del=Usuwanie starych plik體 z&nbsp;bufor體 ..
clear_init=Inicjalizacja bufor體 Squida poleceniem <tt>$1</tt> ..
clear_failrestart=Nie uda硂 si zrestartowa Squida ..
clear_return=indeksu squida

eacl_header=Kontrola dost阷u
eacl_acls=Listy kontroli dost阷u (ACL)
eacl_name=Nazwa
eacl_type=Typ
eacl_match=Wzorzec..
eacl_noacls=Nie zdefiniowano ACL
eacl_buttcreate=Utw髍z now ACL
eacl_pr=Ograniczenia proxy
eacl_act=Dzia砤nie
eacl_acls1=ACL
eacl_move=Przesu
eacl_nopr=Nie zdefiniowano ogranicze proxy
eacl_addpr=Dodaj ograniczenie proxy
eacl_icpr=Ograniczenia ICP
eacl_noicpr=Nie zdefiniowano ogranicze ICP
eacl_addicpr=Dodaj ograniczenie ICP
eacl_return=indeksu squida
eacl_allow=pozw髄
eacl_deny=zabro

eadm_header=Opcje administracyjne
eadm_aao=Opcje administracyjne i&nbsp;rozg硂szeniowe
eadm_runasuu=Uruchom jako u縴tkownik Uniksa
eadm_nochange=Bez zmian
eadm_user=U縴tkownik
eadm_group=Grupa
eadm_runasug=Uruchom jako grupa Uniksa
eadm_par=Dziedzina autoryzacji proxy
eadm_default=Domy秎ne
eadm_cmemail=Adres e-mail zarz眃cy proxy       
eadm_vhost=Widoczna nazwa hosta
eadm_uniq=Unikalna nazwa hosta
eadm_haliases=Inne zbuforowane nazwy DNS
eadm_none=Brak
eadm_auto=Automatycznie
eadm_annto=Rozg砤szaj proxy do
eadm_annevery=Rozg砤szaj proxy co
eadm_never=Nigdy
eadm_uniqhn=Unikalna nazwa komputera
eadm_cah=Host rozg砤szania cache
eadm_cap=Port rozg砤szania cache
eadm_caf=Plik rozg砤szania cache
eadm_none=Brak
eadm_annp=Cz阺totliwo舵 rozg砤szania
eadm_buttsave=Zachowaj
eadm_return=indeksu squida

eauth_header=Autoryzacja proxy
eauth_aopt=Opcje autoryzacji
eauth_puf=Plik u縴tkownik體 proxy
eauth_none=Brak
eauth_nologin=Nie wymagane logowanie dla domeny
eauth_buttsave=Zachowaj
eauth_msgaccess=Dost阷 do Twojego serwera proxy jest ograniczony do poni縠j wymienionych u縴tkownik體. Po dodaniu, usuni阠iu lub skasowaniu uzytkownika trzeba zatrzyma i&nbsp;ponownie uruchomi Squida, aby zmiany zosta硑 zastosowane.
eauth_nmsgaccess=Dost阷 do Twojego serwera proxy jest ograniczony do poni縠j wymienionych u縴tkownik體, pobranych z&nbsp;pliku $1.
eauth_pusers=U縴tkownicy proxy
eauth_nopusers=Nie jest obecnie zdefiniowany 縜den u縴tkownik proxy.
eauth_addpuser=Dodaj nowy serwer proxy
eauth_return=indeksu squida

ec_header=Opcje buforowania
ec_cro=Opcje buforowania i&nbsp;zapyta
ec_cdirs=Katalogi bufor體
ec_default=Domy秎ne
ec_listed=Wymienione..
ec_directory=Katalog
ec_type=Typ
ec_mos=Rozmiar obiektu (KB)
ec_size=Rozmiar (MB)
ec_1dirs=Kat. 1. poziomu
ec_2dirs=Kat. 2. poziomu
ec_u=UFS
ec_ua=UFS asynchr.
ec_diskd=DISKD
ec_1dirs1=Katalogi pierwszego poziomu
ec_2dirs2=Katalogi drugiego poziomu
ec_aos=edni rozmiar obiektu
ec_kb=kB
ec_mins=min.
ec_secs=sek.
ec_opb=Obiekt體 w&nbsp;porcji
ec_ncuc=Nie buforuj URL-i zawieraj眂ych
ec_ncum=Nie buforuj URL-i wg wzorca
ec_ncua=Nie buforuj URL-i dla ACL
ec_mct=Maksymalny czas buforowania
ec_mrbs=Maksymalny rozmiar tre禼i zapytania
ec_mrhs=Maksymalny rozmiar nag丑wk體 zapytania
ec_mrbs1=Maksymalny rozmiar tre禼i odpowiedzi
ec_mrs=Maksymalny rozmiar zapytania
ec_frct=Czas buforowania b酬dnych zapyta
ec_dlct=Czas buforowania przeszukiwa DNS
ec_fdct=Czas buforowania b酬dow DNS
ec_ct=Czas przeterminowania po潮czenia
ec_rt=Czas przeterminowania odczytu
ec_mcct=Maks. czas po潮czenia z&nbsp;klientem
ec_mst=Maks. czas wy潮czania
ec_sst=Czas przeterminowania wyboru miejsca
ec_crt=Czas przeterminowania zapytania klienta
ec_hcc=Klienci p蟪zamkni阠i?
ec_pt=Sta硑 czas przeterminowania
ec_wr=Przekazywanie WAIS
ec_none=Brak
ec_host=Host
ec_port=Port
ec_wrh=Host przekazywania WAIS
ec_wrp=Port przekazywania WAIS
ec_buttsave=Zachowaj
ec_return=indeksu squida

ech_header=Nowy host proxy
ech_header1=Zmie host proxy
ech_cho=Opcje hosta proxy
ech_h=Nazwa hosta
ech_parent=macierzysty
ech_sibling=r體noprawny
ech_multicast=multicast
ech_t=Typ
ech_pp=Port proxy
ech_ip=Port ICP
ech_po=Tylko proxy?
ech_y=Tak
ech_n=Nie
ech_siq=Wysy砤 zapytania ICP?
ech_dc=Jest domy秎nym proxy?
ech_rrc=Proxy cykliczny?
ech_ittl=Czas 縴cia ICP
ech_d=Domy秎ne
ech_cw=R罂nicowanie proxy
ech_co=Tylko najbli縮zy?
ech_nd=Bez streszczenia?
ech_nne=Bez wymiany NetDB?
ech_nd1=Bez op蠹nienia?
ech_ltp=Logowanie do proxy
ech_nl=Bez logowania
ech_u=U縴tkownik:
ech_p=Has硂:
ech_mr=Odpowiadanie na multicasty?
ech_qhfd=Odpyta ten host dla domen
ech_dqfd=Nie pyta dla domen
ech_buttsave=Zachowaj
ech_buttdel=Usu
ech_return=listy proxy

eicp_header=Inne proxy
eicp_opcs=Inne buforuj眂e serwery proxy
eicp_nocd=Nie zdefiniowano innych proxy
eicp_aac=Dodaj nowy proxy
eicp_cso=Opcje wyboru proxy
eicp_fdfd=Sprowadza bezpo秗ednio z&nbsp;domen
eicp_fdfi=Sprowadza bezpo秗ednio z&nbsp;IP
eicp_dif=Domeny za firewallem
eicp_iif=IP za firewallem
eicp_dfuc=Sprowadza bezpo秗ednio URL-e zawieraj眂e
eicp_d=Domy秎ne
eicp_bpfsp=Pomija pinga dla pojedy馽zego macierzystego?
eicp_y=Tak
eicp_n=Nie
eicp_secs=sek.
eicp_ssip=Wyzy砤 紃骴硂 w&nbsp;pingu?
eicp_crt=Czas przeterminowania odpowiedzi proxy
eicp_iqt=Czas przeterminowania zapytania ICP
eicp_mit=Czas przeterminowania multicastu ICP
eicp_dpt=Czas uznania partnera za nieczynnego
eicp_h=Nazwa hosta
eicp_t=Typ
eicp_pp=Port proxy
eicp_ip=Port ICP
eicp_return=indeksu squida
eicp_always=ACL-e dla sprowadzania bezpo秗edniego
eicp_noalways=Brak ACL-i dla sprowadzania bezpo秗edniego
eicp_addalways=Dodaj ACL-e dla sprowadzania bezpo秗edniego
eicp_never=ACL-e dla niesprowadzania bezpo秗edniego
eicp_nonever=Brak ACL-i dla niesprowadzania bezpo秗edniego
eicp_addnever=Dodaj ACL-e dla niesprowadzania bezpo秗edniego

elogs_header=Logowanie
elogs_lalo=Logowanie i&nbsp;opcje log體
elogs_alf=Log dost阷u
elogs_dlf=Log pracy proxy
elogs_slf=Log bufor體
elogs_cmf=Plik metadanych dla bufor體
elogs_uhlf=U縴wa formatu log體 HTTPD?
elogs_lmh=Logowa nag丑wki MIME?
elogs_ualf=Log program體 u縴tkownika
elogs_pf=Plik z&nbsp;numerem PID
elogs_prilfa=Wykonywa identyfikacj RFC931 dla ACL
elogs_rit=Czas przeterminowania identyfikacji wg RFC931
elogs_dril=Wykonywa identyfikacj wg RFC931?
elogs_lfh=Logowa pe硁e nazwy host體?
elogs_ln=Maska logowania
elogs_do=Opcje 秎edzenia
elogs_mht=Tablica nag丑wk體 MIME
elogs_return=indeksu squida

emem_dheader=U縴cie pami阠i i dysku
emem_header=U縴cie pami阠i
emem_maduo=Opcje zu縴cia pami阠i i&nbsp;dysku
emem_mul=Limit zu縴cia pami阠i
emem_dul=Limit zu縴cia dysku
emem_fcs=Rozmiar bufora nazw host體 (FQDN)
emem_mb=MB
emem_kb=kB
emem_mhwm=G髍ny pr骻 dla pami阠i
emem_mlwm=Dolny pr骻 dla pami阠i
emem_dhwm=G髍ny pr骻 dla dysku
emem_dlwm=Dolny pr骻 dla dysku
emem_mcos=Maksymalny rozmiar buforowanego obiektu
emem_iacs=Rozmiar bufora adres體 IP
emem_e=wpis體
emem_ichwm=G髍ny pr骻 dla bufora IP
emem_iclwm=Dolny pr骻 dla bufora IP
emem_crp=Taktyka zast阷owania dysku
emem_lru=Najdawniej u縴wane
emem_gdsf=Cz阺totliwo舵 podwajania rozmiaru
emem_lfuda=Dynamika najrzadziej u縴wanych
emem_hlru=Gromadzi najrzadziej u縴wanych
emem_return=indeksu squida
emem_mrp=Taktyka zast阷owania pami阠i

emisc_header=Opcje r罂ne
emisc_mo=Opcje r罂ne
emisc_sdta=Pocz眛kowe kontrolne adresy DNS
emisc_slr=Rotacja logu po SIGUSR1
emisc_dd=Domy秎na domena
emisc_sp=Proxy dla SSL
emisc_nghp=Buforowa zapytania HTTP nie-GET
emisc_emt=Tekst w&nbsp;komunikatach b酬d體
emisc_pcs=Statystyka wg klient體?
emisc_xffh=Nag丑wek X-Forwarded-For?
emisc_liq=Logowa zapytania ICP?
emisc_mdh=Minimalna liczba bezpo秗ednich skok體
emisc_kmffu=Zachowa pami赕 na przysz硂舵?
emisc_aomtk=Zachowywana ilo舵 pami阠i
emisc_u=Nieograniczona
emisc_htpt=Przepuszczanie nag丑wk體
emisc_ah=Wszystkie nag丑wki
emisc_oh=Tylko nag丑wki
emisc_ae=Wszystkie opr骳z
emisc_a=Ukrywanie to縮amo禼i?
emisc_off=Wy潮czone
emisc_std=Standardowe
emisc_par=Dok砤dne
emisc_fua=Fa硈zywy program u縴tkownika
emisc_return=indeksu squida
emisc_hauhh=Akceleracja HTTP korzysta z&nbsp;nag丑wka Host
emisc_hah=Host akceleracji HTTP
emisc_hap=Port akceleracji HTTP
emisc_hawp=Akceleracja HTTP i&nbsp;proxy

eports_header=Porty i sie
eports_pano=Opcje port體 i&nbsp;sieci
eports_paap=Adresy i&nbsp;porty proxy
eports_p=Port
eports_hia=Nazwa hosta/Adres IP
eports_pp=Port proxy
eports_ip=Port ICP
eports_ota=Wychodz眂y adres TCP
eports_ita=Przychodz眂y adres TCP
eports_a=Dowolny
eports_oua=Wychodz眂y adres UDP
eports_iua=Przychodz眂y adres UDP
eports_mg=Grupa multicastowa
eports_trb=Bufor odbiorczy TCP
eports_od=Domy秎ny OS
eports_return=indeksu squida

eprogs_header=Programy pomocnicze
eprogs_chpo=Opcje programu obs硊gi cache
eprogs_sfp=Program FTP Squida
eprogs_fo=Opcje FTP
eprogs_fcv=Szeroko舵 kolumny FTP
eprogs_c=znak體
eprogs_afl=Anonimowy login FTP
eprogs_sdp=Program DNS Squida
eprogs_nodp=Liczba program體 DNS
eprogs_adtr=Dodawa domen do zapyta
eprogs_dsa=Adresy serwer體 DNS
eprogs_fr=Z&nbsp;resolv.conf
eprogs_ccp=Program opr罂niaj眂y bufory cache
eprogs_spp=Program ping Squida
eprogs_crp=Wybrany program przekierowuj眂y
eprogs_norp=Liczba program體 przekierowuj眂ych
eprogs_cap=Wybrany program autoryzuj眂y
eprogs_noap=Liczba program體 autoryzuj眂ych
eprogs_return=indeksu squida

euser_header=Utw髍z u縴tkownika proxy
euser_header1=Zmie u縴tkownika proxy
euser_pud=Dane u縴tkownika proxy
euser_u=Nazwa u縴tkownika
euser_p=Has硂
euser_u1=Nie zmienione
euser_return=listy u縴tkownik體

ahttp_header=Utw髍z ograniczenie proxy
ahttp_header1=Zmie ograniczenie proxy
ahttp_pr=Ograniczenie proxy
ahttp_a=Dzia砤nie
ahttp_a1=Pozw髄
ahttp_d=Zabro
ahttp_ma=Dopasuj do ACL
ahttp_dma=Nie dopasowuj do ACL
ahttp_return=listy ACL

sahttp_ftspr=Nie uda硂 si zachowa ograniczenia proxy

aicp_header=Utw髍z ograniczenie ICP
aicp_header1=Zmie ograniczenie ICP
aicp_ir=Ograniczenie ICP
aicp_a=Dzia砤nie
aicp_a1=Pozw髄
aicp_d=Zabro
aicp_ma=Dopasuj do ACL
aicp_dma=Nie dopasowuj do ACL
aicp_return=listy ACL

saicp_ftsir=Nie uda硂 si zachowa ograniczenia ICP

icache_ftic=Nie uda硂 si zainicjalizowa bufor體 cache
icache_ymcautrsa=Musisz wybra u縴tkownika, z&nbsp;uprawnieniami kt髍y Squid b阣zie dzia砤
icache_itscwtc=Inicjalizacja bufor體 cache Squida poleceniem <tt>$1</tt> ..
icache_return=indeksu squida
icache_title=Zanicjalizuj bufory cache

restart_ftrs=Nie uda硂 si przekonfigurowa Squida

sadmin_ftsao=Nie uda硂 si zachowa opcji administracyjnych
sadmin_header=Zmie w砤禼iciela
sadmin_msg1=Zmieni砮 u縴tkownika lub grup, z&nbsp;uprawnieniami kt髍ej Squid dzia砤. Aby zmiana odnios砤 skutek, musz zosta zmienione prawa do log體 oraz wykonany restart Squida.
sadmin_buttco=Zmie w砤禼iciela
sadmin_return=indeksu squida
sadmin_inavea='$1' nie jest poprawnym adresem e-mail
sadmin_inavh='$1' nie jest poprawn nazw hosta
sadmin_inavap='$1' nie jest poprawnym okresem rozg硂szenia
sadmin_inavp='$1' nie jest poprawnym portem

sauth_ftsao=Nie uda硂 sie zachowac opcji autoryzacji
sauth_iomuf=Niepoprawny lub brakuj眂y plik u縴tkownik體
sauth_iomd=Niepoprawna lub brakuj眂a domena
sauth_msg1=Twoja wersja Squida zosta砤 skompilowana bez obs硊gi autoryzacji proxy

scache_ftsco=Nie uda硂 sie zachowa opcji buforowania
scache_emsg0=Musisz poda co najmniej jeden katalog bufor體 cache
scache_emsg1=Katalog bufor體 '$1' nie istnieje
scache_emsg2='$1' nie jest poprawnym rozmiarem zapytania
scache_emsg3='$1' nie jest poprawnym czasem buforowania b酬dnych zapyta
scache_emsg4='$1' nie jest poprawnym czasem buforowania DNS
scache_emsg5='$1' nie jest poprawnym czasem przeterminowania
scache_emsg6='$1' nie jest poprawnym czasem
scache_emsg7='$1' nie jest poprawn liczb katalog體
scache_emsg8=Liczba katalog體 musi by >=&nbsp;1
scache_emsg9=Liczba katalog體 musi by <= 256
scache_emsg10='$1' nie jest poprawnym rozmiarem obiektu
scache_emsg11='$1' nie jest poprawn liczb obiekt體
scache_emsg12='$1' nie jest poprawnym rozmiarem katalogu
scache_emsg13='$1' nie jest poprawnym hostem
scache_emsg14='$1' nie jest poprawnym portem

schost_ftsc=Nie uda硂 sie zachowa proxy
schost_emsg1='$1' nie jest poprawn nazw hosta proxy
schost_emsg2='$1' nie jest poprawnym portem proxy
schost_emsg3='$1' nie jest poprawnym portem ICP
schost_emsg4='$1' nie jest poprawnym czasem 縴cia
schost_emsg5='$1' nie jest poprawn wag

sicp_ftsco=Nie uda硂 sie zachowa opcji bufor體 cache
sicp_emsg1='$1' nie jest poprawnym czasem przeterminowania

slogs_ftslo=Nie uda硂 sie zachowa opcji logowania
slogs_emsg1='$1' nie jest poprawn bezwzgl阣n nazw pliku
slogs_emsg2='$1' nie jest poprawn nazw pliku
slogs_emsg3=Katalog '$1' nie istnieje
slogs_emsg4='$1' nie jest poprawn mask sieci
slogs_emsg5='$1' nie jest poprawn list opcji 秎edzenia

smem_ftsmo=Nie uda硂 sie zachowa opcji pami阠i
smem_emsg1='$1' nie jest poprawnym rozmiarem bufor體
smem_emsg2='$1' nie jest poprawnym g髍nym progiem
smem_emsg3='$1' nie jest poprawnym dolnym progiem
smem_emsg4='$1' nie jest poprawnym rozmiarem obiektu

smisc_ftso=Nie uda硂 sie zachowa opcji
smisc_emsg1='$1' nie jest poprawn liczb rotacji
smisc_emsg2='$1' nie jest poprawn domen
smisc_emsg3='$1' nie jest poprawnym proxy
smisc_emsg4='$1' nie jest poprawn liczb przeskok體

sport_ftspo=Nie uda硂 sie zachowa opcji portu
sport_emsg1='$1' nie jest poprawnym numerem portu
sport_emsg2='$1' nie jest poprawnym adresem
sport_emsg3='$1' nie jest poprawnym rozmiarem buforu

sprog_ftshpo=Nie uda硂 si zachowa opcji program體 pomocniczych
sprog_emsg1=Brak opcji FTP
sprog_emsg2='$1' nie jest poprawnym programem
sprog_emsg3='$1' nie jest programem
sprog_emsg4='$1' nie jest poprawn nazw logowania FTP
sprog_emsg5='$1' nie jest poprawn liczb program體
sprog_emsg6='$1' nie jest poprawn liczb kolumn
sprog_emsg7=Nie podano serwer體 DNS
sprog_emsg8='$1' nie jest poprawnym adresem IP

suser_ftsu=Nie uda硂 sie zachowa u縴tkownika
suser_emsg1=Niepoprawna lub brakuj眂a nazwa u縴tkownika

start_ftsq=Nie uda硂 si uruchomi Squida
stop_ftsq=Nie uda硂 si zatrzyma Squida

calamaris_title=Analizator log體 Calamaris
calamaris_last=Ogranieczenie analizy do ostatnich $1 linii log體 ..
calamaris_eprog=Nie znaleziono programu Calamaris $1. By mo縠 nie zosta on zainstalowany lub Twoja <a href='$2'>konfiguracja modu硊</a> jest nieprawid硂wa.
calamaris_elogs=Katalog log體 $1 nie zawiera plik體 <tt>access.log</tt>. By mo縠 nie uruchamiano jeszcze Squida lub Twoja <a href='$2'>konfiguracja modu硊</a> jest nieprawid硂wa.
calamaris_gen=Raport wygenerowany $1

lib_emsg1='$1' nie jest poprawnym adresem IP
lib_seconds=sekund
lib_minutes=minut
lib_hours=godzin
lib_days=dni
lib_weeks=tygodni
lib_fortnights=dwutygodni
lib_months=miesi阠y
lib_years=lat
lib_decades=dekad
lib_emsg2='$1' nie jest poprawn liczb $2
lib_kb=kB
lib_mb=MB
lib_gb=GB
lib_emsg3='$1' nie jest poprawn liczb $2
lib_aclca=Adres klienta
lib_aclwsa=Adres serwera WWW
lib_aclch=Nazwa hosta klienta
lib_aclwsh=Nazwa hosta serwera WWW
lib_acldat=Data i&nbsp;czas
lib_aclur=Wyra縠nie regularne dla URL-a
lib_aclupr=Wyra縠nie regularne dla 禼ie縦i URL-a
lib_aclup=Port URL-a
lib_aclup1=Protok蟪 URL-a
lib_aclrm=Metoda zapyta
lib_aclbr=Wyra縠nie regularne dla przegl眃arki
lib_aclpl=Login proxy
lib_aclsan=瑀骴硂wy numer AS
lib_acldan=Docelowy numer AS
lib_aclea=Zewn阾rzna autoryzacja
lib_aclcr=Wyra縠nie regularne dla klienta
lib_aclwsr=Wyra縠nie regularne dla serwera WWW
lib_aclru=U縴tkownik RFC931
lib_aclpia=Adres IP proxy
lib_aclmc=Maksymalna liczba po潮cze
lib_aclpp=Port proxy
lib_aclsc=Wsp髄nota SNMP
lib_aclrmt=Typ MIME 勘dania
lib_aclarp=Adres ethernetowy
lib_aclear=Wyr. regularne dla zewn阾rznej autoryzacji
lib_buttac=Zastosuj zmiany
lib_buttss=Zatrzymaj Squida
lib_buttss1=Uruchom Squida

log_ports=Zmieniono opcje port體 i&nbsp sieci
log_icp=Zmieniono opcje innych proxy
log_mem=Zmieniono opcje zu縴cia pami阠i
log_logs=Zmieniono opcje logowania
log_cache=Zmieniono pcje buforowania
log_progs=Zmieniono opcje program體 pomocniczych
log_admin=Zmieniono opcje administracyjne
log_misc=Zmieniono opcje r罂ne
log_clear=Opr罂niono i&nbsp;przebudowano bufory cache
log_acl_create=Utworzono ACL $1
log_acl_modify=Zmieniono ACL $1
log_acl_delete=Usuni阾o ACL $1
log_http_create=Utworzono ograniczenie proxy
log_http_modify=Zmieniono ograniczenie proxy
log_http_delete=Usuni阾o ograniczenie proxy
log_http_move=Przesuni阾o ograniczenie proxy
log_icp_create=Utworzono ograniczenie ICP
log_icp_modify=Zmieniono ograniczenie ICP
log_icp_delete=Usuni阾o ograniczenie ICP
log_icp_move=Przeniesiono ograniczenie ICP
log_stop=Zatrzymano serwer proxy
log_start=Uruchomiono serwer proxy
log_apply=Zastosowano zmiany
log_host_create=Utworzono host proxy $1
log_host_modify=Zmieniono host proxy $1
log_host_delete=Usuni阾o host proxy $1
log_init=Inicjalizowano bufory cache
log_user_create=Utworzono u縴tkownika proxy $1
log_user_delete=Usuni阾o u縴tkownika proxy $1
log_user_modify=Zmieniono u縴tkownika proxy $1
log_always_create=Utworzono ACL-e bezpo秗edniego pobierania
log_always_modify=Zmieniono ACL-e bezpo秗edniego pobierania
log_always_delete=Usuni阾o ACL-e bezpo秗edniego pobierania
log_always_move=Przeniesiono ACL-e bezpo秗edniego pobierania
log_never_create=Utworzono ACL-e niebezpo秗edniego pobierania
log_never_modify=Zmieniono ACL-e niebezpo秗edniego pobierania
log_never_delete=Usuni阾o ACL-e niebezpo秗edniego pobierania
log_never_move=Przeniesiono ACL-e niebezpo秗edniego pobierania

acl_root=Katalog g丑wny dla plik體 z&nbsp;ACL

always_create=Utw髍z pobieranie bezpo秗ednie
always_edit=Zmie pobieranie bezpo秗ednie
always_header=Pobiera bezpo秗ednio dla zapyta pasuj眂ych do ACL

never_create=Utw髍z pobieranie niebezpo秗ednie
never_edit=Zmie pobieranie niebezpo秗ednie
never_header=Nigdy nie pobiera bezpo秗ednio dla zapyta pasuj眂ych do ACL
   07070100071d98000081a40000000000000002000000013ac0389f000042e5000000200000000000000000000000000000001700000003reloc/squid/lang/ru_RU    index_asuser=赅 镱朦珙忄蝈朦 Unix
eauth_nopusers=项朦珙忄蝈腓 镳铌耔 礤 铒疱溴脲睇.
yes=泥
emisc_pcs=项-觌桢眚耜 耱囹桉蜩赅?
acl_scs=羊痤赅 SNMP 杨钺耱忄
lib_kb=梳
eadm_auto=棱蝾爨蜩麇耜
ech_header=杨玟囗桢 数 疹耱
eports_paap=橡铌耔 噤疱襦  镱痱
index_logging=企痦嚯桤圉
ec_opb=吾牝钼 磬 箸咫
eacl_act=腻轳蜮桢
clear_buttclear=西桉蜩螯  襄疱耱痤栩 数
acl_name=褥 ACL
acl_sel=蔓狃囗睇..
emisc_header=橡铟桢 相疣戾蝠
aclsave_enmask='$1' 礤 怆弪 漕矬耱桁铋 爨耜铋 皴蜩
lib_mb=提
emisc_aomtk=暑腓麇耱忸 耦躔囗屐铋 镟蜩
buttdel=愉嚯栩
ec_secs=皴.
acl_fromip= IP
sadmin_header=如戾礤龛 橡噔铑犭噤囗
eprogs_fo=相疣戾蝠 FTP
eprogs_fr=如 resolv.conf
acl_hofd=奏覃 捻
emisc_sdta=袜鬣朦磬 DNS 镳钼屦赅 噤疱耦
eacl_icpr=毋疣龛麇龛 ICP
euser_header=杨玟囗桢 橡铌耔 项朦珙忄蝈
ec_hcc=项塍-玎牮 觌桢眚?
eadm_par=阳屦 镳铌耔 囿蝈眚梏桕圉梃
eprogs_spp=橡钽疣祆 ping 潆 Squid
ec_mrbs1=锑犟桁嚯 疣珈屦 蝈豚 铗忮蜞
acl_pusers=项朦珙忄蝈腓 橡铌耔
acl_dwed=佯邃
eadm_aao=相疣戾蝠 冷扈龛耱疣蜩忭  物钼妁屙
restart_ftrs=硒栳赅 镳 疱觐眙桡箴圉梃 squid
slogs_emsg1='$1' 礤 怆弪 噌耦膻蝽 桁屙屐 羿殡
sauth_iomuf=湾忮疱 桦 篁屦 羿殡 镱朦珙忄蝈脲
slogs_emsg2='$1' 礤 怆弪 漕矬耱桁 桁屙屐 羿殡
slogs_emsg3=枢蜞腩 '$1' 礤 耋耱怏弪
slogs_emsg4='$1' 礤 怆弪 漕矬耱桁铋 爨耜铋 皴蜩
slogs_emsg5='$1' 礤 怆弪 漕矬耱桁 耧桉觐 镟疣戾蝠钼 铗豚潢
slogs_ftslo=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼 骟痦嚯桊钼囗
emisc_ah=埋 玎泐腩怅
buttsave=杨躔囗栩
eprogs_dsa=冷疱襦 DNS 皴疴屦钼
elogs_rit=RFC931 ident 蜞殪囿
eprogs_noap=暑-忸 镳钽疣祆 囿蝈眚梏桕圉梃
eadm_annp=襄痂钿 筲邃铎脲龛
eacl_nopr=橡铌耔 钽疣龛麇龛 礤 铒疱溴脲睇
emisc_dd=念戾 镱 箪铍鬣龛
ec_sst=亦殪囿 恹犷疣 襦轵
emem_return=戾睨 squid
aclsave_eehour=湾漕矬耱桁 鬣 铌铐鬣龛
lib_buttss1=羊囵蝾忄螯 Squid
sadmin_inavap='$1' 礤 怆弪 漕矬耱桁 镥痂钿铎 铒钼妁屙
ech_siq=项覃豚螯 ICP 玎镳铖?
ec_directory=枢蜞腩
eacl_header=语疣怆屙桢 念耱箫铎
eports_pano=相疣戾蝠 彦蜩  项痱钼
eprogs_return=戾睨 squid
eprogs_nodp=暑-忸 镳钽疣祆 DNS
lib_days=漤.
晌釉撂躺蚁琢, 邢幸磷耘 <a href=/config.cgi?$2 >觐眙桡箴圉棹 祛潴</a> 潆 桉镱朦珙忄龛 觐痧尻蝽钽 矬蜩  羿殡.
acl_nmask=锑耜 皴蜩
index_actrl=语疣怆屙桢 念耱箫铎
emem_dul=髓扈 桉镱朦珙忄龛 滂耜
acl_dsun=骂耜疱皴龛
elogs_cmf=脏殡 戾蜞溧眄 挲
scache_emsg10='$1' 礤 怆弪 漕矬耱桁 疣珈屦铎 钺牝
scache_emsg11='$1' 礤 怆弪 漕矬耱桁 觐腓麇耱忸 钺牝钼
scache_emsg12='$1' 礤 怆弪 漕矬耱桁 疣珈屦铎 赅蜞腩汔
scache_emsg13='$1' 礤 怆弪 漕矬耱桁 躅耱铎
scache_emsg14='$1' 礤 怆弪 漕矬耱桁 镱痱铎
sadmin_inavea='$1' 礤 怆弪 漕矬耱桁 镱黩钼 噤疱耦
eacl_addpr=念徉忤螯 镳铌耔 钽疣龛麇龛
aclsave_faildel=硒栳赅 镳 箐嚯屙梃
schost_emsg1='$1' 礤 怆弪 漕矬耱桁 桁屙屐 躅耱 挲
schost_emsg2='$1' 礤 怆弪 漕矬耱桁 镳铌耔 镱痱铎
schost_emsg3='$1' 礤 怆弪 漕矬耱桁 ICP 镱痱铎
schost_emsg4='$1' 礤 怆弪 漕矬耱桁 怵屐屙屐 骅珥
schost_emsg5='$1' 礤 怆弪 漕矬耱桁 忮耦
emisc_emt=义犟 耦钺龛 钺 铠栳赅
ec_wrh=疹耱 WAIS 
lib_minutes=扈.
eports_return=戾睨 squid
ec_wrp=项痱 WAIS 
euser_u1=湾 戾弪
eicp_crt=亦殪囿 铗忮蜞 挲
aclsave_failsave=硒栳赅 镳 耦躔囗屙梃
aicp_dma=湾 耦怙噤.  ACL
emisc_a=理铐桁嚅珏?
eacl_pr=毋疣龛麇龛 镳铌耔
sadmin_ftsao=硒栳赅 镳 耦躔囗屙梃 噤扈龛耱疣蜩忭 镟疣戾蝠钼
emisc_u=湾 钽疣龛麇眍
eicp_cso=相疣戾蝠 蔓犷疣 数
emisc_mo=橡铟桢 相疣戾蝠
clear_header=西桉蜿  襄疱耱痤屙桢 数
acl_urlproto=URL 橡铗铌铍
eadm_runasug=朽犷蜞螯 镱 灭箫镱 Unix
eadm_runasuu=朽犷蜞螯 镱 项朦珙忄蝈脲 Unix
eprogs_afl=理铐桁. FTP 疱汨耱疣鲨
emisc_oe=埋 牮铎
emisc_oh=翌朦觐 玎泐腩怅
eports_ip=项痱 ICP
ec_buttsave=杨躔囗栩
eadm_return=戾睨 squid
clear_init=软桷栲腓玎鲨 Squid 挲 觐爨礓铋 <tt>$1</tt> ..
emem_iacs=朽珈屦 挲 IP 噤疱耦
ec_return=戾睨 squid
ech_qhfd=青镳帏桠囹 漕戾睇  躅耱钼
index_musage=锐镱朦珙忄龛 相蜩
emisc_mdh=惕龛祗 镳禧 镥疱躅漕
ec_1dirs=赅蜞腩汨 1泐 箴钼
eicp_bpfsp=吾躅滂螯 ping 潆 钿桧铟眍泐 痤滂蝈?
chown_failrestart=硒栳赅 镳 镥疱玎矬耜 Squid ..
icache_ftic=硒栳赅 镳 桧桷栲腓玎鲨 挲
smisc_ftso=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼
clear_failrestart=硒栳赅 镳 镥疱玎矬耜 Squid ..
ec_type=诣
eports_mg=罔痤觐忮蝈朦睇 (Multicast) 沭箫稃
emisc_sp=SSL 镳铌耔
eauth_return=戾睨 squid
eprogs_norp=暑-忸 镳钽疣祆 镥疱磬镳噔脲龛
lib_buttac=橡桧螯 如戾礤龛
elogs_header=企痦嚯桤圉
eadm_group=灭箫镟
sadmin_buttco=如戾龛螯 橡噔
eports_od=项 箪铍鬣龛 潆 窝
ec_u=UFS
eauth_puf=脏殡 镳铌耔 镱朦珙忄蝈脲
eports_pp=项痱 镳铌耔
lib_decades=溴赅
aclsave_ename=湾忮痦铄 桁 ACL
aicp_a1=朽琊屮栩
lib_weeks=礤.
eprogs_adtr=念徉怆螯 漕戾  玎镳铖囔?
aicp_a=腻轳蜮桢
aicp_d=青镳弪栩
icache_header=软桷栲腓玎鲨 数
eauth_nologin=湾 眢驿, 疱汨耱疣鲨  漕戾礤
ec_size=朽珈屦 (提)
aclsave_eexists=ACL 镱 桁屙 '$1' 箧 耋耱怏弪
aclsave_esmin=湾漕矬耱桁 磬鬣朦磬 扈眢蜞
acl_buttsave=杨躔囗栩
sprog_ftshpo=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼 镳钽痨 - 镱祛桕钼
acl_all=埋
ec_aos=佯邃龛 疣珈屦 钺牝
smem_emsg1='$1' 礤 怆弪 漕矬耱桁 疣珈屦铎 挲
ec_dlct=吗屐 挲痤忄龛 DNS 镳钼屦觇
smem_emsg2='$1' 礤 怆弪 漕矬耱桁铋 忮瘐礤 忄蝈痣桧桢
smem_emsg3='$1' 礤 怆弪 漕矬耱桁铋 龛骓彘 忄蝈痣桧桢
smem_emsg4='$1' 礤 怆弪 漕矬耱桁 疣珈屦铎 钺牝
saicp_ftsir=硒栳赅 镳 耦躔囗屙梃 ICP 钽疣龛麇龛
acl_dthu=族蜮屦
eauth_addpuser=念徉忤螯 眍忸泐 镱朦珙忄蝈 镳铌耔
smem_ftsmo=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼 镟蜩
ec_1dirs1=枢蜞腩汨 镥疴钽 箴钼
aicp_return=耧桉铌 ACL
emem_e=怩铈溴龛
ec_host=疹耱
lib_aclup1=橡铗铌铍 URL
emem_mhwm=洛瘐 忄蝈痣桧 镟蜩
lib_fortnights=2 礤.
ech_ittl=吗屐 骅珥 ICP
buttcreat=杨玟囹
clear_msgclear=蔓 筲屦屙  蝾, 黩 恹 躅蜩蝈 铟桉蜩螯  镥疱耱痤栩 挲? 橡 铎 狍潴 箐嚯屙 <b>怦</b> 挲痤忄眄 羿殡  Squid 狍溴 疱耱囵蝾忄.
lib_years=脲
acl_ipaddr=IP 冷疱
acl_reqmethods=体蝾潲 青镳铖钼
ahttp_dma=湾 耦怙噤.  ACL
acl_asnum=世 阻耠
emisc_xffh=X-Forwarded-For 玎泐腩忸?
lib_aclupr=绣.恹. 矬蜩 URL
acl_psp=项痱 橡铌耔 彦疴屦
aicp_ir=ICP 毋疣龛麇龛
ech_ltp=绣汨耱疣鲨 磬 镳铌耔
lib_hours=鬣.
off=蔓觌.
ech_buttsave=杨躔囗栩
ec_ct=亦殪囿 耦邃桧屙
acl_toip=袜 IP
emem_dhwm=洛瘐 忄蝈痣桧 滂耜
eacl_name=褥
eacl_match=杨怙噤噱..
eicp_dif=念戾睇 玎 皴蝈恹扈 疣磬扈
ahttp_a=腻轳蜮桢
ahttp_d=青镳弪栩
aicp_ma=杨怙噤.  ACL
sadmin_msg1=蔓 桤戾龛腓 镱朦珙忄蝈 桦 沭箫矬 镱 觐蝾痤 疣犷蜞弪 Squid. 碾 镳噔桦铋 嚓蜩忤玎鲨 桴 桤戾礤龛, 镳噔铑犭噤囗桢 怦艴 挲  骟痦嚯 羿殡钼 漕腈眍 猁螯 桤戾礤眍  Squid 漕腈屙 猁螯 疱耱囵蝾忄.
index_msgnoexe=锐镱腠屐 祛潴朦 Squid <tt>$1</tt> 礤 磬殇屙. 篷腓 Squid
eacl_move=襄疱戾耱栩
elogs_slf=企痦嚯 躔囗桦棂
emem_mlwm=丸骓 忄蝈痣桧 镟蜩
ec_mct=锑犟桁嚯铄 怵屐 挲痤忄龛
ahttp_a1=朽琊屮栩
lib_buttss=务蜞眍忤螯 Squid
acl_bregexp=绣.恹. 琉囿珏疣
emem_header=锐镱朦珙忄龛 相蜩
elogs_dlf=企痦嚯 铗豚潢
acl_dtue=买铕龛
lib_months=戾.
eacl_type=诣
ech_sibling=疣忭铒疣忭
eprogs_header=橡钽疣祆 - 项祛桕
acl_regexp=绣. 恹疣驽龛
acl_mcr=锑犟桁箪 相疣腚咫 青镳铖钼
ec_kb=梳
emem_maduo=相疣戾蝠 锐镱朦珙忄龛 相蜩  蔫耜
eauth_aopt=相疣戾蝠 荔蝈眚梏桕圉梃
emem_dlwm=丸骓 忄蝈痣桧 滂耜
eadm_nochange=湾 戾螯
chown_restart=襄疱玎矬耜 Squid ...
eadm_none=湾
sprog_emsg1=湾 镟疣戾蝠钼 FTP
sprog_emsg2='$1' 礤 怆弪 漕矬耱桁铋 镳钽疣祆铋
elogs_uhlf=锐镱朦珙忄螯 骟痦嚯 纛痨囹 HTTPD?
eicp_dpt=亦殪囿 戾痱忸泐 耦皴溧
sprog_emsg3='$1' 礤 怆弪 恹镱腠屐铋 镳钽疣祆铋
sprog_emsg4='$1' 礤 怆弪 漕矬耱桁 镱朦珙忄蝈脲 FTP
sprog_emsg5='$1' 礤 怆弪 漕矬耱桁 觐-忸 镳钽疣祆
sprog_emsg6='$1' 礤 怆弪 漕矬耱桁铋 痂眍 觐腩黻
sprog_emsg7=湾 忖邃屙 DNS 皴疴屦
sprog_emsg8='$1' 礤 怆弪 漕矬耱桁 IP 噤疱耦
cach_nfound=橡钽疣祆 - 戾礤滏屦 挲 Squid <tt>$1</tt> 礤 磬殇屙. 骂珈铈眍 <a href=/config.cgi?$2 >觐眙桡箴圉 祛潴</a> 礤 觐痧尻蝽.
index_copts=相疣戾蝠 数
eicp_d=项 箪铍鬣龛
eicp_h=褥 躅耱
eicp_n=湾
eicp_t=诣
ec_frct=硒栳铟眍 怵屐 玎镳铖
eicp_y=泥
default=项 箪铍鬣龛
emem_kb=梳
eports_header=彦螯  项痱
index_buttinit=软桷栲腓玷痤忄螯
eauth_none=湾
ec_pt=玉蝾轺桠 蜞殪囿
aclsave_eemin=湾漕矬耱桁 扈眢蜞 铌铐鬣龛
emem_mb=提
eacl_noacls=ACL 礤 铒疱溴脲睇
eacl_buttcreate=杨玟囹 眍恹 ACL
eadm_vhost=妈滂祛 桁 躅耱
cach_err=硒栳赅
ec_rt=亦殪囿 黩屙
elogs_lfh=企痦嚯桊钼囹 镱腠铄 桁 躅耱?
index_miscopt=橡铟桢 相疣戾蝠
clear_del=愉嚯屙桢 耱囵 羿殡钼 挲 ..
eadm_header=袜耱痤殛 冷扈龛耱疣蝾疣
emisc_fua=项滗咫囹 楞屙蜞-项朦珙忄蝈
ec_header=相疣戾蝠 数
ec_ua=礼桧躔. UFS
acl_dmon=项礤溴朦龛
index_msgnosupported=Webmin 礤 镱滗屦骅忄弪 忄 忮瘃棹 Squid. 泥眄 祛潴朦 镱滗屦骅忄弪 蝾朦觐 忮瘃梃 <tt>1.1</tt>, <tt>2.0</tt>, <tt>2.1</tt>, <tt>2.2</tt>, <tt>2.3</tt>.
ec_port=项痱
ahttp_ma=杨怙噤.  ACL
eicp_aac=念徉忤螯 漯筱铋 挲
eprogs_fcv=罔痂磬 觐腩黻 FTP
eicp_fdfd=蔓徼疣螯 镳祛 桤 漕戾眍
eicp_fdfi=蔓徼疣螯 镳祛 桤 IP
ec_mrs=锑犟桁嚯 疣珈屦 玎镳铖
ec_wr=WAIS 
sadmin_inavh='$1' 礤 怆弪 漕矬耱桁 桁屙屐 躅耱
sport_emsg1='$1' 礤 怆弪 漕矬耱桁 眍戾痤 镱痱
sport_emsg2='$1' 礤 怆弪 漕矬耱桁 噤疱耦
sport_emsg3='$1' 礤 怆弪 漕矬耱桁 疣珈屦铎 狍翦疣
sadmin_inavp='$1' 礤 怆弪 漕矬耱桁 镱痱铎
ec_mst=锑犟. 怵屐 玎牮
eauth_header=橡铌耔 荔蝈眚梏桕圉
eports_ota=锐躅 噤疱 TCP
eacl_acls1=ACL
none=湾
emem_fcs=朽珈屦 挲 FQDN
eports_oua=锐躅 噤疱 UDP
ahttp_pr=橡铌耔 毋疣龛麇龛
emem_mul=髓扈 桉镱朦珙忄龛 镟蜩
eicp_ip=项痱 ICP
elogs_lmh=企痦嚯桊钼囹 玎泐腩怅 MIME?
scache_ftsco=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼 挲
eadm_cmemail=E-mail 噤疱 挲 戾礤滏屦
eadm_uniq=禹桕嚯铄 桁 躅耱
aclsave_eip='$1' 礤 怆弪 漕矬耱桁 IP 噤疱耦
schost_ftsc=硒栳赅 镳 耦躔囗屙梃 挲
ech_dqfd=湾 玎镳帏桠囹 漕戾睇
ec_mins=扈.
sport_ftspo=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼 镱痱
elogs_do=相疣戾蝠 铗豚潢
aclsave_eshour=湾漕矬耱桁 磬鬣朦睇 鬣
ahttp_return=耧桉铌 ACL
suser_emsg1=湾忮痦 桦 镳铒簌屙 桁 镱朦珙忄蝈
acl_tcpports=TCP 项痱
index_rebuild=西桉蜩螯  襄疱耱痤栩 数
elogs_ualf=企痦嚯 镱朦珙忄蝈朦耜桴 嚆屙蝾
aclsave_ecdom=湾 玎溧睇 漕戾睇 觌桢眚
sauth_iomd=湾忮疱 桦 篁屦 漕戾
eports_hia=褥 躅耱/IP 噤疱
lib_emsg1='$1' 礤 怆弪 漕矬耱桁 IP 噤疱耦
lib_emsg2='$1' 礤 怆弪 漕矬耱桁 觐腓麇耱忸 $2
lib_emsg3='$1' 礤 怆弪 漕矬耱桁 觐腓麇耱忸 $2
eicp_ssip=悟覃豚螯 桉蝾黜桕  ping?
clear_stop=务蜞眍怅 squid ...
index_return=汶噔眍 戾睨
chown_chown=如戾礤龛 橡噔铑犭噤囗 ...
eicp_pp=项痱 镳铌耔
aicp_header=杨玟囗桢 ICP 毋疣龛麇龛
eicp_nocd=酿筱桢 挲 礤 铒疱溴脲睇
aclsave_epr=泥眄 ACL 桉镱朦珞弪  镳铌耔 钽疣龛麇龛
start_ftsq=硒栳赅 镳 耱囵蝈 squid
elogs_alf=企痦嚯 漕耱箫
eprogs_c=耔焘.
eadm_caf=脏殡 筲邃铎脲龛 挲
elogs_lalo=相疣戾蝠 企痦嚯桤圉梃  企痦嚯 羿殡钼
scache_emsg0=蔓 漕腈睇 忖羼蜩 赅 扈龛祗 钿桧 挲 赅蜞腩
eadm_cah=疹耱 筲邃铎脲龛 挲
scache_emsg1=数 赅蜞腩 '$1' 礤 耋耱怏弪
scache_emsg2='$1' 礤 怆弪 漕矬耱桁 疣珈屦铎 玎镳铖
scache_emsg3='$1' 礤 怆弪 漕矬耱桁 怵屐屙屐 挲痤忄龛 铠栳铟眍泐 玎镳铖
scache_emsg4='$1' 礤 怆弪 漕矬耱桁 怵屐屙屐 挲痤忄龛 DNS
scache_emsg5='$1' 礤 怆弪 漕矬耱桁 蜞殪囿蝾
scache_emsg6='$1' 礤 怆弪 漕矬耱桁 怵屐屙屐
scache_emsg7='$1' 礤 怆弪 漕矬耱桁 觐腓麇耱忸 赅蜞腩泐
scache_emsg8=暑-忸 赅蜞腩泐 漕腈眍 猁螯 >= 1
eadm_cap=项痱 筲邃铎脲龛 挲
scache_emsg9=暑-忸 赅蜞腩泐 漕腈眍 猁螯 <= 256
index_admopts=袜耱痤殛 冷扈龛耱疣蝾疣
aclsave_efrom='$1' 礤 怆弪 漕矬耱桁 IP 噤疱耦 From
eadm_default=项 箪铍鬣龛
acl_rfcusers=项朦珙忄蝈腓 RFC931
acl_failurl=URL 悟赅玎
eicp_dfuc=袜镳祗 恹徼疣螯 URL 耦溴疰帙桢
elogs_ln=企痦嚯桊箦爨 爨耜 皴蜩
eicp_return=戾睨 squid
acl_buttdel=愉嚯栩
ech_co=翌朦觐 犭桄嚅?
aclsave_eto='$1' 礤 怆弪 漕矬耱桁 IP 噤疱耦 To
ech_cw=洛耦. 觐. 挲
ech_dc=数 镱 箪铍鬣龛?
eauth_pusers=项朦珙忄蝈腓 橡铌耔
eports_a=塔犷
eports_p=项痱
clear_done=.. 妙蝾忸
eicp_opcs=酿筱桢 挲痼桢 镳铌耔 皴疴屦
aicp_header1=绣溧牝桊钼囗桢 ICP 毋疣龛麇龛
eadm_never=丸觐沅
elogs_pf=PID 羿殡
acl_header1=杨玟囗桢 ACL
acl_header2=绣溧牝桊钼囗桢 ACL
acl_dfri=蝽桷
sauth_msg1=锣 忮瘃 Squid 礤 猁豚 耜铎镨腓痤忄磬  镱滗屦骊铋 镳铌耔 噔蝾痂玎鲨
stop_ftsq=硒栳赅 镳 铖蜞眍怅 squid
acl_return=扬桉铌 ACL
ech_ip=项痱 ICP
smisc_emsg1='$1' 礤 怆弪 漕矬耱桁 觐-忸 痤蜞鲨
smisc_emsg2='$1' 礤 怆弪 漕矬耱桁 漕戾眍
smisc_emsg3='$1' 礤 怆弪 漕矬耱桁 镳铌耔
smisc_emsg4='$1' 礤 怆弪 漕矬耱桁 麒耠铎 镥疱躅漕
eacl_noicpr=ICP 钽疣龛麇龛 礤 铒疱溴脲睇
ech_buttdel=愉嚯栩
eadm_buttsave=杨躔囗栩
lib_aclsan=锐蝾黜桕 世 皖戾
eadm_annto=逾邃铎脲龛 挲 潆
eprogs_cap=悟溴朦磬 镳钽疣祆 囿蝈眚梏桕圉梃
eicp_iif=IP 噤疱襦 玎 皴蝈恹扈 疣磬扈
lib_acldan=橡桢祉桕 世 皖戾
ech_parent=痤滂蝈朦耜栝
lib_acldat=泥蜞  吗屐
lib_seconds=皴.
acl_to=漕
eprogs_ccp=橡钽疣祆 铟桉蜿 挲
ech_mr=罔痤觐忮蝈朦睇 铗忮蝼桕?
suser_ftsu=硒栳赅 镳 耦躔囗屙梃 镱朦珙忄蝈
ech_d=项 箪铍鬣龛
ech_h=褥 躅耱
ech_n=湾
ech_p=相痤朦:
ech_nd=铃 溧殇驽耱钼?
ech_t=诣
ech_u=项朦:
eauth_buttsave=杨躔囗栩
ech_y=泥
ec_fdct=硒栳铟眍 怵屐 挲痤忄龛
ech_nl=铃 疱汨耱疣鲨
ech_header1=绣溧牝桊钼囗桢 数 疹耱
ech_po=翌朦觐 镳铌耔?
ech_return=耧桉铌 挲
ech_pp=项痱 镳铌耔
ech_nd1=铃 玎溴疰觇?
chown_header=如戾礤龛 橡噔铑犭噤囗
emisc_return=戾睨 squid
ec_2dirs=赅蜞腩汨 2泐 箴钼
ec_default=项 箪铍鬣龛
acl_rtime=吗屐 吾眍怆屙
sicp_ftsco=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼 挲
sadmin_return=汶噔眍 戾睨
elogs_mht=亦犭桷 MIME 玎泐腩怅钼
chown_stop=务蜞眍怅 squid ...
index_portsnets=彦螯  项痱
eicp_mit=添钽钼囵栲眚睇 ICP 蜞殪囿
emisc_off=蔓觌.
eicp_iqt=亦殪囿 玎镳铖 ICP
emisc_htpt=橡铛钿桁 玎泐腩怅
euser_return=耧桉铌 镱朦珙忄蝈脲
ec_ncua=湾 挲痤忄螯 URL 潆 耠邃簋 ACL
ec_ncuc=湾 挲痤忄螯 URL 耦溴疰帙桢
ec_ncum=湾 挲痤忄螯 URL 耦怙噤帼 
elogs_prilfa=务簌羼蜮螯 RFC931 ident 镳钼屦觇 潆 ACL
ec_cdirs=枢蜞腩汨 数
sauth_ftsao=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼 囿蝈眚梏桕圉梃
index_hprogs=橡钽疣祆 项祛桕
index_cms=羊囹桉蜩赅 数 体礤滏屦
chown_done=.. 妙蝾忸
lib_aclbr=绣.恹. 琉囿珏疣
icache_itscwtc=软桷栲腓玎鲨 Squid 挲 觐爨礓铋 <tt>$1</tt> ..
emisc_kmffu=杨躔囗螯 镟螯 潆 溧朦礤轼邈 桉镱朦珙忄龛?
lib_aclca=冷疱 孰桢眚
sicp_emsg1='$1' 礤 怆弪 漕矬耱桁 蜞殪囿蝾
index_proxyauth=棱蝾痂玎鲨 橡铌耔
ech_nne=铃 NetDB 钺戾磬?
lib_aclch=褥 躅耱 孰桢眚
eprogs_crp=悟溴朦磬 镳钽疣祆 镥疱磬镳噔脲龛
eacl_acls=扬桉觇 箫疣怆屙 漕耱箫铎
lib_aclcr=绣.恹. 孰桢眚
eports_trb=馏翦 镳桢爨 TCP
eacl_return=戾睨 squid
eadm_user=项朦珙忄蝈朦
ahttp_header=杨玟囗桢 橡铌耔 毋疣龛麇龛
lib_aclea=马屮 荔蝈眚-
ec_mrbs=锑犟桁嚯 疣珈屦 蝈豚 玎镳铖
ec_2dirs2=枢蜞腩汨 怛铕钽 箴钼
ec_cro=相疣戾蝠 数痤忄龛  青镳铖钼
ec_crt=亦殪囿 玎镳铖 觌桢眚
eprogs_chpo=相疣戾蝠 镳钽疣祆-镱祛桕钼 挲
ech_cho=相疣戾蝠 数 疹耱
ec_mcct=锑犟. 怵屐 耦邃桧屙 觌桢眚钼
index_header=橡铌耔 彦疴屦 Squid
emisc_slr=蓄蜞鲨 骟痦嚯 羿殡钼 镱 SIGUSR1
eauth_msgaccess=念耱箫  忄祗 镳铌耔 皴疴屦 钽疣龛麇 镱朦珙忄蝈扈 镥疱麒耠屙睇扈 龛驽. 项耠 漕徉怆屙, 箐嚯屙 镱朦珙忄蝈, Squid 漕腈屙 猁螯 疱耱囵蝾忄 潆 嚓蜩忤玎鲨 忭羼屙睇 桤戾礤龛.
emisc_nghp=湾-GET HTTP 镳铌耔
index_othercaches=酿筱桢 数
lib_aclwsa=冷疱 洛 彦疴屦
ec_mrhs=锑犟桁嚯 疣珈屦 玎泐腩怅 玎镳铖
lib_aclwsr=绣.恹. 洛 彦疴屦
index_msgnoconfig=暑眙桡箴圉桀眄 羿殡 Squid <tt>$1</tt> 礤 磬殇屙. 篷腓 Squid 桧耱嚯腓痤忄, 镱镳噔蝈 <a href=/config.cgi?$2 >觐眙桡箴圉棹 祛潴</a> 潆 桉镱朦珙忄龛 觐痧尻蝽钽 矬蜩  羿殡.
clear_return=戾睨 squid
eicp_header=酿筱桢 数
euser_header1=绣溧牝桊钼囗桢 橡铌耔 项朦珙忄蝈
no=湾
elogs_dril=腻豚螯 RFC931 ident 镳钼屦觇?
ec_none=湾
emem_ichwm=洛瘐 忄蝈痣桧 IP 挲
on=玛.
eacl_addicpr=念徉忤螯 ICP 钽疣龛麇龛
ech_rrc=朽忭铎屦睇 挲?
ahttp_header1=绣溧牝桊钼囗桢 橡铌耔 毋疣龛麇龛
eports_ita=迈钿 噤疱 TCP
emem_mcos=锑犟桁嚯 疣珈屦 挲痼屐钽 钺牝
eports_iua=迈钿 噤疱 UDP
lib_aclpl=绣汨耱疣鲨 橡铌耔
ech_multicast=痤觐忮.
icache_ymcautrsa=蔓 漕腈睇 恹狃囹 镱朦珙忄蝈, 镱 觐蝾瘥 恹镱腠弪 Squid
emisc_std=羊囗溧痱
aclsave_esdom=湾 玎溧睇 漕戾睇 皴疴屦
eadm_annevery=逾邃铎螯 挲 赅驿
lib_aclpia=IP 冷疱 橡铌耔
lib_aclrm=体蝾 青镳铖
eadm_uniqhn=禹桕嚯铄 桁 躅耱
ec_listed=襄疱麒耠屙睇..
lib_aclru=RFC931 项朦珙忄蝈朦
aclsave_eicpr=泥眄 ACL 桉镱朦珞弪  ICP 钽疣龛麇龛
acl_dofw=捻 湾溴腓
index_msgnodir1=枢蜞腩  挲 Squid <tt>$1</tt> 礤 桧桷栲腓玷痤忄.
index_msgnodir2=枢蜞腩  挲 Squid <tt>$1</tt> 礤 猁 桧桷栲腓玷痤忄.
index_msgnodir3=蒡 礤钺躅滂祛 皲咫囹 漕 蝾泐, 赅 祛骓 狍溴 桉镱朦珙忄螯 Squid.
cach_return=戾睨 squid
elogs_return=戾睨 squid
acl_domains=念戾睇
euser_p=相痤朦
eprogs_sdp=橡钽疣祆 DNS 潆 Squid
euser_u=褥
sahttp_ftspr=硒栳赅 镳 耦躔囗屙梃 镳铌耔 钽疣龛麇龛
lib_aclup=项痱 URL
lib_aclur=绣.恹. URL
acl_dsat=洋後铗
lib_gb=冕
emem_iclwm=丸骓 忄蝈痣桧 IP 挲
euser_pud=相疣戾蝠 橡铌耔 项朦珙忄蝈
eprogs_sfp=橡钽疣祆 FTP 潆 Squid
emisc_par=相疣眍桕
emisc_liq=企痦嚯桊钼囹 ICP 玎镳铖?
icache_return=戾睨 squid
   07070100071d99000081a40000000000000002000000013ac0389f0000430b000000200000000000000000000000000000001700000003reloc/squid/lang/ru_SU    index_header=鹨纤由 笈易乓 Squid
index_msgnoconfig=胂纹汕找撩上挝偈 屏侍 Squid <tt>$1</tt> 闻 瘟誓盼. 逵躺 Squid 晌釉撂躺蚁琢, 邢幸磷耘 <a href=/config.cgi?$2 >讼纹汕找撩衫 拖恼萄</a> 奶 捎邢特谙琢紊 讼乙潘晕锨 姓陨  屏侍.
index_msgnoexe=橛邢涛雅唾 拖恼特 Squid <tt>$1</tt> 闻 瘟誓盼. 逵躺 Squid
晌釉撂躺蚁琢, 邢幸磷耘 <a href=/config.cgi?$2 >讼纹汕找撩衫 拖恼萄</a> 奶 捎邢特谙琢紊 讼乙潘晕锨 姓陨  屏侍.
index_msgnosupported=Webmin 闻 邢哪乓稚琢旁 琢壅 着矣衫 Squid. 淞挝偈 拖恼特 邢哪乓稚琢旁 韵特讼 着矣缮 <tt>1.1</tt>, <tt>2.0</tt>, <tt>2.1</tt>, <tt>2.2</tt>, <tt>2.3</tt>.
index_msgnodir1=肓粤滔  塑叟 Squid <tt>$1</tt> 闻 晌擅闪躺谏蚁琢.
index_msgnodir2=肓粤滔  塑叟 Squid <tt>$1</tt> 闻 沦 晌擅闪躺谏蚁琢.
index_msgnodir3= 闻下认纳拖 幽盘猎 南 韵窍, 肆 拖治 抡呐 捎邢特谙琢载 Squid.
index_buttinit=槲擅闪躺谏蚁琢载
index_asuser=肆 邢特谙琢耘特 Unix
index_portsnets=笈载  鹣以
index_othercaches=湟涨膳 胲凵
index_musage=橛邢特谙琢紊 鹆脱陨
index_logging=稣椅撂哨撩裳
index_copts=鹆伊团砸 胲哿
index_hprogs=鹨锨伊屯 鹣拖畚伤
index_actrl=跣伊滋盼膳 湎釉招贤
index_admopts=盍釉蚁仕 崮蜕紊釉伊韵伊
index_proxyauth=嶙韵疑诹蒙 鹨纤由
index_miscopt=鹨限膳 鹆伊团砸
index_cms=笤猎捎陨肆 胲 砼闻闹乓
index_rebuild=镛捎陨载  鹋遗釉蚁稍 胲
index_return=翘磷蜗 团卫

buttsave=笙纫廖稍
buttdel=跄撂稍
buttcreat=笙谀猎
yes=淞
no=钆
default=鹣 胀咸蘖紊
none=钆
on=魉.
off=髻颂.

acl_header1=笙谀廖膳 ACL
acl_header2=蚺牧嗽梢献廖膳 ACL
acl_name=橥 ACL
acl_fromip= IP
acl_toip=盍 IP
acl_nmask=砹铀 优陨
acl_ipaddr=IP 崮遗
acl_domains=湎团钨
acl_dofw=湮 钆呐躺
acl_sel=髻乱廖钨..
acl_all=饔
acl_dsun=飨铀遗优紊
acl_dmon=鹣闻呐特紊
acl_dtue=髟弦紊
acl_dwed=笠拍
acl_dthu=宰乓
acl_dfri=鹧晕擅
acl_dsat=笳侣显
acl_hofd=淤 湮
acl_to=南
acl_regexp=蚺. 踪伊峙紊
acl_tcpports=TCP 鹣以
acl_urlproto=URL 鹨显纤咸
acl_reqmethods=砼韵馁 幸嫌献
acl_bregexp=蚺.踪. 庖琳谂伊
acl_pusers=鹣特谙琢耘躺 鹨纤由
acl_asnum=脶 犹
acl_rtime=饕磐 锫蜗滋盼裳
acl_rfcusers=鹣特谙琢耘躺 RFC931
acl_mcr=砹擞赏胀 鹆伊烫盘匚偃 幸嫌献
acl_psp=鹣以 鹨纤由 笈易乓
acl_scs=笤蚁肆 SNMP 笙下菖釉琢
acl_failurl=URL 镌肆诹
acl_buttsave=笙纫廖稍
acl_buttdel=跄撂稍
acl_return=笮捎纤 ACL

aclsave_failsave=镗陕肆 幸 酉纫廖盼缮
aclsave_faildel=镗陕肆 幸 漳撂盼缮
aclsave_epr=淞挝偈 ACL 捎邢特谡旁友  幸纤由 锨伊紊夼紊
aclsave_eicpr=淞挝偈 ACL 捎邢特谡旁友  ICP 锨伊紊夼紊
aclsave_ename=钆着椅吓 赏 ACL
aclsave_eexists=ACL 邢 赏盼 '$1' 罩 诱菖釉渍旁
aclsave_efrom='$1' 闻 炎萄旁友 南姓釉赏偻 IP 聊遗酉 From
aclsave_eto='$1' 闻 炎萄旁友 南姓釉赏偻 IP 聊遗酉 To
aclsave_enmask='$1' 闻 炎萄旁友 南姓釉赏鲜 土铀鲜 优陨
aclsave_eip='$1' 闻 炎萄旁友 南姓釉赏偻 IP 聊遗酉
aclsave_ecdom=钆 诹牧钨 南团钨 颂膳卧
aclsave_esdom=钆 诹牧钨 南团钨 优易乓
aclsave_eshour=钆南姓釉赏偈 瘟蘖特钨 蘖
aclsave_eehour=钆南姓釉赏偈 蘖 纤衔蘖紊
aclsave_esmin=钆南姓釉赏裂 瘟蘖特瘟 蜕握粤
aclsave_eemin=钆南姓釉赏裂 蜕握粤 纤衔蘖紊

cach_err=镗陕肆
cach_nfound=鹨锨伊屯 - 团闻闹乓 塑哿 Squid <tt>$1</tt> 闻 瘟誓盼. 飨谕现蜗 <a href=/config.cgi?$2 >讼纹汕找撩裳 拖恼萄</a> 闻 讼乙潘晕.
cach_return=团卫 squid

chown_header=橼团闻紊 鹨磷舷绿聊廖裳
chown_stop=镉粤蜗姿 squid ...
chown_done=.. 缦韵紫
chown_chown=橼团闻紊 鹨磷舷绿聊廖裳 ...
chown_restart=鹋遗诹姓铀 Squid ...
chown_failrestart=镗陕肆 幸 信遗诹姓铀 Squid ..

clear_header=镛捎运  鹋遗釉蚁盼膳 胲哿
clear_msgclear=髻 兆乓盼  韵, 拊 踪 认陨耘 限捎陨载  信遗釉蚁稍 塑? 鹨 茉贤 抡恼 漳撂盼 <b>子</b> 塑凵蚁琢挝倥 屏侍  Squid 抡呐 遗釉烈韵琢.
clear_buttclear=镛捎陨载  鹋遗釉蚁稍 胲
clear_stop=镉粤蜗姿 squid ...
clear_done=.. 缦韵紫
clear_del=跄撂盼膳 釉烈偃 屏侍献 塑哿 ..
clear_init=槲擅闪躺诹蒙 Squid 塑哿 讼土文鲜 <tt>$1</tt> ..
clear_failrestart=镗陕肆 幸 信遗诹姓铀 Squid ..
clear_return=团卫 squid

eacl_header=跣伊滋盼膳 湎釉招贤
eacl_acls=笮捎松 招伊滋盼裳 南釉招贤
eacl_name=橥
eacl_type=羯
eacl_match=笙仔聊僚..
eacl_noacls=ACL 闻 闲遗呐膛钨
eacl_buttcreate=笙谀猎 蜗踪 ACL
eacl_pr=锴伊紊夼紊 幸纤由
eacl_act=渑视宰膳
eacl_acls1=ACL
eacl_move=鹋遗团釉稍
eacl_nopr=鹨纤由 锨伊紊夼紊 闻 闲遗呐膛钨
eacl_addpr=湎铝咨载 幸纤由 锨伊紊夼紊
eacl_icpr=锴伊紊夼紊 ICP
eacl_noicpr=ICP 锨伊紊夼紊 闻 闲遗呐膛钨
eacl_addicpr=湎铝咨载 ICP 锨伊紊夼紊
eacl_return=团卫 squid

eadm_header=盍釉蚁仕 崮蜕紊釉伊韵伊
eadm_aao=鹆伊团砸 崮蜕紊釉伊陨孜倥  镄献泡盼裳
eadm_runasuu=蛄孪粤载 邢 鹣特谙琢耘膛 Unix
eadm_nochange=钆 团窝载
eadm_user=鹣特谙琢耘特
eadm_group=缫招辛
eadm_runasug=蛄孪粤载 邢 缫招邢 Unix
eadm_par=笃乓 幸纤由 琳耘卧善伤撩缮
eadm_default=鹣 胀咸蘖紊
eadm_cmemail=E-mail 聊遗 塑 团闻闹乓
eadm_vhost=魃纳拖 赏 认釉
eadm_uniq=跷伤撂匚吓 赏 认釉
eadm_auto=嶙韵土陨夼铀
eadm_annto=踝拍贤膛紊 塑哿 奶
eadm_annevery=踝拍贤萄载 塑 肆帜倥
eadm_never=钌讼悄
eadm_uniqhn=跷伤撂匚吓 赏 认釉
eadm_cah=柘釉 兆拍贤膛紊 塑哿
eadm_cap=鹣以 兆拍贤膛紊 塑哿
eadm_caf=媪侍 兆拍贤膛紊 塑哿
eadm_none=钆
eadm_annp=鹋疑夏 兆拍贤膛紊
eadm_buttsave=笙纫廖稍
eadm_return=团卫 squid

eauth_header=鹨纤由 嵴耘卧善伤撩裳
eauth_aopt=鹆伊团砸 嵴耘卧善伤撩缮
eauth_puf=媪侍 幸纤由 邢特谙琢耘膛
eauth_none=钆
eauth_nologin=钆 握帜, 遗巧釉伊蒙  南团闻
eauth_buttsave=笙纫廖稍
eauth_msgaccess=湎釉招  琢叟驼 幸纤由 优易乓 锨伊紊夼 邢特谙琢耘萄蜕 信遗奚犹盼钨蜕 紊峙. 鹣犹 南铝滋盼裳, 漳撂盼裳 邢特谙琢耘萄, Squid 南讨盼 沦载 遗釉烈韵琢 奶 了陨咨诹蒙 孜庞盼钨 哨团闻紊.
eauth_pusers=鹣特谙琢耘躺 鹨纤由
eauth_nopusers=鹣特谙琢耘躺 幸纤由 闻 闲遗呐膛钨.
eauth_addpuser=湎铝咨载 蜗紫窍 邢特谙琢耘萄 幸纤由
eauth_return=团卫 squid

ec_header=鹆伊团砸 胲哿
ec_cro=鹆伊团砸 胲凵蚁琢紊  幸嫌献
ec_cdirs=肓粤滔巧 胲哿
ec_default=鹣 胀咸蘖紊
ec_listed=鹋遗奚犹盼钨..
ec_directory=肓粤滔
ec_type=羯
ec_size=蛄谕乓 (砺)
ec_1dirs=肆粤滔巧 1窍 找献窝
ec_2dirs=肆粤滔巧 2窍 找献窝
ec_u=UFS
ec_ua=嵊晌纫. UFS
ec_1dirs1=肓粤滔巧 信易锨 找献窝
ec_2dirs2=肓粤滔巧 自弦锨 找献窝
ec_aos=笠拍紊 伊谕乓 下吲嗽
ec_kb=肼
ec_mins=蜕.
ec_secs=优.
ec_opb=锫吲嗽献 瘟 遮盘
ec_ncuc=钆 塑凵蚁琢载 URL 酉呐抑凛膳
ec_ncum=钆 塑凵蚁琢载 URL 酉仔聊晾萆 
ec_ncua=钆 塑凵蚁琢载 URL 奶 犹拍绽萆 ACL
ec_mct=砹擞赏撂匚吓 滓磐 塑凵蚁琢紊
ec_mrbs=砹擞赏撂匚偈 伊谕乓 耘塘 诹幸嫌
ec_mrhs=砹擞赏撂匚偈 伊谕乓 诹窍滔姿 诹幸嫌
ec_mrbs1=砹擞赏撂匚偈 伊谕乓 耘塘 显着粤
ec_mrs=砹擞赏撂匚偈 伊谕乓 诹幸嫌
ec_frct=镗陕限蜗 滓磐 诹幸嫌
ec_dlct=饕磐 塑凵蚁琢紊 DNS 幸献乓松
ec_fdct=镗陕限蜗 滓磐 塑凵蚁琢紊
ec_ct=袅释琳 酉拍晌盼裳
ec_rt=袅释琳 拊盼裳
ec_mcct=砹擞. 滓磐 酉拍晌盼裳 颂膳卧献
ec_mst=砹擞. 滓磐 诹艘僭裳
ec_sst=袅释琳 踪孪伊 恿试
ec_crt=袅释琳 诹幸嫌 颂膳卧
ec_hcc=鹣陶-诹艘僭倥 颂膳卧?
ec_pt=跤韵兽勺偈 粤释琳
ec_wr=WAIS 厶磊
ec_none=钆
ec_host=柘釉
ec_port=鹣以
ec_wrh=柘釉 WAIS 厶磊
ec_wrp=鹣以 WAIS 厶磊
ec_buttsave=笙纫廖稍
ec_return=团卫 squid

ech_header=笙谀廖膳 胲 柘釉
ech_header1=蚺牧嗽梢献廖膳 胲 柘釉
ech_cho=鹆伊团砸 胲 柘釉
ech_h=橥 认釉
ech_parent=蚁纳耘特铀墒
ech_sibling=伊孜闲伊孜偈
ech_multicast=凵蚁讼着萘.
ech_t=羯
ech_pp=鹣以 幸纤由
ech_ip=鹣以 ICP
ech_po=粝特讼 幸纤由?
ech_y=淞
ech_n=钆
ech_siq=鹣淤塘载 ICP 诹幸嫌?
ech_dc=胲 邢 胀咸蘖紊?
ech_rrc=蛄孜贤乓钨 塑?
ech_ittl=饕磐 稚谖 ICP
ech_d=鹣 胀咸蘖紊
ech_cw=髋酉. 讼芷. 塑哿
ech_co=粝特讼 绿芍潦凵?
ech_nd=馀 牧誓峙釉献?
ech_nne=馀 NetDB 下团瘟?
ech_nd1=馀 诹呐抑松?
ech_ltp=蚺巧釉伊蒙 瘟 幸纤由
ech_nl=馀 遗巧釉伊蒙
ech_u=鹣特:
ech_p=鹆蚁特:
ech_mr=蚁讼着萘耘特钨 显着赞伤?
ech_qhfd=幸鳞勺猎 南团钨  认釉献
ech_dqfd=钆 诹幸鳞勺猎 南团钨
ech_buttsave=笙纫廖稍
ech_buttdel=跄撂稍
ech_return=有捎纤 塑叟

eicp_header=湟涨膳 胲凵
eicp_opcs=湟涨膳 塑凵艺垒膳 幸纤由 优易乓
eicp_nocd=湟涨膳 塑凵 闻 闲遗呐膛钨
eicp_aac=湎铝咨载 囊涨鲜 塑
eicp_cso=鹆伊团砸 髻孪伊 胲哿
eicp_fdfd=髻律伊载 幸淹 哨 南团蜗
eicp_fdfi=髻律伊载 幸淹 哨 IP
eicp_dif=湎团钨 诹 优耘踪蜕 芩伊瘟蜕
eicp_iif=IP 聊遗恿 诹 优耘踪蜕 芩伊瘟蜕
eicp_dfuc=盍幸淹绽 踪律伊载 URL 酉呐抑凛膳
eicp_d=鹣 胀咸蘖紊
eicp_bpfsp=锫认纳载 ping 奶 夏晌限蜗窍 蚁纳耘萄?
eicp_y=淞
eicp_n=钆
eicp_ssip=镌淤塘载 捎韵尬伤  ping?
eicp_crt=袅释琳 显着粤 塑哿
eicp_iqt=袅释琳 诹幸嫌 ICP
eicp_mit=砦锨献烈闪卧钨 ICP 粤释琳
eicp_dpt=袅释琳 团以紫窍 酉优牧
eicp_h=橥 认釉
eicp_t=羯
eicp_pp=鹣以 幸纤由
eicp_ip=鹣以 ICP
eicp_return=团卫 squid

elogs_header=稣椅撂哨撩裳
elogs_lalo=鹆伊团砸 稣椅撂哨撩缮  稣椅撂匚偃 屏侍献
elogs_alf=稣椅撂 南釉招
elogs_dlf=稣椅撂 显塘乃
elogs_slf=稣椅撂 纫廖商奢
elogs_cmf=媪侍 团粤牧挝偃 塑哿
elogs_uhlf=橛邢特谙琢载 终椅撂匚偈 葡彝猎 HTTPD?
elogs_lmh=稣椅撂梢献猎 诹窍滔姿 MIME?
elogs_ualf=稣椅撂 邢特谙琢耘特铀扇 燎盼韵
elogs_pf=PID 屏侍
elogs_prilfa=镉蛰庞宰萄载 RFC931 ident 幸献乓松 奶 ACL
elogs_rit=RFC931 ident 粤释琳
elogs_dril=渑塘载 RFC931 ident 幸献乓松?
elogs_lfh=稣椅撂梢献猎 邢涛吓 赏 认釉?
elogs_ln=稣椅撂梢张土 土铀 优陨
elogs_do=鹆伊团砸 显塘乃
elogs_mht=袅绿擅 MIME 诹窍滔姿献
elogs_return=团卫 squid

emem_header=橛邢特谙琢紊 鹆脱陨
emem_maduo=鹆伊团砸 橛邢特谙琢紊 鹆脱陨  渖铀
emem_mul=焐蜕 捎邢特谙琢紊 辛脱陨
emem_dul=焐蜕 捎邢特谙琢紊 纳铀
emem_fcs=蛄谕乓 塑哿 FQDN
emem_mb=砺
emem_kb=肼
emem_mhwm=髋胰窝 琢耘姨晌裳 辛脱陨
emem_mlwm=钌治蜒 琢耘姨晌裳 辛脱陨
emem_dhwm=髋胰窝 琢耘姨晌裳 纳铀
emem_dlwm=钌治蜒 琢耘姨晌裳 纳铀
emem_mcos=砹擞赏撂匚偈 伊谕乓 塑凵艺磐锨 下吲嗽
emem_iacs=蛄谕乓 塑哿 IP 聊遗酉
emem_e=兹现呐紊
emem_ichwm=髋胰窝 琢耘姨晌裳 IP 塑哿
emem_iclwm=钌治蜒 琢耘姨晌裳 IP 塑哿
emem_return=团卫 squid

emisc_header=鹨限膳 鹆伊团砸
emisc_mo=鹨限膳 鹆伊团砸
emisc_sdta=盍蘖特瘟 DNS 幸献乓肆 聊遗酉
emisc_slr=蛳粤蒙 终椅撂匚偃 屏侍献 邢 SIGUSR1
emisc_dd=湎团 邢 胀咸蘖紊
emisc_sp=SSL 幸纤由
emisc_nghp=钆-GET HTTP 幸纤由
emisc_emt=襞擞 酉下菖紊 下 羡陕肆
emisc_pcs=鹣-颂膳卧铀裂 釉猎捎陨肆?
emisc_xffh=X-Forwarded-For 诹窍滔紫?
emisc_liq=稣椅撂梢献猎 ICP 诹幸嫌?
emisc_mdh=砩紊驼 幸淹偃 信遗认南
emisc_kmffu=笙纫廖言 辛脱载 奶 牧特闻售徘 捎邢特谙琢紊?
emisc_aomtk=胂躺夼釉紫 酉纫廖雅拖 辛脱陨
emisc_u=钆 锨伊紊夼蜗
emisc_htpt=鹨先夏赏倥 诹窍滔姿
emisc_ah=饔 诹窍滔姿
emisc_oh=粝特讼 诹窍滔姿
emisc_oe=饔 艘贤
emisc_a=嵛衔赏潦谂?
emisc_off=髻颂.
emisc_std=笤廖牧以
emisc_par=鹆伊蜗伤
emisc_fua=鹣哪盘僮猎 崆盼粤-鹣特谙琢耘萄
emisc_return=团卫 squid

eports_header=笈载  鹣以
eports_pano=鹆伊团砸 笈陨  鹣以献
eports_paap=鹨纤由 聊遗恿  邢以
eports_p=鹣以
eports_hia=橥 认釉/IP 聊遗
eports_pp=鹣以 幸纤由
eports_ip=鹣以 ICP
eports_ota=橛认难萆 聊遗 TCP
eports_ita=魅夏演墒 聊遗 TCP
eports_a=炖孪
eports_oua=橛认难萆 聊遗 UDP
eports_iua=魅夏演墒 聊遗 UDP
eports_mg=蚁讼着萘耘特钨 (Multicast) 且招匈
eports_trb=庹婆 幸膳土 TCP
eports_od=鹣 胀咸蘖紊 奶 矬
eports_return=团卫 squid

eprogs_header=鹨锨伊屯 - 鹣拖畚伤
eprogs_chpo=鹆伊团砸 幸锨伊屯-邢拖畚伤献 塑哿
eprogs_sfp=鹨锨伊屯 FTP 奶 Squid
eprogs_fo=鹆伊团砸 FTP
eprogs_fcv=疑瘟 讼滔嗡 FTP
eprogs_c=由妥.
eprogs_afl=嵛衔赏. FTP 遗巧釉伊蒙
eprogs_sdp=鹨锨伊屯 DNS 奶 Squid
eprogs_nodp=胂-紫 幸锨伊屯 DNS
eprogs_adtr=湎铝滋言 南团  诹幸嫌镣?
eprogs_dsa=崮遗恿 DNS 优易乓献
eprogs_fr=橼 resolv.conf
eprogs_ccp=鹨锨伊屯 限捎运 塑哿
eprogs_spp=鹨锨伊屯 ping 奶 Squid
eprogs_crp=镌呐特瘟 幸锨伊屯 信遗瘟幸磷膛紊
eprogs_norp=胂-紫 幸锨伊屯 信遗瘟幸磷膛紊
eprogs_cap=镌呐特瘟 幸锨伊屯 琳耘卧善伤撩缮
eprogs_noap=胂-紫 幸锨伊屯 琳耘卧善伤撩缮
eprogs_return=团卫 squid

euser_header=笙谀廖膳 鹨纤由 鹣特谙琢耘萄
euser_header1=蚺牧嗽梢献廖膳 鹨纤由 鹣特谙琢耘萄
euser_pud=鹆伊团砸 鹨纤由 鹣特谙琢耘萄
euser_u=橥
euser_p=鹆蚁特
euser_u1=钆 团窝旁友
euser_return=有捎纤 邢特谙琢耘膛

ahttp_header=笙谀廖膳 鹨纤由 锴伊紊夼紊
ahttp_header1=蚺牧嗽梢献廖膳 鹨纤由 锴伊紊夼紊
ahttp_pr=鹨纤由 锴伊紊夼紊
ahttp_a=渑视宰膳
ahttp_a1=蛄谝袍稍
ahttp_d=幸旁稍
ahttp_ma=笙仔聊.  ACL
ahttp_dma=钆 酉仔聊.  ACL
ahttp_return=有捎纤 ACL

sahttp_ftspr=镗陕肆 幸 酉纫廖盼缮 幸纤由 锨伊紊夼紊

aicp_header=笙谀廖膳 ICP 锴伊紊夼紊
aicp_header1=蚺牧嗽梢献廖膳 ICP 锴伊紊夼紊
aicp_ir=ICP 锴伊紊夼紊
aicp_a=渑视宰膳
aicp_a1=蛄谝袍稍
aicp_d=幸旁稍
aicp_ma=笙仔聊.  ACL
aicp_dma=钆 酉仔聊.  ACL
aicp_return=有捎纤 ACL

saicp_ftsir=镗陕肆 幸 酉纫廖盼缮 ICP 锨伊紊夼紊

icache_ftic=镗陕肆 幸 晌擅闪躺诹蒙 塑哿
icache_ymcautrsa=髻 南讨钨 踪乱猎 邢特谙琢耘萄, 邢 讼韵屹 踪邢涛雅杂 Squid
icache_header=槲擅闪躺诹蒙 胲哿
icache_itscwtc=槲擅闪躺诹蒙 Squid 塑哿 讼土文鲜 <tt>$1</tt> ..
icache_return=团卫 squid

restart_ftrs=镗陕肆 幸 遗讼纹汕找撩缮 squid

sadmin_ftsao=镗陕肆 幸 酉纫廖盼缮 聊蜕紊釉伊陨孜偃 辛伊团砸献
sadmin_header=橼团闻紊 鹨磷舷绿聊廖裳
sadmin_msg1=髻 哨团紊躺 邢特谙琢耘萄 商 且招姓 邢 讼韵蚁 伊孪粤旁 Squid. 涮 幸磷商匚鲜 了陨咨诹蒙 茉扇 哨团闻紊, 幸磷舷绿聊廖膳 子湃 塑  终椅撂匚偃 屏侍献 南讨蜗 沦载 哨团闻蜗  Squid 南讨盼 沦载 遗釉烈韵琢.
sadmin_buttco=橼团紊载 鹨磷
sadmin_return=翘磷蜗 团卫
sadmin_inavea='$1' 闻 炎萄旁友 南姓釉赏偻 邢拊献偻 聊遗酉
sadmin_inavh='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 认釉
sadmin_inavap='$1' 闻 炎萄旁友 南姓釉赏偻 信疑夏贤 闲献泡盼裳
sadmin_inavp='$1' 闻 炎萄旁友 南姓釉赏偻 邢以贤

sauth_ftsao=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献 琳耘卧善伤撩缮
sauth_iomuf=钆着遗 商 赵乓盐 屏侍 邢特谙琢耘膛
sauth_iomd=钆着遗 商 赵乓盐 南团
sauth_msg1=髁哿 着矣裳 Squid 闻 沦塘 铀贤猩躺蚁琢瘟  邢哪乓炙鲜 幸纤由 磷韵疑诹蒙

scache_ftsco=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献 塑哿
scache_emsg0=髻 南讨钨 鬃庞陨 肆 蜕紊驼 夏晌 塑 肆粤滔
scache_emsg1=胲 肆粤滔 '$1' 闻 诱菖釉渍旁
scache_emsg2='$1' 闻 炎萄旁友 南姓釉赏偻 伊谕乓贤 诹幸嫌
scache_emsg3='$1' 闻 炎萄旁友 南姓釉赏偻 滓磐盼磐 塑凵蚁琢紊 羡陕限蜗窍 诹幸嫌
scache_emsg4='$1' 闻 炎萄旁友 南姓釉赏偻 滓磐盼磐 塑凵蚁琢紊 DNS
scache_emsg5='$1' 闻 炎萄旁友 南姓釉赏偻 粤释琳韵
scache_emsg6='$1' 闻 炎萄旁友 南姓釉赏偻 滓磐盼磐
scache_emsg7='$1' 闻 炎萄旁友 南姓釉赏偻 讼躺夼釉紫 肆粤滔窍
scache_emsg8=胂-紫 肆粤滔窍 南讨蜗 沦载 >= 1
scache_emsg9=胂-紫 肆粤滔窍 南讨蜗 沦载 <= 256
scache_emsg10='$1' 闻 炎萄旁友 南姓釉赏偻 伊谕乓贤 下吲嗽
scache_emsg11='$1' 闻 炎萄旁友 南姓釉赏偻 讼躺夼釉紫 下吲嗽献
scache_emsg12='$1' 闻 炎萄旁友 南姓釉赏偻 伊谕乓贤 肆粤滔橇
scache_emsg13='$1' 闻 炎萄旁友 南姓釉赏偻 认釉贤
scache_emsg14='$1' 闻 炎萄旁友 南姓釉赏偻 邢以贤

schost_ftsc=镗陕肆 幸 酉纫廖盼缮 塑哿
schost_emsg1='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 认釉 塑哿
schost_emsg2='$1' 闻 炎萄旁友 南姓釉赏偻 幸纤由 邢以贤
schost_emsg3='$1' 闻 炎萄旁友 南姓釉赏偻 ICP 邢以贤
schost_emsg4='$1' 闻 炎萄旁友 南姓釉赏偻 滓磐盼磐 稚谖
schost_emsg5='$1' 闻 炎萄旁友 南姓釉赏偻 着酉

sicp_ftsco=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献 塑哿
sicp_emsg1='$1' 闻 炎萄旁友 南姓釉赏偻 粤释琳韵

slogs_ftslo=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献 终椅撂梢献廖裳
slogs_emsg1='$1' 闻 炎萄旁友 谅酉汤晕偻 赏盼磐 屏侍
slogs_emsg2='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 屏侍
slogs_emsg3=肓粤滔 '$1' 闻 诱菖釉渍旁
slogs_emsg4='$1' 闻 炎萄旁友 南姓釉赏鲜 土铀鲜 优陨
slogs_emsg5='$1' 闻 炎萄旁友 南姓釉赏偻 有捎讼 辛伊团砸献 显塘乃

smem_ftsmo=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献 辛脱陨
smem_emsg1='$1' 闻 炎萄旁友 南姓釉赏偻 伊谕乓贤 塑哿
smem_emsg2='$1' 闻 炎萄旁友 南姓釉赏鲜 着胰闻 琢耘姨晌膳
smem_emsg3='$1' 闻 炎萄旁友 南姓釉赏鲜 紊治攀 琢耘姨晌膳
smem_emsg4='$1' 闻 炎萄旁友 南姓釉赏偻 伊谕乓贤 下吲嗽

smisc_ftso=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献
smisc_emsg1='$1' 闻 炎萄旁友 南姓釉赏偻 讼-紫 蚁粤蒙
smisc_emsg2='$1' 闻 炎萄旁友 南姓釉赏偻 南团蜗
smisc_emsg3='$1' 闻 炎萄旁友 南姓釉赏偻 幸纤由
smisc_emsg4='$1' 闻 炎萄旁友 南姓釉赏偻 奚犹贤 信遗认南

sport_ftspo=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献 邢以
sport_emsg1='$1' 闻 炎萄旁友 南姓釉赏偻 蜗团蚁 邢以
sport_emsg2='$1' 闻 炎萄旁友 南姓釉赏偻 聊遗酉
sport_emsg3='$1' 闻 炎萄旁友 南姓釉赏偻 伊谕乓贤 抡婆伊

sprog_ftshpo=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献 幸锨彝 - 邢拖畚伤献
sprog_emsg1=钆 辛伊团砸献 FTP
sprog_emsg2='$1' 闻 炎萄旁友 南姓釉赏鲜 幸锨伊屯鲜
sprog_emsg3='$1' 闻 炎萄旁友 踪邢涛雅拖 幸锨伊屯鲜
sprog_emsg4='$1' 闻 炎萄旁友 南姓釉赏偻 邢特谙琢耘膛 FTP
sprog_emsg5='$1' 闻 炎萄旁友 南姓釉赏偻 讼-紫 幸锨伊屯
sprog_emsg6='$1' 闻 炎萄旁友 南姓釉赏鲜 凵疑蜗 讼滔嗡
sprog_emsg7=钆 鬃拍盼 DNS 优易乓
sprog_emsg8='$1' 闻 炎萄旁友 南姓釉赏偻 IP 聊遗酉

suser_ftsu=镗陕肆 幸 酉纫廖盼缮 邢特谙琢耘萄
suser_emsg1=钆着椅 商 幸闲蛰盼 赏 邢特谙琢耘萄

start_ftsq=镗陕肆 幸 釉烈耘 squid
stop_ftsq=镗陕肆 幸 嫌粤蜗姿 squid

lib_emsg1='$1' 闻 炎萄旁友 南姓釉赏偻 IP 聊遗酉
lib_seconds=优.
lib_minutes=蜕.
lib_hours=蘖.
lib_days=奈.
lib_weeks=闻.
lib_fortnights=2 闻.
lib_months=团.
lib_years=膛
lib_decades=呐肆
lib_emsg2='$1' 闻 炎萄旁友 南姓釉赏偻 讼躺夼釉紫 $2
lib_kb=肼
lib_mb=砺
lib_gb=缏
lib_emsg3='$1' 闻 炎萄旁友 南姓釉赏偻 讼躺夼釉紫 $2
lib_aclca=崮遗 胩膳卧
lib_aclwsa=崮遗 髋 笈易乓
lib_aclch=橥 认釉 胩膳卧
lib_acldat=淞粤  饕磐
lib_aclur=蚺.踪. URL
lib_aclupr=蚺.踪. 姓陨 URL
lib_aclup=鹣以 URL
lib_aclup1=鹨显纤咸 URL
lib_aclrm=砼韵 幸嫌
lib_aclbr=蚺.踪. 庖琳谂伊
lib_aclpl=蚺巧釉伊蒙 鹨纤由
lib_aclsan=橛韵尬伤 脶 钕团
lib_acldan=鹨膳臀伤 脶 钕团
lib_aclea=魑袍窝 嵴耘卧-裳
lib_aclcr=蚺.踪. 胩膳卧
lib_aclwsr=蚺.踪. 髋 笈易乓
lib_aclru=RFC931 鹣特谙琢耘特
lib_aclpia=IP 崮遗 鹨纤由
lib_buttac=鹨晌言 橼团闻紊
lib_buttss=镉粤蜗咨载 Squid
lib_buttss1=笤烈韵琢载 Squid

 07070100071d9a000081a40000000000000002000000013ac0389f00005292000000200000000000000000000000000000001400000003reloc/squid/lang/sv   index_header=Squid proxyserver
index_msgnoconfig=Inst鋖lningsfilen <tt>$1</tt> f鰎 Squid finns inte. Om Squid 鋜 installerat m錽te du 鋘dra <a href=/config.cgi?$2 >modulinst鋖lningarna</a> s att r鋞t s鰇v鋑 anv鋘ds.
index_msgnoexe=Squid-k鰎filen <tt>$1</tt> finns inte. Om Squid 鋜 installerat m錽te du 鋘dra <a href=/config.cgi?$2 >modulinst鋖lningarna</a> s att r鋞t s鰇v鋑 anv鋘ds.
index_msgnosupported=Denna version av Squid st鰀s inte av Webmin. Endast versionerna <tt>1.1</tt>, <tt>2.0</tt>, <tt>2.1</tt>, <tt>2.2</tt> och <tt>2.3</tt> st鰀s av denna modul.
index_msgnodir1=Dina Squid-cache-kataloger <tt>$1</tt> har inte initialiserats.
index_msgnodir2=Din Squid-cache-katalog <tt>$1</tt> har inte initialiserats.
index_msgnodir3=Detta m錽te utf鰎as innan Squid kan startas.
index_buttinit=Initialisera cache
index_asuser=som Unix-anv鋘dare
index_portsnets=Portar och n鋞verk
index_othercaches=鰒riga cachar
index_musage=Minnesutnyttjande
index_mdusage=Minnes- och diskutnyttjande
index_logging=Loggning
index_copts=Inst鋖lningar f鰎 cache
index_hprogs=Hj鋖pprogram
index_actrl=舤komstkontroll
index_admopts=Administrativa inst鋖lningar
index_proxyauth=Proxy-autentisering
index_miscopt=Blandade inst鋖lningar
index_cms=Statistik f鰎 cache-hanteringen
index_rebuild=T鰉 och bygg upp cachen igen
index_calamaris=Calamaris logganalysering
index_return=index

buttsave=Spara
buttdel=Ta bort
buttcreat=Skapa
yes=Ja
no=Nej
default=Standard
none=Ingen
on=P
off=Av

acl_header1=Skapa 錿komstlista
acl_header2=膎dra 錿komstlista
acl_name=Namn p 錿komstlista
acl_fromip=Fr錸 IP
acl_toip=Till IP
acl_nmask=N鋞mask
acl_ipaddr=IP-adress
acl_domains=Dom鋘er
acl_dofw=Veckodagar
acl_sel=Angivna ...
acl_all=Alla
acl_dsun=s鰊dag
acl_dmon=m錸dag
acl_dtue=tisdag
acl_dwed=onsdag
acl_dthu=torsdag
acl_dfri=fredag
acl_dsat=l鰎dag
acl_hofd=Klockslag
acl_to=till
acl_regexp=Regulj鋜a uttryck
acl_tcpports=TCP-portar
acl_urlproto=URL-protokoll
acl_reqmethods=F鰎fr錱ningsmetoder
acl_bregexp=Browser-regexp
acl_pusers=Proxy-anv鋘dare
acl_eusers=Externa Auth-anv鋘dare
acl_case=Likst鋖la versaler och gemener?
acl_eusersre=Regulj鋜a uttryck f鰎 externa Auth-anv鋘dare
acl_asnum=som tal
acl_rtime=Uppdateringstid
acl_rfcusers=RFC931-anv鋘dare
acl_mcr=Maximalt antal samtidiga f鰎fr錱ningar
acl_psp=Proxy-serverport
acl_scs=SNMP Community-str鋘g
acl_rmt=Fr錱a efter MIME-typ
acl_arp=Klientens ethernet-adresser
acl_failurl=URL vid fel
acl_buttsave=Spara
acl_buttdel=Ta bort
acl_return=錿komstlista

aclsave_failsave=Det gick inte att spara 錿komstlista
aclsave_faildel=Det gick inte att ta bort 錿komstlista
aclsave_epr=Denna 錿komstlista anv鋘ds av en proxy-begr鋘sning
aclsave_eicpr=Denna 錿komstlista anv鋘ds av en ICP-begr鋘sning
aclsave_ename=Felaktigt namn p 錿komstlista
aclsave_eexists=Det finns redan en 錿komstlista som heter '$1'
aclsave_efrom='$1' 鋜 inte en giltig avs鋘dar-IP-adress
aclsave_eto='$1' 鋜 inte en giltig mottagar-IP-adress
aclsave_enmask='$1' 鋜 inte en giltig n鋞mask
aclsave_eip='$1' 鋜 inte en giltig IP-adress
aclsave_ecdom=Du har inte angivit n錱on klientdom鋘
aclsave_esdom=Du har inte angivit n錱on serverdom鋘
aclsave_eshour=Felaktigt startklockslag (timmar)
aclsave_eehour=Felaktigt slutklockslag (timmar)
aclsave_esmin=Felaktigt startklockslag (minuter)
aclsave_eemin=Felaktigt slutklockslag (minuter)
aclsave_efile=Du f錼 inte skriva i ACL-filen '$1'

cach_err=Fel
cach_nfound=Squids cache-hanteringsprogram <tt>$1</tt> finns inte p ditt system. Dina <a href=/config.cgi?$2 >modulinst鋖lningar</a> kanske 鋜 felaktiga.
cach_return=squid-index

chown_header=膎dra 鋑are
chown_stop=Stannar Squid ...
chown_done=... klart
chown_chown=膎drar 鋑are ...
chown_restart=Startar Squid igen ...
chown_failrestart=Det gick inte att starta Squid igen ...
chown_return=squid-index

clear_header=T鰉 och bygg upp cachen igen
clear_msgclear=Vill du verkligen t鰉ma och bygga upp Squid-cachen igen? <b>Alla</b> filer i cachen kommer att tas bort och Squid-servern startas om.
clear_msgclear2=F鰎s鋕ra dig om att cachen inte anv鋘ds f鰎 att kommunicera med denna Webmin-server. Om den g鰎 det kommer du att kopplas ned n鋜 cachen t鰉s.
clear_buttclear=T鰉 och bygg upp cachen igen
clear_stop=Stannar Squid ...
clear_done=... klart
clear_del=Tar bort gamla cache-filer ...
clear_init=Initialiserar Squid-cachen med kommando <tt>$1</tt> ...
clear_failrestart=Det gick inte att starta om Squid ...
clear_return=squid-index

eacl_header=舤komstkontroll
eacl_acls=Listor f鰎 錿komstkontroll (ACL)
eacl_name=Namn
eacl_type=Typ
eacl_match=Matchar ...
eacl_noacls=Du har inte definierat n錱on lista
eacl_buttcreate=Skapa ny lista
eacl_pr=Proxy-begr鋘sningar
eacl_act=舤g鋜d
eacl_acls1=Listor
eacl_move=Flytta
eacl_nopr=Du har inte definierat n錱on proxy-begr鋘sning
eacl_addpr=L鋑g till proxy-begr鋘sning
eacl_icpr=ICP-begr鋘sningar
eacl_noicpr=Du har inte definierat n錱on ICP-begr鋘sning
eacl_addicpr=L鋑g till ICP-begr鋘sning
eacl_return=squid-index
eacl_allow=Till錿
eacl_deny=Sp鋜ra

eadm_header=Administrativa inst鋖lningar
eadm_aao=Administrativa och annonseringsinst鋖lningar
eadm_runasuu=K鰎 som Unix-anv鋘dare
eadm_nochange=Inga 鋘dringar
eadm_user=Anv鋘dare
eadm_group=Grupp
eadm_runasug=K鰎 som Unix-grupp
eadm_par=Proxy-autentiseringsomr錮e
eadm_default=Standard
eadm_cmemail=Cache-administrat鰎ens e-postadress
eadm_vhost=Synligt datornamn
eadm_uniq=Unikt datornamn
eadm_haliases=Andra cache-DNS-namn
eadm_auto=Automatiskt
eadm_annto=Annonsera cachen till
eadm_annevery=Annonsera cachen varje
eadm_never=Aldrig
eadm_uniqhn=Unikt datornamn
eadm_cah=Dator f鰎 cache-meddelanden
eadm_cap=Port f鰎 cache-meddelanden
eadm_caf=Cache-annonseringsfil
eadm_none=Ingen
eadm_annp=Annonseringsintervall
eadm_buttsave=Spara
eadm_return=squid-index

eauth_header=Proxy-autentisering
eauth_aopt=Autentiseringsinst鋖lningar
eauth_puf=Proxy-anv鋘darfil
eauth_none=Ingen
eauth_nologin=Inloggning beh鰒s inte f鰎 dom鋘
eauth_buttsave=Spara
eauth_msgaccess=Din proxyserver 鋜 tillg鋘glig endast f鰎 nedan angivna anv鋘dare. Om du 鋘drar i denna lista m錽te Squid stannas och startas om f鰎 att 鋘dringarna ska sl igenom.
eauth_nmsgaccess=Din proxyserver 鋜 tillg鋘glig endast f鰎 nedan angivna anv鋘dare. Lista 鋜 tagen fr錸 filen $1.
eauth_pusers=Proxy-anv鋘dare
eauth_nopusers=Du har inte definierat n錱on proxy-anv鋘dare.
eauth_addpuser=L鋑g till proxy-anv鋘dare
eauth_return=squid-index

ec_header=Cache-inst鋖lningar
ec_cro=Inst鋖lningar f鰎 cachning och f鰎fr錱ningar
ec_cdirs=Cache-kataloger
ec_default=Standard
ec_listed=Angivna ...
ec_directory=Katalog
ec_type=Typ
ec_mos=Objektstorlek (kB)
ec_size=Storlek (MB)
ec_1dirs=1-niv錵at.
ec_2dirs=2-niv錵at.
ec_u=UFS
ec_ua=Async UFS
ec_diskd=DISKD
ec_1dirs1=F鰎staniv錵ataloger
ec_2dirs2=Andraniv錵ataloger
ec_aos=Medelstorlek p objekt
ec_kb=kB
ec_mins=minuter
ec_secs=sekunder
ec_opb=Antal objekt per katalog
ec_ncuc=Cacha inte URL:er som inneh錶ler
ec_ncum=Cacha inte URL:er som st鋗mer med
ec_ncua=Cacha inte URL:er f鰎 錿komstlistor
ec_mct=Maximal cachetid
ec_mrbs=Maximal kropp f鰎 f鰎fr錱ning
ec_mrhs=Maximal rubrik f鰎 f鰎fr錱ning
ec_mrbs1=Maximal kropp f鰎 svar
ec_mrs=Maximal storlek f鰎 f鰎fr錱ning
ec_frct=Cachetid f鰎 misslyckad f鰎fr錱ning
ec_dlct=Cachetid f鰎 DNS-uppslagning
ec_fdct=Cachetid f鰎 misslyckad DNS-uppslagning
ec_ct=Tidsgr鋘s f鰎 uppkoppling
ec_rt=Tidsgr鋘s f鰎 l鋝ning
ec_mcct=Maximal uppkopplingstid f鰎 klient
ec_mst=Maximal avst鋘gningstid
ec_sst=Tidsgr鋘s f鰎 siteval
ec_crt=Tidsgr鋘s f鰎 klientf鰎fr錱ning
ec_hcc=Halvst鋘gda klienter?
ec_pt=Kvardr鰆ande tidsgr鋘s
ec_wr=WAIS-rel
ec_none=Inget
ec_host=Dator
ec_port=Port
ec_wrh=Dator f鰎 WAIS-rel
ec_wrp=Port f鰎 WAIS-rel
ec_buttsave=Spara
ec_return=squid-index

ech_header=L鋑g till cache-dator
ech_header1=膎dra cache-dator
ech_cho=Inst鋖lningar f鰎 cache-dator
ech_h=Datornamn
ech_parent=鰒erordnad
ech_sibling=likst鋖ld
ech_multicast=multicast
ech_t=Typ
ech_pp=Proxy-port
ech_ip=ICP-port
ech_po=Endast proxy?
ech_y=Ja
ech_n=Nej
ech_siq=Skicka ICP-f鰎fr錱ningar?
ech_dc=Standard-cache?
ech_rrc=Round-robin-cache?
ech_ittl=ICP-livstid
ech_d=Standard
ech_cw=Cache-viktning
ech_co=Endast n鋜maste?
ech_nd=Inget urval?
ech_nne=Inget NetDB-utbyte?
ech_nd1=Ingen f鰎dr鰆ning?
ech_ltp=Inloggning till proxy
ech_nl=Ingen inloggning
ech_u=Anv鋘dare:
ech_p=L鰏enord:
ech_mr=Multicast-svar?
ech_qhfd=Sl upp dom鋘er hos datorn
ech_dqfd=Sl inte upp dom鋘er
ech_buttsave=Spara
ech_buttdel=Ta bort
ech_return=cache-lista

eicp_header=講riga cachar
eicp_opcs=講riga proxy-cache-servrar
eicp_nocd=Du har inte definierat n錱on annan cache
eicp_aac=L鋑g till cache
eicp_cso=Inst鋖lningar f鰎 cacheval
eicp_fdfd=H鋗ta direkt fr錸 dom鋘(er)
eicp_fdfi=H鋗ta direkt fr錸 IP
eicp_dif=Dom鋘er p insidan av brandv鋑gen
eicp_iif=IP-nummer p insidan av brandv鋑gen
eicp_dfuc=Omedelbart h鋗ta URL:er som inneh錶ler
eicp_d=Standard
eicp_bpfsp=G runt ping f鰎 ensam 鰒erordnad?
eicp_y=Ja
eicp_n=Nej
eicp_secs=sekunder
eicp_ssip=Skicka ursprungsdator i ping?
eicp_crt=Tidsgr鋘s f鰎 cache-svar
eicp_iqt=Tidsgr鋘s f鰎 ICP-uppslagning
eicp_mit=Tidsgr鋘s f鰎 multicast-ICP
eicp_dpt=Tidsgr鋘s f鰎 d鰀 motpart
eicp_h=Datornamn
eicp_t=Typ
eicp_pp=Proxy-port
eicp_ip=ICP-port
eicp_return=squid-index
eicp_always=ACL:er som ska h鋗tas direkt
eicp_noalways=Du har inte angivit n錱on ACL som ska h鋗tas direkt
eicp_addalways=L鋑g till ACL:er som ska h鋗tas direkt
eicp_never=ACL:er som aldrig ska h鋗tas direkt
eicp_nonever=Du har inte angivit n錱on ACL som aldrig ska h鋗tas direkt
eicp_addnever=L鋑g till ACL:er som aldrig ska h鋗tas direkt

elogs_header=Loggning
elogs_lalo=Inst鋖lningar f鰎 loggning
elogs_alf=Loggfil f鰎 錿komst
elogs_dlf=Loggfil f鰎 debuggning
elogs_slf=Loggfil f鰎 lagring
elogs_cmf=Fil f鰎 cache-metadata
elogs_uhlf=Anv鋘da HTTPD-loggformat?
elogs_lmh=Logga MIME-huvuden?
elogs_ualf=Loggfil f鰎 anv鋘darprogram
elogs_pf=PID-fil
elogs_prilfa=Utf鰎a RFC931-identitetsuppslagningar f鰎 錿komstlistor
elogs_rit=Tidsgr鋘s f鰎 RFC931-identitet
elogs_dril=G鰎a RFC931-uppslagningar?
elogs_lfh=Logga fullst鋘diga datornamn?
elogs_ln=Loggar n鋞mask
elogs_do=Debuggningsinst鋖lningar
elogs_mht=Tabell 鰒er MIME-huvuden
elogs_return=squid-index

emem_dheader=Minnes- och diskutnyttjande
emem_header=Minnesutnyttjande
emem_maduo=Inst鋖lningar f鰎 minnes- och diskutnyttjande
emem_mul=Minnesbegr鋘sning
emem_dul=Diskbegr鋘sning
emem_fcs=FD(FQDN)-cachestorlek
emem_mb=MB
emem_kb=kB
emem_mhwm="H鰃vattenm鋜ke" f鰎 minne
emem_mlwm="L錱vattenm鋜ke" f鰎 minne
emem_dhwm="H鰃vattenm鋜ke" f鰎 disk
emem_dlwm="L錱vattenm鋜ke" f鰎 disk
emem_mcos=Maximal storlek f鰎 cachade objekt
emem_iacs=Storlek f鰎 IP-adress-cache
emem_e=poster
emem_ichwm="H鰃vattenm鋜ke" f鰎 IP-cache
emem_iclwm="L錱vattenm鋜ke" f鰎 IP-cache
emem_crp=Diskutbytespolicy
emem_lru=Oanv鋘d l鋘gst tid
emem_gdsf=Greedy-dual size frequency
emem_lfuda=Dynamiskt minst anv鋘d
emem_hlru=Totalt minst anv鋘d
emem_return=squid-index
emem_mrp=Minnesutbytespolicy

emisc_header=Blandade inst鋖lningar
emisc_mo=Blandade inst鋖lningar
emisc_sdta=DNS-testadresser vid start
emisc_slr=SIGUSR1-loggfilsrotationer
emisc_dd=Standarddom鋘
emisc_sp=SSL-proxy
emisc_nghp=Ingen GET HTTP-proxy
emisc_emt=Felmeddelandetext
emisc_pcs=Statistik per klient?
emisc_xffh=X-Forwarded-For-rubrik?
emisc_liq=Logga ICP-uppslagningar?
emisc_mdh=Minimalt antal direkta hops
emisc_kmffu=Spara minne f鰎 framtida bruk?
emisc_aomtk=Sparad minnesm鋘gd
emisc_u=Obegr鋘sad
emisc_htpt=Huvuden som sl鋚ps igenom
emisc_ah=Alla
emisc_oh=Endast
emisc_ae=Alla utom
emisc_a=Anonymisering?
emisc_off=Av
emisc_std=Standard
emisc_par=Paranoid
emisc_fua=F鰎falska anv鋘darprogram
emisc_return=squid-index
emisc_hauhh=HTTP Accel anv鋘der Host-huvud
emisc_hah=HTTP Accel-dator
emisc_hap=HTTP Accel-port
emisc_hawp=HTTP Accel med proxy

eports_header=Portar och n鋞verk
eports_pano=Inst鋖lningar f鰎 portar och n鋞verk
eports_paap=Proxy-adresser och -portar
eports_p=Port
eports_hia=Datornamn/IP-adress
eports_pp=Proxy-port
eports_ip=ICP-port
eports_ota=Utg錯nde TCP-adress
eports_ita=Inkommande TCP-adress
eports_a=Alla
eports_oua=Utg錯nde UDP-adress
eports_iua=Inkommande UDP-adress
eports_mg=Multicast-grupper
eports_trb=TCP-mottagningsbuffer
eports_od=Standard-OS
eports_return=squid-index

eprogs_header=Hj鋖pprogram
eprogs_chpo=Inst鋖lningar f鰎 cache-hj鋖pprogram
eprogs_sfp=Squid FTP-program
eprogs_fo=FTP-inst鋖lningar
eprogs_fcv=FTP-kolumnbredd
eprogs_c=tecken
eprogs_afl=Anonym FTP-inloggning
eprogs_sdp=Squid DNS-program
eprogs_nodp=Antal DNS-program
eprogs_adtr=謕pna dom鋘 f鰎 f鰎fr錱ningar
eprogs_dsa=DNS-serveradresser
eprogs_fr=Fr錸 resolv.conf
eprogs_ccp=Cache-rensningsprogram
eprogs_spp=Squid ping-program
eprogs_crp=Eget omdirigeringsprogram
eprogs_norp=Antal omdirigeringsprogram
eprogs_cap=Eget autentiseringsprogram
eprogs_noap=Antal autentiseringsprogram
eprogs_return=squid-index

euser_header=Skapa proxy-anv鋘dare
euser_header1=膎dra proxy-anv鋘dare
euser_pud=Uppgifter om proxy-anv鋘dare
euser_u=Anv鋘darnamn
euser_p=L鰏enord
euser_u1=Of鰎鋘drat
euser_return=anv鋘darlista

ahttp_header=Ny proxy-begr鋘sning
ahttp_header1=膎dra proxy-begr鋘sning
ahttp_pr=Proxy-begr鋘sning
ahttp_a=舤g鋜d
ahttp_a1=Till錿
ahttp_d=Sp鋜ra
ahttp_ma=Matcha 錿komstlistor
ahttp_dma=Matcha inte 錿komstlistor
ahttp_return=舤komstlista

sahttp_ftspr=Det gick inte att spara proxy-begr鋘sning

aicp_header=Ny ICP-begr鋘sning
aicp_header1=膎dra ICP-begr鋘sning
aicp_ir=ICP-begr鋘sning
aicp_a=舤g鋜d
aicp_a1=Till錿
aicp_d=F鰎bjud
aicp_ma=Matcha 錿komstlistor
aicp_dma=Matcha inte 錿komstlistor
aicp_return=舤komstlista

saicp_ftsir=Det gick inte att spara ICP-begr鋘sning

icache_ftic=Det gick inte att initialisera cache
icache_ymcautrsa=Du m錽te ange vilken anv鋘dare du vill k鰎a Squid som
icache_itscwtc=Initialiserar Squid-cachen med kommando <tt>$1</tt> ...
icache_return=squid-index
icache_title=Initialisera cache

restart_ftrs=Det gick inte att 鋘dra inst鋖lningar f鰎 Squid

sadmin_ftsao=Det gick inte att spara administrativa inst鋖lningar
sadmin_header=膎dra 鋑are
sadmin_msg1=Du har 鋘drat anv鋘dare eller grupp som Squid ska k鰎a som. F鰎 att detta ska sl igenom m錽te du uppdatera 鋑are f鰎 alla cache- och loggfiler och starta om Squid.
sadmin_buttco=膎dra 鋑are
sadmin_return=squid-index
sadmin_inavea='$1' 鋜 inte en giltig e-postadress
sadmin_inavh='$1' 鋜 inte ett giltigt datornamn
sadmin_inavap='$1' 鋜 inte ett giltigt annonseringsintervall
sadmin_inavp='$1' 鋜 inte en giltig port

sauth_ftsao=Det gick inte att spara autentiseringsinst鋖lningar
sauth_iomuf=Anv鋘darfilnamn saknas eller 鋜 felaktigt angivet
sauth_iomd=Dom鋘 saknas eller 鋜 felaktigt angiven
sauth_msg1=Din version av Squid 鋜 inte kompilerad med proxy-autentiseringsst鰀.

scache_ftsco=Det gick inte att spara cache-inst鋖lningar
scache_emsg0=Du m錽te ange minst en cache-katalog
scache_emsg1=Cache-katalog '$1' finns inte
scache_emsg2='$1' 鋜 inte en giltig storlek p f鰎fr錱ning
scache_emsg3='$1' 鋜 inte en giltig cachetid f鰎 misslyckad f鰎fr錱ning
scache_emsg4='$1' 鋜 inte en giltig cachetid f鰎 DNS
scache_emsg5='$1' 鋜 inte en giltig tidsgr鋘s
scache_emsg6='$1' 鋜 inte en giltig tid
scache_emsg7='$1' 鋜 inte ett giltigt katalogantal
scache_emsg8=Katalogantalet m錽te vara >= 1
scache_emsg9=Katalogantalet m錽te vara <= 256
scache_emsg10='$1' 鋜 inte en giltig objektstorlek
scache_emsg11='$1' 鋜 inte et giltigt objektantal
scache_emsg12='$1' 鋜 inte en giltig katalogstorlek
scache_emsg13='$1' 鋜 inte en giltig dator
scache_emsg14='$1' 鋜 inte en giltig port

schost_ftsc=Det gick inte att spara cache
schost_emsg1='$1' 鋜 inte ett giltigt cache-datornamn
schost_emsg2='$1' 鋜 inte en giltig proxy-port
schost_emsg3='$1' 鋜 inte en giltig ICP-port
schost_emsg4='$1' 鋜 inte en giltig livstid
schost_emsg5='$1' 鋜 inte en giltig viktning

sicp_ftsco=Det gick inte att spara cache-inst鋖lningar
sicp_emsg1='$1' 鋜 inte en giltig tidsgr鋘s

slogs_ftslo=Det gick inte att spara logginst鋖lningar
slogs_emsg1='$1' 鋜 inte ett absolut filnamn
slogs_emsg2='$1' 鋜 inte ett giltigt filenamn
slogs_emsg3=Katalogen '$1' finns inte
slogs_emsg4='$1' 鋜 inte en giltig n鋞mask
slogs_emsg5='$1' 鋜 inte giltiga debuggningsinst鋖lningar

smem_ftsmo=Det gick inte att spara minnesinst鋖lningar
smem_emsg1='$1' 鋜 inte en giltig cache-storlek
smem_emsg2='$1' 鋜 inte ett giltigt h鰃vattenm鋜ke
smem_emsg3='$1' 鋜 inte ett giltigt l錱vattenm鋜ke
smem_emsg4='$1' 鋜 inte en giltig objektstorlek

smisc_ftso=Det gick inte att spara inst鋖lningar
smisc_emsg1='$1' 鋜 inte ett giltigt rotationsantal
smisc_emsg2='$1' 鋜 inte en giltig dom鋘
smisc_emsg3='$1' 鋜 inte en giltig proxy
smisc_emsg4='$1' 鋜 inte ett giltigt hops-antal

sport_ftspo=Det gick inte att spara port-inst鋖lningar
sport_emsg1='$1' 鋜 inte ett giltigt portnummer
sport_emsg2='$1' 鋜 inte en giltig adress
sport_emsg3='$1' 鋜 inte en giltig bufferstorlek

sprog_ftshpo=Det gick inte att spara inst鋖lningar f鰎 hj鋖pprogram
sprog_emsg1=FTP-inst鋖lningar saknas
sprog_emsg2='$1' 鋜 inte ett giltigt program
sprog_emsg3='$1' 鋜 inte ett k鰎bart program
sprog_emsg4='$1' 鋜 inte ett giltigt FTP-inloggningsnamn
sprog_emsg5='$1' 鋜 inte ett giltigt programantal
sprog_emsg6='$1' 鋜 inte en giltig kolumnbredd
sprog_emsg7=Du har inte angivit n錱on DNS-server
sprog_emsg8='$1' 鋜 inte en giltig IP-adress

suser_ftsu=Det gick inte att spara anv鋘dare
suser_emsg1=Anv鋘darnamn saknas eller 鋜 felaktigt angivet

start_ftsq=Det gick inte att starta Squid
stop_ftsq=Det gick inte att stanna Squid

calamaris_title=Calamaris logganalysering
calamaris_last=Begr鋘sar analysen till de senaste $1 loggraderna ...
calamaris_eprog=Den k鰎bara Calamaris-filen $1 kunde inte hittas. Den kanske inte har installerats p systemet, eller ocks 鋜 dina <a href='$2'>modulinst鋖lningar</a> felaktiga.
calamaris_elogs=Loggkatalogen $1 inneh錶ler inte n錱ra <tt>access.log</tt>-filer. squid kanske inte har k鰎ts 鋘, eller ocks 鋜 dina <a href='$2'>modulinst鋖lningar</a> felaktiga.
calamaris_gen=Rapport genererad $1

lib_emsg1='$1' 鋜 inte en giltig IP-adress
lib_seconds=sekunder
lib_minutes=minuter
lib_hours=timmar
lib_days=dagar
lib_weeks=veckor
lib_fortnights=tv鍁eckorsperioder
lib_months=m錸ader
lib_years=錼
lib_decades=decennier
lib_emsg2='$1' 鋜 inte ett giltigt antal $2
lib_kb=kB
lib_mb=MB
lib_gb=GB
lib_emsg3='$1' 鋜 inte ett giltigt antal $2
lib_aclca=Klientadress
lib_aclwsa=Webserveradress
lib_aclch=Klientdatornamn
lib_aclwsh=Webservernamn
lib_acldat=Datum och tid
lib_aclur=URL regexp
lib_aclupr=URL s鰇v鋑, regexp
lib_aclup=URL-port
lib_aclup1=URL-protokoll
lib_aclrm=F鰎fr錱ningsmetod
lib_aclbr=Browser regexp
lib_aclpl=Proxy-inloggning
lib_aclsan=Ursprung som nummer
lib_acldan=Destination som nummer
lib_aclea=Extern autentisering
lib_aclcr=Klient regexp
lib_aclwsr=Webserver regexp
lib_aclru=RFC931-anv鋘dare
lib_aclpia=Proxy-IP-adress
lib_aclmc=Maximalt antal uppkopplingar
lib_aclpp=Proxy-port
lib_aclsc=SNMP Community
lib_aclrmt=Fr錱a efter MIME-typ
lib_aclarp=Ethernet-adress
lib_aclear=Externt regulj鋜t Auth-uttryck
lib_buttac=Genomf鰎 鋘dringar
lib_buttss=Stanna Squid
lib_buttss1=Starta Squid

log_ports=膎drade port- och n鋞verksinst鋖lningar
log_icp=膎drade 鰒riga cache-inst鋖lningar
log_mem=膎drade inst鋖lningar f鰎 minnesutnyttjande
log_logs=膎drade loggningsinst鋖lningar
log_cache=膎drade cache-inst鋖lningar
log_progs=膎drade inst鋖lningar f鰎 hj鋖pprogram
log_admin=膎drade administrativa inst鋖lningar
log_misc=膎drade blandade inst鋖lningar
log_clear=Rensade och 錿eruppbyggde cachen
log_acl_create=Lade till ACL $1
log_acl_modify=Modifierade ACL $1
log_acl_delete=Tog bort ACL $1
log_http_create=Lade till proxy-begr鋘sning
log_http_modify=Modifierade proxy-begr鋘sning
log_http_delete=Tog bort proxy-begr鋘sning
log_http_move=Flyttade proxy-begr鋘sning
log_icp_create=Lade till ICP-begr鋘sning
log_icp_modify=Modifierade ICP-begr鋘sning
log_icp_delete=Tog bort ICP-begr鋘sning
log_icp_move=Flyttade ICP-begr鋘sning
log_stop=Stannade proxy-server
log_start=Startade proxy-server
log_apply=Tog 鋘dringar i drift
log_host_create=Lade till cache-dator $1
log_host_modify=Modifierade cache-dator $1
log_host_delete=Tog bort cache-dator $1
log_init=Initialiserade cache
log_user_create=Lade till proxy-anv鋘dare $1
log_user_delete=Tog bort proxy-anv鋘dare $1
log_user_modify=Modifierade proxy-anv鋘dare $1
log_always_create=Lade till ACL:er som ska h鋗tas direkt
log_always_modify=Modifierade ACL:er som ska h鋗tas direkt
log_always_delete=Tog bort ACL:er som ska h鋗tas direkt
log_always_move=Flyttade ACL:er som ska h鋗tas direkt
log_never_create=Lade till ACL:er som aldrig ska h鋗tas direkt
log_never_modify=Modifierade ACL:er som aldrig ska h鋗tas direkt
log_never_delete=Tog bort ACL:er som aldrig ska h鋗tas direkt
log_never_move=Flyttade ACL:er som aldrig ska h鋗tas direkt

acl_root=Rotkatalog f鰎 ACL-filer

always_create=L鋑g till lista att h鋗ta direkt
always_edit=膎dra lista att h鋗ta direkt
always_header=H鋗ta f鰎fr錱ningar direkt, som matchar ACL:erna

never_create=L鋑g till lista som inte ska h鋗tas direkt
never_edit=膎dra lista som inte ska h鋗tas direkt
never_header=H鋗ta aldrig f鰎fr錱ningar direkt, som matchar ACL:erna
  07070100071d9b000081a40000000000000002000000013ac0389f00004a0f000000200000000000000000000000000000001400000003reloc/squid/lang/tr   index_header=Squid Proxy Sunucusu
index_msgnoconfig=Squid yap齦and齬ma dosyas <tt>$1</tt> mevcut de餴l. Squid kurulu ise do餽u yolu kullanabilmek i鏸n <a href=/config.cgi?$2>mod黮 yap齦and齬mas</a>n yeniden yapmal齭齨齴
index_msgnoexe=Squid 鏰lt齬齦abiliri <tt>$1</tt> mevcut de餴l.Squid kurulu ise so餽u yolu kullanabilmek i鏸n <a href=/config.cgi?$2>Mod黮 yap齦and齬mas</a>n tekrar yapmal齭齨齴
index_msgnosupported=Squid'inizin s黵黰 Linux taraf齨dan desteklenmemektedir.Sadece <tt>1.1</tt>, <tt>2.0</tt>, <tt>2.1</tt>, <tt>2.2</tt> ve <tt>2.3</tt> s黵黰leri desteklenmektedir
index_msgnodir1=Squid cache dizininiz <tt>$1</tt> ilklendirilmedi.
index_msgnodir2=Squid cache dizininiz <tt>$1</tt> ilklendirilmedi.
index_msgnodir3=Squid 鏰lt齬齦abilir olmadan 鰊ce bu bitmi olmal齞齬.
index_buttinit=Cache 輑klendir
index_asuser=Unix kullan齝齭 olarak
index_portsnets=Portlar ve A餷ar
index_othercaches=Di餰r Cache'ler
index_musage=Bellek kullan齧
index_logging=Kay齮
index_copts=Cache Se鏴nekleri
index_hprogs=Yard齧 Programlar
index_actrl=Giri Kontrol
index_admopts=Y鰊etim Se鏴nekleri
index_proxyauth=Proxy Onaylama
index_miscopt=莈㱮tli Se鏴nekler
index_cms=Cache Y鰊etim 輘tatistikleri
index_rebuild=Cache'yi Temizle ve Tekrar Olu⺶ur
index_return=indeks

buttsave=Kaydet
buttdel=Sil
buttcreat=Olu⺶ur
yes=Evet
no=Hay齬
default=謓tan齧l
none=Hi鏱iri
on=A琮k
off=Kapal

acl_header1=ACL Olu⺶ur
acl_header2=ACL De餴⺶ir
acl_name=ACL 輘mi
acl_fromip=IP'den
acl_toip=IP'ye
acl_nmask=A Maskesi
acl_ipaddr=IP Adresi
acl_domains=Alanlar
acl_dofw=Haftan齨 G黱leri
acl_sel=Se鏸li..
acl_all=Hepsi
acl_dsun=Pazar
acl_dmon=Pazartesi
acl_dtue=Sal
acl_dwed=莂rmba
acl_dthu=Per㧐mbe
acl_dfri=Cuma
acl_dsat=Cumartesi
acl_hofd=G黱黱 Saatleri
acl_to='e
acl_regexp=D鼁enleme 輋adeleri
acl_tcpports=TCP Portlar
acl_urlproto=URL Protokollar
acl_reqmethods=Gerekli Metodlar
acl_bregexp=Taray齝 Kay齮 輋adeleri
acl_pusers=Proxy Kullan齝齦ar
acl_asnum=AS Numaralar
acl_rtime=Yenileme Zaman
acl_rfcusers=RFC931 Kullan齝齦ar
acl_mcr=Ayn zamandaki en 鏾k istek say齭
acl_psp=Proxy Sunucusu Portu
acl_scs=SNMP Topluluk S齬as
acl_failurl=URL Hatas
acl_buttsave=Kaydet
acl_buttdel=Sil
acl_return=ACL listesi

aclsave_failsave=ACL'nin kaydedilmesinde hata olu⺶u
aclsave_faildel=ACL'nin silinmesinde hata olu⺶u
aclsave_epr=Bu ACL proxy s齬alanmas ile kullan齦m oldu
aclsave_eicpr=Bu ACL ICP s齬alanmas ile kullan齦m oldu 
aclsave_ename=Yanl ACL ismi
aclsave_eexists='$1' ACL isimi her zaman mevcut
aclsave_efrom='$1' ge鏴rli bir From IP adresi de餴l
aclsave_eto='$1' ge鏴rli bir To IP adresi de餴l
aclsave_enmask='$1' ge鏴rli bir a maskesi de餴l
aclsave_eip='$1' ge鏴rli bir IP adresi de餴l
aclsave_ecdom=輘temci alanlar verilmedi
aclsave_esdom=Sunucu alanlar verilmedi
aclsave_eshour=Yanl baama saati
aclsave_eehour=Yanl biti saati
aclsave_esmin=Yanl baama dakikas
aclsave_eemin=Yanl biti dakikas
aclsave_efile=ACL dosyas '$1'e yazmak i鏸n izininiz yoktur

cach_err=Hata
cach_nfound=Squid cache y鰊etim program <tt>$1</tt> sisteminizde bulunamad.<a href=/config.cgi?$2>mod黮 yap齦and齬man齴</a> do餽u olmayabilir
cach_return=squid indeksi

chown_header=Sahibini De餴⺶ir
chown_stop=Squid durduruluyoe ...
chown_done=.. Bitti
chown_chown=Sahibi de餴⺶iriliyor ...
chown_restart=Squid Tekrar Baatl齳or ...
chown_failrestart=Squid'in tekrar baat齦mas齨da hata olu⺶u ..
chown_return=squid indeksi

clear_header=Cache'i Temizle ve Tekrar Olu⺶ur
clear_msgclear=Squid cache'sini silmek ve tekrar olu⺶urmak istedi餴nizden emin misiniz?Bunu yapt齨齴da Squid'in cache'sindeki <tt>b黷黱</tt> dosyalar silinecek ve Squid yeniden baat齦acakt齬. Ba餷ant齨齴 ge鏸ci olarak kesilebilir.
clear_msgclear2=
clear_buttclear=Squid Kay齮lar齨 Temizle ve Tekrar Olu⺶ur
clear_stop=Squid durduruluyor ...
clear_done=.. Bitti
clear_del=Eski cache dosyalar齨 siliniyor ..
clear_init=Squid cache'si <tt>$1</tt> komutu ile ilklendiriliyor..
clear_failrestart=Squid'in yeniden baat齦mas齨da hata olu⺶u ..
clear_return=squid indeksi

eacl_header=Giri Kontrol
eacl_acls=giri kontrol listesi
eacl_name=輘imk
eacl_type=Tip
eacl_match=Aran齳or..
eacl_noacls=Tan齧lanan ACL'ler yok 
eacl_buttcreate=Yeni ACL olu⺶ur
eacl_pr=Proxy S齨齬lamalar
eacl_act=蔺lem
eacl_acls1=ACL'ler
eacl_move=Ta
eacl_nopr=Proxy s齨齬lamalar tan齧lanmad
eacl_addpr=Proxy s齨齬lamas ekle
eacl_icpr=ICP s齨齬lamalar
eacl_noicpr=ICP s齨齬lamalalar tan齧lanmad
eacl_addicpr=ICP s齨齬lamas ekle
eacl_return=squid indeksi
eacl_allow=輟in verildi
eacl_deny=輟in veilmedi

eadm_header=Y鰊etim Se鏴nekleri
eadm_aao=Y鰊etim ve Bildirim Se鏴nekleri
eadm_runasuu=Unix kullan齝齭 olarak 鏰lt齬
eadm_nochange=De餴⺶irme
eadm_user=Kullan齝
eadm_group=Grup
eadm_runasug=Unix grubu olarak 鏰lt齬
eadm_par=Proxy onaylama alan
eadm_default=謓tan齧l
eadm_cmemail=Cache y鰊eticisi e-posta adresi
eadm_vhost=G鰎黱en makine ad
eadm_uniq=Tek makine ad
eadm_auto=Otomatik
eadm_annto=Cache bildir
eadm_annevery=Cache bildir her
eadm_never=Asla
eadm_uniqhn=Tek makine ad
eadm_cah=Cache bildirim makinesi
eadm_cap=Cache bildirim portu
eadm_caf=Cache bildirim dosyas
eadm_none=Hi鏱iri
eadm_annp=Bildirim Periyodu
eadm_buttsave=Kaydet
eadm_return=squid indeksi

eauth_header=Proxy Onaylama
eauth_aopt=Onaylama Se鏴nekleri
eauth_puf=Proxy kullan齝 dosyas
eauth_none=Hi鏱iri
eauth_nologin=Alan i鏸n login'e ihtiya yoktur
eauth_buttsave=Kaydet
eauth_msgaccess=Proxy sunucunuza girier takip eden listedeki kullan齝齦ar ile s齨齬land齬齦mt齬.Bir kullan齝 ekleme ve silme emlerini yapt齥tan sonra de餴㱮kliklerin aktif hale gelmesi i鏸n Squid durdurulup tekrar baat齦mal齞齬 
eauth_pusers=Proxy Kullan齝齦ar
eauth_nopusers=Mevcut, tan齧lanm proxy kullan齝齭 yoktur
eauth_addpuser=Yeni bir proxy kullan齝齭 ekle
eauth_return=squid indeksi

ec_header=Cache Se鏴nekleri
ec_cro=Caching ve 輘tek Se鏴nekleri
ec_cdirs=Cache dizinleri
ec_default=謓tan齧l
ec_listed=Listelenmi..
ec_directory=Dizin
ec_type=Tip
ec_size=Boyut (Mb)
ec_1dirs=Birinci seviye dizinleri
ec_2dirs=輐inci seviye dizinleri
ec_u=UFS
ec_ua=Async UFS
ec_1dirs1=Birinci seviye dizinleri
ec_2dirs2=輐inci seviye dizinleri
ec_aos=Obje boyut s齨齬
ec_kb=Kb
ec_mins=dakika
ec_secs=saniye
ec_opb=Kova bana obje
ec_ncuc=URL i鏴riklerini depolama
ec_ncum=URL aramalar齨 depolama
ec_ncua=ACL i鏸n URL'leri depolama
ec_mct=En 鏾k cache s黵esi
ec_mrbs=En 鏾k istek i鏴rik s齨齬
ec_mrhs=En 鏾k istek ba boyutu
ec_mrbs1=En 鏾k geri d鰊d黵黮en i鏴rik boyutu
ec_mrs=En 鏾k istek s齨齬
ec_frct=Cache s黵esi iste餴nde hata olu⺶u
ec_dlct=DNS arama cache s黵esi
ec_fdct=DNS arama cache'inde hata olu⺶u
ec_ct=Ba餷ant kopma s黵esi
ec_rt=Kopma s黵esini oku
ec_mcct=En 鏾k istemci ba餷ant s黵esi
ec_mst=En 鏾k kapan s黵esi
ec_sst=Site se鏸m kopma s黵esi
ec_crt=輘temci istek kopma s黵esi
ec_hcc=Yar kapal istemciler?
ec_pt=S黵ekli kopma s黵esi
ec_wr=WAIS aktar齧
ec_none=Hi鏱iri
ec_host=Makine
ec_port=Port
ec_wrh=WAIS altar齧 makinesi
ec_wrp=WAIS relay portu
ec_buttsave=Kaydet
ec_return=squid indeksi

ech_header=Cache Host'u Olu⺶ur
ech_header1=Cache Host'unu De餴⺶ir
ech_cho=Cache Host Se鏴nekleri
ech_h=Makine Ad
ech_parent=ana
ech_sibling=karde
ech_multicast=multicast
ech_t=Tip
ech_pp=Proxy portu
ech_ip=ICP portu
ech_po=Sadece proxy?
ech_y=Evet
ech_n=Hay齬
ech_siq=ICP kuyruklar齨 g鰊der?
ech_dc=謓tan齧l cache?
ech_rrc=Round-robin cache?
ech_ittl=ICP yama s黵esi
ech_d=謓tan齧l
ech_cw=Cache etkisi?
ech_co=Sadece en yak齨?
ech_nd=謟黰senmesin?
ech_nne=NetDB de餴㱮mi yap齦mas齨?
ech_nd1=Bekleme yap齦mas齨?
ech_ltp=Proxy'ye giri
ech_nl=Giri yok
ech_u=Kullan齝:
ech_p=辤fre:
ech_mr=Multicast yan齮las齨?
ech_qhfd=Alanlar i鏸n sorgulama ismi
ech_dqfd=Alanlar i鏸n sorgulama yapma
ech_buttsave=Kaydet
ech_buttdel=Sil
ech_return=cache listesi

eicp_header=Di餰r Cache'ler
eicp_opcs=Di餰r proxy cache sunucular
eicp_nocd=Di餰r cache'ler tan齧lanmad
eicp_aac=Ba⺧a cache ekle
eicp_cso=Cache Se鏸m Se鏴nekleri
eicp_fdfd=Alanlardan do餽udan getir
eicp_fdfi=IP'lerden do餽udan getir
eicp_dif=Alanlar firewall i鏴riyor
eicp_iif=IP'ler firewall i鏴riyor
eicp_dfuc=URL i鏴riklerini do餽udan al
eicp_d=謓tan齧l
eicp_bpfsp=Tek kaynak i鏸n ping'i ge?
eicp_y=Evet
eicp_n=Hay齬
eicp_secs=saniye
eicp_ssip=Ping'te kaynak g鰊der?
eicp_crt=Cache geri g鰊derim bekleme s黵esi
eicp_iqt=ICP sorgulama 琮k s黵esi
eicp_mit=Multicase ICP 琮k s黵esi
eicp_dpt=Benzer 琮k s黵esi
eicp_h=Makine Ad
eicp_t=Tip
eicp_pp=Proxy portu
eicp_ip=ICP portu
eicp_return=squid indeksi

elogs_header=Kay齮
elogs_lalo=Kay齮 ve Kay齮 Dosyas Se鏴nekleri
elogs_alf=Giri kay齮 dosyas
elogs_dlf=Hata kay齮 dosyas
elogs_slf=Depo kay齮 dosyas
elogs_cmf=Cache de餴㧐n bilgi dosyas
elogs_uhlf=HTTPD kay齮 㧐klini kullan 
elogs_lmh=MIME ba齥lar齨齨 kay齮lar齨 tut?
elogs_ualf=Kullan齝 ba餷ant kay齮 dosyas
elogs_pf=PID dosyas
elogs_prilfa=ACL'ler i鏸n RFC931 tan齧 aramalar齨 yap
elogs_rit=RFC931 tan齧 琮k s黵esi
elogs_dril=RFC931 tan齧 aramalar yap齦s齨?
elogs_lfh=Makine adlar齨齨 tamam kaydedilsin?
elogs_ln=A maskesi kay齮lar
elogs_do=Hatas齴la⺶齬mak se鏴nekleri
elogs_mht=MIME ba齥 tablosu
elogs_return=squid indeksi

emem_header=Bellek Kullan齧
emem_maduo=Bellek ve Disk Kullan齧 Se鏴nekleri
emem_mul=Bellek kullan齧 limiti
emem_dul=Disk kullan齧 limiti
emem_fcs=FQDN cache boyutu
emem_mb=Mb
emem_kb=Kb
emem_mhwm=Bellek en y黭sek ak y鼁desi
emem_mlwm=Bellek en d黭 ak y鼁desi
emem_dhwm=Disk en y黭sek ak y鼁desi
emem_dlwm=Disk en d黭 ak y鼁desi
emem_mcos=Cache'lenmi objenin en b鼀黭 boyutu
emem_iacs=IP adresi cache boyutu
emem_e=girier
emem_ichwm=IP cache en y黭sek ak y鼁desi
emem_iclwm=IP cache en d黭 ak y鼁desi
emem_return=squid indeksi

emisc_header=莈㱮tli Se鏴nekler
emisc_mo=莈㱮tli Se鏴nekler
emisc_sdta=Baang DNS test adresi
emisc_slr=SIGUSR1 kay齮 dosyas d鰊d黵黮meleri
emisc_dd=謓tan齧l alan
emisc_sp=SSL proxy
emisc_nghp=GET olmayan HTTP proxy
emisc_emt=Hata mesaj yaz齭
emisc_pcs=輘temci bana istatistik tutulsun?
emisc_xffh=X-Forwarded-For ba?
emisc_liq=ICP sorgulama kay齮lar齨 tut?
emisc_mdh=En k黭 do餽udan srama
emisc_kmffu=Gelecek kullan齧 i鏸n belle餴 tut?
emisc_aomtk=Tutmak i鏸n bellek miktar
emisc_u=Limitsiz
emisc_htpt=葭inden ge鏴n ba齥lar 
emisc_ah=B黷黱 ba齥lar
emisc_oh=Sadece ba齥lar
emisc_ae=Hepsinden ba⺧a
emisc_a=Ortak isim?
emisc_off=Kapal
emisc_std=Standart
emisc_par=Delice
emisc_fua=Sahte Kullan齝 Temsilcisi
emisc_return=squid indeksi
emisc_hauhh=HTTP H齴land齬齝 Makine Ad Ba齥lar齨 Kullans齨
emisc_hah=HTTP H齴land齬齝 Makine Ad
emisc_hap=HTTP H齴land齬齝 Portu
emisc_hawp=Proxy ile HTTP H齴land齬

eports_header=Portlar ve A
eports_pano=Portlar ve A Se鏴nekleri
eports_paap=Proxy adresleri ve portlar
eports_p=Port
eports_hia=Makine Ad/IP Adresi
eports_pp=Proxy portu
eports_ip=ICP portu
eports_ota=Giden TCP adresi
eports_ita=Gelen TCP adresi
eports_a=Herhangi
eports_oua=Giden UDP adresi
eports_iua=Gelen UDP adresi
eports_mg=Multicast gruplar
eports_trb=TCP al齧 tamponu
eports_od=謓tan齧l OS
eports_return=squid indeksi

eprogs_header=Yard齧 Programlar
eprogs_chpo=Cache Yard齧 Program Se鏴nekleri
eprogs_sfp=Squid FTP program
eprogs_fo=FTP se鏴nekleri
eprogs_fcv=FTP kolon uzunlu饀
eprogs_c=karakter
eprogs_afl=Ortak FTP giri㱮(Anonymous)
eprogs_sdp=Squid DNS program
eprogs_nodp=DNS programlar齨齨 say齭
eprogs_adtr=輘teklere alan ekle
eprogs_dsa=DNS sunucu adresleri
eprogs_fr=resolv.conf'tan
eprogs_ccp=Cache temizleme program
eprogs_spp=Squid ping program
eprogs_crp=謟el y鰊lendirme program
eprogs_norp=Y鰊lendirme programlar齨齨 Say齭
eprogs_cap=謟el onaylama program
eprogs_noap=謟el onaylama programlar齨齨 say齭
eprogs_return=squid indeksi

euser_header=Proxy Kullan齝齭 Olu⺶ur
euser_header1=Proxy Kullan齝齭 De餴⺶ir
euser_pud=Proxy Kullan齝齭 ayr齨t齦ar
euser_u=Kullan齝 Ad
euser_p=辤fre
euser_u1=De餴⺶irilmedi
euser_return=kullan齝 listesi

ahttp_header=Proxy S齨齬lamas Olu⺶ur
ahttp_header1=Proxy S齨齬lamas齨 De餴⺶ir
ahttp_pr=Proxy S齨齬lamas
ahttp_a=蔺lem
ahttp_a1=輟in verildi
ahttp_d=輟in verilmedi
ahttp_ma=ACL'leri karla⺶齬
ahttp_dma=ACL'leri karla⺶齬ma
ahttp_return=ACL listesi

sahttp_ftspr=Proxy s齨齬land齬齦mas齨齨 kaydedilmesinde hata olu⺶u

aicp_header=ICP S齨齬lamas Olu⺶ur
aicp_header1=ICP S齨齬lamas齨 De餴⺶ir
aicp_ir=ICP S齨齬lamas
aicp_a=蔺lem
aicp_a1=輟in verildi
aicp_d=輟in verilmedi
aicp_ma=ACL'leri karla⺶齬
aicp_dma=ACL'leri karla⺶齬ma
aicp_return=ACL listesi

saicp_ftsir=ICP s齨齬land齬齦mas齨齨 kaydedilmesinde hata olu⺶u

icache_ftic=Cache'nin ilklendirilmesinde hata olu⺶u
icache_ymcautrsa=Squid'i 鏰lt齬mak i鏸n bir kullan齝 se鏼elisiniz
icache_header=Cache'yi 輑klendir
icache_itscwtc=Squid cache <tt>$1</tt> komutu ile ilklendiriliyor ..
icache_return=squid indeksi

restart_ftrs=Squid'in yeniden yap齦and齬齦mas齨da hata olu⺶u

sadmin_ftsao=Y鰊etim Se鏴neklerinin kaydedilmesinde hata olu⺶u
sadmin_header=Sahibini De餴⺶ir
sadmin_msg1=Squid'i 鏰lt齬mak i鏸n kullan齝 ya da grubu de餴⺶irmelisiniz.Bu iemi yapt齨齴da b黷黱 cache ve kay齮 dosyalar齨齨 sahibi de餴㧐cek ve Squid yeniden bat齦acakt齬.
sadmin_buttco=Sahibini De餴⺶ir
sadmin_return=indeks
sadmin_inavea='$1' ge鏴rli bir e-posta adresi de餴ldir
sadmin_inavh='$1' ge鏴rli bir makine ad de餴ldir
sadmin_inavap='$1' ge鏴rli bir duyuru periyodu de餴ldir
sadmin_inavp='$1' ge鏴rli bir port de餴ldir

sauth_ftsao=Onaylama se鏴neklerinin de餴⺶irilmesinde hata olu⺶u
sauth_iomuf=Kay齪 ya da yanl kullan齝 dosyalar
sauth_iomd=Kay齪 ya da yanl alan
sauth_msg1=Kulland齨齴 Squid s黵黰 proxy onaylama se鏴ne餴 ile kurulmam.

scache_ftsco=Cache se鏴neklerinin kaydedilmesinde hata olu⺶u
scache_emsg0=Cache dizinlerinden en az birini girmelisiniz
scache_emsg1='$1' cache dizini mevcut de餴l
scache_emsg2='$1' ge鏴rli bir istek boyutu de餴l
scache_emsg3='$1' ge鏴rli bir yanl istek cache s黵esi de餴l
scache_emsg4='$1' ge鏴rli bir DNS cache s黵esi de餴l
scache_emsg5='$1' ge鏴rli bir bekleme s黵esi de餴l
scache_emsg6='$1' ge鏴rli bir s黵e de餴l
scache_emsg7='$1' ge鏴rli bir dizin say齭 de餴l
scache_emsg8=Dizinlerin say齭 >= 1 olmal齞齬
scache_emsg9=Dizinlerin say齭 <= 256 olmal齞齬
scache_emsg10='$1' ge鏴rli bir obje boyutu de餴ldir
scache_emsg11='$1' ge鏴rli bir obje say齭 se餴ldir
scache_emsg12='$1' ge鏴rli bir dizin boyutu de餴ldir
scache_emsg13='$1' ge鏴rli bir makine de餴ldir
scache_emsg14='$1' ge鏴rli bir port de餴ldir

schost_ftsc=Cache'in kaydedilmesinde hata olu⺶u
schost_emsg1='$1' ge鏴rli bir cache makine ad de餴ldir
schost_emsg2='$1' ge鏴rli bir proxy portu de餴ldir
schost_emsg3='$1' ge鏴rli bir ICP portu de餴ldir
schost_emsg4='$1' ge鏴rli bir yama s黵esi de餴ldir
schost_emsg5='$1' ge鏴rli bir y黭leme de餴ldir

sicp_ftsco=Cache se鏴neklerinin kaydedilmesinde hata olu⺶u
sicp_emsg1='$1' ge鏴rli bir bekleme s黵esi de餴ldir

slogs_ftslo=Kay齮 se鏴neklerinin kaydedilmesinde hata olu⺶u
slogs_emsg1='$1' ge鏴rli bir mutlak dosya ad de餴ldir
slogs_emsg2='$1' ge鏴rli bir dosya ad de餴ldir
slogs_emsg3='$1' dizini mevcut de餴ldir
slogs_emsg4='$1' ge鏴rli bir a maskesi de餴ldir
slogs_emsg5='$1' ge鏴rli bir hatas齴la⺶齬ma se鏴nek listesi de餴ldir

smem_ftsmo=Bellek se鏴neklerinin kaydedilmesinde hata olu⺶u
smem_emsg1='$1' ge鏴rli bir cache boyutu de餴ldir
smem_emsg2='$1' ge鏴rli bir en y黭sek ak y鼁desi de餴ldir
smem_emsg3='$1' ge鏴rli bir en d黭 ak y鼁desi de餴ldir
smem_emsg4='$1' ge鏴rli bir obje boyutu de餴ldir

smisc_ftso=Se鏴neklerin kaydedilmesinde hata olu⺶u
smisc_emsg1='$1' ge鏴rli bir d鰊d黵me say齭 de餴ldir
smisc_emsg2='$1' ge鏴rli bir alan de餴ldir
smisc_emsg3='$1' ge鏴rli bir proxy de餴ldir
smisc_emsg4='$1' ge鏴rli bir srama say齭 se餴ldir

sport_ftspo=Port se鏴neklerinin kaydedilmesinde hata olu⺶u
sport_emsg1='$1' ge鏴rli bir port numaras de餴ldir
sport_emsg2='$1' ge鏴rli bir adres de餴ldir
sport_emsg3='$1' ge鏴rli bir tampon boyutu de餴ldir

sprog_ftshpo=Yard齧 program se鏴neklerinin kaydedilmesinde hata olu⺶u
sprog_emsg1=Kay齪 FTP Se鏴nekleri
sprog_emsg2='$1' ge鏴rli bir program de餴ldir
sprog_emsg3='$1' ge鏴rli bir 鏰lt齬齦abilir program de餴ldir
sprog_emsg4='$1' ge鏴rli bir FTP giri㱮 de餴ldir
sprog_emsg5='$1' ge鏴rli bir say齭 de餴ldir
sprog_emsg6='$1' ge鏴rli bir kolon genii餴 de餴ldir
sprog_emsg7=DNS Sunucu girilmedi
sprog_emsg8='$1' ge鏴rli bir IP adresi de餴ldir

suser_ftsu=Kullan齝齨齨 kaydedilmesinde hata olu⺶u
suser_emsg1=Kay齪 ya da yanl kullan齝 ad

start_ftsq=Squid'in baat齦mas齨da hata olu⺶u
stop_ftsq=Squid'in bitirilmesinde hata olu⺶u

lib_emsg1='$1' ge鏴rli bir IP adresi de餴ldir
lib_seconds=saniye
lib_minutes=dakika
lib_hours=saat
lib_days=g黱
lib_weeks=hafta
lib_fortnights=輐i Hafta
lib_months=ay
lib_years=y齦
lib_decades=on sene
lib_emsg2='$1' ge鏴rli bir '$2' say齭 de餴ldir
lib_kb=KB
lib_mb=MB
lib_gb=GB
lib_emsg3='$1' ge鏴rli bir '$2' say齭 de餴ldir
lib_aclca=輘temci Adresi
lib_aclwsa=Web Sunucusu Adresi
lib_aclch=輘temci Ad
lib_aclwsh=Web Sunucusu Ad
lib_acldat=Zaman ve S黵e
lib_aclur=URL kay齮 d鼁enleme ifadesi
lib_aclupr=URL kay齮 d鼁enleme ifadesi yolu
lib_aclup=URL Portu
lib_aclup1=URL Protokol
lib_aclrm=輘tek Y鰊temi
lib_aclbr=Taray齝 d鼁enleme ifadesi
lib_aclpl=Proxy Giri㱮
lib_aclsan=Kaynak AS Numaras
lib_acldan=Hedef AS Numaras
lib_aclea=D Onay
lib_aclcr=輘temci d鼁enleme ifadesi
lib_aclwsr=Web Sunucusu d鼁enleme ifadesi
lib_aclru=RFC931 Kullan齝齭
lib_aclpia=Proxy IP Adresi
lib_aclmc=En 鏾k ba餷ant
lib_aclpp=Proxy Portu
lib_aclsc=SNMP Birli餴
lib_buttac=De餴㱮klikleri Uygula
lib_buttss=Squid'i Durdur
lib_buttss1=Squid'i Baat

log_ports=Portlar ve A se鏴nekleri de餴⺶irildi
log_icp=Di餰r cache se鏴nekleri de餴⺶irildi
log_mem=Bellek kullan齧 se鏴nekleri de餴⺶irildi
log_logs=Kay齮 se鏴nekleri de餴⺶irildi
log_cache=Cache se鏴nekleri de餴⺶irildi
log_progs=Yard齧 program se鏴nekleri de餴⺶irildi
log_admin=Y鰊etim se鏴nekleri de餴⺶irildi
log_misc=莈㱮tli se鏴nekler de餴⺶irildi
log_clear=Cache temizlendi ve yeniden olu⺶uruldu
log_acl_create=ACL $1 olu⺶uruldu
log_acl_modify=ACL $1 de餴⺶irildi
log_acl_delete=ACL $1 silindi
log_http_create=Proxy k齭齮lamalar olu⺶uruldu
log_http_modify=Proxy k齭齮lamalar de餴⺶irildi
log_http_delete=Proxy k齭齮lamalar silindi 
log_http_move=Proxy k齭齮lamalar tand
log_icp_create=ICP k齭齮lamalar olu⺶uruldu
log_icp_modify=ICP k齭齮lamalar de餴⺶irildi
log_icp_delete=ICP k齭齮lamalar silind,
log_icp_move=ICP k齭齮lamalar tand
log_stop=Proxy sunucusu durduruldu
log_start=Proxy sunucusu baat齦d
log_apply=De餴㱮klikler uyguland
log_host_create=Makine $1 cache'si olu⺶uruldu
log_host_modify=Makine $1 cache'si de餴⺶irildi
log_host_delete=Makine $1 cache'si silindi
log_init=Cache ilklendirildi
log_user_create=Proxy kullan齝齭 $1 olu⺶uruldu
log_user_delete=Proxy kullan齝齭 $1 silindi
log_user_modify=Proxy kullan齝齭 $1 de餴⺶irildi

acl_root=ACL dosyalar i鏸n k鰇 dizini

 07070100071d9c000081a40000000000000002000000013ac0389f000039a1000000200000000000000000000000000000001700000003reloc/squid/lang/zh_CN    index_header=Squid代理服务器
index_msgnoconfig=Squid配置文件<tt>$1</tt>不存在.如果已经安装了Squid, 修改<a href=/config.cgi?$2 >配置模块</a>设置正确的路径.
index_msgnoexe=Squid 可执行文件<tt>$1</tt>不存在.如果已经安装了Squid, 修改<a href=/config.cgi?$2 >配置模块</a>设置正确的路径.
index_msgnosupported=Webmin 不支持当前的Squid版本. 仅支持版本<tt>1.1</tt>, <tt>2.0</tt>, <tt>2.1</tt>, <tt>2.2</tt> 和<tt>2.3</tt>.
index_msgnodir1=Squid缓冲目录<tt>$1</tt>没有初始化.
index_msgnodir2=Squid缓冲目录<tt>$1</tt>没有初始化.
index_msgnodir3=在Squid运行前先作这些
index_buttinit=Cache初始化
index_asuser=作为Unix用户
index_portsnets=端口和网络
index_othercaches=其他缓冲
index_musage=内存使用
index_mdusage=内存和磁盘的用法Memory and Disk Usage
index_logging=登录
index_copts=缓冲设置
index_hprogs=帮助程序
index_actrl=操作控制
index_admopts=管理选项
index_proxyauth=代理认证
index_miscopt=杂项选择
index_cms=缓冲管理统计
index_rebuild=清楚和重建缓冲
index_calamaris=Calamaris 日志分析
index_return=索引

buttsave=保存
buttdel=删除
buttcreat=建立
yes=是
no=不是
default=缺省
none=无
on=开
off=关

acl_header1=建立 ACL
acl_header2=编辑 ACL
acl_name=ACL 名
acl_fromip=来自IP
acl_toip=到 IP
acl_nmask=网络掩码
acl_ipaddr=IP 地址
acl_domains=域
acl_dofw=在一周中某些天
acl_sel=选择..
acl_all=所有
acl_dsun=星期天
acl_dmon=星期一
acl_dtue=星期二
acl_dwed=星期三
acl_dthu=星期四
acl_dfri=星期五
acl_dsat=星期六
acl_hofd=在一天中的某时
acl_to=到
acl_regexp=正则表达式
acl_tcpports=TCP 端口
acl_urlproto=URL 协议
acl_reqmethods=请求方法
acl_bregexp=浏览正则表达式
acl_pusers=代理用户
acl_eusers=外部合法用户
acl_case=否定实例?
acl_eusersre=外部合法用户正则式
acl_asnum=当做数
acl_rtime=刷新时间
acl_rfcusers=RFC931 用户
acl_mcr=最大并行请求
acl_psp=代理服务端口
acl_scs=SNMP 连接串
acl_rmt=需要 MIME 类型
acl_arp=客户 Ethernet 地址
acl_failurl=失败的 URL
acl_buttsave=保存
acl_buttdel=删除
acl_return=ACL 列表

aclsave_failsave=保存ACL失败
aclsave_faildel=删除ACL失败
aclsave_epr=代理约束正在使用ACL
aclsave_eicpr=ICP约束正在使用ACL
aclsave_ename=错误的 ACL 名称
aclsave_eexists=叫做'$1'的ACL已经存在
aclsave_efrom=错误的源IP地址'$1'
aclsave_eto=错误目的IP地址'$1'
aclsave_enmask=错误的网络掩码'$1'
aclsave_eip=错误的IP地址'$1'
aclsave_ecdom=没有给出客户域
aclsave_esdom=没有给出服务域
aclsave_eshour=错误的开始小时时间
aclsave_eehour=错误的结束小时时间
aclsave_esmin=错误的启动分时间
aclsave_eemin=错误的结束分时间
aclsave_efile=您不能写 ACL 文件'$1'

cach_err=错误
cach_nfound=Squid缓冲管理程序<tt>$1</tt>没有找到.<a href=/config.cgi?$2 >配置模块</a>可能有错误.
cach_return=squid索引

chown_header=更改所有者
chown_stop=停止squid ...
chown_done=.. 执行
chown_chown=改变所有者 ...
chown_restart=重新启动Squid...
chown_failrestart=重新启动Squid失败 ..
chown_return=squid 索引

clear_header=清除和重建缓冲
clear_msgclear=是否确定清除和重建Squid的缓冲? 这将删除<b>所有的</b>缓冲文件
clear_msgclear2=您应该确定将不使用这个缓存来与 Webmin 服务器联系,否者当该缓存关闭时您将被中断通讯.
clear_buttclear=清除和重建缓冲
clear_stop=停止squid ...
clear_done=.. 执行
clear_del=删除旧的缓冲文件 ..
clear_init=使用命令<tt>$1</tt>初始化Squid缓冲
clear_failrestart=重启Squid失败 ..
clear_return=squid 索引

eacl_header=存取控制
eacl_acls=存取控制列表
eacl_name=名称
eacl_type=类型
eacl_match=匹配..
eacl_noacls=没有ACLs
eacl_buttcreate=建立新的ACL
eacl_pr=代理约束
eacl_act=动作
eacl_acls1=ACLs
eacl_move=移动
eacl_nopr=没有制订代理约束规则
eacl_addpr=添加代理约束规则
eacl_icpr=ICP 约束
eacl_noicpr=没有制订 ICP 约束规则
eacl_addicpr=添加 ICP 约束
eacl_return=squid 索引
eacl_allow=允许
eacl_deny=拒绝

eadm_header=管理选项
eadm_aao=管理和通报选项
eadm_runasuu=当做Unix用户运行
eadm_nochange=没有改变
eadm_user=用户
eadm_group=组
eadm_runasug=当做Unix组执行
eadm_par=代理认证范围
eadm_default=缺省
eadm_cmemail=缓冲管理地址
eadm_vhost=可见主机名
eadm_uniq=唯一主机名
eadm_haliases=其它缓存的 DNS 名称
eadm_none=没有
eadm_auto=自动
eadm_annto=通报缓冲到
eadm_annevery=通报缓冲每
eadm_never=从来没有
eadm_uniqhn=唯一主机名
eadm_cah=缓冲通报主机
eadm_cap=缓冲通报端口
eadm_caf=缓冲通报文件
eadm_none=没有
eadm_annp=通报周期
eadm_buttsave=保存
eadm_return=squid索引

eauth_header=Proxy 认证
eauth_aopt=认证选项
eauth_puf=代理用户文件
eauth_none=无
eauth_nologin=没有进行域所需要的登录
eauth_buttsave=保存
eauth_msgaccess=只有列于下表中的用户才可以使用代理服务. 添加、删除、改变用户之后需要重启Squid设置才能生效.
eauth_nmsgaccess=下表中的用户将被限制访问您的代理服务器,该表得自文件 $1.
eauth_pusers=代理用户
eauth_nopusers=当前没有代理用户
eauth_addpuser=添加新的代理用户
eauth_return=squid 索引

ec_header=缓冲选项
ec_cro=缓冲和请求选项
ec_cdirs=缓冲目录
ec_default=缺省
ec_listed=列表..
ec_directory=目录
ec_type=类型
ec_mos=Obj. 大小 (Kb)
ec_size=大小 (MB)
ec_1dirs=一级目录
ec_2dirs=二级目录
ec_u=UFS
ec_ua=同步 UFS
ec_diskd=DISKD
ec_1dirs1=第一级目录
ec_2dirs2=第二级目录
ec_aos=平均目标大小
ec_kb=kB
ec_mins=分
ec_secs=秒
ec_opb=每个目标
ec_ncuc=不缓冲URLs 内容
ec_ncum=不缓冲URLs 匹配
ec_ncua=不缓冲URLs 和 ACLs
ec_mct=最大缓冲时间
ec_mrbs=最大请求体
ec_mrhs=最大请求头
ec_mrbs1=最大回应体
ec_mrs=最大请求
ec_frct=请求缓冲时间失败
ec_dlct=DNS 反查缓冲时间
ec_fdct=DNS 缓冲时间失败
ec_ct=连接超时
ec_rt=读取超时
ec_mcct=最大客户连接时间
ec_mst=最大关闭时间
ec_sst=站点选择超时
ec_crt=客户请求超时
ec_hcc=半关闭的客户?
ec_pt=重复超时
ec_wr=WAIS 应答
ec_none=无
ec_host=主机
ec_port=端口
ec_wrh=WAIS 应答主机
ec_wrp=WAIS 应答端口
ec_buttsave=保存
ec_return=squid 索引

ech_header=建立缓冲主机
ech_header1=编辑缓冲主机
ech_cho=缓冲主机选项
ech_h=主机名
ech_parent=父
ech_sibling=同族
ech_multicast=多播
ech_t=类型
ech_pp=代理端口
ech_ip=ICP 端口
ech_po=是否仅仅代理?
ech_y=是
ech_n=不
ech_siq=发送ICP请求?
ech_dc=缺省缓冲?
ech_rrc=Round-robin 缓冲?
ech_ittl=ICP 生存时间
ech_d=缺省
ech_cw=缓冲平衡
ech_co=仅仅最近的?
ech_nd=没有概要?
ech_nne=没有NetDB交换?
ech_nd1=无延迟?
ech_ltp=登录到代理
ech_nl=没有登录
ech_u=用户:
ech_p=密码:
ech_mr=多播回应?
ech_qhfd=询问域的主机
ech_dqfd=不询问域
ech_buttsave=保存
ech_buttdel=删除
ech_return=缓冲列表

eicp_header=其它缓冲
eicp_opcs=其它缓冲服务
eicp_nocd=没有其它缓冲
eicp_aac=添加其它缓冲
eicp_cso=缓冲选项
eicp_fdfd=直接从域获取
eicp_fdfi=直接从IPs获取
eicp_dif=防火墙中的域
eicp_iif=防火墙中的域
eicp_dfuc=间接从URL 包含获取
eicp_d=缺省
eicp_bpfsp=对于一个父程跳过ping?
eicp_y=是
eicp_n=否
eicp_secs=secs
eicp_ssip=在ping中发送源?
eicp_crt=缓冲回复超时
eicp_iqt=ICP 请求超时
eicp_mit=多播 ICP 超时
eicp_dpt=出现超时
eicp_h=主机名
eicp_t=类型
eicp_pp=代理端口
eicp_ip=ICP 端口
eicp_return=squid 索引
eicp_always=直接得到 ACLs
eicp_noalways=不能直接得到已定义的 ACLs
eicp_addalways=增加直接得到的 ACLs
eicp_never=永远不能直接得到的 ACLs
eicp_nonever=并非永远不能直接得到的 ACLs
eicp_addnever=增加永远不能直接得到的 ACLs

elogs_header=登录
elogs_lalo=登录和登录文件选项
elogs_alf=操作登录文件
elogs_dlf=调试登录文件
elogs_slf=保存登录文件
elogs_cmf=缓冲metadata文件
elogs_uhlf=使用HTTPD登录格式?
elogs_lmh=登录MIME头?
elogs_ualf=用户代理登录文件
elogs_pf=PID 文件
elogs_prilfa=支行ACLs的RFC931反查
elogs_rit=RFC931 查询失败
elogs_dril=是否RFC931反查?
elogs_lfh=登录完全主机名?
elogs_ln=登录网络掩码
elogs_do=调试选项
elogs_mht=MIME 头表
elogs_return=squid 索引

emem_dheader=内存和磁盘的使用
emem_header=内存使用
emem_maduo=内存和磁盘使用
emem_mul=内存使用限制
emem_dul=磁盘使用限制
emem_fcs=FQDN 缓冲大小
emem_mb=MB
emem_kb=kB
emem_mhwm=内存high-water标志
emem_mlwm=内存low-water 标志
emem_dhwm=磁盘high-water标志
emem_dlwm=磁盘low-water 标志
emem_mcos=最大缓冲目标
emem_iacs=IP 地址缓冲大小
emem_e=入口
emem_ichwm=IP缓冲high-water标志
emem_iclwm=IP缓冲low-water 标志
emem_crp=磁盘替换策略
emem_lru=近期最少使用的
emem_gdsf=双倍频
emem_lfuda=动态最少使用的
emem_hlru=累积最少使用
emem_return=squid 索引
emem_mrp=内存替换策略

emisc_header=杂项选择
emisc_mo=杂项选择
emisc_sdta=启动 DNS 测试地址
emisc_slr=SIGUSR1 登录文件循环
emisc_dd=缺省域
emisc_sp=SSL 代理
emisc_nghp=Non-GET HTTP 代理
emisc_emt=错误信心文本
emisc_pcs=每个客户满意?
emisc_xffh=X-Forwarded-For 头?
emisc_liq=登录 ICP 请求?
emisc_mdh=最少直接 hops
emisc_kmffu=为将来的使用保留内存?
emisc_aomtk=保留内存的大小
emisc_u=无限
emisc_htpt=通过的头
emisc_ah=所有头
emisc_oh=仅仅头
emisc_ae=所有其他
emisc_a=匿名器?
emisc_off=关闭
emisc_std=标准
emisc_par=偏执
emisc_fua=假用户代理
emisc_return=squid 索引
emisc_hauhh=HTTP Accel Uses Host Header
emisc_hah=HTTP Accel Host
emisc_hap=HTTP Accel Port
emisc_hawp=HTTP Accel With Proxy

eports_header=端口和网络
eports_pano=端口和网络操作
eports_paap=代理地址和端口
eports_p=端口
eports_hia=主机名/IP 地址
eports_pp=代理端口
eports_ip=ICP 端口
eports_ota=发送 TCP 地址
eports_ita=接收 TCP 地址
eports_a=任何
eports_oua=发送UDP地址
eports_iua=接收UDP地址
eports_mg=多播组
eports_trb=TCP接收缓冲
eports_od=OS 缺省
eports_return=squid 索引

eprogs_header=帮助程序
eprogs_chpo=缓冲头程序选项
eprogs_sfp=Squid FTP 程序
eprogs_fo=FTP 选项
eprogs_fcv=FTP 列宽
eprogs_c=chars
eprogs_afl=Anon FTP 登录
eprogs_sdp=Squid DNS 程序
eprogs_nodp=DNS程序的数目
eprogs_adtr=为请求添加域
eprogs_dsa=DNS 服务地址
eprogs_fr=来自 resolv.conf
eprogs_ccp=缓冲清除程序
eprogs_spp=Squid ping 程序
eprogs_crp=客户重定向程序
eprogs_norp=重定向程序数目
eprogs_cap=客户认证程序
eprogs_noap=客户认证程序数目
eprogs_return=squid 索引

euser_header=建立代理用户
euser_header1=编辑代理用户
euser_pud=代理用户详细
euser_u=用户名
euser_p=密码
euser_u1=未变
euser_return=用户列表

ahttp_header=建立代理约束
ahttp_header1=编辑代理约束
ahttp_pr=代理约束
ahttp_a=动作
ahttp_a1=允许
ahttp_d=拒绝
ahttp_ma=匹配 ACLs
ahttp_dma=不匹配 ACLs
ahttp_return=ACL 列表

sahttp_ftspr=保存代理约束失败

aicp_header=建立 ICP 约束
aicp_header1=编辑 ICP 约束
aicp_ir=ICP 约束
aicp_a=动作
aicp_a1=允许
aicp_d=禁止
aicp_ma=匹配 ACLs
aicp_dma=不匹配ACLs
aicp_return=ACL 列表

saicp_ftsir=保存ICP约束失败

icache_ftic=初始化缓冲失败
icache_ymcautrsa=一定要选择用户运行Squid
icache_itscwtc=使用命令<tt>$1</tt>初始Squid缓冲
icache_return=squid 索引
icache_title=初始化 Cache

restart_ftrs=重新配置squid失败

sadmin_ftsao=保存管理选项失败
sadmin_header=改变所有者
sadmin_msg1=改变了squid运行的用户和组.为使之正确生效,squid需要重新启动,所有的缓冲和登录文件需要刷新.
sadmin_buttco=改变所有者
sadmin_return=索引
sadmin_inavea=错误的Email地址'$1'
sadmin_inavh=错误的主机名'$1'
sadmin_inavap=错误的通报时期'$1'
sadmin_inavp=错误的端口号'$1'

sauth_ftsao=保存认证选项失败
sauth_iomuf=错误或丢失用户文件名
sauth_iomd=错误或丢失域名
sauth_msg1=Squid版本没有编辑为支持代理认证

scache_ftsco=保存缓冲失败
scache_emsg0=只要输入一个缓冲路径
scache_emsg1=缓冲目录'$'不存在
scache_emsg2=错误的请求大小'$'
scache_emsg3=错误的请求缓冲时间'$1'
scache_emsg4=错误的DNS缓冲时间'$1'
scache_emsg5=错误的超时'$1'
scache_emsg6=错误时间'$1'
scache_emsg7=错误的目录数'$1'
scache_emsg8=目录数一定大于等于1
scache_emsg9=目录数一定小于等于256
scache_emsg10=错误的目标大小'$1'
scache_emsg11=错误的目标数'$1'
scache_emsg12=错误的目录大小'$1'
scache_emsg13=错误的主机'$1'
scache_emsg14=错误端口'$1'

schost_ftsc=保存缓冲失败
schost_emsg1=错误的缓冲主机名'$1'
schost_emsg2=错误的代理端口'$1'
schost_emsg3=错误的ICP端口'$1'
schost_emsg4=错误的生存时间'$1'
schost_emsg5=错误的均衡'$1'

sicp_ftsco=保存缓冲选项失败
sicp_emsg1=错误的超时'$1'

slogs_ftslo=保存登录选项失败
slogs_emsg1=不是绝对路径文件名'$1'
slogs_emsg2=错误文件名'$1'
slogs_emsg3=目录'$1'不存在
slogs_emsg4=错误的网络掩码'$1'
slogs_emsg5=错误的调试选项列表'$1'

smem_ftsmo=保存内存选项失败
smem_emsg1=错误的缓冲大小'$1'
smem_emsg2=错误的high-water标志'$1'
smem_emsg3=错误的low-water 标志'$1'
smem_emsg4=错误的目标大小'$1'

smisc_ftso=保存选项失败
smisc_emsg1=错误的rotations数'$1'
smisc_emsg2=错误的域'$1'
smisc_emsg3=错误的代理'$1'
smisc_emsg4=错误的Hops数'$1'

sport_ftspo=保存端口选项失败
sport_emsg1=错误的的端口数'$1'
sport_emsg2=错误的地址'$1'
sport_emsg3=错误的缓冲大小'$1'

sprog_ftshpo=保存帮助程序选项失败
sprog_emsg1=丢失 FTP 选项
sprog_emsg2=错误的程序'$1'
sprog_emsg3='$1'是非可执行程序
sprog_emsg4='$1' 非法FTP登录
sprog_emsg5=错误的程序数字'$1'
sprog_emsg6=错误的列宽'$1'
sprog_emsg7=没有输入DNS服务器
sprog_emsg8=错误IP地址'$1'

suser_ftsu=保存用户失败
suser_emsg1=错误或丢失用户名

start_ftsq=启动squid失败
stop_ftsq=保存squid失败

calamaris_title=Calamaris 日志分析
calamaris_last=限制分析到日志的最后 $1 行..
calamaris_eprog=能执行的 Calamaris 没发现.可能您没有安装,或者您的<a href='$2'>模块配置</a> 不正确.
calamaris_elogs=日志目录中不包括<tt>access.log</tt>文件.可能没有运行 squid,或者您的<a href='$2'>模块配置</a>不正确.
calamaris_gen=产生关于 $1 的报告

lib_emsg1=错误的IP地址'$1'
lib_seconds=秒
lib_minutes=分
lib_hours=小时
lib_days=天
lib_weeks=星期
lib_fortnights=两周
lib_months=月
lib_years=年
lib_decades=几十年
lib_emsg2='$2'中错误的数字'$1'
lib_kb=kBs
lib_mb=MBs
lib_gb=GBs
lib_emsg3='$2' 错误的数字'$1'
lib_aclca=客户地址
lib_aclwsa=Web 服务地址
lib_aclch=Client 主机名
lib_aclwsh=Web 服务主机名
lib_acldat=日期和时间
lib_aclur=URL 正则表达式
lib_aclupr=URL 路径正则表达式
lib_aclup=URL 端口
lib_aclup1=URL 协议
lib_aclrm=请求方法
lib_aclbr=浏览正则表达式
lib_aclpl=代理登录
lib_aclsan=Source AS Number
lib_acldan=Dest AS Number
lib_aclea=外部认证
lib_aclcr=客户正则表达式
lib_aclwsr=Web 服务正则表达式
lib_aclru=RFC931 用户
lib_aclpia=代理IP地址
lib_aclmc=最大连接
lib_aclpp=代理端口
lib_aclsc=SNMP 通讯
lib_aclrmt=需要 MIME 类型
lib_aclarp=Ethernet 地址
lib_aclear=外部的可靠的正则表达式
lib_buttac=变动生效
lib_buttss=停止 Squid
lib_buttss1=启动 Squid

log_ports=改变端口和网络选项
log_icp=改变其它 Cache 选项
log_mem=改变内存使用选项
log_logs=改变日志选项
log_cache=改变 Cache 选项
log_progs=改变帮助程序选项
log_admin=改变管理者选项
log_misc=改变多种选项
log_clear=清理和重建 Cache
log_acl_create=创建 ACL $1
log_acl_modify=更新 ACL $1
log_acl_delete=删除 ACL $1
log_http_create=创建代理约束
log_http_modify=更新代理约束
log_http_delete=删除代理约束
log_http_move=移动代理约束
log_icp_create=创建 ICP 约束
log_icp_modify=更新 ICP 约束
log_icp_delete=删除 ICP 约束
log_icp_move=移动 ICP 约束
log_stop=停止代理服务器
log_start=启动代理服务器
log_apply=应用改变值
log_host_create=创建 Cache 使用者 $1
log_host_modify=更新 Cache 使用者 $1
log_host_delete=删除 Cache 使用者 $1
log_init=初始化 Cache
log_user_create=创建代理用户 $1
log_user_delete=删除代理用户 $1
log_user_modify=更改代理用户 $1
log_always_create=创建可直接得到的 ACLs
log_always_modify=更改可直接得到的 ACLs
log_always_delete=删除可直接得到的 ACLs
log_always_move=移动可直接得到的 ACLs
log_never_create=创建永远不能直接得到的 ACLs
log_never_modify=更改永远不能直接得到的 ACLs
log_never_delete=删除永远不能直接得到的 ACLs
log_never_move=移动永远不能直接得到的 ACLs

acl_root=ACL 文件的 Root 目录

always_create=创建直接拾取
always_edit=编辑直接拾取
always_header=直接拾取需要匹配 ACLs

never_create=创建间接拾取
never_edit=编辑间接拾取
never_header=间接拾取需要匹配 ACLs
   07070100071d9d000081a40000000000000002000000013ac0389f00003584000000200000000000000000000000000000001c00000003reloc/squid/lang/zh_TW.Big5   index_header=Squid 瞶狝竟
index_msgnoconfig=Squid 舱篈郎 <tt>$1</tt> ぃ. 狦眤竒杆 Squid, 叫秸俱眤<a href=/config.cgi?$2 >家舱舱篈</a>ㄏノタ絋隔畖.
index_msgnoexe=Squid 磅︽郎 <tt>$1</tt> ぃ. 狦眤竒杆 Squid, 叫秸俱眤<a href=/config.cgi?$2 >家舱舱篈</a>ㄏノタ絋隔畖.
index_msgnosupported=眤 Squid セぃ砆 Webmin や穿. 硂家舱度や穿セ <tt>1.1</tt>, <tt>2.0</tt>, <tt>2.1</tt>, <tt>2.2</tt> 籔 <tt>2.3</tt>.
index_msgnodir1=眤 Squid еヘ魁 <tt>$1</tt> ﹟ゼ﹍て.
index_msgnodir2=眤 Squid еヘ魁 <tt>$1</tt> ﹟ゼ﹍て.
index_msgnodir3= Squid 磅︽ぇ玡, 硂ゲ斗砆ЧΘ.
index_buttinit=﹍てе
index_asuser= Unix ㄏノ
index_portsnets=硄癟梆籔呼隔
index_othercaches=ㄤе
index_musage=癘拘砰ㄏノ秖
index_logging=魁
index_copts=е匡兜
index_hprogs=徊祘Α
index_actrl=北
index_admopts=恨瞶匡兜
index_proxyauth=瞶狝竟粄靡
index_miscopt=ㄤ匡兜
index_cms=е恨瞶参璸
index_rebuild=睲埃穝ミе
index_return=ま

buttsave=纗
buttdel=埃
buttcreat=ミ
yes=琌
no=
default=箇砞
none=礚
on=秨
off=闽

acl_header1=ミ北
acl_header2=絪胯北
acl_name=北嘿
acl_fromip=眖 IP
acl_toip= IP
acl_nmask=呼隔綛竛
acl_ipaddr=IP 
acl_domains=呼办
acl_dofw=琍戳いら
acl_sel=匡拒...
acl_all=场
acl_dsun=琍戳ら
acl_dmon=琍戳
acl_dtue=琍戳
acl_dwed=琍戳
acl_dthu=琍戳
acl_dfri=琍戳き
acl_dsat=琍戳せ
acl_hofd=らい
acl_to=
acl_regexp=タ砏ボ痹瓃
acl_tcpports=TCP 硄癟梆
acl_urlproto=URL 硄癟﹚
acl_reqmethods=璶―よΑ
acl_bregexp=聅凝竟タ砏ボ猭
acl_pusers=瞶狝竟ㄏノ
acl_asnum=AS 絪腹
acl_rtime=穝丁
acl_rfcusers=RFC931 ㄏノ
acl_mcr=程硈絬ㄏノ计
acl_psp=瞶狝竟狝竟硄癟梆
acl_scs=SNMP 硄癟﹃
acl_failurl=岿粇 URL
acl_buttsave=纗
acl_buttdel=埃
acl_return=北

aclsave_failsave=礚猭纗北
aclsave_faildel=礚猭埃北
aclsave_epr=硂北竒砆瞶狝竟┮ㄏノ
aclsave_eicpr=硂北竒砆 ICP ┮ㄏノ
aclsave_ename=岿粇北嘿
aclsave_eexists=暗 '$1' 北竒
aclsave_efrom='$1' ぃ琌Τ '眖' IP 
aclsave_eto='$1' ぃ琌Τ '' IP 
aclsave_enmask='$1' ぃ琌Τ呼隔綛竛
aclsave_eip='$1' ぃ琌Τ IP 
aclsave_ecdom=⊿Τ矗ㄑめ狠呼办嘿
aclsave_esdom=⊿Τ矗ㄑ狝狠呼办嘿
aclsave_eshour=岿粇秨﹍
aclsave_eehour=岿粇挡
aclsave_esmin=岿粇秨﹍だ
aclsave_eemin=岿粇挡だ

cach_err=岿粇
cach_nfound=Squid е恨瞶祘Α <tt>$1</tt> 眤╰参тぃ. 琌眤<a href=/config.cgi?$2 >家舱舱篈</a>Τ岿粇.
cach_return=Squid ま

chown_header=跑局Τ舦
chown_stop=氨ゎ Squid い...
chown_done=...ЧΘ
chown_chown=跑局Τ舦い...
chown_restart=穝币笆 Squid い...
chown_failrestart=礚猭穝币笆 Squid...

clear_header=睲埃穝ミе
clear_msgclear=眤琌絋﹚璶睲埃穝ミ眤 Squid е? 盢穦埃眤е<b>场</b>郎穝币笆眤 Squid 狝竟.
clear_msgclear2=眤莱赣璶絋﹚眤⊿Τㄏノе㎝ Webmin 硄癟, 玥眤盢穦е氨ゎ籔 Webmin い耞硈絬.
clear_buttclear=睲埃穝ミе
clear_stop=氨ゎ Squid い...
clear_done=...ЧΘ
clear_del=埃侣е郎い...
clear_init=㏑ <tt>$1</tt> ﹍て Squid еい...
clear_failrestart=礚猭穝币笆 Squid...
clear_return=squid ま

eacl_header=北
eacl_acls=北
eacl_name=嘿
eacl_type=摸
eacl_match=才兵ン...
eacl_noacls=⊿Τ﹚竡北
eacl_buttcreate=ミ穝北
eacl_pr=瞶狝竟
eacl_act=笆
eacl_acls1=北
eacl_move=簿笆
eacl_nopr=⊿Τ﹚竡瞶狝竟
eacl_addpr=糤瞶狝竟
eacl_icpr=ICP 
eacl_noicpr=⊿Τ﹚竡 ICP 
eacl_addicpr=糤 ICP 
eacl_return=squid ま

eadm_header=恨瞶匡兜
eadm_aao=恨瞶籔そ匡兜
eadm_runasuu= Unix ㄏノ磅︽
eadm_nochange=ぃэ跑
eadm_user=ㄏノ
eadm_group=竤舱
eadm_runasug= Unix 竤舱磅︽
eadm_par=瞶狝竟粄靡絛瞅
eadm_default=箇砞
eadm_cmemail=е恨瞶筿秎ン
eadm_vhost=ǎ诀嘿
eadm_uniq=斑诀嘿
eadm_auto=笆
eadm_annto=そе
eadm_annevery=そе, –
eadm_never=ッぃ
eadm_uniqhn=斑诀嘿
eadm_cah=еそ诀
eadm_cap=еそ硄癟梆
eadm_caf=еそ郎
eadm_none=礚
eadm_annp=そ丁
eadm_buttsave=纗
eadm_return=squid ま

eauth_header=瞶狝竟粄靡
eauth_aopt=粄靡匡兜
eauth_puf=瞶狝竟ㄏノ郎
eauth_none=礚
eauth_nologin=ぃ惠璶祅呼办
eauth_buttsave=纗
eauth_msgaccess=Τいㄏノ眤瞶狝竟. 糤, 埃┪簿埃ㄏノぇ, 眤ゲ斗穝币笆 Squid 琵砞﹚ネ.
eauth_pusers=瞶狝竟ㄏノ
eauth_nopusers=ヘ玡⊿Τ﹚竡ヴ瞶狝竟ㄏノ.
eauth_addpuser=糤穝瞶狝竟ㄏノ
eauth_return=squid ま

ec_header=е匡兜
ec_cro=е籔璶―匡兜
ec_cdirs=еヘ魁
ec_default=箇砞
ec_listed=...
ec_directory=ヘ魁
ec_type=摸
ec_size= (MB)
ec_1dirs=材糷ヘ魁计秖
ec_2dirs=材糷ヘ魁计秖
ec_u=UFS
ec_ua=獶˙ UFS
ec_1dirs1=材糷ヘ魁计秖
ec_2dirs2=材糷ヘ魁计秖
ec_aos=キАン
ec_kb=kB
ec_mins=だ
ec_secs=
ec_opb=–跋办いン计ヘ
ec_ncuc=ぃ璶е URL ず甧
ec_ncum=ぃ璶е URL 才
ec_ncua=ぃ璶е URL 倒北
ec_mct=程е丁
ec_mrbs=程璶―セ砰
ec_mrhs=程璶―夹繷
ec_mrbs1=程莱セ砰
ec_mrs=程璶―
ec_frct=ア毖璶―е丁
ec_dlct=DNS 琩高е丁
ec_fdct=ア毖 DNS е丁
ec_ct=硈钡筄
ec_rt=弄筄
ec_mcct=程め狠硈钡丁
ec_mst=程闽超丁
ec_sst=狠翴匡拒筄
ec_crt=め狠璶―筄
ec_hcc=琌闽超め狠?
ec_pt=尿筄
ec_wr=WAIS い膥
ec_none=礚
ec_host=诀
ec_port=硄癟梆
ec_wrh=WAIS い膥诀
ec_wrp=WAIS い膥硄癟梆
ec_buttsave=纗
ec_return=squid ま

ech_header=ミе诀
ech_header1=絪胯е诀
ech_cho=е诀匡兜
ech_h=诀嘿
ech_parent=村
ech_sibling=キ︽
ech_multicast=翴肚块
ech_t=摸
ech_pp=瞶硄癟梆
ech_ip=ICP 硄癟梆
ech_po=ㄏ暗瞶?
ech_y=琌
ech_n=
ech_siq=琌癳 ICP 琩高?
ech_dc=琌箇砞е?
ech_rrc=琌碻吏е?
ech_ittl=ICP 丁
ech_d=箇砞
ech_cw=е熬
ech_co=琌ノ程钡?
ech_nd=琌ぃΜ?
ech_nne=琌礚 NetDB ユ传?
ech_nd1=琌ぃ┑筐?
ech_ltp=祅瞶狝竟
ech_nl=ぃ祅
ech_u=ㄏノ:
ech_p=盞絏:
ech_mr=琌翴肚块莱?
ech_qhfd=琩高诀呼办
ech_dqfd=ぃ璶琩高呼办
ech_buttsave=纗
ech_buttdel=埃
ech_return=е

eicp_header=ㄤе
eicp_opcs=ㄤ瞶狝е狝竟
eicp_nocd=⊿Τ﹚竡ㄤе
eicp_aac=糤ㄤе
eicp_cso=е匡拒匡兜
eicp_fdfd=钡パ呼办
eicp_fdfi=钡パ IP 
eicp_dif=呼办ň鲤ず
eicp_iif=IP ň鲤ず
eicp_dfuc=钡 URL ず甧
eicp_d=箇砞
eicp_bpfsp=琌铬筁 ping 村?
eicp_y=琌
eicp_n=
eicp_ssip=琌 ping 癳ㄓ方?
eicp_crt=е莱筄
eicp_iqt=ICP 琩高筄
eicp_mit=翴肚块 ICP 筄
eicp_dpt=キ︽诀筄
eicp_h=诀嘿
eicp_t=摸
eicp_pp=瞶硄癟梆
eicp_ip=ICP 硄癟梆
eicp_return=squid ま

elogs_header=魁
elogs_lalo=魁籔魁郎匡兜
elogs_alf=魁郎
elogs_dlf=埃岿魁郎
elogs_slf=纗魁郎
elogs_cmf=еいざ戈郎
elogs_uhlf=琌ㄏノ HTTPD 魁郎Α?
elogs_lmh=琌魁 MIME 夹繷?
elogs_ualf=ㄏノ瞶魁郎
elogs_pf=PID 郎
elogs_prilfa=北璶― RFC931 ōだ琩高
elogs_rit=RFC931 ōだ琩高筄
elogs_dril=琌秈︽ RFC931 ōだ琩高?
elogs_lfh=琌魁Ч俱诀嘿?
elogs_ln=琌ㄏノ呼隔綛竛魁
elogs_do=埃岿匡兜
elogs_mht=MIME 夹繷
elogs_return=squid ま

emem_header=癘拘砰ㄏノ秖
emem_maduo=癘拘砰籔合盒ㄏノ秖匡兜
emem_mul=癘拘砰ㄏノ秖
emem_dul=合盒ㄏノ秖
emem_fcs=FQDN е
emem_mb=MB
emem_kb=kB
emem_mhwm=癘拘砰蔼ノ秖夹癘
emem_mlwm=癘拘砰ノ秖夹癘
emem_dhwm=合盒蔼ノ秖夹癘
emem_dlwm=合盒ノ秖夹癘
emem_mcos=程еン
emem_iacs=IP е
emem_e=兜ヘ计
emem_ichwm=IP е蔼ノ秖夹癘
emem_iclwm=IP еノ秖夹癘
emem_return=squid ま

emisc_header=ㄤ匡兜
emisc_mo=ㄤ匡兜
emisc_sdta=癬﹍ DNS 代刚
emisc_slr=SIGUSR1 魁郎近锣
emisc_dd=箇砞呼办
emisc_sp=SSL 瞶狝竟
emisc_nghp=ぃ眔 HTTP 瞶狝竟
emisc_emt=岿粇癟ゅ
emisc_pcs=琌癸–め狠参璸?
emisc_xffh=琌ㄏノ X-锣癳-倒 夹繷?
emisc_liq=琌魁 ICP 琩高?
emisc_mdh=程钡铬臘计
emisc_kmffu=琌玂癘拘砰ㄑゼㄓㄏノ?
emisc_aomtk=玂痙癘拘砰计秖
emisc_u=礚
emisc_htpt=钡禫夹繷
emisc_ah=场夹繷
emisc_oh=Τ夹繷
emisc_ae=场, 埃
emisc_a=琌拔て?
emisc_off=闽
emisc_std=夹非
emisc_par=好
emisc_fua=安ㄏノ瞶
emisc_return=squid ま
emisc_hauhh=HTTP 硉ㄏノ诀夹繷
emisc_hah=HTTP 硉诀
emisc_hap=HTTP 硉硄癟梆
emisc_hawp=HTTP 硉籔瞶狝竟

eports_header=硄癟梆籔呼隔
eports_pano=硄癟梆籔呼隔匡兜
eports_paap=瞶狝竟籔硄癟梆
eports_p=硄癟梆
eports_hia=诀嘿/IP 
eports_pp=瞶硄癟梆
eports_ip=ICP 硄癟梆
eports_ota=癳 TCP 
eports_ita=秈 TCP 
eports_a=ヴ種
eports_oua=癳 UDP 
eports_iua=秈 UDP 
eports_mg=翴肚块竤舱
eports_trb=TCP 钡Μ絯侥跋
eports_od=箇砞穨╰参
eports_return=squid ま

eprogs_header=徊祘Α
eprogs_chpo=е徊祘Α匡兜
eprogs_sfp=Squid FTP 祘Α
eprogs_fo=FTP 匡兜
eprogs_fcv=FTP 逆糴
eprogs_c=じ
eprogs_afl=拔 FTP 祅
eprogs_sdp=Squid DNS 祘Α
eprogs_nodp=DNS 祘Α计秖
eprogs_adtr=糤呼办璶―
eprogs_dsa=DNS 狝竟
eprogs_fr=眖 resolv.conf
eprogs_ccp=е睲埃祘Α
eprogs_spp=Squid ping 祘Α
eprogs_crp=璹旧祘Α
eprogs_norp=旧祘Α计秖
eprogs_cap=璹粄靡祘Α
eprogs_noap=粄靡祘Α计秖
eprogs_return=squid ま

euser_header=ミ瞶狝竟ㄏノ
euser_header1=絪胯瞶狝竟ㄏノ
euser_pud=瞶狝竟ㄏノ冈灿戈
euser_u=ㄏノ嘿
euser_p=盞絏
euser_u1=ぃэ跑
euser_return=ㄏノ

ahttp_header=ミ瞶狝竟
ahttp_header1=絪胯瞶狝竟
ahttp_pr=瞶狝竟
ahttp_a=笆
ahttp_a1=す砛
ahttp_d=┶荡
ahttp_ma=才北
ahttp_dma=ぃ璶才北
ahttp_return=北

sahttp_ftspr=礚猭纗瞶狝竟

aicp_header=ミ ICP 
aicp_header1=絪胯 ICP 
aicp_ir=ICP 
aicp_a=笆
aicp_a1=す砛
aicp_d=┶荡
aicp_ma=才北
aicp_dma=ぃ璶才北
aicp_return=北ACL list

saicp_ftsir=礚猭纗 ICP 

icache_ftic=礚猭﹍てе
icache_ymcautrsa=眤ゲ斗匡拒 Squid 磅︽ㄏノ
icache_header=﹍てе
icache_itscwtc=㏑ <tt>$1</tt> ﹍て Squid еい...
icache_return=squid ま

restart_ftrs=礚猭穝舱篈 Squid

sadmin_ftsao=礚猭纗恨瞶匡兜
sadmin_header=跑局Τ舦
sadmin_msg1=眤跑 Squid 笲ㄏノ┪竤舱. 絋玂タ絋ノ, ┮Τе籔魁郎局Τ舦ゲ斗砆穝, τ Squid ゲ斗穝币笆.
sadmin_buttco=跑局Τ舦
sadmin_return=ま
sadmin_inavea='$1' ぃ琌Τ筿秎ン
sadmin_inavh='$1' ぃ琌Τ诀嘿
sadmin_inavap='$1' ぃ琌Τそ丁
sadmin_inavp='$1' ぃ琌Τ硄癟梆

sauth_ftsao=礚猭纗粄靡匡兜
sauth_iomuf=岿粇┪框アㄏノ郎嘿
sauth_iomd=岿粇┪框ア呼办
sauth_msg1=眤 Squid セ⊿Τ盢瞶狝竟粄靡絪亩秈

scache_ftsco=礚猭纗е匡兜
scache_emsg0=眤ゲ斗块ぶеヘ魁
scache_emsg1=еヘ魁 '$1' ぃ
scache_emsg2='$1' ぃ琌Τ璶―
scache_emsg3='$1' ぃ琌Τア毖璶―е丁
scache_emsg4='$1' ぃ琌Τ DNS е丁
scache_emsg5='$1' ぃ琌Τ筄
scache_emsg6='$1' ぃ琌Τ丁
scache_emsg7='$1' ぃ琌Τヘ魁计ヘ
scache_emsg8=ヘ魁计ヘゲ斗 >= 1
scache_emsg9=ヘ魁计ヘゲ斗 <= 256
scache_emsg10='$1' ぃ琌Τン
scache_emsg11='$1' ぃ琌Τン计ヘ
scache_emsg12='$1' ぃ琌Τヘ魁
scache_emsg13='$1' ぃ琌Τ诀
scache_emsg14='$1' ぃ琌Τ硄癟梆

schost_ftsc=礚猭纗е
schost_emsg1='$1' ぃ琌Τе诀嘿
schost_emsg2='$1' ぃ琌Τ瞶狝硄癟梆
schost_emsg3='$1' ぃ琌Τ ICP 硄癟梆
schost_emsg4='$1' ぃ琌Τ丁
schost_emsg5='$1' ぃ琌Τ熬

sicp_ftsco=礚猭纗е匡兜
sicp_emsg1='$1' ぃ琌Τ筄

slogs_ftslo=礚猭纗魁匡兜
slogs_emsg1='$1' ぃ琌Τ荡癸郎
slogs_emsg2='$1' ぃ琌Τ郎
slogs_emsg3=ヘ魁 '$1' ぃ
slogs_emsg4='$1' ぃ琌Τ呼隔綛竛
slogs_emsg5='$1' ぃ琌Τ埃岿匡兜

smem_ftsmo=礚猭纗癘拘砰匡兜
smem_emsg1='$1' ぃ琌Τе
smem_emsg2='$1' ぃ琌Τ蔼ノ秖夹癘
smem_emsg3='$1' ぃ琌Τノ秖夹癘
smem_emsg4='$1' ぃ琌Τン

smisc_ftso=礚猭纗匡兜
smisc_emsg1='$1' ぃ琌Τ魁郎近锣
smisc_emsg2='$1' ぃ琌Τ呼办
smisc_emsg3='$1' ぃ琌Τ瞶狝竟
smisc_emsg4='$1' ぃ琌Τ铬臘计ヘ

sport_ftspo=礚猭纗硄癟梆匡兜
sport_emsg1='$1' ぃ琌Τ硄癟梆絪腹
sport_emsg2='$1' ぃ琌Τ
sport_emsg3='$1' ぃ琌Τ絯侥跋

sprog_ftshpo=礚猭纗徊祘Α匡兜
sprog_emsg1=框ア FTP 匡兜
sprog_emsg2='$1' ぃ琌Τ祘Α
sprog_emsg3='$1' ぃ琌磅︽祘Α
sprog_emsg4='$1' ぃ琌Τ FTP 祅
sprog_emsg5='$1' ぃ琌Τ祘Α计ヘ
sprog_emsg6='$1' ぃ琌Τ逆糴
sprog_emsg7=⊿Τ块 DNS 狝竟
sprog_emsg8='$1' ぃ琌Τ IP 

suser_ftsu=礚猭纗ㄏノ
suser_emsg1=岿粇┪框アㄏノ嘿

start_ftsq=礚猭币笆 Squid
stop_ftsq=礚猭氨ゎ Squid

lib_emsg1='$1' ぃ琌Τ IP 
lib_seconds=
lib_minutes=だ
lib_hours=
lib_days=ら
lib_weeks=秅
lib_fortnights=秅
lib_months=る
lib_years=
lib_decades=
lib_emsg2='$1' ぃ琌倒 $2 Τ计ヘ
lib_kb=kBs
lib_mb=MBs
lib_gb=GBs
lib_emsg3='$1' ぃ琌倒 $2 Τ计ヘ
lib_aclca=め狠
lib_aclwsa=呼狝竟
lib_aclch=め狠诀嘿
lib_aclwsh=呼狝竟诀嘿
lib_acldat=ら戳籔丁
lib_aclur=URL タ砏ボΑ
lib_aclupr=URL 隔畖タ砏ボΑp
lib_aclup=URL 硄癟梆
lib_aclup1=URL 硄癟﹚
lib_aclrm=璶―よΑ
lib_aclbr=聅凝竟タ砏ボΑ
lib_aclpl=瞶狝竟祅
lib_aclsan=ㄓ方 AS 絪腹
lib_acldan=ヘ夹 AS 絪腹
lib_aclea=场粄靡
lib_aclcr=め狠タ砏ボΑ
lib_aclwsr=呼狝竟タ砏ボΑ
lib_aclru=RFC931 ㄏノ
lib_aclpia=瞶狝竟 IP 
lib_aclmc=程硈挡计ヘ
lib_aclpp=瞶硄癟梆
lib_aclsc=SNMP 硄癟﹃
lib_buttac=甅ノ跑
lib_buttss=氨ゎ Squid
lib_buttss1=币笆 Squid

0707010000eb9a000081a40000000000000002000000013ac0389f0000030a000000200000000000000000000000000000001a00000003reloc/squid/log_parser.pl # log_parser.pl
# Functions for parsing this module's logs

require './squid-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p) = @_;
if ($type eq 'acl') {
	return &text("log_acl_$action", "<tt>$object</tt>");
	}
elsif ($type eq 'host') {
	return &text("log_host_$action", "<tt>$object</tt>");
	}
elsif ($type eq 'http' || $type eq 'icp' ||
       $type eq 'always' || $type eq 'never') {
	return $text{"log_${type}_${action}"};
	}
elsif ($type eq 'user') {
	return &text("log_user_$action", "<tt>$object</tt>");
	}
elsif ($text{"log_$action"}) {
	return $text{"log_$action"};
	}
else {
	return undef;
	}
}

  0707010000eb9b000081a40000000000000002000000013ac0389e0000000b000000200000000000000000000000000000001500000003reloc/squid/low.risk  noconfig=1
 0707010000eb9c000081a40000000000000002000000013ac0389e00000009000000200000000000000000000000000000001600000003reloc/squid/low.skill simple=2
   0707010000eb9d000081a40000000000000002000000013ac0389f0000000b000000200000000000000000000000000000001800000003reloc/squid/medium.risk   noconfig=1
 0707010000eb9e000081a40000000000000002000000013ac0389f00000009000000200000000000000000000000000000001900000003reloc/squid/medium.skill  simple=1
   0707010000eb9f000081a40000000000000002000000013ac0389e00000246000000200000000000000000000000000000001800000003reloc/squid/module.info   desc_zh_CN=Squid 代理服务器
name=Squid
desc_pt=Servidor Proxy Squid
desc_tr=Squid Proxy Sunucusu
desc_fr=Serveur Proxy Squid
desc_es=Servidor Proxy Squid
desc_de=Squid Proxy Server
desc_sv=Squid-proxyserver
desc_ru_SU=鹨纤由 笈易乓 Squid
desc_pl=Serwer proxy Squid
category=servers
os_support=solaris hpux redhat-linux debian-linux suse-linux slackware-linux freebsd osf1 irix aix open-linux openserver unixware turbo-linux openbsd corel-linux cobalt-linux lfs-linux macos
desc_zh_TW.Big5=Squid 瞶狝竟
desc=Squid Proxy Server
risk=low medium high
desc_ru_RU=橡铌耔 彦疴屦 Squid
  0707010000eba0000081e40000000000000002000000013ac0389f00000234000000200000000000000000000000000000001c00000003reloc/squid/move_always.cgi   #!/usr/local/bin/perl
# move_always.cgi
# Move an always_direct directive up or down

require './squid-lib.pl';
&lock_file($config{'squid_conf'});
$conf = &get_config();
($pos, $move) = @ARGV;

@always = &find_config("always_direct", $conf);
$newpos = $pos + $move;
$oldv = $always[$pos]->{'values'};
$always[$pos]->{'values'} = $always[$newpos]->{'values'};
$always[$newpos]->{'values'} = $oldv;
&save_directive($conf, "always_direct", \@always);
&flush_file_lines();
&unlock_file($config{'squid_conf'});
&webmin_log("move", "always");
&redirect("edit_icp.cgi");
0707010000eba1000081e40000000000000002000000013ac0389e00000223000000200000000000000000000000000000001a00000003reloc/squid/move_http.cgi #!/usr/local/bin/perl
# move_http.cgi
# Move a http_access directive up or down

require './squid-lib.pl';
&lock_file($config{'squid_conf'});
$conf = &get_config();
($pos, $move) = @ARGV;

@https = &find_config("http_access", $conf);
$newpos = $pos + $move;
$oldv = $https[$pos]->{'values'};
$https[$pos]->{'values'} = $https[$newpos]->{'values'};
$https[$newpos]->{'values'} = $oldv;
&save_directive($conf, "http_access", \@https);
&flush_file_lines();
&unlock_file($config{'squid_conf'});
&webmin_log("move", "http");
&redirect("edit_acl.cgi");
 0707010000eba2000081e40000000000000002000000013ac0389e00000218000000200000000000000000000000000000001900000003reloc/squid/move_icp.cgi  #!/usr/local/bin/perl
# move_icp.cgi
# Move a icp_access directive up or down

require './squid-lib.pl';
&lock_file($config{'squid_conf'});
$conf = &get_config();
($pos, $move) = @ARGV;

@icps = &find_config("icp_access", $conf);
$newpos = $pos + $move;
$oldv = $icps[$pos]->{'values'};
$icps[$pos]->{'values'} = $icps[$newpos]->{'values'};
$icps[$newpos]->{'values'} = $oldv;
&save_directive($conf, "icp_access", \@icps);
&flush_file_lines();
&unlock_file($config{'squid_conf'});
&webmin_log("move", "icp");
&redirect("edit_acl.cgi");
0707010000eba3000081e40000000000000002000000013ac0389f00000229000000200000000000000000000000000000001b00000003reloc/squid/move_never.cgi    #!/usr/local/bin/perl
# move_never.cgi
# Move an never_direct directive up or down

require './squid-lib.pl';
&lock_file($config{'squid_conf'});
$conf = &get_config();
($pos, $move) = @ARGV;

@never = &find_config("never_direct", $conf);
$newpos = $pos + $move;
$oldv = $never[$pos]->{'values'};
$never[$pos]->{'values'} = $never[$newpos]->{'values'};
$never[$newpos]->{'values'} = $oldv;
&save_directive($conf, "never_direct", \@never);
&flush_file_lines();
&unlock_file($config{'squid_conf'});
&webmin_log("move", "never");
&redirect("edit_icp.cgi");
   0707010000eba4000081e40000000000000002000000013ac0389f000007a0000000200000000000000000000000000000001600000003reloc/squid/never.cgi #!/usr/local/bin/perl
# never.cgi
# A form for editing or creating http_access directives

require './squid-lib.pl';
&ReadParse();
$conf = &get_config();

if (!defined($in{'index'})) {
	&header($text{'never_create'}, "",
		undef, 0, 0, 0, &restart_button());
	}
else {
	&header($text{'never_edit'}, "",
		undef, 0, 0, 0, &restart_button());
	@never = @{$conf->[$in{'index'}]->{'values'}};
	}
print "<hr>\n";

print "<form action=never_save.cgi>\n";
if (@never) {
	print "<input type=hidden name=index value=$in{'index'}>\n";
	}
print "<table border>\n";
print "<tr $tb> <td><b>$text{'never_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'ahttp_a'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=action value=allow %s> $text{'ahttp_a1'}\n",
	$never[0] eq "allow" ? "checked" : "";
printf "<input type=radio name=action value=deny %s> $text{'ahttp_d'}</td> </tr>\n",
	$never[0] eq "allow" ? "" : "checked";

for($i=1; $i<@never; $i++) { $match{$never[$i]}++; }
@acls = grep { !$done{$_->{'values'}->[0]}++ } &find_config("acl", $conf);
$r = @acls; $r = 10 if ($r > 10);

print "<tr> <td valign=top><b>$text{'ahttp_ma'}</b></td>\n";
print "<td valign=top><select name=yes multiple size=$r width=100>\n";
foreach $a (@acls) {
	printf "<option %s>%s\n",
		$match{$a->{'values'}->[0]} ? "selected" : "",
		$a->{'values'}->[0];
	}
print "</select></td>\n";

print "<td valign=top><b>$text{'ahttp_dma'}</b></td>\n";
print "<td valign=top><select name=no multiple size=$r width=100>\n";
foreach $a (@acls) {
	printf "<option %s>%s\n",
		$match{"!$a->{'values'}->[0]"} ? "selected" : "",
		$a->{'values'}->[0];
	}
print "</select></td> </tr>\n";

print "</table></td></tr></table><br>\n";
print "<input type=submit value=$text{'buttsave'}>\n";
if (@never) { print "<input type=submit value=$text{'buttdel'} name=delete>\n"; }
print "</form>\n";

print "<hr>\n";
&footer("edit_acl.cgi", $text{'ahttp_return'});

0707010000eba5000081e40000000000000002000000013ac0389f000003c2000000200000000000000000000000000000001b00000003reloc/squid/never_save.cgi    #!/usr/local/bin/perl
# never_save.cgi
# Save or delete an never_direct directive

require './squid-lib.pl';
&ReadParse();
&lock_file($config{'squid_conf'});
$conf = &get_config();

@never = &find_config("never_direct", $conf);
if (defined($in{'index'})) {
	$never = $conf->[$in{'index'}];
	}
if ($in{'delete'}) {
	# delete this restriction
	splice(@never, &indexof($never, @never), 1);
	}
else {
	# update or create
	@vals = ( $in{'action'} );
	foreach $y (split(/\0/, $in{'yes'})) { push(@vals, $y); }
	foreach $n (split(/\0/, $in{'no'})) { push(@vals, "!$n"); }
	$newnever = { 'name' => 'never_direct', 'values' => \@vals };
	if ($never) { splice(@never, &indexof($never, @never),
			      1, $newnever); }
	else { push(@never, $newnever); }
	}
&save_directive($conf, "never_direct", \@never);
&flush_file_lines();
&unlock_file($config{'squid_conf'});
&webmin_log($in{'delete'} ? 'delete' : $never ? 'modify' : 'create', "never");
&redirect("edit_icp.cgi");

  0707010000eba6000081a40000000000000002000000013ac0389f00000ca0000000200000000000000000000000000000001a00000003reloc/squid/parser-lib.pl # parser-lib.pl
# Functions for reading and writing the squid config file

# get_config()
# Parses squid.conf into an array of data structures
sub get_config
{
local($lnum, $_);
if (!@get_config_cache) {
	open(CONF, $config{'squid_conf'});
	$lnum = 0;
	while(<CONF>) {
		s/\r|\n//g;	# strip newlines and comments
		s/#.*$//g;
		if (/^\s*(\S+)\s*(.*)$/) {
			local(%dir);
			$dir{'name'} = $1;
			$dir{'value'} = $2;
			$dir{'values'} = [ split(/\s+/, $2) ];
			$dir{'line'} = $lnum;
			$dir{'index'} = scalar(@get_config_cache);
			push(@get_config_cache, \%dir);
			}
		$lnum++;
		}
	close(CONF);
	}
return \@get_config_cache;
}

# find_config(name, &config)
# Returns the structure(s) with some name
sub find_config
{
local($c, @rv);
foreach $c (@{$_[1]}) {
	if ($c->{'name'} eq $_[0]) {
		push(@rv, $c);
		}
	}
return @rv ? wantarray ? @rv : $rv[0]
           : wantarray ? () : undef;
}

# find_value(name, &config)
# Returns the value of some directive
sub find_value
{
local $rv = &find_config(@_);
return $rv ? $rv->{'value'} : undef;
}

# find_values(name, &config)
# Returns the value of some directive
sub find_values
{
local $rv = &find_config(@_);
return $rv ? $rv->{'values'} : undef;
}

# save_value(&config, name, value*)
sub save_value
{
local @v = map { { 'name' => $_[1],
		   'values' => [ $_ ] } } @_[2..@_-1];
&save_directive($_[0], $_[1], \@v);
}

# save_directive(&config, name, &values)
# Given a structure containing a directive name, type, values and members
# add, update or remove that directive in config structure and data files.
sub save_directive
{
local(@oldv, @newv, $i, $o, $n, $lref, $nl, $change);
@oldv = &find_config($_[1], $_[0]);
@newv = @{$_[2]};
$lref = &read_file_lines($config{'squid_conf'});
for($i=0; $i<@oldv || $i<@newv; $i++) {
	if ($i >= @oldv) {
		# a new directive is being added.. put it at the end of the file
		$nl = &directive_line($newv[$i]);
		if ($change) {
			# put it after any directives of the same type
			$newv[$i]->{'line'} = $change->{'line'}+1;
			splice(@$lref, $newv[$i]->{'line'}, 0, $nl);
			&renumber($_[0], $newv[$i]->{'line'}, 1);
			splice(@{$_[0]}, &indexof($change, @{$_[0]}),
			       0, $newv[$i]);
			$change = $newv[$i];
			}
		else {
			# put it at the end of the file
			$newv[$i]->{'line'} = scalar(@$lref);
			push(@$lref, $nl);
			push(@{$_[0]}, $newv[$i]);
			}
		}
	elsif ($i >= @newv) {
		# a directive was deleted
		splice(@$lref, $oldv[$i]->{'line'}, 1);
		&renumber($_[0], $oldv[$i]->{'line'}, -1);
		splice(@{$_[0]}, &indexof($oldv[$i], @{$_[0]}), 1);
		}
	else {
		# updating some directive
		$nl = &directive_line($newv[$i]);
		splice(@$lref, $oldv[$i]->{'line'}, 1, $nl);
		$newv[$i]->{'line'} = $oldv[$i]->{'line'};
		$_[0]->[&indexof($oldv[$i], @{$_[0]})] = $newv[$i];
		$change = $newv[$i];
		}
	}
}

# directive_line(&details)
sub directive_line
{
local(@v) = @{$_[0]->{'values'}};
return $_[0]->{'name'}.(@v ? " ".join(' ',@v) : "");
}

# renumber(&directives, line, count)
# Runs through the given array of directives and increases the line numbers
# of all those greater than some line by the given count
sub renumber
{
local($d);
foreach $d (@{$_[0]}) {
	if ($d->{'line'} > $_[1]) {
		$d->{'line'} += $_[2];
		}
	}
}




1;

0707010000eba7000081e40000000000000002000000013ac0389e0000014f000000200000000000000000000000000000001800000003reloc/squid/restart.cgi   #!/usr/local/bin/perl
# restart.cgi
# Restart the running squid process

require './squid-lib.pl';
&ReadParse();
$whatfailed = $text{'restart_ftrs'};
$out = &backquote_logged("$config{'squid_path'} -f $config{'squid_conf'} -k reconfigure 2>&1");
if ($out) { &error("<pre>$out</pre>"); }
&webmin_log("apply");
&redirect($in{'redir'});

 0707010000eba8000081e40000000000000002000000013ac0389e000008a5000000200000000000000000000000000000001b00000003reloc/squid/save_admin.cgi    #!/usr/local/bin/perl
# save_admin.cgi
# Save admin options

require './squid-lib.pl';
&ReadParse();
&lock_file($config{'squid_conf'});
$conf = &get_config();
$whatfailed = $text{'sadmin_ftsao'};

($olduser, $oldgroup) = &get_squid_user($conf);
if ($squid_version < 2) {
	if ($in{'effective_def'}) {
		&save_directive($conf, "cache_effective_user", [ ]);
		}
	else {
		%dir = ( 'name', 'cache_effective_user',
			 'values', [ $in{'effective_u'}, $in{'effective_g'} ] );
		&save_directive($conf, "cache_effective_user", [ \%dir ]);
		}
	}
else {
	&save_opt("cache_effective_user", undef, $conf);
	&save_opt("cache_effective_group", undef, $conf);
        &save_opt("proxy_auth_realm", undef, $conf);
        }
&save_opt("cache_mgr", \&check_email, $conf);
&save_opt("visible_hostname", \&check_hostname, $conf);
if ($squid_version < 2) {
	&save_opt("announce_to", undef, $conf);
	&save_opt("cache_announce", \&check_announce, $conf);
	}
else {
	&save_opt("unique_hostname", \&check_hostname, $conf);
	if ($squid_version >= 2.4) {
		&save_opt("hostname_aliases", undef, $conf);
		}
	&save_opt("announce_host", \&check_hostname, $conf);
	&save_opt("announce_port", \&check_port, $conf);
	&save_opt("announce_file", undef, $conf);
	&save_opt_time("announce_period", $conf);
	}
&flush_file_lines();
&unlock_file($config{'squid_conf'});
&webmin_log("admin", undef, undef, \%in);

($user, $group) = &get_squid_user($conf);
if (($olduser ne $user || $oldgroup ne $group) && $user && $group) {
	# User/group has changed! Ask user if he wants to chown log/cache/pid
	&header($text{'sadmin_header'}, "");
	print "<hr><p>\n";
	print $text{'sadmin_msg1'},"\n"; 
	print "<center><form action=chown.cgi>\n";
	print "<input type=submit value=\"$text{'sadmin_buttco'}\">\n";
	print "</form></center>\n";
	print "<hr>\n";
	&footer("", $text{'sadmin_return'});
	}
else { &redirect(""); }

sub check_email
{
return $_[0] =~ /^\S+$/ ? undef : &text('sadmin_inavea',$_[0]);
}

sub check_hostname
{
return $_[0] =~ /^\S+$/ ? undef : &text('sadmin_inavh',$_[0]);
}

sub check_announce
{
return $_[0] =~ /^\d+$/ ? undef : &text('sadmin_inavap',$_[0]);
}

sub check_port
{
return $_[0] =~ /^\d+$/ ? undef : &text('sadmin_inavp',$_[0]);
}

   0707010000eba9000081e40000000000000002000000013ac0389e000004d1000000200000000000000000000000000000001a00000003reloc/squid/save_auth.cgi #!/usr/local/bin/perl
# save_auth.cgi
# Save authentication options

require './squid-lib.pl';
&ReadParse();
&lock_file($config{'squid_conf'});
$conf = &get_config();
$whatfailed = $text{'sauth_ftsao'};

if ($in{'authfile_def'}) {
	&save_directive($conf, "proxy_auth", [ ]);
	}
else {
	$in{'authfile'} =~ /^\// || &error($text{'sauth_iomuf'});
	if (!-r $in{'authfile'}) {
		open(AUTH, ">$in{'authfile'}");
		close(AUTH);
		($user, $group) = &get_squid_user($conf);
		if ($user) {
			@uinfo = getpwnam($user);
			@ginfo = getgrnam($group);
			chown($uinfo[2], $ginfo[2], $in{'authfile'});
			chmod(0644, $in{'authfile'});
			}
		}
	push(@vals, $in{'authfile'});
	if (!$in{'authdom_def'}) {
		$in{'authdom'}=~/^\S+$/ || &error($text{'sauth_iomd'});
		push(@vals, $in{'authdom'});
		}
	&save_directive($conf, "proxy_auth",
			[ { 'name' => 'proxy_auth',
			    'values' => \@vals } ]);
	}
&flush_file_lines();

# check if the proxy_auth directive is supported
$out = `$config{'squid_path'} -f $config{'squid_conf'} -k check 2>&1`;
if ($out =~ /proxy_auth/) {
	# it isn't .. roll back
	&save_directive($conf, "proxy_auth", [ ]);
	&flush_file_lines();
	&error($text{'sauth_msg1'});
	}
&unlock_file($config{'squid_conf'});
&redirect("");

   0707010000ebaa000081e40000000000000002000000013ac0389e0000167c000000200000000000000000000000000000001b00000003reloc/squid/save_cache.cgi    #!/usr/local/bin/perl
# save_cache.cgi
# Save cache and request options

require './squid-lib.pl';
&ReadParse();
&lock_file($config{'squid_conf'});
$conf = &get_config();
$whatfailed = $text{'scache_ftsco'};

if ($in{'cache_dir_def'}) {
	&save_directive($conf, "cache_dir", [ ]);
	}
else {
	for($i=0; defined($dir = $in{"cache_dir_$i"}); $i++) {
		if ($squid_version >= 2.4) {
			$lv1 = $in{"cache_lv1_$i"}; $lv2 = $in{"cache_lv2_$i"};
			$size = $in{"cache_size_$i"};
			$type = $in{"cache_type_$i"};
			$mos = $in{"cache_mos_$i"};
			next if (!$dir && !$lv1 && !$lv2 && !$size && !$mos);
			$mos = -1 if (!$mos);
			&check_error(\&check_dir, $dir);
			&check_error(\&check_dirsize, $size);
			&check_error(\&check_mos, $mos);
			&check_error(\&check_dircount, $lv1);
			&check_error(\&check_dircount, $lv2);
			push(@chd, { 'name' => 'cache_dir',
				     'values' => [ $type, $mos, $dir, $size,
						   $lv1, $lv2 ] });
			}
		elsif ($squid_version >= 2.3) {
			$lv1 = $in{"cache_lv1_$i"}; $lv2 = $in{"cache_lv2_$i"};
			$size = $in{"cache_size_$i"};
			$type = $in{"cache_type_$i"};
			next if (!$dir && !$lv1 && !$lv2 && !$size);
			&check_error(\&check_dir, $dir);
			&check_error(\&check_dirsize, $size);
			&check_error(\&check_dircount, $lv1);
			&check_error(\&check_dircount, $lv2);
			push(@chd, { 'name' => 'cache_dir',
				     'values' => [ $type, $dir, $size,
						   $lv1, $lv2 ] });
			}
		elsif ($squid_version >= 2) {
			$lv1 = $in{"cache_lv1_$i"}; $lv2 = $in{"cache_lv2_$i"};
			$size = $in{"cache_size_$i"};
			next if (!$dir && !$lv1 && !$lv2 && !$size);
			&check_error(\&check_dir, $dir);
			&check_error(\&check_dirsize, $size);
			&check_error(\&check_dircount, $lv1);
			&check_error(\&check_dircount, $lv2);
			push(@chd, { 'name' => 'cache_dir',
				     'values' => [ $dir, $size, $lv1, $lv2 ] });
			}
		else {
			next if (!$dir);
			&check_error(\&check_dir, $dir);
			push(@chd, { 'name' => 'cache_dir',
				     'values' => [ $dir ] });
			}
		}
	if (!@chd) {
		&error($text{'scache_emsg0'});
		}
	&save_directive($conf, "cache_dir", \@chd);
	}
if ($squid_version < 2) {
	&save_opt("swap_level1_dirs", \&check_dircount, $conf);
	&save_opt("swap_level2_dirs", \&check_dircount, $conf);
	&save_opt("store_avg_object_size", \&check_objsize, $conf);
	}
else {
	&save_opt_bytes("store_avg_object_size", $conf);
	}
&save_opt("store_objects_per_bucket", \&check_bucket, $conf);
if ($squid_version < 2) {
	&save_list("cache_stoplist", undef, $conf);
	&save_list("cache_stoplist_pattern", undef, $conf);
	}
@noch = split(/\0/, $in{'no_cache'});
if (@noch) {
	$nc[0] = { 'name' => 'no_cache',
		   'values' => [ "deny", @noch ] };
	}
&save_directive($conf, "no_cache", \@nc);
&save_opt_time("reference_age", $conf);
if ($squid_version < 2) {
	&save_opt("request_size", \&check_size, $conf);
	&save_opt("negative_ttl", \&check_ttl, $conf);
	&save_opt("positive_dns_ttl", \&check_dns_ttl, $conf);
	&save_opt("negative_dns_ttl", \&check_dns_ttl, $conf);
	}
else {
	if ($squid_version >= 2.3) {
		&save_opt_bytes("request_body_max_size", $conf);
		&save_opt_bytes("request_header_max_size", $conf);
		&save_opt_bytes("reply_body_max_size", $conf);
		}
	else {
		&save_opt_bytes("request_size", $conf);
		}
	&save_opt_time("negative_ttl", $conf);
	&save_opt_time("positive_dns_ttl", $conf);
	&save_opt_time("negative_dns_ttl", $conf);
	}
if ($squid_version < 2) {
	&save_opt("connect_timeout", \&check_timeout, $conf);
	&save_opt("read_timeout", \&check_timeout, $conf);
	&save_opt("client_lifetime", \&check_lifetime, $conf);
	&save_opt("shutdown_lifetime", \&check_lifetime, $conf);
	}
else {
	&save_opt_time("connect_timeout", $conf);
	&save_opt_time("read_timeout", $conf);
	&save_opt_time("siteselect_timeout", $conf);
	&save_opt_time("request_timeout", $conf);
	&save_opt_time("client_lifetime", $conf);
	&save_opt_time("shutdown_lifetime", $conf);
	&save_choice("half_closed_clients", "on", $conf);
	&save_opt_time("pconn_timeout", $conf);
	}
if ($squid_version < 2) {
	if (!$in{'wais_relay_def'}) {
		&check_error(\&check_host, $in{'wais_relay1'});
		&check_error(\&check_port, $in{'wais_relay2'});
		$wr[0] = { 'name' => 'wais_relay',
			   'values' =>  [ $in{'wais_relay1'}, $in{'wais_relay2'} ] };
		}
	&save_directive($conf, "wais_relay", \@wr);
	}
else {
	&save_opt("wais_relay_host", \&check_host, $conf);
	&save_opt("wais_relay_port", \&check_port, $conf);
	}

&flush_file_lines();
&unlock_file($config{'squid_conf'});
&webmin_log("cache", undef, undef, \%in);
&redirect("");

sub check_dir
{
return (-d $_[0]) ? undef : &text('scache_emsg1',$_[0]);
}

sub check_size
{
return $_[0] =~ /^\d+$/ ? undef : &text('scache_emsg2',$_[0]);
}

sub check_ttl
{
return $_[0] =~ /^\d+$/ ? undef
			: &text('scache_emsg3',$_[0]);
}

sub check_dns_ttl
{
return $_[0] =~ /^\d+$/ ? undef : &text('scache_emsg4',$_[0]);
}

sub check_timeout
{
return $_[0] =~ /^\d+$/ ? undef : &text('scache_emsg5',$_[0]);
}

sub check_lifetime
{
return $_[0] =~ /^\d+$/ ? undef : &text('scache_emsg6',$_[0]);
}

sub check_dircount
{
return $_[0] !~ /^\d+$/ ? &text('scache_emsg7',$_[0]) : 
       $_[0] < 1 ? $text{'scache_emsg8'} :
       $_[0] > 256 ? $text{'scache_emsg9'} : undef;
    
}

sub check_objsize
{
return $_[0] =~ /^\d+/ ? undef : &text('scache_emsg10',$_[0]);
}

sub check_bucket
{
return $_[0] =~ /^\d+$/ ? undef : &text('scache_emsg11',$_[0]);
}

sub check_dirsize
{
return $_[0] =~ /^\d+$/ ? undef : &text('scache_emsg12',$_[0]);
}

sub check_host
{
return gethostbyname($_[0]) || &check_ipaddress($_[0]) ? undef
		: &text('scache_emsg13',$_[0]);
}

sub check_port
{
return $_[0] =~ /^\d+$/ ? undef : &text('scache_emsg14',$_[0]);
}

sub check_mos
{
return $_[0] =~ /^\d+$/ || $_[0] == -1 ? undef : &text('scache_emsg10',$_[0]);
}

0707010000ebab000081e40000000000000002000000013ac0389e00000ba1000000200000000000000000000000000000002000000003reloc/squid/save_cache_host.cgi   #!/usr/local/bin/perl
# save_cache_host.cgi
# Save, create or delete a cache_host directive

require './squid-lib.pl';
&ReadParse();
&lock_file($config{'squid_conf'});
$conf = &get_config();
$cache_host = $squid_version >= 2 ? "cache_peer" : "cache_host";
@ch = &find_config($cache_host, $conf);
@chd = &find_config($cache_host."_domain", $conf);

$dom = $ch[$in{'num'}]->{'values'}->[0];
if ($in{'delete'}) {
	# delete some directive
	$dir = $ch[$in{'num'}];
	splice(@ch, $in{'num'}, 1);

	# delete any cache_host directives as well
	for($i=0; $i<@chd; $i++) {
		if ($chd[$i]->{'values'}->[0] eq $dom) {
			splice(@chd, $i--, 1);
			}
		}
	}
else {
	# validate inputs
	$whatfailed = $text{'schost_ftsc'};
	gethostbyname($in{'host'}) || &check_ipaddress($in{'host'}) ||
		&error(&text('schost_emsg1',$in{'host'}));
	$in{'proxy'} =~ /^\d+$/ ||
		&error(&text('schost_emsg2',$in{'proxy'}));
	$in{'icp'} =~ /^\d+$/ ||
		&error(&text('schost_emsg3',$in{'icp'}));
	$in{'ttl'} =~ /^\d*$/ ||
		&error(&text('schost_emsg4',$in{'ttl'}));
	$in{'weight'} =~ /^\d*$/ ||
		&error(&text('schost_emsg5',$in{'weight'}));

	@vals = ($in{'host'}, $in{'type'}, $in{'proxy'}, $in{'icp'});
	@optlist = ("proxy-only", "weight", "ttl", "no-query", "default",
                    "round-robin", "multicast-responder");
	push(@optlist, "closest-only", "no-digest",
		       "no-netdb-exchange", "no-delay");
	foreach $o (@optlist) {
		$def = $in{$o."_def"};
		if (defined($def)) {
			if (!$def) { push(@vals, "$o=$in{$o}"); }
			}
		elsif ($in{$o}) { push(@vals, $o); }
		}
	if ($in{'login'}) {
		push(@vals, "login=".$in{'login_user'}.":".$in{'login_pass'});
		}

	$dir = { 'name' => $cache_host, 'values' => \@vals };
	@chdl = split(/\s+/, $in{'doq'});
	foreach $dontq (split(/\s+/, $in{'dontq'})) { push(@chdl, "!$dontq"); }
	if ($in{'new'}) {
		# adding a new cache_host and domains
		push(@ch, $dir);
		if (@chdl) {
			push(@chd, { 'name' => $cache_host."_domain",
				     'values' => [ $vals[0], @chdl ] });
			}
		}
	else {
		# updating existing cache_host and domains
		$ch[$in{'num'}] = $dir;
		if (@chdl) {
			# replace the first cache_host_domain directive
			# for this host and remove the rest
			$newv = { 'name' => $cache_host."_domain",
				  'values' => [ $vals[0], @chdl ] };
			for($i=0; $i<@chd; $i++) {
				if ($chd[$i]->{'values'}->[0] eq $dom) {
					if ($already) {
						splice(@chd, $i--, 1);
						}
					else {
						$chd[$i] = $newv;
						$already++;
						}
					}
				}
			if (!$already) { push(@chd, $newv); }
			}
		elsif (@chd) {
			# remove all the old cache_host_domain directives
			# for this host
			@chd = grep { $_->{'values'}->[0] ne $dom } @chd;
			}
		}
	}
&save_directive($conf, $cache_host, \@ch);
&save_directive($conf, $cache_host."_domain", \@chd);
&flush_file_lines();
&unlock_file($config{'squid_conf'});
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
	    "host", $dir->{'values'}->[0], \%in);
&redirect("edit_icp.cgi");

   0707010000ebac000081e40000000000000002000000013ac0389e000003e7000000200000000000000000000000000000001900000003reloc/squid/save_icp.cgi  #!/usr/local/bin/perl
# save_icp.cgi
# Save cache options

require './squid-lib.pl';
&ReadParse();
&lock_file($config{'squid_conf'});
$conf = &get_config();
$whatfailed = $text{'sicp_ftsco'};

if ($squid_version < 2) {
	&save_list("local_domain", undef, $conf);
	&save_address("local_ip", $conf);
	&save_list("inside_firewall", undef, $conf);
	&save_address("firewall_ip", $conf);
	}
&save_list("hierarchy_stoplist", undef, $conf);
if ($squid_version < 2) {
	&save_choice("single_parent_bypass", "off", $conf);
	&save_choice("source_ping", "off", $conf);
	&save_opt("neighbor_timeout", \&check_timeout, $conf);
	}
else {
	&save_opt("icp_query_timeout", \&check_timeout, $conf);
	&save_opt("mcast_icp_query_timeout", \&check_timeout, $conf);
	&save_opt("dead_peer_timeout", \&check_timeout, $conf);
	}
&flush_file_lines();
&unlock_file($config{'squid_conf'});
&webmin_log("icp", undef, undef, \%in);
&redirect("");

sub check_timeout
{
return $_[0] =~ /^\d+$/ ? undef : &text('sicp_emsg1',$_[0]);
}

 0707010000ebad000081e40000000000000002000000013ac0389e00000689000000200000000000000000000000000000001a00000003reloc/squid/save_logs.cgi #!/usr/local/bin/perl
# save_logs.cgi
# Save logging options

require './squid-lib.pl';
&ReadParse();
&lock_file($config{'squid_conf'});
$conf = &get_config();
$whatfailed = $text{'slogs_ftslo'};

&save_opt("cache_access_log", \&check_file, $conf);
&save_opt("cache_log", \&check_file, $conf);
&save_opt("cache_store_log", \&check_file, $conf);
&save_opt("cache_swap_log", \&check_file, $conf);
&save_choice("emulate_httpd_log", "off", $conf);
&save_choice("log_mime_hdrs", "off", $conf);
&save_opt("useragent_log", \&check_file, $conf);
&save_opt("pid_filename", \&check_file, $conf);
if ($squid_version >= 2.2) {
	if (!$in{'complex_ident'}) {
		local @ila = split(/\0/, $in{'ident_lookup_access'});
		&save_directive($conf, "ident_lookup_access", !@ila ? [ ] :
				[ { 'name' => 'ident_lookup_access',
				    'values' => [ 'allow', @ila ] } ]);
		}
	&save_opt_time("ident_timeout", $conf);
	}
else {
	&save_choice("ident_lookup", "off", $conf);
	}
&save_choice("log_fqdn", "off", $conf);
&save_opt("client_netmask", \&check_netmask, $conf);
&save_opt("debug_options", \&check_debug, $conf);
if ($squid_version >= 2) {
	&save_opt("mime_table", \&check_file, $conf);
	}

&flush_file_lines();
&unlock_file($config{'squid_conf'});
&webmin_log("logs", undef, undef, \%in);
&redirect("");

sub check_file
{
$_[0] =~ /^\// || return &text('slogs_emsg1',$_[0]);
$_[0] =~ /^(\S*\/)([^\/\s]+)$/ || return &text('slogs_emsg2',$_[0]);
(-d $1) || return &text('slogs_emsg3',$1);
return undef;
}

sub check_netmask
{
&check_ipaddress($_[0]) || return &text('slogs_emsg4',$_[0]);
return undef;
}

sub check_debug
{
$_[0] =~ /\S+/ || return &text('slogs_emsg5',$_[0]);
return undef;
}

   0707010000ebae000081e40000000000000002000000013ac0389e00000610000000200000000000000000000000000000001900000003reloc/squid/save_mem.cgi  #!/usr/local/bin/perl
# save_mem.cgi
# Save memory usage options

require './squid-lib.pl';
&ReadParse();
&lock_file($config{'squid_conf'});
$conf = &get_config();
$whatfailed = $text{'smem_ftsmo'};

if ($squid_version < 2) {
	&save_opt("cache_mem", \&check_size, $conf);
	&save_opt("cache_swap", \&check_size, $conf);
	}
else {
	&save_opt_bytes("cache_mem", $conf);
	&save_opt("fqdncache_size", \&check_size, $conf);
	}
&save_opt("cache_mem_high", \&check_high, $conf);
&save_opt("cache_mem_low", \&check_low, $conf);
&save_opt("cache_swap_high", \&check_high, $conf);
&save_opt("cache_swap_low", \&check_low, $conf);
if ($squid_version < 2) {
	&save_opt("maximum_object_size", \&check_obj_size, $conf);
	}
else {
	&save_opt_bytes("maximum_object_size", $conf);
	}
&save_opt("ipcache_size", \&check_size, $conf);
&save_opt("ipcache_high", \&check_high, $conf);
&save_opt("ipcache_low", \&check_low, $conf);
if ($squid_version >= 2.4) {
	&save_choice("cache_replacement_policy", '', $conf);
	&save_choice("memory_replacement_policy", '', $conf);
	}
&flush_file_lines();
&unlock_file($config{'squid_conf'});
&webmin_log("mem", undef, undef, \%in);
&redirect("");

sub check_size
{
return $_[0] =~ /^\d+$/ ? undef : &text('smem_emsg1',$_[0]);
}

sub check_high
{
return $_[0] =~ /^\d+$/ && $_[0] > 0 && $_[0] <= 100
		? undef : &text('smem_emsg2',$_[0]);
}

sub check_low
{
return $_[0] =~ /^\d+$/ && $_[0] > 0 && $_[0] <= 100
		? undef : &text('smem_emsg3',$_[0]);
}

sub check_obj_size
{
return $_[0] =~ /^\d+$/ ? undef : &text('smem_emsg4',$_[0]);
}

0707010000ebaf000081e40000000000000002000000013ac0389e00000789000000200000000000000000000000000000001a00000003reloc/squid/save_misc.cgi #!/usr/local/bin/perl
# save_misc.cgi
# Save miscellaneous options

require './squid-lib.pl';
&ReadParse();
&lock_file($config{'squid_conf'});
$conf = &get_config();
$whatfailed = $text{'smisc_ftso'};

&save_opt("dns_testnames", undef, $conf);
&save_opt("logfile_rotate", \&check_rotate, $conf);
&save_opt("append_domain", \&check_domain, $conf);
if ($squid_version < 2) {
	&save_opt("ssl_proxy", \&check_proxy, $conf);
	&save_opt("passthrough_proxy", \&check_proxy, $conf);
	}
&save_opt("err_html_text", undef, $conf);
&save_choice("client_db", "on", $conf);
&save_choice("forwarded_for", "on", $conf);
&save_choice("log_icp_queries", "on", $conf);
&save_opt("minimum_direct_hops", \&check_hops, $conf);
if ($squid_version >= 2.2) {
	$m = $in{'anon_mode'};
	if ($m == 0) {
		&save_directive($conf, "anonymize_headers", [ ]);
		}
	else {
		&save_directive($conf, "anonymize_headers",
			[ { 'name' => 'anonymize_headers',
			    'values' => [ $m==1 ? "allow" : "deny",
					  $m==1 ? $in{'anon_allow'}
						: $in{'anon_deny'} ] } ]);
		}
	}
else {
	&save_choice("http_anonymizer", "off", $conf);
	}
&save_opt("fake_user_agent", undef, $conf);
&save_choice("memory_pools", "on", $conf);
&save_opt("httpd_accel_host", undef, $conf);
&save_opt("httpd_accel_port", undef, $conf);
&save_choice("httpd_accel_with_proxy", undef, $conf);
&save_choice("httpd_accel_uses_host_header", undef, $conf);
if ($squid_version >= 2) {
	&save_opt_bytes("memory_pools_limit", $conf);
	}
&flush_file_lines();
&unlock_file($config{'squid_conf'});
&webmin_log("misc", undef, undef, \%in);
&redirect("");

sub check_rotate
{
return $_[0] =~ /^\d+$/ ? undef : &text('smisc_emsg1',$_[0]);
}

sub check_domain
{
return $_[0] =~ /^[A-z0-9\.\-]+$/ ? undef : &text('smisc_emsg2',$_[0]); 
}

sub check_proxy
{
return $_[0] =~ /^\S+$/ ? undef : &text('smisc_emsg3',$_[0]); 
}

sub check_hops
{
return $_[0] =~ /^\d+$/ ? undef : &text('smisc_emsg4',$_[0]); 
}

   0707010000ebb0000081e40000000000000002000000013ac0389f000003f6000000200000000000000000000000000000001b00000003reloc/squid/save_nuser.cgi    #!/usr/local/bin/perl
# save_nuser.cgi
# Save, create or delete a proxy user

require './squid-lib.pl';
&ReadParse();
$conf = &get_config();
$authprog = &find_value("authenticate_program", $conf);
if ($authprog =~ /(\S+)\s+(\/\S+)$/) {
	$file = $2;
	}
&lock_file($file);
@users = &list_auth_users($file);

$user = $users[$in{'index'}];
if ($in{'delete'}) {
	&replace_file_line($file, $user->{'line'});
	}
else {
	$whatfailed = $text{'suser_ftsu'};
	$in{'user'} =~ /^[^:\s]+$/ || &error($text{'suser_emsg1'});
	$salt = substr(time(), -2);
	if ($in{'new'}) {
		open(FILE, ">>$file");
		print FILE $in{'user'},":",crypt($in{'pass'}, $salt),"\n";
		close(FILE);
		}
	else {
		$pass = $in{'pass_def'} ? $user->{'pass'}
					: crypt($in{'pass'}, $salt);
		&replace_file_line($file, $user->{'line'},
				   "$in{'user'}:$pass\n");
		}
	}
&unlock_file($file);
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
	    'user', $in{'user'} ? $in{'user'} : $user->{'user'});
&redirect("edit_nauth.cgi");

  0707010000ebb1000081e40000000000000002000000013ac0389e00000723000000200000000000000000000000000000001b00000003reloc/squid/save_ports.cgi    #!/usr/local/bin/perl
# save_ports.cgi
# Save ports and other networking options

require './squid-lib.pl';
&ReadParse();
&lock_file($config{'squid_conf'});
$conf = &get_config();
$whatfailed = $text{'sport_ftspo'};

if ($squid_version >= 2.3) {
	for($i=0; defined($port = $in{"port_$i"}); $i++) {
		next if (!$port);
		$port =~ /^\d+$/ || &error("'$port' is not a valid port");
		if ($in{"addr_def_$i"}) {
			push(@ports, { 'name' => 'http_port',
				       'values' => [ $port ] } );
			}
		else {
			$addr = $in{"addr_$i"};
			gethostbyname($addr) || &check_ipaddress($addr) ||
				&error("'$addr' is not a valid proxy address");
			push(@ports, { 'name' => 'http_port',
				       'values' => [ "$addr:$port" ] } );
			}
		}
	&save_directive($conf, 'http_port', \@ports);
	}
else {
	&save_opt("http_port", \&check_port, $conf);
	&save_opt("tcp_incoming_address", \&check_address, $conf);
	}
&save_opt("icp_port", \&check_port, $conf);
&save_opt("tcp_outgoing_address", \&check_address, $conf);
&save_opt("udp_outgoing_address", \&check_address, $conf);
&save_opt("udp_incoming_address", \&check_address, $conf);
if (!$in{'udp_outgoing_address_def'} && !$in{'udp_incoming_address_def'} &&
     $in{'udp_outgoing_address'} eq $in{'udp_incoming_address'}) {
	&error("The outgoing and incoming UDP addresses cannot be the same");
	}
&save_address("mcast_groups", $conf);
&save_opt("tcp_recv_bufsize", \&check_bufsize, $conf);
&flush_file_lines();
&unlock_file($config{'squid_conf'});
&webmin_log("ports", undef, undef, \%in);
&redirect("");

sub check_port
{
return $_[0] =~ /^\d+$/ ? undef : &text('sport_emsg1',$_[0]);
}

sub check_address
{
return &check_ipaddress($_[0]) || gethostbyname($_[0]) ? undef :
	&text('sport_emsg2',$_[0]);

}

sub check_bufsize
{
return $_[0] =~ /^\d+$/ ? undef : &text('sport_emsg3',$_[0]);
}

 0707010000ebb2000081e40000000000000002000000013ac0389e00000728000000200000000000000000000000000000001b00000003reloc/squid/save_progs.cgi    #!/usr/local/bin/perl
# save_progs.cgi
# Save helper program options

require './squid-lib.pl';
&ReadParse();
&lock_file($config{'squid_conf'});
$conf = &get_config();
$whatfailed = $text{'sprog_ftshpo'};

if ($squid_version < 2) {
	&save_opt("ftpget_program", \&check_prog, $conf);
	&save_opt("ftpget_options", \&check_opts, $conf);
	}
else {
	&save_opt("ftp_list_width", \&check_width, $conf);
	}
&save_opt("ftp_user", \&check_ftpuser, $conf);
&save_opt("cache_dns_program", \&check_prog, $conf);
&save_opt("dns_children", \&check_children, $conf);
&save_choice("dns_defnames", "off", $conf);
if ($squid_version >= 2) {
	&save_opt("dns_nameservers", \&check_dnsservers, $conf);
	}
&save_opt("unlinkd_program", \&check_prog, $conf);
&save_opt("pinger_program", \&check_prog, $conf);
&save_opt("redirect_program", \&check_prog, $conf);
&save_opt("redirect_children", \&check_children, $conf);
if ($squid_version >= 2) {
	&save_opt("authenticate_program", \&check_prog, $conf);
	&save_opt("authenticate_children", \&check_children, $conf);
	}

&flush_file_lines();
&unlock_file($config{'squid_conf'});
&webmin_log("progs", undef, undef, \%in);
&redirect("");

sub check_opts
{
return $_[0] =~ /\S/ ? undef : $text{'sprog_emsg1'};
}

sub check_prog
{
$_[0] =~ /^(\/\S+)/ || return &text('sprog_emsg2',$_[0]);
return -x $1 ? undef : &text('sprog_emsg3',$_[0]); 
}

sub check_ftpuser
{
return $_[0] =~ /^\S+@\S*$/ ? undef : &text('sprog_emsg4',$_[0]);
}

sub check_children
{
return $_[0] =~ /^\d+$/ ? undef : &text('sprog_emsg5',$_[0]);
}

sub check_width
{
return $_[0] =~ /^\d+$/ ? undef : &text('sprog_emsg6',$_[0]);
}

sub check_dnsservers
{
local $dns;
local @dns = split(/\s+/, $_[0]);
return $text{'sprog_emsg7'} if (!@dns);
foreach $dns (@dns) {
	&check_ipaddress($dns) || return &text('sprog_emsg8',$dns);
	}
return undef;
}

0707010000ebb3000081e40000000000000002000000013ac0389f00000ab6000000200000000000000000000000000000001a00000003reloc/squid/save_smem.cgi #!/usr/local/bin/perl
# save_smem.cgi
# Save simple memory usage options

require './squid-lib.pl';
&ReadParse();
&lock_file($config{'squid_conf'});
$conf = &get_config();
$whatfailed = $text{'smem_ftsmo'};

if ($squid_version < 2) {
	&save_opt("cache_mem", \&check_size, $conf);
	&save_opt("cache_swap", \&check_size, $conf);
	}
else {
	&save_opt_bytes("cache_mem", $conf);
	&save_opt("fqdncache_size", \&check_size, $conf);
	}
if ($squid_version < 2) {
	&save_opt("maximum_object_size", \&check_obj_size, $conf);
	}
else {
	&save_opt_bytes("maximum_object_size", $conf);
	}
&save_opt("ipcache_size", \&check_size, $conf);

if ($in{'cache_dir_def'}) {
	&save_directive($conf, "cache_dir", [ ]);
	}
else {
	for($i=0; defined($dir = $in{"cache_dir_$i"}); $i++) {
		if ($squid_version >= 2.3) {
			$lv1 = $in{"cache_lv1_$i"}; $lv2 = $in{"cache_lv2_$i"};
			$size = $in{"cache_size_$i"};
			$type = $in{"cache_type_$i"};
			next if (!$dir && !$lv1 && !$lv2 && !$size);
			&check_error(\&check_dir, $dir);
			&check_error(\&check_dirsize, $size);
			&check_error(\&check_dircount, $lv1);
			&check_error(\&check_dircount, $lv2);
			push(@chd, { 'name' => 'cache_dir',
				     'values' => [ $type, $dir, $size,
						   $lv1, $lv2 ] });
			}
		elsif ($squid_version >= 2) {
			$lv1 = $in{"cache_lv1_$i"}; $lv2 = $in{"cache_lv2_$i"};
			$size = $in{"cache_size_$i"};
			next if (!$dir && !$lv1 && !$lv2 && !$size);
			&check_error(\&check_dir, $dir);
			&check_error(\&check_dirsize, $size);
			&check_error(\&check_dircount, $lv1);
			&check_error(\&check_dircount, $lv2);
			push(@chd, { 'name' => 'cache_dir',
				     'values' => [ $dir, $size, $lv1, $lv2 ] });
			}
		else {
			next if (!$dir);
			&check_error(\&check_dir, $dir);
			push(@chd, { 'name' => 'cache_dir',
				     'values' => [ $dir ] });
			}
		}
	if (!@chd) {
		&error($text{'scache_emsg0'});
		}
	&save_directive($conf, "cache_dir", \@chd);
	}
if ($squid_version < 2) {
	&save_opt("swap_level1_dirs", \&check_dircount, $conf);
	&save_opt("swap_level2_dirs", \&check_dircount, $conf);
	&save_opt("store_avg_object_size", \&check_objsize, $conf);
	}
else {
	&save_opt_bytes("store_avg_object_size", $conf);
	}
&save_opt("store_objects_per_bucket", \&check_bucket, $conf);

&flush_file_lines();
&unlock_file($config{'squid_conf'});
&webmin_log("mem", undef, undef, \%in);
&redirect("");

sub check_size
{
return $_[0] =~ /^\d+$/ ? undef : &text('smem_emsg1',$_[0]);
}

sub check_high
{
return $_[0] =~ /^\d+$/ && $_[0] > 0 && $_[0] <= 100
		? undef : &text('smem_emsg2',$_[0]);
}

sub check_low
{
return $_[0] =~ /^\d+$/ && $_[0] > 0 && $_[0] <= 100
		? undef : &text('smem_emsg3',$_[0]);
}

sub check_obj_size
{
return $_[0] =~ /^\d+$/ ? undef : &text('smem_emsg4',$_[0]);
}

  0707010000ebb4000081e40000000000000002000000013ac0389e00000610000000200000000000000000000000000000001c00000003reloc/squid/save_sports.cgi   #!/usr/local/bin/perl
# save_sports.cgi
# Save simple ports and other networking options

require './squid-lib.pl';
&ReadParse();
&lock_file($config{'squid_conf'});
$conf = &get_config();
$whatfailed = $text{'sport_ftspo'};

if ($squid_version >= 2.3) {
	for($i=0; defined($port = $in{"port_$i"}); $i++) {
		next if (!$port);
		$port =~ /^\d+$/ || &error("'$port' is not a valid port");
		if ($in{"addr_def_$i"}) {
			push(@ports, { 'name' => 'http_port',
				       'values' => [ $port ] } );
			}
		else {
			$addr = $in{"addr_$i"};
			gethostbyname($addr) || &check_ipaddress($addr) ||
				&error("'$addr' is not a valid proxy address");
			push(@ports, { 'name' => 'http_port',
				       'values' => [ "$addr:$port" ] } );
			}
		}
	&save_directive($conf, 'http_port', \@ports);
	}
else {
	&save_opt("http_port", \&check_port, $conf);
	&save_opt("tcp_incoming_address", \&check_address, $conf);
	}

&save_opt("dns_testnames", undef, $conf);
&save_opt("httpd_accel_host", undef, $conf);
&save_opt("httpd_accel_port", undef, $conf);
&save_choice("httpd_accel_with_proxy", undef, $conf);
&save_choice("httpd_accel_uses_host_header", undef, $conf);

&flush_file_lines();
&unlock_file($config{'squid_conf'});
&webmin_log("ports", undef, undef, \%in);
&redirect("");

sub check_port
{
return $_[0] =~ /^\d+$/ ? undef : &text('sport_emsg1',$_[0]);
}

sub check_address
{
return &check_ipaddress($_[0]) || gethostbyname($_[0]) ? undef :
	&text('sport_emsg2',$_[0]);

}

sub check_bufsize
{
return $_[0] =~ /^\d+$/ ? undef : &text('sport_emsg3',$_[0]);
}

0707010000ebb5000081e40000000000000002000000013ac0389e000003c1000000200000000000000000000000000000001a00000003reloc/squid/save_user.cgi #!/usr/local/bin/perl
# save_user.cgi
# Save, create or delete a proxy user

require './squid-lib.pl';
&ReadParse();
$conf = &get_config();
$file = &find_config("proxy_auth", $conf)->{'values'}->[0];
&lock_file($file);
@users = &list_auth_users($file);

$user = $users[$in{'index'}];
if ($in{'delete'}) {
	&replace_file_line($file, $user->{'line'});
	}
else {
	$whatfailed = $text{'suser_ftsu'};
	$in{'user'} =~ /^[^:\s]+$/ || &error($text{'suser_emsg1'});
	$salt = substr(time(), -2);
	if ($in{'new'}) {
		open(FILE, ">>$file");
		print FILE $in{'user'},":",crypt($in{'pass'}, $salt),"\n";
		close(FILE);
		}
	else {
		$pass = $in{'pass_def'} ? $user->{'pass'}
					: crypt($in{'pass'}, $salt);
		&replace_file_line($file, $user->{'line'},
				   "$in{'user'}:$pass\n");
		}
	}
&unlock_file($file);
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
	    'user', $in{'user'} ? $in{'user'} : $user->{'user'});
&redirect("edit_auth.cgi");

   0707010000ebb6000081a40000000000000002000000013ac0389e00002ed2000000200000000000000000000000000000001900000003reloc/squid/squid-lib.pl  # squid-lib.pl
# Functions for configuring squid.conf

do '../web-lib.pl';
&init_config();
do './parser-lib.pl';
%access = &get_module_acl();

# Get the squid version
if (open(VERSION, "$module_config_directory/version")) {
	chop($squid_version = <VERSION>);
	close(VERSION);
	}

# icons_table(&links, &titles, &icons)
sub icons_table
{
local($i);
print "<table width=100% cellpadding=5> <tr>\n";
for($i=0; $i<@{$_[0]}; $i++) {
	if ($i%4 == 0) { print "<tr>\n"; }
	print "<td width=25% align=center valign=top>\n";
	&generate_icon($_[2]->[$i], $_[1]->[$i], $_[0]->[$i]);
	print "</td>\n";
        if ($i%4 == 3) { print "</tr>\n"; }
        }
while($i++%4) { print "<td width=25%></td>\n"; }
print "</table><p>\n";
}


# choice_input(text, name, &config, default, [display, option]+)
# Display a number of radio buttons for selecting some option
sub choice_input
{
local($v, $vv, $rv, $i);
$v = &find_config($_[1], $_[2]);
$vv = $v ? $v->{'value'} : $_[3];
$rv = "<td><b>$_[0]</b></td> <td valign=top>";
for($i=4; $i<@_; $i+=2) {
	$rv .= "<input type=radio name=$_[1] value=\"".$_[$i+1]."\" ".
		($vv eq $_[$i+1] ? "checked" : "")."> $_[$i]\n";
	}
return $rv."</td>\n";
}

# select_input(text, name, &config, default, [display, option]+)
# Like choice_input, but uses a drop-down select field
sub select_input
{
local($v, $vv, $rv, $i);
$v = &find_config($_[1], $_[2]);
$vv = $v ? $v->{'value'} : $_[3];
$rv = "<td><b>$_[0]</b></td> <td valign=top><select name=$_[1]>";
for($i=4; $i<@_; $i+=2) {
	$rv .= "<option value=\"".$_[$i+1]."\" ".
		($vv eq $_[$i+1] ? "selected" : "")."> $_[$i]\n";
	}
return $rv."</select></td>\n";
}

# save_choice(name, default, &config)
# Save a selection from choice_input()
sub save_choice
{
if ($in{$_[0]} eq $_[1]) { &save_directive($_[2], $_[0], [ ]); }
else { &save_directive($_[2], $_[0], [{ 'name' => $_[0],
					'values' => [ $in{$_[0]} ] }]); }
}

# list_input(text, name, &config, type, [default])
# Display a list of values
sub list_input
{
local($v, $rv, @av);
foreach $v (&find_config($_[1], $_[2])) {
	push(@av, @{$v->{'values'}});
	}
if ($_[4]) {
	$opt = sprintf "<input type=radio name=$_[1]_def value=1 %s> $_[4]\n",
		@av ? "" : "checked";
	$opt .= sprintf "<input type=radio name=$_[1]_def value=0 %s>\n",
		@av ? "checked" : "";
	}
if ($_[3] == 0) {
	# text area
	$rv = "<td valign=top><b>$_[0]</b></td> <td valign=top>";
	if ($opt) { $rv .= "$opt Listed..<br>\n"; }
	$rv .= "<textarea name=$_[1] rows=3 cols=15>".
		join("\n", @av)."</textarea></td>\n";
	}
else {
	# one long text field
	$rv = "<td valign=top><b>$_[0]</b></td> <td colspan=3 valign=top>$opt";
	$rv .= "<input name=$_[1] size=50 value=\"".join(' ',@av)."\"></td>\n";
	}
return $rv;
}

# save_list(name, &checkfunc, &config)
sub save_list
{
local($v, @vals, $err);
if (!$in{"$_[0]_def"}) {
	@vals = split(/\s+/, $in{$_[0]});
	if ($_[1]) {
		foreach $v (@vals) {
			&check_error($_[1], $v);
			}
		}
	}
if (@vals) { &save_directive($_[2], $_[0],
		[{ 'name' => $_[0], values => \@vals }]); }
else { &save_directive($_[2], $_[0], [ ]); }
}

# check_error(&function, value)
sub check_error
{
return if (!$_[0]);
local $err = &{$_[0]}($_[1]);
if ($err) { &error($err); }
}

# address_input(text, name, &config, type)
# Display a text area for entering 0 or more addresses
sub address_input
{
local($v, $rv, @av);
foreach $v (&find_config($_[1], $_[2])) {
	push(@av, @{$v->{'values'}});
	}
if ($_[3] == 0) {
	# text area
	$rv = "<td valign=top><b>$_[0]</b></td> <td valign=top>";
	$rv .= "<textarea name=$_[1] rows=3 cols=15>".
		join("\n", @av)."</textarea></td>\n";
	}
else {
	# one long text field
	$rv = "<td valign=top><b>$_[0]</b></td> <td colspan=3 valign=top>";
	$rv .= "<input name=$_[1] size=50 value=\"".join(' ',@av)."\"></td>\n";
	}
return $rv;
}

# save_address(name, config)
sub save_address
{
local($addr, @vals);
foreach $addr (split(/\s+/, $in{$_[0]})) {
	&check_ipaddress($addr) || &error(&text('lib_emsg1',$addr));
	push(@vals, $addr);
	}
if (@vals) { &save_directive($_[1], $_[0],
		[{ 'name' => $_[0], values => \@vals }]); }
else { &save_directive($_[1], $_[0], [ ]); }
}

# opt_input(text, name, &config, default, size, units)
# Display an optional field for entering something
sub opt_input
{
local($v, $rv);
$v = &find_config($_[1], $_[2]);
$rv = "<td valign=top><b>$_[0]</b></td> <td valign=top nowrap";
$rv .= $_[4] > 30 ? " colspan=3>\n" : ">\n";
$rv .= sprintf "<input type=radio name=$_[1]_def value=1 %s> $_[3]\n",
	$v ? "" : "checked";
$rv .= sprintf "<input type=radio name=$_[1]_def value=0 %s> ",
	$v ? "checked" : "";
$rv .= sprintf "<input name=$_[1] size=$_[4] value=\"%s\"> %s</td>\n",
	$v ? $v->{'value'} : "", $_[5];
return $rv;
}

# save_opt(name, &function, &config)
# Save an input from opt_input()
sub save_opt
{
if ($in{"$_[0]_def"}) { &save_directive($_[2], $_[0], [ ]); }
else {
	&check_error($_[1], $in{$_[0]});
	local $dir = { 'name' => $_[0], 'values' => [ $in{$_[0]} ] };
	&save_directive($_[2], $_[0], [ $dir ]);
	}
}

# opt_time_input(text, name, &config, default, size)
sub opt_time_input
{
local($v, $rv, $u, %ts );
%ts = (	"second"=>	$text{"lib_seconds"},
	"minute"=>	$text{"lib_minutes"},
	"hour"=>	$text{"lib_hours"},
	"day"=>		$text{"lib_days"},
	"week"=>	$text{"lib_weeks"},
	"fortnight"=>	$text{"lib_fortnights"},
	"month"=>	$text{"lib_months"},
	"year"=>	$text{"lib_years"},
	"decade"=>	$text{"lib_decades"} );
$v = &find_config($_[1], $_[2]);
$rv = "<td valign=top><b>$_[0]</b></td> <td valign=top nowrap>\n";
$rv .= sprintf "<input type=radio name=$_[1]_def value=1 %s> $_[3]\n",
	$v ? "" : "checked";
$rv .= sprintf "<input type=radio name=$_[1]_def value=0 %s> ",
	$v ? "checked" : "";
$rv .= sprintf "<input name=$_[1] size=$_[4] value=\"%s\">\n",
	$v ? $v->{'values'}->[0] : "";
$rv .= "<select name=$_[1]_u>\n";
foreach $u (keys %ts) {
	$rv .= sprintf "<option value=$u %s>$ts{$u}\n",
		$v && $v->{'values'}->[1] =~ /^$u/ ? "selected" : "";
	}
$rv .= "</select></td>\n";
return $rv;
}

# save_opt_time(name, &config)
sub save_opt_time
{
local %ts = ( "second"=>      $text{"lib_seconds"},
        "minute"=>      $text{"lib_minutes"},
        "hour"=>        $text{"lib_hours"},
        "day"=>         $text{"lib_days"},
        "week"=>        $text{"lib_weeks"},
        "fortnight"=>   $text{"lib_fortnights"},
        "month"=>       $text{"lib_months"},
        "year"=>        $text{"lib_years"},
        "decade"=>      $text{"lib_decades"} );

if ($in{"$_[0]_def"}) { &save_directive($_[1], $_[0], [ ]); }
elsif ($in{$_[0]} !~ /^[0-9\.]+$/) {
	&error(&text('lib_emsg2', $in{$_[0]}, $ts{$in{"$_[0]_u"}}) );
	}
else {
	local $dir = { 'name' => $_[0],
		       'values' => [ $in{$_[0]}, $in{"$_[0]_u"} ] };
	&save_directive($_[1], $_[0], [ $dir ]);
	}
}

# opt_bytes_input(text, name, &config, default, size)
sub opt_bytes_input
{
local($v, $rv, $u, %ss);
%ss = (	"KB"=>	$text{'lib_kb'},
	"MB"=>	$text{'lib_mb'},
	"GB"=>	$text{'lib_gb'} );
$v = &find_config($_[1], $_[2]);
$rv = "<td valign=top><b>$_[0]</b></td> <td valign=top nowrap>\n";
$rv .= sprintf "<input type=radio name=$_[1]_def value=1 %s> $_[3]\n",
	$v ? "" : "checked";
$rv .= sprintf "<input type=radio name=$_[1]_def value=0 %s> ",
	$v ? "checked" : "";
$rv .= sprintf "<input name=$_[1] size=$_[4] value=\"%s\">\n",
	$v ? $v->{'values'}->[0] : "";
$rv .= "<select name=$_[1]_u>\n";
foreach $u (keys %ss) {
	$rv .= sprintf "<option value=$u %s>$ss{$u}\n",
		$v && $v->{'values'}->[1] eq $u ? "selected" : "";
	}
$rv .= "</select></td>\n";
return $rv;
}

# save_opt_bytes(name, &config)
sub save_opt_bytes
{
local %ss = ( "KB"=>  $text{'lib_kb'},
        "MB"=>  $text{'lib_mb'},
        "GB"=>  $text{'lib_gb'} );

if ($in{"$_[0]_def"}) { &save_directive($_[1], $_[0], [ ]); }
elsif ($in{$_[0]} !~ /^[0-9\.]+$/) {
	&error(&text('lib_emsg3', $in{$_[0]}, $ss{$in{"$_[0]_u"}}) );
	}
else {
	local $dir = { 'name' => $_[0],
		       'values' => [ $in{$_[0]}, $in{"$_[0]_u"} ] };
	&save_directive($_[1], $_[0], [ $dir ]);
	}
}

%acl_types = ("src", $text{'lib_aclca'},
	      "dst", $text{'lib_aclwsa'},
	      "srcdomain", $text{'lib_aclch'},
	      "dstdomain", $text{'lib_aclwsh'},
	      "time", $text{'lib_acldat'},
	      "url_regex", $text{'lib_aclur'},
	      "urlpath_regex", $text{'lib_aclupr'},
	      "port", $text{'lib_aclup'},
	      "proto", $text{'lib_aclup1'},
	      "method", $text{'lib_aclrm'},
	      "browser", $text{'lib_aclbr'},
	      "user", $text{'lib_aclpl'},
	      "arp", $text{'lib_aclarp'} );
if ($squid_version >= 2.0) {
	$acl_types{'src_as'} = $text{'lib_aclsan'};
	$acl_types{'dst_as'} = $text{'lib_acldan'};
	$acl_types{'proxy_auth'} = $text{'lib_aclea'};
	$acl_types{'srcdom_regex'} = $text{'lib_aclcr'};
	$acl_types{'dstdom_regex'} = $text{'lib_aclwsr'};
	}
if ($squid_version >= 2.2) {
	$acl_types{'ident'} = $text{'lib_aclru'};
	$acl_types{'myip'} = $text{'lib_aclpia'};
	delete($acl_types{'user'});
	}
if ($squid_version >= 2.3) {
	$acl_types{'maxconn'} = $text{'lib_aclmc'};
	$acl_types{'myport'} = $text{'lib_aclpp'};
	$acl_types{'snmp_community'} = $text{'lib_aclsc'};
	}
if ($squid_version >= 2.4) {
	$acl_types{'req_mime_type'} = $text{'lib_aclrmt'};
	$acl_types{'proxy_auth_regex'} = $text{'lib_aclear'};
	}

# restart_button()
# Returns HTML for a link to put in the top-right corner of every page
sub restart_button
{
local($conf, $pidstruct, $pidfile, $pid, $args);
$conf = &get_config();
if ($pidstruct = &find_config("pid_filename", $conf)) {
	$pidfile = $pidstruct->{'values'}->[0];
	}
else { $pidfile = $config{'pid_file'}; }
if (open(PID, $pidfile)) {
	<PID> =~ /(\d+)/; $pid = $1;
	close(PID);
	}
$args = "redir=".&urlize(&this_url())."&pid=$pid";
if ($pid && kill(0, $pid)) {
	return "<a href=\"restart.cgi?$args\">$text{'lib_buttac'}</a><br>\n".
	       "<a href=\"stop.cgi?$args\">$text{'lib_buttss'}</a>\n";
	}
else {
	return "<a href=\"start.cgi?$args\">$text{'lib_buttss1'}</a><br>\n";
	}
close(PID);
}

# this_url()
# Returns the URL in the apache directory of the current script
sub this_url
{
local($url);
$url = $ENV{'SCRIPT_NAME'};
if (defined($ENV{'QUERY_STRING'})) { $url .= "?$ENV{'QUERY_STRING'}"; }
return $url;
}

# list_auth_users(file)
sub list_auth_users
{
local(@rv, $lnum); $lnum = 0;
open(USERS, $_[0]);
while(<USERS>) {
	if (/^([^:]+):(\S+)/) {
		push(@rv, { 'user' => $1, 'pass' => $2, 'line' => $lnum });
		}
	$lnum++;
	}
close(USERS);
return @rv;
}

# get_squid_user(&config)
# Returns the effective user and group (if any)
sub get_squid_user
{
if ($squid_version < 2) {
	local $ceu = &find_config("cache_effective_user", $_[0]);
	if ($ceu) { return ($ceu->{'values'}->[0], $ceu->{'values'}->[1]); }
	return (undef, undef);
	}
else {
	local $ceu = &find_config("cache_effective_user", $_[0]);
	local $ceg = &find_config("cache_effective_group", $_[0]);
	return ($ceu->{'values'}->[0], $ceg ? $ceg->{'values'}->[0]
					    : $ceu->{'values'}->[1]);
	}
}

# chown_files(user, group, config)
# Change ownership of all squid log and cache directories
sub chown_files
{
local(@list, $pidstruct, $pidfile);
@list = ( $config{'log_dir'} );

# add pidfile
if ($str = &find_config("pid_filename", $_[2])) {
	$pidfile = $str->{'values'}->[0];
	}
else { $pidfile = $config{'pid_file'}; }
push(@list, $pidfile);

# add other log directories
foreach $d ("cache_access_log","cache_log","cache_store_log","cache_swap_log") {
	if (($str = &find_config($d, $_[2])) &&
	    $str->{'values'}->[0] =~ /^(\S+)\/[^\/]+$/) {
		push(@list, $1);
		}
	}

# add cache directories
if (@str = &find_config("cache_dir", $_[2])) {
	foreach $str (@str) {
		push(@list, $str->{'values'}->[0]);
		}
	}
else { push(@list, $config{'cache_dir'}); }
system("chown -Rf $_[0]:$_[1] ".join(" ",@list)." >/dev/null 2>&1");
}

# can_access(file)
sub can_access
{
local @f = grep { $_ ne '' } split(/\//, $_[0]);
return 1 if ($access{'root'} eq '/');
local @a = grep { $_ ne '' } split(/\//, $access{'root'});
local $i;
for($i=0; $i<@a; $i++) {
	return 0 if ($a[$i] ne $f[$i]);
	}
return 1;
}

1;

  0707010000ebb7000081e40000000000000002000000013ac0389e00000368000000200000000000000000000000000000001600000003reloc/squid/start.cgi #!/usr/local/bin/perl
# start.cgi
# Start squid

require './squid-lib.pl';
use POSIX;
&ReadParse();
$whatfailed = $text{'start_ftsq'};
$temp = &tempname();
if ($config{'squid_start'}) {
	# Use a start script
	$rv = &system_logged("$config{'squid_start'} >$temp 2>&1 </dev/null");
	sleep(3);
	$errs = `cat $temp`;
	unlink($temp);
	if ($errs && $errs =~ /\d+\/\d+\/\d+/) {
		&system_logged("$config{'squid_stop'} >/dev/null 2>&1 </dev/null");
		&error("<pre>$errs</pre>");
		}
	}
else {
	# Run the squid executable directly
	&system_logged("cd / ; $config{'squid_path'} -sY -f $config{'squid_conf'} >$temp 2>&1 </dev/null &");
	sleep(3);
	$errs = `cat $temp`;
	unlink($temp);
	if ($errs) {
		&backquote_logged("$config{'squid_path'} -k shutdown -f $config{'squid_conf'} 2>&1 </dev/null");
		&error("<pre>$errs</pre>");
		}
	}
&webmin_log("start");
&redirect($in{'redir'});

0707010000ebb8000081e40000000000000002000000013ac0389e00000276000000200000000000000000000000000000001500000003reloc/squid/stop.cgi  #!/usr/local/bin/perl
# stop.cgi
# Stop the running squid process

require './squid-lib.pl';
&ReadParse();
$whatfailed = $text{'stop_ftsq'};
if ($config{'squid_stop'}) {
	# Use a stop script
	$out = &backquote_logged("$config{'squid_stop'} 2>&1");
	if ($out && $out =~ /\d+\/\d+\/\d+/) {
		&error("<pre>$out</pre>");
		}
	}
else {
	# Run the squid executable directly
	$out = &backquote_logged("$config{'squid_path'} -f $config{'squid_conf'} -k shutdown 2>&1");
	if ($out) { &error("<pre>$out</pre>"); }
	}
for($i=0; $i<40; $i++) {
	if (!kill(0, $in{'pid'})) { last; }
	sleep(1);
	}
&webmin_log("stop");
&redirect($in{'redir'});

  0707010007329f000041ed0000000000000001000000053ac03c8a00000000000000200000000000000000000000000000000d00000003reloc/status  070701000732a0000081a40000000000000002000000013ac038b90000035a000000200000000000000000000000000000001f00000003reloc/status/apache-monitor.pl    # apache-monitor.pl
# Monitor the apache server on this host

# Check the PID file to see if apache is running
sub get_apache_status
{
&foreign_require($_[1], "apache-lib.pl");
return { 'up' => -1 } if (!&foreign_check($_[1]));
local %aconfig = &foreign_config($_[1]);
return { 'up' => -1 } if (!-x $aconfig{'httpd_path'});
local $conf = &foreign_call($_[1], "get_config");
local $str = &foreign_call($_[1], "find_directive_struct", "PidFile", $conf);
local $file = $str ? $str->{'words'}->[0] : "logs/httpd.pid";
$file = &foreign_call($_[1], "server_root", $file, $conf);
if (open(PID, $file) && <PID> =~ /(\d+)/ && kill(0, $1)) {
	close(PID);
	local @st = stat($file);
	return { 'up' => 1,
		 'desc' => &text('up_since', scalar(localtime($st[9]))) };
	}
else {
	return { 'up' => 0 };
	}
}

sub parse_apache_dialog
{
&depends_check($_[0], "apache");
}

1;

  070701000732a1000081a40000000000000002000000013ac038b90000037c000000200000000000000000000000000000001e00000003reloc/status/bind8-monitor.pl # bind8-monitor.pl
# Monitor the BIND DNS server on this host

# Check the PID file to see if apache is running
sub get_bind8_status
{
&foreign_require($_[1], "bind8-lib.pl");
local %bconfig = &foreign_config($_[1]);
return { 'up' => -1 } if (!-r $bconfig{'chroot'}.$bconfig{'named_conf'});
local $conf = &foreign_call($_[1], "get_config");
local $opts = &foreign_call($_[1], "find", "options", $conf);
local $pidopt = &foreign_call($_[1], "find", "pid-file", $opts->{'members'});
local $file = $pidopt ? $pidopt->{'value'} :
	      $bconfig{'pid_file'} ? $bconfig{'pid_file'} :
	      "/var/run/named.pid";

if (open(PID, $file) && <PID> =~ /(\d+)/ && kill(0, $1)) {
	close(PID);
	local @st = stat($file);
	return { 'up' => 1,
		 'desc' => &text('up_since', scalar(localtime($st[9]))) };
	}
else {
	return { 'up' => 0 };
	}
}

sub parse_bind8_dialog
{
&depends_check($_[0], "bind8");
}

1;

070701000732a2000081a40000000000000002000000013ac038b90000000f000000200000000000000000000000000000001400000003reloc/status/config   index_status=1
 070701000732a6000081a40000000000000002000000013ac038b900000022000000200000000000000000000000000000002000000003reloc/status/config-corel-linux   index_status=1
ping_cmd=ping -c 1
  070701000732a7000081a40000000000000002000000013ac038b900000022000000200000000000000000000000000000002100000003reloc/status/config-debian-linux  index_status=1
ping_cmd=ping -c 1
  070701000732a8000081a40000000000000002000000013ac038b900000022000000200000000000000000000000000000001c00000003reloc/status/config-freebsd   index_status=1
ping_cmd=ping -c 1
  070701000732a9000081a40000000000000002000000013ac038b90000001d000000200000000000000000000000000000001900000003reloc/status/config-hpux  index_status=1
ping_cmd=ping
   070701000732aa000081a40000000000000002000000013ac038b900000022000000200000000000000000000000000000001f00000003reloc/status/config-open-linux    index_status=1
ping_cmd=ping -c 1
  070701000732ab000081a40000000000000002000000013ac038b900000022000000200000000000000000000000000000002100000003reloc/status/config-redhat-linux  index_status=1
ping_cmd=ping -c 1
  070701000732ac000081a40000000000000002000000013ac038b900000022000000200000000000000000000000000000002400000003reloc/status/config-slackware-linux   index_status=1
ping_cmd=ping -c 1
  070701000732ad000081a40000000000000002000000013ac038b90000001d000000200000000000000000000000000000001c00000003reloc/status/config-solaris   index_status=1
ping_cmd=ping
   070701000732ae000081a40000000000000002000000013ac038b900000022000000200000000000000000000000000000001f00000003reloc/status/config-suse-linux    index_status=1
ping_cmd=ping -c 1
  070701000732af000081a40000000000000002000000013ac038b900000022000000200000000000000000000000000000002000000003reloc/status/config-turbo-linux   index_status=1
ping_cmd=ping -c 1
  070701000732b0000081a40000000000000002000000013ac038b90000007d000000200000000000000000000000000000001900000003reloc/status/config.info  index_status=Status to display in list,1,1-Current status,0-From last scheduled check
ping_cmd=Command to ping a host,3,None
   070701000732b1000081a40000000000000002000000013ac038b900000092000000200000000000000000000000000000001c00000003reloc/status/config.info.es   index_status=Estado a mostrar en la lista,1,1-Estado actual,0-Del 鷏timo chequeo planificado
ping_cmd=Comando para hecer ping a m醧uina,3,Ninguno
  070701000732b2000081a40000000000000002000000013ac038b90000007d000000200000000000000000000000000000001c00000003reloc/status/config.info.nl   index_status=Status to display in list,1,1-Current status,0-From last scheduled check
ping_cmd=Command to ping a host,3,None
   070701000732b3000081a40000000000000002000000013ac038b900000092000000200000000000000000000000000000001c00000003reloc/status/config.info.pl   index_status=Stan pokazywany na li禼ie,1,1-Stan bie勘cy,0-Z&nbsp;ostatniego regularnrgo sprawdzenia
ping_cmd=Polecenie do pingowania hosta,3,Brak
  070701000732b8000081a40000000000000002000000013ac038b900000093000000200000000000000000000000000000001c00000003reloc/status/config.info.sv   index_status=Status som ska visas i listan,1,1-Aktuell status,0-Fr錸 senaste schemalagda kontroll
ping_cmd=Kommando f鰎 att pinga en dator,3,Inget
 070701000732fd000081a40000000000000002000000013ac038b90000007d000000200000000000000000000000000000001f00000003reloc/status/config.info.zh_CN    index_status=Status to display in list,1,1-Current status,0-From last scheduled check
ping_cmd=Command to ping a host,3,None
   070701000732fe000081a40000000000000002000000013ac038b900000244000000200000000000000000000000000000001e00000003reloc/status/dhcpd-monitor.pl # dhcpd-monitor.pl
# Monitor the DHCP server on this host

# Check the PID file to see if DHCPd is running
sub get_dhcpd_status
{
&foreign_require($_[1], "dhcpd-lib.pl");
local %dconfig = &foreign_config($_[1]);
return { 'up' => -1 } if (!-r $dconfig{'dhcpd_conf'});
if (open(PID, $dconfig{'pid_file'}) && <PID> =~ /(\d+)/ && kill(0, $1)) {
	close(PID);
	local @st = stat($dconfig{'pid_file'});
	return { 'up' => 1,
		 'desc' => &text('up_since', scalar(localtime($st[9]))) };
	}
else {
	return { 'up' => 0 };
	}
}

sub parse_dhcpd_dialog
{
&depends_check($_[0], "dhcpd");
}

1;

070701000732ff000081a40000000000000002000000013ac038b900000264000000200000000000000000000000000000002100000003reloc/status/dnsadmin-monitor.pl  # dnsadmin-monitor.pl
# Monitor the BIND 4 DNS server on this host

# Check the PID file to see if BIND is running
sub get_dnsadmin_status
{
&foreign_require($_[1], "dns-lib.pl");
local %dconfig = &foreign_config($_[1]);
return { 'up' => -1 } if (!-r $dconfig{'named_boot_file'});
if (open(PID, $dconfig{'named_pid_file'}) && <PID> =~ /(\d+)/ && kill(0, $1)) {
	close(PID);
	local @st = stat($dconfig{'named_pid_file'});
	return { 'up' => 1,
		 'desc' => &text('up_since', scalar(localtime($st[9]))) };
	}
else {
	return { 'up' => 0 };
	}
}

sub parse_dnsadmin_dialog
{
&depends_check($_[0], "dnsadmin");
}

1;

07070100073300000081e40000000000000002000000013ac038b900000e45000000200000000000000000000000000000001a00000003reloc/status/edit_mon.cgi #!/usr/local/bin/perl
# edit_mon.cgi
# Display a form for editing or creating a monitor

require './status-lib.pl';
&foreign_require("servers", "servers-lib.pl");
&ReadParse();
if ($in{'type'}) {
	&header($text{'mon_create'}, "");
	$type = $in{'type'};
	}
else {
	&header($text{'mon_edit'}, "");
	$serv = &get_service($in{'id'});
	$type = $serv->{'type'};
	}
print "<center><font size=+1>",$text{"type_$type"},"</font></center><hr>\n";

print "<form action=save_mon.cgi>\n";
print "<input type=hidden name=type value='$in{'type'}'>\n";
print "<input type=hidden name=id value='$in{'id'}'>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'mon_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

if (-d "../$type") {
	local @st = stat("../$type");
	opendir(DIR, "..");
	foreach $m (readdir(DIR)) {
		local @lst = stat("../$m");
		if (-l "../$m" && $st[1] == $lst[1]) {
			# found a clone
			push(@clones, $m);
			}
		}
	}

print "<tr> <td><b>$text{'mon_desc'}</b></td>\n";
printf "<td><input name=desc size=30 value='%s'></td>\n",
	$in{'type'} ? $text{"type_$type"} : $serv->{'desc'};

if (!$in{'type'}) {
	print "<td><b>$text{'mon_status'}</b></td>\n";
	$stat = &service_status($serv);
	print "<td>",$stat->{'desc'} ? $stat->{'desc'} :
		     $stat->{'up'} == 1 ? $text{'mon_up'} :
		     $stat->{'up'} == -1 ? $text{'mon_not'} :
		 "<font color=#ff0000>$text{'mon_down'}</font>","</td>\n";
	}
print "</tr>\n";

print "<tr> <td><b>$text{'mon_remote'}</b></td>\n";
@servs = grep { $_->{'user'} } &foreign_call("servers", "list_servers");
if (@servs) {
	printf "<td><input type=radio name=remote_def value=1 %s> %s\n",
		$serv->{'remote'} ? '' : 'checked', $text{'mon_local'};
	printf "<input type=radio name=remote_def value=0 %s>\n",
		$serv->{'remote'} ? 'checked' : '';
	print "<select name=remote>\n";
	foreach $s (@servs) {
		printf "<option %s>%s\n",
			$s->{'host'} eq $serv->{'remote'} ? 'selected' : '',
			$s->{'host'};
		}
	print "</select></td>\n";
	}
else {
	print "<td>$text{'mon_local'} ($text{'mon_none'})</td>\n";
	print "<input type=hidden name=remote_def value=1>\n";
	}

print "<td><b>$text{'mon_nosched'}</b></td>\n";
printf "<td><input type=radio name=nosched value=0 %s> %s\n",
	$serv->{'nosched'} ? '' : 'checked', $text{'yes'};
printf "<input type=radio name=nosched value=1 %s> %s</td> </tr>\n",
	$serv->{'nosched'} ? 'checked' : '', $text{'no'};

print "<tr> <td><b>$text{'mon_ondown'}</b></td>\n";
print "<td><input name=ondown size=30 value='$serv->{'ondown'}'></td>\n";

print "<td><b>$text{'mon_onup'}</b></td>\n";
print "<td><input name=onup size=30 value='$serv->{'onup'}'></td> </tr>\n";

if (@clones) {
	print "<tr> <td><b>$text{'mon_clone'}</b></td>\n";
	print "<td><select name=clone>\n";
	local %minfo = &get_module_info($type);
	printf "<option value='' %s> %s\n",
		$serv->{'clone'} ? '' : 'checked', $minfo{'desc'};
	foreach $c (@clones) {
		%minfo = &get_module_info($c);
		printf "<option value=%s %s>%s\n",
			$c, $serv->{'clone'} eq $c ? 'selected' : '',
			$minfo{'desc'};
		}
	print "</select></td> </tr>\n";
	}

do "./${type}-monitor.pl";
$func = "show_${type}_dialog";
if (defined(&$func)) {
	print "<tr> <td colspan=4><hr></td> </tr>\n";
	&$func($serv);
	}

print "</table></td></tr></table>\n";
print "<table width=100%><tr>\n";
if ($in{'type'}) {
	print "<td><input type=submit value='$text{'create'}'></td>\n";
	}
else {
	print "<td><input type=submit value='$text{'save'}'></td>\n";
	print "<td align=right><input type=submit name=delete ",
	      "value='$text{'delete'}'></td>\n";
	}
print "</tr></table></form><hr>\n";
&footer("", $text{'index_return'});

   07070100073301000081e40000000000000002000000013ac038b900000cef000000200000000000000000000000000000001c00000003reloc/status/edit_sched.cgi   #!/usr/local/bin/perl
# edit_sched.cgi
# Configure scheduled checking of services

require './status-lib.pl';
&header($text{'sched_title'}, "");
print "<hr>\n";

print "<form action=save_sched.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'sched_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'sched_mode'}</b></td>\n";
printf "<td><input type=radio name=mode value=1 %s> %s\n",
	$config{'sched_mode'} ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=mode value=0 %s> %s</td>\n",
	$config{'sched_mode'} ? '' : 'checked', $text{'no'};

print "<td><b>$text{'sched_single'}</b></td>\n";
printf "<td><input type=radio name=single value=1 %s> %s\n",
	$config{'sched_single'} ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=single value=0 %s> %s</td> </tr>\n",
	$config{'sched_single'} ? '' : 'checked', $text{'no'};

print "<tr> <td><b>$text{'sched_int'}</b></td>\n";
printf "<td colspan=3><input name=int size=5 value='%s'>\n",
	$config{'sched_int'} ? $config{'sched_int'} : 5;
print "<select name=period>\n";
for($i=0; $i<4; $i++) {
	printf "<option value=%s %s>%s\n",
		$i, $config{'sched_period'} == $i ? 'selected' : '',
		$text{"sched_period_$i"};
	}
print "</select> $text{'sched_offset'}\n";
printf "<input name=offset size=5 value='%d'></td> </tr>\n",
	$config{'sched_offset'};

map { $hours{$_}++ } split(/\s+/, $config{'sched_hours'});
print "<tr> <td valign=top><b>$text{'sched_hours'}</b></td> <td>\n";
for($j=0; $j<24; $j+=6) {
	print "<select name=hours size=6 multiple>\n";
	for($i=$j; $i<$j+6; $i++) {
		printf "<option value=%s %s>%2.2d:00\n",
			$i, !%hours || $hours{$i} ? 'selected' : '', $i;
		}
	print "</select>\n";
	}
print "</td>\n";

map { $days{$_}++ } split(/\s+/, $config{'sched_days'});
print "<td valign=top><b>$text{'sched_days'}</b></td>\n";
print "<td><select name=days size=7 multiple>\n";
for($i=0; $i<7; $i++) {
	printf "<option value=%s %s>%s\n",
		$i, !%days || $days{$i} ? 'selected' : '', $text{"day_$i"};
	}
print "</select></td> </tr>\n";



print "<tr> <td><b>$text{'sched_warn'}</b></td>\n";
printf "<td colspan=3><input type=radio name=warn value=1 %s> %s\n",
	$config{'sched_warn'} ? 'checked' : '', $text{'sched_warn1'};
printf "<input type=radio name=warn value=0 %s> %s</td> </tr>\n",
	$config{'sched_warn'} ? '' : 'checked', $text{'sched_warn0'};

print "<tr> <td><b>$text{'sched_email'}</b></td>\n";
printf "<td colspan=3><input type=radio name=email_def value=1 %s> %s\n",
	$config{'sched_email'} ? '' : 'checked', $text{'sched_none'};
printf "<input type=radio name=email_def value=0 %s>\n",
	$config{'sched_email'} ? 'checked' : "";
printf "<input name=email size=30 value='%s'></td> </tr>\n",
	$config{'sched_email'};

print "<tr> <td><b>$text{'sched_from'}</b></td>\n";
printf "<td colspan=3><input name=from_def type=radio value=1 %s> %s (%s)\n",
	$config{'sched_from'} ? '' : 'checked', $text{'default'}, 'webmin';
printf "<input name=from_def type=radio value=0 %s>\n",
	$config{'sched_from'} ? 'checked' : '';
printf "<input name=from size=30 value='%s'></td> </tr>\n",
	$config{'sched_from'};

print "</table></td></tr></table>\n";
print "<input type=submit value='$text{'save'}'></form>\n";
print "<hr>\n";
&footer("", $text{'index_return'});

 07070100073302000081a40000000000000002000000013ac038b9000001b4000000200000000000000000000000000000001d00000003reloc/status/exec-monitor.pl  # exec-monitor.pl
# Check if some command exits with non-zero status

sub get_exec_status
{
system("($_[0]->{'cmd'}) >/dev/null 2>&1 </dev/null");
return { 'up' => $?==0 ? 1 : 0 };
}

sub show_exec_dialog
{
print "<tr> <td><b>$text{'exec_cmd'}</b></td>\n";
print "<td colspan=3><input name=cmd size=50 value='$_[0]->{'cmd'}'></td>\n";
}

sub parse_exec_dialog
{
$in{'cmd'} || &error($text{'exec_ecmd'});
$_[0]->{'cmd'} = $in{'cmd'};
}

07070100073303000081a40000000000000002000000013ac038b900000658000000200000000000000000000000000000001d00000003reloc/status/file-monitor.pl  # file-monitor.pl
# Check the status of some file

sub get_file_status
{
local @st = stat($_[0]->{'file'});
if ($_[0]->{'test'} == 0) {
	$up = @st ? 1 : 0;
	}
elsif ($_[0]->{'test'} == 1) {
	$up = @st ? 0 : 1;
	}
elsif ($_[0]->{'test'} == 2) {
	$up = $st[7] > $_[0]->{'greater'} ? 1 : 0;
	}
elsif ($_[0]->{'test'} == 3) {
	$up = $st[7] < $_[0]->{'lesser'} ? 1 : 0;
	}
return { 'up' => $up };
}

sub show_file_dialog
{
print "<tr> <td><b>$text{'file_file'}</b></td>\n";
print "<td colspan=3><input name=file size=50 ",
      "value='$_[0]->{'file'}'></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'file_test'}</b></td>\n";
printf "<td><input type=radio name=test value=0 %s> %s<br>\n",
	$_[0]->{'test'} == 0 ? 'checked' : '', $text{'file_test_0'};
printf "<input type=radio name=test value=1 %s> %s<br>\n",
	$_[0]->{'test'} == 1 ? 'checked' : '', $text{'file_test_1'};
printf "<input type=radio name=test value=2 %s> %s\n",
	$_[0]->{'test'} == 2 ? 'checked' : '', $text{'file_test_2'};
printf "<input name=greater size=8 value='%s'> %s<br>\n",
	$_[0]->{'greater'}, $text{'file_bytes'};
printf "<input type=radio name=test value=3 %s> %s\n",
	$_[0]->{'test'} == 3 ? 'checked' : '', $text{'file_test_3'};
printf "<input name=lesser size=8 value='%s'> %s<br>\n",
	$_[0]->{'lesser'}, $text{'file_bytes'};
print "</td> </tr>\n";
}

sub parse_file_dialog
{
$in{'file'} || &error($text{'file_efile'});
$_[0]->{'file'} = $in{'file'};
$_[0]->{'test'} = $in{'test'};
$in{'greater'} =~ /^\d*$/ && $in{'lesser'} =~ /^\d*$/ ||
	&error($text{'file_esize'});
$_[0]->{'greater'} = $in{'greater'};
$_[0]->{'lesser'} = $in{'lesser'};
}

07070100073304000081a40000000000000002000000013ac038b90000073c000000200000000000000000000000000000001d00000003reloc/status/http-monitor.pl  # http-monitor.pl
# Monitor a remote HTTP server

sub get_http_status
{
# Connect to the server
socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname("tcp")) ||
	return { 'up' => -1 };
local $addr = inet_aton($_[0]->{'host'});
return { 'up' => -1 } if (!$addr);
local $st = time();
$SIG{'ALRM'} = "http_connect_timeout";
alarm($_[0]->{'alarm'} ? $_[0]->{'alarm'} : 10);
connect(SOCK, sockaddr_in($_[0]->{'port'}, $addr)) ||
	return { 'up' => 0 };
select(SOCK); $| = 1; select(STDOUT);

# Request a page
print SOCK "HEAD $_[0]->{'page'} HTTP/1.0\r\n";
print SOCK "Host: $_[0]->{'host'}\r\n";
print SOCK "User-agent: Webmin\r\n";
print SOCK "\r\n";
local $line = <SOCK>;
local $up = $line =~ /^HTTP\/1\..\s+200\s+/ ? 1 : 0;
close(SOCK);
alarm(0);
return { 'up' => $up,
	 'time' => time() - $st };
}

sub http_connect_timeout
{
}

sub show_http_dialog
{
print "<tr> <td><b>$text{'http_url'}</b></td>\n";
printf "<td><input name=url size=40 value='%s'></td>\n",
 $_[0]->{'host'} ? "http://$_[0]->{'host'}:$_[0]->{'port'}$_[0]->{'page'}"
		 : "http://";

print "<td><b>$text{'http_alarm'}</b></td>\n";
printf "<td><input type=radio name=alarm_def value=1 %s> %s\n",
	$_[0]->{'alarm'} ? '' : 'checked', $text{'default'};
printf "<input type=radio name=alarm_def value=0 %s>\n",
	$_[0]->{'alarm'} ? 'checked' : '';
print "<input name=alarm size=5 value='$_[0]->{'alarm'}'></td> </tr>\n";
}

sub parse_http_dialog
{
if ($in{'url'} =~ /^http:\/\/([^:]+):(\d+)(\/.*)$/) {
	$_[0]->{'host'} = $1;
	$_[0]->{'port'} = $2;
	$_[0]->{'page'} = $3;
	}
elsif ($in{'url'} =~ /http:\/\/([^\/]+)(\/.*)$/) {
	$_[0]->{'host'} = $1;
	$_[0]->{'port'} = 80;
	$_[0]->{'page'} = $2;
	}
else {
	&error($text{'http_eurl'});
	}

if ($in{'alarm_def'}) {
	delete($_[0]->{'alarm'});
	}
else {
	$in{'alarm'} =~ /^\d+$/ || &error($text{'http_ealarm'});
	$_[0]->{'alarm'} = $in{'alarm'};
	}
}

07070100074bf5000041ed0000000000000001000000023ac03c8800000000000000200000000000000000000000000000001400000003reloc/status/images   07070100074bf6000081a40000000000000002000000013ac038b90000005b000000200000000000000000000000000000001d00000003reloc/status/images/down.gif  GIF89a      !Made with GIMP !    ,       剰懓稑掟9:c8臹]%N^[S  ; 07070100074bf7000081a40000000000000002000000013ac038b90000081b000000200000000000000000000000000000001d00000003reloc/status/images/icon.gif  GIF89a0 0   >>D灑渘rl乙虋妱ZZ\汉搓赇NNL枛尞z~|缕内捃FFDffd鲻魩拰捕次翁zzt殲準铺骀堞VVT唵剉rt拵孨JLnnl麱BD谮詩帉bbd韭籍铂忖堞b^d蝌霽R\殮攤~勂誓JJL麭BDrvt种蘜^\RRT破蘪jl魱挃抖饥灉适膸帞ⅱ渞rl揪碱铎RNT殩湲~~|破嫁拊JFLjfl拻尪冬灋滄骒V\妴寁vtrnt帋劼录膊怃问藼>D乙詩妼^Zd汉缄觎NNT枛敭FFLffl鲻鼁z|骀銿V\唵孨JTnnt麱BL谮茆怃Ζを螋殮渹倓JJTBBL种証^d侍ⅱrt~~勂颇揶軖挃抖礊灓瑅v|帋屄履膊!Made with GIMP ,    0 0   H盃羶*\劝∶#2偰氚2;_鬬賑懵妠&|Y倗'gxuLf罇>栊 %4洹c	S8vn鐻Sg@">p2@n躼q {╤ 餲N螊禜3#c鷶LX悄戣2`飧1聡
?@楽dI 6!鼒1oB杙y(
9rfLHCZ`Nur鴅 ,q0 尸蜌-K鵂!2?[@" 鑁シ	x 涪iSF2缕6狮挂鍋!Tm栃=  a夹=窣だ$甒_&^x ;(x"t K惸e鋋@ c堋m牎 H"z礼h<`F)t凥rd饑凁Fq 繴9虁$扜<`CZ寑^檕伕& 081G
,"\鉀d0(	魜A(奷{匝唞墫$"	1BHUc級?择陉巀* q 袇
#败@lt( G囫 鴬(~⺻ 剜奥畓x麫 鲜_1０o聬お偄#靵嚙迥M竓茻#剄牵;H遺jC铰2焬m`&P0 挛:悌H卩辽1粕o蕙o 娶B F ; /#iG/襥.<餎昳祚抋dFT 燶	級E7C垐  4C笭溼癆*p衟臧?T*鬼〩聽1?碅E. C
穰T膈| 懪607圅z欄	i0H倚 G緣u\09Px&竿,Y尡6X碆"Td bT<HdA0,駙)恵n炝x0 xdS@`^N)湫=<o爟頿3$澚E| f爜6!yWx@謂@7悺B3XB榓#餞車惒悹8 綻 8 d饐剂駺忻栃(Ａ魡?@, 樎泥.L@!袃h0｝ i缮j2悂d0A0鑑
}Hd腭 u  
2鐲0咐9冊皣0 =P譅檕拎枌L
抾  0萈ぉ頏F$眬|瓺坉鰫%,eXZ橩A4s刯PL喖	~景膄瞍+(&k"s継o.剫n09咨蝪2  ; 07070100074bf8000081a40000000000000002000000013ac038b900000057000000200000000000000000000000000000001c00000003reloc/status/images/not.gif   GIF89a       !Made with GIMP !
  ,       	w蒼 C懳店秃駧|6QqRX*_ ; 07070100074bf9000081a40000000000000002000000013ac038b90000004f000000200000000000000000000000000000001e00000003reloc/status/images/quest.gif GIF89a       !Made with GIMP !
  ,       審罓霠b喚熣弆 ; 07070100074bfa000081a40000000000000002000000013ac038b900000056000000200000000000000000000000000000001b00000003reloc/status/images/up.gif    GIF89a      !Made with GIMP !    ,       剰{ts厷襘寍3: ;  07070100073305000081a40000000000000002000000013ac038b9000007a7000000200000000000000000000000000000001700000003reloc/status/index.cgi    #!/usr/local/bin/perl
# index.cgi
# List all services currently being monitored

require './status-lib.pl';
&header($text{'index_title'}, "", undef, 1, 1);
print "<hr>\n";

@serv = &list_services();
$mid = int((@serv-1) / 2);
$oldstatus = &read_file("$module_config_directory/oldstatus", \%oldstatus);

print "<table width=100%><tr>\n";
print "<td width=50% valign=top>\n";
&service_table(@serv[0 .. $mid]);
print "</td> <td width=50% valign=top>\n";
&service_table(@serv[$mid+1 .. $#serv]) if (@serv > 1);
print "</td></tr></table>\n";

print "<table width=100%><tr>\n";
print "<form action=edit_mon.cgi>\n";
print "<td><input type=submit value='$text{'index_add'}'> <select name=type>\n";
foreach $h (&list_handlers()) {
	printf "<option value=%s>%s\n", $h, $text{"type_$h"};
	}
print "</select></td></form>\n";

print "<form action=edit_sched.cgi>\n";
print "<td align=right><input type=submit value='$text{'index_sched'}'></td>\n";
print "</tr></form></table>\n";

&remote_finished();
print "<hr>\n";
&footer("/", $text{'index'});

sub service_table
{
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'index_desc'}</b></td>\n";
print "<td><b>$text{'index_host'}</b></td>\n";
print $config{'index_status'} || $oldstatus ?
      "<td><b>$text{'index_up'}</b></td> </tr>\n" : "</tr>\n";
foreach $s (@_) {
	print "<tr $cb> <td><a href='edit_mon.cgi?id=$s->{'id'}'>",
	      "$s->{'desc'}</a></td>\n";
	print "<td>",$s->{'remote'} ? $s->{'remote'}
				    : $text{'index_local'},"</td>\n";
	if ($config{'index_status'}) {
		$stat = &service_status($s);
		print "<td><img src=images/",
		      $stat->{'up'} == 1 ? "up.gif" :
		      $stat->{'up'} == -1 ? "not.gif" : "down.gif","></td>\n";
		}
	elsif ($oldstatus) {
		$o = $oldstatus{$s->{'id'}};
		print "<td><img src=images/",
		      $o eq '' ? "quest.gif" :
		      $o == 1 ? "up.gif" :
		      $o == -1 ? "not.gif" : "down.gif","></td>\n";
		}
	print "</tr>\n";
	}
print "</table>\n";
}

 07070100073306000081a40000000000000002000000013ac038b90000015b000000200000000000000000000000000000001e00000003reloc/status/inetd-monitor.pl # inetd-monitor.pl
# Monitor inetd on this host

sub get_inetd_status
{
&foreign_require("proc", "proc-lib.pl");
local %iconfig = &foreign_config($_[1]);
return { 'up' => -1 } if (!-r $iconfig{'inetd_conf_file'});
return { 'up' => &find_named_process('inetd$') ? 1 : 0 };
}

sub parse_inetd_dialog
{
&depends_check($_[0], "inetd", "proc");
}

1;

 07070100075ff7000041ed0000000000000001000000023ac03c8800000000000000200000000000000000000000000000001200000003reloc/status/lang 07070100075ff8000081a40000000000000002000000013ac038b900000ced000000200000000000000000000000000000001500000003reloc/status/lang/en  index_title=System and Server Status
index_name=Service name
index_host=On host
index_desc=Monitoring
index_up=Status
index_local=Local
index_add=Add monitor of type:
index_sched=Scheduled Monitoring
index_return=service list

type_apache=Apache Webserver
type_inetd=Internet and RPC Server
type_xinetd=Extended Internet Server
type_squid=Squid Proxy Server
type_bind8=BIND DNS Server
type_dnsadmin=BIND 4 DNS Server
type_dhcpd=DHCP Server
type_tcp=Remote TCP Service
type_http=Remote HTTP Service
type_sendmail=Sendmail Server
type_postfix=Postfix Server
type_ping=Remote Ping
type_proc=Check Process
type_mysql=MySQL Database Server
type_postgresql=PostgreSQL Database Server
type_samba=Samba Servers
type_nfs=NFS Server
type_exec=Execute Command
type_file=Check File

mon_create=Create Monitor
mon_edit=Edit Monitor
mon_header=Monitor details
mon_desc=Description
mon_remote=Run on host
mon_local=Local
mon_none=No remote servers defined
mon_nosched=Check on schedule?
mon_status=Current status
mon_up=Up
mon_down=Down
mon_not=Not installed
mon_ondown=If monitor goes down, run command
mon_onup=If monitor comes up, run command
mon_clone=Module to monitor
mon_err=Failed to save monitor
mon_edesc=Missing description
mon_elogin=Invalid login for RPC on Webmin server $1
mon_eremote=Webmin server $1 does not support RPC
mon_estatus=Webmin server $1 does not have the System and Server Status module

sched_title=Scheduled Monitoring
sched_header=Scheduled background monitoring options
sched_mode=Scheduled checking enabled?
sched_email=Email status report to
sched_none=Nobody
sched_from=From: address for email
sched_int=Check every
sched_period_0=minutes
sched_period_1=hours
sched_period_2=days
sched_period_3=months
sched_period_4=weeks
sched_offset=with offset
sched_warn=Send email when
sched_warn1=When a service changes status
sched_warn0=When a service goes down
sched_single=Send one email per service?
sched_hours=Run monitor during hours
sched_days=Run monnitor on days
sched_err=Failed to save scheduled monitoring
sched_eemail=Missing email address
sched_eint=Missing or invalid interval
sched_eoffset=Missing or invalid offset
sched_ehours=No hours to run during selected
sched_edays=No days to run on selected

up_since=Up since $1
depends_mod=The module $1 is not installed on your system
depends_os=The module $1 is not supported on your system
depends_remote=The module $1 is not supported on server $2

tcp_host=Host to connect to
tcp_port=Port to connect to
tcp_alarm=Connection timeout
tcp_ehost=Missing or invalid hostname
tcp_eport=Missing or invalid port number
tcp_ealarm=Missing or invalid connection timeout

http_url=URL to request
http_alarm=Connection timeout
http_eurl=Missing or invalid URL
http_ealarm=Missing or invalid connection timeout

ping_host=Host to ping
ping_ehost=Missing or invalid hostname
ping_econfig=No ping command has been set in Module Config

proc_pid=Running with PID $1
proc_cmd=Command to check for
proc_ecmd=Missing command

exec_cmd=Command to check exit status of
exec_ecmd=Missing command

file_file=File to check
file_test=Test to perform
file_test_0=File exists
file_test_1=File does not exist
file_test_2=File is bigger than
file_test_3=File is smaller than
file_bytes=bytes
file_efile=Missing filename to check
file_esize=Invalid file size
   07070100075ff9000081a40000000000000002000000013ac038b900000c12000000200000000000000000000000000000001500000003reloc/status/lang/es  index_title=Estado de Sistema y de Servidor
index_name=Nombre de Servicio
index_host=En m醧uina
index_desc=Monitorizando
index_up=Estado
index_local=Local
index_add=A馻dir monitor de tipo:
index_sched=Monitorizaci髇 Planificada
index_return=lista de servicio

type_apache=Servidor Web de Apache
type_inetd=Servidor de Internet y RPC
type_xinetd=Servidor de Internet Extendido
type_squid=Servidor Proxy Squid
type_bind8=Servidor DNS BIND
type_dnsadmin=Servidor DNS BIND 4
type_dhcpd=Servidor DHCP
type_tcp=Servicio Remoto de TCP
type_http=Servicio remoto de HTTP
type_sendmail=Servidor Sendmail
type_postfix=Servidor Postfix
type_ping=Ping remoto
type_proc=Proceso de Revisi髇
type_mysql=Servidor de Base de Datos MySQL
type_postgresql=Servidor de Base de Datos PostgreSQL
type_samba=Servidores Samba
type_nfs=Servidor NFS
type_exec=Ejecutar Comando

mon_create=Crear Monitor
mon_edit=Editar Monitor
mon_header=Detalles de Monitor
mon_desc=Descripci髇
mon_remote=Ejecutar en m醧uina
mon_local=Local
mon_none=No se han definido servidores remotos
mon_nosched=縍eviso en planificaci髇?
mon_status=Estado actual
mon_up=Activo
mon_down=Desactivado
mon_not=No instalado
mon_err=No pude salvar monitor
mon_edesc=Descripci髇 sin poner
mon_elogin=Login inv醠ido para RPC en servidor Webmin $1
mon_eremote=El servidor Webmin $1 no soporta RPC
mon_estatus=El servidor Webmin $1 no tiene el m骴ulo de Estado de Sistema y Servidor

sched_title=Monitorizaci髇 Planificada
sched_header=Opciones de monitorizaci髇 planificada en segundo plano
sched_mode=縍evisi髇 planificada activada?
sched_email=Estado de Email informa a
sched_from=De: direcci髇 para correo
sched_int=Revisa cada
sched_period_0=minutos
sched_period_1=horas
sched_period_2=d韆s
sched_period_3=meses
sched_period_4=semanas
sched_offset=con desplazamiento
sched_warn=Enviar correo cuando
sched_warn1=Cuando un servicio cambia su estado
sched_warn0=Cuando un servicio se desactiva
sched_single=縀nviar un correo por servicio?
sched_err=No pude salvar monitorizaci髇 planificada
sched_eemail=Direcci髇 de correo sin poner
sched_eint=Intervalo inv醠ido o sin poner
sched_eoffset=Desplazamiento inv醠ido o sin poner

up_since=Activo desde $1
depends_mod=El m骴ulo $1 no est instalado en tu sistema
depends_os=El m骴ulo $1 no est soportado en tu sistema
depends_remote=El m骴ulo $1 no est soportado en servidor $2

tcp_host=M醧uina a conectar a
tcp_port=Puerto a conectar a
tcp_alarm=Tiempo final de conexi髇
tcp_ehost=Nombre de m醧uina inv醠ido o sin poner
tcp_eport=N鷐ero de puerto inv醠ido o sin poner
tcp_ealarm=Tiempo de conexi髇 inv醠ido o sin poner

http_url=URL a requerir
http_alarm=Tiempo de conexi髇 agotado
http_eurl=URL inv醠ida o sin poner
http_ealarm=Tiempo m醲imo de conexi髇 inv醠ido o sin poner

ping_host=M醧uina a hacer ping
ping_ehost=Nombre de m醧uina inv醠ido o sin poner
ping_econfig=No se ha configurado comando de ping en la Configuraci髇 del m骴ulo

proc_pid=Ejecutando con PID $1
proc_cmd=Comando a revisar
proc_ecmd=Comando sin poner

exec_cmd=Comando a revisar su estado de salida
exec_ecmd=Comando sin poner

  07070100075ffa000081e40000000000000002000000013ac038b900000b8e000000200000000000000000000000000000001500000003reloc/status/lang/nl  index_title=Systeem en Server Status
index_name=Dienstnaam
index_host=Op host
index_desc=Monitoren
index_up=Status
index_local=Lokaal
index_add=Voeg monitor toe van type :
index_sched=Gepland Monitoren
index_return=diensten lijst

type_apache=Apache Webserver
type_inetd=Internet en RPC Server
type_xinetd=Uitgebreide Internet Server
type_squid=Squid Proxy Server
type_bind8=BIND DNS Server
type_dnsadmin=BIND 4 DNS Server
type_dhcpd=DHCP Server
type_tcp=Externe TCP Dienst
type_http=Externe HTTP Dienst
type_sendmail=Sendmail Server
type_postfix=Postfix Server
type_ping=Externe Ping
type_proc=Controleer Proces
type_mysql=MySQL Database Server
type_postgresql=PostgreSQL Database Server
type_samba=Samba Servers
type_nfs=NFS Server
type_exec=Voer Commando Uit

mon_create=Voeg Monitor Toe
mon_edit=Bewerk Monitor
mon_header=Monitor details
mon_desc=Omschrijving
mon_remote=Voer uit op host
mon_local=Lokaal
mon_none=geen externe servers gedefinieerd
mon_nosched=Controleren op vaste tijden?
mon_status=Huidige status
mon_up=Actief
mon_down=Inactief
mon_not=Niet geinstalled
mon_err=Fout bij het opslaan van monitor
mon_edesc=Ontbrekende omschrijving
mon_elogin=Ongeldige login voor RPC op Webmin server $1
mon_eremote=Webmin server $1 ondersteund geen RPC
mon_estatus=Webmin server $1 heeft geen System en Server Status module

sched_title=Geplande Monitoring
sched_header=Plan achtergrond monitoring opties
sched_mode=Geplande controle ingeschakeld?
sched_email=Email status rapporteren aan
sched_from=Van: adres voor email
sched_int=Controleer iedere
sched_period_0=minuten
sched_period_1=uur
sched_period_2=dagen
sched_period_3=maanden
sched_period_4=weken
sched_offset=met offset
sched_warn=Stuur email als
sched_warn1=Een diens van status wijzigd
sched_warn0=Een dienst inactief wordt
sched_single=Stuur een email per dienst?
sched_err=Fout bij het opslaan van gepland monitoren
sched_eemail=Ontbrekend email adres
sched_eint=Ontbrekende of ongeldige intervan
sched_eoffset=Ontbrekende of ongeldige offset

up_since=Actief sinds $1
depends_mod=De module $1 is niet geinstalleerd op uw systeem
depends_os=De module $1 wordt niet ondersteund door uw systeem
depends_remote=De module $1 wordt niet ondersteund op server $2

tcp_host=Host om naar te verbinden
tcp_port=Poort om naar te verbinden
tcp_alarm=Verbinding timeout
tcp_ehost=Ontbrekende of ongeldige hostnaam
tcp_eport=Ontbrekend of ongeldig poort nummer
tcp_ealarm=Ontbrekende of ongeldige verbindings timeout

http_url=URL om aan te vragen
http_alarm=Verbinding timeout
http_eurl=Ontbrekende of ongeldige URL
http_ealarm=Ontbrekende of ongeldige verbindings timeout

ping_host=Host om te ping
ping_ehost=Ontbrekende of ongeldige hostnaam
ping_econfig=Er is geen ping commando ingesteld in de Module Configuratie

proc_pid=Draaiend met PID $1
proc_cmd=Commando on te controleren op
proc_ecmd=Ontbrekend command

exec_cmd=Commando om exit status te controleren van
exec_ecmd=Ontbrekend command

  07070100075ffb000081a40000000000000002000000013ac038b900000e69000000200000000000000000000000000000001500000003reloc/status/lang/pl  index_title=Stan systemu i serwer體
index_name=Nazwa us硊gi
index_host=Na ho禼ie
index_desc=Monitorowanie
index_up=Stan
index_local=Lokalnym
index_add=Dodaj monitorowanie:
index_sched=Monitorowanie okresowe
index_return=listy us硊g

type_apache=Serwera WWW Apache
type_inetd=Serwera internetowego i RPC
type_xinetd=Rozszerzonego serwera internetowego
type_squid=Serwera proxy Squid
type_bind8=Serwera DNS BIND
type_dnsadmin=Serwera DNS BIND 4
type_dhcpd=Serwera DHCP
type_tcp=Zdalnej us硊gi TCP
type_http=Zdalnej us硊gi HTTP
type_sendmail=Serwera Sendmail
type_postfix=Serwera Postfix
type_ping=Zdalny ping
type_proc=Sprawdzenie procesu
type_mysql=Serwera baz danych MySQL
type_postgresql=Serwera baz danych PostgreSQL
type_samba=Serwer體 Samby
type_nfs=Serwera NFS
type_exec=Uruchomienie polecenia
type_file=Sprawdzenie pliku

mon_create=Utw髍z monitorowanie
mon_edit=Zmie monitorowanie
mon_header=Dane monitorowania
mon_desc=Opis
mon_remote=Uruchom na ho禼ie
mon_local=Lokalnym
mon_none=nie zdefiniowano zdalnych serwer體
mon_nosched=Sprawdza okresowo?
mon_status=Stan bie勘cy
mon_up=Podniesiony
mon_down=Wy潮czony
mon_not=Nie zainstalowany
mon_ondown=Ko馽z眂 monitorowanie uruchom polecenie
mon_onup=Zaczynaj眂 monitorowanie uruchom polecenie
mon_clone=Monitorowany modu
mon_err=Nie uda硂 si zachowa monitorowania
mon_edesc=Nie podano opisu
mon_elogin=Nieprawid硂wy login dla RPC na serwerze Webmina $1
mon_eremote=Serwer Webmina $1 nie obs硊guje RPC
mon_estatus=Serwer Webmina $1 nie posiada modu硊 <tt>Stan systemu i serwer體</tt>

sched_title=Monitorowanie okresowe
sched_header=Opcje okresowego monitorowania w&nbsp;tle
sched_mode=W潮czone sprawdzanie okresowe?
sched_email=Przes砤 poczt raport o&nbsp;stanie do
sched_none=Nikogo
sched_from=Adres From: dla poczty
sched_int=Sprawdza co
sched_period_0=minut
sched_period_1=godzin
sched_period_2=dni
sched_period_3=miesi阠y
sched_period_4=tygodni
sched_offset=z&nbsp;przesuni阠iem
sched_warn=Przesy砤 wiadomo舵
sched_warn1=Gdy zmieni si stan us硊gi
sched_warn0=Gdy us硊ga zostanie wy潮czona
sched_single=Wysy砤 osobn wiadomo舵 dla ka縟ej us硊gi?
sched_hours=Monitoruj w&nbsp;godzinach
sched_days=Monitoruj w&nbsp;dni
sched_err=Nie uda硂 si zachowa monotorowania okresowego
sched_eemail=Brak adresu e-mail
sched_eint=Brakuj眂y lub niepoprawny okres
sched_eoffset=Brakuj眂e lub niepoprawne przesuni阠ie
sched_ehours=Nie wybrano godzin monitorowania
sched_edays=Nie wybrano dni monitorowania

up_since=Dzia砤 od $1
depends_mod=W&nbsp;systemie nie jest zainstalowany modu $1
depends_os=Tw骿 system nie obs硊guje modu硊 $1
depends_remote=Serwer $2 nie obs硊guje modu硊 $1

tcp_host=Po潮czenie z&nbsp;hostem
tcp_port=Po潮czenie z&nbsp;portem
tcp_alarm=Czas przeterminowania po潮czenia
tcp_ehost=Nie podana lub niepoprawna nazwa hosta
tcp_eport=Nie podany lub niepoprawny numer portu
tcp_ealarm=Nie podany lub niepoprawny czas przeterminowania

http_url=dany URL
http_alarm=Czas przeterminowania po潮czenia
http_eurl=Nie podany lub niepoprawny URL
http_ealarm=Nie podany lub niepoprawny czas przeterminowania

ping_host=Pingowany host
ping_ehost=Nie podana lub niepoprawna nazwa hosta
ping_econfig=Nie podano polecenia pinguj眂ego w&nbsp;konfiguracji modu硊

proc_pid=Dzia砤 z&nbsp;numerem PID $1
proc_cmd=Sprawdzane polecenie
proc_ecmd=Nie podano polecenia

exec_cmd=Polecenie, kt髍ego kod zako馽zenia sprawdza
exec_ecmd=Nie podano polecenia

file_file=Sprawdzany plik
file_test=Wykonywany test
file_test_0=Plik istnieje
file_test_1=Plik nie istnieje
file_test_2=Plik jest wi阫szy ni
file_test_3=Plik jest mniejszy ni
file_bytes=bajt體
file_efile=Nie podano nazwy sprawdzanego pliku
file_esize=Niew砤禼iwy rozmiar pliku
   07070100075ffc000081a40000000000000002000000013ac038b900000c71000000200000000000000000000000000000001500000003reloc/status/lang/sv  index_title=System- och serverstatus
index_name=Tj鋘stenamn
index_host=P dator
index_desc=講ervakar
index_up=Status
index_local=Lokal
index_add=L鋑g till 鰒ervakning av typen
index_sched=Schemalagd 鰒ervakning
index_return=tj鋘stelista

type_apache=Apache Webbserver
type_inetd=Internet- och RPC-server
type_xinetd=Ut鰇ad Internet-server
type_squid=Squid Proxyserver
type_bind8=BIND DNS-server
type_dnsadmin=BIND 4 DNS-server
type_dhcpd=DHCP-server
type_tcp=TCP-tj鋘st p annan dator
type_http=HTTP-tj鋘st p annan dator
type_sendmail=Sendmailserver
type_postfix=Postfix-server
type_ping=Ping p annan dator
type_proc=Kontrollera process
type_mysql=MySQL-databasserver
type_postgresql=PostgreSQL-databasserver
type_samba=Samba-servrar
type_nfs=NFS-server
type_exec=Utf鰎 kommando

mon_create=L鋑g till 鰒ervakning
mon_edit=膎dra 鰒ervakning
mon_header=Uppgifter om 鰒ervakning
mon_desc=Beskrivning
mon_remote=K鰎 p dator
mon_local=Lokal
mon_none=Du har inte angivit n錱ra andra servrar
mon_nosched=Kontrollera enligt schema?
mon_status=Aktuell status
mon_up=Uppe
mon_down=Nere
mon_not=Ej installerad
mon_ondown=Om 鰒ervakningen g錼 ner, k鰎 kommandot
mon_onup=Om 鰒ervakningen startas, k鰎 kommandot
mon_err=Det gick inte att spara 鰒ervakningen
mon_edesc=Det finns ingen beskrivning
mon_elogin=Ogiltig RPC-inloggning p Webmin-server $1
mon_eremote=Webmin-server $1 st鰀er inte RPC
mon_estatus=Webmin-server $1 har inte modulen System- och serverstatus

sched_title=Schemalagd 鰒ervakning
sched_header=Inst鋖lningar f鰎 schemalagd 鰒ervakning i bakgrunden
sched_mode=Schemalagd kontroll aktiv?
sched_email=Skicka statusrapport med e-post till
sched_from=Avs鋘daradress f鰎 rapporterna
sched_int=Kontrollera var
sched_period_0=minut
sched_period_1=timme
sched_period_2=dag
sched_period_3=m錸ad
sched_period_4=vecka
sched_offset=med offset
sched_warn=Skicka e-post
sched_warn1=om en tj鋘st 鋘drar status
sched_warn0=om en tj鋘st g錼 ner
sched_single=Skicka ett e-postbrev per tj鋘st?
sched_err=Det gick inte att spara schemalagd 鰒ervakning
sched_eemail=Du har inte angivit n錱on e-postadress
sched_eint=Kontrollintervall saknas eller 鋜 felaktigt angivet
sched_eoffset=Offset saknas eller 鋜 felaktigt angivet

up_since=Uppe sedan $1
depends_mod=Modulen $1 har inte installerats p systemet
depends_os=Modulen $1 st鰀s inte av systemet
depends_remote=Modulen $1 st鰀s inte av server $2

tcp_host=Dator att koppla upp mot
tcp_port=Port att koppla upp mot
tcp_alarm=Tidsgr鋘s f鰎 uppkoppling
tcp_ehost=Datornamn saknas eller 鋜 felaktigt angivet
tcp_eport=Portnummer saknas eller 鋜 felaktigt angivet
tcp_ealarm=Tidsgr鋘s saknas eller 鋜 felaktigt angiven

http_url=URL att h鋗ta
http_alarm=Tidsgr鋘s f鰎 uppkoppling
http_eurl=URL saknas eller 鋜 felaktigt angiven
http_ealarm=Tidsgr鋘s saknas eller 鋜 felaktigt angiven

ping_host=Dator att pinga
ping_ehost=Datornamn saknas eller 鋜 felaktigt angivet
ping_econfig=Du har inte angivit n錱ot ping-kommando i modulinst鋖lningarna

proc_pid=K鰎 med PID $1
proc_cmd=Kommando att titta efter
proc_ecmd=Du har inte angivit n錱ot kommando

exec_cmd=Kommando som exit-status ska kontrolleras f鰎
exec_ecmd=Du har inte angivit n錱ot kommando

   07070100075ffd000081a40000000000000002000000013ac038b900000825000000200000000000000000000000000000001800000003reloc/status/lang/zh_CN   index_title=系统和服务器的状态
index_name=服务名称
index_host=在客户机
index_desc=监听
index_up=状态
index_local=本地
index_add=增加监视类型:
index_sched=定期监听
index_return=服务列表

type_apache=Apache Web 服务器
type_inetd=Internet 和 RPC 服务器
type_xinetd=扩展 Internet 服务器
type_squid=Squid 代理服务器
type_bind8=BIND DNS 服务器
type_dnsadmin=BIND 4 DNS 服务器
type_dhcpd=DHCP 服务器
type_tcp=远程 TCP 服务器
type_http=远程 HTTP 服务
type_sendmail=Sendmail 服务器
type_ping=Ping 远程
type_proc=检查进程
type_mysql=MySQL 数据库服务器
type_postgresql=PostgreSQL 数据库服务器
type_samba=Samba 服务器
type_nfs=NFS 服务器
type_exec=执行命令

mon_create=创建监听
mon_edit=编辑监听
mon_header=监听详述
mon_desc=描述
mon_remote=在客户机上运行
mon_local=本地
mon_none=没定义远程服务器
mon_nosched=检查列表?
mon_status=当前状态
mon_up=向上
mon_down=向下
mon_not=没有安装
mon_err=保存监听失败
mon_edesc=丢失描述
mon_elogin=在 Webmin 服务器 $1 上无效的 RPC 登陆
mon_eremote=Webmin 服务器 $1 不支持 RPC
mon_estatus=Webmin 服务器 $1 没有系统和服务器状态模块

sched_title=定期的监听
sched_header=定期后台监听选项
sched_mode=能够定期监听?
sched_email=Email 状态汇报到
sched_int=检查全部
sched_period_0=分钟
sched_period_1=小时
sched_period_2=天
sched_period_3=月
sched_period_4=星期
sched_offset=带偏移
sched_warn=何时发送 
sched_warn1=当服务状态改变时
sched_warn0=当服务结束时
sched_err=保存定期监视失败
sched_eemail=丢失 Email 地址
sched_eint=丢失或无效的间隔
sched_eoffset=丢失或无效的偏移量

up_since=自从 $1 以后向上
depends_mod=您的系统没有安装模块$1
depends_os=您的系统不支持模块 $1
depends_remote=服务器 $2 不支持模块 $1

tcp_host=连接的客户机
tcp_port=连接的端口
tcp_alarm=连接时限
tcp_ehost=丢失或无效的客户名
tcp_eport=丢失或无效的端口号
tcp_ealarm=丢失或无效的连接时限

http_url=需要的 URL
http_alarm=连接时限
http_eurl=丢失或无效的 URL
http_ealarm=丢失或无效的连接时限

ping_host=Ping 客户机
ping_ehost=丢失或无效的客户名
ping_econfig=在模块配置中没有设置 Ping 命令

proc_pid=以 PID $1 运行
proc_cmd=检查找命令
proc_ecmd=丢失命令

exec_cmd=用命令查找退出状态
exec_ecmd=丢失命令

   07070100073307000081a40000000000000002000000013ac038b9000000ec000000200000000000000000000000000000001900000003reloc/status/module.info  name=Status
desc=System and Server Status
desc_pl=Stan systemu i&nbsp;serwer體
risk=low medium high
desc_sv=System- och serverstatus
desc_es=Estado de Sistema y de Servidor
desc_zh_CN=系统和服务器的状态
desc_nl=Systeem en Server Status
07070100073308000081e40000000000000002000000013ac038b900000a3d000000200000000000000000000000000000001800000003reloc/status/monitor.pl   #!/usr/local/bin/perl
# monitor.pl
# Check all the monitors and send email if something is down

$no_acl_check++;
require './status-lib.pl';

# Check if the monitor should be run now
@tm = localtime(time());
@hours = split(/\s+/, $config{'sched_hours'});
!@hours || &indexof($tm[2], @hours) >= 0 || exit;
@days = split(/\s+/, $config{'sched_days'});
!@days || &indexof($tm[6], @days) >= 0 || exit;

# Check for services that are down
&read_file("$module_config_directory/oldstatus", \%oldstatus);
$now = localtime(time());
$host = &get_system_hostname();
foreach $serv (&list_services()) {
	if ($serv->{'nosched'}) {
		delete($oldstatus{$serv->{'id'}});
		next;
		}
	$stat = &service_status($serv);
	$o = $oldstatus{$serv->{'id'}};
	if ($config{'sched_warn'} == 0 && $stat->{'up'} == 0 && $o) {
		# Service has just gone down
		$email .= "Monitor on $host for '$serv->{'desc'}'\n".
		 "has detected that the service is down at $now\n\n";
		$subj = "$serv->{'desc'} down on $host";
		if ($serv->{'ondown'}) {
			system("($serv->{'ondown'}) >/dev/null 2>&1");
			}
		}
	elsif ($config{'sched_warn'} == 1 && $stat->{'up'} != $o &&
	       (defined($o) || $stat->{'up'} == 0)) {
		# Service has changed status
		if ($stat->{'up'} == 0) {
			$email .= "Monitor on $host for '$serv->{'desc'}'\n".
			 "has detected that the service is down at $now\n\n";
			$subj = "$serv->{'desc'} down on $host";
			if ($serv->{'ondown'}) {
				system("($serv->{'ondown'}) >/dev/null 2>&1");
				}
			}
		elsif ($stat->{'up'} == 1) {
			$email .= "Monitor on $host for '$serv->{'desc'}'\n".
			 "has detected that the service is back up at $now\n\n";
			$subj = "$serv->{'desc'} back up on $host";
			if ($serv->{'onup'}) {
				system("($serv->{'onup'}) >/dev/null 2>&1");
				}
			}
		}
	$oldstatus{$serv->{'id'}} = $stat->{'up'};
	if ($config{'sched_single'} && $email) {
		# Force the sending of one email per report
		&send_status_email($email, $subj);
		undef($email);
		}
	}
&write_file("$module_config_directory/oldstatus", \%oldstatus);

# Send the email if necessary
if ($email) {
	&send_status_email($email, 'Service monitor');
	}

# send_status_email(text, subject)
sub send_status_email
{
return if (!$config{'sched_email'});
local %sconfig = &foreign_config("sendmail");
if ($config{'sched_from'}) {
	open(MAIL, "|$sconfig{'sendmail_path'} -t -f$config{'sched_from'}");
	print MAIL "From: $config{'sched_from'}\n";
	}
else {
	open(MAIL, "|$sconfig{'sendmail_path'} -t");
	print MAIL "From: webmin\n";
	}
print MAIL "To: $config{'sched_email'}\n";
print MAIL "Subject: $_[1]\n";
print MAIL "\n";
print MAIL $_[0];
close(MAIL);
}

   07070100073309000081a40000000000000002000000013ac038b90000018a000000200000000000000000000000000000001e00000003reloc/status/mysql-monitor.pl # mysql-monitor.pl
# Monitor the MySQL server on this host

# Check if mysql is running
sub get_mysql_status
{
&foreign_require($_[1], "mysql-lib.pl");
local %mconfig = &foreign_config($_[1]);
return { 'up' => -1 } if (!-x $mconfig{'mysqladmin'});
local $r = &foreign_call($_[1], "is_mysql_running");
return { 'up' => $r ? 1 : 0 };
}

sub parse_mysql_dialog
{
&depends_check($_[0], "mysql");
}
  0707010007330a000081a40000000000000002000000013ac038b900000111000000200000000000000000000000000000001c00000003reloc/status/nfs-monitor.pl   # nfs-monitor.pl
# Monitor the NFS server process

sub get_nfs_status
{
&foreign_require("proc", "proc-lib.pl");
if (&foreign_check("exports") || &foreign_check("dfsadmin")) {
	return { 'up' => &find_named_process('nfsd') ? 1 : 0 };
	}
else {
	return { 'up' => -1 };
	}
}

   0707010007330b000081a40000000000000002000000013ac038b9000003f1000000200000000000000000000000000000001d00000003reloc/status/ping-monitor.pl  # ping-monitor.pl
# Ping some host

sub get_ping_status
{
# fork the ping process and wait for it to exit
$ping_exited = 0;
local $pid = fork();
if (!$pid) {
	untie *STDIN; close(STDIN);
	untie *STDOUT; close(STDOUT);
	untie *STDERR; close(STDERR);
	exit system("$config{'ping_cmd'} $_[0]->{'host'}");
	}
$SIG{'CHLD'} = "ping_reaper";
sleep(5);
if ($ping_exited) {
	local $rv = waitpid($pid, WNOHANG);
	if ($?) {
		# ping exited with failure
		return { 'up' => 0 };
		}
	else {
		# ping sucessful
		return { 'up' => 1 };
		}
	}
else {
	# ping never finished!
	kill('TERM', $pid);
	return { 'up' => 0 };
	}
}

sub ping_reaper
{
$ping_exited++;
}


sub show_ping_dialog
{
print "<tr> <td><b>$text{'ping_host'}</b></td>\n";
print "<td colspan=3><input name=host size=45 value='$_[0]->{'host'}'></td>\n";
}

sub parse_ping_dialog
{
$config{'ping_cmd'} || &error($text{'ping_econfig'});
&check_ipaddress($in{'host'}) || gethostbyname($in{'host'}) ||
	&error($text{'ping_ehost'});
$_[0]->{'host'} = $in{'host'};
}

   0707010007330c000081a40000000000000002000000013ac038b9000001c5000000200000000000000000000000000000002000000003reloc/status/postfix-monitor.pl   # postfix-monitor.pl
# Monitor the postfix server on this host

# Check to see if postfix is running
sub get_postfix_status
{
&foreign_require($_[1], "postfix-lib.pl");
local %pconfig = &foreign_config($_[1]);
return { 'up' => -1 } if (!-r $pconfig{'postfix_control_command'});
if (&foreign_call($_[1], "is_postfix_running")) {
	return { 'up' => 1 };
	}
else {
	return { 'up' => 0 };
	}
}

sub parse_postfix_dialog
{
&depends_check($_[0], "postfix");
}
   0707010007330d000081a40000000000000002000000013ac038b9000001ad000000200000000000000000000000000000002300000003reloc/status/postgresql-monitor.pl    # postgresql-monitor.pl
# Monitor the PostgreSQL server on this host

# Check if postgresql is running
sub get_postgresql_status
{
&foreign_require($_[1], "postgresql-lib.pl");
local %pconfig = &foreign_config($_[1]);
return { 'up' => -1 } if (!-x $pconfig{'psql'});
local $r = &foreign_call($_[1], "is_postgresql_running");
return { 'up' => $r ? 1 : 0 };
}

sub parse_postgresql_dialog
{
&depends_check($_[0], "postgresql");
}

   0707010007330e000081a40000000000000002000000013ac038b90000024d000000200000000000000000000000000000001d00000003reloc/status/proc-monitor.pl  # proc-monitor.pl
# Check if some process is running

sub get_proc_status
{
&foreign_require("proc", "proc-lib.pl");
foreach $p (&foreign_call("proc", "list_processes")) {
	if ($p->{'args'} =~ /$_[0]->{'cmd'}/i) {
		return { 'up' => 1,
			 'desc' => &text('proc_pid', $p->{'pid'}) };
		}
	}
return { 'up' => 0 };
}

sub show_proc_dialog
{
print "<tr> <td><b>$text{'proc_cmd'}</b></td>\n";
print "<td><input name=cmd size=20 value='$_[0]->{'cmd'}'></td>\n";
}

sub parse_proc_dialog
{
&depends_check($_[0], "proc");
$in{'cmd'} || &error($text{'proc_ecmd'});
$_[0]->{'cmd'} = $in{'cmd'};
}

   0707010007330f000081a40000000000000002000000013ac038b90000018e000000200000000000000000000000000000001e00000003reloc/status/samba-monitor.pl # samba-monitor.pl
# Monitor the samba servers on this host

# Check if samba is running
sub get_samba_status
{
&foreign_require($_[1], "samba-lib.pl");
local %sconfig = &foreign_config($_[1]);
return { 'up' => -1 } if (!-x $sconfig{'samba_server'});
local $r = &foreign_call($_[1], "is_samba_running");
return { 'up' => $r ? 1 : 0 };
}

sub parse_samba_dialog
{
&depends_check($_[0], "samba");
}

  07070100073310000081e40000000000000002000000013ac038b900000527000000200000000000000000000000000000001a00000003reloc/status/save_mon.cgi #!/usr/local/bin/perl
# save_mon.cgi
# Create, update or delete a monitor

require './status-lib.pl';
&ReadParse();
if ($in{'type'}) {
	$serv->{'type'} = $in{'type'};
	$serv->{'id'} = time();
	}
else {
	$serv = &get_service($in{'id'});
	}

if ($in{'delete'}) {
	# Delete the monitor
	&delete_service($serv);
	&webmin_log("delete", undef, $serv->{'id'}, $serv);
	}
else {
	# Parse and validate inputs
	&error_setup($text{'mon_err'});
	$in{'desc'} || &error($text{'mon_edesc'});
	$serv->{'desc'} = $in{'desc'};
	if ($in{'remote_def'}) {
		delete($serv->{'remote'});
		}
	else {
		eval { $ch = &remote_foreign_check($in{'remote'}, 'status') };
		&error(&text('mon_elogin', $in{'remote'}))
			if ($@ =~ /invalid.*login/i || $@ =~ /HTTP.*401/i);
		&error(&text('mon_eremote', $in{'remote'})) if ($@);
		$ch || &error(&text('mon_estatus', $in{'remote'}));
		$serv->{'remote'} = $in{'remote'};
		}
	$serv->{'nosched'} = $in{'nosched'};
	$serv->{'ondown'} = $in{'ondown'};
	$serv->{'onup'} = $in{'onup'};
	$serv->{'clone'} = $in{'clone'};
	$type = $serv->{'type'};
	do "./${type}-monitor.pl";
	$func = "parse_${type}_dialog";
	if (defined(&$func)) {
		&$func($serv);
		}

	# Save or create the monitor
	&save_service($serv);
	&webmin_log($in{'new'} ? "create" : "modify", undef,
		    $serv->{'id'}, $serv);
	}
&redirect("");

 07070100073311000081e40000000000000002000000013ac038b900000b76000000200000000000000000000000000000001c00000003reloc/status/save_sched.cgi   #!/usr/local/bin/perl
# save_sched.cgi
# Save scheduled monitoring options

require './status-lib.pl';
&ReadParse();
&error_setup($text{'sched_err'});

# Parse and save inputs
$in{'email_def'} || $in{'email'} =~ /^\S+$/ || &error($text{'sched_eemail'});
$config{'sched_email'} = $in{'email_def'} ? '' : $in{'email'};
if ($in{'from_def'}) {
	delete($config{'sched_from'});
	}
else {
	$in{'from'} =~ /^\S+$/ || &error($text{'sched_efrom'});
	$config{'sched_from'} = $in{'from'};
	}
$config{'sched_mode'} = $in{'mode'};
$in{'int'} =~ /^\d+$/ || &error($text{'sched_eint'});
$config{'sched_int'} = $in{'int'};
$config{'sched_period'} = $in{'period'};
$in{'offset'} =~ /^\d+$/ || &error($text{'sched_eoffset'});
$config{'sched_offset'} = $in{'offset'};
$config{'sched_warn'} = $in{'warn'};
$config{'sched_single'} = $in{'single'};
@hours = split(/\0/, $in{'hours'});
@hours || &error($text{'sched_ehours'});
$config{'sched_hours'} = @hours == 24 ? '' : join(" ", @hours);
@days = split(/\0/, $in{'days'});
@days || &error($text{'sched_edays'});
$config{'sched_days'} = @days == 7 ? '' : join(" ", @days);
&write_file("$module_config_directory/config", \%config);

# Setup or remove the cron job
$cron_cmd = "$module_config_directory/monitor.pl";
&foreign_require("cron", "cron-lib.pl");
foreach $j (&foreign_call("cron", "list_cron_jobs")) {
	$job = $j if ($j->{'user'} eq 'root' && $j->{'command'} eq $cron_cmd);
	}
if ($job) {
	&foreign_call("cron", "delete_cron_job", $job);
	unlink($cron_cmd);
	}
if ($config{'sched_mode'}) {
	# Create the program that cron calls
	open(PERL, "$config_directory/perl-path");
	chop($perl_path = <PERL>);
	close(PERL);
	open(CMD, ">$cron_cmd");
	print CMD <<EOF;
#!$perl_path
open(CONF, "$config_directory/miniserv.conf");
while(<CONF>) {
	\$root = \$1 if (/^root=(.*)/);
	}
close(CONF);
\$ENV{'WEBMIN_CONFIG'} = "$ENV{'WEBMIN_CONFIG'}";
\$ENV{'WEBMIN_VAR'} = "$ENV{'WEBMIN_VAR'}";
chdir("\$root/$module_name");
exec("\$root/$module_name/monitor.pl");
EOF
	close(CMD);
	chmod(0755, $cron_cmd);

	# Setup the actual cron job
	$njob = { 'user' => 'root', 'active' => 1,
		  'hours' => '*', 'days' => '*',
		  'months' => '*', 'weekdays' => '*',
		  'command' => $cron_cmd };
	if ($config{'sched_period'} == 0) {
		$njob->{'mins'} = &make_interval(60);
		}
	elsif ($config{'sched_period'} == 1) {
		$njob->{'hours'} = &make_interval(24);
		$njob->{'mins'} = 0;
		}
	elsif ($config{'sched_period'} == 2) {
		$njob->{'days'} = &make_interval(31, 1);
		$njob->{'hours'} = $njob->{'mins'} = 0;
		}
	elsif ($config{'sched_period'} == 3) {
		$njob->{'months'} = &make_interval(12, 1);
		$njob->{'days'} = 1;
		$njob->{'hours'} = $njob->{'mins'} = 0;
		}
	&foreign_call("cron", "create_cron_job", $njob);
	}
&redirect("");

# make_interval(length, offset2)
sub make_interval
{
local (@rv, $i);
for($i=$config{'sched_offset'}+$_[1]; $i<$_[0]; $i+=$config{'sched_int'}) {
	push(@rv,$i);
	}
return join(",", @rv);
}

  07070100073312000081a40000000000000002000000013ac038b900000263000000200000000000000000000000000000002100000003reloc/status/sendmail-monitor.pl  # sendmail-monitor.pl
# Monitor the sendmail server on this host

# Check the PID file to see if sendmail is running
sub get_sendmail_status
{
&foreign_require($_[1], "sendmail-lib.pl");
local %sconfig = &foreign_config($_[1]);
return { 'up' => -1 } if (!-r $sconfig{'sendmail_cf'});
if (open(PID, $sconfig{'sendmail_pid'}) && <PID> =~ /(\d+)/ && kill(0, $1)) {
	close(PID);
	local @st = stat($sconfig{'sendmail_pid'});
	return { 'up' => 1,
		 'desc' => &text('up_since', scalar(localtime($st[9]))) };
	}
else {
	return { 'up' => 0 };
	}
}

sub parse_sendmail_dialog
{
&depends_check($_[0], "sendmail");
}

1;

 07070100077866000041ed0000000000000001000000023ac03c8900000000000000200000000000000000000000000000001600000003reloc/status/services 07070100077867000081a40000000000000002000000013ac038b900000045000000200000000000000000000000000000002200000003reloc/status/services/apache.serv id=apache
type=apache
desc=Apache Webserver
depends=apache
nosched=0
   07070100077868000081a40000000000000002000000013ac038b900000037000000200000000000000000000000000000002100000003reloc/status/services/bind8.serv  id=bind8
type=bind8
desc=BIND DNS Server
depends=bind8
 07070100077869000081a40000000000000002000000013ac038b900000033000000200000000000000000000000000000002100000003reloc/status/services/dhcpd.serv  id=dhcpd
type=dhcpd
desc=DHCP Server
depends=dhcpd
 0707010007786a000081a40000000000000002000000013ac038b900000042000000200000000000000000000000000000002400000003reloc/status/services/dnsadmin.serv   id=dnsadmin
type=dnsadmin
desc=BIND 4 DNS Server
depends=dnsadmin
  0707010007786b000081a40000000000000002000000013ac038b900000044000000200000000000000000000000000000002100000003reloc/status/services/inetd.serv  id=inetd
type=inetd
desc=Internet and RPC Server
depends=inetd proc
0707010007786c000081a40000000000000002000000013ac038b90000003d000000200000000000000000000000000000002100000003reloc/status/services/mysql.serv  id=mysql
type=mysql
desc=MySQL Database Server
depends=mysql
   0707010007786d000081a40000000000000002000000013ac038b90000002d000000200000000000000000000000000000001f00000003reloc/status/services/nfs.serv    id=nfs
type=nfs
desc=NFS Server
depends=proc
   0707010007786e000081a40000000000000002000000013ac038b90000003c000000200000000000000000000000000000002300000003reloc/status/services/postfix.serv    id=postfix
type=postfix
desc=Postfix Server
depends=postfix
0707010007786f000081a40000000000000002000000013ac038b90000005b000000200000000000000000000000000000002600000003reloc/status/services/postgresql.serv id=postgresql
type=postgresql
desc=PostgreSQL Database Server
depends=postgresql
nosched=0
 07070100077870000081a40000000000000002000000013ac038b900000035000000200000000000000000000000000000002100000003reloc/status/services/samba.serv  id=samba
type=samba
desc=Samba Servers
depends=samba
   07070100077871000081a40000000000000002000000013ac038b900000040000000200000000000000000000000000000002400000003reloc/status/services/sendmail.serv   id=sendmail
type=sendmail
desc=Sendmail Server
depends=sendmail
07070100077872000081a40000000000000002000000013ac038b90000003a000000200000000000000000000000000000002100000003reloc/status/services/squid.serv  id=squid
type=squid
desc=Squid Proxy Server
depends=squid
  07070100077873000081a40000000000000002000000013ac038b900000043000000200000000000000000000000000000002200000003reloc/status/services/xinetd.serv id=xinetd
type=xinetd
desc=Extended Internet Server
depends=xinetd
 07070100073313000081a40000000000000002000000013ac038b90000033a000000200000000000000000000000000000001e00000003reloc/status/squid-monitor.pl # squid-monitor.pl
# Monitor the squid server on this host

# Check the PID file to see if squid is running
sub get_squid_status
{
&foreign_require($_[1], "squid-lib.pl");
return { 'up' => -1 } if (!&foreign_check($_[1]));
local %sconfig = &foreign_config($_[1]);
return { 'up' => -1 } if (!-r $sconfig{'squid_conf'});
local $conf = &foreign_call($_[1], "get_config");
local $str = &foreign_call($_[1], "find_config", "pid_filename", $conf);
local $file;
if ($str) {
	$file = $str->{'values'}->[0];
	}
else {
	$file = $sconfig{'pid_file'};
	}
if (open(PID, $file) && <PID> =~ /(\d+)/ && kill(0, $1)) {
	close(PID);
	local @st = stat($file);
	return { 'up' => 1,
		 'desc' => &text('up_since', scalar(localtime($st[9]))) };
	}
else {
	return { 'up' => 0 };
	}
}

sub parse_squid_dialog
{
&depends_check($_[0], "squid");
}

1;

  07070100073314000081a40000000000000002000000013ac038b900000d01000000200000000000000000000000000000001b00000003reloc/status/status-lib.pl    # status-lib.pl
# Functions for getting the status of services

do '../web-lib.pl';
&init_config();

$services_dir = "$module_config_directory/services";

# list_services()
# Returns a list of all services this module knows how to get status on.
# If this is the first time the function is called a default set of services
# will be setup.
sub list_services
{
local %mod;
if (!-d $services_dir) {
	# setup initial services
	mkdir($module_config_directory, 0700);
	mkdir($services_dir, 0700);
	system("cp services/* $services_dir");
	}
map { $mod{$_}++ } &list_modules();
opendir(DIR, $services_dir);
while($f = readdir(DIR)) {
	next if ($f !~ /^(.*)\.serv$/);
	local $serv = &get_service($1);
	next if (!$serv->{'type'} || !$serv->{'id'});
	if ($serv->{'depends'}) {
		local $d;
		map { $d++ if (!$mod{$_}) } split(/\s+/, $serv->{'depends'});
		push(@rv, $serv) if (!$d);
		}
	else {
		push(@rv, $serv);
		}
	}
closedir(DIR);
return @rv;
}

# get_service(id)
sub get_service
{
local %serv;
&read_file("$services_dir/$_[0].serv", \%serv);
return $_[0] ne $serv{'id'} ? undef : \%serv;
}

# save_service(&serv)
sub save_service
{
&write_file("$services_dir/$_[0]->{'id'}.serv", $_[0]);
}

# delete_service(serv)
sub delete_service
{
unlink("$services_dir/$_[0]->{'id'}.serv");
}

# service_status(&service)
# Gets the status of a service, possibly on another server
sub service_status
{
local $t = $_[0]->{'type'};
if ($_[0]->{'remote'}) {
	# Make a remote call to another webmin server
	&remote_foreign_require($_[0]->{'remote'}, 'status', 'status-lib.pl')
		if (!$done_remote_status{$_[0]->{'remote'}}++);
	local %s = %{$_[0]};
	delete($s{'remote'});
	return &remote_foreign_call($_[0]->{'remote'}, 'status',
				    'service_status', \%s);
	}
else {
	# Just include and use the local monitor library
	do "./${t}-monitor.pl" if (!$done_monitor{$t}++);
	local $func = "get_${t}_status";
	return &$func($_[0], $_[0]->{'clone'} ? $_[0]->{'clone'} : $t);
	}
}

# list_modules()
# Returns a list of all modules available on this system
sub list_modules
{
local(@rv, $d);
opendir(DIR, "..");
foreach $d (readdir(DIR)) {
	undef(%minfo);
	if ($d !~ /^\./ && (%minfo = &get_module_info($d)) &&
	    &check_os_support(\%minfo)) {
		push(@rv, $d);
		}
	}
closedir(DIR);
return @rv;
}

# list_handlers()
# Returns a list of the module's type handlers
sub list_handlers
{
local ($f, @rv);
opendir(DIR, ".");
while($f = readdir(DIR)) {
	push(@rv, $1) if ($f =~ /^(\S+)-monitor\.pl$/);
	}
closedir(DIR);
return @rv;
}

# depends_check(&service, [module]+)
sub depends_check
{
if ($_[0]->{'remote'}) {
	# Check on the remote server
	foreach $m (@_[1..$#_]) {
		&remote_foreign_check($_[0]->{'remote'}, $m) ||
			&error(&text('depends_remote', "<tt>$m</tt>",
				     "<tt>$_[0]->{'remote'}</tt>"));
		}
	}
else {
	# Check on this server
	foreach $m (@_[1..$#_]) {
		local %minfo = &get_module_info($m);
		%minfo || &error(&text('depends_mod', "<tt>$m</tt>"));
		&check_os_support(\%minfo) ||
			&error(&text('depends_os', "<tt>$minfo{'desc'}</tt>"));
		}
	$_[0]->{'depends'} = join(" ", @_[1..$#_]);
	}
}

# find_named_process(regexp)
sub find_named_process
{
foreach $p (&foreign_call("proc", "list_processes")) {
	$p->{'args'} =~ s/\s.*$//; $p->{'args'} =~ s/[\[\]]//g;
	if ($p->{'args'} =~ /$_[0]/) {
		return $p;
		}
	}
return undef;
}

1;

   07070100073315000081a40000000000000002000000013ac038b9000005ff000000200000000000000000000000000000001c00000003reloc/status/tcp-monitor.pl   # tcp-monitor.pl
# Monitor a remote TCP server

sub get_tcp_status
{
# Connect to the server
socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname("tcp")) ||
	return { 'up' => -1 };
local $addr = inet_aton($_[0]->{'host'});
return { 'up' => -1 } if (!$addr);
local $st = time();
$SIG{'ALRM'} = "tcp_connect_timeout";
alarm($_[0]->{'alarm'} ? $_[0]->{'alarm'} : 10);
connect(SOCK, sockaddr_in($_[0]->{'port'}, $addr)) ||
	return { 'up' => 0 };
close(SOCK);
alarm(0);
return { 'up' => 1,
	 'time' => time() - $st };
}

sub tcp_connect_timeout
{
}

sub show_tcp_dialog
{
print "<tr> <td><b>$text{'tcp_host'}</b></td>\n";
print "<td><input name=host size=25 value='$_[0]->{'host'}'></td>\n";

print "<td><b>$text{'tcp_port'}</b></td>\n";
print "<td><input name=port size=5 value='$_[0]->{'port'}'></td> </tr>\n";

print "<tr> <td><b>$text{'tcp_alarm'}</b></td>\n";
printf "<td><input type=radio name=alarm_def value=1 %s> %s\n",
	$_[0]->{'alarm'} ? '' : 'checked', $text{'default'};
printf "<input type=radio name=alarm_def value=0 %s>\n",
	$_[0]->{'alarm'} ? 'checked' : '';
print "<input name=alarm size=5 value='$_[0]->{'alarm'}'></td> </tr>\n";
}

sub parse_tcp_dialog
{
&check_ipaddress($in{'host'}) || gethostbyname($in{'host'}) ||
	&error($text{'tcp_ehost'});
$_[0]->{'host'} = $in{'host'};

$in{'port'} =~ /^\d+$/ || &error($text{'tcp_eport'});
$_[0]->{'port'} = $in{'port'};

if ($in{'alarm_def'}) {
	delete($_[0]->{'alarm'});
	}
else {
	$in{'alarm'} =~ /^\d+$/ || &error($text{'tcp_ealarm'});
	$_[0]->{'alarm'} = $in{'alarm'};
	}
}

 07070100073316000081a40000000000000002000000013ac038b9000001dc000000200000000000000000000000000000001f00000003reloc/status/xinetd-monitor.pl    # xinetd-monitor.pl
# Monitor xinetd on this host

sub get_xinetd_status
{
local %xconfig = &foreign_config($_[1]);
return { 'up' => -1 } if (!-r $xconfig{'xinetd_conf'});
if (open(PID, $xconfig{'pid_file'}) && <PID> =~ /(\d+)/ && kill(0, $1)) {
	close(PID);
	local @st = stat($xconfig{'pid_file'});
	return { 'up' => 1,
		 'desc' => &text('up_since', scalar(localtime($st[9]))) };
	}
return { 'up' => 0 };
}

sub parse_xinetd_dialog
{
&depends_check($_[0], "xinetd");
}

1;

0707010000bb66000081e40000000000000002000000013ac0388600000127000000200000000000000000000000000000001700000003reloc/switch_skill.cgi    #!/usr/local/bin/perl
# switch_skill.cgi
# Change the skill level of the current user

require './web-lib.pl';
&init_config();
&ReadParse();
$user = $ENV{'REMOTE_USER'};
$gconfig{'skill_'.$user} = $in{'skill'};
&write_file("$config_directory/config", \%gconfig);
&redirect("/?cat=$in{'cat'}");

 0707010000bb67000081e40000000000000002000000013ac0388600000163000000200000000000000000000000000000001600000003reloc/switch_user.cgi #!/usr/local/bin/perl
# switch_user.cgi
# Force the webserver to re-authenticate

require './web-lib.pl';
&init_config();
&get_miniserv_config(\%miniserv);
$id = $$.time();
open(LOGOUT, ">$miniserv{'logout'}$id");
printf LOGOUT "%d\n",
	$ENV{'HTTP_USER_AGENT'} =~ /(MSIE\s+4\.)|(Netscape6)/ ? 2 : 1;
close(LOGOUT);
&redirect("/?miniserv_logout_id=$id");

 07070100046c59000041ed0000000000000001000000043ac03c8c00000000000000200000000000000000000000000000000d00000003reloc/syslog  07070100046c5a000081a40000000000000002000000013ac038a80000011a000000200000000000000000000000000000001800000003reloc/syslog/config-aix   pri_dir=0
pri_all=0
pid_file=/etc/syslog.pid
m4_path=/usr/ccs/bin/m4
sync=0
facilities=user kern mail daemon auth lpr news uucp cron mark local0 local1 local2 local3 local4 local5 local6 local7
syslogd=/usr/sbin/syslogd
pipe=0
m4_conf=1
syslog_conf=/etc/syslog.conf
tags=0
lines=20
  07070100046c5b000081a40000000000000002000000013ac038a80000011c000000200000000000000000000000000000002100000003reloc/syslog/config-cobalt-linux  pri_all=1
syslogd=/sbin/syslogd
m4_conf=0
syslog_conf=/etc/syslog.conf
pri_dir=1
pid_file=/var/run/syslogd.pid
facilities=auth authpriv cron daemon kern lpr mail mark news syslog user uucp local0 local1 local2 local3 local4 local5 local6 local7
m4_path=
sync=1
pipe=1
tags=0
lines=20
07070100046c5c000081a40000000000000002000000013ac038a80000011c000000200000000000000000000000000000002000000003reloc/syslog/config-corel-linux   pri_all=1
syslogd=/sbin/syslogd
m4_conf=0
syslog_conf=/etc/syslog.conf
pri_dir=1
pid_file=/var/run/syslogd.pid
facilities=auth authpriv cron daemon kern lpr mail mark news syslog user uucp local0 local1 local2 local3 local4 local5 local6 local7
m4_path=
sync=1
pipe=1
tags=0
lines=20
07070100046c5d000081a40000000000000002000000013ac038a80000011c000000200000000000000000000000000000002100000003reloc/syslog/config-debian-linux  pri_all=1
syslogd=/sbin/syslogd
m4_conf=0
syslog_conf=/etc/syslog.conf
pri_dir=1
pid_file=/var/run/syslogd.pid
facilities=auth authpriv cron daemon kern lpr mail mark news syslog user uucp local0 local1 local2 local3 local4 local5 local6 local7
m4_path=
sync=1
pipe=1
tags=0
lines=20
07070100046c5e000081a40000000000000002000000013ac038a800000127000000200000000000000000000000000000001c00000003reloc/syslog/config-freebsd   pri_all=1
syslogd=/usr/sbin/syslogd
m4_conf=0
syslog_conf=/etc/syslog.conf
pri_dir=2
pid_file=/var/run/syslog.pid
facilities=auth authpriv cron daemon ftp kern lpr mail mark news ntp syslog user uucp local0 local1 local2 local3 local4 local5 local6 local7
m4_path=
sync=0
pipe=2
tags=1
lines=20
 07070100046c5f000081a40000000000000002000000013ac038a800000106000000200000000000000000000000000000001900000003reloc/syslog/config-hpux  pri_dir=0
pri_all=0
pid_file=/var/run/syslog.pid
sync=0
facilities=user kern mail daemon auth lpr news uucp cron mark local0 local1 local2 local3 local4 local5 local6 local7
syslogd=/usr/sbin/syslogd
pipe=0
m4_conf=0
syslog_conf=/etc/syslog.conf
tags=0
lines=20
  07070100046c60000081a40000000000000002000000013ac038a8000000fb000000200000000000000000000000000000001900000003reloc/syslog/config-irix  pri_all=0
syslogd=/usr/etc/syslogd
syslog_conf=/etc/syslog.conf
m4_conf=0
pri_dir=0
lines=20
pid_file=
m4_path=
sync=0
facilities=user kern mail daemon auth lpr news uucp cron mark local0 local1 local2 local3 local4 local5 local6 local7
pipe=2
tags=0
 07070100046c61000081a40000000000000002000000013ac038a800000138000000200000000000000000000000000000001a00000003reloc/syslog/config-macos pri_all=1
syslogd=/usr/sbin/syslogd
m4_conf=0
syslog_conf=/etc/syslog.conf
pri_dir=0
pid_file=/var/run/syslog.pid
facilities=auth authpriv cron daemon kern lpr mail mark named netinfo news remoteauto syslog user uucp local0 local1 local2 local3 local4 local5 local6 local7
m4_path=
sync=0
pipe=0
tags=0
lines=20
07070100046c62000081a40000000000000002000000013ac038a8000001fd000000200000000000000000000000000000001f00000003reloc/syslog/config-open-linux    pri_all=1
syslogd=/usr/sbin/syslogd
m4_conf=0
syslog_conf=/etc/syslog.conf
pri_dir=1
pid_file=/var/run/syslogd.pid
facilities=auth authpriv cron daemon kern lpr mail mark news syslog user uucp local0 local1 local2 local3 local4 local5 local6 local7
m4_path=
sync=1
pipe=1
tags=0
lines=20
file_/var/log/messages=desc_sysmesg
file_/var/log/secure=desc_auth
file_/var/log/news.all=desc_news
file_/var/log/spooler=desc_uucp
file_/var/log/debug=desc_debug
file_/var/log/mail=desc_mail
file_/var/log/cron=desc_cron
   07070100046c63000081a40000000000000002000000013ac038a800000127000000200000000000000000000000000000001c00000003reloc/syslog/config-openbsd   pri_all=1
syslogd=/usr/sbin/syslogd
m4_conf=0
syslog_conf=/etc/syslog.conf
pri_dir=2
pid_file=/var/run/syslog.pid
facilities=auth authpriv cron daemon ftp kern lpr mail mark news ntp syslog user uucp local0 local1 local2 local3 local4 local5 local6 local7
m4_path=
sync=0
pipe=2
tags=1
lines=20
 07070100046c64000081a40000000000000002000000013ac038a800000227000000200000000000000000000000000000002100000003reloc/syslog/config-redhat-linux  pri_all=1
syslogd=/sbin/syslogd
m4_conf=0
syslog_conf=/etc/syslog.conf
pri_dir=1
pid_file=/var/run/syslogd.pid
facilities=auth authpriv cron daemon kern lpr mail mark news syslog user uucp local0 local1 local2 local3 local4 local5 local6 local7
m4_path=
sync=1
pipe=1
tags=0
lines=20
file_/var/log/messages=desc_sysmesg
file_/var/log/secure=desc_auth
file_/var/log/maillog=desc_mail
file_/var/log/spooler=desc_uucp
file_/var/log/boot.log=desc_boot
file_/var/log/news.crit=desc_news
file_/var/log/news.err=desc_news
file_/var/log/news.notice=desc_news
 07070100046c65000081a40000000000000002000000013ac038a800000120000000200000000000000000000000000000002400000003reloc/syslog/config-slackware-linux   pri_all=1
syslogd=/usr/sbin/syslogd
m4_conf=0
syslog_conf=/etc/syslog.conf
pri_dir=1
pid_file=/var/run/syslogd.pid
facilities=auth authpriv cron daemon kern lpr mail mark news syslog user uucp local0 local1 local2 local3 local4 local5 local6 local7
m4_path=
sync=1
pipe=1
tags=0
lines=20
07070100046c66000081a40000000000000002000000013ac038a80000017d000000200000000000000000000000000000001c00000003reloc/syslog/config-solaris   pri_dir=0
pri_all=0
pid_file=/etc/syslog.pid
m4_path=/usr/ccs/bin/m4
sync=0
facilities=user kern mail daemon auth lpr news uucp cron mark local0 local1 local2 local3 local4 local5 local6 local7
syslogd=/usr/sbin/syslogd
pipe=0
m4_conf=1
syslog_conf=/etc/syslog.conf
tags=0
lines=20
file_/var/adm/messages=desc_sysmesg
file_/var/log/syslog=desc_mail
file_/var/log/authlog=desc_auth
   07070100046c67000081a40000000000000002000000013ac038a800000120000000200000000000000000000000000000001f00000003reloc/syslog/config-suse-linux    pri_all=1
syslogd=/usr/sbin/syslogd
m4_conf=0
syslog_conf=/etc/syslog.conf
pri_dir=1
pid_file=/var/run/syslogd.pid
facilities=auth authpriv cron daemon kern lpr mail mark news syslog user uucp local0 local1 local2 local3 local4 local5 local6 local7
m4_path=
sync=1
pipe=1
tags=0
lines=20
07070100046c68000081a40000000000000002000000013ac038a80000011c000000200000000000000000000000000000002000000003reloc/syslog/config-turbo-linux   pri_all=1
syslogd=/sbin/syslogd
m4_conf=0
syslog_conf=/etc/syslog.conf
pri_dir=1
pid_file=/var/run/syslogd.pid
facilities=auth authpriv cron daemon kern lpr mail mark news syslog user uucp local0 local1 local2 local3 local4 local5 local6 local7
m4_path=
sync=1
pipe=1
tags=0
lines=20
07070100046c69000081a40000000000000002000000013ac038a80000011a000000200000000000000000000000000000001d00000003reloc/syslog/config-unixware  pri_dir=0
pri_all=0
pid_file=/etc/syslog.pid
m4_path=/usr/ccs/bin/m4
sync=0
facilities=user kern mail daemon auth lpr news uucp cron mark local0 local1 local2 local3 local4 local5 local6 local7
syslogd=/usr/sbin/syslogd
pipe=0
m4_conf=1
syslog_conf=/etc/syslog.conf
tags=0
lines=20
  07070100046c6a000081a40000000000000002000000013ac038a700000238000000200000000000000000000000000000001900000003reloc/syslog/config.info  syslog_conf=Path to syslog config file,0
m4_conf=Syslog config is processed though m4?,1,1-Yes,0-No
m4_path=Path to m4,0
sync=Sync after each message can be disabled?,1,1-Yes,0-No
pipe=Logging to pipes supported?,1,2-To commands,1-To named pipes,0-No
pri_dir=Advanced priority selection supported?,1,2-FreeBSD style,1-Linux style,0-No
pri_all=All priorities supported?,1,1-Yes,0-No
tags=Tagged sections supported?,1,1-Yes,0-No
pid_file=Syslog PID file,3,None
syslogd=Path to syslog server,0
facilities=Supported facilities,0
lines=Default number of lines to display,0
07070100046c6b000081a40000000000000002000000013ac038a80000025c000000200000000000000000000000000000001c00000003reloc/syslog/config.info.de   syslog_conf=Pfad zu Syslog Konfigurationsdatei,0
m4_conf=Syslog Konfiguration wird durch m4 verarbeitet?,1,1-Ja,0-Nein
m4_path=Pfad zu m4,0
sync=Sync nach jeder gemeldeten Nachricht?,1,1-Ja,0-Nein
pipe=Logging zu pipes unterst&uuml;tzt?,1,2-Zu Kommandos,1-Zu named pipes,0-Nein
pri_dir=Erweiterte Priorit&auml;tsauswahl unterst&uuml;tzt?,1,2-FreeBSD Stil,1-Linux Stil,0-Nein
pri_all=Alle Priorit&auml;ten unterst&uuml;tzt?,1,1-Ja,0-Nein
tags=Vermerkte Sektionen unterst&uuml;tzt?,1,1-Ja,0-Nein
pid_file=Syslog PID Datei,3,None
syslogd=Pfad zu Syslog Server,0
facilities=Unterst&uuml;tzte Einrichtungen,0
07070100046c6c000081a40000000000000002000000013ac038a8000002b2000000200000000000000000000000000000001c00000003reloc/syslog/config.info.es   syslog_conf=Trayectoria a archivo de configuraci髇 de syslog,0
m4_conf=縇a configuraci髇 de Syslog es procesada a trav閟 de m4?,1,1-S,0-No
m4_path=Trayectoria a m4,0
sync=縃ago sync tras cada mensaje soportado?,1,1-S,0-No
pipe=縀s soportado hacer login a tuber韆s (pipes)?,1,2-A los comandos,1-A tuber韆s de named,0-No
pri_dir=縀s soportada la selecci髇 de prioridad avanzada?,1,2-Estilo FreeBSD,1-Estilo Linux,0-No
pri_all=縎e soportan todas las prioridades?,1,1-S,0-No
tags=縎e soportan las secciones marcadas?,1,1-S,0-No
pid_file=Archivo de PID de syslog,0
syslogd=Trayectoria al servidor de syslog,0
facilities=Facilidades soportadas,0
lines=N鷐ero de l韓ea por defecto a mostrar,0
  07070100046c6d000081a40000000000000002000000013ac038a800000285000000200000000000000000000000000000001c00000003reloc/syslog/config.info.fr   syslog_conf=Chemin d'acc鑣 au fichier de configuration des logs,0
m4_conf=Traiter le fichier de config de Syslog par m4?,1,1-Oui,0-Non
m4_path=Chemin d'acc鑣  m4,0
sync=Sync after each message can be disabled?,1,1-Oui,0-Non
pipe=Logging to pipes supported?,1,2-To commands,1-To named pipes,0-No
pri_dir=Advanced priority selection supported?,1,2-FreeBSD style,1-Linux style,0-No
pri_all=Toutes les priorit閟 support閑s?,1,1-Oui,0-Non
tags=Tagged sections supported?,1,1-Oui,0-Non
pid_file=Fichier du PID de Syslog,3,None
syslogd=Chemin d'acc鑣 au serveur syslog,0
facilities=Supported facilities,0
lines=Nombre de ligne par d閒aut  afficher,0
   07070100046c6e000081a40000000000000002000000013ac038a80000032e000000200000000000000000000000000000001c00000003reloc/syslog/config.info.hu   syslog_conf=A syslog konfigur醕i髎 file-j醤ak teljes el閞閟i 鷗ja,0
m4_conf=A syslog konfigur醕i骿醫 el鮢eldolgozza az <tt>m4</tt>?,1,1-Igen,0-Nem
m4_path=Az <tt>m4</tt> teljes el閞閟i 鷗ja,0
sync=Letilthat a minden 鼁enet ut醤i lemezre 韗醩?,1,1-Igen,0-Nem
pipe=Tud a d閙on cs鮲ezet閗be 韗ni?,1,2-Program bemenet閞e,1-Neves韙ett cs鮲ezet閗be,0-Nem
pri_dir=A d閙on k閜es rafin醠tan sz閠v醠ogatni az 鼁eneteket priorit醩 szerint?,1,2-FreeBSD st韑usban,1-Linux st韑usban,0-Nem
pri_all=A d閙on k閜es kezelni minden priorit醩i szintet?,1,1-Igen,0-Nem
tags=Lehet a napl骲ejegyz閟eket a k黮d program szerint sz閠v醠ogatni?,1,1-Igen,0-Nem
pid_file=A d閙onhoz tartoz PID file,3,Nincs
syslogd=A syslog d閙on teljes el閞閟i 鷗ja,0
facilities=A napl骲ejegyz閟ek lehets間es kateg髍i醝,0
lines=A megjelen韙ett sorok sz醡a,0
  07070100046c6f000081a40000000000000002000000013ac038a800000297000000200000000000000000000000000000001c00000003reloc/syslog/config.info.pl   syslog_conf=ie縦a do pliku konfiguracyjnego sysloga,0
m4_conf=Czy konfiguracja sysloga tworzona poprzez m4?,1,1-Tak,0-Nie
m4_path=ie縦a do m4,0
sync=Mo縩a wy潮czy zrzucanie bufor體 po ka縟ym komunikacie?,1,1-Tak,0-Nie
pipe=Potrafi logowa do FIFO?,1,2-Do polece,1-Do nazwanych FIFO,0-Nie
pri_dir=Obs硊guje zaawansowany wyb髍 priorytet體?,1,2-Stylu FreeBSD,1-Stylu Linuksa,0-Nie
pri_all=Obs硊guje wszystkie priorytety?,1,1-Tak,0-Nie
tags=Tagged sections supported?,1,1-Tak,0-Nie
pid_file=Plik z&nbsp;numerem PID sysloga,3,Brak
syslogd=ie縦a do programu serwera syslog,0
facilities=Obs硊giwane kana硑 logowania,0
lines=Domy秎na liczba wy秝ietlanych linii,0
 07070100046c70000081a40000000000000002000000013ac038a800000286000000200000000000000000000000000000001f00000003reloc/syslog/config.info.ru_RU    pri_all=埋 腓 镳桀痂蝈螓 镱滗屦骅忄?,1,1-泥,0-湾
syslogd=象螯  syslog 皴疴屦,0
m4_conf=吾疣徉螓忄弪 腓 syslog 觐眙桡箴圉 镳屣痤鲥耨铕铎 m4?,1,1-泥,0-湾
syslog_conf=象螯  羿殡 觐眙桡箴圉梃 syslog,0
pri_dir=项滗屦骅忄弪 腓 箅篦眄 恹犷 镳桀痂蝈蝾?,1,2- 耱桦 FreeBSD,1- 耱桦 Linux,0-湾
pid_file=Syslog PID 羿殡,3,None
facilities=项滗屦骅忄屐 耩邃耱忄 (facilities),0
m4_path=象螯  镳屣痤鲥耨铕 m4,0
sync=项滗屦骅忄弪 腓 襻痤 狍翦疣 镱耠 赅驿钽 耦钺龛?,1,1-泥,0-湾
pipe=项滗屦骅忄弪 腓 骟痦嚯桤圉  赅磬臌?,1,2- 觐爨礓,1- 桁屙钼囗睇 赅磬臌,0-湾
tags=项滗屦骅忄 腓 螨汨痤忄眄 皴牿梃?,1,1-泥,0-湾
  07070100046c71000081a40000000000000002000000013ac038a800000286000000200000000000000000000000000000001f00000003reloc/syslog/config.info.ru_SU    syslog_conf=鹫载  屏侍 讼纹汕找撩缮 syslog,0
m4_conf=锫伊铝再琢旁友 躺 syslog 讼纹汕找撩裳 幸判蚁门佑弦贤 m4?,1,1-淞,0-钆
m4_path=鹫载  幸判蚁门佑弦 m4,0
sync=鹣哪乓稚琢旁友 躺 勇蚁 抡婆伊 邢犹 肆帜锨 酉下菖紊?,1,1-淞,0-钆
pipe=鹣哪乓稚琢旁友 躺 终椅撂哨撩裳  肆瘟藤?,1,2- 讼土文,1- 赏盼献廖钨 肆瘟藤,0-钆
pri_dir=鹣哪乓稚琢旁友 躺 仗辙叟挝偈 踪孪 幸上疑耘韵?,1,2- 釉商 FreeBSD,1- 釉商 Linux,0-钆
pri_all=饔 躺 幸上疑耘再 邢哪乓稚琢涝友?,1,1-淞,0-钆
tags=鹣哪乓稚琢涝友 躺 攒巧蚁琢挝倥 优嗣缮?,1,1-淞,0-钆
pid_file=Syslog PID 屏侍,3,None
syslogd=鹫载  syslog 优易乓,0
facilities=鹣哪乓稚琢磐倥 右拍釉琢 (facilities),0
  07070100046c72000081a40000000000000002000000013ac038a80000024f000000200000000000000000000000000000001c00000003reloc/syslog/config.info.sv   syslog_conf=S鰇v鋑 till syslog-inst鋖lningsfil,0
m4_conf=Syslog-inst鋖lningar tolkas med m4?,1,1-Ja,0-Nej
m4_path=S鰇v鋑 till m4,0
sync=Kunna sl av synkning efter varje meddelande?,1,1-Ja,0-Nej
pipe=St鰀 f鰎 loggning till pipor?,1,2-Till kommandon,1-Till namngivna pipor,0-Nej
pri_dir=St鰀 f鰎 avancerat prioritetsval?,1,2-FreeBSD-typ,1-Linux-typ,0-Ingen
pri_all=St鰀 f鰎 alla prioriteter?,1,1-Ja,0-Nej
tags=St鰀 f鰎 taggade sektioner?,1,1-Ja,0-Nej
pid_file=Syslog-PID-fil,3,Ingen
syslogd=S鰇v鋑 till syslogserver,0
facilities=Resurser som st鰀s,0
lines=Standardantal rader som ska visas,0
 07070100046c73000081a40000000000000002000000013ac038a8000002a3000000200000000000000000000000000000001c00000003reloc/syslog/config.info.tr   syslog_conf=Syslog yap齦and齬ma dosyas齨齨 yeri,0
m4_conf=Syslog yap齦and齬mas m4'e ra餸en 鏰lt齬齦s齨 m?,1,1-Evet,0-Hay齬
m4_path=m4'黱 yolu,0
sync=Her mesajdan sonra uyumlu hale getirilme desteklensin mi?,1,1-Evet,0-Hay齬
pipe=Pipe'lerin kay齮 tutulmas desteklensin mi?,1,2-Komutlarla,1-輘imlendirilmi pipe'lerle,0-Hay齬
pri_dir=Gelii 鰊celik se鏸mi desteklensin mi?,1,2-FreeBSD style,1-Linux style,0-No
pri_all=B黷黱 鰊celikler desteklensin mi?,1,1-Evet,0-Hay齬
tags=Etiketlenmi b鰈黰ler desteklensin mi?,1,1-Evet,0-Hay齬
pid_file=Syslog PID dosyas,0
syslogd=Syslog sunucusu yolu,0
facilities=Desteklenen olanaklar,0
lines=G鰎黱t黮enen 鰊tan齧l sat齬 say齭,0
 07070100046c74000081a40000000000000002000000013ac038a8000001b8000000200000000000000000000000000000001f00000003reloc/syslog/config.info.zh_CN    syslog_conf=系统日志配置文件路径,0
m4_conf=系统日志通过是否m4处理?,1,1-是,0-否
m4_path=m4的路径,0
sync=是否在每个信息生成后同步?,1,1-是,0-否
pipe=支持登录到管道吗?,1,2-到命令,1-到命名管道,0-否
pri_dir=是否高优先级支持?,1,2-FreeBSD 风格,1-Linux 风格,0-否
pri_all=是否支持所有的优先级?,1,1-是,0-否
tags=是否支持Tagged选择?,1,1-是,0-否
pid_file=系统日志PID 文件,3,None
syslogd=系统日志服务的路径,0
facilities=设备支持,0
lines=默认的显示行数,0
07070100046c75000081a40000000000000002000000013ac038a8000001e3000000200000000000000000000000000000002400000003reloc/syslog/config.info.zh_TW.Big5   syslog_conf=╰参魁舱篈郎Ч俱隔畖,0
m4_conf=╰参魁舱篈郎琌竒筁 m4 矪瞶?,1,1-琌,0-
m4_path= m4 Ч俱隔畖,0
sync=琌–癟や穿秈︽˙?,1,1-琌,0-
pipe=琌や穿恨絬?,1,2-㏑,1-㏑恨絬,0-
pri_dir=琌や穿秈顶纔舦匡拒?,1,2-FreeBSD 家Α,1-Linux 家Α,0-
pri_all=琌や穿纔舦?,1,1-琌,0-
tags=琌や穿夹癘跋琿?,1,1-琌,0-
pid_file=╰参魁 PID 郎,3,None
syslogd=╰参魁狝竟Ч俱隔畖,0
facilities=や穿砞琁,0
lines=箇砞陪ボ︽计,0
 07070100046c76000081e40000000000000002000000013ac038a80000197b000000200000000000000000000000000000001a00000003reloc/syslog/edit_log.cgi #!/usr/local/bin/perl
# edit_log.cgi
# Display a form for editing or creating a new log destination

require './syslog-lib.pl';
&ReadParse();
$conf = &get_config();
if ($in{'new'}) {
	&header($text{'create_title'}, "");
	$log = { 'active' => '1',
		 'sync' => 1,
		 'file' => '/var/log/' };
	}
else {
	&header($text{'edit_title'}, "");
	$log = $conf->[$in{'idx'}];
	}
print "<hr>\n";

# Log destination section
print "<form action=save_log.cgi>\n";
print "<input type=hidden name=new value='$in{'new'}'>\n";
print "<input type=hidden name=idx value='$in{'idx'}'>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'edit_header1'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'edit_logto'}</b></td>\n";
printf "<td><input type=radio name=mode value=0 %s> %s</td>\n",
	$log->{'file'} ? 'checked' : '', $text{'edit_file'};
printf "<td><input name=file size=40 value='%s'> %s\n",
	$log->{'file'}, &file_chooser_button("file");
if ($config{'sync'}) {
	printf "<input type=checkbox name=sync value=1 %s> %s\n",
		$log->{'sync'} ? 'checked' : '', $text{'edit_sync'};
	}
print "</td> </tr>\n";

if ($config{'pipe'} == 1) {
	print "<tr> <td></td>\n";
	printf "<td><input type=radio name=mode value=1 %s> %s</td>\n",
		$log->{'pipe'} ? 'checked' : '', $text{'edit_pipe'};
	printf "<td><input name=pipe size=40 value='%s'> %s</td> </tr>\n",
		$log->{'pipe'}, &file_chooser_button("pipe");
	}
elsif ($config{'pipe'} == 2) {
	print "<tr> <td></td>\n";
	printf "<td><input type=radio name=mode value=1 %s> %s</td>\n",
		$log->{'pipe'} ? 'checked' : '', $text{'edit_pipe2'};
	printf "<td><input name=pipe size=40 value='%s'></td> </tr>\n",
		$log->{'pipe'};
	}

print "<tr> <td></td>\n";
printf "<td><input type=radio name=mode value=2 %s> %s</td>\n",
	$log->{'host'} ? 'checked' : '', $text{'edit_host'};
printf "<td><input name=host size=20 value='%s'></td> </tr>\n",
	$log->{'host'};

print "<tr> <td></td>\n";
printf "<td><input type=radio name=mode value=3 %s> %s</td>\n",
	$log->{'users'} ? 'checked' : '', $text{'edit_users'};
printf "<td><input name=users size=40 value='%s'> %s</td> </tr>\n",
	join(" ", @{$log->{'users'}}), &user_chooser_button("users", 1);

print "<tr> <td></td>\n";
printf "<td colspan=2><input type=radio name=mode value=4 %s> %s</td> </tr>\n",
	$log->{'all'} ? 'checked' : '', $text{'edit_allusers'};

print "<tr> <td><b>$text{'edit_active'}</b></td> <td colspan=2>\n";
printf "<input type=radio name=active value=1 %s> %s\n",
	$log->{'active'} ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=active value=0 %s> %s</td> </tr>\n",
	$log->{'active'} ? '' : 'checked', $text{'no'};

if ($config{'tags'}) {
	print "<tr> <td><b>$text{'edit_tag'}</b></td> <td colspan=2>\n";
	print "<select name=tag>\n";
	foreach $t (grep { $_->{'tag'} } @$conf) {
		printf "<option %s value=%s>%s\n",
			$log->{'section'} eq $t ? 'selected' : '',
			$t->{'index'},
			$t->{'tag'} eq '*' ? $text{'all'} : $t->{'tag'};
		}
	print "</select></td> </tr>\n";
	}

print "</table></td></tr></table><p>\n";

# Log selection section
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'edit_header2'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

@facil = split(/\s+/, $config{'facilities'});
print "<tr> <td><b>$text{'edit_facil'}</b></td> ",
      "<td><b>$text{'edit_pri'}</b></td> </tr>\n";
$i = 0;
foreach $s (@{$log->{'sel'}}, ".none") {
	($f, $p) = split(/\./, $s);
	$p =~ s/warn$/warning/;
	$p =~ s/panic$/emerg/;
	$p =~ s/error$/err/;

	print "<tr> <td>\n";
	printf "<input type=radio name=fmode_$i value=0 %s>\n",
		$f =~ /,/ ? '' : 'checked';
	print "<select name=facil_$i>\n";
	printf "<option %s>\n", $f ? '' : 'selected';
	printf "<option value='*' %s>%s\n",
		$f eq '*' ? 'selected' : '', $text{'edit_all'};
	foreach $fc (@facil) {
		printf "<option %s>%s\n",
			$fc eq $f ? 'selected' : '', $fc;
		}
	print "</select>&nbsp;\n";
	printf "<input type=radio name=fmode_$i value=1 %s> %s\n",
		$f =~ /,/ ? 'checked' : '', $text{'edit_many'};
	printf "<input name=facils_$i size=25 value='%s'></td>\n",
		$f =~ /,/ ? join(" ", split(/,/, $f)) : '';

	print "<td>\n";
	printf "<input type=radio name=pmode_$i value=0 %s> %s&nbsp;\n",
		$p eq 'none' ? 'checked' : '', $text{'edit_none'};
	if ($config{'pri_all'}) {
		printf "<input type=radio name=pmode_$i value=1 %s> %s&nbsp;\n",
			$p eq '*' ? 'checked' : '', $text{'edit_all'};
		}
	printf "<input type=radio name=pmode_$i value=2 %s>\n",
		$p eq 'none' || $p eq '*' ? '' : 'checked';

	if ($config{'pri_dir'} == 1) {
		print "<select name=pdir_$i>\n";
		printf "<option value='' selected>\n"
			if ($p eq '*' || $p eq 'none');
		printf "<option value='' %s>%s\n",
			$p =~ /\!|=/ ? '' : 'selected', $text{'edit_pdir0'};
		printf "<option value='=' %s>%s\n",
			$p =~ /^=/ ? 'selected' : '', $text{'edit_pdir1'};
		printf "<option value='!' %s>%s\n",
			$p =~ /^![^=]/ ? 'selected' : '', $text{'edit_pdir2'};
		printf "<option value='!=' %s>%s\n",
			$p =~ /^!=/ ? 'selected' : '', $text{'edit_pdir3'};
		print "</select>\n";
		}
	elsif ($config{'pri_dir'} == 2) {
		print "<select name=pdir_$i>\n";
		printf "<option value='' selected>\n"
			if ($p eq '*' || $p eq 'none');
		local $pfx = $p =~ /^([<=>]+)/ ? $1 : undef;
		printf "<option value='' %s>&gt;=\n",
			$pfx eq '>=' || $pfx eq '=>' || !$pfx ? 'selected' : '';
		printf "<option value='>' %s>&gt;\n",
			$pfx eq '>' ? 'selected' : '';
		printf "<option value='<=' %s>&lt;=\n",
			$pfx eq '<=' || $pfx eq '=<' ? 'selected' : '';
		printf "<option value='<' %s>&lt;\n",
			$pfx eq '<' ? 'selected' : '';
		printf "<option value='<>' %s>&lt;&gt;\n",
			$pfx eq '<>' || $pfx eq '><' ? 'selected' : '';
		print "</select>\n";
		}
	else {
		print $text{'edit_pdir0'};
		}

	print "<select name=pri_$i>\n";
	print "<option selected>\n" if ($p eq '*' || $p eq 'none');
	foreach $pr (&list_priorities()) {
		printf "<option %s>%s\n",
			$p =~ /$pr/ ? 'selected' : '', $pr;
		}
	print "</select></td></tr>\n";
	$i++;
	}
print "</table></td></tr></table>\n";

print "<table width=100%><tr>\n";
print "<td><input type=submit value='$text{'save'}'></td>\n";
if (!$in{'new'}) {
	if ($log->{'file'} && -f $log->{'file'}) {
		print "<td align=center><input type=submit name=view ",
		      "value='$text{'edit_view'}'></td>\n";
		}
	print "<td align=right><input type=submit name=delete ",
	      "value='$text{'delete'}'></td>\n";
	}
print "</tr></table></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

 07070100078f7a000041ed0000000000000001000000023ac03c8c00000000000000200000000000000000000000000000001400000003reloc/syslog/images   07070100078f7b000081a40000000000000002000000013ac038a7000001d6000000200000000000000000000000000000001d00000003reloc/syslog/images/icon.gif  GIF89a0 0   櫃檉ff烫            !   ,    0 0  㧏	18[汹麪h$xㄣ卄Yv芎0諍'z7ZDg;3IQ墪s4q愙(ザi+C惠c
bo]韪7Lg\y疓/鷒$zhwak唦#:僫N"妏寍墤巃y敄"槒D慶w嶥6廳V:猺6X圥矋~瓭櫒 海朅秞皾杭絅l9萴
材灯.,VI,汜Y謉T餭X>鎚遺o)VKA旺鏝*W歶7綺>1菩TA#*=冟湬酕Wwh,4駧G捙B塍缪J嫯4籏5杉僤憯=Z瀌鰘4"'.mM3櫹檱j厷7區蔶掙>D'4%#r臛_e8J2親g:窘86c%N堬T 馵霎粤幝S掆
i0;o 赦 錌嬑燙M鶥 ;  07070100046c77000081e40000000000000002000000013ac038a80000127c000000200000000000000000000000000000001700000003reloc/syslog/index.cgi    #!/usr/local/bin/perl
# index.cgi
# Display syslog rules

require './syslog-lib.pl';
&header($text{'index_title'}, "", undef, 1, 1);
print "<hr>\n";

if ($config{'m4_conf'}) {
	# Does the config file need to be passed through m4?
	$oldslash = $/;
	$/ = undef;
	open(CONF, $config{'syslog_conf'});
	$conf1 = <CONF>;
	close(CONF);
	open(CONF, "$config{'m4_path'} $config{'syslog_conf'} |");
	$conf2 = <CONF>;
	close(CONF);
	$/ = $oldslash;
	if ($conf1 ne $conf2) {
		# syslog.conf has m4 directives .. ask the user if he wants
		# to filter the file
		print "<p>",&text('index_m4msg',
				  "<tt>$config{'syslog_conf'}</tt>"),"\n";
		print "<center><form action=m4.cgi>\n";
		print "<input type=submit value='$text{'index_m4'}'>\n";
		print "</form></center>\n";
		print "<hr>\n";
		&footer("/", $text{'index'});
		exit;
		}
	}

$conf = &get_config();
%access = &get_module_acl();
if ($access{'icons'}) {
	# Display log files and maybe contents
	&ReadParse();
	&foreign_require("proc", "proc-lib.pl");
	foreach $c (@$conf) {
		next if ($c->{'tag'} || !$c->{'active'});
		if ($c->{'file'} && -f $c->{'file'}) {
			local $t = $text{$config{"file_$c->{'file'}"}};
			push(@icons, "images/icon.gif");
			push(@links, "index.cgi?idx=$c->{'index'}&".
				     "lines=$in{'lines'}");
			push(@titles, $t ? "$c->{'file'}<br>($t)"
					 : $c->{'file'});
			}
		}
	&icons_table(\@links, \@titles, \@icons, 5);

	if (defined($in{'idx'})) {
		$log = $conf->[$in{'idx'}];
		print "<hr>\n";
		print "<form action=index.cgi>\n";
		print "<input type=hidden name=idx value='$in{'idx'}'>\n";
		$lines = $in{'lines'} ? $in{'lines'} : $config{'lines'};

		$| = 1;
		print "<pre>";
		$got = &foreign_call("proc", "safe_process_exec",
			      	     "tail -$lines $log->{'file'}", 0, 0,
				     STDOUT, undef, 1);
		print "<i>$text{'view_empty'}</i>\n" if (!$got);
		print "</pre>\n";
		print &text('view_header',
			    "<input name=lines size=3 value='$lines'>",
			    "<tt>$log->{'file'}</tt>"),"\n";
		print "&nbsp;&nbsp;\n";
		print "<input type=submit value='$text{'view_refresh'}'><br>\n";

		print "</form>\n";
		}
	}
else {
	# Display syslog rules
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'index_to'}</b></td> ",
	      $config{'tags'} ? "<td><b>$text{'index_tag'}</b></td>" : "",
	      "<td><b>$text{'index_active'}</b></td> ",
	      "<td colspan=2><b>$text{'index_rule'}</b></td> </tr>\n";
	foreach $c (@$conf) {
		next if ($c->{'tag'});
		print "<tr $cb> <td>\n";
		print "<a href='edit_log.cgi?idx=$c->{'index'}'>"
			if (!$access{'noedit'});
		if ($c->{'file'}) {
			print &text('index_file', "<tt>$c->{'file'}</tt>");
			}
		elsif ($c->{'pipe'} && $config{'pipe'} == 1) {
			print &text('index_pipe', "<tt>$c->{'pipe'}</tt>");
			}
		elsif ($c->{'pipe'} && $config{'pipe'} == 2) {
			print &text('index_pipe2', "<tt>$c->{'pipe'}</tt>");
			}
		elsif ($c->{'host'}) {
			print &text('index_host', "<tt>$c->{'host'}</tt>");
			}
		elsif ($c->{'all'}) {
			print $text{'index_all'};
			}
		else {
			print &text('index_users',
				    "<tt>".join(" ", @{$c->{'users'}})."</tt>");
			}
		print "</a>\n" if (!$access{'noedit'});
		print "</td>\n";
		if ($config{'tags'}) {
			printf "<td>%s</td>\n",
				$c->{'section'}->{'tag'} eq '*'
				? $text{'all'} : $c->{'section'}->{'tag'};
			}
		print "<td>",$c->{'active'} ? $text{'yes'}
					    : "<font color=#ff0000>$text{'no'}</font>",
		      "</td> <td>\n";
		print join("&nbsp;;&nbsp;", @{$c->{'sel'}});
		print "</td> <td width=10>\n";
		if ($c->{'file'} && -f $c->{'file'}) {
			print "<a href='save_log.cgi?idx=$c->{'index'}&",
			      "view=1'>$text{'index_view'}</a>\n";
			}
		else { print "<br>\n"; }
		print "</td> </tr>\n";
		}
	print "</table>\n";
	print "<a href='edit_log.cgi?new=1'>$text{'index_add'}</a>\n"
		if (!$access{'noedit'});
	print "<p>\n";
	}

if (!$access{'icons'} && !$access{'noedit'}) {
	print "<hr>\n";
	if ($config{'pid_file'}) {
		if (open(PID, $config{'pid_file'}) &&
		    <PID> =~ /^(\d+)$/ && kill(0, $1)) {
			$pid = $1;
			}
		}
	else {
		($pid) = &find_byname("syslogd");
		}
	if ($pid) {
		print "<form action=restart.cgi>\n";
		print "<table width=100%><tr>\n";
		print "<input type=hidden name=pid value='$pid'>\n";
		print "<td><input type=submit value='$text{'index_restart'}'></td>\n";
		print "<td>$text{'index_restartmsg'}</td>\n";
		print "</tr></table></form>\n";
		}
	else {
		print "<form action=start.cgi>\n";
		print "<table width=100%><tr>\n";
		print "<td><input type=submit value='$text{'index_start'}'></td>\n";
		print "<td>",&text('index_startmsg', "<tt>$config{'syslogd'}</tt>"),
		      "</td>\n";
		print "</tr></table></form>\n";
		}
	close(PID);
	}

print "<hr>\n";
&footer("/", $text{'index'});

0707010000017e000041ed0000000000000001000000023ac03c8c00000000000000200000000000000000000000000000001200000003reloc/syslog/lang 0707010000017f000081a40000000000000002000000013ac038a800000938000000200000000000000000000000000000001500000003reloc/syslog/lang/de  index_title=System Logs
index_m4msg=Ihre System-Log Konfigurationsdatei $1 scheint <tt>m4</tt> Direktiven zu enthalten. Bevor sie bearbeitet werden kann, muss Webmin die Datei durch <tt>m4</tt> schicken, um diese Direktiven sicher zu entfernen.
index_m4=Entferne m4 Directiven aus Konfigurationsdatei
index_active=Aktiv?
index_tag=Programm
index_to=Logge Ziel
index_rule=Ausgew&auml;hlte Nachrichten
index_file=datei $1
index_pipe=Named pipe $1
index_pipe2=Gebe an Kommando $1
index_host=Syslog Server auf $1
index_all=Alle Benutzer
index_users=Benutzer $1
index_add=F&uuml;ge ein neues System-Log hinzu
index_return=System-Logs
index_restart=&Auml;nderungen anwenden
index_restartmsg=Klicken Sie auf diesen Button, um die aktuelle Konfiguration zu aktivieren durch das stoppen und neu starten des <tt>Syslog</tt> Prozeses.
index_start=Starte Syslog Server
index_startmsg=Klicken Sie auf diesen Button, um den Syslog Server $1 zu starten. Bis er nicht gestartet ist, kann nichts geloggt werden.
all=Alle

restart_ekill=Fehler beim signalisieren des Syslog Prozesses $1 : $2

edit_title=System Log bearbeiten
create_title=System Log anlegen
edit_header1=Log Ziel
edit_logto=Logge auf
edit_file=Datei
edit_sync=Sync nach jedem Eintrag?
edit_pipe=Named pipe
edit_pipe2=Gebe an Kommando
edit_host=Syslog server auf
edit_users=Lokale Benutzer
edit_allusers=Alle eingeloggten Benutzer
edit_active=Logging aktiv?
edit_header2=Zu loggende Nachrichten Typen
edit_facil=Einrichtungen
edit_pri=Priorit&auml;ten
edit_all=Alle
edit_one=Eine
edit_many=Einige
edit_pdir0=Gleich oder gr&ouml;sser..
edit_pdir1=genau..
edit_pdir2=Unter..
edit_pdir3=Alle au遝r..
edit_none=Keine
edit_sel=Ausgew&auml;hlte..
edit_view=Logdatei einsehen
edit_tag=Nur f&uuml;r Programm

view_title=Logdatei einsehen
view_header=Die letzten $1 Zeilen von $2
view_empty=Logdatei ist leer
view_refresh=Aktualisieren

save_err=Fehler beim Speichern der Logdatei
save_efile='$1' ist kein g&uuml;ltiger Dateiname : $2
save_epipe='$1' ist keine g&uuml;ltige named pipe
save_epipe2=Kein Kommando gegeben, an die das Log gegeben werden soll
save_ehost=Syslog Host '$1' existiert nicht
save_enousers=Keine lokalen Benutzer angegeben
save_euser=Benutzer '$1' existiert nicht
save_efacils=Keine Einrichtungen angegeben
save_esel=Keine Nachrichten Typen zu loggen
save_epri=Keine Priorit&auml;ten gew&auml;hlt

07070100000180000081a40000000000000002000000013ac038a80000091e000000200000000000000000000000000000001500000003reloc/syslog/lang/en  index_title=System Logs
index_m4msg=Your system log configuration file $1 appears to contain <tt>m4</tt> directives. Before it can be edited, Webmin needs to pass the file through <tt>m4</tt> to safely remove these directives.
index_m4=Remove m4 directives from config file
index_active=Active?
index_tag=Program
index_to=Log destination
index_rule=Messages selected
index_file=File $1
index_pipe=Named pipe $1
index_pipe2=Pipe to command $1
index_host=Syslog server on $1
index_all=All users
index_users=Users $1
index_add=Add a new system log
index_return=system logs
index_restart=Apply Changes
index_restartmsg=Click this button to make the current configuration active by killing the running <tt>syslog</tt> process and restarting it.
index_start=Start Syslog Server
index_startmsg=Click this button to start the syslog server $1. Until it is started, no logging can be done.
all=All
index_view=View..

restart_ekill=Failed to signal syslog process $1 : $2

edit_title=Edit System Log
create_title=Add System Log
edit_header1=Log destination
edit_logto=Log to
edit_file=File
edit_sync=Sync after each message?
edit_pipe=Named pipe
edit_pipe2=Pipe to command
edit_host=Syslog server on
edit_users=Local users
edit_allusers=All logged-in users
edit_active=Logging active?
edit_header2=Message types to log
edit_facil=Facilities
edit_pri=Priorities
edit_all=All
edit_one=One
edit_many=Many
edit_pdir0=At or above..
edit_pdir1=Exactly..
edit_pdir2=Below..
edit_pdir3=All except..
edit_none=None
edit_view=View logfile
edit_tag=Only for program

view_title=View Logfile
view_header=Last $1 lines of $2
view_empty=Log file is empty
view_refresh=Refresh

save_err=Failed to save log
save_efile='$1' is not a valid filename : $2
save_epipe='$1' is not a valid named pipe
save_epipe2=Missing command to pipe to
save_ehost=Syslog host '$1' does not exist
save_enousers=No local users entered
save_euser=User '$1' does not exist
save_efacils=No facilities entered
save_esel=No message types to log
save_epri=No priority selected

log_modify=Modified log to $1
log_create=Added log to $1
log_delete=Deleted log to $1
log_apply=Applied changes

desc_sysmesg=System Messages
desc_mail=Mail Log
desc_auth=Authentication Log
desc_boot=Boot Messages
desc_news=NNTP News Log
desc_uucp=UUCP Log
desc_debug=Debugging Messages
desc_cron=Cron Job Log
  07070100000181000081a40000000000000002000000013ac038a800000b65000000200000000000000000000000000000001500000003reloc/syslog/lang/es  index_title=Historiales del Sistema
index_m4msg=Tu archivo de configuraci髇 de historial de sistema $1 parece contener directivas <tt>m4</tt>. Antes de que pueda ser editado, Webmin necesita pasar el archivo a trav閟 de <tt>m4</tt> para quitar estas directivas con seguridad.
index_m4=Quitar directivas m4 del archivo de configuraci髇
index_active=緼ctivo?
index_tag=Programa
index_to=Destino de historial
index_rule=Mensajes seleccionados
index_file=Archivo $1
index_pipe=Tuber韆 named $1
index_pipe2=Tuber韆 a comando $1
index_host=Servidor de Syslog en $1
index_all=Todos los usuarios
index_users=Los usuarios $1
index_add=A馻dir un nuevo historial de sistema
index_return=historiales de sistema
index_restart=Aplicar Cambios
index_restartmsg=Haz click en este bot髇 para hacer activa la configuraci髇 en curso mediante el asesinato del proceso de <tt>syslog</tt> en ejecuci髇 y su rearranque.
index_start=Arrancar Servidor de Syslog
index_startmsg=Haz click en este bot髇 para arrancar el servidor de syslog $1. Hasta que se arranque, no se pueden llevar historiales.
all=Todos
index_view=Ver...

restart_ekill=No pude enviar se馻l a proceso de syslog $1 : $2

edit_title=Editar Historial de Sistema
create_title=A馻dir Historial de Sistema
edit_header1=Destino de historial
edit_logto=Lleva historial en
edit_file=Archivo
edit_sync=縎e sincroniza tras cada mensaje?
edit_pipe=Tuber韆 named
edit_pipe2=Tuber韆 a comando
edit_host=Servidor de syslog en
edit_users=Usuarios locales
edit_allusers=Todos los usuarios que han hecho login
edit_active=縃istorial activo?
edit_header2=Tipos de mensaje de los que llevar historial
edit_facil=Facilidades
edit_pri=Prioridades
edit_all=Todos
edit_one=Uno
edit_many=Muchos
edit_pdir0=En o superior...
edit_pdir1=Ex醕tamente...
edit_pdir2=Por debajo...
edit_pdir3=Todos excepto...
edit_none=Ninguno
edit_view=Ver archivo de historial
edit_tag=S髄o para el programa

view_title=Ver archivo de historial
view_header=趌tima $1 l韓ea de $2
view_empty=El archivo de historial est vac韔
view_refresh=Refrescar

save_err=No pude salvar historial
save_efile='$1' no es un nombre v醠ido de archivo: $2
save_epipe='$1' no es nu nombre v醠ido de tuber韆 named
save_epipe2=Comando con el que hacer tuber韆 perdido
save_ehost=M醧uina de Syslog '$1' no existe
save_enousers=No se han digitado usuarios locales
save_euser=El usuario '$1' no existe
save_efacils=No se han digitado facilidades
save_esel=No hay tipos de mensaje de los que llevar historial
save_epri=No se ha seleccionado prioridad

log_modify=Modificado historial a $1
log_create=A馻dido historial a $1
log_delete=Borrado historial a $1
log_apply=Aplicados cambios

desc_sysmesg=Mensajess de Sistema
desc_mail=Historial de Correo
desc_auth=Historial de Autenticaci髇
desc_boot=Mensajes de Arranque
desc_news=Historia de Noticias NNTP
desc_uucp=Historial UUCP
desc_debug=Depurar Mensajes
desc_cron=Historial de Tareas de Cron
   07070100000182000081a40000000000000002000000013ac038a80000094d000000200000000000000000000000000000001500000003reloc/syslog/lang/fr  index_title=Analyse des Logs
index_m4msg=Votre fichier de configuration des logs $1 semble contenir des directives <tt>m4</tt>. Avant de pouvoir l'閐iter, Webmin  a besoin de lancer <tt>m4</tt> sur le fichier pour supprimer ces directives.
index_m4=Suppression des directives m4 du fichier de configuration
index_active=Actif?
index_tag=Programme
index_to=destination des logs
index_rule=Messages selectionn閟
index_file=Fichier $1
index_pipe=Named pipe $1
index_pipe2=Pipe to command $1
index_host=Syslog server on $1
index_all=All users
index_users=Users $1
index_add=Add a new system log
index_return=system logs
index_restart=Apply Changes
index_restartmsg=Click this button to make the current configuration active by killing the running <tt>syslog</tt> process and restarting it.
index_start=Start Syslog Server
index_startmsg=Click this button to start the syslog server $1. Until it is started, no logging can be done.
all=All
index_view=View..

restart_ekill=Failed to signal syslog process $1 : $2

edit_title=Edit System Log
create_title=Add System Log
edit_header1=Log destination
edit_logto=Log to
edit_file=File
edit_sync=Sync after each message?
edit_pipe=Named pipe
edit_pipe2=Pipe to command
edit_host=Syslog server on
edit_users=Local users
edit_allusers=All logged-in users
edit_active=Logging active?
edit_header2=Message types to log
edit_facil=Facilities
edit_pri=Priorities
edit_all=All
edit_one=One
edit_many=Many
edit_pdir0=At or above..
edit_pdir1=Exactly..
edit_pdir2=Below..
edit_pdir3=All except..
edit_none=None
edit_view=View logfile
edit_tag=Only for program

view_title=View Logfile
view_header=Last $1 lines of $2
view_empty=Log file is empty
view_refresh=Refresh

save_err=Failed to save log
save_efile='$1' is not a valid filename : $2
save_epipe='$1' is not a valid named pipe
save_epipe2=Missing command to pipe to
save_ehost=Syslog host '$1' does not exist
save_enousers=No local users entered
save_euser=User '$1' does not exist
save_efacils=No facilities entered
save_esel=No message types to log
save_epri=No priority selected

log_modify=Modified log to $1
log_create=Added log to $1
log_delete=Deleted log to $1
log_apply=Applied changes

desc_sysmesg=System Messages
desc_mail=Mail Log
desc_auth=Authentication Log
desc_boot=Boot Messages
desc_news=NNTP News Log
desc_uucp=UUCP Log
desc_debug=Debugging Messages
desc_cron=Cron Job Log
   07070100000183000081a40000000000000002000000013ac038a800000a57000000200000000000000000000000000000001500000003reloc/syslog/lang/hu  # webmin-0.81/syslog/lang/hu
# Translated by <kissg@sztaki.hu>

index_title=Rendszernapl
index_m4msg=A $1 file szemmel l醫hat骯n <tt>m4</tt> direkt韛醟at tartalmaz. Ahhoz, hogy mod髎韙ani lehessen a file-t, el鮞b 醫 kellene engedni az <tt>m4</tt>-en, korrekt黮 elt醰ol韙va ez醠tal a sz骲an forg direkt韛醟at.
index_m4=m4 direkt韛醟 t鰎l閟e a konfigur醕i髎 file-b髄
index_active=Akt韛?
index_tag=K黮d program
index_to=A napl骯datok rendeltet閟i helye
index_rule=A napl髗and esem閚yek
index_file=A $1 file
index_pipe=A $1 cs鮲ezet閗
index_pipe2=A $1 program bemenete
index_host=A $1 sz醡韙骻閜
index_all=Minden felhaszn醠
index_users=$1 felhaszn醠(k)
index_add=趈 napl l閠rehoz醩a
index_return=a rendszernapl髃hoz
index_restart=A v醠toz醩ok 閘etbe l閜tet閟e
index_restartmsg=Ha megnyomod ezt a gombot, 閘etbe l閜 a fenti konfigur醕i, az 閜pen fut <tt>syslogd</tt> processz 鷍raind韙醩a r関閚.
index_start=A <tt>syslogd</tt> ind韙醩a
index_startmsg=Nyomd meg ezt a gombot, hogy elinduljon a $1 syslog szerver! Am韌 a d閙on nem fut, addig nem t鰎t閚ik semmilyen napl髗醩.
all=B醨melyik

restart_ekill=Nem siker黮t jelz閟t k黮deni a $1 processznek: $2

edit_title=Rendszernapl m骴os韙醩a
create_title=趈 rendszernapl
edit_header1=A napl骯datok rendeltet閟i helye
edit_logto=Napl髗醩 helye
edit_file=Fil&#101
edit_sync=Diszkre ment閟 minden 鷍 鼁enet ut醤
edit_pipe=Neves韙ett cs鮲ezet閗
edit_pipe2=Program bemenete
edit_host=M醩ik sz醡韙骻閜
edit_users=A megadott felhaszn醠髃 termin醠ja
edit_allusers=Minden akt韛 felhaszn醠 termin醠ja
edit_active=Napl髗醩 bekapcsolva?
edit_header2=A napl髗and 鼁enetek
edit_facil=Kateg髍ia
edit_pri=Priorit醩
edit_all=Mind
edit_one=Csak egy
edit_many=A k鰒etkez鮧
edit_pdir0=Legal醔b...
edit_pdir1=Pontosan...
edit_pdir2=Kisebb, mint...
edit_pdir3=Minden, kiv関e...
edit_none=Egyik sem
edit_view=A logfile megtekint閟e
edit_tag=Mely programt髄 sz醨maz napl骯datok ker黮nek ide?

view_title=Egy logfile megtekint閟e
view_header=A $2 file utols $1 sora
view_empty=A logfile 黵es
view_refresh=Friss韙閟

save_err=Nem siker黮t elmenteni
save_efile=A '$1' file nem nyithat meg: $2
save_epipe=A '$1' cs鮲ezet閗 nem 韗hat
save_epipe2=Nincs megadva a parancs
save_ehost=A '$1' nev g閜 nem l閠ezik
save_enousers=A felhaszn醠髃 list醞a 黵es
save_euser=Nincs '$1' azonos韙骿 felhaszn醠
save_efacils=A kateg髍ia nem volt megadva
save_esel=Nincsenek megadva a napl髗and 鼁enetfajt醟
save_epri=Nincs megadva a priorit醩

log_modify=$1 fel ir醤yul napl髗醩 m骴os韙醩a
log_create=$1 fel ir醤yul napl髗醩 elind韙醩a
log_delete=$1 fel ir醤yul napl髗醩 megsz黱tet閟e
log_apply=A v醠toz醩ok 閘etbe l閜tet閟e

 07070100000193000081a40000000000000002000000013ac038a800000a9a000000200000000000000000000000000000001500000003reloc/syslog/lang/pl  index_title=Logi Systemowe
index_m4msg=Tw骿 plik konfiguracyjny systemu logowania $1 wygl眃a jakby zawiera dyrektywy <tt>m4</tt>. Webmin, zanim b阣zie m骻 go modyfikowa, wymaga, aby przetworzy ten plik przez <tt>m4</tt> w&nbsp;celu bezpiecznego usuni阠ia tych dyrektyw.
index_m4=Usu dyrektywy m4 z pliku konfiguracyjnego
index_active=Aktywny?
index_tag=Program
index_to=Miejsce logowania
index_rule=Wybrane komunikaty
index_file=Plik $1
index_pipe=Nazwanego FIFO $1
index_pipe2=Przekierowanie do programu $1
index_host=Serwer syslog na $1
index_all=Wszystkich u縴tkownik體
index_users=U縴tkownicy $1
index_add=Dodaj nowy log systemowy
index_return=log體 systemowych
index_restart=Zastosuj Zmiany
index_restartmsg=Naci秐ij ten przycisk, aby zastosowac aktualn konfiguracj poprzez zabicie dzia砤j眂ego procesu <tt>sysloga</tt> i&nbsp;zrestartowanie go.
index_start=Uruchom Serwer Syslog
index_startmsg=Naci秐ij ten przycisk, aby uruchomi serwer syslog $1. Do czasu jego startu logowanie nie b阣zie mo縧iwe.
all=Wszystkie
index_view=Obejrzyj..

restart_ekill=Nie uda硂 si zawiadomic procesu sysloga $1 : $2

edit_title=Zmie Log Systemowy
create_title=Dodaj Log Systemowy
edit_header1=Miejsce logowania
edit_logto=Logowanie do
edit_file=Pliku
edit_sync=Zrzuca bufory?
edit_pipe=Nazwane FIFO
edit_pipe2=Przekierowanie do programu
edit_host=Serwera syslog na
edit_users=Lokalnych u縴tkownik體
edit_allusers=Wszystkich zalogowanych u縴tkownik體
edit_active=Logowanie aktywne?
edit_header2=Rodzaje logowanych wiadomo禼i
edit_facil=Kana硑
edit_pri=Priorytety
edit_all=Wszystkie
edit_one=Jeden
edit_many=Wiele
edit_pdir0=Ten lub wy縮zy..
edit_pdir1=Dok砤dnie..
edit_pdir2=Poni縠j..
edit_pdir3=Wszystkie opr骳z..
edit_none=痑den
edit_sel=Wybrane..
edit_view=Obejrzyj plik logu
edit_tag=Tylko dla programu

view_title=Obejrzyj Plik Logu
view_header=Ostatnie $1 linii $2
view_empty=Plik logu jest pusty
view_refresh=Od秝ie

save_err=Nie ud硂 sie zapisa logu
save_efile='$1' nie jest poprawn nazw pliku$nbsp;: $2
save_epipe='$1' nie jest poprawn nazw FIFO
save_epipe2=Brak polecenia, do kt髍ego przekierowywa
save_ehost=Komputer z syslogiem '$1' nie istnieje
save_enousers=Nie podano lokalnych u縴tkownik體
save_euser=U縴tkownik '$1' nie istnieje
save_efacils=Nie podano kana丑w logowania
save_esel=Nie podano rodzaj體 wiadomo禼i
save_epri=Nie wybrano priorytetu

log_modify=Zmieniono logowanie do $1
log_create=Dodano logowanie do $1
log_delete=Usuni阾o logowanie do $1
log_apply=Zastosowano zmiany

desc_sysmesg=Komunikaty systemu
desc_mail=Log poczty
desc_auth=Log autoryzacji
desc_boot=Komunikaty startowe
desc_news=Log NNTP
desc_uucp=Log UUCP
desc_debug=Komunikaty uruchamiania
desc_cron=Log zada crona

  07070100000194000081a40000000000000002000000013ac038a80000093a000000200000000000000000000000000000001800000003reloc/syslog/lang/ru_RU   save_err=硒栳赅 镳 耦躔囗屙梃 骟痦嚯
edit_pri=橡桀痂蝈螓
index_pipe=褥屙钼囗睇 赅磬 $1
edit_header1=脏殡 骟痦嚯
edit_header2=诣稃 耦钺龛 潆 骟痦嚯桊钼囗
edit_pipe=褥屙钼囗睇 赅磬
edit_users=祟赅朦睇 镱朦珙忄蝈腓
save_epipe='$1' 礤 怆弪 漕矬耱桁 桁屙钼囗睇 赅磬腩
edit_allusers=埋 疣犷蜞桢  耔耱屐 镱朦珙忄蝈腓
edit_none=湾
save_efacils=湾 忖邃屙 耩邃耱忄
index_users=项腌钼囹咫 Users $1
create_title=念徉怆屙桢 谚耱屐眍泐 企痦嚯
index_active=狸蜩忮?
index_add=念徉忤螯 眍恹 耔耱屐睇 骟痦嚯
index_tag=橡钽疣祆
index_file=脏殡 $1
view_refresh=吾眍忤螯
index_all=埋 镱朦珙忄蝈腓
index_m4msg=锣 羿殡 觐眙泱疣鲨 耔耱屐睇 骟痦嚯钼 $1 镱躅驽 耦溴骅 滂疱牝桠 镳屣痤鲥耨铕 <tt>m4</tt>. 襄疱 邈 疱溧牝桊钼囗桢, Webmin 漕腈屙 钺疣犷蜞螯 羿殡  镱祛 <tt>m4</tt>, 黩钺 觐痧尻蝽 箐嚯栩  滂疱牝桠.
index_m4=愉嚯屙桢 滂疱牝桠 m4 桤 觐眙桡箴圉桀眄钽 羿殡
edit_file=脏殡
save_efile='$1' 礤 怆弪 漕矬耱桁 桁屙屐 羿殡 : $2
index_restartmsg=袜骒栩 磬  觏铒牦 潆 嚓蜩忤玎鲨 蝈牦 觐眙桡箴圉梃 矬蝈 疱耱囵蜞 镳铞羼襦 <tt>syslog</tt>.
save_epipe2=悟耋蝰蜮箦 觐爨礓 潆 镥疱磬镳噔脲龛 桧纛痨圉梃  礤
save_esel=悟耋蝰蜮簋 蜩稃 耦钺龛 潆 骟痦嚯桊钼囗
index_to=脏殡 骟痦嚯
view_title=橡铖祛蝠 企痦嚯
index_host=Syslog 皴疴屦 磬 $1
edit_active=企痦嚯桤圉 嚓蜩忤玷痤忄磬?
edit_pipe2=襄疱磬镳噔脲龛  觐爨礓
edit_host=Syslog 皴疴屦 磬
save_ehost=Syslog 躅耱 '$1' 礤 耋耱怏弪
save_euser=项朦珙忄蝈朦 '$1' 礤 耋耱怏弪
save_enousers=湾 忖邃屙 腩赅朦睇 镱朦珙忄蝈腓
view_empty=企痦嚯 矬耱
index_pipe2=襄疱磬镳噔脲龛  觐爨礓 $1
edit_facil=佯邃耱忄
index_return=耔耱屐睇 骟痦嚯
edit_many=添钽
edit_view=橡铖祛蝠 企痦嚯
edit_sync=厌疣覃忄螯 狍翦 镱耠 赅驿钽 耦钺龛
save_epri=湾 恹狃囗 镳桀痂蝈
all=埋
edit_sel=蔓狃囗睇..
edit_one=武桧
index_rule=蔓狃囗睇 耦钺龛
edit_title=绣溧牝桊钼囗桢 谚耱屐眍泐 企痦嚯
edit_logto=企痦嚯桊钼囹 
view_header=项耠邃龛 $1 腓龛 桤 $2
index_restart=橡桧螯 如戾礤龛
index_start=羊囵蝾忄螯 Syslog 彦疴屦
index_title=谚耱屐睇 企痦嚯
index_startmsg=袜骒栩 磬  觏铒牦 潆 耱囵蜞 syslog 皴疴屦 $1. 项赅 铐 礤 耱囵蝾忄, 骟痦嚯桊钼囗桢 礤忸珈铈眍.
edit_pdir0=翌黜 桦 犷脲..
edit_pdir1=翌黜..
edit_pdir2=体礤..
edit_pdir3=埋 牮铎..
edit_tag=翌腙 潆 镳沭囔禧
restart_ekill=硒栳赅 镳 镥疱溧麇 耔沩嚯 镳铞羼耋 syslog $1 : $2
edit_all=埋
  07070100000195000081a40000000000000002000000013ac038a80000093f000000200000000000000000000000000000001800000003reloc/syslog/lang/ru_SU   index_title=笊釉磐钨 稣椅撂
index_m4msg=髁 屏侍 讼纹钦伊蒙 由釉磐钨 终椅撂献 $1 邢认峙 酉呐稚 纳遗嗽勺 幸判蚁门佑弦 <tt>m4</tt>. 鹋遗 徘 遗牧嗽梢献廖膳, Webmin 南讨盼 下伊孪粤载 屏侍  邢拖葚 <tt>m4</tt>, 拊下 讼乙潘晕 漳撂稍 茉 纳遗嗽勺.
index_m4=跄撂盼膳 纳遗嗽勺 m4 哨 讼纹汕找撩上挝锨 屏侍
index_active=崴陨着?
index_tag=鹨锨伊屯
index_to=媪侍 终椅撂
index_rule=髻乱廖钨 酉下菖紊
index_file=媪侍 $1
index_pipe=橥盼献廖钨 肆瘟 $1
index_pipe2=鹋遗瘟幸磷膛紊  讼土文 $1
index_host=Syslog 优易乓 瘟 $1
index_all=饔 邢特谙琢耘躺
index_users=鹣腾献猎盘 Users $1
index_add=湎铝咨载 蜗踪 由釉磐钨 终椅撂
index_return=由釉磐钨 终椅撂
index_restart=鹨晌言 橼团闻紊
index_restartmsg=盍滞稍 瘟 茉 宋闲苏 奶 了陨咨诹蒙 耘苏菖 讼纹汕找撩缮 姓耘 遗釉烈粤 幸厦庞恿 <tt>syslog</tt>.
index_start=笤烈韵琢载 Syslog 笈易乓
index_startmsg=盍滞稍 瘟 茉 宋闲苏 奶 釉烈粤 syslog 优易乓 $1. 鹣肆 衔 闻 釉烈韵琢, 终椅撂梢献廖膳 闻紫谕现蜗.
all=饔

restart_ekill=镗陕肆 幸 信遗牧夼 由俏撂 幸厦庞诱 syslog $1 : $2

edit_title=蚺牧嗽梢献廖膳 笊釉磐蜗窍 稣椅撂
create_title=湎铝滋盼膳 笊釉磐蜗窍 稣椅撂
edit_header1=媪侍 终椅撂
edit_logto=稣椅撂梢献猎 
edit_file=媪侍
edit_sync=舐伊淤琢载 抡婆 邢犹 肆帜锨 酉下菖紊
edit_pipe=橥盼献廖钨 肆瘟
edit_pipe2=鹋遗瘟幸磷膛紊  讼土文
edit_host=Syslog 优易乓 瘟
edit_users=煜肆特钨 邢特谙琢耘躺
edit_allusers=饔 伊孪粤垒膳  由釉磐 邢特谙琢耘躺
edit_active=稣椅撂哨撩裳 了陨咨谏蚁琢瘟?
edit_header2=羯匈 酉下菖紊 奶 终椅撂梢献廖裳
edit_facil=笠拍釉琢
edit_pri=鹨上疑耘再
edit_all=饔
edit_one=锬晌
edit_many=砦锨
edit_pdir0=粝尬 商 孪膛..
edit_pdir1=粝尬..
edit_pdir2=砼闻..
edit_pdir3=饔 艘贤..
edit_none=钆
edit_sel=髻乱廖钨..
edit_view=鹨嫌拖砸 稣椅撂
edit_tag=粝趟 奶 幸且镣唾

view_title=鹨嫌拖砸 稣椅撂
view_header=鹣犹拍紊 $1 躺紊 哨 $2
view_empty=稣椅撂 姓釉
view_refresh=锫蜗咨载

save_err=镗陕肆 幸 酉纫廖盼缮 终椅撂
save_efile='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 屏侍 : $2
save_epipe='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼献廖钨 肆瘟滔
save_epipe2=镌诱杂宰张 讼土文 奶 信遗瘟幸磷膛紊 晌葡彝撩缮  闻
save_ehost=Syslog 认釉 '$1' 闻 诱菖釉渍旁
save_enousers=钆 鬃拍盼 滔肆特钨 邢特谙琢耘躺
save_euser=鹣特谙琢耘特 '$1' 闻 诱菖釉渍旁
save_efacils=钆 鬃拍盼 右拍釉琢
save_esel=镌诱杂宰绽 陨匈 酉下菖紊 奶 终椅撂梢献廖裳
save_epri=钆 踪乱廖 幸上疑耘

 07070100000196000081a40000000000000002000000013ac038a800000a41000000200000000000000000000000000000001500000003reloc/syslog/lang/sv  index_title=Systemloggar
index_m4msg=Inst鋖lningsfilen $1 f鰎 systemloggning verkar inneh錶la <tt>m4</tt>-direktiv. Innan du kan 鋘dra filen m錽te Webmin k鰎a den genom <tt>m4</tt> f鰎 att dessa direktiv ska tas bort p ett s鋕ert s鋞t.
index_m4=Ta bort m4-direktiv fr錸 inst鋖lningsfil
index_active=Aktiv?
index_tag=Program
index_to=Loggdestination
index_rule=Valda meddelanden
index_file=Fil $1
index_pipe=Namngiven pipa $1
index_pipe2=Pipa till kommando $1
index_host=Syslogserver p $1
index_all=Alla anv鋘dare
index_users=Anv鋘dare $1
index_add=L鋑g till en systemlogg
index_return=systemloggar
index_restart=Genomf鰎 鋘dringar
index_restartmsg=Om du trycker p denna knapp aktiveras dessa inst鋖lningar genom att den nu k鰎ande <tt>syslog</tt>-processen sl錽 ihj鋖 och en ny startas.
index_start=Starta syslogserver
index_startmsg=Tryck p denna knapp f鰎 att starta syslogserver $1. Innan den 鋜 startad loggas ingenting.
all=Alla
index_view=Visa ...

restart_ekill=Det gick inte att skicka signal till syslogprocess $1: $2

edit_title=膎dra systemlogg
create_title=L鋑g till systemlogg
edit_header1=Loggdestination
edit_logto=Logga till
edit_file=Fil
edit_sync=Synka efter varje meddelande?
edit_pipe=Namngiven pipa
edit_pipe2=Pipa till kommando
edit_host=Syslogserver p
edit_users=Lokala anv鋘dare
edit_allusers=Alla inloggade anv鋘dare
edit_active=Loggning aktiv?
edit_header2=Meddelandetyper att logga
edit_facil=Resurser
edit_pri=Prioriteter
edit_all=Alla
edit_one=En
edit_many=M錸ga
edit_pdir0=Denna eller 鰒er ...
edit_pdir1=Exakt ...
edit_pdir2=Under ...
edit_pdir3=Alla utom ...
edit_none=Ingen
edit_view=Visa loggfil
edit_tag=Endast f鰎 program

view_title=Visa loggfil
view_header=Senaste $1 raderna i $2
view_empty=Loggfilen 鋜 tom
view_refresh=Uppdatera

save_err=Det gick inte att spara loggen
save_efile='$1' 鋜 inte en giltig fil: $2
save_epipe='$1' 鋜 inte en giltig namngiven pipa
save_epipe2=Du har inte angivit n錱ot kommando att pipa till
save_ehost=Syslogdator '$1' finns inte
save_enousers=Du har inte angivit n錱on lokal anv鋘dare
save_euser=Anv鋘dare '$1' finns inte
save_efacils=Du har inte angivit n錱on resurs
save_esel=Du har inte angivit n錱on meddelandetyp som ska loggas
save_epri=Du har inte angivit n錱on prioritet

log_modify=Modifierade loggning till $1
log_create=Lade till loggning till $1
log_delete=Tog bort loggning till $1
log_apply=Tog 鋘dringar i drift

desc_sysmesg=Systemmeddelanden
desc_mail=E-postlogg
desc_auth=Autentiseringslogg
desc_boot=Startmeddelanden
desc_news=Logg f鰎 NNTP News
desc_uucp=UUCP-logg
desc_debug=Debuggningsmeddelanden
desc_cron=Logg f鰎 cronjobb
   07070100000197000081a40000000000000002000000013ac038a800000938000000200000000000000000000000000000001500000003reloc/syslog/lang/tr  index_title=System Kay齮lar
index_m4msg=Sisteminizin kay齮 dosyas $1 <tt>m4</tt> komutlar齨 i鏴riyor.De餴⺶irmeden 鰊ce Webmin bu <tt>m4</tt> komutlar齨 silmenize ihtiya duymaktad齬.
index_m4=Ayar dosyas齨da m4 komutlar齨 sil
index_active=Aktif mi?
index_tag=Program
index_to=Kay齮 dosyas hedefi
index_rule=Se鏸len mesajlar
index_file=$1 dosyas
index_pipe=輘imlendirilmi boru $1
index_pipe2=$1 komutu borusu
index_host=$1'deki sistem kay齮 sunucusu
index_all=B黷黱 kullan齝齦ar
index_users=$1 Kullan齝齦ar
index_add=Yeni sistem kay齞 ekle
index_return=sistem kay齮lar
index_restart=De餴㱮klikleri Uygula
index_restartmsg=Bu butonu t齥layarak mevcut yap齦and齬may aktif hale getirmek i鏸n 鏰lan <tt>syslog</tt> iemini durdurup tekrar baatabilirsiniz
index_start=Sistem Kay齮 Sunucusunu Baat
index_startmsg=Bu butonu t齥layarak $1 sistem kay齮 sunucusunu baatabilirsiniz.Baamadan kay齮 iemi yap齦mayacakt齬
all=Hepsi

restart_ekill=$1 sistem kay齮 ieminde iret hatas olu⺶u : $2

edit_title=Sistem Kayd齨 De餴⺶ir
create_title=Sistem Kayd Ekle
edit_header1=Kay齮 hedefi
edit_logto=Kay齮 tut
edit_file=Dosya
edit_sync=Her mesajdan sonra d鼁enlensin?
edit_pipe=Named pipe
edit_pipe2=Komut borusu
edit_host=Sistem kay齮 sunucusu
edit_users=Yerel kullan齝齦ar
edit_allusers=B黷黱 kay齮lar tutulan kullan齝齦ar
edit_active=Kay齮 tutma aktif?
edit_header2=Kay齮 mesaj tipleri
edit_facil=輒kanlar
edit_pri=謓celikler
edit_all=Hepsi
edit_one=Biri
edit_many=莖饀
edit_pdir0=E㱮t veya daha y黭sek..
edit_pdir1=E㱮t..
edit_pdir2=Alt齨da..
edit_pdir3=Hepsinin Alt齨da..
edit_none=Hi鏱iri
edit_sel=Se鏸li..
edit_view=Kay齮 dosyas齨 g鰏ter
edit_tag=Sadece program i鏸n

view_title=Kay齮 dosyas齨 g鰏ter
view_header=$2'nin son $1 sat齬
view_empty=Kay齮 dosyas bo
view_refresh=Yenile

save_err=FKay齮 dosyas齨齨 kaydedilmesinde hata olu⺶u
save_efile='$1' ge鏴rli bir dosya ismi de餴l : $2
save_epipe='$1' ge鏴rli bir isimlendirilmi boru de餴l
save_epipe2=Boru i鏸n kay齪 komut
save_ehost=Sistem kay齮 makinesi '$1' mevcut de餴l
save_enousers=Yerel kullan齝齦ar girmedi
save_euser='$1' kullan齝齭 mevcut de餴l 
save_efacils=輒kanlar girilmedi
save_esel=Kay齮 i鏸n mesaj tipi yok
save_epri=謓celik se鏸lmedi

log_modify=$1 kayd de餴⺶irildi
log_create=$1 kayd olu⺶uruldu
log_delete=$1 kayd silindi
log_apply=De餴㱮klikler uyguland

07070100000198000081a40000000000000002000000013ac038a800000783000000200000000000000000000000000000001800000003reloc/syslog/lang/zh_CN   index_title=系统日志
index_m4msg=系统日志配置文件 $1 包含 <tt>m4</tt> 指令. Webmin需要通过<tt>m4</tt>跳过这个文件,安全地移动这些指令,这样才能被编辑.
index_m4=淙配置文件中移动m4指令
index_active=激活?
index_tag=程序
index_to=日志目标
index_rule=已经选择的信息
index_file=文件 $1
index_pipe=命名管道 $1
index_pipe2=传递管道中的信息到命令 $1
index_host=系统日志服务在 $1
index_all=所有用户
index_users=用户 $1
index_add=增加系统日志
index_return=系统日志
index_restart=应用
index_restartmsg=单击此按钮关闭当前<tt>系统日志</tt>进程并使用当前配置重新启动.
index_start=启动系统日志服务
index_startmsg=单击此按扭启动日志服务 $1. 启动之前不会有日志写入
all=所有
index_view=显示..

restart_ekill=给日志进程发送信号失败 $1 : $2

edit_title=编辑系统日志
create_title=增加系统日志
edit_header1=日志目标
edit_logto=写入日志到
edit_file=文件
edit_sync=是否每条信息之后同步?
edit_pipe=命名管道
edit_pipe2=管道中的信息传输到命令
edit_host=系统日志服务在
edit_users=本地用户
edit_allusers=所有登录进入的用户
edit_active=激活日志?
edit_header2=日志消息类型
edit_facil=设备
edit_pri=优先级
edit_all=所有
edit_one=一个
edit_many=多个
edit_pdir0=至少..
edit_pdir1=精确..
edit_pdir2=低于..
edit_pdir3=所有的除了..
edit_none=没有
edit_view=查看日志文件
edit_tag=仅仅针对程序

view_title=查看日志文件
view_header=$2的最后 $1 行
view_empty=日志文件空
view_refresh=刷新

save_err=保存日志失败
save_efile='$1' 是错误的文件名 : $2
save_epipe='$1' 是错误的管道名
save_epipe2=丢失管道信息输出目标的命令
save_ehost=系统日志主机'$1'不存在
save_enousers=没有输入本地用户
save_euser=用户 '$1' 不存在
save_efacils=没有输入设备
save_esel=没有产生日志的信息类型
save_epri=没有选择优先级

log_modify=在 $1 更新日志到 $1
log_create=在 $1 增加日志
log_delete=在 $1 删除日志
log_apply=应用改变值

desc_sysmesg=系统信息
desc_mail=邮件日志
desc_auth=认证日志
desc_boot=引导信息
desc_news=NNTP 新闻日志
desc_uucp=UUCP 日志
desc_debug=调试信息
desc_cron=Cron 任务日志
 07070100000199000081a40000000000000002000000013ac038a8000006ba000000200000000000000000000000000000001d00000003reloc/syslog/lang/zh_TW.Big5  index_title=╰参魁
index_m4msg=眤╰参魁舱篈郎 $1  <tt>m4</tt> ㏑. ウ砆絪胯玡, Webmin ゲ斗盢硂郎ノ <tt>m4</tt> 矪瞶, 簿埃硂ㄇ㏑.
index_m4=眖舱篈郎い簿埃 m4 ㏑
index_active=琌币笆?
index_tag=祘Α
index_to=魁ヘ夹
index_rule=匡拒癟
index_file=郎 $1
index_pipe=㏑恨絬 $1
index_pipe2=恨絬 $1
index_host=╰参魁狝竟 $1
index_all=┮Τㄏノ
index_users=ㄏノ $1
index_add=糤穝╰参魁
index_return=╰参魁
index_restart=甅ノ跑
index_restartmsg=硂秙穝币笆 <tt>syslog</tt> 祘, 絋﹚┮Τ跑ネ.
index_start=币笆╰参魁狝竟
index_startmsg=硂秙币笆╰参魁狝竟 $1. ウ砆币笆玡, ぃ穦癘魁ヴㄆン.
all=场

restart_ekill=礚猭癳北癟腹倒╰参魁祘 $1: $2

edit_title=絪胯╰参魁
create_title=糤╰参魁
edit_header1=魁ヘ夹
edit_logto=魁
edit_file=郎
edit_sync=魁癟ぇ˙
edit_pipe=㏑恨絬
edit_pipe2=恨絬
edit_host=╰参魁狝竟
edit_users=セ狠ㄏノ
edit_allusers=┮Τ祅ㄏノ
edit_active=琌币笆魁?
edit_header2=璶魁癟摸
edit_facil=砞称
edit_pri=纔
edit_all=场
edit_one=
edit_many=
edit_pdir0=...┪ぇ
edit_pdir1=琌...
edit_pdir2=...
edit_pdir3=场, 埃...
edit_none=礚
edit_sel=匡拒...
edit_view=浪跌魁郎
edit_tag=倒祘Α

view_title=浪跌魁郎
view_header=程 $1 ︽,  $2
view_empty=魁郎琌
view_refresh=穝弄

save_err=礚猭纗魁
save_efile='$1' ぃ琌Τ郎: $2
save_epipe='$1' ぃ琌Τ㏑恨絬
save_epipe2=框ア恨絬
save_ehost=╰参魁诀 '$1' ぃ
save_enousers=⊿Τ块セ狠ㄏノ
save_euser=ㄏノ '$1' ぃ
save_efacils=⊿Τ块砞称
save_esel=⊿Τ璶魁癟摸
save_epri=⊿Τ匡拒纔

  07070100046c78000081a40000000000000002000000013ac038a80000027c000000200000000000000000000000000000001b00000003reloc/syslog/log_parser.pl    # log_parser.pl
# Functions for parsing this module's logs

require './syslog-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p) = @_;
if ($action eq 'modify') {
	return &text('log_modify', "<tt>$object</tt>");
	}
elsif ($action eq 'create') {
	return &text('log_create', "<tt>$object</tt>");
	}
elsif ($action eq 'delete') {
	return &text('log_delete', "<tt>$object</tt>");
	}
elsif ($action eq 'apply') {
	return $text{'log_apply'};
	}
else {
	return undef;
	}
}

07070100046c79000081a40000000000000002000000013ac038a800000014000000200000000000000000000000000000001600000003reloc/syslog/low.risk noconfig=1
noedit=1
07070100046c7a000081a40000000000000002000000013ac038a800000008000000200000000000000000000000000000001700000003reloc/syslog/low.skill    icons=1
07070100046c7b000081e40000000000000002000000013ac038a800000300000000200000000000000000000000000000001400000003reloc/syslog/m4.cgi   #!/usr/local/bin/perl
# m4.cgi
# Pass the syslog config file though m4

require './syslog-lib.pl';
use Socket;

# is this loghost? Find out by sending a UDP packet to it
socket(UDP, PF_INET, SOCK_DGRAM, getprotobyname("udp"));
setsockopt(UDP, SOL_SOCKET, SO_BROADCAST, pack("l", 1));
$port = 45678;
while(!bind(UDP, sockaddr_in($port, INADDR_ANY))) {
	$port++;
	}
send(UDP, "foo", 0, sockaddr_in($port, inet_aton("loghost")));
vec($rin, fileno(UDP), 1) = 1;
if (select($rin, undef, undef, 1)) {
	$args .= " -DLOGHOST";
	}
close(UDP);

# Run m4
$oldslash = $/;
$/ = undef;
open(CONF, "$config{'m4_path'} $args $config{'syslog_conf'} |");
$conf = <CONF>;
close(CONF);
open(CONF, ">$config{'syslog_conf'}");
print CONF $conf;
close(CONF);
$/ = $oldslash;
&redirect("");

07070100046c7c000081a40000000000000002000000013ac038a80000000b000000200000000000000000000000000000001900000003reloc/syslog/medium.risk  noconfig=1
 07070100046c7d000081a40000000000000002000000013ac038a700000214000000200000000000000000000000000000001900000003reloc/syslog/module.info  desc_zh_CN=系统日志
name=Syslog
desc_pt=Historiais do Sistema
desc_tr=Sistem Kay齮lar
desc_es=Historiales del Sistema
desc_de=System Logs
desc_fr=Analyse des Logs
desc_sv=Systemloggar
desc_ru_SU=笊釉磐钨 稣椅撂
desc_pl=Logi systemowe
category=system
os_support=solaris open-linux redhat-linux debian-linux suse-linux slackware-linux freebsd openbsd turbo-linux corel-linux macos hpux cobalt-linux irix unixware aix
desc_zh_TW.Big5=╰参魁
desc=System Logs
desc_hu=Rendszernapl
risk=low medium high
desc_ru_RU=谚耱屐睇 企痦嚯
07070100046c7e000081e40000000000000002000000013ac038a800000140000000200000000000000000000000000000001900000003reloc/syslog/restart.cgi  #!/usr/local/bin/perl
# restart.cgi
# Kill and restart the syslog process

require './syslog-lib.pl';
&ReadParse();
&kill_logged('TERM', $in{'pid'}) ||
	&error(&text('restart_ekill', $in{'pid'}, $!));
&system_logged("cd / ; $config{'syslogd'} >/dev/null 2>/dev/null </dev/null &");
&webmin_log("apply");
&redirect("");

07070100046c7f000081e40000000000000002000000013ac038a800000c80000000200000000000000000000000000000001a00000003reloc/syslog/save_log.cgi #!/usr/local/bin/perl
# save_log.cgi
# Save, create, delete or view a log

require './syslog-lib.pl';
&ReadParse();
&foreign_require("proc", "proc-lib.pl");
&lock_file($config{'syslog_conf'});
$conf = &get_config();

if ($in{'delete'}) {
	# Deleting a log 
	$log = $conf->[$in{'idx'}];
	&delete_log($log);
	&redirect("");
	}
elsif ($in{'view'}) {
	# Viewing a log file
	$log = $conf->[$in{'idx'}];
	&header($text{'view_title'}, "");
	print "<hr>\n";

	print "<form action=save_log.cgi>\n";
	print "<input type=hidden name=idx value='$in{'idx'}'>\n";
	print "<input type=hidden name=view value=1>\n";
	$lines = $in{'lines'} ? $in{'lines'} : $config{'lines'};

	$| = 1;
	print "<pre>";
	$got = &foreign_call("proc", "safe_process_exec",
		      "tail -$lines $log->{'file'}", 0, 0, STDOUT, undef, 1);
	print "<i>$text{'view_empty'}</i>\n" if (!$got);
	print "</pre>\n";
	print &text('view_header', "<input name=lines size=3 value='$lines'>",
		    "<tt>$log->{'file'}</tt>"),"\n";
	print "&nbsp;&nbsp;\n";
	print "<input type=submit value='$text{'view_refresh'}'><br>\n";

	print "</form><hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}
else {
	# saving or updating a log
	&error_setup($text{'save_err'});

	# Validate destination section
	if ($in{'mode'} == 0) {
		open(FILE, ">>$in{'file'}") ||
			&error(&text('save_efile', $in{'file'}, $!));
		close(FILE);
		system("chmod go-wx $in{'file'}");
		$log->{'file'} = $in{'file'};
		$log->{'sync'} = $in{'sync'};
		}
	elsif ($in{'mode'} == 1 && $config{'pipe'} == 1) {
		-w $in{'pipe'} || &error(&text('save_epipe', $in{'pipe'}));
		$log->{'pipe'} = $in{'pipe'};
		}
	elsif ($in{'mode'} == 1 && $config{'pipe'} == 2) {
		$in{'pipe'} || &error($text{'save_epipe2'});
		$log->{'pipe'} = $in{'pipe'};
		}
	elsif ($in{'mode'} == 2) {
		gethostbyname($in{'host'}) ||
			&error(&text('save_ehost', $in{'host'}));
		$log->{'host'} = $in{'host'};
		}
	elsif ($in{'mode'} == 3) {
		@users = split(/\s+/, $in{'users'});
		@users || &error($text{'save_enousers'});
		foreach $u (@users) {
			defined(getpwnam($u)) ||
				&error(&text('save_euser', $u));
			}
		$log->{'users'} = \@users;
		}
	else {
		$log->{'all'} = 1;
		}
	$log->{'active'} = $in{'active'};
	if ($config{'tags'} && $in{'tag'} ne '') {
		$log->{'section'} = $conf->[$in{'tag'}];
		}

	# Parse message types section
	for($i=0; defined($in{"fmode_$i"}); $i++) {
		local ($f, $p);
		if ($in{"fmode_$i"} == 0) {
			next if (!$in{"facil_$i"});
			$f = $in{"facil_$i"};
			}
		else {
			@facils = split(/\s+/, $in{"facils_$i"});
			@facils || &error($text{'save_efacils'});
			$f = join(",", @facils);
			}
		if ($in{"pmode_$i"} == 0) {
			$p = 'none';
			}
		elsif ($in{"pmode_$i"} == 1) {
			$p = '*';
			}
		else {
			$p = $in{"pdir_$i"}.$in{"pri_$i"};
			$in{"pri_$i"} || &error($text{'save_epri'});
			}
		push(@sel, "$f.$p");
		}
	@sel || &error($text{'save_esel'});
	$log->{'sel'} = \@sel;
	if ($in{'new'}) {
		&create_log($log);
		}
	else {
		$old = $conf->[$in{'idx'}];
		&update_log($old, $log);
		}
	&redirect("");
	}
&unlock_file($config{'syslog_conf'});
&log_line($log) =~ /(\S+)$/;
&webmin_log($in{'delete'} ? "delete" :
	    $in{'new'} ? "create" : "modify", "log", "$1", $log);

07070100046c80000081e40000000000000002000000013ac038a8000000b2000000200000000000000000000000000000001700000003reloc/syslog/start.cgi    #!/usr/local/bin/perl
# start.cgi
# Start the syslog process

require './syslog-lib.pl';
system("cd / ; $config{'syslogd'} >/dev/null 2>/dev/null </dev/null &");
&redirect("");

  07070100046c81000081a40000000000000002000000013ac038a700000cc9000000200000000000000000000000000000001b00000003reloc/syslog/syslog-lib.pl    # syslog-lib.pl
# Functions for the syslog module

do '../web-lib.pl';
&init_config();

# get_config()
sub get_config
{
local $lnum = 0;
local ($line, $cont, @rv);
local $tag = { 'tag' => '*',
	       'index' => 0,
	       'line' => 0 };
push(@rv, $tag);
open(CONF, $config{'syslog_conf'});
while($line = <CONF>) {
	local $slnum = $lnum;
	$line =~ s/\r|\n//g;
	if ($line =~ /\\$/) {
		# continuation .. get the next lines
		$line =~ s/\\$//;
		while($cont = <CONF>) {
			$lnum++;
			$cont =~ s/^[#\s]+//;
			$cont =~ s/\r|\n//g;
			$line .= $cont;
			last if ($line !~ s/\\$//);
			}
		}
	if ($line =~ /^(#*)\s*([^#\s]+\.\S+)\s+(\S+)$/ ||
	    $line =~ /^(#*)\s*([^#\s]+\.\S+)\s+(\|.*)$/) {
		local $act = $3;
		local $log = { 'active' => !$1,
			       'sel' => [ split(/;/, $2) ],
			       'line' => $slnum,
			       'eline' => $lnum };
		if ($act =~ /^\-(\/\S+)$/) {
			$log->{'file'} = $1;
			$log->{'sync'} = 0;
			}
		elsif ($act =~ /^\|(.*)$/) {
			$log->{'pipe'} = $1;
			}
		elsif ($act =~ /^(\/\S+)$/) {
			$log->{'file'} = $1;
			$log->{'sync'} = 1;
			}
		elsif ($act =~ /^\@(\S+)$/) {
			$log->{'host'} = $1;
			}
		elsif ($act eq '*') {
			$log->{'all'} = 1;
			}
		else {
			$log->{'users'} = [ split(/,/, $act) ];
			}
		$log->{'index'} = scalar(@rv);
		$log->{'section'} = $tag;
		$tag->{'eline'} = $lnum;
		push(@rv, $log);
		}
	elsif ($line =~ /^(#?)!(\S+)$/) {
		push(@rv, { 'tag' => $2,
			    'index' => scalar(@rv),
			    'line' => $lnum,
			    'eline' => $lnum });
		$tag = $rv[@rv-1];
		}
	$lnum++;
	}
close(CONF);
return \@rv;
}

# create_log(&log)
sub create_log
{
local $lref = &read_file_lines($config{'syslog_conf'});
if ($config{'tags'}) {
	splice(@$lref, $_[0]->{'section'}->{'eline'}+1, 0, &log_line($_[0]));
	}
else {
	push(@$lref, &log_line($_[0]));
	}
&flush_file_lines();
}

# update_log(&old, &log)
sub update_log
{
local $lref = &read_file_lines($config{'syslog_conf'});
if ($config{'tags'} && $_[0]->{'section'} ne $_[1]->{'section'}) {
	if ($_[0]->{'section'}->{'line'} < $_[1]->{'section'}->{'line'}) {
		splice(@$lref, $_[1]->{'section'}->{'eline'}+1, 0,
		       &log_line($_[1]));
		splice(@$lref, $_[0]->{'line'},
		       $_[0]->{'eline'} - $_[0]->{'line'} + 1);
		}
	else {
		splice(@$lref, $_[0]->{'line'},
		       $_[0]->{'eline'} - $_[0]->{'line'} + 1);
		splice(@$lref, $_[1]->{'section'}->{'eline'}+1, 0,
		       &log_line($_[1]));
		}
	}
else {
	splice(@$lref, $_[0]->{'line'}, $_[0]->{'eline'} - $_[0]->{'line'} + 1,
	       &log_line($_[1]));
	}
&flush_file_lines();
}

# delete_log(&log)
sub delete_log
{
local $lref = &read_file_lines($config{'syslog_conf'});
splice(@$lref, $_[0]->{'line'}, $_[0]->{'eline'} - $_[0]->{'line'} + 1);
&flush_file_lines();
}

sub log_line
{
local $d;
if ($_[0]->{'file'}) {
	$d = ($_[0]->{'sync'} ? "" : "-").$_[0]->{'file'};
	}
elsif ($_[0]->{'pipe'}) {
	$d = '|'.$_[0]->{'pipe'};
	}
elsif ($_[0]->{'host'}) {
	$d = '@'.$_[0]->{'host'};
	}
elsif ($_[0]->{'users'}) {
	$d = join(",", @{$_[0]->{'users'}});
	}
else {
	$d = '*';
	}
return ($_[0]->{'active'} ? "" : "#").join(";", @{$_[0]->{'sel'}})."\t".$d;
}

# list_priorities()
# Returns a list of all priorities
sub list_priorities
{
return ( 'debug', 'info', 'notice', 'warning',
	 'err', 'crit', 'alert', 'emerg' );
}


1;

   07070100001a7e000041ed0000000000000001000000043ac03c8f00000000000000200000000000000000000000000000000d00000003reloc/telnet  07070100001a7f000081a40000000000000002000000013ac038a300000007000000200000000000000000000000000000001400000003reloc/telnet/config   mode=0
 07070100001a80000081a40000000000000002000000013ac038a500000007000000200000000000000000000000000000002400000003reloc/telnet/config-open-linux-3.1e   mode=1
 07070100001a81000081a40000000000000002000000013ac038a3000000a2000000200000000000000000000000000000001900000003reloc/telnet/config.info  host=Hostname to connect to,3,Automatic
port=Port to connect to,3,Default
mode=Connection type,1,0-Telnet,1-Secure Shell (recommended)
script=Login script,3,None
  07070100001a82000081a40000000000000002000000013ac038a40000004b000000200000000000000000000000000000001c00000003reloc/telnet/config.info.de   host=Verbinden mit Host,3,Automatisch
port=Verbinden mit Port to,3,Default
 07070100001a83000081a40000000000000002000000013ac038a400000090000000200000000000000000000000000000001c00000003reloc/telnet/config.info.es   host=M醧uina a la que conectar,3,Autom醫ica
port=Puerto donde conectar,0
mode=Tipo de conexi髇,1,0-Telnet,1-SSH
script=Gui髇 de login,3,Ninguno
07070100001a84000081a40000000000000002000000013ac038a400000049000000200000000000000000000000000000001c00000003reloc/telnet/config.info.fr   host=H魌e  se connecter,3,Automatique
port=Port  se connecter,3,D閒aut
   07070100001a85000081a40000000000000002000000013ac038a5000000b7000000200000000000000000000000000000001c00000003reloc/telnet/config.info.pl   host=Nazwa hosta&#44; z&nbsp;kt髍ym 潮czy,3,Automatycznie
port=Port&#44; na kt髍y 潮czy,3,Domy秎ny
mode=Rodzaj po潮czenia,1,0-Telnet,1-SSH (zalecane)
script=Skrypt logowania,3,Brak
 07070100001a86000081a40000000000000002000000013ac038a500000053000000200000000000000000000000000000001f00000003reloc/telnet/config.info.ru_RU    port=项痱 潆 镱潢膻麇龛,3,Default
host=褥 躅耱 潆 镱潢膻麇龛,3,棱蝾爨蜩麇耜
 07070100001a87000081a40000000000000002000000013ac038a400000053000000200000000000000000000000000000001f00000003reloc/telnet/config.info.ru_SU    host=橥 认釉 奶 邢乃汤夼紊,3,嶙韵土陨夼铀
port=鹣以 奶 邢乃汤夼紊,3,Default
 07070100001a88000081a40000000000000002000000013ac038a4000000b4000000200000000000000000000000000000001c00000003reloc/telnet/config.info.sv   host=Dator att koppla upp mot,3,Automatiskt
port=Port att koppla upp mot,3,Standard
mode=Uppkopplingstyp,1,0-Telnet,1-Secure Shell (rekommenderas)
script=Inloggningsskript,3,Inget
07070100001a89000081a40000000000000002000000013ac038a50000003e000000200000000000000000000000000000001c00000003reloc/telnet/config.info.tr   host=Ba餷an齦acak makine ad,3,Otomatik
port=Ba餷ant portu,0
  07070100001a8a000081a40000000000000002000000013ac038a400000068000000200000000000000000000000000000001f00000003reloc/telnet/config.info.zh_CN    host=要连接的主机名,3,自动
port=要连接的端口,3,缺省
mode=连接类型,1,0-Telnet,1-SSH
script=登陆脚本,3,无
07070100001a8b000081a40000000000000002000000013ac038a400000038000000200000000000000000000000000000002400000003reloc/telnet/config.info.zh_TW.Big5   host=璶硈钡诀嘿,3,笆
port=璶硈钡硄癟梆,3,箇砞
07070100003212000041ed0000000000000001000000023ac03c8d00000000000000200000000000000000000000000000001400000003reloc/telnet/images   07070100003213000081a40000000000000002000000013ac038a3000000eb000000200000000000000000000000000000001d00000003reloc/telnet/images/icon.gif  GIF87a0 0   櫃櫶烫   ,    0 0  膭彥隧蹿嫵藜~罤栨墻j`0q)搑溅鹚蕓張k椞搑 岼г獣*]奋n60@劇猱9=y嚘鉻榧^裤鉳0秝'ㄖ'V妲萡EX戎％曫龇08	箆杵↖*歨座	篫檲iy嫷蕑;*鸝塮{脲+<i\麛减蒸激=b}崫洼睚頠  ; 07070100001a8c000081e40000000000000002000000013ac038a30000065f000000200000000000000000000000000000001700000003reloc/telnet/index.cgi    #!/usr/local/bin/perl
# index.cgi
# Display the telnet applet

require '../web-lib.pl';
use Socket;
&init_config();
&header($text{'index_title'}, "", undef, 1, 1);
print "<hr>\n";

if ($ENV{'HTTPS'} eq 'ON' && !$config{'mode'}) {
	print "<center><font color=#ff0000>$text{'index_warn'}",
	      "</font></center><br>\n";
	}

$addr = $config{'host'} ? $config{'host'} :
	$ENV{'SERVER_NAME'} ? $ENV{'SERVER_NAME'} :
			      &to_ipaddress(&get_system_hostname());
socket(STEST, PF_INET, SOCK_STREAM, getprotobyname("tcp"));
$SIG{ALRM} = "connect_timeout";
alarm(10);
$port = $config{'port'} ? $config{'port'} :
	$config{'mode'} ? 22 : 23;
$rv = connect(STEST, sockaddr_in($port, inet_aton($addr)));
close(STEST);
if (!$rv) {
	print "<p>",&text('index_esocket', $addr, $port),"<p>\n";
	}
else {
	print "<center>\n";
	print "<applet archive=\"jta20.jar\" code=de.mud.jta.Applet ",
	      "width=590 height=360>\n";
	printf "<param name=config value=%s>\n",
		$config{'mode'} ? "ssh.conf" : "telnet.conf";
	if ($config{'port'}) {
		print "<param name=Socket.port value=$config{'port'}>\n";
		}
	if ($config{'host'}) {
		print "<param name=Socket.host value=$config{'host'}>\n";
		}
	if ($config{'script'}) {
		print "<param name=Script.script value='$config{'script'}'>\n";
		}
	print "$text{'index_nojava'} <p>\n";
	print "</applet><br>\n";

	print &text('index_credits',
		    "http://www.mud.de/se/jta/"),"<br>\n";
	if ($config{'mode'}) {
		print &text('index_sshcredits',
			    "http://www.systemics.com/docs/cryptix/"),"<br>\n";
		}
	print "</center>\n";
	}
print "<hr>\n";
&footer("/", $text{'index'});

sub connect_timeout
{
}

 07070100001a8d000081a40000000000000002000000013ac038a500033d51000000200000000000000000000000000000001700000003reloc/telnet/jta20.jar    PK   竴)            	  META-INF/   PK           PK   竴)               META-INF/MANIFEST.MF10 =R﹤!M蕗詫tC褪n5屭 盼纊
e结緭ɑQ~C琁扰M+奃蠕窎齂贇*ew鵇Hd榹付鞻&悎繀*#鉿v鲒PK-p   t   PK
     竴)               Created-20001221-1605PK   挦u)               README}UMo7=/慡逸@伜┷:ㄓ6q8跐2鎾[~h# 鑏韄rサl:I"g娼7忳7t爋银g8殡i拨糞G?,Sd=霕耄:0u歕С8匿}*u就#籘rJ乎#G54喾:>xｏ痃蓲qQ游鏣2>#癗溜,廞砶}vW璆3a ぞ:兆酪鶦杀;n魪G潱q鸎攨-#跅d:F礣韺攰;p<.寡?麪I揗麪c丠HLK浍屐曨L6鵳,G9镴nＴ5&Y殎 衆䴗豋杣K矽tI4咭6r3蓖1畡聖%s嵝碴L鳦i4 u]`"D&U癸|J~跃/縵cB轃G滳@勂`q箆竓3＾!2惸WJ5CJ诱v;象f梯︺m漤蹥M脮'瀣.	-爖o瓱E 廌喓飊夯Q瓦"X	豤Y挸*蟱7菥魁j^$Kx僩9醇 (k夷	韧侎鮜+猶y躴B顟幰瓜V谱D#d`赼8衼U漩┓U輺P>O%.z絈絶蛖哲(F謻跡.UI?JA諌赥Ss6jg荟Qb虜*g圈H尙豊dA鰜F刟S<d=Q鸃{謳F>僗]61獸@娥侥7*烔覛弟6弖#媐蹻}媴,哬Z唩營S&不ll俇S4`奶矼'M.薴b伟踦,%諟} 堐[竣嚧龑哒Qu︼宫<7墷褉e绌侁艄G}鋼=+o劂HDX	\拍藶賄嗱k鲑v 騊x傛嬐dP
盌t1Fx+&5羄Z
XL蠯泄@ O拎L,(E壔 _躎"c.'秳裀;-9W苹V町)-狦)$K义欣?鴥/霭樄琿]嶎d旨他Kq殼v渀醾hoQ巊嶎S7'<o絸潜塡R=S蕌穑塃閔<-沩Y诙$L莪n狁渫儻葕A誓 /弨\- 袇|^フ怲s炂o&镔~E弑qP陁p趼e絴<j謶杷蠗所剪吸嬥|屺o誛PK镏+{R  	  PK   憄-'               license/COPYING峔]s8瞹钳@%-3赊澼?啥k讝<挏屵!娫%H+鱰7 倰鞕獫贒$丗烚@緦烏椓h0?瑙珉囜嵠冄t犜WS佻,翮烚WS譥?)uSn鱑禯魁笞?褀1zZ.隴R}W6E氃赔R隷w鯓X捦际刈?7<+5x5站膥櫿[Sm埠6┊K嚼:)R漟懂瞴S峸缲eC3cU乖尜骤碶4S=嵶鮞X楝φ嫴諭灄;揯*鮐袛k皕YVzS赯[4/56[BW潀菑籨eS%鴲<Qv惋僤G/貂u昘PUc/$S*甚S3俏"尝6EjR厺VMR%9躀鞤?鈺慽浭(4[鸹tN0$Z軽堽R蠄搊P杔91&0阃汮鹆F+榤I弊%京舳*WU睶籾I+7鹾,槾侅橥茒.貔窜髡[[h1枉佌偌J,/lm掫駼繑峑$u瘏婊ＷB|e	往6呣仹[搢'Nt樳DNe枽(X壬J腑谤7:M=R M+〾.絅^熞璏矇LE,鋱<}畲褒@^钡螙创趀v}裬藩搪dHS-hR4qkej6/⺁餇k)s蚤hG9訬兤匬I0;∽3齁)卩{Q顇'Z7-iMK+兺曯am祱=梕&鈊e圤+磦,%-%_cNM疃悤坙襡鸧$搳垛闵[dJ鳩uw)<6S	帇7秞樛<3鐍he窍V灙昰糖Q鋇迶i$#铕躇憀9^9Z,R,:耢е喭3:痓O.9輧fdX k葲<桕%[z犐鴅蠁Zi5(荪頒鰚)粏2鄷峎r<绩
䲠y5 5C锊z洯齅亨#伅薿R求=0o Q诃30旞c鵤nV0ol柮珛l絏禭';,纗?熊-楥R0	蓨%;璉48㈣l僞呀⒈jRX[3 (駗EQg遺噹乖缅QHa3q>61缈
#<D╱-;忉\唳K#+捈'2苉0W> 宱8tVe,$Z%- w湏躀裐>䙡 =郐鎼B歳G髛忋V鞈垹z饊8崫蹓5B熭馾K徤|3霱賙紪Y蕸т+9聲W
0嗓滰eE毥fiC4閞2=t閼4惺瀠X嗀劯cj腂'驌PH密$)饺MR仃鍲-S袹湤怺窍捏館氯隦爸$虝肣夈墰>@~d"^蒃鴹%9Zt0y滉V邔G访賞<氷获}z幘趑韕:療盔8o僐?;餾v<l駫 i侲ve踺Y:a;鐮銂低揈AZ7.s
6;H劀浫橖3'噗0併>{蛭 z'#疋}''b熂盻Mo68z(`]P毥B^Eho蠜'贿D2嵌r\:R嘝TV,o=O@@⺶bU`-"俵J迉/薬pM俏镝閌跭0抚冿E |eC
LA.,撄豵 响瓊]V挦堩V!湋'嚪~8_::鶮谖垚l蔄\批贞鞎窵哣Mm36cC$Y0l瘹鈵锸鵛廤L趕▼僛別棝帹"癩剹楈訧办屹/f5戼I-隅plfK 猔赅剤腹1卋_刢灎幷暊aUC悪植磱#蕂晼'"l|!敏x-聐M#*xL隁lxp
v穖c顿)涹
迒}3縧赡0p庽嶩欨^嘪銲O@磸釽1[捒莌驒垚e缎'|牑m魐2乏.沺秜iz嚒`涇EQ溹鶡萉糑%d+瑌
R抃!$!虢卐鋇恾緯8剷x皥U國虱s.t u",EA魢溪=9焄絨8嵶3UдE;W賣i郕脕n#木i=彽攠z:蟸Bh烯;'H菠j虘V JkDE諨侚7ゴa!丒襒I㘚f鼓X藎!啥狡Yr討Q0颗闳い颪皲璌G牲VN釧X7bL薳!D橓1CnC:齠%窝].抉莵?,棓蜳`o&!Nx暒 橴)/C^閯cｑ,X\ 寃}鮞Ju呩>諚獎9d{p睶~'$Fo愋*姪揮p璅窸杛慠闐U奰[懹4廽溟+悞付(8T/x 睫蝒d璼BJz=qAbr_\労償侨耼呏1JM烕F肷R溈桗537# 肃锹坝鷯俵'字銴囚巋裹I忋za兢黓冻UoG雬*)玗^0咬矇己
W謀P	僳&B鄎BZk\	厃C"狃衃骈'(汼%&眅佌K瑷b堌bz!im`o楞W十j矔X6,6眨钙
渷|6%r禲嗅籟_觌镫}成0{-N派Hf捹鱟{r簒-k窽u憌墩蛇	8沾洁I矔燮闾哻喸7釾+矹亀荊zG盳猏3|貗<须@$BGQ!彵\爘摘t蒥E}埪+=藁讒窉羝0サ*岳ぴCE夵炽姪嫂>嵊)玁Ig擻d襧賽獽V+鈷_昼<|馐IS獌腯b鯙襖羞齔嫱F2BCY!盧庋垠	 n}屑蝾/s湩x々6听韢磣xC)傫&蔯犗d族T&駞l萵言鋖柦儭D:齓犜	|螲
瀫J`J鐝@T亹% 钘~枪Jj	q0#舝q譼垶硑o碉簢a唦vOv襕`箁揟狇鯙额G馞0肛kq亳釖`Q尲{53Y|酸瀔7Ie{P昺z癣s
闕I=桂牅[T矆O(䴔拭n椘:坫p萺蟢E;豙掵婤怳﨤嫹,+1枒覓 榨煸i紂l@.%9)寞馹广蔝Yl烧羵 )筁$qG_Rc-膼8停\─#薒浌s亙0潠撞0R姼'r賦遴椄椞曍僜<g1裄Jo.;倹>E煅P陻)R郊眑?壍"螗1B挌eVp,懘私/故兑N鉎F膃甦Fej燽~8膰]陒H書蟦K躼P蹕z<姀7(|甘潉泒§癿9悦＠⒐$"$69鴑犙R襄D駑璞蓒祓-y@珚骕m鞫勩y囝)c纏&l遴;+#(溁藽確羻hu耑P#普蘕坠及X鹬吲(9q璭V.W簃"屠/ 螐\XG<靎T蕥酇胮褈牶=jI(浾簺G跷蒘4-徹*"fw踒Y坖BR籄葧tA1v閎
QS淒[*鑢錌诀閝吨'KC溮+:;顃笧:摭澩.u#s+i(憣勜閑灑*貭g.醜铟x珀谒4g褣>^瞞)劕
崹068鋯=H	﹨-沑淛%H!房嬡馁&)愣>HBlF派0A呷鄤"'蜰皹u淂+J颔z垌秃谵慣TT酢旓狖醷⺄彅咲帕j澩砕篈y搀>Q<>/儓RR珁頚岲v`擵桦媉'伝詖▼
#'R夙d赌蠬}g9?m丞叀⑼#v動!鱛.箯㈦lc\隉:痡蟍怯	]笋ZO蓻a餭1祢W8熵穏胄砯T嚵钼u9瞩J+].浭曅１w!d氜:胓'周:!7g =[扠ky冶宂発	DUPu茀r*だ4Cg軂U6閵y侸⒛T毴 K1瓶磘卖鑣io27邪悠貗瀶0s懙畿O碧鲙*= 葦*A2[=缸&V屓盃b)旇韔辜樃|鮇暩Ni漎6M5+揀鞘寥~櫷地+7ig H裧.蓀ie4浺i酘_N%0&&#潽*魅yB 搽鳰 3⿰<NS嗹殯鵏4o%7d弻"pwB秄J$墁&軡僄6~m蝆闌,浍˙<l鷗*Q阡劼%窧0彬h猗肛琙4祟Z溮<蓾D.飃H9br1拃z黂詰8>旽X冣m﹞:煸诙M呸隓抜淩襁逆8曶々{W6:刁E:鎁V飣/堁劶y:洴椑虚"
}徬#:舄r+謓尣&韴X@~-琭銰$磑e,胕口rδ胙蛫9`遭r.!蹀Q'⑩$怛1E
W2$]
裸勎晽呍-{\gYDZO沵桴8設iYS灁C96*籪!F[;萄觊k#掿S;)釡傗呑e0pv`4睎騦J籔Q熐晇.'渻鎁迍' T	4磅憃V隉椌X擑蒑xFc$7q8	(尯Lt4煶複鬯奡rq-
9"徣i栱衠"p;@xY骄]s锛s膆MZp	嚕朽漛)u>鞮頚棣囵)axF堐h起噮充D耲D>P}	悭畧5&嶔%Ei渊y飨旡U芲逇g6嬍糵鼙y4颢\o虘K'銳唲吭S:Xg	螝骛28	9un穀晊腍$Kq詝!園@M醿訞絩J栎o ク%)F朴n1US┐H鈨|湙撵(毻躎黿m枩紌4!2殶s鰧fU~叧^w=f村颞h輩芯搞潤'|x鑜迮跱鍛2蕄x舳!<責饫ASp鎂J忟'攬&&h圦暧/)胰,蜏疣8菸$交o驯-Z祈`-
~驖晗m,h0x"c秭'=仨-K解K迤恲Y*mW鎷窐缥4=mI颱欎l謑u斋8w啩id叻>鋙鉻/桂J濡僴閜+銈G鴇%$逤危炳譄L匎镽_n觼炤粲d黣悦┛瑄&儊唛淃藸G颩鬎嵗猦5~L嚦V粇妖',蘅~鑷7d瀎齚て代!葯晰酤pたM喅徼疓c稉釛麢?&<孄觴ⅨC熖唭_嚪3濙鶯晤窍硸v湱?z巒{z0鋮<MS_a磲#噌pt箴|薱咀Xa4瀬M8铚崣3⺌:埩q0鸉楚躔a-i.鴑8a7}鈟4.厑X鞛8纋蘬o蹦ct胋:#漋繉#p陣埒9砳爋w儧兖+d彼豉q喔=1{鬶pj麚=Lo摿S鍻酝x2#%/IpP惲W箬丯:屆淧M<E#FF2W邌貧(_燘c憫
;鷻飚F煭b霪悄乲3d睝眱膕L{*( o懋7鲷鬷p3?9r~<橠"Y已H澕赛H螰^?镑灧{霝zOI寻涩瘷b鮻逓F汻骀y尝7P3}啞G":/騪r雖夰囩蓱倎1XHK并(髌簪:爣w仃孓IOw,鯡逤贾魁:$#(亓t鑨2v+8>蓩'f驎簵仹>'橰0漲|菑/銾G2O>`)鶵耐架覝桜漹'簍嫘緥+尽審藼阇F5桭覭T!囹驓42至橣Vw萁(钣袛Q萏導巳55_^膗峑=(斒倴溘&K" `鴛氵錓=%≈烐77鍐垖!殚0$乽'|y)^卯4聵-j}捇聫錷K蝛x獑鴾嵈!卪p<!>颛鹃0禇ずE觓塋%,x欖>缉歼k鶌b8桽Fy:R
;媡@vх3呋谒cZ衖/=葧l6x圸V巛戞媍躿y|喔堗44yS;Vzc仠z婒浬忴鴟瓾譧s炵驝绽C!dy務S#-梬nJ5m$K閻u筲眰禖澅嶗d彚穦虎\
LU鄘t^xw翉鮴,
Y,箺/IqM塙e哄r8糡朘灞3$褭	_骖t$漠*L益賥琦x*锉3眗ァ3]
C0)酯 趠橅U雱%b$4蟎颻O /1幗bi;A珃u_}蔡湳>竸韮$&譻粬.-筟抦:tィ}TD伝哦辭)赦朢;^	泯^-齷誼ur阜顈崡芮p瓏v;钗篟宪(阯q9'鲅5敼[CRgK*K~\颸O貥苸麳.棾X踕?縻&萩pt厳_1煗麐鈇枳}1諈査蠒矓;缫Z(dn:簍a嚨鱙乌k!dKU型r俗镙DxBS
灋嚁襆狠餜钏t_o嬡o+6娒螊z淃Oぺ怨藘醂kuRk?bb/|嫯s龐(痒赦哗繪櫺爧襊庂VE惧繱曞/qH牲tQ谨9劒啍恝)M,T&膚GC9&$璊扖y!TD芥藦浼%蕄O 鄫哘踮喒wq;?冮疈X䦅售刯+廃oAPKW╔X,  7E  PK   憄-'               license/COPYING.LIB昡[w箲~钳狸乓Z3v捝硒墫i泬,)攄莋蠟矼$;nvs"欫敕惊hR騞N蒼燩ㄋW 礤繇l<鹙?L&绸ソ{9綘/&Wc>缓色揖倏uコ瘇1課_珉MkO/硒;v无V1珴}_u2k橥憹枊s笏_b?eMcnd/岔嘉梜迂焴冫郾<竮_<ycw鎚霒董靷f碮勾思i雦薜我硈歝s讟je絏W6.獷穟e;掺竇l瞨潡k浄浆ZE蹊栫泣^gWy荽秜吽汖AY烂;}^g蹀~腹<穠娏-豁苷麴k;w嫭Ｙi歶麡窙0苉?JU/笠?栖詭xR8c顇^AcWUmQ觴吴縆卒隦觙哞饲lo鱑Wm貌谝/痼3^:(:穙髂嗀B>|pカ陈辴s氋^閩摋+2缀岁>会\鯼.垀鶔荣傂Γ0mX駵熍Ji?埲wSń籼?J袢f籡A⒗$U[歠97鲁怍敤#+鞫k輚H巽Β萃簐Sm"_:<+{~n縑漖d鎢1仿磼諁俑>2嵸7菶鲁~}礫购嗋$黍嬶e熪氘6响`"-&d-硾霢禗6鬤滟S蒽z-{菤G@S踻叀蚦辧蜦齌礫更僼C/汰祂Y1鵈鸋RF鸚濹袹膰^茀P堿J[篏WW:6odKi8	緯#蟿q苐02睓嫮[床wl迴褽湰4B+眀/!8癰$鯧W瞛2葐x5咪
{RC蟡^<un镳嶪g!l
抍秺畁3Z.=保髖^鋗畍#+?4齸F苐傯賛堤W{埐1镩k=垲
捛儽c=n1就y璂幧焓(<EGm潾軕T4NIl枳/%灟!Ⅳ"+椺侺/鞾疐A"	2wn"烢^~硻痹蒍濒魘Q呆j/H*/刳樍B毆 o偵梵眣睻K5扅s禷笨侟D m2槐s;︼嵧哾'`Q34銿)!"X忾K3m/Y互姜栘C晉	="鍛$磚绘7{対备恤 jN_熝Xd盩#w搛,軞,{鶈##廱1b菳駜7D輊4rx_4a5@ $BlQ稼z礱s<滂爚MK36a竽A絖悯韠[擎墛x仐樹湆舼暇S涪/#(D?拍榴ED绦-YbkEpDN爢cD緥楡榖劾嬜詹[9煲LH0箻覍=埱T'鱾豼-鸋埻{黊饐++ 姁A殙刭{醽氺~唘谻%|%O緞鹱{V履劷卼珷-sRt憂蝾<K翙t渻#詹%ロ懿o輨UYl煽婚"儗Hb L$納%踠深~A牨`窒y纔KZ*K餭56$<1H%V腭A^.妌	闐鴤禷Q=0濓p箨	0R}虤2Nb:y晑pK剏\漱l
儾@{棑% m"nj洰姼探C℉^偿"乁Wb殩U鶄刭4b棌$*`O憁澤XR扞敘s佽4ES昦3>;B荄鐽猪 $〧泍褖訃層2}84撑毣鲅\;棗K厖欛垍699=噍%=puY洳閟盏&I墈蕶▂M'ｙI82蘸陎冯,e鷣(" 吝过Ha/d溨趾飉sDc嬘hz蓛[%駋咻侺Y;P浟t蘳H餭U#睭躁鼇2X.!>諙＂lZ樃"Cb襱赡[鹼妋F:瞿2挌^`杁a膔
驷朶\o冄#椖娶诹摞Q浩E浧*袉韷[z谽rW揅&*萻?L+矨2	h聻u"z臇*_&槣靓+圕璪A廃$怗灓o缒琔Y q錃E,愿!財-攬y鞪D<"86槍i仹荄姪3(1!A蓌Q爴玣嬅駿U铼歮*覜/j幇cB2婱顦切 島V/泙5i貺璬L俶摋*瘊畭羯訦E鰿檦~唄嗚俟叁鍔B
l姆撂隗蓻y鲆*xIf標裩/玃`I謬<悕羶湍铇U,泄缴鄯p趥H2嬰Y魡8',v	帇堰	O鉄鄷v峩bCy卤溶簹32嶯腞流z!+IxJ2b硸ㄋG蔠PX架"S蒊a衘珙i JcJC糣+HHn5檥旱惬w鲡蒴nz}uk達翔阃组諊憓7浇汳咿'~鹩趸辂榕_髎P_檙&y`賵 癶0厏E俬{3Cz侟漠鹥fS鈯d} 鐎豮r\M$.s*K	 xD慖
7;48唫蘑1N趆'g鐅傂F眲鍜
兠茷怳9A(dO傪m]V,
墍厝x摁
2k _h笑鲴訣<R旖鋚璐{*軉1d≒瓕X馾F烆寀潉?蜊^疧擼'pd#蓘鯖ky坝6bV們うG非姛廻边.e
x焳勚%むQd俕殜祚7U;庣Hxc瘸*#搝謣讗SB痘oBl怕f嗶$:埾莫%m!6Y刹m
厕]鼎犳#)<)90(`彣ˊ!"q溂,f檀'19'鏶茰荟)55紇P壐8)伷謠~3邟IJK 洰Q煒塻嫪	扵2/>跮Cw揉 rS+1"胄5剂+Td饶乓*Wd5<痟選+鵼u緭-vV6欦?浼	鶨=.酙m骹滒咉W+n糏V嬺F9碲&鐮6嶎%ev=f鱍q廬/$嘾<M:舎Y0藿半蔠<=I-'~鞊歩N)躻; 5垉揞:o舦揢")J闯類(菢f	0.>O{鵍p爞5X缷&坲"糦揹觓#癟丨[孑v溆曀(N溳鍕嶣睟 )oD餓k鏳歊?ez甩nTW(瞸+P支赊豲雾5'熤曌: 穔Og髥!?*呚捋闔EEr瓧A柯咹駛笠氈蒽谣码$壌 #3墧儵%A礢m篇B栋螧r忾化幈瘼y墱捉坔枔菗5涨%脅犜SNp鶎3
4R竱(愋讈锦烏汗榨舰姜P=;6[鏒d崑狕o芚k觙劕﹛
渫菳竍<s}{~&L捏嘖!=	婰#^聏―r	Wc馩╓蒼-１|哷塂
<)Yヤ憪鼪 8裌V^$	+0!7y-b4聂)&by唲4IX稅剫娌+E*4.'Th茍Br1鑖,b訍GF驍宐焼(.k蚭zD]擸╫d惣|ň镣磝$>8C栙uU幦狆nEZ砾~鈯/<^岜$;X [y帩盚艢1_!Ｃe !孍殌$P茊}r#紞剈7:N矶 睈俙YR}嬾圐Z戳I牬#5縲\5*d~ E苤0鷱(^2瀉鸗	.#
殓蹘斐暕;詆(式Jp蛩 8冷鳼虫2捸赚燼@琢惧谲1C+[6M贄pN
恫碍'yt鮋┅bN硽s1(間,(烼]慭7柠⿻F\0彝4鱫 刚=闾AKN@驜1惫衪-狹&#T鹿/&&╦{_.8"歀}n"佷4}3靉T剾^/攦舚"'鎿s拈嵀鑋G%R*済EHIi劋Q7i蘷孇4>i,檔哊鴤k;,#2r<;紻H.斑褘（#	胹%儮hE-寷 谱+刱鬘暯蚕X佳勍(*饪5〆Ky窂a0;7h8L鴳]5OK甛HF|k禴僈~X峆e嗍眮%慃椽}]鉏9苗>TENF牚)6葎碾,輿杫r=u?蕂氶焭xG&=環W*搃夘㏕GdJ嘪楜7*雃剠{灒l犦44C
q晚迂|攙5D蟺y?$~7亮Ig97]J(Ii \x頯諴Ha港9$" 呈iJ*5=eQ御檥'哘怓h
髛uアZ!:+葛颤3崠埶dЪ铉5u煏怔7=a銖菺m啖餇廒"蓀?M[)a陖tV遼M9B%絀鲿{7o%浐F釸Q蟁|鑬0#(珑ｅ〔G櫜:盓+  洪c斪g嘟俄敞j	–xmn襟{配紪P0摇Q>3饗獤.-nQS)軰獃(诀厁锢r樻X6$愴溭峊m:鐨璬跮邅壴VbH鶈f>f殫ct 藻Hs眬w舐罀斉祡N帆騾穩矀:@浂k 7餪鬵7玕*H砳`趠牣U忿b>u遁9N!ㄏ*.D!摭錎菴閬偦=`C敍糏7脓貐3%wW'墇5F荎R>遾N悀峤'KyS谀淼撧C5B(佲＂hB1鰮f穯騫#鰫;BDi"钓&硣 翓D-踑胻o圦R聱#E緸#&蕸ば"槵_8-澇U源喡m?`偿眐旈Da癵泬{偦c涏sg挷懞X6t3>赥蛹[纫
{|枛╮…跙C8YU>0旡
嘙.爒,僛^MxSHΙwI鑘kP靮$VＵU!墽i[嬱Q,了竗T鰛赤%a褮搸《-j腷H剐nw嫸珴)=訦R穕/玓蜄K佗畾鑻激涨辗Syu<pDBJNx軯浂鎉zL0@@在1:坙d衟2虲98阀揯^MR鄨鋳*^嘕薽烂葮咱 N戅鍃
怚姡﹂g%䴔蔫/h演
.8%2犲椌橺;}╠/身-P=皣"$ m铥马饩 4}隬.iq)蓿愰黛濒P㈢舭鎖炟昭!潴,R.{s然豑 碥飫t黏瞐褘#嚩彡QNnH5 9恺5)崰C蛓锋.9蛛$]铍∶}榢F5$'<:橽k壱熻O0$l&摜9层e呱,-;乯,縣枴!o彀柧dwP3<鬿+	#悞擻菞\ 餮7wM 
R,a/<怌/z疌鞟NyDu噏@頰>忂5:0'簎C67P="怊9檸O3.捔祯y躟8靿羈弔<gxGc)M
蘆2擦疬Q,盱y
瓟魱&de-哢rIz1 R拹g36Zs&74R)婥+^獯R##*飌腨n4LM楃媋O塼騻噸,E` Z*<秾wt鼋薺>熤Ltt(喸/&~蒄1RBEE跩3ヲ碼缉d麱宥#k,$\U
韆*踯鏲U	饥x	_:輌z淑爞╭要庬}l乇0H>!m:@鉕+蓉橭餻MlFq,澏<у&1
U嘤sz瑺v⒋獣q衅C揙
#聙cF﹤谸騃=h[D毚z(5~4/}蠗嶭奈%枩酽q淉嬻轠rl	NU夆o.]1鈱[t05	>鞗謒ミf綧羿4Hc1骆矹a,32檑<ZFs?K/ay揹K0饞]淡3>sHV烋AS矕K衬5Ys5趔K[殶醐牦J亟誻廈+房豠責V瀳!眢嫆E駿T-闫窒6 !涶r)T费U辅*w闫G垞9>爌B霙G&貝P媨.p髺渃{掆\浺V'舻迃]蛄H顷G竗0锇b斕4Y@弌r7!嚫沲hgqRiK0p姎P><鶑甉荹≯5\蠰h鴄攱嵾I<驊E4祖2{N銠?眽讥妩W(E嘭U卲鰦A柷閿4 矩k豴剿rzEd舠8痂$冠頩覭浐煇8溌9C儽珻b糆593r 厎兑'匐w-&g借u獉齳畀劚/礊< '电Y蒟鉝貼熰嗮陓9庐 $副3&q(觬x圫璳4級鞱庺z磝 6e)=龓F<Q禋5k撓6ぷ|櫸7.&閅欙t杀覙m皗簮,&螡.偫若4-歛卾;)D鳇E?<籦
肁#m鉘w莲燉麫沷濚>WO;禶/X小濸◣妢蒙S=轮訑僾赑!wOzG*墀3!懺#68#躃W惧'>к侦R`S羁],`&窾>'n_汹+,#Z=*7越瞳W染(谽譶柧u说嬧襺5!G峂^8蠮7兑阵┱S9d纪鮲=J酃鎙燏
!硲%Bt阺掦絉U誎F獒`p熧P
ょ?臕S'9E),X b PO侩痸瘌1芆㤘嫈Q:豽i珦瀐殁%彶制證/篬=v磽扃Ｗ4弤皣鸋,欏夸胺藓幉牍IF(终>+诮淟宼溉]涇騋駮Uh#亹P哬.莽vSs﹩U
潼欆=Q <w佢MHZF<忡氿X震Z壏
I9鍫v礗褵W !`/E#濘蚨梳|b氽糬t蹎m簓V!WH啅蠄r/y馭}3嘌丒(灧憪-髰汫Z羑k:*$J/湋L8艈ㄍ狒$b箣蘝A鉡葮Y盏4拓B瀨c捝>粙劼楮鼘E痥1.睯￠ 賑崈CN棾?7 焫疆⑶謍幜賡69:I窸1[蚆9浃	怿ブ$─桲蜵d&虇-n湤烌E疠.渋?-玆丿譍憭碂4蛦%`P忲'Li豸鮲]塪T/(V楰&窘	╂6'奩衠蕳Z<j謉Nl嚆繰吞繳塆m跮顄/179橡4样"l偪:偓6蜋箇F*鶞百鳐國鳹3J!闪貽楧N$I甤蝷+e衰4@p銢C丰jn材柝4-KA\Ⅷ湔.<97%M鶿:!ft\l7-U3瘾	r燏	怫婾HkUb^-薊揣2鶕藩q篍疹!玢册甫K呓麅Cg鬿M%%C駶0s晶"噛琼粶栥鯋襄梞k位K褩爵乱憸@泎鈻ю7阧-I#e翭;2烬a菅诒唼	.0鐱H+i
#}魻鉙le燥М?C镤(芥-T瞨蜉靋h'B結W!洲O$S鵰顝VC(.=赅爪>幮翇pR)筻尴/,$覦D愷9 F咝c鮾nf硾7&;%鏰Z|V堐须\nt儮墦厉禒摸#2cc蕨=┓o鴑耲霠d峔2颩鑵猁購p4廌~贀傯吆B1剶<勉傝
>繽&09Si.?惪慏J麝K+k1'邍pm繉g绸蛰W伩溮窊嬹霓}渼QХ詗鳊l2弊镯徘耢胐勭f<崉+L4 =uN⺻7购7撡ч嶖霁哕朽惴楐E紭苘/'W9穡c<?讲_f踊檎&苔>拶徸楋&3綶岌霗硗xv7澻殯脔玳籺M'鉡Ⅹ膥欈}季侩iУ嵂沮縊嶌dM⺻3涇因=鼶O枨檎佩;径-峱u}GＳ聢位k鎸謴N男觗F旎繚^NiJ荏饉zwES餸c↑恂rL嫺熭\逳螀4眥6烬互躚3q?oi圤惬蕈6b钓膈=y
Z蹂圾wf幽緵紵\躆?愚覂4隧塺庂syi&D-F綕>O/成蛒J虩檵胭_敛黵帊#檤砌達]bコ?頸1G劺H欣萮贤)M嵼n鼒_鷯J"tm?嵖_U4丸镓H%傴骧58?3YD貋韞740  <缔<卜7搵)逫靐/-唏A
魪{l!}1%札傶A萎紎熊C<礴>=sy}A钇)繚嚅黉婙弄4靖笩慫	糀攒迵痙S癪V溟鞚%娉}?瀆尴岃&bH窗!骣槔鋖2`эi獘徍{6沿#m袍	=6~鱵
#覂郓蜾ZGP>x\蓛G頧釣ZX1菧扢絚/O_~匲"Ds頚2	貊9剳迬]为餩濄Z簅踦穼闅郻$闼蚋臿嬅Tr_憶豽酭F
aL挻祜畀阱* 1 鏑摒碆
g`蔐=U铢8grcl8足慽][幛Mr跨筤%載+?技跸挍斒鲝iyZv+':!甜-{SD鄌盢N宜P<F翅詫4糨 螠tqb恭T7赨Vq{涸澃蜰|0`駭鴥戒W鉤"躶PⅧ$5澨ぁT.,挮+茄榖-`L峋9&傰&滬I銲p3簰屡稯壛訔*2>?%柃渒
塒耎чg嚚p醧2C{慀-擥ir╣d齲L q翛9跍鍯坚耡C譔d爻踇<[蛷>餧蕓梕,扒踕炁E魘|y 螣跨~d熀柁$蓦淼?葢溰j(茇=kr4舍he]暷?v鏓
钴艜,2庼觾^韕RY儢犀轕nDT叅淜綨櫵~8L效I>NB廲Q涫62h斛靛]A(G
T _珆弟椢vd橙=lp檋f).A室坐A.1勆齎V箧'4p)芜0繚/龢-抉喴齾H|铞觫缕"Z~6巅#7衸&Yf韹p釔,濩0PK_*灴"  la  PK   課5'               de/mud/ssh/license.txtM怣N0呑DfIM+UH埗R[,6I<e脈%N%,y7矬洠&x铝k谰o)@kYA<顺婝褭w嬇T$鹛纬沎B,薬
E涷K%畸页
:*?e罱.g0礛e暶臍whR3w	z云C秫彀僼\镫只=T煌W/7Xm焋慧]">8侤#t,!%$駳c+A驚r`琱￥<趓H肏瘈vG银嗵)6臔+!=AC設豪QhL蠾&茽賮J{rPD騽⒐~鉾 PK<-o    PK   q)            ,   de/mud/jta/event/ConfigurationListener.classm1
翤D'1盪珽X
V羱M綼C蹳矝肶x %&垹h1o喒?7鳻b(D凲蛌S毘蝄ガ.a:廠検*/\νY/巹鑀*岘.0坪秎竄濯Q勝7lK':^蔰rw9眲裣7^+  .!l輧xPKwQ敟      PK   r)            +   de/mud/jta/event/ConfigurationRequest.class崚[/A抄.垡*柂絽%墽uI夨関Z蝇]鲡圾$Dx^}(q-d2g鏈97辜=>!,hH`r楻慘RlZE^艑奩唲:賒葯ua渽up阈浺賗/mR覗td巴0S3玹遯雮!mJG靽g5髿M懍閆>釣岦n0淛煛).d桉@篘U\劼H苃Cz⒊闉饈$堮"S鷣p劮Y2[鼟6w毱A%瑘>U趹z栘晳誊ojV#p
鍾胷C|繱楪抋開Gf若阦橔!.b盆2狙癏o 僇慭
5$搔熔%_+邇+wPn9胐G枨 腝な鶂奚F=嫧屭(瞉f邓+/圿!SyF瑋q邳簢縁曛1帊/|龘痗屩"﨑籒PK:,‵    PK   t)            (   de/mud/jta/event/LocalEchoListener.class;鮫>f]nvvNv.F炩燑淠卒寍F(0FT诽淭F1讣OfqIj^j慯VbY"#僐J獈ni妦VIjYj^>咼F怹郎募t}が凿FI$}9ラ檡0錶L@烫览廊t+埮$PK攉
      PK   u)            '   de/mud/jta/event/LocalEchoRequest.class匯[/A泛磱*V5皒瓁灃Jo踲从-{i倓芦%蝞俵嫣溗鳚镬疼3d"C!`Z罫渂i
3\馴惩繬6C$w?谤^逦盰(𗦟:1`膋
!k怨~钭鯑g昙胢O玾㎝卂鮆T茼:v&~ha飐5模缇2t搯p=ns7Zf窃-觧桢j嬜2槁bH乥祡鱀爐蚧牭TE*1陌酐煠*g赛;-C饣f喸饼\痫U梴}&d桷PhE $:'珤W&_答 V愶!襠n寐a睮薲_r /劎1视 膞徏#讑瘣瘧(継.蹵zD凾荇{屝諭&谤卂塍k敊7PK戟    PK   w)            #   de/mud/jta/event/OnlineStatus.class}QM/Q=oZ赗-5RFX壵P	卑{m_5/%!翨佞Q饩)MC遗躿蟵鳒{捃席7陌夊$t虒 乊U樣1痗AG!:秚$/0乃楇]e,8	;5釢髿M'9谁s麄{R釤脁p%}啋f'l橅涒F8乊峟<=唋Sz庠[9鞠[D6她搭%鼲8论[汾鼏6wZf抵鮻T磌洝8艕<sC.帳矖韜饱親a1$寔5U31柊0?惲03锰?辰髑赎囯n畅4hB俈0L_\9燪滲氣(#錮琑|傱鯇Q%4埢闳Qi锶a釭SRV]破b(U≥"绸庁wHw!廨髌1Dq泟稱V佰7骤50墿hl>釵PKo-    PK   w)            +   de/mud/jta/event/OnlineStatusListener.classm屃
侤勭Ws:t:跃EЮ@杈榀
弘胾z╤-哸唎骜驾b噮繪 庵40!躭褨''Y牒厚a暰┨*膪ｎ-铞a]凹築諺I豖&,G\6蔜2皆淸3=5鎷B"B	=蓣b1}PK譅%      PK   x)            %   de/mud/jta/event/SocketListener.classU幭J聾幽lZ羶x餷盤h!=n啺i湑dS}6>%n儰z嗼鏇狩觚駢78U8R8V8!(鉊豿蛮tQf汱W:醯曗n~鼶菘~踔I0V斲?對潟憾6<蜶g朱恶,\遪畆/m甂焛薨x齙#寃	栂e鼾庀血j+;訁絶數7yp嶏訂蒉:=_4!" 儤c/LI槖唩韈羲庑嚒6 PK2l|玑   D  PK   y)            $   de/mud/jta/event/SocketRequest.class}揗o覢嗊嵼竡iRZ诖|4%FB8 *HT墸,搔霱醎pp墏羺?
1雱`hiwvf瀥g耋h竼&L銼HaM檜梖犮2W\5眮倎拋2冝魿蓯穷;^莕菮x~@1锻愜瀽w碆q"鼾6gH讌鱗<h:>W遳N ?拊eW鵽涆遁搸'韱镱q鶖騊R菂聁郦a婀鴵#哊嚢v!"斳鉇=n醺堿焌閿*柪蟊痋>惵(f6黙囹"汈/Uaa蝀84藐下&r軿哸顒*l]9f梐褙湏3\唧$-聣有氧t!w8.絏&f 愿P?殬現鹴
d充mQ＇YVb嘓'/伖(_#籄飁亁E湅XQ6姹@OE蕧I熄J濮#R橦ュChpY佄SсLx;B鍳ec),Z)蒍"螐奂昣-凗v邞+叜桇讕0メ-,祑$ｕ粑鍳L硍姎cQ${擖[造6諵ｈ芾綐戈D\*枅R杚1嵏PKL纙=    PK   z)            +   de/mud/jta/event/TerminalTypeListener.classm1侤E 俠0袯 鯲$毨V榣柪jp!駄繡椔Ha1?縳锵臊x虑1aωf茉谌*籣櫚Xo扲vRT(戁F'拈r>枋1恕掕沞猛珎E⒋Rp瞧0a䓖r<棞[7;POU!佮贵P@0BPK履E:      PK   |)            *   de/mud/jta/event/TerminalTypeRequest.class峈]/Q=K昍邿!AZ毗墽锓鞽焚n俳+馭瀯崤%f蹝/s鑫9魈蘿{|B沊 岻S僅`诼寘Ys劸m韐矯H姧勗n劀>垰U*I&锎j;U亷陷d蕼霅版再nFu籥斖W宦AS玕_1_F2a鬖|銭9+v)::4靤P.:uO}Xmp-VI\x劰?X襆&鳇;s見镩竵開|n扭,,Vl祗,姹@X#進墠絴'绮闀!zb砘e,#%杴瞐婍K悡-H傞鮷衇粶懾譔.cPb扼冟 a.&) q儽3H7^戅弗/良8 妑:FQ聰<籜|#徔F.廇,1講;轛欨 PK呻    PK   })            )   de/mud/jta/event/WindowSizeListener.classe嵄
侾呄eMEsKu5殑囨淊絺^z磫爣4垈唖8明q羡66{zy	搫蚘楦hCue耹R貶![#*g]〣~X詄晆渣2荟a橙隭
nX駨︼婰闐/)G啺OY(]陵b 囙`/竇[館PK嵦-      PK   )            (   de/mud/jta/event/WindowSizeRequest.class匯薔A%0釢D$lL0%戵仡8c璯aw$⻊ (\8餛(絢C"埲zzn..懬;-i3#萢置渿y劇-c峽O萕k劼嚢蛣1遆轒zM幘鑖 檴秚p#擃蓚鹡b陋遞誎讵氪鈉禢}5烄汼G	钱A橒f"拵;呛#
7穇鬗熵r渊鵠}琔爉G}jv箷侣3,i%b:淮&Q嫹Mj鷫送擱唶a率3M輄V苉!,馒c;勝']<<蘦囕馴紗>q辏楸峂hXBA&+sd矓Z楕BvJ嬰?A?瞨I釶朶聢膔啜 %鋿`^p畘嵻&隬三B灠硄冣9?V&7W1fP夏駎5.ub商慝Le7PK濥烏    PK   亐)            "   de/mud/jta/event/FocusStatus.class}R踤覢=k;1INR厲褺伳EH%s慫窀I栢鹊+_蔊|紑DA饊鄷o乢@腾%D"K3;銠s挝旆煙>C舉瑬Q翨	GpF欵g薠买4湏婕t\d(铢槔f菥pv泳3L阁(K1木唝w洒姑'N杚6耝峰應姺嚼K0\iL@櫼谲a蓄唥羆篰 せ]m螽O櫄龈棵#O茋I-y媾嬨<c癧	O覙$U焭懭q噪LP鐉q"5s>蚊頟翡艛=_摭]瀛0峼b脫*c"V%汤0pV﹂a	藔崠A+m1,Lk$婵3听#{4	!'_-fv;_ta 捦{Y&U浏Ｃi7龑彙>i翁嬢0N睷,与+丗區  Oc 疨轉卨暍'M榚@盳P遞55jdi剭Y,錷8@v4,;I"IS巧C+;鯳h/眓絻呑搀F;惙/楔H鶊W塽B~3扺G侅U韪F"&}m苁$謘蕬鎝1ICPKAW    PK   亐)            *   de/mud/jta/event/FocusStatusListener.classm=
翤7岶AmD{-t`疢@A癬揂6膷dws8唷哪<>s籣c幃彾徖G08ьZ*婉*嫓!题鋌慩)禣皽	3c4豦.弜&尀逦J隠▽e往"憛$L筦mK鑇Z沛恜d	銦W>糏 允▂犔f昬颳=ZPKZ䴓      PK   個)            %   de/mud/jta/event/AppletListener.class;鮫>f]nvvNv.F吴莻倻Fq煬牟D鼶0_"l迫淿Z敎陽檽嗜 戰,.I蚄-閍d怬I障-M严*I設-K蛢閲)cd 灀槜煍暁碤IS@NizfL9##33000020皞Xl@拤 PK@啚      PK   儉)            $   de/mud/jta/event/AppletRequest.class}捹J聾呄け眎訸5u痎嶁"堗U\P駘趲uJLk柧媜坁堔鶳鉄wBf鎋7g2y}{|B
薠袘F!Lj樖RnZ脤哬si揲8"`穂妓$炊鉯冴浺暳C◆[C鶖A輎7脠-]^詣w耴e騰晃漇钌(%锗\vCXa胘]醻 從e(黨胙3閴C'lJwO>o捼*}%E[鷣p叿QN:躮Z禆℅ャ0厅袕邸W26艼D4燾蘩 2?l慹t癸V&x;U>tA偭"]g絡BkY妚)Vh+鱜曣敍竒埰a	%R朒Y0搉 墨埵E厩<1完RW萓煈ByJ沖惘捇5宑哽驧孮-釵:PKi嫣3    PK   厐)            *   de/mud/jta/event/EndOfRecordListener.classm吮0帑)R吪Qw碠	F鱆	玎鳳FL顁脀锵墿腖"&$;g槽夡1盳_窆n洔鱡艅蕠g峭株NR藐e絍鼙箨%*
昡-鐬=廢[旑#!# PH1⒕/PKQ	z      PK   唨)            )   de/mud/jta/event/EndOfRecordRequest.class崚蚇翤呄敓*T⺄@Y4Q0n尞*4pHi?紜o+蕏[I垱{:w鎩=頋穡膒孞
	l┴NCAQEIEYC騎谝?c堈闿嗻筩
啲.m
=徂=:蓍V譸e笧5泾濘tS餼`驊op1断/l=鑸俱蟧2譜0旜曫<cH^[4O7u轾n钞弻壛-騰o$!E狗*+\'pR!K薡NBk25靻g鳱嗆咝濂大恀@`qM񄆬!誹ZqRF8|{幎ST換硦4Umzt償!冹誊"UH峅(徯P^#庥湐4钑G妊	壟﹌F焤菺A
憃PKKG[  `  PK   噣)            *   de/mud/jta/event/ReturnFocusListener.classm吮0帑┞猕粌诜`2裩鈄%)-玎鳳Fw贯荤膻@-r仼繪 #鋷}p秇u駔s!d68虴m槹8}辆<[v籉鯅*Y轇)$鱨近c	驫K%讍',濭~xJ DCb L茀tPK|c笓      PK   垁)            )   de/mud/jta/event/ReturnFocusRequest.class崚蚇翤呄敓*T⺄@Y%壧`軜蔼h邪`!フ.緟畬.宯}(鉳A47鱰钐鵽;/瘓匾睗唵拵矌嗕辈{馭g(拨瞖'橍%u
3VO*\蠜qFyUs($虮/笢J坨]v佔晈侓C㖞跪
F>摓'F勦颠尜Ι<_谝m胀睒
n	{南鹀9)诃臥Y醔H]:;恗,-gi哫:Vef项;rC3敆.~@邶A`qM񄆬!誹ZqRF8|{尪ST換硦4Ucvt償!冹苘!誋峸h0o袨#饷倲):毴央Bbq鏆莽騋怋溘PKZ  `  PK   墍)            #   de/mud/jta/event/SoundRequest.class}懰N翤)H梲(Bt孾V检:鈵R欧蠨ctat隒O^b&澪9g3篥直d 仼$0璫&E筜s:鎢,0$Eh玽貿哘).we繭6CbG*豦緱諲忮-2杛鍉鬲I颴蕦Y砗pN収⒏煂缡g萚朵嫱@py)輤礐桩蕥P跆)O:aC箋吟E兡0(-視搛Z蠚#?5e=嘺傾嵔含ㄈ^n信FL美b肏2,朏)唴徠慅閾a鷹怜3
%';幐阞癓/ 僋_<@５蚷*k7`乓=篡顬欸檩R畳睝1`鰒#,衇ETF#嚤>弛g殽W漠- V純鰣85岿羚鋘鄾_|鉚孁揮濝PK谧湂    PK   墍)            $   de/mud/jta/event/SoundListener.classU1
翤D'1kb6諾擂jAQ確揙HXW墰W仇 JL3虥yO鳻` bBt5縏6%宖禆枬<煸j~$腗W&嘉沜隋矃	訑骞Je岽錃瓝a貪m398落g5U栛/^#  6!l軆 PKM鄿      PK   妧)            ,   de/mud/jta/event/TelnetCommandListener.classm庉
Q呑f8#W<膏QJQ濑樫長3gd稳彻 J~逝j锆綰雟縗懬亰@U燜hG嗧$塩e傋秳属祗陵膜u请$;<?潊N->嶣uR刕2Z%剖6※鬳ぬ^.w!麞轩戤Go縯澣江H 鋅 萻隥pTt涔+\J钕↑ PK!5"      PK   媭)            +   de/mud/jta/event/TelnetCommandRequest.class峊跼A=揱6,垪B,!J5UV$E晱胒儃墰]詮_找Pj暐瘇攅o6`迕vO鱰熼=晨|麃(&宝铆h菆俆鵉1唽俼
嗐鬱 ～樒寠Y)福`^C园J,[挾魱Z淫眒R+NI0-烔謳p媩$OW1腹蚞g嫹'捫-郡飡\脉簪0m岘8柵硪3褚U/菭W篵郁艘^*/湠n
7碴	[腹甭>?嗪身簿背/ /R1/娶0魡梢褵l6D艙嶮涥栥粏X泚髪
5 ⿱潿.z合9W=嫚(my藋wW=襂姡笼驗法a	爆*x!5"0騙c`8軮嘅3-<濲4\屛K'郚鄉!譵n&彬垱駦馢E槁i'苘嵻起/弡N琛Fο棋毱襎菸J`68恚己犯:g衈	Q格㈣rC`堔h╥!6$#搭A/Y薲GH珯C疤D>謈鶫脐Y)魮L凲繳牼$4z桓嗠'垝螏Bf"汏屓W碊C霟妁!鈃55凑犝p橵W俀ù>\j悹0E辤瞘19蘡P2<旮,n&!魬N駙姝:曐PK迵焂    PK   亐)               de/mud/jta/Plugin.class匰[OQ﨨[仨惨襌餹Q秧栋逝w嫝"$I芤C]襫蒦岨"5$汎鑳?8й 禡|刭3呶7笸藤D(+Hc<	s_笟ty剻坈唲
妗)逾ㄋ槕1Kx")C粹#*7~8鬖c愁,昏惑*M5c藄,籉_,垓騔or7)访[mV9C冱╬g郜怨(臆7;	萍蒏wW }躴CF隴*趐k斅6擨賘>_矰趤0扦牘笇9萌哩妝,HXT眲e	+*灐╞%糚眴4rE鄝;*^∧4zr犻蚭%糣Y啞掔6*噟#諝.赘穁7]鸭柣衉ゆQ糵▎a寿蕭M偢^僧騉4+瓟猱_q傼楇畴)!尪毱&厇D鄁C箬堐t
街#%^篏:镠xuc#D;L0Z瞁邵%?J飫~
︾O'垀i^#""0Ev殈b	蓡4芾M爑eX$
2(*,sL|咖鑋/挀鷆H隷!@|J!纮裚k#)+u塋羉籁翺捝嘪褘愰秄皩wX z風蚷$守祈惰;,wPKze8r  ^  PK   悁)               de/mud/jta/plugin/Script.class昒遱U6慷M[Ji[
姃lE)Thh礪)Z踕I乏浐婚3婳<08(j跘gFu餗趸w穒(-幧d镙{嚣蝫嚣瓮竵0鲡8钆祙屇褌Q1S馼Q紥纈*沏ˋN熹h)\螆Y!:Lò霓yUE1)豣$51s腃焊忉(珮Q1 7撬J總賿韟嗧挪?
1c鎳r5)h4f孡俪姍a3鐣.1稵vry33U蝕&=#觛=9Y,,汧5S啑8Yr厎昸
Bc=
"鶔Me-垓請>VO夙験粣.t墣-鍓P7`冁夠愿闇2茓]臿帽膡&,捹VaZF萨%轲x&Mk o+_II5rpM螼繮悰栦荷躢~h襯L儴唁XO5Q迄鉹紈.gN{+廂硯鍣X濾9yg$>睑臘(歷羉嫗gJe#蓴(C贪軾俞篶9H
犯懰櫘猾浇]辆潸IK愋絡囨mo卖
\噣塑n碛勬:)u*80"鱇乓0	遷煱有儸嘂p繂=孬AG毬Y/.rc鉮m:佗岷+鏤溦:薷沷О|S.<犪4$q\肣羽轛P繗箚輦;bs迂漛T癞嗺/怰灺薛	宾>蝘8
冬荌疗;舣爕5搫2齼*h經fX移祕尳鐦谁埞-涔}崼ayW猇裓Q^A嵣T暳帏$驦}hg,酋z嬫攊{藚W0綖y$:菧*蜆侕1O魲?誶{Е統賆Ｘ蓻箙ji厞m貛6蝫疴q'$$莥Dˋnr-證ⅱr 9&鐺}蚬弌滁wxJO颵BX, 揀}	彪PC郲蛨瓮Z鵽MBe鴏+p1|B星皶ZI翭;Ww鵂鐯冟l?0=剣墵 	Ht=1Η_棲髮sV6鵙鍛yA酁纙墤E靎齵挠讘酘%躁闁%h-_U里慺鏗<6鉈礞Jf&a94磵炤2
彨坴俧$偁錈釩U"Q	偓@嚹U洇HJ>┃q螹-燸g橔El級唒"6-爲遐瑖Y颊豕D斕g斏鐢UI)E婂xp/9卤/軁迎祽喀裏b>翴漪毮驆薶猩[瓳l螀頓.ⅵ靛??贜W深k4鈁F䦷,▕艗洄麘+笓掹殂稭;嬊9邧7轛A>驏]蒛D鋔@紘闭_遶ん
j黺鴉鯚P廮2タQ慰硛法?猂ㄗS鳲J!q俫蓺VK錙︽/墺鵙V炂墵8){ J睢1关Q艩t>)骕僩餷 qhル枲\[c广+7$u矊v
h]A綰=MQ珻蓢S+p阭p!绥髕檆gQ $?PK蒛~    PK   悁)                de/mud/jta/plugin/Script$1.class}RQOAZz鰖Z倐牋臔,<$贖br憞毦ols鞈=枆F?e溄瀬`蔨fng2喵臀钔煫k责o4霸祭妔>^鷛錭嵭哀:镬枺g臜尛鏘q枨>符刦槐陿锏仰昂95 詛镠趹6阫q6T79L83ケL2.畳u勷1*%2gVΚt龈礔j 6潹O鉅Y礳oM;cy!C0>諧计lfT$覝垼醁艝皅](c臦貹逬[鋺苇鈨яr2嶶八W绑蠤堪:VO除[魹C兎X鉍燕y鹟sn郪嵀厫闱;t兒劭帻嗳粜f0┞,灃,A臝x嗼婋8D畸灣K.Q%J拸T拞擈姅X誺齿镦 U@螷咳'u"膅/譥PK,I  )  PK   悁)                de/mud/jta/plugin/Script$2.class峌遱U⺪铲裡!(鮓6閂攤k Δi5%m斖&俸偻l6::僌潙PeG荳鵶詓w+mi&w飶s倔蒿=?=@YX2炂!屸^忇问樑(迣bN芠壬8Q\攽芹bq)偹鈟%倃d膭G(媾螵p/
aS胋K羬9n馀umCSM蚸╡1,肞y觬涇5t瞭汧g|歛碭鉰玔S譣Mm涊哸〆1.y勏栣1ī羏C+R蕻q嗎馬稶逦睼5範f霘YC瑆6%AJ敛笓7礜囉3銕&偙w蠖U7]Gs"弣T<吣纸9蒙乫"Km蚿巀'e6IeV牂Q煌 楉笏喐!熰旔S0唀I紶郰<G=串k榡呺DpMA+D枉菦D蔼`+笌D8W'e籌Ｕ6y媅.%79轙>Tp?!VP妩鴵货:w訞瑱瑺瞞翽皫)\[c]箊撯	Y:I粸鬒&瓜湭}ts哠{禊aRY4:. 峉"s#冟I~M讁囮y"妣砎鳕?>概pb@iPn躚r6w躆嗼粤怿?;閪5譀歴乶#
<脩$B躴lR$'靶(bX5~{鳖働yu赫巜N鵒
#k6法3齚l鵨C~Q.颼K鮁轒禋IL4萙璿/'棎w鍚窾A滣統Ｔ尒- 竫i</.奘谦 "i禓 ='顏ML轊`"s溜=脳h!P)摼)^苿5,f"`鎿萨徐淤iB疞#孏{Z<膙&貎溯",銍zPX)0#eb燈鹪Lh_0嘖賎&!I喫[P骋}顅聒Qz8V跦d{8蜫墣){81J劸混CL閍d 闹脫膒W*Fh'畳鳨窑D,釻攓巳}*競:]穯蚤>芃|J蒽3j?烠肳dt|Km8~.;5?`z晗鵭>V}Ъ誗頯疨栁襥b Q/虰薰<4=e鮬7PKC惠?    PK   憖)               de/mud/jta/plugin/Shell$1.class峈]o0=n沪吐簠26燖W5 怆▋IE搙LS/u:U釼/墎<穑譱淡孞D妢瘆|9觖け僄&L苌#徎z笚C9-芟Zuv7(冚	\;	?c葁帴阺%<B埶腠w嗐3P3
凭怤儉d)訩唂u!"Q韾!
{湣捒<v畢厼簯轩l1Ｅ0羫#%廧菧V6褨鱄辥蘒+擥G販z悳楤Yi锶蓑j8b0;8蝤k≌	cS皢V-X改皵1^8翰g辣皨=,<瞄掕窸綈暢.撅抚*玎|楼r婕禘8鯅$W档O>WQ8鈶:fx[絰c砇*.癉牍5
J魌M恨e胛Q簷婠5Zc窵>錳鮫`跗	R蹴?'+4f	<芔KS(產=)U謶&LQ|骋#d|g阓惗椌"鹮'V(K嬹	舋6瀽颧啬l嵴9鍪){卾o&秺笗哀p;㏑聈歶3	 PK凊K&!    PK   憖)               de/mud/jta/plugin/Shell$2.class峊kOA=訓甝V姇孝my,,c臇G,B疔t;i坊せ%瘰鸪	J餑,4柂涺v嫣漵翁交?~~麕 f餦E\FJ喆)!$ULcF嗁]bs
瞑P1邖桓о緜
2(躂.C$鬸饯飝\叽阤觀┗咹峤鞺刧a痓簤9啞朱}?[/T別褑饞i涋2脇瞔峙b﹎哖)	唄薮舲絑-^夊僛奂f蕐IC`蠽m[圆w]A萷'槟<YT嚥弾澨锺甗.痜阱酞铮飧濼m[Φ}kl旳-檔,様;諅S鈪)璎$扦啱栌袐+#_r籨壼嬷畟媥!%1OF[va{鷨m裡<钫])騎3+萊:C稆6妠期庱Nxy吁]/聾B:)7酭w魑暰碓櫾邨[e;它揌se^蜘V	e鑢=.繝!RT鑀颦,n逧岾/I辨饞羍颂&刍{,蟛 W^z泗蝣PG@Lv峜怬L6Ks4犙eK$>KO!悶>B3ARS"P篷砊\猫Om藨续:鑻!髎镃N=F	;rzE庖D>b&罶ɑt牢'兞&xn]挌勛p隭&^醬嬐\觙帎	遞7([贚`瞐s漧实憊9i慖绥=>蒎c圩游7稿芹剙>枌赈? PK-[暱  r  PK   憖)               de/mud/jta/plugin/Shell.class峌koG=阖辺Y65Bh:p1)殏k{,诂］5?郈憖愙o厇fvqpB-y|锾漵蝳禚呦N鈜;q颇.8kr稂\罍亱&哺d2~6pe繕取yW\3 `+殷;庍(4:踫黣{1
\yN`h-z)pぱ桍j穖?{碗.痪}儣<芙纺办E譿Ｋ誖鑍Z雴s遙楋ょ;m)0襭}y换跀=чIゥ觬见N*?貺G+n(pp楨晧捽2bt仈<GB-竈$兣N7h父It|_*1蒞虥(.3祌]@4肾癋E亴鑢思觫%"枫Sb鎦郌2'囬碯2'Ηg敹Lq鸉斂拽詪i禍-爵弓~r灋邭餱\Q朏*G]歊嵎P{睆E}偄馈='eó\7p肂縩suF4邪0庛{舸粇t諃;c孼U-eT侟7c9Χ橼篱;hJ9絹\vpC,	熉现桽8鎓銐P棅埘T`_i恱惬g5邑<@媇鎜桘l5譗zd鴉NT獡際U?ah〣+鑖*誹趠鰏-8M癥B0佭p;c1牠P$暡SF婗M萭5鏹8珒i把&尗Pc3盕BE9^y2C瘯Q}忈K臰伫	攻偣_8F3饦/'L摹$r/侎8S;A#~"B壔i钿-瑷骔┩+a%*:`匑n_zU>≮ F	叐x_Ul亦縊i`=暗7宨淛鄉]G 斥,咹aFqNOAJPK0腁    PK   憖)            "   de/mud/jta/plugin/HandlerPTY.class}R[n覢=8q陿$g)醇C)憖瘔恙9v4v(a',墬鴃,
q譬H罇孓汞s蔚e靋逜77`c讀{絒5躹pwm艹(夤5IS憔TⅡG錘w奶4殅旸/硄r3翌孏R+s?Zv鷄湎?庭?書蟙茟~5|} P蓃﹕伃N*逫?柹鋃%搩.鵗8吞<I颡t>.'Z讕T"c鮼魙蛃&檷.S >覅e5坐sh辅胾q誼褷x炵K瀷鹸 褒?!5麠鉯P益:4<珠蒵1g
,廸8昦_嵉运lb刔~809蟠!濵込Z躯釙繝舂鑚駆饑0]跍Q莥捃U5#泙竴r吔勊吔b,;"N3H囲4-"暯(}勴}叺苉彀p峢垤9冑Za2g鎟迷w幗ǘ+逹53E1俞l怾匧X7 PK奷娯    PK   搥)                de/mud/jta/plugin/Socket$1.class峉KSA&乴,<}4<_ b赔鄊I瓢vSJ䦛7蟃<x溧彶熨 剛-M瘴翥腩'縹鴫0f餤Gwc@F(rQ鋟Lc&哬楺涕樓=ボ尊 馠胏O4<e堨[崝]cH攚瓆薼XN莠Ha;鮁哫謇;\赨B跭1L攌苘k仗]i櫷F玭;f怒~鋻""K禼薳3籜*慌蠸pk!^狙谯驸澋萼姎[[柊晘b霶t繾噵B抿<N栯乽S驞p秀侧:靭KX襳8Gu锧|^應/3Q氷戢永+,国┦洩狒娵U緁:糵U榿,笂aCHP賻摗W饐u燼衫3,kX1怶榦遲呍疖40娩?hP'АI跭:甃ZI菄jxe`k存1螶假掊U盥髛頗筌標'9韷!淨S%Mノ濡p沑哛驸kK霾<眯艰H^WLKx淭嗎Khd嫶w鷨.碆K鉈" nI崎"剟7蒞爚	N}#%}尋u颐t莝呃r6B归6聡>p溛"&鐻v牳啗~Ib%﹤!'	誌>緮麏P>袰W8褅勅6碿,5E蓆宼7J櫨#謫蕮0幮H櫽X
鶱貚P狜頂沙A灧牡遗秚识)堍+衠)肯4n协搊繥PK-    PK   搥)               de/mud/jta/plugin/Socket.class}V鵺﨔廴守N淠墐	C泜,9P赗B襚嵙塁潥殼薍z'熄衬槻缎柕@磂Д顠.i盠歴疫抯鶾NO73Q歧斤揎.飵^D鹥>嘯P镃U乖"稜巻娕28!%)%錒)╋K蔝徨0?婡頶瞂桘#Y~莚詜\Y<)橭e駎?题GY<撆砓黊鵌棢獂.嚱x^聏A鷜Q歺)嚄3I"嵔毭k鴜繍f_W駟7U黂暖4(
垠蹮7珸$?烯緜m33F~y.d鞼0m;"侀敡韋嘞0(L:伐硜)N宦2V#税e
M籄a_(<娓磹窪r梚淊AヂLM敆俍鶖o攺YA么'oFCc
RSNM(1mq4X鞲Q眲t霻k辮My帣)阳祛粜=\:Y	<XO2)5j毡mQ	(l5[t<蔛0JE3j摞HU4}颖i1>衞甪zm闵偞4	>域;n晼F籖"宎N2QH
F6U#0姂'&秦J叀潣$羬閑佐E,滐陙. Z︱(RU幂樤p 5|穔8剝*~-纪鬿桚椒*)礽骑NY嗙	O歾嘔甫=%{F肳p噯w駷啹釴镢鹮雛mU&儂]蛤36牣酑鼏!嚹oI4|勥震{麬梅C=势 譣拽溊躲雚兕钕蹒X`抰0鼸彡県5菪毽+艘W繜~翥耣旡萃%|y咵茫r舥N[:嵗5$妷让鴗]l/p鸥蝃'oT琎[庥騶蕖#驐EEo1!mV酧兘q}G侥aY垅{涹?tV脽艤喛釡娍k>职問唎`N藕唎aA'W2谳N
vm淣潧63odg咺,踸=n6+R'秚UO彊tE>箁a髴襸p4勥1QOal換;H瘴袷Tu鑎3x3F)l眷搃l+z紈]a3邏8蘛a5禴算%鉃\3*屔嵋卛秗姯鯵榲
A沃旅r脬0jUC钨:"<忼蒎!v寿V廲+c	会/喢v;樕3\譞:M~螉=橆
?}^P疋\扈曓凉O〕恩*.n渥$p+n儕蔌"n绱?	|)9Iт(w聀wN釶鱌x勿.4)灋A7罝4エ!Q荟楮拻N晩鐟N爐檯"5责x.磜=DZ市z蹄!炷}鎻玱鈄J跞筥椏>Hq夹郡'0脻垟敘煊襡の?F2唺怾(嵁筓噂)2I鎆夭-&0 u.卽l蚾k!_~埶h垠;H0苈v仯m葺旍k:蟔/=r笰.zt)j脒雵>G蠠縺﹗|<nJ唷s3壋w4箓Td璏竹3g1'K詖鳴蝰/溋x-Fjg鬝a晲:蔶'╳8铺? _
9悾,觃*/]仚l脭苫勴Qo朷犐e鄇褔	x屌~湣<?IHO囆慈l鵴禖詔Q氩諻Mf耴蠁&#a;:箪*~﹀$吒o雱櫤処沟Pxw腡殁囪忛UD嚌蒖r屔I卑EVp,趀[(%{d枸P%k鬺x垧<C~/顴騙"諻X僕餶恬87P脹摘枫┿a渀4E蛀dX瓝扰Tg馒+$庼4w南b鳝"{D"敪暸V馼4:}嬡w葈火A莄i壛1〕鴑nA垳氠PK赩"	  >  PK   攢)                de/mud/jta/plugin/Status$1.class昖ksU~N歠匪@卋厾M伇(T,蠦[
7蒊篹v7參(姩xW乃gf寗幪8~岿器&m)H;=秕<蟵vV`4`3喤錟H(8堊$qH\F膃T羇1 cL8&d8猔莇1%銊創
粥攤7pZoBBJFZ32溉枙怱覤信eF坓%2
LX
蜪B硽选g"mV殭嫃欢n鎣34屜欘4w4y河河亚>欋駖1焣祒(鎡"4疯PDh@7uwC<恫勖[uN2嚞ghJ&)鍿転蠷鞋磃Lj.洳2(0AM&穱蛁8i赪芊clv;d橸=W5W稬姩倆馷<\〈穎h[褝∥T2]唞菨Y傊YG縃a/腴穒Y鹅兼笎亱*鉜袾骯]劑鑵＂[Ut0鶩B牄Y戬圷	鏤\罍妺xK袍$镡=倜C$\V>> C覯	WT|垙(W2!菡羳UB町Ha縱迧S&佽獎廢\'<k<g[E3#酳熱簥像YRZoQ癀腥洪r泋ㄢ+|MZ*棠赐祵三崐o駶婏qC'蔌橔1$庩N源塄5=O	7U鼒焾+s
萮j啩┏洍Yn厚*.%u清DF釩LPg
劇Z娓{囟
躹ｉ5措Vz&*緰Ns嚘竜;绵揗h栻压宣坾弻&-笘訰軤仄j4讃=g婀羆,!胁磎側瓚氻饎餵璔魑DU鐌-M?W鐏;OP痥銳x "媂嚞|2=鯪婬,Y5J蕖痈,瓢腁濁i飢歙9Y鞱
{+C劝:鰻徹Fx韀去杔兖垨$D櫔y琱氣h鲵V蜢xⅨ胇E暡jy' 赽4澢歁昻yh善m[苑&&7z赡@D湹搭嗻媹鉾Q
携q掻hu堜:7u腙緝@W暂费5D帬W髒篎}W霡織淴Z锬媬昀姇璧7邗輵 蓐"%勬!簓h鬢攰*r:磤k=#uf悼綽Q藮啚y剹詬まj- 4曅|z}$辐rP萉#綷/鋐扺{r(,c箛5S[[儹鮳裐耂昡謻7o)唘%碪屉k殶畼凵紑嬔#<廹紌苊)q繈嶓垨K穿刧o!<"G	线ca稐砬s賖:#豉4J8俔 }a傼忊}毋8.a
WIs'qю}撦耰鼕3)鼚4强肉>3蹓<韏赒衋瞙o磟夦%
暗仨補 W枳E磞楍2 H.懘鮿8
鯾.ǚ/衇=?PK鵸虶  
  PK   攢)                de/mud/jta/plugin/Status$2.class匲[s跠	憿↖p鄞c 鐐鍎禓B跕⿱I	.K[+e琔K2<鹛榓x*3紤膒庝豼悚蜩h项w倔9+鶡~=x肭x蘩)渇s评^旭";/i8k@菧巊9蟜佂駣唖;湘%x崌u糿
:.kxCCQ脹}y佈+慿m(圳珽戏J蔞Q8/衉喉T濩烇〦併俳C&WzW
=_.G7什綽梜4.嶿[惦蒦" 赤綯趁P姨貫Y&鍴氭w斃H陡a叽瓪鞼Q鼽蕓!b籲澯頩泃[L=Y3JATw銭忓$)sLab枆1装l
􀵎畾(aE`p!虔?SB礹偃霉/D腚瞡b锊筬=集#佱囻&><焢e邙J6蚲H苿儷囱L.椨鄽怷'%藖47%鮴颙vd糝迗0 ^迶静J乻]*I=8#曄vD~n煶不-撦:真Ｓ氎镬u嬵獻竣猶om灿L6鹔睭y5霋V烿娉77ワ
蘴9u$荭竎俾>
丆佼8谽m"'敀舭CJs3軞'膝豵f贆yt]靃*趀Y隸ヘ廖e:T+騍抷竅臯憽镛(浸氰N笏E喃囶qZx扚婬0︻ALM喸/浈> 咩i#	
x6f1殰YL&\"忁榼{闣う沸称-艮莗s岳cwq漷_狚=臾08欣鄛鋢}_蘝诼疒8涟.^Mg換zw恜-e镃-0#d,G59墌矡扆渏︷%.+D?芘辐吲5$説誰浶觪M1CP)鏯5;Q坿郒K鞵Sm鷋噭翗jj藦q*3	m!踄捤t怆PK}}    PK   攢)                de/mud/jta/plugin/Status$3.class匱kSQ~(雤	曁K1厗hy4+)粟癇i梡梇逊罘烶S谠L_涢G5絿EE搨賡嘻顈.锘g髯飋?嗥軛括綀酶!櫼Qb埶樌Y憺脭刬2F綐蟋H烍饧/執#8锱E	.I柑啾柞J(涡xlm-V.UK贇]1鳵O{澺z蠛≯C徭愌4CK绿q哊U7x埠戓知)Q漂歒瓟,]孽d0 e0笗(i
`S曅$Y髽F躠!*欩)砵e鶔.刿D川mj
0瑺$\Q皥剟
產I聈7,幡俒P蹻R
崟4陽n<&<赐爞;斧將 X艢4:挦填 ⒃鲦1t韎甦an叵7筧荲j; U汃Rc磍朩*≠8=鲴=D郸=瞔獤%陃渠趸马U䴓滜喺-=H,檇`qnPu掰;D飋萳擬冴撃}X疤獞c
櫇ⅹ玧垂嚍h廣.s4~XI冃@2%Hvxm淤诵>詟垅9閁p.򣇢鰿t`愨!Z-繣@巐僂凭栗"幱琛=纊湢1囔"轘5刮聀濍)qD:p鸞缎Z_俫xb赮C~皪6坎卾'誂+鏽谽-!=_匆
灀滂%逐Sq詝2岇+Z軏锔7弘nt譟w顼9Di%輜ゐ灳t鉼]N灼0N謟EG褐5PK;(    PK   攢)               de/mud/jta/plugin/Status.class漌xWw翿凚 泟驉 Vb惌K@H兿深M2t3ggy廧熣阝g礥在匾覀襌諾牖Z礦k脎邡*3硾&氾斯w=缈鐄辖{菐#垾Rh
^儚18揙0箳'檤娚UL>W烁F厞=2>玫S9|^羥
甮|Q羄_R餰_憅儕9兀_ee+鴼婛窱仆*b焸[T軍
n搎粖盘: 銧饀嘾VQ=
Fx19落(踭L屁;X鳱8	w)鴨妎鈔&遙r強o銊姄笚w縊琵xE#慊
T饜婏後)$鰙徣鴣孏e黀茝$To禵023巒:]z:+ $	暷q	U夗=︼tb	絎%瑢"泆SD\壢z*e閲脚磏銮:禷3聬e俵榼%[胻劷C'4暀缎Sペ彺+X洜g{媃荋6铏G颩Z痋c槅砎B}4绷l*遁裞浻賬肻椡碞6┒媽j砇B聦刟妿靈;悕皰z篕3C蝷A60漕@:2$厮7BB 僾$e俌03N宐Cr笳倒}WR9唀r爴E韦`熙$+.圩'l戁B6;M.Q軖V诓前H2京kF縫<孡杝Q蟤58d櫞塏(态剻艂"UO&45礖(Z>P>轲+毨&&輒:1捙恍j鉯v衽,h7硋脣k儌n4厚邙隔渤團锯k8轞=I鸅秄i點948瞍覹 XQ舰z闭授I鞭嗝4彰ldD	l园[4=^铣.tkq稼杉mxY>V≈敵}	$hqv[Z蟙D唘~,'~姛Q澋愼罫f@孟/Ｆ鈭4K㖞N*3裶-m~t计,`B適e厗M豛1:,'B'IGY鰲С繀%'冓鱉恳餶鼏趤兆鲵输H╙7唡弦>C峘赓駔-鋄x娜DLr俍笐Z佯[<射w~彠4鼇鲍;攧yc:磧5O6韽L﨑蚿睂?k醥;葂V?駵岀5逐<!憧䥽4溌S縅{瀯s卪[vd 昦$m)r-.E%滅-蹅|;浦=wuD襡)4) %,88佃r9:閹0鐄渎Jx<[拨檩H背k眛邷鉾1Q歭裲dó<^傜&∠}ZXu償=	E踡贻NE:橲;%a~锤向官z::購8/,8]熽*乃荒LG7\o傯F懓语+s析Q+酢!aK7顯碞鲏q疟<%3陒肬5I"{紦E昒-=r$>7昊._士,榌5qO趭迬鬇6渷2贔wx&蹧+TG鉸_鉭G計r>i*S"榫迻鳂xkiA鋼I彋宲諿T曞酝奛Td噀掙粶镎奓ZB褘YVan马浅J劖澽櫇1DR愼浈澏⿸'捣3询峷&5貈8]a觡=籽?]氼#?褽銕t{恒贮貦.uG篨輵甖摦Ur*揽稣󦩪jOS#X?
帢訋bz uW峘f;噂嵧	蟰纾B槢眉猫!吸烉沽哃{阹8瘈X旼皑蹞|Y葧擧r1K.<煥膾\g轑t5輤J
跮
Q;褉]X呡蕎掋颋
飬崼p曍冸pn茘xiF<遵Vpg:z)0<KR4OA銫8叒傊灄８爣蘍rxyb6採典t]竳#X:偲年っP阄Q4Q\歿h%噀9\竡洊啑廯诺h^琝ZZ`U扦H"驜D^1傉糐粗uW4更中+{:N炡?担.*藿*5>孶鉜^Tb%蚟蜆.ncx坐郙*N瀂{爤螪斺}=鯾-Zp9蜓噛Do}$u+輳F軉簰8B:J{孞p敘}e8]竼嘱鈔B<亣鑗#忈><I?|熎x唒灻僴疃@醆鋝莱磠?ej&>A渧X貛Ki窑锨 虰礂Lr&駌X炞怘c人6,箷P僚w鸛蒛禾嘳4O o倓稴y鍊4Q笱"虭^SA}眆d@逨駸ň襏D愅篆鋼Dn`e
^x`坵旭!幕梏Mtj>9Uy;/r=T*~18u羃嗺8X踢流椛Z瑗e綴+鎜qD餷 >T譬繩s
_鵞鬭逺渢彩C梸煡眴芤帻-虖嫿PKE貗徶  b  PK   晙)                de/mud/jta/plugin/Telnet$1.classu昸OA嗊i+ZoUKQV;娛M"h獸輲e2嫽S&&葡(銠閆6槲=霞g.鴧$.c9,&鹥柞銌厸i0櫫-芏p锹4`衣攨{idp呗t:f3f-1X[疅#啈b;酹钞\g寨讋湬GS}┲C痁Q
帽V酽Q;e頚(Ⅶ瀽BM3L婊:O7鰥!5T9胉QH綫醓侪-炿縭C≯qgJ[b 兘$%g}78鯗:w*琿U驷啇甠拶$襭~頽箮锸歋R5鰮鸬愓`$>憀淇梯V螠剜2$qe蝱k丝5賞觔o葽夨;蟛候鱾笆愄kQ蟰(眥蝻ft沀飂殷=京h側<礙A=豇傂ゞ長h76FQ1#60虗k蔀oq謑_u)6c戓帼味鰱!帶=i_
3m懲u递缵-嬘舾d	瀂(%:|7v㎜O<*褧U焽C贫湧曟
	鑤&T吕瓃w"邁p梱5>誾|V*胲訔a礇Y'戀L啠璍赱琶欌弔耰狐Y 	z規8闏衛跻G﹠宩摔NR9X+C抇娓懹UB	'鑩!臝`]&▇gc4豴+?憐硧烇鐼7s唎71焩刮年媃辇幀蟾碁一1A錚儠ys|秮睫K;m$EZ籩i4S翬	0咮~浱6例dr3w晇陏嬐l&gRh昛;@茨W橇鰮属兮p犻pDtⅡ
峗5炎p誓欲(PKZU&(  J  PK   晙)                de/mud/jta/plugin/Telnet$2.class峉鞱A=-]诋俆A姈虮~!罤R,俀Ｉt;%.钗>懣I@&>e汲]Ml役;w螠s顫轱??~!<衫纗Y擳楬ngP皮
S:3杵L0u涕福c濧哏N匷S樆a榆戃\s耺踼U嗶W秳-啍l貯i巃,z/B聁叅〦鄣錝唴rg劐r摏%)r5/幂嗮7x谩J炬Y苜渚q1,1罼q]/9<UF:j楁旾蟯H!QV瞾哏+蹂蠔負剁T鞫囤靥鷸xn+錶沵V2袊鐰N莻伝抚憔j!}楌3対)鰠+通蟚CH毗H莄U,茵;7菩i8茌6雿aI唹酲鱱蒭造@
肞'^A嫽MG&N*－辨{页<鏓FCC/倛?愜椺輌簭=茊锺ε:3[绝哣E餸Q潿;*F榀a;yuK旝B}蜿釴W	敪ZUr昪笆词T襊牁" `a愨h!\嫧r1笔敔F1'$LU"]+5Z%~ⅪM轱萮x}@G3鋗z,_@舧T}O$蚎A#睸h忧v殪u軤热鑹:橮嬬L\=槎'臧Ir:賷d6A,,71L谒F忱_PK拙:3    PK   晙)                de/mud/jta/plugin/Telnet$3.classu択K0嗊ls祏掮齸AtC+鳴d C棚YgfM栢餑'Y耱''鐈篥_(bk0恽刌s榳班`蚜CY呷d}梐顿⺌邛粴a趹士z熈絰T鶩hq 曉淁戎C胮S*q氜礑|蒣!e茪Q烂+K澄%cy侍鐬簿G諪懞枬4鎆F妶莆-+本蕘fr紜(q,嵎佫y;]+鸢\亙~+J剿wH鍑\uVW歛鉕絰J緺)-臡cx:O.&菮乪恨>j_櫰橊Go)叙0`ZK!璵V狆dki6,信蛽7Lj癚O揳誏(觬k(訽Q鼤蜢-!9鱃闻e,3峇K褵`黢PK@    PK   晙)                de/mud/jta/plugin/Telnet$4.class峈[OA-巶\J罵栗7T$崘旔>轁衖3uwJ餲 &>鳴3蹅h夷I鎟緎撅\27縹^]靹樐rX)9VCET&]Ge7嬐DF紸u潏鷝p狶t,祽C辊透巘*&苳e斲cX⿳06SMe錀A-觕阎勌4m,魤H暦G` ~`孡Zd$dyl栮[*韖&M2蹲&!/ 坥断~<廵)k d缝 嶅'宄W
釲pT吧  8j
P缲<Mi|-訛iaNＣvW茙a骬<撈E曏T檽,胠蜺6:8极摗X髛,孠J-vHE{亶1管58J闭焽a4鹓涌櫊疍)i哮樾炉
8榈G禛满苞%
唧楪tz>`1E鐡a1洬#M9虛蟢}i聱
(.]◆G-蘿}数鯙"縎鋭<%z楄~F溄Dx>蝓PKBf  0  PK   晙)               de/mud/jta/plugin/Telnet.class峌[SE䏝o;罖7慭匽圵
羳(鈓v穀嘫jv帜藘-碘鑋^|笔@臫僓侎胭a-T妗幌ハ黪9飶?F?VttbT脴	羷啑tD憁翬Lj袱#幩r:t\庛J;︹衠:^频8<６溪+M杪淶姜喿4蘫x]脗@琑)袡+侍J禈Y鎏虅e{覞东%袞LKW圄啑'mGz橸歷薧筆/周#Z旟jI@L
4彈潑g:逌iWe鼒{羠,oD 莩9V鍠枉虒m:ヌ岀ZNi╳N 2^.抣K蝦銽u%/軾3oS託+L{蝨-%蕡穌U憾"q2绔tioLB dU餧d叢砲暘.亽1顩}轴耣iG喎鶒i恋塚`嶽*耀`&ㄍ鲳蹔'艜&YF{苲檕慻爡1.={ W=%叙澁粬'g钫k孖eS-+g読溎)鎛:'T岻菓罡mV*并黾i(庬穛@肹奁;9猉鎫缳D单>鬹(牗AXD衫E襽収<e糼萟瞠揁h髙*g&s-0爻w󟺋U岰,霳W柆J3е幒幥糨喺xt兽盙KJ^暜骶昆炤W郺4綅n紊噚C宊薓n G}轉G柺瀍NX蝚誟敀"烼	5澥j"q渙b'嬒mDu_闤蝅x荽:|t吅OSs嫴z紴O!R歄プ緥H>⒕-婑:挳&_~茋媞􋩸新p8-58魻W綑\&礲3娎Ydz燇蝺閂#;歔錔達h閇#唭4L嘅5磏Rj侂hf> >蜷犭tI翛	?嘤9冓~8'b#磩8荝榛h勰襺砬D忂^螵菑+.m*稠'%ёph8y唁垡鱬8勧銸"扤=<|奚/筻:曠p悃H&忬Z%涒+V	}吞胠K*遖遚?`?n㏕禢=媑,'p伇粔2浞櫊,竤$8蝖悮D@癱gvn骭髺$ b3p坢縺9煚6勞鎥0氲PKb頕  u  PK   梹)            "   de/mud/jta/plugin/Terminal$1.class}T[OA`棶彐供XK枊w腇$蕨郾贊%籗滤O1羓|0>実﹀卬3g蠝鬂颸v~]楨賲嚿.釬7q衰e逝m\蹵蚜磱f藤]#:榮;榞汝]橬0Z	?j渣=妄Q検I$r[飼Z涑"曉臢N;蒎&┠隖T6瘑wx"蛍[賛0羬H!OSA汃q坁Z苆S$o$5薽p熆泳8J咒厬-7&L墉笐bCv紾鐚弴,x鐲蘖%荏p<麴<癜喚8O=琤兔3瑊xb);唦rU鬟T鱀莆懇T7啴⑸p鋦\},^9*飸?蠯嬻 <DJ2O#苍馆璕6龡<菡Η1r~)岛-E9"q门6扢xK'R	ft蕮
攀%Z烚_ESw褈,囖T鑽8$nC&嵌蘊KVor%╔'C癗"龉T擊z4窘氋牻嫔;@:'i暰嵠-}+蛗E鎷5K6\Ⅴr藠鰇舖cRUq綅U;繶J嚾⑺l哐=幽&部4延:5釣拈#?#醸怏﹛呫x宐屸d0n&p詹`敡}PK^朜8l    PK   梹)            "   de/mud/jta/plugin/Terminal$2.class}TYo覢6-qc芑\PB氁wK爫@ EP︰7螔n弊暯)p坓~bv6柤;灊浢蠌熻.<L錺譺笌.-.n"镡
f\1k蝞i瘟吡CV锶t殑盝M鳴ｆ飆铒厤篢䱷H"﹛嘎愛|幮2 烾─.1L:9蚻3t椼歚璇H%^5ⅹH秞5$蚉%x竿i聚蕁C轐Ry
襆t3紻酊y爀6D&N"Q耻v>鼯;韹}〈縡M賠c耫萘埩輰I 濳卯0饧耨0圗}鑧颁aw<芘==<繡<琡暋(B9隳羉%<耩k直H,:e0`B戤4螟┐+2諅昶蠻0帪嵥校從K囧=Tzyi丠i@hD;坊U蕟枴偋;隰 F袭0亥(荙5nばF	o闐:焸Ny?C綪D+3玥闚"趮曞袥
轿兎$n'&嵌蘊KVop%╔千VC癗"龈TSz4窘欃爙 嫔;H:'〥逨縼g"笈趯袣%.衵眅E嬧1┆岗篇`d衑讹铻m鈂賍p氳i鍤p忋魬饝p>裊聩D键Q<0Nq2槹~摳lY0视>PK鱫\l    PK   梹)            "   de/mud/jta/plugin/Terminal$3.class}T[OQJ.婡A獔禂"( Jh礬1嫘`≥%跾K|鏻[蔈黉虨欩f鏇賡鲎/逷.<粥G葒:t.0T鬶ɡE)zヨ撯拞髓棬壓⑩獑k0勲R♀^眑f趜4菕蹾g撈奰芞*籨Zw姚臨
|馦K,sa&(f却L1瑺5xXPO腘r51逾撡wf谺,䴓漙℡鏄R/=拰(校柵滺奺2,-囋i#z5,!L蹥嫖㈨义堵謾6劻坠%2&.7吽揀j躹5鎝閖("vz投騺Z芪:	>n识獘T%VG a8"c*苪苈mB瞟#;:"B &UL闃=1
帞栨*fu!yY略阛#TP&I1k蓸ZX	觏?g33傆荙P攃l^昩g(~芒蒟}=4,*P椄wl?0闈.醺pLk 垕M9~虶耐g貸齸喅4^5Sd#"兗b歒-9]嫾5Tt簆RwFw聭gw:gZI{儙K滽N%鄞硵眗潵$ц苦SO/!2Z#8韱I-%择e焅LI/a8A1廈3Z,Z!昇r龁
絎C[(跙y瀴脉+*;s鹨RiUz捽疱í氘蔄夻2脔障}GuGJjv+%茬#Ux^c o芠0镨v记|
>和勻4w歒湧&m8GR簦-穖:}nPKN&    PK   梹)            "   de/mud/jta/plugin/Terminal$4.class}T跼A=!K朎  QD饌耬T%乭4\4閻皭霷	䦃焌/>X,	幄l蒸Nw燁>;晨~E9吼J!晷酑'4t肞眩7ヨ暍O妦0 Qu[w1鳏Qq_
糱偬鄂(h帶笐丧翆祎n纱頳L嫢洊X媛LR贪i檅DAk鸫狏Y瀳濃
j猞's钐皡4Y黴;梢程10z$P犌,;4薴9YZN┯諳鬸XR樁5蜐E凵饠薽叚3僲儻sK.d\頬n
梋"B嫸%$T詖5鎝閖("vf投祫漵<j识獘T%VG a8"*:!徳胏O1!E *L悌巊H铇羢gJQ藀:V馚羌aj醮*╱摛櫟dL-$鮲駸硥沋灵((16?瘋Jq縜裠瑡巨↘\D蓍跲蘝z'￤ E疜=!覼"@%bS師h砌#;翐睒l8觅1瘹-2慉^1,N謻湲E*:]8)崌蹐P4;崛硔`3瓟紸莕%W徫 Rv渕9蔢刮襢	嶬鬫鹩旦у桮嬣崘O 螒~瀡#趤曦F覦襅`H6睿袑V7媀醛Pニ匼俊翪镎识P瀲g軨舼g^Z*璊羡T誹W濉腀I欖鷣犄泻荆:3%G5嚂匐饝蹻#	a煲呝［+6讧y刑**5Q7h5F2逘m韉峷锤m娱scPKH/}
    PK   梹)            "   de/mud/jta/plugin/Terminal$5.class}R]oA=葨u+豘嫷煀
詖4M磈BB	-薂,砯w朏旾瓑鲸/(銤)詮(浱坠鐬{f鰚耖3藏露7萩箑X煤6躵p跘!瘡eR賏Xnv?L箕@sM橏ヲE<攰噺
J-蕐,曉{k読I6Cn?
哹S*2vD|;!!s(郺浨覝莁螛a 冏PJ柠!OA汝:晣d-#u 鈄E讂鼯夦臜(?睌鏵o1an=吥喽4i芡N*n顇(纔p酌=T<员獒>禜z歟啋-r征_u"+粢攭侏苯]}盷溂騁輏@]/粲醋qK禯冃銸4Wm在XЕr7托3o@雃/C妹,澂衝徫q陵恲o9E汅緺D篚s歎q菤;:牔6瑀橲d撬rポ譯隔K俚集X姆咴阤姅I56g	6:燮PKJゲK  C  PK   梹)            "   de/mud/jta/plugin/Terminal$6.class}R]oA=葨u+鬲炮/65馝覦&$6◎>t2kvg1LjM|疠鸁寃?2_鐬{顧賩鲢薟浔卪n昉腏	玐s睅3輛p橇]5啟>杋m嘺
攨⺁smを廌2拪GOJ濛J-蕐*曉{膈YI.Ca?C-8菷=馸D菳;x藻4	X0f类禂蓗挠T61+驚薠姢'#ZoC>>1J,濂賉oL榌 1笣8K馢w笥娵&莾噞Jp荀 uMlzx-挒e櫋bG\健4藐?酱e=C緉l/_梐N_l棪o6咟眫椿C穁;衹駟7鷜诛嫟#?[璄h'Zǚ]lPS9魶鎕,7狌2虠ａa炍Wh稧g兏拖`屯O葈礈2虴 逷※9Wq酮M嗠;:う6琷')
曒梸)粬w%|M絲昑s竔s柋h敞砿?PK{欃  C  PK   梹)            "   de/mud/jta/plugin/Terminal$7.class}R逴A-=z=,E~S犜}餉CbML5侌窘巴u宪mkLPxB 沆冖豄vg鏇檕举苷瘚K{!蔢猔
+X艼圲X`S爈蟭^XnwI]俪J~Lи#竖讪鋮@屦潮gdu=/笛鯜`1﹊颴犜J$PkkCeG獡02譔c獿粁枩Do崱瑫<'FV'泰?gy5[潥敐熀^[O昑煬!+_鶔孜髭弓'	剣 嬮峷阥煾UlE楩%@=6v霧h`媃'橎3eN妍N廱+皉珜段-;N褚y嵒8~1$圅儆}^h嶂劺TF9YR骁馆貑p_丱3p鞇谤Ⅸ+
_|綸?p喵⺄a鬄%q
芘聢殖7螿8GJ葿燏瘤?務*#嫗嗑飝啦]o潴PKJ妾.  	  PK   梹)            "   de/mud/jta/plugin/Terminal$8.class}S[OA-]Z*j蘑枊(Z预D磮bx氼N`蓈w稶懴$ ^}/銉F3薢!晕锰9g嚣緎跲窟}@S笡剨:悧譊摌R0-_-A譒f1>)XPp滱﹕+[﹜檼!磈托v}=秊郐]瑈喣鶮圻京3凝铀0烎嫉瞤-妷/櫠檫aX鹊rlN9玖[v翋*櫠xT玍刐,=%G缰wM﹪茦L陫mw兮'2詡=籋壎=wM趓[E伤*懎"	d+眚:譒G[Y击B{鹃鼻蜕坣O谾YX娥棟j曐9皑^%Zr荸购竜蔿;f0-酻鬬T9tD梻*0葠nB産7U蹷A翏娵彎(Q詤韐Рy"炚勭K,铜U?ㄢ鸪诖??G泐莡]x^vvf帯貁郃M贩凋+窺?k5胻夾棁Kg辏f6"镛f[D 揍單=焌:wv誚)g-Ne癡篲鼴*u崋B嫊<=rN-X窑鲯碕轖zS#包!"CD>恒麫嗩慶W淕 
仴$	#$勑F澤 2盬鑌2{凐鎫譔)穮L]侘g瞸!	芁1儖⑷$1L_%%寙,P>ńE{*K|\阸l扰p!5M%趝$!'貊W 9i`W儤.Q矘帱PK~巜眉    PK   梹)            "   de/mud/jta/plugin/Terminal$9.class}抅OA嗊賬,.i" V-ZZ`塣冡C镑C;i噇g涰,氏2AM拣鴎4戥裉-咹7佥9缣y蝱翁?_"-l;皅穩<蹸祤鹸噜!j6謒<b入誺Vq;哲qO*颴D﹛八P8:W/挫P─辌xV煐錈3铖w隗鵼胱\駷坴7賄缶T釳<81?	萐蛎<捚N漎#顏R"j|4鋂汻况渄[铹单洈P+癜5昘琠mz馻_vF塕謈('茞FRi(專巟)嵲賟鵰撯.fP癚w眮妽唻&6ml筙F?喒I镃瓺腊R6匾$
曟4奕(鍓义汯1惕刹2胴鍧椐Ovㄧ蝓@{-猼縧樸)橵轱<z媝蔀フ琄Oc3Xｙ2-萄7O泙煒5M\@9S╕萋m薁鉈%蓬憁Bｙ	+x#	u駌讋毲儥SHY)薽\篮@枅闺腳も?DwBtS$g暺a茶%qPK礽蛤    PK   梹)            #   de/mud/jta/plugin/Terminal$10.class峉kOA=幼襳∝"奘ⅴ<枃*膼%乣蕭.貵?5鵁D,mi珱焯澇鬓s顫?慰~G砐O@臘Ihr檶.%惻T9L+業@羖s%<痐A立%ノM娦k~E?舾緈鶸肸筝<C|纾(3募谜嗃綇o}W85免&拍V损V柍溭c鞀`HK荐k%犰驋IH篽椆骨C`D蔮 兒iY)樮u!c氐厃R氒匪钧O卆4[<鋟.曷螋4]aQ:xQ脗擡%夏庬;e盿H欇M9"凔*n )*唷侴*銐偧<氛蠪枫q蟱e朥蟃<k(0宼,殹7Por)2井牏醶傏Iege駜纤绣堤乫讻恀鳀e稴-殏锔6e蜹叿韴娯7蠨汼?|)<}	俚#"ピnWx梣Wⅳ饏煺I悝汳b+96瘮辜芄k襫	族U憃萶k2轱着>魍栤L鰆нX頕i9d鰾>i9/璖樲|摤-驏H*w
枦>A(7s傪'侭瑙5嗋 巽叀 U獞XZ0D0F9 摴c剮墳!1:吙Ay'验St}A<劮梽=蒓谙♂W@懆E<塓#IM瑚:瑼w喣脖0篩,谄Φ卮[穬;=AH2鴰逷K>o絙  V  PK   梹)            #   de/mud/jta/plugin/Terminal$11.class}R飋A}敁鬆Hi臵昛J~蒸僊殬嬌rl藨0w{ML6汎Q(沆q
㧏/;3伙綑冽鳊鉭ゑ &r厥
&n爊"冔诠－#d杖m耉w(鞩4辞J丿借条砭&/糋刓飴疐Rc痪垫2蓄	!s8J耲柞宄h2怉_<帞篠Gx'"p禑3:諷邨痢'翽rざDа閜~侃锉!菰浩趑t鏇絠8蛉鶡狚8
╔
死巺&v	E絘{?雏姟>圆皣鞫B.M7嗐罼:姲 戠襑鰍渕O	匽7T挮%l䶮#冒裪髆禇w钧g堋胪呰笕鱱香K3?$<Y庶7?礦B%:苛擀I鳈<鬑骭*鸈愨0[犞辿ま矖5灣⒛x`cv
kl!秄淺*	+~鄬@初㎏た璒燃噪V.憓憀~1W*1d沥<猅cUk茥n:bま+'t_`i嫶聹窢2螽c68	g
涶|雚U膤嬊PK罴U    PK   梹)            #   de/mud/jta/plugin/Terminal$12.class}R跱1=de]浓x^Pｋ%>i|褬榣聓K朾朆鈅i%窳穑層蹤訖3gf鼾沲Q靈覨	a.4鎚,`崖拝寘e喐緫脗Wnu霘环~&昜AC*3$
wJ-+攕"曉欆牑C飕YIO*q課擡P鋏煇	痀醻银]0f0凉TJg>o!u阐/Y簢飊塴*峰誽嚮>W5窢﹋h氻".)8贙5F扳`	謵蛋頯)喤J]楇ⅱ蛀RDG(眦鬱K陸!3揓_aX3絈 罚雳吃詃遠.媳LB淔l褳0鸵m矛8鋸抲J続禳X~	憞0f孨朏掛榀(宑2d被滛愱r>辩yD丙_d!欝%9gH!f$=\烶K7P錇    PK   梹)            #   de/mud/jta/plugin/Terminal$13.class}扱OA又=瓸@@l仮%>ix仒榎簟X煼譓冁篻疃%颟0AM|尦譜壿d鱢鎓~筮绳妜侴>矢[-塬`鱹la勖5uB贋氍qH
{JG=1癛|孏}m臋J囑萨%∫㩳旃:鈿W趆{L5tぇK6觏h豒闄炱Y	揌檍鏞%' B鹌暈2Gjs4本j_隰拫毒d詚 缺蚵奡=T&訅酓繚屢H街產uy阹,b'*v臁醓?繡剁
 ,缤bi]w"K佧崟扁PgV	纽浻駝軜bc{酎愶祕驡玺齞,(U矢;(髕=+睥酼侘"霁l筹"~
燇溮|簔PKl疧舶屨溾O檮;X洸^>覽(\ｘカ皾L姚幂沽B榅z緙PK$庉    PK   梹)            #   de/mud/jta/plugin/Terminal$14.class厭蚽1搫,Y艽矃~(≥だ喡訩RR[跣洺G:憍﹟繡!芀z皰3銠邔求沌凤(癚A>秔[萸]荏绊峋:k	洕瀶嗐^42z棇系塏T:訤&	曘髌鰰1羌蠪B=\<%G=EX頷＾寚]暈萵聳瘴(柹㎜涤+ 倄m孞檈-yO瀜}"S6G緦#&単yz昸tF饛G4VK4~<) 餈呙幚.B&Zj[V%J9忁v*秳鞬!j嶆誹tf邘P]戨2嶶5鲔鰶oy瘴#譮3S4監髹塬赺x0<0锑店毫kp_仐險Xw旷在麆虑躦欦2荏韅呭喾fN瘰LrM澆帵瑺u伮W?犼6>闶n'烞渊y贴謕嫻芪阒q#鲜洘PKM/$    PK   梹)            #   de/mud/jta/plugin/Terminal$15.class}R]KA=7塝w嵉吊[怠貓甊
侲(丅!>賹q耭鹅
齓?J3漂wav顪圭3s珂鲫el`s>*皜EK>zLe-耣+肁鸉効慵x,觼"%鳪9揊E贴2{匉Z樗	∫J簰0裋Z铉儙L廍'fd矟D">┎!X眆 詞i-覸,睱2R/ㄓ佝掐辠掖}獄y*孞4熻吇C呛Oq知憢	s偅$O#鵖Y{%7\`VjX'翿vi塧,t/<梏ed煙Q涔&|q尪蕦浍 斪+癧E2_犯;呁),驝&TyL蜢脋%苐8阢礐犳旫簻q㘚.ho8&X.鹤$记嚒謴唿囈%蔕R佪燤孯鳯旙11:8硏鏧鼮> PK橕4O    PK   梹)            #   de/mud/jta/plugin/Terminal$16.class}戇NA瓶訓..BE牋誤M剾&$$&B笩n'0蛌wgk|,心"瀁Z崞N2硈N倔櫧禁E|繹e<痐
/*X腒KX霭狻醓昉稐:mn:=%YO舡WQv8S葽*н嵔TV嘰s爫秶勂鐒R;)耹Gu*9撦3礜疏\&谂5C !86F%鞨Ι釲c侽s鱓M斖s雼胛?嵆$TG诒g弃弣9楩琶ZWx怼陝鍓^94鈙矾BKh>*QCe蛐NG4勁	遇遳a<8%唙{k兦掾韝p垛荍宰L6w*2?∏绘&浏
极8炨!.惴~乑飋P鴳k烉殛A蹣妍
sx歋擆k/彊藓F艧(=纜儃X`w.p砃K軂峻PK|k抩    PK   梹)                de/mud/jta/plugin/Terminal.class:	|斦3o枯锼驺H @d箃s憄E噿 $劽6籣拝蚽(姯5詻(k`[礥kK诿踛磉=?缶镗l扢B遻骹尢紋3箧金蟑焲P"nt盟,>餲9j蒺
p%砕輴卽+p-i笌乷h笧邢m@C冔筸0软F7q野欅皢[4钾c1黍b5L皵*nq珐x
q[6n荎U糒n槃Q瀟9鳟`蘊w﹛︶6w玿吴钫*^銌
頭un槂踴疻7蘡{軵7
逿馵*掬唖蔽駀喎格V糓袍軵7簈頦7,c鄔T加堤.7龌nX晚輓ㄣ鰗nX嬠踩器hx繌鞴mn<?叙~n叙A7>箸栻▕嘥lwC恮1n缦a蕃Y*qC)婳郠7>>モ輴`3%餴め3<砬>薼熡	~L陪䦟)~/4|伒z?/襦/5鼤/k鴬_臺笮k嵖尊wn(磷5唎7苁氻?jS僵嗊襭(摼蜔?耒宵泾;精醷庘侘5麫5ａG~4麯臤蒺䴘)>有ａ?Xi9訮J黂鷷rC㘚h鴂鳋痀郔"@
A{-兖*~Mg酺吽蠐!*4㩳e	啡@腀鈋R臽U洙"WCT1Tyz岴戮"遞瓵P	氢緋|/0@?蝷Q焗$俲-nD泝4aQ跍斱C鉙""#鞆俛殦粁#1/崶雕(>藯#晢褌0奇1+56醲im$,7.N8Q烩藎a6y腒釘f#淍詨5|#赨M<蔢$壠騆l"暈鐙5舽!唵"~_瑞7E諫6裩004/IDB~褐!2敛P1f娉冡`|.B7澥腤&b硓殼`-*0x)涟$裓oDW2謊/dT釳AT簞)叺>AD2珌 C簹皻橝Cc3翅疊F嬹秝歭A8裭D}馺$l噚CS屘頊鏶`,n剭ㄔ婇渞鼞pC1嵤`*墫&r毁Q臎骚蠬憩打偔~ＥRR揵k8邾s%刷妴x袗vIG宨r講.g儸事s鵞I_罿領'阨\鞆綻 sg俀CZ匉14
UC;缱恃z煷U0皶l%7&#刎Dj)05蝀紩搅賎J赦醃sL踕床K褨yL轪凍j圖泹朗鍕油鈭&H!嚄蛯酩J陝SvFJ珬D1恐妷疀%(s鞈禃擧)f1^_敿蠦頎F#nN]%8腹%&"=kd*菼'磼ynK+o'&鄫Q_8謄DK獴翓鷪/悐f鵰al3;cx3崘奖g2鱖洂&;[|1^9襫N鑕
玞&W}ⅰ丼踿P$_簠*$?鯘EI樎5N{泠F,6‖a瘎S蠯6[ijVmk8辒膬﨨灀甩 T錾砱.葦雅稚閘I^侃ㄚ晧=
喻5濅S檤F攉+!G`蠙
(小脟pB噖=迖t|Bn⒓灛脹饢o脽(噂0?Q鉿虺鷲峡I3>W媚p巟#犮:%dc0:甮勒j凚-:R戛醒蟷蒂譎>AJ0B^親菷I犾鸞}膎撲渐塀[莊塰岤(t	P6{亭∶_彩翲詇宺-@@%io喝堕葳╨勋U!_,f臉笕緂MQ(]2飤BS^閝<阞岎鑒馼	琺鰠BF猿P&缇dME萟鞁64^繉yO阳簿i覗鬐[畫夓斕=+R昡_撐=}?鯩8搸枖I+#Q*鸝#838S?胈扰邔*糽勓}韟*
uQ$婝瑠]L蠱?~鹩楇糆趷U旈b矘゜*﹄袔鸽勇c廳窅燮'蒪G3uQ!f閎稑爧9b疂*篤Gt蕍鼷J毹檻蔎掋$山掠湀=鯁Rf弞庋勧塂=綪(鰟#q姀撑9簶'*uQ%FP潛╂R舼],Uq.蘸X$围J-Tb报!03n粬 寛fu12iA	5P!UXB+&=QK2芲繴]畫Z眰狻k%晜2幇M<夝dK財N還翜V壵%	篟E'5ゅ.{,}.u篨脽碘":鵾驏s簣鄵_	旗,5*珠b.6瓹RWU噪孪画劑\褽@鹜aU袁6干鞾u辎A4辎2妽贺$B篽a]Dx[呐簣
綳P齁噰婳O0尜崉YQ暜L懆T檝叞簣媿|(闼BU脂螙/鎿&"k箓q_坘刲唻l揉|9"蚥K7嚢k^迱瓊仟歓]lc#8+ktq壌G郊{庮箨葿#溵w鞮A喉F龚靼塆辭=t"5t,"鎢..c涱鄿;$CUG鸨%8I'濺⿰+t盨煲艜b*耪U\珛肽]\/n信^杫Z锷喖碐匓W絕陏*幰0f塶棎6艅~JQY汾'3悟D8l^n-壐:慘7襧g)9D'嫹;6鵰痉犠Kl?e*>6ll/鐲5s滗^o嗃vAxM鑪僃珥鐜-颬M綳!K驾Q摘肸ＥGj篚{X夫?獀窒<詋|aM舝右+U揂工v,訁瘲[鄲頞Q2帠0釵:M7秶楹H噁Z4%J長f箈'嫌3糧ta8紬隉|唎1H蒵Q疐鑬%襽釛/J2C献娷瀱ゴ朔砽埛鸇^Su鑦,錟F"!肎选n钮t9頬燈)充1'或1挾撃H∷跟怳光]
竱--K.顕wzU脧A駡]遷嵶濖$雛#0c&愚邵%}'抧CDGS朳e始	1|+D槻蕪竣岎f乃$yS豧=苒ｂ俚K保V蝖夼Fz鄍)mFqF?2猣kFJ埔觏。t制氹L旑鼽赨%K*脲x|廐$,-&尤锽＼3񢹌濻镇-)^i誾No掉窦尟$D+_P蒅艐忂i2p岻煪踟C2=<赒m'絷鵙斔47叾浫T尛< 昈郧姝梧烨詉鍳#苋/泃6U"je塰諉<澩搎Cc睦Gvl鞹<澂Iづ鐾M[徣u睏湡z枉f~杋(﹡4酡瓯獕w巁吔/猅驣鈢镖赎晏uGy$j k撜v>庨昌踾槴轫汞薻^O偛3硪樜=S鮑p*<櫓0溘虘獩b冦za9呚庪_根rl徧楋插綑)峺瘔ゲ5蜰荆z|牊Nj薫,瘈5d胕餥8 鼂x#V鴄匉
口肾m鴵l戫_I.'埙賬H|OWj峡'酏礼p仜坴ga0▍x48
; 僐8qPr驰AO聙僐类v菼鬼0$m嚰0啩韾Nk噾)`T;孨Х脴啾[;?d"+=兓N聶鹬亗

筗T〉翜|譗(FxJ*豺i猡狐#PZ$	e獽蛘$L蝫謝榝NA騁$cB韭賡=灃;祍ZLc劣ir
]瀻>嬔3已3友尀晭灊帪描:	gЖ蜪荰昄Uu匛G`X@缆:鷾K粆>媓荏榛 	媦=:燜N VK:`s亨(,@P-C+lh%C玪h5C赑Cklh-CI钀t卓喻u(эrN?鑐@40圥豛g@+L卪p\5掷バ桝vp9欹.8W贸p{(惞伮醘隽棸筻 巹颼1軌S`螁镡B椓=鑷{1砀媒餭炁囙8>香"
/;餕N郔鳻渎_2s1_,1bNMX,6q%熝虪施9鼡B抺_Px!]縿AR&驴(抭鼪zNx涴拀>D締摖儞犙&!,#衋喓Qg8鍘］\楙$9yo嫙I鹳跟8繊X竍g$!	峬0r	yP<hc瞀$剨開殦秅F虣樭-Dv駫捖$D.杽x訵(錉:蔇洆癊-稒n砺45躂C~酆峗裸卧8.)9窙紹q;蹱的&緮報堷2I純譝枪冧]~嗗+yN|m僘打澢`c窴C赫這齉當"缓鑮鬁兊籓^藕扳W邛費鯵bW@9Z緍⒃`*u鋾H醤n贎C3_I慭#I-6媛T.)詸颙碌琫竐{瀄\醫敾灬氕a葳r嬶pC鞭k虞h脞+,T0眎緀,$軟抪髜業給薧鮪=5髹攱o%uoYd.奶N芑萱瓜鈾-&a繊福沜邜6;.R<槮躖,V%頙聎壈躑滅T6鎛%󗯨<W遦僫i'郴捋-m徇穭,谓廣3懵誅僦銒s*rt	8百躦惫栖z筳`〔姤搛瘕靏Z緑鋕H)Y4~袆=?d翹刔.:鄳簗'[<殑C秾vK+饄；剘犅徘l棕_ZˇX憋%稣呜g佷&醧[泵朾9]3idD?aZh樖&{鬒kt*i観g/<EUU孨髳Щ{鈹nQ懂喺t5验u歆 < C瀷~l6)矂M巕5巙肖霽nRn■6殰A鐅y懢 囄窺8Jp.汤yP峌@蟽]X{p1潔K鑌\
t-7纠^H鏛簆旮"渾際ｕ7衕=6` wP颶贻.軇ax1~峲°f1[E9n31穻糡薉 	)v.q^%鲠5 ^+蠲肽摳G<嵶嬨x儀鲓7&1,>荹.颊憙;漆>G!顆棠;K駙c揲貙w9鲡w=巸x0~唏4掮t紗8蘖镢C嶰馻E臛<<纕S︶鉐V鎐RY凣鴦*涴)e;⺁賺(粪呈m鴾r?⺄y)壳闶?饄鍩騩|嫂嗨<|9_uN胈;+5g-y!瀙駏|霉遲夺[\%苗礭%8N:晪驆áFUj承M烬癪))鏲6鯗D}=碇 P0乼眕銴:蕙h8堷9h铝許L%函!嘝螮瀎蝡姍P凜壩)f儣*= 玎09v騪8 棧0煡9f耎猑逘饱膐$鮐蜇&?躯G馶荊GK篛<濋<X卌)	搿U:伤}溏嬪*U螋觝l,誈堛p糦骼獚溤V <フ8娑Ay!}'0砎I]眂4u)m=搫s &醂J娂;薼余9玃-銪嶫@綤呑{创)>侭︶'0?吂4^I%鈍抆aU-u羖淍鍧 *Z瑑x籭g珽%3
肙:e7忊棿M_IL*踖ㄇ>$^匵D8鎢杜嬒茻厽
x0判臮('峐v奩禩㏑骐$鋎杯昶鯴zA/酩_防Sf]奺株Ky1弙誙(挕nX'S-遱騽顡祵摟4kr倂剋l礄棌錚<9齡K姼齳2嚤渉b 僠N谥廚-y4N莚ＡPp4#7殎3I$bEJ吳摸[Z蘑婬/j娵釁ｐ⑧{k^ZRH達秮;瀹蕭C4m$x`<2泟椥馻*y:垺▂怣讜慴<$Q$暆K鯽淤蕱Z蔲脁淓剆h$A<秳7鈂<踆"jk蛰+&*J廔棐猋R箇帞<.}c昻甸K1涅t3Y"侅坖a瞇f&Ο&;蓿陟危#厂F0爽"<?襦纀1諼,*:s繡yXy"&辔詺]姯灶劻螫衘鞾V[a祍瑅炚VY鞡壁eV[k+璿嫡諽鞿躇PK蛓%  1  PK   檧)            #   de/mud/jta/plugin/URLFilter$1.class}掃n0?穄C3砃凂g[Y伈F4	昅B Q蹗洑諹鉅捻辞B!q餚堛&m膾煋髛鏶'鷯2v裶Q臵Xw眮唻豻衪鹦#啰鯇O圑k4)ㄈ若C瓀⑼X掕ヒ熟14紹U幌P&C蒔敄oя@ ⑻J悇"陭T賦灛X07Z舜,摂,j詚Nu曡2龗け捚&b&|ql|9撢驋}幌崾rf6娛躛2MCIp榧镾+釾腸9hq<翓僲m貉Bb嗗糼$羧7樔怘讉*3.儀=K仅\rIs栬&q,4菝m\絷橳漦絸徚善1Uu粡&齋U鶳{魌aG夋"87i稧蓖笣焋潩(}薻杊祕3甏92n.钴擑:鱶=麾濓(頊娛厸浛;まG#]r*醊O躒盆$PK决&  6  PK   檧)            #   de/mud/jta/plugin/URLFilter$2.class匰踤覢=泟缫妏kCK M
猅UEB哺蚓q唙嶌u焻T
鈦啵硁.B埔甮衔=灣汶7旕{..c繁鎎wjm肛D琢]S晇漙L4#齱:;Q鎁餌iC#佢駠葴扱!=V2虢陋@0揁3P=甩#J^藨fd9圕﹪2Qv=+V 姬QD伞杋J尙暂c丮G/(y'SsM/樔欞鍆阌")G6闻昳fV嬕茔8KB猓X`cq鑾-騊G蟽+<舯磬伹0吡烂.z苻B璡倴褖|4eu*P!嬶貽X) f2)el耦芎hCf旜嚞 抖服毱3:喧H訑暠=N杊綈mΘ餗Z泽璽2腸賤麛x匝鄒摚}^[捻嗚oB閏炗夤9K<_蝗b畍吴9颸焥戒吠j飨P鷤9*6:氓sT6鳪B&*7偩笝虞孰V8数洒PK"@傮    PK   檧)            #   de/mud/jta/plugin/URLFilter$3.class匰踤覢=洡1q$Z爄h@.M霐r/獎猇猟."$gI7鳵9 ><餛圷'JETK秅苂螠'捸琫pn唳嶽(雂葜q錠5󢧓3ゅ敍EM/隁}i浨n均龅u \擅哃氤/徃%=緪リ态Z!t9C>y颈;.E陛
鍙)%啤矬p系N懙Y吺$0g;R+~B弚)蹴跓ど囓楁帛靀\%藐,i抺Jo宺m縢禿(}覽A:渄慀霥笑娶a`唵054l岙乵苡p呃<4廼3鹀葻U匍s噒蠒m墎4:戤獄, f孝蠻陝&t*@- D徦w63筡瓭;踧鴢知I嫷鯚DR竑洦祃	=陼a﹋MOd瀡s剾尌遮(褵憽閊T嘋+Aw9蝮d頀"zX}+_b蘀z	)X,闹垞
畮"$閉 q備)R堪④飿k"齨鼔l憩2骅鶓(]妗 焴忏竝iD9)\5琍羪B/芁妆c詚|PK縎C  -  PK   檧)            #   de/mud/jta/plugin/URLFilter$4.class}SMo覢}泟樃nRJ丂 N氈=pUBH曁杀梔#g崪u?G(撵叏li;3o藜櫟E煦袉匜e墀`M癱觟譈寺C蔶$ΝC唵qo扙轝蕨8
榻?鮛奨耵)CEW"いgB
u男ts弛}喴qq啔/$滿<}b颥鸌凝 诰p柎08'R螋8N烅糂'$凧$-O?&閯G斻`x羂y|匹驗}6鈯|厄`(>褄*湫氅T!澎^挜!'$竞t牎<vP乵羥蠪锹瀮.溃戠赌皏Y鹜`藽捼窻/哟!W返機蘞ei3籁,榇凓YA!W=Sm潣1l疙aMG蓽0躵彿鹔襴h呀^У畤B
鬝犲`曥*潕戎惑叝S0@5z過爌喤距$[p} L戹z3螿z正mv蟩頀筳p3R4|6殝躤:E闒祪桓gtn-4
柘0HPK*匂    PK   檧)            #   de/mud/jta/plugin/URLFilter$5.class}R]o0=n粏ff:]i叆 拣磇4iR4${wS玸暫U釼鸩駰愗恱穑譟:&1艗澻銂=做??W韪(鉏ü谺絺8h:豽饘蜺襷肞MMJ麩>G*22辌~焰\i_ie歗.珆芇陰麙a9PZ濴G=綀恓0Et&be,Y;`嗲Z烁$憚4
缔Z儔4&揌唘/姍餎7pj,矓G鱡0抚鉯J%7K^踕嶦<鐇妰紅懊帷M菞k廰%	=疬鲉2$;9搝"P墤;C殉柅%搅价頧鶛牶拙Ёl沍Xdp鹿N-GMzIe噁}]豎牴N馛;犡"nXg
卭i瓥\`欀禌,琡5Uq3M <未3-搦幝5奧(齋s咏K鯉"縐鋭瑩R)g搢[荫PK鉧!T  ,  PK   檧)            #   de/mud/jta/plugin/URLFilter$6.class峌遱U⺪餐n翵藮K[	Z0M#婸+VΖ碦(E$7芍蚽fs稢篷8€僌攫鎸38忩犵n趷秈莢z鳒s=;吖琏裼#奧&pq5筁jx]茅蘩梧lobJ臶	1♂m鶀G顪0-曮	\琅8夼{	0#鬓桲^矛咾4太鳣舉礙F~賈盠莚+鎮餸穜!景陫*v<E課g蓷竃J娌疤Tl准z9裿鏖P飕碲b娽DzW享	攊z蠖/鳢X嘖^裷-邧Q憼罓鏫楙訋説p-蹊$领kp1砉e鴸=梐x帙餞%+2绵巒寬G=e9掛-喣鳨N	蜣6宑 噏E!c8o飺\==А猹嶦\S瘛%\W駪帍q僡`+嶇俽Yn:澆J%贗m凨浆|&,JZE%eUa隭苂2#]k膚U:昒杒斋2揜+贂rb夜2/
啠G
w吂%y!+SD硬v酀aO厠y攉s_2踏穇c6}[m桒2暈螎6鏆榣E=s瀻

拉玘.輶lㄛa磟*'(夜\W臍6愵Ow蹊飩娛狵汀IHvCE讠彭7$禼.R=縈_噸鎭囎ㄟ[R殿E槳GV棑奃娹莾4鰿埨悡C?Χ】脁戶桯%=J咿Xf>"欖}DGi崙#9幮歫光(坡P诫仴$FH蝋気@O%sQ＇壺异#軌LeM〒蔧厅	/臈謵04G敍I鏗6鲆褼o} r:v崵"脨蘒%Z梄M爝1R竒芘蓇洃$uC钀t认擖尀)*%18
珩5\欠魘堞'銂|~娘竷	忦3/!-氌>A桛跹脠8亿O袻'鷩瘨鮀堚$音M`xPKB鹳碧  =  PK   檧)            !   de/mud/jta/plugin/URLFilter.class昘	|快&硻$,噭X	&, "&!$羆[濎赦f6腪{.謨赩lk 賵i癃釷m耔フ抖墩吨凗繖蚮捸骥踥藜>搠旧Co遯蘍隟a:夺V鹵悵4訯y蒵枵pt斺恖蕖荴;}窴禽窯媒:沏铙醻qD:&軩)D悊噓L臿~⑨Y>:jp?肣忛槄5<#铓酩啛/繍/5科S炛1|鴯<瓞哧~9嬹责紗4绩c)^冶已鄠?xY繽鹱R俉t鼵鯺踽5O%x]勬	藳鸲豿堙郤失奾掘鴶WS:垛圤晹)M4U闟篳耸小zㄆ萰昸狟S4遄詘MMP(嶼頇闸09aб辧3黃(鞱&覊H"濺鸱n7w樶L:o"镈睞A$悱盩Z≤E;觓 蜧躾佣
Hg'枪撇38e8Ow蘓樷钋狨眓+赽wg覫遂"壏;憽知򨎎锽"-挵又tfww躂嚄;廸櫝促宼Z
%〥&幄5j吇2佯龃^嫥鷛#f摼dI處B罛*邤I5岗猞11唬3mnND-7f[k3]鞻r撡$磯遧&c驗埕;cB輲嗮Z]$VRM參X4熀B{橍n効)揘'腁E蟆mY夫覉諠98=iEv2+9X颚N=*&%3L'(>ImT鍱供贁改r惛8-/twg"IS=L楆L欷棿"8|,'lZW灢襫l6Y1")雐O鹇瀲铍y駥s裎d,m濞萞轪a沜⿲I'k跍桕N貣-E6&O陽B耚犭f$b3缤洤0?8j阫;廍棐眛.;輎Jt聾Z=6=Wx\巹鄡<吷⺪64}醒&FM4袓鱎忄s图骾%[蚞<2葽R校85s緬禼簇稌l帥⿺迵5YU2Y蛯栽CU﹋咇yug'ceS櫄!e蚗4-3腮=颼1峫+嘣悒П昹d妣Yp+M9澁╅
〒邅n8=Ca騂-永熹I盷U鯣u鹕自)啔e=怣檓郅篥琩2匿J壡ICU瓈:C呍lM1診蒅判n"n5N鬧D宬軥VA漭-垊馏0帅﹨:]"gī哯4T=T儭枿賳Zu朲艭V銞?5T搄6
堤P+*C澀V硁扒啷式sD喂6At%2v4纜I圽$=慙[Q椺}
5tv"繤9gG腾i%t2梉C缳q\秠9EX歡襎吱谍:'腉L跱駝=b蔓q厑雙絹o猽鴸4厍狥㎏v%&r剘<6詞梨踲鈆薞槁U羵崦kL垤&Il(I茩谚驁腁殐e嬪3
刏;豾聝)FA觙提鬚毬抋nn"陚觿幡 瀼ふ!V玮<嚆碼鏃A-=v眠2v偌D爻#蟨BYp7睥.彎鳻O]	'8薴tg7湴弼儐!潆诜雍讶}閯幻O(h鲅髇y婯%*殳X晴b赌$c3y 6C2~ 鍁+7XV"迴c	o些奧e鏔瑔.>屋げ伣驖_R輋膉4撥1xK莑3筀轊燬t拊檈*:甈朜&豷毻/釼}j葼岘l@6g霱顚菓癊Nk骽zS[b槲f?,塠v敠2愆渁撲)潷qe軖宍%68湹剥氋業V謊^b艤6鉸>5*G鼈 惶+憣&%讌G:&!鍖鉪~峮鉍_:鉝l%冣+B2卶頃櫵yr恟瀕牢搘惑<y_8紬瑛丶,{"r+K8m5謪f鳍ó灦^x{P蘣I涙閰呃锯泊:_藌a鬬L軦0董錣T饀渓f徇釸弌+聆b樽鯽bR/NVz0Y*硺2б汦]滸O舸!栝yt@'3鎴釶j;N)遞嫡雅S漌:=ㄣ2腻!伏瓴樆与`^估Z+嫵8=婨Y溠嚺"鷅佻ゼ猏f?(郇"芴禺84|蹈唿m8镝"f鵥嫖d:餓f齂苜爽頲^s'3x?sx敊{1\冏qb/5堇a镕R蹹,‥揕猓鴺筢迗忋P侮摳挅硼>EJ熎g啷|烠1e泱÷;W!(禈2恩橽逻6塕/{qV/柕!OM欳瀶閅U倘be╞v`=>糧]裰^莫,蝆K懪L荜=x*擡KE齘<,聓馺./魺C,詛鳌1-嚂X鑺',DU镂鈂!r蹡V紆猾+伦铽酊[砐﨡疓堊z饕*%铽婠鮶﹎Y'沸7卦_0鏚翀VfV崼秇飍>~T1<_\麧湹猽鵭	oaO笗樕舖槆僗,c廭V理X>渿b~粙]v{櫻鹥庎j<@巼0k雐<傜(^肣ヰ樢窀'T濼M瑁O瀜验踫5E-`絕EK彶B刻NUDm厢+3u砬W跪RШx涏k劂疚7襯飩#0
泋.飣刳昱咡w禄=<S勱"唈鰻PU硏ぼPM3嬾E斻%b_&栣菎恜%*覉S姠y卒m鋥%u\歼iБEwv哙義討:丧蔏-恋L'{枆Yf伍*:yq",蝘焥B炾,讷o++おe旿+0*'x/U斞蒾8噶轶妘6)n9Q朣)OTtexR朩R朣R(1煱#x[榜逇Z釺p#衟	r髖0萄√銍a鲠;l'0!8k篦鏇w婐}蘼, 齒搒烯筭 鳜=g箯PK    PK   泙)               de/mud/jta/plugin/SSH$1.classu旣O覲强穥攎呩6咹T末c<
緐:񻍮ⅵ踤稈癔B心旕躰幑%雧滐s9盹?聝id@斥1'鉵^!苊}d<獙G2聯 "3<1/億燯吅蠒竄珬=GS遀雃萑皂4C d8铊E縎秧,胮粃遀
升蟭Cwfhz4鄙郵0K!溣^+pkC+Ti'3媄uS硉眓nzE0`P矄镰叒f蹨vFz湗ｐ耬頻pZu鉮0变DnO;性猣斦糲镕檮$芤崚y樧繍,﨩:辎^銌瓫	;nxK艎IQ%w躎富b;綜Kw堗K頵剦ぽCp閟戯;劚e激u蕃[E粳嬱(q爞8^)坅H%Dm亳n8j{B朦S澺帉寕,2v&0轊8洗镺w逎-脥.蟅闙GnB茠俥紪雹捲0攧鈑Zl虎骓Jv!瓫jv璾E灓附X.-X*j"驒dw嫮r壑<較氲/:T隆灹Q/踤A::婈鉷珌M焂	c鬡叄>岯"瓡怇q愈2蚔I怼1:KM濦JM澙笸艑杏OB=s!(╬,f釦夋譏誁蠐Z豣ヽx~阑}
~A羅w鵍C咪S1逈誈珸靌m鰀軩⑸zC-壠h=呪露斡簰Jj着.８呟d③&浪4
 仴c鬙瀉@B'睄9衎`)"N臆K侑]\us*PK:F娱    PK   泙)               de/mud/jta/plugin/SSH$2.class峉]o覢渟邑qMSmT( m>[O ^"!@
昊鉢計\;蚕A齓H$(霓%j欻nwo3>2孛K玿渿'jyja瞧.獃訮沸P{覦四瀴}嗆*⑾P奖^8p2徉C緖3.匫Hy&捠C┯珙y趙囈sGA:≯砭#x畹厊眯-淋$0d跶3:"銰閥徢熃^罆ㄈ鱾/*矹滣a茹v%	謆沂!I[O竘G岍け'E2l蠅<著)D嬍:屃頕i祗稡	硤l_tP勲`苈C哊Hx氿啬亙g84褴翈:碏K糚yi2q5絆!%妙50驪簊.;"憸fDj蔜i喺椙q4獗糮鳳基_t6((C軿鷺0hl4.POQM23t鍂)鶫y嗹BX9佈hM慁獊存さ<參剓篣a諼E娦狓>秅瓆琱瞛宖1K[Ω	屉%K楎W攌殾O9齬zs陉捄xHD轺守⑤PK-=    PK   泙)               de/mud/jta/plugin/SSH$4.class}R輓0=N讦槁ll2候懈!PERH漹&fs&%q陧睈H\ <鈙Zu7+栰颎;鏧鰺靠~媚燠╝珌*铌c燮頨竜a譈嫛1醧k腆|拾鶆鹼#qR难K傯u*j闠姝0六$"肫4/r啀 堻♀8.Nd怊[腞{%3<k/E]タ蘌棣慲p檲胋4脑駛4漶1悉蛫龈芴2泸P4,/i6胿鸕\LDⅫ%錆蜬(喭靱Zd¤ImrO5蹵{uPG寐Cm1/比,eb灉鵁C掫謺蕘虝燝XJv@舟辀緵幤iB魝欨Z圽跻叭閛T榛0X0鄆珨坌擞旳粔=>RmRt;?:.`t_傈Vo些))V檐橝qk%;'謾4(_黔9奪*棞v?#%镖粪璫匪;逄&畻0郹丢仇PK9廓  +  PK   泙)               de/mud/jta/plugin/SSH$5.class}TYS覲BC癤浉Tm藪补QQ*虜轇si盲I'I嬀9泮w湣萨餑9灈V
趻櫆滍荤;鬈沖麯觴-
!!罞拫I.a:2R槙1噛.d,饩LJx$岜PM3c4,笴┶懅n撤^謄D)鵺朩b濹h4=j嶸f鶾,+nlV爈Xs2&a+`83礬照COS+f鼁l#訂ex躲弛Q杰奏曍 fl8噑喤轙他藤嘱M駾rvA3w4青v)>:^$耡兜艤)3]繢糢樥樺+~*讅AV宂&@污UЮ'褻錰x簜QD1W\鉨 
瀈Y耂习"峁^HXU惻殏u琁豍饞!'`–O4P煑℡Eus堧x[9悯M躲b笤k渨,ks軽*0讁磯趲炼RI硉搒堻藕nI突M侲/湅宂5@"蟾嫀~<慿u滣*哒h
.髍嶜2恁-~Gl噹Ba6]I7軍聿謻苔寁貟ソn姓綛(>u#郞剰淓玎淓囦
;1睬I3深H;勪d佷T龄tbrX霙徆N矝0L怽h爤袽諔f畄^_銣偩迄繀弁曙)噂湤i魷 t'>櫞6C)斴法乡#争8>C,岖5讪s5 铤鴞鰓)@唐幼PKW邨淘  h  PK   泙)               de/mud/jta/plugin/SSH$6.class}R輏A=硾d搖qc灾jk毱諩
(嬄憐=贊6砮w捯噃}*x鳳7搻v緹=9g橓觖荗肛聠Vㄢ顿V}巼顈h34<k|(汃弝膹u磌:O閣顳镃翽訃瞝?鰌睋癫%肦湂h8J嫜Q6:*牾^贩墺鯨*3lv姊挢c)
c┠谎/姀紵Q	霄x!M=mV尶鵉瀽憪'Z骊(鲶b(R喺螀ィ蚴渲+茪a0織強D霬cr<@.!PG妹 3,伪Hw`e2Ⅶ齺HHz鍩时,禒楰禡; 醠䲟Ti~锑ゲ<蔏Ao蟽p2)鱝V烁濽}M\『E賉猐奱;X麽9滎9/x晇C	溾韐(甤罵匰bA囼E軜R繝h年莜p俊r灵埝Y齦y&oK竔贆e\肚p`勃擆PK|莓{    PK   泙)               de/mud/jta/plugin/SSH$3.class昗W>[耶7姄垰珚lGN覗艻:j斈 7瓸伂祂kyW賋舦z熜氁朆h扲
敹怞i犰n~啛/􈢚+Er,暛y3箧zs糫];袎>;%7郒4孖人刞H0FAS陇專
罰P臄K-Ｄ1	p,嚽,岣俇榝b喠瑢2類q';".w+XC=頤1=#醻駙<剣|櫫W<侴火W瀌飓寎M耂
多儞2炴蹼
灹謘
緛|S!騕尳 酔	$|[ Lw}坷獙nう蕑j矣Ry麓R凫teg-痐xf災w殩轫X漍@~!丳谥%2敡gD+'毐骦駩鏄L讬!A 陳eN酣巩A淴{敕QP*抲佄{;QK3撢q-{=!蓀I硨鉁璦骛V&萃c欺cE=衪輎驎赚<沊謹踋<"(I杇8k苢猊鬄i[吁:塊鲽x涪弩咾癸ъo] 漷諱4暚]v蚱揝)悠fA艒窱舗d$|G臟8-皒njㄤ$空5滧`
lQ5楑未\~壉1鯇6k==肃錠厡6
鄱髣o:鞘精|O 罛鎀﹉LQ佋栱郫弿推訂顦^:闦3t捱黛8E72娶5忷Hs銠婉}	v>`;^佪糐7磕*緩鼝揖尊鰇*~勛U紒7i$Y~錫垩㏎阴>XrY燄V絿聶犵饀-駛圩聆O
U+H8р-dTTTq^论*轆M翺U$黒/PS馣\P+XW袁塗謘Lkbwy|躳T*夼{轜唯%黇棚橒=?鄰*⻊虃Qnk:986i=-铝t鬵8KE/粛X阎(<巪嘰?嵚娔|/$唵x2慽iNn荦殽M蠬騨񾁌禒閲雪門襠媌跒*N3賳)俺MA=Tv亳6V麮筐]杨c昬t柟W懤谀脯Xq慿x蜂v籂9@殭#-甶6埯榤7gl源t{趏<]!防2ax#禲<jR飖'Zr^珙htiO
R随冒叉	儷癣y矷w攌t>楘m谠M研墚欘6s⑧9骁㈢[坔a閪:娣<V0庫у皊gdYKv圐祢兯qlT,饺mm羥┈[:葃簻G▆#|%豿甿檫晗]揍M嘔T7菁M宵紘8綆軥 昏濮瓋郞埦粦&鷉聉 %YEG茬-7夑-#$溒+)炫>邐R)d[瘨哃/o'螦淐琨怫B筯笂H)W儨媱狟龠[芒\T
話9砸:]諿At碼"疀╝y.鹫絋゜f0秗 訵锚\2F>VA,Z毈`u`魇啑睛瘡7x盤囹梊V馡虼&峎q誁谿2゛].鮐眫@奅bRb!^b1軜K抑漳鞃霊纙路轘&&{9魠媱l7锗
n鉩装厒踆螥邰'煱
嗪%╇0Hn;c◇m桛a\E癏e濨7,l峬(Q肁8厠<挞q'q炃漻w裇駈\=钆遬䜩O<1裸"姧D'EO絰V翥9懬	(N釘x漗ο觷忿鐐Κ穅啡`?P薽;(朼妜莋I畵b+矂吶镰",BQLR浞褟乗蒅囘栎跄T皟蔽YL謥3攽臭鋏?25蝎G&0>O襩3鍙fKo礉ˊ9屰}錪6;~C串霥餣U_渍讔硫PK#B    PK   泙)               de/mud/jta/plugin/SSH.class}V踫em6投閂(赬IK
H綌⒍ER-^$踗K簤P餄馎 g欺L3e鸂#<x泀汽88蕛8>瑁%@j2亠r蝫物滙;哝驴g、5X噥 毐W镁 ;4$`廱X胏A脏q!﹤1妰釯<%DO嬊 $k褌Ti苽h赂Xd4X&4Vpr臖蔜皀 m&嬮貏k膙YY,煜-籊仏1靦,(XuE藂2眲搲R/:瀕8b牟=K布8
f8瓳+腺巏仡皯-毆垈zF淹P>JH赦貥0;丕@顽x>巴-w粋h隘梏荑粆榁鹲i贫b啦蛚派2扽S`庭岇癚澳捍閣3})鲪b壞n&嫈7UF@糣毦吁覘(e6^6c4x*|隘澷Q掽裨堚6妝譒<2螽e	摴㈨R&6w2 $w4di鮤羠蛼u:S,⿺8m浐6+h	/韍;K;%$7c篤既	-WSyN剈t爴)琱硩vXj=n踗?Kb槑80,{j承5鋞漶滩j[刏AG7k燷E烡Gt1韴鑸脭巊駵巤p瘑鐄紑瀆耏繋楌矀茒赃罁k翖SA羓槁逝鈨Kt-W熓$5頧鯤i╠,/樸柍刼@蘭褧:饖Tl^慰%r(Sb緭5Mr#4V_;牾鎶<	譎*责uS1I厒1暿濮D耬A&'虜椂踙嘶鵧9臅T順vz囜,}窻Rq+o鄁R震F驇捤q=錬 莊軉6贽喂w鹎>抯rR帳%*臧锅苋斋\嫬;順/⑽A,@塂玑烠Ut亼eT悠jF"收Ii7&鄐j1埖H禸]敩骷`6索M7多.b抄娘慵w桺m缵1壩■獥犥=A坛襧摟礵5 s碾Ite触蘏[间.螤鷌4冴О27/_釶陌惹猼t=),-g槃臹栓:嵳b:$u蕙顖\蝍MG9試f)珝濧健銟潾U;矫擴u濨銣4I乙q鞇ｐ_+g襲穇陶ㄚ#紧(w逨漷(
G颱阬h栣珅侩XQJi蔼8禽E詓扚1砽琦泺Y\嵪0呄ye}乮|壸^亲x哙,茎鰓曾灚#靠鈍鼏_dIvC蒦*蒃蹽秄z皪埗S瘲T粞G+1&汽┃襼XJ齲@抂羶∵+'捺灎R煥轠馃T{g!趓蔓#砃Tⅰ晆C擯t駶?壌/爄勌^s
k猆b䞍Mv	u鴵b覾b欲?e頪姭W悿!c笂;$"-ｌ%	撤屒*讟0錻跪a弢>岧灿T	陪击 PKb垎  
  PK   渶)            !   de/mud/jta/plugin/Timeout$1.class峊mSI~&侅."妸J瞍0	憖镲"Q顐酔A=O飔I8T2w'ǹ认VI创蕪~p撇g7	u㎎Ow3軴w响?>}AпZ8尒釋gM3q蘼\磒	梴pW\3p輦)7魖S媔稬蘦5o6顦樥L讉9wnuT溾夯徭枙/d*C向p%J凾/D0:0\,骪璔苇+7W6*B鎂D峽EG讋胐j茴d閲]y鷬B騾Fm曽+頹昸r^森>t}№柍Kb 僝悞<;'"瀄晢*酙哻?慮
螪悙XG:馐ｄ寴躋逎%^譏a-{磕g叇o(Mh瑣疼86巄樍h頀p蔨,豖膾亄6頲倮妽 vm1鷒媑kk堙—(t2e1C,漝8)偆鬞視I!痯?涇B桬狖^恶'xj/麺鬔^Jr?y縭}I蒷<祖摖AlS\\]%獀l玖ナ4椇妜Jf8鯱竄蚪:髡喒灶<関踂埡腵謁?郿音垆J桀t礛mi寪	穅鐠e禲╙甴癉l8U豤譚^鋋L/lW7汗飡~嚜h鸞腆5豽<.掫:L忯bp翦&粝痒龂~!m烄8瓆`欛M2費倪吚_I&L$蒬(N叀鶽伒艸O!
/貉E胨q+qЩ壞|+V蓨e?仑匇邳腭靤&z谍f麧>2$氳o卵;[(&w啴C飯@?U;倿V'`惣區绦蝝跈
舨睥巺案LD鯣q/3N憐QB6,n勳訕&膼41Z-B単PKnrB  X  PK   渶)            !   de/mud/jta/plugin/Timeout$2.class}SmoA~('撰-[Q裄毒郁僊M0鴴秈闱遑擟孛=b颗螹j姎%
丬ASMvvvvf瀏ggQ琤C噥l痈ャ6$惷軥户摱!疌Cv+(h(j(iX誔f埆栱*檢S榏縤7{袞鏋幆壿#㈱B卨匾VK	1+-)f攵nC竰佳!KX汲蟏;貜尡
寶斅蓐pdY&稦洧/IHF壊6飐趁濉Y揓府逽⒐=e;払鬩莣-衤峇瞨f 墝佀樥`ㄠ締5離`!x't1F/2w虢P;鈨/<メ﹣g 牓蒚钇0w枹跐泇|)嚨筵k箓7f,遳壻>漘鞥.膅性櫰jS^G絊㧐Pi漑栶╳*=[amx鲕;?;5[胾x逾楏"X~(V,僙h唂*xEZ$鍵郅}`呪D嶤𿣐 .異:簪u!挞弐2\Gf擪糐D捬_DNk}`*圅椌"亮g年!2
攓垰B,5煬}q4茽4bP牳X$罵萨&畢< PK於*朜    PK   渶)               de/mud/jta/plugin/Timeout.class}VmWe緁w賲eT@X臙Xv懪棳 -|傽源a鱭\fpfV1袁|申9竹T_<G!銣>9龗~Eu=3貌蚱93鬈蟯葑2眠'傌俹*惱(6釘芙+椨r9#楓*$侺8臵"-.寱鉢y孏閕D`朿"傮XQ月栟嶾
t僚(1)/I篼掄r%灻鄡>屶瓼鸨偛)(=
Vu泦韍3ㄥ"@Qq魆a]9>Y5絚-澴孿哼眛#穥辦HZ堦F--8遒x猙"_乳FW罺胪婔x!s呆9;澛禮2BA}┣=梭揘澓;{柶Yt霠侾窓%驓^
#蠪駼唊f袋爁轵7啘Q潙芀<O-#	嶩5潥僔拎"9J擠觕P嘦榩DvdFL8)誽.簷9\j/薡歀F$c喨癅睎炮z\q＆顽	逾%ZDax熏n偽s`荎j繜飭杄.崦瀟x.k9僬蕕RFd7|Vv岩?洹坜苎选`{
檒]<Z蓀F叄g堥 I幺eNTぱ;v╤E硦$R*阡|⑩S\cEc骎咉 祰共后歮[^Wq)h\箰
毘殻%黒訏痃-a嚺Jd蛬唺涾\&[Yis珅稅O圛葆qw眄_鈻妦(X籇桺O,涑	胻U'ql搑o隋帄回X茠鈧0渢繖9'渃鈢A貛臾隬抚鈑观
耡庱瞈
誠梁e歅A21絷#X/庱荚c灭聘v┢Y"' 岾糝鏋簱斜R/)丑Bp闎-輀v嶪%fY>痁hUPN%G蝃銑鉊攗ヨs胵4鶔盠-浹鋥	賫淽-3%@嘒曝隍mM ?J	䝼<復坄^@3玷E~]hAH#!9戭低縭.].麊k9蟫姽灸籵Q鶟跈L低 >F0<FH.er	O	 5嬺$*苒d1攪.﨨ㄠa睻挴妉u溘=岨5Z帎(^耤+x諐k#w{鸑瀞#T;;揅樟拸浸;鲄:泖q<Yc劄bW瞗导憌覺3崻)D麙55(5蚥眇,j嚀3Am毽PK醭灹'0DCn?dLe猿炡1瞹u孑)z渇}涡KCM8薢楝O鍄世洏@/斡22 幓魂鎒ㄓ螷 棸棛S滟譱貵鼄鑢貰鑖}e纞^e52Wq櫉%j孮矓B曮%3p崘座栮fIy馀蚰)2鍠'勿泍-方鴬岑囬鹑O5&櫈^z欶<o虝y嫾贰Q2调\顦囙s玪獌<螟65颺1,泀<C缘~G烇KP肊Ea舯 史h1uWw棉榸偲 4<餞<E运^C茂E捳}v貓KR譚$jb%M%<(u秫B陖&巫3玄D?1~)裌_き鱥缟蔍1钃遴t?傭[8.犼9`<顐劐r=罷涉	喳.PKt颚    PK   爛)            0   de/mud/jta/plugin/MudConnector$ProgressBar.class峍踫em沝觮閸^剛	ii紃┮ h牬Xhe泑M秎6awTT劆 =尟0訂橊Qf|?餛腺6!堾g鷀矽濢9哝稔奆l!l蒲&l聵岏褞皴M^&B缬	FM6w姉辐6sO嗮辝醛TL)纱C焒鴶鍿FB1他i^ 布屓16纤LX|"6
2鎑蘇h酞じ9Y0Ma|禭牠cdV漇：jぃ愣閉某磗BBS珥>-+K腢φ鋓庅9揚meT<!vF6=+$%①B*:k糬HkF4QH舝!$N卅癯啙稏$馆殹貱6%竨傑屽R銨雸f埫呾0彥雍酄rIU烶M嶏亚NIh5siSX职jR,qRh苩詹1avS0莍	;俩鯀沆P爯O6訇棑r繲-i9.Ki	$u	"e猏0禂!矚-X6珟讝藺惟z併4,m26顢幓辝剸螑姸窗GM1#R.;嫉~盵洜猟Y踏丿qN+3
lGLAT龓Z嵦>
灹{1ばD*X@B>忮,)FL苳
耷
""慵駪0c>熰K(*柑Q34\槨p%@羐嘎薝*苀熴殏滕B|┼+|-7癍岋|-"忂旳莚質蝡哅N/9i
jgRh赂4刁觀 4'炟巔礚<^Lq镚-a	)*鍍2yU6蠻氀t}蔷1奤B幥Ц漋戶0i3W0Rx,;.t卧鲠j霾桚魩,k	懤#c	gj>/:5$啡d77h鏫
缈!s畻1=ul%;緎}+cg79|L掅o	Wa猟< 塿郑S,曲q鱁瑾z鉄|x夫雗<３@㱮aosvSgさ儳瀞hM艨;棹<&郍韐#w E鷹箛粕v謞%鴒/汹BC$i85纯H穘W/aВ}璯K.祧l$戅%竖z+zNl琯唈趑 WｇU兼栀虎囚b,"x#慔	M筟s	倲怳龑hl$z笋步n2<謈燬ΤWz鳬t鞬cg騩筑橾D雧鴑蟮D焑谯嫶妴鏧q鲫瀪菑
7K梃:壒#<r揮vw=鬖蘖kJTiR邧拾仧銇_囿%魐#v廒耠m)O珶鳲r:ZW槣掸J鑓b	鼁郐"8瀪燫坶騢dR,蕥崈(`s魶j瀝簚[8?q7兂阽嫠薺埠wC%紟齘}o汃C戅%磗?9;_(/嬝HY^tP|褘7勌/{街櫟XE煬.\%紓"u驽
飭Vj>N矧欻.N1恨峈0九崔u誗r:
Y籞〗eE{变y睆 醝:)规(T\箩綹GG渦旘翞K6賦PK}8Bq  r  PK   爛)            &   de/mud/jta/plugin/MudConnector$1.class峌[SE䴕]榓n搻峲k\詘a憳 Q+^⒚n.=隠/o忶y襃旿Ye┍耣i>疣孂E枾g ,粪V黹铒\sN鼽"|i鄆るac@塛u旮h5\襭賭啞z紟aW4糰i絡|S%xe6猚汤8:拗1I%\30峸t\70僿鵀庽u|犪唵5|腜蜂n灹,8KN圔jR('W厹缫蛻w兡y;撶┡r> 漈."5ZyB饻魘颢p+.$2蘅m4C|人s嗘+鳻yq桘S蝜+歗)N;精諿`\Qc 9Bq湊矴鞛#-梽坦叢颒盐啂慖犬.Nj+鸈F糈8紥%	Y佷%c+9~臮gi撰M$A5褞糙凙+簛6懷0k"'窵箚9A攺绤崮*\.贤q吣<\%L|將咵軇猸琪>1醿灲牌J<缥箿尯A@ACr
 M敱DY灅熜發b玊L煔煕笌/_P~泜賜`O趲-挛爭<涞s礼蜺y%.djWd+*|,⿰~驉R34柑鷁夳掵_M頾僼tθ測魤2=牣*qA盆>(>(z弝敽G欕覌j嗕丟j輻G:塶B8f淵NW%騰杄*D确i7B-Hww姱P5酡酬暐猈蹘銗沌3糓赩U5雸=馛$絵9v;獛滣:扷q=!z{縕w!yA岩KpZRz-F鑳`隅仦.岳R鳚嫦@,<\招?Zw襩斨1;7:恢Q淤綆亟邪媎_櫼ц|獃+皻kh迖纰鞋8jI鳡藠w轌酞瓲n磠YZ拯m:曜嫚啓榁cM=4W蠷A車淡<V<締.シ趘凣髶佯榰獋欠Y<A,马z~瞄u<箚峻x&蜼S8硪d=Eb嘒婣麒湱攱v竻;窴c敨~4扅嵏Mw肉揀綞哐埘=n蝥懶煱啛眽_~;H佴|=田<(泹曼躲e紙棬0@皖7拟%琜?R4鋓噏PK;6覧  C  PK   爛)            &   de/mud/jta/plugin/MudConnector$2.class厬輓覢呄8i澑喴
磇PG-闙\鮺c瘨詈沧晉,$爤嘊坍 饿ov7G3?~~麕^鄆<n 昏蟊镢癹f8曆Y旻s#Ⅲ瑲*疆襛LL^阢谔	隵)1釥稬斝姗$J7召D锬$闳f'";叢鏓癷M@GL)啓(K蓱%购噇覱#a吓厛2¨沿JO廎挝,/峂5邼哐お紓5zV岓狧鋲>7~iY!l囸羊k\賓	穨鹸;櫥t蛔T駼j嶓浣4*嶄ve"Id奢嗅姣pAWylZ级a k敦;喦?G鷹狛笙>蛏灜改M灧闣Xg墚fn阄倁芦シ鸁鄛E鉕G暝o瓾-躤:馆=躦藽椼咛赸感譒蔹)髫e/PK+  !  PK   爛)            &   de/mud/jta/plugin/MudConnector$3.class匯蒒0}顠4le咚r(-$嶦\*亹Bq7壵
I:@? (8TPK秅y箧y掲忕7け島Y嚏懥倝E,灏溍
儭毑潮薖r<a_菫軷躰鹮C鯥煺 
CéP谣簘Hu繮+*tZ鼏埸V飭:o埁秠蓯﹪瀈ud N汶+]+"E't#^0Ｅ2:&雳铙NGPdm啀=挓海g牺=蛅t駐S簼D-k0L鼟c0厦8r拧2掇裵y,儒癹aS4餉F蝬 |唴,鰏蘑84b榷蒔(褩螧彯╡=絉大0/恥L~氼Be	琑}@>Yt1Lg'4┒姌
咺L鮤茸崒J閛F3壘惏讋u誫5(2C)&5sKOH蝤PK	w儬    PK   )            !   de/mud/jta/plugin/ButtonBar.class璚	xT{3筠L$&!別Hf矏 uA(!HX怂蘇2d&渭	罵Ek斩Z-nuG堡璌臞㎏k臯回猐祴祴m趈{顩%揹掤蹼|呋锞s淆镔9g烗嘌!<X徾<!;虐蟽V堀鄋\/((鴾n| _=鞴y竉斷Kn<垉*/嬪=8!GTP皎颖_G艦瘓賑b龈'T<┾*&O醝荰<ｂ*京郰烯鴸咂w<嗷傳y73~O流=ㄇBU间餋?R馽q蘋T黅潘~啛+鴧损K鴷科k*~#H鸘黇烹*~р贬髀@P餑 餲10/
-S6临F擯磏囖;偛敔t$-+f&拊b見D胫陦nK飯提陮03劉_濥紨%!働.l怎&胾;,絥u$j裠W麠E虉誋鐁ブ洅墺﹕：賃譮#f滓纅俢e,倘呺"Ρ>氽a7	烹b!=篩廏膚氳昂#,袁隁l涺8"w$櫕$)鴆撼崿1-8?l5馠窱颶9紴V(絯S0#癀	繁MCB厜y	肑	搹w
脸j d鬥郫厇H6裎X甲`玟坥仿fY%娑馿＿"虦垗櫖^朇2ぺ4鞥&D琂3{>a檢/{x0&c啦CJ╫dＰ秪V87瑥/凡尙sk.ca梐9扝%化岝雠虜摬-啓$L蒭$擎Nt[:謌v;nl[Sm@&&鞂G,#嚼|=b}孀/&条O竅|伽亃1,"港v橵穉EB0L竽0y/x`渒^,?X'>蹇.胥戶}饯伵c1<)Р3摮/8盒l职E纰]脃s嶭鷰6l怆;乑筚w h挺i腤F鮀翲埥W甬=责/集tr╰皛=酧剘灡B曛H&嘑N迹怟#匱呠y█簏茥`4)儋i5啙ぱd*渊垿hTLS9hU~戍耩盟尤藂縥闫謲A哧鬗鷝##*龝昉)k?.O牝O$预棝途ゅ秤B蠾辜瞯龅桉#3c柉34鶐潗忀屬g}F(楼Kd舯賔溚q銈皩/b+貣緋蘃冂憚バt嵤劖fP〧迓]!拽蝈&#j^oLa趁i砲6
d9^"aj炘荵*槊瓲O8l.G#q釤
呮i4焁噘c膆媴z+琰4m發n潚A_"*邥p$=6,=訫槕氊鎵赧E峖>戫匪`畩磵3臿4WP*4騍@莽pU#澈h4摴5l6W郕BS	ャろ+┆慪檿00s斌媆绝x操gZ&/j荑餴釂彋潷}尸趢ャ銭.&墙齧K蘣蓱パ1E箸驳c;y(:dT祈b馕H剽@Pv懏nK旫3鐺&簺鬚C籹H蛦暕┯27鼽L0尙$珹棃$庖.j鼀1啍蕥枷滺v$2儆哕<枙橳+柹#u萺窧輟|祓7V矟"fh閉/淔<嫃駻N爺孒_啞$夿f鎶f楌嚸o顜xL圁-A-|秕.#块r肴.幋迶汫2忰G2痡攁j3'.琷O虰翏<垤鉺2濡顇lg*0
麡胘銃猿)畫窻貰M,C磵&体Js纹F8U$昙拁s祰鴔漆q2譵.<炏_楏N欉鮑5囜:
W鸻(嚑V!Hb惈囙>
w{髕帬@翧<螁裸E?L伵鐠( |ux踶諚:::lI闑檃	奶@'#I酫若Y鼚5C袏捱嚺5cR皲!迣俲Qa应厙P<埳糰 癃~0+aTnV$窱啑樑璅\XD
N!巳#ecV蔉D懊柌=2Z/Li媲D,eClC 達0り!L傳I敶搊+.]OA囓鄶\凈芉Lg髺aF嵶鍀:翪(鐝!蘚_鉼a纸鲅t.~孥 3MH'$[茝罯?&?;鴫髎Iz耢4 櫣9Y驏\/K^濳灈%j婞,铞!T4(^烹ZU窦!^2'y濢A聓瑢Wa輦剞喱)
鮮7/9熛p度 灝)Z>雳J淃钴｜6闅霶猈ip鋍饖W檍;"t?儁Ui艎玐)4８:6G2j要3愩fT暪婯嘝;:mi唥h6竕娢蠛X绛(磯尫馂$疜L鯿稳H腶𝅵j(s#緮E;婜觫c,鏇}怶椮錑p f暚B度)輼涻z
*R僙[|偠h髃叀kS?偉 誀[0啥Z肱p2N酹覞(O	船絃癃噏ZJ曟休U艒秿媯<=]埬^>埑Y:.c鶝2蹡痍J{晑}嗨旮J梃N\漸饬敯*~纶慥9s!%襫$=$=%泖y<'蒞茸葅鶔坶,1晩劳2鍼1*h蓩=T倹衪<Mex櫅枳i&蓼Yx沠鉣n%顁Ung俯鮮肸NxSNj浏3諴=笛"谑+踚	厁禇(A'S?滼{(H椦2簼N閠z孷袐訢*I5挍箬Li-瓝Z‥贐毳*跣賀捼ぽt巘#+恚vi?m衴褻t総尪K螿圁叆W葠^%Oy.韾#/"S^J1箷.愛).wPR緲=碖緜.旝襫>贺Nq)鄤業<脬蚶eX緧S旽%驆H餖F檤棈NN3錵箈魋:#_崫<s醬隽 j棉鬺Э]糃7#pg`7>
E谙眵E吉Hp%.*{譱倏撘辰鰩=\緢K榨閭X莖戲E"Q噆圞镽[9-艕V庰1\栟\撧,谚潡珈敳;?熙7党旬佁]U}gWW彔襏p艺6BI+[vU_塼<=峌*淯}$銮Hq+葌$9+搯]9
%H蓎=<t胵B烴C/0麶U鵙5FI藳!\搯Tp-76勏豞*G莡c嗒N~鸶6缋]?滛苛輤觩6X&翿`垱煳H@琂wH娸祶4H獫)Q獫Qp蟥v&s-y莻攑=迒A;*竚烽PK:;b    PK   爛)            &   de/mud/jta/plugin/MudConnector$4.class匱薘A=揇+<濉!!">A#H$<4WC+L&证簐锽+0V拱XZ>K7,o螪d>N>鱲骷-紙酁 B~4"琡?F)a)8媞a漇pd
纰孠鈡Y苿:LVS2甁ㄢi3?*'n0-[0磚甼3厰ii#毘,栦9{B?褙鈏仆$蜎4-揙I5qhU/3槃i迸Bv嵸+鶽"亁.ゞVu~)$@#;氀髖F戅#株'&g9嫤u+	萘尽k&棕掣#虒y^读%t"M俇鑥0"6寮$IB育曹亿:)捜$5Ea嶅bGZEhF媽i晀Cfe躎1嚇奫槜W眬EKX杚[$T琡炾齏憡"薷廦湧槶b1陉笍迎DBg呮耐<g碅詡犺c鸻擯梑糽Sゅ敌憽琗&2#{$糟趠B埖<3b味5*m淟鋴z栐4飸G|謉 亙Q殨g\ZYE鋻hB竴73跍濷sq聣俯B榸B%ぁJgK,3m秌-鏻歕蛃粜"@w▔迉8a鬽厁<舳dM/"J5</L峌蓿撈V.渢X'(渞靺弐["/灃VL]%;趩g"-竑誴瞜V撻邅茶5镓暂tm腉~]z幜尹@.ⅵ坍u旖奆PC尹a|?錱簃_枋|E唣 弑x偀x哶N!乏菔沸>'8M3tI0H調t	t6PK夞u"    PK   爛)            $   de/mud/jta/plugin/MudConnector.class昘{`\e漼滢苘4榇I;-4M箬泇RJ4)I捫2蔒&檝23澒 "VAZT"蹤B%X煫氘鹴篟賋A鰷{g&搗腋麧鼯蝛蜈{>7閅w鄺钅o颤Z岭8-縌餥*o郙坑P伔0臕鷒書綔礼袍
玉甛齉脽鹂
轘鹁哬8OP塗r╀V龋!暭*暕え*TBPG篅+M穴姫錽,>叇4]C-宩鳧惮=*4C*%3YU+4Kベ:哥)4G门t,s
h貈
]犘<嶆P&篜朎猄h盉夺碕KxYeib?Rs9-*-棝*h璮"呏h)躹襔Y偛慈伯湕嬪碸T跔蠪懅墂极R獼jc%i嬝t塥Q;m觩3]&:T t矐豫衯{./T玆稝.W〨曻T簜邎vh磽(DW)燃Z竉#镊;鸂\7夌?T&^珢♂滄槧~>燫榦萒hP!厗(磱P褲%蚑j搼$桧睒檒⿺"x胒z埨6牪5KYF腾aD应麲P攗EOaJ.c3璮⺪!xR枡`寫t竷5F趭D浄゛髓彋孹暶5ｆg-Lc熣,嘖1b龙听謻6喢I缭O睝e 沃餴薛磂與L＄膙13JC眔C鈏薒th珣w AI浼Gh浲坛y梕4'㈤3nut'9)53檶';岨3勠7/雔4c閝螑瓔"謟聮篵欇短M門婥5bC徒V2jY純56卂$fvd熂 磷0;宒D緎k8耉&眾誵鳔倍*W$,"蜶墸+岣咎)覬s谈隓_w2c彴袾 ?腖嘠$98h&蚿廼凪衙e脛@訩菢鋴奷;vo'G玬櫚"v0,6羅嗤*毱H_|媆0徺宴帇&瀯`訆8非,s菷鮖Bgk!雁巹黧w*蒿<'b#螯硕%摀Y7泀睔U苺満弯 沗瞔缰11鳉1珁&g萱^V跫s1;汉H铞⺌b篴鏤諓i9锖#扟黒祏媼">拡nT寝┡埞 謱NK.%摊,棠讆F-=硢M+2<z汩鋩%";縄拈7u<墽t軓祥x焔迤3曲$	紝 僻
Eu∝$藚/&荹廖/Qat|GDd\菞(荲[O霄汶楍幐娲
455	AB莄B{t螝T1A諏U膞(/餓鈎駐q|K鲧覆)趼>悎欶3"孼謏:A^鐥?_抛8S粄禵谟舟斯褃沛庼>幎6C2l&#􉮔殀g7 侅振0壒诏篘莂玖#8尼{F`9輙|_议z篴騱Z┯囬F>B7G鎧1獛邱W霰勱姊bQ漬7驠巓垳V+拽<=朒[N峳`
}L魆a~,逢	篗翼\#&y慐召完莑侤|PB 鑤)帅t篕$|
莪觛听	>I沤!;8`3バgu簭#曨Ы_>JPZe,_繧Yf0悗9扡e漋0!0I┷儊N鍨zV徭 傀爲嶼6R`9'e箎鈈囹寋O阾K员徯釶((}E>⒂W閗傪X^lq羚乫枷筰勝__墼集虮2#p跾(Υ9'yB')厧阾L為izXp捫qqv鯔	F	d%佊,z籑軗6筪R啿:]薟H=3灗D姘韌麫EwNW蒀|c
訾c1'3鏀靉R仆樇嗒I跦樯hz┭叧"i	铯s7&琰sWj3l3q
冈禢#f濞k闖+j1藞睾腹;謺 )諞'h爻胛樊捷 腱凉v\.@竌瘳庝j灖*a=晬9驫鏜0釋sxJ:崙"+;qj8緩皒=9荖)3婟L荌H*媈3圙攛聦9Mw敤犰u%聏(7晔*饯卯r芋\荗譲翲μv駏蓘jo謳莽耏WNSh9=7']碘{僧W汶蟻擼u吷棈韋1玩貨X麓D\錴R屏謎^坕)_U麊yO%硊樈-漡蘃葈楋銒苜撢+So97聩
谎妥攑使軹槹藢甬碙=祏頁!厰郹!lU躧9)*辥=嚪<.滀谡錑醱殊w"钬騅谴$蒹S=嶝?5DV尴屵傌Y`狲az鐐1bH珣芸&扃広b*F屳&7枅]d敗糧妪Il霫畅D1镤9曀5cC2讝異 w郚格)軈Oc
f耮竝<騥勏<厉搀{鐭!鑫儸雾忎vT頋;:皐ы滸~{缪搘卐驈^彶Tx:T郡!W=潃[O(肌,蔔@Y2
5T相騡牴罒→,t麐*C跫Na飒玁:嫨'喃?無逴鵭波e葘f?4奩<;嬻}sl旙E缻竟L0<钩Y蚾,I=梺JiAＣcwaㄌ撆"u f]獮炁b鎉熈!玾g0瀜秀髫妼a7鎰4
6C:2跀6	囱"9鋄毰2芚灀稖女_)(V壍3笀?c3X迷kC綻-'邦$厕埞嫁2t跶峮替扩)m炨0/酼|婥鑕圵鷐=咃酻吡埒.耷kT咃袯|j2鼒z餭2罯)崯袮糔w70~嫥Y鶭'd醱H&D(9eq5軬媂桮醘䎱醂>y鴸x;aN魄,6左*jxs熉擰\,綳熈%cO侟[捱砍5隃勭驕=譸@Oa溢G眮_scG}罾1=奙!憱伶,诓匾賽隶]钫炂撠黑ss俕4楖:2梏{3囵贋A饔<閍H縮廜6
;O顅宐g報迨燱圕~<儷昀T紵琳呌5钫歿u痕=藙鄡≌瀹C揣Z;孈^K騷H杒22"#T=#孇:;城s(曂 媝P=侲A絗)鴥rN'髼=嚒愛<~7V5+坲柰`Xb]鷪x鍫F5殀頀`鲯侳F|奔V6鮓))0"'k{隓的	
x菫悷5Wr辚縍鑾@逗糉<{蛡)zu媦婟ゅ轺烚6u\窡瘲鹝Frr]!擐I剧?鹎1廀eA磽棖*磗L荺{8瘽栻鷞庼1纀MS絿 'G箰"7n /n2躈
!Q9嶱%炧<J杖/4玉k4镄L栮'漟歁玥卙軩箝6竟蛳糆昭+礃~E豸&-qM棢歕s;蓃2Z鎆OU甿匆祰V籲\_5t=G-v&?帺挱筁V]儀瀔线6甦/驳M\薔奊\齿鱮-	r羁蘒Ml{+)>e9鬪e2夺&畃'拐矫蹼粁嵔=诺颺斻1z哏撈>x	?郤鹷佂O'?銯┗黒G~絶	?a?臺:晢v睱畠8z齂伢 v|4豠黙矧adp銁I9|$愤$m噏>Z鬑w駕躄sj騵<噺9軇
n7N貯篑Q苈眜3鴦;OAcB欙揮yp冊,nwp艼q>瓏F棤6`>m趧
Zh3禦vQ;獯嵥鷈笧:pu鈤曷兇潈鑢!凡毁困熱UU笒(Ma>6垲v3頫5~荈鼚2皷熽ぽ梜投蒲傗ev烽+轇/鴞麮	鈛g_Y俋?58:6灅WL麿6?踗火/鳅秕疣w吠荠頃箎暢PK閄L5    PK   )            #   de/mud/jta/plugin/ButtonBar$1.class漌xl3;檮<﹩@ジ眎	團蔓垡深$靥嗇Y谥⒍Vh裫<,>獚V,ba峈 呦知璟+Jm睍j蠙深&銺挎鹯甾s象?鐬{鬣靺"a!.遽2+hV=|_
~燘茣<lP?T#沺媇歉F频2~ⅱ
餝?SQ岝
~芜<l懕U踕\'*Fc粖Q禺鄗70藣季墖_矢Y琯兎痧+*J盺骗*守邖窶暖q粡;x竷囘鸢覩J頣癒臸-k-c強i爨F$Yw'/粁y7+緡uu+竁羮
霾傔)X∴~皢e<6鲴嗳鞼鸢践{<蕣擇笇'd<)郵&榓伮簳2蜁嬳榠5W	6C膇窐	圃厤手D竢キW禘挺UY摪悫UＧH葅巌檝道砸!9湼L kf4l3-c^⒌褕-#;閼ez啼u1嫕VkYFlfD徢属)鋐~馨gF&9觤3j	岊沭G蔱q\髣殮鼉驉;M&{昅m剃刪F9@Co]]eX鍱$边%i哯-a籠)岕瀮瞎!}d羷烈1丵I/2舭c@DF鶽或紭涬魎褎哇!武壽I軒棣e菈'踗噳窎鎍#"＂Q #鏱省)0鷓銹吹U法瓓3麷寁{秈D耈};Buq4,笠Y;澒54)貘獑%XJ%氜楍磫g,鶙A&:艕1g%蟟x/萨儐?釫乗+p束搯棙閑"阆䝼WH	暈C籸棰:u佱'wMⅸ C袲$阿6猜羳喛o-*楢.1HA規kg滢&C号&#Q=狉q威M;8]N艝巴H妁z寂︶=佯wI鑇JT咰憜黢詐h脟8︶?<|腨6:Y旕眴熲85蔐殣凣Y"[^!kB>M"囀=h5鉸B;嚓にpx2谯寪mD=g誨5♂-鵰亍"7精4憢Ж豸/_耈鋓bT矼p廈I湚м0b県,毴莙_ 颷v諔]跙取0踦獢(
俜1C9L!蝟\IZ葽/c峚贂}鷃媖蔛蕀o 龓蜹砤/圗蹖樈N鄠隐P&t髷爩澭絃弍$桽=2鈚uM*0n;i9+0諆	匓v.蔨iobU猣3$#慐F荛i3忸8P僜*AlG奇折垙娊|p蔟:)v豫P)槏懃氫e秡窭<柔sJ8硡朥Z:|Q踦IN謣瀢E逨2~5*+蝞-儺忘蘿祤)U絒 縈綅蠂弾b杅刓赲菀泏疣)5S嘰k唌0騔胠n臂┃蚃馝JO>6:'篢>j魑Q;<z笣94n傾鋓泺`s鲪<獒饘P咧2\n晁釥栻>鰕>萐f衱啬蕇)妰a疛hm媄潲衅潷#A P6狆膩圱朣J["轗V6辣嵱粕俗鍔晷搗3艋j綘CB!?猦黈蕊J,4汯k}嚂uB擬┈|<漂谚%F郣|澠藠o@wT隥36(鸭!Wu稣鬹.鹭
呈v肧槤剋.亭n)腘鴴P粣S_~ 固Q%懟K连$蚴剃@v0蹮u 摶Q蠵迚$姌f籮:QR8<$1"墤V'N
fwcTC7F7;1'想@Y_俦=矃窀-$1"|ЦH]8稻向代n斠tb雄2歀
侍鍉o~9kN飷&(坊 ?	}嫕鞪繙摑qJ舗L-<#3粪獖$蝚槮H祝澤A_哖蹗i~_'T賌UfJ忪z緾J"梓篠縗褏$蜪功&癀溰繌q∟!:3_屮鯧琀!&躐+1Qfl殾s鑏悱iJ:8-璱+F9髾蝲3熷D畳怨9?ysRjr1涣烻饧`?钳跪)魊橜劐贺濓襨>瓹骱;隣2P<%p1懅uI蘵yS剞鹕S\榫尢蠊H}"眈 粣卝湉9颧Π侼e>.6lG(蛟z0=哜$苔夯垢損%*颖gc猵i箚碶K峛3i贐毝;笌摧H7懫洷穈?n牛Oc^鬰c'庒NzW铫作]]b8甯WL舽b:鰥j/.b)!褎}b5鰦K癜貓:<"v酄8埱x\紟'膡xR髊<#y瘳攪绀b</吐嬕$-乃R=^懏纊褾.]7ねxSoI;qH趮伐xGz嚗CxWG<%x3xE髽乔N;坆頰G0阷篂&49=3蚳∞X9&V鰏埦
d^c嘘6 4蹘觶v廔B!8d盤	(処k葐廝檸礹*帄.崲?倁魔J*粓h9勂[笜f;呗飞:騚逄G>]怍躏鉀鬠)妳N耮PKd搡	    PK   q)               de/mud/jta/PluginListener.class;鮫>f]vvVv6FT诽淭F醼溡籼<熖鈷约"浆牟DF蓴T扗}T %9墆辁蘒Y┥%@# h惽 PK馍+e   x   PK   q)               de/mud/jta/PluginConfig.class峈飇覲=/I,碥gg滴蚷走QW`荘倰蒨2衞羸Z咛拻&戇D縯犩讈攛撈nM蓒鐫w=甾糇镲?!稁Y琷笗艢N蘭w⒔琣=+:颞j‥q,Y4訫釆`嫛X睅鞆1w}o例@餫Ш蠣l{]0g	椏>p1,镄v鰉_D鐒T傳bH.7徝畒劓鰠豁=扬0d$@1卼M哱	駢酻馔陛竟韜)陎{壧кJ⑺ 啶|:勉╀S鹏=/f狳ZQt0 毮可厦^忹Q@媮U0q桜5弡笩栭詩靡F桶6`臧}W窴7R:钾县u迾→曉舅S靈會摮檰@脿u濶[愯ǖ	7Bh誧秾謅*專p媞W垼尚\&稻P鞻3喆愡濦12#z,-#h;典\a鎵RTN懌綨廒XC泋gx垪x籯弖',q峔E:!)F%B2逦!%鼍渪G72恁笃3/j\鹖2螞h&讠XQ"|3蝄PKギ%  C  PK   r)               de/mud/jta/PluginMessage.class;鮫>f]NvvvF链挞詟溡籼<咴忖聂TF}煍T扗}垽OfqIj^j懙VbYNb^壕RVjr5#Wp~iQr猍fP妐z 鍖&颅@7悕憗憗Y侇eX$ PKM莂鎶      PK   亐)               de/mud/jta/PluginBus.classmO;侾淓聊XKk)温
夶6倫紡嚦 !66硻欭腆u`-f|罯U+驦jC6I吴jsQ)N-舒繸藗0╀M奪68g&&6o吟+满夕Bpnx_諰啙誕劙4骡麉	佮/钎.t8皮c^蟘PK擥禊      PK   崁)               de/mud/jta/Common.classg旧煳d3劙靶尻 B6K$),$4 i0=欖举钗lwg!裕Z彚ō禤褁s豱袱吹x_踔z罯鮵g6汳槳齛唧y鞠/紇
W`P谰 6` 1\xP鳞x;蕖酀
R甬 迧嚺pP苳d7:R>1靠S柄爩G杚$[p▎?"啅娽c
趨繥<|熇2濸p48︵I1'淧饠侽壿I烿鸫恤攤鹣〦+>'喯/萨/袉/_洄湋qV;$愇壵W抨1<+(c擜桅)锰3労鲫鎮m疯![H5亜暽Z&7m"騟竃燳菰眣脻]谨鱨栎ty雍檍辝3E孲-3o毽荮溋恐0{C8R!'gey6x~Mc冊n%塿j梐騧吿 硝
=+¨!謦C2H涢]I逌)$涽趜s粫蒟&慎',s蠬1挑G宼抋F%襄癫W:<k粀>S橡|賠粡'l+G棾*;藼嗙$抁m$嘔H'ia!=巍#!Tt 觚0袓嚴*遶觼圸娵=ci|澿N!馋婙*达vC<校跜K"7寡藌)胄俅a34x鸬{22抁撶Y澻e録逳縸(K)八*|!_隖9&P*[諷苰pQ[qI芿_唴穴;牡3峑/O涇6dI觿"烯笂"D\Jmy珽磖Ｖkk簷t匪n'襳+{ gl-抙訸W痭[都ゥE胫m蔘=痷糯瓍O7裃.Q萲蒈如MNv'y寕6妼旕u呃7U|(莕蜰J晟N軽9a騯╀@5咂wT紑U|/R抷d4厀渻鈼釯,误鬬FO&痛搐ns/釆p褝1爥9ア汿t坅迠4"R=. J輪糦04}愧Z4SZ,S=|_T黀]?>蕝垔崆磆嫙)~0蠍7RCc+W捴@贼94iKO
毐;?/6i潧鈧*^/卻箲2D鷂嶙TN曬0=碇墛哙*~囘案倫铮
Ｚ-┼鰞濣羡](桸1饥釵3么奓鯎+I/*䦅b7幞W諭-襅nyHや瘞Ie'z偦?餺;履 构蹺朝岏伡3⒅v闺I7L泙笧Y3杚徟&vis\岺性裼龃'Kd蕬mN/^琾Hv鱳:Z偢fD*i%珗:"涅鮨枦猿汘+箷K2箇賒#+唈炈M2袱呅@醝瀜[zxB鬅</[図傇2$>:lηyЦㄉ%峠F:;=ЧOyO痂蒬O)筗{ {乖胭奣Z遽!焬sjt玕樞椠?栞蝺<瓛棒$O殷軻巜擟C鲛07r锄n;‖萉Q&t(bぽ<熥S苒)鈩!@.-囉'庑)傞,燨諐 $T塣N*盐漼3囻flC嚐衷╤>@嚕K儸埅蟥卼緺Y蘆i98徻"垣樢Mg桺?姪龙"5]@悂EL'L翋=畅圷袺竻让蟗鲽r硒r钜<覡鹃<鎤7]嘕|羀,qk跢豄.`Ｗla\bq_X
.*齧~v衝q坱^驘蚂騅{蔳E4膤#XH坈:GH瞻DC氨瑃Xq┞歌掳戮"枮拉c$M蜤Y粳K6椕騯飒PⅨ羑aoX.wX~璆駎X緤犗澑V產#)A:叕矊Ee媜V\\飴刉畄矜䁖x5"箓嶝k-䲡龡兄縯穽bU玾煡躙岉貕敱輸非皠茣鬢6劙
蟀(忠猽DwSP秅(鲊)R2齀术阖啌剎
=88G\W7蠯Ou摪浾輱{墙l/頲Ｐ貳$5$p2#U臥晧鞺麘畓$n#!捫8$亼~驣J/Y醺}:漫佪x璑瞁楝燓鞛f厢.襓9v櫖.硈髀Oljp顕L:<=小浫jHJ墉f4覮逧饓8紁熯9:.AIU咥O9摍mO鏀'筌商裆_b^O遭.z㤘鼛h}渮8Jx樮s2W犝a/9K犙梜	2样h轑h>v諴R甖漇捻m5E鏘{B敺EItC"拊&叅|殴.b=]6峩崚8蓕硃)5(泞攂+h'(0O9畃禒姇	媡:	P6<@!&琭'葭夰PK    PK   崁)               de/mud/jta/PluginLoader.class峎[=#$V埮pD淴撇-搽仄8B%i.
d/挷Z8M洍浽u6:6H[饽`荕怍屣腼枳熝鎏"剱戆丑3鬓s辖;?5枧?貋
dp:@f{yV u螤 ~湐3嫴9U徢=O萞邨葬I<ム Z`寍?肭ia 厢y?抺先媲踟喅~麯螋<雊r饞/K_Q餵 ?9)x輳7すo*鳨=~壏辑先a仸裞	-fh櫣丐e3s{啿櫦琲(鑯+郖瓿91R	x'N輄赺耙FlZOXY擕kSi靡M繎蝃zFv問蠂搝x炒饎Q楰g浰抮<騎茪篆tB犝,吢R(鞓JM櫞礯牔砶欶e摵@鉮:fusJ5tif6託櫀cw襨艇<8氃c4*F嶲-㎏OZ:7鷊+蔵<m話Ig嚴`鏔(7蝨mTF5迣禓<$]使n*旱虪酟aA75+潟+僔痁罄叉嬟讗*榪跴翗xl稐漙)舕驑遨+;灥巇欎餬B瞎
稊	柉禋鷾槠:獶蟏#%;n" 螝.″-乭曘启|^浻	蜌m＋墁,8$鴯w挒_焞jn飒伯*夅Y鞊洼岠d禶&#i涉湾詬蕀*轈J t+靿鈿葂:!犹
~モ8 .孺~R1埜續/*錾磐I=JP%[舘PT馵麼溜U锆Q娓妵pT'V眲葋J匱Jr`玸p劝]弴躠噴孁悋w凬j鵓&k匯谣*>聐桾,窏彭圿&\CWpY集鈉\%暍,-`*X~毸,5:R*H勖ㄜ]躔/鴇濈#|3\场kB曯`zU 愋2=r眻嘥|嶤瑄7LU7鼄=鍦步琗鲍w<<拰6携鏒?觑腚嬽跚C}凂亖={B啚/鍮d綊蕷NQ)髆j尢瀟妕`N菲Vs倡邝Z0,厦喚爂
!7恄w$錀`貘*盏リ侤}F_碕JX蜀苰-?5踽*~^消S屆t,樟t66Ao,k瞂h箿炨W㈢泞<C赶oeW?橻獪0滗葼C迀鷔6p勣戙k5鎢松юl[W/顺瞧v僕9鑭dCE牒7湮
189b遆雝現簀XrZ怿敥山愤▎3SiS瘶嬢綦砆%/g}*
A鬰=糘yp陴%|4
Y^睨^鹘蟸鹐伞芙"蒲伈懧+3!庼p忇6"VP麃}芶続m>fOu髻w;x鲃Wy艜"+P"鼞沋A曜簀鱱喘龖忇ojX痞"淴咏浄X/o则亿導皾欷Q鱎反秧%{#\g!谱饊c酙>疂鉘2戕"#A&p浕{V4辿rn嬂7GQZ賧蚖袯隱浂.泠n7,w垾尴表tRC2顋装菖l鰼{閟颮少齢d;窝CㄇQl$=J拽I乷0奊鴟咂w憚茮,瀎鎙8顣@8婹𳳡茷囅陎悺'# $R鉗Z?鍕"頴爺"赲omGClzg憔狅2D6X臌;fj.:泇^Fx鍯Q藱顴鞉蠡濝]鳇et臅犅瓭35婖r"qo谢-"W拾朲兙蜛e絙壠圌I鱹.28NG8R茹	X;A蒘x?.pFB棽鍕%鑺莵甴冭眥>鏼<鵜唅皐c娤~聴b秪滱S╣7鱉螡f602鏳 潓9h#T禄2頌c,/]杉:r;6%溿蔻寳锪" 徏焁2}L饱磺ez
bH>=.SF苬/$癄仚萋焾[q巙5"{幍鄒郜垼癲 I9KsZ執慑岙v$H炄+g唋;耽)B-峖E鳈嵐弿堑ブ炠]C>`K5`烒甐4伌砹PK@    PK   崁)               de/mud/jta/FilterPlugin.class;鮫>f]!v>v~F诽湌寓帱尧銽F煍T扗}圽@Nizf灥f#梜ErjAIf~^1; #KQjb
#獸磽'; 怸^擸
閫4	((坙燸VbY"#8@
魋笠觚摬R揔B99╅9嶦楗供y%p12e骐{E@檯
,@>+①"H"淍.nd 矙xPK%曰   H  PK   崁)               de/mud/jta/Version.class;鮫>f]NvvvF鲷椖扵FM煬牟D郎募t挗碳tkFT诽灠寓馓<=怋FT扗}# が凿6FF&`daZb1I&6 PKJ!褈      PK   崁)               de/mud/jta/VisualPlugin.classM嶢
0E在jE詬^A\)
傷%ME經唷哪8泚鬟|骢~<崖	a惓+鶻\璗勸t)錗
y7bUW鏩6KBY[妈_羧9伞稐斪卋'4曂吐珓I脾矙(1aRR鏱w*95繭抺;躰#r{幬PK綧蹱      PK   巰)               de/mud/jta/Main$1.classmR隢A-蓓簉Y释+
H)PA姩悹&U~攼h3碨X察鈜Zx{熇&RM| 蕏fw丅i3s矽纣=3$Ρft#
y:0甤J:f馗YU30弡:頺x燼A"Cα菅j厉Cwq7竿逰{]U
.}痄異N橝W衇&閞o.衫駐
q^v<G0,湮s稛l疞l1ぶ
y*:瀤U哌&遶呉鏊茌鈦ｒ笜捇N翚薻5A曓bE佧鯅'过;掼,YM麨K蓽乙黬5蕧抇蔮軶厽Q頛a腄/&1`b嵂肢U0t愗野墖XbH掏k(榅#F<逐哪S瑨z⑦渔柈錞fc{O攊綾-0灤7*I.氲撀SF尹郂x啯Sn+Eg$Q墂u钜D鸝"C厜7t?苀s碥内y)袘殣泿T愁蝗嗛e餍璟纛-5邝A,u-賎K枻甈~晇o慇娭l,?y圖~牲!R?5奿B焣漛>裸n厊賆Y頂j")$Uoc$Vj9厇壞ot>B谝毿)OFK适4a|僴]鷰7ii怛q<ug剼烞噁;d=癜HH3/揉k$0;4uU~浸PK钚:;}  x  PK   巰)               de/mud/jta/Main$2.classm懰N翤酼婘藗j雌臅	皮^畤2!5t険呗暺郈t9玺;套髑'邑忙6眃a俾妳U嗆お1か-哃=哬W"緆孇5o鸗)埂驱颣'艑簳騡A 鷘烥憼蕼蝅躴z;鏫暶c嗏wepJ硅4B/&瞈Ep瑵饦V惷羙7孴7酶飰喸&跣鄖鋊YX薱溽1唫]绮瀊▽`釧1S殜8re璌.圃<E晝卉?5le E袨)洜取摦贊7癢
R4.>忙o~ `
3袕1婤襖3ラ輜~籱S}'P墏帄(櫫sC#訊&^F$豍%)~觙03?PK伈姰}    PK   巰)               de/mud/jta/Main$3.class}RkOA=柈媴b)蠻癍11$$E5%鷐肃v奉L孅'_$F?蕏й攪腗v孓;甾s钴缜/$眲6N!梿+f櫠0c#厹峐\1噆6驑稱纻匛K鱣曅脵'躥踫75wKa	Q魡胁轈繊xS0寯7y嚮|K+&B辛G2慂1肻⻊R邱骍員)舁V,瘳莠夎蓶:鳙<捚SzC*08獳 蠒陿5.冑e3%/*扐僡* AtD犦.喋被r挗&c+a;獘i$[燕將枥涟F&i婋T满;婘m〈琢u馨p恿2nY疙:竾4E贜旜你--"j o?旞耾7dP筭斡祱:W詅袢恇軞P7h6<h赶k洟n霄筰0 ~z<Uヾ<狘脽cy'U+T尜甽+-殧%>Hm扺绔攘糱 伂筀汋i/k.碉%崬5驌磄
鸴厖]$
嫽H顃乬i$ 鏷团P屷B稵c,C ".鮆7m萬
邜鴫噪}靉p澻dr栙0旤庺h鼶>c_0壇樒N梸,.拽熈.Y侾&
鏸)bw蠂PK
頋酼    PK   巰)               de/mud/jta/Main$4.class}S踤覢=洡ub刽&惛M庭餈狜婁枈"$^6螔$隸o傴,$J>廈:	m%rf翁禅罪o?慏L樃欰佐q]E7L苣-3((6癷`薂!3酀b$T壳06呌7#艥轄d鯊R祬=喆F穬H1#>郚囁朣W/[諔勪焳銴_=fxX殥鰘饄K鶒!4C瞩ヘ飛"|￠弚y鑛}dL┒1联I)螺"濋l忹哺C說恭麫堭mvE揳4,P'1洎栥倰b@铜芵謨~鑹g.*ｙ5轇,\磹E蜝9喌壱喩陙鱊鈣_D蕗c6铊嗷頨亓}嘃箚r>o	
]漐щGJ衸抧*?琁%Z趽铖02,敠\N峚q娊-Mw虚穦缉砯!I待蟗q{"妜KT祟賌爀6閚/歇I8'袋剸-sは擊嗶}珥0{	{I籸屧紷,S,襥馲聲8唿圷K5K1I謊瑢橁舴i卟塖碳掁訵虨励傯1C艔榯q鷹t玐Ｄ	1G袬cPK}q–    PK   巰)               de/mud/jta/Main$5.class}R]o0=nK硠@6`烜伄堝墽仈罝弉r閈R焻L		x鉍!	蕵癲麀焮l??}A穚脙u:X8垛a6\vpE罎趣晸)^	,1"FF絫<Nu怮慇龓沂,礝纍詚iL峆izT=晝#a蒬_f竖G翚9P 鼑ZS諯d濻~L十T簎洢4ddT({慺c6卺HNd 邩&p穭艹v)↗#苞?榾譕,Ⅺ蕣rm絤嬿徙灷鷮)E?峖抷B蕧儢弅.0弐乫Y=憐<(bEk'

Un倁翻步*2秠w惐蓽苟鷯)n楎\┗&w劽>莝羄忳影Ｂ忧鱿驳镁峹滳埼+1^雽劲呻厃+Y#N侒湜r=囝敞f=*烸}~堏G渮鰢+筮佝>泌谀2.0[3棸X炩,髎 PKn鸚    PK   巰)               de/mud/jta/Main$6.class}S[OA-lYJ薓Q-曱倄)"祌祬&4m:仡6)倪/!憵鴃|駼1 銠m)4n3鐪滐\骠铵橡.5p%!奩?b澩i0p蠌唷妝彴燗胏)=Q馮3q=噁i菏D`0U`F筕0刬$韗俣$b鐫%奓饇界榚 u`殕y$孶i!h"犯XR0钹">搏罈+愨郦晄躺毠YB);o杤M嘖絠魤"*}貌槗,櫿*玘`𽃍紷tf^p凼0g蟰尸燻"|N2K	"e棎
S喁8泇NFn!3M#绘滟*棳{$9	1侲A則aX舠KxA程)s,謶繩IB檔f撶谦:职N鮥叆闢l媹┴斜壸:RH胴垄傕ズP丬%于7秙,O鶐wL7奴俀櫓*aY涏*枸g⑴:14*R糳瑳闸惤v0揼猴嗡ER袢e荡E
暁dm霍枔煛宠汛葡2n)瑗k橵俞嬅|Gn?迻V票+淯銘廄^26"9fト骉пvf嘿鍘杺憄囥苺ZL覌3!9O$B~!9X-虲FI緽R歵/韥鐶(奄x⒈x廬郩Z	|瓝(嗠*#%翪苗鹪u昭螭z隤+uz眔罚継嬚裑嘚[􅶅鼱p翺锑锁覨0" 訫3E磏a毤xp埘6僸5:雡扊PKEg崔  E  PK   巰)               de/mud/jta/Main$7.class}R踤覢=泟竡棪m赣褺訏Q? 獎***檵*<o)萑^W&窭\>1k.bソ恬3gg麌彣.>旮掷9\鞅別7扳a彰M暣鱯晵纜8R#8>{@VG趆%嘘麵j踄"蚉z:N嚁铹a氯b楨*╘粁
朱.  w崱|;QEA尨聵倀#珎'J涼=鲅T懻檡N鶁枾瑴1A26xXR箂i↗+棒?殌呦苰D;跈j竮泿/154<%直鎍C6:渲旹e^蠁#姼痱?雴喊镊e{g瞴蕑	x.硞~sZ蕀毜k澼 猽顮莝褃遢灣熺駕';oQy]r鎥ug4y紧搮y碕)p弝w,賩兪;TQ6饏}妃呶ㄊSU扇錜錔檞暯籞俹闫PK~    PK   巰)               de/mud/jta/Main$8.class匯Mo1}桅6]JZ牓叇e7 $亜碄%④漖8趚+7垷覠翂習鬿T7 亮烋虥7蟘=	"莦Wq颓ug7)遍銌-祰J+麍[}唈7K$缅Hiら堿J懃(婨F贵4X弹U 嗋欀襱S戠"薗"H
㘎(輡!V[曢}i23	肰臱p衿r9栚蚯%鋲;N'菛a鉥0嗿0眧獪9罪灻楥萸 钒C.h戢iH碂嘕hb7n34习XjH>/C摦涂蕣Tn%崈nIq,蠹賜V弥臕Mdt蜛h嘆口$
;U突:d$TR嵆７宛控V郇亚`Pc⒂<y,=(f罴{W趉e.L X@铋棸<-谘瓱狉1鋦唚傟蘐p畏@鳱`%飼I頂讁+X%
e\:〉2?PK沕齶    PK   巰)               de/mud/jta/Main$9.class匯踤1=&6]讦Z牓豑嘒
	E !-P(镂甗m紩緟相壜俉⻊7爭7 羶=銠3g幥竺Gx笅\罸诇軿犇稄>v|2擵!誢朒啣Hiラ媋J憰(婨:F贵,X弹T 嗋┲音R戠"玅"H
﨤(輟%V[曢Ci23	肗嵞Dp褛r9戁騁%浔蠡N''朼隷0喥爽0眧▂罪灻楪们 7盙.hiIs荍h酼鄹眯麮?胷!鷺巇L憾*+R箷4厚o4$U谋腆VвaX5曆=輜=齤+霯5铳阣	揚I鞤PS哣鴂p{]蚤g0ㄐ9裪<N朸谍w`o藅@{~%趦) 媓陆
Vg舽B;和ST>脅&9熰潰
矽擗駑l郍蓒yZ;鉼謮笲W穪e睳h教蠞PK9V愂    PK   巰)               de/mud/jta/Main$11.class}R輓0=N讦"襲?黰l@積栴4HHL诮泋洬訟壽壡BbL鈧唷熃j揦E斬琨r|伪撨~䝼伥牙ju<2脷弖<鲳拿S]嗿勭輰a>	忶箮逬/ZG_>Z}&玭呙J塺?鏤%*喤$駂溑C豌.Uw稯峎RI角E,窂j鸈&翫*駋<堯3湓$E鼠c^JSO5k.鶉<詹P嚔<)蕬爉瓻7"攷遆;儹+&歛4棭x/M問11 ml楥爥枃 6)xmk憇uEJ东3]YiA=K#;0糒V_奐O@8铇`剗槴c瞊W=m蘏!t@礙s鼗=粈觷~鳑%.衕$徒Hx龏%,[﹑*l1t吲僵鬹殟Y橱詎4}觛9Vw鶌w膤<矮5+竎丰 樉PK唫2    PK   巰)               de/mud/jta/Main$10.class}T]OA=禲+昒碤訰ZZ麫D奫T |沶噕q籏v3$绝鍻R＾Y獡天虣s餅{缥|3⑷cQG8崅哹:7飧┽V穟h裶w5屍qO1宧友卶蹈莿x&0ァZ#喣w鶺}'5玖|Sf2Fo\Y叶:莔讝'3噳K睊W%')觱臷砆"8qg夳禯飩1Y0$熀KA)*
峟蛋&y√m窰BR軖剁7D曖bC覆0R﹜(*6$Ch孿u颯顇5;,腳{SM)=楒[b芕$斎!EJf8媠怗釳V鸡L.N*辌蔳煛k弅驃pFK搡弋誩:cGGG7娕b禾%鍗i3=郜	'G坥5僼Y豞轖曤'&1媑U靐ОJ;aG<琹$蕵#E('馚鹏驣,`a*'鼜幂Z醳eMX旜径Y7鞞
W通#簐蘿W曳葳+E<9骸pc霞涔掫劸y昇u紞墆轝鬈癟趤橪籎<R)JD7p|Q♂,踤折蔽t)!鏓`枯-0	睜頼"MOA]3Um="/牀謢4洜礏鬺,;戺!"崫踞=;,騵%簪嵇d枨誡_衼}蚼DW1b:9趭o!}y荲宒晴蜊鑊涉ZHm酓舞潍碥孿t'irj_5$h鼛~悽/尠&X']崻9铊豐k掯uR櫬82d橷凈蠩'敨eN8綅aPK軶>  e  PK   巰)               de/mud/jta/Main.class峏	|鍀=4Ｑ炔W柼郜峫K直秥饓e$郾崓鋴杨HZ{5#镂釂 9渼4槃c挄A)蠵L6摯丂B6ご)W摳-わ鹒W跁V趔|筹瘕焬^4襝ジ?责c麯罯鼡葡4妴垴獋焝(奴傡5痥|﨎//
~U奯鉥U鼪嗊郙A馵1-!堽S溜4L2р辑a:^Q饚倃5勷獖髂x娺儌?8р4?h+d|?i"<*y騣hfq渥皥JR4,4*SH装
L笷á&$釭揢猂㈱)*]燪惁
殾2毼椦.野櫇A!昮jh椡野.职漥毉~实襖卝5膦:仠紹:≦&暵
妥盁Λ碄-d榇Hヅ*-Qh﹩.-Sh箚斧{D*璗h薳X娃燢剛棅呏j磶謐ph0~梚8&dmb'R0y矹棲元R汮[T讵6v:}Bロ*鞵iWùK≥
]I鹎涛t7;粎P疚禦巃9粚D隰#鑮f2e[Fb硄腵聞.;歂ヌ囟D;n*[cf7t尠\A(&鈣澏憣fd霭q	莗拞曣2撫u9Ο&孴&f职U觙閾\迍au3=;-t釷B墒wV嫉u緐v$T雌-sK悍覮4:	蹿Q#彼H婆,戌裟S鈳<牡|嚡W^_]'ON2nu瘣蒼f,&(vgw2繈N;馜x[襢w:qS谸|}晪屰釚嶦M赡8繖L贗俎hG逃5/聩;屦裧'w%峖8厤".J橬簅T踪浇RLy灶沓-觬Z鉈^U-泴T#(,峬潚囘`亭慡葤莐驁雛鈾掠9l禉Vz瓚糫駝宧N8麻暘繹砏0櫛8k2萓拮c&鶧B蓴5濽蹬鉙,枧侫"%nf讆4W.}=擎嬊卢沿-冻袾[秉hjF4j箸7jk婽[]
徙氇j?歨 焊额cT肗'ｆF朢Q.M侷菞q/釱
惦詠硠轩#!賐KⅤf桲$夽=:恁}:睥	N!玉蘬b#涁&"勼審橾F:4Em獽t昇q鶸〧參:臘盢g諬(jX栱逅Q圗u繈v:et洃(mB{鏢!鱈pn頲嫻,\绖豿w(滾皳D╟&{C繆"5緊烴='斏h笇:滒(藅耊lo)A絓9CE[疵賘96nbＳzm簨硞熻\禢}磸蒂aG橬撣峳寇4“q憿.阾榅8
)斠伞碆Gt:姉9I%a?艜2!7徺酼茕3壅填	L箔D鑘淸忾诩s幄箐;󹐿奬<V~傊[,薒4)y+t礜煠k娦7雝-]:軥7*t揘7-塄G籟循莢N5	＿N;M<eドr!>6鶦茕C]v24黒縉廈熤3t汵酚E擺(琋煟乡4孰<
@躝輣PU 扪昧帵!:/姕莜=,3嵕TD橢B罈u簱韭齡}<u閶.ぼ☉-萜+F磩踺p,^礣U(r 抍剹娋"此"穵鄸雝偖c轒r铠譼沧9哻抐綨w幼t:荩咏8∮}⑸腿#4弍n齦7敚旋:=@'叾牯}+c藇颕k夭|祀芢xtz遛O8迅RD5r彂	摜9歬[>6cmきq<Dk&蟿q仳h藂素蒅湻夕8鈪0捍昳霅e凋皊8(pwAqm<(s╞詳b#Y贃馕灓}暂祅觟鉽=炃Qm颜牚6缷cebJ涡5‐悱wi嬪FtZ瀒礒疋廃"%oK糞鎜湶4咵V媂媉	K霺瞆|-B|洂澕\s纬{Dc+'{J韝鏁}L6|,令,b>毡]嬥d7㏎Ap憬#r褎v黔榼镹跱vN蝊劜鵰p2纋畫驠Fp湱R鴑i龛5|瑧g蕵曮@屷辘偻媱櫶偱%3妉9瑪Y侮揟^T,鶗E罍囂䲠0竛茌开(倱򼺭fc匛攳g-7*胷Q,F?!-囯]8了潊安H2+鋭1Rmv姨*湌邲R当烴#,<=壍psm$<瞅r羗貐捬_垡!嫀莤n︽辨OZ蒖;
)?婈娎戱?F
浿DE8?师B
蒟]霽荰噣咶3Q#[閿(1t萁$0啑j)梈n2U(膅嘛3⒓@鸕=?L馌嬪樰耉U~L秷-陧[ぅc嗖嚃v&箊蒑E4;^婄箹r尋撢退8Wsjz鸇,+R;硽蜸v3qn嗲T軄向鳋9羚p<锓&>鵠_寍訊馹	
狂g?镦_a の匉5~朒`疚O%=笚蟁車鸧f鸏7馂Bi 粗({	售烞 J槓AE牱滷 P櫫潸ygP罩pi`@T箝=)鮼2ni<5魿樬83&E#>哅0#鈍!刋儥乊\苋2f s踫數L魤?P椓P槖7HTN攛1R,蔂)凁S虒(B稆Y9勬鰛>垍L0凟眭僗Q偸柎K偩K3X& 所|蟕ED瑢唳`橛XEx#ZPj\<.崝甄擺#斢r_B8ks壤篴OK雰el=廊採$恸?],耬鞟%X2圡a3砞褑汹h臇HY發['nb[?贩vbg{D相娸A}粍i掖襱0 鰧圜2^"轃
慎g:0.肬F 錃04篬ZV(藼	]琿粪w=呚8c阂藚t諧		侔^
&瑦乵暷9熆&旿*驗蘼{,i図弈"88剣Ej&#%捤i>凈 巇pt穩c'徙0u槃膽嘤抡-瑛敐faW}S飁挲h芔X+褖u堚rtc+b1U,Y襛n3iG幈詋X陁渑鮐h
n笗8]倇h#睽6蹽踦?砼詢搕3x垶烂2銅喦璺6綃}A弾=3饘g>烍鬄mx裺 g=囻掔Fs?駵腛=юs碱y筐眶ox奁o奸潃遹秝:揆粥]颸肩]堶诫館?z鉁i^周{+Ux餇夀>D摻OR曥抩b婅剎 'E缩>魃:顦呃渺蚭迆/<劐輧G宿j怷B|弎熃;	3謬G讥鴖~筱-蟉炧~{3樸1(4擁;'鵰ｇN)ㄔ鎵醄6J賴)d榃cOvcgPF镆漻0C<S)伩某匈;/9啎/鉁a{bR羱h耞1秱鞘w橰N 腈鐂亀晈祑塷f諻鶜W藛:涍}W5鰂鹕1y^鄠鶾|镍>鬪嘹S掹衡宰P噶ゾQR_Z@f阬Kf8p?罞柫筒	Anq}捣\%痖S宇F寮 擛擢,漹S鴾a鴍\c遌熣#蹎OI辊>疳雝jx詖!瑏廸s`鏍氭j睒鎍誧=5`;5"Jat褆$i桹3xc垨鄘r糉糀+9ZE	玩0瓚I喝朙M7懏藒渨k讶)w淪S猁汍(^腨茐}ac<|x~{O吝^#骞鞖鄃幈KD邓厳8U9轎T|浗a>焸痙o濻睊敯4辩鋎~悤1M遡WH妊/彞я=鴞R蝒$+gy黾,{钍賡4瞘W鰧gO=PKP|Y.	  [  PK   巰)            %   de/mud/jta/VisualTransferPlugin.classmN罰=煻Jlb`敇$$做j赲m愚痜 J躡c鴕驖溈求v噮9..<=媾0檔R>赤k%g誕朾"裙寲3熰\iI瘀y]唕(髮猋緰潽$[4q剄$农嶥猋鼡颺臲,禔*CM䴓>6佇2gh賔<繾籄没徫PK袦h      PK   )               de/mud/jta/Applet.class:	`逭锿3,
(笻j燰蝹拡@饻l&陕fg贊俍隮強牛隮忇Ea#汽 锍搋ǖZ禐抵Z給f7成狉檕诀诫{作	弣w=鄡壱"杵}1泺1c?~L郍?戍Q帟2V8Q舑琎知pN抭
qｍ蠌)鼧4暺<恑b:8C茻0
'1s醧&?f0扽從貳8*8O臺鄚(x▊1貰險l烂媞!鉨f縿!Kr薠鷕W0\廟餳彂馲廠a藱伹++丐`T羏[TㄅV尒0ke\ヂ·28slgY	M\J链倴幠u*7òO嗌
灓/e<Y卌p拏縍Oes潶嚅l3d<S羅玿灜箩x帄玮o<O翇
/鉶Uh荕靷糚茓糥5X=聞沀缽薲糪,
|W蓌
'y~崅资x
П/疻癝3x荹T8oP醆糛茮x暃e糆厤碅俓#鉜6:む2蕈屡<&沩*\傐欙
v蓌
楏闚颰*1紜峾穼鳕p憪主*x焸魉鴢
7鈜T醘\'鉉*le夯餫w)富罣e|L徘	躲擖樐斌攤O+鴮屜束B犢h蚀"剘惩D谝2=1|@詵斵n,峐q!磒暰V瘔雺謿%V*杊潕P'搎脷莤僲}漊C,=0R$汭+F嗀+痀2揊蕣iB褣馤k,毙詻聽呁FM{f暐v3AH63m褠4S4ㄍ眛訪$(Mp%壣螶{杅峭幢<杊6!敶樠L:m4/襷杀$(%汱=諏癘蠔歶K稲z"輇f鏟?h&獯U劇迅濶弌6像膕麹a剚.阃f$长#aV,J啽)i<#嵎-L糶1隸_Y2邴l硻鮛H2鞰Fj┺d{菍犟ez*苨璺赽閊淮5bk2c釙捍浕>jw/搳撜煺刟箈!%c蟌驕媡
%E	嬗搇棾&2鞦J像]mtP菶亡0致詤?_O穀	$(笀?!＝蚢NYK嶕腗I[f襼D9騈`猋HkcqＵㄗz+_蠬劓2K蔴塖8赵V浬N膮裛
俏1Z鏅橠筌T输鄺跊蚬脪雿Df栁+䱷X\`嵧c'賙栄蜠F3{Mi'恗秬4唅揑鰟a┟㏕屆%\鏉wQA;-霙噱a+吚剞镙C$牰柸仕<B避籮'1a7暼袽f	? 鞍掑撒g曹d妠2'?腊oY藨N鹖{萕L7鞧尪呛斻r`韉蔉/.+薟鰻穆唜
[檗
1涱呭睋=靚墮IE峺"鼖m阩迬O<蠌g9瀱g4xvi<犃｜笩会剣4|e拭D勓?湬2餎^茥疨曬颡彸zO蜚橡%\砆M[-V踸0菾玵m举h3q珰帴_芖4|_,鳕糡T棞;^geZ荣_尊|(
紒oi鳺緧擇庯""U"Q=0璈蹐汱器4綝*瓞TG
hJ廧$3"-)=Bg;彼WX霌T峟尨).碌吀芞5|?牐nf馔栠B钠du?责燌憣k	~J骞魑5?叙s鼦哶嗫鹯*嗒翺綂麣姉樠佨]h%矩;i蟒D蓿,訉:供膲]ё叙?@觐OF鮼UG轁蔂芎a檠秊薾国@I^>鐫+ 6W鴂鋯设=嚋櫌nj∞afZ7~嬤iD亍緡(uQq乢璉(I9&虉$鞤鑸驙檴L 觃嗯Z&{墶凓T堮tfhh)淜/K>Y騥R@
R姾(尩C坟X𙭡-k"Q5+礂胲襸%麸u鵈	枎R疪6T剃╚鸳鑟w鶇bＡK\D╒3岗	UI晩B"聨9&D4M'昲Ri,预4a淢P眩k2錣#MA$擤r篍rXK╉嬓?螄湆Huu5%v7}.颰1Cp埸,H.揔訰=誮X鶌儱RM耈3/"j&;"鸈:I奝嬡Y4!
取Kg"岡3宭*:缝酈期郓#-#N灏碌朙<瀻凈*婴4\朏h襀xE揊辈泮勡b檬篪⑧Xs騣獻９@食s欗鎿9R莌RD趪j鄉馐4爓H鵠 >K繩讪E3"j8i|筟CN讅=蒂:呉v"婋匃.>s浊П6	&zR簺$;<`A灚jR~G.鬪籱%M**<窑J
『'鄏 2bW讏pl$N莶慲O#*興<.h殞'z2#4GxO=奨7x7x&M(箐ォ畬d'NEYゾU>|滆摜I4Y跓>E摝1>2觧駲嶦>vE
徏躆)鷅蔜膲怅G柖ヌu鯩H驙s\尜@梲鑲1〞鲯-咛4-z桓	扉3┬$3枍蕎>)凰<譟F1舌涶,濓yr
鯸Y兇a#ALr韟靟胞叫=.E叫颂]躑:'馆-塾捃(蓆#熸o肈 R4O0LL,苇c玸7D召'm 戏痱MΗ泎/愬{继梲.怬t煳恝(丘躲溵欽噺,僷爣媬豬yv魌綑2眎褓?憳銘謉7o遂AJ2=烆9+{$鏽蔬薾F旛苣l樣:埨'觟瓳梵暶资壐邚刧~>綑唶w>崝{鱰#祰龉跺咎I璡HS8_TG楑诫錠m9C筀廥)jJ鳕牺`鉚oC壱e0荙}>a纲豉3lOk+1jVS溽ぃ~⑦笒.\s';苼Nww
y戀趿+)_槾W绘娒翵)敶電]綌n~肒D$读啜q墲K蹠@Υ癚問ya隘{吼苷菬$Q獚g奌&#巔樼G嗈燄鰯 綇03＜麨隦庸p`翤賯曗屷9聀┗K$e欧籸槇&YL樲"鳣賾萈镼遇<K{戲蓽昹屈悤
1 dk蟯R\窮邈臐裎騮䌷哀EV枹亗衎蚞W.甧JRO|磝6Du_篮H>w@w=t緱f蹽?髅恺AxH.1顔G镍ǔ䴓3>O堮Ig|焼g镍,<'歧\犸F$顴%蚟r役损
=_	>z(攰n刎飥A0樳愡ほ剺阻94C,兞p凙囇卶
e傣滦l:!~弩fN:d|璪;綡C`旑嘅!w佬欺〈	薆8;a7宭靻Qも鑺,屔B$碠苀a\尟gUY豔 O麉&d莚{thCD<BUf—q.竿盋=6叭J廪	3朦}ㄌ'1u棓壌幫~.h瑲h隚jV座 爝	5HaQ[`*&檾吷藋嵁W梸:s龌8Oa牺<
偐渚i嶖;燞C 踊J*lb圶薃z&捫t歵&3Z靷兂痼凅K囦.%妿A櫧椥5K圧騲砞躓DG驿,毸n"巾!殲厃吾蘷s^礉盽0\pc9圧QA#A詎8旇寺B,宰砄葒gL蘽腳臚n窛摀谷1-qG藹鎅僧;b9E娝W媠取%鵋s-/鮔炶鴠=G6R.寺r{簜YX蓅碘:吖職G&u~駔4繏肚悇c雮°顎:9,噹鬟z4q濫<ky諨鉀霐	蒱	N-膲Z棾,磂!|.齏裒麇僸凩澨i穁嚏w俀Цh饧g鍉h%a>h螧b_3醀s攖Be]唻瞽c幅v0f滀5崱T詜XYj虲3.鑠尢}0'咖礩X	p昼:l沷 絆`搰僡.P7tbN陝9槦a$X2桎
唶)晠S*\:58閱tz澻g4單靷_除会簖]pv吾楣崱_v羙(J蟍&m6r湡呥:'.o忮z/眆O/*木槺稧爝b_bo63吿~簍剐V鮓撍
橽"痐鲵晠薟耱6曺衡p睗＃{rT#も&音F%蠜y譥鉹}浅a**:镙p]nW譯〕J4-吾qsx7宄駀V歷B葐le葻r2厱0HXA銜nⅠ:轃ゑ#`劘慎岋E'苭y顝#t<紙鹉眿Zqn税喐Z5l梅b蝸S醔8.囉I跈$,抳6I;迖筢#p!|!掅p!iq	螁+0W碌
譨枘3a7鄥p 粪V貖镰(l7a;Y類d)暲澮裵棓{4'Hg脙褾xHK椓.vK皂H/纁鸶o<	O*遲x7^5浪綟x抛o鴅饢o#柬搋m圇萊飺>魲虑d龘3A鸸>|?掘[鸬\1|锟挌瓐戌䎱q3岠科q斷緛Q8!P僥Xh罋繯8%
N膇伋qV,厚袄僗x
醽OpQ\,疗詢0驵d4係%x褅#氊</聨!x=軌+偗釳.a55P9鞷%5Uo羅゛:娽mE
L傮犸!"y氺B=V帙入Z?鶀$糋o騲9鼉b繭> m>移撐?A6R敿>蛘:鴺瘘浔8|烞雷噗 1套3醩鍮Q/ H瀓ヨzd蜃,
y+_	.4	i
Y鴼4捝䎱7-*駌娙铩(|M}惴2D要8x樘篽!羺欿旘蒽嵈Cn6摂呉グ>臿?x3M}檄贵缍灳螺?劧'餘竇;椃s徂)x扈偓s旰O劄i x鳞an囥━6彼's0z/r吼熏鱢0hs畺l')]匯J餹(羬a揎>卺.駉$铟6iK∣飫9U故貾A絟U潫袭阭pG8;芄嗩,鑢*'騞蝌*Ь铎u燽狼@燎!孫纇|f庥皜`嬹9℃[GM~惬輥>q"0}t洦犴'嶢攊鞺q沭恲ē箷ic%]^a 瓊b逤嗀T▓+U 鷄%A䲣勁9j湆民sk~媙f兜膶窇cK<X孇8纼叢7,z矏鲉E葥EpoX铝,{芒噚梆嫛8虄卭oX勯h碮Lw"O睊7{2泵Lv橉[萆{耹庺綑yk4
G餮⊕4趦e4z&瘧刢3傑W4懭#窿s3nt芃蝬3^鈱;鉛蝬3掼7;鉜{?PK7擪7  -  PK   )               de/mud/jta/Applet$1.classm慮KA嗊摛賔钞66侄窒雌堓鯶$ 叒篃d澃NB2黋厏䜣^叠 闄qf`fw蝭蟬>骁湾蜇罋"^曫瘆提M骕鸢鑑擅2N园鰜0'2:%Q讏hнOベ$蔚9慒uX亥2蹌欪鞿婸hI槍晼{Ｓ妚蕱J茈埓%兽3c力&|襔毄%[鉱m1齌鬎:!<]q&"-Mt9v镵b敤^3U}BM9p袘皇.逺遊M2V<E蒀-繹俭爭蕵BS
}矸徊c勻Lj:c54抂#潆堵妺帞果civ+_厨Q袧怺獛u餪頊叭o^溽z+=+腔寑蛍k?@嶕o葈q殣O$3*La赒鼘Ix巎期蚗a+r脒懣@乸象濛7k0每虗-/槙矛媦蓵(鈄茭PK稂H1    PK   )               de/mud/jta/Applet$2.class峍鵖GfGAQ.&*j"(	侸\傃溍l3胩,94嚬锬r$4懪*暘T%U+$@~H艴.话+Tm蟵痏亏踝飖篼?WB)6釟6鬡`3p@舙HF?顢pXFB筀聽2庎na>1鬣^1}焺鹐T7镊AaT0&#Dg胋rD唲Q	簶b\唩剬0臽夎I莂蓱"%	'p2埳 N-翪xX#xT:-釋寛H槃%<!酙唺	説酸諁c陝UO秆螖隯f颓&Mw敾浩癤:甹螨壠\[7Gh佲;YI擐諠啣}qMも1W嶎I&顠w鵑菰葺结"x
Z]V6T侑淈`*1捻u揉播┢爅隑#|廼r凰P嚀eY!Ζ6B]﹋畁欭鹅3绨	n貉=炈>!{怞驯鈠nr蘆镏珽~茍X'*貋[癠-卅`;禝xJ劣x哸蒤鋘[Mp	*x+x/2蹓9fi丬=虖Ц鉐xI了xE莲x岮瓴嵦+x級深Ls洝屄頷T紞
%m轚辡`4>T蜵BuZ柫US燎鴦ayf譹瞠趆d8e巉snJ鳷羐鳿PAε志罈.(
_+逬鳱流偐8+?mg罏$磵t詬慔D聦4蜪楿pWD墨k(:梯攎v[Z噬餌G碬w4*"趿P曐邸1蟩e裞镉棝偫野☉陚p擮4頟礡5霋鎈M驯*占M食&挅IiugPwt)绫\"~竫<臞xC]灡逪嶈f煡婆^*唋4U绪;@樵炁澢撹 嚮s醕倴 C惣!nP弳媉賫祲}o蟑痳5欎&u羝bqL~t湟祴tYe婸$TL, 熱@J械簿5幄8+X蔲*瞞肝NS畁D鹠+蒻WE)fg劵}抋bB\鼵~'狥J啖(d纵糾坈蘕;蹭滟钑1c)
S浛r癁唳(綤]笜屈9q誘R掌殂
-$Ms-WE|Y魮鲗瓬戯殭&,9)J歊臷誐9箢L脅DAB〗嶔烪=\ $^抩嗻'"O>OdN+∵N"}7I閑鬽hk0儝枍3(m4傽K}`e5芬X駄栥6挿{建B窲<I`*$'@篼许gfR騜gZ.′2啍Fp
粅解洌砐攩r$鏠毱b襃缠L,$嵤i锻鳙Gs+毬凚K莹癍随ぺP]帅誒cE殖!7OR7dG騒檳*:嵠Y軜茪)4嬉e4枝褦芃莹蔬吆|e絇g7蟽 Gㄅ噏J怗QfA岂26蝏S3r塒靐"x+髖+嫉o贵輱J:	U,5璍苸-V塤X5㤘5鴭-眠瑬党:6汝(k`з
.j3椭I枫:魓y觯嬀2Y6{uPK陦	勗  {  PK   )               de/mud/jta/Applet$3.class}S齩褸~:*0苕蔷t禥&髶e葿fBRu3c/G9Y贝,u&苹&谆{<消槛^I焘@<钟P薄6(財._wU苊枈l+豎癒0讼淧/洵3积栙嵩<牾\偏槠g彑1钬z鄕?$X2遙笋貗~飞傋撮娙傚墼=#髅`J& 乂<診哃D'艴0摗6w|飫稞犓Z雴铡j襉躣鎞(藆d)渀0滇=sき8cI24dQ襭W守#X35|惘厍>箚h谿E馠<V餌肧坉)d#.踮嫠f囐卖闠蠔r&NK攆srj,踅瞙1礫惚氝睑^u墨H拗t奕g幾ｍKZn▄湹ビB&盯菲荸墄]址<f饽矸向iK泚X4播Kfc躶釅顿%像賄垱'苽殳3怬B,rQ8{Q嬬 彭oH|0y駷吋\毳匛\廡浴&j矫L勔媉懜@'Ro沐L<蚟@9擒wみ尣⊕C娯$;c欞檛苈娙惱j腨胷m壘/PKN1嘊  "  PK   )               de/mud/jta/Applet$4.class}掚n覢呄&!n軘	m工 浺:E+猅E !L*忡R_娊獗恏婡x(默A栔濤嫣铧;蜇聳訩0癰bk諱P7q󻴾pG牗幗ぱ9=矁磄敶鱋N|Rノ荘擈\>駼O	,YSG卾#亰銋t]奯僧蠙挂?挶鉪A@鵬R荟eg/貺E菏嬄C娺Fq@=5取村e訍Be飃捛:,錳	槤(峕z鈏[常娵鶧s竅唹Y魇鞍!:an隓;R/閩J2,c鼯F!09馿胤_t洳粫╂/Q淖=X簱86.]棐け逾处>薲Ar盟蒀?韠蔀甎昶2a_缿9棑}b羁}靊潷m啛衬/M?-魲5囁集p辞{1涚屯S>e歽'帡F*f-fs啼	尿橎導]玧拖葈A
o蝢抛牔枅T艃	p7竼评甮gn郕vJpC禀PKla  W  PK   )               de/mud/jta/Applet$5.class}TmSQ~殏娊YVd噗bejI$*掃噶2伺蚁hΘ镃悃>簦毼]穈跈萁髻鐪筌蟛縹亊,釐
?ca太X棱朤,C桯T厗囸H與*x邜
b
6<ce2Ld奬6婜0鬌璙"0|e.Q7Mq哷7r锣K贓󎱣-~亘婀3B籤TN菙6钃罓鞾w鐒Lu瓛1 L凼r绛鞹y戓v8sj厚^椟孾BO笖m箆%躞3羛4啞歝Z"m鏴:蘬$倆l7O橰鱄K也$j"產
瀔谺BI$9頣M栓(刂惵巻]靑Hc熱J'L1UK硹8ぬuxI籞-HC4计眴$=20W錙y213.8晙朰體梗C+Q陽p餬$穓[笨}礍喲濗P脓脩V卢杌F,d彁鮀楾枻⒐v=孍骸K镼)=襕'蠔0▉iHqr禲ygR干皣誇cI鯼!d栱丛仹I輇<馢1祥硯]銕0y莴视岨.q1je 全&废铪軞珗Y鴌*頜璏)全忣 昖q贙D
6筐}焅5zB.7p缩⒍}银R瑬瘡鹧責尵o鑟hb'b-Dibń:莗@eM麮>嚩啬hW5v)&硯 劾跠娕慺[賄貛竲芰]祫蹸=鈣子!R<U躤PKkF    PK   )               de/mud/jta/Applet$6.class}S[OA-,]
濯偁⒋錜鹇E吺-㎎,羑|檔遣篙泡)/蛸D纇b|蛄e<乘ペ芃v孳鎩9s孀锆6u$0G;RjI%&tL"珨):誵wZpW=蘦樥0!~理觱}列欉<诉遂JUJ譟 醿#w叴L6隟钌mq(抋纪漴 =)觼f筴#S]鶔萔鞛滟妪}[H錨K.1抬#b9稤|yO珪秠姂kr{噞栆O1艌痞/gsd椹g02C軘栯l	飴險D塧(u罫Gf梼怳%敘鈥:2鹂0洁V=S琘奦k8㎞枨}借3袎n鬶X0皥礴I<^<#薠a竄SDZp头B>铼聴rc旳斯T綢5胴+jP?C荅蠠麒 胉貌驏/5敧Ot芝筰
b奆"蓁斡=#倰訚z垣d嵉诧:K質!w,
5鮆!L+凾ce撦Wc懿玡松患お=扡怃_	酶'撬鈱yMг瘘3-D:蠇娄塊5h盂M衸v兴N 闗狪ㄑhB蔚窪鷈抆＝;s;B$3~刪f監AZ洝*H蝿$|R榏I奀$~敩譸閻t鍥藎F殈9z-訸!1Z_%J't祡DS8F洡b乐形󧴰06f絘⺳fs竵B忇fp唄咨PK攆O    PK   )               de/mud/jta/Applet$7.class匰]OA=赢]狠R@AQ凟稥X炧CBML臥twi痘皖磫熲0养馺粽e汲軥漝v锝9鬈s缥簖娯廉瑪ab章C瑱XG0眎1迸PR2un狨噥譙;B失棏J}&#⿴栜)貁嚵h苼`ǖd$^鸧懘y7とB+鰕蒯壴~4ti0/$蛺З犎釳z鐎脑腐d潏,N"`Xs[=><1戲3萻mg拪bVc癗鉧鈰R霜+铌U<禷鈮u9!#!	徱3憸劽s賖`燮S煨i刟.蜩躿蓓	甆兆挬t2詥珱櫩AG诠飲4u鲼h堫陨L破t撖艏+QW\錧z蚉1Ob1黿p舌胖;Xй8C.觀袊狦
传%縁:b5線5?ｐ1锰逊}c轥烄1姼3+绀娀9谆溗i|B+娍`|纑铧1秐}C﹢*臭喞讪卜豥潐j蜺5靼LU
笩=罎L.初PK憚牼    PK   )               de/mud/jta/Applet$8.class匰]OA=訓.輓)牋(盛",Oh!!&&崚@鷃2`氻n;[鉕駁榟黿02拶n	峃2击逌{罟sg~Ela勰4+0癰V*J竒`輤m`儭eb0\k恣聚S=■*G顲u.旚鶧哛3,:皪C鶄∞枴x戹">孑"箜茹A嚽R鹹挨K3羫"n<IE蹚IL漿JF帷圤８/|哢л鉉铗wC* <誺&(唺a鵢0(JcO<揨VuTq[gXㄡU,8hP1q櫎<8巠槣婙0H蟙hM盓:嗁LL烂3鱡'<2Q_[&J猩P巒f
i鐬'捘掭!:'3i芑蘽んv'鏬堯光*镆mr袓x嗽揇垸/秆]莍歸咑>U={鑅燷鵸馋勺躇厪f柧e+
sd/嶱牡惐9']Q苋筃r.基	叝(﨎杛'J#k\V櫋G5腱鞽5殟沊*苁騨銁Q椯PK痹    PK   )               de/mud/jta/Applet$9.class}TkO覲~6(+吷竬!:q 埪c2/qⅠ薡w2奭;鄢伩认&F'?岋i6輇摓筠哏酱縹龓(餌G硄銌:谊辱萣N眉巭剃d胆$9yK9[:n銕喕1臎躈櫠啈o?敼蛦敭矹GiC手椳;釮2$C{;誠Iz朣%噡筼<胔"r礔%w yn穮T5吮:肑簢@w喬.CVo9鈟/跙!rMn飏蟁鼨01義8+剀I苹阈″T苊u22\N穛墻pdn/0豏t (*氃彥1%丰檅跼脇嬍美$宑吕9艠鰽n 冒%讄'+窬!|゛屠x圙-	6Q`
.o掿c[卅酲瀶鑉肍呑ヰㄒ椽wに暿悝)|?禂пM7)+傅Z癮聴v9E梂T畑#输>E_+`h鲗荫獱疙-yQ>"W踦
N7淰┰蒳<rLvHku住&P4_萞朔聟J縌MHdU鋏a觧.fM 豉&炸i'揚OR图儯]hqz'q烒D%>F鱔,;w孒v鸯1b雼t鯟-紘KDgC{L醨o,孩咹@Q捨嗍Y#鈺n9/棼嘅拽蠳0J?燝O0H\斵豋桕鷪兢q偂6殼B纜$櫮k 惴-*甉R侊uL迎揹8秀PK格    PK   )               de/mud/jta/Build.class}OMO傽-*抖b躅5A>N&j<=詐_`僈($t轱覔?束@⑵儣y吞{聱,柝6q`bn鈵粮惀T赽1枳U*Α,臸硯E銈;^D紪m邠簔敍v
w荬n{杖"=g03"諀s惧n了蘛㈱	琔赵壐昺捳貼[L咺鄖俱{渺R镢\$奛奃綉U塩!U'Q鏡eT'/`陷x囆鐷:妏%.絑n偨揿鬴<齝站N5PKx'奵    PK   )               de/mud/jta/Applet$10.classmS[OA话tYnQE趓賯7獔B暷L1櫀杔wIw婜-^/?喑 窳?蕏Νmc簧=缣欙溬哬瑱枨d}袱虜2	I60cR諟2妒0ob\1p绽5嗮!w鉋肞nr?戹jEJ呋I膣g炣)2舂贎虿O%C飏o孜瞬沩覇n圭4胮n[廿识/菇rp
〇蠎橠圂6蒑=雘撧仠銐昍A7xJ慱漕&/;*'u謢瀣藘@P&之 >烿"}%h-¤g泍縍.5G狯侄)F1aa10尐侂懕p谶鑝K吕拝[X秔w,琡晥>	,JYwq!贗!胉骕僡播R
O陔&驋薐恠)╳r"蹬婨衽胔Яl%窔e4IHv*K6H璈N黣j=覓-涘汵郥GD绗!)=饱牺gFq:r椅Ca鍃A#塏泗肤鹰)F~陦ㄩ礑4誇ぱ;奡彂!梏崷緛ウJAKABN擁喓}痲嘃Tgq緤+OiU=暖Qvuη储┋'鑪t剄尀Oj弃1翸鰣bdf/0芧b娊*眏xu%\A+ &楖盕_c褕"峖L貔尞H1&y]匌喨遙樈{廍觥E@. 剫U9鷼粗W= PK[垒迥    PK   )               de/mud/jta/Applet$11.classu掃N訞瓶覿秐Y佩蟼Ak-樌咲I0&崥瑏胭fS谕螖勭P/|绹2瀒洉,低3g倔沷翁??鐇阛
w洦銥圎x噔G.	s緼28生晾堗鮬K矯hvs,崐X鶭%熟:趃匉^跅剻P%騷v覔sd6L#垜层2X稫@h終9趮呏#濍xs撦磭qv穫4属徆 7(;+l矘SmJ捵M砆$鲿57]b NEVZpq门灷'蘔Y$芏 蒕稹7悜!鳺旘T&&茸a2*m$餄P[郸圩办KD懺谶辺I丞獇U*bX0捧np浀雯q0m蟼{籶融hm渟9干_鷬[茱*0y痐r1_厕孻哚琠鴱遒鷮&}o乧柗8鎚遒6i檑T",妃;h鏯緙<PK:歔W  %  PK   )               de/mud/jta/Applet$12.classm捽j跕慣玍攦譱z取8啶{eh1Cr窎椎,k茹$」创簪袊
檿X粴鲎铪畸&N鹗#<-侣巸gxn銋崡6v	5
抝澃Ho2xc%紡觟(調B眥⿷T佅A&搜V+H聑;堜楖/gБre"靿Y狊E岩K@p?G憸礏$+昬|蹴;vS垼愌肠棾汜0藵n<燍騍牴+Y藳8.擼豿lc吓><:aC虢PD呒N,}E8|爺2R^'5蠻B蛽v(删	%"[/摛讪3{;o俏幬貝臛芻S垆o1y8X鸦肣縗9:~-gVy纸爇琿\蒚Xg(c蝙⒓`5XC)7摊Y庮*骞檙#<骚榶旓L股霷羡(	￤PK突轋    PK   )               de/mud/jta/SmallApplet$1.class峊隢A.]V@.A碕斩\枊W奬姞$U0E茂関%圯fw
駾h1汎 >旕桃[&=g鏫矿濋'+紿叛凔:唷42瞦L`R脭.L+m*1Ｄ瑤9蘫xめ1CL贏j哸窹f6$78#d!^<u濉惗E駤秌%喲t粍.C菤Wok晵饂x!K脸赋藑[痞
歪A 2姚Gj朻u烒钉煳鬪^鮠%喨^瀆8T8馇艽=ssk%鯸J覌^头膯5暅V鹉@甼xj瀔X0惷聾媯 褢w挞鬽 _圻>肕偩撅@竐r%薥,cE塙y琲xi`磰vC覺~舦筩所9赹4H碞ぉ筫墍<C彼7W,锔B;≮=閅烍毣eG鳧怿勓祽>w儶(9えd猡yO勰$疨疺-喩t*祫5酃+醄#a厀I锫0橚;.状&|ZUh卭I鶺鯞]閪u滲瓰0H!z[⒊茶賡办腤D温 [窤2q卆寙U鬎M哰k:B攖&憃圢匝	co>#趪st跚胄'腓ㄣ赮貭泙v6Z鰟迲.咬鋧:yQ舨u穛2{0B净 鰾秀dQ袛/| PKメ耾    PK   )               de/mud/jta/SmallApplet$2.class}TkOA=S
+蓑~垁奟e/#I#芕H失e;缾韑軳A黆(?黁苹籱!Mk涰探s顧s?鼺!獵G紿闔帷N緔&揖灌,闤耤0舁#Q崶&s%n杒%骕Yf緇9蝯モp德袥?撽+a~UH≈︺;纺sB騱凋>
志C瀾渒[螏	弋;＞0[Rro帽猆N灘wI粥!W顣叴溌Y厁柒壾眜b檸%图騽<$`?w,恭y駞`榰(sY$燪*蟹i$+^r醽艎靡U忄lS柖>p埘J]q詝	E茌窠宱硙喨^咥唿l髪瀿漺k炌?瘛+9望`諤<+V1┽5Lx呑謶寻a頡:U塧畘じ#2硫辳昸晃[K1递擪ujOK9X锻谺g◇ 錃棁]2O砸b
=搛 霻％[Y艺娵蓗Qy坫\嘄l萗LS3臟鞉/=閸妉譚ウh柛U&錭睃槬N?#~飄韲椤g 僤裯z'X2憃dE0 i`"Da攙v!'胾L止鐺~G]鐖~m!2#務n`#Ew+oK1崣:EQD/谐{檻q嚞n釼 6/銴F^職Bh	f隑0-u巏璕>Q
)FS妬9膱恚崔At鉇<	HPK隅﹍  j  PK   )               de/mud/jta/MacWrapper.class峍隨W-	l埆h_@l`l刀U"⒁|刡_K睝0費7跅U[睇齸}髃樵柙验楆L焴眙w. 3-櫧黝棍滙;縮頨琪稹?褉D-0$啑&$笏俩 F* 吾
=圲H0&妞RA脛奍a 璪*Ad9滨l1p腬啖構*p)薆皙#A"y-堊駟7U\Q詓箤闥CA(>詂轀%;mN霽P#O(或5帚NbO贚;{"
V姦赈i,d{H烁骗猪磝鲃~g2漌>2b貰*6彖=y姚忙u0疇:镨6g:e(揊蜪[8歸瑴M<a溆梮:疫/pU)g	y襀OL臆	脩侓涖C宼T 念j>な1l┌.1:ZIゾ瞂-嗜葨%X6驌z8U鈹H昳>3|妡8槹
v8務-俺U刈秌貖槅mxR肹釜`锹醠:煣靼%湜嫚+lZ;KO)譸]袍蘖m菃姏夼ufEG褖办攁酋▁O名鴢L-e鉆a|\裐頖 q$潅烋茼
kiU|⑨S|︶s|立Z^灸W
諺(嶅螔V!$竛*局+h)?鍏琯lCO蛒\眴zh遡xN$a6-7 1摇醷霺唉麯[-ā壔b莠^*#古"g拑癱笯5耡?郍?ixq&U汯"*Nal,X裰髶V1徼N7肌捴疴纅驇戝0l{䱷Л1&覠=椬舃逓渪藰:斓LGg⒈诩崛俤	xH)蠱}傒F菸0欉,b
8謀>鮢<僕-[v伥瓣*熊
(鰶lzf襒跂帋MI褃拯\婃cZ=7Σ04i[E賨雛扏=ya戎煘b鄘*@寳憵蚘&K鯾!	唇芠>摯rle讶rDn-穻~W狆c[坣袂喦1@9 |脬	卻]敤rUb鹜RT収9嗋缲时地/n+vR5<僩9+釰{&'鴷{裩萠B)}凱4TS傶+≮偝褅X1rZ	+渕B崑s懼e6覿刵渧;5雉o:鞭岨#屟=兒嘘諴Z农}{割bm	爜
環	雗=^a﹋g	goAalr5
歂使YN復槉借羫/笣X蓂/柔~诀鹱嫵81&b嘺,6濳堛
p僴嚯dp^=貙葚C奾=罨H%<d.惽豜E巰pBU1峽	N;怯恻Fk$=&ζZei澠渜嚗瞘X抨 W㈧亓=g逧勴⊥q椐伤A#i昚坵8Ste H[Y|t祘蝳か弚@忻锕糓匂q}磵鴍睿}'F-墤晷壞勔"鼼墡獂矾舆.⒎鬕Q棷隅Г辠2湫<(絮E21M38娝.塄饬萘掞c癘q窡*瀀7嫙%/"儸箛2駦M唯桓兾篔S讀钞划wH骾jf焉45臭z\	辞誱1?頩=/PKn碈    PK   )               de/mud/jta/SmallApplet.class昖{U~'涭lτ$m妋S斖6e覶D4	蠪ZI&Up;M禠f仲仝▓EA@@岼+磛7祬偍7鳪镊苜l6a鱵鲛;鐬麨鱸3笪痎G{耧F|9緃鄓1羧I:NX僘_6緛1<$笞t<l尝鵸兠緄徥饦靰KV忞x吕V<)抩岁)遡膚=7癈麫署#~l鄆麯N?肙逄镶g:3杷吴渷熴"~A菋码%吭+恐袗'S碅k<7Xn0f9;4設{鵃C笮I霐時,w*5鳼w獓{9乡^4铳垂h
昞;H(u瓴y脥瑮ts厐 5#7[+汫A鮪攕砌)wc來蟙]搜癷(c
櫾(u*剡)來窧頄E誸眺/9G,7阖>4:^趓祠辞楲7雈>慏=2秵魿Y拙03i证cE97f鵜y.雰i颃'+52c9巍\蜵雪tf乤桯jv%V寿籒ы\愼\Q^<鼈K臝飜?顠>-2V@戎D╝})H霏躷6濓w4f茎茷肑ы|~Wgg儔<h_eX隢d 沕倪'V兛, ]漖懂0>!主-/;?棱
説寈?m邼曁轙u69`&>塐櫢嘙翣!洏胦L魻啄舨j轊娂n鏍脍䜣c弩v^ ~它V燥C脂Wt乃8<.鉩~2~棄>4q哬浪.獛WL紛媌駫?嗖塐鄲"J魐祔w.識u\1馟\e-齾'鋌o"深疙麨O{<p;n^撫u遵啂7M	o欨郓Nソ倱壔^O;跺:绸L6_閹滕媺库颉q!7o涾;抟駧鄦墂裣?栟$慢t\y趺舁гR〔zo羥脋`N駈X5c恺钅麤j{>籩錴gy;髒謮:^Q	e脰kM馼蜀垥蒱璀羍
x&绻~K呾鼖Y婼B!柍虶Vp-OS祙PH璫お^瑪D
飷鮐/瘭j塓a.撡|`'侣券觏膶.C妆4%叱L銲栯┣/攈貝╕-5鴌衧蜾+7/溪芄蝹r)/泉鱅C鈞郡O<当f涙0鴬~K嶞竦&齽奩灠m鎄扼冭v銎徛纅軄弎齫~溤vV>P炠湓迢鰁5砓軾蚻衘f随l撦氥=|辚\ir蒆u曨Q庪 _FI杂R#鏲|2Cm|鳘彟
遥該絹d9Z俕D尗F2捵癴&""\熐'沷J^F(m崠")l兾0殜c{0 軴w*JJJo8C#n@O柊憊Z蛆氵競M蟾箞I(酑El./w玴j+bホJ]脉k谹v6*釚=%.嶂懚0月5鬭7<D&t鸪唊 廞	L酙<埀/!卟/敏3#&/巢W/3-(舄7溘>嚩jf丧4qR拱g魿蚣"atf箟T;I┗Byb熸3軁!g﹒嶶+%E7*銹檔k6ほ裣V埧(k茵Zl87莃箤鷰:)倯k;i浨m%ぺ尉
7S３O┒暟ofw侥zz垠锝嘃 炭婨!亰<=估軼X>椥西齘\f=息郝;q乬*ぶ莎霴旝f溑VG屆8污岍Fz9U霟g啚鮍GRM2潲俗P易轷酹鬎锁瞶 _ F&'X)56疫W+PQ%H+槍倞疗b
觘垶r戦-l
鏺倓铊eYeNw抲齸F陉振*8冇湜筞凁NPKU|閆L    PK   晙)            )   de/mud/telnet/TelnetProtocolHandler.class璛{|T盏^k焥鏁!LB^	下$!!仩糓H@$@F撎	3q2帷╔┲V環m礏7V怈県+語燉]k[k+}^/$醻{煋》莛;k璷潁謂k淼鲛=O"
橄>
用^歀廐颞$廔睬瞁J廗i煍:%/I~$蝽搾粜S>:DOK鯊}t槥駛<搿燌瑙魷sD挓I蚣梌牊K颌7戒舭嘵桙I^跣k捒.?鰡$oJ驏$o婚7剿$j獦瞜譋7F媄礒蹰T<眝&訝9蒁[:欻/嫸礇z徤垯韐櫢F#1褂鎲謫&毓IoL礖1扭%&7a甝+i葘菌HEuUE/-PS1G歝>E}	x学Z^S[+暁s\U漈普-奌メTV貸S{j7觍嘨z'd4谍4锭Rf"胶罦)麬[*畔2鋼R@頑~5h玪m磮	)UK8峊字-幀疄3S讪~^E?愑粒P郋穗*椛o"嫬痔违-,琂懃╆釉W诩跉n蓞但k-
訵/BRf遠篇.r 6díWP歒馜<}>4i2$`N2喴\O構74槱H础艛%檒尪,嫤跩=oc歅36辞娨fK翷E[淛嵣桖袲L53!瀳禗洞翤韦蒰,u\O膾涥銞a匦轪袽棰3O&0羞fc諐虸3閎DV"檸7m㎞年殩殟蒚y蹟娝7&]R)区77毉i榠s盈洄J(#e, G1+碸:昹ヲ鉳VA㈱sOげF%/瓊r5蘑(薮54&0eきWn碸*蒉*%W濌MБ壎謉辦J胵豃(Q攥榌⒅4跇砖o觭栔蝒
N鷅'苀5v7-@6?2硭C褷f0z=M櫗-[0GC博Iチ濊揵蓡]/.唊mjmr渭2b3R銔'Z塾MpM渤さ	&犀或|跎鯰97.Kj媑姕肙桼蔕%T戋i扡梔濍Нe^E埸碅JII挻J忿^悃蛣M稃樽魜熤Q~悃咭稂!F坞7}洄?许~篟未暜鹩et箾>鲇Q*鲇%━sQ/He{S摍	h埰&琦:&蔁怓燨i嫙綟蓴6I睼抐*e鱫tS魏唘f#謏搌歑y拶揧1痙试饧掆忖ⅸ%E钮ySg敆N-/9/oC4肇迻W焦5o<e<,腚SZabI训昜襢涭ι螯q谝喅	%Mア[摥X儼硓-莋譁Ae晬橞ち赹oc󜖘f:渢≦碍道蒽/┸獗t3V尟mF襖阎V%S翙*ke1麍I5猸'澊4滛a禚耂籔灙4厗S麽﹛P鍶瀎箝婝d+尯N鐏7準x&,|饤敢佺 W9p5餦<邅k8養<刀8魦x1^
\锢x餽x_|^uZ^<瑅5繯n nt癌謅竘X抛诩冁q洴躇蜘e?B頨JN<i骎懦0h格2xex?qX;栀G"lHLkw+8iZ`PDr=鄵\繁甼懬i袎-#u檨j虇!贒icQe%ì
x趲Q~kv趫0#wT疟%*廄Qql枈cSW藳!鳺0#6bP"3鲪[	僽挧忒L掲ra!髍贮J诋操?#廖V3FK肰R矘d娂絺疻辱羌劦3癪橷>yX浬X楟L刴O槷韹k鼥瀏cA.(蠨Gtb
籇O羚C?喌肵間斿<腚抽:,lGMb消4复篸膬昊:n歺唽.,蠮鮙4g聛a)3琁襂兯鯋~勡賮r=;)K貱g塣z時5蕸(挿皶紞-大*刬#}!,’倲n榔п輬矣,釳XD+v欎zj髴蝲=7\憄爵駋蚬犺wr4笰?偐忈頠d韽软'腮1见摚巖mu7嶂:但\郼伋鶉屾優E陟z7d㎎鵦HP)抺5a&蘈tea胸n皥趄骇儐*3鍅业爍唲鬍厙侳L鲭≥珪:(曲J陚葀]鰛挫2嗆NCzCn喉04葄媥"徧噕bhVU叄瓺鷪9>A冮$纸俏)翺毲-`-e7璬na8兌佭葉簷迎;9嬀腺t?>巍'9H蟽可C醊v乏Q鬢M]溗傮2.禆シ 鞵髓-.>∮0鯭$)o磗毦蒃p,K=綜粉[蒷貟%銜E梾矶?.Y<諵W蘧瞒甏g趛VSζ澟詽订昏n0=镢檘朢聉ｘ鶔栯钘rC+骽e^e屭i咊爓粭K薥AWm跰~pω2YY樖Nd)聭L=p呁w犧瘍n炿耢耗.#:禮,/?枸頒盕:魲.it伏)n7蒞$7無銐鈮愎膝r颬5:Jo	粈;鬤兀p繰試輮/蹸9倭N姯鮭>#l#Az伃t﹩%谵>勤<!儇侇2wX毪a攔eZ)s颟援)軪C'3l|M芈B訞偮!棉片AxE郿膔M晦v逵镗8[.瞹+嘔7=杘=g鳝7駃痮S絚鶘o6>偽W.Qu$颛=+:h眪X淧3x價K鶑续皭T燢裓蠤WU杪f篗櫝鹕HoJ4菇XFN	圏徲饊绮} 婲]賴F8_嶈{e9*3趀g詮l]VF互6䲢;3甑3趍g旓2:颖謈l剐毋4晥:觳趾薢>k萦?<沚t+陹,>豸VMD绵儅42P虵煛窞+鲇桁躈:iL鯴H4N稖鷾~f徑d?锳摔磎[剑乏F:	缄礤A蟰徻_(i峔e虑罧邅/翱cY>扜鹛0"	ι`,'9鯁R霿艃;铷'羝芭蕑Ao券I:(}鮪脞{t?b(&O..O\FcyM囿h2桽>夕閈A彻掓<5t-/爋養诹蠳^Dw骲:熙嶱7_報"6x{x%釻5<敚廸撉p3O8:.狨<\蜪炌en鉰N髚尢-|94[節 閖緤敷5黆緰科_緫釠x摕錄0镟楕~徔趴巅鳦䦷痧N1堬Y|椚醷0%F鸾"楋c笴L腬~P,鋰X婾鼒X菑奙糋l褰*'釷厍O鼣8葒挠|X<讼堢釫~N剂G幕鴢_裣1~Q|瓶燇K$"N瘾殗_耠7碶~S+娣促稅哐.鈝&~O粩ゥm3N粷?灶孢k黩G#v悘j象'贙|L{?政吻迪/Z7穮:Sw|B箱n=[恀"X#劸Xh*a楼浡>=!2舸痣W圠.1X-掺鸇巭@塻裘鱭1\A屝_#踝Y屪"&'臈鬾Q`鋲)艱QdL牌TQb厴f訊1脠坰<ciD,#&*82襜灡U7n5-b伜r軇_:窵鬪9 莳甋鉌憾g籽=贲瀋\.[:厡鰈衪c嶛=驸V}韨洇懫u痒Pz1.c6$M0Z閊簭2膵鈔>鵤-D扮p粺~`邿L驉蒞棟慿p棐V):0_+崔蒼,D3烐肒,"焁L!眲&垾*e讹茣瘇nYg鰉2O功!麀f蕈久-E?栀Kn軟W`譥!〗埌vN靽輤_陣=擔	繟8`鯿(!卓{)堻岹頙懡J阜筞L裘PK\sf"(  *  PK   █)            !   de/mud/telnet/TelnetWrapper.class峍鸚g~哴2Nl.$a汛	,P襅獟-4m	`A恅 撿维;场訩o^Zo饯眽苲oZ刷6=莝s怙歧齰3哀G吾涳垠^魁zpC=疴饀4繩鈔攅9莻嶺蹑	Y鉿R噹阐%户d鞔hz&巊搙邘;:睹K嗷螨,纤騻庯:~菑D	(鐥dy9乄8鶞帔I醸勻S裹欂花沌8/蛔u鴈恳q繋7q黇Cc螝)蟟袔j2:瀘:⻊/[饛梌禿鼼M'椃J趶瀣轇9纂[y球{锹涿b%颂	c曦)髮贈7澒揆y%盗v4歙Rl拂⊿,鹀>#n僮3爭旪09婀儆9禫9攗uEbt搋F)h;sB+%_詟╈垸	+牖
w变贿vlp::'(<滏,颓l.f9摲D嫑5f蓶s2晗坜 崼蟙,U愨Y譹h欈vlF|T靔V(E;駾*隤\触鏻/P氛q}{v駡檥淌亥S渨$陿趞.{捔Hq佲I向Gk辟QG,嚞戨e$-=綻邺琄K酉斡柸 7)I玻R9滂靌6.攍擢漣箉悟黔R羦厅鴅憯uMn!悚礓軈1鸌K_c3囲傚x锗鬢ヶHv蕙龓蔆K澊鴺[.e瓏mU隦{4(埓#困釔問嵟h6嗚迒J荩纼~7軓~楌|掷[by[潽夈奁e:18冨資Iw:W迲鍔%湂悛乲60緁Dzx$0b鄰B姪傠38N2N矆FM蟍`91喓亀眑`*樦 fo"凪黓1餟罒1莡玿/幙0%9#39"觜瑂O镁zT猴f輡0顨X6)ァ鮒輑_R娽懃aW坵0k,Y灁w劂E戏(盝ヰe BSP郖硊_蚔M钺#3j艦疠闙(! l蔻滘煊苐搋
	?歌[4Mq#],伤f=ZLv漧ⅳc蛁T櫼僳昴稖f-+wK岒垭匰ㄇm|镝c钆!綹黢詟O!*}8蘯TG}6晁朢逜/{S}賸Ju繀:佥\?荢?X钾焂仏YE迷
"藞fZZ椦葖/馑Hd磂$*=熺簢@$Q趎跃钹1H7(8巃廯敀b:)S>諘^燎朼d2锫╜2歫坻e磀*貁	麌痑*蓭晕
Z{*豒令
鰫…\U 僒犴Hp=N嚤嬾A1*c湐	4SESC*;墴r烀(·腟C!5銲鴽鴩蝎讉%28'IN診3V 9]*t黖SSfH膞5D6縝-擔x煒蘴U皐2摵M哄唉r'"河V?
LL飙	傆/諅訂)!?AHi笝畊e＋2-濹鷚V1UN诬3ybL鐻k陃.鯱餓F<鵤祱抰qI[
,z煢G习篂e2Y,w+蕆責"2壱8-Di幁轐鱁/bz`狚u琣%綰tLuG赪衁耦
2]j縳箫!瑆3ダ,軛X'/0g褗W褞s垌<y/鮕栦E逅経l/銃m臈&6joa)gY陒M?D脼蜷獃z<掦~4]J_鰨樗7C7歺蛰熅(W櫘t=窐n;}9p⿵ 77欬 弎
0黈貢K4~3:v馦藴uos颅
?p璤9膓J晡|巸灛`扨[煳5x僎 T	衫D瞗"fT+户朱慣颶猹]PWF偖<畩蕨詰cF[v畭:襛:
l仟嶤娍蜨鴊-餎儖5臺PK┏uU    PK   █)            !   de/mud/telnet/ScriptHandler.class}懴kA强撦黷墼hc祶詃J嫨
憖7蓯n賜蕍"x鳠袚=y丧`<舁w狤pa辿骹纣>彑_廯nG>p茁鑪h愀GA 跁鞟O@lL怔r|誸紒4繭 彪ㄎ龀>镪P 要
樰/鵱K Vq}W
卋'祣'楹胨'冚;m彊L竭q鸡羔~4斩K韁+嘶僴YI蠗顬Zw'僥洲梛'0[8瘽茬rC[媐﨧猲I(X!鍵咖/\乀?:r驼\'娸,淔艬3q-(Y樎I侚
厅!y谵u"5哻_{RU(I2砅lU戠X鈒箟H 芍Ц嬥趽嬣b覟岙录燨賍 ls勅【{杤4笤.P)廦瞵駇dqNz'J/*B?W笮.}1俰覦C髼nQ2草%=-iXcFS3稛~~RiD.搤誉勅;D汀柄鱇%&L潇蘔[a}愔g5覽C勏#慬8-甓UhW貍U漯垹U<@逼<坪频 歉沊。翧Tq慟伥K浩暹PK黃撘:  i  PK   梹)               de/mud/terminal/vt320.class占w\TW<畿什澜"╧Y匲AKQ4VEiR瑝摌&鰀SL3侷阅趄覮稞塈濼邫s.獴~象y^9鬂9gN泏侍終烗嘆倊R?鬳oG(鰩嫻鼗$剧B褰Oy鶒菺旝1慜t)醙D>'/墊E鋕"鶘葁D'夵浫OD鶛z齾券D﨏﨔鋡"愂:麐餺C錉sF萿.WU"滺慼"n"1DbuC绂-澢<A'<壥搖濨豂绌刬:風貐HW漿u轒巛u轈=u钣y/濛謞何3t钭y濛誽?漡R嶠D矆衴段sA劰:?卲拔争﹦胻>\#t>R绉<O纾t灟笱:/轩潖%璹:/$<]玢	'鑭"$煬",鏢I(謝壩K]皧O#;ん:脵灐2溍g鑭&,"硥蘱窆|*髍澫讁呂+u轩/赠"漌閨蔽楄糧5:y澪雞綯涪x#Un"襆d-座
澂赠*澂Ρ為鈍5葬Z*?浫9.~.?徣:"缁麭"Q;朦漘藅緸r/к+t~e呃.~縑缱Q郁o 矐&售L軑妮Dd嬑稲6"蹓鞝wR.o&"A*笗萴$轓"粔躀.澾{t~麒>濓誽嬑[u綩琪朦犖麟鼆RyX鐕t䦂争c:滘炐鶕:J鏞朦?辄9?t蝊淫:E绡挈5澘7t朦-澘Mm顼Rэwmq䜩?9.厪u枻驩t?峪/屠毎竱Yy牝趨龐猨炇 &慨侗┘秈Zyu3./(晛癇	儴旰婒闌泞:虦晾UhlT珼)蠵SU[^M]癌橋笨
"D蔘Ъ	麤哕hD—1行TSW@鹡jn}Y訝l泆字5詳WW474謅+VM莶@]sScUe牔糰!6侁崄谑妴萔斪7(0衘沰lNk茷隂B, 7
'岯拯殜E崄&歚yc域騀j奤1
婓i瞟NM:d'L 鰘溦Ta涻9権嫄/+懲/
洃漧穟冭掆捈拏梗驤騪陰漪炮r準-莍Y奾#縛
e尪唺鍹-爘キ3 攲廷<眸敡煑MyQ晴錚瀷佡6喙'O槓7
⒀gP嵍p挋<沂XX峜]恄\T恄7亖:┕紥A鰱j魳孚姦Z鳖﹛Q|宷Y鵐貄lDN^5%弩Euii=.难u薻mnB谘憶Z祊QeMmn\~]MM9*EfA-n |蘀c-h帬茹肇峽GSU嫊遭 n&磺qu5杠U
DY∝萀袣Gア喞测
啶缞&俩嵏啾0jTy艗恸
浈篎躷ReE３)缫蔻俥5%闾绳羹5\=藀頁X埻"2偷U58\eyCUU襣幨槅曠-!_l迅	U|b豻u:'7T戩d蔒嫪埃	晛5蜁鼵荅eM9資鳻ｊ洓靏汤搤騼. Up&m鷴@um營<2殰.)U詯嘦誚5峘悙^Xh稸炯樅&褦布i-
貜X^E4濄u6邓厖T蚃o-7b鈒斢g'呌&鉬@阅i#嵫儷yZK淺娪|sSUu簔\U丗{禢b*豟離*/╖A,鮔q,,<^NH蟞o%禼x喃晆鰷趠>7讍杁T陔Mj%UU墽俍W])}I`e墒 >却j淂&!FXE
,C[▋烻CJ@H錿hKl;"Z萂舖Y轍]籔*诧8ZbK+逆u-%W榢o3G;螪倒鮾e团mT!:愑3鸺c83总b\参}&5-K儞k蔠衠貏婤媒`HI媺a祟屎艵u薈棥躕
跱h淂瑾欯m#s8k沶摨nk捰j+雑q徤祦遑([対TW誘+璍}XE党{\舥1U磭]b痜Rn谕挊殒甙峮-瓮瀉虾Y2鍈Oy?绑蒽*v禌懦70m竃"媞4Te潐t!視垪H7绎N憺D|T袐鮲硉W懜毟5l瓫ma7嘿V"Av櫅礞?瘢n3嶓Lv9ur憶-b1倽馄+辠Ш
6[靎K5N\﹏掷f格 BROd)慺"MDYNd.鵉r晏5rldC阥8A菭穈(捌蚸﹐"_G紓F:$Al7摵9'<帕1;肆88蠥v畭9巀N秲巭k蛁戀4<p罁嫝躭8<7+w豎n\6涳fv礇曎熹zA
 hM6篖绣偖t5nV<秊78l瓫-p貕nM峥馔宇庞okwamm!澘艪#.X7庣錻G=塽祏峵蚔捼8{<:q'.桻h鯚OM槟⒓裯'嬋遪~屳鄸凰皖dwa3c菿&扥$塡4洞=y$騁'&Wb蚰r&L-!怃i樏IY禪	c癓橺8v闋S榃T@濨^猗紎浈捈Qn塊挍澦蝧矺q w籟%1V2$CG嶻n鎔&﹏I搕渼鍠\R4楹5)-臞qn bJq歞攻x躽R備w沭b癆~鑜l-覼窋堏
啂2S4)-%K)8f魊噝5⿹[Je棥寧隤瘺澝J軷蒂橦谧+瘃J]%,]I{"僋榐c0fTz333絰b6WWzx7x减#軷7;YHぎxZ眜tZMg(夤罦;v慓兀nv垖3K儋t黏镈$曻魻}酵礙j褏鬡歱酽慵2l踸咏x3鯉万R瘁與vDar掆2糃hS劣她C莊烶嵅浻^k=暗8om]摲惫揪)P欓f)u*熼I凂6z赏啷:輍n﹪杂-F魎}O伊m'(A頄z裨.m齊V鯄Yj晏rj磲TKJ'*= 'f鶭哟+惺^j刓請;濉房,-QtUc}u鵍瓷r,8逛穤)蘴蛴J'崯剾缒Zt卌鲍痺yU"oQ韕糣i
泯檧讁nxo	c糓u迴━阜#>詋洕既yH$Y蕺擁9苯1yH国de瞽tK今獡覒扒qK$>n/=D糒残<u&跀}oMh♀鰌V钐.娣{\饽N虩6~阐5—)PK1)=m綜遝揿虂兗資YYd飨悟f5tPｚ
磢翃zoO4蒏菆瞒騿%糌皠瀤鬼閰鋃a<鄕UEu峌辍NC牪鬼r眕櫒鶷Q擼譖~V○砛)爌\ω蚴抒f业=_4T,苎N8Th`{D[嬢Nj8Q-W趲F则 梗}+o鄱.俆4@钎zS](Kh/訞7葂(峑)^耆XF56蟧t欻と=沁l+孽紣獭譙pTH梞1F!=飘X1yR;韜焤傒k验1.槳苵;h斑	囹Cw%邯Q糰绑ⅹ螵>﹥杳^O鉉qFH=稒/谔媥1螘j(湩稶{Uu猨)N斪$廑搔饋zW=N亐沚亢鷫猸^籼隁氷jB9嘻8g{●忑`缵C07_,<j邹K墶蚰 6]qEC Pk+(v	>q'vO1t镍\5煅8B挝劷鷿l涇齈0!吂Y虮忮Ytb3貌	羉D"駣3I蠕熦樷`'SLs俺僝礻犠羘燞F`{:鑣0鉎.騝vb}Xrx鼄Q!g④?B蜝y@劀峳N<錋r.失D葍Q!E沆讐嫄嚕<"B夠ir剩"鋦擥G(弶惽<.B.Dy<"鋲(O姁'!OAyj刓寁E逳9佊<C鋝奛蝨p杻溿郳9X钹|+雼S"p亙\鋊晝\鈆祪5:X鏯接蟁lt吧羏9杠N;+\屐嬚>琉Y F蟰皱9耝┎L剎峃4Z潲坥橆U."鉚v倥|8w2庑>Ft9~^鄏+H茵 >i K鸃Y荵Z珥莮晅ZA蠓傓謈/圔
孉n,X0掄t鑶`L!0Y屓o麝寛铬t孈F湄蔃v9r8>
[滖⑥跊裭n柋港7#vj)窣C篚皈︴Q~\~蜜褈溯1K$巿A$b'扏H"$"蒁R坱"掙7\\-愭梈3.貁+t暛圊+樣碜=W鋈&:襖亠-蠧蔝8娊忻Ｈ%荩xd2空|~玏赧[-愥伏-星劸-邢罫;樺 蘱p爟儼莮檲BD祌g(eRa&fRa澮V楳呝T楳呝5腑p 犅T8@祮雩漫T責
中堵,*挞,*蘎璖
s0
s0G祮ぢ乀8
餚5F覼 蟧峧亅5
鼏Gb獜懍痹j'8jシ鄅dNC褿p5N牎Z6й宯嵎(k偼脯6mM5賔b"泬郸豅襹5噩iM*稒xf庑\橀!)W恸<=砷!连S橤5;BJ懪偉$Yeek咢2 琇娴椨L虣)Y矪騦攇K譁<骞5/$棧\.Y髊.慟扷I鞼萔@燽-╖j"伜U%涂豧4k壨鑆低DY5k[犖o辗繰空崀汖楖髅2>X
+脟{殣髞涊 蒷tf邸;劫N杷v v3洳[疖耰霽(`妨殪v<鮲C	wC弲9軅0柪l▏9媛0螀鵳T赖P	7A v⒅-觯#POA<彽^嚗4困哜貇唂1栥9簜y`%:#俕酮酟v1渽兊8淉鐀	竹(8熐.p1楌,笖吽鴋X'|\社K醞
缌迭2笌_左-p翭6駜皺?	7&~娥a
扼焋vIn枹)俁g攞胢R6.;窴wK赤^鯤誴熢{3Ze癘顥n酇镹貜 敒嚖玑a閡8$丟は酫xL棊O恃灤;sc渳.洚!鱁p讑{埜胴鮴]$mb7`郅s-ヰc鑖+fK晜6瘶Z-畗p>8農Q汨醂!覲紇曫
r鯬▼MNt揍蚒d$鱥уN>t郗
缝瞣艕憦C<⒔c休 蒽6下,6嚔&uS駘=岷F'籱`jx`*	 貣p;#"跧=q$9牥吹趇kk鹠刂0lkxmms谮巤]% H9tr曆MQ&[k娝kmq檍漖<I蕰儛賕?淪蔚蝛卽toZ崧墋鱷匞顊?\T糔f賞m?霾L鮪	谆庚zc渮a終谧泇⑥ロ霛q⑥e黼M?n紉A斞<yz╚?彍5H幆檥B!退O衼'ifu爕錓汖;熊p抐4:I3瞳O覝賮5'i晤@筅4;屑$凸h^抐N7湦9蛵'i奬1邛穖=7辢H罤+1孅<С	P鏩6	n缷,葕F/博F柨柴尡RdＪQN纇捑-Cz>F捽0娂#萭1z|#牵瑴Kl>锫*x?V汕 熚稅熋Y績-鍻%黸V`5x淖J漍潝罦岞鑰ho佨N键婵硾鎼"グ[0鈸 MJW剬G0xE}08(Z塆血帰D(1v+v[齀F$+鏋N趕"蝘舏営'l炖精0茉
浻6侼鼚蝾pS卥霷衠黱L挖砍0幐;鹑洧9K螡G妛薓籓靻+籙>拶m馵	J盲嶂豂A鯤h!臾ナfm弊猡Tt煨YS鉕舙鰒霫舦1-敏='蛳l;Jp	rㄍG<1k3 K娞螁褥l22{[8麜褥瞤鳋褥磲靅戀;沦雲)尙戆孺嗢9廖 趄飦漀a?d`揉AI瀲Z坉皂寝4{狿農?炻抿f陥+∷qjKm{<$骋Z釚瞐!2]g顒N=躒:U-悅l燃+h.z惿{陜谎箎掲嗺x:,汒Yw迖翐`"蟙%?铠,V圏9| 凼迟瓅 {岀钵y7>烃鍯赹_燙v敷鏾v忦誨'籛鴍Ws畑砌胞霼酥b=t8躝Gr$风蔋锶U愵蜺1頙
.}洒"Fm冇;o/l	w昔 洇叢擯V蔛CyqB攍馸R桀蓠c閹WM8鹟鐈韮;1 \跕胇襈64 {yh鶴``鼝 崗>|2d"儒S爛O匓^g樛KOV驒皢下豠6s駋蛢y洍蟿刧豝諦?莯荴8f\蹏芟頖N芻d{紅H冚霢,剪囇峄$鲸僿Iv5∽`7QXm?>O舙呁櫀	掿諺4Q~.<nQH$圆mm6圗慊載j*呷屿e1 梼塎臽STd嘠侦,r畋s烎[髭v羝
=á_煎啥氟舓G趷稇ǚ跾綡蹾 C恄l煢i冾L"闙繢A鵎樲鹏Γ蝛P7}W爓䴓1嶔嬿b庽
^庎^嵿^忇岺%#R8N-狹hsuani榢s矫\嗋餴e蠷匮秈閉斬吰i"w瓟玈X0T:nr鼑jr疄fg諗\6?I訃jj畮玸螰x眨Lh_t
1@,@%L鏱趢i;&󳾰6u帣K:鈾巈逼1#蝢祀垞;鈏!+;rV刃庫仝憤惞呾Q顮轲棏覒/>駱>茢駽vOB靻脬s念坥"隼3{""魖0j蓝豐堥圓膠{萘R駕r腦踗岤5蔖薌\8q鈂臅5埆W#bb#q旭w%"柫f7:天K狂S+d鳶磹碣(,彠@${ 厫賜B6腟 E[渕 )瑇Ia蚮挗B褺抃!⿲よ4$wHqP笣~~韯逦~觿繄\翺/繄抿穨S嗗髂┲&?/蔚6鶢_7a鵑繄b-鈢艀(\a＾钉C{潨舿倖5f搁|菷{敪愯(鬷伓em烙8儾馳b/隅 阠枾-╉=&ts足-o糴涴杕芠鰈tt瘟鯸如椑,~)T瘐皹_Kx籢	珩p)
桌V~-芪瘍圾鮬o刧&x乷f0谕ob黧-靟緯侥繁w鵹吡~;9缁x繖я[x/~+镶否↑v>氝'褫~w髎=<緩_里鐥鳩 重削騼(H掵脪I蔌#RT&袂9	〇?)OI楎g鍅䴗紓?/熋_//蓻颦箙*?蔩揰獐薌7麺鵺~X样[J"[樯逹騱曆=Q*J@Y?T)圾鞘^r<瓶P炲_*瘯忴7失;+Q曺縐U-毷Q获_誏:1uI楀,99瀶Z騎話惂
y*旮惂=~欞
;て/硣癟5餻8滉S濚@K;k舺(wBP)EaP陫pm:匽汵鈉$C鞢佝鼐蹚闋N喧{詉 钎%ux u`[DK饱烀嵭菂巆徰譻x+齾&F0#G 贌+鸖oM曏軣i-釱f&瘌琐b晡kx`鹞0顚9'|鋽麁"鲄h9掑@_9喨90B沐芏0!<		鐛訾髴s{J|鋵営赜-v踫闉	怰Os羒绪BELI鎗岑旦&艄珦}'?魠`4>价b请0@TWD姬$紱碮榥留@硷c颖潝M,N螎Jホ/御榲a~刬=悡.(M逥>＿蹅М《@'孨iu拗dk剾	
秺\玬/惛G+焚<%m2O2覸懢:熈z`R鍜 $圦?旆璊筈灗崹暣M忇F';櫷饼a矫.c墡萆7坬L,@k壁馦*睇f5/門躀擔闫羮骥K3p4证N4z晫G+W'MB訦斥鋗怣E巩饤z脣4]鏱桮賮F水湇寝 縣t黉8RY+糿鞯6^馀v貟m篵vC*j濘(钝(-厍儔"ab'倝C妍嗌`b$/鯐J薤+ucb梎b=㈨xq:M'{%窫阚O飦'Y %諛釹5;i溝m汰8:卄┉痨0莮Ia衰:啠uqB辌鰮 =鐗Ab8鹸<%~,L5fm赒)S矐喉$誥>>*甂递{蹺A廤瑜娡-捅齌X#)剘艛)粷H麮L稉#	>vX>貛螙>蹇┿隊a~0齩i:LuzP馱懵拰Q矐Ey1瑪..沌膇嵡G郫;Ⅻ(缱;\r:棊2j凂C1?%i4橜禔盇EP屻幾xynY?9瓥径uq念澄+n韏;缁5;磠Ｑ'漚磫!b煹糎/.木@_め"驹盇K 5	?鷯(羭7\倅煘I<裝粳閅UH彥B:犭糽锟蟓WO熊渏dm!〧轛菼5Fm厏U^u冬鮖;u!娭Lj┙胀)匾搿栟掉	-舍4裄杊/Z岩釒啟0烖揸5芾j	鏊椓楲)7/V)语夦笉\/彮s3彌~囚莺h嗁述cGP/⒒稢3'軡覭尊90窝圇粱秊苎坰翎萻翎`茚坰T~I玾誥y6)皴x~-h摜沲璺厡vj︾C榠ノ3*'蹫J邝嫌際〔鎴琦桨в,撝袘5;笴肸掵A嶥貦)<癒嬀</*閲剫1懐]泺?囤衩V狕,}猷W~M坓擖F}瘙0c倫O铩A凙Z ):鸊岜G~)A腱:6,3訛袘	蓐孶鼕褭W3彁_S婍g媦lt姹褭荈g鱒觨漟K'剆%隨聄生瑯轖埄汌莭渒!m渆逑'胻胯x篯傤j[H29*庯掅凙r磨爗╩牱巤 ;#lT庳h筩澆蛶嵁pl促毖f荈m鰢~-Z7h蝟蟼0鮿0蔣C閣湈2/?6_vl凌"[褳`/gn郺f}%^5m曡鲴M蹎r≈贰C趸韮P爴?$鈍疂偖#汒薰Bu瘞▼g妶氏r贏
"掰9鏒峰0偖q?灛t鯉P鴚h"?担鮓难Q弮x+藁重2%V倨7塨&	葺'註咾	\w櫂.弊襐骎襩^沤聞鯰址楱啐o泯枪<嶟鱰A|tem:麰m`Q颱瑖本v-k埤F4-酷9蛆衚N>据[.腼穾/L鯙A絒鋠'竿B?<H屵#\鞝鋻7)彨?些Ow跓	@OZ鱭Am砘焛曇/絻Z0br芏m7i讆hL舣вOo珈5蠑6)⑨尊o61頣g=腛諆1黠幙T匡谤?跉W煴=鮙圉h蚣躕zm;耵抎U蕧惦n:峞4E#昱頟楖=堡犞-砝1槧禦湼 壑H帰堚ゆ鐫渣紁蠡预P笄WsBq粴1嘰筀9:偸坵h?郜れ<～蕮
繎Q栛Q擱G珁媠暿檙菵7b,E撿j嘦坶3A(/:膯k节qlR澭G4)^駊~+梡蔩劎鍂ˇ呂闱56捭1墡鋶ⅲ牸!d戰潷偛S剕蜮怹(je敡I翳隻櫱y斲弣擮塸9{;w0COt繑裥o熢J箷 &~x龗3瘴彸3.壱m]0]妜w袩u圛危? M蘕跕Υ?悺敵咡zD<\mt9qt1B薱-[蕧Br;鈽'.d瓘僐T壤.寥摜\#h宁+谱蘡劒|鋙礉(硿9+渭蔁蝙銠d键嶱 蟙{sps3UGT硗釺k
颔岂|Z噏<?曵&43)彬b匫>
鶆蝟ns炠 L嚵洆过蜺痊-NY曳a俞"蔊6圻`G"組鰕駬榬睛%V9[G 勐薆衛狁 <剣D栺憌-齟K;l閛[浩.$I!]*鍄
徽 掶煹'WJ荍嗘剬v嶸$屩黽 浯U峠鶬/C"_E桷焅壄⒛譜{'蔅旐3蝤c9/6谇W贉，韮玽匌娮鞵\瑙俒<掑<&弬t赍I癨"+O錬8>辌4xNo蒭鸨<>撶0E炈,箿ド骙Wy!/d沐*V*/f3%l禱术l避年錰,/c+l导殱'熍>愖睴宄蚬靃<觯紟/dqU緲G蓷騲2轎^匣蕳紬紒g首饋騯|寍=/攐喑逋|檤#縏蘼瘣夫睃zy$呗匪夫讳埒津砑E緵?#呙_楓瘅妍鳪rLn錩餺駻~T~*葟HL~TR淝$]~J2濮4)C䲢-?'"$逅/K撳驻2鵖i烖櫞@﨡獣繓螘繒畺#$&m抳K{錭
HIzS懃E鶧Qハ]%J枖hYW苁EJ^塖甌鈺霑e嬧QnV曒J抮彃U:)*┦SJ汄⒁Yy]棰紘襇鵍椤|T~Q|蔩J/UVzJ簀(j家GMQ]晘jwタ毊dj枓V擻u乺姾D*迷跏pu2R荪渾wh}R櫎鲸LV逿娫)'J夲箁嗿2K2[齗櫍qe(Z孯﹜攢諽Y爕暸Z/e墫≡h龝Z-[┳+K礢旻-Oi褾+舜q蕆m疾R洭*gj訑炒2e6[9[洤湯U*鏸曮刁磱擪碝圣阢叔诔蕰趮錴=V筤OP6)&=M筈蟃n'+埕Re>C侃蟅n蛛擺+曐綦;敉蕁}媟梸弐忁P鲨O!緦;蕔S?)D墒仺奘哩臼CQ龝CQ銛G⑵+廏)O戈晽\(/划P^q]ゼ婧Qy輚嬺嗠錗譣售#甠\+F蟂>(烡(烣+烥7*_F/S編^瓅紽.録魖彗+昣ｏS>垀B=鷌錢魦*赣U钗R%鱜Uv煢*顀"5蔧艹T坊\峲W猶*誴专^Mr煩&蛔;攃罱j/>弹5育睔睨L掰R辋A=-f:*蛷櫏帋㏕b11u旮&0鍸豸樀陝榰昴丈1棭E1W猄b甐缒軤螎佻柷<寉I募猇舼Ukb⺄kc帺醣菡ケ>9v姾,禗][Ξ幁V蠆]塵R蠋]癁{~斓摈啪燸{X$uC靜闡孽P瘝毳n岆2甌o4甋o26猍嵀6c嚭;嵒註苶晖F珃忨抸汉85>R[宱訴鉍u焣T}续S輔S6国纲S}音玂欃暧 鮕s9J}佻T_5滋j矷}覾6蟃6藩飿;韵顽/誳蚖妥諢ǹǹYiV7鮋誛=f欣╭k&Y34桿[諝踛謆񧋴k璮Xio硪;5徴猽趾ZOk^雃瓫uX隺褄Z焝>毹;^乙爿ZF糋藟铫岋ｅ誑/i勉gh#庀褾茻臺瑣娍N砎縒;=~6!)mb冥瓷iE襁j篷?k%	L+M堈't椅H瑕%粢f&dkkN帐
殆	愦	炒	s第%Z]聄><mi耈隍勍
5W%磈形IxT;7醳m]芦邬	 ~愷峷┣$i梴2濧赨1诘灘濺m厂I簧砎垅筕坳佴m箪觱z襳y炗n黾怡D煌鬂钝螅肚螳v_b敹'1I蹧豂?询=悩=8駎m釪韅b钓pb硋(q咑D鈔砩幕礸鱤/%>ń滧J獬讷壪ko&井N|O{+馭眄/橒楒Q挰}滛夦i易趃I?i_&}7.碹睇$韲銷诳;kG摻/蓕確3颠拠h'誉L晐寒&楆Zr嵁'纂誾t=!輷糞OL綞ON蓿$疯掬w磸捒調%狖S掯>)﹝癁澮_螴L9]2M螹櫋煉睝淩й挎~栤钄4慃楕U	q涎弙.<{cz5(~пNー/鞽)撑o7THN櫸^FN僓,娊倁ｘ@枧^<楎`|孁(鍟鴽倪劯酐倠0Z賙裙M縙 鬮*樔^G.謟妉.%y9*\\b?i斷twM逽8^zQ~*綰jH圌S/暶)ir:?vTx\m?J?m袊儲弨X}$x粲 M>
z辏!C/侜8Uч鉦,鈊}<旇"䦂ぴ1揼0挏无MJ/?@玺 韤RF3+曆hN麽DqJ45+TNC匙1}W3L3{篕藅砱Li檨Y.滬	"D={"柑炑薛/羗訃祶X訔g鷨!︼郁潔`>@7}尮H=/!阳Q薎 B查雼恇8B'硔%B=恌B+Bg雏<.&霥鑚>滄3&殶動搎r
NM艍i8-&e4'C)eD褎歬碅硆4儗k囊\8殜A4&bX4#^L冩1<4#&a$2N姂B30:孴緼箜ltρ]h餏W脣礇iw;F=2屜!韊鬊谯鑽4軭G歛d ~>Hd簙F?F&隐F$ べF6#锧,>4兹Ez妐
伊芵!HC憺j湂t楢v1c覒艸ぇ癣2騢鵉>已苃F1嵄H銗匟O7NG:弔1镈c"襂$嵣H媽")HS臜KぅF)襥4び嶉H0蜙!漚藹:訕塼1閘c69臖済衵*7蕬7#0*怴带nc”"c*
閎c1%ふF5i璔嫶唯CZo#]j,E赻4 m46MH泹fに宔H藨0V ]i珼菏X卼当闄茩H2蜝浩X僼洞虅矼x婐$<讋/	3#聈&|Bx	^`搂氿9酔&|Ex	_^b剹氿=醗&|G皋刼/7醧+Lx傪J!躟耮刉欚$嵴&%计刜5徇勛欚狨&麱x	7氿&%躭臯7&n&躡z儎[Mv6>$躰路;L鴫p	2酖聸Mx欚n'#蝿[Mx橉6硣Ax		0 醤迚]迏E剋洶燄臃侌^q扒鬩Mx8臠+8ZL_9a汷赶鬗#歼魰>`*4}S鳑鹃L遧聝酑&崦恻5釔8yMxD湣&<*Q',>,qG3>7囸)7楌i7凁覹B楂"鼦閇@鴾闆G+"|留U緃綿緇*	_1}耊M_醟︼伦M逿7L_1釠	醓臃橉-q瓨鸲窹Lx囚]D閇G鵀榛岎堥粧饈q灌6	?,聫LIcS:D鴫)夣螬)=F>
孪MI/L/M炉L6炉Mi/7f.勥殥X走檼劫=凁郴x?娀垢痯婋7佡肒伲/&麶賫p	vO!鼭4?填4絙匥嬸o臃嶐.}见 	1鎉 崇{撼仔:)Ng樝賏岘寂}嬪龌PK&28訛6  裡  PK   梹)               de/mud/terminal/vt320$1.class}昅lEc飠硗B0I[皳P-R稩益@.儇C砢餁踮m/!鈧痋{虱GT)M%剒モ詩侙遷P艣善v摯<;锿槛{晦O飣ta<嬜tt"儊AC帒锇4F撵垘8︺9<(帇^0︶%唸縧WFzsE.讑i焮e郾J楹扈吥娈82黜厪蹘韌濰> >5蠣L笶伟7g;黒慕笾R<9穈曟-v郥D
`0矌媒⿸U璻蚰w?b%e斴Z昈;茨麚狗暥.鵬^鐜熚藆1)厃輌鑬H詵娆情x襎蕁懖`YB W
勃p%R歶m節-1&:e綦寄-)は5glQ.k8,v杪竵=孬釀򷭾p
	&1e􇚧8儣5d溑+r騂8'哤1K輠 )*y穵'奦匓虞寵r住8⑨駑j缄细艹	QY琖駇Ge滼蜅pI"黧n褈渔^U灈葳籘6箂9J%h6欄	戫橥熅佬!8#兑撣黜"寸~ev檦W訩烅S珍耫j	z:!钰n袮簹厏]洌攈朅埦>xlpB咨
酫#鼇蹖\&=h碞裊DE贎弗h港m狤褟}Rm[#磛[ōC
妃聨蹳み4WLs枎鑺妏h+Z`猟Bfl]fb訆琭'槢壵~S[Q/痜剣N6S倘茄15畣途髊U1hT<崙}楔檳覆庁⒉(惕ΙKS耪t磆%gD錽t晁梮_!叝1唎惻犯颬厉ㄡ紘牙O笂煴哶!~-鼏O鸹黉预y;爄&衹".釯殔Ikq堌6px
*E>荬Po碤oc却侅n俓U瓵3>W尊Z[=mQ诵麵轧"jP"p髂宎巺c)3锊辡Z〧揟# 諎姢"鹠,L9蒐fR!<#驣R磕]MRPKv鲤E    PK   梹)               de/mud/terminal/VDU$1.class匯踤覢=嚫q洞j閰[I鄞uR3 E侧7瘿偃q${
	鶲HP$ >
1隖厙 +韊f蠝sv?~~G鑨ㄡN7p酌=荀皡..禲蕴P绛GkaL粮C賆*	稯戋颯3$~猄m6鑦$P鞱bX
uJ瘖q煵7獰pf%T㎜踴柆Zy萟歊諱Tg6	场u強軐)5慗
UzF崩幵T贶4咫噘5騾岾M岪P飔Rdz┉VhK$貢X@軪Kb.$|垂卻-,梈	^鱃4`渴:7臐`Ь趸鮫韺QVV缲X躺加i<9畆踶孔幮鋸Q泐<W飓x鱜G単掋E>sl3^+D琊*烰蘉^m=X怏
薠-YЮ-窷f\搀暶K8棬箪濗玮Fy(9沉Ll5焚翻鼟rPK] N    PK   榾)               de/mud/terminal/VDU.class<|擴蝮史-剟&$lB 覔P$采.!抎鉬C皝)灺/(6洮`锝w限藋霞镗o縧芽克{37o迶-鼬秣E枬}掐m0鯚媫>＆烯鴤/]4	O悲盱$槿稵|G坯N鮾	鷫姛厞P+モ47*~БUC
$
Am
莚v阷P幛翬mIv顅.瘃幵厣艙yg闕!4晩.剒郵	鞦PwjK＂^闔"儕.笐鳍"撔4*=;|@`_*鶴q鱳獠Y>琅}<哿s\| 溧冺|娰W>k濳0N蟬饝>柿G;x緝熶郼|瑑弒瘃>亮'揬紑TD興;熲=L%d蓤Qq2∮]|/&h&A%"俧SQJ;熾0烥醛v>峾!璼殝熚讯誶*4	W驤.宰\BE-E}嵴x厅倴〔WKE!傟8揌	j"釪N	ZN鬡匆蜽筽訲jYM微bk楦譗q秲熴噻穨?彑O衵呃/犫B殀礭爨ev~	楗Tlt鹚堩薦
~eT	礯E姓Tlr駅撪~-譗睓-T鼉V貧向嫨笧埨6毣=J谹貛$緭铫b77壶?y搵镝77釉4|+%褊T欤摭v~遝缤v蘼O+d2r]锗襀负$
Bu]d灴1栲h乣Ec6MC\
..歐4sN)稙藹6T2琚舣.5T囮悿!i`9?M5Qg豞 湑K夅眕a儙%傑U4F獃{E銙R郸縭拤刅L7襊雝	U誹$TE]ufr.聽S孍j@鶔Z]6憽Jb_q|ju 	<5X]	%Rl賻 レ玴w鍪苝C(<邉蕡幞:嗴5潦趣犫19二琍碘拴(0姏嗍péf?苕@JUk?L[jX聽菍@ppmc`p$.-浂5怱彞Ce&瀰A%!+!T	厓m槢V氙
鈢M屠_+&斐斕(櫧x	%礲&欿(7補
N4刯&欸ㄍDGjG唘t驍钮s
I牵瑜協$S(N吕K汎$马鐞l詠┩M炓F[嘗!我傎%3f,;徺KN潐仂⒁i,橸勼Yz'椞渻G4砫v衲xM8缥,,=c痛M9痟6關jl唯n雮x=c棧f.饿#jBq坱)6璷耰mG徜罸盜轳摝莦I*KB晬磊dk?NpT勯jQ荗葕楎鯾恘tu]pfcmE0<莀Q$滋髧	7edi5O籟伓墘溲6:2/V执iq朾<詼%-5瑎\妴茅?%+$慐%搠堚4!.r╧誁#挭S$篿鯈憘l菮Q`書W凎賒h`碓s-f諲湔T;靲-VC蝗簢嵙 PG湼碱Wt3fu7#ふ=a奤汯蠥臭:怕殴n
C+牯VY塏+开l%K斷臁殌煨R&焻鍑φ+K#%K&E++凊莜浾2悏釥_獈鈒-%;Z@诗32矪蘸蚔柨腊2K眔劏'T禑5k@b_隖阺,姫t1撢咐NU-hL銙%涟頨m~4な问P覉?魐R雱d膵昸6泩姗-k斾hΦ賻胻gLJ	hz淎3$屹q盅蟮8|vh隀K4嵉u蔵猞2>N箭曀陚MoI殯葔X/覱漫t0毖S漫&(E繩悮賉i(訧w鐹晰
Lw|	Uむ丂榣CcXEJ(J%搳緈2覊秇觜j抳r+骧i淾;Ucy恖2&膧'X筁%-T鍭[Nq$5$i緸$録#ㄔmh駂铃扂蓾χ蛹N鎒R渃K焩!!障^g暋Wg&++m隘2m疆蹭3KXYEn僼+︷陈A詖缴塎訉7誾c丸穋eM袕&軐掼耑.裏m凈$戳慞]I馨=讍誎獌$Y雘XF驯瞑桽勢3+/"P鱀(`?*妳aU褦x+鮦U闯u阧Q鶵B#/ZY塽⒛TG*硄雫卥簫A
p換菋蹎2锲1嚙唭(8"]#烚墿菂<碏殔p<曃踽P%n0&A'6}傃櫃n崰z礳B砚濙袍剃d,狒Dtb菫v蘜]饟j6R#拞淬fF拧挹+e琖慾杶<􉡱FL*5+儞^:0lDQ琺锟涍睃7織蛂髢a罠覃癭爿純1杀#7哣x菎唭郭a栣fC豍7B鼅*犫A*⑩a*	7K''酖蒽\6瓮627;弽u驡鵦n8,^v3"_霈浗繼t/<^6$
8TjW礇'h7ｍ麵7?韱哙w7粶遍nx辮硘⒔嬳v硴倃=7|B宣饋沒嗆噜蒼V舒郭3黋7嶥5煗顔痈O悐彣^f愼gc(7灴 苗骵吤鎶z檢8嚘.潮>呶_t髼8襇8p`妞)觙f栁橷0=s戊E欂j绡根玪<.S40~^鮴;獓&涿翮旤k黸*轅冁d扮Mv坮凱齒闯9檢虉0B鎑謱迀p(腲#wq圖‐睅9
譻lpS:&XW懑l觩+fk隝L陙&澈n	絛(陕郬;送遞K蒺=澩wt6)恚FR摫n>w體n敬sT劘X郥:|M袊}C渚モMxN淿#偢枸t<	药綜"恭铡U(9#7bv驩鵪かW根绀-,靻'7粌V~搀/茳K䲡隑紏每u箫鑆}O?蔹'篕?#;7暊官47挲漋 碪[0凛Bi5*q驰p缎pぐ呀$任箙5b鋪[讼*=4拞e戬>9T#zH誟
T7`贗C(+1.渘幄kv;lIn4峮褋妿碾#霢4恬陮澻"YtFr,6.R"Utq糖	鞪hW昏輎旼賰n廠OR2P
9l MOｉiv衙-检M稨"兘i=茛歏戦脚	n褔榼毁 6槮謦﹠恝焄溔辸孇X镑佧/▔UYB吊蕶龖浊藂|吠 凤碄~f訣,咸4lxf類!C=8wT鎼样脝扽e响!-歵寜矩O榫@S9闝$鲫q0=T曾)X*要魜禪翚J騞n澈垷沧U~
窝";;XG薯Qx梪2頎R*L啎偺D廉叔p耔╤F&譜LZ昷
砨L8%z['朤渷Q闕4)Z6VO1轹"簆Z约晷`昢 A-=@%h耲P 太#:gi8碆臻T疭凛	払N"B須t'亅yq穷uDB褩帢襔扝7詢:瀅*=5戂茪斜^浕$j'	P狤镕豉2]篚箋V耊-慊墎3""rb话(E f$折0蚽楦$Nz肁#盱墚[O瓠z潚曕}O8X在<逞_"哊R~$噮;bX=,E:]栳繦)绔檷^烛&J>j牉;璞!k9膮+/橾瑸'榈aIBG]4gX”▃FR疉I!鼞!cz~处撈Z2,+具鷅YM-z{IEC0紲N揇T\B﹡X"瞔z蜬仆Hy逾cZ]}c膱)}-巈●C瓂惸◇酹'嗰魝躍J话@嫌+寢5堕顿p#L<u帰^躕┊7–ㄢN;N簒渄騲镦6=醓P鳔?昞G魑韛O%/|簋0侟娩驈飡uxYp暀子7乆V顯l为z#樵mb紾k孴V蔸}謲潪鹋繏7灳瑓I{~蹟8	眈綥膰$qio掹1/9碹5D7<O噂郰i<弎豉^D%x倌_*糵忾鴩)渹1
W5F塥4N諛末3Ud'F齩￣渊1P5&蔴讪1阰嶛;￣蕤0圿?5f栖D諛G3SU逢(玍5媸X1貴iL嬦虇篙;wZp釯軑x馧<裎<\攩#膦,CU鱜]-愫!掭偋!廾倇觺鱐u雲+3啱}鯉埙	q凤緌沱艒?1n|6r釘2(Uc寞>鴆鴰U1aC駊r[\  安v膘rq7h堎赻v w(诿鐲-9熋哻賃F<醭嘰60妽肿d58Cb邒圄蒮pBRp7C焗啂>潀蓭麗)巅爏i橠(EAB
!訣Av<
r 訳A稍軲┛;佂怓魗P狨u侓栝絴Zd堶Ρ-槨阋-星缁姻C運殽谬rir滆芒?YDo>S*罄冨兏覼pB篅#趥.U至.8咾(\徚&x稜%賮禿Z捇袔軓0趶丘劅F获鸡れ渝gJ鵈zRю" 3x憤聋/斾=O涱b*铗 R睧r9 c尰贼 轜媏闟膛R团R嵟h塹搻5氾%螶顬潃颛(幭,殊2)撕矊7 舜朑;舆爺縐ぽ$4c谼冟|性仡賯嶳$;顔Ar銗%,R仰u儫-lw7兕&#X”蔪麻7碏黆垄f瞂&浨ぉxL喥-,氞4yq)漆8賂C渓;YiB沶,q3.A?M*魕I箇08 们|劼"拠#铀ss<材.[`t尰窤`=!mb&诹Ah⒔+`}访5MnMnMnn	殎m9.f3#H侜緡遙r貞f鋚 r8娶鄡L橽2竍瑒旺p`蔶P<冄華䶮驵箪轊)WXaYnLd@Q杚9昭#坭3q7%笡Y0曂唞6V惫_m頻倒痴鎵6O|祔獬M涻瓳}o穅硍'敹郛U秦7鉒忾x!骳	v@
,sY琫g繤短r紬橞柑耬骜枹汹唼伕豂穹-撖u狯吓xM%Kl%疖 W鋓M型珲h彘=屁骫1弳.q霳鐻}奇w淳g賃`cWC7瑖睲姧q:eK)卒)奏 ji柔|Vf9羛&焀$婆Kb刭v婱v槴:訸LQ媕疑jE-=到H藖掸F憷娉呿槭t顴廗49籀2:][-猇记詜]忧皘沈5慻#]统摢庍	v	灠譿腘p離z(&坝<1ェ廇U7ㄙ悌=I璩&936CS呵閝v僑誧=No ]喍<y緇8夌揝腆亟錳RD麔花Z5k+帀O/范k":;螚詴5裣te鵱H2 2鳺6楴b*#药@ EKH34I4h
歛$祵l啟&藬睜F剨*"█c潣,4 %]潰杀莮鬝憄)膳h8⒚靑4sでa
0M3圸>蹄@i殒Hj蝇m趄(蛂/J殍軿鹡>;aJ衾 尺k=kik?蕎韲))S[`'c濇j侀勌B13SJZ`INI櫗脜稝i踧s跋銧Qs	r&3{襥醛x崢0曢pQh{咜,"r殙嶩4鷗霳尤E拭諵)嫳y&(孞/6+5迖匆èv籎譪J霬哐z葪咺Y/Mk哘83糭c&嘩]$DqrL姲"!{鶴!淇纃 b*=饲裑>壻肧袝=	3袐=嬝嫲壗妆7爥	囏[{>a锫o靰鎍瞾靋6寎缕癘1$麑-`煶*嫲/粶}6硂.粫}伲'&麉矫>b库屵7瑫3蝭
w餹苌掣洀FlO宄yW緞咄}G
蝧厠濜p褝銀灗#>J苁G嫞<_O抆>F鲠沐 >ANe迈糚.鏓r"厢S邋黡箙蠍;x奔浵Tb5fh穑!肁 ;側UH7睧槯I*w才(i&繁rg僞r3#d嘐r}<j撿K_;辽a,憡KW)荎豨I择2忽苹微会,\T5a丌\|7踿鱼.T籢#^搧橔脾砐澒7&9
|>$愊O凒|,珏皯鸻'瘈泍ヅ5今^C伫罺^緤-5D拰釫喊鎥qh!-_8涫穳<{潢幨貜荖y/泩砬l]oghc%哴樨f愝漾/_骇m﹀=6@&o剘|9J耊胐~渾p劘叧)沃y7骱茖手楺V崘P**筘"w顑S豣鮮3f*叡j拓阇#+
7'A瑐鲡婩箈洈暰t3n抱=#殹">逿7 !J"/~	溛/匤狙rss3c!cрh扙7馕C客鄪噜WBg7枋⑤体罕z蓉,l,扥)稚!P嗶+i寋'鄾-涉;A_m0;鸥暕撵刦O糔h紪[:<<庉愳3/譣9胦勵|d饹P7淼lt姽)fa	^A七坊}	_A'祷袢и暠	镙妮螺輫换w 铑A茌C琴輮劵炕頽a+彀譚$RFＳk7劉氢2壪$lU1縎G騞磻.LAHo
磸 (9拢o鍛嵍r堰<DK蘇"庚c貺HE9H逑儣 Y麰羅倱x_ 武J:l鄌%麺競尊丰F苁邇竾黢,╀a砋瞏凃|F繨妁&a昹2Z,v枒J甀xX駠鮁旅Z沺raN^g阸刃泾t#w玞9贤41咲Z擯りm:
]褕y叞鑘S<賳帪搻螈8螀+!珑歰够嶔{栂椊*刏`i3T#疥#酎島騽8)j殹 霘!D{;昌O'驊.
/築cEL=燚x-蹪enw桖Z|^眪3架=漴炴;缿庮T頢奢n4楱羷靻B
萾尋] 簂3h挒瘁oM5&軲捛+R懾彊Y[茧弳1復掝癭G.簤y*
#酠G镄购昁WC8b!貥PA7陦`Y衁41z!7C![渎1c</F律b4H肱X貗餫111	^饐(匃E|.&脀b:尒簶兔(鸾馫`<堠.)]=陹J</伫阩.刱U亰戎泿血q轕'灾=噵拞罔F涨=聢2糼,zd3Y繁宬smrF尶9-8L^.:贮a耋	鏮l>)5jx窢絗蚿ffY!\鏁彐@鰫GQnQ}D睤%`n{ 荒8陭3臕棽k慟予欤xy|偻*羕椾E]&{詝藎`y瑘1詴瀫臞*肩玜8F	腌卵&SＵGe:嬎绦騬=4/>銡07E眵f`!绗,#}'$#jF捏q1$婯#.匧珿垗枃<搹<骯.先籖爮RXzH杰:ULb脷:A傿u琹乁h鑆菬收璋7A姼睐垎媫榍财脒R糰0蒇=U刃$瑬-h5c蹑芅豹ユq忠A!:S撷3f就g|奶酚笮8[9毮eK唌翇 鄎萺刴M"'妸9"腺/y.#{)8蕇=蜛yI羔s恟湜o$蓇洝')y搴-姓撛賬魎螩T譮櫐`踛P4t3xB掜 '挺臼灴:#┩惔昼vベZ`Q般癗i鰘w-邽鎂垌`鋊棵[鄠宛Rv毥.迢8昘1s(A*ZF`\擬t/$賟4覎y墻]霫抑a
nキR葳劥欯F寡EEy袱夣j花荱><9S歮蹨9梌p4]M^跾庐A灓硇@.嗓蹶c誓銑Kv<暷踀浌T婠凥尌%ZH鼠滊滾蚉_'~8<桉譨ロ刴Wb訸贲锦甦齴l舾M信@b9/	窊)塡杕0e旽R壌厘u;䎱'B皞">P鰏FQV]JH=﹝iI煘尧4炴9j姭gGo府癵佊抽B"簽樊x\!x媋L6*p 2撮螥[猟npfi姶罆霛缰諫敪备僽磓[塵0Fl区b'0靖朻睷#鯼渜\.n哅b/\+n=6窶w夶$F8/鸲骼镶^嘪哺忰囐 q?"f;Me釷v巟淽 瀈腟彀x殐x峸l$^狨綷妓痣徘黴N|.R7"],才廱带I嫙臲饪<*. n扲*毮!$>棟镊2Y黈v桚e-=r撱d9Yz.y%肿6馞wD6軀雄萎dC涍M^漠R巈<揮Y6鎑9梋ｂ9r:;薂o糎Nd"d噅┗'麺か'\7半3aJ8塘多(唕闑讻硕R<&*嘑<譍\b笺'Gv鷲)鳄rP3r噪暨氄鉥4'嶋$俉梐薬`椕-G@禾>r$魲cag塆啗.w!7x/(沽|梚躸钿,袖)疃/郏{d甯G奮鲖盡<N青伋璩宇织豅7稁[`	y窓使I齏A'杩陜>(&顒箬铄k裚-針2㎎M6U赨镻e厕攲m菡瘨)lP衰┣4弽づ$梟斯蠧蝺,2葢`╘#錳0NErj襜)薗忺x韐`摤鞇躔Oy&鞎a'#枠~)积茐p竇i
齔z罸J% WL燣F禨鹏滯1歲r8弬玠/苀Z-迣轄e茆嶜E刓佢:蔝杸,黉%欇hd伸熎{e2k2=&鉲{<翞僷u橜C博8q4.q鼣's惭	d(搱夓F扎峓翍#8阬 9}绀.湹郑蕙kq赯褐槮啜K0ЗG┑9$G借鄴Boy寲椑Ty)炣F伤醠y\*S皇蛩=霭涐'鮼豝8魡晬V嚁崱_V苈n5N鍮臁;8c雘荑m#9眝鮷7j涎鞫:顧Bn匱y=t7@盾C谢;,}勆LAt裲>砪觊 紜㧟p嵢3!撼^][^枾苰め佐:l甸溜衱o蝫P%祥箝駈	脅'尰狛fb槶?n繼樗P*BЗ织璝蠰瞱洣钀k騖啔訿勳笱匾*f= 9舄c柞竩Fg葥}爽2&藂直&肪h櫦ｕ堎倡佥0貮"驳r7d膱>i!搏醢z襣蠢4_g稌0轧zC嘟贖⺋"鳈疐M 鬫丗s6[郉怨洁敺B'y;t晈犧韮I0S遢P"飦y騘◥裖傚>8W坼僷弢蒅郠y^悘伦騃鏀O,,_`弪%v緗呡(違肥7Y硘攐硣;霶>{V~擂睴錑1k暉p.跨vO?凭泷.Q滸鑦輡!t噉2> nqs;郄軂'.賬eJР'貪9氭0濭?忀嚔!(洰瀃\洜瀈掟禈*罴Dc+'崏;c崗Ρ鬎砳e#铀踻≒I迭c奦"毉q伺/1劺m庒FЙ脱?愢恣畯{:$|涊撪徼跳蔀創5擑y鬞LLаk焊喏猯^KZ琛y杗Y#覾 ;攢鯦 6jL瀻"Qv穰疜邘~抮櫢'%瓘ELc蹃饹佚喬`凣鐵嵽M瞬S$曝C靉L=%" }Z|挗挀蓝-"x茺诪.p姻t蓠鍵Dvd桀瀝鮶A鶛r舁慻Wf杛籡凶ｉ疒]袧 弆V蝯}蟈郅諩砖F弽扏椙钛禔G_Ⅶ閝	]碅ㄖ僡6J础嘧r梛#`摉鄣Qp6鰇c鄜m,&Z″与摝4蹗`\l %癋Y
	~8CY
 ?;A蘥G峅瘡;>!聒馡:'L_ (贳g绑/緕櫴=灪E=圵╢敪34刃C嚢/6ざ 哇B日義m1湤暶R说
X,as宮z≮8隲榤5灜o漁芽[皨-a膻v1钍v磇鎨 輽韒挿}緮輍讓羀諚﹗9:}m%:脄劜N*5P內蓬詇7b*:6樔C胾}粢達堐28#M>3e袅E経y$Q顺繆-@K聧eFG筘Z	踇 s険1u;d耐M賑\/櫣钟憔诵肿@_N谊`俈Zㄕ"P-噲.蠽羥趈h椅俧m阎滤谫鹁v.澢鷋绯Y趜禭劾Vig硧磱b򖵨閖訔9j埭	坷轨)2儆谱攇爻苶歟|x霣a誐賥猛蚿摨靘仦饼╈KnH政n弓f鴤衧l涵蠜詪⒃oE阸壒v捿f!iuLQ/1|捈n;7!鍥戓角d8[Q嗓迒aR廹鳱$踻L唘/隥鉛"B"8g蹽)C%炨匊徇+盂佹峎"鰏hRO-勡IH箣襆Hi徉> 詀発!0V{N丼担C韡澱摉]E蘛EL;鼕公媿]M$9亼传綀袽<鸜	岨鮛殥=pw擡B钛Y7.G証B_芀*誢菋&^し,lM4贇h蝉*{-憊捏;Q;頚芻点砪j茾E齯搝 B犟隈掿䴓凇搢兘i<`葢^p伮╲孍賋﹡;@从H瀓調帼韫駺T▌<	<旍D幚镁隚H褿鈺醀旚Q铱·[a湇罷泟2йlPa砙6Qin栚嫩鞚Dr9妑y幤膳翻1澧b_鲱盜>杸d2掛|掞摈仰*+拘,4D}鷛T簞<～鞊q*kv毫P[渄舐[1Ud肆>43媆y&埏D"w聐釴鐶k0丝0嶑<董a>R<|(a0hT4 PKDy;苌+  筣  PK   榾)               de/mud/terminal/SoftFont.class晿]p窍zW焇Y+226-d皝钠	凄
Nb,薉/B6BL2a櫞M_毦<d<!m潤ι0肔陂洎}h4摍栕檀弯ジ鐬{$+h4］粀鱳鬈s锂臾Tx摒B芣pU0顏-0醾;OzqV='="$\p0顔屿;检哤伫U/L兩Z濕BR*7鄠2.楺;Pt蚬羜攁|胹倷/L櫣4‵蜒柝啬戓IV(嗦蚜	躕:灏#裞￥镍v藨辽Av)爀骝俢g妥涛69j.3刽驰)砢*牉>嵽滮質0楉S貄x.昖?柾_:&0蒢*P;64sS鍮朷婮0沒T`隭*輞~)誝H/溝嫱\gl.S8=a廕縌假棘艈砻О>I鯆X蟤+X镹-標贸鎮M韡鎟◇貍9?汳.庘噛U0評6汲傔
T%椯a),)#瑎W蝖:_X溉FE蛃f~3g覫r踏╮憞y[桅
X鏴遒tvf軻0
V畸9Golni!>歟蛏!?生補7霢6SＣNhW P3:`k8獵侮pr.8疌h(閏厖l~fh)揑c浼,f'噛咐Xm翠
-質婸p翏+p梩x.闳X~*M-沇u~	/抵t豈:揊蘄焘b!}	sK悵氰0Fi<6p汅箝|J=錧n辎<XBFr譣樸5
苑[u湓o秲Kx瀅弪枳詽↙旘磄k;浰M<岗"乂苓B3x`+4嚴vh乞恫肭包鱗高Zv乞霾栛十w3廭柪lo聓橚x|镣
>e'P書赃偊霪Ad護@墢蕾原鰘.v談鐄p熂(Mx绯紼}=壡妮餩7@晋-t泫狕t恺t羄<蠫7霤/
衾~衢=裟vE郵z>椂嗚兺?咑7狌#饉砧Z瑿M:鴎,珻`jUtV#蹩楔迖埡C窱3G-/釄晍)~ェ[+4<媒U萋嚹挻痔=S軽衝5V:怎謄h5軿OK帪轅衠.h\泏t瞓 ~哔驥涠抇㱮ょ阑j痮2jS*W}蚿踉赎蠣鞫爚-:鬓tP<k覶'n>V伔"鮓u%扛闟偩`嗥kW}鵾j儷唦￤/Vj/斛J5鹜Rom甭鸠鲋冫
>h,Xgu鎃倊N[^禂fy栟磈丌樾`稸5k8AN聜 +Z~5秉g喛k鳽kh眇「礭J６[侃鞶蝖軯ZkS.h=JA耄D羣b/K牊M朮蔜Q ΤJ,iT:%c	嚂!|U9畉0杙$JS菊,E潕脪Z宐締鱥渗a(丿俫Pa巆￢賶龔a莛淺铛I?跚峉烞CB5暨;Oh;瀙皟S'\苆<繹駝绹xr+O |'/FysT俶p貤读aw8噈asZa9傒绨芅n2c}e尋"壬A.+%nR;╁1.巕[1}s0}e~隆BA臘2l哣翍@Q]9c烊XX鴘獶
1捬OC'猺d歛痒萉YD砕汘{|`w*N?;臱璞uE&淔唋懎!矔}y芠炎铍铍S縎娅Z 隅g芢d蘋妻喟/8麄鎜叡t烈~剖2骮熨狟P垇|涑1>"P伜4-}们CTu叀拕築$剼屺r詍嗱斶
Q杩$V?忺=瑊D腌/KC4贪櫲7夦熑6瓬飜炜饧7媦竴鏯，!g遨 c7紟"`j韲(襱暍"L04迕:+(c
扈Q墦)榸!洶:仛萉憵姢 f,蚞!9s镄.3R 5T轤貋]!e,>獷7[c缯獞7$H★9c5
NcN╨攥鄨8[g>1zy"陃鹢摾4賑3]帣&L譮L忱4W+陡	s洴佰|呡&@垤鼶J,^D鶧6c樓瀯烦睓蟾<n)>6J$\嬥\摈c膵=咘鶞/孄ER玿v俘葰@a騮漙aｋ)蘟)嚶<3ZX肄芬釪籌8л$Z溣n-蝘7m护J[&赸-s赸-s赸-s赸FZ貧怿L饎朘?.鞫R枸a斗l耯	px/s祑'廷fR辥晈韉rG樹[2鵑7裣A疂	:'WDl亍F=期蘆邯絛屗wK呬沩\奘鋥*.0y踲捛3R肥粀X<ix<ic啿丢U歛壭" u 漻菻P譭圥煷戟h6奚 u褾#+[絓掩 o	知[%沄醹]`騷R~趂钰,彡#6l&擄'稃ギv抶絉譪#汾[L鲾皂遍鳝R縸R譢)y縊嬓-螲P跑'縒*&x黿魁R#r`騼2N偃)屻<#儸諃l5i臭M謏;O飞碘}+!t8岾嗎發湵蓀7Φ阞裛嶚攳+卭l詄瘪55^眊r8, 癸7糀z恗/锕Z憇9c3鯗m嶩&蓮Jy!鉨r烒扦<]i乴%G<3撋㧏ュ)藷曭塉{&鵴)廦逾}L氏=犍A亅N氏V|:昈芋2烞晢蕎逢z蕍聁痆e麰鐒\禉斧L0!颶(hA侷!x悠!
<繹(yMS垿潆忼;琙枆i7P辇绀瓒鍔礫c恥郔8aE佛戸璳灲u5椊玁覽讑蚚W侴#躧韙緂湻鑏j雩瑩盥泱鬐PK(    PK   泙)               de/mud/ssh/SshIO.class峐	x[毡灩鱦眧m藃鋁
p0腶K'1眂遣,藟踨%9壻鰱BS蔙杽)斠柏	$M)KXK覤
ロ隑.t{]x渰%藥醷潴躶螠3g螠鎴a药嗊笮鮘镡<}]求輡簗蟨s億r枦确Q菳!g9G裙Br緪EBi睤H硱	Y.BVi&dv!BV	%萰!k劕睳葄!刓("!{@z刲攏$徻筗H悦}揤d搻2/.d婰逇).粜9\镦!&<,逴x8)櫅v髨宭s髒2赆K鳵_茥藴+D'e廜锅域龑洴鯪a_%崿籚钽:7_铴熀7滞焥髰蔓紱or笸"瞏棎/葫7赏稪67哳;e7唛婊窙飍髇97+赀'奬赕鼆浛怄絥t驝?焘瘂2驁滉⒇>Q鯭!弝*~\?徕1閷粂眶给I?扭鰸龄m韹庺榨R涬跂湵惿飲ャh$O酩疑&&_霒榷H軥dhS]X峚颥i'鳏0蠕鑻鯉`%0ybC唁璋L吕z&ш&楯sU67﹒撒DR閹Htk,嬈廑b}俏而槤o%{遥1l=愗荖钺H*=懩JO_$镴刢C桎o帳6/Oひ+bv;荪D餬<=厸{ZV秚14%哛槿Pzud`$㧟*砯劽藍:洓歔V7鱰,jZ衍%|耰/隮nj_共	扟d0,輯[[歾V4瘬a5	+反餿(愬u嚊;e衻a矁嫼粬c髉xM{徭鍔雔^蛰铌殍R<娮级供'技沟UX&#玚富	娙xa铠褽-澩2^+*艿e蠏E]媱宓5郜鲱,痻
3梭遐▂mKW竗QW芬b/G駯榰iKg邰.XKf瘫-ガ藜竰烪も#)	-藳;{V动l<也Sa稳掓痄)笳H顢攣桅3啽范痀^nKR渍辜=軈呮腍{g粰E,瞗鍳#C埡>qrwb^玬;蠋庞鏱瑀辥&)VQk|(秗d7栰婔$讶狸H2.}{蠬o帶79鑊p頣,輏E櫩騒lP泹I鑶8疼垍 问嬬墫軏N2 n#>YR荊O#泈Dc
FR.>堽
%昀*祬託	观擇碻刲-6乓]变`|(2`咡屖y觼漄╂{﹉bh(M++-睂餝"荹<殠羠兀轌仏3堰烺:E#櫘尢坅載茎kf4嫟c鯥+%5踤滸Z枎Ε]FK	胴v存g尓柼 遗{R脡D緻{4懾抡n辬崓鲷朴8氍湋釕迊x'禼#L魨宍a羏 q帬瞝13Р睟
嚀塼"栝坙翤ijdx8慙曲z愱尋27翀尋7K瞁f莙橧監~[=3i0'i,柛7莢`6	58迋嬡&I&咳9餛~	o
HB隀仇瀴隇虦4桼JI廨*
ez窬炥Q駋法埽R綑恼'晬'wO肰9傊&拻j齰蕟&礅mJo枩6IuIF$J向杉)V6;憌巃M荑t0#汳盿N妰m谁鮠b;(|灴##6 褐eZi趢戣?U)I孪仞	'F捬匾膏乨環k吟棼饾蓇朓7術9>G72m&5醯g診A,肿+闚]P穈良郂,q>栕雠獌塪|揾6批採hp鰩'倳!v8嵳F笛泥<廔煣M砺I^36竇B,銷!餍&r煇剕E萕<$鋋!'1!Or@萐B	9,鋓!yV萻BrDB^驋悧吋"銾!2榛t预?M/循&搉v馻摽臤淈mL錱鳼摕9&龘㧐襬閉搉 ~瀼罆:襜暙瑳撹4~a=箱楄縘莎袥&襄摛R7澎翾蛜倡ヱ!&9.䴙蛇鐡L/-&课o [x N]碻8楴-禺JM!嘔镉鱉C!?棜劁烽'PㄍQ!圷*賬?ez顺pTL~AA :8擧di-X郠鮯痄`踒赁Xl(坱)5罼毡抮J4瀭E扇`a/Ox*汩`<DQ霴$儜懲弴j&8np8~p41霴&僾視%24L`Qr^守χJ)3FIM簨69鮝櫑yp8=:qJu靂WdY 5嵠R#
O隩屇
<&(烬9赼}P姡啾四怨KO惀铈dFi2捅|+7Wc<6匀j"x;`[訩閼諻L>▕`,齇墍写s靻鄀pdh隤b鸓#V鼘迍倠埯) 縼瞱>*%1楬g锂/K#f髄P	K!:FG%%駣o 撝馒+X蘦HD穁┍:@'渗K潞[踤$绠给慰 C伱H:>P(f/$咗B蟑7&V然;揔x1憀=b%[*鯿騞#凹SkM@S{Ud枿=[㧏馊*2>謼A痀櫑M薖1玲裈:6圸<扡FFaPnv祐^2蚉婽-f:刮 9tS+c闭穻饽鄌蜏`淦"僐F唶調紌涸~虗uy{a鹓墥i$C乤M憀熱c$梂秥,烽c皋(
C豋咪玭#"[術查D 蟐8_!諳3蒅V偿‥噶<l曎vfe嫾#驁-阨&I箷噿隞|挠蛋!	婽甶飾売;璞dR~h扄蕜灇觟暕时栘箰%s!E懢綞忉睚-輹貸篽m{鏳f多艐篶k4U叩=臯厱S婐櫽Z迴簬'窑罁焤だS呦G誈-'$)f憎6{鲼鮡)性鱊%Ie彃鐡=j靆麸碎邚S鷂砷顴9(5伍鼼r@_NQ碎?廅91羟s?愑r?斢&鷩sB闇聍宮鏶盹s鲼y鹻宁綻_纯/裒|y娊^檅疻ж;撿联	5+h)xx編K|唗磮~贠:H诤彂9迫蚬迫翤^如5l*Z1*R$糂奀*$)3B1驀 4渫!/剶吋B蘼1峇y入惙x宖嚰1:.錆1F菄約(蛭9"!'婞"$踩?%Ｊ齳	籎卣庐憉!f诈<#T:J,SD邃
蠸(堮摡朜:撴淤訦媓!-Ek-ZN菰B腴炅H孼i+笛'h%m3U埫ND\闭吶槠浆吳_寷閬F郺金>xF?n{75&覱)M縺_綤椥啸鵄院3!龂娔aO瑁QA漪9ZCU腐壝掽魓硅)%Z`撝[l媵銖[0U鞎b眞(眘O鹉葋5D梽BUz蔗齮陗猳跭隒O衖O悬曋黥ｆ5嘊5~Ｆ炚8嶱}
嚝o<鋘tV} p燳},8!p磯#餦%滇縗/{唖q媈DPpq0$苘槔@舠壦嚝p枊q泒谰M樋7*g^n&{鍷p{Gq荛ⅴAj;-矖;厍豉魋9 {铤(9闂騕:V粥卛賸禶漍:坘p>箙覤r歲:愈湹村準)_s5髞柷!E訝%'玦悀凅1鴼璱V脨7+Z#,5Ｚ惴魹璠+$蕧{漗%z諐S鉚/y6z
>樸%蕃^X祛芙瘅~k汄鼕I8擜<Ｓ&鰶匰馐	D6伳臔釸爌9鈒"*旖 恨聪,亚h?蛓屛>H 硝7N鏦嵯d廠Z稱笚*鞕□'c瀈T{;0R骘%kN▄渞醦/%^敿葂.狑&蜌+
竡捁4鵘qt78G璫剅幯li对嵸愦<<幗tk曔庇馏龤陧カ鮛⒘溿:!耾|a淶詠潂秒費m恅l擺,8] 钒k袏FХ噶蚧锡院O<}逞拭_8璴t滬鼛賩>岓剓_ '碶癗-`榰: @虆+`漦a橾ほJ{嚓纐侂>鐉k^?)鸮Hyb}彧`e怔俇S幸鼻.瀣v絿䦟1d衉T ? I讌=t勗璖傶o魒圪:繯嬮 弹+測?uL溣﹖鳺N楮:U菻揅b曏莡#t苨z嚫*r黙n`y@9钲R荟-坟7緼1ip	遙|浚v'-|g`m	緎麔再峉8嗬诊蠛 .!!B
^4н[7v<縦齘哂妳珧gy澎/v猁j煯F愤;6nl0鞈<屼Y#z僌杮靣鹽9梭19襯#ffy,/饤d棗翱牡缑黪*粝炔f喤锵颤祺+pf0滹ь埔@洎R墍#z厊|0陉踰AUh2Nkg峞zC`/谞5藂扔X(3齺酐+\棿挣]旬7T欹_数)&I癔e样鳾嚳$⺪肋Of	汰礰謂簊c闶I岝-&&1.渀5塹泺\:8棉Y窿
c蠂斏6籰g齺捞脅紷UL婈鵦=2壇G\s/?cnN`l,塋咹q骘м5{9)}譶@鼅姰聃0蜴恙R笈d嶁鮣y茡瓡|pdj^漓M怽Ζ毣筯/憕筜D"獆駥D棩袞5{闈?贙?协绰/s8媌谾r錅y@諾X鳀悫6鎨;6V;鎨蔌8鏾l槈=卒,403&^j返P>1gvb和|>F脵Y熑脓銬@帇偤H鐋蔯揘"郻J硰vp	]隶磽g襲<媙滟磱彛埒x簨缧搢搅'眼|2龏+閩濭*..鏩>塐E4>撶s'熚億_藣|熐黟鵿//1^芆髍~嶽鴈線_:夫瞎嵾鐣穔A钚*瓝;淡講r梫wk慵Z>~蘫?p嬾O逘基B絼/+x硚酋&蔻絻08﹐鋽尴埕镄敷e|欮~Z繅?＿蔠昊y _?淖鑏珉'&綴櫩牽苹7齧綧噊蓋觑馷鵡|燓/辦旘W峉鵤5:鴔0<f茇芆楏S茣|懈嫃黢嬈凕婑*呯Zy&摗喧窌⌒鶳e(蔌妒U8h>撌澴櫻r眼鷒XC薓镫?d<:hy竆h錽戊D摔]F=坚(蝠mF5谎*せ孲8"趍蘣鲺!铆Z鹏%镇q絡昿7l+皒梛=;Jジ飖鸫4忿芯宊嚾 <郉.呢,q\腲*?9UnN+瀥3吞鸵蛩璢促/食J鵀塆鈹:歘'7緼^嗀NaX-
婍z>w?梈# nM嵓湭糟)縁潆5騘3*_8hV費LBO%IBf纏螚襭迬洴蟷磏nc嘞扮畎箂祝腑钌钌;⒏9a縈}稯牤擂!82ju句岾睸絕)/曻廴9@に薪|湲鳬垫S9,603?(8@c&趽鐰<@焛,
Y#襭T5枋F瘮C艁b=Pl乥Ь⺷赴艊76>+軄縶齳]v9b醌3靣碾#5陸瘊齰A亄>鼭轕毭-鰲俒漱R+9侓䴔旇峞賬:HW<1旡萭y9貔a獌橪+怄4Au/j詼寓龚Cs:虲洿|襆诋襏Z}V笠-殢频zJ汚Oke魩v"涧U,瓪梚禍治嗨党鴍`腌党鵑m	镅歽Lk醙祐~I豚W礥麮-蘯k]|ō婵ik4嚩Z骿氪Rm絭"菊贓Z漹倍@胙斡"Z囍玼kQZ模	-m岯)V-]礈闝/-C4酲棖爺揰E}%ㄧ乒]菼w肰椨[\&hFΧ俧拔ld+A砡0+4{彿p厾_M逤汃漷凫(@`++鎔閶萵俧/冧-R耾"Zh鰃甑v]U獥蔐m逘e揱#圠ia訔qB9峒L晹嵱k&軁r_殃:'TQ穀獊愉竾z[m甏A嗚,-A鏷檬!k;埕u砜(幼Ee嵨B曱I*煇U妒塈雅涽Q蕯贏nm旘礙颧]
沑枺H繴x上*鉀V硦E矢誯NR!Tt?(W摝]C鞿uT琞彌!G2[z[8峙目cu檵J且p"
i髗彤枿6Bc:涭_刔n!%鑡鉻KF6鍞倏EQq崞厜F:緉1I3盅幟迲鬙@蔱观獫薏.4V8襤48y@満轚u仉py<燱 标>厦~忰F藷`狰罅蔳九2-V鲤涏欖7]JbA厢/ 瘈0囩俉叁B(橎z夿K紦瓇1翌吪锩磉徾 殽=Ds弹<鲅B鞶:W{屩k徲場荬嵮泌8建恣状鬰|=E飆囪頉艨赼u{[鑫z|婒"搤廕Xn魴韝	q旴祔:W玧m!}[莘嬑I巅" 摖K]D鳕枃v鄬沂W-摼Am猆@疨絡一%駳"$善衎餃矯c秴'汻=C忽,y寸℉{>鏕擫饯踑蘌
丬Q躙淉r耳9勅?NU繋L>s1咨謡PK)泱  A1  PK   泙)               de/mud/ssh/MD5.class瓧ytU瓶闣Kw$&M :褹柸"罖$10ltB $恡0 膧AV 
Q慉潱G8g帋#.t2骶n扤5g溣_輜筠击姜W痎x$嗏sq焹鋨朷馓燠->{Yb@煡堢焮齥颀#b竖椉饫皽n庾姩l邬炟<鶉#m頠眖迿揵q;梞綧>i+西X滦末'材sf娤[_~D紱n渡饨柍k魔o婅槌馀+寃舧飔]/畾8鐨苻EE嶍}q7o揾鹖$>(/;縁,馘~2%鰸黚矘鰪7婓螻+'tb〩蒋%馝肃熌坨啳陠M鰶c馁铢D艮酬G耒贸饣!&3碋d{垲嚩鬟/~裒榌簪篙踮潰碥w烘5笈吽蝵(*亳b=瓻黀懈V<7鲔Q聓鎜蠆唑諺'鎍gw/擏9骀~⑩8wF斌櫩_骛洛茱 #Bv顊圿嘫u鈴8轮cx\佉犂67W乂ZS_$钦
在@涗V*蠯晁弟wc┛埠B伋&逶_K屯耤瞜
b*3陾j%U鋛缯旡玣鵮+v*誅蜕!蘌+)鑇G近园M橞2u*I.鮯ku5礙(仍箵r囂 +┛橶H_R_朸W0}Q汨?e 戸汄蚝 O睊++儥
D*顤j芧峈酊牥緳紱^óR捲*浆睟鍻M沦;歖葲[)ИL4鴴_N輙J-瘿楷扦罖]髟糆*uEzA皷J1.麸篳-9昕敤挭氁+ro;6浒/
'罽PS_[醛溱豬>喒P亝.攂骙枲趨z栧,7败&pa-<崧8媛(v翉奥匨仂B9骱..<炭CAL玺S;_(P熹*XQPZ娨殽+x#3..Y?託-歸E 攝\N沞$68Y6瀽家滀.+晘鹪y像滂''
*5* $&5$殅捠V5枑E異腷翌t⒑p拭皼!l械gbr授て數地廗鬶恰$w牆7&?545a|O,晉稏慹揤-YBZ*:4i梢塡墍拻爪4&f@>
(齱hy{@k%葊~3埩葓p诿Ih'=渼鰌诿Ih'="颍],XR妋m觨4汄3鎤x2^ 獫 飺	_&_T_喪W蜅●U鱡"秘+%<FZr矼嚩舜74E刺NM嗏1L偿韉奊鮤漎耮n8碙.蒽T}λ瓝3C鐍鋑3丬{敌鲫>郴畚^5k0謅邻氪bM澒]琝觍八
6鞮頹!F荄寧岯wa卾1:螉钍hw:喲茛斜寧发U熭9庮澙4o;伡澚\尰#罷wO鯢r砟M磖澨M娾27偈5槢b錜>眍^Vp儃[:s鸛筡w(pW鞒5骣
豟饊(皨3a青NS]堠鋶拾骂N`歗傐祟违3躨傲芩⒏s嘑q澨鮕箶	脻n硞u鎊耪;<婋 k&\q,揋Y3琡奙w_q;乮蜰騀韼X鱔vG偐8鯶鳚o!v28
V<1
lgp5鋁&_E謾<蒍骓飍g['[蒥榺晻18'
靈	朞⺻緮鈢熺452祼⿹进vR#忟	赧菵,j悈奕Τ薲:eS<:N汤!溷y\僿1_鈀E燖ID2P柌 硶z\F懖s敡1Wy醶錱圮疔RQb廟[蔿5≤睹Xh{暥鞅撒5U"	K膒,9X&妫VQ'6#(@8嗗5 >F凐+琓郌uV┳`礪丗7┷盫=垱誗hV蟕濟n謐=盇啀Z6i蟀Ymn語p浿娵涤窩[禑癕W盷徟=wq穦媉z踒%n錀8Y惃Hk祙z/鶐堈凰w紛=F俱5糁u鶐籽Oh$藸裻0佅}糘a:a?哱痲聐6痠騏x[qu{%(O餍]顓鳌頖vQ5w藞]!^8b輐M鴁(>u濑焮ヱ鈷+屴萦〞谁\a移樻1漶u1LjRP-
j/祻委褢鑑Zl@t 鉅渰1-#>轼#J'O#M嗏Z觐:w_Z漕欩^#:覭灱Q觟霶魻忕>8Bk1:L嵢RZ8?iB稸鞌%>}4宠&铀h汛S柱鵑滟崏碬[0&-橲.徥賾塲诺纱!'P棽L貇膠訏蛇l薺虊{劬I賺)<紙嶁N3橠駜>hE<帲/炂0<C'蘥i煚}ρ^潐P1ц}嗉Lk:5*g;24ｖ敮几娚Z>嫯:箠磫o懌X醥紁ApZ'vZ 4蟼賗彽G#O抱>疭n邎(tL7驶*)析VZ痛~$N7G顰Ws碙麀8ie庶牵皰
`贠貗xI鎚豘X南Br璮[摱)m]=H粡错襈暥46蛵豹鱭)瓨眄┮{憽砬lyD鏁缪||P轟1慝.4/屐v6k奊3Z7蛶弶t%}嬾;L-鴪-	愍炒>臺>溺鵀|馥b肳2頇^,6Y[B&隫Y$|佦d狈節L>4闕_筢睴qT醮摐昖\g7择["*拙掴5\鵕FO>芩酠kEQ+鎡 C熣#P巚郯]喈0j╨僞揧謔F靨丫埏灸P:糇K礳缗g2W~瓵涉'i0沨=
Z圁娱g邢.x澅p藬M嫇媼+KK,嬌氢f槠镶a槲捓覂'K"KK2K
K/栟,}X鬰橄2e  柫,,CX,i,棻e癖こc箿e8枒,2X甡2唀,8栺,X2Y&娐'0毹琂G陒戅#藂 PKH徠    PK   泙)               de/mud/ssh/SshCrypto.class峍]lU﨨gf:輛
儓 齼婅"-荻h煯U~2v份漣vυ偄&%*Q//嶑E俧敉岼鈨11&(璩綳蠞YZ剷樕摅輘铢9鳒{砡鼄	霊!宒涶h".1肰1la;v3 z膼C}~偠欗-L鎹2!65:KS貼畚wz蕁^Q勘路礰滍別-冦鷔匠刮a0s輫S#棺勂羵iM暺宺Z+&:he翕坁.坹U);鶄Mh緔鏰;遊灆t琻a煓t}o蹗 M3労)傔03聟#l0凧+Z	6e崻)Q]d钯7懕7Η&乘嵪uf妴^钣澃6是嶒(5:95V,dF峠&-0橯惠X膊S)Niy薏澸n薾5-:5鰗!,3鍏锍v鳺清GIw驖〣n纓寽[+鈚%枚ｚ*J8"7鸵FirX飙/濶v枣哩{尽ak獪1vD孤嫷 "P.?S8T4EDO`穵槐J舑cP獾${U烀~0太j鰩嶻j弓k9鯗樁⒙雑tkk蚮黢Yi+-^;G虨倽檥萺e雬nf瓛wNJt鄝珀悴畛	}-惦U[埴_怒w,監O宫sr*o?@|.姼R弎濵砠b苟"ō>員時跥:妗皵咟昆I鸶>L藰.o窓-=R,\け笻c蘭Pb&断明F>组棿賉碒d齁稉hT2S鵲}G 钆}曯g莮t]J:*M懁处菾ZI鷶MI鴉}t	侓瑹~M┐U瞨雎抡狪JK衫⒄i[")=燚牠ra狩O<(w\D+杪vC.侂祕-鏠/<援7UJ嗙鄾撝o:筐ЕV磫J6>歭淐LS嵚+x肍鈾;^釉轀&资ㄩ枌(裈;ＨEx%"Ki騌JGJ^8w)赍])J<髍+蔘&坕1)莱|мHk1蓻6Nx)懬q(撑&N8皃]-u薿桠q+黢6願韡檝馥偕澯脻捖:枦阉>霣?縋}8侫澍E+cО痐g$蝍珩蘼觴涘b囻9+桫~`餆惽/荱L&(Ea襯X磫卦圍1E1MG0C湦q<K%<G8E6藫x炍郋z/;槬黟2]穢崀d+^woq?g璹o凘k+$璫$#H?墮Z哑稬ｏ形葟^z譋滂4:鴱Ie:孊NF8G#x怸T滃\62j纘艭茋磁ei5"q[鈡E%>;仮淽6眔尵娣E桠胣EPK>?  	  PK   泙)               de/mud/ssh/SshPacket.class匳}pTW菁凤捷,$, 
碼剸OI64|&@!瞪fw,Iv虞M浶栚6-吊捴8誏ЖI蜹╱?り?疟3:8蝷縮咚:&崇瀞罱鐫{物#0
贷1""夎%DRDJD張嘐dDdE宴凔w3@ 囻橒梕O8"'e"烌鉯<鉦 g駵G<o銒6^P鹋猸巾
隊聰赥2搷$雏"]絨C0'韺g浕馍鰈Gs$潕+5誴齽)屁S皗"盭"蓤l犊'9/鞀d餐
f,拲(殍hx_kW*讴05瀸{柴X嶇埮':傎TM|k"櫲t腸|Do餐3jz圳鈏呝=㎜"汬%霋{o檛F'┃#拤{轳芑钲园骫疦O
瑄寵轄PZ^覶s>顛Uf2檸Z6祐>灣6銘渗庌钪x1亿EOQ}*橼I'啮渇#慟1).澫Z:碤譖赐簞痋<朧S穯餜b,@6掭S訜e+罩枒g1鄸緃\撬豿懌9(3咫J祠6:頊f,鎚/堌舾箟骀藵)㈨-濌鰒U7赵諁Z?f+籌蠨S絀fa穾D2C穟^諲#憩曮1b~ju2#+襋O潛Mq+S<	yS=ょhH酽４oj.隶"廌俋忀A軈 !D卙薉,盉D晥"VaAw撕{D盫腷,瘪 緦鼳|_bv8膓淖瘐 %耲Y馝辶蚳瘪r吣+
3s弓)c)识び﹖偌y6N1圵儀M7nT(綸样⑸*"肾蕽瓏釷yc+應檭<q鯠喌/f體げ汩詾H2骣_:槑V 嫸蒡餤讯噑wZ洷I诟惩脪)o姻XcBb熐導I→鸯w蒷C6弔w╭na9焙x糚y怸痕跛n(#A(耹糖查BZy笓?BA隓+<帚RT阸欑_顛+急W闝	d鬤碣竪{=z,,嵥`暢琢【╫岄d癒醩Pa=gyacFX醩綎瓒G刜D鋴姌615糥鎏FA,|颿ZXA嚫賾鄃慻Q觩笕馞1}b:嚽<庴3k許韪{zb挔Y:坹F祇)渽>捀嫒蓻讍PfT[C(猿謞6X*dy鬅H,貙菲2猰ＺB
兑蹨Go忧cs挕峒亝F._认]~螂Bpu犇*盕蝐陉 潠5#P將'熥谴|3呂c&呫硆巗(.=侀B煅"辗u?G=B剙I@巺刡 淢#$*籩勜*H$蟖3帰帎貯5鐯-洪}[萈[駇軏3貑嫺桻s窔=崻{U霁P8爭鉅zM闙<.燳崰E]DD}埁#b啬,话溆j鮓%>o	+ yZ凼W滦诮笍琥檄汩|鴺廷鎂N30l5?映広N拖:Q忢饻`,厺|
勺}U莿|櫧儕 6胭q)鳒2蟂s=榎7暶蓔c媚M綬n2T﹪挮F9X!+L>[\rek0暡-M饙锬Lt睗漧h7揙<=<苊h庳結<榴絷r痶忔暬}兀Y邼R<蔒Z3p埇'9甈娎htE痄I
|g鵶蝐崎\炿覱弘姬帍7瓛柆79懵鴑f鲞&L俩Ia烔?a7L灉贠0瑴K.Q*BIお趂脏[肴頮塮i&檎!?d7p4[7頁諰X%劍IPk匩_&@*t-玫f	懞乃XA揻p%豦秚T;釔* 5駧淒si葄傽3呅+13矄1K竮"菄L2>梕Jx	尡専,4浛9儤rs婮吡g蚤痖怳z蚱G:k抻D8G^"騀{暞鬹8倱x哚鞗鼮y吲)|?纘柯ioK	g9\沆?.俽馂*膹賺5?Q篑S誡8噻j~;鬯涩腁呉邶酡5i詪&tcjM杵C-g
$(浌:xH╡嶐雽 2W3庰Z璯皲V饛1^*2徳+|ecw@匶6F鱓XU▃>鉚匫[>2礶z枴-玫瘫7`)嘧涕7槑撷斦鉉鲡鳏躃鋪彉麩惸烮製+搝癒n軱抲D譵:毲h8驁髠眓焓^灚om}z!Jｅu錈羐嬍漄n49nt	5鐅3凱Wi^v羟/G>蜄!<~2鋨蓪-祅穞项+串b
qW尶覃V)骘$铲i鏮禊縔忞d恆潘窤|$瀘郵M亪`u糺.鱊岐楩醔飹2貐Q=q[庪mPK
@麳	    PK   泙)               de/mud/ssh/Cipher.class峈YS覲⺪6崝博 褺7\he, 冦欿l覰捠鸠馥80>螹授蝋殲ss蝫蝫桘顼#H樓{q太!AAh]埢*钺<T餒E弲x⑩)瀴觭酔硕紬R:成 棜&g垪-洴圮0峨d.7+F}觩,褫5蔨蛂F&mSw輾^瞆5頟鎄晎+峨v厾s轵招雴]兆=遣櫨qQm:朩k譃 VaH渜旉嗠
磺0v凭Qs歿)墚8-B動[盘VvJG黉.筎r"&8洛鞠0 B5织睰_J]o稘
_赌刡A[佔0螟咆b{g;5y仸Q爄4,鈪啑xム祮%5旔涂O&懺怋R羀藊sCо徾患"4Z-nK阓/55胔G堷-裍w毼氀犙.!;^k替{<Q辛鹿畮K娦+顊淗4m\灕K噚"`b$囬K'虷d辆!抋選$ 1寭帓鮖7窫h夢潫}>4,w(;嘡蝩鶏枇*;餾L襉2鷳7)-.槮俵笌	=刞鋾u"舮䦃鳧铊Wd5洆騌瞑僗d唺OR鳗3$塶;4M攖俩:卍A$22瓏l,筮d)AF歯∣:Ke墮gi扺:<]愱;
碝''DQ*`逻m謴升PK翔鲮  9  PK   泙)               de/mud/ssh/SshMisc.class}	\擴桌辖227 wDAQ\\Q7@dQ丧躂32礡33-覶dQK-矼7Jm13薼睄镘3／~蹙=s熺辿谓缥04,g檇K9F# 钖瓼9 菣@'迁藊u櫊.I檒搄6摐('欎#r矝l!SM蠦贚di-]]22S4J/瞸吣牟趍C蕖V,Ssn/c箹颈'粟X殰_貪e茀曜Y>?u!枙uY*cY1{俗樟栫鳆.g癍瞕颁lo{嬪л訂碧珝耗寅苌荴.^轿r鹍(柟'fi柣jK茢惋颤晇g&薭麘颴PL実I诅殖櫸颥雁g枅材:,彴淛嵑黍Z执B杶毇荵FhOe薋S枮g夀*楀|蛻,o锝0K鞒筗X7L,a筽阢(藮銘I,~酢o硨}Y><3	桚莑蚘陧篯2P枺{V琭┺费撆_V痚櫖[hd\繐e圎祹,!癓葞鮞y湘粎238抏鷧ㄧX涅iz朥um鞑<e	`櫠c"}eE杣nd鷇耍#x聺,/簃^黍E揢-Y驿x园"僘杇洚d*}2e詍焅[藎{鑉朳i0%W库嫹8嬪)沩鱔~<4炁窘枽UX栐V蓑珙叧Y.6癤前<sb鯫,湆u灣笣	,}+F}撇a/硿	教2糰cK滟gX^?~(忓拈t\薬閼_'酥瑓CX违Vc.b	峪~沈)v2薊徺GXt愈眛朡o痹篬,,G蘭焒焆褖咙r栞'軽>砞]球去;MX涸Y挪,囅l夼扵賯ル.'YM宍ywO頥誷鄄即考扙Sy偬R迹%杘O砻拨韞?+K褏鎠Y7ey!#b婫^N枡9蓻Y69晡R嬷竼:<fX粌喜A,闤凡Y滁6~霈廦Z鍐Oc蔁氬飺抻Y鼫舝nf2K峙釤败佥P啦傣UYR/=舝唎X/{湧髻嘪n峟9^擋#{莋ㄐ_d3|薡徖s,飿糲Y5a壱蜭eiH統恊sV肵杗鵎oq晕`V宿坦璝:越2:鹯8'嬉,5頒5,韊筝,cu~!,镲墾e俟陷%pW蝮,藄,4nb8vKP%,)椂紲q`;藈榉黊Jr6悸"笫L,檫d罐$| K!k>7cY鳶,棲g"爽佦X虝藿Y灟[2藯=Xf_竃赔~尽擞'闚颤x騬4K雠蜻X跍洓向dm驩Y~夙椔R敖枛UCKY摽bi籼櫴挬忴埮K窸dYf_廴騕6媘J	栨笹臣j狐(徍颵Fj:狂鹔發黍潮Km+K宑hK,蹘g?潀佸鱈朸g#~`ys锒D朘5k遟后栃娖k,蒡a鵫蟻,夊e,wmx僥媳p帅g鬳,c.嶏乱>k?Ky嫣,噇毛Y&e{K杸偫Xv棺鯾9h^簽%Y奏,o>k怸-@摋裇%6扺RT7╣ 肤卖邦搵mid蕄鷡巪Gq赈遝 砝 蟈G緘dI^毥p--梈毱ほr琴
贽炸-蝪	利鏘,蕩sカ共炫壟厧,-點R⒒逆卅跙rm鵜!魱 3橙^,@腜棿碰B^4]2B镮n暌]]篓W=?玐eZT\á麠憛Ci穑轹┡巶"儰{F'F垓3
颌iBN&觙卦嵟9XI#7d敌P鍮~鵱6顓鼹R鷤諶PwO[F熼zb鬙墻碪"娄査7曓?黥咑\Z#75&熢+闬-&8碑纪閰v婍nD妄挝觤%敂佒蓹珟K&ムb篜	夽C隝芋#闍嶔镭/=譛δ倰聇囑v砶徎)鸵W>D裇?傝捥L{嫒)陹k杫抐i蜞驓e仠j愑滩P&沞墱n柇dk,暶滩7Y螑3鸵[V6U?K恦?脓遑觟泀摚 $&⺗i衂卅N电gu麲31o悌备囝縼鰗#蟉伱.gS郜wV?鬇BwG6莋
苞I促盯l!芛a愈S匑[訰}敌o2Zs2揨b5肄倫m.剉X齶T佖:榷t誷c+貼}8_愴e誡v敐-,fV[V閎玫wE珞
樇朎:7惮縐
樕Tz侏s蓍RU彟2鄯&;摘6.5\逿圩	7n倶乐ak钂狜呤P	鏫蟇偙茭6A熞R锝1(現珇}ce+闽{〨儏疂~d潯鳦{`勣C绕泻9 驙AO岚挒V引恍棗mi.齟ZJ#匀 H;c乺DΑ9迴羋Z歩届JΓ駬閤tΝ葍q2TvL匘贊趯2孎砸鰻溱妄驭5讇2wP	媾锗1毮侠J澳i鷒M钢750鶈岩kW冝獇{濬鳽p}阏j饅抰w犘+D/-RH〈(絘(DP[膒=(#D蔨7軾!T觥h坶]_ZI#鴔2９寪齌5蒆龠曁柣]圉@l琈輐藺綼cT惦oSJ浝+泉∕磈閴VX祦翳麪靜kZQC讘T隈怈;<夿}/p歍 -傳|o!5
<阇鄈h-1J.8p羴痵+|_t)uY矽Q蠾魓篘牋揾=摡-咑d"鄿館蠶疇[盈:箓v 	唻韵@L升訵滷R!誦譟u*焢&Y跷㧟骈匲o窄o紋_愆 E奠(餬%斎tJ珨檗蒊q潨#s2F:|r糮8!-嵰N:*蜼湭䜩S2Ts%龖&虚h谙喹)H镯\ 澐8渝Zo嬪甼--]N龤嶄j祮脏{沛骄駠2鲢蟺y4踻:B▎B[XD"嬮<懓屏阐阯焧蹒~"焴鈊g	農8檰巃Kg=愥氇狼┛拖-Z	紈	?:gaH;媞周鑩R鳳糭帝z/捩茈:王砹凇餇#黳_夰8W夰蓱}fq,揀w旕2佲3蔘w縜[xL0,﹣魴圆<﹤龊'i挻抰	Iz邉$B泟$#B粍$5u P['5v&!t!	3B羶N)	B'羵袐鄥袊!傂!拃V(Bs剚	-Z!Z# x#|	!$ %碋Oh噽Dh彁B鑰0壭a2倣鄧怤鑼`'#d 8Sy B04BW"BB	!a;,B耤s=$#%鬊極鑽皜a/B鲁剘	VFXI圔XM團x0aa:耟匁!C6!l" 糏幇0a+!B翲剅B<B!0
a7a4B!aa聗耎匃#糘榾p槓刾剱岎1!酳翫劊処	  LF8EHE8C!.2v/WY_&8r  "$!麳菺鴫P3a*炉刬w"#4JP聇B)
酫t,3Qf○ 蘁酙x醧sPX捈	-烡袹)迠sQ*蜟袴q>妚奜ｈ牳 E'艆(:+.B袳q1夽%(烝Ⅷ,妌奒Q).C裇9棧瑁<2憡/牳E斺(*瓺1Xq姟姭Q(緞b勨(_A(诺(住*婑婋Q$)締"Eq奍姱匨閵汸7ＨR|匔-S窢萐|E佲V贰(R|E夆v;P蘌軌b朾9娗w佲I臞s玃蘔現盄q7奅妠P,Q珹瘳鈄鳌X甔嫝Lq?婏娬P棘x臗()緩b解(6(F盦馛彔xS#[?F盪(~奲団g(彚≒<啟J8娸妘(jO犡舿臩(轘<嶁犫+濫qX舠(>V<忊S(*^Dq\(N)~庘屸(/8痻臙奴(緿駞釽((~嶁K舘P|瓁5舘Q\W紟鈫鈝(n*轅瘢怊(~R級鈍P#;姺P娍oT馱:胚P餇tSセ(=D椹J/趴Q6SlDiM(T矿7/k踝	$PKa餜惉    PK   ﹢)               de/mud/ssh/Blowfish.classtW6噘=q焽嗔% H 窴班$扏頡躚www嘊q/艎?佉鳊啧瓘誶3s翁3g煿蝘G?o輎(l&:毠蜄f.硶Dk6m%9!fǎ^
撜pG3聦敟霾瓋,EID薺騎喠箜蟻3tN瑠±渂稃~*讖巎9铩鬷N莆&鞳∧鏧靆^`庺jp澾52`|0<錍)骠3匕E>%\灵76a蟓U &_熒刳kl5</詗颏N珌u鉨呃^礁嵙?xt帇枰瑍44</'旓桰Ic0zcstq9x謣倿Mxao0宠2饄8pfunx~啠昍2b髸襉1:尻j剶丸娯佼#:跲侙3yv珦軼箤鄲!滣O,^6蚸NCt|碙|柟o您悱K溃引揌m2dz%<榾uO襶 <~
.9I嫿粕謥1c鑴lXuakq逆9=鲊鳏!Ss*:仲
鹷菹傱9' 簪胵|裙dj鯶6忹闋6m餪p5笟/7酫d朼=<?蜯^~ n濃睦棔死砖 ,斆D翎g1;麑度y02^?垵3C膘馨g坕8,.6)吷n嫾爆a聩坽p[5@>S扂<eV﹏h碋 Tq啈O哾B跌9胙{新}裿'n苭綀羬r$妾s衪O滔ni+$"绥	<兪Ｔ開筻矗UW濩籫喇q魶枼'蟒抮_;d破敽{s梯禰眊I蠪Tm[限婰1y!~co 梇牵忧嗁1ｈ8蘅ZU琷幻;餃6q絰鞳h镦m嘗緐謅鞅磐P韕:+->\Ap暑忡┢AT,攼s騸茋祗廲袈oq/譡旊汘>卾鬌c匨+酷=>偲舲諨爍c f穘G鉍蜤妗M}q#C湳鉴5见|賴bdPp"錩峬G骗/筵`3徆p_~*>?n圗3鏩az慊)伉禯$螏u>L媅譤\苽c}#W律镢i帲椺焅W醫熧烸饄鲺榯錼=;n*'湡嬘Ｏ溒狢yobt筕E0弘腗篾及
F`匕坪<藠m"j叹8s犍8琜糶蓵;]3$鉧茁1偛р饭禽!>>2.N=菽'竟	仅羟/!}粂硌oR&OL嚋櫽%戕慔摒~5
f<匞'V9囵垢P)9支尲畢懀撕度elC惩7W!O<s貟玲慵锈葡K複O曖冈瞦_滂輏璺-00!l药%8)
kW潞厪%祽ァ袶_灨嘀断8xCtC{I旆苚@,层配徙r#s怊-6釱	_4峎n%s皮=jLC躟蚤样6+PW:鴅贡"铉炸佃Fo蘾c⺋彈庫傝緺iD靅32Btu╗ s[pE芡X6歀潕V昰E€樆0鞰H=;O}厇匥呙臣m鰻畹C0疣 (垴秔堦X乕A)印cL鏣D-9嶆侻3踐i籖}l嵮将>F臭/6cu偎ヰ瑏瀍蚽倢u_耙鵘f斲惔y鰄帿9w嗵8~嘵K娂艱壢酹咮龠~霃R{/_裴軯`鸁aI招阷;W<>|(篺珓邾OLC繡"痣-C&#J#ㄓ{腤v^;毣Ph5y︳JA訑	鼐j*\煘&鼗c輬疄媊+!;|;v蓛櫙菝淎'啟G慸9断櫨牯壡=椗暳^頟=鯣;嫥Y3謤熺%{\P
y鰊M+礮鳧頾椊{]n紳鱞鮾y大4f搔像朦CQ#c Z鋂鑰c铨)?记飙
!沢8筍3>坃!甿2術挸跛劬G伻玔0韜/7~嵹吆G篶魌輮壏v锹忓#沜釛x瘭"鴞,廘e蚬!愚4式o刳圙+>轻峋祉qg{礗玑乆臃☉_急巷赟鞂m懲sF圆﹦''横J慖饄趝Z蠝絈.3_<萘牛搧煶a)翺aCb氡ㄛy^湡=	菛^O'菄lGHX樄2sP"Fd[匧;跑苎[賠[T宩閲r>胱∝绫;珂7樠)喍;撧L雰膀鉳゛1錘醖x1褿YZrX簵&_繎婎头NC砏"K畡p革2锃>'9>Bc撷M0鍾突璐綐7?z%~y埾勨I痳塰S;%軓豻曒郅C嶡緣jOno狞ニ釰l':岰昣V朴榤鄥J'r卩b稊2皋!墉S#妍5扩霸h5*_u|6p.8}=箪C舯ゑ1''4縱0Z2"S蚘H&	h^y渻_=勛姉伻]('<廞鶷聟v彑#6W艉^=I
A帕/醖瞋~峨7欈6槏鸒/#粢敀X絟)8垲EKs貵魋:z倡鲳啪j%嵊6p6$^9鬣a'小蒎荛P"/.仴/⒓服<雉%<s䦷1灼;s
馐o馉|(L靇^淄擛%o袓~y冺/;梱F~毕舠紝A昅縧B#t矔y韹)y猆G簻AI5bXE詻粞7孾呂/瘽CE猘譾嚽缼)冄wyв(vl皦蓮虔C皈2昿9o峽Xv詑:t蠇苀仐p,42l祠QW訁嶙氀w/@QOT狍<篵$6尲i//l囊撡z醆﹙弎阐黫ㄘ学2r|瀅楟O庶V:蟒阾守/唶wΜE俑鱅钢獖*G荤鴢幆赉忡uSP璪渝豘sR~7.[9娤條麻蓳 xq図H鯗菞谴[W娿g熩MQ辸hOV-P>浇O0閷~<[闷恍L阢Ywv蕝歿
粀G灎挋k,@沘q嘧#湡丙^l3<JF o项%337揶煆灬盰鄇哄7澚3=1鳏(88呩晌-0x<W苒2淕򙮾mu瘑I&~BDo0鼅345?C{讄弣>迩焷２帘Fx%L簖拕柴q损蝽Xl]A辏ko1-谁焊籽{唬S嘊?驐 \=}吣.噋茗2矢岹篡Nh遱溂襸&鎺;鍎K瀖鏲唵璙銩蠅)恍-嗦#*慊=Z_聚S鹨稾aDU^c
狸Z8蝴>蠆玶)l唣w卅n户繃7@鎺醧魪(焪荅芫碉猇N%缜q8快"Vu◤薈访蝅!忸鞠樀絖3<{硔B瑚|勗脵Ou殪珣\m_?抢嬨Y秂]昂_ァ(g磎囦雇vb驱晊\津4靔婜蚠幜媖熸醗矣:|荿4nn潉鮙_ｚ荎[秀Q綪岎1僢\S0ほ譩4r琽#徝篰[湒呗6п8&&-檷M}3m耐%W芯癈*鳆U/廂-烅壼渔鎱W躦wd轗N蹳陳n饚z崼.D2稛憐濊<*,si脋杠;舆幪忎
C*a_H][.遁gzxc鳙!7a4_姠W{嚵戕靇懟裘p4辿m"鲱M_蹘=i姳7^牵徑Sq矃W7嫩躸@漗j$8朑津h!∞-燃дz湜靳#㭎n琅蚪巍
俘戎鄆[	谨kbr9臒?;氜>籒廒撩ヰ雝>繠作1母壊eN柭棍疦a俎銻hy爌碸輆6傛棯宻騑拇3v饧氰Y劐枿縼乌噷=眎d枎葯"瘝[1⺮膈/襡E皚b\
物v懙Fc贩OP}怎8熻鑵骇D2郛`芍皘R钧刭鰩壴麋缆#熔>銲.緒3駗崊"魈`囝协橊 泣尜 [#Z]w緔锇╨賉ǔd<{CE灋脹Fo.嶄鲙-酗O]=Da喢黰岧矺:厼m*8!&焈^辖躏娎枵话7蚕蓒
+^l瀬'犲癢uq忱.笝i=訶近䴓饉顭?
蛶沩惵巨柁N嵜]C傫f瞜U9譾$<m:齻a/;mRC舐&赓靮4迤6泧)3?茠瞯>萊∮d嚣
痜|W虅/ycM皈W@鹩謗坂0{/脚层;帏婑鞵飤唵(]絷h敋<r噰=祁艊罏'0缟$眙免峸鷃_侐誕髗鉮D鸾~樂R]街imD.	v9踓蒴陰埁尔毲^?叕9疍珴o!K驫q陭庪飈玫y1}P杜梛,閄圩8弰'銄臓m辙Z塢邂k囔尰醜Rねl洔噖F挮(姏醡B.X崭wT瑇踝>g@y刐玀oL歓稕鯊䲟qsk"綛 斕眑 Tf:葻-B=C粥	産[贁(Q-V濴﹥"~G6an霏Gp3脶>貇杼k淩麗z!d;~	1/_?嗴帡Ke鳄噜8鮊觱sM 紮輇赩/蝕鷤鼦漠)
馏轌笉3&z媾&勨淦檹皐qDX[熈=vmq&頶DT仆莙瓾?鮆 闚澔~D`N鯥~竬n湜[ 唚yY*∥#q`g刈惋"n敎3
3衽='}壿<髀ou/7A端轻dX)忯状千B^64骒件恔^妣~鲭,啨荗?問]m@\z)v68甇怇[j滷c碃肆﹂p镟痣懳課澏啪=с纫茻敦屠都籲ｄ幊艎读Z搑a惚S絧③虃h+9囈藇 o习祎帣xS齞7$疛=]CB0琥嬭濒輏詝反2哲翎P鸼钼拢[0鰲费貂龚鄲0鲒邲僊魿吠郗衛虓;(/釣澷盐孶5.U-Y*&'Q\獊2P~T認[覐簞牌'窂N宩9,钧?又m薊荅'戋{h矹|D2荜F荅诛),2hXb諐峬-脒6欼Q褖署Y讏"墘QE*;~>vbdR澣锖1≥B嬆喥u(8)!:瓹@谫;拭O贑元2l糩U枾玥'F?''忟訷oǐ4'嬶氃筴2"懵R:%G絖-齩-	2馉鲰蹀憠騞┐垪莪hZ闗嚾=侱}V娦a鏬玍cQ骱嵰v2姁w%B飃鮵贄忼v}莣M彫-五+,bu6髽y澩|%%
榶硖N蝔飈鷽鍦吐播吵倥Lp6}9U桅廦匈,$沿#驇(勉[獶w帄LP嘂^{=慖昐"鮗kz恮酂OJI^		)狁濙讳笙7(,&2<)犞伽/濹烫e6昧0%S^tZ洲吆@Z摷复.斨さoZJ.犖bz- C.娉蒔>守罡翣鹱債讉崗%m&~:v:藀1r閸<Fv#m3外鶴绡'1K%u+旡6唞 许TpW惜蠪摸顲沪=T园1巻_凇r|}C蒖i硨>紞ac5漉萚躔醛;3^)赣咂f籧Y嚨|秔6巏'Y#枳鱱U/?6@6貄踿@擾d*頰|殂灡{A/3挠譛黝
z冱絥/攵咦凼X拨叝ы /;y0p┈頥陾e鸱兛綔伦怯斡>撁F9|29樉i粃サ>硙 ⒋}"趮季頔^_y閃旡逄卷輓娣萏輓6遶躇陷|傲p憄齵簻5J,璯b72亃V0J崥F%Q1訉谄b盝痮6蹖 c夳孎	１q蝖b\2倣[FS銘撖R稆蝖ー碦Fk錰碤尪*аB4BTQ#T5耇E#\U7"T}#R5综脤獌ズ*賵Q綅巎桧訉85蹐W媿蝚パE7詖#Q咱O菰y#Y]6R姚|k齤⺧孰%欒J彚穀^菼彨`橁俌A/覶%尝^5订靎%絛g霻Y褪z赊pPg*鷨郹湓纺j_?.T@镧P^>*25]t胡踘醮	駑汝镨i;-RN瀡=渔皀3滹夙閔蝼荀t冄o縹楑&粣縱讕疃谟蓊熁#2Gl渔埈虘聻z(颥qM簪$v铞骄群攵矠耧u齛綽疻庌饛捷彘遷鋒?壬抻延!躞K=8檹烐殣-跬0z閶谯p2F_=)9Fsc1b2髰ac副搌韶o0~1Fw峇苨c碦ecUn？瀐銜1A3&_攥＜Y=mb萊嵈!K56-󥇞-K_*e种摾謕R盘:iS腃4毽M*痀O/9橴.尘^r4博lf恀rFK鷘谪渥遣%f7锄踴歩7X躠<蚾W蚖nz黼E俕齴複萦悀鴙8虼1l䙌面颿厝1䦶惆惆惆鉷俘q符##q#q#q#q#q#q#q#q{$额bSXTX9栾沵[}k5错0﹄浹L}碀煟筏讓鵝雲*襒K許c0VP姳妚k cj0守劤3儽蚻m0]f'c窓`霫会~酵齯谜K跬P-5鷝谜KrK3>M]S咔b釉笛6⺪m}龍W镏:e鮳种,R
z:御_:KZH腼犠3朦/f同?欟w赳t餿e輾y趀J粔П玱艂哓狐.伃`腧Ol][闹暹貁:鑑8r鋌镩扉旡G7倘╯烤4S<81嶎q=NjVOS3zV5栮飠4岓鸁苚漂恽"銙b悴蔯\Q奁UU8κ譛銌猣躄？緖唏哧唏哧唏邐唏-唣6灆M茵el6冇鹜爘覢v L資儨?d=o賝 {9闊 th駚v111111騏錑|gr_迆7駮镚|w躇0!2r嵴!騩wO邖栺纇Q4凯煪|苨昭鳶6^￤*k迹酒趏|們鯏8淲6f&eg禥f攔2;)g3A哈C浃"'}9榛菼逧铗]涓o"蹧威鷱a冽濑普杮P域jacYA-l-jagjaoy祊返译闯2璐2阾2閠2雝膊鑤恫阾奔t篫賢篩賣篬9tzX9冎v禱r盾r<r都r秥r饵ig驨;[伌躇璥谫
璸谫|游V$韑E游V,韑~ig+睯鑔蝨柨NO珨昔Vi2:3Zeuftf妒樘b曌櫿
蚤eU袡酮3籙Ig螠V澒:s[誸姹蘫招櫹3縐KХU[g珟N蝹V=潊:[A:}:媂u,f5珠g5裏
諽耲ふLЭ誠g)珔我VK漞琕:薢璾Xmt柍陉,o涤h呰琡呹琱呴琩呺琹E璎bE戡j底Y完牫コ３栒Qgm+Vg珦魏V溛zV嘉鶹g滱V璂潔$潔:沊輙[:沍輚6砇t6穤鑜a踉僖辚硶誟gk珡6V_漨瓇:踄齯哫t哯u哬僼哰僽FXCtFZCu斗嗛靈e33┏5Jg5Zg'k屛8kxk溛沃x漖	:瑝:璉:摤:籞Stv肠闘鼎殪nM讬b托倜毄厂5Kg/k段拗潁:鸝〢-<寏<謡﹣諦〢窒R儹ERCRC%R矛铆eR?Y衰FX+Z+YF[芚kてZkテY毪芠毳&X&Z&Y洡&[洢[うZ[ウY郅邾fX;Z;Y护f[互鎄{ゆZ{瓆R蟋齊蟓R瑑R瑿R?[嚗YG[GX扦朲钎朰'['XГVZДVYg[gブX绀諾縃蜬.Hm皛曏h]斱d]捼l]栚b]戁j]曏f]撢n]椱a輴趇輸趀輶趍輺赾輵趉輹趃&颠'u历]隊u_陳魼臧鮌陥鮄戗鮔陿鯂詑雺	氅訧霗)牍詉雲隣┏諯﹕+R绛7RR縕铯.Z铳.Y.[ギX煠甖煡甕_ぎ2癛7Y戶-V惥褪斁檬F.+[檫X買遚e/;+辂皉拁仁Y+榍琝`&齽暬鬝V蚁XY蚁Y濒V椁d)龗Uz閃2H縡昋獿襬Ye杶*嬼{VY?膀揀*涺'V佶?呈!齾UN菔`昁Z笔-MH僓^i揢>iVmYyK郾* m鲜G趤UAiGV叅漍杤f+砺獔+襫瑠I怀驌鯼U\赽UB歒晹N鞘_趽U)轸琂Kg`UF:#覚XHgfUN:襓YJ{豹 潔UE殪*I鏯UY:'*夜XU曃酮歵V榨蟛!潖UM辄琷I{唱-]UiVu勃']圲}槁瑐Y5.陋QV崵嫳j,砬獕tqV烈%X5.瑟櫞?谣X祼.酮V瞬j-廓峵9Vmニ砵'*D玃閵+
棶*B
獺楠KWc誂:(矈懏弄mV币uXu挳*N玿辁:K标"輤U倀CV壱峏%I7f誙	玭伊瑨碴.輰U妕sV=瓣)輶U/閂瑉K穎誈襪Y鯎n仟縯摇J嚤$蝚皌!覒瑔J穏5L襋瑍拵f5B:喺H閹現I遣-輭8VcャY崜钐j紅VXM擭d5I:壵d楫Hwc5U:櫿4轭KО!輧誏闉琭I鱞5[򓝑襺X蜁钏J刅齒	血?+1Z`%H珌珼i5垥0дV蔎肵	誮8+盳J癡#X壷j$+醃峛%^l5啎埈撇舱8Vb螶蠽X壼j"+a[Mb%nn5厱拳Σ赫4Vb窔蜫餠3X夀j&+醄蚥%~p5嚂耈*+1\蚦%埆Dq祤0钦犀r祱旽收Vb筞蔎0W薠夋j9+醆璥%灚暚t祳晥甐艺Vb篫薐PW隭夑j=+a]m`%崿v祲暼6谡Vb悔蔎pW踃夘j;+醈韅%精潿x祴痸庹Vb稼薐怶鸛夠j?+a^`%潍儸zu垥H暾Vb:蔎癢荴夦8+醊漙%瞢摤|u姇埊N蛘Vb:薐蠾鏧夲V戮:螶躓X	WV"亢菾鑇梄夶2+羅]a%u崟3擑痭2擑痭3擑27&馹輈诊L饪合$L饪z$GL饪z$?樐鮿I黈O櫮鯇I黈蠙鮽I黈2%擑痎15擑0-擑1=擑>0#擑>13擑0d0"&駸$䲟$䲟擑O禠?1d$䲟擑O嶭?91涮$䲟擑O甃?1湮$䲟擑O擑O$:&駸<櫮J$&駸22攭I蘈?ea)+擑O^L?ec);擑O9樐噬$.&駸r3攪I糒?錭)?擑O轑?`蓢I侺?b0擑O綥?a(擑O艠騝8擑O%樐*$䲟?擑O*$&駸2$9&駸3$&駸*2T塈蔐?Ua*擑O諛$&駸j2T婭贚?誥.擑O鯓$擑O樐j$#&駸3詣I`&駸2詫I鍸?礰%擑O瓨j$&駸2詭I&駸B櫮
c)淚&駸"櫮j$&駸奻)咺嶭?2詨I8&駸鈾晏$&駸樐Jd)塈甃?uc)橧頛?0詢I濴?鮞7擑O}樐晁$?&駸34I丩?bi0擑OC樐$0&駸3擑O#樐$(&駸F34咺盠?峜i<擑O樐毴$$&駸&34匢㎜?Mci:擑O3樐毶$,&駸f34嘔筁?24廔鵏?-`i!擑O?3磮I臠?-ai)擑O藰Z$
&駸V2磰I誏?璦i-擑O霕Z$&駸62磯I蚅?mai+擑O蹣谖$&駸v2磱I軱?韆i/擑O麡谙$&駸2t圛肔?a(擑O菢:$	&駸N2t奍覮?漚,擑O鐦鷧I驦?]`閃&駸.2t塈薒?]a*擑O讟何C駸n1和C駸~ct!駸3z!CG駸3鷥!嗻OO?=c魷!嗻O2zC駸0zC駸>0C駸0!䞍?a20213808281830213x0X憥!!#=C麲嗻弻?23da仁崤憤!#;C麲嗻彍?r3鋋人憦!#?C鼑7C麲嗻嗻弬?
32a(Q!!8C麲	嗻彃?J3攁(Q!<C麲 C麲嗻強?*3TaㄊQ!:C麲嗻彋?j3詀ㄋQ!>C麲C麲嗻弳?34afh褜!9C麲嗻彇?Z3碼h褞!#!#!#!#!#!#!=C麲嗻(嗻廻嗻嗻弾???:3taH`HdHb枋褝!#!;C麲
C麲嗻彏?z3鬭杷褟!?C 嗻弫?3a1!㧟8CO#?F2宐1!㧟,C8嗻忨?&2Lb樚1!㧟*C4嗻忛3?f2蘠樛1!㧟.C麲*C<嗻忶?2眻!㧟1C嗻彞?3琡X眾!㧟5C嗻彽?3l`厝眽!㧟3C嗻彮?3靈厣眿!㧟7C嗻徑?3`8q!0C嗻彛?3渀8q!4C嗻彸?~a8q!W嗻弸?.3\a甘q!:涒?n)&涒?n)6涒?畎).涒?~cS=6忹lx捆鴱噇x摩鴱莑鴥MO駭M县駵M/'涒?^)涒?^)涒?薏)涒?蕹)涒?>)涒?>)涷证嶏%C3:)簳<鞣PKh6碚-  J  PK   珋)               de/mud/ssh/IDEA.class礦mp淯~罹唢緵n*6〈5lH6i闁Cш攺M槽梢4	籝L犉偸尃uG亐N,v擝ujUf濕3餑9溺蓟t3y蠟s辿=鬓绻鐌_渻乶茕们2"鰥肝ж'鈠X]7:R庢珙,崓鐂鍓糂0}菩U裿(鼗搮橝殱WR0鱊8t輥耫虮褆襦权?0562qh魂4g%呏裹鯿遘鯮i|u霷p驌c殴矿pfC掃(扦g:|充%巗'r鵌施2紽釣轍睼#?檆p〡+D9扉墤耫餁"*錱鲧,N蛗T,%盙)註岋:暐&鵭f噲尝虵Z焾~*N暐隭ybjZRsQ躀5耮攦FDLLQ宻
蜘rq,}A妒搣楣k錇 I#怈Ku"6'繴W3<跶nr僩oaz<_ΔJ畦w]綦@蒷旊i輦5`C╰贝q驟緤芒芷4滾{ら蹎嬭*)犻.６睊>F鮓氍崫~	F鑀殹浺V6鬜’0劲^JkG籱鏊摆l't趌't涤;圩娬yjVEK撼刺獣尙娋qva1d&:扤-.i7篗佌a昉W菗nV{蟗琼瑅漭墐4,I鱴6臢謒Zg譶輇&1!XF茁W饠鰐<滹粅Ttp繡|骧歧 熭|.x帍焙%遌娀谧掾G鹹n6煠戽轺嗃墫^'毖.芔1Ih熌.鼘5餥釩|玫'雳2j霆^霺Y軤铈v?霁鴾z藐y堍吾V.v?囿|A_孭yoyUT娭唙買j,襌懚>3.罵rl恼q)}Z诊箚肛犧莊j谡;笢殢K谺-1[8`隍9O9恏鋩荪陜&Mj蓴鶢駻鋬葒M;嫛'斢")#$o	⒛k@I粠:縩1撨鞀,8讐憷务1V窴	W:?8p憈;q9%F墠1r ;q勲怯\蒊%&葋c淅$90ELwEr燚斏/s淅}淅椛伅鲹ｄ雷葋瘬Ex濾'課|*饫/5^5^$8s'{G%)=瀚茽毱
稅盩棔_儺鑅//臫*.90b7.橨B6i3K琔栅3燀Iz砋S^壝9景迿顋v0歈牺逭3鮯k{橂y?帖闧'xC}'旕(幱 OP龉坎挼}庼!
孩}庒\I袜迣蚕猥濖鎗萟剸刕hw拌蠭夘鯧紶m睤/苄諲輵.豩黑;/掠掬姐-問6ajS.)K[缃*疞姘9恭M^"t:捬捘/6
%MuyuX;鶲u浲u[,贡鬔葺喍y梚圑呩nS輑4ja竳掲爬隳>O鏘)檋}唥鏨軇癬鼝Ш鲬嬤膕x?<<梧'^离崔肙;	я^七駣娽尯?W[qV踽梛5t燣峿v聳坿雒
2j(T豭;グo澸蓗貰鰅u%1&祀P圬;厎棭K貯厎灪:聳-)畩刈*_幷徏兲JV肕wず鶇U!_j纎橑炸鈚e\穷Z旁S玊&煡#\}╋a矦uPP+鏶抰9>侠!kM#{q筍f{頣瓨蚅计^瘚7Y芠<獁HY蕒d#!["鹸怰ど唬"$這D秼冄*~V萀PK汐/  =  PK   |))               de/mud/jta/default.conf礧Ks"7>沖裏_*<;泋车L靅R鍽暏Rb粗HIK~}5嘧膛F蓐千畀沜,L*鶾肓d餱睝鳰,LPi粜)
%幞裲⑵q愀呵W-"8擓暟枝凞h皹J绛湑,{:m笽e鼎雝T-x蜾焰廄驐弮)|D峍(3r72AE'n)特_告釳pm萵=$箙%ZG哚	瞒聅L罿?∽爠擤V)~蝳梑
R嘸|鋬2\I咢禞嘫@蕄蹧|N'芰mg<&w颕/Iq墪)檽7睱iY↓ "Cq蓁\鰊z;舞7\1\切丵g<閡񘾕對阊0緤 b洙愵,<a槩R9B丆浚'u欽a!朒O洜\R`Sae<簞墚`\YU傒徼7鳫2衅7ae%7涜_z&魌5犴;z+a俻q蜗O泃8鲜湠帝頁鳄橄M樒潹A鈸桴G民勷吜恅饥3t9O宽斦倿(盚)榁tbt&绁q艃y▇*-j蠍塕鶊展姩4笟
5.-^}YD麀萊.謱h渥燴珋D昍爩MU晆豛{F+鰀韫筓WTX蹻拝衧宆F$!K壣s篓癴nE^C瑁P錦jwDG総拓$麒沀7汯-訤u$"(錯}"$%+_櫤4杊&渓Qm)(t闄阎⑹s}_F&$猊W1$,橮允#4濞P繝 鬁Q玓繝懀./卐迻彞斡D氞W5Zc鉄⒅鳸篏:%丈[I(j嘯㏒唱旴K溻a%侶}唩%BT>癝9C較X工f洠=埣L典Y#TW蒪f凪;I偽>獋嶛- 腘~&Xf-迮tV榆6寛X嚊鐲c蠼06|?:;'%f8t尡擛Wf8~r犰8Md<{)︳C19K+&t{藾H"鉝蝜CM疩淀垶鐤渽螻<升烒4|v猡次貆#/+頇z5榝H暠;期樆獰千c!i
.褌殔YV儾糰婒 f5黓
%3^姚銢秭㈠bびJ盓螭7耉-李瘿QjC叿鑨.k
紷珕傏烂=cg@VU呆鏶{劳J^=偆〒`8獯y鲢;壟,3=钞诏o磓鞼镃a熳
YB闓瞏搨h_p飍5)篻镰厪例軓彏)夀eh衙
Vq@E=踱KK|b,m揪Z醳3杪龅2鼍q嫉:9z蝪{耩忖砘口弆嚂弆玄33蔝陯鵣漐乫A副i踛鶫陋瘳#奴h{/bR[x_j璙^[篡.囉A*喉|>,泗藅3╛僺v謮钘牕趚抏舱 zm}p璲蟓(5PK膥!`    PK   Y(               de/mud/terminal/keyCodes.confE= wO褎倭8偝	'纆	M
盷箭s 抉鹮`
1B
 墶5商70黺'79貣u[鎫*专熫襻4D猅l~u:4鲍?<亏PKx嫔h      PK   6p(               de/mud/terminal/colorSet.conf-薑
0 製{<L尅姳匬)浇迅|儔4nq+_禞⊥)Ec臏妝汱ｊ侤1儏IVYU# PK臮y   w   PK    竴)           	                META-INF/  PK    竴)-p   t                =   META-INF/MANIFEST.MFPK
 
     竴)                            Created-20001221-1605PK    挦u)镏+{R  	               "  READMEPK    憄-'W╔X,  7E                 license/COPYINGPK    憄-'_*灴"  la                  license/COPYING.LIBPK    課5'<-o                 C  de/mud/ssh/license.txtPK    q)wQ敟      ,             tD  de/mud/jta/event/ConfigurationListener.classPK    r):,‵    +             nE  de/mud/jta/event/ConfigurationRequest.classPK    t)攉
      (             OG  de/mud/jta/event/LocalEchoListener.classPK    u)戟    '             =H  de/mud/jta/event/LocalEchoRequest.classPK    w)o-    #             J  de/mud/jta/event/OnlineStatus.classPK    w)譅%      +              L  de/mud/jta/event/OnlineStatusListener.classPK    x)2l|玑   D  %             鯨  de/mud/jta/event/SocketListener.classPK    y)L纙=    $             *N  de/mud/jta/event/SocketRequest.classPK    z)履E:      +             筆  de/mud/jta/event/TerminalTypeListener.classPK    |)呻    *             砆  de/mud/jta/event/TerminalTypeRequest.classPK    })嵦-      )             孲  de/mud/jta/event/WindowSizeListener.classPK    )濥烏    (             嘥  de/mud/jta/event/WindowSizeRequest.classPK    亐)AW    "             gV  de/mud/jta/event/FocusStatus.classPK    亐)Z䴓      *             蒟  de/mud/jta/event/FocusStatusListener.classPK    個)@啚      %             蝁  de/mud/jta/event/AppletListener.classPK    儉)i嫣3    $             縕  de/mud/jta/event/AppletRequest.classPK    厐)Q	z      *             慭  de/mud/jta/event/EndOfRecordListener.classPK    唨)KG[  `  )             |]  de/mud/jta/event/EndOfRecordRequest.classPK    噣)|c笓      *             ._  de/mud/jta/event/ReturnFocusListener.classPK    垁)Z  `  )             `  de/mud/jta/event/ReturnFocusRequest.classPK    墍)谧湂    #             薬  de/mud/jta/event/SoundRequest.classPK    墍)M鄿      $               de/mud/jta/event/SoundListener.classPK    妧)!5"      ,             攄  de/mud/jta/event/TelnetCommandListener.classPK    媭)迵焂    +               de/mud/jta/event/TelnetCommandRequest.classPK    亐)ze8r  ^               廻  de/mud/jta/Plugin.classPK    悁)蒛~                 Fk  de/mud/jta/plugin/Script.classPK    悁),I  )                q  de/mud/jta/plugin/Script$1.classPK    悁)C惠?                  s  de/mud/jta/plugin/Script$2.classPK    憖)凊K&!                 |w  de/mud/jta/plugin/Shell$1.classPK    憖)-[暱  r               陏  de/mud/jta/plugin/Shell$2.classPK    憖)0腁                 鰘  de/mud/jta/plugin/Shell.classPK    憖)奷娯    "             個  de/mud/jta/plugin/HandlerPTY.classPK    搥)-                  矀  de/mud/jta/plugin/Socket$1.classPK    搥)赩"	  >               瀰  de/mud/jta/plugin/Socket.classPK    攢)鵸虶  
                諏  de/mud/jta/plugin/Status$1.classPK    攢)}}                  j  de/mud/jta/plugin/Status$2.classPK    攢);(                  5  de/mud/jta/plugin/Status$3.classPK    攢)E貗徶  b               o  de/mud/jta/plugin/Status.classPK    晙)ZU&(  J                憿  de/mud/jta/plugin/Telnet$1.classPK    晙)拙:3                    de/mud/jta/plugin/Telnet$2.classPK    晙)@                  屺  de/mud/jta/plugin/Telnet$3.classPK    晙)Bf  0                氮  de/mud/jta/plugin/Telnet$4.classPK    晙)b頕  u               鞋  de/mud/jta/plugin/Telnet.classPK    梹)^朜8l    "             b  de/mud/jta/plugin/Terminal$1.classPK    梹)鱫\l    "               de/mud/jta/plugin/Terminal$2.classPK    梹)N&    "             诙  de/mud/jta/plugin/Terminal$3.classPK    梹)H/}
    "             :  de/mud/jta/plugin/Terminal$4.classPK    梹)JゲK  C  "             斀  de/mud/jta/plugin/Terminal$5.classPK    梹){欃  C  "             究  de/mud/jta/plugin/Terminal$6.classPK    梹)J妾.  	  "             缌  de/mud/jta/plugin/Terminal$7.classPK    梹)~巜眉    "             昝  de/mud/jta/plugin/Terminal$8.classPK    梹)礽蛤    "             銎  de/mud/jta/plugin/Terminal$9.classPK    梹)>o絙  V  #             8  de/mud/jta/plugin/Terminal$10.classPK    梹)罴U    #             .  de/mud/jta/plugin/Terminal$11.classPK    梹)7P錇    #             呂  de/mud/jta/plugin/Terminal$12.classPK    梹)$庉    #             t  de/mud/jta/plugin/Terminal$13.classPK    梹)M/$    #             w  de/mud/jta/plugin/Terminal$14.classPK    梹)橕4O    #             屧  de/mud/jta/plugin/Terminal$15.classPK    梹)|k抩    #             |  de/mud/jta/plugin/Terminal$16.classPK    梹)蛓%  1                v  de/mud/jta/plugin/Terminal.classPK    檧)决&  6  #             l  de/mud/jta/plugin/URLFilter$1.classPK    檧)"@傮    #             咈  de/mud/jta/plugin/URLFilter$2.classPK    檧)縎C  -  #             婶  de/mud/jta/plugin/URLFilter$3.classPK    檧)*匂    #             ]  de/mud/jta/plugin/URLFilter$4.classPK    檧)鉧!T  ,  #               de/mud/jta/plugin/URLFilter$5.classPK    檧)B鹳碧  =  #               de/mud/jta/plugin/URLFilter$6.classPK    檧)    !               de/mud/jta/plugin/URLFilter.classPK    泙):F娱                  de/mud/jta/plugin/SSH$1.classPK    泙)-=                  de/mud/jta/plugin/SSH$2.classPK    泙)9廓  +               = de/mud/jta/plugin/SSH$4.classPK    泙)W邨淘  h               Y de/mud/jta/plugin/SSH$5.classPK    泙)|莓{                 x de/mud/jta/plugin/SSH$6.classPK    泙)#B                  de/mud/jta/plugin/SSH$3.classPK    泙)b垎  
                de/mud/jta/plugin/SSH.classPK    渶)nrB  X  !             % de/mud/jta/plugin/Timeout$1.classPK    渶)於*朜    !             H) de/mud/jta/plugin/Timeout$2.classPK    渶)t颚                 + de/mud/jta/plugin/Timeout.classPK    爛)}8Bq  r  0             82 de/mud/jta/plugin/MudConnector$ProgressBar.classPK    爛);6覧  C  &             N8 de/mud/jta/plugin/MudConnector$1.classPK    爛)+  !  &             < de/mud/jta/plugin/MudConnector$2.classPK    爛)	w儬    &             > de/mud/jta/plugin/MudConnector$3.classPK    ):;b    !             谸 de/mud/jta/plugin/ButtonBar.classPK    爛)夞u"    &             塎 de/mud/jta/plugin/MudConnector$4.classPK    爛)閄L5    $             關 de/mud/jta/plugin/MudConnector.classPK    )d搡	    #             q` de/mud/jta/plugin/ButtonBar$1.classPK    q)馍+e   x                糺 de/mud/jta/PluginListener.classPK    q)ギ%  C               nk de/mud/jta/PluginConfig.classPK    r)M莂鎶                   辪 de/mud/jta/PluginMessage.classPK    亐)擥禊                   磏 de/mud/jta/PluginBus.classPK    崁)                  de/mud/jta/Common.classPK    崁)@                 粁 de/mud/jta/PluginLoader.classPK    崁)%曰   H               賭 de/mud/jta/FilterPlugin.classPK    崁)J!褈                    de/mud/jta/Version.classPK    崁)綧蹱                   苽 de/mud/jta/VisualPlugin.classPK    巰)钚:;}  x               眱 de/mud/jta/Main$1.classPK    巰)伈姰}                 s de/mud/jta/Main$2.classPK    巰)
頋酼                 5 de/mud/jta/Main$3.classPK    巰)}q–                 袏 de/mud/jta/Main$4.classPK    巰)n鸚                 X de/mud/jta/Main$5.classPK    巰)Eg崔  E               m de/mud/jta/Main$6.classPK    巰)~                 悞 de/mud/jta/Main$7.classPK    巰)沕齶                 憯 de/mud/jta/Main$8.classPK    巰)9V愂                  de/mud/jta/Main$9.classPK    巰)唫2                 皹 de/mud/jta/Main$11.classPK    巰)軶>  e               矚 de/mud/jta/Main$10.classPK    巰)P|Y.	  [                de/mud/jta/Main.classPK    巰)袦h      %             _ de/mud/jta/VisualTransferPlugin.classPK    )7擪7  -               _ de/mud/jta/Applet.classPK    )稂H1                 勖 de/mud/jta/Applet$1.classPK    )陦	勗  {               遗 de/mud/jta/Applet$2.classPK    )N1嘊  "               硭 de/mud/jta/Applet$3.classPK    )la  W               v de/mud/jta/Applet$4.classPK    )kF                 靶 de/mud/jta/Applet$5.classPK    )攆O                 庥 de/mud/jta/Applet$6.classPK    )憚牼                 糁 de/mud/jta/Applet$7.classPK    )痹                 : de/mud/jta/Applet$8.classPK    )格                 冔 de/mud/jta/Applet$9.classPK    )x'奵                 夀 de/mud/jta/Build.classPK    )[垒迥                 剡 de/mud/jta/Applet$10.classPK    ):歔W  %               溻 de/mud/jta/Applet$11.classPK    )突轋                 邃 de/mud/jta/Applet$12.classPK    )メ耾                 奇 de/mud/jta/SmallApplet$1.classPK    )隅﹍  j               熼 de/mud/jta/SmallApplet$2.classPK    )n碈                  de/mud/jta/MacWrapper.classPK    )U|閆L                  de/mud/jta/SmallApplet.classPK    晙)\sf"(  *  )              de/mud/telnet/TelnetProtocolHandler.classPK    █)┏uU    !             %
 de/mud/telnet/TelnetWrapper.classPK    █)黃撘:  i  !              de/mud/telnet/ScriptHandler.classPK    梹)&28訛6  裡               R de/mud/terminal/vt320.classPK    梹)v鲤E                 9K de/mud/terminal/vt320$1.classPK    梹)] N                 lO de/mud/terminal/VDU$1.classPK    榾)Dy;苌+  筣               qQ de/mud/terminal/VDU.classPK    榾)(                 亇 de/mud/terminal/SoftFont.classPK    泙))泱  A1               X de/mud/ssh/SshIO.classPK    泙)H徠                 彜 de/mud/ssh/MD5.classPK    泙)>?  	               壈 de/mud/ssh/SshCrypto.classPK    泙)
@麳	                  de/mud/ssh/SshPacket.classPK    泙)翔鲮  9               牽 de/mud/ssh/Cipher.classPK    泙)a餜惉                 椔 de/mud/ssh/SshMisc.classPK    ﹢)h6碚-  J               売 de/mud/ssh/Blowfish.classPK    珋)汐/  =                de/mud/ssh/IDEA.classPK    |))膥!`                 	 de/mud/jta/default.confPK    Y(x嫔h                    de/mud/terminal/keyCodes.confPK    6p(臮y   w                l de/mud/terminal/colorSet.confPK      5-        070701000048ec000041ed0000000000000001000000023ac03c8e00000000000000200000000000000000000000000000001200000003reloc/telnet/lang 070701000048ed000081a40000000000000002000000013ac038a400000173000000200000000000000000000000000000001500000003reloc/telnet/lang/de  index_title=SSH/Telnet Login
index_warn=Warnung! Diese Telnet Session ist <B>nicht</B> verschl&uuml;sselt!
index_nojava=Dieses Module ben&ouml;tigt Java, aber Ihr Browser unterst&uuml;tzt kein Java.
index_credits=Applet wurde entwickelt unter GPL von <a href='$1'>Matthias L. Jugel &amp; Marcus Mei遪er</a>.
index_esocket=Es l&auml;ft kein Telnet Server auf $1 (Port $2)
 070701000048ee000081a40000000000000002000000013ac038a4000001d7000000200000000000000000000000000000001500000003reloc/telnet/lang/en  index_title=SSH/Telnet Login
index_warn=Warning! This telnet session is <b>not</b> encrypted.
index_nojava=This module requires java to function, but your browser does not support java
index_credits=Applet developed under GPL by <a href='$1' target=_top>Matthias L. Jugel &amp; Marcus Mei遪er</a>.
index_sshcredits=Includes software developed by the Cryptix Development Team (<a href=$1 target=_top>$1</a>).
index_esocket=There is no telnet server running on $1 port $2.
 070701000048ef000081a40000000000000002000000013ac038a4000001cb000000200000000000000000000000000000001500000003reloc/telnet/lang/es  index_title=Login desde Telnet
index_warn=viso! Esta sesi髇 telnet <b>no</b> est encriptada.
index_nojava=Este m骴ulo requiere de java para que funcione pero tu navegador no lo soporta
index_credits=Applet desarrollada bajo GPL por <a href='$1'>Matthias L. Jugel &amp; Marcus Mei遪er</a>.
index_sshcredits=Incluye software desarrollado por el Cryptix Development Team (<a href=$1>$1</a>).
index_esocket=No hay servidor Telnet ejecut醤dose en $1 puerto $2.
 070701000048f0000081a40000000000000002000000013ac038a400000133000000200000000000000000000000000000001500000003reloc/telnet/lang/fr  index_title=Ouverture de Session SSH/Telnet
index_warn=Attention!  Cette session Telnet <b>n'est pas</b> encrypt.
index_nojava=Ce module n閏essite java, mais votre fureteur ne le supporte pas
index_credits=Applet Java d関elopp sous licence GPL par <a href='$1'>Matthias L. Jugel &amp; Marcus Mei遪er</a>.
 070701000048f1000081a40000000000000002000000013ac038a400000120000000200000000000000000000000000000001500000003reloc/telnet/lang/it  index_title=SSH/Telnet Login
index_warn=Attenzione! Questa sessione telnet <b>non e'</b> criptata.
index_nojava=Questo modulo richiede java per funzionare, ma il tuo browser
non supporta java
index_credits=Applet GPL sviluppata da <a href='$1'>Matthias L. Jugel &amp; Marcus Mei遪er</a>.
070701000048f2000081a40000000000000002000000013ac038a4000001f3000000200000000000000000000000000000001500000003reloc/telnet/lang/pl  index_title=Logowanie przez SSH/telnet
index_warn=Uwaga! To po潮czenie telnetowe <b>nie</b> jest szyfrowane.
index_nojava=Ten modu wymaga javy aby dzia砤, za Twoja przegl眃arka javy nie obs硊guje
index_credits=Aplet na licencji GPL napisany przez <a href='$1' target=_top>Matthiasa L. Jugela &amp; Marcusa Mei遪era</a>.
index_sshcredits=Zawiera oprogramowanie napisane przez Cryptix Development Team (<a href=$1 target=_top>$1</a>).
index_esocket=Na porcie $2 hosta $1 nie dzia砤 serwer telnetu.
 070701000048f3000081a40000000000000002000000013ac038a40000012b000000200000000000000000000000000000001500000003reloc/telnet/lang/pt  index_title=Login via SSH/Telnet
index_warn=Aviso! Esta sess鉶 de telnet <b>n鉶</b> est encriptada.
index_nojava=Este m骴ulo necessita de java para funcionar, mas o seu navegador n鉶 o suporta
index_credits=Applet desenvolvido sobre GPL por <a href='$1'>Matthias L. Jugel &amp; Marcus Mei遪er</a>.
 070701000048f4000081a40000000000000002000000013ac038a400000148000000200000000000000000000000000000001800000003reloc/telnet/lang/ru_RU   index_credits=里镫弪 疣琊噌铗囗 <a href='$1'>Matthias L. Jugel &amp; Marcus Mei鷑er</a>  疣耧痤耱疣弪 镱 腓鲥礴桢 GPL.
index_warn=马桁囗桢! 蒡 皴耨 telnet <b>礤</b> 麴箦蝰.
index_nojava=泥眄 祛潴朦 蝠遽箦 镱滗屦骊 java 潆 疣犷螓, 眍 忄 狃囿珏 礤 镱滗屦骅忄弪 java
index_title=迈钿  谚耱屐 麇疱 SSH/Telnet
070701000048f5000081a40000000000000002000000013ac038a400000148000000200000000000000000000000000000001800000003reloc/telnet/lang/ru_SU   index_title=魅夏  笊釉磐 夼遗 SSH/Telnet
index_warn=魑赏廖膳!  优佑裳 telnet <b>闻</b> 凵埔张杂.
index_nojava=淞挝偈 拖恼特 砸怕张 邢哪乓炙 java 奶 伊孪再, 蜗 琢 乱琳谂 闻 邢哪乓稚琢旁 java
index_credits=嵝刑旁 伊谝谅显廖 <a href='$1'>Matthias L. Jugel &amp; Marcus Mei遪er</a>  伊有蚁釉伊窝旁友 邢 躺门乌膳 GPL.
070701000048f6000081a40000000000000002000000013ac038a4000001d6000000200000000000000000000000000000001500000003reloc/telnet/lang/sv  index_title=SSH/Telnet-inloggning
index_warn=Varning! Denna telnet-session krypteras <b>inte</b>.
index_nojava=Denna modul fungerar inte utan java, men din browser st鰀jer inte java
index_credits=Applet utvecklad under GPL av <a href='$1' target=_top>Matthias L. Jugel &amp; Marcus Mei遪er</a>.
index_sshcredits=Inneh錶ler programvara som utvecklats av Cryptix Development Team (<a href=$1 target=_top>$1</a>).
index_esocket=Det k鰎s ingen telnet-server p $1 port $2.

  070701000048f7000081a40000000000000002000000013ac038a4000001ec000000200000000000000000000000000000001500000003reloc/telnet/lang/tr  index_title=SSH/Telnet Giri㱮
index_warn=UYARI! Bu telnet iemi <b>㱮frelenmemi⺶ir</b> 
index_nojava=Bu mod黮 java'y kullamaktad齬, fakat taray齝齨齴 javay desteklememektedir
index_credits=Applet, GPL lisans ile <a href='$1'>Matthias L. Jugel &amp; Marcus Mei遪er</a> taraf齨dan geli⺶irilmi⺶ir.
index_sshcredits=Program齨 i鏴ri餴ndeki yaz齦齧 Cryptix Development Team (<a href=$1>$1</a>) taraf齨dan geli⺶irilmi⺶ir.
index_esocket=$1'in $2 portunda 鏰lan bir telnet sunucusu yoktur.
070701000048f8000081a40000000000000002000000013ac038a4000001a2000000200000000000000000000000000000001800000003reloc/telnet/lang/zh_CN   index_title=SSH/Telnet登录
index_warn=警告!这个telnet部分<b>没有</b>被加密.
index_nojava=这个module要有java的支持,但你的浏览器不支持java
index_credits=这个Applet是在遵照GPL精神下由<a href='$1'>Matthias L. Jugel &amp; Marcus Mei遪er</a>开发的.
index_sshcredits=Includes software developed by the Cryptix Development Team (<a href=$1>$1</a>).
index_esocket=There is no telnet server running on $1 port $2.
index_esocket
  070701000048f9000081a40000000000000002000000013ac038a4000000fe000000200000000000000000000000000000001d00000003reloc/telnet/lang/zh_TW.Big5  index_title=SSH/Telnet 祅
index_warn=牡! 硂 telnet 顶琿<b>⊿Τ</b>竒筁絪絏.
index_nojava=硂家舱惠璶 Java 笲, 琌眤聅凝竟ぃや穿 Java
index_credits=Applet developed under GPL by <a href='$1'>Matthias L. Jugel &amp; Marcus Mei遪er</a>.
  07070100001a8e000081a40000000000000002000000013ac038a30000017a000000200000000000000000000000000000001900000003reloc/telnet/module.info  desc_zh_CN=SSH/Telnet 登录
name=Telnet
desc_pt=Login via SSH/Telnet
desc_tr=SSH/Telnet Giri㱮
desc_fr=Ouverture de Session SSH/Telnet
desc_es=Login mediante Telnet
desc_de=SSH/Telnet Login
desc_sv=SSH/Telnet-inloggning
desc_ru_SU=魅夏 邢 SSH/Telnet
desc_pl=Logowanie przez SSH/Telnet
desc_zh_TW.Big5=SSH/Telnet 祅
desc=SSH/Telnet Login
risk=high
desc_ru_RU=迈钿 镱 SSH/Telnet
  07070100001a8f000081a40000000000000002000000013ac038a500000533000000200000000000000000000000000000001600000003reloc/telnet/ssh.conf # This file is part of "The Java Telnet Application".
#
# This is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# "The Java Telnet Application" is distributed in the hope that it will be 
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this software; see the file COPYING.  If not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.

# This is an example file how to configure the applet. It may contain
# any property defined in de/mud/jta/defaults.opt or by a plugin.
#

# common definitions
plugins			=	Status,Socket,SSH,Terminal,Script
layout.Status		=	South
layout.Terminal		=	Center

Applet.disconnect	= 	false

#SSH.user		=	leo
# commented out so the login window pops up
#SSH.password		=

# Socket
Socket.port		=	22

# Terminal configuration
Terminal.foreground	=	#ffffff
Terminal.background	=	#000000
#Terminal.keyCodes	=	http://www.mud.de/~leo/keys.test
Terminal.id		=	vt100
 07070100001a90000081a40000000000000002000000013ac038a500000b3c000000200000000000000000000000000000001900000003reloc/telnet/telnet.conf  # This file is part of "The Java Telnet Application".
#
# This is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# "The Java Telnet Application" is distributed in the hope that it will be 
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this software; see the file COPYING.  If not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.

# =======================================================================
# common program defaults
# =======================================================================
plugins			=	Status,Socket,Telnet,Terminal,Script
pluginPath		=	de.mud.jta.plugin
layout			=	BorderLayout
layout.Terminal		=	Center
layout.Status		=	South
layout.MudConnect	=	North


# =======================================================================
# Applet defaults
# =======================================================================
Applet.detach		=	false
Applet.detach.immediately =	false
Applet.detach.menuBar	=	true
Applet.detach.startText	=	Connect
Applet.detach.stopText	=	Disonnect
Applet.disconnect	=	true
Applet.disconnect.closeWindow	=	true

# =======================================================================
# Socket defaults
# =======================================================================
#Socket.host		=	www-server
Socket.port		=	23

# =======================================================================
# Timeout settings
# =======================================================================
Timeout.seconds		=	60
Timeout.command		=	exit\n

# =======================================================================
# Terminal defaults
# =======================================================================
Terminal.foreground	=	#ffffff
Terminal.background	=	#000000
Terminal.print.color	=	false
Terminal.border		=	2
Terminal.borderRaised	=	false
Terminal.colorSet	=	/de/mud/terminal/colorSet.conf
Terminal.scrollBar	=	West
# now the real configuration
Terminal.id		=	vt320
Terminal.buffer		=	100
Terminal.size		=	[80, 24]
Terminal.resize		=	none
Terminal.font		=	Monospaced
Terminal.fontStyle	=	plain
Terminal.fontSize	=	11
Terminal.keyCodes	=	/de/mud/terminal/keyCodes.conf
Terminal.VMS		=	false
Terminal.IBM		=	false

# =======================================================================
# MudConnect defaults
# =======================================================================
MudConnector.listURL	=	http://www.mudconnector.com/java/Telnet/javalist.db

0707010000bb68000081a40000000000000002000000013ac03886000006ea000000200000000000000000000000000000001400000003reloc/thirdparty.pl   # thirdparty.pl
# Checks for modules available in an old install of webmin that are
# not included in this new install, and offers to copy them across.
# Also re-creates clones of existing modules in the new install

($newdir, $olddir, $copythird) = @ARGV;

# find missing modules
opendir(DIR, $olddir);
while($m = readdir(DIR)) {
	next if ($m =~ /^\./);
	if (-r "$olddir/$m/module.info" && !-r "$newdir/$m/module.info") {
		if (-l "$olddir/$m") {
			# Found a clone - recreate it
			$clone = readlink("$olddir/$m");
			symlink($clone, "$newdir/$m");
			}
		else {
			# Found a candidate for copying
			local %minfo;
			&read_file("$olddir/$m/module.info", \%minfo);
			push(@missing, $m);
			push(@missdesc, $minfo{'desc'});
			}
		}
	elsif (-r "$olddir/$m/theme.info" && !-r "$newdir/$m/theme.info") {
		# Found a theme for copying
		local %tinfo;
		&read_file("$olddir/$m/theme.info", \%tinfo);
		push(@missing, $m);
		push(@missdesc, $tinfo{'desc'});
		}
	}
closedir(DIR);

if (@missing) {
	# Tell the user, and ask whether to copy
	if (!$copythird) {
		print "The following third party modules were found in your old Webmin\n";
		print "installation in $olddir :\n";
		for($i=0; $i<@missing; $i++) {
			printf "  %-12.12s %s\n", $missing[$i], $missdesc[$i];
			}
		print "Copy to new Webmin installation (y/n): ";
		chop($resp = <STDIN>);
		$copythird = $resp =~ /^y/i;
		}
	if ($copythird) {
		foreach $m (@missing) {
			system("cp -rp $olddir/$m $newdir");
			}
		}
	}

# read_file(file, array)
# Fill an associative array with name=value pairs from a file
sub read_file
{
local($arr);
$arr = $_[1];
open(ARFILE, $_[0]) || return 0;
while(<ARFILE>) {
        chop;
        if (!/^#/ && /^([^=]+)=(.*)$/) { $$arr{$1} = $2; }
        }
close(ARFILE);
return 1;
}
 
  07070100010259000041ed0000000000000001000000053ac03c9600000000000000200000000000000000000000000000000b00000003reloc/time    0707010001025a000081a40000000000000002000000013ac038a600000310000000200000000000000000000000000000001b00000003reloc/time/acl_security.pl    require './time-lib.pl';

sub acl_security_form
{
    print(
	"<tr>",
	    "<td><b>", $text{ 'acl_sys' }, "</b></td>",
	    "<td><input type=radio name=sysdate value=0 ", $_[0] -> { 'sysdate' } == 0 ? "checked" : "", ">", $text{ 'acl_yes' }, " <input type=radio name=sysdate value=1 ", $_[0] -> { 'sysdate' } == 1 ? "checked" : "", ">", $text{ 'acl_no' },
	"</tr><tr>",
	    "<td><b>", $text{ 'acl_hw' }, "</b></td>",
	    "<td><input type=radio name=hwdate value=0 ", $_[0] -> { 'hwdate' } == 0 ? "checked" : "", ">", $text{ 'acl_yes' }, " <input type=radio name=hwdate value=1 ", $_[0] -> { 'hwdate' } == 1 ? "checked" : "", ">", $text{ 'acl_no' },
	"</tr>" );
}

sub acl_security_save
{
    $_[0] -> { 'sysdate' } = $in{ 'sysdate' };
    $_[0] -> { 'hwdate' } = $in{ 'hwdate' };
}
0707010001025b000081e40000000000000002000000013ac038a600000da1000000200000000000000000000000000000001500000003reloc/time/apply.cgi  #!/usr/bin/perl

local $format;
local $out;

require "./time-lib.pl";
require 'timelocal.pl';

&ReadParse();

$in{ 'year' } = substr( $in{ 'year' }, 2, length( $in{ 'year' } ) );

if (!$in{'action'}) {
	# user probably hit return in the time server field
	$in{'action'} = $text{ 'action_timeserver_sys' };
	}

if( $in{ 'action' } eq $text{ 'action_apply' } )
{
  &error( $text{ 'acl_nosys' } ) if( $access{ 'sysdate' } );
  $in{ 'date' } = "0". $in{ 'date' } if( $in{ 'date' } <= 9 );
  if ($config{'seconds'} == 2) {
	$format = $in{'year'}.$in{'month'}.$in{'date'}.$in{'hour'}.$in{'minute'}.".".$in{'second'};
	}
  elsif ($config{'seconds'} == 1) {
	  $format = $in{ 'month' }. $in{ 'date' }. $in{ 'hour' }. $in{ 'minute' }. $in{ 'year' }. ".". $in{ 'second' };
	  }
  else {
	  $format = $in{ 'month' }. $in{ 'date' }. $in{ 'hour' }. $in{ 'minute' }. substr($in{ 'year' }, -2);
	}
  &backquote_logged("echo yes | date $format");
  &webmin_log("set", "date", time(), \%in);

} elsif ( $in{ 'action' } eq $text{ 'action_save' } ) {
  &error( $text{ 'acl_nohw' } ) if( $access{ 'hwdate' } );
  $format = "--set --date=\"". $in{ 'month' }. "/". $in{ 'date' }. "/". $in{ 'year' }. " ". $in{ 'hour' }. ":". $in{ 'minute' }. ":". $in{ 'second' }. "\"";
  $out = &backquote_logged("hwclock $format");
  &error( &text( 'error_hw', $out ) ) if( $out ne "" );
  local $hwtime = timelocal($in{'second'}, $in{'minute'}, $in{'hour'},
			    $in{'date'}, $in{'month'}-1, $in{'year'} < 200 ?
			    $in{'year'} : $in{'year'}-1900);
  &webmin_log("set", "hwclock", $hwtime, \%in);

} elsif( $in{ 'action' } eq $text{ 'action_sync' } ) {
  &error( $text{ 'acl_nosys' } ) if( $access{ 'sysdate' } );
  $out = &backquote_logged("hwclock --hctosys");
  &error( &text( 'error_sync', $out ) ) if( $out ne "" );
  &webmin_log("sync");

} elsif( $in{ 'action' } eq $text{ 'action_sync_s' } ) {
  &error( $text{ 'acl_nohw' } ) if( $access{ 'hwdate' } );
  $out = &backquote_logged("hwclock --systohc");
  &error( &text( 'error_sync', $out ) ) if( $out ne "" );
  &webmin_log("sync_s");

} elsif( $in{ 'action' } eq $text{ 'action_timeserver_sys' } ||
	 $in{ 'action' } eq $text{ 'action_timeserver_hw' } ) {
  &open_socket( $in{ 'timeserver' }, 37, SOCK);
  read(SOCK, $rawtime, 4);
  close(SOCK);
  $rawtime = unpack("N", $rawtime);
  $rawtime -= (17 * 366 + 53 * 365) * 24 * 60 * 60;
  @tm = localtime($rawtime);

  if ($in{ 'action' } eq $text{ 'action_timeserver_sys' } ) {
	# Set system time
	if ($config{'seconds'} == 2) {
		$format = sprintf "%4.4d%2.2d%2.2d%2.2d%2.2d.%2.2d",
			$tm[5]+1900, $tm[4]+1, $tm[3], $tm[2], $tm[1], $tm[0];
		}
	elsif ($config{'seconds'} == 1) {
		$format = sprintf "%2.2d%2.2d%2.2d%2.2d%4.4d.%2.2d",
			$tm[4]+1, $tm[3], $tm[2], $tm[1], $tm[5]+1900, $tm[0];
		}
	else {
		$format = sprintf "%2.2d%2.2d%2.2d%2.2d%2.2d",
			$tm[4]+1, $tm[3], $tm[2], $tm[1], $tm[5]%100;
		}
	&system_logged("echo yes | date $format >/dev/null 2>&1");
	}
  else {
	# Set hardware clock time
	$format = sprintf "%d/%d/%d %d:%d:%d",
			$tm[4]+1, $tm[3], $tm[5]+1900, $tm[2], $tm[1], $tm[0];
	&system_logged("hwclock --set \"--date=$format\" >/dev/null 2>&1");
	}
  &lock_file("$module_config_directory/config");
  $config{'timeserver'} = $in{'timeserver'};
  &write_file("$module_config_directory/config", \%config);
  &unlock_file("$module_config_directory/config");
  &webmin_log("remote", $in{'action'} eq $text{'action_timeserver_sys'} ?  "date" : "hwclock", $rawtime, \%in);
}

&redirect("");

   0707010001025c000081a40000000000000002000000013ac038a600000074000000200000000000000000000000000000001200000003reloc/time/config lease=5
zonelink=/etc/localtime
zonedir=/usr/share/zoneinfo
zonetab=/usr/share/zoneinfo/zone.tab
hwtime=1
seconds=1
0707010001025d000081a40000000000000002000000013ac038a60000001b000000200000000000000000000000000000001700000003reloc/time/config-hpux    lease=5
hwtime=0
seconds=0
 0707010001025e000081a40000000000000002000000013ac038a600000074000000200000000000000000000000000000001800000003reloc/time/config-macos   lease=5
zonelink=/etc/localtime
zonedir=/usr/share/zoneinfo
zonetab=/usr/share/zoneinfo/zone.tab
hwtime=0
seconds=2
0707010001025f000081a40000000000000002000000013ac038a600000074000000200000000000000000000000000000001a00000003reloc/time/config-solaris lease=5
zonelink=/etc/localtime
zonedir=/usr/share/zoneinfo
zonetab=/usr/share/zoneinfo/zone.tab
hwtime=0
seconds=1
07070100010260000081a40000000000000002000000013ac038a600000168000000200000000000000000000000000000001700000003reloc/time/config.info    lease=Acceptable number seconds of delay between system time and hardware time,0
timeserver=Default time server,3,None
hwtime=System supports hardware time,1,1-Yes,0-No
seconds=System time setting format,1,1-MMDDHHMMYYYY.SS,0-MMDDHHMMYY,2-YYYYMMDDHHMM.SS
zonelink=Timezone file,0
zonetab=File listing possible timezones,0
zonedir=Directory of timezone files,0
07070100010261000081a40000000000000002000000013ac038a600000075000000200000000000000000000000000000001a00000003reloc/time/config.info.de lease=Akzeptabler Unterschied in Sekunden zwischen System und Hardware Zeit
timeserver=Standard Zeit Server,3,Keiner
   07070100010262000081a40000000000000002000000013ac038a6000001a7000000200000000000000000000000000000001a00000003reloc/time/config.info.es lease=N鷐ero de segundos aceptables de retraso entre la hora del sistema y la del hardware,0
timeserver=Servidor de tiempo por defecto,3,Ninguno
hwtime=El sistema soporta hora por hardware,1,1-S,0-No
seconds=Formato de ajuste de hora de sistema,1,1-MMDDHHMMYYYY.SS,0-MMDDHHMMYY
zonelink=Archivo de Husos horarios,0
zonetab=Archivo de listado de posibles husos horarios,0
zonedir=Directorio de archivos de husos horarios,0
 07070100010263000081a40000000000000002000000013ac038a600000052000000200000000000000000000000000000001a00000003reloc/time/config.info.fr lease=Nombre de secondes acceptable entre le temps syst鑝e et le temps mat閞iel,0
  07070100010264000081a40000000000000002000000013ac038a60000018c000000200000000000000000000000000000001a00000003reloc/time/config.info.pl lease=Dozwolona liczba sekund r罂nicy pomi阣zy czasem systemowym i&nbsp;sprz阾owym,0
timeserver=Domy秎ny serwer czasu,3,Brak
hwtime=System obs硊guje czas sprz阾owy,1,1-Tak,0-Nie
seconds=Format dla ustawiania czasu systemowego,1,1-MMDDGGMMRRRR.SS,0-MMDDGGMMRR
zonelink=Plik opisu strefy czasowej,0
zonetab=Plik z&nbsp;list stref czasowych,0
zonedir=Katalog z&nbsp;plikami opisu stref czasowych,0
07070100010265000081a40000000000000002000000013ac038a600000057000000200000000000000000000000000000001d00000003reloc/time/config.info.ru_RU  lease=橡桢祀屐铄 觐腓麇耱忸 皴牦礓 疣耨钽豚耦忄龛 戾驿 耔耱屐睇 怵屐屙屐  鬣襦扈,0
 07070100010266000081a40000000000000002000000013ac038a600000057000000200000000000000000000000000000001d00000003reloc/time/config.info.ru_SU  lease=鹨膳吞磐吓 讼躺夼釉紫 优苏文 伊佑锨塘酉琢紊 团帜 由釉磐钨 滓磐盼磐  蘖恿蜕,0
 07070100010267000081a40000000000000002000000013ac038a60000012f000000200000000000000000000000000000001a00000003reloc/time/config.info.sv lease=Accepterad f鰎dr鰆ning mellan systemtid och h錼dvarutid (sekunder),0
timeserver=Standardtidserver,3,Ingen
hwtime=Systemet st鰀er h錼dvarutid,1,1-Ja,0-Nej
seconds=Systemtidsformat,1,1-MMDDTTMM排排.SS,0-MMDDTTMM排
zonelink=Tidszonfil,0
zonetab=Fil med tidszoner,0
zonedir=Katalog f鰎 tidszonfiler,0
 07070100010268000081a40000000000000002000000013ac038a60000007a000000200000000000000000000000000000001a00000003reloc/time/config.info.tr lease=Sistem ve donan齧 saatleri aras齨daki kabul edilebilir fark(saniye),0
timeserver=謓tan齧l zaman sunucusu,3,Hi鏱iri
  07070100010269000081a40000000000000002000000013ac038a600000090000000200000000000000000000000000000001d00000003reloc/time/config.info.zh_CN  lease=允许系统时间和硬件时间延迟秒数,0
timeserver=默认的时间服务器,3,无
zonelink=时区文件,0
zonetab=列出可能时区的文件,0
zonedir=时区文件目录,0
0707010001026a000081a40000000000000002000000013ac038a60000002d000000200000000000000000000000000000002200000003reloc/time/config.info.zh_TW.Big5 lease=┮钡╰参丁籔祑砰丁┑筐计,0
   0707010001026b000081a40000000000000002000000013ac038a60000001e000000200000000000000000000000000000001600000003reloc/time/defaultacl noconfig=0
sysdate=0
hwdate=0
  07070100005fba000041ed0000000000000001000000023ac03c9500000000000000200000000000000000000000000000001000000003reloc/time/help   07070100005fbb000081a40000000000000002000000013ac038a60000003c000000200000000000000000000000000000002600000003reloc/time/help/hardware_time.es.html <header>Hora de Hardware</header>
Reloj de Tiempo Real
<hr>
07070100005fbc000081a40000000000000002000000013ac038a60000004a000000200000000000000000000000000000002600000003reloc/time/help/hardware_time.fr.html <header>Temps mat閞iel</header>
Horloge  temps r閑l de la carte-m鑢e
<hr>  07070100005fbd000081a40000000000000002000000013ac038a600000033000000200000000000000000000000000000002300000003reloc/time/help/hardware_time.html    <header>Hardware Time</header>
Real Time Clock
<hr> 07070100005fbe000081a40000000000000002000000013ac038a600000033000000200000000000000000000000000000002600000003reloc/time/help/hardware_time.hu.html <header>Hardware id</header>
Val髎 idej 髍a
<hr>
 07070100005fbf000081a40000000000000002000000013ac038a600000040000000200000000000000000000000000000002600000003reloc/time/help/hardware_time.pl.html <header>Czas sprz阾owy</header>
Zegar czasu rzeczywistego
<hr>

07070100005fc0000081a40000000000000002000000013ac038a600000050000000200000000000000000000000000000002900000003reloc/time/help/hardware_time.ru_RU.html  <header>吗屐 奏耦</header>
吗屐 囡镟疣蝽 鬣耦 怦蝠铄眄  觐祜蝈
<hr>
07070100005fc1000081a40000000000000002000000013ac038a600000050000000200000000000000000000000000000002900000003reloc/time/help/hardware_time.ru_SU.html  <header>饕磐 酉</header>
饕磐 列辛伊晕偃 蘖酉 子砸吓挝偃  讼托呃耘
<hr>
07070100005fc2000081a40000000000000002000000013ac038a600000036000000200000000000000000000000000000002600000003reloc/time/help/hardware_time.sv.html <header>H錼dvarutid</header>
Klocka med reell tid
<hr>  07070100005fc3000081a40000000000000002000000013ac038a60000002e000000200000000000000000000000000000002e00000003reloc/time/help/hardware_time.zh_TW.Big5.html <header>祑砰丁</header>
Real Time Clock
<hr>  07070100005fc4000081a40000000000000002000000013ac038a6000000f6000000200000000000000000000000000000001e00000003reloc/time/help/index.es.html <header>Hora</header>
Herramienta de Configuraci髇 para poner la <b>hora del sistema</b> y la
<b>hora de hardware</b> que hay en el reloj de tiempo real<p>

Tambi閚 se puede utilizar para sincronizar el reloj del sistema con el de
hardware.
<hr>
  07070100005fc5000081a40000000000000002000000013ac038a6000000ca000000200000000000000000000000000000001e00000003reloc/time/help/index.fr.html <header>Temps</header>
Outil qui configure l'<b>heure syst鑝e</b> et l'<b>heure mat閞iel</b> de l'horloge  temps r閑l de la carte-m鑢e<p>

Peut aussi 阾re utilis pour synchroniser les deux temps.
<hr>  07070100005fc6000081a40000000000000002000000013ac038a6000000d5000000200000000000000000000000000000001b00000003reloc/time/help/index.html    <header>Time</header>
Configuration Tool to set the <b>system time</b> and the <b>hardware time</b> built in the real time clock<p>

Also, it can be used to synchronize the system clock to the hardware clock.
<hr>   07070100005fc7000081a40000000000000002000000013ac038a6000000f0000000200000000000000000000000000000001e00000003reloc/time/help/index.hu.html <header>Id</header>
Egy konfigur醕i髎 seg閐eszk鰖, mellyel be醠l韙hat a <b>rendszerid</b> 閟 a <b>hardware id</b>, mely a val髎 idej 髍醔a van be閜韙vek<p>

A modul a rendszer髍a 閟 a hardware 髍a szinkroniz醠醩醨a is haszn醠hat.
<hr>07070100005fca000081a40000000000000002000000013ac038a600000109000000200000000000000000000000000000001e00000003reloc/time/help/index.pl.html <header>Czas</header>

Narz阣zie konfiguracyjne do ustawiania <b>czasu systemowego</b> oraz
<b>czasu sprz阾owego</b> na wbudowanym zegarze czasu rzeczywistego. <p>

Mo縠 by r體nie wykorzystane do synchronicacji zegara systemowego
z&nbsp;zegarem sprz阾owym.

<hr>
   07070100005fea000081a40000000000000002000000013ac038a600000134000000200000000000000000000000000000002100000003reloc/time/help/index.ru_RU.html  <header>吗屐</header>
暑眙桡箴圉桀眄铄 耩邃耱忸 潆 篑蜞眍怅 <b>耔耱屐眍泐 怵屐屙</b>  <b>怵屐屙 怦蝠铄眄 囡镟疣蝽 鬣耦</b>.

填驽 桉镱朦珙忄螯 潆 耔眭痤龛玎鲨 耔耱屐眍泐 怵屐屙  怵屐屙 鬣耦,  蜞赕 潆 潆 耔眭痤龛玎鲨 耔耱屐眍泐 怵屐屙 桦 怵屐屙 鬣耦  皴疴屦铎 怵屐屙.
<p>

<hr>
07070100005feb000081a40000000000000002000000013ac038a600000134000000200000000000000000000000000000002100000003reloc/time/help/index.ru_SU.html  <header>饕磐</header>
胂纹汕找撩上挝吓 右拍釉紫 奶 沼粤蜗姿 <b>由釉磐蜗窍 滓磐盼</b>  <b>滓磐盼 子砸吓挝偃 列辛伊晕偃 蘖酉</b>.

硐峙 捎邢特谙琢载友 奶 由稳蚁紊诹蒙 由釉磐蜗窍 滓磐盼  滓磐盼 蘖酉,  粤酥 奶 奶 由稳蚁紊诹蒙 由釉磐蜗窍 滓磐盼 商 滓磐盼 蘖酉  优易乓贤 滓磐盼.
<p>

<hr>
07070100005fec000081a40000000000000002000000013ac038a6000000e3000000200000000000000000000000000000001e00000003reloc/time/help/index.sv.html <header>Tid</header>
Inst鋖lningsverktyg f鰎 att st鋖la <b>systemtiden</b> och <b>h錼dvarutiden</b> som 鋜 inbyggd i klockan med reell tid.

<p>Det kan ocks anv鋘das f鰎 att synkronisera systemklockan och h錼dvaruklockan.
<hr> 07070100005fed000081a40000000000000002000000013ac038a600000075000000200000000000000000000000000000002600000003reloc/time/help/index.zh_TW.Big5.html <header>丁</header>
砞﹚<b>╰参丁</b>籔<b>祑砰丁</b>ㄣ<p>

, 硂ノ盢╰参丁籔祑砰丁˙.
<hr>   07070100005fee000081a40000000000000002000000013ac038a60000003b000000200000000000000000000000000000002400000003reloc/time/help/system_time.es.html   <header>Hora del Sistema</header>
La hora del entorno
<hr>
 07070100005fef000081a40000000000000002000000013ac038a600000054000000200000000000000000000000000000002400000003reloc/time/help/system_time.fr.html   <header>Temps syst鑝e</header>
L'heure du syst鑝e Unix, ind閜endant du mat閞iel
<hr>07070100005ff0000081a40000000000000002000000013ac038a60000003e000000200000000000000000000000000000002100000003reloc/time/help/system_time.html  <header>System Time</header>
The time of the environement
<hr>  07070100005ff1000081a40000000000000002000000013ac038a60000003c000000200000000000000000000000000000002400000003reloc/time/help/system_time.hu.html   <header>Rendszerid</header>
A rendszerk鰎nyezet ideje.
<hr>07070100005ff2000081a40000000000000002000000013ac038a600000053000000200000000000000000000000000000002400000003reloc/time/help/system_time.pl.html   <header>Czas systemowy</header>
Czas 秗odowiska w&nbsp;systemie operacyjnym.
<hr>

 07070100005ff3000081a40000000000000002000000013ac038a600000040000000200000000000000000000000000000002700000003reloc/time/help/system_time.ru_RU.html    <header>吗屐 谚耱屐</header>
吗屐 耔耱屐眍泐 铌痼驽龛

<hr>
07070100005ff4000081a40000000000000002000000013ac038a600000040000000200000000000000000000000000000002700000003reloc/time/help/system_time.ru_SU.html    <header>饕磐 笊釉磐</header>
饕磐 由釉磐蜗窍 纤艺峙紊

<hr>
07070100005ff5000081a40000000000000002000000013ac038a60000003c000000200000000000000000000000000000002400000003reloc/time/help/system_time.sv.html   <header>Systemtid</header>
Den tid som omgivningen har.
<hr>07070100005ff6000081a40000000000000002000000013ac038a600000029000000200000000000000000000000000000002c00000003reloc/time/help/system_time.zh_TW.Big5.html   <header>╰参丁</header>
吏挂丁
<hr>   07070100005ff7000081a40000000000000002000000013ac038a600000118000000200000000000000000000000000000002300000003reloc/time/help/timeserver.es.html    <header>Servidor de Hora</header>

Un servidor puede ofrecer el servicio 'hora del d韆', el cual devuele la hora
en curso del sistema.<br>
Se puede ofrecer este servicio int閞namente con inetd.<p>

Este resultado puede aplicarse a la hora del sistema o a la de hardware.<p>

<hr>
07070100005ff8000081a40000000000000002000000013ac038a6000000fb000000200000000000000000000000000000002300000003reloc/time/help/timeserver.fr.html    <header>Serveurs de Temps</header>

Un serveur peut offrir le service 'daytime' qui renvoie l'heure courante du syst鑝e.<br>
Ce service peut 阾re offert  l'interne par inetd.<p>

Ce r閟ultat peut 阾re appliqu  l'heure syst鑝e ou mat閞iel.<p>

<hr>
 07070100005ff9000081a40000000000000002000000013ac038a6000000ec000000200000000000000000000000000000002000000003reloc/time/help/timeserver.html   <header>Time Server</header>

A server can offer the service 'daytime' which return the current system time.<br>
This service can be offered internaly with inetd.<p>

This result can ben applied to the system or hardware time.<p>

<hr>
07070100005ffa000081a40000000000000002000000013ac038a600000103000000200000000000000000000000000000002300000003reloc/time/help/timeserver.hu.html    <header>Id鮧iszolg醠</header>

Egy kiszolg醠, ami rendelkezik a 'daytime' szolg醠tat醩sal, amely a jelenlegi rendszerid鮰 adja v醠aszul.<br>
Ez a szolg醠tat醩 az inetd-be van be閜韙ve.<p>

Ez az 閞t閗 閞v閚yes韙het rendszer- vagy hardwareid鮧閚t.<p>

<hr>
 07070100005ffb000081a40000000000000002000000013ac038a60000011e000000200000000000000000000000000000002300000003reloc/time/help/timeserver.pl.html    <header>Serwer czasu</header>

Jest to serwer, kt髍y udost阷nia us硊g 'daytime' zwracaj眂 bie勘cy czas
systemowy.<br> 

Us硊ga ta mo縠 by obs硊giwana przez inetd jako jego wewn阾rzna funkcja. <p>

Wynik mo縠 by zastosowany do ustawienia czasu systemowego lub sprz阾owego.
<p>

<hr>
  07070100005ffc000081a40000000000000002000000013ac038a600000122000000200000000000000000000000000000002600000003reloc/time/help/timeserver.ru_RU.html <header>彦疴屦 吗屐屙</header>

彦疴屦 祛驽 镳邃铖蜞怆螯 皴疴桉 'daytime', 觐蝾瘥 钺羼镥麒忄弪 桧纛痨圉桢  蝈牦 怵屐屙.<br>
泥眄 皴疴桉 祛驽 疣犷蜞螯 镱 箫疣怆屙桢 inetd.<p>

软纛痨圉 溧眄钽 皴疴桉 祛驽 猁螯 镳桁屙屙  耔耱屐眍祗 怵屐屙 桦 觐 怵屐屙 鬣耦.<p>

<hr>
  07070100005ffd000081a40000000000000002000000013ac038a600000122000000200000000000000000000000000000002600000003reloc/time/help/timeserver.ru_SU.html <header>笈易乓 饕磐盼</header>

笈易乓 拖峙 幸拍嫌粤滋言 优易捎 'daytime', 讼韵屹 下庞信奚琢旁 晌葡彝撩膳  耘苏菖 滓磐盼.<br>
淞挝偈 优易捎 拖峙 伊孪粤载 邢 招伊滋盼膳 inetd.<p>

槲葡彝撩裳 牧挝锨 优易捎 拖峙 沦载 幸赏盼盼  由釉磐蜗驼 滓磐盼 商 讼 滓磐盼 蘖酉.<p>

<hr>
  07070100005ffe000081a40000000000000002000000013ac038a6000000d3000000200000000000000000000000000000002300000003reloc/time/help/timeserver.sv.html    <header>Tidsserver</header>

Server som erbjuder tj鋘sten 'daytime', som returnerar systemtiden.
<br>Denna tj鋘st kan internt sk鰐as med inetd.

<p>Resultatet kan anv鋘das till system- eller h錼dvarutiden.
<hr>
 07070100005fff000081a40000000000000002000000013ac038a6000000b2000000200000000000000000000000000000002b00000003reloc/time/help/timeserver.zh_TW.Big5.html    <header>丁狝竟</header>

矗ㄑ 'daytime' 狝叭狝竟, ウ紆ヘ玡╰参丁.<br>
硂狝叭砆 indet ず场┮矗ㄑ.<p>

硂挡狦甅ノ╰参丁┪祑砰丁.<p>

<hr>
  07070100007752000041ed0000000000000001000000023ac03c9500000000000000200000000000000000000000000000001200000003reloc/time/images 07070100007753000081a40000000000000002000000013ac038a600000211000000200000000000000000000000000000001b00000003reloc/time/images/icon.gif    GIF89a0 0   烫   烫H睲z櫃櫘裁fff  !Made with GIMP !
  ,    0 0  蒊8胪`(庝thZ偭峋iq :M輪`!勸v3趉坔⑨勞V栓秞zs讘)v涋tN4骇Lx苘j佢)簕齋6xeoi哱Acy卹i^]嶼|p晳垐嶥殰潏O[^-o彟瀆P5gRP皰窢琑昬ジ噁B碵毮[ɡK娒濶惶6Q矢M足議禨瑬掮扳火錮MT(g}穲溴豋溤Cq疊奣匿須M緜.搕.O *]8(伃!H翂烘8P>!?&	e詭(RpW-JM-G炋衮諮7鸥馑t興鶿	E鈫6#戌枦N7莳u*H);4^覚廷R濶4uyUP"o兪bK8?畋ⅥN柖蚣J朠朢硇 茗C極L稈吻':&髝阠耮0m鷸~` 收<翞M欢  ;   0707010001026c000081e40000000000000002000000013ac038a6000014ea000000200000000000000000000000000000001500000003reloc/time/index.cgi  #!/usr/local/bin/perl

require "./time-lib.pl";

local ($rawdate, $rawhwdate, %system_date, $rawtime, %hw_date, $txt);
$txt = "";

&error( $text{ 'acl_error' } ) if( $access{ 'sysdate' } && $access{ 'hwdate' } );
&error( &text( 'error_cnf', "<tt>date</tt>" ) ) if( !$access{'sysdate'} && !&has_command( "date" ) );
&error( &text( 'error_cnf', "<tt>hwclock</tt>" ) ) if( !$access{'hwdate'} && $config{'hwtime'} && !&has_command( "hwclock" ) );

&header( $text{ 'index_title' }, "", "index", 1, 1, undef );
print( "<hr>" );

if( !$access{'sysdate'} )
{
  $rawdate = `date`;
  chop( $rawdate );
  $rawdate =~ s/ {1,}/ /g;

  ( $system_date{ 'day' }, $system_date{ 'month' }, $system_date{ 'date' }, $rawtime, $_, $system_date{ 'year' } ) = split( / /, $rawdate );
  ( $system_date{ 'hour' }, $system_date{ 'minute' }, $system_date{ 'second' } ) = split( /:/, $rawtime );

  print( 
"<p><form action=apply.cgi>",
  &tabletime( &hlink( $text{ 'sys_title' }, "system_time" ), %system_date ),
  "<input type=submit name=action value=\"", $text{ 'action_apply' }, "\">",
  $config{'hwtime'} ? " <input type=submit name=action value=\"".$text{ 'action_sync_s' }."\">" : "", "</form>" );
}

if( !$access{'hwdate'} && $config{'hwtime'} )
{
  $rawhwdate = `hwclock`;
  $rawhwdate =~ s/ {1,}/ /g;

  ( $hw_date{ 'day' }, $hw_date{ 'month' }, $hw_date{ 'date' }, $rawtime, $hw_date{ 'year' } ) = split( / /, $rawhwdate );
  ( $hw_date{ 'hour' }, $hw_date{ 'minute' }, $hw_date{ 'second' } ) = split( /:/, $rawtime );

  if( !$access{ 'sysdate' } )
  {
    $hw_date{ 'second' } = $system_date{ 'second' } if( $hw_date{ 'second' } - $system_date{ 'second' } <= $config{ 'lease' } );
  }
    
print( 
"<p><form action=apply.cgi>",
  &tabletime( &hlink( $text{ 'hw_title' }, "hardware_time" ), %hw_date ),
  "<input type=submit name=action value=\"", $text{ 'action_save' }, "\">",
  " <input type=submit name=action value=\"", $text{ 'action_sync' }, "\">",
"</form><p>" );
}

if( ( !$access{ 'sysdate' } && &has_command( "date" ) ) || ( !$access{ 'hwdate' } && &has_command( "hwclock" ) ) )
{
  print(
"<form action=apply.cgi>",
  "<table nosave border width=\"100%\">",
	"<tr ", $tb, ">",
	  "<td><b>", &hlink( $text{ 'index_timeserver' }, "timeserver" ), "</b></td>",
	"</tr><tr ", $cb, ">",
	  "<td>",
		$text{ 'index_address' }, " ",
  		&p_entry( "timeserver", $config{'timeserver'}, 30 ),
		" <input type=submit name=action value=\"", $text{ 'action_timeserver_sys' }, "\">",
		$config{'hwtime'} ? "<input type=submit name=action value=\"$text{ 'action_timeserver_hw' }\">" : "",
	  "</td>",
	"</tr>",
  "</table>",
"</form>" );
}

#if ($zonelink = readlink($config{'zonelink'})) {
#	print "<form action=savezone.cgi>\n";
#	print "<table border width=100%>\n";
#	print "<tr $tb> <td><b>$text{'index_zone'}</b></td> </tr>\n";
#	print "<tr $cb> <td valign=top>$text{'index_tz'}\n";
#	print "<select name=zone size=5>\n";
#	open(TAB, $config{'zonetab'});
#	while(<TAB>) {
#		s/\r|\n//g;
#		s/#.*$//;
#		if (/^(\S+)\s+(\S+)\s+(\S+)\s*(.*)/) {
#			printf "<option %s>%s\n",
#				"$config{'zonedir'}/$3" eq $zonelink
#					? "selected" : "", $3;
#			}
#		}
#	close(TAB);
#	print "</select></td> </tr>\n";
#	print "</table>\n";
#	print "<input type=submit value='$text{'action_savezone'}'>\n";
#	print "</form>\n";
#	}

print "<hr>\n";
&footer( "/", $text{ 'index' } );

sub tabletime
{
  my ( $label, %src ) = @_,
  %assoc_day = ( "Mon", $text{ 'day_1' }, "Tue", $text{ 'day_2' }, "Wed", $text{ 'day_3' }, "Thu", $text{ 'day_4' }, "Fri", $text{ 'day_5' }, "Sat", $text{ 'day_6' }, "Sun", $text{ 'day_0' } ),
  %assoc_month = ( "Jan", $text{ 'month_1' }, "Feb", $text{ 'month_2' }, "Mar", $text{ 'month_3' }, "Apr", $text{ 'month_4' }, "May", $text{ 'month_5' }, "Jun", $text{ 'month_6' }, "Jul", $text{ 'month_7' }, "Aug", $text{ 'month_8' }, "Sep", $text{ 'month_9' }, "Oct", $text{ 'month_10' }, "Nov", $text{ 'month_11' }, "Dec", $text{ 'month_12' } );

  return
"<table nosave border width=\"100%\"><tr ". $tb. "><td>". $label. "</td></tr></table>\n".
"<table nosave border width=\"100%\">".
  "<tr ". $cb. ">".
	"<td nosave><b>". $text{ 'day' }. "</b></td>\n".
	"<td nosave><b>". $text{ 'date' }. "</b></td>\n".
	"<td nosave><b>". $text{ 'month' }. "</b></td>\n".
	"<td nosave><b>". $text{ 'year' }. "</b></td>\n".
	"<td><b>". $text{ 'hour' }. "</b></td>\n".
  "</tr>\n<tr ". $cb. ">".
	"<td>". $assoc_day{ $src{ 'day' } }."</td>\n".
	"<td>". &p_select( "date", $src{ 'date' }, ( 1..31 ) ). "</td>\n".
	"<td>". &p_select_wdl( "month", $assoc_month{ $src{ 'month' } }, "01",( $text{ 'month_1' }, "02", $text{ 'month_2' }, "03", $text{ 'month_3' }, "04", $text{ 'month_4' }, "05", $text{ 'month_5' }, "06", $text{ 'month_6' }, "07", $text{ 'month_7' }, "08", $text{ 'month_8' }, "09", $text{ 'month_9' }, "10", $text{ 'month_10' }, "11", $text{ 'month_11' }, "12", $text{ 'month_12' } ) ). "</td>\n".
	"<td>". &p_select( "year", $src{ 'year' }, ( 1969..2037 ) ). "</td>\n".
	"<td>". &p_select( "hour", $src{ 'hour' }, ( "00", "01", "02", "03", "04", "05", "06", "07", "08", "09", 10..23 ) ). "\n:". &p_select( "minute", $src{ 'minute' }, ( "00", "01", "02", "03", "04", "05", "06", "07", "08", "09", 10..59) ). ":". &p_select( "second", $src{ 'second' }, ( "00", "01", "02", "03", "04", "05", "06", "07", "08", "09", 10..59 ) ). "</td>\n".
  "</tr>\n".
"</table>";
}
  07070100008e7e000041ed0000000000000001000000023ac03c9500000000000000200000000000000000000000000000001000000003reloc/time/lang   07070100008e7f000081a40000000000000002000000013ac038a6000002df000000200000000000000000000000000000001300000003reloc/time/lang/de    index_title=System Zeit

action_save=Speichern
action_apply=Anwenden
action_sync=Sync mit System Zeit

acl_sys=Benutzer darf Systemzeit bearbeiten
acl_hw=Benutzer darf Hardware Zeit bearbeiten
acl_yes=Ja
acl_no=Nein
acl_error=Sie haben Zugriff auf das System-Zeit Modul, aber Sie haben weder eine Berechtigung zum &Auml;ndern der System- noch der Hardware-Zeit
acl_nosys=Sie haben keine Berechtigung, die SystemZeit zu bearbeiten
acl_nohw=Sie haben keine Berechtigung, die Hardware-Zeit zu bearbeiten

sys_title=System Zeit
hw_title=Hardware Zeit

day=Tag
month=Monat
date=Datum
hour=Stunde
year=Jahr

error_cnf=Fehler : $1 Kommando nicht gefunden
error_hw=Kann Hardware Zeit nicht setzen : $1
error_sync=Kann System-Zeit nicht setzen
 07070100008e80000081a40000000000000002000000013ac038a6000004ff000000200000000000000000000000000000001300000003reloc/time/lang/en    index_title=System Time
index_timeserver=Time Server
index_address=Host/Address
index_zone=Timezone
index_tz=Current location

action_save=Save
action_apply=Apply
action_sync=Sync system time with hardware time
action_sync_s=Sync hardware time with system time
action_timeserver_sys=Sync system time
action_timeserver_hw=Sync hardware time
action_savezone=Change timezone

acl_sys=User can edit system time
acl_hw=User can edit hardware time
acl_yes=Yes
acl_no=No
acl_error=You have access to the system time module, but you can't edit neither system time or hardware time
acl_nosys=You are not allowed to edit system time
acl_nohw=You are not allowed to edit hardware time

sys_title=System Time
hw_title=Hardware Time

day=Day
month=Month
date=Date
hour=Hour
year=Year

error_cnf=Error : $1 command not found
error_hw=Can't set the hardware time : $1
error_sync=Can't sync with system time : $1

log_set_date=Set system time to $1
log_set_hwclock=Set hardware clock to $1
log_remote_date=Fetched system time from $2
log_remote_hwclock=Fetched hardware time from $2
log_remote_date_l=Fetched system time $1 from $2
log_remote_hwclock_l=Fetched hardware time $1 from $2
log_sync=Synchronised system time with hardware time
log_sync_s=Synchronised hardware time with system time

 07070100008e81000081a40000000000000002000000013ac038a6000005ca000000200000000000000000000000000000001300000003reloc/time/lang/es    index_title=Hora del Sistema
index_timeserver=Servidor de Hora
index_address=M醧uina/Direcci髇
index_zone=Zona horaria
index_tz=localizaci髇 actual

action_save=Salvar
action_apply=Aplicar
action_sync=Sicronizar hora del sistema con la hora de hardware
action_sync_s=Sincronizar hora de hardware con la hora del sistema
action_timeserver_sys=Sincronizar hora del sistema
action_timeserver_hw=Sincronizar hora de hardware
action_savezone=Cambiar zona horaria

acl_sys=Los usuarios pueden editar la hora del sistema
acl_hw=Los usuarios pueden editar la hora de hardware
acl_yes=S
acl_no=No
acl_error=Tienes acceso al m骴ulo de hora del sistema pero no puedes editar ni la hora del sistema ni la de hardware
acl_nosys=No est醩 autorizado a editar la hora del sistema
acl_nohw=No est醩 autorizado a editar la hora de hardware

sys_title=Hora del Sistema
hw_title=Hora de Hardware

day=D韆
month=Mes
date=Fecha
hour=Hora
year=A駉

error_cnf=Error : comando $1 no hallado
error_hw=No puedo poner la hora de hardware : $1
error_sync=No puedo sincronizar con la hora del sistema: $1

log_set_date=Puesta hora de sistema a $1
log_set_hwclock=Puesto reloj de hardware a $1
log_remote_date=Cojida hora de sistema de $2
log_remote_hwclock=Cojida hora de hardware de $2
log_remote_date_l=Cojida hora de sistema $1 de $2
log_remote_hwclock_l=Cojida hora de hardware $1 de $2
log_sync=Hora de sistema sicronizada con hora de hardware
log_sync_s=Hora de hardware sincronizada con hora de sistema

  07070100008e82000081a40000000000000002000000013ac038a6000003dd000000200000000000000000000000000000001300000003reloc/time/lang/fr    index_title=Heure Syst鑝e
index_timeserver=Serveur de temps
index_address=Hote/Adresse

action_save=Enregistrer
action_apply=Appliquer
action_sync=Synchroniser l'heure syst鑝e avec l'heure mat閞iel
action_sync_s=Synchroniser l'heure mat閞iel avec l'heure syst鑝e
action_timeserver_sys=Synchroniser  l'heure syst鑝e
action_timeserver_hw=Synchroniser  l'heure mat閞iel

acl_sys=L'usager peut 閐iter l'heure du syst鑝e
acl_hw=L'usager peut 閐iter l'heure mat閞iel
acl_yes=Oui
acl_no=Non
acl_error=Vous avez acc鑣 au module de l'heure, mais vous n'阾es pas autoris  閐iter l'heure syst鑝e ni mat閞iel
acl_nosys=Vous n'阾es pas autoris  閐iter l'heure syst鑝e
acl_nohw=Vous n'阾es pas autoris  閐iter l'heure mat閞iel

sys_title=Heure Syst鑝e
hw_title=Heure Mat閞iel

day=Journ閑
month=Mois
date=Date
hour=Heure
year=Ann閑

error_cnf=Erreur : $1 commande introuvable
error_hw=Impossible d'enregistrer l'heure syst鑝e : $1
error_sync=Impossible de synchroniser avec l'heure syst鑝e : $1
   07070100008e83000081a40000000000000002000000013ac038a6000003d6000000200000000000000000000000000000001300000003reloc/time/lang/hu    index_title=Rendszerid
index_timeserver=Id鮧iszolg醠
index_address=Host/C韒

action_save=Ment閟
action_apply=蓃v閚yes韙閟
action_sync=A rendszerid szinkroniz醕i骿a a hardware髍醰al
action_sync_s=A hardware髍a szinkroniz醕i骿a a rendszerid鮲el
action_timeserver_sys=Rendszerid szinkroniz醠醩a
action_timeserver_hw=Hardware髍a szinkroniz醠醩a

acl_sys=A felhaszn醠 醫 tudja 醠l韙ani a rendszerid鮰
acl_hw=A felhaszn醠 醫 tudja 醠l韙ani a hardware髍醫
acl_yes=Igen
acl_no=Nem
acl_error=謓nek van hozz醘閞閟e a rendszerid modulhoz, de sem a rendszerid鮰, sem a hardwareid鮰 nem tudja 醫醠l韙ani
acl_nosys=謓nek nincs jogosult醩ga a rendszerid 醫醠l韙醩醜oz
acl_nohw=謓nek nincs jogosults醙a a hardware髍a 醫醠l韙醩醜oz

sys_title=Rendszerid
hw_title=Hardwareid

day=Nap
month=H髇ap
date=Hanyadika
hour=觬a
year=蓈

error_cnf=Hiba : $1 parancs nem l閠ezik
error_hw=A hardware髍a be醠l韙醩a nem siker黮t : $1
error_sync=A rendszerid鮲el t鰎t閚 szinkroniz醕i nem siker黮t : $1
  07070100008e84000081a40000000000000002000000013ac038a6000005e1000000200000000000000000000000000000001300000003reloc/time/lang/pl    index_title=Czas systemowy
index_timeserver=Serwer czasu
index_address=Nazwa/Adres
index_zone=Strefa czasowa
index_tz=Bie勘ca lokalizacja

action_save=Zachowaj
action_apply=Zastosuj
action_sync=Synchronizuj czas systemowy z czasem sprz阾owym
action_sync_s=Synchronizuj czas sprz阾owy z czasem systemowym
action_timeserver_sys=Synchronizuj czas systemowy
action_timeserver_hw=Synchronizuj czas sprz阾owy
action_savezone=Zmie stref czasow

acl_sys=U縴tkownik mo縠 zmienia czas systemowy
acl_hw=U縴tkownik mo縠 zmienia czas sprz阾owy
acl_yes=Tak
acl_no=Nie
acl_error=Masz dost阷 do modu硊 czasu systemowego, ale nie mo縠sz zmienia ani czasu systemowego ani sprz阾owego
acl_nosys=Nie masz uprawnie do zmiany czasu systemowego
acl_nohw==Nie masz uprawnie do zmiany czasu sprz阾owego

sys_title=Czas systemowy
hw_title=Czas sprz阾owy

day=Dzie tygodnia
month=Miesi眂
date=Dzie
hour=Godzina
year=Rok

error_cnf=B潮d&nbsp;: $1 nie ma takiego polecenia
error_hw=Nie mog ustawi czasu sprz阾owego&nbsp;: $1
error_sync=Nie mog ustawi czasu systemowego&nbsp;: $1

log_set_date=Ustawiono czas systemowy na $1
log_set_hwclock=Ustawiono zagar sprz阾owy na $1
log_remote_date=Pobrano czas systemowy z&nbsp;$2
log_remote_hwclock=Pobrano czas sprz阾owy z&nbsp;$2
log_remote_date_l=Pobrano czas systemowy $1 z&nbsp;$2
log_remote_hwclock_l=Pobrano czas sprz阾owy $1 z&nbsp;$2
log_sync=Zsynchronizowano czas systemowy z&nbsp;zegarem sprz阾owym
log_sync_s=Zsynchronizowano zegar sprz阾owy z&nbsp;czasem systemowym
   07070100008e85000081a40000000000000002000000013ac038a600000391000000200000000000000000000000000000001600000003reloc/time/lang/ru_RU month=体
acl_nosys=锣 礤 疣琊屮屙 疱溧牝桊钼囹 耔耱屐眍 怵屐
action_apply=橡桁屙栩
error_sync=湾 祛泱 耔眭痤龛玷痤忄螯  耔耱屐睇 怵屐屙屐 : $1
acl_hw=项朦珙忄蝈朦 祛驽 疱溧牝桊钼囹 怵屐 鬣耦
date=泥蜞
action_timeserver_hw=谚眭-螯 鬣覃
acl_yes=泥
sys_title=吗屐 谚耱屐
error_cnf=硒栳赅 : $1 觐爨礓 礤 磬殇屙
acl_no=湾
action_save=杨躔囗栩
action_sync_s=谚眭-螯 鬣覃  耔耱屐睇 怵屐屙屐
acl_sys=项朦珙忄蝈朦 祛驽 疱溧牝桊钼囹 耔耱屐眍 怵屐
acl_error=蔓 桁邋蝈 漕耱箫  祛潴膻 耔耱屐眍泐 怵屐屙, 眍 恹 礤 祛驽蝈 疱溧牝桊钼囹 龛 耔耱屐眍 怵屐, 龛 怵屐 鬣耦.
acl_nohw=锣 礤 疣琊屮屙 疱溧牝桊钼囹 怵屐 鬣耦
index_address=疹耱/冷疱
year=妙
index_title=谚耱屐眍 吗屐
action_timeserver_sys=谚眭-螯 耔耱屐眍 怵屐
day=腻睃
hw_title=吗屐 奏耦
hour=奏
error_hw=湾 祛泱 篑蜞眍忤螯 怵屐 鬣耦 : $1
action_sync=谚眭-螯 耔耱屐眍 怵屐  鬣襦扈
index_timeserver=彦疴屦 吗屐屙
   07070100008e86000081a40000000000000002000000013ac038a600000396000000200000000000000000000000000000001600000003reloc/time/lang/ru_SU index_title=笊釉磐蜗 饕磐
index_timeserver=笈易乓 饕磐盼
index_address=柘釉/崮遗

action_save=笙纫廖稍
action_apply=鹨赏盼稍
action_sync=笊稳-载 由釉磐蜗 滓磐  蘖恿蜕
action_sync_s=笊稳-载 蘖淤  由釉磐钨 滓磐盼磐
action_timeserver_sys=笊稳-载 由釉磐蜗 滓磐
action_timeserver_hw=笊稳-载 蘖淤

acl_sys=鹣特谙琢耘特 拖峙 遗牧嗽梢献猎 由釉磐蜗 滓磐
acl_hw=鹣特谙琢耘特 拖峙 遗牧嗽梢献猎 滓磐 蘖酉
acl_yes=淞
acl_no=钆
acl_error=髻 赏排耘 南釉招  拖恼汤 由釉磐蜗窍 滓磐盼, 蜗 踪 闻 拖峙耘 遗牧嗽梢献猎 紊 由釉磐蜗 滓磐, 紊 滓磐 蘖酉.
acl_nosys=髁 闻 伊谝袍盼 遗牧嗽梢献猎 由釉磐蜗 滓磐
acl_nohw=髁 闻 伊谝袍盼 遗牧嗽梢献猎 滓磐 蘖酉

sys_title=饕磐 笊釉磐
hw_title=饕磐 酉

day=渑呜
month=砼友
date=淞粤
hour=
year=缦

error_cnf=镗陕肆 : $1 讼土文 闻 瘟誓盼
error_hw=钆 拖钦 沼粤蜗咨载 滓磐 蘖酉 : $1
error_sync=钆 拖钦 由稳蚁紊谏蚁琢载友  由釉磐钨 滓磐盼磐 : $1
  07070100008e87000081a40000000000000002000000013ac038a60000051c000000200000000000000000000000000000001300000003reloc/time/lang/sv    index_title=Systemtid
index_timeserver=Tidsserver
index_address=Dator/adress
index_zone=Tidszon
index_tz=Plats

action_save=Spara
action_apply=Ta i drift
action_sync=Synkronisera systemtiden med h錼dvarutid
action_sync_s=Synkronisera h錼dvarutiden med systemtid
action_timeserver_sys=Synkronisera systemtiden
action_timeserver_hw=Synkronisera h錼dvarutiden
action_savezone=膎dra tidszon

acl_sys=Anv鋘daren f錼 鋘dra systemtiden
acl_hw=Anv鋘daren f錼 鋘dra h錼dvarutiden
acl_yes=Ja
acl_no=Nej
acl_error=Du f錼 komma 錿 systemtidmodulen, men du f錼 varken 鋘dra systemtiden eller h錼dvarutiden
acl_nosys=Du f錼 inte 鋘dra systemtiden
acl_nohw=Du f錼 inte 鋘dra h錼dvarutiden

sys_title=Systemtid
hw_title=H錼dvarutid

day=Dag
month=M錸ad
date=Datum
hour=Timme
year=舝

error_cnf=Fel: kommando $1 finns inte
error_hw=Det g錼 inte att st鋖la h錼dvarutiden: $1
error_sync=Det g錼 inte att synkronisera med systemtiden: $1

log_set_date=Satte systemtiden till $1
log_set_hwclock=Satte h錼dvarutiden till $1
log_remote_date=H鋗tade systemtiden fr錸 $2
log_remote_hwclock=H鋗tade h錼dvarutiden fr錸 $2
log_remote_date_l=H鋗tade systemtiden $1 fr錸 $2
log_remote_hwclock_l=H鋗tade h錼dvarutiden $1 fr錸 $2
log_sync=Synkroniserade systemtiden med h錼dvarutiden
log_sync_s=Synkroniserade h錼dvarutiden med systemtiden
07070100008e88000081a40000000000000002000000013ac038a600000596000000200000000000000000000000000000001300000003reloc/time/lang/tr    index_title=Sistem Zaman
index_timeserver=Zaman Sunucusu
index_address=Makine/Adres
index_zone=Zaman B鰈gesi
index_tz=Yer

action_save=Kaydet
action_apply=Uygula
action_sync=Sistem saatini donan齧 saati ile e䏝amanl hale getir.
action_sync_s=Donan齧 saatini sistem saati ile e䏝amanl hale getir
action_timeserver_sys=Sistem saatini ayarla
action_timeserver_hw=Donan齧 saatini ayarla
action_savezone=Zaman b鰈gesini de餴⺶ir

acl_sys=Kullan齝 sistem saatini de餴⺶irebilsin
acl_hw=Kullan齝 donan齧 saatini de餴⺶irebilsin
acl_yes=Evet
acl_no=Hay齬
acl_error=Sistem zaman mod黮黱e giri㱮nize izin verildi, fakat sistem ya da donan齧 saatini de餴⺶irmek i鏸n izininiz yoktur
acl_nosys=Sistem saatini de餴⺶irmek i鏸n izininiz yoktur
acl_nohw=Donan齧 saatini de餴⺶irmek i鏸n izininiz yoktur

sys_title=Sistem Saati
hw_title=Donan齧 Saati

day=G黱
month=Ay
date=Tarih
hour=Saat
year=Y齦

error_cnf=Hata : $1 komutu bulunamad
error_hw=Donan齧 saati bu 㧐kilde ayarlanamaz : $1
error_sync=Sistem zaman ile e䏝amanl hale getirilemedi : $1

log_set_date=Sistem zaman $1 yap齦d
log_set_hwclock=Donan齧 saati $1 yap齦d
log_remote_date=Sistem zaman $2'den al齨d
log_remote_hwclock=Donan齧 saati $2'den al齨d
log_remote_date_l=Sistem zaman $1, $2'den al齨d
log_remote_hwclock_l=Donan齧 saati $1, $2'den al齨d
log_sync=Sistem zaman donan齧 saati ile e zamanland
log_sync_s=Donan齧 saati sistem zaman ile e zamaanland


  07070100008e89000081a40000000000000002000000013ac038a6000003d8000000200000000000000000000000000000001600000003reloc/time/lang/zh_CN index_title=系统时间
index_timeserver=时间服务器
index_address=主机/地址
index_zone=时区
index_tz=当前位置

action_save=保存
action_apply=应用
action_sync=按照硬件时间同步系统时间
action_sync_s=按照系统时间同步硬件时间
action_timeserver_sys=同步系统时间
action_timeserver_hw=同步硬件时间
action_savezone=改变时区

acl_sys=用户可以编辑系统时间
acl_hw=用户可以编辑硬件时间
acl_yes=是
acl_no=否
acl_error=你可以访问系统时间模块, 但不能修改系统时间和硬件时间
acl_nosys=你无权修改系统时间
acl_nohw=你无权修改硬件时间

sys_title=系统时间
hw_title=硬件时间

day=星期
month=月
date=日期
hour=时间
year=年

error_cnf=错误 : $1 命令没有找到
error_hw=无法设置硬件时间 : $1
error_sync=无法设置系统时间 : $1

log_set_date=设置系统时间到 $1
log_set_hwclock=设置硬件时钟到 $1
log_remote_date=从 $2 得到系统时间
log_remote_hwclock=从 $2 得到硬件时间
log_remote_date_l=从 $2 得到系统时间 $1
log_remote_hwclock_l=从 $2 得到硬件时间 $1
log_sync=用硬件时间同步系统时间
log_sync_s=用系统时间同步硬件时间

07070100008e8a000081a40000000000000002000000013ac038a600000284000000200000000000000000000000000000001b00000003reloc/time/lang/zh_TW.Big5    index_title=╰参丁
index_timeserver=丁狝竟
index_address=诀/

action_save=纗
action_apply=甅ノ
action_sync=祑砰丁˙╰参丁
action_sync_s=╰参丁˙祑砰丁
action_timeserver_sys=˙╰参丁
action_timeserver_hw=˙祑砰丁

acl_sys=ㄏノ絪胯╰参丁
acl_hw=ㄏノ絪胯祑砰丁
acl_yes=琌
acl_no=
acl_error=眤竒╰参丁家舱, 眤ぃ絪胯╰参丁┪祑砰丁
acl_nosys=眤ぃ砆す砛絪胯╰参丁
acl_nohw=眤ぃ砆す砛絪胯祑砰丁

sys_title=╰参丁
hw_title=祑砰丁

day=ら句ぱ
month=る
date=ら
hour=
year=

error_cnf=岿粇: тぃ $1 ㏑
error_hw=礚猭砞﹚祑砰丁: $1
error_sync=礚猭籔╰参丁˙: $1
0707010001026d000081a40000000000000002000000013ac038a6000002f2000000200000000000000000000000000000001900000003reloc/time/log_parser.pl  # log_parser.pl
# Functions for parsing this module's logs

require './time-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p, $long) = @_;
if ($action eq 'remote') {
	local $tm = localtime($object);
	return &text($long ? "log_remote_${type}_l" : "log_remote_${type}",
		     "<i>$tm</i>", "<tt>$p->{'timeserver'}</tt>");
	}
elsif ($action eq 'set') {
	local $tm = localtime($object);
	return &text("log_set_${type}", "<i>$tm</i>");
	}
elsif ($action eq 'sync') {
	return $text{'log_sync'};
	}
elsif ($action eq 'sync_s') {
	return $text{'log_sync_s'};
	}
else {
	return undef;
	}
}

  0707010001026e000081a40000000000000002000000013ac038a6000001cb000000200000000000000000000000000000001700000003reloc/time/module.info    desc_zh_CN=系统时间
name=Time
desc_pt=Tempo do Sistema
desc_tr=Sistem Zaman
desc_fr=Temps Syst鑝e
desc_es=Hora del Sistema
desc_sv=Systemtid
desc_de=System Zeit
desc_hu=Rendszerid
desc_ru_SU=笊釉磐蜗 饕磐
desc_pl=Czas systemowy
category=hardware
os_support=redhat-linux slackware-linux suse-linux debian-linux open-linux turbo-linux cobalt-linux solaris hpux macos
desc_zh_TW.Big5=╰参丁
desc=System Time
risk=low medium high
desc_ru_RU=谚耱屐眍 吗屐
 0707010001026f000081e40000000000000002000000013ac038a6000004c2000000200000000000000000000000000000001700000003reloc/time/time-lib.pl    #!/usr/local/bin/perl

do "../web-lib.pl";

&init_config();
%access = &get_module_acl();
$| = 1;

sub p_link
{
    my ( $dest, $text ) = @_;
    return "<a href=\"". $dest. "\">". $text. "</a>";
}

sub p_radio
{
    my ( $name, $checked, @list ) = @_;
    local ($out, $size, $i);
    $size = @list; $i = 0;

    do
    {
	$out .= " <input type=radio name=".$name." value=".$list[$i];
	$out .= " checked" if( $checked eq $list[$i++] );
	$out .="> ".$list[$i++];
    } while( $i < $size );

    return $out;
}

sub p_entry
{
    my ( $name, $value, $size ) = @_;

    $size ? return "<input name=". $name. " size=". $size." value=\"". $value."\">" : return "<input name=". $name. " value=\"". $value."\">";
}

sub p_select_wdl
{
  my ( $name, $selected, @list ) = @_;
  local $out = "<select name=$name>";
  local $i = 0;
  local $size = @list;

  do
  {
	$out .= "<option value=$list[$i++]";
	$out .= " selected" if( $selected eq $list[$i] );
	$out .= ">$list[$i++]";
  } while( $i < $size );
  $out .= "</select>";

}

sub p_select
{
  my ( $name, $selected, @list ) = @_;
  local (@newlist, $item);

  foreach $item ( @list )
  {
	push( @newlist, $item, $item );
  }

  p_select_wdl( $name, $selected, @newlist );
}
  07070100010270000081e40000000000000002000000013ac038a6000000b9000000200000000000000000000000000000001300000003reloc/time/try.cgi    #!/usr/local/bin/perl

require "./time-lib.pl";

&open_socket( "lempire.qc.ca", "13", "SOCK" );

&header( "", "" );

#foreach ( <SOCK> )
#{
  print( <SOCK>, "<br>" );
#}
close( SOCK );
   0707010000bb69000081e40000000000000002000000013ac03886000010e8000000200000000000000000000000000000001700000003reloc/user_chooser.cgi    #!/usr/local/bin/perl
# user_chooser.cgi
# This CGI generated the HTML for choosing a user or list of users.

require './web-lib.pl';
&init_config();
&ReadParse();
%access = &get_module_acl();

if ($in{'multi'}) {
	# selecting multiple users.
	if ($in{'frame'} == 0) {
		# base frame
		&PrintHeader();
		print "<script>\n";
		@ul = split(/\s+/, $in{'user'});
		$len = @ul;
		print "sel = new Array($len);\n";
		print "selr = new Array($len);\n";
		for($i=0; $i<$len; $i++) {
			print "sel[$i] = \"$ul[$i]\";\n";
			@uinfo = getpwnam($ul[$i]);
			if (@uinfo) { print "selr[$i] = \"$uinfo[6]\";\n"; }
			else { print "selr[$i] = \"???\";\n"; }
			}
		print "</script>\n";
		print "<title>$text{'users_title1'}</title>\n";
		print "<frameset cols='50%,50%'>\n";
		print "<frame src=\"/user_chooser.cgi?frame=1&multi=1\">\n";
		print "<frameset rows='*,50' frameborder=no>\n";
		print " <frame src=\"/user_chooser.cgi?frame=2&multi=1\">\n";
		print " <frame src=\"/user_chooser.cgi?frame=3&multi=1\" scrolling=no>\n";
		print "</frameset>\n";
		print "</frameset>\n";
		}
	elsif ($in{'frame'} == 1) {
		# list of all users to choose from
		&header();
		print "<script>\n";
		print "function adduser(u, r)\n";
		print "{\n";
		print "top.sel[top.sel.length] = u\n";
		print "top.selr[top.selr.length] = r\n";
		print "top.frames[1].location = top.frames[1].location\n";
		print "return false;\n";
		print "}\n";
		print "</script>\n";
		print "<font size=+1>$text{'users_all'}</font>\n";
		print "<table width=100%>\n";
		foreach $u (&get_users_list()) {
			if ($in{'user'} eq $u->[0]) { print "<tr $cb>\n"; }
			else { print "<tr>\n"; }
			$u->[6] =~ s/'/&#39;/g;
			print "<td width=20%><a href=\"\" onClick='return adduser(\"$u->[0]\", \"$u->[6]\")'>$u->[0]</a></td>\n";
			print "<td>$u->[6]</td> </tr>\n";
			}
		print "</table>\n";
		}
	elsif ($in{'frame'} == 2) {
		# show chosen users
		&header();
		print "<font size=+1>$text{'users_sel'}</font>\n";
		print <<'EOF';
<table width=100%>
<script>
function sub(j)
{
sel2 = new Array(); selr2 = new Array();
for(k=0,l=0; k<top.sel.length; k++) {
	if (k != j) {
		sel2[l] = top.sel[k];
		selr2[l] = top.selr[k];
		l++;
		}
	}
top.sel = sel2; top.selr = selr2;
location = location;
return false;
}
for(i=0; i<top.sel.length; i++) {
	document.write("<tr>\n");
	document.write("<td><a href=\"\" onClick='return sub("+i+")'>"+top.sel[i]+"</a></td>\n");
	document.write("<td>"+top.selr[i]+"</td>\n");
	}
</script>
</table>
EOF
		}
	elsif ($in{'frame'} == 3) {
		# output OK and Cancel buttons
		&header();
		print "<form>\n";
		print "<input type=button value=\"$text{'users_ok'}\" ",
		      "onClick='top.ifield.value = top.sel.join(\" \"); ",
		      "top.close()'>\n";
		print "<input type=button value=\"$text{'users_cancel'}\" ",
		      "onClick='top.close()'>\n";
		print "&nbsp;&nbsp;<input type=button value=\"$text{'users_clear'}\" onClick='top.sel = new Array(); top.selr = new Array(); top.frames[1].location = top.frames[1].location'>\n";
		print "</form>\n";
		}
	}
else {
	# selecting just one user .. display a list of all users to choose from
	&header();
	print "<script>\n";
	print "function select(f)\n";
	print "{\n";
	print "ifield.value = f;\n";
	print "top.close();\n";
	print "return false;\n";
	print "}\n";
	print "</script>\n";
	print "<title>$text{'users_title2'}</title>\n";
	print "<table width=100%>\n";
	foreach $u (&get_users_list()) {
		if ($in{'user'} eq $u->[0]) { print "<tr $cb>\n"; }
		else { print "<tr>\n"; }
		print "<td width=20%><a href=\"\" onClick='return select(\"$u->[0]\")'>$u->[0]</a></td>\n";
		print "<td>$u->[6]</td> </tr>\n";
		}
	print "</table>\n";
	}

sub get_users_list
{
local(@uinfo, @users, \%ucan);
if ($access{'uedit_mode'} == 2 || $access{'uedit_mode'} == 3) {
	map { $ucan{$_}++ } split(/\s+/, $access{'uedit'});
	}
setpwent();
while(@uinfo = getpwent()) {
	if ($access{'uedit_mode'} == 0 ||
	    $access{'uedit_mode'} == 2 && $ucan{$uinfo[0]} ||
	    $access{'uedit_mode'} == 3 && !$ucan{$uinfo[0]} ||
	    $access{'uedit_mode'} == 4 &&
		(!$access{'uedit'} || $uinfo[2] >= $access{'uedit'}) &&
		(!$access{'uedit2'} || $uinfo[2] <= $access{'uedit2'}) ||
	    $access{'uedit_mode'} == 5 && $uinfo[3] == $access{'uedit'}) {
		push(@users, [ @uinfo ]);
		}
	}
endpwent();
return sort { $a->[0] cmp $b->[0] } @users;
}

0707010000a39f000041ed0000000000000001000000053ac03ca500000000000000200000000000000000000000000000001000000003reloc/useradmin   0707010000a3a0000081a40000000000000002000000013ac0389000001f0e000000200000000000000000000000000000002000000003reloc/useradmin/acl_security.pl   
require './user-lib.pl';

# acl_security_form(&options)
# Output HTML for editing security options for the useradmin module
sub acl_security_form
{
local $o = $_[0];

print "<tr> <td valign=top><b>$text{'acl_uedit'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=uedit_mode value=0 %s> $text{'acl_uedit_all'}&nbsp;&nbsp;\n",
	$o->{'uedit_mode'} == 0 ? "checked" : "";
printf "<input type=radio name=uedit_mode value=1 %s> $text{'acl_uedit_none'}<br>\n",
	$o->{'uedit_mode'} == 1 ? "checked" : "";
printf "<input type=radio name=uedit_mode value=2 %s> $text{'acl_uedit_only'}\n",
	$o->{'uedit_mode'} == 2 ? "checked" : "";
printf "<input name=uedit_can size=40 value='%s'> %s<br>\n",
	$o->{'uedit_mode'} == 2 ? $o->{'uedit'} : "",
	&user_chooser_button("uedit_can", 1);
printf "<input type=radio name=uedit_mode value=3 %s> $text{'acl_uedit_except'}\n",
	$o->{'uedit_mode'} == 3 ? "checked" : "";
printf "<input name=uedit_cannot size=40 value='%s'> %s<br>\n",
	$o->{'uedit_mode'} == 3 ? $o->{'uedit'} : "",
	&user_chooser_button("uedit_cannot", 1);
printf "<input type=radio name=uedit_mode value=4 %s> $text{'acl_uedit_uid'}\n",
	$o->{'uedit_mode'} == 4 ? "checked" : "";
printf "<input name=uedit_uid size=6 value='%s'> - \n",
	$o->{'uedit_mode'} == 4 ? $o->{'uedit'} : "";
printf "<input name=uedit_uid2 size=6 value='%s'><br>\n",
	$o->{'uedit_mode'} == 4 ? $o->{'uedit2'} : "";
printf "<input type=radio name=uedit_mode value=5 %s> $text{'acl_uedit_group'}\n",
	$o->{'uedit_mode'} == 5 ? "checked" : "";
printf "<input name=uedit_group size=40 value='%s'> %s</td> </tr>\n",
	$o->{'uedit_mode'} == 5 ?
	 join(" ", map { "".&my_getgrgid($_) } split(/\s+/, $o->{'uedit'})) :"",
	&group_chooser_button("uedit_group", 1);

print "<tr> <td><b>$text{'acl_ucreate'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=ucreate value=1 %s> $text{'yes'}\n",
	$o->{'ucreate'} ? "checked" : "";
printf "<input type=radio name=ucreate value=0 %s> $text{'no'}</td> </tr>\n",
	$o->{'ucreate'} ? "" : "checked";

print "<tr> <td><b>$text{'acl_uid'}</b></td>\n";
print "<td colspan=3><input name=lowuid size=6 value='$o->{'lowuid'}'> -\n";
print "<input name=hiuid size=6 value='$o->{'hiuid'}'> &nbsp;\n";
printf "<input type=checkbox name=umultiple value=1 %s>\n",
	$o->{'umultiple'} ? "checked" : "";
print "$text{'acl_umultiple'}</td> </tr>\n";

print "<tr> <td><b>$text{'acl_ugroups'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=ugroups_def value=1 %s> $text{'acl_all'}\n",
	$o->{'ugroups'} eq "*" ? "checked" : "";
printf "<input type=radio name=ugroups_def value=0 %s>\n",
	$o->{'ugroups'} eq "*" ? "" : "checked";
printf "<input name=ugroups size=40 value='%s'> %s</td> </tr>\n",
	$o->{'ugroups'} eq "*" ? "" : $o->{'ugroups'},
	&group_chooser_button("ugroups", 1);

print "<tr> <td valign=top><b>$text{'acl_shells'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=shells_def value=1 %s> $text{'acl_any'}\n",
	$o->{'shells'} eq "*" ? "checked" : "";
printf "<input type=radio name=shells_def value=0 %s> $text{'acl_listed'}<br>\n",
	$o->{'shells'} eq "*" ? "" : "checked";
print "<textarea name=shells rows=3 cols=40>",
	$o->{'shells'} eq "*" ? "" : join("\n", split(/\s+/, $o->{'shells'})),
	"</textarea></td> </tr>\n";

print "<tr> <td><b>$text{'acl_epeopt'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=peopt value=1 %s> $text{'yes'}\n",
	$o->{'peopt'} ? "checked" : "";
printf "<input type=radio name=peopt value=0 %s> $text{'no'}</td> </tr>\n",
	$o->{'peopt'} ? "" : "checked";

print "<tr> <td valign=top><b>$text{'acl_home'}</b></td>\n";
printf "<td colspan=3><input name=home size=40 value='%s'> %s<br>\n",
	$o->{'home'}, &file_chooser_button("home", 1);
printf "<input type=checkbox name=autohome value=1 %s> %s</td> </tr>\n",
	$o->{'autohome'} ? "checked" : "",
	$text{'acl_autohome'};

print "<tr> <td colspan=4><hr></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'acl_gedit'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=gedit_mode value=0 %s> $text{'acl_gedit_all'}&nbsp;&nbsp;\n",
	$o->{'gedit_mode'} == 0 ? "checked" : "";
printf "<input type=radio name=gedit_mode value=1 %s> $text{'acl_gedit_none'}<br>\n",
	$o->{'gedit_mode'} == 1 ? "checked" : "";
printf "<input type=radio name=gedit_mode value=2 %s> $text{'acl_gedit_only'}\n",
	$o->{'gedit_mode'} == 2 ? "checked" : "";
printf "<input name=gedit_can size=40 value='%s'> %s<br>\n",
	$o->{'gedit_mode'} == 2 ? $o->{'gedit'} : "",
	&group_chooser_button("gedit_can", 1);
printf "<input type=radio name=gedit_mode value=3 %s> $text{'acl_gedit_except'}\n",
	$o->{'gedit_mode'} == 3 ? "checked" : "";
printf "<input name=gedit_cannot size=40 value='%s'> %s<br>\n",
	$o->{'gedit_mode'} == 3 ? $o->{'gedit'} : "",
	&group_chooser_button("gedit_cannot", 1);
printf "<input type=radio name=gedit_mode value=4 %s> $text{'acl_gedit_gid'}\n",
	$o->{'gedit_mode'} == 4 ? "checked" : "";
printf "<input name=gedit_gid size=6 value='%s'> -\n",
	$o->{'gedit_mode'} == 4 ? $o->{'gedit'} : "";
printf "<input name=gedit_gid2 size=6 value='%s'></td> </tr>\n",
	$o->{'gedit_mode'} == 4 ? $o->{'gedit2'} : "";

print "<tr> <td><b>$text{'acl_gcreate'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=gcreate value=1 %s> $text{'yes'}\n",
	$o->{'gcreate'}==1 ? "checked" : "";
printf "<input type=radio name=gcreate value=2 %s> $text{'acl_gnew'}\n",
	$o->{'gcreate'}==2 ? "checked" : "";
printf "<input type=radio name=gcreate value=0 %s> $text{'no'}</td> </tr>\n",
	$o->{'gcreate'}==0 ? "checked" : "";

print "<tr> <td><b>$text{'acl_gid'}</b></td>\n";
print "<td colspan=3><input name=lowgid size=6 value='$o->{'lowgid'}'> -\n";
print "<input name=higid size=6 value='$o->{'higid'}'> &nbsp;\n";
printf "<input type=checkbox name=gmultiple value=1 %s>\n",
	$o->{'gmultiple'} ? "checked" : "";
print "$text{'acl_gmultiple'}</td> </tr>\n";

print "<tr> <td colspan=4><hr></td> </tr>\n";

print "<tr><td valign=top><b>$text{'acl_logins'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=logins_mode value=0 %s> $text{'acl_lnone'}<br>\n",
	$o->{'logins'} ? "" : "checked";
printf "<input type=radio name=logins_mode value=1 %s> $text{'acl_lall'}<br>\n",
	$o->{'logins'} eq "*" ? "checked" : "";
printf "<input type=radio name=logins_mode value=2 %s>\n",
	$o->{'logins'} =~ /[^\*]/ ? "checked" : "";
printf "<input name=logins size=40 value='%s'> %s</td> </tr>\n",
	$o->{'logins'} =~ /[^\*]/ ? $o->{'logins'} : "",
	&user_chooser_button("logins", 1);
}

# acl_security_save(&options)
# Parse the form for security options for the useradmin module
sub acl_security_save
{
$_[0]->{'lowuid'} = $in{'lowuid'};
$_[0]->{'hiuid'} = $in{'hiuid'};
$_[0]->{'lowgid'} = $in{'lowgid'};
$_[0]->{'higid'} = $in{'higid'};
$_[0]->{'uedit_mode'} = $in{'uedit_mode'};
$_[0]->{'uedit'} = $in{'uedit_mode'} == 2 ? $in{'uedit_can'} :
		   $in{'uedit_mode'} == 3 ? $in{'uedit_cannot'} :
		   $in{'uedit_mode'} == 4 ? $in{'uedit_uid'} :
		   $in{'uedit_mode'} == 5 ?
			join(" ", map { "".&my_getgrnam($_) }
			     split(/\s+/, $in{'uedit_group'})) : "";
$_[0]->{'uedit2'} = $in{'uedit_mode'} == 4 ? $in{'uedit_uid2'} : undef;
$_[0]->{'gedit_mode'} = $in{'gedit_mode'};
$_[0]->{'gedit'} = $in{'gedit_mode'} == 2 ? $in{'gedit_can'} :
		   $in{'gedit_mode'} == 3 ? $in{'gedit_cannot'} :
		   $in{'gedit_mode'} == 4 ? $in{'gedit_gid'} : "";
$_[0]->{'gedit2'} = $in{'gedit_mode'} == 4 ? $in{'gedit_gid2'} : undef;
$_[0]->{'ucreate'} = $in{'ucreate'};
$_[0]->{'gcreate'} = $in{'gcreate'};
$_[0]->{'ugroups'} = $in{'ugroups_def'} ? "*" : $in{'ugroups'};
$_[0]->{'logins'} = $in{'logins_mode'} == 0 ? "" :
		    $in{'logins_mode'} == 1 ? "*" : $in{'logins'};
$_[0]->{'shells'} = $in{'shells_def'} ? "*"
				      : join(" ", split(/\s+/, $in{'shells'}));
$_[0]->{'peopt'} = $in{'peopt'};
$_[0]->{'home'} = $in{'home'};
$_[0]->{'autohome'} = $in{'autohome'};
$_[0]->{'umultiple'} = $in{'umultiple'};
$_[0]->{'gmultiple'} = $in{'gmultiple'};
}

  0707010000a3a1000081a40000000000000002000000013ac038900000053f000000200000000000000000000000000000001b00000003reloc/useradmin/aix-lib.pl    # solaris-lib.pl
# Functions for aix password file format

# passfiles_type()
# Returns 0 for old-style passwords (/etc/passwd only), 1 for FreeBSD-style
# (/etc/master.passwd), 2 for SysV (/etc/passwd & /etc/shadow), 3 for
# /etc/passwd with update via useradd and 4 for AIX (/etc/passwd &
# /etc/security/passwd)
sub passfiles_type
{
return 4;
}

# groupfiles_type()
# Returns 0 for normal group file (/etc/group only), 2 for shadowed
# (/etc/group and /etc/gshadow), and 4 for AIX (/etc/group &
# /etc/security/group)
sub groupfiles_type
{
return 4;
}

# open_last_command(handle, user)
sub open_last_command
{
local ($fh, $user) = @_;
open($fh, "last $user |");
}

# read_last_line(handle)
# Parses a line of output from last into an array of
#  user, tty, host, login, logout, period
sub read_last_line
{
local $fh = $_[0];
while(1) {
	chop($line = <$fh>);
	if (!$line) { return (); }
	if ($line =~ /system boot/) { next; }
	if ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+\-\s+(\d+:\d+)\s+\((\d+:\d+)\)/) {
		return ($1, $2, $3, $4, $5, $6);
		}
	elsif ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+still/) {
		return ($1, $2, $3, $4);
		}
	}
}

# encrypt_password(password)
sub encrypt_password
{
local $salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
return crypt($_[0], $salt);
}

1;

 0707010000a3a2000081a40000000000000002000000013ac0389000002298000000200000000000000000000000000000001f00000003reloc/useradmin/batch_exec.cgi    #!/usr/local/bin/perl
# batch_exec.cgi
# Execute create/modify/delete commands in a batch file

require './user-lib.pl';
&ReadParseMime();
if ($in{'file'}) {
	$data = $in{'file'};
	}
elsif ($in{'local'}) {
	open(LOCAL, $in{'local'}) || &error($text{'batch_elocal'});
	while(<LOCAL>) {
		$data .= $_;
		}
	close(LOCAL);
	}
else {
	&error($text{'batch_efile'});
	}

&header($text{'batch_title'}, "");
print "<hr>\n";
$| = 1;

# Work out a good base UID for new users
&lock_user_files();
&my_setpwent();
while(@tmp = &my_getpwent()) {
	$used{$tmp[2]}++;
	$taken{$tmp[0]}++;
	}
&my_endpwent();
$newuid = int($config{'base_uid'});

# Work out a good base GID for new groups
&my_setgrent();
while(@tmp = &my_getgrent()) {
	$gused{$tmp[2]}++;
	$gtaken{$tmp[0]}++;
	}
&my_endgrent();
$newgid = int($config{'base_gid'});

# Process the file
print "<pre>\n";
$lnum = 0;
foreach $line (split(/[\r\n]+/, $data)) {
	$lnum++;
	$line =~ s/#.*$//;
	next if ($line !~ /\S/);
	local @line = split(/:/, $line, -1);
	local %user;
	if ($line[0] eq 'create') {
		# Creating a new user
		if (&passfiles_type() == 2) {
			# SYSV-style passwd and shadow information
			if (@line != 13) {
				print &text('batch_elen', $lnum, 13),"\n";
				next;
				}
			$user{'min'} = $line[8];
			$user{'max'} = $line[9];
			$user{'warn'} = $line[10];
			$user{'inactive'} = $line[11];
			$user{'expire'} = $line[12];
			$user{'change'} = int(time() / (60*60*24));
			}
		elsif (&passfiles_type() == 1) {
			# BSD master.passwd information
			if (@line != 11) {
				print &text('batch_elen', $lnum, 11),"\n";
				next;
				}
			$user{'class'} = $line[8];
			$user{'change'} = $line[9];
			$user{'expire'} = $line[10];
			}
		else {
			# Classic passwd file information
			if (@line != 8) {
				print &text('batch_elen', $lnum, 8),"\n";
				next;
				}
			}

		# Parse common fields
		if (!$line[1]) {
			print &text('batch_eline', $lnum),"\n";
			next;
			}
		$user{'user'} = $line[1];
		if ($taken{$user{'user'}}) {
			print &text('batch_euser', $lnum, $user{'user'}),"\n";
			next;
			}
		if ($line[3] !~ /^\d+$/) {
			# make up a UID
			while($used{$newuid}) {
				$newuid++;
				}
			$user{'uid'} = $newuid;
			}
		else {
			# use the given UID!!
			$user{'uid'} = $line[3];
			}
		$used{$user{'uid'}}++;
		if ($line[6] !~ /^\//) {
			print &text('batch_ehome', $lnum, $line[6]),"\n";
			next;
			}
		$user{'home'} = $line[6];
		if (!-r $line[7]) {
			print &text('batch_eshell', $lnum, $line[7]),"\n";
			next;
			}
		$user{'shell'} = $line[7];
		$user{'real'} = $line[5];
		if ($line[4] !~ /^\d+$/) {
			# Need to create a new group for the user
			if ($gtaken{$user{'user'}}) {
				print &text('batch_egtaken', $lnum, $user{'user'}),"\n";
				next;
				}
			while($gused{$newgid}) {
				$newgid++;
				}
			local %group;
			$group{'group'} = $user{'user'};
			$user{'gid'} = $group{'gid'} = $newgid;
			&create_group(\%group);
			}
		else {
			$user{'gid'} = $line[4];
			}

		# Create the user!
		if ($in{'makehome'} && !-d $user{'home'}) {
			if (!mkdir($user{'home'}, oct($config{'homedir_perms'}))) {
				print &text('batch_emkdir', $user{'home'}, $!),"\n";
				}
			chmod(oct($config{'homedir_perms'}), $user{'home'});
			chown($user{'uid'}, $user{'gid'}, $user{'home'});
			}
		if ($line[2] eq 'x') {
			# No login allowed
			$user{'pass'} = $config{'lock_string'};
			$user{'passmode'} = 1;
			}
		elsif ($line[2] eq '') {
			# No password needed
			$user{'pass'} = '';
			$user{'passmode'} = 0;
			}
		else {
			# Normal password
			$salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
			$user{'pass'} = crypt($line[2], $salt);
			$user{'passmode'} = 3;
			$user{'plainpass'} = $line[2];
			}
		&create_user(\%user);
		&other_modules("useradmin_create_user", \%user);

		if ($in{'copy'} && $in{'makehome'}) {
			# Copy files to user's home directory
			local $uf = $config{'user_files'};
			if ($group = &my_getgrgid($user{'gid'})) {
				$uf =~ s/\$group/$group/g;
				}
			$uf =~ s/\$gid/$user{'gid'}/g;
			&copy_skel_files($uf, $user{'home'},
					 $user{'uid'}, $user{'gid'});
			}

		print "<b>",&text('batch_created',$user{'user'}),"</b>\n";
		}
	elsif ($line[0] eq 'delete') {
		# Deleting an existing user
		if (@line != 2) {
			print &text('batch_elen', $lnum, 2),"\n";
			next;
			}
		local @ulist = &list_users();
		local ($user) = grep { $_->{'user'} eq $line[1] } @ulist;
		if (!$user) {
			print &text('batch_enouser', $lnum, $line[1]),"\n";
			next;
			}
		%user = %$user;

		# Delete the user entry
		&other_modules("useradmin_delete_user", \%user);
		$ENV{'USERADMIN_USER'} = $user{'user'};
		$ENV{'USERADMIN_ACTION'} = 'DELETE_USER';
		&making_changes();
		&delete_user(\%user);
		&made_changes();

		# Delete his home directory
		if ($in{'delhome'} && $user{'home'} !~ /^\/+$/) {
			if ($config{'delete_only'}) {
				&lock_file($user{'home'});
				&system_logged("find \"$user{'home'}\" ! -type d -user $user{'uid'} | xargs rm -f >/dev/null 2>&1");
				&system_logged("find \"$user{'home'}\" -type d -user $user{'uid'} | xargs rmdir >/dev/null 2>&1");
				rmdir($user{'home'});
				&unlock_file($user{'home'});
				}
			else {
				&system_logged("rm -rf \"$user{'home'}\" >/dev/null 2>&1");
				}
			}

		print "<b>",&text('batch_deleted',$user{'user'}),"</b>\n";
		}
	elsif ($line[0] eq 'modify') {
		# Modifying an existing user
		if (&passfiles_type() == 2) {
			# SYSV-style passwd and shadow information
			if (@line != 14) {
				print &text('batch_elen', $lnum, 14),"\n";
				next;
				}
			}
		elsif (&passfiles_type() == 1) {
			# BSD master.passwd information
			if (@line != 12) {
				print &text('batch_elen', $lnum, 12),"\n";
				next;
				}
			}
		else {
			# Classic passwd file information
			if (@line != 9) {
				print &text('batch_elen', $lnum, 9),"\n";
				next;
				}
			}
		local @ulist = &list_users();
		local ($user) = grep { $_->{'user'} eq $line[1] } @ulist;
		if (!$user) {
			print &text('batch_enouser', $lnum, $line[1]),"\n";
			next;
			}
		%olduser = %user = %$user;
		$user{'olduser'} = $user->{'user'};

		# Update supplied fields
		$user{'user'} = $line[2] if ($line[2] ne '');
		if ($line[3] eq 'x') {
			# No login allowed
			$user{'pass'} = $config{'lock_string'};
			$user{'passmode'} = 1;
			}
		elsif ($line[3] ne '') {
			# Normal password
			$salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
			$user{'pass'} = crypt($line[3], $salt);
			$user{'passmode'} = 3;
			$user{'plainpass'} = $line[3];
			}
		else {
			# No change
			$user{'passmode'} = 4;
			}
		$user{'uid'} = $line[4] if ($line[4] ne '');
		$user{'gid'} = $line[5] if ($line[5] ne '');
		$user{'real'} = $line[6] if ($line[6] ne '');
		$user{'home'} = $line[7] if ($line[7] ne '');
		$user{'shell'} = $line[8] if ($line[8] ne '');
		if (&passfiles_type() == 2) {
			# SYSV-style passwd and shadow information
			$user{'min'} = $line[9] if ($line[9] ne '');
			$user{'max'} = $line[10] if ($line[10] ne '');
			$user{'warn'} = $line[11] if ($line[11] ne '');
			$user{'inactive'} = $line[12] if ($line[12] ne '');
			$user{'expire'} = $line[13] if ($line[13] ne '');
			$user{'change'} = int(time() / (60*60*24))
				if ($line[3] ne '');
			}
		elsif (&passfiles_type() == 1) {
			# BSD master.passwd information
			$user{'class'} = $line[9] if ($line[9] ne '');
			$user{'change'} = $line[10] if ($line[10] ne '');
			$user{'expire'} = $line[11] if ($line[11] ne '');
			}

		# Move home directory if needed
		if ($olduser{'home'} ne $user{'home'} && $in{'movehome'} &&
		    $user{'home'} ne '/' && $olduser{'home'} ne '/') {
			if (-d $olduser{'home'} && !-e $user{'home'}) {
				local $out = &backquote_logged(
					"mv \"$olduser{'home'}\" ".
					"\"$user{'home'}\" 2>&1");
				if ($?) { &error(&text('batch_emove',
						 $lnum, $out)); }
				}
			}

		# Change UIDs and GIDs?
		if ($olduser{'gid'} != $user{'gid'} && $in{'chgid'}) {
			if ($in{'chgid'} == 1) {
				&recursive_change($user{'home'},$olduser{'uid'},
					  $olduser{'gid'}, -1, $user{'gid'});
				}
			else {
				&recursive_change("/", $olduser{'uid'},
					  $olduser{'gid'}, -1, $user{'gid'});
				}
			}
		if ($olduser{'uid'} != $user{'uid'} && $in{'chuid'}) {
			if ($in{'chuid'} == 1) {
				&recursive_change($user{'home'},$olduser{'uid'},
						  -1, $user{'uid'}, -1);
				}
			else {
				&recursive_change("/", $olduser{'uid'},
						  -1, $user{'uid'}, -1);
				}
			}

		# Actually modify the user
		$ENV{'USERADMIN_USER'} = $user{'user'};
		$ENV{'USERADMIN_ACTION'} = 'MODIFY_USER';
		&making_changes();
		&modify_user(\%olduser, \%user);
		&made_changes();
		&other_modules("useradmin_modify_user", \%user);

		print "<b>",&text('batch_modified',$olduser{'user'}),"</b>\n";
		}
	else {
		print &text('batch_eaction', $lnum, $line[0]),"\n";
		next;
		}
	}
print "</pre>\n";
&unlock_user_files();

# XXXX logging?

print "<hr>\n";
&footer("", $text{'index_return'});

0707010000a3a3000081a40000000000000002000000013ac0389000000986000000200000000000000000000000000000001f00000003reloc/useradmin/batch_form.cgi    #!/usr/local/bin/perl
# batch_form.cgi
# Display a form for doing batch creation, updates or deletion from a text file

require './user-lib.pl';
&header($text{'batch_title'}, "");
print "<hr>\n";

print "<br>$text{'batch_desc'}\n";
if (&passfiles_type() == 1) {
	print "<p><tt>$text{'batch_desc1'}</tt><p>\n";
	}
elsif (&passfiles_type() == 2) {
	print "<p><tt>$text{'batch_desc2'}</tt><p>\n";
	}
else {
	print "<p><tt>$text{'batch_desc0'}</tt><p>\n";
	}
print "$text{'batch_descafter'}<br>\n";
print "$text{'batch_descafter2'}\n";

print "<form action=batch_exec.cgi method=post enctype=multipart/form-data>\n";
print "<table>\n";
print "<tr> <td><b>$text{'batch_file'}</b></td>\n";
print "<td><input type=file name=file></td> </tr>\n";

print "<tr> <td><b>$text{'batch_local'}</b></td>\n";
print "<td><input name=local size=30> ",&file_chooser_button("local"),
      "</td> </tr>\n";

print "<tr> <td><b>$text{'batch_makehome'}</b></td>\n";
print "<td><input name=makehome type=radio value=1 checked> $text{'yes'}\n";
print "<input name=makehome type=radio value=0> $text{'no'}</td> </tr>\n";

print "<tr> <td><b>$text{'batch_copy'}</b></td>\n";
print "<td><input name=copy type=radio value=1 checked> $text{'yes'}\n";
print "<input name=copy type=radio value=0> $text{'no'}</td> </tr>\n";

print "<tr> <td><b>$text{'batch_movehome'}</b></td>\n";
print "<td><input name=movehome type=radio value=1 checked> $text{'yes'}\n";
print "<input name=movehome type=radio value=0> $text{'no'}</td> </tr>\n";

print "<tr> <td><b>$text{'batch_chuid'}</b></td>\n";
print "<td><input type=radio name=chuid value=0> $text{'no'}\n";
print "<input type=radio name=chuid value=1 checked> $text{'home'}\n";
print "<input type=radio name=chuid value=2> ",
      "$text{'uedit_allfiles'}</td></tr>\n";

print "<tr> <td><b>$text{'batch_chgid'}</b></td>\n";
print "<td><input type=radio name=chgid value=0> $text{'no'}\n";
print "<input type=radio name=chgid value=1 checked> $text{'home'}\n";
print "<input type=radio name=chgid value=2> ",
      "$text{'uedit_allfiles'}</td></tr>\n";

print "<tr> <td><b>$text{'batch_delhome'}</b></td>\n";
print "<td><input name=delhome type=radio value=1 checked> $text{'yes'}\n";
print "<input name=delhome type=radio value=0> $text{'no'}</td> </tr>\n";

print "<tr> <td><input type=submit value=\"$text{'batch_upload'}\"></td> </tr>\n";
print "</table></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

  0707010000a3a4000081a40000000000000002000000013ac0388f000011f5000000200000000000000000000000000000002400000003reloc/useradmin/cobalt-linux-lib.pl   # linux-lib.pl
# Functions for reading linux format last output

# passfiles_type()
# Returns 0 for old-style passwords (/etc/passwd only), 1 for FreeBSD-style
# (/etc/master.passwd) and 2 for SysV (/etc/passwd & /etc/shadow)
sub passfiles_type
{
return &password_file($config{'shadow_file'}) ? 2 : 0;
}

# groupfiles_type()
# Returns 0 for normal group file (/etc/group only) and 2 for shadowed
# (/etc/group and /etc/gshadow)
sub groupfiles_type
{
return &password_file($config{'gshadow_file'}) ? 2 : 0;
}

# open_last_command(handle, user)
sub open_last_command
{
local ($fh, $user) = @_;
open($fh, "last $user |");
}

# read_last_line(handle)
# Parses a line of output from last into an array of
#  user, tty, host, login, logout, period
sub read_last_line
{
$fh = $_[0];
while(1) {
	chop($line = <$fh>);
	if (!$line) { return (); }
	if ($line =~ /system boot/) { next; }
	if ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+\-\s+(\S+)\s+\((\d+:\d+)\)/) {
		return ($1, $2, $3, $4, $5 eq "down" ? "Shutdown" : $5, $6);
		}
	elsif ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+still/) {
		return ($1, $2, $3, $4);
		}
	}
}

# encrypt_password(password)
sub encrypt_password
{
local $md5 = 0;
if (&foreign_check("pam")) {
	# Use the PAM module if we can
	&foreign_require("pam", "pam-lib.pl");
	local @conf = &foreign_call("pam", "get_pam_config");
	local ($svc) = grep { $_->{'name'} eq 'passwd' } @conf;
	LOOP: foreach $m (@{$svc->{'mods'}}) {
		if ($m->{'type'} eq 'password') {
			if ($m->{'args'} =~ /md5/) { $md5++; }
			elsif ($m->{'module'} =~ /pam_stack\.so/ &&
			       $m->{'args'} =~ /service=(\S+)/) {
				# Referred to another service!
				($svc) = grep { $_->{'name'} eq $1 } @conf;
				if ($svc) { goto LOOP }
				else { last; }
				}
			}
		}
	}
elsif (open(PAM, "/etc/pam.d/passwd")) {
	# Otherwise try to check the PAM file directly
	while(<PAM>) {
		s/#.*$//g;
		$md5++ if (/^password.*md5/);
		}
	close(PAM);
	}
if (open(DEFS, "/etc/login.defs")) {
	# The login.defs file is used on debian sometimes
	while(<DEFS>) {
		s/#.*$//g;
		$md5++ if (/MD5_CRYPT_ENAB\s+yes/i);
		}
	close(DEFS);
	}
if ($md5 && !$config{'skip_md5'}) {
	# MD5 encrypt the password, using the same algorithm as PAM
	eval "use MD5";
	if ($@) {
		&header("Error", "");
		print "<hr><p>\n";
		print "Your system has MD5 passwords enabled, but the perl\n",
		      "MD5 module is not installed.<p> To force the use of\n",
		      "normal encrypted passwords, adjust your\n",
		      "<a href='/config.cgi?$module_name'>module ",
		      "configuration</a>. <p><hr>\n";
		exit;
		}
	local $passwd = $_[0];
	local $magic = '$1$';
	local $salt = substr(time(), -8);

	# Add the password, magic and salt
	local $ctx = new MD5;
	$ctx->add($passwd);
	$ctx->add($magic);
	$ctx->add($salt);

	# Add some more stuff from the hash of the password and salt
	local $ctx1 = new MD5;
	$ctx1->add($passwd);
	$ctx1->add($salt);
	$ctx1->add($passwd);
	local $final = $ctx1->digest();
	for($pl=length($passwd); $pl>0; $pl-=16) {
		$ctx->add($pl > 16 ? $final : substr($final, 0, $pl));
		}

	# This piece of code seems rather pointless, but it's in the C code that
	# does MD5 in PAM so it has to go in!
	local $j = 0;
	local ($i, $l);
	for($i=length($passwd); $i; $i >>= 1) {
		if ($i & 1) {
			$ctx->add("\0");
			}
		else {
			$ctx->add(substr($passwd, $j, 1));
			}
		}
	$final = $ctx->digest();

	# This loop exists only to waste time
	for($i=0; $i<1000; $i++) {
		$ctx1 = new MD5;
		$ctx1->add($i & 1 ? $passwd : $final);
		$ctx1->add($salt) if ($i % 3);
		$ctx1->add($passwd) if ($i % 7);
		$ctx1->add($i & 1 ? $final : $passwd);
		$final = $ctx1->digest();
		}

	# Convert the 16-byte final string into a readable form
	local $rv = $magic.$salt.'$';
	local @final = map { ord($_) } split(//, $final);
	$l = ($final[ 0]<<16) + ($final[ 6]<<8) + $final[12];
	$rv .= &to64($l, 4);
	$l = ($final[ 1]<<16) + ($final[ 7]<<8) + $final[13];
	$rv .= &to64($l, 4);
	$l = ($final[ 2]<<16) + ($final[ 8]<<8) + $final[14];
	$rv .= &to64($l, 4);
	$l = ($final[ 3]<<16) + ($final[ 9]<<8) + $final[15];
	$rv .= &to64($l, 4);
	$l = ($final[ 4]<<16) + ($final[10]<<8) + $final[ 5];
	$rv .= &to64($l, 4);
	$l = $final[11];
	$rv .= &to64($l, 2);

	return $rv;
	}
else {
	local $salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
	return crypt($_[0], $salt);
	}
}

@itoa64 = split(//, "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
sub to64
{
local ($v, $n) = @_;
local $r;
while(--$n >= 0) {
        $r .= $itoa64[$v & 0x3f];
        $v >>= 6;
        }
return $r;
}

1;
   0707010000a3a5000081a40000000000000002000000013ac0388f00000168000000200000000000000000000000000000001b00000003reloc/useradmin/config-aix    homedir_perms=0755
display_max=400
files_remove=local
user_files=/etc/skel
passwd_file=/etc/passwd
post_command=
aix_passwd_file=/etc/security/passwd
aix_group_file=/etc/security/group
group_file=/etc/group
base_uid=100
base_gid=100
lock_string=*LK*
empty_mode=1
sort_mode=0
new_user_group=0
skip_md5=0
display_mode=1
passwd_stars=0
from_files=0
alias_check=0
0707010000a3a6000081a40000000000000002000000013ac038900000016b000000200000000000000000000000000000002400000003reloc/useradmin/config-cobalt-linux   homedir_perms=0755
display_max=400
user_files=/etc/skel/user/en_US /etc/skel/user/common
passwd_file=/etc/passwd
post_command=
group_file=/etc/group
shadow_file=/etc/shadow
gshadow_file=/etc/gshadow
base_uid=110
base_gid=110
lock_string=*
empty_mode=0
sort_mode=0
new_user_group=0
skip_md5=0
display_mode=1
passwd_stars=0
delete_only=0
from_files=0
alias_check=0
 0707010000a3a7000081a40000000000000002000000013ac038900000013e000000200000000000000000000000000000002300000003reloc/useradmin/config-corel-linux    homedir_perms=0755
display_max=400
user_files=/etc/skel
passwd_file=/etc/passwd
group_file=/etc/group
shadow_file=/etc/shadow
gshadow_file=/etc/gshadow
base_uid=1000
base_gid=1000
lock_string=*
empty_mode=0
sort_mode=0
new_user_group=0
skip_md5=0
display_mode=1
passwd_stars=0
delete_only=0
from_files=0
alias_check=0
  0707010000a3a8000081a40000000000000002000000013ac0388f0000013e000000200000000000000000000000000000002400000003reloc/useradmin/config-debian-linux   homedir_perms=0755
display_max=400
user_files=/etc/skel
passwd_file=/etc/passwd
group_file=/etc/group
shadow_file=/etc/shadow
gshadow_file=/etc/gshadow
base_uid=1000
base_gid=1000
lock_string=*
empty_mode=0
sort_mode=0
new_user_group=0
skip_md5=0
display_mode=1
passwd_stars=0
delete_only=0
from_files=0
alias_check=0
  0707010000a3a9000081a40000000000000002000000013ac0388f0000016d000000200000000000000000000000000000001f00000003reloc/useradmin/config-freebsd    homedir_perms=0755
display_max=400
files_remove=dot
user_files=/usr/share/skel
passwd_file=
master_file=/etc/master.passwd
post_command=/usr/sbin/pwd_mkdb -p /etc/master.passwd
shadow_file=
group_file=/etc/group
base_uid=1000
base_gid=1000
lock_string=*
sort_mode=0
new_user_group=0
skip_md5=0
display_mode=1
passwd_stars=0
delete_only=0
from_files=0
alias_check=0
   0707010000a3aa000081a40000000000000002000000013ac0388f00000138000000200000000000000000000000000000001c00000003reloc/useradmin/config-hpux   homedir_perms=0755
display_max=400
files_remove=local
passwd_file=/etc/passwd
user_files=/etc/skel
post_command=
shadow_file=
base_uid=100
group_file=/etc/group
base_gid=100
lock_string=*
empty_mode=1
sort_mode=0
new_user_group=0
skip_md5=0
display_mode=1
passwd_stars=0
delete_only=0
from_files=0
alias_check=0
0707010000a3ab000081a40000000000000002000000013ac03890000001d7000000200000000000000000000000000000001c00000003reloc/useradmin/config-irix   files_remove=default
post_command=
shadow_file=/etc/shadow
pre_command=
master_file=
gshadow_file=
sort_mode=0
group_file=/etc/group
base_gid=1000
homedir_perms=0755
default_group=
passwd_file=/etc/passwd
user_files=/var/sysadm/config/default.cshrc /var/sysadm/config/default.login /var/sysadm/config/default.profile
empty_mode=1
new_user_group=0
display_mode=1
display_max=400
skip_md5=0
base_uid=1000
last_count=
passwd_stars=0
lock_string=*
from_files=0
alias_check=0
 0707010000a3ac000081a40000000000000002000000013ac0389000000154000000200000000000000000000000000000002200000003reloc/useradmin/config-open-linux homedir_perms=0755
display_max=400
user_files=/etc/skel
passwd_file=/etc/passwd
post_command=
group_file=/etc/group
shadow_file=/etc/shadow
base_uid=500
base_gid=500
lock_string=*
empty_mode=0
last_command=last
last_format=linux
new_user_group=0
skip_md5=0
display_mode=1
passwd_stars=0
delete_only=0
sort_mode=0
from_files=0
alias_check=0
0707010000a3ad000081a40000000000000002000000013ac0388f00000163000000200000000000000000000000000000001f00000003reloc/useradmin/config-openbsd    homedir_perms=0755
display_max=400
files_remove=dot
user_files=/usr/share/skel
passwd_file=
master_file=/etc/master.passwd
post_command=pwd_mkdb -p /etc/master.passwd
shadow_file=
group_file=/etc/group
base_uid=1000
base_gid=1000
lock_string=*
sort_mode=0
new_user_group=0
skip_md5=0
display_mode=1
passwd_stars=0
delete_only=0
from_files=0
alias_check=0
 0707010000a3ae000081a40000000000000002000000013ac0389000000138000000200000000000000000000000000000001c00000003reloc/useradmin/config-osf1   homedir_perms=0755
display_max=400
files_remove=local
passwd_file=/etc/passwd
user_files=/etc/skel
post_command=
shadow_file=
base_uid=100
group_file=/etc/group
base_gid=100
lock_string=*
empty_mode=0
sort_mode=0
new_user_group=0
skip_md5=0
display_mode=1
passwd_stars=0
delete_only=0
from_files=0
alias_check=0
0707010000a3af000081a40000000000000002000000013ac0388f0000014a000000200000000000000000000000000000002400000003reloc/useradmin/config-redhat-linux   homedir_perms=0755
display_max=400
user_files=/etc/skel
passwd_file=/etc/passwd
post_command=
group_file=/etc/group
shadow_file=/etc/shadow
gshadow_file=/etc/gshadow
base_uid=500
base_gid=500
lock_string=*
empty_mode=0
sort_mode=0
new_user_group=1
skip_md5=0
display_mode=1
passwd_stars=0
delete_only=0
from_files=0
alias_check=0
  0707010000a3b0000081a40000000000000002000000013ac038900000013c000000200000000000000000000000000000002700000003reloc/useradmin/config-slackware-linux    homedir_perms=0755
display_max=400
user_files=/etc/skel
passwd_file=/etc/passwd
group_file=/etc/group
shadow_file=/etc/shadow
gshadow_file=/etc/gshadow
base_uid=500
base_gid=500
lock_string=*
empty_mode=0
sort_mode=0
new_user_group=0
skip_md5=0
display_mode=1
passwd_stars=0
delete_only=0
from_files=0
alias_check=0
0707010000a3b1000081a40000000000000002000000013ac0388f00000148000000200000000000000000000000000000001f00000003reloc/useradmin/config-solaris    homedir_perms=0755
display_max=400
files_remove=local
user_files=/etc/skel
passwd_file=/etc/passwd
post_command=
shadow_file=/etc/shadow
group_file=/etc/group
base_uid=1000
base_gid=1000
lock_string=*LK*
empty_mode=1
sort_mode=0
new_user_group=0
skip_md5=0
display_mode=1
passwd_stars=0
delete_only=0
from_files=0
alias_check=0
0707010000a3b2000081a40000000000000002000000013ac0388f0000014a000000200000000000000000000000000000002200000003reloc/useradmin/config-suse-linux homedir_perms=0755
display_max=400
user_files=/etc/skel
passwd_file=/etc/passwd
post_command=
group_file=/etc/group
shadow_file=/etc/shadow
gshadow_file=/etc/gshadow
base_uid=500
base_gid=500
lock_string=*
empty_mode=0
sort_mode=0
new_user_group=0
skip_md5=0
display_mode=1
passwd_stars=0
delete_only=0
from_files=0
alias_check=0
  0707010000bb6a000041ed0000000000000001000000023ac03ca100000000000000200000000000000000000000000000001500000003reloc/useradmin/help  0707010000bb6b000081a40000000000000002000000013ac038900000011d000000200000000000000000000000000000002100000003reloc/useradmin/help/2nd.es.html  <header>Grupos secundarios</header>
Una lista de cero o m醩 grupos a los cuales pertenece este usuario. Si este
usuario intenta acceder a un archivo y el grupo de ese archivo es uno de
los grupos secundarios, entonces ser醤 aplicados los permisos de grupo que
tenga ese archivo.
<hr>

   0707010000bb6c000081a40000000000000002000000013ac0388f00000132000000200000000000000000000000000000002100000003reloc/useradmin/help/2nd.fr.html  <header>Groupes secondaires </header>
Une liste de zero ou plusieurs autres groupes auxquels un utilisateur
peut appartenir. Si cet utilisateur tente d'acc閐er  un fichier et que
le groupe de ce fichier est un des groupes secondaires, les permissions
qu'ont le groupe sur le fichier s'appliqueront.
<hr>

  0707010000bb6d000081a40000000000000002000000013ac0388f000000ff000000200000000000000000000000000000001e00000003reloc/useradmin/help/2nd.html <header>Secondary groups</header>
A list of zero or more other groups to which this user belongs. If this
user attempts to access a file and the group of that file is one of the
secondary groups, then the group permissions for that file will apply.
<hr>

 0707010000bb6e000081a40000000000000002000000013ac0389000000129000000200000000000000000000000000000002100000003reloc/useradmin/help/2nd.pl.html  <header>Grupy dodatkowe</header>

Lista zero lub wi阠ej innych grup, do kt髍ych nale縴 ten u縴tkownik. Je秎i
ten u縴tkownik b阣zie pr骲owa uzyska dost阷 do pliku i&nbsp;grupa tego
pliku b阣zie jedn z&nbsp;grup dodatkowych, to prawa dost阷u do tego pliku
dla grupy b阣 mia硑 zastosowanie.
<hr>
   0707010000bb6f000081a40000000000000002000000013ac0389000000136000000200000000000000000000000000000002400000003reloc/useradmin/help/2nd.ru_RU.html   <header>买铕梓睇 沭箫稃</header>
扬桉铌 0 桦 犷朦 漯筱桴 沭箫  觐蝾瘥 镳桧噤脲骅 镱朦珙忄蝈朦. 篷腓
铗 镱朦珙忄蝈朦 镳邃镳桁弪 镱稃蜿 镱塍麒螯 漕耱箫  羿殡 桁妣祗
沭箫矬 耦怙噤帼  钿眍 桤 怛铕梓睇 沭箫 镱朦珙忄蝈, 蝾 怦蝮镟  
耔塍 镳噔 沭箫稃  觐蝾痤 铗 羿殡 镳桧噤脲骅.
<hr>

  0707010000bb70000081a40000000000000002000000013ac0388f00000136000000200000000000000000000000000000002400000003reloc/useradmin/help/2nd.ru_SU.html   <header>髟弦赊钨 且招匈</header>
笮捎纤 0 商 孪特叟 囊涨扇 且招  讼韵屹 幸晌聊膛稚 邢特谙琢耘特. 逵躺
茉显 邢特谙琢耘特 幸拍幸赏旁 邢匈运 邢陶奚载 南釉招  屏侍 赏爬菖驼
且招姓 酉仔聊晾菡  夏蜗 哨 自弦赊钨 且招 邢特谙琢耘萄, 韵 子哉辛涝  
由陶 幸磷 且招匈  讼韵蚁 茉显 屏侍 幸晌聊膛稚.
<hr>

  0707010000bb71000081a40000000000000002000000013ac03890000000fa000000200000000000000000000000000000002100000003reloc/useradmin/help/2nd.sv.html  <header>Sekund鋜a grupper</header>
En lista 鰒er grupper (noll eller flera) som denna anv鋘dare 鋜 medlem i.
Om anv鋘daren f鰎s鰇er komma 錿 en fil vars filgrupp 鋜 n錱on av de
sekund鋜a grupperna kommer gruppr鋞tigheterna f鰎 filen att g鋖la.
<hr>

  0707010000bb72000081a40000000000000002000000013ac0389000000088000000200000000000000000000000000000002900000003reloc/useradmin/help/2nd.zh_TW.Big5.html  <header>Ω璶竤舱</header>
硂ㄏノт┮妮⊿Τ┪竤舱嘿. 狦硂ㄏノ刚帝璶妮Ω璶竤舱郎, ㄤ竤舱舦盢穦砆莱ノ.
<hr>

0707010000bb73000081a40000000000000002000000013ac0388f000000b3000000200000000000000000000000000000002400000003reloc/useradmin/help/change.es.html   <header>Clave de Acceso cambiada</header>
La 鷏tima fecha en que la clave de acceso de este usuario fue cambiada, ya
haya sido con Webmin o con el programa <tt>passwd</tt>.
<hr>

 0707010000bb74000081a40000000000000002000000013ac0388f000000ac000000200000000000000000000000000000002400000003reloc/useradmin/help/change.fr.html   <header>Mot de passe chang</header>
La derni鑢e date  laquelle l'utilisateur a chang son mot de passe,
que ce soit par Webmin ou par le programme <tt>passwd</tt>.
<hr>

0707010000bb75000081a40000000000000002000000013ac0388f00000098000000200000000000000000000000000000002100000003reloc/useradmin/help/change.html  <header>Password changed</header>
The last date on which this user's password was changed, either through
Webmin or the <tt>passwd</tt> program. 
<hr>

0707010000bb76000081a40000000000000002000000013ac0389000000082000000200000000000000000000000000000002400000003reloc/useradmin/help/change.pl.html   <header>Has硂 zmieniono</header>

Data ostatniej zmiany has砤 tego u縴tkownika przez Webmina lub programem
<tt>passwd</tt>. 
<hr>
  0707010000bb77000081a40000000000000002000000013ac038900000008f000000200000000000000000000000000000002700000003reloc/useradmin/help/change.ru_RU.html    <header>相痤朦 桤戾腭</header>
项耠邃 溧蜞 耢屙 镟痤 镱朦珙忄蝈, 腓犷 麇疱 Webmin, 腓犷  镱祛 镳钽疣祆 <tt>passwd</tt>.
<hr>

 0707010000bb78000081a40000000000000002000000013ac0388f0000008f000000200000000000000000000000000000002700000003reloc/useradmin/help/change.ru_SU.html    <header>鹆蚁特 哨团窝逃</header>
鹣犹拍窝 牧粤 油盼 辛蚁萄 邢特谙琢耘萄, 躺孪 夼遗 Webmin, 躺孪  邢拖葚 幸锨伊屯 <tt>passwd</tt>.
<hr>

 0707010000bb79000081a40000000000000002000000013ac0389000000085000000200000000000000000000000000000002400000003reloc/useradmin/help/change.sv.html   <header>L鰏enordet 鋘drat</header>
Datum d anv鋘darens l鰏enord senast 鋘drades, via Webmin eller programmet
<tt>passwd</tt>.
<hr>

   0707010000bb7a000081a40000000000000002000000013ac038900000006c000000200000000000000000000000000000002c00000003reloc/useradmin/help/change.zh_TW.Big5.html   <header>盞絏э跑</header>
ㄏノ程Ω跑盞絏丁, ぃ阶琌竒パ Webmin ┪ <tt>passwd</tt> 祘Α. 
<hr>

0707010000bb7b000081a40000000000000002000000013ac0388f000000f1000000200000000000000000000000000000002500000003reloc/useradmin/help/change2.es.html  <header>Fecha de cambio de clave de acceso</header>

La fecha en que este usuario debe de cambiar su clave de acceso. Si la
clave de acceso no ha sido cambiada por entonces, este usuario ser
forzado a cambiarla en su siguiente login.
<hr>

   0707010000bb7c000081a40000000000000002000000013ac0388f00000112000000200000000000000000000000000000002500000003reloc/useradmin/help/change2.fr.html  <header>Date de changement de mot de passe</header>

La date avant laquelle cet utilisateur doit changer son mot de passe.
Si le mot de passe n'est pas chang avant la date sp閏ifi閑, l'utilisateur
sera forc de le changer la prochaine fois qu'il ouvrira une session.
<hr>

  0707010000bb7d000081a40000000000000002000000013ac0388f000000d2000000200000000000000000000000000000002200000003reloc/useradmin/help/change2.html <header>Password change date</header>

The date by which this user must change his password. If password has not
been changed by this date, then the user will be forced to change it
when he next logs in.
<hr>

  0707010000bb7e000081a40000000000000002000000013ac03890000000dd000000200000000000000000000000000000002500000003reloc/useradmin/help/change2.pl.html  <header>Has硂 zmieni do dnia</header>

Data, do kt髍ej u縴tkownik musi zmieni swoje has硂. Je秎i has硂 nie
zostanie zmienione do tego dnia, u縴tkownik zostanie zmuszony do jego zmiany
podczas nast阷nego logowania.
<hr>
   0707010000bb7f000081a40000000000000002000000013ac03890000000ce000000200000000000000000000000000000002800000003reloc/useradmin/help/change2.ru_RU.html   <header>泥蜞 耢屙 镟痤</header>

泥蜞, 觐沅 镱朦珙忄蝈朦 漕腈屙 耢屙栩 疋铋 镟痤朦. 篷腓 镟痤朦 礤 桤戾腭 磬 溧眄簋 溧蝮, 蝾 耔耱屐 镱蝠遽箦 铗 镱朦珙忄蝈 耢屙栩 邈 镳 耠邃簋 怩钿.
<hr>

  0707010000bb80000081a40000000000000002000000013ac0388f000000ce000000200000000000000000000000000000002800000003reloc/useradmin/help/change2.ru_SU.html   <header>淞粤 油盼 辛蚁萄</header>

淞粤, 讼悄 邢特谙琢耘特 南讨盼 油盼稍 幼鲜 辛蚁特. 逵躺 辛蚁特 闻 哨团窝逃 瘟 牧挝绽 牧哉, 韵 由釉磐 邢砸怕张 显 邢特谙琢耘萄 油盼稍 徘 幸 犹拍绽菖 兹夏.
<hr>

  0707010000bb81000081a40000000000000002000000013ac03890000000c9000000200000000000000000000000000000002500000003reloc/useradmin/help/change2.sv.html  <header>Datum f鰎 鋘dring av l鰏enord</header>

Datum d anv鋘daren senast m錽te 鋘dra sitt l鰏enord. Om det inte har 鋘drats
d kommer anv鋘daren att tvingas 鋘dra det n鋝ta g錸g den loggar in.
<hr>

   0707010000bb82000081a40000000000000002000000013ac0389000000087000000200000000000000000000000000000002d00000003reloc/useradmin/help/change2.zh_TW.Big5.html  <header>盞絏э跑丁</header>

ㄏノゲ斗э跑盞絏ら戳. 狦硂ら戳ぇ玡ㄏノ⊿Τэ跑盞絏, ㄏノ硂Ω祅穦砆眏跑盞絏.
<hr>

 0707010000bb83000081a40000000000000002000000013ac0388f00000254000000200000000000000000000000000000002300000003reloc/useradmin/help/chgid.es.html    <header>緾ambio ID de usuario en los archivos?</header>

Cuando se edita un usuario ya existente, si se cambia el
<a href=group.es>Grupo Primario</a> del usuario entonces los archivos
pertenecientes a ese grupo seguir醤 perteneciendo a la vieja GID.
Se puede utilizar esta opci髇 para actualizar la propiedad de los archivos
a la nueva GID mediante la b鷖queda en el directorio inicial (Directorio de
Inicio) del usuario o en todo el sistema de archivos (Todos los Archivos).
Esta 鷏tima opci髇 puede tardar bastante, especialmente si tienes montados
sistemas de archivo o NFS muy grandes.
<hr>

0707010000bb84000081a40000000000000002000000013ac0388f00000236000000200000000000000000000000000000002300000003reloc/useradmin/help/chgid.fr.html    <header>Changer de groupe sur les fichiers?</header>

Quand un groupe existant est 閐it et que le <a href=gid>Num閞o de groupe</a>
est chang, les fichiers appartenant  ce groupe garderont l'ancien num閞o.
Cette option peut 阾re utilis閑 pour mettre  jour le num閞o de groupe des
fichiers avec le nouveau num閞o soit en cherchant dans le r閜ertoire de
l'utilisateur (R閜ertoire personnel) ou le syst鑝e de fichiers entier (Tous
les fichiers). L'option pour tous les fichiers peut prendre longtemps 
s'ex閏uter, surtout si vous avez de gros disques ou NFS.
<hr>

  0707010000bb85000081a40000000000000002000000013ac0388f000001dc000000200000000000000000000000000000002000000003reloc/useradmin/help/chgid.html   <header>Change group ID on files?</header>

When editing an existing user, if the user's <a href=group>Primary Group</a> is
changed then files owned by that group will remain owned by the old GID.
This option can be used to update the ownership on files to the new GID
by searching either the user's home directory (Home Dir), or the entire
filesystem (All Files). The All Files option may take a long time,
especially if you have many large or NFS mounted filesystems.
<hr>

0707010000bb86000081a40000000000000002000000013ac038900000023b000000200000000000000000000000000000002300000003reloc/useradmin/help/chgid.pl.html    <header>Zmieni ID grupy na plikach?</header>

Je秎i przy zmianie u縴tkownika zostanie zmieniony numer jego
<a href=group>Grupy podstawowej</a>, w體czas pliki nale勘ce do tej grupy
pozostan w砤sno禼i poprzedniego numeru GID. Opcja ta mo縠 by u縴ta do
aktualizacji praw w砤sno禼i na plikach na nowy numer GID poprzez
przeszukanie katalogu domowego u縴tkownika (Katalog domowy) lub ca砮go
systemu plik體 (Wszystkie pliki). Opcja &quot;Wszystkie pliki&quot; mo縠
zaj辨 du縪 czasu, zw砤szcza je秎i posiadasz wiele du縴ch lub podmontowanych
przez NFS system體 plik體.
<hr>
 0707010000bb87000081a40000000000000002000000013ac0389000000218000000200000000000000000000000000000002600000003reloc/useradmin/help/chgid.ru_RU.html <header>如戾礤龛 ID 沭箫稃 磬 羿殡?</header>

篷腓 蔓 镱戾腓 <a href=group>襄疴梓眢 灭箫矬</a> 镱朦珙忄蝈 镳 邈 
疱溧牝桊钼囗梃, 蝾 羿殡, 觐蝾瘥扈 怆噤咫 沭箫镟 溧眄钽 镱朦珙忄蝈
祛泱 铌噻囹 礤漕耱箫睇扈. 泥眄 铒鲨 祛驽 猁螯 桉镱朦珙忄磬 潆 
钺眍怆屙 镳噔 磬 羿殡. 脏殡 祛泱 桉赅螯 赅  漕爨屐 赅蜞腩沐, 蜞 
忸 怦彘 羿殡钼铋 耔耱屐 (埋 羿殡). 物鲨 埋 羿殡 祛驽 镳桠羼蜩  犷朦祗
 怵屐屙 恹镱腠屙 玎镳铖, 铖钺屙眍 羼腓  忄 祉钽 犷朦 桦 
耢铐蜩痤忄眄 镱 NFS 羿殡钼 耔耱屐.
<hr>

0707010000bb88000081a40000000000000002000000013ac0388f00000218000000200000000000000000000000000000002600000003reloc/useradmin/help/chgid.ru_SU.html <header>橼团闻紊 ID 且招匈 瘟 屏侍?</header>

逵躺 髻 邢团窝躺 <a href=group>鹋易赊握 缫招姓</a> 邢特谙琢耘萄 幸 徘 
遗牧嗽梢献廖缮, 韵 屏侍, 讼韵屹蜕 滋聊盘 且招辛 牧挝锨 邢特谙琢耘萄
拖钦 纤邻猎赜 闻南釉招钨蜕. 淞挝裂 闲蒙 拖峙 沦载 捎邢特谙琢瘟 奶 
下蜗滋盼裳 幸磷 瘟 屏侍. 媪侍 拖钦 捎肆载友 肆  南土畚磐 肆粤滔桥, 粤 
紫 子攀 屏侍献鲜 由釉磐 (饔 屏侍). 镄蒙 饔 屏侍 拖峙 幸勺庞陨  孪特巯驼
 滓磐盼 踪邢涛盼裳 诹幸嫌, 嫌下盼蜗 庞躺  琢 臀锨 孪特凵 商 
油衔陨蚁琢挝偃 邢 NFS 屏侍献偃 由釉磐.
<hr>

0707010000bb89000081a40000000000000002000000013ac03890000001aa000000200000000000000000000000000000002300000003reloc/useradmin/help/chgid.sv.html    <header>Byta grupp-ID f鰎 filer?</header>

Om man byter en anv鋘dares <a href=group>prim鋜a grupp</a> kommer filerna
som 鋑des av denna grupp fortfarande 鋑as av dess gamla grupp-ID. H鋜 kan man
鋘dra fil鋑andet till ett nytt GID genom att s鰇a igenom anv鋘darens
hemkatalog eller hela filsystemet (Alla filer). Alternativet Alla filer
tar ett tag att genomf鰎a, s鋜skilt om man har stora eller NFS-monterade
filsystem.
<hr>

  0707010000bb8a000081a40000000000000002000000013ac0389000000143000000200000000000000000000000000000002b00000003reloc/useradmin/help/chgid.zh_TW.Big5.html    <header>琌э跑郎竤舱絪腹?</header>

讽絪胯瞷ㄏノ, 狦ㄏノ<a href=group>璶竤舱</a>砆э跑, 玥┮局Τ郎ご穦妮侣 GID. 硂匡兜穓碝ㄏノ產ヘ魁┪俱郎╰参, 穝ㄤ┮局Τ郎┮Τ舦穝 GID. ㄏノ'场郎'匡兜穦禣讽丁, ぷㄤ琌眤Τ┪ㄓ NFS 郎╰参.
<hr>

 0707010000bb8b000081a40000000000000002000000013ac0389000000254000000200000000000000000000000000000002300000003reloc/useradmin/help/chuid.es.html    <header>緾ambiar ID de usuario en los archivos?</header>

Cuando se edita un usuario ya existente, si se cambia la
<a href=group.es>ID de Usuario</a> del usuario entonces los archivos
pertenecientes a ese grupo seguir醤 perteneciendo a la vieja UID.
Se puede utilizar esta opci髇 para actualizar la propiedad de los archivos
a la nueva UID mediante la b鷖queda en el directorio inicial (Directorio de
Inicio) del usuario o en todo el sistema de archivos (Todos los Archivos).
Esta 鷏tima opci髇 puede tardar bastante, especialmente si tienes montados
sistemas de archivo o NFS muy grandes.
<hr>

0707010000bb8c000081a40000000000000002000000013ac0388f0000025a000000200000000000000000000000000000002300000003reloc/useradmin/help/chuid.fr.html    <header>Changer de propri閠aire sur les fichiers?</header>

Quand un utilisateur existant est 閐it et que le <a href=uid>Num閞o d'utilisateur</a>
est chang, les fichiers appartenant  cet utilisateur garderont l'ancien num閞o.
Cette option peut 阾re utilis閑 pour mettre  jour le num閞o d'utilisateur des
fichiers avec le nouveau num閞o soit en cherchant dans le r閜ertoire de
l'utilisateur (R閜ertoire personnel) ou le syst鑝e de fichiers entier (Tous
les fichiers). L'option pour tous les fichiers peut prendre longtemps 
s'ex閏uter, surtout si vous avez de gros disques ou NFS.
<hr>

  0707010000bb8d000081a40000000000000002000000013ac0388f000001d1000000200000000000000000000000000000002000000003reloc/useradmin/help/chuid.html   <header>Change user ID on files?</header>

When editing an existing user, if the user's <a href=uid>User ID</a> is
changed then files owned by that user will remain owned by the old UID.
This option can be used to update the ownership on files to the new UID
by searching either the users home directory (Home Dir), or the entire
filesystem (All Files). The All Files option may take a long time,
especially if you have many large or NFS mounted filesystems.
<hr>

   0707010000bb8e000081a40000000000000002000000013ac0389000000238000000200000000000000000000000000000002300000003reloc/useradmin/help/chuid.pl.html    <header>Zmieni ID u縴tkownika na plikach?</header>

Je秎i przy zmianie u縴tkownika zostanie zmieniony jego 
<a href=uid>Numer ID</a>, w體czas pliki nale勘ce do tego u縴tkownika
pozostan w砤sno禼i poprzedniego numeru UID. Opcja ta mo縠 by u縴ta do
aktualizacji praw w砤sno禼i na plikach na nowy numer UID poprzez
przeszukanie katalogu domowego u縴tkownika (Katalog domowy) lub ca砮go
systemu plik體 (Wszystkie pliki). Opcja &quot;Wszystkie pliki&quot; mo縠
zaj辨 du縪 czasu, zw砤szcza je秎i posiadasz wiele du縴ch lub podmontowanych
przez NFS system體 plik體.
<hr>
0707010000bb8f000081a40000000000000002000000013ac03890000001ff000000200000000000000000000000000000002600000003reloc/useradmin/help/chuid.ru_RU.html <header>如戾礤龛 ID 镱朦珙忄蝈 磬 羿殡?</header>

篷腓 镳 疱溧牝桊钼囗梃 耋耱怏邈 镱朦珙忄蝈 <a href=uid> ID 镱朦珙忄蝈
</a> 桤戾龛腭, 蝾 羿殡 镳桧噤脲驵怿桢 铎 镱朦珙忄蝈膻 狍潴 桁弪 桴
耱囵 UID. 蒡 铒鲨 祛驽 猁螯 桉镱朦珙忄磬 潆 钺眍怆屙 UID 磬 羿殡
矬蝈 镱桉赅  漕爨屐 赅蜞腩沐 桦 忸 怦彘 羿殡钼铋 耔耱屐 (埋 羿殡).
物鲨 埋 羿殡 祛驽 镳桠羼蜩  犷朦祗 怵屐屙 恹镱腠屙 玎镳铖,
铖钺屙眍 羼腓  忄 祉钽 犷朦 桦 耢铐蜩痤忄眄 镱 NFS 羿殡钼 耔耱屐. 
<hr>

 0707010000bb90000081a40000000000000002000000013ac0388f000001ff000000200000000000000000000000000000002600000003reloc/useradmin/help/chuid.ru_SU.html <header>橼团闻紊 ID 邢特谙琢耘萄 瘟 屏侍?</header>

逵躺 幸 遗牧嗽梢献廖缮 诱菖釉渍垒徘 邢特谙琢耘萄 <a href=uid> ID 邢特谙琢耘萄
</a> 哨团紊逃, 韵 屏侍 幸晌聊膛至综膳 茉贤 邢特谙琢耘汤 抡恼 赏旁 扇
釉烈偈 UID.  闲蒙 拖峙 沦载 捎邢特谙琢瘟 奶 下蜗滋盼裳 UID 瘟 屏侍
姓耘 邢捎肆  南土畚磐 肆粤滔桥 商 紫 子攀 屏侍献鲜 由釉磐 (饔 屏侍).
镄蒙 饔 屏侍 拖峙 幸勺庞陨  孪特巯驼 滓磐盼 踪邢涛盼裳 诹幸嫌,
嫌下盼蜗 庞躺  琢 臀锨 孪特凵 商 油衔陨蚁琢挝偃 邢 NFS 屏侍献偃 由釉磐. 
<hr>

 0707010000bb91000081a40000000000000002000000013ac03890000001ab000000200000000000000000000000000000002300000003reloc/useradmin/help/chuid.sv.html    <header>Byta anv鋘dar-ID f鰎 filer?</header>

Om man byter en anv鋘dares <a href=uid>anv鋘dar-ID</a> kommer filerna
som 鋑des av anv鋘daren fortfarande 鋑as av dess gamla anv鋘dar-ID. H鋜
kan man 鋘dra fil鋑andet till ett nytt UID genom att s鰇a igenom
anv鋘darens hemkatalog eller hela filsystemet (Alla filer). Alternativet
Alla filer tar ett tag att genomf鰎a, s鋜skilt om man har stora eller
NFS-monterade filsystem.
<hr>

 0707010000bb93000081a40000000000000002000000013ac03890000000fa000000200000000000000000000000000000002300000003reloc/useradmin/help/class.es.html    <header>Clase del Login</header>

Este campo debe de contener un nombre de clase de login, definido en el
archivo <tt>login.conf</tt>. Mira la p醙ina del manual de FreeBSD
<tt>login.conf</tt> para m醩 informaci髇 acerca de las clases de login.
<hr>

  0707010000bb92000081a40000000000000002000000013ac0389000000145000000200000000000000000000000000000002b00000003reloc/useradmin/help/chuid.zh_TW.Big5.html    <header>琌э跑郎ㄏノ絪腹?</header>

讽絪胯瞷ㄏノ, 狦ㄏノ<a href=uid>ㄏノ絪腹</a>砆э跑, 玥┮局Τ郎ご穦妮侣 UID. 硂匡兜穓碝ㄏノ產ヘ魁┪俱郎╰参, 穝ㄤ┮局Τ郎┮Τ舦穝 UID. ㄏノ'场郎'匡兜穦禣讽丁, ぷㄤ琌眤Τ┪ㄓ NFS 郎╰参.
<hr>

   0707010000bb94000081a40000000000000002000000013ac0388f00000122000000200000000000000000000000000000002300000003reloc/useradmin/help/class.fr.html    <header>Classe d'ouverture de session</header>

Ce champ doit contenir le nom d'une classe d'ouverture de session
d閒inie dans le fichier <tt>login.conf</tt>. Regardez la page de manuel
de <tt>login.conf</tt> de FreeBSD pour plus d'information sur les
classes d'ouverture de session.
<hr>

  0707010000bb95000081a40000000000000002000000013ac0388f000000da000000200000000000000000000000000000002000000003reloc/useradmin/help/class.html   <header>Login class</header>

This field must contain the name of a login class, defined in the file
<tt>login.conf</tt>. See the FreeBSD man page on <tt>login.conf</tt>
for more information about login classes.
<hr>

  0707010000bb96000081a40000000000000002000000013ac0389000000101000000200000000000000000000000000000002300000003reloc/useradmin/help/class.pl.html    <header>Kategoria logowania</header>

To pole musi zawierac nazw kategorii logowania okre秎onej w&nbsp;pliku
<tt>login.conf</tt>. Wi阠ej informacji o&nbsp;kategoriach logowania
znajdziesz na stronie podr阠znika FreeBSD dotycz眂ej <tt>login.conf</tt>.
<hr>
   0707010000bb97000081a40000000000000002000000013ac03890000000fa000000200000000000000000000000000000002600000003reloc/useradmin/help/class.ru_RU.html <header>孰囫 疱汨耱疣鲨</header>

泥眄铄 镱脲 漕腈眍 耦溴疰囹 桁 觌囫襦 疱汨耱疣鲨, 铒疱溴脲眄铄  羿殡 <tt>login.conf</tt>. 鸯. man 耱疣龛鲶 <tt>login.conf</tt> 潆 FreeBSD, 潆 镱塍麇龛 漕镱腠栩咫铋 桧纛痨圉梃  觌囫襦 疱汨耱疣鲨.
<hr>

  0707010000bb98000081a40000000000000002000000013ac0388f000000fa000000200000000000000000000000000000002600000003reloc/useradmin/help/class.ru_SU.html <header>胩劣 遗巧釉伊蒙</header>

淞挝吓 邢膛 南讨蜗 酉呐抑猎 赏 颂劣恿 遗巧釉伊蒙, 闲遗呐膛挝吓  屏侍 <tt>login.conf</tt>. 笸. man 釉伊紊谜 <tt>login.conf</tt> 奶 FreeBSD, 奶 邢陶夼紊 南邢涛稍盘匚鲜 晌葡彝撩缮  颂劣恿 遗巧釉伊蒙.
<hr>

  0707010000bb99000081a40000000000000002000000013ac03890000000ea000000200000000000000000000000000000002300000003reloc/useradmin/help/class.sv.html    <header>Inloggningsklass</header>

F鋖tet m錽te inneh錶la namnet p en inloggningsklass som definierats i
filen <tt>login.conf</tt>. Titta p FreeBSD-manualsidan om <tt>login.conf</tt>
f鰎 mer information om inloggningsklasser.
<hr>

  0707010000bb9a000081a40000000000000002000000013ac03890000000a6000000200000000000000000000000000000002b00000003reloc/useradmin/help/class.zh_TW.Big5.html    <header>祅糷</header>

硂逆ゲ斗祅糷嘿, ﹚竡郎 <tt>login.conf</tt> ぇい. 叫把酚 FreeBSD  <tt>login.conf</tt> 弧眔戈癟.
<hr>

  0707010000bb9b000081a40000000000000002000000013ac0388f000001d8000000200000000000000000000000000000002800000003reloc/useradmin/help/copy_files.es.html   <header>緾opio los archivos al directorio de inicio?</header>

Cuando se crea un nuevo usuario y se pone esta opci髇, se copian los archivos
est醤dar como <tt>.cshrc</tt> y <tt>.profile</tt> desde
<tt><exec $config{'user_files'}></tt> al directorio inicial del usuario. <p>

Aunque se seleccione esta opci髇 no tendr efecto si la opci髇 de 
<a href=makehome.es>Crear directorio inicial no es activada tambi閚 ya que
no habr directorio inicial en donde copiar. <p>
<hr>

0707010000bb9c000081a40000000000000002000000013ac0388f000001bc000000200000000000000000000000000000002800000003reloc/useradmin/help/copy_files.fr.html   <header>Copier les fichiers dans le r閜ertoire personnel? </header>

Quand un nouvel utilisateur est cr殚 et que cette option est choisie,
les fichiers standards comme <tt>.cshrc</tt> et <tt>profile</tt> seront
copi閟 depuis <tt><exec $config{'user_files'}></tt> vers le r閜ertoire
personnel de l'utilisateur. <p>

Choisir cette option n'a aucun effet si l'option <a href=makehome>Cr閑r
le r閜ertoire personnel</a> n'est pas choisie. <p>
<hr>

0707010000bb9d000081a40000000000000002000000013ac0388f000001a7000000200000000000000000000000000000002500000003reloc/useradmin/help/copy_files.html  <header>Copy files to home directory?</header>

When a new user is created and this option is set, standard files like
<tt>.cshrc</tt> and <tt>.profile</tt> are copied from
<tt><exec $config{'user_files'}></tt> to the user's home directory. <p>

Selected this option will have no effect if the <a href=makehome>Create
home directory</a> option is not set as well, as there will be no home
directory to copy into. <p>
<hr>

 0707010000bb9e000081a40000000000000002000000013ac03890000001f6000000200000000000000000000000000000002800000003reloc/useradmin/help/copy_files.pl.html   <header>Skopiowa pliki do katalogu domowego?</header>

Je縠li opcja ta jest w潮czona podczas tworzenia nowego u縴tkownika, do
katalogu domowego u縴tkownika s kopiowane
z&nbsp;<tt><exec $config{'user_files'}></tt> standardowe pliki takie, jak
<tt>.cshrc</tt> i&nbsp;<tt>.profile</tt>. <p>

Zaznaczenie tej opcji nie spowoduje 縜dnego efektu, o&nbsp;&nbsp;ile nie
bedzie r體nie zaznaczona opcja <a href=makehome>Utworzy katalog domowy</a>,
jako 縠 inaczej nie by硂by gdzie skopiowa plik體. <p>
<hr>
  0707010000bb9f000081a40000000000000002000000013ac03890000001c3000000200000000000000000000000000000002b00000003reloc/useradmin/help/copy_files.ru_RU.html    <header>暑镨痤忄螯 羿殡  漕爨栝 赅蜞腩?</header>

橡 篑蜞眍怅 溧眄铋 铒鲨, 耱囗溧痱睇 羿殡 桧桷栲腓玎鲨, 蜞觇 赅 
<tt>.cshrc</tt>  <tt>.profile</tt> 觐镨痼 桤 <tt>/etc/skel/</tt>
 漕爨栝 赅蜞腩 镱朦珙忄蝈
<p>

蔓犷 溧眄铋 铒鲨 礤 桁邋 翦牝 羼腓 礤 篑蜞眍怆屙 铒鲨 <a href=makehome>
杨玟噔囹 漕爨栝 赅蜞腩</a>, 镱耜铍  溧眄铎 耠篦噱, 漕爨栝 赅蜞腩
 觐蝾瘥 觐镨痼 羿殡, 礤 狍溴 耋耱忸忄螯.
<p>
<hr>

 0707010000bba0000081a40000000000000002000000013ac0388f000001c3000000200000000000000000000000000000002b00000003reloc/useradmin/help/copy_files.ru_SU.html    <header>胂猩蚁琢载 屏侍  南土畚墒 肆粤滔?</header>

鹨 沼粤蜗姿 牧挝鲜 闲蒙, 釉廖牧以钨 屏侍 晌擅闪躺诹蒙, 粤松 肆 
<tt>.cshrc</tt>  <tt>.profile</tt> 讼猩艺涝友 哨 <tt>/etc/skel/</tt>
 南土畚墒 肆粤滔 邢特谙琢耘萄
<p>

髻孪 牧挝鲜 闲蒙 闻 赏排 芷婆嗽 庞躺 闻 沼粤蜗滋盼 闲蒙 <a href=makehome>
笙谀磷猎 南土畚墒 肆粤滔</a>, 邢铀咸厮  牧挝贤 犹辙僚, 南土畚墒 肆粤滔
 讼韵屹 讼猩艺涝友 屏侍, 闻 抡呐 诱菖釉紫琢载.
<p>
<hr>

 0707010000bba1000081a40000000000000002000000013ac038900000018e000000200000000000000000000000000000002800000003reloc/useradmin/help/copy_files.sv.html   <header>Kopiera filer till hemkatalog?</header>

N鋜 denna inst鋖lning 鋜 satt kommer standardfiler som <tt>.cshrc</tt>
och <tt>.profile</tt> kopieras fr錸 <tt><exec $config{'user_files'}></tt>
till hemkatalogen f鰎 en ny anv鋘dare.

<p>Detta kr鋠er dock att inst鋖lningen <a href=makehome>Skapa hemkatalog</a>
ocks 鋜 satt, eftersom det annars inte finns n錱on hemkatalog att kopiera
till.
<hr>

  0707010000bba2000081a40000000000000002000000013ac0389000000137000000200000000000000000000000000000003000000003reloc/useradmin/help/copy_files.zh_TW.Big5.html   <header>琌ī郎產ヘ魁?</header>

讽ミ穝ㄏノ砞﹚硂匡兜, 夹非郎ㄒ <tt>.cshrc</tt> 籔 <tt>.profile</tt> 穦眖 <tt><exec $config{'user_files'}></tt> 狡籹ㄏノ產ヘ魁い. <p>

讽<a href=makehome>ミ產ヘ魁</a>匡兜ゼ砆砞﹚, 匡拒硂匡兜盢穦⊿Τノ; ⊿Τī產ヘ魁. <p>
<hr>

 0707010000bba3000081a40000000000000002000000013ac0388f000000d7000000200000000000000000000000000000002a00000003reloc/useradmin/help/create_group.es.html <header>Crear Grupo</header>

Este formulario te permite digitar los detalles de un nuevo grupo de Unix.
Selecciona el nombre de grupo cuidad髎amente ya que no puede ser cambiado
una vez que haya sido creado.
<hr>

 0707010000bba4000081a40000000000000002000000013ac0388f000000c8000000200000000000000000000000000000002a00000003reloc/useradmin/help/create_group.fr.html <header>Cr閑r un groupe</header>

Cette page vous permet d'entrer les informations d'un nouveau groupe Unix.
Choisissez le nom du groupe avec soin car une fois cr殚 il ne peut plus
阾re chang.
<hr>

0707010000bba5000081a40000000000000002000000013ac0388f000000b8000000200000000000000000000000000000002700000003reloc/useradmin/help/create_group.html    <header>Create Group</header>

This form allows you to enter the details of a new Unix group. Choose the
group name carefully, as it cannot be changed once the group is created.
<hr>

0707010000bba6000081a40000000000000002000000013ac03890000000a5000000200000000000000000000000000000002a00000003reloc/useradmin/help/create_group.pl.html <header>Utw髍z grup</header>

Ten formularz pozwala ci wprowadzi dane nowej grupy Uniksa. Ostro縩ie
wybieraj nazw grupy, gdy nie mo縩a jej p蠹niej zmieni.
<hr>
   0707010000bba7000081a40000000000000002000000013ac03890000000be000000200000000000000000000000000000002d00000003reloc/useradmin/help/create_group.ru_RU.html  <header>杨玟囗桢 灭箫稃</header>

泥眄 纛痨 镱玮铍弪 忄 忖羼蜩 镟疣戾蝠 眍忸 Unix 沭箫稃. 蔓徼疣轵 桁 沭箫稃 忭桁囹咫, 镱耜铍 邈 礤朦 桤戾龛螯 镱耠 耦玟囗 沭箫稃.
<hr>

  0707010000bba8000081a40000000000000002000000013ac0388f000000be000000200000000000000000000000000000002d00000003reloc/useradmin/help/create_group.ru_SU.html  <header>笙谀廖膳 缫招匈</header>

淞挝裂 葡彝 邢谧咸雅 琢 鬃庞陨 辛伊团砸 蜗紫 Unix 且招匈. 髻律伊试 赏 且招匈 孜赏猎盘匚, 邢铀咸厮 徘 闻特谘 哨团紊载 邢犹 酉谀廖裳 且招匈.
<hr>

  0707010000bba9000081a40000000000000002000000013ac03890000000be000000200000000000000000000000000000002a00000003reloc/useradmin/help/create_group.sv.html <header>L鋑g till grupp</header>

I detta formul鋜 kan man skriva in uppgifter f鰎 en ny Unix-grupp. V鋖j
gruppnamn med omsorg, eftersom det inte kan 鋘dras n鋜 gruppen v鋖 鋜
skapad.
<hr>

  0707010000bbaa000081a40000000000000002000000013ac0389000000083000000200000000000000000000000000000003200000003reloc/useradmin/help/create_group.zh_TW.Big5.html <header>ミ穝竤舱</header>

硂虫琵眤块穝 Unix 竤舱冈灿戈. 叫み匡拒竤舱嘿, 讽竤舱ミ盢礚猭砆э跑.
<hr>

 0707010000bbab000081a40000000000000002000000013ac0388f00000070000000200000000000000000000000000000002900000003reloc/useradmin/help/create_user.es.html  <header>Crear Usuario</header>

Este formulario te permite digitar los detalles de un nuevo usuario Unix.
<hr>

0707010000bbac000081a40000000000000002000000013ac0388f0000007c000000200000000000000000000000000000002900000003reloc/useradmin/help/create_user.fr.html  <header>Cr閑r un utilisateur</header>

Cette page vous permet d'entrer les informations d'un nouvel utilisateur
Unix.
<hr>

0707010000bbad000081a40000000000000002000000013ac0388f00000062000000200000000000000000000000000000002600000003reloc/useradmin/help/create_user.html <header>Create User</header>

This form allows you to enter the details of a new Unix user.
<hr>

  0707010000bbae000081a40000000000000002000000013ac038900000006e000000200000000000000000000000000000002900000003reloc/useradmin/help/create_user.pl.html  <header>Utw髍z u縴tkownika</header>

Ten formularz pozwala ci wprowadzi dane nowego u縴tkownika Uniksa.
<hr>
  0707010000bbaf000081a40000000000000002000000013ac038900000006a000000200000000000000000000000000000002c00000003reloc/useradmin/help/create_user.ru_RU.html   <header>杨玟囗桢 项朦珙忄蝈</header>

蒡 纛痨 镱玮铍弪 忄 忖羼蜩 溧眄  眍忸 镱朦珙忄蝈脲.
<hr>

  0707010000bbb0000081a40000000000000002000000013ac0388f0000006a000000200000000000000000000000000000002c00000003reloc/useradmin/help/create_user.ru_SU.html   <header>笙谀廖膳 鹣特谙琢耘萄</header>

 葡彝 邢谧咸雅 琢 鬃庞陨 牧挝倥  蜗紫 邢特谙琢耘膛.
<hr>

  0707010000bbb1000081a40000000000000002000000013ac0389000000073000000200000000000000000000000000000002900000003reloc/useradmin/help/create_user.sv.html  <header>L鋑g till anv鋘dare</header>

I detta formul鋜 kan man skriva in uppgifter f鰎 en ny Unix-anv鋘dare.
<hr>

 0707010000bbb2000081a40000000000000002000000013ac038900000008d000000200000000000000000000000000000003100000003reloc/useradmin/help/create_user.zh_TW.Big5.html  <header>ミ穝ㄏノ</header>

硂虫琵眤块穝 Unix ㄏノ冈灿戈. 叫み匡拒ㄏノ嘿, 讽ㄏノミ盢礚猭砆э跑.
<hr>

   0707010000bbb3000081a40000000000000002000000013ac03890000000c5000000200000000000000000000000000000002800000003reloc/useradmin/help/edit_group.es.html   <header>Editar Grupo</header>

Este formulario te permite editar los detalles de un grupo ya existente de
Unix. Todos los detalles del grupo pueden ser cambiados con la excepci髇
del nombre.
<hr>

   0707010000bbb4000081a40000000000000002000000013ac0388f000000c9000000200000000000000000000000000000002800000003reloc/useradmin/help/edit_group.fr.html   <header>蒬iter un groupe</header>

Cette page vous permet d'閐iter les informations d'un groupe Unix existant.
Tous les d閠ails de ce groupe peuvent 阾re chang閟,  l'exception de son nom.
<hr>

   0707010000bbc5000081a40000000000000002000000013ac0388f00000098000000200000000000000000000000000000002100000003reloc/useradmin/help/expire.html  <header>Expiry date</header>
The date on which this account will expire. After this date the user will
no longer be able to login to the system. 
<hr>

0707010000bbb5000081a40000000000000002000000013ac0388f000000af000000200000000000000000000000000000002500000003reloc/useradmin/help/edit_group.html  <header>Edit Group</header>

This form allows you to edit the detail of an existing Unix group. All details
of the group may be changed, with the exception of the name.
<hr>

 0707010000bbb6000081a40000000000000002000000013ac03890000000a8000000200000000000000000000000000000002800000003reloc/useradmin/help/edit_group.pl.html   <header>Zmie grup</header>

Ten formularz pozwala ci zmieni dane istniej眂ej grupy systemu Unix.
Mo縩a zmieni wszystkie dane tej grupy za wyj眛kiem jej nazwy.
<hr>
0707010000bbb7000081a40000000000000002000000013ac03890000000ad000000200000000000000000000000000000002b00000003reloc/useradmin/help/edit_group.ru_RU.html    <header>绣溧牝桊钼囗桢 灭箫稃</header>

泥眄 纛痨 镱玮铍弪 忄 疱溧牝桊钼囹 镟疣戾蝠 耋耱怏彘 Unix 沭箫稃. 埋 镟疣戾蝠 沭箫稃 祛骓 桤戾龛螯, 牮铎 桁屙.
<hr>

   0707010000bbb8000081a40000000000000002000000013ac0388f000000ad000000200000000000000000000000000000002b00000003reloc/useradmin/help/edit_group.ru_SU.html    <header>蚺牧嗽梢献廖膳 缫招匈</header>

淞挝裂 葡彝 邢谧咸雅 琢 遗牧嗽梢献猎 辛伊团砸 诱菖釉渍垒攀 Unix 且招匈. 饔 辛伊团砸 且招匈 拖治 哨团紊载, 艘贤 赏盼.
<hr>

   0707010000bbb9000081a40000000000000002000000013ac0389000000090000000200000000000000000000000000000002800000003reloc/useradmin/help/edit_group.sv.html   <header>膎dra grupp</header>

I detta formul鋜 kan man 鋘dra uppgifter om en befintlig Unix-grupp.
Alla uppgifter utom namnet kan 鋘dras.
<hr>

0707010000bbba000081a40000000000000002000000013ac038900000007b000000200000000000000000000000000000003000000003reloc/useradmin/help/edit_group.zh_TW.Big5.html   <header>絪胯竤舱</header>

硂虫琵眤絪胯瞷 Unix 竤舱冈灿戈. 埃竤舱嘿ぇ, ┮Τ灿竊祅跑.
<hr>

 0707010000bbbb000081a40000000000000002000000013ac03890000000cb000000200000000000000000000000000000002700000003reloc/useradmin/help/edit_user.es.html    <header>Editar Usuario</header>

Este formulario te permite editar los detalles de un usuario ya existente de
Unix. Todos los detalles del usuario pueden ser cambiados con la excepci髇
del nombre.
<hr>

 0707010000bbbc000081a40000000000000002000000013ac0388f000000d1000000200000000000000000000000000000002700000003reloc/useradmin/help/edit_user.fr.html    <header>蒬iter un utilisateur</header>

Cette page vous permet d'閐iter les informations d'un utilisateur Unix
existant. Tous les d閠ails de l'utilisateur peuvent 阾re chang閟,
 l'exception de son nom.
<hr>

   0707010000bbbd000081a40000000000000002000000013ac0388f000000b1000000200000000000000000000000000000002400000003reloc/useradmin/help/edit_user.html   <header>Edit User</header>

This form allows you to edit the details of an existing Unix user. All details
of the user may be changed, with the exception of the username.
<hr>

   0707010000bbbe000081a40000000000000002000000013ac03890000000bd000000200000000000000000000000000000002700000003reloc/useradmin/help/edit_user.pl.html    <header>Zmie U縴tkownika</header>

Ten formularz pozwala ci zmieni dane istniej眂ego u縴tkownika systemu Unix.
Mo縩a zmieni wszystkie dane tego u縴tkownika za wyj眛kiem jego nazwy.
<hr>
   0707010000bbbf000081a40000000000000002000000013ac03890000000dc000000200000000000000000000000000000002a00000003reloc/useradmin/help/edit_user.ru_RU.html <header>绣溧牝桊钼囗桢 项朦珙忄蝈</header>

泥眄 纛痨 镱玮铍弪 忄 疱溧牝桊钼囹 镟疣戾蝠 镱朦珙忄蝈脲 耔耱屐.
埋 疣琊屮屙睇  桤戾礤龛 镟疣戾蝠 玎 桉觌屙桢 桁屙 镱朦珙忄蝈 
祛泱 猁螯 桤戾礤睇.
<hr>

0707010000bbc0000081a40000000000000002000000013ac0388f000000dc000000200000000000000000000000000000002a00000003reloc/useradmin/help/edit_user.ru_SU.html <header>蚺牧嗽梢献廖膳 鹣特谙琢耘萄</header>

淞挝裂 葡彝 邢谧咸雅 琢 遗牧嗽梢献猎 辛伊团砸 邢特谙琢耘膛 由釉磐.
饔 伊谝袍盼钨  哨团闻紊 辛伊团砸 诹 捎颂擂盼膳 赏盼 邢特谙琢耘萄 
拖钦 沦载 哨团闻钨.
<hr>

0707010000bbc1000081a40000000000000002000000013ac03890000000a0000000200000000000000000000000000000002700000003reloc/useradmin/help/edit_user.sv.html    <header>膎dra anv鋘dare</header>

I detta formul鋜 kan man 鋘dra uppgifter om en befintlig Unix-anv鋘dare.
Alla uppgifter utom anv鋘darnamnet kan 鋘dras.
<hr>

0707010000bbc2000081a40000000000000002000000013ac0389000000081000000200000000000000000000000000000002f00000003reloc/useradmin/help/edit_user.zh_TW.Big5.html    <header>絪胯ㄏノ</header>

硂虫琵眤絪胯瞷 Unix ㄏノ冈灿戈. 埃ㄏノ嘿ぇ, ┮Τ灿竊祅跑.
<hr>

   0707010000bbc3000081a40000000000000002000000013ac0389000000092000000200000000000000000000000000000002400000003reloc/useradmin/help/expire.es.html   <header>Fecha de Expiraci髇</header>

La fecha en que esta cuenta expira. Tras esta fecha el usuario ya no podr
hacer login en el sistema.
<hr>

  0707010000bbc4000081a40000000000000002000000013ac0388f00000094000000200000000000000000000000000000002400000003reloc/useradmin/help/expire.fr.html   <header>Date d'expiration</header>
La date  laquelle le compte va expirer. Apr鑣 cette date,
l'utilisateur ne pourra plus ouvrir de session.
<hr>

0707010000bbc6000081a40000000000000002000000013ac038900000008e000000200000000000000000000000000000002400000003reloc/useradmin/help/expire.pl.html   <header>Konto wa縩e do dnia</header>

Data up硑wu wa縩o禼i tego konta. Po tej dacie u縴tkownik nie b阣zie m骻
si zalogowa do systemu.
<hr>
  0707010000bbc9000081a40000000000000002000000013ac038900000008f000000200000000000000000000000000000002400000003reloc/useradmin/help/expire.sv.html   <header>Upph鰎</header>
Datum d detta konto upph鰎. N鋜 detta datum passerats kommer anv鋘daren
inte l鋘gre kunna logga in p systemet.
<hr>

 0707010000bbc7000081a40000000000000002000000013ac03890000000b5000000200000000000000000000000000000002700000003reloc/useradmin/help/expire.ru_RU.html    <header>泥蜞 篑蜞疱忄龛</header>
泥蜞 磬 觐蝾痼 溧眄 狺滏弪 镱朦珙忄蝈 篑蜞疱弪. 项耠 磬耱箫脲龛 溧眄铋 溧螓 镱朦珙忄蝈朦 犷朦 礤 耢铈弪 疱汨耱痂痤忄螯  耔耱屐.
<hr>

   0707010000bbc8000081a40000000000000002000000013ac0388f000000b5000000200000000000000000000000000000002700000003reloc/useradmin/help/expire.ru_SU.html    <header>淞粤 沼粤遗琢紊</header>
淞粤 瘟 讼韵艺 牧挝偈 吕闹旁 邢特谙琢耘萄 沼粤遗旁. 鹣犹 瘟釉招膛紊 牧挝鲜 牧再 邢特谙琢耘特 孪特叟 闻 油现旁 遗巧釉疑蚁琢载友  由釉磐.
<hr>

   0707010000bbca000081a40000000000000002000000013ac0389000000065000000200000000000000000000000000000002c00000003reloc/useradmin/help/expire.zh_TW.Big5.html   <header>筁戳ら戳</header>
硂眀腹盢穦筁戳ら戳. 硂ら戳ぇ, ㄏノ盢ぃ祅硂╰参. 
<hr>

   0707010000bbcb000081a40000000000000002000000013ac03890000000b4000000200000000000000000000000000000002500000003reloc/useradmin/help/expire2.es.html  <header>Fecha de expiraci髇 de la Cuenta</header>

La fecha en que esta cuenta expira. Tras esta fecha el usuario ya no podr
hacer login v韆 telnet, FTP o desde la consola.
<hr>

0707010000bbcc000081a40000000000000002000000013ac0388f000000c4000000200000000000000000000000000000002500000003reloc/useradmin/help/expire2.fr.html  <header>Date d'expiration du compte</header>

La date a laquelle le compte va expirer. Apr鑣 cette date, l'utilisateur
ne pourra plus ouvrir de session par telnet, FTP ou m阭e  la console.
<hr>

0707010000bbcd000081a40000000000000002000000013ac0388f000000bc000000200000000000000000000000000000002200000003reloc/useradmin/help/expire2.html <header>Account expiry date</header>

The date on which this account expires. After this date has passed, the
user will no longer be able to login via telnet, FTP or at the console.
<hr>

0707010000bbce000081a40000000000000002000000013ac038900000008e000000200000000000000000000000000000002500000003reloc/useradmin/help/expire2.pl.html  <header>Konto wa縩e do dnia</header>

Data up硑wu wa縩o禼i tego konta. Po tej dacie u縴tkownik nie b阣zie m骻
si zalogowa do systemu.
<hr>
  0707010000bbcf000081a40000000000000002000000013ac03890000000a8000000200000000000000000000000000000002800000003reloc/useradmin/help/expire2.ru_RU.html   <header>泥蜞 篑蜞疱忄龛 狺滏弪</header>

项 镳铠羼蜮梃 溧眄铋 溧螓 镱朦珙忄蝈朦 礤 耢铈弪 疱汨耱痂痤忄螯  耔耱屐 麇疱 telnet, FTP 桦  耔耱屐眍 觐眈铍.
<hr>

0707010000bbd0000081a40000000000000002000000013ac0388f000000a8000000200000000000000000000000000000002800000003reloc/useradmin/help/expire2.ru_SU.html   <header>淞粤 沼粤遗琢紊 吕闹旁</header>

鹣 幸羡庞宰缮 牧挝鲜 牧再 邢特谙琢耘特 闻 油现旁 遗巧釉疑蚁琢载友  由釉磐 夼遗 telnet, FTP 商  由釉磐蜗 讼斡咸.
<hr>

0707010000bbd1000081a40000000000000002000000013ac03890000000bb000000200000000000000000000000000000002500000003reloc/useradmin/help/expire2.sv.html  <header>Livsl鋘gd f鰎 konto</header>

Datum d kontot upph鰎. N鋜 detta datum passerats kommer anv鋘daren inte
l鋘gre kunna logga in p systemet via telnet, FTP eller p en konsol.
<hr>

 0707010000bbd2000081a40000000000000002000000013ac0389000000083000000200000000000000000000000000000002d00000003reloc/useradmin/help/expire2.zh_TW.Big5.html  <header>眀腹筁戳ら戳</header>

硂眀腹盢穦筁戳丁. 硂ら戳ぇ, ㄏノ盢ぃ硓筁 telnet, FTP ┪沧狠诀祅硂╰参
<hr>

 0707010000bbd3000081a40000000000000002000000013ac0389000000129000000200000000000000000000000000000002600000003reloc/useradmin/help/findform.es.html <header>Buscar Usuario</header>

Si tu sistema tiene demasiados usuarios, este formulario te permitir
buscar los usuarios que desees modificar. La b鷖queda puede ser con
una coincidencia exacta o por expresi髇 sobre el nombre de login, el nombre
real, shell, directorio de inicio o la UID.

<hr>
   0707010000bbd4000081a40000000000000002000000013ac0388f00000164000000200000000000000000000000000000002600000003reloc/useradmin/help/findform.fr.html <header>Chercher un utilisateur</header>

Si votre syst鑝e a trop d'utilisateurs, cette page vous sera affich閑
pour que vous recherchiez l'utilisateur  modifier. La recherche peut
s'閒fectuer par une correspondance exacte ou d'une expression r間uli鑢e
sur le nom, le vrai nom, le shell, le r閜ertoire personnel ou le
numero d'utilisateur.
<hr>

0707010000bbd5000081a40000000000000002000000013ac0388f00000109000000200000000000000000000000000000002300000003reloc/useradmin/help/findform.html    <header>User Search</header>

If your system has too many users, this form will be displayed for
you to search for the user(s) you want to modify. Searching can be by
an exact or regexp match on the user's login name, real name, shell,
home directory or UID.

<hr>
   0707010000bbd6000081a40000000000000002000000013ac0389000000174000000200000000000000000000000000000002600000003reloc/useradmin/help/findform.pl.html <header>Znajd u縴tkownika</header>

Je秎i w twoim systemie jest zbyt wielu u縴tkownik體, pojawi si ten
formularz pozwalaj眂y ci na znalezienie u縴tkownika(-體), kt髍ego(-ych) dane
chcesz zmieni. Mo縠sz poszukiwa u縴tkownik體, kt髍ych nazwa logowania,
nazwa rzeczywista, pow硂ka, katalog domowy lub numer UID pasuj do
dok砤dnego wzorca lub wyra縠nia regularnego.
<hr>
0707010000bbd7000081a40000000000000002000000013ac0389000000160000000200000000000000000000000000000002900000003reloc/useradmin/help/findform.ru_RU.html  <header>项桉 项朦珙忄蝈脲</header>

篷腓  忄 耔耱屐 耠桫觐 祉钽 镱朦珙忄蝈脲, 恹 筲桎栩 溧眄囿  纛痨 , 觐蝾疣 镱玮铍栩 忄 恹狃囹 桧蝈疱耋桴 忄 镱朦珙忄蝈脲. 项桉 祛驽 铖簌羼蜮螯 镱 蝾黜铎 疣忮眈蜮 桦 耦怙噤屙棹  疱泱痦 恹疣驽龛屐 镱 疱汨耱疣鲨铐眍祗 桁屙, 疱嚯铎 桁屙, shell, 漕爨屐 赅蜞腩泱, 桦 UID.

<hr>
0707010000bbd8000081a40000000000000002000000013ac0388f00000160000000200000000000000000000000000000002900000003reloc/useradmin/help/findform.ru_SU.html  <header>鹣捎 鹣特谙琢耘膛</header>

逵躺  琢叟 由釉磐 犹邵讼 臀锨 邢特谙琢耘膛, 踪 兆赡稍 牧挝琳  葡彝 , 讼韵伊 邢谧咸稍 琢 踪乱猎 晌耘遗诱垒扇 琢 邢特谙琢耘膛. 鹣捎 拖峙 嫌蛰庞宰萄载友 邢 韵尬贤 伊着斡宰 商 酉仔聊盼衫  遗钦萄椅偻 踪伊峙紊磐 邢 遗巧釉伊蒙衔蜗驼 赏盼, 遗撂匚贤 赏盼, shell, 南土畚磐 肆粤滔钦, 商 UID.

<hr>
0707010000bbd9000081a40000000000000002000000013ac0389000000151000000200000000000000000000000000000002600000003reloc/useradmin/help/findform.sv.html <header>S鰇 efter anv鋘dare</header>

Om det finns m錸ga anv鋘dare i systemet kommer detta formul鋜 att visas,
s att man kan s鰇a efter den/de anv鋘dare man vill 鋘dra uppgifter f鰎.
S鰇str鋘gen anges som ett exakt eller regulj鋜t uttryck som ska matchas mot
anv鋘darens inloggningsnamn, riktiga namn, skal, hemkatalog eller UID.

<hr>
   0707010000bbdb000081a40000000000000002000000013ac0389000000243000000200000000000000000000000000000002400000003reloc/useradmin/help/gchgid.es.html   <header>緾ambio GID de usuario en los archivos?</header>

Cuando se edita un grupo ya existente, si se cambia la
<a href=ggid.es>ID de Grupo</a> entonces los archivos
pertenecientes a ese grupo seguir醤 perteneciendo a la vieja GID.
Se puede utilizar esta opci髇 para actualizar la propiedad de los archivos
a la nueva GID mediante la b鷖queda en el directorio inicial (Directorio de
Inicio) del usuario o en todo el sistema de archivos (Todos los Archivos).
Esta 鷏tima opci髇 puede tardar bastante, especi醠mente si tienes montados
sistemas de archivo o NFS muy grandes.
<hr>

 0707010000bbda000081a40000000000000002000000013ac03890000000d1000000200000000000000000000000000000002e00000003reloc/useradmin/help/findform.zh_TW.Big5.html <header>т碝ㄏノ</header>

狦眤╰参Τびㄏノ, 硂虫盢穦砆陪ボτ琵眤穓碝眤稱璶跑ㄏノ. 眤ㄏノЧ才┪タ砏ボΑよΑт碝ㄏノ祅嘿, 痷龟嘿, ㏑催, 產ヘ魁┪ UID.

<hr>
   0707010000bbdc000081a40000000000000002000000013ac0388f0000021e000000200000000000000000000000000000002400000003reloc/useradmin/help/gchgid.fr.html   <header>Changer de groupe sur les fichiers?</header>

Quand un groupe est 閐it et que son <a href=gid>Num閞o de groupe</a>
est chang, les fichiers qui appartenaient  ce groupe garderont
l'ancien num閞o. Cette option permet de mettre  jour le num閞o de
groupe des fichiers avec le nouveau num閞o en cherchant soit dans le
r閜ertoire des utilisateurs (R閜ertoire personnel) soit dans tout
le syst鑝e de fichiers (Tous les fichiers). L'option pour tous les
fichiers peut prendre longtemps, surtout si vous avez de gros
disques ou NFS.
<hr>

  0707010000bbdd000081a40000000000000002000000013ac0388f000001ee000000200000000000000000000000000000002100000003reloc/useradmin/help/gchgid.html  <header>Change GID on files?</header>

When editing a group, if the <a href=ggid>group ID</a> is changed then
files owned by that group will remain owned by the old GID. This option
can be used to update the ownership on files to the new GID by searching
either the home directories of all users who are members of this group
(Home Directories) or the entire filesystem (All Files). The All Files
option may take a long time, especially if you have many large or NFS
mounted filesystems.
<hr>

  0707010000bbde000081a40000000000000002000000013ac038900000024b000000200000000000000000000000000000002400000003reloc/useradmin/help/gchgid.pl.html   <header>Zmieni GID na plikach?</header>

Je秎i przy zmianie grupy numer <a href=ggid>ID grupy</a> zostanie zmieniony
w體czas pliki nale勘ce do tej grupy pozostan w砤sno禼i poprzedniego numeru
GID. Opcja ta mo縠 by u縴ta do aktualizacji praw w砤sno禼i na plikach na
nowy numer GID poprzez przeszukanie katalog體 domowych wszystkich
u縴tkownik體 b阣眂ych cz硂nkami tej grupy (Katalogi domowe) lub ca砮go
systemu plik體 (Wszystkie pliki). Opcja &quot;Wszystkie pliki&quot; mo縠
zaj辨 du縪 czasu, zw砤szcza je秎i posiadasz wiele du縴ch lub podmontowanych
przez NFS system體 plik體.
<hr>
 0707010000bbdf000081a40000000000000002000000013ac0389000000255000000200000000000000000000000000000002700000003reloc/useradmin/help/gchgid.ru_RU.html    <header>如戾螯 GID 磬 羿殡?</header>

篷腓 镳 疱溧牝桊钼囗梃 沭箫稃 桤戾龛腭 <a href=ggid>group ID 沭箫稃</a>, 蝾 羿殡 钺豚溧屐 溧眄铋 沭箫镱 铖蜞眢蝰 忸 怆噤屙梃 耱囵钽 GID. 泥眄 铒鲨 祛驽 猁螯 桉镱朦珙忄磬 潆 钺眍怆屙 镳噔 磬 羿殡 潆 眍忸泐 GID 矬蝈 镱桉赅 赅  漕爨桴 赅蜞腩汔 怦艴 镱朦珙忄蝈脲 怆桴 麟屙囔 溧眄铋 沭箫稃 (镟疣戾蝠 - 念爨桢 枢蜞腩汨), 蜞  忸 怦彘 羿殡钼铋 耔耱屐 (镟疣戾蝠 - 埋 脏殡). 锐镱朦珙忄龛 镟疣戾蝠 - 埋 脏殡 祛驽 玎螯 祉钽 怵屐屙, 铖钺屙眍, 羼腓 恹 桁邋蝈 祉钽 犷朦 桦 耢铐蜩痤忄眄 镱 NFS 羿殡钼 耔耱屐. 
<hr>

   0707010000bbe0000081a40000000000000002000000013ac0388f00000255000000200000000000000000000000000000002700000003reloc/useradmin/help/gchgid.ru_SU.html    <header>橼团窝载 GID 瘟 屏侍?</header>

逵躺 幸 遗牧嗽梢献廖缮 且招匈 哨团紊逃 <a href=ggid>group ID 且招匈</a>, 韵 屏侍 下塘牧磐倥 牧挝鲜 且招邢 嫌粤握杂 紫 滋聊盼缮 釉烈锨 GID. 淞挝裂 闲蒙 拖峙 沦载 捎邢特谙琢瘟 奶 下蜗滋盼裳 幸磷 瘟 屏侍 奶 蜗紫窍 GID 姓耘 邢捎肆 肆  南土畚扇 肆粤滔橇 子湃 邢特谙琢耘膛 炎萄垒扇友 尢盼镣 牧挝鲜 且招匈 (辛伊团砸 - 湎土畚膳 肓粤滔巧), 粤  紫 子攀 屏侍献鲜 由釉磐 (辛伊团砸 - 饔 媪侍). 橛邢特谙琢紊 辛伊团砸 - 饔 媪侍 拖峙 诹窝载 臀锨 滓磐盼, 嫌下盼蜗, 庞躺 踪 赏排耘 臀锨 孪特凵 商 油衔陨蚁琢挝偃 邢 NFS 屏侍献偃 由釉磐. 
<hr>

   0707010000bbe1000081a40000000000000002000000013ac03890000001d6000000200000000000000000000000000000002400000003reloc/useradmin/help/gchgid.sv.html   <header>Byta grupp-ID p filer?</header>

Om man 鋘drar en grupps <a href=ggid>grupp-ID</a> kommer filerna
som 鋑des av denna grupp fortfarande 鋑as av dess gamla grupp-ID. H鋜 kan man
鋘dra fil鋑andet till ett nytt GID genom att s鰇a igenom hemkatalogerna f鰎 
alla anv鋘dare som 鋜 medlemmar i gruppen (Hemkataloger) eller hela
filsystemet (Alla filer).
Alternativet Alla filer tar ett tag att genomf鰎a, s鋜skilt om man har
stora eller NFS-monterade filsystem.
<hr>

  0707010000bbe2000081a40000000000000002000000013ac0389000000144000000200000000000000000000000000000002c00000003reloc/useradmin/help/gchgid.zh_TW.Big5.html   <header>琌э跑郎竤舱絪腹?</header>

讽絪胯竤舱, 狦<a href=ggid>竤舱絪腹</a>砆э跑, 玥┮局Τ郎ご穦妮侣 GID. 硂匡兜穓碝┮Τ计硂竤舱ㄏノぇ產ヘ魁┪俱郎╰参, 穝ㄤ┮局Τ郎┮Τ舦穝 GID. ㄏノ'场郎'匡兜穦禣讽丁, ぷㄤ琌眤Τ┪ㄓ NFS 郎╰参.
<hr>

0707010000bbe3000081a40000000000000002000000013ac0389000000191000000200000000000000000000000000000002200000003reloc/useradmin/help/ggid.es.html <header>ID de Grupo</header>

Al igual que la <a href=uid.es>ID de usuario</a>, la ID de grupo o GID es la
que el sistema realmente utiliza para forzar los permisos sobre los archivos y
procesos, Si dos grupo tienen la misma GID son considerados equivalentes a
la hora de chequear los permisos. Al crear un nuevo grupo, Webmin rellena
este campo con una GID que no est en uso por otro grupo.

<hr>


   0707010000bbea000081a40000000000000002000000013ac0388f000001cc000000200000000000000000000000000000002200000003reloc/useradmin/help/ggid.fr.html <header>Num閞o de groupe</header>

Tout comme le <a href=uid>num閞o d'utilisateur</a, le num閞o de groupe (ou GID)
est ce que le syst鑝e utilise vraiment pour attribuer les permissions aux
fichiers et processus. Si deux groupes ont le m阭e num閞o ils seront consid閞閟
comme 閝uivalents lors d'une v閞ification de permissions. Quand un nouveau
groupe est cr殚, Webmin remplira ce champ avec un num閞o qui n'est pas utilis
par un autre groupe.
<hr>

0707010000bbeb000081a40000000000000002000000013ac0388f00000179000000200000000000000000000000000000001f00000003reloc/useradmin/help/ggid.html    <header>Group ID</header>

Like the <a href=uid>user ID</a>, the group ID or GID is what the system really
uses to enforce permissions on files and processes. If two groups have the
same GID they will be considered equivalent when it comes to checking
permissions. When creating a new group, Webmin will fill this field with 
a GID that is not in use by another group.

<hr>


   0707010000bbec000081a40000000000000002000000013ac038900000018d000000200000000000000000000000000000002200000003reloc/useradmin/help/ggid.pl.html <header>Numer ID grupy</header>

Podobnie do <a href=uid>numeru ID u縴tkownika</a>, numer ID dla grupy lub
numer GID jest tym, czego system w rzeczywisto禼i u縴wa dla wymuszenia praw
do plik體 i proces體. Je秎i dwie grupy maja ten sam numer GID, s one
r體nowa縩e podczas sprawdzania uprawnie. Tworz眂 now grup Webmin wype硁i
to pole numerem GID, kt髍y nie jest u縴wany przez inna grup.

<hr>
   0707010000bbed000081a40000000000000002000000013ac0389000000171000000200000000000000000000000000000002500000003reloc/useradmin/help/ggid.ru_RU.html  <header>ID 灭箫稃</header>

枢  <a href=uid> ID 镱朦珙忄蝈</a>, ID 沭箫稃 桦 GID - 
 桎屙蜩翳赅蝾, 觐蝾瘥 耔耱屐 疱嚯 桉镱朦珞弪 潆 铒疱溴脲龛 镳噔 磬
羿殡  镳铞羼覃. 篷腓 溻 沭箫稃 桁妣 钿桧嚓钼 GID 铐 狍潴 忤忄脲眚睇
潆 耔耱屐 镳 镳钼屦赍 镳噔. 橡 耦玟囗梃 眍忸 沭箫稃  镱脲 狍溴 
噔蝾爨蜩麇耜 玎镱腠屙 礤桉镱朦珞屐 GID.
<hr>


   0707010000bbee000081a40000000000000002000000013ac0388f00000171000000200000000000000000000000000000002500000003reloc/useradmin/help/ggid.ru_SU.html  <header>ID 缫招匈</header>

肓  <a href=uid> ID 邢特谙琢耘萄</a>, ID 且招匈 商 GID - 
茉 赡盼陨粕肆韵, 讼韵屹 由釉磐 遗撂匚 捎邢特谡旁 奶 闲遗呐膛紊 幸磷 瘟
屏侍  幸厦庞淤. 逵躺 淖 且招匈 赏爬 夏晌了献偈 GID 衔 抡恼 芩咨琢膛卧钨
奶 由釉磐 幸 幸献乓伺 幸磷. 鹨 酉谀廖缮 蜗紫 且招匈 茉 邢膛 抡呐 
磷韵土陨夼铀 诹邢涛盼 闻捎邢特谡磐偻 GID.
<hr>


   0707010000bbef000081a40000000000000002000000013ac0389000000191000000200000000000000000000000000000002200000003reloc/useradmin/help/ggid.sv.html <header>Grupp-ID</header>

Precis som f鰎 <a href=uid>anv鋘dar-ID</a> 鋜 grupp-ID eller GID det som
systemet egentligen anv鋘der sig av f鰎 att kontrollera r鋞tigheter f鰎
filer och processer. Om tv grupper har samma GID kommer de att behandlas
som likv鋜diga ifr錱a om r鋞tigheter. N鋜 en ny grupp skapas kommer Webmin
att i detta f鋖t fylla i ett GID som inte anv鋘ds av n錱on annan grupp.

<hr>


   0707010000bbf0000081a40000000000000002000000013ac038900000010e000000200000000000000000000000000000002a00000003reloc/useradmin/help/ggid.zh_TW.Big5.html <header>竤舱絪腹</header>

碞钩琌<a href=uid>竤舱絪腹</a>妓, 竤舱絪腹┪ GID 琌╰参龟悔ノ醚郎籔祘舦计. 狦竤舱Τ GID, 玥浪琩舦, 硂竤舱琌砆跌. 讽ミ穝竤舱, Webmin 穦笆ゼ砆ㄤ竤舱ㄏノ GID 恶硂逆.

<hr>


  0707010000bbf1000081a40000000000000002000000013ac03890000000a5000000200000000000000000000000000000002400000003reloc/useradmin/help/ggroup.es.html   <header>Nombre de Grupo</header>

Cada grupo debe de tener un nombre 鷑ico que lo identifique. Este nombre
no puede ser cambiado una vez que se cree el grupo.
<hr>

   0707010000bbf2000081a40000000000000002000000013ac0388f00000094000000200000000000000000000000000000002400000003reloc/useradmin/help/ggroup.fr.html   <header>Nom de groupe</header>

Chaque groupe doit avoir un nom unique. Ce nom ne peut pas 阾re
chang une fois que le groupe est cr殚.
<hr>

0707010000bbf3000081a40000000000000002000000013ac0388f00000092000000200000000000000000000000000000002100000003reloc/useradmin/help/ggroup.html  <header>Group name</header>

Every group must have a unique name that identifies it. This name cannot
be changed once the group is created.
<hr>

  0707010000bbf4000081a40000000000000002000000013ac0389000000091000000200000000000000000000000000000002400000003reloc/useradmin/help/ggroup.pl.html   <header>Nazwa grupy</header>

Ka縟a grupa musi mie unikaln nazw, kt髍a j identyfikuje. Po utworzeniu
grupy tej nazwy nie mo縩a zmieni.
<hr>
   0707010000bbf5000081a40000000000000002000000013ac038900000008c000000200000000000000000000000000000002700000003reloc/useradmin/help/ggroup.ru_RU.html    <header>褥 沭箫稃</header>

枢驿 沭箫镟 漕腈磬 桁弪龛赅朦眍 桁 桎屙蜩翳鲨痼邋 澹. 蒡 桁
礤 戾弪 镱耠 耦玟囗 沭箫稃.
<hr>

0707010000bbf6000081a40000000000000002000000013ac0388f0000008c000000200000000000000000000000000000002700000003reloc/useradmin/help/ggroup.ru_SU.html    <header>橥 且招匈</header>

肓帜裂 且招辛 南讨瘟 赏旁卣紊肆特蜗 赏 赡盼陨粕蒙艺垒排 牛.  赏
闻 团窝旁友 邢犹 酉谀廖裳 且招匈.
<hr>

0707010000bbf7000081a40000000000000002000000013ac0389000000091000000200000000000000000000000000000002400000003reloc/useradmin/help/ggroup.sv.html   <header>Gruppnamn</header>

Varje grupp m錽te ha ett unikt namn som identifierare. Detta namn kan
inte 鋘dras n鋜 gruppen v鋖 har skapats.
<hr>

   0707010000bbf8000081a40000000000000002000000013ac038900000006d000000200000000000000000000000000000002c00000003reloc/useradmin/help/ggroup.zh_TW.Big5.html   <header>竤舱嘿</header>

–竤舱常ゲ斗Τ斑嘿醚ぇ. 硂嘿竤舱ミ獽ぃ砆э跑.
<hr>

   0707010000bbf9000081a40000000000000002000000013ac03890000001d9000000200000000000000000000000000000002600000003reloc/useradmin/help/gmembers.es.html <header>Miembros</header>

La parte m醩 importante de un grupo es la lista de usuarios considerados
como miembros. Si un usuario intenta acceder a un archivo y el usuario es
miembro del grupo propietario del archivo, entonces se aplican los permisos
de grupo para ese archivo. <p>

Esta lista no incluye a los usuario que tienen este grupo como su
<a href=group.es>grupo primario</a>, s髄o a los usuario que tiene a este
como su <a href=2nd.es>grupo secundario</a>. 
<hr>

   0707010000bcc5000081a40000000000000002000000013ac0388f000001db000000200000000000000000000000000000002600000003reloc/useradmin/help/gmembers.fr.html <header>Membres</header>

La partie la plus importante d'un groupe est la liste des utilisateurs qui
en font partie. Si un utilisateur tente d'acc閐er un fichier et qu'il est
membre du groupe qui poss鑔e le fichier, les permissions que le groupe
a pour ce fichier s'appliqueront. <p>

Cette liste n'inclut pas les utilisateurs qui ont ce groupe comme
<a href=group>groupe primaire</a>, mais seulement ceux qui l'ont comme
<a href=2nd>groupe secondaire</a>.
<hr>

 0707010000bcc6000081a40000000000000002000000013ac0388f000001b0000000200000000000000000000000000000002300000003reloc/useradmin/help/gmembers.html    <header>Members</header>

The most important part of a group is the list of users who are its members.
If a user attempts to access a file and the user is a member of the group
that owns the file, then the group permissions for that file will apply. <p>

This list does not include users who have this group as their
<a href=group>primary group</a>, only users who have this as one of
their <a href=2nd>secondary groups</a>. 
<hr>

0707010000bcc7000081a40000000000000002000000013ac03890000001e4000000200000000000000000000000000000002600000003reloc/useradmin/help/gmembers.pl.html <header>Cz硂nkowie</header>

Najwa縩iejsz cz甓ci grupy jest lista jej u縴tkownik體, kt髍zy s jej
cz硂nkami. Je秎i u縴tkownik pr骲uje uzyska dost阷 do pliku i&nbsp;jest
cz硂nkiem grupy, do kt髍ej ten plik nale縴, to maj zastosowanie prawa
dost阷u do tego pliku dla grupy. <p>

Ta lista nie zawiera u縴tkownik體, dla kt髍ych ta grupa jest 
<a href=group>grup podstawow</a>, a&nbsp;tylko u縴tkownik體, dla kt髍ych
jest ona jedn z&nbsp;ich <a href=2nd>grup dodatkowych</a>.

<hr>
0707010000bcc8000081a40000000000000002000000013ac03890000001f7000000200000000000000000000000000000002900000003reloc/useradmin/help/gmembers.ru_RU.html  <header>纂屙</header>

袜栳铍邋 忄骓铋 踵疣牝屦桉蜩觐 怆弪 耧桉铌 镱朦珙忄蝈脲, 觐蝾瘥 怆 澹 麟屙囔. 篷腓 镱朦珙忄蝈朦 稃蜞弪 钺疣蜩螯  羿殡  溧眄 镱朦珙忄蝈朦 怆弪 麟屙铎 沭箫稃 钺豚溧彘 溧眄 羿殡铎, 蝾 狍潴 桉镱朦珙忄螯 镳噔 漕耱箫 溧眄铋 沭箫稃  铎 羿殡.
<p>

泥眄 耧桉铌 礤 怅膻鬣弪 镱朦珙忄蝈脲 桁妣 溧眄簋 沭箫矬  赅麇耱忮 <a href=group>镥疴梓眍 沭箫稃</a>, 蝾腙 镱朦珙忄蝈脲, 觐蝾瘥 桁妣 澹  赅麇耱忮 <a href=2nd>怛铕梓眍 沭箫稃</a>.
<hr>

 0707010000bcc9000081a40000000000000002000000013ac0388f000001f7000000200000000000000000000000000000002900000003reloc/useradmin/help/gmembers.ru_SU.html  <header>盼</header>

盍陕咸排 琢治鲜 攘伊嗽乓捎陨讼 炎萄旁友 有捎纤 邢特谙琢耘膛, 讼韵屹 炎萄涝友 牛 尢盼镣. 逵躺 邢特谙琢耘特 匈粤旁友 下伊陨载友  屏侍  牧挝偈 邢特谙琢耘特 炎萄旁友 尢盼贤 且招匈 下塘牧垒攀 牧挝偻 屏侍贤, 韵 抡恼 捎邢特谙琢载友 幸磷 南釉招 牧挝鲜 且招匈  茉贤 屏侍.
<p>

淞挝偈 有捎纤 闻 姿汤蘖旁 邢特谙琢耘膛 赏爬萆 牧挝绽 且招姓  肆夼釉着 <a href=group>信易赊蜗 且招匈</a>, 韵趟 邢特谙琢耘膛, 讼韵屹 赏爬 牛  肆夼釉着 <a href=2nd>自弦赊蜗 且招匈</a>.
<hr>

 0707010000bcca000081a40000000000000002000000013ac03890000001c0000000200000000000000000000000000000002600000003reloc/useradmin/help/gmembers.sv.html <header>Medlemmar</header>

Den viktigaste delen av en grupp 鋜 listan 鰒er de anv鋘dare som 鋜
medlemmar i gruppen. Om en anv鋘dare f鰎s鰇er komma 錿 en fil och denna
anv鋘dare 鋜 medlem i den grupp som 鋑er filen, kommer gruppr鋞tigheterna
f鰎 filen att g鋖la.

Listan inneh錶ler inte anv鋘dare som har denna grupp som sin
<a href=group>prim鋜a grupp</a>, utan endast anv鋘dare som har den som en
av sina <a href=2nd>sekund鋜a grupper</a>. 
<hr>
0707010000bccb000081a40000000000000002000000013ac0389000000115000000200000000000000000000000000000002e00000003reloc/useradmin/help/gmembers.zh_TW.Big5.html <header>Θ</header>

癸竤舱τē, 程璶场だ獽琌ㄤΘ. 狦ㄏノ刚帝郎, ㄏノ琌局Τ赣郎竤舱Θ, 玥竤舱舦盢穦砆甅ノ. <p>

硂ぃ硂竤舱<a href=group>璶竤舱</a>ㄏノ, 硂穦竤舱<a href=2nd>Ω璶竤舱</a>ㄏノ. 
<hr>

   0707010000bccc000081a40000000000000002000000013ac038900000008e000000200000000000000000000000000000002500000003reloc/useradmin/help/gpasswd.es.html  <header>Clave de Acceso</header>

Las claves de acceso de grupo ya no se utilizan en la mayor韆 de sistemas.
Puedes ignorar este campo.
<hr>

  0707010000bccd000081a40000000000000002000000013ac0388f000000ae000000200000000000000000000000000000002500000003reloc/useradmin/help/gpasswd.fr.html  <header>Mot de passe de groupe</header>

Les mots de passe de groupes ne sont plus utilis閟 ni v閞ifi閟 sur la
plupart des syst鑝es. Vous pouvez donc ignorer ce champ.
<hr>

  0707010000bcce000081a40000000000000002000000013ac0388f0000007c000000200000000000000000000000000000002200000003reloc/useradmin/help/gpasswd.html <header>Password</header>

Group passwords are no longer used or enforced on most systems. You can
ignore this field.
<hr>

0707010000bccf000081a40000000000000002000000013ac038900000007f000000200000000000000000000000000000002500000003reloc/useradmin/help/gpasswd.pl.html  <header>Has硂</header>

W wi阫szo禼i system體 has砤 dla grup nie s ju u縴wane ani wymuszane.
Mo縠sz zignorowa to pole.
<hr>
 0707010000bcd0000081a40000000000000002000000013ac0389000000091000000200000000000000000000000000000002800000003reloc/useradmin/help/gpasswd.ru_RU.html   <header>相痤朦</header>

相痤腓 沭箫 犷滕 礤 桉镱朦珞 桦 礤嚓蜩忭 磬 犷朦眈蜮 耔耱屐. 蔓 祛驽蝈 耢咫 桡眍痂痤忄螯 溧眄铄 镱脲.
<hr>

   0707010000bcd1000081a40000000000000002000000013ac0388f00000091000000200000000000000000000000000000002800000003reloc/useradmin/help/gpasswd.ru_SU.html   <header>鹆蚁特</header>

鹆蚁躺 且招 孪疼 闻 捎邢特谡涝友 商 闻了陨孜 瘟 孪特凵斡宰 由釉磐. 髻 拖峙耘 油盘 汕蜗疑蚁琢载 牧挝吓 邢膛.
<hr>

   0707010000bcd6000081a40000000000000002000000013ac0388f000001fa000000200000000000000000000000000000002000000003reloc/useradmin/help/group.html   <header>Primary group</header>
This is the group that by default will own any files or processes
created by this user. If this user attempts to access a file and the group
of that file is the user's primary group then the group permissions for that
file will apply (unless the user is the owner of the file). <p>

If you are editing an existing user and the primary group is changed,
the <a href=chgid>Change group ID on files?</a> option determines what
files (if any) have their group changed. <p>
<hr>

  0707010000bcd2000081a40000000000000002000000013ac038900000006a000000200000000000000000000000000000002500000003reloc/useradmin/help/gpasswd.sv.html  <header>L鰏enord</header>

Gruppl鰏enord anv鋘ds n鋝tan inte alls nuf鰎tiden. Strunta i detta f鋖t.
<hr>

  0707010000bcd3000081a40000000000000002000000013ac038900000005b000000200000000000000000000000000000002d00000003reloc/useradmin/help/gpasswd.zh_TW.Big5.html  <header>竤舱盞絏</header>

竤舱盞絏竒ぃ砆计╰参┮ㄏノ. 眤┛菠硂逆.
<hr>

 0707010000bcd4000081a40000000000000002000000013ac0389000000259000000200000000000000000000000000000002300000003reloc/useradmin/help/group.es.html    <header>Grupo Primario</header>

Este es el grupo que por defecto ser el propietario de cualquier archivo
o proceso creado por el usuario. Si este usuario intenta acceder a un
archivo y el grupo de ese archivo es del grupo primario del usuario, entonces
los permisos de grupo para ese archivo son aplicados (a menos que el usuario
sea el propietario del archivo). <p>

Si est醩 editando un usuario ya existente y el grupo primario es cambiado,
la opci髇 de <a href=chgid_es>緾ambio ID de grupo en los archivos?</a>
determina a qu archivos (si hay alguno) se les cambiar tambien su grupo. <p>
<hr>

   0707010000bcd5000081a40000000000000002000000013ac0388f00000222000000200000000000000000000000000000002300000003reloc/useradmin/help/group.fr.html    <header>Groupe primaire</header>
Ceci est le groupe qui poss鑔era par d閒aut tous les fichiers cr殚s par cet
utilisateur. Si un utilisateur tente d'acc閐er  un fichier qui appartient 
son groupe principal, les permissions du groupe pour ce fichier s'appliqueront
(sauf si l'utilisateur est aussi le propri閠aire du fichier). <p>

Si vous 閐itez un utilisateur existant et que son groupe primaire est chang,
l'option <a href=chgid>Changer le groupe des fichiers</a> d閠erminera quels
fichiers doivent avoir leur groupe chang.
<hr>

  0707010000bcd7000081a40000000000000002000000013ac0389000000259000000200000000000000000000000000000002300000003reloc/useradmin/help/group.pl.html    <header>Grupa podstawowa</header>

Jest to domy秎na grupa, do kt髍ej b阣 nale縜硑 wszystkie pliki
i&nbsp;procesy utworzone przez tego u縴tkownika. Je秎i ten u縴tkownik b阣zie
pr骲owa uzyska dost阷 do pliku i&nbsp;grupa tego pliku b阣zie jego grup
podstawow, to prawa dost阷u do tego pliku dla grupy b阣 mia硑 zastosowanie
(o&nbsp;ile u縴tkownik nie jest w砤禼icielem tego pliku). <p>

Je秎i zmieniasz istniej眂ego u縴tkownika i&nbsp;zmieni砤 si jego grupa
podstawowa, to opcja <a href=chgid>Zmieni ID grupy na plikach?</a> okre秎a,
kt髍ym plikom (je秎i w og髄e) nale縴 zmieni grup. <p>
<hr>
   0707010000bcd8000081a40000000000000002000000013ac038900000027e000000200000000000000000000000000000002600000003reloc/useradmin/help/group.ru_RU.html <header>襄疴梓磬 灭箫镟</header>
蒡 沭箫镟, 觐蝾疣 镱 箪铍鬣龛 狍溴 沭箫镱 - 怆噤咫屐 膻犷泐 羿殡 桦
镳铞羼襦 耦玟囗眍泐 桁 镱朦珙忄蝈脲. 篷腓 镱朦珙忄蝈朦 钺疣弪  羿殡
 桎屙蜩翳赅蝾 沭箫稃 溧眄钽 羿殡 怆弪 桎屙蜩翳赅蝾痤 镥疴梓眍 沭箫稃
溧眄钽 镱朦珙忄蝈, 蝾 怦蝮镟  耔塍 镳噔 沭箫稃 磬 溧眄 羿殡 (羼腓 蝾朦觐 
镱朦珙忄蝈朦 礤 怆弪 怆噤咫屐 溧眄钽 羿殡).
<p>

篷腓 镳 疱溧牝桊钼囗梃 耋耱怏邈 镱朦珙忄蝈 恹 桤戾龛腓 镥疴梓眢 沭箫矬
(羼腓 忄  疣琊屮屙), 铒鲨 <a href=chgid>如戾龛螯 ID 沭箫稃 磬 羿殡?
</a> 铒疱溴弪 赅觇 羿殡 (羼腓 铐 羼螯) 镱戾 疋铪 沭箫矬.
<p>
<hr>

  0707010000bcd9000081a40000000000000002000000013ac0388f0000027e000000200000000000000000000000000000002600000003reloc/useradmin/help/group.ru_SU.html <header>鹋易赊瘟 缫招辛</header>
 且招辛, 讼韵伊 邢 胀咸蘖紊 抡呐 且招邢 - 滋聊盘孛磐 汤孪窍 屏侍 商
幸厦庞恿 酉谀廖蜗窍 茉赏 邢特谙琢耘膛. 逵躺 邢特谙琢耘特 下伊萘旁友  屏侍
 赡盼陨粕肆韵 且招匈 牧挝锨 屏侍 炎萄旁友 赡盼陨粕肆韵蚁 信易赊蜗 且招匈
牧挝锨 邢特谙琢耘萄, 韵 子哉辛涝  由陶 幸磷 且招匈 瘟 牧挝偈 屏侍 (庞躺 韵特讼 
邢特谙琢耘特 闻 炎萄旁友 滋聊盘孛磐 牧挝锨 屏侍).
<p>

逵躺 幸 遗牧嗽梢献廖缮 诱菖釉渍垒徘 邢特谙琢耘萄 踪 哨团紊躺 信易赊握 且招姓
(庞躺 琢 茉 伊谝袍盼), 闲蒙 <a href=chgid>橼团紊载 ID 且招匈 瘟 屏侍?
</a> 闲遗呐萄旁 肆松 屏侍 (庞躺 衔 庞载) 邢团窝涝 幼侠 且招姓.
<p>
<hr>

  0707010000bcda000081a40000000000000002000000013ac03890000001c1000000200000000000000000000000000000002300000003reloc/useradmin/help/group.sv.html    <header>Prim鋜 grupp</header>
Detta 鋜 den grupp som kommer att 鋑a de filer och processer som anv鋘daren
skapar. Om anv鋘daren f鰎s鰇er att komma 錿 en fil vars grupp 鋜 anv鋘darens
prim鋜a grupp kommer gruppr鋞tigheterna f鰎 filen att g鋖la (om inte
anv鋘daren 鋑er filen).

<p>Om man 鋘drar prim鋜 grupp f鰎 n錱on anv鋘dare kommer inst鋖lningen
<a href=chgid>Byta grupp-ID f鰎 filer?</a> att best鋗ma vilka filer som
gruppen ska 鋘dras p.
<hr>

   0707010000bcdb000081a40000000000000002000000013ac0389000000125000000200000000000000000000000000000002b00000003reloc/useradmin/help/group.zh_TW.Big5.html    <header>璶竤舱</header>
硂琌ミヴ郎┪祘箇砞竤舱絪腹. 狦ㄏノ刚帝妮ㄤ璶竤舱郎, 竤舱舦盢穦砆甅ノ (埃獶ㄏノ局Τ硂郎. <p>

狦眤タ絪胯ㄏノ, ㄤ璶竤舱砆э跑, <a href=chgid>琌э跑郎竤舱絪腹?</a> 匡兜盢穦∕﹚琌璶э跑ㄤ竤舱. <p>
<hr>

   0707010000bcdc000081a40000000000000002000000013ac038900000024e000000200000000000000000000000000000002200000003reloc/useradmin/help/home.es.html <header>Directorio Inicial</header>

Un directorio inicial de usuario t韕icamente contiene todos los archivos
que son propiedad de ese usuario. Cuando un usuario hace login es puesto
en su directorio inicial y guiones como <tt>.cshrc</tt> o <tt>.profile</tt>
son ejectutados. <p>

Cuando se crea un nuevo usuario, Webmin crear el directorio inicial que
digites en este campo. Si cambias el directorio inicial al modificar un
usuario ya existente, Webmin intentar renombrar el directorio si la opci髇
<a href=movehome.es>縈uevo el directorio inicial si ha cambiado?</a> est
activa.
<hr>

  0707010000bcdd000081a40000000000000002000000013ac0388f00000269000000200000000000000000000000000000002200000003reloc/useradmin/help/home.fr.html <header>R閜ertoire personnel</header>

Le r閜ertoire personnel d'un utilisateur contient tous les fichiers qui
lui appartiennent. Quand un usager ouvre une session, il sera plac dans ce
r閜ertoire et des scripts comme <tt>.cshrc</tt> ou <tt>.profile</tt> seront
ex閏ut閟. <p>

Quand un nouvel utilisateur est cr殚, Webmin cr閑ra son r閜ertoire personnel
que vous entrez dans ce champ. Si vous changez le r閜ertoire personnel en
modifiant un utilisateur existant, Webmin tentera de le renommer si l'option
<a href=movehome>D閜lacer le r閜ertoire personnel s'il a 閠 chang?</a>
est s閘閏tionn閑.
<hr>

   0707010000bcde000081a40000000000000002000000013ac0388f00000212000000200000000000000000000000000000001f00000003reloc/useradmin/help/home.html    <header>Home Directory</header>

A user's home directory typically contains all the files owned by that user.
When a user logs in, he will be placed in his home directory and scripts
like <tt>.cshrc</tt> or <tt>.profile</tt> will be run. <p>

When creating a new user, Webmin will create the home directory that you
enter into this field. If you change the home directory when modifying an
existing user, Webmin will attempt to rename the directory if the
<a href=movehome>Move home directory if changed?</a> option is set.
<hr>

  0707010000bcdf000081a40000000000000002000000013ac0389000000259000000200000000000000000000000000000002200000003reloc/useradmin/help/home.pl.html <header>Katalog domowy</header>

Katalog domowy u縴tkownika zazwyczaj zawiera wszystkie pliki, kt髍e ten
u縴tkownik posiada. Podczas logowania katalog bie勘cy u縴tkownika jest
ustawiany na jego katalog domowy oraz s wykonywane skrypty takie jak
<tt>.cshrc</tt> czy <tt>.profile</tt>. <p>

Podczas tworzenia nowego u縴tkownika Webmin utworzy katalog domowy, kt髍ego
nazw wprowadzisz. Je秎i zmienisz katalog domowy podczas zmiany danych
u縴tkownika, Webmin b阣zie pr骲owa przenie舵 jego katalog domowy o&nbsp;ile
zaznaczysz opcj <a href=movehome>Przenie舵 katalog domowy, je秎i
zmieniony?</a>.
<hr>
   0707010000bce0000081a40000000000000002000000013ac03890000002da000000200000000000000000000000000000002500000003reloc/useradmin/help/home.ru_RU.html  <header>念爨栝 枢蜞腩</header>

念爨栝 赅蜞腩 镱朦珙忄蝈 钺眍 耦溴疰栩 怦 羿殡 溧眄钽 镱朦珙忄蝈.
暑沅 镱朦珙忄蝈朦 怩钿栩  耔耱屐  蝈痨桧嚯, 铐 耩噻 镱镟溧弪  疋铋 
漕爨栝 赅蜞腩.  漕爨屐 赅蜞腩沐 疣耧铍钽帼蝰 怦 羿殡 磬鬣朦眍 
桧桷栲腓玎鲨 镳钽疣祆 玎矬耜噱禧 镱朦珙忄蝈脲  耱囵蝾恹 耜痂矧钼 
镱朦珙忄蝈 <tt>.cshrc</tt> 桦 <tt>.profile</tt>.
<p>

橡 耦玟囗梃 眍忸泐 镱朦珙忄蝈 狍溴 噔蝾爨蜩麇耜 耦玟囗 漕爨栝 赅蜞腩
箨噻囗睇  铎 镱脲. 橡 耢屙 漕爨邈 赅蜞腩汔 (羼腓 忄  漕耱箫眍)
忸 怵屐 疱溧牝桊钼囗 镱朦珙忄蝈, 狍溴 镳邃镳桧蜞 镱稃蜿 镥疱桁屙钼囗
赅蜞腩汔,  耠篦噱 篑蜞眍怅 铒鲨 <a href=movehome>襄疱戾龛 漕爨邈 赅蜞腩汔 镳 桤戾礤龛?</a>.
<hr>

  0707010000bce1000081a40000000000000002000000013ac0388f000002da000000200000000000000000000000000000002500000003reloc/useradmin/help/home.ru_SU.html  <header>湎土畚墒 肓粤滔</header>

湎土畚墒 肆粤滔 邢特谙琢耘萄 下俎蜗 酉呐抑稍 子 屏侍 牧挝锨 邢特谙琢耘萄.
胂悄 邢特谙琢耘特 兹夏稍  由釉磐  耘彝晌撂, 衔 右邻 邢辛牧旁  幼鲜 
南土畚墒 肆粤滔.  南土畚磐 肆粤滔桥 伊有咸锨晾杂 子 屏侍 瘟蘖特蜗 
晌擅闪躺诹蒙 幸锨伊屯 诹姓铀僚唾 邢特谙琢耘膛  釉烈韵踪 铀疑性献 
邢特谙琢耘萄 <tt>.cshrc</tt> 商 <tt>.profile</tt>.
<p>

鹨 酉谀廖缮 蜗紫窍 邢特谙琢耘萄 抡呐 磷韵土陨夼铀 酉谀廖 南土畚墒 肆粤滔
账邻廖钨  茉贤 邢膛. 鹨 油盼 南土畚徘 肆粤滔橇 (庞躺 琢 茉 南釉招蜗)
紫 滓磐 遗牧嗽梢献廖裳 邢特谙琢耘萄, 抡呐 幸拍幸晌言 邢匈运 信遗赏盼献廖裳
肆粤滔橇,  犹辙僚 沼粤蜗姿 闲蒙 <a href=movehome>鹋遗团菖紊 南土畚徘 肆粤滔橇 幸 哨团闻紊?</a>.
<hr>

  0707010000bce2000081a40000000000000002000000013ac0389000000216000000200000000000000000000000000000002200000003reloc/useradmin/help/home.sv.html <header>Hemkatalog</header>

En anv鋘dares hemkatalog inneh錶ler vantligen alla filer som anv鋘daren 鋑er.
N鋜 en anv鋘dare loggar in kommer den att placeras i sin hemkatalog, och
script som <tt>.cshrc</tt> och <tt>.profile</tt> kommer att utf鰎as.

<p>N鋜 en ny anv鋘dare skapas kommer Webmin att skapa den hemkatalog som
man skrivit in i f鋖tet. Om man 鋘drar hemkatalog f鰎 en befintlig anv鋘dare
kommer Webmin att f鰎s鰇a byta namn p katalogen om inst鋖lningen
<a href=movehome>Flytta hemkatalog vid 鋘dring?</a> 鋜 satt.

<hr>

  0707010000bce3000081a40000000000000002000000013ac0389000000191000000200000000000000000000000000000002a00000003reloc/useradmin/help/home.zh_TW.Big5.html <header>產ヘ魁</header>

ㄏノ產ヘ魁┮Τ赣ㄏノ┮局Τ郎. 讽ㄏノ祅, 盢穦砆ㄤ產ヘ魁い, 絑ㄒ <tt>.cshrc</tt> ┪ <tt>.profile</tt> 穦砆磅︽. <p>

讽ミ穝ㄏノ, Webmin 盢穦ミ眤硂逆┮﹚產ヘ魁. 狦眤絪胯瞷ㄏノ跑產ヘ魁. Webmin 穦沽刚簿笆赣產ヘ魁穝砞﹚, 狦<a href=movehome>狦э跑杠, 琌穐簿產ヘ魁?</a> 匡兜Τ砆砞﹚杠.
<hr>

   0707010000bce4000081a40000000000000002000000013ac0389000000066000000200000000000000000000000000000002600000003reloc/useradmin/help/inactive.es.html <header>D韆s Inactivo</header>

El n鷐ero de d韆s de inactividad permitidos para este usuario.
<hr>


  0707010000bce5000081a40000000000000002000000013ac0388f0000006e000000200000000000000000000000000000002600000003reloc/useradmin/help/inactive.fr.html <header>Jours d'inactivit</header>
Le nombre de jours d'inactivit autoris閟 pour cet utilisateur.
<hr>

  0707010000bcee000081a40000000000000002000000013ac0388f000008ac000000200000000000000000000000000000002000000003reloc/useradmin/help/intro.html   <header>Users and Groups</header>

<h3>Introduction to Users</h3>
A Unix user is typically someone who can login to the system, either
remotely via telnet or at the console. Every file is owned by some user,
and every process runs with the rights of some user. Access to files and
processes is determined by the user you are logged in as. <p>

There are really three types of users on a typical Unix system :
<ul>
<li><b>Administrative Users</b><br>
    Accounts like <tt>bin</tt>, <tt>lp</tt> and <tt>uccp</tt> own files
    such as the standard commands in <tt>/bin</tt>, print spool files and
    UUCP data. Actually logging in with one of these accounts is not
    normally allowed - they are used only by various system processes.
    These users will be created when the operating system is first installed.<p>
<li><b>Real People</b><br>
    These are accounts owned by real users, created by the system
    administrator. You may allow these users to login remotely, or maybe
    let them only to send and receive mail via SMTP and POP3. <p>
<li><b>The <tt>root</tt> User</b><br>
    The <tt>root</tt> user has the power to read and write any file
    or directory and control any process. This account is typically used
    for system administration purposes, and is the account under which
    Webmin runs. <p>
</ul>

At the top of the main page of this module is a table of existing users
on your system. You may click on a user to edit it, or click on the link
below the table to create a new user. <p>

<h3>Introduction to Groups</h3>
A group is simply a list of Unix users. Every user has belongs to at least
one group (their primary group), and optionally several others. All files
are owned by some group, and every process runs with the permissions of
a group. <p>

Below the list of users is a table of existing groups. You may click on
a group name to edit it, or click on the link below the table to create
a new group. <p>

<h3>Recorded Logins</h3>
Every time a user logs in by telnet, FTP or at the console the system records
that login and the subsequent logout. At the bottom of the main page is
a small form that allows you to display logins either by everyone, or by
a selected user. <p>

<hr>

0707010000bce6000081a40000000000000002000000013ac0388f00000092000000200000000000000000000000000000002300000003reloc/useradmin/help/inactive.html    <header>Inactive days</header>

The number of inactivity days over the <a href=max>maximum days</a> before
the user's account is disabled.
<hr>


  0707010000bce7000081a40000000000000002000000013ac03890000000bc000000200000000000000000000000000000002600000003reloc/useradmin/help/inactive.pl.html <header>Blokada konta po dniach</header>

Ilo舵 dni braku aktywni禼i ponad <a href=max>maksymalny okres wa縩o禼i
has砤</a>, po up硑wie kt髍ych konto u縴tkownika zostanie zablokowane.
<hr>
0707010000bce8000081a40000000000000002000000013ac03890000000ba000000200000000000000000000000000000002900000003reloc/useradmin/help/inactive.ru_RU.html  <header>湾嚓蜩忭 漤彘</header>
暑腓麇耱忸 漤彘 礤嚓蜩忭铖蜩 (铗耋蝰忤 疱汨耩圉栝) 疣琊屮屙睇 溧眄铎 镱朦珙忄蝈膻 (镱 铌铐鬣龛 钽 镥痂钿 狺滏弪 镱朦珙忄蝈 犭铌桊箦蝰).
<hr>


  0707010000bce9000081a40000000000000002000000013ac0388f000000ba000000200000000000000000000000000000002900000003reloc/useradmin/help/inactive.ru_SU.html  <header>钆了陨孜 奈攀</header>
胂躺夼釉紫 奈攀 闻了陨孜嫌陨 (显诱杂咨 遗巧右撩墒) 伊谝袍盼钨 牧挝贤 邢特谙琢耘汤 (邢 纤衔蘖紊 茉锨 信疑夏 吕闹旁 邢特谙琢耘萄 绿纤梢张杂).
<hr>


  0707010000bcea000081a40000000000000002000000013ac0389000000086000000200000000000000000000000000000002600000003reloc/useradmin/help/inactive.sv.html <header>Inaktiv (dagar)</header>
Antalet dagar efter <a href=max>Maximalt antal dagar</a> som anv鋘darens konto
g鰎s inaktivt.
<hr>


  0707010000bceb000081a40000000000000002000000013ac0389000000047000000200000000000000000000000000000002e00000003reloc/useradmin/help/inactive.zh_TW.Big5.html <header>ゼㄏノら戳</header>
硂ㄏノ┮砆す砛程ゼㄏノら计.
<hr>


 0707010000bcec000081a40000000000000002000000013ac03890000009ff000000200000000000000000000000000000002300000003reloc/useradmin/help/intro.es.html    <header>Usuarios y Grupos</header>

<h3>Introducci髇 a Usuarios</h3>
Un usuario Unix es t韕icamentes alguien que puede hacer login en el sistema
ya sea rem髏amente v韆 telnet o desde la consola. Cada archivo pertenece
al alg鷑 usuario y cada proceso se ejecuta con los derechos de alg鷑 usuario.
El acceso a los archivos y procesos es determinado por el usuario con el que
realizas el login. <p>

Hay realmente tres tipos de usuario en un sistema Unix t韕ico:
<ul>
<li><b>Usuarios Administrativos</b><br>
    Cuentas como <tt>bin</tt>, <tt>lp</tt> y <tt>uccp</tt> son propietarias
    de archivos como los comandos est醤dar de <tt>/bin</tt>, archivos de spool
    de impresora y datos UUCP. Actualmente hacer login con una de estas cuentas
    no est normalmente permitido - s髄o son utilizadas por varios procesos
    de sistema. Estos usuarios ser醤 creados cuando el sistema operativo
    se instale por primera vez.<p>
<li><b>Gente Real</b><br>
    Estas son cuentas propiedad de usuarios reales, creados por el 
    administrador del sistema. Puedes hacer que estos usuarios hagan login
    remoto o quiz s髄o dejarles enviar y recibir correo v韆 SMTP y POP3. <p>
<li><b>El Usuario <tt>root</tt></b><br>
    El usuario <tt>root</tt> tiene la potestad de leer y escribir en cualquier
    archivo o directorio y de controlar cualquier proceso. Esta cuenta es
    t韕icamente utilizada con prop髎itos de administraci髇 del sistema y es
    la cuenta bajo la que se ejecuta Webmin. <p>
</ul>

En la parte superior de la p醙ina principal de este m骴ulo hay una tabla de
usuarios ya existentes en tu sistema. Puedes hacer click en uno de ellos para
editarlo o hacer click en el enlace bajo la tabla para crear un nuevo
usuario. <p>

<h3>Introducci髇 a los Grupos</h3>
Un grupo es s韒plemente una lista de usuarios de Unix. Cada usuario pertenece
por lo menos a un grupo (su grupo primario) y opcionalmente a varios otros.
Todos los archivos son propiedad de alg鷑 grupo y cada proceso se ejecuta
con los permisos de un grupo. <p>

Bajo la lista de usuarios hay una tabla de grupos que ya existen. Puedes
hacer click en un nombre de grupo para editarlo o hacer click en el enlace
bajo la tabla para crear un nuevo grupo. <p>

<h3>Logins Registrados</h3>
Cada vez que un usuario hace login ya sea por medio de telnet, FTP o desde
la consola, el sistema registra ese login y la consecuente salida del mismo.
En la parte inferior de la p醙ina principal hay un peque駉 formulario que
te permite mostrar los logins de cada uno o de un usuario concreto. <p>

<hr>

 0707010000bced000081a40000000000000002000000013ac0388f00000a21000000200000000000000000000000000000002300000003reloc/useradmin/help/intro.fr.html    <header>Utilisateurs et groupes</header>

<h3>Introduction aux utilisateurs</h3>
Un utilisateur Unix est g閚閞alement quelqu'un qui peut ouvrir une
session sur le syst鑝e,  distance par telnet ou sur la console.
Chaque fichier appartient  un utilisateur, et chaque processus
s'ex閏ute avec les droits d'un utilisateur. L'acc鑣 aux fichiers
et aux processus est d閒ini par l'utilisateur avec lequel la
session est ouverte. <p>

En g閚閞al il y a trois types d'utilisateurs sur un syst鑝e Unix :
<ul>
<li><b>Les utilisateurs syst鑝e</b><br>
    Des comptes comme <tt>bin</tt>, <tt>lp</tt> et <tt>uucp</tt> poss鑔ent
    des fichiers comme des commandes dans <tt>/bin</tt>, des files d'attente
    d'impression ou encore des donn閑s UCCP. L'ouverture de session avec
    ces comptes n'est pas normalement possible, ils ne sont utilis閟 que
    par divers processus syst鑝e. Ces utilisateurs sont cr閑s 
    l'installation du syst鑝e. <p>
<li><b>Les v閞itable personnes</b><br>
    Ce sont des comptes appartenant  de vrais utilisateurs, cr閑s par
    l'administrateur syst鑝e. Vous pouvez permettre  ces utilisateurs
    d'ouvrir des sessions, ou peut-阾re seulement d'envoyer et recevoir du
    courrier par SMTP et POP3. <p>
<li><b>L'utilisateur <tt>root</tt></b><br>
    L'utilisateur <tt>root</tt> a le pouvoir de lire et d'閏rire n'importe
    quel fichier ou r閜ertoire et contr鬺er tous les processus. Ce compte
    est utilis pour la maintenance, et c'est avec ce que compte que Webmin
    s'ex閏ute. <p>
</ul>

En haut de la page de ce module se trouve un tableau des utilisateurs
existants sur votre syst鑝e. Vous pouvez cliquer sur un utilisateur pour
l'閐iter ou cliquer sur le lien en dessous du tableau pour en cr閑r un
nouveau. <p>

<h3>Introduction aux groupes</h3>
Un groupe est simplement une liste d'utilisateurs Unix. Chaque utilisateur
appartient  au moins un groupe (primaire) et optionnellement  d'autres.
Tous les fichiers appartiennent  un groupe et tout processus d'ex閏ute avec
les permissions d'un groupe. <p>

En dessous de la liste des utilisateurs se trouve un tableau des groupes
xistants. Vous pouvez cliquer sur un groupe pour l'閐iter ou cliquer sur le
lien en dessous du tableau pour en cr閑r un nouveau. <p>

<h3>Journal d'ouvertures de sessions</h3>
Chaque fois qu'un utilisateur se connecte par telnet, FTP ou depuis la console
le syst鑝e enregistre le d閎ut et la fin de la connexion. Au bas de cette page
se trouve un petit formulaire qui permet d'afficher le journal des sessions
de tous les utilisateurs ou d'un seul en particulier. <p>

<hr>

   0707010000bcef000081a40000000000000002000000013ac03890000009f7000000200000000000000000000000000000002300000003reloc/useradmin/help/intro.pl.html    <header>U縴tkownicy i&nbsp;grupy</header>

<h3>Wprowadzenie do u縴tkownik體</h3>
U縴tkownikiem Uniksa jest zazwyczaj kto, kto mo縠 si zalogowa do systemu
zdalnie poprzez telnet lub przy konsoli. Ka縟y plik ma pewnego u縴tkownika
za w砤禼iciela, jak te ka縟y process dzia砤 z&nbsp;prawami pewnego
u縴tkownika. Dost阷 do plik體 i proces體 jest okre秎ony przez u縴tkownika,
jako kt髍y si zalogowa砮. <p>

W&nbsp;typowym systemie uniksowym s zazwyczaj trzy rodzaje
u縴tkownik體&nbsp;:
<ul>
<li><b>U縴tkownicy specjalni</b><br>
    Konta takie jak <tt>bin</tt>, <tt>lp</tt> i&nbsp;<tt>uccp</tt> s
    w砤禼icielami plik體 takich jak standardowe polecenia
    w&nbsp;<tt>/bin</tt>, pliki spool-a drukarki czy dane UUCP.  Zazwyczaj
    zalogowanie si na kt髍ekolwiek z&nbsp;tych kont nie jest mo縧iwe - s
    one wykorzystywane wy潮cznie przez r罂ne procesy systemowe. U縴tkownicy
    ci s tworzeni podczas instalacji systemu operacyjnego. <p>
<li><b>Zwykli ludzie</b><br>
    S to konta posiadane przez zwyk硑ch u縴tkownik體, utworzone przez
    administratora systemu. Mo縠sz pozwoli tym u縴tkownikom logowa si
    zdalnie, lub te pozwoli im tylko wysy砤 i&nbsp;odbiera poczt
    poprzez SMTP i&nbsp;POP3. <p>
<li><b>U縴tkownik <tt>root</tt></b><br>
    U縴tkownik <tt>root</tt> mo縠 czyta i zapisywa w dowolnym pliku
    i&nbsp;katalogu oraz zarz眃za dowolnym procesem. To konto jest
    zazwyczaj wykorzystywane do cel體 administracyjnych i&nbsp;jest 
    to konto, z&nbsp;prawami kt髍ego dzia砤 Webmin. <p>
</ul>

Na g髍ze g丑wnej strony tego modu硊 znajduje si tabela istniej眂ych
w&nbsp;twoim systemie u縴tkownik體. Mo縠sz nacisn辨 nazw u縴tkownika, aby
zmieni jego dane lub nacisn辨 na dowi眤anie pod tabel, aby utworzy nowego
u縴tkownika. <p>

<h3>Wprowadzenie do grup</h3>
Grupa jest po prostu list u縴tkownik體 Uniksa. Ka縟y u縴tkownik nale縴 do
co najmniej jednej grupy (jego grupy g丑wnej), oraz ewentualnie do kilku
innych. Ka縟y plik jest w&nbsp;posiadaniu pewnej grupy, jak te ka縟y proces
dzia砤 z prawami pewnej grupy. <p>

Poni縠j listy u縴tkownik體 znajduje si tabela istniej眂ych grup. Mo縠sz
nacisn辨 nazw grupy, aby zmieni jej dane, lub nacisn辨 na dowi眤anie pod
tabel, aby utworzy now grup. <p>

<h3>Zapami阾ane logowania</h3>
Za ka縟ym razem, gdy u縴tkownik si loguje przez telnet, SSH, FTP lub przy
konsoli, system zapami阾uje to logowanie i&nbsp;p蠹niejsze wylogowanie. Na
dole g丑wnej strony jest formularzyk pozwalaj眂y na obejrzenie logowa
wszystkich lub wybranego u縴tkownika. <p>

<hr>
 0707010000bcf0000081a40000000000000002000000013ac03890000009f8000000200000000000000000000000000000002600000003reloc/useradmin/help/intro.ru_RU.html <header>项朦珙忄蝈腓  灭箫稃</header>

<h3> 镱朦珙忄蝈</h3>
项朦珙忄蝈朦 Unix -  钺眍 礤牝, 牝 祛驽 疱汨耱痂痤忄螯  耔耱屐, 赅
箐嚯屙眍, 蜞   觐眈铍. 枢驿 羿殡 镳桧噤脲骅 赅觐祗-腓犷 镱朦珙忄蝈膻,
 赅驿 镳铞羼 疣犷蜞弪  镳噔囔 赅觐泐-腓犷 镱朦珙忄蝈. 念耱箫  羿殡囔  
镳铞羼襦  铒疱溴弪 蝈 镱朦珙忄蝈脲 镱 觐蝾瘥 恹 玎疱汨耱痂痤忄睇.
<p>

绣嚯 磬 蜩镨黜铋 Unix 耔耱屐 耋耱怏弪 蝠 蜩镟 镱朦珙忄蝈脲 :
<ul>
<li><b>冷扈龛耱疣蜩忭 镱朦珙忄蝈腓</b><br>
	褥屙 蜩镟 <tt>bin</tt>, <tt>lp</tt>  <tt>uucp</tt> 怆噤妣 羿殡囔,
	蜞觇扈 赅, 耱囗溧痱睇 觐爨礓  赅蜞腩沐 <tt>/bin</tt>, 羿殡囔 耧箅屦钼 镥鬣蜩 
	溧眄 耔耱屐 UUCP.  眍痨 怩钿  耔耱屐 镱 赅觇-腓犷 桤 桴 桁屙 礤 疣琊屮屙 -
	铐 桉镱朦珞 蝾朦觐 疣珉梓睇扈 耔耱屐睇扈 镳铞羼襦扈.
	蒡 镱朦珙忄蝈腓 耦玟帼蝰 忸 怵屐 镥疴铐圜嚯铋 桧耱嚯鲨 耔耱屐.
    <p>
<li><b>绣嚯 膻滂</b><br>
	蒡 篦弪睇 玎镨耔 桁妣 疱嚯 镱朦珙忄蝈腓 耦玟囗睇 耔耱屐睇 
	噤扈龛耱疣蝾痤. 蔓 祛驽蝈 疣琊屮栩 桁 镱朦珙忄蝈 疱汨耱痂痤忄螯
	箐嚯屙眍, 桦 蝾朦觐 镱覃豚螯  镳桧桁囹 镱黩 镱 镳铗铌铍囔 SMTP  POP3.
    <p>
<li><b>项朦珙忄蝈朦 <tt>root</tt></b><br>
    项朦珙忄蝈朦 <tt>root</tt> 桁邋 礤钽疣龛麇眄簋 忸珈铈眍耱 麒蜞螯  
	玎镨覃忄螯 膻犷 羿殡 桦 赅蜞腩,  觐眚痤腚桊钼囹 膻犷 镳铞羼.
	蒡 篦弪磬 玎镨顸 钺眍 桉镱朦珞弪 潆 玎溧 噤扈龛耱痂痤忄龛,
	 鬣耱眍耱 镱 铋 篦弪眍 玎镨顸 疣犷蜞弪 溧眄 耔耱屐.  
    <p>
</ul>

 忮瘐礤 鬣耱 铖眍忭铋 耱疣龛鳆 溧眄钽 祛潴 磬躅滂蝰 蜞犭桷 
镱朦珙忄蝈脲 忄 耔耱屐. 蔓 祛驽蝈 "觌桕眢螯" 磬 镱朦珙忄蝈脲 潆 邈
疱溧牝桊钼囗, 桦 "觌桕眢螯" 磬 耨赍 镱 蜞犭桷彘 潆 耦玟囗 眍忸泐 
镱朦珙忄蝈.
<p>

<h3> 沭箫镟</h3>
灭箫镟 -  镳铖蝾 耧桉铌 镱朦珙忄蝈脲  耔耱屐. 枢驿 镱朦珙忄蝈朦
镳桧噤脲骅 镱 牮嚅礤 戾疱  钿眍 沭箫镥 (邈 镥疴梓磬 沭箫镟),  
忸珈铈眍  礤耜铍桁 漯筱桁. 塔犷 羿殡 桁邋  赅麇耱忮 钺豚溧蝈 
礤牦 沭箫矬,  膻犷 镳铞羼 恹镱腠弪  镳噔囔 礤觐蝾痤 沭箫稃.
<p>

项 耧桉觐 镱朦珙忄蝈脲 磬躅滂蝰 蜞犭桷 耋耱怏桴 沭箫. 蔓 祛驽蝈
"觌桕眢螯" 磬 桁屙 沭箫稃 潆 澹 疱溧牝桊钼囗, 桦 "觌桕眢螯" 磬 耨赍 
镱 蜞犭桷彘 潆 耦玟囗 眍忸 沭箫稃.
<p>

<h3>青镨耔  疱汨耱疣鲨</h3>
枢驿 疣, 觐沅 镱朦珙忄蝈朦 怩钿栩  耔耱屐 镱 telnet, FTP 桦  觐眈铍
耔耱屐 翳犟桊箦 溧眄 怩钿  镱耠邃簋 恹躅.  龛骓彘 鬣耱 汶噔眍 
耱疣龛鳆 钽 祛潴 磬躅滂蝰 礤犷朦 纛痨, 觐蝾疣 镱玮铍弪 忄 
镱耢铗疱螯 怩钿 (疱汨耱疣鲨), 赅 怦艴, 蜞  恹狃囗眍泐 镱朦珙忄蝈.
<p>

<hr>

0707010000bcf1000081a40000000000000002000000013ac0388f000009f8000000200000000000000000000000000000002600000003reloc/useradmin/help/intro.ru_SU.html <header>鹣特谙琢耘躺  缫招匈</header>

<h3> 邢特谙琢耘萄</h3>
鹣特谙琢耘特 Unix - 茉 下俎蜗 闻嗽, 嗽 拖峙 遗巧釉疑蚁琢载友  由釉磐, 肆
漳撂盼蜗, 粤   讼斡咸. 肓帜偈 屏侍 幸晌聊膛稚 肆讼驼-躺孪 邢特谙琢耘汤,
 肆帜偈 幸厦庞 伊孪粤旁  幸磷镣 肆讼窍-躺孪 邢特谙琢耘萄. 湎釉招  屏侍镣  
幸厦庞恿  闲遗呐萄旁友 耘 邢特谙琢耘膛 邢 讼韵屹 踪 诹遗巧釉疑蚁琢钨.
<p>

蚺撂匚 瘟 陨猩尬鲜 Unix 由釉磐 诱菖釉渍旁 砸 陨辛 邢特谙琢耘膛 :
<ul>
<li><b>崮蜕紊釉伊陨孜倥 邢特谙琢耘躺</b><br>
	橥盼 陨辛 <tt>bin</tt>, <tt>lp</tt>  <tt>uucp</tt> 滋聊爬 屏侍镣,
	粤松蜕 肆, 釉廖牧以钨 讼土文  肆粤滔桥 <tt>/bin</tt>, 屏侍镣 有仗乓献 信蘖陨 
	牧挝偻 由釉磐 UUCP.  蜗彝 兹夏  由釉磐 邢 肆松-躺孪 哨 茉扇 赏盼 闻 伊谝袍盼 -
	衔 捎邢特谡涝友 韵特讼 伊谔赊钨蜕 由釉磐钨蜕 幸厦庞恿蜕.
	 邢特谙琢耘躺 酉谀晾杂 紫 滓磐 信易衔赁撂匚鲜 晌釉撂萄蒙 由釉磐.
    <p>
<li><b>蚺撂匚倥 汤纳</b><br>
	 辙旁钨 诹猩由 赏爬 遗撂匚倥 邢特谙琢耘躺 酉谀廖钨 由釉磐钨 
	聊蜕紊釉伊韵蚁. 髻 拖峙耘 伊谝袍稍 茉赏 邢特谙琢耘萄 遗巧釉疑蚁琢载友
	漳撂盼蜗, 商 韵特讼 邢淤塘载  幸晌赏猎 邢拊 邢 幸显纤咸镣 SMTP  POP3.
    <p>
<li><b>鹣特谙琢耘特 <tt>root</tt></b><br>
    鹣特谙琢耘特 <tt>root</tt> 赏排 闻锨伊紊夼挝绽 紫谕现蜗釉 奚粤载  
	诹猩淤琢载 汤孪 屏侍 商 肆粤滔,  讼卧蚁烫梢献猎 汤孪 幸厦庞.
	 辙旁瘟 诹猩迂 下俎蜗 捎邢特谡旁友 奶 诹牧 聊蜕紊釉疑蚁琢紊,
	 蘖釉蜗釉 邢 茉鲜 辙旁蜗 诹猩迂 伊孪粤旁 牧挝裂 由釉磐.  
    <p>
</ul>

 着胰闻 蘖釉 嫌蜗孜鲜 釉伊紊觅 牧挝锨 拖恼萄 瘟认纳杂 粤绿擅 
邢特谙琢耘膛 琢叟 由釉磐. 髻 拖峙耘 "颂伤握载" 瘟 邢特谙琢耘膛 奶 徘
遗牧嗽梢献廖裳, 商 "颂伤握载" 瘟 佑偬伺 邢 粤绿擅攀 奶 酉谀廖裳 蜗紫窍 
邢特谙琢耘萄.
<p>

<h3> 且招辛</h3>
缫招辛 - 茉 幸嫌韵 有捎纤 邢特谙琢耘膛  由釉磐. 肓帜偈 邢特谙琢耘特
幸晌聊膛稚 邢 艘潦闻 团遗  夏蜗 且招信 (徘 信易赊瘟 且招辛),  
紫谕现蜗  闻铀咸厮赏 囊涨赏. 炖孪 屏侍 赏排  肆夼釉着 下塘牧耘萄 
闻苏 且招姓,  汤孪 幸厦庞 踪邢涛雅杂  幸磷镣 闻讼韵蚁 且招匈.
<p>

鹣 有捎讼 邢特谙琢耘膛 瘟认纳杂 粤绿擅 诱菖釉渍垒扇 且招. 髻 拖峙耘
"颂伤握载" 瘟 赏盼 且招匈 奶 牛 遗牧嗽梢献廖裳, 商 "颂伤握载" 瘟 佑偬伺 
邢 粤绿擅攀 奶 酉谀廖裳 蜗紫 且招匈.
<p>

<h3>猩由  遗巧釉伊蒙讶</h3>
肓帜偈 伊, 讼悄 邢特谙琢耘特 兹夏稍  由釉磐 邢 telnet, FTP 商  讼斡咸
由釉磐 粕擞梢张 牧挝偈 兹夏  邢犹拍绽萆 踪认.  紊治攀 蘖釉 翘磷蜗 
釉伊紊觅 茉锨 拖恼萄 瘟认纳杂 闻孪特哿 葡彝, 讼韵伊 邢谧咸雅 琢 
邢油显遗载 兹夏 (遗巧釉伊蒙), 肆 子湃, 粤  踪乱廖蜗窍 邢特谙琢耘萄.
<p>

<hr>

0707010000bcf2000081a40000000000000002000000013ac03890000008c4000000200000000000000000000000000000002300000003reloc/useradmin/help/intro.sv.html    <header>Anv鋘dare och grupper</header>

<h3>Introduktion till anv鋘dare</h3>
En Unix-anv鋘dare 鋜 oftast n錱on som kan logga in p systemet via
telnet eller fr錸 konsolen. Varje fil 鋑s av n錱on anv鋘dare och varje
process k鰎s med n錱on anv鋘dares r鋞tigheter. 舤komst av filer och
processer regleras av vilken anv鋘dare man 鋜 inloggad som.

<p>Det finns tre typer av anv鋘dare p ett typiskt Unix-system:
<ul>
<li><b>Administrativa anv鋘dare</b>
    <br>Konton som <tt>bin</tt>, <tt>lp</tt> och <tt>uccp</tt> 鋑er filer,
    t ex standardkommandona i <tt>/bin</tt>, skrivar-spoolfiler och
    UUCP-data. Vanligtvis g錼 det inte att logga in som n錱on av dessa
    anv鋘dare, utan de anv鋘ds endast av olika systemprocesser. Dessa
    anv鋘dare skapas n鋜 operativsystemet installeras.

<li><b>Vanligt folk</b>
    <br>Dessa konton 鋑s av riktiga anv鋘dare och skapas av
    systemadministrat鰎en. De kan till錿as att logga in fr錸 andra system
    eller begr鋘sas till att endast skicka och ta emot e-post via SMTP och
    POP3.
<li><b>Anv鋘daren <tt>root</tt></b>
    <br>Anv鋘daren <tt>root</tt> f錼 l鋝a och skriva i alla filer och kataloger
    och styra alla processer. Detta konto anv鋘ds vanligen till
    systemadministration och 鋜 det konto som Webmin k鰎s under.
</ul>

H鰃st upp p modulens startsidan finns en tabell 鰒er befintliga anv鋘dare
i systemet. Klicka p en anv鋘dare f鰎 att 鋘dra uppgifter om den eller
klicka p l鋘ken nedanf鰎 tabellen f鰎 att l鋑ga till en anv鋘dare.

<h3>Introduktion till grupper</h3>
En grupp 鋜 helt enkelt en lista 鰒er Unix-anv鋘dare. Varje anv鋘dare h鰎
till minst en grupp (dess prim鋜a grupp) och m鰆ligen flera andra. Alla filer
鋑s av n錱on grupp och alla processer k鰎s med n錱on grupps r鋞tigheter.

<p>Nedanf鰎 anv鋘darlistan finns en tabell 鰒er befintliga grupper. Klicka
p ett gruppnamn f鰎 att 鋘dra uppgifter om den eller klicka p l鋘ken
nedanf鰎 tabellen f鰎 att l鋑ga till en grupp.

<h3>Registrerade inloggningar</h3>
Varje g錸g en anv鋘dare loggar in via n鋞verk eller konsolen registrerar
systemet inloggningen och den p錰鰈jande utloggningen. L鋘gst ned p
startsidan finns ett litet formul鋜 d鋜 man kan studera inloggningar f鰎
alla eller f鰎 n錱on anv鋘dare.

<hr>

0707010000bcf3000081a40000000000000002000000013ac03890000005e0000000200000000000000000000000000000002b00000003reloc/useradmin/help/intro.zh_TW.Big5.html    <header>ㄏノ籔竤舱</header>

<h3>ㄏノ虏ざ</h3>
Unix ㄏノ琌祅╰参, ぃ阶琌竒パ telnet ┪琌ㄏノ沧狠诀. –郎常穦砆琘ㄏノ┮局Τ, τ–祘常ㄣΤ琘ㄏノ舦. 琌す砛郎┪祘琌砆祅┮ㄏノㄏノ嘿┮∕﹚. <p>

 Unix ╰参Τ摸ㄏノ:
<ul>
<li><b>恨瞶ㄏノ</b><br>
    ㄒ <tt>bin</tt>, <tt>lp</tt> 籔 <tt>uucp</tt> 单ㄏノ局Τ <tt>/bin</tt> い夹非郎, 诀︻郎籔 UUCP 戈郎. 琌ぃす砛龟悔硂ㄇ眀腹祅╰参 - ウ砆╰参祘┮ㄏノ. 硂ㄇ眀腹硄盽╰参杆獽竒砆ミ.<p>
<li><b>龟悔ㄏノ</b><br>
    硂ㄇ琌砆龟悔ㄏノ┮局Τ眀腹, 砆╰参恨瞶┮ミ. 眤す砛硂ㄇㄏノ眖环狠祅┪琵ㄏノ SMTP 籔 POP3 Μ祇秎ン. <p>
<li><b><tt>root</tt> ㄏノ</b><br>
    <tt>root</tt> ㄏノΤ舦弄┪糶ヴ郎┪ヘ魁, 北ヴ祘. 硂眀腹硄盽ノ秈︽╰参恨瞶, 琌 Webmin 龟︽眀腹. <p>
</ul>

硂家舱郴狠琌眤╰参瞷ㄏノ. 眤ㄏノ嘿絪胯ぇ, ┪┏硈挡ミ穝ㄏノ. <p>

<h3>竤舱虏ざ</h3>
竤舱琌 Unix ㄏノ. –ㄏノゲ斗妮ぶ竤舱 (璶竤舱), 匡拒┦妮ㄤ竤舱. ┮Τ郎常砆琘竤舱┮局Τ, τ–祘常ㄣΤ琘竤舱舦. <p>

ㄏノ獽ㄏ瞷竤舱. 眤竤舱嘿絪胯ぇ, ┪┏硈挡ミ穝竤舱. <p>

<h3>魁祅</h3>
–讽ㄏノ硓筁 telnet, FTP ┪沧狠诀祅╰参, ╰参常穦魁ㄤ祅籔祅丁. 礶┏狠虫琵眤陪ボ┮匡拒ㄏノ┪场ㄏノ祅魁. <p>

<hr>

0707010000bcf4000081a40000000000000002000000013ac0389000000123000000200000000000000000000000000000002900000003reloc/useradmin/help/list_logins.es.html  <header>Logins Registrados</header>

Cada vez que un usuario hace login ya sea por medio de telnet, FTP o desde
la consola, el sistema registra ese login y su posterior salida. Esta p醙ina
te muestra los logins registrados en tu sistema de un usuario concreto o
de todos los usuarios.
<hr>

 0707010000bcf5000081a40000000000000002000000013ac0388f0000011d000000200000000000000000000000000000002900000003reloc/useradmin/help/list_logins.fr.html  <header>Journal d'ouverture de sessions</header>

Chaque fois qu'un utilisateur ouvre une session par telnet, FTP ou sur
la console le syst鑝e enregistre le d閎ut et la fin. Cette page affiche
le journal des sessions de tous les utilisateurs ou d'un seul en
particulier.
<hr>

   0707010000bcf6000081a40000000000000002000000013ac0388f000000f9000000200000000000000000000000000000002600000003reloc/useradmin/help/list_logins.html <header>Recorded Logins</header>

Every time a user logs in by telnet, FTP or at the console the system records that login and the subsequent logout.  This page shows the recorded logins to your system by either a selected user, or all users.
<hr>

   0707010000bcf7000081a40000000000000002000000013ac0389000000127000000200000000000000000000000000000002900000003reloc/useradmin/help/list_logins.pl.html  <header>Zapami阾ane logowania</header>

Za ka縟ym razem, gdy u縴tkownik si loguje przez telnet, SSH, FTP lub przy
konsoli, system zapami阾uje to logowanie i&nbsp;p蠹niejsze wylogowanie. Ta
strona pokazuje zapami阾ane logowania do twojego systemu dla wybranego lub
wszystkich u縴tkownik體.
<hr>
 0707010000bcf8000081a40000000000000002000000013ac038900000011e000000200000000000000000000000000000002c00000003reloc/useradmin/help/list_logins.ru_RU.html   <header>青翳犟桊钼囗睇 绣汨耱疣鲨</header>

枢驿 疣, 觐沅 镱朦珙忄蝈朦 怩钿栩  耔耱屐 镱 telnet, FTP 桦  觐眈铍, 耔耱屐 疱汨耱痂痼弪 溧眄 怩钿  镱耠邃簋 恹躅. 泥眄 耱疣龛鲟 镱赅琨忄弪 疱汨耱疣鲨 赅 潆 恹狃囗眍泐 镱朦珙忄蝈, 蜞  潆 怦艴 镱朦珙忄蝈脲.
<hr>

  0707010000bcf9000081a40000000000000002000000013ac0388f0000011e000000200000000000000000000000000000002c00000003reloc/useradmin/help/list_logins.ru_SU.html   <header>粕擞梢献廖钨 蚺巧釉伊蒙</header>

肓帜偈 伊, 讼悄 邢特谙琢耘特 兹夏稍  由釉磐 邢 telnet, FTP 商  讼斡咸, 由釉磐 遗巧釉疑艺旁 牧挝偈 兹夏  邢犹拍绽萆 踪认. 淞挝裂 釉伊紊昧 邢肆谫琢旁 遗巧釉伊蒙 肆 奶 踪乱廖蜗窍 邢特谙琢耘萄, 粤  奶 子湃 邢特谙琢耘膛.
<hr>

  0707010000bcfa000081a40000000000000002000000013ac0389000000105000000200000000000000000000000000000002900000003reloc/useradmin/help/list_logins.sv.html  <header>Registrerade inloggningar</header>

Varje g錸g en anv鋘dare loggar in via n鋞verk eller konsolen registrerar
systemet inloggningen och den p錰鰈jande utloggningen. P denna sida visas
registrerade inloggningar f鰎 en angiven eller alla anv鋘dare.
<hr>

   0707010000bcfb000081a40000000000000002000000013ac03890000000a1000000200000000000000000000000000000003100000003reloc/useradmin/help/list_logins.zh_TW.Big5.html  <header>祅魁</header>

–讽ㄏノ硓筁 telnet, FTP ┪沧狠诀祅╰参, ╰参常穦魁ㄤ祅籔祅丁. 硂陪ボ┮匡拒ㄏノ┪场ㄏノ祅魁.

<hr>

   0707010000bcfc000081a40000000000000002000000013ac03890000000c0000000200000000000000000000000000000002600000003reloc/useradmin/help/makehome.es.html <header>緾reo directorio de inicio?</header>

Si se pone esta opci髇, el <a href=home.es>directorio de inicio</a> digitado es
creado y su propiedad es asignada al reci閚 creado usuario.
<hr>

0707010000bcfd000081a40000000000000002000000013ac0388f000000b4000000200000000000000000000000000000002600000003reloc/useradmin/help/makehome.fr.html <header>Cr閑r le r閜ertoire personnel?</header>

Si cette option est choisie, le <a href=home>r閜ertoire personnel</a>
entr sera cr殚 et appartiendra au nouvel utilisateur.
<hr>

0707010000bcfe000081a40000000000000002000000013ac0388f000000b8000000200000000000000000000000000000002300000003reloc/useradmin/help/makehome.html    <header>Create home directory?</header>

If this option is set, the <a href=home>home directory</a> entered will be
created and its ownership assigned to the newly created user.
<hr>

0707010000bcff000081a40000000000000002000000013ac03890000000e2000000200000000000000000000000000000002600000003reloc/useradmin/help/makehome.pl.html <header>Utworzy katalog domowy?</header>

Je秎i ta opcja jest w潮czona, zostanie utworzony
<a href=home>katalog domowy</a>, kt髍ego nazw podano i&nbsp;zostan
ustawione dla niego prawa w砤sno禼i dla nowego u縴tkownika.
<hr>
  0707010000bd00000081a40000000000000002000000013ac03890000000b4000000200000000000000000000000000000002900000003reloc/useradmin/help/makehome.ru_RU.html  <header>杨玟囹 漕爨栝 赅蜞腩?</header>

橡 篑蜞眍怅 铋 铒鲨 狍溴 耦玟囗 <a href=home>漕爨栝 赅蜞腩</a>
 耦玟噔噱祛祗 镱朦珙忄蝈膻 狍潴 溧睇 怦 镳噔 磬 礤泐.
<hr>

0707010000bd01000081a40000000000000002000000013ac0388f000000b4000000200000000000000000000000000000002900000003reloc/useradmin/help/makehome.ru_SU.html  <header>笙谀猎 南土畚墒 肆粤滔?</header>

鹨 沼粤蜗姿 茉鲜 闲蒙 抡呐 酉谀廖 <a href=home>南土畚墒 肆粤滔</a>
 酉谀磷僚拖驼 邢特谙琢耘汤 抡恼 牧钨 子 幸磷 瘟 闻窍.
<hr>

0707010000bd02000081a40000000000000002000000013ac03890000000b4000000200000000000000000000000000000002600000003reloc/useradmin/help/makehome.sv.html <header>Skapa hemkatalog?</header>

Om denna inst鋖lning 鋜 satt kommer den angivna <a href=home>hemkatalogen</a>
att skapas. Den nyss skapade anv鋘daren kommer att 鋑a den.
<hr>

0707010000bd03000081a40000000000000002000000013ac038900000008b000000200000000000000000000000000000002e00000003reloc/useradmin/help/makehome.zh_TW.Big5.html <header>琌ミ產ヘ魁?</header>

狦砞﹚硂匡兜, 盢穦ミ<a href=home>產ヘ魁</a>┮﹚ヘ魁, 盢ㄤ局Τ舦﹚穝ミㄏノ.
<hr>

 0707010000bd04000081a40000000000000002000000013ac0389000000100000000200000000000000000000000000000002100000003reloc/useradmin/help/max.es.html  <header>D韆s m醲imo</header>

Estos son el m醲imo n鷐ero de d韆s que se autoriza a un usuario a hacer
login antes de que tenga que cambiar su clave de acceso. Una vez transcurrido
este tiempo, se pide al usuario que digite una nueva clave de acceso.
<hr>

0707010000bd05000081a40000000000000002000000013ac0388f000000e1000000200000000000000000000000000000002100000003reloc/useradmin/help/max.fr.html  <header>Jours maximums</header>
C'est le nombre maximum de jours entre les changements de mots de passe.
Apr鑣 ce laps de temps, un nouveau mot de passe sera demand  l'utilisateur
 la prochaine ouverture de session.
<hr>

   0707010000bd06000081a40000000000000002000000013ac0388f000000c4000000200000000000000000000000000000001e00000003reloc/useradmin/help/max.html <header>Maxmimum days</header>
This is the maxmimum number of days allowed between password changes.
After this time has elapsed, the user will be propted to enter a new 
password at login.
<hr>

0707010000bd07000081a40000000000000002000000013ac03890000000eb000000200000000000000000000000000000002100000003reloc/useradmin/help/max.pl.html  <header>Maksymalny czas u縴wania has砤</header>

Jest to maksymalna liczba dni, jakie mog up硑n辨 pomi阣zy zmianami has砤.
Po up硑wie tego czasu, u縴tkownik zostanie poproszony o&nbsp;wprowadzenie
nowego has砤 podczas logowania.
<hr>
 0707010000bd08000081a40000000000000002000000013ac03890000000de000000200000000000000000000000000000002400000003reloc/useradmin/help/max.ru_RU.html   <header>锑犟桁嚯 漤彘</header>
锑犟桁嚯铄 觐腓麇耱忸 漤彘 漕矬耱桁铄 戾驿 耢屙囔 镟痤. 项耠 桉蝈麇龛 溧眄钽 耩铌, 镳 怩钿  耔耱屐 镱 telnet 桦  觐眈铍,  镱朦珙忄蝈 狍溴 玎镳铠屙 眍恹 镟痤朦.
<hr>

  0707010000bd09000081a40000000000000002000000013ac0388f000000de000000200000000000000000000000000000002400000003reloc/useradmin/help/max.ru_SU.html   <header>砹擞赏撂匚 奈攀</header>
砹擞赏撂匚吓 讼躺夼釉紫 奈攀 南姓釉赏吓 团帜 油盼镣 辛蚁萄. 鹣犹 捎耘夼紊 牧挝锨 右纤, 幸 兹夏  由釉磐 邢 telnet 商  讼斡咸,  邢特谙琢耘萄 抡呐 诹幸羡盼 蜗踪 辛蚁特.
<hr>

  0707010000bd0a000081a40000000000000002000000013ac03890000000e4000000200000000000000000000000000000002100000003reloc/useradmin/help/max.sv.html  <header>Maximalt antal dagar</header>
Detta 鋜 det h鰃sta antalet dagar som f錼 g mellan l鰏enordsbyten.
N鋜 tiden f鰎 l鰏enordsbyte har 鰒erskridits kommer anv鋘daren att bli
uppmanad att byta l鰏enord vid inloggningen.
<hr>

0707010000bd0b000081a40000000000000002000000013ac038900000007c000000200000000000000000000000000000002900000003reloc/useradmin/help/max.zh_TW.Big5.html  <header>程ら戳</header>
硂琌更Ω盞絏跑ぇ丁┮す砛程ら戳. 狦禬筁硂ら戳, 祅盢穦璶―ㄏノ跑盞絏.
<hr>

0707010000bd0c000081a40000000000000002000000013ac0389000000075000000200000000000000000000000000000002100000003reloc/useradmin/help/min.es.html  <header>D韆s m韓imos</header>

Estos son el m韓imo n鷐ero de d韆s requeridos entre cambio de claves de
acceso.
<hr>

   0707010000bd0d000081a40000000000000002000000013ac0388f00000078000000200000000000000000000000000000002100000003reloc/useradmin/help/min.fr.html  <header>Jours minimums</header>
C'est le mombre minimum de jours requis entre chaque changements
de mot de passe.
<hr>

0707010000bd0e000081a40000000000000002000000013ac0388f0000006a000000200000000000000000000000000000001e00000003reloc/useradmin/help/min.html <header>Minimum days</header>
This is the minimum number of days required between password changes.
<hr>

  0707010000bd0f000081a40000000000000002000000013ac0389000000080000000200000000000000000000000000000002100000003reloc/useradmin/help/min.pl.html  <header>Minimalny czas u縴wania has砤</header>

Jest to minimalna liczba dni, jakie musz up硑n辨 pomi阣zy zmianami has砤.
<hr>
0707010000bd10000081a40000000000000002000000013ac0389000000063000000200000000000000000000000000000002400000003reloc/useradmin/help/min.ru_RU.html   <header>惕龛爨朦眍 漤彘</header>
惕龛爨朦眍 觐腓麇耱忸 漤彘 蝠遽箦祛 戾驿 耢屙囔 镟痤.
<hr>

 0707010000bd11000081a40000000000000002000000013ac0388f00000063000000200000000000000000000000000000002400000003reloc/useradmin/help/min.ru_SU.html   <header>砩紊土特蜗 奈攀</header>
砩紊土特蜗 讼躺夼釉紫 奈攀 砸怕张拖 团帜 油盼镣 辛蚁萄.
<hr>

 0707010000bd12000081a40000000000000002000000013ac0389000000075000000200000000000000000000000000000002100000003reloc/useradmin/help/min.sv.html  <header>Minimalt antal dagar</header>
Detta 鋜 det minsta antalet dagar som f錼 f鰎l鰌a mellan l鰏enordsbyten.
<hr>

   0707010000bd13000081a40000000000000002000000013ac038900000003c000000200000000000000000000000000000002900000003reloc/useradmin/help/min.zh_TW.Big5.html  <header>程ら戳</header>
璶―э跑盞絏ぇ丁程ら戳.
<hr>

0707010000bd14000081a40000000000000002000000013ac0389000000178000000200000000000000000000000000000002600000003reloc/useradmin/help/movehome.es.html <header>縈uevo directorio inicial si ha cambiado?</header>

Al editar un usuario ya existente, si el <a href=home.es>Directorio inicial</a>
del usuario cambia, esta opci髇 determina si Webmin intentar renombrar
el directorio de inicio actual a la nueva trayectoria. Eso falla si el nuevo
directorio se encuentra dentro de un sistema de archivos diferente del
anterior.
<hr>

0707010000bd15000081a40000000000000002000000013ac0388f0000016a000000200000000000000000000000000000002600000003reloc/useradmin/help/movehome.fr.html <header>D閜lacer le r閜ertoire personnel s'il a 閠 chang?</header>

Lorsque vous modifiez un utilisateur, si son <a href=home>r閜ertoire
personnel</a> est chang, cette option d閠ermine si Webmin essaye de
renommer le r閜ertoire actuel vers le nouveau chemin d'acc鑣. Ceci 閏houera
si le nouveau r閜ertoire se trouve sur un disque diff閞ent de l'ancien.
<hr>

  0707010000bd16000081a40000000000000002000000013ac0388f00000147000000200000000000000000000000000000002300000003reloc/useradmin/help/movehome.html    <header>Move home directory if changed?</header>

When editing an existing user, if the user's <a href=home>Home directory</a>
is changed this option determines whether Webmin will try to rename
the actual home directory to the new path. This will fail if the new
directory is on a different filesystem from the old one.
<hr>

 0707010000bd17000081a40000000000000002000000013ac0389000000168000000200000000000000000000000000000002600000003reloc/useradmin/help/movehome.pl.html <header>Przenie舵 katalog domowy, je秎i zmieniony?</header>

Je秎i podczas zmiany danych istniej眂ego u縴tkownika jego 
<a href=home>Katalog domowy</a> zosta zmieniony, ta opcja okre秎a, czy
Webmin b阣zie pr骲owa przenie舵 bie勘cy katalog domowy w nowe miejsce.
To si nie uda, je秎i nowy katalog domowy znajduje si na innym systemie
plik體 ni stary.
<hr>
0707010000bd18000081a40000000000000002000000013ac038900000016b000000200000000000000000000000000000002900000003reloc/useradmin/help/movehome.ru_RU.html  <header>襄疱戾耱栩 漕爨栝 赅蜞腩 镳 桤戾礤龛?</header>

橡 疱溧牝桊钼囗梃 耋耱怏邈 镱朦珙忄蝈, 羼腓 镱朦珙忄蝈朦耜栝 <a href=home>念爨栝 赅蜞腩</a>
桤戾龛腭,  铒鲨 铒疱溴弪 噔蝾爨蜩麇耜铄 镥疱桁屙钼囗桢 蝈牦泐 
漕爨邈 赅蜞腩汔  眍恹. 蔓 镱塍麒蝈 铠栳牦, 羼腓 眍恹 漕爨栝 赅蜞腩
狍溴 磬躅滂蝰 磬 漯筱铋 羿殡钼铋 耔耱屐.
<hr>

 0707010000bd19000081a40000000000000002000000013ac0388f0000016b000000200000000000000000000000000000002900000003reloc/useradmin/help/movehome.ru_SU.html  <header>鹋遗团釉稍 南土畚墒 肆粤滔 幸 哨团闻紊?</header>

鹨 遗牧嗽梢献廖缮 诱菖釉渍垒徘 邢特谙琢耘萄, 庞躺 邢特谙琢耘特铀墒 <a href=home>湎土畚墒 肆粤滔</a>
哨团紊逃, 茉 闲蒙 闲遗呐萄旁 磷韵土陨夼铀吓 信遗赏盼献廖膳 耘苏菖窍 
南土畚徘 肆粤滔橇  蜗踪. 髻 邢陶奚耘 羡陕苏, 庞躺 蜗踪 南土畚墒 肆粤滔
抡呐 瘟认纳杂 瘟 囊涨鲜 屏侍献鲜 由釉磐.
<hr>

 0707010000bd1a000081a40000000000000002000000013ac0389000000127000000200000000000000000000000000000002600000003reloc/useradmin/help/movehome.sv.html <header>Flytta hemkatalog vid 鋘dring?</header>

Om en befintlig anv鋘dares <a href=home>hemkatalog</a> 鋘dras best鋗s
h鋜 om Webmin ska f鰎s鰇a att flytta befintlig hemkatalog till den nya
s鰇v鋑en. Om den nya katalogen finns p ett annat filsystem 鋘 den gamla
kommer detta inte att g.
<hr>

 0707010000bd1b000081a40000000000000002000000013ac03890000000e3000000200000000000000000000000000000002e00000003reloc/useradmin/help/movehome.zh_TW.Big5.html <header>狦э跑杠, 琌穐簿產ヘ魁?</header>

讽絪胯瞷ㄏノ, 狦ㄏノ<a href=home>產ヘ魁</a>Τ砆э跑, 硂匡兜∕﹚ Webmin 琌璶刚帝盢產ヘ魁簿笆穝隔畖. 狦穝侣砞﹚ぃ郎╰参, 硂盢穦ア毖.
<hr>

 0707010000bd1c000081a40000000000000002000000013ac03890000005a9000000200000000000000000000000000000002200000003reloc/useradmin/help/pass.es.html <header>Clave de Acceso</header>

Cuando un usuario hace login v韆 telnet o desde la consola, normalmente
debe de suministrar una clave de acceso. Hay cuatro opciones diferentes para
la clave de acceso:
<ul>
<if $config{'empty_mode'} == 1>
<li><b>Preguntar en su primer login</b><br>
    Cuando el usuario hace login por primera vez v韆 telnet o desde la consola
    en modo texto, el sistema le pide que introduzca su nueva clave de
    aceso. <p>
</if>
<if $config{'empty_mode'} == 0>
<li><b>No se necesita clave de acceso</b><br>
    El usuario puede hacer login en el sistema sin digitar clave de acceso.
    Esta opci髇 debe de utilizarse con mucho cuidado. <p>
</if>
<li><b>No puede hacer login</b><br>
    Si se selecciona esta opci髇, el usurio no puede hacer login en el
    sistema de ning鷑 modo incluso ni para leer su correo del servidor POP3.<p>
<li><b>Clave de acceo encriptada</b><br>
    Las claves de acceso de Unix son almacenadas en un formulario encriptado
    de una v韆. Esta opci髇 te permite digitar la clave de acceso para un
    usuario como una cadena encriptada (quiz tomada del archivo de claves
    de acceso de otro sistema). <p>
<li><b>Limpiar texto de clave de acceso</b><br>
    Para activar la clave de acceso para un usuario, selecciona esta opci髇
    y dig韙ala en el campo de texto. Webmin coge la clave de acceso que
    digitas, la encripta y la almacena en el archivo de claves de acceso. <p>
</ul>
<hr>

   0707010000bd1d000081a40000000000000002000000013ac0388f0000059d000000200000000000000000000000000000002200000003reloc/useradmin/help/pass.fr.html <header>Mot de passe</header>

Quand un utilisateur ouvre une session par telnet ou sur la console, il
doit normalement fournir un mot de passe. Il y a quatre options diff閞entes
pour le mot de passe :

<ul>
<if $config{'empty_mode'} == 1>
<li><b>Demander le mot de passe  la premi鑢e ouverture de session</b><br>
    Quand l'utilisateur ouvre une session pour la premi鑢e fois par telnet
    ou sur la console, le syst鑝e va lui demander sont mot de passe. <p>
</if>
<if $config{'empty_mode'} == 0>
<li><b>Aucun mot de passe requis</b><br>
    Cet utilisateur peut ouvrir une session sans fournir de mot de passe.
    Cette option doit 阾re utilis閑 avec pr閏autions. <p>
</if>
<li><b>Aucune ouverture de session permise</b><br>
    Si cette option est choisie, l'utilisateur ne pourra pas du tout ouvrir
    de session sur le syst鑝e, m阭e pour consulter ses mails sur un serveur
    POP3. <p>
<li><b>Mot de passe crypt</b><br>
    Les mots de passe Unix sont enregistr閟 sous une forme crypt閑. Cette
    option permet d'entrer le mot de passe pour un utilisateur sous sa forme
    d閖 crypt (en le prenant du fichier de mots de passe d'un autre
    syst鑝e par exemple). <p>
<li><b>Mot de passe en texte clair</b><br>
    Pour d閒inir le mot de passe d'un utilisateur, sel閏tionnez cette option
    et entrez-le dans le champ de texte. Webmin l'encryptera et
    l'enregistrera dans le fichier des mots de passe. <p>
</ul>
<hr>

   0707010000bd1e000081a40000000000000002000000013ac0388f000004be000000200000000000000000000000000000001f00000003reloc/useradmin/help/pass.html    <header>Password</header>

When a user logs in via telnet or at the console, he must normally provide a
password. There are four different options for the password :
<ul>
<if $config{'empty_mode'} == 1>
<li><b>Ask at first login</b><br>
    When the user logs in for the first time via telnet or at the console in
    text mode, the system will prompt the user for his password. <p>
</if>
<if $config{'empty_mode'} == 0>
<li><b>No password required</b><br>
    The user can login to the system without providing a password. This option
    should be used with care. <p>
</if>
<li><b>No login allowed</b><br>
    If this option is chosen the user will not be able to login to the system
    at all, even to read mail using POP3 server. <p>
<li><b>Encrypted password</b><br>
    Unix passwords are stored in a one-way encrypted form. This option allows
    you to enter the password for a user as an encrypted string (maybe taken
    from the password file on another system). <p>
<li><b>Clear text password</b><br>
    To set the password for a user, select this option and enter it into the
    text field. Webmin will take the password you enter, encrypt it and store
    it in the password file. <p>
</ul>
<hr>

  0707010000bd1f000081a40000000000000002000000013ac038900000050d000000200000000000000000000000000000002200000003reloc/useradmin/help/pass.pl.html <header>Has硂</header>

Gdy u縴tkownik loguje si przez telnet lub na konsoli, zazwyczaj musi poda
has硂. S cztery r罂ne mo縧iwo禼i ustawienia has砤&nbsp;:
<ul>
<if $config{'empty_mode'} == 1>
<li><b>Zapytaj przy pierwszym logowaniu</b><br>
    Gdy u縴tkownik b阣zie si logowa po raz pierwszy przez telnet lub przy
    konsoli w&nbsp;trybie tekstowym, system poprosi go o&nbsp;jego has硂. <p>
</if>
<if $config{'empty_mode'} == 0>
<li><b>Has硂 nie wymagane</b><br>
    U縴tkownik mo縠 si zalogowa do systemu bez podawanie has砤. Mo縧iwo舵
    ta powinna byc u縴wana ze szczeg髄n ostro縩o禼i. <p>
</if>
<li><b>Nie mo縩a si zalogowa</b><br>
    Wybranie tej mo縧iwo禼i spowoduje, 縠 u縴tkownik nie b阣zie si m骻 
    w&nbsp;og髄e zalogowa do systemu, nawet aby przeczyta poczte u縴waj眂
    serwera POP3. <p>
<li><b>Has硂 zaszyfrowane</b><br>
    Has砤 uniksowe s przechowywane w&nbsp;postaci zaszyfrowanej
    jednokierunkowo. Ta opcja pozwala na wprowadzenie zaszyfrowanej postaci
    has砤 (by mo縠 pobranej z&nbsp;pliku hase innego systemu). <p>
<li><b>Has硂 otwartym tekstem</b><br>
    Aby ustawi has硂 dla u縴tkownika, wybierz t opcj i&nbsp;wprowad je
    w&nbsp;polu tekstowym. Webmin we糾ie to has硂, zaszyfruje je
    i&nbsp;zapisze do pliku hase. <p>
</ul>
<hr>
   0707010000bd20000081a40000000000000002000000013ac03890000005a0000000200000000000000000000000000000002500000003reloc/useradmin/help/pass.ru_RU.html  <header>相痤朦</header>

暑沅 镱朦珙忄蝈朦 怩钿栩  耔耱屐 镱 telnet 桦  觐眈铍, 铐  眍痨嚯铎 
耠篦噱 漕腈屙 忖羼蜩 镟痤朦. 碾 镟痤 耋耱怏 麇螓疱 疣珉梓睇 铒鲨:
<ul>
<if $config{'empty_mode'} == 1>
<li><b>扬痤耔螯 镳 镥疴铎 怩钿</b><br>
    暑沅 镱朦珙忄蝈朦 怩钿栩  耔耱屐 镥疴 疣 镱 telnet 桦  觐眈铍
     蝈犟蝾忸 疱骅戾, 耔耱屐 襦爨 耧痤耔 镱朦珙忄蝈 忖羼蜩 眍恹 镟痤朦.
    湾 疱觐戾礓箦 镱朦珙忄螯 溧眄铋 铒鲨彘 镱耜铍 铐 礤 疣犷蜞弪 潆 
    祉钽桴 漯筱桴 皴疴桉钼 ( 鬣耱眍耱 羿殡钼钽 皴疴屦).
    <p>
</if>
<if $config{'empty_mode'} == 0>
<li><b>湾 蝠遽箦蝰 镟痤</b><br>
    项朦珙忄蝈 祛驽 怩钿栩  耔耱屐 徨 镟痤. 馏潼蝈 铖蝾痤骓  铋
    铒鲨彘, 铒囫嚅蝈顸 磬痼龛 徨珙镟耥铖蜩.
    <p>
</if>
<li><b>迈钿  耔耱屐 礤 疣琊屮屙</b><br>
    橡 恹犷疱 溧眄铋 铒鲨 镱朦珙忄蝈朦 礤 耢铈弪 怩钿栩  耔耱屐 忸怦,
     蝾 麒耠  潆 黩屙 镱黩 镱 镳铗铌铍 POP3
    <p>
<li><b>青麴钼囗睇 镟痤朦</b><br>
    相痤腓 耔耱屐 躔囗蝰  钿眍耱铕铐礤 玎麴钼囗眍 纛痨. 蒡 铒鲨
    镱玮铍弪 锣 忖羼蜩 镟痤朦 镱朦珙忄蝈 磬镳祗  玎麴钼囗眍 忤溴.
    泥眄 铒鲨 祛驽 猁螯 镱脲珥  耠篦噱 觐镨痤忄龛 镟痤脲 漯筱桴 
    镱朦珙忄蝈脲.
    <p>
<li><b>义犟蝾恹 镟痤朦</b><br>
    碾 篑蜞眍怅 镟痤 镱朦珙忄蝈 <b>恹徨痂蝈 铗 矬黻</b>  忖邃栩 镟痤朦 
    蝈犟蝾忸 镱脲. 泥眄 镟痤朦 狍溴 玎麴钼囗  耦躔囗屙  耔耱屐.
    <p>
</ul>
<hr>

0707010000bd21000081a40000000000000002000000013ac0388f000005a0000000200000000000000000000000000000002500000003reloc/useradmin/help/pass.ru_SU.html  <header>鹆蚁特</header>

胂悄 邢特谙琢耘特 兹夏稍  由釉磐 邢 telnet 商  讼斡咸, 衔  蜗彝撂匚贤 
犹辙僚 南讨盼 鬃庞陨 辛蚁特. 涮 辛蚁萄 诱菖釉渍涝 夼再遗 伊谔赊钨 闲蒙:
<ul>
<if $config{'empty_mode'} == 1>
<li><b>笮蚁由载 幸 信易贤 兹夏</b><br>
    胂悄 邢特谙琢耘特 兹夏稍  由釉磐 信易偈 伊 邢 telnet 商  讼斡咸
     耘擞韵紫 遗稚团, 由釉磐 恿土 有蚁由 邢特谙琢耘萄 鬃庞陨 蜗踪 辛蚁特.
    钆 遗讼团文张 邢特谙琢载友 牧挝鲜 闲蒙攀 邢铀咸厮 衔 闻 伊孪粤旁 奶 
    臀锨扇 囊涨扇 优易捎献 ( 蘖釉蜗釉 屏侍献锨 优易乓).
    <p>
</if>
<if $config{'empty_mode'} == 0>
<li><b>钆 砸怕张杂 辛蚁萄</b><br>
    鹣特谙琢耘萄 拖峙 兹夏稍  由釉磐 屡 辛蚁萄. 庹呢耘 嫌韵蚁治  茉鲜
    闲蒙攀, 闲劣潦耘迂 瘟艺叟紊 屡谙辛游嫌陨.
    <p>
</if>
<li><b>魅夏  由釉磐 闻 伊谝袍盼</b><br>
    鹨 踪孪遗 牧挝鲜 闲蒙 邢特谙琢耘特 闻 油现旁 兹夏稍  由釉磐 紫子,
     韵 奚犹  奶 拊盼裳 邢拊 邢 幸显纤咸 POP3
    <p>
<li><b>凵埔献廖钨 辛蚁特</b><br>
    鹆蚁躺 由釉磐 纫廖言友  夏蜗釉弦衔闻 诹凵埔献廖蜗 葡彝.  闲蒙
    邢谧咸雅 髁 鬃庞陨 辛蚁特 邢特谙琢耘萄 瘟幸淹绽  诹凵埔献廖蜗 咨呐.
    淞挝裂 闲蒙 拖峙 沦载 邢膛谖  犹辙僚 讼猩蚁琢紊 辛蚁膛 囊涨扇 
    邢特谙琢耘膛.
    <p>
<li><b>襞擞韵踪 辛蚁特</b><br>
    涮 沼粤蜗姿 辛蚁萄 邢特谙琢耘萄 <b>踪屡疑耘 茉显 姓嗡</b>  鬃拍稍 辛蚁特 
    耘擞韵紫 邢膛. 淞挝偈 辛蚁特 抡呐 诹凵埔献廖  酉纫廖盼  由釉磐.
    <p>
</ul>
<hr>

0707010000bd22000081a40000000000000002000000013ac03890000004a6000000200000000000000000000000000000002200000003reloc/useradmin/help/pass.sv.html <header>L鰏enord</header>

N鋜 en anv鋘dare loggar in via n鋞verk eller konsol beh鰒er den vanligen
ange ett l鰏enord. Det finns fyra alternativ f鰎 l鰏enordet:
<ul>
<if $config{'empty_mode'} == 1>
<li><b>Ange vid f鰎sta inloggning</b>
    <br>N鋜 anv鋘daren loggar in f鰎sta g錸gen via n鋞verk eller konsol
    i textl鋑e, kommer systemet att fr錱a anv鋘daren om ett l鰏enord.
</if>
<if $config{'empty_mode'} == 0>
<li><b>Inget l鰏enord</b>
    <br>Anv鋘daren kan logga in p systemet utan l鰏enord. Det h鋜 alternativet
    ska man vara mycket f鰎siktig med.
</if>
<li><b>F錼 ej logga in</b>
    <br>Om man v鋖jer detta alternativ f錼 anv鋘daren inte logga in p
    systemet, inte ens f鰎 att l鋝a e-post via en POP3-server.
<li><b>Krypterat l鰏enord</b>
    <br>Unix-l鰏enord lagras p env鋑skrypterad form. Med detta alternativ
    kan man ange l鰏enord f鰎 en anv鋘dare som en krypterad str鋘g, som kan
    h鋗tas fr錸 en l鰏enordsfil p ett annat system.
<li><b>L鰏enord i klartext</b>
    <br>V鋖j detta alternativ f鰎 att ange l鰏enordet i klartext. Skriv in
    l鰏enordet i f鋖tet. Webmin krypterar l鰏enordet och lagrar den
    krypterade str鋘gen i l鰏enordsfilen.
</ul>
<hr>

  0707010000bd23000081a40000000000000002000000013ac0389000000339000000200000000000000000000000000000002a00000003reloc/useradmin/help/pass.zh_TW.Big5.html <header>盞絏</header>

讽ㄏノ硓筁 telnet ┪沧狠诀祅, 硄盽ゲ斗矗ㄑ盞絏. 癸盞絏Τㄏノ匡兜:
<ul>
<if $config{'empty_mode'} == 1>
<li><b>材Ω祅高拜</b><br>
    讽ㄏノ材Ω硓筁 telnet ┪沧狠诀祅, ╰参穦矗ボㄏノ跑盞絏. <p>
</if>
<if $config{'empty_mode'} == 0>
<li><b>ぃ惠璶盞絏</b><br>
    ㄏノ祅╰参τぃ惠璶ㄏノ盞絏. 硂匡兜莱赣璶みㄏノ. <p>
</if>
<li><b>ぃす砛祅</b><br>
    狦匡拒硂匡兜, ㄏノ盢ぃ砆す砛祅硂╰参, ㄏ琌ㄏノ POP3 狝竟弄獺ン. <p>
<li><b>絪絏盞絏</b><br>
    Unix 盞絏琌砆虫絪絏よΑ纗. 硂匡兜す砛眤絪絏筁﹃Α块盞絏 (眖ㄤ╰参盞絏眔). <p>
<li><b>ゅ盞絏</b><br>
    璶ㄏノ砞﹚盞絏, 匡拒硂匡兜块盞絏ゅ跋办い. Webmin 盢穦ㄏノ眤┮块盞絏, 絪絏纗盞絏郎ぇい. <p>
</ul>
<hr>

   0707010000bd24000081a40000000000000002000000013ac03890000000b7000000200000000000000000000000000000002200000003reloc/useradmin/help/real.es.html <header>Nombre Real</header>

El nombre real hum醤amente legible de este usuario. 蓅te es mostrado por
comandos tales como <tt>finger</tt> y es utilizado en el correo saliente.
<hr>

 0707010000bd25000081a40000000000000002000000013ac0388f000000c1000000200000000000000000000000000000002200000003reloc/useradmin/help/real.fr.html <header>Nom complet</header>
C'est le vrai nom lisible-par-un-humain de l'utilisateur. Il est affich
par des commandes telles que <tt>finger</tt> et est utilis pour les mails
sortants.
<hr>

   0707010000bd26000081a40000000000000002000000013ac0388f0000009e000000200000000000000000000000000000001f00000003reloc/useradmin/help/real.html    <header>Real Name</header>
The real human-readable name of this user. This is displayed by commands
like <tt>finger</tt> and is used in outgoing email.
<hr>

  0707010000bd27000081a40000000000000002000000013ac03890000000c9000000200000000000000000000000000000002200000003reloc/useradmin/help/real.pl.html <header>Rzeczywista nazwa</header>

Rzeczywista, zrozumia砤 dla ludzi, nazwa tego u縴tkownika. Jest ona
wy秝ietlana przez polecenia typu <tt>finger</tt> i&nbsp;u縴wana
w&nbsp;wychodz眂ej poczcie.
<hr>
   0707010000bd28000081a40000000000000002000000013ac03890000000d0000000200000000000000000000000000000002500000003reloc/useradmin/help/real.ru_RU.html  <header>袜耱 桁</header>
袜耱 (麒蜞徨朦眍) 桁 镱朦珙忄蝈 桦 觐祆屙蜞痂. 蒡 桁 镱赅琨忄
礤觐蝾瘥 觐爨礓 (磬镳桁屦 <tt>finger</tt>),  蜞赕  桁 桉镱朦珞弪 
桉躅 镱黩.
<hr>

0707010000bd29000081a40000000000000002000000013ac0388f000000d0000000200000000000000000000000000000002500000003reloc/useradmin/help/real.ru_SU.html  <header>盍釉涎菖 赏</header>
盍釉涎菖 (奚粤屡特蜗) 赏 邢特谙琢耘萄 商 讼屯盼粤疑.  赏 邢肆谫琢涝
闻讼韵屹 讼土文 (瘟幸赏乓 <tt>finger</tt>),  粤酥 茉 赏 捎邢特谡旁友 
捎认难菖 邢拊.
<hr>

0707010000bd2a000081a40000000000000002000000013ac0389000000088000000200000000000000000000000000000002200000003reloc/useradmin/help/real.sv.html <header>Personens namn</header>
Anv鋘darens verkliga namn. Detta anv鋘ds t ex av kommandot <tt>finger</tt>
och i utg錯nde e-post.
<hr>

0707010000bd2b000081a40000000000000002000000013ac0389000000085000000200000000000000000000000000000002a00000003reloc/useradmin/help/real.zh_TW.Big5.html <header>痷龟﹎</header>
硂ㄏノ痷龟い嘿. 硂穦陪ボ <tt>finger</tt> 单单爹秆逆い, ノ癳筿秎ン.
<hr>

   0707010000bd2c000081a40000000000000002000000013ac0389000000371000000200000000000000000000000000000002300000003reloc/useradmin/help/shell.es.html    <header>Shell</header>

Cuando un usuario hace login v韆 telnet o desde la consola o abre una
ventana <tt>xterm</tt> en X, el programa de shell del usuario se ejecuta
para que pueda interpretar los comandos que se digiten. Si un usuario no
tiene un programa de shell v醠ido o si tiene uno que no hace nada (como
<tt>/bin/false</tt>), encontes ese usuario no podr hacer login. Esto puede
se 鷗il al crear usuarios que s髄o pueden leer y escribir correo. <p>

Listados en este campo est醤 todos los shells usados por los usuarios de
tu sistema. Puedes seleccionar uno o escoger <i>Otro...</i> y digitar la
trayectoria completa del programa shell en el campo de texto inferior.<p>

Todos los sistemas Unix vienen con el shell Bourne (<tt>/bin/sh</tt>) y el
shell C (<tt>/bin/csh</tt>). Otros shells muy comunes y m醩 amigables
son <tt>tcsh</tt>, <tt>zsh</tt> y <tt>bash</tt>. 
<hr>

   0707010000bd2d000081a40000000000000002000000013ac0388f0000037f000000200000000000000000000000000000002300000003reloc/useradmin/help/shell.fr.html    <header>Interpr閠eur de commandes (shell)</header>

Quand un utilisateur ouvre une session par telnet ou sur la console, ou
ouvre un <tt>xterm</tt> sous X l'interpr閠eur de commandes sera lanc.
Si un utilisateur n'a pas un interpr閠eur de commandes valide ou en a un
qui ne fait rien (comme <tt>/bin/false</tt>), il ne sera pas capable
d'ouvrir une session. Ceci peut s'av閞er utile si vous cr閑z des
utilisateurs qui ne pourront que recevoir et envoyer des mails. <p>

Dans ce champ, tous les shells utilis閟 sur votre syst鑝e sont list閟.
Vous pouvez en s閘閏tionner un ou choisir <i>Autre..</i> et entrer le
chemin de commande complet du shell  utiliser.

Tout les syst鑝es Unix poss鑔ent le Bourne shell (<tt>/bin/sh</tt>) et
le C shell (<tt>/bin/csh</tt>). Il existe d'autres interpr閠eurs de
commandes r閜andus comme <tt>tcsh</tt>, <tt>zsh</tt> et <tt>bash</tt>.
<hr>

 0707010000bd2e000081a40000000000000002000000013ac0388f00000312000000200000000000000000000000000000002000000003reloc/useradmin/help/shell.html   <header>Shell</header>

When a user logs in via telnet or at the console, or opens an <tt>xterm</tt>
window in X the users shell program will be run to interpret commands
entered. If a user does not have a valid shell program or has one that
does nothing (like <tt>/bin/false</tt>), then that user will not be able to
login. This can be useful when creating users who can only read and send
email. <p>

Listed in this field are all the shells used by users on your system. You
may select one, or choose <i>Other..</i> and enter the full path of the
shell in the text field below. <p>

All Unix systems come with the Bourne shell (<tt>/bin/sh</tt>) and the
C Shell (<tt>/bin/csh</tt>). Other common and more user-friendly shells
are <tt>tcsh</tt>, <tt>zsh</tt> and <tt>bash</tt>. 
<hr>

  0707010000bd2f000081a40000000000000002000000013ac03890000003b0000000200000000000000000000000000000002300000003reloc/useradmin/help/shell.pl.html    <header>Pow硂ka</header>

Gdy u縴tkownik si loguje poprzez telnet, SSH, na konsoli lub otwiera
okienko <tt>xterm</tt> w&nbsp;X-ach zostaje uruchomiony program pow硂ki
u縴tkownika, aby interpretowa wpisane polecenia. Je秎i u縴tkownik nie
posiada poprawnego programu pow硂ki lub posiada taki, kt髍y nic nie robi
(np. <tt>/bin/false</tt>), w體czas nie mo縠 si on zalogowa. Jest to
wykorzystywane do tworzenia u縴tkownik體, kt髍zy mog wy潮cznie czyta
i&nbsp;wysy砤 poczt. <p>

W&nbsp;tym polu s wymienione wszystkie pow硂ki u縴wane przez u縴tkownik體
twojego systemu. Mo縠sz wybra jedn z&nbsp;nich lub wybra <i>Inna..</i>
oraz wpisa pe硁 禼ie縦 do programu pow硂ki w&nbsp;polu tekstowym poni縠j.
<p>

Wszystkie systemy uniksowe posiadaj pow硂k Bourne'a (<tt>/bin/sh</tt>)
oraz pow硂k C (<tt>/bin/csh</tt>). Innymi cz阺to spotykanymi przyjaznymi
dla u縴tkownik體 pow硂kami s <tt>tcsh</tt>, <tt>zsh</tt>
i&nbsp;<tt>bash</tt>.
<hr>
0707010000bd30000081a40000000000000002000000013ac03890000003a8000000200000000000000000000000000000002600000003reloc/useradmin/help/shell.ru_RU.html <header>Shell</header>

暑沅 镱朦珙忄蝈朦 怩钿栩  耔耱屐 镱 telnet 桦  觐眈铍, 桦 铗牮噱 铌眍 <tt>xterm</tt>  铌铐眍 耔耱屐 X, 蝾 镳钽疣祆 磬琨忄屐 shell 镱朦珙忄蝈 玎矬耜噱蝰 潆 桧蝈痫疱蜞鲨 忖钿桁 镱朦珙忄蝈脲 觐爨礓. 篷腓 镱朦珙忄蝈朦 礤 桁邋 漕矬耱桁钽 shell 桦 桁邋 蜞觐, 觐蝾瘥 龛麇泐 礤 溴豚弪 (磬镳桁屦 <tt>/bin/false</tt>), 蜞觐 镱朦珙忄蝈朦 礤 耢铈弪 疱汨耱痂痤忄螯  耔耱屐. 蒡 祛驽 猁螯 镱脲珥, 羼腓 恹 躅蜩蝈 耦玟囹 镱朦珙忄蝈 桁妣泐 忸珈铈眍耱 蝾朦觐 铗镳噔螯  镳桧桁囹 镱黩.
<p>

 溧眄铎 镱脲 镥疱麒耠屙睇 怦 shell 桉镱朦珞屐 镱朦珙忄蝈扈 忄 耔耱屐. 蔓 祛驽蝈 恹狃囹 钿桧 桤 龛, 桦 恹狃囹 <i>酿筱铋..</i>  忖羼蜩 镱腠 矬螯  shell  蝈犟蝾忸 镱脲 龛驽.
<p>

埋 Unix 耔耱屐 镱耱噔  Bourne shell (<tt>/bin/sh</tt>)  C Shell (<tt>/bin/csh</tt>). 酿筱桢 桤忮耱睇  脲汴桢  桉镱朦珙忄龛 shell <tt>tcsh</tt>, <tt>zsh</tt>  <tt>bash</tt>.
<hr>

0707010000bd31000081a40000000000000002000000013ac0388f000003a8000000200000000000000000000000000000002600000003reloc/useradmin/help/shell.ru_SU.html <header>Shell</header>

胂悄 邢特谙琢耘特 兹夏稍  由釉磐 邢 telnet 商  讼斡咸, 商 显艘僮僚 纤蜗 <tt>xterm</tt>  纤衔蜗 由釉磐 X, 韵 幸锨伊屯 瘟谫琢磐裂 shell 邢特谙琢耘萄 诹姓铀僚杂 奶 晌耘倚遗粤蒙 鬃夏赏偃 邢特谙琢耘膛 讼土文. 逵躺 邢特谙琢耘特 闻 赏排 南姓釉赏锨 shell 商 赏排 粤讼, 讼韵屹 紊夼窍 闻 呐塘旁 (瘟幸赏乓 <tt>/bin/false</tt>), 粤讼 邢特谙琢耘特 闻 油现旁 遗巧釉疑蚁琢载友  由釉磐.  拖峙 沦载 邢膛谖偻, 庞躺 踪 认陨耘 酉谀猎 邢特谙琢耘萄 赏爬菖窍 紫谕现蜗釉 韵特讼 显幸磷萄载  幸晌赏猎 邢拊.
<p>

 牧挝贤 邢膛 信遗奚犹盼钨 子 shell 捎邢特谡磐倥 邢特谙琢耘萄蜕 琢叟 由釉磐. 髻 拖峙耘 踪乱猎 夏晌 哨 紊, 商 踪乱猎 <i>湟涨鲜..</i>  鬃庞陨 邢涛偈 姓载  shell  耘擞韵紫 邢膛 紊峙.
<p>

饔 Unix 由釉磐 邢釉磷萄涝友  Bourne shell (<tt>/bin/sh</tt>)  C Shell (<tt>/bin/csh</tt>). 湟涨膳 哨着釉钨  膛撬膳  捎邢特谙琢紊 shell <tt>tcsh</tt>, <tt>zsh</tt>  <tt>bash</tt>.
<hr>

0707010000bd32000081a40000000000000002000000013ac038900000034f000000200000000000000000000000000000002300000003reloc/useradmin/help/shell.sv.html    <header>Skal</header>

N鋜 en anv鋘dare loggar in via n鋞verk eller konsol, eller 鰌pnar ett
<tt>xterm</tt>-f鰊ster i X, kommer anv鋘darens skalprogram att k鰎as f鰎
att tolka de kommandon som skrivs in. Om en anv鋘dare inte har n錱ot giltigt
skalprogram eller har ett skal som inte kan g鰎a n錱ot (t ex
<tt>/bin/false</tt>), kommer denna anv鋘dare inte att kunna logga in.
Detta kan anv鋘das f鰎 att skapa anv鋘dare som endast ska kunna l鋝a och
skicka e-post.

<p>I detta f鋖t listas alla skal som anv鋘ds av n錱on anv鋘dare i systemet.
V鋖j ett av dessa eller <i>講riga ...</i> och fyll i fullst鋘dig s鰇v鋑 till
skalet i textf鋖tet nedanf鰎.

<p>Alla Unix-system har skalen Bourne shell (<tt>/bin/sh</tt>) och C Shell
(<tt>/bin/csh</tt>). Andra vanliga - och mer anv鋘darv鋘liga - skal 鋜
<tt>tcsh</tt>, <tt>zsh</tt> och <tt>bash</tt>. 
<hr>

 0707010000bd33000081a40000000000000002000000013ac0389000000281000000200000000000000000000000000000002b00000003reloc/useradmin/help/shell.zh_TW.Big5.html    <header>㏑催</header>

讽ㄏノ硓筁 telnet, 沧狠诀祅┪ X 跌怠い秨币 <tt>xterm</tt> 单祘Α, ㏑催盢穦砆磅︽矪瞶ㄏノ块㏑. 狦ㄏノ⊿ΤΤ㏑催┪砆砞﹚Θぃヴㄆ祘Α (ㄒ <tt>/bin/fakse</tt>), 玥ㄏノ盢礚猭祅. 讽ミす砛硓筁 SMTP/POP3 Μ祇獺ンㄏノ, 硂讽Τノ. <p>

硂逆い琌╰参┮Τ倒ㄏノㄏノ㏑催. 眤眖い丁匡拒┪匡拒<i>ㄤ...</i> ゅ跋办い块㏑催Ч俱隔畖. <p>

┮Τ Unix ╰参常穦Τ Bourne ㏑催 (<tt>/bin/sh</tt>) 籔 C ㏑催 (<tt>/bin/csh</tt>). ㄤ盽ノㄏノね到㏑催稬 <tt>tcsh</tt>, <tt>zsh</tt> 籔 <tt>bash</tt>. 
<hr>

   0707010000bd34000081a40000000000000002000000013ac03890000002f4000000200000000000000000000000000000002100000003reloc/useradmin/help/uid.es.html  <header>ID de Usuario</header>

La ID de usuario o UID es lo que utiliza realmente el sistema para llevar
a cabo los permisos de los archivos y procesos. Si dos usuarios tienen la
misma UID podr醤 acceder a los archivos de cada uno - por ello cada usuario
deber韆 de tener una UID 鷑ica. Al crear un nuevo usuario, Webmin rellena
este campo con una UID que no est en uso por ning鷑 otro usuario. <p>

El usuario <tt>root</tt> siempre tiene una UID de 0. Si creas otro usuario con
UID 0, ese usuario tendr el mismo poder que <tt>root</tt>. <p>

Si est醩 editando un usuario ya existente y cambias su UID, la opci髇
<a href=chuid.es>緾ambio ID de usuario en los archivos?</a> determina qu
archivos (si hay alguno) han de cambiar su pertenencia. <p>
<hr>

0707010000bd35000081a40000000000000002000000013ac0388f00000314000000200000000000000000000000000000002100000003reloc/useradmin/help/uid.fr.html  <header>Num閞o d'utilisateur</header>
Le num閞o d'utilisateur (UID) est ce que le syst鑝e utilise vraiment pour
attribuer les permissions aux fichiers et processus. Si deux utilisateurs
ont le m阭e num閞o ils seront consid閞閟 comme 閝uivalents lors d'une
v閞ification de permissions. Quand un nouvel utilisateur est cr殚, Webmin
remplira ce champ avec un num閞o qui n'est pas utilis par un autre
utilisateur. <p>

L'utilisateur <tt>root</tt> a toujours l'UID 0. Si vous cr閑z un autre
utilisateur avec le num閞o 0, il aura les m阭es pouvoirs que le
<tt>root</tt>. <p>

Si vous 閐itez un utilisateur existant et que vous changez son num閞o,
l'option <a href=chuid>Changer de propri閠aire sur les fichiers?</a>
d閠erminera quels fichiers devront avoir leur propri閠aire chang. <p>
<hr>

0707010000bd36000081a40000000000000002000000013ac0388f000002a4000000200000000000000000000000000000001e00000003reloc/useradmin/help/uid.html <header>User ID</header>
The user ID or UID is what the system really uses to enforce permissions
on files and processes. If two users have the same UID, they will be able
to access each others files - so every user should have a unique UID.
When creating a new user, Webmin will fill this field with a UID that is
not in use by any other user. <p>

The <tt>root</tt> user always has a UID of 0. If you create another user
with UID 0, that user will have the same powers as <tt>root</tt>. <p>

If you are editing an existing user and change the UID, the
<a href=chuid>Change user ID on files?</a> option determines which files
(if any) have their ownership changed. <p>
<hr>

0707010000bd37000081a40000000000000002000000013ac038900000034e000000200000000000000000000000000000002100000003reloc/useradmin/help/uid.pl.html  <header>Numer ID u縴tkownika</header>

Numer ID u縴tkownika lub UID jest tym, czego system w&nbsp;rzeczywisto禼i
u縴wa dla wymuszenia praw do plik體 i&nbsp;proces體. Je秎i dw骳h
u縴tkownik體 ma ten sam numer UID, ka縟y z&nbsp;nich mo縠 uzyska dost阷 do
plik體 drugiego - zatem ka縟y u縴tkownik powinien mie unikalny numer UID.
Podczas tworzenia u縴tkownika Webmin nada mu taki numer UID, jakiego nie
u縴wa 縜den inny u縴tkownik. <p>

U縴tkownik <tt>root</tt> zawsze posiada UID r體nu 0. Je秎i utworzysz innego
u縴tkownika z&nbsp;UID r體nym 0, ten u縴tkownik b阣zie r體nie pot昕ny jak
<tt>root</tt>. <p>

Je秎i zmieniaj眂 istniej眂ego u縴tkownika zmienisz jego UID, opcja 

<a href=chuid>Zmieni ID u縴tkownika na plikach?</a> pozwala ci okre秎i
kt髍e pliki (je秎i jakiekolwiek) b阣 nadal nale縜硑 do tego u縴tkownika po
zmianie UID. <p>
<hr>
  0707010000bd38000081a40000000000000002000000013ac038900000032e000000200000000000000000000000000000002400000003reloc/useradmin/help/uid.ru_RU.html   <header>ID 镱朦珙忄蝈</header>
ID 镱朦珙忄蝈 桦 UID -  麒耠钼铋 桎屙蜩翳赅蝾, 觐蝾瘥 耔耱屐 
桉镱朦珞弪 潆 镳钼屦觇 镳噔 磬 羿殡  镳铞羼覃. 篷腓 溻 镱朦珙忄蝈
桁妣 钿桧嚓钼 UID, 蝾 铐 桁妣 钿桧嚓钼 漕耱箫  羿殡囔 漯筱 漯筱 -
蜞觇 钺疣珙 赅驿 镱朦珙忄蝈朦 漕腈屙 桁弪 箜桕嚯 UID.
橡 耦玟囗梃 眍忸泐 镱朦珙忄蝈 溧眄铄 镱脲  玎镱腠弪 噔蝾爨蜩麇耜
UID铎 礤 桉镱朦珞屐 漯筱桁 镱朦珙忄蝈扈.
<p>

项朦珙忄蝈朦 <tt>root</tt> 怦邈溧 桁邋 UID = 0. 篷腓 恹 耦玟噤栩 漯筱钽
镱朦珙忄蝈  UID 0, 蝾 铗 镱朦珙忄蝈朦 狍溴 桁弪 蝮 驽 耔塍, 黩  
镱朦珙忄蝈朦 <tt>root</tt>.
<p>

篷腓 镳 疱溧牝桊钼囗梃 镱朦珙忄蝈 恹 耢屙桦 UID, 蝾 铒鲨  
<a href=chuid>如戾礤龛 ID 镱朦珙忄蝈 磬 羿殡?</a> 铒疱溴弪 赅觇 羿殡 
(羼腓 耋耱怏) 戾 疋铄泐 怆噤咫.
<p>
<hr>

  0707010000bd39000081a40000000000000002000000013ac0388f0000032e000000200000000000000000000000000000002400000003reloc/useradmin/help/uid.ru_SU.html   <header>ID 邢特谙琢耘萄</header>
ID 邢特谙琢耘萄 商 UID - 茉 奚犹献鲜 赡盼陨粕肆韵, 讼韵屹 由釉磐 
捎邢特谡旁 奶 幸献乓松 幸磷 瘟 屏侍  幸厦庞淤. 逵躺 淖 邢特谙琢耘萄
赏爬 夏晌了献偈 UID, 韵 衔 赏爬 夏晌了献偈 南釉招  屏侍镣 囊涨 囊涨 -
粤松 下伊谙 肆帜偈 邢特谙琢耘特 南讨盼 赏旁 瘴伤撂匚偈 UID.
鹨 酉谀廖缮 蜗紫窍 邢特谙琢耘萄 牧挝吓 邢膛  诹邢涛雅杂 磷韵土陨夼铀
UID贤 闻 捎邢特谡磐偻 囊涨赏 邢特谙琢耘萄蜕.
<p>

鹣特谙琢耘特 <tt>root</tt> 子徘牧 赏排 UID = 0. 逵躺 踪 酉谀聊稍 囊涨锨
邢特谙琢耘萄  UID 0, 韵 茉显 邢特谙琢耘特 抡呐 赏旁 哉 峙 由陶, 拊  
邢特谙琢耘特 <tt>root</tt>.
<p>

逵躺 幸 遗牧嗽梢献廖缮 邢特谙琢耘萄 踪 油盼商 UID, 韵 闲蒙  
<a href=chuid>橼团闻紊 ID 邢特谙琢耘萄 瘟 屏侍?</a> 闲遗呐萄旁 肆松 屏侍 
(庞躺 诱菖釉渍涝) 团窝涝 幼吓窍 滋聊盘孛.
<p>
<hr>

  0707010000bd3a000081a40000000000000002000000013ac03890000002c6000000200000000000000000000000000000002100000003reloc/useradmin/help/uid.sv.html  <header>Anv鋘dar-ID</header>
Anv鋘dar-ID eller UID 鋜 det som systemet egentligen anv鋘der sig av f鰎
att kontrollera r鋞tigheter f鰎 filer och processer. Om tv anv鋘dare har
samma UID kommer de att kunna komma 錿 varandras filer; d鋜f鰎 b鰎 varje
anv鋘dare ha ett unikt UID. N鋜 en ny anv鋘dare skapas kommer Webmin att
i detta f鋖t fylla i ett UID som inte anv鋘ds av n錱on annan anv鋘dare.

<p><tt>root</tt>-anv鋘daren har alltid UID 0. Om man skapar en anv鋘dare till
med UID 0 kommer denna anv鋘dare att ha samma r鋞tigheter som <tt>root</tt>.

<p>Om man 鋘drar UID f鰎 n錱on anv鋘dare kommer inst鋖lningen
<a href=chuid>Byta anv鋘dar-ID f鰎 filer?</a> att best鋗ma vilka filer som
ska byta 鋑are.
<hr>

  0707010000bd3b000081a40000000000000002000000013ac0389000000202000000200000000000000000000000000000002900000003reloc/useradmin/help/uid.zh_TW.Big5.html  <header>ㄏノ絪腹</header>
ㄏノ絪腹┪ UID 琌琌╰参龟悔ノ醚郎籔祘舦计. 狦ㄏノΤ UID, 盢が癸よ郎 - ┮–ㄏノ常莱赣Τ斑 UID. 讽ミ穝ㄏノ, Webmin 穦笆ゼ砆ㄤㄏノㄏノ UID 恶硂逆. <p>

<tt>root</tt> ㄏノッ环常ㄏノ UID 0. 狦眤ㄏノ UID 0 ミㄏノ, 盢局Τ籔 <tt>root</tt> 舦. <p>

狦眤絪胯竒ㄏノ跑 UID, <a href=chuid>琌跑郎ㄏノ絪腹?</a> 盢穦∕﹚琌璶跑郎局Τ舦. <p>
<hr>

  0707010000bd3c000081a40000000000000002000000013ac0389000000061000000200000000000000000000000000000002200000003reloc/useradmin/help/user.es.html <header>Nombre de usuario</header>

El nombre de login de este usuario. Debe de ser 鷑ico.
<hr>

   0707010000bd3d000081a40000000000000002000000013ac0388f00000078000000200000000000000000000000000000002200000003reloc/useradmin/help/user.fr.html <header>Nom d'utilisateur</header>
C'est le nom d'ouverture de session de l'utilisateur. Il doit 阾re unique. <p>
<hr>

0707010000bd3e000081a40000000000000002000000013ac0388f00000052000000200000000000000000000000000000001f00000003reloc/useradmin/help/user.html    <header>Username</header>
The login name of this user. This must be unique.
<hr>

  0707010000bd3f000081a40000000000000002000000013ac038900000005e000000200000000000000000000000000000002200000003reloc/useradmin/help/user.pl.html <header>Nazwa u縴tkownika</header>

Nazwa logowania tego u縴tkownika. Musi by unikalna.
<hr>
  0707010000bd40000081a40000000000000002000000013ac0389000000061000000200000000000000000000000000000002500000003reloc/useradmin/help/user.ru_RU.html  <header>褥 镱朦珙忄蝈</header>
绣汨耱疣鲨铐眍 桁 镱腌钼囹咫. 念腈眍 猁螯 箜桕嚯.
<hr>

   0707010000bd41000081a40000000000000002000000013ac0388f00000061000000200000000000000000000000000000002500000003reloc/useradmin/help/user.ru_SU.html  <header>橥 邢特谙琢耘萄</header>
蚺巧釉伊蒙衔蜗 赏 邢腾献猎盘. 湎讨蜗 沦载 瘴伤撂匚偻.
<hr>

   0707010000bd42000081a40000000000000002000000013ac038900000005a000000200000000000000000000000000000002200000003reloc/useradmin/help/user.sv.html <header>Anv鋘darnamn</header>
Anv鋘darens inloggningsnamn. Namnet m錽te vara unikt.
<hr>

  0707010000bd43000081a40000000000000002000000013ac0389000000048000000200000000000000000000000000000002a00000003reloc/useradmin/help/user.zh_TW.Big5.html <header>ㄏノ嘿</header>
ㄏノ祅嘿. 硂ゲ斗琌縒礚.
<hr>

0707010000bd44000081a40000000000000002000000013ac03890000000ac000000200000000000000000000000000000002200000003reloc/useradmin/help/warn.es.html <header>D韆s de Aviso</header>

El n鷐ero de d韆s antes de que el usuario sea forzado a cambiar su
clave de acceso que el usuario ver avisos de ello al hacer login.
<hr>

0707010000bd45000081a40000000000000002000000013ac0388f000000d0000000200000000000000000000000000000002200000003reloc/useradmin/help/warn.fr.html <header>Jours d'avertissement</header>
C'est le nombre de jours pr閏閐ant le changement obligatoire de
mot de passe durant lesquels des avertissements seront affich閟 
chaque ouverture de session. <p>
<hr>

0707010000bd46000081a40000000000000002000000013ac0388f0000008e000000200000000000000000000000000000001f00000003reloc/useradmin/help/warn.html    <header>Warning days</header>
The number of days before the user is forced to change his password
that warnings are displayed at login.
<hr>

  0707010000bd47000081a40000000000000002000000013ac0389000000099000000200000000000000000000000000000002200000003reloc/useradmin/help/warn.pl.html <header>Ostrze縠nie na dni</header>

Liczba dni przed zmuszeniem u縴tkownika do zmiany has砤, kiedy b阣
wy秝ietlane ostrze縠nia podczas logowania.
<hr>
   0707010000bd48000081a40000000000000002000000013ac03890000000ed000000200000000000000000000000000000002500000003reloc/useradmin/help/warn.ru_RU.html  <header>橡邃箫疱驿屙桢 漤彘</header>
暑腓麇耱忸 漤彘, 玎 耜铍 镱朦珙忄蝈朦 磬麒磬弪 镱塍鬣螯 镳邃箫疱驿屙 镥疱 蝈, 赅 狍溴 嚓蜩忤玷痤忄磬 耢屙 镟痤 (镳邃箫疱驿屙 恹溧 镳 怩钿  耔耱屐 镱 telnet 桦  觐眈铍).
<hr>

   0707010000bd49000081a40000000000000002000000013ac0388f000000ed000000200000000000000000000000000000002500000003reloc/useradmin/help/warn.ru_SU.html  <header>鹨拍招遗帜盼膳 奈攀</header>
胂躺夼釉紫 奈攀, 诹 铀咸厮 邢特谙琢耘特 瘟奚瘟旁 邢陶蘖载 幸拍招遗帜盼裳 信遗 耘, 肆 抡呐 了陨咨谏蚁琢瘟 油盼 辛蚁萄 (幸拍招遗帜盼裳 踪牧涝友 幸 兹夏  由釉磐 邢 telnet 商  讼斡咸).
<hr>

   0707010000bd4a000081a40000000000000002000000013ac0389000000095000000200000000000000000000000000000002200000003reloc/useradmin/help/warn.sv.html <header>Varning (dagar)</header>
Det antal dagar f鰎e p錿vingad l鰏enords鋘dring som anv鋘daren f錼 upp
ett varningsmeddelande vid inloggning.
<hr>

   0707010000bd4b000081a40000000000000002000000013ac0389000000058000000200000000000000000000000000000002a00000003reloc/useradmin/help/warn.zh_TW.Big5.html <header>牡ら戳</header>
ㄏノ砆眏跑盞絏ぇ玡, –讽祅獽陪ボ牡丁.
<hr>

0707010000a3b3000081a40000000000000002000000013ac0388f0000014a000000200000000000000000000000000000002300000003reloc/useradmin/config-turbo-linux    homedir_perms=0755
display_max=400
user_files=/etc/skel
passwd_file=/etc/passwd
post_command=
group_file=/etc/group
shadow_file=/etc/shadow
gshadow_file=/etc/gshadow
base_uid=500
base_gid=500
lock_string=*
empty_mode=0
sort_mode=0
new_user_group=0
skip_md5=0
display_mode=1
passwd_stars=0
delete_only=0
from_files=0
alias_check=0
  0707010000a3b4000081a40000000000000002000000013ac0389000000148000000200000000000000000000000000000002000000003reloc/useradmin/config-unixware   homedir_perms=0755
display_max=400
files_remove=local
user_files=/etc/skel
passwd_file=/etc/passwd
post_command=
shadow_file=/etc/shadow
group_file=/etc/group
base_uid=1000
base_gid=1000
lock_string=*LK*
empty_mode=1
sort_mode=0
new_user_group=0
skip_md5=0
display_mode=1
passwd_stars=0
delete_only=0
from_files=0
alias_check=0
0707010000a3b5000081a40000000000000002000000013ac0388f000004eb000000200000000000000000000000000000001c00000003reloc/useradmin/config.info   passwd_file=Password file,3,Generated
group_file=Group file,0
shadow_file=Shadow password file,3
master_file=BSD master password file,3
aix_passwd_file=AIX shadow password file,3
gshadow_file=Shadow group file,3
aix_group_file=AIX shadow group file,3
pre_command=Command to run before making changes,0
post_command=Command to run after making changes,0
homedir_perms=Permissions on new home directories,0
base_uid=Lowest UID for new users,0,5
base_gid=Lowest GID for new groups,0,5
default_group=Default group for new users,6,Default
display_max=Maximum number of users to display,0
sort_mode=Sort users and groups by,1,0-Order in file,1-Username,2-Real name,3-Surname,4-Shell
last_count=Number of previous logins to display,3,Unlimited
new_user_group=Create new group for new users,1,1-Yes,0-No
skip_md5=Don't use MD5 passwords if missing perl MD5 module,1,1-Yes,0-No
user_files=Copy files into new home directories from,9,40,3
display_mode=Display users and groups by,1,2-Primary group categorised,1-Full details,0-Name only
passwd_stars=Conceal plain-text password?,1,1-Yes,0-No
delete_only=Only delete files owned by user?,1,1-Yes,0-No
from_files=Get primary groups from,1,1-Files,0-System calls
alias_check=Check for sendmail alias clashes,1,1-Yes,0-No

 0707010000a3b6000081a40000000000000002000000013ac0388f0000046f000000200000000000000000000000000000001f00000003reloc/useradmin/config.info.de    passwd_file=Passwort Datei,3,Generiert
group_file=Gruppen Datei,0
shadow_file=Shadow Passwort Datei,3
master_file=BSD master Passwort Datei,3
gshadow_file=Shadow Gruppen Datei,3
pre_command=Auszuf&uuml;hrendes Kommand vor &Auml;nderungen,0
post_command=Auszuf&uuml;hrendes Kommand nach &Auml;nderungen,0
homedir_perms=Rechte eines neues Heimatverzeichnisses,0
base_uid=Niedrigste UID f&uuml;r neue Benutzer,0,5
base_gid=Niedrigste GID f&uuml;r neue Gruppen,0,5
default_group=Standard Gruppe f&uuml;r neue Benutzer,6,Standard
display_max=Maximale Anzahl angezeigter Benutzer,0
sort_mode=Soertiere Benutzer und Gruppen nach,1,0-Reihenfolge in Datei,1-Benutzername,2-Wirklicher Name,3-Nachname,4-Shell
last_count=Anzahl anzuzeigender vorheriger Logins,3,Unendlich
new_user_group=Erstelle neue Gruppe f&uuml;r neue Benutzer,1,1-Ja,0-Nein
skip_md5=Benutze keine MD5 Passw&ouml;rter wenn Perl MD5 Modul fehlt,1,1-Ja,0-Nein
user_files=Kopiere Dateien in neues Heimatverzeichnis aus,9,40,3
display_mode=Zeige Benutz und Gruppen an,1,2-Primary group categorised,1-Volle Detail,0-Nur Namen
passwd_stars=Verberge Klartext Passwort?,1,1-Ja,0-Nein
 0707010000a3b7000081a40000000000000002000000013ac03890000005e5000000200000000000000000000000000000001f00000003reloc/useradmin/config.info.es    passwd_file=Archivo de claves de acceso,3,Generado
group_file=Archivo de grupo,0
shadow_file=Archivo de claves de acceso ocultas,3
master_file=Archivo maestro de claves de acceso BSD,3
aix_passwd_file=Archivo de claves de acceso en la sombra de AIX,3
gshadow_file=Archivo de claves ocultas de grupo,3
aix_group_file=Archivo de grupo en la sombra de,3
pre_command=Comando a ejecutar antes de realizar los cambios,0
post_command=Comando a ejectar tras realizar los cambios,0
homedir_perms=Permisos de los nuevos directorios de inicio,0
base_uid=UID menor para nuevos usuarios,0
base_gid=GID menor para nuevos grupos,0
default_group=Grupo por defecto para nuevos usuarios,6,Por defecto
display_max=M醲imo n鷐ero de usuarios a mostrar,0
sort_mode=Clasificar Usuarios y Grupos por,1,0-Orden en archivo,1-Nombre de usuario,2-Nombre real,3-Apellido,4-Shell
last_count=N鷐ero de logins previos a mostrar,3,Ilimitados
new_user_group=Crear nuevo grupo para nuevos usuarios,1,1-S,0-No
skip_md5=No usar claves de acceso MD5 si no hay m骴ulo MD5 de perl,1,1-S,0-No
user_files=Copiar archivos a nuevos directorios de inicio desde,9,40,3
display_mode=Mostrar usuarios y grupo con,1,2-Primary group categorised,1-Todos los detalles,0-S髄o el nombre
passwd_stars=縊cultar clave de acceso de s髄o-texto?,1,1-S,0-No
delete_only=縎髄o borrar archivos propiedad del usuario?,1,1-S,0-No
from_files=Obtener grupos primarios de,1,1-Archivos,0-Llamadas al sistema
alias_check=Revisar por choques de alias de sendmail,1,1-S,0-No

   0707010000a3b8000081a40000000000000002000000013ac0389000000485000000200000000000000000000000000000001f00000003reloc/useradmin/config.info.fr    passwd_file=Fichier de mot de passe,3,Gen閞
group_file=Fichier de groupe,0
shadow_file=Fichier de mot de passe 'shadow',3
master_file=Fichier de mot de passe principal BSD,3
gshadow_file=Fichier de groupe 'shadow',3
pre_command=Commande  ex閏uter avant de faire un changement,0
post_command=Commande  ex閏uter apr鑣 avoir fait un changement,0
homedir_perms=Permissions d'un nouveau r閜ertoire personnel,0
base_uid=Num閞o d'usager minimum d'un nouvel usagers,0
base_gid=Num閞o de groupe minimum d'un nouveau groupe,0
default_group=Groupe par d閒aut d'un nouvel usager,6,D閒aut
display_max=Nombre maximum d'usager  afficher  la fois,0
last_count=Nombre d'ouverture de session  afficher  la fois,3,Illimit
new_user_group=Cr閑r un nouveau groupe pour chaque nouveau usager,1,1-Oui,0-Non
skip_md5=Ne pas utiliser les mots de passe MD5 si le module perl MD5 est manquant,1,1-Oui,0-Non
user_files=Copier des fichiers dans un nouveau r閜ertoire personnel  partir de,9,40,3
display_mode=Afficher les usagers et les groupes par,1,2-Primary group categorised,1-D閠ails completss,0-Nom seulement
passwd_stars=Dissimuler les mots de passe texte?,1,1-Oui,0-Non

   0707010000a3b9000081a40000000000000002000000013ac03890000005b6000000200000000000000000000000000000001f00000003reloc/useradmin/config.info.pl    passwd_file=Plik hase,3,Wygenerowany
group_file=Plik grup,0
shadow_file=Plik hase "shadow",3
master_file=Nadrz阣ny plik hase BSD,3
aix_passwd_file=Plik hase "shadow" dla AIX,3
gshadow_file=Plik grup "shadow",3
aix_group_file=Plik grup "shadow" dla AIX,3
pre_command=Polecenie uruchamiane przed dokonaniem zmian,0
post_command=Polecenie uruchamiane po dokonaniu zmian,0
homedir_perms=Prawa dost阷u do nowych katalog體 domowych,0
base_uid=Najni縮zy UID dla nowych u縴tkownik體,0,5
base_gid=Najni縮zy GID dla nowych grup,0,5
default_group=Domy秎na grupa dla nowych u縴tkownik體,6,Domy秎ne
display_max=Maksymalna liczba wy秝ietlanych u縴tkownik體,0
sort_mode=Wy秝ietlaj u縴tkownik體 i&nbsp;grupy wg,1,0-Porz眃ku w zbiorze,1-Nazwy u縴tkownika,2-Rzeczywistej nazwy,3-Nazwiska,4-Pow硂ki
last_count=Wy秝ietlana liczba poprzednich logowa,3,Nieograniczona
new_user_group=Tworzy now grup dla nowych u縴tkownik體,1,1-Tak,0-Nie
skip_md5=Nie uzywaj kodowania hase MD5, je縠li modu perla MD5 nie jest zainstalowag,1,1-Tak,0-Nie
user_files=Kopiowa pliki do nowego katalogu domowego z,9,40,3
display_mode=Wy秝ietlanie u縴tkownik體 i&nbsp;grup wg,1,2-Grupy podstawowej,1-Pe硁ej informacji,0-Tylko nazwy
passwd_stars=Ukrywa tre舵 has砤?,1,1-Tak,0-Nie
delete_only=Kasowa tylko pliki b阣眂e w砤sno禼i u縴tkownika?,1,1-Tak,0-Nie
from_files=Pobiera grupy podstawowe z,1,1-Plik體,0-Odwo砤 do systemu
alias_check=Sprawdza kolizje z&nbsp;aliasami Sendmaila,1,1-Tak,0-Nie
  0707010000a3ba000081a40000000000000002000000013ac0389000000402000000200000000000000000000000000000002200000003reloc/useradmin/config.info.ru_RU post_command=暑爨礓 桉镱腠屐 镱耠 忭羼屙 桤戾礤龛,0
pre_command=暑爨礓 桉镱腠屐 镥疱 忭羼屙桢 桤戾礤龛,0
shadow_file=义礤忸 羿殡 镟痤脲,3
master_file=BSD 汶噔睇 羿殡 镟痤脲,3
group_file=脏殡  沭箫镟扈,0
gshadow_file=义礤忸 羿殡 沭箫,3
base_gid=拎珙恹 GID 潆 眍恹 沭箫,0
homedir_perms=橡噔 磬 眍恹 漕爨桢 赅蜞腩汨,0
passwd_file=脏殡  镟痤扈,3,雁屙屦桊钼囗
default_group=灭箫镟 镱 箪铍鬣龛 潆 眍恹 镱朦珙忄蝈脲,6,项 箪铍鬣龛
user_files=暑镨痤忄螯 羿殡  眍恹 漕爨桢 赅蜞腩汨 桤,9,40,3
new_user_group=杨玟噔囹 眍怏 沭箫矬 潆 眍忸泐 镱朦珙忄蝈,1,1-泥,0-湾
display_mode=项赅琨忄螯 镱朦珙忄蝈脲  沭箫稃,1,2-Primary group categorised,1-骂 怦艴 溴蜞,0-翌朦觐 桁屙
display_max=锑犟桁嚯铄 麒耠 镱赅琨忄屐 镱朦珙忄蝈脲,0
base_uid=拎珙恹 UID 潆 眍恹 镱朦珙忄蝈脲,0
last_count=暑-忸 镱赅琨忄屐 镳邃簌桴 疱汨耱疣鲨,3,湾 钽疣龛麇眍
skip_md5=湾 桉镱朦珙忄螯 MD5 镟痤腓 羼腓 铗耋蝰蜮箦 MD5 祛潴朦 潆 perl,1,1-泥,0-湾
passwd_stars=殃瘥忄螯 蝈犟蝾恹 镟痤朦?,1,1-泥,0-湾
  0707010000a3bb000081a40000000000000002000000013ac0389000000403000000200000000000000000000000000000002200000003reloc/useradmin/config.info.ru_SU passwd_file=媪侍  辛蚁萄蜕,3,笄盼乓梢献廖
group_file=媪侍  且招辛蜕,0
shadow_file=襞闻紫 屏侍 辛蚁膛,3
master_file=BSD 翘磷钨 屏侍 辛蚁膛,3
gshadow_file=襞闻紫 屏侍 且招,3
pre_command=胂土文 捎邢涛雅土 信遗 孜庞盼膳 哨团闻紊,0
post_command=胂土文 捎邢涛雅土 邢犹 孜庞盼裳 哨团闻紊,0
homedir_perms=鹨磷 瘟 蜗踪 南土畚膳 肆粤滔巧,0
base_uid=饬谙踪 UID 奶 蜗踪 邢特谙琢耘膛,0
base_gid=饬谙踪 GID 奶 蜗踪 且招,0
default_group=缫招辛 邢 胀咸蘖紊 奶 蜗踪 邢特谙琢耘膛,6,鹣 胀咸蘖紊
display_max=砹擞赏撂匚吓 奚犹 邢肆谫琢磐偃 邢特谙琢耘膛,0
last_count=胂-紫 邢肆谫琢磐偃 幸拍倌蛰扇 遗巧釉伊蒙,3,钆 锨伊紊夼蜗
new_user_group=笙谀磷猎 蜗渍 且招姓 奶 蜗紫窍 邢特谙琢耘萄,1,1-淞,0-钆
skip_md5=钆 捎邢特谙琢载 MD5 辛蚁躺 庞躺 显诱杂宰张 MD5 拖恼特 奶 perl,1,1-淞,0-钆
user_files=胂猩蚁琢载 屏侍  蜗踪 南土畚膳 肆粤滔巧 哨,9,40,3
display_mode=鹣肆谫琢载 邢特谙琢耘膛  且招匈,1,2-Primary group categorised,1-飨 子湃 呐粤萄,0-粝特讼 赏盼
passwd_stars=笏屹琢载 耘擞韵踪 辛蚁特?,1,1-淞,0-钆

 0707010000a3bc000081a40000000000000002000000013ac03890000004ef000000200000000000000000000000000000001f00000003reloc/useradmin/config.info.sv    passwd_file=L鰏enordsfil,3,Genererad
group_file=Gruppfil,0
shadow_file=Skuggl鰏enordsfil,3
master_file=BSD-huvudl鰏enordsfil,3
aix_passwd_file=AIX-skuggl鰏enordsfil,3
gshadow_file=Skuggruppfil,3
aix_group_file=AIX-skuggruppfil,3
pre_command=Kommando som ska k鰎as innan 鋘dringar g鰎s,0
post_command=Kommando som ska k鰎as n鋜 鋘dringar har gjorts,0
homedir_perms=R鋞tigheter f鰎 nya hemkataloger,0
base_uid=L鋑sta UID f鰎 nya anv鋘dare,0
base_gid=L鋑sta GID f鰎 nya grupper,0
default_group=Standardgrupp f鰎 nya anv鋘dare,6,Standard
display_max=Maximalt antal anv鋘dare som ska visas,0
sort_mode=Sortera anv鋘dare och grupper efter namn,1,1-Ja,0-Nej
last_count=Antal tidigare inloggningar som ska visas,3,Obegr鋘sat
new_user_group=Skapa ny grupp f鰎 nya anv鋘dare,1,1-Ja,0-Nej
skip_md5=Anv鋘d inte MD5-l鰏enord om perl-MD5-modul fattas,1,1-Ja,0-Nej
user_files=Kopiera filer till nya hemkataloger fr錸,0
display_mode=Lista med anv鋘dare och grupper inneh錶ler,1,2-Primary group categorised,1-Alla uppgifter,0-Endast namn
passwd_stars=D鰈ja l鰏enord i klartext?,1,1-Ja,0-Nej
delete_only=Endast ta bort filer som 鋑s av anv鋘daren?,1,1-Ja,0-Nej
from_files=H鋗ta prim鋜a grupper fr錸,1,1-Fil,0-Systemanrop
alias_check=Kontrollera sendmail-alias-krockar,1,1-Ja,0-Nej
 0707010000a3bd000081a40000000000000002000000013ac0389000000438000000200000000000000000000000000000001f00000003reloc/useradmin/config.info.tr    passwd_file=辤fre dosyas,3,Olu⺶uruldu
group_file=Grup dosyas,0
shadow_file=Shadow parola dosyas,3
master_file=BSD ana parola dosyas,3
gshadow_file=Shadow grup dosyas,3
pre_command=De餴㱮klikleri uygulamadan 鰊ceki komut,0
post_command=De餴㱮klikleri uygulad齥tan sonraki komut,0
homedir_perms=Yeni ev dizinleri izinleri,0
base_uid=Yeni kullan齝齦ar i鏸n en d黭 UID,0,5
base_gid=Yeni gruplar i鏸n en d黭 GID,0,5
default_group=Yeni kullan齝齦ar i鏸n 鰊tan齧l grup,6,謓tan齧l
display_max=G鰎黱t黮enecek en 鏾k kullan齝 say齭,0
sort_mode=Kullan齝 ve gruplar s齬alam d鼁eni,1,0-Dosyadaki s齬ayla,1-Kullan齝 ad,2-Ger鏴k ismi,3-Soyad,4-Kabuk
last_count=G鰎黱t黮ecek daha 鰊ceki girier,3,Limitsiz
new_user_group=Yeni kullan齝齦ar i鏸n yeni grup olu⺶urulsun mu?,1,1-Evet,0-Hay齬
skip_md5=Perl MD5 mod黮 bulunmazsa MD5 㱮frelemesini kullanma,1,1-Evet,0-Hay齬
user_files=Yeni ev dizinlerine kopyalacak dosyalar齨 yeri,9,40,3
display_mode=Kullan齝 ve gruplar g鰎黱t黮e 㧐kli,1,1-Ayr齨t齦,0-Sadece isim
passwd_stars=D鼁 metin 㱮freleri saklans齨 m?,1,1-Evet,0-hay齬
0707010000a3be000081a40000000000000002000000013ac0389000000334000000200000000000000000000000000000002200000003reloc/useradmin/config.info.zh_CN passwd_file=口令文件,3,已经产生
group_file=用户组文件,0
shadow_file=影子口令文件,3
master_file=BSD 主口令文件,3
gshadow_file=影子组文件,3
pre_command=作改动之前运行的命令,0
post_command=作改动之后运行的命令,0
homedir_perms=新用户根目录的许可,0
base_uid=新用户的最低 UID  值,0
base_gid=新用户组的最低 GID 值,0
default_group=新用户缺省组,6,缺省
display_max=最大可显示的用户数目,0
sort_mode=以名称排序用户和组,1,1-是,0-否
last_count=最大可显示以前登录用户的数目,3,无限
new_user_group=为新用户建立新组,1,1-是,0-否
skip_md5=如果没有perl MD5模块就不使用 MD5 口令,1,1-是,0-否
user_files=拷贝文件到新用户根目录的源目录,0
display_mode=显示用户和组的排序形式,1,2-主用户组分类,1-详细,0-只有名称
passwd_stars=隐藏明文密码?,1,1-是,0-否
delete_only=仅删除用户所有的文件?,1,1-是,0-否
from_files=得到主用户组的来源,1,1-文件,0-系统调用

0707010000a3bf000081a40000000000000002000000013ac03890000002da000000200000000000000000000000000000002700000003reloc/useradmin/config.info.zh_TW.Big5    passwd_file=盞絏郎,3,玻ネ
group_file=竤舱郎,0
shadow_file=Shadow 盞絏郎,3
master_file=BSD 北盞絏郎,3
gshadow_file=Shadow 竤舱郎,3
pre_command=玻ネ跑玡璶磅︽,0
post_command=玻ネ跑璶磅︽,0
homedir_perms=穝ㄏノ產ヘ魁舦,0
base_uid=穝ㄏノ程 UID ,0
base_gid=穝竤舱程 GID ,0
default_group=穝ㄏノ箇砞竤舱,6,箇砞
display_max=陪ボ程ㄏノ计ヘ,0
last_count=陪ボ程祅计ヘ,3,礚
new_user_group=ㄏ穝ㄏノミ穝竤舱?,1,1-琌,0-
skip_md5=狦⊿Τ Perl MD5 家舱ぃ璶ㄏノ MD5 盞絏,1,1-琌,0-
user_files=ī郎穝ヘ魁い, 眖,9,40,3
display_mode=ㄏノ籔竤舱陪ボよΑ,1,2-Primary group categorised,1-Ч俱冈灿戈,0-Τ嘿
passwd_stars=琌留旅ゅ盞絏?,1,1-琌,0-
  0707010000a3c0000081a40000000000000002000000013ac0388f000011f5000000200000000000000000000000000000002300000003reloc/useradmin/corel-linux-lib.pl    # linux-lib.pl
# Functions for reading linux format last output

# passfiles_type()
# Returns 0 for old-style passwords (/etc/passwd only), 1 for FreeBSD-style
# (/etc/master.passwd) and 2 for SysV (/etc/passwd & /etc/shadow)
sub passfiles_type
{
return &password_file($config{'shadow_file'}) ? 2 : 0;
}

# groupfiles_type()
# Returns 0 for normal group file (/etc/group only) and 2 for shadowed
# (/etc/group and /etc/gshadow)
sub groupfiles_type
{
return &password_file($config{'gshadow_file'}) ? 2 : 0;
}

# open_last_command(handle, user)
sub open_last_command
{
local ($fh, $user) = @_;
open($fh, "last $user |");
}

# read_last_line(handle)
# Parses a line of output from last into an array of
#  user, tty, host, login, logout, period
sub read_last_line
{
$fh = $_[0];
while(1) {
	chop($line = <$fh>);
	if (!$line) { return (); }
	if ($line =~ /system boot/) { next; }
	if ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+\-\s+(\S+)\s+\((\d+:\d+)\)/) {
		return ($1, $2, $3, $4, $5 eq "down" ? "Shutdown" : $5, $6);
		}
	elsif ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+still/) {
		return ($1, $2, $3, $4);
		}
	}
}

# encrypt_password(password)
sub encrypt_password
{
local $md5 = 0;
if (&foreign_check("pam")) {
	# Use the PAM module if we can
	&foreign_require("pam", "pam-lib.pl");
	local @conf = &foreign_call("pam", "get_pam_config");
	local ($svc) = grep { $_->{'name'} eq 'passwd' } @conf;
	LOOP: foreach $m (@{$svc->{'mods'}}) {
		if ($m->{'type'} eq 'password') {
			if ($m->{'args'} =~ /md5/) { $md5++; }
			elsif ($m->{'module'} =~ /pam_stack\.so/ &&
			       $m->{'args'} =~ /service=(\S+)/) {
				# Referred to another service!
				($svc) = grep { $_->{'name'} eq $1 } @conf;
				if ($svc) { goto LOOP }
				else { last; }
				}
			}
		}
	}
elsif (open(PAM, "/etc/pam.d/passwd")) {
	# Otherwise try to check the PAM file directly
	while(<PAM>) {
		s/#.*$//g;
		$md5++ if (/^password.*md5/);
		}
	close(PAM);
	}
if (open(DEFS, "/etc/login.defs")) {
	# The login.defs file is used on debian sometimes
	while(<DEFS>) {
		s/#.*$//g;
		$md5++ if (/MD5_CRYPT_ENAB\s+yes/i);
		}
	close(DEFS);
	}
if ($md5 && !$config{'skip_md5'}) {
	# MD5 encrypt the password, using the same algorithm as PAM
	eval "use MD5";
	if ($@) {
		&header("Error", "");
		print "<hr><p>\n";
		print "Your system has MD5 passwords enabled, but the perl\n",
		      "MD5 module is not installed.<p> To force the use of\n",
		      "normal encrypted passwords, adjust your\n",
		      "<a href='/config.cgi?$module_name'>module ",
		      "configuration</a>. <p><hr>\n";
		exit;
		}
	local $passwd = $_[0];
	local $magic = '$1$';
	local $salt = substr(time(), -8);

	# Add the password, magic and salt
	local $ctx = new MD5;
	$ctx->add($passwd);
	$ctx->add($magic);
	$ctx->add($salt);

	# Add some more stuff from the hash of the password and salt
	local $ctx1 = new MD5;
	$ctx1->add($passwd);
	$ctx1->add($salt);
	$ctx1->add($passwd);
	local $final = $ctx1->digest();
	for($pl=length($passwd); $pl>0; $pl-=16) {
		$ctx->add($pl > 16 ? $final : substr($final, 0, $pl));
		}

	# This piece of code seems rather pointless, but it's in the C code that
	# does MD5 in PAM so it has to go in!
	local $j = 0;
	local ($i, $l);
	for($i=length($passwd); $i; $i >>= 1) {
		if ($i & 1) {
			$ctx->add("\0");
			}
		else {
			$ctx->add(substr($passwd, $j, 1));
			}
		}
	$final = $ctx->digest();

	# This loop exists only to waste time
	for($i=0; $i<1000; $i++) {
		$ctx1 = new MD5;
		$ctx1->add($i & 1 ? $passwd : $final);
		$ctx1->add($salt) if ($i % 3);
		$ctx1->add($passwd) if ($i % 7);
		$ctx1->add($i & 1 ? $final : $passwd);
		$final = $ctx1->digest();
		}

	# Convert the 16-byte final string into a readable form
	local $rv = $magic.$salt.'$';
	local @final = map { ord($_) } split(//, $final);
	$l = ($final[ 0]<<16) + ($final[ 6]<<8) + $final[12];
	$rv .= &to64($l, 4);
	$l = ($final[ 1]<<16) + ($final[ 7]<<8) + $final[13];
	$rv .= &to64($l, 4);
	$l = ($final[ 2]<<16) + ($final[ 8]<<8) + $final[14];
	$rv .= &to64($l, 4);
	$l = ($final[ 3]<<16) + ($final[ 9]<<8) + $final[15];
	$rv .= &to64($l, 4);
	$l = ($final[ 4]<<16) + ($final[10]<<8) + $final[ 5];
	$rv .= &to64($l, 4);
	$l = $final[11];
	$rv .= &to64($l, 2);

	return $rv;
	}
else {
	local $salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
	return crypt($_[0], $salt);
	}
}

@itoa64 = split(//, "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
sub to64
{
local ($v, $n) = @_;
local $r;
while(--$n >= 0) {
        $r .= $itoa64[$v & 0x3f];
        $v >>= 6;
        }
return $r;
}

1;
   0707010000a3c1000081a40000000000000002000000013ac03890000011f5000000200000000000000000000000000000002400000003reloc/useradmin/debian-linux-lib.pl   # linux-lib.pl
# Functions for reading linux format last output

# passfiles_type()
# Returns 0 for old-style passwords (/etc/passwd only), 1 for FreeBSD-style
# (/etc/master.passwd) and 2 for SysV (/etc/passwd & /etc/shadow)
sub passfiles_type
{
return &password_file($config{'shadow_file'}) ? 2 : 0;
}

# groupfiles_type()
# Returns 0 for normal group file (/etc/group only) and 2 for shadowed
# (/etc/group and /etc/gshadow)
sub groupfiles_type
{
return &password_file($config{'gshadow_file'}) ? 2 : 0;
}

# open_last_command(handle, user)
sub open_last_command
{
local ($fh, $user) = @_;
open($fh, "last $user |");
}

# read_last_line(handle)
# Parses a line of output from last into an array of
#  user, tty, host, login, logout, period
sub read_last_line
{
$fh = $_[0];
while(1) {
	chop($line = <$fh>);
	if (!$line) { return (); }
	if ($line =~ /system boot/) { next; }
	if ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+\-\s+(\S+)\s+\((\d+:\d+)\)/) {
		return ($1, $2, $3, $4, $5 eq "down" ? "Shutdown" : $5, $6);
		}
	elsif ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+still/) {
		return ($1, $2, $3, $4);
		}
	}
}

# encrypt_password(password)
sub encrypt_password
{
local $md5 = 0;
if (&foreign_check("pam")) {
	# Use the PAM module if we can
	&foreign_require("pam", "pam-lib.pl");
	local @conf = &foreign_call("pam", "get_pam_config");
	local ($svc) = grep { $_->{'name'} eq 'passwd' } @conf;
	LOOP: foreach $m (@{$svc->{'mods'}}) {
		if ($m->{'type'} eq 'password') {
			if ($m->{'args'} =~ /md5/) { $md5++; }
			elsif ($m->{'module'} =~ /pam_stack\.so/ &&
			       $m->{'args'} =~ /service=(\S+)/) {
				# Referred to another service!
				($svc) = grep { $_->{'name'} eq $1 } @conf;
				if ($svc) { goto LOOP }
				else { last; }
				}
			}
		}
	}
elsif (open(PAM, "/etc/pam.d/passwd")) {
	# Otherwise try to check the PAM file directly
	while(<PAM>) {
		s/#.*$//g;
		$md5++ if (/^password.*md5/);
		}
	close(PAM);
	}
if (open(DEFS, "/etc/login.defs")) {
	# The login.defs file is used on debian sometimes
	while(<DEFS>) {
		s/#.*$//g;
		$md5++ if (/MD5_CRYPT_ENAB\s+yes/i);
		}
	close(DEFS);
	}
if ($md5 && !$config{'skip_md5'}) {
	# MD5 encrypt the password, using the same algorithm as PAM
	eval "use MD5";
	if ($@) {
		&header("Error", "");
		print "<hr><p>\n";
		print "Your system has MD5 passwords enabled, but the perl\n",
		      "MD5 module is not installed.<p> To force the use of\n",
		      "normal encrypted passwords, adjust your\n",
		      "<a href='/config.cgi?$module_name'>module ",
		      "configuration</a>. <p><hr>\n";
		exit;
		}
	local $passwd = $_[0];
	local $magic = '$1$';
	local $salt = substr(time(), -8);

	# Add the password, magic and salt
	local $ctx = new MD5;
	$ctx->add($passwd);
	$ctx->add($magic);
	$ctx->add($salt);

	# Add some more stuff from the hash of the password and salt
	local $ctx1 = new MD5;
	$ctx1->add($passwd);
	$ctx1->add($salt);
	$ctx1->add($passwd);
	local $final = $ctx1->digest();
	for($pl=length($passwd); $pl>0; $pl-=16) {
		$ctx->add($pl > 16 ? $final : substr($final, 0, $pl));
		}

	# This piece of code seems rather pointless, but it's in the C code that
	# does MD5 in PAM so it has to go in!
	local $j = 0;
	local ($i, $l);
	for($i=length($passwd); $i; $i >>= 1) {
		if ($i & 1) {
			$ctx->add("\0");
			}
		else {
			$ctx->add(substr($passwd, $j, 1));
			}
		}
	$final = $ctx->digest();

	# This loop exists only to waste time
	for($i=0; $i<1000; $i++) {
		$ctx1 = new MD5;
		$ctx1->add($i & 1 ? $passwd : $final);
		$ctx1->add($salt) if ($i % 3);
		$ctx1->add($passwd) if ($i % 7);
		$ctx1->add($i & 1 ? $final : $passwd);
		$final = $ctx1->digest();
		}

	# Convert the 16-byte final string into a readable form
	local $rv = $magic.$salt.'$';
	local @final = map { ord($_) } split(//, $final);
	$l = ($final[ 0]<<16) + ($final[ 6]<<8) + $final[12];
	$rv .= &to64($l, 4);
	$l = ($final[ 1]<<16) + ($final[ 7]<<8) + $final[13];
	$rv .= &to64($l, 4);
	$l = ($final[ 2]<<16) + ($final[ 8]<<8) + $final[14];
	$rv .= &to64($l, 4);
	$l = ($final[ 3]<<16) + ($final[ 9]<<8) + $final[15];
	$rv .= &to64($l, 4);
	$l = ($final[ 4]<<16) + ($final[10]<<8) + $final[ 5];
	$rv .= &to64($l, 4);
	$l = $final[11];
	$rv .= &to64($l, 2);

	return $rv;
	}
else {
	local $salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
	return crypt($_[0], $salt);
	}
}

@itoa64 = split(//, "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
sub to64
{
local ($v, $n) = @_;
local $r;
while(--$n >= 0) {
        $r .= $itoa64[$v & 0x3f];
        $v >>= 6;
        }
return $r;
}

1;
   0707010000a3c2000081a40000000000000002000000013ac038900000008e000000200000000000000000000000000000001b00000003reloc/useradmin/defaultacl    noconfig=0
uedit_mode=0
gedit_mode=0
lowuid=0
lowgid=0
ucreate=1
gcreate=1
ugroups=*
logins=*
shells=*
home=/
umultiple=1
gmultiple=1
peopt=1
  0707010000a3c3000081e40000000000000002000000013ac0388f000006d1000000200000000000000000000000000000002100000003reloc/useradmin/delete_group.cgi  #!/usr/local/bin/perl
# delete_group.cgi
# Delete a group, after asking for confirmation

require './user-lib.pl';
&ReadParse();
@glist = &list_groups();
%group = %{$glist[$in{'num'}]};
$| = 1;
&error_setup($text{'gdel_err'});
%access = &get_module_acl();
&can_edit_group(\%access, \%group) || &error($text{'gdel_egroup'});

&header($text{'gdel_title'}, "");
print "<hr>\n";
if ($in{'confirmed'}) {
	# Check for repeat click
	if ($group{'group'} ne $in{'group'}) {
		print "<b>$text{'gdel_ealready'}</b>. <p>\n";
		print "<hr>\n";
		&footer("", $text{'index_return'});
		exit;
		}

	# Go ahead and do it!
	&lock_user_files();
	print "$text{'gdel_group'}<br>\n";
	$ENV{'USERADMIN_GROUP'} = $group{'group'};
	$ENV{'USERADMIN_ACTION'} = 'DELETE_GROUP';
	&making_changes();
	&delete_group(\%group);
	&made_changes();
	&unlock_user_files();
	&webmin_log("delete", "group", $group{'group'}, \%group);
	print "$text{'gdel_done'}<p>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	}
else {
	# check if this is anyone's primary group
	foreach $u (&list_users()) {
		if ($u->{'gid'} == $group{'gid'}) {
			print "<b>",&text('gdel_eprimary', $u->{'user'}),
			      "</b> <p>\n";
			print "<hr>\n";
			&footer("", $text{'index_return'});
			exit;
			}
		}

	# Ask if the user is sure
	print "<form action=delete_group.cgi>\n";
	print "<input type=hidden name=num value=\"$in{'num'}\">\n";
	print "<input type=hidden name=group value=\"$group{'group'}\">\n";
	print "<input type=hidden name=confirmed value=1>\n";
	print "<center><h3>",&text('gdel_sure', $group{'group'}),"</h3>\n";
	print "<input type=submit value=\"$text{'gdel_del'}\">\n";
	print "</center><p>\n";
	print "</form>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	}

   0707010000a3c4000081e40000000000000002000000013ac0388f00000e20000000200000000000000000000000000000002000000003reloc/useradmin/delete_user.cgi   #!/usr/local/bin/perl
# delete_user.cgi
# Delete a user, after asking for confirmation

require './user-lib.pl';
&ReadParse();
&lock_user_files();
@ulist = &list_users();
%user = %{$ulist[$in{'num'}]};
&error_setup($text{'udel_err'});
%access = &get_module_acl();
&can_edit_user(\%access, \%user) || &error($text{'udel_euser'});

$| = 1;
&header($text{'udel_title'}, "");
print "<hr>\n";
if ($in{'confirmed'}) {
	# Check for repeat click
	if ($user{'user'} ne $in{'user'}) {
		print "<b>$text{'udel_ealready'}</b>. <p>\n";
		print "<hr>\n";
		&footer("", $text{'index_return'});
		exit;
		}

	# Go ahead and do it!
	print "$text{'udel_other'}<br>\n";
	&other_modules("useradmin_delete_user", \%user);
	print "$text{'udel_done'}<p>\n";
	
	print "$text{'udel_pass'}<br>\n";
	$ENV{'USERADMIN_USER'} = $user{'user'};
	$ENV{'USERADMIN_ACTION'} = 'DELETE_USER';
	&making_changes();
	&delete_user(\%user);
	print "$text{'udel_done'}<p>\n";

	print "$text{'udel_groups'}<br>\n";
	foreach $g (&list_groups()) {
		@mems = split(/,/, $g->{'members'});
		$idx = &indexof($user{'user'}, @mems);
		if ($idx >= 0) {
			splice(@mems, $idx, 1);
			%newg = %$g;
			$newg{'members'} = join(',', @mems);
			&modify_group($g, \%newg);
			}
		$mygroup = $g if ($g->{'group'} eq $user{'user'});
		}
	print "$text{'udel_done'}<p>\n";

	if ($mygroup && !$mygroup->{'members'}) {
		local $another;
		foreach $ou (&list_users()) {
			$another++ if ($ou->{'gid'} == $mygroup->{'gid'});
			}
		if (!$another) {
			print "$text{'udel_ugroup'}<br>\n";
			&delete_group($mygroup);
			print "$text{'udel_done'}<p>\n";
			}
		}
	&made_changes();

	if ($in{'delhome'} && $user{'home'} !~ /^\/+$/) {
		print "$text{'udel_home'}<br>\n";
		if ($config{'delete_only'}) {
			&lock_file($user{'home'});
			&system_logged("find \"$user{'home'}\" ! -type d -user $user{'uid'} | xargs rm -f >/dev/null 2>&1");
			&system_logged("find \"$user{'home'}\" -type d -user $user{'uid'} | xargs rmdir >/dev/null 2>&1");
			rmdir($user{'home'});
			&unlock_file($user{'home'});
			}
		else {
			&system_logged("rm -rf \"$user{'home'}\" >/dev/null 2>&1");
			}
		print "$text{'udel_done'}<p>\n";
		}
	%p = ( %in, %user );
	&unlock_user_files();
	&webmin_log("delete", "user", $user{'user'}, \%p);

	print "<hr>\n";
	&footer("", $text{'index_return'});
	}
else {
	# Check if something has changed
	if ($user{'user'} ne $in{'user'}) {
		print "<b>$text{'udel_echanged'}</b> <p>\n";
		print "<hr>\n";
		&footer("", $text{'index_return'});
		exit;
		}

	# Ask if the user is sure
	print "<form action=delete_user.cgi>\n";
	print "<input type=hidden name=num value=\"$in{'num'}\">\n";
	print "<input type=hidden name=user value=\"$user{'user'}\">\n";
	print "<input type=hidden name=confirmed value=1>\n";

	if ($user{'home'} ne "/" && -d $user{'home'}) {
		`du -sk \"$user{'home'}\"` =~ /^([0-9]+)/; $size = $1;
		print "<center><h3>",&text('udel_sure', $user{'user'},
					   $user{'home'}, $size),"</h3>\n";
		print "<input type=submit value=\"$text{'udel_del1'}\">\n";
		print "<input name=delhome type=submit ",
		      "value=\"$text{'udel_del2'}\">\n";

		# check for files owned by other users
		@others = `find \"$user{'home'}\" ! -user $user{'uid'} 2>/dev/null`;
		if (@others) {
			print "<h3><font color=#ff0000>",
			      &text('udel_others', "<tt>$user{'home'}</tt>", scalar(@others)),
			      "</font></h3>\n";
			}
		}
	else {
		print "<center><h3>",&text('udel_sure2',
					   $user{'user'}),"</h3>\n";
		print "<input type=submit value=\"$text{'udel_del1'}\">\n";
		}
	print "</form></center>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	}

0707010000a3c5000081e40000000000000002000000013ac0388f00000e6c000000200000000000000000000000000000001f00000003reloc/useradmin/edit_group.cgi    #!/usr/local/bin/perl
# edit_group.cgi
# Display a form for editing or creating a group

require './user-lib.pl';
&ReadParse();
$n = $in{'num'};
%access = &get_module_acl();
if ($n eq "") {
	$access{'gcreate'}==1 || &error($text{'gedit_ecreate'});
	&header($text{'gedit_title2'}, "", "create_group");
	}
else {
	@glist = &list_groups();
	%group = %{$glist[$n]};
	&can_edit_group(\%access, \%group) ||
		&error($text{'gedit_eedit'});
	&header($text{'gedit_title'}, "", "edit_group");
	}

print "<hr><form action=\"save_group.cgi\">\n";
if ($n ne "") {
	print "<input type=hidden name=num value=\"$n\">\n";
	}
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'gedit_details'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td valign=top>",&hlink("<b>$text{'gedit_group'}</b>","ggroup"),
      "</td>\n";
if ($n eq "") {
	print "<td valign=top><input name=group size=10></td>\n";
	}
else {
	print "<td valign=top><font size=+1><i>$group{'group'}",
	      "</i></font></td>\n";
	}

print "<td valign=top>",&hlink("<b>$text{'gedit_gid'}</b>","ggid"),"</td>\n";
if ($n eq "") {
	# Find the first free GID above the base
	&my_setgrent();
	while(@tmp = &my_getgrent()) {
		$used{$tmp[2]}++;
		}
	&my_endgrent();
	$newgid = int($config{'base_gid'} > $access{'lowgid'} ?
			$config{'base_gid'} : $access{'lowgid'});
	while($used{$newgid}) {
		$newgid++;
		}
	print "<td valign=top><input name=gid size=10 value='$newgid'></td>\n";
	}
else {
	print "<td valign=top><input name=gid size=10 ",
	      "value=\"$group{'gid'}\"></td>\n";
	}
print "</tr>\n";

print "<tr> <td valign=top>",&hlink("<b>$text{'pass'}</b>","gpasswd"),"</td>\n";
printf "<td><input type=radio name=passmode value=0 %s> $text{'none2'}<br>\n",
	$group{'pass'} eq "" ? "checked" : "";
printf "<input type=radio name=passmode value=1 %s> $text{'encrypted'}\n",
	$group{'pass'} eq "" ? "" : "checked";
print "<input name=encpass size=13 value=\"$group{'pass'}\"><br>\n";
print "<input type=radio name=passmode value=2 %s> $text{'clear'}\n";
print "<input name=pass size=15></td>\n";

print "<td valign=top>",&hlink("<b>$text{'gedit_members'}</b>","gmembers"),
      "</td>\n";
print "<td><table><tr><td><textarea wrap=auto name=members rows=5 cols=10>",
	join("\n", split(/,/ , $group{'members'})),"</textarea></td>\n";
print "<td valign=top><input type=button onClick='ifield = document.forms[0].members; chooser = window.open(\"my_user_chooser.cgi?multi=1&user=\"+escape(ifield.value), \"chooser\", \"toolbar=no,menubar=no,scrollbars=yes,width=500,height=200\"); chooser.ifield = ifield' value=\"...\"></td></tr></table></td> </tr>\n";
print "</table></td></tr></table><p>\n";

if ($n ne "") {
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'onsave'}</b></td> </tr>\n";
	print "<tr $cb> <td><table>\n";
        print "<tr> <td>",&hlink($text{'chgid'},"gchgid"),"</td>\n";
        print "<td><input type=radio name=chgid value=0 checked> $text{'no'}</td>\n";
        print "<td><input type=radio name=chgid value=1> $text{'gedit_homedirs'}</td>\n";
        print "<td><input type=radio name=chgid value=2> $text{'gedit_allfiles'}</td> </tr>\n";
	print "</table></td> </tr></table><p>\n";
	}
if ($n ne "") {
	print "<table width=100%>\n";
	print "<tr> <td><input type=submit value=\"$text{'save'}\"></td>\n";
	print "</form><form action=\"delete_group.cgi\">\n";
	print "<input type=hidden name=num value=\"$n\">\n";
	print "<td align=right><input type=submit value=\"$text{'delete'}\"></td> </tr>\n";
	print "</form></table><p>\n";
	}
else {
	print "<input type=submit value=\"$text{'create'}\"></form><p>\n";
	}

print "<hr>\n";
&footer("", $text{'index_return'});

0707010000a3d6000081e40000000000000002000000013ac0388e0000378b000000200000000000000000000000000000001e00000003reloc/useradmin/edit_user.cgi #!/usr/local/bin/perl
# edit_user.cgi
# Display a form for editing a user, or creating a new user

require './user-lib.pl';
require 'timelocal.pl';
&ReadParse();
$n = $in{'num'};
%access = &get_module_acl();
if ($n eq "") {
	$access{'ucreate'} || &error($text{'uedit_ecreate'});
	&header($text{'uedit_title2'}, "", "create_user");
	}
else {
	@ulist = &list_users();
	%uinfo = %{$ulist[$n]};
	&can_edit_user(\%access, \%uinfo) || &error($text{'uedit_eedit'});
	&header($text{'uedit_title'}, "", "edit_user");
	}

# build list of used shells and uids
&my_setpwent();
@shlist = ("/bin/sh", "/bin/csh", "/bin/false");
$homebase = "/home";
$homebasemax = 1;
while(@tmp = &my_getpwent()) {
	$used{$tmp[2]}++;
	push(@shlist, $tmp[8]) if ($tmp[8] ne "");
	if ($tmp[7] =~ /^(.*)\/[^\/]+$/) {
		$homebase{$1}++;
		if ($homebase{$1} > $homebasemax) {
			$homebase = $1;
			$homebasemax = $homebase{$1};
			}
		}
	}
&my_endpwent();
open(SHELLS, "/etc/shells");
while(<SHELLS>) {
	s/\r|\n//g;
	s/#.*$//;
	push(@shlist, $_) if (/\S/);
	}
close(SHELLS);

print "<hr><form action=save_user.cgi method=post>\n";
if ($n ne "") {
	print "<input type=hidden name=num value=\"$n\">\n";
	}
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'uedit_details'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td>",&hlink("<b>$text{'user'}</b>","user"),"</td>\n";
if ($n eq "" && $config{'new_user_group'}) {
	$onch = "newgid.value = user.value";
	}
if ($n eq "" && $access{'suggesthome'}) {
	$onch .= "; home.value = \"$homebase/\"+user.value";
	}
print "<td><input name=user size=10 value=\"$uinfo{'user'}\" onChange='$onch'></td>\n";

print "<td>",&hlink("<b>$text{'uid'}</b>","uid"),"</td>\n";
if ($n eq "") {
	# Find the first free UID above the base
	$newuid = int($config{'base_uid'} > $access{'lowuid'} ?
			$config{'base_uid'} : $access{'lowuid'});
	while($used{$newuid}) {
		$newuid++;
		}
	$newuid = $access{'hiuid'}
		if ($access{'hiuid'} && $newuid > $access{'hiuid'});
	print "<td><input name=uid size=10 value='$newuid'></td> </tr>\n";
	}
else {
	print "<td><input name=uid size=10 value='$uinfo{'uid'}'></td> </tr>\n";
	}

print "<tr> <td>",&hlink("<b>$text{'real'}</b>","real"),"</td>\n";
print "<td><input name=real size=20 value=\"$uinfo{'real'}\"></td>\n";

print "<td>",&hlink("<b>$text{'home'}</b>","home"),"</td>\n";
if ($access{'autohome'}) {
	print "<td><tt>",($n eq "" ? $text{'uedit_auto'}
				   : $uinfo{'home'}),"</tt>";
	}
else {
	print "<td><input name=home size=25 value=\"$uinfo{'home'}\">\n",
	      &file_chooser_button("home", 1);
	}
print "</td> </tr>\n";

print "<tr> <td valign=top>",&hlink("<b>$text{'shell'}</b>","shell"),"</td>\n";
print "<td valign=top><select name=shell>\n";
if ($access{'shells'} ne "*") {
	@shlist = %uinfo ? ($uinfo{'shell'}) : ();
	push(@shlist, split(/\s+/, $access{'shells'}));
	$shells = 1;
	}
$shells = 1 if ($access{'noother'});
@shlist = &unique(@shlist);
foreach $s (@shlist) {
	printf "<option value='%s' %s>%s\n", $s,
		$s eq $uinfo{'shell'} ? "selected" : "",
		$s eq "" ? "&lt;None&gt;" : $s;
	}
print "<option value=*>$text{'uedit_other'}\n" if (!$shells);
print "</select></td>\n";

$pass = %uinfo ? $uinfo{'pass'} : $config{'lock_string'};
print "<td valign=top rowspan=4>",&hlink("<b>$text{'pass'}</b>","pass"),
      "</td> <td rowspan=4 valign=top>\n";
printf"<input type=radio name=passmode value=0 %s> %s<br>\n",
	$pass eq "" ? "checked" : "",
	$config{'empty_mode'} ? $text{'none1'} : $text{'none2'};
printf"<input type=radio name=passmode value=1 %s> $text{'nologin'}<br>\n",
	$pass eq $config{'lock_string'} ? "checked" : "";
print "<input type=radio name=passmode value=3> $text{'clear'}\n";
printf "<input %s name=pass size=15><br>\n",
	$config{'passwd_stars'} ? "type=password" : "";
if ($access{'nocrypt'}) {
	printf
	  "<input type=radio name=passmode value=2 %s> $text{'nochange'}\n",
	  $pass && $pass ne $config{'lock_string'} ? "checked" : "";
	print "<input type=hidden name=encpass size=13 value=\"$pass\">\n";
	}
else {
	printf
	  "<input type=radio name=passmode value=2 %s> $text{'encrypted'}\n",
	  $pass && $pass ne $config{'lock_string'} ? "checked" : "";
	printf "<input name=encpass size=13 value=\"%s\">\n",
		$pass && $pass ne $config{'lock_string'} ? $pass : "";
	}
print "</td> </tr>\n";

if (!$shells) {
	print "<tr> <td valign=top>$text{'uedit_other'}</td>\n";
	print "<td valign=top><input size=25 name=othersh>\n";
	print &file_chooser_button("othersh", 0),"</td> </tr>\n";
	print "<tr> <td colspan=2><br></td> </tr>\n";
	}
print "</table></td></tr></table><p>\n";

if (&passfiles_type() == 1 && $access{'peopt'}) {
	# This is a BSD system.. a few extra password options are supported
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'uedit_passopts'}</b></td> </tr>\n";
	print "<tr $cb> <td><table width=100%>\n";
	print "<tr> <td>",&hlink("<b>$text{'change2'}</b>",
				 "change2"),"</td>\n";
	if ($uinfo{'change'}) {
		@tm = localtime($uinfo{'change'});
		$cday = $tm[3];
		$cmon = $tm[4]+1;
		$cyear = $tm[5]+1900;
		$chour = sprintf "%2.2d", $tm[2];
		$cmin = sprintf "%2.2d", $tm[1];
		}
	print "<td>";
	&date_input($cday, $cmon, $cyear, 'change');
	print " &nbsp; <input name=changeh size=3 value=\"$chour\">";
	print ":<input name=changemi size=3 value=\"$cmin\"></td>\n";

	print "<td>",&hlink("<b>$text{'expire2'}</b>","expire2"),"</td>\n";
	if ($uinfo{'expire'}) {
		@tm = localtime($uinfo{'expire'});
		$eday = $tm[3];
		$emon = $tm[4]+1;
		$eyear = $tm[5]+1900;
		$ehour = sprintf "%2.2d", $tm[2];
		$emin = sprintf "%2.2d", $tm[1];
		}
	print "<td>";
	&date_input($eday, $emon, $eyear, 'expire');
	print " &nbsp; <input name=expireh size=3 value=\"$ehour\">";
	print ":<input name=expiremi size=3 value=\"$emin\"></td> </tr>\n";

	print "<tr> <td>",&hlink("<b>$text{'class'}</b>","class"),"</td>\n";
	print "<td><input name=class size=10 value=\"$uinfo{'class'}\"></td>\n";
	print "</tr>\n";
	print "</table></td></tr></table><p>\n";
	}

if (&passfiles_type() == 2 && $access{'peopt'}) {
	# System has a shadow password file as well.. which means it supports
	# password expiry and so on
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'uedit_passopts'}</b></td> </tr>\n";
	print "<tr $cb> <td><table width=100%>\n";
	print "<tr> <td>",&hlink("<b>$text{'change'}</b>","change"),"</td>\n";
	if ($uinfo{'change'}) {
		@tm = localtime(timelocal(gmtime($uinfo{'change'} * 60*60*24)));
		printf "<td>%s/%s/%s</td>\n",
			$tm[3], $text{"smonth_".($tm[4]+1)}, $tm[5]+1900;
		}
	elsif ($n eq "") { print "<td>$text{'uedit_never'}</td>\n"; }
	else { print "<td>$text{'uedit_unknown'}</td>\n"; }

	print "<td>",&hlink("<b>$text{'expire'}</b>","expire"),"</td>\n";
	if ($uinfo{'expire'}) {
		@tm = localtime($uinfo{'expire'} * 60*60*24);
		$eday = $tm[3];
		$emon = $tm[4]+1;
		$eyear = $tm[5]+1900;
		}
	print "<td>";
	&date_input($eday, $emon, $eyear, 'expire');
	print "</td>\n";

	print "<tr> <td>",&hlink("<b>$text{'min'}</b>","min"),"</td>\n";
	print "<td><input size=5 name=min value=\"$uinfo{'min'}\"></td>\n";

	print "<td>",&hlink("<b>$text{'max'}</b>","max"),"</td>\n";
	print "<td><input size=5 name=max value=\"$uinfo{'max'}\"></td></tr>\n";

	print "<tr> <td>",&hlink("<b>$text{'warn'}</b>","warn"),"</td>\n";
	print "<td><input size=5 name=warn value=\"$uinfo{'warn'}\"></td>\n";

	print "<td>",&hlink("<b>$text{'inactive'}</b>","inactive"),"</td>\n";
	print "<td><input size=5 name=inactive ",
	      "value=\"$uinfo{'inactive'}\"></td></tr>\n";

	print "</table></td></tr></table><p>\n";
	}

if (&passfiles_type() == 4 && $access{'peopt'}) {
	# System has extra AIX password information
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'uedit_passopts'}</b></td> </tr>\n";
	print "<tr $cb> <td><table width=100%>\n";

	print "<tr> <td valign=top>",&hlink("<b>$text{'change'}</b>","change"),
	      "</td>\n";
	if ($uinfo{'change'}) {
		@tm = localtime($uinfo{'change'});
		printf "<td valign=top>%s/%s/%s %2.2d:%2.2d:%2.2d</td>\n",
			$tm[3], $text{"smonth_".($tm[4]+1)}, $tm[5]+1900,
			$tm[2], $tm[1], $tm[0];
		}
	elsif ($n eq "") { print "<td valign=top>$text{'uedit_never'}</td>\n"; }
	else { print "<td valign=top>$text{'uedit_unknown'}</td>\n"; }

	print "<td valign=top>",&hlink("<b>$text{'flags'}</b>","flags"),
	      "</td> <td>\n";
	printf "<input type=checkbox name=flags value=admin %s> %s<br>\n",
		$uinfo{'admin'} ? 'checked' : '', $text{'uedit_admin'};
	printf "<input type=checkbox name=flags value=admchg %s> %s<br>\n",
		$uinfo{'admchg'} ? 'checked' : '', $text{'uedit_admchg'};
	printf "<input type=checkbox name=flags value=nocheck %s> %s\n",
		$uinfo{'nocheck'} ? 'checked' : '', $text{'uedit_nocheck'};
	print "</td> </tr>\n";

	print "</table></td></tr></table><p>\n";
	}

# Output group memberships
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'uedit_gmem'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";
print "<tr> <td valign=top>",&hlink("<b>$text{'group'}</b>","group"),
      "</td> <td valign=top>\n";
if ($n eq "" && $access{'gcreate'}) {
	printf "<input type=radio name=gidmode value=1 %s> %s\n",
		$config{'new_user_group'} ? 'checked' : '', $text{'uedit_newg'};
	print "<input name=newgid size=8><br>\n";
	printf "<input type=radio name=gidmode value=0 %s> %s\n",
		$config{'new_user_group'} ? '' : 'checked', $text{'uedit_oldg'};
	}
if ($access{'ugroups'} eq "*") {
	printf "<input name=gid size=8 value=\"%s\">\n",
		$n eq "" ? $config{'default_group'}
			 : &my_getgrgid($uinfo{'gid'});
	print "<input type=button onClick='ifield = document.forms[0].gid; chooser = window.open(\"my_group_chooser.cgi?multi=0&group=\"+escape(ifield.value), \"chooser\", \"toolbar=no,menubar=no,scrollbars=yes,width=300,height=200\"); chooser.ifield = ifield' value=\"...\"></td>\n";
	}
else {
	print "<select name=gid>\n";
	local $cg = %uinfo ? &my_getgrgid($uinfo{'gid'}) : undef;
	@gl = &unique($cg ? ($cg) : (), split(/\s+/, $access{'ugroups'}));
	foreach $g (@gl) {
		printf "<option %s>%s\n",
			$cg eq $g ? "selected" : "", $g;
		}
	print "</select></td>\n";
	}

print "<td valign=top>",&hlink("<b>$text{'uedit_2nd'}</b>","2nd"),"</td>\n";
print "<td><select name=sgid multiple size=5>\n";
map { $gcan{$_}++ } split(/\s+/, $access{'ugroups'});
foreach $g (&list_groups()) {
	@mems = split(/,/ , $g->{'members'});
	local $ismem = &indexof($uinfo{'user'}, @mems) >= 0;
	next if (!$gcan{'*'} && !$gcan{$g->{'group'}} && !$ismem);
	printf "<option value=\"$g->{'gid'}\" %s>$g->{'group'} ($g->{'gid'})\n",
		$ismem ? "selected" : "";
	}
print "</select></td> </tr>\n";
print "</table></td></tr></table><p>\n";

if ($n ne "") {
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'onsave'}</b></td> </tr>\n";
	print "<tr $cb> <td><table>\n";
	print "<tr> <td>",&hlink($text{'uedit_movehome'},
				 "movehome"),"</td>\n";
	print "<td><input type=radio name=movehome value=1 checked> $text{'yes'}</td>\n";
	print "<td><input type=radio name=movehome value=0> $text{'no'}</td> </tr>\n";

	print "<tr> <td>",&hlink($text{'uedit_chuid'},"chuid"),"</td>\n";
	print "<td><input type=radio name=chuid value=0> $text{'no'}</td>\n";
	print "<td><input type=radio name=chuid value=1 checked> ",
	      "$text{'home'}</td>\n";
	print "<td><input type=radio name=chuid value=2> ",
	      "$text{'uedit_allfiles'}</td></tr>\n";

	print "<tr> <td>",&hlink($text{'chgid'},"chgid"),"</td>\n";
	print "<td><input type=radio name=chgid value=0> $text{'no'}</td>\n";
	print "<td><input type=radio name=chgid value=1 checked> ".
	      "$text{'home'}</td>\n";
	print "<td><input type=radio name=chgid value=2> ",
	      "$text{'uedit_allfiles'}</td></tr>\n";
	print "</table></td> </tr></table><p>\n";
	}
else {
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'uedit_oncreate'}</b></td> </tr>\n";
	print "<tr $cb> <td><table>\n";
	print "<tr> <td>",&hlink($text{'uedit_makehome'},"makehome"),"</td>\n";
	print "<td><input type=radio name=makehome value=1 checked> $text{'yes'}</td>\n";
	print "<td><input type=radio name=makehome value=0> $text{'no'}</td> </tr>\n";

	if ($config{'user_files'} =~ /\S/) {
		print "<tr> <td>",&hlink($text{'uedit_copy'},
					 "copy_files"),"</td>\n";
		print "<td><input type=radio name=copy_files ",
		      "value=1 checked> $text{'yes'}</td>\n";
		print "<td><input type=radio name=copy_files ",
		      "value=0> $text{'no'}</td> </tr>\n";
		}
	print "</table></td> </tr></table><p>\n";
	}
if ($n ne "") {
	print "<table width=100%>\n";
	print "<tr> <td><input type=submit value=\"$text{'save'}\"></td>\n";

	print "</form><form action=\"list_logins.cgi\">\n";
	print "<input type=hidden name=username value=\"$uinfo{'user'}\">\n";
	print "<td align=center>\n";
	print "<input type=submit value=\"$text{'uedit_logins'}\"></td>\n";

	if (&foreign_check("sendmail")) {
		&foreign_require("sendmail", "sendmail-lib.pl");
		local %sconfig = &foreign_config("sendmail");
		if (-r $sconfig{'sendmail_cf'} && -x $sconfig{'sendmail_path'} &&
		    &foreign_call("sendmail", "check_sendmail_version",
			&foreign_call("sendmail", "get_sendmailcf"))) {
			print "</form><form action=/sendmail/list_mail.cgi>\n";
			print "<input type=hidden name=user value='$uinfo{'user'}'>\n";
			print "<td align=center>\n";
			print "<input type=submit value='$text{'uedit_mail'}'></td>\n";
			}
		}

	print "</form><form action=\"delete_user.cgi\">\n";
	print "<input type=hidden name=num value=\"$n\">\n";
	print "<input type=hidden name=user value=\"$uinfo{'user'}\">\n";
	print "<td align=right><input type=submit value=\"$text{'delete'}\"></td> </tr>\n";
	print "</form></table><p>\n";
	}
else {
	print "<input type=submit value=\"$text{'create'}\"></form><p>\n";
	}

print "<hr>\n";
&footer("", $text{'index_return'});

# date_input(day, month, year, prefix)
sub date_input
{
print "<input name=$_[3]d size=3 value='$_[0]'>";
print "/<select name=$_[3]m>\n";
local $m;
foreach $m (1..12) {
	printf "<option value=%d %s>%s\n",
		$m, $_[1] eq $m ? 'selected' : '', $text{"smonth_$m"};
	}
print "</select>";
print "/<input name=$_[3]y size=5 value='$_[2]'>";
print &date_chooser_button("$_[3]d", "$_[3]m", "$_[3]y");
}

 0707010000a3d7000081a40000000000000002000000013ac03890000004ed000000200000000000000000000000000000001f00000003reloc/useradmin/freebsd-lib.pl    # freebsd-lib.pl
# Functions for freebsd format last output

# passfiles_type()
# Returns 0 for old-style passwords (/etc/passwd only), 1 for FreeBSD-style
# (/etc/master.passwd) and 2 for SysV (/etc/passwd & /etc/shadow)
sub passfiles_type
{
return 1;
}

# groupfiles_type()
# Returns 0 for normal group file (/etc/group only) and 2 for shadowed
# (/etc/group and /etc/gshadow)
sub groupfiles_type
{
return 0;
}

# open_last_command(handle, user)
sub open_last_command
{
local ($fh, $user) = @_;
open($fh, "last $user |");
}

# read_last_line(handle)
# Parses a line of output from last into an array of
#  user, tty, host, login, logout, period
sub read_last_line
{
$fh = $_[0];
while(1) {
	chop($line = <$fh>);
	if (!$line) { return (); }
	if ($line =~ /^(reboot|shutdown)/) { next; }
	if ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+\-\s+(\S+)\s+\((\d+:\d+)\)/) {
		return ($1, $2, $3, $4, $5 eq "shutdown" ? "Shutdown" :
					$5 eq "crash" ? "Crash" : $5, $6);
		}
	elsif ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+still/) {
		return ($1, $2, $3, $4);
		}
	}
}

# encrypt_password(password)
sub encrypt_password
{
local $salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
return crypt($_[0], $salt);
}

1;

   0707010000a3df000081a40000000000000002000000013ac0388f00001b25000000200000000000000000000000000000001a00000003reloc/useradmin/help.html <body bgcolor=#ffffff>
<title>Users and Groups</title>
<center><img src="images/useradmin.gif"></center><br>
<h2><i>This help page is incomplete</i></h2>
<hr>
<h3>Introduction</h3>
This module allows you to create, edit and delete Unix users and groups.
Typically, there is one Unix user account for each person who wants to
login to your system. In addition, various system programs will have
their own accounts, such as <tt>uucp</tt> or <tt>www</tt>. Every user
belongs to one or more groups, one of which is the primary group for
the user. <p>

The main <tt>Users and Groups</tt> page shows all the local users and
groups on your system. NIS and NIS+ users and groups will not be shown
in the list, because they are not stored locally and cannot be edited.
However, groups can contain NIS users and users can have an NIS group
as their primary group. <p>

If your machine is an NIS or NIS+ server and the table sources
are not <tt>/etc/passwd</tt> and <tt>/etc/group</tt>, you can change the
<a href="../config.cgi?useradmin">module configuration</a> to edit the
appropriate files. The <tt>Command to run after change</tt> parameter can
be set to something like <tt>cd /var/yp ; make</tt> to update NIS maps
after every change to the password and group files. <p>

<hr>
<h3>Editing an Existing User</h3>
To edit a user, just click on the user's name from the list on the
main page. This will display a form in which you can edit the following
user details :<p>
	<ul>
	<li><b>Username</b><br>
	    The name that the user uses to login to the system. Each user
	    must have a unique login name. <p>
	<li><b>Real name</b><br>
	    The user's real name. This is stored in the comment field in
	    the password file. <p>
	<li><b>Encrypted password</b> and <b>Plain text password</b><br>
	    The Unix password file stores passwords in one-way encrypted
	    form only. This means that the form cannot display the user's
	    plain-text password, only the encrypted form. To set a new
	    password for a user you can either enter the password into
	    the <tt>Plain text password</tt> field, or copy and paste an
	    encrypted string into the <tt>Encrypted password</tt> field. <p>
	<li><b>Password type</b><br>
	    If you choose <tt>No password</tt> here, then no password is
	    needed to login to the account. If you choose <tt>Locked</tt>,
	    then no login is allowed. Only if <tt>Normal password</tt> is
	    chosen will the passwords described above be used. <p>
	<li><b>Unix UID</b><br>
	    The UID is the number that the system <b>really</b> uses for
	    controlling access to files. Every user should have a unique
	    UID. If you change the Unix UID, then the <tt>Change UID</tt>
	    option at the bottom of the page determines what happens to
	    files owned by that user. <p>
	<li><b>Home directory</b><br>
	    Every user should have a home directory to store personal files.
	    Typically, user home directories are all located under one
	    parent directory, such as <tt>/home</tt>. <p>
	<li><b>Shell program</b><br>
	    When a user logs into the system, their shell program is run to
	    process whatever commands the user types. If a user has a shell
	    like <tt>/bin/false</tt>, then they will not be able to login.
	    This is useful for users who should only have FTP or email
	    access. <p>
	<li><b>Primary group</b><br>
	    A user's primary group is the group which will usually be
	    assigned to any new files the user creates. If you change the
	    primary group, the <tt>Change GID</tt> option at the bottom
	    of the page controls what happens to files owned by that user
	    and group. <p>
	<li><b>Other groups</b><br>
	    This is a list of all the other groups a user belongs to. Only
	    local groups will be shown, not NIS or NIS+ groups. <p>
	</ul><p>
Some other user properties are only available if your system has a
shadow password file and the module configuration knows about it. They
are :<p>
	<ul>
	<li><b>foo</b><br>
	    foo. <p>
	</ul><p>

<hr>
<h3>Creating a New User</h3>
To create a new user, click on the <tt>Create New User</tt> link below
the list of existing users on the main page. This will display the same
form as is used for editing a user, but with almost all the fields empty.
The only field that will be automatically filled in for you is the UID,
which Webmin will compute by picking a free UID at the end of a sequence
of existing UIDs. <p>

When a new user is created, the user's home directory can be created as
well. To have webmin create and set the permissions on the directory you
specify, choose <tt>Create home directory</tt> at the bottom of the page.
You should do this for all normal users you add. <p>

The <tt>Files to copy</tt> option in the module preferences can be used
to copy various files (such as <tt>.cshrc</tt> or <tt>.profile</tt>) into
the home directory of a newly created user. You should change this
parameter to a space-separated list of files to copy. <p>

<hr>
<h3>Deleting a User</h3>
To delete an existing user, click on the <tt>Delete</tt> button in the
user details form. This will take you to a page asking if you want to
delete the user's home directory as well. Be very careful when choosing
to do this, as some system users have the root directory as their 
home directory. <p>

In general, you should never change the UID, username or shell of system
users such as <tt>root</tt>, <tt>bin</tt> or <tt>nobody</tt>. Doing so
could make your system unusable or unbootable. Do not try to delete any
of these users either, <b>especially</b> <tt>root</tt>. <p>

<hr>
<h3>Editing an Existing Group</h3>
To edit a group, click on the group name from the list of groups on the
main page. This will bring you to a form in which you can edit the
following group properties :
	<ul>
	<li><b>Group name</b><br>
	    The unique name for this group. <p>
	<li><b>Group GID</b><br>
	    Like this UID for a Unix user, this is a number that the system
	    uses to identify the group. Each group should have a unique
	    GID. <p>
	<li><b>Members</b><br>
	    The list of all users in this group. This can include NIS or
	    NIS+ users as well, if they are in use on your system. <p>
	<li><b>Password</b><br>
	    Not used? <p>
	</ul><p>

<hr>
<h3>Creating a New Group</h3>
To create a new group, click on the <tt>Create new group</tt> link 
beneath the list of existing groups. This links to the same form as is
used for editing an existing group, but with all the fields blank except
for the GID. This is automatically filled by finding a free GID for the
new group. <p>

<hr>
<h3>Deleting a Group</h3>
To delete an existing group, click on the <tt>Delete Group</tt> button
on the group details page. This will immediately delete the group without
asking. No files or directories will be deleted though. <p>

<hr>
<a href="/"><img alt="<-" align=middle border=0 src=/images/left.gif></a>
&nbsp;&nbsp;<a href="">Return to module</a><p>
 

   0707010000a3e0000081a40000000000000002000000013ac0388f000004a8000000200000000000000000000000000000001c00000003reloc/useradmin/hpux-lib.pl   # hpux-lib.pl
# Functions for hpux format last output

# passfiles_type()
# Returns 0 for old-style passwords (/etc/passwd only), 1 for FreeBSD-style
# (/etc/master.passwd) and 2 for SysV (/etc/passwd & /etc/shadow)
sub passfiles_type
{
return 0;
}

# groupfiles_type()
# Returns 0 for normal group file (/etc/group only) and 2 for shadowed
# (/etc/group and /etc/gshadow)
sub groupfiles_type
{
return 0;
}

# open_last_command(handle, user)
sub open_last_command
{
local ($fh, $user) = @_;
open($fh, "last -R $user |");
}

# read_last_line(handle)
# Parses a line of output from last into an array of
#  user, tty, host, login, logout, period
sub read_last_line
{
$fh = $_[0];
while(1) {
	chop($line = <$fh>);
	if (!$line) { return (); }
	if ($line =~ /system boot/) { next; }
	if ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+\-\s+(\d+:\d+)\s+\((\d+:\d+)\)/) {
		return ($1, $2, $3, $4, $5, $6);
		}
	elsif ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+still/) {
		return ($1, $2, $3, $4);
		}
	}
}

# encrypt_password(password)
sub encrypt_password
{
local $salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
return crypt($_[0], $salt);
}

1;

0707010000d2cb000041ed0000000000000001000000023ac03ca200000000000000200000000000000000000000000000001700000003reloc/useradmin/images    0707010000d2cc000081a40000000000000002000000013ac0388e000001f2000000200000000000000000000000000000002100000003reloc/useradmin/images/group.gif  GIF89a0 0   鴃d`   222ェnn!Made with GIMP ,    0 0  很0#+Ada &jB)y3K堛=hxK0F螎殼P0袱+qj4X9Wo銏2b鯅萁歕h$.+嫒促VdY踻 wwdJriR倄oeg}u媘y{哊慱搙z=t墥沘c帍2
9剄棤雹砊1窺患絝惄伮b璌s~辽晠课猜ギg?]娀堤谯粘,.ㄡ海譑?盖o-./葖<4k9b牊楦"╣G9,,$Wl	| 繶9p瓳跂蜷"g椋"5)僑$!儕癲2「}3韢博N` \&B憩B$茄(晩a嫆H2q`慴Wd5襽>^42Q瞏^h!Q{啳Xㄏ廃岽B}怾 7瓼2~1 *勛煷磒h劚dce!揕卹幎朥Zy-g1炪鯭0G笽&彴垆@ ;  0707010000d2cd000081a40000000000000002000000013ac0388e00000186000000200000000000000000000000000000002000000003reloc/useradmin/images/icon.gif   GIF89a0 0      fff烫!    ,    0 0  ⻊彥隧&X
厧躲OG~J:"ㄘ芫涄-`愓坶8A醡5榈宐啽U(姖旿秺nRfF6#8_砪_踂TfJ力7@q坵 g(鰓@s羧w枛鴓t贅y'篱偃&h皯$宸:[v儤踄囀餣:瑳眤覉4琫滒!都鸆槣J扲e工骰M躪M編-{巆))㖞~J蚙_m 進u&)骔僪x,0麌/犅hN`瀀馺<朻LLn|t罧婽聶e%=螙塣嬜瓚'Y<喪張⑵- 萒Po:昮U4>燜佃幈d藲[  ;  0707010000d2ce000081a40000000000000002000000013ac0388e000000df000000200000000000000000000000000000002000000003reloc/useradmin/images/user.gif   GIF87a0 0   鴃d`      ,    0 0  竸彥隧蹿婳倠|mb'敔$i瀺
s炈膒塵:缷眫类虶3
sI豻>'閿
睳u2踋a3a咶G|镶N5=h舋拽'G魫襐膏槰嵴X用閔蔫RG箼xx箐)鲣1R鴛T磖gr:7楘z9聒jfp3K)V'\k,|琸J枌K娭;G霵  ; 0707010000a3e1000081e40000000000000002000000013ac0388e00002472000000200000000000000000000000000000001a00000003reloc/useradmin/index.cgi #!/usr/local/bin/perl

require './user-lib.pl';
&header($text{'index_title'}, "", "intro", 1, 1);
$formno = 0;
%access = &get_module_acl();

@ulist = @allulist = &list_users();
@glist = @allglist = &list_groups();
foreach $g (@allglist) {
	$usedgid{$g->{'gid'}} = $g;
	}

# List all local users
if ($access{'uedit_mode'} == 1) {
	@ulist = ();
	}
elsif ($access{'uedit_mode'} == 2) {
	map { $canu{$_}++ } split(/\s+/, $access{'uedit'});
	@ulist = grep { $canu{$_->{'user'}} } @ulist;
	}
elsif ($access{'uedit_mode'} == 3) {
	map { $cannotu{$_}++ } split(/\s+/, $access{'uedit'});
	@ulist = grep { !$cannotu{$_->{'user'}} } @ulist;
	}
elsif ($access{'uedit_mode'} == 4) {
	@ulist = grep {
		(!$access{'uedit'} || $_->{'uid'} >= $access{'uedit'}) &&
		(!$access{'uedit2'} || $_->{'uid'} <= $access{'uedit2'})
			} @ulist;
	}
elsif ($access{'uedit_mode'} == 5) {
	map { $cangid{$_}++ } split(/\s+/, $access{'uedit'});
	@ulist = grep { $cangid{$_->{'gid'}} } @ulist;
	}
if (@ulist > $config{'display_max'}) {
	# Display user search form
	print "<hr>\n";
	print "<b>$text{'index_toomany'}</b><br>\n";
	print "<form action=search_user.cgi>\n";
	print &hlink("<b>$text{'index_find'}</b>","findform"),
	      " <select name=field>\n";
	print "<option value=user checked>$text{'user'}\n";
	print "<option value=real>$text{'real'}\n";
	print "<option value=shell>$text{'shell'}\n";
	print "<option value=home>$text{'home'}\n";
	print "<option value=uid>$text{'uid'}\n";
	print "</select> <select name=match>\n";
	print "<option value=0 checked>$text{'index_equals'}\n";
	print "<option value=1>$text{'index_matches'}\n";
	print "<option value=2>$text{'index_nequals'}\n";
	print "<option value=3>$text{'index_nmatches'}\n";
	print "</select> <input name=what size=15>&nbsp;&nbsp;\n";
	print "<input type=submit value=\"$text{'find'}\"></form>\n";
	$formno++;
	}
elsif (@ulist) {
	# Display a table of all users
	print "<hr>\n";
	if ($config{'sort_mode'} == 1) {
		@ulist = sort { $a->{'user'} cmp $b->{'user'} } @ulist;
		}
	elsif ($config{'sort_mode'} == 2) {
		@ulist = sort { lc($a->{'real'}) cmp lc($b->{'real'}) } @ulist;
		}
	elsif ($config{'sort_mode'} == 3) {
		@ulist = sort { @wa = split(/\s+/, $a->{'real'});
				@wb = split(/\s+/, $b->{'real'});
				lc($wa[@wa-1]) cmp lc($wb[@wb-1]) } @ulist;
		}
	elsif ($config{'sort_mode'} == 4) {
		@ulist = sort { $a->{'shell'} cmp $b->{'shell'} } @ulist;
		}
	if ($access{'icons'}) {
		# Show an icon for each user
		print "<h3>$text{'index_users'}</h3>\n";
		local @icons = map { "images/user.gif" } @ulist;
		local @links = map { "edit_user.cgi?num=$_->{'num'}" } @ulist;
		local @titles = map { $_->{'user'} } @ulist;
		&icons_table(\@links, \@titles, \@icons, 5);
		}
	elsif ($config{'display_mode'} == 2) {
		# Show usernames under groups
		foreach $u (@ulist) {
			push(@{$ug{$u->{'gid'}}}, $u);
			}
		print "<table width=100% border>\n";
		print "<tr $tb> <td><b>$text{'index_ugroup'}</b></td> ",
		      "<td><b>$text{'index_users'}</b></td> </tr>\n";
		foreach $g (keys %ug) {
			print "<tr $cb> <td width=20%><b>",
			      "$usedgid{$g}->{'group'}</b></td>\n";
			print "<td width=80%><table width=100% ",
			      "cellpadding=0 cellspacing=0>\n";
			$i = 0;
			foreach $u (@{$ug{$g}}) {
				if ($i%4 == 0) { print "<tr>\n"; }
				print "<td width=25%><a href=\"edit_user.cgi?",
				      "num=$u->{'num'}\">",
				      "$u->{'user'}</a></td>\n";
				if ($i%4 == 3) { print "</tr>\n"; }
				$i++;
				}
			print "</table></td> </tr>\n";
			}
		print "</table>\n";
		}
	elsif ($config{'display_mode'} == 1) {
		# Show names, real names, home dirs and shells
		print "<h3>$text{'index_users'}</h3>\n";
		print "<table width=100% border>\n";
		print "<tr $tb> <td><b>$text{'user'}</b></td> ",
		      "<td><b>$text{'uid'}</b></td> ",
		      "<td><b>$text{'real'}</b></td> ",
		      "<td><b>$text{'home'}</b></td> ",
		      "<td><b>$text{'shell'}</b></td> </tr>\n";
		foreach $u (@ulist) {
			print "<tr $cb> <td><a href='edit_user.cgi?",
			      "num=$u->{'num'}'>$u->{'user'}</a></td> ",
			      "<td>$u->{'uid'}</td> ",
			      "<td>",&ifblank($u->{'real'}),"</td> ",
			      "<td>",&ifblank($u->{'home'}),"</td> ",
			      "<td>",&ifblank($u->{'shell'}),"</td> </tr>\n";
			}
		print "</table>\n";
		}
	else {
		# Just show names
		print "<table width=100% border>\n";
		print "<tr $tb> <td><b>$text{'index_users'}</b></td> </tr>\n";
		print "<tr $cb> <td><table width=100%>\n";
		for($i=0; $i<@ulist; $i++) {
			if ($i%4 == 0) { print "<tr>\n"; }
			print "<td><a href=\"edit_user.cgi?",
			      "num=$ulist[$i]->{'num'}\">",
			      "$ulist[$i]->{'user'}</a></td>\n";
			if ($i%4 == 3) { print "</tr>\n"; }
			}
		print "</table></td> </tr></table>\n";
		}
	}
elsif ($access{'ucreate'}) {
	print "<hr>\n";
	print "<b>$text{'index_notusers'}</b>. <p>\n";
	}
if ($access{'ucreate'}) {
	local $cancreate;
	if ($access{'hiuid'} && !$access{'umultiple'}) {
		foreach $u (@allulist) {
			$useduid{$u->{'uid'}}++;
			}
		for($i=int($access{'lowuid'}); $i<=$access{'hiuid'}; $i++) {
			if (!$useduid{$i}) {
				$cancreate = 1;
				last;
				}
			}
		}
	else { $cancreate = 1; }
	if ($cancreate) {
		print "<a href=\"edit_user.cgi\">",
		      "$text{'index_createuser'}</a>\n";
		if ($access{'uedit_mode'} == 0 && $access{'lowuid'} == 0 &&
		    $access{'ugroups'} eq '*' && $access{'shells'} eq '*' &&
		    $access{'peopt'} && $access{'home'} eq '/') {
			print "&nbsp;&nbsp;<a href=\"batch_form.cgi\">",
			      "$text{'index_batch'}</a>\n";
			}
		print "<p>\n";
		}
	else {
		print "$text{'index_nomoreusers'}<p>\n";
		}
	}

# List all local groups
if ($access{'gedit_mode'} == 1) {
	@glist = ();
	}
elsif ($access{'gedit_mode'} == 2) {
	map { $cang{$_}++ } split(/\s+/, $access{'gedit'});
	@glist = grep { $cang{$_->{'group'}} } @glist;
	}
elsif ($access{'gedit_mode'} == 3) {
	map { $cannotg{$_}++ } split(/\s+/, $access{'gedit'});
	@glist = grep { !$cannotg{$_->{'group'}} } @glist;
	}
elsif ($access{'gedit_mode'} == 4) {
	@glist = grep {
		(!$access{'gedit'} || $_->{'gid'} >= $access{'gedit'}) &&
		(!$access{'gedit2'} || $_->{'gid'} <= $access{'gedit2'})
			} @glist;
	}
if (@glist > $config{'display_max'}) {
	# Display group search form
	print "<hr>\n";
	print "<b>$text{'index_gtoomany'}</b><br>\n";
	print "<form action=search_group.cgi>\n";
	print &hlink("<b>$text{'index_gfind'}</b>","gfindform"),
	      " <select name=field>\n";
	print "<option value=group checked>$text{'gedit_group'}\n";
	print "<option value=members>$text{'gedit_members'}\n";
	print "<option value=gid>$text{'gedit_gid'}\n";
	print "</select> <select name=match>\n";
	print "<option value=0 checked>$text{'index_equals'}\n";
	print "<option value=1>$text{'index_matches'}\n";
	print "<option value=2>$text{'index_nequals'}\n";
	print "<option value=3>$text{'index_nmatches'}\n";
	print "</select> <input name=what size=15>&nbsp;&nbsp;\n";
	print "<input type=submit value=\"$text{'find'}\"></form>\n";
	$formno++;
	}
elsif (@glist) {
	print "<hr>\n";
	if ($config{'sort_mode'}) {
		@glist = sort { $a->{'group'} cmp $b->{'group'} } @glist;
		}
	if ($access{'icons'}) {
		# Show an icon for each group
		print "<h3>$text{'index_groups'}</h3>\n";
		local @icons = map { "images/group.gif" } @glist;
		local @links = map { "edit_group.cgi?num=$_->{'num'}" } @glist;
		local @titles = map { $_->{'group'} } @glist;
		&icons_table(\@links, \@titles, \@icons, 5);
		}
	elsif ($config{'display_mode'} == 1) {
		# Display group name, ID and members
		print "<h3>$text{'index_groups'}</h3>\n";
		print "<table border width=100%>\n";
		print "<tr $tb> <td><b>$text{'gedit_group'}</b></td> ",
		      "<td><b>$text{'gedit_gid'}</b></td> ",
		      "<td><b>$text{'gedit_members'}</b></td> </tr>\n";
		foreach $g (@glist) {
			print "<tr $cb> <td><a href='edit_group.cgi?",
			      "num=$g->{'num'}'>$g->{'group'}</a></td> ",
			      "<td>$g->{'gid'}</td> ",
			      "<td>",&ifblank($g->{'members'}),"</td> </tr>\n";
			}
		print "</table>\n";
		}
	else {
		# Just display group names
		print "<table width=100% border>\n";
		print "<tr $tb> <td><b>$text{'index_groups'}</b></td> </tr>\n";
		print "<tr $cb> <td><table width=100%>\n";
		for($i=0; $i<@glist; $i++) {
			if ($i%4 == 0) { print "<tr>\n"; }
			print "<td><a href=\"edit_group.cgi?",
			      "num=$glist[$i]->{'num'}\">",
			      "$glist[$i]->{'group'}</a></td>\n";
			if ($i%4 == 3) { print "</tr>\n"; }
			}
		print "</table></td> </tr></table>\n";
		}
	}
elsif ($access{'gcreate'} == 1) {
	print "<hr>\n";
	print "<b>$text{'index_notgroups'}</b>. <p>\n";
	}
if ($access{'gcreate'} == 1) {
	local $cancreate;
	if ($access{'higid'} && !$access{'gmultiple'}) {
		for($i=int($access{'lowgid'}); $i<=$access{'higid'}; $i++) {
			if (!$usedgid{$i}) {
				$cancreate = 1;
				last;
				}
			}
		}
	else { $cancreate = 1; }
	if ($cancreate) {
		print "<a href=\"edit_group.cgi\">$text{'index_creategroup'}</a> <p>\n";
		}
	else {
		print "$text{'index_nomoregroups'}<p>\n";
		}
	}

if ($access{'logins'}) {
	print "<hr>\n";
	print "<form action=list_logins.cgi>\n";
	print "<input type=submit value=\"$text{'index_logins'}\">\n";
	print "<input name=username size=8> ",
		&user_chooser_button("username",0,$formno),"</form>\n";
	}

print "<hr>\n";
&footer("/", $text{'index'});
 
sub ifblank
{
return $_[0] ? $_[0] : "&nbsp;";
}

  0707010000a3f9000081a40000000000000002000000013ac03890000004ef000000200000000000000000000000000000001c00000003reloc/useradmin/irix-lib.pl   # irix-lib.pl
# Functions for irix password file format

# passfiles_type()
# Returns 0 for old-style passwords (/etc/passwd only), 1 for FreeBSD-style
# (/etc/master.passwd) and 2 for SysV (/etc/passwd & /etc/shadow)
sub passfiles_type
{
return &password_file($config{'shadow_file'}) ? 2 : 0;
}

# groupfiles_type()
# Returns 0 for normal group file (/etc/group only) and 2 for shadowed
# (/etc/group and /etc/gshadow)
sub groupfiles_type
{
return 0;
}

# open_last_command(handle, user)
sub open_last_command
{
local ($fh, $user) = @_;
open($fh, "last $user |");
}

# read_last_line(handle)
# Parses a line of output from last into an array of
#  user, tty, host, login, logout, period
sub read_last_line
{
local $fh = $_[0];
while(1) {
	chop($line = <$fh>);
	if (!$line) { return (); }
	if ($line =~ /system boot/ || $line =~ /^tcp\s/) { next; }
	if ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+\-\s+(\d+:\d+)\s+\((\d+:\d+)\)/) {
		return ($1, $2, $3, $4, $5, $6);
		}
	elsif ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+still/) {
		return ($1, $2, $3, $4);
		}
	}
}

# encrypt_password(password)
sub encrypt_password
{
local $salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
return crypt($_[0], $salt);
}

1;

 07070100011850000041ed0000000000000001000000023ac03ca400000000000000200000000000000000000000000000001500000003reloc/useradmin/lang  07070100011851000081a40000000000000002000000013ac0388f000025ec000000200000000000000000000000000000001800000003reloc/useradmin/lang/de   index_title=Benutzer und Gruppen
index_toomany=Es gibt zu viele Benutzer auf diesem System um sie alle auf einer Seite anzuzeigen
index_find=Finde Benutze deren
index_users=Lokale Benutzer
index_notusers=Sie haben keine Berechtigung, Benutzer auf diesem System zu bearbeiten
index_createuser=Neuen Benutzer erstellen
index_nomoreusers=Sie haben keine Berechtigung, weitere Benutzer anzulegen
index_groups=Lokale Gruppen
index_notgroups=Sie haben keine Berechtigung, Gruppen auf diesem System zu bearbeiten
index_creategroup=Neue Gruppe erstellen
index_nomoregroups=Sie haben keine Berechtigung, weitere Gruppen zu erstellen
index_logins=Zeige Logins f&uuml;r
index_return=Benutzer und Gruppen Liste
index_equals=gleich
index_matches=enth&auml;lt
index_nequals=nicht gleich
index_nmatches=enth&auml;lt nicht

search_title=Such Ergebnisse

uedit_title=Benutzer bearbeiten
uedit_title2=Benutzer erstellen
uedit_details=Benutzer-Details
user=benutzername
uid=Benutzer ID
real=Wirklicher Name
pass=Passwort
none1=Frage bei erstem Login
none2=Kein Passwort ben&ouml;tigt
nologin=Kein Login erlaubt
encrypted=Verschl&uuml;sselte Passwort
clear=Klartext Passwort
home=Heimat-Verzeichnis
uedit_auto=Automatisch
shell=Shell
uedit_other=Andere..
uedit_passopts=Passwort Einstellungen
change2=Passwort &Auml;nderungs-Zeit
expire2=Ablaufzeit des Zugangs
class=Login Klasse
change=Passwort ge&auml;ndert
uedit_never=Niemals
uedit_unknown=Unbekannt
expire=Ablauf Datum
min=Minimale Anzahl Tage
max=Maximale Anzahl Tage
warn=Warnung nach Tagen
inactive=Inaktiv Tage
uedit_gmem=Gruppen-Zugeh&ouml;rigkeit
group=Prim&auml;re Gruppe
uedit_newg=Neue Gruppe
uedit_oldg=Existierende Gruppe
uedit_2nd=Sekund&auml;re Gruppe
onsave=Beim Speichern..
uedit_movehome=Verschieben Heimatverzeichnis wenn ge&auml;ndert?
uedit_chuid=&Auml;ndere Benutzer ID von Dateien?
uedit_allfiles=Alle Dateien
chgid=&Auml;ndere Gruppen ID von Dateien?
uedit_oncreate=Bei Erstellen..
uedit_makehome=Erstelle Heimatverzeichnis?
uedit_copy=Kopiere Dateien zu Heimatverzeichnis?
uedit_logins=Zeige Logins
uedit_mail=Email lesen
uedit_ecreate=Sie haben keine Berechtigung, einen neuen Benutzer anzulegen
uedit_eedit=Sie haben keine Berechtigung, diesen Benutzer zu bearbeiten

usave_err=Fehler beim Speichern des Benutzers
usave_eedit=Sie haben keine Berechtigund, diesen Benutzer zu bearbeiten
usave_ecreate=Sie haben keine Berechtigung, neue Benutzer zu erstellen
usave_ebadname='$1' ist kein g&uuml;ltiger Benutzername
usave_einuse=Der Benutzername '$1' wird bereits benutzt
usave_einuseg=Der Gruppenname '$1' wird bereits benutzt
usave_erename=Sie haben keine Berechtigung, Benutzer umzubennen
usave_euid='$1' ist keine g&uuml;ltige UID
usave_elowuid=UID muss gr&ouml;sser oder gleich $1 sein
usave_ehiuid=UID muss kleiner oder gleich $1 sein
usave_euidused=Benutzer $1 benutzt bereits UID $2
usave_ereal='$1' ist kein g&uuml;ltiger wirklicher Name
usave_ehome='$1' ist kein g&uuml;ltiges Heimatverzeichnis
usave_ehomepath=Sie haben keine Berechtigung, das Heimatverzeichnis $1 zu erstellen
usave_eshell='$1' ist keine g&uuml;ltige Shell
usave_egid='$1' ist keine g&uuml;ltige Gruppe
usave_egcreate=Sie haben keine Berechtigung, eine neue Gruppe f&uuml;r neue Benutzer anzulegen
usave_eprimary=Sie haben keine Berechtigung, diesen Benutzer zur prim&auml;ren Gruppe $1 hinzuzuf&uuml;gen
usave_esecondary=Sie haben keine Berechtigung, diesen Benutzer zur sekund&auml;ren Gruppe $1 hinzuzuf&uuml;gen
usave_eprimaryr=Sie haben keine Berechtigung, diesen Benutzer aus der prim&auml;ren Gruppe $1 zu l&ouml;schen
usave_esecondaryr=Sie haben keine Berechtigung, diesen Benutzer aus der sekund&auml;ren Gruppe $1 zu l&ouml;schen
usave_emin='$1' ist kein g&uuml;ltiger minimaler &Auml;nderungs-Zeitraum
usave_emax='$1' ist kein g&uuml;ltiger maximaler &Auml;nderungs-Zeitraum
usave_ewarn='$1' ist kein g&uuml;ltiger Warnungs-Zeitraum
usave_einactive='$1' ist kein g&uuml;ltiger Inaktiv-Zeitraum
usave_eexpire=Ung&uuml;ltiges Ablaufdatum
usave_echange=Ung&uuml;ltiges &Auml;nderungsdatum
usave_eclass='$1' ist keine g&uuml;ltige Login Klasse
usave_emove=Fehler beim Verschieben des Heimatverzeichnisses : $1
usave_emkdir=Fehler beim Erstellen des Heimatverzeichnisses : $1
usave_echown=Fehler beim chown des Heimatverzeichnisses : $1
usave_echmod=Fehler beim chmod des Heimatverzeichnisses : $1

gedit_title=Gruppe bearbeiten
gedit_title2=Gruppe erstellen
gedit_details=Gruppen-Details
gedit_group=Gruppen Name
gedit_gid=Gruppen ID
gedit_members=Mitglieder
gedit_homedirs=Heimatverzeichnisse
gedit_allfiles=Alle Dateien

gsave_err=Fehler beim Speichern der Gruppe
gsave_eedit=Sie haben keine Berechtigung, diese Gruppe zu bearbeiten
gsave_ecreate=Sie haben keine Berechtigung, neue Gruppen zu erstellen
gsave_ebadname='$1' ist kein g&uuml;ltiger Gruppenname
gsave_einuse=Der Gruppenname '$1' wird bereits genutzt
gsave_egid='$1' ist keine g&uuml;ltige GID
usave_elowgid=GID muss gr&ouml;sser oder gleich $1 sein
usave_ehigid=GID muss kleiner oder gleich $1 sein
usave_egidused=Gruppe $1 benutzt bereits GID $2
usave_efromroot=Sie k&ouml;nnen das Heimatverzeichnis nicht von / verschieben
usave_etoroot=Sie k&ouml;nnen das Heimatverzeichnis nicht nach / verschieben

logins_title=Aufgezeichnete Logins
logins_head=Aufgezeichnete Logins f&uuml;r $1
logins_from=Login von
logins_tty=TTY
logins_in=Login am
logins_out=Logout am
logins_for=Eingeloggt f&uuml;r
logins_still=Immer noch eingeloggt
logins_none=Keine Logins aufgezeichnet

udel_title=Benutzer loeschen
udel_err=Fehler beim l&ouml;schen des Benutzers
udel_euser=Sie haben keine Berechtigung, diesen Benutzer zu l&ouml;schen
udel_ealready=Dieser Benutzer wurde bereits gel&ouml;scht
udel_echanged=Passwort Datei wurde ver&auml;ndert. Bitte kehren Sie zur Benutzerliste zur&uuml;ck und w&auml;hlen Sie diesen Benutzer erneut.
udel_other=L&ouml;sche aus anderen Modulen ..
udel_pass=L&ouml;sche Eintrag in Passwort Datei ..
udel_groups=Entferne aus Gruppen ..
udel_ugroup=L&ouml;sche die Gruppe dieses Benutzers ..
udel_home=L&ouml;sche Heimatverzeichnis ..
udel_done=.. Fertig
udel_sure=Sind Sie sicher, dass Sie den Benutzer $1 l&ouml;schen wollen? Das Heimatverzeichnis $2 enth&auml;lt $3 kB an Daten
udel_sure2=Sind Sie sicher, dass Sie den Benutzer $1 l&ouml;schen wollen?
udel_del1=Benutzer l&ouml;schen
udel_del2=Benutzer und Heimatverzeichnis l&ouml;schen

gdel_title=Gruppe loeschen
gdel_err=Fehler beim L&ouml;schen der Gruppe
gdel_egroup=Sie haben keine Berechtigung, diese Gruppe zu l&ouml;schen
gdel_ealready=Diese Gruppe wurde bereits gel&ouml;scht
gdel_group=L&ouml;sche Eintrag in Gruppen-Datei ..
gdel_done=.. Fertig
gdel_eprimary=Dies ist dir prim&auml;re Gruppe des Benutzers $1
gdel_sure=Sind Sie sicher, dass Sie die Gruppe $1 l&ouml;schen wollen?
gdel_del=Gruppe l&ouml;schen

many_title=Mehrere Benutzer erstellen
many_desc=Dieses Formular gestattet es Ihnen, mehrere Benutzer auf einmal zu erstellen entweder durch eine hochgeladene oder durch eine lokale Datei. Jede Zeile in der Datei spezifiziert einen Benutzer mit dem folgenden Format:
many_desc2=Benutzername:Passwort:UID:GID:Echter Name:Heimatverzeichnis:Shell:Min:Max:Warnung:Inaktiv:L&auml;ft ab
many_desc1=Benutzername:Passwort:UID:GID:Echter Name:Heimatverzeichnis:Shell:Klasse:&Auml;ndern:L&auml;uft ab
many_desc0=Benutzername:Passwort:UID:GID:Echter Name:Heimatverzeichnis:Shell
many_descafter=Wenn das <tt>UID</tt> Feld leer ist, wird Webmin automatisch eine UID zuweisen. Die Felder <tt>Benutzername</tt>, <tt>GID</tt>, <tt>Heimatverzeichnis</tt> und <tt>Shell</tt> m&uuml;ssen f&uuml;r jeden Benutzer angegeben werden - alle anderen Felder f&uuml;rfen leer sein
many_file=Hochgeladene Datei mit neuen Benutzern
many_local=Lokale Datei mit neuen Benutzern
many_makehome=Erstelle Heimatverzeichnisse?
many_copy=Kopiere Dateien in Heimatverzeichnisse?
many_upload=Erstelle Benutzer
many_elocal=Lokale Datei nicht gefunden
many_efile=Keine Datei f&uuml;r Upload ausgew&auml;hlt
many_elen=Zeile $1 enth&auml;lt kein $2 Feld
many_euser=Doppelter Benutzername in Zeile $1 : $2
many_egid=Ung&uuml;ltige GID in Zeile $1 : $2
many_ehome=Ung&uuml;ltiges Heimatverzeichnis in Zeile $1 : $2
many_eshell=Ung&uuml;ltige Shell in Zeile $1 : $2
many_emkdir=Das Erstellen des Heimatverzeichnisses schlug fehl $1 : $2
many_ok=Erstelle Benutzer $1

acl_uedit=Unix Benutzer, die bearbeitet werden k&ouml;nnen
acl_uedit_all=Alle Benutzer
acl_uedit_none=Keine Benutzer
acl_uedit_only=Nur Benutzer
acl_uedit_except=Alle, ausser Benutzer
acl_uedit_uid=Benutzer mit UIDs im Bereich
acl_uedit_group=Benutzer mit Gruppe
acl_ucreate=Darf neue Benutzer erstellen?
acl_uid=UIDs f&uuml;r neue oder modifizierte Benutzer
acl_umultiple=Mehrere Benutzer k&ouml;nnen die gleiche UID haben
acl_ugroups=Erlaubte Gruppen f&uuml;r neue oder modifizierte Benutzer
acl_all=Alle
acl_shells=Erlaubte Shells f&uuml;r neue oder modifizierte Benutzer
acl_any=Alle
acl_listed=Aufgelistete..
acl_home=Heimatverzeichnisse m&uuml;ssen Unterverzeichnis sein von
acl_autohome=Heimatverzeichnis ist immer das gleiche wie der Benutzername
acl_gedit=Unix Gruppen, die bearbeitet werden d&uuml;rfen Unix groups who can be edited
acl_gedit_all=Alle Gruppen
acl_gedit_none=keine Gruppen
acl_gedit_only=Nur Gruppen
acl_gedit_except=Alle, ausser Gruppen
acl_gedit_gid=Gruppen mit GID im Bereich
acl_gcreate=Darf neue Gruppen erstellen?
acl_gnew=Nur f&uuml;r neue Benutzer
acl_gid=GIDs f&uuml;r neue oder modifizierte Gruppen
acl_gmultiple=Mehrere Gruppen k&ouml;nnen dieselbe GID haben
acl_logins=Darf Logins anzeigen von
acl_lnone=Keine Benutzer
acl_lall=Alle Benutzer
acl_epeopt=Darf Ablaufzeiten der Passw&ouml;rter bearbeiten?
acl_egp=Darf Gruppen Passw&ouml;rter bearbeiten?

07070100011852000081a40000000000000002000000013ac0388f00002e92000000200000000000000000000000000000001800000003reloc/useradmin/lang/en   index_title=Users and Groups
index_toomany=There are too many users on your system to display on one page
index_find=Find users whose
index_gtoomany=There are too many groups on your system to display on one page
index_gfind=Find groups whose
index_ugroup=Primary Group
index_users=Local Users
index_notusers=You are not allowed to edit any users on this system
index_createuser=Create a new user
index_batch=Create, modify and delete users from batch file
index_nomoreusers=You are not allowed to create any more users
index_groups=Local Groups
index_notgroups=You are not allowed to edit any groups on this system
index_creategroup=Create a new group
index_nomoregroups=You are not allowed to create any more groups
index_logins=Display logins by
index_return=users and groups list
index_equals=equals
index_matches=matches
index_nequals=not equals
index_nmatches=not matches

search_title=Search Results
search_notfound=No matching users found
search_gnotfound=No matching groups found

uedit_title=Edit User
uedit_title2=Create User
uedit_details=User Details
user=Username
uid=User ID
real=Real name
pass=Password
none1=Ask at first login
none2=No password required
nologin=No login allowed
encrypted=Pre-encrypted password
nochange=Leave unchanged
clear=Normal password
home=Home directory
uedit_auto=Automatic
shell=Shell
uedit_other=Other..
uedit_passopts=Password Options
change2=Password change time
expire2=Account expiry time
class=Login class
change=Password changed
flags=Account flags
uedit_never=Never
uedit_unknown=Unknown
expire=Expiry date
min=Minimum days
max=Maximim days
warn=Warning days
inactive=Inactive days
uedit_gmem=Group Membership
group=Primary group
uedit_newg=New group
uedit_oldg=Existing group
uedit_2nd=Secondary groups
onsave=Upon Save..
uedit_movehome=Move home directory if changed?
uedit_chuid=Change user ID on files?
uedit_allfiles=All files
chgid=Change group ID on files?
uedit_oncreate=Upon Creation..
uedit_makehome=Create home directory?
uedit_copy=Copy files to home directory?
uedit_logins=Show Logins
uedit_mail=Read Email
uedit_ecreate=You cannot create new users
uedit_eedit=You cannot edit this user
uedit_admin=Only root can change password
uedit_admchg=User must choose new password
uedit_nocheck=Don't check password restrictions

usave_err=Failed to save user
usave_eedit=You cannot edit this user
usave_ecreate=You cannot create new users
usave_ebadname='$1' is not a valid username
usave_einuse=the username '$1' is already in use
usave_einuse_a=the username '$1' is already in use by a mail alias
usave_einuseg=the group name '$1' is already in use
usave_erename=You are not allowed to rename users
usave_euid='$1' is not a valid UID
usave_elowuid=UID must be greater than or equal to $1
usave_ehiuid=UID must be less than or equal to $1
usave_euidused=User $1 is already using UID $2
usave_ereal='$1' is not a valid real name
usave_ehome='$1' is not a valid home directory
usave_ehomepath=You are not allowed to create the home directory $1
usave_eshell='$1' is not an allowable shell
usave_egid='$1' is not a valid group
usave_egcreate=You are not allowed to create new groups for new users
usave_eprimary=You are not allowed to add this user to the primary group $1
usave_esecondary=You are not allowed to add this user to the secondard group $1
usave_eprimaryr=You are not allowed to remove this user from the primary group $1
usave_esecondaryr=You are not allowed to remove this user from the secondary group $1
usave_emin='$1' is not a valid minimum change period
usave_emax='$1' is not a valid maximum change period
usave_ewarn='$1' is not a valid warning period
usave_einactive='$1' is not a valid inactive period
usave_eexpire=invalid expiry date
usave_echange=invalid change date
usave_eclass='$1' is not a valid login class
usave_emove=failed to move home directory : $1
usave_emkdir=couldn't create home directory : $1
usave_echown=couldn't chown home directory : $1
usave_echmod=couldn't chmod home directory : $1

gedit_title=Edit Group
gedit_title2=Create Group
gedit_details=Group Details
gedit_group=Group name
gedit_gid=Group ID
gedit_members=Members
gedit_homedirs=Home directories
gedit_allfiles=All files
gedit_ecreate=You cannot create new groups
gedit_eedit=You cannot edit this group

gsave_err=Failed to save group
gsave_eedit=You cannot edit this group
gsave_ecreate=You cannot create new groups
gsave_ebadname='$1' is not a valid group name
gsave_einuse=the group name '$1' is already in use
gsave_egid='$1' is not a valid GID
usave_elowgid=GID must be greater than or equal to $1
usave_ehigid=GID must be less than or equal to $1
usave_egidused=Group $1 is already using GID $2
usave_efromroot=You cannot move the home directory from /
usave_etoroot=You cannot move the home directory to /

logins_title=Recorded Logins
logins_head=Recorded logins for $1
logins_from=Login From
logins_tty=TTY
logins_in=Login At
logins_out=Logout At
logins_for=On For
logins_still=Still logged in
logins_none=No Logins Recorded
logins_elist=You are not allowed to list logins
logins_elistu=You are not allowed to list logins for '$1'
logins_local=Local

udel_title=Delete User
udel_err=Failed to delete user
udel_euser=You cannot delete this user
udel_ealready=This user has already been deleted!
udel_echanged=Password file has changed. Please return to the user list and select this user again.
udel_other=Deleting from other modules ..
udel_pass=Deleting password file entry ..
udel_groups=Removing from groups ..
udel_ugroup=Deleting this user's group ..
udel_home=Deleting home directory ..
udel_done=.. Done
udel_sure=Are you sure you want to delete the user $1 ? Home directory $2 contains $3 kB of files
udel_sure2=Are you sure you want to delete the user $1 ?
udel_del1=Delete User
udel_del2=Delete User and Home Directory
udel_others=WARNING! Home directory $1 contains $2 files owned by other users.

gdel_title=Delete Group
gdel_err=Failed to delete group
gdel_egroup=You cannot delete this group
gdel_ealready=This group has already been deleted!
gdel_group=Deleting group file entry ..
gdel_done=.. Done
gdel_eprimary=This is the primary group of user $1
gdel_sure=Are you sure you want to delete the group $1 ?
gdel_del=Delete Group

many_title=Create Multiple Users
many_desc=This form allows you to create many users at once either from an uploaded or local text file. Each line is the file specifies one user in the following format&nbsp;:
many_desc2=username:passwd:uid:gid:realname:homedir:shell:min:max:warn:inactive:expire
many_desc1=username:passwd:uid:gid:realname:homedir:shell:class:change:expire
many_desc0=username:passwd:uid:gid:realname:homedir:shell
many_descafter=If the <tt>uid</tt> field is left empty, Webmin will assign a UID automatically. If the <tt>gid</tt> field is empty, Webmin will create a new group with the same name as the user. The <tt>username</tt>, <tt>homedir</tt> and <tt>shell</tt> fields must be supplied for every user - all other fields are allowed to be empty. 
many_descpass=If the <tt>passwd</tt> field is blank, no password will be assigned for the user. If it contains just the letter <tt>x</tt>, the account will be locked. Otherwise, the text in the field will be taken as the cleartext password and encrypted.
many_file=Uploaded new users file
many_local=Local new users file
many_makehome=Create home directories?
many_copy=Copy files to home directories?
many_upload=Create users
many_elocal=Local file not found
many_efile=No file chosen to upload
many_elen=Line $1 does not contain $2 fields
many_eline=Missing username at line $1
many_euser=Duplicate username at line $1 : $2
many_egid=Invalid GID at line $1 : $2
many_ehome=Invalid home directory at line $1 : $2
many_eshell=Invalid shell at line $1 : $2
many_emkdir=Failed to create home directory $1 : $2
many_egtaken=Group name already in use at line $1 : $2
many_ok=Created user $1

acl_uedit=Unix users who can be edited
acl_uedit_all=All users
acl_uedit_none=No users
acl_uedit_only=Only users
acl_uedit_except=All except users
acl_uedit_uid=Users with UIDs in range
acl_uedit_group=Users with groups
acl_ucreate=Can create new users?
acl_uid=UIDs for new or modified users
acl_umultiple=More than one user can have the same UID
acl_ugroups=Allowed groups for new or modifed users
acl_all=All
acl_shells=Allowed shells for new or modifed users
acl_any=Any
acl_listed=Listed..
acl_home=Home directories must be under
acl_autohome=Home directory is always same as username
acl_gedit=Unix groups who can be edited
acl_gedit_all=All groups
acl_gedit_none=No groups
acl_gedit_only=Only groups
acl_gedit_except=All except groups
acl_gedit_gid=Groups with GIDs in range
acl_gcreate=Can create new groups?
acl_gnew=Only for new users
acl_gid=GIDs for new or modified groups
acl_gmultiple=More than one group can have the same GID
acl_logins=Can display logins by
acl_lnone=No users
acl_lall=All users
acl_epeopt=Can edit password expire options?
acl_egp=Can edit group passwords?

log_urename=Renamed user $1 to $2
log_umodify=Modified user $1
log_ucreate=Created user $1
log_udelete=Deleted user $1
log_udeletehome=Deleted user $1 and directory $2
log_gmodify=Modified group $1
log_gcreate=Created group $1
log_gdelete=Deleted group $1

batch_title=Execute Batch File
batch_desc=This form allows you to create, modify or delete many users at once from an uploaded or local text file. Each line in the file specifies one action to take, depending on its first field. The line formats are :
batch_desc2=<b>create</b>:username:passwd:uid:gid:realname:homedir:shell:min:max:warn:inactive:expire<p><b>modify</b>:oldusername:username:passwd:uid:gid:realname:homedir:shell:min:max:warn:inactive:expire<p><b>delete</b>:username
batch_desc1=<b>create</b>:username:passwd:uid:gid:realname:homedir:shell:class<p><b>modify</b>:oldusername:username:passwd:uid:gid:realname:homedir:shell:class<p><b>delete</b>:username
batch_desc0=<b>create</b>:username:passwd:uid:gid:realname:homedir:shell<p><b>modify</b>:oldusername:username:passwd:uid:gid:realname:homedir:shell<p><b>delete</b>:username
batch_descafter=In <b>create</b> lines, if the <tt>uid</tt> field is left empty, Webmin will assign a UID automatically. If the <tt>gid</tt> field is empty, Webmin will create a new group with the same name as the user. The <tt>username</tt>, <tt>homedir</tt> and <tt>shell</tt> fields must be supplied for every user - all other fields are allowed to be empty. If the <tt>passwd</tt> field is blank, no password will be assigned for the user. If it contains just the letter <tt>x</tt>, the account will be locked. Otherwise, the text in the field will be taken as the cleartext password and encrypted.
batch_descafter2=In <b>modify</b> lines, an empty field will be taken to mean that the corresponding user attribute is not to be modified.
batch_file=Uploaded batch file
batch_local=Local batch file
batch_makehome=Create home directories for created users?
batch_copy=Copy files to home directories of created users?
batch_movehome=Rename home directories of modified users?
batch_chuid=Change UID on files of modified users?
batch_chgid=Change GID on files of modified users?
batch_delhome=Delete home directories of deleted users?
batch_upload=Execute batch
batch_elocal=Local file not found
batch_efile=No file chosen to upload
batch_elen=Line $1 does not contain $2 fields
batch_eline=Missing username at line $1
batch_euser=Duplicate username at line $1 : $2
batch_egid=Invalid GID at line $1 : $2
batch_ehome=Invalid home directory at line $1 : $2
batch_eshell=Invalid shell at line $1 : $2
batch_emkdir=Failed to create home directory $1 : $2
batch_egtaken=Group name already in use at line $1 : $2
batch_eaction=Invalid action at line $1 : $2
batch_enouser=User does not exist at line $1 : $2
batch_emove=Failed to move home directory at line $1 : $2
batch_created=Created user $1
batch_deleted=Deleted user $1
batch_modified=Modified user $1
  07070100011853000081a40000000000000002000000013ac0388f00002948000000200000000000000000000000000000001800000003reloc/useradmin/lang/es   index_title=Usuarios y Grupos
index_toomany=Hay demasiados usuarios en tu sistema para que quepan en una sola p醙ina
index_find=Buscar usuarios que
index_gtoomany=Hay demasiados grupos en tu sistema para mostrarlos en una sola p醙ina
index_gfind=Hallar grupos cuyo
index_ugroup=Grupo Primario
index_users=Usuarios Locales
index_notusers=No est醩 autorizado a editar usuarios en este sistema
index_createuser=Crear un nuevo usuario
index_createmany=Crear m鷏tiples usuarios
index_nomoreusers=No est醩 autorizado a crear m醩 usuarios
index_groups=Grupos Locales
index_notgroups=No est醩 autorizado a editar grupos en este sistema
index_creategroup=Crear un nuevo grupo
index_nomoregroups=No est醩 autorizado a crear m醩 grupos
index_logins=Mostrar logins por
index_return=lista de usuarios y grupos
index_equals=iguala a
index_matches=coincide con
index_nequals=no iguala a
index_nmatches=no coincide con

search_title=Resultados de la B鷖queda
search_notfound=No se han encontrado usuarios que coincidan
search_gnotfound=No se han hallado grupos que coincidan

uedit_title=Editar Usuario
uedit_title2=Crear Usuario
uedit_details=Detalles de Usuario
user=Nombre de Usuario
uid=ID de Usuario
real=Nombre Real
pass=Clave de Acceso
none1=Preguntar en primer login
none2=No se necesita clave de acceso
nologin=No est permitido el login
encrypted=Clave de acceso encriptada
nochange=Dejado sin cambio
clear=Limpiar texto de clave de acceso
home=Directorio inicial
uedit_auto=Autom醫ico
shell=Shell
uedit_other=Otro...
uedit_passopts=Opciones de Clave de Acceso
change2=Cambiar fecha de Clave de Acceso
expire2=Fecha de expiraci髇 de Cuenta
class=Clase de Login
change=Clave de Acceso cambiada
flags=Banderas de cuentas
uedit_never=Nunca
uedit_unknown=Desconocido
expire=Fecha de Expiraci髇
min=D韆s m韓imos
max=D韆s m醲imos
warn=D韆s de Aviso
inactive=D韆s inactivos
uedit_gmem=Afiliaci髇 del Grupo
group=Grupo primario
uedit_newg=Nuevo grupo
uedit_oldg=Grupo existente
uedit_2nd=Grupos secundarios
onsave=Al Salvar...
uedit_movehome=縈uevo el directorio inicial, si ha cambiado?
uedit_chuid=緾ambio ID de usuario en los archivos?
uedit_allfiles=Todos los archivos
chgid=緾ambio ID de grupo en los archivos?
uedit_oncreate=Al Crear...
uedit_makehome=緾reo directorio inicial?
uedit_copy=緾opio archivos a directorio inicial?
uedit_logins=Ver Logins
uedit_mail=Leer Correo
uedit_ecreate=No puedes crear nuevos usuarios
uedit_eedit=No puedes editar este usuario
uedit_admin=S髄o root puede cambiar la clave de acceso
uedit_admchg=El usuario debe de seleccionar nueva clave de acceso
uedit_nocheck=No revisar restricciones de clave de acceso

usave_err=No pude salvar al usuario
usave_eedit=No puedes editar este usuario
usave_ecreate=No puedes crear nuevos usuarios
usave_ebadname='$1' no es un nombre de usuario v醠ido
usave_einuse=el nombre de usuario '$1' ya est en uso
usave_einuse_a=el nombre de usuario '$1' ya est en uso por un alias de correo
usave_einuseg=el nombre de grupo '$1' ya est en uso
usave_erename=No est醩 autorizado a renombrar usuarios
usave_euid='$1' no es un UID v醠ido
usave_elowuid=UID debe de ser mayor que o igual a $1
usave_ehiuid=UID debe de ser menor que o igual a $1
usave_euidused=El Usuario $1 ya est usando el UID $2
usave_ereal='$1' no es un Nombre Real v醠ido
usave_ehome='$1' no es un directorio inicial v醠ido
usave_ehomepath=No est醩 autorizado a crear el directorio inicial $1
usave_eshell='$1' no es un shell permitido
usave_egid='$1' no es un grupo v醠ido
usave_egcreate=Tu sistema est configurado para crear un nuevo grupo para nuevos usuarios, pero tu no est醩 autorizado a crear grupos
usave_eprimary=Tu no est醩 autorizado a a馻dir este usuario al grupo primario $1
usave_esecondary=Tu no est醩 autorizado a a馻dir este usuario al grupo secundario $1
usave_eprimaryr=Tu no est醩 autorizado a quitar este usuario del grupo primario $1
usave_esecondaryr=Tu no est醩 autorizado a quitar este usuario del grupo secundario $1
usave_emin='$1' no es un per韔do m韓imo de cambio v醠ido
usave_emax='$1' no es un per韔do m醲imo de cambio v醠ido
usave_ewarn='$1' no es un per韔do de aviso v醠ido
usave_einactive='$1' no es un per韔do inactivo v醠ido
usave_eexpire=fecha de expiraci髇 inv醠ida
usave_echange=fecha de cambio inv醠ida
usave_eclass='$1' no es una clase de login v醠ida
usave_emove=error al mover directorio inicial: $1
usave_emkdir=no pude crear directorio inicial: $1
usave_echown=no pude cambiar propietario de directorio inicial: $1
usave_echmod=no pude cambiar permisos de directorio inicial: $1

gedit_title=Editar Grupo
gedit_title2=Crear Grupo
gedit_details=Detalles de Grupo
gedit_group=Nombre de Grupo
gedit_gid=ID de Grupo
gedit_members=Miembros
gedit_homedirs=Directorios Iniciales
gedit_allfiles=Todos los archivos
gedit_ecreate=No puedes crear nuevos grupos
gedit_eedit=No puedes editar este grupo

gsave_err=Error al salvar el grupo
gsave_eedit=No puedes editar este grupo
gsave_ecreate=No puedes crear nuevos grupos
gsave_ebadname='$1' no es un nombre de grupo v醠ido
gsave_einuse=el nombre de grupo '$1' ya est en uso
gsave_egid='$1' no es un GID v醠ido
usave_elowgid=GID debe de ser mayor o igual que $1
usave_ehigid=GID debe de ser menor o igual que $1
usave_egidused=El Grupo $1 ya est usando el GID $2
usave_efromroot=No puedes mover el directorio inicial desde /
usave_etoroot=No puedes mover el directorio inicial a /

logins_title=Registro de Logins
logins_head=Registro de Logins de $1
logins_from=Login Desde
logins_tty=TTY
logins_in=Login a las
logins_out=Logout a las
logins_for=Dentro durante
logins_still=Todav韆 est dentro
logins_none=No hay Registro de Logins
logins_elist=No est醩 autorizado a listar logins
logins_elistu=No est醩 autorizado a listar logins para '$1'
logins_local=Local

udel_title=Borrar Usuario
udel_err=error al borrar usuario
udel_euser=No puedes borrar este usuario
udel_ealready=ste usuario ya ha sido borrado!
udel_echanged=El archivo de claves de acceso ha cambiado. Por favor, regresa a la lista de usuarios y selecciona a este usuario otra vez.
udel_other=Borrando desde otros m骴ulos...
udel_pass=Borrando entrada en archivo de claves de acceso...
udel_groups=Quitando desde grupos...
udel_ugroup=Borrando el grupo de este usuario...
udel_home=Borrando directorio inicial...
udel_done=... Hecho
udel_sure=縀st醩 seguro de querer borrar al usuario $1? El directorio inicial $2 contiene $3 kB de archivos
udel_sure2=縀st醩 seguro de querer borrar al usuario $1?
udel_del1=Borrar Usuario
udel_del2=Borrar Usuario y Directorio Inicial
udel_others=VISO! El directorio inicial $1 contiene $2 archivos propiedad de otros usuarios.

gdel_title=Borrar Grupo
gdel_err=Error en borrado de grupo
gdel_egroup=No puedes borrar este grupo
gdel_ealready=ste grupo ya ha sido borrado!
gdel_group=Borrando entrada de archivo de grupo...
gdel_done=... Hecho
gdel_eprimary=Este es el grupo primario del usuario $1
gdel_sure=縀st醩 seguro de querer borrar el grupo $1?
gdel_del=Borrar Grupo

many_title=Crear M鷏tiples Usuarios
many_desc=Este formulario te permite crear muchos usuarios de una vez desde un archivo de texto cargado. Cada l韓ea en el archivo especifica un usuario con el siguiente formato:
many_desc2=nombre de usuario:clave de acceso:uid:gid:nombre real:directorio inicial:shell:m韓:m醲:aviso:inactivo:expiraci髇
many_desc1=nombre de usuario:clave de acceso:uid:gid:nombre real:directorio inicial:shell:clase:cambio:expiraci髇
many_desc0=nombre de usuario:clave de acceso:uid:gid:nombre real:directorio inicial:shell
many_descafter=Si el campo <tt>uid</tt> se deja vac韔, Webmin asignar una UID autom醫icamente. Si el cmpo <tt>gid</tt> est vac韔, Webmin crear un nuevo grupo con el mismo nombre que el del usuario. Los campos de <tt>nombre de usuario</tt>, <tt>directorio inicial</tt> y de <tt>shell</tt> han de ser suministrados para cada usuario - todos los otros campos pueden quedar vac韔s.
many_descpass=Si el campo de <tt>clave de acceso</tt> se deja en blanco, no se asigna clave de acceso para el usuario. Si contiene s髄o la letra <tt>x</tt>, la cuenta ser bloqueada. De otra manera, el texto en el campo ser tomado como la clave de acceso en claro y ser encriptada.
many_file=Nuevo archivo de usuarios:
many_local=Archivo de nuevos usuarios locales
many_makehome=緾reo los directorios iniciales?
many_copy=緾opio los archivos a los directorios iniciales?
many_upload=Crear usuarios
many_elocal=Archivo local no encontrado
many_efile=No se ha seleccionado archivo para cargar
many_elen=La l韓ea $1 no contiene $2 campos
many_eline=Nombre de usuario sin poner en la l韓ea $1
many_euser=Nombre de usuario duplicado en la l韓ea $1 : $2
many_egid=GID inv醠ida en la l韓ea $1 : $2
many_ehome=Directorio inicial inv醠ido en la l韓ea $1 : $2
many_eshell=Shell inv醠ido en la l韓ea $1 : $2
many_emkdir=No puedo crear directorio inicial $1 : $2
many_egtaken=El nombre de grupo ya est en uso en la l韓ea $1 : $2
many_ok=Creado usuario $1

acl_uedit=Usuarios de Unix que pueden ser editados
acl_uedit_all=Todos los usuarios
acl_uedit_none=Ninguno
acl_uedit_only=S髄o usuarios
acl_uedit_except=Todos excepto los usuarios
acl_uedit_uid=Usuarios con UIDs en el rango
acl_uedit_group=Usuarios con grupo
acl_ucreate=縋uedo crear nuevos usuarios?
acl_uid=UIDs para usuarios nuevos o modificados
acl_umultiple=M醩 de un usuario puede tener el mismo UID
acl_ugroups=Grupos autorizados para usuarios nuevos o modificados
acl_all=Todos
acl_shells=Shells autorizados para usuarios nuevos o modificados
acl_any=Cualquiera
acl_listed=Listado...
acl_home=Los Directorios iniciales deben de estar bajo
acl_autohome=El Directorio inicial es siempre el mismo que el nombre del usuario
acl_gedit=Grupos Unix que pueden ser editados
acl_gedit_all=Todos los grupos
acl_gedit_none=Nig鷑 grupo
acl_gedit_only=S髄o los grupos
acl_gedit_except=Todos excepto los grupos
acl_gedit_gid=Grupos con GIDs en el rango
acl_gcreate=縋uedo crear grupos nuevos?
acl_gnew=S髄o para nuevos usuarios
acl_gid=GIDs para grupos nuevos o modificados
acl_gmultiple=M醩 de un grupo puede tener el mismo GID
acl_logins=Puedo mostrar logins por
acl_lnone=Ning鷑 usuario
acl_lall=Todos los usuarios
acl_epeopt=縋uedo editar las opciones de expiraci髇 de claves de acceso?
acl_egp=縋uedo editar claves de acceso de grupo?

log_urename=Renombrado usuario $1 por $2
log_umodify=Modificado usuario $1
log_ucreate=Creado usuario $1
log_udelete=Borrado usuario $1
log_udeletehome=Borrado usuario $1 y directorio $2
log_gmodify=Modificado grupo $1
log_gcreate=Creado grupo $1
log_gdelete=Borrado grupo $1

07070100011854000081a40000000000000002000000013ac0388f000025ea000000200000000000000000000000000000001800000003reloc/useradmin/lang/fr   index_title=Utilisateurs et groupes
index_toomany=Il y a trop d'utilisateurs pour tous les afficher sur une page
index_find=Trouver les utilisateurs dont le
index_users=Utilisateurs locaux
index_notusers=Vous n'阾es pas autoris  閐iter les utilisateurs sur ce syst鑝e
index_createuser=Cr閑r un nouvel utilisateur
index_createmany=Cr閑r plusieurs utilisateurs
index_nomoreusers=Vous n'阾es pas autoris  cr閑r des utilisateurs suppl閙entaires
index_groups=Groupes locaux
index_notgroups=Vous n'阾es pas autoris  閐iter les groupes sur ce syst鑝e
index_creategroup=Cr閑r un nouveau groupe
index_nomoregroups=Vous n'阾es pas autoris  cr閑r des groupes suppl閙entaires
index_logins=Afficher les sessions d'ouvertures par
index_return=liste des utilisateurs et des groupes
index_equals=est
index_matches=contient
index_nequals=n'est pas
index_nmatches=ne contient pas

search_title=R閟ultats de la recherche

uedit_title=蒬iter un utilisateur
uedit_title2=Cr閑r un utilisateur
uedit_details=D閠ails de l'utilisateur
user=Nom d'utilisateur
uid=Num閞o d'utilisateur
real=Nom complet
pass=Mot de passe
none1=Demander  la premi鑢e ouverture de session
none2=Aucun mot de passe requis
nologin=Aucune ouverture de session permise
encrypted=Mot de passe crypt
clear=Mot de passe en texte clair
home=R閜ertoire personnel
uedit_auto=Automatique
shell=Interpr閠eur de commande
uedit_other=Autre
uedit_passopts=Options du mot de passe
change2=Le mot de passe existe depuis
expire2=Expiration du compte
class=Classe d'ouverture de session
change=Mot de passe chang le
uedit_never=Jamais
uedit_unknown=Inconnu
expire=Date d'expiration
min=Jours minimums
max=Jours maximums
warn=Jours d'avertissement
inactive=Jours d'inactivit
uedit_gmem=Appartenance aux groupes
group=Groupe primaire
uedit_newg=Nouveau groupe
uedit_2nd=Groupes secondaires
onsave=Apr鑣 avoir sauv
uedit_movehome=D閜lacer le r閜ertoire personnel s'il a 閠 chang?
uedit_chuid=Changer de propri閠aire sur les fichiers?
uedit_allfiles=Tous les fichiers
chgid=Changer de groupe sur les fichiers?
uedit_oncreate=Apr鑣 la cr閍tion
uedit_makehome=Cr閑r un r閜ertoire personnel?
uedit_copy=Copier les fichiers dans le r閜ertoire personnel?
uedit_logins=Afficher les sessions
uedit_ecreate=Vous n'阾es pas autoris  cr閑r des utilisateurs
uedit_eedit=Vous n'阾es pas autoris  閐iter cet utilisateur

usave_err=Impossible d'enregistrer l'utilisateur
usave_eedit=Vous n'阾es pas autoris  閐iter cet utilisateur
usave_ecreate=Vous n'阾es pas autoris  cr閑r des utilisateurs
usave_ebadname='$1' n'est pas un nom d'utilisateur valide
usave_einuse=l'utilisateur '$1' existe d閖
usave_einuseg=le groupe '$1' existe d閖
usave_euid='$1' n'est pas un num閞o d'utilisateur valide
usave_elowuid=Le num閞o d'utilisateur doit 阾re sup閞ieur ou 間al  $1
usave_ehiuid=Le num閞o d'utilisateur doit 阾re inferieur ou 間al  $1
usave_euidused=L'utilisateur $1 a d閖 l'UID $2
usave_ereal='$1' n'est pas un nom d'utilisateur valide
usave_ehome='$1' n'est pas un r閜ertoire personnel valide
usave_ehomepath=Vous n'阾es pas autoris  cr閑r le r閜ertoire personnel
usave_eshell='$1' n'est pas un interpr閠eur de commandes valide
usave_egid='$1' n'est pas un groupe valide
usave_egcreate=Votre syst鑝e est configur pour cr閑r un groupe pour chaque nouvel utilisateur, mais vous n'阾es pas autoris  cr閑r un groupe
usave_eprimary=Vous n'阾es pas autoris  ajouter cet utilisateur au groupe primaire $1
usave_esecondary=Vous n'阾es pas autoris  ajouter cet utilisateur au groupe secondaire $1
usave_eprimaryr=Vous n'阾es pas autoris  enlever cet utilisateur du groupe primaire $1
usave_esecondaryr=Vous n'阾es pas autoris  enlever cet utilisateur du groupe secondaire $1
usave_emin='$1' n'est pas une p閞iode minimum de changements valide
usave_emax='$1' n'est pas une p閞iode maximum de changements valide
usave_ewarn='$1' n'est pas une p閞iode d'avertissement valide
usave_einactive='$1' n'est pas une p閞iode d'inactivit valide
usave_eexpire=date d'expiration invalide
usave_echange=date de changement invalide
usave_eclass='$1' n'est pas une classe d'ouverture de session valide
usave_emove=impossible de d閜lacer le r閜ertoire personnel : $1
usave_emkdir=impossible de cr閑r le r閜ertoire personnel : $1
usave_echown=impossible de changer de propri閠aire le r閜ertoire personnel : $1
usave_echmod=impossible de changer les permissions du r閜ertoire personnel : $1

gedit_title=蒬iter les groupes
gedit_title2=Cr閑r un groupe
gedit_details=D閠ails du groupe
gedit_group=Nom du groupe
gedit_gid=Num閞o du groupe (GID)
gedit_members=Membres
gedit_homedirs=R閜ertoire personnel
gedit_allfiles=Tous les fichiers

gsave_err=Impossible d'enregistrer le groupe
gsave_eedit=Vous n'阾es pas autoris  閐iter ce groupe
gsave_ecreate=Vous n'阾es pas autoris  cr閑r des nouveaux groupes
gsave_ebadname='$1' n'est pas un nom de groupe valide
gsave_einuse=Le nom de groupe '$1' est d閖 utilis
gsave_egid='$1' n'est pas un num閞o de groupe valide
usave_elowgid=Le num閞o de groupe doit 阾re sup閞ieur ou 間al  $1
usave_ehigid=Le num閞o de groupe doit 阾re inf閞ieur ou 間al  $1
usave_egidused=Le groupe $1 utilise d閖 le num閞o de groupe $2
usave_efromroot=Vous ne pouvez pas changer le r閜ertoire personnel /
usave_etoroot=Vous ne pouvez changer le r閜ertoire personnel en /

logins_title=Sessions enregistr閑s
logins_head=Sessions pour $1
logins_from=Session ouverte de
logins_tty=TTY
logins_in=Ouverte 
logins_out=Ferm閑 
logins_for=Dur閑
logins_still=Encore connect
logins_none=Pas de sessions enregistr閑s

udel_title=Supprimer un utilisateur
udel_err=Impossible de supprimer cet utilisateur
udel_euser=Vous n'阾es pas autoris  supprimer cet usager
udel_ealready=Cet utilisateur  d閖 閠 supprim!
udel_echanged=Le fichier de mots de passe a chang. Veuillez revenir en arri鑢e et choisir l'utilisateur de nouveau. 
udel_other=Suppression dans les autres modules ..
udel_pass=Suppression dans le fichier de mots de passe ..
udel_groups=Suppression dans les groupes ..
udel_ugroup=Suppression du groupe ..
udel_home=Suppression du r閜ertoire personnel ..
udel_done=.. Termin
udel_sure=Etes-vous sur de vouloir supprimer  $1 dont le r閜ertoire personnel $2 contient $3 Ko de fichiers?
udel_sure2=Etes-vous sur de vouloir supprimer l'utilisateur $1 ?
udel_del1=Supprimer l'utilisateur
udel_del2=Supprimer l'utilisateur et son r閜ertoire personnel

gdel_title=Supprimer un groupe
gdel_err=Impossible de supprimer le groupe
gdel_egroup=Vous n'阾es pas autoris  supprimer ce groupe
gdel_ealready=Ce groupe a d閖 閠 supprim!
gdel_group=Suppression du groupe ..
gdel_done=.. Termin
gdel_eprimary=Ceci est le groupe primaire de l'utilisateur $1
gdel_sure=Etes-vous sur de vouloir supprimer l'utilisateur $1 ?
gdel_del=Supprimer le groupe

many_title=Cr閑r plusieurs Utilisateur 
many_desc=Cette page vous permet de cr閑r plusieurs utilisateurs  la fois  partir d'un fichier texte. Chaque ligne du fichier repr閟ente un utilisateur dans le format suivant :
many_desc2=nom:pass:uid:gid:vrainom:repertoireperso:shell:min:max:avertissement:inactif:expire
many_desc1=nom:pass:uid:gid:vrainom:repertoireperso:shell:classe:change:expire
many_desc0=nom:pass:uid:gid:vrainom:repertoireperso:shell
many_descafter=Si le champ <tt>uid</tt> est laiss vide, Webmin assignera un num閞o d'utilisateur automatiquement. Les champs <tt>nom</tt>, <tt>gid</tt>, <tt>repertoireperso</tt> et <tt>shell</tt> sont obligatoires pour chaque utilisateur, tous les autres champs peuvent 阾re vides.
many_file=Fichier de nouveaux utilisateurs envoy
many_local=Fichier de nouveaux utilisateur local
many_makehome=Cr閑r le r閜ertoire personnel?
many_copy=Copier les fichiers dans le r閜ertoire personnels?
many_upload=Cr閑r les utilisateurs
many_elocal=Fichier introuvable
many_efile=Aucun fichier  envoyer choisi
many_elen=La ligne $1 ne contient pas les champs $2
many_euser=Nom d'utilisateur en double  la ligne $1 : $2
many_egid=Num閞o de groupe invalide  la ligne $1 : $2
many_ehome=R閜ertoire personnel invalide  la ligne $1 : $2
many_eshell=Interpr閠eur de commande invalide  la ligne $1 : $2
many_emkdir=Impossible de cr閑r le r閜ertoire personnel $1 : $2
many_ok=Utilisateur $1 cr殚

acl_uedit=Utilisateur Unix pouvant 阾re 閐it閟
acl_uedit_all=Tous les utilisateurs
acl_uedit_none=Aucun utilisateur
acl_uedit_only=Seulement ces utilisateurs
acl_uedit_except=Tous les utilisateurs sauf
acl_uedit_uid=Les utilisateurs dont le num閞o fait partie de
acl_uedit_group=Utilisateurs avec groupe
acl_ucreate=Peut cr閑r des nouveaux utilisateurs?
acl_uid=Num閞os pour les utilisateur cr閑s ou modifi閟
acl_umultiple=Plusieurs utilisateurs peuvent avoir le m阭e num閞o
acl_ugroups=Groupes autoris pour les utilisateur cr閑s ou modifi閟
acl_all=Tous
acl_shells=Interp閠eur de commande pour les utilisateur cr閑s ou modifi閟
acl_any=N'importe lequel
acl_listed=List..
acl_home=Le r閜ertoire personnel doit 阾re dans
acl_autohome=Le r閜ertoire personnel est toujours le m阭e que le nom d'utilisateur
acl_gedit=Groupes Unix qui peuvent 阾re 閐it閟
acl_gedit_all=Tous les groupes
acl_gedit_none=Aucun groupe
acl_gedit_only=Seulement ces groupes
acl_gedit_except=Tous les groupes saufs
acl_gedit_gid=Les groupes dont le num閞o fait partie de
acl_gcreate=Peut cr閑r des nouveaux groupes?
acl_gnew=Seulement pour les nouveaux utilisateurs
acl_gid=Num閞os pour les groupes cr閑s ou modifi閟
acl_gmultiple=Plusieurs groupes peuvent avoir le m阭e num閞o
acl_logins=Peut afficher les ouvertures de sessions
acl_lnone=Aucun utilisateur
acl_lall=Tous les utilisateurs
acl_epeopt=Peut 閐iter les options d'expiration de mot de passe?
acl_egp=Peut 閐iter les mots de passe des groupes?

  07070100011855000081a40000000000000002000000013ac0388f00002086000000200000000000000000000000000000001800000003reloc/useradmin/lang/he   index_title=铢 鬻徨鲥
index_toomany=轾 殄 钽 囵 翡 狴衢 痖 噱腱 熹妃 帔 脲邋祉 蜢 泱 噻
index_find=玺 铢 帙 熹 
index_ugroup=麽弼 
index_users=铢 铟孱殚
index_notusers=囫屮 礻 熹忏轼 铢 犷琦 滏
index_createuser=鲥 铢 玢
index_createmany=鲥 腩 咫钿 铢 後-噻
index_nomoreusers=驿. 囫屮 礻 扉鲥 蝈 铢
index_groups=麽弼妃 铟孱殄
index_notgroups=You are not allowed to edit any groups on this system
index_creategroup=鲥 麽弼 玢
index_nomoregroups=You are not allowed to create any more groups
index_logins=Display logins by
index_return=users and groups list
index_equals=彘
index_matches=铤嚅铋 
index_nequals=爨 彘 
index_nmatches=爨 铤嚅铋 

search_title=鲟妃 玳翦
search_notfound=爨 铞帔 铢溴

uedit_title=蝤殡 铢
uedit_title2=溴耵 铢
uedit_details=豇栝 铢
user=Username
uid=User ID
real= 囝辁
pass=耖耦
none1=Ask at first login
none2=爨 鲽殛 耖耦
nologin=No login allowed
encrypted=耖耦 铄鲷瘊
clear=耖耦 徼黢 爨 铄鲷
home=Home directory
uedit_auto=噱桢铊
shell=Shell
uedit_other=Other..
uedit_passopts=圄彘妃 耖耦
change2=Password change time
expire2=Account expiry time
class=Login class
change=Password changed
uedit_never=Never
uedit_unknown=Unknown
expire=Expiry date
min=Minimum days
max=Maximim days
warn=Warning days
inactive=Inactive days
uedit_gmem=Group Membership
group=Primary group
uedit_newg=New group
uedit_oldg=Existing group
uedit_2nd=Secondary groups
onsave=Upon Save..
uedit_movehome=Move home directory if changed?
uedit_chuid=Change user ID on files?
uedit_allfiles=All files
chgid=Change group ID on files?
uedit_oncreate=Upon Creation..
uedit_makehome=Create home directory?
uedit_copy=Copy files to home directory?
uedit_logins=Show Logins
uedit_mail=Read Email
uedit_ecreate=You cannot create new users
uedit_eedit=You cannot edit this user

usave_err=Failed to save user
usave_eedit=You cannot edit this user
usave_ecreate=You cannot create new users
usave_ebadname='$1' is not a valid username
usave_einuse=the username '$1' is already in use
usave_einuseg=the group name '$1' is already in use
usave_erename=You are not allowed to rename users
usave_euid='$1' is not a valid UID
usave_elowuid=UID must be greater than or equal to $1
usave_ehiuid=UID must be less than or equal to $1
usave_euidused=User $1 is already using UID $2
usave_ereal='$1' is not a valid real name
usave_ehome='$1' is not a valid home directory
usave_ehomepath=You are not allowed to create the home directory $1
usave_eshell='$1' is not an allowable shell
usave_egid='$1' is not a valid group
usave_egcreate=You are not allowed to create new groups for new users
usave_eprimary=You are not allowed to add this user to the primary group $1
usave_esecondary=You are not allowed to add this user to the secondard group $1
usave_eprimaryr=You are not allowed to remove this user from the primary group $1
usave_esecondaryr=You are not allowed to remove this user from the secondary group $1
usave_emin='$1' is not a valid minimum change period
usave_emax='$1' is not a valid maximum change period
usave_ewarn='$1' is not a valid warning period
usave_einactive='$1' is not a valid inactive period
usave_eexpire=invalid expiry date
usave_echange=invalid change date
usave_eclass='$1' is not a valid login class
usave_emove=failed to move home directory : $1
usave_emkdir=couldn't create home directory : $1
usave_echown=couldn't chown home directory : $1
usave_echmod=couldn't chmod home directory : $1

gedit_title=Edit Group
gedit_title2=Create Group
gedit_details=Group Details
gedit_group=Group name
gedit_gid=Group ID
gedit_members=Members
gedit_homedirs=Home directories
gedit_allfiles=All files
gedit_ecreate=You cannot create new groups
gedit_eedit=You cannot edit this group

gsave_err=Failed to save group
gsave_eedit=You cannot edit this group
gsave_ecreate=You cannot create new groups
gsave_ebadname='$1' is not a valid group name
gsave_einuse=the group name '$1' is already in use
gsave_egid='$1' is not a valid GID
usave_elowgid=GID must be greater than or equal to $1
usave_ehigid=GID must be less than or equal to $1
usave_egidused=Group $1 is already using GID $2
usave_efromroot=You cannot move the home directory from /
usave_etoroot=You cannot move the home directory to /

logins_title=腽轳妃 铄黛桢 祛蝤膪
logins_head=Recorded logins for $1
logins_from=桢赳 腽轳 祛蝤膪
logins_tty=TTY
logins_in=潸玑 
logins_out=潸瘊 
logins_for=On For
logins_still=蜚殚 铉遽
logins_none=爨 瘌 腽轳妃 祛蝤膪
logins_elist=You are not allowed to list logins
logins_elistu=You are not allowed to list logins for '$1'
logins_local=铟孱

udel_title=铉 铢
udel_err=Failed to delete user
udel_euser=You cannot delete this user
udel_ealready=This user has already been deleted!
udel_echanged=Password file has changed. Please return to the user list and select this user again.
udel_other=Deleting from other modules ..
udel_pass=Deleting password file entry ..
udel_groups=Removing from groups ..
udel_ugroup=Deleting this user's group ..
udel_home=Deleting home directory ..
udel_done=.. 驿
udel_sure=帔 铑 铑 徼彗  鲣 祛珏 帔 漕铢  $1 ? Home directory $2 contains $3 kB of files
udel_sure2=Are you sure you want to delete the user $1 ?
udel_del1=铉 铢
udel_del2=铉 铢, 邂 帔 麽鲩 溽辁 
udel_others=驿轼妃! Home directory $1 contains $2 files owned by other users.

gdel_title=Delete Group
gdel_err=Failed to delete group
gdel_egroup=You cannot delete this group
gdel_ealready=This group has already been deleted!
gdel_group=Deleting group file entry ..
gdel_done=.. Done
gdel_eprimary=This is the primary group of user $1
gdel_sure=Are you sure you want to delete the group $1 ?
gdel_del=Delete Group

many_title=Create Multiple Users
many_desc=This form allows you to create many users at once either from an uploaded or local text file. Each line is the file specifies one user in the following format&nbsp;:
many_desc2=username:passwd:uid:gid:realname:homedir:shell:min:max:warn:inactive:expire
many_desc1=username:passwd:uid:gid:realname:homedir:shell:class:change:expire
many_desc0=username:passwd:uid:gid:realname:homedir:shell
many_descafter=If the <tt>uid</tt> field is left empty, Webmin will assign a UID automatically. The <tt>username</tt>, <tt>gid</tt>, <tt>homedir</tt> and <tt>shell</tt> fields must be supplied for every user - all other fields are allowed to be empty. 
many_file=Uploaded new users file
many_local=Local new users file
many_makehome=Create home directories?
many_copy=Copy files to home directories?
many_upload=Create users
many_elocal=Local file not found
many_efile=No file chosen to upload
many_elen=Line $1 does not contain $2 fields
many_euser=Duplicate username at line $1 : $2
many_egid=Invalid GID at line $1 : $2
many_ehome=Invalid home directory at line $1 : $2
many_eshell=Invalid shell at line $1 : $2
many_emkdir=Failed to create home directory $1 : $2
many_ok=Created user $1

acl_uedit=Unix users who can be edited
acl_uedit_all=All users
acl_uedit_none=No users
acl_uedit_only=Only users
acl_uedit_except=All except users
acl_uedit_uid=Users with UIDs in range
acl_uedit_group=Users with group
acl_ucreate=Can create new users?
acl_uid=UIDs for new or modified users
acl_umultiple=More than one user can have the same UID
acl_ugroups=Allowed groups for new or modifed users
acl_all=All
acl_shells=Allowed shells for new or modifed users
acl_any=Any
acl_listed=Listed..
acl_home=Home directories must be under
acl_autohome=Home directory is always same as username
acl_gedit=Unix groups who can be edited
acl_gedit_all=All groups
acl_gedit_none=No groups
acl_gedit_only=Only groups
acl_gedit_except=All except groups
acl_gedit_gid=Groups with GIDs in range
acl_gcreate=Can create new groups?
acl_gnew=Only for new users
acl_gid=GIDs for new or modified groups
acl_gmultiple=More than one group can have the same GID
acl_logins=Can display logins by
acl_lnone=No users
acl_lall=All users
acl_epeopt=Can edit password expire options?
acl_egp=Can edit group passwords?

log_urename=Renamed user $1 to $2
log_umodify=Modified user $1
log_ucreate=Created user $1
log_udelete=Deleted user $1
log_udeletehome=Deleted user $1 and directory $2
log_gmodify=Modified group $1
log_gcreate=Created group $1
log_gdelete=Deleted group $1

  07070100011856000081a40000000000000002000000013ac0388f0000351d000000200000000000000000000000000000001800000003reloc/useradmin/lang/pl   index_title=U縴tkownicy i grupy
index_toomany=W&nbsp;systemie jest za du縪 u縴tkownik體, 縠by ich pokaza na jednej stronie
index_find=Znajd u縴tkownik體, kt髍ych
index_gtoomany=W&nbsp;systemie jest za du縪 grup, 縠by je pokaza na jednej stronie
index_gfind=Znajd grupy, kt髍e
index_ugroup=Grupa podstawowa
index_users=U縴tkownicy lokalni
index_notusers=Nie masz uprawnie do modyfikowania u縴tkownik體 w&nbsp;tym systemie
index_createuser=Utw髍z nowego u縴tkownika
index_batch=Utw髍z, zmie lub usu u縴tkownik體 za pomoc pliku wsadowego
index_nomoreusers=Nie wolno ci utworzy wi阠ej u縴tkownik體
index_groups=Grupy Lokalne
index_notgroups=Nie masz uprawnie do modyfikowania grup w&nbsp;tym systemie
index_creategroup=Utw髍z now grup
index_nomoregroups=Nie wolno ci utworzy wi阠ej grup
index_logins=Poka logowania u縴tkownika
index_return=listy u縴tkownik體 i&nbsp;grup
index_equals=jest
index_matches=zawiera
index_nequals=r罂ni si od
index_nmatches=nie zawiera

search_title=Wyniki poszukiwania
search_notfound=Nie znaleziono odpowiednich u縴tkownik體
search_gnotfound=Nie znaleziono odpowiednich grup

uedit_title=Zmie u縴tkownika
uedit_title2=Utw髍z u縴tkownika
uedit_details=Dane u縴tkownika
user=Nazwa u縴tkownika
uid=Nr ID u縴tkownika
real=Rzeczywista nazwa
pass=Has硂
none1=Zapytaj przy pierwszym logowaniu
none2=Has硂 nie wymagane
nologin=Nie mo縠 si logowa
encrypted=Has硂 uprzednio zaszyfrowane
clear=Has硂 otwartym tekstem
home=Katalog domowy
uedit_auto=Automatycznie
shell=Pow硂ka
uedit_other=Inna..
uedit_passopts=Parametry has砤
change2=Has硂 zmieni do dnia
expire2=Konto wa縩e do dnia
class=Kategoria logowania
change=Has硂 zmieniono
flags=Flagi dla konta
uedit_never=Nigdy
uedit_unknown=Nie wiadomo
expire=Konto wa縩e do dnia
min=Minimalny czas u縴wania
max=Maksymalny czas u縴wania
warn=Ostrze縠nie na dni
inactive=Blokada konta po dniach
uedit_gmem=Przynale縩o舵 do grup
group=Grupa podstawowa
uedit_newg=Nowa grupa
uedit_oldg=Obecna grupa
uedit_2nd=Grupy dodatkowe
onsave=Przy zachowywaniu..
uedit_movehome=Przenie舵 katalog domowy, je秎i zmieniony?
uedit_chuid=Zmieni ID u縴tkownika na plikach?
uedit_allfiles=Wszystkie pliki
chgid=Zmieni ID grupy na plikach?
uedit_oncreate=Przy tworzeniu..
uedit_makehome=Utworzy katalog domowy?
uedit_copy=Skopiowa pliki do katalogu domowego?
uedit_logins=Poka logowania
uedit_mail=Czytaj poczt
uedit_ecreate=Nie masz uprawnie do tworzenia nowych u縴tkownik體
uedit_eedit=Nie masz uprawnie do modyfikacji tego u縴tkownika
uedit_admin=Tylko <tt>root</tt> mo縠 zmienia has硂
uedit_admchg=U縴tkownik musi wybra nowe has硂
uedit_nocheck=Nie sprawdza ogranicze dla hase

usave_err=Nie uda硂 sie zachowa u縴tkownika
usave_eedit=Nie masz uprawnie do modyfikacji tego u縴tkownika
usave_ecreate=Nie masz uprawnie do tworzenia nowych u縴tkownik體
usave_ebadname='$1' nie jest poprawn nazw u縴tkownika
usave_einuse=nazwa u縴tkownika '$1' jest ju u縴wana
usave_einuse_a=nazwa u縴tkownika '$1' jest ju u縴wana jako alias pocztowy
usave_einuseg=nazwa grupy '$1' jest ju u縴wana
usave_erename=Nie wolno ci przemianowywa u縴tkownik體
usave_euid='$1' nie jest poprawnym numerem UID
usave_elowuid=UID musi by wi阫szy lub r體ny $1
usave_ehiuid=UID musi by mniejszy lub r體ny $1
usave_euidused=U縴tkownik $1 ju posiada UID $2
usave_ereal='$1' nie jest poprawn rzeczywist nazw
usave_ehome='$1' nie jest poprawnym katalogiem domowym
usave_ehomepath=Nie masz uprawnie utworzenia katalogu domowego $1
usave_eshell='$1' nie jest dozwolon pow硂k
usave_egid='$1' nie jest poprawn grup
usave_egcreate=Nie masz uprawnie do tworzenia nowych grup dla nowych u縴tkownik體
usave_eprimary=Nie masz uprawnie aby dopisa tego u縴tkownika do grupy podstawowej $1
usave_esecondary=Nie masz uprawnie aby dopisa tego u縴tkownika do grupy dodatkowej $1
usave_eprimaryr=Nie masz uprawnie aby usun辨 tego u縴tkownika z&nbsp;grupy podstawowej $1
usave_esecondaryr=Nie masz uprawnie aby usun辨 tego u縴tkownika z&nbsp;grupy dodatkowej $1
usave_emin='$1' nie jest poprawnym minimalnym okresem zmiany has砤
usave_emax='$1' nie jest poprawnym maksymalnym okresem zmiany has砤
usave_ewarn='$1' nie jest poprawnym okresem ostrze縠nia
usave_einactive='$1' nie jest poprawnym okresem zablokowania konta
usave_eexpire=niepoprawna data wa縩o禼i
usave_echange=niepoprawna data zmiany
usave_eclass='$1' nie jest poprawn kategori logowania
usave_emove=nie uda硂 si przenie舵 katalogu domowego&nbsp;: $1
usave_emkdir=nie uda硂 si utworzy katalogu domowego&nbsp;: $1
usave_echown=nie uda硂 si zmieni w砤禼iciela katalogu domowego&nbsp;: $1
usave_echmod=nie uda硂 sie zmienic praw dost阷u do katalogu domowego&nbsp;: $1

gedit_title=Zmie grup
gedit_title2=Utw髍z grup
gedit_details=Dane grupy
gedit_group=Nazwa grupy
gedit_gid=Nr ID grupy
gedit_members=Cz硂nkowie
gedit_homedirs=Katalogi domowe
gedit_allfiles=Wszystkie pliki
uedit_ecreate=Nie masz uprawnie do tworzenia nowych grup
uedit_eedit=Nie masz uprawnie do modyfikacji tej grupy

gsave_err=Nie uda硂 si zachowa grupy
gsave_eedit=Nie masz uprawnie do modyfikacji tej grupy
gsave_ecreate=Nie masz uprawnie do tworzenia nowych grup
gsave_ebadname='$1' nie jest poprawn nazw grupy
gsave_einuse=nazwa grupy '$1' jest ju u縴wana
gsave_egid='$1' nie jest poprawnym GID
usave_elowgid=GID musi by wi阫szy lub r體ny $1
usave_ehigid=GID musi by mniejszy lub r體ny $1
usave_egidused=Grupa $1 ju posiada GID $2
usave_efromroot=Nie masz uprawnie do zmiany katalogu domowego z / na inny
usave_etoroot=Nie masz uprawnie do zmiany katalogu domowego na /

logins_title=Zapami阾ane logowania
logins_head=Zapami阾ane logowania u縴tkownika $1
logins_from=Logowanie z
logins_tty=TTY
logins_in=Zalogowany
logins_out=Wylogowany
logins_for=Czas
logins_still=Nadal zalogowany
logins_none=Nie zapami阾ano logowa
logins_elist=Nie masz uprawnie do przegl眃ania logowa
logins_elistu=Nie masz uprawnie do przegl眃ania logowa u縴tkownika '$1'
logins_local=Lokalnie

udel_title=Usu u縴tkownika
udel_err=Nie uda硂 si usun辨 u縴tkownika
udel_euser=Nie masz uprawnie do usuni阠ia tego u縴tkownika
udel_ealready=Ten u縴tkownik ju zosta usuni阾y!
udel_echanged=Plik hase uleg zmianie. Wr箧 do listy i&nbsp;wybierz u縴tkownika ponownie.
udel_other=Usuwanie z&nbsp;innych modu丑w..
udel_pass=Usuwanie wpisu z pliku hase..
udel_groups=Usuwanie z&nbsp;&nbsp;grup..
udel_ugroup=Kasowanie grup tego u縴tkownika..
udel_home=Kasowanie katalogu domowego..
udel_done=.. wykonano
udel_sure=Czy na pewno chcesz usun辨 u縴tkownika $1 ? Katalog domowy $2 zawiera $3 kB plik體.
udel_sure2=Czy na pewno chcesz usun辨 u縴tkownika $1 ?
udel_del1=Usu u縴tkownika
udel_del2=Usu u縴tkownika i&nbsp;katalog domowy
udel_others=UWAGA! Katalog domowy $1 zawiera pliki, kt髍ych w砤禼icielami s inni u縴tkownicy. Liczba takich plik體: $2.

gdel_title=Skasuj grup
gdel_err=Nie uda硂 si skasowa grupy
gdel_egroup=Nie masz uprawnie do skasowania tej grupy
gdel_ealready=Ta grupa ju zosta砤 skasowana!
gdel_group=Kasowanie wpisu w pliku grup
gdel_done=.. Wykonano
gdel_eprimary=Ta grupa jest grup podstawow dla u縴tkownika $1
gdel_sure=Czy na pewno chcesz skasowa grup $1 ?
gdel_del=Skasuj grup

many_title=Utw髍z wielu u縴tkownik體
many_desc=Za pomoc tego formularza mo縠sz utworzy wielu u縴tkownik體 jednocze秐ie na podstawie przes砤nego lub lokalnego pliku tekstowego. Ka縟a linia pliku okre秎a jednego u縴tkownika wg nast阷uj眂ego formatu:
many_desc2=nazwa:has硂:uid:gid:nazwa_rzecz:kat_domowy:pow硂ka:min:max:ostrz:blok:wa縩o舵
many_desc1=nazwa:has硂:uid:gid:nazwa_rzecz:kat_domowy:pow硂ka:kategoria:zmiana:wa縩o舵
many_desc0=nazwa:has硂:uid:gid:nazwa_rzecz:kat_domowy:pow硂ka
many_descafter=Je秎i pole <tt>uid</tt> pozostanie puste, Webmin przydzieli nr UID automatycznie. Je秎i pole <tt>gid</tt> pozostanie puste, Webmin przydzieli now grup o&nbsp;takiej samej nazwie jak u縴tkownik. Pola <tt>nazwa</tt>, <tt>kat_domowy</tt> i&nbsp;<tt>pow硂ka</tt> musz by wype硁ione dla ka縟ego u縴tkownika - pozosta砮 pola mog pozosta puste.
many_file=Przesy砤m plik z&nbsp;nowymi u縴tkownikami
many_local=Lokalny plik z&nbsp;nowymi u縴tkownikami
many_makehome=Utworzy katalogi domowe?
many_copy=Skopiowa pliki do katalog體 domowych?
many_upload=Utw髍z u縴tkownik體
many_elocal=Nie znaleziono pliku lokalnego
many_efile=Nie wybrano pliku do przes砤nia
many_elen=Linia $1 nie zawiera p髄 $2
many_euser=Powt髍zona nazwa u縴tkownika w&nbsp;linii $1&nbsp;: $2
many_egid=Niepoprawny nr GID w&nbsp;linii $1&nbsp;: $2
many_ehome=Niepoprawny katalog domowy w&nbsp;linii $1&nbsp;: $2
many_eshell=Niepoprawna pow硂ka w&nbsp;linii $1&nbsp;: $2
many_emkdir=nie uda硂 si utworzy katalogu domowego $1&nbsp;: $2
many_egtaken=Nazwa grupy jest ju u縴wana w&nbsp;linii $1&nbsp;: $2
many_ok=Utworzono u縴tkownika $1

acl_uedit=U縴tkownicy uniksowi, kt髍ych mo縩a modyfikowa
acl_uedit_all=Wszyscy
acl_uedit_none=痑den
acl_uedit_only=Tylko u縴tkownicy
acl_uedit_except=Opr骳z u縴tkownik體
acl_uedit_uid=U縴tkownicy o&nbsp;UID z&nbsp;zakresu
acl_uedit_group=U縴tkownicy z&nbsp;grupy
acl_ucreate=Mo縠 tworzy nowych u縴tkownik體?
acl_uid=Nry UID dla nowych lub zmodyfikowanych u縴tkownik體
acl_umultiple=Wi阠ej ni jeden u縴tkownik mo縠 mie ten sam nr UID
acl_ugroups=Dozwolone grupy dla nowych lub zmodyfikowanych u縴tkownik體
acl_all=Wszystkie
acl_shells=Dozwolone pow硂ki dla nowych lub zmodyfikowanych u縴tkownik體
acl_any=Dowolny
acl_listed=Wymienione..
acl_home=Katalogi domowe musz si mie禼i w
acl_autohome=Nazwa katalogu domowego zawsze taka sama jak nazwa u縴tkownika
acl_gedit=Grupy uniksowe, kt髍e mo縩a modyfikowa
acl_gedit_all=Wszystkie
acl_gedit_none=痑dna
acl_gedit_only=Tylko grupy
acl_gedit_except=Opr骳z grup
acl_gedit_gid=Grupy o&nbsp;GID w&nbsp;zakresie
acl_gcreate=Mo縠 tworzyc nowe grupy
acl_gnew=Tylko dla nowych u縴tkownik體
acl_gid=Nry GID dla nowych lub zmodyfikowanych grup
acl_gmultiple=Wi阠ej ni jedna grupa mo縠 mie ten sam nr GID
acl_logins=Mo縠 przegl眃a logowania dla
acl_lnone=痑dnego u縴tkownika
acl_lall=Wszystkich u縴tkownik體
acl_epeopt=Mo縠 zmienia opcje wa縩o禼i hase?
acl_egp=Mo縠 zmienia has砤 dla grup?

log_urename=Przemianowano u縴tkownika $1 na $2
log_umodify=Zmieniono u縴tkownika $1
log_ucreate=Utworzono u縴tkownika $1
log_udelete=Skasowano u縴tkownika $1
log_udeletehome=Skasowano u縴tkownika $1 i&nbsp;katalog $2
log_gmodify=Zmieniono grup $1
log_gcreate=Utworzono grup $1
log_gdelete=Skasowano grup $1

batch_title=Uruchom plik wsadowy
batch_desc=Ten formularz pozwoli Ci utworzy, zmieni lub usun辨 wielu u縴tkownik體 jednocze秐ie na podstawie przes砤nego lub lokalnego pliku tekstowego. Ka縟a linia tego pliku okre秎a pojedy馽z operacj, kt髍ej rodzaj jest okre秎any na podstawie pierwszego pola. Linie mog by postaci&nbsp;:
batch_desc2=<b>create</b>:u縴tkownik:has硂:uid:gid:rzecz_nazwa:kat_domowy:pow硂ka:min:max:ostrz:nieakt:wa縩e<p><b>modify</b>:by砡u縴tkownik:u縴tkownik:has硂:uid:gid:rzecz_nazwa:kat_domowy:pow硂ka:min:max:ostrz:nieakt:wa縩e<p><b>delete</b>:u縴tkownik
batch_desc1=<b>create</b>:u縴tkownik:has硂:uid:gid:rzecz_nazwa:kat_domowy:pow硂ka:klasa<p><b>modify</b>:by砡u縴tkownik:u縴tkownik:has硂:uid:gid:rzecz_nazwa:kat_domowy:pow硂ka:klasa<p><b>delete</b>:u縴tkownik
batch_desc0=<b>create</b>:u縴tkownik:has硂:uid:gid:rzecz_nazwa:kat_domowy:pow硂ka<p><b>modify</b>:by砡u縴tkownik:u縴tkownik:has硂:uid:gid:rzecz_nazwa:kat_domowy:pow硂ka<p><b>delete</b>:u縴tkownik
batch_descafter=Je秎i w&nbsp;liniach <b>create</b> pole <tt>uid</tt> b阣zie puste, Webmin przypisze numer UID automatycznie. Je秎i puste b阣zie pole <tt>gid</tt>, Webmin utworzy now grup o&nbsp;takiej samej nazwie jak u縴tkownik. Pola <tt>u縴tkownik</tt>, <tt>kat_domowy</tt> i&nbsp;<tt>pow硂ka</tt> musz by wype硁ione dla wszystkich u縴tkownik體 - pozosta砮 pola mog by puste. Je秎i puste b阣zie pole <tt>has硂</tt>, nie zostanie przypisane u縴tkownikowi 縜dne has硂. Je秎i zawiera ono liter <tt>x</tt>, konto b阣zie zablokowane. W&nbap;przeciwnym przypadku pole tekstowe zostanie potraktowane jako the has硂 otwartym tekstem i&nbsp;zakodowane.
batch_descafter2=Puste pole w&nbsp;liniach <b>modify</b> oznacza, 縠 odpowiedni atrybut u縴tkownika ma pozosta niezmieniony.
batch_file=Przes砤nego pliku wsadowego
batch_local=Lokalnego pliku wsadowego
batch_makehome=Tworzy katalogi domowe dla nowo utworzonych u縴tkownik體?
batch_copy=Kopiowa pliki do katalog體 domowych utworzonych u縴tkownik體?
batch_movehome=Zmienia nazwy katalog體 domowych zmienionych u縴tkownik體?
batch_chuid=Zmienia UID plik體 zmienionych u縴tkownik體?
batch_chgid=Zmienia GID plik體 zmienionych u縴tkownik體?
batch_delhome=Usuwa katalogi domowe usuni阾ych u縴tkownik體?
batch_upload=Wykonaj wsadowo
batch_elocal=Nie znaleziono pliku lokalnego
batch_efile=Nie wybrano pliku do przes砤nia
batch_elen=Linia $1 nie zawiera p髄 $2
batch_eline=Brak nazwy u縴tkownika w&nbsp;linii $1
batch_euser=Powt髍zona nazwa u縴tkownika w&nbsp;linii $1&nbsp;: $2
batch_egid=Niepoprawny GID w&nbsp;linii $1&nbsp;: $2
batch_ehome=Niepoprawny katalog domowy w&nbsp;linii $1&nbsp;: $2
batch_eshell=Niepoprawna pow硂ka w&nbsp;linii $1&nbsp;: $2
batch_emkdir=Nie uda硂 si utworzy katalogu domowego $1&nbsp;: $2
batch_egtaken=Nazwa grupy z&nbsp;linii $1 ju jest u縴wana&nbsp;: $2
batch_eaction=Niepoprawna operacja w&nbsp;linii $1&nbsp;: $2
batch_enouser=U縴tkownik z&nbsp;linii $1 nie istnieje&nbsp;: $2
batch_emove=Nie uda硂 si zmieni nazwy katalogu domowego z&nbsp;linii $1&nbsp;: $2
batch_created=Utworzono u縴tkownika $1
batch_deleted=Usuni阾o u縴tkownika $1
batch_modified=Zmieniono u縴tkownika $1
   07070100011857000081a40000000000000002000000013ac0388f00001beb000000200000000000000000000000000000001800000003reloc/useradmin/lang/pt   index_title=Utilizadores e Grupos
index_toomany=Existem muitos utilizadores no seu sistema para que possam ser mostrados numa s p醙ina.
index_find=Procurar utilizadores que
index_users=Utilizadores Locais
index_notusers=Voc n鉶 est autorizado para editar quaisquer utilizadores neste sistema
index_createuser=Criar novo utilizador
index_nomoreusers=Voc n鉶 est autorizado para criar mais utilizadores
index_groups=Grupos Locais
index_notgroups=Voc n鉶 est autorizado para editar quaisquer grupos neste sistema
index_creategroup=Criar novo grupo
index_nomoregroups=Voc n鉶 est autorizado para criar mais grupos
index_logins=Mostrar logins por
index_return=lista de utilizadores e grupos
index_equals=igual a
index_matches=coincide com
index_nequals=n鉶 igual a
index_nmatches=n鉶 coincide com

search_title=Resultados da Procura

uedit_title=Editar Utilizador
uedit_title2=Criar Utilizador
uedit_details=Detalhes do Utilizador
user=Nome do utilizador
uid=ID do utilizador
real=Nome real
pass=Palavra de passe
none1=Perguntar no primeiro login
none2=N鉶 necessita de palavra de passe
nologin=N鉶  permitido o login
encrypted=Palavra de passe encriptada
clear=Palavra de passe em texto limpo
home=Direct髍io inicial
uedit_auto=Autom醫ico
shell=Shell
uedit_other=Outro..
uedit_passopts=Op珲es da palavra de passe
change2=Tempo de mudan鏰 da palavra de passe
expire2=Tempo de expira玢o da conta
class=Classe do login
change=Palavra de passe alterada
uedit_never=Nunca
uedit_unknown=Desconhecido
expire=Data de expira玢o
min=Dias m韓imos
max=Dias m醲imos
warn=Dias de aviso
inactive=Dias inactivos
uedit_gmem=Associa玢o do Grupo
group=Grupo prim醨io
uedit_newg=Novo grupo
uedit_2nd=Grupos secund醨ios
onsave=Ao Guardar..
uedit_movehome=Mover o direct髍io inicial se for alterado?
uedit_chuid=Alterar o ID do utilizador nos ficheiros?
uedit_allfiles=Todos os ficheiros
chgid=Alterar o ID do grupo nos ficheiros?
uedit_oncreate=Ao Criar..
uedit_makehome=Criar direct髍io inicial?
uedit_copy=Copiar ficheiros para o direct髍io inicial?
uedit_logins=Mostrar Logins
uedit_ecreate=Voc n鉶 pode criar novos utilizadores
uedit_eedit=Voc n鉶 pode editar este utilizador

usave_err=Erro ao guardar utilizador
usave_eedit=Voc n鉶 pode editar este utilizador
usave_ecreate=Voc n鉶 pode criar novos utilizadores
usave_ebadname='$1' n鉶 um nome de utilizador v醠ido
usave_einuse=o nome de utilizador '$1' j est em uso
usave_einuseg=o nome do grupo '$1' j est em uso
usave_euid='$1' n鉶  um UID v醠ido
usave_elowuid=O UID tem de ser maior ou igual a $1
usave_ehiuid=O UID tem de ser menor ou igual a $1
usave_euidused=O utilizador $1 j est usar o UID $2
usave_ereal='$1' n鉶  um nome real v醠ido
usave_ehome='$1' n鉶  um direct髍io inicial v醠ido
usave_ehomepath=Voc n鉶 est autorizado para criar o direct髍io inicial $1
usave_eshell='$1' n鉶  uma shell permitida
usave_egid='$1' n鉶  um grupo v醠ido
usave_egcreate=O seu sistema est configurado para criar um novo grupo para novos utilizadores, mas voc n鉶 est autorizado para criar grupos
usave_eprimary=Voc n鉶 est autorizado para adicionar este utilizador ao grupo prim醨io $1
usave_esecondary=Voc n鉶 est autorizado adicionar este utilizador ao grupo secund醨io $1
usave_eprimaryr=Voc n鉶 est autorizado para remover este utilizador do grupo prim醨io $1
usave_esecondaryr=Voc n鉶 est autorizado para remover este utilizador do grupo secund醨io $1
usave_emin='$1' n鉶  um periodo m韓imo de mudan鏰 v醠ido
usave_emax='$1' n鉶  um periodo m醲imo de mudan鏰 v醠ido
usave_ewarn='$1' n鉶  um periodo de aviso v醠ido
usave_einactive='$1' n鉶  um periodo inactivo v醠ido
usave_eexpire=data de expira玢o inv醠ida
usave_echange=data de mudan鏰 inv醠ida
usave_eclass='$1' n鉶  uma classe de login v醠ida
usave_emove=erro ao mover direct髍io inicial : $1
usave_emkdir=n鉶 se conseguiu criar o direct髍io inicial : $1
usave_echown=n鉶 se conseguiu alterar o propriet醨io do direct髍io inicial : $1
usave_echmod=n鉶 se conseguiu alterar as permiss鮡s do direct髍io inicial : $1

gedit_title=Editar Grupo
gedit_title2=Criar Grupo
gedit_details=Detalhes do Grupo
gedit_group=Nome do grupo
gedit_gid=ID do grupo
gedit_members=Membros
gedit_homedirs=Direct髍ios iniciais
gedit_allfiles=Todos os ficheiros

gsave_err=Erro ao guardar grupo
gsave_eedit=Voc n鉶 pode editar este grupo
gsave_ecreate=Voc n鉶 pode criar novos grupos
gsave_ebadname='$1' n鉶  um nome de grupo v醠ido
gsave_einuse=o nome do grupo '$1' j est em uso
gsave_egid='$1' n鉶  um GID v醠ido
usave_elowgid=O GID tem de ser maior ou igual a $1
usave_ehigid=O GID tem de ser menor ou igual a $1
usave_egidused=O grupo $1 j est a usar o GID $2

logins_title=Logins Gravados
logins_head=Logins gravados de $1
logins_from=Login De
logins_tty=TTY
logins_in=Login Em
logins_out=Logout 纒
logins_for=Dentro Durante
logins_still=Ainda est dentro
logins_none=N鉶 h logins gravados

udel_title=Apagar Utilizador
udel_err=Erro ao apagar utilizador
udel_euser=Voc n鉶 pode apagar este utilizador
udel_ealready=Este utilizador j foi apagado!
udel_other=A apagar de outros m骴ulos ..
udel_pass=A apagar entrada do ficheiro de palavras de passe ..
udel_groups=A remover dos grupos ..
udel_ugroup=A apagar o grupo deste utilizador ..
udel_home=A apagar o direct髍io inicial ..
udel_done=.. Feito
udel_sure=Tem a certeza que quer apagar o utilizador $1 ? O direct髍io inicial $2 tem $3 kB de ficheiros
udel_sure2=Tem a certeza que quer apagar o utilizador $1 ?
udel_del1=Apagar Utilizador
udel_del2=Apagar Utilizador e Direct髍io Inicial

gdel_title=Apagar Grupo
gdel_err=Erro ao apagar grupo
gdel_egroup=Voc n鉶 pode apagar este grupo
gdel_ealready=Este grupo j foi eliminado!
gdel_group=A apagar entrada do ficheiro de grupos ..
gdel_done=.. Feito
gdel_eprimary=Este  o grupo prim醨io do utilizador $1
gdel_sure=Tem a certeza que quer apagar o grupo $1 ?
gdel_del=Apagar Grupo

acl_uedit=Utilizadores do Unix que podem ser editados
acl_uedit_all=Todos os utilizadores
acl_uedit_none=Nenhuns utilizadores
acl_uedit_only=Apenas utilizadores
acl_uedit_except=Todos excepto os utilizadores
acl_uedit_uid=Utilizadores com UIDs no alcance
acl_uedit_group=Utilizadores com grupo
acl_ucreate=Pode criar novos utilizadores?
acl_uid=UIDs para novos utilizadores ou modificados
acl_umultiple=Mais do que um utilizador pode ter o mesmo UID
acl_ugroups=Grupos autorizados para novos utlizadores ou modificados
acl_all=Todos
acl_shells=Shells autorizadas para novos utlizadores ou modificados
acl_any=Qualquer
acl_listed=Listada..
acl_home=Os direct髍ios iniciais devem estar sobre
acl_autohome=O direct髍io  sempre igual ao nome do utilizador
acl_gedit=Grupos do Unix que podem ser editados
acl_gedit_all=Todos os grupos
acl_gedit_none=Nenhum grupo
acl_gedit_only=Apenas grupos
acl_gedit_except=Todos excepto os grupos
acl_gedit_gid=Grupos com GIDs no alcance
acl_gcreate=Pode criar novos grupos?
acl_gnew=Apenas para novos utilizadores
acl_gid=GIDs para novos grupos ou modificados
acl_gmultiple=Mais do que um grupo pode ter o mesmo GID
acl_logins=Pode mostrar logins por
acl_lnone=Nenhum utilizadores
acl_lall=Todos os utilizadores
 07070100011858000081a40000000000000002000000013ac0388f000021d6000000200000000000000000000000000000001b00000003reloc/useradmin/lang/ru_RU    usave_emax='$1' 礤 怆弪 爨犟桁嚯 镥痂钿铎 桤戾礤龛
acl_gedit_all=埋 沭箫稃
acl_gnew=翌朦觐 潆 眍恹 镱朦珙忄蝈脲
gedit_gid=ID 沭箫稃
usave_emkdir=礤 祛泱 耦玟囹 漕爨栝 赅蜞腩 : $1
many_desc=泥眄 纛痨 镱玮铍弪 锣 耦玟噔囹 祉钽 镱朦珙忄蝈脲 玎 疣 桤 玎沭箧噱祛泐 桦 腩赅朦眍泐 蝈犟蝾忸泐 羿殡. 枢驿 腓龛 羿殡 铒桉噱 钿眍泐 桤 镱朦珙忄蝈脲  耠邃簋 纛痨囹 :
gsave_eedit=蔓 礤 祛驽蝈 疱溧牝桊钼囹  沭箫矬
gedit_members=纂屙 沭箫稃
many_elocal=祟赅朦睇 羿殡 礤 磬殇屙
acl_uedit_none=丸牝
uedit_oncreate=橡 杨玟囗梃..
acl_gedit_none=丸赅觇
usave_emin='$1' 礤 怆弪 扈龛爨朦睇 镥痂钿铎 桤戾礤龛
onsave=橡 杨躔囗屙梃..
nologin=迈钿  耔耱屐 玎镳妁屙
gdel_group=愉嚯屙桢 玎镨皴 羿殡 沭箫 ..
logins_head=青翳犟桊钼囗睇 疱汨耱疣鲨 潆 $1
usave_eprimary=锣 礤 疣琊屮屙 漕徉怆螯 钽 镱朦珙忄蝈  镥疴梓眢 沭箫矬 $1
gsave_einuse=桁 沭箫稃 '$1' 箧 桉镱朦珞弪
udel_sure=蔓 筲屦屙, 黩 恹 躅蜩蝈 箐嚯栩 潆 镱朦珙忄蝈 $1 ? 念爨栝 赅蜞腩 $2 耦溴疰帙栝 $3 梳嚅 桧纛痨圉梃
acl_home=念爨桢 赅蜞腩汨 漕腈睇 磬躅滂蝰 镱
gedit_homedirs=念爨桢 赅蜞腩汨
logins_from=迈钿 
logins_out=吗屐 蔓躅溧
expire2=锐蝈麇龛 耩铌 篦弪眍 玎镨耔
gedit_allfiles=埋 羿殡
uedit_details=相疣戾蝠 项朦珙忄蝈
index_users=祟赅朦睇 项朦珙忄蝈腓
uedit_title=绣溧牝桊钼囗桢 项朦珙忄蝈
index_toomany=央桫觐 祉钽 镱朦珙忄蝈脲  耔耱屐, 黩钺 镱赅玎螯 桴 磬 钿眍 耱疣龛鲥
usave_eshell='$1' 礤 怆弪 漕矬耱桁
acl_uedit_uid=项朦珙忄蝈腓  UID囔  滂囡噻铐 
udel_del1=愉嚯屙桢 项朦珙忄蝈
udel_del2=愉嚯屙桢 项朦珙忄蝈  念爨邈 枢蜞腩汔
usave_euid='$1' 礤 怆忮蝰 漕矬耱桁 UID
gsave_ecreate=蔓 礤 祛驽蝈 耦玟噔囹 眍恹 沭箫稃
usave_elowgid=GID 漕腈屙 猁螯 犷朦 桦 疣忮 $1
acl_umultiple=令脲 钿眍泐 镱朦珙忄蝈 桁妣 钿桧嚓钼 UID
usave_eprimaryr=锣 礤 疣琊屮屙 箐嚯螯 钽 镱朦珙忄蝈 桤 镥疴梓眍 沭箫稃 $1
index_nmatches=礤 耦怙噤噱
gdel_sure=蔓 筲屦屙, 黩 恹 躅蜩蝈 箐嚯栩 沭箫矬 $1 ?
index_nequals=礤 疣忮韓ot 
many_egid=湾忮痦 GID  耱痤赍 $1 : $2
index_find=项桉 镱朦珙忄蝈脲, 麇
gdel_ealready=泥眄 沭箫镟 箧 箐嚯屙!
udel_euser=蔓 礤 祛驽蝈 箐嚯栩 钽 镱朦珙忄蝈
inactive=湾嚓蜩忭 漤彘
search_title=绣珞朦蜞螓 项桉赅
udel_title=愉嚯屙桢 项朦珙忄蝈
usave_egidused=灭箫镟 $1 箧 桉镱朦珞弪 GID $2
index_notusers=锣 礤 疣琊屮屙 疱溧牝桊钼囗螯 镱朦珙忄蝈脲 溧眄铋 耔耱屐
index_createuser=杨玟囗桢 眍忸泐 镱朦珙忄蝈
gdel_title=愉嚯屙桢 灭箫稃
gdel_err=硒栳赅 镳 箐嚯屙梃 沭箫稃
many_makehome=杨玟噔囹 漕爨桢 赅蜞腩汨?
acl_epeopt=填驽 疱溧牝桊钼囹 镟疣戾蝠 篑蜞疱忄龛?
acl_all=埋
acl_any=塔猁
acl_egp=填驽 疱溧牝桊钼囹 沭箫镱恹 镟痤腓?
usave_ehiuid=UID 漕腈屙 猁螯 戾睃 桦 疣忮 $1
shell=Shell
usave_ehomepath=锣 礤 疣琊屮屙 耦玟噔囹 漕爨栝 赅蜞腩 $1
chgid=如戾龛螯 ID 沭箫稃 磬 羿殡?
acl_gmultiple=令脲 钿眍 沭箫稃 祛泱 桁弪 钿桧嚓钼 GID
uedit_gmem=橡桧噤脲骓铖螯  灭箫镟
usave_err=硒栳赅 镳 耦躔囗屙梃 镱朦珙忄蝈
uedit_never=丸觐沅
gedit_group=褥 沭箫稃
index_equals=疣忮
index_nomoregroups=锣 礤 疣琊屮屙 耦玟噔囹 沭箫稃
index_createmany=武眍怵屐屙眍 耦玟囗桢 镱朦珙忄蝈脲
acl_uedit=项朦珙忄蝈腓 Unix, 觐蝾瘥 祛泱 猁螯 铗疱溧牝桊钼囗 
index_logins=项赅玎螯 疱汨耱疣鲨
uedit_title2=杨玟囗桢 项朦珙忄蝈
pass=相痤朦
usave_eexpire=礤忮痦 溧蜞 桉蝈麇龛
many_efile=湾 恹狃囗 羿殡 潆 玎沭箸觇
many_local=祟赅朦睇 羿殡  眍恹扈 镱朦珙忄蝈扈
none1=扬痤耔螯 镳 镥疴铎 怩钿
gsave_ebadname='$1' 礤 怆弪 漕矬耱桁 桁屙屐 沭箫稃
none2=湾 蝠遽箦 镟痤
usave_echown=礤 祛泱 耢屙栩 怆噤咫 漕爨邈 赅蜞腩汔 : $1
acl_listed=如 耧桉赅..
group=襄疴梓磬 沭箫镟
udel_sure2=蔓 筲屦屙, 黩 恹 躅蜩蝈 箐嚯栩 镱朦珙忄蝈 $1 ?
usave_euidused=项朦珙忄蝈朦 $1 箧 桉镱朦珞弪 UID $2
usave_egcreate=锣 耔耱屐 磬耱痤屙 磬 耦玟囗桢 眍恹 沭箫 潆 眍恹 镱朦珙忄蝈脲, 眍 忄 礤 疣琊屮屙 耦玟噔囹 眍恹 沭箫稃
logins_tty=TTY
usave_esecondary=锣 礤 疣琊屮屙 漕徉怆螯 钽 镱朦珙忄蝈 忸 怛铕梓眢 沭箫矬 $1
many_ok=杨玟囗 镱朦珙忄蝈朦 $1
usave_echange=礤忮痦 溧蜞 桤戾礤龛
usave_egid='$1' 礤 怆弪 漕矬耱桁铋 沭箫镱
gsave_err=硒栳赅 镳 耦躔囗屙梃 沭箫稃
uedit_makehome=杨玟噔囹 漕爨栝 赅蜞腩?
acl_autohome=念爨桢 赅蜞腩汨 耦怙噤帼  桁屙囔 镱朦珙忄蝈脲
acl_lall=埋艴 镱朦珙忄蝈脲
acl_logins=填驽 镳铖爨蝠桠囹 疱汨耱疣鲨
udel_pass=愉嚯屙桢 疱汨耱疣鲨铐眍 玎镨耔 桤 羿殡 镱朦珙忄蝈脲 ..
gsave_egid='$1' 礤 怆弪 漕矬耱桁 GID
logins_none=湾 青镨皴  绣汨耱疣鲨
uedit_logins=项赅琨忄螯 绣汨耱疣鲨
uedit_unknown=湾桤忮耱眍
acl_uedit_group=项朦珙忄蝈腓  沭箫镱
usave_ecreate=蔓 礤 祛驽蝈 耦玟噔囹 眍恹 镱朦珙忄蝈脲
udel_groups=愉嚯屙桢 桤 沭箫 ..
acl_lnone=丸觐泐
acl_uedit_except=埋 牮铎 镱朦珙忄蝈脲
acl_uedit_only=翌朦觐 镱朦珙忄蝈腓
many_elen=羊痤赅 $1 礤 耦溴疰栩 镱脲 $2
usave_einactive='$1' 礤 怆弪 漕矬耱桁 镥痂钿铎 礤嚓蜩忭铖蜩
acl_gedit_only=翌朦觐 沭箫稃
acl_gcreate=填驽 耦玟噔囹 眍恹 沭箫稃?
udel_err=硒栳赅 镳 箐嚯屙梃 镱朦珙忄蝈
uedit_movehome=襄疱戾耱栩 漕爨栝 赅蜞腩, 羼腓 桤戾龛腭?
many_ehome=湾漕矬耱桁 漕爨栝 赅蜞腩  耱痤赍 $1 : $2
uedit_allfiles=埋 羿殡
gedit_title=绣溧牝桊钼囗桢 灭箫稃
acl_gedit_gid=灭箫稃  GID囔  滂囡噻铐
many_file=青沭箧噱禧 羿殡  眍恹扈 镱朦珙忄蝈扈
udel_ealready=蒡铗 镱朦珙忄蝈朦 箧 箐嚯屙!
acl_uid=UID 潆 眍恹 桦 祛滂翳鲨痤忄囗睇 镱朦珙忄蝈脲
index_return=耧桉铌 镱朦珙忄蝈脲  沭箫
uedit_chuid=如戾龛螯 ID 镱朦珙忄蝈 磬 羿殡?
usave_ehigid=GID 漕腈屙 猁螯 戾睃 桦 疣忮 $1
many_euser=项怛铕邋 桁 镱朦珙忄蝈  耱痤赍 $1 : $2
usave_eedit=蔓 礤 祛驽蝈 疱溧牝桊钼囹 钽 镱朦珙忄蝈
many_title=武眍怵屐屙眍 杨玟囗桢 项朦珙忄蝈脲
many_upload=杨玟囹 镱朦珙忄蝈脲
logins_for=袜 髓龛
usave_einuseg=桁 沭箫稃the '$1' 箧 桉镱朦珞弪
many_desc0=username:passwd:uid:gid:realname:homedir:shell
many_desc1=username:passwd:uid:gid:realname:homedir:shell:class:change:expire
many_desc2=username:passwd:uid:gid:realname:homedir:shell:min:max:warn:inactive:expire
logins_title=青翳犟桊钼囗睇 绣汨耱疣鲨
index_groups=祟赅朦睇 灭箫稃
gedit_title2=杨玟囗桢 灭箫稃
index_notgroups=锣 礤 疣琊屮屙 疱溧牝桊钼囗螯 沭箫稃 磬 溧眄铋 耔耱屐
acl_ucreate=填驽 耦玟噔囹 眍忸泐 镱朦珙忄蝈?
logins_still=埋 妁 玎疱汨耱痂痤忄  耔耱屐
index_matches=耦怙噤噱
usave_eclass='$1' 礤 怆弪 漕矬耱桁 觌囫耦 疱汨耱疣鲨
expire=泥蜞 桉蝈麇龛 耩铌
acl_shells=朽琊屮屙睇 shell 潆 眍恹 桦 桤戾礤眄 镱朦珙忄蝈脲
gdel_egroup=蔓 礤 祛驽蝈 箐嚯栩  沭箫矬
uedit_other=酿筱铋..
uedit_newg=皖忄 沭箫镟
max=锑犟桁嚯 漤彘
warn=橡邃箫疱驿屙桢 漤彘
usave_einuse=桁 镱朦珙忄蝈 '$1' 箧 桉镱朦珞弪
many_emkdir=硒栳赅 镳 耦玟囗梃 漕爨邈 赅蜞腩汔 $1 : $2
change=鸯屙 镟痤
usave_echmod=礤 祛泱 桤戾龛螯 镳噔 漕耱箫 磬 漕爨栝 赅蜞腩 : $1
uedit_eedit=蔓 礤 祛驽蝈 疱溧牝桊钼囹 钽 镱朦珙忄蝈
gedit_details=相疣戾蝠 灭箫稃
uedit_ecreate=蔓 礤 祛驽蝈 耦玟囹 眍忸泐 镱朦珙忄蝈
index_title=项朦珙忄蝈腓  灭箫稃
usave_ewarn='$1' 礤 怆弪 漕矬耱桁 镥痂钿铎 镳邃箫疱驿屙
acl_gedit_except=埋 牮铎 沭箫
uedit_2nd=买铕梓睇 沭箫稃
clear=义犟蝾恹 镟痤朦
usave_ebadname='$1' 礤 怆忮蝰 漕矬耱桁 桁屙屐 镱朦珙忄蝈
usave_emove=铠栳赅 镳 镥疱戾龛 漕爨邈 赅蜞腩汔 : $1
usave_esecondaryr=锣 礤 疣琊屮屙 箐嚯螯 钽 镱朦珙忄蝈 桤 怛铕梓眍 沭箫稃 $1
min=惕龛爨朦眍 漤彘
index_creategroup=杨玟囗桢 眍忸 沭箫稃
real=袜耱 桁/暑祆屙蜞痂
acl_gid=GID 潆 眍恹 桦 桤戾礤眄 沭箫
udel_done=.. 蔓镱腠屙
uedit_copy=暑镨痤忄螯 羿殡  漕爨栝 赅蜞腩?
change2=吗屐 耢屙 镟痤
home=念爨栝 赅蜞腩
uedit_passopts=相疣戾蝠 相痤
acl_uedit_all=埋 镱朦珙忄蝈腓
udel_other=愉嚯屙桢 桤 漯筱桴 祛潴脲 ..
usave_ereal='$1' 礤 怆弪 漕矬耱桁 疱嚯 桁屙屐
many_copy=暑镨痤忄螯 羿殡  漕爨桢 赅蜞腩汨?
acl_ugroups=朽琊屮屙睇 沭箫稃 潆 眍恹 桦 桤戾礤眄 镱朦珙忄蝈脲
usave_ehome='$1' 礤 怆弪 漕矬耱桁 漕爨桁 赅蜞腩泐
many_descafter=篷腓 镱脲 <tt>uid</tt> 铖蜞忤螯 矬耱, Webmin 噔蝾爨蜩麇耜 镳桉忸栩 UID. 项 <tt>username</tt>, <tt>gid</tt>, <tt>homedir</tt>  <tt>shell</tt> 漕腈睇 猁螯  磬腓麒 潆 赅驿钽 镱朦珙忄蝈 - 怦 铖蜞朦睇 镱 祛泱 猁螯 矬耱.
encrypted=罔麴钼囗睇 镟痤朦
gdel_del=愉嚯屙桢 灭箫稃
class=孰囫 疱汨耱疣鲨
logins_in=吗屐 迈钿
usave_elowuid=UID 漕腈屙 猁螯 犷朦 桦 疣忮 $1
user=褥
acl_gedit=灭箫稃 Unix, 觐蝾瘥 祛泱 猁螯 铗疱溧牝桊钼囗睇
uedit_auto=棱蝾爨蜩麇耜
udel_home=愉嚯屙桢 漕爨邈 赅蜞腩汔 ..
many_eshell=湾漕矬耱桁 shell  耱痤赍 at line $1 : $2
index_nomoreusers=锣 礤 疣琊屮屙 耦玟噔囹 镱朦珙忄蝈脲
uid=ID 项朦珙忄蝈
gdel_eprimary=蒡 镥疴梓磬 沭箫镟 潆 镱朦珙忄蝈 $1
gdel_done=.. 蔓镱腠屙
udel_ugroup=愉嚯屙桢 沭箫稃 溧眄钽 镱朦珙忄蝈 ..
  07070100011859000081a40000000000000002000000013ac0388f000021e0000000200000000000000000000000000000001b00000003reloc/useradmin/lang/ru_SU    index_title=鹣特谙琢耘躺  缫招匈
index_toomany=筇邵讼 臀锨 邢特谙琢耘膛  由釉磐, 拊下 邢肆诹载 扇 瘟 夏蜗 釉伊紊门
index_find=鹣捎 邢特谙琢耘膛, 夼
index_users=煜肆特钨 鹣特谙琢耘躺
index_notusers=髁 闻 伊谝袍盼 遗牧嗽梢献廖载 邢特谙琢耘膛 牧挝鲜 由釉磐
index_createuser=笙谀廖膳 蜗紫窍 邢特谙琢耘萄
index_createmany=锬蜗滓磐盼蜗 酉谀廖膳 邢特谙琢耘膛
index_nomoreusers=髁 闻 伊谝袍盼 酉谀磷猎 邢特谙琢耘膛
index_groups=煜肆特钨 缫招匈
index_notgroups=髁 闻 伊谝袍盼 遗牧嗽梢献廖载 且招匈 瘟 牧挝鲜 由釉磐
index_creategroup=笙谀廖膳 蜗紫 且招匈
index_nomoregroups=髁 闻 伊谝袍盼 酉谀磷猎 且招匈
index_logins=鹣肆诹载 遗巧釉伊蒙
index_return=有捎纤 邢特谙琢耘膛  且招
index_equals=伊着
index_matches=酉仔聊僚
index_nequals=闻 伊着蝞ot 
index_nmatches=闻 酉仔聊僚

search_title=蚺谡特粤再 鹣捎肆

uedit_title=蚺牧嗽梢献廖膳 鹣特谙琢耘萄
uedit_title2=笙谀廖膳 鹣特谙琢耘萄
uedit_details=鹆伊团砸 鹣特谙琢耘萄
user=橥
uid=ID 鹣特谙琢耘萄
real=盍釉涎菖 赏/胂屯盼粤疑
pass=鹆蚁特
none1=笮蚁由载 幸 信易贤 兹夏
none2=钆 砸怕张 辛蚁萄
nologin=魅夏  由釉磐 诹幸泡盼
encrypted=埔献廖钨 辛蚁特
clear=襞擞韵踪 辛蚁特
home=湎土畚墒 肆粤滔
uedit_auto=嶙韵土陨夼铀
shell=Shell
uedit_other=湟涨鲜..
uedit_passopts=鹆伊团砸 鹆蚁萄
change2=饕磐 油盼 辛蚁萄
expire2=橛耘夼紊 右纤 辙旁蜗 诹猩由
class=胩劣 遗巧釉伊蒙
change=笸盼 辛蚁萄
uedit_never=钌讼悄
uedit_unknown=钆哨着釉蜗
expire=淞粤 捎耘夼紊 右纤
min=砩紊土特蜗 奈攀
max=砹擞赏撂匚 奈攀
warn=鹨拍招遗帜盼膳 奈攀
inactive=钆了陨孜 奈攀
uedit_gmem=鹨晌聊膛治嫌载  缫招辛
group=鹋易赊瘟 且招辛
uedit_newg=钕琢 且招辛
uedit_2nd=髟弦赊钨 且招匈
onsave=鹨 笙纫廖盼缮..
uedit_movehome=鹋遗团釉稍 南土畚墒 肆粤滔, 庞躺 哨团紊逃?
uedit_chuid=橼团紊载 ID 邢特谙琢耘萄 瘟 屏侍?
uedit_allfiles=饔 屏侍
chgid=橼团紊载 ID 且招匈 瘟 屏侍?
uedit_oncreate=鹨 笙谀廖缮..
uedit_makehome=笙谀磷猎 南土畚墒 肆粤滔?
uedit_copy=胂猩蚁琢载 屏侍  南土畚墒 肆粤滔?
uedit_logins=鹣肆谫琢载 蚺巧釉伊蒙
uedit_ecreate=髻 闻 拖峙耘 酉谀猎 蜗紫窍 邢特谙琢耘萄
uedit_eedit=髻 闻 拖峙耘 遗牧嗽梢献猎 茉锨 邢特谙琢耘萄

usave_err=镗陕肆 幸 酉纫廖盼缮 邢特谙琢耘萄
usave_eedit=髻 闻 拖峙耘 遗牧嗽梢献猎 茉锨 邢特谙琢耘萄
usave_ecreate=髻 闻 拖峙耘 酉谀磷猎 蜗踪 邢特谙琢耘膛
usave_ebadname='$1' 闻 炎套旁友 南姓釉赏偻 赏盼磐 邢特谙琢耘萄
usave_einuse=赏 邢特谙琢耘萄 '$1' 罩 捎邢特谡旁友
usave_einuseg=赏 且招匈the '$1' 罩 捎邢特谡旁友
usave_euid='$1' 闻 炎套旁友 南姓釉赏偻 UID
usave_elowuid=UID 南讨盼 沦载 孪特叟 商 伊着 $1
usave_ehiuid=UID 南讨盼 沦载 团呜叟 商 伊着 $1
usave_euidused=鹣特谙琢耘特 $1 罩 捎邢特谡旁 UID $2
usave_ereal='$1' 闻 炎萄旁友 南姓釉赏偻 遗撂匚偻 赏盼磐
usave_ehome='$1' 闻 炎萄旁友 南姓釉赏偻 南土畚赏 肆粤滔窍
usave_ehomepath=髁 闻 伊谝袍盼 酉谀磷猎 南土畚墒 肆粤滔 $1
usave_eshell='$1' 闻 炎萄旁友 南姓釉赏偻
usave_egid='$1' 闻 炎萄旁友 南姓釉赏鲜 且招邢
usave_egcreate=髁哿 由釉磐 瘟釉蚁盼 瘟 酉谀廖膳 蜗踪 且招 奶 蜗踪 邢特谙琢耘膛, 蜗 琢 闻 伊谝袍盼 酉谀磷猎 蜗踪 且招匈
usave_eprimary=髁 闻 伊谝袍盼 南铝滋言 茉锨 邢特谙琢耘萄  信易赊握 且招姓 $1
usave_esecondary=髁 闻 伊谝袍盼 南铝滋言 茉锨 邢特谙琢耘萄 紫 自弦赊握 且招姓 $1
usave_eprimaryr=髁 闻 伊谝袍盼 漳撂言 茉锨 邢特谙琢耘萄 哨 信易赊蜗 且招匈 $1
usave_esecondaryr=髁 闻 伊谝袍盼 漳撂言 茉锨 邢特谙琢耘萄 哨 自弦赊蜗 且招匈 $1
usave_emin='$1' 闻 炎萄旁友 蜕紊土特钨 信疑夏贤 哨团闻紊
usave_emax='$1' 闻 炎萄旁友 土擞赏撂匚偻 信疑夏贤 哨团闻紊
usave_ewarn='$1' 闻 炎萄旁友 南姓釉赏偻 信疑夏贤 幸拍招遗帜盼裳
usave_einactive='$1' 闻 炎萄旁友 南姓釉赏偻 信疑夏贤 闻了陨孜嫌陨
usave_eexpire=闻着椅裂 牧粤 捎耘夼紊
usave_echange=闻着椅裂 牧粤 哨团闻紊
usave_eclass='$1' 闻 炎萄旁友 南姓釉赏偻 颂劣酉 遗巧釉伊蒙
usave_emove=羡陕肆 幸 信遗团菖紊 南土畚徘 肆粤滔橇 : $1
usave_emkdir=闻 拖钦 酉谀猎 南土畚墒 肆粤滔 : $1
usave_echown=闻 拖钦 油盼稍 滋聊盘孛 南土畚徘 肆粤滔橇 : $1
usave_echmod=闻 拖钦 哨团紊载 幸磷 南釉招 瘟 南土畚墒 肆粤滔 : $1

gedit_title=蚺牧嗽梢献廖膳 缫招匈
gedit_title2=笙谀廖膳 缫招匈
gedit_details=鹆伊团砸 缫招匈
gedit_group=橥 且招匈
gedit_gid=ID 且招匈
gedit_members=盼 且招匈
gedit_homedirs=湎土畚膳 肆粤滔巧
gedit_allfiles=饔 屏侍

gsave_err=镗陕肆 幸 酉纫廖盼缮 且招匈
gsave_eedit=髻 闻 拖峙耘 遗牧嗽梢献猎 茉 且招姓
gsave_ecreate=髻 闻 拖峙耘 酉谀磷猎 蜗踪 且招匈
gsave_ebadname='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 且招匈
gsave_einuse=赏 且招匈 '$1' 罩 捎邢特谡旁友
gsave_egid='$1' 闻 炎萄旁友 南姓釉赏偻 GID
usave_elowgid=GID 南讨盼 沦载 孪特叟 商 伊着 $1
usave_ehigid=GID 南讨盼 沦载 团呜叟 商 伊着 $1
usave_egidused=缫招辛 $1 罩 捎邢特谡旁 GID $2

logins_title=粕擞梢献廖钨 蚺巧釉伊蒙
logins_head=粕擞梢献廖钨 遗巧釉伊蒙 奶 $1
logins_from=魅夏 
logins_tty=TTY
logins_in=饕磐 魅夏
logins_out=饕磐 髻认牧
logins_for=盍 焐紊
logins_still=饔 泡 诹遗巧釉疑蚁琢  由釉磐
logins_none=钆 猩优  蚺巧釉伊蒙

udel_title=跄撂盼膳 鹣特谙琢耘萄
udel_err=镗陕肆 幸 漳撂盼缮 邢特谙琢耘萄
udel_euser=髻 闻 拖峙耘 漳撂稍 茉锨 邢特谙琢耘萄
udel_ealready=显 邢特谙琢耘特 罩 漳撂盼!
udel_other=跄撂盼膳 哨 囊涨扇 拖恼膛 ..
udel_pass=跄撂盼膳 遗巧釉伊蒙衔蜗 诹猩由 哨 屏侍 邢特谙琢耘膛 ..
udel_groups=跄撂盼膳 哨 且招 ..
udel_ugroup=跄撂盼膳 且招匈 牧挝锨 邢特谙琢耘萄 ..
udel_home=跄撂盼膳 南土畚徘 肆粤滔橇 ..
udel_done=.. 髻邢涛盼
udel_sure=髻 兆乓盼, 拊 踪 认陨耘 漳撂稍 奶 邢特谙琢耘萄 $1 ? 湎土畚墒 肆粤滔 $2 酉呐抑凛墒 $3 肼潦 晌葡彝撩缮
udel_sure2=髻 兆乓盼, 拊 踪 认陨耘 漳撂稍 邢特谙琢耘萄 $1 ?
udel_del1=跄撂盼膳 鹣特谙琢耘萄
udel_del2=跄撂盼膳 鹣特谙琢耘萄  湎土畚徘 肓粤滔橇

gdel_title=跄撂盼膳 缫招匈
gdel_err=镗陕肆 幸 漳撂盼缮 且招匈
gdel_egroup=髻 闻 拖峙耘 漳撂稍 茉 且招姓
gdel_ealready=淞挝裂 且招辛 罩 漳撂盼!
gdel_group=跄撂盼膳 诹猩优 屏侍 且招 ..
gdel_done=.. 髻邢涛盼
gdel_eprimary= 信易赊瘟 且招辛 奶 邢特谙琢耘萄 $1
gdel_sure=髻 兆乓盼, 拊 踪 认陨耘 漳撂稍 且招姓 $1 ?
gdel_del=跄撂盼膳 缫招匈

many_title=锬蜗滓磐盼蜗 笙谀廖膳 鹣特谙琢耘膛
many_desc=淞挝裂 葡彝 邢谧咸雅 髁 酉谀磷猎 臀锨 邢特谙琢耘膛 诹 伊 哨 诹且罩僚拖窍 商 滔肆特蜗窍 耘擞韵紫窍 屏侍. 肓帜裂 躺紊 屏侍 闲捎僮僚 夏蜗窍 哨 邢特谙琢耘膛  犹拍绽菖 葡彝猎 :
many_desc2=username:passwd:uid:gid:realname:homedir:shell:min:max:warn:inactive:expire
many_desc1=username:passwd:uid:gid:realname:homedir:shell:class:change:expire
many_desc0=username:passwd:uid:gid:realname:homedir:shell
many_descafter=逵躺 邢膛 <tt>uid</tt> 嫌粤咨载 姓釉偻, Webmin 磷韵土陨夼铀 幸捎紫稍 UID. 鹣萄 <tt>username</tt>, <tt>gid</tt>, <tt>homedir</tt>  <tt>shell</tt> 南讨钨 沦载  瘟躺奚 奶 肆帜锨 邢特谙琢耘萄 - 子 嫌粤特钨 邢萄 拖钦 沦载 姓釉偻.
many_file=且罩僚唾 屏侍  蜗踪蜕 邢特谙琢耘萄蜕
many_local=煜肆特钨 屏侍  蜗踪蜕 邢特谙琢耘萄蜕
many_makehome=笙谀磷猎 南土畚膳 肆粤滔巧?
many_copy=胂猩蚁琢载 屏侍  南土畚膳 肆粤滔巧?
many_upload=笙谀猎 邢特谙琢耘膛
many_elocal=煜肆特钨 屏侍 闻 瘟誓盼
many_efile=钆 踪乱廖 屏侍 奶 诹且遮松
many_elen=笤蚁肆 $1 闻 酉呐抑稍 邢膛 $2
many_euser=鹣自弦牙菖庞 赏 邢特谙琢耘萄  釉蚁伺 $1 : $2
many_egid=钆着椅偈 GID  釉蚁伺 $1 : $2
many_ehome=钆南姓釉赏偈 南土畚墒 肆粤滔  釉蚁伺 $1 : $2
many_eshell=钆南姓釉赏偈 shell  釉蚁伺 at line $1 : $2
many_emkdir=镗陕肆 幸 酉谀廖缮 南土畚徘 肆粤滔橇 $1 : $2
many_ok=笙谀廖 邢特谙琢耘特 $1

acl_uedit=鹣特谙琢耘躺 Unix, 讼韵屹 拖钦 沦载 显遗牧嗽梢献廖 
acl_uedit_all=饔 邢特谙琢耘躺
acl_uedit_none=钌嗽
acl_uedit_only=粝特讼 邢特谙琢耘躺
acl_uedit_except=饔 艘贤 邢特谙琢耘膛
acl_uedit_uid=鹣特谙琢耘躺  UID镣  纳列邻衔 
acl_uedit_group=鹣特谙琢耘躺  且招邢
acl_ucreate=硐峙 酉谀磷猎 蜗紫窍 邢特谙琢耘萄?
acl_uid=UID 奶 蜗踪 商 拖纳粕蒙蚁琢廖钨 邢特谙琢耘膛
acl_umultiple=庀膛 夏蜗窍 邢特谙琢耘萄 赏爬 夏晌了献偈 UID
acl_ugroups=蛄谝袍盼钨 且招匈 奶 蜗踪 商 哨团闻挝偃 邢特谙琢耘膛
acl_all=饔
acl_shells=蛄谝袍盼钨 shell 奶 蜗踪 商 哨团闻挝偃 邢特谙琢耘膛
acl_any=炖沦
acl_listed=橼 有捎肆..
acl_home=湎土畚膳 肆粤滔巧 南讨钨 瘟认纳杂 邢
acl_autohome=湎土畚膳 肆粤滔巧 酉仔聊晾  赏盼镣 邢特谙琢耘膛
acl_gedit=缫招匈 Unix, 讼韵屹 拖钦 沦载 显遗牧嗽梢献廖钨
acl_gedit_all=饔 且招匈
acl_gedit_none=钌肆松
acl_gedit_only=粝特讼 且招匈
acl_gedit_except=饔 艘贤 且招
acl_gedit_gid=缫招匈  GID镣  纳列邻衔
acl_gcreate=硐峙 酉谀磷猎 蜗踪 且招匈?
acl_gnew=粝特讼 奶 蜗踪 邢特谙琢耘膛
acl_gid=GID 奶 蜗踪 商 哨团闻挝偃 且招
acl_gmultiple=庀膛 夏蜗 且招匈 拖钦 赏旁 夏晌了献偈 GID
acl_logins=硐峙 幸嫌土砸勺猎 遗巧釉伊蒙
acl_lnone=钌讼窍
acl_lall=饔湃 邢特谙琢耘膛
acl_epeopt=硐峙 遗牧嗽梢献猎 辛伊团砸 沼粤遗琢紊?
acl_egp=硐峙 遗牧嗽梢献猎 且招邢踪 辛蚁躺?
0707010001185a000081a40000000000000002000000013ac0388f000030f8000000200000000000000000000000000000001800000003reloc/useradmin/lang/sv   index_title=Anv鋘dare och grupper
index_toomany=Alla anv鋘dare i systemet f錼 inte plats p en sida
index_find=S鰇 anv鋘dare vars
index_gtoomany=Alla grupper i systemet f錼 inte plats p en sida
index_gfind=S鰇 grupper vars
index_ugroup=Prim鋜a grupp
index_users=Lokala anv鋘dare
index_notusers=Du f錼 inte 鋘dra n錱on anv鋘dare i detta system
index_createuser=L鋑g till anv鋘dare
index_batch=Skapa, 鋘dra och ta bort anv鋘dare fr錸 batchfil
index_nomoreusers=Du f錼 inte l鋑ga till fler anv鋘dare
index_groups=Lokala grupper
index_notgroups=Du f錼 inte 鋘dra n錱on grupp i detta system
index_creategroup=L鋑g till grupp
index_nomoregroups=Du f錼 inte l鋑ga till fler grupper
index_logins=Visa inloggningar som
index_return=anv鋘dar- och grupplista
index_equals=鋜 samma som
index_matches=matchar
index_nequals=inte 鋜 samma som
index_nmatches=inte matchar

search_title=S鰇resultat
search_notfound=Inga anv鋘dare matchade s鰇villkoret
search_gnotfound=Inga grupper matchade s鰇villkoret

uedit_title=膎dra anv鋘dare
uedit_title2=L鋑g till anv鋘dare
uedit_details=Uppgifter om anv鋘dare
user=Anv鋘darnamn
uid=Anv鋘dar-ID (UID)
real=Personens namn
pass=L鰏enord
none1=Ange vid f鰎sta inloggning
none2=Inget l鰏enord
nologin=F錼 ej logga in
encrypted=F鰎krypterat l鰏enord
nochange=膎dra inte
clear=Normalt l鰏enord
home=Hemkatalog
uedit_auto=Automatisk
shell=Skal
uedit_other=講riga ...
uedit_passopts=Inst鋖lningar f鰎 l鰏enord
change2=Datum f鰎 鋘dring av l鰏enord
expire2=Livsl鋘gd f鰎 konto
class=Inloggningsklass
change=L鰏enordet 鋘drat
flags=Kontoflaggor
uedit_never=Aldrig
uedit_unknown=Ok鋘d
expire=Upph鰎
min=Minimalt antal dagar
max=Maximalt antal dagar
warn=Varning (dagar)
inactive=Inaktiv (dagar)
uedit_gmem=Gruppmedlemskap
group=Prim鋜 grupp
uedit_newg=Ny grupp
uedit_oldg=Befintlig grupp
uedit_2nd=Sekund鋜a grupper
onsave=N鋜 du sparar ...
uedit_movehome=Flytta hemkatalog vid 鋘dring?
uedit_chuid=Byta anv鋘dar-ID f鰎 filer?
uedit_allfiles=Alla filer
chgid=Byta grupp-ID f鰎 filer?
uedit_oncreate=N鋜 du l鋑ger upp ny ...
uedit_makehome=Skapa hemkatalog?
uedit_copy=Kopiera filer till hemkatalog?
uedit_logins=Visa inloggningar
uedit_mail=L鋝a e-post
uedit_ecreate=Du f錼 inte l鋑ga till anv鋘dare
uedit_eedit=Du f錼 inte 鋘dra denna anv鋘dare
uedit_admin=Det 鋜 bara root som f錼 鋘dra l鰏enord
uedit_admchg=Anv鋘daren m錽te ange ett nytt l鰏enord
uedit_nocheck=Kontrollera inte begr鋘sningar f鰎 l鰏enord

usave_err=Det gick inte att spara anv鋘dare
usave_eedit=Du f錼 inte 鋘dra denna anv鋘dare
usave_ecreate=Du f錼 inte l鋑ga till anv鋘dare
usave_ebadname='$1' 鋜 inte ett giltigt anv鋘darnamn
usave_einuse=anv鋘darnamnet '$1' anv鋘ds redan
usave_einuse_a=anv鋘darnamnet '$1' anv鋘ds redan som e-postalias
usave_einuseg=gruppnamnet '$1' anv鋘ds redan
usave_erename=Du f錼 inte byta namn p anv鋘dare
usave_euid='$1' 鋜 inte ett giltigt UID
usave_elowuid=UID m錽te vara st鰎re 鋘 eller lika med $1
usave_ehiuid=UID m錽te vara mindre 鋘 eller lika med $1
usave_euidused=Anv鋘dare $1 har redan UID $2
usave_ereal='$1' 鋜 inte ett giltigt personnamn
usave_ehome='$1' 鋜 inte en giltig hemkatalog
usave_ehomepath=Du f錼 inte skapa hemkatalog $1
usave_eshell='$1' 鋜 inte ett till錿et skal
usave_egid='$1' 鋜 inte en giltig grupp
usage_egcreate=Du f錼 inte l鋑ga till nya grupper f鰎 nya anv鋘dare
usave_eprimary=Du f錼 inte l鋑ga denna anv鋘dare till den prim鋜a gruppen $1
usave_esecondary=Du f錼 inte l鋑ga denna anv鋘dare till den sekund鋜a gruppen $1
usave_eprimaryr=Du f錼 inte ta bort denna anv鋘dare fr錸 den prim鋜a gruppen $1
usave_esecondaryr=Du f錼 inte ta bort denna anv鋘dare fr錸 den sekund鋜a gruppen $1
usave_emin='$1' 鋜 inte ett giltigt minsta 鋘dringsintervall
usave_emax='$1' 鋜 inte ett giltigt st鰎sta 鋘dringsintervall
usave_ewarn='$1' 鋜 inte ett giltigt varningsintervall
usave_einactive='$1' 鋜 inte en giltig inaktiv period
usave_eexpire=ogiltig livstid
usave_echange=ogiltigt 鋘dringsdatum
usave_eclass='$1' 鋜 inte en giltig inloggningsklass
usave_emove=det gick inte att flytta hemkatalogen: $1
usave_emkdir=det gick inte att skapa hemkatalogen: $1
usave_echown=det gick inte att g鰎a chown f鰎 hemkatalogen: $1
usave_echmod=det gick inte att g鰎a chmod f鰎 hemkatalogen: $1

gedit_title=膎dra grupp
gedit_title2=L鋑g till grupp
gedit_details=Uppgifter om grupp
gedit_group=Gruppnamn
gedit_gid=Grupp-ID
gedit_members=Medlemmar
gedit_homedirs=Hemkataloger
gedit_allfiles=Alla filer
gedit_ecreate=Du f錼 inte skapa nya grupper
gedit_eedit=Du f錼 inte 鋘dra den h鋜 gruppen

gsave_err=Det gick inte att spara grupp
gsave_eedit=Du f錼 inte 鋘dra denna grupp
gsave_ecreate=Du f錼 inte l鋑ga till grupper
gsave_ebadname='$1' 鋜 inte ett giltigt gruppnamn
gsave_einuse=gruppnamn '$1' anv鋘ds redan
gsave_egid='$1' 鋜 inte ett giltigt GID
usave_elowgid=GID m錽te vara st鰎re 鋘 eller lika med $1
usave_ehigid=GID m錽te vara mindre 鋘 eller lika med $1
usave_egidused=Grupp $1 har redan GID $2
usave_efromroot=Du f錼 inte flytta hemkatalogen fr錸 /
usave_etoroot=Du f錼 inte flytta hemkatalogen till /

logins_title=Registrerade inloggningar
logins_head=Registrerade inloggningar f鰎 $1
logins_from=Inloggning fr錸
logins_tty=TTY
logins_in=Loggade in
logins_out=Loggade ut
logins_for=Inloggad i
logins_still=Fortfarande inloggad
logins_none=Inga registrerade inloggningar
logins_elist=Du f錼 inte lista inloggningar
logins_elistu=Du f錼 inte lista inloggningar f鰎 '$1'
logins_local=Lokal

udel_title=Ta bort anv鋘dare
udel_err=Det gick inte att ta bort anv鋘dare
udel_euser=Du f錼 inte ta bort denna anv鋘dare
udel_ealready=Anv鋘daren 鋜 redan borttagen!
udel_echanged=L鰏enordsfilen har 鋘drats. G tillbaka till anv鋘darlistan och v鋖j denna anv鋘dare igen.
udel_other=Tar bort fr錸 鰒riga moduler ...
udel_pass=Tar bort post i l鰏enordsfilen ...
udel_groups=Tar bort fr錸 grupper ...
udel_ugroup=Tar bort anv鋘darens grupp ...
udel_home=Tar bort hemkatalogen ...
udel_done=... anv鋘daren borttagen
udel_sure=Vill du verkligen ta bort anv鋘dare $1? Hemkatalog $2 inneh錶ler filer p totalt $3 kB
udel_sure2=Vill du verkligen ta bort anv鋘dare $1?
udel_del1=Ta bort anv鋘dare
udel_del2=Ta bort anv鋘dare och hemkatalog
udel_others=VARNING! Hemkatalogen $1 inneh錶ler $2 filer som 鋑s av andra anv鋘dare.

gdel_title=Ta bort grupp
gdel_err=Det gick inte att ta bort grupp
gdel_egroup=Du f錼 inte ta bort denna grupp
gdel_ealready=Gruppen 鋜 redan borttagen!
gdel_group=Tar bort post i gruppfilen ...
gdel_done=... gruppen borttagen
gdel_eprimary=Gruppen 鋜 prim鋜 grupp f鰎 anv鋘dare $1
gdel_sure=Vill du verkligen ta bort grupp $1?
gdel_del=Ta bort grupp

many_title=L鋑g till flera anv鋘dare
many_desc=I detta formul鋜 kan du l鋑ga till flera anv鋘dare p en g錸g fr錸 en fil. Varje rad i filen definierar en anv鋘dare p f鰈jande format:
many_desc2=anv鋘darnamn:l鰏enord:uid:gid:personnamn:hemkat:skal:min:max:varn:inaktiv:livstid
many_desc1=anv鋘darnamn:l鰏enord:uid:gid:personnamn:hemkat:skal:klass:鋘dr:livstid
many_desc0=anv鋘darnamn:l鰏enord:uid:gid:personnamn:hemkat:skal
many_descafter=Om <tt>uid</tt>-f鋖tet l鋗nas tomt kommer Webmin automatiskt att tilldela anv鋘daren ett UID. Om <tt>gid</tt>-f鋖tet l鋗nas tomt kommer Webmin att skapa en ny grupp med anv鋘darens namn. <tt>Anv鋘darnamn-</tt>, <tt>gid-</tt>, <tt>hemkat-</tt> och <tt>skal</tt>-f鋖ten m錽te fyllas i f鰎 varje anv鋘dare; 鰒riga f鋖t f錼 l鋗nas tomma.
many_descpass=Om <tt>passwd</tt>-f鋖tet l鋗nas tomt kommer anv鋘daren inte tilldelas n錱ot l鰏enord. Om f鋖tet endast inneh錶ler bokstaven <tt>x</tt>, kommer kontot att vara l錽t. I 鰒riga fall tolkas texten i f鋖tet som l鰏enordet i klartext, och krypteras.
many_file=Nedladdad fil med nya anv鋘dare
many_local=Lokal fil med nya anv鋘dare
many_makehome=Skapa hemkataloger?
many_copy=Kopiera filer till hemkataloger?
many_upload=L鋑g till anv鋘dare
many_elocal=Den lokala filen finns inte
many_efile=Du har inte angivit n錱on fil som ska laddas ned
many_elen=Rad $1 inneh錶ler inte $2 f鋖t
many_eline=Du har inte angivit n錱ot anv鋘darnamn p rad $1
many_euser=舤eranv鋘t anv鋘darnamn p rad $1: $2
many_egid=Ogiltigt GID p rad $1: $2
many_ehome=Ogiltig hemkatalog p rad $1: $2
many_eshell=Ogiltigt skal p rad $1: $2
many_emkdir=Det gick inte att skapa hemkatalog $1: $2
many_egtaken=Gruppnamnet anv鋘ds redan p rad $1: $2
many_ok=Anv鋘dare $1 skapad

acl_uedit=Unix-anv鋘dare som kan 鋘dras
acl_uedit_all=Alla
acl_uedit_none=Inga
acl_uedit_only=Endast
acl_uedit_except=Alla utom
acl_uedit_uid=Anv鋘dare med UID i intervallet
acl_uedit_group=Anv鋘dare med grupp
acl_ucreate=Kunna l鋑ga till anv鋘dare?
acl_uid=UID f鰎 nya och 鋘drade anv鋘dare
acl_umultiple=Mer 鋘 en anv鋘dare f錼 ha samma UID
acl_ugroups=Till錿na grupper f鰎 nya och 鋘drade anv鋘dare
acl_all=Alla
acl_shells=Till錿na skal f鰎 nya och 鋘drade anv鋘dare
acl_any=Alla
acl_listed=F鰈jande ...
acl_home=Hemkataloger m錽te ligga under
acl_autohome=Hemkatalogen har alltid samma namn som anv鋘daren
acl_gedit=Unix-grupper som f錼 鋘dras
acl_gedit_all=Alla
acl_gedit_none=Inga
acl_gedit_only=Endast
acl_gedit_except=Alla utom
acl_gedit_gid=Grupper med GID i intervall
acl_gcreate=Kunna l鋑ga till grupper?
acl_gnew=Endast f鰎 nya anv鋘dare
acl_gid=GID f鰎 nya och 鋘drade grupper
acl_gmultiple=Mer 鋘 en grupp f錼 ha samma GID
acl_logins=Kunna studera inloggningar av
acl_lnone=Inga anv鋘dare
acl_lall=Alla anv鋘dare
acl_epeopt=Kunna 鋘dra inst鋖lningar f鰎 l鰏enordslivsl鋘gd?
acl_egp=Kunna 鋘dra gruppl鰏enord?

log_urename=Bytte namn p anv鋘daren $1 till $2
log_umodify=Modifierade anv鋘daren $1
log_ucreate=Skapade anv鋘daren $1
log_udelete=Tog bort anv鋘daren $1
log_udeletehome=Tog bort anv鋘daren $1 och katalogen $2
log_gmodify=Modifierade gruppen $1
log_gcreate=Skapade gruppen $1
log_gdelete=Tog bort gruppen $1

batch_title=Exekvera batchfil
batch_desc=Med detta formul鋜 kan du skapa, 鋘dra och ta bort m錸ga anv鋘dare p en g錸g fr錸 en nedladdad eller lokal textfil. Varje rad i filen motsvarar en sak som ska g鰎as. Exakt vad som ska g鰎as best鋗s av det f鰎sta f鋖tet p raden. Radformaten 鋜 f鰈jande:
batch_desc2=<b>skapa</b>:username:passwd:uid:gid:realname:homedir:shell:min:max:warn:inactive:expire<p><b>鋘dra</b>:oldusername:username:passwd:uid:gid:realname:homedir:shell:min:max:warn:inactive:expire<p><b>ta bort</b>:username
batch_desc1=<b>skapa</b>:username:passwd:uid:gid:realname:homedir:shell:class<p><b>鋘dra</b>:oldusername:username:passwd:uid:gid:realname:homedir:shell:class<p><b>ta bort</b>:username
batch_desc0=<b>skapa</b>:username:passwd:uid:gid:realname:homedir:shell<p><b>鋘dra</b>:oldusername:username:passwd:uid:gid:realname:homedir:shell<p><b>ta bort</b>:username
batch_descafter=Om <tt>uid</tt>-f鋖tet l鋗nas tomt p en <b>skapa</b>-rad kommer Webmin automatiskt att l鋑ga till ett UID. Om <tt>gid</tt>-f鋖tet 鋜 tomt kommer Webmin att skapa en ny grupp med samma namn som anv鋘daren. <tt>username</tt>-, <tt>homedir</tt>- och <tt>shell</tt>-f鋖ten m錽te fyllas i f鰎 varje anv鋘dare, men 鰒riga f鋖t kan l鋗nas tomma. Om <tt>passwd</tt>-f鋖tet 鋜 tomt kommer inget l鰏enord att s鋞tas f鰎 anv鋘daren. Om det bara inneh錶ler bokstaven <tt>x</tt>, kommer kontot att l錽as f鰎 inloggning. Annars tolkas texten som l鰏enordet i klartext, och krypteras.
batch_descafter2=P <b>鋘dra</b>-rader kommer ett tomt f鋖t att tolkas som att motsvarande anv鋘darparameter inte ska 鋘dras.
batch_file=Nedladdad batchfil
batch_local=Lokal batchfil
batch_makehome=Skapa hemkataloger f鰎 skapade anv鋘dare?
batch_copy=Kopiera filer till de skapade anv鋘darnas hemkataloger?
batch_movehome=D鰌a om 鋘drade anv鋘dares hemkataloger?
batch_chuid=膎dra UID f鰎 鋘drade anv鋘dares filer?
batch_chgid=膎dra GID f鰎 鋘drade anv鋘dares filer?
batch_delhome=Ta bort hemkataloger f鰎 borttagna anv鋘dare?
batch_upload=Exekvera batchjobbet
batch_elocal=Den lokala filen kunde inte hittas
batch_efile=Du har inte angivit n錱on fil som ska laddas ned
batch_elen=Rad $1 inneh錶ler inte $2 f鋖t
batch_eline=Anv鋘darnamn saknas p rad $1
batch_euser=Anv鋘darnamnet p rad $1 finns redan: $2
batch_egid=Ogiltigt GID p rad $1: $2
batch_ehome=Ogiltig hemkatalog p rad $1: $2
batch_eshell=Ogiltigt skal p rad $1: $2
batch_emkdir=Det gick inte att skapa hemkatalogen $1: $2
batch_egtaken=Gruppnamnet anv鋘ds redan p rad $1: $2
batch_eaction=Ogiltig 錿g鋜d p rad $1: $2
batch_enouser=Anv鋘daren p rad $1 finns inte: $2
batch_emove=Det gick inte att flytta hemkatalogen p rad $1: $2
batch_created=Skapade anv鋘daren $1
batch_deleted=Tog bort anv鋘daren $1
batch_modified=膎drade anv鋘daren $1
0707010001185b000081a40000000000000002000000013ac0388f0000244c000000200000000000000000000000000000001800000003reloc/useradmin/lang/tr   index_title=Kullan齝 ve Gruplar
index_toomany=Bir sayfada g鰏termek i鏸n 鏾k fazla kullan齝 var
index_find=Kullan齝 Ara
index_ugroup=Birincil Grup
index_users=Yerel Kullan齝齦ar
index_notusers=Bu sistemdeki herhangi bir kullan齝 de餴⺶irmek i鏸n izininiz yoktur
index_createuser=Yeni bir kullan齝 olu⺶ur
index_createmany=莖klu kullan齝 olu⺶ur
index_nomoreusers=Daha fazla kullan齝 olu⺶urmak i鏸n izininiz yoktur
index_groups=Yerel Gruplar
index_notgroups=Bu sistemdeki herhangi bir grubu de餴⺶irmek i鏸n izininiz yoktur
index_creategroup=Yeni bir grup olu⺶ur
index_nomoregroups=Daha fazla grup olu⺶urmak i鏸n izininiz yoktur
index_logins=Girieri g鰎黱t黮e
index_return=kullan齝 ve grup listesi
index_equals=e㱮tler
index_matches=denkler
index_nequals=e㱮t yok
index_nmatches=denk yok

search_title=Arama Sonu鏻ar
search_notfound=Aranan kullan齝 bulunamad

uedit_title=Kullan齝 De餴⺶ir
uedit_title2=Kullan齝 Olu⺶ur
uedit_details=Kullan齝 Ayr齨t齦ar
user=Kullan齝 Ad
uid=Kullan齝 ID
real=Ger鏴k 輘mi
pass=辤fre
none1=輑k giri⺶e sor
none2=辤fre gerekli de餴ldir
nologin=Giri izni yok
encrypted=辤frelenmi parola
clear=D鼁 metin parolas gir
home=Ev dizini
uedit_auto=Otomatik
shell=Kabuk
uedit_other=Di餰r..
uedit_passopts=辤fre Se鏴nekleri
change2=㱮fre de餴⺶irme zaman
expire2=Hesap iptal zaman
class=Giri s齨齠
change=辤fre de餴⺶irme zaman
uedit_never=Asla
uedit_unknown=Bilinmeyen
expire=輕tal tarihi
min=En az g黱
max=En 鏾k g黱
warn=Uyar g黱leri
inactive=Aktif olmayan g黱ler
uedit_gmem=Grup 鼀elikleri
group=Birincil grup
uedit_newg=Yeni grup
uedit_oldg=Varolan grup
uedit_2nd=輐incil grup
onsave=Yukar kaydet..
uedit_movehome=De餴⺶irildi ise ev dizini tans齨 m?
uedit_chuid=Dosyadaki kullan齝 ID'leri de餴⺶irilsin m,?
uedit_allfiles=B黷黱 dosyalar
chgid=Dosyalardaki grup ID'leri de餴⺶irilsin mi?
uedit_oncreate=Olu⺶urulacak dizin ve dosyalar..
uedit_makehome=Ev dizini olu⺶urulsun mu?
uedit_copy=Ev dizinine dosyalar kopyalans齨 m?
uedit_logins=Girieri G鰏ter
uedit_mail=E-posta oku
uedit_ecreate=Yeni kullan齝 olu⺶uramazs齨齴
uedit_eedit=Bu kullan齝齳 de餴⺶iremezsiniz

usave_err=Kullan齝齨齨 kaydedilmesinde hata olu⺶u
usave_eedit=Bu kullan齝齳 de餴⺶iremezsiniz
usave_ecreate=Yeni kullan齝 olu⺶uramazs齨齴
usave_ebadname='$1' ge鏴rli bir kullan齝 ad de餴l
usave_einuse='$1' kullan齝 ad her zaman kullan齧da
usave_einuseg='$1' grup ad her zaman kullan齧da
usave_erename=Kullan齝齦ar yeniden isimlendirmek i鏸n izininiz yoktur
usave_euid='$1' ge鏴rli bir UID de餴l
usave_elowuid=UID $1'e e㱮t veya daha b鼀黭 olmal齞齬
usave_ehiuid=UID $1'e e㱮t veya daha k黭 olmal齞齬
usave_euidused=$1 kullan齝齭 $2 UID'y her zaman kullanmaktad齬
usave_ereal='$1' ge鏴rli bir ger鏴k isim de餴l
usave_ehome='$1' ge鏴rli ev dizini de餴l
usave_ehomepath=Ev dizini $1'i olu⺶urmak i鏸n izininiz yoktur
usave_eshell='$1' ge鏴rli bir kullan齦abilir kabuk de餴ldir
usave_egid='$1' ge鏴rli grup de餴ldir
usave_egcreate=Yeni kullan齝齦ar i鏸n yeni grup olu⺶urman齴a izininiz yoktur
usave_eprimary=$1 birincil gurubuna bu kullan齝齳 eklemek i鏸n izininiz yoktur
usave_esecondary=$1 ikincil gurubuna bu kullan齝齳 eklemek i鏸n izininiz yoktur
usave_eprimaryr=$1 birincil gurubundan bu kullan齝齳 silmek i鏸n izininiz yoktur
usave_esecondaryr=$1 ikincil gurubundan bu kullan齝齳 silmek i鏸n izininiz yoktur
usave_emin='$1' ge鏴rli bir en k黭 de餴⺶irme periyodu de餴ldir
usave_emax='$1' ge鏴rli bir en b鼀黭 de餴⺶irme periyodu de餴ldir
usave_ewarn='$1' ge鏴rli bir uyar periyodu de餴ldir
usave_einactive='$1' ge鏴rli bir aktif olmama periyodu de餴ldir
usave_eexpire=yanl iptal tarihi
usave_echange=yanl de餴⺶irme tarihi
usave_eclass='$1' ge鏴rli bir giri s齨齠 de餴ldir
usave_emove=ev dizinini tamada hata : $1
usave_emkdir=ev dizinini olu⺶urmada hata : $1
usave_echown=ev dizininin sahibinin de餴⺶irilmesinde hata : $1
usave_echmod=ev dizinininin haklar齨齨 de餴⺶irilmesinde hata : $1

gedit_title=Grup 葭eri餴ni De餴⺶ir
gedit_title2=Grup Olu⺶ur
gedit_details=Grup Ayr齨t齦ar
gedit_group=Grup ad
gedit_gid=Grup ID
gedit_members=躽eler
gedit_homedirs=Ev dizinleri
gedit_allfiles=B黷黱 dosyalar
gedit_ecreate=Yeni grup olu⺶uramazs齨齴.
gedit_eedit=Bu grubu de餴⺶iremezsiniz.

gsave_err=Grubun kaydedilmesinde hata olu⺶u
gsave_eedit=Bu grubun i鏴ri餴ni de餴⺶iremezsiniz
gsave_ecreate=Yeni grup olu⺶uramazs齨齴
gsave_ebadname='$1' ge鏴rli bir grup ismi de餴l
gsave_einuse='$1'grup ismi her zaman kullan齧da
gsave_egid='$1' ge鏴rli bir GID de餴l
usave_elowgid=GID $1'deb b鼀黭 veya e㱮t olmal齞齬
usave_ehigid=GID $1'den k黭 veya e㱮t olmal齞齬
usave_egidused=$1 grubu $2 GID'sini her zaman kullan齳or
usave_efromroot=/'den ev dizininizi tayamazs齨齴
usave_etoroot=/'e ev dizininizi tayamazs齨齴

logins_title=Kay齮l Girier
logins_head=$1 i鏸n kay齮l girii
logins_from=Giri
logins_tty=TTY
logins_in=Giri
logins_out=驱k
logins_for=On For
logins_still=Halen Sistemde
logins_none=Giri Kay齮lar Yok
logins_elist=Girieri listelemek i鏸n izininiz yoktur
logins_elistu='$1' i鏸n girieri listelemek i鏸n izininiz yoktur
logins_local=Yerel

udel_title=Kullan齝 Silme
udel_err=Kullan齝 silinmesinde hata olu⺶u
udel_euser=Bu kullan齝齳 silemezsiniz
udel_ealready=Bu kullan齝 her zaman silinmi olmal!
udel_echanged=辤fre dosyas de餴⺶irildi.Kullan齝 listesine geri d鰊黱 ve kullan齝齳 tekrar se鏸n
udel_other=Di餰r mod黮lerden siliniyor ..
udel_pass=辤fre dosyas girieri siliniyor ..
udel_groups=Gruplardan siliniyor ..
udel_ugroup=Bu kullan齝齨齨 grubu siliniyor ..
udel_home=Ev dizini siliniyor ..
udel_done=.. Bitti
udel_sure=$1 kullan齝齭齨 silmek istedi餴nizden emin misiniz? Bu kullan齝齨齨 ev dizini $2, $3 kb bilgi i鏴riyor
udel_sure2=$1 kullan齝齭齨 silmek istedi餴nizden emin misiniz?
udel_del1=Kullan齝齳 Sil
udel_del2=Kullan齝 Silme ve Ev Dizini
udel_others=UYARI!$2 dosyalar齨 i鏴ren $1 ev dizini di餰r kullan齝齦ara verildi.

gdel_title=Grup Silme
gdel_err=Grubun silinmesinde hata olu⺶u
gdel_egroup=Bu grubu silemezsiniz
gdel_ealready=Bu grup her zaman silinmi olmal!
gdel_group=Grup dosyas i鏴ri餴 siliniyor ..
gdel_done=.. Bitti
gdel_eprimary=Bu, $1 kullan齝齭齨齨 birincil grubudur
gdel_sure=$1 grubunu silmek istedi餴nizden emin misiniz?
gdel_del=Grubu Sil

many_title=莖klu Kullan齝 Olu⺶ur
many_desc=Bu form y黭lenen bir dosyada veya yerel bir dosyadaki kullan齝齦ar齨 olu⺶urulmas i鏸n kullan齦齬. Takip eden 㧐kilde oldu饀 gibi her sat齬 bir kullan齝齳a karl齥 gelmektedir
many_desc2=kullan齝齙ad:parola:uid:gid:Ger鏴k_輘im:ev_dizini:kabuk:en_az:en_鏾k:uyar:aktif_de餴l:iptal
many_desc1=kullan齝齙ad:parola:uid:gid:Ger鏴k_輘im:ev_dizini:kabuk:s齨齠:de餴⺶irme:iptal
many_desc0=kullan齝齙ad:parola:uid:gid:Ger鏴k_輘im:ev_dizini:kabuk
many_descafter=E餰r <tt>uid</tt> k齭m齨 bo b齬ak齬san齴 Webmin bunu otomatik olarak atayacakt齬.<tt>Kullan齝 ad</tt>, <tt>gid</tt>, <tt> ev dizini</tt> ve <tt>kabuk</tt> her kullan齝 i鏸n girilmelidir. Di餰r b黷黱 b鰈黰ler bo kalabilir.
many_file=Yeni kullan齝齦ar齨 dosyas aktif hale getirilsin
many_local=Yerel yeni kullan齝 listesi
many_makehome=Ev dizinleri olu⺶urulsun mu?
many_copy=Dosyalar ev dizinlerine kopyalans齨 m?
many_upload=Kullan齝齦ar olu⺶ur
many_elocal=Yerel dosya bulunamad
many_efile=Y黭leme i鏸n dosya se鏸lmedi
many_elen=$1 sat齬 $2 bilgisini i鏴rmiyor
many_euser=$1 sat齬齨da 鏸ft kullan齝 ad : $2
many_egid=$1 sat齬齨da ge鏴rsiz GID : $2
many_ehome=$1 sat齬齨da ge鏴rsiz ev dizini : $2
many_eshell=$1 sat齬齨da ge鏴rsiz kabuk : $2
many_emkdir=$1 ev dizininin olu⺶urulmas齨da hata olu⺶u : $2
many_ok=$1 kullan齝齭 olu⺶uruldu

acl_uedit=De餴⺶irebilecek Unix kullan齝齦ar
acl_uedit_all=B黷黱 kullan齝齦ar
acl_uedit_none=Kullan齝 Yok
acl_uedit_only=Sadece kullan齝齦ar
acl_uedit_except=Kullan齝齦ar hari hepsi
acl_uedit_uid=Kullan齝齦ar UID'leri ile birlikte
acl_uedit_group=Kullan齝齦ar gruplar ile
acl_ucreate=Yeni kullan齝齦ar olu⺶urabilsin mi?
acl_uid=Yeni ya da de餴⺶irilmi kullan齝 UID'leri
acl_umultiple=Birden fazla kullan齝 ayn UID'i kullan齬lar
acl_ugroups=Yeni ya da de餴⺶irilmi kullan齝齦ar齨 izin verilen gruplar
acl_all=Hepsi
acl_shells=Yeni ya da de餴⺶irilmi kullan齝齦ar齨 izin verilen kabuklar
acl_any=Herhangi biri
acl_listed=Listeli..
acl_home=Ev dizinleri bu dizinin alt齨da olmal齞齬
acl_autohome=Ev dizini kullan齝 ad ile ayn
acl_gedit=De餴⺶irilebilen Unix gruplar
acl_gedit_all=B黷黱 grup
acl_gedit_none=Hi鏱ir grup
acl_gedit_only=Sadece gruplat
acl_gedit_except=Gruplar hari hepsi
acl_gedit_gid=Gruplar GID'leri ile birlikte
acl_gcreate=Yeni grup olu⺶urabilsin mi?
acl_gnew=Sadece yeni kullan齝齦ar i鏸n
acl_gid=Yeni ya da de餴⺶irilmi gruplar i鏸n GID'ler
acl_gmultiple=Birden fazla grup ayn GID'yi kullan齳or
acl_logins=Girieri g鰎黱t黮eyebilsin
acl_lnone=Kullan齝 yok
acl_lall=B黷黱 kullan齝齦ar
acl_epeopt=辤fre iptal se鏴meklerini de餴⺶irebilsin mi?
acl_egp=Grup 㱮frelerini de餴⺶irebilsin mi?

log_urename=$1 kullan齝齭 $2 olarak yeniden adland齬齦d
log_umodify=$1 kullan齝齭 de餴⺶irildi
log_ucreate=$1 kullan齝齭 olu⺶uruldu
log_udelete=$1 kullan齝齭 silindi
log_udeletehome=$1 kullan齝齭 ve ev dizini $2 silindi
log_gmodify=$1 grubu de餴⺶irildi
log_gcreate=$1 grubu olu⺶uruldu
log_gdelete=$1 grubu silindi

0707010001185c000081a40000000000000002000000013ac0388f0000189c000000200000000000000000000000000000001b00000003reloc/useradmin/lang/zh_CN    index_title=用户与群组
index_toomany=本系统一页上的用户太多
index_find=查找用户
index_ugroup=首要组
index_users=本地用户
index_notusers=不能编辑本系统上的用户
index_createuser=建立新用户
index_createmany=建立多用户
index_nomoreusers=不能建立更多的用户
index_groups=本地组
index_notgroups=不能在本系统上编辑组
index_creategroup=建立新组
index_nomoregroups=不能建立更多的组
index_logins=显示登录在
index_return=用户和组列表
index_equals=等于
index_matches=匹配
index_nequals=不等
index_nmatches=不匹配

search_title=查找结果
search_notfound=没有匹配的用户

uedit_title=编辑用户
uedit_title2=建立用户
uedit_details=用户详细
user=用户名
uid=用户 ID
real=真实姓名
pass=密码
none1=第一次登录时询问
none2=不要求密码
nologin=不允许登录
encrypted=密文密码
nochange=不做改变离开
clear=明文密码
home=用户根目录
uedit_auto=自动
shell=Shell
uedit_other=其它
uedit_passopts=口令选项
change2=口令改变时间
expire2=帐号结束时间
class=登录级别
change=改变口令
uedit_never=从来没有
uedit_unknown=未知
expire=过期时间
min=最小天数
max=最大天数
warn=警告天数
inactive=不使用天数
uedit_gmem=组关系
group=主组
uedit_newg=新组
uedit_oldg=已存在组
uedit_2nd=第二组
onsave=保存时..
uedit_movehome=假若更改了home目录,移动它?
uedit_chuid=改变文件的user ID?
uedit_allfiles=所有文件
chgid=改变文件的group ID?
uedit_oncreate=建立时..
uedit_makehome=建立用户根目录?
uedit_copy=拷贝文件到用户根目录?
uedit_logins=显示登录
uedit_mail=读 Email
uedit_ecreate=不能建立新组
uedit_eedit=不能编辑该用户

usave_err=保存用户失败
usave_eedit=不能编辑该用户
usave_ecreate=不能建立新用户
usave_ebadname=错误的文件名'$1'
usave_einuse=文件名'$1'已经在用
usave_einuseg=组名'$1'已经存在
usave_erename=您不能更改用户名
usave_euid=错误的UID'$1'
usave_elowuid=UID 要大于或等于$1
usave_ehiuid=UID 要小于或等于$1
usave_euidused=用户 $1 已经使用UID $2
usave_ereal='错误的真实名字'$1'
usave_ehome=错误的用户根目录'$1'
usave_ehomepath=不能建立用户根目录 $1
usave_eshell=不允许的shell'$1'
usave_egid=错误的组'$1'
usave_egcreate=系统配置为为新用户建立新组,但你没有建立新组的权力
usave_eprimary=不允许添加这个用户到主组$1
usave_esecondary=不允许添加这个用户到第二组$1
usave_eprimaryr=不允许从主组$1中删除该用户
usave_esecondaryr=不允许从第二组$1中删除该用户
usave_emin=错误的最小改变时期'$1'
usave_emax=错误的最大改变时期'$1'
usave_ewarn=错误的警告时期'$1'
usave_einactive=错误的非使用时期'$1'
usave_eexpire=错误的过期日期
usave_echange=错误的改变日期
usave_eclass=错误的登录类别'$1'
usave_emove=删除目录:$1失败
usave_emkdir=不能建立用户根目录:$1
usave_echown=不能改变目录$1的所有权
usave_echmod=不能改变用户根目录的用户所有权:$1

gedit_title=编辑组
gedit_title2=建立组
gedit_details=组明细
gedit_group=组名
gedit_gid=组ID号
gedit_members=成员
gedit_homedirs=用户根目录
gedit_allfiles=所有文件
gedit_ecreate=您不能创建新组
gedit_eedit=您不能编辑这个组

gsave_err=保存组失败
gsave_eedit=不能编辑本组
gsave_ecreate=不能建立新组
gsave_ebadname=错误的组名'$1'
gsave_einuse=组名'$1'已经存在
gsave_egid='$1' 错误的GID
usave_elowgid=GID 一定要大于等于 $1
usave_ehigid=GID 一定要小于等于$1
usave_egidused=组 $1 已经使用 GID $2
usave_efromroot=不能从 / 移动用户根目录
usave_etoroot=不能把用户根目录移动到 /

logins_title=已经纪录的登录
logins_head=$1 的已经纪录登录
logins_from=登录自
logins_tty=TTY
logins_in=登录在
logins_out=登录在
logins_for=在
logins_still=登录中
logins_none=没有登录纪录
logins_elist=您无权查阅登陆列表
logins_elistu=您无权为 '$1' 查阅登陆列表
logins_local=本地

udel_title=删除用户
udel_err=输出用户失败
udel_euser=不能删除本用户
udel_ealready=这个用户已经删除
udel_echanged=密码已经改变.请返回用户列表重新选择用户
udel_other=从其它模块中删除..
udel_pass=删除密码文件入口..
udel_groups=从组中删除 ..
udel_ugroup=删除用户组..
udel_home=删除用户根目录..
udel_done=.. 执行
udel_sure=是否删除用户$1? 用户根目录$2 包含 $3 kB 的文件
udel_sure2=确认删除用户 $1 ?
udel_del1=删除用户
udel_del2=删除用户和用户根目录
udel_others=警告! Home 目录 $1包含属于其他用户的文件.

gdel_title=删除组
gdel_err=删除组失败
gdel_egroup=不能删除该组
gdel_ealready=这个组已经删除!
gdel_group=删除组文件入口..
gdel_done=.. 执行
gdel_eprimary=这是用户 $1 的主组
gdel_sure=确认删除组 $1?
gdel_del=删除组

many_title=建立多用户
many_desc=这个表格可以利用上传或下载的文本文件一次建立多个用户.每行一个用户格式如下:
many_desc2=用户名:口令:用户id:组id:真实名称:用户根目录:shell:分:最大:警告:非使用:过期
many_desc1=用户名:口令:用户id:组id:真实名称:用户根目录:shell:级别:变更:过期
many_desc0=用户名:口令:用户id:组id:真实名称:用户根目录:shell
many_descafter=如果<tt>用户id</tt>域是空的, Webmin 会自动添加用户ID. <tt>用户名</tt>, <tt>组id</tt>, <tt>用户根目录</tt> 和 <tt>shell</tt> 域每各用户一定要有 - 其它域可以为空
many_descpass=如果<tt>口令</tt>为空,就没有为用户设计口令.如果它只包含<tt>x</tt>,该帐号将被锁定.否者,此处的文本将被置成加密后的密文.
many_file=上传新用户文件
many_local=本地新用户文件
many_makehome=建立用户根目录?
many_copy=拷贝文件到用户根目录?
many_upload=建立用户
many_elocal=没有找到本地文件
many_efile=没有选择上传的文件
many_elen=行 $1 没有包含 $2 文件
many_eline=在行 $1 丢失用户名
many_euser=重复的用户名在行 $1 : $2
many_egid=错误的 组ID 在行 $1 : $2
many_ehome=错误的用户根目录在行 $1 : $2
many_eshell=错误的在行 $1 : $2
many_emkdir=建立用户目录时失败  $1 : $2
many_ok=建立用户 $1

acl_uedit=Unix 用户可编辑
acl_uedit_all=所有用户
acl_uedit_none=没有用户
acl_uedit_only=仅用户
acl_uedit_except=所有其他用户
acl_uedit_uid=用户ID 在范围内
acl_uedit_group=组用户
acl_ucreate=是否可以建立新用户?
acl_uid= 新建和被修改用户的ID
acl_umultiple=一个以上的用户拥有相同的用户ID
acl_ugroups=允许新建和可修改用户的组
acl_all=所有的
acl_shells=允许新建和可修改用户的shell
acl_any=任何
acl_listed=列表..
acl_home=一定要用用户目录
acl_autohome=用户根目录一定要和用户同名
acl_gedit=Unix 组可修改
acl_gedit_all=所有组
acl_gedit_none=没有组
acl_gedit_only=只有组
acl_gedit_except=所有其它组
acl_gedit_gid=组ID号在范围内
acl_gcreate=可以建立新组?
acl_gnew=仅针对新用户
acl_gid=新建和被修改组的组号
acl_gmultiple=一个以上的组拥有相同的组号
acl_logins=只能显示登录被
acl_lnone=没有用户
acl_lall=所有用户
acl_epeopt=是否可以编辑口令过期选项?
acl_egp=是否可以编辑组口令?

log_urename=将用户 $1 改名为 $2
log_umodify=更新用户 $1
log_ucreate=创建用户 $1
log_udelete=删除用户 $1
log_udeletehome=删除用户 $1 和目录 $2
log_gmodify=更改组 $1
log_gcreate=创建组 $1
log_gdelete=删除组 $1
0707010001185d000081a40000000000000002000000013ac0388f000018d7000000200000000000000000000000000000002000000003reloc/useradmin/lang/zh_TW.Big5   index_title=ㄏノ籔竤舱
index_toomany=眤╰参Τびㄏノ, ┮礚猭陪ボ
index_find=т碝ㄏノ, 
index_users=セ狠ㄏノ
index_notusers=眤ぃ砆す砛絪胯ヴ硂╰参ㄏノ
index_createuser=ミ穝ㄏノ
index_createmany=ミ穝ㄏノ
index_nomoreusers=眤ぃ砆す砛ミㄏノ
index_groups=セ狠竤舱
index_notgroups=眤ぃ砆す砛絪胯ヴ硂╰参竤舱on this system
index_creategroup=ミ穝竤舱
index_nomoregroups=眤ぃ砆す砛ミ竤舱
index_logins=陪ボ祅, ㄌ沮
index_return=ㄏノ籔竤舱
index_equals=单
index_matches=才
index_nequals=ぃ单
index_nmatches=ぃ才

search_title=穓碝挡狦

uedit_title=絪胯ㄏノ
uedit_title2=ミㄏノ
uedit_details=ㄏノ冈灿戈
user=ㄏノ嘿
uid=ㄏノ絪腹
real=痷龟﹎
pass=盞絏
none1=材Ω祅高拜
none2=ぃ惠璶盞絏
nologin=ぃす砛祅
encrypted=絪絏盞絏
clear=ゅ盞絏
home=產ヘ魁
uedit_auto=笆
shell=㏑催
uedit_other=ㄤ...
uedit_passopts=盞絏匡兜
change2=盞絏э跑丁
expire2=眀腹筁戳ら戳
class=祅糷
change=盞絏э跑
uedit_never=ぃノ
uedit_unknown=ゼ
expire=筁戳ら戳
min=程ら戳
max=程ら戳
warn=牡ら戳
inactive=ゼㄏノら戳
uedit_gmem=竤舱Θ
group=璶竤舱
uedit_newg=穝竤舱
uedit_2nd=Ω璶竤舱
onsave=纗...
uedit_movehome=狦э跑杠, 琌穐簿產ヘ魁?
uedit_chuid=琌э跑郎ㄏノ絪腹?
uedit_allfiles=场郎
chgid=琌э跑郎竤舱絪腹?
uedit_oncreate=ミ...
uedit_makehome=琌ミ產ヘ魁?
uedit_copy=琌ī郎產ヘ魁?
uedit_logins=陪ボ祅
uedit_mail=弄筿秎ン
uedit_ecreate=眤ぃミ穝ㄏノ
uedit_eedit=眤ぃ絪胯硂ㄏノ

usave_err=礚猭纗ㄏノ
usave_eedit=眤ぃ絪胯硂ㄏノ
usave_ecreate=眤ぃミ穝ㄏノ
usave_ebadname='$1' ぃ琌Τㄏノ嘿
usave_einuse=ㄏノ嘿 '$1' 竒砆ㄏノ
usave_einuseg=竤舱嘿 '$1' 竒砆ㄏノ
usave_erename=眤ぃ砆す砛跑ㄏノ嘿
usave_euid='$1' ぃ琌Τ UID
usave_elowuid=UID ゲ斗┪单 $1
usave_ehiuid=UID ゲ斗┪单 $1
usave_euidused=ㄏノ $1 竒ㄏノ UID $2
usave_ereal='$1' ぃ琌Τ痷龟﹎
usave_ehome='$1' ぃ琌Τ產ヘ魁
usave_ehomepath=眤ぃ砆す砛ミ產ヘ魁 $1
usave_eshell='$1' ぃ琌钡╰参催
usave_egid='$1' ぃ琌Τ竤舱
usave_egcreate=眤╰参ㄆ舱篈Θ'ミ穝竤舱倒穝ㄏノ', 眤ぃ砆す砛ミ竤舱
usave_eprimary=眤ぃ砆す砛糤ㄏノ璶竤舱 $1
usave_esecondary=眤ぃ砆す砛糤ㄏノΩ璶竤舱 $1
usave_eprimaryr=眤ぃ砆す砛盢ㄏノ眖璶竤舱 $1 い簿埃
usave_esecondaryr=眤ぃ砆す砛盢ㄏノ眖Ω璶竤舱 $1 い簿埃
usave_emin='$1' ぃ琌Τ程跑丁
usave_emax='$1' ぃ琌Τ程跑丁
usave_ewarn='$1' ぃ琌Τ牡丁
usave_einactive='$1' ぃ琌Τ闽超丁
usave_eexpire=礚筁戳ら戳
usave_echange=礚跑ら戳
usave_eclass='$1' ぃ琌Τ祅糷
usave_emove=礚猭簿笆產ヘ魁: $1
usave_emkdir=礚猭ミ產ヘ魁: $1
usave_echown=礚猭跑產ヘ魁局Τ舦: $1
usave_echmod=礚猭跑產ヘ魁舦: $1

gedit_title=絪胯竤舱
gedit_title2=ミ舱
gedit_details=竤舱冈灿戈
gedit_group=竤舱嘿
gedit_gid=竤舱絪腹
gedit_members=Θ
gedit_homedirs=產ヘ魁
gedit_allfiles=场郎

gsave_err=礚猭纗竤舱
gsave_eedit=眤ぃ絪胯竤舱
gsave_ecreate=眤ぃミ穝竤舱
gsave_ebadname='$1' ぃ琌Τ竤舱嘿
gsave_einuse=竤舱嘿 '$1' 竒砆ㄏノ
gsave_egid='$1' ぃ琌Τ GID
usave_elowgid=GID ゲ斗┪单 $1
usave_ehigid=GID ゲ斗┪单 $1
usave_egidused=Group $1 竒ㄏノ GID $2
usave_efromroot=眤ぃ眖/ 穐簿硂產ヘ魁
usave_etoroot=眤ぃ盢產ヘ魁簿 /

logins_title=祅魁
logins_head=$1 祅魁
logins_from=祅ㄓ方
logins_tty=沧狠诀
logins_in=祅
logins_out=祅
logins_for=ㄏノ丁
logins_still=ご祅い
logins_none=⊿Τ祅魁

udel_title=埃ㄏノ
udel_err=礚猭埃ㄏノ
udel_euser=眤ぃ埃硂ㄏノ
udel_ealready=硂ㄏノ竒砆埃!
udel_echanged=盞絏郎竒砆э跑. 叫ㄏノ穝匡拒硂ㄏノ.
udel_other=眖ㄤ家舱埃い...
udel_pass=埃盞絏郎兜ヘい...
udel_groups=眖竤舱埃い...
udel_ugroup=埃硂ㄏノ竤舱い...
udel_home=埃產ヘ魁い...
udel_done=...ЧΘ
udel_sure=眤絋﹚璶埃ㄏノ $1 盾? 產ヘ魁 $2  $3 kB 郎
udel_sure2=眤絋﹚璶埃ㄏノ $1 盾?
udel_del1=埃ㄏノ
udel_del2=埃ㄏノ籔產ヘ魁

gdel_title=埃竤舱
gdel_err=礚猭埃竤舱
gdel_egroup=眤ぃ埃硂竤舱
gdel_ealready=硂竤舱竒砆埃!
gdel_group=埃竤舱郎兜ヘい...
gdel_done=...ЧΘ
gdel_eprimary=硂琌ㄏノ $1 璶竤舱
gdel_sure=眤絋﹚璶埃竤舱 $1 盾?
gdel_del=埃竤舱

many_title=ミㄏノ
many_desc=硂虫す砛眤ㄏノ肚┪セ狠郎ㄓミㄏノ. 硂郎–︽ゲ斗琌Α:
many_desc2=ㄏノ嘿:盞絏:uid:gid:痷龟﹎:產ヘ魁:╰参催:程:程:牡:闽超:筁戳
many_desc1=ㄏノ嘿:盞絏:uid:gid:痷龟﹎:產ヘ魁:╰参催:糷:跑:筁戳
many_desc0=ㄏノ嘿:盞絏:uid:gid:痷龟﹎:產ヘ魁:╰参催
many_descafter=狦 <tt>uid</tt> 逆玂痙フ, Webmin 盢穦笆结ぉㄏノ絪腹. <tt>ㄏノ嘿</tt>, <tt>gid</tt>, <tt>產ヘ魁</tt> 籔 <tt>╰参催</tt> 逆ゲ斗Ч俱﹚ - ㄤ逆玥琌フ
many_file=肚穝ㄏノ郎
many_local=セ狠穝ㄏノ郎
many_makehome=琌ミ產ヘ魁?
many_copy=琌ī郎產ヘ魁い?
many_upload=ミㄏノ
many_elocal=тぃセ狠郎
many_efile=⊿Τ匡拒璶肚郎
many_elen=︽ $1 ⊿Τ $2 逆
many_euser=狡ㄏノ︽ $1: $2
many_egid=岿粇 GID ︽ $1: $2
many_ehome=岿粇產ヘ魁︽ $1: $2
many_eshell=岿粇╰参催︽ $1: $2
many_emkdir=礚猭ミ產ヘ魁 $1: $2
many_ok=ミㄏノ $1

acl_uedit=ㄏノ絪胯 Unix ㄏノ
acl_uedit_all=场ㄏノ
acl_uedit_none=⊿Τㄏノ
acl_uedit_only=Τㄏノ
acl_uedit_except=场, 埃
acl_uedit_uid=ㄏノ UID ...絛瞅い
acl_uedit_group=ㄏノ竤舱
acl_ucreate=琌ミ穝ㄏノ?
acl_uid=倒穝┪эㄏノ絪腹
acl_umultiple=ㄏノㄏノ絪腹
acl_ugroups=す砛倒穝┪跑ㄏノ竤舱
acl_all=场
acl_shells=す砛倒穝┪跑ㄏノ╰参催
acl_any=ヴ種
acl_listed=...
acl_home=產ヘ魁ゲ斗...ぇ
acl_autohome=產ヘ魁嘿ゲ斗籔ㄏノ嘿
acl_gedit=ㄏノ絪胯 Unix 竤舱
acl_gedit_all=场竤舱
acl_gedit_none=⊿Τ竤舱
acl_gedit_only=Τ竤舱
acl_gedit_except=场, 埃
acl_gedit_gid=竤舱 GID ...絛瞅い
acl_gcreate=琌ミ穝竤舱?
acl_gnew=Τ倒穝ㄏノ
acl_gid=倒穝糤┪э竤舱絪腹
acl_gmultiple=竤舱ㄏノ絪腹
acl_logins=陪ボ祅
acl_lnone=⊿Τㄏノ
acl_lall=场ㄏノ
acl_epeopt=琌絪胯盞絏筁戳匡兜?
acl_egp=琌絪胯竤舱盞絏?

 0707010000a3fa000081a40000000000000002000000013ac0388f000011f5000000200000000000000000000000000000001d00000003reloc/useradmin/linux-lib.pl  # linux-lib.pl
# Functions for reading linux format last output

# passfiles_type()
# Returns 0 for old-style passwords (/etc/passwd only), 1 for FreeBSD-style
# (/etc/master.passwd) and 2 for SysV (/etc/passwd & /etc/shadow)
sub passfiles_type
{
return &password_file($config{'shadow_file'}) ? 2 : 0;
}

# groupfiles_type()
# Returns 0 for normal group file (/etc/group only) and 2 for shadowed
# (/etc/group and /etc/gshadow)
sub groupfiles_type
{
return &password_file($config{'gshadow_file'}) ? 2 : 0;
}

# open_last_command(handle, user)
sub open_last_command
{
local ($fh, $user) = @_;
open($fh, "last $user |");
}

# read_last_line(handle)
# Parses a line of output from last into an array of
#  user, tty, host, login, logout, period
sub read_last_line
{
$fh = $_[0];
while(1) {
	chop($line = <$fh>);
	if (!$line) { return (); }
	if ($line =~ /system boot/) { next; }
	if ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+\-\s+(\S+)\s+\((\d+:\d+)\)/) {
		return ($1, $2, $3, $4, $5 eq "down" ? "Shutdown" : $5, $6);
		}
	elsif ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+still/) {
		return ($1, $2, $3, $4);
		}
	}
}

# encrypt_password(password)
sub encrypt_password
{
local $md5 = 0;
if (&foreign_check("pam")) {
	# Use the PAM module if we can
	&foreign_require("pam", "pam-lib.pl");
	local @conf = &foreign_call("pam", "get_pam_config");
	local ($svc) = grep { $_->{'name'} eq 'passwd' } @conf;
	LOOP: foreach $m (@{$svc->{'mods'}}) {
		if ($m->{'type'} eq 'password') {
			if ($m->{'args'} =~ /md5/) { $md5++; }
			elsif ($m->{'module'} =~ /pam_stack\.so/ &&
			       $m->{'args'} =~ /service=(\S+)/) {
				# Referred to another service!
				($svc) = grep { $_->{'name'} eq $1 } @conf;
				if ($svc) { goto LOOP }
				else { last; }
				}
			}
		}
	}
elsif (open(PAM, "/etc/pam.d/passwd")) {
	# Otherwise try to check the PAM file directly
	while(<PAM>) {
		s/#.*$//g;
		$md5++ if (/^password.*md5/);
		}
	close(PAM);
	}
if (open(DEFS, "/etc/login.defs")) {
	# The login.defs file is used on debian sometimes
	while(<DEFS>) {
		s/#.*$//g;
		$md5++ if (/MD5_CRYPT_ENAB\s+yes/i);
		}
	close(DEFS);
	}
if ($md5 && !$config{'skip_md5'}) {
	# MD5 encrypt the password, using the same algorithm as PAM
	eval "use MD5";
	if ($@) {
		&header("Error", "");
		print "<hr><p>\n";
		print "Your system has MD5 passwords enabled, but the perl\n",
		      "MD5 module is not installed.<p> To force the use of\n",
		      "normal encrypted passwords, adjust your\n",
		      "<a href='/config.cgi?$module_name'>module ",
		      "configuration</a>. <p><hr>\n";
		exit;
		}
	local $passwd = $_[0];
	local $magic = '$1$';
	local $salt = substr(time(), -8);

	# Add the password, magic and salt
	local $ctx = new MD5;
	$ctx->add($passwd);
	$ctx->add($magic);
	$ctx->add($salt);

	# Add some more stuff from the hash of the password and salt
	local $ctx1 = new MD5;
	$ctx1->add($passwd);
	$ctx1->add($salt);
	$ctx1->add($passwd);
	local $final = $ctx1->digest();
	for($pl=length($passwd); $pl>0; $pl-=16) {
		$ctx->add($pl > 16 ? $final : substr($final, 0, $pl));
		}

	# This piece of code seems rather pointless, but it's in the C code that
	# does MD5 in PAM so it has to go in!
	local $j = 0;
	local ($i, $l);
	for($i=length($passwd); $i; $i >>= 1) {
		if ($i & 1) {
			$ctx->add("\0");
			}
		else {
			$ctx->add(substr($passwd, $j, 1));
			}
		}
	$final = $ctx->digest();

	# This loop exists only to waste time
	for($i=0; $i<1000; $i++) {
		$ctx1 = new MD5;
		$ctx1->add($i & 1 ? $passwd : $final);
		$ctx1->add($salt) if ($i % 3);
		$ctx1->add($passwd) if ($i % 7);
		$ctx1->add($i & 1 ? $final : $passwd);
		$final = $ctx1->digest();
		}

	# Convert the 16-byte final string into a readable form
	local $rv = $magic.$salt.'$';
	local @final = map { ord($_) } split(//, $final);
	$l = ($final[ 0]<<16) + ($final[ 6]<<8) + $final[12];
	$rv .= &to64($l, 4);
	$l = ($final[ 1]<<16) + ($final[ 7]<<8) + $final[13];
	$rv .= &to64($l, 4);
	$l = ($final[ 2]<<16) + ($final[ 8]<<8) + $final[14];
	$rv .= &to64($l, 4);
	$l = ($final[ 3]<<16) + ($final[ 9]<<8) + $final[15];
	$rv .= &to64($l, 4);
	$l = ($final[ 4]<<16) + ($final[10]<<8) + $final[ 5];
	$rv .= &to64($l, 4);
	$l = $final[11];
	$rv .= &to64($l, 2);

	return $rv;
	}
else {
	local $salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
	return crypt($_[0], $salt);
	}
}

@itoa64 = split(//, "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
sub to64
{
local ($v, $n) = @_;
local $r;
while(--$n >= 0) {
        $r .= $itoa64[$v & 0x3f];
        $v >>= 6;
        }
return $r;
}

1;
   0707010000a3fb000081e40000000000000002000000013ac0388f0000068e000000200000000000000000000000000000002000000003reloc/useradmin/list_logins.cgi   #!/usr/local/bin/perl
# list_logins.cgi
# Display the last login locations, tty, login time and duration

require './user-lib.pl';
&ReadParse();
$u = $in{'username'};
%access = &get_module_acl();
if (!$access{'logins'}) {
	&error($text{'logins_elist'});
	}
elsif ($access{'logins'} ne "*") {
	$u || &error($text{'logins_elist'});
	local @ul = split(/\s+/, $access{'logins'});
	&indexof($u,@ul) >= 0 ||
		&error(&text('logins_elistu', $u));
	}

&header($text{'logins_title'}, "", "list_logins");
print "<hr>\n";

if ($u) { print "<h3>",&text('logins_head', $u),"</h3>\n"; }
print "<table border width=100%> <tr $tb>\n";
if (!$u) { print "<td><b>$text{'user'}</b></td>\n"; }
print "<td><b>$text{'logins_from'}</b></td>\n";
print "<td><b>$text{'logins_tty'}</b></td>\n";
print "<td><b>$text{'logins_in'}</b></td>\n";
print "<td><b>$text{'logins_out'}</b></td>\n";
print "<td><b>$text{'logins_for'}</b></td> </tr>\n";
&open_last_command(LAST, $u);
while(@last = &read_last_line(LAST)) {
	print "<tr $cb>", $u ? "" : "<td><tt>$last[0]</tt></td>";
	print "<td><tt>", $last[2] ? $last[2] : $text{'logins_local'},
	      "</tt></td> <td><tt>$last[1]</tt></td> ",
	      "<td><tt>$last[3]</tt></td>\n";
	if ($last[4]) {
		print "<td><tt>$last[4]</tt></td> ",
		      "<td><tt>$last[5]</tt></td> </tr>\n";
		}
	else {
		print "<td colspan=2><tt>$text{'logins_still'}",
		      "</tt></td> </tr>\n";
		}
	$foundany++;
	if ($max && ++$count >= $max) {
		# Displayed maximum number
		last;
		}
	}
close(LAST);
if (!$foundany) {
	printf "<tr $cb> <td colspan=%d>$text{'logins_none'}</td> </tr>\n",
		$u ? 5 : 6;
	}
print "</table><p>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

  0707010000a3fc000081a40000000000000002000000013ac0389000000494000000200000000000000000000000000000001e00000003reloc/useradmin/log_parser.pl # log_parser.pl
# Functions for parsing this module's logs

require './user-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p) = @_;
if ($type eq 'user') {
	if ($action eq 'modify' && $p->{'old'} ne $object) {
		return &text('log_urename', "<tt>$p->{'old'}</tt>",
					    "<tt>$object</tt>");
		}
	elsif ($action eq 'modify') {
		return &text('log_umodify', "<tt>$object</tt>");
		}
	elsif ($action eq 'create') {
		return &text('log_ucreate', "<tt>$object</tt>");
		}
	elsif ($action eq 'delete' && $p->{'delhome'}) {
		return &text('log_udeletehome', "<tt>$object</tt>",
			     "<tt>$p->{'home'}</tt>");
		}
	elsif ($action eq 'delete') {
		return &text('log_udelete', "<tt>$object</tt>");
		}
	}
elsif ($type eq 'group') {
	if ($action eq 'modify') {
		return &text('log_gmodify', "<tt>$object</tt>");
		}
	elsif ($action eq 'create') {
		return &text('log_gcreate', "<tt>$object</tt>");
		}
	elsif ($action eq 'delete') {
		return &text('log_gdelete', "<tt>$object</tt>");
		}
	}
return undef;
}
0707010000a3fd000081a40000000000000002000000013ac038900000012e000000200000000000000000000000000000001900000003reloc/useradmin/low.risk  noconfig=1
uedit_mode=4
uedit=100
gedit_mode=3
gedit=adm bin daemon database dip disk ftp games gopher kmem lp mail man mem mysql news nobody operator root sys tty utmp uucp noaccess nofiles nuucp other
lowuid=100
lowgid=0
ucreate=1
gcreate=1
ugroups=*
logins=*
shells=*
home=/
umultiple=1
gmultiple=1
  0707010000a3fe000081a40000000000000002000000013ac0389000000032000000200000000000000000000000000000001a00000003reloc/useradmin/low.skill icons=1
peopt=0
nocrypt=1
suggesthome=1
noother=1
  0707010000a3ff000081e40000000000000002000000013ac0389000000f5d000000200000000000000000000000000000002000000003reloc/useradmin/many_create.cgi   #!/usr/local/bin/perl
# many_create.cgi
# Create multiple users from an uploaded text file

require './user-lib.pl';
&ReadParseMime();
if ($in{'file'}) {
	$data = $in{'file'};
	}
elsif ($in{'local'}) {
	open(LOCAL, $in{'local'}) || &error($text{'many_elocal'});
	while(<LOCAL>) {
		$data .= $_;
		}
	close(LOCAL);
	}
else {
	&error($text{'many_efile'});
	}

&header($text{'many_title'}, "");
print "<hr>\n";
$| = 1;

# Work out a good base UID
&lock_user_files();
&my_setpwent();
while(@tmp = &my_getpwent()) {
	$used{$tmp[2]}++;
	$taken{$tmp[0]}++;
	}
&my_endpwent();
$newuid = int($config{'base_uid'});

# Work out a good base GID
&my_setgrent();
while(@tmp = &my_getgrent()) {
	$gused{$tmp[2]}++;
	$gtaken{$tmp[0]}++;
	}
&my_endgrent();
$newgid = int($config{'base_gid'});

print "<pre>\n";
$lnum = 0;
foreach $line (split(/[\r\n]+/, $data)) {
	$lnum++;
	local @line = split(/:/, $line, -1);
	local %user;
	if (&passfiles_type() == 2) {
		# SYSV-style passwd and shadow information
		if (@line != 12) {
			print &text('many_elen', $lnum, 12),"\n";
			next;
			}
		$user{'min'} = $line[7];
		$user{'max'} = $line[8];
		$user{'warn'} = $line[9];
		$user{'inactive'} = $line[10];
		$user{'expire'} = $line[11];
		$user{'change'} = int(time() / (60*60*24));
		}
	elsif (&passfiles_type() == 1) {
		# BSD master.passwd information
		if (@line != 10) {
			print &text('many_elen', $lnum, 10),"\n";
			next;
			}
		$user{'class'} = $line[7];
		$user{'change'} = $line[8];
		$user{'expire'} = $line[9];
		}
	else {
		# Classic passwd file information
		if (@line != 7) {
			print &text('many_elen', $lnum, 7),"\n";
			next;
			}
		}

	# Parse common fields
	if (!$line[0]) {
		print &text('many_eline', $lnum),"\n";
		next;
		}
	$user{'user'} = $line[0];
	if ($taken{$user{'user'}}) {
		print &text('many_euser', $lnum, $user{'user'}),"\n";
		next;
		}
	if ($line[2] !~ /^\d+$/) {
		# make up a UID
		while($used{$newuid}) {
			$newuid++;
			}
		$user{'uid'} = $newuid;
		}
	else {
		# use the given UID!!
		$user{'uid'} = $line[2];
		}
	$used{$user{'uid'}}++;
	if ($line[5] !~ /^\//) {
		print &text('many_ehome', $lnum, $line[5]),"\n";
		next;
		}
	$user{'home'} = $line[5];
	if (!-r $line[6]) {
		print &text('many_eshell', $lnum, $line[6]),"\n";
		next;
		}
	$user{'shell'} = $line[6];
	$user{'real'} = $line[4];
	if ($line[3] !~ /^\d+$/) {
		# Need to create a new group for the user
		if ($gtaken{$user{'user'}}) {
			print &text('many_egtaken', $lnum, $user{'user'}),"\n";
			next;
			}
		while($gused{$newgid}) {
			$newgid++;
			}
		local %group;
		$group{'group'} = $user{'user'};
		$user{'gid'} = $group{'gid'} = $newgid;
		&create_group(\%group);
		}
	else {
		$user{'gid'} = $line[3];
		}

	# Create the user!
	if ($in{'makehome'} && !-d $user{'home'}) {
		if (!mkdir($user{'home'}, oct($config{'homedir_perms'}))) {
			print &text('many_emkdir', $user{'home'}, $!),"\n";
			}
		chmod(oct($config{'homedir_perms'}), $user{'home'});
		chown($user{'uid'}, $user{'gid'}, $user{'home'});
		}
	if ($line[1] eq 'x') {
		# No login allowed
		$user{'pass'} = $config{'lock_string'};
		$user{'passmode'} = 1;
		}
	elsif ($line[1] eq '') {
		# No password needed
		$user{'pass'} = '';
		$user{'passmode'} = 0;
		}
	else {
		# Normal password
		$salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
		$user{'pass'} = crypt($line[1], $salt);
		$user{'passmode'} = 3;
		$user{'plainpass'} = $line[1];
		}
	&create_user(\%user);
	&other_modules("useradmin_create_user", \%user);

	if ($in{'copy'} && $in{'makehome'}) {
		# Copy files to user's home directory
		local $uf = $config{'user_files'};
		if ($group = &my_getgrgid($user{'gid'})) {
			$uf =~ s/\$group/$group/g;
			}
		$uf =~ s/\$gid/$user{'gid'}/g;
		&copy_skel_files($uf, $user{'home'},
				 $user{'uid'}, $user{'gid'});
		}

	print "<b>",&text('many_ok',$user{'user'}),"</b>\n";
	}
print "</pre>\n";
&unlock_user_files();

print "<hr>\n";
&footer("", $text{'index_return'});

   0707010000a400000081e40000000000000002000000013ac038900000058b000000200000000000000000000000000000001e00000003reloc/useradmin/many_form.cgi #!/usr/local/bin/perl
# many_form.cgi
# Display a form for creating many users from a text file

require './user-lib.pl';
&header($text{'many_title'}, "");
print "<hr>\n";

print "<p>$text{'many_desc'}\n";
if (&passfiles_type() == 1) {
	print "<p><tt>$text{'many_desc1'}</tt><p>\n";
	}
elsif (&passfiles_type() == 2) {
	print "<p><tt>$text{'many_desc2'}</tt><p>\n";
	}
else {
	print "<p><tt>$text{'many_desc0'}</tt><p>\n";
	}
print "$text{'many_descafter'}\n";
print "$text{'many_descpass'}<p>\n";

print "<form action=many_create.cgi method=post enctype=multipart/form-data>\n";
print "<table>\n";
print "<tr> <td><b>$text{'many_file'}</b></td>\n";
print "<td><input type=file name=file></td> </tr>\n";

print "<tr> <td><b>$text{'many_local'}</b></td>\n";
print "<td><input name=local size=30> ",&file_chooser_button("local"),
      "</td> </tr>\n";

print "<tr> <td><b>$text{'many_makehome'}</b></td>\n";
print "<td><input name=makehome type=radio value=1 checked> $text{'yes'}\n";
print "<input name=makehome type=radio value=0> $text{'no'}</td> </tr>\n";

print "<tr> <td><b>$text{'many_copy'}</b></td>\n";
print "<td><input name=copy type=radio value=1 checked> $text{'yes'}\n";
print "<input name=copy type=radio value=0> $text{'no'}</td> </tr>\n";

print "<tr> <td><input type=submit value=\"$text{'many_upload'}\"></td> </tr>\n";
print "</table></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

 0707010000a401000081a40000000000000002000000013ac038900000008e000000200000000000000000000000000000001c00000003reloc/useradmin/medium.risk   noconfig=1
uedit_mode=4
uedit=1
gedit_mode=0
lowuid=1
lowgid=0
ucreate=1
gcreate=1
ugroups=*
logins=*
shells=*
home=/
umultiple=1
gmultiple=1
  0707010000a402000081a40000000000000002000000013ac0389000000008000000200000000000000000000000000000001d00000003reloc/useradmin/medium.skill  peopt=1
0707010000a403000081a40000000000000002000000013ac0388e00000235000000200000000000000000000000000000001c00000003reloc/useradmin/module.info   desc_zh_CN=用户与群组
name=User Manager
desc_pt=Utilizadores e Grupos
desc_tr=Kullan齝 ve Gruplar
desc_fr=Utilisateurs et groupes
desc_es=Usuarios y Grupos
desc_de=Benutzer und Gruppen
desc_sv=Anv鋘dare och grupper
desc_ru_SU=鹣特谙琢耘躺  缫招匈
desc_pl=U縴tkownicy i&nbsp;grupy
category=system
os_support=slackware-linux redhat-linux solaris debian-linux suse-linux hpux freebsd osf1 open-linux unixware turbo-linux openbsd corel-linux cobalt-linux irix aix
desc_zh_TW.Big5=ㄏノ恨瞶
desc=Users and Groups
risk=low medium high
desc_ru_RU=项朦珙忄蝈腓  灭箫稃
   0707010000a404000081e40000000000000002000000013ac0389000001275000000200000000000000000000000000000002500000003reloc/useradmin/my_group_chooser.cgi  #!/usr/local/bin/perl
# my_group_chooser.cgi
# A modified version of group_chooser.cgi that uses the my_ functions

require './user-lib.pl';
&init_config();
&ReadParse();
%access = &get_module_acl(undef, "");

# Build list of primary groups
setpwent();
while(@uinfo = getpwent()) {
	push(@{$members{$uinfo[3]}}, $uinfo[0]);
	}
endpwent();

if ($in{'multi'}) {
	# selecting multiple groups.
	if ($in{'frame'} == 0) {
		# base frame
		&PrintHeader();
		print "<script>\n";
		@ul = split(/\s+/, $in{'group'});
		$len = @ul;
		print "sel = new Array($len);\n";
		print "selr = new Array($len);\n";
		for($i=0; $i<$len; $i++) {
			print "sel[$i] = \"$ul[$i]\";\n";
			@ginfo = &my_getgrnam($ul[$i]);
			if (@ginfo) {
				@mems = &unique( split(/ /, $ginfo[3]),
						 @{$members{$ginfo[2]}} );
				if (@mems > 3) { @mems = (@mems[0..1], "..."); }
				print "selr[$i] = \"",join(' ', @mems),"\";\n";
				}
			else { print "selr[$i] = \"???\";\n"; }
			}
		print "</script>\n";
		print "<title>$text{'groups_title1'}</title>\n";
		print "<frameset cols='50%,50%'>\n";
		print "<frame src=\"my_group_chooser.cgi?frame=1&multi=1\">\n";
		print "<frameset rows='*,50' frameborder=no>\n";
		print " <frame src=\"my_group_chooser.cgi?frame=2&multi=1\">\n";
		print " <frame src=\"my_group_chooser.cgi?frame=3&multi=1\" scrolling=no>\n";
		print "</frameset>\n";
		print "</frameset>\n";
		}
	elsif ($in{'frame'} == 1) {
		# list of all groups to choose from
		&header();
		print "<script>\n";
		print "function addgroup(u, r)\n";
		print "{\n";
		print "top.sel[top.sel.length] = u\n";
		print "top.selr[top.selr.length] = r\n";
		print "top.frames[1].location = top.frames[1].location\n";
		print "return false;\n";
		print "}\n";
		print "</script>\n";
		print "<font size=+1>$text{'groups_all'}</font>\n";
		print "<table width=100%>\n";
		foreach $u (&get_groups_list()) {
			if ($in{'group'} eq $u->[0]) { print "<tr $cb>\n"; }
			else { print "<tr>\n"; }
			print "<td width=20%><a href=\"\" onClick='return addgroup(\"$u->[0]\", \"$u->[3]\")'>$u->[0]</a></td>\n";
			print "<td>$u->[3]</td> </tr>\n";
			}
		print "</table>\n";
		}
	elsif ($in{'frame'} == 2) {
		# show chosen groups
		&header();
		print "<font size=+1>$text{'groups_sel'}</font>\n";
		print <<'EOF';
<table width=100%>
<script>
function sub(j)
{
sel2 = new Array(); selr2 = new Array();
for(k=0,l=0; k<top.sel.length; k++) {
	if (k != j) {
		sel2[l] = top.sel[k];
		selr2[l] = top.selr[k];
		l++;
		}
	}
top.sel = sel2; top.selr = selr2;
location = location;
return false;
}
for(i=0; i<top.sel.length; i++) {
	document.write("<tr>\n");
	document.write("<td><a href=\"\" onClick='return sub("+i+")'>"+top.sel[i]+"</a></td>\n");
	document.write("<td>"+top.selr[i]+"</td>\n");
	}
</script>
</table>
EOF
		}
	elsif ($in{'frame'} == 3) {
		# output OK and Cancel buttons
		&header();
		print "<form>\n";
		print "<input type=button value=\"$text{'groups_ok'}\" ",
		      " onClick='top.ifield.value = top.sel.join(\" \"); ",
		      "top.close()'>\n";
		print "<input type=button value=\"$text{'groups_cancel'}\" ",
		      "onClick='top.close()'>\n";
		print "&nbsp;&nbsp;<input type=button value=\"$text{'groups_clear'}\" onClick='top.sel = new Array(); top.selr = new Array(); top.frames[1].location = top.frames[1].location'>\n";
		print "</form>\n";
		}
	}
else {
	# selecting just one group .. display a list of all groups to choose from
	&header();
	print "<script>\n";
	print "function select(f)\n";
	print "{\n";
	print "ifield.value = f;\n";
	print "top.close();\n";
	print "return false;\n";
	print "}\n";
	print "</script>\n";
	print "<title>$text{'groups_title2'}</title>\n";
	print "<table width=100%>\n";
	foreach $u (&get_groups_list()) {
		if ($in{'group'} eq $u->[0]) { print "<tr $cb>\n"; }
		else { print "<tr>\n"; }
		print "<td width=20%><a href=\"\" onClick='return select(\"$u->[0]\")'>$u->[0]</a></td>\n";
		print "<td>$u->[3]</td> </tr>\n";
		}
	print "</table>\n";
	}

sub get_groups_list
{
local(@ginfo, @groups, \%gcan);
if ($access{'gedit_mode'} == 2 || $access{'gedit_mode'} == 3) {
	map { $gcan{$_}++ } split(/\s+/, $access{'gedit'});
	}
&my_setgrent();
while(@ginfo = &my_getgrent()) {
	@mems = &unique( split(/ /, $ginfo[3]), @{$members{$ginfo[2]}} );
	if (@mems > 3) { @mems = (@mems[0..1], "..."); }
	$ginfo[3] = join(' ', @mems);
	if ($access{'gedit_mode'} == 0 ||
	    $access{'gedit_mode'} == 2 && $gcan{$ginfo[0]} ||
	    $access{'gedit_mode'} == 3 && !$gcan{$ginfo[0]} ||
	    $access{'gedit_mode'} == 4 &&
		(!$access{'gedit'} || $ginfo[2] >= $access{'gedit'}) &&
		(!$access{'gedit2'} || $ginfo[2] <= $access{'gedit2'})) {
		push(@groups, [ @ginfo ]);
		}
	}
&my_endgrent();
return sort { $a->[0] cmp $b->[0] } @groups;
}

   0707010000a405000081e40000000000000002000000013ac0389000001107000000200000000000000000000000000000002400000003reloc/useradmin/my_user_chooser.cgi   #!/usr/local/bin/perl
# my_user_chooser.cgi
# A modified version of chooser.cgi that uses the my_ functions

require './user-lib.pl';
&init_config();
&ReadParse();
%access = &get_module_acl(undef, "");

if ($in{'multi'}) {
	# selecting multiple users.
	if ($in{'frame'} == 0) {
		# base frame
		&PrintHeader();
		print "<script>\n";
		@ul = split(/\s+/, $in{'user'});
		$len = @ul;
		print "sel = new Array($len);\n";
		print "selr = new Array($len);\n";
		for($i=0; $i<$len; $i++) {
			print "sel[$i] = \"$ul[$i]\";\n";
			@uinfo = &my_getpwnam($ul[$i]);
			if (@uinfo) { print "selr[$i] = \"$uinfo[6]\";\n"; }
			else { print "selr[$i] = \"???\";\n"; }
			}
		print "</script>\n";
		print "<title>$text{'users_title1'}</title>\n";
		print "<frameset cols='50%,50%'>\n";
		print "<frame src=\"my_user_chooser.cgi?frame=1&multi=1\">\n";
		print "<frameset rows='*,50' frameborder=no>\n";
		print " <frame src=\"my_user_chooser.cgi?frame=2&multi=1\">\n";
		print " <frame src=\"my_user_chooser.cgi?frame=3&multi=1\" scrolling=no>\n";
		print "</frameset>\n";
		print "</frameset>\n";
		}
	elsif ($in{'frame'} == 1) {
		# list of all users to choose from
		&header();
		print "<script>\n";
		print "function adduser(u, r)\n";
		print "{\n";
		print "top.sel[top.sel.length] = u\n";
		print "top.selr[top.selr.length] = r\n";
		print "top.frames[1].location = top.frames[1].location\n";
		print "return false;\n";
		print "}\n";
		print "</script>\n";
		print "<font size=+1>$text{'users_all'}</font>\n";
		print "<table width=100%>\n";
		foreach $u (&get_users_list()) {
			if ($in{'user'} eq $u->[0]) { print "<tr $cb>\n"; }
			else { print "<tr>\n"; }
			$u->[6] =~ s/'/&#39;/g;
			print "<td width=20%><a href=\"\" onClick='return adduser(\"$u->[0]\", \"$u->[6]\")'>$u->[0]</a></td>\n";
			print "<td>$u->[6]</td> </tr>\n";
			}
		print "</table>\n";
		}
	elsif ($in{'frame'} == 2) {
		# show chosen users
		&header();
		print "<font size=+1>$text{'users_sel'}</font>\n";
		print <<'EOF';
<table width=100%>
<script>
function sub(j)
{
sel2 = new Array(); selr2 = new Array();
for(k=0,l=0; k<top.sel.length; k++) {
	if (k != j) {
		sel2[l] = top.sel[k];
		selr2[l] = top.selr[k];
		l++;
		}
	}
top.sel = sel2; top.selr = selr2;
location = location;
return false;
}
for(i=0; i<top.sel.length; i++) {
	document.write("<tr>\n");
	document.write("<td><a href=\"\" onClick='return sub("+i+")'>"+top.sel[i]+"</a></td>\n");
	document.write("<td>"+top.selr[i]+"</td>\n");
	}
</script>
</table>
EOF
		}
	elsif ($in{'frame'} == 3) {
		# output OK and Cancel buttons
		&header();
		print "<form>\n";
		print "<input type=button value=\"$text{'users_ok'}\" ",
		      "onClick='top.ifield.value = top.sel.join(\" \"); ",
		      "top.close()'>\n";
		print "<input type=button value=\"$text{'users_cancel'}\" ",
		      "onClick='top.close()'>\n";
		print "&nbsp;&nbsp;<input type=button value=\"$text{'users_clear'}\" onClick='top.sel = new Array(); top.selr = new Array(); top.frames[1].location = top.frames[1].location'>\n";
		print "</form>\n";
		}
	}
else {
	# selecting just one user .. display a list of all users to choose from
	&header();
	print "<script>\n";
	print "function select(f)\n";
	print "{\n";
	print "ifield.value = f;\n";
	print "top.close();\n";
	print "return false;\n";
	print "}\n";
	print "</script>\n";
	print "<title>$text{'users_title2'}</title>\n";
	print "<table width=100%>\n";
	foreach $u (&get_users_list()) {
		if ($in{'user'} eq $u->[0]) { print "<tr $cb>\n"; }
		else { print "<tr>\n"; }
		print "<td width=20%><a href=\"\" onClick='return select(\"$u->[0]\")'>$u->[0]</a></td>\n";
		print "<td>$u->[6]</td> </tr>\n";
		}
	print "</table>\n";
	}

sub get_users_list
{
local(@uinfo, @users, \%ucan);
if ($access{'uedit_mode'} == 2 || $access{'uedit_mode'} == 3) {
	map { $ucan{$_}++ } split(/\s+/, $access{'uedit'});
	}
&my_setpwent();
while(@uinfo = &my_getpwent()) {
	if ($access{'uedit_mode'} == 0 ||
	    $access{'uedit_mode'} == 2 && $ucan{$uinfo[0]} ||
	    $access{'uedit_mode'} == 3 && !$ucan{$uinfo[0]} ||
	    $access{'uedit_mode'} == 4 &&
		(!$access{'uedit'} || $uinfo[2] >= $access{'uedit'}) &&
		(!$access{'uedit2'} || $uinfo[2] <= $access{'uedit2'}) ||
	    $access{'uedit_mode'} == 5 && $uinfo[3] == $access{'uedit'}) {
		push(@users, [ @uinfo ]);
		}
	}
&my_endpwent();
return sort { $a->[0] cmp $b->[0] } @users;
}

 0707010000a45b000081a40000000000000002000000013ac03890000011f5000000200000000000000000000000000000002200000003reloc/useradmin/open-linux-lib.pl # linux-lib.pl
# Functions for reading linux format last output

# passfiles_type()
# Returns 0 for old-style passwords (/etc/passwd only), 1 for FreeBSD-style
# (/etc/master.passwd) and 2 for SysV (/etc/passwd & /etc/shadow)
sub passfiles_type
{
return &password_file($config{'shadow_file'}) ? 2 : 0;
}

# groupfiles_type()
# Returns 0 for normal group file (/etc/group only) and 2 for shadowed
# (/etc/group and /etc/gshadow)
sub groupfiles_type
{
return &password_file($config{'gshadow_file'}) ? 2 : 0;
}

# open_last_command(handle, user)
sub open_last_command
{
local ($fh, $user) = @_;
open($fh, "last $user |");
}

# read_last_line(handle)
# Parses a line of output from last into an array of
#  user, tty, host, login, logout, period
sub read_last_line
{
$fh = $_[0];
while(1) {
	chop($line = <$fh>);
	if (!$line) { return (); }
	if ($line =~ /system boot/) { next; }
	if ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+\-\s+(\S+)\s+\((\d+:\d+)\)/) {
		return ($1, $2, $3, $4, $5 eq "down" ? "Shutdown" : $5, $6);
		}
	elsif ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+still/) {
		return ($1, $2, $3, $4);
		}
	}
}

# encrypt_password(password)
sub encrypt_password
{
local $md5 = 0;
if (&foreign_check("pam")) {
	# Use the PAM module if we can
	&foreign_require("pam", "pam-lib.pl");
	local @conf = &foreign_call("pam", "get_pam_config");
	local ($svc) = grep { $_->{'name'} eq 'passwd' } @conf;
	LOOP: foreach $m (@{$svc->{'mods'}}) {
		if ($m->{'type'} eq 'password') {
			if ($m->{'args'} =~ /md5/) { $md5++; }
			elsif ($m->{'module'} =~ /pam_stack\.so/ &&
			       $m->{'args'} =~ /service=(\S+)/) {
				# Referred to another service!
				($svc) = grep { $_->{'name'} eq $1 } @conf;
				if ($svc) { goto LOOP }
				else { last; }
				}
			}
		}
	}
elsif (open(PAM, "/etc/pam.d/passwd")) {
	# Otherwise try to check the PAM file directly
	while(<PAM>) {
		s/#.*$//g;
		$md5++ if (/^password.*md5/);
		}
	close(PAM);
	}
if (open(DEFS, "/etc/login.defs")) {
	# The login.defs file is used on debian sometimes
	while(<DEFS>) {
		s/#.*$//g;
		$md5++ if (/MD5_CRYPT_ENAB\s+yes/i);
		}
	close(DEFS);
	}
if ($md5 && !$config{'skip_md5'}) {
	# MD5 encrypt the password, using the same algorithm as PAM
	eval "use MD5";
	if ($@) {
		&header("Error", "");
		print "<hr><p>\n";
		print "Your system has MD5 passwords enabled, but the perl\n",
		      "MD5 module is not installed.<p> To force the use of\n",
		      "normal encrypted passwords, adjust your\n",
		      "<a href='/config.cgi?$module_name'>module ",
		      "configuration</a>. <p><hr>\n";
		exit;
		}
	local $passwd = $_[0];
	local $magic = '$1$';
	local $salt = substr(time(), -8);

	# Add the password, magic and salt
	local $ctx = new MD5;
	$ctx->add($passwd);
	$ctx->add($magic);
	$ctx->add($salt);

	# Add some more stuff from the hash of the password and salt
	local $ctx1 = new MD5;
	$ctx1->add($passwd);
	$ctx1->add($salt);
	$ctx1->add($passwd);
	local $final = $ctx1->digest();
	for($pl=length($passwd); $pl>0; $pl-=16) {
		$ctx->add($pl > 16 ? $final : substr($final, 0, $pl));
		}

	# This piece of code seems rather pointless, but it's in the C code that
	# does MD5 in PAM so it has to go in!
	local $j = 0;
	local ($i, $l);
	for($i=length($passwd); $i; $i >>= 1) {
		if ($i & 1) {
			$ctx->add("\0");
			}
		else {
			$ctx->add(substr($passwd, $j, 1));
			}
		}
	$final = $ctx->digest();

	# This loop exists only to waste time
	for($i=0; $i<1000; $i++) {
		$ctx1 = new MD5;
		$ctx1->add($i & 1 ? $passwd : $final);
		$ctx1->add($salt) if ($i % 3);
		$ctx1->add($passwd) if ($i % 7);
		$ctx1->add($i & 1 ? $final : $passwd);
		$final = $ctx1->digest();
		}

	# Convert the 16-byte final string into a readable form
	local $rv = $magic.$salt.'$';
	local @final = map { ord($_) } split(//, $final);
	$l = ($final[ 0]<<16) + ($final[ 6]<<8) + $final[12];
	$rv .= &to64($l, 4);
	$l = ($final[ 1]<<16) + ($final[ 7]<<8) + $final[13];
	$rv .= &to64($l, 4);
	$l = ($final[ 2]<<16) + ($final[ 8]<<8) + $final[14];
	$rv .= &to64($l, 4);
	$l = ($final[ 3]<<16) + ($final[ 9]<<8) + $final[15];
	$rv .= &to64($l, 4);
	$l = ($final[ 4]<<16) + ($final[10]<<8) + $final[ 5];
	$rv .= &to64($l, 4);
	$l = $final[11];
	$rv .= &to64($l, 2);

	return $rv;
	}
else {
	local $salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
	return crypt($_[0], $salt);
	}
}

@itoa64 = split(//, "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
sub to64
{
local ($v, $n) = @_;
local $r;
while(--$n >= 0) {
        $r .= $itoa64[$v & 0x3f];
        $v >>= 6;
        }
return $r;
}

1;
   0707010000a45c000081a40000000000000002000000013ac03890000004ed000000200000000000000000000000000000001f00000003reloc/useradmin/openbsd-lib.pl    # freebsd-lib.pl
# Functions for freebsd format last output

# passfiles_type()
# Returns 0 for old-style passwords (/etc/passwd only), 1 for FreeBSD-style
# (/etc/master.passwd) and 2 for SysV (/etc/passwd & /etc/shadow)
sub passfiles_type
{
return 1;
}

# groupfiles_type()
# Returns 0 for normal group file (/etc/group only) and 2 for shadowed
# (/etc/group and /etc/gshadow)
sub groupfiles_type
{
return 0;
}

# open_last_command(handle, user)
sub open_last_command
{
local ($fh, $user) = @_;
open($fh, "last $user |");
}

# read_last_line(handle)
# Parses a line of output from last into an array of
#  user, tty, host, login, logout, period
sub read_last_line
{
$fh = $_[0];
while(1) {
	chop($line = <$fh>);
	if (!$line) { return (); }
	if ($line =~ /^(reboot|shutdown)/) { next; }
	if ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+\-\s+(\S+)\s+\((\d+:\d+)\)/) {
		return ($1, $2, $3, $4, $5 eq "shutdown" ? "Shutdown" :
					$5 eq "crash" ? "Crash" : $5, $6);
		}
	elsif ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+still/) {
		return ($1, $2, $3, $4);
		}
	}
}

# encrypt_password(password)
sub encrypt_password
{
local $salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
return crypt($_[0], $salt);
}

1;

   0707010000a45d000081a40000000000000002000000013ac038900000049d000000200000000000000000000000000000001c00000003reloc/useradmin/osf1-lib.pl   # osf1-lib.pl
# Functions for osf1 user files

# passfiles_type()
# Returns 0 for old-style passwords (/etc/passwd only), 1 for FreeBSD-style
# (/etc/master.passwd) and 2 for SysV (/etc/passwd & /etc/shadow)
sub passfiles_type
{
return 0;
}

# groupfiles_type()
# Returns 0 for normal group file (/etc/group only) and 2 for shadowed
# (/etc/group and /etc/gshadow)
sub groupfiles_type
{
return 0;
}

# open_last_command(handle, user)
sub open_last_command
{
local ($fh, $user) = @_;
open($fh, "last $user |");
}

# read_last_line(handle)
# Parses a line of output from last into an array of
#  user, tty, host, login, logout, period
sub read_last_line
{
$fh = $_[0];
while(1) {
	chop($line = <$fh>);
	if (!$line) { return (); }
	if ($line =~ /system boot/) { next; }
	if ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+\-\s+(\d+:\d+)\s+\((\d+:\d+)\)/) {
		return ($1, $2, $3, $4, $5, $6);
		}
	elsif ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+still/) {
		return ($1, $2, $3, $4);
		}
	}
}

# encrypt_password(password)
sub encrypt_password
{
local $salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
return crypt($_[0], $salt);
}

1;

   0707010000a49e000081a40000000000000002000000013ac0388e00004164000000200000000000000000000000000000001c00000003reloc/useradmin/user-lib.pl   # user-lib.pl
# Common functions for Unix user management

do '../web-lib.pl';
&init_config();
do "./$gconfig{'os_type'}-lib.pl";

# password_file(file)
# Returns true if some file looks like a valid Unix password file
sub password_file
{
if (!$_[0]) { return 0; }
elsif (open(SHTEST, $_[0])) {
	local($line);
	$line = <SHTEST>;
	close(SHTEST);
	return $line =~ /^\S+:\S*:/;
	}
else { return 0; }
}

# list_users()
# Returns an array of hashtable, each containing info about one user. Each hash
# will always contain the keys
#  user, pass, uid, gid, real, home, shell
# In addition, if the system supports shadow passwords it may also have:
#  change, min, max, warn, inactive, expire
# Or if it supports FreeBSD master.passwd info, it will also have
#  class, change, expire
sub list_users
{
# read the password file
local(@rv, $_, %idx, $lnum, @pw, $p, $i, $j);
if (&passfiles_type() == 1) {
	# read the master.passwd file only
	$lnum = 0;
	open(PASSWD, $config{'master_file'});
	while(<PASSWD>) {
		s/\r|\n//g;
		if (/\S/ && !/^[#\+\-]/) {
			@pw = split(/:/, $_, -1);
			push(@rv, { 'user' => $pw[0],	'pass' => $pw[1],
				    'uid' => $pw[2],	'gid' => $pw[3],
				    'class' => $pw[4],	'change' => $pw[5],
				    'expire' => $pw[6],	'real' => $pw[7],
				    'home' => $pw[8],	'shell' => $pw[9],
				    'line' => $lnum,	'num' => scalar(@rv) });
			}
		$lnum++;
		}
	close(PASSWD);
	}
else {
	# start by reading /etc/passwd
	$lnum = 0;
	open(PASSWD, $config{'passwd_file'});
	while(<PASSWD>) {
		s/\r|\n//g;
		if (/\S/ && !/^[#\+\-]/) {
			@pw = split(/:/, $_, -1);
			push(@rv, { 'user' => $pw[0],	'pass' => $pw[1],
				    'uid' => $pw[2],	'gid' => $pw[3],
				    'real' => $pw[4],	'home' => $pw[5],
				    'shell' => $pw[6],	'line' => $lnum,
				    'num' => scalar(@rv) });
			$idx{$pw[0]} = $rv[$#rv];
			}
		$lnum++;
		}
	close(PASSWD);
	if (&passfiles_type() == 2) {
		# read the shadow file data
		$lnum = 0;
		open(SHADOW, $config{'shadow_file'});
		while(<SHADOW>) {
			s/\r|\n//g;
			if (/\S/ && !/^[#\+\-]/) {
				@pw = split(/:/, $_, -1);
				$p = $idx{$pw[0]};
				$p->{'pass'} = $pw[1];
				$p->{'change'} = $pw[2] < 0 ? "" : $pw[2];
				$p->{'min'} = $pw[3] < 0 ? "" : $pw[3];
				$p->{'max'} = $pw[4] < 0 ? "" : $pw[4];
				$p->{'warn'} = $pw[5] < 0 ? "" : $pw[5];
				$p->{'inactive'} = $pw[6] < 0 ? "" : $pw[6];
				$p->{'expire'} = $pw[7] < 0 ? "" : $pw[7];
				$p->{'sline'} = $lnum;
				}
			$lnum++;
			}
		close(SHADOW);
		for($i=0; $i<@rv; $i++) {
			if (!defined($rv[$i]->{'sline'})) {
				# not in shadow!
				for($j=$i; $j<@rv; $j++) { $rv[$j]->{'num'}--; }
				splice(@rv, $i--, 1);
				}
			}
		}
	elsif (&passfiles_type() == 4) {
		# read the AIX security file
		local $lastuser;
		local $lnum = 0;
		open(SECURITY, $config{'aix_passwd_file'});
		while(<SECURITY>) {
			s/\s*$//;
			if (/^\s*(\S+):/) {
				$lastuser = $idx{$1};
				$lastuser->{'sline'} = $lnum;
				}
			elsif (/^\s*([^=\s]+)\s*=\s*(.*)/) {
				if ($1 eq 'password') {
					$lastuser->{'pass'} = $2;
					}
				elsif ($1 eq 'lastupdate') {
					$lastuser->{'change'} = $2;
					}
				elsif ($1 eq 'flags') {
					map { $lastuser->{lc($_)}++ }
					    split(/[,\s]+/, $2);
					}
				$lastuser->{'seline'} = $lnum;
				}
			$lnum++;
			}
		close(SECURITY);
		}
	}
return @rv;
}

# create_user(&details)
# Creates a new user with the given details
sub create_user
{
local(%u) = %{$_[0]};
local $lref;
if (&passfiles_type() == 1) {
	# just need to add to master.passwd
	$lref = &read_file_lines($config{'master_file'});
	splice(@$lref, &nis_index($lref), 0,
	       "$u{'user'}:$u{'pass'}:$u{'uid'}:$u{'gid'}:$u{'class'}:".
	       "$u{'change'}:$u{'expire'}:$u{'real'}:$u{'home'}:$u{'shell'}");
	}
elsif (&passfiles_type() == 3) {
	# Just invoke the useradd command
	&system_logged("useradd -u $u{'uid'} -g $u{'gid'} -c \"$u{'real'}\" -d $u{'home'} -s $u{'shell'} $u{'user'}");
	# And set the password
	&system_logged("echo $u{'pass'} | /usr/lib/scoadmin/account/password.tcl $u{'user'} >/dev/null 2>&1");
	}
else {
	# add to /etc/passwd
	$lref = &read_file_lines($config{'passwd_file'});
	splice(@$lref, &nis_index($lref), 0,
	       "$u{'user'}:".(&passfiles_type() == 2 ? "x" :
	       &passfiles_type() == 4 ? "!" : $u{'pass'}).
	       ":$u{'uid'}:$u{'gid'}:$u{'real'}:$u{'home'}:$u{'shell'}");
	if (&passfiles_type() == 2) {
		# add to shadow as well..
		$lref = &read_file_lines($config{'shadow_file'});
		splice(@$lref, &nis_index($lref), 0,
		       "$u{'user'}:$u{'pass'}:$u{'change'}:$u{'min'}:".
		       "$u{'max'}:$u{'warn'}:$u{'inactive'}:$u{'expire'}:");
		}
	elsif (&passfiles_type() == 4) {
		# update AIX passwd file as well..
		local @flags;
		push(@flags, 'ADMIN') if ($u{'admin'});
		push(@flags, 'ADMCHG') if ($u{'admchg'});
		push(@flags, 'NOCHECK') if ($u{'nocheck'});
		$lref = &read_file_lines($config{'aix_passwd_file'});
		push(@$lref, "", "$u{'user'}:", "\tpassword = $u{'pass'}",
			     "\tlastupdate = $u{'change'}",
			     "\tflags = ".join(",", @flags));
		}
	}
&flush_file_lines();
}

# modify_user(&old, &details)
sub modify_user
{
local(%u) = %{$_[1]};
local(@passwd, @shadow);
if (&passfiles_type() == 1) {
	# just need to update master.passwd
	&replace_file_line($config{'master_file'}, $_[0]->{'line'},
	      "$u{'user'}:$u{'pass'}:$u{'uid'}:$u{'gid'}:$u{'class'}:".
	      "$u{'change'}:$u{'expire'}:$u{'real'}:$u{'home'}:$u{'shell'}\n");
	}
elsif (&passfiles_type() == 3) {
	# Just use the usermod command
	&system_logged("usermod -u $u{'uid'} -g $u{'gid'} -c \"$u{'real'}\" -d $u{'home'} -s $u{'shell'} $u{'user'}");
	&system_logged("echo $u{'pass'} | /usr/lib/scoadmin/account/password.tcl $u{'user'}");
	}
else {
	# update /etc/passwd
	&replace_file_line($config{'passwd_file'}, $_[0]->{'line'},
		"$u{'user'}:".(&passfiles_type() == 2 ? "x" :
		&passfiles_type() == 4 ? "!" : $u{'pass'}).
		":$u{'uid'}:$u{'gid'}:$u{'real'}:$u{'home'}:$u{'shell'}\n");
	if (&passfiles_type() == 2) {
		# update shadow file as well..
		&replace_file_line($config{'shadow_file'}, $_[0]->{'sline'},
			"$u{'user'}:$u{'pass'}:$u{'change'}:$u{'min'}:".
			"$u{'max'}:$u{'warn'}:$u{'inactive'}:$u{'expire'}:\n");
		}
	elsif (&passfiles_type() == 4) {
		# update AIX passwd file as well..
		local @flags;
		push(@flags, 'ADMIN') if ($u{'admin'});
		push(@flags, 'ADMCHG') if ($u{'admchg'});
		push(@flags, 'NOCHECK') if ($u{'nocheck'});
		local $lref = &read_file_lines($config{'aix_passwd_file'});
		splice(@$lref, $_[0]->{'sline'},
		       $_[0]->{'seline'} - $_[0]->{'sline'} + 1,
		       "$u{'user'}:", "\tpassword = $u{'pass'}",
		       "\tlastupdate = $u{'change'}",
		       "\tflags = ".join(",", @flags));
		&flush_file_lines();
		}
	}
}

# delete_user(&details)
sub delete_user
{
if (&passfiles_type() == 1) {
	&replace_file_line($config{'master_file'}, $_[0]->{'line'});
	}
elsif (&passfiles_type() == 3) {
	# Just invoke the userdel command
	&system_logged("userdel -n0 $_[0]->{'user'}");
	}
else {
	&replace_file_line($config{'passwd_file'}, $_[0]->{'line'});
	if (&passfiles_type() == 2) {
		&replace_file_line($config{'shadow_file'}, $_[0]->{'sline'});
		}
	elsif (&passfiles_type() == 4) {
		local $lref = &read_file_lines($config{'aix_passwd_file'});
		splice(@$lref, $_[0]->{'sline'},
		       $_[0]->{'seline'} - $_[0]->{'sline'} + 1);
		&flush_file_lines();
		}
	}
}

# list_groups()
# Returns a list of all the local groups as an array of hashtables. Each
# will contain group, pass, gid, members
sub list_groups
{
local(@rv, $lnum, $_, %idx, $g, $i, $j);
$lnum = 0;
open(GROUP, $config{'group_file'});
while(<GROUP>) {
	s/\r|\n//g;
	if (/\S/ && !/^[#\+\-]/) {
		@gr = split(/:/, $_, -1);
		push(@rv, { 'group' => $gr[0],	'pass' => $gr[1],
			    'gid' => $gr[2],	'members' => $gr[3],
			    'line' => $lnum,	'num' => scalar(@rv) });
		$idx{$gr[0]} = $rv[$#rv];
		}
	$lnum++;
	}
close(GROUP);
if (&groupfiles_type() == 2) {
	# read the gshadow file data
	$lnum = 0;
	open(SHADOW, $config{'gshadow_file'});
	while(<SHADOW>) {
		s/\r|\n//g;
		if (/\S/ && !/^[#\+\-]/) {
			@gr = split(/:/, $_, -1);
			$g = $idx{$gr[0]};
			$g->{'pass'} = $gr[1];
			$g->{'sline'} = $lnum;
			}
		$lnum++;
		}
	close(SHADOW);
	for($i=0; $i<@rv; $i++) {
		if (!defined($rv[$i]->{'sline'})) {
			# not in shadow!
			for($j=$i; $j<@rv; $j++) { $rv[$j]->{'num'}--; }
			splice(@rv, $i--, 1);
			}
		}
	}
elsif (&groupfiles_type() == 4) {
	# read the AIX group data
	local $lastgroup;
	local $lnum = 0;
	open(SECURITY, $config{'aix_group_file'});
	while(<SECURITY>) {
		s/\s*$//;
		if (/^\s*(\S+):/) {
			$lastgroup = $idx{$1};
			$lastgroup->{'sline'} = $lnum;
			}
		elsif (/^\s*([^=\s]+)\s*=\s*(.*)/) {
			$lastgroup->{'seline'} = $lnum;
			}
		$lnum++;
		}
	close(SECURITY);
	}
return @rv;
}

# create_group(&details)
sub create_group
{
local(%g) = %{$_[0]};
local $lref;
$lref = &read_file_lines($config{'group_file'});
splice(@$lref, &nis_index($lref), 0,
       "$g{'group'}:".(&groupfiles_type() == 2 ? "x" : $g{'pass'}).
       ":$g{'gid'}:$g{'members'}");
close(GROUP);
if (&groupfiles_type() == 2) {
	$lref = &read_file_lines($config{'gshadow_file'});
	splice(@$lref, &nis_index($lref), 0,
	       "$g{'group'}:$g{'pass'}::$g{'members'}");
	}
elsif (&groupfiles_type() == 4) {
	$lref = &read_file_lines($config{'aix_group_file'});
	push(@$lref, "", "$g{'group'}:", "\tadmin = false");
	}
&flush_file_lines();
}

# modify_group(&old, &details)
sub modify_group
{
local(%g) = %{$_[1]};
&replace_file_line($config{'group_file'}, $_[0]->{'line'},
		   "$g{'group'}:".(&groupfiles_type() == 2 ? "x" : $g{'pass'}).
		   ":$g{'gid'}:$g{'members'}\n");
if (&groupfiles_type() == 2) {
	&replace_file_line($config{'gshadow_file'}, $_[0]->{'sline'},
			   "$g{'group'}:$g{'pass'}::$g{'members'}\n");
	}
}

# delete_group(&details)
sub delete_group
{
&replace_file_line($config{'group_file'}, $_[0]->{'line'});
if (&groupfiles_type() == 2) {
	&replace_file_line($config{'gshadow_file'}, $_[0]->{'sline'});
	}
elsif (&groupfiles_type() == 4) {
	local $lref = &read_file_lines($config{'aix_group_file'});
	splice(@$lref, $_[0]->{'sline'},
	       $_[0]->{'seline'} - $_[0]->{'sline'} + 1);
	&flush_file_lines();
	}
}


############################################################################
# Misc functions
############################################################################
# recursive_change(dir, olduid, oldgid, newuid, newgid)
# Change the UID or GID of a directory and all files in it, if they match the
# given UID/GID
sub recursive_change
{
local(@list, $f, @stbuf);
(@stbuf = stat($_[0])) || return;
(-l $_[0]) && return;
if (($_[1] < 0 || $_[1] == $stbuf[4]) &&
    ($_[2] < 0 || $_[2] == $stbuf[5])) {
	# Found match..
	chown($_[3] < 0 ? $stbuf[4] : $_[3],
	      $_[4] < 0 ? $stbuf[5] : $_[4], $_[0]);
	}
if (-d $_[0]) {
	opendir(DIR, $_[0]);
	@list = readdir(DIR);
	closedir(DIR);
	foreach $f (@list) {
		if ($f eq "." || $f eq "..") { next; }
		&recursive_change("$_[0]/$f", $_[1], $_[2], $_[3], $_[4]);
		}
	}
}

# making_changes()
# Called before changes are made to the password or group file
sub making_changes
{
if ($config{'pre_command'} =~ /\S/) {
	&system_logged("($config{'pre_command'}) >/dev/null 2>&1");
	}
}

# made_changes()
# Called after the password or group file has been changed, to run the
# post-changes command.
sub made_changes
{
if ($config{'post_command'} =~ /\S/) {
	&system_logged("($config{'post_command'}) </dev/null >/dev/null 2>&1");
	}
}

# other_modules(function, &user)
# Call some function in the useradmin_update.pl file in other modules
sub other_modules
{
local($m, %minfo);
local $func = $_[0];
opendir(DIR, "..");
foreach $m (readdir(DIR)) {
	if ($m !~ /^\./ && -r "../$m/useradmin_update.pl" &&
	    (%minfo = &get_module_info($m)) &&
	    &check_os_support(\%minfo)) {
		&foreign_require($m, "useradmin_update.pl");
		&foreign_call($m, $func, $_[1]);
		}
	}
}

# can_edit_user(&acl, &user)
sub can_edit_user
{
local $m = $_[0]->{'uedit_mode'};
local %u;
if ($m == 0) { return 1; }
elsif ($m == 1) { return 0; }
elsif ($m == 2 || $m == 3 || $m == 5) {
	map { $u{$_}++ } split(/\s+/, $_[0]->{'uedit'});
	return $m == 2 ? $u{$_[1]->{'user'}} :
	       $m == 3 ? !$u{$_[1]->{'user'}} :
		         $u{$_[1]->{'gid'}};
	}
elsif ($m == 4) {
	return (!$_[0]->{'uedit'} || $_[1]->{'uid'} >= $_[0]->{'uedit'}) &&
	       (!$_[0]->{'uedit2'} || $_[1]->{'uid'} <= $_[0]->{'uedit2'});
	}
return 0;
}

# can_edit_group(&acl, &group)
sub can_edit_group
{
local $m = $_[0]->{'gedit_mode'};
local %g;
if ($m == 0) { return 1; }
elsif ($m == 1) { return 0; }
elsif ($m == 2 || $m == 3) {
	map { $g{$_}++ } split(/\s+/, $_[0]->{'gedit'});
	return $m == 2 ? $g{$_[1]->{'group'}}
		       : !$g{$_[1]->{'group'}};
	}
else { return (!$_[0]->{'gedit'} || $_[1]->{'gid'} >= $_[0]->{'gedit'}) &&
	      (!$_[0]->{'gedit2'} || $_[1]->{'gid'} <= $_[0]->{'gedit2'}); }
}

# nis_index(&lines)
sub nis_index
{
local $i;
for($i=0; $i<@{$_[0]}; $i++) {
	last if ($_[0]->[$i] =~ /^[\+\-]/);
	}
return $i;
}

# copy_skel_files(source, dest, uid, gid)
sub copy_skel_files
{
local ($f, $df);
foreach $f (split(/\s+/, $_[0])) {
	if (-d $f) {
		# copy all files in a directory
		opendir(DIR, $f);
		foreach $df (readdir(DIR)) {
			if ($df eq "." || $df eq "..") { next; }
			&copy_file("$f/$df", $_[1], $_[2], $_[3]);
			}
		closedir(DIR);
		}
	elsif (-r $f) {
		# copy just one file
		&copy_file($f, $_[1], $_[2], $_[3]);
		}
	}
}

# copy_file(file, destdir, uid, gid)
# Copy a file or directory and chown it
sub copy_file
{
local($base, $subs);
$_[0] =~ /\/([^\/]+)$/; $base = $1;
$subs = $config{'files_remove'};
$base =~ s/$subs//g if ($subs);
&system_logged("cp -r \"$_[0]\" \"$_[1]/$base\" >/dev/null 2>/dev/null");
&system_logged("chown -R $_[2]:$_[3] \"$_[1]/$base\" >/dev/null 2>/dev/null");
}

# lock_user_files()
# Lock all password, shadow and group files
sub lock_user_files
{
&lock_file($config{'passwd_file'});
&lock_file($config{'group_file'});
&lock_file($config{'shadow_file'});
&lock_file($config{'gshadow_file'});
&lock_file($config{'master_file'});
}

# unlock_user_files()
# Unlock all password, shadow and group files
sub unlock_user_files
{
&unlock_file($config{'passwd_file'});
&unlock_file($config{'group_file'});
&unlock_file($config{'shadow_file'});
&unlock_file($config{'gshadow_file'});
&unlock_file($config{'master_file'});
}

# Functions similar to the standard password file ones, but which may
# use webmin's reading of the user/group files instead.

sub my_setpwent
{
if ($config{'from_files'}) {
	@setpwent_cache = &list_users();
	$setpwent_pos = 0;
	}
else { return setpwent(); }
}

sub my_getpwent
{
if ($config{'from_files'}) {
	my_setpwent() if (!@setpwent_cache);
	if ($setpwent_pos >= @setpwent_cache) {
		return wantarray ? () : undef;
		}
	else {
		return &pw_user_rv($setpwent_cache[$setpwent_pos++],
				   wantarray, 'user');
		}
	}
else { return getpwent(); }
}

sub my_endpwent
{
if ($config{'from_files'}) {
	undef(@setpwent_cache);
	}
else { return endpwent(); }
}

sub my_getpwnam
{
if ($config{'from_files'}) {
	foreach $u (&list_users()) {
		return &pw_user_rv($u, wantarray, 'uid')
			if ($u->{'user'} eq $_[0]);
		}
	return wantarray ? () : undef;
	}
else { return getpwnam($_[0]); }
}

sub my_getpwuid
{
if ($config{'from_files'}) {
	foreach $u (&list_users()) {
		return &pw_user_rv($u, wantarray, 'user')
			if ($u->{'uid'} eq $_[0]);
		}
	return wantarray ? () : undef;
	}
else { return getpwuid($_[0]); }
}

sub pw_user_rv
{
return $_[0] ? ( $_[0]->{'user'}, $_[0]->{'pass'}, $_[0]->{'uid'},
		 $_[0]->{'gid'}, undef, undef, $_[0]->{'real'},
		 $_[0]->{'home'}, $_[0]->{'shell'}, undef ) : $_[0]->{$_[2]};
}

sub my_setgrent
{
if ($config{'from_files'}) {
	@setgrent_cache = &list_groups();
	$setgrent_pos = 0;
	}
else { return setgrent(); }
}

sub my_getgrent
{
if ($config{'from_files'}) {
	my_setgrent() if (!@setgrent_cache);
	if ($setgrent_pos >= @setgrent_cache) {
		return ();
		}
	else {
		return &gr_group_rv($setgrent_cache[$setgrent_pos++],
				    wantarray, 'group');
		}
	}
else { return getgrent(); }
}

sub my_endgrent
{
if ($config{'from_files'}) {
	undef(@setgrent_cache);
	}
else { return endgrent(); }
}

sub my_getgrnam
{
if ($config{'from_files'}) {
	foreach $g (&list_groups()) {
		return &gr_group_rv($g, wantarray, 'gid')
			if ($g->{'group'} eq $_[0]);
		}
	return wantarray ? () : undef;
	}
else { return getgrnam($_[0]); }
}

sub my_getgrgid
{
if ($config{'from_files'}) {
	foreach $g (&list_groups()) {
		return &gr_group_rv($g, wantarray, 'group')
			if ($g->{'gid'} eq $_[0]);
		}
	return wantarray ? () : undef;
	}
else { return getgrgid($_[0]); }
}

sub gr_group_rv
{
return $_[1] ? ( $_[0]->{'group'}, $_[0]->{'pass'}, $_[0]->{'gid'},
		 $_[0]->{'members'} ) : $_[0]->{$_[2]};
}

1;
0707010000a45e000081a40000000000000002000000013ac03890000011f5000000200000000000000000000000000000002400000003reloc/useradmin/redhat-linux-lib.pl   # linux-lib.pl
# Functions for reading linux format last output

# passfiles_type()
# Returns 0 for old-style passwords (/etc/passwd only), 1 for FreeBSD-style
# (/etc/master.passwd) and 2 for SysV (/etc/passwd & /etc/shadow)
sub passfiles_type
{
return &password_file($config{'shadow_file'}) ? 2 : 0;
}

# groupfiles_type()
# Returns 0 for normal group file (/etc/group only) and 2 for shadowed
# (/etc/group and /etc/gshadow)
sub groupfiles_type
{
return &password_file($config{'gshadow_file'}) ? 2 : 0;
}

# open_last_command(handle, user)
sub open_last_command
{
local ($fh, $user) = @_;
open($fh, "last $user |");
}

# read_last_line(handle)
# Parses a line of output from last into an array of
#  user, tty, host, login, logout, period
sub read_last_line
{
$fh = $_[0];
while(1) {
	chop($line = <$fh>);
	if (!$line) { return (); }
	if ($line =~ /system boot/) { next; }
	if ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+\-\s+(\S+)\s+\((\d+:\d+)\)/) {
		return ($1, $2, $3, $4, $5 eq "down" ? "Shutdown" : $5, $6);
		}
	elsif ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+still/) {
		return ($1, $2, $3, $4);
		}
	}
}

# encrypt_password(password)
sub encrypt_password
{
local $md5 = 0;
if (&foreign_check("pam")) {
	# Use the PAM module if we can
	&foreign_require("pam", "pam-lib.pl");
	local @conf = &foreign_call("pam", "get_pam_config");
	local ($svc) = grep { $_->{'name'} eq 'passwd' } @conf;
	LOOP: foreach $m (@{$svc->{'mods'}}) {
		if ($m->{'type'} eq 'password') {
			if ($m->{'args'} =~ /md5/) { $md5++; }
			elsif ($m->{'module'} =~ /pam_stack\.so/ &&
			       $m->{'args'} =~ /service=(\S+)/) {
				# Referred to another service!
				($svc) = grep { $_->{'name'} eq $1 } @conf;
				if ($svc) { goto LOOP }
				else { last; }
				}
			}
		}
	}
elsif (open(PAM, "/etc/pam.d/passwd")) {
	# Otherwise try to check the PAM file directly
	while(<PAM>) {
		s/#.*$//g;
		$md5++ if (/^password.*md5/);
		}
	close(PAM);
	}
if (open(DEFS, "/etc/login.defs")) {
	# The login.defs file is used on debian sometimes
	while(<DEFS>) {
		s/#.*$//g;
		$md5++ if (/MD5_CRYPT_ENAB\s+yes/i);
		}
	close(DEFS);
	}
if ($md5 && !$config{'skip_md5'}) {
	# MD5 encrypt the password, using the same algorithm as PAM
	eval "use MD5";
	if ($@) {
		&header("Error", "");
		print "<hr><p>\n";
		print "Your system has MD5 passwords enabled, but the perl\n",
		      "MD5 module is not installed.<p> To force the use of\n",
		      "normal encrypted passwords, adjust your\n",
		      "<a href='/config.cgi?$module_name'>module ",
		      "configuration</a>. <p><hr>\n";
		exit;
		}
	local $passwd = $_[0];
	local $magic = '$1$';
	local $salt = substr(time(), -8);

	# Add the password, magic and salt
	local $ctx = new MD5;
	$ctx->add($passwd);
	$ctx->add($magic);
	$ctx->add($salt);

	# Add some more stuff from the hash of the password and salt
	local $ctx1 = new MD5;
	$ctx1->add($passwd);
	$ctx1->add($salt);
	$ctx1->add($passwd);
	local $final = $ctx1->digest();
	for($pl=length($passwd); $pl>0; $pl-=16) {
		$ctx->add($pl > 16 ? $final : substr($final, 0, $pl));
		}

	# This piece of code seems rather pointless, but it's in the C code that
	# does MD5 in PAM so it has to go in!
	local $j = 0;
	local ($i, $l);
	for($i=length($passwd); $i; $i >>= 1) {
		if ($i & 1) {
			$ctx->add("\0");
			}
		else {
			$ctx->add(substr($passwd, $j, 1));
			}
		}
	$final = $ctx->digest();

	# This loop exists only to waste time
	for($i=0; $i<1000; $i++) {
		$ctx1 = new MD5;
		$ctx1->add($i & 1 ? $passwd : $final);
		$ctx1->add($salt) if ($i % 3);
		$ctx1->add($passwd) if ($i % 7);
		$ctx1->add($i & 1 ? $final : $passwd);
		$final = $ctx1->digest();
		}

	# Convert the 16-byte final string into a readable form
	local $rv = $magic.$salt.'$';
	local @final = map { ord($_) } split(//, $final);
	$l = ($final[ 0]<<16) + ($final[ 6]<<8) + $final[12];
	$rv .= &to64($l, 4);
	$l = ($final[ 1]<<16) + ($final[ 7]<<8) + $final[13];
	$rv .= &to64($l, 4);
	$l = ($final[ 2]<<16) + ($final[ 8]<<8) + $final[14];
	$rv .= &to64($l, 4);
	$l = ($final[ 3]<<16) + ($final[ 9]<<8) + $final[15];
	$rv .= &to64($l, 4);
	$l = ($final[ 4]<<16) + ($final[10]<<8) + $final[ 5];
	$rv .= &to64($l, 4);
	$l = $final[11];
	$rv .= &to64($l, 2);

	return $rv;
	}
else {
	local $salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
	return crypt($_[0], $salt);
	}
}

@itoa64 = split(//, "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
sub to64
{
local ($v, $n) = @_;
local $r;
while(--$n >= 0) {
        $r .= $itoa64[$v & 0x3f];
        $v >>= 6;
        }
return $r;
}

1;
   0707010000a45f000081e40000000000000002000000013ac0388f00000b01000000200000000000000000000000000000001f00000003reloc/useradmin/save_group.cgi    #!/usr/local/bin/perl
# save_group.cgi
# Saves or creates a new group

require './user-lib.pl';
require 'timelocal.pl';
&error_setup($text{'gsave_err'});
&ReadParse();
%access = &get_module_acl();

# Strip out \n characters in inputs
$in{'group'} =~ s/\r|\n//g;
$in{'pass'} =~ s/\r|\n//g;
$in{'encpass'} =~ s/\r|\n//g;
$in{'gid'} =~ s/\r|\n//g;

&lock_user_files();
@glist = &list_groups();
if ($in{'num'} ne "") {
	# get old group
	%ogroup = %{$glist[$in{'num'}]};
	$group{'group'} = $ogroup{'group'};
	&can_edit_group(\%access, \%ogroup) || &error($text{'gsave_eedit'});
	}
else {
	# check group name
	$access{'gcreate'}==1 || &error($text{'gsave_ecreate'});
	$in{'group'} =~ /^[^: \t]+$/ ||
		&error(&text('gsave_ebadname', $in{'group'}));
	&my_getgrnam($in{'group'}) &&
		&error(&text('gsave_einuse', $in{'group'}));
	$group{'group'} = $in{'group'};
	}

# Validate and save inputs
$in{'gid'} =~ /^[0-9]+$/ || &error(&text('gsave_egid', $in{'gid'}));
!$access{'lowgid'} || $in{'gid'} >= $access{'lowgid'} ||
	&error(&text('usave_elowgid', $access{'lowgid'}));
!$access{'higid'} || $in{'gid'} <= $access{'higid'} ||
	&error(&text('usave_ehigid', $access{'higid'}));
if (!$access{'gmultiple'}) {
	foreach $og (@glist) {
		if ($og->{'gid'} == $in{'gid'} &&
		    $og->{'group'} ne $ogroup{'group'}) {
			&error(&text('usave_egidused',
				     $og->{'group'}, $in{'gid'}));
			}
		}
	}
@mems = split(/\s+/, $in{members});
$group{'members'} = join(',', @mems);
$group{'gid'} = $in{'gid'};

$salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
if ($in{'passmode'} == 0) { $group{'pass'} = ""; }
elsif ($in{'passmode'} == 1) { $group{'pass'} = $in{'encpass'}; }
elsif ($in{'passmode'} == 2) { $group{'pass'} = crypt($in{'pass'}, $salt); }

if (%ogroup) {
	if ($group{'gid'} != $ogroup{'gid'} && $in{'chgid'}) {
		# Change GID on files if needed
		if ($in{'chgid'} == 1) {
			# Do all the home directories of users in this group
			&my_setpwent();
			while(@tmp = &my_getpwent()) {
				if ($tmp[3] == $group{'gid'} ||
				    &indexof($tmp[0], @mems) >= 0) {
					&recursive_change(
						$tmp[7], -1, $ogroup{'gid'},
							 -1, $group{'gid'});
					}
				}
			&my_endpwent();
			}
		else {
			# Do all files in this group from the root dir
			&recursive_change("/", -1, $ogroup{'gid'},
					       -1, $group{'gid'});
			}
		}

	# Save the group
	$ENV{'USERADMIN_GROUP'} = $group{'group'};
	$ENV{'USERADMIN_ACTION'} = 'MODIFY_GROUP';
	&making_changes();
	&modify_group(\%ogroup, \%group);
	}
else {
	# Creating a new group
	$ENV{'USERADMIN_GROUP'} = $group{'group'};
	$ENV{'USERADMIN_ACTION'} = 'CREATE_GROUP';
	&making_changes();
	&create_group(\%group);
	}
&made_changes();
&unlock_user_files();
&webmin_log(%ogroup ? 'modify' : 'create', 'group', $group{'group'}, \%in);

# Bounce back to the list
&redirect("");

   0707010000a460000081e40000000000000002000000013ac0388e0000315b000000200000000000000000000000000000001e00000003reloc/useradmin/save_user.cgi #!/usr/local/bin/perl
# save_user.cgi
# Saves or creates a new user. If the changes require moving of the user's
# home directory or changing file ownerships, do that as well

require './user-lib.pl';
require 'timelocal.pl';
&error_setup($text{'usave_err'});
&ReadParse();
%access = &get_module_acl();

# Strip out \n characters in inputs
$in{'real'} =~ s/\r|\n//g;
$in{'user'} =~ s/\r|\n//g;
$in{'pass'} =~ s/\r|\n//g;
$in{'encpass'} =~ s/\r|\n//g;
$in{'home'} =~ s/\r|\n//g;
$in{'gid'} =~ s/\r|\n//g;
$in{'uid'} =~ s/\r|\n//g;
$in{'othersh'} =~ s/\r|\n//g;

# Validate username
$user{'user'} = $in{'user'};
$in{'user'} =~ /^[^: \t]+$/ ||
	&error(&text('usave_ebadname', $in{'user'}));

&lock_user_files();
@ulist = &list_users();
@glist = &list_groups();
if ($in{'num'} ne "") {
	# Get old user info
	%ouser = %{$ulist[$in{'num'}]};
	$user{'olduser'} = $ouser{'user'};
	if ($user{'user'} ne $ouser{'user'}) {
		foreach $ou (@ulist) {
			&error(&text('usave_einuse', $in{'user'}))
				if ($ou->{'user'} eq $in{'user'});
			}
		$access{'uedit_mode'} == 2 && &error($text{'usave_erename'});
		$renaming = 1;
		}
	&can_edit_user(\%access, \%ouser) || &error($text{'usave_eedit'});
	}
else {
	# check new user details
	$access{'ucreate'} || &error($text{'usave_ecreate'});
	foreach $ou (@ulist) {
		&error(&text('usave_einuse', $in{'user'}))
			if ($ou->{'user'} eq $in{'user'});
		}
	}
if (($in{'num'} eq '' || $user{'user'} ne $ouser{'user'}) &&
    $config{'alias_check'} && &foreign_check("sendmail")) {
	# Check if the new username conflicts with a sendmail alias
	&foreign_require("sendmail", "sendmail-lib.pl");
	&foreign_require("sendmail", "aliases-lib.pl");
	local $conf = &foreign_call("sendmail", "get_sendmailcf");
	local $afiles = &foreign_call("sendmail", "aliases_file", $conf);
	foreach $a (&foreign_call("sendmail", "list_aliases", $afiles)) {
		&error(&text('usave_einuse_a', $in{'user'}))
			if ($a->{'name'} eq $in{'user'});
		}
	}

# Validate and store basic inputs
$in{'uid'} =~ /^[0-9]+$/ || &error(&text('usave_euid', $in{'uid'}));
if (!%ouser || $ouser{'uid'} != $in{'uid'}) {
	!$access{'lowuid'} || $in{'uid'} >= $access{'lowuid'} ||
		&error(&text('usave_elowuid', $access{'lowuid'}));
	!$access{'hiuid'} || $in{'uid'} <= $access{'hiuid'} ||
		&error(&text('usave_ehiuid', $access{'hiuid'}));
	}
if (!$access{'umultiple'}) {
	foreach $ou (@ulist) {
		if ($ou->{'uid'} == $in{'uid'} &&
		    $ou->{'user'} ne $ouser{'user'}) {
			&error(&text('usave_euidused',
				     $ou->{'user'}, $in{'uid'}));
			}
		}
	}
$in{'real'} =~ /^[^:]*$/ || &error(&text('usave_ereal', $in{'real'}));
if (!$access{'autohome'}) {
	$in{'home'} =~ /^\// || &error(&text('usave_ehome', $in{'home'}));
	$al = length($access{'home'});
	if (length($in{'home'}) < $al ||
	    substr($in{'home'}, 0, $al) ne $access{'home'}) {
		&error(&text('usave_ehomepath', $in{'home'}));
		}
	}
if ($in{'shell'} eq "*") { $in{'shell'} = $in{'othersh'}; }
if ($access{'shells'} ne "*") {
	if (&indexof($in{'shell'}, split(/\s+/, $access{'shells'})) < 0 &&
	    (!%ouser || $in{'shell'} ne $ouser{'shell'})) {
		&error(&text('usave_eshell', $in{'shell'}));
		}
	}
$user{'uid'} = $in{'uid'};
if ($in{'num'} ne "" || !$in{'gidmode'}) {
	# Selecting existing group
	$user{'gid'} = &my_getgrnam($in{'gid'});
	if ($user{'gid'} eq "") { &error(&text('usave_egid', $in{'gid'})); }
	}
else {
	# Creating a new group
	$access{'gcreate'} || &error($text{'usave_egcreate'});
	$in{'newgid'} =~ /^[^: \t]+$/ ||
		&error(&text('gsave_ebadname', $in{'newgid'}));
	foreach $og (@glist) {
		&error(&text('usave_einuseg', $in{'newgid'}))
			if ($og->{'group'} eq $in{'newgid'});
		}
	}
$user{'real'} = $in{'real'};
$user{'home'} = !$access{'autohome'} ? $in{'home'} :
		%ouser ? $ouser{'home'} :
			 $access{'home'}."/".$in{'user'};
$user{'shell'} = $in{'shell'};
foreach $gid (split(/\0/, $in{'sgid'})) {
	$ingroup{$gid}++;
	}

if ($access{'ugroups'} ne "*") {
	local %g;
	map { $g{$_}++ } split(/\s+/, $access{'ugroups'});
	if ($in{'num'} ne "") {
		# existing users can only be added to or removed from
		# allowed groups
		if ($ouser{'gid'} != $user{'gid'}) {
			$g{$in{'gid'}} ||
				&error(&text('usave_eprimary', $in{'gid'}));
			local $og = &my_getgrgid($ouser{'gid'});
			$g{$og} ||
				&error(&text('usave_eprimaryr', $og));
			}
		foreach $g (@glist) {
			local @mems = split(/,/ , $g->{'members'});
			local $idx = &indexof($ouser{'user'}, @mems);
			if ($ingroup{$g->{'gid'}} && $idx<0 &&
			    !$g{$g->{'group'}}) {
				&error(&text('usave_esecondary',
					     $g->{'group'}));
				}
			elsif (!$ingroup{$g->{'gid'}} && $idx>=0 &&
			       !$g{$g->{'group'}}) {
				&error(&text('usave_esecondaryr',
					     $g->{'group'}));
				}
			}
		}
	elsif (!$in{'gidmode'}) {
		# new users can only be added to allowed groups
		# This is skipped if we are creating a new group for
		# new users
		$g{$in{'gid'}} ||
			&error(&text('usave_eprimary', $in{'gid'}));
		foreach $gid (split(/\0/, $in{'sgid'})) {
			local $group = &my_getgrgid($gid);
			$g{$group} ||
				&error(&text('usave_esecondary', $group));
			}
		}
	}

# Store password input
$salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
if ($in{'passmode'} == 0) { $user{'pass'} = ""; }
elsif ($in{'passmode'} == 1) { $user{'pass'} = $config{'lock_string'}; }
elsif ($in{'passmode'} == 2) { $user{'pass'} = $in{'encpass'}; }
elsif ($in{'passmode'} == 3) { $user{'pass'} = &encrypt_password($in{'pass'}); }

if (&passfiles_type() == 2) {
	if ($access{'peopt'}) {
		# Validate shadow-password inputs
		if ($in{'expired'} ne "" && $in{'expirem'} ne ""
		    && $in{'expirey'} ne "") {
			eval { $expire = timelocal(0, 0, 12, $in{'expired'},
						   $in{'expirem'}-1,
						   $in{'expirey'}-1900); };
			if ($@) { &error("invalid expiry date"); }
			$expire = int($expire / (60*60*24));
			}
		else { $expire = ""; }
		$in{'min'} =~ /^[0-9]*$/ ||
			&error(&text('usave_emin', $in{'min'}));
		$in{'max'} =~ /^[0-9]*$/ ||
			&error(&text('usave_emax', $in{'max'}));
		$in{'warn'} =~ /^[0-9]*$/ ||
			&error(&text('usave_ewarn', $in{'warn'}));
		$in{'inactive'} =~ /^[0-9]*$/ ||
			&error(&text('usave_einactive', $in{'inactive'}));
		$user{'expire'} = $expire;
		$user{'min'} = $in{'min'};
		$user{'max'} = $in{'max'};
		$user{'warn'} = $in{'warn'};
		$user{'inactive'} = $in{'inactive'};
		}
	else {
		$user{'expire'} = $ouser{'expire'};
		$user{'min'} = $ouser{'min'};
		$user{'max'} = $ouser{'max'};
		$user{'warn'} = $ouser{'warn'};
		$user{'inactive'} = $ouser{'inactive'};
		}
	$daynow = int(time() / (60*60*24));
	$user{'change'} = !%ouser ? $daynow :
			  $in{'passmode'} == 3 ? $daynow :
			  $in{'passmode'} == 2 &&
			  $user{'pass'} ne $ouser{'pass'} ? $daynow :
							    $ouser{'change'};
	}

if (&passfiles_type() == 1) {
	if ($access{'peopt'}) {
		# Validate BSD-password inputs
		if ($in{'expired'} ne "" && $in{'expirem'} ne ""
		    && $in{'expirey'} ne "") {
			eval { $expire = timelocal(59, $in{'expiremi'},
						   $in{'expireh'},
						   $in{'expired'},
						   $in{'expirem'}-1,
						   $in{'expirey'}-1900); };
			if ($@) { &error($text{'usave_eexpire'}); }
			}
		else { $expire = ""; }
		if ($in{'changed'} ne "" && $in{'changem'} ne ""
		    && $in{'changey'} ne "") {
			eval { $change = timelocal(59, $in{'changemi'},
						   $in{'changeh'},
						   $in{'changed'},
						   $in{'changem'}-1,
						   $in{'changey'}-1900); };
			if ($@) { &error($text{'usave_echange'}); }
			}
		else { $change = ""; }
		$in{'class'} =~ /^([^: ]*)$/ ||
			&error(&text('usave_eclass', $in{'class'}));
		$user{'expire'} = $expire;
		$user{'change'} = $change;
		$user{'class'} = $in{'class'};
		}
	else {
		$user{'expire'} = $ouser{'expire'};
		$user{'change'} = $ouser{'change'};
		$user{'class'} = $ouser{'class'};
		}
	}

if (&passfiles_type() == 4) {
	# Validate AIX-style password inputs
	if ($access{'peopt'}) {
		$user{'admin'} = $in{'flags'} =~ /admin/;
		$user{'admchg'} = $in{'flags'} =~ /admchg/;
		$user{'nocheck'} = $in{'flags'} =~ /nocheck/;
		}
	else {
		$user{'admin'} = $ouser{'admin'};
		$user{'admchg'} = $ouser{'admchg'};
		$user{'nocheck'} = $ouser{'nocheck'};
		}
	$user{'change'} = !%ouser ? time() :
			  $in{'passmode'} == 3 ? time() :
			  $user{'pass'} ne $ouser{'pass'} ? time() :
							    $ouser{'change'};
	}

if (%ouser) {
	# We are changing an existing user
	if ($ouser{'uid'} != $user{'uid'}) {
		$changing_uid = 1;
		}
	if ($ouser{'gid'} != $user{'gid'}) {
		$changing_gid = 1;
		}
	if ($ouser{'home'} ne $user{'home'}) {
		$changing_homedir = 1;
		}
	$in{'old'} = $ouser{'user'};

	# Move the home directory if needed
	if ($changing_homedir && $in{'movehome'}) {
		&error($text{'usave_efromroot'}) if ($ouser{'home'} eq "/");
		&error($text{'usave_etoroot'}) if ($user{'home'} eq "/");
		if (-d $ouser{'home'} && !-e $user{'home'}) {
			# Move home directory if the old one exists and
			# the new one does not.
			$out = &backquote_logged(
				"mv \"$ouser{'home'}\" \"$user{'home'}\" 2>&1");
			if ($?) { &error(&text('usave_emove', $out)); }
			}
		}

	# Change GID on files if needed
	if ($changing_gid && $in{'chgid'}) {
		if ($in{'chgid'} == 1) {
			&recursive_change($user{'home'}, $ouser{'uid'},
					  $ouser{'gid'}, -1, $user{'gid'});
			}
		else {
			&recursive_change("/", $ouser{'uid'},
					  $ouser{'gid'}, -1, $user{'gid'});
			}
		}

	# Change UID on files if needed
	if ($changing_uid && $in{'chuid'}) {
		if ($in{'chuid'} == 1) {
			&recursive_change($user{'home'}, $ouser{'uid'},
					  -1, $user{'uid'}, -1);
			}
		else {
			&recursive_change("/", $ouser{'uid'},
					  -1, $user{'uid'}, -1);
			}
		}

	# Update user details
	$ENV{'USERADMIN_USER'} = $user{'user'};
	$ENV{'USERADMIN_ACTION'} = 'MODIFY_USER';
	&making_changes();
	&modify_user(\%ouser, \%user);
	$user{'passmode'} = $in{'passmode'};
	if ($in{'passmode'} == 2 && $user{'pass'} eq $ouser{'pass'}) {
		# not changing password
		$user{'passmode'} = 4;
		}
	$user{'plainpass'} = $in{'pass'} if ($in{'passmode'} == 3);
	&other_modules("useradmin_modify_user", \%user);
	}
else {
	# Create the home directory
	if ($in{'makehome'}) {
		&lock_file($user{'home'});
		mkdir($user{'home'}, oct($config{'homedir_perms'})) ||
			&error(&text('usave_emkdir', $!));
		chmod(oct($config{'homedir_perms'}), $user{'home'}) ||
			&error(&text('usave_echmod', $!));
		&unlock_file($user{'home'});
		$made_home = 1;
		}

	$ENV{'USERADMIN_USER'} = $user{'user'};
	$ENV{'USERADMIN_ACTION'} = 'CREATE_USER';
	&making_changes();

	if ($in{'gidmode'}) {
		# New group for the new user ..
		# find the first free GID above the base
		&my_setgrent();
		while(@tmp = &my_getgrent()) {
			$used{$tmp[2]}++;
			}
		&my_endgrent();
		$newgid = int($config{'base_gid'} > $access{'lowgid'} ?
				$config{'base_gid'} : $access{'lowgid'});
		while($used{$newgid}) {
			$newgid++;
			}

		# create a new group for this user
		$created_group = $group{'group'} = $in{'newgid'};
		$user{'gid'} = $group{'gid'} = $newgid;
		&create_group(\%group);
		}

	if ($made_home) {
		chown($user{'uid'}, $user{'gid'}, $user{'home'}) ||
			&error(&text('usave_echown', $!));
		}

	# Save user details
	&create_user(\%user);
	$user{'passmode'} = $in{'passmode'};
	$user{'plainpass'} = $in{'pass'} if ($in{'passmode'} == 3);
	&other_modules("useradmin_create_user", \%user);

	# Copy files into user's directory
	if ($in{'copy_files'} && $in{'makehome'}) {
		local $uf = $config{'user_files'};
		$uf =~ s/\$group/$in{'gid'}/g;
		$uf =~ s/\$gid/$user{'gid'}/g;
		&copy_skel_files($uf, $user{'home'},
				 $user{'uid'}, $user{'gid'});
		}
	}

# Update groups
foreach $g (@glist) {
	@mems = split(/,/ , $g->{'members'});
	if ($renaming) {
		$idx = &indexof($ouser{'user'}, @mems);
		if ($ingroup{$g->{'gid'}} && $idx<0) {
			# Need to add to the group
			push(@mems, $user{'user'});
			}
		elsif (!$ingroup{$g->{'gid'}} && $idx>=0) {
			# Need to remove from the group
			splice(@mems, $idx, 1);
			}
		elsif ($idx >= 0) {
			# Need to rename in group
			$mems[$idx] = $user{'user'};
			}
		else { next; }
		}
	else {
		$idx = &indexof($user{'user'}, @mems);
		if ($ingroup{$g->{'gid'}} && $idx<0) {
			# Need to add to the group
			push(@mems, $user{'user'});
			}
		elsif (!$ingroup{$g->{'gid'}} && $idx>=0) {
			# Need to remove from the group
			splice(@mems, $idx, 1);
			}
		else { next; }
		}
	%newg = %$g;
	$newg{'members'} = join(',', @mems);
	&modify_group($g, \%newg);
	}
&made_changes();
&unlock_user_files();
&webmin_log('create', 'group', $created_group, \%in) if ($created_group);
&webmin_log(%ouser ? 'modify' : 'create', 'user', $in{'user'}, \%in);

# Bounce back to the list
&redirect("");


 0707010000a461000081e40000000000000002000000013ac03890000004ad000000200000000000000000000000000000002100000003reloc/useradmin/search_group.cgi  #!/usr/local/bin/perl
# search_group.cgi
# Search the group file, and display a list of results

require './user-lib.pl';
&ReadParse();
@glist = &list_groups();
$m = $in{'match'};
$w = $in{'what'};
for($i=0; $i<@glist; $i++) {
	$g = $glist[$i];
	$f = $g->{$in{'field'}};
	if ($m == 0 && $f eq $w ||
	    $m == 1 && eval { $f =~ /$w/i } ||
	    $m == 2 && $f ne $w ||
	    $m == 3 && eval { $f !~ /$w/i }) {
		push(@match, $g);
		}
	}
if (@match == 1) {
	&redirect("edit_group.cgi?num=".$match[0]->{'num'});
	}
else {
	&header($text{'search_title'}, "");
	print "<hr>\n";
	if (@match == 0) {
		print "<p><b>$text{'search_gnotfound'}</b>. <p>\n";
		}
	else {
		print "<table border width=100%>\n";
		print "<tr $tb> <td><b>$text{'gedit_group'}</b></td>\n";
		print "<td><b>$text{'gedit_gid'}</b></td>\n";
		print "<td><b>$text{'gedit_members'}</b></td> </tr>\n";
		foreach $m (@match) {
			print "<tr $cb>\n";
			print "<td><a href=\"edit_group.cgi?num=$m->{'num'}\">",
			      "$m->{'group'}</a></td>\n";
			print "<td>$m->{'gid'}</td>\n";
			print "<td>$m->{'members'}&nbsp;</td>\n";
			print "</tr>\n";
			}
		print "</table><p>\n";
		}
	print "<hr>\n";
	&footer("", $text{'index_return'});
	}

   0707010000a462000081e40000000000000002000000013ac0388f000004e0000000200000000000000000000000000000002000000003reloc/useradmin/search_user.cgi   #!/usr/local/bin/perl
# search_user.cgi
# Search the password file, and display a list of results

require './user-lib.pl';
&ReadParse();
@ulist = &list_users();
$m = $in{'match'};
$w = $in{'what'};
for($i=0; $i<@ulist; $i++) {
	$u = $ulist[$i];
	$f = $u->{$in{'field'}};
	if ($m == 0 && $f eq $w ||
	    $m == 1 && eval { $f =~ /$w/i } ||
	    $m == 2 && $f ne $w ||
	    $m == 3 && eval { $f !~ /$w/i }) {
		push(@match, $u);
		}
	}
if (@match == 1) {
	&redirect("edit_user.cgi?num=".$match[0]->{'num'});
	}
else {
	&header($text{'search_title'}, "");
	print "<hr>\n";
	if (@match == 0) {
		print "<p><b>$text{'search_notfound'}</b>. <p>\n";
		}
	else {
		print "<table border width=100%>\n";
		print "<tr $tb> <td><b>$text{'user'}</b></td>\n";
		print "<td><b>$text{'uid'}</b></td>\n";
		print "<td><b>$text{'real'}</b></td>\n";
		print "<td><b>$text{'home'}</b></td> </tr>\n";
		foreach $m (@match) {
			print "<tr $cb>\n";
			print "<td><a href=\"edit_user.cgi?num=$m->{'num'}\">",
			      "$m->{'user'}</a></td>\n";
			print "<td>$m->{'uid'}</td>\n";
			print "<td>$m->{'real'}&nbsp;</td>\n";
			print "<td>$m->{'home'}</td>\n";
			print "</tr>\n";
			}
		print "</table><p>\n";
		}
	print "<hr>\n";
	&footer("", $text{'index_return'});
	}

0707010000a463000081a40000000000000002000000013ac03890000011f5000000200000000000000000000000000000002700000003reloc/useradmin/slackware-linux-lib.pl    # linux-lib.pl
# Functions for reading linux format last output

# passfiles_type()
# Returns 0 for old-style passwords (/etc/passwd only), 1 for FreeBSD-style
# (/etc/master.passwd) and 2 for SysV (/etc/passwd & /etc/shadow)
sub passfiles_type
{
return &password_file($config{'shadow_file'}) ? 2 : 0;
}

# groupfiles_type()
# Returns 0 for normal group file (/etc/group only) and 2 for shadowed
# (/etc/group and /etc/gshadow)
sub groupfiles_type
{
return &password_file($config{'gshadow_file'}) ? 2 : 0;
}

# open_last_command(handle, user)
sub open_last_command
{
local ($fh, $user) = @_;
open($fh, "last $user |");
}

# read_last_line(handle)
# Parses a line of output from last into an array of
#  user, tty, host, login, logout, period
sub read_last_line
{
$fh = $_[0];
while(1) {
	chop($line = <$fh>);
	if (!$line) { return (); }
	if ($line =~ /system boot/) { next; }
	if ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+\-\s+(\S+)\s+\((\d+:\d+)\)/) {
		return ($1, $2, $3, $4, $5 eq "down" ? "Shutdown" : $5, $6);
		}
	elsif ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+still/) {
		return ($1, $2, $3, $4);
		}
	}
}

# encrypt_password(password)
sub encrypt_password
{
local $md5 = 0;
if (&foreign_check("pam")) {
	# Use the PAM module if we can
	&foreign_require("pam", "pam-lib.pl");
	local @conf = &foreign_call("pam", "get_pam_config");
	local ($svc) = grep { $_->{'name'} eq 'passwd' } @conf;
	LOOP: foreach $m (@{$svc->{'mods'}}) {
		if ($m->{'type'} eq 'password') {
			if ($m->{'args'} =~ /md5/) { $md5++; }
			elsif ($m->{'module'} =~ /pam_stack\.so/ &&
			       $m->{'args'} =~ /service=(\S+)/) {
				# Referred to another service!
				($svc) = grep { $_->{'name'} eq $1 } @conf;
				if ($svc) { goto LOOP }
				else { last; }
				}
			}
		}
	}
elsif (open(PAM, "/etc/pam.d/passwd")) {
	# Otherwise try to check the PAM file directly
	while(<PAM>) {
		s/#.*$//g;
		$md5++ if (/^password.*md5/);
		}
	close(PAM);
	}
if (open(DEFS, "/etc/login.defs")) {
	# The login.defs file is used on debian sometimes
	while(<DEFS>) {
		s/#.*$//g;
		$md5++ if (/MD5_CRYPT_ENAB\s+yes/i);
		}
	close(DEFS);
	}
if ($md5 && !$config{'skip_md5'}) {
	# MD5 encrypt the password, using the same algorithm as PAM
	eval "use MD5";
	if ($@) {
		&header("Error", "");
		print "<hr><p>\n";
		print "Your system has MD5 passwords enabled, but the perl\n",
		      "MD5 module is not installed.<p> To force the use of\n",
		      "normal encrypted passwords, adjust your\n",
		      "<a href='/config.cgi?$module_name'>module ",
		      "configuration</a>. <p><hr>\n";
		exit;
		}
	local $passwd = $_[0];
	local $magic = '$1$';
	local $salt = substr(time(), -8);

	# Add the password, magic and salt
	local $ctx = new MD5;
	$ctx->add($passwd);
	$ctx->add($magic);
	$ctx->add($salt);

	# Add some more stuff from the hash of the password and salt
	local $ctx1 = new MD5;
	$ctx1->add($passwd);
	$ctx1->add($salt);
	$ctx1->add($passwd);
	local $final = $ctx1->digest();
	for($pl=length($passwd); $pl>0; $pl-=16) {
		$ctx->add($pl > 16 ? $final : substr($final, 0, $pl));
		}

	# This piece of code seems rather pointless, but it's in the C code that
	# does MD5 in PAM so it has to go in!
	local $j = 0;
	local ($i, $l);
	for($i=length($passwd); $i; $i >>= 1) {
		if ($i & 1) {
			$ctx->add("\0");
			}
		else {
			$ctx->add(substr($passwd, $j, 1));
			}
		}
	$final = $ctx->digest();

	# This loop exists only to waste time
	for($i=0; $i<1000; $i++) {
		$ctx1 = new MD5;
		$ctx1->add($i & 1 ? $passwd : $final);
		$ctx1->add($salt) if ($i % 3);
		$ctx1->add($passwd) if ($i % 7);
		$ctx1->add($i & 1 ? $final : $passwd);
		$final = $ctx1->digest();
		}

	# Convert the 16-byte final string into a readable form
	local $rv = $magic.$salt.'$';
	local @final = map { ord($_) } split(//, $final);
	$l = ($final[ 0]<<16) + ($final[ 6]<<8) + $final[12];
	$rv .= &to64($l, 4);
	$l = ($final[ 1]<<16) + ($final[ 7]<<8) + $final[13];
	$rv .= &to64($l, 4);
	$l = ($final[ 2]<<16) + ($final[ 8]<<8) + $final[14];
	$rv .= &to64($l, 4);
	$l = ($final[ 3]<<16) + ($final[ 9]<<8) + $final[15];
	$rv .= &to64($l, 4);
	$l = ($final[ 4]<<16) + ($final[10]<<8) + $final[ 5];
	$rv .= &to64($l, 4);
	$l = $final[11];
	$rv .= &to64($l, 2);

	return $rv;
	}
else {
	local $salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
	return crypt($_[0], $salt);
	}
}

@itoa64 = split(//, "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
sub to64
{
local ($v, $n) = @_;
local $r;
while(--$n >= 0) {
        $r .= $itoa64[$v & 0x3f];
        $v >>= 6;
        }
return $r;
}

1;
   0707010000a464000081a40000000000000002000000013ac03890000004b3000000200000000000000000000000000000001f00000003reloc/useradmin/solaris-lib.pl    # solaris-lib.pl
# Functions for solaris password file format

# passfiles_type()
# Returns 0 for old-style passwords (/etc/passwd only), 1 for FreeBSD-style
# (/etc/master.passwd) and 2 for SysV (/etc/passwd & /etc/shadow)
sub passfiles_type
{
return 2;
}

# groupfiles_type()
# Returns 0 for normal group file (/etc/group only) and 2 for shadowed
# (/etc/group and /etc/gshadow)
sub groupfiles_type
{
return 0;
}

# open_last_command(handle, user)
sub open_last_command
{
local ($fh, $user) = @_;
open($fh, "last $user |");
}

# read_last_line(handle)
# Parses a line of output from last into an array of
#  user, tty, host, login, logout, period
sub read_last_line
{
local $fh = $_[0];
while(1) {
	chop($line = <$fh>);
	if (!$line) { return (); }
	if ($line =~ /system boot/) { next; }
	if ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+\-\s+(\d+:\d+)\s+\((\d+:\d+)\)/) {
		return ($1, $2, $3, $4, $5, $6);
		}
	elsif ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+still/) {
		return ($1, $2, $3, $4);
		}
	}
}

# encrypt_password(password)
sub encrypt_password
{
local $salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
return crypt($_[0], $salt);
}

1;

 0707010000a49b000081a40000000000000002000000013ac03890000011f5000000200000000000000000000000000000002200000003reloc/useradmin/suse-linux-lib.pl # linux-lib.pl
# Functions for reading linux format last output

# passfiles_type()
# Returns 0 for old-style passwords (/etc/passwd only), 1 for FreeBSD-style
# (/etc/master.passwd) and 2 for SysV (/etc/passwd & /etc/shadow)
sub passfiles_type
{
return &password_file($config{'shadow_file'}) ? 2 : 0;
}

# groupfiles_type()
# Returns 0 for normal group file (/etc/group only) and 2 for shadowed
# (/etc/group and /etc/gshadow)
sub groupfiles_type
{
return &password_file($config{'gshadow_file'}) ? 2 : 0;
}

# open_last_command(handle, user)
sub open_last_command
{
local ($fh, $user) = @_;
open($fh, "last $user |");
}

# read_last_line(handle)
# Parses a line of output from last into an array of
#  user, tty, host, login, logout, period
sub read_last_line
{
$fh = $_[0];
while(1) {
	chop($line = <$fh>);
	if (!$line) { return (); }
	if ($line =~ /system boot/) { next; }
	if ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+\-\s+(\S+)\s+\((\d+:\d+)\)/) {
		return ($1, $2, $3, $4, $5 eq "down" ? "Shutdown" : $5, $6);
		}
	elsif ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+still/) {
		return ($1, $2, $3, $4);
		}
	}
}

# encrypt_password(password)
sub encrypt_password
{
local $md5 = 0;
if (&foreign_check("pam")) {
	# Use the PAM module if we can
	&foreign_require("pam", "pam-lib.pl");
	local @conf = &foreign_call("pam", "get_pam_config");
	local ($svc) = grep { $_->{'name'} eq 'passwd' } @conf;
	LOOP: foreach $m (@{$svc->{'mods'}}) {
		if ($m->{'type'} eq 'password') {
			if ($m->{'args'} =~ /md5/) { $md5++; }
			elsif ($m->{'module'} =~ /pam_stack\.so/ &&
			       $m->{'args'} =~ /service=(\S+)/) {
				# Referred to another service!
				($svc) = grep { $_->{'name'} eq $1 } @conf;
				if ($svc) { goto LOOP }
				else { last; }
				}
			}
		}
	}
elsif (open(PAM, "/etc/pam.d/passwd")) {
	# Otherwise try to check the PAM file directly
	while(<PAM>) {
		s/#.*$//g;
		$md5++ if (/^password.*md5/);
		}
	close(PAM);
	}
if (open(DEFS, "/etc/login.defs")) {
	# The login.defs file is used on debian sometimes
	while(<DEFS>) {
		s/#.*$//g;
		$md5++ if (/MD5_CRYPT_ENAB\s+yes/i);
		}
	close(DEFS);
	}
if ($md5 && !$config{'skip_md5'}) {
	# MD5 encrypt the password, using the same algorithm as PAM
	eval "use MD5";
	if ($@) {
		&header("Error", "");
		print "<hr><p>\n";
		print "Your system has MD5 passwords enabled, but the perl\n",
		      "MD5 module is not installed.<p> To force the use of\n",
		      "normal encrypted passwords, adjust your\n",
		      "<a href='/config.cgi?$module_name'>module ",
		      "configuration</a>. <p><hr>\n";
		exit;
		}
	local $passwd = $_[0];
	local $magic = '$1$';
	local $salt = substr(time(), -8);

	# Add the password, magic and salt
	local $ctx = new MD5;
	$ctx->add($passwd);
	$ctx->add($magic);
	$ctx->add($salt);

	# Add some more stuff from the hash of the password and salt
	local $ctx1 = new MD5;
	$ctx1->add($passwd);
	$ctx1->add($salt);
	$ctx1->add($passwd);
	local $final = $ctx1->digest();
	for($pl=length($passwd); $pl>0; $pl-=16) {
		$ctx->add($pl > 16 ? $final : substr($final, 0, $pl));
		}

	# This piece of code seems rather pointless, but it's in the C code that
	# does MD5 in PAM so it has to go in!
	local $j = 0;
	local ($i, $l);
	for($i=length($passwd); $i; $i >>= 1) {
		if ($i & 1) {
			$ctx->add("\0");
			}
		else {
			$ctx->add(substr($passwd, $j, 1));
			}
		}
	$final = $ctx->digest();

	# This loop exists only to waste time
	for($i=0; $i<1000; $i++) {
		$ctx1 = new MD5;
		$ctx1->add($i & 1 ? $passwd : $final);
		$ctx1->add($salt) if ($i % 3);
		$ctx1->add($passwd) if ($i % 7);
		$ctx1->add($i & 1 ? $final : $passwd);
		$final = $ctx1->digest();
		}

	# Convert the 16-byte final string into a readable form
	local $rv = $magic.$salt.'$';
	local @final = map { ord($_) } split(//, $final);
	$l = ($final[ 0]<<16) + ($final[ 6]<<8) + $final[12];
	$rv .= &to64($l, 4);
	$l = ($final[ 1]<<16) + ($final[ 7]<<8) + $final[13];
	$rv .= &to64($l, 4);
	$l = ($final[ 2]<<16) + ($final[ 8]<<8) + $final[14];
	$rv .= &to64($l, 4);
	$l = ($final[ 3]<<16) + ($final[ 9]<<8) + $final[15];
	$rv .= &to64($l, 4);
	$l = ($final[ 4]<<16) + ($final[10]<<8) + $final[ 5];
	$rv .= &to64($l, 4);
	$l = $final[11];
	$rv .= &to64($l, 2);

	return $rv;
	}
else {
	local $salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
	return crypt($_[0], $salt);
	}
}

@itoa64 = split(//, "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
sub to64
{
local ($v, $n) = @_;
local $r;
while(--$n >= 0) {
        $r .= $itoa64[$v & 0x3f];
        $v >>= 6;
        }
return $r;
}

1;
   0707010000a49c000081a40000000000000002000000013ac03890000011f5000000200000000000000000000000000000002300000003reloc/useradmin/turbo-linux-lib.pl    # linux-lib.pl
# Functions for reading linux format last output

# passfiles_type()
# Returns 0 for old-style passwords (/etc/passwd only), 1 for FreeBSD-style
# (/etc/master.passwd) and 2 for SysV (/etc/passwd & /etc/shadow)
sub passfiles_type
{
return &password_file($config{'shadow_file'}) ? 2 : 0;
}

# groupfiles_type()
# Returns 0 for normal group file (/etc/group only) and 2 for shadowed
# (/etc/group and /etc/gshadow)
sub groupfiles_type
{
return &password_file($config{'gshadow_file'}) ? 2 : 0;
}

# open_last_command(handle, user)
sub open_last_command
{
local ($fh, $user) = @_;
open($fh, "last $user |");
}

# read_last_line(handle)
# Parses a line of output from last into an array of
#  user, tty, host, login, logout, period
sub read_last_line
{
$fh = $_[0];
while(1) {
	chop($line = <$fh>);
	if (!$line) { return (); }
	if ($line =~ /system boot/) { next; }
	if ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+\-\s+(\S+)\s+\((\d+:\d+)\)/) {
		return ($1, $2, $3, $4, $5 eq "down" ? "Shutdown" : $5, $6);
		}
	elsif ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+still/) {
		return ($1, $2, $3, $4);
		}
	}
}

# encrypt_password(password)
sub encrypt_password
{
local $md5 = 0;
if (&foreign_check("pam")) {
	# Use the PAM module if we can
	&foreign_require("pam", "pam-lib.pl");
	local @conf = &foreign_call("pam", "get_pam_config");
	local ($svc) = grep { $_->{'name'} eq 'passwd' } @conf;
	LOOP: foreach $m (@{$svc->{'mods'}}) {
		if ($m->{'type'} eq 'password') {
			if ($m->{'args'} =~ /md5/) { $md5++; }
			elsif ($m->{'module'} =~ /pam_stack\.so/ &&
			       $m->{'args'} =~ /service=(\S+)/) {
				# Referred to another service!
				($svc) = grep { $_->{'name'} eq $1 } @conf;
				if ($svc) { goto LOOP }
				else { last; }
				}
			}
		}
	}
elsif (open(PAM, "/etc/pam.d/passwd")) {
	# Otherwise try to check the PAM file directly
	while(<PAM>) {
		s/#.*$//g;
		$md5++ if (/^password.*md5/);
		}
	close(PAM);
	}
if (open(DEFS, "/etc/login.defs")) {
	# The login.defs file is used on debian sometimes
	while(<DEFS>) {
		s/#.*$//g;
		$md5++ if (/MD5_CRYPT_ENAB\s+yes/i);
		}
	close(DEFS);
	}
if ($md5 && !$config{'skip_md5'}) {
	# MD5 encrypt the password, using the same algorithm as PAM
	eval "use MD5";
	if ($@) {
		&header("Error", "");
		print "<hr><p>\n";
		print "Your system has MD5 passwords enabled, but the perl\n",
		      "MD5 module is not installed.<p> To force the use of\n",
		      "normal encrypted passwords, adjust your\n",
		      "<a href='/config.cgi?$module_name'>module ",
		      "configuration</a>. <p><hr>\n";
		exit;
		}
	local $passwd = $_[0];
	local $magic = '$1$';
	local $salt = substr(time(), -8);

	# Add the password, magic and salt
	local $ctx = new MD5;
	$ctx->add($passwd);
	$ctx->add($magic);
	$ctx->add($salt);

	# Add some more stuff from the hash of the password and salt
	local $ctx1 = new MD5;
	$ctx1->add($passwd);
	$ctx1->add($salt);
	$ctx1->add($passwd);
	local $final = $ctx1->digest();
	for($pl=length($passwd); $pl>0; $pl-=16) {
		$ctx->add($pl > 16 ? $final : substr($final, 0, $pl));
		}

	# This piece of code seems rather pointless, but it's in the C code that
	# does MD5 in PAM so it has to go in!
	local $j = 0;
	local ($i, $l);
	for($i=length($passwd); $i; $i >>= 1) {
		if ($i & 1) {
			$ctx->add("\0");
			}
		else {
			$ctx->add(substr($passwd, $j, 1));
			}
		}
	$final = $ctx->digest();

	# This loop exists only to waste time
	for($i=0; $i<1000; $i++) {
		$ctx1 = new MD5;
		$ctx1->add($i & 1 ? $passwd : $final);
		$ctx1->add($salt) if ($i % 3);
		$ctx1->add($passwd) if ($i % 7);
		$ctx1->add($i & 1 ? $final : $passwd);
		$final = $ctx1->digest();
		}

	# Convert the 16-byte final string into a readable form
	local $rv = $magic.$salt.'$';
	local @final = map { ord($_) } split(//, $final);
	$l = ($final[ 0]<<16) + ($final[ 6]<<8) + $final[12];
	$rv .= &to64($l, 4);
	$l = ($final[ 1]<<16) + ($final[ 7]<<8) + $final[13];
	$rv .= &to64($l, 4);
	$l = ($final[ 2]<<16) + ($final[ 8]<<8) + $final[14];
	$rv .= &to64($l, 4);
	$l = ($final[ 3]<<16) + ($final[ 9]<<8) + $final[15];
	$rv .= &to64($l, 4);
	$l = ($final[ 4]<<16) + ($final[10]<<8) + $final[ 5];
	$rv .= &to64($l, 4);
	$l = $final[11];
	$rv .= &to64($l, 2);

	return $rv;
	}
else {
	local $salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
	return crypt($_[0], $salt);
	}
}

@itoa64 = split(//, "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
sub to64
{
local ($v, $n) = @_;
local $r;
while(--$n >= 0) {
        $r .= $itoa64[$v & 0x3f];
        $v >>= 6;
        }
return $r;
}

1;
   0707010000a49d000081a40000000000000002000000013ac0388e00000511000000200000000000000000000000000000002000000003reloc/useradmin/unixware-lib.pl   # unixware-lib.pl
# Functions for UnixWare password file format

# passfiles_type()
# Returns 0 for old-style passwords (/etc/passwd only), 1 for FreeBSD-style
# (/etc/master.passwd) and 2 for SysV (/etc/passwd & /etc/shadow),3 for Unixware
sub passfiles_type
{
return 3;
}

# groupfiles_type()
# Returns 0 for normal group file (/etc/group only) and 2 for shadowed
# (/etc/group and /etc/gshadow)
sub groupfiles_type
{
return 0;
}

# open_last_command(handle, user)
sub open_last_command
{
local ($fh, $user) = @_;
open($fh, "last $user |");
}

# read_last_line(handle)
# Parses a line of output from last into an array of
#  user, tty, host, login, logout, period
sub read_last_line
{
local $fh = $_[0];
while(1) {
	chop($line = <$fh>);
	if (!$line) { return (); }
	if ($line =~ /system boot/) { next; }
	if ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+\-\s+(\d+:\d+)\s+\((\d+:\d+)\)/) {
		return ($1, $2, $3, $4, $5, $6);
		}
	elsif ($line =~ /^(\S+)\s+(\S+)\s+(\S+)?\s+(\S+\s+\S+\s+\d+\s+\d+:\d+)\s+still/) {
		return ($1, $2, $3, $4);
		}
	}
}

# encrypt_password(password)
sub encrypt_password
{
# We let the passwd programa to do encryption on Unixware.
# local $salt = chr(int(rand(26))+65) . chr(int(rand(26))+65);
# return crypt($_[0], $salt);
return $_[0];
}

1;

   0707010000bd4c000081a40000000000000002000000013ac0388600000005000000200000000000000000000000000000000e00000003reloc/version 0.85
   0707010000bd4d000081e40000000000000002000000013ac038860000d4fc000000200000000000000000000000000000001100000003reloc/web-lib.pl  # web-lib.pl
# Common functions and definitions for web admin programs

# Vital libraries
use Socket;
#use SelfLoader;

# Configuration and spool directories
if (!defined($ENV{'WEBMIN_CONFIG'})) { die "WEBMIN_CONFIG not set"; }
$config_directory = $ENV{'WEBMIN_CONFIG'};
if (!defined($ENV{'WEBMIN_VAR'})) { die "WEBMIN_VAR not set"; }
$var_directory = $ENV{'WEBMIN_VAR'};

#__DATA__

# read_file(file, &assoc, [&order], [lowercase])
# Fill an associative array with name=value pairs from a file
sub read_file
{
open(ARFILE, $_[0]) || return 0;
while(<ARFILE>) {
	s/\r|\n//g;
        if (!/^#/ && /^([^=]+)=(.*)$/) {
		$_[1]->{$_[3] ? lc($1) : $1} = $2;
		push(@{$_[2]}, $1) if ($_[2]);
        	}
        }
close(ARFILE);
return 1;
}
 
# write_file(file, array)
# Write out the contents of an associative array as name=value lines
sub write_file
{
local(%old, @order);
&read_file($_[0], \%old, \@order);
open(ARFILE, ">$_[0]");
foreach $k (@order) {
        print ARFILE $k,"=",$_[1]->{$k},"\n" if (exists($_[1]->{$k}));
	}
foreach $k (keys %{$_[1]}) {
        print ARFILE $k,"=",$_[1]->{$k},"\n" if (!exists($old{$k}));
        }
close(ARFILE);
}

# html_escape
# Convert &, < and > codes in text to HTML entities
sub html_escape
{
local($tmp);
$tmp = $_[0];
$tmp =~ s/&/&amp;/g;
$tmp =~ s/</&lt;/g;
$tmp =~ s/>/&gt;/g;
$tmp =~ s/\"/&quot;/g;
return $tmp;
}

# tempname([filename])
# Returns a mostly random temporary file name
sub tempname
{
while(1) {
	local @st = lstat("/tmp/.webmin");
	last if (!$st[4] && !$st[5] && $st[2] & 0x4000 &&
		 ($st[2] & 0777) == 0755);
	if (@st) {
		unlink("/tmp/.webmin") || system("rm -rf /tmp/.webmin");
		}
	mkdir("/tmp/.webmin", 0755) || next;
	chown(0, 0, "/tmp/.webmin");
	chmod(0755, "/tmp/.webmin");
	}
if (defined($_[0]) && $_[0] !~ /\.\./) {
	return "/tmp/.webmin/$_[0]";
	}
else {
	$main::tempfilecount++;
	&seed_random();
	return "/tmp/.webmin/".int(rand(1000000))."_".
	       $main::tempfilecount."_".$scriptname;
	}
}

# trunc
# Truncation a string to the shortest whole word less than the given width
sub trunc {
  local($str,$c);
  if (length($_[0]) <= $_[1])
    { return $_[0]; }
  $str = substr($_[0],0,$_[1]);
  do {
    $c = chop($str);
    } while($c !~ /\S/);
  return $str;
}

# indexof
# Returns the index of some value in an array, or -1
sub indexof {
  local($i);
  for($i=1; $i <= $#_; $i++) {
    if ($_[$i] eq $_[0]) { return $i - 1; }
    }
  return -1;
  }

# unique
# Returns the unique elements of some array
sub unique
{
local(%found, @rv, $e);
foreach $e (@_) {
	if (!$found{$e}++) { push(@rv, $e); }
	}
return @rv;
}

# sysprint(handle, [string]+)
sub sysprint
{
local($str, $fh);
$str = join('', @_[1..$#_]);
$fh = $_[0];
syswrite $fh, $str, length($str);
}

# check_ipaddress(ip)
# Check if some IP address is properly formatted
sub check_ipaddress
{
return $_[0] =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/ &&
	$1 >= 0 && $1 <= 255 &&
	$2 >= 0 && $2 <= 255 &&
	$3 >= 0 && $3 <= 255 &&
	$4 >= 0 && $4 <= 255;
}

# generate_icon(image, title, link, [href])
sub generate_icon
{
if ($_[2]) {
	print "<table border><tr><td>\n",
	      "<a href=\"$_[2]\" $_[3]><img src=\"$_[0]\" alt=\"\" border=0 ",
	      "width=48 height=48></a></td></tr></table>\n";
	print "<a href=\"$_[2]\">$_[1]</a>\n";
	}
else {
	print "<table border><tr><td>\n",
	      "<img src=\"$_[0]\" alt=\"\" border=0 width=48 height=48>",
	      "</td></tr></table>\n$_[1]\n";
	}
}

# urlize
# Convert a string to a form ok for putting in a URL
sub urlize {
  local($tmp, $tmp2, $c);
  $tmp = $_[0];
  $tmp2 = "";
  while(($c = chop($tmp)) ne "") {
	if ($c !~ /[A-z0-9]/) {
		$c = sprintf("%%%2.2X", ord($c));
		}
	$tmp2 = $c . $tmp2;
	}
  return $tmp2;
}

# un_urlize(string)
# Converts a URL-encoded string to the original
sub un_urlize
{
local $rv = $_[0];
$rv =~ s/\+/ /g;
$rv =~ s/%(..)/pack("c",hex($1))/ge;
return $rv;
}

# include
# Read and output the named file
sub include
{
open(INCLUDE, $_[0]) || return 0;
while(<INCLUDE>) {
	print;
	}
close(INCLUDE);
return 1;
}

# copydata
# Read from one file handle and write to another
sub copydata
{
local($line, $out, $in);
$out = $_[1];
$in = $_[0];
while($line = <$in>) {
	print $out $line;
	}
}

# ReadParseMime
# Read data submitted via a POST request using the multipart/form-data coding
sub ReadParseMime
{
local($boundary,$line,$foo);
$ENV{CONTENT_TYPE} =~ /boundary=(.*)$/;
$boundary = $1;
<STDIN>;	# skip first boundary
while(1) {
	$name = "";
	# Read section headers
	while(1) {
		$line = <STDIN>;
		chop($line); chop($line);	# lose /r/n
		if (!$line) { last; }
		elsif ($line =~ /^Content-Disposition: form-data(.*)/) {
			$rest = $1;
			while ($rest =~ /([a-zA-Z]*)=\"([^\"]*)\"(.*)/) {
				if ($1 eq 'name') {
					$name = $2;
					}
				else {
					$foo = $name . "_$1";
					$in{$foo} = $2;
					}
				$rest = $3;
				}
			}
		elsif ($line =~ /^Content-Type: (.*)/) {
			$foo = $name . "_content_type";
			$in{$foo} = $1;
			}
		}
	# Read data
	$in{$name} .= "\0" if ($in{$name});
	while(1) {
		$line = <STDIN>;
		if (!$line) { return; }
		if (index($line,"$boundary") != -1) { last; }
		$in{$name} .= $line;
		}
	chop($in{$name}); chop($in{$name});
	if (index($line,"$boundary--") != -1) { last; }
	}
}

# ReadParse([&assoc], [method])
# Fills the given associative array with CGI parameters, or uses the global
# %in if none is given. Also sets the global variables $in and @in
sub ReadParse
{
local $a = $_[0] ? $_[0] : \%in;
local $i;
local $meth = $_[1] ? $_[1] : $ENV{'REQUEST_METHOD'};
undef($in);
if ($meth eq 'POST') {
	read(STDIN, $in, $ENV{'CONTENT_LENGTH'});
	}
if ($ENV{'QUERY_STRING'}) {
	if ($in) { $in .= "&".$ENV{'QUERY_STRING'}; }
	else { $in = $ENV{'QUERY_STRING'}; }
	}
@in = split(/\&/, $in);
foreach $i (@in) {
	local ($k, $v) = split(/=/, $i, 2);
	$k =~ s/\+/ /g; $k =~ s/%(..)/pack("c",hex($1))/ge;
	$v =~ s/\+/ /g; $v =~ s/%(..)/pack("c",hex($1))/ge;
	$a->{$k} = defined($a->{$k}) ? $a->{$k}."\0".$v : $v;
	}
}

# PrintHeader
# Outputs the HTTP header for HTML
sub PrintHeader
{
print "pragma: no-cache\n" if ($pragma_no_cache);
if (defined($_[0])) {
	print "Content-type: text/html; Charset=$_[0]\n\n";
	}
else {
	print "Content-type: text/html\n\n";
	}
}

# header(title, image, [help], [config], [nomodule], [nowebmin], [rightside],
#	 [header], [body])
# Output a page header with some title and image. The header may also
# include a link to help, and a link to the config page.
# The header will also have a link to to webmin index, and a link to the
# module menu if there is no config link
sub header
{
local($l, $ll, %access, $lang);
foreach $l (&list_languages()) {
	$lang = $l if ($l->{'lang'} eq $current_lang);
	}
local $charset = defined($force_charset) ? $force_charset :
		 $lang->{'charset'} ? $lang->{'charset'} : "iso-8859-1";
&PrintHeader($charset);
print "<!doctype html public \"-//W3C//DTD HTML 3.2 Final//EN\">\n";
print "<html>\n";
if ($charset) {
	print "<meta http-equiv=\"Content-Type\" ",
	      "content=\"text/html; Charset=$charset\">\n";
	}
local $os_type = $gconfig{'real_os_type'} ? $gconfig{'real_os_type'}
					  : $gconfig{'os_type'};
local $os_version = $gconfig{'real_os_version'} ? $gconfig{'real_os_version'}
					        : $gconfig{'os_version'};
print "<head>\n";
if (@_ > 0) {
	if ($gconfig{'sysinfo'} == 1) {
		printf "<title>%s : %s on %s (%s %s)</title>\n",
			$_[0], $ENV{'REMOTE_USER'}, &get_system_hostname(),
			$os_type, $os_version;
		}
	else {
		print "<title>$_[0]</title>\n";
		}
	print $_[7] if ($_[7]);
	if ($gconfig{'sysinfo'} == 0) {
		print "<SCRIPT LANGUAGE=\"JavaScript\">\n";
		printf
		"defaultStatus=\"%s%s logged into Webmin %s on %s (%s %s)\";\n",
			$ENV{'REMOTE_USER'},
			$ENV{'SSL_USER'} ? " (SSL certified)" :
			$ENV{'LOCAL_USER'} ? " (Local user)" : "",
			&get_webmin_version(), &get_system_hostname(),
			$os_type, $os_version;
		print "</SCRIPT>\n";
		}
	}
print "$tconfig{'headhtml'}\n" if ($tconfig{'headhtml'});
print "</head>\n";
local $bgcolor = defined($tconfig{'cs_page'}) ? $tconfig{'cs_page'} :
		 defined($gconfig{'cs_page'}) ? $gconfig{'cs_page'} : "ffffff";
local $link = defined($tconfig{'cs_link'}) ? $tconfig{'cs_link'} :
	      defined($gconfig{'cs_link'}) ? $gconfig{'cs_link'} : "0000ee";
local $text = defined($tconfig{'cs_text'}) ? $tconfig{'cs_text'} : 
	      defined($gconfig{'cs_text'}) ? $gconfig{'cs_text'} : "000000";
local $bgimage = defined($tconfig{'bgimage'}) ? "background=$tconfig{'bgimage'}"
					      : "";
print "<body bgcolor=#$bgcolor link=#$link vlink=#$link text=#$text ",
      "$bgimage $tconfig{'inbody'} $_[8]>\n";
local $hostname = &get_system_hostname();
local $version = &get_webmin_version();
local $prebody = $tconfig{'prebody'};
if ($prebody) {
	$prebody =~ s/%HOSTNAME%/$hostname/g;
	$prebody =~ s/%VERSION%/$webmin_version/g;
	$prebody =~ s/%USER%/$ENV{'REMOTE_USER'}/g;
	$prebody =~ s/%OS%/$os_type $os_version/g;
	print "$prebody\n";
	}
if (@_ > 1) {
	print "<table width=100%><tr>\n";
	if ($gconfig{'sysinfo'} == 2) {
		print "<td colspan=3 align=center>\n";
		printf "%s%s logged into Webmin %s on %s (%s %s)</td>\n",
			"<tt>$ENV{'REMOTE_USER'}</tt>",
			$ENV{'SSL_USER'} ? " (SSL certified)" :
			$ENV{'LOCAL_USER'} ? " (Local user)" : "",
			$version, "<tt>$hostname</tt>",
			$os_type, $os_version;
		print "</tr> <tr>\n";
		}
	print "<td width=15% valign=top align=left>";
	if ($ENV{'HTTP_WEBMIN_SERVERS'}) {
		print "<a href='$ENV{'HTTP_WEBMIN_SERVERS'}'>",
		      "$text{'header_servers'}</a><br>\n";
		}
	if (!$_[5] && !$tconfig{'noindex'}) {
		local %acl;
		&read_acl(undef, \%acl);
		local $mc = @{$acl{$ENV{'REMOTE_USER'}}} == 1;
		if ($gconfig{'gotoone'} && $ENV{'SESSION_ID'} && $mc == 1) {
			print "<a href='/session_login.cgi?logout=1'>",
			      "$text{'main_logout'}</a><br>";
			}
		elsif ($gconfig{'gotoone'} && $mc == 1) {
			print "<a href=/switch_user.cgi>",
			      "$text{'main_switch'}</a><br>";
			}
		else {
			print "<a href='/?cat=$module_info{'category'}'>",
			      "$text{'header_webmin'}</a><br>\n";
			}
		}
	if (!$_[4]) { print "<a href=\"/$module_name/\">",
			    "$text{'header_module'}</a><br>\n"; }
	if (ref($_[2]) eq "ARRAY") {
		print &hlink($text{'header_help'}, $_[2]->[0], $_[2]->[1]),
		      "<br>\n";
		}
	elsif (defined($_[2])) {
		print &hlink($text{'header_help'}, $_[2]),"<br>\n";
		}
	if ($_[3]) {
		local %access = &get_module_acl();
		if (!$access{'noconfig'}) {
			print "<a href=\"/config.cgi?$module_name\">",
			      $text{'header_config'},"</a><br>\n";
			}
		}
	print "</td>\n";
	local $title = $_[0];
	$title =~ s/&auml;//g;
	$title =~ s/&ouml;//g;
	$title =~ s/&uuml;//g;
	$title =~ s/&nbsp;/ /g;
	if ($_[1]) {
		print "<td align=center width=70%>",
		      "<img alt=\"$_[0]\" src=\"$_[1]\"></td>\n";
		}
	elsif ($lang->{'titles'} && !$gconfig{'texttitles'}) {
		print "<td align=center width=70%>";
		foreach $l (split(//, $title)) {
			$ll = ord($l);
			if ($ll > 127 && $lang->{'charset'}) {
				print "<img src=/images/letters/$ll.$lang->{'charset'}.gif alt=\"$l\" align=bottom>";
				}
			elsif ($l eq " ") {
				print "<img src=/images/letters/$ll.gif alt=\"\&nbsp;\" align=bottom>";
				}
			else {
				print "<img src=/images/letters/$ll.gif alt=\"$l\" align=bottom>";
				}
			}
		print "</td>\n";
		}
	else {
		print "<td align=center width=70%><h1>$_[0]</h1></td>\n";
		}
	print "<td width=15% valign=top align=right>";
	print $_[6];
	print "</td></tr></table>\n";
	}
}

# footer(page, name)
# Output a footer for returning to some page
sub footer
{
if (@_) {
	local $url = $_[0];
	if ($url ne '/' || !$tconfig{'noindex'}) {
		if ($url eq '/') {
			$url = "/?cat=$module_info{'category'}";
			}
		elsif ($url eq '' && $module_name) {
			$url = "/$module_name/";
			}
		print "<a href=\"$url\"><img alt=\"<-\" align=middle border=0 src=/images/left.gif></a>\n";
		print "&nbsp;&nbsp;<a href=\"$url\">",&text('main_return', $_[1]),"</a><p>\n";
		}
	}
local $postbody = $tconfig{'postbody'};
if ($postbody) {
	local $hostname = &get_system_hostname();
	local $version = &get_webmin_version();
	local $os_type = $gconfig{'real_os_type'} ?
			$gconfig{'real_os_type'} : $gconfig{'os_type'};
	local $os_version = $gconfig{'real_os_version'} ?
			$gconfig{'real_os_version'} : $gconfig{'os_version'};
	$postbody =~ s/%HOSTNAME%/$hostname/g;
	$postbody =~ s/%VERSION%/$webmin_version/g;
	$postbody =~ s/%USER%/$ENV{'REMOTE_USER'}/g;
	$postbody =~ s/%OS%/$os_type $os_version/g;
	print "$postbody\n";
	}
print "</body></html>\n";
}

# redirect
# Output headers to redirect the browser to some page
sub redirect
{
local($port, $prot, $url);
$port = $ENV{'SERVER_PORT'} == 443 && uc($ENV{'HTTPS'}) eq "ON" ? "" :
	$ENV{'SERVER_PORT'} == 80 && uc($ENV{'HTTPS'}) ne "ON" ? "" :
		":$ENV{'SERVER_PORT'}";
$prot = uc($ENV{'HTTPS'}) eq "ON" ? "https" : "http";
if ($_[0] =~ /^(http|https|ftp|gopher):/) {
	$url = $_[0];
	}
elsif ($_[0] =~ /^\//) {
	$url = "$prot://$ENV{'SERVER_NAME'}$port$_[0]";
	}
else {
	$ENV{'SCRIPT_NAME'} =~ /^(.*)\/[^\/]+$/;
	$url = "$prot://$ENV{'SERVER_NAME'}$port$1/$_[0]";
	}
print "Location: $url\n\n";
}

# kill_byname(name, signal)
# Use the command defined in the global config to find and send a signal
# to a process matching some name
sub kill_byname
{
local(@pids);
@pids = &find_byname($_[0]);
if (@pids) { kill($_[1], @pids); }
}

# find_byname(name)
# Finds a process by name, and returns a list of matching PIDs
sub find_byname
{
local($cmd, @pids);
$cmd = $gconfig{'find_pid_command'};
$cmd =~ s/NAME/$_[0]/g;
@pids = split(/\n/, `($cmd) </dev/null 2>/dev/null`);
return @pids;
}

# error([message]+)
# Display an error message and exit. The variable $whatfailed must be set
# to the name of the operation that failed.
sub error
{
&header($text{'error'}, "");
print "<hr>\n";
print "<h3>",($whatfailed ? "$whatfailed : " : ""),@_,"</h3>\n";
print "<hr>\n";
&footer();
exit;
}

# error_setup(message)
# Register a message to be prepended to all error strings
sub error_setup
{
$whatfailed = $_[0];
}

# wait_for(handle, regexp, regexp, ...)
# Read from the input stream until one of the regexps matches..
sub wait_for
{
local($hit, $c, $i, $sw, $rv, $ha); undef($wait_for_input);
#print STDERR "wait_for(",join(",", @_),")\n";
$ha = $_[0];
$codes =
"undef(\$hit);\n".
"while(1) {\n".
" if ((\$c = getc($ha)) eq \"\") { return -1; }\n".
" \$wait_for_input .= \$c;\n";
#" \$wait_for_input .= \$c;\nprint STDERR \$wait_for_input,\"\\n\";";
for($i=1; $i<@_; $i++) {
        $sw = $i>1 ? "elsif" : "if";
        $codes .= " $sw (\$wait_for_input =~ /$_[$i]/i) { \$hit = $i-1; }\n";
        }
$codes .=
" if (defined(\$hit)) {\n".
"  \@matches = (-1, \$1, \$2, \$3, \$4, \$5, \$6, \$7, \$8, \$9);\n".
"  return \$hit;\n".
"  }\n".
" }\n";
$rv = eval $codes;
if ($@) { &error("wait_for error : $@\n"); }
return $rv;
}

# fast_wait_for(handle, string, string, ...)
sub fast_wait_for
{
local($inp, $maxlen, $ha, $i, $c, $inpl);
for($i=1; $i<@_; $i++) {
	$maxlen = length($_[$i]) > $maxlen ? length($_[$i]) : $maxlen;
	}
$ha = $_[0];
while(1) {
	if (($c = getc($ha)) eq "") {
		&error("fast_wait_for read error : $!");
		}
	$inp .= $c;
	if (length($inp) > $maxlen) {
		$inp = substr($inp, length($inp)-$maxlen);
		}
	$inpl = length($inp);
	for($i=1; $i<@_; $i++) {
		if ($_[$i] eq substr($inp, $inpl-length($_[$i]))) {
			return $i-1;
			}
		}
	}
}

# has_command(command)
# Returns the full path if some command is in the path, undef if not
sub has_command
{
local($d);
if (!$_[0]) { return undef; }
if ($_[0] =~ /^\//) { return (-x $_[0]) ? $_[0] : undef; }
foreach $d (split(/:/ , $ENV{PATH})) {
	if (-x "$d/$_[0]") { return "$d/$_[0]"; }
	}
return undef;
}

# make_date(seconds)
# Converts a Unix date/time in seconds to a human-readable form
sub make_date
{
local(@tm);
@tm = localtime($_[0]);
return sprintf "%d/%s/%d %2.2d:%2.2d",
		$tm[3], $text{"smonth_".($tm[4]+1)},
		$tm[5]+1900, $tm[2], $tm[1];
}

# file_chooser_button(input, type, [form], [chroot])
# Return HTML for a file chooser button, if the browser supports Javascript.
# Type values are 0 for file or directory, or 1 for directory only
sub file_chooser_button
{
local $form = @_ > 2 ? $_[2] : 0;
local $chroot = @_ > 3 ? $_[3] : "/";
return "<input type=button onClick='ifield = document.forms[$form].$_[0]; chooser = window.open(\"/chooser.cgi?type=$_[1]&chroot=$chroot&file=\"+ifield.value, \"chooser\", \"toolbar=no,menubar=no,scrollbar=no,width=400,height=300\"); chooser.ifield = ifield' value=\"...\">\n";
}

# read_acl(&array, &array)
# Reads the acl file into the given associative arrays
sub read_acl
{
local($user, $_, @mods);
if (!defined(%acl_hash_cache)) {
	open(ACL, &acl_filename());
	while(<ACL>) {
		if (/^(\S+):\s*(.*)/) {
			local(@mods);
			$user = $1;
			@mods = split(/\s+/, $2);
			foreach $m (@mods) {
				$acl_hash_cache{$user,$m}++;
				}
			$acl_array_cache{$user} = \@mods;
			}
		}
	close(ACL);
	}
if ($_[0]) { %{$_[0]} = %acl_hash_cache; }
if ($_[1]) { %{$_[1]} = %acl_array_cache; }
}

# acl_filename()
# Returns the file containing the webmin ACL
sub acl_filename
{
return "$config_directory/webmin.acl";
}

# acl_check()
# Does nothing, but kept around for compatability
sub acl_check
{
}

# get_miniserv_config(&array)
# Store miniserv configuration into the given array
sub get_miniserv_config
{
return &read_file($ENV{'MINISERV_CONFIG'}, $_[0]);
}

# put_miniserv_config(&array)
# Store miniserv configuration from the given array
sub put_miniserv_config
{
&write_file($ENV{'MINISERV_CONFIG'}, $_[0]);
}

# restart_miniserv()
# Send a HUP signal to miniserv
sub restart_miniserv
{
local($pid, %miniserv, $addr, $i);
&get_miniserv_config(\%miniserv) || return;
$miniserv{'inetd'} && return;
open(PID, $miniserv{'pidfile'}) || &error("Failed to open pid file");
chop($pid = <PID>);
close(PID);
if (!$pid) { &error("Invalid pid file"); }
&kill_logged('HUP', $pid);

# wait for miniserv to come back up
$addr = inet_aton($miniserv{'bind'} ? $miniserv{'bind'} : "127.0.0.1");
for($i=0; $i<20; $i++) {
	sleep(1);
	socket(STEST, PF_INET, SOCK_STREAM, getprotobyname("tcp"));
	$rv = connect(STEST, sockaddr_in($miniserv{'port'}, $addr));
	close(STEST);
	if ($rv) { last; }
	}
if ($i == 20) { &error("Failed to restart Webmin server!"); }
}

# check_os_support(&minfo)
sub check_os_support
{
local $oss = $_[0]->{'os_support'};
return 1 if (!$oss);
while(1) {
	local ($os, $ver, $codes);
	if ($oss =~ /^([^\/\s]+)\/([^\{\s]+)\{([^\}]*)\}\s*(.*)$/) {
		$os = $1; $ver = $2; $codes = $3; $oss = $4;
		}
	elsif ($oss =~ /^([^\/\s]+)\/([^\/\s]+)\s*(.*)$/) {
		$os = $1; $ver = $2; $oss = $3;
		}
	elsif ($oss =~ /^([^\{\s]+)\{([^\}]*)\}\s*(.*)$/) {
		$os = $1; $codes = $2; $oss = $3;
		}
	elsif ($oss =~ /^(\S+)\s*(.*)$/) {
		$os = $1; $oss = $2;
		}
	else { last; }
	next if ($os ne $gconfig{'os_type'});
	next if ($ver && $ver ne $gconfig{'os_version'});
	next if ($codes && !eval $codes);
	return 1;
	}
return 0;
}

# http_download(host, port, page, destfile, [&error])
# Download data from a HTTP url to a local file
sub http_download
{
$SIG{ALRM} = "download_timeout";
alarm(60);
if ($gconfig{'http_proxy'} =~ /^http:\/\/(\S+):(\d+)/ && !&no_proxy($_[0])) {
	# going through proxy
	&open_socket($1, $2, "SOCK", $_[4]);
	return if ($_[4] && ${$_[4]});
	print SOCK "GET http://$_[0]:$_[1]$_[2] HTTP/1.0\r\n";
	if ($gconfig{'proxy_user'}) {
		print SOCK "Proxy-Authorization: Basic ",
			   &encode_base64(
			   "$gconfig{'proxy_user'}:$gconfig{'proxy_pass'}"),
			   "\r\n";
		}
	}
else {
	# can connect directly
	&open_socket($_[0], $_[1], "SOCK", $_[4]);
	return if ($_[4] && ${$_[4]});
	print SOCK "GET $_[2] HTTP/1.0\r\n";
	}
alarm(0);
print SOCK "Host: $_[0]\r\n";
print SOCK "User-agent: Webmin\r\n";
print SOCK "\r\n";
&complete_http_download("SOCK", $_[3], $_[4]);
}

# complete_http_download(socket, destfile, [&error])
# Do a HTTP download, after the headers have been sent
sub complete_http_download
{
local($line, %header, $s);
$s = $_[0];

# read headers
alarm(60);
($line = <$s>) =~ s/\r|\n//g;
if ($line !~ /^HTTP\/1\..\s+(200|302)\s+/) {
	if ($_[2]) { ${$_[2]} = 1; return; }
	else { &error("Download failed : $line"); }
	}
local $rcode = $1;
while(<$s> =~ /^(\S+):\s+(.*)$/) { $header{lc($1)} = $2; }
alarm(0);
if ($rcode == 302) {
	# follow the redirect
	local ($host, $port, $page);
	if ($header{'location'} =~ /^http:\/\/([^:]+):(\d+)(\/.*)$/) {
		$host = $1; $port = $2; $page = $3;
		}
	elsif ($header{'location'} =~ /^http:\/\/([^:\/]+)(\/.*)$/) {
		$host = $1; $port = 80; $page = $2;
		}
	else {
		if ($_[2]) { ${$_[2]} = 1; return; }
		else { &error("Download failed : Missing Location header"); }
		}
	&http_download($host, $port, $page, $_[1], $_[2]);
	}
else {
	# read data
	open(PFILE, "> $_[1]");
	while(read($s, $buf, 1024) > 0) { print PFILE $buf; }
	close(PFILE);
	close($s);
	}
}


# ftp_download(host, file, destfile)
# Download data from an FTP site to a local file
sub ftp_download
{
local($buf, @n);

$SIG{ALRM} = "download_timeout";
alarm(60);
if ($gconfig{'ftp_proxy'} =~ /^http:\/\/(\S+):(\d+)/ && !&no_proxy($_[0])) {
	# download through http-style proxy
	&open_socket($1, $2, "SOCK");
	print SOCK "GET ftp://$_[0]$_[1] HTTP/1.0\r\n";
	print SOCK "User-agent: Webmin\r\n";
	print SOCK "\r\n";
	&complete_http_download("SOCK", $_[2]);
	}
else {
	# connect to host and login
	&open_socket($_[0], 21, "SOCK");
	alarm(0);
	&ftp_command("", 2);
	&ftp_command("user anonymous", 3);
	&ftp_command("pass root\@".&get_system_hostname(), 2);

	# request the file
	&ftp_command("type i", 2);
	&ftp_command("pasv", 2) =~ /\(([0-9,]+)\)/;
	@n = split(/,/ , $1);
	&open_socket("$n[0].$n[1].$n[2].$n[3]", $n[4]*256 + $n[5], "CON");
	&ftp_command("retr $_[1]", 1);

	# transfer data
	open(PFILE, "> $_[2]");
	while(read(CON, $buf, 1024) > 0) { print PFILE $buf; }
	close(PFILE);
	close(CON);

	# finish off..
	&ftp_command("", 2);
	&ftp_command("quit", 2);
	close(SOCK);
	}
}

# no_proxy(host)
# Checks if some host is on the no proxy list
sub no_proxy
{
foreach $n (split(/\s+/, $gconfig{'noproxy'})) {
	if ($_[0] =~ /$n/) { return 1; }
	}
return 0;
}

# open_socket(host, port, handle, [&error])
sub open_socket
{
local($addr, $h); $h = $_[2];
if (!socket($h, PF_INET, SOCK_STREAM, getprotobyname("tcp"))) {
	if ($_[3]) { ${$_[3]}++; return; }
	else { &error("Failed to create socket : $!"); }
	}
if (!($addr = inet_aton($_[0]))) {
	if ($_[3]) { ${$_[3]}++; return; }
	else { &error("Failed to lookup IP address for $_[0]"); }
	}
if (!connect($h, sockaddr_in($_[1], $addr))) {
	if ($_[3]) { ${$_[3]}++; return; }
	else { &error("Failed to connect to $_[0]:$_[1] : $!"); }
	}
select($h); $| =1; select(STDOUT);
}


# download_timeout()
# Called when a download times out
sub download_timeout
{
&error("Timeout downloading $in{url}");
}


# ftp_command(command, expected)
# Send an FTP command, and die if the reply is not what was expected
sub ftp_command
{
local($line, $rcode, $reply);
$what = $_[0] ne "" ? "<i>$_[0]</i>" : "initial connection";
if ($_[0] ne "") {
        print SOCK "$_[0]\r\n";
        }
alarm(60);
if (!($line = <SOCK>)) {
        &error("Failed to read reply to $what");
        }
$line =~ /^(...)(.)(.*)$/;
if (int($1/100) != $_[1]) {
        &error("$what failed : $3");
        }
$rcode = $1; $reply = $3;
if ($2 eq "-") {
        # Need to skip extra crap..
        while(1) {
                if (!($line = <SOCK>)) {
                        &error("Failed to read reply to $what");
                        }
                $line =~ /^(....)(.*)$/; $reply .= $2;
		if ($1 eq "$rcode ") { last; }
                }
        }
alarm(0);
return $reply;
}

# to_ipaddress(hostname)
# Converts a hostname to an a.b.c.d format IP address
sub to_ipaddress
{
if (&check_ipaddress($_[0])) {
	return $_[0];
	}
else {
	local(@ip);
	@ip = unpack("CCCC", gethostbyname($_[0]));
	if (@ip) { return join("." , @ip); }
	else { return undef; }
	}
}

# icons_table(&links, &titles, &icons, [columns], [href])
# Renders a 4-column table of icons
sub icons_table
{
local($i);
local $cols = $_[3] ? $_[3] : 4;
local $per = int(100.0 / $cols);
print "<table width=100% cellpadding=5> <tr>\n";
for($i=0; $i<@{$_[0]}; $i++) {
	if ($i%$cols == 0) { print "<tr>\n"; }
	print "<td width=$per% align=center valign=top>\n";
	&generate_icon($_[2]->[$i], $_[1]->[$i], $_[0]->[$i], $_[4]);
	print "</td>\n";
        if ($i%$cols == $cols-1) { print "</tr>\n"; }
        }
while($i++%$cols) { print "<td width=$per%></td>\n"; }
print "</table><p>\n";
}

# replace_file_line(file, line, [newline]*)
# Replaces one line in some file with 0 or more new lines
sub replace_file_line
{
local(@lines);
open(FILE, $_[0]);
@lines = <FILE>;
close(FILE);
if (@_ > 2) { splice(@lines, $_[1], 1, @_[2..$#_]); }
else { splice(@lines, $_[1], 1); }
open(FILE, "> $_[0]");
print FILE @lines;
close(FILE);
}

# read_file_lines(file)
# Returns a reference to an array containing the lines from some file. This
# array can be modified, and will be written out when flush_file_lines()
# is called.
sub read_file_lines
{
if (!$file_cache{$_[0]}) {
        local(@lines, $_);
        open(READFILE, $_[0]);
        while(<READFILE>) {
                s/\r|\n//g;
                push(@lines, $_);
                }
        close(READFILE);
        $file_cache{$_[0]} = \@lines;
        }
return $file_cache{$_[0]};
}

# flush_file_lines()
sub flush_file_lines
{
foreach $f (keys %file_cache) {
        open(FLUSHFILE, "> $f");
        foreach $line (@{$file_cache{$f}}) {
                print FLUSHFILE $line,"\n";
                }
        close(FLUSHFILE);               
        }                               
undef(%file_cache);
}                                       

# unix_user_input(fieldname, user)
# Returns HTML for an input to select a Unix user
sub unix_user_input
{
return "<input name=$_[0] size=8 value=\"$_[1]\"> ".
       &user_chooser_button($_[0], 0)."\n";
}

# unix_group_input(fieldname, user)
# Returns HTML for an input to select a Unix group
sub unix_group_input
{
return "<input name=$_[0] size=8 value=\"$_[1]\"> ".
       &group_chooser_button($_[0], 0)."\n";
}

# hlink(text, page, [module])
sub hlink
{
local $mod = $_[2] ? $_[2] : $module_name;
return "<a onClick='window.open(\"/help.cgi/$mod/$_[1]\", \"help\", \"toolbar=no,menubar=no,scrollbars=yes,width=400,height=300,resizable=yes\"); return false' href=\"/help.cgi/$mod/$_[1]\">$_[0]</a>";
}

# user_chooser_button(field, multiple, [form])
# Returns HTML for a javascript button for choosing a Unix user or users
sub user_chooser_button
{
local $form = @_ > 2 ? $_[2] : 0;
local $w = $_[1] ? 500 : 300;
return "<input type=button onClick='ifield = document.forms[$form].$_[0]; chooser = window.open(\"/user_chooser.cgi?multi=$_[1]&user=\"+escape(ifield.value), \"chooser\", \"toolbar=no,menubar=no,scrollbars=yes,width=$w,height=200\"); chooser.ifield = ifield' value=\"...\">\n";
}

# group_chooser_button(field, multiple, [form])
# Returns HTML for a javascript button for choosing a Unix group or groups
sub group_chooser_button
{
local $form = @_ > 2 ? $_[2] : 0;
local $w = $_[1] ? 500 : 300;
return "<input type=button onClick='ifield = document.forms[$form].$_[0]; chooser = window.open(\"/group_chooser.cgi?multi=$_[1]&group=\"+escape(ifield.value), \"chooser\", \"toolbar=no,menubar=no,scrollbars=yes,width=$w,height=200\"); chooser.ifield = ifield' value=\"...\">\n";
}

# foreign_check(module)
# Checks if some other module exists and is supported on this OS
sub foreign_check
{
local %minfo;
&read_file($module_name ? "../$_[0]/module.info" : "./$_[0]/module.info",
	   \%minfo) || return 0;
return &check_os_support(\%minfo);
}

# foreign_require(module, file)
# Brings in functions from another module
sub foreign_require
{
return 1 if ($main::done_foreign_require{$_[0],$_[1]});
local $pkg = $_[0] ? $_[0] : "global";
if ($module_name) { chdir($_[0] ? "../$_[0]" : ".."); }
else { chdir($_[0]) if ($_[0]); }
eval <<EOF;
package $pkg;
\$ENV{'FOREIGN_MODULE_NAME'} = '$_[0]';
do "./$_[1]";
EOF
if ($@) { &error($@); }
if ($module_name) { chdir($_[0] ? "../$module_name" : $module_name); }
else { chdir("..") if ($_[0]); }
$main::done_foreign_require{$_[0],$_[1]}++;
return 1;
}

# foreign_call(module, function, [arg]*)
# Call a function in another module
sub foreign_call
{
local $pkg = $_[0] ? $_[0] : "global";
if ($module_name) { chdir($_[0] ? "../$_[0]" : ".."); }
else { chdir($_[0]) if ($_[0]); }
local @args = @_[2 .. @_-1];
$main::foreign_args = \@args;
local @rv = eval <<EOF;
package $pkg;
&$_[1](\@{\$main::foreign_args});
EOF
if ($@) { &error($@); }
if ($module_name) { chdir($_[0] ? "../$module_name" : $module_name); }
else { chdir("..") if ($_[0]); }
return wantarray ? @rv : $rv[0];
}

# foreign_config(module)
# Get the configuration from another module
sub foreign_config
{
local %fconfig;
&read_file("$config_directory/$_[0]/config", \%fconfig);
return %fconfig;
}

# get_system_hostname()
# Returns the hostname of this system
sub get_system_hostname
{
if (!$get_system_hostname) {
	chop($get_system_hostname = `hostname 2>/dev/null`);
	if ($?) {
		use Sys::Hostname;
		$get_system_hostname = eval "hostname()";
		if ($@) { $get_system_hostname = "UNKNOWN"; }
		}
	}
return $get_system_hostname;
}

# get_webmin_version()
# Returns the version of Webmin currently being run
sub get_webmin_version
{
if (!$get_webmin_version) {
	open(VERSION, "../version") || open(VERSION, "version") || return 0;
	chop($get_webmin_version = <VERSION>);
	close(VERSION);
	}
return $get_webmin_version;
}

# get_module_acl([user], [module])
# Returns an array containing access control options for the given user
sub get_module_acl
{
local %rv;
local $u = defined($_[0]) ? $_[0] : $ENV{'REMOTE_USER'};
local $m = defined($_[1]) ? $_[1] : $module_name;
&read_file($module_name ? "../$m/defaultacl" : "./$m/defaultacl", \%rv);
if ($gconfig{"risk_$u"} && $m) {
	local $rf = $gconfig{"risk_$u"}.'.risk';
	&read_file($module_name ? "../$m/$rf" : "./$m/$rf", \%rv);

	local $sf = $gconfig{"skill_$u"}.'.skill';
	&read_file($module_name ? "../$m/$sf" : "./$m/$sf", \%rv);
	}
else {
	&read_file("$config_directory/$m/$u.acl", \%rv);
	}
return %rv;
}

# save_module_acl(&acl, [user], [module])
# Updates the acl hash for some user and module (or the current one)
sub save_module_acl
{
local $u = $_[1] ? $_[1] : $ENV{'REMOTE_USER'};
local $m = $_[2] ? $_[2] : $module_name;
&write_file("$config_directory/$m/$u.acl", $_[0]);
}

# init_config()
# Sets the following variables
#  %config - Per-module configuration
#  %gconfig - Global configuration
#  $tb - Background for table headers
#  $cb - Background for table bodies
#  $scriptname - Base name of the current perl script
#  $module_name - The name of the current module
#  $module_config_directory - The config directory for this module
#  $webmin_logfile - The detailed logfile for webmin
sub init_config
{
# Read the webmin global config file. This contains the OS type and version,
# OS specific configuration and global options such as proxy servers
&read_file("$config_directory/config", \%gconfig);

# Set PATH and LD_LIBRARY_PATH
$ENV{'PATH'} = $gconfig{'path'} if ($gconfig{'path'});
$ENV{$gconfig{'ld_env'}} = $gconfig{'ld_path'} if ($gconfig{'ld_env'});

# Work out which module we are in, and read the per-module config file
if (defined($ENV{'FOREIGN_MODULE_NAME'})) {
	# In a foreign call - use the module name given
	$module_name = $ENV{'FOREIGN_MODULE_NAME'};
	}
elsif ($ENV{'SCRIPT_NAME'}) {
	if ($ENV{'SCRIPT_NAME'} =~ /^\/([^\/]+)\//) {
		# Get module name from CGI path
		$module_name = $1;
		}
	}
elsif ($0 =~ /([^\/]+)\/[^\/]+$/) {
	# Get module name from command line
	$module_name = $1;
	}
if ($module_name) {
	$module_config_directory = "$config_directory/$module_name";
	&read_file("$module_config_directory/config", \%config);
	%module_info = &get_module_info($module_name);
	}

# Set some useful variables
if ($gconfig{'theme'}) {
	&read_file($module_name ? "../$gconfig{'theme'}/config"
				: "$gconfig{'theme'}/config", \%tconfig);
	}
$tb = defined($tconfig{'cs_header'}) ? "bgcolor=#$tconfig{'cs_header'}" :
      defined($gconfig{'cs_header'}) ? "bgcolor=#$gconfig{'cs_header'}" :
				       "bgcolor=#9999ff";
$cb = defined($tconfig{'cs_table'}) ? "bgcolor=#$tconfig{'cs_table'}" :
      defined($gconfig{'cs_table'}) ? "bgcolor=#$gconfig{'cs_table'}" :
				      "bgcolor=#cccccc";
$0 =~ /([^\/]+)$/;
$scriptname = $1;
$webmin_logfile = $gconfig{'webmin_log'} ? $gconfig{'webmin_log'}
					 : "$ENV{'WEBMIN_VAR'}/webmin.log";

# Load language strings into %text
local $u = $ENV{'REMOTE_USER'};
$current_lang = $gconfig{"lang_$u"} ? $gconfig{"lang_$u"} :
		$gconfig{"lang"} ? $gconfig{"lang"} : $default_lang;
%text = &load_language();

# Check if the HTTP user can access this module
if ($module_name && !$main::no_acl_check &&
    !defined($ENV{'FOREIGN_MODULE_NAME'})) {
	local(%acl, %minfo);
	&read_acl(\%acl, undef);
	%minfo = &get_module_info($module_name);
	local $risk = $gconfig{'risk_'.$u};
	if ($risk) {
		$risk eq 'high' || !$minfo{'risk'} ||
		    $minfo{'risk'} =~ /$risk/ ||
			&error(&text('emodule', "<i>$u</i>",
				     "<i>$minfo{'desc'}</i>"));
		$user_risk_level = $risk;
		$user_skill_level = $gconfig{'skill_'.$u};
		}
	else {
		$acl{$u,$module_name} || $acl{$u,'*'} ||
			&error(&text('emodule', "<i>$u</i>",
				     "<i>$minfo{'desc'}</i>"));
		}
	$main::no_acl_check++;
	}

# Check the Referer: header for nasty redirects
local @referers = split(/\s+/, $gconfig{'referers'});
local $referer_site;
if ($ENV{'HTTP_REFERER'} =~/^(http|https|ftp):\/\/([^:]+:[^@]+@)?([^\/:]+)/) {
	$referer_site = $3;
	}
local $http_host = $ENV{'HTTP_HOST'};
$http_host =~ s/:\d+$//;
if ($0 && $0 !~ /index[A-Za-z0-9\_]*\.cgi$/ && $0 !~ /referer_save\.cgi$/ &&
    $0 !~ /session_login\.cgi$/ && !$gconfig{'referer'} &&
    $ENV{'MINISERV_CONFIG'} && !$main::no_referers_check &&
    $ENV{'HTTP_USER_AGENT'} !~ /^Webmin/i &&
    ($referer_site && $referer_site ne $http_host &&
     &indexof($referer_site, @referers) < 0 ||
    !$referer_site && $gconfig{'referers_none'} && !$trust_unknown_referers)) {
	# Looks like a link from elsewhere ..
	&header($text{'referer_title'}, "", undef, 0, 1, 1);
	print "<hr><center>\n";
	print "<form action=/referer_save.cgi>\n";
	&ReadParse();
	foreach $k (keys %in) {
		foreach $kk (split(/\0/, $in{$k})) {
			print "<input type=hidden name=$k value='$kk'>\n";
			}
		}
	print "<input type=hidden name=referer_original ",
	      "value='$ENV{'REQUEST_URI'}'>\n";

	$prot = lc($ENV{'HTTPS'}) eq 'on' ? "https" : "http";
	local $url = "<tt>$prot://$ENV{'HTTP_HOST'}$ENV{'REQUEST_URI'}</tt>";
	if ($referer_site) {
		print "<p>",&text('referer_warn',
		      "<tt>$ENV{'HTTP_REFERER'}</tt>", $url),"<p>\n";
		}
	else {
		print "<p>",&text('referer_warn_unknown', $url),"<p>\n";
		}
	print "<input type=submit value='$text{'referer_ok'}'><br>\n";
	print "<input type=checkbox name=referer_again value=1> ",
	      "$text{'referer_again'}<p>\n";
	print "</form></center><hr>\n";
	&footer("/", $text{'index'});
	exit;
	}
$main::no_referers_check++;

return 1;
}

$default_lang = "en";

# load_language([module])
# Returns a hashtable mapping text codes to strings in the appropriate language
sub load_language
{
local %text;
if ($module_name) {
	local $mod = $_[0] ? "../$_[0]" : ".";
	&read_file("../lang/$default_lang", \%text);
	&read_file("../lang/$current_lang", \%text);
	&read_file("$mod/lang/$default_lang", \%text);
	&read_file("$mod/lang/$current_lang", \%text);
	}
else {
	&read_file("lang/$default_lang", \%text);
	&read_file("lang/$current_lang", \%text);
	if ($_[0]) {
		&read_file("$_[0]/lang/$default_lang", \%text);
		&read_file("$_[0]/lang/$current_lang", \%text);
		}
	}
foreach $k (keys %text) {
	$text{$k} =~ s/\$([A-Za-z0-9\.\-\_]+)/text_subs($1,\%text)/ge;
	}
return %text;
}

sub text_subs
{
local $t = $_[1]->{$_[0]};
return defined($t) ? $t : '$'.$_[0];
}

# text(message, [substitute]+)
sub text
{
local $rv = $text{$_[0]};
local $i;
for($i=1; $i<@_; $i++) {
	$rv =~ s/\$$i/$_[$i]/g;
	}
return $rv;
}

# terror(text params)
sub terror
{
&error(&text(@_));
}

# encode_base64(string)
# Encodes a string into base64 format
sub encode_base64
{
    local $res;
    pos($_[0]) = 0;                          # ensure start at the beginning
    while ($_[0] =~ /(.{1,45})/gs) {
        $res .= substr(pack('u', $1), 1)."\n";
        chop($res);
    }
    $res =~ tr|\` -_|AA-Za-z0-9+/|;
    local $padding = (3 - length($_[0]) % 3) % 3;
    $res =~ s/.{$padding}$/'=' x $padding/e if ($padding);
    return $res;
}

# decode_base64(string)
# Converts a base64 string into plain text
sub decode_base64
{
    local $str = $_[0];
    local $res;
 
    $str =~ tr|A-Za-z0-9+=/||cd;            # remove non-base64 chars
    if (length($str) % 4) {
        print STDERR "Length of base64 data not a multiple of 4\n";
	return undef;
    }
    $str =~ s/=+$//;                        # remove padding
    $str =~ tr|A-Za-z0-9+/| -_|;            # convert to uuencoded format
    while ($str =~ /(.{1,60})/gs) {
        my $len = chr(32 + length($1)*3/4); # compute length byte
        $res .= unpack("u", $len . $1 );    # uudecode
    }
    return $res;
}

# get_module_info(module, [noclone])
# Returns a hash containg a module name, desc and os_support
sub get_module_info
{
return () if ($_[0] =~ /^\./);
local (%rv, $clone);
if ($module_name && &read_file("../$_[0]/module.info", \%rv)) {
	$clone = -l "../$_[0]";
	}
elsif (&read_file("$_[0]/module.info", \%rv)) {
	$clone = -l $_[0];
	}
else { return (); }
$rv{"desc"} = $rv{"desc_$current_lang"} if ($rv{"desc_$current_lang"});
if ($clone && !$_[1]) {
	$rv{'clone'} = $rv{'desc'};
	&read_file("$config_directory/$_[0]/clone", \%rv);
	}
$rv{'dir'} = $_[0];
if (!defined(%module_categories)) {
	%module_categories = ( );
	&read_file("$config_directory/webmin.cats", \%module_categories);
	}
$rv{'realcategory'} = $rv{'category'};
$rv{'category'} = $module_categories{$_[0]} if ($module_categories{$_[0]});
return %rv;
}

# list_languages()
# Returns an array of supported languages
sub list_languages
{
if (!@list_languages_cache) {
	local ($o, $_);
	open(LANG, "../lang_list.txt") || open(LANG, "lang_list.txt");
	while(<LANG>) {
		if (/^(\S+)\s+(.*)/) {
			local $l = { 'desc' => $2 };
			foreach $o (split(/,/, $1)) {
				if ($o =~ /^([^=]+)=(.*)$/) {
					$l->{$1} = $2;
					}
				}
			$l->{'index'} = scalar(@rv);
			push(@list_languages_cache, $l);
			}
		}
	close(LANG);
	@list_languages_cache = sort { $a->{'desc'} cmp $b->{'desc'} }
				     @list_languages_cache;
	}
return @list_languages_cache;
}

# read_env_file(file, &array)
sub read_env_file
{
open(FILE, $_[0]) || return 0;
while(<FILE>) {
	s/#.*$//g;
	if (/([A-z0-9_]+)\s*=\s*"(.*)"/ ||
	    /([A-z0-9_]+)\s*=\s*'(.*)'/ ||
	    /([A-z0-9_]+)\s*=\s*(.*)/) {
		$_[1]->{$1} = $2;
		}
	}
close(FILE);
return 1;
}

# write_env_file(file, &array, export)
sub write_env_file
{
local $k;
local $exp = $_[2] ? "export " : "";
open(FILE, ">$_[0]");
foreach $k (keys %{$_[1]}) {
	local $v = $_[1]->{$k};
	if ($v =~ /^\S+$/) {
		print FILE "$exp$k=$v\n";
		}
	else {
		print FILE "$exp$k=\"$v\"\n";
		}
	}
close(FILE);
}

# lock_file(filename, [readonly], [forcefile])
# Lock a file for exclusive access. If the file is already locked, spin
# until it is freed. This version uses a .lock file, which is not very reliable.
sub lock_file
{
return if (!$_[0] || defined($main::locked_file_list{$_[0]}));
local $lock_tries_count = 0;
while(1) {
	local $pid;
	if (open(LOCKING, "$_[0].lock")) {
		chop($pid = <LOCKING>);
		close(LOCKING);
		}
	if (!$pid || !kill(0, $pid) || $pid == $$) {
		# got the lock!
		open(LOCKING, ">$_[0].lock");
		print LOCKING $$,"\n";
		close(LOCKING);
		$main::locked_file_list{$_[0]} = int($_[1]);
		if ($gconfig{'logfiles'} && !$_[1]) {
			# Grab a copy of this file for later diffing
			local $lnk;
			$main::locked_file_data{$_[0]} = undef;
			if (-d $_[0]) {
				$main::locked_file_type{$_[0]} = 1;
				$main::locked_file_data{$_[0]} = '';
				}
			elsif (!$_[2] && ($lnk = readlink($_[0]))) {
				$main::locked_file_type{$_[0]} = 2;
				$main::locked_file_data{$_[0]} = $lnk;
				}
			elsif (open(ORIGFILE, $_[0])) {
				$main::locked_file_type{$_[0]} = 0;
				$main::locked_file_data{$_[0]} = '';
				while(<ORIGFILE>) {
					$main::locked_file_data{$_[0]} .= $_;
					}
				close(ORIGFILE);
				}
			}
		last;
		}
	sleep(1);
	if ($lock_tries_count++ > 5*60) {
		# Give up after 5 minutes
		&error(&text('elock_tries', "<tt>$_[0]</tt>", 5));
		}
	}
}

# old_lock_file(filename, [readonly])
# Lock a file for exclusive access. If the file is already locked, spin
# until it is freed
# This version didn't work on NFS !!
sub old_lock_file
{
return if (!$_[0] || defined($main::locked_file_list{$_[0]}));
local $pid;
while(1) {
	if (!open(LOCKING, ">>$_[0].lock")) {
		print STDERR "Failed to create lockfile $_[0].lock : $!\n";
		return;
		}
	close(LOCKING);
	open(LOCKING, "+<$_[0].lock");
	if (flock(LOCKING, 2+6)) {
		# got exclusive lock on the lockfile .. check the contents
		chop($pid = <LOCKING>);
		if ($pid && kill(0, $pid) && $pid != $$) {
			# Still locked by another process
			flock(LOCKING, 8);
			close(LOCKING);
			}
		else {
			# Got the lock!
			seek(LOCKING, 0, 0);
			print LOCKING "$$\n";
			flock(LOCKING, 8);
			close(LOCKING);
			$main::locked_file_list{$_[0]} = int($_[1]);
			if ($gconfig{'logfiles'} && !$_[1] && !-d $_[0]) {
				# Grab a copy of this file for later diffing
				$main::locked_file_data{$_[0]} = undef;
				local $lnk;
				if (-d $_[0]) {
					$main::locked_file_type{$_[0]} = 1;
					}
				elsif ($lnk = readlink($_[0])) {
					$main::locked_file_type{$_[0]} = 2;
					$main::locked_file_data{$_[0]} = $lnk;
					}
				elsif (open(ORIGFILE, $_[0])) {
					$main::locked_file_type{$_[0]} = 0;
					$main::locked_file_data{$_[0]} = '';
					while(<ORIGFILE>) {
						$main::locked_file_data{$_[0]} .= $_;
						}
					close(ORIGFILE);
					}
				}
			last;
			}
		}
	else {
		# lockfile is itself locked
		close(LOCKING);
		}
	sleep(1);
	}
}

# unlock_file(filename)
# Release a lock on a file. When unlocking a file that was locked in
# read mode, optionally save the update in RCS
sub unlock_file
{
return if (!$_[0] || !defined($main::locked_file_list{$_[0]}));
unlink("$_[0].lock");
delete($main::locked_file_list{$_[0]});
if (exists($main::locked_file_data{$_[0]})) {
	# Diff the new file with the old
	stat($_[0]);
	local $lnk = readlink($_[0]);
	local $type = -d _ ? 1 : $lnk ? 2 : 0;
	local $oldtype = $main::locked_file_type{$_[0]};
	local $new = !defined($main::locked_file_data{$_[0]});
	if ($new && !-e _) {
		# file doesn't exist, and never did! do nothing ..
		}
	elsif ($new && $type == 1 || !$new && $oldtype == 1) {
		# is (or was) a directory ..
		if (-d _ && !defined($main::locked_file_data{$_[0]})) {
			push(@main::locked_file_diff,
			     { 'type' => 'mkdir', 'object' => $_[0] });
			}
		elsif (!-d _ && defined($main::locked_file_data{$_[0]})) {
			push(@main::locked_file_diff,
			     { 'type' => 'rmdir', 'object' => $_[0] });
			}
		}
	elsif ($new && $type == 2 || !$new && $oldtype == 2) {
		# is (or was) a symlink ..
		if ($lnk && !defined($main::locked_file_data{$_[0]})) {
			push(@main::locked_file_diff,
			     { 'type' => 'symlink', 'object' => $_[0],
			       'data' => $lnk });
			}
		elsif (!$lnk && defined($main::locked_file_data{$_[0]})) {
			push(@main::locked_file_diff,
			     { 'type' => 'unsymlink', 'object' => $_[0],
			       'data' => $main::locked_file_data{$_[0]} });
			}
		elsif ($lnk ne $main::locked_file_data{$_[0]}) {
			push(@main::locked_file_diff,
			     { 'type' => 'resymlink', 'object' => $_[0],
			       'data' => $lnk });
			}
		}
	else {
		# is a file, or has changed type?!
		local ($diff, $delete_file);
		local $type = "modify";
		if (!-r _) {
			open(NEWFILE, ">$_[0]");
			close(NEWFILE);
			$delete_file++;
			$type = "delete";
			}
		if (!defined($main::locked_file_data{$_[0]})) {
			$type = "create";
			}
		open(ORIGFILE, ">$_[0].webminorig");
		print ORIGFILE $main::locked_file_data{$_[0]};
		close(ORIGFILE);
		$diff = `diff $_[0].webminorig $_[0]`;
		push(@main::locked_file_diff,
		     { 'type' => $type, 'object' => $_[0],
		       'data' => $diff } ) if ($diff);
		unlink("$_[0].webminorig");
		unlink($_[0]) if ($delete_file);
		}
	delete($main::locked_file_data{$_[0]});
	delete($main::locked_file_type{$_[0]});
	}
}

# unlock_all_files()
# Unlocks all files locked by this program
sub unlock_all_files
{
foreach $f (keys %main::locked_file_list) {
	&unlock_file($f);
	}
}

# webmin_log(action, type, object, &params, [module])
# Log some action taken by a user
sub webmin_log
{
return if (!$gconfig{'log'});
local $m = $_[4] ? $_[4] : $module_name;

if ($gconfig{'logclear'}) {
	# check if it is time to clear the log
	local @st = stat("$webmin_logfile.time");
	local $write_logtime = 0;
	if (@st) {
		if ($st[9]+$gconfig{'logtime'}*60*60 < time()) {
			# clear logfile and all diff files
			system("rm -f $ENV{'WEBMIN_VAR'}/diffs/* 2>/dev/null");
			unlink($webmin_logfile);
			$write_logtime = 1;
			}
		}
	else { $write_logtime = 1; }
	if ($write_logtime) {
		open(LOGTIME, ">$webmin_logfile.time");
		print LOGTIME time(),"\n";
		close(LOGTIME);
		}
	}

# should logging be done at all?
return if ($gconfig{'logusers'} && &indexof($ENV{'REMOTE_USER'},
	   split(/\s+/, $gconfig{'logusers'})) < 0);
return if ($gconfig{'logmodules'} && &indexof($m,
	   split(/\s+/, $gconfig{'logmodules'})) < 0);

# log the action
local $now = time();
local @tm = localtime($now);
local $script_name = $0 =~ /([^\/]+)$/ ? $1 : '-';
local $id = sprintf "%d.%d.%d",
		$now, $$, $main::action_id_count;
$main::action_id_count++;
local $line =
    sprintf "%s [%2.2d/%s/%4.4d %2.2d:%2.2d:%2.2d] %s %s %s %s %s %s %s %s",
	$id, $tm[3], $text{"smonth_".($tm[4]+1)}, $tm[5]+1900,
	$tm[2], $tm[1], $tm[0],
	$ENV{'REMOTE_USER'}, $ENV{'SESSION_ID'} ? $ENV{'SESSION_ID'} : '-',
	$ENV{'REMOTE_HOST'},
	$m, $script_name,
	$_[0], $_[1] ne '' ? $_[1] : '-', $_[2] ne '' ? $_[2] : '-';
foreach $k (sort { $a cmp $b } keys %{$_[3]}) {
	local $v = $_[3]->{$k};
	if ($v eq '') {
		$line .= " $k=''";
		}
	elsif (ref($v) eq 'ARRAY') {
		foreach $vv (@$v) {
			next if (ref($vv));
			$vv =~ s/(['"\\\r\n\t\%])/sprintf("%%%2.2X",ord($1))/ge;
			$line .= " $k='$vv'";
			}
		}
	elsif (!ref($v)) {
		foreach $vv (split(/\0/, $v)) {
			$vv =~ s/(['"\\\r\n\t\%])/sprintf("%%%2.2X",ord($1))/ge;
			$line .= " $k='$vv'";
			}
		}
	}
open(WEBMINLOG, ">>$webmin_logfile");
print WEBMINLOG $line,"\n";
close(WEBMINLOG);

if ($gconfig{'logfiles'}) {
	# Find and record the changes made to any locked files
	local $i = 0;
	mkdir("$ENV{'WEBMIN_VAR'}/diffs", 0700);
	foreach $d (@main::locked_file_diff) {
		open(DIFFLOG, ">$ENV{'WEBMIN_VAR'}/diffs/$id.$i");
		print DIFFLOG "$d->{'type'} $d->{'object'}\n";
		print DIFFLOG $d->{'data'};
		close(DIFFLOG);
		$i++;
		}
	@main::locked_file_diff = undef;
	}
}

# additional_log(type, object, data)
# Records additional log data for an upcoming call to webmin_log, such
# as command that was run or SQL that was executed.
sub additional_log
{
if ($gconfig{'logfiles'}) {
	push(@main::locked_file_diff,
	     { 'type' => $_[0], 'object' => $_[1], 'data' => $_[2] } );
	}
}

# system_logged(command)
# Just calls the system() function, but also logs the command
sub system_logged
{
local $cmd = join(" ", @_);
local $amd;
if ($cmd =~ s/(\s*&\s*)$//) {
	$and = $1;
	}
while($cmd =~ s/(\d*)(<|>)((\/\S+)|&\d+)\s*$//) { }
$cmd =~ s/^\((.*)\)\s*$/$1/;
$cmd .= $and;
&additional_log('exec', undef, $cmd);
return system(@_);
}

# backquote_logged(command)
# Executes a command and returns the output (like `cmd`), but also logs it
sub backquote_logged
{
local $cmd = $_[0];
local $amd;
if ($cmd =~ s/(\s*&\s*)$//) {
	$and = $1;
	}
while($cmd =~ s/(\d*)(<|>)((\/\S+)|&\d+)\s*$//) { }
$cmd =~ s/^\((.*)\)\s*$/$1/;
$cmd .= $and;
&additional_log('exec', undef, $cmd);
return `$_[0]`;
}

# kill_logged(signal, pid, ...)
sub kill_logged
{
&additional_log('kill', $_[0], join(" ", @_[1..@_-1])) if (@_ > 1);
return kill(@_);
}

# rename_logged(old, new)
sub rename_logged
{
&additional_log('rename', $_[0], $_[1]) if ($_[0] ne $_[1]);
return rename($_[0], $_[1]);
}

# remote_foreign_require(server, module, file)
# Connect to rpc.cgi on a remote webmin server and have it open a session
# to a process that will actually do the require and run functions.
sub remote_foreign_require
{
local $call = { 'action' => 'require',
		'module' => $_[1],
		'file' => $_[2] };
if ($remote_session{$_[0]}) {
	$call->{'session'} = $remote_session{$_[0]};
	}
else {
	$call->{'newsession'} = 1;
	}
local $rv = &remote_rpc_call($_[0], $call);
$remote_session{$_[0]} = $rv->{'session'};
}

# remote_foreign_call(server, module, function, [arg]*)
# Call a function on a remote server. Must have been setup first with
# remote_foreign_require for the same server and module
sub remote_foreign_call
{
return &remote_rpc_call($_[0], { 'action' => 'call',
				 'module' => $_[1],
				 'func' => $_[2],
				 'session' => $remote_session{$_[0]},
				 'args' => [ @_[3 .. $#_] ] } );
}

# remote_foreign_check(server, module)
# Checks if some module is installed and supported on a remote server
sub remote_foreign_check
{
return &remote_rpc_call($_[0], { 'action' => 'check',
				 'module' => $_[1] });
}

# remote_eval(server, module, code)
# Eval some perl code in the context of a module on a remote webmin server
sub remote_eval
{
return &remote_rpc_call($_[0], { 'action' => 'eval',
				 'module' => $_[1],
				 'code' => $_[2],
				 'session' => $remote_session{$_[0]} });
}

# remote_finished()
# Close all remote sessions. This happens automatically after a while
# anyway, but this function should be called to clean things up faster.
sub remote_finished
{
foreach $h (keys %remote_session) {
	&remote_rpc_call($h, { 'action' => 'quit',
			       'session' => $remote_session{$h} } );
	}
}

# remote_rpc_call(server, structure)
# Calls rpc.cgi on some server and passes it a perl structure (hash,array,etc)
# and then reads back a reply structure
sub remote_rpc_call
{
# lookup the server in the webmin servers module if needed
if (!defined(%remote_servers_cache)) {
	&foreign_require("servers", "servers-lib.pl");
	foreach $s (&foreign_call("servers", "list_servers")) {
		$remote_servers_cache{$s->{'host'}} = $s;
		}
	}
local $serv = $remote_servers_cache{$_[0]};
$serv || die "No Webmin Servers entry for $_[0]";

# make the HTTP request
local $tostr = &serialise_variable($_[1]);
local $error = 0;
if ($gconfig{'http_proxy'} =~ /^http:\/\/(\S+):(\d+)/ &&
    !&no_proxy($s->{'host'})) {
	&open_socket($1, $2, SOCK, \$error);
	print SOCK "POST http://$serv->{'host'}:",
		   "$serv->{'port'}/rpc.cgi HTTP/1.0\r\n";
	}
else {
	&open_socket($serv->{'host'}, $serv->{'port'}, SOCK, \$error);
	print SOCK "POST /rpc.cgi HTTP/1.0\r\n";
	}
die "Failed to connect to $serv->{'host'}" if ($error);
print SOCK "Host: $serv->{'host'}\r\n";
print SOCK "User-agent: Webmin\r\n";
local $auth = &encode_base64("$serv->{'user'}:$serv->{'pass'}");
$auth =~ s/\n//g;
print SOCK "Authorization: basic $auth\r\n";
print SOCK "Content-length: ",length($tostr),"\r\n";
print SOCK "\r\n";
print SOCK $tostr;

# read back the response
local $line = <SOCK>;
$line =~ s/\r|\n//g;
$line =~ /^HTTP\/1\..\s+200\s+/ || die "HTTP error : $line";
do {
	$line = <SOCK>;
	$line =~ s/\r|\n//g;
	} while($line);
local $fromstr;
while(<SOCK>) {
	$fromstr .= $_;
	}
close(SOCK);
local $from = &unserialise_variable($fromstr);
die "Invalid RPC login to $_[0]" if (!$from->{'status'});
return $from->{'rv'};
}

# serialise_variable(variable)
# Converts some variable (maybe a scalar, hash ref, array ref or scalar ref)
# into a url-encoded string
sub serialise_variable
{
if (!defined($_[0])) {
	return 'UNDEF';
	}
local $r = ref($_[0]);
local $rv;
if (!$r) {
	$rv = &urlize($_[0]);
	}
elsif ($r eq 'SCALAR') {
	$rv = &urlize(${$_[0]});
	}
elsif ($r eq 'ARRAY') {
	$rv = join(",", map { &urlize(&serialise_variable($_)) } @{$_[0]});
	}
elsif ($r eq 'HASH') {
	$rv = join(",", map { &urlize(&serialise_variable($_)).",".
			      &urlize(&serialise_variable($_[0]->{$_})) }
		            keys %{$_[0]});
	}
elsif ($r eq 'REF') {
	$rv = &serialise_variable(${$_[0]});
	}
return ($r ? $r : 'VAL').",".$rv;
}

# unserialise_variable(string)
# Converts a string created by serialise_variable() back into the original
# scalar, hash ref, array ref or scalar ref.
sub unserialise_variable
{
local @v = split(/,/, $_[0]);
local ($rv, $i);
if ($v[0] eq 'VAL') {
	$rv = &un_urlize($v[1]);
	}
elsif ($v[0] eq 'SCALAR') {
	local $r = &un_urlize($v[1]);
	$rv = \$r;
	}
elsif ($v[0] eq 'ARRAY') {
	$rv = [ ];
	for($i=1; $i<@v; $i++) {
		push(@$rv, &unserialise_variable(&un_urlize($v[$i])));
		}
	}
elsif ($v[0] eq 'HASH') {
	$rv = { };
	for($i=1; $i<@v; $i+=2) {
		$rv->{&unserialise_variable(&un_urlize($v[$i]))} =
			&unserialise_variable(&un_urlize($v[$i+1]));
		}
	}
elsif ($v[0] eq 'REF') {
	local $r = &unserialise_variable($v[1]);
	$rv = \$r;
	}
elsif ($v[0] eq 'UNDEF') {
	$rv = undef;
	}
return $rv;
}

# other_groups(user)
# Returns a list of secondary groups a user is a member of
sub other_groups
{
local (@rv, @g);
setgrent();
while(@g = getgrent()) {
	local @m = split(/\s+/, $g[3]);
	push(@rv, $g[2]) if (&indexof($_[0], @m) >= 0);
	}
endgrent();
return @rv;
}

# date_chooser_button(dayfield, monthfield, yearfield, [form])
# Returns HTML for a date-chooser button
sub date_chooser_button
{
local $form = @_ > 3 ? $_[3] : 0;
return "<input type=button onClick='window.dfield = document.forms[$form].$_[0]; window.mfield = document.forms[$form].$_[1]; window.yfield = document.forms[$form].$_[2]; window.open(\"/date_chooser.cgi?day=\"+escape(dfield.value)+\"&month=\"+escape(mfield.selectedIndex)+\"&year=\"+yfield.value, \"chooser\", \"toolbar=no,menubar=no,scrollbars=yes,width=250,height=225\")' value=\"...\">\n";
}

# help_file(module, file)
# Returns the path to a module's help file
sub help_file
{
local $dir = $module_name ? "../$_[0]/help" : "$_[0]/help";
local $lang = "$dir/$_[1].$current_lang.html";
local $def = "$dir/$_[1].html";
return -r $lang ? $lang : $def;
}

# seed_random()
# Seeds the random number generator, if needed
sub seed_random
{
if (!$main::done_seed_random) {
	if (open(RANDOM, "/dev/urandom")) {
		local $buf;
		read(RANDOM, $buf, 4);
		close(RANDOM);
		srand(time() ^ $$ ^ $buf);
		}
	else {
		srand(time() ^ $$);
		}
	$main::done_seed_random = 1;
	}
}

1;  # return true?

0707010000bd4e000081e40000000000000002000000013ac03886000003de000000200000000000000000000000000000001a00000003reloc/webmin-caldera-init #!/bin/sh
# webmin	This shell script takes care of starting and stopping
#		webmin
#

# Source function library.
. /etc/rc.d/init.d/functions

NAME=miniserv
DAEMON=/usr/libexec/webmin/miniserv.pl

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

# check if the webmin conf file is present
[ -f /etc/webmin/miniserv.conf ] || exit 0

case "$1" in
start)
    [ ! -e $SVIlock ] || exit 1
    if [ -f /etc/webmin/miniserv.conf ]; then
	echo -n "Starting $IDENT: "
	ssd -S -n $NAME -x $DAEMON -- /etc/webmin/miniserv.conf 2>&1 >/dev/null
        touch $SVIlock
        echo "."
    else
	echo "$NAME not configured (in /etc/webmin/miniserv.conf): Skipped!"
    fi
    ;;

stop)
    [ -e $SVIlock ] || exit 0
    echo -n "Stopping $IDENT: "
    ssd -K -p /var/run/miniserv.pid >/dev/null 2>&1 && echo -n "miniserv"
    rm -f $SVIlock
    echo "."
    ;;

*)
    echo "Usage: $0 {start|stop}"
    exit 1
esac

exit 0

  0707010000bd4f000081a40000000000000002000000013ac0388600000050000000200000000000000000000000000000001400000003reloc/webmin-daemon   IDENT=webmin
DESCRIPTIVE="Webmin administration server"
OPTIONS=""
ONBOOT="yes"
0707010000bd50000081e40000000000000002000000013ac0388600000221000000200000000000000000000000000000001200000003reloc/webmin-init #!/bin/sh
# chkconfig: 235 99 00
# description: Start or stop the Webmin administration server

case "$1" in
'start')
	/etc/webmin/start
	;;
'stop')
	/etc/webmin/stop
	;;
'status')
	if [ -s /var/webmin/miniserv.pid ]; then
		pid=`cat /var/webmin/miniserv.pid`
		kill -0 $pid >/dev/null 2>&1
		if [ "$?" = "0" ]; then
			echo "webmin (pid $pid) is running"
		else
			echo "webmin is stopped"
		fi
	else
		echo "webmin is stopped"
	fi
	;;
'restart')
	/etc/webmin/stop && /etc/webmin/start
	;;
*)
	echo "Usage: $0 { start | stop }"
	;;
esac
exit 0
   07070100012f0f000041ed0000000000000001000000043ac03caa00000000000000200000000000000000000000000000000d00000003reloc/webmin  07070100012f10000081e40000000000000002000000013ac0389200000952000000200000000000000000000000000000001f00000003reloc/webmin/change_access.cgi    #!/usr/local/bin/perl
# change_access.cgi
# Update IP allow and deny parameters

require './webmin-lib.pl';
use Socket;
&ReadParse();
&error_setup($text{'access_err'});

if ($in{"access"}) {
	@hosts = split(/\s+/, $in{"ip"});
	if (!@hosts) { &error($text{'access_enone'}); }
	$raddr = $ENV{'REMOTE_ADDR'};
	foreach $h (@hosts) {
		if ($h =~ /^([0-9\.]+)\/([0-9\.]+)$/) {
			&check_ipaddress($1) ||
				&error(&text('access_enet', $1));
			&check_ipaddress($2) ||
				&error(&text('access_emask', $2));
			$i = $h;
			}
		elsif ($h =~ /^[0-9\.]+$/) {
			&check_ipaddress($h) ||
				&error(&text('access_eip', $h));
			$i = $h;
			}
		elsif ($h =~ /^\*\.(\S+)$/) {
			$i = $h;
			}
		elsif ($h eq 'LOCAL') {
			$i = 'LOCAL';
			}
		elsif (!($i = join('.', unpack("CCCC", inet_aton($h))))) {
			&error(&text('access_ehost', $h));
			}
		push(@ip, $i);
		}
	if ($in{"access"} == 1 && !&ip_match($raddr, @ip) ||
	    $in{"access"} == 2 && &ip_match($raddr, @ip)) {
		&error(&text('access_eself', $raddr));
		}
	}

&lock_file($ENV{'MINISERV_CONFIG'});
&get_miniserv_config(\%miniserv);
delete($miniserv{"allow"});
delete($miniserv{"deny"});
if ($in{"access"} == 1) { $miniserv{"allow"} = join(' ', @hosts); }
elsif ($in{"access"} == 2) { $miniserv{"deny"} = join(' ', @hosts); }
&put_miniserv_config(\%miniserv);
&unlock_file($ENV{'MINISERV_CONFIG'});
&restart_miniserv();
&webmin_log("access", undef, undef, \%in);
&redirect("");

# ip_match(ip, [match]+)
# Checks an IP address against a list of IPs, networks and networks/masks
sub ip_match
{
local(@io, @mo, @ms, $i, $j);
@io = split(/\./, $_[0]);
local $hn = gethostbyaddr(inet_aton($_[0]), AF_INET);
undef($hn) if ((&to_ipaddress($hn))[0] ne $_[0]);
for($i=1; $i<@_; $i++) {
	local $mismatch = 0;
	if ($_[$i] =~ /^(\S+)\/(\S+)$/) {
		# Compare with network/mask
		@mo = split(/\./, $1); @ms = split(/\./, $2);
		for($j=0; $j<4; $j++) {
			if ((int($io[$j]) & int($ms[$j])) != int($mo[$j])) {
				$mismatch = 1;
				}
			}
		}
	elsif ($_[$i] =~ /^\*(\.\S+)$/) {
		# Compare with hostname regexp
		$mismatch = 1 if ($hn !~ /$1$/);
		}
	elsif ($_[$i] eq 'LOCAL') {
		# Just assume OK for now
		}
	else {
		# Compare with IP or network
		@mo = split(/\./, $_[$i]);
		while(@mo && !$mo[$#mo]) { pop(@mo); }
		for($j=0; $j<@mo; $j++) {
			if ($mo[$j] != $io[$j]) {
				$mismatch = 1;
				}
			}
		}
	return 1 if (!$mismatch);
	}
return 0;
}

  07070100012f11000081e40000000000000002000000013ac0389200000633000000200000000000000000000000000000001d00000003reloc/webmin/change_bind.cgi  #!/usr/local/bin/perl
# change_bind.cgi
# Update the binding IP address and port for miniserv

require './webmin-lib.pl';
use Socket;
&ReadParse();
&get_miniserv_config(\%miniserv);
&error_setup($text{'bind_err'});

# check inputs
if ($in{'port'} !~ /^\d+$/ || $in{'port'} > 65535) {
	&error("'$in{'port'}' is not a valid port number");
	}
$baddr = $in{'bind_def'} ? INADDR_ANY : inet_aton($in{'bind'});
if (!$baddr) { &error(&text('bind_eip', $in{'bind'})); }
if ($baddr ne INADDR_ANY) {
	# check if address can be used
	socket(TEST, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
	setsockopt(TEST, SOL_SOCKET, SO_REUSEADDR, pack("l", 1));
	if (!bind(TEST, sockaddr_in(1, $baddr))) {
		&error(&text('bind_eassign', $in{'bind'}));
		}
	close(TEST);
	}
if ($in{'port'} != $miniserv{'port'}) {
	# port has changed.. check if it is in use
	socket(TEST, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
	setsockopt(TEST, SOL_SOCKET, SO_REUSEADDR, pack("l", 1));
	bind(TEST, sockaddr_in($in{'port'}, $baddr)) ||
		&error(&text('bind_eport', $in{'port'}));
	close(TEST);
	}

&lock_file($ENV{'MINISERV_CONFIG'});
$miniserv{'port'} = $in{'port'};
if ($in{'bind_def'}) { delete($miniserv{'bind'}); }
else { $miniserv{'bind'} = $in{'bind'}; }
&put_miniserv_config(\%miniserv);
&unlock_file($ENV{'MINISERV_CONFIG'});
&restart_miniserv();
&webmin_log("bind", undef, undef, \%in);

if ($miniserv{'bind'}) { $url = $miniserv{'bind'}; }
else { $url = $ENV{'SERVER_NAME'}; }
$url .= ":$miniserv{'port'}/webmin/";
if ($ENV{'HTTPS'} eq "ON") { &redirect("https://$url"); }
else { &redirect("http://$url"); }

 07070100012f12000081e40000000000000002000000013ac038930000022b000000200000000000000000000000000000001b00000003reloc/webmin/change_ca.cgi    #!/usr/local/bin/perl
# change_ca.cgi
# Update the CA cert manually

require './webmin-lib.pl';
&ReadParse();
&lock_file($ENV{'MINISERV_CONFIG'});
&get_miniserv_config(\%miniserv);
&setup_ca() if (!$miniserv{'ca'});
&lock_file($miniserv{'ca'});
open(CA, ">$miniserv{'ca'}");
$in{'cert'} =~ s/\r//g;
$in{'cert'} =~ s/\n*$/\n/;
print CA $in{'cert'};
close(CA);
&unlock_file($miniserv{'ca'});
&put_miniserv_config(\%miniserv);
&unlock_file($ENV{'MINISERV_CONFIG'});
&redirect("");
sleep(1);
&restart_miniserv();
&webmin_log("changeca", undef, undef, \%in);

 07070100012f13000081e40000000000000002000000013ac038920000014b000000200000000000000000000000000000001d00000003reloc/webmin/change_lang.cgi  #!/usr/local/bin/perl
# change_lang.cgi
# Change language setting

require './webmin-lib.pl';
&ReadParse();
&lock_file("$config_directory/config");
$gconfig{'lang'} = $in{'lang'};
&write_file("$config_directory/config", \%gconfig);
&unlock_file("$config_directory/config");
&webmin_log("lang", undef, undef, \%in);
&redirect("");

 07070100012f14000081e40000000000000002000000013ac038920000047b000000200000000000000000000000000000001c00000003reloc/webmin/change_log.cgi   #!/usr/local/bin/perl
# change_log.cgi
# Enable or disable logging

require './webmin-lib.pl';
&ReadParse();
&error_setup($text{'log_err'});

&lock_file($ENV{'MINISERV_CONFIG'});
&get_miniserv_config(\%miniserv);
$miniserv{'log'} = $in{'log'};
$miniserv{'loghost'} = $in{'loghost'};
$miniserv{'logclear'} = $in{'logclear'};
!$in{'logclear'} || $in{'logtime'} =~ /^[1-9][0-9]*$/ ||
	&error(&text('log_ehours', $in{'logtime'}));
$miniserv{'logtime'} = $in{'logtime'};
&put_miniserv_config(\%miniserv);
&unlock_file($ENV{'MINISERV_CONFIG'});

$gconfig{'log'} = $in{'log'};
$gconfig{'logtime'} = $in{'logtime'};
$gconfig{'logclear'} = $in{'logclear'};
$gconfig{'logusers'} =
	$in{'uall'} ? '' : join(" ", split(/\0/, $in{'users'}));
$gconfig{'logmodules'} =
	$in{'mall'} ? '' : join(" ", split(/\0/, $in{'modules'}));
$gconfig{'logfiles'} = $in{'logfiles'};
!$in{'logfiles'} || &has_command("diff") ||
	&error(&text('log_ediff', "diff"));
&lock_file("$config_directory/config");
&write_file("$config_directory/config", \%gconfig);
&unlock_file("$config_directory/config");

&restart_miniserv();
&webmin_log("log", undef, undef, \%in);
&redirect("");

 07070100012f15000081e40000000000000002000000013ac038920000020d000000200000000000000000000000000000001b00000003reloc/webmin/change_os.cgi    #!/usr/local/bin/perl
# change_os.cgi
# Change OS settings

require './webmin-lib.pl';
&ReadParse();

&lock_file("$config_directory/config");
@os = split(/,/, $in{'os'});
$gconfig{'real_os_type'} = $os[0];
$gconfig{'real_os_version'} = $os[1];
$gconfig{'os_type'} = $os[2];
$gconfig{'os_version'} = $os[3];
$gconfig{'path'} = $in{'path'};
$gconfig{'ld_path'} = $in{'ld_path'};
&write_file("$config_directory/config", \%gconfig);
&unlock_file("$config_directory/config");
&webmin_log("os", undef, undef, \%in);
&redirect("");
   07070100012f16000081e40000000000000002000000013ac0389200000333000000200000000000000000000000000000001e00000003reloc/webmin/change_proxy.cgi #!/usr/local/bin/perl
# change_proxy.cgi
# Change proxy settings

require './webmin-lib.pl';
&error_setup($text{'proxy_err'});
&ReadParse();

&lock_file("$config_directory/config");
if ($in{'http_def'}) { delete($gconfig{'http_proxy'}); }
elsif ($in{'http'} !~ /^http:\/\/(\S+):(\d+)/) {
	&error($text{'proxy_ehttp'});
	}
else { $gconfig{'http_proxy'} = $in{'http'}; }

if ($in{'ftp_def'}) { delete($gconfig{'ftp_proxy'}); }
elsif ($in{'ftp'} !~ /^http:\/\/(\S+):(\d+)/) {
	&error($text{'proxy_eftp'});
	}
else { $gconfig{'ftp_proxy'} = $in{'ftp'}; }

$gconfig{'proxy_user'} = $in{'user'};
$gconfig{'proxy_pass'} = $in{'pass'};
$gconfig{'noproxy'} = $in{'noproxy'};
&write_file("$config_directory/config", \%gconfig);
&unlock_file("$config_directory/config");
&webmin_log('proxy', undef, undef, \%in);

&redirect("");

 07070100012f17000081e40000000000000002000000013ac03893000001d8000000200000000000000000000000000000002100000003reloc/webmin/change_referers.cgi  #!/usr/local/bin/perl
# change_referers.cgi
# Change referer checking settings

require './webmin-lib.pl';
&ReadParse();

&lock_file("$config_directory/config");
$gconfig{'referer'} = $in{'referer'};
$gconfig{'referers'} = join(" ", split(/\s+/, $in{'referers'}));
$gconfig{'referers_none'} = !$in{'referers_none'};
&write_file("$config_directory/config", \%gconfig);
&unlock_file("$config_directory/config");
&webmin_log('referers', undef, undef, \%in);

&redirect("");

07070100012f18000081e40000000000000002000000013ac038930000060c000000200000000000000000000000000000002000000003reloc/webmin/change_session.cgi   #!/usr/local/bin/perl
# change_session.cgi
# Enable or disable session authentication

require './webmin-lib.pl';
&ReadParse();
&error_setup($text{'session_err'});

&lock_file($ENV{'MINISERV_CONFIG'});
&get_miniserv_config(\%miniserv);
$miniserv{'passdelay'} = $in{'passdelay'};
if ($in{'blockhost_on'}) {
	$in{'blockhost_time'} =~ /^\d+$/ && $in{'blockhost_time'} > 0 ||
		&error($text{'session_eblockhost_time'});
	$in{'blockhost_failures'} =~ /^\d+$/ && $in{'blockhost_failures'} > 0 ||
		&error($text{'session_eblockhost_failures'});
	$miniserv{'blockhost_time'} = $in{'blockhost_time'};
	$miniserv{'blockhost_failures'} = $in{'blockhost_failures'};
	}
else {
	$miniserv{'blockhost_time'} = $miniserv{'blockhost_failures'} = undef;
	}
$miniserv{'syslog'} = $in{'syslog'};
if ($in{'session'} && $ENV{'HTTP_COOKIE'} !~ /sessiontest=1/i) {
	&error($text{'session_ecookie'});
	}
$miniserv{'session'} = $in{'session'};
if ($in{'logouttime_on'}) {
	$in{'logouttime'} =~ /^\d+$/ && $in{'logouttime'} > 0 ||
		&error($text{'session_elogouttime'});
	}
$miniserv{'logouttime'} = $in{'logouttime_on'} ? $in{'logouttime'} : undef;
if ($in{'localauth'}) {
	$lsof = &has_command("lsof");
	&error($text{'session_elsof'}) if (!$lsof);
	$miniserv{'localauth'} = $lsof;
	}
else {
	delete($miniserv{'localauth'});
	}
&put_miniserv_config(\%miniserv);
&unlock_file($ENV{'MINISERV_CONFIG'});
#$gconfig{'locking'} = $in{'locking'};
#&write_file("$config_directory/config", \%gconfig);
&restart_miniserv();
&webmin_log("session", undef, undef, \%in);
&redirect("");

07070100012f19000081e40000000000000002000000013ac0389200000230000000200000000000000000000000000000001c00000003reloc/webmin/change_ssl.cgi   #!/usr/local/bin/perl
# change_ssl.cgi
# Enable or disable SSL support

require './webmin-lib.pl';
&ReadParse();

&lock_file($ENV{'MINISERV_CONFIG'});
&get_miniserv_config(\%miniserv);
$miniserv{'ssl'} = $in{'ssl'};
&put_miniserv_config(\%miniserv);
&unlock_file($ENV{'MINISERV_CONFIG'});

$SIG{'TERM'} = 'IGNORE';	# stop process from being killed by restart
&restart_miniserv();
&webmin_log("ssl", undef, undef, \%in);

$url = "$ENV{'SERVER_NAME'}:$miniserv{'port'}/webmin/";
if ($in{'ssl'}) { &redirect("https://$url"); }
else { &redirect("http://$url"); }

07070100012f1a000081e40000000000000002000000013ac038920000028f000000200000000000000000000000000000002200000003reloc/webmin/change_startpage.cgi #!/usr/local/bin/perl
# change_startpage.cgi
# Change startpage settings

require './webmin-lib.pl';
&ReadParse();
&lock_file("$config_directory/config");
if ($in{'nocols_def'}) {
	delete($gconfig{'nocols'});
	}
else {
	$in{'nocols'} =~ /^\d+$/ ||
		&error(&text('startpage_ecols', $in{'nocols'}));
	$gconfig{'nocols'} = $in{'nocols'};
	}
$gconfig{'alt_startpage'} = $in{'alt_startpage'};
$gconfig{'notabs'} = $in{'notabs'};
$gconfig{'gotoone'} = $in{'gotoone'};
$gconfig{'deftab'} = $in{'deftab'};
&write_file("$config_directory/config", \%gconfig);
&unlock_file("$config_directory/config");
&webmin_log("startpage", undef, undef, \%in);
&redirect("");

 07070100012f1b000081e40000000000000002000000013ac0389300000394000000200000000000000000000000000000001f00000003reloc/webmin/change_syslet.cgi    #!/usr/local/bin/perl
# change_syslet.cgi
# Save syslet auto-download options

require './webmin-lib.pl';
&ReadParse();
&error_setup($text{'syslet_err'});

&lock_file("$config_directory/config");
@base = split(/\s+/, $in{'syslet_base'});
foreach $b (@base) {
	$b =~ /^http:\/\/([A-Za-z0-9\.\-]+)(:\d+)?\/(\S*)/ ||
		&error($text{'syslet_ebase'});
	}
$gconfig{'syslet_base'} = join(" ", @base);
&write_file("$config_directory/config", \%gconfig);
&unlock_file("$config_directory/config");

&lock_file($ENV{'MINISERV_CONFIG'});
&get_miniserv_config(\%miniserv);
if ($in{'auto'}) {
	$miniserv{'error_handler_404'} = '/eazel_download_module.cgi';
	}
elsif ($miniserv{'error_handler_404'} eq '/eazel_download_module.cgi') {
	$miniserv{'error_handler_404'} = '';
	}
&put_miniserv_config(\%miniserv);
&unlock_file($ENV{'MINISERV_CONFIG'});


&restart_miniserv();
&webmin_log("syslet", undef, undef, \%in);
&redirect("");


07070100012f1c000081e40000000000000002000000013ac0389300000342000000200000000000000000000000000000001e00000003reloc/webmin/change_theme.cgi #!/usr/local/bin/perl
# change_theme.cgi
# Change the current webmin theme

require './webmin-lib.pl';
&ReadParse();

&lock_file("$config_directory/config");
$gconfig{'theme'} = $in{'theme'};
&write_file("$config_directory/config", \%gconfig);
&unlock_file("$config_directory/config");

&lock_file($ENV{'MINISERV_CONFIG'});
&get_miniserv_config(\%miniserv);
if ($in{'theme'}) {
	$miniserv{'preroot'} = $miniserv{'root'}.'/'.$in{'theme'};
	}
else {
	delete($miniserv{'preroot'});
	}
&put_miniserv_config(\%miniserv);
&unlock_file($ENV{'MINISERV_CONFIG'});
&restart_miniserv();

&webmin_log('theme', undef, undef, \%in);
&header($text{'themes_title'}, "");
print "<script>\n";
print "top.location = \"/\";\n";
print "</script>\n";
print "<hr>\n";
print "<p>$text{'themes_ok'}<p>\n";
print "<hr>\n";
&footer("", $text{'index_return'});

  07070100012f1d000081e40000000000000002000000013ac038920000038a000000200000000000000000000000000000001b00000003reloc/webmin/change_ui.cgi    #!/usr/local/bin/perl
# change_ui.cgi
# Change colour scheme

require './webmin-lib.pl';
&error_setup($text{'ui_err'});
&ReadParse();

&lock_file("$config_directory/config");
for($i=0; $i<@cs_names; $i++) {
	$cd = $cs_codes[$i];
	if ($in{"${cd}_def"}) { delete($gconfig{$cd}); }
	elsif ($in{"${cd}_red"} !~ /^[0-9a-fA-F]{2}$/) {
		&error(&text('ui_ered', $cs_names[$i]));
		}
	elsif ($in{"${cd}_green"} !~ /^[0-9a-fA-F]{2}$/) {
		&error(&text('ui_egreen', $cs_names[$i]));
		}
	elsif ($in{"${cd}_blue"} !~ /^[0-9a-fA-F]{2}$/) {
		&error(&text('ui_eblue', $cs_names[$i]));
		}
	else { $gconfig{$cd} = $in{"${cd}_red"} . $in{"${cd}_green"} .
			       $in{"${cd}_blue"}; }
	}

$gconfig{'texttitles'} = $in{'texttitles'};
$gconfig{'sysinfo'} = $in{'sysinfo'};
&write_file("$config_directory/config", \%gconfig);
&unlock_file("$config_directory/config");
&webmin_log('ui', undef, undef, \%in);
&redirect("");

  07070100012f1e000081e40000000000000002000000013ac038920000049a000000200000000000000000000000000000001b00000003reloc/webmin/clone_mod.cgi    #!/usr/local/bin/perl
# clone_mod.cgi
# Clone an existing module under a new name

require './webmin-lib.pl';
&ReadParse();
&error_setup($text{'clone_err'});

# Symlink the code directory
$src = $in{'mod'};
%minfo = &get_module_info($src);
$count = 2;
do {
	$dst = $src.$count;
	$count++;
	} while(-d "../$dst");
symlink($src, "../$dst") || &error(&text('clone_elink', $!));

# Copy the config directory
mkdir("$config_directory/$dst", 0700);
$out = `(cd $config_directory/$src ; tar cvf - .) | (cd $config_directory/$dst ; tar xvpf -) 2>&1`;
if ($?) {
	&error(&text('clone_ecopy', $out));
	}
$in{'desc'} = &text('clone_desc', $minfo{'desc'}) if (!$in{'desc'});
open(CLONE, ">$config_directory/$dst/clone");
print CLONE "desc=$in{'desc'}\n";
close(CLONE);

# Grant access to the clone to this user
&read_acl(undef, \%acl);
open(ACL, "> ".&acl_filename());
foreach $u (keys %acl) {
	local @mods = @{$acl{$u}};
	if ($u eq $ENV{'REMOTE_USER'}) {
		@mods = &unique(@mods, $dst);
		}
	print ACL "$u: ",join(' ', @mods),"\n";
	}
close(ACL);

&webmin_log("clone", undef, $in{'mod'}, { 'desc' => $minfo{'desc'},
					  'dst' => $dst,
					  'dstdesc' => $in{'desc'} });
&redirect("");

  07070100012f1f000081e40000000000000002000000013ac0389200000a73000000200000000000000000000000000000001c00000003reloc/webmin/delete_mod.cgi   #!/usr/local/bin/perl
# delete_mod.cgi
# Delete selected modules from webmin, without asking

require './webmin-lib.pl';
&ReadParse();
&error_setup($text{'delete_err'});
@mods = split(/\0/, $in{'mod'});

# ask the user if he is sure
if (!$in{'confirm'}) {
	&header($text{'delete_title'}, "");
	print "<hr>\n";
	print "<p><form action=delete_mod.cgi>\n";
	foreach $m (@mods) {
		print "<input type=hidden name=mod value=$m>\n";
		$total += $1 if (!-l "../$m" && `du -sk ../$m` =~ /(\d+)/);
		}
	print "<center>",&text('delete_sure', int($total)),"<p>",
	      "<input type=submit name=confirm value='$text{'delete'}'>",
	      "</form></center><hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}

# check if any other module depends on those to be deleted
opendir(DIR, "..");
while($m = readdir(DIR)) {
	local %minfo;
	if (%minfo = &get_module_info($m) && &check_os_support(\%minfo)) {
		foreach $d (split(/\s+/, $minfo{'depends'})) {
			$depends{$d} = $minfo{'desc'};
			}
		}
	}
closedir(DIR);
foreach $m (@mods) {
	%minfo = &get_module_info($m);
	if (!-l "../$m" && $depends{$m}) {
		&error(&text('delete_edep', "<tt>$minfo{'desc'}</tt>",
			     "<tt>$depends{$m}</tt>"));
		}
	}

# delete the selected modules
foreach $m (split(/\0/, $in{'mod'})) {
	next if (!$m || !-d "../$m");
	local (%minfo, %cinfo);
	%minfo = &get_module_info($m);
	if ($minfo{'clone'}) {
		# Deleting a clone
		&read_file("$config_directory/$m/clone", \%cinfo);
		unlink("../$m");
		system("rm -rf $config_directory/$m");
		push(@mdesc, &text('delete_desc1', $minfo{'desc'},
				   $minfo{'clone'}));
		}
	else {
		# Delete any clones of this module
		local @mst = stat("../$m");
		opendir(DIR, "..");
		foreach $l (readdir(DIR)) {
			@lst = stat("../$l");
			if (-l "../$l" && $lst[1] == $mst[1]) {
				unlink("../$l");
				system("rm -rf $config_directory/$l");
				}
			}
		closedir(DIR);

		open(TYPE, "../$m/install-type");
		chop($type = <TYPE>);
		close(TYPE);

		# Deleting the real module
		chop($pwd = `cd ../$m ; pwd`);
		`du -sk ../$m` =~ /(\d+)/;
		local $size = $1;
		push(@mdesc, &text('delete_desc2', "<b>$minfo{'desc'}</b>",
				   "<tt>$pwd</tt>", $size));
		if ($type eq 'rpm') {
			# This module was installed from an RPM .. rpm -e it
			system("rpm -e wbm-$m");
			}
		else {
			# Module was installed from a .wbm file .. just rm it
			system("rm -rf ../$m");
			}
		}
	&webmin_log("delete", undef, $m, { 'desc' => $minfo{'desc'} });
	}

&header($text{'delete_title'}, "");
print "<hr>\n";
print $text{'delete_msg'},"<p>\n";
print "<ul>\n";
for($i=0; $i<@mdesc; $i++) {
	print $mdesc[$i],"<p>\n";
	}
print "</ul><p>\n";
print "<hr>\n";
&footer("", $text{'index_return'});

 07070100012f20000081e40000000000000002000000013ac03892000004bb000000200000000000000000000000000000001d00000003reloc/webmin/edit_access.cgi  #!/usr/local/bin/perl
# edit_access.cgi
# Display IP access control form

require './webmin-lib.pl';
&header($text{'access_title'}, "");
print "<hr>\n";
&get_miniserv_config(\%miniserv);

print $text{'access_desc'},"<p>\n";

print "<form action=change_access.cgi method=post>\n";
print "<table border>\n";
print "<tr $tb> <td colspan=2><b>$text{'access_header'}</b></td> </tr>\n";
print "<tr $cb> <td valign=top nowrap>\n";
printf "<input type=radio name=access value=0 %s>\n",
	$miniserv{"allow"} || $miniserv{"deny"} ? "" : "checked";
print "$text{'access_all'}<br>\n";
printf "<input type=radio name=access value=1 %s>\n",
	$miniserv{"allow"} ? "checked" : "";
print "$text{'access_allow'}<br>\n";
printf "<input type=radio name=access value=2 %s>\n",
	$miniserv{"deny"} ? "checked" : "";
print "$text{'access_deny'}<br>\n";
print "</td> <td valign=top>\n";
printf "<textarea name=ip rows=6 cols=30>%s</textarea>\n",
	$miniserv{"allow"} ? join("\n", split(/\s+/, $miniserv{"allow"})) :
	$miniserv{"deny"} ? join("\n", split(/\s+/, $miniserv{"deny"})) : "";
print "</td> </tr></table><br>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

 07070100012f21000081e40000000000000002000000013ac038930000054c000000200000000000000000000000000000002100000003reloc/webmin/edit_assignment.cgi  #!/usr/local/bin/perl

require './webmin-lib.pl';

opendir(DIR, "..");
foreach $d (readdir(DIR)) {
	local %minfo;
	if (%minfo = &get_module_info($d)) {
		if (!&check_os_support(\%minfo)) {
			# This OS is not supported!
			next;
			}
		push(@modules, \%minfo);
		}
	}
closedir(DIR);
@modules = sort { $a->{'desc'} cmp $b->{'desc'} } @modules;
&read_file("$config_directory/webmin.catnames", \%catnames);

&header($text{'assignment_title'}, undef);
print qq(
<hr>
$text{'assignment_desc'}<p>
<form action="save_assignment.cgi">
<table border><tr $tb>
<td><b>$text{'assignment_header'}</b></td></tr>
<tr $cb><td><table>
);
foreach ( @modules ){
    $a++;
    print "<tr></tr>" if $a%2;
    print qq(<td>$_->{desc}</td><td>), &cats($_->{dir}, $_->{category}), "</td>\n";
}

print qq(
</td></tr></table>
</td></tr></table>
<input type=submit value="$text{'assignment_ok'}">
</form><hr>
);
&footer("/", $text{'index'});

sub cats {
    my $cats;
    my %cats;
    foreach (keys %text) {
	next unless /^category_/;
	my $desc = $text{$_};
	s/^category_//;
	$cats{$_} = $desc;
	}
    foreach (keys %catnames) {
	$cats{$_} = $catnames{$_};
	}
    foreach $c (sort { $cats{$a} cmp $cats{$b} } keys %cats) {
	$cats .= sprintf "<option value='%s' %s>%s\n",
			$c, $_[1] eq $c ? 'selected' : '', $cats{$c};
	}
    $cats = qq(<select name="$_[0]">$cats\n</select>\n);
}
07070100012f23000081e40000000000000002000000013ac0389300000a8c000000200000000000000000000000000000001900000003reloc/webmin/edit_ca.cgi  #!/usr/local/bin/perl
# edit_ca.cgi
# Display the current CA or a form for creating one

require './webmin-lib.pl';
&header($text{'ca_title'}, "");
print "<hr>\n";
&get_miniserv_config(\%miniserv);

%aclconfig = &foreign_config("acl");
if (!$ENV{"MINISERV_CONFIG"}) {
	print "<p>$text{'ca_eminiserv'}<p>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}
elsif (uc($ENV{'HTTPS'}) ne 'ON') {
	print "<p>$text{'ca_essl'}<p>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}
elsif (!defined(&Net::SSLeay::X509_STORE_CTX_get_current_cert) ||
       !defined(&Net::SSLeay::CTX_load_verify_locations) ||
       !defined(&Net::SSLeay::CTX_set_verify)) {
	print "<p>$text{'ca_eversion'}<p>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}
elsif (!-x $aclconfig{'ssleay'}) {
	print "<p>",&text('ca_essleay',
			  "<tt>$aclconfig{'ssleay'}</tt>"),"<p>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}

print $miniserv{'ca'} ? $text{'ca_newmsg1'} : $text{'ca_newmsg1'},"<p>\n";
print "<form action=setup_ca.cgi><table border>\n";
print "<tr $tb> <td><b>$text{'ca_header1'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";
print "<tr> <td><b>$text{'ca_cn'}</b></td>\n";
print "<td><input name=commonName size=30></td> </tr>\n";

print "<tr> <td><b>$text{'ca_email'}</b></td>\n";
print "<td><input name=emailAddress size=30></td> </tr>\n";

print "<tr> <td><b>$text{'ca_ou'}</b></td>\n";
print "<td><input name=organizationalUnitName size=30></td> </tr>\n";

print "<tr> <td><b>$text{'ca_o'}</b></td>\n";
print "<td><input name=organizationName size=30></td> </tr>\n";

print "<tr> <td><b>$text{'ca_sp'}</b></td>\n";
print "<td><input name=stateOrProvinceName size=15></td> </tr>\n";

print "<tr> <td><b>$text{'ca_c'}</b></td>\n";
print "<td><input name=countryName size=2></td> </tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value='$text{'ca_create'}'></form>\n";

print "<hr>\n";
print $miniserv{'ca'} ? $text{'ca_oldmsg1'} : $text{'ca_oldmsg1'},"<p>\n";
print "<form action=change_ca.cgi><table border>\n";
print "<tr $tb> <td><b>$text{'ca_header2'}</b></td> </tr>\n";
print "<tr $cb> <td><textarea rows=20 cols=70 name=cert>";
if ($miniserv{'ca'}) {
	open(CA, $miniserv{'ca'});
	while(<CA>) { print; }
	close(CA);
	}
print "</textarea></td> </tr>\n";
print "</table><input type=submit value='$text{'save'}'></form>\n";

if ($miniserv{'ca'}) {
	print "<hr>\n";
	print "<form action=stop_ca.cgi><table><tr>\n";
	print "<td><input type=submit value='$text{'ca_stop'}'></td>\n";
	print "<td>$text{'ca_stopmsg'}</td>\n";
	print "</tr></table></form>\n";
	}

print "<hr>\n";
&footer("", $text{'index_return'});

07070100012f22000081e40000000000000002000000013ac0389200000406000000200000000000000000000000000000001b00000003reloc/webmin/edit_bind.cgi    #!/usr/local/bin/perl
# edit_bind.cgi
# Display port / address form

require './webmin-lib.pl';
&header($text{'bind_title'}, "");
print "<hr>\n";
&get_miniserv_config(\%miniserv);

print $text{'bind_desc'},"<p>\n";

print "<form action=change_bind.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'bind_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";
print "<tr> <td nowrap><b>$text{'bind_ip'}</b></td>\n";
printf "<td nowrap><input type=radio name=bind_def value=1 %s>%s &nbsp;\n",
	$miniserv{"bind"} ? "" : "checked", $text{'bind_all'};
printf "<input type=radio name=bind_def value=0 %s>\n",
	$miniserv{"bind"} ? "checked" : "";
print "<input name=bind size=20 value=\"$miniserv{bind}\"></td> </tr>\n";
print "<tr> <td><b>$text{'bind_port'}</b></td>\n";
print "<td><input name=port size=6 value=\"$miniserv{port}\"></td> </tr>\n";
print "</table></td></tr></table><br>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

  07070100012f24000081e40000000000000002000000013ac038930000053c000000200000000000000000000000000000002100000003reloc/webmin/edit_categories.cgi  #!/usr/local/bin/perl
require './webmin-lib.pl';

&header($text{'categories_title'}, undef);
print qq(
<hr>
$text{'categories_desc'}<p>
<form action="save_categories.cgi">
<table border><tr $tb>
<td><b>$text{'categories_header'}</b></td></tr>
<tr $cb><td><table>
);

# Show the existing categories
&read_file("$config_directory/webmin.catnames", \%catnames);
foreach $t (keys %text) {
	$t =~ s/^category_// || next;
	print "<tr> <td><b>",$t ? $t : "<i>other</i>","</b></td>\n";
	printf "<td><input type=radio name=def_$t value=1 %s> %s\n",
		$catnames{$t} ? '' : 'checked', $text{'default'};
	printf "<input type=radio name=def_$t value=0 %s> %s\n",
		$catnames{$t} ? 'checked' : '';
	printf "<input name=desc_$t size=30 value='%s'></td> </tr>\n",
		$catnames{$t};
	$realcat{$t}++;
	}
print "<tr> <td colspan=2><hr></td> </tr>\n";

# Show new categories
$i = 0;
foreach $c (keys %catnames) {
	if (!$realcat{$c}) {
		print "<tr> <td><input name=cat_$i size=10 value='$c'></td>\n";
		print "<td><input name=desc_$i size=30 ",
		      "value='$catnames{$c}'></td> </tr>\n";
		$i++;
		}
	}
print "<tr> <td><input name=cat_$i size=10></td>\n";
print "<td><input name=desc_$i size=30></td> </tr>\n";

print qq(
</td></tr></table>
</td></tr></table>
<input type=submit value="$text{'categories_ok'}">
</form><hr>
);
&footer("/", $text{'index'});

07070100012f25000081e40000000000000002000000013ac038920000031e000000200000000000000000000000000000001b00000003reloc/webmin/edit_lang.cgi    #!/usr/local/bin/perl
# edit_lang.cgi
# Language config form

require './webmin-lib.pl';
&header($text{'lang_title'}, "");
print "<hr>\n";

print $text{'lang_intro'},"<p>\n";

print "<form action=change_lang.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'lang_title2'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'lang_lang'}</b></td>\n";
print "<td><select name=lang>\n";
foreach $l (&list_languages()) {
	printf "<option value=%s %s>%s (%s)\n",
		$l->{'lang'},
		$gconfig{'lang'} eq $l->{'lang'} ? 'selected' : '',
		$l->{'desc'}, uc($l->{'lang'});
	}
print "</select></td> </tr>\n";
print "</table></td></tr></table><br>\n";
print "<input type=submit value=\"$text{'lang_ok'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

  07070100012f26000081e40000000000000002000000013ac0389200000ab8000000200000000000000000000000000000001a00000003reloc/webmin/edit_log.cgi #!/usr/local/bin/perl
# edit_log.cgi
# Logging config form

require './webmin-lib.pl';
&header($text{'log_title'}, "");
print "<hr>\n";
&foreign_require("acl", "acl-lib.pl");
&get_miniserv_config(\%miniserv);

print &text('log_desc', "<tt>$miniserv{'logfile'}</tt>"),"<p>\n";
print &text('log_desc2', "<tt>$webmin_logfile</tt>"),"<p>\n";

print "<form action=change_log.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'log_header'}</b></td> </tr>\n";
print "<tr $cb> <td nowrap>\n";
printf "<input type=radio name=log value=0 %s> $text{'log_disable'}<p>\n",
	!$miniserv{'log'} ? "checked" : "";
printf "<input type=radio name=log value=1 %s> $text{'log_enable'}<br>\n",
	$miniserv{'log'} ? "checked" : "";
printf "&nbsp;&nbsp;&nbsp;<input type=checkbox name=loghost value=1 %s>\n",
	$miniserv{'loghost'} ? "checked" : "";
print "$text{'log_resolv'}<br>\n";
printf "&nbsp;&nbsp;&nbsp;<input type=checkbox name=logclear value=1 %s>\n",
	$miniserv{'logclear'} ? "checked" : "";
print &text('log_clear',
	"<input name=logtime value='$miniserv{'logtime'}' size=10>"),"<br>\n";

print "<table cellpadding=0 cellspacing=0><tr> <td valign=top>\n";
printf "&nbsp;&nbsp;&nbsp;<input type=radio name=uall value=1 %s> %s<br>\n",
	$gconfig{'logusers'} ? '' : 'checked', $text{'log_uall'};
printf "&nbsp;&nbsp;&nbsp;<input type=radio name=uall value=0 %s> %s</td>\n",
	$gconfig{'logusers'} ? 'checked' : '', $text{'log_users'};
map { $users{$_}++ } split(/\s+/, $gconfig{'logusers'});
print "<td valign=top><select multiple size=3 name=users>\n";
foreach $u (&foreign_call("acl", "list_users")) {
	printf "<option %s>%s\n", $users{$u->{'name'}} ? 'selected' : '',
				  $u->{'name'};
	}
print "</select></td></tr></table>\n";

print "<table cellpadding=0 cellspacing=0><tr> <td valign=top>\n";
printf "&nbsp;&nbsp;&nbsp;<input type=radio name=mall value=1 %s> %s<br>\n",
	$gconfig{'logmodules'} ? '' : 'checked', $text{'log_mall'};
printf "&nbsp;&nbsp;&nbsp;<input type=radio name=mall value=0 %s> %s</td>\n",
	$gconfig{'logmodules'} ? 'checked' : '', $text{'log_modules'};
map { $mods{$_}++ } split(/\s+/, $gconfig{'logmodules'});
print "<td valign=top><select multiple size=5 name=modules>\n";
foreach $m (&foreign_call("acl", "list_modules")) {
	%minfo = &get_module_info($m);
	if (-r "../$m/log_parser.pl") {
		printf "<option value=%s %s>%s\n",
			$m, $mods{$m} ? 'selected' : '', $minfo{'desc'};
		}
	}
print "</select></td></tr></table>\n";

printf "&nbsp;&nbsp;&nbsp;<input type=checkbox name=logfiles value=1 %s> %s\n",
	$gconfig{'logfiles'} ? 'checked' : '',
	$text{'log_files'};

print "</td> </tr></table><br>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

07070100012f27000081e40000000000000002000000013ac0389200000b1e000000200000000000000000000000000000001b00000003reloc/webmin/edit_mods.cgi    #!/usr/local/bin/perl
# edit_mods.cgi
# Form for installing and removing modules

require './webmin-lib.pl';
&header($text{'mods_title'}, "");
print "<hr>\n";
%access = &get_module_acl();

opendir(DIR, "..");
foreach $m (readdir(DIR)) {
	local %minfo;
	if ((%minfo = &get_module_info($m)) && &check_os_support(\%minfo)) {
		push(@mlist, \%minfo);
		}
	}
closedir(DIR);
@mlist = sort { $a->{'desc'} cmp $b->{'desc'} } @mlist;

# Display installation form
print "<table width=100%><tr><td valign=top>\n";
print "$text{'mods_desc1'}</td><td valign=top>";

print "<form action=install_mod.cgi enctype=multipart/form-data method=post>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'mods_install'}</b></td> </tr>\n";
print "<tr $cb> <td>\n";
print "<input type=radio name=source value=0 checked> $text{'mods_local'}\n";
print "<input name=file size=40>\n";
print &file_chooser_button("file", 0),"<br>\n";
print "<input type=radio name=source value=1> $text{'mods_uploaded'}\n";
print "<input name=upload type=file size=30><br>\n";
print "<input type=radio name=source value=2> $text{'mods_ftp'}\n";
print "<input name=url size=40><br>\n";
print "</td></tr></table><br>\n";
print "<input type=submit value=\"$text{'mods_installok'}\">\n";
print "</form></td></tr></table> <hr>\n";

if (!$access{'install'}) {
	# Display cloning form
	print "<table width=100%><tr><td valign=top>\n";
	print "$text{'mods_desc2'}</td> <td valign=top>";

	print "<form action=clone_mod.cgi>\n";
	print "<table border>\n";
	print "<tr $tb> <td><b>$text{'mods_clone'}</b></td> </tr>\n";
	print "<tr $cb> <td><table>\n";
	print "<tr> <td><b>$text{'mods_cname'}</b></td>\n";
	print "<td><select name=mod>\n";
	foreach $m (@mlist) {
		if ($m->{'dir'} ne 'webmin' && !$m->{'clone'}) {
			printf "<option value='%s'>%s\n",
				$m->{'dir'}, $m->{'desc'};
			}
		}
	closedir(DIR);
	print "</select></td> </tr>\n";
	print "<tr> <td><b>$text{'mods_cnew'}</b></td>\n";
	print "<td><input name=desc size=30></td> </tr>\n";
	print "</table></td></tr> </table><br>\n";
	print "<input type=submit value=\"$text{'mods_cloneok'}\">\n";
	print "</form></td></tr></table> <hr>\n";


	# Display deletion form
	print $text{'mods_desc3'},"<br>\n";
	print "<form action=delete_mod.cgi>\n";
	print "<table border>\n";
	print "<tr $tb> <td><b>$text{'mods_delete'}</b></td> </tr>\n";
	print "<tr $cb> <td><table>\n";
	foreach $m (@mlist) {
		if ($m->{'dir'} ne 'webmin' && &check_os_support($m)) {
			print "<tr>\n" if ($count %3 == 0);
			printf "<td><input type=checkbox name=mod value='%s'>%s</td>\n", $m->{'dir'}, $m->{'desc'};
			print "</tr>\n" if (++$count %3 == 0);
			}
		}
	print "</table></td></tr></table><br>\n";
	print "<input type=submit value=\"$text{'mods_deleteok'}\">\n";
	print "</form></td></tr></table>\n";
	print "<hr>\n";
	}

&footer("", $text{'index_return'});

  07070100012f28000081e40000000000000002000000013ac03892000006de000000200000000000000000000000000000001900000003reloc/webmin/edit_os.cgi  #!/usr/local/bin/perl
# edit_os.cgi
# Operating system config form

require './webmin-lib.pl';
&header($text{'os_title'}, "");
print "<hr>\n";

print $text{'os_desc'},"<br>\n";
print $text{'os_desc2'},"<br>\n";

open(OSLIST, "../os_list.txt");
while(<OSLIST>) {
	chop;
	if (/^([^\t]+)\t+(\S+)\t+(\S+)\t+(\S+)\t*(.*)$/) {
		push(@list, [ $1, $2, $3, $4, $5 ]);
		}
	}
close(OSLIST);
if (!$gconfig{'real_os_type'}) {
	foreach $o (@list) {
		if ($o->[2] eq $gconfig{'os_type'} &&
		    $o->[3] eq $gconfig{'os_version'}) {
			$gconfig{'real_os_type'} = $o->[0];
			$gconfig{'real_os_version'} = $o->[1];
			last;
			}
		}
	}

print "<form action=change_os.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'os_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'os_curros'}</b></td>\n";
print "<td>$gconfig{'real_os_type'}</td> </tr>\n";

print "<tr> <td><b>$text{'os_currver'}</b></td>\n";
print "<td>$gconfig{'real_os_version'}</td> </tr>\n";

print "<tr> <td valign=top><b>$text{'os_new'}</b></td>\n";
print "<td><select name=os size=7>\n";
foreach $o (@list) {
	printf "<option value='%s' %s>%s %s\n",
		join(",", @$o),
		$gconfig{'real_os_type'} eq $o->[0] &&
		$gconfig{'real_os_version'} eq $o->[1] ? "selected" : "",
		$o->[0], $o->[1];
	}
print "</select></td> </tr>\n";

print "<tr> <td><b>$text{'os_path'}</b></td>\n";
print "<td><input name=path size=30 value='$gconfig{'path'}'></td> </tr>\n";

print "<tr> <td><b>$text{'os_ld_path'}</b></td>\n";
print "<td><input name=ld_path size=30 ",
      "value='$gconfig{'ld_path'}'></td> </tr>\n";

print "</table></td></tr></table><br>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

  07070100012f29000081e40000000000000002000000013ac03892000006bc000000200000000000000000000000000000001c00000003reloc/webmin/edit_proxy.cgi   #!/usr/local/bin/perl
# edit_proxy.cgi
# Proxy servers config form

require './webmin-lib.pl';
&header($text{'proxy_title'}, "");
print "<hr>\n";

print $text{'proxy_desc'},"\n";

print "<form action=change_proxy.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'proxy_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td nowrap><b>$text{'proxy_http'}</b></td>\n";
printf "<td nowrap><input type=radio name=http_def value=1 %s> %s\n",
	$gconfig{'http_proxy'} ? "" : "checked", $text{'proxy_none'};
printf "<input type=radio name=http_def value=0 %s> \n",
	$gconfig{'http_proxy'} ? "checked" : "";
printf "<input name=http size=35 value=\"%s\"></td> </tr>\n",
	$gconfig{'http_proxy'};

print "<tr> <td nowrap><b>$text{'proxy_ftp'}</b></td>\n";
printf "<td nowrap><input type=radio name=ftp_def value=1 %s> %s\n",
	$gconfig{'ftp_proxy'} ? "" : "checked", $text{'proxy_none'};
printf "<input type=radio name=ftp_def value=0 %s> \n",
	$gconfig{'ftp_proxy'} ? "checked" : "";
printf "<input name=ftp size=35 value=\"%s\"></td> </tr>\n",
	$gconfig{'ftp_proxy'};

print "<tr> <td nowrap><b>$text{'proxy_nofor'}</b></td>\n";
printf "<td nowrap><input name=noproxy size=40 value=\"%s\"></td> </tr>\n",
	$gconfig{'noproxy'};

print "<tr> <td nowrap><b>$text{'proxy_user'}</b></td>\n";
printf "<td><input name=user size=20 value='%s'></td> </tr>\n",
	$gconfig{'proxy_user'};
print "<tr> <td nowrap><b>$text{'proxy_pass'}</b></td>\n";
printf "<td><input type=password name=pass size=20 value='%s'></td> </tr>\n",
	$gconfig{'proxy_pass'};

print "</table></td></tr></table><br>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

07070100012f2a000081e40000000000000002000000013ac038930000040b000000200000000000000000000000000000001f00000003reloc/webmin/edit_referers.cgi    #!/usr/local/bin/perl
# edit_referers.cgi
# Display a list of trusted referers

require './webmin-lib.pl';
&header($text{'referers_title'}, "");
print "<hr>\n";

print $text{'referers_desc'},"<br>\n";
print "<form action=change_referers.cgi>\n";
print "<table>\n";

print "<tr> <td><b>$text{'referers_referer'}</b></td>\n";
printf "<td><input type=radio name=referer value=0 %s> %s\n",
	$gconfig{'referer'} ? '' : 'checked', $text{'yes'};
printf "<input type=radio name=referer value=1 %s> %s</td> </tr>\n",
	$gconfig{'referer'} ? 'checked' : '', $text{'no'};

print "<tr> <td valign=top><b>$text{'referers_list'}</b></td>\n";
print "<td><textarea name=referers rows=5 cols=30>",
      join("\n", split(/\s+/, $gconfig{'referers'})),"</textarea><br>\n";
printf "<input type=checkbox name=referers_none value=1 %s> %s</td> </tr>\n",
	$gconfig{'referers_none'} ? '' : 'checked', $text{'referers_none'};

print "</table>\n";
print "<input type=submit value='$text{'save'}'></form>\n";
print "<hr>\n";
&footer("", $text{'index_return'});

 07070100012f2b000081e40000000000000002000000013ac03892000009a2000000200000000000000000000000000000001e00000003reloc/webmin/edit_session.cgi #!/usr/local/bin/perl
# edit_session.cgi
# Edit session login options

require './webmin-lib.pl';
print "Set-Cookie: sessiontest=1; path=/\n";
&header($text{'session_title'}, "");
print "<hr>\n";
&get_miniserv_config(\%miniserv);

print "$text{'session_desc1'}<p>\n";
print "$text{'session_desc2'}<p>\n";

print "<form action=change_session.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'session_header'}</b></td> </tr>\n";
print "<tr $cb> <td nowrap>\n";

printf "<input type=radio name=passdelay value=0 %s> %s<br>\n",
	$miniserv{'passdelay'} ? '' : 'checked', $text{'session_pdisable'};
printf "<input type=radio name=passdelay value=1 %s> %s<br>\n",
	$miniserv{'passdelay'} ? 'checked' : '', $text{'session_penable'};
printf "&nbsp;&nbsp;&nbsp;<input type=checkbox name=blockhost_on value=1 %s>\n",
	$miniserv{'blockhost_failures'} ? "checked" : "";
print &text('session_blockhost',
	    "<input name=blockhost_failures size=4 value='$miniserv{'blockhost_failures'}'>",
	    "<input name=blockhost_time size=4 value='$miniserv{'blockhost_time'}'>"),"<br>\n";
eval "use Sys::Syslog qw(:DEFAULT setlogsock)";
if (!$@) {
	printf "&nbsp;&nbsp;&nbsp;<input type=checkbox name=syslog value=1 %s> %s\n",
		$miniserv{'syslog'} ? "checked" : "", $text{'session_syslog'};
	}
else {
	print "<input type=hidden name=syslog value='$miniserv{'syslog'}'>\n";
	}
print "<p>\n";

printf "<input type=radio name=session value=0 %s> %s<br>\n",
	!$miniserv{'session'} ? "checked" : "", $text{'session_disable'};
printf "<input type=radio name=session value=1 %s> %s<br>\n",
	$miniserv{'session'} ? "checked" : "", $text{'session_enable'};
printf "&nbsp;&nbsp;&nbsp;<input type=checkbox name=logouttime_on value=1 %s>\n",
	$miniserv{'logouttime'} ? "checked" : "";
print &text('session_logout',
	"<input name=logouttime value='$miniserv{'logouttime'}' size=10>"),"<br>\n";
#printf "&nbsp;&nbsp;&nbsp;<input type=checkbox name=locking value=1 %s>\n",
#	$gconfig{'locking'} ? "checked" : "";
#print "$text{'session_locking'}<br>\n";
print "<p>\n";

printf "<input type=radio name=localauth value=0 %s> %s<br>\n",
	!$miniserv{'localauth'} ? "checked" : "", $text{'session_localoff'};
printf "<input type=radio name=localauth value=1 %s> %s<br>\n",
	$miniserv{'localauth'} ? "checked" : "", $text{'session_localon'};

print "</td> </tr></table><br>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

  07070100012f2c000081e40000000000000002000000013ac0389200000319000000200000000000000000000000000000001a00000003reloc/webmin/edit_ssl.cgi #!/usr/local/bin/perl
# edit_ssl.cgi
# Webserver SSL form

require './webmin-lib.pl';
&header($text{'ssl_title'}, "");
print "<hr>\n";
&get_miniserv_config(\%miniserv);

print $text{'ssl_desc1'},"<p>\n";
print $text{'ssl_desc2'},"<br>\n";

print "<form action=change_ssl.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'ssl_header'}</b></td> </tr>\n";
print "<tr $cb> <td nowrap>\n";
printf "<input type=radio name=ssl value=1 %s>\n",
	$miniserv{'ssl'} ? "checked" : "";
print "$text{'ssl_enable'}<p>\n";
printf "<input type=radio name=ssl value=0 %s>\n",
	$miniserv{'ssl'} ? "" : "checked";
print "$text{'ssl_disable'}<p>\n";
print "</td></tr></table><br>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

   07070100012f2d000081e40000000000000002000000013ac0389300000853000000200000000000000000000000000000002000000003reloc/webmin/edit_startpage.cgi   #!/usr/local/bin/perl
# edit_startpage.cgi
# Startpage config form

require './webmin-lib.pl';
&header($text{'startpage_title'}, "");
print "<hr>\n";

print $text{'startpage_intro'},"<p>\n";

print "<form action=change_startpage.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'startpage_title'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

print "<tr> <td><b>$text{'startpage_nocol'}</b></td> <td>\n";
printf "<input name=nocols_def type=radio value=1 %s> %s\n",
	$gconfig{'nocols'} ? '' : 'checked', $text{'default'};
printf "<input name=nocols_def type=radio value=0 %s>\n",
	$gconfig{'nocols'} ? 'checked' : '';
printf "<input name=nocols size=5 value='%s'></td> </tr>\n",
	$gconfig{'nocols'};

print "<tr> <td><b>$text{'startpage_tabs'}</b></td> <td>\n";
printf "<input name=notabs type=radio value=0 %s> %s\n",
	$gconfig{'notabs'} ? '' : 'checked', $text{'yes'};
printf "<input name=notabs type=radio value=1 %s> %s</td> </tr>\n",
	$gconfig{'notabs'} ? 'checked' : '', $text{'no'};

print "<tr> <td><b>$text{'startpage_deftab'}</b></td> <td>\n";
$cat = defined($gconfig{'deftab'}) ? $gconfig{'deftab'} : 'webmin';
print "<td><select name=deftab>\n";
foreach $t (keys %text) {
	next if ($t !~ /^category_(\S*)$/);
	printf "<option value='%s' %s>%s\n",
		$1, $cat eq $1 ? 'selected' : '', $text{$t};
	}
print "</select></td> </tr>\n";

print "<tr> <td><b>$text{'startpage_alt'}</b></td> <td>\n";
printf "<input name=alt_startpage type=radio value=1 %s> %s\n",
	$gconfig{'alt_startpage'} ? 'checked' : '', $text{'yes'};
printf "<input name=alt_startpage type=radio value=0 %s> %s</td> </tr>\n",
	$gconfig{'alt_startpage'} ? '' : 'checked', $text{'no'};

print "<tr> <td><b>$text{'startpage_gotoone'}</b></td> <td>\n";
printf "<input name=gotoone type=radio value=1 %s> %s\n",
	$gconfig{'gotoone'} ? 'checked' : '', $text{'yes'};
printf "<input name=gotoone type=radio value=0 %s> %s</td> </tr>\n",
	$gconfig{'gotoone'} ? '' : 'checked', $text{'no'};

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

 07070100012f2e000081a40000000000000002000000013ac03893000003e6000000200000000000000000000000000000001d00000003reloc/webmin/edit_syslet.cgi  #!/usr/local/bin/perl
# edit_syslet.cgi
# Configure the automatic download and install of Eazel syslets

require './webmin-lib.pl';
&ReadParse();
&header($text{'syslet_title'}, "");
print "<hr>\n";

print $text{'syslet_desc'},"<br>\n";
print "<form action=change_syslet.cgi>\n";
print "<table>\n";

&get_miniserv_config(\%miniserv);
$auto = ($miniserv{'error_handler_404'} eq '/eazel_download_module.cgi');
print "<tr> <td><b>$text{'syslet_auto'}</b></td>\n";
printf "<td><input type=radio name=auto value=1 %s> %s\n",
	$auto ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=auto value=0 %s> %s</td> </tr>\n",
	$auto ? '' : 'checked', $text{'no'};

print "<tr> <td valign=top><b>$text{'syslet_base'}</b></td>\n";
print "<td><textarea name=syslet_base rows=4 cols=40>",
	join("\n", split(/\s+/, $gconfig{'syslet_base'})),
	"</textarea></td> </tr>\n";

print "</table>\n";
print "<input type=submit value='$text{'save'}'></form>\n";
print "<hr>\n";
&footer("", $text{'index_return'});

  07070100012f2f000081a40000000000000002000000013ac038930000051e000000200000000000000000000000000000001d00000003reloc/webmin/edit_themes.cgi  #!/usr/local/bin/perl
# edit_themes.cgi
# Display all themes, and allow installation of a new one

require './webmin-lib.pl';
&ReadParse();
&header($text{'themes_title'}, "");
print "<hr>\n";

@themes = &list_themes();
if (@themes) {
	print "$text{'themes_desc'}<br>\n";
	print "<form action=change_theme.cgi>\n";
	print "<b>$text{'themes_sel'}</b> <select name=theme>\n";
	foreach $t ( { 'desc' => $text{'themes_default'} }, @themes) {
		printf "<option value='%s' %s>%s\n",
			$t->{'dir'},
			$gconfig{'theme'} eq $t->{'dir'} ? 'selected' : '',
			$t->{'desc'};
		}
	print "</select>\n";
	print "<input type=submit value='$text{'themes_change'}'></form><hr>\n";
	}

print "$text{'themes_installdesc'}<br>\n";
print "<form action=install_theme.cgi enctype=multipart/form-data>\n";
print "<input type=radio name=source value=0 checked> $text{'mods_local'}\n";
print "<input name=file size=40>\n";
print &file_chooser_button("file", 0, 1),"<br>\n";
print "<input type=radio name=source value=1> $text{'mods_uploaded'}\n";
print "<input name=upload type=file size=30><br>\n";
print "<input type=radio name=source value=2> $text{'mods_ftp'}\n";
print "<input name=url size=40><br>\n";
print "<input type=submit value=\"$text{'themes_installok'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

  07070100012f30000081e40000000000000002000000013ac03893000007ce000000200000000000000000000000000000001900000003reloc/webmin/edit_ui.cgi  #!/usr/local/bin/perl
# edit_ui.cgi
# Edit user interface options

require './webmin-lib.pl';
&header($text{'ui_title'}, "");
print "<hr>\n";

print $text{'ui_desc'},"<p>\n";
print "<form action=change_ui.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'ui_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table>\n";

for($i=0; $i<@cs_names; $i++) {
	$cd = $cs_codes[$i];
	print "<tr> <td><b>$cs_names[$i]</b></td>\n";
	printf "<td><input type=radio name=${cd}_def value=1 %s> %s\n",
		defined($gconfig{$cd}) ? "" : "checked",
		$text{'ui_default'};
	printf "&nbsp;&nbsp;<input type=radio name=${cd}_def value=0 %s>\n",
		defined($gconfig{$cd}) ? "checked" : "";
	if ($gconfig{$cd} =~ /(..)(..)(..)/) {
		($r, $g, $b) = ($1, $2, $3);
		}
	else {
		$r = $g = $b = undef;
		}
	print "<font color=#ff0000>R</font>\n";
	print "<input name=${cd}_red size=3 value=\"$r\">\n";
	print "<font color=#00ff00>G</font>\n";
	print "<input name=${cd}_green size=3 value=\"$g\">\n";
	print "<font color=#0000ff>B</font>\n";
	print "<input name=${cd}_blue size=3 value=\"$b\">\n";
	print "</td> </tr>\n";
	}
print "<tr> <td><b>$text{'ui_texttitles'}</b></td>\n";
printf "<td><input type=radio name=texttitles value=1 %s> %s\n",
	$gconfig{'texttitles'} ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=texttitles value=0 %s> %s</td> </tr>\n",
	$gconfig{'texttitles'} ? '' : 'checked', $text{'no'};

print "<tr> <td><b>$text{'ui_sysinfo'}</b></td>\n";
print "<td><select name=sysinfo>\n";
printf "<option value=0 %s> %s\n",
	$gconfig{'sysinfo'} == 0 ? 'selected' : '', $text{'ui_sysinfo0'};
printf "<option value=1 %s> %s\n",
	$gconfig{'sysinfo'} == 1 ? 'selected' : '', $text{'ui_sysinfo1'};
printf "<option value=2 %s> %s\n",
	$gconfig{'sysinfo'} == 2 ? 'selected' : '', $text{'ui_sysinfo2'};
print "</select></td> </tr>\n";

print "</table></td></tr></table><br>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

  07070100012f31000081e40000000000000002000000013ac0389300000669000000200000000000000000000000000000001e00000003reloc/webmin/edit_upgrade.cgi #!/usr/local/bin/perl
# edit_upgrade.cgi
# Display a form for upgrading all of webmin from a tarfile

require './webmin-lib.pl';
&header($text{'upgrade_title'}, "");
print "<hr>\n";

# what kind of install was this?
if (open(MODE, "../install-type")) {
	chop($mode = <MODE>);
	close(MODE);
	}
else {
	chop($pwd = `cd .. ; pwd`);
	if ($pwd eq "/usr/libexec/webmin") {
		$mode = "rpm";
		}
	elsif ($pwd eq "/opt/webmin") {
		$mode = "solaris-pkg";
		}
	else {
		$mode = undef;
		}
	}

if ($mode eq "solaris-pkg") {
	print "<p>$text{'upgrade_esolaris'}<p>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	exit;
	}

print "<table width=100%><tr><td valign=top>\n";
print $text{"upgrade_desc$mode"},"</td><td valign=top>";

print "<form action=upgrade.cgi method=post enctype=multipart/form-data>\n";
print "<input type=hidden name=mode value='$mode'>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'upgrade_title'}</b></td> </tr>\n";
print "<tr $cb> <td>\n";
print "<input type=radio name=source value=0 checked> $text{'upgrade_local'}\n";
print "<input name=file size=40>\n";
print &file_chooser_button("file", 0),"<br>\n";
print "<input type=radio name=source value=1> $text{'upgrade_uploaded'}\n";
print "<input name=upload type=file size=30><br>\n";
if ($mode eq 'caldera') {
	print "<input type=radio name=source value=3> $text{'upgrade_cup'}\n";
	}
else {
	print "<input type=radio name=source value=2> $text{'upgrade_ftp'}\n";
	}
print "</td></tr></table><br>\n";
print "<input type=submit value=\"$text{'upgrade_ok'}\">\n";
print "</form></td></tr></table>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

   07070100015e58000041ed0000000000000001000000023ac03ca700000000000000200000000000000000000000000000001400000003reloc/webmin/images   07070100015e59000081a40000000000000002000000013ac0389200000113000000200000000000000000000000000000001f00000003reloc/webmin/images/access.gif    GIF89a0 0   烫虣櫃fff            !    ,    0 0  很0蔍8死{讬'8yB俫B]z秮:渕}鲯嚨炩!鰧粻Ya倻MJ	酼礧捌 gu@鬡U?賍w咵/羆巷}y剕&z剢巻 憭弾崈棌晧殩瀧ぅⅲ洜~挱疁埓捣祲悎恫【聥炼拦贸皺橇幣派维泄氏斎已虆乇趰*徭乳 庄飶B蝮趱鲼	 ; 07070100015e5a000081a40000000000000002000000013ac03892000008f7000000200000000000000000000000000000002300000003reloc/webmin/images/assignment.gif    GIF89a0 0   妸,>芓ⅱ4⑽|奇苔ⅳ坡尞铂FBL忠ざ啲哣t驸詩妼ff拻斅泊我潭捍劲缄蜾Κぶ谠坡蘮j|恫l觋蘲r|殮満赌倐糧Z堍壹搛墚苍NRL唺"",<忖内以逗元骊洳Μ适斵谲nr転⒛剖念觎vz堞韭紟捘我禚瑲灱>>$揸芏洞JJLbb芫篸~傑掴渎颇帓詵朌廪饥灓緅l骀渲以揪简蜢抖腪Z\帋**揪替钿适拊Ζ晕戊枤詅j芷录贾旨壕吉谮歃诖妿院咎vv堍υ挝虀~堞韭毯簗唵茆怃枛则鲷灋$柭湨<谊寓⒓破FD簬V斠咎乙芎杭脾稼谲破牟对妸援甽瞯ぢ毚jjd猣枓,灋4掇>>T.*<拵の材椅擱N\^Zt戮tnn墚挝ぎ骀&&$谥苁翁矈瑸灉rv躾~荥ff軅嗆阪鋻栐^^\..殲驭恫劄濴铈祛钿种元怄錇⒃年贶忖远对揶鋿卢圆泊乙元谮叹短RRT抟芎禾觋涫侍\侣膾捈NJT觐熠帜竞t伯t伯词嫣垄疾苍廒躵r躾z芤异倐軖捲殮詊j懿布侣迢鲷势あ⒃ⅱ<逗紓偰抖悸铺骀祢螋适崔捃种腇FL破虋娷铑旌涸觋飒!Made with GIMP ,    0 0   碋盃A[2*\劝a檭%($\!佀NL CIRGVC拉Y#2緗甸冤A辢*a厂蠠@}酢買	D-攽3遣=(衆媚嘍we撼刦0},N T9曍甘V/3",`郹\'_赔&柡眗I拆H樲埞衊]琥-軕锗牋}倲E歘x0q
顳%L∶ 儮ET踆袍'U35Eydb毌棙b蜳 覊(罗$RL稢p5
 亣瘙綝紗J歰鐪$腊狩胬E1Q巭:S ↗5Tr1 }攁NH-旍P[敳M)ZW8别"/NLB擯r!&np詷<笄3既菷(n@[NHs4蟎闫
fXaEcDlP '蕄4敯3P<P@s渁4a凴榥
j(嫙8~嚻,~剢	52zh:Q)LL汵磃|V揁~%獂>訴r籷/IA鵥/%怰秾C凮鋔惐刽/Mt褽!袏RN'箲z牘剽u-鐪3E9袖ZX誸 桕2-u揮u*枺R5薷聜竊%W爊'-郦k=:x銔-`;.e9褏z鳪-O
/暶-鄶3C爐药緷旙蝨.u呠坍讠8|("(旦/瀹8.+k滨钕xu(A,,,C5绗+扔纍*M傫裮l觿翟b-m注蔤籔Hv赵8eá6K脏;]洴╪	D9鍞螟LL}PD迹b8攦耷8橒
行-挵5(g鷜M,b槪詳!錁C藞蔇澈*攓2几!X'胸〧4渱釪3%05gA'袆3$73E33煬@
銬3懈M+袌5⒘Z亐X)ZA@*M)+5嶋	0X嶠0	崞F鋹j2
a籖責恅薢壔令譬%嶶8d 敇菮䴓hH证㎡誴 B懱8$#兪屦F5ωzUc6	秶}錢纐	YL赨NG攋M鋲:L瘟嘰UDb1)NQ萋喐"
&J(V0-q 0' t#D錅2.	Lㄅ-G:肤継-JQ哯繟;賊	蝗P荋-騲穝翽耎z陯..a>錉楞]苨渻琱5猫B骛gK嫝hv墱7	Qe0賒I菷%t 较$胸仄2湚R萚豖/Jh淏
庩0"	Vr诟T4N20e宭cz`紶鷤Rx鈠BZ捜|@10a蠧犘実D橡1(榿#翤T"rR!+h匫0唓
a鈩音Hf`'Z15!藹4諱 ¨俧D"|1唂`	9	鰊%qk ; 07070100015e5b000081a40000000000000002000000013ac03892000001de000000200000000000000000000000000000001d00000003reloc/webmin/images/bind.gif  GIF89a0 0   fff烫   櫃         !    ,    0 0  很0独璨t龜*Ｓ]榃ミ鎾*倬+薥=w1}"赿'$nN筏蓛順=塼*X嫬^砡*@鰱穏q椝nw尊q\m纂v;铽醎|{~y乗
媶噝k{\峿弾抭妺潟漻] 牉寠R寉灆￢廠ぅ┉ごT潹颅衰拦捛夏T 患蕾召呜僦棕浊滂煦赕怃麴锺篪蝥叔kg磔?:濧啌hn猞3j|@预C"!挙挾T
ftl	r@hf股sB蜝;骝tJQ琝哛舰t檎疪眾倞E,Pc奞骃3ァ篎E5+U〈襃,卜6J洛p簣v耦銌P演谯7p=yOIqB倫V茱q@	C秝佼嗤K慈"膱藭<% ;  07070100015e5c000081a40000000000000002000000013ac038920000058c000000200000000000000000000000000000001b00000003reloc/webmin/images/ca.gif    GIF89a0 0   拻屄麓戽文藓祛谔曛迢贶媸嫁敬聗t尧斘殧聠|緙t螢斊妱馄际拕诙獪姚滫蜾緕t暌穆倈蕭屾夷秄d要溒巹蕱岒孳礻谔簉l簐l秊d钷增钿诓ゆ萍之蜾蕩勨庠骀苤痔谮潭冬灁破简贶茊|蕷斁vl簄d饴崔拊殮攤倈妸勵钿挹桃灁鲻旌冬伯な始灇攷巹挝尿蜾枛屾庠zzt揪处rnl乙膥~t唵|拰ⅱ湲妴|廪跃捍觋苻尢VVT帄劜菠rrl铑苕嬖挝计拼坡词萍椅奈始种啮鲣铌芎含殮尪铂膊敬拵劍蝾洚獪ⅱ敧獪赕!Made with GIMP !
  ,    0 0  䜣們剠唶垑妺實帍悜挀棙櫄洔潪ⅲぅН棷	
悲 !"#$伤%&'()*妫+,&"-:牋 (Zx牀l&8pX羛:V槝餬﹁CF2)&L桊:
!&垁@♂4j馗:v卬=J(hH虑 Ai鑑憥*饬Θ"0屫8BbF2萷*陼$兀,)襳 2eZ霂2坤I <鮢\奃&'^l-闩巺`槻(b恇Bw 馕恜r1'PⅫ 垖窼═檬X藏D  M~訮bC	斊yE莸筡V驲PA肍,GjX$P狜YⅩ葘'Nrc俥K(磇pR篴&18)谣鼴苿1A1 	蠭G9^恅	!vx 劉!VQ}朾@D Xq	1|O鼝EbDAA,帒"D䦛C扊ActL %1	歟鐪Y8
=`娐e!A艌Qe萡3 aH@S信塯 &)a)f0i╭3勓PtqP槷1僘偠%>8扡愌 3碤^h覄A炩a秆p茑6鵂Z
p哤>眒褖娅%潌脗濧K蕬S崅eP鹉6L╞vGVD丗∧P4HA 4虘着Q] 毘Dq憛嚈Q [0撢峳n@QrD僚2,?*f
[t憛竌帡栒Q嘳2,粚f轅Ba蠤>,K
j4悁けmiZ譭D璿!>p-宓JD+q鴮X膩[嫍(V彝瞬烨e躹硄览乳迕L奄鴓n攣窶
僾5DArF丟 	MP邪+4躳qAT拺掮X蛏砀 %槛铥锢' ;07070100015e5d000081a40000000000000002000000013ac038920000071c000000200000000000000000000000000000002300000003reloc/webmin/images/categories.gif    GIF89a0 0   倐劸录>B<Βb\忖鋇b芤以帓尞铂&&$蝌鬊B魊r芪颇谮軒捲倐躵rt觋於颤RR簪⒃22艟杭vz軉娷势黌Z苁侍忖黬j軞殰隰

坡腞RTΚぺ以汉664殮詖ztjjl赈湮吸廒軂~軚枖膊扎鲷挝虃傸蝾飒::魭廃ZZNNL怄鋐f芤衷恫琂J魊r鼥桙揪處幵>><~zt唺劼颇枖鲻艮捃铑靂V舄︳凭妿詊j
破漠rjd~z绿JJDⅵfd驸苤姨拻尣洞..,FF粑侍挹詵栐倖躾vt铌銿V:6艟炯z~軍娫Z^軞灉黕^\谥>:4灇黱nl廪苤翁妴>>鬪^黤f鼁v呼帋
NN滢撄::<唵剉v躹vtΖ66翩纥nn躒VT灋援nn鼅~涸抖磣~|VNL赕.2,侣腷bd膊绰捍瑉z|bb荟螋FB魭捲VR魖z荥事膎jl殩斠翁唫>:翩驿种詖r鼩桙B><伯Δ沂虇嗆^^転灉拗詊f鼈~

铘ZZ鼅z|鲻
破蘆JL驸渲以拻斵谲铌鞀娷廪!Made with GIMP !   ,    0 0   	H盃羶*\劝∶FiE雹艐冄。菑 ;4艈P蘍`C
0a螉i羆x檾厂蠠 ,&翿 #4侺-`湀`髧繠9'欩髧?W|輼$壢>9+呴A 蜥虅	艎谷c	f9孅拎媷01i宗PG
Dy仍S@憿紡郪K!QEta钮#Ifご镾徻4s朕墱鋻}ジ疋巩彀-y穝歅0 1ズ蹼丿b麋件#_fw>豍}{6吻d!贱 锌?愤xTSz袅T遼疱犅0衿恆L恆儑膏|簘_L"尸桠癲 ~祉Vc6a寢)$竽+L虻оz4呯/鑱&兰垁D賌P瑯2T2z|@*
Y%*23[$眴)E?>x&毼╞
綘!0+ば 1钌殄h)[計	U`!,, @ t猓I*x*q
.楈驄%﨟蘌!L殍&落J蔪夷0w$盄2e 慫jM1Qe0!,噩畴眹 ,鉅Ga1HM@∨ "剓鹐<猟扒紷` 矱;迠O钁&悄袐擳嶫.LX簶*;陳撌^旬圛)愀0O<2s屠|x/熿今Z燩	渉	_p鈮'溙	,iˋU-%H@jh璠挛m@I\爢D鄝#話6l`"悇癓"G86VX羴p惤8U G$四qG酝D A\`EＴ⑵26萡竛9l爢lp 8b@ qXl鄟-!B"@xpхF抿慏录笏G=籼 9虶焲n5<恩聾覒?~K?均槌腰糇o绡肯 `'@䁖 ,壤A犂 
粹0@0楢
R爟`+<亓
Z袃揽簮! ;07070100015e5e000081a40000000000000002000000013ac03892000008ff000000200000000000000000000000000000001d00000003reloc/webmin/images/icon.gif  GIF89a0 0   >>>zzz揪疚问揶陉赕妸姃拻蝌頡RP灋...鲻騜bb&&&
侣虏伯谮"""jjj破露恫骀恸种褺BBnnn唵哣VV汉篟NN
治暑铌~vr适柒挹NNN拨


坡篰VR*倐偤勃竞并枛戮衡廪vvr露惨势666拪&nfb凭禢FDΖ⑩谮乙抑椅赕釬FF纹潞谥*&&^^\赈獠事掘铌倆x铌骣蝌挹趾懂驸蘧伯寒
22.殮歳rn凭綽^^伯***椅莆事憾帋嶫JJ谝
拗枝灇fff:2.B>>*""rjb妭~"
拵孼RN椅jb^潞簴枛汉翰参势谥6.*ZNN径猖灇殏~|
忖"~~~铑睥ⅱ^ZX示局乙
.*&凭浩侣赕嫖破ZZZ&NJJ事戮抖问述鳅
势柒揶戮径伯势漫rnn枎奲ZT示侯骀翰谮径沂舒忖~zzzvvf^Z坪"挹诰憾2.+&"njj妴.&!F>;温骆揶觋赕骀治


潞

VRR倂r:66殩柧膊铌露
椅饰挝适势戮
枓嶸NNrff灑殮谝肄揶蝌蝣鲻蝾rrr""

种222懂
vvvf^^膊矑妸.**,    0 0   	H癭*\萈灔DJ湼p潯D3j敯硈5奣X菮F簴蓃嗖S畾xctJ%t-E蚶
t十<A擧e葴-%乂迨ycX]佹	𒴜&D鞘S	W<,.Fg 彻r 海"-ib勵荻煥巌伻O煉3'墮笵GJ07銟D筬 Q鵤`啼4!b嬔齚懅8腊錔@捫联,:,羄涟侣抩嶇nAk!瘣 *dU刷'\瑈划9(t:	瞕qTf欮q"A轐4f輐噄(0僗h2莑欨X怫万娝4x叞裁*&仞缼歺c.兇見,緺'鬬
 Lt9(!2珳僚贒 缷┐SH#\膦#筪膿螊 衧嶥态驕s<让M弇@瘼25Q鴃 Tl袉* 蒒7-搫'忍aQBq-骉缊uG 2P&悇0剮pk溔5$9
慙騀 雳騁=`翃{D*23鑻.,剮9辒蛟90RNq6憦觝0C2 'l2* ,fQ!挻rE#鏉vD犕D+蚣c&& @ $ ┰愋20B<贪餕
I&騮餗P@1$ ", 瘩%iGA铇蒆"-]|皫&2`<o48蠳眉! 0*$9軽塑侶?眗嘥翆&ц1o&u萩!x1Q,:緲<挏脠5秳	嶸X丆Μ厑4;x矁类3(h繠 &wp"翣#J:" O騹鈦2蠨態
雬80碶3cP窦"钄!1|hq<#┧餋緿$W+((q:堲隳7@q1$ #琀/矣%祼9打衠%袄屡墵#C獙BBp騆*$"嘆j庮$P3M<駜Pd D`h羺v @PP0 !L笅@卺)! "$#昳.畝圵赑7*1	#l
m$4佋cB.d俠Ytwkb篐2淍u涿m8Ab鄠1軅[`踿A塿(dD 4T4衳2v<C/jCt辔q嵩亐,`!<孊#Kt(%Fe6D黊員$"!覉&(!+火D
奻3q  xDc Lo 魅@_|2X"x皟]槒孛
AA'# 0!4|饏゛v`B袗x蚋FU腊巂&甯E0n仹$t#碎嗔褜悩%鐯	馄(@J琅 G R 3憚O灨'4棇\栘(L翀+,亄83媪峍蠵@矌+餽$ `#P駞V衼{叞9 qa剽H@'A:.xbEy
3樎抚晜笺?谺傅孌tC行视諈p壺A,q
a鵂Jm隑> F鵂痐8┳4``)t懽2浒瘶A洃,c薁leS郆蚸$+ ; 07070100015e5f000081a40000000000000002000000013ac0389200000195000000200000000000000000000000000000001d00000003reloc/webmin/images/lang.gif  GIF89a0 0      @ ) WQ!Made with GIMP !   ,    0 0  䎬很0蔍k8g鄞縙p昩卬蠚.4=讀y<媵@_#(嵗
p#3z嵱玽媘竊m6L杬髓铒;h惠`^苑⺁zosqr wrJ俹~~v厙q團搈彁亶晄檥湠彂ォv灚簢埄＊爞激箍硙綗抆蕳畽侨#^栄バ由u0壯v櫂嗆塼咄噡妳辩夀2^r出wt袼0视顬⒎f:{婶u沇瓲羛R鏚災囮鶵鳬悷祶;2じQ>囂Bt櫞E豍)T 
8zN!恞捍閯"旿Ug酮R}  ;   07070100015e60000081a40000000000000002000000013ac03892000001d6000000200000000000000000000000000000001c00000003reloc/webmin/images/log.gif   GIF89a0 0   櫃檉ff烫            !   ,    0 0  㧏	18[汹麪h$xㄣ卄Yv芎0諍'z7ZDg;3IQ墪s4q愙(ザi+C惠c
bo]韪7Lg\y疓/鷒$zhwak唦#:僫N"妏寍墤巃y敄"槒D慶w嶥6廳V:猺6X圥矋~瓭櫒 海朅秞皾杭絅l9萴
材灯.,VI,汜Y謉T餭X>鎚遺o)VKA旺鏝*W歶7綺>1菩TA#*=冟湬酕Wwh,4駧G捙B塍缪J嫯4籏5杉僤憯=Z瀌鰘4"'.mM3櫹檱j厷7區蔶掙>D'4%#r臛_e8J2親g:窘86c%N堬T 馵霎粤幝S掆
i0;o 赦 錌嬑燙M鶥 ;  07070100015e61000081a40000000000000002000000013ac0389200000119000000200000000000000000000000000000001d00000003reloc/webmin/images/mods.gif  GIF89a0 0         !    ,    0 0  陝彥隧蹿嫵<]'勗	阘B脹畂珜/,荀貛A鶭I墮駠L3'缄~I-洅侫焔K?Ie髖
猚@堺薝+:禽'龅#稧嗮g677耫瓒(E莚 y7┓夢塀	绱EH姌4$6	嚻4﹤魂塲{{+;k 麭苒p|<鬨l'G龛'濤:衍鞬璟毊佥驡M僰<_3韢oL穙m/犂4P  ;   07070100015e62000081a40000000000000002000000013ac0389200000189000000200000000000000000000000000000001b00000003reloc/webmin/images/os.gif    GIF89a0 0   烫蹄沣櫃   fff      !    ,    0 0  很0蔍8雿冪犫峝Ze殲庩虹+陷l邟 茳<<亨瓽~Xt廆a﹍拵hRJ6毕鑄7
o郃V捩j
-dr+-莾iwk[en{}:F僯wbc噝mpfF巎`Qdp咼n慤櫃vZyT濨~揝棩w]﹫獆宨a叓祿焎骇溂渱焵０勀終o珤罯廩杜溃箰緫曅{梩Ox矓磡G;甄憔O^傜l嘭:鐢5趙璖/?x嘔卅c&齋xfY紘絷%Op芲☆-俹慐X!溔翑fJ娅銗"!2昚DW!NNQAI'?%q蒫q硿Q,!逽*b瞻c'  ;   07070100015e63000081a40000000000000002000000013ac03892000000d6000000200000000000000000000000000000001e00000003reloc/webmin/images/proxy.gif GIF89a0 0     烫虣櫃fff         !    ,    0 0  很0寿谔帉H炶i示p穝m+瞽辄'`pp幦$扨T:廘蒔Fk#毤,懟紑3g馰叟8灛跺x稡x%oo|O乭u}/凬宊}VM抏6~櫄洑=98ⅳ、Дク<舶煷7返	 ;  07070100015e64000081a40000000000000002000000013ac038920000033b000000200000000000000000000000000000002100000003reloc/webmin/images/referers.gif  GIF89a0 0   UU  瞠乔泯⺄T螬帋88駌r鮭q镡恻飴嶖破99瘿!Made with GIMP ,    0 0    巇i瀐J偁1p∞kkろ鈬SDS)傺@6 @a兩V賛82Z瓎闚COQ?寶$mp
\Tw|zp"M>".G>p;B⿻y潨?	-??K洭"?."?稨?S啦L "&熒D砸MO盐#%M凥:蜐ty
D孖鍉噘ň贻鳚UW芶3桹@倀宒訯>氺楪饒抿羧(A*卖C 扗﨟"x鐯e%0狋 IJ奃茒h蠠PnHK蔜┓QX	/猆 H撀胤﹩f蘹邡'靲,`c孶蹛+瓽拦G瑳[酽旑 迌r[氨牎0-d4烈Bw嵆8P摷佡 辡qb悰祒y劵A,+#齿既$抑卩q剼82bo7谳6丵廍傖Z圕緕謵7尝鹾Zp淶糰6=d[剁%裀 浰瞕#庛飌$9H本 1xDB`氲'遅s塿	G焵迧#Y80寪謧Z堈Wz铡ZW昲鈮(Θ鈯,(N	U答 1#6覉o獗濱>$B0@鞶h 惄賟M挾dhJ嘌6鋊秏欏s?Z 曶;5a&氶	f憐a莄湼9W蜁0鐫疙蓻熦 'F怗(Zá剟  ; 07070100015e65000081a40000000000000002000000013ac03892000006a9000000200000000000000000000000000000002000000003reloc/webmin/images/session.gif   GIF89a0 0   揞禺瞀む锃Δ邼浹ⅰ诂飙町滗曛诸lj瞉[榊W慬Y昳g璳i痁Y攭嗋ON俙^漗]沄T峍U崨橚湙後胱蛛崑蠐愘ts⿰埵枖釢涥晸荸殬鍥欓棔釘捾拹賹娢憥拽┃é│┃屙滗渖噬缮扇热仕是惹壬仁适栝桠忖掏探窘臀湍拍谅疗瞧牌沛骀哙擗┄煙煀媻灍瀴墘帋巭~ぅ拺厖厤帊氨皾潩寣寴槝垐垍唴實寛増唵啅悘ゥ妷挀拺憫帍＃儌|||剠劒儎儵觋晏翁媚寐寐换痪揪患坏档购功Е究痉阜览赖兜冀己缓腹缚揽後屯屠晾媽嫇敁晼暃洓弿彺荡洔洤ě、殭￥１北梃栲徉吵潮脖鞍岸范殚殁汊唤凰趟门眠哌祆扃珑tutooolmlttt_`_hhhWWWaaa圹坂噜沣阄衔撩刘貂彐錷mmsssnonefez{zrsr铑铍腚巧怯杂岩烟烫苟贡舶踩侨殛榛够卑蓖送渤渤闯}~}jkjqqqěó剟劥创徕岑敂敤Θ媚淌掏掏罩赵赵佑又字乙艺照矣以栽种!Made with GIMP !   ,    0 0   	H盃羶*\劝∶#J淗雹艐3j苋Q
8@0Y@Z"鶂繪8I@'O;K> a
.`葼a肦<| "務玐砠ナ+U#H0qE
+X磒F3h甭Ft礅瓄.9h桫x=| 徟峽蛎皲>$鈉萪!B<o聏枰>)b娜#F惾6遥u碇眅胫#蒼軯zYb	m躆湸~%姅)T猉2K-[竧耱L1c叁)c嫣x*h襵Q虫	6e芗佊:N9r0。;L鄳Gz炝GJ"Hu葬G{衙J$!1tgD勮V萵FF琿"hqf$2"z,翲#R8偳#怐"	nD6	%块#,!岠a^材榒馇]2翯慐f$檍&&妉"'"Af涗╃瀨蚬G滜翂屏Id' 愧6( j((R)蛉々(◢F
$懩K$聊⺶$q[k垔J*│茩*h舛&態"彀[瑵&p恃毘尉)-瞼趃"妳郪H唗腠粪傐姢攔鈭齉$摳忸火+挗,比2-吃bK憹躡氕忔舒疁J r菢団20隶J趧*oQ埑h姊饲 ,踩籋j~H<[溣fLnd蔿騜笸笽+龊g//佬a囱Ks0荐歴溌X'L11爬q'@４农猝2瞚>+Z僉2c򳯎#K3_W雽'鍸mw懧<S%蠺14cx3显'()v溣P#沾3(滍墆耻r;橇5譧搷6踈肕6躭惩贶\硩6賎s5碿钯枰7趚1疝tＫ橹t僊5稂笮G/訵o ;   07070100015e66000081a40000000000000002000000013ac038920000016c000000200000000000000000000000000000001c00000003reloc/webmin/images/ssl.gif   GIF89a0 0   櫃!Made with GIMP !    ,    0 0  﨑g哥渀,糦㏕[s^)譮u鎾a)鬒镶胛芣毹杤燶$V)>4B飿(JC郅期o{a^ 鏬/膘[8继#7忡翮b６烛5鰡敢WUyi〣籁	i扞妲Y7賾4Dd7值傜#攝RK掆R椨(FrHBg+腻H)s$艣x,奫獆
儇=篻瓬l芾氀汑形)靀9换9<碱X蛧憢*"%掘崥嘖毯R,牡"4p$iO2?妭#孒~向`QGh箨嶼'vF渽题脬rm鑋短孞	  ;07070100015e67000081a40000000000000002000000013ac03892000005e7000000200000000000000000000000000000002200000003reloc/webmin/images/startpage.gif GIF89a0 0         =S&(&'('(((121787PQPWYW`b`aaajnjmn飐sswx飜 焫zxy}yz|z~倊凁亙亜唲墜墛嶐嫀媽姢實寫憫敆敂楍槝槡湚灐灋◎煛煚牏牐ィＮ乏4ИЖǐ专ǐ颞┈┇璵朝伯撇挡驳撞刁蹈档沟陡抖苟饭犯桓构p篴a航汉竞豢患考伎丶酷伎艟辆柯坷美僚撩泼那呐膳粕破韶粕馄婶巧侨嗜忍热锑脱臀盐杏行淤杏跣孕颜蜒兆颜枰找抑从子载哉卣召僦僦众肿谧刿刭苜佥仝葳谳阙蒽谳鲔捋苓苘嘬萼萼汔噤嚆玟溏滗琏滂溴殄骈骀赕桁栝黹觐觌镫祓祉耥铖铑聍铗铑螋锺镳麴褊桉躐蝣蝮躞篥趑鳅鲼气葳!Made with GIMP !
  ,    0 0   	H盃羶*L揉 '<瞤`XfT,H  懄 `% ▓		p窻J$抦噜0ο烜}&:兦%0敎郠)廌Ja淧$ㄕ玐锄剄焹r55R 孲!呜倉pt鴍PN	1(|D粪";霺b侣:V,Ahe墪D媵塧e嶢?t漪3/w碛嚦/擟d卬碒A8 誦1O--R见乇凔樅9暌'穆;杺u件鋷;A镡蔣瘇}笠r'r彈C1)冈\ 5餤E	$W齍俫絜'杽,4(x AM\鑳悹園$犘腒X`唘 	0z@俈T.($H褺&$
E癆i,挏kl%w龎!苬3C>敡慇姞餙$bA聴M4亗m*2脡9!Oh!怐hy捾
ST4嶥%~$+T銱%?(擜sf睪rv〞%傟亂撮p^劼)驭豬隌坸V&蝒稥愋"4 4襙-T5H謩d齼@B拃EjbhQ朼級B漥"w剳3愋沫v臖$'P:|PF$4梾$嚻1墍袛でT倳剱	5^鸻
妕|恓 胟2u';饫 峆E颊鶄扠h\W竀g@ ; 07070100015e68000081a40000000000000002000000013ac038920000039a000000200000000000000000000000000000001f00000003reloc/webmin/images/syslet.gif    GIF89a0 0   鲻乔臠灙#嚂
z姮拷6憹b帜n,_茌蒈蔭yj~{傸鈧倞{*bb`枎r忖鈯豢岫&VVVB}~~srn畮764FFE+*'乮範1跚)p\r俈F之"l{A垞翝fs`l技PYr|M墡嶼唻JZ梃绋瘃瘳!Made with GIMP !  ? ,    0 0  焢H,徣蒷:熜╰J璟瑅隧zBa<6斚s璶煏Y^@仉蚧>锨I	v
垑妺實奊		枟棛湜灅煗F	殫巢当稥揪嚼烤乃燎柿罞	獨苒丬D姉耱 篑D 8臓!D埜小"2 褌#j憟 9侱莾7裳`D茦h賏	'Fpd-鬌1≒"よ悽橐PO敇膴淜2ej*嶼G淍盛ih綂秴YCp嵩碊X敪籺韸[ü`勥+H餧6镛*鎇襻蒒U4⒆e蓴+穟J磆糃^皜薄u)侄p]柞甤瑣押第.埨x!k_;k崈鸹伻 3L肛緘姷躘sw1]6嵉唹t茖疸籬ay{-膹Q辭6豴脋鸜新!孭侌Y
!枨`$崘Z 聠m栳v""~HJ朄	鈯#n"28#	G:荑銖@夈;馉r燘	4i	N>$擬RI煨@Gv%<~殄慳"`:,懥 > C檊$檂9鐫]6″ |*PC~*0
琛圍墾爨瑁怓*椁弤a楗榝v觊 ;  07070100015e69000081a40000000000000002000000013ac038920000079a000000200000000000000000000000000000001f00000003reloc/webmin/images/themes.gif    GIF89a0 0   Frv蚱*问尉歊婢.ⅱ闚~灋炓种V帓殮**掴22&>Bnn觐.NN帓庢2恫妾>>>BB鰚~䴙汘&&夂6>fj枛叶抖bR欶F鲫襷挅栮铌NNN壕簙~~帋庮蝾VV鯲VVjnjF:拨jV拻廅ZZ鯺殮蝣驓桛俲偩戮乙謏势伯666揶䏝逗^^^NN婧忽甞^^娐坡鷙捕拗治牺
^b^谮鰊rnrjf忖

:^^破茊妴r捕"66谵趂f㳠jj...~z>B>捕测驸揪蝪zv66鯮R鰂jf适为唵嗈谵师Fjj抑妴憾揪JJNvv26怄*FF>>鲒种膊并Β
坡苙fff众謿灇饰师Ζ倐剖乞蝣VNN驸>:>:6rr䝼倐鲻::鲛揶揪
庵椅~z~挝蜰倖灑瀊fb骀鎛Z巒nnFvz..v抖n捕㳠f㖞V>jjJJ:::骀侣撇抖汉緍rv殮

种诸铑ZZ掴鲻.骀䲣拻zvv倊破忠枝ⅵFB鰥妸汉簡傼廪
廒!Made with GIMP !   ,    0 0   	H盃羶*\劝∶殊D雹艐|膜嚽 C鲟40zT0榖$S73t栊埫螣@僇(3N&毙馽$m: IL0侅銹B嫋.嵈Q垉凢呞旒@41)X&E?甛艍撑訆$iB5萳衎d.\@Z!sd狇鬍&'箁韢!鳘繦p+嫼l#)xBt`/ A5侞Nx';儹!u{嶓缥I盵爌5砶$4漫O~<D椒~觨涳T⿸{麡襨4 S2囘vL6@%傯 {1臨墑,厃L(曥`UL轳譥冾耟f防:栲!> 
噟伳$* &;傝}&^wHp=鑋卽$YJ6ヾ%-邜C7"}	瞼"MVB#N* 02^M~馉鏆l顿曍!獉)罎x鈟`Mn鲩Y繯榩-"* 颇& T  j 洘|鈌洳-w@	嬯┹!lN	!餻`羳T蹵w毯&|黀I〨藹@'蘞l磞 餈H0@  	 &	疳|{*禯熫) 蠥G秎. KB
@B
蜱羖R獖|0Rj"0n" &髝駳驖{嫫窓2i躘{U)适+鳈rk湵5k,逝~枌隉='3%次K蚮*)4鳒
碢軔$G蛃｀4P	p-eS}糍,笮B洜U0 {≒2&'i蚷⑧e鼟/z 3 啛Zu茘o'*:珺vp蕾宲蜏x&黎褉|领6覹椠褸(0B蜧袅з^ 繅EげP%澑沸	,<迉' 丏'$餅軳颪调邚*
溼n 蠟异3擀<@!	$癭遦@鬋展螹峜$1|!#&`牽o~耎驮柪衢FN怐屙lM!妏俕Av冐勴挿僀.刬x 
Fp獆A脫QeTS鉪H綹H(Bv埡刲"!嗥w=8*趤衫(B	洏,(/<0鳥崤正	0PIB`J ;  07070100015e6a000081a40000000000000002000000013ac0389200000616000000200000000000000000000000000000001b00000003reloc/webmin/images/ui.gif    GIF89a0 0   剛勀录DBD湤窜怃dbd湤墁布桃軇喬$"$tv磾挃DF鋖rtあ寄卖春腡RT趄粼音424氖虒幖お磾殼寠勳觎膢~谲|z|悸蘢f琓V<:<DFtあjl床粼姨湠,*,敀碶Z\剨
LJL溻泊tr軘枻trtお技杭苴浃Υ砸茕怃鼘婁$"<敄旤42T淌态湚滌铎床哪绿うご洞tv劕季誊隰剢斈颇dfdう$&$|~碶Z芴武TVT464寧寍~|<><lnl灾診^\寧LNLtvt季架掬滏涮翁瑴灛炊哪铺剢勀履DFDdbl寠詔v臄挏钠鲷寠岇牯苻<:Dあ拒砸詼汓TV魌r魧庺,.,灾茳湠湰床架陟敄祛簸Μ炊激$&,TV\46<|~刲nt\^d寧LNTtv|季匿骒涛袁炊!Made with GIMP !   ,    0 0   	Hp   
潋 槃)(淗燕	#\2].	`寳% aT葝(hPE乷MC齕  " @1衕罤>|虉t酬D燰砵菔但庄`o鰄:6,X)
H)"EJ[稑滽+;x箨菟矾呖yh燗懜便莯* a鴓c膧 A绨;FB嘵bd	i#尋Y秃ukCFc4%P}缒	DhGS銬&8 鈖疳h:=>\脹釄(/Bp盍9過婀7"纖o~|麒渥涀 燌濏琳嚻	j鋺	o鋺莭g軤7x酔zh酔hDqGX鑇E`!v╛毴w(燖
^y鋪H侲銺衙 RD5Bgyl╚~=潿莇黁xG5黀谿_2罝撳0鏄!B毲+RD爛鄺堠1&y, 卨饶蠧'=魀F漷r帪!i揃`楗涼P!燦z鍈hxqC.'%x=1a崧pI荐阫O*l= 涟" ,?PGr. 茿77(w洹泄嚻#託鲉捵:k吖谩'爘Ak孃uk字w苶蚬 饸K"r龝y纘8hmFL+\畝軦羃5衲5Ix郃T1^tE04両l1Vh-SF'绗笪!>齭蠨m葱H濘袮颂3WFe1CTT粽Xg謀w眭譧-6 ;  07070100015e6b000081a40000000000000002000000013ac03892000000b8000000200000000000000000000000000000002000000003reloc/webmin/images/upgrade.gif   GIF89a0 0      !Made with GIMP !
   ,    0 0  w剰┧!蘇|i輩器I姫撕
M庪</TB〃X 憳錼鍇劲:籦o陔q	#<>徱j硓|脅r鹽o诚y䴙H8鑣hS'法YG)W  ;07070100012f32000081e40000000000000002000000013ac03892000007df000000200000000000000000000000000000001700000003reloc/webmin/index.cgi    #!/usr/local/bin/perl
# index.cgi
# Display a table of icons for different types of webmin configuration

require './webmin-lib.pl';
&header($text{'index_title'}, "", undef, 0, 1);
print "<hr>\n";
%access = &get_module_acl();

@wlinks = ( "edit_access.cgi", "edit_bind.cgi", "edit_log.cgi",
	    "edit_proxy.cgi", "edit_ui.cgi", "edit_mods.cgi",
	    "edit_os.cgi", "edit_lang.cgi", "edit_startpage.cgi",
	    "edit_upgrade.cgi", "edit_session.cgi", "edit_assignment.cgi",
	    "edit_categories.cgi", "edit_themes.cgi", "edit_referers.cgi" );
@wtitles = ( $text{'access_title'}, $text{'bind_title'},
	     $text{'log_title'}, $text{'proxy_title'},
	     $text{'ui_title'}, $text{'mods_title'},
	     $text{'os_title'}, $text{'lang_title'},
	     $text{'startpage_title'}, $text{'upgrade_title'},
	     $text{'session_title'}, $text{'assignment_title'},
	     $text{'categories_title'}, $text{'themes_title'},
	     $text{'referers_title'} );
@wicons = ( "images/access.gif", "images/bind.gif", "images/log.gif",
	    "images/proxy.gif", "images/ui.gif", "images/mods.gif",
	    "images/os.gif", "images/lang.gif", "images/startpage.gif",
            "images/upgrade.gif", "images/session.gif",
	    "images/assignment.gif", "images/categories.gif",
	    "images/themes.gif", "images/referers.gif" );
if ($gconfig{'eazel'}) {
	push(@wlinks, "edit_syslet.cgi");
	push(@wtitles, $text{'syslet_title'});
	push(@wicons, "images/syslet.gif");
	}
eval "use Net::SSLeay";
if (!$@) {
	# Add icon for SSL
	push(@wlinks, "edit_ssl.cgi", "edit_ca.cgi");
	push(@wtitles, $text{'ssl_title'}, $text{'ca_title'});
	push(@wicons, "images/ssl.gif", "images/ca.gif");
	}

if ($access{'allow'}) {
	map { $allow{$_}++ } split(/\s+/, $access{'allow'});
	for($i=0; $i<@wlinks; $i++) {
		$wlinks[$i] =~ /edit_(\S+)\.cgi/;
		if (!$allow{$1}) {
			splice(@wlinks, $i, 1);
			splice(@wtitles, $i, 1);
			splice(@wicons, $i, 1);
			$i--;
			}
		}
	}
&icons_table(\@wlinks, \@wtitles, \@wicons);

print "<hr>\n";
&footer("/", $text{'index'});

 07070100012f33000081e40000000000000002000000013ac0389200001963000000200000000000000000000000000000001d00000003reloc/webmin/install_mod.cgi  #!/usr/local/bin/perl
# install_mod.cgi
# Download and install a webmin module

require './webmin-lib.pl';
if ($ENV{REQUEST_METHOD} eq "POST") { &ReadParseMime(); }
else { &ReadParse(); $no_upload = 1; }

if ($in{'source'} == 0) {
	# from local file
	&error_setup(&text('install_err1', $in{'file'}));
	$file = $in{'file'};
	if (!(-r $file)) { &inst_error($text{'install_efile'}); }
	}
elsif ($in{'source'} == 1) {
	# from uploaded file
	&error_setup($text{'install_err2'});
	$file = &tempname();
	$need_unlink = 1;
	if ($no_upload) {
                &inst_error($text{'install_ebrowser'});
                }
	open(MOD, "> $file");
	print MOD $in{'upload'};
	close(MOD);
	}
elsif ($in{'source'} == 2) {
	# from ftp or http url
	&error_setup(&text('install_err3', $in{'url'}));
	$file = &tempname();
	$need_unlink = 1;
	if ($in{'url'} =~ /^http:\/\/([^\/]+)(\/.*)$/) {
		$host = $1; $page = $2; $port = 80;
		if ($host =~ /^(.*):(\d+)$/) { $host = $1; $port = $2; }
		&http_download($host, $port, $page, $file);
		}
	elsif ($in{'url'} =~ /^ftp:\/\/([^\/]+)\/(.*)$/) {
		$host = $1; $ffile = $2;
		&ftp_download($host, $ffile, $file);
		}
	else { &inst_error($text{'install_eurl'}); }
	}

# Uncompress the module file if needed
open(MFILE, $file);
read(MFILE, $two, 2);
close(MFILE);
if ($two eq "\037\235") {
	if (!&has_command("uncompress")) {
		unlink($file) if ($need_unlink);
		&error(&text('install_ecomp', "<tt>uncompress</tt>"));
		}
	local $temp = $file =~ /\/([^\/]+)\.Z/i ? &tempname("$1")
						: &tempname();
	local $out = `uncompress -c $file 2>&1 >$temp`;
	unlink($file) if ($need_unlink);
	if ($?) {
		unlink($temp);
		&error(&text('install_ecomp2', $out));
		}
	$file = $temp;
	$need_unlink = 1;
	}
elsif ($two eq "\037\213") {
	if (!&has_command("gunzip")) {
		unlink($file) if ($need_unlink);
		&error(&text('install_egzip', "<tt>gunzip</tt>"));
		}
	local $temp = $file =~ /\/([^\/]+)\.gz/i ? &tempname("$1")
						 : &tempname();
	local $out = `gunzip -c $file 2>&1 >$temp`;
	unlink($file) if ($need_unlink);
	if ($?) {
		unlink($temp);
		&error(&text('install_egzip2', $out));
		}
	$file = $temp;
	$need_unlink = 1;
	}

# Check if this is an RPM webmin module
open(TYPE, "../install-type");
chop($type = <TYPE>);
close(TYPE);
if ($type eq 'rpm' && ($out = `rpm -qp $file 2>/dev/null`)) {
	# Looks like an RPM of some kind, hopefully an RPM webmin module
	$out =~ /^wbm-([^\s\-]+)/ || &inst_error($text{'install_erpm'});
	$redirect_to = $name = $1;
	$out = &backquote_logged("rpm -U $file 2>&1");
	if ($?) {
		&inst_error(&text('install_eirpm', "<tt>$out</tt>"));
		}

	# Get the new module info
	chop($mdirs[0] = `cd ../$name ; pwd`);
	%minfo = &get_module_info($name);
	$mdescs[0] = $minfo{'desc'};
	`du -sk ../$name` =~ /(\d+)/; $msizes[0] = $1;

	# Update the ACL for this user
	&read_acl(undef, \%acl);
	open(ACL, "> ".&acl_filename());
	foreach $u (keys %acl) {
		@mods = @{$acl{$u}};
		if ($u eq $ENV{'REMOTE_USER'}) {
			push(@mods, $name);
			@mods = &unique(@mods);
			}
		print ACL "$u: ",join(' ', @mods),"\n";
		}
	close(ACL);
	&webmin_log("install", undef, $name, { 'desc' => $mdescs[0] });
	}
else {
	# Check if this is a valid module (a tar file of multiple module dirs)
	$tar = `tar tf $file 2>&1`;
	if ($?) { &inst_error(&text('install_etar', $tar)); }
	foreach $f (split(/\n/, $tar)) {
		if ($f =~ /^\.\/([^\/]+)\/(.*)$/ || $f =~ /^([^\/]+)\/(.*)$/) {
			$redirect_to = $1 if (!$redirect_to);
			$mods{$1}++;
			$hasfile{$1,$2}++;
			}
		}
	foreach $m (keys %mods) {
		$hasfile{$m,"module.info"} ||
			&inst_error(&text('install_einfo', "<tt>$m</tt>"));
		}
	if (!%mods) {
		&inst_error($text{'install_enone'});
		}

	# Get the module.info files to check dependancies
	$ver = &get_webmin_version();
	$tmpdir = &tempname();
	mkdir($tmpdir, 0700);
	foreach $m (keys %mods) {
		local %minfo;
		system("cd $tmpdir ; tar xf $file $m/module.info ./$m/module.info");
		if (!&read_file("$tmpdir/$m/module.info", \%minfo)) {
			$err = &text('install_einfo', "<tt>$m</tt>");
			}
		elsif (!&check_os_support(\%minfo)) {
			$err = &text('install_eos', "<tt>$m</tt>",
				     $gconfig{'real_os_type'},
				     $gconfig{'real_os_version'});
			}
		else {
			foreach $dep (split(/\s+/, $minfo{'depends'})) {
				if ($dep =~ /^[0-9\.]+$/) {
					if ($dep > $ver) {
						$err = &text('install_ever',
							"<tt>$m</tt>", "<tt>$dep</tt>");
						}
					}
				elsif (!-r "../$dep/module.info") {
					$err = &text('install_edep',
						     "<tt>$m</tt>", "<tt>$dep</tt>");
					}
				}
			}
		last if ($err);
		}
	system("rm -rf $tmpdir >/dev/null 2>&1");
	&inst_error($err) if ($err);

	# Delete modules being replaced
	foreach $m (keys %mods) {
		system("rm -rf ../$m 2>&1 >/dev/null") if ($m ne 'webmin');
		}

	# Extract all the modules and update perl path and ownership
	$out = `cd .. ; tar xf $file 2>&1 >/dev/null`;
	if ($?) { &inst_error(&text('install_eextract', $out)); }
	if ($need_unlink) { unlink($file); }
	open(PERL, $0);
	<PERL> =~ /^#!(\S+)/; $perl = $1;
	close(PERL);
	@st = stat($0);
	foreach $moddir (keys %mods) {
		chdir("../$moddir");
		%minfo = &get_module_info($moddir); push(@mdescs, $minfo{'desc'});
		chop($pwd = `pwd`); push(@mdirs, $pwd);
		`du -sk .` =~ /(\d+)/; push(@msizes, $1);
		system("(find . -name '*.cgi' ; find . -name '*.pl') 2>/dev/null | xargs $perl ../perlpath.pl $perl");
		system("chown -R $st[4]:$st[5] .");
		&webmin_log("install", undef, $moddir, { 'desc' => $minfo{'desc'} });
		}

	# Copy appropriate config file from module to /etc/webmin
	system("$perl ../copyconfig.pl $gconfig{'os_type'} $gconfig{'os_version'} .. $config_directory ".join(' ', keys %mods));

	# Update ACL for this user so they can access the new modules
	&read_acl(undef, \%acl);
	open(ACL, "> ".&acl_filename());
	foreach $u (keys %acl) {
		@mods = @{$acl{$u}};
		if ($u eq $ENV{'REMOTE_USER'}) {
			push(@mods, keys %mods);
			@mods = &unique(@mods);
			}
		print ACL "$u: ",join(' ', @mods),"\n";
		}
	close(ACL);
	}

if ($in{'redirect'}) {
	# Redirect to the new module
	&redirect("/$redirect_to/");
	}
else {
	# Display something nice for the user
	&header($text{'install_title'}, "");
	print "<hr>\n";
	print "$text{'install_desc'} <p>\n";
	print "<ul>\n";
	for($i=0; $i<@mdescs; $i++) {
		print &text('install_line', "<b>$mdescs[$i]</b>",
			    "<tt>$mdirs[$i]</tt>", $msizes[$i]),"<p>\n";
		}
	print "</ul><p>\n";
	print "<hr>\n";
	&footer("", $text{'index_return'});
	}

sub inst_error
{
if ($need_unlink) { unlink($file); }
&error(@_);
}

 07070100012f34000081e40000000000000002000000013ac0389300001268000000200000000000000000000000000000001f00000003reloc/webmin/install_theme.cgi    #!/usr/local/bin/perl
# themes_theme.cgi
# Download and install a webmin theme

require './webmin-lib.pl';
if ($ENV{REQUEST_METHOD} eq "POST") { &ReadParseMime(); }
else { &ReadParse(); $no_upload = 1; }

if ($in{'source'} == 0) {
	# from local file
	&error_setup(&text('themes_err1', $in{'file'}));
	$file = $in{'file'};
	if (!(-r $file)) { &inst_error($text{'themes_efile'}); }
	}
elsif ($in{'source'} == 1) {
	# from uploaded file
	&error_setup($text{'themes_err2'});
	$file = &tempname();
	$need_unlink = 1;
	if ($no_upload) {
                &inst_error($text{'themes_ebrowser'});
                }
	open(MOD, "> $file");
	print MOD $in{'upload'};
	close(MOD);
	}
elsif ($in{'source'} == 2) {
	# from ftp or http url
	&error_setup(&text('themes_err3', $in{'url'}));
	$file = &tempname();
	$need_unlink = 1;
	if ($in{'url'} =~ /^http:\/\/([^\/]+)(\/.*)$/) {
		$host = $1; $page = $2; $port = 80;
		if ($host =~ /^(.*):(\d+)$/) { $host = $1; $port = $2; }
		&http_download($host, $port, $page, $file);
		}
	elsif ($in{'url'} =~ /^ftp:\/\/([^\/]+)\/(.*)$/) {
		$host = $1; $ffile = $2;
		&ftp_download($host, $ffile, $file);
		}
	else { &inst_error($text{'themes_eurl'}); }
	}

# Uncompress the module file if needed
open(MFILE, $file);
read(MFILE, $two, 2);
close(MFILE);
if ($two eq "\037\235") {
	if (!&has_command("uncompress")) {
		unlink($file) if ($need_unlink);
		&error(&text('themes_ecomp', "<tt>uncompress</tt>"));
		}
	local $temp = $file =~ /\/([^\/]+)\.Z/i ? &tempname("$1")
						: &tempname();
	local $out = `uncompress -c $file 2>&1 >$temp`;
	unlink($file) if ($need_unlink);
	if ($?) {
		unlink($temp);
		&error(&text('themes_ecomp2', $out));
		}
	$file = $temp;
	$need_unlink = 1;
	}
elsif ($two eq "\037\213") {
	if (!&has_command("gunzip")) {
		unlink($file) if ($need_unlink);
		&error(&text('themes_egzip', "<tt>gunzip</tt>"));
		}
	local $temp = $file =~ /\/([^\/]+)\.gz/i ? &tempname("$1")
						 : &tempname();
	local $out = `gunzip -c $file 2>&1 >$temp`;
	unlink($file) if ($need_unlink);
	if ($?) {
		unlink($temp);
		&error(&text('themes_egzip2', $out));
		}
	$file = $temp;
	$need_unlink = 1;
	}

# Check if this is an RPM webmin theme
open(TYPE, "../install-type");
chop($type = <TYPE>);
close(TYPE);
if ($type eq 'rpm' && ($out = `rpm -qp $file 2>/dev/null`)) {
	# Looks like an RPM of some kind, hopefully an RPM webmin theme
	$out =~ /^wbt-([^\s\-]+)/ || &inst_error($text{'themes_erpm'});
	$name = $1;
	$out = &backquote_logged("rpm -U $file 2>&1");
	if ($?) {
		&inst_error(&text('themes_eirpm', "<tt>$out</tt>"));
		}

	# Get the new theme info
	chop($mdirs[0] = `cd ../$name ; pwd`);
	&read_file("../$name/theme.info", \%tinfo);
	$mdescs[0] = $tinfo{'desc_'.$current_lang} ?
			$tinfo{'desc_'.$current_lang} : $tinfo{'desc'};
	`du -sk ../$name` =~ /(\d+)/; $msizes[0] = $1;
	&webmin_log("tinstall", undef, $name, { 'desc' => $mdescs[0] });
	}
else {
	# Check if this is a valid theme (a tar file of multiple theme dirs)
	$tar = `tar tf $file 2>&1`;
	if ($?) { &inst_error(&text('themes_etar', $tar)); }
	foreach $f (split(/\n/, $tar)) {
		if ($f =~ /^\.\/([^\/]+)\/(.*)$/ || $f =~ /^([^\/]+)\/(.*)$/) {
			$mods{$1}++;
			$hasfile{$1,$2}++;
			}
		}
	foreach $m (keys %mods) {
		$hasfile{$m,"theme.info"} ||
			&inst_error(&text('themes_einfo', "<tt>$m</tt>"));
		}
	if (!%mods) {
		&inst_error($text{'themes_enone'});
		}

	# Delete themes being replaced
	foreach $t (keys %mods) {
		system("rm -rf ../$t 2>&1 >/dev/null");
		}

	# Extract all the themes and update perl path and ownership
	$out = `cd .. ; tar xf $file 2>&1 >/dev/null`;
	if ($?) { &inst_error(&text('themes_eextract', $out)); }
	if ($need_unlink) { unlink($file); }
	open(PERL, $0);
	<PERL> =~ /^#!(\S+)/; $perl = $1;
	close(PERL);
	@st = stat($0);
	foreach $tdir (keys %mods) {
		chdir("../$tdir");
		undef(%tinfo); &read_file("../$tdir/theme.info", \%tinfo);
		push(@mdescs, $tinfo{'desc_'.$current_lang} ?
			      $tinfo{'desc_'.$current_lang} : $tinfo{'desc'});
		chop($pwd = `pwd`); push(@mdirs, $pwd);
		`du -sk .` =~ /(\d+)/; push(@msizes, $1);
		system("(find . -name '*.cgi' ; find . -name '*.pl') 2>/dev/null | xargs $perl ../perlpath.pl $perl");
		system("chown -R $st[4]:$st[5] .");
		&webmin_log("tinstall", undef, $tdir,
			    { 'desc' => $mdescs[$#mdescs] });
		}
	}

# Display something nice for the user
&header($text{'themes_title'}, "");
print "<hr>\n";
print "$text{'themes_done'} <p>\n";
print "<ul>\n";
for($i=0; $i<@mdescs; $i++) {
	print &text('themes_line', "<b>$mdescs[$i]</b>",
		    "<tt>$mdirs[$i]</tt>", $msizes[$i]),"<p>\n";
	}
print "</ul><p>\n";
print "<hr>\n";
&footer("", $text{'index_return'});

sub inst_error
{
if ($need_unlink) { unlink($file); }
&error(@_);
}

0707010001725d000041ed0000000000000001000000023ac03ca900000000000000200000000000000000000000000000001200000003reloc/webmin/lang 0707010001725e000081a40000000000000002000000013ac03892000031c0000000200000000000000000000000000000001500000003reloc/webmin/lang/de  index_title=Webmin Konfiguration
index_return=webmin Konfiguration

access_title=IP Zugangskontrolle
access_desc=Der Webmin Server kann in diesem Formular konfiguriert werden, Anfragen von bestimmten IPs abzuweisen oder nur von bestimmten IPs zuzulassen. Hostnamen (wie foo.bar.de) und IP Netzwerke (wie 10.254.3.0 oder 10.254.1.0/255.255.255.128) k&ouml;nnen auch angegeben werden. Sie sollten sollten den Zugriff auf Ihren Server einschr&auml;nken auf bekannte, vertraute Adressen, besonders, wenn der Server im Internet verf&uuml;gbar ist. Anderenfalls hat jeder, der Ihr Passwort err&auml;t die komplette Kontrolle &uuml;ber Ihr System haben.
access_header=Zugriffs-Kontrolle
access_all=Gestatte Zugriff von allen Adressen
access_allow=Gestatte Zugriff nur von aufgelisteten Adressen
access_deny=Verweigere von aufgelisteten Adressen
access_err=Fehler beim aktualisieren der Zugriffsliste
access_enone=Keine Adresse angegeben
access_enet='$1' ist keine g&uuml;ltige Netzwerk Adresse
access_emask='$1' ist keine g&uuml;ltige Netzmaske
access_eip='$1' ist keine komplette IP oder Netzwerk-Adresse
access_ehost=Konnte IP Adresse f&uuml;r '$1' nicht finden
access_eself=Ihrer aktuellen IP Adresse ($1) w&uuml;rde der Zugriff verweigert

bind_title=Port und Adresse
bind_desc=Wenn der Host, auf dem Webmin l&auml;uft, mehrere IP Adressen hat, kann der Server so konfiguriert werden, dass er nur auf eine davon h&ouml;rt. Der TCP Port auf dem Webmin horcht kann auch in diesem Formular bearbeitet werden. Beachten Sie, Ihre Browser k&ouml;nnte Sie erneut auffordern, sich einzuloggen, wenn Sie Port oder Adresse ge&auml;ndert haben
bind_header=IP Adresse und Port
bind_ip=Horche auf IP Adresse
bind_all=Alle
bind_port=Horche auf Port
bind_err=Fehler beim &Auml;ndern der Adresse
bind_eip=Fehler beim Ermitteln der IP Adresse f&uuml; '$1'
bind_eassign=Die Adresse '$1' ist diesem System nicht zugewiesen
bind_eport=Der Port $1 wird bereits benutzt

log_title=Logging
log_desc=Webmin kann so konfiguriert werden, dass er eine Log Datei f&uuml;r Seitenanfragen schreibt, im Standard CLF Log Datei Format. Wenn das Logging aktiviert ist, k&ouml;nnen Sie w&auml;hlen, ob IP Adressen oder Hostnamen aufgezeichnet werden sollen und wie oft die Log Datei gereinigt (gel&ouml;scht) werden soll. Dalls das Logging aktiviert wird, schreibt Webmin das Log nach $1.
log_header=Web Server Logging
log_disable=De-aktiviere Logging
log_enable=Aktiviere logging
log_resolv=Logge aufgel&ouml;ste Hostnamen
log_clear=Reinige die Log Datei alle $1 Stunden
log_err=Fehler beim Speichern der Loggin Einstellungen
log_ehours='$1' ist keine g&uuml;ltige Anzahl von Stunden

proxy_title=Proxy Server
proxy_desc=Wenn der Host, auf dem Webmin l&auml;ft hinter einer Firewall jeglicher Art ist, kann es sein, dass Sie proxy Server zum Zugriff auf Web und FTP sites verwenden m&uuml;ssen. Einige Module, wie z.B. das <tt>Software Pakete</tt> Modul, werden diesen Proxy benutzen, wenn Sie Dateien downloaden.
proxy_header=Proxy Server
proxy_http=HTTP Proxy
proxy_ftp=FTP Proxy
proxy_none=Keiner
proxy_nofor=Kein Proxy f&uuml;r
proxy_err=Fehler beim Speichern der Proxies
proxy_ehttp=Der HTTP Proxy muss als eine URL angegeben werden
proxy_eftp=Der HTTP Proxy muss als eine URL angegeben werden

ui_title=Benutzer Interface
ui_desc=In diesem Formular k&ouml;nnen Sie das Farbschema verwenden, dass von allen Modulen verwendet werden soll. Jede Farbe wird definiert durch das RGB System, wobei jeder Wert eine hexadezimale Zahl zwischen 00 und ff ist.
ui_header=Benutzerinterface Einstellungen
ui_default=Standard
cs_page=Seiten Hintergrund
cs_text=Normaler Text
cs_table=Tabellen Hintergrund
cs_header=Tabellen &Uuml;berschrift
cs_link=Link Text
ui_texttitles=Zeige Titel als Text?
ui_err=Fehler beim Speichern der Farben
ui_ered=Ung&uuml;ltiger Rot Wert f&uuml;r '$1'
ui_egreen=Ung&uuml;ltiger Gr&uuml;n Wert f&uuml;r '$1'
ui_eblue=Ung&uuml;ltiger Blau Wert f&uuml;r '$1'

mods_title=Webmin Module
mods_desc1=Webmin Module k&ouml;nnen nach der Installation hinzugef&uuml;gt werden durch Benutzen des Formulars zur rechten. Module werden typischerweise vertreiben in <tt>.wbm</tt> Dateien, Jede davon kann ein oder mehrere Module enthalten. Wenn ein Modul lediglich f&uuml;r den Gebrauch auf einem Host lizensiert wurde, kann es m&ouml;glicherweise nicht installiert werden.
mods_install=Installiere Modul
mods_local=Aus lokaler Datei
mods_uploaded=Aus upgeloadeter Datei
mods_ftp=Von ftp oder http URL
mods_installok=Installiere Modul aus Datei
mods_desc2=Wenn sie mehr als eine Kopie desselben Moduls mit unterschiedlichen Konfigurationen benutzen wollen, dann erlaubt Ihnen das Formular zur rechten das Klonen eines Moduls. Der Klon wird einen neuen Namen, eine neue Modul-Konfiguration, neue Zugriffs-Kontrollen haben und kann anderen Benutzern verf&uuml;gbar gemacht werden.
mods_clone=Modul klonen
mods_cname=Zu klonendes Modul
mods_cnew=Name des geklonten Moduls
mods_cloneok=Modul klonen
mods_desc3=Existierende Module und Klone k&ouml;nnen durch das Formular unten gel&ouml;scht werden. Wenn ein Modul mit Klonen gel&ouml;scht wird, werden die Klone ebenfalls entfernt. Sobald ein Modul entfernt wurde, muss es erst neu installiert werden, damit es wieder benutzt werden kann. Ein Modul kann nicht gel&ouml;scht werden, wenn es von einem anderen ben&ouml;tigt wird.
mods_delete=Modul l&ouml;schen
mods_deleteok=Gew&auml;hlte Module l&ouml;schen

install_err1=Fehler beim Installieren des Moduls von $1
install_efile=Datei existiert nicht
install_err2=Fehler beim Installieren aus upgeloadeter Datei
install_ebrowser=Ihr Browser unterst&uuml;tzt keine File Uploads
install_err3=Fehler beim Installieren eines Moduls von $1
install_eurl=Ung&uuml;ltige URL
install_etar=Keine g&uuml,ltige Modul Datei : $1
install_einfo=Modul $1 fehlt eine module.info Datei
install_enone=Datei scheint keine Module zu enthalten
install_eos=Modul $1 unterst&uuml;tzt dieses Betriebssystem nicht ($2 $3)
install_ever=Modul $1 ben&ouml;tigt Webmin Version $2 oder h&ouml;her
install_edep=Modul $1 ben&ouml;tigt Modul $2
install_eextract=Extraktion schlug fehl : $1
install_title=Installiere Modul
install_desc=Die folgenden Module wurden erfolgreich installiert und zu Ihrer Zugriffs-Kontroll-Liste hinzugef&uuml;gt :
install_line=$1 in $2 ($3 kB)

clone_err=Fehler beim Klinen des Moduls
clone_elink=symlink schlug fehl : $1
clone_ecopy=Fehler beim Kopieren der Konfiguration : $1
clone_desc=Klon von $1

delete_err=Fehler beim L&ouml;schen von Modulen
delete_edep=Modul $1 kann nicht gel&ouml;scht werden, da es von Modul $2 ben&ouml;tigt wird
delete_desc1=$1 (Klon von $2)
delete_desc2=$1 in $2 ($3 kB)
delete_title=Module loeschen
delete_msg=Die folgenden Module wurden erfolgreich aus Ihrer Webmin Installation gel&ouml;scht :

os_title=Betriebssystem
os_desc=In diesem Formular k&ouml;nnen Sie das Betriebssystem &auml;ndern, als das Webmin Ihr System behandelt. Dies kann n&uuml;tzlich sein, wenn Sie Ihr Betriebssystem zu einer neueren Version aktualisiert haben. Beachten Sie, dass die Konfiguration bereits installierter Module nicht ge&auml;ndert wird, auch wenn es Unterschiede zwischen dem alten und dem neuen System gibt.
os_desc2=Sie k&ouml;nnen ebenso den Suchpfad &auml;ndern, der von Webmin beim Ausf&uuml;hren von Programmen benutzt wird und den dynamischen Bibliotheken &uuml;bergeben wird.
os_header=Host Betriebssystem
os_curros=Aktuelles Betriebssystem
os_currver=Aktuelle Betriebssystem-Version
os_new=Neues Betriebssystem
os_path=Programm Suchpfad
os_ld_path=Bibliothek Suchpfad

lang_title=Sprache
lang_title2=Webmin Sprache
lang_lang=Zeige an in Sprache
lang_intro=Auf dieser Seite k&ouml;nnen Sie die Sprache w&auml;hlen, in der Webmin Titel, Eingabeaufforderungen und Nachrichten anzeigen wird.
lang_ok=Sprache &auml;ndern

ssl_title=SSL Verschluesselung
ssl_desc1=Auf dem Host, auf dem Webmin l&auml;uft, scheint das SSLeay Perl Modul installiert zu sein. Durch das Benutzen dieses Moduls unterst&uuml;tzt Webmin SSL verschl&uuml;sselte Kommunikation zwischen Ihrem Browser und dem Server. Wenn Sie auf Ihren Webmin-Server &uuml;ber das Internet zugreifen, dann sollten Sie ernsthaft dar&uuml;ber nachdenken, SSL zu benutzen, um Angreifer davon abzuhalten, ihr Passwort zu erhaschen.
ssl_desc2=Warnung - aktivieren Sie die SSL Unterst&uuml;tzung nur, wenn Sie einen Browser benutzen, der SSL unterst&uuml;tzt (wie z.B. den Netscape Navigator/Communicator), und wenn es keine Firewall zwischen Ihnen und dem Webmin Server gibt, die <b>https</b> Anfragen bklockiert.
ssl_header=SSL Unterst&uuml;tzung
ssl_enable=Aktiviere SSL, wenn verf&uuml;gbar
ssl_disable=De-aktiviere SSL, sogar wenn verf&uuml;gbar

startpage_title=Einstellungen der Startseite
startpage_intro=Auf dieser Seite k&ouml;nnen Sie definieren, wie viele Icons pro Reihe auf der Startseite angezeigt werden sollen.
startpage_tabs=Module in Kategorien aufteilen?
startpage_nocol=Anzahl Spalten
startpage_alt=Alternative Startseite verwenden
startpage_ecols='$1' ist keine g&uuml;ltige Anzahl Spalten
startpage_gotoone=Go direct to module<br>if user only has one?

upgrade_title=Webmin Upgrade
upgrade_desc=Dieses Formular erlaubt es Ihnen, Ihre gesamte Webmin Installation zu einer neuen Version zu aktualisieren. Sie k&ouml;nnen einfach aus einer lokalen Datei installieren, aus einer hochgeladenen Datei oder einfach von der letzten Version von <a href=http://www.webmin.com/>www.webmin.com</a>. Wie bei einer manuellen Aktualisierung werden alle Einstellungen und Module dritter behalten werden.
upgrade_local=Aus lokaler Datei
upgrade_uploaded=Aus hochgeladener Ddatei
upgrade_ftp=Letzte Version von www.webmin.com
upgrade_ok=Aktualisiere Webmin
upgrade_err1=Fehler bei der Aktualisierung von $1
upgrade_err2=Aktualisierung von hochgeladener Datei schlug fehl
upgrade_err3=Aktualisierung von www.webmin.com schlug fehl
upgrade_efile=Datei existiert nicht
upgrade_ebrowser=Ihr Browser unterst&uuml;tzt keine Datei-Uploads.
upgrade_eversion=Kann nicht auf Version $1 downgraden
upgrade_egunzip=Ihr System verf&uuml;gt nicht &uuml;ber das <tt>gunzip</tt> Kommando
upgrade_etar=Keine g&uuml;ltige Webmin TAR Datei
upgrade_setup=F&uuml;hre setup.sh script aus um Webmin zu aktualisieren. Bitte warten Sie eine Minute, bis dies geschehen ist, bevor Sie weitermachen.

ca_title=Zertifikats-Autorit&auml;t
ca_old=Existierendes Zertifikat
ca_header1=Erstelle neues CA (Certificate Authority) Zertifikat
ca_header2=Bearbeite CA Zertifikat
ca_newmsg1=Ihr Webmin Server ist bereits als Zertifikats-Autorit&auml;t eingerichtet. Sie k&ouml;nnen dieses Formular benutzen um dies erneut einzurichten, but alle an benutzer ausgestellte Zertifikate werden danach nicht l&auml;nger funktionieren.
ca_newmsg2=Dieses Formular sollte dazu benutzt werden, Ihren Webmin Server als Zertifikats-Autorit&auml;t (CA) einzurichten, so dass Benutzer ein Zertifikat im Webmin Benutzer Modul anfordern k&ouml;nnen, um sich selbst zu authentifizieren ohne Benutzername und Passwort einzugeben.
ca_cn=Autorit&auml;ts-Name
ca_email=Email Adresse
ca_ou=Abteilung
ca_o=Organisation
ca_sp=Bundesland
ca_c=L&auml;ndercode
ca_create=Erstelle Zertifikats-Autorit&auml;t
ca_oldmsg1=Das CA Zertifikat, das dieser Server benutzt wird unten angezeigt. Sie k&ouml;nnen es &auml;ndern indem Sie ein Zertifikat von einem andern CA einf&uuml;gen. Jedoch werden danach keine bereits ausgestellten Benutzerzertifikate mehr funktionieren.
ca_oldmsg2=Wenn Sie bereits ein CA auf einem anderen Webmin Server eingerichtet haben, k&ouml;nnen Sie dieses Zertifikat unten einf&uuml;gen anstatt ein neues auszustellen. Dies wird es Benutzern von dem anderen Server gestatten auch von diesem Server erkannt zu werden.
ca_err=Das Erstellen der Zertifikats-Autorit&auml;t schlug fehl
ca_setupok=Ihre Zertifikats-Autorit&auml;t wurde erfolgreich eingerichtet. Benutzer k&ouml;nnen nun das Webmin Users Modul benutzen um ein Zertifikat f&uuml;r sich zu beantragen.
ca_stop=Stoppe Zertifikats-Autorit&auml;t
ca_stopmsg=Clicken Sie auf diesen Button, damit Webmin keine existierenden Zertifikate mehr akzeptiert oder neue ausstellt. Dies wird erzwingen, dass Benutze sich mit Benutzername und Kennwort anmelden.
ca_stopok=Ihre Zertifikats-Autorit&auml;t wurde erfolgreich gestoppt.
ca_eminiserv=SSL Client Zertifikate werden nur mit miniserver unterst&uuml;tzt
ca_eversion=Die installierte Version des Perl Moduls Net::SSLeay unterst&uuml;tzt keine SSL Client Zertifikate.
ca_essleay=Das SSL Administrations-Kommando $1 wurde auf Ihrem System nicht gefunden. Es ist evtl. notwendig, den Pfad in der Konfiguration des Webmin Benutzer Moduls anzupassen.
ca_essl=SSL Zertifizierung kann nur eingerichtet ewrden, wenn der Webserver im SSL-Modus l&auml;ft.
0707010001725f000081a40000000000000002000000013ac0389200004a43000000200000000000000000000000000000001500000003reloc/webmin/lang/en  index_title=Webmin Configuration
index_return=webmin configuration

access_title=IP Access Control
access_desc=The Webmin server can be configured to deny or allow access only from certain IP addresses using this form. Hostnames (like foo.bar.com) and IP networks (like 10.254.3.0 or 10.254.1.0/255.255.255.128) can also be entered. You should limit access to your server to trusted addresses, especially if it is accessible from the Internet. Otherwise, anyone who guesses your password will have complete control of your system.
access_header=Access Control
access_all=Allow from all addresses
access_allow=Only allow from listed addresses
access_deny=Deny from listed addresses
access_err=Failed to update access list
access_enone=No addresses entered
access_enet='$1' is not a valid network address
access_emask='$1' is not a valid netmask
access_eip='$1' is not a complete IP or network address
access_ehost=Failed to find IP address for '$1'
access_eself=Your current IP address ($1) would be denied

bind_title=Port and Address
bind_desc=If the host on which Webmin is running has multiple IP addresses, the server can be configured to listen on only one address using this form. The TCP port on which Webmin listens can also be configured here. Note - your web browser may prompt you to log in again after changing the port or binding address.
bind_header=IP Address and Port
bind_ip=Listen on IP Address
bind_all=All
bind_port=Listen on Port
bind_err=Failed to change address
bind_eip=Failed to get IP address for '$1'
bind_eassign=The address '$1' is not assigned to this system
bind_eport=Port $1 is already in use

log_title=Logging
log_desc=Webmin can be configured to write a log of web server hits, in the standard CLF log file format. If logging is enabled, you can also choose whether IP addresses or hostnames are recorded, and how often the log file is cleared. When enabled, logs are written to the file $1.
log_desc2=When logging is enabled, Webmin will also write a more detailed log of user actions to the file $1. This log can be viewed and analysed with the Webmin Actions Log module to see exactly what each Webmin user has been doing.
log_header=Web Server Logging
log_disable=Disable logging
log_enable=Enable logging
log_resolv=Log resolved hostnames
log_clear=Clear logfiles every $1 hours
log_uall=Log actions by all users
log_users=Only log actions by ..
log_mall=Log actions in all modules
log_modules=Only log actions in ..
log_files=Log changes made to files by each action
log_err=Failed to save logging options
log_ehours='$1' is not a valid number of hours
log_ediff=Your system does not have the command $1 needed for logging file changes

proxy_title=Proxy Servers
proxy_desc=If the host on which Webmin is running is behind a firewall of some kind, you may need to set the proxy server to use for accessing web and FTP sites. Certain modules, such as <tt>Software Packages</tt>, will use these proxies when downloading files or programs.
proxy_header=Proxy Servers
proxy_http=HTTP proxy
proxy_ftp=FTP proxy
proxy_none=None
proxy_nofor=No proxy for
proxy_user=Username for proxy
proxy_pass=Password for proxy
proxy_err=Failed to save proxies
proxy_ehttp=The HTTP proxy server must be entered as a URL
proxy_eftp=The FTP proxy server must be entered as a URL

ui_title=User Interface
ui_desc=This form allows you to edit user interface options used by all modules. When entering colours, each must be specified using the standard RGB system, where each value is a hex number from 00 to ff. 
ui_header=User Interface Options
ui_default=Default
cs_page=Page background
cs_text=Normal text
cs_table=Table background
cs_header=Table header
cs_link=Link text
ui_texttitles=Display titles as text?
ui_sysinfo=Display login and hostname
ui_sysinfo0=At bottom of browser
ui_sysinfo1=In browser title
ui_sysinfo2=Above page heading
ui_err=Failed to save colours
ui_ered=Invalid red value for '$1'
ui_egreen=Invalid green value for '$1'
ui_eblue=Invalid blue value for '$1'

mods_title=Webmin Modules
mods_desc1=Webmin modules can be added after installation by using the form to the right. Modules are typically distributed in <tt>.wbm</tt> files, each of which can contain one or more modules. Modules can also be installed from RPM files if supported by your operating system.
mods_install=Install Module
mods_local=From local file
mods_uploaded=From uploaded file
mods_ftp=From ftp or http URL
mods_installok=Install Module From File
mods_desc2=If you wish to have more than one copy of the same module with different configurations, the form to the right allows you to clone any existing module. The clone will have a new name, a new module configuration, new access control options and may be made available to different users.
mods_clone=Clone Module
mods_cname=Module to clone
mods_cnew=Cloned module name
mods_cloneok=Clone Module
mods_desc3=Existing modules and clones of modules can be deleted using the form below. If a module with clones is deleted, they will also be removed. Once a module has been deleted it must be reinstalled before you can use it again. A module cannot be deleted if other modules depend on it.
mods_delete=Delete Modules
mods_deleteok=Delete Selected Modules

install_err1=Failed to install module from $1
install_efile=File does not exist
install_err2=Failed to install uploaded module
install_ebrowser=Your browser does not support file uploads
install_err3=Failed to install module from $1
install_eurl=Invalid URL
install_etar=Not a valid module file : $1
install_einfo=Module $1 is missing a module.info file
install_enone=File does not appear to contain any modules
install_eos=Module $1 does not support this operating system ($2 $3)
install_ever=Module $1 requires Webmin version $2 or above
install_edep=Module $1 requires module $2
install_eextract=Extract failed : $1
install_title=Install Module
install_desc=The following modules have been successfully installed and added to your access control list :
install_line=$1 in $2 ($3 kB)
install_ecomp=File is compressed, but the $1 command was not found on your system
install_ecomp2=Failed to uncompress file : $1
install_egzip=File is gzipped, but the $1 command was not found on your system
install_egzip2=Failed to gunzip file : $1
install_erpm=Not a Webmin module RPM
install_eirpm=RPM install failed : $1

clone_err=Failed to clone module
clone_elink=symlink failed : $1
clone_ecopy=failed to copy config : $1
clone_desc=Clone of $1

delete_err=Failed to delete modules
delete_edep=Module $1 cannot be deleted, as the module $2 depends on it
delete_desc1=$1 (Clone of $2)
delete_desc2=$1 in $2 ($3 kB)
delete_title=Delete Modules
delete_msg=The following modules have been successfully deleted from your Webmin installation :
delete_sure=Are you sure you want to delete the selected modules? $1 kB of files will be deleted forever.

os_title=Operating System
os_desc=This form allows you to change the operating system Webmin treats your system as. This can be useful if you have upgraded your machine to a new version of your operating system distribution. Note that the configuration of installed modules will not be changed, even if there are differences between the old and new systems.
os_desc2=You can also change the search path used by Webmin when running programs, and the shared library path passed to any programs.
os_header=Host Operating System
os_curros=Current operating system
os_currver=Current OS version
os_new=New operating system
os_path=Program search path
os_ld_path=Library search path

lang_title=Language
lang_title2=Webmin Language
lang_lang=Display in language
lang_intro=This page allows you to choose which language Webmin will use for displaying titles, prompts and messages
lang_ok=Change Language

ssl_title=SSL Encryption
ssl_desc1=The host on which Webmin is running appears to have the SSLeay Perl module installed. Using this, Webmin supports SSL encrypted communication between your browser and the server. If you are accessing your Webmin server over the Internet, then you should definately consider using SSL to prevent an attacker capturing your Webmin password.
ssl_desc2=Warning - only turn on SSL support if you have a browser that supports SSL (such as Netscape or IE), and there is no firewall blocking <b>https</b> requests between your browser and the Webmin host
ssl_header=SSL Support
ssl_enable=Enable SSL support, if available
ssl_disable=Disable SSL support, even if available

startpage_title=Index Page Options
startpage_intro=This page allows you to define how many icons you want to have per row on the index page
startpage_tabs=Categorise modules?
startpage_nocol=Number of Columns
startpage_alt=Use alternative header
startpage_ecols='$1' is not a valid number of columns
startpage_gotoone=Go direct to module<br>if user only has one?
startpage_deftab=Default category

upgrade_title=Upgrade Webmin
upgrade_desc=This form allows you to upgrade your entire webmin installation to a new version. You can install from a local file, an uploaded file or from the latest version at <a href=http://www.webmin.com/>www.webmin.com</a>. Just as with a manual upgrade, all your config settings and third-party modules will be kept.
upgrade_descrpm=This form allows you to upgrade your entire webmin installation to a new version using RPM's upgrade option. You can install from a local RPM file, an uploaded file or from the latest version at <a href=http://www.webmin.com/>www.webmin.com</a>. Just as with a manual upgrade, all your config settings and third-party modules will be kept.
upgrade_desccaldera=This form allows you to upgrade your entire webmin installation to a new version using RPM's upgrade option. You can install from a local RPM file, an uploaded file or from the latest version from Caldera.
upgrade_descsolaris-pkg=This form allows you to upgrade your entire webmin installation to a new version by removing the current solaris package and installing a new one. You can install from a local solaris package file, an uploaded file or from the latest version at <a href=http://www.webmin.com/>www.webmin.com</a>. Just as with a manual upgrade, all your config settings and third-party modules will be kept.
upgrade_local=From local file
upgrade_uploaded=From uploaded file
upgrade_ftp=Latest version from www.webmin.com
upgrade_cup=Latest version from Caldera's <tt>cupdate</tt> tool
upgrade_ok=Upgrade Webmin
upgrade_err1=Failed to upgrade from $1
upgrade_err2=Failed to upgrade from uploaded file
upgrade_err3=Failed to upgrade from www.webmin.com
upgrade_efile=File does not exist
upgrade_ebrowser=Your browser does not support file uploads
upgrade_eversion=Cannot downgrade to version $1
upgrade_erpm=Not a valid webmin RPM file
upgrade_egunzip=Your system does not have the <tt>gunzip</tt> command
upgrade_etar=Not a valid Webmin tar file
upgrade_emod=File is a Webmin module, not a complete Webmin upgrade. You may want to use the <a href='$1'>Webmin Modules</a> page to install it.
upgrade_setup=Running setup.sh script to upgrade Webmin .. Please wait a minute until it is complete before continuing.
upgrade_setuprpm=Running RPM to upgrade Webmin .. Please wait a minute until it is complete before continuing.
upgrade_setuppackage=Running pkgadd to upgrade Webmin .. Please wait a minute until it is complete before continuing.
upgrade_esolaris=Webmin's upgrade feature does not currently work when you have installed from a Solaris package. Please upgrade manually instead.
upgrade_ecaldera=RPM file does not appear to be the Caldera version of Webmin.

ca_title=Certificate Authority
ca_old=Existing certificate
ca_header1=Create new CA certificate
ca_header2=Edit CA certificate
ca_newmsg1=Your Webmin server is already setup as a certificate authority. You can use this form to set it up again, but any certificates already issued to users will no longer work.
ca_newmsg2=This form should be used to setup your Webmin server as a certificate authority (CA) so that users can request certificates in the Webmin Users to identify themselves to the server without having to login.
ca_cn=Authority name
ca_email=Email address
ca_ou=Department
ca_o=Organisation
ca_sp=State
ca_c=Country code
ca_create=Setup certificate authority
ca_oldmsg1=The CA certificate this server is using is displayed below. You may change it by pasting in the certificate from another CA, but any certificates already issued to users will no longer work.
ca_oldmsg2=If you have already setup a CA on another Webmin server, you can paste its certificate below instead of setting up a new CA. This will allow users from the other server to be recognised by this server as well.
ca_err=Failed to setup certificate authority
ca_setupok=Your certificate authority has been setup successfully. Users can now use the Webmin Users module to request certificates for themselves.
ca_stop=Shutdown certificate authority
ca_stopmsg=Click this button to stop Webmin from accepting existing certificates or issuing new ones. This will force users to use username and password authentication instead.
ca_stopok=Your certificate authority has been successfully shut down.
ca_eminiserv=SSL client certificates are only supported under miniserv.
ca_eversion=The version of the Perl Net::SSLeay module installed on your system does not support SSL client certificates.
ca_essleay=The SSL administration command $1 was not found on your system. You may need to change the path in the Webmin Users module configuration.
ca_essl=SSL certification can only be setup when the webserver is running in SSL mode.

session_title=Authentication
session_desc1=When enabled, password timeouts protect your Webmin server from brute-force password cracking attacks by adding a continuously expanding delay between each failed login attempt for the same user.
session_desc2=When session authentication is enabled, each logged in users' session will be tracked by Webmin, making it possible for idle users to be automatically logged out. Be aware that enabling or disabling session authentication may force all users to re-login.
session_header=Authentication and session options
session_pdisable=Disable password timeouts
session_penable=Enable password timeouts
session_blockhost=Block hosts with more than $1 failed logins for $2 seconds.
session_syslog=Log blocked hosts to <tt>syslog</tt>
session_disable=Disable session authentication
session_enable=Enable session authentication
session_localoff=Always require username and password
session_localon=Allow login without password for matching users from localhost
session_logout=Auto-logout after $1 minutes of inactivity
session_locking=Enable locking in Webmin
session_err=Failed to save authentication
session_elogouttime=Missing or invalid logout time
session_eblockhost_time=Missing or invalid blocking time
session_eblockhost_failures=Missing or invalid blocking logins
session_ecookie=Your browser does not support cookies, which are required for session authentication
session_elsof=Local authentication requires the <tt>lsof</tt> program

assignment_title=Reassign Modules
assignment_header=Module category assignments
assignment_ok=Change Categories
assignment_desc=This form allows you to configure which category each module is displayed under on the Webmin index page.

categories_title=Edit Categories
categories_header=Category ID and descriptions
categories_desc=This form allows you to rename the existing Webmin categories and create new ones to assign modules to. The top part of the table is for changing the descriptions of the built-in categories, while the bottom part is for adding new category IDs and descriptions.
categories_ok=Save Categories
categories_err=Failed to save categories
categories_edesc=Missing description for $1
categories_ecat=Category ID $1 is already taken

log_access=Changed IP access control
log_bind=Changed port and address
log_log=Changed logging options
log_proxy=Changed proxy servers
log_ui=Changed user interface options
log_install=Installed module $1
log_tinstall=Installed theme $1
log_clone=Cloned module $1 to $2
log_delete=Deleted module $1
log_os=Changed operating system
log_lang=Changed global language
log_startpage=Changed index page options
log_upgrade=Upgraded Webmin to version $1
log_session=Changed authentication options
log_ssl=Changed SSL encryption mode
log_setupca=Set up certificate authority
log_changeca=Changed certificate authority
log_stopca=Shut down certificate authority
log_assignment=Changed module categories
log_categories=Changed category names
log_theme=Change theme to $1
log_theme_def=Changed theme to Webmin default
log_referers=Changed trusted referers

themes_title=Webmin Themes
themes_desc=Themes control the appearance of the Webmin user interface, including icons, colours, backgrounds and possibly the layout pages. The selection box below can be used to choose one of the themes installed on your system.
themes_sel=Current theme :
themes_default=Default Webmin theme
themes_change=Change
themes_installdesc=Use the form below to install a new Webmin theme on your system. Themes are typically distributed in <tt>.wbt</tt> files, but can also be installed from RPM files if supported by your operating system.
themes_installok=Install Theme

themes_err1=Failed to install theme from $1
themes_efile=File does not exist
themes_err2=Failed to install uploaded theme
themes_ebrowser=Your browser does not support file uploads
themes_err3=Failed to install theme from $1
themes_eurl=Invalid URL
themes_etar=Not a valid theme file : $1
themes_einfo=Theme $1 is missing a theme.info file
themes_enone=File does not appear to contain any themes
themes_eextract=Extract failed : $1
themes_done=The following themes have been successfully installed on your system :
themes_line=$1 in $2 ($3 kB)
themes_ecomp=File is compressed, but the $1 command was not found on your system
themes_ecomp2=Failed to uncompress file : $1
themes_egzip=File is gzipped, but the $1 command was not found on your system
themes_egzip2=Failed to gunzip file : $1
themes_erpm=Not a Webmin theme RPM
themes_eirpm=RPM install failed : $1
themes_ok=Theme changed successfully .. redirecting to the Webmin index page.

referers_title=Trusted Referers
referers_desc=This page allows you to configure Webmin's referer checking support, which is used to prevent malicious links from other websites tricking your browser into doing dangerous things with Webmin. However, if you have links to Webmin from your own websites that you don't want to be warned about you should add those sites to the list below.
referers_list=Trusted websites
referers_none=Trust links from unknown referers
referers_referer=Referer checking enabled?

syslet_title=Syslet Auto-Download
syslet_desc=This page is for configuring the automatic download and install of missing Eazel Syslets to your Webmin server.
syslet_auto=Automatically download syslets?
syslet_base=Base URLs for syslet RPMs
syslet_err=Failed to save syslet options
syslet_ebase=Invalid base URL
 07070100017260000081a40000000000000002000000013ac03892000050ab000000200000000000000000000000000000001500000003reloc/webmin/lang/es  index_title=Configuraci髇 de Webmin
index_return=configuraci髇 de webmin

access_title=Control de Acceso a IP
access_desc=El servidor Webmin puede ser configurado para denegar o permitir el acceso desde s髄o ciertas direcciones IP, mediante este formulario. Se pueden introducir tanto nombres de m醧uinas (p.ej. foo.bar.com) como de redes IP (p.ej. 10.254.3.0 o 10.254.1.0/255.255.255.128). Debes de limitar el acceso a tu servidor a direcciones de confianza, especialmente si es accesible desde Internet. De otra manera, cualquiera que adivine tu clave de acceso tendr control completo de tu sistema.
access_header=Control de Acceso
access_all=Permitir desde todas las direcciones
access_allow=S髄o permitir desde las direcciones listadas
access_deny=Denegar las direcciones listadas
access_err=Error al actualizar lista de acceso
access_enone=No se ha entrado direcci髇
access_enet='$1' no es una direcci髇 de red v醠ida
access_emask='$1' no es una m醩cara de red v醠ida
access_eip='$1' no es una IP completa o una direcci髇 de red
access_ehost=Error al buscar direcci髇 IP para '$1'
access_eself=Tu direcci髇 IP actual ($1) deber韆 tener denegado el acceso

bind_title=Puerto y Direcciones
bind_desc=Si la m醧uina en que Webmin se est ejecutando tiene direcciones IP m鷏tiples, el servidor puede ser configurado para que escuche s髄o en una 鷑ica direcci髇, mediante este formulario. El puerto TCP en el que escucha Webmin puede tambi閚 ser configurado aqu. Nota - tu navgador puede pedirte que vuelvas a hacer login si cambias el puerto o la direcci髇 de escucha.
bind_header=Direcci髇 IP y Puerto
bind_ip=Escuchar en Direcci髇 IP
bind_all=Todas
bind_port=Escuchar en Puerto
bind_err=Error al cambiar direcci髇
bind_eip=Error al obtener direcci髇 IP para '$1'
bind_eassign=La direcci髇 '$1' no est asignada a este sistema
bind_eport=El puerto $1 ya est siendo usado

log_title=Historial
log_desc=Webmin puede ser configurado para escribir una relaci髇 de aciertos en el servidor web mediante el formato de archivo CLF est醤dar. Si se activa el historial, puedes seleccionar si deseas grabar direcciones IP o nombres de m醧uina y cada cu醤to deseas limpiar el archivo de historial. Cuando se activa, los historiales se graban en el archivo $1.
log_desc2=Cuando est activado el login, Webmin escribir un historial m醩 detallado de las acciones de usuarios en el archivo $1. Este historial puede ser visto y analizado con el m骴ulo de Historial de Acciones de Webmin para ver ex醕tamente lo que cada usuario de Webmin ha estado haciendo.
log_header=Historial de Servidor Web
log_disable=Desactivar historial
log_enable=Activar historial
log_resolv=Llevar historial de nombres de m醧uinas resueltas
log_clear=Limpiar historial cada $1 horas
log_uall=Acciones de historial de todos los usuarios
log_users=S髄o las acciones de historial de...
log_mall=Acciones de historial en todos los m髎ulos
log_modules=S髄o las acciones de historial en...
log_files=Llevar historial de los cambios hechos en archivos por cada acci髇
log_err=Error al salvar opciones de historial
log_ehours='$1' no es un n鷐ero v醠ido de horas
log_ediff=Tu sistema no tiene el comand $1 necesario para llevar historial de los cambios de archivos

proxy_title=Servidores Proxy
proxy_desc=Si la m醧uina en que se ejecuta Webmin est tras un Cortafuegos de cualquier clase, puedes necesitar activar el servidor proxy para ser usado para acceder a sitios web y FTP. Ciertos m骴ulos como <tt>Paquetes de Software</tt>, usar醤 estos proxies al descargar archivos o programas.
proxy_header=Servidores Proxy
proxy_http=Proxy HTTP
proxy_ftp=Proxy FTP
proxy_none=Ninguno
proxy_nofor=Sin proxy para
proxy_err=Error al salvar proxies
proxy_ehttp=El servidor proxy HTTP debe ser digitado como una direcci髇 URL
proxy_eftp=El servidor proxy FTP debe ser digitado como una direcci髇 URL

ui_title=Interfaz de Usuario
ui_desc=Este formulario te permite editar las opciones de interfaz de usuario utilizadas por todos los m骴ulos. Al digitar colores, cada uno debe de ser especificado usando el sistema RGB est醤dar, dentro del cual cada valor es un n鷐ero hexadecimal desde el 00 al ff.
ui_header=Opciones de Interfaz de Usuario
ui_default=Por defecto
cs_page=Fondo de p醙ina
cs_text=Texto normal
cs_table=Fondo de tabla
cs_header=Cabecera de tabla
cs_link=Texto de enlace
ui_texttitles=縈uestro los t韙ulos como texto?
ui_sysinfo=Mostrar login y nombre de m醧uina
ui_sysinfo0=En la parte inferior del navegador
ui_sysinfo1=En el t韙ulo del navegador
ui_sysinfo2=Por encima de la cabecera de p醙ina
ui_err=No pude salvar los colores
ui_ered=Valor rojo inv醠ido para '$1'
ui_egreen=Valor verde inv醠ido para '$1'
ui_eblue=Valor azul inv醠ido para '$1'

mods_title=M骴ulos de Webmin
mods_desc1=Los m骴ulos de Webmin pueden ser a馻didos tras las instalaci髇 mediante el formulario de la derecha. Los M骴ulos se distribuyen t韕icamente en archivos <tt>.wbm</tt>, cada uno de los cuales puede contener uno o m醩 m骴ulos. Los m骴ulos pueden tambi閚 ser instalados desde archivos RPM si tu sistema operativo los soporta.
mods_install=Instalar M骴ulo
mods_local=Desde archivo local
mods_uploaded=Desde archivo a cargar
mods_ftp=Desde direcci髇 URL ftp o http
mods_installok=Instalar M骴ulo desde Archivo
mods_desc2=Si deseas tener m醩 de una copia del mismo m骴ulo con configuraciones diferentes, el formulario de la derecha te permite clonar cualquier m骴ulo existente. El clon tendr un nuevo nombre, una nueva configuraci髇 de m骴ulo, unas opciones nuevas de control de acceso y se puede hacer que est disponible para diferentes usuarios.
mods_clone=Clonar M骴ulo
mods_cname=M骴ulo a clonar
mods_cnew=Nombre del m骴ulo clonado
mods_cloneok=Clonar M骴ulo
mods_desc3=Los m骴ulos existentes y los clones de m骴ulos pueden ser borrados mediante el formulario inferior. Si un m骴ulo con clon es borrado, estos, a su vez, ser醤 tambi閚 borrados. Una vez que un m骴ulo ha sido borrado, debe de ser reinstalado antes de que se pueda volver a utilizar de nuevo. Un m骴ulo no puede ser borrado si otro m骴ulo depende de 閘.
mods_delete=Borrar M骴ulos
mods_deleteok=Borrar M骴ulos Seleccionados

install_err1=Error al instalar m骴ulo desde $1
install_efile=El archivo no existe
install_err2=Error al instalar m骴ulo de carga
install_ebrowser=Tu navegador no soporta carga de archivos
install_err3=Error al instalar m骴ulo desde $1
install_eurl=Direcci髇 URL inv醠ida
install_etar=No es un archivo de m骴ulo v醠ido: $1
install_einfo=El M骴ulo $1 no tiene un archivo 'module.info'
install_enone=El archivo no parece que contenga m骴ulo alguno
install_eos=El M骴ulo $1 no soporta este sistema operativo ($2 $3)
install_ever=El M骴ulo $1 requiere la versi髇 $2 o superior de Webmin
install_edep=El M骴ulo $1 requiere el m骴ulo $2
install_eextract=Extracci髇 fallida: $1
install_title=Instalar M骴ulo
install_desc=Los siguientes m骴ulos han sido instalados correctamente y a馻didos a tu lista de control de acceso:
install_line=$1 en $2 ($3 kB)
install_ecomp=El archivo est comprimido, pero el comando $1 no se ha encontrado en tu sistema
install_ecomp2=No pude descomprimir el archivo: $1
install_egzip=El archivo est comprimido por gzip, pero el comando $1 no ha sido encontrado en tu sistema
install_egzip2=No pude hacer gunzip del archivo: $1
install_erpm=No es un m骴ulo RPM de Webmin
install_eirpm=La instalaci髇 RPM fall: $1

clone_err=Error al clonar m骴ulo
clone_elink=enlace simb髄ico fallido: $1
clone_ecopy=Error al copiar config: $1
clone_desc=Clon de $1

delete_err=Error al borrar m骴ulos
delete_edep=El M骴ulo $1 no puede ser borrado pues el m骴ulo $2 depende de 閘
delete_desc1=$1 (Clon de $2)
delete_desc2=$1 en $2 ($3 kB)
delete_title=Borrar M骴ulos
delete_msg=Los siguientes m骴ulos han sido borrados correctamente de tu instalaci髇 de  Webmin:
delete_sure=縀st醩 seguro de querer borrar los m骴ulos seleccionados?. $1 KB de archivos ser醤 borrados para siempre.

os_title=Sistema Operativo
os_desc=Este formulario te permite cambiar el sistema operativo utilizado por Webmin. Esto es muy 鷗il si acabas de actualizar tu m醧uina a una nueva versi髇 de tu distribuci髇 de sistema operativo. Ten en cuenta que la configuraci髇 de los m骴ulos instalados no cambia, incluso si hay diferencias entre el sistema viejo y el nuevo.
os_desc2=Tambi閚 puedes cambia la trayectoria de b鷖queda utilizada por Webmin al ejecutar programas y la trayectoria compartida de bibliotecas que se pasa a los programas.
os_header=Sistema Operativo de la M醧uina
os_curros=Sistema operativo en uso
os_currver=Versi髇 de SO en uso
os_new=Nuevo sistema operativo
os_path=Trayectoria de b鷖queda de programas
os_ld_path=Trayectoria de b鷖queda de bibliotecas

lang_title=Lenguaje
lang_title2=Lenguaje de Webmin
lang_lang=Mostrar en lenguaje
lang_intro=Esta p醙ina te permite seleccionar qu lenguaje utilizar Webmin para mostrar los t韙ulos, las peticiones de datos y los mensajes.
lang_ok=Cambiar Lenguaje

ssl_title=Encriptaci髇 SSL
ssl_desc1=La m醧uina en que Webmin se est ejecutando parece tener el m骴ulo SSLeay de Perl instalado. Usando 閟te, Webmin soporta comunicaciones SSL encriptadas entre el navegador y el servidor. Si est醩 accediendo a tu servidor Webmin a trav閟 de Internet, debes de considerar de manera definitiva el utilizar SSL para prevenir que cualquiera capture tu clave de acceso a Webmin.
ssl_desc2=Aviso - s髄o activa el soporte SSL si tienes un navegador que lo soporte a su vez (como p.ej. Netscape o IE), y no tienes un cortafuegos bloqueando requerimientos <b>https</b> entre tu navegador y la m醧uina de Webmin
ssl_header=Soporte SSL
ssl_enable=Activar soporte SSL, si se puede
ssl_disable=Desactivar soporte SSL, incluso si est disponible

startpage_title=Opciones de P醙ina 蚽dice
startpage_intro=Esta p醙ina te permite definir cu醤tos iconos quieres tener por cada fila dentro de la p醙ina 韓dice
startpage_tabs=縋ongo los m骴ulos por Categor韆s?
startpage_nocol=N鷐ero de Columnas
startpage_alt=Usar cabecera alternativa
startpage_ecols='$1' no es un n鷐ero v醠ido de columnas
startpage_gotoone=縄r directo al m骴ulo<br>si el usuario s髄o tiene uno?
startpage_deftab=Categor韆 por defecto

upgrade_title=Actualizar Webmin
upgrade_desc=Este formulario te permite actualizar tu instalaci髇 completa de Webmin a una nueva versi髇. Puedes instalar desde un archivo local, un archivo cargado o desde la 鷏tima versi髇 en <a href=http://www.webmin.com/>www.webmin.com</a>. Al igual que con una actualizaci髇 manual, todos los valores de tu configuraci髇 y los m骴ulos de terceros ser醤 mantenidos.
upgrade_descrpm=Este formulario te permite actualizar tu completa instalaci髇 de Webmin a una nueva versi髇 mediante la opci髇 de actualizaci髇 de RPM. Pudes instalar de un archivo RPM local, de un archivo cargado o desde la 鷏tima versi髇 en <a href=http://www.webmin.com/>www.webmin.com</a>. Igual que con una actualizaci髇 manual, todos tus valores de configuraci髇 y m骴ulos de terceros ser醤 mantenidos.
upgrade_descsolaris-pkg=Este formulario te permite actualizar tu instalaci髇 completa de Webmin a una nueva versi髇 mediante el borrado del paquete solaris actual e instalando uno nuevo. Puedes instalar de un archivo de paquete solaris local, de un archivo cargado desde la 鷏tima versi髇 en <a href=http://www.webmin.com/>www.webmin.com</a>. Igual que con una actualizaci髇 manual, todos tus valores de configuraci髇 y m骴ulos de terceros ser醤 mantenidos.
upgrade_local=Desde archivo local
upgrade_uploaded=Desde archivo cargado
upgrade_ftp=趌tima versi髇 desde www.webmin.com
upgrade_ok=Actualizar Webmin
upgrade_err1=No pude actualizar desde $1
upgrade_err2=No pude actualizar desde archivo cargado
upgrade_err3=No pude actualizar desde www.webmin.com
upgrade_efile=El archivo no existe
upgrade_ebrowser=Tu navegador no soporta carga de archivos
upgrade_eversion=No puedo desactualizar a versi髇 $1
upgrade_erpm=No es un archivo v醠ido RPM para Webmin
upgrade_egunzip=Tu sistema no tiene el comando <tt>gunzip</tt>
upgrade_etar=No es un archivo tar v醠ido de Webmin
upgrade_emod=El archivo es un m骴ulo de Webmin y no una completa actualizaci髇 de Webmin. Quiz quieras usar la p醙ina de los <a href='$1'>M骴ulos de Webmin</a> para instalarlo.
upgrade_setup=Ejecutando el gui髇 setup.sh para actualizar Webmin... Por favor, espera un minuto hasta que se complete antes de continuar.
upgrade_setuprpm=Ejecutando RPM para actualizar Webmin... Por favor, espera un minuto hasta que termine antes de continuar.
upgrade_setuppackage=Ejecutando pkgadd para actualizar Webmin... Por favor, espera un minuto hasta que termine antes de continuar.
upgrade_esolaris=La caracter韘tica de actualizaci髇 de Webmin no funciona en este momento si has instalado de un paquete Solaris. Por favor actualiza de forma manual.

ca_title=Autoridad de Certificado
ca_old=Certificado existente
ca_header1=Crear nuevo certificado CA
ca_header2=Editar certificado CA
ca_newmsg1=Tu servidor Webmin ya est configurado como una autoridad de certificado. Puedes utilizar este formulario para configurarlo de nuevo, pero cualquier certificado ya dado no funcionar.
ca_newmsg2=Este formulario deber韆 de ser usado para configurar tu servidor Webmin como una autoridad de certificado (CA) de tal manera que los usuarios puedan requerir certificados a los Usuarios de Webmin para identificarlos en el servidor sin tener que hacer login.
ca_cn=Nombre de autoridad
ca_email=Direcci髇 de correo
ca_ou=Departamento
ca_o=Organizaci髇
ca_sp=Estado
ca_c=C骴igo de Pa韘
ca_create=Configurar autoridad de certificado
ca_oldmsg1=El certificado CA que est usando este servidor se muestra debajo. Puedes cambiarlo pegando el certificado desde otro CA, pero cualquier certificado ya dado a los usuarios ya no funcionar.
ca_oldmsg2=Si ya has configurado un CA en otro servidor Webmin, puedes pegar su certificado debajo en vez de configurar un nuevo CA. Esto permitir a los usuarios de otro servidor el ser reconocidos por este servidor tambi閚.
ca_err=No pude configurar autoridad de certificado
ca_setupok=Tu autoridad de certificado ha sido configurada con 閤ito. Los usuarios pueden ahora usar el m骴ulo de Usuarios de Webmin para requerir certificados.
ca_stop=Parar autoridad de certificados
ca_stopmsg=Haz click en este bot髇 para hacer que Webmin pare de aceptar certificados ya existentes o de dar nuevos. Esto forzar a los usuarios a utilizar autentificaci髇 de nombres de usuario y claves de acceso en su lugar.
ca_stopok=Tu autoridad de certificado ha sido cerrada con 閤ito.
ca_eminiserv=Los certificados de cliente SSL son s髄o soportados bajo miniserv.
ca_eversion=La versi髇 del m骴ulo Net::SSLeay de Perl instalada en tu sistema no soporta certificados SSL de cliente.
ca_essleay=El comando $1 de administraci髇 SSL no fue encontrado en tu sistema. Puedes necesitar cambiar la trayectoria en la configuraci髇 del m骴ulo de Usuarios de Webmin.
ca_essl=La certificaci髇 SSL s髄o puede ser configurada cuando el servidor web se est ejecutando en modo SSL.

session_title=Autenticaci髇
session_desc1=Cuando est activada, el tiempo m醲imo de clave de acceso protege tu servidor Webmin de los ataques de desencriptaci髇 de clave de acceso por fuerza bruta mediante la adici髇 de un retardo de expansi髇 cont韓ua entre cada intento de fallo de login para el mismo usuario.
session_desc2=Cuando la autenticaci髇 de sesi髇 est activada, cada sesi髇 de los usuarios que han hecho login ser seguida por Webmin, haciendo posible que los usuarios que no hacen nada en ese monento sean echados fuera del sistema. Ten en cuenta que el activar o desactivar la autenticaci髇 de sesi髇 puede forzar a todos los usuarios a que tengan que volver a hacer login.
session_header=Opciones de Autenticaci髇 y sesi髇
session_pdisable=Desactivar tiempos m醲imos de clave de acceso
session_penable=Activar tiempo m醲imo de clave de acceso
session_blockhost=Bloquear m醧uinas con m醩 de $1 logins fallidos durante $2 segundos.
session_syslog=Llevar historial de m馻quinas bloqueadas en <tt>syslog</tt>
session_disable=Desactivar autenticaci髇 de sesi髇
session_enable=Activar autenticaci髇 de sesi髇
session_localoff=Siempre requerir nombre de usuario y clave de acceso
session_localon=Permitir login sin clave de acceso para los usuarios que coindidan de la m醧uina local
session_logout=Auto logout tras $1 minutos de inactividad
session_locking=Activar bloqueo en Webmin
session_err=No pude salvar autenticaci髇
session_elogouttime=Tiempo m醲imo para logout sin poner o inv醠ido
session_eblockhost_time=Tiempo de bloqueo sin poner o inv醠ido
session_eblockhost_failures=Logins de bloqueo sin poner o inv醠idos
session_ecookie=Tu navegador no soporta cookies, los cuales son requeridos para autenticaci髇 de sesi髇
session_elsof=La autenticaci髇 local requiere el programa <tt>lsof</tt>

assignment_title=Reasignando M骴ulos
assignment_header=Asignaci髇 de categor韆 de m骴ulo

categories_title=Editar Categor韆s
categories_header=ID de categor韆 y descripciones
categories_new=Nueva categor韆
categories_add=A馻dir

log_access=Cambiado control de acceso a IP
log_bind=Cambiado puerto y direcci髇
log_log=Cambiadas opciones de historial
log_proxy=Cambiados servidores proxy
log_ui=Cambiadas opciones de interfaz de usuario
log_install=M骴ulo $1 instalado
log_tinstall=Instalado tema $1
log_clone=Clonado m骴ulo $1 en $2
log_delete=Borrado m骴ulo $1
log_os=Cambiado sistema operativo
log_lang=Cambiado lenguaje global
log_startpage=Cambiadas opciones de p醙ina 韓dice
log_upgrade=Actualizado Webmin a versi髇 $1
log_session=Cambiadas opciones de autenticaci髇
log_ssl=Cambiado modo de encriptaci髇 SSL
log_setupca=Configurada autoridad de certificado
log_changeca=Cambiada autoridad de certificado
log_stopca=Cerrada autoridad de certificado
log_assignment=Cambiadas categor韆s de m骴ulo
log_categories=Cambiados nombres de categor韆s
log_theme=Cambiar tema a $1
log_theme_def=Cambiado tema al de por defecto de Webmin
log_referers=Cambiado referenciadores fiables

themes_title=Temas de Webmin
themes_desc=Los temas controlan la apariencia del interfaz de usuario de Webmin, incluyendo iconos, colores, fondos y pos韇lemente las p醙inas de distribuci髇. La caja de selecci髇 inferior puede usarse para seleccionar uno de los temas instalados en tu sistema.
themes_sel=Tema en curso:
themes_default=Tema por defecto de Webmin
themes_change=Cambiar
themes_installdesc=Usa el formulario inferior para instalar un nuevo tema de Webmin en tu sistema. Los temas son t韕icamente distribu韉os en archivos <tt>.wbt</tt>, pero tambi閚 pueden ser instalados desde archivos RPM si son soportados por tu sistema operativo.
themes_installok=Instalar Tema

themes_err1=No pude instalar tema desde $1
themes_efile=El archivo no existe
themes_err2=No pude instalar teme cargado
themes_ebrowser=Tu navegador no soporta carga de archivos
themes_err3=No pude instalar el tema para $1
themes_eurl=URL inv醠ida
themes_etar=No es un archivo de tema v醠ido: $1
themes_einfo=El tema $1 no contiene un archivo theme.info
themes_enone=El archivo no parece contener ning鷑 tema
themes_eextract=Fall la extracci髇: $1
themes_done=Los siguientes temas han sido instalado corr閏tamente en tu sistema:
themes_line=$1 en $2 ($3 kB)
themes_ecomp=El archivo est comprimido, pero el comando $1 no se encontr en tu sistema
themes_ecomp2=No pude descomprimir arhivo: $1
themes_egzip=El archivo est comprimido por gzip, pero el comando $1 no se encuentra en tu sistema
themes_egzip2=No pude hacer gunzip del archivo: $1
themes_erpm=No es un tema RPM de Webmin
themes_eirpm=Fall la instalaci髇 RPM: $1
themes_ok=Tema cambiado con 閤ito... redireccionando a la p醙ina de 韓dice de Webmin.

referers_title=Referenciadores de Confianza
referers_desc=Esta p醙ina te permite configurar el soporte de revisi髇 referenciadora de Webmin, el cual se usa para prevenir enlaces maliciosos desde otros sitios web enga馻ndo a tu navegador para que haga cosas peligrosas con Webmin. Sin embargo, si tienes enlaces a Webmin desde tus propios sitios web de los que no deseas ser avisado, deber韆s a馻dir esos sitios a la lista inferior.
referers_list=Sitios web de confianza
referers_none=Enlaces de confianza desde referenciadores desconocidos
referers_referer=縍evisi髇 de referenciador activada?

syslet_title=Auto-Descarga de Syslet
syslet_desc=Esta p醙ina es para la configuraci髇 de la descarga e instalaci髇 autom醫ica de Syslets de Eazel inexistentes a tu servidor de Webmin.
syslet_auto=緿escargo syslets autom醫icamente?
syslet_base=Direcci髇 (URL) base para RMPs de syslet
syslet_err=No pude salvar las opciones de syslet
syslet_ebase=Direcci髇 (URL) inv醠ida
 07070100017261000081a40000000000000002000000013ac0389200004655000000200000000000000000000000000000001500000003reloc/webmin/lang/fr  index_title=Configuration de Webmin
index_return=la configuration de Webmin

access_title=Contr鬺e d'acc鑣 par adresses IP
access_desc=Le serveur Webmin peut 阾re configur pour ignorer ou allouer l'acc鑣 seulement  certaines adresses IP gr鈉e  cette page.  Les noms d'h魌e (comme foo.bar.com) et adresses IP d'h魌es ou de r閟eaux (comme 10.254.3.0 ou 10.254.1.0/255.255.255.128) peuvent aussi 阾re entr閟.  Vous pouvez limiter l'acc鑣  votre serveur depuis des adresses en lesquelles vous avez confiance, surtout si ce serveur est accessible depuis l'Internet.  Sinon, quiconque devinera votre mot de passe pourra avoir un acc鑣 complet  votre syst鑝e.
access_header=Contr鬺e de l'Acc鑣
access_all=Autoriser depuis partout
access_allow=Autoriser uniquement depuis les adresses list閑s
access_deny=Refuser uniquement depuis les adresses list閑s
access_err=Impossible de mettre  jour la liste d'acc鑣
access_enone=Aucune adresse saisie
access_enet='$1' n'est pas une adresse r閟eau valide
access_emask='$1' n'est pas un masque de r閟eau valide
access_eip='$1' n'est pas une adresse IP ou un masque de r閟eau complet
access_ehost=Impossible de trouver l'adresse IP de '$1'
access_eself=Votre adresse IP courante ($1) serait refus閑

bind_title=Port et Adresse
bind_desc=Si l'h魌e sur lequel Webmin fonctionne a plusieurs adresses IP, le serveur peut 阾re configur pour n'閏outer que sur une seule adresse.  Le port TCP sur lequel Webmin 閏oute les requ阾es peut aussi 阾re configur ici.  Note : Votre navigateur web peut vous demander de vous authentifier de nouveau apr鑣 avoir chang une de ces propri閠閟.
bind_header=Adresse IP et Port
bind_ip=Adresse IP d'閏oute
bind_all=Toutes
bind_port=Port d'閏oute
bind_err=Impossible de changer l'adresse
bind_eip=Impossible de trouver l'adresse IP de '$1'
bind_eassign=L'adresse '$1' n'est pas assign閑 sur cet h魌e
bind_eport=Le port $1 est d閖 occup sur cette adresse

assignment_title=Les modules par cat間orie
assignment_header=Affectation des modules par cat間orie

categories_title=Afficher les cat間ories
categories_header=Nom de la cat間orie et description
categories_new=Cr閑r une nouvelle cat間orie
categories_add=Cr閑r

log_title=Audit
log_desc=Webmin peut 阾re configur pour 閏rire un fichier d'audit des acc鑣 au serveur web en format standard CLF.  Si l'audit est en route, vous pouvez aussi choisir si ce sont les adresses IP ou les noms d'h魌e qui sont sauvegard閟 et le rythme avec lequel le fichier de journal '$1' est effac.
log_desc2=Si vous activez l'audit, webmin d閠aillera davantage les actions 閒fectu閑s par les utilisateurs dans le fichier '$1'. Le fichier log peut 阾re consult gr鈉e au module webmin "Contr鬺e des logs" pour analyser les actions 閒fectu閑s par les utilisateurs.
log_header=Audit du serveur Web
log_disable=Aucun audit
log_enable=Activer l'audit
log_resolv=蒫rire les noms d'h魌es
log_clear=Effacer le fichier toutes les $1 heure(s)
log_uall=Enregistrer les actions de tous les utilisateurs
log_users=Enregistrer les actions des l'utilisateurs ..
log_mall=Enregistrer les actions sur tous les modules
log_modules=Enregistrer les actions sur les modules ..
log_files=Enregistrer les modifications faites sur tous les fichiers de chaque module
log_err=Impossible d'閏rire les options d'audit
log_ehours='$1' n'est pas une valeur d'heure(s) valide
log_ediff=Vous ne poss閐ez pas la commande $1. Celle-ci permet d'enregistrer les modifications effectu閑s par les utilisateurs dans les fichiers de log.

proxy_title=Proxy
proxy_desc=Si l'h魌e sur lequel Webmin est ex閏ut est derri鑢e un pare-feu de n'importe quel sorte, vous devriez configurer le proxy pour acc閐er au Web et aux sites FTP.  Certains modules comme <tt>Logiciels Install閟</tt>, utilisent ces serveurs proxy pour t閘閏harger des fichiers.
proxy_header=Serveurs Proxy
proxy_http=Proxy Web (HTTP)
proxy_ftp=Proxy FTP
proxy_none=Aucun
proxy_nofor=Aucun proxy pour
proxy_err=Impossible de sauvegarder les configurations proxy
proxy_ehttp=Le proxy Web (HTTP) doit 阾re entr comme une adresse Web (URL)
proxy_eftp=Le proxy FTP doit 阾re entr comme une adresse Web (URL)

ui_title=Interface utilisateur
ui_desc=Ce formulaire vous permet de modifier les options de l'interface utilis閑 par tous les modules. Si vous d閒inissez des couleurs, vous devez les d閒inir en utilisant le syst鑝e RGB standard pour lequel une couleur est d閒inie par un nombre h閤ad閏imal compris entre 00 et ff.
ui_header=Options de l'interface utilisateur
ui_default=Defaut
cs_page=arri鑢e plan
cs_text=texte standard
cs_table=Table d'arri鑢e plan
cs_header=en-t阾e de tableau
cs_link=Lien
ui_texttitles=Afficher les titres comme du texte ?
ui_sysinfo=Afficher le nom de login et le nom de machine
ui_sysinfo0=En bas de la page
ui_sysinfo1=en titre du navigateur
ui_sysinfo2=au dessu du titre de la page courante
ui_err=erreur de sauvegarde des couleurs
ui_ered=valeur '$1' invalide comme couleur rouge
ui_egreen=valeur '$1' invalide comme couleur verte
ui_eblue=valeur '$1' invalide comme couleur bleue

colours_title=Th鑝e de Couleurs
colours_desc=Cette page vous permet d'閐iter le th鑝e de couleurs utilis par tous les modules.  Chaque couleur est d閒inie par le syst鑝e standard RGB, chaque valeur doit 阾re un nombre hexad閏imal entre 00 et FF.
colours_header=Th鑝e de Couleurs
colours_default=D閒aut
cs_page=Arri鑢e plan de la page
cs_text=Texte Normal
cs_table=Arri鑢e plan des tableaux
cs_header=En-t阾e des tableaux
cs_link=Liens hypertextes
colours_err=Impossible d'enregistrer les couleurs
colours_ered=Valeur invalide '$1' pour le rouge
colours_egreen=Valeur invalide '$1' pour le vert
colours_eblue=Valeur invalide '$1' pour le bleu

mods_title=Modules Webmin
mods_desc1=Les modules Webmin peuvent 阾re ajout閟 apr鑣 l'installation en utilisant cette page.  Les modules sont g閚閞alement distribu閟 avec l'extension <tt>.wbm</tt>, chacun des fichiers peut contenir un ou plusieurs modules parfois sp閏ifiques qui pourront donc ne pas fonctionner pour vous.
mods_install=Installer un Module
mods_local=Fichier
mods_uploaded=Fichier t閘閏harg
mods_ftp=Adresse FTP ou Web
mods_installok=Installer un Module
mods_desc2=Si vous voulez avoir plus qu'une copie du m阭e module avec des configurations diff閞entes, vous n'avez qu'a utiliser la section de droite pour cloner un module existant.  Un clone va avoir un nouveau nom, un nouveau module de configuration, de nouvelle options de contr鬺e d'acc鑣 et peut 阾re utilis par diff閞ent utilisateurs.
mods_clone=Dupliquer un Module
mods_cname=Module  dupliquer
mods_cnew=Nom du module dupliquer
mods_cloneok=Dupliquer un Module
mods_desc3=Les modules existant et les copies de module peuvent 阾re supprim閟 avec cette page.  Quand un module est supprim, il doit 阾re r閕nstall afin de pouvoir l'utiliser de nouveau.  Un module ne peut pas 阾re supprim si d'autre(s) module(s) en d閜endent.
mods_delete=Supprimer le(s) Module(s)
mods_deleteok=Supprimer le(s) Module(s) S閘ectionn(s)

install_err1=Impossible d'installer le module  partir de $1
install_efile=Le fichier n'existe pas
install_err2=Impossible d'installer le module t閘閏harg
install_ebrowser=Votre navigateur ne supporte pas l'envoi de fichier
install_err3=Impossible d'installer le module  partir de $1
install_eurl=Adresse web invalide
install_etar=N'est pas un fichier de module valide : $1
install_einfo=Le module $1 n'a pas de fichier module.info
install_enone=Le fichier ne semble contenir aucun module
install_eos=Le module $1 ne supporte pas ce syst鑝e d'exploitation ($2 $3)
install_ever=Le module $1 n閏essite Webmin version $2 ou mieux
install_edep=Le module $1 n閏essite le module $2
install_eextract=Impossible d'extraire $1
install_title=Installation d'un Module
install_desc=Le(s) module(s) suivant(s) ont 閠 install(s) et ajout(s)  votre liste de contr鬺e d'acc鑣 :
install_line=$1 dans $2 ($3 kB)

clone_err=Impossible de cloner le module
clone_elink=Impossible de faire le lien symbolique : $1
clone_ecopy=impossible de copier la configuration : $1
clone_desc=Clone de $1

delete_err=Impossible de supprimer le(s) module(s)
delete_edep=Le module $1 ne peut 阾re supprim, car le module $2 en d閜end
delete_desc1=$1 (Clone de $2)
delete_desc2=$1 dans $2 ($3 kB)
delete_title=Supprimer Modules
delete_msg=Le(s) module(s) suivant(s) a(ont) 閠(s) supprim(s) de votre installation de Webmin :

ca_title=Certificat d'authorit
ca_old=Certificat actuel
ca_header1=Cr閑r un nouveau certificat
ca_header2=Editer le certificat certificate
ca_newmsg1=Votre serveur webmin poss鑔e d閖 un certificat d'autorit. Vous pouvez utiliser ce formulaire pour en installer un autre, mais les certificats utilis閟 par les utilisateurs ne seront plus valides.
ca_newmsg2=Ce formulaire doit 阾re utilis pour configurer votre serveur avec certificat d'autorit de mani鑢e  ce que les utilisateurs puissent s'identifier sans la proc閐ure de login.
ca_cn=Nom de l'autorit
ca_email=Adresse 閘ectronique
ca_ou=Departement
ca_o=Organisation
ca_sp=Pays
ca_c=Code postal
ca_create=Cr閑r le certificat
ca_oldmsg1=Le certificat utilis par ce serveur est pr閟ent ci-dessous. Vous pouvez le modifier mais tout ancien certificat utilis par les utilisateurs ne sera plus valide.
ca_oldmsg2=Si vous avez d閖 install un certificat sur un autre serveur, vous pouvez l'utiliser ci-dessous plut魌 que d'en cr閑r un autre. Ceci permettra aux utilisateurs de l'autre serveur de s'identifier 間alement sur celui-ci.
ca_err=Erreu de cr閍tion du certificat
ca_setupok=Votre certificat  閠 cr殚. Les utilisateurs peuvent maintenant utiliser le module "Utilisateurs Webmin" pour demander le certificat pour eux-m阭es.
ca_stop=Annuler lecerificat d'autorit
ca_stopmsg=Click this button to stop Webmin from accepting existing certificates or issuing new ones. This will force users to use username and password authentication instead.
ca_stopok=Your certificate authority has been successfully shut down.
ca_eminiserv=SSL client certificates are only supported under miniserv.
ca_eversion=The version of the Perl Net::SSLeay module installed on your system does not support SSL client certificates.
ca_essleay=The SSL administration command $1 was not found on your system. You may need to change the path in the Webmin Users module configuration.
ca_essl=SSL certification can only be setup when the webserver is running in SSL mode.

os_title=Syst鑝e d'Exploitation
os_desc=Cette page vous permet de changer le syst鑝e d'exploitation que Webmin traite comme 閠ant celui du serveur.  Ceci peut 阾re utile quand vous mettez  jour le syst鑝e et qu'une nouvelle version de la distribution du syst鑝e d'exploitation est install閑.  Notez que la configuration des modules install閟 ne sera pas chang閑, m阭e s'il y a une diff閞ence entre l'ancien choix du syst鑝e et le nouveau.
os_desc2=Vous pouvez 間alement modifier le chemin d'acc鑣 (PATH) utilis par webmin pour ex閏uter les programmes, ainsi que le chemin des librairies partag閑s.
os_header=Syst鑝e d'Exploitation H魌e
os_curros=Syst鑝e d'exploitation courant
os_currver=Version courante du syst鑝e d'exploitation
os_new=Nouveau syst鑝e d'exploitation
os_path=Chemin d'acc鑣 des programmes
os_ld_path=Chemin d'acc鑣 des librairies

lang_title=Langue
lang_title2=Langue Webmin
lang_lang=Afficher dans la langue suivante
lang_intro=Cette page vous permet de choisir la langue que Webmin utilisera pour afficher les titres, les indices et les messages
lang_ok=Changer de Langue

ssl_title=Encryption SSL
ssl_desc1=L'h魌e sur lequel Webmin s'ex閏ute semble avoir le module Perl SSLeay d'install.  En utilisant ceci, Webmin supporte la communication encrypt閑 par SSL avec votre navigateur.  Si vous acc閐ez au serveur Webmin par Internet, vous devriez vraiment utiliser SSL pour pr関enir les attaquants qui pourraient capturer votre mot de passe Webmin car sans SSL, il circule en clair.
ssl_desc2=Attention - ne seulement activer SSL si votre navigateur le supporte (comme Netscape ou Internet Explorer), et qu'il n'y a aucun pare-feu qui bloque les requ阾es <b>https</b> entre votre fureteur et l'h魌e Webmin
ssl_header=Support SSL
ssl_enable=Supporter SSL, si disponible (FORTEMENT CONSEILLE !)
ssl_disable=Ne pas utiliser le support SSL, m阭e s'il est disponible

startpage_title=Options de la page d'accueil
startpage_intro=Cette page vous permet de d閒inir combien d'頲ones vous voulez avoir par ligne sur la page d'acceuil
startpage_tabs=Modules cat間oris閟?
startpage_nocol=Nombre de Colones
startpage_alt=Utiliser des ent阾e alternatives
startpage_ecols=$1 n'est pas un nombre de colonne valide
startpage_gotoone=Allez directement au module<br>s'il n'y a acc鑣 qu' un seul?

upgrade_title=Mise  Jour de Webmin
upgrade_desc=Cette page vous permet de mettre  jour votre installation compl鑤e de Webmin avec une autre version. Vous pouvez installer  partir d'un fichier local, d'un fichier t閘閏harg ou de la derni鑢e version de <href=http://www.webmin.com/>www.webmin.com</a>. Tout comme pour une mise--jour manuelle, toute votre configuration et les modules rajout閟 seront conserv閟.
upgrade_local=D'un fichier local
upgrade_uploaded=D'un fichier t閘閏harg
upgrade_ftp=Derni鑢e version sur www.webmin.com
upgrade_ok=Mettre  jour Webmin
upgrade_err1=Imposible de mettre  jour de $1
upgrade_err2=Impossible de mettre  jour  partir d'un fichier t閘閏harg
upgrade_err3=Impossible de mettre  jour  partir de www.webmin.com
upgrade_efile=Le fichier n'existe pas
upgrade_ebrowser=Votre navigateur ne supporte pas l'envoi de fichier
upgrade_eversion=Vous ne pouvez pas mettre  jour vers la version $1
upgrade_egunzip=Votre syst鑝e ne semble pas avoir la commande <tt>gunzip</tt>
upgrade_etar=Ceci n'est pas un fichier tar valide
upgrade_setup=Executez le script setup.sh pour mettre  jour Webmin .. Veuillez attendre que cette op閞ation soit finie avant de continuer.

themes_title=Les th鑝es de webmin
themes_desc=Les th鑝es permettent de modifier l'apparence de l'interface graphique. Vous pouvez changer les ic鬾es, le fond d'閏ran ou la disposition des pages. Utilisez le menu ci-dessous pour changer de th鑝e.
themes_sel=Th鑝e courrant :
themes_default=Th鑝e webmin
themes_change=Changer
themes_installdesc=Utilisez le formulaire ci-apr鑣 pour changer de th鑝e. Les th鑝es sont g閚閞alement des fichiers au format <tt>.wbt</tt> mais les formats RPM peuvent 間alement 阾re utilis閟 si votre syst鑝e le supporte.
themes_installok=Installer le th鑝e

themes_err1=Ne peut installer le th鑝e: $1
themes_efile=Le fichier n'existe pas
themes_err2=Ne peut installer le th鑝e t閘閏harg
themes_ebrowser=Votre navigateur ne supporte pas le fichier t閘閏harg
themes_err3=Ne peut installer le th鑝e: $1
themes_eurl=URL invalide
themes_etar=Ce fichier n'est pas un th鑝e valide : $1
themes_einfo=Le th鑝e $1 ne comporte pas de fichier theme.info
themes_enone=Ce fichier ne semblme pas correspondre  un th鑝e
themes_eextract=Erreur de d閏ompression : $1
themes_done=Le th鑝e suivant  閠 install sur votre syst鑝e :
themes_line=$1 dans $2 ($3 kB)
themes_ecomp=FLe fichier est compr閟s, mais le commande $1 n'a pas 閠 trouv閑 sur votre syst鑝e
themes_ecomp2=Erreur  la d閏ompression du fichier : $1
themes_egzip=Le fichier est compr閟s, mais la commande $1 n'a pas 閠 trouv閑 sur votre syst鑝e
themes_egzip2=Erreur  la d閏ompression du fichier : $1
themes_erpm=Ceci n'est pas un th鑝e RPM pour webmin
themes_eirpm=erreur lors de l'installation du fichier RPM : $1
themes_ok=Le th鑝e  閠 mis  jour .. vous allez 阾re redirig vers la page principale de webmin.

referers_title=R閒閞ents de confiance
referers_desc=Cette page vous permet de configurer l'assistant contr鬺ant les r閒閞ents de Webmin. Par r閒閞ents, on entend les sites  partir desquels webmin est  accessible. Cet assistant est utilis afin d'関iter que des op閞ations dangeureuses puissent 阾re effectu閑s  partir de liens provenant de sites non 閜rouv閟. Si vous acc閐ez  webmin depuis vos propres sites web et que vous ne souhaitez pas en 阾re pr関enus, ajouter ces sites dans la liste ci-dessous.                                                                                           
referers_list=sites web de confiance
referers_none=autoriser les liens depuis des sites inconnus
referers_referer=Activer l'assistant de contr鬺e des r閒閞ents ?

session_title=Authentification
session_desc1=Le contr鬺e des mots de passe permet de prot間er votre serveur webmin des utilisateurs tentant de forcer le syst鑝e avec de faux mots de passe. Un d閘ai de plus en plus important est impos entre chaque connexion de l'utilisateur non reconnu.
session_desc2=Lorsque le contr鬺e des mots de passe est activ, chaque utilisateur connect sera suivi par le syst鑝e de sorte qu'il pourra 阾re automatiquement d閏onnect apr鑣 un certain temps d'inactivit. Ceci forcera alors les utilisateurs  se reconnecter.
session_header=options d'authentication
session_pdisable=D閟activer le contr鬺e des mots de passe
session_penable=Activer le contr鬺e des mots de passe
session_blockhost=Interdire les acc鑣 aux postes ayant plus de $1 erreurs de mot de passe en $2 secondes.
session_syslog=Enregistrer les postes interdis dans le fichier de log <tt>syslog</tt>
session_disable=D閟activer la session d'authentication
session_enable=Activer la session d'authentication
session_localoff=Toujours demander le nom d'utilisateur et le mot de passe
session_err=Impossible de sauver l'authentication
session_logout=d閏onnection automatique apr鑣 $1 minutes d'inactivit

session_localon=Allow login without password for matching users from localhost
session_locking=Enable locking in Webminoui
session_elogouttime=Missing or invalid logout time
session_eblockhost_time=Missing or invalid blocking time
session_eblockhost_failures=Missing or invalid blocking logins
session_ecookie=Your browser does not support cookies, which are required for session authentication
session_elsof=Local authentication requires the <tt>lsof</tt> program

   07070100017262000081a40000000000000002000000013ac03893000037de000000200000000000000000000000000000001500000003reloc/webmin/lang/he  index_title=Webmin 屮  
index_return=webmin 屮  

access_title=IP 狩 忾 
access_desc=痖 熹忏轼 帔  webmin 脬 圄 噱 轭痱 忾  祀徨 IP 铖彘铄 狎铞蝈 桢赳 驿.  痖 熹黛殂 帔  溧 (www.momo.co.il) 噱 帔 膪遽 銲P  (123.321.123.321). 脬嚅 礻 熹忉殪 帔 溻轾 祀徨 铄妃 犰徙, 犷殄玢 囗 澌 酊彗 焘轾 钿嚅痂. 噻, 腱 噻 痃 帔 漶轳钹 , 铟犰 殍 铎噤 蜢 漕琦.
access_header=狩 忾
access_all=圄 铍 潆徨
access_allow=Only allow from listed addresses
access_deny=Deny from listed addresses
access_err=Failed to update access list
access_enone=爨 痖 膪遽
access_enet='$1' is not a valid network address
access_emask='$1' is not a valid netmask
access_eip='$1' is not a complete IP or network address
access_ehost=Failed to find IP address for '$1'
access_eself=Your current IP address ($1) would be denied

bind_title=Port and Address
bind_desc=If the host on which Webmin is running has multiple IP addresses, the server can be configured to listen on only one address using this form. The TCP port on which Webmin listens can also be configured here. Note - your web browser may prompt you to log in again after changing the port or binding address.
bind_header=IP Address and Port
bind_ip=Listen on IP Address
bind_all=All
bind_port=Listen on Port
bind_err=Failed to change address
bind_eip=Failed to get IP address for '$1'
bind_eassign=The address '$1' is not assigned to this system
bind_eport=Port $1 is already in use

log_title=Logging
log_desc=Webmin can be configured to write a log of web server hits, in the standard CLF log file format. If logging is enabled, you can also choose whether IP addresses or hostnames are recorded, and how often the log file is cleared. When enabled, logs are written to the file $1.
log_desc2=When logging is enabled, Webmin will also write a more detailed log of user actions to the file $1. This log can be viewed and analysed with the Webmin Actions Log module to see exactly what each Webmin user has been doing.
log_header=Web Server Logging
log_disable=Disable logging
log_enable=Enable logging
log_resolv=Log resolved hostnames
log_clear=Clear logfiles every $1 hours
log_uall=Log actions by all users
log_users=Only log actions by ..
log_mall=Log actions in all modules
log_modules=Only log actions in ..
log_files=Log changes made to files by each action
log_err=Failed to save logging options
log_ehours='$1' is not a valid number of hours
log_ediff=Your system does not have the command $1 needed for logging file changes

proxy_title= 豇鬻耖
proxy_desc=If the host on which Webmin is running is behind a firewall of some kind, you may need to set the proxy server to use for accessing web and FTP sites. Certain modules, such as <tt>Software Packages</tt>, will use these proxies when downloading files or programs.
proxy_header= 豇鬻耖
proxy_http=HTTP proxy
proxy_ftp=FTP proxy
proxy_none=囿 噻
proxy_nofor=No proxy for
proxy_err=Failed to save proxies
proxy_ehttp=The HTTP proxy server must be entered as a URL
proxy_eftp=The FTP proxy server must be entered as a URL

ui_title=铑 铢
ui_desc=桢赳 驿 钹豉 礻 祺徨 帔 鲠蜷 铑 漕铢 祀 漕邈屐轫. When entering colours, each must be specified using the standard RGB system, where each value is a hex number from 00 to ff. 
ui_header=圄彘妃 铑 铢
ui_default=狲轼 铉沆
cs_page= 潋铄
cs_text=梓耔 殪
cs_table=  栳熹
cs_header=脲  栳熹
cs_link=鲠  溟豇-鏖
ui_texttitles=溧 熹鲩 帔 潆妃 腓黢 ?
ui_err=爨 漩扃 禊铄 帔 漩狎轫
ui_ered=Invalid red value for '$1'
ui_egreen=Invalid green value for '$1'
ui_eblue=Invalid blue value for '$1'

mods_title=Webmin Modules
mods_desc1=Webmin modules can be added after installation by using the form to the right. Modules are typically distributed in <tt>.wbm</tt> files, each of which can contain one or more modules. If a module is licenced to run only on a certain host, you may not be able to install it.
mods_install=Install Module
mods_local=From local file
mods_uploaded=From uploaded file
mods_ftp=From ftp or http URL
mods_installok=Install Module From File
mods_desc2=If you wish to have more than one copy of the same module with different configurations, the form to the right allows you to clone any existing module. The clone will have a new name, a new module configuration, new access control options and may be made available to different users.
mods_clone=Clone Module
mods_cname=Module to clone
mods_cnew=Cloned module name
mods_cloneok=Clone Module
mods_desc3=Existing modules and clones of modules can be deleted using the form below. If a module with clones is deleted, they will also be removed. Once a module has been deleted it must be reinstalled before you can use it again. A module cannot be deleted if other modules depend on it.
mods_delete=Delete Modules
mods_deleteok=Delete Selected Modules

install_err1=Failed to install module from $1
install_efile=File does not exist
install_err2=Failed to install uploaded module
install_ebrowser=Your browser does not support file uploads
install_err3=Failed to install module from $1
install_eurl=Invalid URL
install_etar=Not a valid module file : $1
install_einfo=Module $1 is missing a module.info file
install_enone=File does not appear to contain any modules
install_eos=Module $1 does not support this operating system ($2 $3)
install_ever=Module $1 requires Webmin version $2 or above
install_edep=Module $1 requires module $2
install_eextract=Extract failed : $1
install_title=Install Module
install_desc=The following modules have been successfully installed and added to your access control list :
install_line=$1 in $2 ($3 kB)
install_ecomp=File is compressed, but the $1 command was not found on your system
install_ecomp2=Failed to uncompress file : $1
install_egzip=File is gzipped, but the $1 command was not found on your system
install_egzip2=Failed to gunzip file : $1

clone_err=Failed to clone module
clone_elink=symlink failed : $1
clone_ecopy=failed to copy config : $1
clone_desc=Clone of $1

delete_err=Failed to delete modules
delete_edep=Module $1 cannot be deleted, as the module $2 depends on it
delete_desc1=$1 (Clone of $2)
delete_desc2=$1 in $2 ($3 kB)
delete_title=Delete Modules
delete_msg=The following modules have been successfully deleted from your Webmin installation :

os_title=铗 漪蜢
os_desc=This form allows you to change the operating system Webmin treats your system as. This can be useful if you have upgraded your machine to a new version of your operating system distribution. Note that the configuration of installed modules will not be changed, even if there are differences between the old and new systems.
os_desc2=You can also change the search path used by Webmin when running programs, and the shared library path passed to any programs.
os_header=Host Operating System
os_curros=铗 漪蜢 疱腌辁
os_currver=忾 铗 漪蜢 漯咫玳
os_new=铗 漪蜢 玢
os_path=Program search path
os_ld_path=Library search path

lang_title=
lang_title2=Webmin 
lang_lang=邂 狴翡
lang_intro=桢赳 驿 钹豉 禊疱 帔 漪 徜 帔 噤 帔 滗邈蝈, 溷糸, 咫 漕襻獒
lang_ok= 

ssl_title=SSL 漩麴
ssl_desc1=The host on which Webmin is running appears to have the SSLeay Perl module installed. Using this, Webmin supports SSL encrypted communication between your browser and the server. If you are accessing your Webmin server over the Internet, then you should definately consider using SSL to prevent an attacker capturing your Webmin password.
ssl_desc2=Warning - only turn on SSL support if you have a browser that supports SSL (such as Netscape or IE), and there is no firewall blocking <b>https</b> requests between your browser and the Webmin host
ssl_header=SSL Support
ssl_enable=Enable SSL support, if available
ssl_disable=Disable SSL support, even if available

startpage_title=圄彘妃 泱 溧轲泖
startpage_intro=This page allows you to define how many icons you want to have per row on the index page
startpage_tabs=Categorise modules?
startpage_nocol=Number of Columns
startpage_alt=Use alternative header
startpage_ecols='$1' is not a valid number of columns
startpage_gotoone=Go direct to module<br>if user only has one?

upgrade_title=蜚脲 Webmin
upgrade_desc=This form allows you to upgrade your entire webmin installation to a new version. You can install from a local file, an uploaded file or from the latest version at <a href=http://www.webmin.com/>www.webmin.com</a>. Just as with a manual upgrade, all your config settings and third-party modules will be kept.
upgrade_descrpm=This form allows you to upgrade your entire webmin installation to a new version using RPM's upgrade option. You can install from a local RPM file, an uploaded file or from the latest version at <a href=http://www.webmin.com/>www.webmin.com</a>. Just as with a manual upgrade, all your config settings and third-party modules will be kept.
upgrade_descsolaris-pkg=This form allows you to upgrade your entire webmin installation to a new version by removing the current solaris package and installing a new one. You can install from a local solaris package file, an uploaded file or from the latest version at <a href=http://www.webmin.com/>www.webmin.com</a>. Just as with a manual upgrade, all your config settings and third-party modules will be kept.
upgrade_local=neuc. neunh
upgrade_uploaded=neuc. avugkv knjac
upgrade_ftp=Latest version from www.webmin.com
upgrade_ok=蜚脲 Webmin
upgrade_err1=Failed to upgrade from $1
upgrade_err2=Failed to upgrade from uploaded file
upgrade_err3=Failed to upgrade from www.webmin.com
upgrade_efile=麇狨 爨 鏖轫
upgrade_ebrowser=Your browser does not support file uploads
upgrade_eversion=爨 殡屐 禅泮 狲钿, 焘轼襦  $1
upgrade_erpm=麇狨 RPM 爨 轱
upgrade_egunzip=嚅 礻 犷蝤膪 帔 澉遽  <tt>gunzip</tt> 
upgrade_etar=驿 爨 麇狨 TAR 轱
upgrade_setup=铠轷 帔 漪麇沅  setup.sh 脬 祢汶 帔 潸咫痄... 珉 殇. 钿 徨蝤.
upgrade_setuprpm=铤鏖 玑殪 潸黟.... 驿 戾麋 琥殡 骖 铍遽泮. 铕耖屣
upgrade_setuppackage=Running pkgadd to upgrade Webmin .. Please wait a minute until it is complete before continuing.
upgrade_esolaris=Webmin's upgrade feature does not currently work when you have installed from a Solaris package. Please upgrade manually instead. 囵 爨 珏  铢 皴禅轳 狎狲辁

ca_title=Certificate Authority
ca_old=Existing certificate
ca_header1=Create new CA certificate
ca_header2=Edit CA certificate
ca_newmsg1=Your Webmin server is already setup as a certificate authority. You can use this form to set it up again, but any certificates already issued to uses will no longer work.
ca_newmsg2=This form should be used to setup your Webmin server as a certificate authority (CA) so that users can request certificates in the Webmin Users to identify themselves to the server without having to login.
ca_cn=Authority name
ca_email=Email address
ca_ou=Department
ca_o=Organisation
ca_sp=State
ca_c=Country code
ca_create=Setup certificate authority
ca_oldmsg1=The CA certificate this server is using is displayed below. You may change it by pasting in the certificate from another CA, but any certificates already issued to users will no longer work.
ca_oldmsg2=If you have already setup a CA on another Webmin server, you can paste its certificate below instead of setting up a new CA. This will allow users from the other server to be recognised by this server as well.
ca_err=Failed to setup certificate authority
ca_setupok=Your certificate authority has been setup successfully. Users can now use the Webmin Users module to request certificates for themselves.
ca_stop=Shutdown certificate authority
ca_stopmsg=Click this button to stop Webmin from accepting existing certificates or issuing new ones. This will force users to use username and password authentication instead.
ca_stopok=Your certificate authority has been successfully shut down.
ca_eminiserv=SSL client certificates are only supported under miniserv.
ca_eversion=The version of the Perl Net::SSLeay module installed on your system does not support SSL client certificates.
ca_essleay=The SSL administration command $1 was not found on your system. You may need to change the path in the Webmin Users module configuration.
ca_essl=SSL certification can only be setup when the webserver is running in SSL mode.

session_title=嚅铄
session_desc1=铕怵屣 驿, 膣溴 铄趄, 钼汩 帔 滏铒   漕蝠 熹黛泮 耖耦, 脬 祛疱 玳翦  囔轫
session_desc2=When session authentication is enabled, each logged in users' session will be tracked by Webmin, making it possible for idle users to be automatically logged out. Be aware that enabling or disabling session authentication may force all users to re-login.
session_header=Authentication and session options
session_pdisable=Disable password timeouts
session_penable=Enable password timeouts
session_blockhost=Block hosts with more than $1 failed logins for $2 seconds.
session_syslog=Log blocked hosts to <tt>syslog</tt>
session_disable=Disable session authentication
session_enable=Enable session authentication
session_logout=Auto-logout after $1 minutes of inactivity
session_locking=Enable locking in Webmin
session_err=Failed to save session locking
session_elogouttime=Missing or invalid logout time
session_eblockhost_time=Missing or invalid blocking time
session_eblockhost_failures=Missing or invalid blocking logins

assignment_title=Reassign Modules
assignment_header=Module category assignments

categories_title=蝤殡 澉桠屮殄
categories_header=铖豇 驿彘 澉桠屮殇, 妃噱
categories_new=麒忮 玢
categories_add=溴耋

log_access=Changed IP access control
log_bind=Changed port and address
log_log=Changed logging options
log_proxy=Changed proxy servers
log_ui=Changed user interface options
log_install=Installed module $1
log_clone=Cloned module $1 to $2
log_delete=Deleted module $1
log_os=Changed operating system
log_lang=Changed global language
log_startpage=Changed index page options
log_upgrade=Upgraded Webmin to version $1
log_session=Changed authentication options
log_ssl=Changed SSL encryption mode
log_setupca=Set up certificate authority
log_changeca=Changed certificate authority
log_stopca=Shut down certificate authority
log_assignment=Changed module categories
log_categories=Changed category names
  07070100017263000081a40000000000000002000000013ac0389200001fa4000000200000000000000000000000000000001500000003reloc/webmin/lang/hu  index_title=Webmin be醠l韙醩a
index_return=a Webmin be醠l韙醩醜oz

access_title=IP hozz醘閞閟-vez閞l閟
access_desc=A Webmin kiszolg醠 be醠l韙hat 鷊y, hogy egyes IP c韒ekr鮨 tiltja vagy enged閘yezi a hozz醘閞閟t az al醔bi 鹯lap haszn醠at醰al. Hostnevek (pl. foo.bar.com) 閟 IP h醠髗atok (pl. 10.254.3.0 vagy 10.254.1.0/255.255.255.128) egyar醤t megadhat髃. Aj醤lott korl醫ozni a g閜閔ez t鰎t閚 hozz醘閞閟t megb韟hat c韒ekre, k黮鰊鰏en ha az el閞het az Internet-en kereszt黮, k黮鰊ben b醨ki, aki megsejti az 謓 jelszav醫, szabad kezet kap a rendszer ir醤y韙醩a felett.
access_header=Hozz醘閞閟-vez閞l閟
access_all=Enged閘yez閟 minden c韒r鮨
access_allow=Csak a list醔an szerepl c韒ekr鮨 enged閘yezett
access_deny=Tilt醩 a list醔an szerepl c韒ekr鮨
access_err=A hozz醘閞閟i lista friss韙閟e nem siker黮t
access_enone=Nem lett c韒 megadva
access_enet='$1' egy 閞v閚ytelen h醠髗ati c韒
access_emask='$1' egy 閞v閚ytelen netmaszk
access_eip=A(z) '$1' nem teljes IP vagy h醠髗ati c韒
access_ehost=Nem siker黮t IP c韒et tal醠ni a(z) '$1' hosthoz.
access_eself=Az 謓 jelenlegi IP c韒e ($1) v閘het鮨eg le van tiltva.

bind_title=Port 閟 C韒
bind_desc=Abban az esetben, Ha a host, amelyen a Webmin fut, t鯾b IP c韒mel rendelkezik, akkor ezzel az 鹯lappal a kiszolg醠 be醠l韙hat 鷊y, hogy csak az egyik c韒et haszn醠ja. A TCP port, amelyen a Webmin figyel, szint閚 itt 醠l韙hat be. Megjegyz閟: miut醤 portot vagy c韒et v醠toztatott, a b鰊g閟z鮦e 鷍ra felk閞heti, hogy l閜jen be.
bind_header=IP c韒 閟 port
bind_ip=Figyelend IP c韒
bind_all=謘szesen
bind_port=Figyelend port
bind_err=A c韒 megv醠toztat醩a nem siker黮t.
bind_eip=A(z) '$1' IP c韒閚ek lek閞閟e nem siker黮t.
bind_eassign=A(z) '$1' c韒 nem tartozik ehhez a rendszerhez.
bind_eport=A(z) $1-es port m醨 haszn醠atban van.

log_title=Napl髗醩
log_desc=A Webmin be醠l韙hat 鷊y, hogy lejegyezze a web kiszolg醠 tal醠atait a szabv醤yos CLF napl骹醞l-form醫umban. Ha a napl髗醩t bekapcsolja, akkor kiv醠aszthatja, hogy mely IP c韒eket vagy hostneveket k韛醤 regisztr醠ni, illetve, hogy milyen gyakoris醙gal t鰎l鮠j鰊 a napl骹醞l. Ha 閘 a lehet鮯間gel, akkor a bejegyz閟ek a $1 f醞lban fognak t醨ol骴ni.
log_header=Web kiszolg醠 napl髗醩
log_disable=Napl髗醩 kikapcsol醩a
log_enable=Napl髗醩 bekapcsol醩a
log_resolv=Megfejtett hostnevek regisztr醠醩a
log_clear=A napl骹醞l t鰎l閟e minden $1 . 髍醔an
log_err=A napl髗醩ra vonatkoz opci髃 elment閟e nem siker黮t.
log_ehours='$1' nem megfel sz醡 髍asz醡

proxy_title=Proxy kiszolg醠髃
proxy_desc=Ha a hoszt, amelyen a Webmin fut, t鹺fal m鰃鰐t van, akkor lehet, hogy sz黭s間es egy proxy kiszolg醠 a web 閟 FTP helyek hozz醘閞閟閔ez. Egyes modulok, mint p閘d醬l a <tt>Szoftver csomagok</tt>, haszn醠ni fogj醟 ezeket a proxy-kat f醞lok vagy programok let鰈t閟閔ez.
proxy_header=Proxy kiszolg醠髃
proxy_http=HTTP proxy
proxy_ftp=FTP proxy
proxy_none=Nincs
proxy_nofor=Nincs proxy-haszn醠at az al醔biakra:
proxy_err=A proxy-be醠l韙醩 ment閟e nem siker黮t.
proxy_ehttp=A HTTP proxy kiszolg醠髏 URL-k閚t kell megadni.
proxy_eftp=Az FTP proxy kiszolg醠髏 URL-k閚t kell megadni.

colours_title=Sz韓ek
colours_desc=Ezzel az 鹯lappal 醫szerkesztheti az 鰏szes modul 醠tal haszn醠t sz韓eket. Minden sz韓 a szabv醤y RGB-rendszerben adhat meg, ahol az 閞t閗ek hexadecim醠is sz醡ok 00-t髄 FF-ig.
colours_header=Sz韓鰏sze醠l韙醩
colours_default=Alap閞telmezett
cs_page=Oldal h醫t閞
cs_text=Normal sz鰒eg
cs_table=T醔la h醫t閞
cs_header=T醔la fejl閏
cs_link=Link sz鰒eg
colours_err=A sz韓ek elment閟e nem siker黮t
colours_ered=A(z) '$1' v鰎鰏 鰏szetev鮦閚ek 閞t閗e nem megfelel.
colours_egreen=A(z) '$1' z鰈d 鰏szetev鮦閚ek 閞t閗e nem megfelel.
colours_eblue=A(z) '$1' k閗 鰏szetev鮦閚ek 閞t閗e nem megfel.

mods_title=Webmin modulok
mods_desc1=Telep韙閟 ut醤 a Webminhez tov醔bi modulok adhat髃 a jobboldali 鹯lappal. Az 鰏szetev鮧 jellemz鮡n <tt>.wbm</tt> f醞lokban terjednek, amelyegy vagy t鯾b modult is tartalmazhat. Ha egy modul licensze olyan, hogy csakegy adott hosztr髄 futhat, akkor azt nem telep韙heti. 
mods_install=Modul telep韙閟e
mods_local=Helyi f醞lb髄
mods_uploaded=Felt鰈t鰐t f醞lb髄
mods_ftp=FTP vagy HTTP URL-r鮨
mods_installok=Modul telep韙閟e f醞lb髄
mods_desc2=Ha ugyanarr髄 a modulr髄 szeretne egyn閘 t鯾b m醩olatot k閟z韙eni, de k黮鰊b鰖 be醠l韙醩okkal, akkor a jobboldali 鹯lappal l閠rehozhatja b醨mely megl関 modul kl髇j醫. A kl髇nak 鷍 neve, 鷍 be醠l韙醩ai, 鷍 hozz醘閞閟t vez閞l kapcsol骾 醠tal k黮鰊b鰖 felhaszn醠髃 sz醡醨a el閞het lehet.
mods_clone=Kl髇 modul
mods_cname=Kl髇ozand modul
mods_cnew=Kl髇ozott modul neve
mods_cloneok=Modul kl髇oz醩a
mods_desc3=L閠ez modulok 閟 ezek kl髇jai t鰎鰈het鮧 az al醔bi 鹯lappal. Ha egy modul a kl髇jaival egy黷t t鰎l鮠ik, akkor teljesen elt黱ik a rendszerr鮨. Ha egy modul egyszer let鰎l鮠鰐t, akkor 鷍ra kell telep韙eni ahhoz, hogy 鷍ra haszn醠ni lehessen. Egy modul nem t鰎鰈het ha egy m醩ik r 閜黮.
mods_delete=Modulok t鰎l閟e
mods_deleteok=Kiv醠asztott modulok t鰎l閟e
install_err1=A(z) $1 f醞b髄 modul telep韙閟 nem siker黮t
install_efile=A f醞l nem l閠ezik
install_err2=A felt鰈t鰐t modul telep韙閟e nem siker黮t
install_ebrowser=Az 謓 b鰊g閟z鮦e nem t醡ogatja a f醞lok felt鰈t閟閠
install_err3=A(z) $1 c韒r鮨 a modultelep韙閟 nem siker黮t
install_eurl=閞v閚ytelen URL
install_etar=蓃v閚ytelen modul f醞l : $1
install_einfo=A(z) $1 modulhoz nincs module.info f醞l
install_enone=A file nem tartalmaz modulokat
install_eos=A(z) $1 modul nem t醡ogatja ezt az oper醕i髎 rendszert ($2 $3)
install_ever=A(z) $1 modulhoz $2 vagy nagyobb verzi髎z醡 Webmin sz黭s間es
install_edep=A(z) $1 ig閚yli a(z) $2 modult
install_eextract=A kicsomagol醩 nem siker黮t : $1
install_title=Modul telep韙閟e
install_desc=Az al醔bi modulok telep韙閟e sikeresen befejez鮠鰐t 閟 hozz醓d骴tak  a hozz醘閞閟-vez閞l閟i list醜oz :
install_line=$1 a $2 f醞lban ($3 kB)

clone_err=A modul kl髇oz醩a nem siker黮t
clone_elink=sikertelen symlink : $1
clone_ecopy=a be醠韙醩 m醩ol醩a nem siker黮t : $1
clone_desc=$1 kl髇ja

delete_err=A modulok t鰎l閟e nem siker黮t
delete_edep=A(z) $1 modul nem t鰎鰈het, mert a(z) $2 ig閚yli
delete_desc1=$1 ($2 kl髇ja)
delete_desc2=$1 in $2 ($3 kB)
delete_title=Modulok t鰎l閟e
delete_msg=Az al醔bi modulok a telep韙ett Webminb鮨 sikeresen t鰎l鮠tek :

os_title=Oper醕i髎 rendszer
os_desc=Ezzel az 鹯lappal megv醠toztathatja a Webmin 醠tal fel黦yelt g閜 oper醕i髎 rendszer閠. Ez hasznos lehet, ha a g閜e oper醕i髎 rendszer閠 egy 鷍abbra friss韙ette. Megjegyz閟k閚t, a telep韙ett modulok be醠l韙醩ai nem fognak megv醠tozni, kiv関e ha a r間i 閟 az 鷍 rendszer k鰖鰐t k黮鰊bs間ek vannak.
os_header=A Hoszt Oper醕i髎 Rendszere
os_curros=Jelenlegi oper醕i髎 rendszer
os_currver=Jelenlegi OS verzi髎z醡
os_new=趈 oper醕i髎 rendszer

lang_title=Nyelvezet
lang_title2=Webmin nyelvezete
lang_lang=Haszn醠and nyelv
lang_intro=Ezzel az oldallal be醠l韙htaja, hogy a Webmin milyen nyelvet haszn醠jon a sz鰒egc韒ek, parancssorok 閟 鼁enetek megjelen韙閟閔ez.
lang_ok=Nyelvezet v醠toztat醩a

ssl_title=SSL titkos韙醩
ssl_desc1=A hoszton, amelyen a Webmin fut, fellelhet az SSLeay Perl modul telep韙ett v醠tozata. Ennek haszn醠at醰al a Webmin t醡ogatni fogja a titkos韙ott kommunik醕i髏 a b鰊g閟z 閟 a kiszolg醠 k鰖鰐t. Ha 謓 a Webmin kiszolg醠骿醫 az Internet-en kereszt黮 hasz醠ja, akkor k黮鰊鰏en aj醤lott az SSL haszn醠ata, mellyel megakad醠yozhat egy esetleges t醡ad abban, hogy elcs韕je az 謓 Webmin jelszav醫.
ssl_desc2=Figyelem! Csak akkor kapcsolja be az SSL t醡ogat醩t, ha van olyan b鰊g閟z鮦e, amely t醡ogatja az SSL-t (mint p閘d醬l a Netscape vagy az Internet Explorer), 閟 nincs olyan t鹺fal, amely blokkolja a <b>https</b> k閞閟eket az 謓 b鰊g閟z鮦e 閟 a Webmin hosztja k鰖鰐t.
ssl_header=SSL t醡ogat醩
ssl_enable=SSL t醡ogat醩 enged閘yez閟e, ha lehets間es
ssl_disable=SSL t醡ogat醩 kikapcsol醩a, ha lehets間es

startpage_title=Index oldali opci髃
startpage_intro=Ezzel az oldallal megadhatja, hogy az index oldalon mennyi ikont szeretne soronkent.
startpage_tabs=Kategoriz醠ja a modulokat?
startpage_nocol=Oszlopok sz醡a
startpage_alt=Alternat韛 fejl閏 haszn醠ata
startpage_ecols='$1' egy 閞v閚ytelen oszlopsz醡
07070100017264000081a40000000000000002000000013ac0389200002fc2000000200000000000000000000000000000001500000003reloc/webmin/lang/it  index_title=Configurazione Webmin 
index_return=configurazione webmin

access_title=Accesso IP controllato  
access_desc=Il server Webmin pu&ograve; essere configurato in modo da impedire o consentire l'accesso ad indirizzi IP predefiniti utilizzando questa maschera. Possono essere inseriti anche nomi di host (come foo.bar.com) e reti IP (come 10.254.3.0 o 10.254.1.0/255.255.255.128). Dovresti limitare l'accesso al tuo server ad indirizzi sicuri, specialmente se accessibile tramite internet. In caso contrario, chiunque scopra la tua password potr&agrave; avere controllo completo del tuo sistema. 
access_header=Controllo Accesso
access_all=Accetta qualsiasi indirizzo
access_allow=Accetta solo gli indirizzi immessi
access_deny=Rifiuta solo gli indirizzi immessi
access_err=Errore nell'aggiornamento della lista di accesso
access_enone=Nessun indirizzo immesso
access_enet='$1' non &egrave; un indirizzo di rete valido
access_emask='$1' non &egrave; una netmask valida
access_eip='$1' non &egrave; un indirizzo IP o di rete valido
access_ehost=Non riesco a trovare l'indirizzo IP per '$1'
access_eself=Il tuo indirizzo IP corrente ($1) verrebbe respinto.

bind_title=Porte e Indirizzi
bind_desc=Se l'host su cui Webmin sta girando ha pi&ugrave; di un indirizzo IP,il server pu&ograve; essere configurato in modo da accettare connessioni solo su di un indirizzo utilizzando questa maschera. Inoltre puoi configurare la porta TCP su cui Webmin accetta connessioni. Nota - il tuo web browser puo' richiederti di registrarti nuovamente dopo aver cambiato la porta o l'indirizzo.
bind_header=Indirizzo IP e Porta
bind_ip=Ascolta sull'indirizzo IP
bind_all=Tutti
bind_port=Ascolta sulla porta
bind_err=Errore nel cambio di indirizzo
bind_eip=Impossibile leggere l'indirizzo IP per '$1'
bind_eassign=L'indirizzo '$1' non &egrave; assegnato a questo sistema
bind_eport=La porta $1 &egrave; gi&agrave; in uso

log_title=Logging
log_desc=Webmin pu&ograve; essere configurato in modo da scrivere un log degli hit del webserver, nel formato standard CLF. Se il logging &egrave; abilitato, puoi scegliere se registrare indirizzi IP o nomi degli host, e quanto spesso il file di log e' ripulito. Se abilitati, i log vengono salvati sul file $1.
log_header=Logging del Web Server
log_disable=Disabilita logging
log_enable=Abilita logging
log_resolv=Scrivi sul log nomi host simbolici 
log_clear=Svuota il log ogni $1 ora
log_err=Errore nel salvataggio opzioni di log
log_ehours='$1' non &egrave; un numero valido di ore

proxy_title=Proxy Servers
proxy_desc=Se l'host sul quale Webmin sta girando si trova dietro ad un firewall, potrebbe essere necessario impostare il server proxy da utilizzare per accedere a siti web e FTP. Alcuni moduli, come ad esempio i <tt>Pacchetti Software</tt>, utilizzeranno questi indirizzi per scaricare files o programmi.
proxy_header=Servers Proxy
proxy_http=Proxy HTTP
proxy_ftp=Proxy FTP
proxy_none=Nessuno
proxy_nofor=Nessun proxy per
proxy_err=Impossibile salvare i proxies
proxy_ehttp=Il server proxy HTTP deve essere immesso come URL
proxy_eftp=Il server proxy FTP deve essere immesso come URL

ui_title=Interfaccia Utente
ui_desc=Questa maschera permette di modificare le impostazioni dell'interfaccia utente utilizzate da tutti i moduli. Quando inserisci i colori, ciascuno va specificato utilizzando il sistema RGB, in cui ciascun valore &egrave; un numero esadecimale da 00 a ff. 
ui_header=Opzioni Interfaccia Utente
ui_default=Predefinito
cs_page=Sfondo delle pagine
cs_text=Testo normale
cs_table=Sfondo tabelle
cs_header=Intestazione tabelle
cs_link=Testo collegamento
ui_texttitles=Visualizza titoli come testo
ui_err=Impossibile salvare i colori
ui_ered=Valore del rosso non valido '$1'
ui_egreen=Valore del verde non valido '$1'
ui_eblue=Valore del blu non valido '$1'

mods_title=Moduli Webmin
mods_desc1=I moduli di Webmin possono essere aggiunti dopo l'installazione utilizzando la maschera qui a destra. I moduli vengono normalmente distribuiti in file con estenzione<tt>.wbm</tt>, ciascuno dei quali contenente uno o pi&ugrave; moduli. Se un modulo &egrave; distribuito in modo da girare solo su di un particolare host, potrebbe risultare impossibile installarlo.
mods_install=Installa Modulo
mods_local=Dal filesystem locale
mods_uploaded=Tramite un file-upload
mods_ftp=Da un indirizzo URL ftp o http 
mods_installok=Installa Module da File
mods_desc2=Se vuoi avere pi&ugrave; di una copia dello stesso modulo in configurazioni differenti, il modulo qui a destra permette di clonare qualunque modulo presente. Il clone avr&agrave; un modulo differente, una nuova configurazione, nuove opzioni per il controllo d'accesso e potr&agrave; essere utilizzato da utenti differenti.
mods_clone=Clona Module
mods_cname=Modulo da clonare
mods_cnew=Nome del modulo clonato
mods_cloneok=Clona Modulo
mods_desc3=I moduli presenti e cloni di moduli possono essere cancellati utilizzando la maschera qui sotto. Se un modulo con cloni &egrave; cancellato anche i rispettivi cloni verranno cancellati. Una volta cancellato, &egrave; necessario ristallare un modulo prima di poterlo utilizzare nuovamente. Un modulo non pu&ograve; essere rimosso se altri moduli dipendono su di esso.
mods_delete=Rimuovi Moduli
mods_deleteok=Rimuovi Moduli Selezionati

install_err1=Impossibile installare il modulo da $1
install_efile=Impossibile trovare il file
install_err2=Impossibile installare il file inviato
install_ebrowser=Il tuo browser non consente il file-upload
install_err3=Impossibile installare il modulo da $1
install_eurl=URL non valido
install_etar=Archivio modulo non valido : $1
install_einfo=Nel modulo $1 non &egrave; presente il file module.info 
install_enone=Il file non sembra contenere alcun modulo
install_eos=Il Modulo $1 non supporta questo sistema operativo ($2 $3)
install_ever=Il Modulo $1 richiede Webmin versione $2 o superiori
install_edep=Il Modulo $1 dipende dal modulo $2
install_eextract=Estrazione fallita : $1
install_title=Installa Modulo
install_desc=I seguenti moduli sono stati installati con successo e aggiunti alla tua lista di controllo accessi :
install_line=$1 in $2 ($3 kB)

clone_err=Impossibile clonare il modulo
clone_elink=symlink fallito : $1
clone_ecopy=impossibile copiare la configurazione : $1
clone_desc=Clone di $1

delete_err=Impossibile rimuovere i moduli
delete_edep=Il Modulo $1 non pu&ograve; essere rimosso, visto che il modulo $2 dipende da esso
delete_desc1=$1 (Clone di $2)
delete_desc2=$1 in $2 ($3 kB)
delete_title=Rimuovi Moduli
delete_msg=I seguenti moduli sono stati rimossi con successo dalla vostra installazione di Webmin :

os_title=Sistema Operativo
os_desc=Questa maschera ti permette di modificare il sistema operativo che Webmin crede che il tuo sistema utilizzi. Questo pu&ograve; essere utile per chi ha fatto un upgrade ad una nuova versione del sistema operativo. Nota - La configurazione dei moduli installati non verr&agrave; modificata, anche se ci sono differenze tra il nuovo sistema ed il vecchio.
os_desc2=Puoi inoltre modificare il percorso di ricerca utilizzato da webmin quando esegue i programmi, e il percorso delle librerie dinamiche passato ai programmi stessi.
os_header=Sistema Operativo
os_curros=Sistema Operativo attuale
os_currver=Versione corrente del sistema operativo
os_new=Nuovo sistema operativo
os_path=Percorso di ricerca dei programmi
os_ld_path=Percorso di ricerca delle librerie

lang_title=Lingua
lang_title2=Lingua di Webmin
lang_lang=Utilizza la lingua
lang_intro=Questa pagina permette di scegliere quale linguaggio verr&agrave; utilizzato da Webmin per visualizzare titoli, richieste e messaggi.
lang_ok=Modifica Lingua

ssl_title=Crittografia SSL 
ssl_desc1=Sull'host su cui Webmin sta girando sembra essere installato il modulo Perl SSLeay. Utilizzandolo, Webmin supporta la comunicazione crittata tra il tuo browser ed il server. Se stai utilizzando il tuo server Webmin su Internet, dovresti decisamente considerare questa opzione per impedire ad un malintenzionatodi scoprire la tua password per accedere a Webmin. 
ssl_desc2=Attenzione - abilita il supporto SSL solo se il tuo browser lo prevede ( come ad esempio Netscape o IE), e se non &egrave; presente un firewall che impedisce le richieste <b>https</b> tra il tuo browser e l'host Webmin.
ssl_header=Supporto SSL
ssl_enable=Abilita il supporto SSL, se disponibile
ssl_disable=Disabilita il supporto SSL, anche se disponibile

startpage_title=Opzioni Pagina Principale 
startpage_intro=Questa pagina permette di impostare quante icone vuoi visualizzare per ciascuna riga nella pagina principale
startpage_tabs=Categorizza i moduli?
startpage_nocol=Numero di colonne
startpage_alt=Use intestazione alternativa
startpage_ecols='$1' non &egrave; un numero valido di colonne
startpage_gotoone=Vai direttamente al modulo<br>se l'utente ne ha uno solo?

upgrade_title=Aggiorna Webmin
upgrade_desc=Questa maschera ti permette di aggiornare la tua installazione di Webmin con una nuova versione. Puoi installare da un file locale, tramite un file-upload o dall'ultima versione disponibile su <a href="http://www.webmin.com/">www.webmin.com</a>. In modo analogo ad un aggiornamento manuale, tutti i file di configurazione verranno mantenuti intatti.
upgrade_local=Da un file locale
upgrade_uploaded=Tramite un file-upload
upgrade_ftp=Ultima versione da www.webmin.com
upgrade_ok=Aggiorna Webmin
upgrade_err1=Impossibile aggiornare da $1
upgrade_err2=Impossibile aggiornare dal file immesso 
upgrade_err3=Impossibile aggiornare da www.webmin.com
upgrade_efile=Impossibile trovare il file
upgrade_ebrowser=Il tuo browser non supporta i file uploads
upgrade_eversion=Impossibile aggiornare con una versione meno recente $1
upgrade_egunzip=Il programma <tt>gunzip</tt> non &egrave; presente su questo sistema
upgrade_etar=Archivio tar di webmin non valido
upgrade_setup=Eseguo lo script setup.sh per aggiornare Webmin .. Attendere un minuto sino a quando non termina prima di procedere.

ca_title=Certificate Authority
ca_old=Certificato esistente
ca_header1=Crea un nuovo certificato CA 
ca_header2=Modifica certificato CA 
ca_newmsg1=Il tuo server Webmin &egrave; gi&a; predisposto come CA. Puoi utilizzare questa maschera per impostarlo nuovamente, ma i certificati gi&agrave; emessi cesseranno di funzionare.
ca_newmsg2=Questa maschera dovrebbe essere utilizzata per impostare il tuo server Webmin come una certificate authority (CA) in modo da consentire agli utenti di richiedere certificati in <tt>Utenti Webmin</tt> per essere identificati dal server senza doversi registrare.
ca_cn=Nome Authority
ca_email=Indirizzo Email
ca_ou=Divisione
ca_o=Organizzazione
ca_sp=Stato
ca_c=Codice Paese
ca_create=Imposta certificate authority
ca_oldmsg1=Il certificato CA che questo server sta utilizzando &egrave; visualizzato qui sotto. Lo puoi modificare incollando un certificato emesso da un'altra CA,ma ogni certificato gi&agrave; emesso agli utenti cesser&agrave; di funzionare.
ca_oldmsg2=Se hai gi&agrave; impostato una CA su un altro server Webmin, puoi incollare il certificato qui sotto, senza dover reimpostare una nuova CA. In questo modo consentirai agli utenti riconosciuti dall'altro server di essere riconosciuti anche da questo.
ca_err=Impossibile impostare la certificate authority
ca_setupok=La tua certificate authority &egrave; stata configurata con successo. Gli utenti potranno utilizzare il modulo <tt>Utenti Webmin</tt> per richiedere un certificato.
ca_stop=Ferma certificate authority
ca_stopmsg=Clicca questo pulsante per impedire a Webmin di accettare certificati esistenti o crearne di nuovi. Ci&ograve; forzer&agrave; gli utenti ad utilizzare il metodo di autenticazione basato su nome e password.
ca_stopok=La tua certificate authority &egrave; stata fermata.
ca_eminiserv=SSL client certificates sono supportati solo con miniserv.
ca_eversion=La versione di Perl Net::SSLeay installata non supporta gli SSL client certificates.
ca_essleay=Il comando di amministrazione SSL  $1 non &egrave; stato trovato sul tuo sistema. Potresti dover modificare il percorso nella configurazione Utenti Webmin.
ca_essl=La certificazione SSL pu&ograve; essere impostata solo quando il webserver gira in modalit&agrave; SSL.

  07070100017265000081e40000000000000002000000013ac0389300004f5e000000200000000000000000000000000000001500000003reloc/webmin/lang/nl  index_title=Webmin Configuratie
index_return=webmin configuratie

access_title=IP Toegangs Controle
access_desc=De Webmin server kan via dit formulier worden geconfigureerd om alleen toegang te verlenen of te weigeren vanaf bepaalde IP adressen. Hostnamen (zoals foo.bar.com) en IP netwerken (zoals 10.254.3.0 of 10.254.1.0/255.255.255.128) kunnen ook ingevuld worden. U zou de toegang tot uw server moeten beperken tot vertrouwde adressen, zeker wanneer het systeem vanaf het Internet bereikbaar is. Anders heeft iedereen die uw wachtwoord raadt volledige toegang tot uw systeem.
access_header=Toegangs Controle
access_all=Toestaan vanaf alle adressen
access_allow=Alleen toestaan vanaf adressen in de lijst
access_deny=Weigeren vanaf adressen in de lijst
access_err=Fout bij het opslaan van toegangslijst
access_enone=Geen adress ingevoerd
access_enet='$1' is geen geldig netwerkadres
access_emask='$1' is geen geldig netmasker
access_eip='$1' is geen compleet IP of netwerk adres
access_ehost=Fout bij het vinden van het IP adres voor '$1'
access_eself=Uw huidige IP adres ($1) zou worden geweigerd

bind_title=Poort en Adres
bind_desc=Al de host waarop Webmin draait meerdere IP adressen heeft, kan de server met dit formulier worden geconfigureerd om op slechts een adres te luisteren. De TCP poort waarop Webmin luisterd kan hier ook worden geconfigureerd. Opmerking - uw web browser kan u opnieuw om uw gebruikersnaam en wachtwoord vragen als u de poort of het verbindings adres weizigd.
bind_header=IP Adres and Poort
bind_ip=Luister op IP Adres
bind_all=Alle
bind_port=Luister op Poort
bind_err=Fout bij het wijzigen van adres
bind_eip=Fout bij het ophalen van het IP adres voor '$1'
bind_eassign=Het adres '$1' is niet toegewezen aan dit systeem
bind_eport=Poort $1 is al in gebruik

log_title=Rapportage
log_desc=Webmin kan worden geconfigureerd om een rapportage te schrijven van de web server verbindingen, in het standaard CLF log bestand formaat. Als de rapportage is ingeschakeld, kunt u ook kiezen of het IP adres of de hostnaam worden opgeslagen, en hoe vaak het rapportage bestand wordt leeg gemaakt. Wanneer ingeschakeld wordt de rapportage weggeschreven in het bestand $1.
log_desc2=Wanneer de rapportage is ingeschakeld, zal Webmin ook een meer gedetailleerde rapportage maken van gebruikersacties in bestand $1. Deze rapportage kan worden bekeken en worden geannaliseerd met de Webmin Actie Rapportage module om precies te kunnen zien wat iedere webmingebruiker heeft gedaan.
log_header=Web Server Rapportage
log_disable=Uitschakelen rapportage
log_enable=Inschakelen rapportage
log_resolv=Sla opgezochte hostnamen op
log_clear=Leeg apportage bestanden iedere $1 uur
log_uall=Rapporteer acties van alle gebruikers
log_users=Rapporteer alleen de acties van ..
log_mall=Rapporteer acties in alle modules
log_modules=Rapporteer aleen acties in ..
log_files=Rapporteer wijzigingen in bestanden gemaakt door alle acties
log_err=Fout bij het opslaan van de Rapportage opties
log_ehours='$1' is geen geldig aantal uren
log_ediff=Uw systeem bevat niet het commando $1 wat nodig is voor het rapoorteren van weizigingen in bestanden

proxy_title=Proxy Servers
proxy_desc=Als de host waarop Webmin draait zich achter een of andere firewall bevind, zult u mogelijk de proxy server invullen die nodig is voor het maken van een verbinding met het web and FTP sites. Bepaalde modules, zoals <tt>Software Paketten</tt>, zullen dan deze proxies gebruiken voor het downloaden van bestanden of programma's.
proxy_header=Proxy Servers
proxy_http=HTTP proxy
proxy_ftp=FTP proxy
proxy_none=Geen
proxy_nofor=Geen proxy voor
proxy_err=Fout bij het opslaan van de proxies
proxy_ehttp=De HTTP proxy server moet ingevoerd worden als een URL
proxy_eftp=De FTP proxy server moet ingevoerd worden als een URL

ui_title=Gebruikers Interface
ui_desc=Dit formulier stelt u in staat om de gebruikersinterface opties voor alle modules te bewerken. Wanneer u kleuren definieerd, moeten deze worden opgegeven in het standaard RGB systeem, waar iedere waarde een hexadecimaal nummer is tussen 00 en FF.
ui_header=Gebruikers Interface Opties
ui_default=Standaard
cs_page=Pagina achtergrond
cs_text=Normale tekst
cs_table=Tabel achtergrond
cs_header=Tabel kop
cs_link=Link tekst
ui_texttitles=Toon titels als tekst?
ui_sysinfo=Toon login en hostnaam
ui_sysinfo0=Aan de onderzijde van de browser
ui_sysinfo1=In de browser titel
ui_sysinfo2=Boven de pagina kop
ui_err=Fout bij het opslaan van de kleuren
ui_ered=Ongeldige rood waarde voor '$1'
ui_egreen=Ongeldige groen waarde voor '$1'
ui_eblue=Ongeldige blauw waarde voor '$1'

mods_title=Webmin Modules
mods_desc1=Webmin modules kunnen na installatie via het formulier rechts worden toegevoegd. Modules worden standaard gedistribueerd als  <tt>.wbm</tt> bestanden, welke een of meerdere modules kunnen bevatten. Als een module is gelicenceerd om alleen op een bepaalde host te draaien, kunt u het mogelijk niet installeren.
mods_install=Installeer Module
mods_local=Vanuit een lokaal bestand
mods_uploaded=Vanuit een geupload bestand
mods_ftp=Vanaf een ftp of http URL
mods_installok=Installeer Module uit een bestand
mods_desc2=Wanneer u meer dan een kopie van dezelfde module met verschillende configuraties wilt gebruiken, dan kunt u me het formulier rechts iedere bestaande module klonen. De kloon zal een nieuwe naam hebben, een nieuwe configuratie, nieuwe toegang en kan toegankelijk gemaakt worden voor andere gebruikers.
mods_clone=Kloon Module
mods_cname=Module om te klonen
mods_cnew=Gekloonde module naam
mods_cloneok=Kloon Module
mods_desc3=bestaan de modules en hun klonen kunnen met behulp van het onderstaande formulier worden verwijderd. Wanneer een module waarvan u klonen heeft gemaakt verwijderd, worden ook de klonen verwijderd. Wanneer een module is verwijderd moet het opnieuw worden geinstalleerd, voordat u het opnieuw kunt gebruiken. Een module kan niet worden verwijderd ale een anderemodule ervan afhankelijk is.
mods_delete=Verwijder Modules
mods_deleteok=Verwijden Geselecteerde Modules

install_err1=Fout bij het installeren van module uit $1
install_efile=Bestand bestaat niet
install_err2=Fout bij het installeren van een geuploade module
install_ebrowser=Uw brouwser ondersteund geen bestands uploads
install_err3=Fout bij het installeren van module uit $1
install_eurl=Ongeldige URL
install_etar=Geen geldig module bestand : $1
install_einfo=Module $1 mist een module.info bestand
install_enone=Bestand lijkt geen modules te bevatten
install_eos=Module $1 ondersteund dit besturingssysteem niet ($2 $3)
install_ever=Module $1 afhankelijk van Webmin versie $2 of hoger
install_edep=Module $1 afhankelijk van module $2
install_eextract=Uitpakken mislukt : $1
install_title=Installeer Module
install_desc=De volgende modules zijn succesvol geinstalleerd en toegevoegd aan uw toegangscontrolelijst :
install_line=$1 in $2 ($3 kB)
install_ecomp=Bestand is gecomprimeerd, maar het $1 commando is niet gevonden op uw systeem
install_ecomp2=Fout bij decomprimeren van bestand : $1
install_egzip=Bestand is met gzip gecomprimeerd, maar het $1 commando is niet gevonden op uw systeem
install_egzip2=Fout bij get gunzippen van bestand : $1
install_erpm=Geen Webmin module RPM
install_eirpm=RPM installatie mislukt : $1

clone_err=Fout bij het klonen van module
clone_elink=symlink mislukt : $1
clone_ecopy=fout bij het kopieren van configuratie : $1
clone_desc=Kloon van $1

delete_err=Fout bij het verwijderen van modules
delete_edep=Module $1 kan niet worden verwijderd, omdat de module $2 ervan afhankelijk is
delete_desc1=$1 (Kloon van $2)
delete_desc2=$1 in $2 ($3 kB)
delete_title=Verwijder Modules
delete_msg=De volgende modules zijn succesvol verwijderd uit uw Webmin installation :
delete_sure=Weet u zeker dat u de geselecteerde modules wilt verwijderen? $1 kB aan bestanden val permanent worden verwijderd.

os_title=Besturingssysteem
os_desc=Met dit formulier kunt u het besturingssysteem wijzigen als welk Webmin uw systeem beschouwd. Dit kan handig zijn als u uw systeem heeft opgewaardeerd naar een nieuwere versie. Merk op dat de configuratie van de modules niet zal worden veranderd, ook niet wanneer er verschillen zijn tussen het oude en het nieuwe systeem.
os_desc2=U kunt ook het zoekpad wijzigen dat Webmin gebruikt bij het uitvoeren van programma's, en het gedeelde bibliotheken pad wat wordt doorgegeven aan programma's.
os_header=Host Besturingssysteem
os_curros=Huidig besturingssysteem
os_currver=Huidige OS versie
os_new=Nieuw besturingssysteem
os_path=Programma zoekpad
os_ld_path=Gedeelde bibliotheken zoekpad

lang_title=Taal
lang_title2=Webmin Taal
lang_lang=Geef weer in de taal
lang_intro=Deze pagina maakt het u mogelijk de taal te wijzigen die Webmin zal gebruiken voor het weergeven van titels, prompts en brichten.
lang_ok=Wijzig de Taal

ssl_title=SSL Encryptie
ssl_desc1=De host waarop Webmin wordt uitgevoerd blijkt de SSLeay Perl module geinstalleerd te hebben. Hier gebruik van makend, ondersteund Webmin SSL gecondeerde communicatie tussen uw browser en de server. Als u uw Webmin server via het Internet benaderd, dan zou u zeker het gebruik van SSL moeten overwegen om het bemachtigen van uw Webmin wachtwoord door een aanvaller te voorkomen.
ssl_desc2=Waarschuwing - zet de SSL ondersteuning alleen aan als u een browser met SSL ondersteuning gebruikt (zoals Netscape of IE), en er zich geen firewall tussen uw browser en uw Webmin host bevind die <b>https</b> vezoeken blokkeerd
ssl_header=SSL Ondersteuning
ssl_enable=Schakel SSL ondersteuning in, wanneer beschikbaar
ssl_disable=Schakel SSL ondersteuning uit, wanneer beschikbaar

startpage_title=Index Pagina Opties
startpage_intro=Deze pagina laat u definieren hoeveel iconen er zich per rij naast elkaar op uw scherm bevinden op de index pagina.
startpage_tabs=Categoriseer modules?
startpage_nocol=Aantal Kolommen
startpage_alt=Gebruik alternative kop
startpage_ecols='$1' is geen geldig aantal kolommen
startpage_gotoone=Ga rechtstreeks naar de module<br> als degrbeuiker slechts toegang heeft tot een module?
startpage_deftab=Standaard categorie

upgrade_title=Webmin opwaarderen
upgrade_desc=Deze pagina stelt u in staat uw gehele webmin installatie op te waarderen naar een nieuwere versie. U kun installeren vanuit een lokaal bestand, of van de laatste versie op <a href=http://www.webmin.com/>www.webmin.com</a>. Evenals bij een handmatige upgrade, zullen alle configuratie instellingen een third-party modules worden behouden.
upgrade_descrpm=Deze pagina stelt u in staat uw gehele webmin installatie op te waarderen naar een nieuwere versie. U kun installeren vanuit een lokaal bestand, of van de laatste versie op <a href=http://www.webmin.com/>www.webmin.com</a>. Evenals bij een handmatige upgrade, zullen alle configuratie instellingen een third-party modules worden behouden.
upgrade_descsolaris-pkg=Deze pagina stelt u in staat uw gehele webmin installatie op te waarderen naar een nieuwere versie. U kun installeren vanuit een lokaal bestand, of van de laatste versie op <a href=http://www.webmin.com/>www.webmin.com</a>. Evenals bij een handmatige upgrade, zullen alle configuratie instellingen een third-party modules worden behouden.
upgrade_local=Vanaf een lokaal bestand
upgrade_uploaded=Vanaf een geupload bestand
upgrade_ftp=Laatste versie op www.webmin.com
upgrade_ok=Webmin opwaarderen
upgrade_err1=Fout bij het opwaarderen vanaf $1
upgrade_err2=Fout bij het opwaarderen vanaf geupload bestand
upgrade_err3=Fout bij het opwaarderen vanaf www.webmin.com
upgrade_efile=Bestand bestaat niet
upgrade_ebrowser=Uw browser ondersteund geen bestands uploads
upgrade_eversion=U kun uw versie niet vervangen door een oudere $1
upgrade_erpm=Geen geldig webmin RPM bestand
upgrade_egunzip=U systeem bevat niet het <tt>gunzip</tt> commando
upgrade_etar=Geen geldig webmin tar bestand
upgrade_emod=Bestand is een Webmin module, geen compleete Webmin upgrade. U kunt de <a href='$1'>Webmin Modules</a> pagina gebruiken om het te installeren.
upgrade_setup=Voert setup.sh script uit om Webmin op te waarderen.. Een ogenbik geduld a.u.b. totodat het script is voltooid voor dat u verder gaat.
upgrade_setuprpm=Voert RPM uit om Webmin op te waarderen.. Een ogenbik geduld a.u.b. totodat het script is voltooid voor dat u verder gaat.
upgrade_setuppackage=Voert pkgadd uit om Webmin op te waarderen.. Een ogenbik geduld a.u.b. totodat het script is voltooid voor dat u verder gaat.
upgrade_esolaris=Webmin's opwaarderings functie werkt op het moment nog niet wanneer u het heeft geinstalleerd vanuit een Solaris paket. Voor de opwaardering a.u.b. handmatig uit.

ca_title=Certificate Authoriteit
ca_old=Bestaand certificaat
ca_header1=Maak een nieuw CA certificaat aan
ca_header2=Bewerk CA certificaat
ca_newmsg1=Uw Webmin server is reeds ingesteld als een certificate authoriteit. U kunt dit formulier gebruiken om die opnieuw te doen, maar alle reeds uitgegeven certificaten zullen niet meer werken.
ca_newmsg2=Dit formulier moet gebruikt worden om uw Webmin server in te stellen als een certificaat authoriteit (CA) zodat gebruikers een certificaat kunnen aanvragen in de Webmin Users Module zodat ze zich kunnen identificeren zonder dat een gebruikersnaam of wachtwoord vereist is.
ca_cn=Authoreit naam
ca_email=Email adres
ca_ou=Afdeling
ca_o=Organisatie
ca_sp=Staat/Provincie
ca_c=Land code
ca_create=Stel certificaat authoriteit in
ca_oldmsg1=Het CA certificaat dat deze server gebruikt kunt u hieronder zien. U kunt dit wijzigen door er het certificaat van een andere CA in het plakken, maar alle reeds uitgegeven certificaten zullen niet meer werken.
ca_oldmsg2=Als u reeds op een andere webmin server een CA heeft ingesteld dan kunt u het hier simpelweg in plakken, in plaats van een nieuwe in te stellen. Dit zorgt ervoor dat uw gebruikers ook door de andere server zullen worden herkend.
ca_err=Fout bij het instellen van de certificaat authoriteit
ca_setupok=Uw certificaat authoriteit is succesvol ingesteld. Gebruikers kunne nu via de Webmin Gebruikersmodule een certificaat aanvragen.
ca_stop=Sluit de certificaat authoriteit af
ca_stopmsg=Klik op deze knop om het accepteren van bestaande en het uitgeven van nieuwe certificaten uit te schakelen. Hierdoor moeten gebruikers aanmelden met hun wachtwoord en gebruikersnaam.
ca_stopok=Uw certificaat autoriteit is met succes afgesloten.
ca_eminiserv=SSL client certificaten worden alleen ondersteund door.
ca_eversion=De versie van de Perl Net::SSLeay module die op uw systeem is geinstalleerd ondersteund geen SSL client certificaten.
ca_essleay=Het SSL administratie programma $1 is niet gevonden op uw systeem. U moet mogelijk het pad wijzigen in de Webmin Gebruikers module configuratie.
ca_essl=SSL certificatie kan alleen worden ingesteld als de webserver in SSL modus draait.

session_title=Verificatie
session_desc1=Wanneer ingeschakeld beschermen wachtwoord timeouts uw Webmin server van brute-kracht wachtwoord kraak aanvallen door de steeds groter wordende vertraging tussen iedere mislukte inlog poging van dezelfde gebruiker.
session_desc2=Wanneer sessie verificatie is ingeschakeld, wordt iedere ingelogde gebruiker door webmin gevolgd, zodat inactivieve gebruikers automatisch kunnen worden uitgelogd. Wees erop bedacht dat inschakelink of uitschakeling van sessie verificatie mogelijk tot gevolg heeft dat alle gebruiker opnieuw moeten inloggen.
session_header=Verificatie en sessie opties
session_pdisable=Schakel wachtwoord timeouts uit
session_penable=Schakel wachtwoord timeouts in
session_blockhost=Blokkeer hosts met meer dan $1 mislukte logins voor $2 seconden.
session_syslog=Rapporteer geblokte hosts naar  <tt>syslog</tt>
session_disable=Schakel sessie authenticatie uit
session_enable=Schakel sessie authenticatie in
session_localoff=Vereis altijd een gebruikersnaam en wachtwoord
session_localon=Sta inloggen zonder wachtwoord toe vanaf de localhost
session_logout=Automatisch uitloggen an $1 minuten van geen activiteit
session_locking=Schakel vergrendelingn in Webmin in
session_err=Fout bij het opslaan van verificatie
session_elogouttime=Ontbrekende of ongeldige loguit tijd
session_eblockhost_time=Ontbrekende of ongeldige blokkeer tijd
session_eblockhost_failures=Ontbrekende of ongeldige blokkeer logins
session_ecookie=Uw browser ondersteunt geen cookies, deze zijn vereist voor sessie verificatie.
session_elsof=Locale verificatie vereist het <tt>lsof</tt> programma

assignment_title=Toewijzen Modules
assignment_header=Module categorie toewijzingen

categories_title=Bewerk Categorie雗
categories_header=Categorie ID en omschrijving
categories_new=Niewe categorie
categories_add=Voeg Toe

log_access=Wijzig IP toegangs controle
log_bind=poort and adres gewijzigd
log_log=Rapportage opties gewijzigd
log_proxy=Proxy servers gewijzigd
log_ui=Gebruikers interface opties gewijzigd
log_install= Module $1 geinstalleerd
log_tinstall=Thema $1 geinstalleerd
log_clone= Module $1 naar $2 gekloond
log_delete=Module $1 verwijderd
log_os=Besturingssystem gewijzigd
log_lang=Globale taal gewijzigd
log_startpage=Index pagina opties gewijzigd
log_upgrade=Webmin opgewaardeerd naar versie $1
log_session=authenticatie opties gewijzigd
log_ssl=SSL encryptie modus gewijzigd
log_setupca=Certificate authoriteit ingesteld
log_changeca=Certificate authoriteit gewijzigd
log_stopca=Shut down certificate authoriteit afgesloten
log_assignment=Module categorien gewijzigd
log_categories=Categorie namen gewijzigd
log_theme=Thema gewijzigd in $1
log_theme_def=Thema gewijzigd in Webmin standaard
log_referers=Vertwouwde verwijzers gewijzigd

themes_title=Webmin Thema's
themes_desc=Thema's bepalen het uiterlijk van de webmin gebruikersinterface, inclusief de iconen, kleuren, achtergronden en mogelijk de layout van de pagina's. Het onderstaand selectievakje kan worden gebruikt om een van de geinstalleerde thema's te kiezen.
themes_sel=Huidig thema :
themes_default=Standaard Webmin thema
themes_change=Wijzig
themes_installdesc=Gebruik het onderstaande formulier om een nieuw Webmin thema op uw systeem te installeren. Thema's worden meestal verspreid als <tt>.wbt</tt> bestanden, maar kunnen ook vanuit RPM bestanden worden geinstalleerd wanneer dit door uw besturingssysteem wordt ondersteund.
themes_installok=Installeer Thema

themes_err1=Fout bij het installeren van thema vanuit $1
themes_efile=Bestand bestaat niet
themes_err2=Fout bij het installeren van thema vanuit een geupload bestand
themes_ebrowser=Uw brouwser ondersteund geen bestand uploads
themes_err3=Fout bij het installeren van thema vanuit $1
themes_eurl=Ongeldige URL
themes_etar=Geen geldig thema bestand : $1
themes_einfo=Thema $1 is bevat geen theme.info bestand
themes_enone=Het bastand lijkt geen thema's te bevatten
themes_eextract=Uitpakken mislukt : $1
themes_done=De volgende thema's zijn succesvol op uw systeem geinstalleerd :
themes_line=$1 in $2 ($3 kB)
themes_ecomp=Het bestand is gecomprimeerd, maar het $1 commando werd niet op uw systeem gevonden
themes_ecomp2=Fout bij het uitpakken van bestand : $1
themes_egzip=Het bestand is gegzipt, maar het $1 commando werd niet op uw systeem gevonden
themes_egzip2=Fout bij het gunzippen van bestand : $1
themes_erpm=Geen Webmin thema RPM
themes_eirpm=RPM installatie mislukt : $1
themes_ok=Thema wijzigen gelukt .. terugkeren naar de Webmin index pagina.

referers_title=Vertrouwde verwijzers
referers_desc=Deze pagina stelt u in staat om Webmin's verwijzers controle ondersteuning te configureren, welke wordt gebruikt om te voorkomen dat kwaadaardige links van andere websites welke uw browser om de tuin leiden om gevaarlijk dingen te doen met Webmin te voorkomen. Echter wanneer u links naar Webmin heeft vanuit uw eigen websites waar u geen waarschuwing voor wilt ontvangen, dan moet u deze sies toevoegen aan de onderstaande lijst.
referers_list=Vertrouwde websites
referers_none=Vertrouw links van onbekende verwijzers
referers_referer=Verwijzer controle ingeschakeld?

syslet_title=Syslet Automatische-Download
syslet_desc=Deze pagina is voor het configureren van de automatische download en installatie van ontbrekende Eazel Syslets op uw Webmin server.
syslet_auto=Automatisch syslets downloaden ?
syslet_base=Basis URLs voor syslet RPMs
syslet_err=Fout bij het opslaan van de syslet opties
syslet_ebase=Ongeldige basis URL
  07070100017266000081a40000000000000002000000013ac038930000512c000000200000000000000000000000000000001500000003reloc/webmin/lang/pl  index_title=Konfiguracja Webmina
index_return=konfiguracji Webmina

access_title=Kontrola dost阷u IP
access_desc=Za pomoc tej strony Webmin mo縠 by skonfigurowany tak, by zakaza lub zezwoli na dost阷 spod okre秎onych adres體 IP. Mo縩a wprowadza nazwy komputer體 (jak foo.bar.com) i&nbsp;sieci IP (jak 10.254.3.0 czy 10.254.1.0/255.255.255.128). Powiniene ograniczy dost阷 jedynie do "zaufanych" adres體, szczeg髄nie je縠li sie jest dost阷na z&nbsp;Internetu. W&nbsp;przeciwnym wypadku kto kto zgadnie lub pods硊cha has硂 b阣zie w&nbsp;stanie przej辨 kontrol nad komputerem.
access_header=Kontrola dost阷u
access_all=Pozw髄 ze wszystkich adres體
access_allow=Pozw髄 adresom z&nbsp;listy
access_deny=Zabro adresom z&nbsp;listy
access_err=Nie uda硂 si zmieni listy dost阷u
access_enone=Nie wprowadzono adresy
access_enet='$1' nie jest prawid硂wym adresem
access_emask='$1' nie jest prawid硂w mask sieci
access_eip='$1' nie jest kompletnym adresem IP
access_ehost=Nie uda硂 sie znale兼 addresu IP '$1'
access_eself=Tw骿 aktualny adres IP ($1) zosta砨y zabroniony

bind_title=Porty i&nbsp;adresy
bind_desc=Je縠li komputer ma wiele adres體 IP, Webmin mo縠 by skonfigurowany tak, by by dost阷ny tylko na jednym adresie. Mo縩a zdefiniowa tak縠 port TCP, na kt髍ym Webmin s硊cha zlece. Uwaga - po zmianie adresu i&nbsp;portu Twoja przegladarka mo縠 powt髍nie przeprowadzi autoryzacj.
bind_header=Adres i&nbsp;port TCP/IP
bind_ip=S硊chaj na adresach IP
bind_all=Wszystkich
bind_port=S硊chaj na porcie
bind_err=Nie moge zmieni adresu
bind_eip=Nie uda硂 sie znale兼 adresu IP '$1'
bind_eassign=Adres '$1' nie jest przypisany do tego komputera
bind_eport=Port $1 jest ju zaj阾y

log_title=Logowanie
log_desc=Webmin mo縠 zapisywa informacje do logu w&nbsp;standartowym formacie CLF. Je縠li w潮czysz logowanie, mo縠sz zadecydowa czy logowa adresy IP, czy nazwy, a&nbsp;tak縠 jak cz阺to czy禼i log. W潮czone logi s zapisywane do zbioru $1.
log_desc2=Gdy zostanie w潮czone logowanie, Webmin bedzie r體nie tworzy bardziej szczeg蟪owy log dzia砤 u縴tkownika w&nbsp;pliku $1. Log ten mo縩a przegl眃a i&nbsp;analizowa przy pomocy modu硊 <tt>Log pracy Webmina</tt>, aby zobaczy dok砤dnie, co zrobili poszczeg髄ni u縴tkownicy Webmina.
log_header=Logowanie
log_disable=Wy潮cz logowanie
log_enable=W潮cz logowanie
log_resolv=Zapisuj do logu nazwy
log_clear=Czy舵 logi co $1 godzin
log_uall=Loguj dzia砤lno舵 wszystkich u縴tkownik體
log_users=Loguj jedynie dzia砤lno舵 ..
log_mall=Loguj dzia砤lno舵 we wszystkich modu砤ch
log_modules=Loguj jedynie dzia砤lno舵 w ..
log_files=Loguj wszystkie zmiany w&nbsp;plikach
log_err=Nie uda硂 si zmieni ustawie logowania
log_ehours='$1' nie jest prawid硂w liczb godzin
log_ediff=W&nbsp;Twoim systemie brak polecenia $1 potrzebnego do logowania zmian plik體

proxy_title=Serwer proxy
proxy_desc=Je縠li komputer, na kt髍ym u縴wasz Webmina jest umieszczony za firewallem, niekt髍e modu硑 Webmina dla dost阷u do WWW i&nbsp;FTP mog wymaga zdefiniowania proxy serwera.
proxy_header=Serwery proxy
proxy_http=HTTP proxy
proxy_ftp=FTP proxy
proxy_none=Brak
proxy_nofor=Nie u縴waj proxy do
proxy_user=Nazwa u縴tkownika proxy
proxy_pass=Has硂 dla proxy
proxy_err=Nie uda硂 si zapisa konfiguracji proxy
proxy_ehttp=Proxy HTTP musi by podany jako URL
proxy_eftp=Proxy FTP musi by podany jako URL

ui_title=Interfejs u縴tkownika
ui_desc=Za pomoc tego formularza mo縠sz zmieni opcje interfejsu u縴tkownika u縴wanego przez modu硑. Ka縟y z&nbsp;wprowadzonych kolor體 musi by okre秎ony przy u縴ciu standardowego systemu RGB, gdzie ka縟a z&nbsp;warto禼i jest liczb szesnastkow z&nbsp;zakresu od 00 do ff.
ui_header=Opcje interfejsu u縴tkownika
ui_default=Domy秎ne
cs_page=T硂 strony
cs_text=Zwyk硑 tekst
cs_table=T硂 tabeli
cs_header=Nag丑wek tabeli
cs_link=Tekst przekierowania
ui_texttitles=Wy秝ietla tytu硑 jako tekst?
ui_sysinfo=Pokaza nazw logowania i&nbsp;host
ui_sysinfo0=W&nbsp;dolnej cz阺ci okna przegl眃arki
ui_sysinfo1=W&nbsp;tytule okna przegl眃arki
ui_sysinfo2=Ponad nag丑wkiem strony
ui_err=Nie uda硂 si zapisa kolor體
ui_ered=Niepoprawna warto舵 dla koloru czerwonego dla '$1'
ui_egreen=Niepoprawna warto舵 dla koloru zielonego dla '$1'
ui_eblue=Niepoprawna warto舵 dla koloru niebieskiego dla '$1'

mods_title=Modu硑 Webmina
mods_desc1=Modu硑 Webmina mog byc dodane po instalacji przy u縴ciu formularza po prawej. Modu硑 s zazwyczaj rozprowadzane jako pliki <tt>.wbm</tt>, z&nbsp;ky髍ych ka縟y zawiera jeden lub wi阠ej modu丑w. Modu硑 mo縩a r體nie zainstalowa z&nbsp;plik體 RPM, je秎i system operacyjny je obs硊guje.
mods_install=Zainstaluj modu
mods_local=Z&nbsp;pliku lokalnego
mods_uploaded=Z&nbsp;pliku do潮czonego
mods_ftp=Z&nbsp;serwera ftp lub http, URL
mods_installok=Zainstaluj modu z&nbsp;pliku
mods_desc2=Je秎i chcesz mie wi阠ej ni jedn kopi tego samego modu硊 z&nbsp;r罂nymi konfiguracjami, formularz po prawej pozwoli ci sklonowa istniej眂y modu, Sklonowany b阣zie mia now nazw, now konfiguracj, nowe opcje kontroli dost阷u i&nbsp;mo縠 by dost阷ny dla innych u縴tkownik體. 
mods_clone=Klonuj modu
mods_cname=Modu do sklonowania
mods_cnew=Nowa nazwa modu硊
mods_cloneok=Klonuj modu
mods_desc3=Istniej眂e modu硑 i&nbsp;ich klony mog by usuni阾e przy u縴ciu poni縮zego formularza. Je秎i usuniesz sklonowany modu, jego klony r體nie zostan usuni阾e. Je秎i usuniesz modu, musi on by zainstalowany od nowa, 縠by m骻 go ponownie u縴. Modu硊 nie mo縩a usun辨, je秎i inne modu硑 s od niego zale縩e.
mods_delete=Usu modu硑
mods_deleteok=Usu zaznaczone modu硑

install_err1=Nie uda硂 si zainstalowa modu硊 z&nbsp;$1
install_efile=Plik nie istnieje
install_err2=Nie uda硂 si zainstalowa do潮czonego modu硊
install_ebrowser=Twoja przegl眃arka nie obs硊guje file uploads
install_err3=Nie uda硂 si zainstalowa modu硊 z&nbsp;$1
install_eurl=Nieprawid硂wy URL
install_etar=Niepoprawny plik modu硊&nbsp;: $1
install_einfo=Modu $1 nie zawiera pliku module.info
install_enone=Plik wydaje si nie zawiera 縜dnego modu硊
install_eos=Modu $1 nie obs硊guje tego systemu operacyjnego ($2 $3)
install_ever=Modu $1 wymaga wersji $2 Webmina lub wy縮zej
install_edep=Modu $1 wymaga modu硊 $2
install_eextract=Rozpakowanie si nie powiod硂&nbsp;: $1
install_title=Instalacja modu硊
install_desc=Nast阷uj眂e modu硑 zosta硑 zainstalowane i&nbsp;dodane do Twojej listy praw dost阷u&nbsp;:
install_line=$1 w&nbsp;$2 ($3 kB)
install_ecomp=Plik jest spakowany, a&nbsp;nie znaleziono polecenia $1 w&nbsp;Twoim systemie
install_ecomp2=Nie uda硂 si rozpakowa pliku&nbsp;: $1
install_egzip=Plik jest spakowany programem <tt>gzip</tt>, a&nbsp;nie znaleziono polecenia $1 w&nbsp;Twoim systemie
install_egzip2=Nie uda硂 si rozpakowa pliku programem <tt>gunzip</tt> : $1
install_erpm=To nie jest RPM modu硊 Webmina
install_eirpm=Instalacja RPM-a nie powiod砤 si&nbsp;: $1

clone_err=Nie uda硂 si skopiowa modu硊
clone_elink=dowi眤anie si nie powiod硂&nbsp;: $1
clone_ecopy=nie uda硂 si skopiowa konfiguracji&nbsp;: $1
clone_desc=Kopia $1

delete_err=Nie uda硂 si usun辨 modu丑w
delete_edep=Modu $1 nie mo縠 by skasowany, bo modu $2 jest od niego zale縩y.
delete_desc1=$1 (Kopia $2)
delete_desc2=$1 w&nbsp;$2 ($3 kB)
delete_title=Usu modu硑
delete_msg=Nast阷uj眂e modu硑 zosta硑 z&nbsp;powodzeniem usuni阾e z&nbsp;Twojej instalacji Webmina&nbsp;:
delete_sure=Czy jeste pewien, 縠 chcesz usun辨 wybrane modu硑? $1 kB plik體 zostanie nieodwracalnie skasowanych.

os_title=System operacyjny
os_desc=Ten formularz umo縧iwia Ci zmian systemu operacyjnego, jako kt髍y Webmin traktuje Tw骿 system. Mo縠 to by u縴teczne po upgrade'zie systemu operacyjnego na Twojej maszynie do nowszej wersji. Zwr箧 uwag, 縠 konfiguracja zainstalowanych modu丑w nie ulegnie zmianie nawet, je秎i s r罂nice pomi阣zy starym i&nbsp;nowym systemem. 
os_desc2=Mo縠sz r體nie zmieni 禼ie縦 przeszukiwania u縴wan przez Webmina przy uruchamianiu program體 oraz 禼ie縦 do bibliotek wsp蟪dzielonych przekazywan do ka縟ego programu.
os_header=System operacyjny komputera
os_curros=Bie勘cy system operacyjny
os_currver=Bie勘ca wersja OS
os_new=Nowy system operacyjny
os_path=ie縦a poszukiwania program體
os_ld_path=ie縦a poszukiwania bibliotek

lang_title=J陑yk
lang_title2=J陑yk Webmina
lang_lang=Wy秝ietlaj w&nbsp;j陑yku
lang_intro=Ta strona umo縧iwia Ci wyb髍 j陑yka w&nbsp;kt髍ym Webmin b阣zie wypisywa komunikaty
lang_ok=Zmie j陑yk

ssl_title=Szyfrowanie SSL
ssl_desc1=Komputer, na kt髍ym dzia砤 Webmin posiada zainstalowany modu SSLeay Perl-a. Webmin potrafi przy jego pomocy ustanowi zaszyfrowane SSL po潮czenia pomi阣zy Twoj przegl眃ark a&nbsp;serwerem. Je秎i 潮czysz si z&nbsp;serwerem Webmina poprzez Internet, zdecydowanie powiniene rozwa縴 u縴cie SSL, aby zapobiec przechwyceniu przez napastnika Twojego has砤 do Webmina.
ssl_desc2=Uwaga - w潮cz obs硊g SSL tylko je秎i Twoja przegl眃arka ma obs硊g SSL (jak np. Netscape czy IE) i&nbsp;nie ma pomi阣zy Twoj przegl眃ark a&nbsp;komputerem z&nbsp;Webminem firewalla blokuj眂ego zapytania <b>https</b>
ssl_header=Obs硊ga SSL
ssl_enable=W潮cz obs硊g SSL, o&nbsp;ile dost阷na
ssl_disable=Wy潮cz obs硊g SSL, nawet je秎i dost阷na

startpage_title=Opcje strony indeksowej
startpage_intro=Ta strona umo縧iwia ci okre秎enie, ile ikon ma by wy秝ietlanych w&nbsp;ka縟ym rz阣zie na stronie indeksowej
startpage_tabs=Klasyfikowa modu硑?
startpage_nocol=Liczba kolumn
startpage_alt=U縴j alternatywnego nag丑wka
startpage_ecols='$1' nie jest poprawn liczb kolumn
startpage_gotoone=Przej舵 bezpo秗ednio do modu硊<br>je秎i u縴tkownik ma tylko jeden?
startpage_deftab=Domy秎na kategoria

upgrade_title=Wykonaj upgrade Webmina
upgrade_desc=Nie uda硂 si wykona upgrade ca砮j instalacji Webmina do nowej wersji. Mo縠sz zainstalowa z&nbsp;pliku lokalnego, z&nbsp;pliku do潮czonego lub najnowsz wersj z&nbsp;<a href=http://www.webmin.com/>www.webmin.com</a>. Podobnie jak przy r阠znym upgrade'zie wszystkie Twoje ustawienia i&nbsp;obce modu硑 zostan zachowane.
upgrade_descrpm=Za pomoc tego formularza mo縠sz wykona upgrade ca砮j Twojej instalacji Webmina do nowej wersji z&nbsp;wykorzystaniem opcji upgrade RPM-a. Mo縠sz zainstalowa z&nbsp;lokalnego pliku RPM, z&nbsp;pliku do潮czonego lub najnowsz wersj z&nbsp;<a href=http://www.webmin.com/>www.webmin.com</a>. Podobnie jak przy r阠znym upgrade'zie wszystkie Twoje ustawienia i&nbsp;obce modu硑 zostan zachowane.
upgrade_desccaldera=Za pomoc tego formularza mo縠sz wykona upgrade ca砮j Twojej instalacji Webmina do nowej wersji z&nbsp;wykorzystaniem z&nbsp;opcji upgrade RPM-a. Mo縠sz zainstalowa z&nbsp;lokalnego pliku RPM, z&nbsp;pliku do潮czonego lub najnowsz wersj z&nbsp;Caldery.
upgrade_descsolaris-pkg=Za pomoc tego formularza mo縠sz wykona upgrade ca砮j Twojej instalacji Webmina do nowej wersji poprzez usuni阠ie bie勘cego pakietu Solarisa i&nbsp;instalacj nowego. Mo縠sz zainstalowa z&nbsp;pliku lokalnego, z&nbsp;pliku do潮czonego lub najnowsz wersj z&nbsp;<a href=http://www.webmin.com/>www.webmin.com</a>. Podobnie jak przy r阠znym upgrade'zie wszystkie Twoje ustawienia i&nbsp;obce modu硑 zostan zachowane.
upgrade_local=Z&nbsp;pliku lokalnego
upgrade_uploaded=Z&nbsp;pliku do潮czonego
upgrade_ftp=Najnowsz wersj z&nbsp;www.webmin.com
upgrade_cup=Najnowsz wersj z&nbsp;serwisu <tt>cupdate</tt> Caldery
upgrade_ok=Wykonaj upgrade Webmina
upgrade_err1=Nie uda硂 si wykona upgrade'u z&nbsp;$1
upgrade_err2=Nie uda硂 si wykona upgrade'u z&nbsp;do潮czonego pliku
upgrade_err3=Nie uda硂 si wykona upgrade'u z&nbsp;www.webmin.com
upgrade_efile=Plik nie istnieje
upgrade_ebrowser=Twoja przegl眃arka nie obs硊guje file uploads
upgrade_eversion=Nie mo縩a cofn辨 do wersji $1
upgrade_erpm=Nie jest to poprawny plik RPM Webmina
upgrade_egunzip=Nie ma polecenia <tt>gunzip</tt> w&nbsp;Twoim systemie
upgrade_etar=Nie jest to poprawny plik tar Webmina
upgrade_emod=Plik jest modu砮m Webmina, a nie jego pe硁 aktualizacj. By mo縠 chcesz skorzysta ze strony <a href='$1'>Modu硑 Webmina</a> aby go zainstalowa.
upgrade_setup=Uruchamiany jest skrypt setup.sh w&nbsp;celu upgrade'u Webmina .. Poczekaj chwil na jego zako馽zenie przed kontynuacj.
upgrade_setuprpm=Uruchamianie RPM w&nbsp;celu upgrade'u Webmina .. Prosz chwil poczeka na jego zako馽zenie przed kontynuacj.
upgrade_setuppackage=Uruchamianie pkgadd w&nbsp;celu upgrade'u Webmina .. Prosz chwil poczeka na jego zako馽zenie przed kontynuacj.
upgrade_esolaris=Funkcja upgrade'u Webmina aktualnie nie dzia砤, je秎i Webmin zosta zainstalowany z pakietu Solarisa. Prosz wykona upgrade r阠znie.
upgrade_ecaldera=Plik RPM nie jest wersj Webmina z&nbsp;Caldery.

ca_title=Centrum autoryzacji
ca_old=Istniej眂y certyfikat
ca_header1=Utworz nowy certyfikat tego CA
ca_header2=Zmie certyfikat tego CA
ca_newmsg1=Tw骿 serwer Webmina jest ju ustawiony jako centrum autoryzacji. Za pomoc tego formularza mo縠sz ustawi go ponownie, ale w體czas wszystkie certyfikaty ju wydane u縴tkownikom przestan dzia砤.
ca_newmsg2=Za pomoc tego formularza powiniene ustawi Tw骿 serwer Webmina jako centrum autoryzacji (CA) tak, aby u縴tkownicy mogli poprosi w&nbsp;module U縴tkownicy Webmina o&nbsp;certyfikat identyfikuj眂y ich wobec serwera bez konieczno禼i logowania.
ca_cn=Nazwa centrum autoryzacji
ca_email=Adres e-mail
ca_ou=Wydzia
ca_o=Organizacja
ca_sp=Kraj
ca_c=Kod kraju
ca_create=Ustaw centrum autoryzacji
ca_oldmsg1=Certyfikat CA u縴wany przez ten serwer jest wy秝ietlony poni縠j. Mo縠sz zmieni go wklejaj眂 certyfikat z&nbsp;innego CA, ale w體czas wszystkie certyfikaty ju wydane u縴tkownikom przestan dzia砤.
ca_oldmsg2=Je縠li ju ustawi砮 centrum autoryzacji na innym serwerze Webmina, mo縠sz wklei jego certyfikat poni縠j zamiast ustawia nowe CA. Pozwoli to na rozpoznawanie r體nie przez ten serwer u縴tkownik體 serwera z&nbsp;CA.
ca_err=Nie udalo si ustawi centrum autoryzacji
ca_setupok=Twoje centrum autoryzacji zosta硂 pomy秎nie ustawione. U縴tkownicy mog obecnie prosi o&nbsp;swoje certyfikaty przy pomocy modu硊 U縴tkownicy Webmina.
ca_stop=Wy潮cz centrum autoryzacji
ca_stopmsg=Naci秐ij ten przycisk, aby Webmin przesta akceptowa istniej眂e certyfikaty i&nbsp;wydawa niwe. Zmusi to u縴tkownik體 do u縴wania autoryzacji za pomoc nazwy logowania oraz has砤.
ca_stopok=Twoje centrum autoryzacji zosta硂 pomy秎nie wy潮czone
ca_eminiserv=Certyfikaty klienta SSL s obs硊giwane wy潮cznie przez miniserv.
ca_eversion=Zainstalowana w&nbsp;Twoim systemie wersja modu硊 Net::SSLeay Perla nie obs硊guje cetryfikat體 SSL po stronie klienta.
ca_essleay=Program administracyjn SSL $1 nie zosta znaleziony w&nbsp;Twoim systemie. By mo縠 musisz zmieni 禼ie縦 w&nbsp;konfiguracji modu硊 U縴tkownicy Webmina.
ca_essl=Autoryzacj SSL mo縩a w潮czy jedynie, gdy serwer WWW dzia砤 w&nbsp;trybie SSL.

session_title=Autoryzacja
session_desc1=W潮czenie chroni przed atakami metod &quot;pr骲 i&nbsp;b酬d體&quot; poprzez zwi阫szanie odst阷u czasu pomi阣zy kolejnymi nieudanymi pr骲ami zalogowania tego samego u縴tkownika.
session_desc2=W潮czenie spowoduje automatyczne wylogowywanie nieaktywnych u縴tkownik體 po up硑wie dozwolonego czasu. B眃 przygotowany na to, 縠 w潮czenie lub wy潮czenia autoryzacji sesji mo縠 zmusi wszystkich u縴tkownik體 do ponownego zalogowania.
session_header=Opcje autoryzacji i&nbsp;sesji
session_pdisable=Nie ogranicza czasu na wprowadzenie has砤
session_penable=Ograniczy czas na wprowadzenie has砤
session_blockhost=Blokowa dost阷 z&nbsp;host體, z&nbsp;kt髍ych wyst眕i硂 wi阠ej ni $1 nieudanych logowa na $2 sekund.
session_syslog=Logowa pr骲y dost阷u z&nbsp;zablokowanych host體 poprzez <tt>sysloga</tt>
session_disable=Wy潮czy autoryzacj sesji
session_enable=W潮czy autoryzacj sesji
session_localoff=Zawsze wymaga nazwy u縴tkownika i&nbsp;has砤
session_localon=Pozwoli na logowanie bez has砤 dla odpowiednich u縴tkownik體 z&nbsp;localhosta
session_logout=Automatycznie wylogowywa po $1 minutach braku aktywno禼i
session_locking=W潮czy blokowanie przez Webmina
session_err=Nie uda硂 si zachowa ustawie autoryzacji
session_elogouttime=Niepoprawny czas wylogowywania
session_eblockhost_time=Niepoprawny czas blokowania
session_eblockhost_failures=Brak lub niepoprawna ilo舵 nieudanych logowa
session_ecookie=Twoja przegl眃arka nie obs硊guje <tt>cookies</tt>, kt髍e s niezb阣ne dla autoryzacji sesji
session_elsof=Autoryzacja lokalna wymaga programu <tt>lsof</tt>

assignment_title=Przeklasyfikowanie modu丑w
assignment_header=Kategoryzacja modu丑w
assignment_ok=Zmie kategorie
assignment_desc=Za pomoc tego formularza mo縠sz okre秎i, w秗骴 modu丑w jakiej kategorii b阣zie dany modu wy秝ietlany na stronie indeksowej Webmina.

categories_title=Zmie kategorie
categories_header=Identyfikator i&nbsp;opis kategorii
categories_desc=Za pomoc tego formularza mo縠sz zmieni nazwy istniej眂ych kategorii Webmina oraz utworzy nowe, aby przypisa do nich modu硑. G髍na cz甓 tabeli s硊縴 do zmiany opisu wbudowanych kategorii, podczas gdy dolna s硊縴 do dodawania nowych identyfikator體 i&nbsp;opis體 kategorii.
categories_ok=Zachowaj kategorie
categories_err=Nie uda硂 si zachowa kategorii
categories_edesc=Brak opisu dla $1
categories_ecat=Ten identyfikator kategorii $1 ju jest u縴wany

log_access=Zmieniono kontrol dost阷u wg IP
log_bind=Zmieniono port i&nbsp;adres
log_log=Zmieniono opcje logowania
log_proxy=Zmieniono serwery proxy
log_ui=Zmieniono opcje interfejsu u縴tkownika
log_install=Zainstalowano modu $1
log_tinstall=Zainstalowano motyw $1
log_clone=Skopiowano modu $1 jako $2
log_delete=Usuni阾o modu $1
log_os=Zmieniono system operacyjny
log_lang=Zmieniono j陑yk
log_startpage=Zmieniono opcje strony indeksowej
log_upgrade=Wykonano upgrade Webmina do wersji $1
log_session=Zmieniono opcje autoryzacji
log_ssl=Zmieniono tryb szyfrowania SSL
log_setupca=Ustawiono certifikat autoryzacji
log_changeca=Zmieniono certifikat autoryzacji
log_stopca=Wy潮czono certifikat autoryzacji
log_assignment=Zmieniono kategorie modu丑w
log_categories=Zmieniono nazwy kategorii
log_theme=Zmieniono motyw na $1
log_theme_def=Zmieniono motyw na standardowy motyw Webmina
log_referers=Zmieniono zaufane odsy砤cze

themes_title=Motywy Webmina
themes_desc=Motywy okre秎aj wygl眃 interfejsu u縴tkownika Webmina w潮czaj眂 w&nbsp;to ikony, kolory, t砤 i&nbsp;by mo縠 strony opcji. Za pomoc poni縮zego pola wyboru mo縩a wybra jeden z&nbsp;zainstalowanych w&nbsp;systenie motyw體.
themes_sel=Bie勘cy motyw :
themes_default=Domy秎ny motyw Webmina
themes_change=Zmie
themes_installdesc=Za pomoc poni縮zego formularza zainstaluj nowy motyw Webmina w&nbsp;swoim systemie. Motywy s zazwyczaj rozpowszechniane w&nbsp;postaci plik體 <tt>.wbt</tt> ale mo縩a je r體nie zainstalowa z&nbsp;plik體 RPM, o&nbsp;ile Tw骿 system takie pliki obs硊guje.
themes_installok=Zainstaluj motyw
themes_err1=Nie uda硂 si zainstalowa motywu z&nbsp;$1
themes_efile=Plik nie istnieje
themes_err2=Nie uda硂 si zainstalowa przes砤nego motywu
themes_ebrowser=Twoja przegl眃arka nie obs硊guje przesy砤nia plik體
themes_err3=Nie uda硂 si zainstalowa motywu z&nbsp;$1
themes_einfo=Brak pliku theme.info w&nbsp;motywie $1
themes_enone=Plik nie zawiera 縜dnego motywu
themes_eextract=Wydzielenie nie powiod硂 si&nbsp;: $1
themes_done=W&nbsp;Twoim systemie pomy秎nie zainstalowano nast阷uj眂e motywy&nbsp;:
themes_line=$1 w $2 ($3 kB)
themes_ecomp=Plik jest spakowany lecz nie znaleziono w&nbsp;systemie polecenia $1
themes_ecomp2=Nie uda硂 si rozpakowa pliku&nbsp;: $1
themes_egzip=Plik jest spakowany gzipem lecz nie znaleziono w&nbsp;systemie polecenia $1
themes_egzip2=Nie uda硂 si rozpakowa pliku gzip&nbsp;: $1
themes_erpm=To nie jest RPM z&nbsp;motywem Webmina
themes_eirpm=Instalacja RPM nie powiod砤 si&nbsp;: $1
themes_ok=Motyw pomy秎nie zmieniony .. przekierowuj na g丑wn stron indeksow Webmina.

referers_title=Zaufane odsy砤cze
referers_desc=Za pomoc tej strony mo縠sz skonfigurowa sprawdzanie odsy砤czy do Webmina w&nbsp;celu unikni阠ia z硂秎iwych odwo砤 z&nbsp;innych witryn oszukuj眂ych Twoj przegl眃ark i&nbsp;wykorzystuj眂ych Webmina do niebezpiecznych dzia砤. Jednak縠, je秎i posiadasz odwo砤nia do Webmina na swoich w砤snych witrynach, o&nbsp;kt髍ych nie chcesz by ostrzegany, powiniene doda te witryny do poni縮zej listy.
referers_list=Zaufane witryny
referers_none=Ufa odwo砤niom z&nbsp;nieznanych odsy砤czy
referers_referer=W潮czone sprawdzanie odsy砤czy?

syslet_title=Automatyczne pobieranie syslet體
syslet_desc=Ta strona s硊縴 do konfiguracji automatyccznego pobierania i&nbsp;instalacji brakuj眂ych Syslet體 Eazela do Twojego serwera Webmina.
syslet_auto=Pobiera syslety automatycznie?
syslet_base=Podstawowe URL-e do RPM-體 syslet體
syslet_err=Nie uda硂 si zachowa opcji syslet體
syslet_ebase=Niepoprawny podstawowy URL
07070100017267000081a40000000000000002000000013ac0389200001e7c000000200000000000000000000000000000001500000003reloc/webmin/lang/pt  index_title=Configura玢o do Webmin
index_return=configura玢o do Webmin

access_title=Controlo de Acesso do IP
access_desc=O servidor Webmin pode ser configurado para negar ou permitir apenas o acesso de certos endere鏾s IP usando este formul醨io. Nomes dos anfitri鮡s (como foo.bar.com) e redes IP (como 10.254.3.0/255.255.255.128) podem tamb閙 ser introduzidos.Voc deve restringir o acesso ao servidor apenas para usu醨ios de confian鏰, especialmente se estiver acessivel pela Internet. De outra forma, qualquer pessoa que adivinhe a sua password, ter acesso total ao sistema.
access_header=Controlo de Acesso
access_all=Permiss鉶 de todos os endere鏾s
access_allow=Apenas permitir acesso dos endere鏾s listados
access_deny=Negar o acesso dos endere鏾s listados
access_err=Falha ao actualizar a lista de acessos
access_enone=No addresses entered - Sem introdu玢o de endere鏾s
access_enet='$1' n鉶  um endere鏾 correcto
access_emask='$1' n鉶  uma m醩cara correcta
access_eip='$1' n鉶  um endere鏾 IP ou endere鏾 de rede completo
access_ehost=Falha em encontrar o endere鏾 IP '$1'
access_eself=O seu actual endere鏾 IP ($1) ser negado

bind_title=Porta e Endere鏾
bind_desc=Se o anfitri鉶 onde corre o Webmin possuir v醨ios endere鏾s IP, o servidor pode ser configurado apenas para um IP usando este formul醨io. A porta TCP onde corre o Webmin pode, tamb閙, ser configurada aqui. Nota - o seu navegador WWW pode pedir que fa鏰 o login novamente depois de alterar a porta ou endere鏾 de liga玢o.
bind_header=Endere鏾 IP e Porta
bind_ip=Liga玢o no endere鏾 IP
bind_all=Tudo
bind_port=Liga玢o na porta
bind_err=Falha na mudan鏰 de endere鏾
bind_eip=Falha ao obter o endere鏾 IP para '$1'
bind_eassign=O endere鏾 '$1' n鉶 est dispon韛el para este sistema
bind_eport=A porta $1 j est a ser utilizada

log_title=Cria玢o de historial
log_desc=O Webmin pode ser configurado para escrever um ficheiro de historial de acessos web, no formato padr鉶 CLF. Se a cria玢o de historial estiver activada, vo珀 pode tamb閙 escolher quais os endere鏾s ou anfitri鮡s a gravar no historial, e quando  que que deve ser apagado. Quando activado, os ficheiros de historial s鉶 escritos para o ficheiro $1.
log_header=Cria玢o de ficheiros de historial do servidor Web
log_disable=Desactivar a cria玢o de ficheiros de historial
log_enable=Activar a cria玢o de ficheiros de historial
log_resolv=Criar historial de nomes de anfitri鮡s definidos
log_clear=Limpar o ficheiro de historial todas as $1 horas.
log_err=Falha ao guardar as op珲es de cria玢o de ficheiros de historial
log_ehours='$1' n鉶  um n鷐ero v醠ido de horas

proxy_title=Servidores Proxy
proxy_desc=Se o anfitri鉶 onde o Webmin est a correr estiver por tr醩 de uma firewall de qualquer tipo, voc deve configurar o servidor proxy para aceder  Web e FTP. Certos m骴ulos, como por exemplo <tt>Pacotes de Software</tt>, ir鉶 usar estes proxies para o download de ficheiros ou programas.
proxy_header=Servidores Proxy
proxy_http=Proxy HTTP
proxy_ftp=Proxy FTP
proxy_none=Nenhum
proxy_nofor=N鉶 utilizar proxy para
proxy_err=Falha ao guardar as configura珲es de proxies
proxy_ehttp=O servidor proxy HTTP deve ser introduzido como um URL
proxy_eftp=O servidor proxy FTP deve ser introduzido como um URL

colours_title=Esquemas de cor
colours_desc=Este formul醨io permite que possa editar o esquema de cores usado por todos os m骴ulos. Cada cor  definida pelo sistema padr鉶 RGB, onde cada valor  um n鷐ero hexad閏imal de 00 at ff.
colours_header=Esquemas de cor
colours_default=Por defeito
cs_page=Fundo da p醙ina
cs_text=Texto normal
cs_table=Fundo da tabela
cs_header=Cabe鏰lho da tabela
cs_link=Link do texto
colours_err=Falha ao guardar o esquema de cores.
colours_ered=Valor inv醠ido para o vermelho '$1'
colours_egreen=Valor inv醠ido para o verde '$1'
colours_eblue=Valor inv醠ido para o azul '$1'

mods_title=M骴ulos do Webmin
mods_desc1=Os m骴ulos do Webmin podem ser adicionados depois da instala玢o usando o formul醨io  direita. Os m骴ulos s鉶 tipicamente distribuidos no formato <tt>.wbm</tt>, os quais podem conter um ou mais m骴ulos. Se um m骴ulo for licenciado para correr apenas num determinado anfitri鉶, voc poder n鉶 conseguir instal-lo.
mods_install=Instalar M骴ulo
mods_local=De um ficheiro local
mods_uploaded=De um ficheiro remoto
mods_ftp=De um URL por ftp ou http
mods_installok=Instalar M骴ulo do Ficheiro
mods_desc2=Se desejar ter mais do que uma c髉ia do mesmo m骴ulo com diferentes configura珲es, o formul醨io da direita permite-lhe clonar qualquer m骴ulo exestente. O clone ir ter um novo nome, nova configura玢o, novas op珲es de controlo de acesso e poder estar dispon韛el para diferentes utilizadores.
mods_clone=Clonar M骴ulo
mods_cname=M骴ulo a clonar
mods_cnew=Nome do m骴ulo clonado
mods_cloneok=Clonar M骴ulo
mods_desc3=Os m骴ulos e clones de m骴ulos existentes podem ser apagados usando o formul醨io abaixo indicado. Se um m骴ulo com clones for apagado, eles ser鉶 igualmente apagados. Uma vez que um m骴ulo for apagado, ele ter de ser reinstalado para que possa ser usado de novo. Um m骴ulo n鉶 pode ser apagado se outros m骴ulos dependerem dele.
mods_delete=Apagar M骴ulos
mods_deleteok=Apagar M骴ulos Seleccionados

install_err1=Falha ao instalar o m骴ulo de $1
install_efile=O ficheiro n鉶 existe
install_err2=Falha ao instalar o m骴ulo remoto.
install_ebrowser=O seu navegador Web n鉶 suporta upload de ficheiros
install_err3=$1 Falha ao instalar m骴ulo de $1
install_eurl=URL Inv醠ido
install_etar=O ficheiro $1 n鉶  um m骴ulo v醠ido
install_einfo=Falta o ficheiro module.info no m骴ulo $1
install_enone=O ficheiro aparenta n鉶 conter nenhum m骴ulo
install_eos=O m骴ulo $1 n鉶  suportado por o actual sistema operativo ($2 $3)
install_ever=O m骴ulo $1 requer a vers鉶 $2 do Webmin ou posterior
install_edep=O m骴ulo $1 requer o m骴ulo $2
install_eextract=Falha na extrac玢o : $1
install_title=M骴ulo Instalado
install_desc=Os seguintes m骴ulos foram instalados com sucesso e adicionados  lista de controlo de acesso :
install_line=$1 em $2 ($3 kB)

clone_err=Falha ao clonar o m骴ulo
clone_elink=falha no atalho simb髄ico : $1
clone_ecopy=falha ao copiar a configura玢o : $1
clone_desc=Clone de $1

delete_err=Falha ao apagar os m骴ulos
delete_edep=O m骴ulo $1 n鉶 pode ser apagado porque o m骴ulo $2 est dependente dele.
delete_desc1=$1 (Clone de $2)
delete_desc2=$1 em $2 ($3 kB)
delete_title=Apagar m骴ulos
delete_msg=Os seguintes foram apagados com sucesso da instala玢o do Webmin :

os_title=Sistema Operativo
os_desc=Este formul醨io permite-lhe alterar o sistema operativo considerado pelo Webmin. Isto pode ser 鷗il se efectuou um upgrade para uma nova vers鉶 do seu sistema operativo.
os_header=Sistema Operativo do Anfitri鉶
os_curros=Sistema operativo actual
os_currver=Vers鉶 actual do SO
os_new=Novo sistema operativo

lang_title=Linguagem
lang_title2=Linguagem do Webmin
lang_lang=Mostrar em
lang_intro=Esta p醙ina permite-lhe escolher a linguagem a usar pelo Webmin na apresenta玢o de titulos, comandos e mensagens
lang_ok=Alterar Linguagem

ssl_title=Encripta玢o SSL
ssl_desc1=O anfitri鉶 onde corre o Webmin, parece possuir o m骴ulo de Perl SSLeay instalado. Usando isto, O webmin suporta a comunica玢o encriptada SSL entre o seu navegador Web e o servidor. Se est a aceder ao Webmin via Internet, ent鉶 deve definitivamente considerar o uso do SSL para prevenir a captura da password do Webmin por um atacante.
ssl_desc2=Aten玢o - apenas deve activar o suporte de SSL se o seu navegador Web o suportar (como por exemplo o Netscape ou IE), e n鉶 existe nenhuma firewall a bloquear pedidos <b>https</b> entre o seu navegador e o anfitri鉶 do Webmin
ssl_header=Suporte de SSL
ssl_enable=Activar o suporte de SSL, se dispon韛el
ssl_disable=Desactivar o suporte de SSL, mesmo se dispon韛el
07070100017268000081a40000000000000002000000013ac0389300004c2a000000200000000000000000000000000000001800000003reloc/webmin/lang/ru_RU   os_header=物屦圉桀眄 谚耱屐 疹耱
proxy_ehttp=HTTP 镳铌耔 皴疴屦 漕腈屙 猁螯 忖邃屙 赅 URL
cs_text=皖痨嚯 蝈犟
os_currver=义牦 忮瘃 窝
install_efile=脏殡 礤 耋耱怏弪
upgrade_ftp=项耠邃 忮瘃  www.webmin.com
install_eos=填潴朦 $1 礤 镱滗屦骅忄弪 溧眄簋 铒屦圉桀眄簋 耔耱屐 ($2 $3)
install_ever=填潴朦 $1 蝠遽箦 Webmin 忮瘃梃 $2 桦 恹
upgrade_etar=湾 怆弪 漕矬耱桁 tar 羿殡铎 webmin
ssl_disable=蔓膻麒螯 镱滗屦骊 SSL, 溧驽 羼腓 羼螯
access_all=朽琊屮栩 耦 怦艴 噤疱耦
clone_ecopy=铠栳赅 镳 觐镨痤忄龛 觐眙桡箴圉梃 : $1
install_err1=硒栳赅 镳 桧耱嚯鲨 祛潴 桤 $1
install_err2=硒栳赅 镳 桧耱嚯鲨 玎沭箧屙眍泐 祛潴
install_err3=硒栳赅 镳 桧耱嚯鲨 祛潴 桤 $1
install_line=$1  $2 ($3 梳)
bind_eassign=冷疱 '$1' 礤 镳桉忸屙 溧眄铋 耔耱屐
access_enone=冷疱襦 礤 箨噻囗
access_eip='$1' 礤 怆弪 镱腠 噤疱耦 IP 桦 皴蜩
mods_uploaded=青沭箧屙眍泐 羿殡
os_desc=泥眄 纛痨 镱玮铍弪 忄 桤戾龛螯 铒屦圉桀眄簋 耔耱屐 镱 觐蝾痼 磬耱痤屙 Webmin. 蒡 祛驽 猁螯 镱脲珥, 羼腓 恹 钺眍忤腓 忄 爨眢 磬 眍怏 忮瘃棹 滂耱痂狍蜩忄 铒屦圉桀眄铋 耔耱屐. 暑眙桡箴圉 篑蜞眍怆屙睇 祛潴脲 礤 桤戾龛蝰 溧驽 镳 耋耱怏桴 铗腓麒 戾驿 耱囵铋  眍忸 耔耱屐囔.
access_deny=青镳弪栩  镥疱麒耠屙睇 噤疱耦
log_disable=悟觌栩 骟痦嚯桤圉棹
access_err=硒栳赅 镳 钺眍怆屙梃 耧桉赅 漕耱箫
access_desc=彦疴屦 Webmin 祛驽 猁螯 磬耱痤屙 蜞, 黩钺 玎镳妁囹 桦 疣琊屮囹 漕耱箫 蝾朦觐  礤觐蝾瘥 IP 噤疱耦 桉镱朦珞 溧眄 滂嚯钽. 念矬耱桁 箨噻囹 赅 桁屙 躅耱钼 (磬镳桁屦 foo.bar.com), 蜞  IP 皴蜩 (磬镳桁屦 10.254.3.0 桦 10.254.1.0/255.255.255.128). 蔓 漕腈睇 镳邃铖蜞忤螯 漕耱箫  忄祗 皴疴屦 蝾朦觐 漕忮疱眄 噤疱襦, 铖钺屙眍 羼腓 铐 漕耱箫屙 桤 Internet. 软圜 膻犷, 牝 筱噤噱 忄 镟痤朦 狍溴 桁弪 镱腠 觐眚痤朦 磬 忄 耔耱屐铋.
lang_title=哏
ssl_title=SSL 麴钼囗桢
ssl_header=项滗屦骊 SSL
bind_all=埋
cs_header=青泐腩忸 蜞犭桷
access_enet='$1' 礤 怆弪 漕矬耱桁 皴蝈恹 噤疱耦
install_title=软耱嚯鲨 祛潴
log_resolv=青镨覃忄螯 疣玷戾眍忄眄 躅耱
bind_eip=硒栳赅 镳 镱稃蜿 镱塍麒螯 IP 噤疱 潆 '$1'
install_ebrowser=锣 狃囿珏 礤 镱滗屦骅忄弪 镱溷痼珀 羿殡钼
ssl_desc1=泥眄 躅耱 桁邋 篑蜞眍怆屙睇 祛潴朦 SSLeay 潆 Perl. 橡 邈 桉镱朦珙忄龛 Webmin 镱滗屦骅忄弪 麴钼囗睇 镱 镳铗铌铍 SSL 耦邃桧屙 戾驿 忄 狃囿珏痤  皴疴屦铎. 篷腓 恹 疣犷蜞弪  忄 Webmin 皴疴屦铎 麇疱 Internet, 蝾 恹 钺玎蝈朦眍 漕腈睇 桉镱朦珙忄螯 SSL 潆 镳邃铗怵帙屙 镥疱踱囹 忄 镟痤脲 珉铙禧屙龛赅扈.
ssl_desc2=橡邃箫疱驿屙桢 - 怅膻鬣轵 镱滗屦骊 SSL 蝾朦觐 羼腓 忄 狃囿珏 镱滗屦骅忄弪 SSL (磬镳桁屦 Netscape 桦 IE),  蜞赕 羼腓 戾驿 忄 狃囿珏痤  皴疴屦铎 Webmin 礤 戾骜弪邂钽 疣磬 犭铌桊簋泐 <b>https</b> 玎镳铖.
lang_intro=泥眄 耱疣龛鲟 镱玮铍弪 忄 恹狃囹, 赅觐 琨 狍溴 桉镱朦珙忄螯  Webmin 潆 玎泐腩怅钼, 镳桡豚龛, 耦钺龛  镱祛.
install_edep=填潴朦 $1 蝠遽箦 磬腓麒 祛潴 $2
access_header=暑眚痤朦 念耱箫
access_eself=锣 耦狁蜮屙睇 IP 噤疱 ($1) 狍溴 玎镳妁屙
proxy_header=橡铌耔 彦疴屦
lang_lang=锐镱朦珙忄螯 琨
upgrade_ok=吾眍忤螯 Webmin
mods_ftp=ftp 桦 http URL
bind_err=硒栳赅 镳 耢屙 噤疱襦
upgrade_egunzip=袜 忄 耔耱屐 铗耋蝰蜮箦 觐爨礓 <tt>gunzip</tt>
startpage_alt=锐镱朦珙忄螯 嚯屦磬蜩忭 玎泐腩忸
delete_err=硒栳赅 镳 箐嚯屙梃 祛潴脲
os_title=物屦圉桀眄 耔耱屐
bind_port=橡铖塍忄螯 项痱
log_ehours='$1' 礤 怆弪 漕矬耱桁 觐腓麇耱忸 鬣耦
mods_install=玉蜞眍怅 填潴 桤..
upgrade_setup=蔓镱腠 聆屙囵栝 setup.sh 潆 钺眍怆屙 Webmin .. 项漕驿栩 扈眢蜿, 镱赅 铐 礤 玎忮瘌栩 疋铪 疣犷蝮.
startpage_nocol=暑-忸 暑腩眍
clone_desc=孰铐 $1
bind_desc=篷腓 躅耱 磬 觐蝾痤 疣犷蜞弪 Webmin 桁邋 礤耜铍 IP 噤疱耦, 蝾 皴疴屦 祛驽 猁螯 磬耱痤屙 磬 镳铖塍忄龛 玎镳铖钼 蝾朦觐  钿眍泐 桤 龛 桉镱朦珞 溧眄簋 纛痨. 项痱 TCP, 觐蝾瘥 镳铖塍忄弪 Webmin 蜞赕 祛骓 磬耱痤栩 玟羼. 骂珈铈眍 锣 忮 狃囿珏 祛驽 镱镳铖栩 忄 镥疱疱汨耱痂痤忄螯 镱耠 桤戾礤龛 镱痱 桦 噤疱襦 镳桠珀.
clone_elink=铠栳赅 耦玟囗 耔焘铍梓羼觐 耨觇 : $1
proxy_nofor=湾 镳铌耔 潆
upgrade_desc=泥眄 纛痨 镱玮铍弪 锣 钺眍忤螯 锣 桧耱嚯鲨 webmin 磬 眍怏 忮瘃棹. 蔓 祛驽蝈 镳钼羼蜩 桧耱嚯鲨 桤 腩赅朦眍泐 羿殡, 玎沭箧屙眍泐 羿殡 桦 镱耠邃睨 忮瘃棹 磬 <a href=http://www.webmin.com/>www.webmin.com</a>. 亦赕 赅  镳 痼黜铎 钺眍怆屙梃, 怦 锣 磬耱痤殛  祛潴腓 蝠弪 疣琊噌铗麒觐 耦躔囗蝰. 
mods_local=祟赅朦眍泐 羿殡
startpage_title=相疣戾蝠 汶噔眍泐 戾睨
mods_cname=填潴朦 潆 觌铐桊钼囗
proxy_desc=篷腓 躅耱 磬 觐蝾痤 玎矬 Webmin 磬躅滂蝰 玎 皴蝈恹 疣眍 礤觐泐 蜩镟, 忄 祛驽 镱蝠遽钼囹 篑蜞眍怅 镟疣戾蝠钼 镳铌耔 皴疴屦钼 潆 漕耱箫  Web  FTP 箸豚. 湾觐蝾瘥 祛潴腓, 蜞觇 赅 <tt>橡钽疣祆睇 相赍螓</tt>, 狍潴 桉镱朦珙忄螯 溧眄 镳铌耔 镳 恹沭箸赍 羿殡钼  镳钽疣祆.
delete_title=愉嚯屙桢 填潴脲
delete_msg=央邃簋 祛潴腓 猁腓 篑镥 箐嚯屙 桤 桧耱嚯鲨 :
install_etar=湾 怆弪 漕矬耱桁 羿殡铎 祛潴 : $1
access_ehost=硒栳赅 镳 镱桉赍 IP 噤疱襦 潆 '$1'
startpage_ecols='$1' 礤 怆弪 漕矬耱桁 觐-忸 觐腩眍
proxy_eftp=FTP 镳铌耔 皴疴屦 漕腈屙 猁螯 忖邃屙 赅 URL
delete_desc1=$1 (孰铐 $2)
delete_desc2=$1  $2 ($3 梳)
delete_edep=填潴朦 $1 礤 祛驽 猁螯 箐嚯屙, 镱耜铍 祛潴朦 $2 玎忤耔 铗 礤泐
access_title=语疣怆屙桢 漕耱箫铎 镱 IP
startpage_intro=泥眄 耱疣龛鲟 镱玮铍弪 锣 铒疱溴腓螯 觐-忸 镨牝钽疣祆 磬 觐腩黻, 磬 耱疣龛鲥 汶噔眍泐 戾睨
proxy_http=HTTP 镳铌耔
os_new=皖忄 铒屦圉桀眄 耔耱屐
log_title=企痦嚯桤圉 耦猁蜩
index_return=觐眙桡箴圉棹 webmin
mods_cnew=褥 觌铐桊钼囗眍泐 祛潴
proxy_err=硒栳赅 镳 耦躔囗屙梃 镳铌耔
bind_title=项痱  噤疱
log_desc=Webmin 祛驽 猁螯 磬耱痤屙 潆 玎镨耔 骟痦嚯 耦猁蜩 忮 皴疴屦  耱囗溧痱眍 纛痨囹 骟痦嚯 羿殡钼 CLF. 篷腓 骟痦嚯桤圉 怅膻麇磬, 恹 祛驽蝈 恹狃囹 觐沅 IP 噤疱襦 桦 桁屙 躅耱钼 玎镨覃忄  骟痦嚯  赅 鬣耱 骟痦嚯 羿殡 铟棂噱蝰. 橡 嚓蜩忤玎鲨, 骟痦嚯 镨蝰  羿殡 $1.
mods_clone=孰铐桊钼囗桢 填潴
install_einfo=填潴朦 $1 礤 桁邋 羿殡 module.info
log_enable=玛膻麒螯 骟痦嚯桤圉棹
access_allow=朽琊屮栩 蝾朦觐  镥疱麒耠屙睇 噤疱耦
upgrade_err1=硒栳赅 镳 钺眍怆屙梃 桤 $1
upgrade_err2=硒栳赅 镳 钺眍怆屙梃 桤 玎沭箧屙眍泐 羿殡
access_emask='$1' 礤 怆弪 漕矬耱桁铋 皴蝈忸 爨耜铋
upgrade_err3=硒栳赅 镳 钺眍怆屙梃  www.webmin.com
upgrade_uploaded=如 玎沭箧屙眍泐 羿殡
mods_delete=愉嚯屙桢 填潴脲
mods_title=填潴腓 Webmin
proxy_title=橡铌耔 皴疴屦
bind_ip=橡铖塍忄螯 IP 冷疱
mods_installok=玉蜞眍忤螯 填潴朦
cs_page=灶 耱疣龛
mods_desc1=填潴腓 潆 Webmin 祛骓 漕徉怆螯 桉镱朦珞 纛痨 耧疣忄. 吾眍 祛潴腓 镱耱噔  羿殡圊 <tt>.wbm</tt>, 赅驿 桤 觐蝾瘥 祛驽 耦溴疰囹 钿桧 桦 犷脲 祛潴脲. 篷腓 祛潴朦 腓鲥礴桊钼囗 潆 篑蜞眍怅 蝾朦觐 磬 礤耜铧觐 躅耱钼, 恹 忸珈铈眍 礤 耢铈弪 邈 篑蜞眍忤螯.
mods_desc2=篷腓 恹 躅蜩蝈 桁弪 犷脲 钿眍 觐镨 钿眍泐  蝾泐-驽 祛潴  疣珥 磬耱痤殛囔, 蝾 纛痨 耧疣忄 镱玮铍弪 忄 觌铐桊钼囹 膻犷 桤 耋耱怏桴 祛潴脲. 孰铐 狍溴 桁弪 眍忸 桁, 眍怏 觐眙桡箴圉棹, 眍恹 镟疣戾蝠 箫疣怆屙 漕耱箫铎  祛驽 猁螯 漕耱箫屙 疣珉梓睇 镱朦珙忄蝈.
mods_desc3=洋耱怏桢 祛潴腓  桴 觌铐 祛泱 猁螯 箐嚯屙 桉镱朦珞 纛痨 龛驽. 篷腓 祛潴朦 桁妣 觌铐 箐嚯弪, 觌铐 蜞赕 狍潴 箐嚯屙. 篷腓 祛潴朦 猁 箐嚯屙, 恹 漕腈睇 镥疱桧耱嚯腓痤忄螯 邈 潆 桉镱朦珙忄龛 忭钼. 填潴朦 礤 祛驽 猁螯 箐嚯屙, 羼腓 漯筱桢 祛潴腓 玎忤 铗 礤泐.
upgrade_eversion=湾 祛泱 忮痦篁  忮瘃梃 $1
lang_ok=鸯屙栩 哏
cs_table=灶 蜞犭桷
upgrade_efile=脏殡 礤 耋耱怏弪
upgrade_local=如 腩赅朦眍泐 羿殡
os_curros=义牦 铒屦圉桀眄 耔耱屐
bind_eport=项痱 $1 箧 桉镱朦珞弪
log_clear=西棂囹 骟痦嚯 赅驿 $1 鬣耦
cs_link=义犟 耨铌
index_title=暑眙桡箴圉 Webmin
proxy_none=湾
install_enone=项躅驽, 黩 羿殡 礤 耦溴疰栩 龛 钿眍泐 祛潴
startpage_tabs=朽玑栩 祛潴腓 磬 赅蝈泐痂?
mods_cloneok=孰铐桊钼囹 填潴朦
proxy_ftp=FTP 镳铌耔
upgrade_ebrowser=锣 狃囿珏 礤 镱滗屦骅忄弪 镱溷痼珀 羿殡钼
install_desc=央邃簋 祛潴腓 猁腓 篑镥 桧耱嚯腓痤忄睇  漕徉怆屙  忄 耧桉铌 漕耱箫 :
install_eextract=硒栳赅 镳 疣耧嚓钼赍 : $1
install_eurl=湾忮痦 URL
startpage_gotoone=篷腓 漕耱箫屙 蝾朦觐 钿桧 祛潴朦,<br>玎沭箧囹 耩噻 邈?
ssl_enable=玛膻麒螯 镱滗屦骊 SSL, 羼腓 羼螯
mods_deleteok=愉嚯栩 蔓狃囗睇 填潴腓
clone_err=硒栳赅 镳 觌铐桊钼囗梃 祛潴
bind_header=IP 冷疱  项痱
upgrade_title=吾眍怆屙  Webmin
log_header=企痦嚯桤圉 耦猁蜩 洛 彦疴屦
log_err=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼 骟痦嚯桤圉梃
lang_title2=哏 Webmin
ca_sp=仳囹
categories_header=ID  铒桉囗桢 赅蝈泐痂
themes_ecomp=脏殡  纛痨囹 compress, 眍 觐爨礓 $1 礤 磬殇屙 磬 锣 耔耱屐
ui_default=项 箪铍鬣龛
session_ecookie=锣 狃囿珏 礤 镱滗屦骅忄弪 "觌桕", 觐蝾瘥 礤钺躅滂禧 潆 囿蝈眚梏桕圉梃 皴耨栝
log_theme_def=如戾礤磬 蝈爨 磬 蝈祗 Webmin 镱 箪铍鬣龛
session_header=相疣戾蝠 囿蝈眚梏桕圉梃  皴耨栝
categories_add=念徉忤螯
log_desc2=橡 怅膻麇龛 骟痦嚯桊钼囗, Webmin 狍溴 玎镨覃忄螯 犷脲 溴蜞腓玷痤忄眄 骟痦嚯 溴轳蜮栝 镱朦珙忄蝈  羿殡 $1. 泥眄 骟痦嚯 祛驽 猁螯 镳铖祛蝠屙  镳钹磬腓玷痤忄 祛潴脲 "企痦嚯 溴轳蜮栝 Webmin" 磬 镳邃戾 溴轳蜮栝 赅驿钽 镱朦珙忄蝈 Webmin.
ca_eminiserv=SSL 皴痱梏桕囹 觌桢眚钼 镱滗屦骅帼蝰 蝾朦觐 镱 miniserv.
log_setupca=玉蜞眍怆屙 噔蝾痂玎鲨 镱 皴痱梏桕囹囔
ca_create=玉蜞眍怅 噔蝾痂玎鲨 镱 皴痱梏桕囹囔
ui_sysinfo0=马桤 狃囿珏疣
ui_sysinfo1= 玎泐腩怅 狃囿珏疣
ui_sysinfo2=袜 玎泐腩怅铎 耱疣龛鳆
ca_essl=SSL 皴痱梏桕圉 祛驽 猁螯 篑蜞眍怆屙 蝾朦觐 镳 疣犷蝈 忮 皴疴屦  疱骅戾 SSL.
themes_installdesc=锐镱朦珞轵 纛痨 龛驽 潆 篑蜞眍怅 眍忸 蝈禧 Webmin 磬 锣 耔耱屐. 义禧 钺眍 镱耱噔  <tt>.wbt</tt> 羿殡圊, 眍 祛泱 蜞赕 篑蜞磬怆桠囹 桤 RPM 羿殡钼  耠篦噱 镱滗屦骊 蜞觐恹 锣 铒屦圉桀眄铋 耔耱屐铋.
ca_stopok=棱蝾痂玎鲨 镱 皴痱梏桕囹囔 猁豚 篑镥 镳尻疣磬.
session_eblockhost_failures=悟耋蝰蜮箦 桦 礤忮痦 觐-忸 疱汨耱疣鲨 漕 犭铌桊钼囗
os_path=象螯 镱桉赅 镳钽疣祆
upgrade_descsolaris-pkg=泥眄 纛痨 镱玮铍弪 锣 镱腠铖螯 钺眍忤螯 桧耱嚯鲨 Webmin 皴疴屦 磬 眍怏 忮瘃棹 矬蝈 箐嚯屙 蝈牦泐 solaris 镟赍蜞  桧耱嚯鲨 眍忸泐. 蔓 祛驽蝈 镳钼羼蜩 钺眍怆屙桢 桉镱朦珞 腩赅朦睇 solaris 镟赍, 镱溷痼驽眄 镱 皴蜩 羿殡 桦 镱耠邃睨 忮瘃棹  <a href=http://www.webmin.com/>www.webmin.com</a>. 亦赕 赅  镳 痼黜铎 钺眍怆屙梃, 怦 锣 磬耱痤殛  祛潴腓 耱铕铐龛 疣琊噌铗麒觐 狍潴 耦躔囗屙.
themes_enone=项躅驽, 黩 羿殡 礤 耦溴疰栩 龛 钿眍 蝈禧
log_ediff= 锣 耔耱屐 铗耋蝰蜮箦 觐祆囗溧 $1 礤钺躅滂爨 潆 骟痦嚯桤圉梃 桤戾礤龛  羿殡圊
assignment_header=杨铗忮蝰蜮桢 祛潴脲 赅蝈泐痂
syslet_ebase=湾忮痦 徉珙恹 URL
referers_referer=橡钼屦赅 耨铌 怅膻麇磬?
themes_sel=义牦 蝈爨 :
referers_none=念忮螯 耨赅 铗 礤珥嚓铎鲥
themes_erpm=湾 怆弪 RPM  蝈祛 潆 Webmin
themes_err1=硒栳赅 篑蜞眍怅 蝈禧 桤 $1
log_ui=如戾礤睇 镟疣戾蝠 桧蝈痿彘襦 镱朦珙忄蝈
themes_err2=硒栳赅 篑蜞眍怅 镱溷痼驽眄铋 蝈禧
themes_err3=硒栳赅 篑蜞眍怅 蝈禧 桤 $1
syslet_title=棱蝾玎沭箸赅 耔耠弪钼
syslet_err=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼 耔耠弪钼
themes_line=$1  $2 ($3 梳)
log_uall=澡犟桊钼囹 溴轳蜮 怦艴 镱朦珙忄蝈脲
themes_egzip2=湾 祛泱 皲咫囹 gunzip 羿殡 : $1
ca_essleay=暑爨礓 箫疣怆屙 SSL  $1 礤 磬殇屙. 骂珈铈眍 锣 眢骓 桤戾龛螯 矬螯  礤  觐眙桡箴圉梃 祛潴 "项朦珙忄蝈腓 Webmin".
ca_oldmsg1=彦痱梏桕囹 CA 桉镱朦珞屐 溧眄 皴疴屦铎 镱赅玎 龛驽. 蔓 祛驽蝈 桤戾龛螯 邈 矬蝈 怦蜞怅 颃溧 皴痱梏桕囹  漯筱钽 CA, 眍 膻猁 皴痱梏桕囹 箧 恹溧眄 镱朦珙忄蝈 镥疱耱囗篁 疣犷蜞螯.
upgrade_erpm=湾 怆弪 漕矬耱桁 webmin RPM 羿殡铎.
ca_oldmsg2=篷腓 蔓 箧 磬耱痤桦 CA 磬 漯筱铎 Webmin 皴疴屦, 蔓 祛驽蝈 怦蜞忤螯 颃溧 邈 皴痱梏桕囹 忪羼蝾 磬耱痤殛 眍忸泐 CA. 蒡 镱玮铍栩 镱朦珙忄蝈 漯筱钽 皴疴屦 蜞赕 疣耧铉眍忄螯 磬 溧眄铎 皴疴屦.
ui_eblue=湾忮痦铄 珥圜屙桢 耔礤泐 潆 '$1'
themes_change=如戾龛螯
session_localon=朽琊屮栩 怩钿 徨 镟痤 潆 耦怙噤帼 镱朦珙忄蝈脲  localhost
ca_email=冷疱 e-mail
ca_eversion=洛瘃 Perl 祛潴 Net::SSLeay 篑蜞眍怆屙磬 磬 锣 耔耱屐 礤 镱滗屦骅忄弪 SSL 皴痱梏桕囹 觌桢眚钼.
session_desc1=篷腓 怅膻麇眍, 蝾 蜞殪囿螓 镟痤 玎 锣 Webmin 皴疴屦 铗 腩犷恹 囹嚓 镱 忡腩祗 镟痤脲 矬蝈 漕徉怆屙 镱耱眄 忸琊囫蜞彘 玎溴疰觇 戾驿 赅驿铋 礤忮痦铋 镱稃蜿铋 疱汨耱疣鲨 潆 钿眍泐  蝾泐-驽 镱朦珙忄蝈.
log_users=澡犟桊钼囹 溴轳蜮 蝾朦觐 ..
install_eirpm=硒栳赅 镳 桧耱嚯鲨 RPM : $1
session_desc2=橡 怅膻麇龛 囿蝈眚梏桕圉梃 皴耨栝, 赅驿 玎疱汨耱痂痤忄眄 镱朦珙忄蝈朦耜 皴耨 狍溴 铗耠彐桠囹 Webmin-铎. 蒡 溧弪 忸珈铈眍耱 噔蝾爨蜩麇耜 铗觌囹 徨玟彘耱怏桴 镱朦珙忄蝈脲. 吾疣蜩蝈 忭桁囗桢, 黩 怅膻麇龛 桦 铗觌屙桢 囿蝈眚梏桕圉梃 皴耨栝 祛驽 镱蝠遽钼囹 镥疱疱汨耩圉梃 怦艴 疣犷蜞桴 镱朦珙忄蝈脲.
referers_desc=泥眄 纛痨 镱玮铍弪 锣 磬耱痤栩 镱滗屦骊 镳钼屦觇 耨铌 磬 皴疴屦 Webmin, 觐蝾疣 桉镱朦珞弪 潆 镳邃铗怵帙屙 铒囫睇 耨铌  漯筱桴 忮 襦轵钼 玎耱噔桴 锣 忮 狃囿珏 恹镱腠螯 铒囫睇 溴轳蜮. 武磬觐 羼腓  锣 羼螯 耨觇 磬 皴疴屦 Webmin 桤 磬溴骓 戾耱, 觐蝾瘥 礤 漕腈睇 恹琨忄螯 蝠邂钽, 蔓 祛驽蝈 漕徉忤螯 溧眄 襦轵  耧桉铌 龛驽.
install_ecomp2=硒栳赅 镳 镱稃蜿 恹镱腠栩 uncompress 潆 羿殡 : $1
ui_ered=湾忮痦铄 珥圜屙桢 牮囫眍泐 潆 '$1'
themes_eextract=硒栳赅 镳 疣珂囹梃 : $1
log_session=如戾礤睇 镟疣戾蝠 囿蝈眚梏桕圉梃
ca_c=暑 耱疣睇
session_pdisable=悟觌栩 蜞殪囿螓 潆 镟痤脲
ca_setupok=棱蝾痂玎鲨 镱 皴痱梏桕囹囔 猁豚 篑镥 磬耱痤屙. 彦轺囫 镱朦珙忄蝈腓 祛泱 桉镱朦珙忄螯 祛潴朦 "项朦珙忄蝈腓 Webmin" 潆 玎镳铖 疋铊 皴痱梏桕囹钼.
os_desc2=蔓 蜞赕 祛驽蝈 桤戾龛螯 矬螯 镱桉赅 桉镱朦珞屐 Webmin 潆 玎矬耜 镳钽疣祆,  矬螯  疣玟咫屐 徼犭桀蝈赅 镥疱溧忄屐 赅驿铋 玎矬耜噱祛 镳钽疣祆.
ca_o=勿汔龛玎鲨
log_access=如戾礤眍 箫疣怆屙桢 漕耱箫铎 镱 IP
log_install=软耱嚯腓痤忄 祛潴朦 $1
referers_list=念忮疱眄 忮 襦轵
ui_desc=泥眄 纛痨 镱玮铍弪 锣 疱溧牝桊钼囹 镟疣戾蝠 桧蝈痿彘襦 镱朦珙忄蝈 桉镱朦珞屐 怦屐 祛潴扈. 橡 忖钿 鲡弪钼铋 聃屐 赅驿 鲡弪 漕腈屙 猁螯 箨噻囗 桉镱朦珞 耱囗溧痱眢 耔耱屐 RGB, 沅 赅驿铄 珥圜屙桢 镳邃耱噔弪 耱磬漩囹屦梓睇 眍戾 铗 00 漕 ff. 
session_logout=棱蝾铗觌屙桢 镱耠 $1 扈眢 徨玟彘耱忤
os_ld_path=象螯 镱桉赅 徼犭桀蝈
syslet_desc=泥眄 纛痨 镳邃磬珥圜屙 潆 磬耱痤殛 噔蝾爨梓羼觐 玎沭箸觇  桧耱嚯鲨 铗耋蝰蜮簋 "Eazel 谚耠弪钼" 磬 锣 Webmin 皴疴屦.
log_tinstall=软耱嚯腓痤忄磬 蝈爨 $1
themes_ebrowser=锣 狃囿珏 礤 镱滗屦骅忄弪 镱溷痼珀 羿殡钼
log_clone=孰铐桊钼囗 祛潴朦 $1  $2
log_assignment=如戾礤睇 赅蝈泐痂 祛潴脲
ca_newmsg1=锣 Webmin 皴疴屦 箧 磬耱痤屙 潆 噔蝾痂玎鲨 镱 皴痱梏桕囹囔. 蔓 祛驽蝈 桉镱朦珙忄螯  纛痨 潆 桴 篑蜞眍怅 耥钼, 眍 膻猁 皴痱梏桕囹 箧 恹溧眄 镱朦珙忄蝈 镥疱耱囗篁 疣犷蜞螯.
ca_newmsg2=泥眄 纛痨 祛驽 桉镱朦珙忄螯 潆 磬耱痤殛 锣泐 Webmin 皴疴屦 赅 皴疴屦 噔蝾痂玎鲨 镱 皴痱梏桕囹囔 (CA) 蜞, 黩 镱朦珙忄蝈腓 祛泱 玎镳铖栩 皴徨 皴痱梏桕囹  祛潴脲 "项朦珙忄蝈腓 Webmin" 潆 桴 桎屙蜩翳赅鲨 磬 皴疴屦 徨 镳邃忄痂蝈朦眍 疱汨耱疣鲨.
themes_title=义禧 Webmin
ui_sysinfo=项赅琨忄螯 桁 镱朦珙忄蝈  爨睇
themes_done=央邃簋 蝈禧 猁腓 篑镥 桧耱嚯腓痤忄睇 磬 锣 耔耱屐:
themes_etar=湾 怆弪 漕矬耱桁 羿殡铎 蝈禧 : $1
ui_egreen=湾忮痦铄 珥圜屙桢 珏脲眍泐 潆 '$1'
install_egzip=脏殡  纛痨囹 gzip, 眍 觐爨礓 $1 礤 磬殇屙  耔耱屐
syslet_base=拎珙恹 URL 潆 RPM 耔耠弪钼
log_referers=如戾礤睇 漕忮疱眄 耨
log_proxy=如戾礤睇 镳铌耔 皴疴屦
themes_desc=义禧 箫疣怆 忭屮龛 忤漕 桧蝈痿彘襦 镱朦珙忄蝈 Webmin, 怅膻鬣 镨牝钽疣祆, 鲡弪, 纛  忸珈铈眍 疣耧铍铈屙桢 耱疣龛. 蔓徨痂蝈 钿眢  桤 篑蜞眍怆屙睇 磬 锣 耔耱屐 蝈  疣礻 皴脲牝铕  耠邃簋 纛痨.
session_enable=玛膻麒螯 囿蝈眚梏桕圉棹 皴耨栝
upgrade_emod=脏殡 怆弪 祛潴脲 Webmin,  礤 镱腠 钺眍怆屙桢. 锣 磬漕 桉镱朦珙忄螯 耱疣龛鲶 <a href='$1'>填潴腓 Webmin</a> 潆 邈 桧耱嚯鲨.
log_delete=愉嚯屙 祛潴朦 $1
themes_einfo=碾 蝈禧 $1 铗耋蝰蜮箦 theme.info 羿殡
themes_installok=软耱嚯腓痤忄螯 义祗
log_modules=澡犟桊钼囹 桤戾礤龛 蝾朦觐  ..
log_log=如戾礤睇 镟疣戾蝠 骟痦嚯桊钼囗
session_syslog=澡犟桊钼囹 犭铌桊钼囗睇 躅耱  镱漶桉蝈戾 <tt>syslog</tt>
ui_header=相疣戾蝠 桧蝈痿彘襦 镱朦珙忄蝈
ui_err=硒栳赅 镳 耦躔囗屙梃 鲡弪钼铋 聃屐
log_categories=如戾礤睇 桁屙 赅蝈泐痂
ca_stop=橡尻疣蜩螯 噔蝾痂玎鲨 镱 皴痱梏桕囹囔 Shutdown certificate authority
log_upgrade=吾眍怆屙 Webmin 漕 忮瘃梃 $1
install_ecomp=脏殡  纛痨囹 compress, 眍 觐爨礓 $1 礤 磬殇屙  耔耱屐
log_startpage=如戾礤睇 镟疣戾蝠 汶噔眍泐 戾睨
log_theme=如戾礤磬 蝈爨 磬 $1
upgrade_descrpm=泥眄 纛痨 镱玮铍弪 锣 镱腠铖螯 钺眍忤螯 桧耱嚯鲨 Webmin 皴疴屦 磬 眍怏 忮瘃棹 桉镱朦珞 RPM. 蔓 祛驽蝈 镳钼羼蜩 钺眍怆屙桢 桉镱朦珞 腩赅朦睇 RPM 羿殡, 镱溷痼驽眄 镱 皴蜩 羿殡 桦 镱耠邃睨 忮瘃棹  <a href=http://www.webmin.com/>www.webmin.com</a>. 亦赕 赅  镳 痼黜铎 钺眍怆屙梃, 怦 锣 磬耱痤殛  祛潴腓 耱铕铐龛 疣琊噌铗麒觐 狍潴 耦躔囗屙.
session_eblockhost_time=悟耋蝰蜮箦 桦 礤忮痦 怵屐 犭铌桊钼囗
log_lang=如戾礤 琨, 汶钺嚯
upgrade_setuprpm=吾眍怆 Webmin 镳 镱祛 RPM .. 项漕驿栩 扈眢蜿 镱赅 镳铞羼 礤 玎忮瘌栩.
upgrade_esolaris=泽黻鲨 钺眍怆屙 Webmin  磬耱 祛戾眚 礤 疣犷蜞弪, 羼腓  蔓 桧耱嚯腓痤忄腓 Webmin 桤 Solaris 镟赍蜞. 项驵塍轳蜞 钺眍忤蝈 Webmin 怵篦眢.
session_localoff=埋邈溧 蝠遽箦蝰 桁 镱朦珙忄蝈  镟痤朦
themes_default=义爨 Webmin 镱 箪铍鬣龛
log_changeca=如戾礤磬 噔蝾痂玎鲨 镱 皴痱梏桕囹囔
themes_ecomp2=湾 祛泱 皲咫囹 uncompress 羿殡 : $1
session_blockhost=岭铌桊钼囹 镱耠 犷脲 $1 礤忮痦 镱稃蝾 疱汨耱疣鲨 磬 $2 皴牦礓.
startpage_deftab=枢蝈泐痂 镱 箪铍鬣龛
session_elogouttime=悟耋蝰蜮箦 桦 礤忮痦 怵屐 徨玟彘耱忤 漕 噔蝾爨蜩麇耜钽 铗觌屙
log_files=澡犟桊钼囹 桤戾礤龛  羿殡圊 皲咫囗 膻猁扈 溴轳蜮扈
assignment_title=襄疱磬珥圜栩 祛潴腓
themes_eurl=湾忮痦 URL
themes_eirpm=硒栳赅 镳 篑蜞眍怅 RPM : $1
ca_ou=悟溴
categories_title=绣溧牝桊钼囗桢 赅蝈泐痂
log_mall=澡犟桊钼囹 桤戾礤龛 忸 怦艴 祛潴
install_erpm=湾 怆弪 RPM Webmin 祛潴
session_locking=玛膻麒螯 犭铌桊钼囗桢  Webmin
themes_efile=脏殡 礤 耋耱怏弪
ca_stopmsg=袜骒栩 磬 溧眄簋 觏铒牦 潆 镳尻疣龛 镳桢爨 耋耱怏桴  恹溧麒 眍恹 皴痱梏桕囹钼. 蒡 玎耱噔栩 镱朦珙忄蝈脲 桉镱朦珙忄螯 桁  镟痤朦 潆 桴 囿蝈眚梏桕圉梃.
log_ssl=如戾礤 疱骅 麴钼囗 SSL
session_elsof=祟赅朦磬 囿蝈眚梏桕圉 蝠遽箦 磬腓麒 镳钽疣祆 <tt>lsof</tt>
log_bind=如戾礤 镱痱  噤疱
referers_title=念忮疱眄 耨觇
ca_old=洋耱怏栝 皴痱梏桕囹
categories_new=皖忄 赅蝈泐痂
ui_title=软蝈痿彘 镱朦珙忄蝈
log_os=如戾礤磬 铒屦圉桀眄 耔耱屐
upgrade_setuppackage=吾眍怆 Webmin 镳 镱祛 pkgadd .. 项漕驿栩 扈眢蜿 镱赅 镳铞羼 礤 玎忮瘌栩.
delete_sure=蔓 筲屦屙, 黩 躅蜩蝈 箐嚯栩 恹狃囗睇 祛潴腓? $1 梳 羿殡钼 狍溴 箐嚯屙 徨玮铉怵囹眍.
ui_texttitles=项赅琨忄螯 玎泐腩怅 赅 蝈犟?
ca_header1=杨玟囗桢 眍忸泐 CA 皴痱梏桕囹
ca_header2=绣溧牝桊钼囗桢 CA 皴痱梏桕囹
themes_ok=义爨 篑镥 桤戾礤磬 ... 镥疱躅骟 磬 汶噔眍 戾睨 Webmin.
themes_egzip=脏殡  纛痨囹 gzip, 眍 觐爨礓 $1 礤 磬殇屙 磬 锣 耔耱屐
ca_title=棱蝾痂玎鲨 镱 皴痱梏桕囹囔
session_title=荔蝈眚梏桕圉
install_egzip2=硒栳赅 镳 镱稃蜿 恹镱腠栩 gunzip 潆 羿殡 : $1
log_stopca=悟戾礤磬 噔蝾痂玎鲨 镱 皴痱梏桕囹囔
ca_err=硒栳赅 镳 篑蜞眍怅 噔蝾痂玎鲨 镱 皴痱梏桕囹囔
session_err=硒栳赅 镳 耦躔囗屙梃 囿蝈眚梏桕圉梃
ca_cn=暑 噔蝾痂玎鲨
session_disable=悟觌栩 囿蝈眚梏桕圉棹 皴耨栝
session_penable=玛膻麒螯 蜞殪囿螓 潆 镟痤脲
syslet_auto=棱蝾爨蜩麇耜 玎沭箧囹 耔耠弪?
  07070100017269000081a40000000000000002000000013ac0389200004e4c000000200000000000000000000000000000001800000003reloc/webmin/lang/ru_SU   index_title=胂纹汕找撩裳 Webmin
index_return=讼纹汕找撩衫 webmin

access_title=跣伊滋盼膳 南釉招贤 邢 IP
access_desc=笈易乓 Webmin 拖峙 沦载 瘟釉蚁盼 粤, 拊下 诹幸泡猎 商 伊谝袍猎 南釉招 韵特讼  闻讼韵屹 IP 聊遗酉 捎邢特谡 牧挝偈 纳撂锨. 湎姓釉赏 账邻僮猎 肆 赏盼 认釉献 (瘟幸赏乓 foo.bar.com), 粤  IP 优陨 (瘟幸赏乓 10.254.3.0 商 10.254.1.0/255.255.255.128). 髻 南讨钨 幸拍嫌粤咨载 南釉招  琢叟驼 优易乓 韵特讼 南着遗挝偻 聊遗恿, 嫌下盼蜗 庞躺 衔 南釉招盼 哨 Internet. 槲赁 汤孪, 嗽 涨聊僚 琢 辛蚁特 抡呐 赏旁 邢涛偈 讼卧蚁特 瘟 琢叟 由釉磐鲜.
access_header=胂卧蚁特 湎釉招
access_all=蛄谝袍稍 酉 子湃 聊遗酉
access_allow=蛄谝袍稍 韵特讼  信遗奚犹盼钨 聊遗酉
access_deny=幸旁稍  信遗奚犹盼钨 聊遗酉
access_err=镗陕肆 幸 下蜗滋盼缮 有捎肆 南釉招
access_enone=崮遗恿 闻 账邻廖
access_enet='$1' 闻 炎萄旁友 南姓釉赏偻 优耘踪 聊遗酉
access_emask='$1' 闻 炎萄旁友 南姓釉赏偻鲜 优耘紫 土铀鲜
access_eip='$1' 闻 炎萄旁友 邢涛偻 聊遗酉 IP 商 优陨
access_ehost=镗陕肆 幸 邢捎伺 IP 聊遗恿 奶 '$1'
access_eself=髁 酉掠宰盼钨 IP 聊遗 ($1) 抡呐 诹幸泡盼

bind_title=鹣以  聊遗
bind_desc=逵躺 认釉 瘟 讼韵蚁 伊孪粤旁 Webmin 赏排 闻铀咸厮 IP 聊遗酉, 韵 优易乓 拖峙 沦载 瘟釉蚁盼 瘟 幸嫌陶凵琢紊 诹幸嫌献 韵特讼  夏蜗窍 哨 紊 捎邢特谡 牧挝绽 葡彝. 鹣以 TCP, 讼韵屹 幸嫌陶凵琢旁 Webmin 粤酥 拖治 瘟釉蚁稍 谀庞. 飨谕现蜗 髁 着 乱琳谂 拖峙 邢幸嫌稍 琢 信遗遗巧釉疑蚁琢载友 邢犹 哨团闻紊 邢以 商 聊遗恿 幸勺掩松.
bind_header=IP 崮遗  鹣以
bind_ip=鹨嫌陶凵琢载 IP 崮遗
bind_all=饔
bind_port=鹨嫌陶凵琢载 鹣以
bind_err=镗陕肆 幸 油盼 聊遗恿
bind_eip=镗陕肆 幸 邢匈运 邢陶奚载 IP 聊遗 奶 '$1'
bind_eassign=崮遗 '$1' 闻 幸捎紫盼 牧挝鲜 由釉磐
bind_eport=鹣以 $1 罩 捎邢特谡旁友

log_title=稣椅撂哨撩裳 酉沦陨
log_desc=Webmin 拖峙 沦载 瘟釉蚁盼 奶 诹猩由 终椅撂 酉沦陨 着 优易乓  釉廖牧以蜗 葡彝猎 终椅撂匚偃 屏侍献 CLF. 逵躺 终椅撂哨撩裳 姿汤夼瘟, 踪 拖峙耘 踪乱猎 讼悄 IP 聊遗恿 商 赏盼 认釉献 诹猩淤琢涝友  终椅撂  肆 蘖釉 终椅撂匚偈 屏侍 限奢僚杂. 鹨 了陨咨诹蒙, 终椅撂 猩壅杂  屏侍 $1.
log_header=稣椅撂哨撩裳 酉沦陨 髋 笈易乓
log_disable=镌颂擂稍 终椅撂哨撩衫
log_enable=魉汤奚载 终椅撂哨撩衫
log_resolv=猩淤琢载 伊谏团蜗琢挝倥 认釉
log_clear=镛奢猎 终椅撂 肆帜倥 $1 蘖酉
log_err=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献 终椅撂哨撩缮
log_ehours='$1' 闻 炎萄旁友 南姓釉赏偻 讼躺夼釉紫 蘖酉

proxy_title=鹨纤由 优易乓
proxy_desc=逵躺 认釉 瘟 讼韵蚁 诹姓菖 Webmin 瘟认纳杂 诹 优耘踪 芩伊蜗 闻讼窍 陨辛, 琢 拖峙 邢砸怕献猎赜 沼粤蜗姿 辛伊团砸献 幸纤由 优易乓献 奶 南釉招  Web  FTP 遮塘. 钆讼韵屹 拖恼躺, 粤松 肆 <tt>鹨锨伊屯钨 鹆伺再</tt>, 抡恼 捎邢特谙琢载 牧挝倥 幸纤由 幸 踪且遮伺 屏侍献  幸锨伊屯.
proxy_header=鹨纤由 笈易乓
proxy_http=HTTP 幸纤由
proxy_ftp=FTP 幸纤由
proxy_none=钆
proxy_nofor=钆 幸纤由 奶
proxy_err=镗陕肆 幸 酉纫廖盼缮 幸纤由
proxy_ehttp=HTTP 幸纤由 优易乓 南讨盼 沦载 鬃拍盼 肆 URL
proxy_eftp=FTP 幸纤由 优易乓 南讨盼 沦载 鬃拍盼 肆 URL

#colours_title=阕旁献裂 尤磐
#colours_desc=淞挝偈 纳撂锨 邢谧咸雅 髁 遗牧嗽梢献猎 米旁献绽 尤磐 捎邢特谡磐绽 子磐 拖恼萄蜕. 肓帜偈 米旁 闲遗呐萄旁友 捎邢特谡 釉廖牧以握 由釉磐 RGB, 悄 谖赁盼膳 肆帜鲜 酉釉磷萄垒攀 庞载 叟釉瘟拿猎乓赊钨 蜗团 显 00 南 ff.
#colours_header=阕旁献裂 笕磐
#colours_default=鹣 胀咸蘖紊
cs_page=嫦 釉伊紊
cs_text=钕彝撂匚偈 耘擞
cs_table=嫦 粤绿擅
cs_header=窍滔紫 粤绿擅
cs_link=襞擞 佑偬纤
#colours_err=镗陕肆 幸 酉纫廖盼缮 米旁献
#colours_ered=钆着椅吓 谖赁盼膳 艘劣蜗窍 奶 '$1'
#colours_egreen=钆着椅吓 谖赁盼膳 谂膛蜗窍 奶 '$1'
#colours_eblue=钆着椅吓 谖赁盼膳 由闻窍 奶 '$1'

mods_title=硐恼躺 Webmin
mods_desc1=硐恼躺 奶 Webmin 拖治 南铝滋言 捎邢特谡 葡彝 有伊琢. 锫俎蜗 拖恼躺 邢釉磷萄涝友  屏侍寥 <tt>.wbm</tt>, 肆帜偈 哨 讼韵屹 拖峙 酉呐抑猎 夏晌 商 孪膛 拖恼膛. 逵躺 拖恼特 躺门乌梢献廖 奶 沼粤蜗姿 韵特讼 瘟 闻铀县讼 认釉献, 踪 紫谕现蜗 闻 油现旁 徘 沼粤蜗咨载.
mods_install=跤粤蜗姿 硐恼萄 哨..
mods_local=煜肆特蜗窍 屏侍
mods_uploaded=且罩盼蜗窍 屏侍
mods_ftp=ftp 商 http URL
mods_installok=跤粤蜗咨载 硐恼特
mods_desc2=逵躺 踪 认陨耘 赏旁 孪膛 夏蜗 讼猩 夏蜗窍  韵窍-峙 拖恼萄  伊谖偻 瘟釉蚁仕镣, 韵 葡彝 有伊琢 邢谧咸雅 琢 颂衔梢献猎 汤孪 哨 诱菖釉渍垒扇 拖恼膛. 胩衔 抡呐 赏旁 蜗紫 赏, 蜗渍 讼纹汕找撩衫, 蜗踪 辛伊团砸 招伊滋盼裳 南釉招贤  拖峙 沦载 南釉招盼 伊谔赊钨 邢特谙琢耘萄.
mods_clone=胩衔梢献廖膳 硐恼萄
mods_cname=硐恼特 奶 颂衔梢献廖裳
mods_cnew=橥 颂衔梢献廖蜗窍 拖恼萄
mods_cloneok=胩衔梢献猎 硐恼特
mods_desc3=笳菖釉渍垒膳 拖恼躺  扇 颂衔 拖钦 沦载 漳撂盼 捎邢特谡 葡彝 紊峙. 逵躺 拖恼特 赏爬萆 颂衔 漳撂雅杂, 颂衔 粤酥 抡恼 漳撂盼. 逵躺 拖恼特 沦 漳撂盼, 踪 南讨钨 信遗晌釉撂躺蚁琢载 徘 奶 捎邢特谙琢紊 孜献. 硐恼特 闻 拖峙 沦载 漳撂盼, 庞躺 囊涨膳 拖恼躺 诹咨友 显 闻窍.
mods_delete=跄撂盼膳 硐恼膛
mods_deleteok=跄撂稍 髻乱廖钨 硐恼躺

install_err1=镗陕肆 幸 晌釉撂萄蒙 拖恼萄 哨 $1
install_efile=媪侍 闻 诱菖釉渍旁
install_err2=镗陕肆 幸 晌釉撂萄蒙 诹且罩盼蜗窍 拖恼萄
install_ebrowser=髁 乱琳谂 闻 邢哪乓稚琢旁 邢那艺谒 屏侍献
install_err3=镗陕肆 幸 晌釉撂萄蒙 拖恼萄 哨 $1
install_eurl=钆着椅偈 URL
install_etar=钆 炎萄旁友 南姓釉赏偻 屏侍贤 拖恼萄 : $1
install_einfo=硐恼特 $1 闻 赏排 屏侍 module.info
install_enone=鹣认峙, 拊 屏侍 闻 酉呐抑稍 紊 夏蜗窍 拖恼萄
install_eos=硐恼特 $1 闻 邢哪乓稚琢旁 牧挝绽 闲乓撩上挝绽 由釉磐 ($2 $3)
install_ever=硐恼特 $1 砸怕张 Webmin 着矣缮 $2 商 踪叟
install_edep=硐恼特 $1 砸怕张 瘟躺奚 拖恼萄 $2
install_eextract=镗陕肆 幸 伊有了献伺 : $1
install_title=槲釉撂萄蒙 拖恼萄
install_desc=筇拍绽萆 拖恼躺 沦躺 沼信畚 晌釉撂躺蚁琢钨  南铝滋盼  琢 有捎纤 南釉招 :
install_line=$1  $2 ($3 肼)

clone_err=镗陕肆 幸 颂衔梢献廖缮 拖恼萄
clone_elink=羡陕肆 酉谀廖裳 由妥咸赊庞讼 佑偬松 : $1
clone_ecopy=羡陕肆 幸 讼猩蚁琢紊 讼纹汕找撩缮 : $1
clone_desc=胩衔 $1

delete_err=镗陕肆 幸 漳撂盼缮 拖恼膛
delete_edep=硐恼特 $1 闻 拖峙 沦载 漳撂盼, 邢铀咸厮 拖恼特 $2 诹咨由 显 闻窍
delete_desc1=$1 (胩衔 $2)
delete_desc2=$1  $2 ($3 肼)
delete_title=跄撂盼膳 硐恼膛
delete_msg=筇拍绽萆 拖恼躺 沦躺 沼信畚 漳撂盼 哨 晌釉撂萄蒙 :

os_title=镄乓撩上挝裂 由釉磐
os_desc=淞挝裂 葡彝 邢谧咸雅 琢 哨团紊载 闲乓撩上挝绽 由釉磐 邢 讼韵艺 瘟釉蚁盼 Webmin.  拖峙 沦载 邢膛谖偻, 庞躺 踪 下蜗咨躺 琢壅 土凵握 瘟 蜗渍 着矣衫 纳釉疑抡陨琢 闲乓撩上挝鲜 由釉磐. 胂纹汕找撩裳 沼粤蜗滋盼钨 拖恼膛 闻 哨团紊杂 牧峙 幸 诱菖釉渍垒扇 显躺奚讶 团帜 釉烈鲜  蜗紫 由釉磐镣.
os_header=镄乓撩上挝裂 笊釉磐 柘釉
os_curros=襞苏萘 闲乓撩上挝裂 由釉磐
os_currver=襞苏萘 着矣裳 矬
os_new=钕琢 闲乓撩上挝裂 由釉磐

lang_title=褛偎
lang_title2=褛偎 Webmin
lang_lang=橛邢特谙琢载 掩偎
lang_intro=淞挝裂 釉伊紊昧 邢谧咸雅 琢 踪乱猎, 肆讼 掩偎 抡呐 捎邢特谙琢载友  Webmin 奶 诹窍滔姿献, 幸汕塘叟紊, 酉下菖紊  邢拖萆.
lang_ok=笸盼稍 褛偎

ssl_title=SSL 凵埔献廖膳
ssl_desc1=淞挝偈 认釉 赏排 沼粤蜗滋盼钨 拖恼特 SSLeay 奶 Perl. 鹨 徘 捎邢特谙琢紊 Webmin 邢哪乓稚琢旁 凵埔献廖钨 邢 幸显纤咸 SSL 酉拍晌盼裳 团帜 琢凵 乱琳谂蚁  优易乓贤. 逵躺 踪 伊孪粤旁  琢凵 Webmin 优易乓贤 夼遗 Internet, 韵 踪 下掩猎盘匚 南讨钨 捎邢特谙琢载 SSL 奶 幸拍显滓凛盼裳 信遗茸猎 琢凵 辛蚁膛 谔险唾厶盼紊肆蜕.
ssl_desc2=鹨拍招遗帜盼膳 - 姿汤蘖试 邢哪乓炙 SSL 韵特讼 庞躺 琢 乱琳谂 邢哪乓稚琢旁 SSL (瘟幸赏乓 Netscape 商 IE),  粤酥 庞躺 团帜 琢凵 乱琳谂蚁  优易乓贤 Webmin 闻 团钟旁抛锨 芩伊瘟 绿纤梢绽菖窍 <b>https</b> 诹幸嫌.
ssl_header=鹣哪乓炙 SSL
ssl_enable=魉汤奚载 邢哪乓炙 SSL, 庞躺 庞载
ssl_disable=髻汤奚载 邢哪乓炙 SSL, 牧峙 庞躺 庞载

startpage_title=鹆伊团砸 翘磷蜗窍 团卫
startpage_intro=淞挝裂 釉伊紊昧 邢谧咸雅 髁 闲遗呐躺载 讼-紫 猩嗽锨伊屯 瘟 讼滔嗡, 瘟 釉伊紊门 翘磷蜗窍 团卫
startpage_tabs=蛄诼稍 拖恼躺 瘟 肆耘窍疑?
startpage_nocol=胂-紫 胂滔蜗
startpage_alt=橛邢特谙琢载 撂卦乓瘟陨孜偈 诹窍滔紫
startpage_ecols='$1' 闻 炎萄旁友 南姓釉赏偻 讼-紫 讼滔蜗
startpage_gotoone=逵躺 南釉招盼 韵特讼 夏晌 拖恼特,<br>诹且罩猎 右邻 徘?

upgrade_title=锫蜗滋盼裳  Webmin
upgrade_desc=淞挝裂 葡彝 邢谧咸雅 髁 下蜗咨载 髁壅 晌釉撂萄蒙 webmin 瘟 蜗渍 着矣衫. 髻 拖峙耘 幸献庞陨 晌釉撂萄蒙 哨 滔肆特蜗窍 屏侍, 诹且罩盼蜗窍 屏侍 商 邢犹拍卫 着矣衫 瘟 <a href=http://www.webmin.com/>www.webmin.com</a>. 袅酥 肆  幸 艺尬贤 下蜗滋盼缮, 子 髁凵 瘟釉蚁仕  拖恼躺 砸旁厣 伊谝谅显奚讼 酉纫廖言友. 
upgrade_local=橼 滔肆特蜗窍 屏侍
upgrade_uploaded=橼 诹且罩盼蜗窍 屏侍
upgrade_ftp=鹣犹拍窝 着矣裳  www.webmin.com
upgrade_ok=锫蜗咨载 Webmin
upgrade_err1=镗陕肆 幸 下蜗滋盼缮 哨 $1
upgrade_err2=镗陕肆 幸 下蜗滋盼缮 哨 诹且罩盼蜗窍 屏侍
upgrade_err3=镗陕肆 幸 下蜗滋盼缮  www.webmin.com
upgrade_efile=媪侍 闻 诱菖釉渍旁
upgrade_ebrowser=髁 乱琳谂 闻 邢哪乓稚琢旁 邢那艺谒 屏侍献
upgrade_eversion=钆 拖钦 着椅赵赜  着矣缮 $1
upgrade_egunzip=盍 琢叟 由釉磐 显诱杂宰张 讼土文 <tt>gunzip</tt>
upgrade_etar=钆 炎萄旁友 南姓釉赏偻 tar 屏侍贤 webmin
upgrade_setup=髻邢涛牙 用盼烈墒 setup.sh 奶 下蜗滋盼裳 Webmin .. 鹣南帜稍 蜕握运, 邢肆 衔 闻 诹着役稍 幼侠 伊孪哉.

assignment_header=笙显着杂宰膳 拖恼膛 肆耘窍疑淹
assignment_title=鹋遗瘟谖赁稍 拖恼躺
ca_c=胂 釉伊钨
ca_cn=胂 磷韵疑诹蒙
ca_create=跤粤蜗姿 磷韵疑诹蒙 邢 优以善伤猎镣
ca_email=崮遗 e-mail
ca_eminiserv=SSL 优以善伤猎 颂膳卧献 邢哪乓稚晾杂 韵特讼 邢 miniserv.
ca_err=镗陕肆 幸 沼粤蜗姿 磷韵疑诹蒙 邢 优以善伤猎镣
ca_essl=SSL 优以善伤撩裳 拖峙 沦载 沼粤蜗滋盼 韵特讼 幸 伊孪耘 着 优易乓  遗稚团 SSL.
ca_essleay=胂土文 招伊滋盼裳 SSL  $1 闻 瘟誓盼. 飨谕现蜗 髁 握治 哨团紊载 姓载  闻  讼纹汕找撩缮 拖恼萄 "鹣特谙琢耘躺 Webmin".
ca_eversion=髋矣裳 Perl 拖恼萄 Net::SSLeay 沼粤蜗滋盼瘟 瘟 髁叟 由釉磐 闻 邢哪乓稚琢旁 SSL 优以善伤猎 颂膳卧献.
ca_header1=笙谀廖膳 蜗紫窍 CA 优以善伤猎
ca_header2=蚺牧嗽梢献廖膳 CA 优以善伤猎
ca_newmsg1=髁 Webmin 优易乓 罩 瘟釉蚁盼 奶 磷韵疑诹蒙 邢 优以善伤猎镣. 髻 拖峙耘 捎邢特谙琢载 茉 葡彝 奶 扇 沼粤蜗姿 游献, 蜗 汤沦 优以善伤猎 罩 踪牧挝倥 邢特谙琢耘萄 信遗釉廖赵 伊孪粤载.
ca_newmsg2=淞挝裂 葡彝 拖峙 捎邢特谙琢载友 奶 瘟釉蚁仕 髁叟窍 Webmin 优易乓 肆 优易乓 磷韵疑诹蒙 邢 优以善伤猎镣 (CA) 粤, 拊 邢特谙琢耘躺 拖钦 诹幸嫌稍 优屡 优以善伤猎  拖恼膛 "鹣特谙琢耘躺 Webmin" 奶 扇 赡盼陨粕肆蒙 瘟 优易乓 屡 幸拍琢疑耘特蜗 遗巧釉伊蒙.
ca_o=镆橇紊诹蒙
ca_old=笳菖釉渍垒墒 优以善伤猎
ca_oldmsg1=笈以善伤猎 CA 捎邢特谡磐偈 牧挝偻 优易乓贤 邢肆诹 紊峙. 髻 拖峙耘 哨团紊载 徘 姓耘 子粤姿 永牧 优以善伤猎  囊涨锨 CA, 蜗 汤沦 优以善伤猎 罩 踪牧挝倥 邢特谙琢耘萄 信遗釉廖赵 伊孪粤载.
ca_oldmsg2=逵躺 髻 罩 瘟釉蚁商 CA 瘟 囊涨贤 Webmin 优易乓, 髻 拖峙耘 子粤咨载 永牧 徘 优以善伤猎 淄庞韵 瘟釉蚁仕 蜗紫窍 CA.  邢谧咸稍 邢特谙琢耘萄 囊涨锨 优易乓 粤酥 伊有馅蜗琢载友 瘟 牧挝贤 优易乓.
ca_ou=镌呐
ca_setupok=嶙韵疑诹蒙 邢 优以善伤猎镣 沦塘 沼信畚 瘟釉蚁盼. 笈兽劣 邢特谙琢耘躺 拖钦 捎邢特谙琢载 拖恼特 "鹣特谙琢耘躺 Webmin" 奶 诹幸嫌 幼仙 优以善伤猎献.
ca_sp=猎
ca_stop=鹨潘伊陨载 磷韵疑诹蒙 邢 优以善伤猎镣 Shutdown certificate authority
ca_stopmsg=盍滞稍 瘟 牧挝绽 宋闲苏 奶 幸潘伊菖紊 幸膳土 诱菖釉渍垒扇  踪牧奚 蜗踪 优以善伤猎献.  诹釉磷稍 邢特谙琢耘膛 捎邢特谙琢载 赏  辛蚁特 奶 扇 琳耘卧善伤撩缮.
ca_stopok=嶙韵疑诹蒙 邢 优以善伤猎镣 沦塘 沼信畚 幸潘伊菖瘟.
ca_title=嶙韵疑诹蒙 邢 优以善伤猎镣

categories_add=湎铝咨载
categories_header=ID  闲捎廖膳 肆耘窍疑
categories_new=钕琢 肆耘窍疑
categories_title=蚺牧嗽梢献廖膳 肆耘窍疑

delete_sure=髻 兆乓盼, 拊 认陨耘 漳撂稍 踪乱廖钨 拖恼躺? $1 肼 屏侍献 抡呐 漳撂盼 屡谧馅滓猎蜗.

install_ecomp2=镗陕肆 幸 邢匈运 踪邢涛稍 uncompress 奶 屏侍 : $1
install_ecomp=媪侍  葡彝猎 compress, 蜗 讼土文 $1 闻 瘟誓盼  由釉磐
install_egzip2=镗陕肆 幸 邢匈运 踪邢涛稍 gunzip 奶 屏侍 : $1
install_egzip=媪侍  葡彝猎 gzip, 蜗 讼土文 $1 闻 瘟誓盼  由釉磐
install_eirpm=镗陕肆 幸 晌釉撂萄蒙 RPM : $1
install_erpm=钆 炎萄旁友 RPM Webmin 拖恼萄

log_access=橼团闻蜗 招伊滋盼膳 南釉招贤 邢 IP
log_assignment=橼团闻钨 肆耘窍疑 拖恼膛
log_bind=橼团闻 邢以  聊遗
log_categories=橼团闻钨 赏盼 肆耘窍疑
log_changeca=橼团闻瘟 磷韵疑诹蒙 邢 优以善伤猎镣
log_clone=胩衔梢献廖 拖恼特 $1  $2
log_delete=跄撂盼 拖恼特 $1
log_desc2=鹨 姿汤夼紊 终椅撂梢献廖裳, Webmin 抡呐 诹猩淤琢载 孪膛 呐粤躺谏蚁琢挝偈 终椅撂 呐视宰墒 邢特谙琢耘萄  屏侍 $1. 淞挝偈 终椅撂 拖峙 沦载 幸嫌拖砸盼  幸狭瘟躺谏蚁琢 拖恼膛 "稣椅撂 呐视宰墒 Webmin" 瘟 幸拍团 呐视宰墒 肆帜锨 邢特谙琢耘萄 Webmin.
log_ediff= 髁叟 由釉磐 显诱杂宰张 讼屯廖牧 $1 闻下认纳土 奶 终椅撂哨撩缮 哨团闻紊  屏侍寥
log_files=嫔擞梢献猎 哨团闻紊  屏侍寥 幽盘廖偃 汤沦蜕 呐视宰裳蜕
log_install=槲釉撂躺蚁琢 拖恼特 $1
log_lang=橼团闻 掩偎, 翘下撂匚
log_log=橼团闻钨 辛伊团砸 终椅撂梢献廖
log_mall=嫔擞梢献猎 哨团闻紊 紫 子湃 拖恼萄
log_modules=嫔擞梢献猎 哨团闻紊 韵特讼  ..
log_os=橼团闻瘟 闲乓撩上挝裂 由釉磐
log_proxy=橼团闻钨 幸纤由 优易乓
log_referers=橼团闻钨 南着遗挝倥 佑偬匚倥
log_session=橼团闻钨 辛伊团砸 琳耘卧善伤撩缮
log_setupca=跤粤蜗滋盼 磷韵疑诹蒙 邢 优以善伤猎镣
log_ssl=橼团闻 遗稚 凵埔献廖裳 SSL
log_startpage=橼团闻钨 辛伊团砸 翘磷蜗窍 团卫
log_stopca=镌团闻瘟 磷韵疑诹蒙 邢 优以善伤猎镣
log_theme=橼团闻瘟 耘土 瘟 $1
log_theme_def=橼团闻瘟 耘土 瘟 耘驼 Webmin 邢 胀咸蘖紊
log_tinstall=槲釉撂躺蚁琢瘟 耘土 $1
log_uall=嫔擞梢献猎 呐视宰裳 子湃 邢特谙琢耘膛
log_ui=橼团闻钨 辛伊团砸 晌耘移攀恿 邢特谙琢耘萄
log_upgrade=锫蜗滋盼 Webmin 南 着矣缮 $1
log_users=嫔擞梢献猎 呐视宰裳 韵特讼 ..

os_desc2=髻 粤酥 拖峙耘 哨团紊载 姓载 邢捎肆 捎邢特谡磐偈 Webmin 奶 诹姓铀 幸锨伊屯,  姓载  伊谀盘雅唾 律绿上耘肆 信遗牧琢磐偈 肆帜鲜 诹姓铀僚拖 幸锨伊屯.
os_ld_path=鹫载 邢捎肆 律绿上耘
os_path=鹫载 邢捎肆 幸锨伊屯

referers_desc=淞挝裂 葡彝 邢谧咸雅 髁 瘟釉蚁稍 邢哪乓炙 幸献乓松 佑偬纤 瘟 优易乓 Webmin, 讼韵伊 捎邢特谡旁友 奶 幸拍显滓凛盼裳 闲劣钨 佑偬纤  囊涨扇 着 恿试献 诹釉磷萄垒扇 髁 着 乱琳谂 踪邢涛言 闲劣钨 呐视宰裳. 锬瘟讼 庞躺  髁 庞载 佑偬松 瘟 优易乓 Webmin 哨 瘟呐治偃 团釉, 讼韵屹 闻 南讨钨 踪谫琢载 砸抛锨, 髻 拖峙耘 南铝咨载 牧挝倥 恿试  有捎纤 紊峙.
referers_list=湎着遗挝倥 着 恿试
referers_none=湎着已载 佑偬肆 显 闻谖了贤门
referers_referer=鹨献乓肆 佑偬纤 姿汤夼瘟?
referers_title=湎着遗挝倥 佑偬松

session_blockhost=馓纤梢献猎 邢犹 孪膛 $1 闻着椅偃 邢匈韵 遗巧釉伊蒙 瘟 $2 优苏文.
session_desc1=逵躺 姿汤夼蜗, 韵 粤释琳再 辛蚁萄 诹萆匝 髁 Webmin 优易乓 显 滔孪踪 猎了 邢 宗滔驼 辛蚁膛 姓耘 南铝滋盼裳 邢釉涎挝 紫谝劣粤垒攀 诹呐抑松 团帜 肆帜鲜 闻着椅鲜 邢匈运鲜 遗巧釉伊蒙 奶 夏蜗窍  韵窍-峙 邢特谙琢耘萄.
session_desc2=鹨 姿汤夼紊 琳耘卧善伤撩缮 优佑墒, 肆帜裂 诹遗巧釉疑蚁琢挝裂 邢特谙琢耘特铀裂 优佑裳 抡呐 显犹胖勺猎赜 Webmin-贤.  牧旁 紫谕现蜗釉 磷韵土陨夼铀 显颂擂猎 屡谀攀釉渍垒扇 邢特谙琢耘膛. 锫伊陨耘 孜赏廖膳, 拊 姿汤夼紊 商 显颂擂盼膳 琳耘卧善伤撩缮 优佑墒 拖峙 邢砸怕献猎 信遗遗巧右撩缮 子湃 伊孪粤垒扇 邢特谙琢耘膛.
session_disable=镌颂擂稍 琳耘卧善伤撩衫 优佑墒
session_eblockhost_failures=镌诱杂宰张 商 闻着椅 讼-紫 遗巧釉伊蒙 南 绿纤梢献廖裳
session_eblockhost_time=镌诱杂宰张 商 闻着椅 滓磐 绿纤梢献廖裳
session_ecookie=髁 乱琳谂 闻 邢哪乓稚琢旁 "颂擂伤", 讼韵屹 闻下认纳唾 奶 琳耘卧善伤撩缮 优佑墒
session_elogouttime=镌诱杂宰张 商 闻着椅 滓磐 屡谀攀釉咨 南 磷韵土陨夼铀锨 显颂擂盼裳
session_elsof=煜肆特瘟 琳耘卧善伤撩裳 砸怕张 瘟躺奚 幸锨伊屯 <tt>lsof</tt>
session_enable=魉汤奚载 琳耘卧善伤撩衫 优佑墒
session_err=镗陕肆 幸 酉纫廖盼缮 琳耘卧善伤撩缮
session_header=鹆伊团砸 琳耘卧善伤撩缮  优佑墒
session_localoff=饔徘牧 砸怕张杂 赏 邢特谙琢耘萄  辛蚁特
session_localon=蛄谝袍稍 兹夏 屡 辛蚁萄 奶 酉仔聊晾萆 邢特谙琢耘膛  localhost
session_locking=魉汤奚载 绿纤梢献廖膳  Webmin
session_logout=嶙韵显颂擂盼膳 邢犹 $1 蜕握 屡谀攀釉咨
session_pdisable=镌颂擂稍 粤释琳再 奶 辛蚁膛
session_penable=魉汤奚载 粤释琳再 奶 辛蚁膛
session_syslog=嫔擞梢献猎 绿纤梢献廖钨 认釉  邢挠捎耘团 <tt>syslog</tt>
session_title=嵴耘卧善伤撩裳

startpage_deftab=肓耘窍疑 邢 胀咸蘖紊

syslet_auto=嶙韵土陨夼铀 诹且罩猎 由犹旁?
syslet_base=饬谙踪 URL 奶 RPM 由犹旁献
syslet_desc=淞挝裂 葡彝 幸拍瘟谖赁盼 奶 瘟釉蚁仕 磷韵土赊庞讼 诹且遮松  晌釉撂萄蒙 显诱杂宰绽萆 "Eazel 笊犹旁献" 瘟 髁 Webmin 优易乓.
syslet_ebase=钆着椅偈 铝谙踪 URL
syslet_err=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献 由犹旁献
syslet_title=嶙韵诹且遮肆 由犹旁献

themes_change=橼团紊载
themes_default=襞土 Webmin 邢 胀咸蘖紊
themes_desc=襞唾 招伊滋牙 孜袍紊 咨南 晌耘移攀恿 邢特谙琢耘萄 Webmin, 姿汤蘖 猩嗽锨伊屯, 米旁, 葡  紫谕现蜗 伊有咸现盼膳 釉伊紊. 髻屡疑耘 夏握  哨 沼粤蜗滋盼钨 瘟 髁叟 由釉磐 耘  伊退 优膛嗽弦  犹拍绽菖 葡彝.
themes_done=筇拍绽萆 耘唾 沦躺 沼信畚 晌釉撂躺蚁琢钨 瘟 髁壅 由釉磐:
themes_ebrowser=髁 乱琳谂 闻 邢哪乓稚琢旁 邢那艺谒 屏侍献
themes_ecomp2=钆 拖钦 幽盘猎 uncompress 屏侍 : $1
themes_ecomp=媪侍  葡彝猎 compress, 蜗 讼土文 $1 闻 瘟誓盼 瘟 髁叟 由釉磐
themes_eextract=镗陕肆 幸 伊谥猎缮 : $1
themes_efile=媪侍 闻 诱菖釉渍旁
themes_egzip2=钆 拖钦 幽盘猎 gunzip 屏侍 : $1
themes_egzip=媪侍  葡彝猎 gzip, 蜗 讼土文 $1 闻 瘟誓盼 瘟 髁叟 由釉磐
themes_einfo=涮 耘唾 $1 显诱杂宰张 theme.info 屏侍
themes_eirpm=镗陕肆 幸 沼粤蜗姿 RPM : $1
themes_enone=鹣认峙, 拊 屏侍 闻 酉呐抑稍 紊 夏蜗 耘唾
themes_erpm=钆 炎萄旁友 RPM  耘拖 奶 Webmin
themes_err1=镗陕肆 沼粤蜗姿 耘唾 哨 $1
themes_err2=镗陕肆 沼粤蜗姿 邢那艺峙挝鲜 耘唾
themes_err3=镗陕肆 沼粤蜗姿 耘唾 哨 $1
themes_etar=钆 炎萄旁友 南姓釉赏偻 屏侍贤 耘唾 : $1
themes_eurl=钆着椅偈 URL
themes_installdesc=橛邢特谡试 葡彝 紊峙 奶 沼粤蜗姿 蜗紫 耘唾 Webmin 瘟 髁叟 由釉磐. 襞唾 下俎蜗 邢釉磷萄涝友  <tt>.wbt</tt> 屏侍寥, 蜗 拖钦 粤酥 沼粤瘟滋勺猎赜 哨 RPM 屏侍献  犹辙僚 邢哪乓炙 粤讼踪 髁叟 闲乓撩上挝鲜 由釉磐鲜.
themes_installok=槲釉撂躺蚁琢载 襞驼
themes_line=$1  $2 ($3 肼)
themes_ok=襞土 沼信畚 哨团闻瘟 ... 信遗认终 瘟 翘磷蜗 团卫 Webmin.
themes_sel=襞苏萘 耘土 :
themes_title=襞唾 Webmin

ui_default=鹣 胀咸蘖紊
ui_desc=淞挝裂 葡彝 邢谧咸雅 髁 遗牧嗽梢献猎 辛伊团砸 晌耘移攀恿 邢特谙琢耘萄 捎邢特谡磐倥 子磐 拖恼萄蜕. 鹨 鬃夏 米旁献鲜 尤磐 肆帜偈 米旁 南讨盼 沦载 账邻廖 捎邢特谡 釉廖牧以握 由釉磐 RGB, 悄 肆帜吓 谖赁盼膳 幸拍釉磷萄旁 叟釉瘟拿猎乓赊钨 蜗团 显 00 南 ff. 
ui_eblue=钆着椅吓 谖赁盼膳 由闻窍 奶 '$1'
ui_egreen=钆着椅吓 谖赁盼膳 谂膛蜗窍 奶 '$1'
ui_ered=钆着椅吓 谖赁盼膳 艘劣蜗窍 奶 '$1'
ui_err=镗陕肆 幸 酉纫廖盼缮 米旁献鲜 尤磐
ui_header=鹆伊团砸 晌耘移攀恿 邢特谙琢耘萄
ui_sysinfo0=魑哨 乱琳谂伊
ui_sysinfo1= 诹窍滔姿 乱琳谂伊
ui_sysinfo2=盍 诹窍滔姿贤 釉伊紊觅
ui_sysinfo=鹣肆谫琢载 赏 邢特谙琢耘萄  土凵钨
ui_texttitles=鹣肆谫琢载 诹窍滔姿 肆 耘擞?
ui_title=槲耘移攀 邢特谙琢耘萄

upgrade_descrpm=淞挝裂 葡彝 邢谧咸雅 髁 邢涛嫌载 下蜗咨载 晌釉撂萄蒙 Webmin 优易乓 瘟 蜗渍 着矣衫 捎邢特谡 RPM. 髻 拖峙耘 幸献庞陨 下蜗滋盼膳 捎邢特谡 滔肆特钨 RPM 屏侍, 邢那艺峙挝偈 邢 优陨 屏侍 商 邢犹拍卫 着矣衫  <a href=http://www.webmin.com/>www.webmin.com</a>. 袅酥 肆  幸 艺尬贤 下蜗滋盼缮, 子 髁凵 瘟釉蚁仕  拖恼躺 釉弦衔紊 伊谝谅显奚讼 抡恼 酉纫廖盼.
upgrade_descsolaris-pkg=淞挝裂 葡彝 邢谧咸雅 髁 邢涛嫌载 下蜗咨载 晌釉撂萄蒙 Webmin 优易乓 瘟 蜗渍 着矣衫 姓耘 漳撂盼裳 耘苏菖窍 solaris 辛伺粤  晌釉撂萄蒙 蜗紫窍. 髻 拖峙耘 幸献庞陨 下蜗滋盼膳 捎邢特谡 滔肆特钨 solaris 辛伺, 邢那艺峙挝偈 邢 优陨 屏侍 商 邢犹拍卫 着矣衫  <a href=http://www.webmin.com/>www.webmin.com</a>. 袅酥 肆  幸 艺尬贤 下蜗滋盼缮, 子 髁凵 瘟釉蚁仕  拖恼躺 釉弦衔紊 伊谝谅显奚讼 抡恼 酉纫廖盼.
upgrade_emod=媪侍 炎萄旁友 拖恼膛 Webmin,  闻 邢涛偻 下蜗滋盼膳. 髁 瘟南 捎邢特谙琢载 釉伊紊谜 <a href='$1'>硐恼躺 Webmin</a> 奶 徘 晌釉撂萄蒙.
upgrade_erpm=钆 炎萄旁友 南姓釉赏偻 webmin RPM 屏侍贤.
upgrade_esolaris=嬲嗡蒙 下蜗滋盼裳 Webmin  瘟釉涎萆 拖团卧 闻 伊孪粤旁, 庞躺  髻 晌釉撂躺蚁琢躺 Webmin 哨 Solaris 辛伺粤. 鹣至陶视粤 下蜗咨耘 Webmin 滓辙握.
upgrade_setuppackage=锫蜗滋牙 Webmin 幸 邢拖萆 pkgadd .. 鹣南帜稍 蜕握运 邢肆 幸厦庞 闻 诹着役稍友.
upgrade_setuprpm=锫蜗滋牙 Webmin 幸 邢拖萆 RPM .. 鹣南帜稍 蜕握运 邢肆 幸厦庞 闻 诹着役稍友.
0707010001726a000081a40000000000000002000000013ac0389200004ab6000000200000000000000000000000000000001500000003reloc/webmin/lang/sv  index_title=Webmin-inst鋖lningar
index_return=webmin-inst鋖lningar

access_title=IP-錿komstkontroll
access_desc=Webmin-servern kan st鋖las in att neka eller till錿a 錿komst fr錸 vissa IP-adresser i detta formul鋜. Datornamn (t ex foo.bar.com) och IP-n鋞verk (t ex 10.254.3.0 eller 10.254.1.0/255.255.255.128) kan ocks anges. Tillg鋘gligheten b鰎 begr鋘sas till adresser du litar p, speciellt om servern g錼 att komma 錿 fr錸 Internet. Om du inte g鰎 detta kommer vem som helst som lyckas gissa sig till ditt l鰏enord att komma 錿 hela ditt system.
access_header=舤komstkontroll
access_all=Till錿 fr錸 alla adresser
access_allow=Till錿 endast fr錸 f鰈jande adresser
access_deny=Neka f鰈jande adresser
access_err=Det gick inte att uppdatera 錿komstlistan
access_enone=Du har inte angivit n錱on adress
access_enet='$1' 鋜 inte en giltig n鋞verksadress
access_emask='$1' 鋜 inte en giltig n鋞mask
access_eip='$1' 鋜 inte en fullst鋘dig IP- eller n鋞verksadress
access_ehost=Det gick inte att hitta IP-adressen f鰎 '$1'
access_eself=Din nuvarande IP-adress ($1) nekas med dessa inst鋖lningar

bind_title=Port och adress
bind_desc=Om datorn som Webmin k鰎s p har flera IP-adresser, kan du i detta formul鋜 st鋖la in servern att endast lyssna p en av adresserna. TCP-porten som Webmin lyssnar p kan ocks st鋖las in h鋜. Observera att din webbrowser kan kr鋠a att du loggar in igen om du 鋘drar port eller adress.
bind_header=IP-adress och port
bind_ip=Lyssna p IP-adress
bind_all=Alla
bind_port=Lyssna p port
bind_err=Det gick inte att 鋘dra adress
bind_eip=Det gick inte att hitta IP-adressen f鰎 '$1'
bind_eassign=Adressen '$1' finns inte p detta system
bind_eport=Port $1 anv鋘ds redan

log_title=Loggning
log_desc=Webmin kan st鋖las in att logga webservertr鋐far, i standardloggformatet CLF. Om loggningen 鋜 aktiverad kan du ocks v鋖ja att logga IP-adresser eller datornamn och st鋖la in hur ofta loggfilen ska rensas. Loggarna skrivs till fil $1.
log_desc2=N鋜 loggningen 鋜 aktiverad kommer Webmin ocks att logga anv鋘darnas aktivitet mer utf鰎ligt i filen $1. Denna logg kan man sedan titta p och analysera med modulen Loggning av Webmin-aktivitet f鰎 att se exakt vad varje Webmin-anv鋘dare har gjort.
log_header=Webserverloggning
log_disable=Deaktivera loggning
log_enable=Aktivera loggning
log_resolv=Logga uppslagna datornamn
log_clear=Rensa loggfilerna var $1:e timme
log_uall=Logga alla anv鋘dares aktivitet
log_users=Logga endast aktivitet fr錸 ...
log_mall=Logga aktivitet i alla moduler
log_modules=Logga endast aktivitet i ...
log_files=Logga direkt till fil f鰎 varje aktivitet
log_err=Det gick inte att spara logginst鋖lningarna
log_ehours='$1' 鋜 inte ett giltigt timantal
log_ediff=Ditt system har inte kommandot $1, som beh鰒s f鰎 att logga fil鋘dringar

proxy_title=Proxyservrar
proxy_desc=Om datorn som Webmin k鰎s p finns bakom en brandv鋑g kan du beh鰒a definiera en proxyserver s att web- och FTP-areor blir tillg鋘gliga. Vissa moduler, t ex <tt>Programpaket</tt>, kommer att anv鋘da dessa proxies n鋜 de h鋗tar filer och program.
proxy_header=Proxyservrar
proxy_http=HTTP-proxy
proxy_ftp=FTP-proxy
proxy_none=Ingen
proxy_nofor=Ingen proxy f鰎
proxy_err=Det gick inte att spara proxies
proxy_ehttp=HTTP-proxyservern m錽te anges som en URL
proxy_eftp=FTP-proxyservern m錽te anges som en URL

ui_title=Anv鋘darinst鋖lningar
ui_desc=I detta formul鋜 kan du g鰎a inst鋖lningar som ska g鋖la f鰎 alla moduler. F鋜ger m錽te anges p vanlig RGB-form, d鋜 varje v鋜de 鋜 ett hexadecimalt tal mellan 00 och ff.
ui_header=Anv鋘darinst鋖lningar
ui_default=Standard
cs_page=Bakgrund f鰎 sidor
cs_text=Normal text
cs_table=Bakgrund f鰎 tabeller
cs_header=Tabellrubrik
cs_link=L鋘ktext
ui_texttitles=Visa rubriker som text?
ui_sysinfo=Visa inloggnings- och datornamn
ui_sysinfo0=L鋘gst ned i webbl鋝aren
ui_sysinfo1=I l鋝arens titel
ui_sysinfo2=Ovanf鰎 sidhuvudet
ui_err=Det gick inte att spara f鋜ger
ui_ered=Ogiltigt r鰀v鋜de f鰎 '$1'
ui_egreen=Ogiltigt gr鰊v鋜de f鰎 '$1'
ui_eblue=Ogiltigt bl鍁鋜de f鰎 '$1'

mods_title=Webmin-moduler
mods_desc1=Genom att anv鋘da formul鋜et till h鰃er kan du l鋑ga till Webmin-moduler efter installationen. Moduler kommer vanligen som <tt>.wbm</tt>-filer, d鋜 en fil kan inneh錶la en eller flera moduler. Det g錼 ocks att installera moduler fr錸 RPM-filer om detta st鰀s av ditt operativsystem.
mods_install=Installera modul
mods_local=Fr錸 lokal fil
mods_uploaded=Fr錸 nedladdad fil
mods_ftp=Fr錸 FTP- eller HTTP-URL
mods_installok=Installera modul fr錸 fil
mods_desc2=Om du vill ha mer 鋘 en kopia av samma modul, fast med olika inst鋖lningar, kan du anv鋘da formul鋜et till h鰃er f鰎 att klona befintliga moduler. Klonen f錼 ett nytt namn, nya modulinst鋖lningar, nya 錿komstinst鋖lningar och kan g鰎as tillg鋘glig f鰎 andra anv鋘dare.
mods_clone=Klona modul
mods_cname=Modul att klona
mods_cnew=Namn p klonen
mods_cloneok=Klona modul
mods_desc3=Genom att anv鋘da formul鋜et nedan kan du ta bort befintliga moduler och kloner. Om en klonad modul tas bort, kommer ocks alla dess kloner att raderas. Om en modul har tagits bort m錽te du installera om den innan den kan anv鋘das igen. En modul kan inte tas bort om andra befintliga moduler 鋜 beroende av den.
mods_delete=Ta bort moduler
mods_deleteok=Ta bort angivna moduler

install_err1=Det gick inte att installera modulen fr錸 $1
install_efile=Filen finns inte
install_err2=Det gick inte att installera den nedladdade modulen
install_ebrowser=Din browser st鰀jer inte filnedladdning
install_err3=Det gick inte att installera modulen fr錸 $1
install_eurl=Ogiltig URL
install_etar=Ogiltig modulfil: $1
install_einfo=Modul $1 saknar module.info-fil
install_enone=Filen verkar inte inneh錶la n錱on modul
install_eos=Modul $1 st鰀jer inte detta operativsystem ($2 $3)
install_ever=Modul $1 g錼 endast att k鰎a i Webmin version $2 eller h鰃re
install_edep=Modul $1 beh鰒er modul $2
install_eextract=Det gick inte att packa upp modulen: $1
install_title=Installera modul
install_desc=F鰈jande moduler har installerats och lagts till din 錿komstkontrollista:
install_line=$1 i $2 ($3 kB)
install_ecomp=Filen 鋜 komprimerad, men kommandot $1 finns inte i systemet
install_ecomp2=Det gick inte att packa upp filen: $1
install_egzip=Filen 鋜 gzippad, men kommandot $1 finns inte i systemet
install_egzip2=Det gick inte att gunzippa filen: $1
install_erpm=Detta 鋜 inte en RPM-modul f鰎 Webmin
install_eirpm=RPM-installationen misslyckades :$1

clone_err=Det gick inte att klona modul
clone_elink=symbolisk l鋘kning misslyckades: $1
clone_ecopy=Det gick inte att kopiera inst鋖lningar: $1
clone_desc=Klon av $1

delete_err=Det gick inte att ta bort moduler
delete_edep=Modul $1 f錼 inte tas bort eftersom modul $2 鋜 beroende av den
delete_desc1=$1 (Klon av $2)
delete_desc2=$1 i $2 ($3 kB)
delete_title=Ta bort moduler
delete_msg=F鰈jande moduler har tagits bort fr錸 din Webmin-installation:
delete_sure=Vill du verkligen ta bort de angivna modulerna? Filer p sammanlagt $1 kB kommer att tas bort.

os_title=Operativsystem
os_desc=I detta formul鋜 kan du tala om f鰎 Webmin vilket operativsystem det ska tycka att du har. Detta 鋜 anv鋘dbart om du uppgraderar din maskin till en ny version av operativsystemet. Observera att alla inst鋖lningar f鰎 redan installerade moduler kommer att vara of鰎鋘drade, 鋠en om det finns skillnader mellan det nya och det gamla systemet.
os_desc2=H鋜 kan du ocks 鋘dra de s鰇v鋑ar som Webmin ska anv鋘da sig av vid k鰎ning av program och s鰇v鋑ar till den delade katalog som skickas till varje program.
os_header=Operativsystem
os_curros=Aktuellt operativsystem
os_currver=Aktuell OS-version
os_new=Nytt operativsystem
os_path=Programs鰇v鋑
os_ld_path=Katalogs鰇v鋑

lang_title=Spr錵val
lang_title2=Spr錵 i Webmin
lang_lang=Anv鋘d spr錵
lang_intro=P denna sida kan du v鋖ja vilket spr錵 Webmin ska anv鋘da i sina textmeddelanden
lang_ok=Byt spr錵

ssl_title=SSL-kryptering
ssl_desc1=Datorn som Webmin k鰎s p verkar ha SSLeay Perl-modulen installerad. Med hj鋖p av den kan Webmin st鰀ja SSL-krypterad kommunikation mellan din browser och servern. Om du kopplar upp dig mot Webmin-servern via Internet, b鰎 du definitivt anv鋘da SSL f鰎 att undvika att n錱on annan kan f tag p ditt Webmin-l鰏enord.
ssl_desc2=Varning! Sl endast p SSL-st鰀 om din browser st鰀jer SSL (t ex Netscape eller IE) och om det inte finns n錱on brandv鋑g som sp鋜rar <b>https</b>-f鰎fr錱ningar mellan din browser och Webmin-datorn.
ssl_header=SSL-st鰀
ssl_enable=Aktivera SSL-st鰀 om det finns
ssl_disable=Deaktivera SSL-st鰀 鋠en om det finns

startpage_title=Inst鋖lningar f鰎 indexsida
startpage_intro=P denna sida kan du g鰎a inst鋖lningar f鰎 indexsidorna
startpage_tabs=Kategorisera moduler?
startpage_nocol=Antal kolumner
startpage_alt=Anv鋘d alternativ rubrik
startpage_ecols='$1' 鋜 inte ett giltigt antal kolumner
startpage_gotoone=G direkt till modul<br>om anv鋘daren endast har en?
startpage_deftab=Standardkategori

upgrade_title=Uppgradera Webmin
upgrade_desc=I detta formul鋜 kan du uppgradera hela Webmin-installationen till en ny version. Du kan uppgradera fr錸 en lokal fil, nedladdad fil eller den senaste versionen p <a href=http://www.webmin.com/>www.webmin.com</a>. Precis som vid manuell uppgradering kommer alla inst鋖lningar och tredjepartsmoduler att vara of鰎鋘drade.
upgrade_descrpm=I detta formul鋜 kan du uppgradera hela Webmin-installationen till en ny version genom att anv鋘da RPMs uppgraderingsfunktion. Installera fr錸 en lokal RPM-fil, en nedladdad fil eller fr錸 den senaste versionen p <a href=http://www.webmin.com/>www.webmin.com</a>. Precis som vid manuell uppgradering kommer alla inst鋖lningar och tredjepartsmoduler att finnas kvar.
upgrade_desccaldera=I detta formul鋜 kan du uppgradera hela Webmin-installationen till en ny version genom att anv鋘da RPMs uppgraderingsfunktion. Installera fr錸 en lokal RPM-fil, en nedladdad fil eller fr錸 den senaste verisonen fr錸 Caldera.
upgrade_descsolaris-pkg=I detta formul鋜 kan du uppgradera hela Webmin-installationen till en ny version genom att ta bort det gamla Solaris-paketet och installera ett nytt. Installera fr錸 en lokal Solaris-paketfil, en nedladdad fil eller fr錸 den senaste versionen p <a href=http://www.webmin.com/>www.webmin.com</a>. Precis som vid manuell uppgradering kommer alla inst鋖lningar och trejdepartsmoduler att finnas kvar.
upgrade_local=Fr錸 lokal fil
upgrade_uploaded=Fr錸 nedladdad fil
upgrade_ftp=Senaste versionen p www.webmin.com
upgrade_cup=Senaste versionen fr錸 Calderas <tt>cupdate</tt>-verktyg
upgrade_ok=Upgpradera Webmin
upgrade_err1=Det gick inte att uppgradera fr錸 $1
upgrade_err2=Det gick inte att uppgradera fr錸 nedladdad fil
upgrade_err3=Det gick inte att uppgradera fr錸 www.webmin.com
upgrade_efile=Filen finns inte
upgrade_ebrowser=Din browser st鰀jer inte nedladdning av filer
upgrade_eversion=Det g錼 inte att nedgradera till version $1
upgrade_erpm=Det 鋜 inte en giltig Webmin-RPM-fil
upgrade_egunzip=Systemet saknar kommandot <tt>gunzip</tt>
upgrade_etar=Det 鋜 inte en giltig Webmin-tar-fil
upgrade_emod=Filen 鋜 en Webmin-modul, inte en hel Webmin-uppgradering. Du vill f鰎modligen anv鋘da sidan <a href='$1'>Webmin-moduler</a> ist鋖let f鰎 att installera den.
upgrade_setup=K鰎 setup.sh-script f鰎 att uppgradera Webmin ... V鋘ta en minut p att det ska bli f鋜digt innan du forts鋞ter.
upgrade_setuprpm=K鰎 RPM f鰎 att uppgradera Webmin ... V鋘ta en minut p att det ska bli f鋜digt innan du forts鋞ter.
upgrade_setuppackage=K鰎 pkgadd f鰎 att uppgradera Webmin ... V鋘ta en minut p att det ska bli f鋜digt innan du forts鋞ter.
upgrade_esolaris=Webmins uppgradering fungerar inte nu n鋜 du har installerat systemet fr錸 ett Solaris-paket. Uppgradera manuellt ist鋖let.
upgrade_ecaldera=RPM-filen verkar inte vara en Caldera-version av Webmin.

ca_title=Signerande part
ca_old=Befintligt certifikat
ca_header1=Skapa ett nytt signerat certifikat
ca_header2=膎dra signerat certifikat
ca_newmsg1=Din Webmin-server har redan satts upp som en signerande part. Detta formul鋜 kan anv鋘das f鰎 att s鋞ta upp den p nytt, men certifikat som redan signerats kommer d att sluta fungera.
ca_newmsg2=I detta formul鋜 kan du s鋞ta upp din Webmin-server att vara signerande part (CA) s att anv鋘dare under Webmin-anv鋘dare kan beg鋜a certifikat f鰎 att identifiera sig f鰎 servern utan att beh鰒a logga in.
ca_cn=Namn p signerande part
ca_email=E-postadress
ca_ou=Avdelning
ca_o=Organisation
ca_sp=Land
ca_c=Landskod
ca_create=S鋞t upp signerande part
ca_oldmsg1=Det signerade certifikat som denna server anv鋘der visas nedan. Det g錼 att 鋘dra genom att klistra in ett certifikat fr錸 en annan signerare, men detta medf鰎 att certifikat som redan utf鋜dats inte l鋘gre kommer att fungera.
ca_oldmsg2=Om en signerande part redan satts upp p en annan Webmin-server kan du klistra in dess certifikat nedan ist鋖let f鰎 att s鋞ta upp en ny signerande part. Detta medf鰎 att anv鋘dare p den andra servern ocks kommer att kunna identifieras av denna server.
ca_err=Det gick inte att s鋞ta upp signerande part
ca_setupok=Din signerande part har satts upp utan problem. Nu kan anv鋘dare g till Webmin-modulen f鰎 att beg鋜a certifikat f鰎 sig.
ca_stop=St鋘g av signerande part
ca_stopmsg=Tryck p denna knapp f鰎 att st鋘ga av Webmins funktioner att godk鋘na befintliga certifikat och utf鋜da nya. Detta medf鰎 att anv鋘darna ist鋖let m錽te autentiseras med anv鋘darnamn och l鰏enord.
ca_stopok=Din signerande part har st鋘gts av utan problem.
ca_eminiserv=SSL-klientcertifikat st鰀s endast under miniserv.
ca_eversion=Version av den Perl Net::SSLeay-modul som finns p detta system st鰀jer inte SSL-klientcertifikat.
ca_essleay=Kommandot $1 f鰎 att administrera SSL finns inte i systemet. Du kan beh鰒a 鋘dra s鰇v鋑en i inst鋖lningarna f鰎 Webmin-anv鋘darmodulen.
ca_essl=SSL-certifiering kan endast s鋞tas upp d webservern k鰎s i SSL-mod.

session_title=Autentisering
session_desc1=N鋜 detta 鋜 aktiverat kommer Webmin-servern att skyddas av tidsgr鋘ser f鰎 l鰏enorden mot en l鰏enords-crackerattack genom att det f鰎 varje misslyckat inloggningsf鰎s鰇 dr鰆er l鋘gre tid innan samma anv鋘dare f錼 f鰎s鰇a logga in igen.
session_desc2=N鋜 sessionsautentiseringen 鋜 aktiverad kommer varje inloggad anv鋘dares session att sp錼as av Webmin. Detta g鰎 att inaktiva anv鋘dare automatiskt kan loggas ut. Observera att n鋜 man aktiverar eller deaktiverar sessionsautentisering kommer alla anv鋘dare oftast tvingas att logga in igen.
session_header=Autentiserings- och sessionsinst鋖lningar
session_pdisable=Sl av tidsgr鋘ser f鰎 l鰏enord
session_penable=Sl p tidsgr鋘ser f鰎 l鰏enord
session_blockhost=Sp鋜ra datorer med fler 鋘 $1 misslyckade inloggningsf鰎s鰇 i $2 sekunder.
session_syslog=Logga sp鋜rade datorer till <tt>syslog</tt>
session_disable=Deaktivera sessionsautentiseringen
session_enable=Aktivera sessionsautentiseringen
session_localoff=Kr鋠 alltid anv鋘darnamn och l鰏enord
session_localon=Till錿 inloggning utan l鰏enord men med matchning av anv鋘dare fr錸 den lokala datorn.
session_logout=Logga ut automatiskt efter $1 minuter utan aktivitet
session_locking=Aktivera l錽ning i Webmin
session_err=Det gick inte att spara autentiseringen
session_elogouttime=Utloggningstid saknas eller 鋜 ogiltig
session_eblockhost_time=Sp鋜rtid saknas eller 鋜 ogiltig
session_eblockhost_failures=Antal inloggningar f鰎 sp鋜r saknas eller 鋜 ogiltigt
session_ecookie=Din webbl鋝are st鰀jer inte kakor, men det beh鰒s f鰎 sessionsautentisering.
session_elsof=Lokal autentisering kr鋠er programmet <tt>lsof</tt>

assignment_title=Kategorisera moduler
assignment_header=Ange en kategori f鰎 varje modul

categories_title=膎dra kategorier
categories_header=Kategori-ID och beskrivningar
categories_new=Ny kategori
categories_add=L鋑g till

log_access=膎drade IP-錿komstkontroll
log_bind=膎drade port och adress
log_log=膎drade loggningsinst鋖lningarna
log_proxy=膎drade proxy-servrar
log_ui=膎drade inst鋖lningarna f鰎 anv鋘dargr鋘ssnitt
log_install=Installerade modul $1
log_tinstall=Installerade tema $1
log_clone=Klonade modul $1 till $2
log_delete=Tog bort modul $1
log_os=Bytte operativsystem
log_lang=Bytte globalt spr錵
log_startpage=膎drade inst鋖lningarna f鰎 indexsidan
log_upgrade=Upgraderade Webmin till version $1
log_session=膎drade autentiseringsinst鋖lningarna
log_ssl=膎drade SSL-krypteringsmod
log_setupca=Satte upp certifikatsignerare
log_changeca=膎drade certifikatsignerare
log_stopca=St鋘gde certifikatsignerare
log_assignment=膎drade modulkategorier
log_categories=膎drade kategorinamn
log_theme=膎drade tema till $1
log_theme_def=膎drade tema till Webmin-standard
log_referers=膎drade p錶itliga l鋘kar

themes_title=Webmin-teman
themes_desc=Ett tema styr hur Webmins anv鋘dargr鋘ssnitt ser ut, inklusive ikoner, f鋜ger, bakgrunder och m鰆ligen ocks layoutsidorna. I rutan nedan kan du v鋖ja ett av de teman som finns p ditt system.
themes_sel=Nuvarande tema:
themes_default=Webmins standardtema
themes_change=膎dra
themes_installdesc=Anv鋘d formul鋜et nedan f鰎 att installera ett nytt Webmin-tema p systemet. Teman distribueras vanligtvis i <tt>.wbt</tt>-filer, men kan ocks installeras fr錸 RPM-filer om detta st鰀s av ditt operativsystem.
themes_installok=Installera tema

themes_err1=Det gick inte att installera temat fr錸 $1
themes_efile=Filen finns inte
themes_err2=Det gick inte att installera det nedladdade temat
themes_ebrowser=Din webbl鋝are st鰀er inte filnedladdningar
themes_err3=Det gick inte att installera temat fr錸 $1
themes_eurl=URL:en var inte giltig
themes_etar=Det var inte en giltig temafil: $1
themes_einfo=Tema $1 saknar en theme.info-fil
themes_enone=Filen verkar inte inneh錶la n錱ot tema
themes_eextract=Det gick inte att ta fram: $1
themes_done=F鰈jande teman har installerats p systemet:
themes_line=$1 i $2 ($3 kB)
themes_ecomp=Filen 鋜 komprimerad, men kommandot $1 finns inte i systemet
themes_ecomp2=Det gick inte att packa upp filen: $1
themes_egzip=Filen 鋜 gzippad, men kommandot $1 finns inte i systemet
themes_egzip2=Det gick inte att gunzippa filen: $1
themes_erpm=Det 鋜 inte en Webmin-tema-RPM
themes_eirpm=Det gick inte att installera denna RPM: $1
themes_ok=Temat har 鋘drats ... du skickas nu till Webmins indexsida.

referers_title=P錶itliga webbsidor
referers_desc=P denna sida kan du st鋖la in Webmins st鰀 f鰎 webbsidekontroll, som anv鋘ds f鰎 att hindra att ondsinta l鋘kar fr錸 andra sajter lurar din webbl鋝are att g鰎a farliga saker med Webmin. Om du har l鋘kar till Webmin fr錸 dina egna sidor och inte vill bli varnad n鋜 du anv鋘der dessa, m錽te du skriva in dem i listan nedan.
referers_list=P錶itliga sajter
referers_none=Lita p l鋘kar fr錸 ok鋘da sidor
referers_referer=Ska webbsidekontrollen vara p錽lagen?

syslet_title=Syslet automatnedladdning
syslet_desc=P denna sida g鰎s inst鋖lningar f鰎 automatisk nedladdning och installation av Eazel Syslets som fattas till Webmin-servern.
syslet_auto=Ladda ned syslets automatiskt?
syslet_base=Standard-URL:er f鰎 syslet-RPM:er
syslet_err=Det gick inte att spara syslet-inst鋖lningarna
syslet_ebase=Standard-URL:en 鋜 ogiltig
  0707010001726b000081a40000000000000002000000013ac03893000034de000000200000000000000000000000000000001500000003reloc/webmin/lang/tr  index_title=Webmin Yap齦and齬mas
index_return=webmin yap齦and齬mas

access_title=IP Giri Kontrol
access_desc=Webmin Sunucusu bu formu kullanarak sadece belirtilen IP adreslerinden girilmesini sa餷ayabilir. Buraya bilgiler makine isimleri (gelecek.com.tr gibi) veya IP numaras/Alt a maskesi (212.45.76.93/255.255.255.0 gibi) 㧐klinde girilmi olmal齞齬.E餰r internetten ba餷anmak isterseniz g黺enli olmas a琮s齨dan sadece belirli IP'lerden girilmesini sa餷ayabilirsiniz. Aksi takdirde ba⺧a birisi sizin 㱮frenizi 鲳rendi餴nde sisteminizin kontrol黱 ele ge鏸recektir. 
access_header=Giri Kontol
access_all=B黷黱 adreslerden kabul et
access_allow=Sadece listedeki adreslerden kabul et
access_deny=Listedeki adresleri kabul etme
access_err=Giri listesinin g黱cellenmesinde hata olu⺶u
access_enone=Adresler girilmedi
access_enet='$1' ge鏴rli bir a adresi de餴l
access_emask='$1' ge鏴rli bir a maskesi de餴l
access_eip='$1' tamamlanm bir a ya da IP adresi de餴l
access_ehost='$1' i鏸n IP adresi aranmas齨da hata olu⺶u
access_eself=Mevcut IP adresinizden ($1) girieri engellemek istermisiniz?

bind_title=Port ve Adres
bind_desc=E餰r Webmin'in makinesi 鏾klu IP adreslerinde 鏰l齳orsa, sunucunun bu form ile sadece bir IP adresinden dinlenilmesi sa餷anabilir.  E餰r birden fazla ethernet kart齨a sahipseniz bu se鏸mi yap齨.
bind_header=IP Adresi ve Port
bind_ip=IP Adresinde Dinle
bind_all=Hepsi
bind_port=Portu dinle
bind_err=Adresin de餴⺶irilmesinde hata olu⺶u
bind_eip='$1' i鏸n IP adresinin al齨mas齨da hata olu⺶u
bind_eassign='$1' adresi bu sisteme atanamaz.
bind_eport=Port $1 her zaman kullan齧da.

log_title=Kay齮
log_desc=Webmin, Web sunucusu kay齮lar齨齨 standart Apache kay齮 dosyas 㧐klinde yazmas i鏸n yap齦and齬齦mt齬. Kay齮 'A琮k' oldu饀nda, IP adresi ve makine adlar齨齨 kaydedilip kaydedilmeyece餴ni ve kay齮 dosyas齨齨 hangi s齥l齥la silinece餴ni se鏴bilirsiniz. 
log_desc2=Kay齮 tutma aktif hale getirildi餴nde, Webmin kullan齝 iemleri hakk齨da daha detayl bilgi tutacakt齬. Bu log Webmin 蔺lem Kayd mod黮黱de g鰎黱t黮enebilir ve analiz edilebilir.
log_header=Web Sunucusu Kay齮lar
log_disable=Kayd Kapa
log_enable=Kayd A
log_resolv=輘mi 琏z黰lenen makineleri kaydet
log_clear=Kay齮 dosyas齨 her $1 saatte bir temizle
log_uall=B黷黱 kullan齝齦ar i鏸n kay齮 iemleri
log_users=Bu kullan齝齦ar i鏸n kay齮lar ..
log_mall=B黷 mod黮lerdeki kay齮 iemleri
log_modules=Bu mod黮 i鏸n kay齮lar
log_files=Her iemde dosyalarda kay齮 de餴㱮klikleri yap齦s齨
log_err=Kay齮 se鏴neklerinin kaydedilmesinde hata olu⺶u
log_ehours='$1' ge鏴rli bir saat say齭 de餴ldir
log_ediff=Sisteminiz kay齮 dosyas de餴㱮klikleri i鏸n kullan齦acak olan $1 komutunu i鏴rmiyor.


proxy_title=Proxy Sunucular
proxy_desc=Webmin bir t黵 g黺enlik duvar arkas齨da 鏰l齳orsa, proxy sunucunuzu web ve ftp sitelerine girier i鏸n yap齦and齬man齴 gerekmektedir. 
proxy_header=Proxy Sunucular
proxy_http=HTTP proxy
proxy_ftp=FTP proxy
proxy_none=Hi鏱iri
proxy_nofor=Bu adres i鏸n proxy kullanma: 
proxy_err=Proxy'lerin kaydedilmesinde hata olu⺶u
proxy_ehttp=HTTP proxy sunucusu bir URL olarak girilmelidir
proxy_eftp=FTP proxy sunucusu bir URL olarak girilmelidir

ui_title=Kullan齝 Aray鼁
ui_desc=Bu form b黷黱 mod黮ler i鏸n kullan齝 aray鼁lerini de餴⺶irmek i鏸n kullan齦齬. Renkleri girdi餴nizde standart RGB renk sistemi olarak girmelisiniz. Girilen de餰rler 00 ve FF aras hex (onalt齦) de餰rleri olmal齞齬.
ui_header=Kullan齝 Aray鼁 Se鏴nekleri
ui_default=謓tan齧l
cs_page=Sayfa arkas rengi
cs_text=Normal yaz
cs_table=Tablo arka fonu
cs_header=Tablo ba
cs_link=Yaz sat齬
ui_texttitles=Ba齥lar yaz olarak g鰎黱t黮ensin mi?
ui_err=Renklerin kaydedilmeinde hata olu⺶u
ui_ered='$1' i鏸n yanl k齬m齴 de餰ri
ui_egreen='$1' i鏸n yanl ye㱮l de餰ri
ui_eblue='$1' i鏸n yanl mavi de餰ri

mods_title=Webmin Mod黮leri
mods_desc1=Webmin mod黮leri kurulumdan sisteme eklenmierdir. Mod黮ler tipik olarak <tt>.wb</tt> dosyas 㧐klindedir.
mods_install=Mod黮 Kur
mods_local=Yerel dosyadan
mods_uploaded=Y黭lenilen dosyadan
mods_ftp=Ftp ya da http adresinden 
mods_installok=Dosyadan Mod黮 Kur
mods_desc2=E餰r bir mod黮黱 farkl yap齦and齬malar sahip birden 鏾k kopyas齨a sahipseniz, form mevcut mod黮黱 kopyas齨 琮karman齴a izin verir.
mods_clone=Mod黮 Kopyala
mods_cname=Kopya mod黮
mods_cnew=Kopyalanm mod黮 isimi
mods_cloneok=Mod黮 Kopyala
mods_desc3=Varolan mod黮ler ve kopya mod黮ler takip eden form sayesinde silinebilir. Bir mod黮 silindi餴nde tekrar kullan齦madan 鰊ce yeniden kurulmal齞齬. Bir mod黮 di餰r mod黮ler ona ba餷齳sa silinemez.
mods_delete=Mod黮leri Sil
mods_deleteok=Se鏸len Mod黮leri Sil

install_err1=$1'den mod黮 kurulmas齨da hata olu⺶u
install_efile=Dosya mevcut de餴l
install_err2=Y黭lenen dosyadan kurulumda hata olu⺶u
install_ebrowser=Taray齝齨齴 dosya y黭lemelerini desteklemiyor
install_err3=$1'den mod黮 kurulmas齨d hata olu⺶u
install_eurl=Yanl URL adresi
install_etar=Ge鏴rli bir mod黮 dosyas de餴ldir : $1
install_einfo=$1 mod黮 kay齪t齬.bilgi dosyas
install_enone=Dosya herhangi bir mod黮 i鏴rmemektedir
install_eos=$1 mod黮 bu ietim sistemini desteklememektedir ($2 $3)
install_ever=$1 mod黮 Webmin'in $2 veya daha 黶t s黵黰lerine ihtiya duymaktad齬
install_edep=$1 mod黮 $2 mod黮黱e ihtiya duymaktad齬
install_eextract=A琮l齧da hata olu⺶u : $1
install_title=Mod黮 Kur
install_desc=Takip eden mod黮ler bar齳la kuruldu ve giri kontrol
listesine yerle⺶irildi :
install_line=$1, $2'de ($3 Kb)
install_ecomp=Dosya s齥m, fakat $1 komutu sisteminizde bulunmuyor.
install_ecomp2=Dosyan齨 a琮lmas齨da hata olu⺶u: $1
install_egzip=Dosya gzip'lenmi, fakat sisteminizde $1 komutu bulunmuyor.
install_egzip2=Dosyan齨 a琮lmas齨da hata olu⺶u: $1

clone_err=Mod黮黱 kopyalanmas齨da hata olu⺶u
clone_elink=Sembolik linkte hata olu⺶u : $1
clone_ecopy=Kopyalama yap齦and齬齦mas齨da hata olu⺶u : $1
clone_desc=$1'in kopyas

delete_err=Mod黮lerin silinmesinde hata olu⺶u
delete_edep=$1 mod黮 silinemiyor.屈nk $2 mod黮 ona ihtiya duymaktad齬.
delete_desc1=$1 ($2'nin kopyas)
delete_desc2=$1, $2'de ($3 Kb)
delete_title=Mod黮leri Sil
delete_msg=Takip eden mod黮ler Webmin'inizden bar齳la silinmi⺶ir:

os_title=蔺letim Sistemi
os_desc=E餰r makinenizin ietim sistemini yeni bir s黵黰黱e g黱cellediyseniz bu mod黮 sayesinde, Webmin'in kulland ayarlar de餴⺶irmesi i鏸n a瘕daki listeden kullan齦an ietim sistemini de餴⺶irebilirsiniz.
os_desc2=Webmin'in 鏰lt齬d programlar齨 yollar齨 ve paylalm k黷黳hane yollar齨 de餴⺶irebilirsiniz.
os_header=Makine 蔺letim Sistemi
os_curros=Mevcut ietim sistemi
os_currver=Mevcut ietim sistemi s黵黰
os_new=Yeni ietim sistemi s黵黰
os_path=Program arama yolu (PATH)
os_ld_path=K黷黳hane arama yolu (lib)

lang_title=Dil
lang_title2=Webmin Dili
lang_lang=G鰎黱t黮eme dili
lang_intro=Bu sayfada Webmin'in ba齥lar, komutlar ve mesajlar i鏸n kulland dili se鏴bilirsiniz.
lang_ok=Dili Se鏸niz

ssl_title=SSL 辤frelemesi
ssl_desc1=Webmin'in 鏰lmas i鏸n SSLeay Perl mod黮黱黱 kurulu olmas gerekmektedir.Bunu kulland齨齴da Webmin SSL tabanl taray齝 ve bilgisayar aras齨daki ileti㱮mi kurmaktad齬.E餰r Webmin sunucunuza internetten ulacaksan齴 kesinlikle Webmin 㱮frenizi ataklara kar korumak i鏸n SSL kullanmal齭齨齴.
ssl_desc2=Uyar! SSL deste餴ni sadece taray齝齨齴 destekliyorsa ve taray齝齨齴la Webmin makineniz aras齨da firewall korumas yoksa aktif hale getiriniz.
ssl_header=SSL Support
ssl_enable=Enable SSL support, if available
ssl_disable=Disable SSL support, even if available

startpage_title=Indeks Sayfas Se鏴nekleri
startpage_intro=Bu sayfa ile indeks sayfas齨daki kolon bana ka tane simge istedi餴nizi belirleyebilirsiniz.
startpage_tabs=Mod黮ler s齨齠land齬齦s齨 m?
startpage_nocol=Kolon say齭
startpage_alt=Alternatif ba齥lar kullan齦s齨 m? 
startpage_ecols='$1' ge鏴rli kolon say齭 de餴ldir
startpage_gotoone=E餰r kullan齝 sadece bir tane mod黮e sahipse, do餽udan mod黮e gidilsin mi ?

upgrade_title=Webmin G黱celle⺶ir
upgrade_desc=Bu sayfa varolan Webmin'i daha yeni bir s黵黰黱e g黱cellemek i鏸n kullan齦齬.Yerel dosyadan, y黭lenen dosyadan veya <a href="www.webmin.com">www.webmin.com</a> adresinden en son s黵黰黱 kurabilirsiniz. E餰r elle yapacaksan齴 b黷黱 yap齦and齬ma ayarlar ve 黱c parti mod黮ler saklanacakt齬.
upgrade_descrpm=
upgrade_local=Yerel dosyadan
upgrade_uploaded=Y黭lenilen dosyadan
upgrade_ftp=En son s黵黰黱 www.webmin.com'dan
upgrade_ok=Webmin'i g黱celle⺶ir
upgrade_err1=$1'den g黱cellemede hata olu⺶u.
upgrade_err2=Y黭lenilen dosyadan g黱cellemede hata olu⺶u.
upgrade_err3=www.webmin.com'dan g黱cellemede hata olu⺶u.
upgrade_efile=Dosya mevcut de餴l
upgrade_ebrowser=Taray齝齨齴 dosya y黭lemeyi destelemiyor
upgrade_eversion=$1 s黵黰黱 indiremezsiniz
upgrade_erpm=Ge鏴rli bir webmin RPM dosyas de餴ldir
upgrade_egunzip=Sisteminiz <tt>gunzip</tt> komutunu i鏴rmiyor
upgrade_etar=Ge鏴rli bir webmin tar dosyas de餴ldir
upgrade_setup=Webmin'in g黱cellenmesi i鏸n install.sh programc 鏰lt齬齦齳or. Webmin'in g黱cellenmesii鏸n bir s黵e beklemelisiniz.
upgrade_setuprpm=RPM, Webmin'i g黱celliyor...Devam etemeden 鰊ce birka dakika iemin bitmesini bekleyiniz
upgrade_setuppackage=pkgadd, Webmin'i g黱celliyor...Devam etemeden 鰊ce birka dak iemin bitmesini bekleyiniz
upgrade_esolaris=Webmin'in g黱celleme 鰖elli餴 bir Solaris paketinden yap齦amaz. L黷fen Webmin'i elle g黱celleyiniz

ca_title=Sertifika Onaylama
ca_old=Mevcut Sertifika 
ca_header1=Yeni bir CA sertifikas olu⺶ur
ca_header2=CA sertifikas齨 de餴⺶ir
ca_newmsg1=Webmin sertifika onaylamas齨a her zaman sahiptir.Bu formu kullanarak tekrar kurabilirsiniz, ama baz sertifikalar kullan齧 i鏸n yay齨land i鏸n 鏰lmayabilirler.
ca_newmsg2=Bu form Webmin sunucusuna bir sertifika onaylama(CA) kurmak i鏸n haz齬lanmt齬.B鰕lece Webmin kullan齝齦ar sunucuya giri yapmadan kendilerini tan齮abilirler.
ca_cn=Onay 輘mi
ca_email=E-posta Adresi
ca_ou=B鰈黰
ca_o=Organizasyon
ca_sp=Eyalet
ca_c=B鰈ge kodu
ca_create=Sertifika onaylamay kur
ca_oldmsg1=Bu sunucudaki CA sertifikas a瘕da g鰏terildi餴 gibi kullan齦maktad齬.Bu sertifikay ba⺧a biriyle de餴⺶irebiliriniz, ama sertifikalardan baz齦ar kullan齝齦ara her zaman yay齨land齨dan iyi 鏰lmayabilir. 
ca_oldmsg2=Ba⺧a bir Webmin sunucusunda bir CA her zaman kurulu ise oradaki sertifikay a瘕dakinin yerine onu yeni bir tane olarak yapt齬abilirsiniz.Bu di餰r sunucudaki kullan齝齦ar齨 bu sunucu ile iyi bir 㧐kilde 鏰lmas齨 sa餷ar.
ca_err=Sertifika onaylamas齨齨 kaydedilmesinde hata olu⺶u
ca_setupok=Sertifika onaylaman齴 bar ile kuruldu.Kullan齝齦ar 'Webmin Kullan齝齦ar' mod黮黱 kullanarak sertifikalar齨 alabilirler
ca_stop=Sertifika onaylamas kapat齦d
ca_stopmsg=Bu butonu t齥layarak mevcut sertifikalar onaylamak ya da yeni birini da瘕tmak i鏸n Webmin'i durdurabilirsiniz.
ca_stopok=Sertifika onaylaman齴 bar齦a kapat齦d
ca_eminiserv=SSL istemci sertifikalar sadece miniserv alt齨da desteklenmektedir
ca_eversion=Sisteminizde kurulu olan Perl Net::SSLeay mod黮黱黱 bu s黵黰 SSL istemci sertifikalar齨 desteklememektedir.
ca_essleay=SSL y鰊etim komutu $1 sisteminizde bulunmamaktad齬.'Webmin Kullan齝齦ar' mod黮 yap齦and齬mas齨 de餴⺶irmeniz gerekmektedir
ca_essl=SSL sertifikasyonu sadece SSL modunda 鏰lan web sunucusu oldu饀 zaman kurulabilir.

session_title=Onaylama
session_desc1=Aktif hale getirildi餴nde, Webmin, ayn kullan齝齨齨 her bar齭齴 giri denemelerinde 㱮fre k齬ma ataklar齨a kar korunacakt齬.
session_desc2=Oturum onaylamas aktif oldu饀nda, kullan齝 girieri Webmin taraf齨dan izlenecek, bir gecikme oldu饀 anlald zaman ise sistemden 琮kar齦acakt齬. Oturum onaylamas齨 a鏰r veya kapat齬san齴 sistemdeki b黷黱 kullan齝齦ar tekrar sisteme giri yapmak zorunda kalacakt齬.
session_header=Onaylama ve oturum se鏴nekleri
session_pdisable=辤fre gecikme s黵eleri kapal
session_penable=辤fre gecikme s黵eleri aktif
session_blockhost=$2 saniyede $1'den 鏾k bar齭齴 giri⺶en sonra makinenin giri㱮ni engelle.
session_syslog=Engellenen makineleri <tt>syslog</tt>a kay齮 tut.
session_disable=Oturum onaylamas齨 kapat
session_enable=Oturum onaylamas齨 a
session_logout=輓aktif durumda $1 dakikadan sonra otomatik sistemden at.
session_locking=Webmin'de kilitleme a琮k
session_err=Oturum kilitlenmesinin kaydedilmesinde hata olu⺶u
session_elogouttime=Kay齪 ya da yanl gecikme s黵esi
session_eblockhost_time=Kay齪 ya da yanl engelleme s黵esi
session_eblockhost_failures=Kay齪 ya da yanl engelleme giri㱮

assignment_title=Mod黮leri S齨齠land齬
assignment_header=Mod黮 kategorileri s齨齠land齬mas

categories_title=Kategorileri De餴⺶ir
categories_header=Kategory ID ve A琮klama
categories_new=Yeni Kategori
categories_add=Ekle

log_access=IP Giri Kontrol de餴⺶irildi
log_bind=Port ve adres de餴⺶irildi
log_log=Kay齮 se鏴nekleri de餴⺶irildi
log_proxy=Proxy sunucular de餴⺶irildi
log_ui=Kullan齝 aray鼁 se鏴nekleri de餴⺶irildi
log_install=$1 mod黮 kuruldu
log_clone=$1 mod黮 $2'ye kopyaland
log_delete=$1 mod黮 silindi
log_os=蔺letim sistemi de餴⺶irildi
log_lang=Genel dil de餴⺶irildi
log_startpage=indek sayfas se鏴nekleri de餴⺶irildi
log_upgrade=Webmin s黵黰 $1'e g黱cellendi
log_session=Onaylama se鏴nekleri de餴⺶irildi
log_ssl=SSL 㱮freleme modu de餴⺶irildi
log_setupca=Sertifika onaylamas齨 kur
log_changeca=Sertifika onaylamas de餴⺶irildi
log_stopca=Sertifika onaylamas de餴⺶irildi
log_assignment=Mod黮 kategorileri de餴⺶irildi
log_categories=Kategori isimleri de餴⺶irildi

  0707010001726c000081a40000000000000002000000013ac0389200002e0f000000200000000000000000000000000000001800000003reloc/webmin/lang/zh_CN   index_title=Webmin 配置
index_return=webmin 配置

access_title=IP访问控制
access_desc=通过下表, 您可以设置某些IP地址允许或禁止访问Webmin服务器. 您可以输入主机名 (例如 foo.bar.com) 或 IP 地址 (例如 10.254.3.0 或 10.254.1.0/255.255.255.128). 你应该设置成只有可信任的地址才能访问你的服务器, 特别是当你的服务器可以从Internet访问时. 否则, 任何人只要猜到你的密码就可以完全控制你的系统.
access_header=访问控制
access_all=允许从所有地址访问
access_allow=只允许从列出的地址访问
access_deny=禁止从列出的地址访问
access_err=更新访问列表失败
access_enone=没有输入地址
access_enet='$1' 不是一个合法的网络地址
access_emask='$1' 不是一个合法的网络地址掩码
access_eip='$1' 不是一个完整的IP或网络地址
access_ehost=找不到 '$1'的IP
access_eself=你当前的IP地址 ($1) 将会被禁止

bind_title=端口与地址
bind_desc=如果Webmin所在的主机有多个IP地址, 这个表格可以配置Webmin服务器仅监听其中一个地址. Webmin监听的TCP端口同样可以配置. 注意 -- 修改端口或地址后, 你的浏览器会提示你重新登录.
bind_header=IP地址与端口
bind_ip=监听的IP地址
bind_all=所有
bind_port=监听的端口
bind_err=无法改变地址
bind_eip=找不到 '$1'的IP
bind_eassign=本系统没有'$1'这个地址
bind_eport=端口$1正被使用

log_title=日志
log_desc=通过配置Webmin,可将网页点击记录到一个标准CLF格式的日志文件中. 如果打开了日志功能, 你还可以选择:记录那些IP地址或主机名, 多长时间清除日志. 日志均会写到文件 $1 中.
log_desc2=当可以记录日志时,Webmin 将在文件$1 中更加详细地记下用户日志,以便于用Webmin的日志查阅模块来浏览和分析每一个用户的使用情况.
log_header=Web服务器日志
log_disable=不写日志
log_enable=写日志
log_resolv=记录解析到的主机名
log_clear=每 $1 小时清除日志
log_uall=所有用户都能使用的日志记录
log_users=某些用户特有的日志记录 
log_mall=所有模块的日志记录
log_modules=某模块特有的日志记录
log_files=每次日志的修改时所产生的文件
log_err=无法保存日志选项
log_ehours='$1' 不是一个有效的小时数
log_ediff=您的系统中没有改变日志文件所需的命令 $1

proxy_title=代理服务器
proxy_desc=如果Webmin所在的主机运行在防火墙后, 你可能需要设置代理服务器来访问web和FTP站点. 某些模块, 例如<tt>软件包(Software Packages)</tt>, 需要通过这些代理来下载文件或程序.
proxy_header=代理服务器
proxy_http=HTTP代理
proxy_ftp=FTP代理
proxy_none=无
proxy_nofor=以下地址不使用代理
proxy_err=无法保存代理
proxy_ehttp=HTTP代理必须以URL的形式输入
proxy_eftp=FTP代理必须以URL的形式输入

ui_title=用户界面
ui_desc=您可用下表来编辑各个模块所使用的用户界面.在您输入颜色值时,每个值都必须是标准的RGB 值,即每个值都必须是00-ff之间的十六进制数.
ui_header=用户界面选项
ui_default=缺省
cs_page=页背景
cs_text=正文
cs_table=表背景
cs_header=表头
cs_link=连接文本
ui_texttitles=以文本方式显示标题?
ui_sysinfo=显示登陆状态和客户名
ui_sysinfo0=在浏览器的底部
ui_sysinfo1=在浏览器的标题中
ui_sysinfo2=在页首
ui_err=存储颜色失败
ui_ered=$1的红颜色值无效
ui_egreen=$1的绿颜色值无效
ui_eblue=$1的蓝颜色值无效

mods_title=Webmin 模块
mods_desc1=Webmin 模块在用适当的方式安装后,才能被加入,这些模块通常被描述在<tt>.wbm</tt>中,这些文件中,每个文件均可包含一个或多个模块.如果有一个模块只允许在某个客户机运行,您也许不能安装它.
mods_install=安装模块
mods_local=本地文件
mods_uploaded=上载文件
mods_ftp=从 ftp 或 http URL
mods_installok=从文件安装模块
mods_desc2=如果您希望拥有不同配置下的同一模块的多份拷贝,下表允许您克隆任意一个已存在的模块,克隆结果将有一个新名、新的模块配置、新的访问控制选项,之外,此结果可能对不同的用户也有效.
mods_clone=克隆模块
mods_cname=要克隆的模块
mods_cnew=已克隆的模块
mods_cloneok=克隆模块
mods_desc3=选项使用下表可以删除已存在的模块和模块的克隆.如果一个拥有克隆值的模块被删除,它的克隆也将一起被删除.一旦一个模块被删除,如想再次使用,只有重新安装.注意:如果有其它模块依赖该模块,则该模块不能被删除.
mods_delete=删除模块
mods_deleteok=删除选择的模块

install_err1=从 $1 安装模块失败
install_efile=文件不存在
install_err2=安装上载文件失败
install_ebrowser=你的浏览器不支持上载文件
install_err3=从 $1 安装文件失败
install_eurl=非法 URL
install_etar=非法模块文件 : $1
install_einfo=模块 $1 缺少 module.info 文件
install_enone=文件不包含任何模块
install_eos=模块 $1 不支持该操作系统 ($2 $3)
install_ever=模块 $1 需要 Webmin version $2 或更高
install_edep=模块 $1 需要模块 $2
install_eextract=提取失败 : $1
install_title=安装模块
install_desc=以下模块已经成功安装并加入你的访问控制列表 :
install_line=$1 在 $2 ($3 kB)中
install_ecomp=文件被压缩,但在您的系统中未能找到命令$1
install_ecomp2=压缩文件失败:$1
install_egzip=文件被用gzip压缩,但在您的系统中未能找到命令$1
install_egzip2=gunzip压缩文件失败:$1
install_erpm=不是一个Webmin模块的RPM
install_eirpm=RPM安装失败: $1

clone_err=克隆模块失败
clone_elink=系统联接失败: $1
clone_ecopy=拷贝配置文件失败: $1
clone_desc=克隆 $1

delete_err=删除模块失败
delete_edep=无法删除模块 $1 , 因为模块 $2 依赖于它
delete_desc1=$1 ($2 的克隆)
delete_desc2=$1 在 $2 ($3 kB)中
delete_title=删除模块
delete_msg=下列模块已成功地从您的Webmin安装中删除:
delete_sure=您确信要删除已选择的模块? $1 KB的文件即将被删除.

os_title=操作系统
os_desc=通过下表,Webmin 将在您更新您的操作系统时,同步处理您的系统.这将在升级您的机器系统时非常有用.注意:即使在您安装的新旧系统之间有很大差异,安装模块的配置也将不会改变.
os_desc2=利用Webmin,您还可以改变运行程序的搜索路径和为所有程序定位共享库.
os_header=主机操作系统
os_curros=当前操作系统
os_currver=当前 OS 版本
os_new=新操作系统
os_path=程序的搜索路径
os_ld_path=库文件的搜索路径

lang_title=语言
lang_title2=Webmin 语言
lang_lang=语言显示
lang_intro=您可在该页中选择Webmin显示信息即将使用的语言.
lang_ok=改变语言

ssl_title=SSL 加密
ssl_desc1=运行Webmin的客户机均安装有 SSLeay Perl 模块,使用该模块,Webmin将在您的浏览器和服务器之间提供 SSL 加密通讯机制.如果您通过 Internet 访问您的 Webmin 服务器,您应该有意识地通过 SSL 来预防别人得到您的 Webmin 口令.
ssl_desc2=警告 - 如果您有一个浏览器支持SSL(例如Netscape或IE),且没有火墙堵塞,在您的浏览器和Webmin客户之间,只需打开SSL支持.
ssl_header=SSL 支持
ssl_enable=允许 SSL 支持
ssl_disable=禁止 SSL 支持

startpage_title=检索页选项
startpage_intro=您可以在此定义检索页中,每行您要显示的图标个数:
startpage_tabs=模块分类吗?
startpage_nocol=列数
startpage_alt=使用辅佐页首
startpage_ecols='$1'不是有效列数 
startpage_gotoone=是否只有一个用户<br>直接连到相应模块?
startpage_deftab=缺省部门

upgrade_title=升级 Webmin
upgrade_desc=通过下表您可以安装升级一个全新的 webmin 版本.您可以通过本地文件、一个上载文件或从<a href=http://www.webmin.com/>www.webmin.com</a>网站得到最新的版本来安装.正如升级手册中所言.您的所有配置和第三方模块均被保留.
upgrade_descrpm=通过下表您可以利用 RPM 选项来安装升级一个全新的 webmin 版本。您可以通过本地 RPM 文件、一个上载文件或从<a href=http://www.webmin.com/>www.webmin.com</a>网站得到最新的版>本来安装.正如升级手册中所言.您的所有配置和第三方模块均被保留.
upgrade_descsolaris-pkg=通过下表您可以在删除原有的solaris 软件包之后，重新安装升级一个全新的 webmin 版本.您可以通过本地 solaris 软件包文件、一个上载文件或从<a href=http://www.webmin.com/>www.webmin.com</a>网站得到最新的版>本来安装.正如升级手册中所言.您的所有配置和第三方模块均被保留.
upgrade_local=利用本地文件
upgrade_uploaded=利用上载文件
upgrade_ftp=从 www.webmin.com 网站得到最新版本
upgrade_ok=更新 Webmin
upgrade_err1=从 $1 更新失败
upgrade_err2=从上载文件更新失败
upgrade_err3=从 www.webmin.com 更新失败
upgrade_efile=文件不存在
upgrade_ebrowser=你的浏览器不支持文件上载
upgrade_eversion=无法更新到版本 $1
upgrade_erpm=不是有效的 webmin RPM 文件
upgrade_egunzip=你的系统没有 <tt>gunzip</tt> 命令
upgrade_etar= webmin tar 文件非法
upgrade_setup=正在运行 setup.sh 脚本程序升级 Webmin ... 请稍候,请在完成该操作之后,再继续其它操作.
upgrade_setuprpm=正在运行 RPM 包升级 Webmin ... 请稍候,请在完成该操作之>后,再继续其它操作.
upgrade_setuppackage=正在运行 pkgadd 升级 Webmin ... 请稍候,请在完成该操作之>后,再继续其它操作.
upgrade_esolaris=在您已从 Solaris 软件包安装 Webmin 之后,它的升级功能不能正常工作.请您采用手工安装.

ca_title=认证机制
ca_old=已存在的认证
ca_header1=产生新的 CA 认证
ca_header2=编辑 CA 认证
ca_newmsg1=您的 Webmin 服务器已被安装成为一个认证机制.您可以用这种方式再次创建它,但是所有以前对用户的认证均将无效.
ca_newmsg2=您可以利用下表将您的 Webmin 服务器建成一个认证机制(CA),这样用户不必注册,便可确认自己是否为 Webmin 用户.
ca_cn=机制名称
ca_email=Email 地址
ca_ou=部门
ca_o=单位
ca_sp=州/省
ca_c=国家代码
ca_create=建立认证机制
ca_oldmsg1=下表列出该服务器正在采用的 CA 认证,您可以粘贴其它 CA 认证来取代它,但是以前所有的对用户所作的认证均将无效.
ca_oldmsg2=如果您已经在另外的 Webmin 服务器上建立一个了一个 CA 认证,您可以将它的CA 认证粘贴到下表,不必重建一个新的CA.这样,被那个服务器认证过的用户,该服务器也将认可.
ca_err=创建认证机制失败
ca_setupok=您的认证机制已成功建立.现在,用户可以通过 Webmin Users 模块来进行认证.
ca_stop=关闭认证机制Shutdown certificate authority
ca_stopmsg=点击此按钮来使 Webmin 中断接受正在进行的认证或者停止确认新成员.这样,用户只有采用用户名和用户口令认证方式.
ca_stopok=已成功关闭您的认证机制.
ca_eminiserv=SSL 客户认证仅仅被微服务器支持.
ca_eversion=Perl Net 的版本::您机器上安装的 SSLeay 模块不支持 SSL 客户认证.
ca_essleay=在您的系统中没有发现 SSL 管理命令 $1.您需要改变 Webmin Users 模块配置中的路径.
ca_essl=SSL 只有在 Web 服务器运行在 SSL 模式下时,才能被建立.

session_title=认证
session_desc1=当被激活时,口令超时设置可以保护您的 Webmin 服务器免遭粗暴的连续攻击,以及防止同一用户在连续登陆失败之后过多的时间延迟.
session_desc2=在会话认证激活时,每一个用户的会话日志,都将被跟踪,这样,就可以将已经呆死的用户关闭.注意:每次激活或屏蔽会话认证,都有可能要求所有用户重新登陆.
session_header=认证和会话的选择
session_pdisable=屏蔽口令超时中断
session_penable=激活口令超时中断
session_blockhost= $2 秒内登陆失败 $1 次堵塞客户.
session_syslog=在 <tt>syslog</tt> 中记录被堵塞的客户
session_disable=屏蔽会话认证
session_enable=激活会话认证
session_localoff=总是要求输入用户名和口令
session_localon=允许口令与本地客户机用户不匹配的情况下等陆
session_logout=在呆死 $1 分钟后自动退出
session_locking=在 Webmin 中能够锁定
session_err=存储认证失败
session_elogouttime=丢失或无效的退出时间
session_eblockhost_time=丢失或无效的堵塞时间
session_eblockhost_failures=丢失或无效的堵塞登陆
session_ecookie=您的浏览器不支持 cookies,这需要会话认证.
session_elsof=本地认证需要<tt>lsof</tt>程序

assignment_title=重新分配模块
assignment_header=模块类别的重新分配

categories_title=类别编辑
categories_header=类别 ID 和描述
categories_new=新种类
categories_add=增加Add

log_access=改变的 IP 访问控制
log_bind=改变的端口和地址
log_log=改变的日志选项
log_proxy=改变的代理服务器
log_ui=改变的用户界面选项
log_install=已安装的模块 $1
log_tinstall=已安装的题目 $1
log_clone=克隆模块$1 到模块 $2
log_delete=已删除的模块 $1
log_os=已改变的操作系统
log_lang=被改变的国际语言
log_startpage=被改变的检索选项
log_upgrade=已升级 Webmin 到版本 $1
log_session=被改变的认证选项
log_ssl=被改变的 SSL 加密模式
log_setupca=建立认证机制
log_changeca=被改变的认证机制
log_stopca=关闭认证机制
log_assignment=被改变的模块种类
log_categories=被改变的种类名称

themes_title=Webmin 主题
themes_desc=主题控制 Webmin 用户界面的显示,包括:图标、颜色、背景和可能的页面数.下面的选择框可被用来选择一个安装在您系统上的主题.
themes_sel=当前主题
themes_default=缺省 Webmin 主题
themes_change=改变
themes_installdesc=利用下表在您的系统上安装一个新的 Webmin 主题.主题通常被放在 <tt>.wbt</tt> 中.此外,如果您的系统支持 RPM,您也可以利用 RPM 文件安装.
themes_installok=安装主题

themes_err1=利用$1安装主题失败
themes_efile=文件不存在
themes_err2=安装上载主题失败
themes_ebrowser=您的浏览器不支持文件上载
themes_err3=利用$1安装主题失败
themes_eurl=无效的 URL 
themes_etar=不是一个有效的主题文件: $1
themes_einfo=主题 $1 将要丢失 theme.info 文件
themes_enone=文件好像不能包含任意主题
themes_eextract=提取失败:$1
themes_done=下列主题已成功地安装到您的系统中:
themes_line=$1 在 $2 ($3 kB)中
themes_ecomp=文件被压缩,但是在您的系统中未能找到命令$1
themes_ecomp2=解压缩文件 $1 失败
themes_egzip=文件被 gzip 压缩,但是在您的系统中未能找到命令$1 
themes_egzip2=用 gunzip 解压缩文件 $1 失败
themes_erpm=没有 Webmin 主题 RPM 包
themes_eirpm=RPM 安装失败:$1
 07070100017276000081a40000000000000002000000013ac0389200001d94000000200000000000000000000000000000001d00000003reloc/webmin/lang/zh_TW.Big5  index_title=Webmin 舱篈
index_return=Webmin 舱篈

access_title=IP 北
access_desc=Webmin 狝竟舱篈Θ┶荡┪钡Μㄓ疭﹚ IP 璶―. 诀嘿 (ㄒ foo.bar.com) 籔 IP 呼隔 (ㄒ 10.254.3.0 ┪ 10.254.1.0/255.255.255.128) 常砆块. 眤莱赣璶眤狝竟钡獺ヴㄓ方, 疭ㄏ诀竟琌竒パ呼悔呼隔薄猵. 玥杠, 璶ヴ瞦癸眤盞絏, 盢Τ眤╰参Ч俱北舦.
access_header=北
access_all=す砛眖场
access_allow=す砛眖
access_deny=┶荡
access_err=礚猭穝
access_enone=⊿Τ块
access_enet='$1' ぃ琌Τ呼隔
access_emask='$1' ぃ琌Τ呼隔綛竛
access_eip='$1' ぃ琌Ч俱 IP ┪呼隔
access_ehost=тぃ倒 '$1'  IP 
access_eself=眤ヘ玡 IP   ($1) 盢砆┶荡

bind_title=硄癟梆籔
bind_desc=狦磅︽ Webmin 诀Τ IP, 眤竒パ硂虫盢硂狝竟舱篈Θ菏钮. Webmin ┮ㄏノ硄癟梆硂ㄠ舱篈. 猔種: 眤呼聅凝竟穦眤跑硄癟梆┪菏钮竚矗ボ眤穝祅.
bind_header=IP 籔硄癟梆
bind_ip=菏钮 IP 
bind_all=场
bind_port=菏钮硄癟梆
bind_err=礚猭э跑
bind_eip=礚猭眔 IP 倒 '$1'
bind_eassign= '$1' ぃ琌﹚倒硂╰参
bind_eport=硄癟梆 $1 竒砆ㄏノ

log_title=魁
log_desc=Webmin 砆舱篈Θ糶夹非 CLF Α呼ㄏノ魁. 狦魁砆币笆, 眤匡拒璶魁ㄇ IP ┪诀嘿, の睲埃Ω魁郎. 讽币笆, 魁盢砆糶郎 $1.
log_header=呼狝竟魁
log_disable=闽超魁
log_enable=币笆魁
log_resolv=魁秆猂诀嘿
log_clear=– $1 睲埃魁
log_err=礚猭纗魁匡兜
log_ehours='$1' ぃ琌Τ计

proxy_title=瞶狝竟
proxy_desc=狦硂诀留旅ň鲤┪摸狥﹁ぇ, 眤惠璶砞﹚瞶狝竟呼┪ FTP 狝竟. 琘ㄇ家舱ㄒ<tt>硁砰甅ン</tt>, 盢穦ㄏノ瞶狝竟更郎┪祘Α.
proxy_header=瞶狝竟
proxy_http=HTTP 瞶狝竟
proxy_ftp=FTP 瞶狝竟
proxy_none=礚
proxy_nofor=⊿Τ瞶狝竟倒
proxy_err=礚猭纗瞶狝竟
proxy_ehttp=HTTP 瞶狝竟ゲ斗 URL Α块
proxy_eftp=FTP 瞶狝竟ゲ斗 URL Α块

ui_title=ㄏノざ
ui_desc=硂虫ヴ眤絪胯┮Τ家舱ㄏノざ匡兜. 讽块肅︹, 眤ゲ斗ㄏノ夹非 RGB ╰参, 碞琌絛瞅 00  ff せ秈计.
ui_header=ㄏノざ匡兜
ui_default=箇砞
cs_page=呼璉春
cs_text=ゅ
cs_table=璉春
cs_header=夹繷
cs_link=硈挡ゅ
ui_texttitles=琌盢夹肈陪ボΘゅ?
ui_err=礚猭纗肅︹
ui_ered=倒 '$1' ︹计岿粇
ui_egreen=倒 '$1' 厚︹计岿粇
ui_eblue=倒 '$1' 屡︹计岿粇

mods_title=Webmin 家舱
mods_desc1=Webmin 家舱杆祘Αノ娩虫糤. 家舱床硄盽琌ㄏノ <tt>.wbm</tt> ┑郎, –郎常穦珹ぶ┪家舱. 狦家舱甭舦倒疭﹚诀, 眤ぃ杆ウ.
mods_install=杆家舱
mods_local=眖セ狠郎
mods_uploaded=眖肚郎
mods_ftp=眖 FTP ┪ HTTP URL
mods_installok=眖郎杆家舱
mods_desc2=狦眤辨狡籹家舱ㄏノぃ舱篈, 眤ㄏノ娩虫狡籹ヴ竒杆家舱. 狡籹穝家舱盢Τ穝嘿, 穝家舱舱篈, 穝北秨倒ぃㄏノ.
mods_clone=狡籹家舱
mods_cname=璶狡籹家舱
mods_cnew=穝家舱嘿
mods_cloneok=狡籹家舱
mods_desc3=瞷家舱籔狡籹家舱ㄏノ虫埃. 狦眤埃砆狡籹家舱, 玥狡籹ㄓ家舱穦砆埃. , 砆ㄤ瞷家舱┮ㄌ苦家舱琌ぃ砆埃.
mods_delete=埃家舱
mods_deleteok=埃匡拒家舱

install_err1=礚猭眖 $1 杆家舱
install_efile=郎ぃ
install_err2=礚猭杆肚家舱
install_ebrowser=眤聅凝竟ぃや穿郎肚
install_err3=礚猭眖 $1 杆家舱
install_eurl=岿粇 URL
install_etar=ぃ琌Τ家舱郎: $1
install_einfo=家舱 $1 ぶ module.info 郎
install_enone=郎⊿Τヴ家舱
install_eos=家舱 $1 ぃや穿硂穨╰参 ($2 $3)
install_ever=家舱 $1 惠璶 Webmin セ $2 ┪
install_edep=家舱 $1 惠璶杆家舱 $2
install_eextract=甶秨ア毖: $1
install_title=杆家舱
install_desc=家舱竒Θ杆糤眤北い:
install_line=$1  $2 ($3 kB)

clone_err=礚猭狡籹家舱
clone_elink=才腹硈挡ア毖: $1
clone_ecopy=礚猭ī舱篈: $1
clone_desc=狡籹 $1

delete_err=礚猭埃家舱
delete_edep=家舱 $1 礚猭砆埃, 家舱ㄌ苦ウ
delete_desc1=$1 (狡籹 $2)
delete_desc2=$1  $2 ($3 kB)
delete_title=埃家舱
delete_msg=家舱竒Θ眤 Webmin 埃:

os_title=穨╰参
os_desc=硂虫す砛眤э跑 Webmin 盢眤╰参跌穨╰参. 讽眤ど眤穨╰参, 硂盢讽Τノ. 猔種: 竒杆家舱弄舱篈盢ぃ穦砆跑, 碞衡穝侣穨╰参いΤぃ.
os_desc2=眤э跑ヘ玡 Webmin ┮ㄏノ祘Α穓碝隔畖籔ㄧΑ畐隔畖.
os_header=诀穨╰参
os_curros=ヘ玡穨╰参
os_currver=ヘ玡穨╰参セ
os_new=穝穨╰参
os_path=祘Α穓碝隔畖
os_ld_path=ㄧΑ畐穓碝隔畖

lang_title=粂ē
lang_title2=Webmin 粂ē
lang_lang=陪ボ粂ē
lang_intro=硂呼琵眤匡拒 Webmin ┮陪ボ粂ē.
lang_ok=跑粂ē

ssl_title=SSL 絪絏
ssl_desc1=硂 Webmin ┮ㄏノ诀Τ杆 SSLeay Perl 家舱. ㄏノ硂杠, Webmin 盢や穿诀办め狠聅凝竟ぇ丁 SSL 絪絏硄癟. 狦眤硓筁呼悔呼隔眤 Webmin 诀, 眤莱赣璶ㄏノ SSL 絪絏ňゎㄤ叛钮眤盞絏.
ssl_desc2=牡: Τ眤聅凝竟や穿 SSL 絪絏 (ㄒ Netscape ┪ IE), τ⊿Τň鲤膁 HTTPS (硄癟梆 443) , 眤タ盽ㄏノ SSL や穿. 
ssl_header=SSL や穿
ssl_enable=狦︽杠, 币笆 SSL や穿
ssl_disable=碞衡, ぃ璶币笆 SSL や穿

startpage_title=ま匡兜
startpage_intro=硂呼琵眤﹚竡眤璶ま–逆陪ボぶ瓜ボ
startpage_tabs=琌だ摸竤舱?
startpage_nocol=逆计
startpage_alt=ㄏノ蠢传夹繷
startpage_ecols='$1' ぃ琌Τ逆计
startpage_gotoone=狦ㄏノΤ家舱ㄏノ, 琌钡铬赣家舱い?

upgrade_title=ど Webmin
upgrade_desc=硂虫琵眤どヘ玡甆 Webmin 穝セ. 眤どセ狠郎, 肚郎┪琌 <a href=http://www.webmin.com/>www.webmin.com</a> ┮矗ㄑセ. 碞も笆杆妓, 眤┮Τ舱篈籔┮杆家舱常穦砆玂痙.
upgrade_local=眖セ狠郎
upgrade_uploaded=眖肚郎
upgrade_ftp=眖 www.webmin.com 程穝セ
upgrade_ok=ど Webmin
upgrade_err1=礚猭眖 $1 ど
upgrade_err2=礚猭眖肚郎ど
upgrade_err3=礚猭眖 www.webmin.com ど
upgrade_efile=郎ぃ
upgrade_ebrowser=眤聅凝竟ぃや穿肚郎
upgrade_eversion=礚猭杆耕侣セ $1
upgrade_egunzip=眤╰参⊿Τ矗ㄑ <tt>gunzip</tt> 
upgrade_etar=ぃ琌Τ Webmin tar 郎
upgrade_setup=磅︽ setup.sh ㏑絑ど Webmin い... 叫祔ウЧΘ.

ca_title=粄靡甭舦
ca_old=瞷Τ粄靡
ca_header1=ミ穝 CA 粄靡
ca_header2=絪胯 CA 粄靡
ca_newmsg1=眤 Webmin 竒砞﹚Θ粄靡甭舦. 眤ㄏノ硂虫ㄓ穝砞﹚, ヴ竒祇粄靡常穦ア.
ca_newmsg2=硂虫莱赣盢眤 Webmin 狝竟砞﹚Θ粄靡甭舦 (CA), ㄏノ盢 Webmin ㄏノい璶―粄靡, ノ醚τぃ惠璶祅.
ca_cn=粄靡嘿
ca_email=筿秎ン
ca_ou=虫
ca_o=舱麓
ca_sp= ()
ca_c=瓣產絏
ca_create=砞﹚粄靡甭舦
ca_oldmsg1=ヘ玡狝竟┮ㄏノ CA 粄靡陪ボ. 眤竒パрㄤ CA 禟硂娩э跑ウ, 琌ヴぇ玡祇粄靡常盢ア.
ca_oldmsg2=狦眤竒 Webmin 砞﹚ CA, 眤盢ぇ狡籹筁ㄓτぃ惠璶穝砞﹚穝 CA. 硂盢ㄏㄤ狝竟ㄏノ砆硂狝竟粄眔.
ca_err=礚猭砞﹚粄靡甭舦
ca_setupok=眤粄靡甭舦竒Θ杆. ㄏノ瞷ㄏノ Webmin ㄏノ家舱璶―粄靡倒.
ca_stop=闽超粄靡甭舦
ca_stopmsg=硂秙氨ゎ Webmin 钡瞷Τ粄靡┪祇穝粄靡. 硂盢穦眏ㄏノ蹦ノ嘿籔盞絏粄靡よΑ.
ca_stopok=眤粄靡甭舦竒Θ闽超.
ca_eminiserv=SSL め狠粄靡や穿 Webmin ┮ miniserv .
ca_eversion=硂セ Perl Net::SSLeay 家舱竒杆眤╰参, ぃや穿 SSL め狠粄靡.
ca_essleay=眤╰参тぃ SSL 恨瞶 $1. 眤ゲ斗跑 Webmin ㄏノ家舱舱篈い隔畖砞﹚.
ca_essl=SSL 粄靡ㄏノ讽呼狝竟ㄏノ SSL .

07070100012f35000081a40000000000000002000000013ac03893000003da000000200000000000000000000000000000001b00000003reloc/webmin/log_parser.pl    # log_parser.pl
# Functions for parsing this module's logs

require './webmin-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p) = @_;
if ($action eq 'install') {
	return &text('log_install', "<i>$p->{'desc'}</i>");
	}
elsif ($action eq 'tinstall') {
	return &text('log_tinstall', "<i>$p->{'desc'}</i>");
	}
elsif ($action eq 'clone') {
	return &text('log_clone', "<i>$p->{'desc'}</i>",
				  "<i>$p->{'dstdesc'}</i>");
	}
elsif ($action eq 'delete') {
	return &text('log_delete', "<i>$p->{'desc'}</i>");
	}
elsif ($action eq 'upgrade') {
	return &text('log_upgrade', $p->{'version'});
	}
elsif ($action eq 'theme') {
	return $p->{'theme'} ? &text('log_theme', "<tt>$p->{'theme'}</tt>")
			     : $text{'log_theme_def'};
	}
elsif ($text{"log_$action"}) {
	return $text{"log_$action"};
	}
else {
	return undef;
	}
}

  07070100012f36000081a40000000000000002000000013ac038930000000a000000200000000000000000000000000000001600000003reloc/webmin/low.risk install=1
  07070100012f37000081a40000000000000002000000013ac0389300000029000000200000000000000000000000000000001700000003reloc/webmin/low.skill    allow=access proxy mods lang upgrade ssl
   07070100012f38000081a40000000000000002000000013ac038930000000a000000200000000000000000000000000000001900000003reloc/webmin/medium.risk  install=1
  07070100012f39000081a40000000000000002000000013ac0389300000047000000200000000000000000000000000000001a00000003reloc/webmin/medium.skill allow=access bind log ui startpage session proxy mods lang upgrade ssl
 07070100012f3a000081a40000000000000002000000013ac03892000001c7000000200000000000000000000000000000001900000003reloc/webmin/module.info  desc_zh_CN=Webmin 配置
name=Webmin
desc_pt=Configura玢o do Webmin
desc_tr=Webmin Yap齦and齬mas
desc_fr=Configuration de Webmin
desc_es=Configuraci髇 de Webmin
desc_sv=Webmin-inst鋖lningar
desc_de=Webmin Konfiguration
desc_hu=Webmin be醠l韙醩ok
desc_ru_SU=胂纹汕找撩裳 Webmin
desc_pl=Konfiguracja Webmina
category=webmin
desc_zh_TW.Big5=Webmin 舱篈
desc=Webmin Configuration
risk=low medium high
desc_nl=Webmin Configuratie
desc_ru_RU=暑眙桡箴圉 Webmin
 07070100012f3b000081e40000000000000002000000013ac03893000001c3000000200000000000000000000000000000002100000003reloc/webmin/save_assignment.cgi  #!/usr/local/bin/perl
require './webmin-lib.pl';
&ReadParse();

&lock_file("$config_directory/webmin.cats");
foreach $module (keys %in){
	local %minfo = &get_module_info($module);
	next if (!%minfo);
	if ($minfo{'realcategory'} ne $in{$module}) {
		$cats{$module} = $in{$module};
		}
	}
&write_file("$config_directory/webmin.cats", \%cats);
&unlock_file("$config_directory/webmin.cats");
&webmin_log("assignment", undef, undef, \%in);

&redirect("");
 07070100012f3c000081e40000000000000002000000013ac0389300000331000000200000000000000000000000000000002100000003reloc/webmin/save_categories.cgi  #!/usr/local/bin/perl
# save_categories.cgi

require './webmin-lib.pl';
&ReadParse();
&error_setup($text{'categories_err'});

# Save built-in categories
foreach $t (keys %text) {
	$t =~ s/^category_// || next;
	if (!$in{"def_$t"}) {
		$in{"desc_$t"} ||
			&error(&text('categories_edesc', $t ? $t : 'other'));
		$catnames{$t} = $in{"desc_$t"};
		}
	}

# Save custom categories
for($i=0; defined($in{"cat_$i"}); $i++) {
	if ($in{"cat_$i"} && $in{"desc_$i"}) {
		$realcat{$in{"cat_$i"}} &&
			&error(&text('categories_ecat', $in{"cat_$i"}));
		$catnames{$in{"cat_$i"}} = $in{"desc_$i"};
		}
	}

&lock_file("$config_directory/webmin.catnames");
&write_file("$config_directory/webmin.catnames", \%catnames);
&unlock_file("$config_directory/webmin.catnames");
&webmin_log("categories", undef, undef, \%in);
&redirect("");
   07070100012f3d000081e40000000000000002000000013ac0389300000504000000200000000000000000000000000000001a00000003reloc/webmin/setup_ca.cgi #!/usr/local/bin/perl
# setup_ca.cgi
# Setup a new certificate authority

require './webmin-lib.pl';
&ReadParse();
&error_setup($text{'ca_err'});

&lock_file($ENV{'MINISERV_CONFIG'});
&get_miniserv_config(\%miniserv);
&setup_ca() if (!$miniserv{'ca'});
&lock_file($miniserv{'ca'});
$ctemp = &tempname();
$ktemp = &tempname();
$outtemp = &tempname();
%aclconfig = &foreign_config('acl');
open(CA, "| $aclconfig{'ssleay'} req -newkey rsa:512 -x509 -nodes -out $ctemp -keyout $ktemp -config $config_directory/acl/openssl.cnf >$outtemp 2>&1");
print CA $in{'countryName'},"\n";
print CA $in{'stateOrProvinceName'},"\n";
print CA "\n";
print CA $in{'organizationName'},"\n";
print CA $in{'organizationalUnitName'},"\n";
print CA $in{'commonName'},"\n";
print CA $in{'emailAddress'},"\n";
close(CA);
$out = `cat $outtemp`;
unlink($outtemp);
if (!-r $ctemp && !-r $ktemp) {
	&error("<pre>$out</pre>");
	}
system("cat $ctemp $ktemp >$miniserv{'ca'}");
unlink($ctemp);
unlink($ktemp);
&unlock_file($miniserv{'ca'});

&put_miniserv_config(\%miniserv);
&unlock_file($ENV{'MINISERV_CONFIG'});
&header($text{'ca_title'}, "");
print "<hr>\n";
print "<p>$text{'ca_setupok'}<p>\n";
print "<hr>\n";
&footer("", $text{'index_return'});
&restart_miniserv();
&webmin_log("setupca", undef, undef, \%in);

07070100012f3e000081e40000000000000002000000013ac0389300000426000000200000000000000000000000000000001900000003reloc/webmin/stop_ca.cgi  #!/usr/local/bin/perl
# stop_ca.cgi
# Remove all the CA files

require './webmin-lib.pl';
&lock_file($ENV{'MINISERV_CONFIG'});
&get_miniserv_config(\%miniserv);
delete($miniserv{'ca'});
&put_miniserv_config(\%miniserv);
&unlock_file($ENV{'MINISERV_CONFIG'});

$acl = "$config_directory/acl";
&lock_file("$acl/ca.pem");
unlink("$acl/ca.pem");
&unlock_file("$acl/ca.pem");

&lock_file("$acl/index.txt");
unlink("$acl/index.txt");
&unlock_file("$acl/index.txt");

&lock_file("$acl/index.txt.old");
unlink("$acl/index.txt.old");
&unlock_file("$acl/index.txt.old");

&lock_file("$acl/openssl.cnf");
unlink("$acl/openssl.cnf");
&unlock_file("$acl/openssl.cnf");

&lock_file("$acl/serial");
unlink("$acl/serial");
&lock_file("$acl/serial");

&lock_file("$acl/serial.old");
unlink("$acl/serial.old");
&unlock_file("$acl/serial.old");
&system_logged("rm -rf $acl/newcerts");

&header($text{'ca_title'}, "");
print "<hr>\n";
print "<p>$text{'ca_stopok'}<p>\n";
print "<hr>\n";
&footer("", $text{'index_return'});
&restart_miniserv();
&webmin_log("stopca", undef, undef);

  07070100012f3f000081e40000000000000002000000013ac038930000141e000000200000000000000000000000000000001900000003reloc/webmin/upgrade.cgi  #!/usr/local/bin/perl
# upgrade.cgi
# Upgrade webmin if possible

require './webmin-lib.pl';
&ReadParseMime();

if ($in{'source'} == 0) {
	# from local file
	&error_setup(&text('upgrade_err1', $in{'file'}));
	$file = $in{'file'};
	if (!(-r $file)) { &error($text{'upgrade_efile'}); }
	}
elsif ($in{'source'} == 1) {
	# from uploaded file
	&error_setup($text{'upgrade_err2'});
	$file = &tempname();
	$need_unlink = 1;
	if ($no_upload) {
                &error($text{'upgrade_ebrowser'});
                }
	open(MOD, "> $file");
	print MOD $in{'upload'};
	close(MOD);
	}
elsif ($in{'source'} == 2) {
	# find latest version at www.webmin.com by looking at index page
	&error_setup(&text('upgrade_err3', $in{'url'}));
	$file = &tempname();
	&http_download('www.webmin.com', 80, '/webmin/', $file);
	open(FILE, $file);
	while(<FILE>) {
		if (/webmin-([0-9\.]+)\.tar\.gz/) {
			$version = $1;
			last;
			}
		}
	close(FILE);
	unlink($file);
	if ($version <= &get_webmin_version()) {
		&error(&text('upgrade_eversion', $version));
		}
	if ($in{'mode'} eq 'rpm') {
		&http_download('www.webmin.com', 80,
		  "/webmin/download/rpm/webmin-$version.rpm",$file);
		}
	elsif ($in{'mode'} eq 'solaris-pkg') {
		&http_download('www.webmin.com', 80,
		  "/webmin/download/solaris-pkg/webmin-$version.pkg.gz",$file);
		}
	else {
		&http_download('www.webmin.com', 80,
		  "/webmin/download/webmin-$version.tar.gz",$file);
		}
	$need_unlink = 1;
	}
elsif ($in{'source'} == 3) {
	# Get the latest version from Caldera with cupdate
	}

# gunzip the file if needed
open(FILE, $file);
read(FILE, $two, 2);
close(FILE);
if ($two eq "\037\213") {
	if (!&has_command("gunzip")) {
		unlink($file) if ($need_unlink);
		&error($text{'upgrade_egunzip'});
		}
	$newfile = &tempname();
	system("gunzip -c $file >$newfile 2>/dev/null");
	unlink($file) if ($need_unlink);
	$need_unlink = 1;
	$file = $newfile;
	}

if ($in{'mode'} eq 'rpm') {
	# Check if it is an RPM package
	$out = `rpm -qp $file`;
	$out =~ /^webmin-(\d+\.\d+)/ ||
		&error($text{'upgrade_erpm'});
	if ($1 <= &get_webmin_version()) {
		&error(&text('upgrade_eversion', "$1"));
		}

	# Install the RPM
	$| = 1;
	&header($text{'upgrade_title'}, "");
	print "<hr>\n";
	print "<p>",$text{'upgrade_setuprpm'},"<p>\n";
	if ($need_unlink) {
		system("(rpm -U --ignoreos --ignorearch $file ; rm -f $file) >/dev/null 2>/dev/null </dev/null &");
		}
	else {
		system("(rpm -U --ignoreos --ignorearch $file) >/dev/null 2>/dev/null </dev/null &");
		}
	}
elsif ($in{'mode'} eq 'solaris-pkg') {
	# Check if it is a solaris package
	&foreign_require("software", "software-lib.pl");
	&foreign_call("software", "is_package", $file) ||
		&error($text{'upgrade_epackage'});
	local @p = &foreign_call("software", "file_packages", $file);
	$p[0] =~ /^WSwebmin/ || &error($text{'upgrade_epackage'});

	# Install the package
	$| = 1;
	&header($text{'upgrade_title'}, "");
	print "<hr>\n";
	print "<p>",$text{'upgrade_setuppackage'},"<p>\n";
	$ENV{'KEEP_ETC_WEBMIN'} = 1;
	if (!fork()) {
		chdir("/");
		close(STDIN); close(STDOUT); close(STDERR);
		$rv = &foreign_call("software", "delete_package", "WSwebmin");
		$software::in{'root'} = '/';
		$rv = &foreign_call("software", "install_package", $file, "WSwebmin");
		unlink($file) if ($need_unlink);
		exit;
		}
	}
elsif ($in{'mode'} eq 'caldera') {
	# Check if it is a Caldera RPM of Webmin
	$out = `rpm -qp $file`;
	$out =~ /^webmin-(\d+\.\d+)/ ||
		&error($text{'upgrade_erpm'});
	if ($1 <= &get_webmin_version()) {
		&error(&text('upgrade_eversion', "$1"));
		}
	local $wfound = 0;
	open(OUT, "rpm -qpl $file |");
	while(<OUT>) {
		$wfound++ if (/^\/etc\/webmin);
		}
	close(OUT);
	$wfound || $text{'upgrade_ecaldera'});

	# Install the RPM
	$| = 1;
	&header($text{'upgrade_title'}, "");
	print "<hr>\n";
	print "<p>",$text{'upgrade_setuprpm'},"<p>\n";
	if ($need_unlink) {
		system("(rpm -U --ignoreos --ignorearch $file ; rm -f $file) >/dev/null 2>/dev/null </dev/null &");
		}
	else {
		system("(rpm -U --ignoreos --ignorearch $file) >/dev/null 2>/dev/null </dev/null &");
		}
	}
else {
	# Check if it is a webmin tarfile
	open(TAR, "tar tf $file 2>&1 |");
	while(<TAR>) {
		if (/^webmin-([0-9\.]+)\//) {
			$version = $1;
			}
		if (/^[^\/]+\/(\S+)$/) {
			$hasfile{$1}++;
			}
		}
	close(TAR);
	if (!$version) {
		unlink($file) if ($need_unlink);
		if ($hasfile{'module.info'}) {
			&error(&text('upgrade_emod', 'edit_mods.cgi'));
			}
		else {
			&error($text{'upgrade_etar'});
			}
		}
	if ($version <= &get_webmin_version()) {
		&error(&text('upgrade_eversion', $version));
		}

	# Extract it next to the current directory and run setup.sh
	$| = 1;
	&header($text{'upgrade_title'}, "");
	print "<hr>\n";
	system("cd ../.. ; tar xf $file >/dev/null 2>&1");
	unlink($file) if ($need_unlink);
	$ENV{'config_dir'} = $config_directory;
	$ENV{'webmin_upgrade'} = 1;
	$ENV{'autothird'} = 1;
	print "<p>",$text{'upgrade_setup'},"<p>\n";
	system("(cd ../../webmin-$version ; ./setup.sh) >/dev/null 2>/dev/null </dev/null &");
	}
&webmin_log("upgrade", undef, undef, { 'version' => $version,
				       'mode' => $in{'mode'} });

print "<hr>\n";
&footer("", $text{'index_return'});

  07070100012f40000081a40000000000000002000000013ac03892000004f6000000200000000000000000000000000000001b00000003reloc/webmin/webmin-lib.pl    # webmin-lib.pl
# Common functions for configuring miniserv

do '../web-lib.pl';
&init_config("webmin");

@cs_codes = ( 'cs_page', 'cs_text', 'cs_table', 'cs_header', 'cs_link' );
@cs_names = map { $text{$_} } @cs_codes;

sub setup_ca
{
local $conf = `cat ../acl/openssl.cnf`;
local $acl = "$config_directory/acl";
$conf =~ s/DIRECTORY/$acl/g;
&lock_file("$acl/openssl.cnf");
open(CONF, ">$acl/openssl.cnf");
print CONF $conf;
close(CONF);
&unlock_file("$acl/openssl.cnf");
&lock_file("$acl/index.txt");
open(INDEX, ">$acl/index.txt");
close(INDEX);
&unlock_file("$acl/index.txt");
&lock_file("$acl/serial");
open(SERIAL, ">$acl/serial");
print SERIAL "011E\n";
close(SERIAL);
&unlock_file("$acl/serial");
&lock_file("$acl/newcerts");
mkdir("$acl/newcerts", 0755);
&unlock_file("$acl/newcerts");
$miniserv{'ca'} = "$acl/ca.pem";
}

# list_themes()
# Returns an array of all installed themes
sub list_themes
{
local @rv;
opendir(DIR, "..");
foreach $m (readdir(DIR)) {
	local %tinfo;
	next if ($m =~ /^\./);
	next if (!&read_file("../$m/theme.info", \%tinfo));
	next if (!&check_os_support(\%tinfo));
	if ($tinfo{'desc_'.$current_lang}) {
		$tinfo{'desc'} = $tinfo{'desc_'.$current_lang};
		}
	$tinfo{'dir'} = $m;
	push(@rv, \%tinfo);
	}
closedir(DIR);
return @rv;
}

1;
  0707010001b8d3000041ed0000000000000001000000043ac03caa00000000000000200000000000000000000000000000001000000003reloc/webminlog   0707010001fd96000041ed0000000000000001000000023ac03caa00000000000000200000000000000000000000000000001700000003reloc/webminlog/images    0707010001fd97000081a40000000000000002000000013ac038b7000001d6000000200000000000000000000000000000002000000003reloc/webminlog/images/icon.gif   GIF89a0 0   櫃檉ff烫            !   ,    0 0  㧏	18[汹麪h$xㄣ卄Yv芎0諍'z7ZDg;3IQ墪s4q愙(ザi+C惠c
bo]韪7Lg\y疓/鷒$zhwak唦#:僫N"妏寍墤巃y敄"槒D慶w嶥6廳V:猺6X圥矋~瓭櫒 海朅秞皾杭絅l9萴
材灯.,VI,汜Y謉T餭X>鎚遺o)VKA旺鏝*W歶7綺>1菩TA#*=冟湬酕Wwh,4駧G捙B塍缪J嫯4籏5杉僤憯=Z瀌鰘4"'.mM3櫹檱j厷7區蔶掙>D'4%#r臛_e8J2親g:窘86c%N堬T 馵霎粤幝S掆
i0;o 赦 錌嬑燙M鶥 ;  0707010001b8d4000081e40000000000000002000000013ac038b700000829000000200000000000000000000000000000001a00000003reloc/webminlog/index.cgi #!/usr/local/bin/perl
# index.cgi
# Display logging search form

require './webminlog-lib.pl';
&foreign_require("acl", "acl-lib.pl");
&header($text{'index_title'}, "");
print "<hr>\n";

if (!$gconfig{'log'}) {
	print &text('index_nolog', '/webmin/edit_log.cgi'),"<p>\n";
	}
elsif (!$gconfig{'logfiles'}) {
	print &text('index_nologfiles', '/webmin/edit_log.cgi'),"<p>\n";
	}

print "<form action=search.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'index_header'}</b></td> </tr>\n";
print "<tr $cb> <td>\n";

print "<input name=uall type=radio value=1 checked> $text{'index_uall'}<br>\n";
print "<input name=uall type=radio value=0> $text{'index_user'}\n";
print "<select name=user>\n";
foreach $u (&foreign_call("acl", "list_users")) {
	print "<option>$u->{'name'}\n";
	}
print "</select><p>\n";

print "<input name=mall type=radio value=1 checked> $text{'index_mall'}<br>\n";
print "<input name=mall type=radio value=0> $text{'index_module'}\n";
print "<select name=module>\n";
foreach $m (&foreign_call("acl", "list_modules")) {
	%minfo = &get_module_info($m);
	$minfo{'desc'} =~ s/&nbsp;/ /g;
	if (-r "../$m/log_parser.pl") {
		$mods{$minfo{'desc'}} = "<option value=$m>$minfo{'desc'}\n";
		}
	}
foreach $k (sort { $a cmp $b } keys %mods) {
	print $mods{$k};
	}
print "</select><p>\n";

print "<input name=tall type=radio value=1 checked> $text{'index_tall'}<br>\n";
print "<input name=tall type=radio value=2> $text{'index_today'}<br>\n";
print "<input name=tall type=radio value=0>\n";
print &text('index_time', &time_input('from'), &time_input('to')),"<p>\n";

print "<div align=right>\n";
print "<input type=submit value='$text{'index_search'}'></div>\n";
print "</td> </tr></table>\n";
print "</form>\n";

print "<hr>\n";
&footer("/", $text{'index'});

sub time_input
{
local $rv = "<input name=$_[0]_d size=2>/";
$rv .= "<select name=$_[0]_m>";
for($i=0; $i<12; $i++) {
	$rv .= "<option value=$i>".$text{"smonth_".($i+1)}."\n";
	}
$rv .= "</select>/<input name=$_[0]_y size=4>";
$rv .= " ".&date_chooser_button("$_[0]_d", "$_[0]_m", "$_[0]_y");
return $rv;
}

   070701000214d0000041ed0000000000000001000000023ac03caa00000000000000200000000000000000000000000000001500000003reloc/webminlog/lang  070701000214d1000081a40000000000000002000000013ac038b700000773000000200000000000000000000000000000001800000003reloc/webminlog/lang/en   index_title=Webmin Actions Log
index_header=Search the Webmin log for actions ..
index_uall=By any user
index_user=By user
index_mall=In any module
index_module=In module
index_tall=At any time
index_today=For today only
index_time=Between $1 and $2
index_search=Search
index_return=search form
index_nolog=<b>Note</b> - <a href='$1'>Logging in Webmin</a> is not currently enabled, so it is likely that searches in the actions log will not produce any results.
index_nologfiles=<b>Note</b> - <a href='$1'>Logging of file changes</a> is not currently enabled, so the details of logged actions will not include changed files or commands executed.

search_title=Search Results
search_date=Date
search_time=Time
search_user=User
search_host=Client Address
search_module=Module
search_action=Action
search_none=No actions matched your search.
search_return=search results
search_sid=Actions from by user $1 in session $2
search_critall=All logged actions
search_crit=Logged actions
search_critu=by user $1
search_critm=from module $1
search_critt=between $1 and $2
search_critt2=on $1
search_config=Changed module configuration

view_title=Action Details
view_header=Details of logged action $1
view_action=Description
view_module=Webmin module
view_script=Generated by script
view_user=Webmin user
view_ip=Client IP or hostname
view_sid=Session ID
view_time=Date and time
view_nofiles=No config file changes were logged for this action
view_type_create=Created file $1
view_type_modify=Changed file $1
view_type_delete=Deleted file $1
view_type_exec=Executed command
view_type_sql=Executed SQL statement in database $1
view_type_kill=Sent signal $1 to PID $2
view_type_symlink=Created symlink $1 -&gt; $2
view_type_unsymlink=Deleted symlink $1 -&gt; $2
view_type_resymlink=Modified symlink $1 -&gt; $2
view_type_mkdir=Created directory $1
view_type_rmdir=Removed directory $1
view_type_rename=Renamed $1 to $2

 070701000214d2000081a40000000000000002000000013ac038b700000711000000200000000000000000000000000000001800000003reloc/webminlog/lang/es   index_title=Historial de Acciones de Webmin
index_header=Buscar el historial de Webmin por acciones...
index_uall=Por cualquier usuario
index_user=Por usuario
index_mall=En cualquier m骴ulo
index_module=En m骴ulo
index_tall=A cualquier hora
index_today=S髄o para hoy
index_time=Entre $1 y $2
index_search=Buscar
index_return=formulario de b鷖queda

search_title=Resultados de la B鷖queda
search_date=Fecha
search_time=Hora
search_user=Usuario
search_host=Direcci髇 de Cliente
search_module=M骴ulo
search_action=Acci髇
search_none=No hay acciones que concuerden con tu b鷖queda.
search_return=resultados de la b鷖queda
search_sid=Acciones desde del usuario $1 en sesi髇 $2
search_critall=Todas las acciones con historial
search_crit=Acciones con historial
search_critu=por usuario $1
search_critm=desde el m骴ulo $1
search_critt=entre $1 y $2
search_critt2=en $1
search_config=Cambiada configuraci髇 del m骴ulo

view_title=Detalles de Acci髇
view_header=Detalles de acci髇 con historial $1
view_action=Descripci髇
view_module=M骴ulo de Webmin
view_script=Generado por gui髇
view_user=Usuario de Webmin
view_ip=IP de cliente o nombre de m醧uina
view_sid=ID de Sesi髇
view_time=Fecha y hora
view_nofiles=No se han grabado en historial cambios de archivo de configuraci髇 para esta acci髇
view_type_create=Creado archivo $1
view_type_modify=Cambiado archivo $1
view_type_delete=Borrado archivo $1
view_type_exec=Ejecutado comando
view_type_sql=Ejecutada sentencia SQL en base de datos $1
view_type_kill=Enviada se馻l $1 a PID $2
view_type_symlink=Creado enlace simb髄ico $1 -&gt; $2
view_type_unsymlink=Borrado enlace simb髄ico $1 -&gt; $2
view_type_resymlink=Modificado enlace sim髄ico $1 -&gt; $2
view_type_mkdir=Creado directorio $1
view_type_rmdir=Quitado directorio $1
view_type_rename=Renombrado $1 por $2

   070701000214d3000081a40000000000000002000000013ac038b70000071d000000200000000000000000000000000000001800000003reloc/webminlog/lang/fr   index_title=Contr鬺e des logs
index_header=Rechercher les actions effectu閑s par ..
index_uall=n'importe quel utilisateur
index_user=pour l'utilisateur
index_mall=sur tous les modules
index_module=dans le module
index_tall=n'importe quand
index_today=pour les dates comprises
index_time=entre le $1 et le $2
index_search=Rechecher
index_return=recherche de

search_title=R閟ultats de la recherche
search_date=Date
search_time=Heure
search_user=Utilisateur
search_host=Poste de connexion
search_module=Module
search_action=Action
search_none=Aucune action ne correspond  vos crit鑢es.
search_return=R閟ultats de la recherche
search_sid=Actions 閒fectu閑s par l'utilisateur $1 dans la session $2
search_critall=Toutes les actins
search_crit=Actions 閒fectu閑s
search_critu=par l'utilisateur $1
search_critm=sur le module $1
search_critt=entre $1 and $2
search_critt2=sur $1
search_config=A chang la configuration du module

view_title=D閠ails de l'action
view_header=Details de l'action enregistr閑 $1
view_action=Description
view_module=module Webmin
view_script=cr殚 par le script
view_user=Utilisateur
view_ip=Poste de connexion
view_sid=Session
view_time=Date et heure
view_nofiles=Aucune modification du fichier de configuration n'a 閠 enregistr閑 pour cette action
view_type_create=fichier cr殚 $1
view_type_modify=fichier modifi $1
view_type_delete=fichier supprim $1
view_type_exec=commande ex閏ut閑
view_type_sql=Requ阾e SQL ex閏ut閑 sur la base de donn閑 $1
view_type_kill=Signal $1 envoy au processus PID $2
view_type_symlink=lien symobolique cr殚 $1 -&gt; $2
view_type_unsymlink=lien symobolique supprim $1 -&gt; $2
view_type_resymlink=lien symobolique modifi $1 -&gt; $2
view_type_mkdir=r閜ertoire cr殚 $1
view_type_rmdir=r閜ertoire supprim $1
view_type_rename=fichier ou r閜ertoire $1 renomm en $2

   070701000214d4000081a40000000000000002000000013ac038b700000709000000200000000000000000000000000000001800000003reloc/webminlog/lang/hu   # webmin-0.81/webminlog/lang/hu
# Translated by <kissg@sztaki.hu>

index_title=Webmin napl
index_header=Esem閚yek keres閟e a napl筢llom醤yban
index_uall=B醨kire vonatkoz骯n
index_user=Erre a felhaszn醠髍a vonatkoz骯n:
index_mall=B醨mely modulban
index_module=Ebben a modulban:
index_tall=B醨mely id鮬ontban
index_today=Csak a mai napra vonatkoz骯n
index_time=$1 閟 $2 k鰖鰐t
index_search=Keres閟
index_return=a keres鮫ldalra

search_title=A keres閟 eredm閚ye
search_date=D醫um
search_time=Id
search_user=Felhaszn醠
search_host=Kliens c韒e
search_module=Modul
search_action=Tev閗enys間
search_none=Nincs tal醠at
search_return=a keres閟 eredm閚y閔ez
search_sid=A(z) $1 felhaszn醠 m鹶eletei a $2 kapcsolat sor醤
search_critall=Az 鰏szes napl骲ejegyz閟
search_crit=Napl骲ejegyz閟ek
search_critu=a(z) $1 felhaszn醠髏髄
search_critm=a $1 modulb髄
search_critt=$1 閟 $2 k鰖鰐t
search_critt2=adott napon ($1)
search_config=A modul konfigur醕i骿醤ak v醠toztat醩a

view_title=Napl骲ejegyz閟
view_header=A $1 jel esem閚y r閟zletes adatai
view_action=Az esem閚y le韗醩a
view_module=Webmin modul
view_script=Gener醠 program
view_user=Webmin felhaszn醠
view_ip=Kliensg閜
view_sid=Kapcsolat azonos韙骿a
view_time=D醫um
view_nofiles=Az esem閚y sor醤 egy file sem v醠tozott meg
view_type_create=趈 file keletkezett: $1
view_type_modify=A $1 file v醠toz醩ai
view_type_delete=A $1 file megsz鹡t
view_type_exec=V間rehajtott parancs
view_type_sql=A $1 adatb醶ison v間rehajtott SQL parancs
view_type_kill=$1 jelz閟 ment a $2 processznek
view_type_symlink=趈 szimbolikus link: $1 -&gt; $2
view_type_unsymlink=T鰎鰈t szimbolikus link: $1 -&gt; $2
view_type_resymlink=M骴os韙ott szimbolikus link: $1 -&gt; $2
view_type_mkdir=趈 katal骻us: $1
view_type_rmdir=T鰎鰈t katal骻us: $1
view_type_rename=$1 醫nevezve $2-ra/re

   070701000214d5000081e40000000000000002000000013ac038b7000006ac000000200000000000000000000000000000001800000003reloc/webminlog/lang/nl   index_title=Webmin Actie Log
index_header=Doorzoek het Webmin log voor acties..
index_uall=Door een willekeurige gebruikers
index_user=Door gebruiker
index_mall=In een willekeurige module
index_module=In module
index_tall=Op een willekeurige tijd
index_today=Alleen vandaag
index_time=Tussen $1 en $2
index_search=Zoeken
index_return=zoek formulier

search_title=Zoek Resultaten
search_date=Datum
search_time=Tijd
search_user=Gebruiker
search_host=Client Adres
search_module=Module
search_action=Actie
search_none=Geen acties kwamen overeen met uw zoekcriteria.
search_return=zoek resultaten
search_sid=Acties door gebruikers $1 in sessie $2
search_critall=alle gelogde acties
search_crit=Gelogde acties
search_critu=door gebruiker $1
search_critm=uit module $1
search_critt=tussen $1 en $2
search_critt2=op $1
search_config=Module configuratie gewijzigd

view_title=Actie Details
view_header=Details van gelogde actie $1
view_action=Omschrijving
view_module=Webmin module
view_script=Gegenereerd door script
view_user=Webmin gebruiker
view_ip=Client IP of hostnaam
view_sid=Sessie ID
view_time=Datum en tijd
view_nofiles=Geen configuratie bestand wijzigingen werden gelogd voor deze actie
view_type_create=Aangemaakt bestand $1
view_type_modify=Gewijzigd bestand $1
view_type_delete=Verwijderd bestand $1
view_type_exec=Uitgevoerd commando
view_type_sql=SQL expressie uitgevoerd in database $1
view_type_kill=signaal $1 naar PID $2 gestuurd
view_type_symlink=Aangemaakt symlink $1 -&gt; $2
view_type_unsymlink=Verwijderd symlink $1 -&gt; $2
view_type_resymlink=Aangepast symlink $1 -&gt; $2
view_type_mkdir=Aangemaakt directory $1
view_type_rmdir=Verwijderd directory $1
view_type_rename=Hernoemd $1 to $2

070701000214d6000081a40000000000000002000000013ac038b70000089f000000200000000000000000000000000000001800000003reloc/webminlog/lang/pl   index_title=Log pracy Webmina
index_header=Szukaj w&nbsp;logu Webmina dzia砤lno禼i ..
index_uall=Dowolnego u縴tkownika
index_user=U縴tkownika
index_mall=W&nbsp;dowolnym module
index_module=W&nbsp;module
index_tall=W&nbsp;dowolnym czasie
index_today=Dzisiaj
index_time=Pomi阣zy $1 a&nbsp;$2
index_search=Szukaj
index_return=formularza szukania
index_nolog=<b>Uwaga</b> - <a href='$1'>Logowanie w&nbsp;Webminie</a> nie jest aktualnie w潮czone, wi阠 prawdopodobnie przeszukiwanie logu pracy nie da 縜dnych wynik體.
index_nologfiles=<b>Uwaga</b> - <a href='$1'>Logowanie zmian w&nbsp;plikach</a> nie jest aktualnie w潮czone, wi阠 informacje o&nbsp;zarejestrowanych operacjach nie b阣 zawiera zmian w&nbsp;plikach ani uruchomionych polece.

search_title=Wyniki poszukiwania
search_date=Data
search_time=Czas
search_user=U縴tkownik
search_host=Adres stacji klienckiej
search_module=Modu
search_action=Operacja
search_none=痑dne dzia砤nia nie spe硁iaj zadanych warunk體.
search_return=wynik體 poszukiwania
search_sid=Dzia砤lno舵 u縴tkownika $1 podczas sesji $2
search_critall=Wszystkie zarejestrowane operacje
search_crit=Zarejestrowane operacje
search_critu=u縴tkownika $1
search_critm=w&nbsp;module $1
search_critt=pomi阣zy $1 a&nbsp;$2
search_critt2=w&nbsp;dniu $1
search_config=Zmieniono konfiguracj modu硊

view_title=Dane operacji
view_header=Szczeg蟪y zarejestrowanej operacji $1
view_action=Opis
view_module=Modu Webmina
view_script=U縴ty skrypt
view_user=U縴tkownik Webmina
view_ip=Nazwa hosta lub IP stacji klienckiej
view_sid=ID sesji
view_time=Data i&nbsp;czas
view_nofiles=Nie zarejestrowano zmian plik體 konfiguracyjnych podczas tej operacji
view_type_create=Utworzono plik $1
view_type_modify=Zmieniono plik $1
view_type_delete=Skasowano plik $1
view_type_exec=Wykonano polecenie
view_type_sql=Wykonano polecenie SQL w&nbsp;bazie danych $1
view_type_kill=Wys砤no sygna $1 do PID $2
view_type_symlink=Utworzono dowi眤anie symboliczne $1 -&gt; $2
view_type_unsymlink=Skasowano dowi眤anie symboliczne $1 -&gt; $2
view_type_resymlink=Zmieniono dowi眤anie symboliczne $1 -&gt; $2
view_type_mkdir=Utworzono katalog $1
view_type_rmdir=Skasowano katalog $1
view_type_rename=Zmieniono nazw $1 na $2
 070701000214d7000081a40000000000000002000000013ac038b7000007f3000000200000000000000000000000000000001800000003reloc/webminlog/lang/sv   index_title=Loggning av Webmin-aktivitet
index_header=S鰇 i Webmin-loggen efter aktivitet ...
index_uall=fr錸 alla anv鋘dare
index_user=fr錸 anv鋘dare
index_mall=i alla moduler
index_module=i modul
index_tall=n鋜 som helst
index_today=endast idag
index_time=mellan $1 och $2
index_search=S鰇
index_return=s鰇formul鋜
index_nolog=<b>Obs</b> - <a href='$1'>Loggning i Webmin</a> 鋜 f鰎 tillf鋖let inte aktiverat, s s鰇ningar i loggen kommer inte att ge n錱ra resultat.
index_nologfiles=<b>Obs</b> - <a href='$1'>Loggning av fil鋘dringar</a> 鋜 f鰎 tillf鋖let inte aktiverat, s 鋘drade filer och utf鰎da kommandon kommer inte att komma med bland de loggade h鋘delserna.

search_title=S鰇resultat
search_date=Datum
search_time=Tid
search_user=Anv鋘dare
search_host=Klientadress
search_module=Modul
search_action=Aktivitet
search_none=Ingen aktivitet matchade din s鰇ning.
search_return=s鰇resultat
search_sid=Aktivitet av anv鋘dare $1 i session $2
search_critall=All loggad aktivitet
search_crit=Loggad aktivitet
search_critu=fr錸 anv鋘dare $1
search_critm=i modul $1
search_critt=mellan $1 och $2
search_critt2=p $1
search_config=膎drade modulinst鋖lningarna

view_title=Uppgifter om aktivitet
view_header=Uppgifter om loggad aktivitet $1
view_action=Beskrivning
view_module=Webmin-modul
view_script=Genererad av script
view_user=Webmin-anv鋘dare
view_ip=Klient-IP eller datornamn
view_sid=Sessions-ID
view_time=Datum och tid
view_nofiles=Inga 鋘dringar i config-filen loggades f鰎 denna aktivitet
view_type_create=Skapade filen $1
view_type_modify=膎drade filen $1
view_type_delete=Tog bort filen $1
view_type_exec=Utf鰎de kommando
view_type_sql=Utf鰎de SQL-kommando i databasen $1
view_type_kill=Skickade signal $1 till PID $2
view_type_symlink=Skapade den symboliska l鋘ken $1 -&gt; $2
view_type_unsymlink=Tog bort den symboliska l鋘ken $1 -&gt; $2
view_type_resymlink=Modifierade den symboliska l鋘ke $1 -&gt; $2
view_type_mkdir=Skapade katalogen $1
view_type_rmdir=Tog bort katalogen $1
view_type_rename=Bytte namn p $1 till $2

 070701000214d8000081a40000000000000002000000013ac038b700000695000000200000000000000000000000000000001800000003reloc/webminlog/lang/tr   index_title=Webmin Kay齮lar
index_header=Webmin kay齮lar齨 iemler i鏸n ara ..
index_uall=Her kullan齝 i鏸n
index_user=Kullan齝 i鏸n 
index_mall=Her mod黮 i鏸n
index_module=Mod黮 i鏸n
index_tall=Herzaman
index_today=Sadece bug黱
index_time=$1 ve $2 Aras齨da
index_search=Ara
index_return=arama formu

search_title=Arama Sonu鏻ar
search_date=Zaman 
search_time=Saat
search_user=Kullan齝
search_host=輘temci Adresi
search_module=Mod黮
search_action=蔺lem
search_none=Arama bir sonu bulunamad.
search_return=sonu鏻ar ara
search_sid=Oturum $2'de $1 kullan齝齭齨齨 iemleri
search_critall=B黷黱 kay齮 iemleri
search_crit=Kay齮 tutulan iemler
search_critu=kullan齝 $1 ile
search_critm=mod黮 $1'den
search_critt=$1 ve $2 aras齨da
search_critt2=$1'de
search_config=Mod黮 yap齦and齬mas de餴⺶irildi

view_title=蔺lem Ayr齨t齦ar
view_header=蔺lem $1'in kay齮 detaylar
view_action=A琮klama
view_module=Webmin mod黮
view_script=Betik ile olu⺶uruldu
view_user=Webmin kullan齝齭
view_ip=輘temci IP'si ya da makinesi
view_sid=Oturum ID
view_time=Tarih ve Saat
view_nofiles=Bu iem i鏸n kay齮 yap齦and齬ma dosyas de餴㱮kli餴 yok
view_type_create=$1 dosyas olu⺶uruldu
view_type_modify=$1 dosyas de餴⺶irildi
view_type_delete=$1 dosyas silindi
view_type_exec=Komut 鏰lt齬齦du
view_type_sql=Veritaban $1'de SQL listesi 鏰lt齬齦d
view_type_kill=PID $2'ye $1 sinyali g鰊derildi
view_type_symlink=Sembolik link olu⺶uruldu $1 -&gt; $2
view_type_unsymlink=Sembolik link silindi $1 -&gt; $2
view_type_resymlink=Sembolik link de餴⺶irildi $1 -&gt; $2
view_type_mkdir=$1 dizini olu⺶uruldu
view_type_rmdir=$1 dizini silindi
view_type_rename=$1, $2 olarak yeniden adland齬齦d

   070701000214d9000081a40000000000000002000000013ac038b700000548000000200000000000000000000000000000001b00000003reloc/webminlog/lang/zh_CN    index_title=Webmin 行为日志
index_header=搜索该行为的 Webmin 日志
index_uall=通过任一用户
index_user=通过用户
index_mall=采用任意模式
index_module=采用模式
index_tall=随时
index_today= 仅仅今日
index_time=在 $1 和 $2 之间
index_search=搜索
index_return=搜索方式

search_title=搜索结果
search_date=日期
search_time=时间
search_user=用户
search_host=客户地址
search_module=模式
search_action=行为
search_none=没有搜索到您要的行为
search_return=搜索结果
search_sid=在会话 $2 中用户 $1 的行为
search_critall=所有被记录的行为
search_crit=被记录的行为
search_critu=来自用户 $1
search_critm=来自模块 $1
search_critt=在 $1 和 $2 之间
search_critt2=在 $1 上
search_config=改变模块配置

view_title=行为详述
view_header=被记录行为详述
view_action=描述
view_module=Webmin 模块
view_script=通过脚本产生
view_user=Webmin 用户
view_ip=客户 IP 或客户名
view_sid=会话 ID 
view_time=日期和时间
view_nofiles=没有记录改变配置文件的行为
view_type_create=创建文件 $1
view_type_modify=改变文件 $1
view_type_delete=删除文件 $1
view_type_exec=执行命令
view_type_sql=在数据库 $1 中执行 SQL 语句
view_type_kill=发送信号 $1 到 PID $2
view_type_symlink=创建系统连接 symlink $1 -&gt; $2
view_type_unsymlink=删除系统连接 symlink $1 -&gt; $2
view_type_resymlink=更新系统连接 symlink $1 -&gt; $2
view_type_mkdir=创建目录 $1
view_type_rmdir=删除目录 $1
view_type_rename=将 $1 改名为 $2
0707010001b8d5000081a40000000000000002000000013ac038b700000122000000200000000000000000000000000000001c00000003reloc/webminlog/module.info   name=WebminLog
desc_hu=Webmin napl
desc_tr=Webmin Kay齮lar
category=webmin
desc=Webmin Actions Log
desc_pl=Log pracy Webmina
desc_fr=Contr鬺e des logs
desc_sv=Webmin-loggning
risk=low medium high
desc_es=Historiales de Acci髇 de Webmin
desc_zh_CN=Webmin 活动日志
desc_nl=Webmin Actie Log
  0707010001b8d6000081e40000000000000002000000013ac038b700000e4f000000200000000000000000000000000000001b00000003reloc/webminlog/search.cgi    #!/usr/local/bin/perl
# search.cgi
# Find webmin actions

require './webminlog-lib.pl';
require 'timelocal.pl';
&ReadParse();
&header($text{'search_title'}, "");
print "<hr>\n";

if ($in{'tall'} == 2) {
	@now = localtime(time());
	$from = timelocal(0, 0, 0, $now[3], $now[4], $now[5]);
	$to = timelocal(59, 59, 23, $now[3], $now[4], $now[5]);
	$in{'tall'} = 0;
	}
elsif ($in{'tall'} == 0) {
	$from = &parse_time('from');
	$to = &parse_time('to');
	$to = $to ? $to + 24*60*60 - 1 : time();
	}
open(LOG, $webmin_logfile);
while(<LOG>) {
	if (($act = &parse_logline($_)) &&
	    ($in{'uall'} || $in{'user'} eq $act->{'user'}) &&
	    ($in{'mall'} || $in{'module'} eq $act->{'module'}) &&
	    (!$in{'sid'} || $in{'sid'} eq $act->{'sid'}) &&
	    ($in{'tall'} || $from < $act->{'time'} && $to > $act->{'time'})) {
		push(@match, $act);
		}
	}
close(LOG);

if (@match) {
	if ($in{'sid'}) {
		print "<b>",&text('search_sid', "<tt>$match[0]->{'user'}</tt>",
				  "<tt>$in{'sid'}</tt>")," ..</b><p>\n";
		}
	elsif ($in{'uall'} && $in{'mall'} && $in{'tall'}) {
		print "<b>$text{'search_critall'} ..</b><p>\n";
		}
	else {
		@from = localtime($from); @to = localtime($to);
		$fromstr = sprintf "%2.2d/%s/%4.4d",
			$from[3], $text{"smonth_".($from[4]+1)}, $from[5]+1900;
		$tostr = sprintf "%2.2d/%s/%4.4d",
			$to[3], $text{"smonth_".($to[4]+1)}, $to[5]+1900;
		%minfo = &get_module_info($in{'module'}) if (!$in{'mall'});
		printf "<b>%s %s %s %s ..</b><p>\n",
			$text{'search_crit'},
			$in{'uall'} ? '' : &text('search_critu',
						 "<tt>$in{'user'}</tt>"),
			$in{'mall'} ? '' : &text('search_critm',
						 "<tt>$minfo{'desc'}</tt>"),
			$in{'tall'} ? '' : 
			  $fromstr eq $tostr ?  &text('search_critt2', $tostr) :
			    &text('search_critt', $fromstr, $tostr);
		}
	print "<table border width=100%>\n";
	print "<tr $tb> <td><b>$text{'search_action'}</b></td>\n",
	      "<td><b>$text{'search_module'}</b></td>\n",
	      "<td><b>$text{'search_user'}</b></td>\n",
	      "<td><b>$text{'search_host'}</b></td>\n",
	      "<td><b>$text{'search_date'}</b></td>\n",
	      "<td><b>$text{'search_time'}</b></td> </tr>\n";
	foreach $act (reverse(@match)) {
		local @tm = localtime($act->{'time'});
		local $m = $act->{'module'};
		local $d;
		$minfo = $minfo_cache{$m};
		if (!$minfo) {
			# first time seeing module ..
			local %minfo = &get_module_info($m);
			$minfo = $minfo_cache{$m} = \%minfo;
			if (-r "../$m/log_parser.pl") {
				&foreign_require($m, "log_parser.pl");
				$parser{$m}++;
				}
			}

		print "<tr $cb>\n";
		print "<td><a href='view.cgi?id=$act->{'id'}'>";
		$d = &foreign_call($m, "parse_webmin_log",
				  $act->{'user'}, $act->{'script'},
				  $act->{'action'}, $act->{'type'},
				  $act->{'object'}, $act->{'param'})
					if ($parser{$m});
		if ($d) {
			print $d;
			}
		elsif ($act->{'action'} eq '_config_') {
			print $text{'search_config'};
			}
		else {
			printf "%s %s %s\n",
				$act->{'action'},
				$act->{'type'} ? $act->{'type'} : '',
				$act->{'object'} ? $act->{'object'} : '';
			}
		print "</a></td>\n";
		print "<td>$minfo->{'desc'}</td>\n";
		print "<td>$act->{'user'}</td>\n";
		print "<td>$act->{'ip'}</td>\n";
		printf "<td>%2.2d/%s/%4.4d</td>\n",
			$tm[3], $text{"smonth_".($tm[4]+1)}, $tm[5]+1900;
		printf "<td>%2.2d:%2.2d:%2.2d</td>\n",
			$tm[2], $tm[1], $tm[0];
		print "</tr>\n";
		}
	print "</table><p>\n";
	}
else {
	print "<p><b>$text{'search_none'}</b><p>\n";
	}
print "<hr>\n";
&footer("", $text{'index_return'});

sub parse_time
{
local $d = $in{"$_[0]_d"};
local $m = $in{"$_[0]_m"};
local $y = $in{"$_[0]_y"};
local $rv;
eval { $rv = timelocal(0, 0, 0, $d, $m, $y-1900) };
return $@ ? 0 : $rv;
}
 0707010001b8d7000081e40000000000000002000000013ac038b700000bf3000000200000000000000000000000000000001900000003reloc/webminlog/view.cgi  #!/usr/local/bin/perl
# view.cgi
# Show details of the action, including changed files

require './webminlog-lib.pl';
&ReadParse();
&header($text{'view_title'}, "");
print "<hr>\n";

# find the log record to view
open(LOG, $webmin_logfile);
while(<LOG>) {
	if (($act = &parse_logline($_)) && $act->{'id'} eq $in{'id'}) {
		last;
		}
	}
close(LOG);
if (-r "../$act->{'module'}/log_parser.pl") {
	&foreign_require($act->{'module'}, "log_parser.pl");
	$parser++;
	}

# display info about the action
print "<table border width=100%>\n";
print "<tr $tb> <td><b>",&text('view_header', $act->{'id'}),"</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

$d = &foreign_call($act->{'module'}, "parse_webmin_log",
		   $act->{'user'}, $act->{'script'},
		   $act->{'action'}, $act->{'type'},
		   $act->{'object'}, $act->{'param'}, 1) if ($parser);
print "<tr> <td valign=top><b>$text{'view_action'}</b></td>\n";
if ($d) {
	print "<td colspan=3>$d</td> </tr>\n";
	}
elsif ($act->{'action'} eq '_config_') {
	print "<td colspan=3>$text{'search_config'}</td> </tr>";
	}
else {
	printf "<td colspan=3>%s %s %s</td> </tr>\n",
		$act->{'action'}, $act->{'type'} ? $act->{'type'} : '',
		$act->{'object'};
	}

print "<tr> <td><b>$text{'view_module'}</b></td>\n";
%minfo = &get_module_info($act->{'module'});
print "<td>$minfo{'desc'}</td>\n";
print "<td><b>$text{'view_script'}</b></td>\n";
print "<td><tt>$act->{'module'}/$act->{'script'}</tt></td> </tr>\n";

print "<tr> <td><b>$text{'view_user'}</b></td>\n";
print "<td>$act->{'user'}</td>\n";
print "<td><b>$text{'view_ip'}</b></td>\n";
print "<td>$act->{'ip'}</td> </tr>\n";

print "<tr>\n";
if ($act->{'sid'} ne '-') {
	print "<td><b>$text{'view_sid'}</b></td>\n";
	print "<td><a href='search.cgi?sid=$act->{'sid'}&uall=1&mall=1&tall=1'>$act->{'sid'}</a></td>\n";
	}
@tm = localtime($act->{'time'});
print "<td><b>$text{'view_time'}</b></td>\n";
printf "<td>%2.2d/%s/%4.4d %2.2d:%2.2d:%2.2d</td> </tr>\n",
	$tm[3], $text{"smonth_".($tm[4]+1)}, $tm[5]+1900,
	$tm[2], $tm[1], $tm[0];

print "</table></td></tr></table><p>\n";

# display modified files
$i = 0;
while(open(DIFF, "$ENV{'WEBMIN_VAR'}/diffs/$act->{'id'}.$i")) {
	local ($type, $object, $diff);
	local $line = <DIFF>;
	while(<DIFF>) { $diff .= $_; }
	close(DIFF);
	if ($line =~ /^(\/.*)/) {
		$type = 'modify'; $object = $1;
		}
	elsif ($line =~ /^(\S+)\s+(.*)/) {
		$type = $1; $object = $2;
		}
	local $t = $text{"view_type_$type"};
	if ($t =~ /\$2/ || !$diff) {
		print "<table border width=100%>\n";
		print "<tr $tb> <td><b>",
		      &text("view_type_$type", "<tt>$object</tt>",
			    "<tt>$diff</tt>"),"</b></td> </tr>\n";
		print "</table><p>\n";
		}
	else {
		print "<table border width=100%>\n";
		print "<tr $tb> <td><b>",&text("view_type_$type",
		      "<tt>$object</tt>"),"</b></td> </tr>\n";
		print "<tr $cb> <td><pre>";
		print &html_escape($diff);
		print "</pre></td> </tr></table><p>\n";
		}
	$i++;
	}

print "<b>$text{'view_nofiles'}</b><p>\n" if (!$i);

print "<hr>\n";
&footer($ENV{'HTTP_REFERER'}, $text{'search_return'});

 0707010001b8d8000081a40000000000000002000000013ac038b7000002d5000000200000000000000000000000000000002100000003reloc/webminlog/webminlog-lib.pl  # webminlog-lib.pl

do '../web-lib.pl';
&init_config();

sub parse_logline
{
if ($_[0] =~ /^(\d+)\.(\S+)\s+\[.*\]\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)(.*)/) {
	local $rv = { 'time' => $1, 'id' => "$1.$2",
		      'user' => $3, 'sid' => $4,
		      'ip' => $5, 'module' => $6,
		      'script' => $7, 'action' => $8,
		      'type' => $9, 'object' => $10 };
	local %param;
	local $p = $11;
	while($p =~ /^\s*([^=\s]+)='([^']*)'(.*)$/) {
		if (defined($param{$1})) {
			$param{$1} .= "\0".$2;
			}
		else {
			$param{$1} = $2;
			}
		$p = $3;
		}
	foreach $k (keys %param) {
		$param{$k} =~ s/%(..)/pack("c",hex($1))/ge;
		}
	$rv->{'param'} = \%param;
	return $rv;
	}
else {
	return undef;
	}
}

1;

   07070100025990000041ed0000000000000001000000053ac03cb100000000000000200000000000000000000000000000000d00000003reloc/wuftpd  07070100025991000081a40000000000000002000000013ac038a7000000bc000000200000000000000000000000000000001800000003reloc/wuftpd/config-aix   ftpd_path=/usr/local/bin/ftpd
ftpgroups=/etc/ftpgroups
ftpconversions=/etc/ftpconversions
ftphosts=/etc/ftphosts
pid_file=/var/run/ftpd.pid
ftpaccess=/etc/ftpaccess
ftpusers=/etc/ftpusers
07070100025992000081a40000000000000002000000013ac038a7000000ba000000200000000000000000000000000000002000000003reloc/wuftpd/config-corel-linux   ftpgroups=/etc/ftpgroups
ftpd_path=/usr/sbin/in.ftpd
ftphosts=/etc/ftphosts
ftpconversions=/etc/ftpconversions
pid_file=/var/run/ftpd.pid
ftpusers=/etc/ftpusers
ftpaccess=/etc/ftpaccess
  07070100025993000081a40000000000000002000000013ac038a7000000ba000000200000000000000000000000000000002100000003reloc/wuftpd/config-debian-linux  ftpgroups=/etc/ftpgroups
ftpd_path=/usr/sbin/in.ftpd
ftphosts=/etc/ftphosts
ftpconversions=/etc/ftpconversions
pid_file=/var/run/ftpd.pid
ftpusers=/etc/ftpusers
ftpaccess=/etc/ftpaccess
  07070100025994000081a40000000000000002000000013ac038a7000000ba000000200000000000000000000000000000001c00000003reloc/wuftpd/config-freebsd   ftpgroups=/etc/ftpgroups
ftpd_path=/usr/sbin/in.ftpd
ftphosts=/etc/ftphosts
ftpconversions=/etc/ftpconversions
pid_file=/var/run/ftpd.pid
ftpusers=/etc/ftpusers
ftpaccess=/etc/ftpaccess
  07070100025995000081a40000000000000002000000013ac038a7000000ba000000200000000000000000000000000000001900000003reloc/wuftpd/config-hpux  ftpd_path=/usr/sbin/in.ftpd
ftpgroups=/etc/ftpgroups
ftpconversions=/etc/ftpconversions
ftphosts=/etc/ftphosts
pid_file=/var/run/ftpd.pid
ftpaccess=/etc/ftpaccess
ftpusers=/etc/ftpusers
  07070100025996000081a40000000000000002000000013ac038a7000000ba000000200000000000000000000000000000001e00000003reloc/wuftpd/config-lfs-linux ftpd_path=/usr/sbin/in.ftpd
ftpgroups=/etc/ftpgroups
ftpconversions=/etc/ftpconversions
ftphosts=/etc/ftphosts
ftpaccess=/etc/ftpaccess
ftpusers=/etc/ftpusers
pid_file=/var/run/ftpd.pid
  07070100025997000081a40000000000000002000000013ac038a7000000ba000000200000000000000000000000000000001a00000003reloc/wuftpd/config-macos ftpd_path=/usr/sbin/in.ftpd
ftpgroups=/etc/ftpgroups
ftpconversions=/etc/ftpconversions
ftphosts=/etc/ftphosts
pid_file=/var/run/ftpd.pid
ftpaccess=/etc/ftpaccess
ftpusers=/etc/ftpusers
  07070100025998000081a40000000000000002000000013ac038a7000000ba000000200000000000000000000000000000001f00000003reloc/wuftpd/config-open-linux    ftpgroups=/etc/ftpgroups
ftpd_path=/usr/sbin/in.ftpd
ftphosts=/etc/ftphosts
ftpconversions=/etc/ftpconversions
pid_file=/var/run/ftpd.pid
ftpusers=/etc/ftpusers
ftpaccess=/etc/ftpaccess
  07070100025999000081a40000000000000002000000013ac038a7000000ba000000200000000000000000000000000000001c00000003reloc/wuftpd/config-openbsd   ftpgroups=/etc/ftpgroups
ftpd_path=/usr/sbin/in.ftpd
ftphosts=/etc/ftphosts
ftpconversions=/etc/ftpconversions
pid_file=/var/run/ftpd.pid
ftpusers=/etc/ftpusers
ftpaccess=/etc/ftpaccess
  0707010002599a000081a40000000000000002000000013ac038a7000000ba000000200000000000000000000000000000001900000003reloc/wuftpd/config-osf1  ftpd_path=/usr/sbin/in.ftpd
ftpgroups=/etc/ftpgroups
ftpconversions=/etc/ftpconversions
ftphosts=/etc/ftphosts
pid_file=/var/run/ftpd.pid
ftpaccess=/etc/ftpaccess
ftpusers=/etc/ftpusers
  0707010002599b000081a40000000000000002000000013ac038a7000000ba000000200000000000000000000000000000002100000003reloc/wuftpd/config-redhat-linux  ftpgroups=/etc/ftpgroups
ftpd_path=/usr/sbin/in.ftpd
ftphosts=/etc/ftphosts
ftpconversions=/etc/ftpconversions
pid_file=/var/run/ftpd.pid
ftpusers=/etc/ftpusers
ftpaccess=/etc/ftpaccess
  0707010002599c000081a40000000000000002000000013ac038a7000000ba000000200000000000000000000000000000002400000003reloc/wuftpd/config-slackware-linux   ftpgroups=/etc/ftpgroups
ftpd_path=/usr/sbin/wu.ftpd
ftphosts=/etc/ftphosts
ftpconversions=/etc/ftpconversions
pid_file=/var/run/ftpd.pid
ftpusers=/etc/ftpusers
ftpaccess=/etc/ftpaccess
  0707010002599d000081a40000000000000002000000013ac038a7000000ba000000200000000000000000000000000000001c00000003reloc/wuftpd/config-solaris   ftpd_path=/usr/sbin/in.ftpd
ftpgroups=/etc/ftpgroups
ftpconversions=/etc/ftpconversions
ftphosts=/etc/ftphosts
pid_file=/var/run/ftpd.pid
ftpaccess=/etc/ftpaccess
ftpusers=/etc/ftpusers
  0707010002599e000081a40000000000000002000000013ac038a7000000ba000000200000000000000000000000000000001f00000003reloc/wuftpd/config-suse-linux    ftpgroups=/etc/ftpgroups
ftpd_path=/usr/sbin/wu.ftpd
ftphosts=/etc/ftphosts
ftpconversions=/etc/ftpconversions
pid_file=/var/run/ftpd.pid
ftpusers=/etc/ftpusers
ftpaccess=/etc/ftpaccess
  0707010002599f000081a40000000000000002000000013ac038a7000000d3000000200000000000000000000000000000002000000003reloc/wuftpd/config-turbo-linux   ftpgroups=/etc/ftpd/ftpgroups
ftpd_path=/usr/sbin/in.ftpd
ftphosts=/etc/ftpd/ftphosts
ftpconversions=/etc/ftpd/ftpconversions
pid_file=/var/run/ftpd.pid
ftpusers=/etc/ftpd/ftpusers
ftpaccess=/etc/ftpd/ftpaccess
 070701000259a0000081a40000000000000002000000013ac038a70000010d000000200000000000000000000000000000001900000003reloc/wuftpd/config.info  ftpd_path=Full path to wuftpd,0
ftpaccess=Full path to ftpaccess file,0
ftpconversions=Full path to ftpconversions file,0
ftpgroups=Full path to ftpgroups file,0
ftphosts=Full path to ftphosts file,0
ftpusers=Full path to ftpusers file,0
pid_file=FTP server PID file,0
   070701000259a1000081a40000000000000002000000013ac038a700000133000000200000000000000000000000000000001c00000003reloc/wuftpd/config.info.de   ftpd_path=Absoluter Pfad zu wuftpd,0
ftpaccess=Absoluter Pfad zur ftpaccess Datei,0
ftpconversions=Absoluter Pfad zur ftpconversions Datei,0
ftpgroups=Absoluter Pfad zur ftpgroups Datei,0
ftphosts=Absoluter Pfad zur ftphosts Datei,0
ftpusers=Absoluter Pfad zur ftpusers Datei,0
pid_file=FTP Server PID Datei 070701000259a2000081a40000000000000002000000013ac038a700000162000000200000000000000000000000000000001c00000003reloc/wuftpd/config.info.es   ftpd_path=Trayectoria completa a wuftpd,0
ftpaccess=Trayectoria completa al archivo ftpaccess,0
ftpconversions=Trayectoria completa al archivo ftpconversions,0
ftpgroups=Trayectoria completa al archivo ftpgroups,0
ftphosts=Trayectoria completa al archivo ftphosts,0
ftpusers=Trayectoria completa al archivo ftpusers,0
pid_file=Archivo PID del servidor,0
  070701000259a3000081a40000000000000002000000013ac038a700000124000000200000000000000000000000000000001c00000003reloc/wuftpd/config.info.fr   ftpd_path=Chemin de wuftpd,0
ftpaccess=Chemin du fichier ftpaccess,0
ftpconversions=Chemin du fichier ftpconversions,0
ftpgroups=Chemin du fichier ftpgroups,0
ftphosts=Chemin du fichier ftphosts,0
ftpusers=Chemin du fichier ftpusers,0
pid_file=Fichier de num閞o de processus du serveur ftp,0
070701000259a4000081a40000000000000002000000013ac038a700000170000000200000000000000000000000000000001c00000003reloc/wuftpd/config.info.pl   ftpd_path=Pe硁a 禼ie縦a do <tt>wuftpd</tt>,0
ftpaccess=Pe硁a 禼ie縦a do pliku <tt>ftpaccess</tt>,0
ftpconversions=Pe硁a 禼ie縦a do pliku <tt>ftpconversions</tt>,0
ftpgroups=Pe硁a 禼ie縦a do pliku <tt>ftpgroups</tt>,0
ftphosts=Pe硁a 禼ie縦a do pliku <tt>ftphosts</tt>,0
ftpusers=Pe硁a 禼ie縦a do pliku <tt>ftpusers</tt>,0
pid_file=Plik z&nbsp;numerem PID serwera FTP,0
070701000259a5000081a40000000000000002000000013ac038a700000119000000200000000000000000000000000000001f00000003reloc/wuftpd/config.info.ru_RU    ftpgroups=项腠 矬螯  羿殡 ftpgroups,0
ftpd_path=项腠 矬螯  wuftpd,0
ftphosts=项腠 矬螯  羿殡 ftphosts,0
ftpconversions=项腠 矬螯  羿殡 ftpconversions,0
pid_file=PID 羿殡 FTP 皴疴屦,0
ftpusers=项腠 矬螯  羿殡 ftpusers,0
ftpaccess=项腠 矬螯  羿殡 ftpaccess,0
   070701000259a6000081a40000000000000002000000013ac038a700000119000000200000000000000000000000000000001f00000003reloc/wuftpd/config.info.ru_SU    ftpd_path=鹣涛偈 姓载  wuftpd,0
ftpaccess=鹣涛偈 姓载  屏侍 ftpaccess,0
ftpconversions=鹣涛偈 姓载  屏侍 ftpconversions,0
ftpgroups=鹣涛偈 姓载  屏侍 ftpgroups,0
ftphosts=鹣涛偈 姓载  屏侍 ftphosts,0
ftpusers=鹣涛偈 姓载  屏侍 ftpusers,0
pid_file=PID 屏侍 FTP 优易乓,0
   070701000259a7000081a40000000000000002000000013ac038a700000149000000200000000000000000000000000000001c00000003reloc/wuftpd/config.info.sv   ftpd_path=Fullst鋘dig s鰇v鋑 till wuftpd,0
ftpaccess=Fullst鋘dig s鰇v鋑 till ftpaccess-fil,0
ftpconversions=Fullst鋘dig s鰇v鋑 till ftpconversions-fil,0
ftpgroups=Fullst鋘dig s鰇v鋑 till ftpgroups-fil,0
ftphosts=Fullst鋘dig s鰇v鋑 till ftphosts-fil,0
ftpusers=Fullst鋘dig s鰇v鋑 till ftpusers-fil,0
pid_file=FTP-server-PID-fil,0
   070701000259a8000081a40000000000000002000000013ac038a70000011c000000200000000000000000000000000000001c00000003reloc/wuftpd/config.info.tr   ftpd_path=wuftpd'nin tam yolu,0
ftpaccess=ftpaccess dosyas齨齨 tam yolu,0
ftpconversions=ftpconversions dosyas齨齨 tam yolu,0
ftpgroups=ftpgroups dosyas齨齨 tam yolu,0
ftphosts=ftphosts dosyas齨齨 tam yolu,0
ftpusers=ftpusers dosyas齨齨 tam yolu,0
pid_file=FTP sunucusu PID dosyas,0
070701000259a9000081a40000000000000002000000013ac038a7000000e0000000200000000000000000000000000000001f00000003reloc/wuftpd/config.info.zh_CN    ftpd_path=wuftpd 的全路径,0
ftpaccess=ftp存取控制文件的全路径,0
ftpconversions=ftp 转换文件的全路径,0
ftpgroups=ftp 组文件的全路径,0
ftphosts=ftp主机文件的全路径,0
ftpusers=ftp用户文件的全路径,0
pid_file=FTP 服务 PID 文件,0
070701000259aa000081a40000000000000002000000013ac038a7000000fa000000200000000000000000000000000000002400000003reloc/wuftpd/config.info.zh_TW.Big5   ftpd_path= weftpd Ч俱隔畖,0
ftpaccess= ftpaccess Ч俱隔畖,0
ftpconversions= ftpconversions Ч俱隔畖,0
ftpgroups= ftpgroups Ч俱隔畖,0
ftphosts= ftphosts Ч俱隔畖,0
ftpusers= ftpusers Ч俱隔畖,0
pid_file=FTP 狝竟 PID 郎,0
  070701000259ab000081e40000000000000002000000013ac038a700002104000000200000000000000000000000000000001a00000003reloc/wuftpd/edit_acl.cgi #!/usr/local/bin/perl
# edit_acl.cgi
# Display access control options

require './wuftpd-lib.pl';
&header($text{'acl_title'}, "", "acl");
print "<hr>\n";

$conf = &get_ftpaccess();
@class = &find_value("class", $conf);

print "<form action=save_acl.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'acl_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

# Display addresses to deny from
@deny = ( &find_value("deny", $conf), [ ] );
print "<tr> <td valign=top><b>$text{'acl_deny'}</b></td>\n";
print "<td colspan=3><table border>\n";
print "<tr $tb> <td><b>$text{'acl_daddrs'}</b></td>\n",
      "<td><b>$text{'acl_dmsg'}</b></td> </tr>\n";
$i = 0;
foreach $d (@deny) {
	print "<tr $cb>\n";
	print "<td><input name=daddrs_$i size=20 value='$d->[0]'></td>\n";
	print "<td><input name=dmsg_$i size=35 value='$d->[1]'></td>\n";
	print "</tr>\n";
	$i++;
	}
print "</table></td> </tr>\n";
print "<tr> <td colspan=4><hr></td> </tr>\n";

# Display concurrent login limits
@limit = ( &find_value("limit", $conf), [ ] );
print "<tr> <td valign=top><b>$text{'acl_limit'}</b></td>\n";
print "<td colspan=3><table border>\n";
print "<tr $tb> <td><b>$text{'acl_class'}</b></td>\n",
      "<td><b>$text{'acl_n'}</b></td>\n",
      "<td><b>$text{'acl_times'}</b></td>\n",
      "<td><b>$text{'acl_lmsg'}</b></td> </tr>\n";
$i = 0;
foreach $l (@limit) {
	print "<tr $cb>\n";
	print "<td><select name=lclass_$i>\n";
	printf "<option value='' %s>&nbsp;\n", $l->[0] ? '' : 'checked';
	foreach $c (@class) {
		printf "<option %s>%s\n",
			$l->[0] eq $c->[0] ? 'selected' : '', $c->[0];
		}
	print "</select></td>\n";

	printf "<td><input type=radio name=ln_def_$i value=1 %s> %s\n",
		$l->[1] =~ /^\d+$/ ? '' : 'checked', $text{'acl_unlimited'};
	printf "<input type=radio name=ln_def_$i value=0 %s>\n",
		$l->[1] =~ /^\d+$/ ? 'checked' : '';
	printf "<input name=ln_$i size=8 value='%s'></td>\n",
		$l->[1] =~ /^\d+$/ ? $l->[1] : '';

	printf "<td><input type=radio name=ltimes_def_$i value=1 %s> %s\n",
		lc($l->[2]) eq 'any' ? 'checked' : '', $text{'acl_any'};
	printf "<input type=radio name=ltimes_def_$i value=0 %s>\n",
		lc($l->[2]) eq 'any' ? '' : 'checked';
	printf "<input name=ltimes_$i size=10 value='%s'></td>\n",
		lc($l->[2]) eq 'any' ? '' : $l->[2];

	print "<td><input name=lmsg_$i size=20 value='$l->[3]'></td>\n";
	print "</tr>\n";
	$i++;
	}
print "</table></td> </tr>\n";
print "<tr> <td colspan=4><hr></td> </tr>\n";

# Display file and byte limits
@fblimit = sort { $a->{'line'} <=> $b->{'line'} }
		( &find("file-limit", $conf), &find("byte-limit", $conf) );
push(@fblimit, { });
print "<tr> <td valign=top><b>$text{'acl_file'}</b></td>\n";
print "<td colspan=3><table border>\n";
print "<tr $tb> <td><b>$text{'acl_fblimit'}</b></td>\n",
      "<td><b>$text{'acl_inout'}</b></td>\n",
      "<td><b>$text{'acl_raw'}</b></td>\n",
      "<td><b>$text{'acl_count'}</b></td>\n",
      "<td><b>$text{'acl_class'}</b></td> </tr>\n";
$i = 0;
foreach $l (@fblimit) {
	$f = $l->{'values'};
	splice(@$f, 0, 0, '0') if ($f->[0] ne 'raw');
	print "<tr $cb>\n";
	print "<td><select name=fblimit_$i>\n";
	printf "<option value='' %s>&nbsp;\n",
		$l->{'name'} ? '' : 'selected';
	printf "<option value=file-limit %s>%s\n",
		$l->{'name'} eq 'file-limit' ? 'selected' : '',
		$text{'acl_flimit'};
	printf "<option value=byte-limit %s>%s\n",
		$l->{'name'} eq 'byte-limit' ? 'selected' : '',
		$text{'acl_blimit'};
	print "</select></td>\n";

	print "<td><select name=fbinout_$i>\n";
	printf "<option value=total %s>%s\n",
		$f->[1] eq 'total' ? 'selected' : '', $text{'acl_total'};
	printf "<option value=in %s>%s\n",
		$f->[1] eq 'in' ? 'selected' : '', $text{'acl_in'};
	printf "<option value=out %s>%s\n",
		$f->[1] eq 'out' ? 'selected' : '', $text{'acl_out'};
	print "</select></td>\n";

	printf "<td><input type=radio name=fbraw_$i value=0 %s> %s\n",
		$f->[0] eq 'raw' ? '' : 'checked', $text{'yes'};
	printf "<input type=radio name=fbraw_$i value=1 %s> %s</td>\n",
		$f->[0] eq 'raw' ? 'checked' : '', $text{'no'};

	print "<td><input name=fbcount_$i size=10 value='$f->[2]'></td>\n";

	print "<td><select name=fbclass_$i>\n";
	printf "<option value='' %s> %s\n",
		$f->[3] ? '' : 'selected', $text{'acl_all'};
	foreach $c (@class) {
		printf "<option %s>%s\n",
			$f->[3] eq $c->[0] ? 'selected' : '', $c->[0];
		}
	print "</select></td>\n";
	print "</tr>\n";
	$i++;
	}
print "</table></td> </tr>\n";
print "<tr> <td colspan=4><hr></td> </tr>\n";

# File access controls
@noret = ( &find_value("noretrieve", $conf), [ ] );
print "<tr> <td valign=top><b>$text{'acl_noret'}</b></td>\n";
print "<td colspan=3><table border>\n";
print "<tr $tb> <td><b>$text{'acl_nfiles'}</b></td>\n",
      "<td><b>$text{'acl_nrel'}</b></td>\n",
      "<td><b>$text{'acl_nclass'}</b></td> </tr>\n";
$i = 0;
foreach $n (@noret) {
	local (@f, %c);
	foreach $nn (@$n) {
		if ($nn =~ /^class=(\S+)/) { $c{$1}++; }
		elsif ($nn !~ /^(absolute|relative)$/) { push(@f, $nn); }
		}
	print "<tr $cb>\n";
	printf "<td><input name=nfiles_$i size=30 value='%s'></td>\n",
		join(" ", @f);
	printf "<td><input type=radio name=nrel_$i value=1 %s> %s\n",
		$n->[0] eq 'relative' ? 'checked' : '', $text{'yes'};
	printf "<input type=radio name=nrel_$i value=0 %s> %s</td>\n",
		$n->[0] eq 'relative' ? '' : 'checked', $text{'no'};
	print "<td>\n";
	foreach $c (@class) {
		printf "<input type=checkbox name=nclass_$i value=%s %s> %s\n",
			$c->[0], !%c || $c{$c->[0]} ? 'checked' : '', $c->[0];
		}
	print "</tr>\n";
	$i++;
	}
print "</table></td> </tr>\n";

@allowret = ( &find_value("allow-retrieve", $conf), [ ] );
print "<tr> <td valign=top><b>$text{'acl_allowret'}</b></td>\n";
print "<td colspan=3><table border>\n";
print "<tr $tb> <td><b>$text{'acl_afiles'}</b></td>\n",
      "<td><b>$text{'acl_arel'}</b></td>\n",
      "<td><b>$text{'acl_aclass'}</b></td> </tr>\n";
$i = 0;
foreach $n (@allowret) {
	local (@f, %c);
	foreach $nn (@$n) {
		if ($nn =~ /^class=(\S+)/) { $c{$1}++; }
		elsif ($nn !~ /^(absolute|relative)$/) { push(@f, $nn); }
		}
	print "<tr $cb>\n";
	printf "<td><input name=afiles_$i size=30 value='%s'></td>\n",
		join(" ", @f);
	printf "<td><input type=radio name=arel_$i value=1 %s> %s\n",
		$n->[0] eq 'relative' ? 'checked' : '', $text{'yes'};
	printf "<input type=radio name=arel_$i value=0 %s> %s</td>\n",
		$n->[0] eq 'relative' ? '' : 'checked', $text{'no'};
	print "<td>\n";
	foreach $c (@class) {
		printf "<input type=checkbox name=aclass_$i value=%s %s> %s\n",
			$c->[0], !%c || $c{$c->[0]} ? 'checked' : '', $c->[0];
		}
	print "</tr>\n";
	$i++;
	}
print "</table></td> </tr>\n";
print "<tr> <td colspan=4><hr></td> </tr>\n";

# Display time-limit options
foreach $l (&find_value("limit-time", $conf)) {
	if ($l->[0] eq '*') {
		$limit{'anonymous'} = $limit{'guest'} = $l->[1];
		}
	else {
		$limit{$l->[0]} = $l->[1];
		}
	}
print "<tr> <td><b>$text{'acl_alimit'}</b></td>\n";
printf "<td><input type=radio name=alimit_def value=1 %s> %s\n",
	$limit{'anonymous'} ? '' : 'checked', $text{'acl_unlimited'};
printf "<input type=radio name=alimit_def value=0 %s>\n",
	$limit{'anonymous'} ? 'checked' : '';
printf "<input name=alimit size=6 value='%s'> %s</td>\n",
	$limit{'anonymous'}, $text{'acl_mins'};
print "<td><b>$text{'acl_glimit'}</b></td>\n";
printf "<td><input type=radio name=glimit_def value=1 %s> %s\n",
	$limit{'guest'} ? '' : 'checked', $text{'acl_unlimited'};
printf "<input type=radio name=glimit_def value=0 %s>\n",
	$limit{'guest'} ? 'checked' : '';
printf "<input name=glimit size=6 value='%s'> %s</td> </tr>\n",
	$limit{'guest'}, $text{'acl_mins'};

# Other security options
$lf = &find_value('loginfails', $conf);
print "<tr> <td><b>$text{'acl_fails'}</b></td>\n";
printf "<td><input type=radio name=fails_def value=1 %s> %s\n",
	$lf ? '' : 'checked', $text{'default'};
printf "<input type=radio name=fails_def value=0 %s>\n",
	$lf ? 'checked' : '';
print "<input name=fails size=6 value='$lf->[0]'></td>\n";

$pr = &find_value('private', $conf); 
print "<td><b>$text{'acl_private'}</b></td>\n";
printf "<td><input type=radio name=private value=yes %s> %s\n",
	$pr->[0] eq 'yes' ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=private value=no %s> %s</td> </tr>\n",
	$pr->[0] eq 'yes' ? '' : 'checked',  $text{'no'};

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

070701000259ac000081e40000000000000002000000013ac038a7000004fd000000200000000000000000000000000000001c00000003reloc/wuftpd/edit_alias.cgi   #!/usr/local/bin/perl
# edit_alias.cgi
# Display alias and cd path options

require './wuftpd-lib.pl';
&header($text{'alias_title'}, "", "alias");
print "<hr>\n";
$conf = &get_ftpaccess();

print "<form action=save_alias.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'alias_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

# display alias options
@alias = ( &find_value('alias', $conf), [ ] );
print "<tr> <td valign=top><b>$text{'alias_alias'}</b></td>\n";
print "<td><table border>\n";
print "<tr $tb> <td><b>$text{'alias_from'}</b></td> ",
      "<td><b>$text{'alias_to'}</b></td> </tr>\n";
$i = 0;
foreach $a (@alias) {
	print "<tr $cb>\n";
	print "<td><input name=from_$i size=15 value='$a->[0]'></td>\n";
	print "<td><input name=to_$i size=25 value='$a->[1]'></td>\n";
	print "</tr>\n";
	$i++;
	}
print "</table></td> </tr>\n";

# display cdpath options
@cdpath = map { $_->[0] } &find_value('cdpath', $conf);
print "<tr> <td valign=top><b>$text{'alias_cdpath'}</b></td>\n";
print "<td><textarea name=cdpath rows=5 cols=40>",
	join("\n", @cdpath),"</textarea></td> </tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

   070701000259ae000081e40000000000000002000000013ac038a700000ea4000000200000000000000000000000000000001b00000003reloc/wuftpd/edit_anon.cgi    #!/usr/local/bin/perl
# edit_anon.cgi
# Display anonymous FTP options

require './wuftpd-lib.pl';
&header($text{'anon_title'}, "", "anon");
print "<hr>\n";

$conf = &get_ftpaccess();
@class = &find_value("class", $conf);

if (!getpwnam("ftp")) {
	print "<b>$text{'anon_eftp'}</b> <p>\n";
	}

print "<form action=save_anon.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'anon_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

# Display anonymous-root options
@root = ( &find_value('anonymous-root', $conf), [ ] );
print "<tr> <td valign=top><b>$text{'anon_root'}</b></td>\n";
print "<td colspan=3><table border>\n";
print "<tr $tb> <td><b>$text{'anon_dir'}</b></td>\n",
      "<td><b>$text{'anon_class'}</b></td> </tr>\n";
$i = 0;
foreach $r (@root) {
	print "<tr $cb>\n";
	printf "<td><input name=dir_$i size=35 value='%s'> %s</td>\n",
		$r->[0], &file_chooser_button("dir_$i", 1);
	print "<td><select name=class_$i>\n";
	printf "<option value='' %s>%s\n",
		$r->[1] ? '' : 'selected', $text{'anon_any'};
	foreach $c (@class) {
		printf "<option %s>%s\n",
			$r->[1] eq $c->[0] ? 'selected' : '', $c->[0];
		}
	print "</select></td> </tr>\n";
	$i++;
	}
print "</table></td> </tr>\n";

# Display guest-root options
@root = ( &find_value('guest-root', $conf), [ ] );
print "<tr> <td valign=top><b>$text{'anon_groot'}</b></td>\n";
print "<td colspan=3><table border>\n";
print "<tr $tb> <td><b>$text{'anon_dir'}</b></td>\n",
      "<td><b>$text{'anon_uids'}</b></td> </tr>\n";
$i = 0;
foreach $r (@root) {
	print "<tr $cb>\n";
	printf "<td><input name=gdir_$i size=35 value='%s'> %s</td>\n",
		$r->[0], &file_chooser_button("gdir_$i", 1);
	printf "<td><input name=uids_$i size=20 value='%s'> %s</td>\n",
		join(" ", @$r[1..@$r-1]),
		&user_chooser_button("uids_$i", 1);
	print "</tr>\n";
	$i++;
	}
print "</table></td> </tr>\n";

print "<tr> <td colspan=4><hr></td> </tr>\n";

# Display autogroup options
@auto = ( &find_value('autogroup', $conf), [ ] );
print "<tr> <td valign=top><b>$text{'anon_auto'}</b></td>\n";
print "<td colspan=3><table border>\n";
print "<tr $tb> <td><b>$text{'anon_group'}</b></td>\n",
      "<td><b>$text{'anon_classes'}</b></td> </tr>\n";
$i = 0;
foreach $a (@auto) {
	local %aclass;
	map { $aclass{$_}++ } @$a[1..@$a-1];
	print "<tr $cb>\n";
	print "<td><input name=agroup_$i size=8 value='$a->[0]'> ",
		&group_chooser_button("agroup_$i"),"</td>\n";
	print "<td>\n";
	foreach $c (@class) {
		printf "<input name=aclass_$i type=checkbox %s value=%s> %s\n",
			$aclass{$c->[0]} ? 'checked' : '', $c->[0], $c->[0];
		}
	print "</td> </tr>\n";
	$i++;
	}
print "</table></td> </tr>\n";
print "<tr> <td colspan=4><hr></td> </tr>\n";

# Display passwd-check field
$p = &find_value('passwd-check', $conf);
print "<tr> <td><b>$text{'anon_passwd'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=passwd_def value=1 %s> %s\n",
	$p ? '' : 'checked',  $text{'default'};
printf "<input type=radio name=passwd_def value=0 %s>\n",
	$p ? 'checked' : '';
print "<select name=level>\n";
foreach $l ('none', 'trivial', 'rfc822') {
	printf "<option %s value='%s'>%s\n",
		$p->[0] eq $l ? 'selected' : '', $l, $text{"anon_$l"};
	}
print "</select> <select name=action>\n";
foreach $a ('enforce', 'warn') {
	printf "<option %s value='%s'>%s\n",
		$p->[1] eq $a ? 'selected' : '', $a, $text{"anon_$a"};
	}
print "</select></td> </tr>\n";

print "<tr> <td><b>$text{'anon_email'}</b></td>\n";
printf "<td colspan=3><input name=email size=50 value='%s'></td> </tr>\n",
	join(" ", map { $_->[0] } &find_value('deny-email', $conf));

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

070701000259af000081e40000000000000002000000013ac038a700000b1d000000200000000000000000000000000000001c00000003reloc/wuftpd/edit_class.cgi   #!/usr/local/bin/perl
# edit_class.cgi
# Display a list of user classes for editing

require './wuftpd-lib.pl';
&header($text{'class_title'}, "", "class");
print "<hr>\n";
$conf = &get_ftpaccess();

print "<form action=save_class.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'class_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

@class = ( &find_value("class", $conf), [ ] );
print "<tr> <td valign=top><b>$text{'class_class'}</b></td>\n";
print "<td colspan=3><table border width=100%>\n";
print "<tr $tb> <td><b>$text{'class_name'}</b></td> ",
      "<td><b>$text{'class_types'}</b></td> ",
      "<td><b>$text{'class_addrs'}</b></td> </tr>\n";
$i = 0;
foreach $c (@class) {
	print "<tr $cb>\n";
	print "<td><input name=class_$i size=10 value='$c->[0]'></td>\n";
	local %types;
	map { $types{$_}++ } split(/,/, $c->[1]);
	printf "<td><input type=checkbox name=types_$i value=real %s> %s\n",
		$types{'real'} ? 'checked' : '', $text{'class_real'};
	printf "<input type=checkbox name=types_$i value=anonymous %s> %s\n",
		$types{'anonymous'} ? 'checked' : '', $text{'class_anonymous'};
	printf "<input type=checkbox name=types_$i value=guest %s> %s</td>\n",
		$types{'guest'} ? 'checked' : '', $text{'class_guest'};
	printf "<td><input name=addrs_$i size=30 value='%s'></td>\n",
		join(" ", @$c[2..@$c-1]);
	print "</tr>\n";
	$i++;
	}
print "</table></td> </tr>\n";

print "<tr> <td colspan=4><hr></td> </tr>\n";
foreach $g ('guestuser', 'guestgroup', 'realuser', 'realgroup') {
	print "<tr> <td><b>",$text{"class_$g"},"</b></td> <td colspan=3>\n";
	printf "<input name=%s size=50 value='%s'> %s</td> </tr>\n",
		$g, &join_all($g, $conf),
		$g =~ /user$/ ? &user_chooser_button($g, 1)
			      : &group_chooser_button($g, 1);
	}

print "<tr> <td colspan=4><hr></td> </tr>\n";
print "<tr> <td><b>",&text('class_ftpusers', "<tt>$config{'ftpusers'}</tt>"),
      "</b></td> <td colspan=3>\n";
open(FTPUSERS, $config{'ftpusers'});
while(<FTPUSERS>) {
	s/\r|\n//g;
	s/#.*$//;
	push(@ftpusers, $_) if (/\S/);
	}
close(FTPUSERS);
printf "<input name=ftpusers size=40 value='%s'> %s</td> </tr>\n",
	join(" ", @ftpusers), &user_chooser_button('ftpusers', 1);
foreach $g ('deny-uid', 'deny-gid', 'allow-uid', 'allow-gid') {
	($fg = $g) =~ s/-/_/g;
	print "<tr> <td><b>",$text{"class_$fg"},"</b></td> <td colspan=3>\n";
	printf "<input name=%s size=40 value='%s'> %s</td> </tr>\n",
		$fg, &join_all($g, $conf),
		$g =~ /uid$/ ? &user_chooser_button($fg, 1)
			     : &group_chooser_button($fg, 1);
	}

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

# join_all(name, &config)
sub join_all
{
local (@rv, $v);
foreach $v (&find_value($_[0], $_[1])) {
	push(@rv, @$v);
	}
return join(" ", @rv);
}

   070701000259b1000081e40000000000000002000000013ac038a70000093b000000200000000000000000000000000000001a00000003reloc/wuftpd/edit_log.cgi #!/usr/local/bin/perl
# edit_log.cgi
# Display logging options

require './wuftpd-lib.pl';
&header($text{'log_title'}, "", "log");
print "<hr>\n";

$conf = &get_ftpaccess();
foreach $l (&find_value('log', $conf)) {
	$log{$l->[0]} = $l;
	}

print "<form action=save_log.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'log_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

# Display log commands option
map { $commands{$_}++ } split(/,/, $log{'commands'}->[1]);
print "<tr> <td><b>$text{'log_commands'}</b></td> <td>\n";
foreach $c ('anonymous', 'guest', 'real') {
	printf "<input type=checkbox name=commands value=$c %s> %s\n",
		$commands{$c} ? 'checked' : '', $text{"log_$c"};
	}
print "</td> </tr>\n";

# Display log transfers option
map { $transfers{$_}++ } split(/,/, $log{'transfers'}->[1]);
print "<tr> <td valign=top><b>$text{'log_trans'}</b></td> <td>\n";
foreach $c ('anonymous', 'guest', 'real') {
	printf "<input type=checkbox name=transfers value=$c %s> %s\n",
		$transfers{$c} ? 'checked' : '', $text{"log_$c"};
	}
print "<br><b>$text{'log_dir'}</b>\n";
$d = $log{'transfers'}->[2];
printf "<input type=radio name=direction value=inbound %s> %s\n",
	$d eq 'inbound' ? 'checked' : '', $text{'log_inbound'};
printf "<input type=radio name=direction value=outbound %s> %s\n",
	$d eq 'outbound' ? 'checked' : '', $text{'log_outbound'};
printf "<input type=radio name=direction value=inbound,outbound %s> %s\n",
	$d =~ /inbound/ && $d =~ /outbound/ ? 'checked' : '', $text{'log_both'};
print "</tr> </tr>\n";

# Display log syslog option
print "<tr> <td><b>$text{'log_to'}</b></td> <td>\n";
printf "<input type=radio name=syslog value=1 %s> %s\n",
	$log{'syslog'} ? 'checked' : '', $text{'log_syslog'};
printf "<input type=radio name=syslog value=0 %s> %s</td> </tr>\n",
	$log{'syslog'} ? '' : 'checked', $text{'log_xferlog'};

# Display log security option
map { $security{$_}++ } split(/,/, $log{'security'}->[1]);
print "<tr> <td><b>$text{'log_security'}</b></td> <td>\n";
foreach $c ('anonymous', 'guest', 'real') {
	printf "<input type=checkbox name=security value=$c %s> %s\n",
		$security{$c} ? 'checked' : '', $text{"log_$c"};
	}
print "</td> </tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

 070701000259b6000081e40000000000000002000000013ac038a700001167000000200000000000000000000000000000001e00000003reloc/wuftpd/edit_message.cgi #!/usr/local/bin/perl
# edit_message.cgi
# Display messages and readmes

require './wuftpd-lib.pl';
&header($text{'message_title'}, "", "message");
print "<hr>\n";

$conf = &get_ftpaccess();

print "<form action=save_message.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'message_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

@message = ( &find_value("message", $conf), [ ] );
print "<tr> <td valign=top><b>$text{'message_message'}</b></td>\n";
print "<td><table border width=100%>\n";
print "<tr $tb> <td><b>$text{'message_path'}</b></td>\n",
      "<td><b>$text{'message_when'}</b></td>\n",
      "<td><b>$text{'message_classes'}</b></td> </tr>\n";
$i = 0;
foreach $m (@message) {
	print "<tr $cb>\n";
	print "<td><input name=mpath_$i size=15 value='$m->[0]'></td>\n";
	printf "<td nowrap><input name=mwhen_$i type=radio value=0 %s> %s\n",
		$m->[1] =~ /^login$/i ? 'checked' : '',
		$text{'message_login'};
	printf "<input name=mwhen_$i type=radio value=1 %s> %s\n",
		$m->[1] =~ /^cwd=\*$/ ? 'checked' : '',
		$text{'message_alldir'};
	printf "<input name=mwhen_$i type=radio value=2 %s> %s\n",
		$m->[1] =~ /^cwd=([^\*].*)$/ ? 'checked' : '',
		$text{'message_dir'};
	printf "<input name=mcwd_$i size=20 value='%s'></td>\n",
		$m->[1] =~ /^cwd=([^\*].*)$/ ? $1 : '';
	printf "<td><input name=mclasses_$i size=15 value='%s'></td>\n",
		join(" ", @$m[2..@$m-1]);
	print "</tr>\n";
	$i++;
	}
print "</table></td> </tr>\n";
print "<tr> <td colspan=2><hr></td> </tr>\n";

@readme = ( &find_value("readme", $conf), [ ] );
print "<tr> <td valign=top><b>$text{'message_readme'}</b></td>\n";
print "<td><table border width=100%>\n";
print "<tr $tb> <td><b>$text{'message_path'}</b></td>\n",
      "<td><b>$text{'message_update'}</b></td>\n",
      "<td><b>$text{'message_classes'}</b></td> </tr>\n";
$i = 0;
foreach $m (@readme) {
	print "<tr $cb>\n";
	print "<td><input name=rpath_$i size=15 value='$m->[0]'></td>\n";
	printf "<td nowrap><input name=rwhen_$i type=radio value=0 %s> %s\n",
		$m->[1] =~ /^login$/i ? 'checked' : '',
		$text{'message_login'};
	printf "<input name=rwhen_$i type=radio value=1 %s> %s\n",
		$m->[1] =~ /^cwd=\*$/ ? 'checked' : '',
		$text{'message_alldir'};
	printf "<input name=rwhen_$i type=radio value=2 %s> %s\n",
		$m->[1] =~ /^cwd=([^\*].*)$/ ? 'checked' : '',
		$text{'message_dir'};
	printf "<input name=rcwd_$i size=20 value='%s'></td>\n",
		$m->[1] =~ /^cwd=([^\*].*)$/ ? $1 : '';
	printf "<td><input name=rclasses_$i size=15 value='%s'></td>\n",
		join(" ", @$m[2..@$m-1]);
	print "</tr>\n";
	$i++;
	}
print "</table></td> </tr>\n";
print "<tr> <td colspan=2><hr></td> </tr>\n";

$g = &find_value('greeting', $conf);
print "<tr> <td><b>$text{'message_greeting'}</b></td>\n";
printf "<td><input type=radio name=greeting value=full %s> %s\n",
	$g->[0] eq 'full' || !$g->[0] ? 'checked' : '', $text{'message_full'};
printf "<input type=radio name=greeting value=brief %s> %s\n",
	$g->[0] eq 'brief' ? 'checked' : '', $text{'message_brief'};
printf "<input type=radio name=greeting value=terse %s> %s</td> </tr>\n",
	$g->[0] eq 'terse' ? 'checked' : '', $text{'message_terse'};

$b = &find_value('banner', $conf);
print "<tr> <td><b>$text{'message_banner'}</b></td>\n";
printf "<td><input type=radio name=banner_def value=1 %s> %s\n",
	$b ? '' : 'checked', $text{'message_none'};
printf "<input type=radio name=banner_def value=0 %s> %s\n",
	$b ? 'checked' : '', $text{'message_file'};
printf "<input name=banner size=30 value='%s'> %s</td> </tr>\n",
	$b->[0], &file_chooser_button('banner', 0);

$h = &find_value('hostname', $conf);
print "<tr> <td><b>$text{'message_hostname'}</b></td>\n";
printf "<td><input type=radio name=hostname_def value=1 %s> %s\n",
	$h ? '' : 'checked', $text{'message_hostdef'};
printf "<input type=radio name=hostname_def value=0 %s>\n",
	$h ? 'checked' : '';
printf "<input name=hostname size=30 value='%s'> %s</td> </tr>\n",
	$h->[0];

$e = &find_value('email', $conf);
print "<tr> <td><b>$text{'message_email'}</b></td>\n";
printf "<td><input type=radio name=email_def value=1 %s> %s\n",
	$e ? '' : 'checked', $text{'default'};
printf "<input type=radio name=email_def value=0 %s>\n",
	$e ? 'checked' : '';
printf "<input name=email size=30 value='%s'> %s</td> </tr>\n",
	$e->[0];

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

 070701000259b8000081e40000000000000002000000013ac038a700000b5d000000200000000000000000000000000000001b00000003reloc/wuftpd/edit_misc.cgi    #!/usr/local/bin/perl
# edit_misc.cgi
# Display miscellaneous options

require './wuftpd-lib.pl';
&header($text{'misc_title'}, "", "misc");
print "<hr>\n";

$conf = &get_ftpaccess();
@class = &find_value("class", $conf);

print "<form action=save_misc.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'misc_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

# Display ls* options
foreach $l ('lslong', 'lsshort', 'lsplain') {
	$v = &find_value($l, $conf);
	print "<tr> <td><b>",$text{"misc_$l"},"</b></td> <td colspan=3>\n";
	printf "<input type=radio name=%s_def value=1 %s> %s\n",
		$l, $v ? '' : 'checked', $text{'default'};
	printf "<input type=radio name=%s_def value=0 %s>\n",
		$l, $v ? 'checked' : '';
	printf "<input name=%s size=30 value='%s'></td> </tr>\n",
		$l, join(" ", @$v);
	}

# Display shutdown option
$s = &find_value('shutdown', $conf);
printf "<tr> <td><b>$text{'misc_shutdown'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=shutdown_def value=1 %s> %s\n",
	$s ? '' : 'checked', $text{'misc_none'};
printf "<input type=radio name=shutdown_def value=0 %s>\n",
	$s ? 'checked' : '';
printf "<input name=shutdown size=30 value='%s'> %s</td> </tr>\n",
	$s->[0], &file_chooser_button('shutdown', 0);
print "<tr> <td colspan=4><hr></td> </tr>\n";

# Display nice option
@nice = ( &find_value('nice', $conf), [ ] );
print "<tr> <td valign=top><b>$text{'misc_nice'}</b></td>\n";
print "<td colspan=3><table border>\n";
print "<tr $tb> <td><b>$text{'misc_ndelta'}</b></td> ",
      "<td><b>$text{'misc_class'}</b></td> </tr>\n";
$i = 0;
foreach $n (@nice) {
	print "<tr $cb>\n";
	print "<td><input name=ndelta_$i size=5 value='$n->[0]'></td>\n";
	print "<td><select name=nclass_$i>\n";
	printf "<option value='' %s>%s\n",
		$n->[1] ? '' : 'checked', $text{'misc_all'};
	foreach $c (@class) {
		printf "<option %s>%s\n",
			$n->[1] eq $c->[0] ? 'selected' : '', $c->[0];
		}
	print "</select></td> </tr>\n";
	$i++;
	}
print "</table></td>\n";
print "<tr> <td colspan=4><hr></td> </tr>\n";

# Display defumask option
@umask = ( &find_value('defumask', $conf), [ ] );
print "<tr> <td valign=top><b>$text{'misc_defumask'}</b></td>\n";
print "<td colspan=3><table border>\n";
print "<tr $tb> <td><b>$text{'misc_umask'}</b></td> ",
      "<td><b>$text{'misc_class'}</b></td> </tr>\n";
$i = 0;
foreach $u (@umask) {
	print "<tr $cb>\n";
	print "<td><input name=umask_$i size=5 value='$u->[0]'></td>\n";
	print "<td><select name=uclass_$i>\n";
	printf "<option value='' %s>%s\n",
		$u->[1] ? '' : 'checked', $text{'misc_all'};
	foreach $c (@class) {
		printf "<option %s>%s\n",
			$u->[1] eq $c->[0] ? 'selected' : '', $c->[0];
		}
	print "</select></td> </tr>\n";
	$i++;
	}
print "</table></td>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

   070701000259ba000081e40000000000000002000000013ac038a700000a51000000200000000000000000000000000000001a00000003reloc/wuftpd/edit_net.cgi #!/usr/local/bin/perl
# edit_net.cgi
# Display network-related options

require './wuftpd-lib.pl';
&header($text{'net_title'}, "", "net");
print "<hr>\n";

$conf = &get_ftpaccess();
@class = &find_value("class", $conf);

print "<form action=save_net.cgi>\n";
print "<table border>\n";
print "<tr $tb> <td><b>$text{'net_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

# Display TCP window options
@tcp = ( &find_value('tcpwindow', $conf), [ ] );
print "<tr> <td valign=top><b>$text{'net_tcp'}</b></td>\n";
print "<td colspan=3><table border>\n";
print "<tr $tb> <td><b>$text{'net_tsize'}</b></td> ",
      "<td><b>$text{'net_tclass'}</b></td> </tr>\n";
$i = 0;
foreach $t (@tcp) {
	print "<tr $cb>\n";
	print "<td><input name=tsize_$i size=5 value='$t->[0]'></td>\n";
	print "<td><select name=tclass_$i>\n";
	printf "<option value='' %s>%s\n",
		$t->[1] ? '' : 'checked', $text{'net_tall'};
	foreach $c (@class) {
		printf "<option %s>%s\n",
			$t->[1] eq $c->[0] ? 'selected' : '', $c->[0];
		}
	print "</select></td> </tr>\n";
	$i++;
	}
print "</table></td>\n";
print "<tr> <td colspan=4><hr></td> </tr>\n";

# passive address options
@pasv = ( ( grep { $_->[0] eq 'address' } &find_value('passive', $conf) ), [ ]);
print "<tr> <td valign=top><b>$text{'net_pasvaddr'}</b></td>\n";
print "<td colspan=3><table border>\n";
print "<tr $tb> <td><b>$text{'net_pip'}</b></td> ",
      "<td><b>$text{'net_pcidr'}</b></td> </tr>\n";
$i = 0;
foreach $p (@pasv) {
	print "<tr $cb>\n";
	print "<td><input name=aip_$i size=15 value='$p->[1]'></td>\n";
	local @ci = split(/\//, $p->[2]);
	print "<td><input name=anet_$i size=15 value='$ci[0]'> /\n";
	print "<input name=acidr_$i size=2 value='$ci[1]'></td>\n";
	print "</tr>\n";
	$i++;
	}
print "</table></td></tr>\n";

# passive port options
@pasv = ( ( grep { $_->[0] eq 'ports' } &find_value('passive', $conf) ), [ ] );
print "<tr> <td valign=top><b>$text{'net_pasvport'}</b></td>\n";
print "<td colspan=3><table border>\n";
print "<tr $tb> <td><b>$text{'net_prange'}</b></td> ",
      "<td><b>$text{'net_pcidr'}</b></td> </tr>\n";
$i = 0;
foreach $p (@pasv) {
	print "<tr $cb>\n";
	print "<td><input name=pmin_$i size=5 value='$p->[2]'> -\n";
	print "<input name=pmax_$i size=5 value='$p->[3]'></td>\n";
	local @ci = split(/\//, $p->[1]);
	print "<td><input name=pnet_$i size=15 value='$ci[0]'> /\n";
	print "<input name=pcidr_$i size=2 value='$ci[1]'></td>\n";
	print "</tr>\n";
	$i++;
	}
print "</table></td></tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

   070701000259bc000081e40000000000000002000000013ac038a700000cbe000000200000000000000000000000000000001b00000003reloc/wuftpd/edit_perm.cgi    #!/usr/local/bin/perl
# edit_perm.cgi
# Display file permission options

require './wuftpd-lib.pl';
&header($text{'perm_title'}, "", "perm");
print "<hr>\n";

$conf = &get_ftpaccess();
@class = &find_value("class", $conf);

print "<form action=save_perm.cgi>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'perm_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

# Display permission options (chmod, delete, etc..)
@permtypes = ( 'chmod', 'delete', 'overwrite', 'rename', 'umask' );
foreach $t (@permtypes) {
	push(@perms, &find($t, $conf));
	}
@perms = ( ( sort { $a->{'line'} <=> $b->{'line'} } @perms ), { } );
print "<tr> <td valign=top><b>$text{'perm_perms'}</b></td>\n";
print "<td colspan=3><table border>\n";
print "<tr $tb> <td><b>$text{'perm_type'}</b></td>\n",
      "<td><b>$text{'perm_can'}</b></td>\n",
      "<td><b>$text{'perm_users'}</b></td>\n",
      "<td><b>$text{'perm_classes'}</b></td> </tr>\n";
$i = 0;
foreach $p (@perms) {
	$v = $p->{'values'};
	print "<tr $cb>\n";

	print "<td><select name=type_$i>\n";
	printf "<option %s>\n", $p->{'name'} ? '' : 'checked';
	foreach $t (@permtypes) {
		printf "<option %s>%s\n",
			$p->{'name'} eq $t ? 'selected' : '', $t;
		}
	print "</select></td>\n";

	printf "<td><input type=radio name=can_$i value=yes %s> %s\n",
		lc($v->[0]) eq 'yes' ? 'checked' : '', $text{'yes'};
	printf "<input type=radio name=can_$i value=no %s> %s</td>\n",
		lc($v->[0]) eq 'yes' ? '' : 'checked', $text{'no'};

	local (%users, $notall);
	map { $users{$_}++; $notall++ if (/class=/) } split(/,/, $v->[1]);
	print "<td>\n";
	foreach $u ('anonymous', 'guest', 'real') {
		printf "<input name=users_%s type=checkbox value=%s %s> %s\n",
			$i, $u, $users{$u} ? 'checked' : '', $text{"perm_$u"};
		}
	print "</td>\n";

	if (!$notall) {
		map { $users{"class=".$_->[0]}++ } @class;
		}
	print "<td>\n";
	foreach $c (@class) {
		printf "<input name=classes_%s type=checkbox value=%s %s> %s\n",
			$i, $c->[0], $users{"class=$c->[0]"} ? 'checked' : '',
			$c->[0];
		}
	print "</td> </tr>\n";
	$i++;
	}
print "</table><br>$text{'perm_note'}</td> </tr>\n";
print "<tr> <td colspan=4><hr></td> </tr>\n";

# Display path-filter options
@filter = ( &find_value('path-filter', $conf), [ ] );
print "<tr> <td valign=top><b>$text{'perm_filter'}</b></td> <td colspan=3>\n";
print "<table border> <tr $tb> <td><b>$text{'perm_char'}</b></td>\n",
      "<td><b>$text{'perm_regexp'}</b></td>\n",
      "<td><b>$text{'perm_types'}</b></td>\n",
      "<td><b>$text{'perm_mesg'}</b></td> </tr>\n";
$i = 0;
foreach $f (@filter) {
	print "<tr $cb> <td>\n";
	print "<td><input name=char_$i size=15 value='$f->[2]'></td>\n";
	printf "<td><input name=regexp_$i size=25 value='%s'></td>\n",
		join(" ", @$f[3..@$f-1]);
	print "<td>\n";
	foreach $u ('anonymous', 'guest', 'real') {
		printf "<input name=types_%s type=checkbox value=%s %s> %s\n",
			$i, $u, $f->[0] =~ /$u/ ? 'checked' : '',
			$text{"perm_$u"};
		}
	print "</td>\n";
	print "<td><input name=mesg_$i size=20 value='$f->[1]'></td> </tr>\n";
	$i++;
	}
print "</table></td> </tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value=\"$text{'save'}\"></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

  070701000287a6000041ed0000000000000001000000023ac03cb000000000000000200000000000000000000000000000001200000003reloc/wuftpd/help 070701000287a7000081a40000000000000002000000013ac038a7000007da000000200000000000000000000000000000001e00000003reloc/wuftpd/help/acl.es.html <header>L韒ites y Control de Acceso</header>

Esta p醙ina contiene varias tablas para poner las opciones de L韒ites y
control de acceso. <p>

La primera tabla te permite especificar la direcci髇 IP del cliente
al que hay que denegar el acceso al servidor FTP y un archivo de mensajes
de error a mostrar al cliente que no tiene acceso. Las direcciones
pueden ser suministradas como direcciones IP completas o parciales. Las
direcciones IP, las redes/m醩caras de red IP, nombres de m醧uina, comodines
de m醧uinas (como <tt>*.fpp.com</tt> o trayectorias absolutas a archivos que
contienen direcciones adicionales. Cualquier tipo de direcci髇 puede ir
precedido con un car醕ter ! para negarla. <p>

La segunda tabla te permite limitar el n鷐ero de logins simult醤eos de los
cliente de cada clase. Para cada clase puedes digitar el m醲imo n鷐ero de
logins simult醤eos, los d韆s y horas en que se activa el m醲imo (en estilo
UUCP, como <tt>MoTuTh0800-1700</tt>), y un archivo de mensajes de error a
mostrar a los clientes cuando se alcance el l韒ite. <p>

La tercera tabla te permite poner los l韒ites de archivo por-sesi髇 y de
transferencia de datos. Para cada l韒ite, debes de escoger si se aplica
a los archivos o a los bytes transferidos, la direcci髇 de transferencia
a la que se aplica el l韒ite, si el l韒ite se aplica s髄o a las transferencias
de archivos o a todos los datos y las clases de usuarios para las que es
el l韒ite.

La cuarta tabla te permite denegar el acceso a ciertos archivos. Para cada
archivo necesitas digitar una trayectoria absoluta, escoger si la
trayectoria es relativa al directorio <tt>chroot</tt> (para usuarios
invitados o an髇imos) y seleccionar las clases de usuarios a los que se
aplica esta restricci髇. Si un archivo a denegar termina con un car醕ter /,
el servidor FTP denegar el acceso a todos los archivos de ese directorio.<p>

Simil醨mente, la quinta tabla te permite garantizar el acceso a archivos
que ser韆n normalmente denegados por la tabla de arriba. <p>

<hr>

  070701000287a8000081a40000000000000002000000013ac038a70000074b000000200000000000000000000000000000001e00000003reloc/wuftpd/help/acl.fr.html <header>Limites et Contr鬺e d'Acc鑣</header>

Cette page contient plusieurs tables pour d閒inir les limites et les options de contr鬺e d'acc鑣.  La premi鑢e table vous permet de sp閏ifier les adresses IP des clients  refuser l'acc鑣 au serveur FTP et afficher un message d'erreur  partir d'un fichier texte au client refus.  Les adresses IP peuvent 阾re donn閑 compl鑤e ou partielle, une adresse r閟eau/masque de sous-r閟eau, des noms d'h魌es, des noms d'h魌es incomplets (comme <tt>*.foo.com</tt>) ou des fichiers contenant des adresses additionnelles.  Tout les types d'adresses peuvent 阾re pr閏閐 par un ! pour l'annuler.<p>

La seconde table vous permet de limiter le nombre de session ouverte par les clients d'une m阭e classe.  Pour chaque classe vous pouvez entrer le nombre maximum de sessions ouverte, le jour et l'heure  laquel ce maximum est forc (dans la syntaxe UUCP, comme <tt>MoTuTh0800-1700</tt>), et un fichier de message d'erreur  afficher aux clients quand cette limite est d閜ass.<p>

La troisi鑝e table vous permet de d閒inir la limite de fichier et de donn閑 par session.   Pour chaque limite, vous devez choisir s'il s'applie au fichier ou au nombre de bytes transf閞, la direction du transfert qui s'applique  cette limite et la classe de la limite  qui elle s'applique.<p>

La quatri鑝e table vous permet de de refuser l'acc鑣  certain fichiers.  Pour chaque fichier vou savez besoin d'entrer le chemin absolu, choisir si le chemin est relatif au r閜ertoire <tt>chroot</tt> (pour les usagers anonyme et "guest") et choisir la classe d'usager qui s'applique  cette restriction.  Not que si un chemin se termine par un /, le serveur FTP refusera l'acc鑣  tout les fichiers de ce r閜ertoire.<br>
Tout comme, la cinqui鑝e table permet de donner un acc鑣  certain fichier dont l'acc鑣 est refuser par la quatri鑝e table.<p>

<hr>
 070701000287a9000081a40000000000000002000000013ac038a700000691000000200000000000000000000000000000001b00000003reloc/wuftpd/help/acl.html    <header>Limits and Access Control</header>

This page contains several tables for setting limits and access control
options. The first table allows you to specify client IP address to be denied
access to the FTP server, an an error message file to display to the denied
client. Addresses may be given as full or partial
IP addresses, IP networks/netmasks, hostnames, host wildcards
(like <tt>*.foo.com</tt>) or the absolute paths to files containing additional
addresses. Any type of address can be preceded with a ! to negate it. <p>

The second table allows you to limit the number of concurrent logins by
clients of each class. For each class you can enter the maximum simultaneous
logins, the days and times at which the maximum is enforced (in UUCP style,
like <tt>MoTuTh0800-1700</tt>), and an error message file to display to
clients when the limit is reached. <p>

The third table allows you to set per-session file and data transfer limits.
For each limit, you must choose whether it applied to files or bytes
transferred, the transfer direction the limit applies to, whether the limit
applies to just file transfers or all data, and the class of users the
limit is for. <p>

The fourth table allows you to deny access to certain files. For each file
you need to enter an absolute path, choose whether the path is relative
to the <tt>chroot</tt> directory (for anonymous and guest users) and select
the user classes this restriction applies to. If a file to deny ends with
a /, the FTP server will deny access to all files in that directory. <br>
Similarly, the fifth table allows you to grant access to files that would
be otherwise denied by the table above. <p>

<hr>

   070701000287aa000081a40000000000000002000000013ac038a700000779000000200000000000000000000000000000001e00000003reloc/wuftpd/help/acl.pl.html <header>Ograniczenia i&nbsp;kontrola dost阷u</header>

Strona zawiera tabale umo縧iwiaj眂e ustalenie limit體 i&nbsp;kontroli
dost阷u do serwera FTP. 
<p>

Pierwsza tabela umo縧iwia wyspecyfikowanie adres體 IP, kt髍e nie maj prawa
dost阷u do serwera FTP, oraz zbioru zawieraj眂ego komunikat b酬du
wy秝ietlany klientowi w&nbsp;takiej sytuacji. Adresy mog by podane
w&nbsp;postaci pe硁ego lub cz甓ciowego adresu IP, kombibacji podsie
IP/maska, nazw komputer體 (z&nbsp;rozwijanymi znakami * i&nbsp;?, jak na
przyk砤d<tt>*.foo.com</tt>), oraz absolutnych 禼ie縠k do plik體
zawieraj眂ych adresy. W&nbsp;celu zanegowania ka縟y adres mo縠 by poprzedzony
wykrzyknikiem !.
<p>

Druga tabela umo縧iwia ograniczenie liczby jednoczesnych u縴tkownik體
w&nbsp;ka縟ej z&nbsp;klas. Dla ka縟ej klasy mo縩a wporowadzi maksymalna
liczb wlogowanych u縴tkownik體, czas w&nbsp;kt髍ym ograniczenie jest
obowi眤uj眂e (w&nbsp;stylu UUCP: jak na przyk砤d <tt>MoTuTh0800-1700</tt>),
oraz zbi髍 z&nbsp;komunikatem b酬du wy秝ietlanym klientowi gdy limit zostanie
osi眊ni阾y.
<p>

Trzecia tabela umo縧iwia wprowadzenie ograniczenia liczby plik體 oraz bajt體
przesy砤nych podczas jednej sesji. Dla ka縟ego limitu nale縴 okre秎i czy
dotyczy liczby plik體, czy bajt體, jakiego dotyczy kierunku, czy bra pod
uwag tylko pliki, czy wszystkie dane, oraz klas u縴tkownik體, kt髍ej
dany limit dotyczy.
<p>
 
Czwarta tabela pozwala na zakaz dost阷u do okre秎onych zbior體. Dla ka縟ego
zbioru nale縴 wprowadzi absolutn 禼ie縦, okre秎i czy jest ona podana
wzgl阣em "chroot" (dla u縴tkownik體 anonimowych i&nbsp;go禼i) oraz klasy
u縴tkownik體, kt髍ych dotyczy ograniczenie. Je縠li zbi髍 ko馽zy si znakiem
/, serwer FTP nie zezwoli na dost阷 do 縜dnego pliku z&nbsp;kartoteki
o&nbsp;tej nazwie. Podobna pi眛a tabela umo縧iwia zezwoli na dost阷 do
plik體, kt髍y w&nbsp;przeciwnym wypadku by砨y zakazany przez dotychczasowe
regu硑. 
<p>

<hr>
   070701000287ab000081a40000000000000002000000013ac038a7000006cf000000200000000000000000000000000000002100000003reloc/wuftpd/help/acl.ru_RU.html  <header>毋疣龛麇龛  暑眚痤朦 念耱箫</header>

泥眄 耱疣龛鲟 耦溴疰栩 礤觐蝾瘥 蜞犭桷 潆 篑蜞眍怅 镟疣戾蝠钼 钽疣龛麇龛  觐眚痤 漕耱箫.
襄疴 蜞犭桷 镱玮铍弪 锣 箨噻囹 IP 噤疱 觌桢眚 潆 镳邃铗怵帙屙 漕耱箫  FTP 皴疴屦, 羿殡  耦钺龛屐 钺 铠栳赍 潆 玎镳妁屙眍泐 觌桢眚. 
冷疱 祛驽 猁螯 赅 镱腠, 蜞  鬣耱梓睇 噤疱耦 IP, IP 噤疱耦 皴蜩/皴蝈忸 爨耜铋, 桁屙屐 躅耱, 犭铐铎 桁屙 躅耱 (蜩镟 <tt>*.foo.com</tt>) 桦 噌耦膻蝽 矬蝈  羿殡 耦溴疰帙屐 漕镱腠栩咫 噤疱襦.
冷疱 膻犷泐 蜩镟 祛驽 镳邃忄螯 ! 潆 邈 铗痂鲟龛. <p> 

买铕 蜞犭桷 镱玮铍弪 锣 钽疣龛麒螯 麒耠 钿眍怵屐屙睇 疱汨耱疣鲨 觌桢眚钼 赅驿钽 觌囫襦.
碾 赅驿钽 觌囫襦 蔓 祛驽蝈 忖羼蜩 爨犟桁嚯铄 麒耠 钿眍怵屐屙睇 疱汨耱疣鲨, 漤  怵屐, 觐沅 漕耱桡噱蝰 爨犟桁箪 ( 耱桦 UUCP, 磬镳桁屦 <tt>MoTuTh0800-1700</tt>),  羿殡  耦钺龛屐 钺 铠栳赍 潆 觌桢眚钼 镳 漕耱桄屙梃 爨犟桁箪. <p>

茵弪 蜞犭桷 镱玮铍弪 锣 篑蜞眍忤螯 镱-皴耨桀眄 钽疣龛麇龛 镱 镥疱溧麇 羿殡钼  溧眄. 碾 赅驿钽 钽疣龛麇龛, 蔓 漕腈睇 恹狃囹, 觐沅 铐 镳桁屙弪  镥疱溧眄 羿殡囔 桦 觐-怏 徉轵, 磬镳噔脲龛 镥疱溧麒  觌囫襦 镱朦珙忄蝈脲 潆 觐蝾瘥 铐 镳邃磬珥圜屙. <p>

族蜮屦蜞 蜞犭桷 镱玮铍弪 锣 玎镳弪栩 漕耱箫  礤觐蝾瘥 羿殡囔.
碾 赅驿钽 羿殡 蔓 潆铈睇 忖羼蜩 噌耦膻蝽 矬螯, 恹狃囹 怆弪 腓 矬螯 铗眍耔蝈朦睇  <tt>chroot</tt> 赅蜞腩泱 (潆 镱朦珙忄蝈脲 anonymous  guest)  恹狃囹 觌囫覃 镱朦珙忄蝈脲 潆 觐蝾瘥 镳桁屙 溧眄 钽疣龛麇龛. 
篷腓 玎镳妁屙睇 羿殡 (邈 桁) 铌囗麒忄弪 磬 /, 蝾 FTP 皴疴屦 玎镳弪栩 漕耱箫 觐 怦屐 羿殡囔  溧眄铎 赅蜞腩沐. <br>
理嚯钽梓眍 蜞 蜞犭桷 镱玮铍弪 锣 疣琊屮栩 漕耱箫  羿殡囔, 觐蝾瘥 桧圜 狍潴 玎镳妁屙  蜞犭桷 恹. <p>

<hr>

 070701000287ac000081a40000000000000002000000013ac038a7000006cf000000200000000000000000000000000000002100000003reloc/wuftpd/help/acl.ru_SU.html  <header>锴伊紊夼紊  胂卧蚁特 湎釉招</header>

淞挝裂 釉伊紊昧 酉呐抑稍 闻讼韵屹 粤绿擅 奶 沼粤蜗姿 辛伊团砸献 锨伊紊夼紊  讼卧蚁萄 南釉招.
鹋易裂 粤绿擅 邢谧咸雅 髁 账邻猎 IP 聊遗 颂膳卧 奶 幸拍显滓凛盼裳 南釉招  FTP 优易乓, 屏侍  酉下菖紊磐 下 羡陕伺 奶 诹幸泡盼蜗窍 颂膳卧. 
崮遗 拖峙 沦载 肆 邢涛偻, 粤  蘖釉赊钨 聊遗酉 IP, IP 聊遗酉 优陨/优耘紫 土铀鲜, 赏盼磐 认釉, 哿绿衔贤 赏盼 认釉 (陨辛 <tt>*.foo.com</tt>) 商 谅酉汤晕偻 姓耘  屏侍 酉呐抑凛磐 南邢涛稍盘匚倥 聊遗恿.
崮遗 汤孪窍 陨辛 拖峙 幸拍琢已载 ! 奶 徘 显疑昧紊. <p> 

髟弦裂 粤绿擅 邢谧咸雅 髁 锨伊紊奚载 奚犹 夏蜗滓磐盼钨 遗巧釉伊蒙 颂膳卧献 肆帜锨 颂劣恿.
涮 肆帜锨 颂劣恿 髻 拖峙耘 鬃庞陨 土擞赏撂匚吓 奚犹 夏蜗滓磐盼钨 遗巧釉伊蒙, 奈  滓磐, 讼悄 南釉汕僚杂 土擞赏胀 ( 釉商 UUCP, 瘟幸赏乓 <tt>MoTuTh0800-1700</tt>),  屏侍  酉下菖紊磐 下 羡陕伺 奶 颂膳卧献 幸 南釉芍盼缮 土擞赏胀. <p>

粢旁匮 粤绿擅 邢谧咸雅 髁 沼粤蜗咨载 邢-优佑上挝倥 锨伊紊夼紊 邢 信遗牧夼 屏侍献  牧挝偃. 涮 肆帜锨 锨伊紊夼紊, 髻 南讨钨 踪乱猎, 讼悄 衔 幸赏盼雅杂  信遗牧挝偻 屏侍镣 商 讼-渍 铝试, 瘟幸磷膛紊 信遗牧奚  颂劣恿 邢特谙琢耘膛 奶 讼韵屹 衔 幸拍瘟谖赁盼. <p>

宰乓粤 粤绿擅 邢谧咸雅 髁 诹幸旁稍 南釉招  闻讼韵屹 屏侍镣.
涮 肆帜锨 屏侍 髻 奶现钨 鬃庞陨 谅酉汤晕偈 姓载, 踪乱猎 炎萄旁友 躺 姓载 显蜗由耘特钨  <tt>chroot</tt> 肆粤滔钦 (奶 邢特谙琢耘膛 anonymous  guest)  踪乱猎 颂劣淤 邢特谙琢耘膛 奶 讼韵屹 幸赏盼牙杂 牧挝倥 锨伊紊夼紊. 
逵躺 诹幸泡盼钨 屏侍 (徘 赏) 纤廖奚琢旁友 瘟 /, 韵 FTP 优易乓 诹幸旁稍 南釉招 讼 子磐 屏侍镣  牧挝贤 肆粤滔桥. <br>
嵛撂锨赊蜗 醒粤 粤绿擅 邢谧咸雅 髁 伊谝袍稍 南釉招  屏侍镣, 讼韵屹 晌赁 抡恼 诹幸泡盼  粤绿擅 踪叟. <p>

<hr>

 070701000287ad000081a40000000000000002000000013ac038a700000710000000200000000000000000000000000000001e00000003reloc/wuftpd/help/acl.sv.html <header>Begr鋘sningar och 錿komstkontroll</header>

P denna sida finns flera tabeller med inst鋖lningar f鰎 begr鋘sningar
och 錿komstkontroll. I den f鰎sta tabellen kan man ange klient-IP-adresser
som ska nekas 錿komst till FTP-server och en felmeddelandefil som ska visas
f鰎 klienten som nekas. Adresser kan anges som fullst鋘diga eller partiella
IP-adresser, IP-n鋞verk/n鋞maskar, datornamn, datornamn med jokertecken
(t ex <tt>*.foo.com</tt>) eller absoluta s鰇v鋑ar till filer som inneh錶ler
adresser. Alla dessa adressangivelser kan anges med ett ! (utropstecken)
f鰎st, vilket tolkas som att den angivna adressen till錿s komma 錿
FTP-servern.

<p>I den andra tabellen kan man begr鋘sa antalet samtidiga inloggningar
f鰎 klienter i en viss klass. F鰎 varje klass kan man ange maximalt antal
samtidiga inloggningar, dag(ar) och tidpunkt(er) d denna begr鋘sning g鋖ler
(p UUCP-form, t ex <tt>MoTuTh0800-1700</tt>) och ett felmeddelande som ska
visas d klienter nekas inloggning p grund av denna begr鋘sning.

<p>I den tredje tabellen kan man s鋞ta gr鋘ser f鰎 fil- och data鰒erf鰎ing
per session. F鰎 varje gr鋘s m錽te man ange om den g鋖ler antal filer eller
byte som 鰒erf鰎s, 鰒erf鰎ingsriktning, om gr鋘sen endast g鋖ler f鰎
fil鰒erf鰎ing eller f鰎 all data och den anv鋘darklassen som gr鋘sen g鋖ler
f鰎.

<p>I den fj鋜de tabellen kan man neka 錿komst till vissa filer. F鰎 varje
fil m錽te man ange en absolut s鰇v鋑, ange om s鰇v鋑en g鋖ler relativt
<tt>chroot</tt>-katalogen (f鰎 anonyma och g鋝tanv鋘dare) och ange de
anv鋘darklasser som begr鋘sningen g鋖ler f鰎. Om en filangivelse slutar
med ett / kommer FTP-servern att neka 錿komst till alla filer i katalogen.
<br>P liknande s鋞t kan man i den femte tabellen till錿a 錿komst till
filer som annars skulle sp鋜ras i tabellen ovan.

<hr>
070701000287ae000081a40000000000000002000000013ac038a70000045e000000200000000000000000000000000000002600000003reloc/wuftpd/help/acl.zh_TW.Big5.html <header>籔北</header>

硂计砞﹚籔北匡兜. 材琵眤﹚璶┶荡硂 FTP 狝竟め狠 IP , 籔陪ボ倒砆┶荡め狠岿粇癟. ノЧ俱┪场だ IP , IP 呼隔/呼隔綛竛, 诀嘿, 窾ノじ (ㄒ <tt>*.foo.com</tt>), ┪琌郎荡癸隔畖. ヴ摸常 '!' 才腹┛菠ぇ. <p>

材琵眤パめ狠祅ぃ单ㄏノ计. 癸–单, 眤块程祅计ヘ, 籔赣ㄏノ丁 ( UUCP Α, 钩琌 <tt>MoTuTh0800-1700</tt>), 籔讽笷┮璶陪ボ岿粇癟郎. <p>

材琵眤计﹚–刁狠┮肚块郎计ヘ籔. 癸–, 眤ゲ斗匡拒琌甅ノ郎计┪肚块じ计, 肚块よ籔甅ノ癸禜, ぃ阶硂甅ノ郎肚块┪┮Τ戈, 籔硂┮癸莱ㄏノ单. <p>

材眤┶荡癸疭﹚郎. 癸–郎眤ゲ斗块ㄤ荡癸竚, 匡拒硂琌癸莱 <tt>chroot</tt> ヘ魁 (癸拔籔砐ㄏノ), 匡拒硂璶甅ノㄏノ单. 狦┶荡郎 "/" 挡, FTP 狝竟盢穦┶荡赣ヘ魁┮Τ郎. <br>

, 材き琵眤甭舦癸ゼ砆┮┶荡郎. <p>

<hr>

  070701000287af000081a40000000000000002000000013ac038a70000037b000000200000000000000000000000000000002000000003reloc/wuftpd/help/alias.es.html   <header>Alias y Trayectorias</header>

Esta p醙ina te permite crear alias que se aplican cuando el usuario del
cliente FTP utiliza el comando <tt>cd</tt>. <p>

La primera tabla te permite cambiar los alias <tt>cd</tt> por trayectorias
absolutas de directorio. Por ejemplo, si creas un alias de <tt>foo</tt>
para <tt>/usr/local/foo</tt>, entonces al digitar <tt>cd foo</tt> desde
un cliente FTP llevar韆 al usuario al directorio <tt>/usr/local/foo</tt>.
<p>

La segunda caja de texto es para digitar directorios que se han de buscar
cuando se digita un <tt>cd</cd> relativo. Por ejemplo, si el directorio
<tt>/usr/local</tt> estuviera en la trayectoria de b鷖queda y el usuario
digitara <tt>cd bin</tt>, ser韆 llevado a <tt>/usr/local/bin</tt> (dando por
hecho que no haya ning鷑 directorio llamado <tt>bin</tt> en el directorio
en curso y que no haya un alias para <tt>bin</tt>). <p>

<hr>

 070701000287b0000081a40000000000000002000000013ac038a700000367000000200000000000000000000000000000002000000003reloc/wuftpd/help/alias.fr.html   <header>Alias et Chemin</header>

Cette page vous permet de cr閑r des alias qui s'applique quand l'usager du client FTP utilise la commande <tt>cd</tt>.  La premi鑢e table vous permet de d閒inir les alias de <tt>cd</tt>  des r閜ertoires absolus.  Par exemple, si vous cr閑r un alias pour <tt>foo</tt> pour <tt>/usr/local/foo</tt>, le client en faisant <tt>cd foo</tt> va se retrouver dans le r閜ertoire <tt>/usr/local/foo</tt>.<p>

La deuxi鑝e bo顃e de texte est pour entrer les r閜ertoires dans lesquels chercher quand un relatif <tt>cd</tt> est entr.  Par exemple, si le r閜ertoire <tt>/usr/local</tt> est dans les r閜ertoires de recherches et l'usager fait <tt>cd bin</tt> il pourrait 阾re envoy dans <tt>/usr/local/bin</tt> (en assumant qu'il n'y a aucun r閜ertoire <tt>bin</tt> dans le r閜ertoire courant et qu'il n'y a aucun alias pour <tt>bin</tt> ).<p>

<hr>

 070701000287b1000081a40000000000000002000000013ac038a70000031a000000200000000000000000000000000000001d00000003reloc/wuftpd/help/alias.html  <header>Aliases and Paths</header>

The page allows you to create aliases that apply when the FTP client user
uses the <tt>cd</tt> command. The first table allows you to map <tt>cd</tt>
aliases to absolute directory paths. For example, if you created an alias
for <tt>foo</tt> for <tt>/usr/local/foo</tt>, then typing <tt>cd foo</tt>
into an FTP client would take the user to the directory <tt>/usr/local/foo</tt>.
<p>

The second text box is for enter directories to be searched when a 
relative <tt>cd</tt> is entered. For example, if directory <tt>/usr/local</tt>
was in the search path and the user entered <tt>cd bin</tt>, he would be
taken to <tt>/usr/local/bin</tt> (assuming there was no directory called
<tt>bin</tt> in the current directory and no alias for <tt>bin</tt>). <p>

<hr>

  070701000287b2000081a40000000000000002000000013ac038a70000035a000000200000000000000000000000000000002000000003reloc/wuftpd/help/alias.pl.html   <header>Aliasy i&nbsp;禼ie縦i</header>

Strona umo縧iwia utworzenie alias體, kt髍e s stosowane gdy u縴tkownik
klienta FTP wykonuje polecenia <tt>cd</tt>. Pierwsza tabela zezwala na
przyporz眃kowanie alias體 absolutnym 禼ie縦om kartotek. Na przyk砤d: po
utworzeniu aliasu <tt>foo</tt> dla <tt>/usr/local/foo</tt> wykonanie
komendy klienta FTP <tt>cd foo</tt> ustawi u縯ykownikowi aktualn
kartotek <tt>/usr/local/foo</tt>.
<p>

Druga tabela umo縧iwa wprowadzenie kartotek, kt髍e maj by przeszukiwane po
wprowadzeniu wzgl阣nego polecenia <tt>cd</tt>. Na przyk砤d, je縠li
wprowadzono kartotek <tt>/usr/local</tt> i&nbsp;u縴tkownik wykona
polecenie <tt>cd bin</tt>, to zostanie ustawiona aktualna kartoteka
<tt>/usr/local/bin</tt> (zak砤daj眂, 縠 nie ma kartoteki <tt>bin</tt>
w&nbsp;kartotece aktualnej, ani aliasu o&nbsp;nazwie <tt>bin</tt>). 
<p>

<hr>
  070701000287b3000081a40000000000000002000000013ac038a700000349000000200000000000000000000000000000002300000003reloc/wuftpd/help/alias.ru_RU.html    <header>像邂漕龛禧  象蜩</header>

羊疣龛鲟 镱玮铍弪 锣 耦玟噔囹 锺邂漕龛禧, 觐蝾瘥 耩噌囹帼 镳 桉镱朦珙忄龛 镱朦珙忄蝈脲 觐爨礓 <tt>cd</tt>. 襄疴 蜞犭桷 镱玮铍弪 忄 疋玎螯 <tt>cd</tt> 锺邂漕龛禧  噌耦膻蝽 矬扈 赅蜞腩泐. 袜镳桁屦, 羼腓 恹 耦玟嚯 锺邂漕龛 <tt>foo</tt> 潆 <tt>/usr/local/foo</tt>, 蝾 忖邃 觐爨礓 <tt>cd foo</tt>  镳钽疣祆 FTP 觌桢眚 镱朦珙忄蝈朦 铌噫弪  赅蜞腩沐 <tt>/usr/local/foo</tt>. <p>

央邃簋 蝈犟蝾忸 镱脲 耠箧栩 潆 忖钿 赅蜞腩泐,  觐蝾瘥 铖簌羼蜮弪 镱桉 镳 忖钿 耦铗忮蝰蜮簋 觐爨礓 <tt>cd</tt>.
袜镳桁屦, 羼腓 赅蜞腩 <tt>/usr/local</tt> 磬躅滂蝰  矬蜩 镱桉赅, 蝾 镳 忖钿 镱朦珙忄蝈脲 觐爨礓 <tt>cd bin</tt>, 铐 镱镟溴  <tt>/usr/local/bin</tt> (羼腓 觐礤黜  蝈牦 赅蝾腩沐 礤 镱潢囹嚯钽 <tt>bin</tt>  礤 锺邂漕龛爨 潆 <tt>bin</tt>). <p>

<hr>

   070701000287b4000081a40000000000000002000000013ac038a700000349000000200000000000000000000000000000002300000003reloc/wuftpd/help/alias.ru_SU.html    <header>鹩抛南紊唾  鹫陨</header>

笤伊紊昧 邢谧咸雅 髁 酉谀磷猎 杏抛南紊唾, 讼韵屹 右谅猎僮晾 幸 捎邢特谙琢紊 邢特谙琢耘膛 讼土文 <tt>cd</tt>. 鹋易裂 粤绿擅 邢谧咸雅 琢 幼掩猎 <tt>cd</tt> 杏抛南紊唾  谅酉汤晕偻 姓匝蜕 肆粤滔窍. 盍幸赏乓, 庞躺 踪 酉谀撂 杏抛南紊 <tt>foo</tt> 奶 <tt>/usr/local/foo</tt>, 韵 鬃拍 讼土文 <tt>cd foo</tt>  幸锨伊屯 FTP 颂膳卧 邢特谙琢耘特 纤林旁友  肆粤滔桥 <tt>/usr/local/foo</tt>. <p>

筇拍绽菖 耘擞韵紫 邢膛 犹罩稍 奶 鬃夏 肆粤滔窍,  讼韵屹 嫌蛰庞宰萄旁友 邢捎 幸 鬃夏 酉显着杂宰绽菖 讼土文 <tt>cd</tt>.
盍幸赏乓, 庞躺 肆粤滔 <tt>/usr/local</tt> 瘟认纳杂  姓陨 邢捎肆, 韵 幸 鬃夏 邢特谙琢耘膛 讼土文 <tt>cd bin</tt>, 衔 邢辛呐  <tt>/usr/local/bin</tt> (庞躺 讼闻尬  耘苏菖 肆韵滔桥 闻 邢乃猎撂锨 <tt>bin</tt>  闻 杏抛南紊土 奶 <tt>bin</tt>). <p>

<hr>

   070701000287b5000081a40000000000000002000000013ac038a70000032c000000200000000000000000000000000000002000000003reloc/wuftpd/help/alias.sv.html   <header>Alias och s鰇v鋑ar</header>

P den h鋜 sidan kan man skapa alias som fungerar d FTP-klientanv鋘daren
anv鋘der kommandot <tt>cd</tt>. I den f鰎sta tabellen kan man skriva om
<tt>cd</tt>-alias till absoluta s鰇v鋑ar. Om man exempelvis skapar ett alias
<tt>foo</tt> f鰎 <tt>/usr/local/foo</tt> kommer kommandot <tt>cd foo</tt>
i FTP-klienten att g鰎a s att anv鋘daren hamnar i katalogen
<tt>/usr/local/foo</tt>.

<p>I den andra textrutan kan man skriva in kataloger som ska s鰇as igenom
n鋜 en relativ <tt>cd</tt> skrivs in. Om exempelvis katalogen
<tt>/usr/local</tt> finns i s鰇rutan och anv鋘daren skriver in <tt>cd bin</tt>
kommer den att flyttas till <tt>/usr/local/bin</tt> under f鰎uts鋞tning att
det inte finns n錱on <tt>bin</tt>-katalog i arbetskatalogen och inget alias
f鰎 <tt>bin</tt>.

<hr>
070701000287b6000081a40000000000000002000000013ac038a700000241000000200000000000000000000000000000002800000003reloc/wuftpd/help/alias.zh_TW.Big5.html   <header>籔隔畖</header>

硂眤ミ讽ㄏノㄏノ <tt>cd</tt> ㏑. 材琵眤癸莱 <tt>cd</tt> 荡癸隔畖. 羭ㄒㄓ弧, 狦眤ミ倒 <tt>foo</tt>  <tt>/usr/local/foo</tt>, 玥块 <tt>cd foo</tt> 盢穦рㄏノ盿 <tt>/usr/local/foo</tt> ぇい.
<p>

材ゅよ遏块讽癸 <tt>cd</tt> 块璶穓碝隔畖. 羭ㄒㄓ弧, 狦 <tt>/usr/local</tt> 穓碝隔畖い, 讽ㄏノ块 <tt>cd bin</tt>, ウ穦рㄏノ盿 <tt>/usr/local/bin</tt> ぇい (安砞⊿Τヘ玡ヘ魁い⊿Τ <tt>bin</tt>ヘ魁, τ⊿Τ <tt>bin</tt>). <p>

<hr>

   070701000287b7000081a40000000000000002000000013ac038a7000007ad000000200000000000000000000000000000001f00000003reloc/wuftpd/help/anon.es.html    <header>FTP An髇imo</header>

La primera tabla de esta p醙ina te permite especificar el directorio al
que el servidor cambiar cuando un usuario an髇imo haga login. Se puede
seleccionar un directorio diferente dependiendo de las clases de usuario
o se puede utilizar un solo directorio para todas las clases. Si no se
especifica ning鷑 directorio, el servidor FTP cambiar al directorio
inicial del usuario <tt>ftp</tt>. <p>

A causa de que el servidor llama a programas externos como <tt>ls</tt> y
<tt>tar</tt>, el directorio an髇imo ra韟 debe de contener un directorio
<tt>bin</tt> con esos programas, un directorio <tt>lib</tt> que contenga
cualquier biblioteca compartida que haga falta y un directorio <tt>etc</tt>
que contenga los archivos <tt>passwd</tt> y <tt>group</tt>. Cuando un
servidor utiliza <tt>chroot</tt> para limitar el acceso al directorio
an髇imo ra韟, no puede acceder a ning鷑 programa fuera de ese directorio.<p>

La segunda tabla controla a qu directorio el servidor har <tt>chroot</tt>
cuando los usuarios sean invitados. Para cada directorio se puede especificar
a qu usuarios se aplicar; para ello s髄o debes de digitar sus nombres,
UIDs (como <tt>%3000</tt>) o rangos de UID (como <tt>%3000-3006</tt>). Si
no se digitan usuarios, el directorio se utiliza para todos los usuarios
invitados. <p>

La tercera tabla te permite controlar como qu grupo de Unix los usuarios
an髇imos de FTP ser醤 tratados, en vez del grupo primario del usuario
<tt>ftp</tt>. Para cada grupo digitado puedes seleccionar una o m醩 clases
de usuario; por ejemplo para garantizar el acceso a ciertos archivos por
parte de usuarios an髇imos de ciertas direcciones IP. <p>

Finalmente, la secci髇 inferior de la p醙ina contiene entradas para controlar
qu claves de acceso son aceptables para los logins an髇imos de FTP.
Tradicionalmente, los usuarios FTP deber韆n de enviar una direcci髇 de
correo v醠ida como su clave de acceso para login an髇imo.<p>

<hr>

   070701000287b8000081a40000000000000002000000013ac038a7000007a2000000200000000000000000000000000000001f00000003reloc/wuftpd/help/anon.fr.html    <header>FTP Anonyme</header>

La premi鑢e table sur cette page vous permet de sp閏ifier le r閜ertoire que le serveur va d閒inir comme r閜ertoire racine quand un usager anonyme ouvrira une session.  Un r閜ertoire diff閞ent peut 阾re choisit pour un usager d'une autre classe, ou le m阭e r閜ertoire peut 阾re utilis pour toute les classes.  Si aucun r閜ertoire est sp閏ifi, le serveur FTP d閒inira comme r閜ertoire racine le r閜ertoire personnel de l'usager <tt>ftp</tt>.<p>

Car le serveur app鑜e des programmes externe comme <tt>ls</tt> et <tt>tar</tt>, le r閜ertoire racine doit contenir un r閜ertoire <tt>bin</tt> avec ces diff閞ents ex閏utables, un r閜ertoire <tt>lib</tt> contenant toutes les librairies partag閑s n閏essaires et un r閜ertoire <tt>etc</tt> qui contient les fichiers <tt>passwd</tt> et <tt>group</tt>.  QUand le serveur change le r閜ertoire racine pour limiter les acc鑣 de l'usager anonyme, il ne peut acc鑔er  aucun programme en dehors de ce r閜ertoire.<p>

La deuxi鑝e table contr鬺e quel r閜ertoire le serveur va d閒inir comme r閜ertoire racine pour les usagers invit.  Pour chaque r閜ertoire vous pouvez sp閏ifier quel usagers ce r閜ertoire s'applique en entrant le nom d'usagers, les num閞os d'usager (comme <tt>%3000</tt> ou <tt>%3000-3006</tt>).  Si aucun usager n'est entr, le r閜ertoire va s'appliquer  tout les usagers invit.<p>

La troisi鑝e table vous permet de contr鬺er quel groupe Unix l'usagers anonyme va 阾re consid閞 par le serveur FTP autre que le groupe <tt>ftp</tt>.  Pour chaque groupe entr vous pouvez choisir un ou plusieurs classes d'usager, par exemple pour donner l'acc鑣s  certain fichier  un usager anonyme d'une certaine adresse IP.<p>

Finalement, la section du bas de cette page vous permet de choisir quel type de mot de passe est acceptable pour usager anonyme qui ouvre une session.  Traditionnelement l'usager FTP doit envoyer une adresse de couriel valide comme mot de passe.<p>

<hr>
  070701000287b9000081a40000000000000002000000013ac038a7000006d3000000200000000000000000000000000000001c00000003reloc/wuftpd/help/anon.html   <header>Anonymous FTP</header>

The first table on this page allows you to specify the directory that
the server will switch to with <tt>chroot</tt> when an anonymous FTP
user logs in. A different directory can be chosen for different user
classes, or the one directory can be used for all classes. If no directory
is specified, the FTP server will <tt>chroot</tt> to the home directory
of the <tt>ftp</tt> user. <p>

Because the server calls external programs like <tt>ls</tt> and <tt>tar</tt>,
the anonymous root directory must contain a <tt>bin</tt> directory with
those programs, a <tt>lib</tt> directory containing any shared libraries
needed, an an <tt>etc</tt> directory containing <tt>passwd</tt> and
<tt>group</tt> files. When the server uses <tt>chroot</tt> to limit
access to the anonymous root directory, it cannot access any programs
outside that directory. <p>

The second table controls which directory the server will <tt>chroot</tt>
to for guest users. For each directory, you can specify which users this
directory will apply to by entering usernames, UIDs (like <tt>%3000</tt>)
or UID ranges (like <tt>%3000-3006</tt>). If no users are entered, the
directory is used for all guest users. <p>

The third table allows you to control which Unix group anonymous FTP
users will be switched to, instead of the primary group for the <tt>ftp</tt>
user. For each group entered you can choose one or more user classes,
for example to grant access to certain files to anonymous users from
certain IP addresses. <p>

Finally, the bottom section of the page has inputs to control what
passwords are acceptable for anonymous FTP logins. Traditionally, FTP
users should send a valid email address as their anonymous login password. <p>

<hr>

 070701000287ba000081a40000000000000002000000013ac038a700000697000000200000000000000000000000000000001f00000003reloc/wuftpd/help/anon.pl.html    <header>Anonimowe FTP</header>

Pierwsza tabela umo縧iwia zdefiniowanie kartoteki, do kt髍ej prze潮czy
si serwer za pomoc <tt>chroot</tt> gdy loguje si anonimowy u縴tkownik.
Dla r罂nych klas mog by u縴te inne kartoteki. Je縠li nie zdefiniowano
縜dnej kartoteki, serwer FTP prze潮czy si do katroteki home u縴tkownika
<tt>ftp</tt>.
<p>

Poniewa serwer u縴wa zewn阾rznych program體, takich jak <tt>ls</tt>
i&nbsp;<tt>tar</tt>, anonimowa kartoteka "root" musi zawiera kartotek
<tt>bin</tt> z&nbsp;tymi programami, kartotek <tt>lib</tt> zawieraj眂
wszystkie niezb阣ne biblioteki dzielone, oraz kartotek <tt>etc</tt>
zawieraj眂a zbiory <tt>passwd</tt> i&nbsp;<tt>group</tt>. Kiedy serwer
wykonuje <tt>chroot</tt>, by ograniczy dost阷 jedynie do anonimowej
kartoteki "root", to nie ma mo縧iwo禼i dost阷u do 縜dnych program體 poza t
kartotek. 
<p>

Druga tabela umo縧iwa zdefiniowanie kartotek, do kt髍ych serwer wykona
<tt>chroot</tt> dla go禼i. Dla ka縟ej kartoteki mo縩a okre秎i, kt髍ych
u縴tkownik體 ona dotyczy poprzez wprowadzenie nazwy, UID (jak <tt>%3000</tt>)
lub zakresu UID (jak <tt>%3000-3006</tt>). Je縠li nie wprowadzono
u縴tkownik體, to kartoteka b阣zie u縴ta dla wszystkich go禼i.
<p>

Trzecia tabela umo縧iwia zdefiniowanie grupy Unixa, do kt髍ej b阣
prze潮czeni u縴tkownicy anonimowi (zamiast pierwotnej grupy u縴tkownika
<tt>ftp</tt>. Dla ka縟ej takie grupy mo縩a wybra jedn lub wi阠ej
klas u縴tkownik體, na przyk砤d po to, by umo縧iwi dost阷 do niekt髍ych
plik體 tylko spod okre秎onych adres體 IP.
<p>

U&nbsp;do硊 strony definiujemy jakie has砤 b阣 wymagane od anonimowych
u縴tkownik體 FTP. Tradycyjnie powinien to by prawid硂wy adres email.
<p>

<hr>
 070701000287bb000081a40000000000000002000000013ac038a700000773000000200000000000000000000000000000002200000003reloc/wuftpd/help/anon.ru_RU.html <header>理铐桁睇 FTP</header>

襄疴 蜞犭桷 磬 溧眄铋 耱疣龛鲥 镱玮铍弪 锣 箨噻囹 赅蜞腩  觐蝾瘥 皴疴屦 镥疱觌栩  镱祛 <tt>chroot</tt> 镳 疱汨耱疣鲨 囗铐桁眍泐 FTP 镱朦珙忄蝈.
朽珥 赅蜞腩汨 祛骓 恹狃囹 潆 疣珥 觌囫耦 镱朦珙忄蝈脲, 桦 钿桧 赅蜞腩 祛骓 恹狃囹 潆 怦艴 觌囫耦.
篷腓 赅蜞腩 礤 箨噻囗, FTP 皴疴屦 皲咫噱 镥疱觌屙桢 <tt>chroot</tt> 觐痦邂钽 赅蜞腩汔  漕爨栝 赅蜞腩 镱朦珙忄蝈 <tt>ftp</tt>. <p> 

项耜铍 皴疴屦 恹琨忄弪 忭屮龛 镳钽囔禧 蜩镟 <tt>ls</tt>  <tt>tar</tt>, 蝾 囗铐桁睇 觐痦邂铋 赅蜞腩 漕腈屙 耦溴疰囹 镱潢囹嚯钽 <tt>bin</tt>  桁 镳钽疣祆囔, 镱潢囹嚯钽 <tt>lib</tt>  礤钺躅滂禧扈 疣玟咫屐 徼犭桀蝈赅扈  镱潢囹嚯钽 <tt>etc</tt> 耦溴疰帙栝 羿殡 <tt>passwd</tt>  <tt>group</tt>. 橡 桉镱朦珙忄龛 皴疴屦铎 <tt>chroot</tt> 礤忸珈铈眍 镱塍麒螯 漕耱箫  赅觇 腓犷 镳钽疣祆囔 玎 镳邃咫囔 溧眄钽 赅蜞腩汔. <p> 

买铕 蜞犭桷 觐眚痤腚桊箦,  赅觐 赅蜞腩 皴疴屦 皲咫噱 <tt>chroot</tt> 潆 镱朦珙忄蝈脲 guest. 碾 赅驿钽 赅蜞腩汔 蔓 祛驽蝈 箨噻囹,  赅觇 镱朦珙忄蝈 铗眍蝰 溧眄 赅蜞腩汨 矬蝈 箨噻囗 桁屙 镱朦珙忄蝈, UID ( 忤溴 <tt>%3000</tt>) 桦 滂囡噻铐 UID ( 忤溴 <tt>%3000-3006</tt>).
篷腓 镱朦珙忄蝈腓 礤 忖邃屙, 赅蜞腩 桉镱朦珞弪 潆 怦艴 镱朦珙忄蝈脲 guest. <p>

茵弪 蜞犭桷 镱玮铍弪 锣 箫疣怆螯 蝈, 磬 赅牦 Unix 沭箫矬 狍潴 镥疱觌屙 FTP 镱朦珙忄蝈腓 anonymous, 礤玎忤耔祛 铗 镥疴梓眍 沭箫稃 镱朦珙忄蝈 <tt>ftp</tt>.
碾 赅驿铋 忖邃屙眍 沭箫稃 蔓 祛驽蝈 箨噻囹 钿桧 桦 犷脲 觌囫耦 镱朦珙忄蝈脲, 磬镳桁屦 潆 镳邃铖蜞怆屙 漕耱箫  礤觐蝾瘥 羿殡囔 潆 镱朦珙忄蝈腴 anonymous  礤觐蝾瘥 IP 噤疱耦. <p>

袜觐礤 龛骓 鬣耱 耱疣龛鳆 桁邋 镱 忖钿 潆 箫疣怆屙 蝈, 赅觇 镟痤腓 祛泱 桉镱朦珙忄螯 潆 疱汨耱疣鲨 FTP 镱朦珙忄蝈脲 anonymous. 
茵噤桷桀眄, 镱朦珙忄蝈腓 FTP 漕腈睇 桉镱朦珙忄螯 桴 镱黩钼 噤疱  赅麇耱忮 疱汨耱疣鲨铐眍泐 镟痤. <p>

<hr>

 070701000287bc000081a40000000000000002000000013ac038a700000773000000200000000000000000000000000000002200000003reloc/wuftpd/help/anon.ru_SU.html <header>嵛衔赏钨 FTP</header>

鹋易裂 粤绿擅 瘟 牧挝鲜 釉伊紊门 邢谧咸雅 髁 账邻猎 肆粤滔  讼韵屹 优易乓 信遗颂擂稍友  邢拖葚 <tt>chroot</tt> 幸 遗巧釉伊蒙 廖衔赏蜗窍 FTP 邢特谙琢耘萄.
蛄谖倥 肆粤滔巧 拖治 踪乱猎 奶 伊谖偃 颂劣酉 邢特谙琢耘膛, 商 夏晌 肆粤滔 拖治 踪乱猎 奶 子湃 颂劣酉.
逵躺 肆粤滔 闻 账邻廖, FTP 优易乓 幽盘僚 信遗颂擂盼膳 <tt>chroot</tt> 讼椅抛锨 肆粤滔橇  南土畚墒 肆粤滔 邢特谙琢耘萄 <tt>ftp</tt>. <p> 

鹣铀咸厮 优易乓 踪谫琢旁 孜袍紊 幸锨镣唾 陨辛 <tt>ls</tt>  <tt>tar</tt>, 韵 廖衔赏钨 讼椅抛鲜 肆粤滔 南讨盼 酉呐抑猎 邢乃猎撂锨 <tt>bin</tt>  茉赏 幸锨伊屯镣, 邢乃猎撂锨 <tt>lib</tt>  闻下认纳唾蜕 伊谀盘雅唾蜕 律绿上耘肆蜕  邢乃猎撂锨 <tt>etc</tt> 酉呐抑凛墒 屏侍 <tt>passwd</tt>  <tt>group</tt>. 鹨 捎邢特谙琢紊 优易乓贤 <tt>chroot</tt> 闻紫谕现蜗 邢陶奚载 南釉招  肆松 躺孪 幸锨伊屯镣 诹 幸拍盘镣 牧挝锨 肆粤滔橇. <p> 

髟弦裂 粤绿擅 讼卧蚁烫梢张,  肆讼 肆粤滔 优易乓 幽盘僚 <tt>chroot</tt> 奶 邢特谙琢耘膛 guest. 涮 肆帜锨 肆粤滔橇 髻 拖峙耘 账邻猎,  肆松 邢特谙琢耘萄 显蜗友杂 牧挝倥 肆粤滔巧 姓耘 账邻廖裳 赏盼 邢特谙琢耘萄, UID ( 咨呐 <tt>%3000</tt>) 商 纳列邻衔 UID ( 咨呐 <tt>%3000-3006</tt>).
逵躺 邢特谙琢耘躺 闻 鬃拍盼, 肆粤滔 捎邢特谡旁友 奶 子湃 邢特谙琢耘膛 guest. <p>

粢旁匮 粤绿擅 邢谧咸雅 髁 招伊滋言 耘, 瘟 肆苏 Unix 且招姓 抡恼 信遗颂擂盼 FTP 邢特谙琢耘躺 anonymous, 闻诹咨由拖 显 信易赊蜗 且招匈 邢特谙琢耘萄 <tt>ftp</tt>.
涮 肆帜鲜 鬃拍盼蜗 且招匈 髻 拖峙耘 账邻猎 夏晌 商 孪膛 颂劣酉 邢特谙琢耘膛, 瘟幸赏乓 奶 幸拍嫌粤滋盼裳 南釉招  闻讼韵屹 屏侍镣 奶 邢特谙琢耘淌 anonymous  闻讼韵屹 IP 聊遗酉. <p>

盍讼闻 紊治蜒 蘖釉 釉伊紊觅 赏排 邢萄 鬃夏 奶 招伊滋盼裳 耘, 肆松 辛蚁躺 拖钦 捎邢特谙琢载友 奶 遗巧釉伊蒙 FTP 邢特谙琢耘膛 anonymous. 
粢聊擅上挝, 邢特谙琢耘躺 FTP 南讨钨 捎邢特谙琢载 扇 邢拊献偈 聊遗  肆夼釉着 遗巧釉伊蒙衔蜗窍 辛蚁萄. <p>

<hr>

 070701000287bd000081a40000000000000002000000013ac038a7000006b6000000200000000000000000000000000000001f00000003reloc/wuftpd/help/anon.sv.html    <header>Anonym FTP</header>

I den f鰎sta tabellen kan man ange den katalog som servern ska g till
med <tt>chroot</tt> n鋜 en anonym FTP-anv鋘dare loggar in. Man kan ange
olika kataloger f鰎 skilda anv鋘darklasser eller l錿a alla klasser anv鋘da
samma katalog. Om ingen katalog anges h鋜 kommer FTP-servern att g鰎a
<tt>chroot</tt> till hemkatalogen f鰎 <tt>ftp</tt>-anv鋘daren.

<p>Eftersom servern anropar externa program som <tt>ls</tt> och <tt>tar</tt>
m錽te den anonyma rotkatalogen inneh錶la en <tt>bin</tt>-katalog med dessa
program, en <tt>lib</tt>-katalog med de delade bibliotek som beh鰒s och en
<tt>etc</tt>-katalog som inneh錶ler <tt>passwd</tt>- och
<tt>group</tt>-filerna. N鋜 servern anv鋘der <tt>chroot</tt> f鰎 att
begr鋘sa 錿komsten till den anonyma rotkatalogen kan den inte anv鋘da
program utanf鰎 denna katalog.

<p>I den andra tabellen anges den katalog som servern ska g鰎a <tt>chroot</tt>
till f鰎 g鋝tanv鋘dare. F鰎 varje katalog kan man ange de anv鋘dare som
katalogen ska anv鋘das f鰎 genom att skriva in anv鋘darnamn, UID (t ex
<tt>%3000</tt>) eller UID-intervall (t ex <tt>%3000-3006</tt>). Om inga
anv鋘dare anges kommer katalogen att anv鋘ds f鰎 alla g鋝tanv鋘dare.

<p>I den tredje tabellen kan man ange den Unix-grupp som anonyma
FTP-anv鋘dare ska h鰎a till om man inte vill anv鋘da den prim鋜a gruppen
f鰎 <tt>ftp</tt>-anv鋘daren. F鰎 varje grupp kan man ange en eller flera
anv鋘darklasser f鰎 att exempelvis till錿a 錿komst till vissa filer f鰎
anonyma anv鋘dare fr錸 vissa IP-adresser.

<p>I den nedersta delen av sidan kan man ange de krav man st鋖ler p
l鰏enord f鰎 anonym FTP-inloggning. Normalt b鰎 FTP-anv鋘dare
skriva in en giltig e-postadress som anonymt l鰏enord.

<hr>
  070701000287be000081a40000000000000002000000013ac038a700000493000000200000000000000000000000000000002700000003reloc/wuftpd/help/anon.zh_TW.Big5.html    <header>拔 FTP</header>

硂材琵眤﹚讽拔ㄏノ祅狝竟璶 <tt>chroot</tt> ヘ魁. 癸ぃ单ㄏノ硂﹚ぃヘ魁, ┪ぃ阶单常ㄏノヘ魁. 狦⊿Τ﹚ヘ魁, FTP 盢穦 <tt>chroot</tt> ╰参 <tt>ftp</tt> ㄏノ產ヘ魁. <p>

パ狝竟穦㊣ㄒ <tt>ls</tt> ┪ <tt>tar</tt> 单场祘Α, 拔ㄏノヘ魁いゲ斗 <tt>bin</tt> ヘ魁竚硂ㄇ祘Α, ゲ斗Τ <tt>lib</tt> ヘ魁竚ㄉㄧΑ畐, <tt>etc</tt> ヘ魁竚盞絏郎籔竤舱郎. 讽狝竟ㄏノ <tt>chroot</tt> ㄏノヘ魁, ウ盢ぃ硂ヘ魁祘Α. <p>

材北狝竟璶倒琵砐 <tt>chroot</tt> ㄇヘ魁, 眤ノㄏノ嘿, UID (ㄒ <tt>%3000</tt>) ┪ UID 絛瞅 (<tt>%3000-3006</tt>) ﹚璶甅ノㄇㄏノ. 狦⊿Τ块ㄏノ, 硂ヘ魁盢穦ノ┮Τ砐. <p>

材琵眤北ㄇ Unix 竤舱ㄏノ穦砆ち传Θ拔ㄏノ, τぃ度ゎ <tt>ftp</tt> 竤舱ㄏノ. 癸–竤舱, 眤匡拒┪ㄏノ单, 羭ㄒτē, 眤甭舦郎倒疭﹚拔ㄏノㄓ疭﹚ IP . <p>

程, 硂┏狠琌ノ北ㄇ盞絏琌拔 FTP ┮钡祅盞絏. 肚参τē, FTP ㄏノ莱赣癳Τ筿秎ン祅盞絏. <p>

<hr>

 070701000287bf000081a40000000000000002000000013ac038a700000664000000200000000000000000000000000000002000000003reloc/wuftpd/help/class.es.html   <header>Usuarios y Clases</header>

El servidor WU FTP te permite clasificar a los usuarios en base a la
direcci髇 desde donde hacen login y a su tipo de usuario. Los tres tipos
de usuario son:
<ul>
<li><b>Unix</b> - Los usuarios normales de tu sistema.
<li><b>Invitado</b> - Los usuarios de Unix que han sido clasificados como
                       invitados.
<li><b>An髇imo</b> - Logins mediante el usuario <tt>an髇imo</tt> o <tt>ftp</tt>,
		       si tu sistema lo permite.
</ul><p>

La secci髇 superior de esta p醙ina te permite definir nombres de clases
partiendo de la base de tipos de usario y direcciones emisoras. Cada login
es clasificado dentro de la primera clase coincidente; por ello las clases
deber韆n de estar ordenadas desde la m醩 espec韋ica hasta la menos. Las
direcciones coincidentes para cada clase pueden ser una direcci髇 IP completa
o parcial, redes/m醩caras de red IP, nombres de m醧uina, comodines de m醧uina
(como <tt>*.foo.com</tt>) o las trayectorias absolutas a archivos que contengan
direcciones adicionales. Cualquier tipo de direcci髇 puede ir precedido con
un car醕ter ! para negarlo.<p>

La secci髇 de en medio de la p醙ina te permite controlar qu usuarios Unix
han de ser clasificados como invitados. Un usuario invitado tiene derechos
similares a un usuario normal de Unix pero est restringido a un cierto
directorio mediante <tt>chroot</tt>.<p>

La secci髇 inferior de la p醙ina controla a qu usuario Unix e invitado se le
denegar el acceso al servidor FTP. Puedes especificar a los usuarios por
nombre, por GID (como <tt>%3000</tt) o por rango de GID (como
<tt>%3000-3010</tt>). <p>

<hr>

070701000287c0000081a40000000000000002000000013ac038a700000625000000200000000000000000000000000000002000000003reloc/wuftpd/help/class.fr.html   <header>Usagers et Classes</header>

Le serveur WU FTP vous permet de classifi les usagers bas sur l'adresse sur laquels ils sont quand ils ouvrent une session et sur leurs type d'usagers.  Les trois types sont:
<ul>
	<li><b>Unix</b> - Usagers normal sur votre syst鑝e.
	<li><b>Invit</b> - Usagers Unix qui sont consid閞閟 comme des invit閟.
	<li><b>Anonyme</b> - Si disponible sur votre syst鑝e, ce sont ceux qui ouvre une session en utilisant le nom d'usager <tt>ftp</tt> ou <tt>anonymous</tt>.
</ul><p>

La section du haut de cette page vous permet de d閒inir le nom des classes, bas sur les types d'usagers ou l'adresse source.  Chaque ouverture de session est class dans la premi鑢e classe correspondante, alors les classes devoient 阾re en ordre du plus au moins sp閏ifique.  Les addresses IP correspondantes pour chaque classes peuvent 阾re compl鑤e ou partiel, adresse r閟eau/masque de sous-r閟eau, nom d'h魌es compl鑤e ou partielle (comme <tt>*.foo.com</tt>) ou des fichiers contenant des adresses aditionnelles.  Tout les types d'adresses peut 阾re pr閏閐 d'un ! pour l'inverser.<p>

La section du centre de la page vous permet de contr鬺er quel usagers Unix sont consid閞 comme des invit.  Un usager invit a les m阭es droits qu'un usager normal Unix, mais restreint  un certain r閜ertoire utilisant <tt>chroot</tt>.<p>

La section du bas de la page contr鬺e quel usagers Unix et invit seront refus d'acc鑣 sur le serveur FTP.  Vous pouvez sp閏ifi les usagers par noms ou par num閞o de groupe (comme <tt>%3000</tt> ou <tt>%3000-3010</tt>).<p>

<hr>

   070701000287c1000081a40000000000000002000000013ac038a700000549000000200000000000000000000000000000001d00000003reloc/wuftpd/help/class.html  <header>Users and Classes</header>

The WU FTP server allows you to classify users based on the address they
login from and their user type. The three user types are :
<ul>
<li><b>Unix</b> - Normal users on your system.
<li><b>Guest</b> - Unix users who have been classified as guests.
<li><b>Anonymous</b> - Logins by the <tt>anonymous</tt> or <tt>ftp</tt> user,
		       if allowed on your system.
</ul><p>

The top section of this page allows you to define named classes, based
on user types and source addresses. Every login is classified into the
first matching class, so classes should be ordered from the most to least
specific. The matching addresses for each class can be full or partial
IP addresses, IP networks/netmasks, hostnames, host wildcards
(like <tt>*.foo.com</tt>) or the absolute paths to files containing additional
addresses. Any type of address can be preceded with a ! to negate it. <p>

The middle section of this page allows you to control which Unix users
to classify as guests. A guest user has similar rights to a normal Unix
user, but is restricted to a certain directory using <tt>chroot</tt>. <p>

The lower section of the page controls which Unix and guest users will
be denied access to the FTP server. You may specify users by name, by
GID (like <tt>%3000</tt>) or by GID range (like <tt>%3000-3010</tt>). <p>

<hr>

   070701000287c2000081a40000000000000002000000013ac038a700000605000000200000000000000000000000000000002000000003reloc/wuftpd/help/class.pl.html   <header>U縴tkownicy i klasy</header>

Serwer WU FTP pozwala na klasyfikacj u縴tkownik體 w&nbsp;oparciu
o&nbsp;adres IP, z&nbsp;kt髍ego si loguj i&nbsp;typ u縴tkownika. Istniej
trzy typy u縴tkownik體:
<ul>
<li><b>Uniksa</b> - Normalni u縴tkownicy systemu Unix.
<li><b>Go禼ie</b> - U縴tkownicy Uniksa sklasyfikowani jako go禼ie.
<li><b>Anonimowi</b> - Wlogowani jako u縴tkownik <tt>anonymous</tt> lub
		      <tt>ftp</tt>, je縠li system na to pozwala.
</ul>
<p>

Pierwsza sekcja strony umo縧iwia zdefiniowanie nazwanych klas w&nbsp;oparciu
o&nbsp;typ u縴tkownika i&nbsp;jego adres IP. Ka縟y login b阣zie
klasyfikowany do pierwszej pasuj眂ej klasy, zatem klasy powinny by
definiowane poczynaj眂 od najbardziej specyficznych. Adresy mog by podane
w&nbsp;postaci pe硁ego lub cz甓ciowego adresu IP, kombibacji podsie
IP/maska, nazw komputer體 (z&nbsp;rozwijanymi znakami * i&nbsp;?, jak na
przyk砤d<tt>*.foo.com</tt>), oraz absolutnych 禼ie縠k do plik體
zawieraj眂ych adresy. W&nbsp;celu zanegowania ka縟y adres mo縠 by
poprzedzony wykrzyknikiem !. 
<p>

Nast阷na sekcja umo縧iwia okre秎enie, kt髍zy u縴tkownicy Uniksa maj by
klasyfikowani jako go禼ie. Go舵 ma prawa podobne jak zwyk硑 u縴tkownik
Uniksa, ale poprzez zastosowanie <tt>chroot</tt> jest ograniczony do
okre秎onej kartoteki.
<p>

Ostatnia sekcja umo縧iwia okre秎enie, kt髍zy u縴tkownicy Unixa i&nbsp;go禼ie
nie mog korzysta z&nbsp;serwera FTP. Mo縩a wyspecyfikowa u縴tkownik體
poprzez nazw, GID (jak <tt>%3000</tt>) lub zakres GID (jak
<tt>%3000-3010</tt>). 
<p>

<hr>
   070701000287c3000081a40000000000000002000000013ac038a700000610000000200000000000000000000000000000002300000003reloc/wuftpd/help/class.ru_RU.html    <header>项朦珙忄蝈腓  孰囫覃</header>

WU FTP 皴疴屦 镱玮铍弪 锣 觌囫耔翳鲨痤忄螯 镱朦珙忄蝈脲 铖眍恹忄顸 磬 噤疱皴  觐蝾痤泐 铐 疱汨耱痂痼  蜩镥 镱朦珙忄蝈.
洋耱怏 蝠 蜩镟 镱朦珙忄蝈脲: 

<ul>
<li><b>Unix</b> - 皖痨嚯 镱朦珙忄蝈腓 锣 耔耱屐.
<li><b>Guest</b> - 项朦珙忄蝈腓 Unix, 觐蝾瘥 觌囫耔翳鲨痤忄睇 赅 泐耱.
<li><b>Anonymous</b> - 绣汨耱疣鲨 镱 桁屙囔 <tt>anonymous</tt> 桦 <tt>ftp</tt>, 羼腓 蜞觐恹 疣琊屮屙 磬 锣 耔耱屐.
</ul><p>

洛瘐 鬣耱 溧眄铋 耱疣龛鳆 镱玮弪 锣 铒疱溴腓螯 桁屙钼囗睇 觌囫覃,
铖眍恹忄顸 磬 蜩镟 镱朦珙忄蝈脲  桴 噤疱襦. 枢驿 疱汨耱疣鲨 觌囫耔翳鲨痼弪 镱 镥疴铎 耦怙噤屙棹  觌囫耦, .. 觌囫覃 漕腈睇 猁螯 箫铕漕麇睇 铗 犷脲  戾礤 耧弼梏梓睇.
冷疱 耦怙噤屙 潆 赅驿钽 觌囫襦, 祛驽 猁螯 镱腠 桦 鬣耱梓睇 IP 噤疱耦, IP 皴螯/皴蝈忸 爨耜铋, 桁屙屐 躅耱 桦 犭铐铎 躅耱. (蜩镟 <tt>*.foo.com</tt>) 桦 噌耦膻蝽 矬扈  羿殡囔 耦溴疰帙桁 漕镱腠栩咫 噤疱襦.
塔犷 蜩 噤疱襦 祛驽 镳邃忄螯 ! 潆 邈 铗痂鲟龛. <p>

佯邃 鬣耱 溧眄铋 耱疣龛鳆 镱玮弪 锣 觐眚痤腚桊钼囹, 赅觇 镱朦珙忄蝈脲 
Unix 觌囫耔翳鲨痤忄螯 赅 泐耱彘. 项朦珙忄蝈朦 - 泐耱 桁邋 镳噔 囗嚯钽梓睇 镳噔囔 钺睇 镱朦珙忄蝈脲 Unix, 眍 钽疣龛麇睇 礤觇 赅蜞腩泐 镳 镱祛 耔耱屐眍泐 恹珙忄 <tt>chroot</tt>. <p>

丸骓 鬣耱 溧眄铋 耱疣龛鳆, 箫疣怆弪 蝈, 赅觇 镱朦珙忄蝈 Unix  泐耱
狍溴 玎镳妁屙 漕耱箫  FTP 皴疴屦. 蔓 祛驽蝈 箨噻囹 镱朦珙忄蝈脲 镱 桁屙,
镱 GID (蜩镟 <tt>%3000</tt>) 桦 镱 滂囡噻铐 GID (蜩镟 <tt>%3000-3010</tt>). <p>

<hr>

070701000287c4000081a40000000000000002000000013ac038a700000610000000200000000000000000000000000000002300000003reloc/wuftpd/help/class.ru_SU.html    <header>鹣特谙琢耘躺  胩劣淤</header>

WU FTP 优易乓 邢谧咸雅 髁 颂劣由粕蒙蚁琢载 邢特谙琢耘膛 嫌蜗踪琢延 瘟 聊遗优  讼韵蚁窍 衔 遗巧釉疑艺涝友  陨信 邢特谙琢耘萄.
笳菖釉渍涝 砸 陨辛 邢特谙琢耘膛: 

<ul>
<li><b>Unix</b> - 钕彝撂匚倥 邢特谙琢耘躺 髁叟 由釉磐.
<li><b>Guest</b> - 鹣特谙琢耘躺 Unix, 讼韵屹 颂劣由粕蒙蚁琢钨 肆 窍釉.
<li><b>Anonymous</b> - 蚺巧釉伊蒙 邢 赏盼镣 <tt>anonymous</tt> 商 <tt>ftp</tt>, 庞躺 粤讼踪 伊谝袍盼 瘟 髁叟 由釉磐.
</ul><p>

髋胰窝 蘖釉 牧挝鲜 釉伊紊觅 邢谧萄旁 髁 闲遗呐躺载 赏盼献廖钨 颂劣淤,
嫌蜗踪琢延 瘟 陨辛 邢特谙琢耘膛  扇 聊遗恿. 肓帜裂 遗巧釉伊蒙 颂劣由粕蒙艺旁友 邢 信易贤 酉仔聊盼衫  颂劣酉, .. 颂劣淤 南讨钨 沦载 招弦涯限盼 显 孪膛  团闻 有琶善赊钨.
崮遗 酉仔聊盼裳 奶 肆帜锨 颂劣恿, 拖峙 沦载 邢涛偻 商 蘖釉赊钨 IP 聊遗酉, IP 优载/优耘紫 土铀鲜, 赏盼磐 认釉 商 哿绿衔贤 认釉. (陨辛 <tt>*.foo.com</tt>) 商 谅酉汤晕偻 姓匝蜕  屏侍镣 酉呐抑凛赏 南邢涛稍盘匚倥 聊遗恿.
炖孪 陨 聊遗恿 拖峙 幸拍琢已载 ! 奶 徘 显疑昧紊. <p>

笠拍窝 蘖釉 牧挝鲜 釉伊紊觅 邢谧萄旁 髁 讼卧蚁烫梢献猎, 肆松 邢特谙琢耘膛 
Unix 颂劣由粕蒙蚁琢载 肆 窍釉攀. 鹣特谙琢耘特 - 窍釉 赏排 幸磷 廖撂锨赊钨 幸磷镣 下俎钨 邢特谙琢耘膛 Unix, 蜗 锨伊紊夼钨 闻松 肆粤滔窍 幸 邢拖萆 由釉磐蜗窍 踪谙琢 <tt>chroot</tt>. <p>

钌治蜒 蘖釉 牧挝鲜 釉伊紊觅, 招伊滋雅 耘, 肆松 邢特谙琢耘萄 Unix  窍釉淹
抡呐 诹幸泡盼 南釉招  FTP 优易乓. 髻 拖峙耘 账邻猎 邢特谙琢耘膛 邢 赏盼,
邢 GID (陨辛 <tt>%3000</tt>) 商 邢 纳列邻衔 GID (陨辛 <tt>%3000-3010</tt>). <p>

<hr>

070701000287c5000081a40000000000000002000000013ac038a7000005aa000000200000000000000000000000000000002000000003reloc/wuftpd/help/class.sv.html   <header>Anv鋘dare och klasser</header>

WU FTP-servern till錿er klassificering av anv鋘dare baserat p den adress
de loggar in fr錸 och deras anv鋘dartyp. Det finns tre anv鋘daretyper:
<ul>
<li><b>Unix</b> - Vanliga anv鋘dare i systemet.
<li><b>G鋝t</b> - Unix-anv鋘dare som har klassificerats som g鋝ter.
<li><b>Anonym</b> - Inloggningar av anv鋘darna <tt>anonym</tt> eller
<tt>ftp</tt>, om detta till錿s i systemet.
</ul><p>

H鰃st upp p sidan kan man definiera klasser beroende p anv鋘dartyp och
uppkopplingsadress. Varje inloggning f鰎s till den f鰎sta klass som matchar,
vilket betyder att man b鰎 ordna klasserna fr錸 mest till minst specifik.
Adresserna f鰎 en klass kan vara fullst鋘diga eller partiella IP-adresser,
IP-n鋞verk/n鋞maskar, datornamn, datornamn med jokertecken (t ex
<tt>*.foo.com</tt>) eller absoluta s鰇v鋑ar till filer som inneh錶ler
adresser. Varje adressangivelse kan ocks negeras genom att ett !
(utropstecken) skrivs f鰎st.

<p>P mitten av sidan kan man ange de Unix-anv鋘dare och -grupper som ska
behandlas som g鋝ter. En g鋝tanv鋘dare har ungef鋜 samma r鋞tigheter som en
vanlig Unix-anv鋘dare, men 鋜 begr鋘sad till en viss katalog med hj鋖p av
<tt>chroot</tt>.

<p>L鋘gst ned p sidan kan man ange Unix-anv鋘dare och -grupper som ska nekas
錿komst till FTP-servern. Anv鋘dare kan anges med namn, UID (t ex
<tt>%3000</tt>) eller UID-intervall (t ex <tt>%3000-3006</tt>). Grupper kan
anges p liknande s鋞t.

<hr>
  070701000287c6000081a40000000000000002000000013ac038a7000003c0000000200000000000000000000000000000002800000003reloc/wuftpd/help/class.zh_TW.Big5.html   <header>ㄏノ籔单</header>

WU FTP 狝竟す砛眤祅ㄓ方竚籔ㄏノ摸盢ㄏノだ. 贺ㄏノ摸:
<ul>
<li><b>Unix</b> - 眤╰参ㄏノ.
<li><b>Guest</b> - 砆讽砐 Unix ㄏノ.
<li><b>Anonymous</b> - 狦眤╰参す砛, 钡 <tt>anonymous</tt> ┪ <tt>ftp</tt> 祅眤╰参.
</ul><p>

硂郴狠す砛眤﹚竡单嘿, 膀ㄏノ摸籔ㄓ方竚. –祅常穦砆だΘ材才单, ┮砏玥莱赣璶み逼. 癸–单才よΑ琌Ч俱┪场だ IP , IP 呼隔/呼隔綛竛, 诀嘿,窾ノじ (ㄒ <tt>*.foo.com</tt>), ┪琌郎荡癸隔畖. ヴ摸常 '!' 才腹┛菠ぇ. <p>

硂い丁跋办琵眤北ㄇ Unix ㄏノ璶砆だΘ砐. 砐舦籔 Unix ㄏノ獶盽钡, 砆 <tt>chroot</tt> ┮﹚ヘ魁. <p>

程跋办北璶┶荡ㄇ Unix ㄏノ┪砐璶砆硂 FTP 狝竟┮┶荡. 眤ノㄏノ嘿, UID (ㄒ <tt>%3000</tt>) ┪ UID 絛瞅 (<tt>%3000-3006</tt>) ﹚ぇ. <p>

<hr>

070701000287c7000081a40000000000000002000000013ac038a700000418000000200000000000000000000000000000002000000003reloc/wuftpd/help/intro.es.html   <header>Servidor FTP</header>

Este m骴ulo te permite configurar el servidor FTP de WU-FTPd instalado en
tu sistema. Los usuarios que tengan cuentas en tu sistema pueden hacer login
el el servidor FTP y acceder a sus archivo usando programas cliente como
por ejemplo Netscape, <tt>ncftp</tt>, el visor de archivos de KDE o
cualquiera de los muchos clientes de FTP para Windows. Puedes configurar
tambi閚 un servidor p鷅lico FTP al que los usuarios an髇imos puedan tener
acceso de s髄o-lectura o de lectura-escritura a un subconjunto limitado de
archivos de tu sistema.<p>

La p醙ina principal de este m骴ulo muestra una tabla de iconos, uno por
cada categor韆 de opciones configurables. Si tu servidor FTP se est
ejecutando como proceso 鷑ico, se te mostrar un bot髇 al fondo de la p醙ina
para que puedas rearrancar el servidor FTP y aplicar los valores en curso.
Sin embargo, si tu sistema se ejecuta desde <tt>inetd</tt> como hacen la
mayor韆, cualquier cambio que hagas tendr efecto inmedi醫amente para las
nuevas sesiones de FTP. <p>

<hr>

070701000287c8000081a40000000000000002000000013ac038a7000003b5000000200000000000000000000000000000002000000003reloc/wuftpd/help/intro.fr.html   <header>Serveur FTP</header>

Ce module vous permet de configurer le serveur WU-FTPd install sur votre syst鑝e.  Les usagers avec des accomptes sur votre syst鑝e peut ouvrir une session sur le serveur FTP et acc鑔er  leurs fichier utilisant un client comme Netscape, <tt>ncftpd</tt>, le gestionnaire de fichier de KDE ou un des nombreux client FTP sous Windows.  Vous pouvez aussi configurer un serveur FTP public que les usagers peuvent ouvrir une session anonymement et acc閐er  certain fichiers en lecture seule ou en lecture et 閏riture.<p>

La page principale de ce module vous affiches une s閞ie d'頲ones, un pour chaque cat間orie des options configurables.  Si votre serveur FTP est ex閏uter seule et non par <tt>inetd</tt> comme la majorit font, vous devrez red閙arrer votre serveur FTP pour appliquer tout changement, tandis que via <tt>inetd</tt>, les changements seront tenu compte sur toute nouvelle ouverture de sessions.<p>

<hr>

   070701000287c9000081a40000000000000002000000013ac038a700000381000000200000000000000000000000000000001d00000003reloc/wuftpd/help/intro.html  <header>FTP Server</header>

This module allows you to configure the WU-FTPd FTP server installed on your
system. Users with accounts on your system can login to the FTP server and
access their files using client programs such as Netscape, <tt>ncftp</tt>,
the KDE file browser or one of the many Windows FTP clients. You can also
setup a public FTP server to which anonymous users are allowed read-only or
read-write access to a limited subset of files on your system. <p>

The main page of this module shows a table of icons, one for each category
of configurable options. If your FTP server is running as a standalone
process, a button will be displayed at the bottom of the page for you to
restart the FTP server and apply the current settings. However, if your
system runs FTPd from <tt>inetd</tt> as most do, any changes you make will
take effect immediately for new FTP sessions. <p>

<hr>

   070701000287ca000081a40000000000000002000000013ac038a7000003a5000000200000000000000000000000000000002000000003reloc/wuftpd/help/intro.pl.html   <header>Serwer FTP</header>

Modu umo縧iwia konfiguracj serwera FTP (WU-FTPd). U縴tkownicy
z&nbsp;kontami mog si wlogowa do serwera FTP i&nbsp;uzyska dost阷 do
swoich zbior體 za pomoc program體 takich jak Netscape, <tt>ncftp</tt>,
manager zbior體 KDE lub jednym z&nbsp;klient體 FTP dzia砤j眂ych pod kontrol
Windows. Mo縩a r體nie skonfigurowa publiczny serwer FTP - w&nbsp;ten
spos骲 anonimowi u縴tkownicy mog uzyska dost阷 do ograniczonej cz甓ci
zbior體. 
<p>

G丑wna strona modu硊 zawiera tabel ikon, za pomoc kt髍ych mo縩a wybra
kategorie konfigurowalnych opcji. Je縠li serwer FTP jest uruchomiony jako
samodzielny proces, u&nbsp;do硊 strony b阣zie wy秝ietlony przycisk, kt髍y
umo縧iwi jego zrestartowanie i&nbsp;zastosowanie wprowadzonych zmian. Je縠li
serwer FTP jest uruchamiany poprzez demona <tt>inetd</tt> (co najcz甓ciej ma
miejsce), wszystkie zmiany b阣 zastosowane dla nowo uruchamianych
sesji.
<p>

<hr>

   070701000287cb000081a40000000000000002000000013ac038a7000003da000000200000000000000000000000000000002300000003reloc/wuftpd/help/intro.ru_RU.html    <header>FTP 彦疴屦</header>

泥眄 祛潴朦 镱玮铍弪 锣 磬耱疣桠囹 FTP 皴疴屦 WU-FTPd 篑蜞眍怆屙睇 磬 锣 耔耱屐.
项朦珙忄蝈腓 锣 耔耱屐 祛泱 疱汨耱痂痤忄螯 磬 FTP 皴疴屦  镱塍鬣螯 漕耱箫  羿殡囔  镱祛 镳钽疣祆-觌桢眚钼, 蜞觇 赅 Netscape, <tt>ncftp</tt>,
羿殡钼 狃囿珏 KDE 桦 钿桧 桤 祉钽铟桉脲眄 FTP 觌桢眚钼 窝 Windows.
蔓 蜞赕 祛驽蝈 磬耱痤栩 钺漕耱箫睇 FTP 皴疴屦  觐蝾痤祗 镱朦珙忄蝈腓 anonymous 狍潴 桁弪 漕耱箫 磬 黩屙桢 桦 黩屙桢-玎镨顸 潆 钽疣龛麇眄钽 祉铈羼蜮 羿殡钼 磬 锣 耔耱屐. <p>

务眍忭 耱疣龛鲟 溧眄钽 祛潴 镱赅琨忄弪 蜞犭桷 镨牝钽疣祆, 镱 钿眍 磬 赅驿簋 赅蝈泐痂 镟疣戾蝠钼 觐眙桡箴圉梃.
篷腓 锣 FTP 皴疴屦 疣犷蜞弪 赅 礤玎忤耔禧 镳铞羼, 忭桤 耱疣龛鳆 狍溴 镱赅玎磬 觏铒赅 潆 疱耱囵蜞 FTP 皴疴屦  嚓蜩忤玎鲨 蝈牦 觐眙桡箴圉梃.
武磬觐, 羼腓 锣 耔耱屐 玎矬耜噱 FTPd 麇疱 <tt>inetd</tt>, 赅 钺眍  镳铊聃钿栩, 蝾 膻猁 桤戾礤龛 狍潴 嚓蜩忤玷痤忄眄 潆 膻猁 忭钼 铗牮噱禧 皴耨栝. <p>

<hr>

  070701000287cc000081a40000000000000002000000013ac038a7000003da000000200000000000000000000000000000002300000003reloc/wuftpd/help/intro.ru_SU.html    <header>FTP 笈易乓</header>

淞挝偈 拖恼特 邢谧咸雅 髁 瘟釉伊勺猎 FTP 优易乓 WU-FTPd 沼粤蜗滋盼钨 瘟 髁叟 由釉磐.
鹣特谙琢耘躺 髁叟 由釉磐 拖钦 遗巧釉疑蚁琢载友 瘟 FTP 优易乓  邢陶蘖载 南釉招  屏侍镣  邢拖葚 幸锨伊屯-颂膳卧献, 粤松 肆 Netscape, <tt>ncftp</tt>,
屏侍献偈 乱琳谂 KDE 商 夏晌 哨 臀锨限捎膛挝偃 FTP 颂膳卧献 矬 Windows.
髻 粤酥 拖峙耘 瘟釉蚁稍 下菖南釉招钨 FTP 优易乓  讼韵蚁驼 邢特谙琢耘躺 anonymous 抡恼 赏旁 南釉招 瘟 拊盼膳 商 拊盼膳-诹猩迂 奶 锨伊紊夼挝锨 臀现庞宰 屏侍献 瘟 髁叟 由釉磐. <p>

镉蜗孜裂 釉伊紊昧 牧挝锨 拖恼萄 邢肆谫琢旁 粤绿擅 猩嗽锨伊屯, 邢 夏蜗 瘟 肆帜绽 肆耘窍疑 辛伊团砸献 讼纹汕找撩缮.
逵躺 髁 FTP 优易乓 伊孪粤旁 肆 闻诹咨由唾 幸厦庞, 孜哨 釉伊紊觅 抡呐 邢肆诹瘟 宋闲肆 奶 遗釉烈粤 FTP 优易乓  了陨咨诹蒙 耘苏菖 讼纹汕找撩缮.
锬瘟讼, 庞躺 髁哿 由釉磐 诹姓铀僚 FTPd 夼遗 <tt>inetd</tt>, 肆 下俎蜗  幸仙尤夏稍, 韵 汤沦 哨团闻紊 抡恼 了陨咨谏蚁琢挝 奶 汤沦 孜献 显艘僮僚唾 优佑墒. <p>

<hr>

  070701000287cd000081a40000000000000002000000013ac038a70000035e000000200000000000000000000000000000002000000003reloc/wuftpd/help/intro.sv.html   <header>FTP-server</header>

I denna modul g鰎s inst鋖lningar f鰎 WU-FTPd-FTP-servern i systemet. Anv鋘dare
som har ett konto p systemet kan logga in p FTP-servern och komma 錿 sina
filer med hj鋖p av klientprogram som Netscape, <tt>ncftp</tt>, KDE-filbrowsern
eller n錱on Windows-FTP-klient. Det g錼 ocks att s鋞ta upp en publik
FTP-server d鋜 anonyma anv鋘dare kan l鋝a och kanske 鋠en skriva i en
avgr鋘sad del av filerna p systemet.

<p>P startsidan finns en m鋘gd ikoner som var och en representerar en
kategori inst鋖lningar. Om FTP-servern k鰎s som standalone-process kommer
det l鋘gst ned p sidan att finnas en knapp f鰎 att starta om FTP-servern
och genomf鰎a de 鋘dringar man har st鋖lt in. Om d鋜emot systemet k鰎 FTPd
fr錸 <tt>inetd</tt>, vilket 鋜 vanligast, kommer alla 鋘dringar man g鰎 att
direkt tr鋎a i kraft f鰎 nya FTP-sessioner.

<hr>
  070701000287ce000081a40000000000000002000000013ac038a700000252000000200000000000000000000000000000002800000003reloc/wuftpd/help/intro.zh_TW.Big5.html   <header>FTP 狝竟</header>

硂家舱琵眤舱篈杆眤╰参 WU-FTPd 狝竟. 眤╰参ㄏノ祅硂 FTP 狝竟ㄏノㄒ Netscape, <tt>ncftp</tt>, KDE 郎聅凝竟┪ㄤ跌怠 FTP め狠祘Α郎. 眤砞﹚そ秨┦ FTP 狝竟ㄑ拔ㄏノㄌ沮眤┮Τ眤╰参. <p>

硂家舱璶礶陪ボ╰瓜ボ, –常ノ舱篈场. 狦眤 FTP 狝竟ㄏ縒ミ祘磅︽, 硂┏狠盢穦Τ秙穝币笆 FTP 狝竟甅ノヘ玡砞﹚. 礛τ, 狦眤 FTP ㄏパ <tt>inetd</tt> ┮北, 眤┮跑穦ミ癸 FTP 祇ネ紇臫. <p>

<hr>

  070701000287cf000081a40000000000000002000000013ac038a700000384000000200000000000000000000000000000001e00000003reloc/wuftpd/help/log.es.html <header>Historial</header>

Esta p醙ina te permite configurar lo que el servidor FTP guarda como historial
y d髇de lo guarda. Las opciones disponibles son:
<dl>
<dt><b>Llevar historial de todos los comandos para</b>
<dd>Se llevar un historial de cada comando de aquellos usuarios que
     pertenezcan a los tipos seleccionados
<dt><b>Historial de transferencias para</b>
<dd>Se llevar historial de las transferencias de los directorios
    seleccionados realizadas por los usuarios de los tipos seleccionados.
<dt><b>Llevar historial de transferencias en</b>
<dd>Determina si las transferencias son grabadas en <tt>syslog</tt> o
    el archivo <tt>xferlog</tt> de WU-FTPd,
    normalmente <tt>/var/log/xferlog</tt>.
<dt><b>Llevar historial de violaciones de seguridad para</b>
<dd>Usarios de tipos seleccionados a los que se grabar醤 las violacions de
    seguridad en <tt>syslog</tt>
</dl>

<hr>

070701000287d0000081a40000000000000002000000013ac038a700000310000000200000000000000000000000000000001e00000003reloc/wuftpd/help/log.fr.html <header>Journal</header>

Cette page vous permet de configurer qu'est-ce que le serveur FTP garde dans les journaux et o.  Les options disponibles sont :
<dl>
<dt><b>Enregistrer toutes les commandes de</b>
<dd>Les usagers du type choisit auront toutes leurs commandes enregistr閟
<dt><b>Enregistrer les transferts pour</b>
<dd>Les usagers du type choisit auront leurs transfert dans la direction choisit enregistr閟.
<dt><b>Enregistrer les transferts </b>
<dd>D閠erminer o les messages seront enregistr, dans <tt>syslog</tt>, ou le fichier <tt>xferlog</tt> de WU-FTPd, g閚閞alement <tt>/var/log/xferlog</tt>.
<dt><b>Enregistrer les violations de s閏urit pour</b>
<dd>Les usagers du type s閘ectionn auront les violations de s閏urit enregistr dans <tt>syslog</tt>.
</dl>

<hr>

070701000287d1000081a40000000000000002000000013ac038a7000002a2000000200000000000000000000000000000001b00000003reloc/wuftpd/help/log.html    <header>Logging</header>

This page allows you to configure what the FTP server logs, and where it
logs to. The options available are :
<dl>
<dt><b>Log all commands for</b>
<dd>Users of the selected types will have every command logged
<dt><b>Log transfers for</b>
<dd>Users of the selected types will have transfers in the selected directions
    logged.
<dt><b>Log transfers to</b>
<dd>Determines whether transfers are logged to <tt>syslog</tt>, or the WU-FTPd
    <tt>xferlog</tt> file, usually <tt>/var/log/xferlog</tt>.
<dt><b>Log security violations for</b>
<dd>Users of the selected types will have have security violations logged
    to <tt>syslog</tt>
</dl>

<hr>

  070701000287d2000081a40000000000000002000000013ac038a7000002f3000000200000000000000000000000000000001e00000003reloc/wuftpd/help/log.pl.html <header>Logowanie</header>

Strona umo縧iwia skonfigurowanie opcji logowania serwera FTP - co serwer
zapisuje i&nbsp;do jakich zbior體. Mo縧iwe opcje to:
<dl>
<dt><b>Loguj wszystkie polecenia</b>
<dd>Polecenia wykonane przez u縴tkownik體 wybranych typ體 zostan zapisane
    w&nbsp;logu
<dt><b>Loguj transfer plik體</b>
<dd>Logowany b阣zie transfer plik體 w&nbsp;wybranym kierunku przez
    u縴tkownik體 okre秎onego typu.
<dt><b>Loguj do</b>
<dd>Decyduje czy transfery s logowane poprzez <tt>syslog</tt>,
    czy zapisywane przez WU-FTPd do zbioru, zwykle <tt>/var/log/xferlog</tt>.
<dt><b>Loguj z砤manie regu bezpiecze駍twa</b>
<dd>Z砤manie regu bezpiecze駍twa przez u縴tkownik體 okre秎onego typu b阣zie
    logowane przez <tt>syslog</tt>
</dl>

<hr>
 070701000287d3000081a40000000000000002000000013ac038a7000002c6000000200000000000000000000000000000002100000003reloc/wuftpd/help/log.ru_RU.html  <header>企痦嚯桤圉</header>

泥眄 耱疣龛鲟 镱玮铍弪 锣 磬耱痤栩 - 黩  牦溧 皴疴屦 狍溴 骟痦嚯桊钼囹.
念耱箫睇 镟疣戾蝠:
<dl>
<dt><b>企痦嚯桊钼囹 怦 觐爨礓 潆</b>
<dd>馏潴 玎镨襦睇 怦 觐爨礓 潆 恹狃囗睇 蜩镱 镱朦珙忄蝈脲
<dt><b>企痦嚯桊钼囹 镥疱溧麒 潆</b>
<dd>馏潴 玎镨襦睇 怦 镥疱溧麒 溧眄  恹狃囗眍 磬镳噔脲龛 潆 恹狃囗睇 蜩镱 镱朦珙忄蝈脲.
<dt><b>企痦嚯桊钼囹 </b>
<dd>物疱溴弪, 觐沅 骟痦嚯 狍潴 玎镨覃忄螯  <tt>syslog</tt>, 桦  WU-FTPd <tt>xferlog</tt> 羿殡 (钺眍 <tt>/var/log/xferlog</tt>).
<dt><b>企痦嚯桊钼囹 磬痼龛 徨珙镟耥铖蜩 潆</b>
<dd>碾 镱朦珙忄蝈脲 恹狃囗眍泐 蜩镟 磬痼龛 徨珙镟耥铖蜩 狍潴 玎镨覃忄螯  <tt>syslog</tt>
</dl>

<hr>

  070701000287d4000081a40000000000000002000000013ac038a7000002c6000000200000000000000000000000000000002100000003reloc/wuftpd/help/log.ru_SU.html  <header>稣椅撂哨撩裳</header>

淞挝裂 釉伊紊昧 邢谧咸雅 髁 瘟釉蚁稍 - 拊  苏牧 优易乓 抡呐 终椅撂梢献猎.
湎釉招钨 辛伊团砸:
<dl>
<dt><b>稣椅撂梢献猎 子 讼土文 奶</b>
<dd>庹恼 诹猩恿钨 子 讼土文 奶 踪乱廖钨 陨邢 邢特谙琢耘膛
<dt><b>稣椅撂梢献猎 信遗牧奚 奶</b>
<dd>庹恼 诹猩恿钨 子 信遗牧奚 牧挝偃  踪乱廖蜗 瘟幸磷膛紊 奶 踪乱廖钨 陨邢 邢特谙琢耘膛.
<dt><b>稣椅撂梢献猎 </b>
<dd>镄遗呐萄旁, 讼悄 终椅撂 抡恼 诹猩淤琢载友  <tt>syslog</tt>, 商  WU-FTPd <tt>xferlog</tt> 屏侍 (下俎蜗 <tt>/var/log/xferlog</tt>).
<dt><b>稣椅撂梢献猎 瘟艺叟紊 屡谙辛游嫌陨 奶</b>
<dd>涮 邢特谙琢耘膛 踪乱廖蜗窍 陨辛 瘟艺叟紊 屡谙辛游嫌陨 抡恼 诹猩淤琢载友  <tt>syslog</tt>
</dl>

<hr>

  070701000287d5000081a40000000000000002000000013ac038a7000002bb000000200000000000000000000000000000001e00000003reloc/wuftpd/help/log.sv.html <header>Loggning</header>

P denna sida st鋖ler man in vad FTP-servern ska logga och var den ska
skriva loggmeddelanden. Det finns f鰈jande alternativ:
<dl>
<dt><b>Logga alla kommandon f鰎</b>
<dd>F鰎 de angivna anv鋘dartyperna loggas alla kommandon.
<dt><b>Logga 鰒erf鰎ingar f鰎</b>
<dd>F鰎 de angivna anv鋘dartyperna loggas 鰒erf鰎ingar i vald riktning.
<dt><b>Skriv 鰒erf鰎ingsloggar till</b>
<dd>H鋜 anger man var servern ska skriva 鰒erf鰎ingsloggarna; <tt>syslog</tt>
    eller WU-FTPd <tt>xferlog</tt>-filen, oftast <tt>/var/log/xferlog</tt>.
<dt><b>Logga s鋕erhets鰒ertr鋎elser f鰎</b>
<dd>F鰎 de angivna anv鋘dartyperna loggas s鋕erhets鰒ertr鋎elser till
    <tt>syslog</tt>.
</dl>

<hr>
 070701000287d6000081a40000000000000002000000013ac038a700000232000000200000000000000000000000000000002600000003reloc/wuftpd/help/log.zh_TW.Big5.html <header>魁</header>

硂琵眤舱篈 FTP 狝竟魁, 籔璶竚魁竚. ノ匡兜:
<dl>
<dt><b>魁ㄏノ摸...┮Τ㏑</b>
<dd>癸┮匡拒摸ㄏノ常穦ΤЧ俱磅︽㏑魁.
<dt><b>魁ㄏノ摸...肚块</b>
<dd>癸┮匡拒摸ㄏノ常穦魁┮﹚肚块よ.
<dt><b>魁肚癳</b>
<dd>∕﹚璶魁 <tt>syslog</tt> い, ┪ WU-FTPd  <tt>xferlog</tt> (硄盽竚 <tt>/var/log/xferlog</tt>) 郎い.
<dt><b>魁ㄏノ摸...笻砏</b>
<dd>癸┮匡拒ㄏノ摸ㄏノぇ笻砏常穦砆癳 <tt>syslog</tt> い.
    to <tt>syslog</tt>
</dl>

<hr>

  070701000287d7000081a40000000000000002000000013ac038a700000473000000200000000000000000000000000000002200000003reloc/wuftpd/help/message.es.html <header>Mensajes y Titulares</header>

La primera tabla de esta p醙ina te permite configurar los archivos de
mensajes que se mostrar醤 al usuario cada vez que haga login o cuando
entre en un cierto directorio. Para cada archivo de mensaje debes de
especificar una trayectoria (absoluta o relativa al directorio), decidir
cu醤do ha de ser mostrado y seleccionar las clases de usuario a las que
mostrar este archivo de mensaje (si no se digitan clases, el archivo
ser mostrado para todos). <p>

La segunda tabla es para configurar archivos LEEME. El servidor FTP
mostrar la hora de la 鷏tima modificaci髇 de cada archivo ya sea al
hacer login o cuando se entre en un cierto directorio. Para cada archivo
LEEME debes de especificar una trayectoria, escoger cu醤do ha de ser
mostrado y seleccionar las clases de usuario a las que mostrar la hora
de la 鷏tima modificaci髇. <p>

En la parte inferior de la p醙ina hay unas pocas opciones adicionales
que se refieren a los archivos de mensajes. La m醩 鷗il es la opci髇 de
<tt>Titular de pre-login</tt>, que te permite escoger un archivo a
mostrar antes de que el usuario haga login.<p>

<hr>

 070701000287d8000081a40000000000000002000000013ac038a700000474000000200000000000000000000000000000002200000003reloc/wuftpd/help/message.fr.html <header>Messages et Banni鑢es</header>

La premi鑢e partie de cette page vous permet de configurer les fichiers de message qui sont affich  l'usager au moment de l'ouverture de session ou quand un certain r閜ertoire est entr.  Pour chaque fichier de message vous devez sp閏ifi le chemin (absolu ou relatif au r閜ertoire), choisir quand il sera affich et choisir  quelle classe ce message sera affich (si aucune classe sont sp閏ifi閑 ce sera toutes les classes).<p>

La deuxi鑝e table est pour configurer les fichiers <tt>README</tt>.  Le serveur FTP affichera le temps des derni鑢es modification des fichiers, autant  l'ouverture de session, ou quand un certain r閜ertoire est entr.  Pour chaque fichier <tt>README</tt> vous devez sp閏ifier le chemin, choisir quand il sera affich et choisir les classe d'usager  qui afficher le moment des derni鑢es modifications.<p>

Au bas de l page se trouve quelques options additonelles relatif au fichiers de messages.  La plus utile est la <tt>Banni鑢e d'avant-ouverture de session</tt> qui vous permet de choisir quel fichier sera affich avant qu'un usager ouvre une session.<p>

<hr>

070701000287d9000081a40000000000000002000000013ac038a7000003e5000000200000000000000000000000000000001f00000003reloc/wuftpd/help/message.html    <header>Messages and Banners</header>

The first table on this page allows you to configure message files to be
displayed to the user at login time or when a certain directory is entered.
For each message file you must specify a path (absolute or relative to the
directory), choose when it is to be displayed, and select the user classes
to display this message file for (if no classes are entered, the file will be
displayed for all). <p>

The second table is for configuring README files. The FTP server will display
the last modification time of each file, either at login or when a certain
directory is entered. For each README file you must specify a path, choose
when it is to be displayed, and select the user classes to display the
last modification time for. <p>

At the bottom of the page are a few additional options that relate to
message files. Most useful is the <tt>Pre-login banner</tt> option, which
allows you to choose a file to be displayed before the user logs in. <p>

<hr>

   070701000287da000081a40000000000000002000000013ac038a700000416000000200000000000000000000000000000002200000003reloc/wuftpd/help/message.pl.html <header>Komunikaty</header>

Pierwsza tabela strony umo縧iwia zdefiniowanie zbior體, kt髍ych zawarto舵 ma
by wy秝ietlana kiedy u縴tkownik sie loguje lub wchodzi do okre秎onej
kartoteki. Dla ka縟ego takiego komunikatu nale縴 zdefiniowa 禼ie縦 dost阷u
(absolutn lub wzgl阣em kartoteki), wybra w&nbspjakich okoliczno禼iach ma
by wy秝ietlany i&nbsp;dla jakich klas u縴tkownik體 (je縠li nie wybierzemy
縜dnej klasy, to b阣zie wy秝ietlany dla wszystkich). 
<p>

Druga tabela s硊縴 do konfigurowania zbior體 README. Serwer FTP b阣zie
wy秝ietla dat modyfikacji takiego zbioru przy logowaniu si lub przy
wej禼iu do okre秎onej kartoteki. Dla ka縟ego zbioru README nale縴
okre秎i 禼ie縦 dost阷u, okre秎i w jakich okoliczno禼iach informacja ma
by wy秝ietlana i&nbsp;dla jakiej klasy u縴tkownik體.
<p>

Przy ko馽u strony mo縩a ustawi kilka dodatkowych opcji dotycz眂ych
zbior體 komunikat體. Najbardziej u縴teczna z&nbsp;nich to <tt>Komunikat 
pocz眛kowy</tt>, kt髍a pozwala wybra zbi髍 wy秝ietlany przed wlogowaniem
si u縴tkownika.
<p>

<hr>

  070701000287db000081a40000000000000002000000013ac038a700000421000000200000000000000000000000000000002500000003reloc/wuftpd/help/message.ru_RU.html  <header>杨钺龛  橡桠弪耱忤</header>

襄疴 蜞犭桷 磬 溧眄铋 耱疣龛鲥 镱玮铍弪 锣 磬耱痤栩 羿殡 耦钺龛 潆 镱赅玎 镱朦珙忄蝈 忸 怵屐 疱汨耱疣鲨  耔耱屐 桦 镳 镥疱躅溴  铗溴朦睇 赅蜞腩汨.
碾 赅驿钽 羿殡 耦钺龛 蔓 漕腈睇 箨噻囹 矬螯 (噌耦膻蝽 桦 铗眍耔蝈朦睇  赅蜞腩泱), 恹狃囹 - 觐沅 铐 镱赅琨忄弪  觌囫 镱朦珙忄蝈脲 潆 觐蝾瘥 镱赅琨忄螯 溧眄铄 耦钺龛 (羼腓 觌囫 礤 箨噻囗, 羿殡 狍溴 镱赅玎 怦屐). <p>

买铕 蜞犭桷 - 潆 磬耱痤殛 磬 羿殡 README. FTP 皴疴屦 狍溴 蜞赕 镱赅琨忄螯 怵屐 镱耠邃礤 祛滂翳赅鲨 赅驿钽 羿殡, 赅 镳 疱汨耱疣鲨, 蜞  镳 怩钿  耦铗忮蝰蜮簋 赅蜞腩. 碾 赅驿钽 羿殡 README 蔓 漕腈睇 箨噻囹 矬螯, 恹狃囹 - 觐沅 铐 镱赅琨忄弪  觌囫 镱朦珙忄蝈脲 潆 觐蝾瘥 镱赅琨忄螯 怵屐 镱耠邃礤 祛滂翳赅鲨. <p>

马桤 耱疣龛鳆 羼螯 礤耜铍 漕镱腠栩咫 镟疣戾蝠钼 铗眍躐  羿殡囔 耦钺龛. 袜栳铍邋 镱脲珥 怆弪 镟疣戾蝠 - <tt>橡屦邈桉蝠圉桀眄铄 镳桠弪耱忤</tt>, 觐蝾瘥 镱玮铍弪 锣 恹狃囹 羿殡 铗钺疣驵屐 漕 疱汨耱疣鲨 镱朦珙忄蝈. <p> 

<hr>

   070701000287ea000081a40000000000000002000000013ac038a700000421000000200000000000000000000000000000002500000003reloc/wuftpd/help/message.ru_SU.html  <header>笙下菖紊  鹨勺旁釉咨</header>

鹋易裂 粤绿擅 瘟 牧挝鲜 釉伊紊门 邢谧咸雅 髁 瘟釉蚁稍 屏侍 酉下菖紊 奶 邢肆诹 邢特谙琢耘萄 紫 滓磐 遗巧釉伊蒙  由釉磐 商 幸 信遗认呐  显呐特钨 肆粤滔巧.
涮 肆帜锨 屏侍 酉下菖紊 髻 南讨钨 账邻猎 姓载 (谅酉汤晕偈 商 显蜗由耘特钨  肆粤滔钦), 踪乱猎 - 讼悄 衔 邢肆谫琢旁友  颂劣 邢特谙琢耘膛 奶 讼韵屹 邢肆谫琢载 牧挝吓 酉下菖紊 (庞躺 颂劣 闻 账邻廖, 屏侍 抡呐 邢肆诹 子磐). <p>

髟弦裂 粤绿擅 - 奶 瘟釉蚁仕 瘟 屏侍 README. FTP 优易乓 抡呐 粤酥 邢肆谫琢载 滓磐 邢犹拍闻 拖纳粕肆蒙 肆帜锨 屏侍, 肆 幸 遗巧釉伊蒙, 粤  幸 兹夏  酉显着杂宰绽萆 肆粤滔. 涮 肆帜锨 屏侍 README 髻 南讨钨 账邻猎 姓载, 踪乱猎 - 讼悄 衔 邢肆谫琢旁友  颂劣 邢特谙琢耘膛 奶 讼韵屹 邢肆谫琢载 滓磐 邢犹拍闻 拖纳粕肆蒙. <p>

魑哨 釉伊紊觅 庞载 闻铀咸厮 南邢涛稍盘匚偃 辛伊团砸献 显蜗友萆扔  屏侍镣 酉下菖紊. 盍陕咸排 邢膛谖偻 炎萄旁友 辛伊团砸 - <tt>鹨乓徘捎砸撩上挝吓 幸勺旁釉咨</tt>, 讼韵屹 邢谧咸雅 髁 踪乱猎 屏侍 显下伊至磐偈 南 遗巧釉伊蒙 邢特谙琢耘萄. <p> 

<hr>

   070701000287eb000081a40000000000000002000000013ac038a7000003a5000000200000000000000000000000000000002200000003reloc/wuftpd/help/message.sv.html <header>Meddelanden</header>

I den f鰎sta tabellen kan man ange de meddelandefiler som ska visas f鰎
anv鋘daren vid inloggning eller n鋜 anv鋘daren byter till n錱on speciell
katalog. F鰎 varje meddelandefil m錽te man ange en s鰇v鋑 (absolut eller
relativt katalogen), n鋜 filen ska visas och de anv鋘darklasser som ska
f se filen. Om inga anv鋘darklasser anges kommer texten i filen att visas
f鰎 alla.

<p>I den andra tabellen g鰎 man inst鋖lningar f鰎 README-filer. Vid inloggning
eller n鋜 anv鋘daren byter till n錱on speciell katalog talar FTP-servern om
n鋜 filerna senast 鋘drades. F鰎 varje README-fil m錽te man ange en s鰇v鋑,
n鋜 filen ska visas och de anv鋘darklasser som ska f se 鋘dringsdatum.

<p>L鋘gst ned p sidan finns ytterligare n錱ra inst鋖lningar f鰎 meddelanden.
Den mest anv鋘dbara 鋜 <tt>Meddelande f鰎e inloggning</tt>, som ger
m鰆lighet att visa meddelanden f鰎 anv鋘daren innan den har loggat in.

<hr>
   070701000287ec000081a40000000000000002000000013ac038a700000249000000200000000000000000000000000000002a00000003reloc/wuftpd/help/message.zh_TW.Big5.html <header>癟籔夹肈</header>

硂材琵眤舱篈璶陪ボ癟郎, 硂ㄇ癟祅┪秈疭﹚ヘ魁砆陪ボ. 癸–癟, 眤ゲ斗﹚隔畖 (荡癸隔畖┪癸﹚隔畖), 匡拒璶陪ボ诀, 璶陪ボ癟ㄏノ摸 (狦⊿Τ﹚摸, 盢穦陪ボ倒┮Τㄏノ). <p>

材玥琌ノ舱篈弄и郎. 祅┪秈疭﹚ヘ魁, FTP 狝竟陪ボ–郎程穝丁. 癸–弄и郎, 眤ゲ斗﹚ㄤ隔畖, 陪ボ诀, 匡拒璶陪ボㄏノ单. <p>

礶┏狠Τㄇ闽癟郎肂匡兜. 程Τノ琌<tt>祅玡夹肈</tt>匡兜, 硂ㄏノ祅ぇ玡陪ボ郎. <p>

<hr>

   070701000287ed000081a40000000000000002000000013ac038a7000002dc000000200000000000000000000000000000001f00000003reloc/wuftpd/help/misc.es.html    <header>Opciones Varias</header>

Esta p醙ina contiene opciones que no se encuadran dentro de cualquier
otra categor韆. La m醩 鷗il es la tabla de la segunda secci髇, la cual
te permite poner el nivel de 'nice' (prioridad de proceso) de las sesiones
FTP por clase. Un nivel de nice negativo le da a la sesi髇 una prioridad
de UCP mayor, mientras que un nivel de nice positivo le da una prioridad
menor. En la mayor韆 de sistemas operativos, el rango permitido de nivel
de nice es -20 a 20.<p>

La tabla inferior pone la m醩cara de permisos de archivo para los nuevos
archivos y directorios, por clases. Por ejemplo, una m醩cara de <tt>0700</tt>
dar韆 a los nuevos archivos cargados permisos de 077 (<tt>---rw-rw-</tt>). <p>

<hr>


070701000287ee000081a40000000000000002000000013ac038a700000310000000200000000000000000000000000000001f00000003reloc/wuftpd/help/misc.fr.html    <header>Autres Options</header>

Cette page content des options qui ne correspondent  aucune autre cat間orie.  Les plus utiles se situent dans la seconde section, qui vous permet de d閒inir le niveau de priorit du processus selon la classe.  Une valeur n間ative donne  la session une plus grande priorit sur l'utilisation du processeur, tandis qu'une valeur positive ne consommera de la puissance processeurs que si elle est diponible.  Sur la majorit des syst鑝es, les valeurs accept閟 sont entre -20 et 20.<p>

Le bas de la table vous permet de d閒inir le masque des permissions des nouveaux fichiers et r閜ertoire cr閑r par une classe.  Par exemple, le masque de <tt>0700</tt> donne au nouveaux fichiers et r閜ertoires cr閑r la permission 077 (<tt>---rw-rw-</tt>).<p>

<hr>


070701000287ef000081a40000000000000002000000013ac038a700000289000000200000000000000000000000000000001c00000003reloc/wuftpd/help/misc.html   <header>Miscellaneous Options</header>

This page contains options that don't really fit in any other category.
Most useful is the table in the second section that allows you to set
the nice level (process priority) for FTP sessions by class. A negative
nice level gives the session a higher CPU priority, while a positive
nice level gives a lower priority. On most operating systems, the allowable
nice levels range from -20 to 20. <p>

The bottom table sets the file permissions mask for new files and directories
by class. For example, a umask of <tt>0700</tt> would give newly uploaded
files permissions of 077 (<tt>---rw-rw-</tt>). <p>

<hr>


   070701000287f0000081a40000000000000002000000013ac038a700000297000000200000000000000000000000000000001f00000003reloc/wuftpd/help/misc.pl.html    <header>Opcje r罂ne</header>

Na stronie mo縩a zdefiniowa opcje, kt髍e trudno zaliczy do kt髍ej
z&nbsp;innych kategorii. Naju縴teczniejsza jest druga tabela, kt髍a
umo縧iwia wyb髍 poziomu "nice" (priorytetu procesu) dla sesji FTP okre秎onej
klasy. Im mniejsza liczba "nice", tym wi阫szy priorytet. Wi阫szo舵 system體
zezwala na poziom "nice" zawarty pomi阣zy -20 a&nbsp;20. 
<p>

Ostatnia tabela umo縧iwia zdefiniowanie domy秎nej maski atrybut體 ("umask")
zbior體 i&nbsp;kartotek tworzonych przez u縴tkownik體 okre秎onych klas. Na
przyk砤d maska <tt>0700</tt> nada nowo przetransmitowanym na serwer zbiorom
atrybuty 077, czyli (<tt>---rw-rw-</tt>). 
<p>

<hr>
 070701000287f1000081a40000000000000002000000013ac038a700000293000000200000000000000000000000000000002200000003reloc/wuftpd/help/misc.ru_RU.html <header>橡铟桢 相疣戾蝠</header>

泥眄 耱疣龛鲟 耦溴疰栩 镟疣戾蝠, 觐蝾瘥 礤 铗眍蝰 龛  钿眍 桤 漯筱桴 赅蝈泐痂.
袜栳铍邋 镱脲珥 蜞犭桷 忸 怛铕铋 皴牿梃, 觐蝾疣 镱玮铍弪 锣 篑蜞眍忤螯 镳桀痂蝈 镳铞羼襦 FTP 镱 觌囫襦. 悟痂鲟蝈朦眍 珥圜屙桢 溧弪 犷脲 恹耦觇 镳桀痂蝈 镳铞羼襦,  镱腩骅蝈朦眍 珥圜屙桢 溧弪 戾礤 恹耦觇 镳桀痂蝈.
袜 犷朦眈蜮 铒屦圉桀眄 耔耱屐 漕矬耱桁 箴钼龛 镳桀痂蝈蜞 磬躅蝰  滂囡噻铐 铗 -20 漕 20. <p>

丸骓 蜞犭桷 篑蜞磬怆桠噱 爨耜 镳噔 羿殡 潆 眍恹 羿殡钼  赅蜞腩泐 镱 觌囫襦. 袜镳桁屦, 潆 umask=<tt>0700</tt> 镳噔 眍忸泐 玎沭箧屙眍泐 羿殡 耱囗钼蝰 077 (<tt>---rw-rw-</tt>). <p>

<hr>


 070701000287f2000081a40000000000000002000000013ac038a700000293000000200000000000000000000000000000002200000003reloc/wuftpd/help/misc.ru_SU.html <header>鹨限膳 鹆伊团砸</header>

淞挝裂 釉伊紊昧 酉呐抑稍 辛伊团砸, 讼韵屹 闻 显蜗友杂 紊  夏蜗 哨 囊涨扇 肆耘窍疑.
盍陕咸排 邢膛谖 粤绿擅 紫 自弦鲜 优嗣缮, 讼韵伊 邢谧咸雅 髁 沼粤蜗咨载 幸上疑耘 幸厦庞恿 FTP 邢 颂劣恿. 镌疑昧耘特蜗 谖赁盼膳 牧旁 孪膛 踪酉松 幸上疑耘 幸厦庞恿,  邢滔稚耘特蜗 谖赁盼膳 牧旁 团闻 踪酉松 幸上疑耘.
盍 孪特凵斡宰 闲乓撩上挝偃 由釉磐 南姓釉赏倥 找献紊 幸上疑耘粤 瘟认难杂  纳列邻衔 显 -20 南 20. <p>

钌治蜒 粤绿擅 沼粤瘟滋勺僚 土铀 幸磷 屏侍 奶 蜗踪 屏侍献  肆粤滔窍 邢 颂劣恿. 盍幸赏乓, 奶 umask=<tt>0700</tt> 幸磷 蜗紫窍 诹且罩盼蜗窍 屏侍 釉廖献言友 077 (<tt>---rw-rw-</tt>). <p>

<hr>


 070701000287f3000081a40000000000000002000000013ac038a700000272000000200000000000000000000000000000001f00000003reloc/wuftpd/help/misc.sv.html    <header>Blandade inst鋖lningar</header>

P denna sida finns inst鋖lningar som inte riktigt passar in i n錱on annan
kategori. Den mest anv鋘dbara 鋜 sektion tv, d鋜 man kan st鋖la in
nice-niv (processprioritet) per klass f鰎 FTP-sessionerna. En negativ
nice-niv ger sessionen h鰃re CPU-prioritet och en positiv nice-niv ger l鋑re
prioritet. I de flesta operativsystem str鋍ker sig nice-niv錯rna fr錸 -20
till 20.

<p>I tabellen l鋘gst ned s鋞ts standard-umask f鰎 nedladdade filer och
kataloger per klass. Exempelvis g鰎 umasken <tt>0700</tt> att filer
som laddats ned f錼 filr鋞tigheterna 077 (<tt>---rw-rw-</tt>).

<hr>
  070701000287f4000081a40000000000000002000000013ac038a7000001a5000000200000000000000000000000000000002700000003reloc/wuftpd/help/misc.zh_TW.Big5.html    <header>ㄤ匡兜</header>

硂ぃ妮ㄤだ摸匡兜. 程Τノ琌材跋办い, 硂琵眤砞﹚–单ㄏノ FTP 祘纔. 璽纔局Τ耕祘 CPU 丁, τタ计耕ぶ. 癸计穨╰参τē, ノ纔 -20  20 丁俱计. <p>

┏狠砞﹚ミ穝郎┪ヘ魁郎舦綛竛 (umask). 羭ㄒㄓ弧,  <tt>0700</tt> 綛竛穦ㄏ穝郎舦 077 (<tt>---rw-rw-</tt>). <p>

<hr>


   070701000287f5000081a40000000000000002000000013ac038a7000001e2000000200000000000000000000000000000001e00000003reloc/wuftpd/help/net.es.html <header>Trabajando en red</header>

La primera tabla de esta p醙ina te permite poner la medida de ventana TCP
que utiliza el servidor FTP para las conexiones de clientes. La medida de
la ventana puede ser puesta para todas las clases o para las clases
seleccionadas individualmente.<p>

La segunda y tercera tablas son para configurar la direcci髇 IP de destino y
el puerto usado para las conexciones PASV desde clientes que coincidan con
la direcci髇 IP dada y bits de red.

<hr>

  070701000287f6000081a40000000000000002000000013ac038a7000001ca000000200000000000000000000000000000001e00000003reloc/wuftpd/help/net.fr.html <header>R閟eau</header>

La premi鑢e table sur cette page vous permet de d閒inir la taille de la fen阾re TCP utilis par le serveur FTP pour la connexion des clients.  La taille de la fen阾re peut 阾re d閒ini pour toutes les classes, ou pour une classe individuelle.<p>

La deuxi鑝e et troisi鑝e table sont pour configurer l'adresse IP de destination et le port utilis pour les connexion PASV des clients dont l'adresse IP correspond au bits r閟eau.

<hr>

  070701000287f7000081a40000000000000002000000013ac038a700000199000000200000000000000000000000000000001b00000003reloc/wuftpd/help/net.html    <header>Networking</header>

The first table on this page allows you to set the TCP window size used
by the FTP server for client connections. The window size can be set for all
classes, or for selected classes individually. <p>

The second and third tables are for configuring the destination IP address and
port used for PASV connections from clients matching the given IP address
and network bits. 

<hr>

   070701000287f8000081a40000000000000002000000013ac038a7000001b6000000200000000000000000000000000000001e00000003reloc/wuftpd/help/net.pl.html <header>Opcje sieci</header>

Pierwsza tabela na stronie pozwala na ustawienie wielko禼i okna po潮czenia
TCP, kt髍ego serwer u縴je go komunikacji z&nbsp;klientem. Wielko舵 mo縠 by
ustawiona dla wszystkich klas, lub indywidualnie dla poszczeg髄nych klas.
<p>

Druga i&nbsp;trzecia tabela s硊勘 do skonfigurowania adres體 IP
i&nbsp;port體 u縴wanych do po潮cze typu PASV od klient體 z&nbsp;okre秎onych
numer體 IP i&nbsp;sieci. 
<p>

<hr>

  070701000287f9000081a40000000000000002000000013ac038a7000001af000000200000000000000000000000000000002100000003reloc/wuftpd/help/net.ru_RU.html  <header>彦螯</header>

襄疴 蜞犭桷 磬 溧眄铋 耱疣龛鲥 镱玮铍弪 锣 篑蜞眍忤螯 疣珈屦 铌磬 TCP 桉镱朦珞屐钽 FTP 皴疴屦铎 潆 觌桢眚耜桴 耦邃桧屙栝. 朽珈屦 铌磬 祛驽 猁螯 篑蜞眍怆屙 潆 怦艴 觌囫耦, 桦 桧滂忤潴嚯 潆 恹狃囗睇 觌囫耦. <p>

买铕  蝠弪 蜞犭桷 - 潆 磬耱痤殛 IP 噤疱襦 磬珥圜屙  镱痱 桉镱朦珞屐钽 潆 PASV 耦邃桧屙栝 铗 觌桢眚钼 耦怙噤帼  铒疱溴脲眄 IP 噤疱襦扈  皴蝈恹扈 徼蜞扈.

<hr>

 070701000287fa000081a40000000000000002000000013ac038a7000001af000000200000000000000000000000000000002100000003reloc/wuftpd/help/net.ru_SU.html  <header>笈载</header>

鹋易裂 粤绿擅 瘟 牧挝鲜 釉伊紊门 邢谧咸雅 髁 沼粤蜗咨载 伊谕乓 纤瘟 TCP 捎邢特谡磐锨 FTP 优易乓贤 奶 颂膳卧铀扇 酉拍晌盼墒. 蛄谕乓 纤瘟 拖峙 沦载 沼粤蜗滋盼 奶 子湃 颂劣酉, 商 晌纳咨恼撂匚 奶 踪乱廖钨 颂劣酉. <p>

髟弦裂  砸旁匮 粤绿擅 - 奶 瘟釉蚁仕 IP 聊遗恿 瘟谖赁盼裳  邢以 捎邢特谡磐锨 奶 PASV 酉拍晌盼墒 显 颂膳卧献 酉仔聊晾萆  闲遗呐膛挝偻 IP 聊遗恿蜕  优耘踪蜕 律粤蜕.

<hr>

 070701000287fb000081a40000000000000002000000013ac038a700000183000000200000000000000000000000000000001e00000003reloc/wuftpd/help/net.sv.html <header>N鋞verk</header>

I den f鰎sta tabellen kan man ange storlek p det TCP-f鰊ster som FTP-servern
anv鋘der f鰎 klientuppkopplingar. F鰊sterstorleken kan anges generellt eller
olika f鰎 olika klasser.

<p>I den andra och tredje tabellen st鋖ler man in destinations-IP-adress och
port som ska anv鋘das f鰎 PASV-uppkopplingar fr錸 klienter p angivna
IP-adresser och n鋞maskar.

<hr>
 070701000287fc000081a40000000000000002000000013ac038a7000000f9000000200000000000000000000000000000002600000003reloc/wuftpd/help/net.zh_TW.Big5.html <header>呼隔</header>

硂材琵眤砞﹚ㄏノ FTP 硈絬 TCP 怠. 硂怠﹚倒┮Τ单ㄏノ┪疭﹚单. <p>

材籔材砞﹚眖才倒ぉ IP 籔呼隔じめ狠ㄏノ PASV 硈絬ヘ夹 IP 籔硄癟梆.

<hr>

   070701000287fd000081a40000000000000002000000013ac038a700000481000000200000000000000000000000000000001f00000003reloc/wuftpd/help/perm.es.html    <header>Permisos</header>

Los controles de la primera tabla de esta p醙ina pueden usarse para denegar
el acceso a ciertos comandos no vitales. Para cada comando puedes escoger
si permitir o denegar el aceso y seleccionar qu tipos de usuario y clases
tendr醤 y no tendr醤 acceso. A menos que est denegado, cualquier comando
est disponible para cualquier usuario, por defecto.<p>

La segunda tabla te permite prevenir la carga de archivos que contengan
ciertos caracteres o que coincidan con ciertas expresiones regulares. Esto
puede ser muy 鷗il si tu servidor an髇imo FTP tiene un directorio
<tt>incoming</tt> y quieres prevenir que los usuarios creen directorios
ocultos para almacenar basura. El primer campo de la tabla es una expresi髇
como <tt>^[A-z0-9]$</tt> que define los caracters autorizados, la segunda
es una serie de expresiones regulares para nombres de archivo que <b>no</b>
est醤 autorizados, la tercera consiste en los tipos de usuario a los que
se aplica esta restricci髇 y la columna final es la trayectoria completa
a un archivo de mensajes de error a ser enviado al cliente FTP si ocurre
una carga de archivo ilegal. <p>

<hr>

   070701000287fe000081a40000000000000002000000013ac038a7000004ab000000200000000000000000000000000000001f00000003reloc/wuftpd/help/perm.fr.html    <header>Permissions</header>

La premi鑢e table sur cette page peut 阾re utilis pour refuser l'acc鑣 a certaine commandes non-vitale.  Pour chaque commande, vous pouvez choisir d'allouer ou refuser l'acc鑣 et choisir quel types d'usager et de classes devraient 阾re allou ou refuser.  Jusqu'a ce qu'elle soit refuser, tout les commandes sont disponiable a tout les usagers par d閒aut.<p>

La deuxi鑝e table vous permet de pr関enir l'envoie de fichiers qui contient certain caract鑢es ou qui corresponde a certaine expressions r間uli鑢es.  Ceci peut 阾re tr鑣 utile si vous avec un serveur FTP anonyme qui contient un r閜ertoire <tt>incoming</tt> et que vous souhaitez empecher les usagers de cr閑r certain r閜ertoire "cach" pour y garder du "warez".  Le premier champs de la table est une expression r間uli鑢e comme <tt>^[A-z0-9]$</tt> qui d閒init les caract鑢es allou閟, le second est une s閞ie d'expression r間uli鑢e pour les nom de fichiers qui <b>ne sont pas</b> accept,  le troisi鑝e champs est le types d'usagers que cette restriction s'applique, et la derni鑢e colonne le chemin du fichier de message d'erreur qui sera envoy au client FTP si un fichier ill間al est envoy.<p>

<hr>

 070701000287ff000081a40000000000000002000000013ac038a7000003f0000000200000000000000000000000000000001c00000003reloc/wuftpd/help/perm.html   <header>Permissions</header>

The first table on this page controls can be used to deny access to certain
non-vital commands. For each command, you can choose whether to allow or
deny access and choose which user types and classes it should be allowed or
denied to. Unless denied, all commands are available to all users by
default. <p>

The second table allow you to prevent the upload of files that contain
certain characters or matching certain regular expressions. This can be
very useful if your anonymous FTP server has an <tt>incoming</tt> directory
and you want to prevent users creating 'hidden' directories to store warez
in. The first field in the table is a regexp like <tt>^[A-z0-9]$</tt> that
defines allowable characters, the second is a series of regexps for filenames
that are <b>not</b> allowed, the third is the user types that this restriction
applies to, and the final column the full path to an error message file
to be sent to the FTP client if an illegal file is uploaded. <p>

<hr>

07070100028800000081a40000000000000002000000013ac038a700000435000000200000000000000000000000000000001f00000003reloc/wuftpd/help/perm.pl.html    <header>Uprawnienia</header>

Pierwsza tabela umo縧iwia ograniczenie stosowania pewnych polece. Dla
ka縟ego polecenia mo縩a zabroni lub zezwoli na jego wykonanie okre秎onemu
typowi lub klasie u縴tkownik體. Domy秎nie wszyscy u縴tkownicy maj prawo
wykonywa wszystkie polecenia. 
<p>

Druga tabela umo縧iwia wprowadzenie zakazu przesy砤nia do serwera zbior體,
kt髍ych nazwa zawiera okre秎one znaki lub pasuje do wyra縠nia regularnego.
Taki zakaz mo縠 by u縴teczny na anonimowych serwerach FTP zawieraj眂ych
kartotek dla zbior體 przychodz眂ych (na przyk砤d <tt>incoming</tt>),
w&nbsp;celu zapobie縠nia tworzeniu "ukrytych" kartotek z&nbsp;niepo勘dan
zawarto禼i. Pierwsze pole w&nbsp;tabeli jest wyra縠niem regularnym (jak
na przyk砤d <tt>^[A-z0-9]$</tt>), kt髍e definiuje dozwolone znaki.
Drugie pola zawiera wyra縠nia regularne opisuj眂e niedozwolone nazwy,
trzecie - typy u縴tkownik體, kt髍ych dotyczy ograniczenie, a&nbsp;ostatnia
kolumna zawiera pe硁 禼ie縦 do pliku z&nbsp;komunikatem b酬du wysy砤nym
do klienta FTP usi硊j眂ego przys砤 nielegalny zbi髍.
<p>

<hr>
   07070100028801000081a40000000000000002000000013ac038a700000476000000200000000000000000000000000000002200000003reloc/wuftpd/help/perm.ru_RU.html <header>橡噔</header>

襄疴 蜞犭桷 磬 溧眄铋 耱疣龛鲥 桉镱朦珞弪 潆 镳邃铗怵帙屙 漕耱箫  礤赅蝾瘥 礤徨珙镟耥 觐爨礓囔.
碾 赅驿铋 觐爨礓 蔓 祛驽蝈 恹狃囹 - 觐沅 疣琊屮囹 桦 觐沅 玎镳妁囹 漕耱箫  恹狃囹 赅觐祗 蜩矬  觌囫耋 镱朦珙忄蝈 疣琊屮囹 桦 玎镳妁囹 漕耱箫.
项赅 礤 玎镳妁屙, 怦 觐爨礓 漕耱箫睇 潆 怦艴 镱朦珙忄蝈脲 镱 箪铍鬣龛. <p>

买铕 蜞犭桷 镱玮铍弪 锣 镳邃铗怵囹栩 玎沭箸牦 羿殡钼 桁妣 铗疱溴脲眄  耔焘铍  磬玮囗梃 桦 耦怙噤帼  铒疱溴脲眄 疱泱痦 恹疣驽龛扈.
蒡 祛驽 猁螯 铟屙 镱脲珥, 羼腓 锣 囗铐桁睇 FTP 皴疴屦 桁邋 赅蜞腩 <tt>incoming</tt>  蔓 躅蜩蝈 镳邃铗怵囹栩 耦玟囗桢 镱朦珙忄蝈扈 "耜瘥螓" 赅蜞腩泐 潆 躔囗屙 怦邂铉祛骓钽 祗耦疣. 襄疴铄 镱脲  蜞犭桷 - 疱泱痦铄 恹疣驽龛 蜩镟 <tt>^[A-z0-9]$</tt>, 觐蝾痤 铒疱溴弪 漕矬耱桁 耔焘铍, 怛铕铄 - 皴痂 疱泱痦 恹疣驽龛 潆 桁屙 羿殡钼, 觐蝾瘥 <b>礤</b>疣琊屮屙, 蝠弪 - 蜩稃 镱朦珙忄蝈脲  觐蝾瘥 铗眍蝰 溧眄 钽疣龛麇龛  镱耠邃 觐腩黻 - 镱腠 矬螯  羿殡 耦钺龛 钺 铠栳赅 耦溴疰桁铄 觐蝾痤泐 镱赅琨忄弪 觌桢眚 镳 镱稃蜿 玎沭箸觇 礤漕矬耱桁钽 羿殡. <p>

<hr>

  07070100028802000081a40000000000000002000000013ac038a700000476000000200000000000000000000000000000002200000003reloc/wuftpd/help/perm.ru_SU.html <header>鹨磷</header>

鹋易裂 粤绿擅 瘟 牧挝鲜 釉伊紊门 捎邢特谡旁友 奶 幸拍显滓凛盼裳 南釉招  闻肆韵屹 闻屡谙辛游偻 讼土文镣.
涮 肆帜鲜 讼土文 髻 拖峙耘 踪乱猎 - 讼悄 伊谝袍猎 商 讼悄 诹幸泡猎 南釉招  踪乱猎 肆讼驼 陨姓  颂劣诱 邢特谙琢耘萄 伊谝袍猎 商 诹幸泡猎 南釉招.
鹣肆 闻 诹幸泡盼, 子 讼土文 南釉招钨 奶 子湃 邢特谙琢耘膛 邢 胀咸蘖紊. <p>

髟弦裂 粤绿擅 邢谧咸雅 髁 幸拍显滓猎稍 诹且遮苏 屏侍献 赏爬萆 显遗呐膛挝倥  由妥咸  瘟谧廖缮 商 酉仔聊晾萆  闲遗呐膛挝偻 遗钦萄椅偻 踪伊峙紊淹.
 拖峙 沦载 限盼 邢膛谖, 庞躺 髁 廖衔赏钨 FTP 优易乓 赏排 肆粤滔 <tt>incoming</tt>  髻 认陨耘 幸拍显滓猎稍 酉谀廖膳 邢特谙琢耘萄蜕 "铀屹再" 肆粤滔窍 奶 纫廖盼裳 子抛馅拖治锨 驼酉伊. 鹋易吓 邢膛  粤绿擅 - 遗钦萄椅吓 踪伊峙紊 陨辛 <tt>^[A-z0-9]$</tt>, 讼韵蚁 闲遗呐萄旁 南姓釉赏倥 由妥咸, 自弦吓 - 优疑 遗钦萄椅偃 踪伊峙紊 奶 赏盼 屏侍献, 讼韵屹 <b>闻</b>伊谝袍盼, 砸旁嘏 - 陨匈 邢特谙琢耘膛  讼韵屹 显蜗友杂 牧挝倥 锨伊紊夼紊  邢犹拍窝 讼滔嗡 - 邢涛偈 姓载  屏侍 酉下菖紊 下 羡陕肆 酉呐抑赏吓 讼韵蚁窍 邢肆谫琢旁友 颂膳卧 幸 邢匈运 诹且遮松 闻南姓釉赏锨 屏侍. <p>

<hr>

  0707010002886b000081a40000000000000002000000013ac038a7000003dc000000200000000000000000000000000000001f00000003reloc/wuftpd/help/perm.sv.html    <header>R鋞tigheter</header>

I den f鰎sta tabellen kan man begr鋘sa tillg錸gen till vissa kommandon.
F鰎 varje kommando kan man ange om det ska till錿as eller f鰎bjudas samt
f鰎 vilka anv鋘dartyper och -klasser detta g鋖ler. Om kommandot inte
f鰎bjuds kommer det att vara till錿et f鰎 alla anv鋘dare.

<p>I den andra tabellen kan man sp鋜ra nedladdning av filer vars namn
inneh錶ler vissa tecken eller som matchar vissa regulj鋜a uttryck. Detta
鋜 anv鋘dbart om den anonyma FTP-servern har en katalog f鰎 <tt>inkommande</tt>
filer och man vill f鰎hindra att anv鋘darna skapar 'dolda' kataloger att
lagra warez i. I det f鰎sta f鋖tet i tabellen kan man skriva in ett
regulj鋜t uttryck, t ex <tt>^[A-z0-9]$</tt>, som definierar till錿na tecken.
I det andra f鋖tet kan man skriva in regulj鋜a uttryck f鰎 <b>icke</b>
till錿na filnamn och i den sista kolumnen skriver man in fullst鋘dig s鰇v鋑
till den felmeddelandefil som ska skickas till FTP-klienten n鋜 en illegal
fil laddas ned.

<hr>
0707010002886c000081a40000000000000002000000013ac038a700000262000000200000000000000000000000000000002700000003reloc/wuftpd/help/perm.zh_TW.Big5.html    <header>舦</header>

硂材ノ北癸疭﹚獶ゲ璶┦┶荡. 癸–, 眤匡拒す砛┪┶荡, 匡拒璶莱ノㄏノ摸籔单. 埃獶砆┶荡, 玥箇砞猵琌す砛┮Τㄏノ. <p>

材琵眤ňゎ郎肚, ㄌ沮疭﹚じ┪才﹚タ砏ボΑ耞. 癸す砛肚郎拔 FTP 狝竟磷ㄏノミ '留旅' ヘ魁纗硁砰. 材逆琌タ砏ボΑ, ㄒ <tt>^[A-z0-9]$</tt>, 硂﹚竡す砛じ; 材琌<b>ぃ</b>砆す砛郎タ砏ボΑ; 材逆玥琌璶甅ノㄏノ摸; 程逆琌ㄏノ肚ぃ猭郎郎, 癳倒 FTP め狠岿粇癟郎Ч俱隔畖. <p>

<hr>

  07070100029f60000041ed0000000000000001000000023ac03cb000000000000000200000000000000000000000000000001400000003reloc/wuftpd/images   07070100029f61000081a40000000000000002000000013ac038a700000113000000200000000000000000000000000000001c00000003reloc/wuftpd/images/acl.gif   GIF89a0 0   烫虣櫃fff            !    ,    0 0  很0蔍8死{讬'8yB俫B]z秮:渕}鲯嚨炩!鰧粻Ya倻MJ	酼礧捌 gu@鬡U?賍w咵/羆巷}y剕&z剢巻 憭弾崈棌晧殩瀧ぅⅲ洜~挱疁埓捣祲悎恫【聥炼拦贸皺橇幣派维泄氏斎已虆乇趰*徭乳 庄飶B蝮趱鲼	 ; 07070100029f62000081a40000000000000002000000013ac038a7000000d0000000200000000000000000000000000000001e00000003reloc/wuftpd/images/alias.gif GIF89a0 0   烫虣櫃fff!    ,    0 0  彥隧魠{E+/躼x燞庢嚘苁/^頉 儜!駚嫾ゥ閘$5褑睔Q眽i袀簧/W<>L穒-6W/]↙扷j濛擟(犁62Px拎fWh1yGy夈矆y)G鄙3 CD毆*赩杅p5垛YeB[{鷬p胨Q  ;07070100029f63000081a40000000000000002000000013ac038a7000000d0000000200000000000000000000000000000002000000003reloc/wuftpd/images/aliases.gif   GIF89a0 0   烫虣櫃fff!    ,    0 0  彥隧魠{E+/躼x燞庢嚘苁/^頉 儜!駚嫾ゥ閘$5褑睔Q眽i袀簧/W<>L穒-6W/]↙扷j濛擟(犁62Px拎fWh1yGy夈矆y)G鄙3 CD毆*赩杅p5垛YeB[{鷬p胨Q  ;07070100029f64000081a40000000000000002000000013ac038a7000000ed000000200000000000000000000000000000001d00000003reloc/wuftpd/images/anon.gif  GIF89a0 0   鴃d`忍!Made with GIMP !
  ,    0 0  瑴彥隧蹿婳<_v^栤葮jΑ 胊珨r洗a吒抠zN$4岪m舕:Q袩t:K险栛俕OY颮窄j游紐+縃9瘳晨饀岚淝堝(X嚫 惰溢Ey鑸塇Xě渡買j垊f陠Z&俈8觋+j戺Z+浰z櫕泚;,蘌  ;   07070100029f65000081a40000000000000002000000013ac038a700000186000000200000000000000000000000000000001e00000003reloc/wuftpd/images/class.gif GIF89a0 0      fff烫!    ,    0 0  ⻊彥隧&X
厧躲OG~J:"ㄘ芫涄-`愓坶8A醡5榈宐啽U(姖旿秺nRfF6#8_砪_踂TfJ力7@q坵 g(鰓@s羧w枛鴓t贅y'篱偃&h皯$宸:[v儤踄囀餣:瑳眤覉4琫滒!都鸆槣J扲e工骰M躪M編-{巆))㖞~J蚙_m 進u&)骔僪x,0麌/犅hN`瀀馺<朻LLn|t罧婽聶e%=螙塣嬜瓚'Y<喪張⑵- 萒Po:昮U4>燜佃幈d藲[  ;  07070100029f66000081a40000000000000002000000013ac038a700000197000000200000000000000000000000000000001d00000003reloc/wuftpd/images/icon.gif  GIF89a0 0      UUU999帋巖rr沣闱乔!Made with GIMP ,    0 0  䅟菼伣陙击[喴g庝G杇洯*旌恻瞯[_叔篰gwOB1y41婩顺9腎5)Ue/蝱囁繆坸.⑤67吐j脕紐鴢z厈~妡儘悜剶彁z~K*{泒Xb  渓E獵癛安Z煣!,z魄坔悞\z葅脥誩准迒!	b爇搣@霣鍽彬9魎稤j宛.*^蜈1溿芾堳侫谺a;膓r缣瑔"Q")$艛/W殤泸L2C襠9λ&g『墕ⅸV碳⿺g师Hi詫  ; 07070100029f67000081a40000000000000002000000013ac038a7000001d6000000200000000000000000000000000000001c00000003reloc/wuftpd/images/log.gif   GIF89a0 0   櫃檉ff烫            !   ,    0 0  㧏	18[汹麪h$xㄣ卄Yv芎0諍'z7ZDg;3IQ墪s4q愙(ザi+C惠c
bo]韪7Lg\y疓/鷒$zhwak唦#:僫N"妏寍墤巃y敄"槒D慶w嶥6廳V:猺6X圥矋~瓭櫒 海朅秞皾杭絅l9萴
材灯.,VI,汜Y謉T餭X>鎚遺o)VKA旺鏝*W歶7綺>1菩TA#*=冟湬酕Wwh,4駧G捙B塍缪J嫯4籏5杉僤憯=Z瀌鰘4"'.mM3櫹檱j厷7區蔶掙>D'4%#r臛_e8J2親g:窘86c%N堬T 馵霎粤幝S掆
i0;o 赦 錌嬑燙M鶥 ;  07070100029f68000081a40000000000000002000000013ac038a700000179000000200000000000000000000000000000002000000003reloc/wuftpd/images/message.gif   GIF89a0 0   倘槝楶P鴃d`   槝!Made with GIMP !
  ,    0 0  䎬很0蔍8喭`(
J0渉l錚唐l5m靯@亓,廎a纋:熜4*PD噩vY.絖4该玏絘椗谁勤籆v0O纷qMm剙乹tvu噑p垍{圿_{N剎uzz檽r瀃}煝x潱ェ棡憿塴煰硴枏瞺猦竛晥兒礽览we串稐j浡话岩誓眨∝制"k瑢迬L藖距灌卲z稇秃鸶惤骢补臺	|5o懟k鉆QKH
!C,6|$秔o*V螟-荙菑2秠WI犌s莻	*!R緾娐軄蕯8s査莱烜2H  ;   07070100029f69000081a40000000000000002000000013ac038a7000001cc000000200000000000000000000000000000001d00000003reloc/wuftpd/images/misc.gif  GIF89a0 0   櫃櫶烫   !    ,    0 0  ⻊	甲岒蛬T睼c陖耯箿c#槎+倂窝莞h%A 9洂舯@瀂
罧9=榍Z鈋/L瀨荾7&嬎[篡g制礸陞*U{ag&2鵂非%' XXSgGG(貴╱虏Y雎s)驋y赧9%33历:`
{  蓑z袺;;埴`{汸睖塥0 m潦郜 D-1离,卷,L:-蜰.l-峠觐n6<,唀#棌簝盞妗聢
5A瀴吼c灞hZi5r諭#+v躻蔅儇TⅰH幬B戞焯	1=c滗Y4MO倈*麻枽Nw蕠R,t怓吤顷濶^杰
uiY'QZ'3q昃w滼d硚祸羷遯簸唘p(EJ编槓n琷夊;)kV咘!葤1  ;07070100029f6a000081a40000000000000002000000013ac038a7000001de000000200000000000000000000000000000001c00000003reloc/wuftpd/images/net.gif   GIF89a0 0   fff烫   櫃         !    ,    0 0  很0独璨t龜*Ｓ]榃ミ鎾*倬+薥=w1}"赿'$nN筏蓛順=塼*X嫬^砡*@鰱穏q椝nw尊q\m纂v;铽醎|{~y乗
媶噝k{\峿弾抭妺潟漻] 牉寠R寉灆￢廠ぅ┉ごT潹颅衰拦捛夏T 患蕾召呜僦棕浊滂煦赕怃麴锺篪蝥叔kg磔?:濧啌hn猞3j|@预C"!挙挾T
ftl	r@hf股sB蜝;骝tJQ琝哛舰t檎疪眾倞E,Pc奞骃3ァ篎E5+U〈襃,卜6J洛p簣v耦銌P演谯7p=yOIqB倫V茱q@	C秝佼嗤K慈"膱藭<% ;  07070100029f6b000081a40000000000000002000000013ac038a70000014c000000200000000000000000000000000000001d00000003reloc/wuftpd/images/perm.gif  GIF89a0 0   烫虣櫃fff            !    ,    0 0  很0蔍8帅 貚Nf炴FRA杈檬爵薘+D8H	罵q莐:廔釖懷呂"霭Y硒7芼╕.3Pq@啁傟ct3mj<僲`\>9SFN橫1C帤M煓湑!V_#[TU帯玆剹hd窲氮sw舥羬壬喡~+粳B淹 莻$%俟重&圳b,贽9 噦耔熵晚o郑<7觯萘鄃徚! ;|们H辛勌碍SvA[s溡U蹾;:矚瀽g&4.K  ;070701000259bd000081e40000000000000002000000013ac038a700000dfb000000200000000000000000000000000000001700000003reloc/wuftpd/index.cgi    #!/usr/local/bin/perl
# index.cgi
# Display the wuFTPd main menu

require './wuftpd-lib.pl';
use Socket;
$| = 1;
&header($text{'index_title'}, "", "intro", 1, 1);
print "<hr>\n";

# Check if wuftpd is installed
if (!-x $config{'ftpd_path'}) {
	print "<p>",&text('index_eftpd', "<tt>$config{'ftpd_path'}</tt>",
			  "/config.cgi?$module_name"),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

# Check if the ftpaccess file exists
if (!-r $config{'ftpaccess'}) {
	print "<p>",&text('index_eftpaccess', "<tt>$config{'ftpaccess'}</tt>",
			  "/config.cgi?$module_name"),"<p>\n";
	print "<hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

@st = stat($config{'ftpd_path'});
&read_file("$module_config_directory/ftpd", \%ftpd);
if ($ftpd{'size'} != $st[7] || $ftpd{'mtime'} != $st[9]) {
	# Run the ftpd to check if it is really wuftpd
	socketpair(LOCAL, FTP, AF_UNIX, SOCK_STREAM, PF_UNSPEC) ||
		print "socketpair failed : $!<p>";
	select(LOCAL); $| = 1; select(FTP); $| = 1; select(STDOUT);
	if (!($pid = fork())) {
		close(LOCAL);
		untie(*STDIN);
		untie(*STDOUT);
		untie(*STDERR);
		open(STDIN, "<&FTP");
		open(STDOUT, ">&FTP");
		open(STDERR, ">&FTP");
		exec($config{'ftpd_path'}, "-A");
		print "Exec failed : $!\n";
		exit;
		}
	close(FTP);
	print LOCAL "quit\n";
	while(<LOCAL>) {
		$version = $1 if (/Version\s+wu-(\d+\.\d+)/i);
		}
	close(LOCAL);
	waitpid($pid, 0);
	if (!$version) {
		print "<p>",&text('index_eversion',
				  "<tt>$config{'ftpd_path'}</tt>",
				  "/config.cgi?$module_name"),"<p>\n";
		print "<hr>\n";
		&footer("/", $text{'index'});
		exit;
		}

	# Save version information
	$ftpd{'size'} = $st[7];
	$ftpd{'mtime'} = $st[9];
	$ftpd{'version'} = $version;
	&write_file("$module_config_directory/ftpd", \%ftpd);
	}

# Display table of icons
@names = ( 'class', 'message', 'acl', 'net', 'log',
	   'alias', 'anon', 'perm', 'misc' );
@links = map { "edit_${_}.cgi" } @names;
@titles = map { $text{"${_}_title"} } @names;
@icons = map { "images/${_}.gif" } @names;
&icons_table(\@links, \@titles, \@icons, 5);

if (&foreign_check('inetd')) {
	# Check if ftpd is in inetd
	&foreign_require('inetd', 'inetd-lib.pl');
	foreach $i (&foreign_call('inetd', 'list_inets')) {
		if ($i->[1] && $i->[3] eq 'ftp') {
			$inet = $i;
			last;
			}
		}
	$inet_mod = 'inetd';
	}
elsif (&foreign_check('xinetd')) {
	# Check if ftpd is in xinetd
	&foreign_require('xinetd', 'xinetd-lib.pl');
	foreach $xi (&foreign_call("xinetd", "get_xinetd_config")) {
		if ($xi->{'quick'}->{'disable'}->[0] ne 'yes' &&
		    $xi->{'value'} eq 'ftp') {
			$inet = $xi;
			last;
			}
		}
	$inet_mod = 'xinetd';
	}
else {
	# Not supported on this OS .. assume so
	$inet = 1;
	}

if (!$inet) {
	# Get the FTP server pid
	if (open(PID, $config{'pid_file'})) {
		chop($pid = <PID>);
		close(PID);
		}
	$pid = undef if (!kill(0, $pid));
	}

if (!$inet && $pid) {
	print "<hr>\n";
	print "<form action=restart.cgi>\n";
	print "<input type=hidden name=pid value='$pid'>\n";
	print "<table width=100%><tr>\n";
	print "<td><input type=submit value=\"$text{'index_apply'}\"></td>\n";
	print "<td>$text{'index_applymsg'}</td>\n";
	print "</tr></table></form>\n";
	}
elsif (!$inet && !$pid) {
	print "<hr>\n";
	print "<form action=start.cgi>\n";
	print "<table width=100%><tr>\n";
	print "<td><input type=submit value=\"$text{'index_start'}\"></td>\n";
	if ($inet_mod) {
		print "<td>",&text('index_startmsg', "/$inet_mod/"),"</td>\n";
		}
	else {
		print "<td>$text{'index_startmsg2'}</td>\n";
		}
	print "</tr></table></form>\n";
	}

print "<hr>\n";
&footer("/", $text{'index'});

 0707010002b529000041ed0000000000000001000000023ac03cb100000000000000200000000000000000000000000000001200000003reloc/wuftpd/lang 0707010002b52a000081a40000000000000002000000013ac038a7000024ad000000200000000000000000000000000000001500000003reloc/wuftpd/lang/de  index_title=FTP Server
index_eftpd=Der FTP server $1 konnte nicht auf Ihrem System gefunden werden. Vielleicht ist er nicht installiert, oder Ihre <a href='$2'>FTP Server Module Konfiguration</a> ist fehlerhaft.
index_eftpaccess=Die FTP Server Konfigurationsdatei $1 existiert nicht. Vielleicht ist er nicht installiert, oder Ihre <a href='$2'>FTP Server Module Konfiguration</a> ist fehlerhaft.
index_eversion=Der FTP Server $1 scheint nicht WU-FTPd zu sein. Vielleicht benutzen Sie einen &auml;lteren FTPd der mit Ihrem Betriebssystem geliefert wurde, oder Ihre <a href='$2'>FTP Server Module Konfiguration</a> ist fehlerhaft.
index_apply=&Auml;nderungen anwenden
index_applymsg=Klicken Sie auf diesen Button, um die aktuelle Konfiguration anzuwenden. Dies wird alle laufenden FTP Server Prozesse stoppen und neu starten. Dadurch werden alle verbunden Benutzer getrennt werden.
index_start=Starte Server
index_startmsg=Klicken Sie auf diesen Button, um den FTP Server mit der aktuellen Konfiguration zu starten. Sie k&ouml;nnen den Server auch so konfigurieren, dass er automatisch gestartet wird, wenn er ben&ouml;tigt wird mit dem Modul <a href='$1'>Internet Dienste</a>.
index_return=FTP Server Einstellungen

class_title=Benutzer und Klassen
class_header=Benutzer Klassen und Benutzer Einstellungen
class_class=Benutzer Klassen
class_name=Klassen Name
class_types=Benutzer Typen
class_addrs=Passende Adressen
class_real=Unix
class_guest=Gast
class_anonymous=Anonym
class_guestuser=Unix Benutzer und UID die als G&auml;ste behandelt werden sollen
class_guestgroup=Unix Gruppen und GID die als G&auml;ste behandelt werden sollen
class_realuser=Unix Benutzer und UID die <I>nicht</I> als G&auml;ste behandelt werden sollen
class_realgroup=Unix Gruppen und GID die <I>nicht</A> als G&auml;ste behandelt werden sollen
class_ftpusers=Unix Benutzer, denen der Zugriff verweigert werden sollen (von $1)
class_deny_uid=Unix Benutzer und UID denen der Zugriff verweigert werden soll
class_deny_gid=Unix Gruppen und GID denen der Zugriff verweigert werden soll
class_allow_uid=Unix Benutzer und UID denen der Zugriff <I>nicht</I> verweigert werden soll
class_allow_gid=Unix Gruppen und GID denen der Zugriff </I>nicht</I> verweigert werden soll
class_err=Fehler beim Speichern der Benutzer Klasse
class_eclass='$1' ist kein g&uuml;ltiger Klassenname
class_etypes=Keine Typen ausgew&auml;hlt f&uuml;r Klasse '$1'
class_eaddrs=Keine Adressen angegeben f&uuml;r Klasse '$1'

message_title=Nachrichten und Banner
message_header=Nachrichten, Banner und README Dateien
message_message=Nachrichten Dateien
message_path=Pfad
message_when=Wann sollen die Dateien angezeigt werden
message_login=Beim Login
message_dir=Betreten des Verzeichnisses
message_alldir=Betreten eines Verzeichnisses
message_classes=Klassen, denen die Nachricht gezeigt werden soll
message_readme=README Dateien
message_update=Wann &Auml;nderungsdatum angezeigt werden soll
message_greeting=Gruss-Ebene
message_full=Hostname and Version
message_brief=Hostname
message_terse=Keines
message_banner=Pre-login Banner
message_none=Keines
message_file=Von Datei
message_hostdef=System Hostname
message_hostname=Hostname f&uuml;r Nachrichten
message_email=Email-Adresse des Besitzers
message_err=Fehler beim Speichern von Nachrichten und Bannern
message_epath='$1' ist kein g&uuml;ltiger Pfad
message_cwd='$1' ist kein g&uuml;ltiges Verzeichnis
message_eclass=Klasse '$1' existiert nicht
message_ebanner='$1' ist keine g&uuml;ltige Login Banner Datei not a valid login banner file
message_ehostname=Fehlender oder ung&uuml;ltiger Hostname
message_eemail=Fehlende oder ung&uuml;ltige email Adresse

acl_title=Limits und Zugriffskontrolle
acl_header=Limits und Zugrifskontroll-Einstellungen
acl_deny=Verweigere Zugriff von
acl_daddrs=Verweigere von Adresse
acl_dmsg=Fehler Nachricht Datei
acl_file=Datei und Daten Transfer Limits
acl_fblimit=Limit Typ
acl_flimit=Dateien pro Session
acl_blimit=Bytes pro Session
acl_raw=Nur Daten?
acl_inout=Richtung
acl_in=Eingang
acl_out=Ausgang
acl_total=Beide
acl_count=Maximum
acl_class=Anwenden auf Klasse
acl_all=Alle Klassen
acl_limit=Limit gleichzeitiger Benutzer
acl_n=Maximale Anzahl Benutzer
acl_times=Zu Zeiten
acl_lmsg=Fehler Nachricht Datei
acl_unlimited=Unbeschr&auml;nkt
acl_any=Zu jeder Zeit
acl_alimit=Anonymous Session Limit
acl_glimit=Gast Session Limit
acl_mins=Minuten
acl_fails=Maximale Anzahl Login Fehler
acl_private=Can Gruppe wechseln?
acl_noret=Verweiger Zugriff auf Dateien
acl_nfiles=Zu verweigernde Dateien
acl_nrel=Relativ zu chroot?
acl_nclass=Verweigere f&uuml;r Klassen
acl_allowret=Gestatte Zugriff auf Dateien auch falls verweigert
acl_afiles=Zu erlaubende Dateien
acl_arel=Relativ zu chroot?
acl_aclass=Erlaube f&uuml;r Klassen
acl_err=Fehler beim Speichern der Limits und Zugriffskontrolle
acl_edaddr='$1' ist keine g&uuml;ltige Adresse
acl_edfile='$1' ist keine g&uuml;ltige Adress-Datei
acl_edmsg='$1' ist keine g&uuml;ltige Fehler-Nachrichtsdatei
acl_eln='$1' ist keine g&uuml;ltige Maximal-Anzahl an Benutzern
acl_etimes='$1' ist kein g&uuml;ltiger UUCP-Style Zeitraum
acl_elmsg='$1' ist keine g&uuml;ltige Fehler-Nachrichtsdatei
acl_efbcount='$1' ist keine g&uuml;ltige Anzahl Dateien oder Bytes
acl_elimit='$1' ist kein g&uuml;ltiges Zeit-Limit
acl_efails='$1' ist keine g&uuml;ltige Anzahl an Login-Fehlern

net_title=Netzwerk
net_header=Netzwerk Einstellungen
net_tcp=TCP Window Gr&ouml;sse
net_tsize=Gr&ouml;sse
net_tclass=F&uuml;r Klasse
net_tall=Alle Klassen
net_pasvaddr=Adressen f&uuml;r PASV Verbindungen
net_pip=IP adresse
net_pcidr=F&uuml;r Clients vom Netzwerk
net_pasvport=Ports f&uuml;r PASV Verbindungen
net_prange=Port Raum
net_err=Fehler beim Speichern der Netzwerk Einstellungen
net_etsize='$1' ist keine g&uuml;ltige TCP Window Gr&ouml;sse
net_eip='$1' ist keine g&uuml;ltige IP Adresse
net_enet='$1' ist keine g&uuml;ltige Netzwerk-Adresse
net_ecidr='$1' ist keine g&uuml;ltige Anzahl an Netzwerk Bits
net_eport='$1' ist keine g&uuml;ltiger Port

log_title=Logging
log_header=Logging Einstellungen
log_commands=Log alle Kommandos f&uuml;r
log_anonymous=Anonymous Benutzer
log_guest=Gast Benutzer
log_real=Unix Benutzer
log_trans=Logge Transfers f&uuml;r
log_dir=Richtung
log_inbound=Inbound
log_outbound=Outbound
log_both=Beide
log_security=Log Sicherheitsverletzungen f&uuml;r
log_to=Log Transfers zu
log_syslog=System Log
log_xferlog=XFER Log Datei
log_err=Fehler beim Speichern der Logging Optionen

alias_title=Aliase und Pfade
alias_header=Alias und Pfad Einstellungen
alias_alias=CD Verzeichnis Aliases
alias_from=Alias Name
alias_to=Alias zu Verzeichnis
alias_cdpath=CD Verzeichnis Such-Pfad
alias_err=Fehler beim Speichern der Aliase und Pfade
alias_efrom='$1' ist kein g&uuml;ltiger Alias-Name
alias_eto='$1' ist keine g&uuml;liges Alias Verzeichnis
alias_ecdpath='$1' ist kein g&uuml;ltiges CD Such-Verzeichnis

anon_title=Anonymous FTP
anon_eftp=Warnung - Ihr system hat keinen <tt>ftp</tt> Benutzer, daher ist anonymouse FTP evtl. nicht konfiguriert.
anon_header=Anonymous FTP Einstellungen
anon_auto=Unix Gruppen f&uuml;r anonymous Benutzer
anon_group=Wechsle zu Gruppe
anon_classes=F&uuml;r Klassen
anon_root=Anonymous FTP root Verzeichniss
anon_dir=Verzeichnis
anon_class=F&uuml;r Klasse
anon_any=Alle
anon_passwd=Anonymous FTP Passwort &Uuml;berpr&uuml;fung
anon_none=Erlaube alles
anon_trivial=Muss @ enthalten
anon_rfc822=Must eine email Adresse nach RFC822 sein
anon_enforce=Verweigere Login
anon_warn=Nur warnen
anon_email=Anonymous FTP Passwords die verweigert werden sollen
anon_groot=Gast root Verzeichnis
anon_uids=F&uuml;r Unix Benutzer
anon_err=Fehler beim Speichern der anonymous FTP Einstellungen
anon_edir='$1' ist kein g&uuml;ltiges Verzeichnis
anon_egroup='$1' ist keine g&uuml;ltige Gruppe

perm_title=Zugriffsrechte
perm_header=Einstellungen der Zugriffsrechte
perm_perms=Kommando Einschr&auml;nkungen
perm_type=Kommando
perm_can=Erlauben?
perm_users=F&uuml;r Benutzer Typ
perm_classes=F&uuml;r Klassen
perm_all=Alle
perm_anonymous=Anonymous
perm_guest=Gast
perm_real=Unix
perm_note=Standardm&auml;ssig sind alle Kommandos f&uuml;r alle Benutzer verf&uuml;gbar
perm_filter=Verbotene Upload Dateinamen
perm_types=User Typen
perm_mesg=Fehler Nachrichtsdatei
perm_char=Gestattete Zeichen
perm_regexp=zu verweigerende Datei
perm_err=Fehler beim Speichern der Zugriffsrechte
perm_echar='$1' ist kein g&uuml;ltiger regul&auml;rer Ausdruck f&uuml;r Zeichen
perm_etypes=Kein Benutzertyp gew&auml;hlt
perm_emesg='$1' ist keine g&uuml;ltige Fehler Nachrichtsdatei

host_title=Host Zugriffskontrolle

misc_title=Sonstige Einstellungen
misc_header=Sonstige Einstellungen
misc_lslong=Langes List-Kommando
misc_lsshort=Kurzes List-Kommando
misc_lsplain=Normales List-Kommando
misc_shutdown=Shutdown Benachrichtigungsdatei
misc_none=Keine
misc_nice=Service Prozess guter Level
misc_ndelta=Guter Level
misc_class=F&uuml;r Klassen
misc_all=Alle Klassen
misc_defumask=Standard umask f&uuml;r hochgeladene Dateien
misc_umask=Umask
misc_err=Fehler beim Speichern der sonstigen Einstellungen
misc_elslong=Fehlendes Kommando f&uuml;r langes List-Kommando
misc_elsshort=Fehlendes Kommando f&uuml;r kurzes List-Kommando
misc_elsplain=Fehlendes Kommando f&uuml;r normales List-Kommando
misc_eshutdown=Fehlende Shutdown Benachrichtigungsdatei
misc_enice='$1' ist kein g&uuml;ltiger guter Level
misc_eumask='$1' ist keine g&uuml;ltige    0707010002b52b000081a40000000000000002000000013ac038a7000020f1000000200000000000000000000000000000001500000003reloc/wuftpd/lang/en  index_title=FTP Server
index_eftpd=The FTP server $1 could not be found on your system. Maybe it is not installed, or your <a href='$2'>FTP Server module configuration</a> is incorrect.
index_eftpaccess=The FTP server configuration file $1 does not exist.  Maybe it is not installed, or your <a href='$2'>FTP Server module configuration</a> is incorrect.
index_eversion=The FTP server $1 does not appear to be WU-FTPd. Maybe you are using an older FTPd provided with your operating system, or your <a href='$2'>FTP Server module configuration</a> is in correct.
index_apply=Apply Changes
index_applymsg=Click this button to apply the current configuration. This will stop and restart all the running FTP server processes, thus disconnecting all connected users.
index_start=Start Server
index_startmsg=Click this button to start the FTP server with the current configuration. You can also configure the server to be started automatically when needed using the <a href='$1'>Internet Services</a> module.
index_startmsg2=Click this button to start the FTP server with the current configuration. You can also configure the server to be started automatically when needed using inetd or some equivalent program.
index_return=FTP server options

class_title=Users and Classes
class_header=User classes and user options
class_class=User classes
class_name=Class name
class_types=User types
class_addrs=Matching addresses
class_real=Unix
class_guest=Guest
class_anonymous=Anonymous
class_guestuser=Unix users and UIDs to treat as guests
class_guestgroup=Unix groups and GIDs to treat as guests
class_realuser=Unix users and UIDs <i>not</i> to treat as guests
class_realgroup=Unix groups and GIDs <i>not</i> to treat as guests
class_ftpusers=Unix users to deny (from $1)
class_deny_uid=Unix users and UIDs to deny
class_deny_gid=Unix groups and GIDs to deny
class_allow_uid=Unix users and UIDs <i>not</i> to deny
class_allow_gid=Unix groups and GIDs <i>not</i> to deny
class_err=Failed to save user classes
class_eclass='$1' is not a valid class name
class_etypes=No types chosen for class '$1'
class_eaddrs=No addresses entered for class '$1'

message_title=Messages and Banners
message_header=Messages, banners and README files
message_message=Message files
message_path=Path
message_when=When to display
message_login=At login
message_dir=Entering dir
message_alldir=Entering any dir
message_classes=Classes to display for
message_readme=README files
message_update=When to display last modifed date
message_greeting=Greeting level
message_full=Hostname and version
message_brief=Hostname
message_terse=Neither
message_banner=Pre-login banner
message_none=None
message_file=From file
message_hostdef=System hostname
message_hostname=Hostname for messages
message_email=Owner's email address
message_err=Failed to save messages and banners
message_epath='$1' is not a valid path
message_cwd='$1' is not a valid directory
message_eclass=Class '$1' does not exist
message_ebanner='$1' is not a valid login banner file
message_ehostname=Missing or invalid hostname
message_eemail=Missing or invalid email address

acl_title=Limits and Access Control
acl_header=Limits and access control options
acl_deny=Deny access from
acl_daddrs=Deny from address
acl_dmsg=Error message file
acl_file=File and data transfer limits
acl_fblimit=Limit type
acl_flimit=Files per session
acl_blimit=Bytes per session
acl_raw=Data only?
acl_inout=Direction
acl_in=In
acl_out=Out
acl_total=Both
acl_count=Maximum
acl_class=Apply to class
acl_all=All classes
acl_limit=Concurrent user limits
acl_n=Maximum users
acl_times=At times
acl_lmsg=Error message file
acl_unlimited=Unlimited
acl_any=Any time
acl_alimit=Anonymous session limit
acl_glimit=Guest session limit
acl_mins=minutes
acl_fails=Maximum login failures
acl_private=Can switch groups?
acl_noret=Deny access to files
acl_nfiles=Files to deny
acl_nrel=Relative to chroot?
acl_nclass=Deny for classes
acl_allowret=Allow access to files even if denied
acl_afiles=Files to allow
acl_arel=Relative to chroot?
acl_aclass=Allow for classes
acl_err=Failed to save limits and access control
acl_edaddr='$1' is not a valid address
acl_edfile='$1' is not a valid address file
acl_edmsg='$1' is not a valid error message file
acl_eln='$1' is not a valid maximum number of users
acl_etimes='$1' is not a valid UUCP-style time range
acl_elmsg='$1' is not a valid error message file
acl_efbcount='$1' is not a valid number of files or bytes
acl_elimit='$1' is not a valid time limit
acl_efails='$1' is not a valid number of login failures

net_title=Networking
net_header=Networking options
net_tcp=TCP window sizes
net_tsize=Size
net_tclass=For class
net_tall=All classes
net_pasvaddr=Addresses for PASV connections
net_pip=IP address
net_pcidr=For clients from network
net_pasvport=Ports for PASV connections
net_prange=Port range
net_err=Failed to save networking options
net_etsize='$1' is not a valid TCP window size
net_eip='$1' is not a valid IP address
net_enet='$1' is not a valid network address
net_ecidr='$1' is not a valid number of network bits
net_eport='$1' is not a valid port number

log_title=Logging
log_header=Logging options
log_commands=Log all commands for
log_anonymous=Anonymous users
log_guest=Guest users
log_real=Unix users
log_trans=Log transfers for
log_dir=In directions
log_inbound=Inbound
log_outbound=Outbound
log_both=Both
log_security=Log security violations for
log_to=Log transfers to
log_syslog=System log
log_xferlog=XFER log file
log_err=Failed to save logging options

alias_title=Aliases and Paths
alias_header=Alias and path options
alias_alias=CD directory aliases
alias_from=Alias name
alias_to=Alias to directory
alias_cdpath=CD directory search path
alias_err=Failed to save aliases and paths
alias_efrom='$1' is not a valid alias name
alias_eto='$1' is not a valid alias directory
alias_ecdpath='$1' is not a valid CD search directory

anon_title=Anonymous FTP
anon_eftp=Warning - your system does not have an <tt>ftp</tt> user, and thus anonymous FTP is probably not configured.
anon_header=Anonymous FTP options
anon_auto=Unix groups for anonymous users
anon_group=Switch to group
anon_classes=For classes
anon_root=Anonymous FTP root directories
anon_dir=Directory
anon_class=For class
anon_any=Any
anon_passwd=Anonymous FTP password check
anon_none=Allow anything
anon_trivial=Must contain @
anon_rfc822=Must be RFC822 email address
anon_enforce=Deny login
anon_warn=Warn only
anon_email=Anonymous FTP passwords to deny
anon_groot=Guest root directories
anon_uids=For Unix users
anon_err=Failed to save anonymous FTP options
anon_edir='$1' is not a valid directory
anon_egroup='$1' is not a valid group

perm_title=Permissions
perm_header=Permission options
perm_perms=Command restrictions
perm_type=Command
perm_can=Allow?
perm_users=For user types
perm_classes=For classes
perm_all=All
perm_anonymous=Anonymous
perm_guest=Guest
perm_real=Unix
perm_note=By default, all commands are allowed for all users
perm_filter=Disallowed upload filenames
perm_types=User types
perm_mesg=Error message file
perm_char=Allowed characters
perm_regexp=File regexps to deny
perm_err=Failed to save permissions
perm_echar='$1' is not a valid character set regular expression
perm_etypes=No user types selected
perm_emesg='$1' is not a valid error message file

host_title=Host Access Control

misc_title=Miscellaneous Options
misc_header=Miscellaneous options
misc_lslong=Long listing command
misc_lsshort=Short listing command
misc_lsplain=Plain listing command
misc_shutdown=Shutdown notification file
misc_none=None
misc_nice=Service process nice level
misc_ndelta=Nice level
misc_class=For classes
misc_all=All classes
misc_defumask=Default umask for uploaded files
misc_umask=Umask
misc_err=Failed to save miscellaneous options
misc_elslong=Missing long listing command
misc_elsshort=Missing short listing command
misc_elsplain=Missing plain listing command
misc_eshutdown=Missing shutdown notification file
misc_enice='$1' is not a valid nice level
misc_eumask='$1' is not a valid umask

log_class=Changed users and classes
log_message=Changed messages and banners
log_acl=Changed limits and access control
log_net=Changed networking options
log_log=Changed logging options
log_alias=Changed aliases and paths
log_anon=Changed anonymous FTP
log_perm=Changed permissions options
log_misc=Changed miscellaneous options
log_restart=Applied changed
log_start=Started FTP server

   0707010002b52c000081a40000000000000002000000013ac038a700002663000000200000000000000000000000000000001500000003reloc/wuftpd/lang/es  index_title=Servidor FTP
index_eftpd=No se ha podido encontrar al servidor FTP $1 en tu sistema. Quiz no est instalado o tu <a href='$2'>configuraci髇 del m骴ulo de Servidor FTP</a> es incorrecta.
index_eftpaccess=El archivo de configuraci髇 del Servidor FTP $1 no existe. Quiz no est instalado o tu <a href='$2'>configuraci髇 del m骴ulo de Servidor FTP</a> es incorrecta.
index_eversion=El servidor FTP $1 no parece ser del tipo WU-FTPd. Quiz est醩 usando una vieja versi髇 de FTPd suministrada con tu sistema operativo o tu <a href='$2'>configuraci髇 del m骴ulo de Servidor FTP</a> es incorrecta.
index_apply=Aplicar Cambios
index_applymsg=Haz click en este bot髇 para aplicar la configuraci髇 en curso. Esto parar y rearrancar todos los procesos en ejecuci髇 del servidor FTP, desconectando as a todos los usuarios conectados.
index_start=Arrancar Servidor
index_startmsg=Haz click en este bot髇 para arrancar el servidor FTP con la configuraci髇 en curso. Puedes tambi閚 configurar al servidor para ser arrancado autom醫icamente seg鷑 sea necesario mediante el m骴ulo de <a href='$1'>Servicios de Internet</a>.
index_startmsg2=Haz click en este bot髇 para arrancar el servidor FTP con la configuraci髇 en curso. Puedes tambi閚 configurar al servidor para ser arrancado autom醫icamente seg鷑 sea necesario utilizando inetd o alg鷑 programa equivalente.
index_return=Opciones del servidor FTP

class_title=Usuarios y Clases
class_header=Clases de Usuarios y Opciones de usuario
class_class=Clases de Usuarios
class_name=Nombre de clase
class_types=Tipos de Usuario
class_addrs=Direcciones coincidentes
class_real=Unix
class_guest=Invitado
class_anonymous=An髇imo
class_guestuser=Usuarios de Unix y UIDs a ser considerados como invitados
class_guestgroup=Grupos de Unix y GIDs a ser considerados como invitados
class_realuser=Usuarios de Unix y UIDs a <i>no</i> ser considerados como invitados
class_realgroup=Grupos de Unix y GIDs a <i>no</i> ser considerados como invitados
class_ftpusers=Usuarios de Unix a denegar (de $1)
class_deny_uid=Usuarios de Unix y UIDs a denegar
class_deny_gid=Grupos de Unix y GIDs a denegar
class_allow_uid=Usuarios de Unix y UIDs a <i>no</i> denegar
class_allow_gid=Grupos de Unix y GIDs a <i>no</i> denegar
class_err=No puedo salvar clases de usuarios
class_eclass='$1' no es un nombre v醠ido de clase
class_etypes=No se han seleccionado tipos para la clase '$1'
class_eaddrs=No se han digitado direcciones para la clase '$1'

message_title=Mensajes y Titulares
message_header=Mensajes, Titulares y archivos LEEME
message_message=Archivos de Mensajes
message_path=Trayectoria
message_when=Cu醤do mostrar
message_login=En el login
message_dir=Al digitar dir
message_alldir=Al digitar cualquier dir
message_classes=Clases a mostrar para
message_readme=Archivos LEEME
message_update=Cu醤do mostrar la 鷏tima fecha modificada
message_greeting=Nivel de saludo
message_full=Nombre de m醧uina y versi髇
message_brief=Nombre de m醧uina
message_terse=Ninguno de los dos
message_banner=Titular en pre-login
message_none=Ninguno
message_file=Desde archivo
message_hostdef=Nombre de m醧uina del Sistema
message_hostname=Nombre de m醧uina para los mensajes
message_email=Direcci髇 de correo del propietario
message_err=No puedo salvar los mensajes y titulares
message_epath='$1' no es una trayectoria v醠ida
message_cwd='$1' no es un directorio v醠ido
message_eclass=La clase '$1' no existe
message_ebanner='$1' no es un archivo v醠ido de titular en login
message_ehostname=Nombre de m醧uina sin poner o inv醠ido
message_eemail=Direcci髇 de correo sin poner o inv醠ida

acl_title=L韒ites y Control de Acceso
acl_header=Opciones de L韒ites y Control de Acceso
acl_deny=Denegar acceso desde
acl_daddrs=Denegar desde direcci髇
acl_dmsg=Archivo de mensajes de error
acl_file=L韒ites de transferencia de archivos y datos
acl_fblimit=Tipo de l韒ite
acl_flimit=Archivos por sesi髇
acl_blimit=Bytes por sesi髇
acl_raw=縎髄o datos?
acl_inout=Direcci髇
acl_in=Dentro
acl_out=Fuera
acl_total=Ambas
acl_count=M醲imo
acl_class=Aplicar a las clases
acl_all=Todas las clases
acl_limit=L韒ites de usuarios concurrentes
acl_n=M醲imo n鷐ero de usuarios
acl_times=En la hora
acl_lmsg=Archivo de mensajes de error
acl_unlimited=Ilimitado
acl_any=Cualquier hora
acl_alimit=L韒ite de sesi髇 an髇ima
acl_glimit=L韒ite de sesi髇 invitada
acl_mins=minutos
acl_fails=M醲imo n鷐ero de login err髇eos
acl_private=縋uedo cambiar de grupo?
acl_noret=Denegar acceso a archivos
acl_nfiles=Archivos a denegar
acl_nrel=縍elativo a chroot?
acl_nclass=Denegar para clases
acl_allowret=Permitir acceso a archivos incluso si est denegado
acl_afiles=Archivos a autorizar
acl_arel=縍elativo a chroot?
acl_aclass=Permitir a las clases
acl_err=No puedo salvar l韒ites y control de acceso
acl_edaddr='$1' no es una direcci髇 v醠ida
acl_edfile='$1' no es un archivo v醠ido de direcci髇
acl_edmsg='$1' no es un archivo v醠ido de mensajes de error
acl_eln='$1' no es un n鷐ero m醲imo de usuarios v醠ido
acl_etimes='$1' no es un rango de tiempo v醠ido de estilo-UUCP
acl_elmsg='$1' no es un archivo v醠ido de mensajes de error
acl_efbcount='$1' no es un n鷐ero v醠ido de archivos o bytes
acl_elimit='$1' no es un tiempo l韒ite v醠ido
acl_efails='$1' no es un n鷐ero vaido de logins err髇eos

net_title=Trabajo en Red
net_header=Opciones de Trabajo en Red
net_tcp=Medidas de ventana TCP
net_tsize=Medida
net_tclass=Para la clase
net_tall=Todas las clases
net_pasvaddr=Direcciones para conexiones PASV
net_pip=Direcciones IP
net_pcidr=Para clientes de la red
net_pasvport=Puertos para conexiones PASV
net_prange=Rango de Puertos
net_err=No puedo salvar opciones de Trabajo en Red
net_etsize='$1' no es una medida v醠ida de ventana TCP
net_eip='$1' no es una direcci髇 IP v醠ida
net_enet='$1' no es una direcci髇 de red v醠ida
net_ecidr='$1' no es un n鷐ero v醠ido de bits de red
net_eport='$1' no es un n鷐ero de puerto v醠ido

log_title=Historial
log_header=Opciones de Historial
log_commands=Llevar historial de todos los comandos para
log_anonymous=Usuarios an髇imos
log_guest=Usuarios invitados
log_real=Usuarios de Unix
log_trans=Llevar historial de transferencias para
log_dir=En las direcciones de
log_inbound=Entrada
log_outbound=Salida
log_both=Ambas
log_security=Llevar historial de violaciones de seguridad para
log_to=Llevar historial de transferencias a
log_syslog=Historial del Sistema
log_xferlog=Archivo de historial de XFER
log_err=No puedo salvar opciones de historial

alias_title=Alias y Trayectorias
alias_header=Opciones de Alias y Trayectorias
alias_alias=Alias de CD a directorio
alias_from=Nombre de Alias
alias_to=Alias a directorio
alias_cdpath=Trayectoria de b鷖queda de CD a directorio
alias_err=No puedo salvar alias y trayectorias
alias_efrom='$1' no es un nombre de alias v醠ido
alias_eto='$1' no es un alias de directorio v醠ido
alias_ecdpath='$1' no es un directorio v醠ido de b鷖queda de CD

anon_title=FTP An髇imo
anon_eftp=Aviso - tu sistema no tiene un usuario <tt>ftp</tt> y por ello probablemente el FTP an髇imo no est configurado.
anon_header=Opciones de FTP an髇imo
anon_auto=Grupos de Unix para usuarios an髇imos
anon_group=Conmutar a grupo
anon_classes=Para las clases
anon_root=Directorios raiz de FTP an髇imo
anon_dir=Directorio
anon_class=Para la clase
anon_any=Cualquiera
anon_passwd=Revisar clave de acceso de FTP an髇imo
anon_none=Permitir a cualquiera
anon_trivial=Debe de contener un @
anon_rfc822=Debe de ser una direcci髇 de correo RFC822
anon_enforce=Denegar el login
anon_warn=Avisar s髄amente
anon_email=Claves de acceso de FTP an髇imo a denegar
anon_groot=Directorios raiz de Invitados
anon_uids=Para usuarios de Unix
anon_err=No puedo salvar opciones de FTP an髇imo
anon_edir='$1' no es un directorio v醠ido
anon_egroup='$1' no es un grupo v醠ido

perm_title=Permisos
perm_header=Opciones de Permisos
perm_perms=Restricciones de Comandos
perm_type=Comandos
perm_can=縋ermitir?
perm_users=Para tipos de usuario
perm_classes=Para clases
perm_all=Todos
perm_anonymous=An髇imo
perm_guest=Invitado
perm_real=Unix
perm_note=Por defecto, todos los comandos est醤 autorizados para todos los usuarios
perm_filter=No permitir carga de nombres de archivo
perm_types=Tipos de Usuario
perm_mesg=Archivo de mensaje de error
perm_char=Caracteres autorizados
perm_regexp=Expresiones de registro de archivo a denegar
perm_err=No puedo salvar permisos
perm_echar='$1' no es una expresi髇 regular v醠ida de conjunto de caracteres
perm_etypes=No se han seleccionado tipos de usuario
perm_emesg='$1' no es un archivo de mensajes de error v醠ido

host_title=Control de Acceso a M醧uina

misc_title=Opciones Varias
misc_header=Opciones de Opciones Varias
misc_lslong=Comandos de tipo listado largo
misc_lsshort=Comandos de tipo listado corto
misc_lsplain=Comandos de listado normal
misc_shutdown=Archivo de notificaci髇 de apagado
misc_none=Ninguno
misc_nice=Nivel 'nice' de proceso de servicio
misc_ndelta=Nivel de 'nice'
misc_class=Para las clases
misc_all=Todas las clases
misc_defumask=M醩cara por defecto para los archivo cargados
misc_umask=M醩cara
misc_err=No puedo salvar opciones varias
misc_elslong=Comando de listado largo sin poner
misc_elsshort=Comando de listado corto sin poner
misc_elsplain=Comando de listado normal sin poner
misc_eshutdown=Archivo de notificaci髇 de apagado sin poner
misc_enice='$1' no es un nivel v醠ido de 'nice'
misc_eumask'$1' no es una m醩cara v醠ida

log_class=Cambiados usuarios y clases
log_message=Cambiadas banderas y mensajes
log_acl=Cambiados l韒ites y control de acceso
log_net=Cambiadas opciones de red
log_log=Cambiadas opciones de historial
log_alias=Cambiados aliases y trayectorias
log_anon=Cambiado FTP an髇imo
log_perm=Cambiadas opciones de permisos
log_misc=Cambiadas opciones varias
log_restart=Aplicados los cambios
log_start=Arrancado servidor FTP

 0707010002b52d000081a40000000000000002000000013ac038a70000254e000000200000000000000000000000000000001500000003reloc/wuftpd/lang/fr  index_title=Serveur FTP
index_eftpd=Le serveur FTP $1 ne peut 阾re trouv sur votre syst鑝e.  Peut-阾re n'est-il pas install ou votre <a href='$2'>Configuration du module du serveur FTP</a> est incorrecte.
index_eftpaccess=Le fichier de configuration $1 du serveur FTP n'existe pas.  Peut-阾re n'est-il pas install ou votre <a href='$2'>Configuration du module du serveur FTP</a> est incorrecte.
index_eversion=Le serveur FTP $1 ne semble pas 阾re WU-FTPd.  Peut-阾re utilisez-vous une vieille version de FTPd fournit avec votre syst鑝e d'exploitation ou votre <a href='$2'>Configuration du module du serveur FTP</a> est incorrecte.
index_apply=Appliquer les Changements
index_applymsg=Cliquer sur ce bouton appliquera la configuration courante.  Ceci va arr阾er et red閙arrer tout les processus du serveur FTP qui sont ex閏ut, et ainsi d閏onnect tout les usagers utilisant actuellement le serveur FTP.
index_start=D閙arrer le Serveur
index_startmsg=Cliquer sur ce bouton d閙arrera le service FTP avec la configuration actuelle.  Vous pouvez aussi configurer le serveur pour qu'il soit d閙arrer automatiquement en utilisant le module <a href='$1'>Services Internet</a>.
index_return=options du serveur FTP

class_title=Usagers et Classes
class_header=Classes et options d'usager
class_class=Classes d'usager
class_name=Nom de classe
class_types=Types d'usager
class_addrs=Adresses correspondantes
class_real=Unix
class_guest=Invit
class_anonymous=Anonyme
class_guestuser=Usagers Unix et num閞o d'usager  traiter comme invit
class_guestgroup=Groupes Unix et num閞o de groupe  traiter comme invit
class_realuser=Usager Unix et numr閛 d'usager <i>qui ne sont pas</i> trait comme invit
class_realgroup=Groupes Unix et numr閛 de groupe <i>qui ne sont pas</i> trait comme invit
class_ftpusers=Usagers Unix  refuser l'acc鑣 ( partir de $1)
class_deny_uid=Usagers Unix et num閞o d'usager  refuser l'acc鑣
class_deny_gid=Groupes Unix et num閞o de groupe  refuser l'acc鑣
class_allow_uid=Usagers Unix et num閞o d'usager dont l'acc鑣 <i>n'est pas refus</i>
class_allow_gid=Groupes Unix et num閞o de groupe dont l'acc鑣 <i>n'est pas refus</i>
class_err=Impossible d'enregistrer les classes d'usager
class_eclass=$1 n'est pas un nom de classe valide
class_etypes=Aucun type choisit pour la classe $1
class_eaddrs=Aucune adresses entr pour la classe $1

message_title=Bani鑢es et Messages
message_header=Messages, banni鑢es et fichiers README
message_message=Fichiers de message
message_path=Chemin
message_when=Quand afficher
message_login= l'ouverture de session
message_dir=En entrant dans un r閜ertoire
message_alldir=En entrant n'importe quel r閜ertoire
message_classes=Classes  qui afficher
message_readme=Fichiers README
message_update=Quand afficher la derin鑢e date de modification
message_greeting=Niveau de bienvenue
message_full=Nom d'h魌e et version
message_brief=Nom d'h魌e
message_terse=Ni un ni l'autre
message_banner=Bani鑢e d'avant-ouverture de session
message_none=Aucun
message_file= partir du fichier
message_hostdef=Nom d'h魌e de syst鑝e
message_hostname=Nom d'h魌e pour les messages
message_email=Adresse de couriel du propri閠aire
message_err=Impossible d'enregistrer les messages et banni鑢es
message_epath=$1 n'est pas un chemin valide
message_cwd=$1 n'est pas un r閜ertoire valide
message_eclass=La classe $1 n'existe pas
message_ebanner=$1 n'est pas un bani鑢e d'ouverture de session valide
message_ehostname=Nom d'h魌e manquant ou invalide
message_eemail=Adresse de couriel manquant ou invalide

acl_title=Limites et Contr鬺e d'Acc鑣
acl_header=Options des limites et contr鬺e d'acc鑣
acl_deny=Refuser l'acc鑣 de
acl_daddrs=Refuser  partir des adresses
acl_dmsg=Fichier de message d'erreur
acl_file=Limites de transfert et de fichier
acl_fblimit=Type de limite
acl_flimit=Fichiers par session
acl_blimit=Bytes par session
acl_raw=Donn閑 seulement?
acl_inout=Direction
acl_in=Entr閑
acl_out=Sortie
acl_total=Les deux
acl_count=Maximum
acl_class=Appliquer  la classe
acl_all=Toutes les classes
acl_limit=Limites d'usagers concurrent
acl_n=Maximum d'usagers
acl_times=Au temps
acl_lmsg=Fichier de message d'erreur
acl_unlimited=Illimit
acl_any=N'importe quel moment
acl_alimit=Limite de sessions anonyme
acl_glimit=Limite de session d'invit
acl_mins=minutes
acl_fails=Nombre maximum d'ouverture de session manqu閑s
acl_private=Peut changer de groupe?
acl_noret=Refuser l'acc鑣 aux fichiers
acl_nfiles=Fichiers  refuser l'acc鑣
acl_nrel=Relatif au r閜ertoire racine?
acl_nclass=Refuser l'acc鑣 pour les classes
acl_allowret=Autoriser l'acc鑣 aux fichiers, m阭e si refus
acl_afiles=Fichier  autoriser
acl_arel=Relatif au r閜ertoire racine?
acl_aclass=Autoriser pour les classes
acl_err=Impossible d'enregistrer les limites et contr鬺e d'acc鑣
acl_edaddr=$1 n'est pas une adresse valide
acl_edfile=$1 n'est pas un fichier d'adresse valide
acl_edmsg=$1 n'est pas fichier de message d'erreur valide
acl_eln=$1 n'est pas un nombre maximum d'usager valide
acl_etimes=$1 n'est pas une valeur de temps de style UUCP valide
acl_elmsg=$1 n'est pas un fichier de message is not a valid error message file
acl_efbcount=$1 n'est pas un nombre de fichier ou de bytes valide
acl_elimit=$1 n'est pas une valeur de temps limite valide
acl_efails=$1 n'est pas nombre d'ouverture de session rat閟 valide

net_title=R閟eau
net_header=Options r閟eau
net_tcp=Taille de la fen阾re TCP
net_tsize=Taille
net_tclass=Pour quel classe
net_tall=Toutes les classes
net_pasvaddr=Adresses pour les connexion PASV
net_pip=Adresse IP
net_pcidr=Pour les clients d'un r閟eau
net_pasvport=Ports des connexion PASV
net_prange=蓆endue des ports
net_err=Impossible d'enregistrer les options r閟eaux
net_etsize=$1 n'est pas une taille de fen阾re TCP valide
net_eip=$1 n'est pas un adresse IP valide
net_enet=$1 n'est pas une adresse r閟eau valide
net_ecidr=$1 n'est pas nombre de bits r閟eau valide
net_eport=$1 n'est pas un nombre de port valide

log_title=Journaux
log_header=Options des journaux
log_commands=Enregistrer toutes les commandes pour
log_anonymous=Usagers anonyme
log_guest=Usagers invit
log_real=Usagers Unix
log_trans=Enregistrer les transferts pour
log_dir=En directions
log_inbound=Entrant
log_outbound=Sortant
log_both=Les deux
log_security=Enregistrer les violations de s閏urit pour
log_to=Enregistrer les transfers pour
log_syslog=Journal syst鑝e
log_xferlog=Fichier journal XFER
log_err=Impossible d'enregistrer les options de journaux

alias_title=Alias et Chemins
alias_header=Options de chemins et d'alias
alias_alias=Alias de r閜ertoire pour CD
alias_from=Nom de l'alias
alias_to=Alias au r閜ertoire
alias_cdpath=Chemin du r閜ertoire de recherche de CD
alias_err=Impossible d'enregistrer  les alias et les chemins
alias_efrom=$1 n'est pas un nom d'alias valide
alias_eto=$1 n'est pas un alias de r閜ertoire valide
alias_ecdpath=$1 n'est pas r閜ertoire de recherche de CD valide

anon_title=FTP Anonyme
anon_eftp=Attention - votre syst鑝e n'a pas l'usager <tt>ftp</tt>, ainsi les sessions anonyme ne sont pas configur
anon_header=Options de FTP anonyme
anon_auto=Groupes Unix pour les usagers anonyme
anon_group=Changer pour le groupe
anon_classes=Pour les classes
anon_root=R閜ertoire racine des sessions anonyme
anon_dir=R閜ertoire
anon_class=Pour les classes
anon_any=Toutes
anon_passwd=V閞ification du mot de passe des sessions anonyme
anon_none=Autoriser n'importe quoi
anon_trivial=Doit contenir le caract鑢e @
anon_rfc822=Doit 阾re une adresse respectant la norme RFC822
anon_enforce=Refuser l'acc鑣
anon_warn=Avertir seulement
anon_email=Mot de passe  refuser pour les sessions anonyme
anon_groot=R閜ertoire racine des invit閟
anon_uids=Pour les usagers Unix
anon_err=Impossible d'enregistrer les options du FTP anonyme
anon_edir=$1 n'est pas un r閜ertoire valide
anon_egroup=$1 n'est pas un groupe valide

perm_title=Permissions
perm_header=Options de permissions
perm_perms=Restrictions des commandes
perm_type=Commande
perm_can=Autoriser?
perm_users=Pour le type d'usager
perm_classes=Pour les classes
perm_all=Toutes
perm_anonymous=Anonyme
perm_guest=Invit
perm_real=Unix
perm_note=Par d閒aut, toutes les commandes sont autoris  tout les usagers
perm_filter=Nom de fichier qui ne sont pas autoris
perm_types=Types d'usagers
perm_mesg=Fichier d'erreur de message
perm_char=Charact鑢es autoris
perm_regexp=Expressions r間uli鑢e  refuser
perm_err=Impossible d'enregistrer les permissions
perm_echar=$1 n'est pas un caract鑢e valide dans une expression r間uli鑢e
perm_etypes=Aucun type d'usager s閘ectionn
perm_emesg=$1 n'est pas un message d'erreur valide

host_title=Contr鬺e d'Acc鑣 des H魌es

misc_title=Autres Options
misc_header=Autres options
misc_lslong=Commande pour les listes d閠aill閑
misc_lsshort=Commande pour les listes courte
misc_lsplain=Commande pour les listes simple
misc_shutdown=Fichier de notification durant un arr阾 du syst鑝e
misc_none=Aucun
misc_nice=Niveau d'ex閏ution Service process nice level
misc_ndelta=Niveau d'ex閏ution
misc_class=Pour les classes
misc_all=Toute les classes
misc_defumask=Masque de permission des fichiers t閘閏harg
misc_umask=Masque de permission des fichiers
misc_err=Impossible d'enregistrer les autres options
misc_elslong=Commande de listes d閠aill閑 manquante
misc_elsshort=Commande de listes courte manquante
misc_elsplain=Commande de listes simple manquante
misc_eshutdown=Fichier de notification d'arr阾 de syst鑝e manquant
misc_enice=$1 n'est pas niveau d'ex閏ution valide
misc_eumask=$1 n'est pas un masque de permission de fichier valide
  0707010002b52e000081a40000000000000002000000013ac038a70000232d000000200000000000000000000000000000001500000003reloc/wuftpd/lang/pl  index_title=Serwer FTP
index_eftpd=Serwer FTP $1 nie zosta znaleziony na Twoim komputerze. Mo縠 nie zosta zainstalowany, albo Twoja <a href='$2'>konfiguracja modu硊 serwera FTP </a> jest niepoprawna.
index_eftpaccess=Plik konfiguracyjny serwera FTP $1 nie istnieje. Mo縠 nie zosta zainstalowany, lub Twoja <a href='$2'>konfiguracja modu硊 serwera FTP</a> jest b酬dna.
index_eversion=Serwer FTP $1 to nie WU-FTPd. Mo縠 u縴wasz starej wersji FTPd, albo <a href='$2'>konfiguracja modu硊 serwera FTP</a> jest b酬dna.
index_apply=Zastosuj zmiany
index_applymsg=Wybierz by zachowa aktualn konfiguracj. To zrestartuje wszystkie procesy serwera FTP, i dlatego roz潮czy wszystkich u縴tkownik體.
index_start=Startuj serwer
index_startmsg=Wybierz by wystartowa serwer FTP z&nbsp;aktualn konfiguracj. Za pomoc modu硊 <a href='$1'>Us硊gi Internetowe</a> mo縠sz skonfigurowa serwer FTP tak, by by startowany automatycznie.
index_startmsg2=Naci秐ij ten przycisk aby uruchomi serwer FTP z&nbsp;bierz眂 konfiguracj. Mo縠sz r體nie skonfigurowa serwer tak, aby by uruchamiany automatycznie w&nbsp;razie potrzeby poprzez <tt>inetd</tt> lub podobny program.
index_return=Opcje serwera FTP

class_title=U縴tkownicy i klasy
class_header=Klasy i&nbsp;opcje u縴tkownik體
class_class=Klasy u縴tkownik體
class_name=Nazwa klasy
class_types=Typy u縴tkownik體
class_addrs=Adresy
class_real=Uniksa
class_guest=Go舵
class_anonymous=Anonimowy
class_guestuser=U縴tkownicy Uniksa i&nbsp;numery UID traktowani jako go禼ie
class_guestgroup=Grupy Uniksa i&nbsp;numery GID traktowani jako go禼ie
class_realuser=U縴tkownicy Uniksa i&nbsp;numery UID <i>nie</i> traktowani jako goscie
class_realgroup=Grupy Uniksa i&nbsp;numery GID <i>nie</i> traktowani jako go禼ie
class_ftpusers=U縴tkownicy Uniksa bez dost阷u (z&nbsp;pliku $1)
class_deny_uid=U縴tkownicy Uniksa i&nbsp;numery UID z&nbsp;zakazem
class_deny_gid=Grupy Uniksa i&nbsp;numery GID z&nbsp;zakazem
class_allow_uid=U縴tkownicy Uniksa i&nbsp;numery UID <i>bez</i> zakazu
class_allow_gid=Grupy Uniksa i&nbsp;numery GIDs <i>bez</i> zakazu
class_err=Nie uda硂 si zachowa pliku klas
class_eclass='$1' nie jest poprawn nazw klasy
class_etypes=Typy dla klasy '$1' nie zosta硑 okre秎one
class_eaddrs=Nie zosta硑 wprowadzone adresy dla klasy '$1'

message_title=Komunikaty
message_header=Komunikaty i&nbsp;zbiory README
message_message=Zbiory komunikat體
message_path=ie縦a
message_when=Kiedy wy秝ietli
message_login=Przy logowaniu
message_dir=Przy wej禼iu do katalogu
message_alldir=Przy wej禼iu do dowolnego katalogu
message_classes=Klasy, dla kt髍ych wy秝ietla
message_readme=Zbiory README
message_update=Kiedy wy秝ietla dat ostatniej modyfikacji
message_greeting=Komunikat zg硂szenia
message_full=Nazwa hosta i&nbsp;wersja
message_brief=Nazwa hosta
message_terse=痑den
message_banner=Komunikat przed autoryzacj
message_none=痑den
message_file=Ze zbioru
message_hostdef=Rzeczywista nazwa hosta
message_hostname=Wy秝ietlana nazwa hosta
message_email=Adres w砤禼iciela
message_err=Nie uda硂 si zachowa plik體 komunikat體
message_epath='$1' nie jest poprawn 禼ie縦 dost阷u
message_cwd='$1' nie jest poprawnym katalogiem
message_eclass=Klasa '$1' nie istnieje
message_ebanner='$1' nie jest poprawnym zbiorem
message_ehostname=Niepoprawna nazwa komputera
message_eemail=Niepoprawny adres pocztowy

acl_title=Limity i kontrola dost阷u
acl_header=Limity i&nbsp;kontrola dost阷u
acl_deny=Zabro dost阷u
acl_daddrs=Zabro dost阷u z&nbsp;adres體
acl_dmsg=Zbi髍 z&nbsp;komunikatem b酬du
acl_file=Limity transferu plik體 i&nbsp;danych
acl_fblimit=Typ limitu
acl_flimit=Zbiory na sesj
acl_blimit=Bajty na sesj
acl_raw=Tylko dane?
acl_inout=Kierunek
acl_in=Z
acl_out=Do
acl_total=Obydwa
acl_count=Maksimum
acl_class=Zastosuj do klasy
acl_all=Wszystkie klasy
acl_limit=Limit jednoczesnych u縴tkownik體
acl_n=Maksymalna liczba u縴tkownik體
acl_times=W&nbsp;czasie
acl_lmsg=Zbi髍 z&nbsp;komunikatem b酬du
acl_unlimited=Nieograniczony
acl_any=Dowolny
acl_alimit=Limit sesji anonimowych
acl_glimit=Limit sesji go禼innych
acl_mins=minut
acl_fails=Maksymalna liczba nieudanych pr骲 logowania
acl_private=Mo縩a zmienia grupy?
acl_noret=Zabro dost阷u do zbior體
acl_nfiles=Zbiory
acl_nrel=Wzgl阣em "chroot"?
acl_nclass=Zabro dla klas
acl_allowret=Zezw髄 na dost阷
acl_afiles=Zbiory
acl_arel=Wzgl阣em "chroot"?
acl_aclass=Zezw髄 dla klas
acl_err=Nie uda硂 si zachowa limit體 i&nbsp;opcji dost阷u
acl_edaddr='$1' nie jest poprawnym adresem
acl_edfile='$1' nie jest poprawnym zbiorem adres體
acl_edmsg='$1' nie jest poprawnym zbiorem komunikatu
acl_eln='$1' nie jest poprawn liczb u縴tkownik體
acl_etimes='$1' nie jest poprawnym zakresem czasu UUCP
acl_elmsg='$1' nie jest poprawnym zbiorem komunikatu b酬du
acl_efbcount='$1' nie jest poprawn liczb zbior體 lub bajt體
acl_elimit='$1' nie jest poprawnym limitem czasu
acl_efails='$1' nie jest poprawn liczb pr骲 logowania

net_title=Opcje sieci
net_header=Opcje sieci
net_tcp=Rozmiar okna TCP
net_tsize=Rozmiar
net_tclass=Dla klasy
net_tall=Wszystkie klasy
net_pasvaddr=Adres do po潮cze PASV
net_pip=Adres IP
net_pcidr=Dla klient體 z&nbsp;sieci
net_pasvport=Porty do po潮cze PASV
net_prange=Zakres port體
net_err=Nie uda硂 si zachowa opcji sieci
net_etsize='$1' nie jest poprawnym rozmiarem okna TCP
net_eip='$1' nie jest poprawnym adresem IP
net_enet='$1' nie jest poprawnym adresem sieci
net_ecidr='$1' nie jest poprawn liczb bit體
net_eport='$1' nie jest poprawnym numerem portu

log_title=Logowanie
log_header=Opcje logowania
log_commands=Loguj wszystkie komendy
log_anonymous=U縴tkownicy anonimowi
log_guest=Go禼ie
log_real=U縴tkownicy Uniksa
log_trans=Loguj transfery
log_dir=W&nbsp;kierunku
log_inbound=Przychodz眂y
log_outbound=Wychodz眂y
log_both=Obydwa
log_security=Loguj naruszenia bezpiecze駍twa
log_to=Loguj transfery do
log_syslog=Log systemowy
log_xferlog=Log transmisji
log_err=Nie uda硂 si zachowa opcji logowania

alias_title=Aliasy i 禼ie縦i
alias_header=Aliasy i&nbsp;禼ie縦i
alias_alias=Aliasy katalog體 dla CD
alias_from=Nazwa
alias_to=Alias do katalogu
alias_cdpath=ie縦a poszukiwania katalog體 CD
alias_err=Nie uda硂 si zachowa opcji alias體
alias_efrom='$1' nie jest poprawn nazw aliasu
alias_eto='$1' nie jest poprawnym katalogiem
alias_ecdpath='$1' nie jest poprawnym katalogiem CD

anon_title=Anonimowe FTP
anon_eftp=Uwaga - Tw骿 system nie zawiera u縴tkownika <tt>ftp</tt>, prawdopodobnie anonimowe FTP nie jest skonfigurowane.
anon_header=Anonimowe FTP
anon_auto=Grupa Uniksa dla u縴tkownik體 anonimowych
anon_group=U縴j grupy
anon_classes=Dla klas
anon_root=Katalog g丑wny anonimowego FTP
anon_dir=Katalog
anon_class=Dla klasy
anon_any=Dowolna
anon_passwd=Sprawdzanie has砤 anonimowego FTP
anon_none=Pozw髄 na cokolwiek
anon_trivial=Musi zawiera @
anon_rfc822=Musi by adresem zgodnym z&nbsp;RFC822
anon_enforce=Nie zezw髄 na login
anon_warn=Tylko ostrze縠nie
anon_email=Zabronione has砤 anonimowego FTP
anon_groot=Katalog g丑wny go禼i
anon_uids=Dla u縴tkownik體 Uniksa
anon_err=Nie uda硂 si zachowa opcji anonimowego FTP
anon_edir='$1' nie jest poprawnym katalogiem
anon_egroup='$1' nie jest poprawn grup

perm_title=Uprawnienia
perm_header=Uprawnienia
perm_perms=Ograniczenia komend
perm_type=Komenda
perm_can=Pozw髄?
perm_users=Typom u縴tkownik體
perm_classes=Klasom
perm_all=Wszystkim
perm_anonymous=Anonimowym
perm_guest=Go禼iom
perm_real=U縴tkownikom Uniksa
perm_note=Domy秎nie wszyscy u縴tkownicy mog wykonywa wszystkie komendy
perm_filter=Zabronione nazwy zbior體 (upload)
perm_types=Typy u縴tkownik體
perm_mesg=Zbi髍 komunikatu b酬du
perm_char=Dozwolone znaki
perm_regexp=Wyra縠nie regularne
perm_err=Nie uda硂 si zachowa uprawnie
perm_echar='$1' nie jest poprawnym wyra縠niem regularnym opisuj眂ym zbi髍 znak體
perm_etypes=Nie wybrano typ體 w縴tkownik體
perm_emesg='$1' nie jest poprawnym zbiorem b酬du

host_title=Kontrola dost阷u komputer體

misc_title=Opcje r罂ne
misc_header=Opcje r罂ne
misc_lslong=Komenda pe硁ego listingu
misc_lsshort=Komenda kr髏kiego listingu
misc_lsplain=Komenda listingu
misc_shutdown=Zbi髍 informacji o&nbsp;zamykaniu systemu
misc_none=Brak
misc_nice=Poziom "nice" procesu serwera
misc_ndelta=Poziom "nice"
misc_class=Dla klas
misc_all=Wszystkie klasy
misc_defumask=Zast阷cza umaska (upload)
misc_umask=Umaska
misc_err=Nie uda硂 si zachowa opcji
misc_elslong=Brak komendy pe硁ego listingu
misc_elsshort=Brak komendy kr髏kiego listingu
misc_elsplain=Brak komendy listingu
misc_eshutdown=Brak zbioru informacji o&nbsp;zamykaniu systemu
misc_enice='$1' nie jest poprawnym poziomem &quot;nice&quot;
misc_eumask='$1' nie jest poprawn umask

log_class=Zmieniono u縴tkownik體 i&nbsp;klasy
log_message=Zmieniono komunikaty
log_acl=Zmieniono limity i&nbsp;kontrol dost阷u
log_net=Zmieniono opcje sieci
log_log=Zmieniono opcje logowania
log_alias=Zmieniono aliasy i&nbsp;禼ie縦i
log_anon=Zmieniono anonimowe FTP
log_perm=Zmieniono uprawnienia
log_misc=Zmieniono opcje r罂ne
log_restart=Zastosowano zmiany
log_start=Uruchomino serwer FTP
   0707010002b52f000081a40000000000000002000000013ac038a70000233a000000200000000000000000000000000000001800000003reloc/wuftpd/lang/ru_RU   perm_perms=毋疣龛麇龛 觐爨礓
message_file=如 羿殡
perm_types=诣稃 镱朦珙忄蝈脲
acl_unlimited=湾钽疣龛麇眍
misc_enice='$1' 礤 怆弪 漕矬耱桁 箴钼礤 镳桀痂蝈蜞
class_eaddrs=湾 忖邃屙 噤疱襦 潆 觌囫襦 '$1'
net_title=彦螯
perm_char=朽琊屮屙睇 耔焘铍
acl_afiles=朽琊屮屙睇 羿殡
net_eip='$1' 礤 怆弪 漕矬耱桁 IP 噤疱耦
log_guest=项朦珙忄蝈脲 Guest
class_allow_uid=Unix 镱朦珙忄蝈腓  UID - <i>礤</i> 玎镳妁屙睇 
anon_classes=碾 觌囫耦
anon_auto=灭箫稃 Unix 潆 囗铐桁睇 镱朦珙忄蝈脲
alias_to=像邂漕龛 潆 赅蜞腩汔
acl_nfiles=青镳妁屙睇 羿殡
message_readme=脏殡 README
log_anonymous=项朦珙忄蝈脲 Anonymous
message_err=矽栳赅 镳 耦躔囗屙梃 耦钺龛  镳桠弪耱忤
acl_blimit=拎轵 磬 皴耨棹
misc_eumask='$1' 礤 怆弪 漕矬耱桁铋 umask
acl_edfile='$1' 礤 怆弪 漕矬耱桁 噤疱耥 羿殡铎
class_deny_gid=Unix 沭箫稃  GID - 玎镳妁屙睇
misc_lsshort=暑爨礓 潆 耦牮帙屙眍泐 腓耱桧汔 羿殡钼
message_hostname=褥 躅耱 潆 耦钺龛
class_types=诣稃 镱朦珙忄蝈脲
perm_filter=青镳屮屙睇 桁屙 羿殡钼 潆 玎沭箸觇
message_alldir=橡 怩钿  膻犷 赅蜞腩
perm_users=碾 蜩镱 镱朦珙忄蝈脲
index_apply=橡桧螯 如戾礤龛
message_update=暑沅 镱赅琨忄螯 溧蝮 镱耠邃礤 祛滂翳赅鲨
acl_limit=毋疣龛麇龛 镟疣脲腚桤爨 镱朦珙忄蝈脲
anon_header=相疣戾蝠 囗铐桁眍泐 FTP
acl_noret=青镳弪栩 漕耱箫  羿殡囔
acl_out=蔓.
acl_daddrs=青镳弪栩  噤疱襦
class_class=孰囫覃 镱朦珙忄蝈脲
net_err=硒栳赅 镳 耦躔囗屙梃 皴蝈恹 镟疣戾蝠钼
alias_header=相疣戾蝠 锺邂漕龛祛  矬蝈
perm_mesg=脏殡 耦钺龛 钺 铠栳赅
acl_count=锑犟桁嚯
misc_title=橡铟桢 相疣戾蝠
anon_title=理铐桁睇 FTP
anon_eftp=马桁囗桢 - 磬 忄 耔耱屐 礤 镱朦珙忄蝈 <tt>ftp</tt>, 蜞觇 钺疣珙 囗铐桁睇 FTP 忸珈铈眍 礤 耜铐翳泱痂痤忄.
log_to=袜镳噔螯 骟痦嚯 
alias_title=像邂漕龛禧  象蜩
anon_email=青镳妁屙睇 囗铐桁睇 FTP 镟痤腓
acl_private=填骓 镥疱觌囹 沭箫稃?
net_eport='$1' 礤 怆弪 漕矬耱桁 眍戾痤 镱痱
perm_guest=Guest
anon_uids=碾 镱朦珙忄蝈脲 Unix
message_full=褥 躅耱  忮瘃
misc_elsshort=悟耋蝰蜮箦 觐爨礓 潆 耦牮帙屙眍泐 腓耱桧汔
acl_flimit=脏殡钼 磬 皴耨棹
log_security=企痦嚯桊钼囹 磬痼龛 徨珙镟耥铖蜩 潆
net_etsize='$1' 礤 怆弪 漕矬耱桁 疣珈屦铎 铌磬 TCP
acl_title=毋疣龛麇龛  暑眚痤朦 念耱箫
acl_fblimit=诣 钽疣龛麇龛
misc_nice=羽钼屙 镳桀痂蝈蜞 皴疴桉眍泐 镳铞羼襦
class_guest=Guest
acl_efails='$1' 礤 怆弪 漕矬耱桁 觐-忸 铠栳铌 疱汨耱疣鲨
misc_eshutdown=悟耋蝰蜮箦 羿殡  筲邃铎脲龛屐 钺 铗觌屙梃
perm_all=埋艴
perm_header=相疣戾蝠 镳噔
net_pcidr=碾 觌桢眚钼 桤 皴蜩
class_realgroup=Unix 沭箫稃  GID <i>礤</i> 蝠嚓蝮屐 赅 guest
acl_all=埋屐 觌囫襦
acl_times=骂 怵屐
log_real=项朦珙忄蝈脲 Unix
class_allow_gid=Unix 沭箫稃  GID - <i>礤</i> 玎镳妁屙睇
class_guestgroup=Unix 沭箫稃  GID 蝠嚓蝮屐 赅 guest 
class_name=褥 觌囫襦
acl_any= 膻犷 怵屐
acl_allowret=朽琊屮栩 漕耱箫  羿殡铎 溧驽 羼腓 铐 玎镳妁屙
net_enet='$1' 礤 怆弪 漕矬耱桁 噤疱耦 皴蜩
anon_passwd=橡钼屦赅 囗铐桁眍泐 FTP 镟痤
net_prange=蔫囡噻铐 镱痱钼
class_header=孰囫覃  镟疣戾蝠 镱朦珙忄蝈脲
message_brief=褥 躅耱
index_eftpaccess=脏殡 觐眙桡箴圉梃 FTP 彦疴屦 $1 礤 耋耱怏弪.骂珈铈眍 铐 礤 桧耱嚯腓痤忄, 桦 锣 <a href='$2'> 觐眙桡箴圉 祛潴 FTP 彦疴屦</a> 礤觐痧尻蝽.
acl_eln='$1' 礤 怆弪 漕矬耱桁 爨犟桁嚯 觐-忸 镱朦珙忄蝈脲
acl_deny=青镳弪栩 漕耱箫 
alias_efrom='$1' 礤 怆弪 漕矬耱桁 桁屙屐 锺邂漕龛爨
message_terse=丸麇泐
perm_err=硒栳赅 镳 耦躔囗屙梃 镳噔
perm_etypes=湾 恹狃囗 蜩稃 镱朦珙忄蝈脲
alias_alias=像邂漕龛禧 赅蜞腩泐 潆 觐爨礓 CD
class_real=Unix
acl_mins=扈眢
message_epath='$1' 礤 怆弪 漕矬耱桁 矬蝈
acl_err=硒栳赅 镳 耦躔囗屙梃 钽疣龛麇龛  觐眚痤 漕耱箫
message_greeting=羽钼屙 镳桠弪耱忤
misc_class=碾 觌囫耦
net_ecidr='$1' 礤 怆弪 漕矬耱桁 觐-忸 皴蝈恹 徼蝾
acl_arel=悟眍耔蝈朦眍  chroot?
anon_class=碾 觌囫襦
message_hostdef=谚耱屐眍 桁 躅耱
anon_rfc822=念腈屙 猁螯 RFC822 镱黩钼 噤疱耦
message_ehostname=悟耋耱怏弪 桦 礤忮痦铄 桁 躅耱
net_header=彦蝈恹 镟疣戾蝠
alias_err=硒栳赅 镳 耦躔囗屙梃 锺邂漕龛祛  矬蝈
anon_none=骂珈铈屙 镳铊玮铍
class_etypes=湾 恹狃囗 蜩稃 潆 觌囫襦 '$1'
alias_eto='$1' 礤 怆弪 漕矬耱桁 赅蜞腩泐 锺邂漕龛爨
index_eversion=项躅驽, 黩 锣 FTP 皴疴屦 $1 礤 怆弪 WU-FTPd. 骂珈铈眍 蔓 桉镱朦珞弪 犷脲 耱囵 FTPd 镱耱噔屐   锣 铒屦圉桀眄铋 耔耱屐铋, 桦 锣 <a href='$2'> 觐眙桡箴圉 祛潴 FTP 彦疴屦</a> 礤觐痧尻蝽. 
message_message=脏殡 耦钺龛
message_classes=孰囫覃 潆 觐蝾瘥 镱赅琨忄螯
message_ebanner='$1' 礤 怆弪 漕矬耱桁 羿殡铎 疱汨耱疣鲨铐眍泐 耦钺龛
acl_nrel=悟眍耔蝈朦眍  chroot?
class_eclass='$1' 礤 怆弪 漕矬耱桁 桁屙屐 觌囫襦
message_eemail=悟耋耱怏弪 桦 礤忮疱 镱黩钼 噤疱
log_commands=企痦嚯桊钼囹 怦 觐爨礓 潆
acl_class=橡桁屙栩  觌囫耋
log_trans=企痦嚯桊钼囹 镥疱覃腙 潆
acl_alimit=毋疣龛麇龛 囗铐桁睇 皴耨栝
misc_defumask=锑耜 umask 镱 箪铍鬣龛 潆 玎沭箧噱禧 羿殡钼
anon_edir='$1' 礤 怆弪 漕矬耱桁 赅蜞腩泐
acl_dmsg=脏殡 耦钺龛 钺 铠栳赅
net_tall=埋艴 觌囫耦
perm_note=项 箢膑囗棹, 怦 觐爨礓 疣琊屮屙 潆 怦艴 镱朦珙忄蝈脲
anon_dir=枢蜞腩
message_cwd='$1' 礤 怆弪 漕矬耱桁 赅蜞腩泐
anon_root=暑痦邂 赅蜞腩汨 囗铐桁眍泐 FTP
index_eftpd=FTP 皴疴屦 $1 礤 磬殇屙 磬 忄 耔耱屐. 骂珈铈眍 铐 礤 桧耱嚯腓痤忄, 桦 锣 <a href='$2'> 觐眙桡箴圉 祛潴 FTP 彦疴屦</a> 礤觐痧尻蝽.
misc_header=橡铟桢 镟疣戾蝠
acl_edmsg='$1' 礤 怆弪 漕矬耱桁 羿殡铎 耦钺龛 钺 铠栳赅
log_title=企痦嚯桤圉
message_header=杨钺龛, 镳桠弪耱忤  羿殡 README
index_return=镟疣戾蝠 FTP 皴疴屦
class_realuser=Unix 镱朦珙忄蝈腓  UID <i>礤</i> 蝠嚓蝮屐 赅 guest 
class_guestuser=Unix 镱朦珙忄蝈腓  UID 蝠嚓蝮屐 赅 guest
class_ftpusers=Unix 镱朦珙忄蝈腓 - 玎镳妁屙睇 (桤 $1)
net_pasvport=项痱 潆 PASV 耦邃桧屙栝
alias_from=褥 锺邂漕龛爨
misc_ndelta=羽钼屙 镳桀痂蝈蜞
acl_in=迈钿.
log_outbound=锐躅泐
class_addrs=杨铗忮蝰蜮桢 噤疱襦
acl_n=锑犟桁嚯 镱朦珙忄蝈脲
log_dir=袜镳噔脲龛
log_syslog=谚耱屐睇 骟痦嚯
acl_fails=锑犟桁箪 铠栳铌 镳 疱汨耩圉梃
acl_efbcount='$1' 礤 怆弪 漕矬耱桁 觐-忸 羿殡钼 桦 徉轵
net_tclass=碾 觌囫襦
acl_elimit='$1' 礤 怆弪 漕矬耱桁 钽疣龛麇龛屐 怵屐屙
misc_lslong=暑爨礓 潆 镱漯钺眍泐 腓耱桧汔 羿殡钼
message_path=象螯
host_title=暑眚铕铍 玎 念耱箫铎 疹耱钼
perm_can=朽琊屮栩?
anon_trivial=念腈屙 耦溴疰囹 @
message_dir=橡 怩钿  赅蜞腩
perm_regexp=绣. 恹. 玎镳妁屙睇 桁屙 羿殡钼
acl_lmsg=脏殡 耦钺龛 钺 铠栳赅
anon_warn=翌朦觐 镳邃箫疱滂螯
log_inbound=迈钿泐
acl_raw=翌朦觐 溧眄?
message_eclass=孰囫 '$1' 礤 耋耱怏弪
anon_egroup='$1' 礤 怆弪 漕矬耱桁铋 沭箫镱
log_both=吾铊
perm_title=橡噔
misc_umask=Umask
acl_glimit=毋疣龛麇龛 Guest 皴耨栝
misc_all=埋艴 觌囫耦
acl_elmsg='$1' 礤 怆弪 漕矬耱桁 羿殡铎 耦钺龛 钺 铠栳赅 
perm_anonymous=Anonymous
misc_lsplain=暑爨礓 潆 腓礤轫钽 腓耱桧汔 羿殡钼
misc_elslong=悟耋蝰蜮箦 觐爨礓 潆 镱漯钺眍泐 腓耱桧汔
perm_classes=碾 觌囫耦
acl_total=吾
class_deny_uid=Unix 镱朦珙忄蝈腓  UID - 玎镳妁屙睇
anon_any=塔犷泐
acl_edaddr='$1' 礤 怆弪 漕矬耱桁 噤疱耦
alias_cdpath=象螯 镱桉赅 赅蜞腩泐 潆 觐爨礓 CD
index_start=羊囵蝾忄螯 彦疴屦
message_none=湾
class_title=项朦珙忄蝈腓  孰囫覃
perm_type=暑爨礓
index_title=FTP 彦疴屦
perm_real=Unix
misc_shutdown=脏殡  筲邃铎脲龛屐 钺 铗觌屙梃
message_when=暑沅 镱赅琨忄螯
message_login=橡 疱汨耱疣鲨
index_startmsg=袜骒栩 磬  觏铒牦 潆 耱囵蜞 FTP 皴疴屦 桉镱朦珞 蝈牦 觐眙桡箴圉棹. 蔓 蜞赕 祛驽蝈 磬耱痤栩 皴疴屦 磬 噔蝾爨蜩麇耜栝 耱囵 镱 玎镳铖 桉镱朦珞 祛潴朦 <a href='$1'>彦疴桉 Internet</a>.
perm_echar='$1' 礤 怆弪 漕矬耱桁 耔焘铍囔 疱泱痦钽 恹疣驽龛
misc_err=硒栳赅 镳 耦躔囗屙梃 镳铟桴 镟疣戾蝠钼
alias_ecdpath='$1' 礤 怆弪 漕矬耱桁 镱桉觐恹 赅蜞腩泐 觐爨礓 CD
anon_err=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼 囗铐桁眍泐 FTP
anon_groot=暑痦邂 赅蜞腩汨 潆 Guest
acl_etimes='$1' 礤 怆弪 漕矬耱桁 怵屐屙睇 滂囡噻铐铎  耱桦 UUCP
class_anonymous=Anonymous
log_xferlog=企痦嚯睇 XFER 羿殡
class_err=硒栳赅 镳 耦躔囗屙梃 觌囫耦 镱朦珙忄蝈脲
misc_elsplain=悟耋蝰蜮箦 觐爨礓 潆 腓礤轫钽 腓耱桧汔
anon_group=襄疱觌栩 磬 沭箫矬
misc_none=湾
perm_emesg='$1' 礤 怆弪 漕矬耱桁 羿殡铎 耦钺龛 钺 铠栳赅
message_title=杨钺龛  橡桠弪耱忤
message_banner=念疱汨耱疣鲨铐眍 耦钺龛
index_applymsg=袜骒栩 磬  觏铒牦 潆 嚓蜩忤玎鲨 蝈牦 觐眙桡箴圉梃. 橡 铎 狍潴 疱耱囵蝾忄睇 怦 疣犷蜞桢 镳铞羼覃 FTP 皴疴屦  耦铗忮蝰蜮屙眍 狍潴 铗觌屙 怦 镱漶铄滂礤眄 镱朦珙忄蝈腓.
acl_aclass=朽琊屮屙桢 潆 觌囫耦
net_tsize=朽珈屦
net_pip=IP 噤疱
acl_file=毋疣龛麇龛 潆 羿殡钼  镥疱溧麒 溧眄
acl_nclass=青镳弪 潆 觌囫耦
acl_header=毋疣龛麇龛  镟疣戾蝠 觐眚痤 漕耱箫
log_header=相疣戾蝠 骟痦嚯桤圉梃
net_pasvaddr=冷疱襦 潆 PASV 耦邃桧屙栝
net_tcp=朽珈屦 铌磬 TCP
message_email=项黩钼 噤疱 怆噤咫
anon_enforce=青镳弪栩 疱汨耱疣鲨
acl_inout=袜镳噔脲龛
log_err=硒栳赅 镳 耦躔囗屙梃 镟疣戾蝠钼 骟痦嚯桊钼囗
  0707010002b530000081a40000000000000002000000013ac038a700002344000000200000000000000000000000000000001800000003reloc/wuftpd/lang/ru_SU   index_title=FTP 笈易乓
index_eftpd=FTP 优易乓 $1 闻 瘟誓盼 瘟 琢叟 由釉磐. 飨谕现蜗 衔 闻 晌釉撂躺蚁琢, 商 髁哿 <a href='$2'> 讼纹汕找撩裳 拖恼萄 FTP 笈易乓</a> 闻讼乙潘晕.
index_eftpaccess=媪侍 讼纹汕找撩缮 FTP 笈易乓 $1 闻 诱菖釉渍旁.飨谕现蜗 衔 闻 晌釉撂躺蚁琢, 商 髁哿 <a href='$2'> 讼纹汕找撩裳 拖恼萄 FTP 笈易乓</a> 闻讼乙潘晕.
index_eversion=鹣认峙, 拊 髁 FTP 优易乓 $1 闻 炎萄旁友 WU-FTPd. 飨谕现蜗 髻 捎邢特谡旁 孪膛 釉烈偈 FTPd 邢釉磷萄磐偈   髁叟 闲乓撩上挝鲜 由釉磐鲜, 商 髁哿 <a href='$2'> 讼纹汕找撩裳 拖恼萄 FTP 笈易乓</a> 闻讼乙潘晕. 
index_apply=鹨晌言 橼团闻紊
index_applymsg=盍滞稍 瘟 茉 宋闲苏 奶 了陨咨诹蒙 耘苏菖 讼纹汕找撩缮. 鹨 茉贤 抡恼 遗釉烈韵琢钨 子 伊孪粤垒膳 幸厦庞淤 FTP 优易乓  酉显着杂宰盼蜗 抡恼 显颂擂盼 子 邢挠吓纳闻挝倥 邢特谙琢耘躺.
index_start=笤烈韵琢载 笈易乓
index_startmsg=盍滞稍 瘟 茉 宋闲苏 奶 釉烈粤 FTP 优易乓 捎邢特谡 耘苏菡 讼纹汕找撩衫. 髻 粤酥 拖峙耘 瘟釉蚁稍 优易乓 瘟 磷韵土陨夼铀墒 釉烈 邢 诹幸嫌 捎邢特谡 拖恼特 <a href='$1'>笈易捎 Internet</a>.
index_return=辛伊团砸 FTP 优易乓

class_title=鹣特谙琢耘躺  胩劣淤
class_header=胩劣淤  辛伊团砸 邢特谙琢耘膛
class_class=胩劣淤 邢特谙琢耘膛
class_name=橥 颂劣恿
class_types=羯匈 邢特谙琢耘膛
class_addrs=笙显着杂宰膳 聊遗恿
class_real=Unix
class_guest=Guest
class_anonymous=Anonymous
class_guestuser=Unix 邢特谙琢耘躺  UID 砸了哉磐倥 肆 guest
class_guestgroup=Unix 且招匈  GID 砸了哉磐倥 肆 guest 
class_realuser=Unix 邢特谙琢耘躺  UID <i>闻</i> 砸了哉磐倥 肆 guest 
class_realgroup=Unix 且招匈  GID <i>闻</i> 砸了哉磐倥 肆 guest
class_ftpusers=Unix 邢特谙琢耘躺 - 诹幸泡盼钨 (哨 $1)
class_deny_uid=Unix 邢特谙琢耘躺  UID - 诹幸泡盼钨
class_deny_gid=Unix 且招匈  GID - 诹幸泡盼钨
class_allow_uid=Unix 邢特谙琢耘躺  UID - <i>闻</i> 诹幸泡盼钨 
class_allow_gid=Unix 且招匈  GID - <i>闻</i> 诹幸泡盼钨
class_err=镗陕肆 幸 酉纫廖盼缮 颂劣酉 邢特谙琢耘膛
class_eclass='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 颂劣恿
class_etypes=钆 踪乱廖 陨匈 奶 颂劣恿 '$1'
class_eaddrs=钆 鬃拍盼 聊遗恿 奶 颂劣恿 '$1'

message_title=笙下菖紊  鹨勺旁釉咨
message_header=笙下菖紊, 幸勺旁釉咨  屏侍 README
message_message=媪侍 酉下菖紊
message_path=鹫载
message_when=胂悄 邢肆谫琢载
message_login=鹨 遗巧釉伊蒙
message_dir=鹨 兹夏  肆粤滔
message_alldir=鹨 兹夏  汤孪 肆粤滔
message_classes=胩劣淤 奶 讼韵屹 邢肆谫琢载
message_readme=媪侍 README
message_update=胂悄 邢肆谫琢载 牧哉 邢犹拍闻 拖纳粕肆蒙
message_greeting=跻献盼 幸勺旁釉咨
message_full=橥 认釉  着矣裳
message_brief=橥 认釉
message_terse=钌夼窍
message_banner=湎遗巧釉伊蒙衔蜗 酉下菖紊
message_none=钆
message_file=橼 屏侍
message_hostdef=笊釉磐蜗 赏 认釉
message_hostname=橥 认釉 奶 酉下菖紊
message_email=鹣拊献偈 聊遗 滋聊盘孛
message_err=镙陕肆 幸 酉纫廖盼缮 酉下菖紊  幸勺旁釉咨
message_epath='$1' 闻 炎萄旁友 南姓釉赏偻 姓耘
message_cwd='$1' 闻 炎萄旁友 南姓釉赏偻 肆粤滔窍
message_eclass=胩劣 '$1' 闻 诱菖釉渍旁
message_ebanner='$1' 闻 炎萄旁友 南姓釉赏偻 屏侍贤 遗巧釉伊蒙衔蜗窍 酉下菖紊
message_ehostname=镌诱釉渍旁 商 闻着椅吓 赏 认釉
message_eemail=镌诱釉渍旁 商 闻着遗 邢拊献偈 聊遗

acl_title=锴伊紊夼紊  胂卧蚁特 湎釉招
acl_header=锴伊紊夼紊  辛伊团砸 讼卧蚁萄 南釉招
acl_deny=幸旁稍 南釉招 
acl_daddrs=幸旁稍  聊遗恿
acl_dmsg=媪侍 酉下菖紊 下 羡陕肆
acl_file=锴伊紊夼紊 奶 屏侍献  信遗牧奚 牧挝偃
acl_fblimit=羯 锨伊紊夼紊
acl_flimit=媪侍献 瘟 优佑衫
acl_blimit=饬试 瘟 优佑衫
acl_raw=粝特讼 牧挝倥?
acl_inout=盍幸磷膛紊
acl_in=魅夏.
acl_out=髻.
acl_total=锫
acl_count=砹擞赏撂匚
acl_class=鹨赏盼稍  颂劣诱
acl_all=饔磐 颂劣恿
acl_limit=锴伊紊夼紊 辛伊膛烫哨土 邢特谙琢耘膛
acl_n=砹擞赏撂匚 邢特谙琢耘膛
acl_times=飨 滓磐
acl_lmsg=媪侍 酉下菖紊 下 羡陕肆
acl_unlimited=钆锨伊紊夼蜗
acl_any= 汤孪 滓磐
acl_alimit=锴伊紊夼紊 廖衔赏钨 优佑墒
acl_glimit=锴伊紊夼紊 Guest 优佑墒
acl_mins=蜕握
acl_fails=砹擞赏胀 羡陕纤 幸 遗巧右撩缮
acl_private=硐治 信遗颂擂猎 且招匈?
acl_noret=幸旁稍 南釉招  屏侍镣
acl_nfiles=幸泡盼钨 屏侍
acl_nrel=镌蜗由耘特蜗  chroot?
acl_nclass=幸旁 奶 颂劣酉
acl_allowret=蛄谝袍稍 南釉招  屏侍贤 牧峙 庞躺 衔 诹幸泡盼
acl_afiles=蛄谝袍盼钨 屏侍
acl_arel=镌蜗由耘特蜗  chroot?
acl_aclass=蛄谝袍盼膳 奶 颂劣酉
acl_err=镗陕肆 幸 酉纫廖盼缮 锨伊紊夼紊  讼卧蚁萄 南釉招
acl_edaddr='$1' 闻 炎萄旁友 南姓釉赏偻 聊遗酉
acl_edfile='$1' 闻 炎萄旁友 南姓釉赏偻 聊遗游偻 屏侍贤
acl_edmsg='$1' 闻 炎萄旁友 南姓釉赏偻 屏侍贤 酉下菖紊 下 羡陕肆
acl_eln='$1' 闻 炎萄旁友 南姓釉赏偻 土擞赏撂匚偻 讼-紫 邢特谙琢耘膛
acl_etimes='$1' 闻 炎萄旁友 南姓釉赏偻 滓磐盼钨 纳列邻衔贤  釉商 UUCP
acl_elmsg='$1' 闻 炎萄旁友 南姓釉赏偻 屏侍贤 酉下菖紊 下 羡陕肆 
acl_efbcount='$1' 闻 炎萄旁友 南姓釉赏偻 讼-紫 屏侍献 商 铝试
acl_elimit='$1' 闻 炎萄旁友 南姓釉赏偻 锨伊紊夼紊磐 滓磐盼
acl_efails='$1' 闻 炎萄旁友 南姓釉赏偻 讼-紫 羡陕纤 遗巧釉伊蒙

net_title=笈载
net_header=笈耘踪 辛伊团砸
net_tcp=蛄谕乓 纤瘟 TCP
net_tsize=蛄谕乓
net_tclass=涮 颂劣恿
net_tall=饔湃 颂劣酉
net_pasvaddr=崮遗恿 奶 PASV 酉拍晌盼墒
net_pip=IP 聊遗
net_pcidr=涮 颂膳卧献 哨 优陨
net_pasvport=鹣以 奶 PASV 酉拍晌盼墒
net_prange=渖列邻衔 邢以献
net_err=镗陕肆 幸 酉纫廖盼缮 优耘踪 辛伊团砸献
net_etsize='$1' 闻 炎萄旁友 南姓釉赏偻 伊谕乓贤 纤瘟 TCP
net_eip='$1' 闻 炎萄旁友 南姓釉赏偻 IP 聊遗酉
net_enet='$1' 闻 炎萄旁友 南姓釉赏偻 聊遗酉 优陨
net_ecidr='$1' 闻 炎萄旁友 南姓釉赏偻 讼-紫 优耘踪 律韵
net_eport='$1' 闻 炎萄旁友 南姓釉赏偻 蜗团蚁 邢以

log_title=稣椅撂哨撩裳
log_header=鹆伊团砸 终椅撂哨撩缮
log_commands=稣椅撂梢献猎 子 讼土文 奶
log_anonymous=鹣特谙琢耘膛 Anonymous
log_guest=鹣特谙琢耘膛 Guest
log_real=鹣特谙琢耘膛 Unix
log_trans=稣椅撂梢献猎 信遗淤趟 奶
log_dir=盍幸磷膛紊
log_inbound=魅夏演徘
log_outbound=橛认难菖窍
log_both=锫仙
log_security=稣椅撂梢献猎 瘟艺叟紊 屡谙辛游嫌陨 奶
log_to=盍幸磷萄载 终椅撂 
log_syslog=笊釉磐钨 终椅撂
log_xferlog=稣椅撂钨 XFER 屏侍
log_err=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献 终椅撂梢献廖裳

alias_title=鹩抛南紊唾  鹫陨
alias_header=鹆伊团砸 杏抛南紊拖  姓耘
alias_alias=鹩抛南紊唾 肆粤滔窍 奶 讼土文 CD
alias_from=橥 杏抛南紊土
alias_to=鹩抛南紊 奶 肆粤滔橇
alias_cdpath=鹫载 邢捎肆 肆粤滔窍 奶 讼土文 CD
alias_err=镗陕肆 幸 酉纫廖盼缮 杏抛南紊拖  姓耘
alias_efrom='$1' 闻 炎萄旁友 南姓釉赏偻 赏盼磐 杏抛南紊土
alias_eto='$1' 闻 炎萄旁友 南姓釉赏偻 肆粤滔窍 杏抛南紊土
alias_ecdpath='$1' 闻 炎萄旁友 南姓釉赏偻 邢捎讼踪 肆粤滔窍 讼土文 CD

anon_title=嵛衔赏钨 FTP
anon_eftp=魑赏廖膳 - 瘟 琢叟 由釉磐 闻 邢特谙琢耘萄 <tt>ftp</tt>, 粤松 下伊谙 廖衔赏钨 FTP 紫谕现蜗 闻 铀衔粕钦疑蚁琢.
anon_header=鹆伊团砸 廖衔赏蜗窍 FTP
anon_auto=缫招匈 Unix 奶 廖衔赏钨 邢特谙琢耘膛
anon_group=鹋遗颂擂稍赜 瘟 且招姓
anon_classes=涮 颂劣酉
anon_root=胂椅抛倥 肆粤滔巧 廖衔赏蜗窍 FTP
anon_dir=肓粤滔
anon_class=涮 颂劣恿
anon_any=炖孪窍
anon_passwd=鹨献乓肆 廖衔赏蜗窍 FTP 辛蚁萄
anon_none=飨谕现盼 幸仙谧咸匚偈
anon_trivial=湎讨盼 酉呐抑猎 @
anon_rfc822=湎讨盼 沦载 RFC822 邢拊献偻 聊遗酉
anon_enforce=幸旁稍 遗巧釉伊蒙
anon_warn=粝特讼 幸拍招遗纳载
anon_email=幸泡盼钨 廖衔赏钨 FTP 辛蚁躺
anon_groot=胂椅抛倥 肆粤滔巧 奶 Guest
anon_uids=涮 邢特谙琢耘膛 Unix
anon_err=镗陕肆 幸 酉纫廖盼缮 辛伊团砸献 廖衔赏蜗窍 FTP
anon_edir='$1' 闻 炎萄旁友 南姓釉赏偻 肆粤滔窍
anon_egroup='$1' 闻 炎萄旁友 南姓釉赏鲜 且招邢

perm_title=鹨磷
perm_header=鹆伊团砸 幸磷
perm_perms=锴伊紊夼紊 讼土文
perm_type=胂土文
perm_can=蛄谝袍稍?
perm_users=涮 陨邢 邢特谙琢耘膛
perm_classes=涮 颂劣酉
perm_all=饔湃
perm_anonymous=Anonymous
perm_guest=Guest
perm_real=Unix
perm_note=鹣 障剔廖衫, 子 讼土文 伊谝袍盼 奶 子湃 邢特谙琢耘膛
perm_filter=幸袍盼钨 赏盼 屏侍献 奶 诹且遮松
perm_types=羯匈 邢特谙琢耘膛
perm_mesg=媪侍 酉下菖紊 下 羡陕肆
perm_char=蛄谝袍盼钨 由妥咸
perm_regexp=蚺. 踪. 诹幸泡盼钨 赏盼 屏侍献
perm_err=镗陕肆 幸 酉纫廖盼缮 幸磷
perm_echar='$1' 闻 炎萄旁友 南姓釉赏偻 由妥咸镣 遗钦萄椅锨 踪伊峙紊
perm_etypes=钆 踪乱廖 陨匈 邢特谙琢耘膛
perm_emesg='$1' 闻 炎萄旁友 南姓釉赏偻 屏侍贤 酉下菖紊 下 羡陕肆

host_title=胂卧弦咸 诹 湎釉招贤 柘釉献

misc_title=鹨限膳 鹆伊团砸
misc_header=鹨限膳 辛伊团砸
misc_lslong=胂土文 奶 邢囊下蜗窍 躺釉晌橇 屏侍献
misc_lsshort=胂土文 奶 酉艘凛盼蜗窍 躺釉晌橇 屏侍献
misc_lsplain=胂土文 奶 躺闻饰锨 躺釉晌橇 屏侍献
misc_shutdown=媪侍  兆拍贤膛紊磐 下 显颂擂盼缮
misc_none=钆
misc_nice=跻献盼 幸上疑耘粤 优易捎蜗窍 幸厦庞恿
misc_ndelta=跻献盼 幸上疑耘粤
misc_class=涮 颂劣酉
misc_all=饔湃 颂劣酉
misc_defumask=砹铀 umask 邢 胀咸蘖紊 奶 诹且罩僚唾 屏侍献
misc_umask=Umask
misc_err=镗陕肆 幸 酉纫廖盼缮 幸限扇 辛伊团砸献
misc_elslong=镌诱杂宰张 讼土文 奶 邢囊下蜗窍 躺釉晌橇
misc_elsshort=镌诱杂宰张 讼土文 奶 酉艘凛盼蜗窍 躺釉晌橇
misc_elsplain=镌诱杂宰张 讼土文 奶 躺闻饰锨 躺釉晌橇
misc_eshutdown=镌诱杂宰张 屏侍  兆拍贤膛紊磐 下 显颂擂盼缮
misc_enice='$1' 闻 炎萄旁友 南姓釉赏偻 找献闻 幸上疑耘粤
misc_eumask='$1' 闻 炎萄旁友 南姓釉赏鲜 umask
0707010002b531000081a40000000000000002000000013ac038a700002478000000200000000000000000000000000000001500000003reloc/wuftpd/lang/sv  index_title=FTP-server
index_eftpd=FTP-server $1 finns inte p ditt system. Den kanske inte 鋜 installerad, eller ocks 鋜 dina <a href='$2'>inst鋖lningar f鰎 FTP-servermodulen</a> felaktiga.
index_eftpaccess=Inst鋖lningsfilen $1 f鰎 FTP-servern finns inte.  Den kanske inte 鋜 installerad, eller ocks 鋜 dina <a href='$2'>inst鋖lningar f鰎 FTP-servermodulen</a> felaktiga.
index_eversion=FTP-server $1 verkar inte vara WU-FTPd. Du kanske k鰎 en 鋖dre FTPd som h鰎 till ditt operativsystem, eller ocks 鋜 dina <a href='$2'>inst鋖lningar f鰎 FTP-servermodulen</a> felaktiga.
index_apply=Genomf鰎 鋘dringar
index_applymsg=Tryck p denna knapp f鰎 att inst鋖lningarna ska tas i drift. Alla FTP-serverprocesser kommer att stannas och startas om, vilket kopplar ner alla anv鋘dare.
index_start=Starta server
index_startmsg=Tryck p denna knapp f鰎 att starta FTP-servern med dessa inst鋖lningar. Du kan ocks st鋖la in servern att starta automatiskt n鋜 det beh鰒s genom att anv鋘da modulen <a href='$1'>Internettj鋘ster</a>.
index_startmsg2=Tryck p denna knapp f鰎 att starta FTP-servern med dessa inst鋖lningar. Du kan ocks st鋖la in servern att starta automatiskt n鋜 det beh鰒s genom att anv鋘da inetd eller motsvarande program.
index_return=inst鋖lningar f鰎 FTP-server

class_title=Anv鋘dare och klasser
class_header=Anv鋘darklasser och -inst鋖lningar
class_class=Anv鋘darklasser
class_name=Klassnamn
class_types=Anv鋘dartyper
class_addrs=St鋗mer med adress(er)
class_real=Unix
class_guest=G鋝t
class_anonymous=Anonym
class_guestuser=Unix-anv鋘dare och UID som ska behandlas som g鋝ter
class_guestgroup=Unix-grupper och GID som ska behandlas som g鋝ter
class_realuser=Unix-anv鋘dare och UID som <i>inte</i> ska behandlas som g鋝ter
class_realgroup=Unix-grupper och GID som <i>inte</i> ska behandlas som g鋝ter
class_ftpusers=Unix-anv鋘dare som ska nekas 錿komst (fr錸 $1)
class_deny_uid=Unix-anv鋘dare och UID som ska nekas 錿komst
class_deny_gid=Unix-grupper och GID som ska nekas 錿komst
class_allow_uid=Unix-anv鋘dare och UID som <i>inte</i> ska nekas 錿komst
class_allow_gid=Unix-grupper och GID som <i>inte</i> ska nekas 錿komst
class_err=Det gick inte att spara anv鋘darklasser
class_eclass='$1' 鋜 inte ett giltigt klassnamn
class_etypes=Du har inte angivit n錱on typ f鰎 klass '$1'
class_eaddrs=Du har inte angivit n錱on adress f鰎 klass '$1'

message_title=Meddelanden
message_header=Meddelanden och README-filer
message_message=Meddelandefiler
message_path=S鰇v鋑
message_when=Visas n鋜?
message_login=Vid inloggning
message_dir=N鋜 man g錼 till katalog
message_alldir=N鋜 man g錼 till en katalog
message_classes=Klasser som ska se meddelandet
message_readme=README-filer
message_update=N鋜 ska 鋘dringsdatum visas?
message_greeting=Greeting-niv
message_full=Datornamn och version
message_brief=Datornamn
message_terse=Ingen
message_banner=Meddelande f鰎e inloggning
message_none=Inget
message_file=Fr錸 fil
message_hostdef=Systemdatornamn
message_hostname=Dator som meddelanden finns p
message_email=膅arens e-postadress
message_err=Det gick inte att spara meddelanden
message_epath='$1' 鋜 inte en giltig s鰇v鋑
message_cwd='$1' 鋜 inte en giltig katalog
message_eclass=Klass '$1' finns inte
message_ebanner='$1' 鋜 inte en giltig fil med inloggningsmeddelande
message_ehostname=Datornamn saknas eller 鋜 felaktigt angivet
message_eemail=E-postadress saknas eller 鋜 felaktigt angiven

acl_title=Begr鋘sningar och 錿komstkontroll
acl_header=Inst鋖lningar av begr鋘sningar och 錿komstkontroll
acl_deny=Neka 錿komst fr錸
acl_daddrs=Neka fr錸 adress
acl_dmsg=Felmeddelandefil
acl_file=Begr鋘sningar f鰎 fil- och data鰒erf鰎ing
acl_fblimit=Begr鋘sningstyp
acl_flimit=Filer per session
acl_blimit=Bytes per session
acl_raw=Endast data?
acl_inout=Riktning
acl_in=In
acl_out=Ut
acl_total=B錮a
acl_count=Maximum
acl_class=G鋖ler f鰎 klass
acl_all=Alla
acl_limit=Begr鋘sning av antal samtidiga anv鋘dare
acl_n=Maximalt antal samtidiga anv鋘dare
acl_times=Vid tidpunkter
acl_lmsg=Felmeddelandefil
acl_unlimited=Obegr鋘sat
acl_any=N鋜 som helst
acl_alimit=Begr鋘sning f鰎 anonym session
acl_glimit=Begr鋘sning f鰎 g鋝tsession
acl_mins=minuter
acl_fails=Maximalt antal misslyckade inloggningsf鰎s鰇
acl_private=Kunna byta grupp?
acl_noret=F鰎bjud 錿komst till filer
acl_nfiles=Filer som sp鋜ras
acl_nrel=Relativt chroot?
acl_nclass=F鰎bjud f鰎 klasserna
acl_allowret=Till錿 錿komst till filer 鋠en om nekad
acl_afiles=Till錿na filer
acl_arel=Relativt chroot?
acl_aclass=Till錿 f鰎 klasserna
acl_err=Det gick inte att spara begr鋘sningar och 錿komstkontroll
acl_edaddr='$1' 鋜 inte en giltig adress
acl_edfile='$1' 鋜 inte en giltig adressfil
acl_edmsg='$1' 鋜 inte en giltig felmeddelandefil
acl_eln='$1' 鋜 inte ett giltigt antal anv鋘dare
acl_etimes='$1' 鋜 inte ett giltigt UUCP-tidsintervall
acl_elmsg='$1' 鋜 inte en giltig felmeddelandefil
acl_efbcount='$1' 鋜 inte ett giltigt antal filer eller bytes
acl_elimit='$1' 鋜 inte en giltig tidsbegr鋘sning
acl_efails='$1' 鋜 inte ett giltigt antal inloggningsf鰎s鰇

net_title=N鋞verk
net_header=Inst鋖lningar f鰎 n鋞verk
net_tcp=Storlek p TCP-f鰊ster
net_tsize=Storlek
net_tclass=F鰎 klass
net_tall=Alla klasser
net_pasvaddr=Adresser f鰎 PASV-uppkopplingar
net_pip=IP-adress
net_pcidr=F鰎 klienter fr錸 n鋞verk
net_pasvport=Portar f鰎 PASV-uppkopplingar
net_prange=Portintervall
net_err=Det gick inte att spara n鋞verksinst鋖lningarna
net_etsize='$1' 鋜 inte en giltig TCP-f鰊sterstorlek
net_eip='$1' 鋜 inte en giltig IP-adress
net_enet='$1' 鋜 inte en giltig n鋞verksadress
net_ecidr='$1' 鋜 inte ett giltigt antal n鋞verksbitar
net_eport='$1' 鋜 inte ett giltigt portnummer

log_title=Loggning
log_header=Inst鋖lningar f鰎 loggning
log_commands=Logga alla kommandon f鰎
log_anonymous=Anonyma anv鋘dare
log_guest=G鋝tanv鋘dare
log_real=Unix-anv鋘dare
log_trans=Logga 鰒erf鰎ingar f鰎
log_dir=I riktning
log_inbound=In錿
log_outbound=Ut錿
log_both=B錮a
log_security=Logga s鋕erhets鰒ertr鋎elser f鰎
log_to=Logga 鰒erf鰎ingar till
log_syslog=Systemlogg
log_xferlog=XFER-loggfil
log_err=Det gick inte att spara loggningsinst鋖lningarna

alias_title=Alias och s鰇v鋑ar
alias_header=Inst鋖lningar f鰎 Alias och s鰇v鋑ar
alias_alias=Alias f鰎 cd-katalog
alias_from=Namn p alias
alias_to=Alias f鰎 katalog
alias_cdpath=S鰇v鋑 f鰎 cd-katalog
alias_err=Det gick inte att spara alias och s鰇v鋑ar
alias_efrom='$1' 鋜 inte ett giltigt aliasnamn
alias_eto='$1' 鋜 inte en giltig aliaskatalog
alias_ecdpath='$1' 鋜 inte en giltig cd-katalog

anon_title=Anonym FTP
anon_eftp=Varning! Systemet har ingen <tt>ftp</tt>-anv鋘dare, vilket betyder att anonym FTP troligen inte har st鋖lts in.
anon_header=Inst鋖lningar f鰎 anonym FTP
anon_auto=Unix-grupper f鰎 anonyma anv鋘dare
anon_group=Byt till grupp
anon_classes=F鰎 klasserna
anon_root=Rotkataloger f鰎 anonym FTP
anon_dir=Katalog
anon_class=F鰎 klass
anon_any=Alla
anon_passwd=L鰏enord f鰎 anonym FTP
anon_none=Till錿 allt
anon_trivial=M錽te inneh錶la ett @
anon_rfc822=M錽te vara en RFC822-e-postadress
anon_enforce=F鰎bjud inloggning
anon_warn=Varna endast
anon_email=F鰎bjudna l鰏enord f鰎 anonym FTP
anon_groot=Rotkataloger f鰎 g鋝ter
anon_uids=F鰎 Unix-anv鋘dare
anon_err=Det gick inte att spara inst鋖lningarna f鰎 anonym FTP
anon_edir='$1' 鋜 inte en giltig katalog
anon_egroup='$1' 鋜 inte en giltig grupp

perm_title=R鋞tigheter
perm_header=Inst鋖lningar f鰎 r鋞tigheter
perm_perms=Begr鋘sningar av kommandon
perm_type=Kommando
perm_can=Till錿?
perm_users=F鰎 anv鋘dartyper
perm_classes=F鰎 klasser
perm_all=Alla
perm_anonymous=Anonym
perm_guest=G鋝t
perm_real=Unix
perm_note=Standardinst鋖lningen 鋜 att alla kommandon 鋜 till錿na f鰎 alla anv鋘dare
perm_filter=F鰎bjudna filnamn f鰎 nedladdade filer
perm_types=Anv鋘dartyper
perm_mesg=Felmeddelandefil
perm_char=Till錿na tecken
perm_regexp=Regulj鋜a uttryck f鰎 f鰎bjudna filer
perm_err=Det gick inte att spara r鋞tigheter
perm_echar='$1' 鋜 inte en giltig teckenupps鋞tning
perm_etypes=Du har inte angivit n錱on anv鋘dartyp
perm_emesg='$1' 鋜 inte en giltig felmeddelandefil

host_title=舤komstkontroll f鰎 datorer

misc_title=Blandade inst鋖lningar
misc_header=Blandade inst鋖lningar
misc_lslong=Kommando f鰎 l錸g listning
misc_lsshort=Kommando f鰎 kort listning
misc_lsplain=Kommando f鰎 normal listning
misc_shutdown=Fil f鰎 avst鋘gningsmeddelanden
misc_none=Ingen
misc_nice=Nice-niv f鰎 tj鋘steprocess
misc_ndelta=Nice-niv
misc_class=F鰎 klasserna
misc_all=Alla
misc_defumask=Standard-umask f鰎 nedladdade filer
misc_umask=Umask
misc_err=Det gick inte att spara blandade inst鋖lningar
misc_elslong=Du har inte angivit n錱ot kommando f鰎 l錸g listning
misc_elsshort=Du har inte angivit n錱ot kommando f鰎 kort listning
misc_elsplain=Du har inte angivit n錱ot kommando f鰎 normal listning
misc_eshutdown=Du har inte angivit n錱on fil f鰎 avst鋘gningsmeddelanden
misc_enice='$1' 鋜 inte en giltig nice-niv
misc_eumask='$1' 鋜 inte en giltig umask

log_class=膎drade anv鋘dare och klasser
log_message=膎drade meddelanden
log_acl=膎drade begr鋘sningar och 錿komstkontroll
log_net=膎drade n鋞verksinst鋖lningarna
log_log=膎drade loggningsinst鋖lningarna
log_alias=膎drade alias och s鰇v鋑ar
log_anon=膎drade anonym FTP
log_perm=膎drade inst鋖lningarna f鰎 r鋞tigheter
log_misc=膎drade blandade inst鋖lningar
log_restart=Tog 鋘dringar i drift
log_start=Startade FTP-server
0707010002b532000081a40000000000000002000000013ac038a7000023ef000000200000000000000000000000000000001500000003reloc/wuftpd/lang/tr  index_title=FTP Sunucusu
index_eftpd=FTP sunucusu $1 sisteminizde bulunamad. Kurulmam ya da <a href='$2'>FTP Sunucusu Mod黮 Yap齦and齬mas</a> yanl olabilir
index_eftpaccess=FTP sunucusu yap齦and齬ma dosyas $1 mevcut de餴l.  Kurulmam ya da <a href='$2'>FTP Sunucusu Mod黮 Yap齦and齬mas</a> yanl olabilir
index_eversion=FTP sunucusu $1 WU-FTPd gibi g鰎黱m鼀or. 蔺letim sisteminizin sundu饀 daha eski bir FTPd kullan齳or olabilirsiniz ya da <a href='$2'>FTP Sunucusu Mod黮 Yap齦and齬mas</a>  yanl olabilir.
index_apply=De餴㱮klikleri Uygula
index_applymsg=Bu butonu t齥layarak mevcut yap齦and齬may uygulayabilirsiniz. Bu ftp sunucusunu yeniden durdurup baatacakt齬 ve bu arada sisteminize ba餷 kullan齝齦ar齨 ba餷ant齦ar kesilecektir.
index_start=Sunucuyu Baat
index_startmsg=Bu butonu t齥layarak FTP sunucunu mevcut yap齦and齬ma ile baatabilirsiniz. FTP sunucunuzun a琮lta otomatik olarak baamas齨 istiyorsan齴 <a href='$1'>Internet Servisleri</a> mod黮黱 kullanmal齭齨齴.
index_return=FTP sunucusu se鏴nekleri

class_title=Kullan齝 ve S齨齠lar
class_header=Kullan齝 s齨齠lar ve kullan齝 se鏴nekleri
class_class=Kullan齝 s齨齠lar
class_name=S齨齠 輘mi
class_types=Kullan齝 tipleri
class_addrs=Karla⺶齬齦an adresler
class_real=Unix
class_guest=ziyaret鏸
class_anonymous=Anonymous
class_guestuser=Unix kullan齝齦ar ve UID'leri ziyaret鏸 olarak davrans齨
class_guestgroup=Unix gruplar ve GID'leri ziyaret鏸 olarak davrans齨
class_realuser=Unix kullan齝 ve UID'leri ziyaret鏸 olarak <i>davranmas齨</i>
class_realgroup=Unix gruplar ve GID'leri ziyaret鏸 olarak <i>davranmas齨</i>
class_ftpusers=Reddedilecek Unix kullan齝齦ar ($1'den)
class_deny_uid=Reddedilecek Unix kullan齝齦ar ve UID'leri
class_deny_gid=Reddedilecek Unix gruplar ve GID'leri
class_allow_uid=<i>Reddedilmeyecek</i> Unix kullan齝齦ar ve UID'leri
class_allow_gid=<i>Reddedilmeyecek</i> Unix gruplar ve GID'leri
class_err=Kullan齝 s齨齠lar齨齨 kaydedilmesinde hata olu⺶u
class_eclass='$1' ge鏴rli bir s齨齠 ismi de餴l
class_etypes='$1' s齨齠 i鏸n tip se鏸lmedi
class_eaddrs='$1' s齨齠 i鏸n adres girilmedi

message_title=Mesajlar ve Giri Ba
message_header=Mesajlar, giri ba齥lar ve README dosyalar
message_message=Mesaj dosyalar
message_path=Yolu
message_when=G鰎黱t黮eme zaman
message_login=Giri⺶e
message_dir=Dizine giri⺶e
message_alldir=B黷黱 dizinlere girierde
message_classes=G鰎黱t黮enecek s齨齠lar
message_readme=README dosyalar
message_update=Son de餴⺶irilme tarihi g鰏terilme zaman
message_greeting=Selamlama seviyesi
message_full=Makine ad ve s黵黰
message_brief=Makine ad
message_terse=輐isi de de餴l
message_banner=謓-giri giri ba
message_none=Hi鏱iri
message_file=Dosyadan
message_hostdef=Sistem makine ad
message_hostname=Mesajlar i鏸n makine ad
message_email=Sahibinin e-posta adresi
message_err=Mesajlar齨 ve giri ba齥lar齨齨 kaydedilmesinde hata olu⺶u
message_epath='$1' ge鏴rli bir yol de餴ldir
message_cwd='$1' ge鏴rli bir dizin de餴ldir
message_eclass=S齨齠 '$1' mevcut de餴ldir
message_ebanner='$1' ge鏴rli bir giri ba dosyas de餴ldir
message_ehostname=Kay齪 ya da yanl makine ad
message_eemail=Kay齪 ya da yanl e-posta adresi

acl_title=Limitler ve Giri Kontrol
acl_header=Limiler ve giri kontrol se鏴nekleri
acl_deny=Buradan girieri kabul etme
acl_daddrs=Adreslerden girieri kabul etme
acl_dmsg=Hata mesaj dosyas
acl_file=Dosya ve bilgi transfer limitleri
acl_fblimit=Limit tipi
acl_flimit=Oturum bana dosya
acl_blimit=Oturum bana byte
acl_raw=Sadece bilgi?
acl_inout=Y鰊lendirme
acl_in=葭eri
acl_out=Dar
acl_total=輐isi de
acl_count=En 鏾k
acl_class=S齨齠a Uygula
acl_all=B黷黱 s齨齠lar
acl_limit=Ayn zamandaki kullan齝 limiti
acl_n=Em 鏾k kullan齝
acl_times=Zaman
acl_lmsg=Hata mesaj dosyas
acl_unlimited=Limitsiz
acl_any=Her zaman
acl_alimit=Anonymous oturum limiit
acl_glimit=Ziyaret鏸 oturum limiti
acl_mins=dakika
acl_fails=En 鏾k giri bar齭齴l
acl_private=Gruplar de餴⺶irebilirsin?
acl_noret=Dosyalara girieri izin verme
acl_nfiles=輟in verilmeyen dosyalar
acl_nrel=chroot'a ba餷 m?
acl_nclass=輟in verilmeyen s齨齠lar
acl_allowret=輟in verilmese bile dosyalara izin ver
acl_afiles=輟in verilen dosyalar
acl_arel=chroot'a ba餷 m?
acl_aclass=輟in verilen s齨齠lar
acl_err=Limitlerin ve giri kontrol黱黱 kaydedilmesinde hata olu⺶u
acl_edaddr='$1' ge鏴rli bir adres de餴ldir
acl_edfile='$1' ge鏴rli bir adres dosyas de餴ldir
acl_edmsg='$1' ge鏴rli bir hata mesaj dosyas de餴ldir
acl_eln='$1' ge鏴rli bir en 鏾k kullan齝 say齭 de餴ldir
acl_etimes='$1' ge鏴rli bir UUCP-stili zaman aral de餴ldir
acl_elmsg='$1' ge鏴rli bir hata mesaj dosyas de餴ldir
acl_efbcount='$1' ge鏴rli bir dosya  ya da byte say齭 de餴ldir
acl_elimit='$1' ge鏴rli bir zaman limiti de餴ldir
acl_efails='$1' ge鏴rli bir giri bars齴l say齭 de餴ldir

net_title=A
net_header=A Se鏴nekleri
net_tcp=TCP window boyutu
net_tsize=Boyut
net_tclass=S齨齠lar i鏸n
net_tall=B黷黱 s齨齠lar
net_pasvaddr=PASV ba餷ant齦ar adresleri
net_pip=IP adresi
net_pcidr=A餯an istemciler i鏸n
net_pasvport=PASV istemcileri portlar
net_prange=Port aral
net_err=A se鏴neklerinin kaydedilmesinde hata olu⺶u
net_etsize='$1' ge鏴rli bir TCP windows boyutu de餴ldir
net_eip='$1' ge鏴rli bir IP adresi de餴ldir
net_enet='$1' ge鏴rli bir a adresi de餴ldir
net_ecidr='$1' ge鏴rli bir network bits numaras de餴ldir
net_eport='$1' ge鏴rli bir port numaras de餴ldir

log_title=Kay齮 Tutma
log_header=Kay齮 Tutma Se鏴nekleri
log_commands=B黷黱 komutlar i鏸n kay齮 tut
log_anonymous=Anonymous kullan齝齦ar
log_guest=Misafir kullan齝齦ar
log_real=Unix kullan齝齦ar
log_trans=Kay齮 transferleri
log_dir=Y鰊lendirmelerde
log_inbound=Giren
log_outbound=驱kan
log_both=輐isi de
log_security=G黺enlik ihlallerini ky齮 tut
log_to=Transferleri kay齮 tut
log_syslog=Sistem kayd
log_xferlog=XFER kay齮 dosyas
log_err=Kay齮 tutma se鏴neklerinin kaydedilmesinde hata olu⺶u

alias_title=Takma 輘imler ve Yollar
alias_header=Takma isim ve yol se鏴nekleri
alias_alias=CD dizin takma isimleri
alias_from=Takma isim
alias_to=D輟in takma ismi
alias_cdpath=CD dizin arama yolu
alias_err=Takma isim ve yollar齨 kaydedilmesinde hata olu⺶u
alias_efrom='$1' ge鏴rli bir takma isim de餴ldir
alias_eto='$1' ge鏴rli bir takma isim dizini de餴ldir
alias_ecdpath='$1' ge鏴rli bir CD arama dizini de餴ldir

anon_title=Anonymous FTP
anon_eftp=Uyar! - sisteminiz bir <tt>ftp</tt> kullan齝齭齨a sahip de餴l, ve anonymous FTP b鼀黭 olas齦齥la yap齦and齬齦mad
anon_header=Anonymous FTP se鏴nekleri
anon_auto=Anonymous kullan齝齦ar i鏸n Unix gruplar
anon_group=Gruba de餴⺶ir
anon_classes=S齨齠lar i鏸n
anon_root=Anonymous FTP root dizinleri
anon_dir=Dizin
anon_class=S齨齠 i鏸n
anon_any=Herhangi
anon_passwd=Anonymous FTP parola kontrol
anon_none=Her㧐ye izin ver
anon_trivial=@ i鏴rmerli
anon_rfc822=RFC822 e-posta adresi
anon_enforce=Giri㧐 izin verme
anon_warn=Sadece uyar
anon_email=輟in verilmeyecek olan anonymous FTP parolalar
anon_groot=Ziyaret鏸 dizinleri
anon_uids=Unix kullan齝齦ar i鏸n
anon_err=Anonymous FTP se鏴neklerinin kaydedilmesinde hata olu⺶u
anon_edir='$1' ge鏴rli bir dizin de餴ldir
anon_egroup='$1' ge鏴rli bir grup de餴ldir

perm_title=輟inler
perm_header=輟in Se鏴nekleri
perm_perms=Komut k齭齮lamalar
perm_type=Komut
perm_can=輟in verilsin?
perm_users=Kullan齝 tipleri i鏸n
perm_classes=S齨齠lar i鏸n
perm_all=Hepsi
perm_anonymous=Anonymous
perm_guest=Ziyaret鏸
perm_real=Unix
perm_note=謓 tan齧l olarak, b黷黱 kullan齝齦ara b黷黱 komutlar izin ver
perm_filter=Reddedilen upload dosya isimleri
perm_types=Kullan齝 tipleri
perm_mesg=Hata mesaj dosyas
perm_char=輟in verilen karakterler
perm_regexp=輟in verilmeyen dosya d鼁enleme ifadeleri
perm_err=輟inlerin kaydedilmesinde hata olu⺶u
perm_echar='$1' d鼁enleme ifadelerini olu⺶urmak i鏸n ge鏴rli bir karakter de餴ldir
perm_etypes=Kullan齝 tipleri se鏸lmedi
perm_emesg='$1' ge鏴rli bir hata mesaj de餴ldir

host_title=Makine Giri Kontrol

misc_title=莈㱮tli Se鏴nekler
misc_header=莈r㱮tli se鏴nekler
misc_lslong=Uzun listeme komutu
misc_lsshort=K齭a listeleme komutu
misc_lsplain=A琮k listeleme komutu
misc_shutdown=Kapatma bildirim dosyas
misc_none=Hi鏱iri
misc_nice=輞ile⺶irme seviyesi servis iemi
misc_ndelta=輞ile⺶irme seviyesi
misc_class=S齨齠lar i鏸n
misc_all=B黷黱 s齨齠lar
misc_defumask=Y黭lenen dosyalar i鏸n 鰊tan齧l umask
misc_umask=Umask
misc_err=莈㱮tli se鏴neklerin kaydedilmesinde hata olu⺶u
misc_elslong=Uzun listeleme komutu bulunamad
misc_elsshort=K齭a listeleme komutu bulunamad
misc_elsplain=A琮k listeleme komutu bulunamad
misc_eshutdown=Kapatma bildirim dosyas bulunamad
misc_enice='$1' ge鏴rli bir iyile⺶irme seviyesi de餴ldir
misc_eumask='$1' ge鏴rli bir umask de餴ldir

log_class=Kullan齝 ve s齨齠lar de餴⺶irildi
log_message=Mesaj ve ba齥lar de餴⺶irildi
log_acl=Limitler ve giri kontrol de餴⺶irildi
log_net=A se鏴nekleri de餴⺶irildi
log_log=Kay齮 se鏴nekleri de餴⺶irildi
log_alias=Takma isim ve yollar de餴⺶irildi
log_anon=Anonymous FTP de餴⺶irildi
log_perm=輟in se鏴nekleri de餴⺶irildi
log_misc=莈㱮tli se鏴nekler de餴⺶irildi
log_restart=De餴㱮klikler uyguland
log_start=FTP sunucusu baat齦d

 0707010002b533000081a40000000000000002000000013ac038a70000179f000000200000000000000000000000000000001800000003reloc/wuftpd/lang/zh_CN   index_title=FTP 服务
index_eftpd=系统没有找到FTP服务$1.可能没有安装,也可能<a href='$2'>FTP 服务配置模块</a> 错误.
index_eftpaccess=FTP服务配置文件$1没有找到.可能<a href='$2'>FTP 服务配置模块</a> 错误.
index_eversion=FTP服务$1不是WU-FTPd.可能是系统自带的老FTPd服务,也或许<a href='$2'>FTP 服务配置模块</a> 错误.
index_apply=变更生效
index_applymsg=单击按扭使得当前配置生效.这会停止当前所有的FTP服务,并重新启动它们,当前的用户连接会断掉
index_start=启动服务
index_startmsg=单击按扭使用当前的配置启动FTP服务.也可以配置为需要<a href='$1'>Internet 服务</a>u=时自动启动
index_startmsg2=点击此按钮以当前配置启动 FTP 服务器.您也可配置服务器,当需要运行 inetd 以及类似的程序时,使服务器自动启动.
index_return=FTP服务选项

class_title=用户和类型
class_header=用户类型和选项
class_class=用户类型
class_name=类型名称
class_types=用户类型
class_addrs=匹配地址
class_real=Unix
class_guest=客户用户
class_anonymous=匿名用户
class_guestuser=Unix用户和 UIDs当做客户用户
class_guestgroup=Unix 组和 GIDs当做客户用户
class_realuser=Unix 用户和 UIDs <i>不</i>当做客户用户
class_realgroup=Unix  组和 GIDs <i>不</i>当做客户用户
class_ftpusers=Unix 用户拒绝(自$1)
class_deny_uid=Unix 用户和UIDs拒绝
class_deny_gid=Unix 组和GIDs拒绝
class_allow_uid=Unix用户和<i>不</i>拒绝
class_allow_gid=Unix组和GIDs<i>不</i>拒绝
class_err=保存用户级失败
class_eclass=错误的用户级名'$1'
class_etypes=级别'$1'中没有选择类型
class_eaddrs=级别'$1'中没有输入地址

message_title=信息和标题
message_header=信息,标题和README文件
message_message=信息文件
message_path=路径
message_when=何时显示
message_login=在登录
message_dir=输入目录
message_alldir=输入任何目录
message_classes=显示类别
message_readme=README 文件
message_update=何时现实最后的修改日期
message_greeting=问候级别
message_full=主机名和版本
message_brief=主机
message_terse=都没有
message_banner=预-登录标题
message_none=无
message_file=自文件
message_hostdef=系统主机名
message_hostname=信息的主机名
message_email=拥有者的邮件地址
message_err=保存信息和标题失败
message_epath=错误的路径'$1'
message_cwd=错误的路径'$1'
message_eclass=级别 '$1'不存在
message_ebanner=错误的标题文件'$1'
message_ehostname=丢失或错误的主机名
message_eemail=丢失或错误的邮件地址

acl_title=限制和存取控制
acl_header=限制和存取控制选项
acl_deny=禁止存取从
acl_daddrs=禁止从地址
acl_dmsg=错误信息文件
acl_file=文件和数据传送限制
acl_fblimit=限制类型
acl_flimit=每个会话的文件
acl_blimit=每个会话的字节
acl_raw=仅仅数据?
acl_inout=方向
acl_in=进入
acl_out=输出
acl_total=两者
acl_count=最大
acl_class=类别生效
acl_all=所有类别
acl_limit=并发用户限制
acl_n=最大用户
acl_times=在时间
acl_lmsg=错误信息文件
acl_unlimited=无限
acl_any=任何时间
acl_alimit=匿名会话限制
acl_glimit=客户用户会话限制
acl_mins=分
acl_fails=最大登录失败
acl_private=是否可以转换类?
acl_noret=禁止存取文件
acl_nfiles=文件禁止
acl_nrel=和chroot相关?
acl_nclass=禁止类别
acl_allowret=哪怕禁止了也允许存取
acl_afiles=允许文件
acl_arel=和chroot相关?
acl_aclass=允许类别
acl_err=保存限制和存取失败
acl_edaddr=错误的地址'$1'
acl_edfile=错误的地址文件'$1'
acl_edmsg=错误的信息文件'$1'
acl_eln=错误的最大用户数'$1'
acl_etimes=错误的UUCP类型的时间范围'$1'
acl_elmsg=非法的错误信息文件'$1'
acl_efbcount=错误的文件或字节数'$1'
acl_elimit=错误的时间限制'$1'
acl_efails=错误的登录数'$1'

net_title=网络
net_header=网络操作
net_tcp=TCP 窗口大小
net_tsize=大小
net_tclass=针对类别
net_tall=所有类别
net_pasvaddr=PASV 连接的地址
net_pip=IP 地址
net_pcidr=对网络上的客户
net_pasvport=PASV 连接的端口
net_prange=Port 范围
net_err=保存网络操作失败
net_etsize=错误的TCP窗口大小'$1'
net_eip=错误的IP地址'$1'
net_enet=错误的网络地址'$1'
net_ecidr=错误的网络位'$1'
net_eport=错误的端口数'$1'

log_title=登录
log_header=登录选项
log_commands=对路所有的命令为
log_anonymous=匿名用户
log_guest=客户用户
log_real=Unix 用户
log_trans=传输日志到
log_dir=在方向
log_inbound=内部
log_outbound=外部
log_both=两个都
log_security=登录安全违反
log_to=登录传送到
log_syslog=系统日志
log_xferlog=XFER 日志文件
log_err=保存日志选项失败

alias_title=别名和路径
alias_header=别名和路径选项
alias_alias=CD 目录别名
alias_from=别名
alias_to=别名到路径
alias_cdpath=CD 目录搜索路径
alias_err=保存别名和路径失败
alias_efrom=错误的别名'$1'
alias_eto=错误的别名路径'$1'
alias_ecdpath=错误的CD搜索路径'$1'

anon_title=匿名 FTP
anon_eftp=警告 - 系统没有一个<tt>ftp</tt> 用户, 匿名 FTP 用户可能没有正确配置
anon_header=匿名 FTP 选项
anon_auto=Unix 组的匿名用户
anon_group=转换的组
anon_classes=为类别
anon_root=匿名 FTP 的根目录
anon_dir=目录
anon_class=为类别
anon_any=任何
anon_passwd=匿名FTP口令检查
anon_none=允许所有
anon_trivial=一定包含@
anon_rfc822=一定是 RFC822 email 地址
anon_enforce=禁止登录
anon_warn=仅警告
anon_email=禁止匿名FTP口令
anon_groot=Guest用户根目录
anon_uids=对 Unix 用户
anon_err=保存匿名FTP选项失败
anon_edir=错误的路径'$1'
anon_egroup=错误的组'$1'

perm_title=权限
perm_header=权限选项
perm_perms=命令约束
perm_type=命令
perm_can=允许?
perm_users=用户类型
perm_classes=对级别
perm_all=所有
perm_anonymous=匿名
perm_guest=客户
perm_real=Unix
perm_note=缺省,全部用户可以使用所有的命令
perm_filter=禁止上传文件
perm_types=用户类型
perm_mesg=错误信息文件
perm_char=允许字符
perm_regexp=禁止文件正则表达式
perm_err=保存权限失败
perm_echar=错误的字符集正则表达式'$1'
perm_etypes=没有选择用户
perm_emesg=非法的错误信息文件'$1'

host_title=主机存取控制

misc_title=杂项选择
misc_header=杂项选择
misc_lslong=长列表命令
misc_lsshort=短列表命令
misc_lsplain=普通列表命令
misc_shutdown=关闭通告文件
misc_none=无
misc_nice=服务进程nice级别
misc_ndelta=Nice 级别
misc_class=对类别
misc_all=所有类别
misc_defumask=上传文件缺省 umask
misc_umask=Umask
misc_err=保存杂项选择失败
misc_elslong=丢失长列表文件命令
misc_elsshort=丢失短列表命令
misc_elsplain=丢失普通列表命令
misc_eshutdown=丢失关闭通告文件
misc_enice=错误的nice级别'$1'
misc_eumask=错误的unmask'$1'

log_class=改变用户和类别
log_message=改变信息和标题
log_acl=改变限制和访问控制
log_net=改变网络选项
log_log=改变日志选项
log_alias=改变别名和路径
log_anon=改变匿名 FTP
log_perm=改变权限设置
log_misc=改变多种选项
log_restart=应用改变值
log_start=启动 FTP 服务

 0707010002b534000081a40000000000000002000000013ac038a70000192b000000200000000000000000000000000000001d00000003reloc/wuftpd/lang/zh_TW.Big5  index_title=FTP 狝竟
index_eftpd=眤╰参тぃ FTP 狝竟 $1. 琌眤﹟ゼ杆, ┪琌眤 <a href='$2'>FTP 狝竟家舱舱篈</a>Τ岿粇.
index_eftpaccess=тぃ FTP 狝竟舱篈郎 $1. 琌眤﹟ゼ杆, ┪琌眤 <a href='$2'>FTP 狝竟家舱舱篈</a>Τ岿粇.
index_eversion=FTP 狝竟 $1 ぃ琌 WU-FTPd. 眤タㄏノ╰参┮矗ㄑ耕侣 FTP 狝竟, ┪琌眤 <a href='$2'>FTP 狝竟家舱舱篈</a>Τ岿粇.
index_apply=甅ノ跑
index_applymsg=硂秙甅ノヘ玡舱篈. 硂盢氨ゎ穝币笆 FTP 狝竟祘, ┮ヘ玡硈絬ㄏノぇ硈絬穦い耞.
index_start=币笆狝竟
index_startmsg=硂秙ノヘ玡舱篈币笆 FTP 狝竟. 眤竒パ<a href='$1'>呼悔呼隔狝叭籔﹚</a>盢硂狝竟舱篈惠璶笆币笆
index_return=FTP 狝竟匡兜

class_title=ㄏノ籔单
class_header=ㄏノ单籔ㄏノ匡兜
class_class=ㄏノ单
class_name=顶嘿
class_types=ㄏノ摸
class_addrs=才
class_real=Unix ㄏノ
class_guest=砐
class_anonymous=拔
class_guestuser=讽砐 Unix ㄏノ籔ㄏノ絪腹
class_guestgroup=讽砐 Unix 竤舱籔竤舱絪腹
class_realuser=<i>ぃ</i>讽砐 Unix ㄏノ籔ㄏノ絪腹
class_realgroup=<i>ぃ</i>讽砐 Unix 竤舱籔竤舱絪腹
class_ftpusers=┶荡 Unix ㄏノ (ㄓ $1)
class_deny_uid=┶荡 Unix ㄏノ籔ㄏノ絪腹
class_deny_gid=┶荡 Unix 竤舱籔竤舱絪腹
class_allow_uid=<i>ぃ</i>┶荡 Unix ㄏノ籔ㄏノ絪腹
class_allow_gid=<i>ぃ</i>┶荡 Unix 竤舱籔竤舱絪腹
class_err=礚猭纗ㄏノ单
class_eclass='$1' ぃ琌Τ顶嘿
class_etypes=顶 '$1' ⊿Τ匡拒ㄏノ摸
class_eaddrs=顶 '$1' ⊿Τ块

message_title=癟籔夹肈
message_header=癟, 夹肈籔弄и郎
message_message=癟郎
message_path=隔畖
message_when=陪ボ诀
message_login=祅
message_dir=秈ヘ魁
message_alldir=秈ヴヘ魁
message_classes=璶陪ボ顶
message_readme=弄и郎
message_update=陪ボ程跑丁诀
message_greeting=舧单
message_full=诀嘿籔セ
message_brief=诀嘿
message_terse=常ぃ璶
message_banner=祅玡夹肈
message_none=礚
message_file=眖郎
message_hostdef=╰参诀嘿
message_hostname=倒癟诀嘿
message_email=局Τ筿秎ン
message_err=礚猭纗癟籔夹肈
message_epath='$1' ぃ琌Τ隔畖
message_cwd='$1' ぃ琌Τヘ魁
message_eclass=顶 '$1' ぃ
message_ebanner='$1' ぃ琌Τ祅夹肈郎
message_ehostname=框ア┪岿粇诀嘿
message_eemail=框ア┪岿粇筿秎ン

acl_title=籔北
acl_header=籔北匡兜
acl_deny=┶荡ㄓ
acl_daddrs=┶荡ㄓ
acl_dmsg=岿粇癟郎
acl_file=郎籔戈肚块
acl_fblimit=摸
acl_flimit=–顶琿郎计
acl_blimit=–顶琿じ舱计
acl_raw=琌Τ戈?
acl_inout=よ
acl_in=肚
acl_out=更
acl_total=
acl_count=程
acl_class=甅ノ顶
acl_all=场顶
acl_limit=硈絬ㄏノ
acl_n=程ㄏノ计
acl_times=丁
acl_lmsg=岿粇癟郎
acl_unlimited=ぃ
acl_any=ヴ丁
acl_alimit=拔顶琿
acl_glimit=砐顶琿
acl_mins=だ牧
acl_fails=程祅ア毖Ω计
acl_private=琌ち传竤舱?
acl_noret=┶荡郎
acl_nfiles=璶┶荡郎
acl_nrel=琌癸 chroot?
acl_nclass=┶荡顶
acl_allowret=す砛郎, 碞衡砆┶荡
acl_afiles=璶す砛郎
acl_arel=琌癸 chroot?
acl_aclass=す砛顶
acl_err=礚猭纗籔北
acl_edaddr='$1' ぃ琌Τ
acl_edfile='$1' ぃ琌Τ郎
acl_edmsg='$1' ぃ琌Τ岿粇癟郎
acl_eln='$1' ぃ琌Τ程ㄏノ计秖
acl_etimes='$1' ぃ琌Τ UUCP Α丁絛瞅
acl_elmsg='$1' ぃ琌Τ岿粇癟郎
acl_efbcount='$1' ぃ琌Τ郎┪じ舱计ヘ
acl_elimit='$1' ぃ琌Τ丁
acl_efails='$1' ぃ琌Τ祅岿粇Ω计

net_title=呼隔
net_header=呼隔匡兜
net_tcp=TCP 怠
net_tsize=
net_tclass=倒顶
net_tall=场顶
net_pasvaddr=PASV 硈钡
net_pip=IP 
net_pcidr=倒め狠眖呼隔
net_pasvport=PASV 硈絬硄癟梆
net_prange=硄癟梆絛瞅
net_err=礚猭纗呼隔匡兜
net_etsize='$1' ぃ琌Τ TCP 怠
net_eip='$1' ぃ琌Τ IP 
net_enet='$1' ぃ琌Τ呼隔
net_ecidr='$1' ぃ琌Τ呼隔じ计
net_eport='$1' ぃ琌Τ硄癟梆腹絏

log_title=魁
log_header=魁匡兜
log_commands=魁ㄏノ摸...┮Τ㏑
log_anonymous=拔
log_guest=砐
log_real=Unix ㄏノ
log_trans=魁ㄏノ摸...肚块
log_dir=癸よ
log_inbound=秈╰参
log_outbound=╰参块
log_both=
log_security=魁ㄏノ摸...笻砏
log_to=魁肚癳
log_syslog=╰参魁
log_xferlog=XFER 魁郎
log_err=礚猭纗魁匡兜

alias_title=籔隔畖
alias_header=籔隔畖匡兜
alias_alias=CD ヘ魁
alias_from=嘿
alias_to=ヘ魁
alias_cdpath=CD ヘ魁穓碝隔畖
alias_err=礚猭纗籔隔畖
alias_efrom='$1' ぃ琌Τ嘿
alias_eto='$1' ぃ琌Τヘ魁
alias_ecdpath='$1' ぃ琌Τ CD 穓碝ヘ魁

anon_title=拔 FTP
anon_eftp=牡 - 眤╰参⊿Τ <tt>ftp</tt> ㄏノ, ┮拔 FTP 礚猭砆タ絋舱篈.
anon_header=拔 FTP 匡兜
anon_auto=拔ㄏノ Unix 竤舱
anon_group=ち传竤舱
anon_classes=倒单
anon_root=拔 FTP ヘ魁
anon_dir=ヘ魁
anon_class=倒单
anon_any=ヴ
anon_passwd=拔 FTP 盞絏浪琩
anon_none=す砛ヴ狥﹁
anon_trivial=ゲ斗
anon_rfc822=ゲ斗琌 RFC822 筿秎ン
anon_enforce=┶荡祅
anon_warn=璶牡
anon_email=璶┶荡拔 FTP 盞絏
anon_groot=砐ヘ魁
anon_uids=倒 Unix ㄏノ
anon_err=礚猭纗拔 FTP 匡兜
anon_edir='$1' ぃ琌Τヘ魁
anon_egroup='$1' ぃ琌Τ竤舱

perm_title=舦
perm_header=舦匡兜
perm_perms=
perm_type=
perm_can=琌す砛?
perm_users=倒ㄏノ摸
perm_classes=倒顶
perm_all=场
perm_anonymous=拔
perm_guest=砐
perm_real=Unix ㄏノ
perm_note=箇砞猵, ┮Τㄏノ常ㄏノ场
perm_filter=ぃす砛肚郎嘿
perm_types=ㄏノ摸
perm_mesg=岿粇癟郎
perm_char=す砛じ
perm_regexp=┶荡郎タ砏ボΑ
perm_err=礚猭纗舦
perm_echar='$1' ぃ琌Τタ砏ボΑじ栋
perm_etypes=⊿Τ匡拒ㄏノ摸
perm_emesg='$1' ぃ琌Τ岿粇癟郎

host_title=诀北

misc_title=ㄤ匡兜
misc_header=ㄤ匡兜
misc_lslong=
misc_lsshort=祏
misc_lsplain=冈灿
misc_shutdown=闽超狝叭硄郎
misc_none=礚
misc_nice=狝竟祘纔
misc_ndelta=纔
misc_class=倒单
misc_all=场单
misc_defumask=箇砞肚郎 umask
misc_umask=umask
misc_err=礚猭纗ㄤ匡兜
misc_elslong=框ア
misc_elsshort=框ア祏
misc_elsplain=框ア冈灿
misc_eshutdown=框ア闽超狝叭硄郎
misc_enice='$1' ぃ琌Τ纔
misc_eumask='$1' ぃ琌Τ umask
 070701000259be000081a40000000000000002000000013ac038a70000018a000000200000000000000000000000000000001b00000003reloc/wuftpd/log_parser.pl    # log_parser.pl
# Functions for parsing this module's logs

require './wuftpd-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p) = @_;
if ($text{"log_$action"}) {
	return $text{"log_$action"};
	}
else {
	return undef;
	}
}

  070701000259bf000081a40000000000000002000000013ac038a7000001b9000000200000000000000000000000000000001900000003reloc/wuftpd/module.info  name=FTP
desc_pt=Servidor FTP
desc_tr=FTP Sunucusu
desc_fr=Serveur FTP
desc_es=Servidor FTP
desc_de=FTP Server
desc_sv=FTP-server
desc_ru_SU=FTP 笈易乓
desc_pl=Serwer FTP
category=servers
os_support=open-linux solaris redhat-linux suse-linux debian-linux slackware-linux turbo-linux freebsd openbsd hpux aix osf1 macos lfs-linux aix
desc_zh_TW.Big5=FTP 狝竟
desc=FTP Server
risk=low medium high
desc_zh_CN=FTP 服务器
desc_ru_RU=FTP 彦疴屦
   070701000259c0000081e40000000000000002000000013ac038a70000012e000000200000000000000000000000000000001900000003reloc/wuftpd/restart.cgi  #!/usr/local/bin/perl
# restart.cgi
# Kill all ftpd processes, and restart the FTP server with flags -l -a -S

require './wuftpd-lib.pl';
&ReadParse();
&kill_logged('TERM', $in{'pid'});
&system_logged("$config{'ftpd_path'} -l -a -S >/dev/null 2>&1 </dev/null");
&webmin_log("restart");
&redirect("");

  070701000259c2000081e40000000000000002000000013ac038a700000f83000000200000000000000000000000000000001a00000003reloc/wuftpd/save_acl.cgi #!/usr/local/bin/perl
# save_acl.cgi
# Save access control options

require './wuftpd-lib.pl';
&error_setup($text{'acl_err'});
&ReadParse();
&lock_file($config{'ftpaccess'});
$conf = &get_ftpaccess();

# Save deny directives
for($i=0; defined($daddrs = $in{"daddrs_$i"}); $i++) {
	$dmsg = $in{"dmsg_$i"};
	next if (!$daddrs);
	$daddrs =~ /^\S+$/ || &error(&text('acl_edaddr', $daddrs));
	$daddrs !~ /^\|(\S+)$/ || -r $1 || &error(&text('acl_edfile', $1));
	$dmsg =~ /^\S+$/ && -r $dmsg || &error(&text('acl_edmsg', $dmsg));
	push(@deny, { 'name' => 'deny',
		      'values' => [ $daddrs, $dmsg ] } );
	}
&save_directive($conf, 'deny', \@deny);

# Save limit directives
for($i=0; defined($lclass = $in{"lclass_$i"}); $i++) {
	next if (!$lclass);
	$in{"ln_def_$i"} || $in{"ln_$i"} =~ /^\d+$/ ||
		&error(&text('acl_eln', $in{"ln_$i"}));
	$in{"ltimes_def_$i"} || $in{"ltimes_$i"} =~ /^\S+$/ ||
		&error(&text('acl_etimes', $in{"ltimes_$i"}));
	-r $in{"lmsg_$i"} || &error(&text('acl_elmsg', $in{"lmsg_$i"}));
	push(@limit,
	     { 'name' => 'limit',
	       'values' => [ $lclass,
			     $in{"ln_def_$i"} ? -1 : $in{"ln_$i"},
			     $in{"ltimes_def_$i"} ? 'Any' : $in{"ltimes_$i"},
			     $in{"lmsg_$i"} ] } );
	}
&save_directive($conf, 'limit', \@limit);

# Save file-limt and byte-limit directives
for($i=0; defined($fblimit = $in{"fblimit_$i"}); $i++) {
	next if (!$fblimit);
	$in{"fbcount_$i"} =~ /^\d+$/ ||
		&error(&text('acl_efbcount', $in{"fbcount_$i"}));
	local @v = $in{"fbraw_$i"} ? ('raw') : ();
	push(@v, $in{"fbinout_$i"}, $in{"fbcount_$i"}, $in{"fbclass_$i"});
	if ($fblimit eq 'file-limit') {
		push(@file_limit, { 'name' => 'file-limit',
				    'values' => \@v } );
		}
	else {
		push(@byte_limit, { 'name' => 'byte-limit',
				    'values' => \@v } );
		}
	}
&save_directive($conf, 'file-limit', \@file_limit);
&save_directive($conf, 'byte-limit', \@byte_limit);

# Save noretrieve directives
@class = &find_value("class", $conf);
for($i=0; defined($nfiles = $in{"nfiles_$i"}); $i++) {
	next if (!$nfiles);
	local @v = $in{"nrel_$i"} ? ('relative') : ();
	local @c = split(/\0/, $in{"nclass_$i"});
	push(@v, map { "class=$_" } @c) if (@c != @class);
	push(@v, split(/\s+/, $nfiles));
	push(@noretrieve, { 'name' => 'noretrieve',
			    'values' => \@v } );
	}
&save_directive($conf, 'noretrieve', \@noretrieve);

# Save allow-retrieve directives
for($i=0; defined($afiles = $in{"afiles_$i"}); $i++) {
	next if (!$afiles);
	local @v = $in{"arel_$i"} ? ('relative') : ();
	local @c = split(/\0/, $in{"aclass_$i"});
	push(@v, map { "class=$_" } @c) if (@c != @class);
	push(@v, split(/\s+/, $afiles));
	push(@allow_retrieve, { 'name' => 'allow-retrieve',
			        'values' => \@v } );
	}
&save_directive($conf, 'allow-retrieve', \@allow_retrieve);

# Save limit-time directives
if (!$in{'alimit_def'}) {
	$alimit = $in{'alimit'};
	$alimit =~ /^\d+$/ || &error(&text('acl_elimit', $alimit));
	}
if (!$in{'glimit_def'}) {
	$glimit = $in{'glimit'};
	$glimit =~ /^\d+$/ || &error(&text('acl_elimit', $glimit));
	}
if ($alimit && $alimit eq $glimit) {
	@limit_time = ( { 'name' => 'limit-time',
			  'values' => [ '*', $alimit ] } );
	}
else {
	if ($alimit) {
		push(@limit_time, ( { 'name' => 'limit-time',
				  'values' => [ 'anonymous', $alimit ] } ) );
		}
	if ($glimit) {
		push(@limit_time, ( { 'name' => 'limit-time',
				  'values' => [ 'guest', $glimit ] } ));
		}
	}
&save_directive($conf, 'limit-time', \@limit_time);

# Save loginfails and private directives
if ($in{'fails_def'}) {
	&save_directive($conf, 'loginfails', [ ]);
	}
else {
	$in{'fails'} =~ /^\d+$/ || &error(&text('acl_efails', $in{'fails'}));
	&save_directive($conf, 'loginfails',
			[ { 'name' => 'loginfails',
			    'values' => [ $in{'fails'} ] } ] );
	}
&save_directive($conf, 'private', 
			[ { 'name' => 'private',
			    'values' => [ $in{'private'} ] } ] );

&flush_file_lines();
&unlock_file($config{'ftpaccess'});
&webmin_log("acl", undef, undef, \%in);
&redirect("");

 070701000259c4000081e40000000000000002000000013ac038a70000036c000000200000000000000000000000000000001c00000003reloc/wuftpd/save_alias.cgi   #!/usr/local/bin/perl
# save_alias.cgi
# Save alias options

require './wuftpd-lib.pl';
&error_setup($text{'alias_err'});
&ReadParse();
&lock_file($config{'ftpaccess'});
$conf = &get_ftpaccess();

# save alias directives
for($i=0; defined($from = $in{"from_$i"}); $i++) {
	$to = $in{"to_$i"};
	next if (!$from);
	$from =~ /^\S+$/ || &error(&text('alias_efrom', $from));
	-d $to || &error(&text('alias_eto', $to));
	push(@alias, { 'name' => 'alias',
		       'values' => [ $from, $to ] } );
	}
&save_directive($conf, 'alias', \@alias);

# save cdpath directives
foreach $c (split(/\s+/, $in{'cdpath'})) {
	-d $c || &error(&text('alias_ecdpath', $c));
	push(@cdpath, { 'name' => 'cdpath',
			'values' => [ $c ] } );
	}
&save_directive($conf, 'cdpath', \@cdpath);

&flush_file_lines();
&unlock_file($config{'ftpaccess'});
&webmin_log("alias", undef, undef, \%in);
&redirect("");
070701000259c5000081e40000000000000002000000013ac038a70000064b000000200000000000000000000000000000001b00000003reloc/wuftpd/save_anon.cgi    #!/usr/local/bin/perl
# save_anon.cgi
# Save anonymous FTP

require './wuftpd-lib.pl';
&error_setup($text{'anon_err'});
&ReadParse();
&lock_file($config{'ftpaccess'});
$conf = &get_ftpaccess();

# save anonymous-root options
for($i=0; defined($dir = $in{"dir_$i"}); $i++) {
	next if (!$dir);
	-d $dir || &error(&text('anon_edir', $dir));
	push(@aroot, { 'name' => 'anonymous-root',
		       'values' => [ $dir, $in{"class_$i"} ] } );
	}
&save_directive($conf, 'anonymous-root', \@aroot);

#save guest-root options
for($i=0; defined($dir = $in{"gdir_$i"}); $i++) {
	next if (!$dir);
	-d $dir || &error(&text('anon_edir', $dir));
	push(@groot, { 'name' => 'guest-root',
		       'values' => [ $dir, $in{"uids_$i"} ] } );
	}
&save_directive($conf, 'guest-root', \@groot);

# save autogroup options
for($i=0; defined($agroup = $in{"agroup_$i"}); $i++) {
	next if (!$agroup);
	defined(getgrnam($agroup)) || &error(&text('anon_egroup', $agroup));
	push(@agroup, { 'name' => 'autogroup',
			'values' => [ $agroup,
				      split(/\0/, $in{"aclass_$i"}) ] } );
	}
&save_directive($conf, 'autogroup', \@agroup);

# save other options
if ($in{'passwd_def'}) {
	&save_directive($conf, 'passwd-check', [ ]);
	}
else {
	&save_directive($conf, 'passwd-check',
			[ { 'name' => 'passwd-check',
			    'values' => [ $in{'level'}, $in{'action'} ] } ] );
	}
foreach $a (split(/\s+/, $in{'email'})) {
	push(@email, { 'name' => 'deny-email', 'values' => [ $a ] } );
	}
&save_directive($conf, 'deny-email', \@email);

&flush_file_lines();
&unlock_file($config{'ftpaccess'});
&webmin_log("anon", undef, undef, \%in);
&redirect("");
 070701000259c6000081e40000000000000002000000013ac038a7000006b2000000200000000000000000000000000000001c00000003reloc/wuftpd/save_class.cgi   #!/usr/local/bin/perl
# save_class.cgi
# Save user classes

require './wuftpd-lib.pl';
&error_setup($text{'class_err'});
&ReadParse();

&lock_file($config{'ftpaccess'});
$conf = &get_ftpaccess();

# save class options
for($i=0; defined($class = $in{"class_$i"}); $i++) {
	next if (!$class);
	$class =~ /^\S+$/ || &error(&text('class_eclass', $class));
	@types = split(/\0/, $in{"types_$i"});
	@types || &error(&text('class_etypes', $class));
	@addrs = split(/\s+/, $in{"addrs_$i"});
	@addrs || &error(&text('class_eaddrs', $class));
	push(@class, { 'name' => 'class',
		       'star' => $addrs[0] eq '*',
		       'values' => [ $class, join(",", @types), @addrs ] });
	}
@class = sort { $a->{'star'} ? 1 : $b->{'star'} ? -1 : 0 } @class;
&save_directive($conf, 'class', \@class);

# save guest/real user/group options
foreach $g ('guestuser', 'guestgroup', 'realuser', 'realgroup') {
	if ($in{$g}) {
		&save_directive($conf, $g, [ { 'name' => $g,
					       'values' => [ $in{$g} ] } ] );
		}
	else {
		&save_directive($conf, $g, [ ]);
		}
	}

# save allow/deny uid/gid options
&lock_file($config{'ftpusers'});
if ($in{'ftpusers'}) {
	open(FTPUSERS, ">$config{'ftpusers'}");
	foreach $u (split(/\s+/, $in{'ftpusers'})) {
		print FTPUSERS $u,"\n";
		}
	close(FTPUSERS);
	}
else {
	unlink($config{'ftpusers'});
	}
&unlock_file($config{'ftpusers'});
foreach $g ('deny-uid', 'deny-gid', 'allow-uid', 'allow-gid') {
	($fg = $g) =~ s/-/_/g;
	if ($in{$fg}) {
		&save_directive($conf, $g, [ { 'name' => $g,
					       'values' => [ $in{$fg} ] } ] );
		}
	else {
		&save_directive($conf, $g, [ ]);
		}
	}

&flush_file_lines();
&unlock_file($config{'ftpaccess'});
&webmin_log("class", undef, undef, \%in);
&redirect("");

  070701000259c8000081e40000000000000002000000013ac038a700000381000000200000000000000000000000000000001a00000003reloc/wuftpd/save_log.cgi #!/usr/local/bin/perl
# save_log.cgi
# Save logging options

require './wuftpd-lib.pl';
&error_setup($text{'log_err'});
&ReadParse();

&lock_file($config{'ftpaccess'});
$conf = &get_ftpaccess();

$in{'commands'} =~ s/\0/,/g;
if ($in{'commands'}) {
	push(@log, { 'name' => 'log',
		     'values' => [ 'commands', $in{'commands'} ] } );
	}

$in{'transfers'} =~ s/\0/,/g;
if ($in{'transfers'}) {
	push(@log, { 'name' => 'log',
		     'values' => [ 'transfers', $in{'transfers'},
				   $in{'direction'} ] } );
	}

$in{'security'} =~ s/\0/,/g;
if ($in{'security'}) {
	push(@log, { 'name' => 'log',
		     'values' => [ 'security', $in{'security'} ] } );
	}

if ($in{'syslog'}) {
	push(@log, { 'name' => 'log',
		     'values' => [ 'syslog' ] } );
	}

&save_directive($conf, 'log', \@log);
&flush_file_lines();
&unlock_file($config{'ftpaccess'});
&webmin_log("log", undef, undef, \%in);
&redirect("");
   070701000259c9000081e40000000000000002000000013ac038a700000a06000000200000000000000000000000000000001e00000003reloc/wuftpd/save_message.cgi #!/usr/local/bin/perl
# save_message.cgi
# Save messages, banners and other options

require './wuftpd-lib.pl';
&error_setup($text{'message_err'});
&ReadParse();

&lock_file($config{'ftpaccess'});
$conf = &get_ftpaccess();
foreach $c (&find_value('class', $conf)) {
	$hasclass{$c->[0]}++;
	}

# Save messages 
for($i=0; defined($path = $in{"mpath_$i"}); $i++) {
	next if (!$path);
	$path =~ /^\S+$/ || &error(&text('message_epath', $path));
	if ($in{"mwhen_$i"} == 0) {
		$when = "login";
		}
	elsif ($in{"mwhen_$i"} == 1) {
		$when = "cwd=*";
		}
	else {
		$in{"mcwd_$i"} =~ /^\S+$/ ||
			&error(&text('message_ecwd', $path));
		$when = "cwd=".$in{"mcwd_$i"};
		}
	@classes = split(/\s+/, $in{"mclasses_$i"});
	foreach $c (@classes) {
		$hasclass{$c} || &error(&text('message_eclass', $c));
		}
	push(@message, { 'name' => 'message',
			 'values' => [ $path, $when, @classes ] } );
	}
&save_directive($conf, 'message', \@message);

# Save readme's
for($i=0; defined($path = $in{"rpath_$i"}); $i++) {
	next if (!$path);
	$path =~ /^\S+$/ || &error(&text('message_epath', $path));
	if ($in{"rwhen_$i"} == 0) {
		$when = "login";
		}
	elsif ($in{"rwhen_$i"} == 1) {
		$when = "cwd=*";
		}
	else {
		$in{"rcwd_$i"} =~ /^\S+$/ ||
			&error(&text('message_ecwd', $path));
		$when = "cwd=".$in{"rcwd_$i"};
		}
	@classes = split(/\s+/, $in{"rclasses_$i"});
	foreach $c (@classes) {
		$hasclass{$c} || &error(&text('message_eclass', $c));
		}
	push(@readme, { 'name' => 'readme',
			 'values' => [ $path, $when, @classes ] } );
	}
&save_directive($conf, 'readme', \@readme);

# save other options
&save_directive($conf, 'greeting', [ { 'name' => 'greeting',
				       'values' => [ $in{'greeting'} ] } ]);
if ($in{'banner_def'}) {
	&save_directive($conf, 'banner', [ ]);
	}
else {
	-r $in{'banner'} || &error(&text('message_ebanner', $in{'banner'}));
	&save_directive($conf, 'banner', [ { 'name' => 'banner',
					     'values' => [ $in{'banner'} ] } ]);
	}
if ($in{'hostname_def'}) {
	&save_directive($conf, 'hostname', [ ]);
	}
else {
	$in{'hostname'} =~ /^\S+$/ || &error($text{'message_ehostname'});
	&save_directive($conf, 'hostname',
			[ { 'name' => 'hostname',
			    'values' => [ $in{'hostname'} ] } ]);
	}
if ($in{'email_def'}) {
	&save_directive($conf, 'email', [ ]);
	}
else {
	$in{'email'} =~ /^\S+$/ || &error($text{'message_eemail'});
	&save_directive($conf, 'email', [ { 'name' => 'email',
					    'values' => [ $in{'email'} ] } ]);
	}


&flush_file_lines();
&unlock_file($config{'ftpaccess'});
&webmin_log("message", undef, undef, \%in);
&redirect("");

  070701000259cb000081e40000000000000002000000013ac038a7000005e1000000200000000000000000000000000000001b00000003reloc/wuftpd/save_misc.cgi    #!/usr/local/bin/perl
# save_log.cgi
# Save miscellaneous options

require './wuftpd-lib.pl';
&error_setup($text{'misc_err'});
&ReadParse();
&lock_file($config{'ftpaccess'});
$conf = &get_ftpaccess();

# Save ls* commands
foreach $l ('lslong', 'lsshort', 'lsplain') {
	if ($in{$l."_def"}) {
		&save_directive($conf, $l, [ ]);
		}
	elsif ($in{$l} !~ /\S/) {
		&error($text{"misc_e$l"});
		}
	else {
		&save_directive($conf, $l, [ { 'name' => $l,
					       'values' => [ $in{$l} ] } ] );
		}
	}

# Save shutdown command
if ($in{'shutdown_def'}) {
	&save_directive($conf, 'shutdown', [ ]);
	}
elsif ($in{'shutdown'} !~ /\S/) {
	&error($text{'misc_eshutdown'});
	}
else {
	&save_directive($conf, 'shutdown',
			[ { 'name' => 'shutdown',
			    'values' => [ $in{'shutdown'} ] } ] );
	}

# Save nice options
for($i=0; defined($ndelta = $in{"ndelta_$i"}); $i++) {
	next if ($ndelta eq '');
	$ndelta =~ /^[\-0-9]+$/ || &error(&text('misc_edelta', $ndelta));
	push(@nice, { 'name' => 'nice',
		      'values' => [ $ndelta, $in{"nclass_$i"} ] } );
	}
&save_directive($conf, 'nice', \@nice);

# Save defumask options
for($i=0; defined($umask = $in{"umask_$i"}); $i++) {
	next if ($umask eq '');
	$umask =~ /^[0-9]+$/ || &error(&text('misc_eumask', $umask));
	push(@umask, { 'name' => 'defumask',
		       'values' => [ $umask, $in{"uclass_$i"} ] } );
	}
&save_directive($conf, 'defumask', \@umask);

&flush_file_lines();
&unlock_file($config{'ftpaccess'});
&webmin_log("misc", undef, undef, \%in);
&redirect("");
   070701000259cd000081e40000000000000002000000013ac038a700000653000000200000000000000000000000000000001a00000003reloc/wuftpd/save_net.cgi #!/usr/local/bin/perl
# save_net.cgi
# Save networking options

require './wuftpd-lib.pl';
&error_setup($text{'net_err'});
&ReadParse();

&lock_file($config{'ftpaccess'});
$conf = &get_ftpaccess();

# Save TCP windows
for($i=0; defined($tsize = $in{"tsize_$i"}); $i++) {
	next if (!$tsize);
	$tsize =~ /^\d+$/ || &error(&text('net_etsize', $tsize));
	push(@tcpwindow, { 'name' => 'tcpwindow',
		           'values' => [ $tsize, $in{"tclass_$i"} ] } );
	}
&save_directive($conf, 'tcpwindow', \@tcpwindow);

# Save PASV options
for($i=0; defined($aip = $in{"aip_$i"}); $i++) {
	$anet = $in{"anet_$i"}; $acidr = $in{"acidr_$i"};
	next if (!$aip);
	&check_ipaddress($aip) || &error(&text('net_eip', $aip));
	&check_ipaddress($anet) || &error(&text('net_enet', $anet));
	$acidr =~ /^\d+$/ && $acidr <= 32 || &error(&text('net_ecidr', $acidr));
	push(@passive, { 'name' => 'passive',
			 'values' => [ 'address', $aip, "$anet/$acidr" ] } );
	}
for($i=0; defined($pmin = $in{"pmin_$i"}); $i++) {
	$pmax = $in{"pmax_$i"}; $pnet = $in{"pnet_$i"};
	$pcidr = $in{"pcidr_$i"};
	next if ($pmin eq "" || $pmax eq "");
	$pmin =~ /^\d+$/ || &error(&text('net_eport', $pmin));
	$pmax =~ /^\d+$/ || &error(&text('net_eport', $pmax));
	&check_ipaddress($pnet) || &error(&text('net_enet', $pnet));
	$pcidr =~ /^\d+$/ && $pcidr <= 32 || &error(&text('net_ecidr', $pcidr));
	push(@passive,
		{ 'name' => 'passive',
		  'values' => [ 'ports', "$pnet/$pcidr", $pmin, $pmax ] } );
	}
&save_directive($conf, 'passive', \@passive);

&flush_file_lines();
&unlock_file($config{'ftpaccess'});
&webmin_log("net", undef, undef, \%in);
&redirect("");

 070701000259cf000081e40000000000000002000000013ac038a70000056e000000200000000000000000000000000000001b00000003reloc/wuftpd/save_perm.cgi    #!/usr/local/bin/perl
# save_perm.cgi
# Save permission options

require './wuftpd-lib.pl';
&error_setup($text{'perm_err'});
&ReadParse();
&lock_file($config{'ftpaccess'});
$conf = &get_ftpaccess();
@class = &find_value("class", $conf);

# Save chmod, delete, etc .. options
for($i=0; defined($type = $in{"type_$i"}); $i++) {
	next if (!$type);
	local @users = split(/\0/, $in{"users_$i"});
	local @classes = map { "class=$_" } split(/\0/, $in{"classes_$i"});
	@classes = () if (scalar(@classes) == scalar(@class));
	push(@$type, { 'name' => $type,
		       'values' => [ $in{"can_$i"},
				     join(",", @users, @classes) ] } );
	}
@permtypes = ( 'chmod', 'delete', 'overwrite', 'rename', 'umask' );
foreach $t (@permtypes) {
	&save_directive($conf, $t, \@$t);
	}

# Save path-filter options
for($i=0; defined($char = $in{"char_$i"}); $i++) {
	next if (!$char);
	$char =~ /^\S+$/ || &error(&text('perm_echar', $char));
	$in{"types_$i"} || &error($text{'perm_etypes'});
	$in{"types_$i"} =~ s/\0/,/g;
	-r $in{"mesg_$i"} || &error(&text('perm_emesg', $in{"mesg_$i"}));
	push(@filter, { 'name' => 'path-filter',
			'values' => [ $in{"types_$i"}, $in{"mesg_$i"},
				      $char, split(/\s+/, $in{"regexp_$i"})
				    ] } );
	}
&save_directive($conf, 'path-filter', \@filter);

&flush_file_lines();
&unlock_file($config{'ftpaccess'});
&webmin_log("perm", undef, undef, \%in);
&redirect("");

  070701000259d1000081e40000000000000002000000013ac038a7000000e3000000200000000000000000000000000000001700000003reloc/wuftpd/start.cgi    #!/usr/local/bin/perl
# start.cgi
# Start the FTP server process with flags -l -a -S

require './wuftpd-lib.pl';
&system_logged("$config{'ftpd_path'} -l -a -S >/dev/null 2>&1 </dev/null");
&webmin_log("start");
&redirect("");

 070701000259d2000081a40000000000000002000000013ac038a70000088a000000200000000000000000000000000000001b00000003reloc/wuftpd/wuftpd-lib.pl    # wuftpd-lib.pl
# Functions for configuring wuftpd

do '../web-lib.pl';
&init_config();

# get_ftpaccess()
# Returns a list of wuftpd config options
sub get_ftpaccess
{
local @rv;
local $lnum = 0;
open(FTP, $config{'ftpaccess'});
while(<FTP>) {
	s/\r|\n//g;
	s/#.*$//;
	local @v = split(/\s+/, $_);
	if (@v) {
		push(@rv, { 'name' => shift(@v),
			    'values' => \@v,
			    'index' => scalar(@rv),
			    'line' => $lnum });
		}
	$lnum++;
	}
close(FTP);
return \@rv;
}

# find(name, &config)
sub find
{
local (@rv, $c);
foreach $c (@{$_[1]}) {
	push(@rv, $c) if ($c->{'name'} eq $_[0]);
	}
return wantarray ? @rv :
       @rv ? $rv[0] : undef;
}

# find_value(name, &config)
sub find_value
{
local (@rv, $c);
foreach $c (@{$_[1]}) {
	push(@rv, $c->{'values'}) if ($c->{'name'} eq $_[0]);
	}
return wantarray ? @rv :
       @rv ? $rv[0] : undef;
}

# save_directive(&config, name, &new)
sub save_directive
{
local @old = &find($_[1], $_[0]);
local @new = @{$_[2]};
local $lref = &read_file_lines($config{'ftpaccess'});
local ($i, $change);
for($i=0; $i<@old || $i<@new; $i++) {
	if ($i >= @old) {
		if ($change) {
			# Adding a new directive after one of the same
			splice(@$lref, $change->{'line'}+1, 0,
			       &directive_line($new[$i]));
			$new[$i]->{'line'} = $change->{'line'}+1;
			&renumber($_[0], $change->{'line'}, 1);
			push(@{$_[0]}, $new[$i]);
			}
		else {
			# Adding a new directive at the end
			push(@$lref, &directive_line($new[$i]));
			$new[$i]->{'line'} = scalar(@$lref);
			push(@{$_[0]}, $new[$i]);
			}
		$change = $new[$i];
		}
	elsif ($i >= @new) {
		# Removing a directive
		splice(@$lref, $old[$i]->{'line'}, 1);
		splice(@{$_[0]}, &indexof($old[$i], @{$_[0]}), 1);
		&renumber($_[0], $old[$i]->{'line'}, -1);
		}
	else {
		# Changing a directive
		$lref->[$old[$i]->{'line'}] = &directive_line($new[$i]);
		$new[$i]->{'line'} = $old[$i]->{'line'};
		$_[0]->[&indexof($old[$i], @{$_[0]})] = $new[$i];
		$change = $new[$i];
		}
	}
}

# renumber(&config, line, offset)
sub renumber
{
foreach $d (@{$_[0]}) {
	if ($d->{'line'} > $_[1]) { $d->{'line'} += $_[2]; }
	}
}

sub directive_line
{
return join("\t", $_[0]->{'name'}, @{$_[0]->{'values'}});
}

1;

  0707010002cb19000041ed0000000000000001000000043ac03cb500000000000000200000000000000000000000000000000d00000003reloc/xinetd  0707010002cb1a000081a40000000000000002000000013ac038b80000007a000000200000000000000000000000000000002100000003reloc/xinetd/config-debian-linux  xinetd_conf=/etc/xinetd.conf
protocols_file=/etc/protocols
pid_file=/var/run/inetd.pid
start_cmd=/etc/init.d/xinetd start
  0707010002cb1b000081a40000000000000002000000013ac038b800000079000000200000000000000000000000000000001c00000003reloc/xinetd/config-freebsd   xinetd_conf=/etc/xinetd.conf
protocols_file=/etc/protocols
pid_file=/var/run/xinetd.pid
start_cmd=/usr/local/sbin/xinetd
   0707010002cb1c000081a40000000000000002000000013ac038b800000080000000200000000000000000000000000000002100000003reloc/xinetd/config-redhat-linux  xinetd_conf=/etc/xinetd.conf
protocols_file=/etc/protocols
pid_file=/var/run/xinetd.pid
start_cmd=/etc/rc.d/init.d/xinetd start
0707010002cb1d000081a40000000000000002000000013ac038b80000007c000000200000000000000000000000000000001f00000003reloc/xinetd/config-suse-linux    xinetd_conf=/etc/xinetd.conf
protocols_file=/etc/protocols
pid_file=/var/run/xinetd.pid
start_cmd=/sbin/init.d/xinetd start
0707010002cb1e000081a40000000000000002000000013ac038b90000007b000000200000000000000000000000000000002300000003reloc/xinetd/config-suse-linux-7.1    xinetd_conf=/etc/xinetd.conf
protocols_file=/etc/protocols
pid_file=/var/run/xinetd.pid
start_cmd=/etc/init.d/xinetd start
 0707010002cb1f000081a40000000000000002000000013ac038b800000097000000200000000000000000000000000000001900000003reloc/xinetd/config.info  xinetd_conf=Xinetd configuration file,0
protocols_file=Network protocols file,0
pid_file=Path to Xinetd PID file,0
start_cmd=Command to start xinetd,0
 0707010002cb20000081a40000000000000002000000013ac038b8000000b7000000200000000000000000000000000000001c00000003reloc/xinetd/config.info.es   xinetd_conf=Archivo de configuraci髇 de Xinetd,0
protocols_file=Archivo de protocolos de Red,0
pid_file=Trayectoria a archivo PID de Xinetd,0
start_cmd=Comando para arrancar Xinetd,0
 0707010002cb21000081a40000000000000002000000013ac038b8000000af000000200000000000000000000000000000001c00000003reloc/xinetd/config.info.pl   xinetd_conf=Plik konfiguracyjny Xinetd,0
protocols_file=Plik protoko丑w sieciowych,0
pid_file=Scie縦a do pliku z&nbsp;numerem PID Xinetd,0
start_cmd=Polecenie uruchamiaj眂e,0
 0707010002cb22000081a40000000000000002000000013ac038b8000000a5000000200000000000000000000000000000001c00000003reloc/xinetd/config.info.sv   xinetd_conf=Inst鋖lningsfil f鰎 Xinetd,0
protocols_file=N鋞verksprotokollsfil,0
pid_file=S鰇v鋑 till PID-fil f鰎 Xinetd,0
start_cmd=Kommando f鰎 att starta xinetd,0
   0707010002cb23000081a40000000000000002000000013ac038b80000007d000000200000000000000000000000000000001f00000003reloc/xinetd/config.info.zh_CN    xinetd_conf=Xinetd 配置文件,0
protocols_file=网络协议文件,0
pid_file=指向 Xinetd PID 的文件,0
start_cmd=启动 Xinetd 的命令,0
   0707010002cb24000081a40000000000000002000000013ac038b800000eb9000000200000000000000000000000000000001f00000003reloc/xinetd/edit_defaults.cgi    #!/usr/local/bin/perl
# edit_defaults.cgi
# Display a form for editing default options

require './xinetd-lib.pl';
&header($text{'defs_title'}, "");
print "<hr>\n";

foreach $xi (&get_xinetd_config()) {
	if ($xi->{'name'} eq 'defaults') {
		$defs = $xi;
		}
	}
$q = $defs->{'quick'};

print "<form action=save_defaults.cgi>\n";
print "<input type=hidden name=idx value='$defs->{'index'}'>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'defs_header'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td valign=top><b>$text{'serv_from'}</b></td>\n";
printf "<td><input type=radio name=from_def value=1 %s> %s\n",
	$q->{'only_from'} ? '' : 'checked', $text{'serv_from_def'};
printf "<input type=radio name=from_def value=0 %s> %s<br>\n",
	$q->{'only_from'} ? 'checked' : '', $text{'serv_from_sel'};
print "<textarea name=from rows=4 cols=20>",
	join("\n", @{$q->{'only_from'}}),"</textarea></td>\n";

print "<td valign=top><b>$text{'serv_access'}</b></td>\n";
printf "<td><input type=radio name=access_def value=1 %s> %s\n",
	$q->{'no_access'} ? '' : 'checked', $text{'serv_access_def'};
printf "<input type=radio name=access_def value=0 %s> %s<br>\n",
	$q->{'no_access'} ? 'checked' : '', $text{'serv_access_sel'};
print "<textarea name=access rows=4 cols=20>",
	join("\n", @{$q->{'no_access'}}),"</textarea></td> </tr>\n";

print "<tr> <td colspan=4><hr></td> </tr>\n";

$lt = $q->{'log_type'}->[0] eq 'SYSLOG' ? 1 :
      $q->{'log_type'}->[0] eq 'FILE' ? 2 : 0;
print "<tr> <td valign=top><b>$text{'defs_log'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=log_mode value=0 %s> %s<br>\n",
	$lt == 0 ? 'checked' : '', $text{'defs_log_def'};

printf "<input type=radio name=log_mode value=1 %s> %s\n",
	$lt == 1 ? 'checked' : '', $text{'defs_facility'};
%sconfig = &foreign_config("syslog");
&foreign_require("syslog", "syslog-lib.pl");
print "<select name=facility>\n";
foreach $f (split(/\s+/, $sconfig{'facilities'})) {
	printf "<option %s>%s\n",
		$lt == 1 && $q->{'log_type'}->[1] eq $f ? 'selected' : '', $f;
	}
print "</select> $text{'defs_level'}\n";
print "<select name=level>\n";
printf "<option value='' %s>%s\n",
	$lt != 1 || !$q->{'log_type'}->[2] ? 'selected' : '', $text{'default'};
foreach $l (&foreign_call("syslog", "list_priorities")) {
	printf "<option %s>%s\n",
		$lt == 1 && $q->{'log_type'}->[2] eq $l ? 'selected' : '', $l;
	}
print "</select><br>\n";

printf "<input type=radio name=log_mode value=2 %s> %s\n",
	$lt == 2 ? 'checked' : '', $text{'defs_file'};
printf "<input name=file size=35 value='%s'> %s<br>\n",
	$lt == 2 ? $q->{'log_type'}->[1] : '', &file_chooser_button("file");
printf "&nbsp;&nbsp;&nbsp;%s <input name=soft size=6 value='%s'>\n",
	$text{'defs_soft'}, $lt == 2 ? $q->{'log_type'}->[2] : '';
printf "&nbsp;&nbsp;%s <input name=hard size=6 value='%s'></td> </tr>\n",
	$text{'defs_hard'}, $lt == 2 ? $q->{'log_type'}->[3] : '';

print "<tr> <td valign=top><b>$text{'defs_success'}</b></td>\n";
print "<td><select name=success multiple size=5>\n";
foreach $s ('PID', 'HOST', 'USERID', 'EXIT', 'DURATION') {
	printf "<option value=%s %s>%s\n",
		$s, &indexof($s, @{$q->{'log_on_success'}})<0 ? '' : 'selected',
		$text{"defs_success_".lc($s)};
	}
print "</select></td>\n";

print "<td valign=top><b>$text{'defs_failure'}</b></td>\n";
print "<td><select name=failure multiple size=5>\n";
foreach $s ('HOST', 'USERID', 'ATTEMPT', 'RECORD') {
	printf "<option value=%s %s>%s\n",
		$s, &indexof($s, @{$q->{'log_on_failure'}})<0 ? '' : 'selected',
		$text{"defs_failure_".lc($s)};
	}
print "</select></td> </tr>\n";

print "</table></td></tr></table>\n";
print "<input type=submit value='$text{'save'}'></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

   0707010002cb25000081e40000000000000002000000013ac038b800001c09000000200000000000000000000000000000001b00000003reloc/xinetd/edit_serv.cgi    #!/usr/local/bin/perl
# edit_serv.cgi
# Display a form for editing or creating an internet service

require './xinetd-lib.pl';
&ReadParse();
if ($in{'new'}) {
	&header($text{'serv_create'}, "");
	}
else {
	&header($text{'serv_edit'}, "");
	@conf = &get_xinetd_config();
	$xinet = $conf[$in{'idx'}];
	$q = $xinet->{'quick'};
	}
print "<hr>\n";

print "<form action=save_serv.cgi>\n";
print "<input type=hidden name=new value='$in{'new'}'>\n";
print "<input type=hidden name=idx value='$in{'idx'}'>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'serv_header1'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td><b>$text{'serv_id'}</b></td>\n";
printf "<td><input name=id size=10 value='%s'></td>\n",
	$xinet->{'value'};

print "<td><b>$text{'serv_enabled'}</b></td>\n";
printf "<td><input type=radio name=disable value=0 %s> %s\n",
	$q->{'disable'}->[0] eq 'yes' ? '' : 'checked', $text{'yes'};
printf "<input type=radio name=disable value=1 %s> %s</td> </tr>\n",
	$q->{'disable'}->[0] eq 'yes' ? 'checked' : '', $text{'no'};

print "<td><b>$text{'serv_bind'}</b></td>\n";
printf "<td><input type=radio name=bind_def value=1 %s> %s\n",
	$q->{'bind'} ? '' : 'checked', $text{'serv_bind_def'};
printf "<input type=radio name=bind_def value=0 %s>\n",
	$q->{'bind'} ? 'checked' : '';
printf "<input name=bind size=20 value='%s'></td>\n",
	$q->{'bind'}->[0];

print "<td><b>$text{'serv_port'}</b></td>\n";
printf "<td><input type=radio name=port_def value=1 %s> %s\n",
	$q->{'port'} ? '' : 'checked', $text{'serv_port_def'};
printf "<input type=radio name=port_def value=0 %s>\n",
	$q->{'port'} ? 'checked' : '';
printf "<input name=port size=8 value='%s'></td> </tr>\n",
	$q->{'port'}->[0];

print "<tr> <td><b>$text{'serv_sock'}</b></td>\n";
print "<td><select name=sock>\n";
foreach $s ('stream', 'dgram', 'raw', 'seqpacket') {
	printf "<option value=%s %s>%s\n",
		$s, $q->{'socket_type'}->[0] eq $s ? 'selected' : '',
		$text{"sock_$s"};
	}
print "</select></td>\n";

print "<td><b>$text{'serv_proto'}</b></td>\n";
print "<td><select name=proto>\n";
foreach $p ('', &list_protocols()) {
	printf "<option value='%s' %s>%s\n",
		$p, $q->{'protocol'}->[0] eq $p ? 'selected' : '',
		$text{"proto_$p"} ? $text{"proto_$p"} : uc($p);
	}
print "</select></td> </tr>\n";

print "</table></td></tr></table><p>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'serv_header2'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

$prog = &indexof('INTERNAL', @{$q->{'type'}}) >= 0 ? 0 :
	$q->{'redirect'} ? 2 : 1;
print "<tr> <td valign=top><b>$text{'serv_prog'}</b></td> <td colspan=3>\n";
printf "<input type=radio name=prog value=0 %s> %s<br>\n",
	$prog == 0 ? 'checked' : '', $text{'serv_internal'};
printf "<input type=radio name=prog value=1 %s> %s\n",
	$prog == 1 ? 'checked' : '', $text{'serv_server'};
printf "<input name=server size=50 value='%s'><br>\n",
	join(" ", $q->{'server'}->[0], @{$q->{'server_args'}});
printf "<input type=radio name=prog value=2 %s> %s\n",
	$prog == 2 ? 'checked' : '', $text{'serv_redirect'};
printf "<input name=rhost size=20 value='%s'> %s\n",
	$prog == 2 ? $q->{'redirect'}->[0] : "", $text{'serv_rport'};
printf "<input name=rport size=6 value='%s'></td> </tr>\n",
	$prog == 2 ? $q->{'redirect'}->[1] : "";

print "<tr> <td><b>$text{'serv_user'}</b></td>\n";
printf "<td><input name=user size=10 value='%s'> %s</td>\n",
	$q->{'user'}->[0], &user_chooser_button('user');

print "<td><b>$text{'serv_group'}</b></td>\n";
printf "<td><input type=radio name=group_def value=1 %s> %s\n",
	$q->{'group'} ? '' : 'checked', $text{'serv_group_def'};
printf "<input type=radio name=group_def value=0 %s>\n",
	$q->{'group'} ? 'checked' : '';
printf "<input name=group size=10 value='%s'> %s</td> </tr>\n",
	$q->{'group'}->[0], &group_chooser_button('group');

print "<tr> <td><b>$text{'serv_wait'}</b></td>\n";
printf "<td><input type=radio name=wait value=1 %s> %s\n",
	$q->{'wait'}->[0] eq 'yes' ? 'checked' : '', $text{'yes'};
printf "<input type=radio name=wait value=0 %s> %s</td>\n",
	$q->{'wait'}->[0] eq 'yes' ? '' : 'checked', $text{'no'};

print "<td><b>$text{'serv_inst'}</b></td>\n";
printf "<td><input type=radio name=inst_def value=1 %s> %s\n",
	$q->{'instances'} ? '' : 'checked', $text{'serv_inst_def'};
printf "<input type=radio name=inst_def value=0 %s>\n",
	$q->{'instances'} ? 'checked' : '';
printf "<input name=inst size=5 value='%s'></td> </tr>\n",
	$q->{'instances'}->[0];

print "<tr> <td><b>$text{'serv_nice'}</b></td>\n";
printf "<td><input type=radio name=nice_def value=1 %s> %s\n",
	$q->{'nice'} ? '' : 'checked', $text{'default'};
printf "<input type=radio name=nice_def value=0 %s>\n",
	$q->{'nice'} ? 'checked' : '';
printf "<input name=nice size=5 value='%s'></td>\n",
	$q->{'nice'}->[0];

print "<td><b>$text{'serv_cps0'}</b></td>\n";
printf "<td><input type=radio name=cps_def value=1 %s> %s\n",
	$q->{'cps'} ? '' : 'checked', $text{'serv_cps_def'};
printf "<input type=radio name=cps_def value=0 %s>\n",
	$q->{'cps'} ? 'checked' : '';
printf "<input name=cps0 size=5 value='%s'> %s</td> </tr>\n",
	$q->{'cps'}->[0];

print "<tr> <td colspan=2></td>\n";
print "<td><b>$text{'serv_cps1'}</b></td>\n";
printf "<td><input name=cps1 size=5 value='%s'> $text{'serv_sec'}</td> </tr>\n",
	$q->{'cps'}->[1];

print "</table></td></tr></table><p>\n";
print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'serv_header3'}</b></td> </tr>\n";
print "<tr $cb> <td><table width=100%>\n";

print "<tr> <td valign=top><b>$text{'serv_from'}</b></td>\n";
printf "<td><input type=radio name=from_def value=1 %s> %s\n",
	$q->{'only_from'} ? '' : 'checked', $text{'serv_from_def'};
printf "<input type=radio name=from_def value=0 %s> %s<br>\n",
	$q->{'only_from'} ? 'checked' : '', $text{'serv_from_sel'};
print "<textarea name=from rows=4 cols=20>",
	join("\n", @{$q->{'only_from'}}),"</textarea></td>\n";

print "<td valign=top><b>$text{'serv_access'}</b></td>\n";
printf "<td><input type=radio name=access_def value=1 %s> %s\n",
	$q->{'no_access'} ? '' : 'checked', $text{'serv_access_def'};
printf "<input type=radio name=access_def value=0 %s> %s<br>\n",
	$q->{'no_access'} ? 'checked' : '', $text{'serv_access_sel'};
print "<textarea name=access rows=4 cols=20>",
	join("\n", @{$q->{'no_access'}}),"</textarea></td> </tr>\n";

print "<tr> <td valign=top><b>$text{'serv_times'}</b></td>\n";
printf "<td colspan=3><input type=radio name=times_def value=1 %s> %s\n",
	$q->{'access_times'} ? '' : 'checked', $text{'serv_times_def'};
printf "<input type=radio name=times_def value=0 %s>\n",
	$q->{'access_times'} ? 'checked' : '';
printf "<input name=times size=40 value='%s'></td> </tr>\n",
	join(" ", @{$q->{'access_times'}});

print "</table></td></tr></table>\n";
print "<table width=100%><tr>\n";
if ($in{'new'}) {
	print "<td><input type=submit value='$text{'create'}'></td>\n";
	}
else {
	print "<td><input type=submit value='$text{'save'}'></td>\n";
	print "<td align=right><input type=submit name=delete ",
	      "value='$text{'delete'}'></td>\n";
	}
print "</tr></table></form>\n";

print "<hr>\n";
&footer("", $text{'index_return'});

   0707010002fc11000041ed0000000000000001000000023ac03cb400000000000000200000000000000000000000000000001400000003reloc/xinetd/images   0707010002fc12000081a40000000000000002000000013ac038b800000123000000200000000000000000000000000000001d00000003reloc/xinetd/images/icon.gif  GIF87a0 0   倘   忍鴺槝`d`      ,    0 0  0噬P柰{嘩=^Y俠殭瑔︶跉/l沙W弁l繝&,v<EFh4
@2箓6壩钄穕^嘵鹬2壭喫q*抂鏚s好~?u|Jr.亗myp"崕1拸攪|晿杺G櫄7漿<挜ΕЙ6ó湣嵁摰饭簽v北悓虐1墒骋 亮)刭谯茌抻G鄾怃堢鑄勖淋辙蝮趱鲛黧 ) 癭纔*\劝! ; 0707010002cb26000081e40000000000000002000000013ac038b800000b54000000200000000000000000000000000000001700000003reloc/xinetd/index.cgi    #!/usr/local/bin/perl
# index.cgi
# Display all xinetd services

require './xinetd-lib.pl';
&header($text{'index_title'}, "", undef, 1, 1);
print "<hr>\n";

# Check for config file
if (!-r $config{'xinetd_conf'}) {
	print "<p>",&text('index_econf', "<tt>$config{'xinetd_conf'}</tt>",
			  "/config.cgi?$module_name"),"<p><hr>\n";
	&footer("/", $text{'index'});
	exit;
	}

print "<table border width=100%>\n";
print "<tr $tb> <td><b>$text{'index_name'}</b></td> ",
      "<td><b>$text{'index_type'}</b></td> ",
      "<td><b>$text{'index_port'}</b></td> ",
      "<td><b>$text{'index_proto'}</b></td> ",
      "<td><b>$text{'index_user'}</b></td> ",
      "<td><b>$text{'index_server'}</b></td> ",
      "<td><b>$text{'index_enabled'}</b></td> </tr>\n";
foreach $x (&get_xinetd_config()) {
	next if ($x->{'name'} ne 'service');
	local $q = $x->{'quick'};
	local @s;
	if ($q->{'protocol'}) {
		@s = getservbyname($x->{'value'}, $q->{'protocol'}->[0]);
		if (!@s) {
			@s = ( $x->{'name'}, undef, $q->{'port'}->[0],
			       $q->{'protocol'}->[0] );
			}
		}
	else {
		foreach $p (&list_protocols()) {
			@s = getservbyname($x->{'value'}, $p);
			last if (@s);
			}
		}
	print "<tr $cb>\n";
	print "<td><a href='edit_serv.cgi?idx=$x->{'index'}'>",
	      "$x->{'value'}</a></td>\n";
	print "<td>",&indexof('RPC', @{$q->{'type'}}) < 0 ?
		     $text{'index_inet'} : $text{'index_rpc'},"</td>\n";
	print "<td>$s[2]</td>\n";
	print "<td>",uc($s[3]),"</td>\n";
	print "<td>$q->{'user'}->[0]</td>\n";
	print "<td>",&indexof('INTERNAL', @{$q->{'type'}}) >= 0 ?
		     $text{'index_internal'} : $q->{'redirect'} ?
		     &text('index_redirect', "<tt>$q->{'redirect'}->[0]</tt>") :
		     $q->{'server'}->[0],"</td>\n";
	print "<td>",$q->{'disable'}->[0] eq 'yes' ?
	      "<font color=#ff0000>$text{'no'}</font>" : $text{'yes'},"</td>\n";
	print "</tr>\n";
	}
print "</table>\n";
print "<a href='edit_serv.cgi?new=1'>$text{'index_add_inet'}</a>&nbsp;&nbsp;\n";
print "<a href='edit_rpc.cgi?new=1'>$text{'index_add_rpc'}</a><p>\n";

print "<hr>\n";
print "<table>\n";
print "<form action=edit_defaults.cgi>\n";
print "<tr> <td><input type=submit value=\"$text{'index_defaults'}\"></td>\n";
print "<td>$text{'index_defaultsmsg'} \n";
print "</td> </tr>\n";
print "</form>\n";

if (open(PID, $config{'pid_file'})) {
	chop($pid = <PID>);
	close(PID);
	}
if ($pid && kill(0, $pid)) {
	print "<form action=restart.cgi>\n";
	print "<input type=hidden name=pid value=$pid>\n";
	print "<tr> <td><input type=submit value=\"$text{'index_apply'}\"></td>\n";
	print "<td>$text{'index_applymsg'} \n";
	print "</td></tr>\n";
	print "</form>\n";
	}
else {
	print "<form action=start.cgi>\n";
	print "<tr> <td><input type=submit value=\"$text{'index_start'}\"></td>\n";
	print "<td>$text{'index_startmsg'} \n";
	print "</td> </tr>\n";
	print "</form>\n";
	}
print "</table>\n";

print "<hr>\n";
&footer("/", $text{'index'});

07070100031062000041ed0000000000000001000000023ac03cb500000000000000200000000000000000000000000000001200000003reloc/xinetd/lang 07070100031063000081a40000000000000002000000013ac038b80000103a000000200000000000000000000000000000001500000003reloc/xinetd/lang/en  index_title=Extended Internet Services
index_name=Service name
index_type=Type
index_port=Port / number
index_rpc=RPC
index_inet=Internet
index_proto=Protocol
index_user=User
index_server=Server program
index_redirect=Redirect to $1
index_enabled=Enabled?
index_internal=Internal to Xinetd
index_add_inet=Create a new internet service
index_add_rpc=Create a new RPC service
index_return=service list
index_defaults=Edit Defaults
index_defaultsmsg=Click this button to edit default options that apply to all internet and RPC services
index_apply=Apply Changes
index_applymsg=Click this button to apply the current configuration by sending a SIGHUP signal to the running <tt>xinetd</tt> process
index_start=Start Xinetd
index_startmsg=Click this button to start the Xinetd server with the current configuration
index_econf=The Xinetd configuration file $1 does not exist. Maybe it is not installed, or your <a href='$2'>module configuration</a> is incorrect.

serv_create=Create Internet Service
serv_edit=Edit Internet Service
serv_header1=Service network options
serv_header2=Service program options
serv_header3=Service access control
serv_id=Service name
serv_port=Port number
serv_port_def=Standard
serv_sock=Socket type
serv_proto=Protocol
serv_enabled=Service enabled?
serv_bind=Bind to address
serv_bind_def=All
serv_user=Run as user
serv_group=Run as group
serv_group_def=From user
serv_prog=Service handled by
serv_internal=Internal to Xinetd
serv_server=Server program
serv_redirect=Redirect to host
serv_rport=port
serv_wait=Wait until complete?
serv_inst=Max concurrent servers
serv_inst_def=Unlimited
serv_nice=Nice level for server
serv_cps0=Maximum connections per second
serv_cps_def=Unlimited
serv_cps1=Delay if maximum is reached
serv_sec=seconds
serv_from=Allow access from
serv_from_def=All hosts
serv_from_sel=Only listed hosts..
serv_access=Deny access from
serv_access_def=No hosts
serv_access_sel=Only listed hosts..
serv_times=Allow access at times
serv_times_def=Any time
serv_err=Failed to save service
serv_eid=Missing or invalid service name
serv_ebind=Missing or invalid address to bind to
serv_eport=Missing or invalid port number
serv_einst=Missing or invalid number of concurrent servers
serv_euser=You must enter a user
serv_egroup=You must enter a group
serv_estd=There is no standard port number for service $1
serv_eproto=You must select a protocol for this service
serv_eserver=Missing or invalid server program
serv_erhost=Missing or invalid redirect host
serv_erport=Missing or invalid redirect port
serv_enice=Missing or invalid nice level
serv_ecps0=Missing or invalid number of connections per second
serv_ecps1=Missing or invalid delay
serv_etimes=Access times must be in the format HH:MM-HH:MM

sock_stream=Stream
sock_dgram=Datagram
sock_raw=Raw
sock_seqpacket=Sequential datagram

proto_=Default
proto_ip=IP (Internet Protocol)
proto_tcp=TCP (Transmission Control Protocol)
proto_udp=UDP (User Datagram Protocol)

restart_err=Failed to apply changes
restart_ekill=Failed to send HUP signal to PID $1 : $2

start_err=Failed to start xinetd
start_estart=$1 failed : $2

defs_title=Default Options
defs_header=Default options for services
defs_log=Xinetd logging mode
defs_log_def=Disable logging
defs_facility=Log to syslog facility
defs_level=at level
defs_file=Log to file
defs_soft=Soft file limit
defs_hard=Hard file limit
defs_success=On successful connection log
defs_success_pid=Server process ID
defs_success_host=Remote host
defs_success_userid=Remote ident user
defs_success_exit=Server exit status
defs_success_duration=Session duration
defs_failure=On failed connection log
defs_failure_host=Remote host
defs_failure_userid=Remote ident user
defs_failure_attempt=Connection attempt
defs_failure_record=Remote information
defs_err=Failed to save default options
defs_efile=Missing or invalid log filename
defs_esoft=Missing or invalid soft limit
defs_ehard=Missing or invalid hard limit

log_create_serv=Created $2 service $1
log_modify_serv=Modified $2 service $1
log_delete_serv=Deleted $2 service $1
log_start=Started Xinetd server
log_apply=Applied changes
log_defaults=Changed default options

  07070100031064000081a40000000000000002000000013ac038b8000012d2000000200000000000000000000000000000001500000003reloc/xinetd/lang/es  index_title=Servicios Extendidos de Internet
index_name=Nombre de Servicio
index_type=Tipo
index_port=Puerto / n鷐ero
index_rpc=RPC
index_inet=Internet
index_proto=Protocolo
index_user=Usuario
index_server=Programa servidor
index_redirect=Redireccionar a $1
index_enabled=緼ctivado?
index_internal=Interno a Xinetd
index_add_inet=Crear un nuevo servicio de internet
index_add_rpc=Crear un nuevo servicio RPC
index_return=lista de servicios
index_defaults=Editar por Defecto
index_defaultsmsg=Haz click en este bot髇 para editar las opciones por defecto que se aplican a todos los servicios de internet y de RPC
index_apply=Aplicar los Cambios
index_applymsg=Haz click en este bot髇 para aplicar la configuraci髇 en curso mediante el env韔 de una se馻l SIGHUP al proceso <tt>xinetd</tt> en ejecuci髇
index_start=Arrancar Xinetd
index_startmsg=Hac click en este bot髇 para arrancar el servidor Xinetd con la configuraci髇 en curso
index_econf=El archivo de configuraci髇 de Xinetd $1 no existe. Quiz醩 no est instalado o tu <a href='$2'>configuraci髇 del m骴ulo</a> es incorrecta.

serv_create=Crear Servicio de Internet
serv_edit=Editar Servicio de Internet
serv_header1=Opciones de red de servicio
serv_header2=Opciones de programa de servicio
serv_header3=Control de acceso a servicio
serv_id=Nombre de servicio
serv_port=N鷐ero de puerto
serv_port_def=Est醤dar
serv_sock=Tipo de Socket
serv_proto=Protocolo
serv_enabled=縎ervicio activado?
serv_bind=Cambiar a direcci髇
serv_bind_def=Todas
serv_user=Ejecutar como usuario
serv_group=Ejecutar como grupo
serv_group_def=Desde usuario
serv_prog=Servicio manejado por
serv_internal=Interno a Xinetd
serv_server=Programa de servidor
serv_redirect=Redireccionar a m醧uina
serv_rport=puerto
serv_wait=縀spero hasta que se complete?
serv_inst=M醲.n鷐. de servidores concurrentes
serv_inst_def=Ilimitado
serv_nice=Nivel de prioridad (Nice) para servidor
serv_cps0=M醲imas conexiones por segundo
serv_cps_def=Ilimitadas
serv_cps1=Retardo si se alcanza el m醲imo
serv_sec=segundos
serv_from=Permitir acceso desde
serv_from_def=Todas las m醧uinas
serv_from_sel=S髄os las m醧uinas listadas...
serv_access=Denegar acceso desde
serv_access_def=Todas las m醧uinas
serv_access_sel=S髄o las m醧uinas listadas...
serv_times=Permitir acceso en per韔dos
serv_times_def=Cualquier hora
serv_err=No pude salvar servicio
serv_eid=Nombre de servicio inv醠ido o sin poner
serv_ebind=Direcci髇 a cambiar a inv醠ida o sin poner
serv_eport=N鷐ero de puerto inv醠ido o sin poner
serv_einst=N鷐ero de servidores concurrentes inv醠ido o sin poner
serv_euser=Debes de digitar un usuario
serv_egroup=Debes de digitar un grupo
serv_estd=No hay un n鷐ero de puerto est醤dar para el servicio $1
serv_eproto=Debes de seleccionar un protocolo para este servicio
serv_eserver=Programa servidor inv醠ido o sin poner
serv_erhost=M醧uina redirigida inv醠ida o sin poner
serv_erport=Puerto redirigido inv醠ido o sin poner
serv_enice=Nivel de prioridad (Nice) inv醠ido o sin poner
serv_ecps0=N鷐ero de conexiones por segundo inv醠ido o sin poner
serv_ecps1=Retardo inv醠ido o sin poner
serv_etimes=Los tiempos de acceso deben de tener el formato HH:MM-HH:MM

sock_stream=Flujo
sock_dgram=Datagrama
sock_raw=Sin b鷉er
sock_seqpacket=Datagrama secuencial

proto_=Por defecto
proto_ip=IP (Protocolo de Internet)
proto_tcp=TCP (Protocolo de Control de Transmisi髇)
proto_udp=UDP (Protocolo de Datagrama de Usuario)

restart_err=No pude aplicar los cambios
restart_ekill=No pude enviar la se馻l HUP al PID $1 : $2

start_err=No pude arrancar xinetd
start_estart=$1 fall: $2

defs_title=Opciones por Defecto
defs_header=Opciones por defecto para los servicios
defs_log=Modo de historial de Xinetd
defs_log_def=Desactivar historial
defs_facility=LLevar historial con la facilidad syslog
defs_level=en nivel
defs_file=Historial en archivo
defs_soft=L韒ite de archivo por soft
defs_hard=L韒ite de archivo por hard
defs_success=Historial de conexi髇 con 閤ito
defs_success_pid=ID de proceso servidor
defs_success_host=M醧uina remota
defs_success_userid=Identificaci髇 de usuario remoto
defs_success_exit=Estado de salida de servidor
defs_success_duration=Duraci髇 de sesi髇
defs_failure=Historial de fallos de conexi髇
defs_failure_host=M醧uina remota
defs_failure_userid=Identificaci髇 de usuario remoto
defs_failure_attempt=Intento de conexi髇
defs_failure_record=Informaci髇 remota
defs_err=No pude salvar opciones por defecto
defs_efile=Nombre de archivo de historial inv醠ido o sin poner
defs_esoft=L韒ite de soft inv醠ido o sin poner
defs_ehard=L韒ite de hard inv醠ido o sin poner

log_create_serv=Creado $2 servicio $1
log_modify_serv=Modificado $2 servicio $1
log_delete_serv=Borrado $2 servicio $1
log_start=Arrancado servidor Xinetd
log_apply=Aplicados los cambios
log_defaults=Cambiadas opciones por defecto

  07070100031065000081a40000000000000002000000013ac038b80000126f000000200000000000000000000000000000001500000003reloc/xinetd/lang/pl  index_title=Rozszerzone us硊gi internetowe
index_name=Nazwa us硊gi
index_type=Rodzaj
index_port=Numer portu
index_rpc=RPC
index_inet=internetowa
index_proto=Protok蟪
index_user=U縴tkownik
index_server=Program serwera
index_redirect=Przekierowa do $1
index_enabled=W潮czona?
index_internal=wewn阾rzna Xinetd
index_add_inet=Utw髍z now us硊g internetow
index_add_rpc=Utw髍z now us硊g RPC
index_return=listy us硊g
index_defaults=Zmie ustawienia domy秎ne
index_defaultsmsg=Naci秐ij ten przycisk, aby zmieni domy秎ne ustawienia, kt髍e dotycz wszystkich us硊g internetowych oraz RPC.
index_apply=Zastosuj zmiany
index_applymsg=Naci秐ij ten przycisk, aby zastosowa bie勘c konfiguracj poprzez wys砤nie sygna硊 SIGHUP do dzia砤j眂ego procesu <tt>xinetd</tt>.
index_start=Uruchom Xinetd
index_startmsg=Naci秐ij ten przycisk, aby uruchomi serwer Xinetd z&nbsp;bie勘c konfiguracj.
index_econf=Plik konfiguracyjny Xinetd $1 nie istnieje. By mo縠 Xinetd nie jest zainstalowany lub Twoja <a href='$2'>konfiguracja modu硊</a> jest nieprawid硂wa.

serv_create=Utw髍z us硊g internetow
serv_edit=Zmie us硊g internetow
serv_header1=Ustawienia sieciowe us硊g
serv_header2=Ustawienia serwer體 us硊g
serv_header3=Kontrola dost阷u do us硊g
serv_id=Nazwa us硊gi
serv_port=Numer portu
serv_port_def=Standardowy
serv_sock=Rodzaj gniazda
serv_proto=Protok蟪
serv_enabled=Us硊ga w潮czona?
serv_bind=Nas硊chiwa na adresach
serv_bind_def=Wszystkich
serv_user=Uruchom jako u縴tkownik
serv_group=Uruchom jako grupa
serv_group_def=Grupa u縴tkownika
serv_prog=Us硊ga obs硊giwana przez
serv_internal=Wewn阾rzna Xinetd
serv_server=Program serwera
serv_redirect=Przekierowa do hosta
serv_rport=na port
serv_wait=Czeka na zako馽zenie
serv_inst=Maks. liczba konkurencyjnych serwer體
serv_inst_def=Bez ogranicze
serv_nice=Poziom <tt>nice</tt> dla serwera
serv_cps0=Maksymalna liczba po潮cze na sekund
serv_cps_def=Bez ogranicze
serv_cps1=Op蠹nienie przy osi眊ni阠iu maksimum
serv_sec=sekund
serv_from=Pozw髄 na dost阷&nbsp;z
serv_from_def=Wszystkich host體
serv_from_sel=Tylko wymienionych..
serv_access=Zabro dost阷u&nbsp;z
serv_access_def=痑dnego hosta
serv_access_sel=Tylko wymienionych..
serv_times=Pozw髄 na dost阷 w&nbsp;godzinach
serv_times_def=Dowolnych
serv_err=Nie uda硂 si zachowa us硊gi
serv_eid=Brakuj眂a lub niepoprawna nazwa us硊gi.
serv_ebind=Missing or invalid address to bind to
serv_eport=Brakuj眂y lub niepoprawny numer portu
serv_einst=Brakuj眂a lub niepoprawna liczba konkurencyjnych serwer體
serv_euser=Musisz poda u縴tkownika
serv_egroup=Musisz poda grup
serv_estd=Brak standardowego portu dla us硊gi $1
serv_eproto=Musisz okre秎i protok蟪 dla tej us硊gi
serv_eserver=Brakuj眂y lub niepoprawny program serwera
serv_erhost=Brakuj眂y lub niepoprawny host przekierowania
serv_erport=Brakuj眂y lub niepoprawny port przekierowania
serv_enice=Brakuj眂y lub niepoprawny poziom <tt>nice</tt>
serv_ecps0=Brakuj眂a lub niepoprawna liczba po潮cze na sekund
serv_ecps1=Brakuj眂e lub niepoprawne op蠹nienie
serv_etimes=Czas dost阷u musi by podany w&nbsp;postaci HH:MM-HH:MM

sock_stream=Stream
sock_dgram=Datagram
sock_raw=Raw
sock_seqpacket=Sequential datagram

proto_=Domy秎ny
proto_ip=IP (Internet Protocol)
proto_tcp=TCP (Transmission Control Protocol)
proto_udp=UDP (User Datagram Protocol)

restart_err=Nie uda硂 si zastosowa zmian
restart_ekill=Nie uda硂 si wys砤 sygna硊 HUP do procesu $1&nbsp;: $2

start_err=Nie uda硂 si uruchomi <tt>xinetd</tt>
start_estart=NIe uda硂 si $1&nbsp;: $2

defs_title=Ustawienia domy秎ne
defs_header=Ustawienia domy秎ne dla us硊g
defs_log=Tryb logowania Xinetd
defs_log_def=Wy潮czy logowanie
defs_facility=Loguj na kanale sysloga
defs_level=na poziomie
defs_file=Logowa do pliku
defs_soft=Mi阫kie ograniczenie dla pliku
defs_hard=Twarde ograniczenie dla pliku
defs_success=Logowa przy udanych po潮czeniach
defs_success_pid=Numer PID procesu serwera
defs_success_host=Host zdalny
defs_success_userid=Zdalnego u縴tkownika wg identa
defs_success_exit=Kod powrotu serwera
defs_success_duration=Czas trwania sesji
defs_failure=Logowa przy nieudanych po潮czeniach
defs_failure_host=Host zdalny
defs_failure_userid=Zdalnego u縴tkownika wg identa
defs_failure_attempt=Pr骲 po潮czenia
defs_failure_record=Informacje zdalne
defs_err=Nie uda硂 si zachowa domy秎nych ustawie
defs_efile=Brakuj眂a lub niepoprawna nazwa pliku logu
defs_esoft=Brakuj眂e lub niepoprawne ograniczenie mi阫kie
defs_ehard=Brakuj眂e lub niepoprawne ograniczenie twarde

log_create_serv=Utworzono us硊g $2 $1
log_modify_serv=Zmieniono us硊g $2 $1
log_delete_serv=Usuni阾o us硊g $2 $1
log_start=Uruchomiono serwer Xinetd
log_apply=Zastosowano zmiany
log_defaults=Zmieniono ustawienia domy秎ne

 07070100031066000081a40000000000000002000000013ac038b8000011e7000000200000000000000000000000000000001500000003reloc/xinetd/lang/sv  index_title=Ut鰇ade Internettj鋘ster
index_name=Tj鋘stenamn
index_type=Typ
index_port=Port/nummer
index_rpc=RPC
index_inet=Internet
index_proto=Protokoll
index_user=Anv鋘dare
index_server=Serverprogram
index_redirect=Peka vidare till $1
index_enabled=Aktiv?
index_internal=Internt till Xinetd
index_add_inet=L鋑g till en Internettj鋘st
index_add_rpc=L鋑g till en RPC-tj鋘st
index_return=tj鋘stelista
index_defaults=膎dra standardinst鋖lningar
index_defaultsmsg=Tryck p denna knapp f鰎 att 鋘dra standardinst鋖lningarna som g鋖ler alla Internet- och RPC-tj鋘ster.
index_apply=Ta i drift
index_applymsg=Tryck p denna knapp f鰎 att ta dessa inst鋖lningar i drift genom att skicka en SIGHUP-signal till den aktiva <tt>xinetd</tt>-processen.
index_start=Starta Xinetd
index_startmsg=Tryck p denna knapp f鰎 att starta Xinetd-servern med dessa inst鋖lningar.
index_econf=Inst鋖lningsfilen $1 f鰎 Xinetd finns inte. Den kanske inte har installerats, eller ocks 鋜 dina <a href='$2'>modulinst鋖lningar</a> felaktiga.

serv_create=L鋑g till Internettj鋘st
serv_edit=膎dra Internettj鋘st
serv_header1=N鋞verksinst鋖lningar f鰎 tj鋘sten
serv_header2=Programinst鋖lningar f鰎 tj鋘sten
serv_header3=舤komstkontroll f鰎 tj鋘sten
serv_id=Tj鋘stenamn
serv_port=Portnummer
serv_port_def=Standard
serv_sock=Sockettyp
serv_proto=Protokoll
serv_enabled=Tj鋘sten aktiv?
serv_bind=Bind till adress
serv_bind_def=Alla
serv_user=K鰎 som anv鋘dare
serv_group=K鰎 som grupp
serv_group_def=Fr錸 anv鋘dare
serv_prog=Tj鋘sten ska sk鰐as av
serv_internal=Internt till Xinetd
serv_server=Serverprogram
serv_redirect=Skicka vidare till dator
serv_rport=port
serv_wait=V鋘ta tills det 鋜 f鋜digt?
serv_inst=Maximalt antal samtidiga servrar
serv_inst_def=Obegr鋘sat
serv_nice=Nice-niv f鰎 server
serv_cps0=Maximalt antal uppkopplingar per sekund
serv_cps_def=Obegr鋘sat
serv_cps1=F鰎dr鰆 om maximum uppn錿ts
serv_sec=sekunder
serv_from=Till錿 錿komst fr錸
serv_from_def=Alla datorer
serv_from_sel=Endast angivna datorer ...
serv_access=Neka 錿komst fr錸
serv_access_def=Inga datorer
serv_access_sel=Endast angivna datorer ...
serv_times=Till錿 錿komst vid f鰈jande tidpunkter
serv_times_def=Alltid
serv_err=Det gick inte att spara tj鋘sten
serv_eid=Tj鋘stenamn saknas eller 鋜 felaktig
serv_ebind=Adress att binda till saknas eller 鋜 felaktig
serv_eport=Portnummer saknas eller 鋜 felaktigt
serv_einst=Antal samtidiga servrar saknas eller 鋜 felaktigt
serv_euser=Du m錽te ange en anv鋘dare
serv_egroup=Du m錽te ange en grupp
serv_estd=Det finns inget standardportnummer f鰎 tj鋘sten $1
serv_eproto=Du m錽te ange ett protokoll f鰎 denna tj鋘st
serv_eserver=Serverprogram saknas eller 鋜 felaktigt
serv_erhost=Vidareskickningsdator saknas eller 鋜 felaktig
serv_erport=Vidareskickningsport saknas eller 鋜 felaktig
serv_enice=Nice-niv saknas eller 鋜 felaktig
serv_ecps0=Antal uppkopplingar per sekund saknas eller 鋜 felaktigt
serv_ecps1=F鰎dr鰆ningstid saknas eller 鋜 felaktig
serv_etimes=舤komsttider m錽te anges p formatet TT:MM-TT:MM

sock_stream=Str鰉
sock_dgram=Datagram
sock_raw=R錿t
sock_seqpacket=Sekventiellt datagram

proto_=Standard
proto_ip=IP (Internet Protocol)
proto_tcp=TCP (Transmission Control Protocol)
proto_udp=UDP (User Datagram Protocol)

restart_err=Det gick inte att ta i drift
restart_ekill=Det gick inte att skicka HUP-signal till PID $1: $2

start_err=Det gick inte att starta xinetd
start_estart=$1 gick inte: $2

defs_title=Standardinst鋖lningar
defs_header=Standardinst鋖lningar f鰎 tj鋘ster
defs_log=Loggningsmod f鰎 Xinetd
defs_log_def=Sl av loggning
defs_facility=Logga till syslog-maskin
defs_level=vid niv
defs_file=Logga till fil
defs_soft=Mjuk filbegr鋘sning
defs_hard=H錼d filbegr鋘sning
defs_success=Logga vid lyckad uppkoppling
defs_success_pid=Serverprocess-ID
defs_success_host=Uppkopplad dator
defs_success_userid=Uppkopplad anv鋘dare
defs_success_exit=Server- exit-status
defs_success_duration=Sessionsl鋘gd
defs_failure=Logga vid misslyckad uppkoppling
defs_failure_host=Uppkopplande dator
defs_failure_userid=Uppkopplande anv鋘dare
defs_failure_attempt=Uppkopplingsf鰎s鰇
defs_failure_record=Information om klienten
defs_err=Det gick inte att spara inst鋖lningarna
defs_efile=Loggfilnamn saknas eller 鋜 felaktigt
defs_esoft=Mjuk begr鋘sning saknas eller 鋜 felaktig
defs_ehard=H錼d begr鋘sning saknas eller 鋜 felaktig

log_create_serv=Lade till $2 tj鋘sten $1
log_modify_serv=Modifierade $2 tj鋘sten $1
log_delete_serv=Tog bort $2 tj鋘sten $1
log_start=Startade Xinetd-servern
log_apply=Tog 鋘dringarna i drift
log_defaults=膎drade standardinst鋖lningarna

 070701000310a5000081a40000000000000002000000013ac038b800000d09000000200000000000000000000000000000001800000003reloc/xinetd/lang/zh_CN   index_title=扩展的 Internet 服务
index_name=服务名称
index_type=类型
index_port=端口/号码
index_rpc=RPC
index_inet=Internet
index_proto=协议
index_user=用户
index_server=服务器程序
index_redirect=重定向到$1
index_enabled=激活吗?
index_internal=内部指定到 Xinetd 
index_add_inet=创建一个新的 Internet 服务
index_add_rpc=创建一个新的 RPC 服务
index_return=服务列表
index_defaults=编辑缺省值
index_defaultsmsg=点击此按钮编辑提供给所有 Internet 和 RPC 服务的缺省选项 
index_apply=应用改变Apply Changes
index_applymsg=点击此按钮来通过发送一个SIGHUP信号,应用当前配置去运行<tt>xinetd</tt>程序
index_start=启动 Xinetd
index_startmsg=点击此按钮来利用当前配置启动 Xinetd 服务器
index_econf=Xinetd 配置文件 $1 不存在.可能您没有安装,或者您的<a href='$2'>模块</a>不正确.

serv_create=创建 Internet 服务器
serv_edit=编辑 Internet 服务器
serv_header1=服务网络选项
serv_header2=服务程序选项
serv_header3=服务访问控制
serv_id=服务名称
serv_port=端口号
serv_port_def=标准
serv_sock=Socket 类型
serv_proto=协议
serv_enabled=激活服务吗?
serv_bind=捆绑地址
serv_bind_def=所有
serv_user=作为用户运行
serv_group=作为用户组运行
serv_group_def=来自用户
serv_prog=服务控制程序
serv_internal=内连到 Xinetd
serv_server=服务器程序
serv_redirect=重定向到客户机
serv_rport=端口
serv_wait=等到完成?
serv_inst=同步的最大服务器个数
serv_inst_def=不限
serv_nice=服务器的优良程度
serv_cps0=每秒钟的最大联接数
serv_cps_def=不限
serv_cps1=达到最大时的延迟
serv_sec=秒
serv_from=允许的访问
serv_from_def=所有客户
serv_from_sel=只有列出的客户..
serv_access=禁止的访问
serv_access_def=没有客户机
serv_access_sel=只有列出的客户
serv_times=允许经常访问
serv_times_def=随时
serv_err=存储服务失败
serv_eid=丢失或无效的服务名
serv_ebind=丢失或无效的捆绑地址
serv_eport=丢失或无效的端口号
serv_einst=丢失或无效的同步服务器个数
serv_euser=您必须输入一个用户名
serv_egroup=您必须输入一个用户组名
serv_estd=服务 $1 没有标准的端口号
serv_eproto=您必须为该服务选择一个协议
serv_eserver=丢失或无效的服务程序
serv_erhost=丢失或无效的重定向客户机
serv_erport=丢失或无效的重定向端口
serv_enice=丢失或无效的优良等级
serv_ecps0=丢失或无效的每秒联接个数
serv_ecps1=丢失或无效的延迟
serv_etimes=访问时间的格式必须是 HH:MM-HH:MM 

sock_stream=流
sock_dgram=数据报
sock_raw=原数据报
sock_seqpacket=连续的数据报

proto_=缺省
proto_ip=IP (Internet 协议)
proto_tcp=TCP (传输控制协议)
proto_udp=UDP (用户数据报协议)

restart_err=应用改变值失败
restart_ekill=向 PID $1:$2 发送 HUP 信号失败

start_err=启动 xinetd 失败
start_estart=$1 失败 : $2

defs_title=缺省选项
defs_header=缺省服务选项
defs_log=Xinetd 日志模式
defs_log_def=屏蔽日志
defs_facility=在 syslog 中记录日志
defs_level=在等级
defs_file=记录到文件
defs_soft=软文件限制
defs_hard=硬文件限制
defs_success=联接成功的日志
defs_success_pid=服务器处理 ID
defs_success_host=远程客户
defs_success_userid=远程认证用户
defs_success_exit=服务器的退出状态
defs_success_duration=会话持续的时间
defs_failure=联接失败的日志
defs_failure_host=远程客户
defs_failure_userid=远程认证用户
defs_failure_attempt=试图联接
defs_failure_record=远端信息
defs_err=存储缺省选项失败
defs_efile=丢失或无效的日志文件名
defs_esoft=丢失或无效的软文件限制
defs_ehard=丢失或无效的硬文件限制

log_create_serv=服务 $1 创建了 $2
log_modify_serv=服务 $1 更新了 $2
log_delete_serv=服务 $1 删除了 $2
log_start=启动了 Xinetd 服务器
log_apply=应用了改变值
log_defaults=改变了缺省选项
   0707010002cb27000081a40000000000000002000000013ac038b80000027e000000200000000000000000000000000000001b00000003reloc/xinetd/log_parser.pl    # log_parser.pl
# Functions for parsing this module's logs

require './xinetd-lib.pl';

# parse_webmin_log(user, script, action, type, object, &params)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p, $long) = @_;
if ($type eq 'serv') {
	return &text("log_${action}_serv", "<tt>$object</tt>",
		     uc($p->{'protocol'}));
	}
elsif ($action eq 'start') {
	return $text{'log_start'};
	}
elsif ($action eq 'apply') {
	return $text{'log_apply'};
	}
elsif ($action eq 'defaults') {
	return $text{'log_defaults'};
	}
else {
	return undef;
	}
}

  0707010002cb28000081a40000000000000002000000013ac038b800000172000000200000000000000000000000000000001900000003reloc/xinetd/module.info  name=Xinetd
desc=Extended Internet Services
desc_pl=Rozszerzone us硊gi internetowe
os_support=redhat-linux{-r "/etc/xinetd.conf"} suse-linux{-r "/etc/xinetd.conf"} debian-linux{-r "/etc/xinetd.conf"} freebsd{-r "/etc/xinetd.conf"}
category=servers
desc_sv=Ut鰇ade Internettj鋘ster
risk=low medium high
desc_es=Servicios Extendidos de Internet
desc_zh_CN=Xinetd 服务配置
  0707010002cb29000081e40000000000000002000000013ac038b80000010a000000200000000000000000000000000000001900000003reloc/xinetd/restart.cgi  #!/usr/local/bin/perl
# restart.cgi
# Restart the running xinetd

require './xinetd-lib.pl';
&ReadParse();
&error_setup($text{'restart_err'});
&kill_logged('USR2', $in{'pid'}) ||
	&error(&text('restart_ekill', $in{'pid'}, $!));
&webmin_log("apply");
&redirect("");

  0707010002cb2a000081e40000000000000002000000013ac038b80000053d000000200000000000000000000000000000001f00000003reloc/xinetd/save_defaults.cgi    #!/usr/local/bin/perl
# save_defaults.cgi
# Save default options

require './xinetd-lib.pl';
&ReadParse();
&error_setup($text{'defs_err'});
&lock_file($config{'xinetd_conf'});
@conf = &get_xinetd_config();
$defs = $conf[$in{'idx'}];

# Parse and save inputs
&set_member_value($defs, 'only_from', $in{'from_def'} ? undef :
		  $in{'from'} ? split(/\s+/, $in{'from'}) : ("") );
&set_member_value($defs, 'no_access', $in{'access_def'} ? undef :
		  $in{'access'} ? split(/\s+/, $in{'access'}) : ("") );
if ($in{'log_mode'} == 0) {
	&set_member_value($defs, 'log_type');
	}
elsif ($in{'log_mode'} == 1) {
	&set_member_value($defs, 'log_type', 'SYSLOG', $in{'facility'},
			  $in{'level'} ? ( $in{'level'} ) : ( ) );
	}
elsif ($in{'log_mode'} == 2) {
	$in{'file'} =~ /^\S+$/ || &error($text{'defs_efile'});
	$in{'soft'} =~ /^\d*$/ || &error($text{'defs_esoft'});
	$in{'hard'} =~ /^\d*$/ || &error($text{'defs_ehard'});
	&set_member_value($defs, 'log_type', 'FILE', $in{'file'},
			  $in{'soft'} ? ( $in{'soft'} ) : ( ),
			  $in{'hard'} ? ( $in{'hard'} ) : ( ) );
	}
&set_member_value($defs, 'log_on_success', split(/\0/, $in{'success'}));
&set_member_value($defs, 'log_on_failure', split(/\0/, $in{'failure'}));
&modify_xinet($defs);
&unlock_file($config{'xinetd_conf'});
&webmin_log("defaults", undef, undef, $defs->{'quick'});
&redirect("");

   0707010002cb2b000081e40000000000000002000000013ac038b800001126000000200000000000000000000000000000001b00000003reloc/xinetd/save_serv.cgi    #!/usr/local/bin/perl
# save_serv.cgi
# Create, modify or delete an internet service

require './xinetd-lib.pl';
&ReadParse();
@conf = &get_xinetd_config();
if ($in{'new'}) {
	$xinet = { 'name' => 'service',
		   'members' => [ ] };
	}
else {
	$xinet = $conf[$in{'idx'}];
	}

&lock_file($config{'xinetd_conf'});
if ($in{'delete'}) {
	# Delete a service
	&delete_xinet($xinet);
	}
else {
	# Validate inputs
	&error_setup($text{'serv_err'});
	$in{'id'} =~ /^\S+$/ || &error($text{'serv_eid'});
	$in{'bind_def'} || &check_ipaddress($in{'bind'}) ||
		&error($text{'serv_ebind'});
	foreach $p (&list_protocols()) {
		@ps = getservbyname($in{'id'}, $p);
		last if (@ps);
		}
	if ($in{'port_def'}) {
		# make sure the service actually exists
		if ($in{'proto'}) {
			@s = getservbyname($in{'id'}, $in{'proto'});
			}
		else {
			@s = @ps;
			}
		@s || &error(&text('serv_estd', $in{'name'}));
		}
	else {
		$in{'port'} =~ /^\d+$/ || &error($text{'serv_eport'});
		$in{'proto'} || @ps || &error($text{'serv_eproto'});
		}
	$in{'inst_def'} || $in{'inst'} =~ /^\d+$/ ||
		&error($text{'serv_einst'});
	$in{'user'} || &error($text{'serv_euser'});
	$in{'group_def'} || $in{'group'} || &error($text{'serv_egroup'});
	$in{'nice_def'} || $in{'nice'} =~ /^\d+$/ ||
		&error($text{'serv_enice'});
	if (!$in{'cps_def'}) {
		$in{'cps0'} =~ /^\d+$/ || &error($text{'serv_ecps0'});
		$in{'cps1'} =~ /^\d+$/ || &error($text{'serv_ecps1'});
		}
	if (!$in{'times_def'}) {
		@times = split(/\s+/, $in{'times'});
		map { &error($text{'serv_etimes'}) if (!/^\d+:\d+\-\d+:\d+$/) }
		    @times;
		}

	# Create service structure
	$xinet->{'values'} = [ $in{'id'} ];
	&set_member_value($xinet, 'disable', $in{'disable'} ? 'yes' : undef);
	&set_member_value($xinet, 'port',
			  $in{'port_def'} ? undef : $in{'port'});
	&set_member_value($xinet, 'bind',
			  $in{'bind_def'} ? undef : $in{'bind'});
	&set_member_value($xinet, 'socket_type', $in{'sock'});
	&set_member_value($xinet, 'protocol', $in{'proto'} ? $in{'proto'}
							   : undef);

	&set_member_value($xinet, 'user', $in{'user'});
	&set_member_value($xinet, 'group',
			  $in{'group_def'} ? undef : $in{'group'});
	@type = @{$q->{'type'}};
	@flags = @{$q->{'flags'}};
	if ($in{'prog'} == 0) {
		@type = &unique(@type, 'INTERNAL');
		&set_member_value($xinet, 'server');
		&set_member_value($xinet, 'server_args');
		&set_member_value($xinet, 'redirect');
		}
	elsif ($in{'prog'} == 1) {
		@type = grep { $_ ne 'INTERNAL' } @type;
		@s = split(/\s+/, $in{'server'});
		@s && -x $s[0] || &error($text{'serv_eserver'});
		&set_member_value($xinet, 'server', shift(@s));
		&set_member_value($xinet, 'server_args', @s);
		&set_member_value($xinet, 'redirect');
		}
	else {
		gethostbyname($in{'rhost'}) || &error($text{'serv_erhost'});
		$in{'rport'} =~ /^\d+$/ || &error($text{'serv_erport'});
		@type = grep { $_ ne 'INTERNAL' } @type;
		&set_member_value($xinet, 'server');
		&set_member_value($xinet, 'server_args');
		&set_member_value($xinet, 'redirect',
				  $in{'rhost'}, $in{'rport'});
		}
	if ($in{'port_def'} || (!$in{'port_def'} && !$in{'proto'} && @ps)) {
		@type = grep { $_ ne 'UNLISTED' } @type;
		}
	else {
		@type = &unique(@type, 'UNLISTED');
		}
	&set_member_value($xinet, 'type', @type);
	&set_member_value($xinet, 'wait', $in{'wait'} ? 'yes' : 'no');
	&set_member_value($xinet, 'instances',
			  $in{'inst_def'} ? undef : $in{'inst'});
	&set_member_value($xinet, 'nice',
			  $in{'nice_def'} ? undef : $in{'nice'});
	&set_member_value($xinet, 'cps',
			  $in{'cps_def'} ? ( ) : ( $in{'cps0'},$in{'cps1'} ) );
	&set_member_value($xinet, 'only_from', $in{'from_def'} ? undef :
			  $in{'from'} ? split(/\s+/, $in{'from'}) : ("") );
	&set_member_value($xinet, 'no_access', $in{'access_def'} ? undef :
			  $in{'access'} ? split(/\s+/, $in{'access'}) : ("") );
	&set_member_value($xinet, 'access_times', $in{'times_def'} ? undef
								   : @times);

	if ($in{'new'}) {
		foreach $xi (@conf) {
			if ($xi->{'name'} eq 'service' &&
			    $xi->{'value'} eq $in{'id'}) {
				# A service with the same name exists!
				&set_member_value(
					$xinet, 'id', "$in{'id'}-$in{'sock'}");
				}
			}
		&create_xinet($xinet);
		}
	else {
		&modify_xinet($xinet);
		}
	}
&unlock_file($config{'xinetd_conf'});
&webmin_log($in{'delete'} ? 'delete' : $in{'new'} ? 'create' : 'modify',
	    'serv', $xinet->{'values'}->[0], $xinet->{'quick'});
&redirect("");

  0707010002cb2c000081e40000000000000002000000013ac038b800000128000000200000000000000000000000000000001700000003reloc/xinetd/start.cgi    #!/usr/local/bin/perl
# start.cgi
# Start the xinetd server

require './xinetd-lib.pl';
&ReadParse();
&error_setup($text{'start_err'});
$out = &backquote_logged("$config{'start_cmd'} 2>&1");
&error(&text('start_estart', $config{'start_cmd'}, $out)) if ($?);
&webmin_log("start");
&redirect("");

0707010002cb2d000081a40000000000000002000000013ac038b800000ea3000000200000000000000000000000000000001b00000003reloc/xinetd/xinetd-lib.pl    # xinetd-lib.pl
# Functions for parsing xinetd config files

do '../web-lib.pl';
&init_config();

# get_xinetd_config()
sub get_xinetd_config
{
return &parse_xinetd($config{'xinetd_conf'});
}

# parse_xinetd(file, [offset])
# Parses the xinetd config file into directives
sub parse_xinetd
{
local @rv;
open(INET, $_[0]);
local @lines = <INET>;
close(INET);
local $lnum = 0;
local $section;
foreach (@lines) {
	s/\r|\n//g; s/#.*$//g; s/\s+$//;  # remove newlines, comments and spaces
	if (/^\s*\{/) {
		# put subsequent directives into a section
		$section = $rv[$#rv];
		$section->{'members'} = [ ];
		}
	elsif (/^\s*\}/) {
		# finished the section
		$section->{'eline'} = $lnum;
		$section = undef;
		}
	elsif (/^\s*include\s+(\S+)/) {
		# include directives from a file
		push(@rv, &parse_xinetd($1, scalar(@rv)));
		}
	elsif (/^\s*includedir\s+(\S+)/) {
		# include directives from every file in a directory
		local $d = $1;
		opendir(DIR, $d);
		foreach $f (readdir(DIR)) {
			next if ($f =~ /^\./);
			push(@rv, &parse_xinetd("$d/$f", scalar(@rv)));
			}
		closedir(DIR);
		}
	elsif (/^\s*(\S+)\s*(.*)/) {
		# a directive or start of a section
		local $dir = { 'name' => $1, 'file' => $_[0],
			       'index' => scalar(@rv) + $_[1],
			       'line' => $lnum, 'eline' => $lnum };
		local $v = $2;
		if ($v =~ /^(=|\+=|-=)\s+(.*)/) {
			$dir->{'op'} = $1;
			$dir->{'value'} = $2;
			}
		else {
			$dir->{'op'} = '=' if ($service);
			$dir->{'value'} = $v;
			}
		local @v = split(/\s+/, $dir->{'value'});
		$dir->{'values'} = \@v;
		if ($section) {
			push(@{$section->{'members'}}, $dir);
			local @q = @{$section->{'quick'}->{$dir->{'name'}}};
			if ($dir->{'op'} eq '=') {
				@q = @v;
				}
			elsif ($dir->{'op'} eq '+=') {
				@q = ( @q, @v );
				}
			elsif ($dir->{'op'} eq '-=') {
				@q = grep { &indexof($_, @v) < 0 } @q;
				}
			$section->{'quick'}->{$dir->{'name'}} = \@q;
			}
		else { push(@rv, $dir); }
		}
	$lnum++;
	}
return @rv;
}

# set_member_value(&xinet, name, [value]*)
# Removes all members with the given name and replaces them with one
# like  name = value
sub set_member_value
{
local @m = @{$_[0]->{'members'}};
@m = grep { $_->{'name'} ne $_[1] } @m;
if (defined($_[2])) {
	push(@m, { 'name' => $_[1],
		   'op' => '=',
		   'values' => [ @_[2..@_-1] ] } );
	$_[0]->{'quick'}->{$_[1]} = [ @_[2..@_-1] ];
	}
else {
	delete($_[0]->{'quick'}->{$_[1]});
	}
$_[0]->{'members'} = \@m;
}

# create_xinet(&xinet)
# Add a new xinet record to the end of the config file
sub create_xinet
{
local $lref = &read_file_lines($config{'xinetd_conf'});
push(@$lref, &xinet_lines($_[0]));
&flush_file_lines();
}

# modify_xinet(&xinet)
# Update an existing xinet record
sub modify_xinet
{
local $lref = &read_file_lines($_[0]->{'file'});
splice(@$lref, $_[0]->{'line'}, $_[0]->{'eline'} - $_[0]->{'line'} + 1,
       &xinet_lines($_[0]));
&flush_file_lines();
}

# delete_xinet(&xinet)
# Delete an existing xinet record
sub delete_xinet
{
local $lref = &read_file_lines($_[0]->{'file'});
splice(@$lref, $_[0]->{'line'}, $_[0]->{'eline'} - $_[0]->{'line'} + 1);
&flush_file_lines();
}

# xinet_lines(&xinet, tabs)
sub xinet_lines
{
local @rv;
$rv[0] = "$_[1]$_[0]->{'name'}";
$rv[0] .= " $_[0]->{'op'}" if ($_[0]->{'op'});
foreach $v (@{$_[0]->{'values'}}) {
	$rv[0] .= " $v";
	}
if ($_[0]->{'members'}) {
	push(@rv, $_[1].'{');
	foreach $m (@{$_[0]->{'members'}}) {
		push(@rv, &xinet_lines($m, "$_[1]\t"));
		}
	push(@rv, $_[1].'}');
	}
return @rv;
}

# list_protocols()
# Returns a list of supported protocols on this system
sub list_protocols
{
local(@rv);
open(PROT, $config{'protocols_file'});
while(<PROT>) {
	chop; s/#.*$//g;
	if (!/\S/) { next; }
	/^(\S+)\s+/;
	push(@rv, $1);
	}
close(PROT);
return &unique(@rv);
}

1;

 070701000076ff000041ed0000000000000001000000033ac03b8600000000000000200000000000000000000000000000000500000003root  07070100008e76000041ed0000000000000001000000033ac03b8700000000000000200000000000000000000000000000000900000003root/etc  0707010000a37d000041ed0000000000000001000000023ac03b8700000000000000200000000000000000000000000000000f00000003root/etc/rc3.d    0707010000a37e000081ed0000000000000002000000013ac0388600000221000000200000000000000000000000000000001900000003root/etc/rc3.d/S99webmin  #!/bin/sh
# chkconfig: 235 99 00
# description: Start or stop the Webmin administration server

case "$1" in
'start')
	/etc/webmin/start
	;;
'stop')
	/etc/webmin/stop
	;;
'status')
	if [ -s /var/webmin/miniserv.pid ]; then
		pid=`cat /var/webmin/miniserv.pid`
		kill -0 $pid >/dev/null 2>&1
		if [ "$?" = "0" ]; then
			echo "webmin (pid $pid) is running"
		else
			echo "webmin is stopped"
		fi
	else
		echo "webmin is stopped"
	fi
	;;
'restart')
	/etc/webmin/stop && /etc/webmin/start
	;;
*)
	echo "Usage: $0 { start | stop }"
	;;
esac
exit 0
   07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000b00000000TRAILER!!!                                                                                                                                                        